././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1714146 tortoisehg-6.9/0000755000000000000000000000000014742203610012314 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/COPYING.txt0000644000000000000000000004325414023111777014201 0ustar00rootroot GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/MANIFEST.in0000644000000000000000000000042214023111777014054 0ustar00rootrootrecursive-include icons *.png *.ico *.svg *.txt include contrib/nautilus-thg.py include contrib/mergetools.rc include contrib/thg.desktop include COPYING.txt include tortoisehg/hgqt/*.ui recursive-include i18n *.po *.py recursive-include doc * recursive-exclude doc/build * ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1714146 tortoisehg-6.9/PKG-INFO0000644000000000000000000000040114742203610013404 0ustar00rootrootMetadata-Version: 2.1 Name: tortoisehg Version: 6.9 Summary: TortoiseHg dialogs for Mercurial VCS Home-page: https://tortoisehg.bitbucket.io Author: Steve Borho Author-email: steve@borho.org License: GNU GPLv2 or any later version License-File: COPYING.txt ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1737033607.887414 tortoisehg-6.9/contrib/0000755000000000000000000000000014742203610013754 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1665198927.0 tortoisehg-6.9/contrib/mergetools.rc0000644000000000000000000003451014320165517016472 0ustar00rootroot[merge-tools] ; The Araxis Merge tool is configured to work with newer versions of Araxis Merge ; if you are using Araxis Merge 2008 or earlier, create a [merge-tools] section ; in your mercurial.ini file, and add one of the two following "araxis.executable" ; lines, depending on whether you have installed a 32 or a 64 bit version ; of Araxis Merge and whether you are on a 32 or 64 bit version of windows ; ;araxis.executable=${ProgramFiles}/Araxis/Araxis Merge/ConsoleCompare.exe ;araxis.executable=${ProgramFiles(x86)}/Araxis/Araxis Merge/ConsoleCompare.exe ; ; Please remember to remove the leading ";" to uncomment the line ; araxis.args=/3 /a2 /wait /merge /title1:"Parent 1" /title2:"Merge Result: "$output /title3:"Parent 2" $local $base $other $output araxis.binary=True araxis.checkconflicts=True araxis.diff3args=/3 /a2 /wait /title1:"$plabel1" /title2:"$clabel" /title3:"$plabel2" $parent1 $child $parent2 araxis.diffargs=/2 /wait /title1:"$plabel1" /title2:"$clabel" $parent $child araxis.dir3diff=True araxis.dirdiff=True araxis.gui=True araxis.premerge=False araxis.priority=-2 araxis.regappend=\ConsoleCompare.exe araxis.regkey=SOFTWARE\Classes\TypeLib\{46799e0a-7bd1-4330-911c-9660bb964ea2}\7.0\HELPDIR ; Linux version of BeyondCompare 3 and 4 (dirdiff is version 4 only) bcompare.args=$local $other $base -mergeoutput=$output -ro -lefttitle=parent1 -centertitle=base -righttitle=parent2 -outputtitle=merged -automerge -reviewconflicts -solo bcompare.diff3args=$parent1 $parent2 $child -lefttitle='$plabel1' -centertitle='$clabel' -righttitle='$plabel2' -solo -expandall bcompare.diffargs=-lro -lefttitle='$plabel1' -righttitle='$clabel' -solo -expandall $parent $child bcompare.dirdiff=True bcompare.gui=True bcompare.premerge=False bcompare.priority=-1 ; Windows version of BeyondCompare 2 (2-way diff only) beyondcompare2.args= /ro /title1="Original" /title2="Working copy" $local $other beyondcompare2.diffargs=/lro /title1='$plabel1' /title2='$clabel' $parent $child beyondcompare2.dirdiff=True beyondcompare2.gui=True beyondcompare2.priority=-4 beyondcompare2.regkey=Software\Scooter Software\Beyond Compare beyondcompare2.regkeyalt=Software\Wow6432Node\Scooter Software\Beyond Compare beyondcompare2.regname=ExePath ; copy of BeyondCompare 3 below, dropping /automerge beyondcompare3-noauto.args=$local $other $base /mergeoutput=$output /ro /lefttitle=parent1 /centertitle=base /righttitle=parent2 /outputtitle=merged /reviewconflicts /solo beyondcompare3-noauto.diff3args=$parent1 $parent2 $child /lefttitle='$plabel1' /centertitle='$clabel' /righttitle='$plabel2' /solo /ro beyondcompare3-noauto.diffargs=/lro /lefttitle='$plabel1' /righttitle='$clabel' /solo /expandall $parent $child beyondcompare3-noauto.dirdiff=True beyondcompare3-noauto.executable=beyondcompare3 beyondcompare3-noauto.gui=True beyondcompare3-noauto.premerge=False beyondcompare3-noauto.priority=-1 beyondcompare3-noauto.regkey=Software\Scooter Software\Beyond Compare 3 beyondcompare3-noauto.regkeyalt=Software\Wow6432Node\Scooter Software\Beyond Compare 3 beyondcompare3-noauto.regname=ExePath ; Windows version of BeyondCompare 3 beyondcompare3.args=$local $other $base /mergeoutput=$output /ro /lefttitle=parent1 /centertitle=base /righttitle=parent2 /outputtitle=merged /automerge /reviewconflicts /solo beyondcompare3.diff3args=$parent1 $parent2 $child /lefttitle='$plabel1' /centertitle='$clabel' /righttitle='$plabel2' /solo /ro beyondcompare3.diffargs=/lro /lefttitle='$plabel1' /righttitle='$clabel' /solo /expandall $parent $child beyondcompare3.dirdiff=True beyondcompare3.gui=True beyondcompare3.premerge=False beyondcompare3.priority=-1 beyondcompare3.regkey=Software\Scooter Software\Beyond Compare 3 beyondcompare3.regkeyalt=Software\Wow6432Node\Scooter Software\Beyond Compare 3 beyondcompare3.regname=ExePath ; copy of BeyondCompare 4 below, dropping /automerge beyondcompare4-noauto.args=$local $other $base /mergeoutput=$output /ro /lefttitle=parent1 /centertitle=base /righttitle=parent2 /outputtitle=merged /reviewconflicts /solo beyondcompare4-noauto.diff3args=$parent1 $parent2 $child /lefttitle='$plabel1' /centertitle='$clabel' /righttitle='$plabel2' /solo /ro beyondcompare4-noauto.diffargs=/lro /lefttitle='$plabel1' /righttitle='$clabel' /solo /expandall $parent $child beyondcompare4-noauto.dir3diff=True beyondcompare4-noauto.dirdiff=True beyondcompare4-noauto.executable=beyondcompare4 beyondcompare4-noauto.gui=True beyondcompare4-noauto.premerge=False beyondcompare4-noauto.priority=-1 beyondcompare4-noauto.regkey=Software\Scooter Software\Beyond Compare 4 beyondcompare4-noauto.regkeyalt=Software\Wow6432Node\Scooter Software\Beyond Compare 4 beyondcompare4-noauto.regname=ExePath ; Windows version of BeyondCompare 4 beyondcompare4.args=$local $other $base /mergeoutput=$output /ro /lefttitle=parent1 /centertitle=base /righttitle=parent2 /outputtitle=merged /automerge /reviewconflicts /solo beyondcompare4.diff3args=$parent1 $parent2 $child /lefttitle='$plabel1' /centertitle='$clabel' /righttitle='$plabel2' /solo /ro beyondcompare4.diffargs=/lro /lefttitle='$plabel1' /righttitle='$clabel' /solo /expandall $parent $child beyondcompare4.dir3diff=True beyondcompare4.dirdiff=True beyondcompare4.gui=True beyondcompare4.premerge=False beyondcompare4.priority=-1 beyondcompare4.regkey=Software\Scooter Software\Beyond Compare 4 beyondcompare4.regkeyalt=Software\Wow6432Node\Scooter Software\Beyond Compare 4 beyondcompare4.regname=ExePath ; 2-way diff only version of Code Compare (Windows only) codecompare_diff.binary=False codecompare_diff.diff3args=/SC=TortoiseHg /title1="$plabel1" /title2="$clabel" /title3="$plabel2" $parent1 $child $parent2 codecompare_diff.diffargs=/SC=TortoiseHg /title1="$plabel1" /title2="$clabel" $parent $child codecompare_diff.dirdiff=True codecompare_diff.gui=True codecompare_diff.regappend=CodeCompare.exe codecompare_diff.regkey=SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\CodeCompare_is1 codecompare_diff.regname=InstallLocation ; 3-way merge version of Code Compare (not for diff, just for merge, Pro version only) codecompare_merge.args=/SC=TortoiseHg /TF=$other /MF=$local /RF=$output /BF=$base /TT="Other: $other" /MT="Local: $local" /RT="Output: $output" /BT="Base: $base" codecompare_merge.binary=False codecompare_merge.checkconflicts=True codecompare_merge.gui=True codecompare_merge.premerge=Keep codecompare_merge.regappend=CodeMerge.exe codecompare_merge.regkey=SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\CodeCompare_is1 codecompare_merge.regname=InstallLocation diffmerge.args=-nosplash -merge -title1=local -title2=merged -title3=other $local $base $other -result=$output diffmerge.checkchanged=True diffmerge.diff3args=--nosplash --title1='$plabel1' --title2='$clabel' --title3='$plabel2' $parent1 $child $parent2 diffmerge.diffargs=--nosplash --title1='$plabel1' --title2='$clabel' $parent $child diffmerge.dirdiff=True diffmerge.gui=True diffmerge.priority=-7 diffmerge.regkey=Software\SourceGear\SourceGear DiffMerge\ diffmerge.regkeyalt=Software\Wow6432Node\SourceGear\SourceGear DiffMerge\ diffmerge.regname=Location diffmerge3.args=-nosplash -merge -title1=local -title2=merged -title3=other $local $base $other -result=$output diffmerge3.checkchanged=True diffmerge3.diff3args=--nosplash --title1='$plabel1' --title2='$clabel' --title3='$plabel2' $parent1 $child $parent2 diffmerge3.diffargs=--nosplash --title1='$plabel1' --title2='$clabel' $parent $child diffmerge3.dirdiff=True diffmerge3.gui=True diffmerge3.priority=-7 diffmerge3.regkey=Software\SourceGear\Common\DiffMerge\Installer diffmerge3.regkeyalt=Software\Wow6432Node\SourceGear\Common\DiffMerge\Installer diffmerge3.regname=Location diffuse.args=$local $base $other diffuse.diff3args=$parent1 $child $parent2 diffuse.diffargs=$parent $child diffuse.dirdiff=False diffuse.gui=True diffuse.priority=-3 ; TortoiseHg diff wrapper for some binary documents, not for merge general use docdiff.args=$local $base $other $output docdiff.diff3args=$parent1 $child $parent2 $child docdiff.diffargs=$child $parent docdiff.gui=True docdiff.priority=-100 docdiff.regappend=\docdiff.exe docdiff.regkey=Software\TortoiseHg docdiff.usewin=True ecmerge.args=$base $local $other --mode=merge3 --title0=base --title1=local --title2=other --to=$output ecmerge.diff3args=$child $parent1 $parent2 --mode=diff3 --title0='$clabel' --title1='$plabel1' --title2='$plabel2' ecmerge.diffargs=$parent $child --mode=diff2 --title1='$plabel1' --title2='$clabel' ecmerge.dir3diff=True ecmerge.dirdiff=True ecmerge.gui=True ecmerge.priority=-10 ecmerge.regkey=Software\Elli\xc3\xa9 Computing\Merge ecmerge.regkeyalt=Software\Wow6432Node\Elli\xc3\xa9 Computing\Merge gvimdiff.args=--nofork -d -g -O $local $other $base gvimdiff.diff3args=--nofork -d -g -O $parent1 $child $parent2 gvimdiff.diffargs=--nofork -d -g -O $parent $child gvimdiff.priority=-9 gvimdiff.regkey=Software\Vim\GVim gvimdiff.regkeyalt=Software\Wow6432Node\Vim\GVim gvimdiff.regname=path ; copy of kdiff3 below, dropping --auto kdiff3-noauto.args=--L1 base --L2 parent1 --L3 parent2 $base $local $other -o $output kdiff3-noauto.diff3args=--L1 '$plabel1' --L2 '$clabel' --L3 '$plabel2' $parent1 $child $parent2 kdiff3-noauto.diffargs=--L1 '$plabel1' --L2 '$clabel' $parent $child kdiff3-noauto.dirdiff=True kdiff3-noauto.executable=kdiff3 kdiff3-noauto.fixeol=False kdiff3-noauto.gui=True kdiff3-noauto.premerge=False kdiff3-noauto.priority=-4 kdiff3-noauto.regappend=\kdiff3.exe kdiff3-noauto.regkey=Software\KDiff3 kdiff3-noauto.regkeyalt=Software\Wow6432Node\KDiff3 kdiff3.args=--auto --L1 base --L2 parent1 --L3 parent2 $base $local $other -o $output kdiff3.diff3args=--L1 '$plabel1' --L2 '$clabel' --L3 '$plabel2' $parent1 $child $parent2 kdiff3.diffargs=--L1 '$plabel1' --L2 '$clabel' $parent $child kdiff3.dirdiff=True kdiff3.fixeol=False kdiff3.gui=True kdiff3.premerge=False kdiff3.priority=-3 kdiff3.regappend=\kdiff3.exe kdiff3.regkey=Software\KDiff3 kdiff3.regkeyalt=Software\Wow6432Node\KDiff3 ; copy of meld below, dropping --auto-merge meld-noauto.args=--label='local' $local --label='merged' $base --label='other' $other -o $output meld-noauto.checkchanged=True meld-noauto.diff3args=--label='$plabel1' $parent1 --label='$clabel' $child --label='$plabel2' $parent2 meld-noauto.diffargs=--label='$plabel1' $parent --label='$clabel' $child meld-noauto.dirdiff=True meld-noauto.gui=True meld-noauto.priority=-3 meld-noauto.regkey=SOFTWARE\Meld meld-noauto.regkeyalt=SOFTWARE\Wow6432Node\Meld meld-noauto.regname=Executable meld.args=--label='local' $local --label='merged' $base --label='other' $other --auto-merge -o $output meld.checkchanged=True meld.diff3args=--label='$plabel1' $parent1 --label='$clabel' $child --label='$plabel2' $parent2 meld.diffargs=--label='$plabel1' $parent --label='$clabel' $child meld.dirdiff=True meld.gui=True meld.priority=-2 meld.regkey=SOFTWARE\Meld meld.regkeyalt=SOFTWARE\Wow6432Node\Meld meld.regname=Executable p4merge.args=$base $local $other $output p4merge.checkchanged = True p4merge.diff3args=$child $parent1 $parent2 p4merge.diffargs=$parent $child p4merge.dirdiff=False p4merge.gui=True p4merge.priority=-8 p4merge.regappend=\p4merge.exe p4merge.regkey=Software\Perforce\Environment p4merge.regkeyalt=Software\Wow6432Node\Perforce\Environment p4merge.regname=P4INSTROOT ; (Windows only) rekisa.args = -Title=Base "$base" -Title=Local "$local" -Title=Other "$other" rekisa.diff3args = "-Title=$plabel1" "$parent1" "-Title=$clabel" "$child" "-Title=$plabel2" "$parent2" rekisa.diffargs = "-Title=$plabel1" "$parent" "-Title=$clabel" "$child" rekisa.dirdiff = False rekisa.gui = True rekisa.priority=-1 ; Telelogic Rhapsody DiffMerge Tool (Windows only) rhapsody_diffmerge.args=-xmerge $other $local -base $base -out $output rhapsody_diffmerge.checkchanged=True rhapsody_diffmerge.diff3args= rhapsody_diffmerge.diffargs=-xcompare $parent $child rhapsody_diffmerge.gui=True rhapsody_diffmerge.priority=-110 rhapsody_diffmerge.regkey=Software\Telelogic\Rhapsody\DiffMerge\ rhapsody_diffmerge.regkeyalt=Software\Wow6432Node\Telelogic\Rhapsody\DiffMerge\ rhapsody_diffmerge.regname=Install Path tkdiff.args=-L local -L other $local $other -a $base -o $output tkdiff.diff3args= tkdiff.diffargs=-L '$plabel1' $parent -L '$clabel' $child tkdiff.dirdiff=False tkdiff.gui=True tkdiff.priority=-5 ; Fork of TortoiseMerge bundled with TortoiseGit tortoisegitmerge.args=/base:$base /mine:$local /theirs:$other /merged:$output tortoisegitmerge.checkchanged=True tortoisegitmerge.diffargs=/base:$parent /mine:$child /basename:'$plabel1' /minename:'$clabel' tortoisegitmerge.gui=True tortoisegitmerge.priority=-9 tortoisegitmerge.regkey=Software\TortoiseGit tortoisegitmerge.regkeyalt=Software\Wow6432Node\TortoiseGit tortoisegitmerge.regname=TMergePath tortoisemerge.args=/base:$base /mine:$local /theirs:$other /merged:$output tortoisemerge.checkchanged=True tortoisemerge.diffargs=/base:$parent /mine:$child /basename:'$plabel1' /minename:'$clabel' tortoisemerge.gui=True tortoisemerge.priority=-9 tortoisemerge.regkey=Software\TortoiseSVN tortoisemerge.regkeyalt=Software\Wow6432Node\TortoiseSVN UltraCompare.args = $base $local $other -title1 base -title3 other UltraCompare.binary = True UltraCompare.checkchanged = True UltraCompare.checkconflicts = True UltraCompare.diff3args=$parent1 $child $parent2 -title1 $plabel1 -title2 $clabel -title3 $plabel2 UltraCompare.diffargs=$child $parent -title1 $clabel -title2 $plabel1 UltraCompare.gui = True UltraCompare.priority = -2 UltraCompare.regkey=Software\Microsoft\Windows\CurrentVersion\App Paths\UC.exe UltraCompare.regkeyalt=Software\Wow6432Node\Microsoft\Windows\CurrentVersion\App Paths\UC.exe winmergeu.args=/e /x /u /wl /wr /dl local /dr other $local $output $other winmergeu.checkchanged=True winmergeu.diff3args=/r /e /x /u /wl /wr /dl '$plabel1' /dm '$clabel' /dr '$plabel2' $parent1 $child $parent2 winmergeu.diffargs=/r /e /x /u /wl /dl '$plabel1' /dr '$clabel' $parent $child winmergeu.dir3diff=True winmergeu.dirdiff=True winmergeu.fixeol=True winmergeu.gui=True winmergeu.priority=-10 winmergeu.regkey=Software\Thingamahoochie\WinMerge\ winmergeu.regkeyalt=Software\Wow6432Node\Thingamahoochie\WinMerge\ winmergeu.regname=Executable xxdiff.args=--show-merged-pane --exit-with-merge-status --title1 local --title2 base --title3 other --merged-filename $output --merge $local $base $other xxdiff.diff3args=--title1 '$plabel1' $parent1 --title2 '$clabel' $child --title3 '$plabel2' $parent2 xxdiff.diffargs=--title1 '$plabel1' $parent --title2 '$clabel' $child xxdiff.dirdiff=True xxdiff.gui=True xxdiff.priority=-4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730631722.0 tortoisehg-6.9/contrib/nautilus-thg.py0000644000000000000000000003506114711654052016765 0ustar00rootroot# TortoiseHg plugin for Nautilus and Caja # # Copyright 2007 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations this_file = __file__.rsplit('.', 1)[0] if this_file.endswith('caja-thg'): from gi.repository import Caja as Nautilus # pytype: disable=import-error idstr_prefix = 'HgCaja' else: from gi.repository import Nautilus # pytype: disable=import-error idstr_prefix = 'HgNautilus3' from gi.repository import ( # pytype: disable=import-error GLib, GObject, Gio, Gtk, ) import os import sys thg_main = 'thg' try: from mercurial import demandimport except ImportError: # workaround to use user's local python libs userlib = os.path.expanduser('~/lib/python') if os.path.exists(userlib) and userlib not in sys.path: sys.path.append(userlib) from mercurial import demandimport demandimport.enable() import subprocess from mercurial import hg, match, util, error from mercurial.utils import ( dateutil, ) from mercurial.node import short def _thg_path(): # check if nautilus-thg.py is a symlink first pfile = __file__ if pfile.endswith('.pyc'): pfile = pfile[:-1] path = os.path.dirname(os.path.dirname(os.path.realpath(pfile))) thgpath = os.path.normpath(path) testpath = os.path.join(thgpath, 'tortoisehg') if os.path.isdir(testpath) and thgpath not in sys.path: sys.path.insert(0, thgpath) _thg_path() from tortoisehg.util import hglib, menuthg, paths, debugthg, cachethg if hglib.TYPE_CHECKING: from typing import ( Any, Dict, List, Optional, Text, ) from mercurial import ( localrepo, ) if debugthg.debug('N'): debugf = debugthg.debugf else: debugf = debugthg.debugf_No # avoid breaking other Python nautilus extensions demandimport.disable() nofilecmds = 'about serve synch repoconfig userconfig merge unmerge'.split() class HgExtensionDefault(GObject.GObject): allvfs: Dict[Text, Any] def __init__(self): self.scanStack = [] self.allvfs = {} self.inv_dirs = set() self.hgtk = paths.find_in_path(thg_main) self.menu = menuthg.menuThg() # Get the configuration directory path try: self.notify = os.environ['XDG_CONFIG_HOME'] except KeyError: self.notify = os.path.join('$HOME', '.config') self.notify = os.path.expandvars(os.path.join( self.notify, 'TortoiseHg')) # Create folder if it does not exist if not os.path.isdir(self.notify): os.makedirs(self.notify) # Create the notify file self.notify = os.path.join(self.notify, 'notify') open(self.notify, 'w').close() self.gmon = Gio.file_new_for_path(self.notify).monitor(Gio.FileMonitorFlags.NONE, None) self.gmon.connect('changed', self.notified) def icon(self, iname: Text) -> Optional[Text]: return paths.get_tortoise_icon(iname) def get_path_for_vfs_file(self, vfs_file, store: bool = True) -> Optional[Text]: if vfs_file.get_uri_scheme() != 'file': return None # TODO: is get_uri returing unicode? path = hglib.tounicode(util.urlreq.unquote(vfs_file.get_uri()[7:])) if vfs_file.is_gone(): self.allvfs.pop(path, '') return None if store: self.allvfs[path] = vfs_file return path def get_vfs(self, path: Text): vfs = self.allvfs.get(path, None) if vfs and vfs.is_gone(): del self.allvfs[path] return None return vfs def get_repo_for_path(self, path: Text) -> Optional[localrepo.localrepository]: ''' Find mercurial repository for vfs_file Returns hg.repo ''' p = hglib.fromunicode(paths.find_root(path)) if not p: return None try: return hg.repository(hglib.loadui(), path=p) except error.RepoError: return None except Exception as e: debugf(e) return None def run_dialog(self, menuitem, hgtkcmd: Text, cwd: Optional[Text] = None, files: Optional[List[Text]] = None) -> None: ''' hgtkcmd - hgtk subcommand ''' if cwd: #bg files = [] else: cwd = self.cwd repo = self.get_repo_for_path(cwd) cmdopts = [sys.executable, self.hgtk, hgtkcmd] if hgtkcmd not in nofilecmds and files: pipe = subprocess.PIPE cmdopts += ['--listfile', '-'] else: pipe = None proc = subprocess.Popen(cmdopts, cwd=cwd, stdin=pipe, shell=False) if pipe: proc.stdin.write(hglib.fromunicode('\n'.join(files))) proc.stdin.close() def buildMenu(self, vfs_files, bg): '''Build menu''' self.pos = 0 files = [] for vfs_file in vfs_files: f = self.get_path_for_vfs_file(vfs_file) if f: files.append(f) if not files: return if bg or len(files) == 1 and vfs_files[0].is_directory(): cwd = files[0] files = [] else: cwd = os.path.dirname(files[0]) repo = self.get_repo_for_path(cwd) if repo: menus = self.menu.get_commands(repo, cwd, files) else: menus = self.menu.get_norepo_commands(cwd, files) files = [] self.cwd = cwd return self._buildMenu(menus, files) def _buildMenu(self, menus: menuthg.thg_menu, files: List[Text]) -> List[Nautilus.MenuItem]: '''Build one level of a menu''' items = [] if files: passcwd = None else: #bg passcwd = self.cwd for menu_info in menus: idstr = '%s::%02d%s' % (idstr_prefix ,self.pos, menu_info.hgcmd) self.pos += 1 if menu_info.isSep(): # can not insert a separator till now pass elif menu_info.isSubmenu(): assert isinstance(menu_info, menuthg.TortoiseSubmenu) # help pytype if hasattr(Nautilus, 'Menu'): item = Nautilus.MenuItem(name=idstr, label=menu_info.menutext, tip=menu_info.helptext) submenu = Nautilus.Menu() item.set_submenu(submenu) for subitem in self._buildMenu(menu_info.get_menus(), files): submenu.append_item(subitem) items.append(item) else: #submenu not suported for subitem in self._buildMenu(menu_info.get_menus(), files): items.append(subitem) else: assert isinstance(menu_info, menuthg.TortoiseMenu) # help pytype if menu_info.state: item = Nautilus.MenuItem.new(idstr, menu_info.menutext, menu_info.helptext, self.icon(menu_info.icon)) item.connect('activate', self.run_dialog, menu_info.hgcmd, passcwd, files) items.append(item) return items def get_background_items(self, window, vfs_file): '''Build context menu for current directory''' if vfs_file and self.menu: return self.buildMenu([vfs_file], True) def get_file_items(self, window, vfs_files): '''Build context menu for selected files/directories''' if vfs_files and self.menu: return self.buildMenu(vfs_files, False) def get_columns(self): return Nautilus.Column.new(idstr_prefix + "::80hg_status", "hg_status", "Hg Status", "Version control status"), def _get_file_status(self, localpath: Text, repo: Optional[localrepo.localrepository] = None): cachestate = cachethg.get_state(localpath, repo) cache2state = {cachethg.UNCHANGED: ('default', 'clean'), cachethg.ADDED: ('list-add', 'added'), cachethg.MODIFIED: ('important', 'modified'), cachethg.UNKNOWN: ('dialog-question', 'unrevisioned'), cachethg.IGNORED: ('unreadable', 'ignored'), cachethg.NOT_IN_REPO: (None, 'unrevisioned'), cachethg.ROOT: ('generic', 'root'), cachethg.UNRESOLVED: ('danger', 'unresolved')} emblem, status = cache2state.get(cachestate, (None, '?')) return emblem, status def notified(self, monitor=None, changedfile=None, otherfile=None, event=None): if event == Gio.FileMonitorEvent.CHANGES_DONE_HINT: return debugf('notified from hgtk, %s', event, level='n') f = open(self.notify, 'a+') files = None try: files = [line[:-1] for line in f if line] if files: f.truncate(0) finally: f.close() if not files: return root = os.path.commonprefix(files) root = paths.find_root(root) if root: self.invalidate(files, root) def invalidate(self, paths: List[Text], root: Text = '') -> None: started = bool(self.inv_dirs) if cachethg.cache_pdir == root and root not in self.inv_dirs: cachethg.overlay_cache.clear() self.inv_dirs.update([os.path.dirname(root), '/', '']) for path in paths: path = os.path.join(root, path) while path not in self.inv_dirs: self.inv_dirs.add(path) path = os.path.dirname(path) if cachethg.cache_pdir == path: cachethg.overlay_cache.clear() if started: return if len(paths) > 1: self._invalidate_dirs() else: #group invalidation of directories GLib.timeout_add(200, self._invalidate_dirs) def _invalidate_dirs(self): for path in self.inv_dirs: vfs = self.get_vfs(path) if vfs: vfs.invalidate_extension_info() self.inv_dirs.clear() # property page borrowed from http://www.gnome.org/~gpoo/hg/nautilus-hg/ def __add_row(self, row, label_item: Text, label_value: Text) -> None: label = Gtk.Label(label_item) label.set_use_markup(True) label.set_alignment(1, 0) self.table.attach(label, 0, 1, row, row + 1, Gtk.AttachOptions.FILL, Gtk.AttachOptions.FILL, 0, 0) label.show() label = Gtk.Label(label_value) label.set_use_markup(True) label.set_alignment(0, 1) label.show() self.table.attach(label, 1, 2, row, row + 1, Gtk.AttachOptions.FILL, 0, 0, 0) def get_property_pages(self, vfs_files): if len(vfs_files) != 1: return file = vfs_files[0] path = self.get_path_for_vfs_file(file) if path is None or file.is_directory(): return repo = self.get_repo_for_path(path) if repo is None: return localpath = path[len(repo.root)+1:] emblem, status = self._get_file_status(path, repo) # Get the information from Mercurial ctx = repo[b'.'] try: fctx = ctx.filectx(localpath) rev = fctx.filelog().linkrev(fctx.filerev()) except: rev = ctx.rev() ctx = repo[rev] date = hglib.tounicode(dateutil.datestr(ctx.date(), b'%Y-%m-%d %H:%M:%S %1%2')) description = hglib.tounicode(ctx.description()) user = GLib.markup_escape_text(hglib.tounicode(ctx.user())) tags = hglib.tounicode(b', '.join(ctx.tags())) branch = hglib.tounicode(ctx.branch()) self.property_label = Gtk.Label('Mercurial') self.table = Gtk.Table(7, 2, False) self.table.set_border_width(5) self.table.set_row_spacings(5) self.table.set_col_spacings(5) self.__add_row(0, 'Status:', status) self.__add_row(1, 'Last-Commit-Revision:', str(rev)) self.__add_row(2, 'Last-Commit-Description:', description) self.__add_row(3, 'Last-Commit-Date:', date) self.__add_row(4, 'Last-Commit-User:', user) if tags: self.__add_row(5, 'Tags:', tags) if branch != 'default': self.__add_row(6, 'Branch:', branch) self.table.show() return Nautilus.PropertyPage.new("MercurialPropertyPage::status", self.property_label, self.table), class HgExtensionIcons(HgExtensionDefault): def update_file_info(self, file): '''Queue file for emblem and hg status update''' self.scanStack.append(file) if len(self.scanStack) == 1: GLib.idle_add(self.fileinfo_on_idle) def fileinfo_on_idle(self): '''Update emblem and hg status for files when there is time''' if not self.scanStack: return False try: vfs_file = self.scanStack.pop() path = self.get_path_for_vfs_file(vfs_file, False) if not path: return True oldvfs = self.get_vfs(path) if oldvfs and oldvfs != vfs_file: #file has changed on disc (not invalidated) self.get_path_for_vfs_file(vfs_file) #save new vfs self.invalidate([os.path.dirname(path)]) emblem, status = self._get_file_status(path) if emblem is not None: vfs_file.add_emblem(emblem) vfs_file.add_string_attribute('hg_status', status) except Exception as e: debugf(e) return True if hglib.loadui().configbool(b"tortoisehg", b"overlayicons", default=True): class HgExtension(HgExtensionIcons, Nautilus.MenuProvider, Nautilus.ColumnProvider, Nautilus.PropertyPageProvider, Nautilus.InfoProvider): pass else: class HgExtension(HgExtensionDefault, Nautilus.MenuProvider, Nautilus.ColumnProvider, Nautilus.PropertyPageProvider): pass ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1647752228.0 tortoisehg-6.9/contrib/thg.desktop0000644000000000000000000000073214215532044016134 0ustar00rootroot[Desktop Entry] Type=Application Name=TortoiseHg GenericName=Version Control GUI GenericName[ru]=Графический интерфейс для системы контроля версий Comment=GUI application for using Mercurial Comment[ru]=Графический интерфейс для Mercurial Icon=thg_logo Exec=thg --nofork Categories=Development;RevisionControl; Keywords=thg;hgtk;mercurial;vcs X-Desktop-File-Install-Version=0.23 StartupWMClass=TortoiseHgQt ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1737033607.887414 tortoisehg-6.9/doc/0000755000000000000000000000000014742203610013061 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/Build.bat0000644000000000000000000000603014023111777014613 0ustar00rootroot@echo off setlocal if not exist %hhc_compiler%. ( set hhc_compiler=hhc.exe ) if not exist %qcollectiongenerator%. ( set qcollectiongenerator=qcollectiongenerator.exe ) set PDFLATEX=PdfLatex set SPHINXBUILD=sphinx-build set OUTPUTDIRSUFFIX= if not "%2" == "" ( set OUTPUTDIRSUFFIX=-%2 ) if "%2" == "en" ( set OUTPUTDIRSUFFIX= ) set OUTPUTDIR=build%OUTPUTDIRSUFFIX% set ALLSPHINXOPTS=-d %OUTPUTDIR%/doctrees %SPHINXOPTS% source%OUTPUTDIRSUFFIX% if not "%PAPER%" == "" ( set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% ) if "%1" == "" goto help if "%1" == "help" ( :help echo.Please use `Build.bat ^ [^]` where ^ is one of echo. html to make standalone HTML files echo. htmlhelp to make HTML files and a HTML help project echo. chm to make CHM file echo. qthelp to make HTML files and a qthelp project echo. qhc to make QHC file echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter echo. pdf to make PDF file, you can set PAPER=a4 or PAPER=letter echo. echo.and where ^ is one of echo. en to make target in English ^(default^) echo. ja to make target in Japanese echo. cs to make target in Czech goto end ) if "%1" == "clean" ( for /d %%i in (%OUTPUTDIR%\*) do rmdir /q /s %%i del /q /s %OUTPUTDIR%\* goto end ) if "%1" == "html" ( %SPHINXBUILD% -b html %ALLSPHINXOPTS% %OUTPUTDIR%/html echo. echo.Build finished. The HTML pages are in %OUTPUTDIR%/html. goto end ) if "%1" == "htmlhelp" ( %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %OUTPUTDIR%/htmlhelp echo. echo.Build finished; now you can run HTML Help Workshop with the ^ .hhp project file in %OUTPUTDIR%/htmlhelp. goto end ) if "%1" == "chm" ( %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %OUTPUTDIR%/chm %hhc_compiler% %OUTPUTDIR%/chm/TortoiseHg.hhp echo. echo.Build finished. The CHM file is in %OUTPUTDIR%/chm. goto end ) if "%1" == "qthelp" ( %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %OUTPUTDIR%/qthelp echo. echo.Build finished; now you can run "qcollectiongenerator" with the ^ .qhcp project file in %OUTPUTDIR%/qthelp, like this: echo.^> qcollectiongenerator %OUTPUTDIR%\qthelp\foo.qhcp echo.To view the help file: echo.^> assistant -collectionFile %OUTPUTDIR%\qthelp\foo.ghc goto end ) if "%1" == "qhc" ( %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %OUTPUTDIR%/qthelp %qcollectiongenerator% %OUTPUTDIR%/qthelp/TortoiseHg.qhcp echo. echo.Build finished. The QHC file is in %OUTPUTDIR%/qthelp. goto end ) if "%1" == "latex" ( %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %OUTPUTDIR%/latex echo. echo.Build finished; the LaTeX files are in %OUTPUTDIR%/latex. goto end ) if "%1" == "pdf" ( %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %OUTPUTDIR%/pdf pushd . cd %OUTPUTDIR%\pdf %PDFLATEX% TortoiseHg.tex %PDFLATEX% TortoiseHg.tex %PDFLATEX% TortoiseHg.tex makeindex -s python.ist TortoiseHg.idx makeindex -s python.ist modTortoiseHg.idx %PDFLATEX% TortoiseHg.tex %PDFLATEX% TortoiseHg.tex popd echo. echo.Build finished; the PDF file is in %OUTPUTDIR%/pdf. goto end ) :end ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/Makefile0000644000000000000000000000606114023111777014530 0ustar00rootroot# Makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = sphinx-build PAPER = QCOLLECTIONGENERATOR = qcollectiongenerator # Internal variables. PAPEROPT_a4 = -D latex_paper_size=a4 PAPEROPT_letter = -D latex_paper_size=letter ALLSPHINXOPTS = -d build/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source .PHONY: help clean html web pickle htmlhelp qthelp qhc latex changes linkcheck help: @echo "Please use \`make ' where is one of" @echo " html to make standalone HTML files" @echo " pickle to make pickle files" @echo " json to make JSON files" @echo " htmlhelp to make HTML files and a HTML help project" @echo " qthelp to make HTML files and a qthelp project" @echo " qhc to make QHC file" @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" @echo " changes to make an overview over all changed/added/deprecated items" @echo " linkcheck to check all external links for integrity" clean: -rm -rf build/* html: mkdir -p build/html build/doctrees $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) build/html @echo @echo "Build finished. The HTML pages are in build/html." zip: html (cd build ; zip TortoiseHg.html.zip -r html) pickle: mkdir -p build/pickle build/doctrees $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) build/pickle @echo @echo "Build finished; now you can process the pickle files." web: pickle json: mkdir -p build/json build/doctrees $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) build/json @echo @echo "Build finished; now you can process the JSON files." htmlhelp: mkdir -p build/htmlhelp build/doctrees $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) build/htmlhelp @echo @echo "Build finished; now you can run HTML Help Workshop with the" \ ".hhp project file in build/htmlhelp." qthelp: mkdir -p build/qthelp build/doctrees $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) build/qthelp @echo @echo "Build finished; now you can run "qcollectiongenerator" with the" \ ".qhcp project file in build/qthelp, like this:" @echo "# qcollectiongenerator build/qthelp/foo.qhcp" @echo "To view the help file:" @echo "# assistant -collectionFile build/qthelp/foo.qhc" qhc: qthelp $(QCOLLECTIONGENERATOR) build/qthelp/TortoiseHg.qhcp @echo "Build finished. To view the help file:" @echo "# assistant -collectionFile build/qthelp/TortoiseHg.qhc" latex: mkdir -p build/latex build/doctrees $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) build/latex @echo @echo "Build finished; the LaTeX files are in build/latex." @echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \ "run these through (pdf)latex." changes: mkdir -p build/changes build/doctrees $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) build/changes @echo @echo "The overview file is in build/changes." linkcheck: mkdir -p build/linkcheck build/doctrees $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) build/linkcheck @echo @echo "Link check complete; look for any errors in the above output " \ "or in build/linkcheck/output.txt." ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/ReadMe-cs.txt0000644000000000000000000000401214023111777015363 0ustar00rootrootTortoiseHg Documentation Pro vytvoření dokumentace ve formátu HTML je potřebná instalace Sphinx. V Ubuntu je to balíček python-sphinx. Ve Windows je zřejmě nejlepší easy_install. Sphinx musí být novější než 0.6. Pro vytvoření souborů PDF jsou potřebné balíčky LaTeX. V Ubuntu to jsou texlive-latex-extra, texlive-fonts-recomended a všechny jejich dependence. Ve Windows je nejlepší MikTeX. Jsou-li všechny potřebné rekvizity k disposici, lze použít makefile pro vytvoření cílů: 'make html htmlhelp latex'. Máme-li 'latex' vybudován, nacédujeme se do jeho výstupního adresáře a spuštěním 'make all-pdf' vytvoříme vlastní soubor PDF. Máme-li vybudován 'htmlhelp', musíme ve Windows použít vlastní HTML Help Compiler. Pokud ve Window nemáme žádný nástroj 'make', můžeme použít build.bat. Je-li nainstalován HTML Help Compiler a MikTeX, můžeme formáty chm a pdf generovat přímo ('build chm' či 'build pdf'). Formování zdrojového textu ========================== Následujte prosím tato pravidla při úpravě textů ve zdrojových souborech dokumentace. - Jak navrženo ve Sphinxu (viz http://www.sphinx-doc.org/en/stable/rest.html#sections), použijte: ************* Chapter title ************* Section title ============= Subsection title ---------------- Subsubsection title ^^^^^^^^^^^^^^^^^^^ - K uvedení klávesy nebo kombinace kláves použijte :kbd:, například: :kbd:`Ctrl-A` - K uvedení štítku, tlačítka nebo čehokoli, co se objeví v uživatelském rozhraní, použijte :guilabel:, například: :guilabel:`Commit` - K uvedení nabídky použijte :menuselection: a -->, například: :menuselection:`TortoiseHg... --> About` - K uvedení souboru použijte :file:, například: :file:`.hg/hgrc` - K uvedení příkazu, zadávaného na příkazovém řádku, použijte :command:, například: :command:`hgtk log` - K uvedení textu, vkládaného do vstupního pole GUI použijte ``, například: ``myproxy:8000`` ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/ReadMe-ja.txt0000644000000000000000000000363514023111777015362 0ustar00rootrootTortoiseHg }jA ̃}jArhɂ sphinx CXg[Kv܂B Ubuntu ł python-sphinx pbP[WƂĒ񋟂ĂAWindows ł easy_install R}hgăCXg[̂łȒPłB o[W 0.6 ȍ~ sphinx łΖȂrhł܂B PDF `ŏo͂ɂ LaTeX pbP[WKvɂȂ܂BUbuntu ł texlive-latex-extra pbP[WƂ̑SĂ̈ˑpbP[WŁAWindows ł MiKTeX IXXłB rhɕKvȃc[ Makefile gĈȉ̃^[Qbgw肵 rhł܂: html htmlhelp latex PDF `̃rhɂ́A܂ LaTeX `̃rhĂA cd R}hŏo̓fBNgɈړ "make all-pdf" sĂB HTML wv`̃rhAɃwvRpCsKv ܂B Windows GNU Make gȂꍇ Build.bat gƂł܂B HTML wvRpC MiKTeX CXg[Ă̂ł΁A CHM ` PDF `ŏo͂邱Ƃł܂B }jALqKChC ====================== }jÃ\[Xt@CύXꍇ͈ȉ̃KChCɏ]ĂB - ̃KChC Sphinx ̂̂ł: http://www.sphinx-doc.org/en/stable/rest.html#sections ********* ̓^Cg ********* ߃^Cg ========= ߃^Cg ----------- X߃^Cg ^^^^^^^^^^^^^ - L[܂̓L[̑gݍ킹ꍇ :kbd: gpĂBႦ :kbd:`Ctrl-A` - xA{^Ȃǃ[UC^[tFCXɕ\̂ :guilabel: g܂BႦ :guilabel:`Commit` - j[̑I :menuselection: --> 𗘗pĂBႦ :menuselection:`TortoiseHg... --> About` - t@CfBNg̏ꏊ :file: g܂BႦ :file:`.hg/hgrc` - :command: ̓R}hvvgœ͂Ӗ܂BႦ :command:`hgtk log` - GUI ̃eLXg{bNXւ̓͂ ``(obNNI[e[V2)g܂B Ⴆ ``myproxy:8000`` ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/ReadMe-nl.txt0000644000000000000000000000414514023111777015376 0ustar00rootrootTortoiseHg Documentatie Om deze documentatie aan te maken moet Sphinx genstalleerd zijn. Voor Ubuntu is dit het python-sphinx pakket. Voor Windows maakt u de beste kans met easy_install of pip. Om een build te doen zonder waarschuwingen heeft u Sphinx 0.6 of later nodig. Om PDF bestanden te maken heeft u LaTeX pakketten nodig. Voor Ubuntu zijn dat texlive-latex-extra, texlive-fonts-recommended en al hun afhankelijkheden. Voor Windows is de beste keuze MiKTeX. Eens alle voorwaarden voldaan zijn kunt u de makefile gebruiken om doelen te maken: 'make html htmlhelp latex'. Eens 'latex' aangemaakt is gaat u met cd naar de resultaatmap om 'make all-pdf' te laten lopen om de eigenlijke PDF bestanden te maken. Eens 'htmlhelp' gemaakt is kunt u de eigenlijke HTML Help Compiler laten lopen op een Windows machine. Als u geen make programma hebt voor Windows kunt u build.bat gebruiken. Als de HTML Help Compiler en MiKTeX genstalleerd zijn kunt u het CHM bestand ('build chm') en het PDF bestand ('build pdf') rechtstreeks genereren. Hacking in de broncode ====================== Volg aub onderstaande regels als u de bronbestanden van de documentatie gaat aanpassen. - Zoals voorgesteld door Sphinx (zie http://www.sphinx-doc.org/en/stable/rest.html#sections) gebruik: *************** Hoofdstuk titel *************** Sectie titel ============ Subsectie titel --------------- Subsubsectie titel ^^^^^^^^^^^^^^^^^^ - Om een toets of toetscombinatie aan te geven gebruik :kbd:, bijvoorbeeld: :kbd:`Ctrl-A` - Om een veldnaam of knop aan te geven, of eender wat in de gebruikersinterfaces verschijnt, gebruik :guilabel:, bijvoorbeeld: :guilabel:`Commit` - Om een menukeuze aan te geven gebruik :menuselection: en -->, bijvoorbeeld: :menuselection:`Bestand --> Instellingen...` - Om een bestand aan te geven gebruik :file:, bijvoorbeeld: :file:`.hg/hgrc` - Om een opdracht aan te geven om in het opdrachtvenster in te voeren gebruik :command:, bijvoorbeeld: :command:`thg log` - Om een tekst aan te geven om in te geven in een tekstveld in de GUI gebruik ``, bijvoorbeeld: ``myproxy:8000`` ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/ReadMe.txt0000644000000000000000000000356414023111777014773 0ustar00rootrootTortoiseHg Documentation To build this documentation you need Sphinx installed. On Ubuntu this is the python-sphinx package. On Windows your best bet is easy_install or pip. To build without warnings, you need Sphinx 0.6 or later. To build PDF files you need LaTeX packages. On Ubuntu these are texlive-latex-extra, texlive-fonts-recommended and all of their dependencies. On Windows the best choice is MiKTeX. Once all of the prerequisites are in place, you can use the makefile to build targets: 'make html htmlhelp latex'. Once 'latex' is built, you have to cd into that output directory and run 'make all-pdf' to build the actual PDF file. Once 'htmlhelp' is built, you have to run the actual HTML Help Compiler on a Windows machine. On Windows, if you have no make tool you can use build.bat. If the HTML Help Compiler and MiKTeX are installed you can directly generate the CHM file ('build chm') and PDF file ('build pdf'). Hacking the source ================== Please follow this rules when hacking the doc source files. - As suggested by Sphinx (see http://www.sphinx-doc.org/en/stable/rest.html#sections) use: ************* Chapter title ************* Section title ============= Subsection title ---------------- Subsubsection title ^^^^^^^^^^^^^^^^^^^ - To indicate a key or a combination of keys use :kbd:, for example: :kbd:`Ctrl-A` - To indicate a label, button or anything that appears in user interfaces use :guilabel:, for example: :guilabel:`Commit` - To indicate a menu choice use :menuselection: and -->, for example: :menuselection:`File --> Settings...` - To indicate a file use :file:, for example: :file:`.hg/hgrc` - To indicate a command to enter into command window use :command:, for example: :command:`thg log` - To indicate a text to enter into a text input field in the GUI use ``, for example: ``myproxy:8000`` ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/TODO0000644000000000000000000000033211534217015013547 0ustar00rootrootDescribe path editing and [auth] hgrc section Finish patch page Need a page explaining merges and merge undo (tie together various parts) figures/visual-diff.jpg new figure for p4pending new figure for import, email ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8994138 tortoisehg-6.9/doc/source/0000755000000000000000000000000014742203610014361 5ustar00rootroot././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1737033607.959414 tortoisehg-6.9/doc/source/.static/0000755000000000000000000000000014742203610015726 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source/.static/.keep0000644000000000000000000000000011534217015016641 0ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/.static/tortoisehg.css0000644000000000000000000000044014023111777020631 0ustar00rootroot/* * tortoisehg.css * ~~~~~~~~~~~~~ * * TortoiseHg stylesheet * */ @import url("default.css"); /* -- figure styles ----------------------------------------------------------- */ .figure { display: block; margin-left: auto; margin-right: auto; text-align: center; }././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/archive.txt0000644000000000000000000000447114023111777016555 0ustar00rootrootArchiving ========= .. module:: archive.dialog :synopsis: Dialog used to make an archive of a repository You can choose from quite a lot of formats to make an archive of a repository. There are the usual compressed formats, of course, but it's also possible to make a folder of the uncompressed files in a place other than the Working Directory (like a clone, but without the .hg folder). Such archives, for example, can be useful for doing builds (similar to 'svn export'). Archives may also be useful for sending changes to external people without access to the reposity, where only the effected files of a given revision or set of revisions need be included in the archive. From TortoiseHg --------------- From the changelog context menu in the Workbench select :menuselection:`Export --> Archive...` for the choosen changeset. .. figure:: figures/archive.png :alt: Archive dialog Repository Archive Dialog :guilabel:`Revision` To select the revision you wish to archive or export. :guilabel:`Only files modified/created in this revision` To limit the number of files in the archive. :guilabel:`Destination path` The filename or directory where the archive will be created. The archive is filled with the name of the current repository, suffixed with the revision number of the selected revision, and has the appropriate extension of the selected archive type. :guilabel:`Archive types` Here you can choose the type of archive to create, ranging from a plain folder with files to a variety of standard archive type. :guilabel:`Hg command` This field displays the command that will be executed by the dialog. :guilabel:`Always show output` To have an logging output pane with the results of the command while it runs. Archiving a repository means create an archive file or subdirectory with the contents of the selected revision. From command line ----------------- The archive tool can be started from command line :: thg archive The syntax is :: thg archive -r [REV] -t [TYPE] [DEST] where [REV] is the revision to archive, [TYPE] is the type of archive to create, and [DEST] is the name of the file or folder to create. See `hg.1.html#archive `_ for details, or type :command:`hg help archive` at the command line or in the Output Log of the Workbench. .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/clone.txt0000644000000000000000000000454514023111777016236 0ustar00rootrootClone a repository ======================= .. module:: clone.dialog :synopsis: Dialog used to clone a repository To clone a repository you have to run the clone dialog. From the explorer context menu select :menuselection:`TortoiseHg... --> Clone a repository` or type :command:`thg clone`. .. figure:: figures/clone.png :alt: Clone dialog Clone Dialog :guilabel:`Source` It is the path (or URL) of the repository that will be cloned. Use the :guilabel:`Browse...` to choose a local folder. :guilabel:`Destination` It is the path of destination directory, a folder with the same name of source repository will be created within this directory. Under the :guilabel:`Options` expander you will find: :guilabel:`Clone To Revision` You can limit the clone up to this revision. Even the tags created after this revision will not be imported. :guilabel:`Do not update the new working directory` If checked, after the clone the working directory will be empty. It is useful when you have to clone a repository with the purpose of central repository, or backup, where you have only, in the future, to *push* and *pull*. :guilabel:`Use pull protocol to copy metadata` When the source and destination are on the same filesystem, Mercurial tries to use hardlinks. Some filesystems, such as AFS implement hardlink incorrectly, but do not report errors. Use this option to avoid hardlinks. :guilabel:`Use uncompressed transfer` To use uncompressed transfer (fast over LAN). :guilabel:`Include patch queue` To also clone an MQ patch repository along with the main repository. It is possible to provide a patch queue name that differs from the default one. :guilabel:`Use proxy server` To use the proxy server configured in :menuselection:`TortoiseHg... --> Global Settings --> Proxy`. This is enabled only if a proxy is configured. :guilabel:`Do not verify host certificate` Skip checking server certificate for https:// url (ignoring web.cacerts config). :guilabel:`Remote command` Specify a Mercurial command to run on the remote side. :guilabel:`Hg command` This field displays the command that will be executed by the dialog. From command line ----------------- The clone tool can be started from command line :: thg clone The syntax is :: thg clone [SOURCE] [DEST] where [SOURCE] and [DEST] are, the paths of source repository and destination folder. .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/commit.txt0000644000000000000000000002763114023111777016427 0ustar00rootrootCommit ====== .. module:: commit.dialog :synopsis: Dialog used to perform commit The commit tool is second most commonly used application after the Workbench. Not only can the commit tool commit your changes, but it can also examine the state of your working directory and perform most routine maintenance tasks (add new files, detect renames, manage the ignore filter, etc). .. figure:: figures/commit.png :alt: Commit dialog Commit dialog Features -------- Enumerating the toolbar buttons: :guilabel:`Branch dialog` Shows the current branch name of the working directory. Normally this is informational only, but pressing this button opens up a branch maintenance dialog. Do not use this feature unless you understand Mercurial's `named branches `_. :guilabel:`Recent Commit Messages` A drop-down list of the 10 most recent commit messages. The the drop-down list is filled the first time it is opened. :guilabel:`Commit` Commit selected diffs in checked files. :guilabel:`Undo` Undo (rollback) last immediate commit. Your commit message will be available in the message history, so you can easily repeat the commit if necessary. The file list has four columns: 1) A checkbox that indicates whether the file is selected for an operation. The toolbar buttons only operate on checked files. "Partially" selected files have a special check state. This column header is checkable, it will toggle the file selection states. 2) The :guilabel:`st` column holds the status of the file, defined by Mercurial's status command, one of 'MARD?IC'. A status of 'S' indicates a dirty subrepository that needs to be committed. 3) The :guilabel:`ms` column holds the merge state of the file, defined by Mercurial's resolve command, one of ' RU'. See the merge section below. 4) The canonical path of the file relative to the repository root .. note:: If the commit tool was started with a file pattern or selection, a button will appear at the bottom of the file list that can clear the file pattern and give you an unfiltered view of the entire working directory. The :guilabel:`Status` button has a menu with checkable options that toggle the display of the various classes of files {modified, added, removed, deleted, unknown, clean, ignored}. *Removed* means a revisioned file has been marked as removed. *Deleted* means a revisioned file is missing but Mercurial has not been told to quit tracking that file. For instance, if you rename a revisioned file in Explorer, the original filename will show up as deleted and the new filename will show up as unknown. By right-clicking on the new filename you can bring up the rename guessing dialog which can discover the rename by comparing file contents and mark the old file as removed and the new file as added while recording the whole operation as a rename. *Unknown* files are not tracked by Mercurial, but they also do not match any ignore filters you have configured. Unknown files are shown by default because they are usually files that need to be added to revision control. It is recommended that you keep your ignore filters up to date to ensure that is the case. The context menu of unknown files has an option open the ignore pattern tool. *Clean* files are tracked files that have not been modified, while *Ignored* files are untracked files that match a configured ignore pattern. Neither of those file types are shown by default, unless a the user includes such a file in a selection (explorer) or provides the file name on the command line. Change Selection ---------------- Change selection is the process of selecting which of the changes you have made to the working directory will be included in the next commit. The commit tool allows one to exclude modified (or added or removed) files from a commit, leaving them with their same state after the commit. This somewhat violates Mercurial's precept that each changeset describes the state of the repository at a single point in time. When you exclude files from the commit, the changeset you create may never have existed. But since file selection during commit is sometimes convenient, and is supported by Mercurial itself, our commit tool has supported this feature from its first release. New in TortoiseHg 2.7, the commit tool now allows one to partially select modified files. This means you can now exclude a portion of the changes you have made to the file. This further violates Mercurial's precept of committing the state of the working copy, but it is a very useful feature. The most commonly cited example is being able to check in a bug fix while excluding all your debug instrumentation so that you can continue debugging after the commit. When the user has excluded one or more of the changes made to a file, TortoiseHg considers the file partially selected (and this change selection feature is sometimes referred to as **partial commit**). Partially selected files are displayed in the file list with a special partial check state. The diff view pane has a context menu option for configuring the marking of excluded changes. :menuselection:`Mark excluded changes` toggles a strike-through indicator on excluded changes. This setting is primarily a personal preference, but future versions of TortoiseHg may extend the use of the strike-through indicator for partial exclusion of individual changes. This new partial selection feature is similar to hgtk's `chunk selection `_, but is superior in several ways: 1) Change selection is integrated directly into the diff view. No mode switch is required. 2) The working copy files are not modified during partial commit. This avoids serious file permission problems on Windows. 3) Change selection is possible for copied or renamed files, with one exception. You cannot exclude all of the changes because this excludes the entire file from the commit. TortoiseHg has had a shelve tool since version 2.0 which can move selected changes from the working directory to a patch (or between patches) but the partial commit feature is very different in that it never modifies the working copy files. All it is doing is excluding a portion of your changes from the version of the file which is committed to the repository. After the commit, all of your excluded changes will still remain in the working copy. When the commit button is pressed, the commit tool checks if any of the checked files are partially excluded. If any such partial commits are required, the commit tool builds a temporary patch file which describes how to generate the contents of the partially excluded files and passes that patch file to TortoiseHg's partial commit extension. This extension triggers Mercurial's commit command with special hooks so that the partial commit file contents come from patched tempfiles instead of being read from the working copy. After the commit the temporary files and patch are deleted but the working copy files are completely untouched. Keyboard navigation ------------------- :kbd:`Ctrl-Enter` Trigger the commit :kbd:`Ctrl-E` Reflow the paragraph currently under the cursor. You must configure a message format policy for this shortcut to work. File Context Menus ------------------ When right clicking on files in the file list, you will get a context menu of commands that are applicable to the selected files. For unknown **?** files, the context menu will allow you to detect renames (if you think the unknown file is a copy or rename of a revisioned file) or to configure the repository's ignore filter (if the unknown file should never be revisioned and you want Mercurial to ignore it). Merging ------- The commit tool has a special mode when it is opened in a repository that is in a merged state (either a merge is in progress, or an update was performed that caused a conflict). The merge state *ms* column is especially useful in this mode. Files that are marked with *R* are files where Mercurial and/or the user have successfully merged (resolved) changes from both parents. Files that are marked with *U* have unresolved changes. You can use the *Restart Merge* context menu option to restart the merge for those files, or you can use the *edit* context menu option to resolve the conflict by hand. The *Restart Merge* menu option allows you to select the merge tool to use to perform the merge, or even to pick one version or the other unconditionally (internal:local, internal:other). After the conflicts have been manually resolved, you must use the *mark resolved* context menu option to change the file's merge state to *R*. Mercurial will not allow you to commit a merge if any files have unresolved *U* merge states. For your reference, *local* is the revision you had checked out when you started the merge and *other* is the revision you merged with. To undo a failed merge attempt, you must tell Mercurial to remove the second parent from your working directory. This usually means performing a clean update of the first parent. The merge tool has an :guilabel:`Undo` button which does exactly that. Once you have your working directory back at one parent revision, you may restart the merge process. Commit Message Pane ------------------- The commit message pane has these special context menu options: :guilabel:`Paste Filenames`: Paste checked filenames into the commit message at the cursor. :guilabel:`Apply Format`: Apply configured message wrap policy to current message. :guilabel:`Configure Format`: Opens the settings dialog to the :guilabel:`Commit` tab. If your project has guidelines for the format of commit messages, you can configure them in the settings tool. The commit tool will enforce your policy at commit time, and you can ask the tool to apply the format to the current message. The :guilabel:`Commit` tab of the settings tool has these two configurables for commit message policy: :guilabel:`Summary Line Length`: Maximum length of the commit message summary line. If set, TortoiseHg will draw a line at the specified width. Subrepositories --------------- A `subrepository `_ is a feature introduced in Mercurial 1.3. It allows one Mercurial repository to store references to external Mercurial (or potentially other VCS) repositories, and to include the state of those external repositories in the main repository's history. TortoiseHg 1.0 introduced rudimentary support for subrepositories, and only in the commit / status tool. When Mercurial considers a subrepo dirty, it will appear in the commit tool as a special entry in the file list with a status of *S*. If a subrepo is included in the file list of a commit, the subrepo is committed along with the other changes, updating the .hgsubstate file in the main repository root. Configurables ------------- :menuselection:`Commit --> Username` Sets username associated with your commits (see :doc:`quick`) :menuselection:`Commit --> Summary Line Length` Configures a 'policy' limit for summary lines :menuselection:`Commit --> Close After Commit`: When set to True, the commit tool will close after a successful commit. And three other features for *advanced* users. :menuselection:`Commit --> Push After Commit`: If configured, the commit tool will try to push to the configured URL or alias after each commit. :menuselection:`Commit --> Auto Commit List`: Comma separated list of files that are automatically included in every commit. Intended for use only as a repository setting. :menuselection:`TortoiseHg --> Max Diff Size` Configures the diff size limit From command line ----------------- The commit tool can be started from command line:: thg commit [OPTIONS] [FILE]... aliases: ci commit tool options: -u --user record user as committer -d --date record datecode as commit date use "thg -v help commit" to show global options For a quick help on the format of date type:: hg help dates .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/common.txt0000644000000000000000000001270014023111777016416 0ustar00rootrootCommon Features =============== .. module:: common.dialog :synopsis: Features common to many dialogs These features are common to many TortoiseHg tools, so we document them here just once. Visual Diffs ------------ .. figure:: figures/visual-diff.jpg :alt: Visual Diff Window Visual Diff Window In TortoiseHg 1.0, the visual (external) diff infrastructure was refactored. The new system uses tool descriptions in :file:`mergetools.rc` to detect most common diff tools on your computer (including KDiff3, which ships in our installer) and select the best available tool. If the user has selected a merge tool (:menuselection:`TortoiseHg --> Three-way Merge Tool`), that tool will also be used to perform visual diffs, bypassing the tool selection process. However the user can still select a separate tool (:menuselection:`TortoiseHg --> Visual Diff Tool`) for visual diffs if they chose. The merge tool configuration file contains optimal command lines for each tool, so no further configuration is required by the user. They only need to select the tools they wish use, or accept the defaults. The visual diff system will use any existing extdiff configuration it finds. Since extdiff did not support three way diff arguments until very recently and still does not support label arguments, you will likely have a better experience by disabling or deleting any extdiff configuration you may have. The visual diff system will directly use the selected diff tool unless the action you are attempting requires the use of the TortoiseHg visual diff window. The list of conditions includes: 1) The selection of files being compared require multiple tools 2) The selected tool forks detached background processes 3) The selected tool does not support the required directory diffs 4) The selected tool does not support three way comparisons 5) The file changes include renames or copies When the visual diff window is used, the temporary files are cleaned up when the dialog is closed. Thus it should be left open until you close all of your diff tool instances. When your diff tool is launched directly, the temporary files are deleted when your tool exits. If your diff tool is launched directly to compare a working copy file, it will directly diff against the working file so you may modify it from within the diff tool. If you are comparing multiple files, the visual diff system will make a snapshot of the working copy files and track their initial sizes and timestamps. When your diff tool exits, the system compares the sizes and timestamps and copies modified files back over the original working copies. In this way, you can still modify your working copy files from your visual diff tool even when performing directory comparisons. When the visual diff window is used to compare working copy files, it always directly diffs against the working copy files since it always operates on a single file at a time. .. deprecated:: 1.0 The :menuselection:`TortoiseHg --> Skip Diff Window` configurable has been removed because it is now redundant. Adding Tools ~~~~~~~~~~~~ If you have a visual diff tool installed that is not supported by TortoiseHg, you can create a tool configuration for it in your user :file:`Mercurial.ini` file. See Mercurial's `documentation `_ on how to configure your tool for use in file merges. When that is complete, you can add the extra keys used by TortoiseHg for visual diff:: diffargs: the arguments to use for two-way file comparisons diff3args: the arguments to use for three-way file comparisons dirdiff: this tool supports two-way directory comparisons dir3diff: this tool supports three-way directory comparisons When building command line arguments, you can use the following variables:: $parent1: the file or directory from the first parent revision $parent2: the file or directory from the second parent revision $child: the file or directory from the revision being compared $parent: a synonym for $parent1 $plabel1: a symbolic name for the first parent revision $plabel2: a symbolic name for the second parent revision $clabel: a symbolic name for the revision being compared Obviously, $parent2 and $ancestor are only meaningful when used in three way diff arguments, for viewing merge changesets. If your diff tool cannot use the ancestor revision in any productive way, it is safe to leave it out of the diff3args command line. .. note:: On Windows, the `executable` parameter can use environment variables using the syntax ${ProgramFiles} If unconfigured, the default value of **diffargs** is '$parent $child'. The default value of **diff3args** is "", indicating the visual diff tool cannot perform three way comparisons. If you create a new visual diff tool configuration, or improve upon an existing configuration, please email it to our development mailing list so it may be incorporated in a future release. Word Diffs ~~~~~~~~~~ The TortoiseHg Windows installers now include TortoiseSVN's scripts for comparing (and sometimes merging) many binary document formats. These are configured in the site-wide :file:`mergepatterns.rc` as handlers for each binary format's common file extensions, so no user intervention is required. In order to support file extension based tool selection, TortoiseHg has added support for a **[diff-patterns]** section equivalent to Mercurial's `merge-patterns `_ section. .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1735997214.0 tortoisehg-6.9/doc/source/conf.py0000644000000000000000000001407214736233436015700 0ustar00rootroot# -*- coding: utf-8 -*- # # TortoiseHg documentation build configuration file, created by # sphinx-quickstart on Tue Jul 21 23:42:44 2009. # # This file is execfile()d with the current directory set to its containing dir. # # The contents of this file are pickled, so don't put values in the namespace # that aren't pickleable (module imports are okay, they're removed automatically). # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. from __future__ import annotations import sys, os # If your extensions (or modules documented by autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. #sys.path.append(os.path.abspath('.')) # General configuration # --------------------- # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = ['sphinx.ext.autodoc'] # Add any paths that contain templates here, relative to this directory. templates_path = ['.templates'] # The suffix of source filenames. source_suffix = '.txt' # The encoding of source files. #source_encoding = 'utf-8' # The master toctree document. master_doc = 'index' # General information about the project. project = u'TortoiseHg' copyright = u'2010-2025, Steve Borho and others' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. version = '4.7' # The full version, including alpha/beta/rc tags. release = '4.7.0' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. #language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: #today = '' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' # List of documents that shouldn't be included in the build. #unused_docs = [] # List of directories, relative to source directory, that shouldn't be searched # for source files. exclude_trees = [] # The reST default role (used for this markup: `text`) to use for all documents. #default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. #add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). #add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. #show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # Options for HTML output # ----------------------- # The style sheet to use for HTML and HTML Help pages. A file of that name # must exist either in Sphinx' static/ path, or in one of the custom paths # given in html_static_path. html_style = 'tortoisehg.css' # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". #html_title = None # A shorter title for the navigation bar. Default is the same as html_title. #html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. html_logo = 'figures/thg_logo_92x50.png' # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. #html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['.static'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. #html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. #html_use_smartypants = True # Custom sidebar templates, maps document names to template names. #html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. #html_additional_pages = {} # If false, no module index is generated. #html_use_modindex = True # If false, no index is generated. #html_use_index = True # If true, the index is split into individual pages for each letter. #html_split_index = False # If true, the reST sources are included in the HTML build as _sources/. #html_copy_source = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. #html_use_opensearch = '' # If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). #html_file_suffix = '' # Output file base name for HTML help builder. htmlhelp_basename = 'TortoiseHg' # Options for LaTeX output # ------------------------ # The paper size ('letter' or 'a4'). #latex_paper_size = 'letter' # The font size ('10pt', '11pt' or '12pt'). #latex_font_size = '10pt' # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, document class [howto/manual]). latex_documents = [ ('index', 'TortoiseHg.tex', u'TortoiseHg Documentation', u'Steve Borho and others', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of # the title page. latex_logo = 'figures/thg_logo_pdf.png' # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. #latex_use_parts = False # Additional stuff for the LaTeX preamble. #latex_preamble = '' # Documents to append as an appendix to all manuals. #latex_appendices = ['faq'] # If false, no module index is generated. #latex_use_modindex = True ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/daily.txt0000644000000000000000000000034114023111777016226 0ustar00rootroot*********************** TortoiseHg in daily use *********************** .. toctree:: :maxdepth: 3 common explorer nautilus workbench init clone commit shelve sync serve guess ignore archive .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/debugging.txt0000644000000000000000000000531214023111777017062 0ustar00rootrootDebugging ========= .. module:: debugging :synopsis: Debug problems in shell extension or dialogs Dialogs ------- Stderr is being captured to a buffer that is being inspected at program exit. If any serious errors (tracebacks, etc) are found in the stderr buffer the entire contents are sent to the bug report tool so the user can (should) report a bug. If you suspect there are errors that are not being reported, you can set the environment variable **THGDEBUG** to any value to disable the stderr buffering. If you have a bit of Python knowledge, you can also use:: thg --debugger To disable the forking behavior of thg, you can either set an environment variable **THG_HGTK_SPAWN**, or add the command line parameter '--nofork'. Windows ~~~~~~~ To debug the changelog viewer, for instance, enter these commands into a :command:`cmd.exe` window, while inside the repository:: set THGDEBUG=1 thg --nofork log Linux/MacOSX ~~~~~~~~~~~~ To debug the changelog viewer, for instance, enter these commands into your shell window, while inside the repository:: export THGDEBUG=1 thg --nofork log Shell Extension --------------- The debugging mechanisms depend on your platform. Windows ~~~~~~~ See also https://msdn.microsoft.com/en-us/library/cc144064(VS.85).aspx for some info bits about Running and Testing Shell Extensions on Windows The :command:`DbgView` tool from the SysInternals suite will capture debug messages from the shell extension. However, the shell extension does not emit debugging info by default. It must be enabled by setting the registry key defined in :file:`win32/shellext/DebugShellExt.reg` in the TortoiseHg source repository. You can double-click on this file to load the key into your registry. Another option is to exit the :command:`TortoiseHgOverlayServer` system tray application and start it from the command line. It will emit some debug information to the console. Nautilus ~~~~~~~~ Debugging is done via the environment variable DEBUG_THG * to test in a separate process:: DEBUG_THG=Ne TMPDIR=/tmp/anydir/ --no-desktop nautilus [path] * to test in the main instance:: nautilus -q DEBUG_THG=NOe nautilus * permanent debugging, set DEBUG_THG in a file which is read on session start (~/.profile, ~/.xprofile) Upper case characters in DEBUG_THG specify modules. Only *O* and *N* for *OverlayCache* and *Nautilus*, respectively, are supported module names. Lower case characters imply parts. Only *e* is supported, implying *error* messages. To restart nautilus, chose either 1) killall nautilus (the session restarts nautilus automatically, stdin and stdout go to ~/.xsession-errors) 2) nautilus -q; nautilus (stdin and stdout are on the console) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/explorer.txt0000644000000000000000000001207314023111777016771 0ustar00rootrootWindows Explorer Integration ============================ .. module:: explorer :synopsis: Windows explorer integration .. _explorer-context-label: Context Menus ------------- TortoiseHg commands may be accessed via the context menu of Explorer windows and other applications which use the standard File/Open dialogs. Here is the context menu for a revisioned folder: .. figure:: figures/cmenu-nofiles.png :alt: Context menu Context menu for a folder under Mercurial revision control And here is the context menu for selected files or folders: .. figure:: figures/cmenu-files.png :alt: Context menu Context menu for file or folder selection TortoiseHg provides dialogs for the most regularly used Mercurial commands. Less frequently used and newly added Mercurial commands may be accessed from the CLI (command line interface) through :file:`cmd.exe` on Windows. Overlay Icons ------------- TortoiseHg provides visual representation of the file status via overlay icons in the MS-Explorer windows. This is similar to those that found on other Tortoise client, such as TortoiseCVS and TortoiseSVN. TortoiseHg shares the overlay icons with TortoiseSVN (version 1.5.x or later) and the other "Tortoise" projects via the use of TortoiseOverlays (another project created by TortoiseSVN team). .. figure:: figures/overlayicons.png :alt: Overlay icons Overlay icons in Icons view (XP) The context menu has an :guilabel:`Update Icons` option which forces TortoiseHg to refresh the icons in the currently browsed repository or directory of repositories. The taskbar icon will turn green and the directory icons will turn into question marks while this refresh is in progress. Shell Configuration ------------------- The overlay handler and context menus are configurable. From any folder background (even the desktop), right click and select :menuselection:`TortoiseHg --> Explorer Extension Settings`. This opens the Explorer Extension Settings dialog. On the tab "Context Menu" you can promote individual menu options to the top level menu. .. figure:: figures/shell-config-cmenu.png :alt: Explorer Extension Settings dialog, Context Menu tab Explorer Extension Settings Dialog, Context Menu tab On the "Icons" tab you configure settings related to the overlay icons and the icon of the "Overlay Icons Server" in the taskbar (in the notification area of Windows). .. figure:: figures/shell-config-icons.png :alt: Explorer Extension Settings dialog, Icons tab Explorer Extension Settings Dialog, Icons tab :guilabel:`Enable overlays:` If checked, overlay icons are shown on folders and files in the working directory (woking copy) of Mercurial repositories. (Default: checked) :guilabel:`Local disks only:` If checked, overlay icons are only shown for volumes on local disks, not on network shares. Scanning for Mercurial repositories over the network may result in high latency in the user interface of explorer. Check this option if browsing network shares becomes too slow and/or you do not need overlay icons on non-local volumes. (Default: not checked) :guilabel:`Enabled Overlay Handlers:` These (per user) settings provide the possibility to disable overlay icon handlers in the shared TortoiseOverlays component. The TortoiseOverlays component is shared by all Tortoises (TortoiseHg, TortoiseSVN, etc), with the goal to avoid registering too many icon slots, by using a common set of icons slots for all Tortoises (thus using the same set of icons for all Tortoises). The total number of overlay slots available on Windows is fairly limited and depends on the exact Windows version. For example, on a pristine install of Windows 7, there are only 8 free overlay handler slots available. This section allows to disable certain non-essential overlay handlers, to reduce icon handler slot consumption by the TortoiseOverlays component. Unchecking handlers in this section increases the chances that important handlers like "Normal" (green checkmark) or "Modifed" (red exclamation mark) will still get an icon slot, even if there are too many handlers registered on a computer. Unchecking handlers that are not used by TortoiseHg (that is: Locked, Readonly, Ignored, Deleted) is highly recommended, if you know that no other Tortoises (e.g. TortoiseSVN) uses them. Make sure the "Added" and "Unversioned" handlers are enabled, as these are used by TortoiseHg. (Default: all checked) .. warning:: The "Enabled Overlay Handlers" settings affect all Tortoises for a user. A logoff/login is required to make changes in that section effective. :guilabel:`Taskbar:` Checkmark "Show Icon" to show the icon of the Overlay Icon Server in the taskbar in the notification area. "Highlight Icon" highlights that icon using a light green color while the icon server is busy updating cache files in the repository (files :file:`.hg\\dirstate` and :file:`.hg\\thgstatus`). (Default: both checked) One can selectively disable overlay icons in a specific repository by editing the :file:`.hg\\thgstatus` file inside the repository and replacing its contents with a single line containing:: @@noicons .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/extensions.txt0000644000000000000000000002713114023111777017331 0ustar00rootroot********** Extensions ********** .. module:: extensions :synopsis: Describe extensions bundled with TortoiseHg binary packages This chapter describes Mercurial extensions that are shipped with TortoiseHg binary packages for Windows. These external extensions are included as a convenience to users, so they can be easily enabled as soon as they are needed. Hgfold ====== `hgfold `_ is a Mercurial extension that helps Windows users deal with filename case collisions on VFAT and NTFS. It adds options to the following Mercurial commands. Type :command:`hg help ` for more information:: up - allows you to update to a revision with filename collisions merge - allows you to merge with a changeset that would create filename collisions The extension does not currently do anything to prevent filename collisions. See discussion on the Mercurial Wiki **Installation** To test the use of this plugin, you can specify it on the Mercurial command line like this:: hg --config "extensions.fold=" status You may want to add it to your Mercurial.ini or a repository's hgrc like this:: [extensions] fold= If you do this, you can omit the --config command-line option. **Warnings** Like all merge operations, fold.py has to change the parents of the working directory. It is still in early testing, so use with caution. If you get an error about an unknown changeset after running :command:`hg recover` try :command:`hg debugsetparents `. You can find the number of the tip revision by running :command:`hg log -l 2`. Perfarce ======== `Perfarce `_ home page. This extension is documented in :ref:`perfarce-perforce` section of :doc:`nonhg` chapter. Mercurial-Keyring ================= * `Mercurial Keyring `_ home page * `Keyring Extension `_ wiki page Keyring extension uses services of the keyring library to securely save authentication passwords (HTTP/HTTPS and SMTP) using system specific password database (Gnome Keyring, KDE KWallet, OSXKeyChain, dedicated solutions for Win32 and command line). **What it does** The extension prompts for the HTTP password on the first pull/push to/from given remote repository (just like it is done by default), but saves the password (keyed by the combination of username and remote repository url) in the password database. On the next run it checks for the username in :file:`.hg/hgrc`, then for suitable password in the password database, and uses those credentials if found. Similarly, while sending emails via SMTP server which requires authorization, it prompts for the password on first use of given server, then saves it in the password database and reuses on successive runs. In case password turns out incorrect (either because it was invalid, or because it was changed on the server) it just prompts the user again. **Installation** First, the extension must be enabled in your Mercurial.ini file as:: [extensions] mercurial_keyring= **Password backend configuration** The most appropriate password backend should usually be picked automatically, without configuration. Still, if necessary, it can be configured using :file:`~/keyringrc.cfg` file (:file:`keyringrc.cfg` in the home directory of the current user). Refer to `keyring docs `_ for more details. .. note:: On Windows XP and above, your encrypted passwords are stored in the credentials subsystem using `CredRead `_ and `CredWrite `_ .. note:: On Windows 2K, the encrypted passwords are stored in the system registry under HKCU\\Software\\Mercurial\\Keyring. **Repository configuration (HTTP)** Edit repository-local :file:`.hg/hgrc` and save there the remote repository path and the username, but do not save the password. For example:: [paths] myremote = https://my.server.com/hgrepo/someproject [auth] myremote.schemes = http https myremote.prefix = my.server.com/hgrepo myremote.username = mekk Simpler form with url-embedded name can also be used:: [paths] bitbucket = https://User@bitbucket.org/User/project_name/ .. note:: If both username and password are given in :file:`.hg/hgrc`, extension will use them without using the password database. If username is not given, extension will prompt for credentials every time, also without saving the password. So, in both cases, it is effectively reverting to the default behaviour. Consult `[auth] `_ section documentation for more details. **Repository configuration (SMTP)** Edit either repository-local :file:`.hg/hgrc`, or :file:`~/.hgrc` (the latter is usually preferable) and set there all standard email and smtp properties, including smtp username, but without smtp password. For example:: [email] method = smtp from = Joe Doe [smtp] host = smtp.gmail.com port = 587 username = JoeDoe@gmail.com tls = true Just as in case of HTTP, you must set username, but must not set password here to use the extension, in other cases it will revert to the default behaviour. **Usage** Configure the repository as above, then just pull and push (or email) You should be asked for the password only once (per every username + remote_repository_url combination). .. vim: noet ts=4 projrc ====== `projrc `_ is an extension that makes Mercurial look for and parse .hg/projrc for additional configuration settings.The file is transferred on clone and on pull (but never on push), after confirmation by the user, from a list of servers that '''must''' be configured by the user. For security reasons the user '''must''' also select which ''`projrc`'' configuration settings will be transferred (i.e. no settings are transferred from any servers by default). The user can also configure the extension to automatically accept all changes to the .hg/projrc file. This is useful for centralized setups where you want to distribute configuration settings to all repositories with a minimum amount of setup. In particular, it can be used to remap subrepository sources, as explained on Mercurial's `SubrepoRemappingPlan `_. **Configuration** This extension (as most other extensions) is disabled by default. To use and configure you must first enable it on the Settings/Extensions panel. When the extension is enabled you will see a new entry, "Projrc" on the settings dialog. This let's you configure the extension by setting the following settings: :guilabel:`Request confirmation` If True (the default) you'll get a prompt whenever the extension detects changes to the remote server's .hg/projrc file. If false, the extension will automatically accept any change to the remote .hg/projrc file. :guilabel:`Servers` This setting is a comma separated list of glob patterns matching the server names of the servers that the projrc file will be pulled from. Unless this setting is set, no .hg/projrc files will be ever transferred from any servers. :guilabel:`Include` This key lets you control which sections and which keys will be accepted from the remote projrc files. This is a a comma separated list of glob patterns that match the section or key names that will be included. Keys names must be specified with their section name followed by a '.' followed by the key name (e.g. "''`diff.git`''"). To allow all sections and all keys you can set this setting to "*" (without the quotes). :guilabel:`Exclude` This setting is similar to the "''`Include`''" setting but it has the opposite effect. It sets an "exclude list" of settings that will not be transferred from the common projrc files. The exclude list has the same syntax as the include list. If an exclusion list is set but the inclusion list is empty or not set all non excluded keys will be included. :guilabel:`Update on incoming` Control whether the .hg/projrc file will be updated on incoming. It can have the following values: * never: The default. Show whether the remote projrc file has changed, but do not update (nor ask to update) the local projrc file. * prompt: Look for changes to the projrc file. If there are changes _always_ show a confirmation prompt, asking the user if it wants to update its local projrc file. * auto: Look for changes to the projrc file. Use the value of the "''`projrc.confirm`''" configuration key to determine whether to show a confirmation dialog or not before updating the local projrc file. If False (the default) you'll get a prompt whenever the extension detects changes to the remote server's .hg/projrc file. If false, the extension will automatically accept any change to the remote .hg/projrc file. If both an include and an exclude lists are set, and a key matches both the include and the exclude list, priority is given to the most explicit key match, in the following order: * full key, exact matches are considered the most explicit (e.g. "''`ui.merge`''"); * pattern (glob) matches are considered next (e.g. "''`auth.bitbucket.com.*`''"), with the longest matching pattern being the most explicit; * section level matches (e.g. "''`ui`''"); * global ("''`*`''") matches. If a key matches both an include and an exclude (glob) pattern of the same length, the key is ''included'' (i.e. inclusion takes precedence over exclusion). **Usage** Once enabled and properly configured, the extension will look for .hg/projrc files whenever you clone or pull from one of the repositories specified on its "servers" configuration key. Whenever the extension detects changes to the remote projrc file (e.g. when you do not have a .hg/projrc file yet, or when the contents of said file have changed on the server), you'll receive a warning unless you have set the "Require confirmation" setting to False (in which case the extension assumes that you accept the changes). If you accept the changes your local .hg/projrc file will be updated, and its settings will be taken into account by mercurial and TortoiseHg. If a local repository has a .hg/projrc file, you'll see an extra panel on the setting dialog. The title of the extra panel is "project settings (.hg/projrc)". The "project settings" panel is a read-only panel that shows the settings that are set on the local .hg/projrc file. Although you can update your local version of the .hg/projrc file, the panel is read only to indicate that you cannot change the remote repository's settings, and that if the remote repository settings change your local copy will be updated on the next pull (if you allow it). The "project settings" settings panel is shown between the "global settings" panel and the "repository settings" panel, indicating that its settings are applied _after_ the global settings but _before_ the local repository settings (i.e the settings specified in the repository .hg/hgrc file). **Additional Information** For the most up to date information regarding this extension, to see several detailed usage examples and to learn how to use it and configure it from the command line, please go to the extension's `Wiki `_. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/faq.txt0000644000000000000000000001027114023111777015676 0ustar00rootroot************************** Frequently Asked Questions ************************** *What is TortoiseHg?* A Windows shell extension for the Mercurial revision control system, similar to the Tortoise clients for Subversion and CVS. It also includes a thg application for command line use on many platforms. *What comes included in the TortoiseHg binary installer for Windows?* `Mercurial `_, `kdiff3 `_, `TortoisePlink `_ bonus extensions: hgfold, perfarce, mercurial-keyring. fixfrozenexts, python-svn for hgsubversion and convert extensions, and dulwich for hg-git use. See :file:`extension-versions.txt` in the TortoiseHg folder for more details on the exact versions packaged. *Is Mercurial on Windows compatible with the index service and virus scanners?* No. Like TortoiseSVN, `we recommend `_ to turn off the indexing service on the working copies and repositories, and exclude them from virus scans. *How can I get translations for the Explorer context menu?* The available translations were stored by the installer under :file:`C:\\Program Files\\TortoiseHg\\i18n\\cmenu`. Select the locale you would like to use, double-click on it, and confirm all requests. *How do I do merges and arbitrary version checkouts?* Merges and updates are intended to be done within the :guilabel:`Workbench`, using changeset context menus *Why can't I connect to an ssh server (remote: bash: : command not found)?* TortoisePlink (and basic Plink) will try to use the :guilabel:`Host Name` configured in Putty under the :guilabel:`Default Settings`. It adds this host name to its command line parameters, causing the hostname to be specified twice, causing this particular error. Clearing the host name from the :guilabel:`Default Settings` is a possible workaround. *How can I use tool X as my visual diff tool?* Since version 1.0, TortoiseHg should autodetect most popular visual diff tools and make them available for selection from the :guilabel:`Visual Diff Tool` item in the settings tool. *How is TortoiseHg configured?* TortoiseHg gets configuration settings from two systems. 1. The Mercurial configuration system, which is three-tiered a. Site-wide :file:`Mercurial.ini` in :file:`%ProgramFiles%\\TortoiseHg` b. Per-User :file:`Mercurial.ini` in :file:`%UserProfile%` c. Per-Repository :file:`hgrc` in :file:`{repo-root}\\.hg` 2. The folder :file:`%APPDATA%\\TortoiseHg`: a. File :file:`thg-reporegistry.xml` holds the content of the RepoRegistry. b. File :file:`TortoiseHgQt.ini` contains the settings for application state (window positions, etc). These are some of the configurables that are stored in the Mercurial configuration system. :: [tortoisehg] vdiff = vdiff editor = gvim tabwidth = 4 longsummary = True authorcolor = True authorcolor.steve = blue *Where do TortoiseHg extensions look for external Python modules on Windows?* TortoiseHg includes an entire Python distribution bundled up as DLLs. The standard library modules are all in the :file:`library.zip` file in :file:`C:\\Program Files\\TortoiseHg`. If you try to use an extension that imports a non-standard Python module, you will find that the extension will fail to load because it can't find the module. For example the ReviewBoard extension imports the simplejson module, which is not part of the standard Python distribution. In order to make it work you need to add a couple of lines to the top of the extension's .py file, before the line that imports the foreign module:: import sys sys.path.append(r'C:\path\to\module') Note that this will not work for modules distributed as .egg files; the supplied path must contain the module's .py or .pyc files. If you have many extensions and/or hooks that all share the same Python package, you can create an extension which explicitly modifies sys.path for all the others. Simply name the extension such that it is loaded first (alphabetically). Something like:: [extensions] 00setSysPath = C:\path\to\setsyspath.py .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1737033608.007414 tortoisehg-6.9/doc/source/figures/0000755000000000000000000000000014742203610016025 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source/figures/advancedbar.png0000644000000000000000000000564511534217015020777 0ustar00rootrootPNG  IHDR!"^sRGBgAMA a cHRMz&u0`:pQ< #IDATx^Ir: ./\x#g " q,~WmK @___ /H H Hh+?N2@t:4bsz M6t:@pN2@Ȁ±Ё}=蟟ސt:fJE)t:3']x> HXh@/5BcWkz+:}؁!Ao2\yYm?Y>l˯iS (03Hh!rK8zG_bOzu ."舠b@ з Ɂo>t:SK- @F#}[ޠ\F&sI- _Pn-R>3DA sh%`^qqSNoiu6۱R{5f Exݻ_BEZQnlafuN\OWqq ѹ\jKSM4h%hkoǯzm{쮳~saD s^a֌ py>%o܉v1 袡Sw}Zn.5d\ P g(<ɂC@r `c}XqLSߟq5͔߱Zj K}pN$Pɖ<.oSE?<NЍmxoOn w^4ۦǔ[e܁$4DC@'EekA/¹8eQQ"R E~ jg BsYbm豔u>fy$<ڙ?<qWfYCKk<ە[S]ZV~@kAk2H9<@`H]rƪҘ9%mJ]:-sPm|1^?o/عbzM$.@sdZLuc+Dٝ#mݑk˝o-O~ N9vı0GX©QBz"϶PZ: everlX&r 61L fPm 2pc"x :/ݰ#Oo*T;:߆y90{| NMdsɨoWŎ롙=rϽ cg~d,&~$+q!=t-X$^Xˁ%k)9`[5ssE2P t%Zu!DwfGClzƄlZ :E=v #5]pz-3 |Nkq ڀ%~1ׇ4O=zcmǵ`ԾFFǙ *YyㅬRM뉠[ ANe8?:) #J^VoGHՠ:H}#{̡|8__u͏d+M~L{ }/Xa\@@Y^穵7) T *Кl86U1XSR$\,27O?$2 Cm 8Y%3S`o!@/*M22@#{kp5K6v7yR!]즅͓"P%.H}q@Gte^\_;EńH ivQxT>6^,{+q1k R!1.}\ms E2J+dlqq!A+RCJMbU(kYNFCg#$א-+7>IMNl~{HORיp i5.q>dP2CqJ ckϳroۨD,K :zm緔@C瀶a 7t-, ,2YaS$`xmx :2H=|<sxV|9X% f}4GVBRX4$:Цd}eNf7R\@Acq`MI+<4U#tS MVY6·rݾ1y,gnۍnuCye+;Q ^#6߰p͹DGUy`Jv v64\@?BMyẎM%u 1}(oȢpb#})зW 66>@:Ś섾oa_VsݿZg90_R^C:l{ @%@_˅zŁ:Cs @%@ߖW\   @I  ӦkE*!Z:@hNlk^tzE4AW%@@)Nٷ@ {u#^k~@D  :PO@okF$ ̑g= YC@i_,}>t:@Ё}Qt:@V^@^9q Ѝakw{GrOr,!Kt:/ k?FgO$RIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source/figures/annotate.png0000644000000000000000000032237411534217015020357 0ustar00rootrootPNG  IHDR1/sRGBgAMA a cHRMz&u0`:pQ<IDATx^׶읝Hxzvӻw"޼? r(ie/ 62k\"0K^ Sgm|{@۟sseTs5ѯs>2嚴h@;7u^_绗i*?4KC <&B'Խyr=k懴Zpg`ks}ۇ~9SN:~$Mqn|$(=_~r+xÌ!wqOFw>wp8i2z.5:̏Iq1s$Wk\];p,O9p!ߦU uOU>Ub .e9't̹RI_WԭXӵ@ᅥcNϊTeC2>˺>t0O?5WF}GD|Q}}isT_hʬ9 zS15zȽ]=µ0Qz%HO~"u'=y9놾N qX?}KKŔI~?U[I3wi0m!9E?{(ؗ)oP{Rx/hr 1|Q 5t}|#C yDzH2 R^{^={^x4bWou#zH R0Z{F槖-[R۶mo߾Y_ϹQ];{ s,A]bvPe]}E,XG~Ѡ iC4|Q~\hۏ(h#Qᰭi!mMƃ4q? \^vgxxڧ^:Ng5v;VzhEu J-ΰS'ث~vjx;Y,BlV7QK >mts+-"%ƷRSKMm#ƋSE;ZiNjhk5h!eΧ,)y?weK̥s)]9l,LLJ u!J;k:}MSKtAtAkt4oZqtWymyrp*>>>>RC{ͥ}}ӗRK(㠥ip e.lJمSa)Kfr+XIG<#WQ^֨Uoj1k(?kZ[ƭB aUxqk0)2v BWךaUWRqKcWR J]E!5~J8o,ĐUvh qn,uGIgR˩ЈT5 o); =x)5h EB9- e> }ge32YȈg!c9B7{̦t,ї'!]Q|;u)TNєc4}q24>0>EE@MڲKO XKcFZB-|z(zK-Fb *~?>mEq~i|7-}Y.YX弎t}}ͧ/MϻN>S4EVaI+J&Bp^K;}`6Jc0۴6j5 vz5j> 6b b}r$}z4}c|9~MkHk[efugƻPjzxvmMŸ%7sʄ2RS(/:GSf/G3ۚL >M$d Ugc ơ<}f!k^SM;NruqBy:&(tsg! AWi۹4v]e(P>MRH(Ep-{RKgKgąxl'ucAj c10h1ێddhx@# tP_j>X{6)T80eC 'ǭ $$g7r7tt:@m~Vjh ڰ0OAm؎ Pr6;%KvRsR9l!)jq]wRc]BJKvQ죾.0`1qT{ 4j*Jsѯ7S ,^ 1ݤ5T /^PBh,R/qVP"2ZX2BVPJــ(aJŐb3 ?ŏ?kw+)(yPk)JS1#yPm}au{'ԇfGϦOz̡TQX0\BPQ`$YpX1@Y:91.ĠBwN@M$ P P ܣVKhr^Cy#yǬ|] r `*u `B؟O+0 `T>b׺m1' HŰR:#. X*ZXyแrCr eвسtx&swxt* |3>ER@^>H^>|x;G+j,/4FDX5it8Xbp01(1L}D/۰1!ib[!#- Ҭ4 u( Su>| X w! Fch+`E={nO`sKbz^f 9#CcT`u|tMP&= 6 `p%Kz[X{+ 5W ML؇ǐ#?a5 8}ʊ̊a6(; C90~k [: a(0'y<-4FS^L6CHJc([єX 8 7S)/&M j LEݣTPS4*Շ5] f IΦ%ԔP3GΣ_ͧ_-<|!fUX%T0ê1P3&j)hXhLԠFjLLj17 1 ~BJlXCj7<`ks]ln y Cv3,9~& UNӣ4CL>N̘L'gDi,kz>.X4s"]1xȺ,EgEKW1:{}\.Z;c훏q: C-ڼ3}-?r xJ) ,⿲Ei3h٫8# nNd8:8sDXDaA<Ȍ܌Fo?bb[ֶ4 `3r!Ԗ4p#up6q/ |Om|!()H,`A5@ق Yb{0(DpP;őn.1eOO;0mئrKcRnCvnj(QM1C-18خ9kƛa5]OMR{=py<5XMu935젪Q9[YHe)/?p$&JL Da'#0`yaɏK>!F^` iaeG[0^\Xbl|7@K $C b`1Ì 2 J:GC>}"3s3Dd2PAƂ̄70#@fCL^7 / *'q CL@yia 12@Ɔ dx))K!<3~ brY@FArEB22 AF 1cb ,2@FBd3ni cA H & 14C^92( QC Co / :H)2 bd>0HA4!F!6bQ' F #v@0@L322>a7#v 2pTF _V > 1 8~@uuA 0ļ0(ejf:E a2 3 1n0c @D.aXx2 drbM1Ȍ 2K( `&"3"Bӕq GhdR1 d$ :cÌ/0@f`#3 d*#:#@QjTg0At~(ğ" 1 2> 290Ĵb$ȜnFOek%^w0 VN=Qq:ah8:2NCgY>=.@[s L_CCZwS%l:g{ǂ`{:NmD6Ob6dST`䫜bnK7.EpHT[N8 s s41$ ࡭Ia(]C1K@ÉG6[ \iab 3eYX ƈH Ѣ1z&1: _)1\BZ4fdfz4!&X4FD68"21ΨDdYLWsDd6: #aF>fGcsH! FDc4gEd42+##2bzEchH# dd4&!&PDFh u3"##1V4!+w4 јNeј4|#2 $1d$HH`XEc> cȶG`hC;"#1zDF-Ð#1دq"-5aZ5 b^A4FQh(0} lEil(Q2Q mO"2 2f0ba #5Y !$6q&^d3"2H;df}43 f"լ*3"7Ȕ2N82fTDf'0L+*2VTFT3fL+%ZwLhe㘶8ҴQUc^b|K\fGwRjO 05)[-AiPm;v3 =c~tx0:j$3:7vhC=_Ķ-t}žcx,L㼎]M?I16L̴3T`Z{PğbD*G͂+@;C  R83q {:AYa4%Χ'işX>M}:FSb}Et&c\C0/jGQBXD 0!D"IEϐ {h=4pK 28(!*>~BZcLɡToB[:@=1=xZwROB.vp:?HN @ʽ"jӘSP6˪qDf&D2d 1r*rH!id6X3tRb>``:7RXVL!Sz$HQb G38IxFӢHx8NƐ=L7`t5Rqgy: 2wMjie d+LO)q 212LG4J-SgdJ KR2Y2h כ|,2;)f)tII 8A/fĸT]ZY adD}ie2LH+@d!J+#22+ "2Vj_4ie @FEVfJ+ /# FDd|iehH+CpZa V˽"2#JV&R,C d,R&uD4FF ۈrIsFc;EcwAE1"L1 IDc<^'hʄRԳGc&t2f@F )g dDY| P(ʔD? < d1_EYۍ`#*םQ 3#"dP_STTF3éePDcLZ2d/*#AJ/AfL/siᎃHZ0-uHh)ƕb0 b@i9'/Rv]$%+vtV>*!!@iuumD;C.KG#Q~t:=՗7i!TWg }z`Ӗtad:7Y810:^v[\N?Df33]a_Y3C/:FGR 3 :#m'"J5ᨠ?b!3)OHPNS4{f;M9RPo, gꎔ.N#Zf?Q Q 2EN+~ZQ#1ERVN%cɃܜBR0« `"3GF`~jDcTv| `4QE &ƄG )fV4F c]7z̥"l>}.,e~ pw_x׏Yf71bdDJ+o!׍GdÝV(%_ݘ@Ђ`dj%+~GZd$ U?&ԯicdZ2* C1 2fd=*cבA]O8L#CHB% . ဌbdk;Q?W>\ɴ2Dc#Ac/LX2@"cIEdie 3 1%X+UQa'wDFH+cb8 uc`#!GcD_Z~ie*,̺1h {Nh_zdB],+LDdDȈh 0h0#x 0 VI""!|  E2̈F8LŒhJ-*ʕ] דa032^ ÕELo;ɸRi #bՓYcW"1|.xn7Mg>Χ q4S ga|ֆx,ӜMR-~.M{h=4O1p$fR-vM֬=iKδѫ3vCоޝi?tOg:ܧH{w~ yhMߠ1ۉNA'QK0<лI:^]hu`B b| ʙSoq_RfkΆXid] 1'ΧP6跩KDH)^ +ƒh9Z -9t"OӶВg|:qKQaJ"L{ pHXס}h>4/ks{N,@,L hzQBh*HBp 汢1."NXOqc֐}Lq(h.D{ RHp4{<a Am rgY3L ԭijsjZ,8hL)@Lqt2N% &7Z42THȈ0\?Z yW /_ťYhu)- & JֆX>xaF,}š>fh!̮ `ѥC ` (AB%>7δf'V 2~VfUbƨV̬h2!FEcDZF1>Uw4FK+ZR-q#"wj1!@FDdJ1"*xWAƪ/ؕgJ6x} q׏+ki쪎+"2 (^]dT%N+k2Ơ6|P0cCH/ed!ƝZ&*61 !Ȉd[)S6iw6)#2ZjdzZGi ieHN+C(5 2ǨJ í(JbfU#22F |y:dżl?Ȋ ` OG"E-%ҚB(b$'2%3_=Y_Mqj3܊Y^VKfz2p-"#2V f\OFLš @ K':2^ S[EeԓV MVĬG7BhkhR4fؘ-pzEЪhUMSZmlה6k5Ю)k߈B,O:"L:t:mC~(b8Vq&mSжִiFS/Sө+wh2 &?iz @L<N&T2 `~Ð0Su"1;u9N HxE`$8 >u`+.HT4=LƎX41"uMJՍU 1Z+ieј +nLT2bwEd)enע1VKe~1VsvZh%+;AFV/kׄq \Q֋__DbBEcp:(Qcf22 d8L1AJ1̲U DpDFV M-:2v4A2J2  nW@g‰H񥕍"22#AFYcp-_>\1iN- `FkIJN+Ց*@1l#t2ase_U7b Z,##02G 12Dc\}U*g dDQ/MLég 1/Vƭfl=*#Ukfj #2ddD! 2$LeZd"yfhQ %!uHYڌFrN/CS͹;MDd& 1ADdTV=ope 3bTSAM1ss deZQOM1 ^&c 7lALoh-T$-4XQǰ*3|Tj܉ *dKSib&*\:uN͆Mj1|bZAFΤ6Q3ϵnj?f4v.M_}'6aM.IхrRt4U4')@˿FezhsV<+m';KdQ<m6 h8FvZ1g3i8#i}7 6 1S19?"#SnсeW)e1:,ފ&RsRe-8x ԳXGéeb~4 )/* C˺)֫h#s[Yha+ۆ!Klk˩$sHg$]|Ҧ!lɥfEuĴYIO^.m8qZ"Zu2Z4m@k@h_'X+l! 9 4pƧ+ET42<b0 ([ xy.-:|ag-al )( cAdSTDdڡEhԏA)&?׋)dh*(b@99_l2(kr1_AYP_B 7rJ@TOE_8 /n=2͗R` 1|^WfT4%Q7(1ep˲~ WO+.M/{׏ 첪U/qA Vuc11e-@Q?nL C7ebp@rĨ:2 d@~ 12δ221` #.0cEdfUZ4ieR^ߊ60̈WJWdwDdDƙZƭhv2Gc2O+sZ7:qGd$8#2k~A8"_Zґ0#!FFdDH-bl { 2+c%e+L+C2ZdWkeag4&VZDc&Lfd #jA;"Qaᦙ%(a@0q@SrBшh 0N.2QVzDF +dDD2ZDd~2 #[.z2'zlW&Af+3>f#U9*OUz@<ܕ5]nQT@_@(B|eTThqs J'S9 $j)4&#m3&LIy2Q44=o&7#ɗ@K 3*h-T0=m)~WJÙ3gsϭoz[Fh=Z-~OO e2LhF4&Bzt :ؓPea:jPĿgEOP0\qpED`/ܿI{ }l&":vn;]3 >cǣ.:ʟ B$BǢXH ZŝCxB A@FA@f=LV2e8GdT1hJT" &Ga bxEc2ȴ2WG"cEc$8+)ed:T#A&IaUW?FXAjQ/X^JQc @F;F׏ }QehlLX..c$˂cLdIq6̑@xHf1ievE@e饳K 2^'AXm;HEd$Ĩh2ZˎcT%wD#; ie S: u%~A&}H 2;LeLhA3Y, #@P"2*,4H`Pφf}7Q# &Yf$Z-S N2fz"2& 0pDd|ۇ[.Ӣ2 3dʡs ZE2 c:b^Q0#"Q3"?(}*j(U=c 'NKn~S.Sހ8/[<@MHxAt #fQmDMB% M:'Fd#1!ј9hdP2;m&;usk:v}45"01\߯[~1bVTF C Tyszz{ݺ9O*S6Kr;xTH,G-6і 0H*IӞsaX| p\Nc}@R-W۷[Cٿˮ E%GI0tfvX_U=EʙFZ։+n&g5qk1IAeC$oJQ&/"VȾ[~bηĤO+\ 0DjPt~KLRRگ5ϵvvԷ9}K]^0DѨK3rDcpehܭT )e?(*s~ԟ^ xAIP6EEH!c-̈fe`AGEǬ27|˜Lti F^]ft %`$OcL2dh*"cV7Tiehvs ׍Z v4 b,Aɹ>crNX bT4Ʈ c1 #,#22Ġ&Շ1L2;"1zEH2VkeqWAF1H#h ;]1xf|]?FtK+?F֏uK+" "2\@Af QierZvȴ:UՏ@F|`d2 bh 11p4F֏qvQ[ie~M.h dEeV+_iea$ d­hV7Ft/Ό3̮oDI2ܚ0 LV`Xr0XybdnLVI&@ Lfeidҿ/*#: 3NTf8,DcXpԓ SL_ǘ%X}~ ,*;A"Z. 1UP ^ky 2 2 b&/N5 5EcM0^BÇ`t3-TrAj2t&4ښc0Ĵ5ڌjkiڪ)]!Mf*L%? Jhuق炴 r_eDjnl> T֔)@~*@ˡВ Bs.4ǟ]as mҏr+ f>1(Ort2e~qL-:WNǡmؒ|Qa| NWnmxb%!1\i% FwQsvNKhR0_ pAͥܐB{W(?S`rULV%#M`q4gMo@bVM-M\|*Efg rxZM'/<j6R+ .x~v!2$}1B)_42~ǹ-H[lDmlY@nmB(Dbz 8$EMg81l8T\cE}= p)E=_5˺b40P3s"DbFb#?ܖ;DJYm!f-q$"11" Q00 dH|J'OP c}t`ë*X_OsׇI,ƨVϬ:8^ddZGce_Z٧ZZJJ\?FV甲;Ӫe~ nUaEaD$# 0": &"1,GDjrYB ^֢1^Lh3 0 3 bl=>>ј7?F LFcV~d. 2QF1JVz,3L2P #Z3e drr?3ȨHH +'H^$Ȍle0d| a:2A@}f] dfJdTe/"2!^@aF?2zDƮ'H GdjX?UEdb2}ásYT,j`R.a׉Ҵ+51 #$R uh WniysM{^;w4_;ZX;Z\{WVCkOGk|K[nTtOo^~wϯX6W+El}oVWVU81h ǞsS{S4m7? f&ǭ3_n@; I>Gߖ10]vvNcU iƲhy[~1*4nECAwH%"nLAb0 ůyiY b?ĠaOpgRH /[5 ӞHBJ-C @b.+m5B^u%HY#w{߈8vN kȺ=k ,ң4u f4*E#. bA>?Q>}#1_cu0=G4 xHBDDbZx.5OFb"_EQ'&?ĨT20F@ `8 3A`c\]F`$( t2^(TJJ#@#,(y׉( Q}ieih_eTG',A&#fanAQiE\MV/"1јVKeAFvY)gHLд$ND/(d,xN0!~d2EcʸB^ɟIcdDF5lViSVeܤiУ1z1vDePc(qՏqV%]f ~ Rd1ΊZlL#;Ô #aFwLs 2b Z+ӛ]`T*A~|iwK+KHj+xԍ CȈ }e` 2VY2X#3:pC> 2@q Z+k7&@DM0e2|d CL Tdbr+Z:LfӜ5JE.|,֣-pbj#bvRqKњn*Q!m@!/X±;M\&ŠZ.urƚZAC'ѫU>ۧbͣyмz1L PLʴaZ٨2i\CV*Ѷh(㻄~fk; 7cظYBU8^ Zd hô)T*GtmTa"1oDH̿A<`ڳ11 0m=ۿ?ѐҺmihL3j8ޟ(BFH4DcEH/Z/\?0ܤ.O Čb8 e/!љ*:!3ņm 16;QڎHYmCfb(MDirxݶ "#1k'xN!Ce9 )c- 1" 1 1 -aYlQՈƬ:yuc.q܏ :[-ߍ:1;<ԉI^BG 10 0Y/YQ?},`! GaXi1iXh,p0aAEw<>S0[sw`]?D/ ̨T22̄䯵&RɰOZ972iz122bX=:t0 1 2bјHHYf-3@_ V&[,#J) U?$)2VL)-2V:Ĉ0c$(qWAFA ,J8+:DU?2UnK2Ya2 h *{֍)!]ߊƈʴN0?AA1_%>xdjI!:T.ie}Ǡ Z__6 >]gi#[,FeLJΈ( d#FG'd&R#)-R>Ļ4]J0 OȄJ)Kd%/gɀ9"pFd \ ue 0`dB<P3QM$StF l_T&+@ie RLTed$@=L);h$d2fl2 \&Z/ɬt^U:谼u!j%G]~:0uB*RɫH ƻL^M]֠ߘ}]54seO]Cig*ĸ4:^PoKXO}Y37+ވ~cYyִt1-n՘nDK[7eiUZ׾mvh@;6PlBj.9XzؾmǶ:ԧCpmc/GS̫mC]b 2ve@gbbU_@- #!f,i6/M~-:uPioIXt3iE Q?)e+P_b ZZEKdWi׋ivMԆXcT:`vxA]w]WMt2սd:N8"#A:ֲXY2g#\e؏sӻ6&˖G[_z ׯZ_[<Ô>ۑ>vr//%GVlG'׈ 1PDYc*|CA5:>:8T :b:h\,yr8^/Č߃52ڲ9a/*cY= vKQ7ԃ,B LDa#)wu=XĠN C Nmtv27s AE~l(\q4aF dׇA; ucDJ#2(`q/Hq 4 jR ᦄYV~N "1 P_QYr۽OYei1 X+r1J1!z]f`[}ǰEXnu)[kuw P73PS!u(- z1dDZY&JDV YN_Yʊ!+,Jه}]A"1D$FX id,* |Q~T`K`%^^,G%ioqۣMQ?F;c\k9 )@8d~dW,h; L[(#-IF2T.B@!ŕT341 `-a?2c(9 &/!z }+Ct4%l>GK'ϩfP, nTQovfb&;q A\ -+>_~SfY忲>WDgd7!l`~1S~s&2z33"e׭Lg e5˃+#옉g8iK8Ln3B4-q/AQHyӢmQ,c?,,[WԲ܏ɬ0E T&\Fs8G䲨̯\TkAܧ;e˹9 0uaDˎ>d0#ɺ1P$Z7cɍ HS+~ b u!SdԍFg,b4ZJ)닊:l?HOĔ-ieR0+ SEÑETI)eU/F#ՀTe5?E[,[I >"1}Qw?Rim엣߽p_ qkIK'*[ F Zt-1a(/tztڀj/F6E^3Љ=(~l;o6?[:pZ8/:x)4k,:i5CNcv&C'Eu:,^@gϦQ}7Ж}Gi!#Q cLZw@{:TJwwǃwthk!u_-HE*HCHvzxZ6-uc`2nnug\(@SQcL4*LQ於&ss̭VfE^iSυz{Jݪ "NEzR~q"+ђ% q>u1kFa]FMAS˫1rֲՂ=M1sD*ZroW1/^W _ XL(܃hyp[@L崀N :^A*U瞣WZgi1 eUl._gJYa/i4:& QNh =di,YJ-ubJNXM_NL1+BYn eX6e(Q8\߂dDAKX&eTe"b#Ǫ;}$Aa,5.RP@IS OOP@8,1(HX7uKgɞ?밴u}isDȂ11 hEpPKT4=a'T3wFe1Q˜b s1@љ%+ W Oh5C%?Ů[@&nP]_t밊abIa?q  |C48Ja[[kk{˅~njsZ *9vC^,؍3LMa76pXz&7D 69699eG v*`V<[_baeƳ U& ~l~0ҳ>gA;CrҠ_,>TpO9dK0 c@T2#0ĭ[%2KXWl˅ϸpBhZ<3}C$+YBj.eBGl ͻg]Xи*³PO;ұXgEASa'nR 6 pޟ MDkg p1[`H>C[#1>bh>:cO]*Qj?-9 p^4pYp]_f!ޡvk:y4 :5f )XC۬۬ldǽaPvX'ea.O$ KM8\PnRy0 ۳C<̋,qKA%szj,hpeHA W Z TdB?+3"׃qqdeBe\ߊCXyWghA䅡EH RmEE]D]LՆDdY)d Pw$Fׂ-cTS:/ KPRѡo)co)K1V"R?ʃq[%1)/ƥJSoJS><2BJIUIW}TS~Jw**GTOPOʧgHe)5UȐ*>5IMeӧ2RQtO_~J?b?@ߧK!J}cgNC+chédZfʖiv]dt.f De:/N4\OFBD@L{b1=ޫvSEd~)N2҄ ""3[+CXtx aIAA_WZzp/:+Qh2Je~⨑D]z0Bdcp h1ȥ.AsAs@O͊;zEyJ1>?p.̛i)yS@hEdB0> _Nj:A|"M:1B.CPVm>BѳjG8\ە{Y Gave2TꟵs?1h  ^%:YQ@Laq13FXyQ?ܢLq>d0њ,pM|5f}ed_3Zp# (hCAC//P?iPK QBA& :fa@\CJ%!O*@o& 6|D+g@dB5+ _L|ωԤ\ha,ORy(nü|V#k5:-,)Z*BUR0"MT|Lȇ./bte%GB +7+-C& B.XKp!g!kYj.PO}}}2ܲᚲלO9؎fN( ;A(g9CYh P Ba%l$Ā % _lX Vi<-_ѥ8rR*M*ԅb@l¸u>Gz(Ǿ3ؙp>Y`p=9o9 uI̟m+W\ܩHO ̛A"u#= @@O'H('a  Prc^n,c2V~7 V~΍y aX4*k* aX Xׅ?>\'P%hjyQ1(k\xw aJ2}^ -H#x)m})+".2"RƠPD]*" Wgp *WeD[ c-,-2R'Bqĥҿ%2, wtٔԮfkiXZ,bAv[{ukڏ*B<L !ӈuC/:J -T8溎^IR:cnqq W-lk ׅe8m#0x;`#jwt>be2@LY[MTd?OF!. (lRȔDjYIM t2X@*6JkMQpXY2(dY%(h!_.@Nn@+$"YHik.KeG4G4gC!a :p>}P@_U {/!^_/`K<33c}׳ˆ}dDrAEy/F|NBT ѓbcX0T@T!@7D)DH`| X=+Q$hFq& J_*ʈ!A `Sdƅ&aIR[1OHׯv<5ˣ7'\/BUscUGTZSaa;;?A?B?x찾Cڷ(½.*:7YbxOC 1VA<_%->Ba?x ln`Y\pD4,ʉ 9X(|eGA,; wJPS}PB!%u5k+*SPx(R~Pԥd@A3PB¸fVD c\/H-8pPt+56 a~˲)e#.`#s.B++l(JqQ5eA43u 2_3+<+ x(qٱ&B:]Q* _({mkT/o83pEpoXEua~Qk]BX_@q[hY%Y_q_R~Rµ~k.%X[ <|gK>JqDMLo| 8)f@ KA Jc (A?LX?@_-<`CdU&WT8AWDX~TN,j,JuDXj@59% RŐHHjB= 4P/ Zj9uZO[o-ۢI=>ȶ~Cw6QGKб7.P׹[luC1;;R[F=Pb|vꭴh;_b8p)k B_}!P8ZFVYH߲đ!-0## r:~/QX{8'%eW~cqtt9_}!/ fxIpoOcS|=֏a=r=N 7.Iu7R? _p,<,u`C`-$Ox G@-W%vo%yZ5>xhMiYi:uMCk.DFP >x Ld(AGq[->rt|F<;یbaz84Rp5` C b00 2x0 1`5c^_F"0ڃ N~^jit75]A:Y=L[Tuf4u:eU@dB}oJP+/%,GaL_A_ P(+R|.8bFD0 kHB Rl _ \*@ \8Kç׵Ȟ.yQu kõr5 llC[DMO҈|d4Lbhg & m*UPT ME#~ UͰ4s;fvPYH[dеa}TmV>[[5glK0T 녡XrO{ ՞ji9 lէmSJU1^6DoJ`hUQPY 4@?{|[|طRxJT*_dG| PޯΣ(E% `Z3fS! W(,@!Rj&4C(? n$C:/-lW_>n1KRXPHj"j"%P3'#b"aD6V[T|o7cP{@H{ b - J] m|@ S':=Jb0z >PŻ~hc5! !bv[C C %XBJ'D 4r{}+10ɎL`XQIk eId6D c<^>)uHlϚ؟JLJa4r>bbz= 8&|3$GI%,CV[,?; PǠr? ЖX:O 1Hzc.wDMQ{@3ϒl̳kqhK31-44MU:S6D2|t!Dx8! e,cܧ1hhg(@(:bkƕc]0m N:i 6h?}φ }ì̬BDf>l/CmQEXj:o'5A P7kP]XРZ,j"SS3MT U e2 gJͲ_˶UHWPMfR. o *%`? XBr۲:,}> *hAASJ<PVY o-c*B@+lYv:e lυ*6`UgOug4{Wq\n4OPOScb^Ӆ{|Za^q XqEmﯖʡ8L[C B?6%ssbq]B͡fsj 7Rh5Yj!? Y_Ru:Z,RMR H Ju}F4 []I@N"$Yv*X(v6*k 6µ(Ƶq! ( !Gy4PiSײ( K,/8_qsk몁kkYZJ_ 6HQIK8k[Q URMZ#6iV]RHͮsSzh<H7Pqoub{!@#% ZHǪhK0`llGV`!я6VRҵ !(H GKDAXЂikKm%CѢABwBG'Խ)F7@ F 40v hF! 4.bR{haag G45i#-  ᡊP(%xD/& Z$@ICCh@S JӶ#[QA6LoCpbfc:p&֛);Fӷ([Nqa Y<}'^ RcfaKG( E|-(4 aǓ,E쯃X*Baz 5@5sA=9̏;E P_Yic/t㖖`˗bt-vN!% @(,>8ri>ݚP\{i+ƸYqg<3nvh Ed&F8&~LO`Jpc>ux8X 1Xcltph"} P2N6B >ܥadXw 65Sg! r?u]uP'xmnjo]f.jm+]B-;s[s0m _(pХ1 _Qj!7W}V}JQ UӺꢠj!:8C($Q: i3FaJW-LBa >m8BkcYmSq~CD؞lf(7x 0f$(-¸*_cd/zWڇq!F-ꤩ3;/;G}?K<uŴO+Lwl'wK1Lz`>ΩK9^ں.݋q.,ع lYS'w=hSjXj{ ~ gK<--+-FCAM&HjJQBᔍj|> J0^2 uX(jP诅4& ~]50]T0P! 7Ĺ;%E-^²nF͕1%i-BVNQce'F yH;N,pX ;}j},D}ŚKI^rI5ym\uܧ88צl'\K BKتlOKoBxe@ḭqIm XZz[#\Ke>ƸCml [ c}vnuYAP7,hDž2 ;:`73HppȈdh`im^;tfߐr%aVM ,D;"CCҫ8 z@Dt)꽕8":pXz4 x YX0G҈x\_hkhKc@R,Ce6h31 /ʁ>a@ijy,kz #(MeH:x`@a8) !s!;XNPF M b8B[ xݝ\+BϚ' %|(mz6gA@S\,#)D*`\cHH|l;7vBDX-{Q>Tߏ/Ҋ×h!4{ :J L+C -%̗ZfiK+o-|cZaZ-ث4wQlfrf'5ypS*)XPa 1͊D'b>kB m2hq[O `8Z@$>'9 :N6;uК#oaQ7KiA Z =4B"ȥn(в.:cy>" i[-Ip{oX r0x;"~BPO(ڡږh;,o~C$76 |[q(YuV_]T?L[}ܩ5ǩK֢;hZ4ۭk ^$}q/ CC(4iga4 xv6IF`]qi:Qe@I*NO]OS]ط3V'8XȂ?v?Ph`jR[@-NۺQ)4BabgkMr=.L5#.8WΞx.z ;?7OO@h%a}~lvi@z#%;2'z̓=vQ/K,!m* (1@G2D41 e0ds L PXyPq0a JGqk-MXDEu>J14ޤ8(By tLOGgPRfn?Hq[ۑ٘?2}v4}$@2hZL38ZE [(_.B9sqyAtʪ-؇2( ,u}ajq΁q[2۱kZ<}>wY+ aZ.y}hUU0`aUr*?zNߠ'n&> }ql۹a B7,_:ɧuFk]ZiҚ#ִNCH\4K^ C3ҲW{@δ7z>o^,=E3ȻsYXƚis$yYbX3w0q1-5ChγA;T[0~@_1Fc8iY,"JRиMhFCc63K7B(KrФIQxepI>Qf  s(8icR(' AP 1Pb(dBas!遼1;H,^>bDJ*D`auz'i̦3E9[uǴm4qK1 E"EA4MƸSKKGiS@5pǗY%PB!{PW_5GcaScĻOj4gJ^B>;ٶF;I[;0\|l[hK˲ (ulhjT.B}U(۔m=g y `;ឳOy;oK q4Kq}qN?^O NJ1(}<gv$kx|q|g*õ&pWA09Bk>\&_yŸ\EYG~`3b+e[m~8źmk;mo'tmxmuk ٲWXtcBXG] |[x\-;rwVA+@+\ep{.Aa!.,M08PW:д(X><,ChOsw_ ]iv%Ob/bu tQj%kBT+MA) N(&+ahh2 ĺ&a X,U҇ɧ :Q@Ks  p?zclQ 5\ąQ( uP0cǙE` d*aH{_Wޚ{Pݘ͎PsV;V ]hQ ̣m@B([G>k!F\ ixF&?6e_;ⲧxOFn[6l7a+i/I 2A/mN>&l @#Pels/|f4}}d0 ?,4cZ~Gas&4-7e-%)< Ͳwap1n >4q K6Iug(L|dͲ4CpvV4߉ Ci!B(,BD('hsֲ`rZЪƴA`ܧ2Ci- x{tg |C! uPΗ6Ƈ|K1T` 0),mAYeۭ(o;r8 e`a,|Dn<tF%5--j><u 9/8uZ=g} oIUO :tAL{;!x;\v f3g3VxVtN` -:d-|aK+e3xuVXιuQ^zBNX!L.c3cQ92΁㺮pKW1ߖ,/b;>/3%n;v!r $m@Ltڄ CPV LEj S-BT*WS51yy->m[}eC?&ϛ_^5bT VoB?W硔}0 ]SwA{i#6db!Ts#0>`|0>|:zJO;<iڌ9Wq1m@ t[wǩa9#c0>`|^0Z ў\ şe=9 &cBt#Z}YkђT&?ze5/AOadl`|0>`|+揊[ӕO)d: &CtCZC+j4{=׆ #c0>`|^0(u2Ĥ˚z@KśtuN_M*ԥ'^нό 0>`|x>QV+dvO;O$"1i"K^r>-po8D6[ɋdyM0>`|0>}CB@=2 fl`|0>}! 1Gbf KsYd|@7G yS:ytϛO#F }{iyt7vNIa1 ir/"`|@|N+#1b3Yl\Dc$Ԡ{E&-v/ ܟvM/_;wnk7(n8xmF+طdotC55x&xf70>`|GG:=ډhN+#t4d2`|G4,*DM,+n?ͅ?H6A[M:o bϦ;ciź-TjcڴcyN^Cfi)BtztH6M j^|W:7X刌{0>|@e2;M,uEGDdKSo+c3t0u[{tMr-vIw=ACz.F֡3ОLkV}'ݨjҾ>3uy<)4/0>`|@}!FU역d׉.Wu`~GO`nݺA'4=:VјDӦn/%mC0>|@BLKu$d9  V$Ğ5qSo4s j׹7m;#pms^H 1U 9ٸ X% 0;w=WVºbRփg^~0>`|^laA~'2 &KtcZTZTk 슋Mvi۾s}yH);:8t$EՉQsVQb]5?#Aukgo]W2y0>`|RHɎd5ݼ6L\:x.xHj4{cZ'v&m۱mG.•t#?m~8ŤYS5?݆nidIlC ;ݨK#3d)dzIeH~>SvK=qvcKNHL}y:'GC͇9aZ!OCz=xXJo@6#OOK\;HY.;?hr"LtE3+>zlH1ooBK~/4sO=1>`|HiAWbNaƆJ⧠[ [D&8v.⍛HrRLAjVƕ Jjia0-ڶRߺ>@Xrvnb|E':R 0lT̉5S1b_'gΜۻcgx|!׺-ݧ}?} sDb"b>ݧnSܩ;-Mo/u@@oK/gtC G`rOgNjjSm5Ȉ&W-~_G{>NlA{ҍӍR_~FH)ː}Oۘ&߮Ӽl4>`|xGzgC>=hb>D:GbN݂dn#lsK@̯ bnt=B*4\Q.K : Ӭ /tgt۴B7t,:ҼK0>CLt#A恀1_)& &!斈\XqS$&Pt~/UR]mdnOm%0L \4>`|ބ0Tm؆n>|NG`|200D1Y# ЭhK@P2"1ӨX!6>`|0>|!'TyC{2KVGdY祛wж2)јQ'@qWƶƶ0>`|^>SFc#K,p[4)"s`|Uh+ t*mb>N%Ed*ݸ}6ǟmѮ×i@&/{Bn\M{//("ct=ڴ1ghKÇ1S;F^^՝2֎c&c&5<$ط 0>`|[ 1WEu!>"2d &VB@̎# Rۈ 1ZKkxIaSs37>f|e`)Urƞ;N@0~J@?NCqbv&b66>֢aW!]D$i`/z㱾g~ ͹=7a*sV-%-Z#֕eu v`|b~j f1DtV:ԉ!*vrx*c=D'PÈr3~y^&|LǴ;  L?9M^7`Ou\gd@[Q,A8 NSdU;Dz@40>`| 9Ƿzidg2iͮӴiev$+D-{ND}]Zdbn,Y\,_CX^g@E#an@Oc[,3 Q^ub{5ӯ)=w8j<R˂el׍mm0>`|*֦PoyTR?42,~bq˾~bD'n,Y6Q_#!a>x]fAN4tc~C:``;csx~ksO??/9bPqNjY!421>`|x>QR=xj.[]/+ɾʑn}H;G#щut&s=\@, ZmIPy!o;dL˖=Q[v? -s礟~t_ǵ笟Vbs, t_>klclc|H>QZ#Zr[]_~bRG G`N`7 bn=çlQu+:dhJ'+?[Ow?y|>VQ_ޏ{QY?s*Y뜝.;AO?k l<-5ly\.0>`|kѵOh{,t;{_@̧iSD܅k A;\Ncl0~[oC0>`|?~ۂ{J/>Gb><EW`|\gt@yx1)"gbtS{6B5wh wP%l|)̡rbq0>`|>`. (Eb" ! 9c4&w҉s 0>`|x>rH!;x1Rv:YB%gfX1QsS:u0>`|? "@ƒ 1 {0AbN_x@F0>`|j`Ns0GKIN.섘}V3f bnΠU#c0>`|^0Z_$F@s4[T2M:1w0>`|0>}Æ7 yB>)Ne'kdl`|0>`|*[Ɋ`Q|&sN]Dbp~KR%Ŭ5260>`|0>`|@t:tT>yF}B3ː;w0>`|6lM7,a0CLGgqPKu80>`|0>`|}Ft :~㙥>_flyOh5u<~~$6o;`0/ 0>`|5ۏ7_CLt)"k"t _B]퇯Ѷ#Kf`may0>`|b@6d,D7>{/@pEx>@/ Ę0>`|$' 1S&$}V>CݥU1c4q 0>`|^;![>Y8qBjI:{k]1b^&/\)0>`|1op~Y/1CWoާe[G)fQ3nk1c |y1>`|x>2v$˯rb-Gh# 4g.ݦ+yԉ1/R2_-cwcwHI> X.#1s>l;B˷q$FiDb+_Db1K-%̹5>`|osɠI-`|) AW?{>~!; ջNrqTmļ#c ƼRK͜W0>b#칈8 &KdAym>pQhYw]ꄑNC""iqAhY ")""§AuS l YyKlCuu9Y.u+uՃ7oN[?vZS~}wTAC:}lHKy_eo0>| $d]nB;^z2mw.\Ge*KĄ,>۾ӠH@EArXV`|-T?zбkυ8,u-oQ)ŞI'och@s$pFBDFZ2ttA0q@BE_@ G\EM^}zdSF:"3|PMjд)mܼYDhBy_eo0>|z6ts:|#WH2E_<|F{ܥw)-u:]h>pL "MJ}@ԊSbR| U QN݊D(`X;7y.2m !cL[.!կK'stP ss:t !&)"' #@ٻ?}v#*s#XIPGʕV`wG0D]wiYr#J+ C/[Mߟ||ckbQAVҙ_ W xt5oː#jbzaDkצa#G?10>`| E@zb>Y 9 Www/ 1zet̒_b:B.8j]x*x?0h{+>ZШzXk'xiz7Gj3kbe0>|RfHI@ {KŇtw]~< *Q| 6ҽ s{"1ZAK+N񵄨}UGE"aٳoo- XmSԲuKר1@ݙp"2bK-%̹5>`|oT\='s#[/.5kфhhl0iЀ7mL4Ld)2j^ocs0>`|@``̰3Pw_j/dGbr?yZOl P~-" PN( ~lq[MhJي8S߂%gy~b6uu3?晳gBJTVuQ&R2͙7M)SE,QUY*`٩ӧCfHy0>`| 9A Wwa էC@La@L2+]B:W%zW™iڀe^Wz`bK+9̹4>`| GUCd r)HvG2C\*6n ѧg+ }$=11Ea~,0>`|8"Z'Ǭz\wnb9  qL$nU w$ed31楕^Z\?0>`|z?1W/2oӨm2d) Ę0>`|$'`:\o&<GIX6c^Ze0>[_}z> I"ZsR0c &a 6c^0>|@A ?z.NNhIdsg1260>`|x> 1ZQ˕N1 @,7( LXS;a66000000000:0WЗ%!&OTM,pLda۬d,`,`,`,`,`,`,`,`,`,H 8!FN-YrB'u fXN0          cbCdOXfqsZ$"1RA~b1YXXXXXXXXXX qp@ 8 1 26Fg9zkt 2Wm{a6000000000:0ܸ]z,t#!T_d܅ļpTJ3L>U6*b!=9$!&#CNd4zHLIܭ0[          c'p$s0s@L86          $!9d4qq;&, م@K'C$@HUN͊Ijw$V_U#1y:'ĭU3%1;3000000000𶀳6#WHyeG?1O 6 c:0z_XCb`|0>>b!v=EO}1'obX0hr^ ,0pfP] &CDbNݲaI,̞ 0>`|><Tudie|_:̜BlTQ;T'jM 0,l^UK|z.-  x3ڰKՉd YݻNyv5k,`,`,@ ߄̬O<˗͛tmܹ#yݻv8$/|HIAQKG=h rbg޵]$t+ccc7᭻s'G KEcHLdts:tXtS^31I3L߻vҽ5j,`,`,P ߄Z̬[edt3{_K"|UO~_._JsM2q kPDtݛ>࿁wGVN=/'wڇY~(;37ni߾$uw[,_DN'K3@u'FDd6h.޹G?VhyB(GD Z)=BUρ\oAu-ݪBk;^?}K`ʑ\כ=0 9@@ۧ<~}۩CrVsI9> /2+9eGU? FLͩSN4dȼ 9 a)!&QZu$=q?EnߥUO:WUN//B&׳ q!?(8^*ulHs_/qzP_u#| b{-#Џf4fMcwc7 W?3X7q_1pр_YC94P†3(iHM&MYfmy#a_49s"sV=Nk'BE$51Ϟ i>ZA{hz!y΂ZEp8\WcGڇ>Տ:=c{붍vVF(wm^mB3 6uq.a3;0_3nllll|  *X962e}}1O˲|}QFN9P$SHQQQxbZj_6oL֭ Z!\s bΡyڤj$A:8 ebxY 0z|z79Bu>0|mALؾ}Q4>`|@7A]l' "zoL>?g v}!!Qm FEbVĕ_ FFNeh }pꬄSd$FDGbb g2N0.91=Q}i/esA>y>:r $\yvy樎(n{ޅz3owz<=['BL׽Է}X%c#Nh?26262>v71C;w"o{}t)2{',e,NΡ*s f"b̙Xh/9}ĔI~b<}FфмjZ~k*Z~͢lըj6LWrwyj>j73d8sU?\Y'7x>M~o++Ty71y?{5~.ʏr*il8˘XSO(;''8 #@;%ak }&]AW?ru&:〘 nr}Ym^~Y@g=N$ޖs~f- ',flv 1H/"cCLE.Ze{6t]+tXI!my߻04_tI׷/^3vRB[q{${z^0>x+~oA$TE&-);'HbꑘtC:| !t3ԠE!tރ$<z'^~bN>zS"1eZBY?>Gޘ{@M0~0a~U{5dз38r)IcQM> t|-aqk7{b1`| b8N'S=|:A@ӝPm 1ϟ?'#igϞSx׮y֍0>oy>|y=vVk.3g=Ocƌx;k׮A '"Oj6iOwp~@&b}=zw5aEވ7Nl$Fov͌M0>`|$GP3rHzÇt>ݹ{M+ߡ/>y ;v;@6oÓbtq?91a0>`|b^X`ܥ[nӍ73t :t(mK6l={%)01sb)gM_9S0>`|nQrur*>|LK|>ڵ+lAkmޤ,Eļ~10>`|b`|m۶ь3Dd%\M:VZdubG(N!&ooZ';{-u+Z'kk*@rjbY@޾ 1|&ћgtSGϩJc0>`|@r%0:0zLǡQ-^i$ۑ߅x罌S6N̳z֓u̦*j]~Rė>NdWE;zjT\OʦY/[uQ7^3Jg'ޔ]±Y']3 *C˼swa[{Nw`;v?1ϟGtM4|!~<.`w^6d/X?yFG=@{tX+XW*QlRy/{^_CY|clW痿]X储=z6d|_ۈ ׽%Y0|?i'. 3kz~< NIyobP dˆ߶l#)=\ce/swxe3oc$EɆҽOջt:p|D?n tZ:weK^=`?q? 7ڋ_h12?p ^A ^|RL}/p Z=c NIy(RAP9R)<qj_%;>u.7.y{Era!&K"r1\A{/ޠkRZ^͛A MsdQ)AzzɜalR_דCeE7ym5]iP"@Q;N}9!Q>5RkE7 >w~߲Ps1|6vѝa צOY=s=+am`WTy~Ca}lH|nA%Zs;~ksЏBi>|J=N_|ߍ@~ǻ{o33E8I~* H Pp#=~_<vTr dCL|'^\J{ ļj_(dzrm@Q?~ %u3m'-a'YR'\^L"z#VB)|{.$+WAU{EOM cm\S>ymϏ]qI0 :<;+ؾtx>AhKp@T{90˓#k\\L{W|=$;^G:Ļ7wUOё.F'u*hu>oYJY+6A yAL% !fūd^5Ęt2%ԫ`~p z<9^6Io `5O˯?~X}wF}q=9p,7\ P˾$>WO i z ?2l~"s} f?p/ }h C$emRh;L|H#߇! 9g'\pO מ_c Kw—zy֥Jrhb"F/̊ t^" ʽ+ĘM=Bн &X^9?/Y1=+@D%A8Z@c`)jRB^3X/lF!&@D$s|71|uu윭Db &EE=]cDb9^@^i&] 2ýPOF兰}5ԇpD^KAo]lb +ԉ r>&ĔQ略&weWdt2#LH)eX<~0q_}Ns} jL!KwKt2o8,!?f^&B4!dzR±c^~~^ٱ /Msw/8c] e/nsu;`BVFb>T_EύuJzZn !Wp}OE׃Çz$ t^`кv!+Pktcj}~xpoò׫~'w;P#,0wG7#TA: ~^6 AF6C\swwٽk~R{*A?Q8=@?1'?cft*_ꀉay7^go0d)H> )/#1 Oә[͇t}:y~~@)"7_G?0>| @L.#L 1|CЙ4@Ggkb ĤPq%:B)f~=3>`|o$Ѹz0lS :z=EϩJVb ĤPy{_.[0>`|U@??&2SDޢ?d~* [1c 0>`|d1"㓀/3baa]LޓTa1þ*75_0>`|) T Fb8LADa.1_ 0>`|s>l @ /A#E#1INƆYn,`,`,`,`,`,`,`,`,`,j-:<]|n޼Iov#k<a{.ݻw]&Np7^3$8!&՗)[' mnV400000000x+, 9bd$& 11hb"*_tU2ub¹&:bb#\K~b.zLn(=/e8f6:bZIA#1KAGs7 1TDb^#         $ $'xQ!&Gbr!\Ow@H%Sļ4mJ(WZrb 񛟜l>022۸}m$~|&}bR\o812 ->܄u]_ׇ@LGZe+~_/u1n1YrIH1\'LW1˗ҹsgx/{ r C_^. j/UH̶I/\ߦ6Vee1@Lx66k) G9SI_&Ibbe+~_/%j b ˎd,$ ͇Gf.\G 1N_j޼ºPOUw=h˒wݟ1w9U/ w`tu1=xWuĘ/@ {_Çw|[t z}sUp Usi+ %nkӗ<6R==`D.>Aj{P? r w/ f;U <\o_d2LagױPם2[i^W/^*"m/{}뚼VobC:~GS\t5wQz셄tS~ =D= 5D4!t45^j,YIHWЁgj1l&T/©jpt6=l}q u2/Ĺk/`=u?(J^pmW(D$FsvgjP9P?6ۇ L6*Q-8 TB,|zù>86t:J#UKO u-ﭚ?u/a?>4(k &y PO&"PwK޿B7Zl" &[ޯ%0bny* b&bRi%.0HVIb+ju_[ %E+1zV"A@U K{R׭tN 8V_\8g./K-}zc}8:|&gV[~X؇ t>ܕiKrxl| ~뽥K^Nϛ|wԲ#,@ bǂ=P@OI}k)Ϝ}Q兰EF6Zڧ#/1Mt" &{bbؒKb^ߘ#B 8['z26H0C IހR_>!&#TN31oq!_r_qnR9Gccc7b1-d׉,XzܡG_n 1ouA*䜜ތ[<;[ 9@L?8τ O3~ek)IfQE1-J"A%ij[_#whGfK"Eb'$@{@/hl߈*"2ʪpNjTeFF\qE}}G]_G"-iDeW:1 L,OҹIJ[|",@ =@"oD"9)e"knD0b:}n^ȣlʕi*\@ Z@("GbbGοCsKr:sZ~CĄ,  @D !ܩ56@ ݀@-DL_N@D @")gd_dcyv9}s=x٥oc: @ #bޡEL"3Ν`K 7L}}}QzàGR0 ' P Jׇ `ЩGxV]K;UO鹬|ϒD2^KU ]ux~)g [q ~>j5O9fm|z;.Oil1 ht2Mբ"OaebaN͟N{C92gz׻E7p=Qo ~h6à /M ff HEc2j^UO/*ZҬz-LqC?R\U3&P S=ٓE"ƶR:8V=UQX槔e? stlfNEitzVvLtMhw#%1cpP|E*wl5HT`ۅx3P3~P~_pM442^Cm[5 _s^i}Ѫ71ڀƶ..9xZhw"Nӫh݁#np2s{Z&bw<1;>;=(bgJl2JdNa_pS\S9ÐEAɰgM{eω<ISJeOhy|r!'.C ./[IQIn5I~6(^(VYu/:.F W~z>~ ~j 1* eiD6jطWl(^Ǽ}atbDg[X;_cNhTNLdfR<1463Oޱ~Ŷiω wBĴo7(':_EPC7)F4a8TT*d[}"RޒwBV tTb$ &OG:0q[B%zh푅|ٞU?T\-!oUb¶7Jѳz9D̫G&&dҔ<<1?<1L2|~஖lo"e!1A+ 4T;2FiȖ6NSÿbUȤLUee *ĔnZQ&brU# $$B> eD+bDNcoU^@ՒS:ē-M[h"&Serp"F2_C'fo&.fܹONjD~,0YLQx:+4t1OR:MLQ€|w8mJ ׿4Y˚ H3) 0?L}=EnR!U`RP]@#tS۽h`5lNf }J[l?WJѕfXR=HI+2sZas6%B&1utc]Y:Bs7w2OT'"kwiT⋛T1!  8H.jHQ"Ͻ%"&=P n',VZ ;(N+<@y0Q]j{WY=E$Iqq2\ƀR#p!?K]~hXu8S}1u9:FX4"%,qSX̾n}e.yӼN=bmپaer" ZK3n3(L-w=11upn֪V}ZL Z@Kkʍ\@91g"k?Mh9Zh:Jri;$'nUYH*D^D-ã@@-DHSLlYdYZ`ǘ-YoBĀ]@rns b0=^v@@-D̕}O_chqb?O-@Ʌb @V P swhqN4ɅwhAĴ @@0"f'&>,M~IB"&PVX@ @%bCĴ5@ )bo <1AB @A s^@ic\ @  D 2|fdotaacW1@ j!bێ#gi|1d9@ !B1!"O K'k{b/ѳy !@ @((s b.F\M hȳ̦# y:6snA", @ 17&1@ giáH>љho信A? ՏaO,Zv@ChhрZϴÃo-jdԇ=뗈V2@RNOe,uRtF=(זy݂[ 4D}]s:.6;+:"5y~l#ӜV\Z<IL&b.Stj ?,;8MkL"}οmٳg]n|(wDŽ@l l_ԡ *LLљc0~gT_+Ud>M*{nChTqCi"\8L?x\(eej+ωf2sE2ɢvMc[IKl`E 2T1\=0E;EG;o馛"|GJ;[OcN +&3* DA{[U2htƃpΨڶ"1룭1U3xnOs 5T=+|[m%ׯ]\'1'5Q:E/Cs;kyM<@NxTF,bgJlFߠ*zh1_ՊC1l>!)##}C `.կ BWO PQhC2g3J% Sm[(?_ۆ!{I*fE{/ɀsl"'F WcI$q`z@ Iٌlo\R3m1vB}a֖Ρ~K]1I$槒q!?I'[N,d)2""cR1\{bB]1IOC_tDLcEܽNXf uhRĨұОr_rX&o.1>u*"b|PIG&@D(]L<ʬzL(egPQ7ˊ߱WHcekz,, bJѕgP:^4өڱ2j1 \4L=1ldBf;^y5/pc?o l68&ϊt2^!R-m6D~t1ڣp@>Ƅ&LM2Oƅɲ45Td*c}⠮`I9Fn[wF*͞ES a~2VFG9"B]Bs?LcRLƧ (`/k=MyI~ARћ$!l:Iڼtw+:#M=‘O23 Z'q&PH{:t;v ؈mDJ(c+Nut 5 MVDyӼN=8\YjGW52u@9(sp6xc2O~u,m9DG#!3:D_m"t2VWk>jˣ@ `C"똈9}^;v.2[!sl z!bAkAT5 @aӂ'f+,M3mE  @o!Iʲp+E4by>ޢ,j @ B\׏Cq@3A3>n:Q @B $ 'KNvL"&DLOQ@ uB1 !D@ pE~#xc@ @!wh1IDL5@ መpStQ~*Y2 @51EQ~@BpW̫UsFm۲&7W{K-+b<1tp} n7lӟ/h馛"|GJ;[OcpP|E_rpDNrll*F5[foU|U[~uqWU<yTNUtU(xf2z(\v>VmK"iC1RO(b+iqornʭ1Ɩ,<_#u+;/b"K }#MCtJ9h>7,?5 y tq T0x)'|xYLB{9O Gl:5 ZosL#;=lu~KVd#TW.ĉ& J,yg< hO@T,3 R}~[%OYV\=5an հx_Ycܬ6`HhgV5co;ilPyQM|Ǯ6e`4bLƈl4սCmI=}|gusx+JJ#jD9ͳ񶪹cC("ԙ#E̾g' g1!HKE 67VУhヤҕ)eJd()ba3pBLszcFT:0{Fmx%0mdvqtfDJu/g16 Mhǫ` k<{\j߹%2žѕ`*N"cCH"fy𕟠'Oxn BϾ~^?2J~[6vN^dɋ|Ft{MhO jNg8" ҅ Xo͆\箕l[BHM{hP|y "d>m^RXstXF__|?yfm%Uڦp2}uU'=[;wܳycngMQRu=S^G,AJׇBǯ#_WmM-=bYlV4CĴi<9K!Ylvc{bʅy2ϝ׆&e#|#\9iuD^㐈,t sDI2K)sR<јVqbm[/MkT1>=c;)Fcp+?ś_wpGMڸ3.N֏ruoROLtTp/Ys]N3fEP|MI}WcLxn77ީ|o w㸬%Rnjp_}oD荑^vytr~~xѺ7k_]'2 "nG}ۈo.1|霑Aj(3@B_)^'^Oz%y=>E_끖mi)y@.71{^u3_cPpDI]B17&\v"#Iv;fnAo{^=I/ϗޞ`-me @R0o:sٵf"f^x$>_xk\[<1 E@ U#1M'iq9}qҗz"fxxnfד4Vx\"|)iٯ1< "/XnQ ZrS} \ xi?~ \)&µ*ʄ<ǝWqb^GJ)%'v}= pQĤB&1|S46HO>B}c~~ /qD̞={]zp FͿ?&@e>2dA?Q:à q34@Q Fc#|ke)C3u'$m-źs z>@k|lW_Vc[ "++oÿż%te"杆'O1 kӯc诿zODM7|;Rz`q0yʼn1)[3(:^z5SfՉakTYVb@o"]iF]}Y}Nzj#Źʲb5[.<1tljߴ߲~y7Ǧ7hyM<@NxHa`\V}0q5Y1qYn:ZJBC2'rgIRq{.(aw , 0w#8+3>D/ yH˒=Ч^:Xb܈oNt^8ۄ\}ω10“{U<m)sĺ֥ưF <@||H9% 8Q:JWr+">~x3G0GNJcXuL A!7~վ5N7!51b.&`ަM7ͣc}"}3- c. lZ]2YW@0 J?(Xr!Z(b\[?`lfx pч+N6?)1xozNZ{1/mщu1ƛ$"li |(."4jt1_+(Ӹ1a0}WiT$moz9|RX [*]^Zs,LļE?gnA?Zv-[2p2Nq4nŕFiL'̯^L(Se6\ˢigg~{yW"s52f.&i"{+i|R'N.ɮg.A@ !Vsؕ_hixMcI(cKĈa* xԎǞs+|LLIĨO#csz,ڎ=sH-De~N̲]9J9By0KiI/_t)H{I*-YTd@#P s7==X$fv}37wb 6";CT%2@ :@-D}N͟NK{&ݧX:IOӗz"ëA u9 bA  P s%1gi U{X[y"&>$@ @B\ugib?99G#SKoBĴ&x@ yZ4?t}߆ O( @ h91)2",@ @@RĤB?OL@BQ@ @lNv{a7_)&bi5I?@  Z+cѺ QɦAĄ& @Z.bcPxc?<1m @ A"k?M'ΰ]읡Wh54GY8DL0\BA@ @[StbvvwOЋ,{b< @@0"fvLN|PşMoS;,85O_ANP @ j1c'W]Bfg/Ƕ_m?DNw=R3<4DOJA˯;-gTgoAR WmKMEZ1xڰje Clr`Ӯ9DkcY4km}tH.(v}= pȕ# ;Ǜަl~ ]kٳg]n|(w7LK+ ߟ(Dܰ?`̠̽UWQ4v%P3ĺ*q˷l<ʼ|k@~BVx<0'"++Hh7[.3 Nޘ,.G_y~~`6W:v>?pWDM7|;Rz`|;:(kpou)c36SNUזG;Y^ju::Tp G/|gx\ φW6R+..Og R$B!b.<1 nf ʹswLļx 'bwm; ݪOnA{`+uIrg)vpw)sǫiarݩX 0ǯ_) h(˧-;P>ۈߓsQ$LBX eb YG\>^uIsfK[WQxIN` )m>|H䨭{WWaYvo2y ԨiKM#O'yOS8_M}=3!pP?f\y ܼ9Y6xK2:|ݩPnNm<3]rK$ZF"ULydFq8_ Lgz7zl0 !ĂO{#$0gX&Ġ/W] +ap˄Io+ VIJyqŐ@a/Ć0Q'?|*_ U6SgSo0$$5Z{N4|6))"+ ǴvS; xq!Z'^.[Y zy1d>#B|hP Ў3涰 S(pQxlv/+0YW:G~>X:\F@ !VsۂF^@d^ II8l[w8~cW-YP2ŶRBs_.:3;;K 477G333į*د+WzWt#f.!:XadBḊOL^~["U1LJ{:A:My3PƉ#vf8\7 >Wdb=/օMhŨTdSBX-*4D]^U$O\6ݛ1\-nطQ-+-*} xy1ޜ(ŹPpQ%U1+Z74SE['bЇ>Dy{.rf>@r'idr~Mɦ]Wk$}aΖyb!G, 5Qks >p&upWCc16 oc~ S5&H@)adWm*Zy9aҀ+m1_yXmp2:֎A 3Z.k#4_~stX;d5E@;\۔p2CS"F\Y'T[a¥ UMs[k| _|+o}~ѪU"vOLeWwǷt;bYTMGiIA$oӿ#F$>"K.616f4}:{l{bA0R"()4FKw8&&!&o>ԼA rjP[Ĭˤ/kE|xįk39 !/.=^ :,pmh}2ۺLHkLR=D%ac8p Dxw}StQmfZq`a}a.Φ=1iH5/~ ںuk&`뉹?37GY:Q:_vyߵ6DL$'u[Xul5 T?~&'' 4q <㒀iOɹ3➉$wÓt=Bt7G{v=(CX =P Nυ=1H: @ ZRc*<K1m@ @*bL"}DLO @ zTp1R6qxdV僢#N̿Ctwd\B"ƧR @ P[  pp@=1|3i=K,YQR @ Z@ Eg\uh;z3$OKN '@ Ae"븈gf )zy$\[y">AI@ @PL\^vyjl}yy$8= :xj|1A@ Ae"kod" =Л۝# }!b @@De@sKܮqz=owL E6Ss# @tfK366F455%SL333iOщEzy`~cx C4<>M_>xbrU [%pf6CȾ~izW^uѪU"!sus=0O42D@D 3"u×%.a-\']X]VԿӶp Ƹ*884I=1\63x6:"Oѩ3o1g'f~4KĬz[]j~?w>rˎ/yan'$:S//C'Yě~mb'gr\*$.Xa-Cb*Sո# !8@/q \ fD]ygiWh㡥HЌΜvit,/kUyo+v&s4&[3CVxʲ_'yk;xC:c3iU by㼻[3',wp81$s91;tvvoԷl e pp 6[HI=2ZO Ƥc,O343;1f/mS},7p8Áf9␲P$b+N[o0ppǁdc?7tsϝ;GΞ=3umMSfx{pp6[*blB?8˿K.?b/ܶmG'G$}&#fG,/9o[X\@ @x,--}Z\\ۻ3;G33hiClohƎ7is[|">쒽r-YZ>[=1BOrR߲N8@HmTp03499ENMhϞ}=LW7mիhzyx^3I/잠Nёt=_o+DqဓNoPOp: .^O'Fee6Zaj 1|gOЮct<}鮿&8' p:UG.`N4::qe6ڸq3Y^zyu{D%WYv'^?Lvzc;B!b0 wr@Ƴ?ppٸq#?<+g? 󧟸M/߲~y7as|A@O .^z uf z%pjzIv ^J}}}qrreZyn1vg_Jmڞ>YS^uNq@1###2Fl3O1Ͱ1425C?ڴmoߠmAo;I_X~w"F/[qܩNk0+$}Ii' m}awybZhʼ|Aގm16~|0F@UH$bflȌ^ebXH1oBx&]ƹ] [0\SE4Fr_Y#pw<>L]F_>{ IbJe+i{TLey`^ W7gt嵵_:z1P?e}ED t911&b FeciQ& Tt'(;>o{*@1jxm7lWw [W50sORȋ'Fs_ &Nᑄdb+b2,`7T"F48rϳa=FYy`<av&cQN9tO85v\W&`j?'ֆ>oNO18W.) :DmHr6OWY`hC8@-D>y]_z!z|~ַi @ac8@kOL= ob"&4(N4 r^0a 9P s՟]c7oy =1_k{bÂj2h|}Bx:YGp 2~Ӿ*E 3$ G<#>k{b,]z)dS*}}m8Ut26Ӻ*]dOL| }?C~{bcV&*=^ԡ=1k6׾8m?2읳|RbOWd&0f@-D~N͟'='O3o'gwmibk dƹhр5'y_isCٛ+V#XН>PdPsXD 3״\<[Ч9BdSS\5BȎtzl?,}xF\vk[t_$18'p8 _+o'S~m1[н5FD@-DH hYze4w=N&Kw=Pi#e'NvmnTo̳}:yUYͣ \BmMH|DYz1W^Y\LĜMG9 љt}߂0`u^&8@D̖TB9"+ƹ@p䠅gppf" );M,2sቁ'K x1}xkpp9zp!1 @ B`iiFFFhll&&&hjjJJfffhvviʕu^ȣٵ\额?K7o"%oq!@ Zj%bRoL^q"L p~z8@E8O{O̫ϰS1_C8p@-DHgi,=0'{Ԟ* 9/~p)dlhCpp9P  tj wIzUStdjr18 ypzhc18@p"cN.o߰۷Fih1:pj!b< Xx5S '8ɁZ?5463OoGӓoi/_RcRKrzC ԁ&\%{%pS-jBĄ9Pա88>B|Wӱ9{g[v_Mܺv/:3=d̐ю.2.U1,]J3CN;ʓ ] 5p9P +?AGfGޠޠ~[Nҟ/NNnw7eD<.녡 '2<u/KX+pp FČrÄJ.`62Aֱ֊f'F1"!w%}_#oVa띅6R1#mp4j#b'\lA?f'['s.o'{=:XzNôo쿽QO=oWszcµ'pq=Mpn.nz h'8@7q"&~O=1;GGh_G,veE d5.t8s,#M/bpp1^):9^{{^8X/Յi7iwd:gy baxOL1,.b^).帄%~NJ888P sٵze4Ҿ):2u|W'bX!78fם(?x 8kypx6Z쓧љt=߀_07S /x8ŁZ+Z@Fβt6'ilv7!b b* k„p!b,M@[g\Ϟ6D D D0 `pn@-DU.1t>K.0`aN2hopp:ad['fOO?`ap€ppA0T-tw}]q-p6Zҫtl퉹=1)@ @^,--MMMIizz:? 8\һ+y4됱s0۳/H\ᆈIF&`6E2oq!@ &:)b"fӡ3RDHhE!-;bnC89\,ppU!QTpഔy>D}]^vD̚F;K#Kt]_~ldh |1A8@9:Zo^J\ļ'17&"f$c" D pj@]pp@@8",0 RDL'oSsgii)8M_Axb< spDppAp#^3#HSߥ=C/9!'K_{""dp4{>Z69(.ٞg -VbFW9H7cRS+ձ:79=Q8:ȩ[R"!11f7}k_i:KvEg7yN4-'?8ӉR4|U X]JW8ɍWOgDxbb!>U'Z&Z\lc.<7)sCE0"RQ1q_rzNݓ~bDt.:$yc9Ìk6ϫjo#Sl+-7=ڨpK1/HAUcJs (U"& ';#m'+lJFq'7Row<_dXvf,:WEa3g"[~ BY OjYR!z| '_यa >f ޘpYHAk>,?2Y7퉉ʗ\_%/!b4R@V`}:Y67?NM쉑Ă{G2)̜n3ւA._ b.C^XEMzrJ y#Y6 Z8p">KӋ赣糴}|<~߷+\U2ƹfcz48O'Fq!:1 NI?=խa9"FdןNbM&(euʢ;,{٥e_T\G#' [ue QRfd. x٥ZG^5 QY=;N^x+Yγ~1Y沸/{ShtG[5#߰aǗ!7(RSUOCێ;L +Gb(\D9@"斻'SŔybRu<)1V'[ aNOP/?88PFL[1Ax8' p:ɁZ+,{Ov9)n[oN~8ur³F88P_vEY)U!b @ jMLLԔO1,ʕ+Gk{b61yZvOyOG 88WA#s6:#c3{Y: dYfh3pp΁zDdB&IǦ!bЉщppzዘk>C\X(1wӋE1X889DL6O&..?88ˁcORE7'8rhcDSѳ1 yѶ1"vpp"2dX,|7T jN7 T=*+Y{+ׯhjwFN*<'_N)L*o_&:B4xmpoA` \Zg+ Ym!/b#ϳdUvR?lYN'Fj`؛}j(V*za)\/5k?ʌZe:`pl|É=s6mWaó 8z|=N"#\5Eҏs.imϒR:+kt+piEMֽmh3GH[Ga"FHcLۂ(`d'r[azcĿyBW8^'zD51xV.x_)zؒE-/`V"Y.\uToO坍^}[#zO _2ޤy3b)gLpZN6si7R.Fd-Dtw .mźLYV>@@;8.~摳R=O[.DÍ-/C˔.7([9L 1SG, TVocUH0IH>/gd [NB-$b茜PAIsqP`m꧶&WDĈ#3m]y&.^_yL'\.l֚υRea0dNL~ r xsui&b='L~_"F(6jb+rIܤ8%Fj8w}CeE;:L\J]a勥}AǕva- "4]P|n|ã@"fֆ&b@kׅFi 6~ &tr-} 9՞AI&bgcoL(L@@m剏ќLAzr;/ۭP<\"h߱x|{vs 3D̚LXt< ;911E\B* r=/{=8PAӴz䍁N 88Mr sWL3oLC@4ٰP<^88ԇAS)Z VB b bB88h99DoOҪݱ!b@X Z88@")zy ֋ @z!D###466F455%SL3334;;KrJJx[:b"慝'%&dV1 rO /]艔+-[O,?p8f븈wӋo1< "Bܯ'?0'pp$B1yÄLV6 S%1` 4*988@0"=q9yc^bxbi{D Ѣ(gps sm?yc&d b b b*8@0", meޘ1&dNDae1{>ӥpko'Mfdp$ӓA-cl'&igpp \$bym4ƤBC";D\9]2L&j"a=ڑ'럡e} nB \8@wr(Ch6hp9kG#oL*d b* %r9{6*7F;VM*sd|DիUb0A8@8~uɄXdbTqNÌ#xύiEݪӅSYRaoL킼0)8ȁDLvQ&dFiuQ7qn1 b&G9~p|Pr k18@r < bX0yjfsoQ+943Nځ"L:ӫ) Cph1[FiҰL\yghzq7'?|8k%88u1_Z''+,wikw_<^O]Ѷr܆[Ү6m996jZ:#bcVsY:>{EK?w3ueշ1Hp,n!DӵŰM"FG?2k7r'{!S-BdrծmFp畽OÝJd7] qXM/Ϛ䋭ZQs<{ n?.m!͵L批2psVJ1.8>ݱ5@ +c NŅ (ZcXVE2vѠWA5ªȅN`uktjYye5.NM{ӆgt0 M/ϚKaC,;ue)\bݱҩvs1ѫ`"!#nO^1U)kATON"f%Si8Yn`$s̰BXu+wU1,*bc!#C4xh<"]{kϏ>9. zbx<$(.gjm]1,*b2%ƮxImỡ5jK6S'T< ^|3ru7LؚI @7TIe,S/cyrد.~<6z$*}%ḃjx&eELs WՕLZӅA0 [ʊ:wdLЎMG<+1Q:U٘'$=1i=1.R˷]y:@U=8Ŋ¢rd-ZUݪ 'eRH\N;ymU@$40rF 39`#0xCDocsx{Ymie16N؞~gUwi/gW9mFrʕ|_[߲|aclkm>)xijq'QXL&]Ym[3ë%?'\uȅ(qc||ZĴkDޘ31N͞ջiZgֲO˯Tu{2tCHq. 'ʱ'F]ZU:r"F4, .`Z!WeB1پ]ogZϼ^uMq~ܵmUf>ǣƃ l>D/.O_``g=1&Xq-dyb }LۺD3i*鉱2^QYRĔlci|M+_#ݳn=`Dz_sɶGɗ%O;`$~{bEdItp"){~P"H%?Ѷak.k=1QnÈT U'FDA_"Ƶ?Qobj0{8҅,s+!寰pfdWBezTd{b>ztlbX~0z!zՃl˲{*1Zy;^j~7취,(=G >B17&d"×|^x~z/|+oޣW_"Ƨ8\'5Wa:h/^}ЯND?,@zYd=(gḊ>v<30[ߤ=#W_"Xqg'?|8פa7C1)cR:!<1w<չ~֦1.NI>?۳ &dx:1|tdlo_?~4~mI/~"Ƨ8N>5pZŁ@D ?h'Y)џ^A&_L+}#3C[!bƹ p*=\ Lppj bM:rj^zs"Iŝ">L}|11SOo !1p3O/!` '_: 8@"{8M/=I/≉&9>E?|}1?g_kͅF+>@ KKK422Bccc411ASSSR?433C4>>N+WGͮo{V2,et2?^~;:lsIW<̻ȸ @褈o%ZwVIt,b>'flb~vpXX{bO@+8 088ˁ"3uFi OLpy_|ŵt|r~!zz==8>G7~sd@:~péG;8@"f(1ͳ4DŽ O +S֣0_;Fϱa|qo!b|:!s p88*#bҺIL批g7OE;yZґSK_{r8DN>5pZŁDHBL:5w^aWffXZ64_Ar8DN>+q#,~/Nx~s{੃m­kWZn6M~ce,{Zḅ3m`oX!jܯPDYZ`D!˯&zp6_ұt]ߨN.5&5uTq=U2n!)xMR 6 ԘNx(aʿ8&7AZ<>iu}ׇw>~Ѳų@;=֩-߻g8/o B9:rBaνN"k?CS iӡ3R9GMyͩ j΂ .Y9lpV!> F`49 rc1Az-=Y})+bcv?DB4Y|E?5Ŷ@ש\_C1.;IhY S"ǘ S7ThT]-P}O}/8dH,GHil7eLĴxmf4_YiWUOr Jl0r]Ļ”1rɞO&̳ 4}WEGg"4}R'vZ~2CYU|8S5h"ʵU(&E^0\KrZ1b;9k_>:8iᠩ~+ed3E(ɪp4j !ζ5pFk'891ɶS,RtDN-D3su\\-#gt|<1j0NQս^9 oX,[jPU}ZNBg5 Jsی7fECȞ5#'p"2rmQ̌[56W1BS?N =$<1şWms칷7`owd5(glX0i9 qgT26;i栥~<^~>ڴf~~~^ r\?w_,m FQDl7Q?'TODoe*0&ۨC8%b)2L1,M@ _2OL@ƹar*&S4%!$ulEEL6y>(N){IVFȊE< ׳zbV `1~Tl9E{&DDYcj[CX-OW(x*y h#\6λnY! @'am+eT5Z6 59yme9j "BON@ĥ ?KeJVclcI<2Xl;&-1:8'^yFFby BY᪫-ifc+tS8yd9H)mUu*ʈ",J3"d!w` o#.LҽPnd,gV1 g[pd2;gMcY⬟=+lJӫl[gbF '\!ELx\upyJI1hA&bxʋ1mӉw)rO5k}sɐ2MƎ=1:#礨p)*k,t'97h-ɤ4#bl ϴ-N JJN#zc8.' Z_Cہ8J=G[Fe{c:Ƹq5 qz)mԅSeG>`pzs s&"&t@cCm2=w]x_  DL4LHh?pp78LDL&앒 hJb8=HĬJVNCʤpemm.CndƵFD{b%DǪ')%bA]a|~t<ĺgC[-pM%b"fr{sAp@}D9z2g) +k'Fh"IWxOL썉 h~`d29LwOb(Y"|u{Vf9܏p>&bV=EQXz9x4m:|6'ae[xrZΗ]_Ap+ Wa]_n U pHM%1))MOOGbY+WfXȣ%#c&=1LĬ?H#o +;z] ~wb8;©n"&w2OL88A鉉uh(l3 +;> yeCkk$bx8kUvp;P~8'&'b}s Nӫ,ll<<1N NupZ:5sn< +cB96s"Ɨ0䇓/ppVp nqOf,Bf(UĈU {b1jY=1ۤ 'wq88#b{+FSyb @W.hpMDB&3&Oa2/!ZȣY+Wl"lq^z6ۆS/4488)b!_.'6fBbm8&bvwD/+MA,8@#b¤{cpsFHGF?·8[ Ldqxa_֜E& \7'@8bF#b bJN1~ 8A88@'9SRt<ƹ@p*Alpp*"bFк}s,8,?RVp2+SU88Pa&dъXT'b|N35@ @MLLԔO1,xr|o~ޘ#c1*(~@ @ LB1QHY$b dqYVV)㾪=s'?Pf-88=)lx_B(H#8apN8@Qp!Ó1,@ "+w8@8",E{d b*<ƹ@p䠅gpp 38 "78qKѲ!t;={!w ^J ]a x씁o"'\}}}QR /񷾾dd276SDq6)bƮmQcA8:$"&t4,g(qmLG*t(pyQ=C.YrBiO[9fC`%BpB1L K1n6 'x=OG*2YU[N˘蓼{x8>'G0/',fHz/G-`TWdOL:4AXmp#B1X81 [p=1'WOA)\?xa8tB1iÁXE ;,}GL_vi6u"FS_/OLwT=)6OWN &d|RFڞe'K/bBCD<}61X,889EL= sˉS}]{bJE(IRJĨei' OL׭Ѐ8 )boý1M0/'b5N&*\.WifO]h'ۣ{bDionOLah<+pNr (s(D!e,D  ,ѩ3h#f?V\iLhN@d4K׷;O*.b}?YHT2=}qO F4u:!l2y׊Ѥ#;Dj(;910LpB@H"U.b!c1\Ȥb%"Kyov޶c餹}{Xz/u%y8ԋa%Lzb bmy 9_HrK'$\{?8 RDB> "\kq1;0{U#!䫒im89cz($aeVO 3Ss#Dr888@'9oӱe{b SO DL/S'-<m8!s̹SSp]a!O`~X'?0y'pp$B1&\{gi͞(=~C1>G2 @ C`iiFFFhll&&&hjjJJfffhvvI|]rt")z!M;OF"=ǂ_'UP@ @tR|ky},J\Q,b&X8Bp2z"'pPp@buR|q,=e|$Jt81?1p21sppp@mj~}:#{"Os8A F8@"?z79:IX~zwO(bIOL%O!b0(bbp9/Ao9I?}MvF'/<1{P1LD!e r#8T8댥q ^GOr pN8@8/}v?4@#b1 `(0;7!i"}}7ҐP?3N1b~wĸw~=xfiA=. \p'9Jo1YnM }΂6LyCyM5[ywC>@,e/lVd".-R#ǥFEm1*qܪ8@"L&Xᆭ썁i@&bݍL *޽i0>'E_N<&Bqk{¯(xSm[E6)g&34b>,{_><,88Po*b~%bQG~SqlZELxybp`Ҟś H&"%fF= x!um[1!blI8&zOh?8@0"1/荱I.b+!`,b̂iDL"2ѰWhqn.eELY sp_%b؞A(bD/>dCƯIА` t_bv*=1.#zRT/LĘxoS"F=ā沈yb28aV}Ss18 $b~7Ey6 im'F]KgkP0#43;t " EL3CHSĘ p|8G,}''Ȓ鰈a|lj5 / dpƞ{b"& BxZdIe~>+`8@|+wҞ +og?VR_vDӒ7%w"|-7% 6;L"uҕЭ;Gz|pc{b{Is4&dNud/lw!}v)[Q-]ڄ#p1p=@t}t,==9Na{E1C2qۅS"&> /ս?홈3pp817= zY""& +;H- 'V8;~)htpp/td4z{2J/1?61EC"e ZT|%$vDЎ8@ws s_ѩ3~KHļsh#6޴ʕ+x3{aaud&8@"f=ߤc3U!1Mbs b6Fad4: q7'?:9hh#pp@~߷yz,mIәHļ7<1-ODxxnp @ !D###466F455%SL3334;;K$Ei9(Fh 8D? @# K6U≙_q=0k3 z?4 8@d'f,'&+㧓U'Gz~ 888@'9s#IL-Èd1=d1}ppsQ$B"ʎܯ'?&88PdoLNļz^~Ci~J]q_| Xc6= kԹ |NpU0oFĜWVFTO4, N<_'ɠ컑a1Z+މSm oʸ٤)]'nidp17F/boL+DLZg3}XPlayNx]OYgfe\2Qq=DM4YT^7At*pD,ZDɬK8t'B1 Pp16 ke[= ut+ةELz KΕH&"%=JK,Ӟʚ e>H=t6LXAtC 8P*b&v{bDXU`)"m1ޗ['Jqa'p7`jvOLxbAI(b=F[&bJqS _ !po8080 /}'NROL"ƴ&T b0xp8,17F\6􋩽Fn:p3 Tכi8EL#D L lj{OuPHybۧS|5p9ILgDˠ{INcT']SV4^i 'kt2bʜN&H-ӽEWf|ߐG"QGM-万g7o$C`r"G !q]85UP' F 8@9ޘ'fӑI)ke8Y2;Mf. b07U82j'baէAJ7D &^Pwp.c]y]o*'p]w08@/p"!q7'?zapDpp \Vİsh#66d{rm0:!p)^h/pp79"C @ C`iiFFFhll&&&hjjJJfffhvvIrp8(:O3;O$tdc??6{yOLxm @ @"fGGDL &jN~8JA=pp LN=11$0: pé\Ehpppq 0# \8f!p2@;s8-@{8@D .bdOLƹ_N~8JA=pp L(bRovc?ƤUqUi~J" !bdzq-hq8'pn@("f!#&d1Կc*6Ҥ^NhKd4HCeje;q &sׯe#玉W2?q#DLiPM?ph$b6Z)bR :nHF8Z`)3~wE)qѬ~cZ&!n7VqAĴo` 8MIĜpxbR V+LW5׵"FXe^'n3ynd1I"@ ^M) 9=kQݫStM9iF]`|8 OޘVN1r8YwIq/6tb#g8[eB"vj^-!bz){82/C}d&"%콒k<˴/h4ݧ-ۊԋR~zb,{ "Ɔa- 88ρDɸ7&ȴ{Aj#d ƹh|]hiC"&sܸx" <Հ7`RJEFhD/1뗖Jc* &IX+pvp DB"D0ȡ_zWXiixp0JҘ~DyQ"F=ЂƄKY`d w+Đ:a_1q8@q"Fߘ^`Ev/x|N$-"\FhĴQ3ic׎?<<p *b7&,O 32ck#L\Ah:*zt2͞i#c1Mцz}=9/ =1C< 0p3;;K 477G333į+W +y4fIF&ΈwB|-T0zĈĪq:pX̪y͞N&R42yN& uSNBc_r '3ੈ.XbĤ}m 8 ضKKK422Bccc411ASSSxЇ>Dy{.rGy$DLv k?W NCĽn_7cp| _|+o}~ѪU"S'fg:6O!bvF~ϧ>8@8Ĥ!e> [ffzzRO 1L8YpO:`a+cpv#Ww0pE?~&'' 4q <㒀ir|V\IPHhqR˔8aP/ހ8"bN<{]4??O?﹧*6@4qsp@ ppPD ¤@q%.`*bD!ʗ]ӄ`$}6D f9!ppPD  .TRK*\Ϫ=1p *1Ӡq@ !"l*<Km1\@ĄH%  @TĘD^q!Lϭ p~z8@Pɸ)V\魸VKׅ.|p>˧>u6p4;5ܫeeQ枂98^3+qlV{޼ն؅o{?#`"F2Ɨ]F`7%&“ ,5SX1YFFHm۶5~{ᕊ'H%yO(4=[厮TBΘG-9AUCMK2rbebf/E{L{Q{򧢻`D<}Q枢>eor]iEWz`8k1gJ>[1#&},#GVg/&mWj3޴rK5H-8js$צ>_ 7~Ӎb%oǣaQjv3.Ԥ}\ ǃXM}L^PHmTlԎ11A\# p ρy"WBc2F̃0\/(Ǝ֖)ٛ!ƻ+'(I`o|{c(+7x ;#窀$kJZy<E~W .˩myTdh3ތf+cJ˒.p B\/O\UQa,5Qgx\+*bnE)u 21~#óx.@c,똌a84ˁB"y̞QؐL'+D)\THg'g랑@2z>R/lJDe=.ۘ$4zOLi7g~+vDa曧plwY\T )7rdF/F ʡ$Y~>`l7861ŅW:^cdnAGݔOޣىC8Ѝ(,b"!3)bULe@%dmV'\oIHdGB'FhBJW_}R>d͔{epa:W8x*=r_CⵐNӵo]8+M֨la^&²KDW赉F4F6-btA1eLOmtBn4P'@('b1zbӟ=.n2T)[rKDWc_ɳxbdjtkEVɞ30d+ߺY G`;1,3LdЭ'YBR:L8lp5}Bݜmf.w<*T11mjBdBiu\0B1!aGVn_OLU&d+n:[ȌK{UkQ+rFS}K-?zo${gM 4X2*фyo32ZEOb"%}*)4Ҏr K᰺|L 8@I@Ą:"#g#7dMbh ??׬*9p1!d`@I@Ĕ&.p@-LH]ÓP/pp78YÜ J81W^YZ@[FKoWRLx:ri+Wq˜]Cu/ʏp@CN_ctw}}34p6\ұsoB@M88@[9uȉsm䌔r"f$Q6T8Vbpp\g"浑%)qދ>D}_s#M̟u4:un0䡺ppp:GNK)1`"沫?MsgiY)L.-w>Bybpp>CK3O 1fN[:D T7888\M$ybg󞘃'+;d~E-?^x;T?WL>gyF+-_R/}E+b۠A㦫~>7j˴ʯ imԧ<ſ}uIĤȵ.,{?0q^h.?yFSE牉ye^?@ȧ#өt`:|rC'ș O'oy:>y~O%8?с2\CهY04S#(>оo~CGN-fbtj X:Ʈ:5q%c}rZÌۜ{rI׋p(q4v{2RgRłyx-lgacAύ댛GՔ{)oSDE2oG홶UɹWey[,׍זּOuw1i{ㆍSqRbqnvR[9obW|72qv[WI)|_luGi^/@zOL$홡UDԪQzYޞҮIߚ SzSw$]zn87ND?}8wgO>Ft٦OC{~9V<ɰU #֎kYֲJLس랜EmK8OW_t)Oji2}5ޗb oNdM{R?d}YcY≤~ŶQz53[oo[ӛo4_qToJ/yu7:ҫ\:Ⱦ3M{[yg2~;_aiK|SprX˯&^>7[Z8wҴ3ϣ8tJ(RƧm1qsOM"Owqԑ}לϱ9/qqwh ٕ?[X7l) g8q3'sMټϫb[xYW\&WN7?b;!h|SGq78F:jp.̆vƌA89ɋp.`ҫ{WM/k$33 S4W"&t+yƇ0~kĊhyA kPIKNKYd;-+CἍ&FL ZbKp>sVr7#pE D>ǚMg!S1Iq8YQm! z3bGs1TY}1CY- mk!&Dcn .^n[fB~-㞍2 H"Kɂcd~ a>kG$}p %6*g^kby3'8K<" d/gt͛3V잤{5wN*,|y\qQݴ}y?q;ğm,Lon5[(V ^hJ5*s4HW͆K:&WG/F+iub1-{pu7zctlĤ+gd(Pp^SbpÌp"{c m  ^}9#{&E (f2̵ȌbBC^4zW ci쌿7{\WK8fy0.v7W/ᢄEu2-ՃM6x=a[Y;&t߱ȄCE>I" 3,^y;'/$4l\yw*.^`6 op4Fϳą )/ 1;R]f"f-&sL0gs!Å6=\lgcOџ&}cWM7D-ս %s7'"8y"5!oaiYxZ!Bf:$Sӵh5akDLSO _y<_t=C6d "HDaB5hUӲRy崡;O_ n rCPF6Qb!I81DpA͇8)^$5c1X̰0R<_/+E⌅qO^z198dhCctJkXxNI)APHkF˱l!eIZ=wwo4/3)3+!jG필iZ666l҇9d޼`tM>&/L"!Ut6]&lq )&\ܰ[3L?yrnW/e'_Į}b>z}ɍכDY{E4U,N<2$T(I40U>2}Ox$ë"+Z850XkįayGE;<{y~D̓Ƚ7ܳ )=4;ٳYC[ǟ ϲp]tk#t ;_\NW_}5zo~.tJעx3$`88ǞNW_\F\s }_{w??EB;~.O888P5>҇8?#>H?7N{>~&'}!z;~px)?=_˟ݟ}'烬 Y~%4($cȾZ,Q}Du`'#BlٲHpp{%IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/figures/archive.png0000644000000000000000000016370114023111777020170 0ustar00rootrootPNG  IHDR",sRGBgAMA a pHYsttfxtEXtSoftwareGreenshot p73IDATx^UZD#b$ǀ <csjRMCP&sy]Su=Un@kuoJN:S߽ϩr\@bR^x!__?."KZjTF ++5kRZ]}j6WWԨNի]N..bEE%t;]Foe+o._%tawe`zh}[Nv14쏗_+zڿѫ5^0HD\r ݛK,S;p`۷OmO?5f{!?۽{7ٮ]vI^c۷S4۶mE[R,eJ6oLi6m7RIlÆ TR[~=lց_}u-}%⯱ ^׽h޷mf[nSv^Cp!:|0=z?N'OӧO7|CgϞUv9oc3^öoΜoN3N*;}q:ueǏcG ;L'Zvea=^;m _Io8ϟOC_FWEKMa0/^LC ֭[S-~mf뷠r`͛d͚5#^_o3浾7]^}MI&{뭷HۛoI7x#d:*{ꫯW^y^~吽K/ /o{q3<~z)JKKFQÆ ' Y ~O({G}T#MվOw{E;p?={ C}_>1kS? h'f A{ۗ^9h.N=C[ٶm[ԩz0:t(3&NHӦM?>/ٳgӜ9s6w\ټF͚A3>>~k8Z8&gı4aP?j09^4vH;;ؕO\T83ea4mt†ωCP.4~@߅ m }?-shQd.=lFa#HQ6c;^e ke&dA9&ClVC;pm|N shyڸr{vdhAa忶@Jiʔ)enٲekժAڴiC~fއ>Nzq~xZLH15p;p@0D  &N(NL0A#0q D 6/81pa40 !M@>R4AX N D@ D$^  "~@X 븷þ4>SÈ #HLPw/L"7` }_x7H +C-xB$ChơՋ222B |"/ ÿ !3iL?k)Ȥ#('02FPΔ6nP:љ&Olt0 lL! dH??D{fϠ-ʶmgQ0vaǶH:0nf;b $k;2eۛ?vdζ-/mm3SN4ƶ/?N# V_9L@7/R@;htp6C:viz5?۵kG%1s_8Y62uv8ݯ,u Z&!X`ъ[U1E(&@C)xq'hh) +xJ L% 4J$*b*"htcU@tC^O~OnUOѿ#nE')#"+@FBA94@0VEt]ܼ^@@ۻU7 &n_t+vѠ $JB H^juDOg];*0ea;@ZtTW/hpDv*heDCB0 B*Ie x)#FM4e(Тeno.X^!!w@H1C8ڿuQnD3! uVFnj=kˆMcp! @dx<"])oPCFBB02܂(%D#Ewz{iiȾgnb¶-/mWև*E; Q]l;QN۶p7q(k:ذm+O^ڱaewaaM=R\Rzj>(MEvN l _p}}R~*wn:nön>1}p\]Β C]z2?(3al5Zq+FC 1^.w/7AOI&p3~t H\4@ $ě#2RRI9#䋸aĝ; FL5ŭ]oWXȝ/ 9%n O?ĝ;H#/MeVF:Ft%hw_!YYYTXXHS2DOi֬Ylx@0,GGLBM@Lȋ#ҏA7 @$_H: dd&JlL Pх& B{N55,[϶ȶoen.!}ҕedžOmÚg{anhcx8.CT8_mulktUϭӧR#'+"Y !0llδ#q C!+U8:[t R ) JÆ #F# ˼ ۙ}c#)XwnBԍP?PnpTp4x)4^ c4u ~9/ /xjȼhؐ Aįѡ"b̃$(TbĒ#bHE @QK\9"N^,Ģě3b&!_j0⥄7/+zmޗ%z)&$WܪTHZNfꈆ30X`y"qC{vmڼL7nM<9 jnjxXoX6>O87?K}L*dɥ)49w$f)Ed¨TA$GHgȉN4 ȐRI&qbdLm==y-eZޣ ۶{ZhM6mb¶G+e;v²pao5ݼ >rweܽ5md[϶m5 X6[kZʶ+3u<ʹc:IHv*Dӵ<|( "[Z b*!ntv&3E;cȑ4j(VI.ma{lca8oPnZ&Ԙ0զ%bq32a,7>u;O:&x)2jth bhGF(VH C1aVEL5kL| uB)Q4ybEoj,0RѣhtHP  }FBG_(]'2qwFQ:=DmOsč[!=={D bjC]3{(

՝ъi9۲NoӒo"O*d+"p8A}]4kpt0>`X _}w}ϲ=ryױ۽S8s Ut ͥ<*((PaPFKùرc :Ж b^e; 5:c*4~j  1a&7И97~a&@ 5 @!ċ  #2| ;5$TDhPy"j5D"U)+U$V5Da f*UhpyL^#´: 1B4FpP9Xyv ƛ0(Xo6} smsk ف˶mi;>'rі=Ү7eu~㬧PԬX!p*<#dR:`8IIEEE@1 cσ ǁuCo} 8O!M m&𘀣azZR3,f*2f)(Ș>Z X*AMB4`yߣ鬆L{g ;! D&gD ")A$_phGCa؁U4D$H% DB #*\[Y   t+@"B "PN PRZ bAH'7f5/ih|vqYEdRj9'!: V?L&HL Njװ-i>6np -`ТaR4)-:t_NI&h% bhAC mh#y#:OexJ\DȂx'"|"R9#-a/ Mt 8W ./͜Mn>;~쥒VsaaU7b2 ءxa@%ԩ3NȘOma%j -s4VCޝ:ޙ4@$x cf "<|`DЬ7e84 1ӑw@Ft")b0Md8H@!R$VVHp\Oria76o"ŭߠ%mIKVlOZ kOZo&lV2RF~Co:m;l Fvs^m_elKٖ~fKs鉛WwtDsLNwhEqԾp3twD)73[rB p*<}CLj+ dGcV4zn |A)O)huE.!RRL5{*[Mqu ixq'^)PQ4he$Iit8*6<ɡ1aB ~b⁐h~"H#A! oRD!U?UĝZ3h`Dϼ;h"^+ T-7lU_ 5J{=Rǝ𪓳*[!juDq'<2(h7 2p +!|!ԐY N?xg*@dMaĊDU(7 4?X^z;q`V-fO?ӜB_< lKWi#ҙUN!/Yn6h'ヒNZK^:?5*:)S x=)\<怖!/d)R08%#݋c48d&B JԩݮݎF۪to}P'Z";[pLƍF-X4j8 lB߈:Z=pb&ẓo45= :eDiUE0/94zHCAnDJ@hG{/)0kH̫~S(($欫:LcL=:D`G &`<VDLPCKzs(9' $f2;T"dDV(PF̹FpBăr{$Kx|leTRVB!jHD 2t'"? Y4~Ha4'9r0dFcy};Snoz30Mlw;*^2~<6el-Қ-M4m v]WGw]EUf]c%"ŁVS wh}ɽii:_-d[63̻k'w_M[z?kh2|p^ ۨ 2[:[琍MDu˥VcG@"/ZMO@ :$* !O2vgz/ughcHX 3^V a&R˃E2_ C0MF!|?GRKFQ \+c)$ * ȝgzB9a+=*؉H5x;5I$5ɝs%VLFA !@ ~ UOKϠWxIry"$ṇD 2bY DFWĒDI^u-!hU "ne$F契v}MJ;bOtnxq%gܡ%3%1ꐍa A~킩FL^ J'hж!m%򑝔j@@7J=B@ODSD&MGE8SCTÃGa7rHc2SΠ>4f@Oӯ݅Lc{v({{vףlGLf8aPk,粍 i-ihDIlZ^>J5;lپdm-M BA)K"ؾd6mgWwԤEnESnM؊&Zϯ:O"i,È\H.cU4lָ~W+kmGFɠ3BTiZj ȳ*yWYN4Xl=ek] z#BE:C8*y>穟īM /I)Jnȳ=9%:l4uc@ `jv;~{SU~Zi[9Ѫ2uNZy"x YOcGC3&TD)h/ƋrXVy/byA0~{)$c"urr%ҽ l=lv+$:y#!f<_U ɓ8^~NLE^~('͉hxH 2ƍɢљ52ChЁ3ad@ߓrt~ykL4+Hv$3(z1}l/Nd۹y[,) DjD7 !Ao+*Ht?4Ӥj2m[3n93{k Dt~'nGp(!BÙpl ,^y>KA *P).9 e%EH:D/:h(ɠ:>>(8cZ~x_/SF #S]1a؎cmu]1sJxAHOws|iNءCqt3Ow+܌nno:FM8UNnnmH o7Ytl 5ϥÓ؆(PB ϫi+D6Dt*1GϸAOiDXԍwEy2h/N^z[o<0uM0ĄF7@a6F$RVL?SH,ztVGC|5`H/_ = SO9ڽwߝ.jx.ÇeHNp^+!h"hgўNĜȣ$D&˧4.7dS~Nfg4fPA9CyzA #>=ht/]Krmil`@ۓ!a$c,qd6煶"rM`a"dwXY Ç4|ªȌ;ﺒ-`kEl+Cw^2 RFx;/[|wMm!|l3IY>6M6M*6m­W("| D[ zl5[BwI/?E ˼@`Ϸn~&Bl 0^6LQWh W4:@'69ۆVi@ӧYr/'0)NK"" 4g݉NBmnKL$V#4-N>;[p `kpdxfp3+,t5INN:nk2Q b! ;ړ}nUU~@d{b>-Ij&yC?A-8OD)"mF76?mMzdqh0FPdDA$@@$C4wk,"hqU x):=ۄSrÊާt|HMhuDHVGpbH/Dp#ObBP_o 1lhQ!T9Ђ6 Dfh4~SU厥19*}v9r2GhP!|it? #ݻh~i`dLz;(ac02ad,HBFB 9"-þn&Mw︊޿*;OqWMD-༐'m}윐]vi:/~˖[sFsDBa3sX>6}9-a9\n-} ,\H.[\ɪx|}J<ǘԸQB3d*)-hxuK$Qqu) ;d\:1vނ2Xzuh ɰnKst䆄*GՄFCx.jeQ vj֐_sa-B RP03Yf.OQSenkBPLggn{Ibў6+ uV@t(F }C VAN0h<ٞ[5PD++aUfZ>{=Gz"z>jDn+SDg%Ds>_G)B4x&x%9?}xyu7=K+Qs< gD+#A1އA`b*!U^p8m2  sg=?zC[Y٬fޘ`s$ NyΫ`eO/tF`rDr:101]Dr0|FwH84߿/{ סIl}:>l3~w=}ۼl C?t-;vp'%N}KCVmsC79`ﯧ٦MrNyzVĶfp6W!Vª'#_[R k 8p"u ߵuPD:^ =zy$O*G煁 >YV:, ^NZ5JJ`հa* F(:O=%Wh FblãCc4J>4?sh O6ܕBw a&lU&Is ڂet"f8!՜1SiG˸Տoqmf?k}$*M=eqԇPDdvԀu~!pYSK Гo8=U\"$&JcX$DX&:1D9oD($V b횘*;\b^#}]{ay-GSLsw9IЪggՉ(#^!B #0|m z#gfRj+!Vn2rH{0L`),a>Gs2Pv'3dgf<'ˏ24C4cX'z"Q#E"9,@䁋BrMe{=r;}_oB?z+aǶq-%{ߧF-wkY6~os}VZm4m6gA4)l_s VH&EDC>_kы=g =p<Gԥ /Ν^:NCԨtjjF7^5AdTс0 . 24F %HV%/X!{9ٞ=o c 蜭1nkX܈#[S/{vV~ &8C}^ji3Scd95zIILFuaytXc+>xhm[ǂoq$ b1A]=jFF"DA|x~h*b&jb ѸsB3⧀hDŽG7xaRoc?&5A1sjyHdV j0 Wgp< G.F̡Mz1~5rjG8ju{<ȸqmGy467rDs(+{,?X1b=cU$g('4Ҙ<I6( 9PABZ3'Ad4e);#cӧe}4_hǂ"۝?33h -˽fߺ}FuEd>j {qϛ7/!Pۧ-ޡͧRS[S):<|'=b[8 ɢ* RR8s*ƌUoNh4A RPHsQHi/+xh"f>XT)֣hv0b*^!4AC &^ʊ/* bhf (#xh}@S8<< :|hCl-A{;qd!J )@yil8՘| H."XBxfΛA<7H_˝)'rǘl 9]!85 "Y #0.ʓeM苖_yl_x|=Oؖ}}j@ryԑVD.r`DMB1{|HPܡ Dh/@2MocoLOO֗ #g=1Ż}LC$v <:DE8'^RatX6m&ʆq. Lz:B*lb}V9/ۂ \2=QC0檙PVIapI҈܍ Vi ?j׌!!52@tQ2w FBvC봬ǿ׭GlVUa<`vnrW49D"x 9~/`df,!#}#1j< c$U *UYK&6WM<K^{L 1Oa  _K es`=Dp/c䌞K u !_j=|vJ!*7:_b!deiAx#hDFf "}x=3F^,gy!=DDZS6a$KY[e !<9xlujҦw i$dʶ 6e,휚Cޱl^} aǶݱv1vLͥsi;ۖB\ػ uRl\k|(C4 !hf5ㅮRZQ{or@=ÿ?Z  ZSz䟅qu7;:\8:jwx *Nn:s~-uK^^FkP LECG̷/w ZcKv-⺠~㦗)!;d/>! fX|]OfVV3 %]/Q)"c/I]4|t:̫+D7H, NQ4~x!^n2u\O).HF̜3BĽْ\"hо*BjpCHF֎Oˬp X!m5$jHeX 0Xy"x8VG{h4<t*{gBZs[nPD, `$EFFDhI+.ir տ^I IԢjSlO^M[zkqk蹺*{^mX}c8>ʁ\(ʉ3$ZBօM'!EyFɧ_g:G/tFmۧ'dtۈc@rWߠoRGb*VE^0X~8w(Ą yA~[$(\m[q^<4jn9:0 *\mFmP܆koY3zy6\h4P`|š< r _ok`~.|M!ab&eJ {X@EX_gκ+@!1GҔԫUt1a" ^7)#^#`@L0C #0/3"Ti0['/=>0ď DX HqlyerC!:GD'b7fDRp~+o o?ϞڗACx.`D`cDGcT6m}4[Xr5vs$muL6;9>_e] `$D4OHcXiL7c{'?X'^GJ/-JOOW:;txftکLX3`5jVNkHɠ7zMzpVOwbU ?pC#6M/bݺu#mP` rCcj똿o ]=VBPBe@5_vXc2d E='E$r<)(jH"(#hhV{xNu_+SҰb~^* jg#Z y"Ƌ z/ Ù-Ut- ;Zo%G+! B&($"7D#ed2#'i^7At $2@PCZ*UDĝ !j4#yM6+$8$9Nta<l V7FUT ,i ^ !0[ џBj >Ma]HjxRE :4tx† sF`0͜k&Pk6Pk:r?sM+5i/p3_֦+ bV+ІNhEuЪfG%A:ucx6\'mMC mx9o8ۂB@R*$d2=JFO`fN!D_ aHhO^/Q'ghf]MZm^7:ϋ_bjDWLj[M15;:rm.0\#kjwmReo~Z t:2ut0 r,Y!/Nj FrFr_KHyhH~KFE㧂3;h=-T J*vTԔh@3b4 W'9sx6hg@AR18~,b'0Q僇$fj [fhk(<{;3|s J9F1,zҝAk  7bp^+VDLP"b+#"bS@RD4PCi5A!FB PͶn!~w'eלr!~sCr #!'f7@!Aa(%:s$ ANՆXA%V:O?A ET4H&`&@ࠡ VwDhM:sR j]>aє/@'Ӱo?P !N<-! WOZC1Ⱦ $8BL$$=={%M #[$wD{MihK{ܠ͜F4Ws5 LA9yig9f~;o0C w+ C "  $4L h>:o6tp3GV:vavx @6wN浽 wl [<9ٙ |qDA$)+j|"E/,c#7a@f= an0 X]<8 O9&uPl^ uÝ0 5y z ~h~]6@l84"ceC2Xyˌ4\yZaљs>p~ަ+eFز; ӿS02I"Q ˴a@bAjjThelDa$(5CDD"aa*2[R aX"gV"B1^HJDtn|IwDB!Ck/0T%tALUT L@ PtTP Z<6d8>16tڠ*s׆NY0|צo s}\P\ r~@+|BY3VItXo"b}9^(HX) ₔh9;^Xrv/XO6Z9qn2 6'ih9B#OO` FO@Hrlv]@(~$CfD$2x Ace@6ѿeKCmS`!a`h6ѡ%ekNC6P4-d82ՉUÈ$輑.U贈"bAO#Hb-A0LUD"Th0B1Y @IHV;$f) I^ͤH|79GSd*M`aLЇΗ0U 'a00LB-M[ 3 .V'7,@AtaxҀF7 Shӝ;:x/]/sܿI[4YPp+:fX'qD"񾥷$asXB4ܣ%­0! $n017Dvm~B1F?9 'y"Y4w/0P4ga1C[ؾ jג}nJ(چadHQFxHH a5?&C56dQ3YbYB "vXFH 0ĭ(e$#FIht tx݂ Sf^Nj o6mΜ9md_|Af>ax0l̙4c e+>}`/z)ޯccUziz6YsXwxoZz ߂{MKFh7n(^a7s.wI~3'tO h67ߜ=OѦ˽Goay.v=JZA0 hغYۮYV~VXAxehҥlKhŒŴb"*^5,+gC-`O+Vٶ?W5||ֲ[e/u_/a|˿bçh-%h-ab˖em(l)_Jm՗sU& e S_MꤚԁPUځJuDWbF1Td[Bv a0j}|?rլ$wCj|+q;sۭt-7]4{M777ԡ;ګ-6Ztmw]S`wkܥ&yewvUMi~&l9w?ܣ+i nlUD7ڹsĤ 3Uw@@>x% %|@@XDĉ!H=dž8_'ۉ "IDĉ!HPDu>N|G|@|@|@|Ó=GވQ3"0hh7C;|W@D4O%$> > > >VDL ED&kRiPA@$ŗ@rUu@O1PD~84&@Dm0;W0 "B) "Ηv;Vh Dx !"@[y :>6 mL"Uh7[$iBC's$RRRFwT@C\Qo~I)\p8p4@Ihrߓ@D*z T> "tח6O1!D"I H ՀHRDb#T #of*$& "Ԁ@e"1l^# 6(" 0!D@;HenRR""waKiổG2<9"өqJ]YdX"?ZAh`אMP߻cGD";"JKIQQB4g*9T,딞C&LoxTM&?l]7 `k<:fyV乹OkQ5ʢJZ&پ׀HPjKhPW8[lTETHrVSԍ[(uͽ.Iei/<C@S-sdEŭw$+DV-D3 n8@oa&ު7|C(NT8U"8JveEiN%(r{uLtn)HM/o "6ssF'dwdŠt RRlubn@dיsl=:J@*<(^'D**xu>l'ysB}~(*H &Aw-k>׊Iʠ."T ?#"I"7X 2!Ĵ $g"#ժ9j$P͢`QL) Hqw ,"@L(pъ AZg톔 EĵwnDO$ []v~_<D*0T8q"#_I 2%GȦ@234sTZ*4׿cw+jIt8a *" >L>Adzv_e[v?f/ԥKuܙ/^D5R@D@D|@|@|@|@|@| n\2e7'Q3/ȑ#Խ{wޣnݺҒ%KVq8hNEN "'e 0 DYw_)՛W֧OٳgOZt)ծUK@D(X|@|@|@|@|@| n1'ȯk:z(a˗Uk}`!QMM|@|@|@| |@Ȇ6 dH Zo~CG(8pߟ/r*dr 9i,YId`L9@ȠAl02PHqqHq$l\mCw" %xEry>`*81>Sǝ 2deY0 7&HFD @Hu @G3ڧϣ~I-Y74r}*(ٴf glƸ4p Zl'+VMЬ"]( "m!m7l+۰ymݱvO+WQZJ*ِSjJ =7(Oy8=U_<-X(:cF[)(Y Ƃq#, ͎b!# GJ= !k7n[wҖm߹;'N ctpmN8rD:bJOM"_s7^_-rz% i%A&_veqxߺ_,FYdRgX( LLD~FD4  "һs$"ٴuؽ=lC<1:y$>}mXFE [(I޶v 9V(-T0Xs~X$Rmc8Fu$KG|>@dZ9c(0]3Xv ]5j$"P՝cB":Nk RDTe4V>e7uDe /wց|T=uT?"2e)ҡ/ ~>Ta[f7~isSz2O?uwA^uU(ٻe}6!K"Ν>i /~GDͰ EfDW. RnO |bh@ 9s挺~-۷?:TC%܈ޱMAUʊEi~ܘU͎ "es_-|;9iPKlp`q]sm$7;MIUׁ<#w)^_ߡ{G ǎdGGS>mQE,ew5hs}A / f]=@Z5@S?ZcluD$#~Pr"{P]vt:(K |1a ߂+~'(]X&6zjƱ.+H:]}[[1ɲٓǰo؊=tWE"DLEc輐g*5ᆪ"RBj ظ%m;l|r su_D:N/:(\a@$- `wvlA%?? &Uvo8v`ݹ8f"`%D- @d9Sږ r \xzvU=f%I> yB0Dcc`DGb эYqDF79 x$) Eķ1Z&]OA  zTdEĭ+`}PcSc"R:ZFm>ri_XSO>]owgP{oq!uyhK34c'F?JWPss8U;!O (j_[ <潓o[{ DNÆ $##V^- S1Y ] :*! G$߮ww_ \ hjX~])ӧ "&<%6DI}Wk8/sǨ()-q'V?r|~Jϔ; 82#5HE,foR1oZ͟6ζB;4Eш#0ꈀHrޘZ1a rB9aXAn #n@Xz91T dBZ " "7PfQD R_z盻PynŠ`8<$u-ćzT ܱLO_N@_5j4sڵ"I DJbՀDT[#$> >P>@dZ~eWLNt*"GMٔu $!ȡ][+>&OϞ f"cƌL֯_/ " "c D2xLEO*[GƎdÆ "| 9<ӑ@mSOߡ%3޵l47aE RPP,??_dƍ""" @Ȟ <|>N~0AsHL0ƏOƍG7oKIH{ٷ}_|@ųaߞ]ȤIhĉʊ IC"> > > > >DE+|dǴb'rާ " wL:L2֭[EED| rlnϰl,Zgw "K; `m6q/QzK|@|@| y| rZ,> ?_ͦ.@/;{M6Md;O-oM[@yC7_ |lZZh.YM>]}v! "("0 xΝM6b\WoIEȡ}cyn|Zl!_5teٳg?>(d~!ܹS@D9aIX'7 4xz5_X)zN^|҉#hKheӏ?e\d0c OO> ٮ]DD?H,?)&u > >P!}mڪcǎK}X)zND:y m`dÊŴa2a D. g}FYf̙3ٳG@$ Aࡓt9?Zhv;"%D zND~˵taڸr)m\6]I׭O?D^z"~-}+Pw^$Ht "0oI@[0a)MkWѦukBF~ @K/ Ȝ9sHٳ۷O@D@DZERHO]}7_Oc%!U 6md 3]|@֚?yl""J H H DuoS'+d y&} m޺~g/` ,P(9pRRRb+:()Y7Amb%d3 [0l "=}W_l…tA "EJ%d$osT&x1LV(D0M~K#r{ d+mݶlA[蘭K @dѢE FL;tP @f VT9wG\sY쳤穷/TuOicnD8p?uW<Iq#z RXl@Sө8JTe ̈́Oe+uyz7*P1"B G'95\w*7 %" JGq+?PX WދV2ˢz >y+VXXYX!iE9bXׯGY,_ 5~^n rϭo]Ю={i}@d0R b* jC@ghhᣈx*1塈$ZʗIrKJ#bP׍x(E$}~I9"!QzzRb)d6JH~?C(^ƿ@ԣQQ~km:wޮNϼ˪[ɶ/)w"Dv+g~̈́rD"k׮5kք `WWV-Q..h5Ꮅ09;F`[L9&DsN9i9"A \e3pԧ 5`#ǎEzB3wMwq~tm-2Y@D@5]Aŭ |e(cJX%,ө_Է@0Ab]HZwyBrIDJD*V8C3)I H TD6nHbeS%[ NRCX/F)\p+J<Hł8}MRn*Phb +:@$4{nKҠ4_8hAZ s뭷 o'"?LN:>*!cǎtA.u։r^QDxﭴAdHt2 <ʠ^Y9jV㆐T***IBIԡdUʵ>NmȑMxr+:@~Qωǟ|@$c`_2dgE " @D+!7tOJ7p@HΗv!TOn^Q\6"}( G{ D.sD"B\""%r8l+@?;Z5+"]Thfԧg:rq !VB3 Fk(> > > >p|ϿV/_Dt "<"Szo1'BRN5' $GDTQE >p>|чDkWa4$c8 2n}ỗ\VݚY A \}"!! ֭]K#GdRưL1&4lڴ)B*q|S*{qZn=MGfӐa40#EG˪ %%Rvm}~'h =2Gaɡ94hh6=~U"萌Zj T۹s'͜9rhO weQ0z,>q&0KYciDX6b ?~׸2 " 1! 2n8IVMb >1ɓ' |;~2u+K9>d'i͔;r#(+;Oɉ'BLYHCș3ghҤI`|bصg2|Pu.br:Thؠ!m޸ r3 $PG%'O+i)"7n+2@RR)XW; ̟?_7gҒ44{be3OWgϩu. XN))–^YW?5K Si+4lЈlB'и [6*ye0 9(!XAAASz*7TpЗv'P+i׮]4egf/ZFmQzVZy-].Z0rV0MkK+2ϡ,,o[~4ںy+M,DE&RQ!yAvaETC!5jԨ R2 ;ݰi9aĺtW E1]RI$L|@ "O&ؤ 9a  萌H>w:ժU;yhNK)#fxn iJ1p ?}e1wIwS6]x?qȨ,h4wbٲ}7ܽCu 7al[ ^Q=븎w/8"Q?(E>PDL D6lؠrCL5z]Q +1 &B tdC!vC D;kyP/3 R^I(Q3[iL*DX&DB94X[D@$qv^H 5顰X/um3" MiJ B~G駟LΪ 66n#b:ߐ8|Ǩ[Quq<@$B&1*e\x֕Ѝn΃4o#2GhjA$r$B(!XO}rDag_d+)3GĝCJԝ:yG\q{?3/OPwL <H~5sgb ݻFff*ڵh߾}*<@?TLllmQ3AIaРO~# y<l)D."vpbmL4YnUH(bHyMTU& D؈=Ó.FA]Κ5Λw>ÐqFӜ<*@&zc.;!s:Ba9$e3Σ.y ת/7+gC:>Pznz/ӺfrGRO~'4 #B/TJMὒ[@|awMs|DOeX&A sM-)ԛ@G~VZM#a4j(eY#TJ]33$# R3q,].[ ߰ $8$Aԋ'rO+h@4 0 0 BYGZz @DhE:oɿb1w\*8Q υ;~ò2ҰT _ .Xzep]>CtRѵ֓zuE{VvGk= bBe]vsDIĹ*p]w[MiԼYseo78H\r"ׯWdyD$/xJwy͛;x z77ߢo5fMċ/ "Z Wv_+"o "oÈDߋ'7Կ@e֡iLY"rFhƭ Po)UR-#,"GTB$4s~/8Ri׋}j/]fdUFs?8?>LJ-nݩkn5uܕtGD@\ 1j~}P_~ԷW?ӳsfU}#ܹfΜIyy)aY2$rnU([xhͪ54|p:he lH!t1Q~׌H^OOg̠Ck׮'O^z ˰֭!媚+]@קkSє52߼ ;qxHſ}Ý9s&MD ,)]{)w&^uMiCW|O\sO6Hy(/;rrįN8I5+Y577WO&f]0.`㛳giIj|`_̧+ٳ:Xۈ//T73~+cZ1b!dF 捛px[HƎqcQAN:yjլ"]@$9o]vє)S`5KhZE[itjZh Y.4sF:$k`ꫢee,srԁW@ړie_6&YөSv )ۋs>?PB,ZѦh=*Dn&ڰqZwݺu1""%SqLF}੆OіM[hbDeEsM7N3\U*ytqN@=1Z*ȶ{h!:t9rV^M߰rmmpE{yz(KM/6Ҋe=ҋ 䳿"^VFEe[7q GY~ڗkYJyŔjM /pl|Pk u-/>@ D*4nM*D ' "g.J("eOFeew}G{ 0̖i}!:CN8Fќ:uv݌mmA #;Z t*;P:zW>\Sq@C3XQ a䌀Hu#GP c}^ڳrwDBAnt?kO'J$\raO5C3.EdxV[ qqT%~h)0 B0P@ ~-}!;t0}jȱcǨ@$8 x*/9 ء!2/OЊU "2!&8FuV##"34# R3" MiJ B~G駟LΪ 66"b)pb?%NR a}EwH "nwbp8a@SUMCIˊ~m5 F DdUQDݻFff*ڵh߾}*<@?TLllm9>TR4@!8GĻ*Ah'!|~Ӑf%$[t8G#@}y)"C%y/QB3qot|BnnHjPQh,:{E#!E #:OD@Dr֬Y4ww̬(ߚG$<|WB3U)bҥjH ˰NrL"qs(>PY|@HBkfU5hyDD-M ;w.MaYeq^G%%ٿԟ Dxn_!LU584e}/ǪH!h4Hr[)҈U#"((YGS"/" " " "> > > > >P>A$/;a@Dȥ^J0s>\VZ$% T\lXrs)oth,U!`L2 "cƒ Dc勜:JVEо\ DnRn":y9j.SH$4#__,~+> > >P1| ~z3jFrY\~ @ĄynŸr3u>A$'3ǂ|D$VXz#IHYO9#D2-UD8@dÆ ATEdԌ@B>Ad FLe #40]7$FwI3gΤ\O=;7,l#~+Y@Ⱥ5({D60e䉓 "& iU@_܈OOg̠Ck׮'O^z ˰-ɱd%r}| "ó-i)#DH#Tu3gФIh!8Űk>eċu.&y}B\[N^5j #$Sl|s,-)^M3>O,V6|Z:{ZbvߟW(HU2|m bh"@+ 7$獲k.2e3|CfI-U([~+߼XM -a9E&0g8RSR(RӋ+u8MZZ}>cE*'gR6#uU"!lܸJrÈHrP6`ݸ6mEvQ!u7цԺ֭C.:*z(U:/2ӊB^J)T,0*IyUXDgYAC4 RfϗIXu=~8'Ql`dێ={~:t9JVoX9666:w7J+7nVTҨ(޵ cR))G˹yIӰSKD8RtY~Wu>7g=ĪxQ6 |="T:?5? *KJ݈Rӟ9yxbkOn*k=B4'fԪU+BINE}.\0[劣ct 5ԩS?~Bmmc!u"4QvLB5v"9X9uڵk+U $M2U*QEKiao١Ç[VC;F H<#N ~1;8WǪw=3~<~P*J"&ytZTl\!}C3u2E[%sB{^}NX AIı˱0c*>plܴ6o٪=O ~ `]lmcW9ŠĻo$Hqp.|(_Η"Oك A8x `1_Dya*"!9@䪫"SAF@$9o{Lx@Xv۷Ob矕 ʹ:mml7Cq)1@$3ܣfԹ3WOb̫#mU"u3lڴ~W_M $K t>aޝ6fϙE8T=;a+SW4_AIJRNALlҲX\ĮI+UD4HI~_tlr:c4;~2SYo.t~Ѯo 9i"WKkZʳ@kk'`D@\䀎sRĉjx. d߲mYt~V)IZD,ۂfUw/BBhN:ʮ:eǫU܋,F@E5 3 5,BD6oLp`_' RQ/Knb5$kXbon&M}!'gj"" q@DF^|542R RU_lB7|[n?ouҤI+Τl > > > > >P>>`&B 2rh& IǏkA[nnnvez+MzΝ4sL M Gsr}T xAd5Էk uҗZuIMt} "\^AW@2r<300OOg̠ vZ:ydw߰ `]r]oH+VQnu^Ԭm7gN!2Dmj!"eu1*~Ϝ9&[`A>N1lڳO7bm*yHy>P'x5uv}=jgAj"m6C3$e;.Wٳeif|1\KgϞS`]lSoxyKj_C1I]TkSޓl*kowj@ TUhƲi#oڵL7Ь_Ehպ-VJ7,-\aZatJMIKM/)JY6Diki/ю#veRf֫׀._IY iޮ2^nڞ{5 rQ3z5W&CA@JȂECv6ڴum۹Gh֭D6nR[.U6\kV$u.^2[?8ȲԦsoj¹!Ҥ=V "L3bzw)b̬ͬo[ϧǏs*VACDtx9rV^M߰rmmlN$HEZQIzOd{6iEN1=-܄]fS=\ëA*PR)U7\"415uփzh֓zYzFYnqzjgvQʑHltU{>-^Beh݅^iցfz굖k/ŗ_zmww#ʢ?@s.Va-whCj'NQ4N<8`n(O^{j:`GݾS5ꨊmϑ6~C(WUg]> ,}U}: (: pLu@E$D|Z9GA,F29-`{zQDbZHͫu2i3ckK*s==hi-Lkj Dȅ^Ho10dF1v<,YqT%~h)0 B0P@ ~-}!;t0}jȱcǨ F$ckC1oѱ "NZ+ Ppʀ= oDL(ݵܩظB0ASzD"( 89"In {5VO֋"=P x C"_=nᆐQA±qfڼeRB PrwAwe^s;GQ\a| r`uv};8dNPҬfc Eoick7"kDC3m"{S̚5Λ8޽hCƱcMsN,PC!XboȎ1 -cfDTGg^i{C k1!JTr|DkI^e`F~9 u*WcxRq\+{󤦧i/Q !Qc]qTȫۆHT,ỘM5*y፶,6k6aQD,,oa+Ϟ3G6XDOeXA!XO}ųn\8`*=&I^ bv3,U;v뫆զ Oj5 tHu"@ܹshD5< Ηqt~|V(/\+ 7ey4߬*1{Uԥg~]ozCwz_zZ<}rO03:uSf<<SGHV2O4+WS~CkԁC4-:ծ "D˗ԯ$Z J=N=~^n6TЌU릐-[|@|@||@dZ?p8A=rx'vG,?G>Y 2`(' "oA{94sѥY\Lnyu.> > >Z 2^#5# "IZe"B3{ DC+#'y*9"8GG! > >Q3*4 F4mS ߽2cL:uvuׅH޾9OOg̠Ck׮'O^z ˰֕1QMM|@|#ғsD9Ym̮ڋIl|s,-)^M3>O,V6|Z:{Zb9K VXr i3D֬YGCUR/VEfCRWPʅ^HԐp ȯQt>I"v)S(874k42Zn;h)1q% #gպDꐤ1N٦4Ƞﲕyʾe^_O6x2 : F}gP//;|UqeDnF2nRrW\! d e (! -Aڍh]mY~mظInݺT7<㮌eN*u(uukшa(#ad0/ȑǨ "/h˖-t7[ɓ'ӕW^) d OǏ3*U l۱vOC;r(h5} NF)))RӋ}b"kYq:~Ob>+бeE8iT41g /I[n;3.-{sj׮- d 2bHjt,\K{Ç(P]( Aðk -9x(t#:qttjaSv^˴iDz:Ku\[q($r"}b sXV<jd*έpRfQu0渖$MV5md#ڸ~#K9r(;s4ef(ɢ[f-Jկ~E۶m{װw}*$kqT%~h)O*sH`@[CvaՐcǎQAAAفHp T^r1:B/bC!Ne&F =h_ [Ypd؀FuVIvJ%0RU| !Ȇ7:rsHPNVBrI]vD>`6m]}"IbT}@ظi3m޲U)!z@ȏ?H?YFWD\O߾! s1܊QoшAHA8`E1í )?BP,*_1 PLN:$Cjvxݟb#/Ǎ-P0ROy9:_o߮AC]@$BӬYhyJo{= bFiEj `]l[؝UhKP{ܣfܣh<˅51Q<2~w'ڗyBi "*$c*wU&dU2D68iW=f|y><pO"K'$Tq|@HqTa2;TD  DŠ$S# .fϙE+T=;a[x% ]U9dVr]e;5Dg[d_3 Yw(5A?rD$Y5}ҥjH ˰Nepe*tU97QلdU5zftfv<@ߧFԮ-$:ΝKE94yDdB*_VM|@|@|@|@zikdHAx+jKf s=?fVYSx$/@">Ui >L QF)1wܡfX+wTl#7@U>WZQ1x՗C=]lއZjaKnV~mSN޾+7RUH?R-uMJ]:wΝ:SŪ. /P}nu7ֽ.&MD5jHd*RPM|@|@|@|@| ~xҢQ핵mӖڴnC[e^f͛o!Sէ>GNT^]@DfvZBjv jvs˚7mFe^zahTBSԙԙ@}G /&o5lMz+t%P\믿>ŠT"IUe([oIoƛ-e RN2M@/RNaa \¡S!Yo9/mi֤)5kڌ5iFo7k) Sn;w̙3)7//4;7,hϊTPɪ RZRklݲQ30j25ٴi#$suLB3B'zC>}>1Tk׮'O^z ˰M8]r\_~>=|cԱ]GgsNtOhv9Oh& R5̙3j Ʈ=~/F/r庋$iْԣkwe=zPn=ȑ#TZuoA("t382|ߜ=KKWӌSihiʵt968bFJ[ע2ye.NԔJaKM@i)^mGge}@4oz靗"V%47]{gc;[}6|ˢ_-f9E&jHQj#,!&L& :.[rZ_NSS(H_Xud 9 G5һCӈ Ǐ+_$ e (!/KMzggiqм?]PԦ/mظInݺU1X: FW:|raP>x=ZvV9?at UHUt¼|>} ߥEG!zgYu^}x} יĘ^loc6^}cc]Z%4*RjkS<.Gg`{U.!8|:1T :(u([ReUzp_/pEq?Aa2;YjvX^Ekw`co뤮 hK9y!xPDZDʢ{_lI8GKL{#Q tItCsBNmmuVJ)T x4Ԏ/8c7z4PCq Ei܁=G<.r!Ѩ9غ#uﳮڏ?<=$2fwy{zO/tW>#hݠk"yWzW5hH7nyh|n!i rAHUt#GP赎ҺRӭS7P\,:Q9uEmcD?2Th j:c<pe<0h? [`cPB|xG׉y\yyԽ_X-"+7^uVkb'rLUg2ɝVL튜lo'іM(L -O_U"UѣGUj5j؞j筡Z:CEYkzղѷ;v bN12ԉt궒1G*DtBD'~թʂO"WTDݵܩ؄;S{оhY8@WsuAeh%,}6ڵ@JUl/Ki h-4i\mi D͍SW^ū蚿Dv#맺tta_u vcІFG <:]ߐI#p >C 87_l<צ [Y^2`({JHD gD6*|CݻFffO~-M)"W^/Zփal谎\W#s3B-0LP~ONه9Y{ވoE#rMTBemV~w8 i+LNꋂ?#{AVќʎ_91yRϚtٹU%MADAi"w㽁g͚EsSJ]a3E}=yh+!`mG!1#b5u: ZY~Z1q_kujvjگc*@9PQNBeWcfփjp\+X75=u]WDˑQfk||5gW_IGDFtNFQ" @Jw2uKwwβ@./J@$N%Wvg]tlr:d ˰N韧t %ShWF~:"*CҎFê< "Eq%F 1w\*8Q υ;~ò#-YJE?g+g#"erM*_HfP iKuD2q2udx97yJ(<հf#"P"P"> > > > >P>}r$k I*(MR e6*0(Se"|e|Sb( lQ*4LgB4"U?H,?)&u > >P!}mڪx*}?uM41P@D1ϑI H H T@kQ2V,ʺo RW0E$HH%%qI H H T9JFIs["6QQ8aT6H'5 5Pk@@$9@d4alAFtHo*z $lZƏɧ #y _C4Oj_E)\pmڴԩaEEETZ5%Hh7R>ԀHH<?VÈ/" pث l]\n-zyN iy_Z$uh\N.Y0R8VF + xuuxSX]DS㔺drh6))bX>źu{EPޠ#Xu{BvC瑂x"QHtPb訷|Iymd)kH$>u2fD|߸|֟XI*ݸQw78@u϶mX>PZJ-?{G.Cxl& $ v=chVEr8D0rdHq::pS)6ӊ>>=-^L\0O:ӊt} %!(}}yG;@HwI&O`o>{u&<9 $-IPD9^Ĺq([`:kTZz<%ۯu.a`Saͻ\^ T5}Q{l-I;2aAD("]w]%G Uష؇:X IyP pdA$5'95.~2;d]AE}+Ķ_j䛈WŇ<1/Ҹ""Y3",SJ "F,q|("@Qw{z**MED @N3:we\NjdW(1EĻ*b B|ʫ7ug\4|W#GD#qDDV1G`$0CNt ᗬ#3H^ ).&4ġD1fo\9"Τɐ|jv="QR}`1u:E66!0d;/\S)%1')')EBfNcybTw:k!@tWrWE29MXhD*킑@ѪHw/ᇟЉbRVU%:4A$kȰފFDDW*1]FJ#2LǏU\}L0aUVMT^F Қiؠ4t l <;Fkղ&4\uUAHţK!~&5h@W!}iP>44;vjլ<FD+K9W*\QL>S^]w.l]te+ R7T*7\գKGtҽ=uֆ:wGWV@dÆ TWgrT<xGiԩKj۹9S+. ȕW^`TEƏ/ɪwr41k"D|@||>L|ҔezKFhtyK rW` Ǖc߉$<ȟiԤ?WZ>C/z^nF{K_5j`Dh"Ȉ#$& Dr4r:?҂2H/=׼[}jqsp']R Rzu tR@?a۲v\r\WUhWsqTGfvAW3@iUDhDi4|4s٧ϣ~Ic|$OH!U|@|,|ࡿů*<ќߚ5Fo>J =/""ƍ$5DCڍh֝enewGĉ~8@SS(%5WY:VrUH* xMR7odU$MfvC3/ܡ <# VD!ў?pg;F'OӧOӶctJMMtxU|~[k2fE9"26+̲hCMG9<ܐ9Q^׳'9>{97يfk@4yi^GbB V* mA %̙3oi߾1:dsVʈ wawiu&pLut)1?!Q똹(|\/]φBe3%|N6lyD Qn]~ ⵟPKߒLic$gj8}ҞGHELZ-(($)uA- FgV/xb~Y:MS\mlud^@uNFO_E$H-ʪdnf*h[8YGͰ*L'o-1K̪PD.R*Hr:`t SrY|wtB!01;C|T 83 FjH1! BzQ@ġ9]v;?@.K% F#RQq)WrU麚 f=#6k@/|Cy+" 7!T @gG8o$<"ؙb5 6w $!{<۝x+qG(>5^H[eED&KB*ur}"_͞`G7[= AphF+"fH~~f 0OBщ:/?O?jɉ h*WɬOVL,u wOPa X1A/"W.zBよ)§\cCq(>g? Yu(ȳ[ &oy` E+EfLde'Ct5p @+"X7Tr4< C>iip#N6⾞~ 6~񜼓puX5>JMOwn\0xz Or}y[r X 2^lޘmҐi$=z_>~\r% BLe$//O$VD0m;fLde'Ct1:cBNr&zh|4BQrLNC|{}oyQ@$77W&]1)//> >PU|௏-]Bm;QihM{D.L@D(##K]tjչ5Ёj6wARq2rBrd+> > > >- T=N˗SSԮs7~ iuj""[^\7'S$VuzEƚ#ٳbeT%zףԳg0eCzjש*hOt+M)7R^pPFv9sxjJVr_oIrD׫G+W~}S^}{Jҵ'>|jKbur=z(?YMoLѢ'D*&T*YڙRSh<:{}o6WV\E #}{>Q/VH9JW\q("!cJ*>Py} r>;#?WV܍nHn`E+k2=Y=nۡ^Qf~F @.FhidEӒPR*"O>Q֬ZMC!+ ؗO:z(]y("(> >h汳?}gX6\Lʐ(_Oidҟ =c־,ןƹ,Ǿ䄲;g /:uSJ縅cYlkq'C91~G :>lXXh n<ʠa $C cTʚȓi}2k'|@ 6.+[FͮOf_L^ߙ> k=L76\<7j_Xfchsov^n_%}ٜ;"O?ў={f:)ulfBOdf? F#>2ZI:g[ֳ)sE$GQ}kiT2LACicǩVZ"!cJ*>Py}\@`BD #wXƲ2"A``  " 0Qa@$3#%'i=HБl#(ke  "D*oc(\;;? ;xL,3R%C/UH0t4o{tdDǽ} 5exd,s~'V`:ؗodYzetWo<Ȯ]\VJiq^UR괢CeZ1T˲r6x% DF [C ~㊍Kw~:>UD&:Ck.+2T q S<"rer8a׶]b pe)s/ܹ>縣5 QFʈe "<ʬ׍ئ/|rD,I9FB rB@DQ| r?OqV;YɋOsw1Ɋ988z8zsylkyx;4-b]s[~tkx\o5m3MCױKPXo^R24I_ׂfmϔ,,,j)jAשgQmx٬+sE$GId,V5.QCD HD";~ ; ^pA`aQ̸%D=$XÄ ~#WQ ]Y`b 4!% X|!TRX=Zdrr(NT5xxDh*ӚQT>~I*sBGٺu+MD=()އHylC:wkݲmCH>P htױR7P8fE'+yrhרSC$4݁=Ҡi0Od6?OhVSfVMFR:>ee " GY*e_]RyOePnԛ_xׇ1]zQ~5#@\>;r^Q("7n$z5unׁwdl}Hժ˄fXORR DLۏr^QO6l+:@$4~G \HnAmZbkm}ݒ8H_vH5r><3b]|n:*VuzErǎw֭+:@~QѮ̛OMlB􍷨 K/Irem~~+5]rn'wҭ+L#GÇJP_sk{s?_5ǫkJK.D@$ʕ>P0o#=5l n^Q_TOn^Q^ n3{+K/+l/‹w^DJRm˵ȋ/H/>{E]$ "ݑ{RD^zRBB Š [,䖈S6ҘT^Uy!UX>f.Ќt$,I( ``m ,l0x7(ڒ4d# Y@MTjQxDpz3w{}9^P9y3sϝs^ L ୙[3/<<=3,OXU4}'U"bbbba?y^z?(a}4_^ÜÔ?l 'N^y*˯ka%AIrE v`r: Dmy[i?xm[[6~O?.o͈IG"6 6 6 6 6096cvt;8D~z@LP؀؀؀؀$@B;VS*qUIoݢ#"<9,**6 6 6 6PRXL.QcuVU5TRCe-ݹ}/JEnɱ맖Fjm&^iZX@DorOUUl@l@l@l8g JX#wD$&8I1A| DH3В$0 LJ $ $, f~_7󫪪vE{S …Zyc&T-M+NMeY=7_l$KRRRPzz:[6oLyyyTPP@TRRBeeeTQQs@T^VҗRIq SQa(;hGo+h[Vښuǐ("L,9P0X\^\' aBYT|H="a 2驧j:PzOɓt2L'ރSz>qCCStӧ锑}фT^.xyNҴ} ua5"JWW ʾb+^{vck2? #Ƿu>3g'|B~)={>3/ŋO4<O<Zd Sq"-[/!'%Rm/cvvŊL+WTY*)&-mZV^dAkКeffRfVeeeSvv6/~NTIGYRRtk>3j4&Sn$ծh_3VY̱Vx4;55@kl#AS{cmx~3cq>p Op#CKA4Ӗ-[^ݻw޽{TSSC֦| 6Dzhn6jin&:^HuT_SGڪo^Tw(a˯6{xe+yholΦ6jni餞Hcm"nW'xU;+xtc{=,;kY\?#Է)$mԡJ>I #-~=zqQK"2qB+N^ͥ׽ FMfj ީyON i EraHT8K pdä[a8k׮U.DWfegg)IO_ȀDaɿLM R~zF̜)(q#Dl^ȈePutI,mnk$1a\F 0 DBִHSDȡ “.A$*H$^(xlb@ZF8';>ɂACND:]ia aQK=WSv5Dp=w8qӰ27O !HչL vP ԾjS&\yHq<  _p x423= @|X$[S+iDfΜIǎ}p1VE+m H?9߁2Uv~vy&0 muL3JXznܰk o޶4ľ^j%@~afH@l >߽/b6 :_5}7͛7'o/rݻw]$;ѻёQQn߾uq98o} /u4їhZ[Bz/jHRQޑٳ Xd&;YG!9shG~x,劔& jeArš-϶}LT3fЌcJ:Q|m5smXu;)]xDbbakCGs窹[jBSK% a c3flol8y?}Kg 13wv~9E%v '@QLGks.}:#ؿ1k.q[~-joNyɭoec75yw__ 9=I6w\]Bzw08Z#ObZMy_Z&{Tӥy/^;-?/ ҷˢŋ:oq}>μZU~SPAk6m ڲjeп?~hl ~OcQ7:b@̶ݒe b!,]bc-S"6e0wN,\ WEt QIFo>~'ྻN,Yڋ+w`ɪ=\{z?k#rg?%܏?l 1e<'ϻ_eol̨$LXk؀ћKokm2yx/ .s݇^C$)˷ f mg˜ʺe!fQՎrolE`~.ݜ{O~x5rU/Nd{qۥr(e wug˱mm }Ή݉<.؍q8״WrJu7Dq9gn,{03ff,ߎiIQ[1)b36blzYcEk0f1C0~zLkc+1dv,MBױKaB44NC^SPdU$u]&DTTQa* TvcQXk7eEmGL(-j=DF(|$5JQp5T0l2(h$ ٔ`i0H |Xo`j}r^w.GnK8OԜNmsܹuS~xV[7ީ oU7+ݐBWV ^-Qe;2M/˺^d?zQǬcW9jŻ~݁@߻Q)VcP8l3eO@Qx8 ;1{@sdBN㗡;c%LTӞSq|4ڌ CA Ql9:OA.SPd$wZWL;-/1ы1??1%z'f1)r;,لAsVXs,@>sPTT2T:UM5OCծ|˕N}LDOTYΗkk#HVbD 3WǤt5QTUxՖvi7q(aڦ*I%YC]'5UMCQ,JC(<&Ƈqa`B8>~p$ޛ @NCqxۿ5V7yc"xz}#;Exu"d㽽2tM xzy<*/ŋs^ EELgE}g♾3Z}ӴzMSNԓԓ='kI~O}RdI< P|v0eJ%=O9\lk:{7+cWn`#X} mK_ˁ~mQ >- ]%BXĖ$!^^"IMsyNE+ /G rǰl!B!,H(#D'"LDzB&2):E lq}$mNYFl:&D\Ǐ&E'@L-˲P#B0!q۱Pp=XBHLƃKi} NbΓjr)Xk%"Vaض(qO^Ne^A&%pKE #y/a'La[ dyT`NH@aNey@#Yyi--tZw>yͦf06-j &o6bbX&,@JD$1 WcԼ ޓ"mR>%ߔDzOG^gKCH|@W[7 l5 kشڪ*:&mT96 pHxl۱(#jÇc4YM8Z@1(ʩPӬ!R@^E-d@Cʽ*+` \Z)0%%& #0Uu˜4uAXgk^CaM ޮ시:AX.BX~J&U}0e!@}:j i2t&*uro>l1Q%P!pR$UVǫ@u5{qgh32E8+Ũ0bz Y@Li9\1R SǮ,FؒjT*?+y^}naHTސ.BEjc7#l1@[2ux Z G=M)Lȫs uV>ջOSӚvc{T*=)/+JP*D+&"l)y a@ < S0& &6L{e@b;@l L10C{d `̀˜Sg]EBl-qJB<!C3!LBl a,oBQ@̄-H}Lrbj11  7ؓ\TωIx7A}4^ b > a2 byk/`Aou;Y0fY k06ce@11BXa aEGjS06cQ`e˜d='< 6;1)#ty@LYu/0fKacvA!b)aBà"0В8eABp}A%f&6} O>Kp$|1)ԉbD,9ꂡ˜^F.GHG+ǐ7-8s9 $:};) ǒDy-+o_~ AQ:wD._ J/*pM2'0sc)hFhrx͜'l:% ,%0Dl~b)Xna9AF&rDEPmدID@D8*~8Xf)P2aM1xDmt`avV^;7q8Qr}<#A<>aQqJ='f$V=ΨU\[E0K$q\AO+lvd>pTU__i?*ʲ^ږm&uzc9ZHBY4i[m|?#ڞm)"~s9\Q&*Ctdtgҧ1f$VFm6ܷa沭eS6~1A,$E:bё_meݒ_Jű%k?ͨT7D~Ј(7/ }4@SӺ S G@ݧ(Mu>V'Uā2qɃ!;>xܩ <,AQZbdܳl'\ْ<\(`XL2 c9kƪ@Yy@:b&YXEXnxZ[zmݚVV5M -(@!8E 03Lu<|b:Eah7&Rc",x&nQ!5'lڦ]FcօsJݵ^)q:\ MT3[]8atŪlj`Jxۈc&7%]4ior5 Y\vBatvC5+؈&&GNKW=S~)}jĭyY'^mQE=g&ʉ6p.J _„|*>!LrĢ#q"n7#fw< )jGtf)7L9br:b&iGiĞvl ܰ0qqgDOLu$:`= & &( XgJE E6C^K0EP|SpuȂ8. [CܗF~1XHYkv2 r;ݟ]X$i:qx-r}_VB:F!lcH}u P 4 r@ݲ]tTvJ6\6&ϫ@QC+[/WIKK Q`ץdr0NTZ\HdѼX)2+WeIL?(n#eTJ(]LƉJ(bNwm>|.S@gmc|lL% x:1Gk1~*3+btՉEKԁ_vڊ`Іj⯱Li?-(fJ:CMwM$j̔|@jD5CLJRC8GثGѱუ<zZ\IQ8LjW@Aq]\q'b+ҍ8DK:Ɔ /aLX+)';IZ9 (D7AMKdjfp(7ǒH+EVVqJX i `ESr%`¨r8f{!TT VFG@CH@Ckxh ]Vtx]6 Sy|&tj4L'qylly VXX f[!5֜xam ax<-㷐@:Blƽ>rc+CI=s"i.9g ^l#i9_Y`SE Rf`2'G[&iĜ "醉#Fıf&iov%JJlL)}0o1#-ўmnM{jZ$ӕHy7Y@%/[b@5ac)7L؋JS_& ,pZ"=e$rILgL9a7L!L03+-Q08G㔍`a#DY @c7LwbEBX 6EJAt8GJ̔ʎYTE]UzXFzHKb1 0f9b+bfzJK cvGJO`,uGL ,!襏j? с%r[R2Se0\q k8)?RƝ1L;x#];wϝS2GB(B0tSyu}ME%}i\rAi8:q/aChUDU'H(lJv+CRqyNW:ZLmDRy < X,O#j^>rJTF89G`k/_)XCZ8;uJgƲ[4c焺no*isJTD W%m庤=$Q{tmmǔcc+|fjqZ4­aӝT:SM\2)wL+i8k|?Bl'毠%|:s c3+1z^<͎t"W,}"{b8zFh&}|!8cEKPu Q - Qh?r!AQ[B_[:܆ZOG2LMGOKA \)DMՒ{ܗy-}"}7/M &+`[[*@J=M D W4V.&nXGDO?11_308l?L7LR)ӡk5VJG }4?+IKK>SO`8m0 D*—< Q*EP HR!fr<:,qbL Q cB)I u xr5=6fʡIb ԺFf+7LqWΔvx.~(}(U 肕Jڜ V)Ĝ0 f; "1IKF{}^H4i aD 31?f1F* 1iI]a| YnXzA?9Œ~bahㆉ瓖HhtK0/Yfa#fiF0bn#-Qs&@X*G,afZ" !t?1B3Ȃ]t~b2 b~r3MQS 6b#f μALOT_[b Q} b@6VH3 jz"ArOLO b9b~b&%;g(fM]|3e| s|{ ۩xî.' km=mP{ %O(u:A1gsyjr d_Xܣ.ΜYL1Ss6)gh{*$-1xWrƿð83"6 %}fLR#W!GLe腉L!C5t6i_'E("n..W [[`0Vo?DJjjΣX˩Qktv㱘.(Ȳapb3]idYFYmKwCNzՆSsg ]IA;2r2q1?Ic"t lɼ@_c 5td*ס_zN' a~D Si4atx^q^5f#ʶl}:#*y%nXZ} SĴ+fb>ߥ GL0vG, v1&Y0GѡЪ fBYE;j/1vIO8c#0=р/~'avɡYن]XlW~ϢE8~:ndƙ(-t vmڍaRH٘-`>z0vP=Ծ1q:4fSFA8E5s7b?O/zyv0NQǕx,NNTεs5qIJwi<+^g:dIZO0r)Ze8e:yfx -GK'Q0PN`@GI&H`d^/zK!q$8I{EƱ<_MbњZ"SY5 dmxMr<6dyqm`d-YkgyoyuLe{%ԒmTog.lutz븼/Sj5u\{M{bjc. WJ4RiZ2oHR鑒J^}QE1bnG1P.az蒕wV\B)`)P6;:`*uѴuF`h ]J&0gj՘_!;5A}Vb9.X11jG30z~rDb66\SIp.?ܫq} 8!,$V\L2qsW;|o1Y#o}`Eh&f*]l.ġՕ.ԫ]-J0h:aFX#!Lf-ٚ0ؖE9IC'LA`JJ %eI?@KÖ7Twj Ȉ6B]t_V#q8L$eP@STʡ@ZD(åG`RR vƶ މLR4#&FTM ۋLhs[1''`Bqfq0PW;0q&E pltD5n8b 7?LA0VM40@0iF0ߴDH HWJbnQMQ3%:%ϢNK b@7-0c9%fA؋<j f YjTL놥?fcDEjRI$l8Ą _ZbGn01ًt}D& 71GzkvS@bgL x(# 1U=QWQb8GI쮘TMTRMQ 1-1]#=Q ]ʬ(Uuz"aX5.橜 3'IO}LIO$5J&%:I^Ӛbi給Zy/M_'a]r .cF<`*%)ϕd^JRװzF03?{i!'/#wWtFjK.ڷ3Q:aNHQGcT u nA d^Wp81ۉ}s*:@1R\s ϿJQaޛg;g'_}%ZXɎip vXs9E8{~!f,\\'¤kMRP{Ia"Ž|^<bsy$۫y-} ??r8Otےy'y El5m6%A]Xɾzw=G/h)Z{R.y{y}֠<vZ;x_GOS229^Yl0y5=m- X=wA(:i6 Xڤ@I"`jAOC" ~)p')+ lBDZ<,g##}1E4zc ; j]EGo >~dC2%`(~+BbJ&S \wFb,Q0PywZ.%~D1>G=^һ*ۅC'kmĬ(q=ԑs °@ :v[&igO TJaR<)U1=QWU>(hH)G]oVJ߿e5{:b_R_/ Ha`%XS#JeD$7*d#&, ˬ}$}Q\<i#[JQUʑҮ)5OI'0ݽ"[U \+C R$%qLJmj?%\JAS߇8c'MHqdlCI0턕fp12<=e1EA갧%}tZ1+-Q갥%ܰ 7U<)謔LMHH3d}i~thK|Y-QTDP8bHGz-%_f-0 aVy&,1ͨ+'>MwL7TKOJbZLK8bT>:-EU 0)[aeBX1ZM֛a1{z1[I{'Ͳ`Lw8g[;LK Ĭ1B@8MS-@Kϗ`i"gb=1)$5Q/'”+f1 cAzS)ybv#F:`G;HW h@=MlI*P!"F1cmd~ ӽ LvzAXKyA ;`QX\bCJmv}Q5k0Y6;6j ZOy܄ҹS:7yj1BB;._ח? ]N\ ؉!vp[:G [q#$L\ y \1I"V8Z< p&baei -AߕäM܏l^yaY΋:y]9m%Ir %u5'.!ezCX|=:/?_{Ƿ^s/aN$`y΋NH QK 4u*ץ|nUGh5M.YBG,p+`{ n).*2%ߕ>XVocl;U[bddhfBI+Z4~[xm۸)TV^=._GigJOk7;/ŋZ :حd|sۂ0n^Ě0SIç15Iδ << +ۄ!m\zFk9]אs.K%r?bx?C4:\8}%=T+b+R*pG%;DSL`*zX蒽anܾmr2Nه{&n9\QXXaUGJ SU.VΊ,2b2*,%Y]JJHQPհ*"E4t! "YE7]6I N+ j{22U8dLBH xPM}“TCTcՒf_1Ibjj r3j>TҟLzbrz$V#F{V}ʱ@Xq0(@3) a\`"&"]-1DÜ:㇙ f֫b67?LCv|UD?̱*+j aZu M^LQw ` eiCq}'J }DX՚^_l; |jaw+." (Nc"oau@mPۊժk~uMk׷۾Fk8Mx  jQXk0c º]  rgBٷF҃FPÕbTc8k}(pf4~J[Imqt^MLw)V^9sc /\/`ӎ}|0ޯ:M+j3ppu2tD^7+ UWӶ^侶m̫st_u1Cy=Wk<]I;|q]W{g$(s4 +.ZOԜ<CUuu H&u@A,L9ެ'Wd e%gku=CMyL|;=}|&m#s-܋՟@i; Qs"T]Y[{;ON(-cXqKs#^Sщ/wNͶK UDhۻ+{#(4F<~}LKJcD,ROvf wꍒrRi}ySE"1HinhDYxF/X^ecc/OZf)%)@\_U=*%x3a6JϹi\|^1ymiRˡ&~lChcv\8tʾ{\汬r ?@b3fE8;}fDׄ%h_-qԺ|ڑr5 !OFڍ oU_6MyjW$W;>C]ڽn@XCP0dߴR2׬26P*oSgVv cPIޣ(UUI4R5΋L|.v&!&ͮZZ26va:|7U.EUZ2]=sXWxۏEwn/&AK)a3&]eل0A:PℙW@ǀ0TDb~KKTe=if0U^DS fUJg%8b0=vm gG cm.[ AttD)[AgXnX 3;6r$5p0F'L0a uc18JOs%0&iR1Auz"LKԃ8O13F)[!~SLsSZ98o1Gz"_{ c <+f&2EQURdE3t63K4\WcA""/F(ӮĤ+"PS1vPT]+f9b6Y^J/QRΘ'qd,1?;T?18'=1X-\iL>#dtpJlh+j<Qz#tsD4ڣ9@X1x d %sv۠]2oqx/Z/bgtЭ\ƅ5Z?D:xZ)#PGVz2u1ցkUJdegp X%bdZ; XuKP`MSI%dE 4x9MPw)Fq%Vc[n^1iGPy6K.T #Xjp¢XVu~onG@"4%qy4n͊.G2֫nEX%LMA$*aɌۃ*v8x$:_mÕCe{at`U4z C/rA.2Cb#qLb{9U@fOGH#۩cǓeKlg;׼:WLK%ɽ[g>svlc˱A\?X-KڲC=S7aA[qC$Ql?MV Cfv7|XrVꀷ˷Et+J|+u׿Q5ri7˵1 nxr'_3>ktz!(X/ " FQK8_5v5v5RҦZpGe[%tj5EYyQ6v8FxԎFZy#QsUTѨJUR.ЀMbҏA4V) Y c\fL؆0b!]芉ք-^ `U^YiX΀y=1o&tZNM4t聜 bR)Ցab&Ye591#5b;L`z>nX J[=C9GAgZ+ , f )3S dag聜M3A pĬaB%cL1;p,7LffgsSi*k[CfWVKL5-ѷH<06 bsbͩ1{E+bF_1[?1IST F b ¼@V i NQxBLK4Ap~b$5q\1*V +VUbbSv h bH! \o1%1k:Êa!֨u oYEj5z.m&.FknZMws4m MZѼmK ^%D6(*ae5xjش2SI+cSJּƍ1˻~tMc{JJ[TVм 75M ZI6FGWǖ(3ݰ\oz?3LZz] 1ttL?SFł }0oP,]]۟*ĉx,KXKqHç [EȺD2uĂUi8h'xp_S\whRK9Lr IeC!F\+GW'A$D֫55&/aKc:Q֋}^o9Kѝ mYEGj=aЉ}] 3tJ0KI:dH9KZEcgųC +~a8>7N[aVizN!L-e vrl}'lغ=TD*b%\&I@CFѮt|EX[@Tn~lIUrV c}h? +Tsői.?`YCȢ{N.T$AS_ŵZ.2 K7-lDlZkT"Vmއ\fZ^;_ [%x[~E}ln'FZ13gzS%0d9M؏Nյ~]&)xX@AQw*z. 7oe;1'a?=5eAe;d[0|R #ȤTyF7*pd,OW0^tx%jbOKt ?i 7L9!oD]EȀ/8?>y*-1^-tŘ*:Lb,ΊRyKDH@!L)G,&lzpa}@LabFJ?̞HSFKm F<8 FG&iO$-H˒hXv'g찌1:^a~K֛Xn3=1q9 IOT eOO1{I”f:YI12 &i"#& Fv$5bfI{$-Р(HGr'v ƤN;L@!9]4สaĢ #}X6@1h7LpI:Lԑ:\v-` `#t9;d^r;9Xb^v쏍vӶb5BOcmFй6R[6Ķn {C2Sף!a/ ڥ16ScM&H cEƈǦF6?7ݰAؓ/"h-0SS <}.F5M05+!j,1`)s"l߽1cs!44kw`=|݇$>o P--6IArvHmO\BIAj(Eq[ a~tJi8C!XOO8DH1c8B.a ""Zl<&Pf_>EW6oW E$cɽ'Ӎ{50 LLJNكtJء ڟ% XvRVVXځk/!KZh{*뮃+ы@1b1=F:/5൅f•hjvW.Y7arGACI+aeS$\bu%uLZKӃPAR?RED&VSIm`A S4cdE 60uZ#Wa=5Բ}~󵥪D!띯mrys@Ha B󹻍ٶ:nlK%syzsݞ׆u!Z y]l1pVoz̋ZiFLEʼV}ѠHTk3ePjvD*m|KU^'\Vi@շ >vܾhZ?;,6]Y m~!,Wr i:MW5;ڻX*P A @zQ*b~AkSaOWeD#*و),S\g -5~säb""aa`V1DLPv '5{ZKZ"m{T^& bOlLAL6b^i&1Oz:av7`B1*!)S#fB̄0+ it8?+nS_"he볫qlc91vVJ b"1?SMUPdAm{׫JM$is`Q^c31*?S%Eclc1 c!LO 7)GL 0/ qTGhSˏY T vŪ3,a(IC L3A,]?jtf=p!{zrn}NC=lW9+ŦzeC c;`+3p|O:ԗe!@J4S"x޷^WG^o;$kc+}`{{Ǿ픒TthH;Cc/{Hhm6 x>g;`)[ug7$?y|Ï=fعy.֖91q}*֞i뼿b~|Oݸ< EDۆUmAl#;T%sMT}dzn沆D8MtZ-'ͯ;.o<,*ndc\PqRs-3/ZDSTű\)!}JLFh9u!Uj`PV#ټVLX҅{'9e7fIw1 G% Jk3o}ܳW'ܯ$֪{پ{ĝ* zi͜jx,JNi7ݪİLޛ\&DLކ)Ux} b iv%==OG,]m,Z')xHFҎ _J`^xLN lJ'j 0}L ץf|"ā)Pl7! raPGLF\v\i*)#W`?I;`6La/JKUow`A# }~l6)0|֯09߁j:s++<ǐ%UiiذY GYB̂tƔ+Ƣ3 bĥ~:C  ' a2ubC%`!Wtͱ{wa=+cMJ$զ:ְNjnx ~NS븍Gg8>M(>>e8ñQ8"±(PNR:K7t!1 iju4.VEu:k 'W.Ʉe8AVaӲh>9†0U*"zg6s{l-췫bbTc/JöC;($mW)))v؉,^XIXz c+9< (1+a OC XbtM:F!ϲvl*g$DS(uElf)Xz!D80'(,WaXa⬘]=n17"u3!}lA]UKr漕&Vl : ,V^(n@ +ݮr#z=mL}XXGAӍ%0t9]̸iA%<0ݓt2 |*jQ`xm` }uYק ?05uT+>0+ #/ƠЇE]X޶uhuj M{$ ,7=[E"eyWx>5ƪj˜UXv넱co!!r z@"" f="MHMH]E+R䭪Z[s9?A-u hO8k6jv@!o5QġN\tBQMoև6 Nf!d5f,ߊcyacʧM6Ě?rbٶۘ}#)Le첚tjj*: ,|"S f0a@AVfVK U写i b;t&:}L3Sa^ 6ILK=OM3%:K lyaƬaFGZTLtf#i'La&JFDBI?Si2n)Yitl0冩De6Slٻogـ01Bbq鈩Ei tWL*(Z0& 6Sĸ*AL1_ QV\@T)NCK`aގvS1hg05JKd0J}4yC!Va@̄13=8Y3?,drp?Ze-S2UR޲U^NUȹeP#G5_5xx s:oo*zdGw{{o9 yjܾ9PqjxooeC7_A/)&֯-8r,ѐ }ၰY|z 7$#z,#o=zDX$af+ӆz"r"UgϞFŋ0X! Xć٥d ز͈1lźm_ځ>7p[j@oGJt qWkP-V &QTACl91Yݏx' PxJה83'Z0ĭXs*%6](m.M+7 qȄ$Jޛp. 3E [XFE@k5BOBل|<{NX(ߌV[ N$@j*L|^\>rO_ͩ\.@+X=ڡ!!VQp4K1~̉݉e[O"a$'>&XұOT}Jlۄa,эTKL#j Ƽ!P 0&3!厲fZ{;,SX@̻HIט&q1'9NK\1)Yo+[+&pVLTiF  +G6ّtЭ%L}|vSiFJ--QCm0oH!"H@!e˜JWa/ 8bR& / IZZZwJݤ%S^-1 6];b R1 4E5iS%¸12 yrƴ!Yt P b"q`f0+EQa*MQ t1G?1{z"b3`SU9b&d2Xy s'ʉL;b5' -5 4b#q"QHM4.߈,&}Ĕ8~d's@:eKscRnL崧%w/:OΦ+Q.kݰ$w)]MJ1aR+ ^=`~AlvĖ›x ??;|_'Ǯ)aް a35.uBBZOaLp$mZ{d*Kqq񈈈qzhf-ܰ GeẊvy_#Z}y7t_qq<0J*.SѫP'- oc; ]1C^0Vß &Ӣ]0#XW 0S +9`lNO,'Xb#&A,f*-cz TDhc5UM9DZP NE-99Zq\aQkHc&D66d_qP+qVcڑc괐)T ZЅhC:ED=DKz֢MBkHt>bDo񂰯VA7rրl kAny;OA:X4[w@Ҷظm6n߃I8b0!.d>û8|ȃLJz@bFkfq Abi hM] Ԕ kJ](d!gǙ B&Qvr0~c={gZowҼ**UբR5/טbuja" M x$v&& w&=g؋L[|) @̄0 b&9@ca~@]b7I9a, 0a- a" a{.G@[s VVdNW,qeEmA| a 26!!*?!, ,G,i f?1X!,,DavS([u1fa1s 1҆0])3tZ% &fZ&SC%J0VJ䃶bat̲Ϛ t%*i@bĢlY blY->3!"a98 R-X"))1IO1?v(S0+'"`L9bRC@̘ Ʃ@ bY O1튩R+R Njl1BX1NXAWLM b5 yH#=#f쐊( `l,S0=Ql 1 b'Rf,L1'5Ac^ ֊ a,΋0i3 bf F`av3A ^!lfw: 72@&"u&S%T|_3׿x湿F|R-h!/e%)_E*]SYu-cY9 ;s S˴xH3Sf3x r= bhM#.`E {KF7\1F3eMݳJJ3!!%#NAIڛ=Ms: H;2рyܥKs F^@IAI9KZGfL,.JpǴ QLD'GuH1LԞpՎjKCԆP՚@ղh4'< ( "dꁽkZmD|Kפj)TE/>TLRSQKvG&Z@Z(H@TKed ,s{_˯iL.(]RɺPvBEI#wI+{"`Oѭ@+킙77L!L@6G+9Bvê # {\@3`,@nXF9bq;b~A a%? t–o=]5%=zxZY"q"7tD儙&.e ˜WT V&V@AX .3t(7b9#縉詖]1 bd@Yi&1]/.@?:tZY9E:2POZbApÌj&YNQ|e ,&zt@0*-QdYrl tP0#[i~ta#֛8Kz+-qe-q j鄰M7,i317*'VӍM3+GLbS@¬D3]1$UQ bBLM''{sX*;+G0&i*5`Lu([1X5%֦}~bfzU5 Ĥ}`+v F \1a+ĸrA7P# SNXiS@0y@LZ;n֍zwN ,i0öj!TnL}O2MR$NFOW)siu)ȘɐlcI6HB"MծFQǯ?}2I;M4NL*ML#4#4ёjӗ#4.K-{ 5OGtVEӈjHA硨I4DIuzV`UU_Tk[!H uCF]?lJewBi%uT*YJt@qS+7ETf[V>aZt[ VkeWç(!c`J=ޟq<~I#(H@WN߽K荢L#J2ݯR&(|!^w=SJC ^*ux401y10Ƈ2 eZZ" Od1zFsp? >4R~AxnvkžAYVY4l2DOH!>AB]/L>B~Bj;Crr.UqzސLT%-I3.I=}i#ϯ@j%>$ %ĉjSf#|ͺkj)5D Q')z:$-ojjӵ%"\)t3AjKSZAe.:S0SiB"E N H T#Jj&C(`Z՘)[|Xֲd_#.Zޡ.YϐK_z6oe<2i? mIPS^g*%+RӋL=JKLL+ qJ>e r{#fJKd_4&8b1׌amXfSLK#a>b?L%ü0'f% M ěN9m8|] FJT$(jq @X}VVatCS8x1=Z8#-рF0ia&`t,YosTzE:tbWZU PRS0|}`c 0#-iVKa*-aXiZn#3v4y#Ϣ6#t9>?K ̖h9aVZ0s0gOzR?LCٓ=H m^uTܰ 1cg\}zA.0 3e*@lrL{+@LC鈽c. k`̀2 ĤgK $5+la ]J-Q`SbO&?8a6S L>ZpX 3]1'}|AL5a bT>4T@%TZN%ϭJ)@JRF(gJI`EwJ@է걟 URN;**Zi&`EҼ7*pU%}|**4rJPQ7!tI_iZVUj'@E] #<' 95|'$zilo2M%c+oaY:5)Pҫl$-UqWC]f>ɯYR!K@K\.s xUfŠx4Kg `>vn :>(ʉLKU1BE:X1PwDXZ]}w9b P#"GLAX{9NUGsWh',~9tD 3TDIM0a,Qq+'7U溊|F',EftĩuTz?LG dL% lKK5yRa G >b/1@1=9t*]%Zfs'-QaR/WR5yK|R c!WAL:L{q1T1IM4uH1OHKYEQ̓h/!E:&y(̪ ;~oDIK@jwb憥 bllS b ʤrQMт1 6JMv,GL1%bT.#\ &E; GLM VdayOUc(@pD? V V%”#Db(215b#V-,[0˜NKGr8bZi3ab+ }t0KQ0fZ30/bNḠ0g?1;0 mND%;y`Lb l鉽Bϗ!H}ô= cr,19vB'a6A$utyua!Kҏ8dt)K T*!Kt2QO2VPS$jcRs:FJL5"$SBa $ fr=CeNJJH2XiVMlU+XIZ 6 #8 Wʵb_g᪏Z1MeµsݫWU%.VyW RR燩%Oݎ(TA#%Nj0MaK<4#-Mw 0E2$ 574YyI\ żRΐ7$v=KT}ĭy׹,I)xSϰmERf^E*}DGKd}pX*i^:|%hwärba0{D= [-JCf;1-E1;v V\RCAp%9vAC8a3%1!+aB(K.om k9F8a5 `[L ,IX*J+@p*@O3iz[N7"<)Ue1]-1ܨ(8끜;aime_5RUD 3K,a+[afZf'ԓ~`,}E:<e3eUKhDqżRU:C2@c1l ¤jL i sTK􀘪h l@f{^< ∙3~0R٫ZbZiF `lg,@ΘNS &AL'=Ql:S9k b Fg4` z b3)[jUC@+JSv+g˜uTT;([ *,]_U11GL1/\1Gz´#^b}@̔X+LGLaOLϷW}Ly*&nYCHL5Y * 3@a1O Y8bN aWtٲ;95ee}m.al@Ƣmw!y+hNM[9p?q96q`f(6vy$쐱^WR_ո͜kd[Νk`ihiۺ-{aJgS2ͻ6bndw3q@[M{h5;j"=7S"6 bz[&3ka P3S`WCxQ ()c= $x*x%/8e aS5TBǍ {XZCӈW3n=Sǘ%cQς9_i$~nLygI+-=v|֔1SsAT Tԟ/'<]NЩH1}9.~~->=N_5LQ?g˟ُREAqD>B~Nr^k G{c,pޣW-:fQS|K]9%%>N { =Cϔ)[>%Ma{Qlm:GN 20ȿr]#X,sv-Bg; ^q#3̯R+,4x3 vEpYd3i$_(&VRqy>JOS9#)CԮ8.=~|,16;mRd_G',:VwhVsyZOc#_v;zv%$ACI)\w_&\o.::yҥKΦS7S.s^kv7Ǯ3WUj٫絒R.XNXO:b=b"A,8!•>!Qx՜6pc7H5^ȑ +7sCbQBmUFFPy'oZtAղ9:Zöjrx(TrE*#9,+\V^)\/eLa-Y ϕgDk2,ۛ~N R\d\M3x}J۔v5TSU:?*u~U8ݳ*q_C8MUZ("Yz=zXĦœOKMbB=ݽr+J1+һc$yfaALD bvUGX/1VKt!̅Jpc7pc7pc c a`aiBT)#ƀn 1ƀn 1ƀn *;7J2.2Cƀn 1ƀn 1ƀ 7@>v9@\Kc鶕n 1ƀn 1ƀn uuN_Dv! Í7pc7pc7-&6q avo nn 1ƀn 1ƀn <1`B.)Q~&B81ƀn 1ƀn 1po1`0IA0 hؽBX| @p}GNH+}/Z۔`xN1גemĎsq=piSkHϵgtY#Yn[mƀn 1xƀ?e a`œАQL= GA&ՇL:xq98ߛL,yOϽٷIBAĕ{L7pc727|!Lrh = b.?? )a0߶~5'ݿy &x?+WA-FH #zm0@@훕 ~ܛ aw7{ƀn 11w JI7N7um{)+:ܦSL7LMJ:zu\5kg{{@yLtϑuoUPz}ãLM}{R!G֪UƝiŪs{;%XeK}ϕ^w:%c紮7܋`^g[ 6tc7x|b@AX uƀ0 , (ej< v|p'u0#Z͇P-d]ϱǽ T#˫<}LOkHH'CR<0l 6?lQ417>v[}|ݦvAXYT{P5-koC5,w?m{ߗnƀn 1u1 `yB\=Cע8b'tߙ'&qžyKGI=8h+!l{r?Yx[l z~S?Yo9,RBuo9: cx >aF 0K=jPzX>`Pw\*/}Nul@@y?n 1ƀs h+] aKV[ta>a}=CaƃΕ10÷Le>֗L N493NsܷiɃpҼ¼]݀u_逛4!,= R0? {=Wn 1ƀC (_;O]BE+UJ(9 as8sЎGdSmMe\X.ÝT6wbVFb n?t:8tc7xb@ :aO]FʼnJ}鈉~ɗpu>c=}^~;_BđN5փ/oߑ4RlPξ[% k(uL[: s>Uoa ~y:Qא}@x3-R_Sz>99ۗ:a:}J N̪tt]_]HEG9>nƀn 1lE*a#f1SC#t?I뽺uw1rˍ7pc71ui{0!kڍۘSXQֶh%" #=ƀn 1ƀn 1@ƀ@؇!ʧfMW+C\K̡UfqZhJp!̅6/ =tc7pc7/Umnc#I:"AA[wh,:u B a.1ƀn 1ƀn 1@:b@ @8m,ؔbnNQ˯#X x-g~;DT \ E+7t!,bp綟n 1ƀn 1aj4鏿'Zn; W@PJ5ﰜ/.z˶PGd.ƀn 1ƀn 1ƀ"['_"lY n?pNž&֪oAXP"ΓJh9+ pc7pc7pccH- a; t)q!,jk |!7@+]rn -඀n -඀n -඀rl&.o׸]*.Hz+[Q_uvc7pc7pcb@ XV nضӈ8aJ:b4}eB asn_綟n 1ƀn 1Ob?suNL-kܪ !vv }+B%a--'Lf{q!¸rwcȍ7pc7xb@dݶ8ww_@"Es*ܫt².cB#j'L]K= \{>0~1ƀn 1ƀn o #o~e.aKXj{ A 3;;F0 ~HCƐn 1ƀn 1hŀ0Bq,S 7v F&#`h}`/@tc7pc7F(Ӡ0/Sq {mhWNX!aqNR\',]s?!uwcȍ7pc7xb@l7+\E܁+j*Na h[tOt\i8xy zɇAKbH||2L+B8|0*7d+qqq|v؁u[Yqq%k?"ab=}e?ŨP{N_>vu<<{n 1+NEEQsb_Q 'S;mSo5 l/Sw0x^AXJ~&ooK]q=F(q2n:CRժ7/.*sv(jŋ5unܸAٳhs<Ѹ8qmǪ}9s /S>v0Ĭ{ >":tBQJ5,r9S ^2]O[ ^ˡAпc8y/n*b p_L}#Z$e TwݘOӃ8aL7p² ղ!}¾f} Eyy _a1bZX~&ln]ȴ*8>>.\?- ? `0r\9q~6p~MG؈իWcԔEM O>Fř3gPD;v }dž`(RZr'K{̇=1gM[TJv}h}Xޟ\ǠPz+UmV&W-p5t @qc鉙}/x=ș_$%Z,7Ǩ1/v3as0V4p3/BOwMȊ69]8B?jɯױHM4uEIGL&|Q+!>#Uo^oczBXm&ĕc0: ϊ=9A)WMx9?5y ‡s ?pOǷ3t<"|k"fǦ}n '>{lghmMȵT!,js#ךXٗ]b?Vm qn8~Lޣ.=8}ڠ7Yn&Ob<%,: 1QA5mVI'i[!웇¾k sR"iA^i/>/̆[O#:``O0qSSu^Lm Xslf8s9v=]vRf(yJY|1t‚*`殮qd##q~qMgQ*>M0+񂰱aŸt,vp &b m\__*fL5 z$3wd)ۑmΖĠ+1zO!.^+#_`@c3!1qY޻]iN* p }cyUX8g?MbnvÄmX鄩>as@XEq`e2+VU!C}7ƪ/aڧe_ \/o/̆Æ{?Ij_Ȯ%%ezχn-Ӡr>"pqC!Npjtb} X;OMӓ! үe;&\hxԿwT<k/۳z8z+q# m=6`, }~lXף}HX[>qೝ(5|y;?igb珑 %?wƬM ]vGS)9vNCc8wc}N;p,Gf6%M9Sw%ǻorvPֈϟ~X_qV_AF;l; Ul>!o &I'=ic~1cy=L%FBɌ n<݇⧖-Aː!7?Ç+ɼ~T 1-1.&t]r=]|l'O6bJI|)';_ߗhJB}9NAԖ:]cNkLZ>̊y%;y5Or/x lՔBٷ8koNĕ5uq@<^)Q0nQACc7s`”hծ-F IvӅPx>{ @ł:u;ŬMݸ1.^>t!lFrQre;wn/?dǧ1Ly}/<َ_ۅFO֢??Ntĸz`'K:KWm$Y89KbقϾء눧^PV.g0` 3!,󝰓`ʈ8vV=pOsx&'ª;1VD>3H旛Lwn}eƩ|;7%_d_ _5+\pxZ1JjYLR3\/@Xw(MǦ0\^}f`CdBpM}l Yy}!8/;:_ʍ(:C`Tbg'qhI$=Ɖ,2kb?I|?bl݆$8A"v+W9*E1#cpGrh|ˁRkAU0h^N3<]o:a/}nLȖ-GOc/SL cpgYkQ8G};4zǿ^?©`ŭu:z{KNtC1zS54xҎYj  }ʂLu20ֲNXCX}6cc&fo+saؖ2H5nDfvϺ?aL/NS(7SLD1d.k?hox5K@U&z&L}h ɲ[V} 3{Ƽf8KA܆a^3a}8B";cvh̎{=߃:TD̳8nFݦb+_bȕ=ڇU~l s\ZW WR`XY!C`ط~;>ܱOSϨ~s۰AiVlKJ;:.E[UZeY2rm}MOF[ eNY/sKmZn}5[+֬YڃWq38*'XcŚװD'c6@g Nу.cs h @vL:Xjʼnvgi{#k?8? !f=nt% rOG u_ G7aGڸ"ˆ}kY^CXV` rJ萉d^}G}+۱\[ϲ2.ظKU5wK"¸x#UaByPq,(f͝%8ݐ-ۓd~XsK#>AW Lo49חcO|\K_ZS?|FܢZ=wVclط4ֆ-E=qfΝE[uǦ=N>*>@+J( =w4Z+ g_~3v_}%H ~o~s>6m񠾳3c^þ8}4>+[1iW]8z\KJel 1tL?P1֏Ȩ^#Pi\=VDO 儽u  GcK?r]PqLvӳM{jaC.~Y>ˁ"xw? aU9ľ+`̐+"}ʉX1Ck=ɀ˓憫bRt:6 U)o%XDz?w.p2 ? } O|b?*"&>\M؁='̣ ڪ45j<6k[%jy6l9i`:q)b _˽du*@e17ahB#BJ.J[wCa/A>(X _~|~#ViL0yn}y[Dךn5K osܗ0X3b(}6WMVr>>d6}HNƥUqT)|MK!A*_7meUdy k׮ gϢFʺuYVX5+pXld̸Ƭ].§gaغ#.Y빫ʉqŦk!)6.t>: Vv"нvc֦c;qǫ*Vw6]Yl,wT .|Yj޼y~E)Ǹr]XXG?TVaڭ:Yj+JM鶂loA,gXy|ÿpWH%Oy'Tszw* _OcX–y&>3'HNsYawݻqA|JغS,*V w`w*T٦֭q駟f)o8aWh z*OGՀ̇Frnbr"rgRVBܸىuy n].kph<ǏnW}=& aQ&KƸOnݘ6(׮߀aF#n6zz?&1CTFߦ'n^@ko!, #5m}×a?QYa0(%E.\9Y\`\xA^z$@&} YaO–l;9n6VC\U bϞ=lô8aiR [dUD#ָ{cm6 ˗/ǢYå/ӧRdJlqpr$lj;'c˲VH:pftY qӋb8p,e5|<,}pc<Xj1 0˾X0%~6EĹXsaڎ K!Q{f}#\J)YDK ,*U N'>E׿M;7Bo߾CL$.2;51+ lTiqdbIpJ͓v/3=2 ^*v$cǎ|Ll۟?^`'`Oi V,#8C_/ {vm'7pc-~PGI w>NXҕƙO7AN~|~b;2{, ao?n 1ƀn 1ƀk #4#Cg J儽aBXѲUn~¹[?g?] o܅0qrqۍ}7pc7pc #C}B2K ,ǻj'X/KyF\s!MMs;p1ƀn 1ƀn 143 %P"7sVt. G|VAjNXaLt:CRzk sЊ g>@dLC|C=q퐱V@Pv} XJJ1/ ng|_ό/'!gZCn?k\e{9C?p]pZ?sf{}|dMe; #!;\N>4Lnp/{'7Sd=c}f3,YQUG\}[oy/1~IsMY a aZϣs(0؊?u >qAm4,{ȬyAf]߃z:?8}i]ϯuJG9>^Qvν+=v{AAC0Ӕ W8vKPǮ~E}ɲ?QYH?0Nqx\7~a)|/bFc_5iog:0/LG|.c!c! $pv܂L]ۂVb,~L_ zS ccEm>I\ÖGhn登E nL}OYH}6-Sj~FצRtY볣ӟ?/238ACt}w|'TQw=lVdd;T}b{?ͶRߝu{?J^ͨ%??ƤE1! ~ZQcưv,/VR%f2~mJ?]{S 88w<<_{AeeeEj̃01)\g: G.n+ݺk%c0xـL=je>:d<{ȵ=$?~41 lwE',(gJ14k]HSE8Gͧ[ff#y{n_dӈ~^ Ŧgu0ߍ?k^^Ưt{?6Eǀ-҈a#}n ҆0)}gtm}}ԙ&; Tb3̧wkw|=?x?TZ3mw&鹞&P;0 o2s#>}Iew$3Ͼnìh?ܥ+Y.s~g;){~ ym}S=a:oĞa{;}~j6iU {06w ϸa D2QFqr#^BGK.pc\fOaq{|UYёtP36S<,p%J phw}rÌŌ:N}|pNT[B2꾽~vH%һ]NxM 3$;.펕bgN;.u2}O~NϏwP?oӽ^{{@e=@ M6Kߏ;ɾ`6YN^^GJ{N~}1 a2P%1Pm3qxuD?}k|]H̐0S-(>Θ<{}<6~i#s2|wz(2;#i<{cЧHlu鍱nJ1L3xrŒ,>C=fUec??hq:mr/676v#N:z :vjnUde}ROG̃K 37xm N?8a FG: }AkqCWs[3mjKG>#\t:Kf]F?V'%I1Fj̱baS3 +=и8?o+xKG%5gLJ X%TSsl;1Lt@1}}wztՌ+?+Tm>w{kOWɈtIF}@Ivx'߼4k9F<{b9bNLv̊6Kߏ 0|@<}ud:bq!I*>I' NG702ӂMG ^~z9Sm4̼='E?,qM}Sܟ7n1@FĀ TC)#%Q%w? s~?gwGf3.1{(J֌pȍ7g{i]n,ƀ=|= (QP)Ux G/~9N?~Fϔ/G¬4~i_n 1ƀǀq?+gō7醰|dpBN~50Xe}:Ӗ hwvc7pc7xc IZ +X_8ɷ8s[5w?It N2{}n1ƀn 1ƀn 1D+Tcp'vBXJƀn 1ƀn 1ƀw]5X?xC bzf{B[.S2_`17pc7pcbԴ_|O;{K+\2q, ;u!̅0\sc7pc7pc 1`A ¾OWr@X2U4ҝ~AsR"rPW6{Mn 1ƀn 1ƀn d\ + Cy0 b"7tD Ktΐv<}7'-ݶtc7pc7pcыadϙr;[| TV-('?*]P I>|n 1ƀn 1ƀn 1P}˜x)JF0+qȑ˜x s #A3Qӻ3^ /}Q䶓n 1ĀkG}T/Д2^2"YWu򂰪t_ӡo~7Zuu?+QilCG%pcˍ7LˈXʇ匸> a72$/+J3D3Q*! b)km@4BF{JxTlC2sĪ{n1Ā a.^\C0W?gosJ?q'aoa_lRՅBzԶJxT2+ЅQO>qc{\@VNG?.郰Oo}> '[/⁻h'aʘ3d_9k:u 7K}p4y?qܾ}_*]PkTaٰc mۆ}Qq㦶͝;wf|7ֱ٫]j9 f[]v DBBz|c:r\rwJ_@mƀz b܅0y8)X=ݼyw |2g1ax3:`t:!?kc&uFwiM|@/ۺ h_[G|NkQQXQ)RJ-ps}VolUZ~WbȂO*"f˗1ˇin~k7.ɓ9>|4ϕVV >c \Zך^іuYWuַx}oז:@T G@AGK RRp8Ҩ(6VmbTP(yxȌ)sZΩ3c⋈_D>ك>7ロW Av'nzO3!F=`>?yb()oS)KwϿ9B! ڛ C{`8_vÍ?asGe}NؘREП@uܶ*H*H%Gly"cc=νm܋t%opuw^y?]vOaOzR$^m|kWwsFwlaǾJiV7K洁uH¡B]摒~_j_ͽ|}ΗQXERW-x-Pf/|IGof|=cMxțK^5"]`w?' 7Yjg<];nmk> -SyLUi-c7]{eE٦u{Ņ|._l9$owB-Yf͚`LAŲqW4,)QWK]˄O.~Bʕ+ڵk>H"~qo[JD^*Hx--)^9ko=BxwꞚњuy.#d_mK糫c[~M(ͽĭxE"¸Ka;[:,XP)BQhyVȰ'e= ty!? O0=4o "o}Bڢ[ɯ!z7))<򷉼Cx\>!O^8.V'=PQ*' e}"^g eV:EAdzQ1uZgʪ[I:*C[X4ɇŽ`Wr|5Om"<9u=Pm,ˋ|/~N8/.%lҥW}M,_?Oܶ]ⵑ#*.0GAllö=^OÏ= Bۦo ?y+1~9|1[@}_߾+7}~m܀nӿvb\_7U+yᶷ3>{oBcyo# m# $_ollBtDg͞AHgO}Y."l>e^/QS.%7 ogs?7G j*ƹv?%Rg|0w}@!Ğ^WQsÓK!R(aDB1} 1IOA^u!'? # p o;ۿqv=+Rx(ʛ2afh8G0 qLҹ/agmQ:d/Ec!9ͳZF[ɪ{f\d"5W޴,mw:>[^_{"O"7d(!眂#ٲ' qƔzwe_IӽB2K|~W'j[DCJۇIhuվ{B4xe ei/\^+[?6E1stߴ>OMj"4&=`#&Ya2tB 'bQD0MLp/טM+w.,zxZq5vqF|J mTD4oVJ166j &y 3|JZ;c;]K>Eԓ0 E\j{Ev#auΗ%<*g}‹3oa[-ƱX [yǏ}'+lO~Sf1ky'v瞳^C+>C:܁BȳB=auڢ qEk*o'j#Dk>_%z"o.O9QOyuEB,M~n/z*qC!0XZxRE#Lti[o}FOG$EG/^̮}|)xm߫ GTXȦ$42EL{1.ȣo#wENSLlI!KDWq.0eh#dkXU!hEyϝQu5c/D~0*W!1bOva$ yȳEIz?.?8bI}ώg?|3솧/bӫ.epY{K/dZ^eWn [Z8W.Ose$WyCa[>m|v<=rAEtaCmY!Þ x#7W?]X!^7oD???>|S;;/,)mWhr#LyQ}/X .nrg|m&}|]^&kOpxq6VN(m?;Ǫ#%So3W q2kHѼGcSh靖03Q. z}ijC`SVAy{eOrpy"A&řKEA U)BMxIUװ/Q[^׬>2abt!H2Q"=ay¶+WFRXy=򻅁ѷN>w?nC,`7>)UfZ^OOf_~ g Z8mG~7q G'p2) R~t*KO/,oKDܛO| /OY]}a:#cEY:r.S?뾺?ypr']8.N>qhk]aֺ{1Gh)W"XU Yhks*O=Wps-z!_aa\˦ szX&DnHe 0׉m6ŷh# a$M!´4{D(:ޜ~d?F2d|W93RG|oE<~46ƪ`HbpD;.19W}e\u"4OK0k($Cs05o+q?l yBuj:.y{o;Q$ E>ѭk5T4;R{!ҋi+B'$Ħ;@/&Qݧ#& c+! /cӻ~t-mjO -,I9f-l#;\#1Yh]9hJI0Ifwzx~@+/pQ} ?B^4!,7yFe<\ u7q p2|pE/eY[[$ICLnb4ucO9cU($1~1r:&gaf?V9iWxv:Vw%{tĢ'sϫ0)dE+ޭ,tb89I{hA[فJlRevɲC?DZ} G ?U=yz%f,@0Hʗ {(_dwߋ~v?cw{,v;6d$Wao<翋Tv:܁\F {dw{6:NGl&O~0{.>4GPB8..+C} %/e GޟU&^@B<$LD]Ҍp=;E/b&w)479[Y`+QNlBFw>PVa\+¯|#qm %wC}w~m85O}'/ko'{B+Te; kSak ¹;Gx_'L0_1"졧%'$Vamyȸ'5 \BPl& NPZdؓ986HyR֑$cک ֯!/nD:|NA A$XoobnfEP+ 쑸/y@Kmo]ۥL9tϦX1! ޘ ^A{gnUOi4#鰎.CQxRq1fIQ 2 `mǺBC׫|V80hkaC s/k&T C8 m::~bk!?%8t$hiꢃү.;")N~A}3O_)S'a.ڰm;C[9KDGY[?İK?16,qDSDXΣ,šTĽ*tD)"{+ֽדP?DV~Đ 0pAiA)gy%E"l !I`kҶ%n?EXݢt@ kJE;} "l zD&&2VsX88@.vP0:C}Y35.`88SER.apDeOa8G7U( Qj 4)Rd UMc0EX'l)鈪[8Cim#GC F{EؒElz4El ?UpYlђ^:dr[ݫ{3A#8}eڬKu5JA1t{Q2"sPD'쑧0DӻI0]$-hR8 $-x*q|- Ћ<3pza=0IgMYýx?ٕ:Ŋ0O^NGTS=ʅy7]vvM*FL}lQO"tl\p DC`aKb-awh3F%bD،kOز\|)ag 36D@MLuwGeb.N<:Q| AјD0AHb}v)) I `O#@9D,9-[նC(hH}(ˆ#LxČ1 Wf-ZZy:go 0s0zXsNDy˚I)$ύ~&(q%z%e -Nj2ܱ lv*@L61$=e0ᩴ_S($00 pǁR">c^$Wfyw+NRY&ڪJbƣ][DGKk0yi"ǰ`צVDzv脣Đ5JyO2!MF@"^@&@DX:jQ"`+och&M ABK gLሓGacJ{v1",^K/*–N32BAti怙ptX> .m u9}8LAeč,kTv ኰWaU(޿L0= e;C9dGuD}2 x]ҽBzKa¥ !/O@qMpQ)P< 0o{Y&KHox?p䀹)+s+~Wl pD֙1{&ÐW["~m{U;򋿇D _? ث_&enЊ-lS[M\f'}\}OdD{Jfh]QcUkjpDe#waDQp>|;A9XL3 #﵋(-$Q`gl϶Di[vo/Hz"¶fZ=r+{xU\r7hZ#@='|2i-8CYSp;"wb軹sEyGŵeۼ} \mBlc' i~KODXZIm"8خ OL <4 ܇6[39U{IvaOo"?lc^FiNv#k[O:(Zg !CvED)8Łxn9Wb<{}KrZISdk6ngK}ZH^0y.Gײ{ɍŞ"@@ @0Qu/)7cl=5;D _r0ǡ0. lgggM^} @ y }&|Ywe۝\w'E"l7a[ƅ &~"lLxzI0\OLH#/ @ PGxٞ?ϰ'6aO*&tDaKWn [䞰4DX@ z@Ӟ?qe׳lgĵ2HK_x^uQKt-;a't{'.>SH]A⢿Ӧ[fXeuxf&~lj$ VMԪE>&`Hn-WӋ(uvVf4i+37l SLmUj ;S>&A%YÉI|6 GrbYOhiPƟ{C5}9zg@f4ahv9\=粋D؋^v ;`ɶl/ﱧ}b?ۼ.]g6g6|q}' l {bT/D6YZt-Io TPKƤsOU(T 6P%Z3$6#23#i)5j^aI;,G_DOI+GzU^#I.qSυƁ^qlqWhR%57v{~J\K޸Գ"Ok…EwaǪ;Gq21Uy&b1iojymM4u]$Ay57{%p 2#f61/S+c}eJ۩$y];^.{4GN=8|F/@[$e^:ivσMZɞް} }ݗ͛7 3:",uMpcNa;[JH Y P3ix/}fH^4d{N͟K^z 9ߦzҿ)D1o| ~4T2DxD ς c3k!mj0\ ; <|kKZ{$KEe7*Sئiܘ%ƶreq+I3ܨ>yٞr$p;&@~$. ጲQeikآ4țdi*oԃ>q(/[]vPWemwWu.VRG<$ߜST"&\۠zV78{i/~.v[rE%,͒؉E ր@)eN5r:j-歜G+"䇩zo {M[@r[~ {I-8=aaÆajuϽ`oJ0T-`Bz %i} ["'z O6~:_H"l;_؝$u;ӂ0BFQO{2WK9H%b3p,-/)pD>c?XplGͧ,r/H+pž=\l8+diVʤ3[.LzXj (i{|2'W5z#5]H ԥ6J9{/ Ռ2ei)Ҏ-/k3=*ymST&1f܈ GB<2Um_沭,;x#*fR¥r"zb6o e=\[Ľ#LD=#VaRz;`I @ ўhfnf.D4W7 G)@ e'L4OaG{žUnN;(633N:$666&.>SH]A⢿4<}MS|X5Ɲb(+} (NpI|Onviy_=Ń]mO(u9PY& |k;7 {akծ=a(Dg {+6HQ\sVK}ه͙3͟?_\7}F 2p4!ª[mo+K<>_X<ibEc1m^ס5]b3x(Gi0$H@-d C GITgusQ»WCe#4 # u\ۖ_{vs@7<# "Ok…EwauQe^K5W}.;4Ţ󱘶y_n7DX3Lv+~4f4VZ;ߓxg JR=av~LrmO.!^tÏzaK+6agsaPl޼yF4xb0æ*p:pK+pw`#V3r# 'yfiKBi!s[X| ,YB< '4'ϧd+ߍ8v&W-",FZDݍiUm#*Qf^ڳ|5ʻζO$yq5wd{-o{귉we1ާ嶎3fmɷB{%gܴGj*MK&2ͤΚP=BG{sRyRMytxk5A#;G}sg\Mױm6+A/,c͹0ܧmCstlFj'a~{E.~;a&Dz'L~w6l0\ MNH"&d&N-”}ZXp Thben!İa.a*+_a&' ֛lte).D"~3cGZ@[W6qW¶"|z QO9M{LD gPRYjlWdԛ;mN`,^v52>rsN3saX SCKoFR'm0[4}S hR Qo~|ݧm%cO_L"U.Ă"H G$ugrH!FA\NWt3+b^ ?p Ea4 )%F?˿jٜq"̛K HCCY 66FoΓ/xry]lpEJ>FhRӒm\gcjKy7d\}˷FOePo" 7 ׌E3m 3+nf0DA[TBEP;fͽ󣯯Tc F[̺XĶ 0Wcb>~Gm< "l3l^OX"ž /-UA,Cł2@9E"LY>qI1^J07diV5 asSWCHd)5?_ȸfIDAT'}G 媹7 28&Tia {JRDn3c.嚇 ZgILzZaTB'%"asEzYAFZE4ER/-MۀhC tZZ:+6'6j+n$Y.cad e"V קp8Ww#V}h{pDGȳ+nC}c+Ԩ8&!A1_dbx aryAO0|FYߺ\b[;D/e837cTUOX:K4Be &)o[J3E-OFJ`e+H'VK)榎Ͱ_8"e]J;Ct1@JiH6E'!0aXPޥo4ì1 *6x_MA0*s>7_Y]aն2(V(_TthFaZ;;dؼVCef:m3y}qܰҭ{3t"1 NӘ_cM'Cgi^0OymC ].vZH>{UEu5 4$(z$cJ~ @Rx;BogGXV5g!Ϣ-O*"LQitS"ڎ6[DQ*fBXhkpT @Lx9dehf+'"l a&hrxn s+꧍ ' ?a0bfm@$_C|z@]Mɥ^Of&z0=a*@=ay @ bh'ž"l~ ",p@ @+06s}^EO) T@ @"К'pr7;q:b, @  QOk=]wሯcK ݇X#`88ρ6Whu_#MfRQ(6{p<םE^ SXFa|z)?}؜9sEg"fC2MO,IL=mxP~wq@F9f]]L.0es{#6fx~z{ =aa Kg0Ͷ=U+[Wa OXb_aa0G^9U/ AdLQyHჍ0xV,DWF-f3&.u_&,8zI!bյw_f)05 63'xmH'fpq''hܪͶ#boZ_Hu8EUoWmO@L_>]f[^!c.u@jg/|YfW\s6f9d66ߗطX(lp/8xOeŋP8".?8;C 1 8&Z\RM0KeTDuV: ?+0IWY|ʦ :O|xdy^gghmpwS7犮//c@+X)%+,ceqVh1x0_(˞>evwbY.4H׎'e<{HlB MUŐg#p(ro )SS)fU ;Nb 1)o1X b,> vz+Dkc!gvaeĄ܄,eHV.3{S]`\2v'#ġߺ'Ѷoh$d@%6 lv=LyvhްF=arzEA'n-谶Ķ+B3߮=gY~P^/Џ[$k< U3C92T\=e3C|aQti3}9S҉ G[7Ͳ*~<mb@y!vFr?9P@6+\cYx  xl%EM߼ِh&^ 8@̷`6#'~޹w]0aҞ'DX.a80+CbXɍ465$(]D*㌐@@cgaꪦ{fQf1&\f[uY666:(" mͽtkXfz! )gD#!#~b sfH͘gӶq2E-6GjcZ_|&s   [|1T9̻P{Њ'lv`Uaw<~<>{0:xEIpo\~+4RdeMjIm6>n_ۊ'S" .HbAFI1Vya1|⁐A4>Gp[=]9=a7O DNWuIL,n̺⨒6V!`GBnۚ'DdH_aa'DW pp CGz88Mq O؊,^O$O88U +0. °7-788$mӼaD> {q@ @ m.haϊD2cA  @ I&j@ @7',Bُ",%z(i @ A5פR?U w @"GOXOG\~]I˞'.>[f&fRmz6 vEƸ|f䴵fyTךtf;Euj̾~N.¶fBS" _ؗm: 賅 F63KC$fyd8~SI02=\6ᥧ?Ҿdr"@0JvCB. E+}SSSLz!%ŗs#EeSaxNZ;@4k1T@eZqS_ij0'cB\Q𶉅C%R{8so<'L>МV-qh \g"Wm7x7GRkoSuIԆ',a3\e?> G̮?2?a9ZC ڏ2D.~.]pDri' L$_2WڈrEcߏCR U8:gr ZLAn!pj'-n;H^=֎)o;+J$=a${h"<] Ҽ`GIx,I!iIL;g%߀ViY+8mK"d}{OWhtLM O_DdT 5H!3WXHh0+,c Gk4((I.',B"LvB6!hSM Oؚϱ{zݹ|o*¶^lx¸[7q΅k`1?U9rdˉ0 A4 &Ě 61&EN&zԹ2j!O%2_|57Z:C⩓R6A.HxeCq@cTp#EI1a'KZBw+B#*=/NPQl O%\ݵwC:v-o23 @# @ K s&4,pnn !FK!/ @  S {JE!H!0t @ zx :lApaB @&'L IH⋎Xp@ M OX*0zyF @a1( @ B;0.ꈰ.&a`C@ @TD``=a7t;裳C8}V",b @:79D8s=8 =p l⢿3y63~"dӓBOٿ|_F6I)QyON#cdY%+>æ~4$ɶ Ǝsq5v*ԓL0)ɉʓ2 6L.<63t L 8;1JmZV^?`7O|-\P3)J  #`ENx3qGzGL# =IE#w-0.MHbKSEAk"LpB^SB@60ͣ^50u4$\QFsh]۾zZN",b1{Ž8v'da ʕQtUОNWk/R/ư=#WӁ'8'Y.[a۔eƕ{{[VEU8@6gbYp}np k^ b ,p0\ñ?a{DX$F7t5pge: H,"r7gGzʉWVwZJCad5Lϥ:ut%2_ +W{ON@ʙw Q}4m*#.Ҫ%$~p8<<!χx۵3oWMw`}x=I] +͛DbR*JxK2n)3IHaBG~34vb/nooS->Nk#U3UR1Ͻ2rL' lwI9 wukSz+8ˊ 3F'3NPm0Qc +jc5ZaŠҲxW!{;=3M"&Ni{Jª$I{&YXvifCh'nNOX:Yԍh`i_R字:XywrB8i&?΁Y ai&M oLF"aѼ =?!}a|͆2Ɖ*R x]ܵP-aNT֤:׊h=[|},)|T YfC+{Ŝ!BU-$”ES{NMWM>Jn nTA0ExfϞ G{b 3:$ 3̀r^a/UIG|d !~f=lMU^+Ng\645}xf^OƳ)ZU.*!X"T%ֽgNWؿtglκĖ&է=bri,jk2ijKXپ<{b D*lԐ",[!FmR#1dF$$¼F4aU56[p",:Msf:!ܳ"B2ac֓ 0_~l&gI`*xԶzrVL2/JA%Xr,67AlUq8[(Խc"U0e͘Hx) -FtǦ7V6䓇AŚ9Jlgy_DXf&AU&B +!¨?}c-/DX (1rbƐ('id@fdMY'fXy _3BVQebVOJ2q 0s|5AY3_Ɗ4e;婋!f:H  hPt_"̋gߨ+>.gq @Oe{A,&NcWqDh~NG 㤺6o[I >[\)OL8.wܭCϓ2f8U-qTE2h+M!qӎiLODDNDuS݌jTOm@6Z65yIq jx¶=ǖ<_/9.bvQoewW8hG, `@9ۙ @P%@0cVmOX6ԃYI^ @F( B]8u\IQ@@lHe[9Eg+' "lT(z @B'0.Ċ0bj@ @=9Eg4oX j_@ @' "ct@q@ h{!OX͍@ 7KDX@ hnx ng@ @G' [egs!kċ c~ˆc1@ }#C߫Bё@ C05̙ϟ/.>@U \UM/՚Lɴb>8eQn 0?ExO !ԋ,K4(ktaFix-W%|v-kWOaBa'x] ..+Vu0+ó-!H[yW|LqSҋ񡩱es!}Êvsu&zª}ݗ͛7 أe @_OC#DBǧEumK/jKӚDǟ;99B1Tf- .PG؁#z#=n'B햇)|ŗlh+EE|R̟NQ z@2hu!F>&i2Vk:gĜc9留\q=}83z1YOpym gp. ˅سM{>ktRcW 7{E<?c"Z9LAFaѰh[>Exe?s-ׅ #&' MRө ;>egI9UJ(%>;.$7V*w\=o7gg̶6&*5q>jlk&@` H OrcQtlcjālnZx\b'zO9궀Sk|qʶh}l0 a8IZ-,a l-C{2%mzƗOH\ tRnY &@`PC‹{ -ow^@ /jpC<1?VEքNQ|30b"L G7D{J8bQ;zt8 KFd=buH G 2)MOގ| J+| mSt1k,!¼£R;jFHB@=N ]^ V 'EO.ʏpu3Jilse>[.¤+1`[ć#dBBuF"lg\Ȯ6&(`̑dgIĜF/OT9C{Ǚ:bY-?'UiɠXb Iݣ'o=%\L ✭ƚz$ڟq哄,!# bObޛbY*m_us@ 0p'dT E/ F:cYhU:jC/9%P9iΐ|NեY=aω`V9[~>*̢2 *p @`$jj˶XW̐d*3h @`n 1xmǺ˧'"PEPUyn9<@ 0e;v*.J!z  @~ WODX?y @ O SŊ-ΎMO 'lݺaw9m>_\7}FߍO2D(4u7:\au[  XSPas@yeNe.h8"Օ]) "h]۶=aRuJ' BII.Lw ,=*E".x 0R7/ESsnp6oɱ-U($ڭR aa_¾lyF-\8j~j'm ȅ7>5 9RA,Ͱ/T˝$aw|JSFHZ*O̗G f(@`tH{}n0g%sBWO%R{8Ңi2:g:Ԝp>m<fZ|ݴ<)vۆL#voUh[iL0b?2?a*Z N6`p8 ̜̒˴}e42Š()9S,&JR\ 5i][98)剩o^ htN O_$C{2z?-)փlyseS ͹G?lD2iQMMx$4Qg6v 0v7F+lN5=aHKm c;M{٩>uFq^n6;Q?^Kqe(+6fءk #7IC䇄ЬNg s+e/,DЊ}udٴn.Cf׼ IS3=4?mk@&D}{y Sq#l_5;:GHoć#Su޴'4i.۩]${'7aa.ݬ]+6b|h~ODO_e\cmƜP.n 3Top̌5.yfLm+}^wi)[dx${>;ٺ  0l$nХ$<OŖt~0O_0 3yԞ/ f_ ~< VFwl28UM{HC-ZԋD _?;k^4[e76hדv?8g"; ^0"."w1F<[@ zV1oFHzy Ez~c~=nGOEE]$D؜9amL*ZfH @*ߪ"\ӞDдL'կ{[e}k뉵I8''//؟!{Gp,r A[/qoF/r~kCM5z_R> 0=yȯЏ_7܇(7ksΏo<-<;.[粣{ 2I6--ϰ.aW$"Dz ,ۮ]+7a~`8ҥK>̙ϟ/.>@uKj`Op2޺|bD~l9Wu[^_XN?u[-/u{_/0D3/^q̧nayJAbLޱLۦ@%ygs![9v*DX' [nbFq-_{w_6o޼b K] |ݞpʜt:uPSjKG!H"/>dKGFԕ ><CWK)Gh6Og.W W*[h{O{bebr;x!4^}/U;0׏o䧎c(P%G [cepSe NJAˌfw xso2Ɔ8#`fU3'rʼxA6VclRePxĸpaV퟾'CՆ{zPMf',$J"l Gu[w_=:v}teO;yn0Ivugt1@FW% E_H6!WFeQVMDcRSQ9I#U/Ӡp4 `l˽rCi}bo@u[0g\=id@M}|L[m9ڌlB ]16>Ʊ;jp'r+1Rb7q!4/F:]'Os3w>پ ެ47u׸1W.)^a6Ah|j>fX 5 ._+w̡m\g aj)A/Qk',āXIJw@N-s_2zA8z\65N7%v_V̾{ٷnÏt5{G0R2^jˍ;',;FeH}:fE)$1ȕ1<@ŀV>yU{fĀtKD;'ѾW~^uW>Џh3Z p !Ş#~f3$g}l2pY}ұRAc*q~S7fhanXeǬm"e8{ĕh 8=AQc1fS;⶯ﺸCSRPCټ}_Z?7`igmb?fWj2vOeq{.H4?lM[7ͮ;7~x Y͎}ia!o#uamJ` hjh*#@d#T=a\.WʞX]_+;{_Ǚ؜w VIp!50 D!ԘT:QM@ %s(+JIF{^swO=a { azm\ʾ[~wL@Ȯ=`/e3TD;>O W7MqtV@hNmI<{E .@&¾v/ Ipcޕ#NwGV`88HzI㻗G)gW~aY/vaGVy{[` 8Ɓ#;ٍd7.Yɦ<%ekOB;z@ H16-X~AE [FF}pYkܹ*(Ž;8#CUOH T҇DpTѾ88@يDAw~vZPx :a198ps@*\Z]|ũ~OETGC @"6܃nπ8pq"5?ݲ:zrv΅kG"lYLhOpp09svsm{حo֮vS>4"lMMiaޫWHjx@add5k[>»rp}avZ"DԌfOORpɯbEX.\,"62]2n!Є[hVʿ-a&NN,\[Ll,fY?-1 y~erpNmޫyhG|`IB1(e.˩[?,Z|85(E.0T)ϕ ZóQ1ܢ0iO"њGC"AQiOaGm knZe/{FE#b16ҟXH`7 e6ddJS"LĹѾ-t& ]]D2H*A/Ă cbfxbt8b0UnQ9 Ez9!B@Rb񢂠-3)zYSӮTNLċqw *&]~=\7|"L}a-+Ïz+۴9v*Z9Fg`X"13Fkz2ݨ 9ՃVw奃+#qo-v '(,K VF* Cγ-R (FzE.mϺlf|SHz4yN5' X48^)10L#A/c .jDwWrtgLB[ J[D*fLͰf&١-jx*"j}1N4uךsﭴE-h8alE702aFzkw{ђ'o/zFDXTū%”0鈙'(BO M@yRuPs880k؀Fr@.ag 6p`8Vb@a šH'_9`&Y.O p" $-˵%DX9Bkx8a@&waŧ=<=NXWD6{l?61cK]~LN #paDX a&7vOc(1=a " }8'8DDً͟K*388 7 RG{sQZ# ~SΙprpQJKגEX0U,\{ͤeQla*'^Bh=bjFz<\b(!A֔NSbJmVcO^iW!qS8Vɻg'¤ሩ"%RoVI!} 筄R|PJEFb-لV*yfOC;4/X*`S, &08]DXeJCBR-ߨBEQ| ",Z<UxŊ0SC", bj?Q΂<\2]", mb*<)lp90r"Lr;SI1CR(C&Rc\:XbtǃߙI t".3bZDyR3'vH`XW'̂⩱î 'L^py岉gkyŴj*y[yT z‚i ϣz؃EdžM4Ɛ`5B-cBz9@B5;7'K|B^ xOp&8 sZGۗ_m8e8V[tpK-b7wcoA9F jCnGpp a~25,Z.%['n@+f= 88,a[eKV=U{dc_|1;M;5۞cgsd84~<`T^v^+(/˩ (R.]?qiv|q0Q\] }MէJlY´ݱXQ@"l5 ”C=F?DX}X,4\h0&*cl6YӧΞD(mamPvPAw"l 0OXN32B5&{&gey(Әqxlo˞Tq4CZQSw/5C1uwhMu4/ža|F147 ?| 3^0"<*/T%vU^9zPr"nbL S^z6HIࢦ1IM,Ā\zƫo5,Rxv0ڪ3/j"M 4_o3qظfᆕC,ϓzdg,t6^qȊ.pQCJUM/)kD@8д[v잺"  0 Kӣ gƚL)ɼ:N*, TE,VT6&^ 3 0WT Hm;0/CW뙽sP;ͶN&z'<4G8;qAJ/'c.4 :MqHMg'Ao! 5sZxqPt {\S,0`qs7Ѧh.rqy/k.oQ67 aame s4QzG ҨB/E)W) 4>!is:+1C FXOMkb<$(Un=7JBGlnw/9и۴..18n-q*CblrϊXն~ӛblWْu*#4"2笧o.YxA2oBP7ԅnn i:necU7Vr\ꥱ n"a+;KBAV2 V;pߙ^(5J +';> dxDY4or?=mB);Afxz`E?Ȃ#J +p`\zِ DS,$$uzHKXP{I<*}&4\m`V) A2ͅH$v姅>+ -fGc-Y2<ǽ8Z@"lne=ae p A W dkd&f@w ⊶:A/HzÁE؊ncyl]pD P ~u&a٣6`"Vx |C<T4.6b=iXnxJ߸ :C=Oʰ " pM$fް4,0 Pxgdp*h\nyxbaaa% p  0W x8 a;-K7[&oX]J 68(&;88T@";< Faa% p  0W x8 av_= M% ppyO [f)yoNքCa\p: †ЈGacRh C=8M=(#0=Ųp׽qiyB¥*V?HO6ˤc/1 BKE=Z>J]k0x`XV7,8ж#o38$"P GxJ]Gc9P< Eh1<ڱng=8DmBc8Qi ޖ0nTtBQH"{l#"0"L{ҤM`k{#̓9䞖"NABC%}EK-K ]Ƥᩃ0̐zT}̳C "9AeEc@93~Olc{PCxUQW`Kp:"8ʁ6D(Ey :P> 0" +\Xp ikl耷5VK@͋xz>r8 \܁Q[o7xpҠrh 8pq-(- fIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/figures/clone.png0000644000000000000000000011547614023111777017655 0ustar00rootrootPNG  IHDR4sRGBgAMA a pHYsttfx tEXtSoftwareGreenshot kp|K- X QIDATx^wxUǵ6_/qqK5 \n4)b .@AB4 $:Dw c]bI53g#H=}v={;Z3W(}G ~B} _q^%җ/5׿A_F7ͷBz+zmtLv۷[o[[~!)y\{-^uc޻o|7߷OB۳|𷿝i[Wyons><~_xJMM!Cиqhԩ՟Rc5EOMϜMtBqWmNӆᝳ̹t:"]t}=z>WƇ~HW>oAk̵۾yYxI.?߻tPUp]8'sQ<={gwߦ NNѩ8}\UiM^rr[@g wT* Yž~>ٷݮ^>uwZ1wL]E}(W/ѣuڕvB;uN;R7:R;P+>7c|MgJ܅vFݻ>7=2Hg@c!44h 0OgIY QV? So& ˱~|O?ߓA}3NK\=zR={ozꕦDZuң;׭ Mj~T.| ]WT[n8M\ʀ|zQ޽~>7ʅkp~NV@Hy,xR0s#Mo$ l|N'0wҗҹ]dmp0F#F_P@2aD8;&OÔ)SȠb MJKK=̘1fΜ)5k9sBYY|]Xp ~7!e˖|mX +W6]]6.֭[G$W73ґt|d:1Cm$:3}"e+@灒BF]ӻ+_!ޟ^H>̘@[5*Mq~禍3't|:ZpM@ׯD رc}~'ߪ88L/+0Dl#!1R3́ԅ S+n|[~û/ipz #202a(wl>0&Mhނb?'`]մK@,KQL"+2`Ҁ<%?(Q?ُE,$  h1?&fͤ%4H>pA &0c>VƎ1? ؂LL*55r#1,B$?=uGED(#hC b5$ y*dLm 1q9 DC ӛ /&10RD"*ݺ)"؅eS7evc\NHiH^H!#$<&O8&I=!ei{~61C^4y(,/@DT$"C"dD @̝;7aa:$NLS,<|eó6׭#')qTFX:p .9]8g=&a\Ҽ<7e4go3N3NMM'G'#[C'W-gh(m`ΝB ]Q=qUlܾS w ` 'AgȂ& ݲSCCl5ȡ^ۗ' g{HZȷϐ<7Uq4UIE4d:͘= "1˴k) ϭ&X +h2`lzXcVҰxރ\gc | D@@pOHA,dQdBT |C.43 V'Fi@}H`P05(R0HP6`tѣz}C/Jt}\KtC`CׇH:l4 畓êl IFolQIJbA' !] EcȐLPst" (!l-q]{s1jԍfzZQ^V T=* A{<`zQPp QMl%7B8Ѓ𱒄!~]XM9PV*<$#HGH!PTbW39m=?_)t d^|D+/PDb?& /9- .ɀ#  s/ PdR18.L=>VDtsr0p>PM@n@4){f$##deɿ1) t5Ç”q߀urdQ^phaPCuF]9c(nyD-PJAUøE,I eíWRRDMъ")n(J1R I/& @p[uieL,UwCL@ (!(Dǂn;"WF,qcZܙڅQUD\qc]]Qyx꾟҉ezCGsl:8xqqf:Ǹ`⸡})vZ:sc;tqB0QxqdF SD-FY-Ag??(#+v;}u8y(D0`HC( YIYyi1#Ҡh0!'A|7@za<ȟfOOq8LZBLf+a)+4eM6 [lU7o6F&70`ub-v=+h`-eNvGW7$8 F">E!LJQsl-uJ= VhSpqHo_.58(Ix@#P.LL?Br#l=C1XHcX/@(@+$$Ͽa(Ʊ#jK>(1A:@F&(\+q%pLQlSR2LǑH&=舲c43K|ĕ.!!P?42C@ <2Af ETQRTqq(rb"a) ø+2a)O޾Zx% Y͂ Ĥ `&qC%!OHL, hj6S#1x6a1laȃQ aXUƕ@$Q(yG @ُ2;?87Ì#xƩa4YAfLd{zr}ON!tsˠ3yt:7N2N0f bbdr2i.Y0Zn f6&:BFDT}!160 ]H+ P2sa0Daʆ:gl!mN<>~(Lp0"Oc w8cԄ)_4&̠s8pc a1c%a+ [nm۶;vت}ula X0@ c}CVrB"#K=(vp%FGl%J5ۂmou4=?+ dI;|.Jq(V[>fee ֊c  EK"+[k# q:N!MkzI̳DõAeHAQdDaق;ƋJ5T(*~SCcyqπ0р  }hC*ؒZa荠V0er*: \>&@ADTsA" PP^5}z`&x מ"hYQqec"` R8?n aAݱ*ܭlE" i # -~|U6vE;(aؓICÌc N2N1NJoCdž~M65 FX"S Qx{qwկmglcleSJ-KF?$cF^Xa@0+se x~ jMiYݨPAjCAԛ]}`( 0I4v4F + >Sil|l _;O<ҤҙTcNnݺ]ۢ [ϩ|_PGD D CPnC&8Q LP6pGUbl Z6G|A3dCZbQ*Ӧ<_( (֪Ǵ*jD_m$b4]"g V_SGaoE_Y|ZNdyp!Kg>w&-@ U ?j uKzWږѕ3v.'330dJG2; 3N0NfvS101AsC_mMut|q޾fFg:؛ޙv3v]hcKT'ΚF91Zޟg! |y.<"=PH+7>>`2}ta<]8>/~`?Dl"9ϐjg\Prǩ! 0l ͠ %3i4y 3ϊ$>fcb,HVsl11/SF3/y<sodþu Bvݻ{ `ݻ.`݀I6XRJ( >rbH 9FP?b0bQ('}G=*]<= c0ĆxᘯH E2gB6X0R.ޚȰ5˶Ț؞։26362ΜJ$l-UBfEW >YO>\D D%p_{gtJ~ :t  &N+8(7E?&'a\%4?S āa̹T<͙O%5cs 8<9oҘyƜ 7l:={@ Ѿ}htPkH}0.C*v1[@=A #fߐ6L 1#hP(#Pv$&XkuTπB?-JƇ#BGwp J&…~7,h,z<!=g56ufȮ|\fk٥ŬDI" ׍,02adĝȼDŒ- ÿqeHhdQtV0\WV$fE.|"f5hEy?7Agy qYcYP.NHD @2̜"yuI$B戈G`Gy{L& aMq8 '# &$1ByhЮL 8ARw;'s و'd裌H* %`v))J)DtB{bE l+2H3&49)e Y \̿Sh\丄M 5 ?xlp (H "$@  '.Z3D02M$E$NPJEA]"8faWQ4gjRB0L0>8Ԍ0xɉM"  zĘ'V/*$;3ODYţu<)X]#(sȜz0"0\j0޸Q$h[؋bzHhm>`\QJ۸YS&/6IPxfb48\&p e"0HaFlq&2,y! 'LD EC= OgӆhcKW{F;ݳ~ Jk+88qQvK/GE ݞNDkG4ޢL{|(6fFzƁE +m_>.":2C}>: O.O F>sWďYFcU| G188L ! x ϩd y?8jqxWBD=0{$CZ{Ԍm$}`|c|PXiXjDaˆM"͕ a v,M4츊EXD\fd=;=TXt UڰջDb$]o@;Qx ZXV-hsicNn^>8\3|F=9~o[ҁ?|nccc'c+c[Z:.+ʻ-xE{ΕyD}/gﵦ>xefё[7;{~AַkкE/Ӵ 9 Bx:I(vSfRRR|xnR39~|B&#>0If2Qx-8<rVVsuSyBu0[Yϒs>{c߾:?CVvg(`>Pn^|/4!tE=Vx(rFzVSaa1AbgE4B [G`ȬqT1^⺹/sf1ֈ T6qHdrMY _|CLkFd ' UbZ @>sۅ ʃor06 M"@<&5#!:톰"n 2UA2!3A,`Ʌor@f,"Q2wj4ƥab")C]"im7G@D捰'KtXaA~~h}^4tl.]T~ZzFքр2Z61Ƿ=}5р7[xVR^{11hmFyNLXyR m+g }W~{wC6_*eeb5Xȧ>AFխ){papY8EF3Le8(xD3eH <ü/P_F<6yKxrB\H# `)[cVuXs1ax$Aq( yX=C<Q fBfX[ 0Z.䁁zq*U4aUO3Nc[X(VXn!%%Iy(w'a`fmxD#$1 H2a_i؏f۽ɷP=ImȁU|b/3t{/_Fh@P!<Cj;f ޾QEl!:ӌLMe,xqf.pM"JIk!aģ"eÎȖQR niD<"L̰$lRQ#޺b*Z_#Tu1 ?GkӻS=ߧ~Jm@-ZtwiIҊFߥ5u ͌- "BEp_? v"AP>u4Q(yZӷ<m7ݲh'5yز⏊<|\X葇oO pρʝRXOOk>G9( 0jb ,@:̥]Ɔyb9agayH9Ž0wAr^ 8af~ɚV2yX"y$FEB uEb |HZt]o\g]9Ձ)w&!)2O4ʷ!ƽd2i&gf}b ,?=(կ^sr}r~$~!Z=Eĕ/!3kWGy{y$c$fn 4b4Y T[ "̌jZd'50& MH‚=HF0иAlub )AGp5O{GؔfeO{Hhpr*('gpϠ$,vfNV}fChQQ}Z:fƖ `ѣGBرhw·o`g.\.VF!DyQn {de%< q[!@lZkE>S,p3>cw=DpI|HBכyyOH(< &9 lt5ճ2LMq:?S !=oI uQ\5ifCy{Nhׅ"|ZɯRb5RX _oȄmE5y iȅrq 5P'yy>@i'~Z`F~Lָ ji| TWƫ!sTBzب5yaPDAĀkzKR.312ˠB>c՚<(77K\< ڰL 5<< ~N>ᑬ<`D<q&ڕ1ϽPXZ`227k(4y}( / n [yvPdq *AV#, H +Ie 3BL>R0qpU@1ROiXn v].WdvY2.؍1՚!S%R:,A&>I4ah[ aw~QA<< DB"=7aG!jr+x9@RN[ "@LzmTpaH9TKalO70ԙ /qQt=:c̋EQ32217sޘ#Fg̈ H珝NcO^e,}9S DMŔ\ǏqW(CSN8`fFY,;,SS<'ekpU]x`!QQ1dĜ xX.a&H퉰Bab)'l7NorX#=b)a#@)aJb`i=OG]T(ezn4ݴfƖ? `@hBУ(7@XA |p@E9<,ɕmO!C)ЁfLV0#*4Y`01Ki'&mաȃrI`&K_{9avWD nr3yУ,,Aih7UYX"nvTl!m#3YP ACVI"4wWE<Ȭ6i6Q!a wXts|;QW0n =z oĈqoz~Ax Κ.1ap(a變键IB0Kt*DfĈYUzcNL>a@l⠦ +̐X_*P+}舵vGX)ؤ&2Ͷ$̍cxjXԉXˋU0M,@j a3KہA6$\<_ CQiF4111eC>Z}{hS*Ɔg63AƳOE-zӴ{=d 1o6j}^ZXXԽɆU#*cmu?fdLgl΢{%  oBaOW=WtbǟNfEK~ƳN~uqh&"*`0E-R˵%*hQ6"(x2F"l(hUɪ̊m%ž ""n Ӣ_/Z_ 3V%mKZY_ן]vw9{%W^wouP7ohkeZ_MS&sV<'jT,ӝ1:ɢ=Rۮ=pLސY&?x>^"<2&D H ĤH܃P>T(ʀ%Y(C?4~6UM5 {AZF$Ͽf=7罩XoŬ>,&W&7{3Lr (2`\ F9o_SO/㙼@Xxq,""Y4k&B N/j%ޢZ-/S$,Rn[)("16yPFEk4 Q̵pA40r0x(L 98r˖4X\@JLLn4QL(aހFj^#`_ᦘq18iGϋ`֗XdŸ Y\p/*A) 5"ZybaH:F1f@xq_F(A?Azb0:> ;Eu j"'bts]CLb9H\E,U( |0~"`L_7ĎSQv<=J#ֆۨ a1A!8$^& Q\ޟ-2O.SsM)Yᘹ`8.#$U8iA:뉢j#.6jfm HU`h!f+j.Q6Ⲓ&c+V\͆A(6* Nq7D]Q|zdDY! .]`&MR#&k(g 31['~10& r8(aGZɢ4M|̰hz &}(46X_J}`ȓ*CF{ϴJu0D{ذߍJF<T]1^ E8|͞3!92cyaY {/]4k.M2KVbʹEwlf[]4.y% &@NCTV!ihޤSɸҨ!R<5Fc=!\襹DZ1VZ1׆۲a0@`{K` S9](.2&s6٣Qq4lîHf& kk8M o60zu6޾T1dO^k-,,׮he5TX!ʓ,DK\iۄ a`/[mςWVC4'IܧIb /x.YFGmxaTd4 [FHRi=-{i'M"[ye9ΐD׵묩}2}1,kaس67((F)j#$EESMW|IĚ:lki)dQ5a/Q:hFHTv밸[]DgB}Ξ̖aQ`HgĞ kO)eqGX ߁ez\aS뇍!q6y}=tw `c@6C}@ {b|^(WݚD@2&< 3i"/e0 tt:vL\Ek&p ̣@E3\k',ZE *._㼖c'V\++8s*j װұaKI{iLZe|WG`&ҽwD*fre YqYOdDV &lΰ%c-maK{'BPʰӲua_ \7WgB3d:3J\V!KXk^A Lk%}okـdc2V1 X$80s^UC 4 jʐ(y{^ld WB166lã %^1!g!\ (ʔ1䅝`agaO0È3h9I[GԩŌiURR<9K3azfj8v9;Bny"== ꅷ6DtBxr(fLK m_nnE&`=[*Z\+<p;.0{A8?q(#2o 5ԛ'ˆA|"1qJDw" !Ht0a aJ?3=Ӑ"J^E \c&[[M0fkȁ16(JA:RbDuXE&BC<Ю `DԱ/Ftqb)g U*Ġqce$2g"1R!yHxf20 "o^b> { 0^ȉG&1̱ SȐxΤf"Dt6 Bcc t1|캗o,a_Ȇ~>! icieuc|V8p\coq86݊àz s@ޤ$A1f6hxT6̽Af* , m4gLfT~1x0䦗bK@ZQMYɓ&ӤϘ);M\N*Mu\5[\幸0fm34=t Af 5av,fBWB.̢Wf!-%zdŲԱlN#9.ejoI oZ& Bϒ/efdR/A{> \.!fD{E2>n+ mL6==wuqǚ^u3Ži~V=㑆0 FZAj){zZ˽H٣@셼 a"m!/8,Egq@8̟:Oe7U3hw.\*z,d~dABH("JHTPO&=ٕkP.ajDd`2T14 5\SaRd2A1OFc0IxPq<˅ fR7FB1~ *XʽB/bH39B}ꘄ[|[e,E:si:eΚC%{Q%c33<z"K 0Qdb36?VOeH=MRGӍzFtg0񱑏QQɃC#:^L Oۗ*`y5: va!ʠzQ,^0RC~fKk)e(D: 譙ei|ˣ9}`Ie#Ft>^oK*sZ&`2@bYYix.l|o?xFa+<="omyp.kf[sY/B<#wJ#^+C\cmG}wZoJ>}̙YR&:pŌkT|u C;]8ad"5e+X2@aO)kn'\*P9nfa/R!v]\ EDxY J9n V$J > 68ޛ |#3@:pBRCt2tbe`K~ 9evla#)EOl˴Fg l69Sc'X!ν2c11c.&qLdqF޻KJ'EsO=|!  1b@ViCa|0tT(e`X1j&`b-^$$cq?bx$]cad% 0*_䡌y>;g5ρ2J9F =[ң'^ 1h  R^6 H[?/#9C %G=\p0|ʽաǛ[r:Kkq[(Xڤ#[y6͉ \ \&q .1q3gffR?lo=Qq5[Do==}=y=y\پp e˿q7yGOgr2!]Q!W/ѽu֝[wI={twM6<U$r}!"x.H"쩧mY"8Dv_@݄ BTf؂V%+C @ b)z+Y3fPlk?a6ץR$/B|Tt]Fo~ _2Y("ks\)U!U/ ȃ0X׆qk n`C?@0bQF_M`Җ< RQȢ7zt蝩Ief1Q{0HgB3Q3R4g1[NJաA2a0FĤ@YŘȱ/x>gO,?!>?{t ңaӽ\w m xpo%>#'`#c0v0>C`6.(F0!== K_Rcd=`[N 6j,(=m2Æw_E~F2blP^6 sQd?p x6UxB0x' :1GzcSe3FNhhfH0~m噑/ߧ2Pϊx#NS *M޽7 =46 0M p|{ًz`۳쫴>_ I\} \7C3|uO& t=q Q=#=[n% 2v.]]Q2?iIzPxwU<ŒG^ ʰP=f]AdP7Co(O"aaD1&-3OQ& ϙ(y3#Jc\efuz:bpr {8 T S>x㍔<FkgG6tֆLd*ItT PdBT}ebJlkDGGc:&C,6LǶ=3`Z}mV֛ZwMcڥƿ_[dl4 O4*KaLj8*Ч0!(dr>14jxq#8bc41cY縏  C2z9KojHL e  !O04"j?KY |еa@o/?lqG 1|v޺*rt@;|Ar`ҽaMx&F3\0ғ[*6HڐLp3|yCZz2!^xeONF   Z4IzX=b=q9XuڕF*7|dcTL>oLcQwø|l0jӃaE=O !B6 YF]:MC8A95]p߀K]H}pA23g9Rm1'ϤxN3Y V0T$I^2 "py2rb^ 19 u! /]#>T6g@[|E~~= #̹a;iOK5u=yvKbk.cQ:} mOZ~:D}."2QU/a739vbx+70l,E|lo6*Q9r$ G%ǎ0?~l8qlr#]ϩS'9q\sz+Ç"ǮkZK/◅<uAkS7v?T3>nGdu<* v0}9.EӇ &@~]gOkD |~1jx3jޢ%lْZz|ɘx''ZQ YxԔhҴ5f<֤=q*4hq)5e4i҄7nL=(=#J\x J?oЈB>p?Ҳ%}+I5jؐm80yJӤӖgxAy~Y}y{2e lUgrHȓzoMQjF,<;cw9\#i+r^Q 0 wi#m{߇N~6y^seDCl 6t;ȓk 6ڀkH?50M'Hlb]W;k 6ڀkWG@LCp-y馛( "i.ߎ<½G]pm@S荰&m #Wk\pm6 QXB+~pn q5Cgqٵ\ " 1Ƀ tWk\pm6`C|="G-BX C5빡.`ԍ6qm\f&̖qW!M+U260ypD9V}jkL 6ڀk \mX,-:Mk֬k]E:CfHA#ɓD;:/Xk 6i(''Ξ=K~CE=W5oޜ~mZ~6l>nVJy8{>V-;w3y~ PՂ_K?&-YJgspuڀkWt ߴx;yO>CrE=WՖhтΜ9C6mB<|AA#Ea=<԰\yy:w}r\ k߲މk઀HCrI]_sUC˖-Eڲe mݺՇoZy`pE[ha<{9P J`p5j@"_,P3uMyضm#/^a'3&s~Gyp_EW\ $\}%<)vyp]5hO,:C wWyظ4Jyp޽[k.qm?4bg=xȑGՀW @#d{R>phY #Wy؛րMv~-o_ϕ\ T!p%ouc.^Hpx<EpjBjB)6ZV9ˑ>F[ۛF uLI;pm4Ӈz&ͦB2qMA>USGb U/V:\1T y(o[GH@ʒA΁#͘H0W8tX5FJB m{T5ϸ!^~(`{I@h2Q(sr_U0WsÑ*6w[H|}l *[2 vMl#Gih=@HA<T y!1KSGL44~ 0$D?bTbT_%K_Tz WV:}rxfd+<P%/H}t5@t@O뮋D|jFۓ/s8v5]C[<-tO)-:1%T>_Oy@<ʑ#G|8z<| ],^p骓SiPF3܅D ynCQJ.1Hڰ;@mϒg qYgc"LhCSXdGb&1&NQuiDc+N9y2q..^sƿHZ8{|&A𹞵 #xDiJ=j[ \^SJזywX<חG)MtTP^R=;O#Sz)TmJCSiW귺1ǎ?ψWzMloS 6aꂏ,ZL$\xex:EWi0H aK.y8ȅϠ+!L6JKH&QdAHyO*CBA0G>&oϞ&y捩,uJ؆!|xanʑA-}ĕ_6F aYx3,jEr[G~BPmUc2+`8%@ެ2/Ʈk8'0a!bXC60Ah@/h#8MXhC Ԇ |\s}sM1^*]>c?p̜Wi>Az& .0OO78EX" cY CH|E,RQ6Je8$ca_|#k d!Qr ޴h : $*1 #J䑝PtW0 D1ܵڧSVWãM!;$P_sUHC8ֽmQ1U}>g<\pmJm3:@~6 yXlY<yЊ#Tuǵ\2ۀMlh 95+ޛk 6P6$ QnEm@Z68s[TKrUvuε.GyYPCvM8h.O\pm@N8 K.% maȃ!8zNuqm\ڀ!4>nJH$ &B:cwuڀk ~yqaxK/yGTW]pm.0dq]˩HХ'-[L:(\pmk `cAC^JI/ufƑ]Y\ĵ6M;wvD$YWou }$"<=XfS!YuF͵ix䜜:{,}I+V@JDm`b<qMZl5Θ6oiO><}'2[CrXi@BhjQ]n 4& L qpv$HjՀ{'KjP&-" JyFKPeQeՀWDwdk<w/otub>\ \M5C} R2ɃQBߦ qsxZ7ڢ #Wg=W{jEġ>K-~ΪQ.@@푇jF,p,رc `G[Kn8hj-Fyc*]?uc5A&LyjOqJvzgaRk߾Z̨eu@ŋT=3yOt[rg%W;ߟl`T & s:'<P؊_n+*~u§LȵVϻUַ{H6z?5r_RA6V&YU#4}-8s.3%oUܯS3^]FheN(p^NDԎ+MX"gWϦShp]Θ]5%~*$g~>|w䯳9X՟u~׼qPj=뮻. .PO-@ttj ʗt|>.ט;sĶ~5^y[TRZ-ubK}ߟ,`HCpڋs@wau! ʈ+ gHkb!CݪPm \gMT,5G@LMvy䧂4M g13 $b$K?' %"!,2Hk5޳nȂ5^}s>׏:Cnh2呖Jg]2,L `!_GN0!19rȣ)mN')kK.w94Ϻ>)mQJ<]nT}Զ^ k[ҐTʧn P6\y8?AuhϪ߷HV ycƋO(v!>!!(BPQ~.*?r0fQ1 1Gg gVD{!Iy`w!L"BɂXȂH,D393uVB@7"j<c3!(oT+-!DE&"<HyX`2m;t$Af^O=pb]-BaA(CTYZRqY#G[TͰ!4,ߍ \ѴɃgnV߄r|QHFĻF}^^VfT}ݟ,PVVFH%1yCN;V+V%/!jE {9Pa2Yb&` q QiZTම1^oq \0Qq̃r9'sSӧ`D Ѵ]X.1 AE ̐+㕱21slīOn`\] $Bljr;.d78'yX ޺L+7l]ַN)re7XH5oMe˨V|uc]6u.nE[/ [͛KƼyhܹ{|͔/|¨e@*!b'`pԫHF1F[Ę"r۪oi&0"֜I!qy/`Ieu<P*poh G$F=Yi+CcsT<{CH=1ral@Azg!Vd"pfꨁ%og(X{?p^M0 -49 ,_~ЬY3q̚5fϞCy:@uMi(=^f}vF]\ΏR5*?Kе"T䊜qr=@aP3uP]iӦ⦙1c͜9S 7t}CvHn^Q`C0>py@ދژZRRR/K>yQ y Ĭt`$E4?k 6@]iO<䡔 0}tx/H qhCf-Py*mPBb"ʀ}m`FXfO7n V0vp\pmd'|:# 3g$[VǙ84ퟙ<,ۢ0:j}[Cϯw 6ڀku `Cf͚M qՁC鲓r ̕}\pm TJy84yp#)[Ƶ\pmk6yh̪cLf.XtYNyج띸ڀk 6`ȃ Lz1 4ãz?{G 6ڀkWZ#@&~Ů +4qxgP^c\{~?ڀk $ !H 0=(G,г<(cqm\ڀ!&pLx== 2<8V|Vթk 6Pw@g~O0qx:5ŶǬ~ܻqƵk6yQʃGO<,t1@8 g.{{qHr^Q1Թsgj׮C^ pU55OS$zN}]cԩS_:@~Qωx䡸["pSk_S<綨j,઀0楏:@~QωU#N_s"#`+ (  5[b wn=pt Cr`.keÿ/jPDR#(Fu`prG\ۀM.|wrHnT<\"y,PTT$n }PyPï8ʑkt= 8\$_<ԽG2ɃM ྈ" 9pf#}w"aiyV[Woeb`ܰFCAo^/%s]ÕqtetFյmFٸ:w:uyƺR yK.1P˔y]]+W˃MFT{ֶ`{@Z‘vJkW|ac7nJ Xh>ڑFuwҲڑ 1 + O iYɤn"Vzv<|ZiŋTo)ew>߉^-+^r%.<8pSlQ!yny: ymԡ~ }7u[<ЁR&Ba__O#FzH>ת .Pb uwRӚS 5\k:Y uoSRZ4F}ȯgT%Gާk Suauۀ!G[O[KXO/0c7f.,l8B@Y|j^B:D ͏osr@PWFcRfsm=|j<E@@~YqY8>h] m;I|6X{"nO}-h[&L)}]ZzkӬD~+;imMooMeyr;.9TƔ]֚n˨=|uc^>+71&P "SukUo\m.:x:@~+<߿jj<VC3g8P7>~@ۀ.ڷ `*GmzEV<|Gw^o-8$a \mr0u%G ]Շ4{U)Wޞ;Wwu <=a/Ъ\WoeݻwCA<mQ榧J{cuHFM!A{ӊ7:$Pʐ?vPCuMb,fąoB<#48ߵ <5dݱ=zzGCE='B;vH'OEv:@~Qωk&yA#UtwI6P@=tw*cwHr^QD~VV :N>M!;$P_s"#䁉T yߦO#W 6ڀk <`I&y#.ȋhd.ȃkѺ<]sm.oy``~C]pm\6`Ä D4yhlTP<ˍЕV\pmj T<  #&L߿ ׼;$߻]T?1??vFG&7-ZR˖-U'%''h{[PǛR&MqG}y1>޸15kp]ӦM}@3j̏͛sϫH+IIyhB1Q~<{DQ糞"IK1sN\xGι}Gڲ'WO \Um}vTC"^܃@ X d0L9a>_4}:} si̹4yڂ~psft烏hJ hB߻hLw4h|N'E_^?yuN=3i6b$=ƎGa.ƍKcnj#SnN6 4eRz>ԧwՓztN=z={^֛z}RtȠL~YY{0`83tONI%idDir{qP\G.Ln/~\t·[ԹS'ԱcGA'ݩsgoۙ;Rjgsg}ot@ޞڷkGm۶6F1ڴiÿQv|N3vz՛\hCyyh0Çӈ#*#}k5F3f qﶀƏWv3Nzʔ)y(..uqfaԥ BQ{`رN*0i'{k^S[OmlNeT}ai:~oM 8s"_ vkIxV,V:Hز1ѝuЭug"ѝ lLo_&}p ݳtr]t-Yy)ҝAtBba R\^LlR&kT! oh!B :Ix]Юm[! [֯J ˌWU㯽$ D7:Rg]}Lh4dh6Q^H > \EV&C"Ȫȃ!< ۵J"*[87otnJߡM*@zax "\E Da{ՇY}xV@ID}qQȍG/ #Fb0rA]f}z`ԀVT8ȁ" ],@j*B!8oiՠcĸ#iPEaӧ4$B  M2WU`;ӵ8Hl|;orI/QA{H^Cu_0P C X}xD/@}4}Qc! y`9uH1\X.v[@yȃׯa ;!6u!`(>8&B#{67A7q0Y`Ҡ"j NKT"*YqEkߡôM?o`sQ:|9~0u_"e/}WK__~ny|-t뭷ҭF1Prﭷ-7L7toǍ7 7DÜ;1/;8e <曹~y553Kٿ -1NE[Twt$]=zrmk_gv5IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source/figures/cmenu-files.png0000644000000000000000000005121411534217015020745 0ustar00rootrootPNG  IHDR}5sRGBgAMA a pHYsodR!IDATx^{\}/UUq%T*l5,^Hֱ'!81؎mò blY`A`F```,2`#]Iӧsҝsן߷/˾諷vhnnm 2K{w ЇÃÇ ƶ7gf l6sTtyp6,@z6/іנF[w{lZAr M+'6۔mo5ض˺z6O@(&l h|9z.}}9Jyrsg'}5gz Ї҇҇ r]s-]feժU(h؀CC)ısyKE%áal 3b@;h`ēoH/jx'ϏкmP?>>N433CǎǏ#Ώ:@q}pYsQm61~@ ͠@Я*ht*ׯ_O6mjU'F=p Il}o^}@L깨п눃+~$vmX/>_UЖUX֭[G[n!Y(} Ƀmj{|ZƲZ,k,] ˗ڵki˖->`_%+} | z3TkX>76#2,㪮C34G: |f`Fȑ@<&o6{a$Ā6@C꾖VԗvMMw~0gNF1W}@%]U;0gA:{PU}WvYO;#C3 M3:*}vUW?11wa?oX~H\A $s> ,4MІ1}o[;ż~2WE$MgyQ'BEv3⧁Χ}@,3_R`@W_`x^>BF618d gԫ~2Cgd~>H΀~F~P?RΧ}@J?#Ev3PWC@?| 3@?Y$kg@??J)`x^> @ "Y;ux(+A! Fw>Uz_NHˊmHE[(y}bpڹz$ݨx>1UuޟC?)d0ijA_;ߐ+x;l(:6!~>HΕ~Ft"Ub@Lـ O#;5p (}}EaP Ͼ+ho9zMJ?{I$oj@?F,lD/ABg7:@?9۬. _Ud1}w[l3ؼ=$q?XO=m?m' }C %8l=$p@`G  Ͼ`.K N"y>FHxmgˢ6qō*'}@J?# Ͼ:<vq ,mg08m PHxmgˢ6qō8'}@J?# Ͼ:<vq ,mg08m PHxmxfK~Hƕ%^MpQwe HxmVz >/\8?=$qRmQ%Y#^ZmoQdے7i{H˰ ~uEI2M"lعPhPC$@ijoC=NA~79 1&壌yבw"Ɗ"wQD6>B?LշU/ոҕр[ݑA_\lٷr&vJ՛ HxmVzGwx}AB=e/8 lT ܉\@?|8WZE˗/kҖ-[hllfgg ph6.=C'rud7w60[ͦ?Yag_!'1o%Ys(v~ψa@et:>6K6͓<ioUE^+0tqޤA߹|99U։8PjǢ&Z>.>WU Ǒ >?9IknV_F@}8Tu^ Or@}@ǒMLR\1!Hm‚҇҇҇҇"G > _у;I 4>@CCCCCCCCCSPiK(}(}(JttPu@c@_<h1Dy @}Lb"D.&rSPl?(}(}(}(}(}(}(}(}(}(r*U /PPPPPPPPPP)J(r>>>>>>>~VlµrU"(}(Z+n7v  ~9BUvF(nQV;;ŭ_sݽsܶ>_[ss3+2@3doQ[VsfjЯ @Я%99UK99TU &:4lH2D9ݑAzbG'x=͑P0 N@Я9ԗpЫ}go6=TM#xBq.P;:@Я999Utuڠߧ-NB:[L^~wⲫ\~=-ixpFUռ%cr|TQN:~~ےM P}"7$c DA^MQ(*(}@vOw }їbZB9]lZ're&՟d$nu+&r :~8B-Ŵ<7fgq{J" B;i߽#UtWcQ=+Ňc^)}@ נ9>>޲lV-IB8iV=D34CCCCCCCCC]B(lJJJJJJJJJJj;+]dPPPPPPPPPPPE* _Gv1>~ʕ+:n\46O?(*է.wms!m}(Bwގa:UToh_gB_Ϯ8z]ҡդ.(}(xt.%Tv$*}@ٲW0TاEf/J WO IL.ΥC#J=D*n7/_3=*<|†H/Dq?l0=ђsFgBTϫP/2o/+Nxo| >yo i. ,(}Evsgtj[ U(iNįkK߭ǟUE='1fSL_\DIdq6a)C<0y=RA̋{?oudy~lhL2-aCXi'n8hq?ǁpۤ>=?/\ʀ]w\*0KUʊA T"'p^[+#O{%z㥂>myY8y9"W-@:7 q 6*/Z_? #x~IBȺ\? ڠ(^&VHURٵ=@s@?;a3OLRg!іJC~LlJm 06aܑ=L/윥CcC[D33(h?v.Ss߿(M>F3}8ԡ#(hmT菏4M3t1:~x_?rZa Ќ=t]wCzgh45nOm1:6G4AAT}@%ԥB۶m4::*0sIoLL 6_O]w]p mLaПeП`GAT}@?]nBi&)8l?9͠#O^7Hl۾c?Π϶EATl|~O ?2_D%yI0&rѨ犟zRC0 L0HͽիWQq}AUmwӇWn+⑃3K7\L_b[n*BԐagV%V=E'=ޠ_#Vx M'7{=[hGuX{1}Ńsߢd߰Mfukfq.S9 ƨyqŁd--#\ Y1ΨTg#:n=q+ ]>A:/I6[|~H7tS(^La+1賕tut{.y] 6tiS!lncُ׿ynB  s]BX}dGt}|K.zj? > MڠjfKPJb! 'ח +ӆNqF>-iAE6^ ?wKۮŮWω}_?@Cr$͛7ӫ;vӁ/}:,oJ>Ca+aПeП`@K}O P|;{QO`ߐxb,i>cy<ߙmvQ/o9??xt>PY)}'S~n@zL9[ M|K0;-Ϗ!~@j$[njό׻6vŕgM o;#ߌڵwх^H^{m <,ʩ; >A?r.(Avj#a2'~4}@8?zVTʆ"WH**]U&`3[],ȷӬ+}[[C[xGOV/rk;LT0˾CY|T7n.w3 +D*3}ֿ۫ON^А|M׈$"oOY?;=_'u#?aK6uk mfp{7*֮D8J?N3 쟘QzWiÏϷokXszGO=VZ zs?_w2op]wg9о;FǶ]lwtI$>َ%ΓŴ:]8􍶩 ?.~}a}v |&|@g~R8*>;5z/ 97A#&^x[$'KLf}} l|%'v~'ojzvA_~9}=uw2O1e0hALr5mǾnDtu.e^l/U\l$sS>kw{^v[8f|Mc/~y }0la0 *}9>PGmwH͍&l v2DwE&3asZ穧|3,߿o>ҟN9zGľae1b#QO wl$R/~A_BA?OQU'ssp{9eFз*<(pi=+<%7\7sb`0TWE9v2жUp '=\{e+;ӟ4-^.`+v#~{ǏyGgqXrj=;gQzmPU/~OgҞ{I/;PyC8e7f{e 0O߿5fhŕW#?~8x8^yc¸l#(h 3\~zS葛NH}µvlΡϓ*0hgW?(׷}~n{˗/gL-[OY;1K,̓U|, ڠ67dz'Fna$F0)|\~wI3L,yw,Î: ?dxoSix~.z>hq_Qꫯ-ߒHnGSy,(h@ܵ.KQھcWl%I J%C Tρׯ/ww77羵36}@; wq}àρLgѯFiogC߼~3]&%' uъ0zObo2Y|0kȲʇwl gm68D/x'}My|DAߝ_:A?#V;'Tq}Cw{7sc0ƒ5~oWvyy}t'Do`?5Oq<]xW_|>w!KW<͙٠ϓIBXDZM2"JFmB}c`"`#To#P/Eiq:x`m<1[r\2'ګoЧ>K vL:ާ۠/J/Q2J!g}?7O${,Ï~Y->_Ta' }%Da!+{ \K"8YX Wi~KSMH~Ck20}yئEenXV |LpXxgtn록bο=1OXF6:cᅴdcψrA ϻus0U)S\A_|~.m%1N }E +M}'qE/s3Ux;~&r9o{a*k\]ߧ}λ{tU/>˗|xA.`4ל yfC([ᓹi ֘_Z,ȇʐ4s U<X4sQӡ߷_v{׬B? Q}`tt7m'-_YL'3_&}?GCu&SizV w? jxDw>0YK=K}11WŤWۆehfj0uz }.YV.LJK᣾ZEBڷ /]?_|G_+A_ 4>Lwb*[;#-)'KC4'I[E<&>jELЦ%yssןri\;X>{L[`|\rfZl|khMjǟ ʣ:*/9Nx5q*nn1z ])9NJz]L}SR:yA/c;**v<nac1r~!;!{E4$Λ}Mdܡw3t]3Hc`_tmЇmsAqIw]y)%^C9њwGE@ "?::B6 y{x|H諹+ChEB"|" {8F;6_SPX;|7+`ݓ@Ї/}@?o'8^ԽM??9jYT|tg@}S+>yO@*cVo RQWg Ǯ򝿝~B^j nސ{ؗE<׎i_鈶ڤڗŵwm5LVIQfq xVAM$SWɔ{e.X*8sH,Ib\CՖ%Lq+x<۵aj_lWymH yq~#m“x'̡&BTl9-*|/ Ǫ՘~_G{+σd/3ru5j rnu,@+XsUDv<ӵ @aIlT C" OG!B?}Y[?KH (ir0Bѐ+|eyCA*C9a@ 99ԟqεZ1 +/cԊ?LQ,O+Gw~zѾPs~)5~=I/"CPniܹ"(g˾N?7 j"A]Z,՗74՛SJNg~'F}i%kNPI+]l߃ob}QŮ- cw_1HТ'TD*j.`0E*audLM6w?Cxkw4*ŨIg*܃; y;/aƴ*}k8~!AžFɴ0bl+"? UV5"j D U@q ą $a |ro` j1%yyA¯hoyvgtfBsn*瘟M}E廄~TكXZРL߇-[VD['rd%g o>PqIgs+_c bdN;}@?Pp-i@3J@azAЯB}w @Qvo6W>ΎC-3t ٕsh#Gm ~ l@aޙ`W O3gy U}>ɠA+X+*_C~ͺ*\_g8ZxzDYȕˡ}?7gt@Fh |f~@}:Kkrr5tKt,Q!@iŋ2ȫ4ϊ{1G9VFgWG?~Yog_}g4>Ƞ)K&Bgc׿}~A  `jw}AP'ѥlps 6>1.y[RK&gyxPw{wӱyo9ɯuPӇ  J=<\F*}}?02O0)E@_~nKs[῭aD۫ӺǾ=ߏly}J]?sr{?˹9i֯{X>OPk[8:r}%n9gj ]u6s: xت zQo:pTМ۰@^B_ #e>m[Ƃ b 㔥KvFqfJ=I OwJ{*AV_noVwsY%UncuP% ކ5n8_ 쟘,.Gn1>JoHp?+[B5,25,u]Qס߽A?,ZH@uɠ?ŠL-'z@q7]Xe0S3݃vM^q5}=ܧ3dZFpe {g+o ў#(C8UPLa1euyWDg |^7?ήЗ1}%t7 ]n6?qa`β`JEMrQ Ƨki!Z& "ӛ[xW︄f늊;odZ>F,TMo<2DmP[諓 u%ib֦S! jZNDnwW!`"7so#,=ʾɮ9;nS{'D p%ltVtq*{ucl2mmsk.apm?&֤4?{&f Iʣڽ[dz}KD@Ӂ On~pv>l o[}(mqM%Y,Y/ 7D@aga/86K//~>~jjݻyi[Yozer`K( j6sǷ[_{v/֦O3/}ỹ}TN"KD@ ILԤE-jyɇZ^""s"5 (, }92 C_O_{GꭿK7uhц#7}; ~B!/h$D@.^h'/K$@*2yP BIIm *솛iO-o=κv%߹޼lz/x"NJzz >$ k[muEΏg ꨄFZVh;g@OI=1nx>Nڱc} h5H'zr)=zg|#)Ü_ ͘2٠oyIUא:(!.;8m,'mC?:xh駖+>IH$$&!'!2><,IXe֟e䒖ɅxxOB }KX(C2dœ@.3I }vEtA?^H=qEg?c>HhnKEi߭Dӏ~~k}@?Ze lU?7Kŋᝪ%?3}@@p}}7,uu"~hQw@綷|rZv-mٲhvv?p/ . >Vt"1oЈx8I]ضdίL}trSMu (V؇%{G{ в $? uq. }Q˛LO/2nbB_{)oV转o`tӑЏ? ZC$>Ӄ:Y^=n)* }=TeU}OLqB? >l7ʖ\^?O )uEY^ր`o}ITTr?[oۓM/#>7EoPkX~7dHKl4cۧ-ջ P)E9:A gaW.{0m|FʘeT-` <.&w$"~ymHx'j p/;eT,_n 'chźd3հVC<~B; ZX]KTNΡoLbUA?xx4*=}Z>U'r ~UB"0 %] K9 !39K_E? {n%02u/ ,ud.Z@_?D#ϼ>Կ}z  5?q~ Y ڕeƹ-=\flx(Ѵ0=Ys;J}_ $~oLO {XP}*\[Iw5[H"MFx9m}_ $C=ߟ(X T$GA?!IS[x0{ȓЇ1@\b g'qFA_y))\T?̓$@c[@hqo|Z'|XP-H cy91Fv܂ZEkzc4XYcyA_ N}{oUB9ƷвߕEM-_}=1@Me[Ɓ~Tx'[dtm(Kg Џr YA_kBjǕ( ju~Y!YD?@[ЯFNJN72|}/}@?o'8^Խ>~6y;@@| @vo6W>'u'>_ ~N/}q/={?'E 97 rqMRdR}9/ܘ=[/DJ):tA`cAߐ]B]:$/].o6O\W-vb,jXB42; S}q=J=m N({_M+]rzP2]]ƅ~ TGɀ?G! Vߴ&+i{9̕,~+AMj 𒽘RDYAv}9 ٲO,ykp2mGSВj}1 W,Q[N9½̠voIo藰'wT,kVx~7:S2"ڧLTJfvK9`JWۜ爆9Kobb@OdTA`䓄q'AO=VxGGV:?ɑ:CA1E朣%̣;|v Zl7يfT*C59Xfqo|Zq`o(ޑHZwL!>Ϲ;u8I ZB̝V/hz?cAu>O?=v'}d J>!MUVaq),3ȉ\DARS@?E ѱ?/m b&`ۯg?G0H#I~SU+>hp'ዸ8f ~ C}(mv4~>0~I Ch> yl|wOO}@J@ _`fx _{R~Pd;|7+`( _>~6P$  }G&{ZJ|JwIIT Tsj\h' Gm~RmIϼI<"!!Q3 ChpY;7m,I#P`.BC^%FmF>!o{MdSξL<w@~jކZKyvo pB/a߃7ǫ7z2A>QG<7"h(ɛae4䪞7,ٴM ]Lmr_Ē|®s4r{KnGSK'F_xG3]cu@/^ѣ~7/4JGs4 8.a nUu>WQ~ ^T?ݥʁK0ŅoFrazKV_5dPXW\IYDt"zssϡC=I~([*qSo[gZ7P+W1}?+WЎ pϡc.Ú#D/lNΕm}2GY?8&μц87̱ٜI[ K83@xpr t.%Jo/ sE \It{zV;@:~>dK]r w^tTն/m>&f 0x>% x\p@)j3.\ '^3>/ [tUֺ@DDЯ͍cئX%}tA=/wt ZxZ-߷ԙAϮAor e˖C8 zpU6_0ȜIE f&.2 ͯߒsbvxbUv}ll?ӻDHgi {p?(`>Io~O{j=,w'd0'vY]=]p"װ46 hLqmRέ 9>~6`>2:]{YTsegbqP>U=܃ m3/ ݧqtGaVH<|tàA W2o7%W= /_Nk׮-[\4/ɨLI;qѵi[ / =/'pB-PX_JCn//R0qʇw`4 ]v-'`o@m}8΄.&Y,YЇgaWauB8^Խ>;d;|7+`~rõHI}~8^#"_'p!Z範Uߢ' 4.X>F~qOjn"`3g\:\v6yvAߚ]7$H3Hؗl9pwwG磜#{w 硽 5by!1uƇcO*p:A|߰$ʈN;q'$;o/ Ԣ|!X^~jw@J8V\S?_F%dV"ɓ&kxseXķ8)65ڢE#Q7p@$wA'|ȁJh,J lHk4~믃웴ެ`6qAϓ/goYa9#F+oLqu|;99' ;}KMj9s{pR>_wQJ߶ĻlKzc .38V\IWBM68oN8A(oWe̽`!}80b8\>aĹVM0'ǝMꁅ* }@?~m弭l?S//ӢSp˿oP(a*B?,3ҕl]VJ\f :aƻ9/X@_ w5+)w8IiC,a}80Ixz᝾';矧2"%8kvxpxp ;}Ã{^(p`P0o-Ю„_SgukA' bbA~Æ "|#@1|3<=Sm xп؏ G?2_`/aܲU}W a\|y GSH CH WCL8ns.~`ĞƁ~m2C~vm 5moXN9lcD}@?oTo蛞 {RRDmu8 }aBd/_Nk׮-[\4/2&/S˖/r ItB^tNnp 6?oSb=t _58@a6; ڠ(җ)퓼%0A:NnR^yt狲tRo}[b(6pi]w_mFtرw(ELT9@>OWUk[nN{EA|Q(V2!?*b)z$99Zg^xAL \W|wff?^=BEis }+nV;wEDAҙ@@ᰴ }_f GP.m^|:K69͘OsC#v  w߆~Fʽ~== N`6}(lP63IU!w,83@p@ϨCO'{` ަ>  w߆~F>*'0x>~F6(@}ux()w,83@p@۰oZ9ΚTa{z '0x"߭ ddȻojAߔ x V$*#^rV H[jvo;4:Y ,6mZ-[XtWs x{(D}Mb-e9`G?8ymX~[vaJ3''DJhK9;}ivݦ凾Tz<_d\e~]SN]x=@@@B}Ձ>l""C:<좄q@_q""c8NΏjLO>_F'P-ʤ ﴕfEXgCIHD.<,lo:CߵB}éPaU<}(u(l]@u~Feck>@Ї}@]g᡺˥>.}(l]@u~Feckt>@Ї}@]g᡺˥>.}(l]@u~FecktAttPu@wiuhJ}(H?}@]#܌l]E}~F 9BK H3@w luU\G 軀:}@J?#}vQQBNv>Ү}(l]E}~F.jב~. ChP/-j 5#U.+?M!@?N:" tG/E@1}@]Q臅wpMҁ}HS|>@ -A}vQ_MaL%zF|[L7>~Im;VtU}v]G?PrˡSً}L;}v]GCh>. xJ<}v]c4 k`Ϩg"QG >Ү}(l]E}ЗmVZE˗/kҖ-[hllfggEFp,Im? o7>Yno>7Tl @YU rEA3|K~5YGHy _r6 ijod?

5rzSh|r|8C&CI*G֡qiA Dx_F!wY@r |܆ĈC0O|lD)"e &y0:iCP DxFQ>fӨ}'B˯\7jBH+'ݖ}]h0Wt"CG%fYp㨴4M;ǝ0FwB}*hC{)Q?W Yi4k`ރmoXd)Ծ ?k ;#"I =GEp~{ʩ[)ˢ~3v{C O#)rF`4 ˆ_8r/j٨9̂Yk>$ -{PL.f9B7ZTfVsVиCK7Vӛfuٴկ<4H5Ş !ut|)u)qN+e"!DίFPC4  VP嬛5œ E[֭AԾuiSwSD;׌Fyqf;w@AWgvhV縁3]P`H#Ax$7Yd44-L8Fò h HA>JԦ0Ptd96Y> #^|<|^Cf74.j9 0ӦRv;'Ms*ԁ|òliRaSDs12 x.'0̦p7:߰ˋM|ǘ|=r#-A}4jIg?HiReEږ# arAahbA),2U*T]CO79?憖g]$_ϞiReI+iރC@h &) /AVCs@0}'&p zN1\ _d\dYd˖-GYmh $lꆏ-^ z+ zKL|/,ɫKCss1`|C W_N'L&7x`O'ǼzLn?s+|GuV&~#uh?[!a0D@?P60ė_&lE stw:?Ny(8y̷ኙ2ri{> wETRF;z.a0DD+_&9޷·; 7֝dĆ<g{u"L6ɦM ]U}߆!C0Yti0dA'ER$],`Ӝ-\P{OX) γbgS0 ^ Y (+2vQVH}`vZxp񒓘lepڤW,z QpKug2~;kӮ= dŊ=a4'_J|4iwD$} u6dϷP3$ѵB![϶b`(͉"}i9:/ʙ:09x m HC4\p|OJ z_*0`G#Hm`Ё(R ݩMH-n8-HjW9$gQmC0Z┻ׯP; +2tLLV:n#X$^]gG|`2d8MՉRacR q yiӏb?V  |Зpɲar7;n;v,uZcTZSҳ859ܾrcVYncXI~/UW;oyAmϯ`v҅cg(pQ\֬YTyy&Х/Dק{|W萾 ltsЭ(?! nC5~c۰a<0'&~ N{Qkfr/ѓeǾWt5<dmk>8slj1"=[\MW>UpwT;')ۀ!Bp C >};Q"`J\:LiLVp:ytѢ N.0}< 7r^0kr6a(tq.488>Վ)϶8 !\xyLnxaΜ9yf&]^0n"@*='y{ b`6|D1iR>9 RtC6^+8|;12Cs.Q_qax>k&4GeOڣ! 䢧+6}0FP'R0P^@Sڗqy!"CEN|r(]g&E}IZ=%wVb@EPMѰaXq,aB bxE 2I_p^GaDD}FgsR| #NHb]C! ?[À&fCIMڄ0D" `r-д/i\ fN}` " qGhVȬ+ K';}%g)ۇ*-ګaϖ@_'.f0ܺI>"aDġMF0턅{{K&۶nCQ6ֱ8vj񵻡u^رk7lV2i ؅:( °Ce(VqRG;:hc+sCh^؀ iihu*;ƌ/2̜5FضBͻ x}cJCA nP -H$M.'ΛŕA% [ tҲ}'L4)СCAaÆ1HsQL`uPlNB)2֌ -X CƮ]YQ/0D"aH@5}tt@ ><Ca,6`Xi9r(nVOĄaky>Yv`ICj0?GAv-kZ~@"}$2$碠mц! ZKt0tUɮ-9w%wvqn0-<0AaP~ +Ƒ!1ѕ'p7a3! 6%/D+J# k\#CU{cf%C08:"Rú9b+ 0l \Fi C*ݻ7ƦVm   Eݕn"]:W/[uׂO*6{t, ڎ8 ó>Ckޭa 8G`X1ƣLÅ!&5Q˒;Z0m>Mt\WnOr=0$ΞAlN&677t[?> T&O ` c~@ ᓯڵkgE:Hd5~TdK%bGK+ ]#8p>72|!y`gj $2l 2 ٨4:AeKvpM7O?^2dC} u)x]8fp=)C6[1]̲) ߅]t*ّl å[8 YW'IC2z0% h0$TJ5_ac0ezC2&#mϥ`j drBojX e].ʖO-0,1 za!H^:cW# oOH$T&<:CWb$mNVDl m0h`6bܹLVD;[n/ M>@D:'+Mo&0C`B"Y*-t-Ѩ*ݠwF(?mI %^x~z:Юk,ziҎ0d@t% #Pyei0rL"!!DKQ^1Z>B4)dh1fc`9mܹ3zjcfŪ:&Fo}Q ) M3, i';?)H4&e`(CIWs_âOV_}> "C+? J0.}Ia}eC Dq F~LFClC^̠ =" M;8*7fC:ɞ Lwq-w^ODdm=ſKDŽhK&F;2@q-k4*+C,; %C*ϛcGnm0dz]+~0kkA0vwh|=F 0=>htޝ =^O6N LoNvxN;48y*^ߺM@Yynbg`ht+zڐ˶~g z h=/Qֹnbqitv}#0>x:R`[^0FP0?>֒A#}2ǗX~ߺu+3fYgE\<$D-\ !:qC L ԝaB a6` Ö{a3 mYr-Pnd*ŚO63L{?]t:caCcTX$2$ݔDA(:ռ^Hux]macp[i)# J @0Fe-[E"ұk֓hd2qN2ok64Bۅ:( ёHێ V+M! #B;4>|m0nԷfwX*#R 4MnŀiA챸 Ne"nF0lnikvmIzxv_IYJgK& :Pҿm/8#|#01aXs/G0:GNdhx瑓!sQ Ͽ̤-(m>3CG}eÈa=h,i uv:J ؗa@= 7燰gL~5bڃpq~$];bdsaJRޮ 0ioޏ`spR ̗,&>8{.6l&&iLZ Lܼ7n:RPpnb\]~QRXPPŶ 0|n`Lv>mvM l`7U't_Cʯ6 4OC pyڞڝ屃X?@ 4;Zf{o`#]u3ڷvgI*Mk C$ R>ι%(8aeki6(vo!$LRF^Scޣ C+I{=;+rI[VU"H9Z PN&."pM!,S+ tW3c)y\tfðP{0,^FNꣃ䤔TXbZU`eiRԏ BBr}#z04M3M{M2<*!0R1Ⱞ )}) "C2ϐENdI+:ҫv)[٩::,o80'馘0 BN׳ 0FU !2k5̰ 6_r7yQMN%ЯL3ũ ԦIEᚖ C`gG2u73YPF C:gBd *)M:"Cf(gw会d赪CO$Y zW ~e~\ 9WQ[Tͤ90T"`=cY;f Cgoa+pA3N`=p a"1畝{ N"qLUpUhRmU41moM(Hc4k)%iPH!=]gCw&I" gڤSk~מdOKWNdvØl9c3D;eN?+=2MOٖRYSXv8D^bя4VxP7!K]aHENĩ=ڵ3~vqa6>=,o5 S)b~xʥloy- |,&FпgOlۑ;wӑ<A]ws64t0t[9\9!Aat&# mk>ÐRG{6Tmu z Lk0"lCuߧ wf#,<]; Iyi02D%Ŗųdͱ&w->q.]HY{!lCl/VI39&-Cnl 10syHNzo}=F6xj&`%rm A0;fdi|4$KVYVTs@Wc[e{O ť0 ?ڌ⚏$~H\ ,5 W ̅^xB㖭l* LH=3?9}GCk0 Lp[G5;~CJC2'/ޜv2:k ߊ7CF1u;Pgv*:m6 :g1 xcPw׏GC3)!F{8S<u@" V?6,{|0ٟ19_}/s^S?u73Gx$C!wZ?`BwpCधS_?0/3yl;N$z@^vб".eT~Ҿ4M[Idh#2#)1X&{fp0lCL~0zhL֑{=2 C0".jFF!"I _ >2= 1 EsʤsC?~0|k ɨ_ijC[=:W-1h y40TwU@߉Źt۝I}>;h5νDsp=ӂx\:7zYg0D" }`ˡYeT'ذc_Bշ30-lp;?aBG^9Wn$=qfI`\\^ 7VVir UnJ0"] 2>rS\o"cú:@A|~}пTfmwgrR|Y g= OovI' vJPv8ʶd5wmlÏ@/{7(:lS  ( yk26jzS#+\4ѣ?P1 $2w;IJQk!HR9u SAxdz-ϡo]ç1i~ogچLG"BGHS4"r$I9Q|MT CCr`ozp \~P&w J]F7= ?&7(Ea:cqy=a0D x@KP/"PS&Lg&7އuw*~aDa7@SC!0`dLAӑ"C!m@_ MF{A0F|c |sq<(z6_> 3=ayJa(N&FxvGU}" __om 10+jDvU aӱCtQvXgBaȗedJ)Lw wy^si,J!.E*°9768Z +W;u۫5*z-PgKwQAH_(Ua%ڀl<E=NVd(‘}..5/ }v ]+ %ر o@ 5 ԣ:m)ClcT%i@ŨԱ \X.m3]tS"(nű?kykl"nn*-^;dfCqE:#꿜6P904)%MjKx! @.xi茋aWXf+MXd|mƱ{!SZ0]VVpR2xxI^=x_= 4メD́z|'PZ >9PX@.kuؓF>|aȞF7ye@@@0ܾ}; !g̘8zl? OVJt/98L)Y N?vͷ {/.r&ߍ!#Q4]Xv,us/&>8M5ݓe-`@49pzEz97OebMJ:' ڠF/FA$`xoNCw0/_Ar{7| ڱW9Nx_mϺѤEFJܕh;5mؼu9Ƴ2 ۶m2/; )6YfQ'/u8.0l08AL!,92 ‚`ahtb|Zj‡a{b4*P~ICE}0L0s;e[I)8aXN׀B @eĈ0sLشiy7T~XvJI#C_g>h}6UG&]<2ޝޢzxd0AS 70uF"P`.n:T[>3THQSH_M GW? [,{~ Cݸa0DwHaSA&ab98ad'MG<<34qpx>S@Ghah8:Ia86! Kxɣfp( AGAc}Jg8qlB8@G]GQ,%([n…0qd&x,]h@5džAa86! xpkS3qώ+= ׾ԁu#;@pe~o6!:NfQ,%-p0=inV PSၺ:Zz2\zu'&7n"0dž@=a86! сux~rlaR?^w@iKVn@2+"1\|{5Jw:}m8 q!X^iG&c@Μ=ޛ\~oP4C{ɟ ؁}Kx0dDEEX.g\[WbMN4DGh ( x O۠QL~uYWcv{#2iʔ`7խ]Fy̑gR?T#2?0ᑴ p؄p4;u]>F[0nk'ÿ:;Gzn C{W=ic# XJ4mZUMUC*#IAuMfRBU9_J ~WW*\:XpMG4%k*V@KPJrx:F6 ^""~a86! alID5q\O%yƻÐAHX6V5 pP\Y\=XB3l~Yfp^^!Q,%g5P, 2;Js z65|4rdţ?jENΈɂw7{Q:O#ǭRk a߇M@ H044liS›N=ђa\oY1 A(|`jE.5)d~wmeiһu]@Jv4zahX'rOUx212D l Ï>*9\ޝ$ |1j`? "lߚrBԨ7 ~OH*apc!" 88[DЫOӉ[PrNp݂^`gۀB`['1n40D `H&խ@#FCxbL6=L8!&"rPb_#YK(\S -3\q@g`( j!0c!5 W^]vv{ FXxTV8mi")ul'M=BMa"A.B;r_TA &X/C!zP@47!@{V:4ߚRZӰ/ CLyPG6a<:'o mи'Aχ>$Uڸe #DPA!yN0i@b4Ǎ VI؞5Cc8S@:¤iaNi9ɴa<:'o ^\Mla !:M$NI؞50LCxs5aޮ/L4M&L;A&ͣc{0NyN0i@4qxN2a4[Qa]]Jgü]'^4 D I-5u ~%@`dF" KjFQ0 !Ϧ60LCtvX~tm aX2W7uT|6Ŷa=4֯d@-kcÒZQ50B) ~%Ӏ) 7+ ̈́F!gNN°dou ÷/*M+ {L"a* ~%° N`f" {?,0BRB pջGV t3Y7=/e S=I0̤JjHe^v?T+b56PUU@%gV/>ԤCNjKXÞyaXBLaUp`p`竰Owbr9Ņa w*amM@Uu 2ETX_^R.ҩ#Q: CDaTxzKgJ 5`. _! l a`!Z2)*0GE" }~$°o! VZQL="CGRutjX /w:љ_#B ^mJ'k l2w,yKh-֤#-9yS*SZq[La!p@F;cUJ`0O"×ኲE}~9 N+'L--=k~K-!rPQwdVv?&uPt*|uz/Mjέ?׻m^tD?<6(aXRw7aXCҤ @{L:.gՏσ@1ρ5^ JDϜ&Ȇ9.58+:`'{P:e]z iQ'R庆3Nc ׶`(K>$;3iWuQXj  0LЉ˘45m1z(S_eV HQ١I]D׈ϑbH+է-ʳS'C!*Tӕ,H}0J:9w[\e KnfQր1 vmў0=ņ[JM?RX0j ]ӇjZ:r+9 ѹH0t6[ /.  Q&GCNorCљ1%]lnآDN?T.u,YkRnz da0wƺT0FҤIto] ޸{3]?biR 4ְ{>6%;ѥ ܼ ~Eu t j]rv&-In4m KnfQ°3Njfjj  읱n%Հ) y?9~3,#zJ%ux(k M0ag0wƺT:2>BmaXRw7P ux}|maeu+ud!|v°oe ѡP0VR B aI-,@C-ԡ!a3֭05az~ٿB[xg6]°oe ÷/*M+ {L"0Ng0wƺTd:9>W@͢?.au5ldHݺr~P&6qxN4aeu+`ݣ +nu 홬UòN)$l:F닂Sun4[>GЗcR{hO%0,śEY0ܿ*8u8U'K;1Y9Pr#>n%٭޸Vݼ8u.K[19[2}vy0wƺT0B`8Ζp)% ]K9ްC@z j "- (*BeR L|_ L24X&^iJȮ&mEtgX뺚7[[MyT ,R4m ]t[ip*u{12#j_`8D/;" 5W23hAtrzt* \F˷~59;.Nnx*=_Ĥs8"ɑ` %2ԁ$֕A@α)[AY`S)y!9V*C_OPTO}ۥgbҮ<* nAۋ0#j_`a:}S0,4@)S_hIpJ$s(#ϥT/ U6LGї ToCtr[uԹ°>k pkW86  s9 tPvAahr)b0(" TW vnnT_È8bF5;DQ4pM{vJFΆ6̦lSB$mg%6saX~5p7n)#^9!u d~B$pPkrxc.眫-h}x䞹epia( )tA=Ѡj)v: z*Q#C=-N}nnT_È8bF5`n$M:IGJ0덋a73!&Ljy4{S>89`hG7҈IRoA?S3`6uc0="ovWva fҤ  (°>k psʦΆ Om#$6n }'^0 a8'b`18.cL0ޤ aD1V!_kt j]rv&5yΉM``6}aX~5E6pb9)" \Q_2.3.=qXkn?9о@zfFvx°>k |iBש!4P0"Q~ щDd °>k NaD1Va ;`6xea$=^,e^%ԵM@c "=вc޽dm8pm m6@o/ @DFc5ʯkwCνcnؾdҰ n۱ u6Pd68!" рCbE"m;J*Mw?@](N}aG(t0l%0Ɋ} 3TXؙL2/Ԟv ':@( {Ӏ)  6 Z9l>x₁0,CE@Fcuʯ- POjW $2G"man^A4p'3l!pSe_pIaӴp7a3q(3']fCU=w |7kt~H`F`D`*c"u=t*pwJ\Ϥ zNvEZwޞm҇-UU`tkº7-# SߞHaxw46c) DK0J @\ !7 k/۔WucKu?X`&Pd~Nv?WoGNv2Aן_\@,s'~haM4p 9dݒi0o@;X3PCN mo]{r) 5G;jeʥsZg ASBg~o>1_Pnظ[=b wv #} ҀJ[ U '0$sa qIJHZ1iP~.)Oҿ5c5ysz0 iN:_)ЛAVK?{BoM_5k+O*k$՗#)5^5!q y?G4:ھӤrXk@v VCEy7 q7pHV<;?o7!0l!@4'#5}x s8 Dos榺A JItnMjysugmQ?=2VTm{g;9 % N#@4xvxS6a/ Zݓ*ROˏNt8!]φ7</b9 C9NG2s5, xʴ"4\]=.m;`(Kj^? \Cb|haM4RN;?8Ƀ;B5'nԴLde<7DdDh$DgMq\AqM99jp}t_XSIм0{p?z䀚՛FEwN^7%45GT@L"D/pXhi@6&mlic2@Z|+~w,2;0=Lu`n]}2zTX7xɾ%՜ܷ:o^rZId-cUu iԗ_/ɵDʖQ :1 %]ѼN}?Vɺu٠Sg9KVLFcmʯt׊B*a16z UN:h1-Mq/]Q(=hY)0fMcJ+ \)cÐߏMjCv^.~lM!}6`ap&$DwS't \k! xIo]&.8 ny$tp)23!oSjG0r62Dz./Snc.EܴU^[Κ_CSeX] = $u^  rqjۋJ;ն/[7or=~6/R=p e=SMMM .b@H"Dg߃t0ZDH~0/^̉-`}&łaXNP?LEa7u0g<Dra!'UT IT%" MGzD6 L:ӱ/ ( y!MX0"B ?U99Ϸy; h&j@) /8 _6P2_<{ iYF:y~hFxh@MMmqO*`P?i^[4 0Sa/J3;,7`+4~ xnDA89gHݮ|rx~76No_a1)D6d''_tBn$=^d+U>mgkkkq +7;aXFߋDu|´҂0,'c۟Wv{o>߈=_LF!cuʧ!?B*D~=CqjE1޹@V#DaWaR7IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source/figures/cmenu-nofiles.png0000644000000000000000000010516211534217015021304 0ustar00rootrootPNG  IHDRcstsRGBgAMA a pHYsodIDATx^ŕ}]ux뵽Ɖ0`Ltlk `1`rH@ D4A @ Wt43ϽCuuԱ{n†2 `vvyP<'*5l6 pxa@[o+?a`@[o+>a`@[o+>aRhvaCj/N/xXۺu+6l #>/HŒǓ1ç65@RPqFjƶ`CXgCAA%l+SH<<(=m nڼy3m߾vIvDY mS2o45 l@߂ >j9=@奂S mڴI>'M%e}G7Ϡ9]B_=r :6@;Ï+?:(> l|#t%^k'nA4lT\@%e3AoQFѼyDsǎP|YRxlh(>/tJTPLFlT >-\TFt * @#Gs|D6!EUug3/)@Wr€BXa=*RCo?_,:kӽ޷*3窨L K?<{^5̪xۀN;w|F)G5/aCи`3!9w/oG4$UP7OE|eckU|;=(䔓et6m[4GnQԠN Ej>P̗U?HV$]6f*Ijըxpx~_Ƿp7蝥'QtBCAx,@E W ρ&QY)[)***v |2 gU Sa0leͻuO;q i*5Y>X*01v AV!SNjӯQhSTrZH=ޢRPpg+`CYnoӎWm熫hߦWoR}msƶ@&6|P|@};ĶsC?҂[>+|;gO!om]|ly[z<u̶ӬAYn]1x4q4fޡ`;owYಧzeܞ~WZ_vg |w]U8?{ _g |w]AeO}]Nl>(>mk#zN/:S]Nl>(>m |/kzj« up;owYಧ qu._I׬q)LN|f|;]e|P|@^xuZh<;0yTb/h5s°qϏyӏ>˝^\uohqˇѹߙ,zqA pȕDre؋Զ^@)&>r^y^,l˖P$ gM;]-I|TTXdkJ JD.Kr=F7^wFO_-7K -Bof$:= j]VgwuV&WWSKY֣,M+toʏ0mB͚ɟ'}Φ8%`>r+:X]\ B]sW*JOW(wuuE\' XsO Ϗ`x>bͿ?7ϥ\O~N/:SQa:RJgq:ݟ4s̺EBEW EJ0@"p~Lߤo"^١M~g D_Wz2m }ݑ}=>GD-yȒ%CM!Pf kT@aIUR;JN *{ ʶwZ+ϟKG< _Nqr`*2P|=,,(zs|s7/>y lxw'EMv~]@ga SCZgآ_#<^E8rn6| p UVuzJ| jV>˝mM^!2W穧vl9c7 |4fL Q#kuȸ9g O}S^QC_A V$>>˝T ʶ2|>,s=U… #<>{|Zg >U>aYlS'o lP+|P|6AA%l+SB;AYn x|Org:A~Wg3Zw>N *ye[Fߔ)ShU>~,PTH6!y>(>m -^?]:IK. ?m#gӳM +0qMX^]y ?]s,A>졳_~PM@8ⷉ^CsC_C|s ,]w]t8k"%e5L 2 o[I2^|)ѭNkbх |ܺN>T5犅>I8[%5<,VD^FիUu|g wZ,Zdѓ}ũj==t{D1w{oM\3 FBδ0kaA?+-p'WwO0H+S! YQM6cP=>n&zAoģCw=|nY_o{λv_OO?UVYQ*k"s;| {̻ltjXVeug unXiԽh={覇%wlF^pe1VVhGVp^ԡ׆'Ӎҏz/6+T[=,wz6+=|g=97oJ+^C<] W?^xN(I='Xb;BS|_^PmmlaNiyh4a 0hnwlI,YXwhηJɰc3FU|ʔP|aBq%Z]A[3^ZGSPxggTub:+/L Zzu` Tm~(=>&]Ϡf5ޡZ RZ3Lx~9bxxCo=t8{h8ӇQ?_vItE^> BsÝ~c -;XrO}m#?pP|ւZrj^5:;E_&zq>:e޿κ>M+L۩g_C'ޗ@xu#vH/Y>(>m s ],L }r])t-ҡNv঱t=zխ4fX̬B,wzP\W\~a:;ߢWwz>5p,wzVgTYo/\(dۜvp>(>mx6YZZxN@y|6lZmW_<H>rx6YZZxN@y|6JuvvPvgk[8[ >J>(>mCaCmAq^q|ie>rPݳJKSs#/5n+g+7Hq˖ ^71eNj+ WWJ/-A=[v;lضiz]w`CXaN1T=9ڸu'mm޺a]oӖmPV~O0YҠ8ֶ3!mLmڲۚu]s7۰ L:|P|ۀ |fÜ>6-6Y젲ZTFmfkz-.McCXb:{b{9\Z_?>\Skq]m;%N(4v{u>:݂;6v.Ъy?A،0Xo:nu<۩4J뗖1ob=f\lCOFOCSM}78;rMmIaMT;d8ίq`~i߹ڰ? e94]oj |=)zyԗ)%xw߲Pors~%]~!9BIT!WΩʿ<[&t}CE}jq89CυA~v Z:55-p~Yrx v2vjE3o=S{vh{Z'5~bMAbRjHQi<ܹ΁Lyo~_~iUw}Y,2b:6P纞o: :U]}7{;s:"M]۰ C3#6f_FB:zL5r[*v luBVumg@jܶde&/z{6l(klτӇhn,+>PƇIxXӃhL؀J[ivQYȳQۚ-b_ aC`N-Xmdۀ bonݶ_Bհo8H{>[! 7R3oE:غu; #Gܹs-c'' ' H |/>@vLs3xN@y|g |py<,wzt+(/>8r< |;=u6i;']Y6NoL,(+P 2Y/>rϏO @?Er@9*}{×&SQ}|;f /} 3 :FЅ^Qy*:ac[SMUa_ w"U[84zWQ`r fzJT`nsRřQ=nvs@X43Cr>xsРAk+ E'$ʯ9{>Wu:UQ|k1,wzQɶr> O(;eOCu:6gEv=T̫Jp raNwz_[O@4מ|~@ӧO|1œ<--vz3=+9hMF/0 ( P|P|uZnO@Ԣ=PqǕW'D8FޖgJ~3u Sq{6CgvIѩ'`I;(>˝=ʬQV[/NSB1!>˰z3NçtnaiIffj|6P+(;s21iWta,wzRH% 5a< )H|6|a ǽ6YQfzWųxN@y|;Fkx6|P|(/ref2kԻx6|P|(/r(tQ9`>r9=@YQfzWq7n34䡑pѢK-Ôeg DߴY[!Co FrѨ/q 5  7/cF>}{Ct_/ \;x2P|66N˗ u7T ~:b4}i֤|%RW`p#J~++-Obe|;f( #5|cYE㞣ӇG:uzʏ@c!O~"Ǘu]q(1J=|6>Tn6[λH1ya1v2xA |b!<%(*" K Nj,j'HM6nx~MXM;АyoRߩ%=n2{(k_$JHxQ|AOѽ>: xm {hytkttH|~/ 8،jO86y:-NR=~W⋒!J@xhrtҥK鼾_-SDCA6l Pŧu1'jq:%NZ|2GGoYV^M~N&m~>4ڵk#/|")xذ~vj!E񉐪>(L`jT7Tm|hCm *ޛׯEGhi}hu'bXOHcξAE阢 pP@XT:yE!UՐvOB?UYh>˝_pm{cC9L\{b(2=pH:kĐTv_@k6O5ͿǴbŊ@aFYi|;=(>($8ξUK5:p>(>m )`zk>˝_ "|_U>rz Ў|;=(>(>kGxg |_=hk>˝#yf>N^<3AYnWZr|z,(޽-@wAꙞoM>LP :jj@$13OB1#.itAʪ ɼ`ٶ[,(P*n>kk|;=>ૂTOŃO'6¬\**ЁOA,8(Cy"¶=%*d+*< qcr]'}}1[D'AYnqWjk,R/_,wB֕==*JT J:@}C>ik+ Ejةr|j {>d0glŧ/ ~bj{(L@miK` |P|@Ty⧾tqC?_`Bl ,wzP|P|QZ/ ?OߩjN *I I0 }fn!oKt/((NSg D_8>~G9||:T8pէ5%:ksLR[d@b0U,wzP|P|Q$1)+sN0 a>(>m Q?(IH^W,wzP|P|Y_-N dqm,?o>˝;>?AYnNdq,|r||P|u~>gӃvY>(>m:v?AA|_,|6||j Cl\qXC[sfflr | z* q&]ȳR^꺾:{$ ]Cͳ?W tSxZKta.8 (CgӃ *'ߞዹ(Gi)+ϕ|jos^T{Y]߯'R!WY0הj8|6|Uw,'á_Hօ2JbN8|>]>:;8 U|z(ү;utyXÇ)3 (sayɥF@|;=(>((\ ]JU Y_a ugs<|S9ޏWUzfP-Sg D_8>~G9 |MNCSGr3untB>'ZJ DžIVuAx8AA6|aaLOm|_`kkB(>m Q?[>O PPg_f)lP|DQ plxN@y|;f /} #AYn_<H>˝XX GdzxN@y|;f /} #AYn_<H>˝XXI+IPAYn%`a |;f /} CaCm,>3gӃKk;VB{|6|6§y,wzV_&"6,Z7}q4}i9|4醯Ӹ+&?laZ,D wR u({iWky4ď> 62|S>v*x{F=vfe(|cJˇ;m~5G;z@ۖK-#g.ݯ5+(+P СB' |6P Pq0XsQ *hYp6Yb\.kߘ:gm|'V.۷&!<E₯OۮNhJS>QEOsBB=#G?D%\D=yPoN(2jY޾C: MoUc‹AgPSHy6>~~XyBzQ">(>m |hrXLI'3W0>Ɇ:8:+jY||9B9* D[ hrU犮dߦy疻8ߺoʕ-ԁ(U:l5||6>j79'ia_ |N|Bʼn&xR] x9ϹFkeUuZTuZ4h;N(2jYN}r-㣴yl) zDZq|{9k uz;T:TW$^r;tQs+Uwn F,(YdߋQ6Q!$d5g˪sEWaS{q]d=?>^-6i4K|jWj8@l On*wTc`HNm |FA A^ӯFA|6B̀EY>/KPjƳ|6|̀EY>/KPjƳ|6|̀EY>/KPjƳ|6|̀EYwtAɠo0g D߅^HOM;кu|k_?1gs|;=(>(0qe'GOET"X6Uj&8}a ;ވgB' PfÚvK,ɓ'S^o8|ޅh"|F8(` _X7'PP|P|uZnamzdÐO|¯U˅e+՝Eh;t b!Z^yuynVWg+)oQy V/Q!,UG:ygJ>7 c>˝\\w#!ғQt{QjGqh+ h+T]ï®.`yjS[_@ ]Jc>uxTAYnA{yAl|no4h}&\>Wb *NQr:T(IXD YF9G{TRUyfá* N/:SAc=O*>>?MA'/W2JUY&ИԜfIթfPxRrlumzgh֥Qv Ѕ_w$-٦:~gӋp~bpLLcm g kN->(>m |Q$KsO:<>˝\\w$ yؓla6Z9<k{J[ e2h $@pvvvlN @D6yO$ԉJJl*6Ň>ITx`g]fYn_{;q@<,wz0F2`YF?AYn_gg'aCfN_FH?j %`Y |6J(FxG(SKNY4e1g^>J{8S3ə%[j)O(Zjyu-S+8 I5$,&9#Wֽ T-{ 0|k#L// E㮉*?Ҳ2~<[:_G갅|Ajs~F[a%ন5 8렎AX̗_A[P1۷bw(ŷץoQ&V$mρ(?0+J@DzÆ2h 4 o7~_klu1rD9Z_;' zLqCCdj uJן" !zѪz}>7pۆCNgDOZ'ܙy?[/uC/mc/$=vT8e/jWin/zVרt}^\P|0xԉEtժ<}m3 ^R,L8;yquwbQ7?I/4wSםgVB^QʝԪuXۣ:}חDO~C[o0E >ZϊBSغmܶu ~EǶKz{|g OBR{Q tzWWXHZG4SXS7LtWq=N CaVLW1 #^G[4v~|_f]%8;qX33DT:ՐA1aQ'xæbOYnALcj^D>_US 2tnq )se;ʰߛ Y ܙ" |~,-aXgW"B}>TFm v:}ΠN/Ibyyg3|6|Rջ2O&gy9;,*#g _=z{ub[`g,wzY2F4[;睝ݳ"[ݝ]u+ T/L! tl S3 qvKyje 14|NϐX^*Vh|L-(ufֆOO%,H ЅJ&欘AWLQH|k_A[O֛V6'OO[ :m 6kߠ;>uۿѧ }O>'Otނъ+;>ٰJ~yfP>i 5xV& |HN'ֶ'kPsъ˱GgFNW/|G輷sM>|>aÆP|v|Ae |3Gl'ܢ^5C;DJ߯F>^Goهo@YOӉ_9?w].> BI!SkŬM& '}C|gs{/Wӽѭ[G?}O?_^}iҤIjժ@\U[A|mj3{|ASKs ӾBzzy06ߴhz8zFé7hCGg)7߬ |WI "!a` ;k0ᕀk`4,? Zr)a>DM4WSEON$MΠoO}|}'kV y^΢!nG9U},P!ejWҋrNp zV Yn~UGѯKߢ/=1뾏'KW-=et׮?ө )ڑtѾ} Ky*}m'K?F7|3͛7&pУ-fD3#)&ߎ/kxx(iL:*Tݰ/OP`ș0za~{sӗ}t<}鉏&}8#tҁor& fp՛w?-]~>菝Gy}>|?w{G?K=~0:`gz}0u]p't(wj)9ky2D;}rv%3{M4xH6 w>r_WW=0:xg/}~ :v7_|/}_=_}/}̏M=-_fy沕bCM>}li_ջN&ߡ .*driw|0`rrJvUO!>+:ßK<_9_}&}n܇}N;4;T*ِ얿vM|@ ,K,OA ?o޻7}cgۿB?hiذa4sLZzItlM YdLKkaزD(>m |Tarq+7>7'r@F]Kd)GrӚr@zKS/)Eg%pv2Rm s]nM[#C4('$㋪1)Ur l|_~P|M [g |yu0jڕA|r>ejxä3˗V&hm*OCOnAFbgNo$X|*L=*@OeR\uܬ'Y/H|ɖ;8Q)/P=,)27]/&T_Do,ZJLJ-u-#mSG8);oE:/oYD'&F@0'wAoф{us7B&^3>Jꞙqr\_pUuW0ةetbO;cR=r&Ug >O/|reth8s7#_mQ'(ЩF9 ͽ M]IKaU'ߋr)I1:ԨCW7(9mh ߼.OnswM/m S~~++ҊզfX[T.\9i j6Oms|9}|k1*ܦ'4#kK%_&|;rΝђ?o _|Ut,jй @a_T*6 24g>^u/ldmɴh i=룏[T;Ĝ.P̒dm+TԟIvؘ?|aȁiC4j܀-i=+cd@=Ce,0=4]93X.-~!_K,wz̨5υ^ =7hP~<-gL |)z V ݏv>4Co C(\|\v?fK'|@- 8lǝ2nXAcF Ej-z_6#+yrgXM |M|_VԬL3B9|_585 YOv'f|gu(!`yV>gc,}f,x^V]A/+Fq|/,0ûU|Tޘqv3*8s >My?]_UTSBEJ)JZMߦIa{L'$> ~a˥IocKiyk|qI[&ΐNF{/;DA*U`z`s\PrzĪEr+2M}Mu_rG&ߺ?-||=@EsQ:)c4û/K3^9#u({iW=}ʧhGл[һӻg|vr ע X6 2N_GԻ]J;^ >?_}Ϡ]2!/&QwȐn; 7LMe|ʋ|42 1C6Vem[z,m?D'< 9⃴y5w!$4c[=DM#nIQ',zYWO+ӎ5go[篩ChOq̮ |dxOS=FUi-m^p{k[c{5y+r7uT*K}A*uaU)>  C[V__|Ӷ]χO?B9u&툇Me4t8D+@Fm+C$k7,MC3|n g%W5`HV4ᗛ6<_YYE~jӮNpeF,Q.ʰ!9t(hliLvw5D^Qf1(+*٠&R|UmLTЯir#+2p%`o\|0*Q:D+.?pDiϪeu||=TԬPOt'&Jf?|}J2PoBPG BU٧n۹p%#3NL067(bzTSBB&(7ў6@URlNgSFm|vw7ߺoʕor864ґy٤@Rc՝[dRކ{ MtͯaL[Z39F@g!5A`?%?oL|uZnq=; |2 d;%qY3N?~o108v88[zGi8Sc~V^XwzIZP`Hb; ;7{uXjd5:;; ʠm *0>I{g|MZ} Mf(ӏajfxZ >J%y_ |֭ VY:JJgsK:q NgczV+> yI>T6>;5d8|:`O('i^dzrgY,/6En3|6|7<1x]s4n!mʵ;`H05:mrhAwpQ Ai.[MsFC'Sg | ]w|P|@Jo#O3A_4q[Z[g 9uFRg3X>[^Rs˳#OR-g\G.U JWeaNK8l1KDܴ;ו4o7[&Wzz?-:#~@w,]v?I)% J}}C.h+HX=aPUX=ksL/p' ⤋ .Ū20d{0v>:LWV;vij+;V>6@misEW|}K=^Oal7E_~֧U#f 6=;c/ Q׮tҬѡ,ps/(pEu4e>P[s=\w&lk>2B|a|:2pGG+7/_>]bzg;4m3W'Ctt9yĹ`*Z:츖T"&Me |[08ρFᤴW ,,$)+ R UVpmгꬴeL_>=?Y0֪u3͇,6ھ{g7-*0psGWFѲhΣηޮ |ǧi@` v{:S?}kЇkl0)RwkfC1Sm gP眎"K6p\PD"y)v@ŧu*QAw61T7nPUض~T5*cxS W_АJIc(+A탣\Z&:(3鲻& ]tvv orǡwͤ9^u]5gf#!I|LھgrOΕv3vb3bXmQ@UPH=jA\ JB{QY툣DGަÛ\c> st% iZnaSY-tߞ+ge.>ٯ =3Dm׶]$^c>>T4rK'YnE's ϑgYW೼U B|@I`++]|6w|E{gCn ?gg | ,wzĨl~ |6sz |x6`5:;; ʠmk%hiN?J|=+JʦMe|hCm|%mH>' PZ>rZD1W~gl izzg |_A|; D>YkAYnQ b/8ZƔ?gChLŰ\n:/ILJ TZse=y&nChz-/ԯhzkq c l |t)SO=E\rI(-ZzW~+::óP>N$ TPAwS~y")2럲>XӇЙ ,sAiȑ`rJ:c" (J %( ̶l|kv3YV}o(~4g4_E5p*rmBƹG6^{ъ+"wޑ΍ >]-q@(Q!WQB' BN؝I5:iwëJǔ)cS>3 >5Jpthp!Wp\PM1FB"i|{1yuYt7ӕW^YPPEʳyVdzb: .rԑ/吏/RTiU(7J'<Y3[STyTStWwZ[ 7:B [lA/3}OzG>D:sO>t '@ӟ"OLVEIS"6ŠvȠ kl4 6iOgRx^JJiWK;! 0l B{'GKOCЇ}JN cЩ|aϔvXam(MPjF^| (ކ'9p* !h1YON_s_ :t(}hG¶/þ{P,4ƒ*mf"hRH’oZ.,ɫB5A'.Ikr x k+WJ|Ltdq]_ݹEIksPp(F@8kiڴij*g?Nu{|IwpԜ\>_ǧ91ӹ1EIK2@U*LfA-y;^4^)5p?T4@tx}˗/'>=.^ ‚(6(,T..6|NίsK3G*òlv+ p4f8X[n P>r`trΊioYAYn5>˝^3J^P_^>r`trΊioYAYn5>˝^3J|6lK/q1chFɥaC AYnAMO(Umw;NS:z?3Gtڹ @ tz^>˝Ƈ'N*,* pO|M|`s)SW`WVjI@i$qZ6c =?m2p;'x0'_t >ޞYfRye @`I{yg |jӇЙ4ZFoBډ2L}sstYUG~u ]2N-G&L |";.Q!k;v iP+]f+U]5謴++iŊr_Zey8,IYs>gȇp,_*]ؙ^+*Wc;N[w_On̠ /쨽W^6_d`wvYi>^Y WC;@sÌ|:[CRνOa8&%%@ͅ>˫"n^*U)/jޠUTiwqwu҂5?yPzy"Gg_WXYݤ|g\Q]V^اK_O}*\8KȃAWi = [St5Tu 3@ vC 2MH~@v\!m({u-˖/emNi6n#O9m,_8*JH|UrrqY}Y>NzZ*Yϡ^+<Ĵ2[3)<%DY 5+'%+ k+@5Q|7֮]-&O&qȁǡҷ=z@T*:0IYcz?^l!BkOh)@tC :Cx04Jt ]zCFeJg_[@S'>NEzBZQ=na ˗wsSs+>X7:xP%4Y9 ٮ._(9Ga_IS|*tD(R>`}?yx{ک\=עR5R5 jNu,{tAT`m^{ORΠvɱ98TFN$!}s;(Sa!XvmQ7|uu4Skҡx= 7I?;1nKH#K_Zp ;0Lg/Vm'3~s}G9t|B}#ϼga3]ۇ ^N1ԟ;׭_'d'|0y/lL^-1Iu=v>rS|-K}8?{ ;E=m;>(>mkWN2{2;`qm>(>mdq}8?{N;E=m;>(>mkWN2{2;q!E7`wq4M|6|f͢oJ 5V5yT͕CltIE(h{ 7/cF>}{Ct_&Mg |uղ,~F;nf|*>ͦ5ىfiA*WY,[dk_ػ \;;X֦wѸ!kN_]@<'Xȓt|*Zy]#l+sPAYXUgE0$WT_a{@,Y*U,Z'f~ _T5>^V7N_[F-]CW0;NapM >Rw|mٻsHMi{=O+A#i'/r@P|z % C^R u9^,γ `[GKh4||uW 7e494ae7\CCI}t=o ~Q~È;O_ˀGak}ԿxIKQ}R>=SQØ ϣ :5h/Lm׾Em/tAPS={hytkttH|~/ žJ۩wsX}ԕ $=E}J>EPQW&SWQ;J&ZYC3MLɇCǍCx.]J m'|4 ڰaCd*>#-ij Gjq Q3\QKZf |rC_^'$ί9ԩgjUxT|n%85ڹE@ŧj 9gT';߫Wg ? 6?{Bphڵ >n- ug)YPqX}3Mj4&^«2>o8 }I龞s:-\ЌO疠zE;;G"ܢ<*\C*\~ ^T; Y>S~gEzf_ϞB)םLa==#ρTg~-F4SԔ[cאTym6bؔvpm{cC9L\{b(pM?>Tv_@k6O5ͿǴbŊ@g3Щ9=' YrfBޚ`;+WC_.;o;G9Wg $>?LP;͊ШY(?r#3爒_Xy[[~g |u}YPtI36Me==>/J>˝^s} ,N>˝*}.wg5:;; ʠmk%Vŏ_8!(6JE΁>s6,iKYn`_22g>rƿOrJJ2`iѴ,KXҞrvCoՒhExNZ&G]H=54>rkvKs~~<.9ee} F漥'GJ-7-7yZA4O$>a eߌ:HyM:_Ig{ADoL/dEjmhdI](۽ݭkۢYK|IDWBó9ϙ^gOsXYn_z8/(|\BU|'= VYG 9{(|^aMyk|a^ |O0=wR|3>;HD`xգ"oS^nV'Yg֛:j?:{+In Q @2Rox~ ~-gYvoQ4$7oղI|ńY_)%ܸS \5b:L/ c`a+L heeM.k~yk1دP|U/:d|  ‡[;^Zϝ[|Ʃz#/q*AW G~N`{@ 4&;q?RLϗb)CT VLN߯,z1|abd_)~N8ݳ4N}6}w.:喙~~::IEQ~P'l'\yp_UU_{jUQK. 2*^Qx⫖.3DcF7Ks-rNo _n!q  L-jz^MrϪ<(9&p= >~/~O}>y:/rz3Ɨ3|T5' B8R z,!zULo[;"a9{am{#:7BnGneߨYy@Whi/no&2SS;ULpqchip 0 c04e{O(HY3do gHkֽM J|U5^'v!-sR`l'O^kݺ[չ%D@Z*rgVQrog=|,x=[O |ɐ|w~D _܇S+(m4xFiwέ {֪bwD8S 9M|Xfc7hGֵh.֭_Mk|u1F|_[,;(S{h5d_ϩWgϖP|g _ܕLcu@Yh^ Bl,/$P^N ijxN@y|;=TbTb6?>r9=@e5:;; ʠm V-Kf^D n|-0j~P( kvKs~~<.>ۺ8AVZGC%0yhk7.3xC. `vV|,( =67m^cZ|Z>-7-7yZA4O$g!eFRme~ueFi[`$FV|?Fo߲g+?Jv9Nlf}/YvNUԑ&__O]|AkVy>F0>m z1=Il ⱼ=Qy -_t YY:bruT0EY^]]ȶ׹=j3rҔ=Э-V||0r'F/R*@1 %$*WgwV,0 K_iMC:t\<;t떙|-_ ֊ʒ{F_)~N8ݳ4N}6}w.:喙5-Ki {VTMYhra+AF]Y|P^EWQ&\qgo_w(>MlI+5_7Ѕh]XiL(5@w|'A WB_Ԧs9섉I/>KdciW#o)qQFuuuw7Hm- z-2()0ePrli܀P3!N7ZHOo3P1uQBU_B(nm*(aN~B0o gHkֽM J|nG #:mSC~a~׸Xxȶ-nՅR#Hg:vImC]"|k[+fG|B:TI;P|@|UZ6e(#c~n4xFiw@+Z_wQK]uZpkwi:88Τ{I+_  -M ް ߣU/A[ݛ[~5VY9j,SKߵۋT|d4|nx*k8 q|Hd>{#)o/~ޜu-qQC;dI♲j8QbS uzKr DgLLPCtUJüw<~!B%1{w|j3YCf mZ: Lh 888՝`vV 1x S{]X7kA%|Q5FͼWU_H11ϤU>Qt 8pkӿWϘ͙wn0( W5 o}psV+OZ biێ,1DXx&㍴Ai>S:^#ϖ||_+{7 |<ԙDB"1& )d>sSaTVaL C++Z# i_YLiKJ ,<<v_ `?+| ^EKF?嶧e|,(3䇴򙾴5fZ ?NfCޓqQ7wF 譝t-;r|asцiQ a D߂~@B=-+>$ȴtPGO\-l [2OUh\ϴk2*k}9|;=TWV(qКBoM_ zA< l0*aˊE>"s:sFj5QCEKF:'˃9@b^D]ի EmVQYFsO95*J^Y7-[pɳiwRl6$x(g%4l%vӈkfW5m`$)ЬVO(DwGi@ oAvܿ>h 6mMOȾ D6,B# +Uz~t_~N8ݳ4N}6}w.:喙5-KT]o\M_5] Sdtz,crL]5(3`yMCM D}Q,ZV>m |Øһ/ +’}k{7t!ڪP(+ h)A~XBW} JrVB&|,y/U J73Fuuuw7Hm-W(@aV'==+mdn&}jSS`n*J$egrPr>(Y e/y^uU;os>KgO$1c.}#Y6M7f,z* ~[|VOQ;0kl DTMtWh8I_iA IUcG <; g󳟠?O8iҿ9=sss=jU|m툱K>>E7ѓl)un3nXJ7tU~mn~WV6 uWSahŚ%_U_jS\`SקO2$T}5)>]ck Q)1社-WSBB,1ES=:7x'hue:> KmT*MIU01|z;#?%6Cx/"e&~$Ni|*eJuvv6m6u:`k+g;Q)/,V4A6l>˝*G*-e lմ3Qul-Kۊ/nj=8hDzŖ|$ RVziٲҲaۦM[wo߁ e6|'-L|O{6nI[Cnoضv}b۴e6A(#Q066m-k=z;M>VYG6s_[v&Ȯ2hw|}T|u@Δφo#lJƍ;36tPC~Z}j |= |PnO^|u+qJŷq3mFSL6s[o;ʠm lY'PgZyP 2F?DU1 e6@2/cɃoNfSEo.#F+~ѺUiO:9kYZ|8 aǃQϵqmԽPu<60`XzItd)ޛ7S+s9 ?~o" m5AYR}4sʐG}Wsys|*K{Ux Rv2={E6ںQaWKQdW^.:&3,v2!~A 8sŗrՖ CY4(6Pp*;SW>([6ryj$=( YWiZ XJ2qm۸n4Hth5k-^Jw>p Bp t{~?im+V3`aPѷR9\9osz~_6:ӹψ<_Sܫ*+齏73=3mrQ'٫# ^A%bH=c)P-ڐg,罘k*ty`Oua{ztI'\jN9ao|&Mb tJ`UR_ue` (pxнLsYQ|!Lq]xqB]bJmxo:?Y(@dj w >GB8$:B+FGWгruC)[vmu:^-LJ0H7aKvy[LYDU+}??_:4t|OM>c"gsYqsʇ E>*98Ӈs5yBP|r@?5ԹEUIFp&61ٮlEiy2W96Œ;+o~^6CKCMo;-_E!Z۽zSup=F' x3Pghmy8Ǡ6:v9GWxqw/O~ yӹ>Ppm\{ƠP'qv|K~2:~aK-ݐfPSQRШTUVhʈT 7PgC]_x}5 5||ε nrk]{l"?~<-]j:iM461ajc{S:p1?ԫP82d8_vy˓(kLφ}w`n_G߮ڋ S/J}w<}R535mqי$:48x"SG '?J<ܙ[ӽ]lwWzq tgkX׹vZڼy39:i2w]Ģ"mLfRLAۗAo|s?}ӟf3!P'U)Z{:eyaePq` u^|E7o_`[p1}6l~8yE_gAGeUߩ`J*kLJUDg:cK6=gntRe}Y%-;i5W{ζ`R:DϲXO%o&=3N?tmAu=ת/eE^z%р eWzzci׮]V|Ʒ9[W|x^{- >\@oٲen:Q `MPs|@P^o1bz۶m] `ఓӡG/`8@/)8sMÓ2~ eRZ0ptJN?(DP_ʝWW+G X'kŗruzKk=ӥ2>8j:Y>(DP_rR9 rgՔ.Ք^{dm )Q8R/LG>z/.d |Lԑ/ >7SbsXu8j:YL |:=@ իpK |:=@ Aٯ}5` |_mK"(O/N^W5` |_mK"(O/N~V;dmRn_NAy|)wz\obdm u$l(@d L?(>8j:YH?4w;uzC:>8j:YRUO6'DPŗrdmKӳQ ɪT/Y<>/6Qrz<d >(G X'k_ʝ yNV|:=@z::Tl6J TUnv>pU5` |:ԡ vm (W/Y<_OL90*tT ߧ+Cq^j0JEWID\>UK\E6=!QڀUP0qBL|@I(FJ҉KUWt_plY`j2uz3SpXE9q`1Uu(ՠ|yԢr`WBP!gJ.4N=/ whQa`@d{7:i'DP_P9u# %GA% W |pԀu69!ISzR\Qt -츸N*=|P>iPNK"(ԃ.gPY5.{|pԀu6%0l(m/Y< >@ /6Qe ed >”G X'k_ʝ\\ %'A>8j:YtP(VmF #GܹsvAp:Eg gJg{G?/m;dPt_s#r6һiwA7x`Cg:";wDsw4 ͛7Sgg'M:UTQFl(@l=^y]ܴiç ۷t^yD;6ly6.:k.8TT*ʦ2 >Re xP{<"_{;p`F`|㕍o56l6 러ir& l Ţ?IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/figures/commit-tasktab.png0000644000000000000000000014615614023111777021473 0ustar00rootrootPNG  IHDR _sRGBgAMA a pHYsttfxtEXtSoftwareGreenshot XnIDATx^[y;/y{^$@(}b'9^Wbu$XHJ)-+EDzy2%dQF2)^$+p F~!ERkw޵kWծo֪tվ|k̙3 1@ 1@ 1@ 1@ LO 03،5cM 1@ 1@ 1@ !2#b b b )Д 8&L 1@ 1@ 1@ ! b b b ,BS6X`,01@ 1@ 1@ 1@ BX`b b b b@Mـc1@ 1@ 1@ 1i!ҁCjl0h] HlJ_ꫯVl 37dڲy{1@ ĀZ_޵c21}tZ:|\{m$ K/_{ѣGo0*|sC691@ dŀ{gxwǘ wL`>\τ{ 6C D}WǏWo:w[ !BhX o1@ ?ߵc21p>BqB @4@\ T !rpIt/n:򱠱 }&c%bV |?k?dc3v߿BqBcT P![ogϲ BE =G}7/̓Oo}T7R[x>HxțOs ̇\A$ 0FUPH {R@țawG7mT7?!GvW׾Pz];zzh뎔 i7p1@ 8b'?ONgx0ۼ @QP5BcaYB.gݍFg=m!t_ܧSw&?)kUÙ)j!@#f`db B]x|}Y!H:}b !3##~_ީvyQ/V-e$$Cjf?nؤ>wg3F É• b`1Bè27ON/_N0ۼ,֯Q33mvůUWPkeʭy/޾|>g_K]w{ԿoUzwLH;rPJݪ>}Ȕ]@50Ĉ][ ӑ+ .ض!J9,O I =!^bumS]nPr$HK+}>!dV~%! TBhrUdWsԖ*9J#7B2W^{Bd^:vwϣxP{U/W/\gv!d-[Ruo*xwGb{uoÈ=~#&:|B|ls>u`٢ [t)V_pCqɉ˹555՗s3A}>T;Mr {Fdjv}o*uvjnYpiZ]^ՃLGۺN/DMU"N8nQΣޒ-:>xK\"ע7v:"U.[>hE;~Vwcț+>W?S/<>﨟;;#>0c0|X>T{c~='>/?xKo\~ܸsxپJ=jCTZ1_xN=R~xCy/8M8SM Ӄ 'l Խp?l93 y_͘h3ߒcupϣ:ך6T;,xʮ{D3qݿN_/X1]|abo) &x>9pDz͜[5ddr)k+/.?6nrƶNl[L)ϔ1-idOoX^6-BAO`B}>hɝcJ{qUiyͣBffi K.}Z@"/ޮ};omwr2M~ Wuiueӗ>5&׭E!ޫ>}\mq0*n۾NNrܫc.}±ouV8^j4V2y^,㗉tLjSrΰO{ D >|q?K)ȈV亮:|Y|Qc]ª'NJqXrl*֫qin]9f/6^Ѿ}V\/]VZQY"2iƱw^q\N *Ǵ/vVv~O}A.ט=5t!~_D| !q3}LVd$Bd_L{ C+7a՛} p֍n/Gth_q 1>!Q $m;_mԻ?g}lH;rɕ1IgTw+;6-8rǸTT߉!ӎT=gS<rnXslӈicG/`>9̫^k#z/.-;`l>J rK?_gm%n{廾}:_^k=/^3kk`?w_tfx[>*|a}^賿ty\~ Tك[7CHg9.=~r-ŠFMni_|Q5{qeRz6|ʹHsz$>jOEBF])Q2c)# yt'_Gܫ۠ycOѺCw/|ZIy!0,vn|5/X|8{k8cRvl2m@N\_Zm8_ {O:h䘲EcZ@s=Sg{Cgu<9}?l }z\k\zɼ>o937=}3ƵfsTƲ:s4<9ȹRִ?6!}]˭fUC<~\Fc'uӏ2~N]_k8 wocWVɞc?>f_[?ɠ_||s=濼O YCȮ_ʼ}чG]+QBs{fˎrcy_:cާOʔ^ӎF)[26VCkS|F\ԗFڔyq+\B Ll ؟;) :, 봒/m/pR> \ո|+Kaיyrmofk!}\_:;u=_e\Nf֑% CVc}fL@3E2V}/:S_o?ڡ>ɻR_]}l\{]IvHݙ6ՑOZq(vzo Q=׽BI?ou1^5OasՏd1xAa"#iqT~1@ t!J{D)c2>s$RKbn|Bzկ5cq}GהF$cׇ&'<5sL>FRF6|k]'2C5zB¾N.sIgȻ15Ŏu;?CDo|l>)ޢ*ZĹm!oَTB]jkB,m!tnr${W?{ۯGBHH=mɠGG}sϥʑrCmqE})?J'<b}k+ON/)|<:CqBU tl !p/$CD+vءd{m}Wަ'Hm{O=~O_2>{կ[H;"xncWt :$"fțBաCkE JmxFifSO+IR~[`"B >8 bN _ɉx>qrk@;K T!{c$͵^:u-fڤ<)W/BUTr#1@ >|3a^1&!8B^;Y@&fB "443ǖ4g3y⡩MʓrjJlQNs$b1~õpڏ1||}1zi!tl0hm H"{S6N|}B)E9IBX’ nĀ_ڏ1a>zN QޠQיRû !~/`G 1@ ck]ەԼk?dxc͋{>&b b b Bb b b b@Mـc|2ތ71@ 1@ 1@ k!01@ 1@ 1@ 1@ (2b b b b`b!4eN 1@ 1@ 1@ 1Bab b b b`b!4e1@ 1@ 1@ @җWl0 b`<1PU[=ff|9VT[׭V3k~0t̥붎AV2n29n!&xz+{ W>M?s&kmZ5z:~FtF5mz\R#9w\䘛vTl@Ɗkሶ W/­ [שr/N/A0"!! 'fdxo}6Bцqh {s|Z%:h.{DB. ƿQ}|PVWB R"BBI=Wk7-0}ؐ+0~|3sj\< t{ l[4L^ &l,">$f~1N&ce勧>V­F܌b2M7ԩ;uXoNLnz'/=O=Kg5}>7]^5,KRcpE*bضC+x32BBgǾ~?xBz[|޾XMBSz&uk [ƽtwŕ lTtѝJ^_4WWߍٛ C=F3w/Me6\X迡*W8$f|Л&_S4bye=tV KOje۾LsR|>3e,dM/F*S1μ% Ƽƿ;5i^<N;w^Lf2 cQ''&F~ns귭~^'q 挋7ۻ>5]-&(m_˂t1i\1K˽.z.{qcy̎.9ǶF={ӕ)c]ϞRwxVo[_x$2 !T9u΍z5qTxW2!7\py2f _M:I!d bM~ؗ (B엓"˦ N}= Cd*Z*ڐ'H}s^P۶).Y,ZND_ sӡE#\>*[ZSF:\bK ssTqt,'lt&#\*3-5U$W6s+d>B㒊9vV<\\˾r(Nq\!y?|6zȈTE%2YĞX9<)/By=*wL91s);(frkS{ c睉 eSB-2? P}Հn# }mg 7o뜛gjZ۱1ًs'd>"h`uUki~7ZoFs u%KǑM뢋88Ӽ|"zt~=oBD`HlIXUP}vO ۩k1@%_%C>9Sҗ PrR!T=wd ePLkB'y]o\B!P!~҆s%~Z5L ^'n/nXsfeBNvl"RYNe"3zHݞ@JB-&Υ}(åc&ouqϻ $ָ<B-B"M~ϩ:dEP==mRX9߄TѮ /,ro=Bw1HB'|R )s4Zo6|7Rgz>V70!]Ch(˓T%Cd 2+#dSyBQsroScSf-Ͳ}),&sۙy_HeeoR3FX%sSvSRʼsYNԯ >KX$CtnЛ:WGܶ)qϾwjȸDpNP#p1Υ/!(;4frw]Ӯϻ/ٗ(-5BH.<1]26!T5j6?e.F !%yzD҄ !="g]Q !|H"qR,0N덳}㑎`!3'L?rWʊoۼސiBvMcݝ`~ϹJ1's!TeV!Po\B!;%6ڛs%;6!T !=3'V@5p.c@١1B~Ҫs ރ5B- +Bn@6G5)zf(C~u]PlYHy}R+vӇ<ҬI ! *J&o__|㞋>d+k}~᛾Ȟ0w c:Q㥼__i4;!G &,i[H<;,5 78=8)+VCSofgϏmP99u9}j˯7&MKy}k$KZ~ݦs8䋪.Ȟ> z[ƛC~gգU1"e2VUx:mO5ݔ2'mlؔ1b9`uZw8B/⭶27r3{|n8o -Wf 8egnDs֗Z]>) i{0K}vj^:c}O7Y4''3)y V9'  TrsF8ւYO6HIyorj sl#(gRu s[8_\ݔ$}oC, Y !S]ؤJs#b\6DH.k/>΍^-coSlTB5aRi09L|nfc?Όkq[O:ϋUtWRƸJCBG7yginBPA&*$CȖ mQW[}ӣ("{,9H4%5vuEM*(/>˦-5)myϨ0}mcVg:dconC~ Υj٨x 42UimwՅ?8BՇAnӉ ϩ/>OH&! B!sn9#6}neO_PVʱlcXPM1uBʙ}Bk<ꖍP^lVB: kj*Jq_: "܌ _߷V#`ϼkFVo<~=oUwhMNJuןfL~&CB!-~.΂E8!%7iJYX}97>oԭ<7ç% /{>_OiBuCvoh;L 1@ @cJnfice뤘yFwBH[|+Ί2"/D@YEF{WFRuLq+H X43Av-bd2OBύ>cJg8&cU6p$>t̙icoS_1)ۜ*~t qT>7C.>>a6l{,dXFBeoc[]&:vuwR@ i$yW_U'OTONm>#?{:w:~2B3o(we3~k߷~Qgo͖_=>z>FrhuM/ev[(SSڦ﵅MdGZ0 $O4L`,4!-~Yfs)W6^,PV]BȑGVWN!蓛B 0pJ!Lyܨzn 1"B0̆ԉ$Z#tB%̉nBmjJ2]G B3Ub!bg e3U"QtFYHDPzLIYo ;=el=d*T:ew}6h_x]6Ի㺉s'rw92IM6S_i猟;YGꩨzw̘I4eF5iJ tB{cJRBBN@gՕߑ'BGo봯X _֖Y'EM+eTB+@ P@!Dxt@O _&i( @$%mPО.)3#]2 ,C1|R% @C!49cEKkBϟW/^T6;W=pm_gy]@@ :8t&P1C{}O'oF;MZOc.ƫ9z&|9z] @C!DXt@L;ވD_Es٤ 61~+=@@QCB72… 69V`1@ 1j @8 A:GHuB7RzO~}hsFayڸAЖG@B(* 1@ ǀߒ!4O\ @` &khmeB?|ҥzrlOmߩٱKoWvCǟx'͘gͧqw)w?F/QUtz[Ώw^q~MɈ+yEU@BhZFzj>!c|_22/;wۮ=#G^VǎSnߑ:ڔ7OR߽ɡh=ik߻~.~ t77~3Bv{뵦VtrcZ,:GxV&,:@@P!^pBi_/}W^UǏWza׮2Po %$Bb!4H;h p|&2I>B N!@.pR !cџ={V;wNc/jYV 2JKL AVG^~EoGU'NPNRR}{BHhdB.s)6)fRTd}+7~gIs'/ ևAp<8/:Ɯߒ!4a@@[ :2!Bbbl!$1 2"Hdا'Oj$Ǽҁko[P?5o^}?h}J"^Y߇AϱpϋL#SkIF5iJ1 tB{cJRZ)D *2Jhܷ[hTd޾뫣Eםˌ\Tozʿ(h1{Oxh0Fx8G`>!CqE@  h=HBH&& H˚A&3Ȭ$|2:٫Vo_}6o4BQfOR$~MG/itoN^ z/|(BUQuqLLO1s~KP? @ ȉ :!tE= ;7lԏҲf. Ytwy-*)>ưĻp[D|VH@A!49BB"tD!ayڻ~dͺA7G !)c$-oDB:ի 7np7V}0Y~SèXQg&Gt;CyD @,/Z[@1BhաGԱc2FdlrN}>zM =o#!4:EBo=-ua[z]6[?Uu1eIV9?B#˹.ʟ@@MHOm?['d #z'Գwvҏ&k41 7QBRFd"N2>B'kN9^L 7G-$Ƃ"C PF!TF'@+,mYʿr1Iۙ+@㵉j$񥭓u>0^/Є|@K!4\>vBxHA6)cb_2/^W&ʹur⋱brb!4`@@ <:BkW^yeYJ=u*JO4VgWmj#psQYo}K_^߷k@ $aNJɣ:Z8Zfn|]*ocx z&q[yEM>} @ B(;N&V !A(7' s:SacwI;eV~BN!@2АS NC6iq @@P&v\;Z@F0R @]#ڈB 0BSt ?qB}mpႪ!/1 PB>; @B\&Z/n>UݹaڰImzhˣZ !n@B )"ήNzrlOmߩٱKoWvCǟxb0!4 踥ǎ밅b??2K9?$P@ PS$)&J=cz۵gAuرc;Br#o~Doُ #ʨu. !i9o/BsCJ @hB b#D=E{Kjz;pzWk^صk0!e !ZcjZ-JBc U[J @` &xhz!teoON.={V;wN{0d:@$$3HdCՑ_ѣGՉ'ԩStߜ;L2B&'ce2 ̔4)dm5YEm?$&eX~9&1Z@M!u!$1 2"Hdا'Oj$F꥗4#L)yBicgUiyka[e !.].jY `_KFt`h @%/j: *BzDLSW^Pcݛ= GX,_KFt`h @%/j:B41Y@Z 2Af fF12YGܛ BM;vce&q[z M @}BZ(/~Q]uUz?oT_ҒFcvD$)1Ad@k5Ba>Spv PB.9 @B^:TQP_Wߨo_yzᇵ zD nb LФ @`$B#L%#6>AqZ^^V["D4{˕AC~3jB @!¢6RN ;5:ΝAh Pk@ &6mɴ0 !tiƂ"!Bh,ة @}h߀ʄd)d B !BMA[ @h Pk BGUNd=)cJ 0r#B@&BhF6@'N(ld5ġ PB,v @`z gFIvYZNMdPBqS:t@e8 i Q>!$S|Ȉ_ { !;.\ɱ@@P' @` lFIjB}*ܰQmXޤ6nzP=Q02=@gǑ tBÃKׄBuq"2Swgvjj#'LEDfme A"mXCT "r.1کxAuj8  @M@5ErZJ!9MmE3y-3eL zf j=]{k~ȑձcԳw &ܥx7BHXV]uVݿB7&jWKG䐰ʄ|P b bV >V>t?9/}W^&^S/5rowYBA$Mc_n!qJnl*{Q&{۾}<~aumbj_[7Jl0 b b$:BEO~CB2ML2Dяj).ΫSht7Awzb_ϫ/ׇ)!!.⸐'b b0G<{C\)4Bh&whyf}3)OaYҥKQбP;DWN9lM-ʲ 2!ΪBv2 j,MIҶ* z;ޡ>VBɓ7/e$#41B"daHP5R|LuoܩHf!h7]CWYٞ-,kk\u)"/>Pu-o( m$Ưg$\PB _U^[I2g8٫v&gW;S'|oڴI>6H++;նgw{ X?b bh$\!m+LIBmyT=; vGd5d|W񎦓BقĬΔWɾ1򔱲 !),_&f$4)ANjںaVmm;*%PW2~R!B 1@ 1t B~>/??IB"xn!Tz4!;Fl @]!$ _ uםwJF`2yKFjM_Q1E 1@ Ê[/򗿬{k%CR&VةE5K@ !!++곟ZyfB@‰r('b Ā-~7~C|nSO=dgE-4ُoQh  nuf~wWP:HL³+X&b ×gd>B}uC`!dKśnR6l!$kzjǎd _~=%,{L66H>\M3Ym6u[ouj|;kqj$b b@N͕A#n>Uݹao!b 0LJq7hȠ'=۞=x.m_٭vޫ?daǣ $"3ֶg6g)`+m~O U+lpCbn8z 2u61@ 1@ @H eEU2f gvvܣߵWoW_:yY?h΁-NDoO)+CrNQM; !k_YzBK7]Lkt)#ѩB\:3b b ;j !y, -k nӧuvйsS\.[rBSƊ2|А5s\QeO)s$RϤcR, FSG# 3Ɵ b b`1PYݹa~;-oD&&BHdl"rUtW$8y=dQiұrr9w2(˾^dksn1("ңB~qP'B7 n1@ 10)1PY=QOgP/ڥ-/OM ib$2x4uBH!Xw3e]٬y[d7e !c1uI$ǻn nn קi:~E1ZB6\D 6!m b @e!d_]w]kotֱiwi Q}qA!Ί1@ 1@ Lb TB"vno[h a@ Lz:`qv/li3qK 1@ @ oMg:GG .hJ}UwyXE:tH=z{"lɾ۷/eITj={]^xA=jeeEرC=[~ܭj91@ 10>!ԅEt@SBHd͛jZT9r$U'Dq-Hl٢|AqF'?Ic}{5~v!}$2H$Ç&< f߷mAF}0COT˰!j}b b`b!J:L"&?!$BCdUf 'ںuIXG?RKKKjÆ d{"O$e{: EMHDKZI&SO=~:ZC+GRۆ[u߾G|?jBڙ5mkpuZYm-/gh3gPVxU[jf14)ig9#1@M"m:M`!dIV=ܣ;[$ChBH%B{^#BH#YA".Pg(ݻwk+{*]6E2lǢL:BT<}߽wszL6>z!ujf?Mt"d5~Sc 0&b51m%& BL!7"6@@;u-6[y"I}裏>Inv-$CԩSz*uJ"B"RnHDP Y3gSD؛5TGme=58_-|Z6+,q !TI?d)2kVZnkʹþ21@ 10@M"m:M`!dg,!WDlMe}Z[[!DLz衇RF)^R)$Tc$/kɚ>I)c$td#_>-ԥdj7vP<(~&q^[L 2fMa2FV~{CdG r}}HOK3ӪzqәrSV9m-jc^6'E[ckkYH}a?Ɔ bn  7uAh B0)b2 \ۿ[o|#IPy"D2Bt2!8u'{lc2D@I"dE C!} L7i[U7.=nzgxZBQvQ喿UZjT2[t8"=y/IzόB)Kə-+-@tT1>L2}r팦6d*nsQ<'&&=}b &+* Omwnب6,oR7=H@ B2=ibBRd҈$bHDM6i2ǓO>)&V!:qℒc7A#ŗOG۩ԟe.myB 6:Z$ȲsQO )GxrP/jSW|&-\lDܩh_^_0977Mm.jW4[\d ɺ9ه1%b`czrlOmߩٱKoWv%UzW2}~Xj[KwK-ݿwrP"yBzgS%ED#kFTȤ#GL#ޫd:e2K}CBy^i)ȣox#{Rۣ/TdoF >[T?_KiꋝxaSlb?i,ӡJ{#}֯Kߢ=>Zn}֯]F[z $')#TL|3LdQfg!6Lr[w\Ԯ {|1ݻ=cb L AVG^~Eor+fqϽ7'|wgɠI${*g w&S~ޝiOw3ؤɺ@FI+J"$ J?bow wx2V6u,#1!r\>q2feQq\P{!F~.S d\bB _UAFk `^P*ARԑ.䇴7̓`#_K!tcoMS僱LT)-ȴ;w*ɔ1F&HDda$hiiIKQ9!f盧s:643.ci6X7b}za.%&k41 tϴgZ: @@ D?^]xQɿHy;?K!:!M}r3\ XT*BZz8XD2쓛_-E0>2"/9W"Ǘ)E}dnۿɖ' d@ 0>eBȠw=)4!tUgMj 0aStH$'{ a( e_h5)M9 PJr1SWJhqR=Ji!i1O[ͅ @`  si wC/_]2ٳǏϼfq2 #RGdwWݹaڰImzhˣG3]*6!NmSPbeBdg%7 +=ꏞdJDH&;*TxԯoJ,姲JdN&%|mtZY @`<-~)Ag?1t&2Swgvjj#'LE0cm!c3p cvR L8-&_<;լ0H Y0AmRޔA2/]d:OAjg=: iOZ @  ![گO[+P \򕯨śnH gvvܣߵWoW_:yY;vL=}`B;K*" +) $|L{dK @`=e̷Ȟ2&JzA2EL$A'O2HlK/hFaS$Qb$=HEeBHʰ%?}6win!m+4R[V&|%?Hml$۔$ CU_B 8B6*2!7;-L[ʸW3y[_ӣmj(ˍ3+!OF{(QFqR @&@Yʿ!Ԗa[J(J} L$nEffF͘m͢:p@fhe,VsE-,Ψ9D/ @O@ГO>~o9}_W&[ZZRC?C3Bh7 &(R:O`P6hqM-j^-;YB`ВfV-PA@ ׾֓A"Ν;Μ==:|v!/zמ=+-{^-޴" LB+sjHy9H~ @ 0 2AG2 泥{TlwU;_IjO|Dg!!b# )B!SdXtlA^TP@ Ϟ=דAǎPl?Km߾~zz'lQ۶mGg'@-"-!'43F-.*- $C @ @` k- . !v*5]WH:&?vPޔc@ @`: c% /U2! && @BhFBtAȠ!8 @BhZG~CLlkSzn !BT1N@ i$Q/IF1 @@Bh 0BS. @%"& L1IBz-%G:#)V!ݴe ) b$+2& !BO _%!i7UP:k%%ÅP x + dm%{*M^JM!~xg//e?@@   T)c~ dqeo@ӏNMS} !tɿqM)4&pֲ)^eo6Sݿpf +W )y=o]V}T _!dskԪ?OyzB~+TUޘE>v}?eW9ߠݾg?@C!4=cMO!dLb t!l=ū4Okz)YP3'$>SCLP)&-'%xKM?8u.:s2VCL!4ͣO!' @@Mm@B!D@ @`: s5 M!D @ @`: s5 1@ )&" @ 0B9&!<]Q_ܕ^M[ͿU9q_׌1n72؉썁م(b$YjkT%'H~|2J;{H= 22B@!՚ dKnTJ[,%(+B@t A}kf WhI7yB(Œg_9cB!'#tO8B=ruE>.9ebH^ Bhĩ@tA-n,f2e7sēdl,a2sHn4 xϴoГcsz>EB(qՒ!oL6oP-:? u|y",4 `@ xؚ0W,&0DYܰBei=8kڌD%?5μx8l)yK%tܴӂ $G=޼edڟ_,B!6V^ޜ)OԸ{G2+_)ڸIF#SE!@f8R  $0BHRjU?}9+B]ӯoF YLII7'_/ˍ yl/۩/Sg'7vDܟԺt~AhecnK[/~J!d5ȭ':=3gWj&u- i)?md=%{ |84:E!ԩ3x!Uj9YDzy~U$0֨J/Kē$7k#O2 =C;]䆽 E &/[x-).N׋b} !ƾHQ.4Rms BE8\ ||A%;++?whBdNYqoh  Bht)@ L:d2Eidz(JolQ6%ēscZOf嵳V2yV䟖V۞8, SS:SƤlKJ)ma׼)cey}/?Gze!oJ! WƂ!@C"X 0 !\DkyoЍ(!"م a߰{o›!qn !;,C:By]/ĊK8y )L!B(fe}FtA,oSW$Qyn !@ 0Ch3B"fMO~7 Lq([T܌2Z…PaBr/a>&=Mp0k=j>ud@IJ3\!W1C(n|%!B}_͟ BhZF~B%AOKe  Q70eB'=iwvS W2gae]]ع$}<Ůpz> @%/j 0V]B̻+VrC?dԾA$yTz-s...7zOYOrɣT I?_+Sia kt|L3kByc@9$t䰬4qRLP  @-$j$@"0B>=%*5#a7nK'{>|pcVW K/_pbR!@F!4i#F{!4HsB(BN bnE\M/#7CH!dSОQ|Bl)QZ2FeJ쓞>>ZYӗz|br}W(| eOIt=Piղ⣼} Q @ !D@b]B̪yJd= tO7B:ʙ2fg@~ReMz37)ϺJ OfI2eN$97RdUr1f䌅o?MJf63+\ƃ-SQYy;ъ'o9T!dU<%w֐jVu@K!DL@bBjM$B|A P!$7ӳԱ9Y( gJ7k3mlBjM}YβdTB1oZk_h ?t4M+X&23+3Bh?: Bh @tIePnzK-ɨȑTPhPN;˄)^qRçՑr&)p|RkHU[{|yeP?'Wpa}!m`o!Ԯ Z@%3@#U˙Ťb֯m_;ߋD"FOMާSgؕ://>rW^{@ N!Ί=!t@7PyvP &I y 1{(ŽϝrT&ݳPJO!ԗE3f'Y4T Uck!$J ϠÎ>_lfeVP~җԎ)E=k`YcQu-AJ!4VT@`!N3\!4^=(eM,wZw`4̲PbzX!^  Bhxl)@ Z?D 70Q W4qor%?U!4Sb!@B@W : !O +BB B( @ut` @J @SL!4Ń?GOttޭiٔ!@hP@-hyw pzYy V@j8h  @wkt1hx~|Yy V@j8h  @wkK e*Zpxq p!@hP@-nE&zґ<(VR6-&f}sj~$dYt9 +$5+ό< |V˽Hyyr|7s|Q1OtJ귣JsT X/ZlO%787]v5j)Yc[X1̯#}-F㛔Sv)+#}_Ƈ!@)HqS v|!#*Y7hYnWͫ!d1ډIL #u\y t}qF6i_5;kmi .-z$$}T,DɟPBZP)B tU][FGs @@ !y|"zY1G΋,;enCo;T0-nPienL{2"|8y:aB(sB(|3k(BOꭵ ]MC&BhBh@7Hiv!`g(|Vv4/ )?C *V  0Z|mFx$XZ*)?C *V  0Z|muEJW+3eu@ZE!Ԫ1FK!4Zޝ£e\v^^ @UB@`BMm @h P[Fv@S% @Z@!ԂA E!4. @ ՙ3gkTǏPGS/'=NmϨG}\mPvxbt3m&!FO!4z@ 60B… =tq/{&ɧQ=zGDa0i !53lkl10kSKkso\lS_JTgJXRs3J^Eokv/_~qutSR񵎏H9byhcja5sR2# @"#GgϪSNGB'^YBl{UvڭvܥVVvRvmdMMQ@&_2hr"b(XXBC#q!!G˅{MZ$uZȩYQmUoFi!Vv^D[YDТZ,"*@{LK!UwqFD:A`Z5F-Ak"AM#LVq)A'~ !\ft`);#-QB$j !OB+jH -Bx  ÇGS^U'OTONmed]t9PFB! !ђh_NO BQ4)`ZB$CH'3bbg 3J2FګV1$ߊ2$LY @ ]b!@ !@D jM$o)c3$cex2_ʅFQ<ѓ'V\"7e,GB*r/S"#dXKyY:G)eyk9A$Ch< @B@w LtF0QfbyPAg{c{ւ¤l  8II"ϺEQzuY,PIլ8'ˏN38ޕBPed@t@Mx[@)BŪ!uIOHjM{$ Jv켐?;e!$+GTO#C0@ PS$)Z\ex=pIfyN%rdnz|Coj<)L/z7 @D@Mh@2EOAY'T%&vұdPu2%̚R^i«P9?yʄOϔ`T@t@Mk@@P,͓$2=BH[~Nz9ǰkB%!YH&\oZI]In9˲1xMyw[T 8!@l!2§)f@ A@` x: @T@My@` =? @@Mo@a@ $q4PA6[pMYy BEAS BhKkvʆcZ~Yy BEAS BhBPe1eu@ " M 0jQ"ª58Eʆ#%tZȧ@ZD!Ԣ)FM`rвIζF^KUjٳOvE-ZcRoV-_\YcKWl%57.'wEG?Q鵅z^_\KI$oqol|)Yc[je~U>郮-o1ⓔSviy @`B#MUF`"BZ$P",f-,4B"vfB=}]M DhDWDxdG&ymFDi2RGԏ٬xRN|!z-#zv ,m{= L5T?@ТZc$#Ye@&2Bę?)%No EҜĐO Eiad$e3M*Oh!f%"cLRFIV7mmDTB(Ok?o8 V@j8h  hrE#2L-QkweBȒFZ{ E鬠$cG˝~O?&=M^YOي-E2D !7qd˓B>)^HgB2.:ޕqe|Zў@@ա1:BBLĪH"YPbi_MBEJp4޴ W$,O,c3D Xł'OicgcCP2rxxߑ7@@ :=t@1E:V.,p5L66 !E}<;BH2iVESӹzȻOV8Sze%Siceĭ5}^?γt @hP@5N!ɶI=YL J3d:B'BB֢2+IM>d/{X/(YLڈb!T2el a !3-.7eM N} @B 0&^YeFgQi{S2.bPIdXK!Z'=E-RvsYKxh/{(1 4G!KJ 0q&B-n>Wy#^O$ bt9ɪ \ U}.FZ|H' [^ˤtCqh_iw=7+ K^5B3Srkg_ҾDȤLnq3IjR% =B5|gNO"DJ葋&SvY'xɯ߯v_vh]7 @ &(R %~! ŏ+^gM O$>/{䧏2-X0¡xI(ݞF`EŕOH6?+|YAPxC_&rɊ)\a-wV=BL蔝eǻ'?M vߓ)E[!@ue$ /a^!giH.%9ܜ%±c&*+t藑,>gRSreKEUn)_yc]véM2!kʲpA}rYY=&QE !R-bOz`d"g%·hJ|KuPWQ:nBhoe@`BCJ&4 !-,HX'Aӗ=FHu1uj >ek~L%@Jgg巯)ZE\b!dϛHxZ`)UkJ_IQ$ao'܌͓ׄ%s1 p!gyο*B+0wm  4O!7e`ʘ gJOISG8Ưybsi )cmoO:EgY1Y/(Ų5{ |Kr Bk5!PKQ67@v <PL)N!T6d5!3B(v(D˰Y%B(Y`}|Q1[d PJ2e®dB(~O8&k69k pcso_ηl|F(RyR֌V/|?T!4K tBCIW T%0uBȬT$dRRǿPDbkdřF*36TM*Z֝6!_C$=.~|U.P,1 3("{P!d߀|s1FpްP){3wOp 08 )hZV|ܮR򄱲}wf-*zX<_=،\J?,`)$CHjJ= -TO5P^G /sdXB~41O@7po˦%gD=+vfΒ?i ߢ W3pSyIֱ*BǛ'e3D]Q,z},=&RCL!4G! JBz?(xB͔L) @%(iS @UPUb@ N!B̙3N>]^;{:w:~x5s[]nH @UeJ!@I!qUFB!4T@ @nHh @55A` DxE+O6H @i!"@MuT%02H @cBP@ PZ )' 5( PB,vH ejF-Ni@#ܐ!@&G-sffZnJEfF^K5f8feoኛG&_o1vi.ܒ7P>鬠$cG˝~O?&=M~L#Y=ZDeB"o:cY(#}R2)֑,B F @2>uK_׾eSO=ArFЈ\pS<7Ō!c810!T>eLˠd -ӗ=V+ %zRH+D[|pQN5#]x՛zU!˔oI8{}{-D %3)4=7^-|)a5}bcP)$b(GB(}@2(c`BH$OGb;LM 3Bl!\!TV{aO2S{}}X]&CHh5T*sf ([c֠2Ӿb1d$ O3z@bF$ )cekH*Pgm T P&^H!fBl bBMi =v~^fvXGi!4BU!d=ݞ>z}T?C(R߬FdXK!Z'=E3B'LtfO+߷5B(\`O@.#$;, -r&2h`!t׫Z}z*7Fl_S E.@h Bݏrz#z"Z/(~lyc&9@Ifz!J=q,OvD;l@1#z'5@jg}k 7ܠdo=MސQ)U‚}1P'H&+ՍoWє;˪v&+H)uUK 0B(O\pA o?y}oY9=j:/H}RoȍͨWOc3 bN 4)w5WT/Sچ۰q? "SpPR8 @`WmQ̇nk^7eeW%"sP$}v=[!mkQ?~J?x#Es *KPZFO쬭"Ȼ!g !P,L !$Aqi-MD6Uٚ۔%2գtfBa4#b bd5&hP~-QfUGiR_|PLA2Ҩݲ#|st![R]o,ov;y2y=ᐑ FLd4h*fFr)TV;j}1wz-\2SR8[JJU#l}|5 fχ!ddG?Q-…yu-?&2NO _y?czKyGW/*BoEV b ^ #?y{@!tҥޓcjO{eUlF}'>_pw˔Lk]_O_}꫽}>sqtSLw&UfK~vOT4{C 2}4Hb*JOkrʍ%uzMZ\o"ZrfrFe^K_(L!mU$ˆ叓2!dd;~ND!T Ruqʘ-~WUVBǢ ={;w5Yw; !6mү7]Sm{vڽgBof b voO]yeJ MzUf)-Y>zOm[EH&k[φOIϧԆ/1>GYW7fxzԧ"!s˰*8 ' $2dx[SXG,dyߢy.7g-Eڒ-„P.+9,* ![/O[߼!d-M01@ 1@ n B~>/??IB{o?WFR%G\v{ Bw*!_z!O_g6Tffޫ.I^vǿ>qNe^dnqƉHxS䈟e? =:fmsvu*^'`QQdJ[o$W%z}/gBW"k+%SFVBU_WB:HL[Q|H1@ 10Y1` ?|yF!J-?ޙ';bybKۄV(kȚgK;˅_eBa5:ae?R>= 9")>R]8ɖm3;ZLpX"Om}|vf# }c.=%)c7ݤ6lP)CHƵoKv;oti`7\{1ZKy>\M33syq-N=УQ js+![ab b RBF )cաCk}úm#I!7n_S 3fqa\B{WgEDӨ Ŝƌ"$ HDI fňH9,3s>_UWwz]]juw}{ZUkرc_~ԦM:䓥tIRNLh߾}w^ڳg}Bvݐ]kWFvIe|77Ǫ<^YoпEթ=ر۷-۶mlJ۶nBlB7oM6qF M'dž}߸qmeO 6ІiB֭[G}]6B>۱gM~]5kzj)VrJAۀ׸Om}UK?U#iR? }ӫϸkXO-֋ 4`,ƃKc\~: k1wrAO]y:,CL o~n?Y2hР*ǰWyJջK2ddГN:{qݧ/"3fԟg /H\l͚5ON~)M6LB'O>{}]zwhk>b u}=ӱ#ЁڶmK[zZh!IzI!O-$}k=""r1H67x.:Gyì#{~;2\~_׿$jQ [h1;jLGmݎ&SZ1?u+i]_g}}]¡ da׋.7Qz:úLݗaMUzzRO'H:uĘ )gy&uYr?.c}4i"a+wԉzEGgh9rr å C}ChРspHa1b<2jhYXsK"ez7cm1(9>@r|(?~IL`=bvo8j; JlFo8KHЏ\ =zHhڲE9[ԧ]ʏY6f+Цq/K:eoB2<$e })+!G (GKTy؎sܨA!W{«SvO*m*Y8nbfͦKIۿ̇Zړ @͞=[B+VCAupzԫwoҥ+up經OAB\@`ЃY}02~,_KO{ЄV 5`hBf}T@2VC>>۴Q\N%WOWnԙ,u=`UU?,`ak&ȆUXP> P;Jr xcqcj԰!5y5 65h⻄k 66p@ªV D*J5׈qR¿Yy* xH3Cg-wtTx` y'&Vpj*񿋁> *$Gt>sВ@%-z l(Xն= R ذZLPuħ44PqA!`~aڢm]M{JUWP |QjCMX54-&,0$X5u./1_&/P+;kPr-6U: @S,aS ӡ2!!V+aUV6>»5FL|W7ޠqT'LPwi[~ `=`ѰoU?Jrf4=CD0X݌?Cڽ{w TaU'A5:2ЬT q0YFNڻlmzm/[mCFN!^E_B 9$ ΩuihoBmٓsgэ P1s/ovjsYp@4 Q}Iyٳ'u҅ڷ aR0  ۥwQB6xA(<ڷ܁yP6%E24^X 9 xAO'QzL> 3vD=%DOlzwYy=ϫ7Zy|#* Ukz\3V/ p=ҳ*`IXn&AxV_w]'!Uц6lD} Xh zd22+SzK/ pAzEhz^Q=GxH=</ /P̊OV]/*< hUBs7xHZ+޲⡮U65AKZ) {Q }ӳ j)`Umhף2w\ꢋ(hJKw|9# @U"k"lpͺޟ[^U!_&ٞU;Q jI#b)}<#P44^mϪ~M`5="b /׿nAF .~}>' SLf)hBv VYoh&!T,Y*Qpay HP0@(&MҞA Hm6VgnݺEJ=%ԃ lU6!;ԝGAݔ -Y^O17[.!Uf!֓5sΕt8FM9s #AosҜ9syT_/ICrf8<Az_1\|K-B+c (y{.[P> EPOS1([s ?ꉺO|7Eyag`[[ ڋ ݛZm'2Y3 zZo#kNH섄NI}aǁpcI,?!Bd9V+ȽY$y]qWYStرSDzSkCZy!^DMVu[U >F8 C|p Xu‡J մBR]+}j"!6,jTr%3 &8${pU_\0v!+g&Y /&3X7U݁>FЊ^J>x{V(?L(jXU̿IYU*&Yˬ@=YBaPV- < T7T.2ЇL>.2D_Naog̰궩J~ǨGr nm0m  vÓ֜kfWdJd,ɟL/LgAْdsk+3C*k2;wjϫfDyoᑅgV~z^`%Rp5 +ŽM`Ń 2Ub#KpZ0)V i7Mr`;RJ{U`z&ST(ju u%yaUs >.ٗsIlO]=VVaYi8*G{*=rN*滊,b<;0&IDXTIJb?N!=" sV5""N4*@uպ{:gfB8dy‘&DD}B4>&aA8 g y{@uoߵ`nk/->]"!K,6ִJZ!wkMlޚ6 &dV3Dv=,Dx[pyOF!|.3QDږ=ۖ Y,oxw<]sN TFoV5b<ͤIiZU C_JufӚQWZQg'm f8.[&ww:op#Qo2yVa6jo[ :Z{nd0u4<pZ3$ٜck& l.IKiO,bo8";ʔy~u);{|'!  › h^V+UH$ 8%L1dm S8YP'A)jbk/-S?[JY$de[Ҋ-Y ][&![ld~"Lc>B;}vvd͞>E넬BNhB YΛtoOTa4z-UT?C UT*@uԫ;yVےtW!"S1@"PElq!XI\ i  Λ$o٦*u6}( MC9Laa0mXhrIn׵fhr<`3T9:˜lωFiflf#s^=UT\U;?Ԛئ\!,P^U%kT0* Z9UUD B\ߣ U- Xӂ|UpYHTlPF]W@*@ؠjQ =:թS'|BƁR豹ݫEb5wݫg>HFb%@F @R_ }\ǣq$Nڎsun<fm`(/Izf339_=Wϫ5C]Hyk V]O@jOٞkfr0mz7Oãkz{]Vx[1Ȋy(X>VYżU<0$;30VX [V=OV`/-jԒ5^֝t\Ii_W]:' pG-Y44_5ʫvf_[e=4!I/^K=ErEUa2Ξ>G`9ND>!B4qa8FqQyz̓s\hG8:0D T 檊jT,À1o9ThpIB@Y OO,qX/1f۹sgW|o}4ɍ:F!0,ǽ6kB Y̓iBv| Yq(dlICMڤ'=bΏK.dG[ŶM|.>׉&dM'hBvhA,@^Ϫnh(-T?""sW qtjU@*>Y~=+OS>|T\0Ht Pa0|[dLwQ`[$Al}$ owKG h k{_3Y28x Lɩ ^9f+3Y⬳9g%Rٞ2%p9j"9,Y'Rsn5wzv򩨿/nV̻w'"UdV$Kxp! ګ ~ 1 B{Vuh5X3hTӮVT T IW9TjZ_:\ vpTeأd B5b 8wj-hkۖ9ǹ*=&jhw7P{c zrN6'Vϋ aAl&rVgAjx5?'V*毹}qjr*㩧gcb.UE%YE(-<ݚzka5 W:I/l{񪺂WU'ok]"9Bu5؞>Ԩ>`MK|C,ˬ%k̤VaK3ֳ=mB|0_{`Ig6AT;T_ϣjQ5=R@yVzIC=XɓNE!Y=Eo _AS}n2aN/%T`ڌ 4DHJLzO9oלvL\_Z>r0voM!.-M2Q{E]rMLvi:4:4OB!,Q56]}eg8R"! 2Kȧ=^z}rY4鯿/-s4Ax!.>uj{oH7 T኷CmM'<SCRoo Bݍ4+]&Q\ח^DMĶ5'/8\H=@{}U;rT'3T8jk'?0l(,l\&jkز=z~. ish>;^{hXbO` :c_"3c]5UL穦rޟAZh^! V9W~R/[ m?WXu]% mMvjTp\咅9 ^UbBa@L3ΐ @郦?OU{U`jpUcħ^Q;U+t`/q:\U%sHe3ΣT1L zU^{ s7V0kd0J|Ǻd9Hvb L`@'2kq^ql1vUOeʟBs/m!|:}p4hʅNJs,HKj;IkΪ6lw)k8B!2SȴkӔjN^TK3h73hՏ?XQՠ_Șs޷>j5.. (@B/A..e:4sGob) VCy\гUBq;vZ1dBkPN 8C!X\Rͺ>XAu֥ѧFS/>&_\> z3 Ϥ_Τy:@N*īJU.S&O&/AU&R}JO* ewbРja/QT-!T@Mm}[-bGA}n@iv}k:T᭷FPkX*6%Cz&jGUMb57 Ter'<ƛTܘܤ㋾G !BnG0e1W:]|5ey4g}]S!R &i; \uv^_e~39Uq7iե][mm/žu\[eTil"+~H};ŪIMyXU[ѠNu0SUTXv4rpRVu+V\a5ek\a (`[&.я/*e9k?,[VmVReΰ lYa./9l9 3keNP=seDAcTČfըl:WM#=XFK΅`,2VYtr o6ef0Nی< WZD*1b0Pݺu+#CX诮` Z>b3QA{/#nX#!5i*@59x  +]3#ל@=ZN{ym$*0Euv ]ۨ7ާi]t:FjGOt91A @6 ~ૉU)V1YM_i.:pe{[Ɯ/ilJU]|aK P=? z PLTikuZ=賗YuN,HUɔ#xSXw5}G`<&jh|b=zJ@}/&;@FTs: rGz /:Se`Y+@/Yj@2RLqsTEҪ+V% 37mڔ(PtlmO_T_YT2Q߇I OT1Gu Q=]S n m"i7\͏] > ^rK{Sw< Ƌ.mGcj'n<-MM{R=ߊ6=`tYT̝];U -C 5ܫ]-tߞ!._-xc9 >53@#!u~=^U]*Oi\3U{_5VIʠ( (U&;M/ `U{, Yuɚ8+|_N&T`҄-ba Kzüi`5)8WɎ*W`0X5_@OHPzd*(` Ud!}KʨOӠjԫ.%~Wq.]Jv﮼;t`Tr<9J& RVs s @md?dh1V/hUb4狺|#F2rh_FzQ4uڧt]wUt_#ϏJ,{ڧөVyyf-![^H kƍ1GsɔלG,|'d֕ !ӄ|"#!yviqBL*稚q"״Өt*KiCiT\鲦nN Iհ9TzE=kR-8$ן%_ɖDho+ۊaeR%#TP$SH ϽZv\F{MsN;I7&+ 'Q6?z(wP H4;GB}uVp^'?!/ 0mM$vڪ ZcKj ]%kBɔ{k̰c'TB<=Ln+oPGס;jm "&tzCy[z mvҒn=M#ƒ-o$ڡnJ K_᱔msFAWuV>=8.5akߢXukTek\BP-FsV]{JlY!+/rw.ɕ>6h⾁)>Hh*"Uj Ua/dIH/ɀ* .^P&)QR;vL~8/Vª(C;dȮhgU'ZAW$D"O^S?eʧԻ"}t-r jڬ 5F@X)_|9 N)[VZC/y5Kl1(#lͯF+_Eo5&4|b,dѴB3ƿB!,n7ސf_vӅR Yɼ&!3|zÅ]B K=!-d?A՞ P&S6e:o*-~f<]g6Bՠ xJA9m/ 7Mۜ/ Tg$Lx=iG{z]T uj!@gl2{{>[ҵ2,L-PM<) T a!T7/CtoocyT P=ePMM$l/%Uʹ\7 K8-\I T+}g5(`J'TXd?.!XTu CMXZ&.R0X5uG~gQKJ&$UY"A-£ګ"^ ~Q>XNw]l7 Z^b]V1v4,Y>f2ydo0ցXŴA7~ sB Ӡ#hȰˆ1F_2j`_ȯIyi4fl}MXs.}f:zqʫC"kO _Ty3gͣ__C y_ȇB&)kZWBմޫhi}iHdy_I:Z2j]UxWU%j쬿SM3S%JϪb^*?)P1JU\$UW֫a ped5*ecjyPe$!1Ԝs*Tf@AՠXgSWe m9Le .EffTP3]E#$@J w3j ToX/U/=3D}Ggs{O{?@S!j#j#n0Z7Yk&f&ciLQk[2vLQޙtOGo1'_&j*)=䓤QV^GW)REQ^U3^JvU>%Ē@MoNOյaո=|b$W%$! kuׯa5۵9`'%W8}:8묳$",k5mT*^c,^OEU,1WU pԠ!AHUK=KTxP;@iR:  X3k)^QOy_ϟ/C{1hT/!h`@() /C_xI$kCFU@}y<,U>dB0LJyCzKȄw> 'Ѣ顦i-λd{b!I@`IbuKVPNޥiimB>-CCiuim|>Z_BY+΅  %EhMi^ۦ4 Q۵5tuC~@ b L3ReUPhGc[qT_%@( Lbc.S %j=Pj9sh\&aОfJ=쬼=Eo1D1"Vg fUœ+`ޒ0@3k\|"wKY=ws*WHR3ezi WdS*lj)(m T{G܏GSr^Nxz=yg1;qLw}X`I3D?T|E5Df@RomY}woKRlr>{BCJx?E'ڧ:tr?]Pq7T/6t@o$A>z==S㏋ ~7ɬղON|35nX>ի'Pr*!D#-tTKptv`g [؞CqĻW.겯 lgIjBV\.뫺ع |0Y:8,Zry;P[oU=U@jzPItn9/U(`,Pp =yW- )`/yALGDo@,~Ncb O.ZJs-yi%lӲh2 Vi5"ZZ3Z-Bx׬ܗ'g6}oAoʒ6 -KYO|6 4uB J>xϽuפ57h-Z>zӓ=TZv-\2LI'V ]G6T'OL&M OSii»d,O* Mv}%D#DkCeupog&KЧ{+u/uA#%HrͬegkzK9Bqt^O=i\%>͵0/Ww^77a2#:n R\dRØ;ㅂ9GTfzQDO՜usE¤ &F2񺋟U[ڑ@ Poޗvl+mD/7y2炙[>4iB 6a0H׎ި"Z24M%*w953[n!B5 rj+qp ճj⻙ :06_\Z%M`7_`k^ptEW_*ڣj*JYUojУA^T5@UxR?QQAUj.U Vkx)"2uT҂=Z>SL>=ge؟8~3=~sIV YfQF} Mh*00xN@cX\]Eaa&  b_ 6P^N{鹔Ʌ\0Z=Q^Μkdw6D@: ki5N{qCԢWQ;)OdT'fmQDL xs w_*p4x;P_*x!E;}7!) |oUs{v ]e`-, T`Uu+%WJY-EpPM%e25m=]u\). m~`?W@xEǾ^*%kJLD]Ii?yE7(a< 'WL=O f_s<)zR![&S U/Qzꥦ{SxX&3] DTr ,!7ù# uZSF)sH*i^Ǝ}YdUlV_:Nd@o Upêȿ<6XӀy IpDj)`5 T{ :^U*ՠ j^ iX UoX]loewR%%S).ĞijGz2$1 ,`if< $M/*kp94)P'ԃ: v;SuIbB߽K.\؎r #sD!;Sw@Pl{#`SY4妛n"-x puAHG pB/B0C?"׆T;|۬PR3Tz\҆BW*j)B1w4겿\+6,qUH{azOw .&4YBm}y"3>E㾦RLL‹mm,$A"Y9,Hꌿ>}5ceit#|jXÀ;#/2ʰߎEx[1 :1|9dU"2&5qXX`* Ǒ5Xu~U.HHђJP}Yk"bqbYhV+'lWw5-yS<P4 `<\'Ϋj" FPA4LHբAUTaTE4 i/!աC{9oP]"FM¶ d3 284a u k.Щ=zΣJ GčF 75u.1Ԡ`3aBx 5D>H t&i?5imޝwޡσ; y=S z&*f1H# 7 @ ]w]@Z4d@%9CS"QDs=@_5:ׇTL}翐*lI}W ?6myܷ3h/^ի=7w@!\,~>3Mou N3|YU3Z U"P\W-T}g:OR 9j[ z-UDX1#ƞ"DP'NPT*-CiNz!5l .V<"*䷛{%?4ϕ"LJ"l0U[}HxR1}PGPFzʞSd#CO Dm_$N<T'߉TߓѠcV ƻ n2an{_/{DSnOx"M͐SCSдNvz5TB+Ajt\}P!RnUW)_?. @'RxQgWpWLUG ooK ʋ`J;OEGN?""O-j0=3dx/H\ajzP5*(`w XURV3`Q Rfp XK糾'# (+`_asVP뫆AN{?Ή" 0v-L<" 4PeN!*R&WEΕ j3i9 p @d*oH%`2r.^@ *tI^|QyFürO@r N@qREU ߕ:ǎviXU[5C]҆(HLUNB<𪺀+T'GU"^zTe2$ >$e3x18V謗U.jR"S۶x*3WN?.3Ged!2lV'2X{s%pz^o<;\'6(oO?r]& M`“OfCx3pU7(S{}!P^NOEez2b*ye8u8;'&I!-1~/o_Fu̺ZLYZW+Sx o!Mlu&3R ejaPffK%k]kYsY& T&-S![OOv԰.Yhӄ€) |ɕJaUY_5*8l*ڜk`>0GlovFyVYYƞ{tpxAN 8B0 P0Ngd*Kz \U<U4T% *X"՞Tljt24'b9C;hS#ĝ^j\:뭻1LQz|wYQbKٍ}ٽ-l=wpY/z'1gAH x&_RDEQzyÞI:ӳ} `\^)51^xŋвeX;I/_N2!K]>ʕ+~5Y֮]+Ѻu|~S2\eÆ %0ٴiE E Xq>Q6&)T>Q]E(XuU9d3jN3)>Ή3ǩvӄ7OV$R*|1NFǫN8D-I2~&ߴJ;$8:~Nޞb5I!°Y/C3Sg{#:h1eXۯ< D_gTPϡ<}: ԃm60otx<Þ¾'-/uCzRYaƼcm&Jk `\g9cMF.Lx<+Jy=껞}s!RO-4{ń3ؼ)nz) Gj$iA0#G8X Qjeàʀ/) iy*٣FYH؞*U^T+π kڙodOWo̕w]qs oōעb< Tupb/jP{4Hqo>?R`@/\+ʻ]c```ZXqǟac1yu 7y4TAk8p_R`@/^g`7{Øa``6`[ 4y,+@T-ңM/~7 x7n-mmmmH !}euq6M5GU*UΝ;aÆ ZT˖mhN\TTqٷ8Y!>-甹q-OB_&}S'}t}躶叽KuڳwK=o!}Y!X$wuթ{Z2g˳ዥb=Ҕ[3@u^^zcnݕV`3fdIV2%xJT25tС\jU5m7nEs9w\ץ_@Ro߿?}8^8Kn{w|:qtoiwNvq~Xf!M!.͸KuZo~ wd].*@5;azn)7n4k*ʣZL{/޵vcm,f[r)LA5 NR/l##!=hOWƘ6T[z3E{f٣ΣzA*i%-o،`6D+ w+5 o00m iKV4[.h*ʸûԼ4{KmW&wO??ΥT3mt ]dqU}d'QxkڭDCZ'bC [Rǹ"X,z)W#Ӏߣ=~|R֡P.^P{:6l kqcgWs:Y|>ֳ-50$nŻO:eHEӌy6.X9TONdyTMOj(k诂m0c PbFTS9h]==mٲ@2;E `Oy&9u =69|Sj]E1ržW *P@ #f~G5綴0}!YwR3h5*ѿnUdu@y`{"(?~:*A ŝ?;l^ڹk1\5p-P_ ur wg].LelsWyόq,{?7g}๩7=>v h<ežqcmcl؎TlSVDxc@a뮻駟zI'QO>^jn!sTbcB` U઼'abGɻ, @ջPO 17]t| E V\㙉H`)to;W'~$dy[qFyK=k,0'ݨn^Tq} y b?`=0L>_؃!ΖOPu,7Nwr[52_:R"] Xq?9gl ݳ7YX*9(HNX;d;BP \A5n0u\;(5;viӦI15TgΜ))-R11a \;nڴ%"J(1|>擼5xeX6)Nw.h*{v؇t&C:g2>jo"y'R~w (ϥaif_ Z:g{MqDŽڇc;)io㓨ceil,}Ꝧ6b=Йц\P{L]\nigsM4cgIeԘ;=SrKE=7K6u Nz&yϞ(jlOY([/'Yh㠋Ɲ5"ԩS}ZC} ULy ~s+y?̾Ym*/mPE_\~{8Hq^~{7Y~J?􆿟K=2c V}]8=};u8&6|>`w&;ѮuԾk/նOSߢރ/}ĺe6`>9c,L|.=Y0Dϙ(P- }5> W8OBYG媣(Pݾ};M2E GՔzTDHU1uaFޚsTSGᆪF>lF? XրTCyT_l·k}}}H~9f+u3E9 Զuj] ˥ #CkRY21ϥgF@>R}bfTj ;;>mvFOQֿ> l_s7q׌>o\{}ym-0{mۀLN|fr<܌yc9^,H;LJa1EƎ1P osjgL?k|b8{%KC߸uzTy_Gwc׏ֶz2[GkEGCUk'|o|ӔoKQc?S/z}ݿ^zEyTާG~'7;mm&@2C/ 1NXeq.r9$Pac21`ܸ.~8D;GT)/Ksy5v jz\;|bc8PO|DPnea􀻪?9{2%jͿQL1.x:<_.oEKWP6Mgُ2~;t@okײ xNB]666PVG[e$EyT }t;ҕQUS'xb0ˠZ?f`R܇0JzM)|/WPŃ' x/ds]( u>~Y&._z5T֭K}K~Ք&]u666PAbNj8l܉m۶U*j0dIj ZܛU@4=_C+ŏL =ϼ&9tcKI}["ʬK=pUVbpkե>&66PH2wfTo@uajI.] C1 T{IݻwK* mmmmm6g,xjPXq=X#Ȋoƿ:W{TMjSkov:HjXh?{-/n,xbxNim.j~rTӧӎ;$o/.}T,0ⷯk@U P.ԌkmmmmbXcа:}AU(otP 0ⷯ+b:[k6666P6czqhXu^z322 8*f͒ZjJ|mllllllllllh&K{Ee-:MmmmmmmmmmmmA]eċ 022 Q!=餓',9 RDI먲H|1hcQfa^]>6TV-%v%p6^\g5m۶Hiʔ)2Qe_ >}:1GGMJm`K1U|3]Hmj~@MmƸ8fZ1 }ncˡ12.lDcr $G]mw1h]>O[~"qwoަv)!1\u$(T9I=1~sßC_Y+{T>/ l\wdn߾pڥba ,HƙAEiG @0<ŀLb9vygO.檟#G۞hsrVK{\9"[jI/kBIw׶쬗7ݻ (.eSԩ eM/ g\ۚc]wթSfINsT(Oo~' "ltM? T o(/@az[޿ MH?o#jdx&5d8*D%DHPp`CaF.rv@>r\t貯frU~7eBZ@5ymxexy O~j2=fݬzzu5)/{^@Bl=ڲ/߁( q/QQ \t3/TK䕉tbˁ{UN4lHuf`N'8׹(P6mR'SbPeeЯ>6PPՃ] ehmDA/3ВNc0;{`<0(+~`\1kS;Pd@)TC^ \,>w1:ܷoi&<^s;z\a^xɤ\,2-5xu{I7|k1uAʐۥXWI-f&+LJ aS7ãS6|;bNz0MωNh2.6 l'Tn{{^v%EP$/s40Wx,]?uǩt.,@v3!3 sդK]b,7mX.COQ׵el63iEIA<]ڞ?ӆdüm4~"@Uj(dJfBdJU'Ҁ -_OW~Il:*eoRKz]xP5 kp6 W٠j@ QL |{ $Tt9& @a (.4:Nmpa@5*6.x/^6؞mw,TC)ߤK]C7'oo,%-Jbc| ~uU&jQO{Co $.mqh!BK򶣆Tɓ'˄J)³QuˠZЫ ^}"ԪƒjLOUT`{T3sPIoH"F'M*Z2%1 *{54L 9fLOQsTC6ģqP IL*PUak{cxZuΕ֜ٸM5LSpΨ~^BEx_} aY#mKzOKۆX)Gt[D 9f{^ Y@]BV]tjkz;rl6ʾ9'&@k-[G}D>&kP)EQ!U 0BCY[zXnp][*PxPQOU9˄kjֹ=h T#Bx#!o 19@_]#tpp+'*d u'h3e죽F{jiclΑfTf∬Sᰁ~=,7 (VQH}5} aQ<)׼d_hsĹvmA!!ફM7{O`L,dJ 5 KݖjJV6{A]}.zW  mקM6ѻGN€c@Ug-dJ_}Uأ[jX1C%U-C+ -+oT+f( ԭ[6lHLHᄃ*RG X~{Oڻ|, weaT ޓ;/͈=k շc(W+hÆ քi*ꤏWUIQjhݱcGV2Wb]@9U׿z$P1`Fmzv/@ *?bd````6p=P}OU@UOUQM ?v=5~0xP]IOik;2x{E=L 'jex#kי=5n[l T7&_xT?Ҥ`kTߠ;/Ƃtzө(fP-{o_Mro*?66666Psm˯:A+BQU BJ`-xj4 ByTmjGujӍ鉅븂8]=V}bsoav|Zjժn2rB/_PEX0 mmmmmmmmP6_>\dJbޣ>TsT''QՙS«*BqzSIsT1:'$P@hX]VsZ5fTy5,u#f/;qL|T ^N!@`i k5` XIcN-x]Gڵkݻ>,WP1%ۍH_ӁDo47naқ-O39,Y~ˮkt}1³IST]0ۨο3~թӉJ[K+Ԣ1жTǥy_-Q9b-u%?&kDmIu(RSa{0VobFd@vMFSjG3|,k5(S 0T5jD~"!u@iUEB'bOGƯ**GU{AAY7NitUt%dAF>X' iΠ&j]uP6{O~=G !oۻbPR*~? FhcУ Y v py .K&i-J~IwU3"&Fo 525jfaf|dB+:hXu 3QV2}Qp D 2DsXjA5T5k·մ S%RCAsTej<\Ck?@s/sK*`a T 0VG(W5` XbiA5TÖ[Gi* 5TGI H{dJ$zdgeu|z)vͦFLC_e˗2+jOj,؟q-OR._JGjwQW4jwZ}ε~ Θ,ml0}YTtrYk5`P-Nc=UVcAU-^Q|›!uiʹyNھ ]aTciÆ_PGt߇/y?\\crH+ -1|9./U^Jn`Wc=ɖRU(rT#+` X@4ZtPST{QQ]hzjGU7^ 56цhtIRoo>~-mܴUV^*A?hPM,ۃ9#B^KlKK~|0P^{˱b=ݸ\k5` TKP'YsT5^/"4oN*}mBv;wѡCiTtCh庎lAeնS[xZǏG^cF9bGlZ:t4V#Ա6S_?REvfnRu1uRC=X'Mvu)-Q֏;>t*˔՗Fz[΢ys[v+5I{u`P֏P[}i^ڎm:іlnׁAZ?Bk5` K EUxTU/OTO:$ zQ_:iL1/u]sP{ =l oj!n" L2K $>*3o-w{l/$@{끿kD/e[j(`|(p𥐺T^|xu•~! Yo=ma2W]o달:E6}y.a}ތo ei:0Xk5P5ZP5UUsn*vj |$XsM>{.W5?08Ⱦ{_V^zD7O׋x@6O7OB7e@uF,bHs*0ڤ-0Y7]z2zG+Av=C:%#[fz:3T2|Teק۬2:Y׍:0VG(W5` XbiA$eQmX Ss*^u55 4{Z%2s( i)68\v'u쾴t$csBVN+ULTtrYk5`P-:ٳG)DOCŧ'pzRgRzUᠺo>TQ)F`R:y~0_\ʛx)pH;p)u-EmohV ʕg XkX`P- Lm1@Tuz`jUW]Qݳg|eT  ]+-f>˜UNUloR?H-j_ndׁAXO7.5` XjՒ*VQuV ㅻ,2)%n\VeQ*tvN׍#:0VG(W5` XbiA!5 TArI+ ѠzQ2vQ)8GSȲf.6UIuyb=ݸ\k5` T{En#bH{AU*Bu+ [lkSpBe\vqmb ʕg XkX`P-)P ߑ\UЪ Z+ Q--p@5ZzYk5`P- d$j&j550k5` jTK R.]?e_>{Tkeȭ` 8NTGdd|FS:im9(o-uSCj^kjB%ԼfmNk;/[US 'Wu:Q&f]? ~.?XtPP HU3NĠZKc Aթcijç0\nӓ5ɿ}?k{$O|~Qa6^5oUu[躧+ *h^JP5_Ύ&{ـܟZ*Pp?-[ɔ:ݻAЗ( N&A|:ѱ&iގn@2HHyS-/VVn/jl'U_e(,P) ﯥU˗UTϟ\Fd֫WCKw}X%@*P]+nc֍ZMa2`X=ڣj!;,9*'.޴z!Bv(rdh|P% TšΟil_P8@|ձQdiӖяK$=}nyDTwqm7 *hvF?mS_e?\CUY<}b @V?xGꉼO-| J T-Y`?fPͥ[@@:P@ոc_ޠC&p樮7Ҁ;};ǚUxy-6sx}FE&?l˭ޣ~N+V UxVw/`j.=ǰ҂kn̄Θ@jP=<)AAQ +.d{[Ȑ|㕳ΟV= ++EARso#2VR: TS\"/\S r$FmTtK.PU\ȵZUW%?0#W3W7A5{g_=uz' {y/ I?{NwsJJDKӕ+WZGU.\X! wXށ5P5Tex`/|72 L7sgeC<@\'?v ߲C-޾dPaCD*2c\n{eL(  &v]kI_صfs|4a5CA0#O&? Es~5xH|vS<~IlcBcAS=THH]jU@@uѢE1aA5Y宁ZM:Bt[>V|6iRޥޚO? r!ҀG&8%ɠ+bAՆp!Y?ב;d1B/I!8y })&ȚxѠZ&W%?N*y^?G]@7W7~FAI{TZed2c@qT^cTWHTxb_4ٳ|4k5 ʷ23fk`{B` մqF==FЫ=/%.~C?PϞ@1gst T asXs͡PO̠2пc+xO׉2ĕLkCKu}i|uIO(K?Od5*4}H %ͷ~ڗuspG4a{T= s1HI?&_q{£zAP׬Y#3 Tv Z XePͯh@k 'Pi;Z[,.17]?q氬'6o4'?ɣק@`  n2ЈdT?>t\p^}7"?ľΟC _]拦@hA3<@Nq9Ly{+ ^.S7IOr/ubOmHBSj~.n??CޡT 0ղvZ*u޽QͣP@k T˽U^?9^U^G@i#/݇> uR|B_yUTc@UéϲAjP2mrXj!BhW&!˫Ry^rY,(k`":AR*U?9UVUY5X \hB5 |6+Yfex=o.]oIV'k5Z**^c@HP" dP勗5P5Z[` X@c˜+:tHzQ׭[,*[h`'S?NjPCGu666666PI6j%l+U 9i *2+aUV|߿C-pY`PAG>lllllq6#ڵK&=|0}W9rqrQd;7n,5uU,EC+j@` Tg 0Cjllllll6ZPp 6HU,E+ȷ~>%cPXUmmmmmmA*BKN5nܸQ|T㏗k՘j`eP9@-a iZbӍhx¼jS:mhF5^z@ /Z?_~Szv<4cn ږؼgkvZ(wO mT:E~%85ڮŹVuVs .%هKڇ=T@Ud\\=x իW=8|g @©9H!t<廂P~E'd-j_x;8Sfv~Ï;@Ho._Dm?A/;})`3T'ɺE?~P4ƞ__wػk8ɾ } ?B]E?|};{|ȵe>WQHo׷,?$6a7X:>s2TlBdXC+aߚ *ܺր >?6; ip{v}zXŽ mRxD|gRqs6OXlk 8H6}~ob 8~0X>diߦ`]ā*_(Q/RmGr(,l.}Tā7W~d_y? ח5jNm$_IϤIWgq|>^]}GP5_Xϧ{C)~K `;?RnҀ֭[ɖ,PթOʆn}׀ @j>0=kW؃8eRCbU@mO?e"R;aej͇najTe|)uI3TCµ"ߘZdv TWiގPEJۚ"¤ }nNGz2@9љQtnF.Ϡ&@獚 qs:muT3LyTuGVrk4r@5#I%4ϣM5ԋ$T#IKW~0ƠZ|P=zS[ P=N.Q޸Yk0pRU@UjD-: ALDQ@~)e-h?6zuD#yJs*Ƀjo/ fisg}&JwŀbJιޜWOIt}8^_E1TwAZvI,PkS*jE3 74ރqo{VEeW92)DHhpDL'?Tò"F$̚Oj"Q/E/;' сshȱTD ͪYA5rd;l0p~Ś1$%gO>޻vîDPu b''ۇ[C`.wt?^pW<T pdڵ+b)S03N5d;7nLئUAHXp7i&hhOH83T9҇VCm'En >ଌ62cSGU^qQhh ,zoGdt~q+*Tb 0Tiߣz6mjfnk ambج*{]ϊywzZu4[ 0TwM@ V!_c2Ͱj£Z`mmmmmA4Q/)=N7oB[(+-p j` X@%j`ӕjͥH7_|%>s1_[h3VrkTkvrXk5Q E/:bT$Q٣yajwW5` Xj@uϞ=dQ«yT/r(TKd>k5` XO %U XU?iJ.A]Z\cրT;Xk5Pi`PMU{7;z(aVhܸ1}>&ƍ2 v9r{+P dk5` 5ZofyTdJңz=Ɇ{TiqYk5(TTGY:w˖umproq.5P`PJYk5([ 0T;ڿPb?@6lU&U,QeP-ˇ+[ y ` Xk&jA蠚8GY{Zz5Y֬]Kk~F}:t8oMMUk5` X!`P-:"Ҏ;䧟~RU }WW^^^Mzc8eQk5Pc5Zc` X@>`P-:ڵfΜ%|c9F.ڥKzg[Գg/ջ7-]./O󱬁2jwW5` Xjb+M^&nyӛo%_~_TuFݻ={R^%.Z.j]!|f@q5Z\rk5` TS 0f*}ԪU+)ڵ.]R}h4l0?~YWP}Ѽ>|X+Z)>}R߾IGnzQW5$ vk5` *R }РA^c81eޣ9sHHMQ;^M߾P{ү_?׿?-[cPȋ]`PnFXk5V sTuL|LBs.^8 RUM MU__4`˗ PմTIGq5Yk5(T#)iXuoAB?xȪ TgP-Ugc N 55` XjجE/<:*j@DXGA]P\U@J 0T` X@ehA5qy zNj@U*je\{J4v` Xk D T!5GUQ˖5P5Z[` X@`PzA`*<8H7nLXG56Rro͇TYquYk5(T%›δHT9Q-YXUժ>?k5` XeU  S mˣj*g-K+(T N.5` XU Qߒ-԰jM0iADӰXk5P4*A5 <ƒze˖4ڲRiA5xgk5` *E Tsܙ*@UêΠZ)W"R5?#*\qc@ߟARi]Hխ[R!d˖-eǎ4gzhR J6-h mmmmmm\l`Ν~yUxT=/ @s:/{n9!,3\u mD[&@={(IDXÇ:+RT+T$Pݻw/B%nCN@կѣ_5VWM G}W4|(.piXKrR:t^FgE{]uAU*jE 74'[p 7 &o"Ү7rzniȑM$ mmmmmm\l@PJ0ДG#TC+XB*n3 X5›<_IGi$sX@}'A%2(z- hА |jV - @!@UC]w%aT/:"y =p>sKr{۷}g/*{ٓ66666P6zgjվ}@ՔK:.@!O'|2b_Jh'{cjpӇ݉|΅cHݽ Q`````(70ASN&MdjUVT+ Z|@ՄK/z T ;hʹn٦ukz|P {r{[vX6lȠoMz >Ѓr*?Aubd```D0AgA*WPݻ7A%K8o2 4:dP4iR**nٲ>|^Y^p O?TF`-\F\.YyT n3=@yۀ wyt(2V`TMXM {׬YG˗KXzf>j*=-Y.\"~ΠΜ4mmmmmlUDِZ.7x^%'L?xڻwE^z{T+~pYn(|0k~FZbey X~|{ݺ 9 uejأZo?@%ڀկ:R TmXUwק#GHX5G$85kPݹklΛHB_uٳ9zZU~^vo+q@mfa``ڀոrjўPPՀϞ={2ᖰB5PyV9s.M>}:ȴ4u 2e:ZAAAmmmmmlF*Ai5PYHCQ!oz-"l !)Ѳe+eb(/_~Yfca T'@ѣG |e=pQ#kw6nXLZ{SMjGA[o 7qYb;/VkyWO>)<߇* U XPr/ kk ɣ7j,n:H3OOa @1jxTCAUK՞Ubt(/ $* a U,OsWrb k`J6rH@m TO8ڷo4 ʠZ0Xeߘa:g`````tР1?9TK}ʠZlb L %@*Pׯ=s\.]JW]u @yiA7f~*: +(I'DNTσWJ ڵы/%UD:l0:t/Vj TyHJQr~@Z}@)mf5jT@m G.Wӫ XePea l *}NJ'OE-XܸW_}Ek׭d3 ܹ,Y"eŁIoٲmupi2oڴn*?7nHׯ l#%ڵkirSեidKaPPDZ TOРLAf 5WP7n͙3G;^=6tꪵ+hAYيT@  6w\5kM:6mZF=< 1ciX6L;vЮ]޽P-\@ݾ ڷ/K\y.9pޏmmmmUfk Vo… '.J?? h+飏>w}W&4iRNfߘ6 eK m.pWPݶmS7lٲݻW¹k={MӆL!=ws9|cբZ4==.lCQNF4F4qq~^BkUe 54tscړMg|mm*mCRX*` p(i~TkwW=:2 7N.PgzT5bN.ڎOU3Ë駟O&L4KaIݳgm޼7V h.:o,9g>L?k:"Au! v V^ AZ6PSA/^E;ժXl e\s|nN=߳r/ k4Q$;g }CO;, =:jie}T xv@ ^\A H?TyH 9'כ4N5L"A2M.m"SI]| E_UC|a@J>#} ce|!KP WjhA/@eڀU<ɠZyL-f 䴎*a#u4p_xR-<z1Sǻjf/S.P(Eٳ0_$tXŜU H\`?U93ZKf0z;2k%ɣ9C@3R]np$gN9IX5:ّe5. 3s,?IQ,^60LPf`8_hZ^Ptgٯs^xʲn1k UB O* 5 N T񀄷 E/`U <\b/ ΢|`,aT\V/ͦ3g،=~)7Il  B᠚X@WzÌt)[f#b.NgOWvmpWP$ /eHac\Oe ܹ+t /@G5pwf L T1'UVWPG) @XN>]_> XekF8qr]@^pQ\kM_6}/5靻Xkt/<$=[ZwBW .e *T =~Vm*˄ۡFH FjA -^شY=6ŃjTbQ)*r/>W9Tr} ՚*@4 :'J}KLaU@*ž okD* E^,PE6=L~0^C+6)P7Yd%Łڵg?f͚9a(jA+3r:9m5}<3zޟvj>qo%^|κQ %Υfb5QʳB9˱攊1 {n<Ȱ~dMa!:K 9.7v}9 }d]f_f^tDYaT<{'6Pl@*Np +[.oA> WPR=Amlllle_~ѣ/={$޽{cePlLW\A(u3}|lslllUk^z)-\:w,K.ԥL3;cT+TժICRA퐯ʲ.Hh׮o/Cr%_ )J@XXTmmmm/ ͙3Zn-M6`] *@Gíg Xk5PeMcU-a/ѣ_lz۟g 6! ZIaP\㖳| 01Xk5` i(P 8~eixy6T@hAr[` Xk  ڣ jk!mgyTMP4jn}YS ճ߸֬k5` b^HsΥmO?M<,PpO /|@kT׊2dU.7{|R]/%$=vk5` JbE_LϗY~yر| *aÆʕ+aÆW jk5Ps42lsSGq|oI럶~uk_G~y;k5` XN(&^⭣N5?uTO:$ 82tP 4`PuJމ5P4>ۃ pji" 6w>>m=>|խ}I=I5` X*@1A.EQnݨ{A_TK!CHiРAb kT4k T}aIxTI 3la5v|:sҽܮڻO+ÃO(AUԡ4&mw֞rQsTdIxCF v“c?i}~k5` \QjBRozz' k( zg };8Yk׮ݨ&!?1~}Ւ[5P" 87:PN$k@bo/d;.,oTVް/㓒0U%4}Yk5(@ՄK/n&zY3$Aל X '*2*a~M'Թ3uڵ보p"jiJj|2@5 [P-䋺I4@N۠ۮIm>cZU{` X@j * I&t]wѓO>Iz^z}1cI&IX"j{IQ=chԦMzvX;u TS+HU=3'm/vh}ޤ㱿ncXرImդ˵}I=Ig5` X*@G ': pGU*V驵~_Ю]詧ZR֭Mۧ]ᙎ4*3 >1kHU3kkXu ;s[ w-KU>;k5` X1Hk'MJ< ZPa[tIsڹs'=d|X}]{7>]qQef P $j|OIo[Wb/r;Xk5P5PLPWÇg +HPݱc5k'y3@&A;i|Pk=?nW۵~n_MW=~k5a(&^{f9rdL?B6x=ժ5nӖJP=59'PeuXk5` T 4:jԨ,b}Z>>"@ORWuytj%7r4Z9}-e Xk5Fյkѣ$ T sT%v`Pv]f Xk5P T6lH_|1K:<9Jf/jIO* 0Vk5` [>LRd@U,O#/ Ub~jۧ9Ry׎5T!9OMjաNeDԄ–79z疰X@j`UDM۶iayy> \\?^`]SvexGMUX!/"cC sr)k5 ڃ7R/:L[lϒ 6Ӻ78]'Xr)͚5OzT@Yc)wqw^޽;u֍O;-bPee h 0߽I|{*kT26CA5;Ҟ/_C樆@]bh oDWWUhlKNȴ_o ?^]9~ x>C<:_Zω5%XրҀ ~-= 7ggUҲeh%4s\ZbUnzKPٳ=zQTg*[+kjA5U ٍ a,G9d3Uy 5/|&PRWP0^:dX+ =Gfi<]橌UFLH:#@RGvk5HR*Q4}Q޽֞xbϠS@ujaz*jz۸Ԣj9]T̽! $jZ˹?zz@.-U_&R{^T$P쓗G5M(\ IfY@5P*Pa5 TリUՂ7(+ 0;P4 `I" AjPi_iCUg{EBmп&b"x=G˗-G5/PuSlz }ryk5UV3ɲjT ߿9gT}TvV "|eI怦k[oL x bz 8߫K>m*ljGKd<ۛlBz/ϪߏnIc/Oao.?p_\"k5\ TGM^P 2Var+C 16;n\ m2<2%,ObYidu8-x#sƃj~OhB[ɢ\@2N^eY]'.OQnjv-^df]&:!˚K` Xb5khԨQRZTXbPe#` |i2:U#䪮%5` 4 TW^M#G *`AY5TsPH[Z&F|6k5P(&6hЀ#FՃ҉'Ht߾}fR% #VVT+嬁l $W<\ĘX@I5PlP]j 4|p ZTK|2@yjA?k 4ZU` Xk5P(6XBC :L Xp_H޽pXjűXk5!(&^#<+V XLCgա»z'2f5(ލ5` X@i_ A1U$TbjY"7"5Z΍f Dh ,'3bsa Xb*T !CsUCjd_>9rD 59`PKoԪILvӵ_-imA*|.[hW5_rJU8nQ..5`  6>"<j[ W5P 0A9I DCD:.;UjWcMY WhOn3X,UYnw<͇X@ d_3 uĈTO:9ZQee l 0QƂb ַ,P%ԃA)u(IOikgc X"kzuQ59r$5*T52ǹx@iA0!F@ l ,&Za6J-DͽG59 zP>H.ϵ#J&W_G: .W0#` X@qAjIxRG%@uC£zrƣʠZbXH wV _BAa(12OCA5;Ӟ_C樆|98oDWWUhU/љ$jR; 9Н%X@hڸ/P>A#7uh' P=h߾}"/N"P5QW'S*{ᚰ թ-ʋBY$ ʑ-; {7;G5Ԓz8;!D_r'1[vIIk5P}4PP릾 `uVu{={ROCzA-u2V{⚲RiA5"wA;d3.<(2Q;|G5-˹TىMdP(jfX3&og XR Yz@{Bzxݩ[n jj L- ZG5/Pʹ!m~ T#'7$8d0.UXJ@)@LPEB%dU={kgҳ]k.`٣Z`P-|C5S,칫ɡbi_9'7n «A-F?KJ%a`ưPb^w-U%X@UhTjê/%vԙ:uL=ԩ͟?._T2hA5%U3% j뗰5P`P->Xk5 T9"B% Oj6T[-[,ժ >'kd`P-Dk5` TU=T#WJ*j2",k W 09>5` X@@~wdˎȖ+VN̙siŊU4d GҸqcZjL "CACHIQm+Bۈ_ZM[ bPe+` Xk5@sI-@NHmpU &c:_PG4"'E2%ˆ`P}-c Xk5@KFO% ,7T:wD;uTejw.O򱬁jwW5` X@h ciծ]SNvyѥ^TiIYjug` Xk5P5P Pzq޽{{nJ`.cPuf 8hAAI k5` X @>sT]Cu%ӟ P'@gԣ{wX… /gP@&WT+k5` jsTcA㏧}Q޽W^X{R=EQݺuT*&`P&d Xk5Pb *׆UߣAO>ԧOo}`]x1j O(TKm>k5` Xꣁ~=G} `#uɒ%T^=V{⚲RiA5xgk5` X* _~R3AbZ`PЎfXk5H@YQݿ?? V.]Jg*1kjAv,75` X@(_ VWA5Ye2 k5` X*@~Wta{6lܜ%}VZK˖ ̙siŊU4dB#GHiܸo%f5AՄU* >-kD`P-4k5` TYquY5I 57-k5`  RꐡCUI`yC$@uju-+k5` Xi$:l( `-Y:`PCK|&@UkA{` gyC\v9H"2htVYWrɾ- u*TҵmA $"ؼ A ʲ+1H$EX)R"H"H!9}tϙsfyY\N~~P @l*6sTR%`8믧i.@5A@ TTP @(@~HTo)1mpʩ}tQ,4_ P Is@(P HIj!TI(@j(P 4iyL{+"EDuwqFo4 @[!jD4To + B(iysR@H=ԥRO0 Pp(P3-)k@!n[礖G Cz:7 3:]P|l5s[Qjo>QH+eC" 7x@#j^̘S;R&DX-)G]e趩 >ëzﹶ>|ongrf$ŃP @V MP1{&:vvњ"uj 4nBT%Ex!%iڵk2qA(P? $ |:z UXs-fZ]>@GPԓu~ CʯC_PKaÁ%.S>l^ӳ&sy\8(B PJUS MP>s8rV_K+֯mm-o]E.RرcA] D?7ȈԩSU.@"4,UOIJ)a+ʨ[+sUkUS>UzM-jCwi-(EU"9#Eyf^YsGUDM{ՠPnHT::@ֶ5-drZj=j)=ƌS .Pkk+Q">|T|(pU}Xkqe b|@.H P5 ԇm{`UgBA~e7F UB@5l/GUO]E#nKQA(i-ӧsI0Z-X~?-Xv?~,3ƌ#Au͚5vBZ֭kCє)SQ5pQ(nyqj ǔ~ꮶfYV q9ylwY(J͍hC.7Cjq5,ƟI$*a_Շ9?*q:P i䩷гE 8oBwiQ4zh:wЊ+hUr*Zz ʮY}U"X(MQU Oy1hC QҲ"C=@k0r?]>c}^s]KUy<ҡY 6`;P @S UP ,_zT޵z"=/ ,E<@,O7<`DqG@q$nIVsI.;~7']F @(@*6>e ~eD^oD=y{>ZpKh߾}To֩P,(P'Xz"HiHa#5]?_p( @*:V*\LILOmzMu]tVѢG(@|"6zx˜P}m^hRҘCy훻etGvP @(U^wOҬ+,iXw1' 6]zw>w7}}tU1@5B @U @(PO4AuitAZѺ[I֬MsqcG@vw PG"@@kP @(@e gΠCGӚVZVoXK8_K/㴈wʡ_@ Տbje5@栒E(P @4A3QZA::9m i܄9b1% b~B"d⪿Z_P* T"3.P @)&Κ3ξbꢍ}"vŋ4~j|~^W@4 Gutd|&wBUGrj &\M(9NP snC'S~觞B屢.҄뮣sbeP.[F˖Њ+itA|-HT6NWS 6P{{;mCNGS"Z&DW(*a!((!A^7|6$mhjPTCUb#e 7q9JS 8sDm Юԯp sxo>Ea P 3tgnXׇ/ ,.Onu7= %P @)o-Mr˂/ /XN:M'EAz_1ڵk2͙3sT{{Kn(S0A,4vX qF(~IG2H]D@Py0kUElE,-/~Cg!5p@E5WAO䐯775t8fˇ#: SCE8ǵ_TSP @(Pw (P~Vԋ/ѸGԩC#hCgO~TgΚIǎٱ:: ytXT}(^+`U] Wؼ@C^_P5焊c`Q?muWvW5`V1@q@0ֈ6Q)N eX}A5,HFP 0^Jo'@Ghk0IDATO;Gcz-Emii)XW*êVj&LAD ;}.mmW@۪abJY# Tu;x~4F|&T߲:v,mp,'P @WTT'OLe˗r-?[ K-%E6'!@)ʸZG|k"V}ܧUuq}+F[n0ZZ3|TّZWTժ Z+|k,(H}s-F{'JifB(pR MP˖`+Va*:!vU 涐 qsdNW+^'R45P @(BAuPE$uUJ@ڵ肾QUUC!\j=23|C-{}oukZyP ԣi*/P_5ku~C{qih- 5!aԇh'P+.',9 N*?8P @P MPŔ<$t]k@i*:uʿ[&C)@Ux @(PO4A?OQAP;ėgz;ađӘC0,_(!P @(*Q MP1VUp-}? ?c3q"@:1PnMU P @(HT4Au̙488(ᴯ_Hi&jA*Pi!P @(HY4Au֬t `:0Ij!m\8=ȅ\T2 P @+&Ξ]M7Uj_y9U.@]fjjjf֊of<+u&QKk/8BD=s]sPWՍm)7\I%55UY +"IWi,'Yg*yUz-q}(ՓY*']eP+a P uEU&n*:h_BT׾Ҏ|+jF{DߋZTe?OO5 #ZvYyV }PUkjQ͵y(@jNeTcl:IYn'oy0+vfG>f4Q*T1"@5x8 T mP=yQUKU*GQPY8 @ua^U5KHP#y9Y0L 9qYr T/w&mQ3 TWX *:qذ,C>ˌp}Ԑ0Ç/Ѣ8l;%:F,q~|?l6}wP4)|.1w< Bϰ?Tuvگ?".OGq&jwwH\oL:]&wj@ա.= +]؉Ȳ9*jXiRZN:x=>soeVCҼNJhp SE?}E|P*M<@ʦmс.(_&A5E ߡ}x^Ǧ_![ʆ:O[EOjp֒oȋ[DFvB+"T% TTuX-رc#Q{ƍtQ2e @5.B@ T™йGy~sDA IHWV@DZ>JB}1bb( e۶@v|yY}!!@}yȯ\XDͳ/BFDohj|*7}^D^u0#6P l_U={Է51c0kCȑ#t- J Tmaa ~fY, /VR@շ.yf~n?V#xEjV9U}KXCU[moOg5UW#{uݔۿ`+K?Ȝc1+FD5Tg$׻-[VUQRDutjm]'Rk!ta#IPKߎvD}:Zzv~[D:L6^E"TO_DXY7%٧8oHچ"\!m3_7шjz(򹀪wg$PUM80ugz@5ʈ (RGmq?{۰ʰZTϟ?OVիW˴f˺vz]=}a#6><L}m-tP5ǻSk[}PW~?({Jm@U%^y1T*ew~>)PMPa]w;w-[F˗/o i#xu@ffj3fxV ZGP խ[Cj(.]--Taj:P T3[5: ՘ ,F"LUmLPj(jղTWP GT(ky^jk0{,V:j Cy_DTj((W W@(P )P-P˗/ӄ IQSJ˫bJU ԯ[ @(q,@f|!B7Fe @(G@u̘14<d @()P PehrbJZ]P s T3W%P @(2@5ՀL@TژRC(P@զC(ԤʼnP @(k>d [jP @(@Z TRP@*vP @(@C*PmjG@6f (P dMjj @Aue555I-C&eR5Ujafj;UoOj??ϞZ۵թZhR=e5{Vឤ;=,Gf:-;Do!P TueGH];~TӄYjjv#GgK8VP+i싸A 3BEC#rvw"SO* M6]&wj@~Z%A$\PV ѮPu=m&Ӡ{N&iة2^H'j%Չc@hPՇM"9*Я°ɑdJl@vXsx"[?9w}em/fÛx#ՇOa?_/ &;ke>7ޯ-텫xoD֞ _zϭA:_0% n_? njxhV>fVUQ@5ߥQ;Qd dkueIP#6U~]n MO:-aɟEHv8:Q2>Xv}g9z]͟v~vV>u~>}~_edu^ڹJ7T{mτʯ2i#?{~eg(K:}jAuxx6vvR'.;P!Uj{ho546RAŷc(ڶzaa[vNeݯX~>u_#?>nujxK<ݭhH Tg~5PwzkQz?ֿӜpvuǴAɓm6RQU%P=z4]pZ[[m=߰6hmo#Ukb(gIyFP}*.4GQm/+2t(m79k-Pz?ۃ1eXW}GŇih{؍J;JEd{fG4/w8UUAsHW,$z_l>5}+_o+_CehyTor}zX׏V~[lk ?խ[z`V*QfZv-*m:rr "T5@ (CCh:9ֵgSH}@[mȆڢ3#:?ß_VhTm>c j-[ʢej*Zj5^V:mt0-q(I T3)02@(a:(-  rdAĉĠjFU/_\]@r^OPg:HAV/P @Q mP*GSUD TǍG }G}KTMjl<PzUm{E}([u.°[ QQZ+_(b_(P U5WRDAҥK_J}}X;C)`U5?SCT0@նU=Zk^M΃7<À8m;hu#~stPJ׵Ƕ_ @(@ڠZVk@)jH'M d@Q$ W^ w}QfU}ls+mE^J7Ap P @Q/ VDTā(fC+O0= u:)@VyE*ZiB; TmCjY/M̈i-R7 @(@*P PURš<GŔ_ڀ.DV+9j%]jm{RʚCP&CQP VP+XPO +U8X/5UKg.+L@(@-@p;@JA(P v(RS81P @(r@5ՇC|+Pw!P @(HKAĉ?17y@樲U(P TQjD*@KA<(PC-!P @(k+B(PT +@(P )P/՚I C(P TT!i[ sP: T3P @)P[!PQe(P @(HP̀*\hppMF׮]; @QZ?u@(P Ij̣eCIV+@5\B(P T8@I*P @(@@U*°PP @(Dj%(Q8 P @(NjU) @5?uB(P TT7mDԢ)ao5ׂWZ:@P @(EY 4h @(F C(ęP @(PO TT!Qz Ta(P 4iɓ'T=aj#: e> Ta (P @?5SZ3qa(P dZj͛ˢi[ sP: T3P @)P-P5a Ty<>G=88HӦMk׮ĝZ@(PFIPs$jFn (}4Ӟg9P*`=~8M>ڀDCzաI4"P MjjbTUI|J;qO<$RST?Uo#eĿf!/|d*mY.@&QRDuĿ-1Tn/ +PUY W ԯ93_ T{6WWK]# $.s~+9P TTz@˴e*1Tn/ TܩU eX#d @l*P Pc2Pݶmmݺ'NЌ307A@l%*;ڰ]sgځNByO a{% Y?f^?5U8(?׿k+"-xddCXSۋ_2SJبb!^8UQZjj T'L@Qݾ};رC&7+[oV f߄&s]uιtk1_̷#􎀥'eB@qy jvhʗzA5j<-jȞ|rUy0{^"jϮDPy%h.ZGp$q^r|Aڹs':ufΜ PS8 dX܃p9o'R;ĮvՒ=B@!s T@ (Z?OiaGPM|U&S d׷|!@gΦ00E.~'ʊQ]*/_z>93컂\yFxZJ s&^8!ȆU9O(9gT Â]@IwF> d7J? ik7YP Ki}PwAѫ s)g@խa1l< (t/GRT*P}$U* [}xjYDgd߲UɕWT:¶G]4ah-ց_0ȶ"jklWs k+/Z\(o]@-ޕZ9Wi0axCag:)9W@ T T՗gB̨M:2*`ӧQMq2(-T%i&p׌(SF2٨~SʣQ|3yU ʰ Pͫo(@]+iS>vUӓ8֙+(CcɌHT 3ITkDQUDT#&v9SԼG]_uSȿmn+$j9W DP @(Քi+Pk=P @(Ј TTo.6Pf(@Ŏ ʋt@=H8Q6*`ߨ5@*PJ ,߷W''\"OsC-4IyRP:srWJH\"? @<*P-Pգ <y +PMX [f>BͰ5 гATu W;ոFZH8/YW*@5@@VA,\BF&+,(yU!uFRʹvN伌-ݡȈi1  P TQOYټG##oj;95G*IȺլXj2p:A"h+ŎDFewKkt/~֟CEB> Xv^ձ9b*[o8i*PMS] @PI\QٮGLPITQslȚkD5%YF9/qP $wFzԜ-񋨆jX+Z#mP dRjΝ;_=ao&LA*PM^o5?瘖wdCɮT,d=ގn}y]WZ<3J-G?9P "w~AAЗ}C.}w/4r~MP-5x£|9Ŕ*Pr&T+3 Fj4W-k(@ggNoGe)٢,<-[ʇ O;M ƭ?K`6ajX65PZ @,l0Z־+|s/nBM_~ݏ[R*@L樦's5tR/T|]27wW/@i?OMUI ->cݻwӧiΜ9t5SjvlkF/aʯޑ.6^uf?W}83 TT`* |^D?!O5vGaj55ԷJM2uRS5/qWV4o+iPrbJ.\$޹;P [o'\5Qu?]{~ӟmٲER:0o*בTn_U4P @(@*P P}衇ShDT/^Hfb0߸#i&yfP}[雁 -Vfvb@t!*m۶MF퐪A%Axz7/]q4ڨ @( TXˆ#<+r; T9Zн!';Jk99 /(*@z^(HUy U2P @(((Pe0*=O|VAm$^t9!Kj?ir{:|;ZHRO5a P @(@T RDuĉ2ʠpҮ]$Ξ=4^ETN0Hs+^akbUd3~Unk99={NETPoFjnn.Uj2P @( *UY[6NYf95^ѹUz61|.Z@'|RnsYN_ GTT?OҝwU*4P @(QrpoD#=i۶tI9sW?Xi'@8_Zhc#,꤃{^{iʕzTޖ?P @( ~w'i>o<9zU7o.-3#'[ouUw? |ct7W_}QUކ* RA [NS$җ$a P @(@TӧOq^O~Ǐӝ@UET?=wM-˗SO=Ps5) A)SK&^ȑ# FT55yP @(_ zdQ;vXg6n.i47PeUPsTQEhq:~l #Z @(i)PsP=z4]pZh Afƍ\=FSNuՀ ޽{#ETyٗ_1sN'(\O1YgXP?qrD @57 P @UqF-T5J|b35.[oB*VvkA(P~9=geKf::t0r-#605+P}2s% e_`n <5PaDUEV~bo<0P(P TK?P;cMov!>OëRD~7`"KhՃbzg'O{ik}'ŧNTպo:P @()+ {o?OʟHOžf OG0P}G<@ hВhRY=xAu'ʄD|2/~baISbrhoi2Kli7 u[x.+?睛jV|P @(2@XD>OҽK֭+}"dHu:ͧKҲ2zAՠaCm۸c̟WB;wDʡ>(} ߯9kưYia:T3T@֠P @(横wqkZCw 񚐪L8H&T9U6>T@AQ Fi;DT3@P @(ASRzj@m/êsT,(mC"ܱE@xC3d@P @(Pclh=~K_*ER"zT@U[ԥ\ eH)9#)a0Mhqy(P @*`U*XUsR /@<}PETϲ.[ZV u5$?O#7?O7x=Pb.2eH[IMD{5ć7s4q;fv\gZ0(Fq9 v=u>m:o(?:=T.P%@uxxx͡JAU+5Ο?OVuumڶ pqPUXieo>[sN*#q4SRjFUO>^4fpR[[_6lh 7r*@]QOugOJP3Bj{ߤsVu#*5p_j){͸ǧm/?(!ZRRܨ4OUS}*T!WPTŒ&0PamoڸqH2=zN H כXC';'j؝3hb2*a?hxcYȰD9fD{OQ?EY]?! ;5r|Yt~]n>~ _d뒽ο_qQYfߦ9lO Prx~iݶ_aj]ߟ"LmQ7Gv] SOȠ:vXiN[cǎTPL?Zmgl/=@>#jIDGU9`z+#MYRזraaάw=Cu;`AUSF>7;L_QԺp`]?f`Wa|Q>T)Eio+F`nm=C忮ۯNS!o ”]a+Zx~32éo~_hJR):n8 #GAuڴiV@9Ϗ_^y%5]gԿ*kN=TE6 !ڇ<~8ze{_i.ghFI w{ uJJIwλo[cؔac[g @2TYoʠz ՝9|V|HFUklWm__ vs +>m[Z@թ@&+S/moT75G.#PeL*>yS∪U*_Oj XC@/\>%|( f~┱D)7MYc~ xxhL6AUU_PeXUQU::0 ~_%|~8i'NťpZ-+DzIW_}yLoIOA7*OO.˄ xx kx(NJϙ Ο?_~_D^e)c>/"Nqs>QR^P؂=wԳgʉ~o\F. <@ M5#jNC4&ZtAw9HD;Z?z~0Qʒ2&_$Η9T77iVM-D&ߐ'1FIq2^(#UtJ)A~Ix , #\(DM7-},~>Nwy5|_7LAe=JYܝ"IKs̈^$ 3s$ã\z%PUO|Bª;M?}K.J oߧ?]VI+W^o%:w@dDxL{@A)C>_X Usߠ9HPۚM7$&ZFc')Mw[>)\2*JYWSs<4WjLU&^rDݣkU!y`.s$w%8 _ f &= Tyի?8,qԧhC@3~Uns->ԳgI(GDoxn<@Ao2XKP  %sd'%zQD%WDO>/_/O>zCCiI/T&=oғ,<_O~f TUT5vDUgh`.xF:3vlUvYw UQNjy~Fcuy{Qf¶; gqYJ۸<-^Y TMp*O*2 ]ES]FhC\# ,< ƒUɇj`j0^C_};6@<<d:{wV\IW.j@aT{{{I ^z3zhzӍt^]wyQGF)_ߚSOM̟;Fqf9Rհ^ĕEaV8ܹ"GqA*pjPリGNfc;no T_}RD;GTy"}3;xx:~uɯ//}KVT_=ݻ(9_;' 1ѯ8!en7AP˟qp\4R 0準6oqsbusE&'QЇ>D}7,_NO=@5CoPwC+h_VAϢBAs5ˢuQMiǿS{{;@^<<1y+Tޞ?y!*uioJMS;>{CM};i~qq(p@4yD7|+p.z'ޠ/Žěc2Xo-<o<\r5 gf}׆:$~k|o<DTpQ>C7j/˟_],W^ei8P-[wTjuԊˡ0\s .EyyQWªƋ FsW-EU9jTPpaX{i1Dɟ9tP T~?qz ҁ {sNU;UC!<y@UgBj"f45bJ\ȓ'O*4QҐOQOkڮV~Oo‹48xRXqK2~?}\!gjU sx2o/f ToG'J|(մQ0-AjS?P}2s%)Йg!*:' "\DZBKxȫ_=TϟO]rED'O|^>?_O2F-Ky`ZHTW駟'>}4}OwxQw P<@^@U֊#IgϞ%&|~K<)_ԲT~ђD|2o/%:z\(i߾<<ܯ|7+ᩋ.]rbJ͓_Qrf֮]+#<<7G)tSJК \>_|vܙ裏ҷH4 xh\0lVLH4PwwCvokz}=ICr <]{Ѻ4F<@4gK"*:ڸp!qn xx"*)^U7xxx@İmxxx2HTDT$%8<<d]]]pÌd˺Q}/q5`]Y(B}#2*XJ}Qo<#.|6G$P7 Px4h<6W/~!+:^Qo/Kρ %.l{0/f :y<|\ A}<jzr֗uvig<ܗ& /Rh uG,P}4f<w9o" PMFZUPD[NPm"Po>)@͛7t 9s&@ <@=@ʕ+J1GwМгi]""rٔ^@5}o%J0}Rv4 'N'f@ݴiL [l'OҬY`)78<˗/SZpSݴs?@ h|Fcf\0a.]6M;RZjq]h":X+o/?K~F$Tof{wTRq{Jm1{9+U֭[%Ξ= Pxx `N/r[wэM7] :w/38Π^¶|sW_#,h u>wa ?:[]PzAW}PM}mV /}Qk7/gE7-}K]{>^2TN ۶m?T̙SLx띿ި3<@HTU<`:p5!2Jz#IheԶUFVTCڊY z:=m/6A/*Uq3P1#O<՗^zO{;g:5x'-]{/):{x96J5KAQ+`/j^q H R5x0ۛ "w-Sݻ!64zɿ{m/v4Th*@<ȡ?<<$/"%;xxЉ.][vƧws^7|^qihb@H)UpjF\'|0VI[Q#!^mxݲ:Bi T1Ť8<<d 9s&5MFnui7N<#~m7µӨK慷@S{[:3:˻@ҏvhPC}y:jTۇ7o U#ߤoi]-~mRӊ<_mBy Pƃt<<$A;ⲓfXC6W05ARP ! TբH#+*]\cߪxs"Z+AkEMi|y(6Ŕb1%< ~@|<ҽ7y/@vo7f<@5<PM/يT|_AUEU'"xpVkg<@PzIBJGjAm#V 6m"1Ccx{Aߖt4`}17;5NP}=իtS PC7]x<0|zʕ+488+:x+zm/)#MHjK}}{O0@Px[':A'xz:;;ٳ2+:x{MO?Oψ#HjK}}$>J{7G-%N8<ʑTQ֥acxȇ֮]+#~<<)Y XW7J[ߒ/q5`]Y(l1fwm /У*ի#zEb0#Of=v͚5 @0y|<<ԧ9AsT>cd&UT;;;=iƍtQ)v1@>Ru<<Ԡ9N+*j֯_/R56˟[o1N 7'xxxy@?y2S):V|͚5kdZv-[NCӝ UfHlGxxԨsTCAu̘1t9ZVXA+WիjiӦTQun:uA}>xxlпuj(=Ξ=K-^.[F[VPˊ:u L<<?L/________Пٟэ7(ë ;xN,Gq<<כ;w.vm21t A( :fP}>{t]﹗.mN =Og~izꩧdz'{{WU(?k.ڹs'رoN[n-[Vi۶m>x=9|J=!^[YʛO]]Jn޼*Mayka^Շ.m^з׺22*_Jj{sr}VW g36Km%g_{/o^}rUz{}¾Gd_W;ߑob cǎLǏMj;=*ӑ#Gdp/}? ֩QI]c2N}'>ÑX>nĉ2qtV%>gXQaOOt 7PXHrrT?Ϭs?>RR?o*ĞTO]=ͤ3荲j/A?wSXz׻EQRɼʛU{Wmޯm߼ի_{j~~ͨmL?7_rpٸ5k'J7cyu̓==,:l¦E+zzџsIj;z[Fm9r\F=c̶Fzdw_n=ž~{+G)HFR}S%OJ|:;;W>Ky[OOuww7nHڰa_^iJLիiʕk ܛ6mA/69K5qzK_O>(%vMI&Y۞={S>Ҹk׮+*UO,Q/^BP]o6b`P} S .A=tD@be2;fjV*~|$`i u]T6o;Ϫ^VӂUe|@U*CufzvW?\<T,&ZAОo~m0 V~Xgmd~ꓘmm꬞|Dz_W/jBgª9tX5G@p$Uִa7IXs |/A8Cz⡿ňjQ UPUÚtd~X `qIwZ¢ T7ztUhEV͈j%:~s,؀j~==oh fTUêYwQ^RU LXUQUC:*GVu] 6:V ̨*f;T G/QլDV].}滌Q&ծ]# 8_[ =6~ .jU5^*`&QU~>1}eO71`r| _{-QOC͈>9w/Q&&]CAQ VC2:µPkU>e(;`WPUָC 8*y6./ .^ :28Nd5 Vwq|[UaCYuQ} TP G?L<3SOç-5~kdVɀ*χ|MJ{'DZ'ia sT*iY[-uU}l'o}-}׎ڮkONF~[t5dw~w~777~7e_5$h<<pg3w~_yF55~Z{K8W9FZ-xy$^ݚ!W*iIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/figures/desktop-workbench.png0000644000000000000000000003035114023111777022172 0ustar00rootrootPNG  IHDR8]GsRGBgAMA a pHYsttfxtEXtSoftwareGreenshot Xn0_IDATx^} |Uwھo.]DvQ"TuGUں-XQиE@oH@ l YK! |~w{{r͓o~IΙ33g?9L\\\(Q H2ٳgS>2ӧA;)A ىHu?"* H"*xѨ n-@z4]&bbb1+-' N' 9 Mp3L܅)I̞41믿޶2p:L$hH. JkBV(LȍGb }yzIϚg\˞rS`C 6`9>(S&<2 b4WU@8 8j0hK$=fDv' nC3۴Q #F7^d.|J9lNDZ>yAlM$ k8KA1=A fj03[s& 3P pAGB@0gc0ˣupQ{jmg@whxΑ`ggyVe@xJn_Tc t&ȑV;RA` `^ӽL#&u"wL"3$2«eH;m;f 2ŝ׿ \63bbb2 H}Yj5,ijHA٦~۳ݛXI`oyc{]kv+Lu>Ma)qsE`ө+4dw3g H6m20tS-2ιwL*Nyo3pZ0Fw=>3O$ŁIQؙxs)RN4'9`c ONl=3d%/)1BՇs=XmOеN`rY.?OA*`&Sa!J}@A|@HDTe !C(#0C4 S7ZPy]cDc3333FFܕm"f f f f fJ-u33333Dv69t1||eS_z n0hsp׵ y`P}c瀄k!Ju?Fp,oDC w)p`GKKvH$6hCMM (QDR Fh`D-Ȥ!&2@` g&hj4o5oG@@@@:#f f f f f]SG}b#0b&!:B9 R+=^:#țRQI&S6 JN i-C"3TL(B/3a, D5b sd2uCȬ1Bn (@z0d`4y$Q-YNMZ\4dC@E!`W<"2ltNz8TINT 3NӮAgD58 vNc H[GЛI` 0I-Auu?i>b;cN@@@@@LA3&$6HHKS@Z|҄Ć7:}3h@Gܤ0!mB]`IbNt#:Q :0te$LJ "exsa6Mc=) }d}Ŏr0֘`.dIw;$xBbM'%j$1&1$ڕ*Ŕ IL5qLc2T5S$a'N+80Dg$L>"QD5;l!0$:n.&FK1)&nhY|&3o@ AJ38gPi0D2niL&?`;^04cu>ǁ:ޙ)O e C`ʸI)]lSF11^z+pk1qybD2"!TG,@_~hWbbbbj0b1111Cx im+1111s5Ox.j")Q i'PD d ~5W9@s;:QX} EJQ+Jh|?+rd|s9ok0PXsE_/#N8ΞAe7S3i]<%N'OXj9ֆN:C 2eb-cS0p9ĩMͭm'P> f /:"```@ 2@` qˀu0d˜+ 'VD}g`@djd`uz[2jlOYN Fiƌ@߀r2gQ m Tv=ުgR{FeiʖǿM{[KSaH=`z;ݶ``%@SN(=uƂm ?`_c`hKXzY(EЄBX/6E ,cgu7ߔcv54̗3Ș!aὕ K V.z3̄s}[kw-W(#}Rϙp@ؼ-/1 { 3bRyA`# l؋jn7pAǯŹ3uVxXg)&1RPa Y[hW,S.opRpr>m3F ='O[0Nr0t20hfM|f?ɨ<ڑ&/:ؠh <`pߓ <Җ)?+Y{u t T[X]*@)!LWJ;0֡kwỘ$Fc 2@K C 7p%E JO .R`op 3Bd 00ehf-::,u4耫C|R{+̠NUd򾇨|=WTVV he0c(M<\,ا"heMf=EKAz^V7쒮{LW uªz^ [xYE|^>g23P\ $W[|`lf_f|tV U>K`8̤֎ـ0װ/Y?>v8JA[Xum89~Fv[v-gf-.ﭒz _+e*h*K{]J&u˂3QZKVoW$_7{_>4W)àN&з(u|ϳcc4&F.BvJCe@l3cuiL_00()`3C3pm=Ex{ yy&kRbALx=y3 :u6ȀlvAUpM-Jm& Nf6k2c "Gr}/F_{Uipx@J Ĥ0/3)"`p ;PI 3/\{;} ^?Ip=~T&BR(r2MMPXtf?0*`0B[[ZZZPTTQ@XCsY9rqRR0|ntC_fX5G'$0C[6Ds4g=ysH6:.3k`kim=5|ѽ_g+LXmy垵g5_@8z(k  O}z!!0zl>`P|nUTTBa.S_1+@Is*տ307L4.ʳ5N YVp`R8#yx:[BFOZ nû*<+QzL#w(Nv5.r ̷g(`p0pӈ3g1ߓX3TVVJ/^.c < @Kl&RN}/';Y/|7w CB|HS t(u>xࡧ$ Gl|s9ϯ*˯:uDE ܼ͵g1uEA~Hu,XJVI$f F4#( |霧۷#)) رcmZqF|R3g.͛7O ki ǁ!++F?>|M6 JހԄ0w\JɟDf,\܀!Ybe0piҤIR:vO@%}Mpu mJ+H013~^G|ba?ት_D#Gw|k-OAxIC W  :P 0 z  #>uߌ1aX`BdL"0^xr>`1I˪"ۉG!Y R$h/q| Sw< B. 3Ie22Fs0UX. va <*=ڽ{ގQ?.%n6M2Y6b &#<6fNeT *A00Ca"!w%z0 4v1$ Eb("* ,a˖-xꩧoKI1sx:$U+Waر5k  [nR߾}W\IHsA`,#09Fe) %34^ڸ]!7c VAf \jf4H`l<) i&7Γ3hDR ' ҚInblz$DYf5&X('b VY(|juF `>sqq1#%Rl- S&*Ĥ,_`# תi$sAk+LRinO 2p=U0=fЛd&fvbVPmۤeM;ۉxͭ0."Ga&idz JkXC#ֳ ^vM!''/}>!x@N<)}zm C .Ģc}3<WyŝwމSuXYt>3;< 6 GR9"%.>|8}Q)?P?F 08yW[@`P`C8U`1Xz*|:555x'0m4)3ܸaht׃-;m7/ B0*kd@` 0PXѢ ݃yefA 2`P#OPD =K&` 2@` hrI{=cbbbbbX11111C 3!f f f f fe-Ȼ9Tx.|L@0hP_bӉlv5k(Q:[A@`Ђ.   b}D>1+ a%v4{y3|؟VВ|] @:z&p@`V Bu`s@YI krX 1zb5EB\yT:]|'1B]8كk$--܏ЃwEO~nFPL#~^^ vgVg:ТvŰ,IesA- ])N`Rwu' (ZēXAspSmOdgZB<3R)8A G9wBT=@ӥݒM` 0n2ch;h{;H@@@@`GkvQ Ou9\ OUPz jh1LU9@]ZXǃ5At-fh8r۶f!##{C8z͍hii9(++AccO 0 \<;1\pI.߸虇o^ .?U).~ǗqNϽXTYhhh 0Nefh-+݇_ܵ߸*]Uop J{<l>*\ zpP+iJrk̠?PH(Qb*Q2D7;D)Rrϛ cMdf_R0 df~wvŞ9eYCm]=e .c*P;w5 u%#&>ML/x7>W ??ܾ ^3kjU3;X/طl' >4ф:NubJ W)tmвw5d`𼟦Z0n8 UU5l Wޗ+OE/GqS;Gc^\d}2~t{QדG_؎ WUw/p ʙsx^u0(Sдz @L39LE?`R~q 0)q N#CցځKq\T1z\+\Wǝ~!236b>(IyRbw;}# O&6(^sޜљv򻪅5`0c^tgL*((eK0oGXp/\~/| ><>,=Wn}?c\7߽u'f.؃ܜ,Ӫ܄-vr@`1e< -=lkI(e?kRLTo7_nmmEee%[Iu뤴r2p&^}5<0c{ؔZI ="v?m~(o>7̞k&i`jU(Kv0h_wAX ?S'NS|RMKCZZ*V%%!sv?But DZ{~A pv gGd L8mV?o6>I EjfЮg֌/^@AbHIIvZ$''ctz^yo&/_!338zj`n)L%M 2c,ζt>Qzm& ;o6YӢb94[XZUn8 \mٲEZUJJJ{n:'-fΜ̷Xz2P4$k l͹vW=_L;tJKKQ\\< (V2S,Y7o^@`E`[pQ~@` H20۷ۋm۶a֭oIC*7 0(,VC~~ܹS7(oR&1C EwfP`73}H`  C4pK@@@@E@@@@U8Z -Qt uyj]^%RtXW9%peŊ-X.Ҳ9mgXWzIY,}aew'!(_x 0 <7 cߟOyl)6nƄ{ ahպNh%0ƽC" UXq Yȥ kAF|oH/S)hM n.&0,c|! Wqu83nƮ)ˮ'#Kz4KS  3nj 0Ȅ}x 2V.גKҊ"\IhoSQU>Llkg`hrBASh>qb4/*΁P$`"$,v9ٵa '߅ŚH_r evS۴bڬQX#9 xaj!cAIۇɥ Gg@spl;=)y `4Sٲ9tqBhr) Zƫ+wc,38؋g1 g@lJ*FYy!vcǁ;S[ysa,^EVj'201g G<;GyC^`K02ae2Fxa ‡ٸovc^MO߈ GW2co\4-o1R9O޽Y67O b>"p^e0pfh^\Y0 Fw2_Kh`aeM|gc1xuVr`V#Q$Mqͣ o qBh:&ē3mxtv,AنbϬђ GJ1xOOb^vLHR0x .8*JܱYU&76lMwhywK`=s ̘Ka>|sp7c- P4 Ջ:zb|Qdcbr+оnEk([*0G5fIyQ` lm :PډGQxY%5HeX X0#<=z&9 ?7e웥ɻgŎ7Z `*fЇWI&-Z5a O`gMΠ f@m# +jWy[Jjw}q379 +ZX` ]x6g8٪#t|Dȋar;gNT55;Ҁ n@iC@qi92繶VOς}XiKMjZg8OO< o {76|ZډX]q U#+l-bźϐq#vA1c)JNdX( R[`hlnH]%|I.HW!F5Ո%H.k]Xc8 V_.ls^Te 9X↦VÜkƭB<凥PVLhXy`i)XׯƺЛ̐!2@1vM33333DZF{} vʊq[DfgճC$i$e{Jk ѴZzf 9mc?;21aή%H)Lam(*/@YE;`Kɢ56t-!Lާ5CW{j㾚}@p<&};F [ݨSGn=}e Y_ 0~n{+)un 2 ;9pO?6 q"nx)\k~q-,qE%t\;po៛agEgJ_3V3?-U4 _sz,BEkwy6*9?ߏ;K.zaW^k/o΢sCBb&?Xsh? ߏ>1#7/pݯ fY8w4\/+enA1HZWO7Ӂܯ>}Ν,,3hG\@j`Ad uu5HL\>}M]Kr.3~խXV/pטX)))k!$s>bPv }n~OpS{z{pU&h[31yI$9S>ƭzu% Z  f$sG;]U0%F=TRm~Fffh6kt Y;R[bwď: ?Lt\?qΟ`?ڧϕת˜#˸& ߊ"3 k %wn |DMߵx 4P?jBn~̕+K`().F]<]8!g￘}|o ڋ~3jm /%srV!)%s#3ciՠ+1N lV*O|_d?+`\sr g,IF~nn..^9s`71MG*;$sFؑ={qz)^R8|mw#aYi\?fP&$Y̘3`jb# i&lذk֬afԳ2/] z}i}}>~h$L+!"`8|06oތ ϺKJJPZZʘ`233=;w.ϟ)$;cj9A3ȑ#fK!<(}wĿJlEIxUqO 2l! ?"IgeeIՖ?@ Sl38𔟟/1FYY"f `Rv`gz|I g Rk{6e bӠ>^}s0{lk _ePIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/figures/dock-toolbar.png0000644000000000000000000000600714023111777021122 0ustar00rootrootPNG  IHDRZ):|:gAMA a pHYsss"tEXtSoftwarePaint.NET v3.5.5I IDAThCyPTGڲ캵T*bf+&F5FRu+2$hL"jL $ Qredcc8P瀹8{ 0?(~ۿSVA47788j v)-L4<^cwqtww$k׮ix֭[cDÆvM{ ϼ "u͊c% Rn,)VZ!Z}x@P \[[r˝CKJ2Sbx!|S&xEu9cXwqphƗg5qsL>"6ڤM4ގo󩫌OH$ Jүdx$zv|!V⹭+>|R~|κlځ񥦦VUU5O'|\ZZTHNET=E:G5_&1cR9'>gfaiSXK9{ Ͽ;؜(xuTj)|9蓑! eӶf''B!`e*۝rǴߺa^;?ʯ6{!G[[UVYs5"Npphbq״+QRRTE pKϣ+4;Gailі8RUDl:vx<,icp1rDN dRN%DCF5i|&o2(^=0ܲN&`sVs_j" ªAGUpl:{mڵq 8}&i26tɱG-j^#۝rǴ/;~C yBO(po`\9Q"d2&CqD`bF $!>}iܹnB?.YBM&@0qphM6mrssE Fc9وMT}]qCў'"])0B?ppkm,]pvQ cq*f:K)j&*SthȌ mN裏..tB*Pb2a1iV8/_`=D9 z|cGXS|vJE0iq1]ffҁ 4;\z}@2s[jJ0n*ATpHsH1/ 3\9C/^1tF3, F3ĹFqč%%8*U"#6%J͂v tǶ߰NNNAEp!Sd@V *+Y@W:z3zR}(wVV,^+LwdjmUTt4vwQڃ#h˒iiiȩp߼y\ŅEhhДަc8#++ Y)r>V^`kP43w xo x̿qeYU%>5:3-#|Ft)d2NZsJAwFꘝ%?/]v8a# j4sST!VTT0ёƇ-jn.`wE1SC 9T{j/@:M4'IuԤ>5Iiz؉xh4FsmcrT֭[ߟfppk6|'}D&XFeK?a4ǤȤPG ZZ.+w=ދh4 A u%RDXʕ+!!!*++񐰰00JƖ#7yiC{=g^2|{J]f/4>*-jVUU;[^^^yyyWWwrSS7\ʨٕTzzˆ# R*shƳGY zzz=z4l333onlln9 V#T!?HO)z 4N\Nw|Y3ef%FqBӸ{yg%z8w_ɭs$4^ӏ}}}wt > SE/TXK 4W2&懊o]$… |pʕa]rii)QdQ%X)Зguf =Itى|n҃ {ϗW0'&k3TWW 媋RdfdlЄSwL=?wt M7'kG.XMnnG7l=q0]bw3kYU2T(agu{ΖIT+k4 ߀2+qLII 󲲲fE@_J%R'rutNK/3Ol}=gN5?*nJvE(nEJffred Dޗgܬ:z/(!2t;/H, =-n6}p@xhhmm~CCCaaP7 BRu~umm :0n^)>L*zь#/fpVxTS^հԳQj|_uLG y0vÁ}TME`o@ZZZ4[t6,vT*+iZRh~|uB[&#3>̏i^"fKLIj 놨|؞@Ħn 7l8o40U_.msG]\hpzۉZ%b49@9EvqY@4A"&%G[ f9[ںJiclp̢6ehΩ1zO;::B>ɅDX\qQS !7/2_2zmYЀ'L)@@"R Ml5Vƴ4~W+(([ !֎:KSx.d}1m8Ɗ-jʾ8֦n 7χwe.Tp|SKʍW~͑Q3v( 5nPC #uh`NbB@E XZ f0btVE_C(aS}ÓǪۇ[LּӈD+q@䀚2@?ڟљ`z/$mܕVm%Qe eł% q^Pl@xK桁 G8[„bfD&g Š.Ef(D"Nk/krjt-CvSHSHk^i׷j-yuŝ{ e4P':h+h֪=>$++R2Bӕ1ahR *;Ζ~-gtY[A֒5;+ mf|8h Y4Ԛ# RRRBa l>VmO(c <;=z`U`[#rC遂p+osa}"N7=lII,ffD4,Гw 7h "KȼOX`)k4<=Um6]dI̺z%&K9h 19a%m̿mȬ1Ioi乤l8UOK@qmxD6R筋f”t<$_2ep>_Zd-6:Ph8fI7::644t1D+uSIV!LƖawcG2Vo:{`]UwSZ2f"\#d@zhx 8AIRD+( .mQ{nEoSkNiR ='G#ɼQSR ::{T'S(PB)[Tff/&|MHЊuaDzd@ľc7.!DOH\ nPD߻wO(Fcr~qDDEpihX.n'"IP'ŋ^7n$%%{M :Z6r~Y Îwg?__M}l\.WBX]( y®ܣ0X%/l  79@Ya)B9 (Є72U"::;9Ba t Egׯ^5o[ڎ?ֆbh NF@.8.=p<Ɯ`yk,snRP^.7 5U3HA?4GXPC#GP, ,oi";kh0[MUT )_z;׼YZ4q:$nI|JLHdl _T7Q0,`!aBH]# ?y ;7K`!\B"($a~`ʛUԋ_^ R]D]| (eX]^Q>MSK{((W&A{y`D,_u1,*BF#p^i"H~f! 0U\ehE(Dep5A{\B!8gy=`Z/ Y?ƀH[;ߍ*olV"K!7̛JdP0B1%\WbG8E,@p*/i|+A +\׮]2a&j6|soar"Y oF5؜?% jS)&p* !jdLD"'&&R:PN.6ߧA߉Ԯaz+ݦ?4;JLjzSd@b#8R ),J> |LcK隶p f5~{d6O} +Ilei|ҟ}K)<:ox+xܰ'|E[4 %oh]W_{XֿIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/figures/email.png0000644000000000000000000010263514023111777017635 0ustar00rootrootPNG  IHDRN ssRGBgAMA a pHYsod2IDATx^y}XGlzbcg&6 kɖBvc[O4ږuPȖ(ZG=I ]rY;pQi=6=81$x|,>j/k֬陊u2'=tu>ǯJLzI:ӻIv<9/.pR@#dv͗f.hʪ_vѧ=gNR4XHي'9U6$1Ƀ!b:u/&M(Q‰ J< ~SAqRœI4鑧 ۴IuXu0E8%L)B*4fǴ]K*8avYqki ȓ.Y_I'NrЬqR܆@8͛foR)j@tdEׅiڹKQX<ܤslT?Ѧ:y*+SQ'&V8ɾMNשL)xRy']${Y',oJ#LJO@L}-7D?m6 'Ӵ]Z'9ݕ%OyY)kI6iE*2XpRפ]?]M#M'N~"NY(x(uy*T8ēI>ɴi/f[C_ RsNQˬ$Gԩ_TD)͠o[05l9fQSv|ܴ Q}]SL#$#)=J2EMSvoq(oי(sSSS$*lGv#Nq~P譵oy4`;En[Z$; d#T{|isS펚;- lS4ܪF c3U삀:"d^0+S(oU>; 7j.Q]]N"NIT'UPEmc3u'ED&Kr}9)$#N;w ^ /U+K+]vM>qU>vg~ߡo-Х]JW _E_B©+z-9w"d}ɳ;Opgx:e}1=wmM1!Sv~NPIHq%ܤNyԯx*b"OLj8u7''^ۢ4e'S≯k׮ RLS"O<"~Suʹz?}pK< eks'?joQgm~=NSxB8Zw׽}{ xG;wzepr#O/`n X㔶H:'MbETpcooy6~tQa&-b=3'NE'oI$Fy:jc(>К|.q+ă k]{%]rMtg3ݼODo|_]>w ;)yO/}nw"u ={iTG 8yv LS"6Su,>M] = iC'pT>[uinN^ۍ1z'u.X^>iTQIwI"jċxG<y5f6oT? x}ti0i<% 'CMԔ:u'$)2[u|oFq^JWaO[u?钛~苿F?ȈSwHNBSuR8;qxaYt'dT"NY(VX-;u5-AZTeuru.x4[/Z86텍1j=o˖-ysyau;$6'}%ٶmhv8iߥ/~;O|-qέՇ>}tN'ElIN}>NtNN۩{A};w;+SQNzԩ߈ӜPi~|.:Je1t.oFINuZtzߦSNV[uI))M*izܰa=߬"NqI`#]P[z"LI_7MFLwZ_ǂ7wąTeI:=DKvꦮ|.LEElSףmlE͔]ήw}V\-/#-_8גxmR\zIM\_Q99qwɩ:]] *hk(Ѥ '^:e!n.jWq} Sv}XʲNM[i>21]Sx VKwj9v%osl"J'E ų-*LɴX\5vELmEN,wSŲ4X@8xȁ~}@ ''y8/ 8u@*M6|>`NQW<|P:]L}ݦbZ\fϝ}á!<|> `- tNh$>ƚi_8͈2i^d:n,xz+ \>ѬNjcZ7͉?&pR9qkNNN|>h`N &>ƚuY!&pR 7Kn*=xksB$MwN $Ӝ8ƚu/NᤦY! kB$Mi\'N|5SZ?IDŽpRӌ8%', YV+|>P%`3+D !8 ĉfj]#"Nj:A8v}TT%Cx|>PH4ƢO}Ě)8‰:e8hX1@|@8SqSucB4 oo JAN㼾IIɛDžXRSU8{{ba8Hĵ@|@.?; `qxv,rq8{B V:,  Xx"#f'EIMYqppt|}xϦ)8y9aќWs]>MC H?΅Mw VZ4DúBIP9)'tM ^<|>H)Nh8t܎xasxklŏ)1Q*k2uZ{<s.(+ Dot$`Ն 0y/·#?z44<ԍT R 'U<}/-)A5|>'.\ia2FL/Ёstp_([u:o-]{@ =C.Q'r4ʏBS҃/15J>ߋ8E'ZQ/' X@p6M-Ю9/{j;K(𨈓~1⃷v"NعiM:_i3Ep=%U#V>K0:{ye)"^N0$ Ki"m;>/m'ıW ]R@Y DX{H"kɼO E-FA8,X >ӟ]yІgĿ3"/ @8ySuo׍Q+ILy|m3O5N'bb{5%Z$ǜEe֍r%N|>*x\|O.O'i.FOy8v_|ةFΜgCb񺷏67,/}qxpܔ)9-"$n}pu'Z8O[IB4蓷v TNþ+^KN7v7wX8ߪ3F>kYz}XX<>e'Ȏm|N4v&ŔfqѦ7N_ppJMv 6|>(ri8u6yi):"0UWv(!T1l)huA?ߪoqZOM$UkqJ˻@> 'U<W}fiˑyڬ .p;\xg/E|> UB 'Otum:uvޝ7̮yp&PgrNWئysf>H+_o    P_ O֝_;|<t/2(L8]#ӬNcB8I!$6Jު(@aZ! 4.B`٦-7} Nʚcd!`rm P>s_EI.TTT]ZWp@\?>u~ @x$EI&+㔦 &pjFH N.иNN"kX9q6]MicH'f~)E@TN@`N\:1=GowlG/V{=I]9 ѾiKO<uy'J!p+o㓳}46z敍Ԛ4z8U7B89o)j*@G&d(S8 jƩ?Z:v z]zʷh o{u(">N|b4> ? $NM6 h~8pRSO.NLӊ;o_G~*}OY&XNO) -:Xm %BhtN"RD^8DpKpJ 'TS @AN5Nk6qz 2~b!B:pȟ <Su~M4.UV[ЋЪ iStߪkZpNU+S!XQ(T@YIǩG8}>N[;{'iݮq899KgGqaj\7Su4 %B t m:=wv"zw"m;@ێ-иx˧u7t6HQRN ̀@D tէK~/ҡsDΊg.zir}.$F-DSWKC{ %`v*C89jDT L եK׫ID:`+g1Hxӧ/INuQ<"NEPE `Oz@8 :&Olᤊ@8]+9!L&ǾA89aT"'x*)'(jF tNsB$pE:'>vIhT]4qX<* 7o?8xc~@%0ijr8tLxV;3<Ѓ_rٗv7h,k}ݤ>]~‰ky^5-c7qI 'M,d&'<į;@M!p8*^x^z-Za+۸XVOLxy8o/5PLovO]8zB8a(K8H:/Z&>iN<_'gXg:"N;NN(kݻwwDkM;hwi{im}/NE|qEZ)ΚP }g*TK!ʗu5n9"gFlp޸)B&8f,.;:"v=ymLg]&<|>1m߈x``h3WE߂F97NuׯR[Fʫl.33=R._H' :m)C8}NCIϨ']8ⓝX^o?Hl |u pZUzw'&''>rrRYD￿^;3xJ }뤠R#LIѓ(K@DQ/"EݯLd^M8Qdh[LOF[lse6*Z󎺾n4\NK(4EA)ı\Su8G33$4m~:4lҵ]Cl; D )8^kG..HI"_2 [d,BE=vyQ%}6i(d#v*3}}۝mLIbN&xUWIBA1N7nVIڰq8xЋ4p:}4{tF@6Gz/2ֹq3EA<(/2-rhG;x(׋D!?R$~=W!S4y%ڡ,9RlEGoWT1maOpy'޻Q[$TCC@^NvSSCM'NhӤv-v靸)#9'ÆD?nG+S.5`Z)FoyVHa=MN沵]pNr;o&Œاi|RY@NLQ%Mt|?6zu)M5QH {x[~&^]p0(S89SqKKfT*oUpN:N,_Nμn EA\'Ppru'Tw } p*/ 8#0Usڷ zUz>>odC y@>N:NXcaLwmO 0o%JB tII)I9\)+Juk;K 5fpB8ݠp Ww9NΘ)SIq'MB8qtENsǛ ܱjRr8* P5NO "d`mK©\޸T‰_X"IqJ8[߫z'Spj% @8Ul4NIG?{#% S],vp%| ,NE;*cő^ {ib9u, cAu 'T8b\*IlCZ{J-=vNT' nW‰Gif]u^XUW K~]_444LƀS^MVә3ghCъ+ittĿ14'm_@J[[LC6+kt6qd`D, n4kq@8l--UIti8ы1UgY@I,~\N<Qtۏ?i }tO /pC5 "1!$>e&zea9N'I>xN=@ 'pzhݴb5tϳo[sn{Ӻ<7p uR\1O3C5O:;Mp[cqZDz_GLZCeMmBԱE5}3 Eqj/B1n}#7zA8eS0UD7ͮ '^뙾u4]q_nWpLINt][X# 1y2yUDWA>9 MGDǃ?L),z"Ή⸎T_ yk Q C$+f]n^Z_uVTddه@8Ӯ )w(q o/DzB[迿MO8hٿ$fNH&h)Q $1FdDF>/H7Q{4-Zo}$,{)Sq41 Z?2Uq|MdzV)+0}iϞ=i_kW~߹]AἙ"NI $+Lklċ*lă.ڔv"Ni;9'h"Ni_HIh6m7dV8(\@8EJƍiU41q~q_~r1c7'_XMqӻZiʩ5mXp\9}]WF;"ΏeyET=k %C}MIr^DuuG#T1e#4>LȺޮ ©?~9Tcڋ6kIݎ`j4m.= z/}#uJ+4 ËEƺn4!}.E)R&koEM!ECK;J u AHM~ؒP;XNiÃ=dt)gw &̜CcH``Dt6bq4qT7ge}LSpzQ2-lnHs_v}A6-].^`>ƛ\9 S .(S8q9SqK+WjT-8rq;C8agʀpr@ -u:p5 @8p(~\@ nApJ A@ D ",{ 9p( @89n WoAZҫ!A}}}Ɇ@}@8ǖ`;F 0C@c @85W''@=@8Ωpĸc 3prWu ~ypʛ(zp oSq@89fT!da!-m8NYj%ި~\N>M7{請?𮺊:])NQ|ubN<*rhاT@]%Nd 50_EtZCbJi/|?<~ʴs䓊QDrKF ,S:p=j'eh  ^)hU9f7%+m谰g"tEK3M>(P1L!1Gv~o '؉qzWߢҺ荵i+oĄFfZX.bHV$iWi*[Ti0N8Sx(^-0,/&>Ob"-':YFīr-]"6kBMMO92k˨R Db}8 ,O|:Z}"#egF4'cbQۮ{1ڽ{wG$ٴ6n}vvO۶Kwp^kqUa<(#x8b}zpyXIcxPy5by 33@Ìvi@jFn2A8Y@p"]Ews%R4V#Q1T1Q*JHX?k(&at2%>کqž&vʶyN=]YOQŻqE༞+^ [vҶht>:|cyV/N$T@G^TgkYt~l~b|Hy@ŔNs&4=,-يep0p{zW~'6fjgk9+냢nbܞ N&i-џ&o-"Rt**>3ʓIWSߋ0xB#TƿcO} ~ $G ׄӣ˗Ӟ={hӖmc{hY:%?~y#DudpGNp28dᣎ!6~P}O5A 4(nT]xG⽋õ/4PLO=hIG ;ljW]~dLF:O ,S5!3I,Uq|Tmf7^lrV3drM8mܸVZE'iMtA/4>>MqۗpRD@T^pR@[/] ޳.HVQ@8@ @8Uh2; ܱjep*2 P[N5-FNp Sp*TS*C[& P2(U/J?m~ l(!ԇS}lYhKfxQccAu@!N+.[u+v/*p KiS)q*.\@G[i۶m1 ? p*omJp)K. sޣҮ]htay3g5u4B}Aͅ6w )17zPo JpM8q4Lqڻw/zt)3ΓyiZ{V wl;|9/*o2֢5(g{J_y>VZ^jӈE~/ <>wGmOY Qu ;❺@8eN,ׄOܱc<‰Nmirr}o.g;-_ru{T`4yoTŬ˅pAe-\s:t9rN8E&&&Hyr2JP$W@zy7B,-r0U7 } BTO^Yp[dLW f7FE]QQ:CwkJ?ig.\Sδootz*\߇݈N;#VS("GsVF^AYRz\fD$( 30'GA:pQ8 'LǏ9sfffɓ‰hAH^Rt1Y/@ v! 'Otܾ\@8ESNJTTuflVn/¸/ML) 42tRcz;Bu<:<-\NrzOMOO{ٳ^cu8)9񤯈 I:8HB` )(8) եKaE.=9zly1ݳIeu"(N8}HC %2/⍂ !%3O뚆. qRU'1J%A8%YWtPkz:6DQN\Nv8@bĉE777 'RBOd/QIepRr]B , !K*j H *h༪ ISNU p*weTYӡ @8e@ jn༚ilb*P8M}ir 00NC_ ̜CcH``Dt6BHs_c8F1: P0xzp}: @8'@@N}é PAN4  'wl@ ʠkԖSmM@ < $TA U/J?m~ l(!ԇS}lYhKfxQccAu@!N+.[u+v/*p KiS)q@89d T"1\ A݊ TU 'Ն444LYϯyN37%' Z 6@8YC.5" @8Y5F ,! TSum@ ,& !%"5DrŕS{q%ESu_6z P NvJ5U7ҦV{D:Bm!_GPA8YPGȟ@x=<_ )(@ŠI'O%}*S{8Y8 TI<*T s P:' IIđ'[wN!+B8c \FbIHz'o;amdrxp* TŒFݵCvw':aqad@8g\ TEe]0`S '7|- 7*38 f@8MF5> '7|-X8ML9_OT p)mʃŠHVO:"T93sM"Ac|}'M&]ݙT!:mJ:~澾SSSd.]J/^-_T>BOd4>,| Le '[A/V/VDV≫ 6"TW[/MQmP=N*0ۊ#_@ ;v6o{vFW^{#p5Q9UddnoR]Ir\ڤmf}CfS{lˉ@8h @2)6lI[wFҞ}[kk+rm/{X"$n ޫ-p!_ ‡AN`iÖwii^CtQ:~8߰!V8y h _ 5JCWicst{n~1hK +oT25բ1=uң5ƺ^殼N+ K||6]]{n({Kdp)A([8=޴ܮhCX'Ozi'i:iH#8HRd^U S'p2ġQ_^f|4UgK-4"{3EIJuT'k- ([8j7-w:qMNNtv/B)R_>P`1֒©Fa4F]gqH6\$٥NAPVw`.4*@M-^\*:|Ƽ&'i&uLR΋Z_',.EF "|uʖk2 'y3DILx:S:8Clo`at k"#ЄnI8E-(>$ַBn9φU;@8@ @8Uh2; ܱjep*2 P[N5- Q0p_@y__d.]J/^b/*l{!ΧV2ɔiT>h&fn.4©~Dpk@@85h-@ r@qNpA@ oNyEy "(s @NpSp*TS*C[& P2( %T[Ӣa `$>@8@ @8Uh2; ܱjep*2 P[N5- Q0p_@{bh-@@AD@$zkj'ccH`8$;P14>n=Z ji]@@@* b)@@@` nT@@@* b)@@@` nT@@@* b)@@@` nT@@@* b)@@@` nT@@@*j'nJb,@@@`j)fff6pzdJOb%bKj+pahS_!HZ!T@y  EpzgRmюv}koD '}PC[mѭWtV[̩f '>œ,q) 5"aNںc7;@7Zq #؇vfдӯ#%]#~ڏU4I8:EՆ mS?pڰ]ڼ}e:p9z?N7liwlF"$"CrG`m1`@Z|9ϋZu6Ny綩SV~>9x{s 1vO w:$ /-FVo(5 BPiBؾPE۹]z&P6יʔBںq6R|(4/]ڝ Ϗl54ȕ@mӳϿMڽ8䉥 :y򤗶+ڼNH xB @eDԞ)bxWQ)k ~i(/O:HrmU+hG\~D]Q#~눓$WVMeT7XVz-lb2\v*2n@}V8j7-w:qMNNtv8'__8aM)m K$kp'S/$؂(&y5F{G8Z Epzqͫt"L,[t޿LVEOO[|yY'G UZ$*5R r Qp)d-p[6uk #Q>V8hDٳgtTuJڎ9` m_Ih L19^RюW\F@Q1E rވF7:oZ{8uOO7u#bSx^k0q(S" Z'X=A{/f.)Xpz} xXt;F'i\sDp `2Z(pj&Ouqd9^Yb 7S5MO%X9$ D_Yw# U3P.2[#hi3[u2*ڮ1F1 n8< dp] B]Y<`p P"PKTw5zbyR7r ^aEpA@@@(NEE   #T;A   Ep*,ڙ (SQdQ.@@8Τh@Q "rA@@jG©v&E@@@"TY    P;NIړ6  hpRt՞ߓVTz(@@KitxZ6 U$U`}W 4P8 Xd-"PQ[~L~/z wn=Bw7$b<7wWA   N;!Sp)p_HD<'E+|\N)⪛ BǕkZϘW9.i`-;}O4)?~"I\^׏Z#Ǵ   Dv) `/RQ)y\TE1"<&h3@C Nr)bYhnJ"l,mO ujO{nN@@@) ,,^"FCbPpX8\.Ѣ΢o^D-0ys- ykmq[><Q@^ "G9j SA@@`NF   !T[%   pJ8]x1\{ҥ455eԅXI4>,|   PiC!ph!TsIO8UٵPwe&L"*Z(SI6atA@@b8#.\3MpIprUPubӸ"wÄ|>Bg\·F;ݩ jB[N{eԦNZ'j8]P&kɌ{Iת Ebᤊ'e~}:)_ أ@=2@)'MX0-,,uBĩ[>{n@m@ =J 'cᤋ'P30Peapj TR8qI:SzSSSuob{e.-{6 M%%FjQKIj8Hk40]2vGN{ h)q4>z^)tqpR܏8iH[6A;[MNNF_;ݡ6](A8&6Ӱ7|܆KJF\N tnZ;vcj^f:v|L)sܹ3^Ep?>}iz:te>j >/{dW۳*ͻo ,ĩ ϞW3tNo=ij}N&lS r*O viэO+eW%{v#Gofo>L(t׆cG!۪6wMGymO7y=Rc3N%$t/qUb?ٷ&o!^ݧ Sp*E8:yfU B;F#$pkwN!(MB62*a[)ntݼN] gM7 rЌp:}WG4]{QB{-SC؄'- \V]l=  Ot*צc8|11MDP8ndtJF?Ѥ6EYmh{DE(mSŧ'^7W{'=8{#j{L}p9O[Cq׃d&'JFΟ?p:@gߴ:Ƕ.wt>B&z*?/ߐ/|-}QCp2#-N^!lٳq1osm| i="яzy5[KGz|[.W|?y~i4\`ooWo KNeK!|&m2 +8{G OMm sV<*"%Թ+OA\G)HQ)TƖca{'©: O_Giezgz^z q&O[*qFk|LcJ}C GBdg㉱T۔d;WYᤊ'#N6m菮u?D _~{aPӺ6y#S|I:ċ8ZZc>;TW-Cg̝ WP8;OGE1L_vߋwypЗ\]Lcuv)̖ޯp2. HVqL(;,InIpzstbb*~D[pѣsG|λC4|صp$7\lEns߆d:OHjS[ pzTEN&q7 NEi/ ؠ*%OTN7ESD V]Դ{}\$<-Fwx% ?X ~&N ; @)[tՑ:|& Y:1ޤ6-NQEY:Ʌƅ_ψ~xq.Th(:혹| qy}SL~.Z { 0/quHwCהq7oubyngf;F*u8S^Vjװ}jݴoNƉy}듩o^#h^;`9BxlvQ~\5qlur's8orQ&{8v0ԘSݵ56ẏ* dwYF8,zրd‹xE.&C>]W٩jj  "`o4SSZV[,((zֈE   P!NƂp,    .x߬S0UGDA@@ \NR077J.]JSSS;ﳶqF   Pk. k!5LA88p‰OA89F4k‰GSH8'9ef8+Z   &pbM4hA@@z&x NR<1cIFqgAu © O5@@@ *ԨS@@@ . '2Y8D\@@@kIV:!deJd(I!   `E^b Y@@@\NXCA@@j\NXT5oB}A@@\NXTsD@@@J ,5N@@@N@@@N@@@N@@@N@@@N@@@N@@@N@@@N@@@N@@@N@@@N@@@N@@@N@@@5ᴸH6 tRNyy!Q!#ԚI (Z   !da+D, ! 4!, ! 4INa&@.X`!V;pYIiVٶEZXX%>nkJ8$ԟsIPNw@@@D©JB]A@@JYv.   Sqq'g @   U"pңMX^%WB]A@@-x?4h!@ lJIJ\K0>(H#Xc&)jD>HC) -h4R.zqxƃJTTB   &PpQ&qj   P N0#   PRu·0-   7҄* 6#(Sq Zp2*t0-   7~iaa!HʗvM-|GZil Q@Y*#H`}@)M<ѥR"NeH\@@@l ؊&Χ 'OR@2Ubk~ |>P@8)qJpg|>p u]ub ,|>&u|@')|>'KPeq|>@8A8)>KNft񢷗AU<</'%πy0[鲻Wҿ3H>\lX, 0łp5?#^rAE!ǾA8Gs?~[a< bH_ ~p koix< I۟>WCkih"πy0P sB8fj}ZoQy!Դ - nf:qℷ0>R`.'߽6Mύՙ$`.'.k}h4}~si!X3n;/DҌNjǾQ8Z>}4ƀ@8y6NQi 'ϜE0‰9!N &>ƚui!4'܇pB۱@8·>PpQ88KH#pbsV !X3y‰Ei!ԯp$0ztaG@>>0pt`%(c}Uk8Ba|zvЇoue]/uG?iVq!#pR d8B'OfOKj}w}|YCߥgԫs p1p#|>J8X_e3u:׻Vȸx]^@Q465z`,럤 t-z9cZi||%Nr@ "QB\k[>Dny"艪u|ky]1T믻C]֦u p1x%|>N8- )Pȏ "eŲnj?bGt%ph]2m8@+;eXqW TeD/Ъc3tlLi3?BP憎pzǿ _7oe号ƼeQ2gҞ={2a_RteJz@~V3Wz=p%\x(z\\;cۘ c p R"MR*R--p`'O%ʺz$!tA%^Iy~W#B4k|t8_z;B}3)?BwQ7~~1\<ϺsG8ϗƉ®]rJqT=*ȓRnullQ>T62 'Oxi5re'5"uԯY':AKz_6rGT=#[нA= ?1=ou#C8fgg˖V|>pOx''r96?T}cv\|~7VXA'cۘ p1p#|>`-XtStѦd4'* 75I8bqҮ]Tpz1Zxo'zQʽJoo|Gb\O;_k/ky^`.Y"N,OqI$%AiΝ-@_}.N/e u?Y!D>>WɿSǗ|?˔krSwaC@~>`-f {0-N"$Ĕ]˖&eϧ`Zvi=1ZhIwxֽ[zǿ_M^?WF^LYFf\*#x.zL?Z3Dt1%|>`/2dwYhΣ֮#H>\N2Thĉp֭I?$C8U |^w?3`NgΜ-[ i "Nv>P]pG8Ƴmw! sDoz;}oڴ g< AG_ݎύx8]6:1|7^;Emn=3`̅$1?{ŻԔ%ÇGX: sa>iu` w|ko>rxMR`.'_6=Я~ g|̃0$QiQ<W[o"+<-aq*U8e(ɿCS0@:HN73bNM|Ot |>P]`sV3tj:L-7&l|}IS|>6>(VM >Ɖo=pZqRS\:|qNB8S_pLa> >3bqq8\Mbq8kֵ,N ᤦؗ!p4fyA<zk3B8IM3B8fj]#7+DҘNjc_ppp@|ϴNpR!X3"Njc ᄛA7 " ¾9-~!4-kUgH:|BiZ|>}&p37JS Ěuէ4x.P(9F"b|>P`s·y!fj] $BR4HS_.Y|>4_Ez|(McZWԦoByS" şU)M@Y)q^( @2s &S9yq|PSR]CmfgMEĤnl{6M4qU:;O9#q=d9Jd$SJcmm|ciԸle\,e)[GŔm0>HgPbfԺ+/a {"鉯m:EI~i3U߳-m}7m>ӽl3%{f{Z5S{E鄈0iS2$yësPK *VŐI0>O]I~՝Z-$"U*wU8IdNr ug SG('%҇_%"idR l$TiˉӁxeڊ'ATx~xuI'{ 'ɴ&U qc鑳 VMxk^OSTD*) 46q%gy4e)$]N 5֥M :qd- ȓ8NrP ']xIFG>LQ'=T{v)4#Dd):qSvZUDF Sx!!X#VzGb wCr<vdV$eNQ(]@3e'1iTW^[2SK=$zI2;"SwZ2RlNED *X<'[N%MyoFK;eE ~1u+8ڈ5-B?0^z%z=ī9řxitAMSbQLz,Eq^7M*|̘>^兩hz'Y=IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/figures/file-menu.png0000644000000000000000000001676614023111777020440 0ustar00rootrootPNG  IHDRPQsRGBgAMA a pHYsodIDATx^]iU3&b#;bpZBQpbDn]mM -"T!(F) *K`!,*KQEb)*6jԙ{ow3*婈/sowNA}0\̎IyZɵԧiI*Jm֛.e^I}ɕP 5u AJMjE=NN@@=yW|P+ζ@sʵVAr?g:v 굝h<`k+wJ>}#!PwaoM[=Ү=e>iHԁ`u[ s~(+?>| lɢNEO}#ŔU/CaP:8;{/&L>{AyeM> c @G`9}>i_:6Ǫj"yIᦛ_2)Xt`ч6{:.OȘs0Af|n|vﳕ 7z{w ~I@cPy4mc[gټ7G>it`/,S˕)?h[Ϯ]㠟 ~ s9Y6ٽ%//._k{ዲ4m?nl{\|O5+w"cO>>ivT:f~1ꇕ=cRk stb1;m:6&X k:aش4q:]t;t7EKnG ),}eVy@!AFl&|2&aKzݻ|Wc i.u czl [@s-]rϞ lf劉N\MYBc f`j; aH-9ת֏֮ɘhB uhyu^O:^6_VW9`Fmo{/ldD}fT*J[7%^3Uʼ5G3-7uR^k16ct,M11k}y1W碫O@Ssmuz}9q~R5Nd`SF֏"yW9I}3{w߸99qO6iE|FsX3VRЮ-" -Q'c^%z&-I\c-+&3g}ZKPc0Ss26`lS/q VRSވv( )_ds{/}9Q]:%_|S$ThIgaܳw`Q ouuUM@IvDo'^ujy$7,>#e&X7,H>v/Hdbrԧشն1dם,hut뚒0e]Xҏ xC=!g%#S 'ϒ_Pm( d4.$@_g?{э#uEӾXD3ϛiB@탂Q{_rbx1́ϓ?J0Ӕ;cq*dxX?\u\X<&BǻZ8y3P:v(>i߱/^ }a,z!K06[BumgTUhЗ `ku!}ȀD~؟ XPv,>,Ց >iHԁ`uDXgAu5{.<@V[HXJ)aV_N h//^#!b$@T*Hԁj: M/辰<)w@  :=B9Z{Jt:Z=BFktz|,z.d e'oӿ.,JT!t ( *bґR(Q߲iNu.'@g ׭;Dȁݨ ( X:R)#/zy$n.s _T7"t jEa$ ӫ{D:ˬ+JHsfgAP,v#ݎbЅL7 E|؂S\36T.:tfos0W]" E @ sKD qfSWƪ]qcnK`uW<>f}"GX>)]0+#EY;E nqZ=[.gM֔#>_%<^jΕ]酨XuC.`& eԧS>@桝a|}#@7s?uxF2ɰ ]vrk+E-Nk1QzUJkf;‡{*maQww5qjE0k}s;@wEp}ɊW=)NdmrRq(Щ!?pF܉%R_8Гss 6q.vdu0v.Aƪ;ݣ5չÎpmv{\ %,0ON`;`#R=/SLۉ>c*lWt,'uptC8Q?=eԀ"=B B#Ѣ@12Z-fy@GE c [_=:@bo1h=D/q|6#|eQ?zF"(fQ 9lDGG要4S]6) Iĉ-~f|1,"RE׭N}bXD:]hdBãL~[E?b%5 z%IWҙ⡤$181 ln G9gk ]wne()ՕB>ۄb ([mQvkd#[t$@j_Ͱ 6pK Q`>V͹qV: )Iuψ4jkV?Q`Ch*Uy8Q`i?@Eղ (V3$"0Q`Ch~TyzN˅ߊ{{a:F ϙB@Nu Bt^wٴ@ 8X4ttscr~Xe/rD#Ѣ@1Ku@#Ѣ@12Z^@GE c d/7@GÈ<@WBt{C |@*JP0~Lvbfa&nU.x}^ۭCgN[QGǀq1z :-z t 8ww@#%88ull'DzB?{X> ZGAqб`t|״.} p/~v-/i4]?IHbrJ޾,=J7 Q\k>@kĢt .le}ZtmJ&%OeɹVBW mr`:7 '7 \0F9Wrx?{Vo;u:H+0жZ|I+)u֢S6fT4#N*aiE>[qU0J%)pz "v{܈_;߮+?Ur9s߲FyPɢ7~y-*~`5]}ayVЗ:YĒ/'v E¾}{on3# >n_Yst[=d֭5^2 5C4]Q#s`N+n"v:_I~OONXu[puh\ |1 :VQ օ_"LiÆUXyV_2+ ƇӹwBVKMHBw)3AgBX*]~ sy_TCgD.VtIJֶS@?w/[7+U+z{f@i X^KV)^_8](7qA=(naվLv{ |tON~F ƺX\hX g׭Bo-//l@W&̪(&<8EXE0Ώ(F]^ܩE7j. EdxΜ NUld>XRU--:48iP+O A>4f*+jmC+Y[@Pމ[3I/QG\wfT\L3ɧ.otuz"S1rfnʹ?<>)H$KF/@ֽqK%@> jMb^b"!O|q]硦MOZO:N-Aݑp|tV }|\m6o_VصǑ蹳xWU"z<ϭ`# =3:@@a,8 t1z Vtth@GE c 0Yxzss3 !PՁ9JRqq16pqBG8d:@9x1z 9y"hcٍ:xzEPPU|+$W2{~).ᓧkW[7Bpәp @b XK&~r8M {B׮'f^+k#Kp<]ff tvP[@7`ץ̑)$3d+[D\ {@N^l+Y[tc 5Hl3`c*-:Ex'иi"4L+nrS]–g2,EtY7Dvb`RdPS3鲃nCkjя*>n@|X{p<3Zm̈́N3ZLS* u `v%o7:uySquPp#BA`h0Oc-2j]͕R('Sw̝GG0θGg6Gg$D4' 甛QEwq5F:YD(ʖ..cG#1z 4?@#Ѣ@12Z:yJKKiyyO)yĉ䀷/fn+ ' ǣG*ﴽ!5@??ѯIx{Ĭ+ P:5{ , @_}1q#XV 0x3x3x?߿'?<5dXV7 Dﵵ5&@|JY}^Jjp VyvvRd]ୃwr${щ7S7`XPݻG7oޤ!jQ&!aLǏE^&f >|H{,uH5 .?&oAo_z+ @)`ޛt mӗ:J$]no/tPe=?sBxKniiہ~n Fvߠ-3xro . 5|?B &Zz~ >>>06i@~-`X(`ހAZxD+[mޠs CMvxܖZ{bb"&w]$CG u?B#4>9Ms~kn+"@H GUx^^3qVQۮnꮇݮqQQVb7v vFKcwӰVBO+y1V:ku:jM;M4OO>ްtko|=*t6&]{y/(7O+ v-ԫC_H40Al/N422 k3\-2LN:7;D40<.$MNh B=YTf]G"jK1w^UXWѮ7ZG?x7R0h]U;vb 5K7{3;6>zKtIyxʭfXVQ3xcYf<4_O3hr>u% Ew{G{ VNTxhd|J)azf^ӐHՕTm) rxo"x1f_GtZ Va>~#C ]aw>xn>GYNA}i=A7`7̬+ ZBW_}E.bJ0 xß%rKtҍ'~ ,,N-p5B+҄,:fe9c6asڊ:;t3!; CiM"UP7_t~QiٝSĘ?dnfAቍ 2TPSjǙTtүϥqr=\Czq yG/7TvDkպ~mp4ĢVyX [O^-~Ũ;0x Xog WYoOQSQJ￧g krEm"K KjVK1 VJ^閖n׍_`ӈݳx %xltp71zm.7!5ª/ʵQ%xI98Uqe9z˪x)e }Ns,ne#ӌy #0YOַn%}Yvcp.خqN?v3x[A7R ^xY'yq%ˬ+ v&P#Ok;h x?.^HW\r:s -,,IE[8 .LTXcoӍ-{ R‡TnY %; w+=8;-h%jc"{tt@ڥu_{HZWKޥJRK#V*[cjiSJ6jq0#_ӓ7>-qn@7[L?`XS aC=/qp@vgg'UVV j駟B YCUHvs~ҭn1(w1x㍔x9n7p-%o@7<o]=^o&fp;x[lUŕז7('47 SadK @/6Q;aXd'`\q7fZ>qrvg;4<+afLŬ+ Qj;A@$%x4LAo|,1555 t ݡ;nqoP`Jskvx5x#%^}e v/AO7K`6J;U>ůڼ`͑f?s om2<mdm5e jPpo^?.}>8TV5, p\Az;`(x U+HՐ7/g噏auӏv3=qV` \&ڞԚ{vvVXag---(|1;3˗ u\M]o=vWWZUo3n8Հq^;]s$^)`X7 D<|$K/n;7:֐l=b)߯ -T~nYӰ+ MtX@SVkvBwoo/q qJ8#V`X7 0xN]ɮ&nf N +݁04ѣb}vџW=p~aV\~9V`XP DqC:{I*Ry knhhD4Ɂ51c@'jn|7oB Kkc<x 1c ~cS^TnJ֕56%%3ff%]N9+R 477'7nnn Ҙeb+0xPH^eyRbN{~[ܮ} , FnjZc]o q= \c܎!+o|H-▴/sSXL&%u:>Z / }?~ބL%/?ϹЏ󼹍\Onµㆻp=cm{oc>znwx wvf?}&;SO 9XȢXZ? v>7ODv,mN\pݻ7 w<q<7`iw69|#\fl;ngq}k<~zVƯfǵ6,3Nn:{'ok>q=>[X^,-^Nγyq0n滭}e}rov廉cvʶ\L,a\9?収eM(w[}̗ۂ.X߮9dWXbح;Z~}΃|ۧobQܶ`Ms/_0M~y{qE൷6sf653[`lulߜkpŎOb˫f|iՌ-U3l G1ˬ`Yo&aS8c[-1o*W`H[v\ lyXX3=n&W`(f`\6z\7n7͸_\3o[x{}Tz|2|6f0o6M,ÖVp>1\-il`s/汬/:[0cKKfm$;Ð2㎋F  Kk` ו53:fg̚Y5C+fpz N.E7>ozG"8~/E;6ei7q ۍۂM,a̭͌lѵ`h =zbf5Йliqyg}>&k?2ض`W& Z4/*o"tn>Z_Yf#Nv*:o9{8c żanwcsl`ymB <mqn=s=vGfLfl.Fư?=o&GfVq,c8{'6xܙmmG2mFnsqЄ y\,˲N.l6r MΛlt9ˍkfL `fus N'PLZ1k 3n`ڿ=33W~oC/'s-rpc1 l\606`p4 F1Z8/\&mzn? >, uqSnEN 9;lΌ0f͕%msK*cataz/n}~g†`#E3MxM7o^!2a4-:ŝ u†aO1uK745הvWnʭy]\^Zys;G; >5nNcKh"x*'q2'NKrxVnۊm8ׯ݃ g:ҋss\.cKNk{]6gM;vn\85 ]Es6u{pue.lC^t'u"ne`ў9Ayso!7>rh̎a}n(A㶬uag>ca_t, q[{QΞy?9y78˂9q91Z[ĺXg[8֋=("ʵr,Qhv-aKX~ɜZ//pV///#?m.Xi>)s5my'zVIgV̹sat[1+^7b:a]3^5\]I{i۰8iN!}>mv̘cc:;'I)SgsC(Ǫy#p{ <"`D7\{Mhf` à Qk743gZKXl6wK|q 586tG0o6}4B:.Ao'"ݝxkԁ(o;d!FyC9 9.\c.6=n02t>{pC%NMi}| *QPj4L!pKX ӄV9B/v Üx yOk6v6AHONr hVDa+ou{{nxYv` [8ig"=0A.*m2#Zߎ!-b>A,H<Q58@$Ob>tq)*4 mf[p{:jU*zsj/lbw ۉ'm]}F |eۘ}S[2f. l\\Gݭ8qpqbŵ}ɘk, 0V̯MeyL /`n:?oom"?>䇜>3BVܘ a,ug& Y|4z6q~ Qܔ)8GUdtqFq1w;=֋W1oF QnSog=Ƈe._Ro>lϋ5Guy3"DQeEI(<(mwGO2 s8ɧp9Y gOsC.GpFfѰ,-=dN35*B_\=Ƈaa7x|Zmb7/[F"|X BnA.0uř{&F : :;ˆ "V'pn͚Fh1)3Fώa @Y,"eD#N:ƍZ1;#2K`?Ɉ5&]>@x uC5knE0-b;xvyN:q:m&L>yN(`@}Yfl;n&0@#> =l5oom?Cv\{%^Z. PWοHhtu2h*`ICenUB(@ 0v N,h\`[.Yx(quB ؖ8 |OOq" eeEL?X,F9-݀QDdSk8&\`?[_)U!_vy<r^u΢('F( p[gV]NAP;!!Bx 46ŽoxN{qӑW^ D"^60aEx=N@Zr;Lu`m Gv 4A=?##dZ "~'gFf9 2f "6ӫۈp].O.SW]x,@b|  z05 v&:\ nq.Ʒ +8J7L㼌د7-t kQ+3{8Fs"4Nc_z6G-+B-exyozǭR L #4B&Z;$zHE~{0 mu-nN/>Nvm:`F1=?E*9 um ` !) v+8X'?OshH`p?|"ݢ!m,ܺ{rʷ?`B0oicغy2cۈ)4ۨ Y6 ظF.I[3 霶 y>n8?i]Li Q`Fz`8z\8ҋ@`#49FȅM`.Kj|`7N,ȝ]03h _1^Ә"1H|}astҘ͵yN燐{3h0O/G6}tOs74b4@ \{eyxZ x{=>m;) ]X?b}צ+8VtaeoIg룺 ci Lãx<ɩK걍y~csql^5Ճa2> L>'쾇$G CHb<@a&zv4&e6޾Xu]0ńÀ^.E߻ E@ AF QyllG]`0tia$.B;fw7Efp :h 8K4+ׅo1a#ukp_=c^Ӽtͼ^yVW8|yPyp>s]6A.iZX? ֘/syIBlq-x#Z) v0$ҰRưYŋ~P^wAZ:/W6s+H%i[X*Ch7p.f!|QxaM-1D}?amڴ<|4)5Vp,q|C ӟƓi}[MICB\2`DJ=8e6 q>Yȴ0rƏZM,?m|uE8?Og:2`ofۊ9^oOoB7.Ŷ ZKkbkAE/@Yw|FswlwC]Cc#YbT 0ZiIxG ^vOiɧO>vkz9ul<ܖ=)Lh;'8Tad;r;=L*7V }Ѡ׶z"I-mN[tF 秘ss<֖G -4/|Хa LDu ]$ۄvJ3h.ׇu Xr=. ֯m 2l1l|jأ+1GsènMJmz m5LC_2[Av2!B-hJ˜z-Dt C7>g~uۼ|ā.o]~eK!0`vр蔃]BBewf![0tv > .,xM7 Vk#G۰D+}^p38 נ7E{DP468,lRȰgB ZƯ9ތ7{qxO퍾7-uRrzA8/] Y[i7~z%s>2N |0m0􆗶&n2=/y;V'Ґ<\ПowNw}[>w5~L\VJf}A cُmy-eOAk AcF+h ^ v-vK Cn&"]Boݙ84n; 8ۈq64v50Hˏe$0{7.D;טe.+4Fz 8myϼtsij Fsmze`ÚLF8 ɳ AoCLJLxyh^D_?넹QXDsՅ1; OF/OX?|7`d}F!”v>O ;՟]6d˼-tبӇeQattۏ*_W ^^ؠcvt~uhEyiD|o"#J3diA3XqN;u~m{,>*i'L'akYؤ6lШ_>d'=eGYъLw!Z gOJY k2-fia?0 W:;Km9`i>kb^ [B:d:T_^_#7'kwg̛BMЪ<1.`Іq[ ].s*Xz-QH 1R+~# ؆ bKݡ?>^FQ?aHzP!+9˗oc)&M_xZ|?}2ԛ`K.s23#1}-MKk7ص]"w^]]A㍰陷מkʓU0i[oȾ4?27qf&K`7-aw̻2~cjϛ;??N?Dt7z_ _d-м @ nt3 >=L}lf68_x*vɃ =n"ZEvOZ^X^B_x,%C0P|%. 4 sig. װkma7QG8mg'̟kE?)jk^., 1Pۉfa֎F؅]%b?7"?Evard~]>ic7l2 %u9ݟV? :"+=栃e>(c^<x7"K2v]d]ھy9?]4Pcd7Jkol"QFs8 Z8/T\?L{5o&Kny`졁i =FX7>gomVFC413ߜyWuN^;A7#ί/%cd>$;/egFЇ)DjY/UdM]FrCK]z^ \Pf10 ?*BV~ϪC_f?Cݡo3:rOڸU趷o y {|l<_~ص7˶i͕7nv_=j>確|Mb[[,DGe>tI;s_{Onٜ^5?ū'͛=]_;8frY/f3>iu5l O J.+@mae[}ƍ7d ul:>]o"6zEqT`CW ؆_@p@*7=iMc/vg1B˨,RnG.{^?,۾md_ pq/3 O, /9i ߽hy0>Kh2zib9!kǼq<2GEYC_1]orioM7 ;l#l:ve㿃tz@~o_ 8XQs|n8j!c=33goa 6}!]O aCBe?|;A={,D\r`z%<6BD svR`p>A1F>ݭ 78oa4.שdD7i[ܨ./5_B6ib7|9@h Mۯx4/?x`xύ1| Z{ki?6@Cn&ݷq׿bN:Cue ̏>cxuK8>Cl{F4;Ϛw>J3]nRd7L9p9% /!/9j~L `evMހ]FzG[Fw7_vG) av'i p̄&.0dWHhøо쒃Kwp1- 43heoҾ켛̳a?sΣy>-,#)%b1R5S6V/6*<`wPʈuMNOBjAֽ7kӜ}G:M](4 |4I SW BWB,agzE$Fr)S$0ؤg%faq]^ Ƀ -b 6K=x=i^CNcё7{~ZOؔ#뿁Fd7ww?4d;rx j'`>|].?*)I;j`~߁3}.Q Qtzo.[>p ~?@ǻ0.Zy#~ܣn;ꗽhqq;/Le@4) ,~=`4Ҏv>s̬o׋tg*g8`71 No>JciC0ܪ2oOPÏ|WƎaJ= /M6b#,&l&T`.ruTlWQиRO +kKjv`Fw x`QgݫbۿfT:Ce7_nRn6LsWe2~ȁ) d eoKc`C^~7f@|")!sv?vPnG%s^[Lm߻pC84~/#}Pbqg[1`:1c>?;ΘMؐU;3ŁW=nvΧ}!9Cq~riȷ|e|7G||I 6:.nnq 5 m@lXM(Iohm^Fyq Fw^ >^`7 W=3/>!ZwJ̰ ̓`|"ꉁ]vmt7o_ElOllPqq2wg .~+( ?Qǯk(j;4fo+߷s7unbCݯDBtDf?~t\Z@66#oH'8 (/8Bðu?Ι:s8ұ}s|xGй͵\qmfp쬐Tſ~[ kIr7\rŗ|⹓10g;gZY rϙOF;YFC e16  m pIze %|tڜ]aPagc93~v<wraׯ_INحԆ;Ioi0&5Vq:ϯe}|fs5O<zKHgDw/u!"{Ų>v=2*K qP4 |n/̓h]3˸!i-xTD2g݂|&}/}(;t, GWPBB``DF4ē_/IA]VTD`@K.{o;Q Oҫ2ب:e'v\B.r쐆 ~f1iZf~& oD×57z6o' R|]nl&*trv>@ׂm`]vt6`:NFk>oCM|D}E;Y rZF kD iU<&~SZ\ *c,.Ϭ5>>a h[-%2Zqi}mq`-_ԒBE~Jm ͖k 3XCw 0mlYX62Fϳ@@ %xe0ϖeDw `[CjC41-;[v!^ÒB%솟;Kk 2[ KGw lvȮ a C_a5y! I?V^3T6 Dw\n7n գ[.z>z7~z8Boop<۬ -Oeqx.G~'am~Dn b{]10nBmZmv!eNl̰q<^,|D-V+/狥)Dax] [qL&Nk7jeXM3 qeB²F#8nXŶW 4J 4;h4}"0Ugl 9e`YV|}o,s.׃ n9]`c>ԉjtMPQXlQSKHbRj:HU ӑ>xQY-s?q$H 2룮=Z]Ynх}u`v:9$آLW¥i3a̟0gQ͘8[~CG ڄ̃5,Ƨ>3!GufAg詡 xG`ޙzk x}t˨0aB"$3T$nRn&5y|0cWqB z v|0UQn  -v@-/(n<7Odo<;ZP n>_0 xs5QO}n#ʋP0Jv-DPjE`{9wX0 0{[oY|nuX’\\¶Qaׇ)(%sQSFyq`G$bܚ7#͙ūF8rK7}ql6g)xy,^axyiW}]bW&f|@k-, i]<^$.,0N*g+XBC>=]Pazr@,yP_^tp{`{f̝Bȃ0sa'0~r̟rx<^lF|vcqLX rlc7ʜ)|6Z rw}¯ 3NK@_C{Ho I9࠘(\kn@et}nrEwCU:Cy] kob|+\Tͷvn*-'!b/iӭO^ piMs4񟝀B{>G/| @m2qQAo!=a.}0F[ X='g ׁ.vFt8=~~}J`7땒ky x <Ϗ0dh-`ڼ5cBp㰅+]:[ZZ1󹭫@0;qP7n. Byn$ci7e# Yg/a}- {d4BiKtx$)=qFMX¨/ k67\FOэr^qB+·'Q[..lD;j@KG;8(G_&8;x&@7 ؂o7%(2#ڌlӘ:C^`w69a;㳈ZXÃ)3)0w,Jk`^m#7;ߍ\rz94Aov=HG=`-s2Y4z ݮm /!Gn ݄^|L,e'Y,›{oԖ-ĀMpi)F5!e7umYttiLgX&cHmcۘz1N#5RQe|cyHDk 8>[57'hn8u'ݺ\_F#Eq[2+1ˬDz+( o wqN< ew>YW&[osC~8ȼg|àvaƎ։ 6 {ykF ^,1b5Օ'WKk뺈Ƌl%e8@F]/b_ְkt"Rya )A纸rAMZ;ƐCd|XM<.e}rR7Li7Z)ᴾ)5}rX}*Si~X_UʷN0SmB8)ضb\޼/{Ifx܏}v?˰/~G"ӾKb} K2<{ؕKxr[a%3hH|eC" ١_i?y=0.ֱ0`O<|yS|5aq<38c܏>|9YhރC-;^z],#K:8 X?!cI+}z?tq;\ׁuaVO Xu? NVзuѕuhl+zI^<}<u5y-?8UשNU/}X "a+'''e@> |*}@M[=||@> |@> `^1ī|@> Z|@> IPdW_xW=|@@{pOijj2{xunc"YVAz\MFV9XSs&xtn…v'n(-vY8u% Y'l^3¬]̋1V'c%}u rṖYQoEZtCJr3X$W'Dԁ݄kGs-8򝓩Nצ@vSi IRr:FNڡB@@v=Q| rE`n "_s jfz/GOyq,4TLBoNpU0Y8LVVΙ͹Uu-m/zRhc=[&];5W<.//nkXQ$n\|SZAg =`1؍殮D9YHhWBcfnHyZZ[Pzz5EƐyHi NJc(<4Nd_i Ioϊ-:!a7#VxB[,BF+aœp bYH& ])e߬.Œ-vsskM7 &k.Ӻ z+4X _o͵\uksO {sm>Z`d7YX9u ^Qʮ| i ]O> |`} 끗]@r̝wLՁ@> J@xv)|@> yHj&ؕc׼cWIPPDA> i  x|@> ԼaW9rwj=SPu($UW+|.|@+G GӟH|@> *w)#Bn ջ]> .ߋvh8x+vxyL/ʤA}?)W`zzZ4{іԔ6W\I@mO[Yx?wo56P>s`w`c v+nc2n g0jy\|[z~^4BqǚUޔ2ݜWXN|j9.ZЭ|8Evj=Jn;Kfn~ Yk[Yr|4zE1Ѳzis\+-tڄ.5{_+z4'~iaۧ9^n*sm>[$+xguQ~l^{xijjrvyօBk (OWMsƷ"SfH֧>4!ثM&̉|)yaSVj[ ; fz9sOx9L6'7gVѾ6t:cv=nN:^z8z.~?bc !48MX ElH(6O'o}|87 ?TB}jF̬m2_7d;??MfAnt~~4oׁu949>V,'gӮM{L7r?lڱ_7׼p-`rCOǗ|c ʗ'WlbԱ>\ (C5-sTZ2{nο'4o#- ւ.{ 2vhϼ\Nx¶F!2uXkf`p(/札?ԫ`\~ГE\ݷ6G>TrkS)a;v瑟;>>{ @qÎ p{y΋ٻ&,[vo#on._O[xcy}˛;ny&hDzΩ(C>.7՝W'Kp]p4n'n^4|'4{p_Iy:o&xۓNa4]Wխaw;؋Hshkdঝ{~} !O}gAH%s ^#:/w'|ȗODz}{Cq_6ݶ^=q^>X/K.sGGGa?318qokvylweZw5։Xp\or|ฒ51R%l7YӃJ=XƏu}7fߨsͫ}-x &6`~ދ6-_n s#u Ϥ.[|#Mnܗ%|~,FY&,,g11_'c{f:q9GPvn#fuۋʱieȷNGfYupnj yWv0Yuk5+~n ۱fQ=/ z@!ZVhoVTEnz6vlʶfz#/ 5x7-Án~pڸ eQx9`7_eC!k. w=Mhg]}]Wb<}~ۺ_ϔ{3:'[p?۵x%;Z{2]}Y /X%Ih"洸}={5̜ ?MxWvoEBn6LW =dX]^A798L;K<|'zսNV:ˢf 1bT3NqlX`fÔZ_e|(&;s.?.3ff ߿ w?y#/;5GMw G_3+~|[JGkӷ;̝?j>ʁݶEg4}>o)uN6qKzN9H/5ls ?o(>dx\7{ ?ۋ-;[u>*cX^g_AZBovn!0~'l~τ1~_ }>/X=)+g=Ps|}cv.yW^||ʯه}to|_/K[6쎍n{3jN.6rnjxʭnNƷuJW>~5?-KWXؽȑIJ`W6OvC$z]BLl?Ȥ|1}@ݭkRa(vV$(0bI}H@:Կ/rN@c* mzQK) In5Ն"LnUG H)P vkTd)P+ vkTN) @* حߺՑIW@UH) ^4][[۔~v]$(Ṅ֧>lj-y4^WMS8)e(e9KQc^)UK˿ JW)t?Vԇ0 oiӍi}n&6g.XZ<駵ȡ@[ u rd!k?I nJ9:l2l9)gBY> ZBu,f9͛d-:b-dܞ3~D8~}-lI7.wٽ~Ԍf2Lۏ''';џ`7  #o_,(yR4RԪnDaTgt7mz p3èVW ^(xuCr")  U4ƿ2eMfcF$957_,a(!|%_aep O=)cuM!oFGW+@_[I~+.Q(2Z[_Q NWR}x6V~ᷛA-qs}W.,47#zWJ/e~+f_&֤1ׄBz`8Q`b v]bղR(vWY 7 RzDb sy(V@-JXGף=E SeFh0i<ǚOJ+[hQCl*k|ĝ%+rMKA~8X Mx.R8=P;wNG_Td^EvN)P7 u#B&ҴU.j;TSl._i;tL[ۆ8,/juۂZ9[ Ԁ],aL T6FM5rUtpRŶ\;)- j5^*NvC5}W խ/LUvkuyEv;^U4P#N۱Ѿ@+И[㕦K) LBٝuV:) vZam_ H) )PKvR@ d) ؕCH) N+ v}D7ޣvʴ)P; vkTR) @* حךqI*P@["H) \14V* Jum) (Db{cPce vR@ H) ~T/l^_P@m) حRi@ҽgwۿb9t6 ؽC tLR`knڪR@ @ҽ7KcnZܪ5sf ]__7Oa~dq'R6^눥զ@ҽS7J`f|~ܰ[[muHU@[UI) F{ѽ_x N-]sZpxz|򶽊6w@@ vPK) @ $݋v7>o]5iWp>z]ݲU@( maJ) X{}tL7Y{㽣/M[IR@[UաH) RDE=4e~euXO"mHOAK VR@ H*ؾqY*حh hcRqФ5@b7cs݋ CAι~7:k5R*q;^*RHa1:f)Aۤ\0nn{* -P(-&[@ҽ+9;b We32j}`wjCu`*T#AE{hX\5+uj\MUsD V,vF讽J) I/ዿӫgytӖ"^Y5(PnBi1) 2Evg++Yiw6 v2a)Po vFuvnEצ@( mqJ) W{Svr{`>2`VoedRV[؞l nVJzmG ԿcRH~3jN.X;lӮ45x:.0m?Hyrr2˸I)x vuR@ HjS ^f`{bq_-.a| V͵V*ZU[5*RaHv[эw`aB**`2:j+R@ H)PIfd" #?94g^i 5@) mJ) O{glv.nRDH TjK H)8 n:]u=8#e+ -[Bm@ H) T j3~.S2R6PePU@ҽA1,vqn֤%PnV$h0Ev3Dp`˘W`Õe( -C<*Q ^(`w`ULO[ݵ) vuR@ HV ^ďlq?/UupRzVO]$R@ HFU vC6踥@ vKNI) @VLJmH H]R@ ݝ_ Ա:\RFHERbR@ HR@[_U`CR@ 4݆vۣ" vR@ l-VR@ H(Rxk5R v+&@`W ;`wk@u`+W&5RQ*EXk*RW}h@U) حPa `!]-G謽H) @`wyeЖ`+f_sijƿuf߿LNNfw?) OnչX H)Pm ]"l6GV[sxn;4;g#mTgqKbR@ HJ+t/#`̬ygfμ }㽋v+]ڞ[u[:0) @(]ZΛՅ>LSCT *v^ׁJ htE!g9GW ,kSC;_ `PR@ lIϠ7ap =0vqNA]mUUhR_ꈤ@ҽ ]{gfnU+vNi=K) @@ҽ+j.r)  U@[RZN H) J{уyDvG! /`nVU+OnթH H)Pk $݋.l)gv`֪X;`wמR R ^`w`6eL'ؕH)PBrR@ H)U $݋vW8>VU+OnթH H)Pk nhfnU+vNi=K) @`W ) 2ia) (PnBi1) W@[fZC H) *`zjkR@  vR@ H) vw)P vruhR@ HQ@[#bJZT@[2K) Kn}էF TݪF H)А vuR`{nڋR@ + ؕwH)e vLZmX H)  T@[PZL H֐R@ H* حښ]R@ ݝ_ Ա:\RFHERbR@ HR@[_U`CR@ 4ijWVlӚMuHe~399e܉h<W:b) @)t/z iV*^[7*RQH= ]Nvi8m`Q\C)W@[ڂR@ @ҽ諀9 74N[[Z[ 4FmR:H};\^McڝHJ TjI H)X $݋>^.t/&06nc9V `R@ TB{ѧ.@4|`kR16F=(լ@ҽU²`q[Z6À\*.U*RH~ӻb-@Qn#Y `<R@ @ҽh`oy&2 =tEv[[ `[+JEHcXY5'`'aa٭*T@* ح޺Qɤ@ҽ3h(yǴ[(+ -_CmA H) S 1m+vR6RmXթ@Jr`,`w`:+Rը`kEeR@ 4>< clؽGX( -G=+P ^0rvSig3.aڽJȮmHP@R@ TIGY.8p v:U6)P] v>T) @#*P(z!:f)P2ӪR@ H)P10aS*[ݵ) vuR@ HV ^ l6/9=ݪON TݪF H)А $݋O^@.viw vOtR$%ɦR $݋؝^Wqm MI:W@[ÓR@ Ԁi_PS`l0n@RJVIER@ HV ^YDvWVɥ%=;μ](Rniq) IOvǖel{`u JU@[UR@ Ԍ`x^ ݚ[T @ H) $݋>"-LcR"@q vKKK) @H}; == ٽEW(Un֬K H)P; $݋Ȯ]5ک\T ݝ_ H) R?*f ;ؽK+RP*夀R`H\`w>UJ:U@[ÒR@ ԐIGư؝솶PR`phR@ H)`EvsЖ)  U@[RZN H) J{~ `w `YUUJS@[u#R@ Ԛ`w ڪ`֪W;`wgޥR$1nN][_7P00+ONNfoxR6^눥զ@ɑ]&V[zp= vu3R@ HR@[v>zM'``w.ڮR@ v+|V7&nݭ[nFR@ H)U vv_ż <x7qұ@_CC n%^ەR@ HƄݖf׮A@0Aр^EFGG7so! 53R@ H) l jj2M{f4g=gB+tyŮ͞v-|ENcfMnK,- =쎌 v 0|];R@ H(=kٳ`;Dʴ`8NՊfHصppOfX2մt s3˛9ĉ2$_>#;6si\*A,z_r݄Hf66l12*3QVn{QY nl:F9QèkqĦPkpu݋/yUo @R@ ԯ%}͆} =(?\< mH x y6! \æV4.U"S\i Nya7J]`Bv4ne5+W̅ 2߂CndtdR@ HV,؝솶v#@" Qx2_¬N$@M[.̟M#Ι- @}48Mb3I:(F@d~򓟘W_}4s!so9RPJ޷%[/_J}lqڣ]i> !-›(,ׄhqx5-򛧁Z94g2#!k}<+ް9C[,$vuu6\2pߟ??K. v+ܓ`~o2:2) N+PNvC :a\($B"as-`JcfH6P uKI(-,Nvpgff3o ۭb!Z5N ) @*PNvC[@d\raw2X&'4L0'¯A5L5Psp!^~୆G/g?+Эp$7^Ȥ;@.]XX0EkT32?8`74j04rm1uvv3`woڿR~( vͧDvBPLY`W [[ǂȤ;`w#V ?{>YZ+/5@R@ ԯ݇rvlEVޝZI[7R`(v}L(R ׽ZZ+`sAӷ_ H)P {]1.+-^I`-g[V^n`~o2:2) N+P%x-9h-ur}jִ*ǟ;}+@ɰ˔QFuy}H95T*o}2/D2i [q~^e~ݔ4#Ά]dW[0"T|@>P/>vq; i *nwV/nh|@>P>vv C:1бɿ|@>P>P0vCUdWQ]Eu|@> TnhU1T^OGգ|@> yan1l`]`W> @@^ %vCʱرK}z||@+`O=y͗eӀzPƠT}֋wo_Kձcu v z9u.0+ ԅ4/8uݓԆ0u'nc>u vNa8 [KMD1]}kpƅ0'ǩ)YL"9{u`1 ?],0K0A] 'ӾFhy[Վ^377WYm9`v:`ZY%˖o[旪Oc9 VԲ݉ SQ;-̉Jow'T#L˺ݮڎe~D´ ]؎vCG獷.)sgyS6+r`WQW`e˷| ~,u=Ḿ`lL ʛa";Ms{MMws54rIo5~moS1,Ӷ_f2}H5#!^J+^*^:O*㉧ 2_/scU.^XlbiܺVjMLiS8a } 0-+`5]91rm?mN$\>\C|xyn,ʼ)ӏ N ~m#(#O V7m(*ߥ8de k_A>_dAQ,#ݫsvv.oflPX>= 6/ }a/w{'Ο9_PEi{n H r/Ӄ{\,F)c8=Y?=,+a[2$kSd7L?.rF٬vULikk썿6)6mpoWf8_mX/3/m\ ˑsnnWW?4lMx Ʃ#֑ld.ӉT2e1iZ P}D҂b=Z\VD7>,ԥO,o<6m>39ؓRB?, tunrpB`w.+"0`w Ff붴n{gY=y|gGmն`70Y-@$O瓦@M,K,u$pK"\ݐ0Gmmmw|;mz.H<ܭ_rm7i{Ii/~ v,[ ,ڶTȂ, R_ţ6ڴ~mǣGme+tꋾ<w|Qӄ·L.-v En<"8Mڱ7*ܰ,]vwҥ^{`ںٍCAoJ:C64HIcWOgzRSP|]f$ل^Fxgˁݣǎ#֊jCy_Fj jt422j~T"WwHچX 6XWaSm$ezy0݅LW|$+u[Irg;ӥ[riMy!.ݰ-or; v/\`Q7w|z|~n4o޼mQ@1 ߸}i,G2 5Ox[+hjhc@vtxkk`9 ^g^e7ho*4]`S#!YV;^~O`9M39 U]Ly5[k!˶g^Fx<`r`w!Fi]mK0(rj꺸vΝ4.VLmDYsm+v4`ݑi%1`:) |6U`{#@+9mȏ*B`mLBewdxZѰ[igt ̘ӧObPEvuVy2CUT5o۬M1;| Ȯ.6ԣ<=i'O9 u>X:&]|U3==cV_ѫԬc5 &x[Ƶ*j/_ XǬky.;aJ`L`W7r:o}[6WHA]/76ǔYj:f]).6 ` ;`!|}.S 9t;`'񡳹es]vM[ߎ]+@=awA!n/@vqf w vxt@i>n7/J\*|@> li })1 gAdwaqW9:|@> |( w kC*ⲹ |}0ȵ`=d0xo'ؕsװsI'a'||; s `.Q |*21p|@> _ w /S=iK֯SW|@>P/>aw\4Q^~h^^]!_@c@YKr.S*r`ijj@uǬPBzW8xiLmh. vئ]Lk`;9y!fz$Cy5iic[<~VqQb˯PYJ;t}``wfr첑ߵۮ X:cg^Fy އ.ƺ|`;}`a@cQT7c/~.s(8N[Oߵkc?A9u?iq?Jب<N?V0sd=(eqe !1zJ_ 9<߄ruZ(>AIl } n$i !%0  Du̺^nZ؍R*@.6or؃rloX%ER/(s!@>.bu I  yz؍_ݍ<nrii  [@ZC`7 n\i<9\2@R,_OYu'Ey/ʪՁ|@> l속ϒ4LEHf,;gw[烨htozMk#ؕ1!2o_(nnhx.=91aS\L.K+ ;wPwIE)=|`;}(e*OgG%`/\|@> U|@> [ʹֹXOoշ|@> $@IT1ȡtQ|@>P> UdW]|@> u]9w:w?i||`}@+|@> [(vW`*gwD'|@> r~9e@> |`[|ѿ)B]=FR@ H) R`znwiR@ H) ?R@ H) V.֭R@ H)P >677ef썁 17BP95*R@ H) j^nW@ H) R M|C H) RnJcׁۚI) R!n]^YQn8Q H) `VkNR@ H) ȫ`7DZ@ H) RV(v@KLc`*OgPc*R@ H) Sn}֫J H) R T v&Q R@ H) @( حP9R@ H) *`jR@ H) բ`ZjBR@ H) ݊K J) R@ Tj C H) R v+.6(R@ H)P- v&T) R@ H+ حڠR@ H) @( حP9R@ H) *`jR@ H) բ`ZjBR@ H) ݊K J) R@ Till84Y^Y2Nۿ̲j9^C H) R6PePR@ H)h vuR@ H) h nʠ4r R@ H) AB``j\ R@ HR@@CR@ H) @) vm m4J) R W[㕭K) R6ZxR@ H)@ ưJ4PR@ H)P >;gW[2K) R %f vQtR@ H) E ]&]쮬Z[F,EmTf) R@ HW ...xER@ H) hD`AZn#zY H) u@.]ZZ/#Y9LcXuSPGCR@ H) @( v !𲇆fq% v#tR@ H) # ]4vu(R@ H) h`vNn*2AFpR@ H) jK\ˬxs®Uc*R@ H) Yn=׮M H)  @40j>EvܣtR@ H) "EvUTY*R@ H) @q ]ØUd8mR@ H) + v=r)a+LR@ H) (\4]__"%R@ H) @\^¯"UPi*R@ H) @a \otRR@ H) U` *AER@ H) .S|:U) R@ H-R r-^R@ H) z[ R@ H)C  >A v[) R@ H~>A[ZC H) R`ڭR@ H) +P($*u=H) R@ THnfR@ H) OnՉJ$R@ H)P!RR@ H) >W'*R@ H) @VHHmF H) RV_DR@ H) R@[!!) R@ HS@[}uI) R@ THnfR@ H) OnՉJ$R@ H)P!J]|;xum-{frr2˺{+T\mF H) R@ `pR@ H) @) ح SqR@ H)  W,]2(pᵤR@ H) +P6+ R@ H)  W@[VZR H) R"5V*R@ H) \.W[ޢÓR@ H) @) ح SqR@ H)  W@[VZR H) R,"A_P1PqR@ H)P vruhR@ H) ht:~) R@ Ա:\R@ H) ]n{_ H) u`+W&R@ HFW@R@ H) @+ حաI) R6R@ H)P vruhR@ H) ht:~) R@ Ա:\R@ H) ]n{_ H) u`+W&R@ HFW@R@ H) @+P2쮯ۿ̲:P&R@ H)P 88 vU.) R@ 4enxD:b) R@ TxZ*R@ H) O^n9X H) ժ`ZkFR@ H) ([.{hPd:R@ H) *`BBj3R@ H) է`D%R@ H)  H) R@ TH H) RB ]ۛXhhv_sij?6FYjmF H) R $Up2vVBvmC H) R`;H݇9` v`w;ER@ H) I`w`;Fqnn%d6R@ H) C$`wzm^lnO9Q/ڇR@ H) @H=ߌ/Sڥ&v+ 6!R@ H) $nusݜfG Q/ڇR@ H) @H{?\6G;3vk ϬO]U@wmB H) R`H{>U7`_4[Wgsfhz\w>6ԋv!R@ H)P`wg0c^*[յ ) R@ HmQ vETHیMe8޵hS9R1ډR@ H) @ $=h'2ҳlNZrk R@ H) ۩@Gj̀1`ºi"Y?ڗR@ H) @ $o uLӊO.[ vː[J) R@ lIGuӵ/-+jz/mgh_R@ H) e+_g 0  1fEv]R@ H) `E-l1N#ݞ^R@ H) W vlyo_ƴER@ H) G$}.RvES/ڋR@ H) @\o MH) R@ l@11l_hOR@ H) ) ͮM R@ H) O$ؽ;D15k0vGv5X,ôXyrr2˺{؃R@ H) *_| X]7hցvtn_PnoEioR@ H) +}p_.?|aܘcƌ-wū5R@ H) vD$ܺ9OX7-k Ϯ `ݬvS) R@ Hd`/?fgVesg^4W͵3MH]w+ؕkI) R@ TIKb] 6Uk\R@ H) T -;4fNX; pSLtWi *) R@ H*R v?rvώC;8G]Xծ"R@ HW v?zcXZ7\q֊O[}c < vܣtR@ H) "`K. X019G%٭UQR@ H) svvѵnsw`W%R@ H)PM $Ev.le7M_QSn5խ"R@ HW v쮂[Nh/g}HH) RjH]1?mDC"U[*R@ H) Q\CۈcR@ H) @ +PQ^ҰaoPѥR@ H)Pg kkY 6wW[gÑR@ H) @m+PƀW[ΠK) R(v4zsR@ H) jWnu\ H) `jT#R@ H)Qde474#".) R@ HjQbkS`jZC H) R,]Y]͎ vQR@ H) U@ٰ"UT*R@ H)  R@ H) V*[~R@ H) @M*P1% vkTh) R@ ԭ]ȠWt`R@ H) 95We*R@ H) @ H[`Bh*R@ H) ۡ!R@ H)# ++HiR@ H) (P64B$2R@ H) ۥ`w~R@ H) ]KJ) R@ l]2Дư]զH) R@ `R@ H) @M* حjSR@ H)  QLsȮeR@ H) Cv}H) R@ `w}}=LloQ\0-@MDT H) R Y$}l~]yR@ H) @M)vW˰U+حUaR@ H) `!ښ.`+^1aR@ H) jI$ؽ;؝8U Sn-U*R@ HV v؝n`S9Ԇ}vR@ H) jI$C^]32^n-U*R@ HV v?u~3fίw{0:z) R@ ԒIfxn\Y5"Z]U H)  @e쪹8 ]A*6R@ H)Pk $Fv3]5q SdjXR@ H) @+EW 0n;] H) @~2l1`jWR@ H) @+yp]\1K{y vGޣctR@ H) !`7K+c ]1PR@ H) hpҾ6 ZZ2=~~v.~,cbh&''geK) R@ I{?xu  sKD5iR@ H) (_βap`vW@Dv 4|@> VH݇sL]XX"3`MoZC}>0`w; GvBtwݹx.AW[rZi(|`|9ܜx`ۍ]?TUNi-|4x ]ڐy4Z`wSkrNI7|@> lccwvv\.awoRή"rtPK&@9>%8` xFvMD9Ѻrf|@> JoFũs͢9]6ľWIԶt|>Esft\in75P v|@> >~30hN LG;5k#ݬ vtU+mC~$voͱisrxƜ1g`7 jj%Dv/^*NӾt|`}isbݑs~b֖9{c |@> |~DvP>Y4PDSisnb=3L zZ|@>P>`_D4MK l[ja?a|@> Ԗcpain֖sdV}|@>P>Ov;])Ӌ,`5P׺a|@> 4<؝vp }`w`Cտ|@> I"]%tBz*n0|@> ( N<-asu(g0qI> yaK7Hc`/ a{cKi ;[q:q|@> |;hZm_K/5f*?'V|@> (ԅ\i _oz{P۴9>m6KƻYU޲|@> *0u!W?l:N ߟ1o5c E5Dv]ޏy2Q??|@> 4L[yHync=㽦kx|{a7^NF?yt:|@>>+a7W{'̋ﵙއ0c7ݽv= vru2Io|@> tn,\i vt;tWv!{nW_)|@> {>@'oZk'oO 9[ v[z|@>PI S+Ӧb\7Pc7N+Z% mD|@> ~30hLcxߴ9?mgvm"ؚR> ͅ&#_\2ؽTlm}< 1t?F{#> {0w2K/m$/4N8>~ه+$O?|v5WO:-/>j#f2w=bvc_x܃E9XqL8 jġ3NEj:vkHCgP:|G uqᲶlt-d~;җU^x]׉ָ%^x cZ{&.zZΐe koo\gX~kn] d],sr}1> -Mb#s\?ۣ޼ {}Ǎ͟[Ԟ_x<,kŎ[9aaƵͥWX!;ůa!wyIV~zlה:LbuZ|?~9giΦ\0a` mVisl9,l6 r6f"[66i˫flqՌ,ȆfW74kel64mE oo`jMK˦glt[[25b'L[7 bdC4p6lb%53q|rBG+9.֠ln ڭ! b|C#?(W&´l2Kel"%Ӄ0{dtlcrYֳ_n'euLJc0t^"ԜPgȧӸ~:pPcxl30y52s?v?pߎebiq~|Z2kruoZN ^Ǘ`F:=|`iz+ƭ`[+fY@Y'M$ Oax//Zmvo  N@mn<ݨ Z~n[p~b ߀^nk C53(.hZA;ҹl%|/CBP>{WKwQOwfHZ cvn̼q~u;i޺4gv[285vCѢ\@CWwN1~j|5¸1˴/\l fQX aHzѦk1Nl~dcm 9`FMr8;[X`#agC6Ӛy#_Fif'!/{mx.3x"zSޖ@^c}#y;1p-NNEA`&꿿8m~yʼyuѼѱf9 a$`tv ۉhX'")q7%. WeDl/"|nl E!Ƒs`I#|*gA7Ivml]ۻ.##joj-؆Fp^`04.Yrvy@7n[X~c.k(1U܎cڶZ/WrXFnvJ]a.7xx8a7vctQRa$ Ao$XNچ_׃]t!qCa?yj8X&`ɇWCkp!:>Na<^NYF!sY@{^cp(6A^Co#Yo:҆ozG4w`\lC)m:`Lt'M8zyB9?iկ~eǛom_#WaA<.#]H/DuݫK+2%"Jpj @\MD6i'q;JvgC n'pFÙpǘ:V޷Z͛quɼѶb2].<ƈ.^ {^Fu 0%k^u]n^қmGd*RZè\|oZ8޻7.v0h2DzBtifɴN]B`)] "|}Kǐ)^=\ا2)0<=ȅSu\~J0Txpc$CoKaYmdGvtB5DwCs孠F3!f!ETXY™H`z&r.<.75:!-LJaJN|~ۘ].Ή3{Fv=mtY觇Z5h|#^5i JpaG. uC y0e9/Lʵ,r'A>!t( g{LnG\˾i >+,Ta48|}pY׊.2 n!ۍ "*($?iL-CO!MzC'ӊh][o0kwqNuz8Xza}~w<~}]n>^>) L]tKя~dB*C ;jջ汿{e㳸)>(+sFr O N"F\l-kk^oH! u+ߴA`Ҏruica4amKƐ07,aI6^C:8cEZ Ԭ!šBf;,[4 4R|<:gFc/Ыxc48 8Ώ 86R Rmqo-k4^r5N+aJ.]! ddpzڵ_gp}嵅 .Xtb124_;m 7?X/|ec6b{gL5lA5T:TFv]fظ1l4駇u6Pll 1?Trٰ1Yb0؀:]ј3dΣJj7&5*[sYg_pEƧY|Ɨet][y}CNܶo\ηOk)2tT0$j"f:&ߋf7e։ri|[S(o1faQn0i=%X۝4.yC·$r|r,}n _P;|ռsG̏{<dB8$]^݉݁q݆j[Gۭ"fs:(qO~wfsOri`MҰθ[i~3Pp:ƹ-~n䛰_kwc2iM>fHױ;<׫u_:n<^'5Zh@k~]-]#5^kx}Aވk uﳟ87vGvn wZ(}^xMop,#tl3^؈Ψ*s ^+.h{Lpc9}pr8X.?Q~}\?.. ፿8햄5&l.m>Vtۼ >MN3Ke_2q/[eV`cy=Ϯv۽Z~_r\ek_kk 7w|]?~gts:{i}'~(Ze" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?/ZIG4D 0 UM\FRiB 04# hKY:ԭbR,al:^3[薈V'Ҵ+|+G@#ZqoGΉ _MqQI Tǩzauqgyn-<=.-¬O3*F2 sJ6LoG&Q45K*wNn5wqO(Kӌl'>?bo_j $G's#9yE/&{h_d5bIt[1y}(KHFq[0CӚ,ymHy扯6Fl$V;A$Բ<7@_Մt]/kxa66\5җDrq: A /*!#ɐa Ua4#/4;K(}cR]kO-<ڭ"ضch!ABH5+kx%s 6rʣ>fE!=X҅$kYݮ/G_M>ѿ _M6IK'imq-Ŵ-Ue 7"ȉc\^/ !hKW˅[Pr>cd7 _M4H.Q5SYi Vz]lvia%6Hr-x|O än58"/I(P7ٜ4t1[̺t 'gENL/}:Atr]^p@ B[vA\А)x]5%)2.#"Byp)'m7 =u/ J614ѡYF?/&5 [}A,^++LYJBsVE׉ %hoc!X>d{c 9`}'A.15 KȋǒA60#⼆Y]*&ϔ1w G8hC%'d/615 4YxP-Ƅ\mqbːRI`S#Yc/y_@'NqNVobf@]3i _MsYakI,&Q ̫,r=b~\So]iu:mޭv#yY݂yΪ)2a1Qs_$۲S@]3i /&uBl mI yhP^~I~\gVZ5M\i6O?ݝWf>fr܁\no{? /&|?K(y.;X~ܞCE 瘒"qӞ;}1Ht'W5f|)7? '\-R{nWY,n0`{AU,o7Ct N+l~tmPoUT0+d>,v[[E?ؓ{ܕl{*Smok!.q2ehZ]Kx1ܶ>[.;d?UQIǨ ^\[neWR.ݭr1zzUf?f?c?fv{8NOXztPǨ)Ihi E?٢,LB`9o4O]MJKaq;;ƗrKnzo^zԧGXziPpiŽŵī[f/n#i*Tx'3#RRc?cr|ÖfEftV-< ׶OI OOe=:KY-a4+ uIJG!P@\`GAZڏzi9?%*h?Ȩt=* I VO6A$p&r2@cڜ4mKimŢRL# %6AR,&/]BԑZgB\Ԭ.ZMA)zHne1Wxmw_<U-CBDlo&g2ĨgX$i+Scr_OO=K 5,C E-laH U  l o5Fy|mqsv]Q_~9?gjaR_W? O=JY mXo"9"Id¹gbNJ\b5CiX?޹# `5c?URgaR#m'L:UmUX{nh*89Q+=/gs*v?';TaRe'Qlʣz_?R5 [:RV?ԭKyK(6:6J[Bs.6Yv$AR}V?.g;,EnѲrdlcg}5<'S>6I֊#l??_'NEܞ\[=I՘Ƹxg?BZO}ᶷYujAw:|Jc%q yV^#mC˭I}y]5w܅ڝ#|($ft]V$_+IKb.%?y`S_s3M^Nay OTJ<ۻXd} Y8լoo5v!up6F`1Ug[-]z[լ0ft٤g\ n>mVߓvy?.1kmi\EFKvCb+H G0z^uZg@^JP;lGDPY8{TkX/uI #(e䎠psӚ̶5ͤo("pa;A#vzfoݪ:[\YMYbha*YA,,$ kRtfY2sHHRO2tFHܧW"{v5++i,.V6Xm#nsU7mrDhuΏ+^Zm<,g ls4z;Eg.[gߌ}0{Ѥ (((((((((_>'+/W'I檎ǏlI֊>6\kEmW#;- c`WoWPҬ#Wāmy.QT注6ܱiVDr6mdl.VYB!a~$I䓓Xzw35=N Xr2ڪU3"o9a%r'|'blzȲSS 0å[O=ĉW 8f<;{ҫ~ausVR@b~ShBɃ[WƐvqwe0H. ɑf $ZgdGK[ KbjgVUG:\-|c̹n㞕4mmܒ"=:GT.1rw@Ѣ4$K?bƈ;3++Yխm|WV|Q+h\)P gydsG[K5B]&_R%J sy$oYu.pAT>/B `ДîH\8jVY$I!Vn.d1?qt[r!LYPm$ z˦MyJ%Jspp9 5퍶m{ȷw#Sǣ(?XSh6ZuŐyHTvq cDmNx47ev ]٪ڦ&Gf pN8p3U+-_CbՎr6э"v1^^~}SӬֻUDk}:I6ps6Æ$ 6wW7Wz|p=ͮ:/8(Ӥf?H Gr@= k&Hgj!JA) egxbㅦS QgkPzIҙk^GX6K2|mٖm~(**_KfXύ_,?/Qa>6€"̰oGeߥ 2|mٖm~(**_KfXύ_,?/Qa>6€"̰oGeߥ 5oDa>6°/-V8Qp0#{MOS7?锟h{zlc?_'}^ޜ-P+(A`W$#qP5q[Zi1Y%ęCyYO:״+9f#KeI%tmľ`e`/ˁF }T~t +DPEl[vwT|ÚѼMEZ)D(#)kdʪ0;+m|KqOovi=drg`\#ns;@sRn Mq]8!CpiHE~iFk+J-asqv\G'qu$?5jie); r1D3Ȭ3ͨZsAcV(CnPafe8z}GͶ~&-Q-U7E*Oȟ(-չVuR(yUVQfE8;z->JH:sVJ[hW8(fsyX ;wEx1_Gj7jR[L l\ 99o1[Kh[ipIGaBƢV5˖r\R-ПK_Xs۲ww#9ҳe#jn4WZ DG#ʶW $ZKxHb#%[xfͷqU2^ bXk9 lC(@y d.=Mrfs]ˠ֞Ski32*nBS`ȮRbXh:aDT*6A$cՎ;=*Go&.j-$HWjXS&-)~ uR(yUVQfE8;z6Eu]+N>ӧʲƂ[`#!_6/8c ~#,_db18Wמ8Lڽ`o%H}OjeXU'oOi0/,[I"gd\d*Bz]ڮ>lN= 0N:V|Hmg4$XeDvJRFʂ1[֣te6D: ' 'ۺzj/?L=cާUDof1'Aq-ylIV`I0.%Ԙ'ێ:s[UӢ+nLnl"l! 8mWڝWz$V;q*^J̹_-yӖ?૙+'8ddbFQn+KM9Ns} #JҢ*+e^Iv95[xcum \0wm0${]S\[_qAu +"bb6Wp0y_տՆDtcY[ivDǣJk4m}{jʹw P͔,!FsPXCOHclc(I-淪0՞ 2d-8L5mYwr\`>^<5MGMkjkخ a{xTc sМRogR<#UԟN;BFylTfk|șAdʞC:燏+m ][eBy AF2D]ړVմY.S'(1GO@ۅnx[:]DE-ܷs*Y (ӊTci#+c ѺA*3YZ^w3xoŨ W#C3Tn{NGI4닩PG FI!׍͜gn?$ CJ7<8դzq,Qڬ|o>dLs#ǵ3XӠ4phMLŸj Tu 7xXӓQ]Q6ƅn䔶bH_(AzVau7&Doưd+FN9`Z\o[7W_jEZj4z0RiXK~犋֚e6^!\h3*@ Ȧ5' ś\?YI4mcpȑ e!Jb0Yiv~8Oqmy$& L^ڻt.4#Qd3<&SKU1sF}'p;Mg=ԗI^trV R0ÓsT-hR5,:"brnX]`5څқ).RG$8vDsv/_4;G9"3sr20 a;Ҵ ;Ov :?PTPyF[gXeR@վSOk:]Tcow٤2e'j9]_jΪıjm g!eeO-eݸ`0q6Ϣ϶v{VĪdx{w%_Q-X;G5~K krܜw֪i^O/u9~tx-V39ڣvNk2k8~$Zi5՚#J#uwi<18<`mtusnћnm)'?89[|_~(u^k?gu:M.c]y0GSV.m/ WZ b\Iyvuյ\iC,䅥pd*$q،^6M'M-2B(+1q^y+H -`2x>C뙣ij2Yh;2౹y L۹RsOҒo 6٫kbYl)rsrZECu%Gݣu= M0iV֐.%s3:(n>.&T(Uw$eAb#=N6{vwFIO$n*Ɩ%9 C B#"5ͥk}oc:cfK3:)EܪH$@>+Ś.=΢l-4v ̛c0bZD'iot$,[3"[jBrI %Kmy %\#Ɓ&KmNO9ki>6DVOHqj̃ÚխEow1Gju=jxt6K:duZyVCjUl99(\.[8-ല$ 6ݐBNduxr2j2yphsXb(wTz9Z%#)%U9T݂W$u(X:(((((((+I]b܃/5t_58)ly7g4'ʓ)>5\kEmW# l&EniCwqxk(Wv1zx+'Eh_i׷rw w<$X+z ix~ OS#[kid%#v PY=+ZZe<ӧgImv?y=뚷𾽧Ym6^*I+[n%+-!~\ 0 h[:uo&;6XZ"-d]۳~>lz`缸X7೹8<*}|G^/cmeXY;e+`'>&Ԯ k!8l4$"zʴ5Of08ͻ.#I?K%8һȠ Еb2?:.a%ֱn.#!=9Koir^KeY y$R[n=[!QM> -=-"wQefdS=koo&~-{ՒʨqP)s=*iI[X%nIE3\cxUnҦ;^icf)hK%xrAwSMԚ8-)-.-k<,U-e$,1Fsϥ5_xtmsi3 -Wxd3#zW^1{VxByq#ʗ B7b6{YqS3PM]>[aio2 gN)i:ܺ ]i~>&3" !%9<?ǢKA%Iq`[HbN~p2xQGVK* ǜ[@e_wnxmE4'Դ;yUFUeNxMxr]WJӣ򬱠?W͋N4 Xhoo(S9pe< tHp$gSGы[Dw  ڹ!zL+iaj/#1H $hʐzs}6OAtAB.ӎE[ED,MǕ!P`K.dccZ;jbO%Gc:fUn*犥kxOdt$$ B@#iϨvgOhqOa4vG+}THPdLVvu{y| )%1&|䳅b*p;M "f#`n'M;2'IՔY EN:7H+X~4ȗ7eqE;7lUFpmn5 4"0L mvhnjf6pXG2ġ\n`TrkBo ^i ld)SoV铂aY[J/?VSL,1MJH:sVJ[hW8(f MF]^B u ؘ-ˁ'' `Σèo--a+D  *LJo*ߡ`q|Hڷtۍ"A֭"nQU= ֩7=4ء nr Yimpm8FXokx,w'-ナf4=rT5n<,iS#! 6P`M|ĬRbXh:aDT*6A$cՎ;=*Go&.j-$HWjXS4Q|Y.|E}%DطٶyEh$$& _TtRxvH/OS~#}~__.GYɻ2/3c$;zq=zqY14/{:J٬)c9~O5vP.u=B]JmgC"*=;: `\W̉FT /"_[9Vi I,sq W 7LbFt8luNO+#su;P1A -5hЗ7PєUHNeР-#qy$*m֚P3&,+NYbGzQpO:Rj <[\Cvv>ckJEKZRZ4<I Wb9Sǿ4}_uk~_s“D3fu#~AGlxQ4og(87&"r~? Ic+{O O bhG<”E\FUyf շ}0S4=h:}. FZwZpr6Y3+e[Q$fI;N =K%sv`EG$03j5\kEk[#|A-#?_'MN9.b5]˒P/ =Y6ſ/ yn##aZ۾/R)ҢTr2Iv렶'{]6b- c/O_SLtm:[{& dl@#n5_|~sYZipKI6pItȈ Fwe:[>v_B?ԿtX/Ɛd' yWAp^ڤn3*5'jv'ZkZ| yO[Bɽ;.%2IナkO \CmB隸6n1wR xzVm:L^TL1m()PvX|<۵úz_G].I>}~j(trS.gGR`,;JA>c7azt:ZoV/R)ҢTr2IvꦩqhNRu N8xF3uT䀣f=z=Fӭ己l-`vKȊ>fZuci}fwv\Z Mt`;<o8Y55>kQ-'[g7̋bЅm9ۀ5\LrUgm2֪9z%}+Zo h76XOi[nR0:%Ӵ7_ ̈́RHP=I^) \}qCemY\/#`sgx[k"2Z<,bcV*;07LsCnH&dd 댓ǹ_mݿk11Z_Zڜ> $]\MIvpB?J#֭XuI)` dh'N u>gwswkZAstsq4P*oƝZvnm [(XԱp )v8CiZ[+Elygt3@S$|x3 MOaw6myVI;2щ82ۃ՝K:_YlΜF߲s^zS,-mm(UX< y==M_?|B׺O4-FLN95QN6fןWO/̨3~ˤ' s"4_jt4xoyK$My>$3$f;'LmܮS͌0=ĉnTp8Ek=2Q{%Whk*ιܫ)] 1?)4<OѮ[F`nDHl+q'2>qkWo][Xj)Ƒ0}HZW 6BbA`:wGK%8һȠ Еb2?:.a%ֱn.#!=9k=ƴ if4Tk\j5Z_Y: yyRF[/s?*cVEqE h͐Xb2{xr46L񾦿ܠFyI'"u$I.6 qp67 AnOJ?ؽwueTsa8}(̹n㞔_OBX)q%[ZUm(dk1HSt0-1_Cyx"Ǔ^u]%kLC6tJi `;՝OXK_[F.Rm9܀88NOjkc*ö:4ȯ-X dcp \Y$;WP[eBhdڟl{66c#HzjjM2LnU7d XpXz4տ}yw'd;v*mS{O~{ 6k.0yEs@c [<ϳ\$d>aj7sZ@ q7(Wr献G#UK_h]Aq93#\5f$dSO/om?-irDm$ZENHSAu<+5Mu-4׶1\,y#ae&"Эb_O"\ݔߵFU%'DWfò93.9`eח౸acmd8' -=-"wQefdS|o9/.t3>duqÂou.GYɻ2/3c$;zq=zqN_|Zo.mMcv%R9?vѲ J+7]4ph[,R[C\Z&*x%qz<*$:Z[<-wW,v69Vs7s< ZNz]v/u!lLPٓ0h~v5$vd-,j%iC\`Hg%.2| eog=)'qgx1b3}+6_66HEuHۺDy28[aio2 gN)i:ܺ ]i~>&3" !%9<)nmV%&háf4EBdAbF9X㻱Ϣviv.DvpH -=-"wQefdSo^UҴ#:|,h.2bӆE'#N3:S??aտca5]FH![;f1: 1E^Ӵ_H,ů~$y۠v8ڡSCEY}/u/&[&9 e\v/^V%ܺɵHo0)f34ٴhb \ 'ĮL(W`Л6}7kE[? ~պdn<ߍXk%aݽqV|,qkvڋ o~8>kIpo1[];H?7VK=Wj׺e  `G:JFc.5뤅f1g@f1 ԀGcogg"#݃?1YvJ㹚uXUʨWG_+ú鯘 mѬW\[@zU9bO0ũOPR[YhPmoN19[Tk.)5E(®1>Z۾/R)ҢTr2IvH[V]6vjK{J0r7*H 'q<6u}B`ʷb38nX0d(A l+&sYZipKI6pItȈ Fwe:[>v_B?ԿtX/Ɛd' yS[CB=Œ'W]4@=}g[NrMbi^K/!JON.'d,>X Bd>6,kCavu!JbQMuohk^W⿻1啚28tn2:-|-kH㽴ç"xv@pzcP>8_ݩ%f; J^6,PkCapʑPaG&voOϷj\Z4`YP s+y +z U6V.TjqI5 'UоM2[̱ڽ+H!J2AZeR-amŒDҬ; G^:5?:^_;S4m&GIJBcn'9d?!ۀ1Z>IdK+pY˓\ƫ{6lwh2ؙ]y^qQ%o\FkHͰ4E8\{w6{+[M%g0CHb 9WEuq{oM&N^Ф{ L0;w9KבnI,,H>R|JK<J̚xOhRS,AOu eWyTv r~1o%aVy{Q'$ sg ;Vٖ-Ju ry̎888eb=Er#Tg3̐O{-~TFGUI)1(Ïn-"mjw4Wel^O%E3"T+xj}CMqK+ 8Oj_o?jQEQEQEQEQEQEQEQEW'_HW' ?HQRߋ/Z)$K֊ڷ~G>͞o$,,;{KH.qĈD#*F5<*ֽoTZyǨ_G`9BTӡ+: iu7seE?[#FԷFZ]o boU9k:tS6u>+ i9v7rp$ H39rWw ws}s% qfmmq@kVF]{ܸyXKG^p8TJmѭ⼖?j jdO#99G&4YV)?o|q<_J䰋U^DvӍ&di;·ˏ0M} }~GEME8Y;C,NzG|>k#LLnZk"-w>hz [,7em[f vlegɵѣ6h9ӵ4-4ωf$  #lddR蟒uuci}fwv\Z Mt`;<ʱ-φdIX{#>? 3Ғ?ݯ?i6L% dEu3p}OX{;X.-\h&:0 ytV 4^$:lt&uؼEa޶4ɵHtԒ%2<{2 N 5藚ŵq)i]\#:P RڳG-͋[OX0͝;Zk/iXX%zlm %Q$1Y~G=/n?=_&4[ b=&[2]K%4Q|YTy;b[tۏ:$$NhatRUNI7@9Yŷmntŵf/at/ w٘Ss6`sL[VN/5_O&>(Z=>}vմ,mN #[ De]_Jl`cdPʣ Dӂizqy6FLL UY/CqK>u}G²͠sw%E¹ wmnzZ6>mg4Y6ύ$Q*gPkEgs<%ic(#XRۘ1F(nK{ZL(FBr5 `[-jXoO>b+Kw aW q0z'κ(EPEPEPEPEPEP\ƪ3B?#WO\Ʃ!X#UGqKcȾ3([ 'Z)Hr5ߑχ>og[<+_Uԧ7VOlXĪJ&2VE "+Kž#s:2E`Ę$#Z[NXF:kFYY#V$㹦xH+ p"GUV +;*p :yiOwz}+{ Ie0 !By1 yZ߇5}B&=N+KyĴ`)ߑ#  k.í{/%y&>͸ޥsg来@obX{I of@9_s3x3Q,Mk2nX5& GOd{oS r Wv7c5WND)@VvU"5$ u5V?x~]K=o%Gi0M}qJ8Q97F1vQZ^Єf%N`P'Y }zwۚ>v7m%Ӧ85'Y[΍$nIݿ=ޗOO?ՇkN|7iޙ#"YQ#/>0 ֝4-^T/%FvD(NCYĐ-YFu}OSghޱ]xoW7[i*4IkOLf3Q$3t g }_bW_}ki-čoXo. E q_˪wL'TYb 5EMRml+no@f\L k OLdWt>vF(]@8qMlXG&t,]cvKYZ(܀Bv+GcZR&y-=N1QU7biWWK*Lia.MTx]CG:ĺ :-dq og7PQ/k/jt5((((((((((((lF9¨,O3(ae>,-I @<o?*6TP_6͟|Wb)%Vڑnj'p ӢId0A#FÕ2GAh?6͟|W͟|g)EUg)|2 F`?OUm]ڀ(_kȏ$2G)d#tp'WZẛf^ZwxǕ.}2\kEk[#|B/덷/eSS>EVFEPEPEPEPEPEPEPEPEPEPEP{&F?ZshΌ=9  zPTf;?*?~qTSi%͐"#%5UdxMe勠S1u=s*JSϝGڟ|?8,0n켫 4$o8 g9?kv\I&_m2AT?^g\r?֝;?*(jSϝ@V\_ j⩶+8 [U߷b;x:nFWCoγ;P]Z{h ,"thΌ0!FAV4Zݲanm8G=S뵺n@5<3_Դ#)+OzOͯ ?mOW{ IeG՘}z_l6Ϥ2O>@?Ə0>?6'(ٵW?^m IeM?i4}YשKٵW?Ik<"|f}ӿs hSk<"_^i4𹴟^i4}YשJڵW?Gկ O\O/4O\Oo>Oz_ݧ ?OWzOoǤ6>gmZ+jy_Ey.=#𸴟G՘}zO}m;1?40si?n$>>gmZ+ڵW?^j>3i t?{f^='fxE6'+t? iti? hSk{r? hSk<"_t^i4{Sk<"_t^i4&G/4>gru')FhzG}|]aX.+ޟhSi<"O}g{'-'׿Si<"O}?𷴟^G-'׿f^=;nyE/կ [O#ť'ïO4}YשLٵW?Gͯ \O/4?si? hSk<"_𹴟^i4{f^=#fy_E6'+si? hͤ2O>OzGͯ yy͈+L9H_*EV 2,1{_𷴦8uOLk ӸNk (\}lph/h?*(OG{AU]l_A@1B"<'gEVEwRRWP |'EVEDһxAU[Z&wYi:qiM3A&2HcdYE[ˬ-nR2:nP$ے}69]+ +o"R:S}7: m:fy4[WU-ZJӮ/ VXA8A>rh_hs vE!B"4bMF#Aլa3$wIF`YАsU<pxer%[J`` }j>_пWoSh_+)8M.]^Fj,-)r3c%p35z56Dm9%٭8%yT'(D_t/[àпUoV晪1.$O`ROH`} RQk$ֶ9wh$Y3APBUN@ VEug_AJ _JBUH?@UpxPH"B][71U4S+H"#: )hV@ vE!Ҵh_+*t( BUMҿ*2(n@- VEٺW/[fv/[VK-0t4/[*ph_*u~q4}&֬ՓoTD/Q|HM7B?t=ciir+[+M3$/A=j~m/A=;`x4z9PsRP1h?(u(.{<9Ǩ7]+AEEZV׹>G]Z+AE6i: -qzwXr9}o`Z =ivZ9_G*6z ]@M_fұ =6n]I>jMHK3Xto7K%Gˡ)uέ֬%c\ 84Mn mjv0ӿӅ@=nVR]oZ&ҥU=erকnBB Pig}f睺uI nH"xpb?m\>sß(u%.WȓXu4xQ'^<-u>–]%/ë>Ř*hy$6Ö{<—: ܑ $dQ\"6[fda ^=b[cH]JIf}*;?)cyɚ?murS+si2$w^-d>c823QM6>.xsnW7ޱͨ0!ݪ玹9$' ?:ʦ#n)]INpW}vIgx-u4;,-˻ c"UtPba☁Q'^9@k~O]8jyyPiX;=ƛmo?blEp?·_9>Ӱ🇱@/'_jRNɊewuNz+oxt*IҴδgHeL 0~w }Mg4#?STUJ-PIk"xGk\hRA(U JτO|/Zh7R[ '{޽q̅dhٔT3V.ju 4p5璢x  ND[o]9i -2TE=VyeW xF1M$Oh&o 0 7/&ݸ(=&QTa-SȮt|M^]j; K*YX@YX]Oծt]gC"ViwIJ/A W#vjQސݭ%'%񾑦A' 48o9 Ptr}qI;[/+9IaX\ 7r;fP/F׫I,.<{đhw^#hn5 YxqƔu !56F&vglm0km/VՆyWWPጛ#<}j6_Zz!z=j>`{1;X_n|3Itlm%r; _Z{xG\/mZ8$.ߜO88jf '6كYprp¥Z2+p+*lo#%xb]NTt# C_맘tSiw_,n jOq,G u\Q` Z75mGDhSkMliڌ >r1?u@:o:a/{o8%ŷn4/A"'CWt1~)e3* A]khUSk[İW۸ H  =(Z[]yXEmPW5~/$ ++e 7zS-|5{qmiDâ[4w#r&\+YvڽܼtYè9qO[S m}tm#yy|yFwm{΁ '"/2 m7_'vϗǛ:쿴j oIi_!O?5I-9RA4("aR›@ ~JZ*͌y'RTJЖAOUe?֟fwnxpjxȠqPWċG#wHcܑA5D?!%P~F!%WQG3H<[l_?EA 7.?*9rGK 6/iqU4QÒ=4_QCM Jhfx(ؿ!%Ro\U{Es0cFA 7.?*~"tz(aǏ/5-3.?*tԴURaǒR*>N:jz_ z(aȻV>\* צJQfOIlI zG g(aʏ1g{A=#U(k|?'JMf?V?[?%RbzG g(aʏ1gyA=#U ex?'JOf_+i?.j+2V$ $BX!Ig HfpIz[oo_W5+vğ()j(%?E>KF,30v/@}ZDa#|ÿK@:,^qL4H*5i:_*Mi 3<e `P$DbFA#޵~C@|o|tQk|b}?~i<)Oϧ:2XF$id!r2Fs@φO3SWoIM x6 tb2:|@֓&i}M} ٵؐ'< qxwN>n'R{?o7\jNα},ZMLJ-Hw8R%fܭ(? ]8\|yhr֗%`\La@vKNqouix̍+3!XC5Aou{=rI.5I7JlHѻ#!nUG nx?åwN>n'R{?o7X#%CN5]CQF:by o3|k1H۸s]Fk=]ijD ay N>n'R{?o7ZPGϽ7Կֽ_g u/uEdy:Cn'R{?o7ZPGϽ7Կֽ_g u/uEdy:Cn'R{?o7ZPGϽ7Կֽ_g u/uEdy:Cn'R{?o7ZPGϽ7Կֽ_g u/uEdy:Cn'R{?o7ZP;G ]2gbq6 Ǭ7諭kl:ofzAlve'  U:'4-"J{'(+'誔97v  G>C5SߥiO~e/6; _cc3\,?M  Y>>uނ,J kŔ1g<\̡ssU +FbЭ/u(/DJ#A (bB=S$e/ưnq4c3\,?Mr)+oKs Ō7z$^D ,nbrOCJ{D<K}ok[akc)ҏJ^]ܿVwK}ok-{uwoyܵH~[8c/Jq &GC?˞KKtK"0uݚ{w:*Koo_W5z]y+叉?Q|Sa[Q'J/+uP+xwPv~WǦoָϏxYc#> ӭZ%8'҈Ԯn,{u,o:#Bcބ0,kX/mdeAVߵP&Կeqj1ŧAo--"HFAfOAל-m΢bA+g;}p=# {j2´ڟ ?_gopnn&[۰<9f!rvNֵi=?\taZmOW] (yy {j2´ڟ ?̴Xᶴ8`V8B( p Ο1 IIhzͩVYZmkc OznOxnki"yN햂 ̒DYw+ z6[N%3LgDrv_ݜƭ?Rс+Y]I/x|Q6h0<,^{|:0Km1"X/‚VfbN@{}7?4ݿՇ/ڵo,VAbA#gc*nfO| xNՖSukk-]2x]>F/%6o?ӞGף]Cvnn,}Ēb!"êݜ]}wN-$HlXVIN]9cNONѹѦV4}@iQY}7?4Efhѣs}@TVnFiQY}7?4Efhѣs}@TVnFiQY}7?4Efhѣs}@TVnFiQY}7?4Efhѣs}@TVnF]YoT)Xfb= )(l|1d+kͪ1J|;XXm9-|ƒ;*w#z]u'7%5}V8t۲2GT?=??=ʎH:o$c_SKյ۽G_C6]Z$Wql,X@9`M+'ע]iIyl|xSx !RNpwee/g_UٿFwru uխ-gC,>_0!\{Wu?FA?FA?$?~?JQ˷.yyOclclο>H^9MlE\u#z[^WGx|Yd2)ӷœcݻQU'V2qi$[vlӯ6YJI:\?~\v)|I 梏?Q|Sa[PӾ 6DG]ρ<[襮O x[? [?`#Q2(,ԓY)?Ə"˦7FR2t[x/\dmko-Vm029PIgM?$3RY֠4bM Bhʒ |`A6<VmǍtmKg[j["y] g  &A7hCΛI5N_hqVڈFZ,p Lf$C" AcKnco%WB ݔѫfT^y'$t OM:o'V>.ӯ4ItD{($@OVbAs??.FG$t OM:o'ֿ:<G$t OM:o'Ո5֮%ʹQK}G,^yF6]^\Lnoaxc`X9$3Rh)?Ƶ0,OBXnI`\uPw$t OM:o'ֿ:<G$t OM:o'ֿ:<G$t OM:o'ֿ:<G$t OM:o'ֿ:<6@[Kпx2NSoEǖ%d` gep3 EGkU&OI?-lj/(oo;GmkK}7FZh Qv/ҴS:B[ bӮnP9Zֽmi %@CUL>ec\`Ⅸyѽm7Mvŵ, crA"2G`r294 ]{eMؑr}hj?{@-Gڣy >L[RKBIc, ل+Ī!H0Fz {@-G?oo;Z[@o ,|o- ;`:Ҭa}iR ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 8f)J@ Kҹ䯉?Q|Ua[Q+J7+uwTٶ":<ρ;[襮Wc­PuWǦoր''xA_Spܺnot>;EKtwb# X8 e9F}[Nhux挸%w#qؕe#?åwZtkuU0\ {ax(a $m/*w`r+KL7CxImwF-4q5?a *%үLӄA|ۙA$| 6k[iZXV F[:1[6͢;vLFpzoj&xN}oYҮ$RvF v2qwW|l`be[K[%[]' xk!k*Oy&~Yn+?܏M۬\&i$ilgFU>Z[57^so$:f,GKeu#`vP ({iD15MKY% ڱyIKpFj{]-mҿ Я<*Qkm;osb-Rx7`&^BK2o> Ys0x}U/7/Nh:-5.̓{)p=܇&{;ѫ[A=WZvo[(y@G#JGqiҠep|7) A@~êύ Q/{? l::Gv{|]"{'ZN'>S;/^ o_O%ĺyyխ-q6_0o1M=n+hhYK}:>oΫ}U/7:!k6Zu%݅l3~r`>|7>%%˰k; pd'*iW|l`bew@;yMApoγ>/]s\ܽu+\|D:y4"Y4݉ecJ毨}:.|t,qLY~S/\>/]s莖;^@Ǚ7wڍp^ .#0a Fp{gtk.t}?^дIv<zfzu/m)~$@/>ZTp'֨Lԣ;՗TWE{v嘶1T df;qr?n\#uiߝhYk.t}?^/dӴ+huiEaI-UDR u\d 5PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP\63o?^\m+>C%_Ex·9|OC,Lux#D-k xT.Dl#D-hlN$S~TGS([q*<~T([q*<~T([q*<~T([q*<~T([q*<~T([q*<~T([q*<~T([q*<~T([q*<~T([q*<~T([q*<~T([q*<~T([q*<~T([q*<~T([q*<~T(eD)swqp?ONUf}T?77L7L7L7L7L7L7L7L7L7L7L7L7L7L7L2@p?QT{K@k6s~ҹ[k ?\Ŀ(*j(%E}xWv%+O/@}Zx,O iن`qAנxDo)hOS}ӯ&P%@4-FsF85^[m}f/oǖ(1)\f q\|Gu>'.:ݴEV(m*$_o+>Xf;{O֭{k-ojͦ|Ga=ܒ#r^JT4ޟ%]Zw>ZЯ<^nWa_jfIl&i 8oF`;Tץ|%pKth-ɵi-)c, gנM+[_ߙ>6u=o!Ȓٮ8`2k;LImu g UG ϵyR^M>偧Y-Iyrcc!Up+ԼIjw7ڍ"+$$PXPޛ jҷg𤰺dt9  S C\,B< M BO݈eS#D6z*"}?QFiC2Ҳ+7<5^*oב }_Ϧ(MvieıyRo]IU,h(((((((((ޙ_EIZS?gRVT@ }Zf[7ݜogk1xrEIϞxfнvc1ވ%tPzEٿXv]Ca}ks5UC2Bp}|>-ΰ_Ja1哴8특-WjZ~W|S%S$i CqSy_;{ܾvZl6ѾxKYw:Gim `?y: XcE/}f|= o{$[Y( ?Iǘpq8kq]ɿF:]W^^k2pF_.|KxCkO]Emyr=S2X Č"mAq&wi u]PԬm╖? |W[jWe.n<M8?Q'K~(ǿ<Ŝ1N_"!g'rd1 lcg4K}_BV>._-v*x` Ҿ-XwucKؘ <)I<(>|6յ)M 5ܾCHb688jKd񌻟cQ_/)m-loOkk,2ifq\\NQWGPG\-hzsJ)!ܶT{hO//QEQEQEQEQEQEQEQEJ ]׼?vC!B.7uΛ1+J}4'hYȽlw5|3J?-w>%T}u[[+A#"*x+Ok^7͋N*O'Nk@T|x2Ȯ3OitgT5jKВ" fhYtvvNwn\!XV&Σ|ƨZ;ĴT_ؓgQ`TbMAGPT_ؓgQ`TbMAGPT_ؓgQ`TbMAGPT_ؓgQ`TbMAGPT_ؓgQ`TbMAGPT_ؓgQ`TbMAGPT_ؓgQ`TbMAGPT_ؓgQ`TbMAGPT_ؓgQ`TbMAGPT_ؓgQ`TbMAGPT_ؓgQ`TbMAGPT_ؓgQ`TbMAGPT_ؓgQ`TbMAGPT_ؓgQ`U_Gy^o``Pޙ_EIZS?gRVT@ 4/i.F7ChQu\[_7E^DDlXao?D_G{DlXao?D_G{DlXao?D_G{DlXao?D_G{DlXao?D_G{DlXao?D_G{DlXao?D_G{DlXao?D_G{DlXao?D_G{DlXao?D_G{DlXao?D_G{DlXao?D_G{DlXaos4HhdR8 <8ž{9::: ZT{KY]">n?J]!>?J#CGnsQG(~(j(t Vf"j ǂ<<=4t7~舫ּ"^`?LS(/ε_DCX|G 3SK;DpU6WiWsj+re/M۱. …[ 9ak$> zE_C<`v:گ/f]rm6%2F6F ijUg!Et,r8cH#R67SjZKc1He Votk!ӼGuy&cjVvE+pd Qس4»~K\{w-:fе[lH#ioSUk ː;N֢i-2.Ub K0)b 3EݑԝuXc<5}隍5^KxȲHbBFHTozZt]RYA ĭ5,YSG_]?e ^ŭ3G=C啐_;<yǦ]F]q)NC3EMBzޣZ_ZYRvX呟y8*p܎goú4:[M|IqnonI婑#qB\? ^]?+z5_YxºZxZjh[?)m2sb:-X5mSNZsb& I!nnb1 WQhw:1𭾖&erC1\X BjDvـB-_>gPՎ)]&kxO5ԑ]4^ګJYK-&VzLQ_mf;xw; I a^'zn.m|AmԲ+H,,ua)]lv5O_8 إl# v/2{gʉh(k>9KbkKMJR(D% I2pw Zhu+U{{cHn`X0<)}~-.30>l=O^k7-yi,=FEIAF׷g/޿֑ot:qov2ij],B;ۣ&f8pq!Mev]TŔY!0V];Kʃx$I Dӭ-%n|:]IE(Sz^_}u4؝3V-dqDYgdI(,ރZZ|=K42/FF>(M)X㌯BO5WFxeiHힸwlR((((=?G]s/{\ޙ_EIZS?gRVT@ F[<(Q(ŤQ K0$y W]\,_?Xi{MDT!$+`vEkI7{Z4ɡTy-3'rg6|u8k߈W }4;u #I7E@udOQiZsao [nğ:+IAW5#V,Zɚ-l-6!'a'ʾ16vҼAj].W\f'XQB)۔g[J_ٹ=z-5ݪ"Xl dfFw885]wIPRRGՊ2e`A+xR ͷӮ!0*w+ЃK*]F3$r5àe`-*5]?렜yyK}9ẉ̪[G s|<ʥr9ẉ̪[G s|<ʥr9ẉ̪[G s|<ʥr9ẉ̪[G s|<ʥr9w̬_6"_?MWw_:T& &ƥvC!B(5u^R ] >?J_ >?J#CGnsQG(~(j(4'd3iO{?oÖs:o Zx2?L=:~/kCb\CK}xM3:&D|h&ofn26(woO`z+ZEyV]cRRꚷn-1,!`#aA8_ Bօޡiogyo=oo>Ь`Ѱp9-R}`mv;~g\$NjlnNq}ii E 9v.OvGm ;xƃAGT"eO 5 PKcvWAzxK I4+]U]d AI&OӖm~1ÉP$GsDۍ_coGQ^qjҴ/ ˦[5iwsq}ϸ :c[Ğ4φ?ÝKmCΞ[R# 2 6ޮQ^v"/'msҨ7ԖI'8wsncf8xڝ,t.dsJ}+;rG U[xjV}_E_y^^4$FS=t[mHg38J~ vNW j>dzv6,m OXb*3G޵4KߧgQ^cyf=igVpχ&۸U=W[ʳ2E3B_޿QEQEQEQEQEQEhq__>J.|C>?*Jk?P3xZeSks"YVA!~AixWE4 gO_/G-=\UiQU'݋=[?z?lJ=c7._*[?zҢi>9#ų ._*OH3lų *(Ò=[?z?lJ=c7._*[?zҢi>9#ų ._*OH3lų *(Ò=[?z?lJ=c7._*[?zҢi>9#ų ._*OH3lų *(Ò=[?z 2ú,Ae0I^L|q]eEc OFÒ+U(5u^Rڥ Z}\.?j??VG5|G 梀=×1ӎ?U~9On׋6:}N?* xNK@T|x2!4ڰMڄڦZxAu-NXؕ 4@V!W=Šoε_!6i^@Mׁ."jE" cX0 AYj>u}+ƓFrZ*"M7S߲|vȿyy8QƧijSy6mKc,p=H_yޡqd^4i5D&8'i.C1ڹw%Ex—_9~-0tzׁWoּS0GOiO{W?HRx2?L +o:!v[B~vW.$Nꖋw$1N]ɖ099ε_!jǫm koJP1ˀN` i$?kcBeӾ= K%1:  jiZ/t{}NM&KwrOg3C)f#jFXgj6{+99-.ٞJLbqz~l,:Mf֑["B[ @=;RZE/$KZV4>omV=/P.76c/| 6IM񶒺Rjqg2y1¸9Yrzb1kX_:mmz1u 6\GΠakB{KX y<aL(-( vMYZlmZg,>O iAaXB2EVPH=9"6v:QH3iܴz;M>YC KAAp5=+OdT%[p9@= :=J=2,d[tr)GJ7m꭭ͬO?"ҵe`4+Zk ii̝"܌d{z֏{9~_i Ե;m6ޥ?f.GX &#T-o,u kNݠ"(mUDŽi|Z{ E-v'$giw=嵿Sz(0((((((((sEkWG\ujRVTY}T?7(?y (?y Ԣ(((((((((((((ȱלJWyRCW_-]PjХ :}^\.?J#BG.kQGo(^(j( "}"X?^}Z Nx< "Woր7t*eEֿD4&ڌn#{QyA$u"C !Iy,2%7mi͚\NG(r$&#d3 Y%- =[IEՖy4M2kI&pf8 z=2 ]-͞knm.бuR7+ۧ.t?uj̑2rNܨ$ ; i9P- V.Sp:;O` $myͯkz o4NJ6[lg>az㡨|AC-Ey,--i89l8uOZ:^qmwo.=B"F28j <|=^ɮDb-&E_*>|^EE'%~m;wTLn3Ÿ$o9韪K~|A\MtbKk]CPI; W!AOer- 4j1 '6y5 K%͝iv4-m6v{m'#*0U\[_k3|vySECV(j %>\蚝:njL?ifLmФ*k^ѿW_((((((((sEkWG\ujRVTY}T?7(?y (?y Ԣ(((((((((((((ȱלJWyRCW_-]PjХ :.?Jn?!q_WW5|J?)uZ>#BG.kQ@v.:;Ic7^}Z J zOWD-hv??ʙOOP^kDCPCHcT_YkFaf-K#*2:*oε_DCX|G 3SK;DpUm7KӬBQi>n`c*&XI#-h mmGv$ ؒqԒI'5c "UQQswfu`i,pHʀpHHXec }t}8#_ٷՍ7|H4=GHtj&Kآ% `:7˞A#A]i_z+׼ok]Ěf&sfԮs1 9r2A-jz[Mu5c ɸXdr2-AuWVqi/5Xc@|FOȌ?)|UuYtRM:}ݤqV]wpBል\FG TZ/UgҴhm(ñ2P(˳1P<h^-KF]>Gմ7qݤNĤ(aE$!a4\M֙RY6Fp)$/RC|Ê__v1zi"s̤g(Av>_ztW5x-3VrڛĊ#>ӗT3'f}/Z;k3O-cȑF1M ]?=ޱ4KMV)ⶺ_2!02v<0b3FQEhq__>J.|C>?*Jk?P3xZecG8EcG8@QEQEQEQEQEQEQEQEQEQEQEQEQE5@5Y~*cX9BPjХJ ]׼?vKSҹkĵ?\@^H}86-qw [G56ڟ pmP3@ݕk(_ַo[]]:-kRÞb]'5}i @RyB`眍= ^ui|=qjs"M$i "}JƄ.S#8-C @1rrί74KVZ,2?ۗ6HlH yI|9cZJRoI+ٺytXxrBN~Mܱ#ŎF1 Z:>,Fo[Yx%Jvzg|%hMޙ_EIZS?2 ȱל? ȱל? J( ( ( ( ( ( ( ( ( ( ( ( ( WyԬȱלU(5u^Rڥ Z^'}^\⚏@;F ]֢PQaKPо~舫<"^`,Q}MW ?K@x2?L=:~/kEvD.tQՏ⼮>$յRn:)˹2!ݱFA`'"} z& Odu;MO_a,k7Wl3Qjv>-7kﴶ2GԊo N\.m. ,j2:nA>-h=;4[;-=1dbq'x$Pz6_Ցy=6Y]&I.$ &ok,#\CX + 7O[UK4;FmMkM;rD%p&BVMƾ8m/5/&_ "nۿi0%pI$7 +gYv7wE$w-XeHDNX2RvB\ǠZLl kQ r@29dVxi;g7Ù r7C\xSˠhZcqKȐS"#Q /K~Z%Ԗ:r_sN#9֣}c}6z^Hxkob/o"-nHJlg?1$go4EQEQEQEW9ǵ~]+sEkP?+@oC>?*JhxWExWEjQEQEQEQEQEQEQEQEQEQEQEQEQEV_X?o֥eEc C!B(5u^R]G??Jj??j7/RF|F ]֢=ÖxaO?* x'Nk^5b/qӇU9Gnx2?L=:~/_O6\}4oOq(9C4W.;傒p0z_ε_!6w ՊSilWvsirZ]=R0,=iMYuͽ"DA@1zvJ(дkkыar>u SWbZv6Vŧ[LK#7ժ(6pLAioGHeztOxj^?h w^UIꯅ9(:56g I dQT|wncbB.ɑf@~z0G" 6v&@I O]$&O3Z>O66HVu ^y,Jq+9xsN=&WXE&m﹎]e,ܜ=V]6 8V!U 0U( W/簽Ѵۋڣd$HI9j{ML;=:;%eXT(=(;[{+d+{tآ@985VDo-`,gG-20 # @U (*zv6Ek$*= Zq=PDϷ͑Phzjj(((((sEkWG\ujRVTY}T?7(?y (?y Ԣ(((((((((((((ȱלJWyRCW_-]PjХ ڀM+ff?j7/RF|G ]梀=Cwbӏ@ӭRדjD"Z?zZx2?L=:~/kkfEPEPEPEPEPEPEPEPEPEPEPEPEP\u䮎=?G@?Lֳ?+@oQ_4@Q_4@EPEPEPEPEPEPEPEPEPEPEPEPEPY~*cX9Z5@4  ZT{K@kƯ??jZ+>p%E—_9hКA'1bӿDUÿK^Mek 7"*x+Ok@T|x2"|_"٬oε_!Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@s/{\:4_˯%;P3xZ?LրGXQGXPQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@eEc jV_X?oЀ*?x)jRCW_-]ˏҹkƯ??j??RG5|G ]梀=4_ wx#N? k+2?N?* xNK@T|x2"|_"٬oε_!Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@s/{\:4_˯%;P3xZ?LրGXQGXPQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@eEc jV_X?oЀ*?x)jRCW_-]ˏҹkƯ??j??RG5|G ]梀=r zOWxx-k4q7GoiO{7m:t*e>??ʙ@wW}wp QhGV6}AjZ(/ P?6}AjZ(/ P?6}AjZ(/ P?6}AjZ(/ P?6}AjZ(/ P?6}AjZ(/ P?6}AjZ(/ P?6}AjZ(/ P?6}AjZ(/ P?6}AjZ(/ P?6}AjZ(/ P?6}AjZ(/ P?6}AjZ(/ P?6}AjZ(/ Pگfxyv1y]pHjKP3xZ?LրGXQGXPQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@eEc jV_X?oЀ*?x)jRCW_-]ۏҹkƯ?j??RG5|G ]梀=ցğ{F<[赯)?e ?DE^赠 t*e>??ʙ@9VPٳmt = +fh`͟3K|$$.6:լtSm-$K-15,ؑ_ TrG[x3CׯTgmT(Y$u7 R*;~Pkۋ9|ג)#8^Hv\!ay+:Q-_ jݿW׵PV В Jm X?3߷&D?&,𥮩Zm&KPkcPC݋6(dk9|<)y2B$f7(8@Iut+.LP\H%ŻnT(1;I@7mo&߈gt $sJs畖u1iBvݸnֵojk+.w$Wp^b/ٚsgkǘBrF|7f$G#hZξk` y0IlNvuhV)#8Hʔv\#0ڼU-ֿ%K~9񆶚.M8xNAu"7y'SԞ^jȐE4wi]ibqpp8! sfq~lp$Ms() 9>ct!V.nofڋ*Td-v~SWk[jVlFc'E8T.ny^kwVP /淕3"9|O<.CC?,ٯK#y)?naI< im XG,\8[2HOV$㧥km kSK.莒)64VbAVe {DҮFci\'$+NÒ'An&yI6*3b2*k ڿ\-̞MG1C2FB?ADtK]c'{[u}KcUoɂ@ Q\5\xš\Z6}>oo-e B2Bdɸ9P4M2ʎYqd䞬IOJ?9(-8mpqHd cR~ >$l? e]Q .K,e0J{dzVisi|h0zdR q9wmr@mOA}c]-͡("v c*3W/"Z?g[ycm I+88)V?Kevp78;Y][YXia#nm2 < oM\1sśdvWs_M4QE .\6F0'fLW6 v<]Gº...m28Qd*Ha< }'omWOӵK YpPgr0%*Ac\HmX HǤ4+CI.5? t {A5Yd3J\ڠ@*]kzFaᐂ['We7tyk*[%{ dh#6ry#To~M].{[ϸY%H!Fb~P9cӊ~mfjN{im&+oFcU$H9ZWz6ʺid3c8zsDQHaEP-C>?*Jk?P3xZecG8EgiSj]l$<)8ݵ@<:PKEbhThTEbhThTEbhThTEbhThTEbhThTEbhThTEbhThTEbhThTEbhThTEbhThTEbhThTEbhThTEbhThTY~*cX9PhUWUW,a!xFqs֘5J ]׼?vC!Bk/N/n?JgN/J>#~(j)\?RG5O/ pDU^/@}Z N O?`DUzZx241G _:w?:w?]d+d+v>Q>P*N@OGN@O@h_:w?:w?]d+d+v>Q>P*N@OGN@O@h_:w?:w?]d+d+v>Q>P*N@OGN@O@h_:w?:w?]d+d+v>Q>Pڥ Z?tߕ w٭v7yh8M^!+SR\\@8|G?pQa[S#~(j(t&Igoش{GoP#[xag ZQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@}^^j@hPF aQTގ?Z֏Ѩ;?2aQ؞Y~) h~5QJlGn*ݕƕݑ{ v?es+umRWݍ2i #70K"Wkmn9'"5;.g,gk&#"CS$?{㚶IgmcGW?r;?27Xb5UM7xQR%'6 9u>/(ӭBZ]͙1'oi E^Axxzi)hr(((((((((((((((((((((((((((CE?E-\jx: b8-8{(/l&/ŷ mEt][Kor$DnC) { _ ߋo3Gfq?#iܺ[A%Zkwk4\Xq,Av;w&B`<—/ŷ-2֚kP5K f1YݘqyYPHp79>si[gS Əj['tR^[?4-Vhjf)/{~-VjׇnuOQ4R^[񚽥ȩ$I,Yegbp` ^?pڮ?J` >?J#CGnsQG(~(j(/ :}?`DU/@}Z]It:E r 靛{0[QF#PEP:\=TWRx&~igwh*+.5QgwjxP_PWKj'[Pu@{u-gyǩ_{|CWzA_(MN2֭w_<ﯿeyǨ> ? ?} E|kv3ٯgyǩ[_PдWϧ\~믿gyǨ*+:M};=I ygyǨz+C3ԫj$No}+=@=gyǨj+Tk-H2Ukyeyǩ%:O}+=@CQ_9j[eyǫ[O.Wv=ڊ佔g̟wv=v#s'`Q^7ٿ PԵ[c%./ i 试5B]_c?G}c~k}\_#o o}[?Gb}c~k{X9{T}qE| ?w5o o=>GXOMG4W}[?H|q o͇GTWg:k_}K?GaQ޵?w4o~i{l=>=>=~s~i}l=>â:>??~?w4{6cQ_?~X{T}E|q ]_OX:{T}E|p> {K?O_g^i{l=>Ģ@_kG^k}Z?}[?GaQyq_wW5yN@%#?Lϝi%݊,Yى'I$Ij\ο·_9i7z5=^^( n7SDX3E"Z^蒾xٱBAekoxwTQBQxwTNj?ha/EѮo*Ѯ_*(8g  %>8g  %⨢N- &⨢3ϋwuMT{TQTH{TsuMQE{TsuMQE{TsuMQE{TsuMQE{TsuMQE{Ts5MQEwTs5MQEwTs5MQEwTs5MQEwTs5MQEwTs5MQEwTs5MQEwT>-]UP9nha7[k:Cމyp*G 18>QI'*C?././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/figures/import.png0000644000000000000000000011427514023111777020063 0ustar00rootrootPNG  IHDR sRGBgAMA a pHYsodRIDATx^Y]řyoЫW?S.o߻^&0DVa䡪,#\U` @ !) T'v2g#;"G/_Vvaz뭷<h2_t!Ot9uvvRkk+~A477;;]P%̾~\/N$-sJy}1?GR +WT;A\SӾߕ0`K= 6Rm36ftTv٧(>J)w}.}yn]2޳"!B. m;FcfSS$M&o'&ȶq*1Qݶ1y$->I4_7GF .#Թ,'LEjr ߧܯ^R&][.,א}t7 $)~>pt@*h3,RmY+c֐uT9:It\egWD[>vAC,u]D.S6U]f꛳:og6ƀmA\dx0}\fwc!I瘪vFAi缶@\Lu,ƚ"gCl q{_[5cɉ<ϴ 9Ҧa%A3SM1KjU4e9)sikR:l.S|?b:Og6˕Z7M>>ƥLIָmS yXe`io-MqY0s7ǰaCݶAm "cX?nA>\SҢ*8rϒ?o;\_z߶ e%p7ޮg:2.6B{Y&].f{E?2>^6;xA6Ţ: {~ EAo\@֌^\~p3u[.}rq66-6ie4Φٹtu@6Y5?ٖyC0g xq w3LȻǐw>XH$^gEXbt5S%^]WG+qs*1</;N_0Swu¶Em5䇇I;?ɴ;^ %/ionh5NQ05Lѹi:O^h߃чޫl߃_g/;3tqd/Q uNͰv9n_]ޙ9Ꙗςwmvc>~mAwV|ri{=bjX9x (;hZ3>i{z g0`^܌${`W*Ћ:fW] G ;a6Ue VB^!HQ5z VmEmK< "tA^xw4_/IЩKW؋ds a ]R!gr;:cy~W&f$T{3L\c /#a]rvYl,ol]WU~q#WgaEl߱pOPz= }Lބś})/тZҷ8eaԛ/ٓ7Ƨv̄=Z b&蝀 _@<RW{ t~l>>I'onn cCty{tyd voooy|z>[ξ9AggoZZ{kgi3~;S3E }tq`. :_}<}ڇ Q[?ndiPN9GrŁ9&x9@_: =Wys "s|=?9Uva yi*ux޼`z Q)(@w Oƀ|x]+9:8?{6-3k-jHƄcEq>vdwȚ1ـ6Հ-@w{}reazzFâꁸC2.1IvkMn/'>5?Z.>u;w}ӉKctóQ:lm?m`9D__VKgOc 5F_r_Jy|!Ji 巍oQQj޳J.{W[ [kϤ(г{ > +w~Ȁ8gh| >oH_~F]':0tǮR$C^xge8*j>g54`/ۢ A/^6peO3rR)k?Lȇބ҆I"V!0!/47q7&ճyM ̛}ayHt򡀗Ȳ ϯ:{G㝴{7}ȟNtޢ {?5?.>t|ߠ:OG[Ѷ=t=/ӿ;gA^'ԋW'zCbPeo{!i+u/jrY{:WCkϞ=ߣ߼*_>N4sksu}3rDoS#{ }r28}AŠCg/3ߦ5)g3\(odoC߰3Zy Sp; >O`?ʝnO:{L=3;<ŃVCD1`>Gԯޑ{h_4Q{2Q/%bzr- $7ia7RգPvAE$d6Tٰ.'ozD,2q jA>!'/~? y̝~tӺҏJ۷oWK}@_ '[?uE]WnO{7K=GNғ]_z?+/_p a%=g Nq;k?py8d~}џUh ?N9]SLyx]goN) ˣs=ෟU ׿* !{yݕy_L}n[`ɫ xۓ7g{&صGwtِ.㑀kn(GNe@Dc!H/>'x1.*T/:ޚP޼yH[?|?tHa" 迸5@0}ʣ]FӏSq#5=?WB?я{sZyS{G7҅6Z~΀0vCSgl'×vw 3u+]~;Atvx>G~cAtWx<(O^ /vREye~.=w*@~k}v(z~#Av>VQ=|џ} c UT@J|P$U_ksrM=MKn<^[Ҳ_بzۣLڜzhKl/QduJ璾W[$G:7:Zylܻ2\/{/q#5o%6t?kzs9}zJ[ w'w{ |y{޻>)^8}goO~A?_#=tGx"}tm^ctcNwNЙI:as|f6mr2M'IJ&f﹙|#[&x$ϧ^^F=x$}7:-`/{zoUA>9?=˯wyed ѯT0{\݅sYL\ar&1^Av-BE@95 y5o=a_۵Ks1Lga~Ebر>=~\ܷ&3ٝx6;Ѯ=z5L9tvzv>Nqzʋ^wI~a“ 1h]K.;OdnҴ~_1{:Wg} / shݛx'275 OD]c9?ǝfp޷k2?;@Xg6f땙uj0< P.|9 7\@z|R68'6mMOB%{Le7emؚai؛]S٪쬙l^]4[Was_ޗ'YFh_aysp^XQӛ)(zs.Ksv3ܣyۿڿ(c ۰9.F=zc҂4,, lCY 7,l.{5gYyыf [e.fQ?n,NxA{6oqX^FKNs~L>4i粗yZ3l1Is`9oZMn\7upp>=ll;F=vtf{)tE.L=,@˦OsW>lUy&sCiḿ^n΀>=_: IĝmwL}+ s Gļn.B#efwhyy]W 1A)g/LgjNf6ajr5T\g$" 6]`z y{tΫөTS_g?J!{2+Bp# C,?5dU3^i,ŵs[mGi 4F0mm ! 2C689\SM,{||G ڀS|ד z 7z`c<ә% (Gy{ a杗$T “Z zyX Ȼ/ے@>WK;ʋxWA.yuE# e^n{6|\ 0$NO4>IAWޮ]pkώGROԮ PpRhoެcv>LȻ "-E< { ^aw]Wq@f*l|>]'JoKG~/U>x=resÐY@;ڮa۩;OӖ9FUީ\ܢm IyQyu*lD5% 3_qkx7Ð4 @@irTuԣ{aIr0 C@4 @a'䔕p|l*K%+첁VdkQĸU+Q}F5X싗xz/-kUz_Zu'uNGghm^<0A __ I:>ط4KZ]܆TZ$]IMzL{0eI%JKʽv';Okhd /twPcs}軎ϸ)(c/^z _]M]ޱz%z=No l[oskD`Ds'"pNcx]b[nPIҕdU\Fzq&%zUvIK´ ? RpwG9ߒӘϸߓ'(&}Sg(t:gno| +(<<M[Wpm]Q8>9΄y^£娫" H#fzVV}oCK;wx ]Uw],kuFju~y^ch_7w~uW}BӤ(]fޙ ^[ ܳ_&-/`gم_B-X yѸp\Ag!yЅu=~;F@VTZU[e*}I2t#w4`Ic֗6up01At"u.~Fh54g[QjYHf婷ٹS.5 Iw؋WOa л@.p<{32`=gVH s}odUq=6 IމJ|}_j563:N`:O{\aۭϷHnBe?t"ƘhtŸxf^ 4,]4:vqeiJڳ`;O-۝Ұ1)muP>rFWsŔZu9v!pAY-a]<7Bkk`?qy}枇Ry➗]-zv|И9=x'{א1}Pv 4i_w2lwKg%}(W{P`""#v^t}%~sΡ~uhzD} ׵h@Kq&7#%{bO/諑Vaxc,WK;:#~Yw]=r{C@8}_%IARo(#:0 nu~jm*w`S4? ⮧c{ataݡqu bԏUrGwh s~9#9QZJ;K'4R?* bkr/Mt$Rҽ/ {JWPׯ54PkҀ * ?SYyAaq>`/|`-HE_h1CQ!/N]-Ј:Bzö ;#G6| K.z4ӛ"Dvn }$@:¶:/kP]%S)L z>̟b>ƞ(Omw1m͔$+:%*AKuH;_W#jV]#!H\0Qd9e&Dv"K]LFB?4l'^gc VR@ &+? )fk5C/Fr 9 I u^Ee$/ǐ`9m7H=C04 @k@h{{w2 we w):|žG^!hѳ}2&lϭf w4~7W^S)4 @n hMݴF4hh6126ǧ}- @4PI l/~MfZ :T=XI!\4 @Հ~nOG/MСi됲+CSt׽c/kKxEz`i /-:=iY~e_N}nIԀ65]-Is?}|'鎯{/q_~z<DI͠6#fJKciC~6Е:|:&HoG&tS2|d1O nj&5oZHWi:>X}dv'fR^5dbCl I|N?99Immmm~ 该iNt ~;F[YOv-xkCx8F#z^>A}4S,kOC7 *]εMu-p]u-%{u1IW%~=~Ph\UϋbkTF,7 {5kr k_+m-=LԀ?ˀ/~>&3s}jlfn=:~U޶ZڼG>o9n6jџ-h@Uy!YzL_J'ٷ"zrӥR4iGJK/syҚv˸V,t(MhնU׍7qߋZ ,K3K QefQ5okkyޫj߼njS3n$Ljˢ8,}3:|ss3մW~:Jfow-q7_K+qh)fR^&cz]|ynӾϗgֶD\vt>r3 +ϮMPn3{}W^s ]i}Jڴ~.m?vqzrV:)^j\u9Ѝ\XOuy >}s~қKk4 ? 걪0=.m14IfGYȎt3&4ZJ7ߜoS]ړ6;_ ZJbzjrڃ;8vԀfkJ7;gk$_ަf^j$ 5u^W^2:σN:֗'oMO.mtQSy#f= kR͔ xÃرc:ARA}mt-GRDKt>'{3T_ޮf;rN@_tt=xhuE :Hˍ4 ?gB x3\_N3E7CԈmnHcu{YG}TyngHfS'v@iV3f$N OG>i34 @Rj@^5;oCxR6 @@wY`3LmQqPqhڋ~a>p7M3&MkY҈ :T?0a{&ߧyuxY/IgfU):L/3 y7?|8ؕD:E.Û]ОwWFi+XJD[W(װV֦2uR[ \k)3eiMUVۥ?11ANх1lݻ~sYBL[-pȩ=qNm ဗFkLQM۰E\i+y2մuE pN ~4v~`Y2Pf^ /[fMT|=lu^_{KzJ]']qfބߴ\/љye}prAtT3m9Om.Q{G'}'р7A5U6lidV1 /6AGZNG\aegtdRg[EL<먇l[k[8^q<@^c!+y:9MG؍;i@M3t9:yEy;rWuwwӡÇ^aCAZ^VQQ IF S{ xN|N1}=a&_YP;H4{Qm5Q;]+vvֽc뗩-N @~~Ot~;ZT?= gF/.g/ZFfô"kIO|)QjA%i)3jWm 8< ܋UwR,5]G5]9 u z[[/K 400"KA^3l{>"Mmop 3ZJ4>">^-Ow\\ެ3]6tULX ΁|7# a!4DF)pICuF~zm}9:Kdqt [z  yF q(5C&Y߹g w^L444D/ .M;cCCqY_#Σ xrֳܢ0\C˶mzb+DaNW CѨ`2,D ݙ JT&=XEuG-zҙ v]ȃrlpc?-<χ؋GpDN7a@Nq~ 䱙OF(ǛyW߅O j',Dfã?66oF8y5N[;Oi7¯ݻ>Ct)jiig>~M#`^=cs pvhX.W3<]n+L}k[V=$]Y=٣C gmo5'nzx&;^'LvE|B߃wA8.mvD ɀszҀF{ H?/_̀ii4YSb.zdz|]lwdWrַiJyK x~z4L=RgS&5a?hZ.'/ƫd5y 4YMn^vXBhԡhV4 яp^ۨxVt@4 Ӏ0޴ixxP@4 dTeb2Mmk-wh ' xd<~i~ol[gfg[+ hZF 6axۆLc=Y-a4 @i@=!u ym>kr+rɕ.hЀ0 0)L{'<C@ 4 EMv1 D76| O[@vcяcyH/Roi7޻k޻^4,5q|yRԛRB Mn{,Q'şc MSU3xB[޷Wy19Plג[T>J ɹ4(xAfz\xyn_G_(E|Ks(xf[v3~hcײV宥/Xչywyn}|9)i[h۪[_r%ay&񶻩|]uӇi<*D_EMt|9w[ݣFG>(q@\-z\^5PP577SctگE=(u0`:Ӣ;"Do<0 ,mOqG !B^ '&&ٳtv&MK=R3 +~Qk5[M?6]s mzθ/94i?V>GuXI)ŃWSՎ {_6߽s^ S:M7ܶo‹EsWׇyYϫBD.Wwz4Ƅ~޴0xzlcaHh= {cD>4lƝE}|=Hg>;i#wTZ{wG54P*ǧܯddZMnXEw_=wޣSmk Z|?B,y< M+yS_\s*ԛR+Oߡ.l~u&%LK¨ &~cǎ@ H)كy};LxR={[ӯw~Bg/\vgM4  dCe{{ȑ#04@R_ޔ\xw}^qs"9z}i3vyV63xNÐ@Hƙ_޼zGgaw;Cobi}ᑡPNi5裏*OD04/RoֵXLvS tW95GyB&1nS M @hЀ}M~oyljmP$T(paɶŃ2<;4 @@Mj@=0c2d[^Y`6>yO N4 @bj@^֒&dt1+<C4 dXaE>=74 @|bbыg׆J]ߕ# @4 5`/FZZ-iA}u ؀אx衁j@n]kI|-7M[iŊTiJrRůh]?y}QjAYJ Ã/+<XrBy;5h1)Q 9 ZiLzvY:uZ.ޥ娙vۻZn ;qK%+{JڴuE O xu =$Gu:E.>vj-%j褏>G=X?99^u4*7 N[{p;h+S{^k^h;~ku^ц(G5.^'&n tIGᚡd֦|t?!a{87Ey^b ѓ_j]]M.rwiHA + -:Ei9s_r9_9/F^7!gV*2\=*a{Gnv*@o@Aw{<;gԣq;^^ԃ;{Ry^b.Fkh*z.^PP療e'O. 𮺦oSvY'ҞJm[~=v];vuYǿ-lzu"Re zR ?^CQv]#=BE+#jD=c=m j5gVt ș4HiܳW;/_^QZΗf ŰghX]Si2"Ov+i] oo0ZkDӌHw2s.ם2ZҐfnn·($!t;Bo5y=8RBa^ҁ~IPoހt\#뗥%/u4ut^ eԼ~gR{{ikqҀh:NiW ;Q_KwnK4 yDo ϒRq[?3*nl3D5=}Bֳ({QG_>|kG>eRg?*rxYS"F2n{/}̠U 8~%4me9|Aݨ:e /a|MxV.·͊d\ͤ"-XZ;κnuHGkOMM:Sqt\Zʭ@kWZ| vLNtSnF}C}+C&MedjF 06aMhQsOItheX"_45`^bC4 dX| o98qOh4১Gh`h 2]cc#䟅mr0zZi!4 @Ԁ xӋAﭒB@4- ؀אxDgh2…[ h *!q^xx%_ ҅e+,ByAfGG]udEDY4уmbddD($W| ($4XQ@4P뀟!I6x%VDCr5x[( *0k?C}~ 7!E_*`4 n:H/"Ƈb^ /ظ#DJe @Ѐ ^7xC}ᇴw^yDVJ9Ȯ>~7i Gg;{#qMu ]tpc3ߣ%pQNIΫ@[{tj#nhOhfxߒ+wb5QMྡྷP)P$-vϸw`|3P/(BTD|<P7伜}`G'LfW%LCE_HǡAy6n|kLuZdCBxa­= '.G7t pw:|}\[t6+ݾCc87tӻ{J>|~j^=sN}>u#S p:eK4m_ (II%6AO4r^G aoosWto3B:;v{`cQ^U~ر:G]3B!Rsr7;\f~I{\:%|d޸1Yb8Mp*o)(Q4 3t@E@t^g/d5O{.;0YY`2Y˓ "tvv]w\+[yg>A>u|B8c޻ Ny !Ut }2^BWp%uu x; K+ $}h:[y۵υ O:ccF4/jaH,6޻c cݓW1Hjv,x=J^{{\͆裼X &geF&;|\4m0={WaС6_O{gր(<3x#;]:Bڮ6Gh=.Uq<"25wAv+K;f),k:ڋkWjp&dWˀ7!v2z0M׃+AsZ-s0? [W##A!༞WT,C&41;_adpLFkV9{dc"]|(jz. <տY#lfGo^_> >*T|RX?}>G"ThX߯kW5uu\BKE\yίeeW>.rYʯem-c(upO56&Mt ŠZ~:^Ґ;"D_}&zXh9I9X*w9_a]q9D2u}ш&, [<~ M< q.X6uemOMNBr^<h5yK Ӌ^q4 dr& Clk Kסz?D/a)^<QvCA@8Tqz>.QXFwF/'Ux`?99eWc56baRJz} Xsrr)z'0oMiԵC㋧a.Uʰt2Jw5v_|h*󀟘 |6p)÷<\rQ[#3|.5{l~˱?653l4– nv(gE`a)FeM쮧%–6kXW Ku,ކ|MÃ_ޞKH/P<7ޡِe*4y2mn̶W˔ֆq@~z RSHC%d̂+:/6i;1Qilu2@_c|$xŁӎ^ء"x+Fu u]pNR<~^ey^,St5թhPl AڥZoB^G!zTJTf,S UBG;_C׍Z/^`n^x|Cx4uB7xqx^{<Fdq7M dz8?-jJ]r@V9^Sn  8hw ,kOG+5)_δYgN++51~e^ ޞN3M<]Ĥ8Y{Åw]XZyCaw~9;jc1.̼+kn?IΟ'o+qu˽۳7f/ˬ@üf)֪k|YfkuyCQTFk$vhڭ:&9eNK| K{{&1'15Ee"k|] lV`V:c)hOu 쨀ea6<<4 ӝa"x׈ZOL0E+{r\?Qi ?y¼_2^} n./k0 D# q~ {[ &Y@\O@Pjz~Ps`!yö;NOr`!I>V +C#&?} Q]7#3k|@s'd=_^Q{#j67=m.ZܠdKw6:v t|yk0¬7,kǥ=}C47:Va#1&X>N̽oQpw%r9L?xA!=MlCY;!z@\-+A>bٚy0|U5p r`dvH:tjuyaH=2O9%|X/0,-\mpA5hyG< tk`Y݄K;syg]zI3ډdփ?ɀak<S2]0Z.Ö59e-Pv #]Y}5W8 OG1 /uC&s ˓|{:Q,&g ,AX9q93.׉-P{|M44p=ehCCy](;cID}e1+7|~PL1k mY$k\x'9>?̀oa7{&߇rmdq_5Հ$ɦZ3՜63 [j:3JG6ݻKHj&cAe22 4m>j:J]<j58/ dC5R4w=CwR{o#/_Z|j4! V,௿.`>|:N;\bk ogWDW+r?z@fUwR{yzcmi>0뀷Y1|K'v4 l{HԠ(3 ~v~Ay tk=r_r үY|HKA+e2 ܺ:'m~Kb8GРT ޢu,UD|ƺ :p =@q,o оs0}pz>΁ij|E59mڏgֲ0gZ3ٯu͙B,wf'O L &ӳϞ->?>?O5{{ǟB|\ehh@fF×GPg=:M__W Բz HtԵ>1oj, ?O6Fzޖ? ]Gc24Yɀ`w3Mg?W;|l7wxK#&o^^{x\,~l|F4eZ,6S+krT{b d w1{Fxex f:_'@yxt4P_xDhqGy:ià qqʎK<N4ƽw7<*;|h/ <<:jQ(oNwxhh4DhqGy:ià q<'&&H D<*;|h/ uUѐh G ԗ u *6r74 uhh4y;oxF ,ᄏffgin mڼϕA×ٮu3xTn44P,ZuM N` ]dĀe? ]Ѱh ꟢4xnZ'h <*7xho d+朗G,3hQ@i e-M `W!z~=^CCV e k _{;Ý<+?nD @h/ dw{S"7*.__;Nz2 i' Lt#`b˿2FCЀ^/4#͘ɮhK$hZ^*6r74 , 5c=64l4 AW\ ljddFGGJ}aadDs:DGWj*QhjW<փOG%JA@ЀK #D=;4v4 d=D?7hܡh0{ xg+5C @̆^+̩n4ÃG#V_ 5YjgS415CQC4?pcG#D 4 ԗP7+3__ 9|^^ >ʎKgyOzgxF17Xnʏ7>ŐW簚\qaÃG#FK;<ރGV_  k &k<*;|h,jrpxTl44 ,v>Ye3d @EOW˥r>P@}kz&AQ  dGEJe @@f&1= ۴y3R+2Ds@G@v4Ynd&iecS464ٸ+!Je @@v/LXý۳+4=ƀ@T9#h .W3hsF.]dцx> **l~P92EӃᾍxg@!RP 4rnfhýи @u~[hy=x<fK^)Ѐ h`9h _C 1e ͘ rhp14\] я1'$Lxxh7+4|5P.,2okd)0}m\ Ã/,<[@lhZF<|~Հ q|/}mMy<4 @Tc2M?ʀdw M3xp<< h/ *{aϙ! !yz>hǀ C՘Q@PY|׀??P7!? ;;7@=x5NF|"'CࡁjP(oh |3<?΀{X&\hs Ԫ/Q(z=>π?Ǧ|?}mD7ѣC @Ze:y Nj׮>.y=4~>€e;!z4v4P_e(zN?~WM1 &D7 \au瞣;w}Kp=,?#+K͉ɶu<_7hЀS}z\`%dA ]!噛&o^>2nlll٭e2IJ#&kn<³4PЀp'1/CD'o!s ;x/4PЀ.޺diޣGV  |Ǖ..3d@hDh] h]B!hjҝ^!"4 @P2,JqtQ jA<;4 @2 zH<hV<;4 @2 5#4P xܡheXsD@4xܡheX5/mZ @4 5 U^}׋ʦքz˰BBi @@,d1̧3llszhjVo`O3GcllSM7Us @4U 6ü6&mxtp{hI ~՝42@{'mM|MjV{H7<%h*XߴcmG]aO2xܡhjRk7@'Ύ3yx_d\0y @Y@,௿u-/1~jӷ;z4 @5Ā?΀?ͣZ9LtftShr 5R&j$ty\A@KhJj 7Av3 ʡHzyen #< @4P&7ʯIX^Fx;{5[\(hȦb'$7<Ύx0v#FC4 ԤbƘVΏռ6=:Qn4 ԇb/ȴ2\lsׇHhȞb/Ŋjr+lTP4 @Ā_?BAh [ݍt{3~]Nmڄb!l z@<5fxy~7~#|Fli hM˱!hH K#44 y i^ Ջqzi@_OŁyy !4D/ Z<;(X(^kp!z4֘"=di@|ir9)k=_ IMGˀ+k5 )40;4 (cvW~{[%s6ʰ1>ﲿVvZ`Z\>=(w UzU"9$?$_~rr*k~zu^лm-W<߹Yj}9k?GmW*!1<^OjG;whPNС twkK\qյg; < gQ{|IL{\տ߹UeR޻|ҥ~c${WHC3 tv#mkr64h`5iy:Rwh+stsZq}E[רDsH~|ss3UֶqZڼqy֟wn%m"6{ߊ8U5RBt?vN,<1]y<5 fӁmt\kkM;\qe:Y*C?ϧg&;|6x>V9{OU"9$?$_ztيۮM(8?cMt5hg3_[:˿ܴK.t5iWpj>KUBru'va\+#Dx^ G-tLsyk3V~Wғ5M9{`N}.FZ9n]^sJ~Hӧs@4޹v5J )sƝ9K+Ye+tuصI =n׀m'Sl;6q`Mp=ɗ'O¬<|UwҕYm>fј.~c፤I0h@,e,ÜA^1͍ehjQ?0vY`?@xBE@4 $W34S~}JJ @4P(|-(҄h@4C0h4hDAvjG/zd'^{oV 1~&u1f[^Nַ;߰5>޿o oOϣe!!ox>r{;:ja|[רml_>enNKؼJ^m:96IÐ4 @^{I]ܤ /W a6y>?!bZ>^KwbzfǍHgmMIB>{&A޿;FR<]󭋿w|c<IWo**O_{XO99Qq iYlvvʱ*ǦfEߛΛy2իML*<7ur4U=:c캃mIT=뇵u]/JyNF2US vzaoН^]abdkxyv|2^FO/ԟYg+oSux"r-YF:fAs5s/Cs{S<d (˧wo/̠oaȷL\esmzַ֩Yjf"m96$611AIm||kQבt}I>HGBaB_W 9`6.KkxKyHHTW~Iv?W]շ-sul)RaK>>6}%۸j=W^yԂ3|vVf ī}}mt:x zȧl楣 Kd@.r-t(Թ<휸>(̤áw:qxv;ĸ'N1;1`k~?5sm >D#\Mțn@T%E^Oyh6"w!o^k^)O 4/Ȗco9{KqeynۡNMXRm[oH8z5x2ӝ@_[L:b˧.⹫Q'Ǚt"\&91Ɛgke0kg>ΟlS$^r5m/y-~-z;\U)y> Z&t _ 1Io{iok^ `FSX.L߷oΜ9CO?4\RA^3Ak.DcC_o\L u8^-d]\1fBw.ĤCaӤ#ic2F xeGkg>͟Q B=^@4T/l7CHuPqZO"^Nsoi0i% ջW*) ?3$a\kk+:uJA^{OjYYdfd?oo,7.3L#$1龥c…Q*9$Ɩ>}i%V-Wj]qTgPR嫫^Vۻwo~Pgg~?e\m}Y7 @4`j@>DV鶵>װ,EW>*}5Y㻬*S ]u\kL6zJmCl֮3X/e <7/&Kg+|/;ĺ%,{l=fW.+7b=;mU;XV8ޥM=}'6A c5:vc&ȬŒS0P!Ȭٳeck}ǮzY|uooPoo7-o{;{۪})6 qߠ1z ߅k)p?'#M''܂bY2ޡ2m.ٲml޺]6m.6mʺ eͺMzFYfZAVbZYN\Zb,]|^l,-]-K`2)Y -Z*ŋHŪd>UB-yTK-9E%2XfS"5*Ь\Η\Bsf̙'3fM=WϚ+Tsd92U5[f˔sd2>OgL{W͆f&Mj&)%4 gncXMwF<ٿCSSA2MO \?ۏ6)52l$ 4רSh&Lɪ&ɰai(eHZM4^˛Ng 5^p瑼ӡ2 ot)c(cqި K9I3=͚'=Mr jBF٘ggK KpE ʬE2 lhռKeI!B>]2W>^2O.CK qrNU$x:)N<)diݶJ 1` !`zGvM .m酰@/7fa)Ƌb@=#e$<"oLҀH /H!$"AGD+zCvof<``!^vCJ` M^Tr,j%E/z7ԫQ"x++Gc\x-\Lty/\Ț0:#Lx &ΠGx C0 /i=oioc}J] ~$N.4ſ oiFh0W7~oed¾|S/4.)f8fk?0|VTT00o@00A , TlPAäa;p!yXB| ұ_X U߄sX vj@{U+ls=ԡWឺrqQ  R'y`-F=A5*M>/)v72v3v46;6><K 33 B  e4Oyxtx@x@ULW,my h `XN`2̂fVTḂW*ZZ)%^XYhQB- Rm ^`f<0\.77fEl lUՀ&l5wv'k#?>"%'gi t:`\>,lA\-,ET _,2 ݠpc-._@7T3:td|} ]td\.@f"s/|M>?GK/k۰2HD0 C4Dv{ Uwߓᆵ:䠧X+܏!֓@BlJAH )C(F2QoHBB-t?7n-j6B_D*^Xhc!DP d| 02Q(:6ފID8F @ "FS6wo#?ȉ1aj8CkٰӍ> l)yBCu}7OE>œq+{6< Źނ-X7`0ygP``b\HVJOF94r4!A'v;,{[y0x< oD!1PAx (GB}KeQ^}f=Ū)>Q5G#q>F{[aT]AHծFe|Ou{[oU}TzZq}} i^iڻ4p-A5ƪPiĴ8hQ#NNtu6Fr3J7KwjIZ`Cyް>el< phQ\@up p7~]T tHAgfOӸٓq?Үm"?!{*{ArC*U[vY"IxQv೅azCP = e?@@AxA}'6Sq_1LX % x08,c e+I !47mm-tO]4~[…񶁇~ ŀ (yR\<_ ʼB `ez> S#t2IBbNWK< w h¸:xF(+H0o' ?`j!hAyxWW 8 =;ns8v[~^ 8fl3sQqm&{qc&?ov;ohD7ec;j4A 4FPpk PϡáaH 7bleznBݱު6Ȩ+;p<bAL!h=O^kO4=>R٪dPݎ]n:rv}ΨVPm;K-蹠t:sB>1qZynRUX׉{xsOyK/y Re+@+=JKB44R ƽJLS@L3 5ޗCGCc#@qޖ.`%wx:rt6z}}0@BW/¾~ 22hliDCaoV0OF222 e[Y%@&M"|.}{7rv94etcSG tvH9OM) ЧY M&/6)Hlp_SvfʰqyO'GЅU3SSF 8(rqF8aك ^ oI,W$!V_W b <,((:>8>rT>6ʿ/5p胷h<4oq \Q7 l Htb! PҥUg!l`|J|߹ ;aԱ@@x;ہPz:0 z-xQ?aQG!WAvN zjQ'[u_-˓V--ɟUmOVc6F͠mA5i-cwmߟp?5yZvP=ު<ulnE=.WjXjXjv.+;0ԡ-T.y|.yK~~ @U@@ BEMeiŀjHi PTB*jJ{X{{u3HW<]릚,=,=i ^/x{TT $H @GRS   1W@CM U(#g(|F-' e~r:>Όʗs#.-AG+#Ew:v+z26WF;e,?'Ύ-#1|9}aWd)?D=" ˰W "{wb?r<4 D:rq9v;BXwqݖBhQ(q5/l;BBb`)MJ%@n-MSn&+C\,VRɦs!&E'KѼ2T@t3@fCg rw F !쵡ɑ&! T.x14a|4}P$H2>^A  pA~Co}xT8oސᒇs{|FΫB"#HyTбHFIO{=q h #, :C1H0ѹ_O:ɗT|ic}J| O>Z => t(dV (B80j%66zqK_7j)VkBT [CA5h!mLՄfԿTͶcznF>CG[t?VԺ<޺<Py*W4iggeyRVR ^::.,]y!zRȫW 5"( &P)ikk HZ^!ettTw73 %\IWI7;Œ=(=(=Vnb)Acb׵cvdy0 It :2C>S'>Cz#(t!yPΟ!XeW#A KABQ@r)9yy 0 3IzЫ@x$ƒ0hWc>ol1b4Pa$@ƾP/4Шz  So=)4½}pr(LmoTTy{CO`=G`避2 pWυJ<=ƶHۀa mth 4PA 6s`ѷtBpvm^POi:nGa{|O5 ޏP^`r4"BsA^ 4 T.aE(| H0J!7V/7_MĨ1H~RXX~'c87P6j%mZ~@!<z(c߷(H$)gπ?PhU< 8ypl^N|O=xMO^D%*o 0yW9iw!`wMilp2BÃB< pBրs‰ =<'Tx;N:L:{pp0 t酼<HxMd @2 =%QHR b]g|X 5`Tk!fEe  <{R  j..xҧ3h,] on ,^%y^z퉷^l3 莐C7+!\u驋.nוp_@&xL^AHGI#xNF &Ma%L׭%>c`t"J&ׄ!!C(  HJk<%\\နHvFLQ?Fs BJT]7zQ%QуbB rX@B)xH1mh0!dJA@0]L )`$" B.$A96!:ۿG## & "x&x@R=kGw_?rkm_G:)dߦM GoȻjrɇBPXs%NPN9g<$ #'n# $`9#6L<(dIxސװ4JHZ/HR>Hrwmt.^R" բE 2cf!Au @d#"äx0xD#"eFd:c [,'0B@XDǠA x8"DiFo钗'ИvDؾGݥh@;bٱG/Ʊ3^BI7AD/IHdʞpU_Hm ϡ3;-؎ht;M_P|%uEO cbuG @vB#;gH;RCg;O;@wρe=}πzQ{#|`v(6P]UnEZt";wf."JKqpi٭(KcxCZAX N | 1^!@|{6{d $$ i¶˃9<+BWP (SBooJS=j/cB(^B$h)y^'#OC4`ȳ3!</ImxH tS@R0B#OKA%ByU5)P p!6 $c)SBub%1@ml'!aHvjKPde&#TNP=rЫaI(AJ@ ]'JI* xKL(ډOF~Wy z EC,؏ ~G9я gM^u> $l3IZVq p̳`yQ,i'ˡ>roG9E͕;XDjK #QD£عS_rȭ!7;?v,Aܒ>. 3ɻ+^20LbB G h( rzAΝ\sug)gΞWp!pˆj4w$2c4ګ0bk/W@$;F!10Lht[xBb2xC6rA;5v2첻 2 R LdA(YP8\,gGɬНjLL>c{pyB2|>@@Ƞ@#׃ G^ШR `8ڣlF6hH۠!m AC h4tFPn8>!'=$Vt9 ]UB7B7B莥U7$\b΀ 4aC"Mg\GnF|BRz<#V0><ԨeI@.1^<'<$_HF xG!ux~#KZD4%HU/IG%#6< y $Hv}!#H^PB A^ rKS |4 IsH nZ"I i#sKHJ[ %W!; T0b5!}%G>)GjzJƼߊn@Gq\pL#y؇^hϫO[ <+;Ԕ jɶek:Q]yT3ӄf̈D0eo_οsc{#/0$#r}ڃrnĔ=e ܐ Gxzr9{V ԅIZߛ?%1)FRxE4^^‘z^`>:9eˎhܡ BJw z:4:!qvCލ݉Dö59[bHګxzVV,ܿ, 0jٹn˲>ڤ];iܶ-%?L DhAV}N])ʽ)ʧ``` `L="^ ăH\(Uh% @">"*"BHH 2<Qx\?#F7H#0bAKR/ 6*#ȟy}7xG˓[gYxFF`kԅ͇'axG^DȆ0l>6C@N䒴 a$!1!];V@BkzۘdVJ  PfxI#VJL!(B(1`2Pb+`0LN# $CU^O~G[k,[c?GjTV<3Y_/=#k<-tdU;>ERF=Ƿs/6ɭ-֙w0Ͷ?'S-?EQH"?ప' !L1lC 9.`؍|&z{Ӱ'vrW3,"CMHM x^z$F A  P&,ùea4UрuVq@t [#re )B/2 h$Y` ` RL$Es",3ސɌiidIdzCF"Au֐ Os=\#OhTt @CC=6>,t4GcI5ш@ڊ@#txttcPBB'44Brega"g-<;##怄 .(-=gli`$p v Z+k $r6ñ`$&(4iڪyҲPTYBb&!@H#dUḍpn8:`]G#{{[S[Soc,A aw]vek-{a-4 $CI2x r?lF'$cIH #r,+ ȿga/T{6 #E">Hnn@z^ b`#F4Ty0[020p zԣwm#/FHG2rH $A&iŞ7 #ttDȆAψaۻ02`@_L"U%ad Oa 1&& NCbp摤LiL+zH| <#g"o|)RZ -OШDe-hw< 7y "l33 !|I瞕xV8fp='|m-X=?2\҇j@Lx#HP h)')GLA|W(??/V:rbc\: ڱCB3#r<' <1KB3 |/DŽu}gB :~g͸"f& xnPB4PCUjbkjЮ4@7gA1FHcGC*qC^hLMMT!rU&Zoȿy=^2h=" ")3 ŤWXϞoy#6DcaFHi-/D٤Vh0bFL2+=#0ȳgA`FH?@b`DsHX iܪF?2@¤֑!G6HaBkQa)Uc<#/#aW_i/p/xI(:D=%PC)ɯa=rK/$ $D P۰jFg$#Hn= A~D~l@JH < |ogB._R! IL{Л.cCM6ƇH O"?4#"=eץv#HXAL "^8I$FC1XڎZ H XO @(Xo:L Vb4qLf } LBϙqHVqDB`=k(!# -'d< dvQO9@Hr;zA z@h`F /Bi\ A[|g"H6UAI'x9:q$t>8EFHGI{odhH[!t҂>U3;n omk=8;B:RL>w@k iƺ)F h !"() p0y V4' 9!Fz|D[b +Wc ЫO5@XU^FoH`nI=aRAC/%MHM !L UT~HRK*/bMFH,rF#-<#G$6>t!0LCi0Mwiz(<'F`o#FHF<$ dć䎰MHL/zGl_#ul1ɬHt<F iA7_htp4&z| %*@-Pb<%`H)aP a !7#^HF;yEy#&T(;_!"m*05d?A!7a5<ڇP ? d\ |PSP<h7ah3<6~g{93K~ zDLR!ĀȇG @_#Ȧaᨦf t *QAW[&LDO9`"(d"A zD #oLGv HA ) IdtvBI!A$!B6"$δNpǁL*Ƽ2"ECcL`f㥰p 1CB AuB2# %'q2^.8)@$ AO\xC-@#B3!` ^X y~cI&RF9`lZBNi`/z׋Hbmb\,;+DҶhdVZC_s/$neKxBZ!9 - ^0&F߄v6VhZ /M]hܡB#<21bO0e@$?#a^#K-{g 9V1a3̢'9l>vx^mnfAxD <6!H $41c^OHd  ƭ7d-&b",7d !ʮ13c+)`"'3LylΜ2e @N dh䄌Qbಱ2q>D'zp !cÎPhTsEiI+I+IKv%UJؽv1>kSnܟAȇ J˜KvxA,`ss)mV;cp$$mQQZnA-1NCK~jݺGi7ʶys!C$fhy x`[^& s›A5g1`h jr YPlK5F5ⱱl(y{`B 0eU}K/Bo i/Ϸ(/ \"c^y,Au1]v!?B3$BBhh7 "q:1 CzC^:W TD0B%<$&D@$`QF/򯀮_y]{ #0ҰzGQ+yFw%* g1=#VzF<aވ#aDŽ: #UFLF$!rG,4dVo LDWߎ3:|<"[1I KY0zKkb<&1AzG$W7!ᨮv;fD#)`DGqFzդQM ^_"h1ϿRVCM6h7WԿ^hSH)ƙ3hGRWG26qކ߀v>mĵ}įd㿒Z=kYodH #ԓǯH{I rd$#;;! 3Ȭ'7DȜ-\L1ɪ zD4Y5D8!^,T86 g+No0 $B6Bcǵaep 3;]!FT`-.$vY2͙7Ifx!Ǣ 13 !LAFc1 lCs$^]q;r"]!!;#}F8hVv-ׂb7Q*ʥDRHl18耐 ]`wY#z<<|0o+8X7\;c]GB{*6[n q u+B֛%&w@4@:>@"?mq68G+xdZ#gAM1784p4R"f (P3w3W3< =؆j1Q \W|@2TPB QPT"| y" u"u6."u#u9ќNIBOƝ.;ސ!i!觱 pG\h&CI4PapL/PCp="^_DHͯ^inh3bj7Ċ 7ֈ&ZQg "+rF/0 |6zH5&wv}o{z ml~LVYQohyo "f Zw"}B`R&σhFzp,C'C>Q 9HD.D4oy"jfA$1ܻ}7FU1qR!pLO6]t!b\@ Dpu وzYJoδC0|̹0xLϓnGf*FNSL nj0#+õs9 ZG!s! l6ѹL8Í#Ž xਞЀh6Gjı* ~oƱD3   ҉]f !h 8JtED! ;a}cx[8z0@ߩ>A~fTPj q}+KK\W 6_1C-~8QHߍ ()IFhYO=p,6F95@☯F^>;^ P"!uL[RR zԺ<y5| &eQT e3JjtTB判ϘAȂ8HpDH\~{ z^H@ iEB B MyD"fDo1XK拘ϢɫOx"0LIH0@hW_(4B$Fhm ikcoa- Lc1tH(;_sD ؜:pLDBNGψ1`bf IC5HIFB5YX#.c]v.^٨|Ykol6c\N&OO6{Bu:Jͱ.C(e;iw3\zӧeWelX'1F5emC9Y׬;M~"aGdk!xp%@d@ @wD>|xDx-y+"Z}7npP39uz97)u^Ӂ^3]58;e@QUK@MWL/uϵ p 'fFYh!n9 d dB6xB̢;$vn*n|5I1HJƨ: .B1Pt{qr6 pvWNf)c@W6)U oEACtR|'xإ"o[o<P  8ta[:{CchuBߝ#", "T-T i*lkV jM)׷D 0Dj.Uc@e4E%Iיm-B P^D^A(> %ȋXy0<`.Q뢻rHHmH-& Y UgzA8V'ԙ~QT\1ބsPL.DBIL]xr;Yf,y3z:F\5@t33/4OKZU17(x-Wb:3#GzbxQ/q vA@$/4cU3t"ϣb=KyzD0󮂈9| m̊̐'O-3[o647 g{-p03:~!Y0*{8.^1b^[۱ALhzABp̺4$rzeBor$.9v6 @͘_,ΗEw*fӝT0N$vS0b$3i?!< y¼ "pa$Guf\#<$J8mBᚼ+i=)dv:?LXۯw&4i΁5B!$Ct\4y>8À8N~<5fVTF"}_-Gsˮ=d{h[kЛyޭ>T+ ʵP1\Z0L+9ؿ5ro6Fk+0C0pL) N5Y5cƛL~>GD?"wͷvn4˞3'8ȄUg01ݲn'wK:»VKw(#N#3!+!u .Qa~@,[Κ[*F{D $;LVc(a B6c̐YAV#7d!K0B- Bf#$34Zy@'~X/AGpiA<"܆5hۣqĂ^ ,(P h:{KF;Tmok臹T> ߩjN)PZ0v@4ul @aDGGDa$<" #R@{C0y Bye[Ǜ?7k-WM[$J< =BLZ '-u1i=8x<~q:ʟ)@81c'vgŤxO@Ř"5yR #FX2u u (䈼@!GKlz6j >Sx!F&ҌWR-!0Hk$z푼 vA+"Lc'`@$Iy #S7`(pdzP?u `5Td SHOQWd Ai"gdEH`|l A"S@-t<Zuy/=2y s_\:.sJ~\>.T;>;'jgDC4!g3 B4/Hya?T01aPB0|'QH預 i@Ӏ%OJIxpB Q+JF:Nq!ぎ!@:*DH{]/pxBP W]tٓ菀?8xs@$>PD<1C#2B Z "`$EP}à3 D8j\2BE}IS) xo$xBj Vsydx!P^.f>YZz= ]1sZ_R$ur~,/~_< @ I!OHL>HAn8 Ô1B e>(xYY*dVY+V27tםL@ȌyC(fLA)X̤;f4SGLT2z+=d#AdDe"AՎLREcTۡqZI NMC7-F3o^Uyu=!_f83.{rr;ΐ F (Lla& j iE(Vخ ъC.vPnV-U2Bw2mn @iA<)VфX$BL`m{a!H*LhդV@Il9IGĨ3[!^4MPZ Bs* h Y'/x P"SJ!ʃ!#_9"8=Py{#XQ {M=ؠpP2jQ-{\F7%rx @7Ћ{cԧ+e@W*B.:fRFFPF<M=5s S Z-Zyj h hh !##Qy5Z:@r#J7@HQ7f;Q!T?G?xBC!42ˁx4u  F6dL /p@4 1 2р1XcQsxxA&>&"= AM|PSSii_t = LL51a59}.rZϫd3</_uSr!xwg"{Ķɧr>~ [9\EDӃHyOR}frא$HR@QtjE轰ҫW-y$u2Q=!Ge^Hp8I ń f:z@^@,`| )BA/ՀzCV^ GQw K O<8zcɼxq]{D0(_#$6\X5ao+LL5Y v6 vn^-r,v x<86CCC)H C6 xz hx?1>a9ijʼnL|LW$E2X5l ,@}J@ 33-Y\ ߃]|  A>M5􂰗{0MaXȇ)ސzŤ[n/)Ռj 두?*C10_ore27Q!xas"։gF1v锇cf"CK|\{y=9)! S,|. u-E!CJT.(+\)E/ٮg$e=N.!s<p&eAU˜<)l{2$ @/K2zS߇lؽ9AũF`B/@/BFcxZdjBH pA 4sRQ=F`99i(3e`c,^B4uS ;/S˨I j29c*Bwt 1C: Pxt*.$~zxq09|ԡ@x% j@c!Cb%X%V-^SkPkTK)b/UU+g aJ84jSH ԚM sq&Vbp&w ys5ο AYaߖGvˈGRGR '(#{!!$W C'=[L%&|p rl&@LJQBf͖Kdѕwpף0 00ox䑌8QFLFawp0h(F(1+ T7^d 橱Tð2AF`h µ zݎ׍ϼnv@mD`2Hx ߕ"{-.`;*t\;KNXJ.$4 )߇Ƴoc'L qCdɶִ"Rף ;x<*r<{  )5ʠQ. 1 0@pO#D!!DKh 4*  Q`OE'5>:KY?VzFzׄ̽%\2k4rw܄(xL瑢?Ij a `, a /&E^PQPP] ȾtMg/Ds0³L u0j| iAKЀc*@| QH<.b̳Uh,c< @KmUKP-cJeVKի5kd>\Nf5)Z AMVa3E0aP*$`b{@-ƥbڊ(Ʈ]XnÀ:nN (@p°LD#<5 ' M"!=58JLaD {01ɭ+o&p`4a[\aevZ^'$4|;z$僤 ŠPáH)C1AJsAĆb%w ǀ HHb2P;2$"4p07 >2Bg.x$Jg**)&L&b7+j<*Nj*Rj,*1dKXlm3&b]8Z8'`JkUyͶvҗq߱*x4Kʿg$2I*MG(zcPP Q )E$53JS< jN~ JcB^B"R&KE`x 9szut4jS-c!Zod\Revn%tAl먍qdx7@Fx5TjPȀ6S-h}4a~+ ~HFv`Of.r oN5͞OvbvN( %H#L66QAKtHw71cGo E&W'V ) .r *.F2 (x ~rA^q^H(& b2)c|Dq!/FX1M$YDTW&ķj&! >x0 ^PTy$Y}Z t[ASM`xI&{ʳO&ǵYA\ !Vu\Ktۉ8o g&MeD](LX2ZdEJ*(_( R!$>uCP|gsKpu뎀X 3vY:'XbUɂގȀ"@b"xVQ|֬]+kuc=F+cGPB>l(|@[@ l@ <F:p 2v F|߀רבש^_ש7(R$FL؇alĂm7@"9" o@v"7o^ g^},QQx(;o2l84B7!>Щ@GF9 0Maacy^.ab_>KK$.b}P/}sB:B/7.cyJ>Td<=WmY">%ׅKI|C:|:,o豁QduN3?,GeՙU#]wpLNbwqߒ10<?Do%ñ:t#V18p8q'ePRvU{-z[62>KM%>s_%cu 똀ꠤzuXRNq˄NNL33UuY,XϞE{.VϟǼfF.\6PsQym%,360C]f).c]PWVQ{|^.=ԶE['ڙKG$0.D}ީA\GvR zvYN۽R-"P)&{o͈,ZZye5I;O=azEL" ܺuɕg 8p6P&A1 xŃHd@3":p6lـA`ow𿯿F0b.8,8p6l޶1CrL"4Aąfrܽ 8@04F#&Gā3W8p6lـ;Thh !%%:qƗ]sـg]W0ᘰ"9"Dg 8p6]p03k&?3pW 8p6p/@D0yDs/=0^;p6l 6LbLt^"At6lـ{"}@=0ٻgk+HV}㭷4 7 ]y:p6ldD>"[Ds/=0^;p6l 6Pd";w.;w"PUȪn'g 8p6PNPxA[o'md (@DK]y:p6l 60eӧt)ereVfk1 fD%a3WܤwpnVT<]y:60z:u\zU8e X,_sy!5>^;DxK^3խ|/\O As%J@U/L@|NT,l}j# Ό:@$(B@rN@^s%J%)܉z^9g6@O?|w%;}I"h!|xJޕ+6 |B/EA$8*?s3f:ȝ7l vJ@ W_SAEA#~ ٻ00N]j""نDԐl!ʃCW:KAMJ aώ/©ʀ[>x+~DjV̑Tu+gacV>sm)Ay0_N0s)K=( ^xo3|RLn[WմnIHU /[ {r]˃ }odEdZ1b x{?/5C?P^8($T1BYY_10!O!F!!᧷!玵p*{x]-*~>wWww d "7oޔ RCz.ͺRXVg.}_}O owʸN@#Ï[OJJ^D =)5ok&.GZ.SyVӈ,9"uM#A }m7) t9W4\u퇻BWY)L@/ҧO39KqG=1!ŔD5Fu8NJ+6 krȪ-I;WڽdLq\ ;%)#Ϝts&B3ITف*(C ʚ鵺\ p r+ ŗ_ʙ칄Ν kDJTفH6@j#롙J܁] K S9z8UNdD/\ĀlT_ \T,|WD1DLT$ r{~sJ@/Q'm=NS,ߊfB;z%x飐!OŋJ-V_}uˁH5||+'W Ti`]+//O\>|)ere[9"n}->,]2>gD7Z%ĝ]hxBkHn?g TE3fL᛻Svˀe9'|>el`tEH*wv *َgmF7v[,WoE~C7|#)Lř}Un;PفH*bn_g? 8wm@A>NkŹ@$~Nbg" 8p6P |r56&aW/ iv8#}8p6l޵Wic 0BbBqg" 8p6P pxNsCuW\4Qqg"+bn_g? 8wm@A@WsFQ۩$ RJ1D]r 8p6l"6@ĺ7R|3Fn?!1b=#DVݾ~ 8p6po@#zDK|}MXu{ۈ\%~g 8( D"rCOGʇ=%8"luNٲm;dj8{y *#g 8( D.aԝ)[oU-[nM[8T?!{+۶ُMol@6 )dvzCvRHLzBʁH54BLj)o趫6~[:p6 DAH o[Ge,ݴCRi7SgdϾ;\'mـڀ;_Gx&Iv To {OGNʡUrU.y[&%7Z>8t@DԐqn]U}JR#'GrJǒzzz%w{ަ9myݦk/=F$ab&AxCM#RmCq r)9z8}^_"}rCj%O7!+l̙{DH~ 45@ Hn;S (nRv֧:Wy+˵mIj[9(3A{D,`u|q rg~DAr99squӶ*4-|'gϝDXר=ÖoUL@~ ɩW19oVyJE=Vnm^ @f.\tfRD9yW}"|:Gb7Z9|_2 ¿O`J.G{]bX;Ll*@Ż{טNGVx#ٶ5y]AbsDqɪh rkq ᇿH~Bz_#_K0@$&UaNIt"6Fhm?$zlxB# D\_+ ^*#O *rr >@߬2L@2y'HwcwI B fn}rDmԂȞ3Qn|u[Qr e6.=4nE|d(FQK:~ w#O:Jz}AL $Tz= dAV~b0]d$Siѕsu "[A"v#R "[wϤVT2nN 7dL~LUY'.طL4aH4,І.81>6JWFPy$Rxox-l"1.]U&(8_uk@dgF:8*<">fȪU.Yٰu|z,[&@m6S^h;O>~+4٧~Ah W44.[۰i<")a#["z )/C!սT7HyDǶۯjB"w @$# vejy|7U}mj l,/Q`*=#W,6Pl)<"8Oh<?%h-$0 G$ d#r+ߘd轕F~w$;RRHNC]nc~Sv) =\HEok+D.`޺mDdx&De6m6chjaAd&'W_ɅIU_oU Pׯ_/D k`2bW/)Xk6|6lHKuъ/!- D!'2)~6ޑ{f zT.;F!KAm9cadFZM;8H%Q[}Wc1-$~#0e3sB'rƍ="wA;{#Rrȴ<3ݮ,.e۔ ?GeWu[;aҪI'H};H50MW皹 hV2(SRRj\nWiNF0eʰowfw.shAd3<" HJ"a<DU!X#\u頻腸ӻ$)$nwWi뮸?xtk46F9fUu{F3 "@7.Yd ҕ+Kg [6`Ad"F3!~t}n D6D6˹\6& 8p6l@l@A_6m.[-D!Bo@^ Ͻ[oDm7ҕ-s/*kwUD# R5W$!ʊUkd5.GлAoCGOѓgg/KO>k׮ɇGf"Hs$''yx3m| ?PZ*W2 }'A$uaweEgz/nWڵdpzxLFTZzL- k9`*"$=!Yr>@:p#B9v9I.\g͛r2H+ <VxD=62hв`J݂HE쮴s܎(oE gȑdͦoTs9'^ˆ GuOf* Bp rg7 0CO!O?S]zUnܸ!_~VLƹ"GX#_x- h8Y\ PФ?pbBA* >roHy&%u*S 7_E'YҽA :46=?5^W_)6P̈́^GLy]B~)XF9&ƓY]@w_΄<"7eo5:VF0 " a8f9Yb><"` |bB'/P .}9sR ‚piB5LAt{7.9dkP##rhT6댔A250w[4窡`)8; 6{MU8]6gлSS;>BOfA~RrO" <a0/BO!dr#R t"o|qp_Cգ%&NSyƿTi6=vxD"hzScĝ;]#],W$S9fR_Pzx6L~P*(K9nx]lH{4ODm?U]H&7ߴpհ*xuD84jFpt2I V"/Hu0=Acʜ y!_7!|\| [Pz ]!I\1? 'بMU=FY4y]8Ii g+szmlƴ4H*xJ`#dqOw~64& Ҁ /P9sNVrxWdEH9"K8mԂn<([[LEvlzDb#{,zDT@X>[ tkx]vl3eD;FAD=HyYg*w59++!f7r;GrĺR1 Y)DNL5 "㄰. 61<{-VfaX#/Nvq섻?y#w0o}T G$2pR@JҽsMhF wə7% D2@ڜ0$kc)!Ti>KD(uҷPWq2Gr'@ B@)"UG.Yሩ㄰!B(JY="k 7,zC'EE\z|KFh;A'C!ft p#(x%w%_LYK Hwqy5l &'&(l#, (efyw{mkeD2 Ä0WN+e/ yB-Y& "']h&[?FU:A"Jk[:]%tI:06"K " ( q0"B!,P9z͸g 8( 첰؁HE(*[ݹoU7wmـgU,,0Od2#K#1 P.cO^3ՐݤwU!u- 86:D MX_DbAdJ!xL:#{'}NWwo~Wgw,Ds*Q Ua.ܙ wX:zZ'Wee]r˯C"n[R,,@ɑFЃZ;~lgj@DD(SdEDnܼ<"պBCGOѓgrR,y )^O._!3 z%^yf̨/Jk6~W#_{ FwW DH~Wb+w2x2ݧzWۡWFRWC BG$|h B9v9I.\,7.1mBHsHab٠a𻤑( s5jԐߛpRv/@uT߷*\W'd~qr,cQvM";Xsɪ 1'^K?W>v>t#y yisJ{9b nzRF" };?Ao}7? Ꙉx0k@yطĆ/X6k2f<-Ox#}E*Dl a$k,4Y7uaa0 DQ sgW5kO}ݦtk&=}y i[-P';%z#"w)m%$!<"٪'qop;((Ăȍ^8Ƅd!D0u^9o=3։^Op)Jq7m9>.[뎫3ms9{AR)d!D8H#HB+r R !FbAd뮷j>Sj4]ک9!) !|MU6!G+)/#7ڐ ̴!<1dfzK$ޛ"H=JI*4 Pen"wxu "E*f"@>D6l%^&ֿg͔ΓϯRoէ~AhIZς x-|=ieC ĀP48 xDREG(pm)Oe.i H*[?W60W/H#r b1BT_C=";ߐ .#6dl6Ko|O(x0QR4:CRc4 4boD0)U.AceP~x-6G%uyQrnTrD҅MJ"^8M,םM ^C}[zjDJ#ieKL"+#R= ÂȮ7v˕?J.|tMw/>"~!~z ԓ`υRS> AG7d _;bJЊ`/z̈́e8G<`8%I%:>$LJȃ!̑+ST!*' 9I۔bS23['\>)˷,u%Pp R@`.H㡍AC)ɛHxKba$HwYIsd3Y5FJ]38 7/e{\<$ކ;fpZhKhחTW#(TO0rH 5!F\h& 8}a&Q(붩<9iSJ+(ehfiPh#*=ݎl>MPw}AHi4[z]w=0 $h zcOo^x^uzV zc|t;{${JocJ-"D#DF&w#(Gm]BoQH&16J_=h <+ڐ|"C<^B ]a?ߣ{I鮻uJq Jmh 8q RFV-n\~Gd9"~IRHLq ^_<"0ӞO42Ud8Z;H.)O #djm86%HŁH ON{O Am@mg8 @?RKNzH<^3D69_#'tݥ'f-Y5"I2fъHzBClCm<NjT0n2"9!${Iwi)@H"<8` 8q R@?Bը.һV!&k#g2 )y+G$]bg^l)13 yD9#xr=u%Pp R6mG˻$GB-7t# $~hcΕȶG$MW\ k&.GD+`H "|/@YrDpH5C $%'yɣ~;HZMt?@vͰmX@dBj ^PR/"&Z)Sz9 _?ganH n B}YADi"0vIi݁#91{0N3R;m$~ 8Hm۬%@$uYډlm[fȑDŽT \3wYÓ{a.w*^U&8[DFQہBdYAd% VI ٭xh, UI"qq%p rH+<"wđlAADz]TzܱAYpKs%p rA{Dnܸ)\3wPVe[VfJ+LK D+r rr"nʴ.p۹p%J඗("8;B3wyU/񵯜\8p6PmuUeyqoOVfH+rqk񒸇<]9;p6p/@@db!aā{`ݫwg d "s0@$?3pW 8p6p/@@d^a""wޝ 8p6]Dng| 2@ʵ rm^:Ml0@U{&6@ŕHz " $B4?~q#B.#>~$B4D*ʽu6pH6~.G.UޒfvAu#JwJϵ\ "gϞ۫-҅.[RwH-ge\svۤ}n%wAd7A p6l b;ijz-}[~rz;e X,_siEYA@f]#RwUF&7 D"1at6lـ{ "Aw 8p6P96$`ā:p6lـJ$ hJzF9wـgUAxE8 vlـg*bA d":,cǍaޝ\8p6lـgecBGDȶ;0 {NZxN11:z7:֑N(z[2rCjcC0ebЖ{$l$k~ߥ?ωgٖگڭgjec9N2}Rl-ӺT@տS mv)m1j] ![(D>zUJ.ёUS):{p(xyq)2oGZ%͇/V͙W=׬9N(x <d/L}ls3gσJ,3@ezAfɴq3ejF*v2eZ&!SMXe2TMI &Mq'Op]3˅eV0k)˖e?Fۣ&=;-*YITuO6wW3e݆ͥVa4d $ 3"l, *3l0bW ŃRθ"/+!`!0⁈0̈]FfDRLFl^,&^,dCY`6m,~ l,%o[QQȝ g( Fv*ؾ,[e"2I"mT 4nBx9yt &D2t^;#9[0 D^ { axFRAcR*,2H'+oiXacj!X{ȮG+FX &c {Ւ% H1J)3`Jxf* DxܐW~Fm4yq1p=#'ORxg%Snw*f͖={e\&f̽ILc3B4h[e dD4DÇ!/ |/r!2q& zF/eˆm\d3DHe +;qᙠ7bT0c݈M/Re* #&\+R g^e /,9#FVm?lشT I) D"[ս/rB4|O)[|}[䋔rFl|d+I<"^SF9#1Dc!"wDL~k2=#AH4D&Rd/%ozBdZ !9Sg̖ACG(N*)((7bWn߸!M7pOzQ]~]ʥkد\VyJOuW~}w99yW3,{C*cw(s\ =K1uTΪ+me6&U}.d 2YҡS 9%Kd #-Z뿢YN 8p6lـlO>-^xI:v2thr퍞MIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source/figures/log.png0000644000000000000000000030434111534217015017321 0ustar00rootrootPNG  IHDR|ʿIDATx} EvU{g2mA2!dG"DD B| O(( iCE HA@@2d&.wթSu%'^j=UusNUg3>yU,`L qq} rygR: Zǡ ^XOcذ"#* H@o'N m407EDXslcr#avc (Qlc5^dptr\ weĉm\_ xnEESPO=nhBÜ8IJE'X,'B3y3]}NsYęҧbІs|i?| ڶ#*јbk 3覆76h.?uS«! K\v^"yy!ssg3qɏinaGhXv*q!;GieVX AhNF+Q"JV nFAO?\{ ',(UE +P\AX6B &y#(sbq+jOP;T@LzHS oW* "N[}SsSU^ȒȌyyDaYF)IHnᾰ3t:O~s5/e(s ?cEgDؠFSQƐUv "rV ᯊLՂE->36e]@uQ8``j$.H9@2+ 8VęN*V I?L9 r ~+Gv# h<Bz40NQU¶53,M(cÐ l}aPiKء`q'2lkM1-Gf=FŖ$D+0q)!=eаǀ2l '~%Ӂ#0VU1tU -7t S#e$,L)iN}?+:UeL4@0\* $!Ga /zTaa" C}-P qŠc8 -#ŠViswh' F+/( Ha#o=:ZrS58K ᤱPP W%2uu1\y~Ȳ-?-mX)"Az@87RΔ ֍"|4 JT=dGg*πGNqz*횧`śPOX%9A=䯠B cF h:ө]1]Aѡ0,J(iگR@+8ff>]0ߪnyqtVyPAIc\VOI g~[Me^gpϓ8/|!SO곔VT?ORsTRiJ*hW+>tJo:%U0K.o$e| $Ղr[7#Ԇ*GPqՖ\|Į@Mjn)cd̡Ox8*uR4Bh+StXl=5WG"ev|JRkR"Dtr!:<"l4S0ٝAolɅ$%FUHP̻L7FdFX IZ& |##m l$9G)K]jN/K"8Yfk#b4n+p6g8GSiev(,[@PϬ'\ܨlPD ?)2WA)^ tu1`, wd |@09 &vŝ T.X(;V=FP.fT1sH'и "3UuMzp׺1ʴiK_HA|y0G-̂[Nf1gu,ELM,w:A (^tg, W!K4n8?3?ů})JA)/5@7fL "?VH3/`~[MC"S .í.B^mKijض~|UپEB 圪]AREEu-5^^"̉| o]v2Z44W^{]NPsi$Q)iF |v )nrz_R)_k e&'~cj]cwB#IS)\W=_}!}O<䗊~X D2(N3*GG`Df=yr|:RH`&HJ104}+:bF p:0Ou`T, Y\bVvEr۴FK4P4㌎-iLJ8iN”;w q&tlIA#Zѩ Bseԓw"nSSlfY E)1\Wr$%*ldyD35"c,a=Whrk km E>*q+&KP[J[AH|Q )QCI4ġCQ_*n C FEvho<+0m`&U()+B\2tkL\0 bGhڪL&O~vXhic8,yÌ;Wb/{-a|Y_;lT[v D0I1KGuG_()30dѭ}ض|蠝WuAiufF"Ni^y<"N :ԉncdd1 Ή@X+M ,Z# g]`FBr";ћ ME$!-;xXMSHL(HSjqNrl"%1SSzXJb$(\qIلt '$oQ7SN(6#Q#PfrEu]pzB8TXrٹr:t$ADXͱ8\Y5%:1Aof*$G%jB;: :90MAL@{:6<wa6wZJ|9䊧lL 7pQaA}q!|Ci}KMJ< $^ 03kۊSh@2!"L#n5l0iڐrGWùO72<̈́9yFzyzڈ]""r?s맍q|ߠQ }j kg_p8pbQjNa,6̼d.6VýKxKvf4ӮI:n<ҍ.<(0 4 8퐐u6>.x3:#ሲ @̷f=xu??RNP:_ |~P *+-"&ȆK/=n] 7/HBKDE/2rY ;Pf,u^2,ٕ]~(>"=N]lcuŕjl ḏ%H65N=&|Cax-IӀ {{VL2L7Ӣt:*[K,:FljVih ΝLm*b9s;8!<ǚJQB\Q`OP-tNBr~tMƝ.%B7(FNBYbRgڲg*D7ROwr @SEB:ŰJTi񟲵 ϲL|뉜dQYDc ce"$mڙ65LIV;LKnf!,ֽ7.MZ>ǀIpNixg4;or" *mR!'wzM^x6f1=Yy $~۹ُU9iZ4}9釠$Ғozx-- <%dQxd#vlkK٨ipI!̨42z)ܙRN$|Jo)"OEG=>cCf~3 Y8+_&Sr uE r EF [W9 G}ɫ?3} 3%%^W3A<滯kgsHE厬cu.Nכ R$!I\TMGUJӼP Mk+dBJ< 'x}ASP0%aЍp&s&:xbe¹I,/:GعX,|B@$6rƘfU蹟&N?Xlf2B4"(<\&gnĹN05yNh(1 G~؊ yA0EA[ [I]j/lXbCA30?HǣIqAp'Ŏ@SP6tH"*R4"̨=ƍK~>X^~1|Ax<J!чC&.g>L s `U%UtQɌxĆn{A}Dif(]=# >b;QND)d  dvT$R{d2m.D: { A/P*[g/Ͳ!VK/Ds(')(_ۥSSK!(V !HDXTwk~dW\kD*Ja40Ԏ@ARR.O.nR)ffiok(lcvUŽwZڶ>:l`8-- [BZߙxTzl(+aи:@x"J xb⯖ """Ȓ"9?nR(=YzF#O y`<,S\󥰋 h?L?:r}1'q4ay* H%lᢈ3y2EuWfDcFL)ɭ|ZM4 9d 4ڛXyO$UD*hQv![Bݍ"! fOЍNpgѡ"J 3Us2ݨuI1 64Q2ZddCqulw*A\ȵt2\VݣD`di ä&6gL2@?^BΫʅWF,sb{G~Kc&ogo/yc+dmnmm>|x>}M;3{oL==oλGcrkܣi{[/Wت}/\~_aO]y#w˷Gu ViW,ѷΙ>?߬ʁ>d'=uja؊G/?R'~p(XzݱC=Փs!蘡ajqպ[| '{gG5S?fj's +<'^xޓſjy=B5⬯_a=tmXrɡ>O'n*.(ѣy]_y{~~O?K\wޡ85路.kxî~Xq╋:X>`W>?D~Ţ_ 8U]%!,D]Ee>_U|dóS>ywOYt|ۢg^VutȒvgo%۶3CkVj|_[|ů<~k*?~ϛNXQS۩~ߑ!l|AiK@WWLW>J'aEW~:&|/ݱtMCي_u!>qZf^_@Z)`go:vUș8og矘2TaNvuw姍^[_[+Wݟxv#O,OG:jڻuk÷/9ދ~9^jS0/ܸWe+q!0WϽow<,6{Ě%mk~BKhPVxcѸάߔ Fkld;rnlM$Sy%Ȯz % d̲ KpQ#\esihOE uD'D#03FCs! &1SiL p/Ggys8C8uDj|ͦr.0>a0OijW2K stT(<,j*cQ8}>^=afW;uqv*όD/|bVyxhe_6 Z#UQ'/;)#mq'T>jr僑G U! &gj%#-2*)7xpuUIIB\4F|@ןzn>:݁)B}cO ~oYB=~W>e슃:^3A|ڶ-)gQ).Os sp7sqݱgn`O}3z`#. AmoI?>Y6O}+GkFtW?Ïe>ڌ;=sPL_utcg]Ǯ}3v٣O⹓ mcNo?e7-Σ0eNظU_=@Ȝ玐asƆ>'w]2ݡbBWh0(Yt@COMyԝ*35ho2FcҗxLi,@3zb9JS œТ\gPԇx^JLO(  \mx\f83cJ~fa\g!A",{4C4} gc #Dc.$|U6s&"Rf^F4.uq#;Oe жhۜC7SR_!.)#8خ(0&w J\k ϭpc׊#V'jxOpBF05@j9EL:KkUQ&w&r[ ͱ\U6׫0& _cWΣYp,AUƎ;##N_I\,:3 }CUWo~}"]1::\a7|~;woykUKo5i^۶mܸrյ}r6/"&h9 q5#ؿ_V/e;u2**oZ9cN[Nr!]yת GmOH%'nOkċT٧C~K]_xddDxG=%\2B>f ,շǙcc!lu 9;$)oW[]DkZ8fb&%Th,a eÔA& AI,?)$Fƍ"p(/! <(GEg eA:f`ODPcٍ;>&57V:3k"( dnL{;cлpr]NUv؂kT-1YfX%$K1M03sk0Ú1VK7AfD&#(Du:+2 }!`L 1c Qdێ\t kX2uj:H}>|P)'/>{Gcl+F'G/q+cc?k||^B O~Wcn{_].w0Tٌb,pӯU$|Ng_?/7|bP >'uϻ=wWJwj,7G!)J>#KĝEQR>Έ )ѳ muv58&'jԴ 2uPƴ}͸E&  %(4k cdw6ƺԜ(hBpj!kȄڎ\.qfv>oe뼈; 8M@ \̌iLh2le4ӸCPH < ` KSqSrP)WigeFq[^Uxܬc^7߀6=l*9pX)GÍZCbJOP ȕiZp*@Ep-cx}qͦsN??P,~ɽ .NNWXTT7tчN`!O{Knj ߏ}li{^`fUpgY$wV::\ck{`LUud~Q.M//)ސ~u={"o|.\:t}FMM͛6RA}U)>c;Փs.O|p9gt[GU~ Vߏ2 ߛ}Gߟx@q+Z,_eg7_!oyerU͜>/ U-bU.}N:#G@9;n+wY#C W8ȘBcBagGߘ/}-z$9{nCu܉/p޿rBfuÛ/]j#;|1N>^?{zOc?7cGQz7 S<|@ޑߎ\{ڧKok6֟6nĭN~'O*0vxXӾY;CX''.#bƎ01b_qNCn\tl |!DĝQۋ%㷗yCR&V3c;-: HjǗ<^%&0LXXI$gvJ7^D`t!ȷ1qKtشV&stGo'_) bn0y=J` ӆ@ad!\;PM(5"{=>6#~̸hdghVB gh0@KFP) mbGgiNFI\Qqػs|)!)Lƭy,ӟdD1FhK BK4[J%޵?acSo*aI3uNǾXa(uֆBPbmͬ}+kx}Վm|M9`BaHvI s  k$o*,8s+&:ഗ9͘ ;y%B䷇k'}iؤO24{~3th/o{[^XY_9`_Nўo93O. 13ONj6>fV>îXzi,+ߊ>s͓\Uꓗ^sVa"hly!BXYwK~X(K%y]KR)?a L)y8LLTF4dt5 F(\B]>>T՛@%Vw.|ԙT:$ƴrANBv6s"R•d.ke;叶kh"XRKDGn5.j~r#vQc1JrBrnfԊj#efQdN?KL z㙓oN`O'Qd1@Y>kuʧj s:Sp~^JXUȫe܊oDύU ǼEk(f$bW $N)?\;A_ tԚIaC k~x̖6"#M15$*ooYvy}kYr+c56`B<˄8D>u*W$<1DL +j}:kUog~;k:ZYllkm}O^{!E#T*⃌:Nb!4HU HυgNhy4 jeބW_P:-WQ W 'N "܂{@K1`~)L3R'$%0RК +c{)vwQu^g (߱5"5[pZ :1pџI9J~CY,uP(scK=|8GRHeЂ2͢'Ɯ|'MA^YR( "r:H  -KX8D,{*,q}LcF0*|NtDb̘@0 g9K)(A6  iڂ ^ ̄5'lS$ 8?I,)Nڰ2$k!MyFQ2 <8On"U@6']/e=,`@?-emMd,i |i`k Ig[PveːM:ͧq3NiM|P_7^V*uvf`V?x:A:Heށ:-njVM*BΨ ӼB:=2SXP*P !˸v# 0w? d!J'qMKDShUwDk$3\Cc {&瑸:]>t<^g 6۴Мoa⹘'")|'@c&'3 RT@NMs>)pMOz{8yXDYmЋqR|%Z4֪tħvGИ#LrYHO%F3> >]dwPв.-H5CX2D AV@B-(sBWI"A+ES)qEQ$wz vV5A-(A ر+"zEAy*BфhP_6i2> ޡ T gdGQ7^Զ!>%/! 꿲+ Rps0xhlty7Fڱ R4227n Q=[ΡJ˩4t c`&8Y1,,7s`Ce dnSz*xuLZ[vt&8*ōLwVqN!LeضCM,C{Vd UXi:X+>~ԩ=P]cWp47RaL -%&` 8* ':v0iXڹSٙL<@z0P@6kYd6: c)j|U$7fErיPN9k$Or]̌@=Ff iv`R*;5wy7H)^9wv3iS 8ȠQ4^ i0!A%ި=LDNV=2`M]H3ds]&&q^F$f m4xɊ}!ӣ@+)T :`S,$Od-1g~Bʭa#!`=/oKgԶ1D2]lZ‘ØPV[@&4^_ `U.(^'LaWi~Nx`!] DA'USL ~jќX=S 㐞yfH fɋvӓUjL?ؓ=FI3πDo#$>d$cϛ+Sw0ǢAr caX$0'[7d#;=PJf m r0*] Ӈ0ϊ|*{FCYQcpFV&WE$WJ}T);̠;PgC*6k?բER+X=ä9s #tL1D/m"CWrLL9s JT1::ZGCZ;R.å2W])l /!'XTgsAA, >IR`~2JjQ/9Gu``hѶwbg' ֘~dslR5(1bY%5ЉPn E0F;Ed8mv8 RA8SdW')p(#>aaYbr`Z N>M;ZO }W yiANkAәsiH@ gnH(}mGWS[tqZF.!`W0Y9] MXF݁.0anB bvOuC\@8 hFŋin]G!mefIe zZ{OM]sU: >H 4 ĨF`I$ӂPd"Hf'km EWDK=0Zfqg2Z;Rֶq'_$ sM]ė32A&][IGkCkjzFdXS&brfSFs;lD2S=(֜iZSU% 2!#veE;b(햡oqCnMQ2Xت!դrUT]D҄ 93 ,PRi81%U|%wRL6FslKŢ:^^yAw 2*\2$UkM)8Qy2TfzCl $tpEPZN8I\Jld,e ;`hn֗DHMèU]5?O cx$ ۝(X4,>,2TLk6 ฆ~mBZ);q=TvdRF yU2tWEз)'x :Z*Y#P'ѩS6~F ZqMődt"L*sݨ( GNSWS1K5vVtP I$.0r;k)+agbq$ꪇ?CDz+ a礉>nDE<<1މđX Ե*V#DAR#y\_TOɹU= (0𖙠f.+s7ZhSehd"NfG$wr DFhKP}W=`7” 7rB}Ȋ>tw4_zs1/*иiË$VĐfp^ \k/,mFȜ 5 ^MslOmkpG`3rr 썎i-㥼7>Fh'aAYҿ:&M|A$DQ bqHQH(0|Wתo -uYfQu]<ЭcTZ-jL0:*_ #;fʳ}w|CˊT.\xrI@`ZZ+wnNg't9SXS14&WRR :avZ=&!LFwEv$& ߈ Nhqq %J3ѡ(hKZ'iʒoD Bq]qS1OW4J;ٖhGI2N*pz6ƙ=,銒ÝncFpG$=29 )&'S;E՟>"d-zk199ꓘM[П$֓іSyS6!tydt=1tF~wBP!uTYh] \&"۝ar.KVy*/8*ػ Փߤ5m߫EW9vx8 я<]xٵ:DabK5-cQ)Gű@f (jVqiזzDlZEF`tMguv{ƝlD]Y uEgyqӦN=a᫫ әdBY6]_myڿ=܃RJ)RJ)Yw7S'>3 :=Wrf>em+sJ)RJ)RJ_ HYuĦR* p*RJ)RJ)RJe)ɣ4^.Wʹׇ2^&} RJ)RJ)Aeg6݄|=yQ;SMgJ)RJ)RJ=!{ ǖU_ e.d3)RJ)RJ)}H؏+kWYiOCcRMgJ)RJ)RJ@YM a^)RJ)RJ)9IIwbD#\' *})+RJ)RJ)ʐ_̚N1<“w`߬;cd .rnݭ]I%dz+?d]N 1o}M7N-WJzλRdЩC M)_ʾ:/+#YT](OJ)RJ)$6? *—t#{'ȩg*t 7s~ꂦޕ'MZv7_BVV v_STu=g! sQy-,yh/RJ)v3Og@+TOhIYx#@&9Mq7Y=TVX2iHVRJ)RJ}FYPprD,Ktuiczb孟6c,:-$*+7y*7M,虅yEpδ~̵] 2b4{Yᡛw6۔ ReKh̙ ^edl&7o Tuc]oE ;㰭(w*}3ARJ)RJu`Ұ.y -!B`*L&Mg$Q$=gK(~INva\6i,g&ٴѓIe3.11Ĝ3d`DMUT*l1Ӑa!'͞sCr zP~$a%4bU-A2e-dV@ &o&͘VMT~SNm펮0!GRP$w7-RJ)Rz?d3LD![C)΅ t:RAV,q 7Z].bwhųo8 ӷvNxu q# ˺[B Sh(ٽBNeU:EiFIoRJ)RJߌ`P4,K8SS:vfR"097̛yT%>t]`);¸k3fM4Y9kޠpfx즛q.c,ݎ?%4tVe6f6.& Ęo*֫pΜHf0iHRŠ\9v/^Iȹ.k9vђDjSJ)RJߟЩSj7tx@=7. W]ĩe"9ezna4%>!kǕOBYWI^j TR|\'͜9͚5z}3Ψ6dˤ6xWکQMQUG@oEκk9WIBy͓,v]o2L+f4i܊ sRJ)"Yu<'wqt|hꍑ0ńݰ8>)U)wM&sS$Ɗn7wj'UeR-wnJ)RJ)+IaNa39}y+.FMFi7+#1],›f-4{dOu^y͞A8}rORJ)RJ tJ`ͮh:M&/kr5uk)VxKޥ} zo`I)RJ)wHk:n8Δz@ڏ?ʐRFRJ)Rz]eU]ܩ<0RJ)RJ)zJhIϪ9E>SwΔRJ)RJ)> K3%e93Dᓠ;SJ)RJ)RJ!u ''t_DN.OJ)RJ)RJ)5e/ý4]wޔ/RJ)RJ)5 BY.iz%_0ʼ~9L)RJ)RJ}LTk [ݽ(c/8 f)SJ)RJ)R`\ fvgչ:cʼ:uRJ)RJ)C_ڽ.OIR8QJ)RJ)RJ)u9X'Y{%}Fh:SЙRJ)RJ)RIN?)/C4=3RJ)RJ)s6|L)RJ)RJ:%Ư,0MtRJ)RJ)C7MRJ)RJ)Rp93)+!DBB*Rq/mx޺3|R׷fA}bmnZw54>?}z QRJ)%Zmgy駜^H|Cc{ُV՜cF~1' ˕RJ)}ؼm@}b= YROV䗂 (GK1<IMKLQJQOc@ GOmҖmͭ^aoӭ*=o2wu孧}!VRJG/s?]sb" 87ئbtCF ݭ%6mx'M { 䫋6썺e;9I kwL?FǵK)sy6뉜m#uϒzf#96kزsgk"R1<Uԛh J믯m__6lh>/>_ z'SUmm{ζBӛ6 -DC⦔RJH!ni `ϳbEֲٺ4~}otl^|%9vs:wmmoi\dkoXR*n^{_ ]O:s1@?7+3Oӫ\v#uf)>Anښ\ tߞfrҚuf'g~ HSi۳O0t!Cfj׭X76ױ:۷n"m.޿ T@RJ)}`h`}֎3c#Z O׺7 ^RJH-aȲQ 2[xyOab}kM->&WU[]XYV]?>tȐX9m1m=Hs6Q7wm9~Ke˷~1_i鞥(ݻOx Ln}#+,R92ćlU.[a'yޕt:JaRo3pVyJηo -DR"Vͪ¢"'d^q)+gϋWcЖ-[Ѹ$ZMO/-;TWzRNJMmkygP}>>^U}NJ)?xq^ 巷`s}>5MRsUաM^t ۻg׷OWk-z/>`5loڙk=vl7mmQjE3{ VUU/ѼvbW7nܕW^كRJSjl۸n!k-l!]2U _h{Xߑ{k7/]YZ;*[&dy3M|>'g B@xÒ<w/py>o'_(1sǍ w{!sG{Rob/myMq]I'R ïsH mpaGռfx?cC8Zw6vk\ړ7_9)-ء䟯: Ǯ\rܸ꺕H[G~s,aַEcX3|M\sTWU粒+;w>'mo* O=T :SJv<qVDlVg{1{{;+I8_5/5>6~aCB6bZ~#{2Զxʡ24"=xWVݻ`)}ؗo[[;gq: ŧ_Е*_YJuն\HL?2֏J")|uGM_?1moύ5C~g6_b?7^8lHE޵{h 6}+VxkWՏ6n}x^}o{LwG[!h/nQ&Ur{}}.~r+%RJ)ixѧovԞ㫲U{Rtw;xѸ!GfxB³M pHm_M/Umغ|'Ue:wx( t". :Yozaնs+'M>p~{ԅ(gV72Y'qXw[S#?O[>,爘,ّ4n5qÎ9t'$Mdq&4d7t=',rd؛ M#\#'?֤EG~D5\(AS VtSۓYsew16WE{|qˣocQUW^y偏w߶tаؘu}{ZZZ&MP%"ShU?^xl9oG~hu𦫏-[~ӟ> uoҿW.Ohj;ܱKelj ms0iq9;ʊ"~lj;5""iz/;QPI6w3?轓TO$r---N E;vgDd.Sʐ591>CH;HGs E.; ^E%7)6@ZM#ߵk=QG 4I6ޠk{NU3WZ(/;G]Q?m揳xQt{V]o_no:Tvg\75Ǐ~uxz߾}~|QVV)€}zbegghjAJEm>_R~nkkKa~ {&-w6tn13:5 }}̨G wtX!" .P{NZdd}rkW&uoP#/\26m|D`z:Q~e0@v X'Xr(_O&\5_,xv@=F(ə|K_j:ǸЕspslsP_ϯ J=4a„fn#ѣ5- ,Ig{Ԣ{jܵڬ"Q WߪC:w|rcKӥfGsIs3`ƳMZ,U:?53)uH\e?ߜ=q6w5I?ѐ1B61G=o*w= I).ixg֞G~gy-'@$V,eN';.m99 अN,kD+݉E6Kr wd5m|J>4@`0[S4d$f'G- R O,tKZD.N_!Q-\,Nݠt"kDXI9pvqMtiMP=i˜z^N~R^iӦM*ЃqS̒"A7`)h 33>iMօ唔̚5ŋ]ΣC`0zy5:-X(;#&78[gf]KK?%d|f{{[Ջvޒ=$ sԫ gYZ .'r^"t-Yۃ 㻖:|F]|k\ndTQߧ?ʯ`M'w) u_<؎#QoD2ޞ_|? Yo鯇ojUҐaC}an677;Z~f^8!ҦN t:&ڸNr˥Οs޾zlBީo M/jvOAO,Z4l %?~&lo_ԴdIBѡ)VMsSnBYJwm?ͧ<`UtF}>_,Y} N>{fӭo3 K<+rwhŃ x_fGD?;s]:mAgL)lo|\Z%Q~HC_?syjO z(g/~O 鯖?1a ݟG#l2l>^~hܦ>,Mџ}9Nȑԑ$2.^+<<{6*|͖|36fPVִ6eïڙTyo"bpLK5ztMIө܍ؙI4nKx7w`sȜ0%)bl䪥̾e>^:e~hw ['b35s]~U8iĨ1}d4MKiq9>{g/ *7NyK{h|/yw}cUc~ c %U;Ӟޓ5,qyz1111h4<y̑):`BQusic(2F Cڝ퉃elLرʞ@fp22"E4)޿|ԅX:mju8v##|uf'L藒hERtB{yW?Yطo-h]Ǐ?)24ȅ3g7g o?sJJ,۰a?O~FVWc\,3,} |s8?gΜ7w6ŷS/c>Wq oFR'cd%r2%zAiFb>\?+ [{H}9cQ18SIvE#.Yy,  }ɜV+X3`1 2 'Q].,'DfLjrSui`zU‡J8HU!5bߟ9::bok=uu-x/~rwI!Rv;c\nonm c2F׵bdhplj呆O]i4;*VO{c'mwsQҟtU-\8O\1Ӗ"K>}9dɣGM_+b8˭Wc2,H.,ğIW R֬iٿ]uMAgeɎ4~qe<8!iv'敊cjvj)u).mt6;Z!XhvM!_H4x蚗pbk>\[ ƙCr,1"h5:0슱X^ǥgZ~nyeg<3O۶>7͛;ϛ޾O.?.4hm)j@BnJUHX{ D;Ғ!)(ZBe1%G^d:p^^AtrKE9^ْU*\< |#oy4Mn 0xoksX^c=zيɾ.ھ8N;v ԽiK^$>q=gs._og,7x<3v>)OQ}p%5'''.LyE/߳ipN\/ޘ봸eEF~?2׈6 l3:/56Y~HJ5r9񝻯lTqQb#'6ǵed&Ex'RgL7>SzK_]ɿ:.֖K.iZ|s-O <kz{F06p?Ɯ% :`/k&3 Jg~:T9;w;qp^UAy9"7ScH8$6I1haky9)#3ˏV@xR6Ię `{R nvunڑIRE}3鷕x7BNu:EӍxe,$՟:8Bާ8m[,s8h88!XwkK6y9Y5\~5),Z[Vg++ϯY;)hq9%]lRⓣzGF<%׮|l *ф~;7[pvxE3Q<ײXBRNKbnHsa}ayiaGS7?=*&37/Yt2ΘIdL$a'EEsPRE3@%Re95I*(zc9凷XB^)oiuzB"u ]1{ n!QSsQrG{ld!{̌A$[" vCЉZ ۱|Cjve3UcdmXlfWWWW>>h:A/'Bd!EC8Hg{Ԣ{jܵ~ٝyp---Wd;}=V^xo߾F#3<1..7ڵg=߿ȯ@Q WߪC%$r6OSerPk׾͋O>X)}"?A `zߒk"Q)#kN=a|88#c|X(qaMIJ.%.|F˥lKy\e%Vrv~ڴTyũVǩ,*9VS * YxC 5(NՇsIO#\^`LT$q]XTX I{w_ ]7eLRߊCok>euHSu-"2`쉓TgERn,X)^,r;i;sSӅA/`ɲ-%iHJJ2httW`;&&殥KQۅ /ƹ~{$|&= :Mɨgsd#g2N=GZ5a$ Iwm%MrO0'[jpO,k,=9zC)Zy3ݹoX^{nu_S7sa:M,s 1 'a@_~Yy2jl쏯!tc oǙ-:݂M n$sإD,ώ _(E|͈0RmȐ!6‹}Xr޹Dn ?^B75INo{c|ɬUyF,'%tt58;XrI7?ia;I)fzv =}WsB,=.tO#r%A(PUEw5/@0G^2S;SٙF]: @Pt$%ŜFī2 ZSG*žGyEA^XK J3J4 =E9sSнmcW'[snZɨ01u?B# ̚@}D ~L"utFS_RRE 46,@xB=DіshN'3sޅ^1B J:EizyW_}St,: \+Wt_VX}y3s:6 zYHd݌Mz=tjm=,: LK:G]N.9{]'i PÄ^}Wgr<swv$8y?tZ|@p+}grӭ|n$UhyEeWGӁ܌ϗ0,S?eЫL,c[e O?X_ߛ1]#sZh:J6^X9flO-F 0'NjIo^2\ɩ:1Ȏ&__OuƑ7VabKFMrʐ-a|oGim/ݱqvϹ@p#fOv4iV?u: VW N\Al!lyAey/ݢ)ܖI L>>HG7M*?L~=cɜ~+Wy5]&wR麵+p;slTXeC9=|G8&ߛ)LɈˁRN`WIq~I0*HT4@g9K }4-wвBA}u-SqN-tnʛTQ.FtˑtFV4e职^!9B13Y`Xﲬ>ُu#JiN-Ks|HKj3xi:?ՙFʤ/R'ȅݫ&5ŋßt.V4|O'AN'>]h/_5[QAiw3-&S5BZEwLb~P) qןB!xKCE~ Fw[gY4 e[;ҎZ ;]R,0)ߒ+BP ZXJ|;9э9 i> ][͆3?VHZU,|s2'kұpyTBL#5]q ~#!]NII+t (UgbR:׿ݶKWb߶%f?2tS=kN֣RMa }~>LůfN\Snd+wU˰dd"vu_&h5~mzjd4l60#qwm@he1EIgp޿Ab.6Cy|Ss;u Sב.DNatyg)3z;SAڰA`R5` n:I{O!fXY'm'B+%0N%eVxi^i&o.BWs)ɏ)k4V@nB7M&Q0XH q6) skv~Ndq88뇱&|<0/9Q,%Q0^Wb+Ov$y#J IrpYeb[iΣ'(8. \7e(te,V &jI+3d P$R̽{ H] nKTR,!mݛ7QFOK/V~ڮrJܽ C!< }9 or i)$YkH&N,wcYaeغ!,2$— *iws PS&(U2GoA,W J$Ǜ3ڇ/u$T^t G'T$%!ĉ%k+}hNʬ_˰_DϽ}2X''ѻנ*}_>Z)A5^rX;—ȝ(*H[H.[{ 9 SwQ IB)Vnҵ`]~ygmjU&ɲRܼ*FgC`R+&z@n7+tj\%VOcǎEBRѩzyx4H^k-A6㕴/!x )}YkO@RL @ܹi#mgI(wvD"sxNz$h~-X?WVP3.-!f3EZHgQ5ͽҾ"һ_"_r)_m 񦟇a^ePn;Aob%^weiּEq|yFCtNJz7='*tG |; =-h~VPi!7/MfI߉ !Fd >nc5MK"e$_qp0rgPKlNg@ O&b*JIa}3Ҽ7d4?-Je<޽Wf&F.ˇ9~_ǒ 'wHH;@cz-`j1MjNj^'c Gb" fOg ]@M7:Mױ\-^GB"F'EԝNtco(]vk􁙀,f A- ɜ-q~ROq抁mXx.bB 29" K)yyRW{Mj,$II1Nrs0{ׁ0F.q~S~*u~qW|Un@fM[<:s-= %d"󺛓/)9 p B'#q9S{qX~o:Q|;{'M'B :{d$r("n0kn۸a7e'?}JW' %(M'}:M2wb$P@ę:x}'oaNct,zX;g0 <Fɟ;\2BQGnr<;R'믮ι-wunx@ĩch-eruճׁ^Kbb¡ގ lnN'ŭ^`pu}TtJId:ŭ&z'KD.$H sf={#Bf:''t졜y|տ\/nRC~gp0ܤF< {w c@)rP uɎIļNLlv_iñ?y 7dzkzС/ōU)Vk)|SSh*0" %-^7-)|s؊[Sh<-uSs!H)Ei0Zx *HvisAz%eaAEZi8 d`N)@yn nZgKę|e.͟lsLr3?7ɜKDuR {KN(*hd;,6$qɺRtyE<3se3}^Ic8a1Xn5ص 7lDM20<9A@ unuѣw\CΨ{,H:4?󊽑\Ǒ!Q(In#=U4Jԭg1V;jCKS>mɯ&Y> ]FhHBBfbyMiTRM3@O(;64MCuX4M MCr3oF{ yeC)UhN4'7(L^cG̈$_=dWrM]؄kNdWֽ{i:9G$ m:94!1[&հn;ԕlO Ʉ,Z_F1)5Dj.Hʠ' 3xژ*&šӋ)qU'ECxLI9|'h4{ {]IovoG z#Gx:MKϯ8ޔai<\CGZq.:)ibMfiv/7}ф̍ef<&#oz rLxK:,IdLi7H"&]zI3@χ i>ukPvj7ԔR`+Kp+ā){g3&rڋ)>` R|y +$"YBfCŊeZRW[4qg KD"- ro\?OcǎEB엿DzXN[I~޽c5566Xki&3P4!X!WOgd>MҖf0[U@!dNcM KV4&i6EFsbp7*(<ڠFTUꙕ뉐^ɗǞ;_V$ߙ3JHjݥ2< D"z&=0t>qq#z-[ qT&<-xL\ci=zfhhOM܌=Uc=慌JӃT|jۊP%8QR'gH(tc5C85Fvf#7Qɜg%Tʲ#OFęU{  qn"&]RkbE3Se k%q//[z%{8B\.*ӌm1$KܯzvvRTO"WwwlU^x펍sȰ$Rʐņeܘ_ZsV *yyțy u#.hTs@H QThv<>7Cgu)lv ~t땥lգH$Skd"ް3rsԇ6NƜ^̿&ka}>m/dSL_6-^<9ke+CZfUizMixmB$nL|*%ܧb9z%uaIy4w/ Yf_>[i_ywرفQ -Ջt.d| n=M'łg:%RmVϹ}UVh䐆I+탚 @p021#N7DON ظ|5k8iЕW&؞/CGrw!8H 7:yA믯XnGDD,[lذ tꕄN7.J7n\|yMM ~ghsx7{6&̲u˵e˖gyرcUW]sy睁tAHIB=hN'Dt;vxꩧ|=bĈe˖͘1݌QO'R:7ߟg|xٳg Is:ŭI-C&処sŊK,ikkX,-z###CSu*N?tO=^/^~Fө#` -5FރBDg{.xM'"'|$N0#9X&vwd@w#M 0L:]n7mщ/'jҥUV^LvWڣR]"{Y~C{׺2 ye/).y}؄͒y <'g9)]p# NNNMsǎ0aBVVVAAzС}1Id[:b>]smi8X 4i$)$gSydA (tiujgL3o=\GZs nA=[nZR<,,ymUeg|a`i0ZxIqSUZ#k=j·8Nmĭ1,h@ r"3`4΋6F$r%}ep}N"who%K` Wܼysts-u(uuzmM%c>e/j%ab-Lt`-sf}!CIX'UJXWă+hdJ,˒1̛ ,uIǜ^di̯33.{9P 4CPNEIݭU<+{Z\]p#95߆͑'!Fls)qߤ>l̙;G^fMo:BG-Yw&!Gйqxƅ[ \WHn6l^2UH bm d ݔ)!dD#z&5FS찭kϳ4AySZlJv4 hqQvmhhD7RcX+,L&&rn@ın_`BfDg;{,H4yxÊZGcL+l{רEUkTtoO9v:BMƼNYՃ9~ =,Q]lXEt{LxIk^%dab ~)hLFhDs&Ÿ&qhO,1 ~bS Y4ԗnm C3/D'+Dĉq\ 2E)KN!,IY$"FHV0c;_5+L KrGWwn DGyWY J7cV0ၱ'zw]F|@!y}*V,o)1Ē)!qjSbF{I쑊h,ո|YB+"պ=ПHo FQ^^tB_{ǖIJ$O*,Dn?ռ'(6%۷ -v=eTېU1j kYm)jиnqwg6?BDMKu _R, Oz >Q2?  Icdϭ?5 5FTzkn_jZYV搑4qf;I׳ԚXcJKHE;#Hl%aK 3SEo= |Y!Rud+[y ,bAgGcN/Y=ӒMi9GNN%K*=K]R:"#`2'/]5d1bĕ9>/5jo.mA 3S^"ÿA6jUd%%ez qZ-b /u]H$O{eAPeY~ȤƙigEᧂ3-{< rU“X1٤n;È ̒)h**Cl/A`!f\MDDJf x=\lzmKf" " K2E𰰓}ЩW)JbK%RϦJ͝_?{SE Dބ9جpM͌řUz.t PM9kL5T'n(szIK1xqyDJ->JRݱg8A rf*yָ;\z<xt σм>!^a'qyU_1Ғ((rj`ɐ^ǰ@K ,i^|v1J~E2k:tIl@,ٚD@σl/ 7wȜNzvC`:$: PjÿfN"`^_} ́dh$NVS(tRh:)~ '4%N7-nzT,z-Ak:D՝JN9z;[E: %E# H F$M7%1 H BI1ˈtD tRtRQ uX=dN!u7 4<"mUUU-]/~ϦO\{TQ5Qp^/ YHB[静mTԔ6d0!uSs!J)Ei0Zx !*Hvisj͂5Eimv=M,9Ii8 dnNB"F%K` Wܼys`YaIe5&ktk5Z@:V"`z%'RZSIQ4b%eɸL:cN/4噙L[љ@= TԟdN]ce'#&wiZ“P)}̙3wFf͚"t=^#BNN' I6WV3ZG4 ۍѹb ׊Ms{ȸɻ7Ã9OfIF$٪d+0H@$( Y(/f77 IHo ~'z%Y3U*A*A} 2,^6bmg%-eY+&?y{SAϰ|ywEgh0ZQj.ibMn_uLѧM,Pk}{QVSJ.ZeچiM}6nl(K+ٯ uVaA%j#oWx☭(dF$y&r vҴ1h*dIU)y6}]I$t1Edd7LiQ]lXE4)' QT= -klƤԜb=m!=+#\QuOl/JJ$/IKV8 MRrͲx!;khL7!*aI$!Rf4=#'֮BƥS/^*?WyiCz8=QLc\$~8Ee%re0Kn@)d31_^Rb,+d-ob4UWY)T=RT7&FZFtcIf/FZ$ZC*m%YpՠZjWtPّP$MѲLEUvC+dl( +yr;= q.=)F(>d&H) xB)tR1JTd!wV>j%a]9DT8aGXMk\!{O,^&s oJiK^* Iڼ׈b2֖//h|ƼdGbATiA4d* m,k5J>^o*wkCB{BAO`*M65X8 細'^ Z;koʰ4nGd{_{>&kajn:.HkinW%InOA);&-Yd„ bر^HTVVo߾BO!c\tu@#ۯ+ 9%-(R+N]g/)sgL /-/0GiaU+>G(LMD)7"V7K 3=ii18d*pD1OhNCƢFe>YԈJ=kdU)B6F%ss &T xT’AOa¡}yzdE5.zK,^E4m#R!4e_=dPY.CګX#Qmɪ5:;Num+BtKX17Zg_jZYVKћ4qf;ݪ34&E΄!$ ,&$GQDϴ$"-0)uFg{\*9ER⪽vlNH7.Y dՋNwO&R<)i͠8Z5mϘ J~qԜ)%Ft=0ȯMƽ5:nn`z\|݈L$ K~yMU{l-XWS0#)4)fi=\lWi/(WV2E{яDMH+ҞhiW{IoItn8b욻HL)f(& %!!)v/ P)mk= 1!{1K\ #b?gNZW*q)^YlTW1Y4#f5 O&?ϲyrp JL_0E20kw0}j#{ ~R;pC}t 6Q"`6G#HU>, w0_mI%yd.joLVԩTM$ZeW]g起p+ #n GN&=zD@a D ۧ>[|zn\?ZAINa,h0#G:?t|FgVh7yxI2Ѓ Œ #&*NZ#tR@o#5Xu D"h)2@h:?{u%3@uQnK6+`K 2RcJN +[%XY "leR * &Am?Gmغ Q:[w3sg8$z_yx>;sscZ(s &'BAA|.$BAAqr?"Q:؉  YK'AAV7i9  ⛥S}t"  Vt sT:AA+>X: ^MWGiz<6O_7ix`:xp`q9_!e+w'1Y? R%'Z kl3){{] ;tO"WP: _w|\m.%H7 > Ih|C- @A Q1{MjVv[]}$20 O?~4MW 曇ƹsg$LJ,/[D:jʄ Azi;y/ky~y7H=^R5ΜuNUrJy>fSSe˖s^]JgNhxS, 4N:Ɏ_"?SMg4+&8pgM"ǁI57 pЌhY5Y9ˌ ! _j{KSﷃj^D^O=$5XT5$##ǎ)!KRbU\xw.{XgX_MS}: XƄc1z3aNL$CI{ $zR iif^=:#UOJ:A׌aK3$4YM ?tVuZVeURA W;q n*3[{D^֍g!-dFY>H,'lߑKԜIt֘cIAضՑ51vqB2ޅ-4\+W&5ݲɂ> 9?v~sS !?I:l5<1IֈЉ5C<$VNYhaVO7 5kV::Ч |IB&ϒk SV;ƱCM _62djHٰ.sڂܑa Վi]4T6!]OQ1wM_'>hvy>% &{?'υNjN9$$J?1aZHij? w+gIVK/Je\K<`\&#"fɋ^IUq!uϻgW (. c^NvdcnL6ޑ׌-Qs)o(p!I2Wj 9M2}{I45>XLCmOb(2EJT5[ &lj%O~\.3 2&n)"ޯڅ:C9" |OȓEXpR\rשeuxuulAY\(YQ +tX/c~___]f;e AY4\|X:uʦt|q֭^zW_omk_r]s  p8.aSQ1Kg.f<Ν;'N8v̚5k^|ſKAAYJtZ?^:3f?޽{/͛7ݻwG?ڶm*  ˃R-lwL_$Zg6dR~Ilvtt?t/G7Y"  Bs:U[wVਖ਼zZ-9}@ބ  RxS53V˗/wuu]p?#/B<̛AAYz]zjԷL*l:: YItرÇ߽{ۿuVAAd(]㴘2+US)QA{ /aÆҮAAYjYׯW2& Yv/~ \-  (yNY 3M,lV}8AAV%Z: %ө(Y""hii)ZAA%Jay:3@rRԑ#G/0|А_} K젤d-@Lv6t}JN+Րa$뀧MbR |ƗVd~Ks"9i3#Y?ڗeh&,խDx?CbfMk3Λ [ nuX$>}H Q<t_xy]vN$-L3-0%p~VU%SPB!UP _^ WxQ'R/=B^i3}U?v…t=3q ͶI͊x$VjW =C듾*`}^)%`&Ç('? gΜqJ,-BpU0ΧH\#?+Y!ZoCl N³,f6- %AJzi} y(_J"Q3%O)iQ#}:ƩT*ީj|7;::Đ-[ꫫCYzR5±#p9hT%s4D"*k;i_C o1٤Fu{ >Wԭ.M˥}]!2D0#P|?Sgz{ALNPN8t loSM4^X?LrB:ȔS+Rh+0UjE٦ͩxLd3@ SP3m76{0NQ{,-n#[j,0d:3{40' kg@WAiyhwI!wWqu~9JUI<]%lP2t}q=dg_>zE"3ɜj@ s>cW^v^ܙxKt~SkҨZ%&:&5&z;4'Gnb11}*ö5ED$cz vL@G-u[lj83a,-׏+ǒ#Z.K0FS a%C0> φ Թ 2BV.ٵc$w&K"Si5Bڷ4%].,Xr3%^KyoYTx;"|#܃8pFszR?w5MILN-$|nhG}Bzkrr)>R8p腲3$Y%/+Iuž0 fhCg,ʤTC+@', z\laۇAY$Xi𺵷:tʼ8! Wηړxƥ /d6QQP[|Ɋ!~h~һ;Co2rgrWIq{f}]AMS̓˙4Jfs:x *O~{Kҧ4lh}&47 s8 j ZZ̥v+gIVKVKg+r4_K&3og582^(MٱGZ?ޯT5 ,){_Ct*@?.ԔN#gshDAAJjk׮ ̫+`շ AA,(Y^'NDAA:6}9 AAUMN.INn4-$RlAAUH)%Dp:  b6PDAAuSNDx  ȪLN\  uP?uAAJNQS"Q_H:M_?T].SY$ L@G377/.oCCV"ObH1AJ"O\gGA׬ gS |ܭ>'ߺy_$*jj!?yw;^VW/A:$ܸi8! _HB;jE>H" O|z[nRJ#gh}WODMäݽ曇ƹsg$L. [D:jʄ Azi;y/ky~y7H=^R-]эS࿓ͦ1d˖-ν\ή6<_fYi(uq {E&WiC)}WLq5h=D !0OMkoHsQ D3u$G$4 ~4-0u QG3oÖfHh鬬q4 үvPWlݬxV שꯔZU߾%)d:'YH\xI%åutWNidJ,;tO d4@j sSI< Rc'm%vL9ayFx`ҋR=Ħ<bgubo)WjwU{HB'K˜WS٘w5ck\:\jHҺ +i~.{=*”V&Bڼo`/1IBw>sZIShBfKY!Sb:b„MɏeFYƄM:ERU[PR<~ȡ?~XVāyhk.]+tX_neg||[Җ  ,>Y:-?o[r\[[/GAA ,KJ˗.\@y^x!WV.fL  bT|s;vwޭy߿nݺDAA- KU:}{/† J AAY <RεkB  +t9ſoGAAdQ4RRb  RDߺn3;Q:Sԑ#G/0{E ʡԄh`U"a voE]r]hVA[ l+lVG1Ʌ{J;wΐG+{E-uw_~a׮]===;D&''kkkK*kڳ@\ |+Χ+A&ͭ q8p 'pDP픒 91+ozJÇIM3gq=Ҥ~bK l+DӣN8l+{z V)h7^- +,gR7|C ٲe˫N߱QS?iJzqv<}|7t_dF Lio~u3|Fe܄$Sy`9C#=as7 ץT>=^nqm.B4=>Qpfa@%I *|-um){_uQm K0%eޮDˬ'Zf7LEheywf1 ^Q"J$uVdB۸pu˔4NG ݠujrp2GOΛOyΏ~3l=ݿ` & C` &I̹0qbl݅0}vQޝ\vpN8< D+ Z!S= mJKI|e\8:w+ V:{챫Wuo;o;wf -kI#_Y*ٍ> & l6/&mZ JRߢ^>7d".&WGTQZ濻q:`oP+GmCZY;\NIm K <8[YGǁ<%ƄNϽ乐=T)p]Z1M݂Kǻ"8p>AWJe{疂SAuH) Ɨ@}Q` zүm9A:=M%F+gωӎ|fwazIR{e'NVX/wӼ; 7 pڵWgR_5kD=cry0~E{-,++y$E#L,8~[Usc$Sǩkrkz^:rH?|\u[&݀&:Cޠtr  MhzVxn搐G>'duv)8X {U tiHѣ0AI2 V%d:)k+'9̎;Euhtiy&ApO75[OQ9{ w2%;&]p3YUqƂ!-l=lV%sCn#W4/r*/E7:ڦ;eF%y$OL{xեx9t&"+dVLڕ ROek.  ~K,}IĠ#1&`w-=d̙F9ٱlEv < ~l/HO cX<6}=e'K9umI*@L{>YGϲhWGM1!$Kǻsu)ѥ7Ku9vt+hric#^׌"QJOWr,$8 ۗ%~t+t*_Q3'j9Rv~d( <n`dw.}7ONѽc;(e獳@M˂RcZi4lz}Rbۭ/i:(\.޽{Of+B]  (Ϝd&5}AAd㇥IyôPDAYqug]=(C:  ȪKDݽ-AALYtPDAA|E"8AAd5Ʃ9+wAAY]c4J_*LJ'  *#?޾>Sfu*@e!NAA?y1O>tJ)UsMe~..R#G:tP88jw澁pxw,1G3-]uuM]Y%y$u} i:xt3VUk,acbۙToQs#9#mK$o% ~_{"!}@HĖp TC=[)N5(g%s+D47KvC~;HdrrHVYl! 벬Ļ3}珙mm,CVM{GngF> gE0p+TU44UWF]\)M%o 3?l|f2n` 8s6 7ʖ'\ |75ёGқ5#ᐥKe(f>L4Nh9sgY>v>z>wmWEApMkW2go?HTK3鿭}r6E ZItُ٪Rl@ͭ6p᏿,C.ͽSt+.ggC0 J( 7|C ٲe˫NF fÙ<[ꓽY6}FlyW2G,$5gHl|ߒi | Zღk> SsYykgÂe龒8H۵r~IDfE:gguKb2_M?z|d.ԤCi3''uZ$iܖgَ튤xܤV/~nKfkb;~),o p/7=ShEIPo7>?yK >FןUVl';&\I|rv潯|*v2ZZ+7I=I?uV[&9|G֭[1_̆T #Hhc򭏿ޚEc!غazu]#_^I#N6鑍#[6Doz$YovɄ`+&sXPoȾHm=郮>صw|kE[Zz^Dcɵ;TV!<7*ϕ[,L6fT{շ_fwJO~F~?GKIURAk{%snA͗ =[ \!}C=> 7آ}?6S}F wkncn-) @{S:k%/tlՂE"q7x7z^'tL8˃wo=bffHgA/=}5a~x5.K&뾒?VtOܻdWmnz[O^ge#ڄ~k*yLkƽ!Ds&zb6|J)S{jS)?M:n~j}75zn'o{ӜAJaF8]t RIc1@/:_DGwٺkha /-ze}2e9|vjjȑ#wsulzrwj̯72 Tŝlrfɿ/m&k"IfVJ?`7ZY!rn3ۄ񌳴C^ >n^QkR۰SIh.L^Tho«C9k ?ҜX'c6mwAwJoAm[gw>ؑ3úq6XjM=GBP# ԧlR[ a0?J^FQv2K::H:"{ZiyewbT*k=k3_^'*O~.r.*|J-=Pn!/tu['ǷKG~?W1`Sm$08ߙq ./l| n 7/XjIV3l]@BI,7ea9'{!g=^Nk+A_J:ֿ8lą),"nۃ]OzR DsiW.Uw>{zSVTs 7]D OH)}= 5w\NFwYFHV:w+w8)V/ehAs#ڃ*ݏ##ݙJmƉLxtN'Y+2 iFGM=mIZ{)&nB(ejTZ>ɝ6_2I^N$IduBr0_}icBl.M\6E-f<T|hG*BAZF%җCk WȌXɭ5IA4i*إ8 S#Iq_JBmq"-2i1}wd{>\ݩlyAď1B{5ܿTZ:ΏBu˓S7ǒi=c[ NcPS/swlD36Jĺ]A ȢK0ύtP._9z* AAdsR[9ƽr|2rYq5;  8vX)%^eyo74B6#?9.DgOaAAŢ l[&ewr:(k]QNvAA0 4l6h4hDAAJ@\H>@'d%KeqN'  RPt߽w/;V=;޹"  +Jh***ds9E:AARP,V*NI,DQ? AAPĝߕJ%Pe5,r [QTT={vD/<䓖nx" "BfH2*D (kVDtdpL޷ (8 ͪYɦt*嘡gu" AAJsA;կ~%t֮[˶+颢DAA7=J`kՉ69~AAdSP^Q늒SI~EDAAՍ:of"  H1TNI{9\./ O)g[s'""dbD3XzV˾dU`"ND|.A1}h=駟j2?_1??kD)s qƅa!h9ϩD]S" U1ѹ V0+!Ѱڇb$(z=k=􄐿W4C^qcѹojGYVBMR {[*|5QIJ0mhJ+CZikc.J]Y֬憖nӇ Lzmw(ݜVxi%5";&Sd w-WZ^n={CD\\Vnf9,j:~Tcc㩳'vd&I97u\%N{CC-Tp7>wy3H;CMTs8'.m!S*Ѡ3ѐqKcvYHSӑjEc44jϜUa$.-#ey8<YW|5W3_i۫ gQh @Z'U@}=zfLJK+#R*-\xoUވYH41e?Uhiz.ؿ_|6Ue6z`"r!}mJA ,Ŏٿ|zb?:|zsSu \lfطfT{\@^N<%SǏO 'BZdtp}*bDЕ7ǷG i'[Â$"S|ru q1ʆifG3hzPHG%2wDG%ɇOMӭRy1UkPv-yJRC1@ߴ>hfWmӶXVLqR{ZUl{U9[z꺮خk2sMS:h$XcN^<Njbv^!qFڙϯ<)p!,VQ)\zAax^&ps{TddC}>)Z4AYQu $k9]NWsݦ4 EAxOq'bccyً]eӞ3mEӖ"SNyMCzDݽe&ln uMhn%Zx'bf:+I0pbޛaz iys6K0W/5{EnJ)4$Q_i,$qFA'fH+cf@wEpܴz Ya:a}o,6L!wȓhkzP]' 5^b!cEE y[:x__$Zg;g몤ïw|HUE#}}q 2<^5M@4~z'JUǥFt_>yB|'xo>SW.+bi7(t]S!;򘠊pak-H͠Nd5cTQ]Dro#PI=XW4cQ%six7%PjCDސ?N#Ւ:CPsTuwQb=_$RD KA ѫ3/NKUSj$0&P\mrx5/ ZP-Jwѹ0͔+m8%y[ 5y?X]ꉎhG7QU|I2vkG\() +%ܷ::=qz%̰1HVa/B'yj|v%7"@S*`="yk0Mu1gTyWԯ4U)R/Nkl7n(ԂQzbSօ컟Z[\x)8#dBzpo>A094lKsygλK/JaTwBhD--?0z)3bQg:]6<?eN~AN YJsKCicZ# kݱTS2/3|H&MDq(Z.U:T6 m:CF7w%5m_UY 34rIrhGdљLL5ـЯ`Iuν7DK(^?}9ypV`T?W!|ޫ9n3+ۭ$DP(qۉd7z ]3EY!ŒO T /X]HbbUN[˜Ax^' ą3M@-9Z~*1 =_G,:DJK-%˓3z[$ib%3ĘZD}ؤ:2ʵkrٜBWQB+tҵ#KkLD-aōE6uH1D^B!u HX>l`Spܲpر0T$j5kɟ@Eň,M;Ҕ Y.K(𚾊0:Yd[喅_|_ut*5j0|dezA}$ɽfT5k(lQt"  +]_dah 0ʆ H!$>ʱ[A]d+t"  RZo#AAa9`2ɲZ:Dò+whW:7 DANAµB.,QDA ɁJ'xtAA)Dt"g2LjofNWO?l=-D@p iX;UOzswnwEzscI6ɯS{bO5ōs7_j?v3n;1΁kQȢyko}n䂦##[~+,CT|\S/69JB&N)6Du ZYcS=qdD"C]Q.7#㚌zF<ljNM]KL'T_: +ZAxܞܫ\ƹ}©Թ{W 5[޽j D: /JadVQ혛,w% ~΄n`O@"*tjZgt'lucwZ=T:YLĒW 4ْ中-;ʝO]32MtA.pSzm[^Si0hY_I5<5 ܂9?풞+ۆw옺ďvu)o4 j~mB }܈٨}77w巋AA G 2+԰3F5p}[4HmC?SOOzd730zfL%iD`;BMS3.1vn[،5Y$ &Ʀ=$8%ߨ fiYrWa©Q"}]1@[={e5S uj'U^3 c]wɽ^E, ,qˁRtZgo/Q6Z$h{/G=o94Ҽaîq靺B`;1/sLrD`˜6bl J_:{ nM1]m%zDI)i{SlE@A|,z]uzN'M/f LnY~l;uсv#.Kٙ PUy>I$Xx"Zȩg@l H O?q,iohMMV4ԡPMtDذ:4$1} AdI0NsLB ַmYѶvz$JD&?ˋf}CR= $x8Ⱦ;H-'R..diAc`k'>Ԣm`gmOVAEGQ:g?[~d%C&(٭dcC}ʟEXủyhLBg,DښaRa[ZNWWU7VmY 4.Eġ@tVRNP"L _niON9g븨bL>)Epr!:F II,T'tQ*) Bi{kN/2+0 u3x7 EA:6ˎ.Ӂ+m`wfRfM5)5;xr Z`OG}V8̘W W-"䩾\%*PJ욤!L^*Ώշ}'1{"}uA2Pp: Gժ-N!])-"$BֵЖ$ͧϴp fצj񂶂&ġȔ}2 .-.3굸rKQޤ~5K=um Itׄ>rPEUsL7X)RPzk+5BˈxPSgO YstHvm.YݔAH\^!b{Q03 *u/cYU,۩ #tG8Zb5+,*xy>'GCx\Z6]1avJh/7ц779~n Al:wRKg'a'RζN6S6ҩ@F|s:M׳UMbt.4Z>`-oYEu ٮ!͑cZf XP+M%mATݤ ݻnS:s *ms;'D%p(\y+29lAVI L-d~IO) [Y[.Mmj)ˆ  V: S&Ln=s3~mi\8ܺo$,Oд6h#A+kAbtsdUb'Y-e4Ķ2I6eAA l(@?ˬtnoerIJEKX63j%<\pO  ȪG֯+@n,z>-p[-#7-YQ>{Mj3\^9_Oq)]c6 4zP.e4oz  ЩיsN>s| ԟ0l=uxƽ=Eh&uPB|A1pS676xZ3unhl<%es{dAAV= M:gnViݍ7*&nwVǏo>/9zklzN<^[<[RTcu4=r3i]I^ʲ>(QGYP9axDŽxi=!TiAYyz{AEIcI:{ {{Wyj37WzyA-\< +>3GS8˯ti2UͶ't:o)N觳({}DOi[Sw1,ݛyTӰtesS\ G"ꚳf-W#iV-T[?:һS%Ʊ/`+ȦD$jdo)M =ITvE&34>mNaul|OuV6qP\D.b@) E4)L1t `[!]1 rS!F4˩jߒM X:HDaϏFT\{%L&56jA#ZmsE?DQD/%hDgNfoLQc݅Iյ{>{Ð DPz9KT#MQ_ſ R,̙uwfjNbזKY6w15u-MN޴NnRvG03z gRӑ`zp*Rⅇ%iq$RBuVci^b83CГy*W$pB׭֏4{*Co>}1i'!K o:7ZMB0r M1bA<;s 7AV+l>fM^hc|;<ڥ$@}87S $F3'TLe`\>#N+֩]qu蒊-s3iXL`u%:{U!U5'd6i=FRBcC\%8QD8ruj$t"HPѐiڹINWUAU9ئlqL+sZ21$[S$>a{U/ɬ/ 3YĜm!Q93?wXRVuܛBz׮:,z%IMGND iؚ2BuhKk.rǤ~,iE@SPMDS' g.Mt"ЙDiC\xм]XNvb8 >ѱ׷u#~ ݋tߟ:Tۿ5pOtE}evXwNei\ӽ}}f& ;ouR=Ow]/ P빀>-R(#9>\B5w{dNw̝UEs]*L\YdΏ#Ow';4rշn?ٔ/yr}/uaTM;+I|UaY! &g)_eQߛGdQt览IމJ'HD;7b:#)-0}C[ {8O2K|]⚨Q%nW%9L])4.W0&䁡5h%Un, Tɤ& zIKt*QI]4&9-i%4q79~@ԕRۅ%LXs6ZO^;mj<$֌~ݢZUc$I=4gRpawu[qoBYD9NMQ; nLчG`OÝӪ%/dh oqN%謿^jV:ixIwsw&S& &6Dnžxxr xK`zс񲨝>uM%{_PPdwzfkisMڪ%2{LwuZd^I% }w@2:~A n{,0R5HeN$JJjڸLǶU"\a݁˷c?[Eµ\GЀ!ItK\}sw`njF\n(A6JE LNYѻΦH і8&aL zҲxT%M, ɤajX}!5b`۹֙lo[vR s~l*cV10qZ͐ne)֤Z2{D֜eWeMd?Q)@c'xG_,;FtkyškTԞQr/swύe2V7-[?eL̤)yFb:Ƿ@]cm*u"A.?h8MU\P& .Yn{wrT&2Ћ([vcֳly9QU5ОewʛZV  c2v(z'xGU)ۚHTK>6;w8%IOnjHaiPh7FHuƳRGR졈4a`n*5ajR6%w>k> dtځ+r=s; Xf=w^Y$g\89cI47 Wɮw"*N{oya&,#Z?hIQrn%ך?r'ʏl)08}uj[/,JEtWcFeh ^D@7&fBsm[W{| lY&N5Ka~J&$Wo rKkǚjܗoA#ڬa.OPb}9*4wI DY"^{[ 3}{q {]>i[yt^#wsTO( t3B Z9Ptm +e]Cp^Q[5h>A6oNufc,R\9IX>j%5~ v[VZE:,JSu8u8KNRy_dNL-$;lN]6Pn\8AC6.wNo.\%7:*,\zCVxr%9Iﶆ_扫?bӮ;7^Я?7<1I4ˣ-ٻ=›ٟeq6\^ڔ7ABZUF܉5 A(H ӻ; [*&WLt @˃moT/a}Sٿd5h^a[48z͏{?w{[4/?9wn4+xӑzEzB/ǗO^"=wBR~A;r\9A&ֻVVպ6_+qܽl3${o[/ՎTN#hiHZOA콢( 33u.ꄈ[I^T̊/ KYk_%S'Z.QCnx]:] laNf"nϤ]SY 5'1ƸF$g*?m2uB驹lݡpyf%t51q[#7Us'V;~r0ߨs#:کC >=>1:'S+, o땴2HYRb(#gcbnK򉽞Mԝ*hMi 8+^Nƒ^7ӧ9xon!q9JUCr>I}؛r֣s''lZ~s&>1¢֡-Bԍgs>Popu}{! 7?щfK1oR̩cKK ~ZJ$?o<,"J`>{m|*Zo[BnĒ:YjA>Vq{`hМb7n G.MX[S5&-J&SDMךfNvקHgH sN={MJvv ,:f;ͩD.")NwjkS^+gݷo/ˋ׳;Ş19-.-#%"Dy)/oowE:ӹGS}--5KQņ:PnD^*g/D:{7`%lh(#ҘNLn.L'Z۾{YhɕBˉs~ũí-M!K"t,{|V4}tOESC2as)>qZ3 ;xp_׭D2Wټjqw廫$M:~5a$*lӥQpk:I5ƫT 37nrn~KY.pK)l@E&K9x3 tvJub]Zf{K(WQy%a$NGE:e,ɵ殖'):U>Smo?$~Dar5Έd ?8ZYs [.~(ltH+Y;eXXB 67UW.g/M$ Yۮ].wttF_]f̐WIOe #$}DvZmHzwǙ=nA29Ž3}0:}TuZKtIH3W2*xm|ՠ{pqjK?{pyZRN4MŘN.ch#%c4/8鴇<:8^LJ Y4_uI;k TeO?R\6ݡ3?KVbn3Y3'^E*;ff\9 ?] Y{<Ⱥ;uecEEz+ʂ͹6Fm5[Cln+[ -v5gh 8ԈL5%c8촸c+w֖4MužBY]7"d¥ wG@rtiXCG,K)A'mTE`ooaD$`0 RJKNP5Ȳ@Lp`XZS΄E'Ft`IN; @PIcg~C 4I`Ӏɖ&PO+h_g`?M#aT$ou. ̈́.Fw(J9-DZu]o}xGfѽyxM?RrᴽڷfuN7*iKCgM{tuN-t[s[Lτnp /n7ծQգ8ܯAT}h֥flp1xxL$utfP3l?XL׎]l W8z%(͇tI~sͩTht'Gw'6].='Td0ׁgj:4߲z*̈́wnUrs!ąbnԅY˅K3 6|\TɃ&j'Xw1]iN/{eLu FDh8H w !bBwP|[3wRΖ,AP48z͏{?Zw{}d9w?$ ppٻm0kk'nR匌u TMkSQOץz.ϔ.Q.+U.\ܙ+'H/V9 QIw G 32G'h6Je8tQN%X3aR)y:!8ltOꁲ>rJ tR\^d s4ʓk\wS%r;K֜/\8=Cvl#;|Asx6њ-4sRFN[goa~% UGTrR14t?6-Iq=׽N%.R=>H$'-ɻZ%~m&<= ZoὁxG{N_T5`$PֆQjCU'(^MӮf TS](BpK$YLXL|̒r`;"bc=[>7}e9 wLm=:}rb*;\!OR{nVFXgao̽<4pMkk͖{7o;5K1w%Ħ2簼E{stA;[+k'o,TfK"oJEYOuwl:n[Eu,}DzXBƽ,o+ʒ[wMoq6quۼ;Sk%"mlZo0KvmMcU _.MmZ֟"Lw;rF GGP[@OLݰ;4ǔdHv̱J>G@ٔ&b El5%;BT}B7I|ya^ҳ纭l4ՉW˛ᛏNZw' F;>Ut%ٝknz{t\&z(rz܊- m`xQ_zg||ܯhzt0bչY^ HxTRJXLtu5#9zZZ.Y?@B[`LxծLW ([7"sOQ ?{A u\ Jv7M#Z*%>Gbq6:NЧ?^G.>u885䚯JZs>cQ䌅քs;1YM8 7Yw4zw7ZZ-pP~ceay:UgN;Μx^*g/D:{7mGH4g<9讛'Q(Ykݾ2% 42lw#Ya M \>W~d/u\;Ab:ml'{zMi:gdbZ<3 ^hҨbTi1H%$?e&NyTz@^}ms>iYᤷB PAL?(?U9?Y8"Dt9fH_iVS:ɞL̩o?dIH-la׷{||̉Ļ}]Y7KeIqt ]HZώOx ^$O$ m(};1oa0%ډ:%Fr'()8?"MtKT^8 b& 7'$u:: _9EFJph_(pV)MlzOX%RHSFKfh R->Tí`Uң,ӫkzٜX|: ۧ/?+Z`<~m )N  dtX]?Ww{ԶHyá㖨<49>G1Ȥ0M>:4"-t٣:}:|b_W!Ef.ۃl2.5^I31#uXxpSHOyPpN8;@LP&ptz=`%ᩫSL^7uL#5"sfV/:4(]٦!Qʕ+]yp7JҴ7W7LMD'+liNӥF!:q<Ӷ~,eg/E,]VtJ>UÉ|]?=է1?{o_sTp=b`Dvt@tB*bţ2Jai@fL{{Ỿn_wƥ^v12|U$6Ctp, Y)te4U;o<5T^N>5~/x?̑_xH]&C$ܓG64ӿN'4QX-S%_ ֻ਑)fJR֞bES,¥JH+FvhZN[]}d;Txj0KB9Gڎݮqhh8Jk}7t}d[C 1*AN: 7&y%KvoR#:kL^ܴ˗M3BYAU,+rrG-%U+=JyxDݣ'i)v υN]kðv;ѶWwVoq~ ۺP޺/8RRFKbmlrQ tjܢcTʎ]R)z}7]w۞)4Ӵ"b/ {;.j7C}lo}TVqē~o3$SuJv.U}tS흤5| n7dvGU'}.ف{P&ǝ_b: )-mF:忄}STu^Jh[Xje}0W{o_y],:SK8FȆzWL {jp;⭀QBI}K,;uob_}ƯE?>T߶HX_lGkUOlǛ~K[&h?ǩe, m82MuHRZ`U}F}Uj1&ɦٓ1ӝh)m{w+><_We*vhfй}ɦa=: NN lw]NRԩڊ`_u]B8T݇*_|.Tyzb^/-qz\]M{7]~}X/co޶4l9͎Hab)RKK~]җDV#Tّڥ Nu}X-pQugҺixg ~d}}QFۡߦl.AEI;$À.ޢ!} zW^?lݏpDdQ؟ٚ}gS/܇{I=7iXRG&G23F}tzưSv" ԧnHMѠ<9_e ~Yv'WJTiC, i_w_=DUH(%ȔsF )MUmo\1q':7f}k]%vj\iJەqOO֐?>+2#ű6ҚZaXz .7R|Gk)D]}4aIb#*NBMa8tWtl#T~;#"3dkE zC9i0q-K]աuMٗ5-l,j74%VLc^u{CQ\}xLOf;υj bbPz]ߘ߇{D*A-.U9PA%CM##;id+Xztɧլvw+͗[~e{Im^QzCyHN_,E3Gj%:;_7a >`Y_ {Š읕#:xYOY%멩PuahN7yV_xW-uj}"Ҟ @-xo>Ǟk/a}_B==1(W.y|r;t32]<8hUSZՎ{r|;R!v:WF٘oG#v}_x:Oܴ/ K.iz7ڱk5}¯.mO'Fss)ҟr>^kAoG;ċpuy Y;t%dip_U+Gt;*dnMz<+.3R|sAѦYj=>!i{N9<@/66Yg eUA C* O[4Rz~wZvފSFinW` v1Έ⍗Ewc8}5 ^l;{^8D%@<37h1p4v3z yi ˟c/yDԞVVO+zkσUgܪo2yIAϙ"=ĎӂDvE դv^Wg_޸.{W3?w'8S~WF/Q®DbMWDw/v\َNe$({n*VOeK~[=^6*[p쳩5.YAI*5v6,NeWUu]h]N@}gs2l^k^u'fu! ]rWY;(#L gKɒ{zK,B AO9-7!e*ћhvMK;:,#b*?C;@_^@!DGhb$bPGc e(K{ &ع.=tKy: l q\:GG]P3'ΓT; /]cŒI`.;=T^%ʤ"YWK%bdm;eAlTF8? Q`\ښ_siYI 3O)}zmX$#Y~- P77B}4&Th|,h#c $צҹHm'S&cFd[qO?h$C6)(D YЗC}ˑu}zM'e!K d5|(/ gRI$,řpR~`a1KdNmzMe+֊D%%+ [*e>:5ݬa|"NpypIazK0ty6P =kKd:M62+-*OLVC]jΝ 1 $쑝Btb:8j#eB;Ia:7֫ɯX249F$#1f݉ޓc$}9$`} &1+ 1 #azt}0 GT;!dL䬻{4K_bT*|Kq3{/>!Ϟ3$b!"RLIɓIJ]zY7e'n~\P@IGuVJ(mɜvAm#ClM[h~ɹ>R1a;;amxpT`!CLs2&K}a?8hJl{<=t݃Z:LP~p;a;#&A@taeL/D"@Bf\y4D"ZO!uvMB~m0@I ߘN9@P,@Gt\Y=WOK(Y&#'qL3 jCx77#4V >fӰT'MNTvxT"P+˙`r]2ɤNg ~@5 [' D_#)8! |Ĕ\ @'{֯LU2(KҐ1ֱ'{d\>a]I./8:sR3/jf:KC{ō!"3RkX F17؋?1]X_x(#dc{/<, R ӗ7ݨr.;赢W%p!3ouqO̯kγqO猱ɑ =44\'L'8dJY/Ud43vL 6\j+t.+B1L:W9חneE,"SH)1c ]S4mh\2XY&֑^]߰NՙF°K2iD p(qgb0˴F=JLiEZ_#41O;SɤePvj\Mzúx~ɒ{ap19tK"M$"ӳW4'g"MMwB *8_1*xɵթLs4fJ6vIneyq㓹]zܸÉ^234l.E[3[jYu.{P&T$nճ6vsFָNw^ݒcN[ 1Ww|챏a\Ǹ>ÜWUS.~:.:-HtQU8fH=yryO1C裩gBkwl;bP|֘#U#dkP ;K1)WrRW?u>U7jBֽc: Kt4+0q$S(NX̑Yʯ FVdC쪈:o^Ÿ?SZ##tY?K&yP uū:zovy̢}@7ҩU BVDqևVזοAt%utsM 9 cZkɊS1+oةļp`&t.Tzqe_R*QW%+jLsn"./˄:`O'{CNbΝGnc0\9 :("=`t&Dܶ$:?w;PE!GMU nXn4['ǏCt ) \p%iMD?O8!:6_Z*uzMo*I*1w?ݯۏ> 9]%x{"Ϗ=Êǽain$upOno?~>X!`/oth={磏vl`Pٶ@^;RXۻʎ 6r^Zn󱕋$;RNJ΁t֨+W\/ZY^]]%"&XqM_7<{\&oW?Ĺ?9PIra 2DY-^0`Dp3H+i;#EUi=ӅƯ?g~y)L3;-#=S.EzB[K$nʳb:՜FR`~X{iL+` @c4?.nr/ t7ψs{Lݐ13#c$WZ;zőFd?J) ^);=ۤ|10tNc4?&Ct{s W wwʹ9PؑBh9U V~,3fbۯG~8ȺxFؓm R 9պRє!}YrAX Ku& DIɄf$'lMF@ÓeW&(|"cqɞ!XXM{u'ĎRM)/7^(j_P2(5]*|DgKSD"䓟p26%֟" Od."L㾑 ji~.y2#ű6J1Gfs`,?j%5vB;Ħƨ(Kżvq S(1koG{$:{SN99hn~' t[w[JE 罁d)q oWŧCʍQB3=*K m!ZS8\|:%-ӟv>q NP M2M>J`9r',a3d`Rx9lnj>iWt><i|ah4MΟ8VB)ԧ>dm~w ԑWL&UM|4\t6Y$?)N:cih2K1 h2&hnԦaNLPљ'u:* ClHD4ilޑjOPba%@ (~Px޶/H_໚X& u= Cb~;S*{vi\YVmůY{?-LJMMl4LA^7O$ @}ua}Kf!L!֖Hw6[Z҆ٝ3^_̳̩͡.kb}z~2|-nT2'X⊓!px1KYZSRIUQbE&e@P;-H6l]*]]>X(w 'o҈c{Ss7| 0;6Y`)zÊ<'i4x{v6b>Y1;.g5W&m1l ڡW礤3N|1ٿؽXN;-:-v;Iu] Ad7eESX|hE_F;B痊z&<沆phnǦX1$i&VT#K-]2'm,'31̾=Nh㏤TJJTYC9jfP;aC#Df*& 3iiROcvNΝǕVQ"|"Ώ /sϓIoJUO/KLf175#t%#ʙ*-IbOTO忘+,|C#dLLUOZ"z:MR!+ujOJhK*ĦA~s2%yBO}+:JWdL3}+Z=¡.f?Lgvz44~lNmԀ={!M;fd3wL 6lV3$ihzl8 1*RE谑}tx4%Lil agG6VXdS+dwׯ0bO[ҥ@}1 R#*LbܵS C̛C/@q6cߝXKeW̬QpG7%50)'/t_m8sGF ō!;6^3z4[Jj9oVT:keUM}>7s~|AVbɿh+[ÈڑyRM`HQSu- _?o-d[dC7Óz2E-:NcЎCH_ۨ ;kZLu.hBSdʯ|sxehZzeTl6Sۅwfχ)`}gFNsGƕƐ;"| ]. !90i:uSy4Ϣ͘F{I-oċ߳SUǩW{gҝ˺L _LmV;j:=v|J"`ǎe,9Fh,; rEHRnłx]3߬_Ŭ] _ _?(LJW<3xz!Nه('[?F tw$v:CtϘKHz=R<"ׄଶO.5y\g_Lye=CB1MϰͤRruP'2d=!c|ɿhs {tŜm1X3bmKi|, ]ìFѦڵ4#R?ޟy}ř|EX6ޟ_3WN{GοY4Ez%>Ӻ]eݽ䀹4bziדLrJM#cvA,"'dgO|`EK&ytRm+E4}qu O#oeݱVf8gr$K&Oyjl.*z+;VǺTpP__1N9]:+S]m$/\;kSR,ekPn~`1ttvxO^w$''5r֮MeJ9#[u73> =*&{j(9HYӆWط2H#֍gHto Y+zc{؏0+b$gzu.qᒖVF9E,7Bb܌;ܓ,%_2,}͗F6rqZai+>v41,|.D:nbz<޳Wڟt-~-1 wMت'j5v9{(8͙;afr{c J1Qׅt`wVp =+̮9׋oQVaM/*FwWWlR{IuxtCruvtCM唄^]ih]11Uz4yVvW`_`[\Nu&h9η{WP &7ћBtVL /' ǁ^%HxO*>RŴ覐IHCv@])G2ެx&x38 Hӗx|QE˜g"pPp)ML$"hN @,|hVwt#EsZ/n BI.0/[?j#ˠ&v*D K9;[r8O]W(#Tܷ*Oήv^Oٖ;Y3;Ӏ<]:{ sEmݷotӞ{114t +/Dab$j~Β* U# @,]KX$٬cERР/ +vf=8_?)שvGm3U4g#adQ*xJGz.Xo,*;݇rY˼vce_g蟸Xߨ]Ljoc )7Át!y:;:wD @\eZ _lpe}yE]%],"ImY^:yMui:>lzrDr.p['ۥ)NK9&+%'eeݷJVrV,񁝁׬i>hA=*YO~{ zjTt"M-CS Eq_?پٞ,dz⵾9C_Nj[HGy?U~ծϣ>}ޚӆǒb+2)f֍ qvQ>.]eZF>-zAQb?"T>' [WJ4(>9afn//2՚ QW:pSv}5]ܷTWK'C7z;+i7b m=b}drYG7bO_p I9ώP)rXh_aPKaXdo#gC2EŜ&tZ SƘZnܱ]-ǎ1vu&''7lL>UmBG%˷8nL*)@x|Az|b;>(nP_JO92~?RsRbq͔!{KGHazSmb\T~e23G6<喘?!*+UW]n1&ji\)~Z뾕VKp]M @ñN- ӂ/ۑHVP#04Tɔݍ۷L g+ җ A?>7?U2xn(3xl򷊳m\rUFQt>rPЮ4N ϬUnHz̏j -.GD&}w [3ᔾo4 L'aN)g m50)BEK# iX[7|2cI ~Q*T {Gvk ib:WFC:b΀ @/80ӉK {Nib:GUΝHy n:PX3AvF8:<*;at"-1%|u;U.VdK&9b"'bfpqxM!vO6wȔrL'8uI*B+)&<ǗE?kd=I4+tG E Ǔ3gDiO!b6N{NðDi))pܑ',"ÝJT*;G|]y W' zo`rR1\q;aNbfd3*mO'Ec9*F9I"ܙNtHV(Tvv*;$hh &[6$Os;s`"YIyO$!+cg,}ӝjIĎD"i$ LHY@"N$|N4"1d&'ݜɤlڳƄ0IĂI #4 + '}N \q>ȒMTn`& '>dH6au 0 :F&OP aҒMd6D+:DSN[gS<"4I'71'V,nݪ70;9loL#!IZ`&թ_ۉә`kItGeDOqZ -KΟ?_ۉ4n8K&D, 0v:~+W?oi/oDDRg``ÇQUj-+W๰[ӝ-M)6t9uu֝^ ֑`J5˅K3*I2nfN]b{kV+W~I[jh5#}ט CEi4 ksk#T^=\<[FvΆgX^r{#m+_?H&ʛW ?zpEbulBs3se}֋2W xg^J;27U8{{ֿkK}~uҨk,Չ,2ױF' _RzST3qz;F4fHt*_Nm t_%ozO*`oiY1=Di1>'(f(C'wmm%I SZS$(O{nHQW '^e-nhi}D9z"znKRe,hAׄ,"h{:ie'&$S}-b3u ZZx H-m9E:Ut:tN̐5F˵k|%V ~UѭϪ1+ɊgD'H`ĘN=TKS׫ ]Rqd*Vr7$_}b *Y/t.dc:12AL[x&ujRONe0*NLuw?1??ʕ@} =.}9#:)] aI;fM/hU~yEcwߛvߺ{ow̧߮LJo[G;uE$Dȉ'gs?ޖOnmW&?|NC;ct?hV?|rugm_?2p!2MQS1+j59y35Y)ӧNMSz DSөh8ک|Scw*xvcگkxmLB^ϫ9 k-'FԫiyD[̵Ln5euR<[tsQPQch̬gu-Woqϟ MΟ {"Zɑ=w{5$>$֠K9$%g #xI3nuj\ BhjŠ{͈{U(ѥ=*(^o?k 2FɂEuquۤVfDŅڋ9N&^ΫV-5*I3yy78*;D*Q~#K$L^| QL9~p^h~@_Zy^m=zsju<$3l32-gfSu4(Vm&QhރRN="j= ]Bk9iŬ9ALb?QejZqj;3y{Vc k5FZ3 6P 'hl>`f;lQ#5V$x 9Np :e`w^7vI__FyKQWn1 vx)ꪨe}4@G~{Ios=/E_RΐpM)j2%SAS5ۏwNM>ΩuOBllLIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source/figures/nautilus.png0000644000000000000000000031444411534217015020411 0ustar00rootrootPNG  IHDRJGsRGBbKGD pHYs  tIMEuE IDATx]g`U>lM!@!&R^;"6@]AQ{ ׆X@RCB&Ǵ;[B"!fgggv= iҤI&MZ };cT.02$"D"F`"E4?Q xZ'GD@`8"u61/8ƘH&M4iGn:'ٵ,cFG:/T%ҤI&MZ'%!" 2$L2anQј~:ʆEAT c^4'1dhAqd'Y ^@b/M4iҤҫow7! @c-iNqpqj CiӞxMgZx?N"ApTbCnrkD\0a/(?>[/ r%$ҎN@woߴe%k䘞 CA.U/( U l$jI VqӑBdq;_~"r=!95H7!cpkđQPXGr΃΂ܗiF[d܏TT %7o5&Zxt[Ia~m 5cAdX,BN39ki+|ABAJ!QE tğ_zf5c˞yEҽyx]ؼ%<2OFE]]Z'&vZ߱1Z$ áp"VJ*JˊK+J[e߿?Z " DSo%)z\ 99%\$CV$,kGD@+" Tz_R^wѢE(̘;gqnkwp?ޛŁB+g~r$$ҎZ@8Ã2/?X7N(|*r3 N`d /&~1ܙhlg;7r)j"XpOymPªciYMu@V>;l޻Fp >ue奧tLgH%OYD4zX9@+ 宓QE[x<1痀JJ@#{<@ȝ4A."%+01 l'> sYFJ@b[(/ԹM)Y\Ӵ@( 7xznӾwuSꐻc 0\^].Dó~(q rvٱoSNVN ]K箙3p( (o'b:7Vd@_1臕c^sĥT X܂@xjGٻoC s6Ir%K#Vc/o9@ݻ5,oӈ)1mmڷ=רaZs۽yۆ~-粿 h(SX/^_v]; -JJ@3|׬)df23Q,q'2 "3Sq*&8MWCuV^Z _@;)0D\/&=kȉ/[ҕO1+fnڕIFMԬsy-EvѲyc7oߏoRՕ#ްqC۷h'K^\mQ4DUdunڤ醭'2RTRWZW[jVX{zylJ?.(ȷD+=sQEQ@( 9}AQEQ, ox㑅r, آPq*-8Eb5 hwSDGr-3׬=kk܋#lp8N(*9Go&tbucrUH[;^0^ѭ1ׯyųspmR=Գ~cZIqDiiiӦͼ˭l߶S)ʾYqzFJ)^=uk UҲM.|g#(xK`G ^P5@F Ҳߗ5nm2J@3Z7{E+s E%|ytwkQaɪMEuJ~KWm>ͺS읗?q-_vCk0꽏niGvc~{M'-Seŵ(<7m~9p@~ys^ ;vj[Ig_~ZDE{Esb0.!!3v,Z`,~'3>DFΐCdYc^HI?+Uk=3#:l^dȴ,%?u?szam|h7 uIo^8}\k4Toi)s; g rTwݺuhra=.̮Ooؽ#7~JZzzfLΩ,(+޶/Ei8;tD"F*C ia P4GC]t@0=N&Y|Æ_\4 aiHF} 0@߫hH\))<pߣS}>ED"1Ƥ#R: U|~u)i?de ˎ7u|n<1ON=i]fk _ୣ;vLZJj$LKK}`Wt\ @;T p5 Edh/Ø!ٳ(Qz>ńc~cՔ%c0jY ~ws5yߥkpmϮ9̻/^3- [[Sş<2&\0\UեZB|NoӼ=9m[s׺V L|m6޷۰-ZԩS'%%^hP{E GPAU] SӴIV8[nNozx<M$Ptg v\G^DOkƅ!ѭQte qA+T^uE N?%S=YCƍ@i5CMORQ@SGJWj)c=C~{)S|uդo: NϽtо}O$0cAR] ""2~k*F*Y28jrNf0n=`\AxKxBf8`> kb D.H҆2}ty]nq!%Tn6\(ȘEQ ž{ի??MvNFFFv`0XQQ v{<nRU$/ F+s+)*sP8o#z.+%%EzFhlυ@lD FOv{]Djf#hpf6LlDF`ԄV.Ck//Ō.y~[x`m hᲗ>k8u~Sn lhT8c51DNcsMjIO`dpmۑDdhxղes]Wnˢ: 6g³Nw%p2Uyځс~֫[7 ˳l߶knVzP!X,;zUD@EQUUay<^ Vdff-XACEq (2 )^/PBJSHAZuM>x)̗^[td*E4lʦ3{d1Wm1QN a"6Mab8u"Q1 ;YE Į'M ҏc'0D5.qkZ;OfG58FڹǏh7K!oyfj˜_U)~Ƙߗot8INP,45k1PYda8V\JZzj6Z4o)ԘzuZ NK '|O} |e<~M|xb>'z޼}HaV>JY\b VYQ11=$ ֩eH":$kUAQ)k%)h[Ku׽u&fϝd[6Jx7ԗ^>^MD-&Κ31F^jԤS"/W{P2뇹FUZy@AS6mr|(G(skot4kNfXw{)/2!4%[ABLW\`z若PeJt^! 4E`t ̟efM_r0K<s Llb=%4"@EQUUt"Xfݻo޴yϞM4.=TmwQ#ׯZ`@Ф%,Ŭ=V K`bQtƣAEFAjG&lgWߌjy=H(&Z5HNWGvBTȘ2SFZR\~<::#*Dht^^M7nEz4 h4@ @e}A҉ $-Y(=otHˀl9!$HBm{^p 1YVod:E  sLBĞI[ &ZR<h߭ C18rn;OOOo83''iV͚޽Kt~JCN=뢇CCxU HSQib43@̐^ƞ _,YJ} V1gZc+'9`\18GA*5 ВS_ڹSE1}>A|(n9ڇss^cF㣛{RI=4<{&=TNG1vA|+7c,C !9$aPʼG6QLHs*CpcLLQ&O}};tl8״YYgM{LzdP9~Pa  BaV|.RBgd(WKWEVW;kc-|%pg_N_R&ܝ:ztyph1~;q~#PEŁS_;N9yJJКF[߁?4sW!]n {{s];{[:D*M~ Gۯ3K*@#.=TNGH#0 q'8 =A@BxU`Y64%f,'"IILHJuIɭ+KQrzG[H9>77:OӽN*ɇP{Bl"BqI` ߩS% @Ea7Ӻ)SyHS$5P5bhGi\n|U!2pgvo=K❥ ;6v3wň˓)!q=I3AÈ,_E%׉aHEM`2\95>kz^9o>gxw=S~5~ljEI3pvt{?%%PN/,e@1~hMT%wk>=S}$5PԌ6Dݵ7;ÅQgLѫ"+Ez` (SQ29:3 HhJ"KFVQV$.GWJ6 w{_Z*!_Y|F8(|8M]59f@Q@O쾩zeoxcO:S$rʭBSp05Gt)}QT7m ƞЅÎ7#[&?'u.0*cAPn]ZDE26jlCϕD):'r({۟h{h s࡮yQ^7MC{3׵ f 70@1ƕ!C%Pj'3aQ z?Đ1a*EϴH$z\xn׮ JUF`/^EeATimBڹk jo=;|J@Ja֓Qhh=Rx"cTQ_c@8?xae$Tu -.* pF!"hQko[Qf7۴q|KQJ:vh0E*=Tg2#O̎ f%cxYE VMV Am|mLAm'/Ȗծ:VP]NGfBC9k*=褭,Z4*Bض@-yee@Y,*- z]jo֍/\仯@!TZ^a!TR^i O[P\Q\BM8{Wzrӵb  0` "5鑐pCE*_߉'(DT1xF귵1Ǩ "GjJ0I;z<7``嫶77!z\O۶ry7i&4&4Ɨs!fBKh޽B)0B#(52c%R.U1<7&U&V;ZsF8A>,& xc:>!Ҵ+)>tѢ-<ǟ~^7h$ &a>[HIP}~7=TPw3CG%r=*LA`HzM{}'@Ƒ[7 4BGA#DB@q 1[őT HXsĈx9I^kk5 V8cF:ZګPs@d^FH4C!+8P…٭j?صKND"P(GQM$CI@<!0 o\A B+QF/FOA8x̛@@ɥJ*eT%xڏE,Me.kbκCUY-PNL5P$ hTӐ% ~P(T,tP55Ι0P$GPGL1x%c)F22A2L]x1%c!xlbeo+ ҫꜥVpsPX*u*B#/ǚz{!^q٩Ͼz^rx\.Uu@*=TH3uB U%VNVl%XtBN GL(x(UOrmJvP4?.v{=HTӢ`J IDAT6kAa(TRŘN%CI@8Bv caeMֱn/ .@0\DLɒq(&D?s-\p5z-NE#&eǚz%C%УDBJm(g &hMG6^ uP׵F!} ##SU >XH+}I@I@%пrF@Av b]aN\ʖ!5$*(_p]dJU3.by,] DSE~ GƢT*MNG,UA1GآJIg#q0'^DZ0;ڌ.1/W]kqjzA1h"rCwtW>y'rDw %86%Pir=%+ހ2`fY! ]1ZCz}X!@/ɄHP(u.VD"{ȩu MsbnJuje;ŚOFP@E? Tr4&zH*$Rͦcg| e&6*eB!\!5N,bk%0!%% m? ?~ jOxCƕ<}'9!ʙBNW/,T*MNG"O!v3=bՌ+ZE{Q}^Fq"sB]*1WYE:?]&FCTш4t,G"Yڵs yP %BD[g Kv-r~Y|yOGc,B!ιΕvܗYW[ (MJSn'"(V%H YE~3΁ ^lڵ 1 TQ1ŭ 1sM@Zj͛7egADmAuZ-g|6o&mڼ1#n HII3OVgM٭T_t~͹uJ@cJSn4ˑMo_ zdCEulQNfAzhK+ x3 jGa)Үmo,P*~~諸3IӥKƘY@s:|ׁ@ aMÿ ]J&=rJ]M6Cd-@|+7Y$f`^Cv0mc~u͇̇ 6xsr6i4s˖^vz^#4I&PP /0$Bu]A&JT;2zq5Gx,RRKRbz2_񚭧`ވѵ_UvP|sSUv*g+ 4 Tz8a946CO+c0Hh$(fbPG.S>aj.˥7&&&E BP)拖da!gD k2hIsZu:cYMiЬGFQ`'żi;C4iҤI] b̐MzBrtØ~q6 qXp]{5uBb$QI&MI`)1ʉX+*lhTa#+? HE5.h (Yd]#!Eh4Gg0W}LIcN~>"E4iҤI@\!r؁ jW%}E$%fޯCޯ% NP*Ð$rN/^eG<+++x+v&Hz@t笡Nz~s$f[Z 5 qSWFb!fM181l2 ( 2C>z9'"h+Η3"-OiE-$6bH۶WrC>﹭몵+*zL=p&MD#e =Hl4H:(U`ftZ+IaWk=jlZ_x\zir0I^'A--qЙC $4}ё؈ELTBz$"NcChJq8ٸ'Nwg3Rt n}eeee<۾%_?sVVVVv oW LNj5geeu;{/jVUMk};j[nwy>[eeeu`Qmێ#©:<8@,4TYmNsxYY/o>ӿIS^ޝ۶l>W5叠۾ɦhp3:++},Z3NhռX]FHz Ҹ1Lc[J&:!'+++q/,.Ԏҹ uĉj[@@"0&8BprT!oD#!ƀ1 %=H9ULXMsny{p3_-Xti>p%߼0lO10Ͽhj_zw,9y>9ps|XWsWmƟrEyJ{W ڵk}۟^+mкN>QÎIoB_猹]wֺ]Rqؘpz.yOو1= 澽F_f|y piNdƦ~~wVf>0?`(is~Yx;;~ߥ.KVtPZVcec&cyяws67Ξh7O8~G;^B/m[] lZ:oF$,"2+(H㱣[8q;hBAHD !2 ]6v}Gg pq?wR&jXcm7 ֪Y.sɠ&<1sZu~sa0Sשtq&M7KcϾvQvâ^{9 GmnEC:OX={n#xhxCEΉЀǟPOWamYkOۧ[Y5;wm:JUzJ|9ޑ;;v oտ99OHA+W_!1[p$iA[t kd %@: 7HDj Y8qpٜ6_g[4NǜU??iNf=1tC_N|ж-XS#ٻlYaέS@ZOOYolh5,}K kp ʩS0Z~Ttc ՞ zu,*Gk|_1MnbP \ Ǟs5 \}#XPla1e84"5IܙkGQ2O,{Uvm[ vpÛ~{mk~|m.ozR}Кg.>vFM]?/ܰ7@Q ̟rÇu'>=6t봉nAar<&.z7oݵn~lC /uz>vl% ԫz轍DMN{mQ,˅{#@pt9 ՝ Fn77ܱiż{76kW71RuLEEcAbgH #ataFdUUdvd & \zXA} ?OQi|sk>]7uj_E+U'zSw;{7|\&thÏcƄׅL<&P]7=ׂ=֍=Əv.qfh ssOԾˉu%s3Ntkv~Oͨx;ёjڕ~F 8ٛҚgbi6\aLB ;͎թ rN]f1#eg8%)[؈{; 2J}fO+'N˗z-de3#|I=rU;<^޷s76)b̥PQCΌ8 #ҖsŠbrSu"7Cb!V:hB1'!?F?qpʯ@4i5NJ% #47{p4VBYCV6At V3M@1ę@D ĬUO'9 uіg=rDGHRv}hŖ:IJ`eFq,xGBR_B8_Lb_bjB(kQ$(|bQ|d̬4iҤIv)p2xub`m>` (cX1oֺ }cU(3p~G#9ʀ"sI&M#ÈXN2$@2|1`F-Z&&4b$\oLA$Nro[1;ޅփVΑU:(ҤI&MZM&)FcS7&l=l%X11Cc9b]>1\H$Fb&Nb.$94iҤIVu!ĘXD3g C-C$Sja { `g:CAaÅb*bJ,H}kud7"cMִiҤ4c z$Y>&06&Lժo O]* N!rl1"֣Z:(Ҥ~`n@FLT@Q(hz9ZҤI;ngݏ =IKb'F%{@$c*: 0fUsح _z=J((ݢZ?Zyooܱ1]nǶحM!:2IVm͘BUs[P@[q:0GPiJR΂ 0Y86΂b6fĉBYX{MGM\N|8Kiþ߯?RŠLA@ )w.N>v[{HP"˨t?a(%faw'MPiZGiVk(2TPƘb &Έks=B70aC qzƔHMa@W۶Y׏?K^ZBՅLEpH80G:g.~a}ڎCW,-(/LhzLd 63#dC:}X9CI@i3 8ab-pn0U16F0-c7[ 5* $2_|lP_Qakt^kіU1*.DI#=o8V5koǽe^p6|.?}, Ȉ1 q@i^h+pSɱ*MNb9!!ފ"<@S!? ;U**n|nmr eGrjGٹT|Q)opmڳUϻ˽Sז+Y6bkÉA՟ȑ*M[׈;c!Qbc0XCl1ʭ0If8'$*=}\_";!%ZWȰG̳"AΣtn;' \i9?eErjWۯ*٫~nݳo0T9g>?==#)=TP ¹]64 g1Y2M*Λ"&&S!a9Dnu(&ҩ \멎߾b#"uIO |9\KOlH$RZQ`ͻ(Pҽޕl\&ܾ M?%~Bau v#)=T*q6W`+DDHf}W3.r !" Y5$"hě$9,IWMbS1ElbvXtï-I;!GF[@e`r wmM32&e8^9+0P̽{;Hъ yѠc$(Gc IDATRz4 h~q~X@=@I+(;H!U h2} kB ]V[6& .d"x`XHNP\bIϬul3hW>» G[ɨޗKrjyb 6=fkݟLPiЪA$PE8TVTJ+%e%eEIGb]W?:1&| n,d- Ȓ#g)8Ήo c=/)/hQ"Ff8ᒒxoڧ žѫYVE_n-;da JPipb c0S 0ԃ?8bA8!r"&cz z4B{'Ԫ`…?(TNbe5iֹSZy-k>ue奧tLW"Kh+I-^߱rYv: Vύ^,z'`KtHzTOXQM(LoH QMb-iL"S!(Сpؑz ˡ*n[)I^g%AZQ-^Щs!T]24" Bƍ?A^qpݔ:XC״xhK#iSPcڬ/۴o{Qô{ MZe5 W.>=ss\- \΂C4=O ~HzTz!k: &حrHW"XA,Ș6pn^bȎNk"r y[_0Ul\3YDܵeVco޾ߤ~+Gܽa㆖[oAuOzۢh ܴI [?Od4R8䀎??C@DP%X> q?~ۻdહaO0^=l5%xa.xHŁ(UϜ\C 7`q9s|lQq\Wl`}ꈓqW{SnSnUHѻ1'FM6s6)҉9qX`0@F9!.،Qո#AΛؓY.Tt@J}ξ贈3j`$lԬ"xdZR(ۇ\ Fpe(~GZd7@"~oߗ^/?`-cۻ ϧ(J2+q9pChWa:*z}owC fjJh1e SjUZ+:jz{.wVoKC;F=3l廯~>ihw+l]׿qYhwcNo]j̯~Zw۵ISǝ3=|ȫ>6d|p%95"V`3 I(I2I#Q vX%vqA"H07o}ҝsk6S}ʟKdz r}7MXw˗Y6˽;- ׸Ku׭[]v+HMMݟ;r3ꧤg6mRNySNH$9֞ b͝OU[QW=wwuB;z8гU`}ǟy‡M_i +OĜyh(hy[/6l?s4 3CiHF} 0@߫hH\))<pߣS}>ED"1Ƥ֘)H E=).?) 6M׿p=ɩ'kԌ]rQP+)7{` Cw#>!`Ȭ!`bBWv} V91bF_*"y_Mۣs&dm1Օ#n'ͯxU#ﲘ*+~s*^>.PUuoP(--mv-_z4tyouۖܵ$S~#_M6EuIIIz'!ڤ9,c?;aS@n7ȝڝs=vX0n‚i9/sn#?sGf_ÄI0'O[^PKf&x9.?^t?O"s;kص?֨ z^3. gn*+kWF Z̝5+Xp-2nL N;3?|SvƼ^3cʽ_x)jҷ{upeqׅk^:~473⋋XG2F7CCA!*&%މWGqxy)fKwZ<}J5ZWt5Cwf 2Yp{8k@ŝҮS(BAس{OVVVzn +**Bnv}>v\Zz2 !Yt{ RXlB5=+CQE(\Ck~Rŝڹw7j;Kthbm@wݬY6>Ʒ`k 2}Wpex H&و\In Hl .~̆ȕQ@zhM=o:G[rUCV쥩﬏`~!znv䔛TGDDf=ٝ&:̎ fEOʱ0jrm>#k7G!$n]A9iwj3QEvyV&ެ)> W_]k϶R޳bӾDzխ moڵK7/'hǫq:}\jlcU / ji6Gf;&eVm_8>X) l@2Civ9Cʼ>&4*Dz UW4SH!t֣X1fR[ǔZ*zhtW6K'kj (R5ič<^t΄vJ^bpJH>Y "0l k'G{5|i? i7 >X:> ye7ߝ'(OꉗۘH1T?Rm'-vnNo@ =}N,:9=k|ʕmn_;oCғ+N^+P_7G@ ŸK{ctf.u?rs)4ٸ ǧ7ot5zrMNPs #02NVbĔ TFY5NVI#&f?0fm:q?7f\3UIRIJ;D@}ʻg5@aTz4@H?P/v5kbq$\_;1"ʡa}G`9,/V'ad2b9R P%d>[13M*هnlyvhigp.xZ{|䅬w_aW޻q /y%wQT];[ @57 *M)~{U@P Z@PAQ(*JE^B'mǔ3;Ia緄3{syΧPC# 9H VRHQ:P 9>,ZsPDČI;c%OD"͏}?'>;ak8=7 SrOѷvqׄwYJ Pa(esm>;+yw#E|Vcf*?uU5}17zjة9[ZYij @Ec 0-! d  " "bdϹeG0"RpM~S&Qdڣ|ͱujkY|'ˌED®Pp|mvL}8e6BTa eD8" @E|vD1jf߉~ @QP4Q DB ĵPN e1p.B84fs*8zN3.:Nۚsj_/ze5X;% &GJЃ縫Be_sq dYƋy/"#2De T;wnSh,WqlɖK'ٹHAwu/!iÒVd0Š@]zˍjJZp!;mRl)j6^A~Kt%>Z C_L`*=4 #d j:!0LIDmE%-HkG@piAd6 V1"U z3hjG q"aPaWTe_4xsQ 6냯zWoc2|-=(/c$N6'w$!-@J5b:4̈́%o A S 90)XT-T$F1UCQ#4dspHIV)bj BM7Ke BCLƣ5R6 aZ^F@*@4~PCP_J%t}Z97@`pWR;,:F9 ׄ$zT5 +?r M3/ɨl7y2JZi^z0ƌs=Lf%P9Q1aG&}b} H.QˣsL "3P"?caAs @/pO[IN&X[]:ncou'uVXŝ:tv ㇷ %0~^DS`硬8PH:Lj׃Fgcp1CVP+eq"aPaW(]ђzeGKBfqI~+;b$dh${<^rDGِ9r("" @EYvd UMMhYY)DƢlfbEf^eWV0@F &3@3}xM̎,*ŀ><߶k9fg/rP?KnL9fg_с}NYtj9=S.8S*zh$64 4,<.H|I``b"$Zl¹Oc(0Z)g U|>$^®P)obPp9@tb]hGbP.;D,{VYDmDgA*zD@21Tx Y6݁ .0Ic;GUcETC *bJ +cq:7tU \.H+Q٪#lrFl;QP YʥU \!򒲖y%a^ 9š5ma㉄ @ @ЛfZR -$!Np ?capd:T:8]^'U2!zK>U )Qvti @ @JS֒ % Qa3g dɈRfx'M$.$i*5~B;^ j^*L*Lz=Vz`)ՏXD IyIvZpѦ/AS<(Ze14X߃ D?(_H@">UTT*!*d)4~Z$ DkdtXqµ}M8cj4![I"&DŽQ*L*LzS ! #`BjChOPCʬ8Q҃ 昶朓Erkz rֈ\46lQv+:pPf )EtI9.I|>f]G*GW2!~lxa)5oA\ALCI)yh顉?Jfffjj&S>˩7qx*k@K{#;$_۝d#׍An f|{R-APl3cz=E3c,--v˲,:TU%YJA$@Es|*aր$ ƿH֜A  EG,^a3T\yD¯}۩G-?]яVX`a (#2cLYPa9=J @EdgW*>T 3p\L,D g206d~KY 1&IRLLLĊ~Xv%<_FWV3&&Fab  @7Ȳ̔^+ }D_$ -8fs:KHH,^qӖQQQ#Ol٨(IGLLL6EiΔ9p8DրTT*H-a)SAF&I OJw 3nb  FA P @~ eyIX;QLɘ\)k)-9C0a„ ,E h,Xk:GtǍy?iE!Cߴ5(„ &LX a!Gl)|2/|H(„ &Lap SJ"Glpr!٦!G"5&corYt =-ރ4.м$ <0Wt\hKO{r7&,džV&0d "Y Z;1xG8\{9XP*p"1oQ9ϵY$g IDATiQuMͣA.6Hٍ sOTvg S Y~e@2* D0h!pp<&KeQ"zL}#ߺOC<{`봛ۜ?xN*R&,%X=sj΅tIUX]50ԷFĬBQw4zP)uewiP6..jˑ (eY9CM{rѯm'f:Jx|$/dR2OS7vX}t4k}#>YEK^&xӸt)MڨRBCS+khRqqqqcFfcV|덛iqweK{UhSR`>l5||]8{*v-[6,y꟯=;4m4xW⾎O&ulYt߱Z_v7yt XXZ~ZF,d`2J 䠺d9+Q/1]#g5|w7:/d<_wm욷Gv\J2m7&o`oڤ\u=]^mգì­_۠l^`F,g'ߚ~lOd("9](4; ,яk /ѻsw~7@V mR LsU{n`5mcǯvV;?tzLۚ_mc_uK眍uzcU]nܤVX bWp_X)qDhA! h UIxA4 M Q%t4RԂ0#-=8&EWhZ6WX̡rKYӑJ}cFC]wRCh49B6TvT*r|yNd/vw]y07H%j6~7Mfɛf45{ΫQ-R|h04Q}vcYr|XI;>Sy-|>ڮu21LX)wYbr'e:[oBd ^9ZNsmK+aъL\$X|g=ꫠש|2cI7ȑK>(츓V46߫ \M-MwM>f9w rentCYs}6tOG~nN0UV2uV ՏB&0+"HZ 0u&Kc uf@Mt#V%y£?&p- {o>/[=mee^(Xl`4]LWW_:|"MGqM3OftCag뚳Y&19pō,&wc[DZ4C4 nuI\,Xl9ІԆ̶m+'c>upغSO ]s٧%A~/z֭Cuz l+64h yŢ3BX[s DPS`N$d2Ā2@ QyÅ҅yR d4 )4Jy{y"' "[Ql%Znt~/deZ:yQb[x*O{M^Ivtҫ ?Io_t6>mOr7nς{Ӊ-n@hѫa''7^ ZkYw>>[tKi>†C4{x''AwCnڻBYo 9qYϿVs(oA_^k4u_gzԈ &hRN{,7cl%Znpe$%Z1ig.)Us.xepeM:sȟWrQJuO4ɲBXH&CjNNj!ccCCd !a#p4CՙCڬQQ߁Lt*hMx'ضُVXa55p1Vɔs{[;ƫn@[~Wi\I3lXU'@̽/a e+5=Ǩ^9 _7L0a!>rpNfk8bx/?|O _Zjo 5 -&2ihl)mut2)Ĭ/ݳ{B GWM?{MߚС+VѸ߆['K4Egu e$%Xb ݘq)5_v>r>v˕kkr`:0&M 9ZڎLh"MWP´;]* f<2Q &Lی j9Rb)FY/-EK:j]? 0 !G&L0annCD=9'w$KzXsr?1&L0aL@D@LUc{ D \M ̥PǔӢQN*80a„ 9J@VD50oaW/}4E3 \(jTp0KE0a„ $E((L2CIIT98f`0lG0MQ|-K'S\92RqtQ &LB;Qy gN2rZ1 ދG&L0ar1 è3 1ɚN>h9uz12S"qIm=(j>םsx$ØT!=(_aGWITTz1%@%_9"B&E5YR 2~L\JŐ] I/|AXTt4Nͻ=Ty]~?'Hضr8-&&vk]G8^Ewp`U+i)V^SsIb(1!"0II!fJAճ*&/1%ԊUnWk CuUs-eGɱ}zK}l3~)IɆLBE~dǪ__M~oh40;k$qH蔘]bv6 l' c ":߂0,^18sMHS]T:C;rj'ke=v_%;lDדd?ؠ[)Z~b+tPaPaЫ0Ui  DT\&!$ӔIL@ͭA]^6]T}K "` %&ؤc{Nl?6'cJ6(%$?! 3N׌kQ=u>O8"@O*L*LzUUaQ>!2#ɤHbnY 0 Cz@P%;/MTn۲g=/Z׽U&ˀIl(9$c"%O!oT{sHQ'ZO*L*LzAQ'k_'MSt8zd%,4y|g)mcT eQrdQP}'^ #j-:}|E3JzkzPaPaЫs :RKY丈PIU(2"iƐ11!SWLD$J`Gp}-xbL Dp^3[ƛ)>j_/1,*2Rh=00]udHBR$_}9ATbtp¹w9&Qr`hV#'d``W}?}Õej\zW2.>ב'D @ @ @*ePy=f)5ti|h $Qau7|6&8JNm=nO2vwSz ؘcԃ_{ʲy~Y@bPn000hL@Fh Ff^`  eG!-LAu1(dUc*M93s`K>{D²d,~agZZG~}}ys&DuE @ @ @ƍܩeP|#D2&C|`)fRJd Ro1^YDRP@Ԝ+J+LW@6EPՕG&8%|#G~/y2SHx<)))?b򊮗.F]rvD @ @ @h8 O@RdټV'&zsb ",[1-(D\OFfo|6\둁d%1Wd*բ\PL_\çw2Z?5#5dYz_m}{ɖ>,3*G 7PaP* UPBT;0 pes(A;âYl RQ6oTjfŊõU)in۝yo}UNĄu+?X0+gU: ޚ))W{嵟-}$!D3W)#F@0TzYK"a8\Oh$ %YCDG9}L,uJȰ'^'XĀsO3gOs5ԬYHz0?1 ?s:מS[HOE;Gz}P՚Y^Q* +Pb5 $0^r&D5}"*d?"$g}Gck4i/./) 7 ~IԪug6x2=[e+&Vm>7)[fg+WD1weN%OC;}Yr[mߙ\zxUG|ؓ=4*g\NK7w/2.2R}aZrkVu򅴴4 v)PrïM|8##rIӼpa:+=ۋۥس_ Ntf\|_e0Pk=^=4giK汨z)eǢW͝մC'ʥUWb޷p}ʦ~}y~ @?%ĕ1Dd Կ 47zfW"?93\~o񋓞t6ddĸӧ=_d\7ޚcyo@Arh'#E$m.'GGI~Cp$ʎhrI~KvcL7רy7cH } F&2 6;t4yCTKlcTbOZ6O7{WK;y|rcs$tyJz ܔ!?~Ve:[Ѣ lmOMKsyKPa_Z>X*<Ɇ)#@W/QQK*?(v5,C_u/Ov~{ԟwh! %ED g1-fiU5-ZϏyt\Sl.|{ȺS͟m1r=iЩf>+zh.qOE ׼o/$?ѹ,qBʠ #yA"9t]CD\aG{Ķ3cL %^8p$#r\+>h+*Pn'555-=\ǎ^Fttn~S6VH"nNzRP.Ny/H5)p\Q_O'z-S}Qy4m{1 IDATҕʌ1VCCz _L"!ECfsrJQQ{pEE)y>TrIQM&%[o+3j4.oJىbBE\{܁>cΎ7a˾z겦8-͏XGK=73 Re(1mED3Ƣ]yn&Oq‹&lV0a=d~C,d}G=>`*Հ:fXٳcE[k;lRl _%щM w{3@sIڃazh 2:p7f!Zbrn%@d#C<+y@Q.o{}k4ߩo\)uicC,NQtIb:؈D7: ~1_V<yj d4wfrzo,?1JwWEJ @@Ddk\CEvAcV7j_%IF@X9۔LPHsx0MhR8M:;P3}BA#ڏHO%@@~'$c8)"F9DT0P4Y%~e+De3$ʬQ S4B+= }?`Df^*"x:OZܘk u,JL[ (iO d  @Ј$)PwU"Q8Xĸ puuߖbTL1S%FX4 OQi1)zIc(&ѽnVJP6]`@݇W-ݙBkYNVs@7 ^VE^yb,ejȴ)ᦵ)0 :&9C aw4 ?XT{= LpFus^mjgЫhg@%7"#C]L%pT1+9&CF1N6([x6JY٨csC)հw1s5}m'IOc.ժH|:TPa7m/~OԽ)xil;s?8v#:^/3Q\_{}=ԂVʰư*ED_H/1gh$|P Q0 x܈;#_m@MZωNؚrύ{”Sw5a|o4 -SLԂ}P fe -i=&}1; @EvCz(S_}Ҧ^7ԥicNl I骾Vcf*̀/ᄆ% اcА.+ҫMeU}U8]5 zafޅB]a"4КE\k^͂yVoxT|o,344d>h`B-y,Ӯ_q|UQ^l': $%N*zCg[6\.Y*)ck%|_)R9J'H^m5Z]ː=&ʹNG\1ӘͩL9ˮWJĞS8mkbϩ]}e,땱k|cef?_.Qͤ@*l{{ɱ>p?x9%O *zj&l*sJ^׬aHP8g ׹L#&s=b5/ӛ:,oKcZ jO_n2ȡg&A %C_X~J=AF> :~ @Ev;hN?tyckLX+6+ư42mؽyhN@ߡ@*CC~#PG X z3]Bw4LʦX0.DK cnQ˜]t@V $: 1FU=֟>=_dL7?o?i3|ѪJ &Nᱢf?`|DL)E&s=Dzd 7]ED0*@E&8 Sg8Q=3;!|$J|#hA5UZ$ %~ "z00\]/yQzCn,' 9,YCRCt7̉wiJ1ސ&ϫךoejf=U*Y%J>eOVɘlD h])=far@º]Σw9~hnR+ȲePbWN$zЍ%L2)4/9~X @7%z;fw^IZ<\aޔ43=9ݡ,T !7*:שw ?X~;լs i;~bwӽ%/^ ^=MJu5kBiMPhTtB@@`֌\~dQ ign߰BZ, ˝FU+;˷_- 号z1 Bo}%+Sf4Bm^ =")UN$zЍ(0cL#)*^vIl1.IY9]xeCPz,FkʭN #Z'$G5w 2i&H$k$ej#3r&nKYpM4\ (}x=?fs!{oBkuEhsj(Y7"cp]ns{(v{^-zuoSe'׼_o/ot9Ɏ(l1ϷZKǒ>Szt`&SZvϔ C.L\ii"=Q'ǖ;V!ىAM(zյ3G9zz*r[uW|ފ$D磻UcQ6Q2w-]!@PSB.7&{(^x= ;SBP0rp>_pD $I_)V<+D,v.; ŋAgOtPYeQv1|`#"Tz9 !gO3 :@̎rT݉+YV9B6?HG=Q!3|#Ra>z w~9_BINPVUr9M wxa5 fdDy< у;AQ؉BP$I>O@(9\<6T٪ z0C)^Ps.jX u.Kp:+E6ן(drK0`օU"v e/4޿Zi = >QHz>Oyo)PǓԐYsݖxENl6I|^CDYF@QND ro&@Y q.R9@^p0+"@אNa2ˑ5ÕS2ղ02˥hj_wu[h0AYZeM8Qs;~ ,ˈ '[OVLðH(,jPw4Yb$QxN-1v0t1dQH Xl uHU%U7{h0kRC@ DV^^+IZ1شhŃDA X9N@# '~r)9>O$Y$DO!B^̤DwZpeБ!dr CnX chrףT4= " 葄, !B V>`V2x/~dSegŐ{'jph|Px{T (G bUWxmdàh1ִnN>ڟ-<Ьy惾!d% @)LYG}I4xG6 ?§LYP@G 1fW4==(ikC@hZ Sap#N0(J&e = $d,0'qnf fG-K=5qxgCV-َ@Y11)z=Ÿ?^-^e<5i_`2'#ˤS rvYb$1%z2@YQ{3#K^DXg`AYΑ9&`x^^'wjq?[5 -pEG;84h6.]A8Z@ݧ*W/,!y/D =„z͊KD֐KoĐkQԙefGu6)<$(H2!Zpt&k)wn 8Xm ɠ"1>K(_u]h2XdGG%333##C"zͩ՚(lCS+UX"Ҕi,ߨ|4/t\@ RSS].Tb%0(hovI?윒3njժYBym֮Pnڔ[ 6n#uҁ2: CQ|h1(> +rj$@l( Y713 .7UV.o!)k̠FnwJJ* H@ucG읲iF!џn {6P賤WC7޷iz"XZZcn3Pui J*< zFz H tcyY%9@6y:C%SHib-eCģ(Qiiiy?|Pr QnwtG?Z `e k:|@iii111, ŕ|h(@JUcXRbJӧ֯Z٪M{gS!c{Ojgvohϩ]^+"{ߎX C ^b';\v~;b{67C|t{B܈~N~?gݢˇ0?7{΁3jsdמkS~_fe3|;ٰns=:^\O1QmL0V,@ÐlʒV'W" Z7Eά7Ĩ!M"eع d^p\>7?q%*~>5ÙG7Kx\&J~fy5[4iL'\< dܑVΫs:`(;A(щM+:V=;a|A(ŒwnC,²U+6"XKN>.hD *J6)Ȋa _#?H20| CA :W0j,,4PKp${eraf\ ven\Ҭ?l('Jf 2 Þs vy=iI^ʦ1S~B-s A͂dHV $dJi娼hw!E!OQ(Tdbtwoֿbt֓aOg`ղ?ٺܶ[cLϦw~Kx&H=0xvww㈛ ]y ^v-s=z@1K9*ĕj A@JR0H;֣T2ų)s˲3oONzVy(ty=y}6n?r$)S(rm9EA]шuLgKJŞxw{vOhӤ~~D?7wjQfy}`N*6S> ],e_T-{OE)k 2xR OA=H1Y>UJ"ɜU0 ‹N ͥ~}s/uF|K|G?|E6]~ :dS7v/fwE6Ҳ^(%lu֗Y?r~?JtL`I(l a[_u>墮.f6ryڭדLs=D$ѷV{3Ǐ0;acv9$Khc IDATĐIL&_6PQ#'LȚd! ]eGJCFMQXFuߍUz`C3|ݝ?}7Z) z|'+˿KxN$ o1^8@ c S@^7+\%E;EMXM %Q q" {[o޵~ٸ-G||qS>ܵQRq%+?2b1e9寏4W~׿?e&J:|71$UnkΖ~E\Y\5,WeȦ} ;$&vXӲL^^6%]!yob &YӡWcK/ur=AQK\bOҩ[RjMʗ*WeȖ1m916KzaCfS#D #ȄVI!1o2Gn?'x҆@bo/s/c|as2Ϭq֊/~q9S?y.5w/WI:WM T~ [;Յ]}}}p/c++ȉ'vlTxm^N=țZoڭ^rY,\6虩{co/#}<^E\ 2{%.Rk> 2mg};:ўCǎiccVES@cZ4rZD$2"!H2Ѫp2!a@.G,>i$F'4w,G=;KWm9oS֯mPĎQe[߶s [ok7}rz exa֨>S%yZ6Iq9O_{ָKW}xȴ%ߘ,[ܓoMj~V'("B,|1O,]zW/k޲*pP c{J:o#c =d]>Y NBߙ([$Y& r>j`-xFw\!Z+~(;caQe%:пN2`RQc_IXO<$e{΃)@*Q&PU:+f+ K ]j;wk5kcJ`h+*pP S?zkrtzdX>ؐCqhIto`Z)AhJNjtJv!soWŷeCIRdchf|h:|e=nߑ#|PXIvL U"&-͏c Ţc(9dd&5؀NU\؉9oùGqM3#xQCG\x:ao=m[r L_,]|&1|q!K?X&GIPs( do(ӊl"+" 0 f!2]!iUAۏJ0Wt|i/~~*윙x~z>m^֠?c)Ո4>thO'`띮O//?|ROaХo6?2yG?DN{4(XT7-8W/o-:z,pw6O M/: O,ҢA*s}֟j9<ӜȺ®*~Mk*97vNm8He\^TW_ڽ]"s<3U7!ӓДFF0a|C xZO0Fi 51P~@zalEaQp[%.eaG! tpwsuuW^ *8>z`o| <ٺh)OOUKw~Ě.٫N:`=tI娫`nY⳴G_+zŽycUWlɃ^gg\3*Wgguam27 Yz׻hsn6ܑ!& $eO:0ɥvGg=¤~8Ixb,R4(::Wh?t @Ӳ/Ӕȃ\"@8L :8+r EHPIds%h q! O(qD*fl-&y]j>r)9\g<w4f]`YqX2F tN;gd0bB_iЂ'3NѤagþ8ϜUO(pFgϚ#ޟĊMko-Ӭ¥#<}V FPwM^{4t.j9BY012^޳x<= 7\ PHVåso5amY0aO8Tz\r&jK׏|oG! q=2'mkqZ*zx 0xy:zC_Tɴi8'*n\kJ.m`KdL&84O])tuMA}497{?>|FXu+; yfu[BD&FdׇԫH^T F7{}jţޞwl)Cv3u#!9S~|1@cھ^S&9 )-};Ϧ3FN?q =Sj\f?wOΝW$R)$ƈ0eSkcHϚ21g!zkֹQ%<0dFe9 !be0A\ؤX@KO';j5wP42t`LY]rx[o>@l2p%MXձ[z2>ӵ:̰h6X;tcU˸ksU!~>>bʰ`{v=~r Sȭ`nف.%j&s֌bZ:+j{w8k+X˹+µ'(T/pe* /[ye ~LU5)G)B|NA<}|NC<~L Ͳ.9o"h4Aw2G!h>yJSRW9UF4%tɜ:QAޜ7FʓZyD[%+"A.o44Z EN1AE۶!~~,k` !mXpQdz) A,0"P|/RYEcjZ wήe :mb9+d'%>f3bē?x3Yޜ_*} (XXXXXX:\{kM{'ȹ~yQ̞M #ϡZRF_2o$(h\ޘ!Ƞ.BX/! exT z kgF|\-m&Y! @yJJwŬm4) 5tCg˽].-G7P̥$F݊;$Eudz4oJ!3EJ@@@*c :[TVRk1*ɎE$pq5 V«jxty *Gb(HPYE6J Ƅsħ>q@mk{?CNsnED=zzcۉ~lv^A7U#>wv+Ak4%K2ȸC!jGS7ita * ]1{\ypvl? 2ۥރ 9_(0ru6xQT[6S#% ohWT@<%9qr,iNQ S \KA B p|t9MZ)_ޥ, ~ ;O8Jg1Ǹˎ FI7S{K Fy3c-FJ@@@8p:vye }^0*HCJs}S-y2Бp$F1rLSTIwF8C7~zP`h!%ij`Tn-oY{ֶiՕ<:"P0kՁ+ qbZyCiD  ER~?CLM-jꞌ~|JGji (}#(@1pe ļCG;0` b*jQ8-w1HS #ee?`1T(jd̟4viEш Zh!B4,m1mO㙊%(AMa'_~4eYV,oЍZ7r-1B(Ŀ 0  3[>97r,˲>GaY 1%,a99R4۾YIi6;/o*:µ+ڶb&_:1NRbyzDmP!%ZeYc92"8UQ<{вAt@ |6u 4`q~A^cn\ztDP{y7)yu(j5TԌϓף0*= pcUTna8~9NMƿ# p 0(Wب"<΁1F*(ob,BW*%ba> (v*)_.r|4EN4#(+xR%PQaZɱc ]G6u.oG5\.qIזٚ b*#WՌk) pr((R1 B3P(y @F!)4{48.m615Cq4;B!ZOEN&aε,]^ҥX8ff5%Oՠ2@a,[}#(UQ\j{gf?P9r9Hfg2g7w^\`!͐?w+**^QɋԌدQ@bT:P(8UX祃08X(* M)#&2iTDMZj$@hQ*^Nߋ0Y*`~8R%?L7VT ̃7RP8Yz~ݱ @ >hOP 3ԅxGtg!&tM&ԛۍ:]CKoY25nwmËݳFqB~ʅY/T (L/K׵񁋛{'f.H7GJ@AZǨ9d,y,wZe_vd2z,[$/TJɓ؃7n˳nSvV&3ݥ)0e7F?Q/~{! ) _W2|JU3+ IDAT֓Һ},s: vu_&֘Q/2޻yKqz^̤XLшs _~y'&= sH$JL[}$ijD"7蜬$ä qc9,2"O=js,B'-by'_( /{M -L^!輪& UA!|s _Ħ1ަBԴOw/@εnftyήaei45^%W# 7FB:&q 14" b<=oPh`GaY㰚eU*ekɧٶK (qmZg6o=x&~1hL/7={C"n;n eQ=El;v2Uܺnnm?~2(x]r)uPUD\3hRyzC=s_ #c:++ç#;~ԫ\.H$UbDo>M@q9`Ic,jɟlX8fhC`%U1 '460%4˨T@bDiaTXhbDI$40 '26H$40 J(hıP ]ޝ|nSoՑ)6&fv r 'gеn0&q%;y1(BPˈ1XSٚG4 DҎ_QAVO1*1 ƍf W$@Ha(6Ѕ23.@ ܸuPT{թs΍y|ܭ?'LM{NL#^&&&b(Q@ߡ  &x܄x0 9X ucdjomOu7`ZB m֠)n.kCADFPk$WPM4-ҟKRkkY/<=--- $c,D"D"DBP X]Q~zm!$MZn^ﶏMh3W÷PӃͤnf[g&z6_I##G j=~@״?%P:E͠bJo)2Kh,XlmeT =%'6DZ]\gm8l<~ <*.yg]fuгG'a `yvseo/+2S6q39e+׽%dx]xAZ$0) 8B6[[W-ߣ<;cV(<Ě~~̥YObKB"5qGZiG51{ >WE4E &EKLoߺIhu")U6f^=_O9եh;)U`ou1Q[>E!ow3cBF(?k׎&6&KtiR;AQ-`ʎs/z˺z{g-oU?'ؿ~C*љ-_ltj i FFtD_cрr!M9oLM0"NL67W@w@wk3 &>n66lw3h/Xk' }߭v.D1WbCjOG1p wݩ * 2-oww ,1]&oϺץ ~b\ n|i6!\oNKy-bZh'dU̻xNn.Bu'0G j)sʼۍ[Pφ_V{|C4q0 ˥<ݿttf|4˿y\Tyơg*E)]|2Y);`UmZ4u]cqy`.E*s:cu&^-,K˽ybT l:x4MrYsQ82R<~WV/* H(VYsrcuO}3cOt7,ng2ΈOH٪Z3L9Η6cMLES||C{]]cusE~&*-"[DGRTWNKKDnGF%Ɔ 5x*D+u4Ts}?]g_9Kꡓsf^_Jg cN!#I y™دؠe{n=ua <޸^y1}VQCD\za; 練0q'x|3~`Uۭ=qzKߐG&z9rr}~rI8ʇ4,]`VxAQ4q ~47i?F}&6keXi4t4" \IWj״ip}Wkž[;'9V^dުcm^+I)Nm׀˚MU `,@Sfջy>5vt0w;2*]haxX1NRu)rd;;؄싓Kƭ?/t)wϢj5je\xzE ͋.|f_!"x&)]!uu:~d@0b@w'', ):gB9B$vyxyW,:w \>W??ጰϊE5t L߶/*553>JGݱw-4!!ʞ|#Xt_c.TXzf4E Ey@Ewʮx@1 Y~w>gL^[1TyY8HL:2QԼ<֕b V FvNCcg|w#N}l]%Hʿ55zW㒑f$[?bּB%0EV`P.vo"'eN-!oSdε:ZaA|woqwO?ΫW![[ٔF+]OT$jZkJ#v i`T\^W }fv$qǟrNݪQ tiC7 Y:+9奍sl֬FC"֮k&Fd9JJyLshʺ^nWn r!VBMjޏϓseqfڮ҈eݭQɱdkK߼#MO s TԷ]гVl oqo~GQ YN{裴w3NE\XmײFM0Ɣժ [VJMܭu~=4, $4ۘx#D'54嗈ɣ6[sRuhm U܃[\z8om{Xq0WaQ=x@ESSeENgHצ4^Ђ uN]:rGS<$zVyPtmF!L7_Uۯ R>4c:u^o1DQQorD0S9.[v3xԧzoHdn|3tM ^ %I6Lq#%ŀwbAZ?SǙWY7r>Jdc@#NZE N͂RwcV6ʝ6t ȬQ̸WW*fS$-:곂oűboKh%8+ى/ sgG*[Jl=ݭ_eIy8#O0eDJlisޒ^5.݆gGZc{h@.}~9v[ )w\mxDN͛'n$'3׳J̐.6`޶8q.}(l}d(ؕ pѓ VT8icSR0wo: TuN7n$$Gqʏ=~h\9kփԙc"񙰬@yRqiiQ˦ Ҙ.hF56vŪЫ輮v,5#Py߷ݞ0LlcINZ~/T.ͺ ]<1y]}?\;,3ki:][ULRl)* OghH*sWHGn/rYIJ 7.K.kl[кjqq~`8KS1ؔ-CG!@eTHyMtDI?Xo; @ t2{JVY>FIps/Xȣ5SU{jON[IHMY{J#:WZ&#vt_н{tآjt7Y@b;SHCPz6r4~(@; <N#O%,ns;-=Yuڕkcϥ`3>oky%{N8U'iǀUXf7k}u&bW0Cm_=R l89fCS9 GF4 P@h=mFھ%گCP sK^dHckEOz2n_|,AѾD=~R'P~MAHRK6׋{ M)c[yNz}[<5zlY[un60!*/+vymuttTsVwȤǚʹIAQ eQ8ءLNu`E}/qЏi":!s(6.BYo!cWn[)+.K)o z|0v mau<'({ލ'zmg=Tr2E5hlo»~9z&J*y9hlo~9|2E~#g)YpGpz_ʹcÙ9(Dݗ4Ǒ6I.^AqrXacKGiY <4̵$0XB#J`"Ya8FXBs*EbD*,2w!CeJlYg6TGaYVV3 RJB."M<:'+#dۛQ{BwfPFЉk%DXix5=ԝRu< 53wJHQsI(kye̽66y@ 鱯,| DA:|NZ_߸Y[39v  Ή%"D`7t:gd,@`v}e$"9ڃ0~iwgxԘI@J@@>M@q<-AM$nzkZC  $^Q[ݜH$! O dMJ@@0(BPGUbѰqmPnm=@NhWѩV7ܿ~*|]bGPrMҎ2ƳG7 ik#aIl"j!]I!* Yn<nYvh~ǻ!P>@xާz[I+JT|=ՍgG5ݗSk~0ڡQ@-EwՋ䕛oz;'mb-YV{i{_9i1WVR/[Jأc3Ӯod3Bbq[B lڿp3k a aBڟ @oժ(yMj//z_ŌTHXe.w2 48"+dʻڏ j`<3\3Ўe\!!1~(7(^ |'Y5n=*oWxsˤA|4]gL(q@?o@vჍ?]8^tk?~$5emԪ&֟iΔo)GxpS-=5}w½ ȳQ=gxU_:hY :զJ\-cX_pAʘpX-Ӗ )|w#@ό/\: v7{w_յ8ǧ'8/y5sEk31kb6^Յqv&ɱ'vNV(.|䋛_NMT⎦_n?@/OXe@ 3L9k| L{ j{C{n&ʓ eKoJwӅӑQW|d;{6+?@9m5Bq[k=%o} y@ 05m\՚k0 z?F}m6W˰&>ؖjE}o|}2k^]{SN~xq?މQM^ь`zsgNk8έxk2j0EL] 卸s#f!Ui [[W%#Gpyc$Rw$)@(bϟ'ajy'們Sh.oAĦ#һ/%`֏nsan"X90#;α3ؿCH}>Aj_UFF 2 F BS&XWFjpP;f歊vĉz~jlRZQB^s8 0z H~8Z g/ #2_@ nCZ"% yĴQcFX2 ^1ejC 1\^ٝZum73"&25֛q}tEΥίR,|=Qɻ".kY62TEһZdّ3Z"ၵ2=U3nCPhȡyOo Żz+((P*O!% )9оpU $,`Z6nw$Z`^fv4i& IDAT`ssY=]m16(d 8^2v;Si{gZX7u~h)hi le83_e8ҿ"LpSym=mJک EV+ʼ<\Ĩx? W@%h0(PTrMJ@ӔIc]_q&-*)'6}׿KD ,-3Z nJv˂_ّ ,-rj A0m8=>>jWY'z1,eVpH[tgoLcޖ2k03U rwwl^rrcFe :іt!A&ªxڦװ0 mX-,,43HLLpw@]AcXZZpGQ颈@ >bRqf)c˶Ni:}jA{!!lt E"q@=.Ÿǽ7 jL0%j;=w9#B ˁ#keʎe+P\R7ST 08)tЉw=&gmh\7OaPC6rrĽk-%>5L1F_-kœGwX˄=7W7333SSS2cej50*JP򢢢=%M}@R!_[v ^ǐgUePd͚~駡nt9-N]\ _S(QR;X,LMMb!(D5ǭY'44r:[_O>T%BcXLӴH$211ŦUEQ@$7"К 6p;}nf]j׏:һd_ m{ߧƹ(\=qT6IW"Yc~٤q)( BG(A@{>E\owt/8`Ly'._`wB >UKw~Ě.٫N:^K1kwޢ^|hU3qՙǛVdž,=Y4b97wȊ Wޓ4o9ܺyFYIK$oISlRb.b7aϝ?_)PpGnX}MxC(bt's#¯nJ3VuzZy |!A <68E@-py#]/?4gy[GDÒq6ԥSvq> Q[YۅKGxNtC?nbi(MyEfOca󦕫b? v_hӨ{MU,"剑&F^$Yl\ԩᝃ:sz{ٶ*Lv폌tbu- 8pHOӁ.fQ8֓Y//m`KdL&84O avT("YΩR%AuDDEҭ”t4@ЕϽ"0w4:6p7E3sTWa;7 cv:c|}}0^'___[[reA۪5BK7o5k—SSv]RWD[߲ :ys;׶$3URmg|L)"w;eDwvmlzG{ytRuyT6\>(cMTW*JexXMH:uRԥ~Y2Ps3#Z-ek*J}^5k@?_(UDZ])ςܤR_YRwBߙ[ߵIfQu]/ujx6 d}~~[z>Uٽ%.-Gvio i07蓄>2pJcEc蘖y;f,>0%5s@}~9v[ )w\mx\53vZlFVB\Py"ϝ;H. ,1W^dd+wUVsN_Y91|_~w)GcR#X_ϴvv䚮 -j8-ixp UwȒ}w[#㗣.[=2c.|sx +IiiikZw ۛ(oó;Z(̘4=Jɟz_W/?s۱2dWv^?}~+YV}gJ4YV8h93i75 m"QoѠa뾫;:KzZ M6=vآKFDQq載A4cٳ- 4`۰]xfac lIG;;LN,I;"o;3Kx#:u˔sĬaޮywk;ȼuԀo::˱ vvv-[|=Ue_-L|9E~lSQV '|{!C>l9F1*BK{vnjtսG` fպψh0oo[Xq'X=z뙈 7k&_T(ˏP'%FD[S8x Cc+|j'>}B?s7" wM˗*c1V q!EM"z7 /meVp5H44M4k׮7o5b4B!˯|>ʺլHyͲSˏrx}&V~n%NdMko0gҮGǍii;M\Q\\\sR4^n> +;$,퉪bI;qhQ y$VPpĴ’ϰL*}[>g ]5 ݄+|bO uSoS [:/V^3k\*WGS@CwsJ7_k)t$d(a]"扡RԳETsPnj}PxiT样ߖJ%v 8 QIiOήryۧ%h3>fۉ) wq%~T_}߭8]etl'$%?<3\T>Z;DŽjAvJ\F֫B5܂VOoIK&oSBbŕc籭 vM_xAJʣ#gEdZY8㢄C.%R촌䏵AQa}DPU78v躍<(هoهv?1\t9j>hmfypolbbbb2~8yAo72^i 1}oq>'z9rr}~GesЃI5v??a7 " kR3W$ݥx;57nCde6Uٙ_N 5k, cqUQ80̸qlmW}3%en;\}MݑBf>n';G&K6KE_ m2 ә^nxT-Uk٣?rMv9 bj.PkG眙?n']K[ ;>(@YLGup$rΝu֒3g>K|-QaKoqq굄2\gƩIy/]pZgN =5@lh7_]&=$>'=§^"u={5G ]).#>o80@hv3:Du֭zzz~ʔRpآSBG,9u%8 ܷ1q %~ d2LAv0z ~|@ |]yK1_ԼCGh"] sڱFT_Z m_jfrGO^Y\JB,zm9p>!Ei7f|ŻMG)LQʴgivy~{Xq'-Y϶oy,EY򣘸@)L= !%>yȘY‡֋$zN/}5iH$l6Q2ڵ+Wzzxm%3? @h*KgGk)Izc֎#iuʲGcGՎ!BC;j::: ߃(+iYF 59;z K aY \q϶4ZZ4Q8B.)U[BYcO X&-z!P6 Qnw~aSGwX5#x<GWA(PA2CWנ֦|,Ny"į)-)JC,Z91*)T* L씈.n˔d?z-/v 3#R%gH<}>G % 4+~:T6na}F, %*o[7:r̄Rs$g*mf-d9@B;E5.miOQX ,CH˜(*oS[lhc⋛ӗfsE~lJ^5VNwbYi[eݗTE+*6@%Uq@%)b3*M!( J`̇EeJ4xLTsХ=U8 LΕJT9am`6! !FܠiUuf 5vEqM\Mэ|kыs3W:vEW],0Ue0.F!cPk$U@ )ʐɋ{QhkSF)C@afvBZ&T}9eVJJJT ;dGB$/7ҡ4Y`IvR=R*%<@SV,-*kZ^$f,:!%݀kfRQ~Ksp-RH`ɉI+37D46֬\i.!}=,cSkdk#ki]i.G.*X} g͵yup 7P\ˠ wUޫc;;Ft=z(UWwJ%a ]aF䭘sL5PzN6I<k= IDATer`pL=,2ec }[],IWOQ[OŦޏILʈ(75שU">*"п˿^b86fhV)XtyːSf޸r6u搕_vAj/2;\'jђjA:ʢk?~B(ay=}]}t|ΨuLs>+ŪXB H J6gKkDt"(.pl݃Fj8 [ryufUԾyʷ7Y|l|B 7_۰rDWy[溧ce[I2EnvC ]Oꟷ^ųBD)&/r=-􉸈q?*`,2p!(@P,DKqxKQ,(c~H=quO.R{DaXA+tM|ӣReiœEbXdqU ,KPۙx89yh:9-Z'lCl3jѫ̌ݹnz@ub:Gxy,QZT eXVE^(hLgV{Z'jPFyb^\73. cc>~s-,(e N Eqhia?")="PH6)á-!ݫ5p֧آ^y;!LμGup$yDDM&6{" (33q7)V?yt '+ RY*-LIj@ 4 ڠ6){w 3P NƤH~|uʯI,}هi/Ʀe^?Zu8:gɁW/.iBey,8_=e^guH=R\F|fY#zN9ZPwQWCQrӯ.^5V?ŝz`&02u~7ff@ |a| m .,.M Y@=?NˢזҪѻt˰,BJrtCiAu\]Wue0'zLY򣘸,)'Oi LSyl9z=1ɑΌ7ֱcCS=I\ "xXOЎDi=׷7'(M;ę}]_~k@# rk"{xRн K@="Ц!0,BZ^JӟXYV?hF &|\2;7rr+[o;1EQz"/Oo>_-=3Zƪ IJaJѨMGoT)ty/<Hc#md2r;Z?Oٰ1֤|T6ʽ=|,DuN?k<4MKr\.%%8~h.nF:fَ0w\WRR{R7^cT;#;Ӟ(DΈnwy_`c 餚mb|ӊ#վa0T@@`vO jf,oѬ"'71B4E<0'%Q|}Cc3=1M} }z0C#0W,Ӏ%{.Ihe}kˊ% \byJIW,+Vיvb{?osߊ؏(1)NUrJAvY%9pZ@»kuޣ U Q \`یab@ ΰGGQAŏ~t~N>NZlvtݲr\(:KO'#cN'z:3D sU]lmm ttt|>y|RW,ݻa90X4l7L3XxoiߵN\; ؄9fN@ ῢ>n]Ksl>d#OAciMp90f[it&-4bcisxl@Q,bYXYosr ar9Ƙx<.+\.aE}7 :nCc? &|(yo7)[U$7nKhmG7rme4BD@(ͥ?P<֊)M6:P 󍍌rEYYYD*W(4)׳2XY04ǀmbn,`T4#ߡwBD@lGU(6T*̒B~ivqzSlPGHQP0i:M)P#<|Zi5_<>2~'leebݬ s .]3X3RhvvvrJiS(k7*&CQ0GWM JO 骕(dQ&^oO]hʃA[;cw+d 9| *L[@2 K)iaLLNfq.!i`EN]N~a,1@jn#_T*y| dZJFz/( c\^^`#c3J#@@xcf$gkqTz3[DZJ%/F,x>ní|<14{Zq! *but ~V[(uZ!bzJa#jP(lRj*(**ZW/6T}ؓJ囊[Ǔvmzd5B#jkۯ.\Yjd,c˸[8ќ(=ud7 |gȪ6_޺"_4.PLIqGaѣg=@0ycOK4 <ؒ7nٓo&|ՅM%Кk 'E>ۃ4**'QQfx0k߾Ǡz6+ i"lU_fԙ"ysc tUBpq7.yd1TzߞϧXXRjSO׀3dif1ل͗֌j?afM#P0eJfqŨF jnnbnnRRZNӕq(,*),*3x?ϓ_=Kʂ[Z\~ m6g~9l&K7|_z{p6[PR!"&6J 7R~GHT.l"6ýQOd_}ńD7.D-&ϊ6ošvYרBTPE)M.*c&BZ^(MNNMII@!4HI$߻(޴1U8S׿GKUZ/qut[y:ip>Lٛ;cۚQe/oܽbI6'.IW .XoUy ^Ns(8`♥y f]zQAf8N]?tM.@Piv}2u jө>A">sq}yu_<+Dny>|\}n%ٍJ:D |tB̒_ ;~³kN=Mq??mWk9铳ni@OZc gyc.Ul_Õ#WDqAW*vM1?[Ә僴6ߧ)buWb@::zp2od,#K#+#]̦a]|me(Ly27p4KĊB`ƘQ+TKS2a쌰J8:I/`Y ڴ 4]{+*[¿]i7bqY@q*܌ 0MZ3`ٶu7T{JApˈM|NTtcGȢϓmLqŰXD\ioQ- HWG׃m#Wf0ǧF&ff_; .eiVE3lT1j؃9ib- * ǵ->Oh˫3*))C`dl͹s5f=fbM%rMM(%b uON/M$2Y*H{Rv TͨP//yc݄b5|)yto V cN 2>RKtmt{lxoD,9uf96YM 0@jwc#E!ʂ1~!"bhBQ,6VP1bPam@)M+"+q7@oZ= E(UNLLq}Cx.& /.lȳlQPeK`7691 $㨥("~hg;3"NؔeV ŒZzs̃3~n<ʊVt5=|(@[~ʎϩ :r^[:rZ656?ER***4B 4===]R"S`$1rУdJI$;OW ĶnvOΔT+E@zfvB^[v4:Ϛ t1mpB ][ҥaNqaP;Nq⣏Q'-Y϶oyq4M|zRrc62z3]Z>ŽCAy4R,BΛco^EFNNmB55Y暴B 31 đBQH]H.yup 7xYŕ M0g(ͳzi.G.*X} gT4zsBf\Yӵq_HjY$*O|_)k PKaIH{$M׃8!Q* W(`!#`JY ,FPbFW}T:Ma&BbA:.Dh:ueԴIjh`hwr @ 6JB]D}9PDݾB};R Ѷ&#)EѶݧNQ~Mm)Joc #IZue԰RԲP@ ({7,bؗ _Eke ÿdxB.\Xpp,bzUlq9N Ghrkd-!"P@ 6ʿb ڑc!huV*1Ѫjj)5Y{El IDATvKEڦvHjGJ FWT~Ϊ^kjw[j^@J b4JգjRiW`QD@ 6{vW|4V4@ Eݨ  qj$D@ 6{j/㪽׊Q00KFJ o%TjEoY>1F0FaHӨvPaOWp ~9յZڬ5@pEk7K`HrR/M=yWf삺 1gl oK^zpЕK90Q4>ξR!u W1YiP]ꉩPc7Q>dJnO$CPN[N.snԼMG/P%_cuװ[ni'Td=ϋ7\Q(˥¬&jR3#SjqcXU [c;pWܶK{%=ɾrg^@@Q&yG׌ j2,bsgxɛݵ_]deAb=t4Ş=Z{"_c0@Q!K/fݗԝq~"Sh]="k!+e*ɛ;9rX3|Ήt]&hc(JSzWZah'Zߪ)3P@)6\.ˤJ=Hh"%>LTo#=e^ PʤGyO&d8Wgr;7w4|,+(}# -A9Ɲ̌g #NT@g6(\sq[ҽcli`{KK9 0҄ӏ"4J0ԜkZ h*{0_*+++5@4`R_zSP)P`XbS;goQ'z (6ꆓ[ryufUԾy |FOhc*bӉ9ם= 1eޜ~oA^]mQދ&6 c;pb/$KsiB5G1GR1:(4G`T:_E&5l)*//(PERλlnš0 D]Z6';he\NCN}1UP@ lfbSC*K sޤu>H %v,\|SߵDUsfH-xY&śqڔXhiV4W}Kǘ'{%eK26 hn 4Z{GO cOw#^'7|V+J)J"¿w1iZE+U*B!W(drMZᣂce ^cO^] *3j9 jLYc/֎&ٽ-FYO)Lշ Q5V4ō4:uޤ-cU*RT(2L*J$r2dϒ?J V5 DY7v&ON?Uͫ\t\GP f70Uqk e@At>uϭk̥ 5[D 5ܬ3E6ϘcT. s{s{Rc¿Gy =LU ƦfVy _Oٷ1olMC}A댫ovܛ(FB.j`okG*@ |F sqnmT^4\xvXˁSܛ5v)So΀>.-B>p:opu~3G'pPV.>.^}z^s.XYV&)j ,q}\<|zSH(_8H@`V3בEpnk~=Kv×WG*T5J2sFo)ܿGM4hљLijBtMHxf1J oF^NE2q t7k֧ܦ4 Nۍ,%$_.G^Ǧ6l{[=:̼q+:?Q)~I_c=:1NkmIF-}sfz(v}'-pڠGZX㴛$ʜ1n LMrmMz/>{i>KN^|C0ԼA'д r>} z+'HOՃVjG,[O$wK_saB$>3s_2w3km:.Xyb2n^%a(~WoRo$A=+UY0C:==^G_Ν]6aST`}!0=#ʲ,pÍcZ˂5GַZJ B6}YlLݭ]#vt]iSfY=ZbBm$~),^!ui]gfP0WRW mcaemwe.uK]k(vi)k?,tٷX7Q^3{v wL_Y5`ka׬YzFttX~.b{FL':W}Xj?ous1NY/M>A #E pk._:ʍazx7ŌD !УTJ|{Q_LR#~!QJ!~#h<" O_gssskۼmm t|/\ nMGl=|i @.sƆvv =8ʥTf5[s谯يYLn Ԝ>qUjvߞb@:h?? q򹇓cI[ /}ފed}PeY+gef!~RHcuװ[ni'Td=ϋ7\?DcZ}ju(ڶOq{,Be~ii:`dXi2\Tv!#>eefT~>-ifq^5ƒy ܙ|E`ow-`m5Y!{yjYDXd-v~ {gz"kHu2 PzeTŋm"Y%u'eٸy>~01ZU$ovl͎y}Zy8^x*CYwf,y9ݛً"[,P٩e]en se89Z,RB^1Rͅ!('Uk~ڶ}v6g q6chC(vM?x_ yע=Dzh܇7,zl/w733}/;y=7p*w766)j Gnz.ӄfr]ǵ;.;vȦ8M]pn;1.ŚW7Vyuk'>Sneor6:=zFw`2N@ `X,z N &Y:؝km>϶X♹e-Wrt$ʮ4Z0 vjjkcU|ڬlԸW9yޖmtj~F>8bwV\+ ϩVdI@k]&/r=-uk5X9+Al@ |భyzT,-&ya"%ڱp+bZOn~IV+Z ㏯72`FniYl[͸AAlZqROK8}ePߺޡԝWf2 Gۃf^&D 1K6 (|ݚ+IB@ʕ*W66l\D=@t0 (` aw (Q7])pk4 "2&1 C878.Z3퓙s۴صN]V8iR{6j0r+Ev!][6-}WZYJʟqàr2nU }`Ŵo@"]8 bs{*NbC3sѽ8`h@؋%4[E%3Z_ 9Ih!$%H_P X'@!!.&@ "KEtd""!'9Ard,|XnϾ8Y) ~v;TL5mx'L,vuӱ}ow=japBLgFAn8a` '%?TZ!\.Qu: BBqBI;.H_L@q*Œ+Aͨa# ʙo/EMa/:)`0upD:/~F2Dt37#0$7BdI D;DĜ8cQ:cFZ~U\Zţ9Qi^UvBfLlkg܁}gܿfeF7vo|tsT9.r{ ",K˻7ڬs IDAT/<ܚH|TAo- lNj(KnT 5$c.8zć~'UXdIbPR1@„ad#0pDV re;čL L+UB‡boRY 0:Z(^ :m%d1jٲ3G3 ѣQq# a f7i,uݶyu+2Ⱟ,XrM+m݂w }J䅢ߍ9S.~Ft}/9_iȿ]!7?޲]5;Կt;JeE~fgd)wlaǝWȂzgDAPRf)^WVpTy2L6E,H2;Ė8.P>qCI"y;=Vp]a12>5hl>>`DML04HPv6䁅u;@$9WXD9B@GcQGi)V\9B K*+6N 7wb{=vjۨwZNOULȂ ^g|+&SgL:5uKy|?ث]v'N۪,~oz:TP`]Sb5]ׯޔed{krωb=Ev8Z-a4!ީ sc۽R*j ؠ+V3W9BxQ%C 7yG.ez!N&eMOԗ+!K.HwCc iP&`؈ gcBy#B=(VH{NmzdKD8:$.E !:2ңǒ-s=ͺ!"76{$+Y^5 5! @h~5Ly rXQn\yIFc¿ -;Ȏ0[aiނФ(1awso#ӯb1L*9d(7qN`+ueUә%Vg;&e;QP7Vepqbx-炉1 ``)j1X@[xԬYk {]4)Q?>fPSM׼z[OARXóKJfzTF*Yg8@D}DYdMishK6fNcyGPN}63oq-+b`ֽڣl۪n_[[dEv2"חS.44=Ҟ>8ޚkתqD5H@eJ$ A HbOw:/ /)] IN 2keprO>l1U T ټYm%I yGMT6kp20wAMRs\P)pyN=jn*5QjjƵҏϭX=Ϝ~e˖p׿SveӢE OKsI%o {ҷ+,G^te))ᅏ nttKGŢ%̭g_1%o \w?.ohO;٥E_ؼuwYtc,īz2'b !(:*2jſ\بO2<\@hM<  sAؠE>D)bmZmʘ E7͂!.?; "wN̲sEIjH&p(Kc9pJ`NݻO˗ժP:+5?+fFߟ]۲}o~S[?O9U>N}:g>1yD#w*^6a-3^/7;/ޣO눣T:vظk*N8Y^.7nrm.oTxw[wk~Yٺzv43%7ڲͿ# _ܤr; ,R@$:ʻL& -m5)*KXOﳠc7t}}H[.ɒSE'ݣ}5 #LjDLߐEWyPQeq ~jy/'j'CO:s~Ny{+On\!SO|YM (jW}릏c+ Ī6hs9wxYfwAu?ڸ~m#_VV4 ?\wf׎wr|cL|ާUvNVv^L]_"ߊ1rs=k{kK>?[fed3w_XY^RоeVw˨{N(^}tiqҵ3/-wIdd_5|Pb=%79I ޼aNVzD'4j}^ g髃Nk(+;'ݮ|pGC[_ KF#!3cITЈŬ?ϝ=ؖvdZ!qX”dz|-n .Rϝ D-#O^uwIL%qs[&D  >qX "Vk ruXQ%΅'>=/\BҥO?}3ko\㋋hswvIJ:i~f#o}y|Iqm~XHk~Enw>e(]7_[Aç!.{lIxμoڃwv㰙 Mnpt<&3p&oHw "'_EK01TLd=dc[D[?9|Y@P}X׭3I;15P&I rPV.O~{9UjۣLc.f4*q52COG>z@ WaAl~ ךfaLv gI3ґEvZF-o}2}Խq{ƿtiQYرƖWM_>yrss_4c;Š2^7K|y{ٝhOqѼū倧F=F۲v[9 vRk5"X[ ױ.MUoKZ-_5|W>(5S=egeFU= @ -=Ta 9{pI)j\~}e=`㽔0*ÜH<U6FF'OU8:BaPGWԋD mQ"$@'@M$z=EvZZۏ+]?ul٪yv_r~0L6zte֭-|jwX{_pcߘ8ѯw'~܂5jy0lmZV7;KRo۬p[,Bd4c%UaRld?{+zzA=ތkiMMQ%(d:dA nE3{ɭ/zwI IHd z` UQU 'za_Խ:L"ukח'B3a9K:ĿϟF~_]\ګz4Y!e/V.M}w6_ޝw2d˭zVMv|Ŝ{k.+j .i'HQM7o'"sE c0@Fd==)Y/HQzb'4&&\\N@Y).0|796JZDE968Q@FUnyW|A$Ulcȸǘ[Eא r"7 =6Ya1D"28jȑqTx".hєcKȌ3Da*ғ6MQ-*#dg) /3ѧm3~/-XzL%sG~:~C4-spŇ_Z g[=K8lOsy~`l[=AUkFMbf=/.g_8^8hԔ֮["%FvZV׿5+w}H۹/ R.u|bF-i^>[Zg@jnຮwkd[3bpͽfhC>OѰUںG^wcv@FVSzm S=Zww:m seWǡPw}T{:d@ʹOP4p>/Tm}A]3=1-ש]:jNc=6ẦG\,^[kУ(,NQm,WEBZ Ww7F'K$r\74R~`K4ARv)C?H;.y3مeu_c^ywxJL8eDŽ.eH8ylr>9NC=)RD9"GMGUµ;/튠}x$F1wxip:݂6l&QVzYǴE$VKuf#(YXA.| Sq2W~,S\/$@L2B`YrEA)[&D(z:>ɥR$VD{w  :qgOn]h;V˓*An*zƓD;I#Kى?,|kS:D˚UX]f'3i۱k෭V.zqҤ>'lԠa ";~x-}=a뎾wh\|${UER;!rd9P͠]S8' MމJPiU3 b(H%WkP)Ž@qJm+w d`o$w15i%^Ŏ Kɜz'm%Pu"<] jzi? I}':6Ӥl!=/JL,Ou>^g5oE?Z 7ىΚԷaڶEvߵxmg۾>{@hTtD(1 kКr. >{Jhd&\#[۽ B]jvU^{# A+BvVώjGtBV'"tUE'ELC/TD|SWZcJ0;qҽJ5*F-ɒϢ:c NVWϬŷ+?veJ߮.^N(8u'3 Pզ-λEϯnoƎo.Ѳ~NVvNV]Nj엛9y>e#;$ uVl\v_Mvr;*֍q[:]zkmA‡ l?T HxR䗸Vc$PrĹiѺyEqu"~պJFH2^NST,JP‚qwbi$R>Х qf>QZYL>\pav6Rm7Y?|gWWN]Xj6-> |:EYKJ;*NuY޵wo.N۶;Ev( eIJ s**-CgB'#ɤ`Pj>%4 Z2dH 8s ?QҟJWWɫwNfGa .Y:NRdk~Ԕd@ܯcd|KMH;KcNۑ{5~5+NeY2+,XqE6o#V˺n8rʆX۹ޤ?N4ㇻ7;.(;AK~E_ۣeVvgbM\DFDX0p[PAYgR}$/"zJP@\rZsA.D{GXX;)[fSyx< I%I!W$({T0&2~b8ܘX33GDJJm/[y%e./)}{q,^"sr]dRJ^5E n2oyMAϾf[|5{ W\dE(J K!JE@h=uΐ KPh'R#@Irvoe!$)`0eh'@ SE`9!IɐqA,zj%TVOMrȍ9R(VfMw78BťQZ ˬҨV?>f݇tѣn-^ۜ o)9ڟ)2SoRRde➭{p`Ydv~eyL7"/(,{M8Kp)KaeML שFĪס[\eGe9D2% )!WMEdES͈PJʒU"JBE12gߓN@RG+9>ATmsLI鍲F !~BH\kT?hmF2+T"hƪTHͬھaŢkԫh,S\x9*c]%$c)jfo'8g:F{EYd9=ni$'v.Rr%esnFpRHR.6$6"ގlFռVC"$X r۳sqAC/Gb!=dK%21]YN#|+ f/ ^r03CZeTo9"HIwp"DN} hڶ-ZtjR9Bʹ'_0b#۫uf*e?}*?Oqfc?VC۹J6fo+|c\sEYd9Rܫ{/pz?]yً%텛[Q{~qxk(ÄVKR< IN*G \W|%JY?>A9sZp<Yl$5ȝv)iNʃp/ 8 i}z<{GݚUj\+㚳]{vƵҏϭX=Ϝ~e˖') ν내Y-v{x;Zj\ ^v߲y}*......Sn@7"`688e$u"'hV SI@;,̐|X"a}:D׈t-lU9}ZQr.Z8!0g@R{GP(1u) =Lg*ΐ9ralL9\Ɇ(I6njX L/|9szv>w/_VBIԚ%+W,vmˮ__z۪ǥa9#:.ٷ^׿S oi{\1KӖ^YO*ͪln9Oς>΂^{bU3e|G7um8iܦN\Wƪ=+NַkmȤUrEr*G G2hR5g(uHDI%"P Kך|+l-ֵq 5qjQiCм'AH{-5g2FGFyT7!BByy (66I᠜zQ!z2A!6T! ﺃ\* [f9eL0CD`F 'sq*弔Ck&)XoE6nPvz͛72lhUVnצôFcd" #彳^T;iޫ/ŘQ3dIceksgθyݷn;F2pAj6'sCv=*`kT=zM7I& 8w'\@D>nBjY"] P6 rT@I W@Z$ ].r>$5Q`V?Ig4!r)zy Dk](Õds] 4@H@z-ӵrt9 ׄ(5n|$q58MLJ=Z㧘x 9g 2Ĥ*;sl'|#߶ovײs/n\6BŎΕJtWxd=1mȘn㔔@ZZt,G9W=6+}ts1/_v̇F֗GhCxZ2&)tzʦYݣDljina3CG?cYQdޠJaJ DYsͲO'f+dIF #$D9aDoudn60/@ q/qZ֠ySjQf͚}޽ųf잦VGR~fM{Cė4K uo=U& ۝5%/*L{:贶s q3/-wIdd͞$se3b\Ѣ3@}dGrۡzJ uor⃓нyÜzNn3?pB윬֧z͎A8yf0J(+$WM^oJ^ Z]W,: ),@M"GIݧ,Ԧb hG*4 :Ivck#n3]ځ]Wi.}F|șUcۦ@(n/ʼnljhdJHXdMTOɏW? ]3֥k#;,7>ZڬS0 Tя˗7m%/.B.+za3{͛Jωo/֯cӓT^|y.̞uS/9&Si#qͳZ+OLqZ޲ Ӟy;:ANG_xv]cDJ?﵆ uC:u$a -Two5UCy}Ik/T+r zJre;LMHHP[#A~wҥi>9y -m"!PpHV/k ^\L!]G'ߌX;'M]J];]x$i?c7 -㖲pBZUz:rj.iǟ~?_;}2YIeVKgog]Ԧ1>r?Nռ4bjoK/\r429{C5Ta|DCE0!Ȃ#{mѦPR%o:fx bDC ,JHOr6*B+ 6{9TGF Z!]T>Ĝ's"czr8psza2DQkV&+<:9N٠yVgo{>-L2e<_Οm6'8tVĝ*;_+6{כcݿoiŷ# c(@?p(ސOT:b$zO;!.%Bu /Rad/=_/C1_ 2Q$-!"?>&=xU:N $qt4r%spM(}>3:+:QzP $ăQT[3,/W e{# ;7 Nqh?Fl)khNj,Q[k7,Ry7xO0 IrH*Wp|n /-oxy !GfNM;ĖVMv|Ŝ Db Q[呵1S2h5?H(~DS2WuEBI*5,A|k @iׇ5F+i]WMgd E;!4a#|МK.ℾ \0_l5;G< $ ] WdU+^{Fp9qު>9M.$Jr)sUOxYiut*9Y_|?6o Tsj|5M/>?#HzV~$ed^>Ww1qШ)?]xC_`){$b97Fɫ:%Kʑxj>ݳs\@+"A+cU!mD1 ?Ykj 6Awq%q"EK8BAQvjs+XDmRu0G TSHӷ@)€nؤfdr- *͡@Aɗ8EvXF׵ȧ~)׺{԰wdiSo >].? 3i} AZOx/-ש]:jNc=6ẦiWwX[:]uwCڹ~u;Pb;Ԧ}K/Ǣ̪Wغ^qqT=F[O8GsoO EbIe?SpM2-w!%HnVbsh _΄4Й ( /OG 0qPBJz-aA37Ŋ%tDXsN}3jA$1nGPkũc*Y X55ȪCrHC/ECl8eʈJ┌ldytfk%NeM"'>L{tj",}G>)ܛ2Eo>S#FyOj[ZC!=no;8AJܥ;]BТ/i zjus 8֦C !KP30 c:(yUEc2OhPRoNgIF&'HAƔM)agLT]E>4^ ]Ȍ:ATpz8";Pwx<Cc/8ި{8œnM%\ S%0`M(C l*`^d+WYGbT}]mU5֊.Ղc.W)ɤ}}y!ROU; 1ZX*" >BWBpąL81=Џ6*yVAReBkشC .5LsBu@贁L.޳+rw+oF_Xy6[j],C6C<ҵ;$8}]J&\R =eV<$aG? S4O8ϴq B:LA(&@!QkcE'ߜo Is&DVy$J&׽(b#&lR-S5R Sh?",W UYSrE@l 7F TThU([38pO<&T({$D,g"|dܟ%@Ъ.U$漖HN= S m`d#n$ DŽVK#l!%j}+YdIE"uc!҉ cR0$4aq F'd {(hm@%~d0@D&ZZ 17A 1AATdc`iR&ZU N&1F+n{6—]٩= c'"Yh=/ EYdGFq<JnQF QR4U 5 }}SHbŬG:=}#w>t=T8{ .Ӣ>7OTV/*l))8d@,7Cp^J(^Coe)]6vrԐPK"$ ] p &ddK`\!qq?DYdG"}s|-m(l RHMut7DD-WJM[eAOp@`J=m톒g h5%7RUuȲq kA!iti'XÈ7>WˋbhYdm/hңSHTӏ!G[ropScǎuk((wvP/5L@2՛Btbd`lIDC;k=J$=ʃ([HxPW6! E=_+]|DwsWS;.HXXK(=F`\"oIDAT;Z7A|0&=N4pI q*\L|֊Kf)E#DPƹk+V^tɥ+w;Ogώ`Jd7q1~Ofn~`]>'M>kF#}h?w\|"騰k4 =oA焜āI]5#ߗ SV=xP@W'F3J~zM~ܑdN:r(#VӸ7F^3Uh;(jhk]*S١ggĉ@<N͛hذq^fΞ}ݠֽ+ѽ j˺|}Iq4G` p"4iegegt6y[>҂{,ѭAvNV07>23Tݒh'(s]ɄZzR0⃬RA1 B Rñ_+Jbغ"e/Ϡ0dP |!骴&1gv s ᖟ*uVZ +;v޼oo8㓙 ;na kJJvKJͲ݆ڱV}DؾoV3tGGW]ҧ_Ͼ573ٰ|g|ȾT9q-ҚE~shEn̦\%輈B IbObh$yXp rX4N\i 4m,} Ie~+*z["5b<9E9(}-5:6;f~d9@}jL۫W=[rdeVMX 8FPQ($T .4rt@)hbJ}WXT|6y'OR^ "C'nEB@%1x<(GXGu;N>&D41IZH8Y=z1wL볏0xzT t_8r/8K/~f%sGr'W_~i|*Yo8i>ɛVZ1i#KryMEH[wF=3@kH[KJPzH7PP+fLr8W?[`ͮs'ZXظ0"08*s/@fvS,`| ''8Q;wi޾Dw* rg\xxܽ-ᅫ^M,/p / `')(yIÁ+S{㦿<ιawQSy~ѲeGq8 kx<^VZj֮UfGUj\dPalH;^7 [lмUVgishKvK_vSՖy %mbtotTc/ݜh M BJ4g?a9W%orƩΊHm~M9\׵S ]|g@ΙOLqȾM|K tqTpjf]n ]jjt*W5?J=58z2/`u3.w&`rM2/?۳ӐU=VC"Y"!L|#:w.,fCwy(J" I%dnrqPIĴБ ry<$=L2y*(Fʵ2 \9Q'4#$Nelvɣfe9qI+HǨ1d#d m[+aFi$?'!$ .++[aƣ%ޟvƽig%1c_:X5V1My"r&s׌wM,;/kdlW_VQ`SS[Gf:gxYi+D"{gU?󵌶x/@W 0nVpSӯ~kuwW]R&ϻ!C8Q$ Rz@huh'崀oyJ2E6yn$낡ܬFOի#EѨ>4ggQv'JV6HJ;$u(C榇jp#9^+h 1)F)bY[ 4r:>v܄'cI)'!N5ib\6 ),x3\L( >bPv}igW2}#V'&o>ld߂mVuJm~]yv8K^1z5uROT2NWݫPvsoW~Rխ[iN}Qkwe 5MnEv8(طQe/'4+1t{K`CIvK"Ev1v4d 5[=/3PmZ'G4 YS-O9fwT̑y- JcA.Ae1D.y*1HRX1 EH*jAt;TA4W>܍VnCIM9`oЊ+jPad ?0Rb\'*Tʩ4λ^wYNeɒXj'lu,Sr l(oQIP</++s*Ww={W.*hF)gRF)K,%/:k;ZH${ VxW}3 -JJ#pB")iDHE9cM.L)2N^c"8'WTE*NѬwᑑPvvG Pb^b(D hm)C'vG .PuQTI)a# &~;$9w2Z8Cy= [ZFH\1Ġd},t9_αnvM32/"?s5%(Թm/Ba0!n (\Qo}n0i}.s*,K`nMFDjoEHv.'.A+dqB"5ة 9sqӇtqYL@b15c(ʓNDf(#oK@D~@sWX(DF(|022I1 콢cҡ<'(:lJȤZjժU}/7&u}ڞb-7Fv"Ƣ()&Uї F_P| RH$E-, `FU3! 6z܇]OЖ֩g2" HK&%0 R'XWFXPSSv#Fem$V57[<.FԄO=9L&')Sr,MrCgs+< I -qG s۴G%8Oxh "4'c1ݻ9G_Ϡ8$J,a l)2KMMMIIxYSԕ)` c)8GSk?0 JJ۷x_q42ERR +޽=eY23m۾M~DgomժU'VɬZZZc?U9wJ@JK˚ԫ Nd%L J,b0eҳD_Դp W6IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source/figures/newchangeset.png0000644000000000000000000001366511534217015021221 0ustar00rootrootPNG  IHDR>Er|IDATx}PTGlmK ]D\ۈ%T$ A4ʔGV5~] ˘?+:H>""I,2.yl^eMw Nо}O>LuDmmm/^s#~7~Z_ܵޙe$WfX![Ong럑N?>EY(JmRX9fj)eoמwlmuoB]oۓu`0&-ܪ?w[크,Ac;p d'xs;O~pLid3da*iAj }(M0`0o; V^]jm2烗Y8n*)1 z|Y䞤rS *JFSR6RV X".$Y?'pEH+ӑLk؄,jׄJRLTrR`Lb9D7zkf ca?B>U?S˂= c,I=`0cvmmmDg0QH͛'Z$ʻ`0C`0v`0Qs u0`0QG YZ`^4gso4rQ a0 {~BuϽA F c}^$}U>f|g_W1F0= I}5f`w.2vՔ,A [ gOJcAjd$Y%97KM0(0!U9sGes,x +dnYw|w̰5=!p"* 10(r oٛJ_|O<?}^W {E/ x]É`0j?pC霻7=H5 4ISp*$J}Bx zؚ T霰60U)P qv$oMam|ٓHg4lPQ\RFy.q/U޽۸Ԙ0-׿>/ǾtIT_ # lB w-}''CnMT8U%XN]y0ssa/WxB0x's̚5| 'Mw]i?UzBع9]LDE;pjs'wc cQeÞSZ{Ko>gfWS.{o!a;=LP-`cղc~@kc^NW%7(QM6ft^ڳDLa. $ƚ}G"+šcGN4TΤ9nrYkr<>8w% E{^4f܁dy + -x-Cz*E q۞Y CmfDf 'wih̡wL3ByndoMM`n(]`L)2beO}qJH/\Z+Tdpe R- 8ܧP 9wC7`+OdLR5)Eqb Tz'R5ͥM Be뗰=+J\8M! b6U%y8mɵkׄ]&{KϽI|4v%J#Ii +w"$VJ+9jE 浖N4&>D;҂YH(y̕f|;8:g!7 f^gHb{^Uޕё  EC^eO sHQ9AlL@@a|6/ .A.Ǟ\< О4 ĻLb2}n^L w~$_oj.o%xE( B)J ~Jֽ~|_+޸߽T1!B:h\vɲ{7%5۶!gٲBSWp: LK_Iq[\O)d6Ǽ"2z|ӡ㣜(=DŠ5 2BV I8xLjBWLV}PᒴBi*җ^I.>Ӱ )2v3E)Y6>kƘ6<%d@{F vJzF"v1v;%CGlwN$+j/OJ?ờK7?&sOϗ!>)bl>q]4R,p,)FSSI%DFk!7B` -ok6́FUl-qrϔ (g?v P3 F &ˇ"ד}i3Ǐ, 1khL=~1oL B~#88`ZDer5&\?`D!3 F\?`Dq]{: 1a~:g0~:Bw]+efO`~mg`0&!~-[_taU`0c WW{`^صk ]>ԯĜ_DKƚ?P Z,O8:2wѫ"f1KO`$v)T}f1w\ ,XpaEE_2L.\HKKΞ{Gk%?Awj^K1z]O<1= 󎐙FS#p)֠EJᢥ`eG1ČXU*(wYԘ0-xφ~i? pתS{~ ;wnݺuYf[/osuUXeV ]swZ6]LLxh=V6Zooɀ74 O 9'鿙%)S6:h՜[֫:|'Y~t[J[W \Us gC0.f`}Q{j4ʥņrAu5dXOb*F4E$Gh"E[3_$%"e*n/2P7ʘ=8s,÷YH+ZkTڰO{D&2V5Ɛ"D}:x.!/,~^x}!c޷uٲe 7|r{k# ˞HӳK<:p谮L̊ÂDlE|p@.gFT}uApnOf*|͢ 퇝@9Rw\9L|ܫ֌-v\Z;36U3g?U-zsF4 >F} pC֘\" ,ZS SP5ϥPfzpM^En gC3]W= kj<1=zJ\%K]&|g$>;%9͋_9R\m р)re[u+aM,omFzBSeճTr PlGI\i9Y*{㖥r_"+9ǶXETkTG #D'G]tNI-st 72Ҷ?_Y(3ŠY$͆PfzMA@ '*seC>z=4i@!ZOb ,@ٳg9O/\XkߢWA(hHU٤nclg@w} w'.%LVxgph[pq3aW8 D,5~#\w@/,H=꺺:tϣKÝ?PYv?.{ay?~ou@$eYi)ټEDDDU>XczRG/inVSk-jEK%/e2񶽆Ok4qeQ? ȚHW%pKPQL$HpoGRe/R%1MsEECs))AuPfzMjԐUv3[2X?rǎ{wP%ķEEn.>lxz%P"FE (!`[Qw\ 5Zel/W `0"Gz=楪qOG|uX}r6kVW%^\ڨG޽#K 55( ƀ%jm 4 FF+$Y,Ib.M1V[1jQR MՙBTY^CE/EZtU ${#c޻wn{qsvV^/Y˻ѭ)S%-ȴcS-2zzȱ{kb]>,}rAf|s9%'IH,EQC"U2E kG|i< 20vDRDh!h%-|T1BT=ҧ#.L`D&K #}y'IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source/figures/outgoing.png0000644000000000000000000001161011534217015020365 0ustar00rootrootPNG  IHDRCTOIDATx_hך?ྕvI$U kBכ쒴qE7aa`zHVt7t8Rlč޲[B\Jj4咷q 93sf$$_K;s|;ˀi ?޽7\zuN OpfE`[kYBDCe%*8#PHߜuxG=P>HM:?^|UPU#׶̶1Ͷ QiaYeȞIڸ}fmUz_:}p~{Ս Tӧlqvמմ F!}l/mqu>๶dqj9f44P0)[YUYd4؍#AgB32RY ȜQ;w=dϭ{kpl|[aWe}}4sfqjC2ik $wՕ~ [yAˑ\?"Wխ:;8smaM;# fO/><k{|M>>;wLg55?5Kn!=#ҝ^//eJJ12AgyhĈRH 0FDgmhq 8}2:2Y %d,0JLO#NCܣ 1iFwLOo@r MJl.&dq"=Nm{'xwf ,NͼnmCѐf?pq>w Ϻ̓'Y#]O+@yA|^K`0p^K0p^ V/ xJOn2tɦ=񿝦{ˏ]EgF>asx~&"`|$#oE lʓM7>/n[ZHmOw-A2JjZ LM)kD=̶Z̀^Mc8=?T*ę{./--?-+'ز[vMXK"k0xAd&82Q3gP$(^:3`P(#aʬڥP^(0l*X˸@.ԶTa>ً6ɐmu͗R kb[ ,z(ŢC /X:_N!.Jty!w9; Keu+q1PRT2?. G@jdV q9J+J}DcC7 H_B<'IJS',30^_P3BwYLT+Dxu GʚTτx73=rS^JP`?_zW[55wF/,^I3iBJG>zrRx ~mu\̵r*v֋דi8eiI.ƭ ;d='UC8SExV7!ZE5&qՐr&OuHcojC;%EJ*W {Hp˕B E.1Cvy> \Z,'Tzŕ7l[Oy?gϾ;>UܹG>9 'ZBn28Q.);I8i~_"hM!ufzc0T֋<# zd65 mJ;Ku4 'OLLT*BK/1/LRːx '7iğj>~Fmq,la>[wP 4_ɣ5ʙRsd!1YqGh-L&]}1^^lv%N͘RfmeCV3,-g A#:O1B/$ )bqEIVKy:RRXȅX6[$v׾RT;ɲt7-a Bаm@a^<&&i{ f7u@]d߂4M H/AO8ٳ_{iA,Г$'#H@OF A"H,0K.̒ A`Yro{rպp~{p8neɭ̄fc"4Gi)MSHU˚Yva\ίY[SgwfHHkC˜:$ ʯ!魆= >Yu(2хVBB:@&!SI`DnuDГ$'#H@OF A"H,0K.̒ A"H,[l䇨bUBIPf3!࿟T}wKOFlw.| ޛ&,[# UM(d@j*3)n2ti}?^Yrwt:LfU:19YrmЕ $LPM,y*5H'OWU:D5XPY_ic2,˄>4Yдd=7V ~=FXRk-eZ2+gA6Y)(m@DX:p3.F2\pl"+Lk\Wgډ ^,:nV)qKlwr!Πΰ0z 4ͰM K Pde'QئK,oYȲ²WAQa/61k[ M궀sPM@V as[ f֓gA3޳W3LDѹbu4amv fu^gk`r U'Y] dM/m ),ynBB!w  -{tUycut% YSKAA[%QKl>/5Dc̐w:{u>xFcƊߺ UKNW`\O5_tqֳwY'VHɪ0^|r[@6JoƎ\8֫ e:Tdu%/_n#,NJ+,Z J5p%Oۭ|ArXV6i&RB5L) Uj)i `,+Hs:-P j!S f,owfڅdu%aT a t& 0K:JYbB`eKNq zmt!9'd C􌃕B5L2uMB,ի|ഀtP6cJqidW)$E tsJ๬biBqA@݂'^NbYS+>3ʼ~$Ⱦ!"_%[_~8=]dp*j_+vihIk%B .ww]( 1ې=HRv z֨@1Y~ nȋ^wxgUbrCIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source/figures/overlayicons.png0000644000000000000000000002177311534217015021262 0ustar00rootrootPNG  IHDRBt sRGBgAMA a cHRMz&u0`:pQ<#yIDATx^]xTպE$z vOקw"REDz@ABH!{ ^!z3&!f9第3W髮3<#`=hr 7ٻ~?n%#p(mAs)T*,eeepkdԈ("Ipf1 T*,%%(L4sD}"7Fp; 톘(BtQ *4"Ra)--AaWab+zhmH)QPiԳ= 'sr HOOCuu Q8ԉj",@ T:!o]IF~$.;IX2TeFuQ䘣&4j/:w`8"pTsҤ%HHH%EGR6߹y.. #x- G KYi4ba5{5nNH$P4聬@Eo>Bv$jsO5$4Y'`wF:Q9+?(2'QIFbb *+QXXPi$<7QVZI+Epp`c} ^^~ KrpT3aaBVkHMFUE)TWU(Mu&ADCuQ]9NnaaQj"AVV2j}wIBUe-e" qk4Z\G K"Xcu@|trx [_LlHh⑟˰>>Us8>4%-+,YVp< ps|v9 HtL 3yBXc S2sP@5ʗZ^IrɊʑCM`e"/EFn)sKw/a,~(%Gނ’ik DEE?.Z")%Q bHI kg’EmU$ $$e*Ts+)#)BQ)YI K(!1+DnE3͐d1+EYzf!DDH#Gǿ/* 󖆣 K%.7 Kdxc␙]/,8w"2ȑKZ&{ aK.s[69rFvJILJHHr)ER1aBŤ"JQt LJe0)|BQ"c1aYH &,873rhbS'7GS :v9NΠCdzX/+3a9}RsivXJ]ԴL?GGtn2&0CG,?<{CX|!BpGƆsf76~wzj.{Efa$ V*b\X"TXHlOhfl@\Odб+Y7ajv"ZC={mmܮ 93cm蛭68,^f^>2cbt? l,A[؃0YsG LUXEX`ҞK#zvƘC]3aّ8nwwsىbf!%ɔbd''5JXء}OGL~鄹fdiB C|L=}ñW8 ܜ v}!#8jGXl!`wh9K푒@XN:Iņ 6 &S n#1DL= OwŸc]`pqu_:an=l^~8Jvm|c>Hyª&)g_s~x ]0|6_XI)Rj L)_(j)~1ɊƎٹHX/w"$Po{s&]R֢]^N,2u:"j.Raa nYmKhω8[&d5'3׻S^NXr9'PuN$,k10N$*=0צ ,~{08|2 FpNc΅aT/x#8>Љ\I0^<~$xO`3M\18D83cRŗ## s а%IXfǠ݂ d7֜X\tRf2,5 :He08/BfBJ*ǹ>@ԆeI\|g 8z ,*J0G` 0?em2֤ihˎ$bJw-cq|Ǐ-u\{֚BV}`B{źx5d8x,6cg;?G/S20uvx ttFal"VkQFBnGǚЙ!K=apFAu"T VH-,j i]a2>q& 碹>Q^$: fHlU&a:_OD8x4 C#VX mx_Q+lLCHd%2-%$7"f,5>sJpTtC^N}ɃrTSL/0QYKb>Ͻ+h6XE@r:/Qa=d,F Vy^v_%/7r?C Oc[Ȯb uE㩖0lo{8j8N<|QXx}NV+1&Xn,ƫ18w0'znec @tH~ή0_BD]&Ηk_kOTXz RXkM1dF8^D OX+Yf_EӥzaI *b?\ȷ#xfKp gG u`O*QQe, xR[(UhcHſ!ТZhLXZB4#T[k{ı?V ºa$*%a Vbm,Cq]!'1RThE&`k|澁/Aɝ"}E 0PL1V;=ERWE+'PDkX:IuPqQ-t 6Y$QZ>.ض"}+(+er5+SXWZr^cqtl{{,4@k3CJ竐}#%$wlBW#%%t +#U#,@}_W"ҦBTXFR>.33ݘ&@{f4t&B{z;y" ߨ'}@X>cO4Qy0 Nwވ7Fqx5x 6E &'_'aD̻6N $tQqJ, fJb*Y, o֬7qfJX.?j(&{ }?.aThʜ=[HRvM:R/?|Zu&k-VП@Faηf O!q#}c6,D?V!]5LHnRbD@SCxM aۭ=B#>U#,&,%\Td"%YsB]a$.) l1 {fKkܛiO儥' $,/p}l0cDVpVߩصX7KJVFXXֆx?u|QquǚxkXdLbxxk]dfъq`PxMIAaɠ #0[xr}^̈́؄Q{B(t@utjCv5?IaIr-wnA˕C.ҿ]#v._\ևEaM}*l+XeP0&R+qfmHYެOOTXK1+޷#f5P"r%ʲdh͏65 `T?z}Ҏ5¤i߬C+ "8ohدϷ`)cKBvfJj/WC_}_㡱8!v:/d--dK!5C!nٸQD-_X6tZMfjaia5X94ˡ-]ڲ\#ym㵴PRf.z*+SSTbщwp.,njU5_;Få.;s6>z6C12} m؏ٖ.ߞ/qÿ¶qc? H]uc1vuyXZk*TnRr*fJZ5&3%F̯P̚´ .S1^(j-fQJ(] 6=jQf{FQBX!YeC16vAhCRuOg?GƆؿ|2ydRRREܙXXXݝZS ډ{;ڍً7olOL胉d/_|DemBً}%G0Ʊ_P 1Y6dy2Qa+?s3h K fp>M[B=5&xc. ߄ lAŏQH7d¶ٺE!\j#,l4^dEi}7h kUx';ȣك0`DLLL-T`iiQ-z6(?zՅ~%mJcТ=sک5=1`ms6G,p%1Rhcnt̶O-uz)aaƊudK f/.gY;17 V<0o7d35UU|Y1j|}D?6'T>|qIVbJmI$mmzk;%ӣcHMMtX[[#007Zc)jx` 3ѥ.%Z؁ h&(Ե4ro<~-pl} g=l)0Pĝ/Svz}dk}on2gӁu~sFNgM‘ ;=1o'ܼؓpvpN{ pu@\GIV²dUf[ERVKZ׋DFFA%DRuwyu f~X~ F8Z>KdaXx1f;{u}B+nS_6lrGc"m҄m6StGizȨTzݣcS{L,S1_O>\8ÄE.ؠv0lUVi,,rR#N"rHx`l]҅2gWnB{I0DgS3cyl X65_wa*lC|4tB63&"^W^hG3V1~bb!+uSF!"J`88JkC>ShX6‘|:fߩGea ",r3eM5Z4ŽFw\v^K>RnKMpi!,V(I(#ri (֕zPvN2 % \,.I5 HgcBMRT $&&B1 G*7?PJX;![ 9mcװyue8r_#dKߨx#=(߿FƼS&86h_X65(7 7;TJk 9JKwt>LOqsu!,BX!,PJ%:Ϣw|!,BX(BXJ(1#|:3BY9 Er@ R γ(,_pp@!,JA(JΌP,pVga"Ep@p@p@"TB,J|71x:"ER9 EJ3§3#8 ՙփXRIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source/figures/parentbar.png0000644000000000000000000003306511534217015020520 0ustar00rootrootPNG  IHDRPsRGBgAMA a cHRMz&u0`:pQ<5IDATx^iչx望!8Ġ D=9$Ah41ClM4" ͌"BӀ *M7<{l@ &~xxlfbB0l@c,±1}lm l[ +").X8^#!l GuK|nz GO9pY-&l,=m6b2o?\ sH3o$65ܲpYSy,,>2,=X^^NLml8MuVd# Џg&}ahZ>d.\p#"6μT_l,Y8pd`|'+++ɼ ‘my') +`BַiE|z>;w$?Tk>%aGi|hf}|{}Q/܈H\NZsŶ Zdh͍1gfFǐ됭#,L9>>p@&<T(wN>՞C.SbppQ/ 49(!4>b*2(:'\Sy~i7`In֗VƈhWo/GdB8zbL;C[6sd2QTẆw±:I˃Q}L 2Vo>#j̾a;4vP]̶q eώaM^8r[zͫ$7E9[u%-s[ )'C[39PnN!mBi U"Llb}oȹ%zf].62y [0GG1cLƓ䘙>tc2=pQ< KGȌ q  Z^Ss?w`)1Š2BL FSBM?9Lwji>1;'xt`Dl^+l1ǘw,_XD!b E2fB4D[oZ$M3Ot% ɱh 1 'prn%h‘]RܷT][[K~ҚE;~LE8z4DDۊyU/ 206?wcP8g|"2R8ʨi0U6naᘛ hzB  mDnؽX8f˙l|nӧ6_CsACTPnS癮sI^ |DQ.Dޚ& G[?Eı.@uiU\yO_ZUcJu)B .E8^TYޅҞk/>E]ǔ}L[cΑcrl`Ow|%վqF3\v \> []O}QjV :d ǻ:OgTy}wzzmUÿ.B8Hx.0"IOXZ褥}22nbL"tu9GmL<Ͼl tyl}_oE!s7( u-}5eΑ9iǃe;$no+;]6:cDQKQQ7Tg3q6f>]]ڴiC OWuڮJmR]iRx$WkݲϤ):)ϴcP8YνY<1F6W׶V(6vGѶPZ- q,m![W8p/ɡ>/iCO̦ B@F s] /()4:z o^^㺢rrŠ!"%CsL-+/q ˗/m,ޗ>ܛو9U߾/1<,5"xY?R"16MTs SNbjG6ǕoaRԽiS]{)j7lsxqluNk'ؿُy^ja.՝v.Ut\݌cqaҮ|]'8w6WcHwQ1nlq9N݁kp|QmLJD{!!±m{_Җ|=w}8bKrGH{-Ŧ'7[(LF[|cPb݋m-X8obu~BsljK_9v ǰkW]~ۘ#6۠,8>`^kӰV8j>D FL_g~|c~s=4m%E G;͜_#*ot^E\| l{;psS E_b=bקyKT-tYp:o嘺[tr9qC|"R86wfc܃o)MIUP"YoRGA !6E/#t_0c9Ƙ|/X`^Ɖy9"mM;?1xxNΜl9].gyj_mt~zb>X$8۝>pq| As3M&Xh, (Ηϲ. GvAḇlB ]X8^o͛x9QD2ok1}1c zZƙq됭MJiAOoyp u G:X8pL":ӆkvcGD[ͭ݇+h}׭Gsd،of7BefX8z1r]Nb3☤=i'C&T{mVߦCiܢA>ծ_# Ǭ9ae> GO8jq[4sy [_j·4~}Lo㣪_‘# Gf,=ᘭ*_VH]u? 7_C7ӟ&I}b_}>zR{xUHÏ~baDvԢi|]lHuq-uzktM_ 4lLn]B3,ށ-` c$-hH= Ե7ƛN;wo?O.| =h?KRo $<ێ}}}^x:jqרzzzs/)J~AU,tn۬E_h78Yˤh}g? Tah_}h䌟3r!k44(fnr"qN1w^}5Ԯwv|*ry OlsRÇN>גnmu{hM[ԙ.z,v1uGgRrɡ­MXs nɺ-qe<%Hs8fp礘'LG>usop {ʸgSpLZRn]y siD'Ru].ǸcI#ٙ~cdK%FŨ0YpjԘVA-;NnwkzxsBDS*͡\` xK mPD%ScnVaD' ̈́{ލfŜ{c02hoUㅣ})z`Ycbpq0S(e[<&is EWeخlW[ѐ-UiIc.uRn]!;zpJrIDPME9ٶQ%(m XGh|;^zX#/q]{0DwA *dtW)ƕ9m˶e| U4vt{۫ȩ}9wZh_VODR9?R^va! M!XT>A5WcXH8. 'Qq"lW%) (.>v\x=w|h\y3.ؐqzQ˼-_k9<׿TmԥR`F-yo v$c0hRJ#"?a\^I/ת]{3>Rf4" #8~h.Uc.3a "?ch>Uyʀ%2n:xFjA94jdz(4vs.zn}ٵz|'k~.g9 ,m/'A\RS^pMm.ĪWdb 1.⸶&- ?78vn=Ns#e[?t41 \q'E2T:>?'tKaKs~SHEȸEG16~i9|KQs19cFڞ1_H#JGknׯ>v6|@dTgbk۳b>qHMucvW3i'=hNJcR@-[@8ʘ1_p#n`I3/"Ț\R{M;%sQtDomk 08Ke$h-EDxmGQb8_Z~YF|jKxQf"yx&ӌ:O8?wX ]%:K]*ULc),okU9?8H94(TmQF)cl78e4h;&=Q)nw.ϧNiC@ı 3tkǗQ'[&FvE7[7EN?OWEp%xI~kq {ı>tǨs[8o7H8S(n7r758Ϥp4keʸ/I"sXe}'O8zԤ-='yy$ô336i}=c>OkM_ۦ8 x Ɂptmq1?p E"n2mf0 bCٖGo2\h-o'S߳%s[3Ʌ.D"K޷ܩ\'Fxf"x\g.۾$9Dq 7#:pD1xDUFD'3N99YUm,3ǿ.U+~z8Hv"ݗk<&'Tm76՟0c? ?KbZp1uAq">9]KSKT\i~ IC`sI{9&l;l'xHMږ^ípܰ>#ٙLiٮ +~1-Y>/vG4G56Kq>>>><|> MX86 8NT4-OetR1<Gvl;">>>>>>} U2.D[J8%jwZG~9ɬOf|dTz[VG^E`Gg4Hm1gcrLs>>>>>\| 5gj愈#V};"?~Ə}}}}}}} lWx#G'_a\ 8[+@| 5{Z;[ߪpR|r>}}}}}}y\ %sh My}zb```ȆfMm!Mp‘3 g+ K2xvO4 ‘d ~>>>>>| 5kqK"==!qđa]߰xrk~_3fx7Sۻr "J8j OB8qd˼M٦RsgM=G8xhxh1M.xQ<m]|T? 0dt@dC쇿S:bp/' >gi܏t4P|RԾ?h}l};A~RA@³RA}3G?=BIxw}m01 8(Y;ƶ<}腺0D(ҍ/{tFYхr e6~(C|-eL;x>Lw)zXyO7#]z,K]gaP.uI` eC~%kO釴?u@ DZ$u<~-!ylܡ:9ir T.Av^G?V7>;4PAmՅGuy)@pU_М 3SI-p8G8O{ |NϻFٚ:jZ>N[*xh?nȕltA˃tGYw0 e 0D.riX'aQ zkA)~Oy(C;A-'#8yw?.HȺ M?*PT氮?y DZG>BF[n=N̪1$XQ~ W3ŒB(ZV= k#IKw,qb`HZ$Rۅ#iT$ J. hC3Jvx1;b?PG %;Os[1@KE8ɴf-IKo;u"(FҺ9O3u~"y,qO̧%:݂{.̡͓iS\7fbV[1#t3)&Mb46o؏<(?W2造aФCB&Pt!-tX-8(X /"0;e(_&8G˝-GVUiʱ4ȯa@ӎ 6t0&lǶOǷѬwPJPEs'T-?UG Nş%gP%фqnߡW_Cm!U -UyT1 !"=E$c' #E+&PhNi  #u#( !,!eҵ>pBJ. I!,B:-ģG)kD*,T H!"B±ebȰx 4BDxTxr,x()!$ ʐ. ryc $~0*hTmVۨ2#)@(!)5šۮTX? (]j"Su(Ŷ5紬A58>yoDW ބ k\V!f*( Qh#ba+PPqzh w5#]D;M wB8%`-"F T r_f# LFB,z̓i! mn! < QP4(`,wi'`so 2ctZR3e)Q. gi1D8bsB,,,,DdyHϹ{0m,o&ƪ`:V3TS3h$5Eu3h4"4^=Kf !.'H9۹ؖ8̃, ϣ桍(V%i<H/L8&@LNT,Ab ޡ 1e=!8#K&@TN8*X>訠& ,'CXN|l=Fl7Aln[ 8?|BXn4d%9UE%khޙZJXv͜~7 t+yd;8!7WYGIo&7UF! C"R 2R IpIAFu(lH,ö bsm(Cm)ezخhĤ Zr5 bv32/ģ\ƖQ/[@(ⱿAPD  ID#?j:J, h\Z.a YG!*]* Bf0C =>y ; 5x!B8B8#D0%\hA#v}+X C&UjO(7~XX2B@l~U9Tc V.!mg .W #x嚿"-xSQK[x e#Ԍ2ҢLQF!%fQI\&"G-G{QD0"(D#ª~#E 7e%bCpst^mPPW@8JlGqAƱsUQ"*/>VNxJ L"/e*=B ͤ3iĝI̿s&M1ҚH fѯ`})4id%I ơLQ$ى4FLBZ1J+dK0E2e*3 4 \0| AtL,cMf Du@T+DZ(DpƎFTv4p#!(=棭bFY@#.Qh?esb)A9Zp="VBh@\ Y² CdS dBPb{ʉhɏ)UV֑۞&OjK/VԦҰat:un3 lB|lg-|ATޱN })9׏Mh 6Hkr/9qu|1sysIY F ;‰[1^P8okg/NΦmKs\?CrBprǏ%Q6 | eMB5%m= hw\j lu5tvQ^M ``xDx)DmuZ9pOkMN6ؓOM~OŰu=IBԢuAHj 5(؃t{Q59jCGƬe*_#ٟh] %CTmdʏP/ԺCڣ:X#/N/OQjC]jE;*s'};8f{=UԺUZ~nhNrcr b8VS_0[ 1_]C8F&i~|cnz|cF_\Lq5jWG 5obZ<1BzpZ6ʣu07:m\rwmi;mhnTTԊ4V2&z-h4`@KIHnAp+ʮ~_P~}M}~݊Kyߤ< ADy~11 Ɠ'O,B}~ԃh+toe}PuئzqG[;F[Q@}H} ZR~(_.|܄zAKׂoľ78܈(K}C|}qxKo@[{ V}+cti'e܊4>H[ I}cls}Z!SpA-Di'mp>[QN} mO;_\iMO`^"]`cPEO,hc \g+1\lmĘ$wNlEgA[vo =ݱ[;=o~(e(sɑ<^pKw|rw:%C={nwӯ}LFnد^ =觃C{l:/6 t[g?YѭqS<~F仉>sc+@ZMPޭ>C~~m<^v9>(ͿK*~>O#~&Ȼ~*H?ۑ~C)FZAtq Žد+SaUAy?;;+u?P=oP @!4(!= VE^#+: : 2-?V VtD4O>D|2SCG$i SzX#Oc\j~?}c8.aIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/figures/patchqueue.png0000644000000000000000000006170714023111777020716 0ustar00rootrootPNG  IHDR !}AsRGBgAMA a pHYsodc\IDATx^k%Gy# W E/NR_6ZE9*b 'N`!i."tZd!jՙ{鞾Ι9g朿S{L~7O?3 @(P 5iP @(xؤϛVt 7ɷKo|>0L|>HݤonRsV(P lۍn4 @(vP @(F)qpo|c:P @(&)ݤF[P @( n׼<(P lgΜ٤E[P @(Q vo.t.:gG&S1$pKvO6LjۢmKRA(P` Q;鬽GyZ^^ P @) ~9q'w]q⻺._xta]$Ι8f<[XN/ͨ}@;pnϝo)g}8qPw|6ժ򸋎Qy\|Wo ~}Ty'/.q9q1DQkS6cu}okDۺZv1{u.ʾZ| OP.>.}Eܡ 掋 b PXBlh+eI3˨~;F;=Z@Y*N6W +YNZ3 ھ%ۥcBC|>DȈ:"<)IG9`q0+#%RW[Gqψ*ۭl'AYo;fۓtrԕt"L|>X(o`wwPD|q,"srT7W~{+6MFv~Q>XX}-uruyʎk!|>>40jұe8SUc!#L!*]v1WN86mt\·s ]|`}@H淾hsUlA9ݩ9V9ͷso 9_w<Ω]]ϱ˰ecws{Ws);n-(+=-fy6Q"+1v/__e)4M ?|;=|$leIp{6K~|68@n{j1|>n|*}m}_?.N~=7ߦRaԏ/?|>H ~{+lL{7Onc|>@}CX |>$u]@|>{lc>7ԯh\k5|>|@-P @(vzmP @( nP @(k'Ngm< P @(@@?܎ (P HZ-w-?c9(&qѕM#~d!q\G]8.GGAm٦V#f-ztU΢vֽvS}<IQne@];36>UYfoQf'dyZJݶ_?ue3ɓT>=fV5L*8<~x RMR/&Ȳc Q 5nSؔc~ɓ)L9֢91=(cВ VA\2C>XeHTǢZ-z~+>hڸbQ}ClVC٘ >԰H#%Qߔmny~)l103TӹXx"kXE} u+LcƾCmȂ[؎psֈi V*3Ѭr9eVJ?mEhnw(T1e9 ;L|Z_~-O9ntS)_v:j{m{k5꣨n;tDThteS|ƤG,RYut}UIuen*v<6y={|)5cA1Fܓ1't-#j4ǩS3sFe-"ἱ* OWcM[+ $) .ڴt\ <6yMflrdޡ/r0 ]C { ai( 9.(m# *bև1kQB~UMcQ_ |xniȮ~h<4\ATu|v{|rLP ]`-=:onCkBϪ1fC}wU_;6h{]5V<݋( ܞ:uj~nڋ\1،iF+5zPtԓ 4!ttX1(MdkՊ 7V9&۸Zx5ݠcGGW~S=m<|Xy}0mRu"ΕB~cWտ}d<;2RP~}ܺ{< ^ ߻Ki 4'kXv`X W@2ܒh,cԖڕ t_ ei hEYREŌA7aQ8J] Ypˣ}aPU(fM1.̾*|U*´Cs v3iWŬ@^#<nC3!ĕVS =Ptmm|O+=SUj6_AğS4J-{X1q)pN  vK0ೄ#'}/|]s;"[/<+-9itOB}`l?ΙJcc/Tg95A]\Ӆ 6vPlB 1ipޮoEzSO}ɬn@ٶzSw뢙ͳ"L1wNgEԖ˕8`f|5ѹZoFYe=>Sh@ dí p &=hՔU{`}_\[پeTVbgAYlg')_ }^e*>;-ʞ04ӆ[ yT!Ieot::f:؊THqŴ1ˈA9}f 4p6eD,G4\UR_}ݵ`kjྐྵ͊YmT)pz^݀gڐ}KgN W)ILFϱPӱ[kotCҁM#^(ʔ?F|u\~L?KuMsi8N5^?>mG8ccGuj?8}PE~T{=P8vwn4@ $ӧemlq34e9*>OB"e:-ʏ xmV nLUzLͤ`u#icJľ>eK4]F^4h1! HCR`ވڱ{41`4ˋqr`ӯC'C0i[ 912}Ҝ7bR\|>՛y͵k?Ҟ>o3چr;:.k~/c$ve6!堨T=uԨL[{qY3϶N3@'u;Z!CijT^wI},3rv m?>T/=l BBd%("ގ1jKʆ[oO2h,:+S WH*ZjL9k]]n=fF o`{"vɏnt}7 j>45A_;nU~B0nM͇No ~R_m@7f1&ʛejeY|X5`#H Q,ՀwJ`8VmNvBvKwfR `6w='-!ԆPE`.mqiN=D-]bǗ + R4k#g| ۉFȖGD፧8R04i V"!0iX\>Z6zJ OQ[74zҺH.K/}_ngέ}My7Uluք[7zkߪE`l{1;u/(s![2I7KƵ>?B{CR@7SnᨔžRt[v`p'4}kOBb*9ۿjf wEmB>\$eIcR;5%'->k<3<)[gVzJ)׸M&3-\{Әqǭ9k͇XWn9 _b=FZܵ}e h[w6vWG*S#JRYܐx#+jCvR U5j1WOvX߻@mwZrjXh\}Բ7_]sQsKb~ReC;\64`W_ӖW:k ݩ NKNsQN? ~}BBP @( n7F(P l h4 @(vzmP @((ݐF3P @( n7F(P l h4 @(˴i=[ЗяhP @Z77 yєFsL*[`k/e {V|.68Ծ.'@(S no~g\,?ϿD~zݽp lchp08鵎0F @ry`$B=/fxmlG@1P @(Ȃ[ؾ.Lլ'/x%93n̲w+ CaY GAw߲T۝՗]7A(KW n)lO|.qXB@uqxi8gȮ7Mh#AGS p"ZLfJ~.oB 8w5mÁ|lJ Oփۤz`wѫC(YpKgm/l-XEy)) UP^ԥN5TP^Uu]Qt.k,/mnbS $i|ҎEr P @JNy/jE\` duo7؀ HtDn_7+]¹M6/64#R5Xuemeq+jkSv6P @(@Ү@)w}Z%\|MCnoԶV@@rmu*}7Y0"E`͑&PtAlopK\.KYת/P @!+-cp l)]H|r{:SJK๹)LWpE]) ujkjZec]%P]'$fEGx^p(PP nI1?3o}E@HjMQLc* eT<d|YhAO-1T^sl 28Uwju"}9j'P @(6\l%h7R.JEsVox @o{- -$J\E_._rP`4 iehںцhgd(j,0 @(X% j}f˽s+yP @(@ nPeB(P DJdGP @(}(CU P @($ܞ9s&s)?n}~:qN~?A3h&@+%}拮O?peB+-6V |>,Kg#x܏}et|YpkAbx{ ! 4|>]@2 f?*Cw|gs"C+u[j_Ό20(|>> >*1[`Ȭx3Tlg]]29\cOa [3qa)ڠFuVen`ttKi|`[n>=+Srw˭<*uk3q0_FOA+}@c8ܦipଆIթ  JZBCS19ƒ*ʩ`8+>a.s'۹^$nB6KۘMf9pSWα v7^_Z:zpof-t|j37h* ٿNe? ؞˫c:AB'} [ >俇඄d3K,J`0e*˂E`wp* lcG]N]9ǦHi6ܶ7hIַk3EOnsΠFkԟm*خp{XlMEc4BY2-agJ7?YQݽLӊ`ZSxTJ#-Ac]E}QVwhe_jXE]i z8pVbk6ծor|26U=G]ջ%T*9Q/Â/4V]f] [dQkcµg&kLr9b/ԖmR} TM۾īYκr +5GSԗmM ­ {Z7f}V=E~69vҹNu:3q 6]>Ӟ&:}׹S1;kwNjf@q8/gxƋ}ю>.T Sy/u~ {>;犉t-!VeXu\֚,V $O;V/%[D[S e>ju@k z@Sk<"G9 nqfzoD9~l9xtlDa .~:}}3/ Ԁ&!nԛ~b|OY:Pv}k3 a?FV=4?|wmףF/+%ܾo*j¦n `KH;zUH ^\̳JW๻F #p*`K?_} ~CVCǞh|Qg__z<]v5@׊^3]|G T7t^`Lp&?zJ\u6{bCgZ@ҠV7-A֋^@K}Ѣ1ʷu.S_.{lſ)_0rnIiiթ2 TnBpH ZgD:N8 | ("[E#%ZQ:_)|+ҙ7nX 1{W^$nXd)1vJcgmOd@@Rέcm mbpӹ 5wR pۈ;BܸKqpAY*lI ߂22L#xSRg+#bvÂֳ턠w?p`;-zAZoi c6A9AL0΍FyUTDHU~lfaG)j0_nYjm ȒmP6`K8IPW'9&@eڕ4v>Luy杊76F$­3M(:{t@l'ٲmu pEtY1v\pKܱmnt:Z- l\q=wVF}ȯPE]B9<V+w3) 7/cڢe4U΂2(~>}oQR6м{w"O ɓp4Ѧ(MTkkZ<%mŽm{}[y\}Z `m_4D>g \EУ|fT L>uycE"Ѷ-MדN C!;b OEƄ :H=J usC?O)ڟo1m܆WaFd]}PSrnڜӕnTA`@\Ta~;ejf%+hxL_[0$p jirl펍s#i *.?ڕMI/ Pr(vwr@eomI[ҎzW,s |tm7P >#|VSc=Zwс_6݆Ccp6_VƊvvE9C5/|>} +rր  .v_p|f >@+) zA[^ $|>۶;i[(=A(P @nv'JP @(XP @(Up[yt6( @(T5>g⡇=%ZM A(P` [g?b7s3nmYѮ:"9\cOa [3qnGˏ[8t:Nvzy;J\Ŵh|o[FPmB.[mptiʾO-]TȆ[ ?S'+^qBcn0:}AV ^k>|h*&w9o C n -am2W|PAMlu)9CMPm4mO<S'2(A d o|;6|0a~m ft }4{sCp#~Wө7\-Y>=}qleXc `/pqFpsֈi 4mtAgYY$Yg8;t`CMi6+`(vĞOH* PʀMhTFe4J2EqSowAoqinUN֪܆(ΌoܩRzyb" MoNfsجh:t u^F8ӯiQf Ag{}4of]WεF-ޟf8|].{sJ߭}^MMP * /{{d~-"h"twI+=> nYJ7ϓ+#,[:rx) fAY S 6[5 :H$ ^Q  >p<w7Q yo&;r~yґn5zd.:Щ8G`<8$OfK0pcPkj}Cg{t߇ĐێN&טe<5ry,+K#}80?׮SFX.P9#P n.Jۗ?#hzmbڋ˚i18tS(jk//^^ք[ V$JFQ$2 9ۑ"AQ0DXu إFV)H)vPU493Z{i<_ܨQ"fزEe[ߘV ݮMSt <" ~(QwVm]c|k}M6 D}=ϸ?j\#n+A܎ cH[1>I(N}gMK7!n+i(/ƢíyîFQZW=(AitOp[Nu6`p+ .4п n<7tNmO*/}`\*`pi n3k(Z4N`s܏OmGB(ЇpKw`Kʆ[.ջvK5Rl ;JhEbڬ(o%4hNViG`*#-ʕCvi9uV:lR9( (SurDˢYαg$߃H4/ Ù9i̿>l%f]~i y[[2bN4ȳX?#*;/˷Xv}:8(WpKf3f3cAnnu`յJ55;q s˷\v}BPcێ A(P`E nW$<P @(^mD(P @)] @(P{kP @(VvE£Z(P @b %B(P` V?=UYΤDAP @(X~k7s3nmYѮ:΢ Ns.~}L\(S^Vu|(#m,]oU^mYn_zK6H_uݟ^>vH%]jeY6dV'㼌*ۜk7~Q n5OWx ApkU@zpVä,8U*aӂÇbrpG҆S޿Q 50/rm6紵M]mqU9m۾in׳~견ˬliS_sbP`8 d o|;6|0a~m ft<ƒGv/rm6紵M]mܶvJܶ6XsY*H[r}ғͅf$Vhд!S[:šZi ,aߡ9$4}.Q\6atùV60Y w sXvt>3>5-M&gtNImtUk"^W)͊߉[4cgm"'ZJ".qSjWo( ܡ/ n}_ZuFu OK7rMs\pI>/]׍ҥt.z|rK-}~i1dKC) /{{d~-"h"twɊӮ4e9*>OBȮ̚pPp̏m4ב߲\8 k*cݨ4 >:o.nA+ۆb F@+ᬾFKU7ݢ. <]yLS_[8t<U7Cұ>?I.by5I/@?\8(%DnjVNQЌCtn !"kF@.a7"`ٱ-b12lSެtRNNWѶ>E+?v.!3reΚ˟>G9f{8YdtjCjKf߬\C* -c.%}ғPFmO _u6VX"5x\jљ qK[4^9t*i8ONM˨Eˆ[6ܶ^uP,rلHU.rp8 ^MMgtACsCZL:6~z%یKC( dp Ԯlt^XL-A;"wZB) 9Yi S/.n#̍CN]vXS`[170{5*Ii _j5&m.6\6\׏ S537@ǂ0\M'7AvXV&fbV=0qYpQw`k-ߛVMEI) |{ZQ]{A+ !c{ZO'Y{Ђ6^3%"hX^4Hc 9\TiEdr3ܶj-_Zg/ + E!h/syF?̟}+S{: b!-VO;5w,>qnp- P @+] @(P'= bP @(vF(P @$,P @(XkP @(zRpۓ( @(P` n9jP @(IVp{w -?oz GġI~8Fq7^}yif7& gɞ\&VΪ Oun=ZlӞvxx/﷈7H`*dR:wr.첬P:~TLCmXKZAS%*ޙ_`6uv6xP @S n)bK`#?ⵯ=#F!?y#.̙MঀL1m5戀[SE!5zXFM dZ(E r9{vǰ-Gs PT n)l9> .qjlL5ZGa܈=%\B> 4[ɺR4\iۥ&,CttOZDjj8.i U9EKjtlylVD.ukit>g gCo a^_ƨҫ jcm}y`V2lUPP[%/y8K[g6җ^֭K)͂8d2h8 `DSݱ,m# XʻdS=mL7=!+ Kߘ#vюbV?l:*CB3ڎpv\p>T(r IVzpmj״TbKP P 31RPn)Tb"5h ȡ>j0*4r2Um촣w߈C)l>  Z x }j:.#Gnsjg9K*| nBK0,=]/A<.{ڀ^DíCjZކP|>֯Fέ]pk;M!cf.؃c P @5Q ni/Z4F8>) $PrmtM(^ZZZN3ACBڬ ⲧVmg XQAU%#=-!/r+*BC ߍ2w>eD01&C(@ܒٴ.Ei'MM`{m eE\(I\ Kn]j*i6#s ְʥ8g\UoO8ɂؾ\0`mpj+Ћ8+k@`[ۋ"4"Ұ] Em& ` ~pAUa+|t؅PP nloR7h\  P @(@+*y0@#waP @(QcPn&h(P ,vp*P @(?` P @( nB(P K@(P ,vp*P @(?` P @( nB(P K @|>uə3g |>[=n|>nkx6}p |>6>33/-}p |>X™ƙ=m!> n.RkC|>00vQRxT7n>|>04 chN{*mf3h}p)|pe¯@n;8^㭛fp{7??~u-0Ձ-?`wL&8-w[G FGʱ mGޥSڞ{|JEl˭uվdM2{X[llp#Gmۣ[%n՚c[5m'I-qGZI5p;yv \T|(q֧x kiʲm,T}()[z}\i"78-b[M.9z\!]p;r@rc !m(:;m@n#0Hm$رlH5IiXImmMֲ B׫WojSx́E2~ʾm9z\Mقf)c{shwpKPkrCptΨEDP,iI+VMWVSBsM#b+SޔXQ:Ρ](dY GXdՂ$pE}%6<ẴGv_GYEFyڍs)xkKM+e퉵|+CzT'/8zJ_A3w—t4ڸݢݵU?=,^i >hߗuc}MQz>ӠViImh]Ҵ9Cg(գ<kڒ2eqlrבfKȿ<~[=Xuh#-b S !m9)kvAWp[yAGfc]U ſ6knьSތXo ^.`Z7E_)LvBp"fʂL;w}l#-!YI0N[_#U{6pQ7|*yݟ: #(;z ݛ.\)#6L[3))Ǚ~ӯb௏5LṢ4k]\W59*Kٔr-t{֓Og%7jW.[Fj |(uFt=%p#H`@ .m-ثU^y445֪5}^L=ȫ"7SM76#:[ؿv68Zֻ2udm3-!dg0r}]7NPdli^ׂvsn Kݬ*}lio6"M1DSXaLsX9Rd@sKCv$yOG4sJIf3h|T[՝=T?Q9SaݾubKH!36c҄N=,$}zvsұͪ:'<Vs/fb+#-UeH#߉ҲfYmy ٢A-4^uMZ9eZ[T䕲-o6sESES ʘ4"|n@e Z[5(X"Ń{oy9pkrz*CP+96u9u>ule5[Qm=3/;]_yp۱P9"vIPް<]سH88ԷaUzᠯ宪ש^ml@tsZoUֳoа'nuraF@D& @a[?5B򄏯})DPC͞-q\#(X0mX?޸?|>-O,n|>0 m~NQev /|pQ|}h%| nzP @(06֚evyjP @(R śTSl#ese{]Z!jeEdK*ԝmlFEw4~voiz} qY8zhP CܪgjȳFߔR~%oћj͵]i 9++'v۸Y׀a h @(@۷B׶qye4oyuX˾ t29vW-ᶱ0 [PF,Xm\L ue~oS'C.n:}mu AwetV;{Pp%/r%[?b߼>udý;?a}挄ެ5BǮ?\E(!rQqܶLo:φ[kPub0:8wf REy^量IƻG T@;fKdmݬ~b{-co2P ]{B>R[/1<~mP @uWp=-E>v) @%P @(Da#~ME36Dt4 W P[s[sm"禷[z Tƹcd7#-A˜2//(3i;~KVpdQP @+zCza(Qt ܮP|T P)"[nc˶plQP @$&ɴn7t(Au۱P @uSpn=DJdGP @( nP"P tQŽ>4|p .(3g||>E@- 5|>|p .(@-|>  a h|p .(`*|>  >2Po,ZM|>|po!œ0׵um ^hd n1=p [ԇp>|h|p7P nJWJگ*[ ɿn5A3zv# [^~,.҅?TAzXn7c۾o1 |>]vЇ>%(Scѷ} }pF@ n)//߈oy-"ˠrc 7}T|~NsM+kwħo9Cˁ_~ƇΧb~GyU);^| _wu;en6+>O'?)ꪠ[AoX&oA@ ^qng|Y5IG .nnGkpO?\}NzH|T{}GR'ut,ߍ7(>񏋏|# Փ< %L='7rK {ĉB{G?}|bVqw|pF@ ܾ}ԧd!?Wu y~G%}QbggGh~|E|k_Lu|__җnn;[GۻYhcW^hd ?ASI;ѩ_}u)qΏه5_swmo nwwo) x]xPJEL]ni:D@[ZG6GV@6Bini7 7h^)pKaCR-Ej)>d|_<ݢlnwۻmԃ7Bnʯ@[؏W]{?ClOs~c.?7>/*k;j=|O//'?/|~)/x7w "sl5RR@u1mkKʧ DSM[Wf}2zs v ?n(s`[쪴8NiΫQl2tes bT:AElmYm-K~1@tFٷ)pK@{-[JE-k}l qӜ sA-/K=묳\:OK&'-"tJ\RejT6-E|JW ،{%?yx۱[[o}ߧ EFwUYD UqUEgNUU[0yþȰnwVJAzDgc>cmԃ7BE."PĖֵrnp{g=Yf jg;)t@m',!Ї WOξtM2 믗I[*S3.@J+ )pK (ߖ"7}vN}[|'u)YwK1!vTZfDuT|߱d]|^_/L`]CՇY#ۍ@/4o[ʱթC׿<~ST54-A|h v H-A-(E7 IQ>/MSv Rrx n/w_q n3_O_7L E7Mթj!X,zt[-ciw2ב[:dpM/([H4Kɠh4vl ɹNqzv# [%H"M n)_$ߴ{{eoi CK@Hw[(v0-!EP/mvS7ˮM|ŻM߫i7˹չ<[ |.c{A&^`v挊u{2t|cڍ |߷jvlȭ7ȡ zPF(VS墟ܾ/OWN/Z۟/_n \ijP*E;)zK97}hѱ9=& d BKz1]-(h*v[ĕ!y]Gۃ9rDMoJf,th=[^;Fۭ2D ԗuBsx>B#V`ď?sO'R?!vo9lq}HˆᜭJKՂ2Z'PJ}GR2(oNDc[*ruWz[ZHWW//;N/Xi @5ZmeoApy}ĝ쟕p?.vGpK@Gnc {wz͵; ):6VO }f~w]nC2)zwCT҇:jLUW]u?q%K[>0}_m0wmnz}+ .@ RpяRcPkWP-G9-(bKT ږr)Uk6-nC߄t۾o1u] ^ɗ `PvP+셿.^hd .=w~wd**[ :}3pmԃ7Bn4¯6Fyn7Ⱦbx<p ҟPi|p7P@}`nFh >^hd "}׍P @Z(E?IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source/figures/recover.png0000644000000000000000000012221711534217015020205 0ustar00rootrootPNG  IHDRsRGBgAMA a cHRMz&u0`:pQ< IDATx^`F}]z|k{$p$ 333ر8؎c;`vfhMSHjurZ4iӧO3NM?~~`_5wjߩȗD~~Vab d=Y R?v/?s7z pp[rb?8/>Z#fؿdtc^P-|OG6#k@Ǯ/Uش YY@j}N=7z$+Ud{W*L1?ǟ~z~|c;Oo~?$$+NFpc~Bdw.ne5#޷XG?>=ѣ~x?:8b-w'ںr-{6$K?XnJgq1fj`t4<~! *uuMꙬ`ZwWmݷr˾[m޻|Ӟev/ٽt%DƋ6@F 5hX~| yo`:kYkfRX,^k0OpB-v.ЂkAQ7}\k0s "=hjimSV@MZuҲn-<~qu]qBH@{4h #ќCg2c f'7iyINdτe}&,qK1>稅=G.z}6,|5jA %b/.jܒ/=;pp+OY9`ʁSW z5gz!3uCgf751wHhyo`ØcjmXgMlt$hٖ˷LYuʊSWN[ JH' i IgdhN]bm4ݜYFVDD4}+҈CH _TQ۫઺\r232((5(-UnqZn Tf{_GL9eJUPFUUH-Q};umU>U>uDMDmTg|An.\+2O\.s?LQOUQњb3YI >󵔰ͺpj@T i`r(" G nr q谍]fso|qak֞G}9Z8w <Jz0OOD@G '=2'] pt"`vr qУv>(Iq]\Ypc$?wS22jp1:lgxc`.e|R1ݠ'tKky7Ѧ] ]64|m0>E(| Xs;A>k?VZ3]w3l|uvKwn Zk 5O.HC|jonܽ ?ܼo}6nڃq8o$" 7\Hs>L)V'=@ kOԎΣv`^ 'PۡnO42X-}WWPzF#eOM=VpG?% -0% ΄Qpl݃c~fvpMOy6tXp':vہ\ ,]=ǜ 8pYϥ>N3{DGS\[Q{AĶǷ8_pڼئT`N;6i7 Ć;l  \ >F&^0LeJ*&S)ׁ149vp.tsqY.-ٳdڻA{Zi1D6if1_ƍe}V΍5}VƲ rn,*HX֍R’5CX4E 2a+%l~r lMcNx`+#\T<|q`k9e6e֕U5.ֵ.6u.6.6M6-6mTg]mιڜnv㋮֧ wrkNw9fs洛MM3SjSj=WTؔ4$,?+J,^m3'C^M (XM U=X{zpHu#|Mߴq 'E>%rr rHf90 g BGmu֋a:,ph.č %IX&J܇& VI@r·e@k>˪#(*1NʊNΊIΎMɎK͡ #.CHϯmj`vbbf'`\ϥ+tX񋳋ZN^ؘ^dcUbcYfsX*[[:&V[6[38 ' ˮ9kgq΢΢΢΢΢΢(OY4f8W0,8CN=( WTK+nbmt8cN&'\8jy*z5=#ޓ' oo8 zy8bJ>B㼉 K&J K OI&|_aoA8Og(YP/% ̀qD3rĆipDB$'(Gl <#6 iܢ <vE.02i> ǽ:S@43t5>bctvFDь|By4an˖RW 8G؝aI#6Brȃot!aoh0[ &-xMЈQRo0B<64QpV ^ LE$ xN=op*I6# ӉX"a "aPd\G|jAX&~(V@l(A|%,qc73'RUD$D2JE%%%D'ƤƦťǧEă,#3J*tt ZN2 ^cSclkO-ې\`aRhaRdITFUiiZeiZkiZgipܴiqV8:21ϿpuO0m=a|´i=deZkeZmeZieZneZfeZLUdeZ1>^~?x}U+"ooYKāKű88jyT=H O/<) *90:EԠԠglj0X(.=$.-4.]Vq3PI$[ǥ(I@3 xn2gX7I"TB^$vhZ'  E$# ='ݻ rBV~D7a7"א7^户H ni0>$;2XRyp`pgiqYPm1 t. (i O~X#NBD=qF{-KNr#fBD&KB6HBB%vF=l j214%/Q)I_@&$qm M>8ӈGKt{;gv@v" 5C/-+#ue7sźBص]?bn OX}W;K!P0="aBkV~O\|CAn~nAQ^!1OH,QhlNaV89*+8*˹Sjc3g3>`s(QF%8dGaɎF"CK8#k԰tGZjS*  4;h{8qUH ߿wO?!^knSݍ…#?Ej ;G!qa %E%GPB!qi Y%DD+7&UljTiiyqiy̧*–y)8VX|&0 ԂM".U"ˉ:,UO+ƹ "N:|v*wӈƽ?҅{3t8aPe7g%-yx BdMrD`nDc':NmkHBDP!>pSp#㍕o~%Hw~܉c? C.Glf@0bBm‰; +5^ A<#zBkCgA LG F/6K}x߅NC@X^dIwڣ@6P mB}(P%Pr(v E b𚘞sBFvDDVVN8yt9kkgo`N|fYUgG >p7?,8y;y0Zl#~rBZNa6&j'iigkgo7hhhhVhVo׬ٮY]z-2GĚZ5T۵*JkhhghgoLߘ1yRo}zuHF+z s`\W(17\$qIgHoxB`Tމua PA4"wQJvqJԜ\HR My]m98l8Ț2*WFTꔍ=(IYvG'gGAI_NYV_a K e;+pb!S<)Q"$6nK ‰`Rܫ BP"< ! !,,tE/Bx9:!7va/>[l` HؑvG-@G!V&+g" ]mi}Բ[l2^e4HCwGȉ3Skߧe@l4<qMF&6Bn~a?{Ǩ#y7A9oމc{':wz;rx5;'wB(g\q}2I'i\q}b/|l1G=5 d!A #; @;o*r/÷8l~IXA+ Xj •̘D< 18=x!yElEU%R啄YMǷ"ʗ|b!,)2TP̚=T*&coaV,"(ɯ3 - k -H*d), 'dඁONdҩ'=aDl$''f%d3OcD"!a&6l_!)!8&Y1'J GIG'7F]Q((kkCv7=3@اL$xx}?t`k &R6/~:& `1_ _]c~4t6AV!P@ |XE¢.:0B}h+>[5% Y@AayMރm\}g-Ha+Hp,[iLk + ;5:1c1Mƫ7?E^3Wm{۫+how/ܿsC?+hha=7G{ 1GֈLf!Ο?;ɬ#A=SGL3~DIa}?s_xsCLٿsO2: rj-mݽbիBOڞgAvǝ0lŕWtGj/=4j< K+)ɨ*fmgAueՍ2i,SPyM\FE{Cm%mu#vjɡJ ֋+ *,S%:N{}yLEvQevF (K^l̂rY/tyQ N/_MbN)! 3 5+ ܱ6P$fB$qX cR!h?m<B\DV ܱ%AdWlFrK`:QH3s{HxhBx!ո衅+Ux EaYƇ%-ưd{"!HX1V d?;ldJ$!4Pi/ڣ ;9]8u`֎VnܹJgj]OIZe{nٳn^]Z9m00q1_sFpst}c:oؾQcƍ8o҄~ifLk2w@Xnmmeje|5oľ%O8_܄~:_и~x%; ^fU*K7G۠eqJPSG{x1mr\ѱw!nT4|ҀнouP'g[^_Vݐ:﵉Ɔd jd 9u͕-%m>~TY}Kel\lP} 5-Xk(uĉ_S+q<U%~MMϣ GIyt|ʩߝ~3ZGVQU\e; uevYLyvNn3m27t 6KQ/f6,H(霩6ۥ?-ϸ P8;ĤƘN~>fo@vLjNtnٗXNcMy1{`5&JASͦpez#<ͦ~0 Hg?i#>^H&.3;`C3t-)˷YauMո+:c{lPg~sc*V}vrp*X>[J O;t$ZHjj6Xk=k6]e~{Qgŧhh\wPS xݸ㰎#nƟb5u>SN8(t0sXas1g(( Jk M'&y7I3Mof1"xƈi#6{ڈt ӑo#ǘai#xztaDa4kJlmX{[G;./.Г]J"p%ģ.|+p()()^՗ḴnX!P[Y  ).lk+j 4TQ&2s[h#WFN֪z[e)֙-U1Pȯ\_ZyI8).Ӂ!yIV2gULݼ$'0X\U^IU^^Hٺ9([&9M{]m#K|aJ&0V"BQ)03=Ϸ"u)s^6xg76$ּ1:LIBe=\ƃ#$ɍ3 XወQ{ 1΍'QmW2qr}'W}fmTdM&2[L( C=Dž:ǜГCC40sOٕѦߪQfG:㷄tal ߣnqp{7QmىS ^!tExB1 7t(Љ3+1 KFvɺ(X·.>[3K\(O~cItvC+u@K{]d!7q;e~Rz:fX2lWk7ضr^+"hgN]09`ECO_29r%MNZ>9e䴕VNL/㎂引-__rRI+'C+$-tJ)˦CK/-iw|̻ow^<}bX,v4' Kچ56PxxjFcuu@,/-xvUiy<-o('HA4*OOvꦊʺ8✆-a~T9A'a( !5ssJ]+HmJjl Փ߂QQ*&*v5,W6ae:|II|+%n,@ɉ汈0D1v_gY?zRn**%x!H%K9R7Yd6@|bgV ^hEq6)e^S}6 [i iJu*@@X_=[Lͱ:zxuIsnsl I"&%t ^R$[$Xv{"S`u[Bv$F$"X?enCr&xb+ H d_+y5t6W¶(mUa t rtEW( ls\CJS0N6AW=Q_=E_=@=@=P=HXxTjh2abcBc|cۉҷkh$k$inHޣdlnn1l"lLB-?%RcŇ't'\,uNFĤF3# <;:)f Rm+1ߓPff6Ӥݓ6,vֻG}}Cd`_m0<^Lwz,˸L#Sj5.3/O{M(v's >zyv Aq!Q)y YʼnY%)Y_+Bta‘NYNqv++lݧ4'^jq%9PSXQ_W򈫷E EU+dWgVe&8Ny}¡rqIQm\c08zhP|uQiLhRO7.(!ԾxXVן<ŝPLosH|MT[I 1н16Cue;T1=Nm 9,+ʼn 1wx{'}) C@c|Վ=4ѐi>t¸#*]a=wrvC4=J:tL"~iѝf= DHŊ{}v#GI[Z=ޑNcF [G[wr, ։Kt }as: >ael1ٶKLXd2sgg Ҹ@S:gfo5_={"3^}#}7/ jడ#CFAd4z7'iT4b$h]~j^ׂ,?\GxW.>-=IkE^d՟]X֯_%}{.cQ~邯>>^!~@/E+08 ?u7>dmr됍A'KDN?k|yg裹yX?iq #ΓS]] ZQO- 'ᶆ.IprJˑ!2Xj,̟d=$_?$эKjOM+| T'&d&>|c22PشB*“b@4[$aۅl ®U$l{}h~'gLcxp;Q9_̋b"d!%}*[n!d:_J:Vxoȋnf^@T6UDޯ VCUˊ< t]BGWF-e+3 ㋒o ^Zu8t=t 掁4s 8bGdkj}ho ڢ;grfa~ lC8[FǤĦƤG$D:H2昦QI;<ɵ Z$"H$d#Ah+e3`<$-ψɭ!#r5wlMasݰz˲a{r C%x xxpp9d8 Q{Zf.\2iּmM]=B}b2b3̐xx9 W@44Yl? 'F@yQuZّ)yH"' L/ӣwlLN-"co≰]dGh0I`0ERHH `9s1X9#V(gcent$=T)住I6 őzkK;w MXESJSU!$UCvXgI'M@Ke$f#y%a7D4K7Ҡ^]M}u*L5 X;AodHOCw) )J$e$i-t젇Y$-#"U֡9pZO^$:r'dl[᥾;p; X#*da!˺KXڣYNе]]%@6P !,+KXIc f`m/'fVce/VW}%]F(^q;A;RJr1KK#WfdA+,^)dFU'ew)^?uwZ830 pfVf P oEN g΍Y{xEF'$z&{'DEgEFGƒeDP?C!Mu+LGB?k8AYb}IX˂e4z sT.Aq(_e"hhy=9SL.d{*&6J"}mcwcN]C t !O~Oy;nlhxv4&ʹ[H/cL\@Ҫ2 iN#INU6*6A\\N|ܜ1M[x1& A %LCH{vy6Ckf"d3#yce2gKLgtF*Hh>1tʉ$,5dd+LV__1[ck>M/vB(PuԷOyW aU  .2r>"a>[@ 7] $,z~ܳɭjLt|.sƁ8+.Hy2; ;MXVG0aI!P,sn ^{(jyĎF [Oy!XD"œZ` (| 95\Y[H us Nt w Jp IKv Ir320x|p '\I~<$18\#][mpgXGHGXe882V%{Еx'hx e<  Akpk`< zG-\CPw3@TIOps#fBm[.#)&A<[Nc61=x{IݖGLЍ,pfO#{ď`51;ta&ba^5йX@+LEȈH`LE8k-ΦY!TwʭVb'9ml3<@::?=~EP0-ƌx+3$trdDnθEӽ͘KaNd.23I6"0n!ChZ,DhpZ0])oc4e!;╗G%ْ!,%P%P AKƇ}= :9L%CX.P@bm) n%!8xN!8xk"^9~Y?٭;X `C\T 豋^#; 4g#ݶZ4g1)KܷSĥ%c'Gq`xlMnI"gv0:aCp[OHHbv>,+&a7}0qv b'['h 'N@*'HMV# &HR{1~~~l 1A!dq7ȇkgbc.;-\w]=gji ]G3,:d'SDd+2u.2 G8dGf$D̉DO(I@I( -%|5aZ= rpxƨ!${FZkgikOŤUd>҅h%LmsY3>%1W >"k6&kfpQof'HBt89 YC8$"ƺ`7o{l‚>Fa:S{}o@ xįC`%,(2d%)~5~{ޘS"b*7NE;I ' S1Kq0z>fWfSa2BpcC\p;Lhd.:X YP:7?li^ц)%RauwPCc%Xx$,N=?yR]< qX !߱$a1 *a鬬 0B,g=zW?$xEǬ, na[BUo^Lj™܉NSz,`TL-~7iW̝\+nV129ݺ`Va/6R4N&qo5{rNBs7S,|u=:v3[` v%)/>:wuqAm @ܴJ|QkD0 D0ӟ\c ]Vw[mwr~-Z;- ;bˁe:0L27ɦlK=ra) iaf W ?\?dՅ:`M-LyII!<#i4Ndv?ri`ASr];I+"'Zw~QqKHE\b<?5bw!Z3b\x뿞 q07hSW)UJ,S@a-aMN]o>_]c"z [YNFᮾٗ2, x_}7E"Cfc%W^dH$ HZ_l&;3ڮ;y%@*җ]&Kء(aD`>CXgѝ?<]c0k!iT)[C"9(57LpnD<PN>HR2" +E^)m+DUyӅa ^1&T޺$= D *DȻJȨ@XvU "\2%aWXfU <$o,] 䃰L@Vp U!lG}Wo|tqE|[@*uW!pP3sPo||L ߖ8-x`P!gfl؊ ^ "dF2Y+4hOOÍ|_[{ gM߰Oh3"q쏾 I` m { ?1e~N-Nb74Fl3]&Oڷ| &w;Kvfz:i0_ot|8nhn|%:H9k9FT}hO[S`(x3I>'9ս'āe1}:@;U˸|U~й C` >>d%=dEbA*+(L: >a, OOF0L j%4pq +CLV0 5R)" 0FniGMdMm who[ډ\7좳b_>$Ìd2D#r-1arоLn2#6+@Rt#?7ҍqd.d'S3p4މ 請!Ѭdgc"ƂcPxV!3Yᑠ,Z'lbd&`Ai'9Fi~2TvٮuXlCs29d̄GIWn s̅+`-x ;dioO WCї_3|}`+WC>f6P|ox#{ ?o>Hs=߃gz beM")χ_+o>3 %!ph@(ǽ`%SB|r$"_1F̡"}`tl@sUf*o L5b'gw>'' )} 0wBD1໇?_nQyKOځ,ÖWF]y[v wVqgX.;#A¦싚XzµovVOqq׆sO!bj,K  YMƂr!N-ZXv%8SHƢN\p㮔Go,1绸g'qFauC7]8gа;yƭ.?k ٱq!fչo\,++^m xJ.n0&G0;(Oo~ Hqy]n!!9Va֓C2}ed'iJCZhϤrЗpib! Mk6vŞN#BB[\WΪp[=,//wXn^Ai*ۮ[D:yXax%)]+2wq( ߌ"^ccHI!~{f ػ~NyB~-7U}m6]CϞTEZo?3Ҏ5\Eͩ6[ڶ ۬ս2nzeȜЮ>S|$flCj7L~iZ?Eo,Q*R=O"L1^3"gږ['⍜7\ַ?;'Ѩe O>xٕ'[O̚I;oBqq1ؚi ,X'״/ʮW$r^1I#pGأ!g} t{ [UkWg2xf\A\ 4W#|{~yk\6w6 eb*PSWz䮁'qFX3fbg_=/fn\qr{b!`|`` S Vaa!bxՍފtc^]oҧ?!Jg+xu#uAo%Z|-8#8:8 _Bɮfe O$|ٽM8%^սz;;?; _]]Pךڊnl[猴܌+N2 f gw/>csI#Fb-넃5-7\03b㌑ ,J;>VD`fNN˼0aq7 tc^]1xEm{ł|zns'8p]wukg4mq%q%f+ڼ*ݭ?߿]'>3ԼWx]"V17v:ֶ?i.yWo?l\p“+:MŲ5o,Ä >-eY6GH,"{ŰZ8cZD{kjF6o->[}^|[jf5!7}vm6|-8/UϽT;ZݧWkƗ tҜ:˴,n }ycb.2OR+NS =#JzvFF`;o֋'g²i,kΛW̵Eꄷ[Ե+,UsxFS-%ZJJVp ק2'LqDڄo*}"ײn6Ͽ{vf]]?[O(җS^q yۃ'F;sc~W4m ^7'W*--u]2%22䣏LMMuyӵ`>֛WD/nW'`/82`5'{/s' ]^Ӓ.o.oԨwEjf+8Wp :2/$ƙƗDkՍފ|g8xc+.?[-ԍg=a,Fd.q82==~x/1lAJuoƂbA>T}k۹K&=S_tg,qi[ʘϫJ1ފLg& U,NvKp*h)j-i-(;[d0g#\>[$Vk ^k,$bg.\t tM >.^*΅G%y؛un n6{ܬraUЄ}f+kwMm9 T(K}^O^a) <&e;Ӻ''9콢lK)$W ŅVsQJץU [.=Ԗtpaȵ:llk솺(6/:L9i5)Ҏ$M5^EQi[y!*uPn@c&ΈPdy ڶ{#tfZWY)k?!orsZabV~ *ך6'HgV<6,17$!'8!; 6ELB ;Wγn/^-+/fr|8+M@UZn\^Roz#l7TDī,^kNDCnP`Wo|^ۻ~d~oO>эҧ95GNH՚=?J0՝P#B0:|U"O pQI<+{&HE,ڮ/m *WD/=Y07D7iZS05qʺ)%Wqo̮{?unlӻtOgZ|=8#8֓({)kbnXbN(dm9O2G:X-m p}x95!+$C4ewˋW2%b'2*%_x٢2UnƕیA,2:*!;͘bd`y]D0d'N˙oO9lդF=$HR#*^ټ+BG&S`[$ZwUGΣG4tdڈ (rZ=zDWfBxRg~~T -gC} 51; EzG% I`P;d޿dkn&٘쇿ZxG\_6Ie+Bg~aROBB~80BêV^ GTby֗1HAfX8};A*WD;1&m[v.UDfWo^(M Q2&8prviIH#3Oڤ+;}]\UKP*xav7"7/2I:x MM I^1NԻ?.WC[wei u퍷ۜlL6/+i#VVEq&KzNCeIHo?]EJ6Mfӧm*Bފ^mJF)|Wn MMIm:}/߼]U/tdLd9tݙ̂ڠҽaf 6\^QQɹɗ)Lam&P݃ek-1 T"rRn3呜5i}It0S}'=* +"-Мd÷עJ֨޼%[v"Ę)UL5Dؘؤ\*O[޺&&?_U@mP=NV^'?aJWvtCE:o..^OI M#KRO̐ YlY7>A\%"'_<$x 麂Ce<5]9wYۏw~U~+'4^kbϬ|*0ꎊt]/΁Ji]2Yx{ƭ̰P(.̅zuQ˹{D 4p[yhX^e܋YP Ji]sSXw6*);*"1w?[|[yAt`AxMűXWS@%z•| ^΍[\|{?]x Jo_#D3lo ڞ+t Z@%z"(%b_޾qp7ַtwz|g|y+37X?wIǗ/X5Jkiyi%DyR޺}75b{Ul}Og/}ק>?r- Z@ӷP `^r=.";2 ʈ2˰s%Z@hXk7JJYIc'_T]z[}+E- Z@@;*̫oUqv̺sAQy&eރ/\}(JhڱP `.id$aRV n|Y?- Z@hv,*Y7x?޿{ڮoo':߳bz(D o"6ڦ6i΁=DBk:Ot$AD -W`ZX폾{C \YMm>TاhD ^{D%Gm.Dtt}DXD(D dH!g $^z•3o07D - Z@@%(p>fqεEz)VīؘD -Сr+òx}^nd0h+L}m#մ;+ou[w@'.?ϏK@4b%x\W+AK }Vx0.{񊗱K+v4k*MF"#bI WZvc=N_z1)Š*8 'קЩ٩_ VyfU<W[|`=r/(b^p6rkmRTV|Cq+N8"OoXNYC%uL&dKV=S(^17:c; iWZ۳HYD.|z52RQj(kL,gh d&+W%TRw~r5R<%Sv|ud)h ٭Hn`r;1;xx&' O_02s4<`xmvq&ëLXNaJdJW* W} wWr*ABr Mv-T|S 9pYMqp,E"B[]-"[YԻ[cëԞg˥{w%z,u^+BXY ^_;uͧ͡ fZFf ^+9JK_Љ70T9 ۞>,=; {JljPZwK,ҮA$q%^ w=(MA#q[ɜW+[-XJBBG5wYoH[_ӣ_OC ,|p;-K+neXnc|ql]ox85JW.q4>XmcA ^zRy(0>?<ޫ깮X8ϣxm2>lU78S8bD -d-5=LgŦm[Ukì?wOL{- Z!@mixu%x{".]yruE `Ӂ(a^su;a:}SϤ9x}&f*Z|.sV Vsv&zW~N]\e4J;o9Jl*yuWvN}d~LaO*Pw^_V^)ysRQA7`- ~O-~Dkv8O+U6dH: 9YE~q lx.ʍR~+;.Pw0tCߗvy0 Ww6q_D niM=Z tPbjd,,|[e9&??@;T/<ߖsu!+Ɯ }T?▢D < HZet%4!a8'3 +>3LW-)O%2Y; BO=Y  gWy\%9dG=AʶT^%'5SiyAD G,^N :38lgj|с~<'m%#U ]^ tLvlMR^n"zQ/"a`>m9{iQG#sg#%5r/GO\*}kxS ][aG2mbE `Sla{bbcq]uSJh/0 WxR.s%dW*J8iK2=E1jjuH,hW ^ W֔+5ٰB\\(z|`9"^_N+b+upRWxZ}ZgU^dg}3fVL֧X\S2a]U2V{E|EڦXM/&[aVﵺ!Uf'fϘ:?mBJ>(eBr, y TϘQL_SbE `ŖaYb[-LtބiW`JRA)d̒0 >KnJvf(gLDD xݼ#tʺ%:{lܳxEڻS RRP) *9՟t,xyo'9kuPwe{4Il[sO ^.۴*!~>^9.ڰ+NiU0u?ٌYVP5OED{XO&Z`񚞏G2xeVu!ǟE͘^;JxWq-\hgf[crxgxz2f)K(RB~6 -3-Y,Z@*`꒍Yn+kE]3V^U93ڦKQÊ-Yb],#9P j4bSsbΪE-jZ+҅v.Vu.=x>L_-ZscP9Z߲X{4K͓{}n DhϡX.2EmعX{77(e[?a7:fS:jY֧L* xPan"yCwe$vkh''|sc < 0xC`kbiuFat*Cad \H):k.}rWxy "kO!5rg[*QMfWA<łgHpKjd}e9vwc^l#"h,HK#wR:B"x>S$Lg=k La/ף[=QP{d"nFre5KLQ+$Oo%Imjk'n*MR#-/3xW)]ıwjlKA 60!쵝LiZ>Uuh!Te+L{:ua=c>GX ^?jĎx}J^-_{ PJ\iJ\݂$~'T[ ցD* \-|PWW)v<^0xLʞZ`,^GcۅmnoDz~48 +/ď2VGD7V<}Β{3Ĥ$v*;|ܒ;tn= ֨iTpA}=aa+&\+*$POyTHʐk-DםnK/pm$x͚Jv˽ =6ƫ-H"5AcT9 I< 0=˸)5R\\|K㽖P8;12-F@*>(U,IڕBف$t!P'%TV{i:l˅LT>Wj[[ %=Ĭ)+M[!cVmƖknJ{s9xsID=gG,[-5"1k ݩ+KT7vhٖKXi_|Fǽx ѳw]>A/Dӽ'U'fN^uA-t.ذ{]sǤ}`\Oa,bɓkMwqωX&dNZe\JkhR7pZ 99yb1D x- kĥN^+MHXV"^0}Uza^v3fC;s {`!?J@bY܃hW,^3/V:[AiUn O 8A*[#O>E `1nś&,dH*t˄%Aq7gt0̋Wb/e VNи6< U*&Ki$ΜOs 0x KpE:@(+^Wݘ:0{#&"\My'Z@c[klڨ,f|Xy2le*d_$i?PW(c5D `:rڔx:zFxRU0*87@ *&zچXDdA)#58@qE؅:ڣkUtJb".&ǢD x`2t#o`+b+V|BU(`v1 ^"Xh-5 *yȌufkśu`#b{9f˒a`~ξ%L'lLJ "}jT?A▢D `4xڡ3)aAV7N\t@E=AOŒ-2YDO_3dֺo欗t)i`2I˷3쩤sp׌ܑadN~ͿɝOe=M+`y6W$l˖Ԟێo A nI 4U ^c{ZE_]{Ro~УjCX$!X68:[p%S`rڟ9ZVBU+od{u1D Ψn\DxP2^my5.[I`Kgw9 HD)ܽEYN̿[dܞ(TMfճ]tz38{k-^m}VxzyupѦ6K/bLUp%k'*UfLVvwKo J)%ov,[v=ZIОJE#sגMH$H^v*g%YR1;λH(e箈WnTBlJX|2|g#b^{]3ԍRz)ZJzr{=I93WMk(VR比sr:2{RJ^+k%e٥wʔQ#DэLP 9J,v8׮e[x}(#,Xna5mVMĬ{eJ"Ipeg] lHkiTRŋ\R5"eޫbWq<ƖXړݲnc\'27/Gv a+x|U]ǫ6ɵ5v$P+ga%oIS'z{PCgOG9R?AIUøcox:HHᗃvx1 aW~v*ਸ਼ͿA,X='%On'Z$ _'iխ$)N#ғ"r7k>Xs RV#c%zo Um׊2#y <46okNͦ#;k50AOA.Vԍ\MhA15ڙ|K ^NTÁS`qtDW*6:B/ߥCKP@YD@"٥YIEӤ/+Ѳv?<xoPJUO /J-K) VX+"̭RFB:CJ.nS' L%ӝy%Y 쿇9҄eCgk|=S},u Jy 1Ks䫰|vO䯖%}pYпxҚ@?yDl\b)+X[@Կ aST洛&s_D"bAڱ9OfѐD txT^L\x>ۋ{- ZॶM^J[R',jg`ç xB~SQwgAuҞlC|B.Sy,5 꽁%.WVhWl F*Wr{O=?g-XwjL;mRbq^2 :MBXYJغ˄WF2:|QU;ґnm3I/Ky,?+KX{ELXxu)^ZBMMF=;&WRK{S9Ai{r2S]*<*ݫpU*J~3,{JdO&-L_6"WY%e ^. V5τ [)^{(ЄB2F߲+ʬ\)k_蕫b(sp93#O-eL^j}3CyL2A IفeӒy]ūl9e4x}qW2x;i'Bp@߫M+@:`r̟+ Nn\Z"o+d0|)j_,-`5 ւ,I@xYX>+e ^~JD}XnP5p:U Oz-E(/N╺C0IU,rP ^!)$$ >$'+Jv]BW $^%5r$% {%gKi2f%Q:Iv™|C@,ݓ7NaȲxE:ɫ .՝\oݰhҫ{JxxQJ=Xѷs~ 4^y:RkٔW5< RY,{[KY%X#ӱAĶ1O ~;oo Ӳږv_a0iI9ǫB|1^_O ~ϸlE `&pbև=+=[k ]QSvlϼ`I>9!8?Uzn3[>^$UlCD P뻟wz4NS{/ήq|2c*?r轪bYq^q |>=(a9jWvQMk'C7D b~#|#S{Oр[jb@[̼u{@MӋM'Uˊۈ-[5hl`ly[x};}NvGﴍ̫j;sWш- Z@ }O O)vxh;y}/>sUPe`ePE@nY) EbYq^q ͍ͪݓsB'׿Zߡ߸[mSe[mSUuDFhX:iaB^#;9xjFMr._+Uˊۈ-[9cEZI`CיoSNv[Z?\]+h-ʱsdVdc"R"x}jC͸~;N|lWU,+n#Z@+n)^PFj$xiWVvShx}X}TP9fux,\X^Cp%NW,&Uˊۈ-[=sezi GCk xLmn}ĩy7x}X}TP%Ʌ {rO1kb%9}}2-XVFhW@吉 rk9-xâv+:f:{1αj\\+f-Ȱr-0]PbXݱ,r̥iōD x-T3;:|f-g@,׿Za{u-gWu轾-Fh*Zx?zVTF4c6Mx x fܥ$n8{sJqP7- Zẅ7M"x}_7_Z][ Vot+/Z@j x9xU'j"!\0smW-sfZq+^m FώʨMVSt,!Pm7R}Wifڋ-AfWӷo;Gb8~jGk7iōD x-@N^XP|\IB>V=y?ӕ?o1jD drԌ̓̓6@GOLs~t/uwxUɴFD *YSu&:G=(^OESbڋ-שԋ/H?BR;uS~Nm轪h\q3^e sVjW](N@G=dZqWN"^_"]hNYx]vsݹ[nIunI ={KײK?]~Bp`֝)-jZ\|nPV9gϾ+ۭ|k7MEhJ{kbJ/*?u_ P@f}vGk6Sv֢D ^m6:뇔o9zP1aƭ?e6h^+߯'y5Xk:gUCw;?f<~w θuǴ[7S%W^9sR-bs6- ZPVEAjߌ~ޏ57'U^Ip6x}%Xi:gyrb:t̔wƕ])]|&t ńhW-=WRpGN 3˯Ĕ]^ ۚ/ZJ[^_"V[hXܠ_ xx2{-Sv1ldߊxymE xu-.^I:mxc.Ŗ)9ӂqW5- Z@u סcIp FbKqۮ]"Rݺ▢D hNqQ2zeA5k^_"V]h-^?&4jx'2>~#Jh:W[#d0?aDZ_5:D - Z@ (I0LGEEJI} 7- Z@h{JS`&1`4m&Z@hX@)^J/\zd0TFh)keVcD- Z@*PW̵usmI؊TFhH΁yĉMNe(Ul)D x, uO9-qRaj+D -2[}.1>'N@T+AV=e6X7D td0ߦHNnp{*͇|_-r[`Ύ7&"sDd*ï>Do^ZvrI,1K-Эh/c{n53^ _JTvu`EUib=E  W̵uG8b0^ WLeXx?bJDibME :k釘, x=-X=zs^wgXF'dC]H}r0BVh mZ5i. aarm+7޾Zg9o݉톴mۍ4a" 7MVhn^v5ۺH]w:%K iܸcFCe , {n6ZxVcs-k+˵ jm_a`us7l_gbnM(2-%>o5sVY?{z3VϩKr٫5X}`WɎUQ[8g%<y'[3iډLfuӗhX5wƅkओ3q;(:im[e*+.[?gzeuD˳iZOM˳lDv"! /N1ݞ.`{?0oF4WÀ !4]8hh$ȋw-:'tjͻr[q`ozþBDXJtENW"{`VsE]3r_o@7w3׿N_{v~{4^ awۮǷgC~.!|wXa "ztpBXsO(?:-Fu#]+:6͗6\s.mxWk}|tgo=:OE*~'yvљ?]{|5\zxA-Wka bs~@׿ǁ/>hpܽ=|V U-o[AU}n5_zrNoިj\xlQ홼ܪӹU+՝/iXz-&Η2]F}o~wgkx͆7ݨ;}J5mW% Wjۮ5WruʦK+.V5_F ZW'5IwB%zݙ m-*Z&i2uGf9i>B].UO w$\;2~A. 6\E˗/9%,C˿*'])B`fr[~g܊dtb׆r?Cv{wkoLT\ʯĖ_)Qx>,\PV_Fw:Bt5719AV QnwR`|=DVF;M6fFMw N_q˿V^QՕ_jYa8f&.kr_Obv%r|ӛݓ3|ye *R|-zlۉwRɀYھX.̖iUݎ.^r=JHѕb+nU@ңԺ[iB)u&V݌-Zx5(e >3.z[y.g8şK9sC.])_y5bHNK`Vgb]h_Q$;NF1n)3OƩ"֘ҋhd^ZgLXv1&5,98!873u/w-u+s)v.q.r˱ ͱʵ̴ >y7& &864>1%--*u(r*r / ε+-r(v)wKk +8UB*Pq-f[~)rLeARjnh|/ -VNZ)Q G甪ܣs?|&vrعN2Emɒ%;}.>0_GOؗWxaxM^kou٭1x #,|XJX6J { lrib;m;"l GWxi@، 5nUތ_\&J`Ts+ftȒkWC +9(r@% ~Y}3/d_ ʽ)rte/ kJ&*0W$SvF6vѻ m8'8iZX]r1Zf+!l^o3n&W^M(>]x&"5<58??';'3#L,s*pȷ ˷ ɶɳ̱ ̱X#K\b=+++=+@XR" .sL l,Iŵב?*JztI K^ geZ{צiu*5 .Q+#Aia6AN,FRҋbE i m nl n ȨOKJdKcK ‹"]+;'. .0NzwrOJ7a`73 6埍+JAZ ĪkWpwQ+JT+Z+W8{ Ձ[mZi2jʕ+>v>m4DLX VBXPсm  x%0^3WD ϰ|'6"iu`Yj r,gv"h^r |oф]T;ҙe ‚ao&TߌPuJǖ_)]F>c˯7`"9URq 3-a}Nݎ{]t;z7/*sḿ; nNx4Zs=ZRD%J/.<]t.2LXNkhvs@ZORGB%}ɓ'AX===w9>zR8W|OF_Lw}}gP{х / 񐯰0z0B/j_=W{ tD0 cR9jA)j>㞽ݳ}I㫏z>쁕}>'Vg~U*ΊmQ],8iօV5mZTImcfi8HNm7$J3;lZ 4ԡ'!ފjbbأ_#IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/figures/rejects.png0000644000000000000000000025413114023111777020204 0ustar00rootrootPNG  IHDRI|%sRGBgAMA a pHYsodIDATx^׵9ߡ{a> 18fm#K,[l1;q`clj'1)c,13Y#FkߵvEMݣ%=݅6Tտ5G|A}:KspNO' 726<9D[݈6N9vq4݄el.ߜܜ}^O|fsD}- n*ӯ{t~6ttkju5۶Zt=?`X XcG;lY屷7Q79l8oql\ozw-|յlMϲ엯FD&҄I3hTWD/ُ_ym&'MiZddRZT, gXٴ3G߀c7)icSc#IeT`[kCZ۬#~߻z k)Hr-^o~5ג54|Vӻc];uH1m|6֘?``mn ݨ:V6:&^õr|Wނ8kmqkk,6> x;Ҏey5ν ug%iJ<铩ki-4avl\l8H[Қca1rm?|Ǡ.>k:S:o[t=J]:r<>LK;yix5יAhSϣpo?hvԀmd8_ >S>Ze:.cSPY6뒔qkLlezcd ^Wj7y@#3z|\um.p_اuu0X{_O?C#HxY~23K^O<6BھP0R醁RPcA~4x n~nn']X{ 8FΧӝOuu;u;uǺqtːt3tF:aP]}_Vf@Ʋ5?F-s֥֕Xƺߨ4]w.St1|*]](O?_² º t##|WzEJzP:tN7Ggw.љ9N\Kv|f\IN >Gt]Jn9)}567|o3}aW6\>z߇y?7۲>ookuvN'?SS|tZ/#n3{|tVϑ>}m9ی33\c$Nn)+:>N'a4uŲ_I(I'w #n. O;Mpu:z [@]A/|~YޞyjƮ#hCD+8B0ѲXvѲCiiѯi%~Wy% k%mšCZq -?p}h Zg/5쥹;ҜU 沰~k>SZgB8"W|.>'U"]֥(h1p~k?νfocpq=@s<PBt-w" ?cA>h!{1 8DKL~K~@ )(e ܕ 7nR9& .n@}ό^lB&}ϥt)V/`q4t/y7Χu3<pzqt3@mᵹX Kn]9ۦ>6-] 8f]9º+z=..Rh0{1GGӅUpԬǗJAvBCgwnnZ `qt:F.,ugVOj}O19:O'|SM}`v7ZS:z~΄ggck$(f}F+H53as\s#ޣ黽FY1BR5H@_'O HGi7? 2f50}n-|E@`!t>@8Zv]v  СS!Z(U0ȐB"C) u/bh3޳ef}ڱp@4jHcBU 0ہYMj ^[` 2*j)x=lyp4{;y\Cu VYZMpZ`JCPmH}="KV @`7qev=įI51X R5zm0Uʠl 6l@'kdpv49ԅRН_@6rQfq/\ dHe(f{T 󯼍/|PFHH(t=",6(H5r4Vn.MYU/NORzUz>K)M?2Ca(U\|q2=$$@${M׻Ў&  ;2,Hlo㈭[7LxR]PNF!jqGCm]ekpYW܎z]]hUeUKUdv$]WtI. RF3Jzt^/(M=չ=9? @|N$+u.?I8ې(9\\o3> }!G%cD\:eǒҠqit8d KwtQ:oR~d }7 jJ5r#!B)Q  wG7^C4 >-.+BBy`e71lw B{q"v2GT8"wr@*b Gљiԍ6)1qq4}-p}D!T>/GPptֈH*rCdtΎ8~a?t ]`uZ``fn=ckrBҴyC^h!Ѭm\xpex xe)ՑV,R@RjXe,ކ]0:@thqeڌQ¶?Ǚ)@D]9 QzDMi@pE&"fԙk`}y kvB_n㳩 |#jɰF2\a$$U)CYnVǿѕ}Ht1DJk4"mo)CN7n4ކh#Bb# ~0Z h juTRʹHUtU,XpuYjTj!k בۖddP?bZ\w?@'bw}xo^|][w<$|v;tvmxej|ֺ)n@1nQaW`G3n5u7_ \^S+GsO#R?|vuyߑaG>GǾBx?*˔|8ץ| |=|pd*DG5Zaq~Ȅ{ܛ76b@W=><ˠ:.^o,X @ut4t4t-utCi i{]5~K;^|@z:j'~AhѨD> 8 ]¨Q s8J~69ӄ\Ok׀ӣ NVA "oK9q8ΰQLh24Nwat4i{i"k GYSp)C0 .WW | ݲ ]:@95e= e¬؃L4OA{`dz?uCVh#U-VZg2VYVN9"x6=b5A,ratH2XNxNtr4uiZْZmyìSz \ N]@U%P&mՅmo?7B«ZS/H7D=k-k5StXO_H-ei*-ٟ_H@pѣ =g|^" :B[ҾQH5mIoD9En4~L 胀S:ڱf*uv@vt}-xy&%+V}cnh=V_@?AQNPϦSGN 5ө-`T+~TOT+@-| PALQzi*`уJ )ƾ-CJXߋ`t7t ~3r_Do3muYhq ^Y7*ǨC OyGQOXwQxo u$s|lfצ?9"pȸ pnn/Zw0l݁ea[D7==np!jDЯ||]%ƥY3zVP@ Ji@ HHWt>  RH5[6 ߔ\X?gDZ"Rh`)|rg܆q}ܖ#qjSH92 BWek}X`\@1h)q9ҹ \Lի+ ^n~( k|~>5y;^M`uASC>  ϯ)8UA .*H*ԆP)éGE5Cdt`taԇøa)R=]Ơp`A)"J9i8UlZ[--OJV9>qnmr, {~],t&F{otJ4P:쫵? 5=hz-Xε=d}~arg fyʔ[Q_ (;}QRGPrRJS@ʩѪ8D@j%6 g5!hx*,z4LMBA}55iEmuXAz|}^MU {:zA=9pwH@W_ J֯Հb- 8x:۩ ͠v .@Ww?mp0}ϯj#|9c!0},ԑ{!u+AwI֝Ϣ[r(c:ӛ#4=QBFOa?[|aˌr܁ѺS{/w{Sx}?h{KܓpotҪ{?N-}c] [7N9z5W jʩ}ty֩h QQR(*wtBRHOnO>"xFzҷ #M 5#x){;]Ԏ`Pj]MNە*PPj= 2DHut4J>(5#q@j(C))?e`6#ݔ=Cu22hz`j*(5ԋ@Q Aa4H}QSt#jʑR3J;I@Q H3y`r())CRZ@ ]di.PꋲfAP˒iuAPj^@i!a4 >mUQ!8 H)P/J=ܳ~ڍF~Qrz p ?m ]]쎈#C#~5>f  xoi0>?9 h:^EK/;fޗw@B)i/tR){ HG/{N@L@DF )u;--p55SuSͩQ-))RaR'5t"QR LsTd7}oG^5ܞjKj9uɈQ%g(HTh 'r*~2 O5UuB޻z;z#Z:"jN{RզۓFIȨAQRRNs;R iS3oԽwS| >&Q嶤 іTutⶤnLq+b80Mv# ^GH"DH}3ҰԽ@^ϠR>Gey24({'m ׹C?݈T$;01r4"*NHw4ꉈ((GBB H}Â{_@J8'r¹@OΧe^] *`u \Cs-Z-^f~V {_ԫss}˔xu}%%خ Z`3P'C-: #mQW"mz].B}P6h l?jIhZc~ Tx? ghݖ=Б}ոո?GOC]uzyu|y6,,j8`z!?nAJPʑRRݮצjW.^~%={+ 0V@ !hC:-HU&W⡞N ..p;;w;;q'rtۢ.BŀQN׻0CBNܾRItOGJg7='UmJNN RPۍrѩDu&{߻mHul;oC5uS:R:7L=éTtbLS&TuۋڒmH:@NKI3)U鶤Iup6х}{ߛmH*Z-)s6NN:f[SNkqQN!Uzd!"aϸ&괺AKRw+9}?? )_DHpZ){=f٩l>'҆byYz f~ /_mFut9U<4蔽}L=h`ԉQR5&)Gt{ vgɯGޤύVQH@7GE_**R?̧CCϦyk>=ւiS y z_sUHE:p. צՍ@9>+ =/*# =BV @5C kZ(.Gn;*ڻ𪣳PUw} p h`IUBg3W&WVG#t7K):E] ,+.w|ej-@/)x2EomdgJ3 S9gs'0?#Z^ +^;c}WlDSgQk@iKDL[ ۙ2RN_{tv:==ڔc44FSDHOFdDIHO!"vFHSn&˞ۏ.a01I@U 8C&zlR5 ~y((b_zH%gP9ڔbmx(w(Ua~==zٛTzK6-ɉ;:0P P5IgHU=!iCE)!YxM{$w[ndJ7zޛ0j)u{՛^G0U=ѮT?h&G4ݧUAIT+홯^]q}.{Mr.=վZQ8Y!}6+ E{dih?NɈa5;SGn/m6mRR@jtZqu'|wj@˨Փ?=qGh(S}.|tIWyOGzhЧٗUt{T΀ >Vip)@3g~nfh~e> ;xoכgSAsq]1q4TGPS*qA?{NS+VɅWuy*D\ӵ暧ؾX}]"iz?}8Uy}i{HuPOD[3G_eFԵǫ_mWЉ]Cjk 1::SPw:1`ipbuɖ:l)h3!z.Qt6X ؊/Cc#<`+%:)9W&&p{Bݱ1V#Pʑ҇jfi*}7=3kSz9ڔ^2`ϮxR=VUT gU;c ,w| Ha>Nm3=H>ê偫Y|** ;0A 5{ N]hp6')w~Fy|Ű]cqJqIy`}gp}k|Rw,R41HXWDA>}2}BdWx| (5C@H՘ܡ iuw|5H> *C <)F͎Lv/$fڳ>Zu4&7;Rj eHM(e塠5ӎFa=̓@"kڵJa){s}s5\|AiN@z#G@LJtn肇~Bg$qs?~ ]5}ޤ'>=ԯw`@ T꿢/t—Qus \yjZzὅ^/sPVl`4Ob0(4pʀ@ۦS?g Z,) 8U'ª H}Y֟A70i?7VD1=.7 p:@Z9嶅508@Y̦Me(i~ʕQu@H՟봔gXP­:wA^28mHeFYsxB}(eu khB{y J{J:W9J{gߟB7<=AJ UG͐?O;FH#&C]} HqH"Ω_c&h #弞gtҰuq[9ƀ<#Tζ4g NZɉgsO݃^;jd(ԯz*gЀS-Tɉgiٚpՠ ƌNjV'wF'of'wf&)A݁6Ԓ0_A9SxfrX׶SunsĽTԬN<95o!Lx93F-*(XQұH&L cT2lر#x0@56(bŊD\ Sw'lvY3ou$`|}Mu`+5ks:j:tҥw..mC7G- j覾vtǏ$ I-y?ʱ e]i_&jHePr8jmj=b4/ݪvgaZ>ۿlffi.yZccb?,S;kknfߟ:zd %-%n|Jwli Sz_uԋ՞}Єty沜Y8گe:<CoFѽƶ|aDU۫ Js7]?BUnB~޹;I?F'~?"v?Xq=}x[^L3.:xAB[ 兟wn9/u+"N 뿃tp' tέV{1uts'Ö#~Ρ;kԶպt/@nez0sen~ xƟoyC᏿ݯ7tK{+t2ݯQ}% M zht=5^I H/^Ncs,DIO!eRզM:i{#eqH9B: } gjBO:T('%OCrc0q;Q`ԂzMgpA=8u_ӊjazQb4NjP# j wكh.Q^ViB5`2tӉ<:ym.u S5JԜRSFiq U }OT.j8iG})z݁)bQ 9 ЁiFEH3HV*e"Tu)SH_ti"ez\.Ϡ幜^8H1?B!8KmEq:NtbeK:FstkORatE{N5RDz#Z("4c =wf{}&;5H۾^| ^.<x 0y;8:EaGs, 5{[^ZT"'{/R1m`qMOh8r/^ϝRL"R C`Ir@k/ގ?H͈*iGubNx?@ĊNOvW?i}@))G"zQ^(:Z=eNc;QtlQ=͡jP3+H,wѹBC=};@R[^?Q@hn WP嬨TX"s·{L9@& X EC;|v[w^ 6p?p~.U]5:~1Se- ~R[_A?A\N; H: *xK=~ nzqJߎ7%@z !ut"t]ơsGIǪ=ЩH;"=>))QOc c"H @:@: ˞SD) TGPgQNSHY<]ғ_H3 {SG+;=ՙs1gW a JC9uA)E&z:ڜm܈ L>]i@UL6F ҀB:&Ů7f24r*S#:gYdO9M>Ԣ9e@QQWޜx6yzQN~ kB#ĝ>x|L28>oXӔ&6ly4a50>H:0^1i6/M=@nK\ xu7?o_B>BEsч>?1tO铀3g^^@=e< S:0@I323RLO">0SjE9<@P邪ZgaZfUo{+ԥ@rRC_):D=1EFM@jOG`d)èP!JUSU(noo H9e C,0ڇpWN|V`n$딾˿#H!Tw} .lqω:ףaԉP PHNy_5tԀC &0z\pPS0?DŽPgջ &x^E%z_sDIq~@hO P_?"m9~{t_\OW?v?  Ttl LWH/v4"m:4H@H۟@:z5cv[ Kaʔiډ{rDS(Ϧ@/_M`~#8Y bgrZCR%xT1,'25lۯ>79hkS5EqhtCO:}iGF~qԐOLzW]W%K+7?t{cSd;מsx@un=9 pPx{S=vl||Z/O9&>yq_ʮ|hCz_èRc|~Ug˛_vijz[z{wC5ש ߤbwgzP6<>6 j|7eϝCӓ3a_x6xߓTΝSNzV}vq"R:Ȧ?Eop2=>@GH* ==R7JH=#[h(+ B:wS*Eo !^'HېΣ H_h[tpȟK?]T;j*i_;N|rD g!Gnш9)wAt1frZ^~7ۆrqܑIކgqR-^rY {Ź J8η͠S FuRE 5H⾭a]R)d(>;hΝ6@L<ŨVEPȩ8`u}c+ײsyBJMj4 E/+Ho{=۾.{,jzh/tэIWq HHL<5ԄU/{tjR@:R`XW.;5JWt':zA3t >x}>r="ssů>gUʾ?uC~+S匏4^F+嶢jh(SI@8K~Ujy|G}WwK]q筍j '|##?lN4ӑT4ӎp2u?H] DDĺ2BExMH+`TmEў?0xߢK ?6c:rnduD\}Q7;:l9OxξggrEmS>cݼs5nUݶeN_K7_M"ȃNSr!i""y mJeCQթi[ :lL):5`:4Y!REnDHzNEG)RH3~^)<쓚~zzn'3 }^LcO# BQvSz{hȋp1#?54j*J|g#|o3*MDi "l4ЦZfB/{ Ǵ0\>LiN}y|-y(NCkho g k>( 刘@jB(E Int?PQ3fؙ3U{-X]ms ,3dR0$~ /(fSb=W9=n-;އ#-qsViDHy{^i(ֵ]Q{tY77Pу]=MWu]tmlA9mσժ)fhiBL8 ΀#yZ>㳯@ sw_!\}ɋȤ/ձf@xuxrEw?qLo'L_ P_tڻvžO5Z,fJ8\(ܔjpY)S!MuUy0}G: T0=Һ+$*Z6T* 9euwa[2z|wlK4~_1+5~|f`<.fk69wTF@g5TDsn]-w>Ik95}@og50^K^ =!s..ԤϨzr]tuY_ߏseToݛFp׬ޣKQ˞ / EDIלկ̥1[~:KC/?n_G''OB ǰOT3{%2ڔvH{)P  }@˱;YD<(>34qta!dga kf-GYR8R?]bșZ(ef#_r}ɇ?a;W62i="sP5y* q^( yp|@-i&ha0M[ZW!ϑ˱Hoq`yA: ^vW Jz׺/KTY&5Wscp1?ύS">c`|( <ޜ1:q'$R7/=w.Kr O^pTWW7-"# NzP~e l:}j8TNэj308Ϻԙgq޻Ԍ?<;Ũ3ej ;{viP;5)f L♊lE:=Q|%gfԌQ:-x`P_'![M푙p& 5P>[Qgj}g@|eEd6#Tza?=wn~t85ֹRBi|9J)/]`ا}>( }@zzuNzo!c"◂{s^è`E_ )C)hXzߎ}( GZteѯGlTMuz~H޿PP0mĵ$W&FpjOi3f#9Mmmi4ia0MXq/?@\M\XV+`AWp-/;j? qKYi.C x@cvŬu]4~7Tʠpԅ.Et9HFMUI#ݖmuo`񳢞#bee(eUC؆8q<g::9~aX2_GЯ˵x߸W>_}=y/i*; 63> ^ν5Pz%jL%z~$]CoCi9b^<=~J{JP^jP6`Bۛ-5Zz̅8!{nՉ{_ =ۆ4 xf?t2R wBޣH^z8MgޝMT|"*RåLo(vtTP 0SOU{w>{~J7<9ԝE5=(|W Ai}F{6ټıxs>z:B4p:UOu 4ޛehTZ吞+ʜ#<;dˮH}3jl$`+}b8%WU5u V22]ӱl:Ð@yJXUZ?Fp/YjɖxX$lPwQ ,O;!e.޷7{QsXl쇎D*t%@g~Fp^,G}a=3UO/  2rBasu6:DGYvS<})\H?]Ost%dC>1Tr# A)8:*D)ă ^gH{rR+PVk3 ~޳6BMj\K'|L.gzVC&2vj Ju1iёU ^Mstt1ڌFF(/n/t_`F-XGu!ɵ4~)Tk\~4f@pp }5+d~c|>ZCxl4s}ϧϧϧϧ,Sl24䥎&-IK1g grb*#nt lmR-)wj@&r%HPuUrg5_w?8RYeuix&m[/ /6uHhP5 *,}S5llkg>YCfTS?B8 =UҫkJk(Kw<=Ή>^hO ?]O鉶em(@Qyxztid Rx8:#θN@cYb>ᘆ{;w8 L| u1F|#5/E;L^TmFAQ^4=GFS0:mGǡXDF"U_9%Ns{RH?{|B<)]5t."ҩ!@੣&0rTT(C(/3_g,y /C*p4rԃQSZP &n Ԏj0Uhi3>g"{r](5A׵UƁ ::QQQPBkd]xwLT(AVzSj(e(ZBt`mDqz~?;K"Ca @UFY [tJJP&-[N-SyjZ@zJHr7tXGL[MMYA>>>>O,ON\JNXL_ht|Tn}i2iEi[T{Dk:"ZgUT"jWD Pވ(vE5Tь:#2z5"C&Bv߬.h2Xj|؅JɖF rTj(dݯpJJ/({^\6Nw)ݎMg'-8n 7C!{I)7e x#m:a~xl=1Jv溴c_źkK󵆮p:Chr^!7@s4nxrR+݈'`%?nEMib3 ӳ<=7ArD6Љ F=HSJBTGH{pʞ ]@:2 Qrh(C&|{ro0R3Y< ;fjYsʰʀGt ܞTGIUҴH)Gz-j fTT1]k75S&Tfz[/RFoՖTé &j0WNԌ2rDt%򔬋 Pv",u Ycd1aPj-4j8ⶣщI(j\M('N~2 8QzDGhe4me=M_f^4}U=:HoV%%CtTZxJ4v1}0~):(' ,D>?hxy)ӧ1<@O0YT?_ %Yi 4ɫ tv^Q@  5Pi{<^,Osξ4kF{-ϕh+^O v/C[u#d "TT9ngG*+?+]] ]ph'؋nTP6 B o([L}VJm  m5  @>o5*6tmvh H`PZ^ e]w$t)E~?*0Ed瑺|aULZF: !U# `v5TGFSm!MV+@&!%D'q}y?"\p~UDxpx[qZ00>pu@F''g198qtkʺt]9x<]|DJXq ۏcr{)FPPX?ʤm]]}JW_,3Tu@ıBM}҄1 ]k$^4\^1||,Q/A]:1s_$"< GC/< щt!w^?9 ѳ=#S=M QSt'F`QHk#eQ;zRfT(4;G69*OLQND~rw: :Yehe8haG_Խ%h 9B0# kULԄQզ;[iqG,w~YىTCiPIF9Qf!tޞ_]u`j]PʩLfX o)t |Bs T%h&`HYkiƅp|h/Ʋzn9\@VoE$rM\H;%Q?[L@>ZDG?ù9ńsָJERa9v\S|TWQ3W9hn`"i²NR!Ѥ@`c<%h-4a%Mܾ&oGSͤۦ0߻l@~Y!Y3J vHp좹}ki־U4w Z9ЊQV`$Njچ(^I`2 ? HvAe Nt\+k qP^6-B S7)=R۾`:Bt@}yqADYU zW'!)E~s{bg[^$S&Rl)hP""y3A@ҁJ }<~$X++01e T ^B|:1蠒& z.++pwʺsAC=2ZGF909a=5}e`c eXc?y}#l]w4]o ]ubԣKP.,nz S57A4#*z*gOC> SnS@_Z-ٶnYF76m9wЬ h4y^DLѹ -)Gb<#2PQN>}%}>9 ί,n+Dl7q}1qzr b2bۏ؎As9h:#_ hҊ}(R!Eo{أ˞;5Mf;NHH)# Am(OɺUTu.<6ФM#hQ/u̥!@&+4c[>+l.(-8f]OSv/=ػh/@}ZKiѵmHEIsT)t AH URQPϭύ&C~H! R_Nѧ::y0)C)èҫv@i0x ݀gsCoBT'ӭ݁T~bPպ@WVjYZպ(d04=C址J[w`vD/oh&V\fH%"+G.X^ 9` $/C4PG+!2`.¸Z.,:3圃ɕޣ黽֙x 8A:mJzYXH8NyIb:ISbsV/ gwyzs[~9NI],a3l , q}^k%tOq]?Sk bt=(.٨KsP"=m ~5u;FL E|K>rj=X3"^qk*|܆T5Gu& 6.1{7фKh)Ն4jWT3c3L00嘆zHꔽ]~e\6.'@k\ 3o{WҔ4 :a<Н33aCCkFgFiNfAQBiXUg\у_t[i'7_O<)4K_GзoF/(T>oX|gGj)2a;.ko,:MOSw~Vu-NTԄQ}N`g|be]g)Rkk~{#rS-53IQ0UP=)xNsaSd@$MsӰ ΔQRRݞTx~6ǽ44 唽gJ H8qy,t LbR ?&+?0[{9-۵w%h=J$S:/D{%ЋT4D9n>R68?l )5{ڇT96)[~VL°USpkD4~rې22i 54ۑک{3Hy%܃iڞ 46N/7bVbv1a*X[ ]%sېjrJYE[Xl? P'YJcѸx4 Q|}i@,1@:z4Ydchcx IzAH㢣qΠqe[ l:i֧j4_35ٝB2>v5Ǫ[ehZO֐xi- &5N+}Jucivg%doc}>+q?vGYꝱH \oCoIx5Zݨ<{C{7ja߄i֥i EXϲ5+|:.Ux/+,KJ,s^g[6yOuOigѯG/#U7P_P:[(,XF|l}^nJ<+ij pZ\^N"k)D C3m4DkV7a`Ћ< ϗiV~,@z}/z:y=x~u+we[l z/vVaކ3 Ku =`h?Qk/~0Y{.H .?C{Uozn~wB ͯ\s6B:CmE-co;ese2{ĵuר߇6]PKz+ƺ܂6a v%m`!eڵxFh3}x|l<\z[.Y(VwtA/Ԯފ^؛vѲ ;hm_VlHknM h"}; yhʰ]j=>o_H dwoEZ:(fmMKLԯЯooĵmډ2sοy7f CYCLk;ʷ0Nڕ9Hs{sMp]Mf&Zgݳy5ǕMb5Y6÷O{AyI?C|Mr.;!\^\+%u_2f4HS110YUPc oؾ`ǾB;ZaFE8Gj}JO2t1>k:s_rxz+9Wok%Hm]rV*U[)W3mMg7oKڑ*LWםnMy@}Sk`QsommӦ`CSk>s0=</kٮs}`鞓levEv92^>9{|lssyb}θ~k7ˠK/\Z ޞP5+cD`C{.k:ҮGj1ݛZvA-;t;SUjzCGjۥ#UnVS~g`܋ָ:#S}oaҹ([}mG}XYCCAԾ+AmPWWjm1-xpT9;D,tF%|LOYsP灸}nNqSuv]wOݩנطoZ]2?UxFv>LiE-@B ]QJGcH=: u@RFHoİO#u@RH(LjC#grc~DRH: uׁL1A>@j**Ajq@q ;pAZv-mܸoN;wAk.ڽ{7mٲE }G*:5e!-&sA)i6z'&8 @1iCͩCS)&!'Nq@āp &宥j>eM1Ns{`Bq c &iQtrfj#*جFA@`ՀPtۭADH3Y` 5TY2+dcw?k}q@rq@Zt"zsRF 4 i@:f5 QRRE}k*e%6IŎ.U w [2֌p˅*YQM*umr3^$"*lߑb?!Gq@h ={h߾}įfO\zD#AT+d@:R UChȘ!$Bb'xi@Y*w - jQ@)6.6)r/5Kq@(ub=묳Ҡ4_@jB/BgDHMc>Sf^/DL%Bkuw!?;:i!R1L) bYZ$3GH[\k/84R 7 .-[4_@~qk@jVRӐfQRa"߆܁˟z%q@(A@a6tM4p@H?RFCQ!*j?B:AC5nP|2SS|ݷS*m9圤dn){5nl!U){1& E?q@J 4}G_g}FGFZ:T_#"B|uuR2ڏX\%B}uuh; NQ)L&9E8Z&SF-k졟ʽ.Sq2x;8aR0!o`|WmH}@a /\a0*Rx 8 8Plzb.{R=xS)e u7 2i_q@Łbi_ H,aH/8imHH%BZ.Sq@@1ThޤR!-C Q8 8P. H9&em6<ڲLK\)8 8 Á'c])[ i1Sq@Ł1J !-A)8 pTh9DHQ8 8P.&t}89!ՑhC77lի}"7> :DHqr8 @18T&O:*$Zsכ9Y 33ㅁm2ІEPQ!8 8 4eu4|.m/mHY8 8P 0n+FnCʽͨ2]/Rx 8 8Pl0M\)^FMzS@z9R|7t/j IG?SX^"Ůr~q@q@(u La)҇m 0Z 뀔\ †v6Hq@qHH>wL1)zt 2SS_q@فb#m0/{(eպ ?7n]a! )_R#"eq@āB;P  ܄3Z+ѩus{H%BZj,q@ārv@c`1p|ڋevNM'SӔ t }yDH8 @(=F돐O{>'JX/8 @1  ݈)^VQGHaL/Gھ\S!-GD.8 v@mHf\TRN!-o i_q@فbiO.rTԔ!mM 5\AQs{L\?h'iqJ>0՘'@pU]Yygv̷ε{V?$|ݪNV_3T}V+| 8 @1/"<^\LMVT%@zQgXRSe`ӀPWow(>lƦ0(0S5TYYSTVS|YYʽW[[=fxʿ:|ͬ8 #σ/k}@ʽ 7!@ELCԎ iCjLMJ#zY 4älV%GJ"vdQEH3]kXr\oP[DwKR~|w_]j~< xNR[hz㛢JMf N 3iM5Uju5בUcwVHy3:EWU8 :P  =29_1h<@t'թ)mH3MٯZ%VؠH!E % wF́4K\mHsRZ=j>Cā\(Q ŝi<L;e?d6NL!@\ڐW_;RF/i܀TGi;'EfFꝯ>)"叿ma)1@Z=픻JfTos+-8R@:x<] ]]c7dk'FZ_QEv(fQ;]r=·i}MZ; H㏯uFʠf:^g$,-@}yfJ=N(iPok=OOvQզJ/5Ls}Mvf(ǨDq@rr@ېujrې2nT ʺ"BZ}D[Ͳ0!ͩ8 8(&e }|'e&/LoO\8 8 ́bQL2wا2j9@pYxFxfDH V8 8( ៩4 |D(rR6'E.Aq@ @ge:2@t+)9] P*W iXq@COU!e 0Z@*&%8 @(w?2Qvj`| {ȁq@q@(ÀjSW ]囲i규Xq@M @԰O.^^zp|0P<4ߙ71A8J9ͳI޽>Ig*ZlӘ)$?Ρ݉NEq| 5+d\q@(CʞEH}T&CdȔ 6 }}؆AexOcnSVΚ)Gs;9h^?HTӧ&ͮǏ&dO]ZY9(PY8)8@ԄҴO BjH!#zQ 4m.UJ4 \"OH1C`% xȢf<i;kXr\oj)HSESzSrA_im iͻ Vk%Mx{cFӦF 55rzOUjiM9h ^uD:5eiExԧɾd+q@hRj(MoCj7i1_ VIg!lPQfS,F?.w`IHcLց6?MoUSNj;xD9қTpMs֧^m e)}u-O*(C}Ms^4Aā&@14q/{UcHۘia0%Byr!$ XC;+ @z7QB):yiy2R1?4GTEHudԌ{95ʡ!1z@QEM68 RxTu&Rm?uh”|*^y~B̼_fNM@NdI'*\@/ GK#e+B|S!@Y;P N>;'H'ٚ.-iVAUR oNMzDHs{F:B>ru6sR4Цځۀ&l"'ӑEH˯ڇ5S6CxsFn+~oHD)wk$[8(~QiuƟaF !v2ڏ mH42~#`5 J i3vv N76vO& H㏯uFʠf:=ë ӯ0 (Y^mSTڝ4>U @C @# d>G6_[+aǦ٭6*oSrMun#5;E{Ird_q@(?`OXVi7=h!4,ҙ!-CJ,8 @1ԾJTHOH'3Kw'l(LҐ|>T"WL8 8P^V"uR.)@DH롐Ҋ8 @:P@d^9H}Vj98 8 % F2h9DH롐Ҋ8 @:P@z12%&;eiVj98 8  ngJWҊ8 8eNM҆4*8 8P64N/{ ^zp|{zOkCX^/b:# R/lgpoA3-j2=nۧ\ic3-l/8wt35]:ې= &"cWSBl䙚  :Tڐcԡq J<5g} 2[˹5>6ryWw`8 ́RS*TTEB#!SEOǤ鰪f4dLjm`DH}T6w UQE@sw4] &]_9&,k_/e q@ā9P@z;DG` t.z/:hHT/5mM#@\"I*!H!:6) W?`/ k ŎHd;t\rڢJ>Qq0&v;}NMF/AOІ<iPJ5oNCq|/2DHs+K:TocsJ#}_l%[ >}k4;Uhu54:X*A蘕#BGo^8VJVSU$ק7NM=8 rāR/.<ҍ69ixt 2g 琬q(,yfF/2,e#p&0(^Er2s?SMNsOvq ,~ e0zN]?Q/DH Rw8 8D(q ݔe ҆<-eٔN: %8 Ł9eNM!]8 8PB4*}|rRP8 @9P@mH/2 @S%BZrG $8 @$p`BH%B{E#8 @udېz0@ =aS{C9 *h<`$s R˾9z|n Gj}GicI˗ӻGLW*"i98 @rJHn!b-́aU<SՐ!ҤK4y,䖹MZȒ9i( R8>#'ecq@ā8P@zHoLNRo B"@PR/!ͽFԑ&P/VّQ! WTӘ^3cZSwZSEW׆L{]#8 d@!>RN?((Ck@*+ `S R S!|.< JNWRj= ^>NnTq@LJH/SӅn}gj R>lWڗi*ǠmHۧ~Vpok`4(NBq@J́R%>5&:6It/B*qQ# iz䒏#@Z:UJ"8@([oa[:p ?>nn@!ĠH{\˗v&rT3=m*<|}Tq@ŁRթېXx|iPJ̔} i.UC2CӏOg>}_lۻR>B*=|H*sب F:7l驢[C:nI-8% @?q/| ,*Udا".q@(i  @ !nIYq@h.NB<9mIa J;R*ҦU8 @a(Q >^<@ ]Č^V~@*T^98 8 4 JH&}DH"W!8 qdTEH9eDIߞ}DH Sy8 84(i PL[e !m\8 8 Ɓ3!a oOiaUq@ā9P@.,DF](=qsSzp9è6hfÎ!Up>9p|ԌNj#c|۞r)pb!_dX<*q(Y `Y(АXOPzX1C99jjf)lj?Zgy R6%P?Tr:4w+"ϟ#PS2婻WzT/pMË8PJHgE:J:d!<@7tIR{R iū ݋nsB;2r+1W]N'j# M+jiXQtyQLl#Ցg.S,q@(EJH )whR)e=qԋr>H!m6$4+쫿 I j سS PR`(_}@돏+oG) 0VRMs/؊]_氷a^^:gMq@(% L6 袧f+56f>jz|j1*EӅ<}%!p)mM-~@xVƐ}m?-&gVFuÛFOKBKq@,JH"e }gFO{iV4!cێJD@I_ȱR Y\R MFҨ3 &8 e@ *Q&{fzU[[8e{>?@:|vDǧ,WFߊ4Fk\V+eJ} FoH>#[8P~&쑲QQ#ynCLs;/et>^҇% 6M)z1=Jas#l;EoصHAh hac߷޷?_ECilٍ*%|q@(H%OQ|KPF $mHK1w7#dا&qtD.DH!:(BhqàT!mZ=QӺҸ4Bā|:PL =vRs5} * \a;&e !gc8 @Ss@jBi 2^Rm˾cYxFliS{tzq@q _4^ыN/R櫺qq@q):P, 믉#Z?B:mH )t1ΔҰM\ڐ6JIq@2q@jCiz^\ !ͤJʶ8 8p9P4 Et(_U+H5嗲X8 @&H  (+^ލtkށTz8G~UUxCCfmi&URq@ā́b@)GGkDP! HGzgJ~T$C*!0Ӑ!R{P>^q Tڐo\8 8 HH9:z:կ)un;503z eTSDHhiJT7 ^@9mkCc<5gTZq@q@!=kҀԀRH?0~HT/51*ESv!=^'Nq@q@Ɓbi?)w=J{J,T H~yt1iCx@ ejvl6T[Gq@ER.h7+Ҷ:Bmts]ͧ GoNRUD5DH##"8 v@jBHߝxbOoN8W/BjjnOGshC47['8 @):PL m8r%er{{ҷ&oJi,z#@j)Z!-Ū/eq@āRq@mHBwHY;JzHzKT)8 8 Áb~ HJ!ݪ(If{i1Sq@ā:PL ~/J( ѓ.۔DH [8 8P HOQ)iyW6)8 8 AHM(GH(-w M6p8 @)Rڐ:)t9*:z9N T^q3V).8 LJRi?܎ډ@)`$IU*W 4g}زU8 8@Tl Pj=n&Nٻ*AWS09:B9hwT]$UTe|jyߡn(U<24jT=`Pꡙߟ8xMe%l5Sx>ʈV;hB˟ GʚF9Dāl(qH5FR Z 3ê( HCP [oFHܨXP)GxT3t8/CiBéé"C:>9n}._Y"S?E i(j*C_{ =Ieq@b(&t=!~@iC8@R*X q6IA" Ȧz;zjGFU4C8ELڊΨuv&pPuUo`>}#껾'SQT6$g73ᖒTS F܋^"1L͊h_ڑQu 8(Uӊ hsOs?SiO=uN@qf'ru.7jt#@?I}zq@(A#PAANMj"Brh6$]PoeQRsj +duLTa@l:lkOsm%{n븓i)ckVУ?}Zf9ݜ *6qFXu X.OOm,s:>e7UK9l*SPViMSSqi8@1t F]VGĭ)!C8܁[2T&rb+>}98 $q@z;22^DH#::N$DK(S TExq [hg\F18p|;@:m4Hj^{5_M{4sLڲe JĤ#@¨rR!r8 8p<8@0n:ڿ}kuvVڼy mذM,WsOin_`xxq@q H_y޽v;h5|*Zt9͙;ƍD-/m\ mWw(h`ۈAi60Z2fSdq@q@2p@mE;vm۶hɒep@BOúGR=}\)JxfR3Ht.F$8 % ;wt̐fd( Ҭ>^AHf@S&9S\I<8 8Д8ԋF)GPr44K inP} t5<]UVetRwߝ[nR>5Om}WL62 q@āt ^a@ e_sٗHe0 RA,Kܜ6RknAadj kI{"5y H5b8 ҧjNNqMC}lk㤵3?RJ^( %dtxҀ(~5tjEDB }'q@(QJHw 7}P4(:?5d$mHs{ Vj32VRM}L Á)ܼq@ārr@1S Nfԗ7`ՎU6nNEmx`rJ7Rd %ezq@āuR=Ksoڴ-Zfh5k.M6&LBF-4N4(%_4S ^ >$:*mHsy@"4kYSza:4}@\Aͧjsxǧ&F= ,i*8 Hy&2at-qfZ~ge6}&fiJcMrңGҡC|e Oi.LR2}=KR`q@q@wy֭[iChm*J| ZC,ŋ…i4e4m/dhya% ) =׍>@R!M:[SSvq@q` 4iҡ/M,#F4">~;-@/Fr窏\v5J ,8 @0])}vڹsO 3hݻ S +Ag l.8 @Y:P, =mH9]oSi@C"eYͤ8 8 ;P 6]+CөI!}f lJR@*Ryq@q@(-  = mvA9Re ޙ l@<8 8 ;PiF@fh bHm^?q@q@J+Bc`q(-?xVDWC렽6> }zCNkFcLT)@z9WaJPjXx{o`*fCGHe~kČJ[C/;;gk*՛G3BÎ|I_/&Tp/Ti3ٳei?4v8'Յ?R6āsΏ{ҜiôxaZ8 mݘ@M3u(T5d5 Rut!{&@ZbD@}۪ C4OPu/5{Ų}I6Ul0-ϙ+K?M/ WȌy$G࣢Y}#DL8PBH(ںF.Ikӌ͇iTe)C~;qԋ2)lP5!cm@!-ZeQLCS9DH"h&0)X0R)CN .a-HT9TL׾೽čq:IAbuf! go:ϔ?&,RI0d{!fKҼY)JсbiGhŦ=-4z.M]M҃t;=-f;w#Z"v4jP 2}=.R`.P3I;U dܦM  uh &9ϼ S[EQW!k o:=M&Bj}\)L(O+7/nKv."Ri%ՠ$mkXM(Ze_<5:Hmz"9v3wz_W-0IHY'@15RQh܊N~"XB8 0GoҸ@*8}4W1%i'"m{M(pz+hN] Jg!x#'jdR#nA}_Ai߆dn^LEEM7gQRERqHۡSGh4 z4SSK !mHRvē.}x(wH(7՗S[R G᜜NÁ οʀC ,ӡ-|gADt xHSi;6Dw:.~5N#"ϟ?n9v1a|ɸrSw3@kn ZNM2'L>yjh!C(N}Ӗ}Gi#p5S}ڰOH*XNHQcfo04/b>rx7#?lW 8S^)qr@};0#50ڴH  2S}{s`{waj8!_ :__cqN4!GyYEϯwR.TO{=:۞-Sqq_s"'ޣ{Y6_{(Qry\wZ):%]_@B!sXEtjU4T>^q TڐG_e, 8Q@eи/27I~ 2P-`g Qe?pIo{CxcA?Iq!?v-F!H0 !U 1@jI:Pz te\3u, GEX^lUq}KP*Bq[QHԿTݣ'Unj[|%~$BjCc[@AAxn<qHg5(5t!{gj fd),%Z5lwz/RѸA eQL/oR T̶AWwڏD\3F NDB6kŭ'&W~ չk ?IΦk߰U ?A<%u.l}u,Cd\;Ϣ ?DC< FO]J7Br)G |L4,]6oBAo4qRH~|Jȵx % 3<_E8wqu_A4 Hc#=71Po'Oo@7?DH]-y 2]LMqS;RLv:6 9b~Ժ/> IA|D#S#| Ф!8 Kxjr`#fWN)4I[>~$}4`nW "IPR{~_lW|?Dުons]]_uGHR͆v]P>*]/R8]ouu/ LI:/`|nIipӹ^t=2O/Y`Z {_}zs9mGfvJo?ט.Cp R<th&IջNC+6rA/{ПxҦqA>f[t̅~mX:n+#>t4Uwnt[&٩^Z´!5n{㳴!(Ό@1>͔evrMmru_VMi?_9 IS')t6R.;sԛ i?|X$E'AKz?y7Hb>_rMXMo`| JTꗏ\mRHȵp/{HTrMKT\V_R4:P@zA\"jX'8 @vvZڸq#m߾vSCC̯vEw-[/d4VѣtxYuu5UHW"JHEH``wj%Bڄ\8 8 ʁRFW !Mq@āpJH]e-g <8 8 4) QnO5>lzgaTV 4?h}mI*85ޠ5փ;յgv oazo<]QYN@T߅審,L}PךR&mlHޔmKsOc,,ik2OWqS&UB~ڐHy%ê( H4!CnT۪a q@Y/$uBpsI 5Քo^Jv>~\Ο{^#_@z@iT-:>]~ƅzQB# qKH=ǎ 8F)CՀ)Cs؆(/iqJ#z/VsjX#7*_ j22ln9}_n 1FWF̓$OP7SAޜqWյ@>p3ca@3ve}<|=5Hs cY#ؾDŽ~USe_"S1ˢ#; !k(iR_4HT!i6$yDHPl KF;BPGOP_pnďŌPcj/ij.|!`3侨+ݧ!? Q03/h~#,?|k5=N6p%| k:d{]81Haߏϣ? {=^{Lݿ!ߥ@a~0 t>a::>HHuR3z㋀"j !c%BZJjF~\m?R;*f~`jDzظѹ)~)1"ŌAv~`|?ȑ0 G%ӎE C"\^- C$06Bo ?iVg8Z@=K#|??hY3!-o~?²-|e^͙hCzcڐ&I{DHU5hD_"|_Xɀ?Ami_}]_n@jէ,AJG4=G F gq | ΊOq?c v}{Hǜ? h! ~ܚ*|e@i{W?)= ېu Qi?RL;4"d})MF*-fۗ~}NY̨#)J㲪E>:&FJɚ?jAʰbixHΰ/;?_@w7_:AVthgׄ AC\?Ǔ |~b0#OtS}`Y4 *Ҡ|E@;Ps;%w8(/]EBf}iq~lYtA aK5m H:&i#˅U3$U:ԾUtGmr~אjK=,ՉEN?'d70<:TK:SR`NkQʘ~q|7' -ϧHLGsPHMq4HFHe.r~D8 8PhEHOGQG!-te8 8P JHS0@ivjFQ!8 8 4%Z Q]!|8 8 4R݆t-ڐ69ԡ0(JiJolLM˶9iƮr>q@q@@17:5|N^Ђޙ@hޜy~TzޞjC;XoF@q7 *n[Y/9`5ok&sٍqs\?O'?Ovc܁#_n^&kي&dnv Hhgz9&H_Hjԣ|/\6R=Ӕ1^ԏ!ѫL;rdS@TkLSWaL0-!?hZPsJ cJFټ qxS{Ow{7|OD左ܑ Lݭյ@8u(aOX§^u[wsRSɦ7\H?eO_]c~?7Lի1o=GZ2֙eCaϏ^S&\߃#{>DyخX@!Cgm0K[nh@EPy~ Ȫ!UWg* ýC4lP_2%x?zN#uYCk9_کg ̇q"CKdp< O@ow/2,.\?R?a|sʟkTmM}EwA_SuG G>0x ?t'ݿV qGOCw>f-~'^~4X mCϿ4{ޚqCu}}S)DG4KRf4CW6F/s#:%,fPTRw_ց[C"6Ra ݹ\[pd*͋l Si 8 +u, Hx"q=lO@>:=e\}>GTdO6{.@[^41YL|o;Ar~;^z=mtY[餛/e)rDj 6T{4ా-BH)Y_Hԕwg#qח Ho]F]_ddmx3Spy*%֦8y>4d$t_ԟh uOFV?){ ~(ׄ AO~,qA?>'AE PGN W,4v9JqtQUuD3j[_]ӇswiSSPJlΗ6f;d'6fnzw8R&R/NG괌 YZ34^v)1} &,>}f6N+ Kz;\_xJ9ՖLV~1?;@a70թ:%vjӚ DHM?ͣs}aa|Z$$|IPCOUuݰ=N 9T9B Cu94;E<IByHuqbi~iBW;E;ܳo\ }x7UtO좳6i(=h&o6bS@qHKi#Y8ΚtXRHe8~bi#i4}ikms~@kZѨe{}|>:GHi Mz}![āB9@<*q?UMR.,Q mۭ~7ИE;i4jvZޢ-Ux}up774bA:e:Bk98 8 v@ڪظ>>>>VnjB̓o@c.i#tae@i+_q@āp@@nt6zo|zyΈ֗shmtݭQũ7WǨW,4z1(CAAkcT98 8 t@zδhf}tݧ跟LaOū67MRM>cԥTH|4*B@*0ZG@-8 v8@ @ɁяM|8 67EgZM6~c;HMDH]8 8PH[<f(7!#gH'HFDN&M^ѶT"Hq@qHui;_ !]iCz֭iiP1(`@`@)yR==Gg 6>Oo.%BZj.qXAVh Ԑ>!^4d+[kғ(p"ԧ-/ubie@wGџ',ӊ ;HonGS0@頑iCxQz|1ծ<L2DbƥP }3gv :T"PHiq);(-E* uÁc(-<E]?1PE p@ڦcz>1g}9{#}1k}6s޲n4yN4b j/ u&9BW.OY鰪f4d1GTV"81"*kzjsᘈW_Gյ9p{u;dӟ@>lAN* cZV1jH#|7S랤z# S8J[W:8cW8аm7* Ufx[HAإho|o`3I+PS7QOЀϷU芖ا( Hi!׼0( ){*8t@Y81] ?SCS ճQn p`΀@gkb,ooG4" F t~ ?4ᕋ7?۫i;6}4Ay<ҕH{ҔUh2&d ;:`ا ;{K?.GZl]@R,9EoD@ir)=Nr-8wK"^4e[gm+t4 Ɂm7cLKx4pY]By:zbi>iޣ4sGh WEo^oΡ^O^DHW *#f4$e/mHZg`8p8`G89F2$cG uҁN= ?gx4G '@ynb>W4]ҼmGX[P%e_yG!Uځe-HOvpu}}2uvt,`3]tgǼ׎jPh[#? JeLl+Ǜө j#"|:F(3mov@~∨ٗk2 cTe|"k,Iwx)=etd>:q;R3%oj۟ONE^U۬@s`y(-;p$GQze.zv,`K^4Q!I=7rA8p:h[2[R\aH{ dKG#GhaWXVՑShC:nꆨh7#t}G~]\}@|DHぐR8Jhi@Ɵ $jDGK6$)D17ts) =h|bRM=[FK-@DHTEFq@W D#:U +vSRA?o: TYa x}q@q R_~ K%{NMК&Onv#vR,,R&8 8 H{L;Ё!tQZ}aDHOM\{|u:nU-0FEH`xr8 8p|9P >i>@t#4k79Jw?@zKGkzd44昧ǨajhH_ 3ߝqz|UGZq@q@8(v뇁Qij ۣ -4~1=7:j)S 6o}258 @1cԡ)i\nZ ޢ }ƭ;FFu53.yN YmuT[W㶕@<>tsߐ6I}vdWG=HR@z mh̪C=S^j!~yR<%Bz<>Sf57 7ҌSD€ĎdS@TkNhDL kZ xr$7$k\_tjLGZΐgdj?*"7.>H?9 f4U7:ԡh?*T'Ys;c]OoiM$Sb;79m'#< J Hk0w~kNQ^C׻f]gG@q#i²}4nNٷo_]E#oZzuލ 1){a@+|86H(4ю,\J+CUxLJ^/߸i>TJO83lC{oIYۦ˗`4PI* Th|]H C2!U0jOAog<~@VPʟ5/_Fu(@짭AUܡɁRթvT;iWgS̥Vo̧/lsx@jJ)QWJF}dǑ3G_`!Ԏe_Z$Li"rsn+= mzT28{7!*oiX L_= Hv3jZY0C"O \EW9kEXPx|8P ՝=wlb0ƿeGf3W?{9zgYk霛.FU͆#%i)'ooY8 MԔ7 [6Y H+P4J,@x1H܆Џ>JA"^zрa3ӎX } m_Ү}al9B7;x~ }2i>Wtatדyj,рtH _g'S@4!,uZ:p ?I{܀TGSW`ހ&&R'=k7I1تsP-_=]_pdH ͍h8ÁQ'xX}A}FdWjOj>VŁHLU34;ڎeo?p}4z*][=jyKtWߟ'fw%o@lЭ(CZdOX+e37PeS6v:Zo  tzءR@:Dwک@KԾ!Msdd5o2"թ* ةn7*cu@7u:m2LԶ>(u|JO:Y0ϫgߎʑ:}lIZ#dB9P 噚v:Jwi'=@ytMԼ]xd:k5[< i͔6qzq@(I I)\cPʾ%eR~瑣#?.]qt}NtK^шtLMMā0E 1Vhgw?\ 8P0cGiő#.,kGt7Qe;ZM-:G3λTGHy-؝8 8P"H2|5b ߧs/.f{=t9i%RG8 8 ԁbi^F&߇eHo7 ..vO>ӿ۬4*2;:jA\q@āp@@ ,k@Wwλ.+KZ:sH"f&{Rq@q@ @1? s`/kᄃ]t9]| tUON9e!-x=8 @;P  =  5:x@{t\PI^z ]z͍4S(; i?!Rtq@q@(A#CRSGNٿ =ss/s/LA;ߧN:5@iij Y4$҂c98  XI?ʜb+AicsⅨ|Cvw/%vioZhwxb`))^Vz٣S3VQҳЖ#o3uIyRo*аH]B)l B1=ҪaRiC,q @iTM MnS ǚ^SMڷWU"`,I ~S%e(=woC HR{' iX.*kzW\_3T-6eMmTGյ9ju;k_ԲooJ4fOR0 #j* ]'usDl%>O}>o#b=wҚԡi?kݠjOM.|q:,>+૷Ë0s1?dIwIOAzSN?~迿Ҙ} J!75 JS7?ySq H0k*JSʟS)d}v0LdDFqhϜ !( ! ϋƕρ`S0qR.>B ;M9CwiK[nM{==t|7qχs=^?% B}5(CɧN< zHx@j]HjEP mki4obUZ@˄#^;Kdn0 OԌ?AңoH,{ :=~U@ i>\cxw 9 u"&o^>c&8.e(?˿3:4]Hu|w鄓O7~(jZь n;QR@6N -.Aj6V}| xb#^ !޵Ǘώ*+A H?c?_\; Ȱf9訂( H )J2B>6XU@ ܃9u2:5UD`T"F@pfRb)ά DvJ>I{_!Qڐ@ʙ*eoA1L Ȋ.FjF[bߗ¶ALK~f*_ )N|DOI@׎LsX'| E2MK/bqNMV!39R̴)2NkF4iXwt|6v?NAW_,{50T#oN|Yx`tc6Ht<`ՏJTf7H]8*eB35l@e0;yQj|$Oo,I G@zV4O:L։а߾YV4ϟ谴!WCār YJ+k.TRfٲ>JH_mH?ԡ^Ao~dƛ_wj3ALM(IIq@sG*j {^.Q@=Azҩgt7}"7H%B.F8 8p:P@00Dp27O_ RO\8 8 $r@zC= }OƷOR0Mz׿E҆zЩ?RX&DuQ6q@āԁb \7Gm?~?~(k)iT4 V:)-8 Ǚ% _5?(UV~:?KitqVrq@q8tTGI7GDC~EO\v@3la]Kq@āԁRRRHìLo?ۿoꫯ??HL^;Ҵh5D3u;mȬM:Bk`qzq spⰩ!;BټqmJC*O0u'93/v9澅7R]kBL:}~+I}΃_i^A/Y^r$ Oo7ҿzSMҪa [@,HKHށܦ $bNWF\@ϻoV`]0 %,U$c(-<rxsdt1V H!o@g@jRTm&@[ v?23#lԆ!ѷ0 #*AOQm UzSl6+5ԀutOojFz7v!sjT>?w}n/hBU\ߴ~Go\o(k}um8Ahϰuhڜ1ᗊj?6efT:z㠘4IZ5z# S8J[W:8: u ā8P@ 2sVWFU1){ i\K)lPPf!S?@YW¨+\nҚhh׍Ii7.Bf}1?>̌ }kH ?*B]&Q0Wv0owC&3 Pv/ͨQ4Hf9Mx" |@v *WP.$ ONL)q}#FH)EIIiT&VڐXtĽ?lxs0xJB 6DiI4}l8 uY(WPT28{zaM@8h[!wAg4/Mhn5-e!X@UXO7ho<9@I_ZRJW_E")GCC:.94T3&q8ўϲp@ީ)3 ?:)*ɀ4@gG(iƘS slosB:ɰO |L;bqLIjl'@YnG@:Y ʍa T'!_!sZi8)$܀TGSW`ހ&^OG xr}Q巀. }Ⱥ m`Û{v4p uFW.= o7I=a){sLPpF,#6(ez܉hcDFHCh7Ӏ/mEK*M E/{ )Ce|Э(CgNFQNFDO%Bz?i9\ÍJˇ@a`NGloߠuN;T]vAu:Ko/Y1bA 2hH#o[y}V t ةng%* tëᗴ6zh&IoR_ǧӑxqH͔ͫ}l:? 8PpJH8Gw!<i!:DH ^e@a')y3R0.(e_ 2ḾRo&ij5LMMjĖ&@!Ʋ6=r>qr$TeMb}z_c.8vo<l^(+8 ǥ% ;Oo~d '|Do@H85R.Zq@;JH#{8+3;⊢1f&3ę$.M$D?k⠙M0& V4 &;4MB{sԹ/|޺UmK/Sߠ^L^psi3I'Vv@US<9jH @(hs H;"ktq7⿻.]IϽ0N;[[dTܯy# P IR ]NJwo;WфIP); EM^[(4P @(ST驧Eo=7U~܇wשy"BP @(&H%~ֹgoUTOzHvkЯq?]b0/ a{DH䵅BC(:IS V)W%!jg)lHGy̅&VPL+ũOi H8@_|!l <یwSE77_Sߥ .46 -:e O/}_'(EҸ]A(PZ pbpy{Y֥斿VޚR} TtRwߞN^;6 Ae +"AY(b jfrhm۫}&eY;GUT_:kyiYc\ LTR7sV|;K(G_Ֆv_rUVAK.(ylH>Tr&]}y^sicYDٴV(`Dnq Si:t_mWKV7/_3G˦JHJ"]<ޙ>SDFQ>ޘ:._4"܌MuΪ>A(ҪH0V 6d4=D?LM ;}8ei]#7ӕrL4B@FW|Wu蕿 ln,f+BC?Yx̮+G'BTۍ}]ϖGOaFw=ju}dʓI%Lz>otK7ߡ~q"fQIКUS(:(o<8 @֯*kSFD 4jHJ)No=?Ms@qx"z+(0fS":X/{6UQTzտR\6ȩ'·/ELWxM/i k(`B6pҩW1W_G r9gtt-BIٰ/mG3љaҨptYxFp H<̌੼JK!r$Q±мͽgHӠ9訄U7+@ʰ'-Rn5wOS<]9H?o}j8y ٽGр+OK=EҤoH @FK}GHڧ*({&RWIwu&{u&kހ&=bXv?KZӴ~UEe1oi6A^oϦWXL^uw˟ Ui{8 >ңmO/ML_z]v\o &ig5WP\3CtTOv(C(P KAM":Z$"do~nMz>(B 4٬)hxEt8:hϞypNvW9}f+[xD &E؉nxdΛG(+E~uvȗ ngPQb6˃z8Cr iQ(Qb4Y XGK>@&mN_|C=~Yrit)]SON=FCD]v?442L&\Yee?P @(H%t!4駩 ' ;Q㻜L#F;Q4)ֲom P ĩ@jth(?:e#}e\aNPiP @rT @z!@ڡ $iRC!P @(@:T4K Ytzj P @((7 >H^6g\TAݚN͑_(P U @*G? /4&C&ОW_'|Kc韼~"We~ bW@;7w鳅@((R yHy99 '"5uqPSn)б}-K]~rTQAl<)` C@(@*GsϿHt=S?z:p)2R䈑L0"B1SuDvf HVYધ+}S%2P #>V.ʫ3zY(=13i? HchT?ia 9tU>DoN@jn`/}iD P @(VR ǴH_$ײ?ytgFSgtJMN@j.*;y'&}HStK嬘HF6#˨*wGIc"U(*J m/tEJ(=sdtX:.'H׍ 4"~T*>&CZ=QOX%yP [Ti'1W^_‹ҵl/VK*,rS&3BUɈz)T߹`%' 5䉁jYG}qkgP @b*J =^_eWy_:l?zXrR|@|4P6Qu(_12(I6fw9^ ^7;W{i[A @(КH%pҩk7.&߫7B9)!5| lP @(@T S@z1bnP @֬@*T5_ :%t){9y}RU4|(P @(XTi'1 WЅ{Er>ғOjrR5٫ipQ(P J L=Y_НUUTѾҤtĀnSf}(-jm QF(Pm+P $tf@z1u'L39N?:YLFLhb-2Od׶]P @(ڊҁH @^H<zb FyES -03!BV.) @(@)tHk"VIiS@Hn@[[H>PB;v>:;ßA;t HsK tҾc]֮_G2 'P Jчf#Fx(bWUoCKt^s; k{R'7p,Ї5 忰 H1 %ҽ{ zgCl@ H9j(F{;%$"P?H,8=Ȩ`I l>--vlɣ[C8^BSѿ*~i`>kew:/1~vRGs1܀4tiQR vI*Pr ՠ4!=蠃驱$V ukg+,%tuUDHt֝ pcEHf{ 0Vr` ѣ&j8Y8|6}"9t Mz'cK@N?DkdϿ׃/Q$[*㾤>_q:nO Aǵ/b/}E&Ls}E!bH[`As@GhF1$2W )CXa5G H3f_S+C C"Z\,H)?f^|EDUkԣ|Nݴ (Z(#6>[#lj(4%ucD/h()"*A3il(^R@Z|рԨR{_qR/} RH4f -T|@%PP@}.TܴOii-)APZ;V5[U%uQގ)I/ 8Mn}==#* U$+ch&{ dl:y2=ZXL^Xd%ǡ% |/:}B?f5;tQ>/duP yJ HukQ۸o?jzj\}HՔOX "ڔ%jLpjKiZP8mZ;}L4l)bjڡR@YXoI4gӲǔT.gm{g8qڧ,j騗 7}Ơ qpo۪֮}47nY7xֻ ң@)ɞsRr@>Qj')7>iI}G4=@(>%xXƴOȈD@$J uN@{$VglX)R]`(@ 6L9A¾P 1J ztsAM ٽG)"/P @(Zv@Hwv&jhh of%èHhԿ+}}W_O/OyC4 t2!m^"@(Z; eիu]Z=+UW#<"A5Q =siOnXE~vR=űg-f*Mɤ+;aV}MVtLmJ&fK@ljm&#ֿg'wɿ9 g~Ld*۔>zV-BzR~hРA%!#gt?ޙpEKzх. HsKK@wQ_bTN6gחiuۘ\ޔ6ֵSXoֲZ4PR_XXL3HD>~4a;wnFy>J7^)7+!=l?>we(Lߘ:.wl@+4$si">&D*+`x- Nt32*"x`䢫ٵ͖eA9ziˋihySsM릻xNh}}/{!ʿtv_+#й+7~vRC9 y( ]ĭTˠP ( ݶmܹz I,08v=z~?ne^]K .M }h*"ur>A!cEHMBgTAʷի|˟/h$-}"9Xv e՟ }s?ÕEƦoD?dϿٿ XyiGBak9CT@imm-ȧnB_T0<#'w=S jz~x]?G7}H_}HϻWT/*SDR+Ǹ4׳ VӥB@%zhO6CIFA=@m:D M)-NJffY4"36f/K_;-ȴ4=?>_H @;rtT53lzhb@˄Ny-ο?#hk KRKNzf{!ŅX&"m.R=9il@qz<.!qaP[oKߘPyjA/U@)7A(C*O:'2zo}Ut!vE/ 2!*!ס[cjV#܄6zsBFdslAV^&`]oK6XCg EW)l79&{H`X=IDATyo<[e*/:A'73; }l{zqDKo\N_.+6=Xn2ˆ2~w5#BZ^Ds[8m6[͙ʟiNS0ԴCUU܏S]fhAG3O更>%=ց]&l)4DWּv7Udܦ?]Ѫ}4W|~7`4'(кP@^kݑGӳϿHՃs>-黋5Z'c-( Fi^>LBڂ H,ZH#"-I%DO: :k7:it|GH0h| >dO}ڣ)Ciraqԡ .N]N#GSҵkR[f )[~=͜9SK6lŜʏ|>I (H:S}IiߑЉw:?9:tH͛%nڴIvU۸|\. |>lٲLI9N`bml4RcȣJ0==1IjߡcLsv֭Lz'+dj b,3RlSv5ȕv#F_ 'A;|>HdNcR VaRSJ_i?^QH8iLiO!0Ԑi\jXÇ -a'mJ DogQF|>I3+0}iR!@J M<^)Ci@`kMMhc(zX;%r{scFnQ)n>I|& >0_qW^?Ciڀt@vb|9I3K=GH?( FuF M~k#7޿?==nl7?+r{j-[ #2}@i݉~ J!҃9T6ٷfce}H!z*ڵ+]uU4f_@˺cJW)SdHt ׯ 0 ;'1 }HH9]DGukn>v8:8wT6F) ѳgOݻ7 4&O HkDqݺrjZlE$c@TjG=d2Z"lJ)ތ3N&=z5a4i4iRe9 =rcwS>ucŴO}$ֹ2ȇGٻEHoFzG7q\sZ3Zhi$[~cH>3?t1͝;__ȸ٢|}@W^);wn#@zhsSSSĤOrR,@ʃ{T!Ch龀tm2:x2?a$[v=:t(b<|'sЬYhr)"| QP@Z%ʡi /!*,!=VL niNv1"jz)ײwIAiuu/ 徘˗ ќ9"k.͙3>/\Pnz>a>M⭻ߺw/|>H( V贎͠ԴmnCЖ{hkKf[)/:~d:%t΅ߠs63Ί-Bf 7ɈΖjWX%ssc#2-^ [qoxPA:BI@9CSCZm.vm#!v9+MW%ߦoT/EϏHgv;:=oWsrƌhڴo( zhER)>@fuHm_=XL幟VCК{$O驧E1?|?_M^B30V/"N8Q4"͛$TnGg |>sRt]ż-b|NZVj&u.DMkw܇^~Łԉ;mc,X zJLIUsԩSidV ڊk~ @ɯGr-_b4Oђi:"j*~%iWП~xm^@;G 5U8.' m |>2˒G5Ꮩ/ȋ/Do ŵ"ZZ' sҳ3@w LTM^;8s0h|@0 '!] "ҥ;LJZPnvr?TKia߶ӼF]|m]wveK2 be]ϤD4~x?ُwa/)|>D_>#(jbP '*}z*/t?O?_컟wamm Q|>}`t>* snnܙz&B={_I]MoHMOH>@7"|>H>Vj"Vj*Vj& e-VjWj:s{]D/6ɕNx+[|>%|nZ+l:a{Ķ <~9:ntR׳3x-4)ֲ|>L(e~) ^.a{@z話}.ԡ񄓨SS.'"B=|>@$WҖ l ) =hc7}l:4'S#oHxC|>P:-t!4jh:p|M:6:t H1nz&MM`ݺubXXI@(h ݻ6nH[n:so3+Hy0l[C*"> #GC?mw${w +A `Q /P @h Ho05O[ZhnaL([AL#GCk@!22QoذV\ +h-P @((мմ-aG m!H>ct\h@ʡ` ޽VD @(@wiZVohԔ$]GDv>+-Rh ZI*r,duUfeUzd$di{VTˏ~_5TSKV&~_Ab˯a2Y6R]w kٷвub-]ײ_L M>I fb8^j --ReHH C+߆22v#hm?qU@J|Z}HH 3k.D*.Zb>[/gњet qc'JNM[D|̭41? ʞ7wlCϋȣ-W\cN?$@VQ;v,44/c7iw"7Zl5h͏tL8F|Ja2yF`ϓU6 jBk#|I`]ԇ>IVobT:EH%Oa3e$]85[u>4WXگ/w LlX yc}:Un{T 7qꩅmsH7QM{-H[Dʝ;KԯK\rY?zInIs!s=Ⱦt&ISey!st|L>~;Df#Ov%?rL5|^+`p`/Z#},SKfA3IM;T%i4Y&X:0EDGiYcJ*35NM(-mQ7A7}eyr 7} PTR!`9 Jd6+(8+4WawL=[ק%QlŏnF#-Big<)*ز6׷ЖRXiX2$#ܟrǎ-xy-9j[2^| e|}9<*9w]z|tݹjqyzX9Ϝ{ -[I]q# uP @5퓿fs٦;-XZDqm IQIe? }Tzu =#b_왪o.EQ01~^?g J?E h9o hVYѹ70boPֿܜ7,vNή[[!/TS72HPtV,ƐIT@zR:)@>k{Ŷ;L ա4CHlMMM^X1d巩Ac3h2hp \c0oΟ曵4o"9FOfzQ߲^2!BmiB((oJ2|@ QOzgt֭7sn}A5K/}>rcl1}iy0{(I(P* / Fy}l@qDH׮]+Gs-[>|R鹲)4iB((oJ H;EHHҺ:ڸaR+a P @(Pd@zh߻ q{4. e!J׮YCܟV< I\H @(@y+P* 4PP# 8' ;iTdTcq;d'q7'w `ڧrP M H ,t(; 4!alY+O,eJɷDPkXVqgqb&xWD./y/y/+m (rJbb]n,މiݠWotsYHkͧP@kǼY&w)CO&MD#F(#Gm_^zϟ/ٓZnPhFPHg(zb.aD{ C MQH p&A.^L#V -l40l-H Hҩˁ͋ x"^Z14z}rشWWFQݴ? ^\ߥaRM6Q %xv:bKG~+[>tˡ>5퓘A9kRWfY -C*`y!':@.'UB_[=f2i!<R/}Ҙ^Cח̯Kz}He| Çhcc7 @k֮u>ŋҰ'RRU Wa -:D (xGOu&{EotmנI6?D5Ho]}-udNw`]o[6ZTd_Ч]fxHc:_?ח;fO]ވRWv|p߭< /,&9hS] sg=QGk֬>[M˖& t͚={C!2|\E=+rdER:9y9R5[e/hƳ iD_> >gީ|zWA:4сY٘њZljZt-\[H ͘-X@fFAH}̚cN $4p8,H(@ 9=OC XJI@ H.9NP HS]=3sY(P @ @,eMܟt1%ڰa}9 }HêH+D`>}Җ=th>UwIOGSLٻKsFC1)nr@8R4كW Ht;m׭['Vo,nB>|MJMZ&OK@ӣ>J۶m/"J( wZTg`ŊHbd[r>2RoC2V麔_LKd_vP^^7;_;`9r4rcq; >Wzڴhkk=t8=i7,Br/RĀTh]3?ō˝8z_B桔MsarH#&l.8,9;Jkjia_@ϝC[{Y紝qQR6HK?q =p!g,wt7No^]-N -X;\}4@Nt PAu |H8^H 3 &4}$dj߽iDHͮ> 5UAn|>; u*' )M?Xg0QCZz6,Ijwq5tВiʲ?YQN$UM?P*l/,3mhY -PR7J|>H@ܜњuk m޼UR ̝/4͡g~DN{H@: +5w @S0Xo41 N0ʃ;C B (Et > HǏO6msgFv(5kEimJ5 2*I3.v4in@x(N|@oIJ ޯ1;顇8U %Kwē{E:PL̇;t!ō?|>HƍEV9]G\羟T^bGIWig'Jj|,)n|x@| &!ekcN `ڒ  6N ,>y؜~|<L>/np [jOOc%H~]%&~)_!2)6yxE?V}|ORf^o(W)G_*|?K_[J OeW47 ek0ʶOx'/ZT5ݣ>mx?V_?nr*zÔK;Z}/new/}G?h cN@Zl&+/rp-n?8/K72ë8}7VZ>NKk2}er#A/DƹpE\VJvLf"F|@MÉ8v-šWTSzas>Mj[U_NzCh^k+;j2 6(̮kO˿|8B)/|>Hy&e!B}ORڕAU+|nzɂ{!И—[0HHͨ@ԣ1N&; $^@*mjejb]TҮN/}G;qA"v3B8^zՏ+^'>NߜA(iRa&!m=Zn@%D]@@s{ߢ4a H H  / ukW Lhk3/zFM$ԫ B =O)pO)4鳦rjj4F"*$[Чl ܩmy. q/% ud)`"`"`vnMޮ95[ rN>LVK? ^k* utƷַ#ly$ zQi&}ϛ\50+HnpiߛàΟe5O얠. @mV^uT>&l@tTWK<<5奔w7a]lV4'9 ,m5uè>?wiE2ɾ^Y@Z"`sC>h>kڧL3~JC^} \UDH$@*#I=dnRԱ"Ai.IֲoGGӶtKAM0`RH

&TaZL }io˯xNogg?t(P 0`JH͘546_|xNxn0QCG|>TaZɌ_ jjllX& Si9N@#@Ya"5)>cq; >Wz)7sdԄ۷իiѢEdiovppz`p3|>g6(@K]xйsJϼ&wJ))b |>(H=ײG1kX e]tOiYm}L(z@uѭ<<ڌHX51yJpTmib0ÇoDnOjN5}2_>|K՝k1R\ʏid VPs}SX^7v'/F24ٷ8 hi^Y䄶lYmWMH)5"-R~mAֲGحՁ&y=sR$Wҡ*nց+E k֬&uSDsZ&fN+' 1#NB: Q4nPsH}DNOK?4][܌^ oEm֬wz6 [\ZՌr鯗٩2c^vK9+ǜqiVcyO?λ ^Տ4 YoeWsv+~S1w^ڸq#mݺ꨾bmfA \n!mڽ`:H }^% !? VCDƐNyh?,kv"Dtɇy!b0LA*7^R UZ0װ } T ;"fϟGݿ`y+$uueץ?G ARf|y\^|˩wTJ Kfl/)orj{OTFEP 3:d9 QԮ !E Mx+|$Ԅ?"x@?,}T!U>(]TҮ׮"x ,)Zfvra?xU?@mVq~zNy@˄0tއ??0LSplP |))J て?؜-J]@@jDxT4LAvAF__@׮峉Lh롟k{O@i\G$ N/9n B ܏#a)HmŮɞ=~ϪMaq"p8Ou6צ6n#EHUѡIOdAl^~Lokw0udNw|zS@TnMޞMF]]Fr)&{C_SzrO?# 29&0X M!=g GI3RuS-Ӽnl lV@`4ЩiߛJ&bga㍾|fImj7n;eP[pn}ؤ=;lK<<5奔wA;j٬LJiOr?Gv0s[T[+OZu(~L- Nv>w#6iU!ELƍ߃GN[mk[l|MIow>g 44֦2HޜΜ9HϘ&=ienI/ s8szk2?"Bڦ00= Jt(@J  Gۣ>=ܘXN)C)7sR5ՙdzn\x.@R M ӓ_ jBg5ws:x~CwA|>4={dT4=ܘXN4cGԔ> 8>iRhO ӕ_ ex|ddm|<FyDHuƒZHKztc" ~!2Ƈ>J o>ҡ@+Qin1>t@UD]SUyU%tҕ˭~&̨|)iRJ-@:jZ8rS@goFP1)O,>P/%R gP@**Ā"g.w@\4)Rҡ qJthHX4HY5Si1F8>PV>,mu28eEYkkKT^6 y|(+Uϻ5=(63Gx3F j׀C X!U ؿ9$[6/ "nN/C-P --LqrRƣTmS`)!#pG2P+1<&|y8 ~;  6sJԾ{yt]2aRO^s< :?-@1B ӓFrz@ ؈󁅴Oe6Q:H-M"jr6EkIGHft}݁;\d׉C;/(wiRؤGI# J!MXI"B P(KP٧ e3Y'x @kČ@Z[Da3(|!H#2!eU 9T53) Z!0/Q!5kDͩ9hsR`\}3@i 5-l*D4U0ڕn@08 H'w&jhh16}7O9x`>lzHFǵ B+ fQ!mCDPJn>.ebLTBo:zehP٬IKn~ tJ30;}sZ>6[0jeW?Jmf|k HD{Eݻw֣G+eG7*(A9dC}@#|>/vMի!k_~4h ziF㌐˓sQi8XHK{ᷥ _=07JXK*biǭj0`M0ΝQnzO"BԽ)KOs m{4|>H@m6ڹsk&GB9":i$ z_RDH#^9 M 7j |>t zԭZZZ9ePW_}ؤ#BZT!RJq9w| >)GGU3<æ1vP {p(47ܨQ/|>P Ё SECFHHM(UF#7RpN|>H@T,(Fv:i:oQ^|>pzm H(iҵkR[f )[~=͜9S·K6lŜ%]_|s 6PfW]9S<\̻eJmrk2fdM&[h w}Y'ug|QWIjKkV V ^81ϡN_*|qUR˰3^Ai@ݼyM6б]4np9qؖ-[4NNwֈ"z^9t|_{?HM(MHnJaL/'x";VH(FߊM ڹF탧bp;v2Q5 RN@&zǤ)^xvOKt@| h/n^ILcTԔn_5|p/]~ q ۷34ѨQd0HE@?jU'rOc=xvOKt@| h jƉrljT(`yiSSs6X/a/1^QYIUw)äaݺFFFR~K63;1i۟Dž |>P.>G jr j!GxSThnh>v}{m(cxzz8o~~Wqj-[ݻCr:w -Q2ʱRnjٳ'ݛ D'O5"nzZr5-["1(*@æ-Y|>[2 ѣm„ 4i$ HA;bTt7Q | m>o jrlTƍ7H<曾#k|N˗F- eogR6}>Oܹe>^yr:si1#qG̓ :iAQMraC ӧҭ[hluС ?r{O.Y>Q)weZkbF㎘'Ǎ?=7~>H( ۂ*J 徃 J})G/_I ,9s慲ի\3g}^p6}>a>MIDH9ZF!-f=yR<@z|@(P~!ݰq\~l |aavŊU>I[LZxI@!!zƏ@]i~[P@ecS Ns16=ۻ3iA3~{-\(v ͬr($#qG̓  HF(ǖHe.|'~e8qhFD7S9h(Gg'eiڧbD㎘'Ǎ?=7~>H`R1_)r~3ϱ`9=SO=U6sԩS5r{iZ^h9e51~YE NpN(gcK!-Χ#?B/Q'cD}A/Ft<;MEB[|X>ւ)}@c#BuJ4 H[k=JtT7 ׹@| ->T_0lA-UYJ CkP*s8"iO#htewa>@T5GiPo|>$RiB|>`@DAM\|>)7D|>R)|>XR ->R)>@I}@ ,m|fQw;|>R)|>1xio˯jz.~kС4p@aY Xů~6v $8o|7ޢ3?F/`Y Xօ~}Qڶm|`]X/ Nɰy.Q&:p577ò  ^7~FXVփua}4@;IPB#Bg]X/fz0Z !@I:o2->P> u R644 X(@Y쫯*v4jjw1{q,sߘQC|4> mk㧼aK_ eA)7i?}'||@Sڼ!teCh^e HsP*NDH& >| q ]?tto4u}W dx "o&ė]>_472X0MO)@dt={hzߟjtǎy[h[8%9 }TvX U>iy=wDX@Yg3EMU* HMU4BZ[[Km6=ػ7=8>VU4 L>xK>zxuxECc)C>QTt}>f >]HHi޳zg󲐙ۮ)-韦M ---f͚6w>4OZcPE1FSA}dۿ;fv꣧꿟؇u dES|>!HHs2\r?RF{`Z4 5Q#qΧHWZE;NizRP4 lSnxb*H-RDԄ٠@rJnomzaT }[WwοR|RD8|>)TLٟTk>,G3jM 7+0 w+VbSXD-Zz#ߧG_|MnwcttH=_#f1uA=nD7o8|>P>(6s3?Sn\Rb nզ6fz=@l2PMt.:護eu#DmviT)`0 OHHR>nɒ%0CR܈i<@D ..Fy#fZMMk\z.06l WiZ`,>^cR@l` dؿ^?|u4cGL<р`]X/3mڴIjz.Rh`' Tؿu=PO@WxKFр`]!Cd$a Xů~Xq8i}5)>/ź_پR`q8Ҁ|>&TUUTQP#c?Aǵ"|>|R8P$zx+|Ї@ |>PROp:~[5|>ZHR|>%)֋:FHR|>%)ƄV R)>@I}@ ,⭷Q|>?_CZ |4>оCGة3u|‰t]sϧˮ6]M?Mtí?^ŀob{ 0Fdߵϼ~9p0ⷃ{ӯ˜+l0^eǮ |.| ~&+g7κpo2se/|.>'_ϯ }yGտ&8|7ם2֕Mp$O2E^_ Jy m8GH+ǩ_(fR'ap=ē$mn#wo*=9b$Az.Dz~O7}c.GQny=8_3T7ڿ׸ό}RsI uW|>7e40a[4u4sΧ`rڼv}5a{ m-vgY8_ю=۹Oe<| g_a_2k_|); >?p #lw֚&aYl]7}߮E3VOތOwgl[a?mQkmQ >q8NX>i{Hoնzdmwojwu$~/mb۹6*C5 >oرGOϷ_Eveub &B6a{q@¾WJQ1E]гJ~GSvX(z9J>13O<җ#>: :ұ;q:x<%a:@Nֱs:߅ڪҮ.;b3M$W~g54{{}"C{1vy>4SZ*{Ygz/ˏ_uͪsq>8\.U"ڰNKQ8Hy {K'igK\7SCѣVӤGD'";5V/ V#l;6;@j72qRgMDk2s>! Juд_}hFa E֬mkC5Y&oE&a}.lUK }V4 kl -dnZX>MO69w izago7ifYLjiq]CX}-khFZQlo%ubFqL#Hmvь4mNzwY]&Q w҇khfY.jQN.ff+6{пAzQؗӯȰDg̘AUUU$xN=4~%RuOP Uy|n(A~r#31T=`@M}܀ O\rKǏVNuTvp*8~Tz7ˢ˚A ^w}# FyZӁ Ju 0 I)Cg@GHPbSP" 9 v0 bUQҐ@h QTBi}Hno H7 w|-sm4ӭ4ufzkfzs&[$\D76 neMJzI@^hI,5GJ4g>|xH>Pz衇P6J~4)(p+Iɮ~&ځiP -({Cqoӽu%թH5Tj/E}#9_5@4d =ߢ]l Hg#hFʖ=&DtgsA~@R4/!km" 笣Z+ٟm=iH?VK5(0d@Fh1t@ڤ5˂Xwq2^4rHfH)7QǴ9j4%j#E 6bb{Nu_uZ~}!ʽ<~e#M (>5k?QUVtr~{z};z4荩Ҵh%fN1pă82f7`&ޮ~S8F1xibPoW8OQD Zʃڞ3miɚ&O~nvf6hx`S~xp_SlC زsĶC |.B-b -qn ׋纚FZ>Kۅ~'>QseoNPz8CCC;\t8B ;:w9N֝ι]tٕTxtmU*I< x-nf7{gп5c׋sp{f;&vawSaq|]m|y淯Ѐu|^/κpO-)͆}kqEz sX yn1OnkA?ӟ6uG?1u-?Y.~߹N4,}ಲrYև5ŭn+mg9sӺ>~^IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/figures/repository-menu.png0000644000000000000000000003254314023111777021727 0ustar00rootrootPNG  IHDRJ7sRGBgAMA a pHYs+4IDATx^ |\Ei*RT{ A@\_TD.QXT^Ƚ( QsUAJD@YLMK mIy3l&{}~'93|_f朝~>FhMw8)~?= v):&j`f "*$ʰe=!̷LeH|9݈0ˬ>9!o o^_$Ho).}MO=$n{{M+N .qWUX{(qCVzFnnn 0pj;9%. [JQ _gu,Xsh+7+33_GNܿ{iv66rJ\~?÷Vh|6o%as~/z,<'坔F20:2u'Ex߱XrY̐=14ʝ|j<%_}tal| lDrO/kc+lhʏĶccFN ddL{gK}cZ;/c-mog-# Y #?fdc s`eTtHܾ#=oZ?c5 j#}{K?})Wc%zضPg0#3KYg@wWeyJ<}=xޘ&_v3~f,e22|ecLn x>ּM,?FJ\|0'ynڂY8C+ vs x#e/+w[[e  U>>4cp<1qӯcxB}{ƲR gǝr|{ގ?OI|õvg[6~Gif%˜xGO7/;z}t9wlEH`u3eXI!FENpSgsbsGS/uc<[>g)<߆{8~J ;Oq |wv Un!8n߆*>Å2ߧEe]e-5MoR&םxEq7:@OU1gr G3ST> ޳+u5e~B +xE|wmޥ/Ėع _*kZ  '.l142d=bE|Bω׾/E"G c* hPߙkя);PSʇuϒzl޳2mV~ 7vlބ{m4YbÝO[Uff^2D}2 xˎx7_BeFG(õKLU .[ \PY*D屭X_:\ LF7_ڊ5xlɻ|ɇz7p~g47 ˊfc^݀]|QQf>B26drTSwюeQp=->i_FĬou(ͧG[1g$_[oo nMUi/Efqӗ{,IJK|?x"H]T;<!>`]-bG0R:ZeDno#fSѮs,ʈvh߷TKbee8ݘ^-ҷY{ΖSg]sۀ .YqǸ'΃߃d>54~;-mS+38x/BKɕyqVUsQ[5-6 Vm/&XXH1O<ѣGR $EIPSVH pb.}2<<uE000X M@֨f8r. (v D+ P\HB4J$@qI>ӈF' Kl8G^dq畡ѫmɫ +CCvM]N;dqyA۳(:.-{Fr*iAEG? H2o:$](rKtw:Q[{Pgatb}>*1^7Bp:Ӆ?hF&8z2O_VP\PJ4@F.="҂l٨QZT GU#qvTeFzNm&T)Qqf:˥ Q+YZTUW:'gV{8J ݟEߊY%.; @TP\FI(.$@Q!@q V%ӢmKSr{ /Z>- #3Ƒi%Lqr,L嵰ug?;7^KXؘ)QMġC(O_>{Ѧ,5k!3"S_\scۿoݣѡ~~?3pmZ'{-KuE0!@q̜9 gVisW>v.8gQ'gE-qy@D).維]h~[15rHb( "&n3)@grT۹&:Xy1{DY3⢝wP[%ߟ*BF~8MXa\4Wi]#zXtVHQ!bJQPZaU)֊&;$_ 4!@q3f"svۭj\pY>6W{۷oWa)/\Z=Ә@}~6pE[hC,%@qcYK `.P_Kѻ*am)#D(g_[mHmg3BEats0+1kEB@ފûaa[]ad"$g)UMQ.2MQ!@q 눘9n\79;~׉C;^ YԨ5e͠jz3'f(H4(rd$쭑֡De$\.(.axzdxeĺ1ַb.u O܃FQA+w\WC/UihllQF:(rdT H;W}ZJm0+e׾!l5(lُΝسw qӠc1+1(1@RmSmzrU*k{w"ZTEZRx).mn<ք?o/70v F։w0-й7ba(YH P\وdoddeШvGFrל0xQS,8 s682(ц,2ɬ г*Z!֑nS8PoHZ0\7*tGpad`׮]>2A^Xi] ]y fϙiӦQ"?*\`(Z[U*M2Z%uN4TN(zX)DlBk[Z`Q[@c (. %RWuupJ((SL{L«km=ܕpׯ5L³\$$[_3𬡸+]H.$Ts%lLw3!iY|n]1:Ԑ@YTR5Zȭ-#\XjJ%%F@bnb!!@qIW!$X(.ֆR%e\Ɇ@b$?XHq%BEX`mH eP\Rƕl $Kb!!@qIW!$X(.+װ_nԟL;drq9_n|;ϺK[Bg(b3)ӿOZM5X|{&#5aSi1 u@N*'SQFTۨV[EDri>iP\Ub}b9N:@N@5D(JUDifDVQd[ra ؆25{H!q.kQB#" <,"P\j#ó6CDMDEP!`'Egc G25ph=5R%YjZ/QWE(@5miKh6D$wP hSdzM{蚠K>H.{ @ pZu,ғ%=V@ P\@zj:KHO;[MQ'@q:b@I⒞~gI (.QGH = P\l5 D[d8^-퍺Y M ??g⒠bibEbtF.kd$8kB)K )Z6K_,R%e]ˆ@| P\lvȓ ;=+kƆW-6Z)H>|&凯܄;۞6YH>|soxoPp8Ŝ14u"P22VtY#zcRD覱1tNrߍqss߃ v:a)"Ox^+,-@P\"$@wZp!ę^sδe7U@KqB؊gVaV}F621ʑ#qJ3^kC{2X(.6zm\LMFQ-1֊b[BJ:Qߏ~yQ~"` ת]ovv[ٓVi(@ġjB~IbI(#$&@qy}CjJ#F.{ljC> YWM՞`=]pIčF(B<ۅэij'6eO㙸qك;#z.$$ȅȬr{9Y>~-m}d82Q4|i)"&Hp CŤiOk.iOϘ%@Zh>KHKt;M'@q>c@iI⒖ngI  x}@~~> %Af Č"x\hb"7t &.覦_*;K] @j_*;K] @j_*;K] @j_=d|?#in+ V˶ˎvۑFɠOxh"|J ˬ a^Bg2g$TeYcN1,E%*KzƬ^*ȼN/#3N~z˴ȌGEm܋5l4(Zf":d؆:G=:$*]S\mh*-Fat6ˠ0OQAO'k2"IA&WNԩ=h,4^Ś=)&"V&4%"ug^V:_D m7%+>%_uT 2B>8ϥMc(jM TNt+B,tەMK,oD &zzt'}[kʧƝR C]QXIm m4+%ȿ(Q),%-FQCSFG=r3A$c'(Ʀf2O[/b4f2r ش[3hui`5*0a׈PLQF9RQ6*RiF햷N"H1)DM k0f'duI FJ"iI 'UIK:d:!VΉ)ךNQ vmギκ%0tjM-iс}v;vw(N?4̙3Kq'[ /Z.ZBD FKq@\FFFrKșCqG M4K}RX iQgrpyx饗14tW]pǮ¢%g#C~b6J3$FFG f2;7TV1'Cspk}166qyEP@(iKk)33 k"U"No8~q&Κ5 nq3޳CANt8kk7l 2"/U窂ŋe ы{a؋egNBݶøb&, D{ mY##G0(޴aill/"j')FDVԈ vd @qI/cA56ԻӚ5NMBCu%J'w]]7.&;? `EcEOOk.v9wfΘ S`t*SG䵖A_1)bZ)RHwXu]yM(**ROhSh$[RD0rY7-}ē!͝++s9.X}Ŭ2Oa෢Cfe]έx]jAW>z9s&gY,'RK( P\Bpq \ФHNp%^Y. XiL#l* Kx$8#t!@qIO$cgq$.(.ibLo{.b$lՋ$$[b}I@'@q5raEb"7t &.覦_*;K] @j_*;K] @j_*;K] @j_*;K]`ȋ]kdɁ-N[ԃyS%h *EPMvM6IK⒬E(06z& mε 5z #5 A%J3KR_6t~!Z5uN4@hvv[Dy)Dv-k!)Q @X(.aac& 33BO$KXؘHŌ E6f"0#wz{{|$pf(. *. kX!H"a9Op8008ŋa`` |CIq"oE <%t"t6J1$@q!lEDNf[I (.Q=>6#;po FE$&#G&> 79w`'<d8adOșuY<%5 i%Lq9zy+%dN&,ôs 8ª,^| ޜwwıcB`N@qJ! h"H9[V$51d^x *cooW!Eq"z"c`Œf `[[3|4fO"ޡ.AT\*G(Z4iLFq 'F#3k:ri"| مDVKfu|YZL y" 9 1E@Bf8;'N)BۤS("-7R\€E KGsfJéy3N:/̲̒ifW5e }ria[NXc7.FK=12jqMڵ(eޫF >\o%abmnT%Q><2ŽоfGrrZOqBoЖB|06v S2ù%[// bݍ _*4U>Բs:=;ݨGY:Q@˚>z6=TMn^L}Y Z]tK'|!wMw.c}LAʵZutpAMr`txT'F8-aj"}x,81X]]=9j$ VWIC R_KczZJQhfFn>ybj*SqKӢy3rpF%>kПKQ>5b1n NZ$G2r$zmeG,.WI֤cR:uJ.3th1(NԈ2dVcw~Mq 3ςΌݑo|Φc\C_,r4!R5;'> 2>RݕzISo:5lqMMM(}Z#~VBa1KodsFһh'm@S3lArot@8 w|KcfxW0]Zr/260! Eo膅7Ӵ91+[;wtoC9d)Qʵ4A%̑l#'pxq3f8E>K=Ibl0k߆Ǽ\"˥2! G"X5W$,Q͓@ iQ̑@H3[I1'@q9rHA~f+I (.1GI =P\l% Ĝ%Y k@/Î.C0)]"V;Yx8r g[UE_=^uZ +V矏~bAv柼 @EHQ^T6rG6=nON3틳?l).0g͛[o ,v柼 @"ob8o!Dw~IB6v6sKyq~Kʕ+166n >h}˰u+De(ح[7p}Q5rygSOʲwM7S>H*R ITc) S\",G)Hy'yK=F;]t:c"p6D @/yj17C>Eկ~uU208-ށPL3- $?}`  ).!c$!@q QlyI e%Sֵl $.&/XH)r'CC8`MH Q;ݔ:C1 K HGx=ұ$s}IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/figures/revdetails-tasktab.png0000644000000000000000000010166714023111777022343 0ustar00rootrootPNG  IHDR _sRGBgAMA a pHYsttfxtEXtSoftwareGreenshot Xn-IDATx^i-YJb #56-0Bt34F| jKwcJ/nx)o]ޗr\[\*rkUGh)Ds""#DtTޓgd<ypŊ @h 4@h 4 Xk4@h 4@h@iC )2@h 4@h iCha Fh 4@h 400p@h 4@h iChaFh 4@h 400p@h 4@h i hU@ |S↺*+@h 445ʅ@IB%鑶G4@h WBM@#hC.]h 4@hd `0,9഍ L i8g84@h n"; 4c]{__?{nrnrp@h 4kCh bcAh Rf???{4@h 4RBBL4A} X7!o@h 40Frqqq4kU !渚й3s̹w:Ć ,]gOqtuvϞ1)nj]2Wu !nj.}G5}ٿq*%c`̩jgSgscuڴb5 ~cgb0 v`1@8u1~1$BA{qй3)5N7(XRS̘.kql2C(S%a6(AC_̹B ]'11bhC,o#2K0}dENyEh 4k=c(SdZN/,Ch@к؃66xsm'+vǩQnmhHXiڡ~ѿN6_2YjϙS}uM9qjw11ryt׎'h|M5u/^RkϘ5PNo2/r4f_2̿G !Ly0Dä/>T;w?d8}wRYuc?Mk&FϦ{R!pu羉mNScgD/MeA.-+Os?Opz?]rj^V$ 4F\\0ƶz,5gX1$[ihS qsaX麭8zxg!M2}HX3m=fM~{A۶c:u@\N!Iu{ZYf-Pr\,鶨!ks-&ڶfםy߫h5%.uoZ)sLh8a,9kHZ9t9Ph\cT0&\KkF0LI 5q*{jN_Å.~o380(3sBW!t֦O裾ikKF, 0sñh$Q'aZMm̬Aڶ)ӟYL<^M !/=}H!WW^__b_alɲMgVgͱY[V 82o2@"Y>_Rm$iXPvzfkL|MSG~`Mm2^3B_Z|J?kܩX[ʀhk\C(> =93D_9J{<۶r:xhLv6&}JѬON>nfMS2SB>2c2ĵԌC-.CP{]=5? eR>0@h ta!y̕dx}k)BpkSgs>>lK9_bh&;@-fF5t׶av:dL !wӫ,/ǐK'Gg fVj0:ʌŧ+NߙšD_Tl2k^_ׁIer2$H_dUpiä~o %%I}2ĸIUcn[h jJ\|Fp Cb<9s #&[_Ryn|jm|?B Pvf1=הuK(~D>h^S@h7=_LV9 g2:: E-*/Cscoem3 ct\$l2=rJKƴ-d۬~i_L#fS{")Mr1'eSf1]sh8b FzXͨKC{ً=fO;LVZcT븫!jk0!!+rslA= p-mTx !R5< !5 Ld8P9s50j'o etqc!]i-``;s/SuP¹)QC}Pֳ+LS2$'ͤpoK D3LV,uaz֖X5^+)΁̊cR(eZ} [\u$;n#]+kÙ'h-K܎-k0JҬ C( BپDãc3Ӗf7zkzϺ.F!=(/}R~s!BMZ6g,Xmrc҄f}Qo1u3xXmz;E^c<Ɛvcl)ՇZ]dɘnr?ʵ}F_ݯcm8u"=})vo3dIV_{Ǐ٠mPPyVl?u~OYra08uШowY}7Jcø[ R!>'uѯN>/,;f{? dyq e_CtZ')I)eXjv!ypE%Ir'{59M\_CRY#cK׸&fʸf26wߠ-iSiw˸yho 0 KXj `}k|@ @@"0!Td׷t h 1v @ ΞPF iW*:NA]'@w9L=8OùZfÃhf6<I,By2&Bh`W[?ƞrSIU!hTzn3a FМ{Q'ՑfgO:NMqWm?<ޔ;j]CiUȱ jNoBdAe=iީCir̰JSߣm!O7һZNJI9n\?Ӵk՘n՗҅ݶ$n~Yvtb&q-KׅدZ4Iח|M龜2k+i3d]vߛz>QPF,6Ƣ9&l8u80 t26m g-IaloߝLo ~5PZ-e@;!+憗>n)$IyIo[<:/g4t/!e_S IIL.6S$kFjBˢ}bz޶5|\QieF8QXXk6kYl~fե*7^ >y)cwy UW"'6\C )|mYU)<~0l@2 W$L \k̺{Kvh:+10'fY1 $rP{&Byl(X4Z 4>BLX2PH{=QVVSd O\+88A26Wp:9]w4rj!/7 : .Jh9 ؛SW3E 2E{_س6><؛R=K^xoFHByw3L)@Bn'[2J9&Ҥ?rJC(HEc $m%NJ6N&'V@y'? 䡌IFȰ_!SCH029Yx4l6kPIffz!T? NnO3rLtLa_JM’1&v[Y;%)x;J;u%9G/cp 3LnhS{$HRǍԾ2ԹC]v[+jJy+GネQyƿx&x!^b{63q#싻[w6D-uk7AUW;}_תy -JۖR{rC(u1`A2!DtjM#@O=#kkCGZ۔!'vk덲v6ۦەrD>k}o0.ɂl=>2Xl6=v_֕ݘگ8C) ֵ갫6I3ӤNbh`FbkZ=ɳK6zcolڽt?ZzeT=Iq#_1DR{eLw_nw|c4x]θZߗێ}!dإbc[m{Ըǖ%0zt@Bup< 0e- --R6uP"-c9idJ}Rݣ;z`0u NS9"YVVgКdt=x]ZZWCOM2ъ ; GC#!4` J^ސfЦPXqBs#0frCJ < `8x4' yƍVC @``S4  0 B @^9@DB%F6A @`Y0oz @C @ ,@! `MϜ!@  01!y @h 4UBO@xbh 4@h Rd @ !nS7Ch 44!mY0K7`G#h 4@Z@#˛;u?4@h IB#L)7`h 4@h`b @`Bwysn@h 4 iCh EBBЁT>OF;@h 4TO,dIn=BGC2@h Тt~40!Yڋf@h L f,@!trrR=ϯ~W~G&:MtBht>4@h`wZBSH1wW}s??G*n%B%鑶G4@eiCh!@"b=yϫ^T|;~?'jsI;'r>)&GJ3u0z%h 4ZBSH12K/'?Y]{?7pC]*7vP;n޻:0+\/_k1OoT_}?y{'x"zSt…{;o:|u뭷V7|s= !?e'4@ f,@!Pr-Ͽ{U?R;qlPFA!t?~S'CB z66WV'Փbe)ꫯ>Wg*1~6o~+:^)w5 erw}+ןxRmn Chں@h 4Тt@!:w\(3wEp8}~ mR=YϪ JB2@>UЇ ?w6ơc=VAlѥ?/[-߾l /C//׆{~_n҆ڏIqUka}sG>}{_}b7sԙA>`կ~RWeyG:{zm 9LZmz"&njښLn兾OoF;NчîatzP\&h 4005ETR .ԫ󣖉OV?TW/V/W/ȩz{{!t5?{y>i"dB7i~_}~Q=9ju,S+3k3!|ެ[BjuLכ*[B҆2>O׆MNZ22ԞA7xc4L2蟭NL;fd)|sOj2w"Y?VӑLSթ&Hj̘M]~t7FV!=s,4@TCE RKI1? RTf2^zT/~3_?Cs)¿~o>ۋ,sC?^//TQ=Ϯ]]OOT4!|몫L\L62ԞB܇e|K_IdB|G'CH-SRW:O-YXQwqj yP`X,sFglnm2sÏ6qg9]^i'4gm4hsid-K=U>LӧƼko2eqM^j73@h 05ETR !u1?* ez~69)ИJͣ{gef7r=V}}jӝ,S IbjI(cH8]6VoRf2br1}Vf)JyH1٣L&7ed}ꛫמ|#7V7WU\sx!1BBCt&Seki kkr3F}1{ m8!d_U꽙\gMvl‰m<&))Ǡ4X0R (} !QTf2B&6n~wz{(e )G-S "etyU2NLRT*_}) V3Q<8Bj?H- S{ ]q5%\=[wkPۮ~alGVgTv&ۧofc4N<`c CǙɴidoΦٖqdfGլ4'՟VwɘQik%KRt1L@h 05ET4ԞAzXЙ3;o껿?۷}[E/#*F?RƐ2sJ믿6tlRrM1TƘCG*w{?_]~=|ryboTUՆU fдB !7;h~Y#8̓kRX>Ⱥe̳m df m)s(b. )3ڏ1;@h hCh!@"jMazX츜MZ2CV_~WVߩ3MO-R2Rq;?usgJzoɘ&͒1w%cee퍣6 *[4G `M5;@`QR O~&}?9KZ//|/W1e _m~|h2MyroRZ&QVKNL#:TƖ:FRv!^1۫ڮkkWKz'onK/7Uؒ9 =J !ڀQo%3my=[s㶳ox[z&z}7 =79 q4{^k+@h yjChQST: LE!t_韮?_ɟ])c-S&zɘRoR1+EgZ?SuRTo{7]NP!҆j2|U2TZK. !nTO|CH˶^Q1$7 s;3G0%`jaƆCBƬ~mKY<qCh .jvH=2V'LT W'~ce_A !eO[n{[~,f +jcɱI1Ovy'\Le6W+HLLg%=Tv~wlLD~YPXm#G$%i@ Lp@h  EMQ, 0Cy{^j;L1݇ḏR)MZ2)HE*CHF(:99MYB!{qM*` [44!4z EH1Tv ^ꪫ3{~/{n!b30F@h 4s `-jJg!Bx׻UoV̫GXyLBqCh 4TCE b>P`-7\ 44!)*"! XO=:Bgԁ@h SBSX!&|`0x@q#nh 4ZBS2j@ @!fz[h͏$R߻SOUO?tu…B-fDChF @(P!J @ \Bˍ==Оn@ @`BB¦*@cH6ίj?0>'Nk4ة[C[F9]7D̶vlu_C@ \Bˍ==@!_RKĬSfiPڐx| @CCI@9$CHnF20!}ߗQ_EI} XO3f2RKߧq @h`!@3' BʜP22"}?>gtiW}3r2x$]8p @ Bo9B&.sR(?B @! B z+_10 27t6 !1̒TEgۘk)m@9SmmjIsp< @VbO?]@/}KWUk_UyꩧpB;}܁{ t# Bz/mPhSDB23ltFO=v|TN2ifmmϜ%8@ B6^U_o.ҍ)iOCYA$CX/AR6[~?Fr3||Ojͩs2JG'#> @ |iQ7z^ԟw]֞B{A@TIi~?tǵ9;nXsɘ2\RB]֡͵vnЮf @=!yTǪ/\uW[+6 0w!QW ҆tQIt}ߛet1T}̝3WO/}SB @!ROc.#CIA2RkK)o皲]1' @=-c}yN }" Bz i(cC]~JX*k})M @{GChBJ  !}-I~l\˭n.I@= @{CChoBIG H2 ~C @^B `<4 @; !T @`HBCҤ,@ ,2L/!=&!k @H`)T0"M= @)5z駟.\P^U  t#:|Xx?VÃHi+J~u|=>GA P!T: %XfB5V}Z }{Lϐ})uZWM6_j;.~u|=>GA 0!3Բ0XGr-y fB%s_=X}6Xᓣ 7S:?g*sU>Dcjߺnp6=cƷs|KUFs19l: >}Vx~<6.,i+}||4[fBl .C.m'nA>6S/]6L{}k2p^_0WѮ#!09 X $ 6,ג~ ,'? {mz^cI9 c'0 i31oIӾ~:ߒO=j%akc ! Rp_} ]7oȄ-:ևĿks̔vKJ֭ /oJw/2?|Z? 0{s06zLFʽ;$u{WG}Hu{d|yŚ0!XFՙRf ̇~ v &#o 1ClC(7JVF!C( 5YתΨ a]b@fQ>d e!~ Ow6$T3ʏ7ew&ߑ!/1DZl8 /bmySb}`e(tZ) GeYj^3<2Pxk8!ۧꞙw<%e;ɠ;rf!dw}NjY1 3 J2 eCȳ[_ksй2"e?Cܴ)XOm愘 %;U:>RLChK E!$/g"lk<0~|}꼣x9j:h)Kw$)݅#NE&ʀʝ's)QB"2˫ɑWP\ !w߬ambA4~']_WM7FR{LChK eؽ!޴لxXd{C LCk4%^Nio1 B> R+DCorP^OdUFYVZN~|)_I6~_iBC]C2#_'ԾMXh 5io>>{DX^Tj/e|+ Ğؿx} !y|إb-֛HWBY,bQe`NɳLu> R `@ P"(z=,!(>MFRv!D!@`rB#B@J,'H]4@ds9ϘA<`#N@ @r `x@*, 4 @3 !4 D@1B @%!K!FC@ ̀ D!`@ @ P.1 P Ubϯ{|mLoU}HrRi&Ta}9|Xin-RWLJ.XcoIknGNRߚիŷXb3]]kdWPwx"^,y|X( g|M@ `uiJ!0! 92 16&pPR@CYfN e_jdLHk´"PzF>fF[smm z ցQ 3qM++c|@c)R{{@tBGA7l t|}4CC6QYYiNv!4@=1 ᙜa2.<g B1Մr}Q'@Ch Q^mI&Y=PIܐTuL&\~ V@(n˺TPNb_lAz&Mj|o,{{L /iI kB/BC?><c 0TVBllo3mc|WijOkfc.MHIv9o|y|vAx|M1$5[РOfi39gX0DD@l} !c992 dL_Ov ÞPvN8o&tAgx)Kf57 v C?B'!5RQ^R3:I~#'TfBgA1kG7Bd,G-Ə>6>4.^^|9> =>Kߴ'#{&ϰ3L cϝ$Y׫_"/oh@%!& ̜'RnjV3`=ex~43h̊ pjp}O2 ,/@}4KSH46h͡v A|7# & v|÷Ȉy ذ#kuu1_>?#o!Oi OO(CH>_o|O}8BfN`CȻœ T/+dhCH} Rێhwޒ /17uhByԾ u5h_1-WOaM XB>$=":!c/B)J)wؗ#ga$+x|wuWoztH߲)ߘ%cX jIkmG J>8a5z J.=`%߯~i;w,80 k70v͓c$r_>*\C(> OR|oS7_eSiCx ՟7쨏-ŷ9 r)hrCK/ݟOnzYr=Ə 0/X! ڇ/t~'7&V"H;y4g:Rݶz?^YU52% ^BʼlP}fR׍n'3޶֞kPJ+OH7(OW-Є^SS1y[ʄ<9c| jS{mӖӘm.+R}kqCcp=maA6n5Ixuy!C(p˸? %ab@ 0sCB3@!dY D7~j '!2 ̜H!& 'l0f*C B `<4K' >cBB3^o @*$4@WB]q @KChړ@ @ LHChBT@` BcPL@ 7 /@ChA @@)0&N} @? ǐ@ '!p}@ t !@(PIѠ- @ yĉVBB @@. \b@0B@ @`0f$@ FC}@ @0rq< `@ Ah"  !@ % #!TX@h @f@ChAb0 @ KC(C(Pa9 @ &BB @@. \b@0B@ @`0f$@ FC}@ @0rq< `@ Ah"  !@ % #!TX@h @f@ChAb0 @ KC(C(Pa9 @ &B:_:8~$_?O;n|.k>wQ "!4Yʅ 0Pz2wbݏFVdC(J%s\'.2q7E)pUJ~S1X" %F>C{E!d36:ЭXqYBcPw" )/ !,K~!TBK<@!T?~VAi n,k.~_st>6gݖ+DDۄ6dA_Bmm<݆1g9#GsEhK ҄$)_瞟6׍W|D/Ѵgk`W/ACUS3TK˺K$ N#/rByNr@c TBK<@Chœ vzLZIɛ6ƝHO"Cg^ fZ?̺&WNI'F տ9[>]pZfӳfPt'Ѱܮo?VB}gkKp_fM}w2_!m.L^reO>L-YX4|k@{|Imb򒱜W߀Q\NF9 0s!^rހBC@.Eؼ'qIhtGPI"ۘ$go[BD~aCh% !)Sy WXWofl8K$!Ĩg@`H٬_uƈwB!4DD,Ci]B斤/4)>Ͷi%*f^||IcgI'B}⿾2BoJh$CBCZ%' !)~ˌx}'TfKԜ!$`@}sU۴Y;vKJ|X. ƞC{B` Cä3G@k0zH MxϨ,dlrh#߾T#ʗ~3.fW\C w4sfC]B?ȖD~ACY6jq'CHDM&Qtr5Hׇ1GB`0y  ކ\e |C3Oz k6r6DRX!w߂bZէs=ok- H|2Z fKj嫶y+M8ԙㆌ|<;+]im׸t;>H6o2\o~=m[lSndy&_\c/R !Cq&7UeZf5 Gr =6] 0%Keh)=  `@ P- PR&&@BKz,BO! ZRZ'!T|h  8 !@ % #!TX@h @f@ChAb0 @ KC(C(Pa9 @ &BB @@. \b@0 K~M^<^\^s88>NBU6>XH}4KH8?+%a @E*" 4@wBٕzf7Chm&C RM @.`:uBЀ0 )[Iut|X_7~ @ P:+ P$Cȟ ,A2gl.Ivu~k9T }%nRu6a~T3ݮ9el˾lc Fkm6!r~?Ֆy(@ hB?P2n_ǐߵ_)2I .0qؚ)ׄʏ6pWum~iEB[MF3p5a1|xG#ChF@ `-]= QƂ {2W͏Sp|JeJK{walc?FІaemdk |r7@ ZN) $C^.d.K Uu6iYc0Z2$|&'3$B^0oO1@>F>A" B& w;jT/S22ﲲ|,S*_^ NPAB25Y@CCh9j6_v+[6=tB6lcG]~eU =- o%cm2qyh@ i`MÙZ F`|ChCdjϕn6$olySV[7tTzd0Y/o2IBX=-ew]J9_m_Chk!@0ƠJ&$cM, @ &!Tpph B)8 @0 `@3'!4|@ S% ! ` I @ Bˈ3A @`$B#X@S4@ @``O,  PB <݆ @@B=q* `@ yWh-  !D@ % #!TX@h @f@ChAb0 @ KC(C(@!t䤰@ @`jBS>@(A @`0d7 / @0ƠJ&$ B2 @ R` @#2=9YC!ԑ4A @``O,  PB <݆ @@B=q* `@ yWh- C| @ !t@`0f@@ t 0$ !iR @AChq5@ DCh$ @`*BS@  %=JCh @AC6|v^_#ݏ oLxGA}cSžzy\!?=6l{5F]g)_zdvol>\̟cH 2MsPY?lOz@%XwCl]vB`TF]Klc'"_0Øٌ“Ƨ6ߔH _|bS$lrj&IKOSZѓÜiRjFŇ!රGy K;i_SsmA ꫹b&Eޘ,t}Sp`'}$1P?viibII;= $!qW gix8{!yEͲr՟Gj򜺭:#Q;K:YPd>)?}mC΍GrHYx06`"Pp2%9IՀKd}Ek01f҄NR !Z !ݎ?ͦϚ&\!5o pLp;ݟBK u-)>fefmK'|/>_8DChI_ E ꦪo5iCdTyUQ9LҘ)& ({ž7/BnK'`JtBB&?τ6/PH_R|vmIQу;YN)AmNrk֫n[$ԟҿ,>>֛ܟ !"S66gɸ\ԾC(r!SG@` `}  1= î D'42ԯ%1..7o | gXJ9>Q Y=BHC}GOU!j H9@2 aICk:zSGO] !2cL\)ڬ[9Px|Ho,QKDHj_!J?.bCO!}!0!dmȄ?h˿GYe mdll,쁴}nOgJu=o~tHJ@4 A v_; Nb|!+@z2ВI`z{XƟ?wƧ`7I99%AƉj6 S}~02IIIP{Ox N}p%B``[D 8B iefyh~=srXw ßn[-iu﬷ڵ2v1CL[W= ~m #OZmt~nL7vN(RG3!T{Ƈ OG{kҖ>o C` `y 0R=<4כ2f8𱥷oR@)FbJn)'e1fDChF|0残.Rռ_GXzF6B`?D'LX'/|ӹ N 0+B  &!4wUpRW)EAMhJoD!06kWfR}J43ϡCs!@C @ ̌Fs!0 @ KC(C(Pa9 @ &BB @@. \b@0B@ @`0f$@ F`|Ch4ox^b[:՛O6 515dqTx}N!@ 0B- %0!T"WNc~Mky5(ڈ9q @ `>tX:0sRS!t@ }"!OѤ/" 5K+!d.m묞zY7U֏:NYe(#HC(iIгM:G]aDyi@ C@9dL=ڄqjkCHAkchmdmZRt6ڶ&/u%}\4 @# 8 @)2Z>o !d2,!ptxKj2s=ŘECz%>=T=P { @ $!e@`rJE=ț@c n|dCHqKK @`Bp@;#P! $Bs3 -fNߙ4 @`BAH!0!^3v$1(Rm+H}7GZ&}/6㒱.ķjRL< @X: +C'0!"ajcVNgiL6W_j3 \@`B#@H@ 9Bzٕ~?]]2DОAe*;> @%m*M.2Կb,+1 X EB @`[Բ0$ )0H @XR@{a-L$t(Pu @(6~'heKB-c%F6A !0I@  J@B>h2RD.\J!7IMfƍ @ dRA:G;ea-YI b@ ̖6TF JCs%!4n@ 쎀6B&UGAW!XR3 PB <݆ @@ !20=gHbPDo~0+|`@h 4+ Y?gvzy2FQ, aIKƐ6Tv:k$Lme*3衇30xՃ=4@h@k@AQ&kaM=;>@ki37~7jS(zzɋt£|~g7sc ǫWߏUÏ\CBdF@h "4e؏pbFU&fг%/yI!z'jUe}nuٳCo?yՇ>1ڠ|pe=7kÌ !~Y4@h Z!?QzvF}&$2͠?,CU׿~_u_Q>9WT7_~yXP?GuͷV_n !~,W]?R?!4@Հk=?/ze aM81*@SbfO=տ7zފ!10v'@h 4`k4~GzK_Zկ~~oc aM=;>@bM+3WE/|a8Cd?2wdȃ"@h 4uCpbFU&B??[?U !2X r84@h D!/闪K.z;Qp dM=)>@ R#kS跞[՟b d_k#Dh 4zοzN Rߓ!uB@WC4^7Tdz2۷o;Ju뭷Q5>KBҗT7V;T7|זy<$0K@h }րizZ&O?bM4!@"2M\C衇0vmwT7x(eW_wuC[n~vrܹW݉!44}~oLp@h R!B@_C4MC=Qj|h-swuM /Qeu=G9;ʨPSfW~<B<@h ]k@B*#gaM4!@"0!$@9_⵵Qfc!fh 4ع!?{jF& +C_ZuWW_곟r?g>˫[nC?IWq4@- P2!cUC|}Jԯ }{WKĮ7Zo7[^kUo76@h 4@xbg?jyم *TPEj2 Ѝ@jnX)&QcM7T}ַ.77է>nSݤg"X 4Հ2u~\38CHMh 4Mr g%oV4@h 1sM>3ʹ8h 4@h 4(WBB(B 6 4@h 4 ! !@h 4@h 4 |In'}Gh 4@h 4.0@h 4@h 40 `-,8h 4@h 4;fvNIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/figures/search-tasktab.png0000644000000000000000000006001414023111777021434 0ustar00rootrootPNG  IHDR _sRGBgAMA a pHYsttfxtEXtSoftwareGreenshot Xn_IDATx^ka&grYW*T*Ulj IرW8xJQYertщJيHQX-P&%E, )Wo NqHP]_뙞3gΜ3L<;=g Ȁ Ȁ Ȁ Ȁ Ȁ Ȁ Ȁ ,N 62 2 2 2 2 2 2 1 !3X (l5`BH ,2 2 2 2 2 2 2`P-؀k2 2 2 2 2 2 2  !Xd@d@d@d@d@d@d`2Zke@d@d@d@d@d@d@B !- Ȁ Ȁ Ȁ Ȁ Ȁ Ȁ e@!`ˀ Ȁ Ȁ Ȁ Ȁ Ȁ Ȁ (c'® Ȁ Ȁ Ȁ Ȁ f ʛ@y呗fl]oww=[۾6c}뎅B_8y.=9 @}0U6`~^ ?MD'e<ؓիwAtyXğ+rby @d -oN{}𑧯O^8pی kΓ/^n޼_6c}Pg @PmB(& .^ F<řAʠ+âot4 !b{ @J [n5 +x-B 9 ! @W}Znu~c>/B^.^qAtU)jMIjN!͟ @Iд mRo jO7f!䝜 @u |䢭ov|$zǟL̟EV,oW_ . F_jG14BheRXZ*ݶl !@ B{9dg_x% kG'O>Bh-aO_p-G~Y!ҹ+ᭋ_+/ʺ<-KWl}gG׮Bܳs{t^BPIAeyϦ)B!@ @`BhWWNo GNΞ=aB(4i) Z-zRcT>/Bէu ;nKR̎hg ˷<㯂oziPmBE @l2i Xʡ#۱'os΅χWPmX /%%LoO.\v П!49f{km)cGwۖo ;8K!4)bi4igIRZ~ЊNM[]Go[`G',qqȩ{ÖmOTmwrO @@P;$5|YqcTYP+[s')n0tz齰p¬o~5y~}ScDORh`;<_=N?+3ۆ.RzDB3T{.ƝFvtmcO1޶h(og R241}Q8,^Bi>:z;e;S؊ePB @X/?ƌ km)c)]pwJ=]Tzz%S八g\| N2&_ eM&*m}|Z >SVz_E{NA!4F @ B>dO_^=p jmbO3bt.9lR!TNuccɅP<*_x|7Z·eh ]Tz 㻡cgˡXT[!t/](_^z;bDH"A ufB(5uo_W()p_;_.zzz&-ET5ƵMV}ݟ/b]fmvO @D:Pt :U88>i!+Gþ׎ FVZR95ln3fC>;FFw @ &Bizt\33>ZӶLyQ~XTa˯^=6c}B[vPyazCf!ߋ=A @sWͳXcy>~,` hSp56<7Ch @@RhQ#+zpxCn36:C뽌BFPދm @ (~GۊXsw ?|ی k]Sֻi~PBs @C (6_!=co_{1x5D'ppVfդxi25FIcTNpog/1@<.XEz_b? y2m5FIC=]LD'BL:~`L Ȁ Ȁ Ȁ Ȁ t7w5 Fߺ΃ omی k;f)jnܯoɀ Ȁ Ȁ Ȁ Ȁ bd@!Rɀ Ȁ Ȁ Ȁ Ȁ Ȁ Ȁ ,XB 6hzqBH ,2 2 2 2 2 2 2`P-؀k52 2 2 2 2 2 2  !Xd@d@d@d@d@d@d`2Zke@d@d@d@d@d@d@B !- Ȁ Ȁ Ȁ Ȁ Ȁ Ȁ e@!`ˀ Ȁ Ȁ Ȁ Ȁ Ȁ Ȁ ,>Gw72 2 2 2 2 2 2 2 *B @ @E^B42d@d@d@d@d@d@d@d[ Bu\Ld@d@d@d@d@d@d`2Zv5^Kd@d@d@d@d@d`2Rie@d@d@d@d@d@d@, jWk-2 2 2 2 2 2 ɀBH!X (likX (BZ`ˀBh|EZˀ Ȁ Ȁ Ȁ Ȁ Ȁ @w2Rie@d@d@d@d@d@d@, pmmwZced@d@d@d@d@d@+ !Xd@d@d@d@d@d@d`2Z_fz2 2 2 2 2 2 2Н (BZ`B <@]w~{zUNh ;>o͚omNXmx^^ χm }ka޽ܹs-9[YOﬞxȀ ,jbg\vQv=OcP{kȀ Ȁ l doqNSoNy&9{.B^17Bh[r:ݻӃ.<|SO .]NDW.+CK}rS:p'=-KaJ,]ְ2,oI+>^vַ#b%|!̾Cv{W /^yp8|X8qTO*zҭbaWc{Lu V/z|jk[n}׶M2io +,V?mfV:t({ƅ }rW?|6|ǓRRzxk l(`z {g,{~(UTM ]X^ړBhWWNo GNΞ=aBPIA4rdއqc,-Ck8M8_5ejVi=3*yZ3`3PU]JKI Ի]vxX~&ufYBh֟s} f5s+Lx}XęA?Ԡ &/r(zԱ}Ͽ^bz}M%To[3yj|ԍfq9-z2P.}k׏Ooǎ O^-^BCOSdMs+f8tN?kԂ@zi/cǮm(Bi@c w޹}W{K |P5ͭK_ gΜI4.SMf^}4x@r29?7Ng}6y1_Lˎ9 oCU|:ֻw*X*)~ݧjR6uERyLϭѭp\Tuz]pg׶7jl;O|!O3bt|xt_V2:w~ ~*ڜʜOq=Tzorncq|znU$ Uo렷l:3#Ns.x-?c=ǼU<3]hSoիȱaKO)LJ%%74xPZgΜMNکgPvRT`-]_6mٚ;XUT!;Z }^*OO~nW˴okuR|sُc 8+(+bE\=֬**K >(?LޗU5f]9Lqq7uuKqFJ{Ֆ{]yFm}HbP ~P~c=^[(FR'ܒ^BN󘟡[,&p!4{oo2uP^PVoCoZ_. T|6!A6&^/*]V* iAه¾j?]Xi_XOQ4}־lLRpܟNx(͞)?ufkBS3xNQ:^}?g㌜S޿V<면NJoM(* ͪ&cn0x>[m mbAibn޼|ؕJgT}V@[ZG|뎏{ /Fmc<5r49NN7i:6t:]iLajD4uQ܎x~)cDWM\sV׾[!@rQx]8g/^~%=E,;E!Ao_euvtsׯH^4tl*F-^&|MATB(]W]BkNg;9Yqz]Wol[,bo3Csh6c~Sc6cNOל!Tk_9Xz7BS^ kӥfЫڨ_hR8ǣr̽{/ N_-M,xXveP]I5S*:%F,9H:S()X SZQ qFݷgu  qϧD*̠<B0 5Bȑ#;Hg@ݻ/FAH,n$JNf euzOoڿ`]S~kwMb)4U!4bƞ2/f] wᲪ*+gנ3.SɊzd +v|$jlvfxq pkTON5Z5j 3a7-jfPX:j=fU$Bc-&yey|H_BɘoZYVBoAAY5IB|-l:)c5בԿ Jr#k|SJeKC9UhK us&1#)cfuXޔ3|Q3fev>O~Kg2('7.S{=-fɾ5z6OE8Um+_tB(+w~9qzo`fOV/*z-\"M7)hzs6^‰ٙq1Aibqgi[,B w҅ }*}P: ,9pmO,3<7JE$יBv7 K=}Œ!dE 5NkAש{-/wkl @VNePZ%ǒk*]zJgLtud*|VZ%*O[[uZu;jIқ29$UdI2Pݓ(;C( dۋږXT:eϧ S=3FeoZ)Zoz(P<؈OvPRVoٿAcᠣzu+`ek?dfLmBwrrp3jKihs˶N*¦ر{ `]kw G2/8~|6x řA :?mwEg31}-k'(̐廼 8יB_ޟL1:|:k9=U~ܢE˟zyym~cn}[d`d +Μ}6&į_n]Mg2(_._|֤B:o\|,|zBk狏++4tm,v*.*=~6O+{Eԧ=G>IѬd"\r Ps-z'ү򩧒kV??$6òUǩqzfic:ӬJi?ZxuCf7u͝{ =vJ)˶mU=={c^RΝ;=-v>?67U멷ژ7ȵ=o͵m̘o7>gTb!? @6BHɣAB3$@ B2 2 @ t:x`x+|[s38Ed@f3SK .Ο?߶-{s΅ׯog>gs@ȑ ,nB y'@X0B.\_W?<(JJCMoY9q 3ZO. @ ږ{xRx|ϳaێKo۾;

q-KairSq Ka:/?֞-aiJ6TkiikXq)le-W]J6b0ä}Eu۟Y}B y'@X0VB {oZ\x1l'3^No>Jx?|6|ǓRRzxTڳl,m {׳}u&OAZ  ʠZS-;K @,Lx}XęA?Ԡ ڻ+«_OO/ݷoT= !ciPo;M&@ @]_R8sLr ib٬YAz8|X8vd8y3>.&32qz+ak63(8}k= q&PvJҢjoҪpKOTީp[Ws蝚VU|  <5BVg_[WzϹkW=Rq jJS>N QT5x' @ wW#ǎ{,==Gñ'ogϦ4[oג?slL\ցxTx;B|жz [)cR-[OZW巠V3xUB(-lr rBY+z>}Bo6 @|ZY}SbǞ  =Nz#-WAAI1ֱlrSuFP~FO#/P=bR&S⌠X]r%\vmp;yTz7w=@֨[V6WOK:,BY&8zO9mԷ)HQ,8U2>b)c#ʜp:XT>c>drW!o @|ZY=\T:^(Kᥗ_Ig]p!-{bowy').eⲓd3k'}sд_;_}0z͟Bk,Vg9]lRN| +F i#&-J|M=  @ :rH;'ڻw_8zhzXNP,nܸ z+9},-ˎ?u:PFfJW!4 UҟI\BJ*AxOUM6S]_NZ@qu \ @ ZYŃ۷v3ߏ9^Oʞ7ߌ>v>Of A L<w`z79h8hj1 @hm!O7|zBOk}ԅW/QuF @@k 'HJɧ Ǔoˊog>Mr_H3nd`(N[ @ /bQ˟;w{IV>ş)3닰}{Pm- @ 0NB*gsPٻIt1qe@!4^A @`BNQɀ  c @!r P Ȁ Ȁ Ȁ Ȁ Ȁ Ȁ Ȁ # !z2 2 2 2 2 2 2  Ђ &Mq02 2 2 2 2 2 BH ,2 2 2 2 2 2 2`P-؀od豵2 2 2 2 2 2 2Ў (BZ`ˀBh\ێ&8̀BH!4xso~awȧ`YȝgaÏn d@d@d@d@d`f ~揟(BR7TUξ7ÓG.Ƽbɹdw-o˲'N g_^ @ ^ӵB aYm,G` kc!? @6BH3gkSt*B'@ 0sBH!ƗBhsX\!C< @N t:x`x+|[sifoÍ2CSNlB)c$@ fVBϟo޽{ùs[sxxߍ*0q:֥Rm]ֽ5L6QMzх7}3᥊7?}^̇,]Chv`uN!gypF=˔c|oY޳Km3GMg( @t[СC½ޛ=.^Lʟ|?~'? 7>VBiS8Z [amށp!Ṙc|J A Կ?gj^B .֡tQ? @" 3}bg>pvv.?5'?^bz}՚%4\]o,=ulM3fQz=eUPofOaK ^x/r/WשWׯBϳ-$@ 0 VBw}K̙3Ʌ//|g>3>n_;v)Խ/ _p1IN*%FBGVOT& Xٚ; 򌤡SV -KaJ~:$ԅP0%њ WbWXk!{mOG3kW q6bug9l)fZ85)W*NJ_Uq&3BEk'@ VBppę/_j¿w˶χ_}1)Φe'CN@ihPzp?.$ʊz$hgVʩM8iBrVO4l5IVkBmٝގB/^Y[G ~rB(?_YS.G(T[H @`,>w)`N ߶#}/ i}cl??>\K護z:U/*](U*~?ƿo EOom8k |4]ϘO2hgYU_7RhB(_!4=VÇ]/67 ^o}Ddٌkkk:f^l>j3b @:&BOpҟ$us?&eп{so?+oz7w]t0W8բMdUxzzW`p 5~řHS@\Tm, QB,~rn,B.&\Tzp*W~#_ NQ3Q;u  @@+ J?錟'<7¿B7-ook+=7.t3tXI_?8mlF u mT ;οb%ZVQИ+f+Zu̪ʮS, .3ZL7  @IБ#Gw]\o'_9o|[s~~N:0ttZI Tu1꯯/5|jYLS 3jmko6O].;ν!4a 6Ҫe&Pz,&'2/FϚu_qoR4Cy @f!B(۷o;wJgĿ}~uW23DZeUV^);-B[_Im2l嵁u8c.>&o1Z-21gBoOҫJgJүP+f+ZuQ}ȋJwj_cQ;5$f  @EЅ ׿CO,bg ſ[YOo\q!Կpt>}N؆f cYQ~Uv]OYA.Tr+ڲ; .=TҤ/_Y /z 4*˾>ş9FSwB-St|B  @)ЉBn~lu PX# @N (&|Nͺm NSZ !P+i @lBH!ԺSVmCP)jF @,BH!B#E艮@̒BhB;(N @ !P  }e fjb9up%72 2 2 2 23?=g莑_P_b%2 2 2 2 2 2 2PMԓX (l׳]n Ȁ Ȁ Ȁ Ȁ Ȁ Ȁ t# !Xd@d@d@d@d@d@d`2Zv5NId@d@d@d@d@d`=3Rie@d@d@d@d@d@d@, l[{-2 2 2 2 2 2 ȀBH!X (l5hjqX (BZ`  @ @tKt"pinF># <ͺ')2 2 2 2 2 2 2 ЂCŶq/6e@d@d@d@d@d@ڒBȅd@d@d@d@d@d@d@, 4C+.2 2 2 2 2 2 BH ,2 2 2 2 2 2 2`P-؀k_7}e^d@d@d@d@d@d-YJ~3v2 2 2 2 2 2 2 1 P_k^ښm!!) @ @6 VPG) jBncN @ (o!DxkVχ[>qWppݶq~1M_-yBW iZ>MW? ՚e=]!琩Y{/2 = !3}VL?и;.Əfy{~2&20 8OnvL3Kd@d`XB<#jPm)gI} 6N[mcۿ{]6Zfc 20 >'}X{0|(~n6)]ib>#TT}Y𧻓n3I}yd@d@fЈB4abb i | .Kc;h8ye p; rZ-V\qP!J~YgQ!?Kg;+YyڧqdMd@e`BŋJtqP0byfJs6B]ƭ;G=F27n2 m{q}\ =r4T.L]}bQatvCj|⾮!hkv?ˀ l lBhǞ2ouba V~P8P/:4.mygyg )| TUO}]{6v/\c9gao$S):r=Kw1G_;;7~۽] e_嶕V{{[@qKZq>~l.Oa`R}:4.m^mW;ŸȀ >' ވ>i3xZkc}ʔqO[e>3˜l!5?KdEsgEeerVP<ʗyos1BCF@d@d` /g>gB!4(VU}Q!TDUUe@dPCIՌxR%D>-Wˊ8gCمqixy6C^g BI˕CA/,t %z=k,&6W/32 2Ȏ[zfxw[y8{+_KhԺO BQvLM?xKx6M}oS[[ƥцچv3qI%},y3೟7ܕ=&c|߿7Q=N}?On|,V;3B˭?gg gd6{xȀ Ȁ t1q,8 MYѮhx4}]Y8ʀ Ȁ Ȁ Ȁ Ȁ l Q2#76 wĩ`<ڑEюqo22 2 2 2 2 2P층 w^v 6y`<ڑEюqo22 2 2 2 2 2PU!ZhNxk<lX{!{굷6GVdx'/ʀ Ȁ Ȁ Ȁ Ȁ @36!t+Wmͤ:rx0Ȣh87@vܪBgU@k'g<5k}}Yxʀ Ȁ Ȁ Ȁ Ȁ l z嗃^yfpk{g,ZGюׅq ƅP @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.jngI @ @@'B6M @h.и 1nfˡ4 g@!4)~;'3?Sd@d@d@d@d@d@d`2`HQ$2 2 2 2 2 2 2`P-؀k}5\d@d@d@d@d@dBH ,2 2 2 2 2 2 2`bDIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source/figures/search.png0000644000000000000000000022571511534217015020014 0ustar00rootrootPNG  IHDRi sOq pHYsodsRGBgAMA a cHRMz&u0`:pQ<yIDATx^}`UG~vۭneKiKiiJqw !X  I$8DHn{'{1&{rܙߜo{I>rr)ωɉ+{QT>͋a,b.ؗ~3i(eP|7"~!zCdpBܖr@u|4ЖtxXGuD?O?_|MOZ\XLB=Boocb%A$3w?oB\^M[>}gOٳL9}n<}{'O>yq'<~lG$#y(>#Iq) BF%޾5UOTC;f#aIb`7RT~˞zx=V\ihHCUܰ.x7,uj6uC :uxcW:~ǞA*eDIDO^De)NY2lSttQ32fYRMdlױdY1yiNwᲞLDo|l:udΊsuƹ+6u8 W"L7QY) <͈a)׌rf,6}iDN]iD3'/B'7!̀ CCߏ]õygع=Y=G̀>næw: DLqԸIWo>ž^d7?O ;y6+wkGw 7m_:doȽ=> v=띵w磽;č$<~wdoۙN=>0u_>}7gt_ѳ߮>x<0z&3h`8ݸy>F)ɋ@*æ. (s,Wpn歄LrqLIx}5y ̷ߖ[u;YjO ٓ՞$Ȼ|})B.EOB)KN&} ƾ ۉhAc8uٽ!gEרF9r&%i-.;Lɕ+Bmko\۾cۺVhzIEͻYG J+6>yhDZSnKIk1闞܀JuְJDk}ТԴǏMoR^vg _hk ĉTFu<A?|#4}_6nʝvr'Ч)Ϸok]e['?6o_\Ɲ!IY~OO>t:I wr>UA-AL l7P$g# 9'\ΠmooaP }AٙN0aP5}8sHOpȱNk)r9;] Kܱ%i+_qomi;ۖI߶z>'zo}߭|ٜ9kSI۵%gkg߶Tm[7܉oWpW/sr:v$ܹcCPh@: 6N4qN[9etbh~@ WM^j5Ӗd팥 3]\ kHTf/[-^mKn[vq]v˺ѫ(wkx-_R,؉x xƙO]$:yI,X5i*P\Xoynqs24ظBbzB~X,>k;%8>X ?>K"}j PT E"}v& ?FLRt)qѪHGYtOOZ)U"ZHtوXbwdTҧOJ !jw9V˝Sf.nٌLH˝{vV7^ݱ[[n{oIޒL*!^\OX1~n'Mض6mӶOݾ!eTM^![xovmj;_;!{SԼE _< f` iN҈)'"Z#/1ds@3Sܭ0 * WnY.o^j˒5ۖ{\m."Yi*l[oVxf"HW18Vywۂ"rl= Y!70]ӗDN]b*@ʀq3fUAIbLx B /7VZj V/36u1vEC B/r 079}BfnGZ.t;=Mz+8vH 9rs&Wm5ș/b m =GN=5ZP闞vq7ݾ#؝qöZ/q~gk; ><)mlzZ͝[p;z0}RG'jz [F?.Dתf;nvߢL}*"}oJz)Spŀt0^!q'-3@S2kOkBG%\ї+ͨSPEJSKa$bٌ);J!ϩ0T #_}W><:w}G|=1_Q*}D{nO$ 6*uwZ4#m;hiOҥ3W%m^}u˚[ܺ-k [dnYswj"UĽ )_ᖺ6iͫomYssZD{su[ק j]23yٴF֫_C˸щ Cx$q2ss⼕ ^F4xVp˺C|`)JWd*!;!xyZOuwC<x`u=v']7}m"yW]xWFEĹvn(r -t@Keےո0yND'o ߲ix>g&ba"-lO&Ü_U5 p2sI1w*MO'lӳhz2:Ӏ; m)⹥g#jz6 2Tk 8o}B(} 7FI'>>SWg?'W>;1)O;( |Tdx2ɜJNf} ['De\ȨzTJJa< vI9&$-#Qlx6}|U/^v8kaG;h2&k wu(y{ҮS'ź/NXraͲ/s:כ\ouMXdݲ# !6t2btŷ\ƪV/e.&{Hrc'ZVH3eN\([KGJO:VG8^DZsVL玖;uf_yk=`>Jx6pCobaݸ-=}xuC;Cv9%Q=LDߵ(ٍcb#GeG֦]7x]-`?ٵ]՟ɚmn ܽ0|VnFEp% _+]=pbg B\m[*L_( !a ȴ) l]纒`O]z"0! 03ȼ8'A4s͓hl$ɘډ Vrç`z  61 ' 54vvwAw*v'$77qʹZCL6|ȨR!}bPӞ>SYg'DoOI:d>5 :Ɉa/@}JӋ T3Y-5ɘEȸW1Vp$&CdJ7{z55jsݲk66?ֽπK6dW;n[fDȍ;wooa OؼB,;_8hy*;_>ΘJY*t =bj=wѢcoSGĜ LZ07C5n vC;v{k1^Bi'a᝻1=\Ns#A&7{?;v&z=KnO$<]:^ s$)'GΙl"Wxm?LBn@[|lA0d'`vu/3~C {sCn_W3\D|!6C|ܩ˚&b&:ͅeO|0Or#Br#>akB 51j"*|QꔭA(Mfy WBD`c?b^tEWֆq V)ӍQ%ph(U#f1N'CeqjSU339M׃V3iG,hC,?pKk 0IM1)4dzϭ@܊fޒiA1dO(fnә]%$o[Fdm>g_'k1Yam]b} n ;[%3o:'yKOSpE"6w0nD=*Z\Yũ@}9p5INAbV'vdLi"Q2Pp2GOwXb+%Y~ 7.]yٚ-GN34꼫6uqʞnח=oӾZO׵[Wq:OSկ|!pϩ #OOynʘc#1?c셙/4s噣Afܘ1jIX :uxaɓ%Nz2eXa FO7} "1.jgL6!9%F-Np'z7+_/odm L\Lgo;:J Gk''!OG;q B@dx1I<~fp Bp[}4Gzo4eލ;aCf(޲k]7ӂ}gm ^I oa~ߨ:|X ]nq: 6z"v-[ӯ``->M"AhjQ-֨;K0HskM~Z=S NUQO^E6i {n }Oұ f(zIC&VC>VOLB-ϖl-8oџ#[:VN}b O:ҧF讠O2NO 5sE;i\e$_i1Ět D HQWƗx.&cPOƝ9ҦL:7?Mz kgxG瑝 ~6 r^Gx-i.;O:r9"'MnǸܜ =xҳN'L)v#Hlet&`23 'T}3kQeZQ ٪pLeٓo܉)ߠOHu0h5[m.?ť*'lPt%}%C(.EX&jS|(N>Gj7qW~~[R`JT:ڰFW8۸Bh +D41s~m$]Ƣݢyh2!u)\̩e+{~?kPiow7ٯAeÖί←jX7e~tǻ`/!c/WNZv‚`k]n<ҕ ͋,0y1N,#qݸk&hF}MvaYBUV7 ب$SH9 q>,:!1Fkljz |m+60RN-NIkܨJWU!V srB.[)M"[%(LOV dҐ>[igݎἭǬ.u•Et&&'6[yi(YI?Jѷ>GL#T0C *O¦tRzPezɻj:o9MJBHXLOp痥ʻ֢`*Zt  %C݆@Zuֺ6F,q\zL2`|~sn&:u9-VVj\շijm^`GZ8ڢ5[8iU#eUi%O p?UːfԴҩ?lf6rjW?ТƾZԆᶤʻ&Y?,?/sҢüLw0ui.f.ܹO]ݜuJDǥNڼk6V΃]<\7_m?qmɐh05k-?DH+hc7K*n47,nXugyWeP{?qqC״peеs[ f1:[x-~﴿8N|>`*nN $ B"oƂ;լON7`kpXdRSeQ v{?!;`X%*\TB[?3\}_ τ׆NC XYG ]c!^\aM(9!fov98oW X^KzkJz58zߥu +><|z[?8~\q=N>1GS0biJMӧي(qPӕ FF%44I73b;ШM=Re2lJ2\ѻmQ{hs$o.CF= ҾϘ}.[RFN2Lpo1*%{ w`jmjYϻUmi@;69ڱ΍Ownts»5 Z?K=y*ӡIHZki_Tڧ9ѮuhxF{}}4Cȵ+vWra)%?x紥@St[/4u~fH~5URxun3ӯvN}mrwC{`'.S!1h]b`QK1&hS7/?'=oNM(_u̎t`ߜ꺟p3/NOt8~WfBe:sb(Somj' @` W-'1?jإ=x>1<6hycʝ 4X1 hwA> pв&D' }ө*WP^mד#tu1kN¹#ki~;ǝ9Nc6#ub}i'eDZRW}ç{8{da7!4aa.~s#ZFݹ{H`RS_VC25n'.hbn:bOn #;7dsur49JXg>`kWS_e_l`K),Jw>UV r4Ӣۖn.}tzݭl.YO}~ `]I.]R ̼VX-!$}+yCt-aжOb}'d'4C"f}2ĕL#w[$*P`A&,1L}(eG+>+'W8U QJ!_r%΄ǖ,ScO7'v?^'AivCv݆t8uम';i}GveNF hY2qdןDWn-jw#mkw_~ .lPAmzn.R*v W.C4˙>!zO˓[tnsoۣP!;G{nѹBw^0!4 l t0cyf:3p֬tfw=sǒ~{317>w+İmgi®K:ҵk _F2N<){⟝Flt/NJ Pf}XuW~|]?_zB8!K'<˱KW5cUc.E%ziwbhmDl cOsф\ k5^uX͑>Kaw.TGlZޢqCw/kFaKVbNxCbN>sr[7KX𡹂!KWvϒjBl3j;XI}kn[PG*#fY/؝ XC8F2C6D!CqvҐj!$Up>׫m )Xv*lr`zb'?6an=V|i>I W:`>n' }yCtݧ> myC %ɾ}g^d>b}j P0(.eP-}P1*b}F0U f$铒(&VW%} *,S^&-=|V3{+dʥ'LGP9y՛}k6luSY"ɰIK ={D 9b+&]￈ݵopCz# Xq㜣'D&N+~|x7Wܸ=zL"Fu 2=ΎyftΧG=9wjH]-J~Ax)Itʝ(Ynl,-;]醿=Z}r./w 1bNJgoT}t~=LFa;Dp00Y{EP쥫м7Nuw0c';=?%.1ٺLI]uNn  pVpRs 5^Nx=> ctϥ)w#|w2St`Oʝk^ ?Ab;/y1".QK;*qg5LDa[٘SG["0jE.mF Xp$2&1?s!I#=@+kQo^v# #z;OcZ,}>ֹ;mys~K<1L<d"O,tۉ 1yy\РAzs,H| 4d;CkXH~Zdi}܊!ICY1d5wl}LOi>W![%fHΝ> 'Od y+'Y'V{ފɶg dCη[ۧ6@Ӎ㭠OHN$Q;ytiy+! +p3C5J'6(6гs~&8~ xE'ຘ\e2dbIX_I#prLw9nX~nx9'tgX݇;6q#NOuvꈐ#g52fsFyaȋs_;9qfJ>}b(A>ZȾ}0@+>d']Cҹ+Z%?N[Ofeq1*EwD&78`I~"(&,ZF}Hi)'aS\;sνvÌ}_O!'K!jҲKd3 G1P.'CL $EW=]ݿ7:p0#!wg8w\K?v7ஔ)o>7ﺾw_?p@"ּWn"ٝq"'#Y$%<:Ppdƥ0Djѧ*F cJ|'i='8r;)s-T9*W|U<+nDy,C?\ǟkT\RJ-h,X֮͟TNkmܽG-ŗ'-K|O[Y~Sݷ}:.ѱLN_S)ٹlI\MRd2%;PiWD%|Uj]Vlm_EϛozvJ}= Rw wq\02eK׃>1v';ׯ7e#lSXu4ܨ_oҷol7iׁ-x$*h \:dc(XVqd({H7WCBHJWCd)%90`W58'Oz$ad,9Aa<$EHn\}@4٤؄2OO|+ُvE ;۹;rqzC~bx`yiv8νǷ݂ -/fd@O<ȾEw{'yKVHI}R-AL3o` ٶ m2mO}Rɜ2xO%Sp1JDJL]q<2Hf_d)`2d'cMʩ''"ذ3):y*՗X =qQX|XhAbM"b/ l/$_Ov;OɽG<~K"_>~_!wef=zyyIǩwxx΃[!3%Aݬ;>|*ŌBR&ͽJ? >{d9etN\7X 9<l{㰂eʒu3mn|u7԰ұmǹ{=dlz`#vuޣ PaE`wY h9ml=w ܃!o{(! a+/=zw ALͯ!o< Q Q!Z>jѩ+!,.M[XŸj?XS @fyg |o=kގ=l#%ݸBVnݍ_W{Av^@ogĶv>^v{wߊ}k1u!n"lUf|ws:ĸTO#J"`rlGc.WoLWl?gZqw<>~ qeǥ\E8yXЉlQqGCC,_°Nde'nԮW.}dfz%[%ў,n[Ksn-d-"a[i N*AŝdIj+>%}Yv\pا>اDtJ2o4IUo"JTt?I<=ڟ\}Jl*L5 !dj(': #Nt>0( V+dO6uHOiኮiOIsOAE}X}#YKHld5Q)Kr㕒%=B0đ}F`Pҧ@>;dD6YW8 Xli8Q :Ǣ59}SO;®;{ q}wRI3VB2B)wK{撜;Myrgx넕=# 49ŕLr緑(ƚdYؐlf;{mG&g;áW8k1ծ߰i_,\5.}8 A1=D©d;ێcCBU rێŎu7x ܼ[o&ǞĤ[sN̤Cr/BxXXl|v"8(f<Vs|pEk!XKope7D@o Os3<JzuC;} j"^ݏؖu5c渏bؠФ',?aAu3;gjBzOa8qsV3! zƶy;vu&]6LQ!;iDi7Jf`̤apN psIwaIS"<2=]6tYZAUnS^aڭzam zT@a"}~/,}ǭ>1󖞕 )}JQ-g>>tIAMI9xtt)+'qAd{BD>F:\JgyFLLDj}:}F&rd>6v+ܟ;!yv%؝;/`M~8ΐgaw*I_t&-D E9`8bzTL[SPqmH%k<[Td>ؼ_p/f\_&1i,9؍ +T֘m?ڧ6KʢTi޳J^pĖX$S(Va&4I 'aWm5vHȝdgLOV d[ўl>>Fp,>-F=)"nZBWĄmߐ`z ؞ ߓi˩蓮nS> 'u-d~ Wرe&m3zkk@%u_$4P6˥ C=䆩4JJT6hj21ٞ 蓾H$"}2%l*d't(S Qf6Grsd}JInH7hHe>[39Rz4 )ONlkU;ViwVG“O;/D^Ό_yl~6:pAڝi  % rB9eu1co)xG" '-cS('P30nqCА1]\>HDq3\p\3f8|U &Mg 5 < ZudR@C:I]~lDReYX~ k2S5m-Lj>竐*t9{iGgLfLOӄ[.}QOV t5=)r'O]i5}i':v$Igbݧ4V81'9LOa>yDTMlQcq%[(PvV vgɖ'WqzD4LEZc&$ɜ^J w2T(}B~Чأ&r r>lF:)cMFw >xgr[.2HJ I g+p :INʝ%D&g\O1qۊWb|vZL$B&Ě@_&ҳ'S?EF&k,[BWbCPrb(yBze2hA0? L,^ɹFOX .p5d V+Tد9BWETdp+0xtHO<1;^|ncgB%CUjhg&aP {Rh"=F75Eop$nkl:k^0j:0S 1H!E44d,YJdM[0ƃ6U';ړm6CJ 'oHr| o1I^FlS/^OBO\aeFf蓞-۷O>eZdيb@Iɗ+QgJ3$']CE#٣M~/Ҫ>}PA#׌W2xs+dSŠ88Hε Ry)c>w©~^H;31Wy2Wr' ŪlBJDNL-L fz*f ~F{fJ5R(2LOd mm|6s"+ ]Är.=tOdG~"æ1VAPYF25k9$"gc{*'ɕ>'. #!8⑱^#gw:3b@t2"UA#%߇|>0.w8HAj (G4F]Mf",E:L@[PxuZV#qUR{Wf}dtٔt)&LGPKz3#DˆbRNf1Hj@~_U"Ry|^b?5|V) M>IOh vS+ M>H/mJ=0b,onG=P]{';҇=䘝rnzl 8壞Ҥ![l)l^Eoen>ɪ,d WI}O6N⼥G~R Wuҧo1J"| DCAmP}҃D_.ǂʝ*ÔY|]Jt?& v$%ljOj۠(wB0/WgTNdsZ3zƜ۹T'8qCs& 㝄;00I|j$'3= w^w>-Dbw$p!] #v'3<)#7!OzFLO>MR|ĝ2qfp&hM]a,B6ɑӡ3Щs g#W "F *H!8[aʖ,nR!Go`!̈́Dg"[J޼kd7d/edφNe?DqV6l*[LeYJrζykKB6B'_z/ftoң/gAjU[|PFy7PLd9DMƲf"Tɩ'GK'B#BBm&G!dQ!ԯe8"v+kKwth/ εg*;=Uct:&ɞçW҆=Bڼ kmԲO|}d˞}G 9%WOX AT`AUFc1~9p $iɏD0D' Akmݰ6 x•WngHzO3~IG/?|vi'{r{Onfdxt-{Wng&̸|+q^y=;S2)փf_~y˻_]aWw^|]NE鎚8bp8G ҟ|]w?}Sk4ިuݰQ^C}^iq:`t;٩(ݱhݦװ6=u/6Чq۞Mj־lu@;ֵ(1{C'@6XؓMtdwNZ[Hsp8~p8 Nr vž{_ƅ#p8'AƝfHԷ;p߽xۓgp8GD<%gKl p'w'^aK37nN^z G#p^O;_&?Ox<wb_īʀm‡XWe>{u?9G#XұU‹˙"w/$]#nX>^OFuO_fƅ#p8'A^\L{V;/_7gZ%|  H|8|-o* 縹y&_Mu\r9Ԟ=[nUo[l_g9p8O$SiGhO}}62_ܾAr608MG#Pzrq0 >x۳Vl>g,sD-۽CBnc."9+ql_8tu[>|Ҝgnɺtnpܭ}g/ }h8Ǐ1FFF.sqƄ>:wرc? [ '>7+B-0}٦ _PNfiOF^#utԵQR?wtR5lT $٢#NzNy'On^K1߄ݺp1;i堠+zzz8A۶y| WnwZ9C3f E%^SxL\kTD/V㸓ͳqlHਘfJzd]p(#gvSV5r`ɬO}۝8@E@Ν>)؝x0~Wㆽb>)Yq  _8"*a/_eg? EKl۱cGX̍|Ěٝ?~\ Nϭ:Ҧ5p* Zvg>O#85wRSW裋Y 5ulS!(Pܺsn19h+C.8G[J1f^t4.3̧{G's2]Z}.i+kvgO# *w- æ@NҎN RwnwqBXvM=__i~5SCܪ~C|1 Zy*G#h3 [m!;q8G@G}*l qrp8 `ΛN>eܙxKS0]Zt<8bɩNxRa\Vg_eiF.0p8F@N,'$>92G4:ܜ{ecˉ"Yw%B<,-ᏽ. vgU<>gOBK㎲;%J  WsV! FKTEl+Ϥ^?]76'aȝ7Gt37in%wE]C=ĬJp8  ;} ևŒݚ|囦.]?}ن _|ӄ5֩ccs8#{Mr`rr+oۡ*@1x<;s!IiIِ^r+Ϥ2:_D:q'~gٴe~ώZ?pƫx~4 <=(4pũ4qO6ym#6m}yhF#p :Aw>|/sݷCfn \{O/]}:,:1e?f--#{u~ @ ӬWi֝ .G#$9M2q统|yzʂ;9u7K_yYⵇ\`y6G#p A;og!OЧdw\mܷtzp rLvk ya;{֐Ͽ~֋ksp8xq#9v,;aw>zq=1G#E|"ѧi_ھpLOLq)\8G#:" pg O.G#x`yv'Ob} '_]bs WxJ7\9G#@Χ>܉=Js#ܹg&a"7.C$G#|(w*qy v˘}%І5:/k !G#H>[؝DRD9*Wo܄`s (5*;˗8w p {//>aTγ]dݮEkv4gٷ8wr,3pȝO>^X9v?gVi8wrt:9@@p㗗ҟ^JLO>!{m`WۙEu9Ν; fLr8!iOH>{ĝWlwD;s8u1s8BIi"wv';7laFOles$9ڇace$+bW+"Lrl.U~F~g̚1{ޜ#G9oG3v?hk׍ʹPIG#33O!wbOWn ?*! 0aI..VYҳĝX\U!@gDoݾ=hذg,[p¡#Ft5nbn+.;d7oq#jL $ *r'woq۲}!ܙ{Vҡ2c4(saF`˲ݯ,N7wׅ >TPp,ug#H ӓz^*={b/^)UϖxlVb?$ոu ;:;# zrg-e#kՍPbhz"xir2՝3 9jμ9W,[nUG:dް>[^!9@@q;Ϙ$?3yV[1dh>[{[0OONWj)ղ7ɭqM]Sĺ*2#$bJQUXV9oԥW߾+q,g#G@0:}^bf Q I%U<ϖLv4%*1HFnYhr2VU7B)PMCa;M\SN: O`r#`wf< "p?/g]qN! MOpgom}*I)ar',؁C3jԉNݺ8nɣǎ0dhHhl@|j+w>|rkv,"2>G%EtJR\ 'd+l_-ٝ",K9N|gۧ5l}_첬ߠAC3nࡃg:T,@FqWa_E-\mm~Br܍KiNB~&vĝWIg!ɦ*)QVˬ&:f;v˹W}:w͛>~~vܻW^ur*g[8G#NJ׷sy+@2mKXL% 9*֢9pmѯp 9"}q5;;u}uދw_A!<ۏ1ϖL"CaF^֬Qq$9w ǿ#(0~嵻T$-ξdKVo_ĹpֈeV˛oY$G# q/v'ꍔkw,Z*[X%%kT_r*N.G#P`$zƽXJc,\f{dܥ4(6G#Hj';L]tv0@.};p8늀;yM ]¸'B7Z9G1(Nl}֨P \f;Ώ*:DxG#Pp竛_ݼ{;{x-(͹-G#8wzȝyCʝ;L0stLX9G#Ý^݄%l\{s A8wp8 G~ +v}p犍{Q!;S Mv͔;xwkTXGp8 `t1i}Mlx},&r8G X$/9w>~[#šG"wb_۩w<}zd׋I>5;-&Or8G!X$/w?Me8B0.r;Rbw;9B؝Ei:W fl)Z bX#̛XJow"w(wF;ܙVTEnwh|0@@E nqw> O68rtOJ)w:;m;;Uȹ 590ĸT P%l@g m}H i&±%YTs2X_ևaK#e.rFw/*b0'R'pǿA` #̳=&rg(9ޓOĤ?{ڇ;m1Bo=K\>VpȇtD܉)w_ Nv;ǜgg7 uFw{OL"p_0Π00bw~E\؝Ri.7%ʹ37kVz=>$NG{nPAY!s iH҈;3ߎNf  #w2)L9*d38㝹8LiwJ4$xLeF!D Jt Z5J$W$uz DGCȥ ?h 븓 WUiT[V (PnVLkkM mɎwf9gOߐYvbvE(o ;w#wWl cVbuhJ5=l+œO፸3Iwdb9'뒒; λ<E%ț)vNj_z[$] kBvmM>[aJ-yyȹSYJDLCc/kqtDCjV8;b8lsw&jۭK#w&Oځ;MNxpg#?{,3y#"/)-p穐("؋;e3BʙF8m0VǶx$_-xZZP:-K-g+.>X39TJURzehE[y$WOö́  ʑin?<`0RS $YȋHVm=yz7;D(Ÿh"!Dn"j+×s`>HsxH-$?(f!q$ViݽsdS xqkS!*ƹM3ƪB[`(-z#f_e;M~86O5uA#?qiqg𷺭mW 7mCڶ-Wn["qUw>g)@b_QwaPhLPXLpN E` ~ڴpdmlYʩv Y_05Z>%//nr zvfVGNo)w>xx&< i.sl.8?8 Ν6 {SbeE" ,D˝qtmٶy3ᭌ, drה\Qyך9wZR^)MLa^iT'^n}È;c/ٲ+;3Iܶd3؝;CB";S3s7c!ʐ,RQ-X@Z>!_LѣCڝ- >G)8E,}? NcvG_3KWG \Q-wD>"jܗ}cB:z7n`CH7nh3%l}fܙv ,_A֣؋/k{| b j(;Lsg@|BѾ1h!]`ҥKoݺ+0/"E6qg#HK;feG%B".z'gV(Jv' o!hx9:m1͛7ܧy.ˌvg# δO)w,?}(;BrLBrtBwRN.!G#j`_!P&Yd_ߔuzbYُ.]x%ҕ{,Ssg yG#0Bz4`2^flӿ?*KW .^KʹG#Ilgd`󝏿QHs w~]"18G&|o{v>l'_^p΅kysuyΝ\8Gh"`wv.9K+YY<:!9m;pZA3 lnwM_p^{l'{)pRZf_zOhgޣg<^8G"`w= MD}YK{Ohk\îuPPRYdG#x;' S;'1 eDCjw'%s|U=G#(;E|_`g%Ξ|Eq8@!w>#D/o}x6|}+ڷ/}~~Q۝9*G#tlΧ~w؟شW=~h}tYA/C?G#[lΤ~w)w|838,~lܽ|îv;'G#pDl~Sg]A :߹LN[}WTn|K.Fx9yQ)8H)8eˢE8!q'bz v'N&#N;pgת{( )-)Bk /Syrgxo;kqwA=N=5h1L] 0E0t{Ke!M=_1w_ƚh%|9T9 QHA^|. -8y遟Za]`+wFg+&tH4cl ̽ϖaQD19Փr5A^jRbyю8#aࠌ;*ڜBFB-Ef pY8;ÛR?rz%ϖp'et؝;#bb/&]|Μ=ǹӖ/Īj Y-b7\b)e3cu빳@+ypgDjwز+br;#b.D]sy;%%---<"6$=nOxٝ` OS`ӛ/F)\C̊T~ EUn1'8;_uR~jIh $IɢJS4A ayc%%eFO*eLQ遢JMSAV}nx9 *0{? װ²иM>mrEV}ӿJN|e٭S$O^8QΘVXϝKJ{DbgKy\Qa D#p&&_v&(333.OrR2JS sKTLj3+K%iF)o7(i!!YsePu975r;ZZK;mHDȇ2] N) kbQo͝&2ǾF7+)fRķԟo&6NE.15nXlRYE*&8zi)9YSFt\Ru!y. It E50MЩfb>DՕa핬[5θV{Za=wv7615+$;$ o:a}'bu:{ {#6oݾ}Νgɗ`wj%"*IT7ȓKХNeBDe,KE4Gni # #kEMyV dOI+tQdaMЇ4YGA]FʾPL ؎Rbth s;sT5iZ SWdt>fzQ7\:/yUc/\(B>/Z2e#oQ*y^+L]+L z.S1fMl}Gyvzz:lM&Ǹ^q#S`JG΁c+wJ藥A69cSrRVrϝz3a6fUs+`V(Y+M3wdܜ(r`|FZ Ŕ@O0[o% A)~V^^y. sYfos;u̠jFYc;wJF+l~!!J_08,F؍G7#'_j/xb :È/%%TlUkt+:clDe܄`&mSkeZzÔQ#4Qzi+z`*6]U_˦=4 糕6Rs%X|JX&M!D t5WR #<ˆ-*FcV(*j 0kNfFUcH nYsV. ZFU!ډYT7jڕ,Sr#:UzwTbJٛ^gox!"plD-kJ8{Ͼ{34,<..>)))w22223;p|XLS.*PN?eݪBAg%Ƚ}b#gM /Yic4WP%%YL! h ?ʰbS4A1)KLWA=1AUYTYbUALjms܋' XSN4 j 70βl tQKa/q[ PӈFl7N,S9 ()9GEʹ3'ZʨM>?+_(x H”#^(RI.$eKMBY;qqgc)QjnEqr̯1_9r^S _%;'<-*p;9i n؍pq|MklG#P;;y~!~D݉~ef'53~WpX9wup^W.&=OKc"ٝb/5>QqdԳhCA_Uws8"-9rg_Xo ;id6k?l88G0#`=wv76)Ϲ;>w%"lgg#㫵A?5[E?Nj¬<G#` wlbc33iaOIpkԣ|vdyΝ\8GH"`=wv;;Ϥ &l^磠 kz]JwړHb?#psg籄;N'DΒeևBKjټ+/JF;r}Ϳk96!ٳ7obt%a+u*=| ;ݙL:1=)ڝ8G~]mmz\Afg10osf>F1Is gE|i;%w8QJ/JKȆ{ryu~A>E~%ӵ#&#Pp(wvd܉B"} >7g"UjQ+d=+U}-c(GAIl:QٝgNΝyS<i=V<$G#X3pgP ɞ|_,#J;#tҚٓW~KMKdFt-o(ʱW+-J0}Nz˔ͦ奟5h!‚\;333A'Ng֨t3A7 ;ٝ1TW2϶wzՓ{:UZO{;UZt7EOTrO{$w6vJ:3BRdT-2u M9Ƞw~^lmZ"ҕ*PISZ%m)z&kmԈTܩ {S3jp" >IU@r[&+;3}#Jʒ:vPE5 |#Ɉsߴi};;{Wډ<Qr/*"RF/Fx':yt{=yBe=w`=+-e$~EfL1SS7^_zƣSP$-~=Ô k2<OrU4AMz[iA?j@B@˝ɥKb={>|ĉAAAǏpg#/> MN¾BȾB_Wo[f>? >[9w>yKji_MaDHv9~y(\:W0sWDk[ڎ s(Vp8#L˙ܙhOH!"wm~dW:keccf?Hq >%vaJzV+h{߸Ɍ6K,zyG6#r#. " (~r=_I~Vk)6SGb;~?ۮF_MLAw~mqPXl=7YNS#gV|ţlz(H mbpO=?{!<{+6h򩓷!_+(TTQQP?_6_HP0z@y! "W G"h} :mt(;g"~jS+6냫ſd#w?673Y0r1tEk2s06` AU2No}X\TB6R8e6pY综z Ff›^x9yǠ172<qrDNxh̅GۋL5 a_bÝ#p8yN[ ;wRRR]$>[6ޙ!p<$:VzPwi-#N.G#cw3efe=z!w޼yڵ\KLw:n+rGx'O;gg#㪴s}w=VTE<'p8 q'5=z{gf޽|ڥK .?p.$`؝9N>ǻдLnaOJ;5#p9wfgg?|ň3==Rbr|ŘgðmTTLNdz w>:SAWwu;_V߃aO|'p8c wf >įUywawMϻw UcG{J)B1ҦgY( [ĒgO26Nydn7Tʕ/7ϤY(KΣN_AhrG1WGyXttmm49&ƍY:U?u^'?e(5 4x] V̔B Yh%4UWSI꺚l9R7RUm#+XmkpHryꭾfh0u%LJuOQUYi]`c:q;۔1uyT FgIvV[cw0T)ʌr{H7$xͶ YimR@RfZpU*n#fyh&>Lsv9KL07l w #SSV%d@mm\OCYِZ8`F$mlu7o N&ʝɒa$iz|H:)DTCfC]QAj: M]P6KJVs &qVUojV(Nhi>)naI&8VӶ\n^3-.}[-szܩ 9Sm3U6i7ֿ&הy?RS!5F>[{K$n)ЧiTj;ˌ}:q޽Ň#%bi~,Ʃ粪i,Td&du6cXɝ->km}+F,tt˘ZF0@SnЦ˽&L^jퟙT-d{۝VKEl^u ;RbCj/SfԍD&κvM#CipͻOIL{Ns dSE8Eu `\cmі5;i0P%f5 )5JfUQXIUm՟U\9-빓,|Nx Y}5u;%蝹NngSZS,^S] (0κu7FVUEb61[;ީJiC;ۖxnsIMwywR؝`-r]x:y~R\x#7tPu,3inx eLY3zr+A\aT3͊h딎PmthRBRCW tCf;"f2#hl[>%˝֘6  -:y>녶CC-#˳V˚&Ku3mLuUYՐZ~lMH(a |c<*`;?Pd͙wȢ(77KfSw֪yH4yެ sf]@A /N>d }Y5ZDw諲ly=]0CB(Ν f;IDοM6%kv(Yv{m ڝY␬ˎs'd@E oNF9*Ŕ߭lw+Ӱ#}[۝oӋ6s8@ g[;l֧/}l}/}%빓۝y"<G#P! j`փ*_ ,Szep8|A ֽg0:ILO;Q :qd6kvw0Ds';#p8y@^r'O;И u:ytCkww(rլNq/G#pgϞ?~8;;ì{gfMOϸ1&&.""ٰ'bVݹsgƍs)1`c`wJ|(wɗ1wӠ۸8P9wu8G %wA%xHTMn_!#pN|B~x+Ml&G#p$ΝV͝3QyJi9sXp8)YqgSe$NDp̃"!{ӊ,Ī.h畼,8/3)K2=}>ž|%k/U7:%lؓOb CMm,R-x?5*/PE9 ulwj.Mq\V>۲`Ub9 )_ښMڞg;h},O;ևǂ?*Jv/J t6uխ;~svQ,ANٹV V(Ôr]>@dg&v'5YaH&w*5BVtzve2*FNi!9Z˗;H7buYpg;qѠlߊ|VyqٞST|{Z JCY̅Hy',JsE bkze8埪XrnꦇNn%1e)J3nʐ岱Yp[l|He&z!wH/t@Q\rU-4%qhRBniӀ"@$nzqߔ5PN负ژ蔅DsV hn+gIk%U9EAd;yL7&`PrqC(VEd6m.)"2+xbdTgT?YH8審S="UQ1MzdIltb賕\EnEfd3VA!|<Q5(}]85 * 6LEJS-2/bY`Vt4MP5/[ꅵš~:3b^ȫ|L [P9O|n**XYlkN;1)pS!|W?,۾brawRSTze蹚 ic+/yEFg,iT8uYkBOV͒&eIn/Z+j"rN0e!)}/I/,"2()dWv4]SOYRnB:5D%A$My[7*ZaYf,I.cxvlA:ݎ\@ySl-+`s'Y] Bz؜5w&)ܿKyzim%wJHƞД1IfBH*LΝZJ3zZ:R寛OH*eEMݔhsIJʒ?SUwNހ5q^"u mّ:+;mBRkR&@<{RViikVfIe`;5m8mPVj{Cg3/5.Wכ+dAy\ge6%<'? PSnw{ڂYZOٝ2Y+/ kmaHj)nobwRY hڝԺP S~Xmw5arYڡ cWWhm4ժJ]HdW]9fֵ; Q%i8J\K틨4ÝnMQanjθEz Ʃa`CԭmwLʂ(ZOsb@2Du~ $XlR4ީiS14HHd3BΗӑRW$.Yu,i YG$iXQ'+Ql,@9Z&.=w*G͎0hFDܩGYϝt4yM:B骍^4,^ЭV+nvA'KNyS堉jD$Y7 n=lkNmwv?ݧ8z{/w~m':yojӳTfk.S{3D:-P*wCe'=5]m)ӋSze:+ *Yum|ʧ{ua^䶚B9 +f8XaF骖g(;/4Vf g_6.2/.Ck ^q<'cȡ1thákgx9yV*Ͼ 9@Q)c{G_>[[p8A٬}+#7iǂ>*Mw\?T9GuD٨Mw3+}ϸ;?nYrb~rM?;_Gp -F]ue穥'}?TH5`+q,lp^Gʝu 6{Yf?/XPX wf#_̹uAG!Pڨmp _wNxp̹LڹXrU9w6p8#Ο9<r";wg"*5c>ίU: fG#Pp(wX - \9Wg⫶T`?Ds,lp^Gʝej4?r猭=gn1-η>{~u.*Y퐊rw Q7s8ˆCTq&8i}Ip?ϾX躝Tk;F>N}[VQ; iB] 69T {ݿ߬Lٳ FewUutΒ?7{:՘5-Ǯn5{.">ׁsZ yjSi{0)_B J L+B\jk9Uml9g[9ΜIٜq{p(w(TlQ ͉wWjC;C9NjonQ0pJU\I{.Y*4L;LCr^8w洐lyϡE' ]dCW܉=1.fYgz도Wi&ܩbPx;q\H[ٶ4%Wfm6]S 3N)Vzyw꣪64Kba?$cy伕1_Z(ٱ^ JCȸ>r_ Qz:QWr\m#-RG4u5RGin >En1 r?=YK\+법/^K{[ݐQb*Ra=) XPh,UNlwԌHPi; *TADщQ(2RH*f ϯG(YD9:˾pٗ^sqZln9"vК\Noc5&اͭ=)Oz;s))p?VO9}M_tn4h3)֔&k^FNvP/yT C0k-38uY;P1Z6K"?SAUtd)|cStkLBAPPYMIBP膑٭"T;isݬN٪*խVYׅPl0[}9P YŐ[ erg; p;ȩu=\?:*9yN%cԤduLHەGet $>!Q6gR[TWeumáO]boYp m/EŤ2 _Q㡋50Μaz&6u5Kw<(:FZ#T) YO7!+R3uP ʝ\*ѧֿ~ѪWثw[j]x>)LNJ#0dtEl[Ѭ[e N wj^ÔuV۝=qfBgGb>%5HsJW;Fլiq*SKд;]YTŖbcYVv"PHy65 tV@W{b wNYZ]:|uJ;U,M*NYe5ݨ5-׭q!ۣq 8͝ق2_R?.wRzz{`{`>"1W268ܩrC1-j;9)׊Ֆe]oJ &H]V7RńR=Nu陔s4RmiH;WK)%lVoy@M4jx:p*j|` j45)+$y]3溺ҔUf>=hP\ߣ;}/ڝe*վ`_e~QI;1wFG#ΙK]i>Ubo<*#5-X͝>NšD_"؝P lgm>1{ӉYx<$F68wjerHʹ:c"\yùX#N;e*]6ލ97Aue}g~!u m.Hl8&ְۇ/>|;OE&nڞs몇9@aB  "pUHr{Rqv]578&; r8rgYbwg]w~w.\Ig$WiΝW>*"rG#Pp(w5*d/% \ӽ\/^M3] ,z6ݹ϶*G#xmp(w> k2xC\=-_%f-ǖ8㔛_;*"pG#Pp(w~YA#Wp_F;Tq5o=kDn:x>zf8w"Yp8-Β?7 0ֵw?q*_z㉻RvrιUDG!P,]Ћ}l3HNջdkgݺݵ(ΝHuxV9kCb6/Y0{np;}TfOvv0ε'=-jiٯݰFH Lb{ yP޴Ggn<|/*nCgw#irΝ34]v@ BW.; ~vΒ1vhDml3kCؐ)E9}ϊ90j+RA {D'CVA+TnMw, o}{rOuߜqQ) (nJ)iV.e'woԑ9Kvfb|r>Fۆ8\f!S;Q!yrʝ;x޶y_~l <ܼsqvⲽͅQgD#8w')l2}Z{SmA8>I4b;T}8=PYS(?9(ϸ)]wD+oS'VgwB0sw*SO?ITUWPBMKU?$ (Rޭ^p(w1895kwMIJ|G;[  |=sU]e%N5MLƔx(ry]i,)ϒ\%#ZxqM]Pm`{]3e NBHDHڐą?eց=J-s&pݰaFH;E@9eOPx\rg'72+ 󋒥~(Л{#RF]92oLveq)gYJM^5 z괚I(kyYS馮iWd6K,~2Lh!ԩL6]mj$'W/e{NUzi]э f LMr8] l)`]J׀M~]p(wv?g$w~M:c3W;G֨\N{d5*gj4\U;̈́]/ɹSKif-$1"kqm'z,f޶,=VO5k{)*|گ6ǝ W,iuA39}AHr3@Rcdm*jgj 2#S8; kO!gw~U,]ߙh۱;O&w$=3'p8V#X5ꝧb}H$FNzٳ39~? 7{[< G#pr@qgwV,3{8,.zƓr3wp8@ OS|ĥyp^su^p8~y2ѩl[:۝*Op8N؝wIpȝu6܊> C'ƹcV.vXͼa?7gwb|/< IMr)28_؞ۼ*hZKs\ZmC5H@g6fs!lrh'3l6eCi!Ug6!z2͢dK3׶[ft&J&w8hc od>9x\N}<խ;~svqRI( =RsF50uuܽ;*Kv$[RC:5Y<SLҮ*kNڱ&q%e=ʐR]UMHߥ#1Ҍ˰n ҷЯÝ7'CnH/2Jzvrʝ $iBW;vENY9I~'Ͻ(8zd8GNNL)9RT8T J#F'Wp5zG4 Gc^iNV^MŒ1&n ^Acm*T &+O5NP$ ) NUW)񗫫MhP/ U+Ʃ=ݢ: FLHk" cv7kIf\*թ"`pO5}+߹v޴>J  ;T\0<GAYLަퟳdD2M+6!AJ]PAgVF֌~D<ފ^nM+`K"n1}>h, k^AiU*:YI#uǨ󩚠֕^]3QU+3PEr(%&!QGI6R@Ӷz/u!S*Mj-a1n?,~ƒ8S1+TUmEm{urh:G C+\ .Wӹ gX'MKe^ ͕[׌u0n;s~?z7)5,eZPA2̼)0u- |Z8s_ȺkEMJmٹ_.N1I+LnMUFQJ֕>l,ڲvQ(Kq֮2D6Sq _zn4";H3skwawǘDkFYoN>ӂ?ƨhNLߞܩOLo̚Ka 6ʁG 뽮Aܶ[3˝lٞ|ҾB~y=w!ng.jޱOS>6YEQ֙4+)ZfATx@u47h<Nxu 9mYR|i?Q;au 9)[-2W>_^2ꢷ^NXN]4R sD`{ꫫ+U:/zadXT%k[1V!q;4zLBFa;7V ͸nn\|w֍B _'t_:!wF<5֔g$ |WbK @1Q ؓVN\TĈ(MŦGR3U~Xe^PJJل^Keȫh}:z;sԸȗJW2YTPI j7'_w۝G3xN8Gs("qS:M3c/Q{nMu};r8@Ggg=bBβN<JZVg; r8CGfY/_K=r>Zc{ #p8EJMMu+ƍ[W8>ĉnwٸq,I رw_E"w엧J|t21ŇΞqtha9G.ȹɓU*Wճ縱c,sqKJb *pg:M0h=ȱ^xҝlR<G#p0*tgƍſG;_X;nXr0w\kh̒U<y !;FGIeIzArRf@ vI^hSHwxyqű %W( V@M);sla íg<)zKtCun@nD㔝9ˊϷ iEyD}TgKy+TK, +uq[E9Fx^W!8gǝ~:Tɤ7GɢMgHAgZU+ryNZ"S"obZJ C|5U/G,SZ0SJZx1eI_I.rVrZ@E%_dFTnR:-<+<^Xtɜ(7vj]U#~z~aZ&[!pv; kON\ȒD;Wuwݰ/r}@ivd4hwU;'OQ&[^Z,&#ͨg騊ޓFsK>2iY8iPׅǝcl nHs-^kH܆}ayʬfX\j@0R]4"s٪^]6[ۈ~:iiJmnZ[5S' F-756%wYZ-#&[!Vrӱ(w٘ϳo{N]ʒ%|u3~o5Ii-:ϖ؝Ň*4׆YFW妙1uDS+dШ1vtwYp`nKyϑF)jSo; WÝ͌&*ܩ[lNm $+гeYd/Vc@=#WeZԭASxݼ U{u0:ْ;V<`փ_h%sl%+]X Zh&T2XPv;E9Z[n,L[ZtdGo*iqGŶ/YpXD~9uեaoMJDŽꪖ!b:o[ɝ!NcRUg;GڮDBSV!]eY7@cr;ETȺdFC4F޷_V뒮2ZS Zs&[!,)3Ǧ>|z$b-Y|T׉D|Q)*'-_,L`4Ms6VKMfSe)JK hʒ)ر0 L&T 7T! GZgw}y;jẓ. BjF:P-C,7m(Q*Z2D@W;KlH; R.wyFҒ?%) ElHTEPJYe]^C*ȱWFk"&q(w<.-egYF4v "rJV>B,,d'ԦN>eȰGN/rg!RpߕsfO##RC"Ӯgw;>&O##P_r:;8/>G#@pgz=~qz-kzR@8 vH-wc)\Suh4){po=*|a_d`@؟m"I "`[ykfXA %ZVKjuRs2oT®sϹҾtnuB]u]-`;|]-*vޖfawdIŭqja؀x^ņd)YdܠQ򬓋Bj{ŐܹǮeBXɢ_uLq8.k{jtM޻}(k1}͟ȢAų^i[[hǘ`Hi'ෘ@+OeNܙ`àF,3bsc#u{pwQwc˟=EAp2*b@LNNP%tq#k$A{-:$MX*XghGMq'&2IC.wyx{`@f/C ^|uWrXu.LfxILP (qj(,U6\ӆA eq w{*23 ;mEP) ţ׮RrvȎFO'!?-> ɬϘ;|ݦjnKJr*.?{5mnC?=Gn𬡎SÜ\ 8Le*68ށ%6xM:]l(f*@gin8Bb ?`Ū'кӎ0(-~ Jԝtj2{'?Sq_upPCW#4.dq֍_-Hgţ)eFwKJ0\u@pY=5⧭_ /6Tme.3ILuՏOT>", TSQ@,+S:~vSwfЂbWZ-wjz25z5Dhj(dVrLg|ۑ:sg{9*Jw֨\˝3ik7gN2Tw"@ə*N8ܩo=H5ie)([0ZUg6queG25`cw3}{tG r1dio>Օ.a!<h4F9SS]0.tq_&JuPXP쪩N?~L;NFO6]~23u ESG&jSƝnEݻzwN?0$2$LӋ^QE"5oCzw qrŬZP*̻/G g0]ÿTWjぅޘҊ. xsѹhHw}Z j}}.u:xH=c'Ws)_3L9.TS0GSx[ bҌӓGa1,B;,%ϫp'UTY`~!]ގp/RxNֵ!rD&iVtWc5:w܉ '>w d}I:lykPr킻a7.S~ obLj>xp^j}r{^yGUZs OR;ƅ+xʸֻd]rܙo^adH6^! _ju8%# =ہ65qm?wV:uj`SyNxBZ:GT󮭴RTp'l{ĝӄG@ F[5ٶo>j;z>nFAH;N/>Mq' !@|A {b9wj!u,<90ygz|Q'!@5Υsg:Ov;Zg&Nz&lk B @¹sx:%z]Km=<;vrڗ^Jz#BTq=y-3ٍkGG斯y3RB " B{gmi2s_@̃?Gܙ\So!@ $tj|t5{=3RB ".;E Q7~\g%6 Bdx U1׵I%wi?\7o{A[K;ݻNRcOcRw~ l;1wKyFxQSQE8s1P'+6yg pjsZqgDvފE\kɟȢRșiaRЎ1)rM04ѿ/g*% s3X?d;@WG?N39;2o5Q[18pEMԟdٲ3c;s=\Xȳ; d]يz7tObh?lLՏ_x XN^n3q7EgQ (^{v,K6L\gZS"3KXכxeHw&;X/w(U"˒ȣspȏxV lsXbQ+MU$"1 ĝ ++T-Y$;gNc϶m2uH+,LsU,_-ubQTW RFg%n z dޭ9[NRըmQo /I2A*hz/x%Lw&JJg,SV4Qzwt u]2͌8U{>ʮPc@d+⡼Ϝ?jjP|WgPlos' &ZƏXOaŝ's"@I+mpÏFN$vyۼ(TliiMG;\v,.nc^A޺'q5іQfQEYG%%cFQqO cܩ^l=Q=,*M>I;毇J+#e+%FD>UoU:#8D' Tڄr^>[jLe3p+]p]=Q6X:oO_LHGW&%?\~}t[='+DKVO|;:+ѹ"]z]a߶(Pc,}q?SpXd8)P0<\j6.c3x!$;m;wS+pӿLF9P\3=ʺOtk貫z]s=}m;lU,iiӝ`rnn_zjR نsX*i₴i\QJOč8$ /wQ^yw;;ԀQ"H\A`WC?.RqM_4'KfDFIP#kgJCA'WSf)^e%xWܩr;[VQS>00ygcNiFr3-`>$ b e6e$?)R0Qjs;,iuXa[d'~EcVt8dZ`~^]^o&q_'$ؽD#k-rn1欑̙nUb`L9D5C͈H%.e*GvMA>3*FVO1x۳v (ʠ%&e&ܹpuQlQцA]rł%w>63X\WR901غ?q3e6%Yj%5 !R36d,}$dʝ˟zw<y/ /l-?utzHmڂ恉a2>?>H$;{FOm̭Ϊ_ar n}qdj`uvvmޑǞ;S;NX_֕!}W.Cc!DLeTZ#ʝ?R 8.%@I&p~rல]*dUԖ>gJ] B !P=n;3K:\?zlw;W<\];:poT BsI+[lǝW-gǶ*s2gdhg(QT B $;Y19[7U}ݾy-wv~ޗy3. \9*I"B8H(wxxFu:q4n/_p#oɑ߲xop#O=Eqy!@rg^8}c48y+\t%-E;ۇzyIy24DB {˝;Ovk.l4+tU .Hk}荏r>\mg5ĝB!@ʝ>k TYωY}|Is?7Ͽ.:; B ʝp5AVaRw pW\{om-[/"$B$;g#6l(>>jd>ܹ/|ɏ;߲`7ŇvvF"<ǻ7໯B33sTs{|-'Q1C,ؐ͠6ߑCRi0 dɜf`$;945N޽~F/.bX%3 Ir;>dsU.XwKɡmE{GW}Y,Nuqz8}pZ<35Ў1)r';Pqb_4Kx7%Xib?dc.%dcvЊ ʪg稔tTn}[J-<32c;L@hf0fIwa% u"ޝ!%;YR?} wv,1gk%Wuo4蛝Ż xξNwۤg_ ݕ rW'bm/ʊ2p-XIC)i{NLu(6Q1g{[}W9< f(T B 5$4|p ='rLA is%/mi+O|E7ێn7盧S+!@@ ʝ{kdPXND~lAq;/HYwOs7n):'zg QaB  Puڑ񼶙9;/HkCo~W[[|3%:@!@C ϴm>6ks7]4o^[?趖`҄!@)B GnS9U7<:΅M|ͬ gѝ=K_:q3[| ":*K!"̝Fܹ| v$iHɝW\״GG26R:8|g%B@Bw+1lyҎ;;\kl=_Xs_q\+iR^;0 +vf5ϤBÕH(ws#|'']o}`rrkeծ5͙ݣӏ+US͢^B";-DP从mAC(f aD*H(w.>Yx'1|wGfNji?'Z''NzϱrgtsDo.ŚɉL\}Av+ dGS4xIHlJot/?Ԟ8zgQ ĝƒ;?3F(DNWǷԃJ X{}4@@Հ?69ffRt@ ܹbK}ۀ8O>i +]{fOOo+<>0yu/>,S،Y!gXW\նC!Lsш/!;e.`֗ƉME: g턕fŎD Iyc#Zd*wtIN!E;gz豘- =zGjŷlV \j89$;W{,= |;=[u 1Hݧ>+qp'nic0\eJTva+19(NDǩ[xpQ~^ |{ug\}TG5e,e-$UXZZ7}/TS3{W`tVw74qB<$;{鳥5ϔwF{Fgo;?qNʎ;JQMdeNPLݲs3S#Dt$HGa<b]wTZV2  d"E|E'tU->M^Wó?Toĉ+TI1Ɲmlo(z0 gѵH.2\TB%vu͐sml^9qODn_xΚ )ѱ˥Nsq_<@p1[.k?h5pٷԢ]2lΝK, ;XN[~**JMp7wxj~U6t1sg  p;AQs@B mOh2H w^w|=*ksT!rH;E4;']nߐQnFц-խ~q; *+~N#43sCFۛ[[Fy#@|@ 9=rՋ~?׹o~׹EvES? p:c>f'ne/ ,76 ĝAgh!@$;N4]?gpTFY۲Ȗ桹ekHy#͟ @%=vpϖNV9ikضȉ|\NDDD8o-?;˾=9j@KF O`c h7PxHwu`˝CSwTOZigTkOq5wFfS'g pL< Τ f,fVNiɑݫйΝPNCVfq4Nm\">E}"^ӐZs7S9;cCq&QALC31 gݒf?.BD 0TsEzvUSw޹42sfuNxhc;y-/s5}3f76L~~_!tnj%g-v5'$xL *\e^qu&=Xt'.GǝA kNt)ĺq䷲#Wќ;c.SQ,1C[)YOiM[5 Qy@oT~zvtg OW?ztge_;uL⭛ٕ)#Z pcQƈlYA6=ڣyQjI!6E!+IDATeY)?JVP]i{&jQp N<.ssf~T3R]ݍ=D?8T#Hwy͝7WӧԎV?<|)r'2A3)|(PVۀƔմŸ<\Op̱ӣ#t?ǨRn;"Nڪ+ǝ΅|`dTpuQ  z$5 XQٴG y2u& =:]-_5N~UHBqfdq'o}Zsudzc]@}#D?B󲤅yXi5\/#Nt*AE 族I3i78( *o*!sfffrrjtt,nllm)-((,9ZYY Hdƍ_?yu:mܹ=ns碟=4yr{ළ_|vk7c}<I)U(/g Bf띪WC=)gnG7&"1\Tm1v`"LMuC 9&*h8J׼.Ms/q/[pt;6߹{]pٯ5]995hQGY8#@eEE%G gΝ-}MC6wp/'Nd}}mOv'c޳ֿi|q)9v-PK޿Nns >90l<]o†3}HN1$cK]3[vsם`;u4`! 8&MLeU#Ǐ޹K!  ,;7o7555>>1:::22 g{{GKK[sKkSSsCCS]]CqqW_}Cܙ2uE|`/s>9PފNf۔uJ$dL}$΢"O؏N@YYYpgɝfA䮁um:T J+[c; 5J E3RDwppplllLNN_/@`:==wڡg+ǝ]7|eUmCw&R6!vwHh@~Hw} {|if݇k:"KXMq_Q9B !$l2Bi^[>Yb+pYƽB=3u@=!@E 9yy \Q)(ٜU^;<w#BHΖ\;!t+_O]3lh[^{3u@=!@E 7~2eXfƝ;N/UQ> }"0#B D 9qj 4CO;\|ґ3sO9S/Q8:!@@HwNŝu왬[f3g4t\_; r B NϝZ;um,G+=0IJ!!,!E<ߟO{ d9)֙&{] y5\d~.\d8_ӦO͞m) Np8nbUh,0NYVO4tǍ_w kTJA#9#ue7HY:\<|Tc{ߦTuφʸV(!/I̼"SPV/En8UQ5Z G 0$ T󩙚q:})-0Dr';fm۾K[l)++N"9T,Lwxai_ ;dمRo*Vx_tY}WGSQ]qiHV%4EegtQ{$Fam]gۏTБzԹs|ڎ4~;%;x+Aݣh&E W,eՂxrrG|CE|4А|r8m$' 3gGuYenݺgg⸓h"L"er2A3G.\lmNn_qBq'\aq i4`]upK6UPL ,ʼn;Ye﹄ȝ^%u} \Qm;qqJyw=1f_X>kɓ3ڒqŝUĝސ!4SXi9#d+JӶ]l+JZ󛡢]psQUEWw"۳Q`C+#mr\d t7yN_l)I&EHGᲠ(Fd\屗,Z;b[)j0NZi#ܵcT,#8b5 ,_z0D̸d%M4gq}yW(lM4:J&s){Ncn\n&.FkrN'sS\z2Gfִ+\wTQ m ӗ& ǚ\_{-[qwQ XW7*;>.pesHǯ=c"D#gM>IjzD݄HqƂU:e)b T+6C CGQhDߠV-!bƝ*Mn-&+}si{ܹ#gk|^>x~Vڗӯ V>y~1PVcl%ռt!B/`OZa,}b{BB@BVx>#;џ  +{'mzѧ;N8x Wǝn0W[/^җ 9!"984 s~1:Z N8Ӣϔryjxn.yNwZ @`ɝ3%B@E{M7J_v9!"?0H9߉ڡք#0N>Sw'l"?{nDڵK 9!"000?<)B#Gs>B 8t$++s;yIw qg| ᓑQRR W˫>%B BDk*ipgR5sjwve۶Aߍw ۷o>!@$/233^[8J%)q&}N}tx0 xI} 1pQlnjd>ĝr'x>!@9!@@!Gkܔix1qgɌFD!Zw~ =ӟtmO;;q3+׽jv;!@!dfS!s p]tw.̜lekBܙdQQw!@ic+_(~=Wfpywh;4k14  B 0#ϗtNk _x傛~tx̞=V=?SܙqQ!@iczulo6#w\Ɵ34uzWN#M@jxɗשo4ZB B txh]A+;^aw4wwq]!|?>j B_Ӆs[V?Ɍ;/[_ NV1J-CǗ B;)hzr'q.]pݭwpJ_ 6 $B ?_yoߖwx/ƎkMG{5=-!@!:w/{i6cɸG \}ݑ4i_/_AB B`~!eO4%;]CS|W m3UE}p BfH&B E7n|oG1KW.I[KXl\,Yڢ 6׌,{eʹeX]0a6~pDBՏ0eO#(gF* N30tӵk+!u fð>e4A,if'*Nkmu$sdA&*҉n7~V0(Uw5C.g8GKa']CvT6Q*6ØTYn1t¡Q.\Me\2 ݛy|ayZ $$> WCÜf$0X"R#S`YN]? k"ǁ|s(Ap&;1 ,Z ,LUY&sTI8|4=N!.!`!kn{x=,t C 40\9z<~M9VK Ap#iUo>ʰ.8p[o9F⃤\KWǚm}隰@INyêE1]^;:WDs +{_iF4 nkp|nka'K-{ha6l SO)-JmgZ<GٙKR홣Wm5d或)٢Z_JWtU)=ji2r̮ϝ<YSZk>na#|&'#6:u*+tVno.iaESiL-) Wt@zΈt͎WJ̅WʥU9F"1Hxt9;oY=Eǫz%sJf2rkጕv\യtqyk[gX2Lp\aɴ,d|g[lٺZE$r*^FE&4 _ۗM'q3睅%G)p΢趒yP ?xG*9fwbk*rr+ےhwr9VT\޳ۚ . Ad510SԵELM;'Ȁ&-w_L:T?Rk3,5HNYo-V2- 찫 u:}(Fc$|h [7X*Z>kӓTn&d75SO( Lda+ t~]YxPOU@hK) HnuG?D5s'ƒs3aPa;ܹtlL^\^&Nz/wda'[n۾>z'xB ^躗R+~i^%xM#O i͋˟|5/e bdUe͋cQ)!s0>HPˌC~QخeՕٲJNd t5>RQI7u(dxf6k5m9:m\#Mqih :>[y̨|4C@0.xG t MA 9M{vX4=T;zjhݥ=*WBQ~,v$jWJ`fpVH)&u I1 +[>Wqv8vずv3]o@ӧZ7e}[ԻogiʡU Ha;+CZQ>q5#cA[ѿOyߞ^@~wiハiYԱH朆/jyfWj4@H#KGkMB:ڴh6%AhasvW>?X }vաWBMеV0R)K|W `W wB*{;i{ѻVVȧ 7l+0V;5HHڰ5꾿GK?W@k̪BO_`EV)jǻ+a=H*hJ%MpN|]Ƴ]8tE_~yNG蓽*AOq:/'ѧ;S}p'P)30ހ-p'O;!O;axrg ;w iPwp'A% uC[g'8zeԏ4\ *TA]SCL]icy_nظ]om-zk۱7-zs[;+QOZ6fm.z="wZӧʝr'dJ i?hCwZ < 9ăNas=*5,ƝhĝF8ȅ&wJIF9gݾBO'3b@m'FoAc3ĝ _wdYcŝ!R1\mJ3#NBϏ\BO;\ЄN;`=Vl

3XN> mkwls }Fݶ[;\=ۘl=[cxш; ^tB Xs q'P5+6Hwwÿߕ􆒀wGO;@aǺwum/43M|hol{cKQ7oSafgY-l-QŝΆm ;bY;;/; Ek!z#O%D}ʝx ΅\h}ݷw|[ՊXUB BBeq{Ylق7___$fђ_|ŵ7R:?E_2HWp/W]g&IW^wɕ?+3TB+~|Bk.4^.Kҫ.XxՏ.../..0 /_O\W_xٵ\5J/W]o Zx?]r.64)7\|8a"N Ε+WYZIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source/figures/searchbar.png0000644000000000000000000000567311534217015020500 0ustar00rootrootPNG  IHDRg} IDATx흽OL/һV?( UĐP,aL)0@ :"eJaJW`D 5ҫH4Q@ s;?gߓl`Ip~~I 2>BUyff&nOX0M?R|P,~z%T_1FRpD`|uR B|}"ĕ?J !;`XQ#@EGȂ6_~or?hu}}-]3epϨQ ||B8իIޙ2:4PGCH\ Gبy@X6kty(3*]x/iU\$J;# fԨNRjԒkth2*]x/iyK~f;M#@ ZԈ(t—xzw"a|SIA3G4]m Rʄj9VR 4UmPL>'m]? Zi~apʪƤQ\/ɤCCbXRe{ovӲ:4r.O։XnNZSeu5>6zl>圯|`DftPAõݼ8~҂E2Oow$ml #$_hgU!reqw:"E + }m̚/TT QOP4E zv% tPMIajDj-5 ىpZ-v3U}N9wR-_:<U/M9UcfL*ovhᠳѫ>ȶOp巁J- OCG&򧡞Bet|rxOm[Q5V*ʏ$W喪kef5x!D#(=ZmD\.B?cx.U>"82!#F-[Gv^>ɑ[*jx*R/ՑW\xz7JeKTM*vDߓz" 'p@Wep%n0H>/:FR0հp/=ynȈD^f{Fhoq :pCF$}fR81}fG{{Eu9n˘Jq5-[Q6܇O(uK+jj~&Z[/>ͧ^}GN(_hyxEjh5 ˙r5•۩76:8_ۚws"WK!+[m@%K?0bqG$fji4*BXF{dQ]ܖ?ݤٞ*~nY<^Yujh2ѠdS,5F7\,cX2QGaȈq825 ?ry=%"Đp<NnSnﵡ2xuŢk#ߧa\-OmbxcL'/{}o5BLe1+m+##W>S]e}\:1z-]O{~tՃ8oTH߽o\^>]Y ئu :Fv);vKiiUWWKyy|Ru OIДt MJtLHD?{~{FWelJTƧϑQVnEѺ& S2'Diڎj\1}}-i֭}A?.}cҮ;&m=;+RD.9n@GA>/I@~{2}}DZEAy=ég.1UtdlF>wޥ2spnm8VI6]t<Vl\qz|bbH hJ Y:{HDz"=ꉷk)^=z V퐶8-پu~m[ B<g!=+=.n#W0x2Td L\}@A]l/,[l{JQEE! eÖ]3!mrܰk^H#u]Rz[6A9<*ƤtvXN1%'TʷMHqjEGk엊}~9vvȉs#Z0 4"]r~TMK E][$ löv~h_cj~9c9~W4K9{8!Tv?5]rGJϳR8$ǚb2gi}떃0/=;$e4K^9NlͲh#֣d;<*{e)w'80ԩR7IŅ!lcR 9~1RuHN ܰTTuEWΩ}E::d牋ȎcV(;_omd>6KCrqD6H0W91+Eۇsr cCg`DGJEaǨg;+Q9z#gd_ d@ Ȟi}d g ܸ]v,HPq9it@H:@FJ訄[c1QP n>aB\P%(JeY2Eَ'\Y=Y{sր>sNvߴO@~+~eX>|wBmo]s۴]1(WC&Ze_W 9q|jCH!18W^T#Vc; >S<#CC @9G,됣U: ̢ ֫ P|!\4)rFD9#]È*Aa0Nh?TtAWn3HWbp?Rm%zk.U>۱8l=ͲX*?';˚do#0G/(N0 #c~nw ]{ˑxVJ *V>;pZ6>r$;*Zd׉VW b$!" *Z/J@>p}G; 쎀8r^ޢ$!B*ZA@7\~hkZ~^6|vl8X/%Hɡ|?+7Bd&TzN6=/[Zpqnz02 2>Qݏg_m/D4K NU[vՠL-WPYR#JЖTAَW˶mf˱ Y&#L@@|TqlJ }wmA9 o9VHG:I%~BXQĀ =$0)HBRI 4]Oo]qЇ'OPQ'c g{aؙ.N)W)GAJOɑS!mrunUMJng rs<׶h.2%/x/W6^j4} dEI@a8t Ojj1`UvV6Y?w€W pA2pX DbgyH ~ ^ԽiC>)<Ow=ղ`![JVM؆zk}ZІ]300*O€q9C <Po!n2ev9|V쮖]ղv)簷V>['AQ(9'DH >5Ͻ5wWē16la V0[ΣlPCz[eC=J `4hPֱHuȧe-d>} ?(] x6Q'{q99.{4\pDz/AX-S`?%@==<ɞNBBIAB/zx %_˗/o/U6h( G=#*TJ!Xc )8l0="p D%0 uRֶ]a?NxP1P"Є; w^#uqT5#QVw\0؇`WRp^C@4`zBTyҰHAQAs1II5<cR( P!8yON)= ;@= a!fJ6M"d_JNZ)w5 `㡈`3ԵOJ!RO{ Acafߋ>Ӿӧl%T~ yP l؄?;TX_c'OY㤬y5j@j AX ` xn,=/[ZP㿯V苐]3C6<+ Pæfs *!.!6bU1Vw D hB6d@sB?Y݆yS'k)9 9%kFӆ@lǦq9)K4 D]%aK |!Jbl$e?悈Mt;ݫx~׶O(QаA"BჭH,\x}Kc` $O' 3D< یA0c '{ !%o ]@?GO'@NJ? _ w) NwL fh'v m !tOi{ @)< 5rD&&A}Tx= 4DKwW];r%gaWѐzk"Pah_-nK> h`3 &L#0& x J)P2W솑DA<=rG ;Bp908B=!(YbUD {"ށKOJ)3xax WDgbWIxKV:2P!]z6o%YrH ]uȹ@ؠ ``6TH (~-;W@-OO$t% &jؠ_d<92<%ja|D [Hn{>B^&>tA¾<3Oհ5*JKDj[ǤmL:'#-O&z NʆxqP @L=J(!9lp1Dh8A!@k>Mf< |%}+fߧ9(a:0G5O՚HX ǤmJD4h>W vx>oMQx@ P;+ ؃x~؃0/5H@bWE +{sZ]I^l)ج^hH r4jO"!@)YAwak_=2} S4PN&솫^4LPA@Ɉ?=HD?4Ġ a0]CB4Dx&6rpz#hnFԱe4$ՠo*"èdD ά 934*Y)0; H|Rlk8&°F hTL} c^_ )BÚP0aM*DA쪄kbhyM 4"GAIpyG@I@91$ LM(ԙej =P}e(3$\% @~1@#GA6íp듷h߄%=aIC&.Ẑ#nOA#ԱWѤB5h$$ + dBipif3U$CF؋cwcdb+]7kr& \4I ]gA[Yؿ ev {qΎh,19 3&hT. %HG L Ḁ ĸ /c8Л/O%QB ` jVʭ|vFsW?"rϪ+бr_ /Wg|/# oD5o>!ٗ=5-jo]`g,  5 kSo%h4*8ux N3q  izxL_4ȁD*)fN7:[nf56켙Vĩ xT v:%#Va#.P=*sM`J$4. sŒ2ޣJtzNip!MöJdN)L+mL34C?8XU%Urb4,,(qԲ]t:SqtƁk$udFr`bڞfQC݇G@R$-pT`c%6Vuûx 3F\LB\ֲ'3~+B*V\BJt~ @0Àxѝêu@`rS՟eu!Uxrϛ^n|E? ɕͯyg:A.&O6"ӲAl> _e4xHAs$<0ne wťӀ5;D R`DUZ^ߐ< b -cͱ8 vѓ <9פ`5P0~*jap`ppR;)sg` 4B;@A   %nSd`.CN B]<ݧeI ;dp9ˬHo*b"z !}w yJ+0T{Ik !x_C+ﯔzO|M)~?>3ʽ,\rx٣J1<'}ss4,SI1)7O6 VRh0nuϔ0nL>koF틽 7Kj\21Ӷ{Ltےgn\.NH @4\V Z9LZPƕ 8J+[&ȶǖs.0|cw%[7hY4X 1dZ[1%*"(0lBx %&"5|\\Ht@@ϫ6*CxNEt }ڐfb ى ҍ}]\H]ܵ*Y&Lp<2o^j G{ɞ'Kv*bфKrA()@`1GLJZ̾G3 ʱm%а*rڄ?R>:?%% )ak5}J+ ~ǵDm#~C>;.>=8~w-k_.Đ҆~q[;+zo9ۚ8dм:H ޻?w`>CJJ~Ċ9Zv6!|Y( ,!й`܅AH+|ARp?)oyp'׿sx~%׮yH)rMvҨXoHr &^|xC(D2 H@*dD=<~r~aZ^(# /\ Ub%J T^%VSU`aIܲxLD!7hHF q.Jl#-6)hyWRyœD͔$gɂO/0͹erq.ުUxyKnlT~e[p 6Bނw>ȼNK2K0hB.<,|qycG?]|gi?pܷ]7yɟB|d J OD6ԩ0F? H ! bHf~s ]x]A‡ O)2{B; f̥˶EL~XU*/F' H-K.CTO,yT| Pʒ;o\!Qgը#lݘA$,!p99x #艷Z_z \OAK ܅"e%{A\R&t`ym֦ #̆ $+a؄1jl=z>aK%6pg$# 4a1MFYR>,0 6oS:5m%=?wB'V9{ףC6q(Kxn! +W\+_7\dɖ?%_'򕫾'U 3aG  $!2Q:pטK`B^NA\ $ J9 ~R  1`txKBE}El!&#ꡎauU㭬7Y bu}n$eau!ҡO @4@I>(x,?w-~Ýr}ŐbHߘ{"vM֨?$LK `%&M PwA>fC R}Roց; NE bg[&~ؖlO&Fk>|H4(),vwցM2xZ\PWʗGɓFLH M07Ną3 )p=A=Ig H@S  {: 160 si 0c%ƙ>M/ .)HH1S:@iL[ٹրE35[`AJ$cl>y5nbUYȀ$0SۘR0[BЁ;-ac>0B%~l}>|j3ތ7q=fD]hPWUՊ]Fp6EV):W^q hB?f=6(H7yo#1){ &)ҥD7,yM` 4DLC&!z] K #) 8͆jTf:.QKXNOr\P S~5vY&CsSSݱ0]k!f)@.еaZ ٬b6k{kfV%0N*.*Ub⾐^dwc5`M rq]mZmgFPQ%f"]%%p, (1J.DB`V #buAK$ hk1gQLmY&}(!Зia#$[wxH0i}⦆G_ԣ/FK@|/ j[u}P Ӿ}z֡/jӷn/|7zo"7-Qp_D(Q 7^ !V0NA&`DhW i8Dz D#!HG>l6p R k.דIR=*6dm:ȧPB1ebA(/C[ƽ{@jTt HuǠTIHm_W5x|-'vk\^ǽ J>?6WNվx 5j/F9$4*6Q ,~4,,;CIlwXa_OkO?ў~AgY exyUqD쫏-iA$[|#0't`5v7Y#J,p A\b0HFR&~bf:l =>էLfF8[2d*0^ W'HFSsU?ρI\X:Ƥ;7 MR8 G)Oo7 JEhJ<ޟ8&5 rwR'A&a@ lPcƸ`ѫƥ81 !RKF[ k% hwVMjБ@9m)PQz`*_y! $NeP5pԢODQ D%(5ɰ!r$"46^]8b y"( mD `6;[b B}%O,,Q _Ain7r^+tջxMm7(+d!m}) L٘Sm(\@]:/ԥ)BAe'اui6jSqF^l~#´1}ӮV1z>ucx[2Ko%9>U~MjU[VѸO`*د%bM'PH1ךA` {$5=RVܛߣnBf;^v\gľ$=#Zެ6cZ.RX?=ijMGjeS#εˋ%t|ڛ$b.l%[wUn,R|ci9s,;dU*W.U;jmKp,},cprmݷzYGhm^}F9h1+~ݧmh?ݛ~߳T~dRkRr> 1Pԁ,ԁO֮51S]B_inUKmG"V/u:@zIκL|9$t$u::` hK_RS$d7WolsͫPu t )!YO7+7o;[&ȃOG|:P< Cp mOw dGjZ;LHHPԁ<C`q2W{%{MmH*[)n3}JJkkHPI 5f-eA7-Ҍo*:@Pz q fuFam#XWW P r_ x y u~oA.VDXˠe@* 'ZB, ?3!DBGFA&!B-|cH8X::` a/R"(j'ab Ȁ%J$IQTʰ/({R.I) {\2P;::r+~ֲp$h6@mA`r@AJ5+KQX>߄n,:J8XJ~cjV#w?^1MoeI8TY:` 'OƔGKo% %=+eq%PCxUree< =Y&=ɲԉ=ubCJ%ER챀 "__5RQQH, At!WJ:P:/+U _*vtu /lCqI% 0! CPe@A,^+=ciQp`> z !P/HytKB0}rK#S<9%*^ؕ EfG m9&r΅}V !(ke⡸d B+$}<)$hg;xP.?ỿfH65 P< Ņ ; )|6yfC9ZB*Ɗ:@|\~⡸wɹ9/z89pR}n>QF@P\>2a| 9Rԁׁm=!nS< E )Q$껓6ssbNvq=N`x(.\Є`~xF@"!H T.NPԁ@H/d4mdRY7Pu:L[EJ =.'HHHu /t )!@J!6`ߏIB ȞgDԁ|ց& W`ߏbRa>+ύu:@(HJn!@;HEHFHxkkM$%=Bd#g>;̉r=)]_='m36Ȱu:@(HJ!@=! H,!=,!PÆ7B[T.{,rPlw}MۉDYgA "$|j$%@4P\BЍ,.L,ŋWf!u3aIhX3Wz:ٖzgɧ( I D@I4i`ee^'/z$Wbь9޺͓KH3EhQowbYgDqT1drSxuvFٹg@P\@RB9J4YwvrggW.x11Ŏ@ qcqhC}IGqHbRqVyY>|^_^ߙt`պqx(JJnih@tx(I'$!vJD!DO. HDUI? 6Sm ̓OkI~'"[ B+vC$, gd`:R\ZRBDvq"RT Q&o'D$ !!prfM f`Jﰊ@~ AbHT8.obw$i$_bg1yn Z.z4!G 7dx2w}\<A0s5zz!w wC7yR`f{Dsrnr6dgjc}LTp˥ɘpF Y o^F:@H!(Ȁ}a* ʐu%3 t,++/3ԁс9!=ynSc$gA?I41c!%8 2bTBy?ȓd`FD]+pA';xޖoK=vX67Jd ѷ=o=Ą ԓXc߸9yPxC<~1B`gh6%p Yyy@t`.AtcA O3 Ol3F:ݞg-^,]|gwfH@,%u:P:0xԠ/vB% v? sAPK2Nл[/@($30G32!w !>zb u:)E@|8 Bp?Cy&ʔr^\u wt )!Ig@_o>90w.4oJ^+u:@Iv8 ;2bDxQ@>@RB?|%]%cr$<fu:+h\4  %!Mě:@PA}<&P2ށ~q$<fu:|_vB " 9 B0HB7u:@"@C" _A:@"9=#r@}SI !+FGrr"!EypPPrMVX!<}CqIZ&%:`$@#\G* c7@:tɧ^xAZ[[e6@P\8'%f4 "̃%\84a/sPu`ɒ%&cxn__@P\zA@T= r#Ta3@:t@DL20 ).OX[@Q0!l+ 4a/sPu@ @q!(!P16l:@PZ,!vsQWH8>ROtww %Tzfu ~@:;;SEER/.-ǥԶ~6~X%#!C`K@)Ru`t@ YTEy=}0s]!xL6SKoFR8r/| lGXB.EAG= Coc~ Y8E.cL]ˣC}1ꥰR;H;#1pdBdxBBDJg<!OY޸3׼\StaS~*nOk5Rdz1/5N)⒑͋@@zd2~H:Ҩ|%uuu2kyկKݖƠۼ򺶣}almv2 }]vHd\B08! 3;P٠JzuYXP^1ny}!<N|<;@ B80d>PJ&5|~kX6ռf ԫe`_mzc<ɷ/|x׏M2)ѐ`wC0 Aל:@JR塍^]w~Ckի"?FnP딯rzUl(”{UrڲvNg%g`0X3 H80d~PJ27+W2w%#[iÜvȬbMPԁ,K?."/_z$3F \X8xͩԁl%RQQAadC`_n p`Ɓ}^R O,Y"MMMfer⡸(>a?v K A݀a#@t੧^@P\'%.} @,) !VX:CSx $qJCqI礄f/ .}$SQ8CP٩I   B \8;/&o2^u:@HU  ]X{ 里q”\2^(Ǜ:@P2I u  - v.Q̒9TA:@$%׀ 89!x:@PB@@N4@! ?55P@RB]JjH-D ɀ:@PB%5/ %$c|Ou:Dl@iC@U2 u $%Wؐ! !HmOl$S:΁:@d$%T=9)ԂTC)Y>%t6 ws5P@RB=>   :@ e`^߾%&$x <,C=d$%ׅ@.\h28 np&@PHJtn] d[_p;!l}=|>,G]d$%F  F0髐vB5VȂ")YQ j ViZc*W.ی/ Avly=ԁ0:B0B!# *c.Єfk$EashSݝ\>!] RveH8|XB.Fd#C)PBqK@]BAƀKKb b_"u+\Bh{QP'+z{"^^&{x8 1J:;;K/>.A΢SyA`7hN'#`ĄByM-tò)@; 䨫tҼ66sI d@sJ*;}pRn F>L}J*++3+\)EWPaĹ*u $%QAA7'yPV ./_ΎB^ A1PUn돑CpOFWL}( Cy`Ü~z!:@QHJtA/fH @?BaiUBP^^5BB'l}aԁ::Xi 2);9%?<0ؙ>%b@P~' JJ v6O/ eښ~"@ yOZ A] )FF # ]8/O"@@!# *H#02rL# D!#LO4WtCKTS"DF c` oO'B /N D`SB'IB0_"@H "@0_/~iBP Dd'$y]+"@ s ƈ Dd'$y]+"@ s ^|Eyu:0Xcfta>G  Ze^L^ximm 1P3耎:f9_֠i_M,6Adikk1u:0Xc3ckg+?ș}3ߔ3 ޗۓb=枣uW~E.).ϓ/oIζi ͑2&Pu:@:f9ӟ;=t}UzNz-K_'rTy'"{߅'6njAӾm.g9M0X9pu+dR,!z"^ԁҁ [!;լu2pz 6l2| Z-u[L\B ??BqcS%R\@VcĵG",(**[GB!u 1z|&gw` ? @Uҏc%ϙq9H{.!cۖՏm4^m5![O0Y͋)=Þ± ~CxTi5B @13Hg"Y&՟=.՛H͖f riҾ'Ҷ큨_Ss=g m3 ! ݟ߬AkBbDϨ<{3+#aK\Wox3w~tttPθ~LKwlm,]%w u/O?~#~i @y{ nyb|5Gv hFԔONsU\9w!^){_/;#H{.!c,[]-wvDF>?]?yOH'3>%ߗYB"?JR^`ͫ Hee%Pԁ:cf[w|N6?Aڳo+OZ%<,y^C[!/WrBށW[C9'fx4_I ҄D)ǹMJ)5fo` DžB @rbݱu,%,V>?}D[u\Oe3=%_Gw)Ͻ<nxM[o1tŋtOI]gla8sUiB @13@˕{?\sH>ze=k=Kxc^gZ3gWO_Z-U/ AX64D|C@d! g U"h}aH Ų !  D JEƓuO_/ZrzCB¬Hr3DaAOOēE7Kʕ?Y=:Kft`U Dб0}'z5q{6d`jC',Ǔ$$%R\T$EQY +ª֑qaɯ \` B~iφA &vvvƕ~ʐ_<)zʄx!!XPb-X!3sA #T3KĎj, "ca#3a (w2;r[?z_ޑzKXC0>>!#c|*7}I9ie rLz wĤ\hU ]/B콑 Y'1:` ]T4 XπLnW_-#c0@CãAU}nZxPǚrϜm η\qIYvb~5 رx !3 l΀ #-oGc 2HfN<%)|! ~#D܌eʹ:fCn @W)z-I Z_^}b7!o]?C@]k]`{ YXC088(555qEsl@@r_롇@=c284gOjnզ>rc}SwL s AG̵F%؎Ɓş{o^yZXTUUI<B3Dt? 5@jPdǣƅ ]7KhB`HG{ %{_B.tq.C2lM Ԝ $*z!!vd qwݮm7ɍ_* O&pc:Sx4nԜzn{5P`fǟ&mMfTZ1Mt]BQxz5kcaǏZ 4Ps$`dtL(g u#uuAATTTZz!ʎ ;C!S=^ ![  ˆGxfhX'>{u:a*Ok{~Djo! enq y @2Bj][aWT=^!g ˦iNM1@}q2uQ!hc"dɅlmv_3$"Jx.sSJ"h@>}ZcJ.^CtM͛7˻k^k=Z_ 0lZH!b H24r`SG&pJgeDK8q"F֯_/+lii .7$ZJ6mDB`l:L&̮[0D]3%&5~dXވ'UBw&?0M)!9@XBPRRbVJiiٳG~ߋvikkVIC=LɄwzY>0t, ݰEB3xF|a 3}JG B!ضmY2nC?L&қ$ecQIs G>$ L[w !@"+B60ffӯ"Kk)PsCT-"B;pԩ3DI9U}t䁄_kBr˅@Q\Q0` QȠP4YiC q*̳{R!C V\2pلS!2KȁBΞ]Oa͖ T 4 &&Z5; D HzG`= NxVk ;G y@2_H ~%ހ% $$y{Ĉ @@CMMMfMK!)P"@H;CqFI֬YR2~Y! D$O~BF\ Hxk"D"@Ҏ@2DBEf LɮP2߉ Dddi6?v=|w: D$C }*ٲ]vُWG^_Z0^%D"mrm *z ,b,O D M!$i"@H )YtiDB7ɐIň D  ! !uf D AX D:$$? D4 D\G u'D4 @B@B5bD"!v?KyQ"]Hzq< DHFJ.9חźܱo.Z! A "@@2Bmau D HFcTkv"@" !_~Y}űn+VMCJ01d-%D""a w}W֯_/ov~ߚ_}i))^GF D`V$Oz |駲fy뭷wɀsxHHf<"@2@XB_ UVG}$oF3`@  A45"@Klz |{0Ld@#! !`"@K 3 x0Ԭ"@@b٧D (Aw  C"@bR!Ȁ0v8Ox F y@2#@%Y`vOoǺS#D,F }}@h$@ “O>ik ,v"@d)@:?PIz C@iǺS#D,F }Th 37N;"${IC DX?) DP D$A CԲ?t@o "@ !м6 D"PK@Bۀ"@@2e["@@ )z !@ D< Hx"@(0B0>>nH U"@ s@%D"@ C6 D"P 6 D"P``ll̄ C["@@9@I ՞"@@ @ 2,B @K H KyD"|'&l` b DL+!pI Aa7ϖ"@"@=$ň DpgB`gu9 D̀@!v D"|'n D!`՟"@@ XRo "@ 2S2-@ DCC["@=e"@@< )!D"@20+2d["@C$  D0d@"@ q`)YtX'‚D"Wd}rmm6]_nAR]  DzҩO"@rU]v"@҉  A:u"@@"@B@Bn"@@: ! !H>."@QHHrTum"@H'Ltⱱ\8ú D o ! o'B #@B@BH"@ a Fuy"D"N XR@BNa]D"70d7!D ! !H]{x$ D D4lAި.O"@҉ ='E 9  A.M D ĺ D G ! !Qe D SX D($$96 Dt"DE GU&Dt"@B@BN}b]D"D"N.[̥ө9"@ zJy2D"$$i"DBP my<"@HDL#SSSbt{ҥX^R>$DB kkhjmR$!+"@@(xBt!D\B   D"HK@A:Ԋu"@@!@BK($!5f D 4!43 8 : D (xB':D"*$>/ A D  !p pA.4N  P@W*rF<"@r&J,!pI=? DE! U'D|A zy !y"@@P X2`_A  D O ||Qo DE`|fR!o "@(TCB}7 D8 D". D". D"2`Ȁ7 D x"@!D"@2'!m@ Dw DEITSu:@dd35zzKHPYtLLLxb)e l"@@"@BW"D"0!l"@@"qB0::6&l"D" !pI A. N  A^Y D!^zB\%D"0G)!PR@B0GW"@ AX"@@"@BWE D $!bQ"@ @(Pu s:`N@ ]I%0_ϋ"@@6" LX6PԁzfYOP@ft ĻQBJ\  AT׀׀:@ȄPuxbb¬D+.."_1 u)Su`:@B@V'u:@C@V9{VI !u:@}Ou:@6Y-!!u:@C@V'u:@!ЙW6Pu:@Pr[ԦONN@IlЁ~{ t{ \RKOz6c3K)dK`9%j_{56(:}|X95Ðk1IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/figures/settings.png0000644000000000000000000030167514023111777020413 0ustar00rootrootPNG  IHDRFsRGBgAMA a pHYsttfxtEXtSoftwareGreenshot XnIDATx^>YPtQd\rfâ̲Q(" (`$)"EsU=WwTβ9ӵݿ9().u123[YNPr[rqtH\t` 'H'xt'SxJcD?GKGJ_JwO2OT́1sDᾇ{{ӟD_SON;jԨAgqytYgE`{?_%|??џ~9xǓO?|b@~ YǖSO?;ِSN9w'Bpޡr ۹'Jxnx ^t9]iqOSNߤH )a&L@>9r$.PeÇSC'ѳzyp=;tXCnywI!Cﰼt護 i~K|ͨo>:o|,^s=:xשkQYe޽t,=^/uHaHa7gជ x=z>?/Kꫯ<믿&=9)ɧrGC>>fctC#ё#GOG ?x_C>זVr:#QKDnm?anF؟c?ccٺԳōoUyyj?^L;1OIÇ+ wauzz:eȐ!dJZZA6!| Jπ~X9kP:r}o{-.9@zegA}d0T8`@@O}-ׯK6~M>}wԳgO%=zPb޽;u֍k׮ԥKʂz͟AR-B:uRҡ}{j۶-mӆZjMZ-[RͩY]K\}]qteQFP ^zJ֭R Jrr2]|袋HKڵ r*qן . 3޽U5kj/wpct?L9Ȕs=L9sȔ>-TeZ`)X *^ ,XnEXLK#z_2:?S^z7?s_נ4woεMk5߻_=nj=1qO~tW=FjCO<***'̙3鮻 ҥKib z<yi9eŋМ;3gӔh4vDSr+7ƌ-1cch{UK i|A˦Yi4fڋF N#PRڃA(op/҇,!(%cH态,5kChh^ I,9TXKEk6 c)U_0T0-\Ks4yygnj?gqn^saxl/q󩠨@I!ؒ{Pwk[˛JY>al9҈#A`q[`999O\ze-{K,K?W_6ON? : ІL( 9ژp 姍_jWk4` HG& S NvÚpHƄR`Ӳ@i48 Խ!ǀy4H p` aI&ꞈ{';͛G{oJ5ZpNWx@A%KE.Ysw̦I[JKnBOnca0;tJ aY4>'e STSჺS4%opOI@ڛ2Rː~J220 ,);g0_:]&  y1ef-gy99 J3͵^k944(4,p- ՂSK p&WTe/ko7[, nwYJ~{ü {C?xX޺g{cye/˞,زoc<~i$uڱc>CN[Ins ]x,"VF" Ne(kPl:'$Y !s=n5.k 7o[NSmuXx-’հLpj[KS^z)q[N n+jJJ uܙ:v@H|3d !ƦM 7(ō@z5UW^A_ޘ%tIÆT-Nh* ik2 i0}=#bi[T_?zbrbRbJ#זxXKk?h`HPj¨ zee%ՄR}L Z8_Sܓp?kܸc{%π[oUAwީtɒ%t?& T)lr[B ]DfΙGnE2NNP:QA1l-t C(@iM(ʣ 4~`ՏJ{ش4zp7R<Ciw{P6iޔ> Qb),e)McLY L fs9>u~ۜ|W5kTmFQb-\xA53y!b S:y<5Gnx6v`kahH¼Fګ,eWa{ª.}ӊj*UlM˪PҎ Jq󅕴)DZ*vٳ;Ki# HH[.{er>ù06? by$ko`MUS?w-"X \^DskkN'nK~ n}40P})| {"o_+6Ue9pk=_=20zW* K- )(H@@cD[;v4M7̄hJFPbZ ;_i$7v{Ŗ]ʥ1M7U?\_71 AgcѠkOR8W{ Bs)x!.otwӢE S 2ҥKg]\,λ5Igt d{JǎM%ӄ4qP81VLC,v;k*簰( T*)ĆR R xȆR - TYL8TyV|#]w>*އ󷍠G,fkӾŴ)y[ICedQ.ڼ=r -71ۆnWX^bŲ-yg2u^P =sĕ&#=;cIl򲐺]8(`8:   jԩz߮~VЇ)ׯ` -o$yM8I^Ϝsw ЗjM0lZwm v[} l+i3U[^1V• b6HUhŠ,С GR, j҆ PV )\\Bj'1ŒZ&L$R+a,i,ndDibLM˝_(uQi:fԏ;?R|;62Ҳc@@lN{3LCtJ vA%z`i֬Yd'XK_é RXH1.wa094YœΠM1NQ%i$CHNt=-4n,CJG1`(-~4!'aKi6[J3RQF6+'8u,H!4]%: fHLc[0͖Q3ff9Č%u%Y5V_Pٲ5j0*-VSsnpj'Df(msIze"2"ȡm,ϱlC/̡]#Q2n=˛2i?>:8gm6Gs?pc-ycɂngq.-seyzA)A(7ğ2f؛.{U@d(,1 PsU13o 4#d?- 5hGn &@k@6! n mnD  :|@hhu'cIjxmZu` 7wNNp7馀R ]G-hLz?"Fpn}ӝ |x%B|=H{'<`һyS T@ۅݽl!@zL9{.MqMP:q*~,J:ʶJ0]q>ְqila*u@ZV.6vnĥJ:( })(MPiC 5ҰtX>H*Xb׃҆q= Z8  B X@ _y-@@ \baˆ;~n {1Vʌ ꛂMAW獭g5b`@]m m 10:fPYuk+?^7Ę`7>2L۷bKB\)W1[=,n5k̘ҐNFJ0T2hzŏ <#YhXKݥQ2EXKMrep|_S362ڏ5?+,pO^O~:rWEfe/Z̸:Bp}_ܷg͚x~.8Q ZhX :pWk%y` nj0/Wӧ*į(OG&Rđzvr$5ި6ss 7BUV?`7;)0=n|/kdlEYL9f%XL+Y76,ͥA n@#s1šPx{1߭< @L5u@:av̟ }8<ЇaWoҫڪ,Pm+* t( @R * `[VJ!(Բbƙ:}w}۵(mUڵnz:{ m`ye3˖e;ˎi'$?ln5ކ~ɜp ĪJnQ@eok,{acxvƇqb&F,O\x:OoK*щii&ϟt9{`MՁ&P(A y(W-\p3J]#TJrJZjUп)hLi^}8] VmhV` VlWdV eYM+>` T5ecp3l@,0)FU@*nLqSQ&cǎ2k)\W…R돪Q*J@uI. [0kwt/0 g b1|4Q^PӪpe V򻨁 B ­dZLWҡnWb^{iBFm ,܋qBY5 Fᮇuٳ0R S=iNpn{G #F#"Q>VG\>;Wdi~i@ߎԿOGWI'ua =uObš[ֶݗ ͫYzYXz o{.-Prp *Vʄ N->,xS;sP`je굇SGv>+WrܷM69uڭ]Sz}SzYk߄Єp=xmd::zϳ`Nl'(Vg5{|rKge' 8> Ɓ`\;\GxO1$.|Ԓ.VXvjƽV3uΜBjRoM$1t,xm+êJaW:~#@oq5"6?V`-&~­:vƇuF; peR {V|(N%GKֵl.EUj)7~pI|0XKU~Idxǯ⑍.eH5XV>.A.X%Eݕ Ts9W?BY<@GRz}XMg0Q'Sx)@v&=VM-aFG̖bܟ]K DXtpLNDJXP$, Ϡգ֞c.uёapven Yz0vϺ3vv45" ]\` b@,o͖Sp.~jGm5E)Nu )7:;_/gjC<)v(J/ 8-hp-dY̯op6lzY%gFg㗞AXfes 2e ~i@~\3C)J18UżF;XXE38#IHS1aq uҁCڰfْ[-)m.K׎ (on=RX0|vOQҥK.,)-[V. 22Šk? 1T%A%Zj7 9u[Mm7yv%3fiP`)mh]a6ͯs&SLe!˒:5hy`iU# A5<6=Ųe̲_oVgq-) =zh(0mٌ\rZD6gڂ,uR?Z+ `(]P,M h' JJPPj뚆RXX&v=`YS4FN]>p ອ](A\IrxTؘsmv>>^XvhKhvkPUٗpIT:UCie*>sT0 VUQ`r,+ $ٿҡʰCnݺ0ʠ'.E|JzKa5;׸7bQB*VHFX[`Z,ydtO05j-V#5Њm"dz4b Wϩ*L@┞1pQ!Pk}L mkˋ6j8&-:LĚm[SfMW:C%:%QLyQV jc1~; g0Uf_m ӟFNa0_E=/vvliM~?ULv)n #TA&' P 6y׿U>Sb7>JHPjB`d1f!%K/h. H}Ձ_(u/4 p stCRS7TY!Lտi1epW*Z7C0F G9b{g*Dh,J,,Y ~YR'۞K= } JJ=@%݃-];1hc{{Vz5o iF-Z5S-uV M{RQَ;tT5WN,=^t{Gp)S)[N]x<L5pěڱ:K_gN9_gF=TR[MtǙS,sԊPN(ծR{{7Ji([^[E5HB=BpO3VR<)H*) WKGy^3{s`4KgԖaͭh3ћ5&j{#ԬMpڒjk m-j;^Vڎx5?U;mUSNږS),NvxS$E1*8Yv))kk:X! Ti@G~{Rk.lK2!˶* :Et_[¢PʱOg3Cr "%eiT&b5iƔ8 ,~ g؎σ:Ċ# ] 1ǘ6~~9_F58bp~!zI3iǕ`}:g3t3 &NRHb9,{=l]*-cN(}TA )egf>v;wQ/QνR  J}- JocA +X4mPTVV Jñ4|EŞ^^LT[I{NuWvO dD'w}@mKӈEZ8܂nÂ#V"W0j20X~ieOg؀9*2 P@AgXԊC]}.JQP N6:3:2︣~ddnߒ2L|J (O*n|,l|ėL@5QS`E*bQQkyR~Ul5US{˕֩8~Z ^`/kiE;83RE]T߯4ːqFLXKėƪZU7O6~b{f&>q޺VRt P&9{nykKL )V̿WTЎCIa0Nȱ4 b՝-ld{mf˖輡 ԤijrC _\Gp|T*CkfԜ+hpV7s_mR!mVH[{=,l1@׿v#Պ7p͑ RRV>tgއ+*?HB~Z R(eբH3%7 "2`h*ʺ-`-ma1UPǓhØzeMze5i9,K.I פ{Y<<`X))Ta7>E8JM(MeKc [n}vs!{k?7}LB~4=1C)zev߻aӌ)фO3)*`e7ƖVPb])3prU Nj`El%A YiiJ:ǒHm(e4,+i(pe/d+iaHxiA(oMJ;@]K+Xڟ:]KYt| ey*ZiK+<)]#ȳ)^m,R \M:_MOvgypkh%˃em!\ku t_R!J- T11n(}tJSa6ZTO(EPYJ/-Ff$i-wo>2rdw[F-([}KGzO,=iG~':y l( u)m9yڱخX1JT.֙yY]|*Dz2SOȿsm}eB)|UJglW.}3cJa)T1-hDoz(Np8X{d 7z\TX_~4Re[g*_Hjw72ңJ{ OU*-a LyNJ'lWrXKqp3^#ADҀieRq[-᧨.嶔F$?ne4n|P͍8זSw$h6ȥR M(jMHa%5oVvM#a *^-XPK[7Dr|v o.7ޠ F`DZz5l8&8mഹfPjAl=-m"TYM9#A Q0ee ('ees"T@z\5P X1 piCu4at0C'/ 02Dy˒P @mi)  DB  ,iYJo>4MӺӪ>mYњmQ'YoCgX6lԚ<7%=֚vV`cyΔ}A\ei%oMXfyokz-+{!éh5׫]6Rj)bJJʵBu@)ǔ52NWRteR|싏hs/RX::*&A˕nu'uQAic*i-J,YH+Π K ,cTx|p[PvBPgm*NsUQ7˒bu&Z{g}:ƊwZ]}/l4NJlZ1>o.qX2Z&SLJx#]N}߮=\ 1HvXS)qd*ڡZ J(@M4cMjMkȭR,/^St!rmqSS[􇩛)B}M"ʪ>tZqLxRںK=]VOjPG>TYUykYVߥAm)IN^-JE ƏJP,ƏW(`b꧆i4KJ-CZ*"v.=HR@);=?F/KZ(""yY8A{|gﷃ_BۇvgYew%Q YnvH7z ً6Μ/M( |J%mHr²V}&ւe Pm) B鼭Km9y!@ *eFQSM/3 G`X7b%FT`\)VP3AȂlc6X!6 4 9 8Y(p߅E{E`ɜ@Km`]vk7۝mՈ]vK}Km4t]H ~-Ƹж]a`@-rsnA>hI }C(DvYHo7:;-@̨A4ELjҟ (n)Uyv[.gk('+q\h)ERh:XɩSr|XTdu*ogk}4` J}֏_}ZZ,Y)/ XڕsӲT0hOp0“;IǔK#APjeOWZZèh($9ac9ԆlT畖zpQ{~ꨡe(*vLa$@9+k)6^n|XLY4eS.z=Y<8fyua/J|?so}byӖ7Hw]w]-z^[nl,`zA*m׽R@[C;.>C~:Д=ęj(E) RX`-JaeVpkY\ )ֵ֬Z;>C`y֩7dB֯3UmoϦKZ24H ~u?(oŏ"\@9kߤBsIڒZE}B41qielbQ@D+6a)|7:%$nx _Pz`ue8k)RPp&FQ)jZ "z&tΞ@vCUKIqQ}]PE!ʚZ_ȼI8RKޟTd7ĖJcwݫ=y^N~ꗖLTijTCJ| }׍nehPچHKyS42ݾ[ؒ ެWoY/R^ca.ŮGI%4"[@*xwu߫~_zb0ѐ8δC)X֎7,,73rW% mۣT[*)3ytMyiӾuoAiGڏ;~ CtX~ӡ,y,ò +v9le etg>:[F3"~oɝfm[ͨ_y)ԶԮ֙³KPΥG$G)+骥6sG{},80 81^[gB7TԮ{JK)#2PZ NQS2>Bz{ۍthg E3o[G^R f}@W <Sb&Lzvå2ZBZk^7T%]N |Z!=Ι䡻BC6o0&>^7^ŒjLV1{,5)+d+yD -M$<2979zWŸMV[k؛ Pq|O.[Rڕ] {7[Is/?K~ [@J `)4acw1ec8c(U@Ztle P%cИq\e8WT)tpv壬})uA~PY˙4USObXH.oZte}YˬbYZlU,QRNa%uXJ?xe6 $5uL4PjnSҨU5?xaC)ǀ(@@ >* ha׎ۑF0B-G&UbävmkDlsw׿^qX)2ŲdPu[n@l'\2e1(b^ hՒ<bGl  mDMz9ZFіu tT0,EU97=! IIf ˨Neɚ*Բ2TVy=#{jv^Y^"*mY1VVlppkLGOEuXeHi-_Kl^4n|mQ[;Ǝ&"ICiqpeP,KZU ;bĥ"t/KŔ\ٳW=فW]jE[XRnvv0rq|j)Z08(Փa_ bFp,X 皩^Xʔ]6[ږ9':uOڅҢ=8ǒl O T~ `Kc: qi< La5ҙRQ~([I2\ X@0wCƖt$[QG0"I'B1|qL* ! jRku(,1oG”c,j`k/`ҀTX@'g6juCbKmtC)އR+ F7_ }e>,lC2Tǚj@q@SL tF<" K ڍ %?zWiY-6~њ fpd9rȎRm *)[튂mlį#C8fq(4HA@%pc;@)6X3X J SW@AbNLRVOqKB7RvJXzAd1Fux$"& (nQX;:nL;VQo l񢥬_z,V|k+MOSlGVk:eH鍖~$ku,1DEJ47$h(ŏqP*xnCo={B4Z@z+?1 J1x0a4=׹)0 pQEAbKX: + BgNJM 8՚PJm(}$.q(DY@h?Vj Nqt)2mZ`ڹsSG=P\'ͮ{\R[H!6r)D@*,pxS*UP. a4`tFsPXAmQVLiɄEQXVSӪ feyXJ:,w}Q^0j~f y) _xڊhZ:ޚ~mZM dW_i;u ;+J$".5…R@πJ ,-[ LM嵋=JE nIsަH1VZ 2h7܀ڵC\ÿoB9v V&&iYR λ߇>, UIm~ M.uJ4i,+>EVp/hҮW16gynv/H P87>0ZF2QXKEIO^^+>=\d.cw;e] e=o3eĈgeUA)@E,)J񕨕`)Es3`)5=s.\Z#`ʖɛaTVSKZn[@oUڶtZطpv{aj={q *` (}?A\ ,*8m`pږ[[P)Rڑ:sHB ЕC=H>0֏C9K?cM=_ ~pQvɨa l.ׁԆQm0`j)\;4(($GTAUt_AP[޲@a!4D-l{$ZZI[ٰUL4^U:'fVSԝTZ 5-x @E_^STjNAKLˣEџ)EH 2J]rm.p(u|>gdsmH V" #V5[C%փ(p[0`U qPu_puۣ{%3+Kox'b'zՖE=LM]c%t\I[Ex͇^L.?@4cO!Nz'+*\EYqKĊ?␝ٍv/LK]&T)Ǚ*ZIP/ eo2ƵN!VL(V +(m ,JJV%Ѡhkh* 0eS~bӂP5]:QPj-d'<Ki ȶwYHb PAPiA~iw4д6j@[tm[DTqPF1RheV"Xj% ,X* .k҆L[7 X-)),/G+Y/O W `҆(D/ɖF<ʇB/gkykbe%.hϖOS5,]>+L xkiU㐡ߝe/Wx9DxRcj r.T] &辬xULJ [~W8c=ҸKJ ifF~4(S/sDo<|L!wX+W:(sO J9MX la}nYt Iʸ g2T%񡰎2,hoN5"+/Y?x`P RK(eG _D+iŴusbJ;2vҎ;pSGNr̮uߍZ9R,G)Y}"L_̒6oyէ S4UVS^)W|ppϥ`5-PSęZbXNoʱHKFqR/R H2Ab85@9y:QvV~r[iZ0S0jhB7jGS{޶ҀjXJS7(ՉNYvSXR{/iEZǢR!f;9I\[P7@q(:v$ӂL 0@ֿ. ej5t*&(&, 8Fj룶@z MM.0@ NU8nVJob A;j{BGֽ'~#;^bRCCEg%<⬳8Y7O'ugX .I9D/JC{ʼnUh &X.|p5LYxcqKӱ/ FtiTX;^8X߷i{B̥Hcq!'T{k2Fӷ.. Rg" 0Jd:O^B èJZ0O:'3ه\> = XD HDB+xRe{XK05ԂSXNmP޶jk.c B¸- %+T^;$UqJT[f9Ci )m5K[ oPmT{NrȮ[Jڅ+ewlYٛ3bcCj  vr"ڦTڷ?*eEZ +C!]%:4 d Eq*7.Pog@cGُ &/ 6?`Ƥ]kAU5ʺ3 Rb%kɢbZSzJ $XLm &F23_?Z+tK*[%bnsyU*TYDۥn,(R Dp %[(:Vqx 45Râe2_n ZT & 4tApRYfֶ噬Q+ZXa9\?3uhUr&n~Jಽ ?+|U+ yy+y]e ~yLW?>?#>\hנ,7G禎p=m㙂۶m{ovA/z yo;m{vmݺU$xk׭'I~=8=Z(?֬GV?bgz?%(?Cվx>=>wB[c[c\{qzza̦i:ڴ)ڲ)>gڒ[X6?zgJ߳l͛~6)٪ef^ɒmnqV~٢VsRU{߫6SؚgV?nA[8JXٵ |Xg18Iǭj~X(Ң9*>7StӾ O-NSkP :-:i'j3C\LN \w~oZ(u@'\UqYV J+;pg[.yZ}ndjmLO޻vqmwƠ-&A5mubmDw2skpo7zx|B>µ…R]'T{T*l*5(¼qR }ICq]:)b*ɇuCr kq^Y{e*yd@ZaEOl ^=%{g#̒s΅伳}M5/8y]K`0/e1pz+kHr%Um/YYtys1g܇s&ے鳑5llϞ3RCJ}׺c{yˆT?G'o ?p`,x≼臔L횥 [$[с2d9 s@@ ašIUK)/攤t LLe( %2d9 s@́/(յKPzI')KSb0b)-E}X2ds@A)sz-tW[jA?Jeʗ2d9 s(uE2Cmk)\AK@L(9 s@2J?PSoK)aW}/R||;ѝ2d9i{cQ#]TR)ªI(-\T2"s@2d( (u6*WGzItIXI(9 s@24f4>RP 2x\RT&2d9 s s X493 J(u,3DtšRS*n2d9 s,s+=P0|5mRmB (IXI(9 s@2iJM05,la4a4--M@L"9 s@2:4SK{ B4 ,e9 s@ JnAr[|J;8En -+N1DDUmUn2d9 s 9pz }j0 XJ5Ҵ4hР2#O4P49-7oD3љ2d((UR2j+){@`<؂Q-e)(J8& MU2d9P9@p{>b) 85 PZEo2d9`BLR@i!MDKIo>Г-F0hj@Tn`9 s@́́>쾷n}Co=Eι?]H>XCu}19Xր@inDr9 s@ Ӏ SJyRϏWLL/Q|e}Ayų%l{וToR?f(]yC{ޗ2yRʃU2J7PP pʯBDRp/?~Io,D{_K6sўMee43VŲKĶ~]ECiJKw#M2nfKRL=Dң߼MsMYERSx)4iMS->@hʥeAە$JڦH3~ ,Ni=F.!N˴TZPJrЋy>~իY$P*7Uy9 s@@怆!CBPz 'n M(=ktmb%4zU!u4_42{O@E=\8vsqkn׹w( z(%ɖ&+z9 s0-0Ͱ\a-HJ=*ٟLc߼9_:/@_~J_2PF+_Z6(u$^*d.ӛ*H1ǰĔb&~Ő>g2aӍMPV1>#]Lb@=qj)vW׹(HHS˲zh!12dnh(0 4C5(SiȖPPۚEY]BwmˡRXPC^cJ$RRBbQi7JT%X+ xŌZc.vU pq<DzNÄ&xY#$C`+݈.z9 s@a0؀ B([B#}+8?-?>@u){G3XQ$ HSO'rS2dnT(}-6l-=!RRGߢ UJWu4X՝w«+F$7pћ2d4m0 EYKˌzAi~"4 -g;_}_)1U);:+BU>]NJ*V2d(PPiSH1B"B)`TKBU5K[2Ҁ@inDr9 s@tA4h iRARzaUTJRd0JrS2dn((P:JM0jE;rB \&s@RHׂD?;8r[J!RP Zi@Tn`9 s@́́ӔtsDcDMtV$'P(-ݍHn72dPPʉN F{_R)M($"2ds@?K#YJi߾}$T C4  D@@P%TR]4 RvoذAWƙ#c D_;w.СCE\򛇥测:jQ횥!1R]@_DXh@4  T& L6fϞM~)o"q B~(9p_x@&G|ۍNNRse'36рh@4P5PXXH9/ߋY+ ='ף|`#PztZZ^. R{WP~h@4  TF e i ='ף\!lMg@ ·oQJϟ Dʨ@ЯJ}H9Jz\zJkXR JH!!RdCi(eJ+mV, D~4o%A,$ף|9cyҌ !j ie4"ImMڈD@eԀ@PbA\ĺgJ73mRiXKW*x1Dр_ hoH|teNG\snr= J3a)tRqFSVv(%)Jjri_I2%'ؠ3;>*K㯳8 J E d$W,}Rm*Q^(Ï%41GP,>!QP èޯb$J2%e.Kp>%qJv5ZV5c<1d=W}9SW8pG.}SC\(_(hev6$k/>FRbU, ?Koi'gbB)bJ* )RO=JN㾷 K {kEB{< ^ ߿^qܐWPʈ:&wqU۪prMJK,RϢm>}֦4Pks>/(\(]G)QRdR4THÇrOf}$:)k^ #sZ!-2-feڂA>=,%Ah6,F%/ѵ=&_Fc,Dt{auu0HUڊk_0w~&\<{u;H w8/Q?JoVKE'=CLM V7ث,竡/"j(o|ozTT- gc߹9nQyg,Tކ˰Q`9 6!~gڹ 'nP !cx\x r, MkqEqȘ,@PбaNΥ/A/]ۇ?F`Sa!+w#]z7%PZY O?{W2Z'բ^}ZIT+w}\m^D:F~\^KZr{Jz |n=׾tkk=5?oҡH׿{Eo _f+(^lvفmýcc]3*aKoz0LζDԑoH;|g="^Ĺ SK®褭XfBuPI+VIM74ya)u~:$!3Pj MЁp`!>l]ks|lV7ѮU.|/0ΐ0.f7`5mZkH~Ɣ:=,C>w;cĄU ̢I5)kW.ZβՒ^u[s?WqF;Wk)fZ8Y-Ìz~c)-a BO@4 im45wˮH9w( Hta)΢mE`3~0zqkTSR a ߗJ`unNtҳ*RITN(b#WpX'cy-*Xz V}GR=.Y#a9k:t5׼\߹ V/dg[P&w}˖:imVMdÎLK vY\J|MґK >u;珐טT_u v=25^iX(Eb)M{`$LwPa3{zK1YXYIcрhk@CI|tP(kQ>zzRZ5Jd Q323CNr:p: {DэC4xo>rTGXG3J0fpRt B Sq,+i~bJBU `vby$U9D@u׀@i`?X#PzYg4=Ӷ`x X,(Ζ~ DA^u)JZϵ^cqҳ-(B2Y,(=,K@iu9Dр@?OzDIo,{;cҳ9lLY YJYٙtȑ }^^,r DB0/iϞ="q B~(9(/(f(a $'@i)ծSGڈD@ih̙tQe1WzOG|ϱ^rRi6{?RR?BF4  *L,yp1W+?.0o[U{e%Mg JOS*P˟ Dрh@4Pu57(e+i44׎) '(KL4  D@,"@%*V:\$i+ Dрhk nPcJmkiD(D>Dрh@4  Ħ@&$U*4+'* v8 ⾏BIkрh@4  DUYe3:GRĕcJ2XP*+:Ui%& Dрh 6 J71"lD']<߄RItbIkрh@4  DUU H ͢}W=TUh@4  D5/(BR DqOIͤf:Ro+W^G׵BY5a4M}hM0zޛ5⻊^5TYMÒJ(e*JQm,{HHO}uX\O&1wU/eS#rRlvܹT\\LC9Ps&ܣ*ÿBgeFRN.^˥#p<%wqԴbPWP[)T1͚{'͞;&L zѵ-RU7RCKA[Geц6O5wC}f|A>99t_ %'$p՗58XCc(+@itI Ӧٳo=<|j0|t YYYZ͛7'DL?@nO}ө_aϼԟƛS5Qr+m>tM4r(z7JuP :UφR(ӟz%=y֩Xd]\AkPὓ@iY*,,T7_~{с 5po DWV(=C2*rS lp(Pݏ_Sɪf9te)}HXXLEi@Q6Q/>]WO.-uԄ8':R_ewt;ߖRd Vpv(A :DWf(=ݲ* eUVR<7e)5Ě-[$7QKөـs.kY6r&5N9NOuZJ?i[xPjGTTX0} zɎ qG@́Dk5ӔiJ:,O'b(P;P1=5ф%T5tzԦog=V:MYpR?PԽz=ܖR_y$:חqYJC}_i$;&"2rTKiVaÆ9Wb 3멧Zhy>"dMM۶h.?buKJ7=P۹A,;4U?z.(e X}R$ѩs(Lp{-:Yo!с8l(]pH=_)NAr$s%Pan%++9\7,We~J`[`uak>ZE_,*˾QX pOC"W_}E_(Vmkډd8sXJJQϧPK) J)Y:OԥH% ,zc(ۜcjX˨ Bm)/)}Rm*zՕDt"s<~8WD'XJ5FB)T,*D:RXaeๅOeYimK8,+k5hlG(=u֕<4c9?ã14R_SQ;@vsEEE-}EEP݋ND'U8qyh׿:YJ{9lãF=bJul5h>3P!+PbaiR Pb_WZHӰ X9=s5-Zs;u~VuV[J{=r\jTrכ3>Z>|rk%QVsVRkr,}NSO?UK)T(V*ⲞGKBJu#Ӥ*PH&c15w( h#+PXM8pajPAV7|Pg@V\S&auj` q@)K6b K`"j Pj%6 ~4䅬J-~&iK)s[Js2?fN+xVsǒN="6R. }v D[0:|pB4jiEB) 9ryс _|@^,P8NR:XJ.7lό6h}=Ź2́jc)e(}a(UX)[mEXJQ!?#MDtJ@Ɛjy|U&+όj )ꎘ}o%aN"Z mXUTTm)=p9eLIYkϽ>[KY5,ڬ|~w5^է>ZND'{V-JwA#G,؎em?`L)U52A8Q7߿`+":ss#P >*h:%' RQJDEz$LE HuJ﷝_(E`Ձ^!q߿KfR 'Ͻ>gkff> f&=r,}NNR@ѣ=*x@*v( +aTDtF uռkq!m)ݷK}dH9?TK /@cƌ1cDzҸq㜖R@jd؊ҟy{сLpq~[GUă24jQ84BR_uс 9tΝ 㔌+q}(er5D[Q_~~gA``N|!;{kKkF"2qR^i]T2~8o@~ ((7/#g+Y։:-9Qk,4$E^=fw?^? :J"܀%#":9 s M^Θ~K P:[Y&Є V~ R| -v0(xR7_oHO?:?v=r[϶^lYGNfH|F28&%]D#_6b}qY3r:2|cE7"K4o[5iӦ>9EBwH3gU/P/m搉''|t㍻c犄2PҚGu[6ГUK'Ё}ByGE6|ٟ]dsj S߆_~c10&m+7ee+_Dt s@@"ܛp /M4!'OR|E+ J;G۟uy=ȝfm!mF"`hċ^q%u\JK fiV.MGZL{uLѯшu\,vqw\x#]W%c Dx@/ 2uԀ|NKR7;WrV1ݷwjҧ.'X3ݝֽZ`[AA.{9fէטq}~1c¸0{s^J+mK( DUQ3foHqA#CEB)֫CdKo5+oNBh у>+qK4nn~Ǹ3{_{bzA*fTP`؞cC;}`6?gڵ==WkFJ2k5NsjŽǾZ39hU{9Dрh ޽>,ǛYf)1b犲bi@snʡߧ^^EwF[U n~Kɜuot?Mb;hG1bŁ}{eXݡǶ؂Ů~b JwvXP<3 Juz1}=;l(Ř"eߐsu^'/3 q#]Dрh P(7{ 9s4([_ݣQQPyq(e|َ10[<1<$^Eۍ-R簝cXIj9f{ p >q]<>ǜ(yfрh@4 s%|NK "u>AjYJ|>vS֮J{>nM>Qu=ýi;/ңG^|뀬}[fa_o/ +B*}9nBڮqLun 7_}__4_]IU]iۛCf_?2Bz8>k置s *1>gݽϬvx}aXt 9n<183O95@ϻ4 h?Fi9 s MGUR,z]w)0_@wMn r׶{U?m@k{P.us]Қ=_9d~uPlj pJ1N*"_DD2d$ (ܫ_<_"{ \Pǟzz/h/Qs (U)6=;y~uPlj De%Z ~/qX`#Au1 _́?po= DWV(= ,ʽҽ,PCR9q>c%^\CCg\}vx)^'[K]00'07OJB%+1Ƈa!wx5kXUQW%x@)r…AY@)>tKEA)}x䈂x $9Wɪ,\(M[W7_U#*߽rޯvp.P7i}ȗ_~}ȔŋӾ}*RG{RāDx(&}TJnw{U Jd(oZY4 !P,E#5vD*^_E)IT9fJtѷLH$NJbGbYir i8sHE"] ܣޢ+VerZ΂Ht›-YT򉨁xBi}KX&U;cP_e/~Q6匋r~Qg/~QYλEtXtX*y} Ju#sJT]J:e1U)ԗ&8d?{ݠvےq\DeUn4첷j]x4s`.ssaJ죾XpxXk>Zy-WlZ[}qQߦz(D력oV\" /zg*?s(uWS;zmƎ20tUyL c;j;EԉJ'z>jAriRZ^ckޯ\?OkxOs35_7n=JZC{.p,on7䜃ڂs]: ћ|2DG{H'^`5Gp.yVZ@j=6Q-?6Rz?G/?S@NIN?VU-&,Jd$G0tXa1qKn*Q/g>!Px\LUk $U;8Ar(ڷ 1ft pL͏#0oY~8JFnΉ ޗ{hCPֶYtJ7J}%N4<maKJб(0"w]na(%Iyonk@s<}% $ie\Cs#}uO~kEscw/xbOP_sZYR\DD2bOuRa5-ժzB op#`D7 TFq!>_iА--1n}@J"/&6@2c lwaLư' sO,:m5u<[llt}`}\U߭h;^06e9vazѢ6cHz5Ή OO9[ϡީG߭OԱh 5(ccRe!P'PZFrA;NӌK(ڪc5vߛfjf gmլEkXI-iu,sY-cY9_D>4]4HtaU-bJO;pǟxq%OkHXJFanPwP FLmz+P)3(ScR"wd%2m7jOiZ[}n˕oqL,)l1$7TL?44c:yP^+פP1Ԃ- 1x~̿Cs\̤'u}bk ƣg8Ǥ-\bկm>+|ɠ,!PhdP3 ? tGWPΖ7&ÏшR31ZJC\_ L]Zd'$Pe;1 @V Jdr 21ȱ+EQRz!Zvm@u-9,?O;[JJɇҸ}ui큇W?~D7BWƐ JÔq΂VX]l)(l$ h(}שd5O:1ȱ+E@uz;}wO?"9Oע{Χ.]7?}򇣔Rs~4l'֧Y(ufkb)wU'k(-(]SccWܣ\~bJƫQA雟QN2ꔆ`ք uWbb)-_E2eB=&":9 s MGUJ7m"}}7^s"YJq{q8ݹ=.oQqA${ R(C%%qHעрh@4 ^(3~ Uؼy%[$JtcbD/"9^9XBj@4!/ J4  HzBJBi(jky[JӊA1(KDрhnNϹ$Jo)}~e{5 PJрh@4 xAvR%̜ZPz 'wA/Cgq@фӀ@i]h@4  Ta JO;(sOTPk׮鬳J8(}КG c ]ٮ3й+ /'yMwBN (yWsΥbQ*uZeH9{Q_t@!!bJ5KK>:sJkZ|(nI)S&PwР;QqS,4/hCW-JuYMURfϞM~)o"2jބ{UPzxғN:H/C^yu#?J:6u܇}Ѥ/uhE[YmZe>؄Fo=̼Fk^YW Bip/B(9"":9 s MG^ܹS `Tv@?HPȫ@_P[HҔ4@%Sס #l^3Qj*y\:"3id_g_)4 PZ U] ,9`ܣpJqR(ݽ{7ٳ!}լY¡toץi>gSl,/XB}gͧ3WΣ /Ck0^LJ.8KU- VY^gJ}@́GU(EX/MK SSJuX: U4|*X.^FG̥µ7 (ke3vG?49z絥zIūϓKxUyph\!cX#ɐ*}t[ƢVCiij->ߖ !zmT'(t׋/:9/h)=d+ z1:n0Ǒ2 (Oc6+i(ɖ;RCi#-ímHJ]t uӔZ\Aɼ*0V9Zd@a29/#q]XU 7J땏5~7Teepmx=|g)>Tzs@έ>1{uR$T.( u2Cw}O7o-[8ȑ#S=-zMK_OSJ6ӈhJ.WRSR>q4dM4n{ *|LjYԊ1+l_ %, ^m#3l:PRB~xK=b/JHOIՑԞxiNrΥ/cH۪3ZZU]zizZzo9Db{d~RTT VtPi3hcZLcVa!6kRJk3zϜNg hsӈN RFAnge4JK?U˥iYPh),Ꮹ-v, WȁK}H@՝[GCP_r%=%_M>*E Pr~QgQ{EeS:^auauR@ӆ > 뮻rԤIzGs-U\WwN974[*h=K(}>[H-x뎻nji WQγd4ziT(s(mXZah N vLP^o9@ bQ#gAL;T}Fj48fPڊiذ%k+֋j1uÌA?bm zi:w{ϕW _|y"n"jۮ1ۯt\h{pE5PFG}wEX9eJ1܎c9o9AY9F+{;K׋# sߋ.[֫z7 B[oEW\q]ɂYҍ:g 费ov>/A+QSMni 5NC)S&R Hd+i e%-|/4܂&=*Wmr:a3)ʏ'F;fzsQi @Z#9ΡK#?PZFA{ d[5]xC3c&pxM ~?{NYK𠨕K߽7Z'բz=^~Z~Zk~kt[+j=5OF;pܐsknk N[u0Do}<U#x=~Cd߾}x>.,]v)]v) ~+|Ѵbyxw&p0Poqc z((9&J/ 阮 PÆ l!+V3Y[-YJ=B K>:t ue; $iek5j7Z1 <1G~x0x\,]+c|S~qb@@s?Pza1 XJO(~Pz1HM @ '@xsEz~ x<ˈ^gNXB*װ[" + )a1|7JRQ'pݭvLG +Ɍc(L ՉNd.3zfg҇=fdWj%'|}oy^aZ%,h9K>(# 5 ( H(ZRRYvU3ZβYUϿ&eY26xY\9ֺZ,5&X~kZDzs7 5&}hVKh/ё(=:Ŕ*Mņ"7ޠZj@. /j׮MK.N;¡0pϠk6K,_6hDWu(tu>pRO02|I(vd&&YUθ41}I( TOQemKNhr>;3F7-a"\kG6}W NrQ1rVw QIfm̤ lOk{|g^Gs\̤'u}bk ƣg8Ǥ-\bկm>j 54J;];*WCWM}) Y\U= J[?ŔhʧIJsG-nx'+x" Ǯ/GGU KZI㎣_]~BMRN JC9.߾@jܥ]58ZDWf +Dˠ;t؏e_>Oi5P%k=[(GTLQV̰4Wq2'OVwEsC)iR΢>wz a)5iX 1ҡCi`P-IYNjǤ5H|(z$R躇~XS^@nA隊b_~U=,t[Jm Ɩ{ӮS (d93T' &*&XR1Ht(QGQˇٳGDt s@@Bܛp½*+u~1,8CCR (=k(E'L_xqBZJ_piӦ̙3ѣb*":9 s MG^(5@E-3jB)V &(>32eB=&":9 s MGUqRR^P(QS_hXJ+Lc(]NY4  *LeӲ˨N}Q, қJO44j7@i]{9p  D@\t2Q^=A%u~#H='ݻWYD_]l9Rl(M_Z4  De@YSK)m>5>M:$R (t'~jٝ;wV1+jE*ȯZ}˾HbPEрhkPzf  h 0g(=ъ)PL.\X1(ƍiK_{T|?Ӌ/H۶mS_~ ׀@рh@4  ; JW06AԆKhHlH0l@7e-56lPVC) | J?k 3iʒ{.GRzVрh@4  gUV*IN"Te:&J$ڨ?|=Iс 9p½* JS/K)S,XPR,e²Ċb5q)@5j4mVĆU4;;RS}ر#9 PjjʪUuShݛeQ56O0֪m5&qUaJcVm{/ 3 ^G|?ra"DܠcJWjJCbJM(DR\doݺUh~~>͘1`A-n%kׅn-P^^=tRAŘ49 D洶:sU @5&t\c(\׫F (рh 5Pm*^S{ {pKHUݻil mO'A7"@չsgeMb-V⓶rza5Mv@š%lZG]%_MO4.FE4/ M4 h@S%PTU%:_bZL JC(ᾟtW\A6mR x/$Fbp#joõ\Ǭ*+{cJ w$D@RNi=._!:YpDRLEoB?֒^/v=p1(Cw.Ӑ _\1_0cҲh+PZ}h2k:@i XjTܨ=,4cpˁ7_ߏ_-|'hP1=VU.ek JVR%YToWhsXS=4P0Z~SuԱ,Ti@AK蛏!U裴yi{S.֭[|{sƝ{wiD'{4 u_[M|ĺCb Nk(5,acJ ~D9ebR\<],s ұ~V)QVuc˔e4aP_+(=!^'=%.x!SCEYGF>BJCMZ5p̠pVP5HUYQ-W jxQܷQ+>R}9DPD"Uψs]8u}\{8K{:NLk,E@iO߼w!C>P<JL}A)VQB}d*fU&hLMٳgO\񹻭cvjT)Xx yDKGXhpX]tqKGT(0꩏hPj@O`죮H:t''<8-{6z)4TjJBR} JʔW&߱<%>h:@9M|]v 55hKN@i\tRN?:c>Fʾ7ݢ))wYRGw>X4:Ac C>pWlJCfEGsYMkGi@YuA]h<.?fV4 ?zh%]~eteQtIKx{ ߿Nс =pJ.=\vmݰO)=O.ԣCgzwX2dߧݕ&<ךJm@z#x?՜zL]|z1p>~_z}J(a&쥑D@@YWsl(w*e(8EnF}PY׬4oW66z㭴m[?)t㘳d#QD4( hugvu-ͺpܖQFL JK7K4  D@YQ,*AC̞h0[MO|KWIg@_U5/9.86x:j{?P\`E4++ F,R4 D@\4PV(MҨA4"5 Ls{0C~ćRh˴i|翾o~##sLe)ſ;1guӁwފz<Z*))d-ಃS(zY|5(&i$ DhP&ss4vp445b(C%3;S{/> .w7.sS4o?3nuқg}":3=Vdu٧^&ӛ% Dh Pks4n0%ZZԏRCӟa)zB.TOZOƬ~a1]?5u&];,0Qu(ח6WKiPњ# DiPڂ-iJưtD?N#_Sr[KjǝFOA, z~_;$'g:XJ}]X Ƣ-i+ Di ^P:!  sw}P?r@)'QWRt}ku]L?~믾4_>PL%L|R_#Fh}zc^@́G^ -AYJ' .[|(EG}@_*b?iS\n9tu9tZtݻ|)^)='`Tw&PZ.jrʊNU ˊN(MeK? 大9 JO_+w_]hQ⩥Ρ--Zfs5=!jzcx)dj΃X4 mE75? GPAޔ߼ k֓>|w$TEL9fj Pj/z$[M j NjHՆRds ^?H4P-5PWsna{Rލ(.s} e_BGGJSr5( /[zkSi(%Z|DՄz/_${(^UJu{@5Pi+h(Iʺe\ӁүnOiWo*gIxOi\B%3ftoC.pf +U"n_NvN&}t2'Rv$˼FQ婓2}kϲDS-pZ2eDw!PڤNc:ю vytykظ;S~_t/4&)S*fQJmC?vNk,Ki`%0B "<Gc /GvOKT(Xu-[ atV'utX.3W#5z--' ^@SP|myIre;|͔zi+Шmɬ;K_Bdtꩧҷ~Q[@#33S];nh̘1~)*͕NAl3-U6(WژppE`Қoq6%:.}$(U C~DxXJf۰:ұ9뚕6z@t'EUQ~i_-^. Bڸ>D6C JrAizz:r)Գg/j۶WBIN3gR`W繜c nW#COKg@,pV0(!q#TXP1>5Ts,\tπH:uJybb)ۯh 6 |g0oa;Pz]KiCO0l%ۨ9Խ ޛoӟ*֨Q4iB .%+WSzv. Jc^gcz#+ź!Вm|sbڏJ͇uH-1+yX"D,V3X~hJou1^RRIaE|Znc;t *ǨH@sPzmF'h@㛩ߥ-%ͩ'[IoPzrAi֭iD? z Ӈz~l1X)wr) h@CruU?;rRq *i$8 !gRMH?. kㆳOtpq:~a\OԄS3v(dF'Vܮq]"e1;;x1ю0u(sYQ5PڗƕSn> =J5hJ) 2XJ?#e%}C4%ٯ|K!4k,ǟ~+)kiP=n^`1?C vo{Jx}shdFr;ktgǸ; +ip̧:`P[`Pb\h}㐊 n]c:\#8ȾwKkDs 娢ꠁW_x m`(sYkը%u\P~zjժ)7&@4YNlzhnIrƉ'H'p"-^r?KYT[ RX E(ϪREc|B[(3uѓz8L4 4Pz iQOvxҔ7Qg'P::X,;^hDw3N4رcO>YO. jBJ+TR@EZJ/>=@Y@Jڦ5 JPY3μZ嶟h [*ϦXX0}s%PX ĺ:D22.рh@uK/GkXM/iJ66 w|~TP|68>4Wh(g:ƙ4c z뭷gob)M;@iB_\bAi¨E" $6 ajZjYjj0zc醺mU(]dװ:$.y_7:㬳_ŋSԫWZ8P#@,,PX#QG(?рh@4=:@iZњэ]NM^FiDԹSR43քӟ^M[֭ٳʫOo2)ܯ@ib9 &Hg߈dH9{U3W,J_@/w ]]!]Y]\.OGo&''>uxZ ˌ_KMk%''~G7>/%군]KJE4F4   ?V.[NԣKR%'+ٿM:2@y? Gf0D_D|quD JNV @&PXCF# DU[eZK+O/]T€o|Io)uC){Zuh=܇D;?"zc],;V2{uE=} V+g' DByM_Bɵ/kפ. ʾ}oT>(}杫$%q%MqSt$ D(+sYv c9ג #@I'X,Q5& Jͥ D@YsΤ%KS ϡCd(7.PXPJ Rqh@4  JBgA1wt_EWCvI( &D@@١C":a[VSOO_3W?)":9 s !QW%xC &՗EԀ@L?hIڈD겢әg[RWRv"PZ3P]f Yբ@ DJ9vFGKҟՕ( (N9( $A6 kP E6& 㵌m?VWwuu.–/??'wwիWSAA͟?_a00HiXtC7R]0XR$S@HCJJyH={P~~D*//[lٳgS]]P^TTDoQDREم)B5@ĂËoB)D,i>iR*]w))ݴi]2HO>+O s1w_r; }4[6o q<߿RmytpBe1ҿDyՉDx^J[i}v78c_/҆I"G= `H+5=Ƨ;6 X$ڵkdSnn&esQvv*Eht̘1ԣG9?O4iҿ>gd!{BP/L]z|g,F_x|~x߮\h?Mtϵy{z߰>TTBRc![wwU5qsJa*V/i1W;g [_.:{)5z-y ֡g"l b cens0q8=6{QX;}ݙѾƵ׹OVtkU!$?D{I5 }QqQ5Cwj],EӇ-p8.+T ٘s%ۺ: gcB˔.Fa5䔱?seny{ݩߋ[_,u/) bD[Dŗ_~I"kTogB*' RZCqPSA5T]QDF}EVV,W_zJN+&\/ȲPxZf r"v,S) 0DwK9>]UٜUe\Tx<qz`TqN?I ,!rY)56bqY>t"Dajۤsڧ ǜ洳yi؏۾uɼW]8^@OmOTT i)-˧)Rsci5՗SC} ?μD.]:4/:׿뮻~LJc q(4WѮfSXm^JÞΪ,:MBWWy$a+ӹ*osvXCc\JG!p`sg)5~vųs2{ntQlwBw_*KFPi8i?S#:|뺻I1}E+TłK=K iiF6LS:h࠾S) Srr)u5oRxaOK|4󇥫ʪc5::\wWߛZr/t2NkЙ}Zl hަrnhu6/Yڢ٧7.jj\U\}"lMu2mgwR Wkl/^f)]2Osg5Y4cV5>AGWRU9s_JՇ~~x󛛓 ~`i@/KosJVbT6Hy{WiO+쵶x^?>(t#w Hi`NA@@),tysV,.ʣ)s$Ki$_~I|a_^lk1RC-**Gɓ'fQDRES{Ki=R:k#e!$reN i*i.cҞ={Hi4O>$%&&TJګ趩_RƋ`^)u'оqȼg0:K6nO 0NО?we?R}/4aꁝ\wXn) מ v?wp,4t5Χ 3h\[Wt1JMMu-[ШQB+KtJ;(JZ:j)uE"jq: )bQ{Hit$N@LHi&}>Qғ ^y) BÒRU\|o`Wu},obHi(G1!gh1"Xlwم\%-qS%)6|~~>ȥ۷SRRBuJcY F_ܓ2.d9~C.{O/~顇*ǽRjK.I-MVh]4 RX^ F#.*!`C:))W89>7޳– 81!cKibU4&٤O>ꖜŶ(*Bڹs'$'VJeICh*hxUJF[R}x;!nuqፚE D^^&ep" $g`)VDMYJ5)ǕҾ}RGGQyy9G^J%k.5סVJ9=[soA #ԋ LQEysL=H)Km~[NNc(KZS+$N/\)u ?}bxT\vvYrTG["GH Ăfs,%\%-SqR!M`)=F}RZ^QAS%uݔRJrI#t E~UJ褽)+sX2,dx7/e jq7KBO/|iRm'l8?ӾMRPe5ny.sr} [/I,gB*ω)MWSSK1QBnʧ5 R ޽+<*z[y%Q^^r]4l=WN kv|N_}]e}/ ,=B::\f>6ZxIٞ\!m]Ϋj;/0q9?K)om3{>S1!?tW ٣]|aS ET3YJT攖quTOZRR)MI R|MN8NMMU|l/拾\|Cˀ/X:P4k:> R3s R*'}aޟAHe]awI^KQN_hk.tg}j^nNbB&c*^J&TSBb5Xt;h,Sڮ)ݻZ<_$ipSpG4RIm>ZYNpwz]ᖵv5M57:8@YJV^WVgGrhwwn9@݀% R&R*yiTIYJEL+4)GzLhZZZT"JlٲF~sJ1O R8]3 tҀ6PDؒR&"r-uJ-RڳgO:s3njs/1F޴i1RE-R+E"-&v ebAJǤ=R)mH"[Z딖:o=zTɧÇW?䓔R)>מ\E?d=k^l+ϑ$Rj6^YAJ%@lH(THbR"}[=ȑ#J>TǫذaߡkVKM߿׏{!R[ѓtssg/b:@+kږ+햤 Kǻ#BJXo?#9p~dmbgI=,Z/Ji9R*sJR*2*q+);spcL4IioWMw">I}Վ:+){N2 E]6Rk7 .OLuUR^«Jڒ6$PUjZ4 +it\e!VKb'۵Rc4*dp)5ȜиΤ(LwYLr'zH|w6"޶ v Xa>  aE_)ɠIu,<2TuJNΤ4܆RJ*wtG]Ef)i_NvR^ך縚o]h%[fhg6S {u9g=+Jifn=A%5**2^8T-ɍ:Ü.%ZꡭRa_&Vʷ4{kv'g:ُܻxh'ގvծ`L@@Go)ӤQIif*KrѸ&)կׇBTJMCAŕׅX 5W+*e][H:TeqTtR9(kcJz ŜIH    ~K}s / U2Z$Ҹ1եT)JhUQJ/e9=CJꕔZ抚IBJc@+9ڜj5T XJ ̆!jӐnTݫB'oeQH*"}szBzRjaW7V:T=.a>xo8g?[n뮻@X值7{T$緔O"Rg)*i')ՇñRn|1b 4r\Ō%Q3۱i DbqNg:Y,*~qS$dxAzO? @X值7{WJizv |z/5LJ"BpRU'ϯ= Ou^ѳ4 [HrAb lI(CWJz.trvnwrcF}-opk[>s?A_~% ȁyo(y Ҵd^Tk֌+i!˩H9$m^VOb*B*yUh_' NɐTH!rr \s@ޣ*_J6TQS%\]NR?}Rr&oBs_tFg'/Ar99 Q1!cxN^j\AM,MXNKT-jIp@HaARgK @8@Hi&VxqS+YPy2:qq|]F!]QK Rj=/ߞo\g |olKgBr99SR^0&ΨU1~Z5RI'NuPq)FχrIHEn6v- |Q~-l]oRB䊙]YڟH\H? @X怼G}V=>8&jIyfӓG 4.R\WZ\Y R ۵j3]J Br993RD;2H-sR&٤>y) +aA"R9Z%MLֳW;m>i<ٝ^[)5BW#;rY^^X}9?ʯt;]܈Bkr}O?F-ny<3n~?͔a=>oSŴ,"vrwsĎ&kR"2wicGdIDATO7~ڸX \@HiN&*ȨĴS4`0Ki=ȑ#JBHLL$'|Rz'P)yx>Z.1^ WME6QiW;<|vbiS*ܝDn~Y͒mمXPHc7?~RsZnymGu3=yxW7 ?m`s@ޣbaNiznzV!U2:-FӗNHMJ=J#FÇ[C޸qG42-[H)]W;[INv>ۚίמ)~=Wu}R5SV qwWXus;ܹ6щ;)#4g]5bef;1IS?~,9@HiF^:=siUt:\>fI,={TR:zh))4.2-Rjo*>fOߨ@X怼GB40{Y΢9Φ9͡ϥ3 nzcǎQjj [TR8o utK|Fr99+RSC/;O_ҲkѲ59R:Ki>}*HvIIIIpϔl4;#N@@ ҂2hʹp|y494YtF.2l/R5oߍw:HwR_M/KL^j&ͽt^1f.J?8Enr ߗX/v*\ :. )% ௔g/?MOY˦NZh‰tI7&r}AA,$ĒPp%) מA@@RZwtzXܬb:yit ۿmҜlYEm݆1 QЉ8!௔fгi ƫ:o,n tq8Vj{[6-1PHiu8N@@ <%ND-siz0N~,zcǎQ2/?fhuѣF6mD, 4"/@@@ x!ϼpnɳN^G*)#RڳgO:z({܏1n'|!sKR/Aa3HeyFMVBZC&Uщԧoo=OLĄJ+ݰa 6 R.KRX#௔g!SkXHi, iJ`)=r䈒aJBx' Ѱ$) nA@@@ гhj7'Sr:~pTRѡCڅHn3)CA@"RFO=NrjPFu˨]ݻJYH/bz!6`Hil3@@ <+,Ce\-q,TPDEJ{iRۤeTRIV8')Ef@-yitnP* @Iio"jJi:G7^@@!௔fCvQ3)5)*Hp%) מA@@RB{BRҊ*c)-Fc9AJcq  !&ුО;b\>Uͧ&籔溮8px H4-;2!J,RjwȨ1p}:GwfxtRDlW"Z!?sVBJ;3x^ @JCh@ WJS2h׾T\M%T,QMY)c("T!ah.@DWJ3νXB3&8 2)2:Z2CJ#:Ҩ^@[JGӎ=[YBө2#),Rf}HR#0l  ~WJF[(,9gNi*eRk1gͨJ*RG]JRڥxs#௔IEvnQ- )3?Z H&)CA@"R::e$mݱ2 ) ILK$%zRݻo.t\CJcq  !$ු&`)":2r9FSZGhjm=JzCJCؽ8? sA@@7~Kiڲ}&,i٣(5k4:@Jë?&0)(J)(r',  Mg)Ĺ;t8WJ7V!եT]}/Rj 햣>S$v)ݾǙ@ t+KiEJ59)m3H#Ghj ) ~z [@ /|)ʼҜ1|mI>Ni=HtС4T @t# ]ARr,!WPy:q}zۤ4>> f'RfkϠ]  H RM)UJq}[Ϟ=ѣH ˩TM!јVqNG@dWJ$T-LtS:dR[G+gґ#FЈYN49O<ϟ?s-nr9  #ු,9,9[Eyeٔ_CmԷ_֫W/:v=FI"-USa r[RoIa;🀿R2ڦd444+򨰲ڏS}mRLIcQJta>WIJ =&)Ev@+ɩchǮ_2ZBOUT\SL;XJQ޽{=G[)-5RSXLDLG 6@J8 >¦   '4%-vA\-"R*+oQJR$'PTK!~ޅ ]4-=vEեT"2Z[FeTXRz oj/!'R*  #௔gcҸq4vNOu:HwR*kzʲR*))\jkkq[޽YJ[)=-RSXLDLG @# ]<˜**̧ܼ,je)"m,JLSx(_,P)Ev'Hix Z  Lm|JZF%\%-ȥL5boҶ6̤4JKMQKe (љ]~V@4@@ +^*/"*,*i6ef1%=6,tm_ITJ7`NiDL4R;}3=4GMe|qPvgVҞ R+RWsJ!)H)@@G_)MKMݻwRQQ}fN:eڤT甪*iBQ4|x"q$ @J}A@@Jirڵk;fSN&٩(i.r&&&XчxjvX@@WJGю)'?)#cJdmFRN,?NP)E~Hi  I#iέBJ9)bRIT̋珖F|Qm|Hi4X4r-<K-,iJJrx>;R,R=zhUURnN)CJcq  !'௔JҤ43?Z)Mq!y..R)M{Ґi  #࿔פ4/sSHIiv6T*ݻw*ZZ ) ^gH [?ґc6 &%%RZ:Z )ܮ$)J7}z)e!u%r+1DL|I #+Ò4,RJ\)RнTJ9{I_JS5tƍ(MH?-Hi   IDRUI{OTJN>㫊))4% )قR:t;KB*sISy9dR˲Ni[[effUL-C&  #௔g)RƋz8ҜlʢtJK>nڴ oR`aSR:RT{Ջ۩ ?rssffd(1ݼy3 یُxzvT@@\WJu)+ %i,!|Ni*1-.*˅O[nx #9Ð4 ;MZKp^t+Qk<|o/eJiA~hR9Q_}b҈>4@@ BJZ|QtT]^JiY SSmKi.4vg   zJvmMD:Lg)m^q,r}GG;۳ Ym*OH)@@G)AwnLb1OW?Hio]Je‚J4K]$RuJ8 ޒv   ?th])0r 2) C)̤vԭgϞx~ i%*,/R:t(MRh&௔b)RWbMy,{~qKiHi[[(͉e4Kkf@JaLRƝDt$d)-` /̡’**ɣ8֣GjkmʨTHEH3Q)FO_L@@Ÿ@8 YLgQikHi+KQJ`>$V[)՞y@`tqR1WHK :nݻw'R]D?mF14]cz")D@/#ia!WIRZUҲbϥjiiRĞJRP%௔:92C*2t_RzQJ55 3h@4WJGԤ4//t狜bZe%)k7 )*јRsNK @[JG ;xR<^ 2R')E@+EJo<^Z/t)zECJ#b%௔&ZTR-)-)0- )$ՖCJcq   )ݦs4O/)-RZ7JqKBqLo@Jm@@@ 0mNiNeN)K)WJKu)ی 0%x c#R`R/[""4B;HR5|/:Y x}YR}DML4R݌~KiBm۶U ߋʜ҂B|v=|) ,@3"1@@@ x#\)֤T$RYTBJכ8R@ @J;xڶ+,2|+Vi; {h;@fYT y}^JIi*h  #()͑%,sJEJ K3q'  BJeRSNnB')mmm}ZZW#AÕ4\{F~Ke\*iQuNRLJi֭4l0:alC @@@ xD%ەr|}=HT$u6Ho5C_)>RMoa7  Ҥѣi޽PSCMu4jԧOuիSQQ[ˬhȑOp<}Hi8   dzjnlcsLhBc#!Ǒ$)6WJ /B_A׮XI׬V.YA,XL9C ){UՅ'BJЋEv V@@WJWJ7\MVK+|@ƱZ&"+Ù4{m6Ji]yӷko;׮[_y ]ugi-EJ|R914ڒ*ZR-=JiSU-w7N\w;}-5t+ógiUju\} "!Ubs1@+jW}=tm7A[y5}$R:hV){o?-)3f .t ].@J   <JwI-z{[Mw^3tյttUJyRj!={`7H)I_)mnO_=t}ۿAon::G4d`:TQZZB|QfӻKb   `G_)4oo<@s?=pǽtMoYJ/|&TTXHEEEg!GAAܹF{$f]A  QL_)m;QIcxY=߾.ڛ铏EP^zQ[[Q^D.j}vJLLFqEAJ#nH$௔Nf)}G~w}tMwӽkn}1]|ԭgϞJ*m6JHHFbDy!Q8="ු6~p؝÷~Κ;}BC/CIiFFG:b֭) @cy  #௔4WJx;M_O^{t.ǎSOMM-[аa sKR/Aa3~|[ߠ]O]IiSݻH,/bj Hiz.SJq[p=﮼>J0JiRRSc:R$h]A  QLo)KؚoңCNkR:P);7IyfHi'X$4{m4~Kie/ѫGXFz黗JFZ>RR\H5!ޥCJŵq$@J}ㅭA@@~KiYk;5!]!Bꅔb )ܮ$)J7[JKEJժ TI*GUI!J!Hp%) מA@@@`+ơ{O)5^}LJEP!јVqNG@d=_ntM6ȕk%4'   B~KeN;RO?%-/RRBJC8[R$@@T_u7=.zx" u&X@@@tTJRzSU,WP.RcR$hkϠ]  Ho)˕҇EHyjCWZJJu1FcZE9AJq  A_)PRG%],w-Fo.pctmNQJHXl%4{   *~KiQ-wx (^8[7ѷ\O 8^Jb ) U㸞@J=   8JjKoKשΒ龅ksߟlґ#GHQL!L) 剽;J鸼*7步{符oZEL~w,]os)R Wp @@  +cs*ϿAκyv%=Ry}rWR-)ƴsFG?,@@"RڔUN|u+鞖t%tɉ3tQ\jCVBJc=p  $௔6f/~nnniOOӅRjSj6l?06[h oIa; r@@G_)m(8 9t, i ivEJߏi[*))6oLu8=H%K_)O/wBC"u"t)$FVk&%%Ӗ-[(>>*TVQ)|w .y%qjfu3hMTу6irr2*)MHHq$/ @J@@@ Қza~ lNS#^л/uӥT3F4(##mFÇ3'  +Uy\AVMkU-6)ٳ';v:jھ};ɢ n #h@4WJ+}qetTr l++'ч'iTJu)MzB*BG;vTsL)"0&ŏsp"௔ɤ>C:Rdb]^LVN,DJ{ECMy_PHvRKJ >    WJGӫ{eR+&()ػuݻ,,*i^~>ӮݻUR$.pd*)Z^>^2%iq8(mmm,JJsrr(tH)5nA@@@_)LweMcay-_Dg:NRjl%yy"E<|J)@@@bR="߽ܲ[@s*ive"qqIL54''hsJyRTJc=q   L_)1۽fҬ:UQO3+%qj;ey֫qS, @@@){ijy Mu4UkR/p, ĔUo%    GJith^\YCSkijuG=MiSf)![JbϗۏkߢCr9@ ȁx֩zR^޽4&єzRߠ KT);:${OMM-[҈ӹ?    =HiK}B:+hF&MJ.Hܽi8m޲J)–    !1t4ebMH'54mX:}/Kfѣ\a ȑhM)L9    B!I3h&9s͚9fMO3ӧNR~,=z#GPbBP=BqFJ֜RTJ0s$" )Jg?H控9 &\9&9}mR:l0W!"*a74r'   B!9h≴`Y3-\>,m'i@:.bz<$ )ũDPHiV^ =S4DZtY -|2-]B=Enݻw."kJBJ*q2   1L dR2K%ʹZrWNA /B)Gse̼֮`+}yS[:3k]OݺQ7M6ٮkgϓ\oPuiCo,:N#jħ]y )+LW^5]5_=~R: C ! S]P:\>l%Qx1v(cׂ5J볽ymzP0;B<0X z_T"a?{0~7t"Ϝ\a$!*^_3N@k0ߝaҙו\~.F C7m '>|=q"qދ{Y_4hwA/y{Y$}߿<9XrĮmzY>7魨 e'ѡSzjSFU5=}ċ딚TO~W{S7os.T}y)vSU|d~.?3>@M(e{* aX)tIoHRSgO=拈RLKZwi^:FTJi8y^vvR+>/⸝}]y*" |:g<:ށJ7+)}n?5Ϫ㨥u4I j:s  Rjv{S5`3|wK+. r:Es74A{ {3q4 (N޼lϩydOsg_<{#FV9]owݔ6UlJi҉3ki0'O"DJ*O\Jf۹rbfީ/s5T^s(Ca~ '#k@}s#}7mslzsק;&NJ}`ӱ}}ѩ?ONϝo{I(tZ?N*jTE'NvP#HJ|D#o_ M1NG%K"?ܿ_L;O6TRԳiZj\MUT?jǕԻO/Hi维kֵR&Mww5 Q𞀼<^\5 N׳dmf%H5\Mu*zl9U՗RvR ~зu?i^Л{v@"%~| ?yHi =jTBZ;XJ{Dԛ6    -B#tab-Ռ iהPIeҞhI/xG dRGZKՍTQ[JUTTV@mԳg'R^",_l    Hid)_U *."*,)6F)EREvz/(_><߰<:vcek=P_x>@H43:WPemWIKJZH.RaÆ7+yLǟ=@m#f_;;TiC%P,zA]q/Z16.& )MHa)C|qSWI YJLRPc\|Ő.M|wiL;TAJu.|9GӶʧwd_! fk`{/dwpUUrR%-@@ :BJGEֆ-B*Uٓ=J#F#Gƍi0R6vQdÙhWU\ooKA6v6γs!\w$]}Vc,$ ݹxϝFHOy +)deggRq'Ul^S7|NJzo~IN[*߫ܞmv  B!#F]w TIsYJ[^zѱch̘1HJCIIIyf%RhX77~%dv?l/iȱ'qwz!i_^JdUi"a?TJɇ&m$]*/+^/OQOoKo1gG*]}sG\tncDPHsNuaтU%1Ji޽RSSF[nQFv3V 7Rb(N:+rZsQTMpuRw쮒iF^VJݝC(rw"^獏_`Rk߻|ktҷ}3>)RS{ =A#A@#PHiڱs&,JHsrl޽㔔fffZ#++9o߮a[) c[4˓qxmk9wGƫpE\;L{31uҗw{/<>ӗ7Rn'NOzm٭"eR=S!\^"B! (ȨCO>JJ9ς-vI)))!Rlp6'B6DC@@@,B'XH-2JJYBy(Į]x)4YAR*0x >F@@@@htWJ*T*\!(dA-**Hi**AOҠA@@!){/Tϣ<t_{"R)5{)/Wix\^ր@$ʅN9ΤT5ʑȑL9dI(YD?KBEr    ^B! W[Z/oN)Y*kn۶F ) \Bk@@@@RJ{Zo3ڪd-[Nf'DJ-kJMJazdO}4bTJ    %B.rP={ѣGiȑ>Zƍ)11R%IJinN;:I'H)@@@@԰N)^Tn1jw=zБ#G|cÆ )$i@ȥ Yٙ*sJG9RQ "wA@@@ BJeI(+Wx␟ZI>|/GmSTJ(q*    B%DJYB32Tde,JB'^B_HS")F"ff:^zѱch̘1j| |\}]IHi๏?9xB",R]J4..('3=ضm·z@@@™@ȥ*Z/tӧҼ\ɱFnN._]zRΩB!{תN YL(4//;vR;[@8S-*JJ XJYFELEH h]>AJ96@T-o^ QJU4WUJҮ]R;[@8&X-wqeRVJ)heNTL i'4s m BJیjb6r ߋfj^)KΝ;1|sW    B!Ç'J139LkmF{n%J*KAeffB$\YB!#F$v/Bh6?%dF)b3O|,$~sJ}ml   aJ R:rT_slWC,R*NFnN[nQX>R)FB!)i#]0TMv ")6l3@@@@ , BJSGCiB15g;7Sԯ_oֽ{wU)С4'P?$TX   >eXJ'L*Q":6O.ttoRPc@J}g<@@@š@(4#s=n4TE22(g:h8[Td/ҰN+4@@@|# )E>M/"3fWyt4pԷ^    B!9Ҭ94cJ.AMRSTJ#<|0捡Ç*,Kkiي:: |A{H)@@@@(4` >%K8.eW4Ї @J;pv    ¢$zJD/L+W5Ъs'hȅ}WJ)    ]BQ)-.IW_;@WU t5zMc)"Hite@@@<%XD^u7?>IT7SJ)@@@@(    65e/T:"j )%DPHi#K #UһJzxS:f)MHH RG4R mB"JJB2zB''R*jDz'![@6B:eT*xy(ٮѣ=zFAÇqF5҈34@@@SZ[HQ6mTSH)@@@@(>)}J Q[oww2HiϞ=رcLIII*%͛7s4R9 ե -ФR^zQkk+HKKuV5J)2@@@@ȤJ|XK?>Ii޽UdeeY߾}҇FG,@@@@ RZ[Fo}Et[77d>"qJJ򬑟O;v1c@J    %B!5,ouniolRq t+^RGT\\LETTTHEE]vFI4@@@b@H&UI7jBz Mtvm;wӇ:::JJ9J*++ݻwSJJ 4@@@@(:|뀒o5Қ5 z4dAJʨ egJMFK<@@@@ RZURMF6ҵ,׬SRzqJTFZZf R(!)M쀒6Ӫʕ&)!{5to ={0|%E RZYBoq@UGu!k̕RNNEN%    QG RZQL?~5\rU]q&^VCgϚ/,(B vܩ.qB   1J RZ^L_ _nT+)4+6Vi>Y*:GhA@@@(,^{mVjZBlAJ6x~NN NwtD6PHiII^VeUdi}AV))mmm uV1b*8{(" )-.C/)K*iJZRI,={cǎz~ڤh-[(11RESm¢1K{YF+h ZcA͟_AgΈn=zhR*5\i&JHHvA@@@(p4~qh9_PNy4Ct%=J37nxHi%"N@@@ BJYJ1i9͙[)+%6mvA@@@(4"R!ժΞ]F͕R}>)V){TJ-q>   L RjR'   B!+N|jg-fF gkwtҒb*.*"B;wTW?x>    $mFeWhq).z4xp֧O蠲R*))Eq ڵK] )%3PHiiY2~be=]a' RZQ^bZF,eee*٣ćsjm    =PHiYy ~ZuU=Z⣏XJX8WJ+*XJEFYLYP%KɼDƖ    B!,]QI;)URU)!{uK%r9@ ]ҊTzzM}\Dc)6qʼRVTTҞ Ki8@@@@@ V /`L*MIkhuZXJ/ԥT]"*BZWy2|RXh73go׏De)]{=K)UKBrP*XLKJJi= ¹36UJiuMAt1XR^:FMZ_S˒Pcƌ ڜXh736b)qcm1KE"rQSA~>I~ʝdQA\&={V,Tb֭4|pH)@@@bRFosnuS;HźQ%RSSIb˖-)$ĩ@͖om<}"R:uѣ;vLIhJJ~)E.@ WJ"jng)IjR]DEF)6l4   XLEFoc<~AJw*FW܏شiPH)r@@@bRZUJo]tn;@J0ץT#543   w5)qtWHks?A_~%" mYJfR*: I,MNnB:݀6ϋ7e 9!ڶ_믈@3W8{c2d/Ri ;)TJ\^)իRaaG&krF۶AJ; Ç5r9Х,Of \}E R*xI(KXwF*3 i-J)>X}E :V)#+̵3Rڙs{WJkjxN(^XJ%RIiEE.Gt,.բhp'r9Y9)Z!RK74j!b*R$ǏQUU.UVjbZRwJR|Xߋ}>A Bj7/@3ח9"M] Rz&R))J."R1a"Hi(pl|"ȁ]JyDW_TӟCwˠ[ 9 _T[ ' |uG NJTRŕm4|8*` 9E}k&u hZLZ ]ndM%;[(XxO9wdIiH2W_KBf)"NyJHs,RHi(pL|"ȁj^~ӿg2l-%3iM[-KKoҟkm0CT,|C __勒_t}lF6`z >&WJo~'RZ]딾wtZ#2j5*)P*BZV)-*!?G#r 9_ҧ.,Mlj晚v6t|Io;}kn*|}?Ե6ݜэ2n~q6/Jz1țYߏ6Za{YۿRZRK`ZZ}U&C RZ^.U\u=ox1w@R|Fm$^[G)ݦ@5I;-M[GτKM)NgΜxi-vK/yy} @"vDkS [K=uKN#-~)d)~VѫkkVGf) &R)Rҝ;14R N|#ȁ@XJ鏹T4EDRjAJ}X;t%VLuq4KoWpZQ]F^YMW]YM}x+"96|) >L9@DN?ܩO؇x&N9 ҫ_vnr£6 WkԩSԥqx98ߧI5uaK;o}{|ߟC O]}޼TJmRz5WHb)]u789oF_!>{tl&~djϏLvjRzwasZۅkgɓԵ]+׾8ir))iw/\˲k|<g_80*|}ҿoڊ"׿{^UGWENԪW\I9-FEN+!@ @2 ]+H)_tZ%WZK`0_ד%Quu>UUn,sh׮4|xsoBƁc 9@ "\z~!" RzQBt @IU+kՐVѥ,+W*)<8NKi;)`1g1SR:bD r79~`U"_ȑ#.b |Lk4!]QI˗U%4hKi>ĉjl,UPbZbZHw螺#Fr90_D;OEpٛ*uܹs_{g0*|7l4z}j%\],. Z,YJ]Sss5MXMWQSSחѾ}i葝n@ga 9@ 96v{ f \p&~zGO>!!@ _M8ۦ<^{uWHh"e4oN 9NnӧOдicULD&5Є t~JIIt:p<Fr99գ43" %oJ 1#@ __ümyY*^5d/Bt. 鬙4`K3h*͛BgO3ZgQFF_\|(!r9(+M_KU(!3]M-SکPe-.]D\/_HK._;EBv3vo5R|3B r9t& RsHEHL)Bjha?oYK}^/W7uZ5ofr9@ "? v4N\UB^IWDOGߣG8'@J9@ r9PP0)RURҖIE\)5H?G*G&tflЇCr9@ ́|MJ-Z(#FGq!;uH)!r9@t:DJ}vEJ -RЩ6|?rHtӓO:Dc~N7_ 9@ @@^EJy>)4E ߳N4K)tMc f@ r9)}晝,Ut K9 .чr9@:rsGOe x.iZ j|?.Nh~}{H)5ԉ#r993A'!76 RAtп_r9@>GYDsi,GSS5P]]6?F}@J;=7 Gr999N YT_Mu|,̢VAJex@]r9c %LL'M+y>rf,!6RDC]ȿ˝ eqǍq$v}12a9FSqn˄ yfUwcʔ1T` ]E9KXSmHKx%B!*C]#ϕ}Ⱦd#ȶTT8 FSA(EyS{Ga>ok<~ GKp] !ii 3(>-~,/KEI|1RE"K҆ qeRuu&UUeeydP{{+t?|ҋ/:O YfאR8rzGxa> z+?o>#;>`uU.7or2˘7޼6wop^_>L?K=~f?|jWv;iovm*ƏmvC3gӳm}_8^8,.kȿKvK/.z]kU&1Q*o/yeKr|inMkUoj|^v,b<.m |\c<Ce?/KX Kn=6z|!VzC~8VxSަig1sv3O3S%/p?Sm'9=yqsd*'. Htt4%{[m۲ή7u9iďp. ' slSaX !{?OUneiHE~1~S=F}o؇.#[2{6?ǰۗ~9_"Ex [.%$sq\y赡)fи4~b&5dQ˔l2=̡si<3?-( iBZ-b!ԿcKjty1-...XYFW*Wʫ9}r~.Tm/[%Ѭ94cVMm4n94s&y}8fΣysi!ӒEtI!-kOKyp^.͛Csg;7m y~j_rtɲdi{<~sPTWrꇔP(Nԉ?DNOxU1ZJY\EJ2`R gbsU-_}e׏R.S*97\QLuqj)u%ךQL%$;9/Oފl筘o7r*"@bLJf1~Rjx >Ƃ=YJtw))[,jRSG ^ѵk^"*隫UJH+XH2 +YJWvWsDJ O]JХ-<.=pwoK"*)t4gn3Z5OqJibj[@ |tCcͲa҉2id4eo:KL"DJY hK"S%" Re,;DHWh^!BZj2ZB*a2YJR:/fNg)":y9Td!:;'1.YGB0gQ2*9"J@ED\R Ryb.gT!bʱ|* )g y94;{FM"S?2,R*bHDRfTIDZ8F3kD]Jgx,()a3#OΥ4s1ְ*i,e<_R iO׿omْ%BAR]Z]UJnSS-R%^TK^OPLCSzUFmghU%h CjlO4@R*__t1s44PB拟H#0RJU5ʘZ ZR-U9˗y{?yRj0JUT9RkNJb*opRzfѼZV^*WJ{Y*^)5~2~qzuwRM;nQRz5|,3h޼f1Z&W2?+,|lU!ج )˝TJ%IҹRIBR,B*UPeˋ,?m"ete\%URU\IV9a~?o ^6)eY6JeTw-R:]etl~TRe)6oW^rUt &z9eQ~Ծr*"%9x> 'K2\]J-zb>΢y\%}gLNRBω,\(RPR%R=J8Si\C*O "ܧZ*RMJXR2?RӥiB==qebX c!"i\ !Mc!M)TTsySx.r2ٳ."׿Fݮ(^@.k]ԋj|{Ʒ*Τ,"CˇC{-4on-rlj7_NVK"a|}(YSy*/ SgSoσNnbg~ DxG ٸ'y4G_PrIN{ZmD s}})}McrL!f^ߟ!my4՜g\C}H~={>9sN>NNwЩSh㟆8YL?I|hl;㣏飏:Ƈܳ}rj=#:~;~nZy{[OiV&mti1$J6qߝ<~D+=8~D8.6gN33̖N.Kcͩmyޟ1ۏ}ߤC/R wѝz: ̷G饗\¥$Er9@D|A#9FNÇs$&RDB%O>0^aop߄x Z{'j1\k[Eg?m99sOcӰaC\t1LC .@gIGDi8~|Z\ԗ߹!}KX/Ǻ8%,m6G-!ö^؛B4HB{\Say $0!bH]h ߵ}chg1i75HM~=6ppϿ˿])>^ۧ2TOs5ы+}QрA_-aT(IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/figures/share.png0000644000000000000000000010671114023111777017647 0ustar00rootrootPNG  IHDR4sRGBgAMA a pHYsttfx tEXtSoftwareGreenshot pvQ *2IDATx^wǕ6>}?:-[V@+Hd{޵$2Dple@CN#rarr2 0  9'3eے;o}àyܞէNy=2{}OWo%}Ok_froƷo}ҷ}wOz˔2,<k X6PBl 33uFcƌYfѲe({FyYV{O/_+or]w2o{*W9*ڍt-y6~y}z?T}ѽ/ =>tܹ{F]Xb}6'sS}^߹8wۨ_n޼Iƍ<D%[i%gT_~yg}F| }_y{}ѣGSٲekӦ 6MF}9/_SсC4aV>z I= 1t2ɡnsuP6u8:tμ |~ch؉4jTʝ1fΛO .iunڴi3mٲnljټy3A6m$<|}k7vs6nH ׯvZ5fZz#V")8߇W\)dŊB/_.$??_DǾe|lҥYd A/^,dѢEB.\(dBϟȼy2w\G̙CZfϞ-Ъ3g3fӧm\\著',uye*y*Emn ԩSi4i$ͥ'҄ hBƍرc)b_og'CAw 'A@?~}j6lf0 vdgP;0ۀnhӺ6u %7E5WA }/'e|F>6ֿ׮]W@W tvt:7_KBUk,7Xn2,J||p} >{Bfm[,7X\2.\Pr~LzwLkxOB:x ]zUЌò5W(W $@t Dtai4i&; hѲ|Zj Se' G m۶ a#iÉWoGDFfM(x Ph B7r8 t; 3  D3 &̎߉'m 41B8} 6涿~w N2"D}}M$` &Dݙ@:w4+ @H`"@`* ~S]ںNϚ$],fO ,X\3deȝ7b\-yuks'K,XϙBXUref{<رÑ3gΈ@d|~"B`< BhpfCC{1`86n"a0yhqrZz-mgG}vOQxS `!:>7t\ bK̈(ޕYn(&p0yl`1\f"]3.KH1lk6"7;p!: ;I9jgN4ˢOЗHȱDK$PcХɴAߚlBhX;t <$"lD8&"5یn7x"̏DD4ڇD@yhTtiZ:>e,b9.icEKrc薐tgdXzO}?@qtqt:%g ,YMOﲜa9rez~ !_|2Ϸ'rϜ  _ `AH F4v :Ei銕f:@Ν;i׮]c(Pcp& 8hqD]w@,@-BL:)5ZxIyd3t8åUhC8Pfd&t#~ { }o2 z5;8SIƲ.,䧊:D uCF:@D4a!t(a2-aޱ29@D4"LD*Ëέ-8dB6d9l:"^brM0rKlJVޛ4"->~CH]cr傒snnf9 CY._-3< 甁>9c1&0`$snD4pxʙ8OErzR/XŹ@6ݻ޽{ +">on 0vҹYKa%X T"AQ(| sXc8@s87Cwؠ9bcaJB'Dd)V0?XPT3A ̸kP+ܹo@X_; t΋z:0 4 qC# "<3 ñwA,ڠ?"L"%PW?ЈtX1=>?d9.9%GK,WX +~!2ez7ozsiՆn t2˅cy4IQ%G~ߐЅ 0s@Md9/B&XCC8Yri;s͜1ei5LങQpسg/۷/!8gEEKG//2 ٿ3`BT B#F'$X@*r )QN$b@b$cRHT T8 _%nnz NՎ8;ՠ/sFw>(fd1Q+$R4ܖЄاu]РOd|t8,@/D:hNegkOn'7CY;tSzά aBH a#g Q/I #6&XY"FdDK4!bɎH@<~`}rs2:7 6úa8p78 !4~,YKqȂh;hnS09r=ȱc?BG$`hK& "CSHGZH%AE(Qe۵KJ}؃3}~GwprA40agh9DY̘pb` "$p8*Dž8qN<)Bx? СD0C:''D :B7?,`1w[w/I[T`ED(wXvf^gNvrxWœ[B0!W}v4jd ME9U(&dH> - u7?JF GHIJBS^3nCG:'G$A/D8HL %}HDc e""2s!L&"Q:/)ʈN"@<D L8?x@BdPw 8 g8Ir\ :. Y, DȂ'b糓>rHLp)@<)`#2ؐ @< S qH`.u@ (ܰEH^h" E D. ^Ib&nD\dXTAhV3<]b 3}{ da}v+}t4}B# ցà({ǣ,]@s~:oBB9},Df|ΆVf6a bE$2I'' DɟC?W;G"$ApGl /hA{a>͛0W8mVIA_At )4`uCH@pbLE,ˏ'qC5ϯզD4vF:U[3y.~koWO)Oi>B%啞JOКJӺʏӦ*6,;YXIUϲ'}Ղ֫K{=U9Xv`²OiehYhQi`,($_* 2|Cd<]7wi @x$כ!;ӠEo}ɓpp ߌ8̩&gd@D b_/#|H,D8&"Fd#B8G[{wٿ~<8gYLy<|'rB9XmeRȲ(S1S.] qIN,+6Z['㴢'hsO|<>I=gLÞMIi>J<:Xd%Q1)sd8I_|K׽IbM nu,8~RĎe4*;j4fIw@D,amGC%Q"$PBFHA*t`$0; 㙰JEd ,ZGij]V-ʇX Q| =teS8(I4>w쓚@r"lPl e' YF,|Nvӈs`Yt8'\i,!0P.\T"&*gT52T*}^ xй:yR!(q2] fD/Gfmg,g2ZNf""M.o(#b[ 4OE c7xNb&xX^IA˞0`hB_~2e=L#wxHH:5#-)"%xGmn8e<<>,j[ϓ25;*4b~yiZw罚٫$Gc b3re-hZa8'CWNKR{atFH*y:5aC;UNj' ЗE/=yBcrx^^/xc,Tp JOвSDJCdإ`h%W4sD{ Y(WͨY3um49d hh* \,kަA}f47lQ\5 es ;X#l/p0[$Șsk\㹏8ޏٕ-u9fY] eOٴx5:ԫlCM 4`*Ax` ̜dHɕɰ抈epѦO0nNsvHTƲRg$"9 cY)㴲Byfh#;g)dV* O0U~(EUs<l\6TV^1OR Kb>S<|-@ag n I&pL<<ȹ80s:7)wz?nAgohA>Oua<8rgUm֘i>VGڎP&y#7紦y"a=T:XKC0J f NNtX ١N cA9*DVQfi1KLǭL+ Y?¡4VD<׏Vs1,~uพ`jBc/Gh_?z=13e\L@2sxAt$`(**5tGLo+נ$) >B (UĴL<" Z.ϐtK@&#+`:a/]F Ϧځk1Ѓ h0!X y8 u9|@F_gi_.[rH3 |Fye0}W%N/e @"RJ4OD:uAmEK'œP.a 8OgYJ!;|pjkIodger}8SO*,w 9~)};Y YlbY9XŹ+*,⼇yw✇~y0·7o6<\$ߕCK<pEoVmKF?C̷S?=k_b `—d2""y!Kڋk/@lGDJuDfaDGl`0J:nHmg3#)SBy&0ѹY<8C3!W /UH\9 E)@B?ROrSC >Je*r^%*p*Pr\hB1S9djH ^˜Kh@̀HeGr ͦi!`Q**Tfo0 '4|Mp9UtSad->᲻h : yP`&w~"ige& xxxa7ͰsKQ_N/mcThZU,+j7,ߴ}-w*Y²eKҚ+PA%aeZʲe!ˮ= 6ŨW,'l!.%:߷Eߧk1xx9a 0yx~:53 YFohnY+} .dfZۜۻ3)ͩ1Wd?2|8k`s\[ tf\<ZJC/eSl+e2RԐO1OM[-Cc16<ɲ<̃@MWP`$\BP-`@p<86W ԑZU İUFlЉld4/H8`!0B&$.|KAIp6pN]I}(ik_Zl+ "L?'" aJekFeC2bXDBG&Raj2/צԦ5,kmd̲ZB^!d5iO/Hp%;_ ^M[^s;Ԧu,kZV-.C^mHE# i3|04޼"؂)Б-ѡ`Ёl8[z8X @phfb:ZuUr֋ʃ T[abx':zomLXG AŊ* r@l\FtrFcE mRiNa.0á*dSAô2HP;dsfRxL;S"ã57BY!,X1al#d6қ fXHd4CF)OO7CS&mjL[YvtlLSQg[e`7y:htv!AOq@@&4JĠMcLa'lr':xaR8X7ET2&84?52cQ?R$^J-pj- h gTc#Zf \L?=M3ugSjI u#!Om:#Έ #N.0RDͷFWPO)!cw0B2Z2S*{;'urfi>Ӝ 96k\9zMr9}<4#eP8#6" D<<ˁH:?w52b:[!9I;uB^t|:Yβ,E͠KR\e"|&*ܫ,\ʟIͦKf93Z/ fӘYZ $la}oӈ>̉QP 4)3xL rz-S"o0 j5Nq$p EF kN3! ]lI[ЅwDrAe|’HzEOD8@;&z%K9BcRseM)4/n1,fԔ.kZJY)݉T8 '4\'dN׉l_#nm Xh5`%=\4}ɓxsb=?XHUNDS "\X@6*#ҊFd$ " 猔L>dO}PH?L 5(5ɿы,/j'o,K{B姼܏0 ^Ox>ʁ\(ʉ>j(r [S ],_9CS:t9}R/?>SܓtfczίhҌI4^ZJm..$ֶ@$)vќ~Hf11?2P<s==s]P Y.eCݠו04t p̑f.^v;ܯd?a)i%N=Nkı y.kCJ3U39)ԟou>0ł#-ɒԣ-TtB;hCr bwhAD2(2ZNfF2 ?B3u"ɔpzű}u$7nܠT 4DDp݇~%1$Nc uiŬj|3p34i4hX3u&M;,U5W< ?+a_3hP>5g9az3rJt^GkAN˻q5Mqk: d~!H$RXI@$R"c͇.?3e5wDFRg%bMLe_O 'KAYx <&ppL0p07/X8j ?FOAfi!r:m/%VB-ͭgbZm;x7ъg;)0ҨHk%ap@AԻ k}mX/M[/Kp;+onGk8>s.pAL]0u.RiA|6=B8P9BPњu'f4x0zͯJe2!+x"y5@7 f!"˜zxh ""Xk"Cp HqDQGQߜ14`8 n p` &A =Tf挥Ac&PN7}.8+{X_]|I|=:)0șdz`Вű&EJ:3A@P|94BT:4 Ww/qsfC3n$'m&1msm6Xu Id;(˜K_Noid$r~W 6h у~0{kNEgp/. 8TD&w$&". "*x "H"\W8"棏>Gy2oN4C^ .0(x('b1"t=a2=hg܀!XYL˙~'kZIcAqbs g&0?l>M7Lt~nc~8[Ahc8m믐_s6Dՙz=tbWL4%ǣ5`k@4pР [v8o?02N:e4s!e"be! eDK%"^$?  J,p`%~9aX6nիFǴkMY04pv;\œAݼ4bFf-.2Tu-y!fLE2e0y,y#A "H3h9(B-0 .s! %'ͥQD]L$Kiӣk0'lV0x!K_J 5, 9+ B6a?0tIMgә~ L\Nɛ=0/L'pS놛&/*=ÞEDn2ގ$z&PЀoGрi[&x~/aA1%UU J ODdʻ(Exb  3ႇ6F/8qrN伇 qC=,]VQp>=ߙP%5 Ac hX #t5}fR~&hFdt=_}pOY^漣M3uiZXcő3cxEh &HSF X!X3f84>2|Ӭ{ <IJF8U@"\;m#2CDZp+(Bs!X*":a%"ALw< ".sCĺLҎv4QO;]Оh#tg[A4X` X6P:m >-`Qv)@ٶ,w[m@iC ʿa3-~]yV [.i,l}[6`ml.aҪ֑g^[vg`yd;k X(]6Pvm1I5kHѴ֬]Kky9 xKrcA,K%GLIm'*]Fc; [ X(6PV-gիi5>z!<<0MA<8_)twm[6 8+ +?LxbK-XJ'/E,`mP X6PzljժbF2)@V.PTGS,eɫaZPz v X6`mrbuŋӒ%K)?_<8*#P%fR7nҀXKq{A l}X6`m 6M:t-[ZIW7sI3P@W-Ac&EY`;0ז/[ץOÇk׮_|a%:^_9v"f,]JWPM<\yDC {!ff`ki@_>-j׮ݸq>3k%:^_9p&.뀹o<< 8UJShߡ#<<\xzՀՀe^`ACjAOzNso%=:~*UDfa-OQq&ڼe m۶>cwߣq3и,Urq ,xՀՀ@<$Ul,x<XB4رvE򉻶ŭޣISy9|M9(GYh:6E_c9ûfx]ƒIG`|"rpPɁHV^pEuG 4rC~8G#U<ͺyY\|3Le7>peKW4X0a;6'~hd?Z };2Ǿ/o|!j<69ɥ[}gRr}ձ\생kP{-~Sܺ/Gusܺ^n%~}aÆ"cA¦xiݖ֑m_8xx_2a=>W "}ճ!*?)A8(r,@m g^#oB,>ϸF;?}>4PðĨ3cպ 85WrJ"]b]$cn V|i2cCгrA x@ҝA2RFԢ-@8:cwwaQF-RFLek{2H\WЂʚsuԢlmQ !ΓNݒM&>E={#?\ᣏ?-i-;+גWN=]kР=a?B)4a~}b H'F+~:G5pu@8`pژPMWh.XSy jf>&𱜚j_ :>_/ɂkW+D &XC9L! Fby=b0+i~R7NN"'R΃? e@ry,ONFƣ]wL< 2|\q~ V|}Qʨ+jdpu|Q%rm˴Wk /x]@;!qu̽G( [9&@@4?~fX ~ACzUͿ '<@s0uQ'JO b.%aL4)}T3W|P =JVңdm{<<yx8u\`I ;#mA|UdKxTiӉR\Hy֫Y % 0{M&lU5=A ~I܆X9vU0w!8o NOSNk+E4FV<`oa5,xH h% *W,^~#6l r!%xx*՟e3emYd4_J;xHsX X \ < .YI+VYL692f̘!~)mz㉢vYP KnO`Kf5`5`5ЗWlrT LآB "4i$G&OLGVя6Y@o|.^cڀ Olޮ];A ۷JuBsIA@b2 }I+Ԫׂ<$Z:[7 ܋6п6l_VRlegZtM-! Dwӎ6lEkڀ{+A[IW7ۨTy:U<ߩu¤ z1x 7mnC2`k k6PJ:vH̜9SJݰEνE)-ׂ{mym'emڀk@sΥ,ss#g0;] ,l%mC6`mڀ{j֬)?>-Xtz]YԬ:6nVhslCR{زڀkSڵy)Ӵxb!K,qYC=(cw 6$ې X6`mt@ݺu̙3l2lYUSN < т`JWmڀkSzwߥ+V8rJ|yU [\";ݜvذ [ذk "_>={ Zj<<4n/[;[XwmyH3p Zn3[̊Ձk /Cia7ng}F~z~Y0T-^ =@34@lɂ4T…7.z4X`C̒z "<,]AR zHxЀ- oexlDiXxVVV_ :{%"矋}+ xbzyh<9… ńQr(5$:2Б+k,xH8fdW+a5`5bwUU1={k-Ḍ<]^™K 8tۼC}^_ ⯴x 2tK\ 7dC*UyI4}L5{sD剅xx k!Yz0 JzWhg5`5bGɃ* дiyIY4kl{o? $hrV,xH3p 4H^w?QFy8zʝt ҠXFf'd%=:~yR >|LFӧϤ3 f :s`W[e+-;Ъ0S~FeRJtY }'rt3rgzG;/ߝBEFWYu.P ǂF'YY#yuؖ|sL`Drʡv#uCuy ^Z<_ . ]8&>1==I]hJxaߗ7 n޼II.xآ=֥\q_u,G[=r8ɭKrQ7WϭՉ/ɾ_' WNGr$8 ysʜ3aR*\miՆI$L}K'.t܎NZ s5B 6ϊ(Sk%WNS_k&𱜚j_ :>F?'彋_kצ'N%!/L&g/\b֩|W} a{yг皎98C; x+0~tﻖj84H!ɓ')9.C>p?פsOp^s6[\V}ϐ{'n],x[=zѢE,m~X 8<\1uCh _r3* ̙" &xlB= "$!B$ 6$L* ]xDy+F`Ĩ 9$r#C̐KG7cKBr]gX {yO-dSG)3_'O1,ˠG3s5([#?QzG)FS|>𣏕>ùgL?Oc5T1OV/ M&^zrUM,d /x(ょM[Ҋuɂh<A zQapk17D )gRd\ ]̑A iF s` kxvn"JA|-<^nKl5n /xg ` T읐:#`h=$8q P  ,}PA:} XMS.m H(Sf.:?ݚ o! !y6=uE;׵Y |4+xP@+ACÆ ( 2?eM[ ;< <{q{_5`j 1 >c4M&l@>Gû.:-hĬ>X÷WY X X $ >(J5x0/x8Q080hp͛,xJkRXJzt*[2 D84b_<@y~TY{e>8`%M:~ [ ahhF&<8y=xk6>-RXv… bQ}YIWzN4g9h @PV[!Qbzz6Pl4l0t JjuBsmzp'T _kJ ^ma [hJWkW+A[IW7[Dɡt#< \TƴtZ ,xH1`{u X(~x  h*C׷,xk X(e6&~P/oNH`QHY\B(̢rPSC<߸w)12!lcڀk ԯ_9BSNaJӦM2}t}6=֖ X()6PVMڷo A6Ρo< HLܥ˓fLNI΃gDE! 3*3 ()ma;k XH xyڳD d/t5я~û"A$9<G[؅0J yFz F**6xk X()6Pz5ڽ{חH>}իtWԧwoݻՋG_-)B_t/jg'LZęiiڀkIvM /dm$QN</pyz֫W<(„ L8rss֭[TL9IԱSp C=zZd*^[z[דL?+~uVRci8+*#/b@/K}ӠA:t I&ɓ80`CŠOu%ٺwšg;?~N7n%:^_9vҮ];7?b@/K}ӰaC:|L"Gѓ AyXl6l&j{QĺCC폭Z+ =RUq!} cpȑ#xaԩ pi6laCƗ,pH h𰒝ܭf%:^9}VҤ7A8OWO;kO[o/3ޅrX`V;_h(8c\&'O?3geEA玠ZqlgPNj9>|n.ԢlmQ K)w~y!̃xTӂ:X=owzM<N˺+'Nj_k:m>;jXIdnر4n80rn)<$Iks6Plš;hG4U+) Bϱv… bQ}YIWz>x3f-7n-L`gLT[6`mڀ{v5{m [6`m 1g ڀkJ 3Lʉl6x{[۷6`m@ࡖHjpimxӱ6`m^\+ۡزڀkⵁ89B0iCJۆjmڀk $\&2 گkⷁ;߃+ՙk 6`Mx  X6`m . <`a22be_< X6 j@N?&)x\cO~${''Ǟ=_~_?KTDVk֤Z/Ԧjצ,u^xj?OUUURJ U}ϳѯy+3**TjuZUYj}kԭKu֣(+uW=_U^pPJU+/2>&ޭT߫b**Vl]*Q|^U.Aps8_ԓDLQ5G=:3ۆm>sUٮ>}+ms xtۓSf\E7tnEcmStΡ#>~geQ?+O#,m+ʾ_uJ}6(}L]kT;Y~*;6wR֙h=dr;cnB?t1̴gwٖu}]}Ν;=KrCֶxJ(xx;;U$NH]ӌi%4{2l-ZWU6[hs.]TDE{О={i޽v- }ںmm޲6lL6l7j 6l miBھs{}{>%x~V?QXH--[xm/p9{Oys}9t#z~5x6޻ˉ{o2o^bm\>g?Sn.'f+o3s) [ eɿ)v,,%x>rsQ=CPW=p Bp9DyP.UA}yd-ޑͼ-e }s/}-`Y9\ ::;^헂eh. 6C)bsL +p\Fmz~~wQ 'ʇrmHإ#܆vmཹ=lu|KOGo޲ 6__mxjk*ȚuT`Ȫ5rD{-}Ane;w7 nօ} sdlWmR <6/D)Omm /Gm8mmO% F;Rm\\ [+(.K!Y;wvmzt@AODߋlC2w͊uv&YG,Og۵\+lQkyo߮wlǵ[ޔͯgrۈ̶%`Pvt}/ڰpOMJm;~ѓ~?ٿ/CBUiԥ[wԙwL;u;zR^}O^C=1FIFQh^|ر4nx0aM8Əce?pӏM]N,Y]{RGڻ??:b L} |M|nԲ'3woN7j۩;܃Sc^,xuҳ/u_ O]{944g$ ο`IXG}#}'3%owP}G!-umߡmy,j֦eu؞ni')~y7ox֎tָF q}{jڲ-5iцC"o8{VwX ~ù>Gb)t\94ߧީkwصv'uЁ]Ǯ\?t@}uzd8ґdubaEЕx/~w-󻷣f,8:2 iE[ߟ5?6ޟl态i K~l=ؖ=2l^IyڊE,o@9Ym\Zv67˯7?֘[,y FS>Ir[[ڲt ;Vv[D[ ~d l=z-ꦽ|߮# S;-uzHq6ҝL}h+RqU6Кo. =?nq\ǂ j D,x+a/\^.+7Nhx<܇r0,n#njcHw QN\As_ym-nن6Ѷl%F3Եlkq]!8ha/lOU6jLaymz =`w7ػ}iWMNsE5kϕ pA[lm n?wփh,ye{'٦ǡ ×嶍r;hzxoכ_=;_/tm3!>(۾;п.Q{諅)ԨمpcW\2ePS|LBڦw Ó<ɪ4z?xMv2l$X5KLXpgXx4)ĝ :Ǿ{r#d0n(:|2x 'm8 $ 1r#p87FT~~oOÑw.9:C~ x}sĝ wDѩPu|O^]ྪl:~HV:1t‚ `0J:C Δu )A78` Ш0@h,4+.`׸AtlyhAmΝ8l#` <`Ɩu;&޹[) `tH D8> !C;4~ G~ė3#XX8x|Gv± 6 7;T@ j)P,tN_vJJ/W_<_Fo0|mҸw 2'c-@+__A3a "4pxU___࠿0`fa-" +_KW8dIuG.@uG;g6%Y<Xl/-H6,th~ j8|,]3nc\F+W-/W'3c.b-D< hֆ `7u@Ьсi+@w:N2 wjNA=4S5@B!o6/؊hv9!y@ /a4GX"AtB`_Щ9t ,.)H`IBQREKEG~iFC4-@؈<b\_?EBRǢTz' sᛠn?xWBaH2gNpc'E)ZD2Ho!tu+~_P-v欷pC  ͌Bw~>hS&0W6}[`RD8Hi ݰ:t`G1(/o !0#1%`G|803A0v"#FfCag"u?d iD2{b&eG Sڴh׊QC}6d}:{a'uQ,i x饗([I_1ڿ|]t` ~ˈ?v"2xxrbe#Ά<ň˸qApFN;;/PD0 ;0 U#d> @_C^ւ+@o 48|?hbpHL {pc#Qہ0e᫃;L/~CNA|Qy:"_^ ;KLЛd} ;0E^F_݈?KL:L|m9P(p@ʼ A>^  2_cy)wN=B/+P 8@pv? tY@y9.xXt/c"A`.dN`d6?;3QtV3z v6 =SAt`< fN*'W\/r25 &2``6/6[tx,n]BhwoaI '7!E| \'3`BB~ȺyCuʑL3ڲ`+Td%eXA휜3̉K0ԉdQ\O3Ca0 ׅw]#:hӟ}au? x0oʏj`8h!D^^H'F(6k֌2g[B0ab#9rTre9v48.z,9{Ξ@/^K/ӕWڵk,u`]y8/_^"Y.c8Wɕ+VC˹Uy/-_* )[&<}xa-Aw"޸^\{Se@PF=r_Iqu^׋<&m [wstz6EէG]nʺ5U6qE:"\.|\+YA٨7O]m']Շү҇ԃgiצ`+69zնnڹcFYB\_D;4)QV~e=m\sm'M]F0-:k:2Cfi{ݦT[2ۓy}mۂ&QVf[1ڒV} E¦oޤ,_}wo>z'gU_M muF\{נK6ڕk_G&1rkW°a7 zMUqphڴ)eeeQw^G{?k_fro }o_b[Ӣù|}""tӁK=oSmNBC9/CS^? }?}8sutl1|}ѯֹ='uͨGY~.([eݺؽm͠6&ۧԱ eH>6[TAF'Uo}ېoح]EʨY۵Y:y}cf݄3lofkiϢ=0M,{~(D_^:69ڞmS}~Ko݆k¾mߛ}}F Z*5lؐ233pիsulpC<IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/figures/shell-config-cmenu.png0000644000000000000000000007104314023111777022223 0ustar00rootrootPNG  IHDRw'sRGBgAMA a pHYsttfxtEXtSoftwareGreenshot XnqIDATx^ՙ?{޳_ox#clㄣ^ڋm0&I(XD0Ia`$P P@i$Fyl#󫧪rߪU9nV[UuQ;N(hx>!+9r䨯t`xI'IlڴI((((о ( %S-GZlS?~l޼Yxm <x XO2m f&>x<(9$̝wӥ؉Z`GA<x8h_gÝ^c7o  xw\!4x<_+/-njh\x2cҝrp邶)e2'd`'?]c_ăxX8l{yٶ)zI3v!;Mnh\&~6=岠kMo|Yv,)~ |M}DyʳOZFMb:F^n8Ƀp}5 wC _mNynw_ڻIjZ/տ4Ou, V3V>{Ⱦ僽7]ȎgGOXx<8ۂud{ron .{½dnSѸpWd'Do?xʭ[V=Ui[ w|a=Wlw^ykyuz:FlYMy Sո]g>WhVx<8W7mC2w[&^pF&O{!uƣq(D}}lW6OMk-쿭f\NͧR9N6Y۵̾ɿkɵZ׮kƣq63ɭw{WVl]#|SrȚW6IYq#3 HW+|uq;iRHu j#]1c>>a/_~ǻe?c4oNePZNyY=odαed?:\p2esnK]KeO| me鲕vo]h\^ʋdDOf٠Em߯}d̈́uMWXmXc7vxwN^ϖM}49rt7epW5yn t׍ iYoA~3wJLA0a8cE=ի׆^jy /<=ƂV,m?qʛrk9DE¬WѣvQhSv5({w*{}޿߽)i<\t^jڦgb?k8pwwZp7Wu߶Ά w'H3n_`kwf7r;p4ä`ŌG}9  N|c X/f{HE8-/@;<0{ay#2}rsWcn'{OoCso w\jLa* =y%w۹?HTpgeZLӏnwWg w#]՛)?R;YN댔m#3X m#?m1 aͅ=~l8XO7&vIc6,8q]z=5ހ"{~߮㟧q7Z2wQ9yL]ꙟ @ioMԫҫna]xy3Vg;wfZv\??/+z3nv$sgǫ9kĴul.mm_io:VfX<波'v[_O⏊K;v,zN/x:nўcAZ~\P\4Hq3?Z3'YxrAroEN!vYr~}wKCsSh\*ܭ4N?*Ϝq<+w?\5g ԹkŴ_RGLvĜc33Lc!uIǮ1N=!Z0pNP!iŊU288(:~Ӌnk|Jn}paVSXٱcGqg1)dpgKnkŴ< ween w/.\/ WoE[u[emfywˠ\.)ߘs b|HN1Txt_;w_֊_̪ᴭt}hps c1&77jX!K֑gUO%F_1;Ay_[}Ac y@[ge. I[nw<.L{I&>Vvbg9tnW>-3NuݿgzUwxآǝ-}G><֮nL|v9Ky]yNnO:p4 ޶ʞ=|eAyk {NWO{;6swC-_@嬩:9r`_90[}zW4b?WX`0W%Z pO%_1m%9wv x!RW[_12?b.mۯH?x}FyJ<TkKyMMq<9k~D+~w_~S/οBFt;G&ZY,;WY7(Ew)mKw&~Mupw|psveAޢusd".1ՙv|b0WV]~|4jkhm~mqmy4EGL[z$Ιx1?C.kk`syz=J)~9z,9ml0_2{hVx`x &y)qe;Dž;wnf4uw玏6Ov3OWyĴ<̝.Mfw,\;Kv"^@0?4++r=˪Εs>aAys+uק ga]oo˩Smj֮ȶNR&Tpާ#ǣھٱGakVvFht}Zyѩ^1Gy9EcCchX_qcנh^հ{ 8-Zl&4 űkzS|Vh<_Nn%f*`ygř84˝CSnYkYVV^]-S>+SNGnQh<kEx}}pt%sW ϕs+iFOe[s .k>vKz/*܍ynr[E㨶?7xue3_-9SR1G'0~~#{z.qۯc ̙^ |F{k {.Jak5=Ʃg~>D+fEdAyŕ$+Ct;fy/ԞƱpNѸ9TZ{ʨSQ_WCѸL|v;{rf1-V}rx(92d= fo])}4dˎ\3zJ W͒;^B+<@EeWf.cnb҅_mw}/,ܞƣqSZ=2g#rzD=#Ng*yG_z'W'#oZۿRuy' mU՞oG27H22ʪ9_u' 뷮D wi躷M9h͒BT:>JwnD/%ƽ|+ӗ<>o\w2dʴ2̊GrL!j3 +Uy˪)o^pطƣqˆw>`./ghW" =ee%V 8v_pl7OxYeHZ?6g<2y2b~Ѹ+/>+K,)K+\ [^[ei}WWy]ko}8RV|Opz~j;)A<஭Ѫ)߿ȑ#dJt?F0b?<S[GPeK. 'exw%]7^ꓞnN}MGy_ w{-eDćsņ0gTwdgF] *7޽[Rigio}{=eY9xy X<(QEBܚo@z;)ypjqqڬeLys90YI6@ӟ@ooo S՗g[hT]ve,SeT捬7v?.oYA<@c<\l'.r9f;ܒ2^$Uz6x`hm7m|–K}F1 w;wlwGMuڝoQUqZ,Sk@g/pט 'ktxnE%;dE|0f\ OtU X+{,\W~5[gJQ{Oܭ]6c"gt+gZvƔJ[3.YkN1ǔ3,;C}:۪̺\umWV6,˲iՁ~p?dpl]]BNwRR> l`YUanpXг-1 wL-3쿽M>t\}O'k=`{nlw|@( wkb+sj' dL2w6i*x.|GcnՒL t3' nL;FfTߟ!c ڧg{{fmǼwxRgLÝMI w:רU/t]  k7n X7b8q;w] K JےJ;RI\]]re2ɂcdth9ƂI&9W{_n/W1:teYeYxn,UZr͝MIϹwlݥyK翃ɺU^g QY7o/ <7De2y%/ VcqTEo[3yi pgի)<Շ:V;ݒxeqn撝Vpi)e4P@nL?Qۘ(-N_je\=F.}Oǽg/pI'uƄ]ـ;){pp A<@=]tB. wK]yOnٲe,;)ݵ6ebLHb-w/XEw wK,2.ɂ+z<(fN+w冻ŋKˁܑ#s(rY.#eEwJyx@*{E2wpT[6pGA< YV,B˲/..wme(((P@ w1(((Pl w, *dm"G@@h8f ef-e]wc"A@@(]4n;Dˬ@m"G@@h;\vs w]HPPP@^p5}9֛Q+PPP}- w-(]HPPP@.plp7ת,]MD(((@pk^*wc"A@@(MV얨DD(((> wqw3D(((PN w/[B殜bT(((W cPEO(((T aܽbU*]9ŨPPP@pl!{un*]'Q:I>ށN3cEU cc]4+t=sCC=簞>f0TA]45 J36"첺ǜU+CvS`@zr1+re92vM<.Bp7o*mwRy0*'ޞj/>S/n_7ډ; .ns>jYq?n>܁T45J.b<(Q '8y>osӕզ wqV0s ! @F{[+X vvંՎ7 Uܵ!OXU-6SW @rlQ=vҒXPH d9;זo> Z!s+*ۿlܸQV^MA;iI,(?˦Md۶m{nٻw۷OEА af98f 첥R*[w*N¡Cȑ4%z뱞وmf9gP+P62n΅[w֮/򗿼g? @<`1:p=P)P:aܭ*FV.9rDlA @9=Ǹ])j Wlpl![hY(?Yk4p=P)P6 2:Zp.;"ӟ(hJ=eb/@t -wK/'%7 ]]]r<ܧ?GclZ}}zw Hou^Ϥ.ڒl59oͧ߉G@ot.ڧR)P6Y-ۢN+JκXn8ǪY;Gy̭:Y썝=s<5l^nbF_O,`?)m R۰2pg(T݁t(( Cp7`A]Ti%>X}kw}k$s-RpX}z=sD☭N/ MسeK gO3.9~t{|mnwX9{L}Evߺo#S1Q15c32w}f4 !(b ׷]2k~O[O%:Y(MYz8j˩I&'^V,m)e}1[З[!F$}#Fg?Y߮165JTiUNo'A~u0%z;oErBYӫM?KO8}^m/ūc<1 =;|K.?n]]wWF$x? I;ˣA߿OwwOx9UV° 5dqqjqp-w#:|ķDB^BE2ww8pHOԈ9KmaC^oej>pw#GG{+o < ~?lMgܝ)q%r}-p}LkYv۫,>q$m6Fg٦* F U;zapgtV22ch^pY̿]_3,'Z@=93W0v}]ԓOٳg]f ;d-jqg׭ZU1w'w/VFtkX2im,;͂.nmVTe@=V=wI#O;yDJ,(bZcvsQRqUk̝l ;wZe\3:GMe56^3?Q2R(  7uw< ?8^5ڔF= w˔k"4Y JkO3j/↊ǽG۸ QU;%JyȂ0 F\-W߳=4JF=yQPur#~ڎvGկ8mzemW0jwgХк1^jKJ]6to-7:w{Q7T߄k_w:ˏ}XGDp7.U-Cאծ[bGO;o7߲lu9(8#WNea.Bp7cX.۷  @9=Pv+!#^ &?njdWlpl[  @9=eb&*`pF w]+2w֭o;knJA_c\ub@F+ܵ$Iڵ4.wX}@M+ tE_,z4Fک (ܽ2}t8qbL4IE{e…ecY,?N5FNUpT;wsPSۼynq"ꗣvmANiz6Y~yG4F-@y(_$F (~>: k޴%T֯(k׭. [+,_'K#nܥ1'4jQʣ@я_'1H;7S^~ٳgڵ[֮]*V+VY@\^@}w)] 2`TG(PcF bp3w wUnǎjPy睕x2y2oޛ2g+hb.8AU(P~=rQ@wr| 4YQ#~&gZN]dG*q~ǵOw(h;}@ᨽ%}wtwuKXꁛRN`KSlBQǍD@]8js-sSgMu$p&#a)w2; Wo{$'=nN3x1U[B< ؂ۢڙ.]:oku& @ ,XsVck;ڪuj.8y* pPLklH^_rsΡ50S̜B-@(3+|'QԿkR'<*o՟L2P G;.G; `N^1@:Bg\eYN2ro,SZpܵ}@Y͚7: U˨I.S :TP 36WܢSpdV]ݳط,kR'O/y,SQQzQ =Pn>^bekzūh*X, 6'@9(#܅nM]嚵*!ծa;b¤4!.:KrpDTpWi d(pWZs30hWvBr(w`ٰaˢEKd޼7eΜWdѢ2 288h u۷OҖŃ2CK ܇wٝUFvZ#HmSP}(_D(w{-\|q+O<,_ sAǐ@wcg+wW6͚5+T͛'/+;ள FY(:=,s>(P$X嚻"XQ )L P AAhE;hùeY]\st! VQ/q ;2wV @^ ^H;(Ю , ܵ7 J@X * w @(:=&O7ݡ@;馣CtG'V3Zz2I`(\s%A0T6ӲjHoB] zBw]˦;He;CEPpgg{e Af=c̝pu9 Hr1zJs#"n]cWgYV{jH/"- 4JkhP FȒogߙ< wD]Ecjpq؁ w]ڞ!@k(7ܵV[zG;@&+5YpCS: Z)ܽ8yѧmx~?E@]E( Qߌe˯!9zhËi_ 4NkhP R8z>: G6h?ڟ[I`; @ƹQ2Ý.j/ׯK[o%˖-7Z6dۇS(Z;வw@L8 +WGyD^{)S]weCpׁfdȥT wzطoڵ[w;dŊաtrYhBy2kK2 ~N&箠7<־}XҕŃ2CK G uٝUFv:%HmSP}09ݞ={_ɓ'?.?<3Oʣ>*SNnsp׾!2H wwnǎAٶmlٲ* ro.X(!/Y߾8k.pܥuQ.2}gC]ٳgc=&ӦM|[oU{9k2/pپdQ@Nm޼Y|g^+sKveg֮]*WUՀU|J2Kc |(P Lŋ%ؙ3gENNOޚS{퓲L{-Ȓ%KbX(Q`X (͛7<]VZeSL >EsTE(&~m۶68=Θ1)}MzSoե?rwXl<2w1a@6md-nݻw޽{}%3|_~zcpr&'QP qpoЦK v۲eK9xz^uVnҤIrKookXG-wݾyXiZڶC|=1DvpkM. 总\sיF, On4 vo {z=O6 {0kcEv.rQ(s= d;Vٸ>;kn:;c` A.hQӥY}dʎ;w0!+Er0܉l<&"0fnwYk~p< NQ8{ꩧd…6̹`W wz׬^پ3wN+9Cdz,8պ )[| ^W C˩ x1 s#}}Fnh:(B[u5˝cf#O i.~2H];மI(Y3wh,OۿJᅺÇY:/S{Z\S8ԋs;J]|ww-! 5_YBQD^  5מ \epx5 )}UBײō9}k:J BW]nXր;ஜfT( d;2YBog5uz4?5vn+ B `KΗ,^ SW,`FBpP6̗u^TZbTI:Y]g4@.܅# ĖaƓU]XO m|*4k:V>NW yc[n>eŊ2aN_k?~xV2B@ᅯ(.zF?}K1F%ꁛ̦Ru3w)ڏ~Rf w&w-"CXw=m8pܥ2 QpNn`Q'wjfNus7k,\7~ƍ(bLqI˹\p{%b̛ JLk k4jKK.ina_'wsƈmpN3n+WXwcvDڹyNhۿ`d{]ĵp!#>Aaau\^f˪%C"ePFɲ.n u_u81殮nVGrwN"C*0\S8_ПSs!OhxެѬ /`g۲Y6s¹-pAOuA@pZu2umwWzzV+ɋlCo0q9=ЯU$uۯs-Gw]ٌΖ0anc⩧uIO  r5 W g-];ysk4kK/϶e ~WdQNjU6y쾤=⺴ൃ$|n /֮>|9z7ʹ9;nG5;P w.3*u s7t;~\ʚ5kb|bIwܵIpaȦ!RL3s PrS OS8kv)7o}aYvݫ]cIцVp5u@pt]mdpW]6mgז=+w](R|(PG Ah&p}r9rHi2sIuO$zmPq w]E( QY2׬k?/ho&k(S.ZF w3^3i>lËLT Nk:TQP1R: CQo 4NkhP`X˲*p׮3C\((w (MVpT*[wl۟|܇ c\rޣsw|w/>Vn}t޽;o۹]1Q/,ѿPa dQ#GDŪmz߸뿡"|9>&%/tAw][P| v)K9e//~E8U.L|9/ˏ7r#'pP3B `;]c@Hw,O<];8/o_:E.uw_K엧)?2j[>)q_<mwE=6Chp0s0 @pwr,_|d̓W W\7/~CYjwx#2jX $+~FVYjm_5wE%v+tcF;.u P ÁfL>B%leNfO;Yy}h֡ ɝ|;k׮H:gERWbER(ļE=/ؗNq%7|4Lrmc̝ x8O|?W|Ȗ[|mw@;@&+v)nټu~W&/^ z?9Eo+|Ϗ9ߔUkVU5t Rd-ES +ܭݰVW',ۿVoo۞MrU(71ȒK;#娄T\F+` wkV򝫾$?32kt9rl^wx98(sO/.H#5|_n_o(m;cPP xn9zv'O+1P.~t/:Mܽoޑ箕/]!gokmg~iZpܵڃpg\qg9'_19ڏȹw~S6\#|9?V9k]klqȸo+Vw:I w]'@[(V^-ka\9/_oW,Y? vO̻Wle\;Ⴟo]%=gZצ>AaP)` w+W#S_M~ĉ Nzvy'k?Y;|Ln%٨6=o8E۫~7d|}v@hy߂upմl˧w]!J(P& w b[ >bիI?5ںeX}.|'ry7b.7KA ͳomti-T@27\3w 5QrQ -_\Kޖ{KNէ%>l?6pG ^{Myȶsw<ܥʆ wU(pwAYlYbyrΗS/u'/|ןy'du~a/ց;2mXuCK1mGe.sե%|Zf'=S~Ip}M|1mi;=H(A w eK,W*3ΐg_xF{O2G.\(K.5f $S]VT0 \s绮`1wq^}@^W٧󺻻Gz=@c5Y>\"I?:::fp1fg(. ;f\2wvS0pˆ\Τ L݆uND-v_(_sW <zĹle)1xWM/T>U3CăR&_h?p׮Tqw]ޞ=@: y<,Al(`pܙ:(9*(ISuo40i:(P;8n%R(]c'2qQ=p"Q@)ud3Thp% t]g?GF+w  @#FQ" @#FQ;<(d;ɖ;@2wxP w]#E(d @&[P@F*wm tP;dށ|lN?!棘@˫vB~78Kq=k:Zflikc՟CҀv[Т7(F͟"k:\.l5t^fv};.wS @w2wyПqͷnE]hyԗAr{ֿ?/դ,eX/TK"³kЗގqc#N#XyJז姾`v9FÀ;&~(wb-B*huW.?=~ j=}[yg`ɒjW@g̞VǛUؾ"6js篔<6a. i! hn;{Qp #.yDg0f{'8 |?mFac,P>aEPa&CLq5گfqy6<3>pg'`+u @\u,xw̏*l }V[hJ"#qc ]|[[ ʟfi fmxp_\ny׭gNfN_/}.7m\^<K7ݣ=j1~ZX(UL^!j;f713ceyyItphҶoY6AbYjQ#sWt? Np&"Ⱦ(VS|w(MV&[ Qŀ;$Vf(P;8n-n`/w\&wO(]b @H@h];0;,pQ w"@2+we7cCTki!((pW33(]Qf8Q w]1K(P`O@ؔQ\ wOFpܵ'JpW)f(R;஥sD wvS@~#4``D1NR:B2]w̈́;Q(3]GweRwo˲[TAz-BcN;!ƢQ@x@&l˲ncv&͟] -;Lǒ,*wu pupɞ6XR fX0V2|u}e\Q ۷Oe޽׺m244$vDY]7<:`& -^'.ro;t tNd6PWq'=ޤݲ [̹pg\ L]d\zE䬜=n릌)X]K(PLGpW] x>ľ)$Q(,fJDN w];XP#(+u$FNsPrM QKV=&c""(wE)1@J5.1s]' GwmhKBBr+ܕ{~ Zk:N㦜@S;}ɡCT£PO ' _<η#Foن?qopWc@n nIC(Ц $e9g-\p\2qDyd6ؑ<ݙ PQoCK @5w/~sꪫon!*,r%@(:=R@ .]s5rwUN˲,r@ *Pt8*zD5(եW]>}z5co~lWI]aG+Pt8*zMp:D&+P[\s&۔P\ 6F _g[UR_'vɌ&QpngϞrkp55˲,vQ  w6Q pl`Qz_RL`O)JU@Z&+ .{$<8,dx(J\w)fK!UQD =s[/_5ןxǿ_ ߄QoYY.]JpN,2d9wqCE D(rLK(zSQ d9;T( @?k9g]=wuܥ((((P$" @;,(((%R+d2@@@ HDPPPPP((((P"M&CA@@@ @J4 PPPR{ GK=^(((z@Kz/PGށfȍEuJO0P򆻼k~((pW 5+6`5POwM8y?ڏ.x@VlH?|Uhņ?x/qFeH.zA,kD=@cf<1:$65PPP JX;se/UANyf9IĤ+̼p5Zq"E@@0W[jmws"p͛氬(J;oKk7⚻j݌וq:˰UMB5nb󃄚(((P$;2)2 qѨ _T&ϳ;@eJ==;5)VFj0G$ig0ITA@@02wXPPP^`d,UPPPP wp > 4((((E$f(((+[> 4((((E$f(((+[> 4((((E$f(((+[> 4((((E$f(((+[> 4((((E$f(((+[> 4((((E$f(((+[> 4((((E$f(((+[> 4((((VqpAHTA@@@Hr6B殎C>8h`[^tEbڤ]SMڢ i̝NnY]Yn]o$[nAٵkX2K ]>#6 &UgmZ2? @')vZpKS۰ql޲.۷o;wʞ={d߾}f.!Z˲m=}ӎ[yWc۶mHo7qRګO;VulT+:wu6өEL;՘z&,{Ӫ6yV1cmļWs8i9ƱkSŝ$(m@Znй[zNeXֹP`ݻw`~y9ÝX\`A~xWp~Z{ m(m^JŻ_LNORQčhVqhӞ@5{UO|kW gmXM(((`p wެCw<pmDfBx,+zTvWT,Q!Q0P'Sob n)d4= NUe>dLXڋ^bc18IPPH`2Ҋ;+Vok܌{޽{Аlذ1]`pKOH ほF `1e@ΗY4%-zO?8""gliK!A{?[' @)[4teL w;}܉7O5vEN}:ϹXR.آd*{K3ww!8͐ O5v]=}Gx-V;1噹KAmtR'@ Xc;q]USӢkL,bCNZ2W(kzlP];0% Tƣ݇Ɯ(-ѷ7!цw30g<`˼-}&.ʼ$uG|׻[w=fUPPM &"H.O/O9v+V^cKSlÝATA(P:ȖE((Б 2w6qν.mY҆ wm8)(С wV$mpfB8(@Zn!sfa(((pg0GYD2h*((((Y> 4((((E$f(((+[> 4((((E$f(((+[> 4((((E$f(((+[> 4((((E$f(((+[> 4((((xQ"ATA@@@P^QnI2w* x* xv@SHKKG@@@(ePPP  D E(3E((((`pg UPPPP( wE)D@@@;(((EQ+L' (D@@@(]Qf8QPPP@@$ @Q2Sĉ((( w"QPPPpW"N@@@0Ppx<jpp߾}/Zˉ KKG\Em$mZ(((( d᫖]'=<wҝ s05xpiIhF'^Nx<);<(Mf|#a|x<xu;nX7?A|~X[drQJl]棱L;O>y5?4ıUUM:p?}1q@9"䬁&pe6JV_Tb4P8P}Ug?3iCb>`8U}Ug2%د k0ߞOioc>45\`6 =?8 qe>;?tiIhk\f>;(\ۻwPA`>3^o+I=77O zݻ) @Ms]49k\9L3僻KICM(\sGVx g3-vtuuUˈkx4Ku 8 L4}>\+#<gNkn]<mq%eC.!dƒPчvȾZ/ƍqeۀ;. A?apsNiܨlώw|QS(~i`y1_@+gl7ض{j+ /˲YS<rÇeڵSf].v!SB1M3giXu\fSXT45e>l]- 7'ugLq<6K.?ֳm c/w^ b\X8;]US0fmsT`[`/e|R'A& )gHW$9Pq*%.=*Wچlh8h ^m.Sf oL}o\^un[u˵pG=M9*.C1MӭlӘ>N)j|ZF}P(<&n-F̝W_>;`heN3ikU ˜̷Uu-Zլ#pI Y<\XzO,#1MiHlǪu,8am_ğ&73d.=>z{ Fw<j;l}oiivd*Pߢ%Y#c@<0q!Yre[ 7$_S_#'Bnj6Ʀi1I؂I޹tUG1}Wu]گ\}/b4QzGpIk)`xk,H(4 棽p%Y'u2%ɔ;\XdPAc.3kh_ki#n; 9{@xbJ4P},2b]'v ,<\xᅲqFk_h%g TWWu68XǞrȑ6vf>Ń2C˒p9q{}迸Hد5^x cǎ͛ %_ TWWu6!A?'e˯YDžK |5P]U_e6JVYT\wuvfI)ji|;^Og'},-%_ TW7Kc>xxy+d'o?hxp;ef͚%wh0@h 4@h`)yr3wb݃ `@h . ʝcTN->ch0@h 4@Wjk\s30L@h 4TOwwM;u<44@hK5}S? 4@]_1ݿ @h 4Н0w/ 44@h;5p,D7@h ( `TREh 42 o|֎i*W`yE' g4Gݯ6 h 4@34ep;}d4+>t,_cGe_477xmW1x@=U E64. \|/\Stގi*W%U;frn4F g^V~^wkge4Xu_yO>!/D~U~WoǪϹ;Ͻ|Gt*M?%U{ _W}ByMţc5w6}u-#[?'{Ve eKle/͏KO%Ow?\E*9KV_/i7n $AeE7(~"K783Fۘyr8Ko}e,KE^؊̇mST7p:Wݾ?ϲmۘ節]ɭ<'{K7w^Iv>p=1s5OSO]wl}xOc_1nc8xN2swd?zM>8t/_Km.s = in&̐4iE;ϼ~/|aLcW3_u͚+U@-} -25LVLTYs/?rF.nSjhx?}%bޔSPmcsݙcjQ\hRE;96dƘ;Vv>MjS^Ssf>ŏ  @#ջ+= Ung_9ꚨ?VT2eg|M+z;ߖ?Z{K.sg0e{yضoWssqq_횻ޥ7$PFֹrgJ>Qqտ1ΐo-#-voVq1ָ1枤lq{9P62Sc͙Jbص=g~+X; 4j)T&i211!qozN E͝2kn<4t?ole>o܂~w_;s>~,}9Ǵ#y /(+f9\bXIg?#n/W~~C&hٿ=NPle1q?Ѐ[q&ۭWzCߒ?|3wty݃vЄE9t@|'u3\spaQd+rc|Զslk5vQq|Wq̿1F$Uc #acsƘD"~C,mh KslqXy )SSi>6 =q<9k> +X0w߿n䡹+̸g9yЩ1 rUnΝ7e➻"3w6zba~bs[2wSFoWd_Ě]盻P'o;'X.׹sxU.UNϝ_Nƭϸp>_m1L678eь9N;9*f}*Va6ݹC:Oy{~^qyj-8vmqٿ VhNt՝r>PcKBfi XSh<GP-R'T;Y4Ö-[jM=9yyǾs?oQq6n;Ŷ- ]~;'ϔ^B^ZxةZM 9Q_ʸԯq_&)s7˜6nX;EQw7z'pMO|BpǛ7PPn4;esJߌ1s~yF_Z\q93t Pj^.4\8vmqٿ VhNߺ.YuB{iS6ǩ)vzٺutWk X*5d'nsROboުxn7_ }3s\WΖ׾[BPltvz=|\l࢟?~DN.L:_b|b㚟Uv$?}r뢯;"v8u`gxh Vh ճdC룅u~t5>$x*W0?evY/Ӝv~Lӟ~i/ Γ?W|ZoOK~d鷿jC7g<}*M.4so Nh 4a@h 0w=̲>2[Y@h S;]Ӛ2vSG͹"D@ei#Tu1wɔ&8h 4Z t;}: 4@GI72d =4Z2b1w=yӃ7@h 1w|=z 0wɔ&X 4Z t#M~o]g<4@ t;|Ϡs7PJRkՁξB (۠4:Qc}9tPf9K3P\dqj~R.%7ld s[52:˓X=_szVst'ADhrk&$A_nL?k;VcfKԘ^+늙1-{g^Yq_F^EjO<Tm\n~1w1w3G4@>s78VFɓ2::jߖ\/gVΔ$m3O.pL] dc.Ϭș/髿f/43?|.m_ybsS]Č1di沮د5Bsi#ol~$ .E+wM6w###b݆s 27i;fN}}ϔ놂鏍"4;S*M>PO1G旃3]?^/ܹޯ60w1w3G4@G-[u[̝c'l3wTμN\욲isU2-xMcܰ{xm2li271~mL7i2mZL,sd~9:shӗTYʝnd-ח1w6Fʶ N@ǘ'NȦMrAqFEΘ1eʦɜژsC9j3d`?Zd#ro*$sc*g̐A76}92<\759kj7JDB~+y U-] ss'1 zDh 2wCβl\+㚻1, f\䙹 ,53{nX̣wݔ걤+-f=M28 n^`bL -[[կ3j+W0w6Fʶ NҀeI-rse6l ۢkʙ~kE?N3Exѵ1&1>θVmX$:Ʈ1?5wk13.s_A )sƵǵe|ճvIoĂhDuslaBI5ј;TySa[hP}6X LӶu׶Swn=g<ݔ>< L]-5wo֎%դWB*z*^y;gkLsgVfVT \@h4PԞa<[r1wqN%,ǢrTj.i_iqUlpZ4ь[Μ) @@V~%&2]g[K\ku͝G3XU YgR0wmdĘT/!A K޷7/%y{kĵ4wq˺[ֿޭO-zH sg^?5zڍ~">;xk8b @F2wI-q]uU2ν"bjg-_bV#7[7rxKڝ|!r7 @hlsrkl:Og^Ua;/3D@(@]gs0w9xG1 @@WhKlsjk;{}Ed' @E].ɳEG%aKhD @@k%y{gQk@ ]e<殻C t7wkƎJ\raJ"@:@]gTs0w @%y[sRÔD8 tv$1ws0w @%y嘻0% @Am.EIkA@ aeas"n1wftswq)8qgnrYDjtЙ9%*@@]j1-ܩFs.Z"+Y+6n˖k/s'n8lb ]k %2Ut`^ Bm.Ư)1w#Γq[[KV 7m>kr!9Qy{ժ6V$N%iWE+Xmy.Ikm m;dqYbEth2ۿQl@v$ֳnFްEoR'c|3+?LvZ ";3Kc,Agt(-lڲMmݲ~ygͰ y0S6c6)s.Xo3˜ tۺĵnܩ #yv6&+39xDN:##m:c`;SJ ;vɞ={ebbB<(7mj5K @e<[rN-n2*el.~HV!ƽr2t8qBnkjWE+~^! SCe#4/}c/d#cf)\~5:GRq;UU_`|۷O8 9rqIJspd%er}\[eN:"/y!'2:,*v'Og<{rQپ}G N3!!cdL24=.dT7')s펯m=aj4w:K uSNU:uైcٺIuV}##$s-,}j]m>m& sJ̿{] t2Ew̮MI6rT,zaYvoɂՎW.a9|,|qVۼukԣy0P=ַM'M$T/w#b43H_5<ďwsLR#X7-1wil#ITR5%9aVSz,Uݔq vh <[b`gn| _^cvtx']c799 ;[KeڤZq2eUoe^}8O?%-4wqW-t_32i6bdܩbb\gwrt6 4>yMzbY e :J~-1~gf .sg}c׺rlĂԝ{}CwH nw;_e]ry}8|W"DsPb[UNi2wY7 ɋ;R|N@}݉+VNƊ2⬽W ?XX%RerNg3Z^"  6wI<8y 1`Y sMV`tcaAJ%Uf ݭ)_N?erpg095bB[}ĵ:ku\'oȘS-s镵XVjU<]~*~L⪋׸[O--Ϙ*$|q4vS)d>4,z5*$&pEop]Ȍe;]U2͝y]_eZh>U]*?_Bb䦾 죌 LίDrTAsgk\x&(R%.O.4Qnb%Ҵ]M]⒬9g.+u{ @v}K}<]"ۂμ*: ruĹyc$kus_>Np >%Mwȸ.םh˧=Fr`'t/F^ Esg{H|y'kB+Wj_\li^rݞn%lν"bFxkgѼ#y#ȸ&2_vlm`)] @>{RGF~av.!@]Bsg",Ki_gBz@BEщ^Ĩ  z; E Y K@ P:"]i`@@ P̝",  @(@B40  @(΂cH NorWz Csg$a@J'PķP+= @!XŰt @([ܕ @Yp,bX@ -TJOB r`,8d1,] @@*w!@@90w@. @tE| cK_";bR OD#kS-h r4o#h*̝޼FvK?#},I o#WEf،yY;d\jgyZ`ѱm6,٥ydStZqh@^ߢE.@0mh__P)P/Aq'n,8y1܅6i4FoEnc3 .yQa7B& [ьz씲W7U*3,sVD~@K].5sFRFFQ#W}WΗj豊?/c\cL eunZ^9 [[`\ !fxM?O6Ldg߸cݖMRbؿ+"/>7d@rgD*wXK,jխЩnpvOJ0&Z"y3m5?((\S8&n%ܨ~jXCKӏVx]; >3xvq2ZbcK{98/2KY*ɽ#j'j}z?!]$`"o6& s1Mf#$g#ӆ> S7^퓌vÁ1$z-ƴ',1g;E&`iVfN6z c+2T}iH˟{1] ;E| ;ԛcN`z;Ӯ`qU pMyb35ћ"C9aˎ;8N1# jyHgVg"lmS 7m~i%{vރyiVÓ(1[l̝e2}o2>$Uvy `,tPRD޹*$^K=UH \9HN H:qYǙe2NfŦ ;SҖϒz.rl؄]>-+wz[Ƈ3IV,*pEˣLH"PķPԓ[s*u;bʆsZs}kE帡"W̦q2R}s񆘪xqSdgs3:i%UjHsMᘸB\.w ,jϼN׬ż";8f' KU,>j\ⱤOZA._)k~7J0Ĺ k IZ,Xde"*V~w!U~[i1e(uזB LQ5[1'ڜn/c8h299۵ ~j{< ޔ嘴M&f11>;5cc3Iy1GԵ>ӎ%cJvz6 knmfp}T&)x?  MsͨڵŰtPR@EņoթԸmۓnv?̝E@]FohD.okhYTKr;h}d͂!н|"wZm/z`LyC?) }G_4΂qH NorWz Csg$a@J'PķP+= @!XŰt @([ܕ @Yp,bX@ -TJOB r`,8d1,] @@*wik,ie,Dmi?r z; y! 5LEBZԅ<twC!%׷P)sm%򝵲nfYl2 b:X y윜䍄%F@`,~Bykz 5d&'s{M3$=*oZsӋQY.40e#atXV97'޽W{$׷PI eFްEo*[ /^ye263T%ԋHWb C]X*Up]T+6ZktmZ6oՁ͡ȽLS"y!'en[19x]]t#rtl7w#'}>I/`,kmcYNW56X,3z Z ^"׷PȾ~BQKq۹K<$~^9wlZQN8![GY~9.?RTthZ.Ҽ<ek!ӼypSUtrڻE#ܩ/ȟ߯^ -w'n D`k6ZFsg:/$ѱ:bw)|MO{'GwX;uOnO_NGo{ N$icZ.cN5.P䥪r_k[5wǗoƂ܅rsc|测V-!׷PHK` ,\{+GkU[.S'|Cݔ@O$g qӶ`] ˠډC27VUsk?M͜6/12kv1o)Y )8 \gG>}r΅m/vSU[g:UBUg wv|-:W̓.Ҽ<*M|%3.]?rڼƘP\$${'x=˲`^=:g`.r'cL.t%UPus*s0M&)68㚻Za5ӗic>Ww`@; T,^"ǜ&Nʕ7Nsy/{KN:9u3sL`dz; Ƽ+xͼNV;qƴ]Ǹc][B'䚗Cu76Ux9V-!2y} ;'%]raݱ_z\CwJ;9eT0w7s-qժ{=VR|cQ[՗Rҥ]Ǻ /نUB.Mm o i9$eYV!nȗY -NcKbM#@RpBQRlΚaٳw(87UL5vj)VU씱8p rg+]#@cٮڗä;EBS@^BB EU`j[~:y<4E+s8Tk_QY- |0wBR'FEHtiFrIoA,vda.@[up2  `,4PŰt @([~qZGmp̈́,Vm8>j2ފj;Vmid;6 @@]`,@ P"̝",  @(@B40  @(΂cH NorWz Csg$a@J'PķP+= @!XŰt @([eϲtE0`y~1!3Y0 IP?^-Ң.ErD t,EMʝENgLl -ﬕu7eחfs9J` c$o$0/1C@sgż[KV 7m>kr!9Qy{*̝E.]Z\y,Q1̤ʠZs,ds^}tX~ M Ly} L'UexYilݶSv/\z|{᧖N s݊ŤN&6yXJEoU`?e0cD\91~iVh4ŠY\Gj*trY <(CvÈl޺]FC_+eH; v=Ai+8癣lYI;+?3˖@ʝZݰeT]r!Yv|ʹgҍr :s翡WkU!dF3JRo7jé΄N>O_>M1KPЫ][mzC5p/\1 / ^'d^\VZz,Džn3ZY3_4uֱv|tn~,N ~B+cu^Sr'\c{O=*۷(9'l3gR3NqO_^s_7Zy'YL鱘梑Eҝ.c8?i91b+Qќ9ѴbT:욮V> !~*i}-ˏݑH/@ /ʝdj+^>rL8\m޺5t嚻*[ӫ މvz~WRO7 1}[jM9yL$BƨhNB|smqevisu @`,P^q#>9{ةݭ*IMNNtCy^T]3tA\b/O4w/F֖F-ƴXbIk]sU{"˝-r\ w˜U"98ХǢol+~1]piW8[nцtK@@^BlpByv`Hv/O,X${'x=˲F,LfKjyf&"'}ՙY&#;%ƴXXkN-\2!x+wpLbܒű.= W3w 7ݴhu. `Osg*/Z`>0qRwrcλ~[r)̩)Tocmؼ)|T`cקʏ87dx_UckvԘnE\ӪQkk±52ѼM7qu-anY*a.Gߐ.,ʝEВWeq9|/_|\vc;%ǎs͜2vMLLXݪ pnQ^1q;oXDQwˆ4͞v=UKc|E:Ye- Ӽ.; :8-'fol ->>5F% RpBQRlΚaٳw(87UL5vj)VU씱8pYLR8z`n 䰩xPy} ;D&rui-kE]c ȵ]-JFݐ j;兤N(4WM}-HCC cc@K -T4ф @ sH Nokq9rD5XhFj;Vmid;6 @@]`,@ P"̝",  @(@B40  @(΂cH NorWz Csg$a@J'PķP+= @!XŰt @([ܕ @Yp,6@UG,+]Z)+g ([elD*Qʀk<ۼv&~SZ>Sq۾13EH@0w/V}gr44܅5:Fϓ-]Z -T2[T*Tu i0WkPe*T A-r4c 7v8keȜCSqV:c S,d;Ru+탲knF.RLZ @`YڰIY;|.5L}2dki ܹзu;1W(ӘeU9&H_ T geRӘq,be0,] @`J([ܵD2)&5EzUN7{YˍYά)oK5yόx|-fRUBմܵ0c'z"E Y %܅,5;3e]g.C˙LSd{ڍ_\M0wĘ;2͉|rظz@B%zhCΜWPQTU|%6V01wJ,f@Y$a302l2Nj׺>@[͊0}]sk撙1֗P#7X18k(1w @ @B 15doNH mYɨE>/SV_b_w50jivI*w_2[jM3x( jܽʰ 1 2̝Ev@.Uũ kn9 -Tq"MLNV7L6Y*bXd{;wK{oZ@orׂİ @ P΂ZH NorWz Csg$a@J'PķP+= @!XŰt @([ܕ @Yp,bX@ -TJOB r`,8>}Z. @4ʯ(ߒgU)h44@"N)i:`C n!L' @ D@ -0wݒ) @0w@[2E @] @@uK XY@  @nqB  ; Ht @BsגL H'#ΒoIP $KHU*RIh}Q! ];L  Б0wi)L@J!h38\իh T?E}s뗑6`~ c@ TAF]͕~ma0<'H}?) b@"0e%Esg̪okBTCq°`Ԍ.UΖ+{f1!LU;d en[19x]]t#rtl0w#Wr@_x:[S`1i.g|pelaٚV91 @ @^B.{\p͝ZݰeT]r!Yv|ʹgҍr :-܍K_Xd_kA/X o~<'IJib]5CKӸǚ]hw:-?e^ML.G @0w I7c{etlΫ؝9{ةݭ*IMNN渡"[u U̞n!e*߭>~b0(#ǚ4j KE暲2).Ŀx͹2=!@ @^ߢ{2&ف!ٽo<`{2u^||8ݻX,dZ= L]y;&/qf.fIŕ4w"-dZZk_ިx `,XT -^"ǜ&Nʕ7Nsy/{KN:9u3sL`*y[R,_V0 q½y.+N쯹wZѺ4{*/l`Y6zEҮ4 K6;w2Mo@H#׷PS`2*;wÇet~s岫s )9vk攱Smbb"'Ֆ xǪ3)KZ ~Wq}ݲ/^nܹIjUb,` R]I^ڗ;Ê. `Isg*/ܩ?)| ygͰٻKG*&e ;*vM8`a,]:{qʲǛ‚az@^BBI^-j]ZoZN)j]#7X_叀- @`,24CejubۧLO@Fy} n21C 0e`,R]Űt @([ @; E Y K@ P:"]i`@@ P̝",  @(@B40  @(΂cH NorWz Csg$a@J'PķP+= @!xi)bh@ (|Kޟ)WS`@h t;s@[2E @] @@uK XY@  @nqB  ; Ht @Bs-"N@ `Asg. @[`%S @,`,  t ]d8!@̝$@ n!L' @ D@ -0wݒ) @0w@[2E @] @@uK XY@  @nqB  ; Ht @Bs-"N@ `Asg. @[`%S @,`,  t ]d8!@̝$@ n!L' @ NM4@h 5x#GH6fB6m\5)JEj;V @H&P_ m;x 4@d \4@is+mB'^ޜ@h`hsܡ4@=]%s|"a|Fh 4Okh 4@isCS d@h Okh 4@isC@yGrWJf*yJ>"?Ͻ@+9>̾;]CjD|l[e,~rw˾}Ӵ(l]\ dz/,W.%FqU|g#sWX@ybU]8;]a5߈|LOG5ܑj1O>0w3uaa0lh a7Ҁ2Cњ@sǓrq,yek4'gޖGKǚoloB;"h4J@'7%Jκyf@MCW$ܧ5f!1-ʛ,}憹K6Bc2x5r]2Vא`dD/+3P}AhڊMtefTϒ+O_묹1w-q>_p=kh¹l핻A뮻Ҫm;]v?F D5H4Mo`Y8zܩXi,a0h 4A e Yus%Y]ԩRww31<<,0(bEsrG皻/fQuQAhd (sw1Yf I <˲䣹Z̓]M$7N ,4 \uUsNQ}մ(lq\ 31|S֍)ls|\3!UO I)۵wd z2k,w+xr(lCQ.Syts\xIV.UUmUB)*0Dvni2P\< @t|,xa[YRKr(oKאb@h s@h 0w=L>0Eh nsǧ54@h4dv' 0@h 5i 4! `z(|)La@ݦOkh 4@isCO˧a4@ks@h 4CP2S 4M;@h 殇m,Oh 4sǧ54@h4ܩ44@h;5׫ǥRVC"3䍼4@J;*z4@h4dOlh 4sǧ54@h4diOkh 4sǧ54@h42w h 4n Ծ %n#4@h4e%A-cIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/figures/shelve.png0000644000000000000000000031055714023111777020040 0ustar00rootrootPNG  IHDR%#sRGBgAMA a pHYsodIDATx^Wޙ3wf~sg7yN \, i!,.]w:uΩc 4yOUת}vONl?d/N%O)2?xGK!~f=]R]"k}$< E:NJX$~J k+?cW{L@y ?PV?"12ԕD#_2Vp^cQ&V͵p/-Š[uC7,nc!u딾7}}_+ԗwr-ߺ'-]{r]t]ߊ9kYL^Qg͙4Kܖ~±ܑSXls³8Bjlmt8nrיǻ# Bu( Y9L ؿ0SW]˘:<1猵S/voK]w+^z(Nv K.]Ƽ˯`JW.Hh3\u_kKm o)ްqOJ:?|f3kbF\mOJ~ 'oi&IC>TC _dЈ u>w*Jv>V7Op~[]q=`VVqDkc7JGSxGmGmF(VIˑFPZ͆dji:tp4x4J^% p[TRg|{PjX(5/KJq9R,no;Cʵ![OҭI擥xIR싉Rˇ| G+7Jޫ;JrA9댔POFh!jTp e1L)caPI_U+]!ZUHڏ;z`x]٧* * 4RW(z@ި0@5W߰ܭ GekW,+}zcè<ֽh_{ e5^G{ǧVq+YY+CT*oUv0yp?[cx)-~C^JWsDFO0RђSئvlhU댖PʄuUqԋ4EEOnhxe3 3~2J ݭ GFHÃ; [mNUޮu;G+[oVyެWUJw+5>Q7^-R+;6Tzr_]OVwI_m>P2,j , uKz#%Wgx~'7{8o2^7 B,P3n.\hɎ{z*)fj;MJaZ2bJIӥB.U4C*u6 f*U2SY|оΔR5Zgc~& j#-uzruy7Wa9}+Y69%:sZkƽgd3Vi3ulQ:/[jy:菏˶Cda[1^;rog/󚞹mR_.8,Q:9wu:4[.[L ݂ yXGng-)cנet^iN[u5^L%5Kv9ݐ#?0)0(POyH 7D,`dhpɂB@T{G8 y:S sbQzN(l>SHVӶI`2/q[}x˵imbǭSڢɥn#J]6b22hPb5jpr BjGMVF*VgJ~KA%%R7@"T Pa̗]I.sj٨pfI3BTXJ@ž@0)xhhɧcO&Dr!9,^k8`d8@0/L2B %##A<^NoWJ#xYJH0B ^+O&>1IAL"z^òdl3WRA*ku>ˇP,Q_G9zlK @`@ dp2TAI %AP0#xoccfbF8N<)Y H s{}tdL-)!ܲ$D 0R0һ".|5|lEk($u%Y@p7F| om-6ްD@r *jiO 4zRoL'}NI$$K `iɧ%p|V  PD)҂p2I4ZNP&J&+ X*iSNN8-HaDPR4܉pU p^KVMkj_;AEON,`aݮ[>@X 7((q Ćs}~RP`r2a=1 tfRSt]u >kͨ4Enƶ\`9u ].by,t:5s[:mT-RPAIqko? JJRR![D!h9@bHQ'SH1@H7HwFF/FMMwf7-Xmӷʀ[em2hv4Cީ4dА9 KjN}sy/ SτtR?[30op0F1 zCٞ$ϒp{{'/ZL %:n.AruE[C,&sjKiPީP;z^PJ/л.JnGc39pF8^SH4ԽZZb, u>65QF|\Tz@[P ;U#ޮ x譏)M~hA$ <+qdC` 4(_{YƩ S֛?5 ņN '|%] k2`2`2`2 ^^^<|ûo&(TAJ/'PbPZN(_Ӓ'I)JV!1P2Eʶ*rʷ M Nå )B ENNm эZ>8).v5?(!(8q T8UryP[bI %Z֝{J+Hv5 '{{J jɅ=Ф JGcЉ)$t ::^.B-]6^+Q؎x  8tnD9 NN(!^aRP> JJo//?asvD%J a9aYWD!kB h d d d ]])sM9 #'d2 h9+q)Y2Z,{p|K15 ȅ{p5|nKICJÖ `C{ )oV_Kڛ=K54=-3OTwL)cE @a:iP˶vH["įY._ ^&M-Fg}I NyRpaTpR*" Kgp9%y/IvIC%C$3e/ D _ҡf+-hQoeOh8zE%4(^z=U /@Qɽ'ONCb9Ap6i{@ <^RZw?y9rRf@#@Lf(SgdG7eǖ,̨#)q- ()PP*=@NJ[ ,[dx? T@#4P2' r<t\T0R+ t(nw&[ޮ >k!d?—JVIOHNI.Ip>GKކ(1>l֧ikajk K"`e2[M^6#U "iw+`K|xvs3Y[ᩡgk  c16 ː=˥PxP.FH^s&Geq *bQQ~|PxLS2P+P$^:TF(^8J-hC|p/^;pſ y˨?[Ҕ˥eR3Kob&E7Kpo1S7pdoǙmx}:uP?џ׺k߾ %mv;]ǮF@oSoܿ߂wTZ<_C)}uxC(NG-Րn+#rLh ( /ee0s}Չ^/xQg>u>(NYkӭ0\KY(3k ʈz?Pp+=JaNe!4 |[oOWW`X"DPi,P \p\Gvƶ,]v[&z=>p09=D*y ?Jj}H()H N Ti`d5`ZpK4iTK 1-J,,'L& {ThKM@8KOGIRQjJ:iUL0"5,2P2 80O?uUA#e͎`~ʒ-~tPӖkmBXeJWQ;eꝒpoVN])sykJi % PkR/zvN(ӻEC{w#QDr:U$- m@kvcX<&uyC;N`'3g;w BN>Q&0h%2i5l|1p4;O꣧Zp HETPeP}*?T?!P_jAIqGW?LxP&T&N%,pSEJ [6) m]zbbqmUiVG?*P>K>=FZMaԞz`$5 Hiж0σ_eKսlK (@iU=l11Vǟbel$F'6(rɆj%&Wf-_cnFV~ਣ~^ehdgFs*Th9SrZ,m;Mi+߭ĺ/\cz\WXZ 0ĩ}Qt6P"nY%Y$ _%NQr'sE-'"mƈȎ2\ЌO^y܄gƘGygNeėe[;SCKk9c۽ hρ~4h݈rB.%8=U*wDP rqCN|T|CPÕ-z 9@_LcOe^Szx! [𞤃V/HZKb% wV:xJPd]2U!Yllա} Fg2C$ߧÐ9L |T0HzJFI>b4@´%)jA d|L˶\k a- a`RsZ0bd !|UOBuMABCIZ@}'dԬJki5fZqk,7<j|03qٲ;{UC\//l?zHӗm `~+kpiǁ2D~9zllRisޡ\ЁtSs9NY:[C6:ܽ?cR(ۇx;pM۠-&.9-jJzM\'B(÷%V\(.WyPFECY^2-Cbk!FSV$U`}0`+4lxȂ;NgdNU;ʪ]V ,)=We|ıuQe+pPZTZ>IB):] Sd}e Ai%.AF(}a_O-ranf,!HmJY3F**>%#.S-SW2o]]FN܈ {rƮx4˥k^Хת""ܻU^~$/FJ.w^`6blb@n\S@ 5jF^:>ئ}BmOTSz\#sDQHpuN6r/Ld-4[J$M6d{N1,\Oʲ!mgpF>sB_E  y( T(A.&Br3>>꣑OEhz-}'UNȝ -,g?/e A莟sx-X=k0HgosŒrl~rVNx6>`Ak Rxࢦ@LU{NVF2 Pt`آ7gÖ^FO^^ gczIjO%٫{/xJޯ;PH>C UB x*) )<$> )Iq4#@-!`J)G0Rga[W*<#P-kWD{Dj>\ˆiR44DbLW9)jRfzˁ봊*Pnkni?D*Ke5T5Y4:ZQҸ{R:[)71V)h=}kSvO|l2/́C e%fff2Ɇd3 PѾN.>:VL@Z[.:ˎ.y˖޽$'a}&՚uޣ(a_{![}vIžmJ6oFhPL79db;٭C^v0oo'INh\ht8JԔY1I4VduN>ƚezB\r?[q-%-Vj,s43YV~<B>{friPhL=Mds%SkӲ:uFR}Z3#%6ӎVb^IMsSYAp0DYdy8]4=jk/߯*0FZ.቙9?b Q  ; ^#I I [&_nWsLc|+ 2/E%Prˇp| wťz@cl?1_Tsa_>ʇcr"%'PBǺYť8V8eLzRٰ]6=Btleżz\ 2+=GsDLe"U& dJ3ێbO]Hc,z襫^+rtX nKB&gxZE}!Uw*pc"̰>LSO?䔰d)/4s'Py{,z\awe>`8B[9N$R9($۱8 7 p 0G0^3L̑J>^q ض6=L dA 8r$ls8A(+Q/@ha [x(ɼK`Ȟ2w9#eqڑ^@hOHE*# ?zժʞнo5EUg/Z]ٵ/imt[;Uuz̔=!||}LAYGYr#LjZqR.('b8QJ^)~|y3QagHY_t)fR)wj*H18c Ra0Xcq08Tq(^n)xAVaV@}6P r@*%[uX$T@ lЯ|5/ʇ1a(h6W^@s(ϧh4nG a\Ƣ9m)]fGWнWOH{؋G1'EJ.e)Kx}1`"9l]cF;#;st1mM7ly,x>ᔇ٪Q #HU4^SzTiKU:DD= ᭂ_L⦆K08\8F}XYEP"PіST ˒[^yZx_(VaoQq!<@D}j4r8[np [ӡY{=oʋg} Co_!CZ+^xB..eGn†Aip0dbq[C JGPz@[%/DH+ A84{ׂǫ0}=ϮV@r<9$"cT|)pm=n[ rv=LgTOuzRKDzϖ{ϑȎ}fcY9`B+PRPzĴ%6maԃwdݹX_^ %>oI+ g|W7eϞ37ĝO޶{M4W%^)'k( C&ɇ|l>V`&1?PM&bؾZxl\?] *1?F6 퓾dK~Z]u.żKf6{=^nYktLy7v$Hg_.9'd朱 \x 0dۤǔjy,qxDjZ$UΓ*]JNsR9RRLf+S%ϒ2R-5Qi H0ü[(*T|*{MK~ ~1/j: _CahpB': Sj<ј'yܟECx cPC9 (ti et߹?3a4,2H.0f t3[[-ƶm'hI;C7oI=03Sq>`C |CyЂGB9q2҇~IM(oK~'ZTar"XJE[MO(zbRq,OB7Ou*:U 6hkg *#%E>eCp>|Q`9/c}T|@?!<ҹ!5wؑΗu$~ t(¾NGG-JcNgOV΋{s_{l ru>BE0^{@J s,B (#OWcpDcL㑠C5hb)vqI``Foh:rv>C,eT:`2[&2뎞9='=1u9zӋ:ɩշԠ< >;`2PrCҿW_O:IqδvxѨmy|eVqYҰ"F;W2$>41I$M{O/fJ>{i-Z}]Z)-{O% ʬe.4Z-Czh#b~JZ}V.j.lOqvK+zh ./SP@ Fd dW0Jޤ±k QrB,(PؾJBJv[{ B8x?'@b|EPBO =%=[wwph=9'V"IHe*D{J&䌬CSdẩR >(wʦxH7p,]NSº ]Qe=+usJX}et`Y $*3VNRNKȼͧdƓҫ!2H\O#f'H;aFi0i1r4V^- I^KzOIzJqRYiT:_*uYq:_*v )lCgKYGCЉX_ 0TmhĺmRT|63}y[zOa.X\Vr[Z@jSQ%AEMǼK-ih,B 4Sd4P':؉xyqӱh0Ey q;AuQ1_O#τm"}<V98GᣔB|Tv`ؙ 4mo=G(Pgp>*/)- XUp˛(Q TCLU4|*y$Nz}~Wy)y"]G4O/C]c+P'^ I{ކO/@V~|4qfTC5@J ^EkMBg2@aNʱ]\y]UAf_v`%̘.ّ8O!r!Fw|Q;X'2$bb^LH*0Lb*P ~09^@ 0K.1*J*u!;ćF U:[)(#%Ts|-I-B 0ﺽ1 W&T}A J2~PRb<=Jg&'cIjj4ɒQɀ)Z=}j/zMCۤ`iIiwzl6@sں5[j!]٫vI}sgܪed^2ZT,QV,+zh#NV$)) uKz%eof)ڌo]F6@kյ ײzYYDծ(;'PO 8<ѕSpG.OɃ{'?}0xJ+A%vȜ[Q2zJ˔P5&zk/K;UN+e.k ðֹBR]co83:h;1aO) J&lJFj(YTe+\͇k&PrM6: H?Lͻ аh.CօX~.3PRlwE@R)(ɋrFl:-}% Gd2`2hqN>utYڍVf#Jk!ހRrwLj\cz/RsTUU9X>S.BuT!@,Ue 'r|rJN[*J2Jc Jt{RTQ%fKvYD9yomd *f5桢gtf16QaN! ͧ4|FT4R:`2 hO@#yh0N4HqJ&2}2ZD6}ڪ5 ƦL&-в^Jhl>*;ϭVX ⧆=en|4YPB8qr/*MvRh1C" 岀V9eY8f>QCE ZŶ>w] {;E,Iy-Vhfv"@ [›- ޹@.JϫE|F㘓^H%x$ݥJ9d",UA&R~Hqx2+qlAvo.:x,P&Kv@=]ui"-Y`Nst! yh`ړa#xOJ)I۩7 P递YRٕ;̖׮jPJz"ߔ|BNX`R0H9x(,Z -3{77T9SـҲi5`Z "dX E+}*C@ :#hni`~)@K>-KeC ?UjhI-E-$4!{ZԐTrU$Քjb`ò}-kʮT ٬l@MkƵeUS>}~SA@ %~@b$gϞ,1`b 8EN G 〉Ht'IIDHtX#˷oWa@LfTL-5ς  F5鞦f1-oB7Yv\vZ26%_76x8FYy"{`̮FF]@-v޶a2=nK_$ 2׽sk(Y+o65OCxWd( <1a]fxXa)O l(3 iwܳV3\*Y휌g- ɘeeآ2x^;k憒 xZP`*J>RjCQVߕR gBihQb*XlP!x2![3JX(Z =P@w `S +@6Z6l-Oe1_28&USxJŒg6@s)JRқgIy(B*{%x\<~`Ba٬nMD.-|DzL+Wb 4Wn*kZ7umhc&ڡDvwl,{;7]t\ {! cvű6=HRSֱ:vMd=K6${LCGIʕ P J0/ xyHeO;slfj^Ht޷zK`;]ON^%`޴ ۗɧ#.G6|.۪el[2 Yt{B݅;)y#n<^+=NB7R]&h۠ÄP\S2U/2lx+(ѹ3k\P2*#}7D~٘3r@Äj!\ ^phs.qÈv7uBLukY*ksED>_:K,?,AܒSSIڌA^ň5d%Z-H'e5)6E8qa,>HG!aʻi1f()!LL|.fBT(Z/,!f/ r2CŜ1@ /@E) )K؁؄ T XF-`B\xc(R_~ؠ|h(`Ñ`($d|(((FX4H84!Rp>GZ>|$;lj] l,Aņ7hKv 6 r|6b pRN e'N@ Ϛ`P (**8fsU>򣬅`TfIA[n0 ;b!/ LDR!*D9KQgxb3Kp|H?BJUX)İR[6pj2Tj(`°Sl Dx)7 (Õ%:ʄ.%-Iz WeUH:ts@. +0C8!daOI sb;!Qpى ;y7=RTRus =ƱzRb- ;A3k ۡ6Cj D2#/([;}ő魱@{ainndXN*)]{abe{hً0+[lл5^T燬ރdv{Y^grUHO"Kw] evt%A丆xJCa3wH)[nV\UpJ )@@Pu=|.jsb1ia pAi LD b6᜹XɄtF %k% F`#] &/2g#D{i!4P&uV؜FPv>Pl0O)T eG@R P,2 ޖYVl@ZA[,KPzv `@0J. /?CEr9Nh&1εBLزrG0Qy]%zNQ@ DI&(#Dɂ Rn(I IIzB U+@qChIFzMTh<vD} &N%Iɯ`7'Rtw6LD,i `c؉ {l^4@X2:{:'|Zpb{O4L) N9EQa^AqIgx$:!Ū˻;默{ 0VEK*cb^Jm*#<:zZ")/sTPwMʧ[&Tz5Rӿ)UҧoIoKH,ZJ+żKY}ձ,j8FJLߖH%bR!R7,4[ZX9~Y@b{@ ݹ$W@_%Jǿ_޷>(^%o}.Q5Ƥw_ĵK-Z%k^G5-v==RxT,PXp c[G*BJyJsc1=b`CB8v_Uj%Xzlu(!=p.2G \ h[tV-[pqoc.% $dᎋ2wya"ƞq Du6mH+h0Bj1tp!ƅ%lxATJ-D(!@@8@%i/Euؔ%'g)#=MzK聲Dqo8! Jl{jÉkbI. L5 ('% ,zW%_".KziHRxI F@JaW Hb7x{BAZ}Qn}C K%q+sAzItG K#t(q::`JͲ;砧K(sI $w{Lˆ#tm lKȰiyJ?!hacP'*$k! )`BIn‰ݝwNu߾n`b D Ab*8 P%/1 (' x?sBU=( ;*޵U!^*"XR$Ή7LԚ? ,J𹛐=)G󷔎ں_WrBk.c>NaO`X~ vG",InA[d+<%ؕNȰ#pb۠+׶H;7q:錯*k,KHzƥd&Td\s3-桸EO e/sC_7)رa`> R(*|ӹ %t{;@pU`p .c2kLܓڣ2}tC3()$4m$pAа^J,APjZD2[5{b{i %v՝X_a#HUC*+ְT}+`Zw`"3T jmvS08$RHcf9rX;n/EYQ 孽-\dB&NEwȓ`P R+SSݲ=eXz-c^/C#c1؍1z炜w~f# R6Rs[ zK84DIˣ6Hx Fc$6p&7BIR<&`%*K{LrcB0PDyL$'D܊ L<`pb{O$4(@ =Q6 /~@t<P"A %n[B (%zKJ|pbݻZ=KB9P1P Lw?vm) Nɠ`n~ L|p_hzM;ck-3a 1"ǂ$Nq8!ؠrQX2 N&EԸ?}LJ &T;B#AQ'=G0pbxaj {R<(A@zr4'/Փ{T7V^TVO^^~| #6/L ݌u:uh14xf(a;nt'tF$o< igdS2q)ꄌZ~L->(cYU:N lgH}{`QZF |JzWunR>wA~ЫwKUQ:} LxTj7I*r6ZJyqR 5Fq[ (@`PPqZqH0؎i' -5" ŲRQ *K8PW,NwZd F-k*Ei9}S%XxK =3e[# \ZHRd"TV _Jbd\pJa97PPuXp+7%hhL>J-I%фeEHBAKbA%>}97Ll(Q&I ra\90.Nl(Q`%00b'zC`([BzI/ &0Xyn¶,@I.(L!+z z÷<& @bhpbLإ[bp{L&1FQFxIl8XscoIx8zLe@1q{M0g%.0n91qB\:$`]ye^A0 'aM&cRN=) ‰ LTho ᄐºDI0m Njn(86 'a &u(u]`R`0B0TA X]`(Ö*`B8q&PbJ(8tAl0!@ ״JJ(^`eD 'a÷"yH %*DrHXIq0 &='mH/i?d ޡ2aLgqu`[ dK 7cqjAqVi TY_pLG1BE{=eRnT/e Nxw3qL$M[w\'@P4;^"hn!xmУYbO}:2D>j2ByNsLy* `4db|0q9 *l$dygihq4VyjJbDR -K!̒8;VJ`_Ip㑘]cUd! N5= P°%LP L5oIJ qSh,&v & b(WrzKЮPPb痸C)q{KTW@B0 DC?xE-sLBMܓ I9w @% ٝsL#(/ݡ\n[%=&n0qY=岡`++Duu¹<&;`a\9؍1Z sL(.DX L,Fl8sP L,8) I|* (ŭA '%!9b{5 T NPB8QcX`Bq'vO(Nl0q&‰L(~^IC1% &͆j0i1ăI`%xKm{KCI`BA.yJbn>-r5j0p^Xp^VE%ó.B c A7K s m2 cXB aj]> z x0KC1(qIP\ jqP}on><Z[ћ4hz,@HhB`iC2na4xx& gS5{٭4m^1ޖI_}DƯ9q ƱGF,]v(fnA3񸮍Mx&[{W\΅АpwĒ2l!!ʠ߼{^>#c7Hl_ /|(S:OQBPh7Q*JmJECE!.FmGYbM+auj;Hy? x04&e*Q*tRiJa)( (b$ a4a zZT<(HfJ?/EuC=,'~0&äDӑRx$) µ$|oiyJ @Gn8&@$8&.Tһ+] &&nxLw%cL{W&='Ks 6iÉŋXpOgX*1pR9cD0a8'0߄piL4.; QyM&L+PsB8р&uzeJ(0р2LE?G& `'0o(0n0. c.+\тI"]Z-n%U<ֱW.Kkp|JX (]EJw$9@IO {'Cy‹KJ=.P%Pog* OL"/r~ -B_%!Lk^>1st lvJd5ۑ؎ uk,}!@PA hWh9J*[R+ap?#x?<#P!X2а/})4K* P*ƼZRI̗tB ᄞxM'* KR0A0RJtP=H}xO1.x? 9 @H LK42zTMc@GC@ p>Gbù|Q$E? *4xW2ҚMGH+ )) bBFL\x!DC ցpB J=%OJbu+8>h<LTWPJtf!ޑԞʆ1K‰/ $~`#$F(@0V80 .@ H|[!zr'~ uw< X:^T(0e/;:X wo\n0ѽq<&n0qeÉ%:Pc¶t\N⻝L޹^3+XB +zT%Tr9ao]M&ȇN) LJ9DyO.{bP)d"*|ZIjD*8ab,LbM5= zMBOI=|0RL,oX`BKrL<2/9&ho[`b{K0qqGPy%n(^rM%{{J| a-Rl)0&3N=eb|G4;Qh3I3Ca#-:F `?&{ V^D;|P %8PbyL[ a\$LT8W<&zPҩL4dyMpv$LlL'P4xzO!]*&j^yN؝Օ P|C1aoRI&R^ݳ;=vL( 'zpSh kR]`R"7+6xD@0 % jbr[/i7E~)B@/#Jz9&v%1!D'ŝsJa$Hl8YV:"t7Eu%! mFQ%Žb& ֣:j3j@aa᡽&T8ߴ "h(؀Z6Z6F$b&C)x0`ѠWZ!\2JK@Z0(a ә8Lq̂Wc:ji@xRh)cN/6C 4kx|^scF8KL.emm-oрLZMj42_ '_ +MΑ&`:_K/*v'mB0@J&lJMtvDy^ʊI\xJڏwAϲõ*9ޓ~(qgJxHиWJl 2 =ЭMPRk)BJp ,D$w}R`^/Bu)@``PPP be@҄ZaH00 P,}-@Ē J 7(}6Pb DJ0/ E{J&P!K!xV 6 ў-!p3DoeB_ac6>Vt :gaa!%ҽD1@cK0.;]yK€ ah J bwϖt\:|Kp.Wbqyj/D  @05ч-gsHBtR$F`bX,C%1hĆ72 >[VwC e7J`®scwN &a\P.'Xcp@0%cD ֲ. RޒH\7^h0%&X(5‰w{)8fX3։<&XN^yM &: '0)~J' 'vk1:B@a9 5a85# ^-Lº&^p&v(Kʕx{x~s=8s& n-6~:x\hWekm9tY6uE>1J×p=]]ǯ7Mً]}gʁsKr9t ][Wr7rml?;5>uKvػN^yN>˸\Ǒꂣ˶CdU!.;/۹\;mz$ jḁ%:Z呴 x)SvQ ]$sDsm8cbjyp,-o^JXy Kl1%Cϖ" Kn:2]dyFM Y;ѝh@C^!1p|^|j6cL8\->-½ ca==˷K(/8lz@v`kiI]c@i[0^ SK1)Y0U0zL 0zWG/lwQWd:=Jׂu,'O ه6d8v37[Q E; S%}߲J&qQ٫*ײס7r4JyJK|%㇕$S%K᪒HUVd/^Yr|TIr Jܥ1Zh~2AYZ-+WՖ`ZO++H%wZG5꒫x5U*T_E?E*I%G .,Y}s!-Nr`>Sy?${Z+H6@yKFSYM㾳aɊ}('Y>,+`c>TKv\ U8ʜdVs9[! q}LJe%S~22.˰!?gB۔ǹedpTIXXAiC*˻;y+y+[T4S$5қTP*unU^hܬ,= x#bzbYN&w,^׾\;n\ɿk4<箛BgNݒI?k]I:DCIi)̦0?T PK.MiX66L_}\'SzM%{^RgeɖxY,?!'z;y0A~z4R~{DTZ~RU.$??$DȦ0uNHrh v΋Ҟ/Ӷ9Oɚr]?Ib$WܼyS]&_~u떚+:-[ƳF/Ϫ,. 46.^^}.wIO' %ݓvu'%H yNi3"^<"z7ӃǓUϟ`ZA>@diP.SW)I6x3)Ousҗe$ႣO~ƻPBe$ {.oNL8|ׯ+ĉJ'OT:uT %]}Fl018 WAF׉ "tYz flo((i3jZeND &^?.yr#Ouɿ5 oI1*x˱3TO$wE^a4H X]}IX"nﮛWm(n?o8ZG?&&J@XO!E"2k&QF@O<<"7nP·ӧO[wܑ۷o'J}}IRͶ)YDjl-<^F1eȴMrPj]q;v _߾:ͫ=Eﮕo /I1m$G1)#<.o@2uE-H&R=sb;=G't˗3rw|%mﮛBnA?.IC-ST(s˗OΎ0cɛW=Z۴SU<Զl<ֳq><9y;5L:E\r="_w{Fl9g(ztzJ}jm)e2j{6/\ccid]*,JZ ߌ4.}QdĜ݉ϼ)~D!M.c@O)Fq *'#%$D^=ۋjk6>u4w˒%)=>wNF̘9CBm6+zϟW^+ϲ}?YP `ӎW0xbOE#bEUs ˏXOL(vR.T8|F<(~rBc"B #slM44LC#9~+/1B56,-GnS!XmFoS{;}W_#- C+$#;lqu"ߐLFϏ!\~xO4u+^yR/1P% 'Nk`w$~Av@0Hמ3k Shm9kի1Չ^`[tymzmڝ>!p}͜sa׽M$;6M=D> KcBo= sj;~C J*_"VeǑ׬%DnrLy !<Q=Fнʕx۶Ƙ|x:+-G;z0b.ǁ 7dܤɲ  wݑsלmnSwd`%V\'3.D~B(-T6F %&3q_Ew&^+7V,N~/^[mȞce?mg$ܷihFWyP NJдb jZ!$[{Sw05v҃wდmd# r30uE,U6(a)9wvWa~=E?y #o:)6M)>ޅW=zJ:Ŷ.:pߐcWv,۳lv. üsU~}mۉhۻS(&(&<ÖKˡ&˕v%=Ir%OOuHI+D \|V.^9+0n樍Fҥ]{9ǿ% ISmƮ=+c֜QNȕeӲȗjS'Gzؼ{[]ǚdѮk2m%9qYOM6&kQMQi %;vLl=%&.ȼ-zx\tI'-\0j[G͐cn9ܖŻ-dn"44LC#R3;^4UZ@ȹks F2~V2}!`b:W=ź"FD@E[OWmhͭȿe8h*~|;W'.}%SgB$È RB{&6VӷU<cĆNq?=w÷dݡ[*>pCqf/e 2q9jϲ-mb"}!|;1mHPr[%J,0!J^SraLxH!3dPz3D8W`\XVΞCRJϝkEc|U2yq:~[}ZgGf,1 Ă dܺ8Y¢ iu=U8pL&L*G'Ұ?&~ eң΃ڝ'r + ,֑ UWqR44LC#R3CC CU*Mm>S[p如LmLK1ëb]µ!t b_Ǐsp]4+b{ohcǏ)/Ȏaj3gEw =o͘)+WLRB{&}ݶc;b.Mbێ{=y͑۬Y*&8Tѵ۶%U>CN \y'ݑSh-SJ]hDH,-NRnXxЍbΝ;@ȗ[ 2w9LxV"Gߔ `l|f z:PR ,7 2q=)j t4s< I ߴiczix~ڂw^i;nF $ `r'rˇqC)W̟??׋ۃsN9Kv9+k\K6 Eh3Ojl\~Kj %:l6H/ȷwci;r ddnI=١)Kb #PO"q]9;}p9u t%4}0y!xn&}ƋLlEmjl+ BŸ%:/a_̍HV?}WL/`z%0?&S̘ثgX.#l_YFEB{f5xY?|S+>khYJh^k3h׭Mo-I{v-U{jgvǮI{[m ʼ<ݪmΪ\mmh=PPk݇q*0jǮH꜑{⠈Gq̙.z:ֺziC sQ̢-lLJ{Ol=:qV6mρ(m6{l͹"mzJ~LAwپ{,E%)`ľ+!%@ k]okwaYt[(۶meW\b}ƫT28dkM&قNI6d!dYU{b&ە5!kxS^H~G駟8OqS}@bĶޑ@afc>6l@~w)=UB7{6O}^ ;l=ny Bݾs[msŐ$¶=tp6mm{nm% ,((q_k@I~}yϗ0`rkƯPLE/e[B\rӅMrÁ׭_#CSe1zcR;>:Žu[OlA fxX{dziYl9xQv3EYp^ڍw)CW4/H׼fvJ"guQ6([`-pP2c Nɪ EnvK\KB $?"p]4+^rK2 % Z }Yz#<)Ҟ U؎{u>Q^CHˎ;=[6d'yZL؆l+0( ^[UA#HD,f#!]%[0,@R$g" ;]8#so'G>TL=.KqX='JF %IeH3 _c%ߵ'qC dZF/9('As1x╯U '2d5*^444m2۽XvaQ)zdkOn(y|1ddkJ6#XHHPB RA1Pcy>fWǶ69N٘I wҞ뾣=ߋW+=qAIq%hz@u@I9%QI|>P-n(qB8(gךӧOW#Di=be-O :/ĖA_.<=p%%J>[>hKR:C'WOyJ ߿}'_xP퀔О%}zqPwJIyJK$DE!tSuT.^FzgR<DLp8q,Cs̑#G!zuRS)f/Ny5uyV\'^>qJ~%<%)},m@4)wIVmWo((}PZI;]z)wIdwO.\n/Wr4R=<ԞyM 􂒃DVGh7<%3[)^ħNɓ' t"0p@?_#zRY]v;J8e\ׯ_?a &vrSZzY'9o$烷˘{ةI%R=e[‰oS1S,uQO$G'^LrE9W5K4nO A0V@I~;3C !Lh| "x`/w.H8{J,JRv9LeUhlЫœHWź΄oUm'='G=c+R=g^cAz+`% & J#| |+9%npD(yxJRdCE(uJLC$|x67u+ey{e y]7Wy^P `=z2Pb (4 SSB9L`H}}0Q=7!onO O$Fl2%;YMCTO|,6 %/KY6|SO<=ۚrڶv\[@ɑ?'@[N%6^ ›~dJL9L 0_il(Ie\M=;pj4 >MO J2drJ%LrcBB jdl<#6l^Lff[{@J͚kz5ڕofcBrOZ_jA {joCɘ`(y~~ ˔SL0eSL0e)AP09nA>Oc$JOIL%<) 2`ʀ) <2%S%0i`s~c2eSL0eSL0e,5w:~{MdPOf) 2`ʀ) 2`.QA׀N&Έ7 F͏ɔSL0eSL0e D %'Jbn =%$..N:w,mڴ126x%?^g-a5F h% ejFYveڃvIK=eկf2Bpg/f~Pr[<%pP2x3f|e埿܍ƙHqх?, ^a$/{ B({56f^P$o -zJ:J:QDU/1d(yA> llіHv} %6^O2Bz^bYX(a)yCDN"]&iuY)sǏePPryȶa$v/Pr@ͻʼ_22^6nl % 'J_ߐo{"=mSM*NߔޯJ.~K</_Fs1yo3wH;d/ݼ"BÇAArȠcJT d>4x^t }8NuX[5,m8ϾNýSYo]ʷ9 %L%R?U}Y濗sKܹGrZ Xt<{}q?^uF{qqm]"߁W_ JZR2r[$9x\A KҼc@I4$3$׹eQF]IiUaw[_w%}u1!xMw*rC7u]{{kֻ1zT{6ul:!»]Ngho1^,\J[c/G{-_]/=&N~^÷fV;Pi6i4hI}`(yoD.[N?%nAmirmZzD(Pzxq==Zw=xsY2o*Vb}^u'[>gw/z[|X ??sC}b3JrW %&^:4??z L=hg)  R‚I46)JtebսխV`*c\`_2ïw+mT aHuRli_Gu=}9zy/waqcsדz}uqާ!T/FVcwُ6m'1\C'=eCz2_,#ӧu=7rj3ڃuR4fHuUc %;ݣd2LZ{\N]+K֎%}Pl$pw;u񒫷闗X;a^j9 0̵-/Au>cXק>{u|{s ܧ }/rm8w2muPr7y{da鏆\CǵA]m0c0(ٯY_+Q vy.PBPp'eloQ>˨ͷ1ou %veʅ][z8.U=4LEҪp0ձ8nwǵ{v=Qў!>Q 66>x]> |zn甽Hײwkw#=ٻm@w񽞳>Q#z򞲡$r>Ay!ʣۖ)$qȍ}y=%f3 }"wʙ*S!lE %O~W=nQ'-9FZ/`G]K B?,W\]r֜^*s֔&gw'AiL:>6r{QKM5Cu]^O}~kӭv_gd wswUOrM|=Qmu\K\%58efmIUk\VL%5f&\#A<7(2O9S+ˆZM@(2<~uw`=l׭xAu`0u^NU;CwLP^=Ә}W"ou9am;N{_k=Kܯwtوq]е[\^Tߝєh<6<˻z{ݻO;?wP\L{- ׮]K~PKfxrfH-6Q rM3Ԛ7:6$<ٶKDc?Fi$P6 ߺ(aSqJ-My㯲ju|HUmJ._,Z!ӧא-kH-Xi ٢Csn:_.5!݂ < u|>]xsD{ֱ@perfg7e+ %O$'\WY{JT蛽k4_Kru"D(%f3O;>H?.J{Ds)yLeӉJkݸ,,OrEGSk9rHֲ59m ?ĩzn9Snخl*~j{Ymyl׹㱃'/_~7K{q8^_}>>{l붳OYvS• @׭j= <7}2_;\$#i<޺Ju6lm}=au  1qC\G1Bm}z?B`jޙzE[)xdž{g3 '=ʠ3½oͳQ'N$wJ9B+b9r9'yW{ʆp. ȇVQ@nďx JokhmX>l-})7"O~Cw_~T*"?^lmʊlmꪾV漵Lne9OA &M6ᶝR=>}?!]7Yf7^}N]9n3:6$]q5l붳w`PPRr9w)ߍ!*5eؓkTD9rtKӥ]iv8>`Ӹf]!Y]D']`eo.$qK Jtzc9րNEګ.SF Qdf߿dYXdPͭ!>'3v+͂·%Htgؖ-S:]V?eߥGOmX(ٳ)SIjR浅9{gO65Y;89I\x:ظ>MΠˎ/xNλ14z {tA<3( HB #d"?퇿JEӧOKJĪUeb hl:13k6ۜVN/(rE9ueڃvy&PL@Pc$Ӯ_'JՠpKOyP񚼖n֧eߧu|&I;V((1+?{fH*|ˁ􄒿ˡk?* azoRP?ȩS ^2A((9p8cdۀ0P$9]eׯnzOX |,zE޷R+OCb@IOIǎ/Tם8q,,;mdۀ]$60I*ڼ{-ST f3( TN z't꫟|o1DoHeo=U!Cѣ믿VU,,UAA=ֱd3F hڅqۋ+˓'?,yI J) hh7_ܳ.Sc78ַf,J){z9%oPc9qP.ѝ'4hz@m#cW w8 yޓ|Y6P]h@, {%{26=h'Zצ~hsmT;=e>VxqWb}TQ{79収N~򔼕!$ $ c % BQ~/m=-GlRJF ްIyV`dـ]ݛdӋTNJ ~f̶]%ʉ[?8:y%qO&)q&1/BTk5˔SL0eSL0e jo*n<?%MPb{K 10fʀ) 2`ʀ) 2`@2jVPr#?)(A9%䔘-S 4Z7c 2`ʀ) 2`ʀ)Ϯ TP9rOmO.)9%V;o$HL0eSL0eSLH2PV J^{u`JR;P.#cocoSLx@T;~_EB?wy#PrC9tJr4 2`@_r]bK̹>{nn 22pM;sw~wt]Θ%W5P OIxL%`ʀ)/JH,\$v.:oؔSLHe /wPpO?]ɔP.~PBt*·LH<Lx5@b"rj+s6e*aYW%P29)B]yə\ǔ%S+wy.=c'c'SL0e@p:m(!h]wxJD{J8;:!)]vUpJL0e eEb3=e`)9>X#ZID:ϲ2$ 8ŵp>U*IgE4&v {r'{mSJZwsDggz"#j~f e {).Q/It8%J {t[O,(i$%}}I=qdžC3𼩤XwouDzmlg*iSR %}}I=R̾іS)+ Ho}޷.-U0!)IK$)F[ x~aR^/Q7kf۞l30ۙ ܔ%Q(Tg:)rg3e'嗁h%N[o P@ߠ$6(a"[v]}}_uޠA|}uy d$)>Ok<zu< )1@/o!<m]\e (?Ew? du]~4: @g $*L Qצ2.S2Jtw~ &nyJ(z^'y('o=@KS(=XDT^$/ olW<{uS_{-S_/l/CJ,) &0|_G> ['%l(I#?LPX+X5Eg31M)5P\M}<N)u;0Y&{Bɝ_"=%%:ѝ]$O;o2P?N_(X˱ Wlb䒘ϫ0PgKr,S_:Ry2ɔ@ɏyPtWW(aS7!A/%O^%(1T$ 2ˀ<#SLx@4EyH$(O?̭Gc9/ٯ~ yJU{7E)JLY}QʪNSVMx5@qJ0`#ZWnyJ%oI~OaDٯ1IgvD½>(·|LrJPOʾ>a(Pt7{5  0P2>UsO/~&@ UNt j!$) L9-P^%X~^v/ Oܓch:䆂V])y,]ɯRA( TʖxWa?Nj7n҉Woыq|6\ ﻦ|0>BḴ<~CjY{3mGaM0y3{_dp`͝ $Jk9@$(y5K%ѝ'^ꡟ?E*k%Nnh;mQ^HZaT6{uE.FnB?lj׋mvA,ö!E < O319@"- ܢ J^KV~w9{o1P򣔮 PVsSӾV  ».|30 ",=yƍs!J5$Dn/ \+lHP[h(UtC_S̵~RjDgBܝLԾ?pA@u,wy4Cﺂìs ?|K'gg8!70˯c0XŲy500x, $W~ J"ۺ#BJ$(NJ8O\a~ZMj݀Tg͙Z@) )?僒'%?ij$%?ysm Rܬ gXŁ9J01<%jO W  0P>Zsc/"AɏDAbNucosJ8w  7TQhX=缱 kglt)JR1e,`,`,`,@ %>M(J^K'_$Gjz}룪t iR$m܆Ír.ɹ]R^̱R gbXXXXghĆ (y-M%5o)ETjCNIRI7ڢsC$KjۜXX@ɳ9@, J~B]xGw3TM) r'>Y %1JRٲ*Ƿi[ƍaR:]8yl.]S>}'_\;q%.^\byS|^m7뾒x|f}7GnQ~ ds]|φo?(}QxA${x߾{w5Mјe||19$@[Y9n弃vP&oꮵ{uwuսOcLVw_ͮ8̮@}!RR_  H?\9}KHc;bY3={kyR_!u C^ _^|SkjcUj޽RbDjrd(q^v ȗ%.7`/&鲤y0|'ꚁaj3/id@Jv @#gO!9O&%:lKc)^3xRFӐlm]xx=7eJ>0bȼ" %9c=\'J7d#~(l7Fy.!icfz" G-԰(@J @LXI_S/ː÷r)/ֽ]ԭ<%UNJ\zmE A^NRb(R%~m5B" .ʑC0 m## 7lK{r2=}(2@ 16R"8#Ϟ_|Eww҆]e]Q9I|ݝ{J|!QΞ O?\^d Q[ͣ<=!M k{aغ8¶ZZtܕ(EZLʛ?H"_ǯr$ @H3_сtP %Wï7m` ޞޜ6vCo9Y"~5JT27{7!8|QML lwl?.lW7t:dwh|~?Tu qCg鳝=r۷䜒=?YF[Jo9DzOs- ØvE}J~r6͗І4F{=)C݁wik={+\␒g&'`rxo9v~p IJԊ{JũoVWEJҦ-)@"RR=z  LYMHyLJdWsW*ye5+vpKy'W`Iʊ;@T % @HJJxH}Ka[/1!yi*Zns} @J#P D$Rr%Jޓhʌ5~w'pP(@J)@5@hR2um.ቝyeZzu:zuzڰ~tg9R8PZڸR+2M(ν)/)4 % h&@F) %%_zu>@mTb6nZPy9bHX\#=I46 %h=@3K)Ѥ$$ %].%Y!yzM[#= %i A@/@HBJ41Ʌo<%5xOI܍b6Qm95[Z95tMi[ۥK{. m:5;84ͭwo-&rBS*,mWA[Luagͭy׫%=D$2!}޽KK;D݀@Fd,@THJJI%W) ?peuJ%Fwc=M'IӺ!p//)5q.ia^s)1MR"i5 yy1‘/'#\n(n>\D8mKP1![ԓv  Ps\@B8R5 t-~% ">Ѡ+(4e4F=nZwe?LG :aFUyE@Jr \'J7^vF#%ioI>-A}y< Փv4< % f␒izID-=咒s/;NO[DO]䉷Њ7]ݤBV$P!b~OAy%"%1 m%dM*ʏ羰DG؎j~Q7 ! %@dMLr Qң#?1LZa )B=-q·:o'="i ߊ]nP[5i°0OxJ h)"% d%? A@!&9R_B:{ON?2c'gkwп\?8)q³!Da\#- IFdPE CtHݻ\N)Û 6G\3WchώwKqqC"t X:V9E<(HjZA PHγ*t\̤$ËޣOl9ZgF- p Q$ I~IejR@ RR-=z @qHHD<)9II&X@J\@d)n׿[0(S@ @T3EF\+S?8|9|/Mr÷noO,$y{4KR"M}"RRV H7.wM ^T@)Eۀ@Røz~%Q~%J_ r~{@Jj_? :H4 PDJች')I˨IKitԩҠY@ %g1@4}C^)9+46k6sd-I7 y4 m@)A @I Fud-q1ѝ$%R0@Ё@___v S:hthgˮg;iȢ֢vڼn'b&LInd3`@t:P+:`3+]Hɱ_;Q2=4eˁ>))bUV@@t:PR=%36WJ41ɓ˿HɻSGgR+t:@t$"%BLr"~ʻ짭LJne`:@tu >) m@@t:P)pH*|KSr)>pIxJŭ\t:@ЁMJfn:MJc"24~^z~4hmm~~_WHa6𵵱E @=@-1ڐw@1OUw "%{%Y~N甈]sJcodx衇K:~xՊO)WoTYGvЁցZ1O$%¥øNM.5ąhȂmmi_ {0@wVVms5\zJ}:YKmF<ѿЁp1ӏvRrUFF9{mE7 yKx'5tu@^aV`90X`Bk~3O )|RyI <%_r%u7fff3V]G?Aڀip5OkRN`_ HI-V8-\ TB0OEųJKeƙ|I x&&% :+$rze4|2zyRZ]{뽩;iPM\'H{&O]ΪOOĚ(! cDH?r֏/&% Ύ~x%RLt0~{珯N|V`oK?}^u6Sa{leq=`"?S}y*9OsU\yJۙ3OD)ɤd-})9˩~LdRV ~l^6;v,F0phت4}7lUh~auz@m{߻&8y_XGwS16sy*D?DY Z<̻4O )O((OP9^HI넏?[LϏ_HxHIU5O?$hpR /7ƿR~=jwId{V˙SB;2`Y921Wr$̟֭g0~Ϥ RzPz)]\Gi3ckq<*iT|6ַz_BU1ShT#|^1OXhpۇyʝjh2"#͉Sr^$/Nø|{J#|+DÀ-` A8xJ))0<㑆:?SbI_#$է7z߱cdmnUn"%B]/GƤdVmt{vО4 FfuݦgP}AJb0IFT}cm]wtT3* ZLghޜL]C8|osEo [^,?۱ѽUH-y輛␒\8J`g;#&>o/}a0ږކbt0οVt$O2؟:umf7o?|6z×vMl" k6zorēa6}vKo{s"JF[ۮeA9IRϛS)϶g$r?x]pzTu"|mױhF ʅ@IdD>SJbI2vT#Q !rslxo H:']!xCloG[zzL(YQ-fV&n^,׊w<'MQ-y/nbɖmKH,)辳 M[},'SWu\0j>~}ە={h>'3iψtO&)u=5&Ĩ7yv angHJLr v=VBb]/f=OȪ9HԩSJdT[bk/v=2̨7˗$vVI.]/`$@ +lDե tL_ۣ5ǔ 4zzsA;Z6|0Gv=5! )yN4iʑ$F~TrVGݕj6z[ۮ /𐤬6R"Bo~ThxFgf$Fid$FxZ[a/>`dilo @Y"%݊, &q)!%:ЌuJ49ɑ.:Ј-4bz}Vz}Vڰ]7dhfdX !%amFx٠= 2;)ڕ#@aٗ#eT}:t+iґ~9ece":EJ4!9{ 2CL oiR a1VHIuT2$)WDv B+*>F{IH[g@MH~ҟgz饗<$#O\%SCvwAn>鑾K ) :s{בێпI73 XJ\OxW~+Qua{)<'l#?t-seĠ3 BˢTJ?0F'HNTgτp= XRO!/#P2-Af^QJOiZՇ]/U?gӞ/m)Rjc'o_.ygl!o?'}R]v# &_z~r-w wz f@ԧ̔3{CRξe>[ۮW T,;~9vfo=R&$oF1SZ7dCJaT JI޾pCc ZkJ~Wo*@ SRhoW4wJO s.÷Nc,G["?11R@JސʄԐ!gDnP@J`E@ I4wǗJ1aQyOSﯠ'}%oLP>rߛI =z@H , v$%w*O4 H~%Sг \WSVJ7ݗA+fst@@5'N G SRK3)1)9);M/O_O/}Z?x%0H 0@?y"G HIɾޯiίBH ŤdćY蕙hng']s[ <%\&OLz74EZf uvvż} t'su*OJOm709YO#I`@:Iӧs'wwucEtGm)Sl ʒKTff~xJRX!Mà<ƴ6SSS+Z{ і^~QulԽ5Ʈ{'{hQD67P~hVLg*]&%#FOP_?OGbvK;v6'.7+RRyUy[ș/ VxSikw˫kO7xݜjr3+܋/ޓʴ4|J^fY~5Q6 P~81CIIkYI#AD9*/8:BPʊg[3ÌnCyJq=>+(1{0`r Z<pR"zH>R p5'OR!;vhMzzZl%}ѧvzڝ3g[oLp:nlz"BI}V2Q">̖z0:uClxFJDOG 1>@\JGs\Ze/}w4)y:J{Jl!zyI7t+Nz1-_;0oU$~e%<2|jgIf@JjcBZ<pEV+)q%mЭ8E-_ 8$B)kyEoɵ0?ZzP,()/#]}4̕vӿp;HIHVrb!+MiMƫ%H5}D(Ė? B¼*0P/J=OyBRy1^BBVe $)I>%R } >Tچ[<^܅y=T^ab^FٓW /]pQwҿp0HIQ8Ԝ'$Q Py#}q˯gKoKz/,(ƣRҠ3|9N(Oʦo_ LA]wj)))Pe,U %1&%"(Rr=HI1G-)xo3s[m.S5!+%I]pR/`eѰϋyF~o%}AJj^/Kc ަV+JhoMJ|fyW[’.F8U^w2vx'>/UN ))bIȞ#}ěr׬P[?<%*$a`< zH8^8)No+v]{+cJ\Hc[l6W[!ڈߓV_y2ltOWNf*jg;^C~ GaZG&vfz[P8:J{%T$I&ƶ>_/l4:^EnW cqY"ca{?AZx½@J|&F@=#Wsڶʒ++Y+q^ \$W"c:Npxb|r R꼉̀HOLX^nR"!\W_9eJ8Lr/·`À@Rl @ !P RrҀKM]r%uWVVKSWtͭ``=j2V %54+@E Hizyz55:u5aR[RRUrt )i@%%粧42y~zv*zvJZ(}fxJuG:P^)YU@4(%% )9ENZMOMXIO_No=DSí % :ã@Bh)z4c?xl?o۷@B`Cʫ %54+@E)ɣ*Bȏ w]SB,9xW4 f j %Kï/%t'H H 69C)HI ʨ*@A()9W{J[Au=%o8W\Q'x % :ã@BKRozv*bbpɞz)W{ }V:RRC2 hP*KJ.OW&' \oߪFu =)i@ٓi.Nt?ҁ^^^r畬ځsJ`՞>CUЬ   4jvz}Vfze&Z܂j^@HIh6@<)9~ZNo.Aosц=躟 :HA@JjhVFU @9H_yBr[S¤E;i̢vpi_]?+ѵB_U4 f jIޞIHIL H;iv&'";h3@JB q5Lt ֮]O uvvzRl @JkCLW"$ceB"y1<$WЄ@MHg67}?)sbk+}0m)IiE6@ `G {RE~۱ѽ 6t6u ?=f M>=' .+VO)"5)񅇘<%]rz%\ʟ[i.S%A)·R5@d@X!)?4R&%oJZBtuKLJKA"a@5^g2!S jAJl?7d3N6F5n@:P[ %Umr@#=)fo;CBL)9M(b¤dKJ)w.t -( PdMJvwIm[O+b)Q[55QSskbdX jKjK/kLks̠qV6uoiA ڟFq=oFڞ[0IdE1zmbY3f6jq%<^u8uh-<^Fq*>{xsEEWM?,5&ZM,eRcBYJ`=)>r*-bRHJChOI_3qW=lx%0UYQ&McSjzK bH?2hK-4,5}߶j(NO >_QB ka6 #%-ɲeh}<%lx%KKMϊ!FO1ğNI_Bq V~^rl#)=B'O|_xlMa okS#%\4Yo ̧M&%YO%U@JFDldOoO-!%O>kp.u_VD-QoKw=J&,q[lރcVBg_`QI9'΢@k;_`@~Q7)\ňP}x<{4R2 ?MӾ$ϮoHIOyR"F+-lDxH`p:`Kw=Jf,u;-_{0:ǀֿFG(8xx,wq((Z|㵇jqMjb{<Zl!%x@J<㵮1+GQ:z]/,yLzyPaDo62/dOJ*R" *$%}H-rSIDATӆxhRӓn+]Qp82tm!z{noZ +N87*S:(zdl$[M_^C>ߏvWO$ mT'DJtףw2igt(O 1 "%r{OO/uw.ھc'm޼$hlO4kx]A}zlM#0<Σ 'm!z{oXL]쩱WFkEyJo^BIJb? a5?k1q%)IV)ZIǐwkQ1mbnj@דH5qzw5SVdoIJޓJFXd4(۷1 RR`HbJiĕ+|(RgM/(IU^Aab.Qͭ ^WaR! &f6?wl _m_RM$LץRXd*&k]V$n =+A@ך>^(P()o_ST^A+Jv^K}H$}^S"[4F3KC%ߠ~CA!s =%;Ҍ$&gSrEQG j 8SzigҔ]{˽)O蒍qBJ5*c/ĭ2=1F-m X[慒ϳQTHm 9SR4)_; E0Z[go'HI<%6KV㐍RĬ0=ϖvݩXĒڿBJ|fg%>^1bO/82!%qcN% ss[)$nK?4}"LH\2'ISK@g4}19E}|t}g!=7~1=Ǵfw"%z"=%!;ޱZTDH_)qko+҆V~u3a!5`y÷ nY*>H$J؄_)Qo~oӷI^`-K#=%ĨOW ) Gb݈nE?w1 zN̗䈌ShߦK?q˷qkE BçyFw+*:?"?^;%خ;.,CA _,/)e30(3MkV#vժ|菳WG>݈n%<|4]W#ŸoW6~m0{Eםg ^,/b0ek[,RGultGhS4e15;CJ?]L;{/#ѣoLagcf{?#)Zl9ZVVYǖb)O Rt>)',̝r.ZQ jix#hN&Vo3)9":C~u2i3qܼ^Yj1z}xbm?H ' -iXrmC732@ ~.I9+XUҤ|N2Z~$ %04DqugiT dIJnF&%o v(r"+ 5{'^`%6c 6s-mIy ۷VN޸t:Po:R 3: a2'%{Ѩyh7H^I}荶4r5g#69ag@RQu @ 9)yJ[#% Hg[YјivQnAJ-i1ɇNZԯIqeg cDnb7}e+Nu)|8c[gAf"[3וLJuXR?s&_h-<^}aω)^WzfIJn-h/)X·.jPf"27Hd7m=G7Hɖ 2ʆȟP_ 0c&04 g1DUj+TUQR[ӤbR'c#u3Se1AsC31>KџRG~^ _9*BWjٰh_a':|$%jO s.DH1&%0y_.Kd~))Y!nKZUޕ'QzY pDDkx9b1F E#9S_WeFgܕP߆6,}=+#2,mW \?yXˏh_^2c+(Hq}8GD %ɧjN7Sone]*UtO| =8jCßn/{DXaso0ȋ?J~~J_'A/ yCK_[zEH _$FRR]}TI0k'F=iGXas۵ 0ȋ?J~~_jH]:WUj+Bb`^7: w2 J'*Ëj8@GcǎQooGw4?Nᖟ?LJJޘI"%G?!%tCJLJBVeoT[ 2rG -F[))++7T bI|PerRw4~>oFh.;> !G*c4aڿ) Yi/f5>UKAD0<}2:lyAJ"1 կpbI poęex 9Ӥ2FK/Vk_s,Ư[Cڟ5)^&%7DIWi/)ўEJX2!%&aXTS9AF6"7hEjaiOJ|dW \xI/go߰)ܧ=iL?$=CN߇ot#%ðb2A{Vr|mb/dG/Vj^w7W_)cW!FTv{J~Meq۷xOxǻ1q޾ATMaTKyr+CP{}^Ӥ~-z^K@]1Kyv65KOSINtW"{N Q2_ ,2_ ) (ˍz 2Pџן %^+3CٕWϔ7Ot7OR34y`{ƻ3<<B71>'NkB[wƍ[h rlrZx _OJg4ݻD{ ̝"@@6&%_dޡE")`@f(i$'xf"23ʏEv甀@ &)9ydttt;С#LH6+rZl-d)-\1HIʓ.@`2%%dQ;ʛQJ&%_z%uW3Ы3s~p02a5uW^u@R.㑇Lig#B[}u'Uē?bk2ۿT#~IvvV{D?4ebNA!TS"nhV a;Ce@o e` I 1qqIJ31*oH\RRI!J>xE&j#h0YQRR)e %8S'1pC÷RX1vb,ў*+ j$*bgW"q <9p!;^^OHI:Or$%?AZ~^#LJDPg/y4%zU>?evo I$ 3Ϳ5.V¼-=$~c1i^{K|e[ۧ=(F>4.Y /.>ҹ, rL7YxVJI1:g|(Kbp|Al) #&T.KBO p/PG)={!%\xzְ7gcg%+6kn++eLUSR4)8^\@%ϓajRQ )HIP>[_VubMY0b$Q} [w s_*@Ȗ eRr JZ'/S㒒s/9=䩱 qh4)XDy=([MW#-cae>(o%Hk\A  W(c] [F(ҨHI [D=([MW#-caRV0¨ UhHB=%.^"|+[k,I w 5|8&#܋;Nϼ=3#z%JVo?D?zTd^mtGon"nD7j6m&Kk XG] >÷̗!ka+>5 ۾0|/HI$)8QG!HM:^1Ƚ 0^_ \XG?!%QQٛ/0C6Z '_7xjr|LϽ =7Sd~j3lP~ %2%@E KR;[: |멱 )o3SRR0a8Cʯ %;ɣ@ZA KR~>J/O[cohؘI&(ߏ𭲆oPq ̡ZQO @"%)_:'Xo["t %)iI-@ YmE#]}˿)'_NtL?6,Zi/]{O)I jtyV3pV))@4.Y[~kڸFݚ3t%OJ~:^?2E7sJMLJKA"[ꅾ@ցj$%QuNh9@qȒzoh^zkN%o.hW},]|?I/Gd &%@J6R? a@HINh9@VȒvoiˁ>n%o/ޥD+8{Jz')BRj<%cdF_CHILɨ'@qȒ n_`?[W؏(>oQ9`RKV{Ix;7:'?$R]mmu4ND6Q7Ũ̓P/) 9ohs3 m7V %;grw4NDv2P:m[|ڮϏhU?i]= 2/Q@W)IdDk-c`m-<^{HﺌמUf72ڳ:kϮ7^{VY0&%͓իq;Dg]M~' ӿfYßk_'kGO $ N:r MN+̻|>cum@J6aFcX}.cʯyf9CVQ?k]Sc;\{bCiA(#!ອ<#xJGD<>i7HI +@JcX}.c]T~50˹o2YD<݃Uu?mR<%գasP#XW*JJϑŊ)XHIUyH2!D}f+o))): 58<1<E'ƃ?SRroIOREHW#5H oq֟9l߇O?> )@RR]D7}. 'ncRI8&$"c?ޣ;OJd{? #ge2omT'91} z @}"%)g-hGxg+SS¯;376/۰'@FJfM@#@ԭ6c""d7YKI\z%u_NtE9%{[)@RЁ÷ybFaBYS?"+ 5]0*=I/NYN s>U~{#v0ڌ :z)a@@om%tː4:c 2}5 `?B='K65]x7)5oG6=F7o % %X%@RЁ{0*@):<5di#=Kddʦ}=LJ~R1R -@}@փ=HI} w#t:P)zG M[KSWPE)]o.!%7 RR)@Y %/xџ@u yg}4m]oNzO RRFy`Y %[W@:zp/(35GJy;.2ǖsvӔz'ex|ݠk=<^[w<,6}XRۧ-~n;n$}f$eޢu7mE~ŏ#ՎLYS:|K<%rD& !1ۮjDHI4I[?C%n>?nZ[?! -[ۮ%2!`Ş1=dz"<w?iRAD ytRi<Կ2b8v(,i[p|IL*GJd^n0,_ʲŐ)CjkXuRWJJii PkDz%Q+>zjFgQoʲŐ)CR 0RWRJi3;E.Xr2R=~Ya2A!ZP% 2#iG{:1Cov=-@>@ j<>YaS3!ZP^8uy2b$%>Ϗ$[?7-[ۮܓ \k4.)CX 0Rvf( bݟTR^[u # /yI{ŶOSl,$'Ftdq{@F*) 1 !%amO,Ɯ} %]W!ʺaa{[ `|TZ?3 j%;7Jîf(D xt]0<%WJ Ϫ~$#CX@I&&}g*- L0^aӈ.F eyJ1%%/}z'f~[ۮd@ Ԍ0(ـn$ӈW9y= c|l&&USuayXUX޾,+%).ltbyD寯z.Hﺧn5i4SS6|fcUYHF|OVv=OMy|/\weHI}8|!u\#'*}mobn׃|w]ƣ\݌kʳcCى 6|$: R2U}H'S5>'G\wlpO<NũܤD-M}Xa5c$[LL3I"&=.IIzp`|+ȉDBdG HI'6Rw-A#nhV a;Ce6s0|k(G&P$ =>"q <9p!;^kOEL@JJ!& %UnTxH9#[g~/In.Cp|A%-^@F `P4.Y /.>U^d?Vp$)sF^7 Kbp|A=ezS@F_\,K{s|~-)l.KHIӀKM]M>~;b ·7(o%Hk#RPOJyB~'MJmVdzTd^mtGon"nD7j6m&Kk XG[ >÷̗!ka+>{ŏO %Y>erm?0ɻ:?^ǫKt&rFt8!2DEdD Y ۬kMB/ |@Js==ۖr-MF@J*il aoЁZׁr; pR&bOICKh<#R֍: _)OF1 &螱uh8@Jw2@j]1%4)RF ԯdl { @ RR9 5-t:P:PnR ߂ZLzDFK-?t:P:PD}=t󽿢@ٻw/4(z42& @\@Jw2@j])kh> @@J`ԺтC!%_6"|KyJ@Ju{OmwlnX7"N7jCbY7H7ďs@Y̿ZۍRsd^ICv2{ƻ<@1vF<(xEᑽ z(׹x==NkiJE "%-!'bxomn!͈/Q3?9-;0 Q %k1* h 9 %% nzxE◈exD@2r9IMN)Id4Q+ZK cg`&ƙ(]o2 qMu2|!a=_?Q^ vͺm++{̃II' !iij}\_g]M~CuN_OIDJ e?*|DN4GJ67^{ L1zR.ϻgM:cFfuPxYQ0:yz>?Eg]M~' #oZ}}5ɣ'X'D HIZRy#{˘0|+ &nYtN-[FwScGs B.OGN)?09+"H HIDfT;aވ'2f8Ka?EW@L<\v+ިqDՇWd֤Mcq!3k砱(" G$(RjqJy%D%RAW YoC⒒HQP?x!eq/T)]C 󢀔4!cxNb~iU&^`Eݠ-鍑Y>x#}KbR÷㰭GߘLeR[;4PK3.aϭwfs׹/O"zJ)fa_-%!xxmic~ny>ck:hiDJ Ⱦl7Ӫ>ATWI%__mD Rބ^NEl JsWךD+k|u*mx]`p oz8W? ƽm4 4 "%eWA<^{HIDʹόڳIIH%_FhrI봦t=VޒIE:ЌuQo1)16?fW)Sb+pHI)WfiO| =xiCJc4zI?+'@X"Yq7廧-AzjkuMtUĤt|_•LQdCL<\D* ׂjm5s֤1)~6B>υ1>~&l1`3\wfN}!,Ӗ 2bR:>/Jf8Oa1qp LNxUTH}WhX6#׃ƭImvvik={+s/r^ ;-'Σn+6) 28u=d%\VoY !%Aj2 myAJ[nʼnKJ"˄P4) zK5iQs^!IťW )3^Ŭ S\OnL2}3(iྷj-0z'O(mǨ=w_1\'ykQc!ɇDž|b zQK1gMJno)̉"%W0)9+h z~§Os =gvؤ$[OIqFURW¥ u<^tHQҖQΫ5*PRkxJctcIS;4RtHQҖQ.quj%aS:=qcޭZ"%?)B2yeGNz\taR"'ʉɎ8y)qX$.#[m@.0c]QF[31Rfu Æ% xEl폸n [CSkfũlMOE5!AF}qY&%^$hrlD&hu!Fx]wM Æ%m<{YwſG\-OQFy@H w3H=?7u"tOu #Sh#J{o &u}d{JVĕ|Qxr8m(&++KHM _D 6GjFw5÷LeI)yiTG^֤dّj\A[%d@ 1Bz{WRDJ<܂NZF%ˠ-[1{W0$_+o=%x{};']ru&ʞϔNzJ*c<+MJ/\Z^o)aYw`rCEcf됖#}&P8߾=DW;oߺ}ֻw3?bVo?H~?<%e6ZPH H ,t:P: o>dz9G]pNɓc"ocO+A)_-@d9:^W뤉z@@YHIYf1a#}4lFsJ+x*yGq@CHIxI?IWtZu {RfR2kc!'"Rr6r>S7&(7knwNտ %Ug B@T %0FA@I&&^O ǘ<6zˇ{LDk)3U@^):TT\toofC5%+koK[b>@H j5FP/&t:PqR{; i%.Uu;HIf ǧ.75iM; &,ͭra--mhv>ݚf>dЄ_$(6{-ׇe@ި.?z3wqcU.| ˏa>ݖ<^:6xN[׿rFץ'_ox'm=WH=QGSJ ʅowsN/'| Қ臷'?T̟ Ffks=jڟOJlR`0a]]/U KנX X9y)Y20Hhdzk3>ٞt=J0/O/Q>4=_AzO˩ˑJ_vQz+OJ.:zOKSыRe]_ĉ %,BQl0 DT\7`Zʑge߆Bf4t!u\N51a%y|_3zꥐ2[ˠ^>1'AB]^K &R*K/1jc1cF)*Fޞp=+601p;r}waxmz o) מ~Qo\S sUUCJ^9Y740H?I"Ok*C_ 0)ei_A/W?{>#nL-s3I_7LwbF*Lb{?*#V,>ϋ@+1ҧmT$ peHL<%Q7cW!!`x`fTڗ++#Gg^1T3IE 5k;?1W~~9}w}vf} )+#ZMR"['D%/19Y RגK>~X 0w7ĿZIJbkP:hV :c6Q]/S`3BrDKDiO1zQV\uJտ(O]M)a%~ %q zxCHI:hudxzL#f4z tFhL0a-i뿴ڧazQHru)$$ֿ6QF󘫋 /C"II_qR6˞>$ ?s÷?GFM K7 㥏Qn{Z)ޑZ*)F)?uO HI;T7vT+uͨ)X7?_A7ij:D)K}#% ]XzN4&QҤ$n!r{q)SR4))'%\ɱq w3?uߏ9x›B&#C* ,1j-o2<"x[tJ#%[ қȽ[]yjY +0*et ^ĆOI x@V= C2ٴr>''2q3(+>/.;WEu_HIr8KOFM|^&]nF?.շ*Hɡ+1Qht-"|$4ZF:Rڌԧ|:kt8O&<fRW&_^撒AJӦAa@J̫iF]Ї@@I4zW+YE· TBL3ht:P:PqRr΅۷35zg}@J˦Ama@Jj҆>@U*NJν)9v_?ZWGm T P2FJzt.t X*NJλXNt?A?Irx⤥vaa'l  C0@@I%WRGIzi2# %ujY@T#j^Mt|8ژ_%W~cRҙ#%˘,yJDwxJ1vl'y+80V5C)& E>'}C3)欄>ӁI',yOm:<Xs%A:9:5"$a^ͅ'=n HI 9:5"$a^Cy' e ЁudOԶG!%^{ӳi~cSon;۷@JJ[IIsk{Af~7 B/i[|DN5{KxiZzh@nJ5@Jꋔ1<^~DױɁc<㵇[O|ixD|kz?uZϚ翣=_-<үHɷ霋.Sozy$O2lԇ7> ;?RR!GI)Q)S"d\' |'6ͭB\ DzJb'.EM %R/[!@JӨrDJQD@3 )ǀ $ CyEzJbϕ R0įWgdôW4g)TuNIYLFf_FL?2kv /^+ :~ IDJb(T'J. xC+'ʬZ5)2+G']:I~W&$1| /? RR!32ILsOI#RRr1SeHߓB$OJ/O=GfNJ~{Ǥd/<VHwRrIɣO^AJ*n8d -oȔڣxM =%FIv[U`BE)I=Rµ8=kRHJ0wV!_1#|>uY;~iAW9nS2Z,][e6\^ g{^DBxx$mlljiqwh--^+=YP\ RRO^8^}#hm׃Z07x=7{INz/ `Og 2'%#BJSOO}%>ݫŊA=@J`ԳAAe#%r,рcӓc'ޜM+6W߅=%uc!@TڞapЁzցIɝdSr܋~%.gg9j~{@J*mŠ| 4lРmo@m@DŽdWO9>RBC@Jj{†@Y琒',QzAtOSL8 :hDzKuj @rN=/)r<%ܛ$׈ :))㬊@(*JJι2wO"Y&'"jOwt:5?"@ ~%~zԸ43,U[Nc:))㬊@(*JJDw9DSd喽))*9t:5?"@ʓwD%J̤C@JR0FJUrt*@,)9%yOɻDUO H@:RRD@ PF*JJFw>u'uKjiN #t:PK:RRYE @QTȉ='ieJ^3Z8kɀ@]aBiHIQ# @()9+F\M~.nv8ٲnAl6 5?"@c'һw>ڕ{ @ :RRYE @QT|7'.C[M %0R0\mF^^Ԫ5?"@ʒMR>z փLJ~O r3t ))㬊@(*JJ.rI{#-5Ƥ{%%ED@:A /E:@d9O?Ӣ^4RHI­@r))c YSVRraD<&S@@=HI=@T"Rbnv亷jr9mSOն]oC Ɣ@T!YSvRrܗ͉}+W+]2"ELv=2d&k$tu,iXGXOHٶ(/5m׋ eB Lbu@T Rrz%;`q|^9t)Q}(I87ۮ&BADczoH$&=IәqJms[KMou[pT,{ v,@ YSVRr{ۋw1v~\Ġ^"o:=̨7˗& OZI4|m5iz[ۮ'2"`RRƎDQ@:E yNJ\M.7{d#%7v=-%Hbu[RҤL$mK4XRmד`{@r))sg8 @"I oCI<'AHOcK}RG6Ťפ#+HR RF $Bv@D yJJcRwD~^mۢdngGJLۿC]OKAv-H$~m'i[)KҮ^JG@ &Y %1; @(YSvRrUw^`=4},SF_tمe9؃}HYSVRr%WRg5dmA ? %i+46  v#=jڨ'%FOW%`úh;_LA:4r`RCp@D ;.yW}%RhBl/iR{>F uy--3AJ=X< @!PRBEg[sF)U<% xNt\GM)a%~Y %Q@>rOJ01yi'J@J*lVp\57 /k8VwdfJJĻF*FJOgݓRXFLc @A¤ ߒЭWTgJ8H|7<%eUOxSפSbaH3L,x[o7ZxJ&`?ߺ C4,Sh.(!|+yVB&%J~c#zJlqYiC1@:F y)9Omt?I# Y~Şo#qo5_ :$!%^;V []}CtQ>WfhZec @[J̮)~{)Q"rh!Ea^ l>;}GS[r)pB@A yNJ._ |p-4dîxV( Y5MV;J;@YSVRr|NIi5{6dN>gߪ!EBUlOl<z=6j-߸ %qzԩ && jm.<< P>xHؖ Zu P;d9O$%陱s)&&O! 5SrQ{k3555)inm/(!Q&!Bh%m CJp㺧>&*}5 *HwJ@;YSVRrSr^PI;dlZyaOIOI)Q)S"d\' |IJf!.^"=%1ТHI V= (V޲v 'WQ*@rܷo<ziox_Do%t:_!iA#`ЁFց4朰<><Oe4|RZ~PR{n*FvEZۧNӋW^HaS0@ցSrʻZd5^onoxf~ftt %f9Ohin?K4R^Ei 4Osp-1k mxKȠ:զΠ͔)K9`&%LlV~4&Zzxf~ftt;l``+= 6y()9r#&82I)9~+py57}|C]zzz_/:vؘo+>^j9H*L )-BFi-[&%ŌՒ&:h<gZ} Y+:P"%B<%^v5;qxN%Ӗ= %%4>L>d1b{IN)B"'C*(dSc4rHU@i뀌oBK?Cэw(R -ܢ&f)9qUDTBrh򐀔` jԁ^eBo}+GLjd1^ r~Uó]::PM$˿I=' vn=]tE$%'OMP]%юN:tH ]!-Z~1cLi14OIמ}%9Rr)qdD&o~}y:uj,R{ю;i˖m%˦M[h }gRjkB҃W\Ƽ &ɓ1vRx-B-D~1sq ^yj/~)Z+Y8RWކ B>,͞=;)ղ]֭iÆ%˺uiժ5*?xJA uЃ??׏Z<%Yȑa=p >6jсjLOID6kbŋc#G*/ƍ[h͚%UkW*VxJ)dzoiiQ])I{޽{/J .Cv ^l=lZ :X:PM󔹧,DqhbH֭;h bEɧ.# J(3 I}+z$WXAA_^6c ^xԖT&$&%0^˧K5tu eTfDVjI(u$@:xWI?W:#$t:iYSw2#OIF޵чCt:@ %qAt:@t:Rb+$t:@ % % %t:@ЁH  @t:@t:@*œCt=][ƾll:@t:8:`%%^M9MX#)Dq :@t IeLJN|Ae_N1)_[(&@@tqt )1)y='"l;K7`lQ* kt:@Ё$:`%%\6IYq;z#@ %ց${1At:hWQ34vW6 7]t6H)i@t:HVRrWPw)zsZWkh~@J)Ib @t:8:`%%]r9u7f} u4A OI(5t:@@s/@>W̲FXBwA)$$QL܋ :@@}kڎVRrERGO?<|t:@ЁH0CJ :˜}ČOk3?#}qipt:@kV39p9pms~bclt"g@t:t ,d/đm+h4J*&%Gqx"uI)$t:@3Lk4qDe3uW*R2zj%\IJJn<@t:MoiR"lIMAߠt:@ցؤD\+y}Rڰ0]7^ :@t:(IDToܒo:} #>]^۪uT6bnl[WSˍQ}\.۷~QڰGIr{us{('m:ʑ8U[Ys^rY)e7`Yy7ZeغVn;DvUGiNZu{z {}=ym9x>E;3,Kn;i"egz:?'-__^޿}| +ukđ=]Dno3J\}rt̑PoN.G ?wZ9qS zVynGPrv]w\qg|-::D^S:HwuZp`Vm1.K0q8~vy˖sc6Jڍ9Ἱޒ|ݝ!$M>#5)G_\n#os,H۴8ǬwoU/W̺ gGUg6nG}[x'}bMYdܩ`=^6 >qDzu!si)9{ŰS>sT6vP vOZskR?FIʼns g39)Ey%QsЛ7 7;)p5okub|Lç.d|Gc${.N_:4Y_D{e)IhY^w9y^'KI+}z{}6z\P}sy|zi䷔FZIoW$Qs7p;7k+O 97;x{:= z鯣s=\z3ӳVӋngoWlWY^FAc?ɫi`]?xfn:M\weiCf˒d$uP4}mg9;_)_NiB#>&gQq( LОse.*iwdNE#ѧnC9_s[eHK۶/X`:d֖3Jt@Zi~Iф4~zg~>g;܎zv'.I+>FSVsKSYvD6E>9r')g>5L6pfnEmi?_;RϪ -xD~3:X혳۶$m^Ctє<.?B>?rؑ¿O{r MX*gO"{_}"~hh7]?; YVt9+:Zg|#NO;}{Kshܒ6v=orem<7nw%\׿`i^[Ș; n.6~^9yC4#3%x9z2F9Qyqvߥ.vH8!uKccOm%{ԧ/iU>&'?'ϷU7-a|Vw>dq\5ȧ)Y\){uZ͉|w,ŹMWZqRpyo!zewWXWelcNtUf]ie̎#wg['\Im6/"sd.?Z<=|_iW]eY1w˞ 6]r̖B8AlRM^MBJF^Mo[H8&$o必/0/KX"%(B"{H.S1B2UNJS%/1yEjr<ĄɳBNH LJZ`).dCJFY#%o )^g\OLgR2/$OJ(rKNs܇1)6fyR2v"%OMI znz~͡dEJϔIL0bII1acBȉERIJ$%&g!FH?ER "&"9E I!'yy cQ̆2"%A&璗""L*EB|iϑ'ELD?>!Z-z,LV9Owqn`HTH>!@. T\QdH~SI9s"划i yrHZ:1O]~wi#%~=gB$\Ft t)LT]u}ŀ~k26}Kmؚ JĻE{kF"*Om MGSNsPEDht]3+oEX;mA{ZvW{]qf&z*K"$hŸBZ<" DGir"s 朑01yK$KOxZҶFJt'b/']x/Ke0y L/``)V%fGoMb#Fژ R$'FZwAD<%٫`'|H<Ƕ;1k4&&LDV [sEV\3R=LT^i R"F>9N.;&+yФ$)y#1O8w?bQEr!dW #0|]x2)H]QR n7q8N &T]崃zբq8Z~*ωHԳh^S qT";dSpQ'S*[gLk9.Sߟ[tF_xi)8:~nbR"[.qJ^fs+1̧.eҨ9a7?O"royܴBRH8xMINBhU$ȶZ~$!$9ЏcoKMO>$=t'/.b }zMpR'tg+wqM]ss O~)O| ()#:HO+xE_Sr8yvI/ (9&OGrrf{ﴒN_xWP/؉/Ws+=5N+gϫaiƐw[Du>e# \'r:Y:.\('"ϣ_iyD}!/W{9u5[\{rD6䚧N2]  9b\A^r.e \`ȅ}.W#]|蒫M h0SgO<\-~>-Ksk>jZk<׏'>-U>֏D艣#1)snu[6mh5.A,Дɽ~񦵵%> {cw~\)^u..a |;T1.7?[o~(BO;W IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/figures/single-revision-cmenu.png0000644000000000000000000004507614023111777022775 0ustar00rootrootPNG  IHDR?9Xu|sRGBgAMA a pHYsodtEXtSoftwarePaint.NET v3.5.100rIIDATx^xE}4vgNv&aY! y0 3",x1` a168 gc9'%+ Vީ>^[էNU_{v|Fl0{OCK0^1m==Z]S}"ꓽ2BVWudgo0pxWmi⑊+ZxdD`^ moC度fitpBGu> xW"dH喓3;ƊDĔ;Փ>҇t>g sX) X}WFܯS~Y̲>p؄}|#vTu2ꓽ2w[Ys/j pF׆|It@#X}WF>ZYєۖaCkD`^ppv-w¦V앑vW"d'{eU>+#d`^!{UO٫:X}WF^ꓽ2BV앑nXX}WF^"ʁba^+gꓽ2BVWud'{eU>+#d`^!{UOH{ Θ9eLYPXȣ {%Oʈ;wz`勄om}xۛoaʼ9{bˈǢfy'{e^XuA@hCkk]kk#.+(ke޻aA=& 13_AAdx ʰꂺ@9v͡ҏMބg/ZeSLp$|sBNmzw~Oʈq/^1-iW y},֨Wyڂ&>+#?C~Wyw<*@kD`^鎽@Ee# }aMM<$@JV앑n+X}WF^ꓽ2BVWud'{eU>+#]7hjͮ/X[y@JVw{.U1PORqEYo.MܽQV{+s&T컹te9>ۦYwzDS'N>S֦J+X}WF\-|nTg_zf^q^I*sꮽ9zz .c~%TQV{kߨ.|wፁƶ3KWԯ),Wp54ԴɎ6_3CҋSEX}WF\=c͟ pG`ڡ*g-KOZyًKMO1ՙEEzqOʈ 5oSNuZfdL>բ$&\{M}1?9}OI|3A0+#.֕˼t83)9ꓽ2b/T[="piꈞS2hAXꓽ2nAxIE|4m鞒 >+#!56JlރtOV앑pdD`^!{UO٫:X}WF^ꓽ2BVWudxNrdv=%n6 +X}WF+#aٛSRTV6<«rS{l;g[W?iݿ~O27L'{e$,{ K.m=I,~o'l+a.O$ eoH'{e$\{+a**jmm{6}7~3Qi,jfGsXgM!4ӲsO3m@1kG$X}WFµn=8YP?qYws] C Cqk]7g[6!:̎i!M=G0BC1jZGH'{e$\{'nZ`1hvm=|fkW2-i9ān^E >+#ajUʮa;;t?! 1I-:܂e v q{llǭ5qe'{e$,{m[$]4g ,†ۺ8A܏k`{1F#^!}6%8j( OHh{U{=ZvfDms>"s;;E-iceZ-d_09qpCG >+#!ݟU0isK.Dԁ'{e$[d˕<X}WF$Sdx{϶BJVO{{+X}WF^ꓽ2BVWud'{eU>+#!mii)))9x`]]+X}WF< ee 233{<,+X}WF ;ҋ&,K_tβKUUU<W"dۛ/d֓GGU?T5/==yk -P].yH"^[Ydۛ񲔼-'+&=Rx'<𴗝>YdL.X}WF\wUV58r4%aoĜxS=𴷫޹{{ $d py%1cʒ ̟?^7uv4Lye1F0{ll7uZzyu(Oʈ7;;årFFFrr2xd駟TޟZ2;8Nzg0dbPđ m"f5" VO{֊ Xr9mnn9s-[?O^VVjgv61 6@Kf >84'1!. Fꓽ2n/HXWWW]] ?ۦ&hYYYfZtiRRvʙd ̨nUUUFee%,,,χ 邂͛7||D'{e}aQႹV]0BرcXW"dxk>|'dD`^ .AJVWud'{eU>+#d`^!{UO٫:X}WF^ꓽ2ҷED-P,>+#}k/@dЕ`^!{UO٫:X}WF^ꓽ2BV앑pM/ +X}WF²7b3~M)C'{e$}v?ŭ; ސ'{e$Y;^#T6h<7x۫ռ*GjdjVx~>+#~_{U?;bͰ [Mc9OrXzjJ,/U/*׋S>+#ab//N@,.fQ$zQ^`^ R~Z{,i\=%,F|:zM!0Y#SO!w$ >+#a;wψ7.uἽxȗP?i 9,Q~B5Dzt{u~@s0Yר#f"B{Ak387de{&m| iv q\'( !:Q)i=ۈ#mَ5ȁ> V앑ye /:R; m/Zč.p1|\h`L+F롡^3b9y'{e$M ++Waִ\Otkx ^Z0]k8x3#ڈkD7բ5g!Fꓽ2g暱wW\3~,l_=f˯j+xa٫٤QB:z6ÞǧV+g@TIl )Dz[LI.O*iD>+#x3u7h[6~`Ѩ.H=XSx{0#lOʈa+.xotF5,@6 ?x^-KԀOʈڛSkĎFn2<4RʭCl5SD7ꓽ27lKVv#Q@VF$^Oʈ݆>+#d`^!{UO٫:X}WF^ꓽ2BVWud'{eoϙ$(V앑rXX}WFYud'{eU>+#d`^!{UO٫:X}WF`oee}{wٽg{v->+dD`^ ^PǴ9s0BJV앑޻wϙg`VeB7wdWTgfdH߲OH{ uIUCϝ۷o~A>ꐽQV?{MuKn9}䞺8G{V·׼6nj+#(% [ֶQ肽E@YSXD'{e{vC߱E|I@"ҭ%{#Vw{Ϝ>Zș@`/7k4WFA>+#{겇Kn ֭p¾r eWƣ1_-f~jE!X}WF<t@({ÃMsd l ꓽ2^޳ww=X{ki-OHh{A\9O٫:X}WF^ꓽ2BVWud'{eU>+#6UP'{e$,{̦!GCAJV앑0 v,sWZyW"dx3շYOɣx۫H'dDJOo8~˓ c;ϼykכ_۴ eF^ݖ|}d{6aP禫Χ>s.wʞ82_vvvyd{|y]tş1V²;搽V{f]y]g=׹ocͼ|E|셦 ,2c1"< CJ-U†A;'T>+#WG+:x.?;.ooؖ +,w|NnAh}}6 6:8z*VO]zY֞*'lynWk[݁ Ԇ*kz=:r`^|yzL[q;ԭ3<}.hlXTy4ۄʁ'{eϯoӹ/;W%klιlS<ÃB\S6 ""4]Fr8{V_{g\u̹Oc߈9R{K߹ᕘ?1o{Oʈuc~ܼ?WnY S6}7^m ;'{eʹ+X}WF^ꓽ2BVWud'{eU>+#d`^!{UO٫:X}WF^ꓽ2ҷV  OHKD9P,>+#t:X}WF^ꓽ2BVWud'{eU>+#d`^!{UOHsͿyƯ.8T;7Q#ln>ڿ`^ %x{kzmYu]${|?dx X{m_X?g4l^gI܇N²kR}VǦU?֚߾Q/^:= MORb@-q&CTls &X}WFq»{S҇uLjfc3K+=#^L{KB Tm3m1Hꓽ2gW>?+O32hϟlѶk'7~߫%封GuZs[E5b'{e$/}߼igZ1-|BKuNꓽ2fjBcS A^#fDOCS4Ypc0l;'{e$=95Pp)tfuQՒ1..ВD<Ά`^gZ"l羺t[:ͽ%>+#~v/{# >+#Bd'{eU>+#d`^!{UO٫:X}WF^ꓽ2BVWud'{eoϙ$(V앑rXX}WFYud'{eU>+#d`^!{UO٫:X}WF^ꓽ2BVO{-_`Z<4^}" " }榦>ϡ5oګ7cu5{_X>+#ӣ_ϝYq+~ yTc7$|7y!?{5s ӁxS'{eތ;W-}ۯN~-!FY]w ?ڟ~!De2dowꓽ2b}-k.xg̎fuŭ-t/[pvx#p5ghF%u8?{iTOʈuq4V/EsA]h@ŽIgL.A+LҌæ i2C˷c;ƚN<ꓽ2b I.w^c}Ғyصz1S{o>y`H^k\7K7MCbfbMLk&G#X<>+#.ݺ Gѯ Oؼjvm^8g{t۶D7f ?.uz>Zİxy2X}WFܯx^F0i+-;dumxa?sfQ4McADŧ 8#Fǒ&dy2X}WF\mjl-W675-l܉cyT07Ow }}1^)chb-5:,uFDОM),ǵ3ꓽ2E"/-dHh~k/n >+#rً ]F>+#l/ d'{eU>+#d`^!{UO٫:X}WF^ꓽ2BVWud9Dꓽ2ҷQ O]9VWud'{eU>+#d`^!{UO٫:X}WF^ꓽ2a{t_hOH{ѴRy++#d`^!{UO٫:X}WF^ꓽ2BVWud'{eU>+#}k/$@dDꓽ2BWΪ'{eU>+#d`^!{UO٫:X}WF^ꓽ2BVWud]XEvVAսV앑۫+ި9#l/?~iK_;OHe2. '{e$zɋAZZC`^+#W;yU3gmُ-4j^A#Պ8F|.si&V. `^&sz{$(F\-S+kZי/@?9Q\ iC3X}WF޾Iҷ+OȀ-w6Z}J'{ed}JV앑uLt>+#d`^!{UO٫:X}WF^ꓽ2BVWud'{eU>+#}k/$@dDꓽ2BWΪ'{eU>+#d`^!{UO٫:X}WF^ꓽ2gƂ/nl-c1wo]~}w'{e$ڻtsnzwFy;OQ!{%OʈG[O'K8a[WO9rDiNj<ɍ7 x{^qמӋS'X}WF=Ĝ۾{>xN䆟L]O >r]=ՙE"{`^Ds>s1g϶s3.x۽. V7\=ӱ-2Ǻ?h Ә <(\;榜{ŠUa%Z}%ꂴ9V˻=W?u9pPC[;-95e1s*)ꓽ2?{fލϛ^P!h=tsoq*ꓽ2^KCc=Ӟ6wxvB4ZNO\q΀aUI V앑v|EύM5o{5 L1 &Kuz-A?SB98WӐ>+#=Vw0{9a^:9.h>[iF{|'{e$Ct̉+#a{MW"deoW!{%O٫:X}WF^ꓽ2BV@-ĆUٽ%86-H[lPtb`ڛYy"::z}cN;i%QtBjL{uOv; &ij 9i%;00 ovDGcsN[(ٌ}I|v{ێ|;z9pl-N[ld`kvxGCSԙN[(^Y=q*x[#MotcI;O& a% ZfXcȊ-;1ӒiΈ8+;X>{w7:tcIO eX-赱ßX!F\7ׁ S"΍,Z| k [2r]|3)6|665qݺ10̙kc cblAjokk;9HJJ:x O$X>'Omz1pt-r4!dϧHZ${ux<suLc*u>/؉fp{h=œ9&.廼068쇿}m%jojjjCCѩOOOv06u;z67Ӱu޼۷66nkoAAA ***c/)]wT}W,_ثKkB1=ɖ\IC.#肍fv.lN{kkkVjjj`텋괴={]0 hGMCĩN[Y?ݛ۴ De%|y`[Z<{S?1o4k>b9>z6TmN{w K, 6]vӦM۶mKNN޺u+&u{~%kd@37E|&J,ek* `ن4؜B@h?zDY=zTS[s[Go;m ; ?\a5L&2˃+g=6Bo4KG^ ymj87k֬Yr%X*~umٲe+VUVA薽iaMæy>D+gLsK^i{gĩ`{ϷGǾINw~,sgn Ff{:p݇Lc8'ۖűϙ]}̠%FrTœsz=6׵/?m̜9sѢE)))䂴̠4&͵Dž6q@`vkS赴#noC[c>p̶?&؃anN{`Q]tiM6x!xcz>L^8۔%!8ؘB@cLzP@m¾'|9`jֿ͉G{s[VVk,1{l %%fo{ n]ps1g%6E ܹNyifTGuY ?u$!QYhxkqll{mN{,Y2o޼V"yٲe<{Qy:g.Ѣ"g7:,9:΃j>8}no}k{Ϸ#@-J6[]]͓|'pw3]v M[Q9]Fqq1|rC-{a51r`L{3+OdT{On 8q-J6='j^ : 2O)Ie/ϴPWv|dc Bo@F,_ s;vdsΝ:udb Bno{{{MMMJJ bŊDb Bnӧ 0, "d`;wz/{--eeW\>%11Ӓg8 %(^[=ۂ_=:)_1O/$ bEw|gnKL|{^+liOBF,٫"^,[_iGL4g_Juq{N{6Y<m$[0%=u /ZBᯂ#{U͛wxCo冺 <觟1k/}z»AY&`MFY 3aNw`^q|\W?ƴ_  j0c|YX\>ղ6;G޽O={w骕[z58 eLIϾfj6NjD~) ~UmxfI0u2+\\Lmzu02WE^*BUWv|d#{U&''{ii.71 {# U.ٻ{nPwɒ%cǎMI|5I|do/ҥK/_/0I|dioNNλ ҂h 2۷gxۛ2͞tl^GE`^ ީS.\+0Wi/$QU0텋dU\{>h͚5sk%"*jossƍM6y+V򎶶ѣGϞ=rxA^j05"uf:9v(Gަ&*;wy@`Xo˱%|嗫W>x Ez^ $sM6pFD?嘜%diobbĉ-2k,T X{3g΄[lY#{WE{84rȺ5kر ӧ/^a>L?9B&8#ܹ|g勮"|d83f hɭ5jT~~o,XΟ?|cxK>X>WE Z XimڵkAZ`.].e/_x|d87ndFsNx;{l9gΜz;I|d8@`XAZ`bbw͛7\Q{,+do$*jo!{# UWv|d#{U,٫"d`^!{eG+;X>WE^*BUk~}6a^GWjd/ѯ|J_d8X>WEs5|//ɢm!fLc*e@<ٶGۦGH5m2偦05T #_Ks4!F&k-rr6z\ّDX>WEge"纹id0qK3.3sY:|!fA#UrV8ViP/yC:pD,٫"Q4l'[ci64̨1_LjŒꈽFۧ'`^?{XK-ob̛֓BY |!X{p=OO*Y{GHW7+p#{U^*BUWv|d#{U,٫"d`^!{eG+;X>WE^*BU>c_GHK5#{UeG+;X>WE^*BUWv|d#{U,٫"d`^q111q|O'+>6&&6>b"D R#{U$VPD=1a,٫"7.Ϊ/t/G%(7>aDU{~9<`a aLWE^ .qbܪ##gD4瀨gK+g"'{<3Gh+m)Bdr ˲5`^7{,0B1 ?egz0"m>M`^]yEcDTGH O4R CjvPe`^!{eG+;X>WE^*BUWv|d#{U,٫"d`^S{c*>|dD_X>WEYv|d#{U,٫"d`^!{eG i 'lz{+s`7 |j$X>WE\-a/ӷWPu{2U)yGnsW8&kkz'w+<*W6dc< 7`^wNڻ4aZ1ytUv7 _s.|iO|wC U/{G}ε?yS^5bBS>Kr]Wג/|d[Z{ݵod!~MH7W%.]'a(|d yy; v9\@ 6,zhAU : w5 5kgy'rm UO{ {iGnjNOzsDR8_1&/ßI(U/{u ||[~_b}^n`j()8$BWE쭫kz䱯-jF,٫">Wp,!{# U{ I|d#{U,٫"d`^!{eG+;X>WE^*BU>?3_GHK5#{UeG+;X>WE^*BUWv|dtdg1I|d؛YPW_ϟ畖}7H#{U555ﷵ577gf[~H#{U윬꒒ⲲRdff>|#xk~e`^񱷵.+++q,**bri͛9=G@a .H[^^=yc~G&myƁ"Xsrx7]5''%z'nx GHH{aeo}`wx+gNz٫ʚFdQ,٫"!v.[\QQxȗ>2LC[P|d#{Uڔsr|G)Y=ۃ \nAfX>WEmwߝgۿKV.:t٥<`SYOu{)!cЭ#v9X|dhjJ挛nڶ-'Ү -55.)6E^|ݐ6z`/$33r62X>WE\- .8ϼsOO@H~~זӷG>qG)Z+>i&%K`->e/_'>`^q+.,K {ٶm֭[wZW 7Oh$X>WE>*0Kjjj*++5***%&^6y2Ou@F,٫"^7`^!{eG+;X>WE^*BUWv|d#{U܌U[f裐CH#{U^03妛>бκC`hd\rIː!\+&{# UW{3=ߴ{oWL݋/u+Na>}+zG?nv``\uQK/mx+~>+>_#{U^XfP7p-7dS7?0mx*S|dx}jff^~y7u ym|qsIȿO;*e/~SݴG]S+~G ڰƎh7n`^^E^ MaM`ζd;Gϕ  _G`u^S/#{US+UխjR]/?=Ԥ ^=j+ʁ#{UCuP̻jP\YC(KrZʁ#{UGmjC]6`6ԭKo+\9Z UW{ss^yeàAgHOI\?Exdo|dx}j?p.\0ê.@ko$*eoOU{`^!{eG+;X>WE^*bKH ٫"d@v~ݤIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source/figures/strip.png0000644000000000000000000011647711534217015017714 0ustar00rootrootPNG  IHDRs-sRGBgAMA a cHRMz&u0`:pQ<IDATx^i$uܞ?>9^X>{iM[dyy9֓` `0>1PK2-H4h(lR 0X}{z굪z{72#+rϬήN2##nܼ_Ǵc'>яhy>Q<`}]{@[ihi'4#~>?}v O}ix<5x~00w⭵W߱tG?Fe!ʻR&t:`9DR>}7q* @oMkXo(#}L/ǰlï>k'D')7'*_S ƅn׋c E_Ire(d&6yUTQ{TiBDQ?+%Yy86*SlxY\r J$a$z|ՊخտZri"\*2]{7z^Q],o_SҸʪpN`3x).,'ؾĢX_ݻ'>`ں`i]#a}D! ;1Coߴwr-EƑ֑Ju?5XC|?~2퇞~z]kxO-Ǐ;e%|A}K߱EP~[i_?֎;.hڥN [w Zǡw:& Z{Fsn`]p6wõ>׵t MCW8uB[0v 5mxn74A;͘nc޷;1[m}E{ I< ͘Gq-&7n2^m|1νMòA;Ŀ}T6fS\Nn&yCs uCSЛy߁)LoDDKx*L i?inƕ4frifF(eiIC,[2 RZ%\蝘y47S<~릔N]Hx8֙=i4J")vg3 J#y;TG ۠# m&cZKڐSoÜF),T1ttw|uwjP{HMg = %>{,љUpM\*)-skd7lD+w =tfB:cExzQh[z _BvLvpEOZVx邋c=p66= ?=ȍv]FOF y9 xd&2jS'\C^[4w c6Qg=q{)!ȍ|Z3ף<(5a߂9":(T, NHfҨPX Ia?J'Vx-%'GDF#^4&UxG4_-! nA#e"ϾxS'!3_NNV(;:b.7.@3NpS#7^wqtDثga9E֐G݂ ڈ&2 pRDཆUKkBvLdspI;:|7Z&R3:rpmdA99x.ݫWWW Y?_F49|}&GG2RE=305Vna![F&\XtS:8\_߇̿W>~.߂YYHg1e`o7@EءPơwdJ!߇_>^F6 ?OJnKQ.4#e?w`S6v6ݘg]_It(ء¿lm,S=GNA~ea IԎ\X04d B(2/)`DAS'Ԙ+&a_ NXF8P'<41 G9 EFQ-NČi?X^F*w_K/?g: OaiLyrFf30?oï9L0B;^7:tS@A<: "yt~D4v F3JQwv쯠 ^8sOoﶭu/ z$B0q S\+K n7}'xcz;lxq_pfTxt0ߕ0w\QMж'oz"ύ!71iat K}/C? |ZDi8 `i IpcIvd [cC͉kEs(udঈk~u#/EٸEoxvqABTc;Ku SGps0_9GQatW~_F͟yqKpg?i2njsSLFtKP`*^Fꐝ.,: xEۊ̻WB݄xV78y2.-r1c4,>D K<}lw@} Cdms|e[rCֽ@y#qk4v 3s_qman CftLjuGrܛ:.>c1ǻ=8ε-sVmZKGu>}2F ߩ}6{l7"/|A> ~J 'z"g?SBAt6W/z!I?o48wL<Ľ—)0::jIt~sx߱"?Lb2uzGg`{ 0*ʡ !^*%~W`3q?zzZ /Ux)<6E3Λ|) 0ǧw9g|TQ'gD0u&c[s& _\Jt<1o,#z",%g"-EH ^Հ=q_3F~WCdL&ÿYJ8׌ la'3|^BCM {!)vwt+3\gzz6^4Lx [N%@7d^9qmsInh饞z5Y]9i uu|%fo#d?i Ͽ[ lR-I#|>n1|>8%8,9%x%_܋-a̗t>Yy&/7}|_fY1LOϓO<'ɳ  *F'Ё!)TNw^{+~6R&c4L~=t|/ϛ^NgYڗ/ԥ 7/}ᅫ眂h[lO/~Y <0 Ǟ&A50("K@VB_xg^\al3=T6%c?{0|>xːY}o1;9<4?z#׊sOK_{ά P{,$Ћq1Bwu#i68BLF݄'LJUXcg1p}lќ}>ύDcf$7t똹E3Хgf;L#cfzdoW\gO %L䍻Q<&4[%4$"\qPhB2VHb -^̿41Βp'Ҹw!x$S *&y29.aY;`̄n%d҃$3cqj9nz.I?O.*MXC=&8 ]&HREtmϡ<6w;4-I٨;B[ؐl(L_p= c"E4|H ǰhu wbL 1#Xp:'Ōt[ҡ^HҴ|ï̈́+`V!-ǫ?bi zQD $c# QT:iI?!ƺ 8 negzmαaBex6o-p&wGRGhu|6l٫PIo-!'[ϠpoK^p^~;CJ|ݷʯ;EG'iLz_Z#P^}yO''?3kGi~0)P|߮~K]Vf{k"[н0ѽwɄyV"n6ƥE=in[^ux_5Sc= _y.\_]㔌߾A5B2yeDi 89=㔰c)9c!`c*^lOߥNYi?zʎ#zHs4\ c[t:QgJz<2vW&AX&o`'ឦW~R$9I,'n-8{E;̯)|V,1n08)2oo/`X?=5#F)|aWPD{Lg3-7%DcŦo[㖞6B_r-"zx0Qx&{4. ׅ+ ~=qw|> `t+ !9hKz>τ^Zͥa0ʅE6BjBAoX$?^)^ ]uqCF~#i o:{l<>+>-哦7sYz{q)NȔ-v.^7&鯞 @6vP:32IZG=#:,cZax=)ߌ\TCϋ8K]i\'?%VNX$yp Mq-q$`:dW=|COԆ3pMpZ4A`#5WhySQK76NrxK]NsMHT655DWD3}L24$2}F=WThjlc2MY"VI0/P)I76{[zgл&7|:xn]Ryo{M:poʤ61 ̘.&cd3н>Mݢp{=7{U6:zFѢ5z9pfei[1=0ln^~?%ܘwq 1x N^4{'aHX;/9tOZL;}.XƢ%ݒu$eY{j @kSQb3x.TSNsEEh|]bB!0qhkCfBw),Ƣ|Y̲,$/[M5咨.1UNT -qos0dh]TC=8[8c/x<1&$!i0;xi`F5z 5f!9d#"ž:F's$.`'IL7zݨH7Ep97vDQpB;zi $2GKs&$4hbd]tEoX@ne#.ަ WWM@ԕDcqu׽|4w.wױ4  Jkfv0ywcq-k>+X 1X^'6cFa ^~F7h(Nkp,m!f$%Sl0OӡLu%{7E/lvwD<C/Г\[^[MPwb~#"d+dLr+,O^#Fx :O>ѣ!M9[^@qf)MТ;T(׃ủԃKCbb%"]Vz|oXxE5E}o1kcu&c'op4dM/WT7sCli[0Gx0!oaxanbth$Ľw,!s 4Cs?ӳtn ny~E79kQl-hBѺdi{bQZ5 ?Q(i| pL`)L);wdohSGv]8pb7ƪhhwZiVa}//K+ ^霢؆YXUTL$$]W.J6a\XՆ%@P!!MiJCXqs1Vf Ї~nbb1v\xluZx+r BDC 'nI@:ZnN0}KeD!cHÔ~lVK cT?QcjZ˖ʈeE)l(K Sy%Xp7T(.yKi|ʳ{9ȃHA(*]L;-޴.o.~ߎܷN8Ӹ_;}@,]rƼ)ܴ|ߕ&^ 9{m{zylǢCÏSz {G&輂MwxMw/'.Ƽ$=ptx^xI &O}otwɩ͡h}sZ\P&' %G=dɡ@FI:2F*yʘ^Se4F%/) .O!'ا355{#NdbhiC*o[ ,3օD2z/}917H2:HJ7`I tzaUd;AM'@_IN :qהN5EJ{|q6Y-pR{Mۈ``P;Iy<1 bl҉[~Z>V]Gq8PG(vtww K5w\:1QvN6vyap!فwaсm̻a7-1Eg6=u`ڇf0az9N#^Uwzc}0a^!C95\/p"?vF8/oAa8}v,s#6w8$9 Vuiw+qhi[}z&vuHΧ*w'yt?&/{V|p>/5c0\k#Y'&| /ߙ[Ym.iZC䁻; ~ M8M*L<xՉi*ń7͊. oWM{ B>ֱn] ^-Lۼo91$0ի/@\c49&XRF[b"O$ȍVfiѶC6 t0u~C_^O[ RCw:ohk Ҏf#I*9w3qo##jGFӈNCv@$#Н799EՆ?7! 4Gy8~`J #L=q!f6: u +zM/<_>2\;Ϋ^'I7'y{w: H#|}  뫪powINc>Jӄ Kxb4,KspHl(Y>9}-CX_Gs”5ڷF#¿ȆftV#G&&=%FdW }6ch~ۍlrlmךzڭ.D6!YxP烸قuɎ Q &ȑ dF$1{ZONZŝs tLÿ3yܼHْ2H^?=i { A~c82u,C*8ttNi[kϯR@< `>w(2-uIeg9, M/܅;hqn'=3ej&')I,"88 Kvs?&)Z;;Aqh:x!.`%)E ՔRb']3%1aۗotݠ]CX ~xb~x}S;clݾ+zJi6x]hj'lyi\j8M?>A ݾ<(^oȋd(Cku_#vA:qvAxv2z~y2``(8ϼGO=/#'ah %ځ m DîhWm>Gž61x|=7l86]Ezj/}X]a}?ʹὉ;"3tOw:}²ފ 2淾 8.Ю'yN,ց2?E 6`'ZQ8`+zm oP$4n?ES<ۅۅuuuui'i4&x&++@yνGN|i9UMʳ]]XXXX>qZ\%NEH8~ 2,?p\MV!|5xie:*n*KvO<TUlq>><;MFX8p*s,q{^GOK(hepe\s0-/)ZD0Cdw9\u7g55Z1oLcZtf$ ὰ&?ûx{Ŷ2eG&g;N7;> aW4ޕ 淛5=x i򚑀<gĕ)? g%.`x {1%  ʄO6k99=lNc < / Hxr9(61Kc%cnY_nHiFJAC1z꠾t 7v`> /)Y3\xvuS3&+Z-𞝝bût^9pK*axK Sj>!nu T6W]hz +al(=Vg0 gdƴUO-=W$o6 t.1KN[YڋnLnSyquQ=oe[7l1Ɍ&tbuP\ݶzՙuP-H@»M w2µ#[w \k>2 [ROWt!P[=qd6|-LO֍WW¬9] VXb;g(V.`=Ǟ].EÔ2^a*9Õ HxwvvB] yTZfspM4a'qVJ HxCc+Ƕ>Zk(dfĎʟV\]J$[[[fxg+[n۞>o-Bk_ޑx{瞣56/Mc]$[ZZ.ݪEVrwEZ旡g4+MCis; 2#l% &7û!\lw:!Uρ6> .x^l|nek,`,r78N|c 8x,,܃ h{b'㇀=r\*ATpS=-A`"[fa:MkI+N,ցu2r4:Vy˵q\l8XXXXtaY~懄ցJ Y7+l%(,uuu x{ެlXXXX*A,]CPx.#?dsmA->\g{ցJӁc26ls7+p)0uuuu罄L=o"8@gE\ambVXwxZq{a``sX|hjV\3rۊۊuuutv]hWɼ 09\:::::P:}a-@$ޱH )MLuPT^TS=i%/bC6J5(sk"z6$]~VxtM։&ԯ6FV{az&#u N@vny Z^]=4U(ZwCJtVR ͂w9ʲQVTmuۖ'vdvn;S_Ʃ!s]]t/=oQg??|0*ffYv=ޏ"ѓm$1rzWS@=< 7fcMP_g޻-oǵy v7;s<9EpːP`tHaacm:: &桹s1Ԏy[-½ %޲(]+!-O< jEQǼxK8޶oDUX#d vE[ND #VU:ց$u@,c Sd $?p {1BFַˀuuuu <b3 Үb1I5VMƶs?fx6^1^,Gc-o#)҇nnR;p0yeuON_'+k?x?m7LV h-=0{ oց:+nf[B':3׾=}[qкėq0NϻR 2n:ꛢ5 PE^Qʪ1jy\|. |-pKm[>۳_3v;鋴"-9[XZ%1Vy[TC \ W-ڣU#JTxl5n놎~.^fxbVy=~}XTm`"-p>ˣ?zP] o譥!Bɲ0d>vmGԶwNhA\z֖=1=ܘd]X-=,;TCP7A}{[?.CoURJx^x}6@&KȧsCv6=CpD{|WL]DJPve&:bEd8E3*othh'&`jj o*>ne sPl¦:dWe#2=.a]ˠrN9QX?x-Adh5XGqo~X7M`u4TR9d q[E{-yoƌ ʧ?@A^޶Wy2Tt,\j.DyuKޯHZ{fffggEjHρN϶ 5ر^.ɴcW&ڎZuu#{{M^mmv`q o1s06产/HK6')2׸(:;[uux݆M6:odq'4: 8d2r`(z]{5\8fB`GlaCRh(J S'/ ^ux}tP(2< =,yZB< $Tp{?ĘwV.3:~y6 ]^]YnsɲsyCH 4|yyY oy`3᭄lRW<Ўz+e+'=w :ޥ0𶆡^*V?ƽoeCwTXn`!m?3g 2Mst{JwG]z^b􀀽b ~UVlbNxlsPl\l-Cs~8i#!KaG!;\.O99Vfxǘa-!"08@m<1,z k[Bc[8_py?0"cG]a/k'9y߸׏c#019 l8 3me#F|iaA褻g)&ye$2#?O;m7c o|S 9l{Ƞˣz{sQuc ^RM?c6Dgmh%V(,-J#(e(չTRɄ}yu.ZN+6gx-/x˰QЫ]~uYx4JT{-Ȼ6}^uY=:ؙs5~*Uzxu,r^O~A\LmWD=\am zc] >nCց?x9|JE?Nk݅ps o7@ 쇞a|Uvmm(ytI(>{ޕi۟uu:LFA-AqObx[`=bmwj^+uB 3 o7@ `[F۟ۿ:-OD>Z$d˰sQ61 7{}&y> Zpfp'%f卯,C!@;w N$n:;; \Β>t^yXXXL&#~]v8h=cy|.;ʋQuu xXt%-݃ϲ͞7@ `[Ɨۏ/$G@EFfkVcq ^ײ~?\~jY7qx=:{t,]>u1pղ⺳׺$uϯ611ɯ|?@e@>~EX~?ry:CVAlVDWe9qx=M=2,ց?xp:ubMF`='Û f7%> >,|_N>8lXn>z(|߆}x$x9'M.5K qzRа@G]=4m=:& PR2fn q7ʿ/&_u8<\p.]xx;x;lb~]fxc4 iPWdhHiqR oMuq5yu .yY tBV?_x[߳H~ARZw`yNR&H%Gs7{ޥy0ؐ&DwPo?c\ J|aE;n+g9o2ԇwpBz%_xH ~|FB_AIq6?p,.g~'h0nӼHK%exSpS )U[AQ{8E?MeqYaV?zYjQg/ջ.d'pwrDԟP3MkO{/Chz$=㺖E랮vR[ Uhqo&NGgnNS~zE M`Y::2 0(z)7{ۙ0l|wj>HOn.脡,v eX1bm{Ў$ hj pC{am+<(c.XU-#ZA6c9[[a`,OAV]XXvI{c09]Xc O{1 o6>n|ì@}dr2g&fy57G^b ˎeW:IB"h30$.,?{l|6SެI0n [;/]8rw }p_m::W/:nP /#l?׳T$o0 R=, -꽒W5:&;FqCeY.vQ9o+Ws]u׸v){=RAwx%wF3n={^)hTw){0{%M2ڨSy6"ϸ,*ya+'J}e^-͞w)zml)3[nDT6 QiVrC{A}q†$id(0Hr2F'v2CЪrнk$~eX3ݵ.}|[q[{=,cӣg{ԋ= mmǹ9/EklF:K`IxqA? 1{"{?s'^SA aLxӾ L,F9WzŽ-CcM-jW1΁ m zx krfnT&kW@gy6#TַXtD\wcNj>mtf 6FW6} SLzo<˾ȏkwضXr3X)LN5}1^)B*rF'ކm H9W K#[@\W㉖m, nLC.k:=P<΁Zf;T ~@vOJ\Rwe祇>>6 Iً6R&W;[ZGˑI獼ʬ{޸R8|9wP>81xШ=H fh0`ۋ"7!VÃRɑ( xNUC.UI6pmi|PdGMB5d;oomYٱ(ɝѲͨûV}gq;7+O.tIw΍yO I%lƛyq:Nnaq3m7Lrz-q `QBB޼xdTpvCa NA- -C*wYw?Kv~ M*[<>Wu ~Ci<,Y)\| ZHxfv?V)[2Ȅu  K8x[y?ϰ%ĮHcJ^@ed Aڌ@/nYN ;aqze2ٰI7䢌Z*-N\ '7h"{YĨ8f.L -IXYȄ':efSrx8Ůb;~~`̹ ՎI{ÐA{FOfx3umbN U+pCbi ?yd78!|kLVnI;}/:V~UG:px(jؼ[Q28ˡ I뜋ҵK ׁ$]?2 whn9x]ͲcٱT$GROA8WAޅw]f\Y?X[NW1b}GA{<fl8sr@\ =<w_:Fry/;;@@3-8a {1.7J7>\~aցu x?{@v>fx'5.YCU0Ht, nJ/Gu=}RսTB/8v|H;<\iÐǓ1ܡ d|a&yl/zvMKdG0\3 o]JNYX(J-$1-Cs=0k;rafx4W*2c떜Rs_2b ךky[,UJO)th$>ޜG!Y%G@vtAkL~n%UjoYo25znSaHkm ^m wfs-[8 ̶:Bٔm nd`hސ<:Q^fmWU[ a6CH*[#?k3ܙ>:`2PZ\\ Qhk .Ass |_L&#KxXl z9YVD7 o>ݬ̍"]LX$id8sRe }>,e# {Gv,e7|l^m7;euQGḭ.rJN~vo3Y6];Ro]ὲ ӟ'x9~L_z%W_>zWaxv Uͽ~g]S!敻]q3 xy^Yf.Un0:!qVUN'57JFXCT2.7;PI0{e2ɉE>?1U%AR۷÷-lw}nܸQyW@:[^g_dxx*PgրuRk=|70PUC: `+a( #[7J+N)dT=ls;Z#TF2fu+Z$;`l x0*D%[#1V%j0i;ʘGIp t ΰk2Cov u*gq:)'# >rclؔ~u[?l>aϓ- gXɂǵ~}asw KP_S( mص>i<^k<_R'׉f1(Lǻ'#ԉg,-@Kl g09'1]Dϛgp ϢX=uuxH"l.8#sAqc]׺p{UQNۦq ޟyZ{gWBKKKQ͏@fe] GN]jah< ۟>x[܌۾[,z\}븺HձĢ'kƹ~),jab[(Ůye/L٫=@YnƳH'-q렽Y>wR<ިݕQݸD|6{+WcTmC?ǽ vciYsyXay]n/[ x#0fpo$G1{`0Axgx3Mp_@.uiۧۄqug1*Qjy}6Ԡv48C{*u^S>eq/jZ8oձ$֧~z n yK9{궟rLs(uOsOg8%,Y{l"!2wzZ;3nh%pA땻7H2t  ܟ"ArUw25"bϧGmS-ðu xoy@<n)[x .Gm\y1,7Gژ:]ҾCO{yغWgl*{FKvԵӢz> hpUx(ޱ 3.Qpyʆ`_~ln߻ =]U8JSC1ml$耷e+6wf0D{DKІR8,t|!-.'{wÚ=lv1l"M<|-˺:a|wuG,"-'cKQJΣ--yK8')Sy۷)uC1o#=xLZ _g/;?+lق;kW7C'`rv njZ$ycXr7==PxzU4Y+}4 *iZNLS߅+lznRVny<^t姏{1̐Y<m6ҶnKa^!mcׁ$}8nLH/7 ؑS%h^|-)ց`HއqK9u$n :58v\,ϳܵ#\ցՁ$} _Y Ϯ/ϾEZxTe<H;`lޥRv7)Ur>܆;[KqÛRz:P:fxE4nnwnpG{'aaxWWlm5 x+c<\=ڛah,bxVm㝚 ۏ -2p<~7VzSѷul 7$0ۣVpaut8 _lMs67 m?7tQ](W#P1:> Se՗Bc?N倖]+| ou|T7W$Mޘ rҒ JglneVtL{vO0g G8:xBA>!X }v'oҁ$@p09{qsV╥bm7^3-xVỳ'v$3-:0^uH9Ƽ:"g{GC>6af;I*{V$}̋0F@ 58D/g{٪. wXPn;a,2dh,^1ƐWXcN5xExyymppÉX+Vb ~m̲c`HJ: H*YaxF:^ӁM p 2d#2d`THg:ySqVʡ o6:堇\Cցс$} l}sKyZ1`<0lXI -݃ 3 =&jz7Z;@>p, Zrg1:/ o6^n Բ$GN4;a"t o6\qugb\HO?\m!HOaׁgyoPV+2|^~1h:TY6~γڮu+E~E'sXro~Ivw㖠:`ݾ1NEa{^K*p9ҤPl.gWl叚_Rs0D_域S;`z ޼x}z' }/;F]_F6BFTWֻ뒬۽*w9gwA85оEKÖ'v3~{fM$pSHuJ&!wW1څΕ-B#mL>n[i:<`#_ړڨuu{e$wEuWJ [d-܍ذCD-esm>uP.R?/ad=kte锇˳X_ir[pMfNQa6?9蝩򙗛ADX{?+,Z71w<6u+=ܓ#[wB@~ӋgI=NMi x?)CоKE7Yj;jܵކ!m H9e'1a8m~JVEy#vd'g*A1,΃fu i 24^u)#Wc+02(.lAi_U #'&oO9ng+yav\`u=w&L[譫ৗuxjF/*EYԇ !IoOaXSF"E,YvD BdA=l5B<"\ o7zya #o0)x!;aai9O ^%r wX9x >wtQW7[vy'Ƕ톾);^ O;3#AmouQ>ӯ6@G:e vSg=O/9YsX}oY,2z&]e8nM;<\jEZ.swa`j^ySneƦf(kh>ul{F/ $ll2qm wfs-[ݝVI!\I 4^z޲g>:f·.jHnSQ[u n3rn}}zϖT3હnI-Ҳpz&@eֲwV*-7@a(}7 `a+Ȃ4s`sg" x7nH] N%엏ͨ66{ܘgYg۵22uQGḭϒa kGa\-UݒB3o΁20'RUTxmN2wrHf;×;]-@GQKD oO囏UN'5YM)#y~)e~aVoљEXuNəEhV4L-$1Jx5KٔXk8vCЮePJ> Jo(w]mas4`oͽ=Ǽ7QQ,ֽkD\I{$L7&@9H=O1rfuU ^!m7xG(ncW*vrלC?[(7d( \NɈt²;E76l_56X#Nɂэ9dw<[xJ+}K$ûZᭌ1  ̝+竆dkޱk=tnz5y/}f--:1"(.HGBPN p 5䜰V[E;qx_&ܠ7hYͣ@ϭڙ#8l 5RwӞ$3C]ð9{!78&?X=.2pW7y2,y3KIݲ^WB%=畷<\0ͶHEx1kd!/8+XQ4I={ ZKûk|fpC'cx3 :Q+ˣ*qNZrr}twvjl ^q#l^}r \Þ7-Mty%o<*n z {̀7{q\Ǽ-%#]:DIJ-cmJ]v*j~ H!Ik=|mǼC9 fHyn); x &fཛ= ͭAne1E «;Y7v8{{ <(asװq3;NЅmKG:lw<aųc{2εgCny f;r+N=O%^agV1M$7o6'c; WnǕYf,I[AzӞ_A`w\62VX;+y0Puu x?}8L"; 0mkû<6~qt x"-cby4h0Ȼi4~\YX*W7-Jy' x|.YJ܇uϺ:_>trn 2L6?[Q`/xqN,ց7V$Tnfޓ 8m%` J4,6^Wk؀NDqIx? *=,]fx(qG޼yi]9b9T$C-A%(*a4Wa::W{$U;nñ\YX*Wh̯>g^yֺ1+uׁ᝞> Gm:- 4ׁi꠾ eGC 0ذ4A} וl#λbd]C.F B7Y؆AH7+h;:r ػSY~Цal8ų6x{,NY^'!faڒ)Yk ûB{ CRTaC}3ŋ:i t/jXv|[!˒3eB>j> )'1+exG|$c+8!j}P- ~,N>^zuptL-2PT=loX򼱾\;aʢEvGy; 7x?"<|3;vuw#^q1Xqaקy;eK*-6)N3 y{]YNC _ܥV 'LzJ]Ժms6./nt{y޿;[n'Nw]x.PVB%p-'; F5y[f\; uCQ,O9v IG_1oƠu2nNTyr=ڂFC\G}hll4Meg{^iueƷv'^īU譳%쓯 H oW{8ٯ!!eVH ڍ} j?<.SSS077g%<p37oQy pW(5B{=e{<zyIwDr!#Ba_ycjT9m qtU>! l6 \NxjZZZq =yw 1˘uuu8oz}|=oYXXXXT grfqiq/^*ˍ::PM:fHsGuuuutEY tz(\qT<~s+24Û::P:i])w62׋ @u'a<:ޥV?!j*u8z`==YXHv; #sp]ꇂ;_2p~Tl}ƲwK_g}!V3}~ӛX[^ޅ} H)r"Ydx(*o6wnuCGw? /*+QXɌ ;~R>Qgenj_K6"j'+0Ŕo#y*/~񧡳 ~ֵ! Ƚᭃp 2 `xtNhA\zxC*]fj|&JuG~zi7#;Ump'4[Ak0|1AޮP ye\7Ȉ(q)!%Bƃc._{"ᑴ ΊYZx I8 vpZCb2pC1q zcm;j;;³2_Ptr䁅 ^ϋ'?=Bܹ?Eܼe:tOCxЭbYp 98,HOyKy+yLzLjx ; E|l|2 r9XXX0S` x1>sBLtɏ Ûp3vkH{#bzMuVu̯6/ND1sb?l^{:ȯ1%Nfmps`]Kv,mo|>xǫWq`{Pf:٭;wŇ4DV?^aat+4^$yCH 4|yyY-4vz!5̻e6/ޡ4a8}x+ϋW}YfZByn~@U2x{9{ωbe蓻{h[7}m>/!_sl,ujJ6P압3MwWŜc6&yGK:4Ňͭpdȶ }o߮7lȑu'-o=j9vnj.mojR/GxC^,mwixR{q.{(Oc椣 kvy|kqnl1L6 Yfg왐V&9\4Bc1 j Vtг/2Gؓ rݲ1I 2~4cPVҵm Ldb~^7Nl:IYg}8reoVXVX> eRh3 GOfuuuuuLu@l :-A@7r::::P:}П^lm$u8vʴUecc:::<.qW_}ϼfxlyb't o^-=0}ͽdz,g3@tx'qmsU}7+PtbXXXׁ> F;]`x&,s9@txx6]>dxEW ˌuuu y;Ę+?1oQ30$oX,sցցԎ7:}x=oVVVnn]>n#*Ƴuuuuu`,; oVWXn#n#ց<$sK7f`:P:p;=|s(/K/"ʀF #Bv3ϩNZz[Cs(ɏ×%5Ne@r#d}s0p'A߫sVo2z82 HAѣG!{XLIr#e akmm)T3LHA NRD1HִInefA߫sVoJxdg95_(x$u75ܶ۶ ‭vte. Z-w-չu R߿cx3ެr9NEʀv̛ò.^lp(𞝝DiF sᗴ_.k@٢fL'*Fx񗤜/>߇e( ِx̛7oց.$nC?{s_(n$Xԛ&$&k!g 5R˚Fv-q]/l _y =spNw~ΡmEޕ)k7Û::`.dC_:w]~ ? ~ n|?wjݻ%W_;Y_7jO8 ^.:]m7Û 7n޿ڲ  ̧t(u=lxC dLqm[,vPe͇A{2 )ʝclxԼt~mNz|!ٗ/gO©wdY냗?+I.$(NDB=U˹,w a+L8Ng_NDlkh80N: Ο$h"xen<|=;9CyC/?dh#d Lzfxl_>Z'O/JyeCJ0#xO =L/";~ o6lYX xۋݝ`v}潿8.yoɲ={+Fu(܋6lo?ymm >/wTxW7_Rf o65of[(]Ûf`0&[©H†YEʙtas6lYj^~^@ss32 HAѬG$e]Hn$?c}+0<Zz` XX@}"|K\s+) Pn$?c~/ؘ 9EɍGr 5û SP#<[:>_~5M$7_X=9RS4H~adfxR0p'uuu `x3ެ k0&ӫe9YXY oqT0+ʹ'ecOuuu `x3::::Pa:^m2Z3˙uuu7@޹U)VYt98r󘞇C'gaӰIL̿gΊ|Y̋p93=|T1TR~*{Ŕdς/=WzcR'Cy+ !٢ I''v3ϢMc񷂼uU_)̭<(,:G20t=Y Us09S&gYNv8Χ_YUK13ڴ>m?=cؤˏΧHBuo/UQ[,xG%:^*ע3~:[>F"]H2X=HYX2y[-ϩ3Hd۔. '튥 gcg"HLd#/'pO.(k浖FrkПi'}4< )h2>BC"Mkghk#u ˏL=%:_~w tcA>8sz. d IxsHt9BG1Ng?Ziw+VǞPHz%KzFf9UMIKUGIg1k5 ;pD=._DWdStArl;_v?&m3Rw\uMcv&욼lq_[]TIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/figures/sync-tasktab.png0000644000000000000000000010440414023111777021145 0ustar00rootrootPNG  IHDR _sRGBgAMA a pHYsttfxtEXtSoftwareGreenshot XnzIDATx^ }?s$3K28lpH2/q'K^;#'l12M/@m6#MH?I B; {]ݷ۷o/v}{G8 0@h 4@h 4@{40BlbM@h 4@h  !fH1C 4@h 4h0Zp``4@h 4@hCC 4@h 4h0Zp\`\`4@h 4@hCC 4@h 4hb !?@ @ x衇bDC)dL!Ch 4@h 4@=5!Բi_ܨQqCh 4@h "5з!l2d֬YC;TE!-n44@h 4@hZt̛7O/GڡWPij@h 4@h 4P2^׀9r䈼C;T~yC:h^x܆̞=;gکsׯ_;?U~ʋ>ȦlWyq; 4P e2c )t^u;0q%ʉMxrkȞʖg_^zTBQ7޺g߾eוV&51nu lRYVto4jA ꫯv+=v!;H@j_ ˬߑQm[o AtCH[)B<|fʫ&` *sO|\3ޑs6"_ TUU1+Y _4ȣB !}_zt?K?,xLqkzrġoˉ=+-7SY7jŁ^Chcw=GA.OwStOG\*'^!')9Crxn;e򌳢9[âoGxs}q!w$ђRƍgLL7 3fK̙#ַD:J{BDx8@ †NaB;_jj1aXceW>9h 4W}Bjfas|3Ϝ)7,/7wsl'ĮߗB/k?5/ʧEq6О<cg2w4)1Lx7Pg&Ց9)ChK/(PG <7>T&KCH- @rP)ER(SH}LlJsBa9 !;ظaCFoawv'% ?їϨUZ+VpzVsEցUF͂ \G >R2r֭[m:G]SM!e2ԞB6}%R38 n\lByD)#v{ ! !"@h`R~k,N5:?$ _X.!Y3˓M _U%cwB6usd r5>?;IlzeM#nyvКG~Ic ,QW'5Gm$7 B}ϺfҞ~#Bn(}he )S箻Um|iӦ+-ZnOVr L?t4C+GddD?Ʉ{k`7~܄/S2a܈=Pgȸ ToN|j89{z_o_LQ*,͵YΉĪFA -d>f߇M:%Ν's~L=6_\ȽC]I^.ױdl}[_@hRKx: љM^|7d/ɱ3ߑ/W6eY4'd aChtr~}Igv{AzOq fN޿+oםBc;N77W<-/u^ ҢȾ=oڲjlȱi g6βQ3}T7gI=YFcڇ_gϛ75|el͞=۝I466\/)3hCH7 &kd` 0VͻQP ^&4CXCh ÐD9L)<⥫?[Z_=|IV^o,[,8f6qǏ <1Z~gĀJc޻Swɵ'_krwEOKqί{3n,em?'?9QZTY,|U/s|yלu'ؔYElaN+N !5 &Mije fԞ= 232Ldau>^\:=}r25ChZzf9!iQL~J 9뙦eӏ!e굲jzXvlܴy{vw+^*@hgՆ2q\ٔUi̞442.s9J'O޶QERfUzT7[\>_7e@߆Ю_:֭]-̔O^!˟<_ɲ?'+^#kV. gN? ҥ ^;*zL!QO*)Nj!Ci} 2̡~ !5ݽ{{L;K? ޽cy-PƆiڹNҾ'-L&U,gJ/ɸdZ熮\iZw> Gα[gi-%G h}fuul;1rR׆X"A<5.Ơb얼2^XN^ZI6llsڥW3_\C(Q2Xc@30gT3e9}qY=s9BS8E8E4)ؠ*8Lu>{Co0k$ ukWy&ˋK M/>+kj &gIо;\Scl/ɲ[>=5>d7M#q;\3/gYc1{V>̬FvAo ٳZ'~SߗW6?>r荩iiO+/>/[|7͵cZ}Lvx!L|j֯?n]u !;=d͛*_Y@jͽ̒YYRǶmCHU6[V- ! CQPx#Lm RUߐo=L~>=f !ex)]#lLg`<Ό BpfB3{\C7|3B;gegiV4 X M.HzӿvŽjTƥa!wFyG+>'G>"֓og{olIgBά;o+^ml#`e<3eƩr'2y}ȡD^*9~rmSdw"'O۵QNES[rl}84*G̐&9)ٱlݷ[xxw銱ߖ+N.ӝ)LؼT^߻Yڻ^l~YԬ2ݗgqf͗,Oe͒\#HP\|XCH642_E:k䪫r8CHͮR3qә#rE9Snp9r\w^x"9L~Mg)ɃϵVg^K܁r<(2"g*3o20٘9eJ7Zn != u7Џ1=vVf]Bw<XeӲR|0iSi_Z"fFU;0UW7mܗ!46q|ר7N?ccТ Jmߓ/9 !e1i1h&O0t66_@)Mi1:\6 xn̆BuIl[/Ps *9L3dI?~ !eLMN3wzu4 O ;~nW3BB7=lhDw!YBѡ.{vcfaryJ/di7bWߘ1s˫iUUck+=qBHqFP{2`†Њd3g BjՎ.r̍Y͎2U}^Y//ǀybl#]"]V>Wf2 5xRlcx9b9%9ʳeu6:^ѧ&7%+5Ch2gΜW놐z8,TMy e)èCHj:n<# e3rc{(N1qՀheek ύC ]&7wU6"ϥ@3 lrk&2UqIE ߬+cx:`qoyh۵ MfXcBSp!U,M!kB.q-}nMKt`FxP2HLVb:Bެ@ݽ{9b,̖É~y] bS-[<Ҥg2LW4mxVҢ~Ɩ\Տ6ߙrΏKO4C'Alc0'W./&ɡWnp@obU!!t9dd6̜^ٽMλ}r|[^>Gy+2u&1{l⼕Ǚtmٿrerlr|=d_8u)(Ch9'e>"fMֶd,!L=Lu}HP3tSH_>h)ԯ!A|ZCH7jyH) xg1P&G4<$` Ad4䂆N B b0B[Yf%2/!&6V{37ޫ%[lkqYDwp^πRK_&ewY!5{tc#/͌1\)f,&ΰ-3M1P|^=h r2A5MBqfPPĈ̲0+<@gK1[ȕ^xXƬk\ݙ1cf5bezX 4ne?T@i,w&'<'lP;Oorf\+oKbe:8) LEY672,_*G}A|NCN[_]7䂙Uw5k/_Y[rw;;?ͩL(CHLM[6g#h5(So{rlǘ[C9܉ ߔe\}eͲkgO sY1܏'i=Pq2}͠}#H_2ATo SfS?~W) !6?uLUl.yk93..=ϐgjT5C9Vl5SݙHUZ cjHU]z9b830sy!YB li'+]Hҝ3uikX}Ye5;}z@ZejDe3; ^;w3y=K RJ~-iIERG.[lPg?Ҩ2Y<ʐіjE ![B.m s!T!tߤ+##nGBeIݥRFR¬H畳].3#c(GPͺM6< +!:FkoC]ykgEWf:?.=UB//rgfc|٧srb9rl[[#on9O)K)yNsA'xߐV/[LZݘ^Y#ȵ!嵿)W>~i'_h 5[f'AfQi X͡_~s-F^dݬ=^CW>(_"Ys_{,{;֠!}]w{?5TY@j e d;SYpaw2|CoU^7ސ5ی19ߍ.S:Ysv)^:wݿS:Oݎz<.K'5:k/6k8f8toVh=#}4,ȏzuBOehPCvg8]R? @@@jj7UzLG q tfNw_oid5\HyYY||mbP{ebjfDg&dnCC 'h3B7{piMX{=c6R6!yaSDk )cHf}. F>7N=Il¯n= h`KpJ!-vMQ70uywWSB=tu4 !CYD . {0 B=~V؀ z=~MZ; K ܻoX i+_9z˶oJNϴtPmM|}* ?6/cOIY4з!A~V ) rL2K곬qde}]DӦf?p^;eioaʸst.!$l@N :E9fE'Ԁ"bde"ŵWM%uN 5/[o@h Tyg6SL30ji ,2vC8Y79CcZ2h 4I՘׌_N;'.}KJ`U3uzgPk64:~A'  @4Ox#nP48?q3ҡ/U=uq- z9EnM!T)FTWve*;ƅrgYn;vB8`Ȧe-]4p,_\ C%^cK+i2F&!!d{k'01@h ( mαGHj@sq42j@ .K,uM"oƪ[ʥ^ڝZ>S]A- FguްvH=y\***0 !OtjpCX0\9\h>7.,{}]Ĕ'KZsVda̹2y❗K8볝{cX~\LPK6trg/;I=sڛP9yE+CYTx;dǎf)kԿopQߩ8e*:s {>$O,XugF13P1VV1~0p@h Z}Bꗽ}$7)T>eP߆B! S7~_>}m7ĥPC(`,Ɏ᭷qy }C}=>OE].O2j6W_xO}YWu{KeJpnyUz~:L .{nYz%3;|שW,z5z2o/c.0z{=ۯOSD 81D١'txI iE܎]' E< v:hHӘS#CK{Dۏ}&ڱP{~sbF B<餡4@h 25З! =#fr 6)ChwsϽ^s_/+CHOu5zzy=> }Ng@wXYr奮n%wʋnLP@TZ~¬b1M F{ i>vcBHS0{/`zeϠ@mכ˛F=&){kxs k"Prcoܯq%=s&kXo_B4OM{gWTB<|zCh 4E4i<.1g{:M=j>Si^r:7U;d[n5-=as!_+XA6"edI"c }->Ѐ+o4uu~8-7]Yua_ 6߿Z6N#G43D w*^15'rNR[|!ÿ̇?y74@h \tͮݯuLkc_+3CڇkW%2c9=/'ZuܯCZށҤq f\+_s#ZPu%,q߹eᠳRew과S"ʨ8'1LdI0~˝8ʟVMn\\.:xhiPlwp//c}D.K{:&D ;qugxh:8 W'?I+}ڸ6& 4@h 5g du 5; =Π1h|C AŚc4@ҤLf,&vl 2-z9a:DLݺXQPǔ ]?JWFC{3XL{[yԯgHP7FTyҊ0i {]ce6NC6C(E槙i4!sڍop7z1xd}r>Ah 4rBzPLǃʸ]cWȨ!`ZuL$൦li_9i+4@h <l} _;!Qks.s͠ Ǵn^41*:mOaa5 4@hh d6*ٸq 9`HnCyrCSh 4@y4RI[dݺe.L!14@T;KnCu5נ4@h 5Rk/~@hNR A^@h 4@ 2ݻWm&ccc2c >r  Rmj/U<7Gh 4@h jdddD;/u "([Ȼ՝{^ο^gg`{HYu5 !<4@h Er{!a3qp7iOeC>q҈ܡkS\*c;Eϩ*ŅT!Bb~\@h 4jChфq22n<J{/I(룮[Z]{ˇC÷y7SI.uej&fdx8ס4@h ~4P!4*Y1gO6c=2N&,Ҿ_4Aƍ-kɄq* ui>7}]Pݥiz5szO?;i2lZԩ^( lgs9%1;&jk4@h 4WBe:o/21휱!_7&gܸ9D5iQ&xߑr{i5G]=~WoNzFI䄐 @h 4@h B6mх\!4qL3:P3t@7p 'Lԉ%!om0lP_>7.pAh 4@h 4`׀K4ag|2̻pMxNцPwt.as'jDafa%h 4@h 4P ``{˥7+1}\=Өs~hSi!,MftJCȶ k<V CaT1h 4@h 4 d d7:-ci !%^]) !F0 {stL!判yYᲺ%=!"h 4@h 4 Ta 4@h 4@4!Ħlʌ@h 4@h LB- 8i6^Bh 4@h &jCC 4@h 4h0Z&  4@h 4@6 `a4@h 4@-Pc1@h 4@hFh 4@h 4Z &u­Gh 4@h 4MBBh 4@h 4@4!ԲfsL/4@h 4h00p@h 4@h iCeoIp@h 4@h d.0@h 4@h 42 `,8Sx 4@h 4 ! !\`4@h 4@hejYjR'z4@h 4@4P!4e0a\|ō;TT;i8dk/4@h 4 yåB\{L:Uv)ǎkܡia^aƿFtx 4@h 4i`= K/Tv%G6PRS45McjO@h 4(Jf%EjɰAiiPAMv2ᡈ@h 4ȦÃ5x9xTCѣk5PK2^a6? v^Bh 4@h( q2z!yåBE 1X) ДSh 4@h TU!T5\yBvCh p 7>u4@h 4 #yåBi ֽ spa1@h 4@5BU76 yåBj{vd¸9{wꗴPw#22gO~/V-ӻ_%4&'h 4@h`xPiƈ9U;g)ws󌇫mM?[FMtM=@B62O&!) Cax 4@h C3j0v.hܞg<\!gr!4iLvq1}?1zO /q#䲅}aˣ<7v<3qFh 4@Ӏo22V9K}3.ڽ{x:kocr,vVh9Yӌ玻l,l\o c$-9,myU/^yrX/r6!d/,'ࡱ5裏Y dZ n^F:x$Ή^?|81<7=`{4@h 4 Pn87[)xW1KXƱqw{pЛo)6lE(Ezt)Ƀ97[}n̽ )=L̛HNpE<{2]gC(1Mp5|Sgw<۹ .s tиqgu;ݔC姛=Ώ`~g1xдAC3@h 4gcYv&&ekw5ON- 7gMy !M Z]S* >)g" !>XʭW S$g[_π;&{r ĭc>wt IK {(b@h 4ڡe>2;偱l86.`̟yåZnx\1θ ݙ<|v ensg7wMK:tS[]+Vεi s(cu~hέSG7.9Db` O74l<" 4@h O!f\7scXg͇Ǻqm]87-< k׊w̑ !4 \C9Ϧ*CӽTe]0TꦥpW2UORBʹD77zfTJ+<P=@h 4@;4PC(rӧhiw9]׺=Gʕ;U=a34#CJ`-lO`)k<')g2vҞM9 vs ! KSt\`D4|zf,Bg7+,d.s}z\|yky|zDzJ/`wSְW@ x/4@h 4 D'12vÓRܿohb? O,mBn^Z>91>xsgw_w-o\v;:iiyw˕ 5I07|&fih3;{SRJC7Tt'|e-x4!C,%@h 4f;{+:beŭTW3icS۸H')踭}payn|`@h 4Xvc"ychP AbY|Z4 .?#tC(^jofrxAB@h 40k)c(xTCСC|~IKTL@s0Ä34@h 4P/ ۬K3.RٺuٳG.]ڸCKO8ذ;$CFċx4@h h'f]{r 7/#M;TTT=M W a|6CIs&ĒX4@h zi`'fꫯvg(wi_\tCl͐Q"^h 4@h9`<)?я9`Pk (+=m}][ﵪEŽ繇@h 4WYB4n%9b5uvTjV(C O!@J k?CPUD(@ ZP @ d)B diD, zC K K?CC_q= di0S!T  @Y10~jS9Y$ W`r @h,| ! fT@ CU9.B逜 @E K?CCY6#A*/|U Py: '@ f/8NFƏ_A=:~DM6}Έ6ieR9##섳ҤvX)Ns ?q)I##1N&( `S(b2&ǍqrlҴusdIb~R ?{%9 @dBedD4R^C(3҆P`仈 #d&k` el: ۈ Pz_r2 @@I02 4e!TҝB6Hk<8}pcgc!.B 4}(PXp* @hBތmIIx|tfD;R{ D(B3%mehhVRZuIIZ4hGgN|:圑$:-^-x]/op#i~|;f+m+k%==*X{xKB;6"O?=LKet`KT:NҶ]n>Z;m* a@ ` C KM@btbo_uh%͞vӈ^㞣KթS?(#kqb0@!>! phrˬ^DiXoDP=ccri p9 C4lq}ۙ3k@@&Nf.!ȕ^r sșM|<ߘ Z213t)~* `@ `$PmC(lpKo0{ Rдƃ7D)e,Kq1l f]Di"mDv(Wz&Cȴ3W,Cej;c Ja@ 0 6ҼeLI0kboW 6i02Y0h ,g _7C(8`HkEVc1³z gfǘ]_&W/aOr7U}y0n6-c7KB9.83qJז.mNKzKs`Y`^bܝC.!!T$@ h!6[(!ه$oC(fg0B{a$IqkOC)L!TJp2ŝ\j12񯣯! kh{Yۼ8vn)nJ_)$@ o+C2J+ f:igEJ҉ًp7LRBq͊%c9̗ۗe6R /!*F467)eۘ.¦I Jwkm>5j/8  @`hou7qn*!AIx:gP\O15C(f=G_e~Mc{:ͪeT:٫^'s&9; iPhj}VjA8wC*90f_}CZY\O渤h'C.,|BL|lO/d9e6(ͳBmW«#oت%@ FBjLxн}uH /e6aC,,*nB3NC"G^/x|r:pc["f&Pt6¯zg*MG_A,5#}x٫t/j^NfMMS 6Uk83m*{holM|7#.F$S]nWmIS:@ @e !(>p0.@څ0nZh$ ^r\Cohȃ @8Y*UK8l$ u\c T`LɺoYY6kU PL#a超h@N K?CƯ ?K6) diʾ0Uv,96TvUv~ @2*^@lͦC1N@ |10򩌫 @ C(%Nr\0 0I@ @~>PE Whxt(gia^z\|CiV @m @$!TAC˶WsPz.I_*Eůͱ@h 4WYB4f9b@h 4@UPegoTơl4h 4@h 4Pg `aa4@h 4@-P^g㾣4@h 4(FBBh 4@h 4@4!Բh 4@h 4Pg `a4@h 4@-P^g㾣4@h 4(FBBh 4@h 4@4:v올ڴL088p#@h 4@h SQN\F B*4@h 4@hH2h @ @^l-g @h 4@h 4 !b(4@h 4@hejYql/@h 4@.0@h 4@h 42 `,pI 4@h 4@4!! @h 4@h LB- 8m[E@h 4@h`Fh 4@h 4Z |"iV4@h 400p@h 4@h i !4&ǍH?:$kls2N&`.*e5$~-85:Ch C8l 0&ּ'D,+X4!3@`e2ո2 (:h 4\ ě%n?hhՔ1hȡ5kuLtZ`'4 ݙAyCѕ[);scyu.Zä@@,!te5zBrMΩMk[bj !}Й~erii&3:>i9Z0/ӧwwp rpy1䥥-_vz-oCyuh 4׀: ݾHD /zZ)L@h$Bac#0[F (nڱav-[ڕ4پP/_NcЍĈ7!7!@h hdg'_RB'qT! 4Pg Xr- ˮB{;DNðdg2 iwMto ے>2vrZ9ӊV@h"H!JQ̰$kuX~-I :(;EhB~'5d oziW6?N*ZdS&!ݔ\nmvmXbm;4@5<؏b2;lO(3m#@h TG ! ML;^%^AQ3<ѱf^]r'eXh2j_@h A><~ S r;lON @h :j r:0A##hu;"2m[ȴNѸqt"$D#+/}P N*0:4Lul(3Eh`80m [%7C?~}K4@}hjEB)'i*s2%Xٚ^8 0"izr;%r) !ӞK^2;@h te&@_39.nNh 4hddFL$0},CgGߴ:.'|IWnqK" 9Hk @h ez_I|˘GK~;rb=g4h,Pps4@h 4@hc]Ah@h 4@h 4SBBl…@h 4@h LB- 8n3]J\@h 4@h 00p@h 4@h iCer.2@h 4@h fjCC 4@h 4h0Zpf:ĕ4@h 4@ `a4@h 4@-P-\e4@h 4@.0@h 4@h 42 $B_fp 4h~lR ,@h 444j U+S @M:T'GQFPJǨF P9PBFZ4 P/~P)tj0 @"`aU*\{J@5#``,ZJLq!@!,Nl - A zd,a\EgBY,`*E1bPa  {0j׬ P9 V=6B|@'`2=&:1dǎWv@h 9 HqDlIآ44 erũ#2rꕲ`舜zŲR7&w|dAX3??t|΀n( :i MHEvC~OqCR4T c=zrȩrQA t ̞;#A10ihtRB{J/0Htߚ@M@~O!o**F\,," R:Mn[1>@QC~O1~O9mq{{ 0 a)iɘ>{)L-y~oc@,M߆:M4j Mn?u{׳j @h4 4}llВ+>-5 ,LW!;0hLpOQGtڥ4#!Dٳ{uo4@H =#i3蝭YGmKYBuvۨc\lCOxH1B{W{coX44 !oWpYmk$MΌ!;٥&jO2ekyJ2Cz7M|O@🣹_;OLЦѦ4@~ 2=&o~;rDL+vϿ##!ᾲß!Ju7톲״T@xEX*;9w1;zth rRMc0 hS MFh#@hH7 ok͈=&-0,;Fo{tG5{\1yX74@tY= +m\@@~O~C5rN˗`vf|dg3+~:o?~\^޾#qwsgd4{BaK[<7@mЀ5C~q uCvi"m@5ߓ:rTxqZvWsϽ]-K^˟^˵T;&+:Kż9жCnC<3Nlz:1pw`M#h zjZ !=~04O0Bh 4@~OnCt:FF4@4c.Klifڐ!M4P' 2v:Fqc -[_@h mlG=Ո bK 40x 2zzM!3Pݼe@5?GmlG=Ո bK 40x ` r#1M%K<@@20W=Ոq@h Si= Cop cd@C"!@uԀ9[,ڙ:3ݢ4P 2vu!38B7m@h 9 HqDlIآ44 !OYcktWV,.iyibkvId5 @ 3hS m'riׅUߢw|sWLrDzL`Q=Aj@ Z9INKx@``Zj]J]ju`1,/ t>۰d,8m782ן.'4+F`v:1n}{lL厫ox;Sn'g'fvV\'*y|u(1W^XO^wgZm`w6Lyʑ?=ï&u8=>@7ymL:V] nI!dn/ߦ$=+>KH%yk|V#BY??3m:޷k @ !P3]Ima6Ihÿ́:@aV&c'9魡1 ?'y|P|,ž=^%IC(Y>-E@=ыi_`wFPwC"_=Pl4umoP4LzVEup 2mSRif1T^,Yza*Ɣit,@R >]X^}S'qO6%@*n+sBܸIz99Ƅ:Q}Dr+WIסYqꐥ&S$PnzztLg%vb̳@ q6e}Hi3B6viga_ o%@T ljy>E7I6>"L1 s&K7s.FhIP12YjtPMyb f M_Iw$R 6<KHo qX qY7}ރG[c/bt7 '!}C%汛C N R_gRG;6(h扩kdlf$ϕ^xWƬ 4LFS3<'DPMrT?K[vU5rfT~P ,?+Yfd<, ~W""@"PmC&J{3R5hz>)ݞ?=ф0F}zJim0zױ_ͬv41O#5cfSV} WHw,%on2|:Q{so@Bɨ1mlA~O܀; "jAh5JB1OӆŇ4M?[7WOvXΒȴ +iyV9/13&?35h3][h#3"l)_^4-,SQ @"PyC߰:haJ硽hfi_K_#tBiD27k5G:DrG?;OE72YM!~qw͞|MojRO,-qM.~ј:.9~7I Y>oC؛aw2C32m*@pwʗh%}uC*Fig+I{Y=Ye"/y *G?mJڙ/Ŕtة$-h):(5d@v0jW͖0\pOO٬R/Ǩ(GPmJ wA!$?@#!T B)ws /SKC;ͪUj |hݦnL We$2t@BD  CP9d `P"J} @MC(7:. @f0j0 @` -)C P-BՊ @`0!@(P  *rt( @E*&iA PkB @  8 fjv| @=B t`!@BC- X `Yq @ !!Ԑ@R @'!?CR @0'J @@ 0JL TP%@! @ *D2@ P 2( @ !T0QH@ !TD @0Gj@g@ B- 4Մ @@0 @B  P["M=!@"@BC! OC@@=`#N `, @ JB@ PBUe @ BeP&@jACa @C$@@3`5# ; !;#΀ @%0Zh @`!@ !! @h  DzB `%!dE  4PCI5 @P I zG(% @%*2Y@ P B @ 0@@0ʠL ԂP-D!!@(PI fjF @vBvF@@K`$T B @CC)@ Bm4 @JCȊ @h j@ ?  @ !T8QJ@J !Td @0* @@`U!  2`A< @ ZBB P   @ !Ԍ8R @08 jI& @! @@R @-0i @'@ B $Հ @B3$@ACq @Cd@@%`U"  *B( @e*2y@ P B @B@$ @ACq  `q @-!!Ԓ@SM@C@  !@@[`% + !+"N @!0H@@0gH  ԃP=D)!@(P  JD( @U !T(P@ !Te @0j& @@0 H 4P3H- @3 @ZBC% " @BH jK' @VBVD@@C`5$T `ϐ @ zĉRB P   @ !T0P@@C Q  AC @@-`"L `$ @h fđZ@ `'!dg PKM5!@ !D@:0 @m!!ԖHSO@08 jH  @!)@ PB @B%@& @*ACa TP@ @(P ZE($ @*"I@ B͈# @NCΈ3 @h  jB B t`!@BC- X `Yq @ !!Ԑ@R @'!?CR @0'J @@ 0JL TP%@! @ *D2@ P 2( @ !T0QH@ !TD @0Gj@g@ B- 4Մ @@0 @B  P["M=!@"@BC! OC@@=`#N `, @ JB@ PBUe @ BeP&@jACa @C$@@3`5# ; !;#΀ @%0Zh @`!@ !! @h  DzB `%!dE  4PCI5 @P I zG(% @%*2Y@ P B @ 0@@0ʠL ԂP-D!!@(PI fjF @vBvF@@K`$T B @CC)@ Bm4 @JCȊ @h j@ ?  @ !T8QJ@J !Td @0* @@`U!  2`A< @ ZBB P   @ !Ԍ8R @08 jI& @! @@R @-0i @'@ B $Հ @B3$@ACq @Cd@@%`U"  *B( @e*2y@ P B @B@$ @ACq  `q @-!!Ԓ@SM@C@  !@@[`% + !+"N @!0H@@0gH  ԃP=D)!@(P  JD( @U !T(P@ !Te @0j& @@0 H 4P3H- @3 @ZBC% " @BH jK' @VBVD@@C`5$T `ϐ @ zĉRB P   @ !T0P@@C Q  AC @@-`"L `$ @h fđZ@ `'!dg PKM5!@ !D@:0 @m!!ԖHSO@08 jH  @!)@ PB @B%@& @*ACa TP@ @(P ZE($ @*"I@ B͈# @NCΈ3 @h  jB B t`!@BC- X `Yq @ !!Ԑ@R @'!?CR @0'J @@ 0JL TP%@! @ *D2@ P 2( @ !T0QH@ !TD @0Gj@g@ B- 4Մ @@0 @B  P["M=!@"@BC! OC@@=`#N `, @ JB@ PBUe @ BeP&@jACa @C$@@3`5# ; !;#΀ @%0Zh @`!@ !! @h  DzB `%!dE  4PCI5 @P I zG(% @%*2Y@ P B @ 0@@0ʠL ԂP-D!!@(PI fjF @vBvF@@K`$T B @CC)@ Bm4 @JCȊ @h j@ ?  @ !T8QJ@J !Td @0* @@`U!  2`A< @ ZBB P   @ !Ԍ8R @08 jI& @! @@R @-0i @'@ B $Հ @B3$@ACq @Cd@@%`U"  *B( @e*2y@ P B @B@$ @ACq  `q @-!!Ԓ@SM@C@  !@@[`% + !+"N @!6T0@h 4hJ*@h 4k ߣ>IF 4@h 40b~%sP);@h 4@h 4 !Lx4@h 4@300@h 4@h iCemK܉;@h 4@h Fh 4@h 4Z GG 4@h 4abWIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/figures/sync-toolbar.png0000644000000000000000000000675614023111777021171 0ustar00rootrootPNG  IHDR*mggAMA a pHYsss"tEXtSoftwarePaint.NET v3.5.5I kIDATx^ T==vڊJm*jVU[s.VX7 "(wȾdg2y7"BLZ%g;?7w;߽#R/g!? $nF Irj,uR܅Xk @i!Z!fZUѮm=6ŎHp'L[!MKuB_Ʌ2S)#g*zy RUU<6RF\GT 79;vT'k([O0yq aVqC}]}RRr82[%/"oO蟹6~/Vu!D\ kNtʝ3v',߉T ~%2rjf[]N;3;KNkB֥жPd:+}ZnX#`{"`l`Qk8'R_k rQ-ktԞmU@Mn@>2+Q. +Nל9ۿ`o+o_Ƒv4S`XMğ)>4 >zK/[_pLX\+]hUz- !VW6 9.{)`9ۿpE`ƺ>|Y7=`m5M|k}v`+T]vV`VhukG섭8 7u?8O^ئDV\a;,w- >`a s=0n>~ࣃ{zm7G[ȫ>7KbHspQ*euȮȟ5(쓩߂PHWx#zQi0clكTZ9pٞϟ9{,sJ»dLPx?+QԵ=`fC?1hL {m(,'=^lsxۃkUճzU/lVxt;4$!D\./NwyTy]sV|&vTLYccޠ h8K;`ʽ^{ vS:]*}+ ]KųӅI)șԦsRV=EPznRW6;K^VL᧑SGD=Ufl)^n|M᎙ `BOޛ>]RW1e8D<tB^[0 v?#Lr )bN|vi*xE0R8q0UH_zSCD~o@%g*qC\ܕP|b:t`wflH%_ŕ993Pf²Hqqii?GO$uMc9r5`W\bR*߈{*Ղ%\a=)a4- |D7I q${.-!|vc‹ WuT6W8TwJ^IH3 R]#-mp n[pti.i7VrFI#[Du}p nT C`ٗm5͂I} lQ* ˄D058A)(sgs|.j 9_cfh%j Q7n +W’DvϣO_ j䚱8\Gn1[5#;Ϸl։…[ٚ0AM܃f]Mv=p=CŴH˹ipSAba:4LЎӧyg/o\`9- [HZ 7f]C l!i^.0lcO;'2\︆zK/f`9dwiQ<z<^p2`oҰak  æ8 [/)dv eN3Q~+YD[F=!SB} s16ɇbWLmqK¦mVt¾7$-"N027l a?FG[%v7)*s\!6 I\~iL*;Cytfo89d&klB>~`dWSaPQ_޷o.ӿ[qn~LY7#$w?ݙl}8 G+v˷ȝ'|v7Yl@lCj6N9P3`!M)*ɘ7+mʳ&`H2?.;_~ݥIK`TX2'j+4] 9#hlYys9Nrv65ȋYR! P}P7TЃD:~zY,X6EDK緉?Q0feD]FMADN"b>Nv7):jfXYx(M?-/$  Is395M2e ORjŘ!*XsgqN:8*IZfg&$d n:` KH~dR)ϫ(†`x2$˾4ÆjEzZť A*:&8a!&ıh)_cfrA9 36U㻂 Mc ~k<5H%"vI.jTwfl +DW00| G`xd}a{m|-+c^NIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source/figures/syncbar.png0000644000000000000000000001440111534217015020174 0ustar00rootrootPNG  IHDRL,IDATx] XǶ7`@ 0' 0EOL"*&1&AADAzA}Ƙ}pAEQİDaW l@π LӧNUuΩxYbEGG66(qЌ_gwЎ yH`/8^E|/ۄkx Fuʕ!qxuF8pN055}&^8px?8pڡOH; D5YZ0F I GCKɚsNGhfFM6c;eL.Kdb?^)Fk(ِk-aed9 B[ƿun0j=L[b*T#bAjE2~Mݱ#UTvwύ2HH;߻e aY{G=VF-ےé0g78^4?m.sqP "ԌD"$+G?_"BaX 9'fd#y;bWdgcFb<UvDG;&%5Ž8b#,VwfL2?$SE$kD,<Iice 5(EM2 g;qJ$>G "cĞH  .1'ď;*erV NjcbC&Rl&1q/l*avͻo7$Ύg9pC?$;>d*(9؏<>IK~{B syNXy31_/Ix"[!!N)) 69QII94oGm1YU]6qdãj-ȅ.[SI-r,7ɟ<#4 RmbNRsJ;[N2H ^EH*D,2̠ s*AyWqE9Y)!2,C6.FrԤN}y;ioeZZZbV^Q5"l5"Yz+3\Ni3 VCWւ9/ 35|.u2Je@2PT5(/t5vF+˗9cZJD E-:`#$)LDRH,6E\?0mzҥ, iW(SȄr}G cχ3B veIǮ՝Qer(GŠid-Ӄc(ywƎz;9rL[ћܢcn'DNq0ḱ9/3(PjQmѨTHDy]n=08CסH!S)d{X%B ƾYQ.m[=7̀Ǥ1ii߱6")%}FEa#N.gF"6UF#Sm|TX\(d &[iCcXEMFٌzÆS#(l7BD:˄}nlWF:'::{1\U[.7h*!r4YsT2N%{pi?ceDIVmۺO'? vZx{r/Y1@ʯYP)ϘnI 6H_F瘛̻\/#ZR^qu6Ze/FGi(~1#heis;@d =,mk[Ttc[%M-ڶ{%m\HD vh3,wgLP >t1E/m\:m3Lتκu9{99׳ZVgsN:PzxqD"W^d '1GlɟE#1?c? ƨp?yM ėZDO)s SQxʯ}5["hr9!$o5hG7 "m0"zvS="6WH O=Ba \IdwJ]G &l¸IeXBBkG.Ʈw{2xݞ|lެYs AXM CBB{ A檄4A*UTլRĔUoI1 u p\Z5?c]7>kmm%MBI/5'H7&Jo<`Gc=u?D o~ -HL=f^bȥ;sW}7<˰hjZ5{%&.LH[P>;&5֭S.b 9e-=A 6qȞfdعzv H7#R\su=c=Οc.{럟* -1+DXHpyˍy>,JSg@IE#ͧX孝͵])@K#JI3eqRJtX17!~ec[b9K/q]wm@W*iyaYYHEY 7ذ@59|JyhRrzю.QJ$o_KF]vi/S)p5D]2ۨ݊,Aõ[TgL6XGfπtb ]:: o(Fr!u:ZE@E/(A׉\ۺc=411d1YE#tƈ4:J^mٮzl,T2}*< S3v4eb'}͕ml}~m{(٠VRnr>sNK˞4iLrɓ@lj^wYX D2j90!uOŋdY6&2ed""b =|@:M2X* ^sA$w6{|tDVV^SLO HD&6q @z။wZs|X>|9.׭S Sʪ%!)50ÎU68}jjuDszu=<ݬhd&"W^O_=wsC{M&!MLB/`$ԝub;`(Ft.A$0$dDL~~vA吉y tq@Y>9-2A_.l۽-1WP%?]䛣>pܦ1c@7=\f]tǮ>U+5hj:5i'-B4q @3E9 PZG߸̦C[DB*>8/k=!Ї `pб ~FzN9] ~A]r'R?4Yɓ'i.$~v[8VteC˟Aq6 2_,L?ze.ĬmnfDæ.]꒞^ QdΝwQzjU=-_ˠP rUzB =ð 47^adȢ''h%mEr: z:j>XKtbW,JQUظ%Ȟ xN$b' Pé6Ē )-xlDd8N0k,cS+@{x@ fBi=3.ӯ [r)JAt|Ĥ tXOHWFU N'fh@2~0um*4PoiV;ZQzEqU(Hya"R/Ѡitb?wCQiB!vgW²*^ҟx{{&gs3V#:?j\J\it7ڲh6#/^^~ſi+01:-x9b\σf)|k9YL0 { ,,,f:jkjjUt47=ݦ~`׶rDK`!"Nk\{I1οWܬ 2anmݙ-dDʓK!몺VeS5Ibȫn`A$"`>%AbNě3O5'?l-Swńrclc7>Jބ%{h!sQ+|=KWv+zqU }WMLЊCBBgPJPf!㑀r?)tuSVEKOROUg1TtQsuAioFFtJ_5q@X:H[5Vu4]oHHo(jYU 9Pטw' u).YQ<۫'[^B#0[c04.(s@{jS03! s|Y/!#F۲પJ7ސYQNEw ʊ X,8vZu}SL `2JE1O[ZZ9|ݻo/޺ue?4+# %2H8c"tW+y`DED$!S:BBkw_PO<8DїXG Ѱ0vmi\1 9XL'rҖ!Ka9fɜ%D @aI腅9;0~m>>6y1`{7mwO[ Q>W[YUF=@`E{u>k+砖V}ZXԼu+*3=mԴf XM'wL68@[AMViwp<ˊ|7@Q蛫c_]QdO oо!Q.W̛q''8q.^UYMQ>|cxTl&7`bbC0m{ɓmmmccb巟՟W/'1, '`g`oX;.US矻 4%R[vFb$=n;L>?.xW/lwo_wdiZ)T Ɨam?V#ۓ &ճd?קhNzhigguOFޯ*U/8\(p0͘ "liiz(+W8t`>|=8p =džͱySu9i3GW)8p(~1|ҝJ ;qpNo0755ÆepY_ |rGN<|S_ӿ(/?|L$}/,ΆOl̗ƒtF#.I[1tN륐:kmmmmmm >Å]v5 7pgN8 .wm!srORNMJܹoi۸$)1ǎouS?o>(GI<7Fr9t”w[m!oSxd+Gq!p;^cQ-o`mWD|GD蝊ˌe+L=E_oՐ[XAR:=Jgݹ_n}|b>'2nϚOⳉY<"ͬ\@l}$(x΂{,Ҽ)Yi,޴oKl9K/m DW"t#E$B!aAI<{a:{aƚ=PߴSW)`Ҫ]0s܊0v9ʊNF/HJdĒ e;2b%oɢm*P^WHyd~E}q^;en;<7w+<7g+<; Oja3yrfx~<>MK3<6 eFxtFx$ P7exxz)C( YNXײO2n G2v ;+CǬ@F7CQB 3-!`(Jw52~-<0Ne4#S76ã[xlz <>1S"'(ɴ-nfxx&K3g#<0qk;n- E $d0d`Qi贲ҽ|Qr+T%,[YuML('o~Bv\7u ԡ}Mk+V ѧ<.Gf`? Oh'd6HfS<={gLωCqX;`Gb;˷ہ~mMh-wYWo_㖚 s/=N xR8[:BK!؍": mHMr4EyίJca6nc`ۄB:{&Hهr@8rP;ۇBF~}({Pvt Q:PQcGp+:߂y6.ׯ5 j~qnoȵd8'0@\@o{a1ɦe)(+<)x-d~X䀒U!>,demOJuEc+Z)0=3m.[,|ȗ GX!e}gЧ!p9uA`C7a: ȝ ALud& (*:g};gfS3[<9} r T) VQF x Z@kqr 6 `NP.`\ A9{DAG@~ ( Lo($O/T|!>F`^PN/ C9@9s16 5G!ԗsPP^:_nL0Ih (u?4 P:GK[\SЀ !xCи04۲4v~CV)1:7y!N~Nn_%i/SNѓNp>s>=wdOhs)u)\yŅG\ 8q0^0nH7=$3[ћ"=%q?r ȕw\?E{ӌG0=R /k q?%qK!&y(S ԓrc[^P^r0G8!\{KK塷4PN*=%-(':}5(KRUZzAD!(`/`. =rA S<`N'Pt,cyisymVy58@Ogsj<ukoXπP3.?+BwSP'r'ʟPrr DVxC0'@+BWt8Vd+h(u8ߺWȺv~#uQ6 ވc1aL1A'ټ,ij[~~z~-lFf iP`FSЌ䅧aІ0؆ҁҩd7yIZضSܾyS+~ӟ?+V6};w ^xP:_xvt(ي? [P6<$lD7K(_v+_,Ԝ{~?,=`>uU' 'jaOM?_7p< Ӛ 8wSXqnG[@xAXPzmYR!tZ!Ga# ; A*tShR9t ko[NP.Uܸ ܈ס*7aTAvlvJv DpC+"=eiP.= C:D 93~\ĐkQ-\A9B8x!Pn9Ax z{XeEhC y-{0| =Ė<-<,+(μa,:܉-roly)<<><7'Ė{PN`^qr"X|P^!,'MGX,ssnĝs9.Ͱz`.FhkNp]PD98y|p) %k0=:܆{1:`پf5e'4ma㰶m> (ËDZ ˗ú'`=%aC+JJ;Jva.شU@a||I<enw(ي([P64?Wg̈́W 0(/}_>()&n[9L̯_QEȊrp q Ii@l$/8xo@!'e!$o҉$Zv e>!`]yO`N^t ѡxuN!-40<gN@50Ir"wRq= c@0 ޴M︂q4O곤'M)qKG0lEz)`@5=s,C<;\Mk8Pzxˣ [.XTl9prz9ѱjgr\x˛el9BR5$7D>Be0<\(8bi-/S^Hly\K0C1#A)`sK m

qW{ M0N^r O.` #Ux'~1[aaS+li:n%$a_:?ôsw w+_?!'|9Ay;t=mgγwn"\5p嘯A (G(!+r&EǏ/C(U55P#}is&`8q35 ⛄l~P}6!o͸'^1` ,Ǐkwk~ O7 ҏk =&9JzMЎN~9T$|.2XEK)<ʃTxq==:=y?lϸ=^Ux@<)b)|EA9y#lxM VӠH;N n:A@.L8rE\1d(_l9yɓ-#<1fb)M1ӊ-gb1TL,¢!jfb0ka\[.CXDl9L>dz-0XA!cgR+>y&8ZTb>/2yS=)p1%sbp.]=s`ہ<ts Wx- \WPN % (+ axReꗶG_?,罎瓌 FXK״U7k ɬ3Y6K O= 策2 Fؽ{8V`:<~,LBG2 eK’·PVЄeJ*_Չ|b"r[>n h4i`R&q\?pS J('/;a_*2lfE!(^ru7MGF9yC;uߤe'g ֲ>՟@Mc{5?gktp3{$(P4ڣ=B1bJa,1%a)K$(>E\r àSўq9p3 Sv:L մTA#%+ W!+Kq$@BSҔ$:\EP 9A)\Đ@v fY:Bϸ ["3Tl g^lgrv ̃XO+\y˥~̙XzrlyOk& *N؝O9y!PNgb)vzD}v/f 2b+#a,Jq`ZJ޸sTAǜs=;S =w-j357\{{\x~rqj;؇`>%A|P>{9>g_jKSߥY SΣ"ye*<4C_zXz3<6|cf?A+GN+k-(!'g2&9³7lS.!0{p^m}r_k3??@O0o\4u V%QdЋZz1,M3d( ,ǹCXqj'ŬՠqCe_\UqƟ gBUT:TEx*\ĒA!秖`\{%+r ]܀0\P5uPM()Z1~y܌- =o7zˍ:=S[zWnR . c r z 4y-{0s܈ O`K zK9<(T}ϻlS)87\l&=ۂyeܹc{ަɋM#0N ]Bqb\9/@~ 5+O|rtR_`ɓ'SΣ봼Z:.ZFX,> 195|2\;a>LhiiPRY7͟47`~FAp7`P?|(~O}~s[$0s<8^l/\nFx'?x.xs((Q&>0{}`(K _:YpM3ЂBiƕ3 X+)`ᒩ[\NKNqIO K'@_$\r_1\qO#Ѱh N@='̶Y4(o=jT:+ ;%L,6 ,,3pr185"-V =AYU0@B 6 :/i0=֓ [Q@BWDL:vc1B\yȃ`P'x(E@kOXĝp;\-W#3$,(ԛ|zbbBGR! 1-'/zr,XPH,&cc}a,Ɨη˵_@ù)p m[tș k8 -Ycs-@dŜo` ZPa,)./< @g&cPXʵ<'Z,{fl3׹g kIƍ &LB2\9s6~ /;,=jυ~/5|I_DK?`O`,~D3_3_U f`!螌Kl |rC\`v`\,h7z_unGn=+VL)@m;:|]r0˛\=z (Ap^-{PNob(x7ƴa+"ʍJRhЧ 4s&哠|1T(A9Js/—4 œ@O9WyON^rw<SQ*q0xUg&XM,lz5+ #ゅbᄟt. Y0n3H0gYq-(3thQq4ܞ<\,^݆BXcqFkOZ4Yiù˅|vRXr/(ŗĖ[S$F7g 1` 0[$zFP ydJa,|rV+&G_,ȆrW.*z&["Zfc7 (\-(ciЧx1ATr@%X᳘X}/(T\'{̋ssA!K-4cKaW^"I!a,y1PN9"&HY  iI k4׹*H̹1s L-XxAK0ssB.$AXHcamQ CP. 6&9nOvSp]5]OoWW#44cyz7"75՛wp3Y$`0z!cn64g;Og}6Ϝofz=̽Z?ZXka;UVhXw5 ij䓻p;'_}5pPov ,Gr"G;ʭ> ~9/tW WN;Abw~=,Wsչ4,[a:NH-'E@;EyjJD +5zsӽ}ELm&zr|!'14st2Z0]YLx@9ʧbq+v x5K.|X7N*.j13.`lZ5qb9CXi(tńC|$bkO芽!j)Mhq y(w}f1yi~u@/%r"fa]^0) \`+j&O`Opkg CX BXx"CXUR%r9ʰgP’RPXzd ptT`̹o@/܄s%pxuKK`.$# q(oC 7`s9jc;O 76X+q~-0 nB?q'AظMJ3Q#J6o9to| v7o͓'@ J6EJ;JʶiRvN(Pv+كRǔ](JvL SBЎҪ~2,)!? M:`F4f_bqK.=.5A7B-(D \Ym/pUɝ*7" (W!SA\Sz%\{`ZPh ŅoObl< 8 }G|fq}9 Abkq s'a1np-S/0 f!bҨ-"ҖpeUʟqa5z_hϾr"p9s SE,99.Q,9^HLmnzuОqԆ$Pglv굠wHȢi)נeƔK)x|X<k9${~r_@٠\-(V`NS4<\PV2tlyb,(_Ez̀gI T aR9ECa,r[c=e-/vЧw!98|y󄶔Γs$/SWyÇr ;c<#e/(xl,B#Vz腦z} yK-/*R$PF0/bhS΂ XPH~m0H,[^Ya,i!gt`,쯱]:79Oka2\::ş `.!s #pt-6~ ;P>zqoƱz;pO-43K'Č->󸱽w$Co}M!{y #fzF^P^d!s2K6ah1zI=I@>̈́[~Y W <.)G`nxi!-a "CZ}s6HxXN/~qo!q/Cosc̜ MxOW䪜Gќ猆YjQ 7=?N0ޠb)de KW 1lE/4iN#W@Nr [Q;uyƧpnq3.S9}8;C.E"b*czh<@xL`AZrȍBADWEysN,*Lz˭*++|Zr7\؊H4Ǘ a2= 8z;g/5Kb>P]^ExGLaI517!=SxKʬ-Lb2dXȰ:-S()9,@`.]z9NÕE‹. %m GEN6/ydI+΋le0q6rL^'ASq5qvKYhv9YLv%8H)ȼ$Ӆ{X".̓2mC[KsT:(+lB v zV(Sp%ϻqnWLŘ Bs5_|.psJh@pA5Iz3Mߘvm0@eJ± 4-!͂h4S9i& ܔe;|pie:mNIK G@)Ԩ jI\ܸ0. 3TLϸ z Èf")h>,r^ a+W-dM.(\ ^o9p.CY=h4oXPHhSyPnLTaO14l3ćg!,< KU8 rB;`^ȀOP^8-/p,` )P=Džp^ʰMH¹ oy<uA0m@\z%+>r%Ŷ b[6\¹1u< 0iAvBKP,i`s Q0ws ov(PNbyn(`Np.^w2@1EOH+}ל|B iAo.C[h0( : / 4P4*}Iы)+riz-  06xd0[S4Z6uh/P7)2:w|Iv.W:i :ԇ/h [43Wa*.?`NqCE S+^Nrz$ry8)wrK&!GPNn yEl9"4ciTR`-{Sy^ou@RlyA0/CKL,<Ԟrb|Һ zDS"nBu |=sb'u OB@|f@uqs s"k@.ʓQ[" ӕi2_#Kb KǾc.0uzwB&,h> @[6 z x8qpT0DӍIwt=n7sO\xb{ƅGpLI0Nb^iKbRkg[Éf% 0'oM%BzJD5?}RB6S ՠO򰛱j'M:R= e L3ָrz WU'l'1<1%aO)K =!=U&S&Hԫ|fmPHΊ=סFe)< kĜg-=oq"9B9@]OH`v%%K 7\Vx`E{/n 5\H[-!}{@s~0[>GLa)`ny>(Ndz f H0BXDsr ]!0pdB7 =wBCq9B ֵ`,: jy|.<79mlҦ_8.Ci=DŀØw( p~o`Z|G֠/uKKۓ5~i[5 $&MVݜA&Э?È)ZdqZs8y Ǣw|4 DV@*nU^Us0<+kAJ7a\Ɖ'8TSl0rW.\bX0\xyɣУp-6sG4%[>xt-gby4:=bܚGSG7D>UlyV,CYPBsP8ER 公!,>pBy8'xŜgjyix!s6_Y =b`(n !8t H8*=+]x-G Ÿ&%4)M4L  4t4~Dh~`~Ap0r}^Y3UB<V>GmQ%`+MҾ8OĶ[ƶ_+ہy#yBÐ{DlE{pEWJhS@@k5` X@40sL1*\>߂s  ^)gCo|&%\Yt-eݴk܅//9Mۯ*hbػwoiС#}ԩS, : Hg.X~жUØmm )V}+O? O=pyI|k-\=tX6=N:9V O/|p.8u.xg%w6QoMB(MDz0zHXx,\4ߒ Â`0o9=# sJ}Byk@/ 'NOEh8voE`~7ٞ<#};é}oo_pbiE;K.O9w\@Cgɓ'wށ~;z `oZZ&Bp('v=¢a,&ܧգ/OBrl/$+ҙ5/^o쓏Wmml +A5ܴ~l [ >󎿅7?E1 zeK?/,ł,G0\z=!5h] L@yLBʆ) < IL`ݲe ,^ 6uMa'> mrs[NǞyqɋ/ǏqTqP{Y2tB9o;*1l d(w}+z3CpM`>g5' ;pF+#G %=*ԡ1z rSwxʩLcMDz<+ &&O k׮H/^0Uir>}i YE mmm~zi{رb hP^NIiAyO*cPV*}s:owEI[nCZѳ1O?y7V>t\ L8#/< (́8,(?7Xָ⮪R܇DWn: 7o, nw:l'tb$6cjr݋fY|۶mٳ\KPNy(Y=>{0ֿ8((UJ'p lllo.Ӫ(u<)7-M#Ӡߨ '/U > O0ldA#G`ՌZ2+pxmm_}M /:܆1oQ{r7,r?z\+SzرCtBLPOk('w?:un/qڴi0zhq1@Nۅ@9 ;8Ϊ@.Q88JA^7}N\zf*5yr]޲+7|E诀keĥoLe.l}>\\llq6@\SS>|z@dV/m\n:U¦U}oKYOI?E#,d٤a'xI z-wR6rz00Rn+ }{uJ8yدECqF&߽{%K;+Z)?o5gBP=@ޏyhd?1~tyǥgCuӠ庴xAYp_κ!92ks^4OA(@NbCy B]BʽxPshhk2\6P~So}~5/g f缐zcnaqX .}R5k3'a` p{pňӡyGCW<_}.H)i˿:~O0FRg :\"uׅuѺ,,u -O븎z Pހ@N`a\|z(?w{duJ1hY־Fm"4M/ϯW?vҡĥwu5gTP5H7)aڟ(oX.7ߤ+7|EO祐8 c^rS^k -s\]RWWi}wwwS>܁0}n!s. /DN%GM35S <@KF%w_ oz'|6tݗ'heapwUI?z3N=xs\VܗqHtA[wn<ܶteY1i ٰ\Z'ú)C8[`k#3%/^;oPt=Pnw6:<rtBmyZYӧtҋ{]\}}zqPW2QL8۩8SYsCy=h|-@ﶁʷ| ʗЕBҠ P;# !΄;[>)3,PN;;ab硍ὝTHط^h0.[@SN_)a(.Ӭ*@N+VpN`N|孳$|jmVSM_x.89+ V˚ޗ>CK/! }?qPn,sHٳbtсqy,NgWa矡w?|@uڀ aJ Cyw\N\s |8˸t@x_[?';Z>(? >xwN,zɯ{wW`,PN^]kqN8px\>//}F5C|i<+V.]w`O'0NuL= .#{ǰvx-,9ZG' ?,| ꅷ=WZO5u8ő@N3P8vCCs15}@R("J[f gq+9iPog@Mg}oΛ q:ϡtПqӉK9_O׉s}#isfO{OW朆+·^ 87Nt||P{.JϽTF(O/w* M_SVOu ⊰s9.)Cye>LK>66fʧʧ!o3|B,rbnXS~VR@0Cyxo\ aBykRA7~ʜr 6מ?G^ Q#`+aK}?'~5xb|#O!N\6ǴA9B ?8<i%O Y95ӯ))r_29>n'ԏ,: ]~|U>g0```L\yP5V{`@gZ{1\ruNV,eIAUwSoB( VY1W4:d`ـła=BH} M@1Pɲ@p? cx~(oXxʏ=>_y Za` ~g( S~> W㽯yxlޕot iiiS^áY; \,=CNM1zlY;Tė frwCYueG7,b~/|6l,^h'A֭[Yx/ 3< S&?vOA9ƓϺ=vvl.jJDŀt`1 giO}P~7f͚5, : HgZ߬?tF>8YOr؀wZ>߂sm)_r+SNI߆ ?w5ZqX9kbR)t5{͹`<}F@ڋ+n*\6/BY~_Wr?yŧ> 7\3sp ^u4ԆsN+uR,7y7o, }U-o{weഘr/ce'pc]0rr Y9˷oߞ:/O hȳtu˧4@(ײ݄9$iP[\,ʵ)_Tgqx8s=q= >|'\݉`މU[ {a.J72يР@s>h[7fO>, X>V3e!Yp;V \-V I܅=IV(|5y)<MS RHMccئ}4EI0NErS!kz_uu666l@C5MB0QA9y(Feـ`P%06Ȟi_.`t'XByi*&Ol=ƹ^^ڀYkw¬5BvXP~o P@yތlllllllll4Y f!)&Y zn? 6C0P!P\lllllll s킹(o/|grUu66666663m@C`9J'|z;Maa3Bl(=P^^g F0-A(_PNЛbu666666666P:1`a7,@8|#d!K(緤%nYlllllll* 7pNQ*|#lXP; ;wA({`.8 [2GSY~dz /޴O^t a(mmmmmmmm,6@Pt@,(߸l=$dϑ8,F߆b`````0m|ALys1hh;$d/C9) Wl/d9^R |qX}GSSh>{4uWk/'Onirߴkzb|er/˃\. $AʖBVC<ͻCcahz(rzx@%gÐT/}(VD-x&2Ձs~,9,g@? :3?qmy0+Or]srYT祮uɮ^lolllq6@Pz rPeqhkOZ g?D؊ȿ (SzN(~OrBf @?ޯ[D2?6666l`  lC(?W\yx=.ӎ0ooxb'Y{GuLS^kF)o~%Ȑ_27Ϣ,:Dq:^F_S6ŀ\IWnC CǛ`HOC& ovuOy. B/"˜_.7'oZ_T5^>4wuzN"ʨ/um싱'/S&"/ކ}Ye?M].JLבbݹ_J't\zA!ށeqX 8}%ӌ`) BBxzZ  `5Vǫt$(yʓVIB~0hk 0a=U{ 0!_Ӌ$]ܲvS` M/ͣ9mmmmJlP = GqMVg7=7DC &[)y2:۝:p^p%M+ (t0* n($(w_ *ӧ51ž/%%'J~|yIkˮ=$,{eU&Ẹ# Ugmmm@AZNY$(ow6ⴈ4_yϚ?t4!"BqrЋ, nh \ʝOw _Z(Jszi0=xo].ǐWj*Q (7JDO@ߥ,Jz?p:l|=F~XwO¦DŽ:?|%MXmr!K_IoRJnc.Sg:C˻넀3Dcʃ)#!*F=).iTvݓBcX}Ŋscu]_fa0I+М s1=f<^y{0ɴWu焣$} eq I_^z=$@Οz o ;8tʷxhqPnx@A#<<2`J;$$fМB{op'C_=ZÉ)@O A"XOQ [1m5- ~\Om$DB0@.g$/. (s@O85 FXPNe@Ay;:Nr?P|Br?WNYlllllllll%tk9xy v ,$tz߾emmmmmmmrm|$|7}G߂΃oa(Ju6666666P6@P\ˉ (m؅=wa -:0`\{%JFSݍmmmmm@Wq!ANt<'M(?oP^̕}饁CG}SJ*&M5m;aE0f UZ뷷?llls]Ʌ4Ɋ#oo.3s`_zi`|7w߅'NT(MJΝ`cm{rCyoo+oe[5` J\Wr!A9MBB`nC9zb\9S^̕}饁1y eǎ`Xt)g-!o#W@ks{cz 駟pt+Y_` Xժ$(q-'o۞YZ=4 nzn<=vEM.$(IViBo Ӡ5 Lxk(Ol--[6l6Sm*Nm[Fșd Xi ].|%lP~3ʗGхr qS~W:pm!.5 MU6y|(?z(BVeX~==za,ZVO<^K1tkB R˫âzc X@5h ]&W=0~un:.@ Gq ąra`cIp? )'SN3 /^zI ܤ^yUX#`ʕSڙWO:hjy[4c(jr6=)_P^-&*o}k5PHrW3,‡&RAtkyϑaRFLyApYsc8ݟtСCY3!0"0n٫aB z0~0_–%i ?nЖ*_h*:?4E竍@y,vT5*>Ч_K+9Kk7h ].řW: ~ǩt\()yVmԈ:<ֆ{{@M~# f}g3~8G^w9+Hn}I p?k(TLٱe l|i^.`5d޽{4(lԪ8jJvV kO[By!UbrBװX@\=x {D6Zg [@{p}57о" Fvם4#~U/v bKZ2E}ŗ#yjXB=V TWK2M횡\yc2L鱗L:}{mKֽ$mQJ0Re6Il zd|[k54>.|)Z p΍c$r!LZ v”U;;EU;@9e f3i?ϱ3alN3 "OIc8(1?>eƁf KK/S0Á,};Cb I+iPP@yLfD O4J Pϳe1" gõ0 kS|bC'Y);cZgI(Ey>} gt}9v_s.̯_1v6 Xs5*;/W@} #/<@O Yc}zoPl^o`T * ě`9u­zt]Oda/=GƛmJw ok5mH\8yp߄gVwqÛǠG|| M׍o^*!\Hrq [@VSo9̼8VIt ߽PCΔim q:S)/?.D@n<h`o.¥A7\O0|ƍrzH ^3 q/κ+^yx\(CW'{G<0|h]$ݴilq B-0=?}<xW q55"|cN]BIxXl.l/r B9zƛ.NOϜWbr\`to bavH5 +(fp? s1✔0 :/r*3`(?qS!^(¢b›_pp&k pmW{Z n~5k5Pr $A yn ~tp =ĩ`Waapհʿ)I\HP>AH0x '5Po/pR?P_LE\KO/Ƌ@Ӓٰ}1|4MBGbe߄kF^&rAo)@ f|17g`ڷ󘁞VȋTjU@ϔEz+IqDE{rHTR0:6VcTjZ}6^''` *XiP:F(.ctxhz^ ?k =r?5!K~tPxa׮]^M(ߔ*ґB@Pб*7랟}B뷷[05` L $=纒 /OYL('zR8)?k~BZ{E7m\w\wlllllkc$+gԜ۷#(_P^uu666666P 6 |stPaBgO9t54mmmmmmm|2[nA r6j4p3-@5؀[C|31W1sN(Go9y)e7ϾRmmmmmmmm|Rrr '@ɠi}h38Xllllˑn9?G.\Ӻ g@M aLZβЎ3utdzaHSzTxKE_&H\6w'20S댾 ogwg Ulag oe/A%g_P@>2Eg]{p]O9=fLǃcBzNc=.@s%^60T._~c$aB87s(Bcycʥ_BL}zq/+A:劵 ʭ bu}HB]g Uk \]_5[P> <f {cI+N-AأS }:MȸD~^:zy&9S+qtin<CG'$F|k=g@EۀSwŸ~t n|ྊu:/_[-SJ0OLF߲+;{u'&M8zh|rmpF~" Ӕ0b: *@;f⼜0U4Q5=yBw$Aq͐ +wV:fv>Gb͍/H;q*|[_ûB g@%cq _ L1nl Ms,8KlᾊAOlf.<+(ߜ)W`@!ƄzFOY`D():0ӬFcpɯʜ23:g$0{iA -bUPI,&/1:*cA)Pqe9u؟kǃяMcfto53*b0 (eA1'x2=%y18碫zn&tuef38&66666лm#Pfrma(:CI@nzbvq:{d]o/*UsR < i$覞)g_Ann*_/G0'(iByn+^QZ7T1mmmmmml96-dBy UA|_z ?7{s c!xBP*+()>5mmmmmmmm,6@P-[N@ջ ,o=͟mmmmm ʟrG](`(g g g```````( ?5cB(tSkH*g` T+>*)7_WRmp^X\(lxbM~S(o lCg` T+>*)7_WRmp^XPu[ތP~8Oi܍^vxaC9PTǏgXjRARAY*04`Ȥu[nw g(gi;y @ei꣒ru%5j'G[ؔ P\E5@5 PdOyG%J k Ԁo k:+ʟWPؘ:ӧڸ&z1U!( s#Q\#Sڎ9Pu}jpݱscLѣѲPBy'> '1₰ʯj{ʹ. u>YI0m?0nu-_cAy.݊s%S")xw |^pq\6}~]V^Nz;z&y7']][:?lԣniP}-׽{J] [ִʷssP.B[o9"G &^V#~s6>_ANLoy.]YixKuB{^/AYWIp)ݷ컖J]^Luds]uז}uFNh ;?ʛᾯEʁ`?0Ip hh%.o_.FA9үs466Jo9y I;+^ooF'[PnkAyi Sz=k=FLe)_2ـnyʹΤj}p]g`绲lS~hrզ|ʝȟAoc A} 2|e})@̇vD=)]; &a3EMs}:6=z|6 wG]=ݾmAP~ یrgf{<呎]yX+1</øq ok5ƀV1Rtzqsb;~wtnO?._|U[N`ض?)OP@.sUS3Bo~?39}]w}_K'i:o}iw}q_oCvt/Nh]/:FK;0uQY,;{v=qߧ6)羻x]WrlS>dT  O{? 'x+J6K1 pr}ZDDUKᒯ#_jr)7j]!m߱\;0]#]vh8fa. DUW7߯ZV6wW~]fqxrrmOƺpl\]Nuκf6P(z~1X(r}a8 _! P_y[8qM^SNvmʰ&S=wוFzpm|0A9ȟ3?K/{vlm2 ʹ>{y%Its1|U)@Pf|ɳM62sQ6*A+E\9Ay+B(_焯477 mmml SUY66mRH,Co nl*MA9۽w;ʯw+cJw`pv**jR?%99k5(R\(oy ȇ͌zʋ`Z!u=8TVv P;QR?8=k5P^ +RZS"Řr&v7߇ozt@uŶZ ("ԏ2ɩXRkA^(_uPNwYWg}VEC?*ufgt|ܳԳмz]M:ٞOnE6E_ZQIhAy[Sm~^)R4 {rA]>Pgor!)BW5b+EJFu}˕^hRlOyC`o%5p6:ܫ >ܽ&&OYm$֓OeԱ//澤&@[ڲkWF٬bt\l%~(<*a\"> N*Br%7O9hGzEjt=oB_TTڥHJLo= ̭] G|PE~_E(_;fk;Dz=^ܫie_O:'|,B%2ٔ'aWF٣b_[n\l%n23\dJzk-Es W jn_peA>krXp{"Y.TK] +B3[#S"]`'zO;*Y]_1>cGOgkZ-yG}7د nSfzb{ \Ҵo3zSPnѱh:)ݩvXdvڙe*9 ܧKmĵT Vڜqj[R l._ĵmcxJc9 R_$ZT=ؿk7E@yOl7ˤjk])9xr-W,!|/~zDzg\=\`XvV4c~?86'G޺ح~Gbh[P~v|6*2]nsjႳj{ڌ<j{vFR6f>s[N [ zJk꫐2s0*OAgBu/ c@-5M7=:˛;p=AZ5C r]cʓtoAyB!ryASbrԽ-vd^P)@p_)2CŸ`S& Wv'>reYMӶ5B~u"m)6CX13=_^ѴtE^M@=7tw?Tg؀k>eY^g#:vu&6NZ4|͗'o:=a+q6%1׮mj=Q s| ۉ_p7\z:?|OX2~Z;*8rMc|񰍋)Byd'x`q`x (K$/&aKqk' SOmu]#y){]8[_&[rf{ߠM^o Tƹփ{{+/vY{F)LY=>T]αھŃ(|cEOS@NPNQen)؞6G>pRN=,8~fBN a"vF>QowIטiYM 's;ۗt$HkW""̻:kskG9n"t>X'J>}im'zϒߘז}h}C2{\e7(Ul > j]t~&8A223[183%6 $r 1h֫Q\9 _U*>5pV؉ӷQFfQI!Pu"V uɳN9)7gzpS2Ճ>?h)ol-N|`R :*y}-/E m?}ՠnˣQFw.svf ~VC1^X@TW%/5E_CcrۘVrtpjĨ>{]fC?>PuPnCM>RQtqL(= K 7H/T EC7-uYf)´yᔈ$ >(W ~}7C|e|P]q}U~=q[uDOGS^` *ZŃ+OyW@yEk3` D URQMk54AS@99C9 k5 0WG=q.Yրր [P>= l4kz4P^=u9e X[+zVW^`xUG) BRW63+f%zѺM)s闼"r*)rܯ<}V \e(]B ϚRtKuWoU_W]Q}{V4m:NY#Ԩt%;eӷUAWs4D=^7`)\(‡4 1!KvǮڪS}Jg(u=[u^u%G<âN^jg`R{EJl:biaWMxۋ[Oo? d~ Es?-$\O6P^=c\E_FݝPnfjonS]嫃H9~+6ZvTn}_&gjγƨw߳4:qF !+G~uROב}NB0 dŔG^ī->+8ud;]yyccʉ hBbzt鎳)3Vç;B(Ą/ oz*ZB/sKN(7۫hfo7NLrtY՘|וhWal )gM`5O[ql(E󷡼$)W ?KXI&XQE0v[Rh7iG>=֡YFZرv#c#OنjܗQ13mdUF=:ӝ`𔺌|,~fŖ't'˯,X {[G}mv~,su]iFs {&_W]8ZgVX}ړ*D_$ycZ CFW"5%uY_[ddƗ}/]ܗEuw/)[(Ү{BmN+^:;U}ewKrFVD\yĔפ0LD猯ȥ'T2{NM˜O**KPN.l~5q_gEiCʅe?[Psn~}+zO2k5`(ɵec z{brX^^ok4`Cj`OyU g5` 4Pv` K!(`+U[k5`h́5` TL(ZP^.rf) D闣 BXuquP 3,P yL+:^qP^f#5U)uzek\ ˖2$\Pau2(%J] (eQHD}ngSrN+F,PnJmWD+t+ޱ`Y OH(,M }^{}YJMԂM0X*ʝUpr䲄Os*d1u+E&"yo\y:ۉSl~}4VLgsSJqe}X'Y?SQ*M gl:[F V k Br7m]^{-IwwE]V{\q8Lگ/UK6,,u".=BOakfAc2Ae;Bn;\t;v x!#%3-5ϵ̭.DS*srLPKrܢ AS"`=J:G[5*$4ܡ+PT3w:!,H|%QGl-zfpn ؊| oD>4c(vJHja!P򭲤KsW$.)H|.8ImkUҥf;P#}a瘙7 !z\7V+Ar aAN(4`pM ~ZvNE! М,x-UD;y'u܆@}S@e^g録ڨǓg.s $GLZI|gT\= _Ixg0Mj1uzeLw 6%|%r_"o<Ӛ|zN p _(7! n+)| G&k$=r=;kc=; Dŭ::oMi vL\'?DQcef^V<}mњnFn}iTJ*C;0.bu0Ѵ$[S"&*AlL0ZkuMSp1"R$گ^߻w@3k+<3>kBqF1}ay~>;N~vkopfoA͹}( ~Pg I8y5f(&߅y0b~gW寶ɻ;FexmW)|N;N]'"nz3ׂr<ǎog#+c׭7<$1^י&Nym֩o֥_!p{\z9_b~5Ի7C#<(}wѝ'hk1AD䙝S.^8JhO\yaeqN Yu>5"39X}XΟQ(U^(G0jOyQ]g`snQ3iH 1S$s*Hv7ooOWJ(K9P^blܚ-@E']Reu9Ur²zXoA9ikN>T3@_Ҩ' jA0 Z A<"uĊP1Yʣ7Lyik/̣1PA{9f%yY]YbTؑ3 mv_| (-g(/\|%k5v t/ " `g5]]I'SG3JW&txAգOzYs: @O<'2}o9{`pڀ=:{g]e:wyL Jy1 = 7_<9moYuLKNe2~jI@NP=[rX@a~(/,߹Aw3K.(2y{*qQSwYg^՞P43wqX@`(/\w|eN H9B̙5>=Ԁ ]P9_͕3cťr 镯f Xݪ^ݪe9k5(,(D@P^:rJk4PM۲X5`BC6ƒS^:2k5P`(z\XC_ɪ@>5` T+V8Ok ^P~ba Xժ:0Z#wEKE\ IirBrz]a:5-f a SIk5W jY`w>BR $E/mr19W5x \vSY,9/HG}7"0F k5& 0wƊ}*Sh67CsBu 2 Wu&jB+8ok Uwb@\=S_..=C\Q=3W[I2UC|@lq 4WiXz5HJi`e$J[ZհɌiRd><>NM*)Ǹ'R+eкiϾ#^D<*=˕Be~ʯf't];O8(ojY@j\?Hz˘o|7=m(\&XZVo2Z/.txsnt xuks=ԩ%ڣPs! R>3󚤗 0ϑt2k21n3-*c9 ^]0NO{iyL,W ],ŅQ6~?'\O`~=,Pʋ-` M Zm!l@{V=sDS 1b]1+/%٫#ѓQzA/[yuQPٔŽj8b/)PdIe2%ӆ>%ԋF$/Y‚d=R-ڏ/dƀ4O֙WR=mW:=2;]d]qx3BzvT|4n CyX@h{rԀ3+n<)wpV' PG,YDNUeՂ #K x ^Cf2)iy*X'ZVy aG3Fy"y4ҳ&8z^YaxcbaW]ĔGd/ u?gN]3'z(` Xr M*$}%,'|ӻXhܧ*z6n:ϱEB m m*u.;{h"6~zwCW8&a!sFԲ^A^=uy"Rۦz؜ki?51n x^=DzVz?c XIv(/z|S^ұb"$m*3uWS ,Uϝ _"PN!,(M>߂sQKw[vι*8v` Xjrj{+,R]BaA@c* =䤮81Ӣ B*6Juu}8+]U4c,Y=n2W$k2`I"k3E}]Zv9)r˲:uЙTXKYhjZL{_P8v)~7\PN`΋tN5` [ !8=B*kjAk*I<eՓ)*Uz.:}A]GZ^\׏^= Tn(\Dȵ@e-&Hr! d1^"yU 5Er_EnX_'UT+n})V;ŵP-K_-Q$r=KyN5` Q iĻFзOy^EJ_T~-[vf6P1m1$=$Rϝ&̬>Ͼ i3^ +V^ƭ.^b^Rulڵ w?ܣ/r-8KEk5(KYN5tq&o|z7媒/h(rR` \ ]{â3."I buwˢh[AXPg2;"L-IV~D\ZY dX@7hJ/H")H*1_] ƊA|rXPP,yV4 iJaåH#<ٲ?"ɗXީrgDZh oI W5dz1_}՝jcZUpxzy86>}tM5yMro%̴E\ot hfcf"PX\]Rd>}+[(y܅]g0=,_֛j*Qm2OSxc5=叓=+d Xr@LzJ.pu {Y9Xd?zX@i`ud܃;;MK pxlSwcSs+j2nr̲u E){sAdByF,qƔS '|ĺX@4нP.c-hjqxOrg 3;ӵC\f~. 0bc7C,-D>:6R̹,w[]-0r9 V=Ҕ9Ba}il)˞.2 7#c(K=S96n9yi {0mhE)<(Pv7M?2XϜk5R t7ˁ:0( ` '1bdcoq=3c<81= t#3m =:#3A- e]!BFHg: 23{{eh?z65c:{gb]flSWizNkf"N͙m3T;(Li{O[V{_/i_)CIXRkۡx0_}J}mRK}JJrgWRy=yq8BRHg!,5՞TFj,H̆r9JB CyySe X@A 5 ޥJ~WrJk^vjEzurkl]V=v^}gB3L(? gԜ۷ZCN`=K[k5( ˡN5` Tʫ8k 3*Oc X(Kom)*lX`(ϯ35` t"P.BXbg_,7k5ȪX@ehrW3O9CyeT5` $k⠼\rk%]ճ,Էfw|xϛ^sf\6nʻW{X2k{ܳ^wH](&]2$; X'ȩޙ)ǷE#kQG/aSYo]:6XV)x(2e XCtorߪ1WfjQ^LWmPI%B94;A9By=OL>` *EΪ^pjZ1PY{Ь$x{>0p`ʣbҊ@Ǹ._T|A0_ފ&uDHx.bEAlŨB1Xn[_|m%]' jpQ>(G0y+8 k E唱/Su=X\BDS.Z!%GL%SW/ǯ,X@'>&롮-m$+ٛ_Y-H"N/1 ^dιi^=4n2gaQ*g$Q|}V>25ɓ^%?N/K7ڃ$.,>0'>`ٺ򲩖f Xݧr`W6,`N{X_k :A~νjF"뾪.%d_; ^jA[֑{q׋K,-[ʘPz^*հG7bgՉT"G_ G.+<г+o`  @wCޘ}E3P|NzcXeS ƹ}t {9ӘO-=5@a-uF>Beb ƙCida|2ά9quj]%&"`#.+l%);-+ŬYʂ:+ z3W %)W)Z 5: TW9ìk`(/B99k5P `(Z<X`(Ϯ+>5` Tʫ8k@h 5` @ 0J"X=Z =zp@oCyoy.7k5P`(֚|X 0yX@&(dyg_ܲXW 彷@uj 3?2m Cyu15`(Ef Z U]}yk5C9[k5. doWWrnYޭ]\zk4n`+zV_%sYާW\bk5 ʇ/S;9]ǎk5` T+N8Gk I)3AXCy5`  !)@} U @&(uʛ @ xbFk Ù}5{?4Y̵{iK.`a &-s/ԯ'm z&ʧit+?<\ q-|#mʻXzwzZ BydͬCy7qB/hmhy`Fenr z>ܶdzw::n- 2ϋ!5Q#>t0gQ&*'AFKf-zdZ6i'adڴiG{)uq7CSB6c97eJ_+A(Oe3&7fÍX܋u#i;N [!pd0?xLZV-AHS垑gD(w㶔")eШUFwC=aǰ d3̢6+۰/<~ F"ZoL>'j+D7mMm+t3_?wfchY\>ϔ>I=o,h=D$ERϗ*P[H-m_:/sbI t/<|_a/'gr z :te9%Q/ ,/@y0LJNʣ@.sis_ PaWr2:A"AerS'"^dd'( vc<3mZےl˃ `^~('/=G\r )&8PB T rt ܂rC0C6}yu ه&oD(oƾa Y+`.۫l&K$!@}D"sJ1PNvۇfuĀ9Cy$sMN9٤\@yG\By,@y3. + |vfabyzVY?{1Y_~FZ |y#rҖ[J@|VB LrzQw^Xp}`N2[Ecsz`is'xU-םO`.Q =[.\{̵\Y!G=ݔ[~lo9-N+u=Y=+ [nA؍P>()/ ɓsEoZxa3#G̃m뾏$؟oyY^ҼDPC EB95ṡj*, _٤Fi-Or[etn4z y U΂?Au |'? yE`sI d-&GnxuU(o!:ׅN^Q~S@Ch1+iPvs҆r fy>/ x,"r_xWXUNԃЋC[^9^=۶d tSG(lBTP_}_3oQ6ng`s6Tُxe--D$Q`Z BdVa|dnȞUfC{i线wʶj؏}IW__q:{$bٹ߇9uΣSGGf$xCK΍>8 Y!90jϾ5_;O_;aa B~=}_uO)FIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/figures/task-toolbar.png0000644000000000000000000001131614023111777021143 0ustar00rootrootPNG  IHDR*#bKGD pHYsttfxtIME8AF[IDATx{tTս?yO2 IyCxH<WV{QVmizm/o-om brk[X"* "VP^!@I2d眽 DHk|:Y3sΜ{>Q^I/zqARbfΜ(`K9u/zY">t\BV\\\̛oIUUUU ;;3fʛK8pɓ'w)..fь?*P__K/Yf^KPM61vXrrrx<=VDyzI18q~рftᰤ$7Ҷazdddz{5M###[%^9Br3b)x״ۍ蹑"eܝxˇy^I^'́P$41 4mPuÚb`Zl+==ד]uZ=Mf ZoɞTqa|4mSlZX,԰H)+Yˉ+dl޶;\Cjjg-w۾1jeh4uPDUU\H6VӴK/_fc`c!VVqvly]:̲叒Iꫮ⪩SЬV*|ڽ?Y7WoU]"Yh%>B422R"L *BSQE7VUq?ۄ^M(r*'ҖmXp>S C0y7>??{pi )w.fozOBLFJ*PUEUP1ښݶmI( ,6ohq #T], >D%o_%~.7w.Gv&ny_|XW{|Lc`4TMMȁZ_a8a$ ;i?81/_jq_k_f-daB2,ְ˖?|[z:RUph (#p)]̟ٷeg:LǢhU[=O0FT$jk-Zվy&S+W(g:% vKYzvM%aG!4!LEaܹ<4s+?M:zmUn>K5 0b 'D#zb#"Zk\,)};ݠw}Os9ss䜄Uvfkh(_k60:Jghd.`{j  t,nF^1?W}: ]Ka%+Ka/) o+1!D@WURTLz{l) No\ !0MA4Ɉ4#lFN_Xtox}~rREj֢]eO p8HMˠd s>3=dC`9kܑqCC:Ӫ3ł[| :f"Sz8zI2 ,VKj{icM4b" o2wVcR(ՃkFE3*0*){7 DAUec73Wn(U9ԋHL3FC8@ PCeQB(BI4 & )% 5dff&ݢFUD bΐ%Mm h90}xm,vQcmOۚ#%{(b6 hwr+FAzb^`o%F5{gz7(7ʛ6EMa~.!,ЏjA!6,Q,X.,t |diha$PU“T4Bs PN\U0̈́m„9B]0Q4UݳVJMa(<_ʀϵXf=/ԾfUռ92ocmhד +Rv% \I d 3g -tVu=ڴ:;=ZpY=Ģ 0N3ޥz'v`NiZn):sP7A0#5 D8GYDWP8,Uچ(o}pLTnn kkײ#wvȸ~"1;nV6Iq([WMdŪ=|<$ Ԉ* BHQ1k a}J8{'}^}e%WdI*;Injy|31DA1lg|ZKJ1T|aiRQ+s#/|톱>g28u O*Uy6aS'h$ ͍3:Sl[H _m f$gJ٩mvS/֊H58e[ʒV)n%PЬ-w ٦}?UjA4TUCJUs_\mmi˞SO_N$XM]JA갛Ipydu|xpb;tΌ}#Fn)NM<dC`{s5k=׶:hJҪ*,Yǯ|vh ADXTUoc+1ޗ[f K*qG^M8Į[u \6OD<. ژLS_НT>m[!t3GO `M=y!z0f]br'{ODd;12˃Y#Bl`=g=a^t/}HE3-JD%,_K!ݙF/Z#ʪ&чh9YR>"݆Td>΢GڴS%E+)E9N$%D#D_G#QbF 7k7Պ>gtAnŹI ԫ(=v//?//xpZRQRr㔗S4/{Kp z6]%gcL" Y110LJ?35CJ2|ڪ` .h$J$M4?k$l$4L,V _9<~(|ksc!톄}P/qO$>㥥y=K\ٸFSHt(J7Mr:Uۿ#Z}YO~q\E3KOsO/=OLl Nkj4]B5kRJ֬YCuuu]LOK={6gm^t+zB/.:(6l}k/..^PIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source/figures/thg_logo_92x50.png0000644000000000000000000002003311534217015021202 0ustar00rootrootPNG  IHDR\2rsRGBbKGD pHYsHH1XItIME EMIDATxy]U;[cRCR** 0 A@6BVADFD峻D!@#2 CBU[w8gܪh8^uSy> ne-,~;L%&L4Wzן.3G4KN6'd~`?۟fVJp؉f|N]Cw<?| _Mo:X`20LZ4_vQֶ CK-0e2wdY it巀 +g?VE!fŴ:כX,fl h}=;nUY11߻{ܻ l*l* 7}3fUN5u Ǝ̷,G p@}Ӂǎ<8Ù1c'M۶18{tk֬rIկ_~2< W冼{vYx3iLeеm;\vXKYXGxs OFI}_.>3f̘ .K2sLCP!㢵Fk K06Nַ͖-[b˖{mvBoo6=~7.X,Sl5_HK]C=;w(ꢮq STlYg}XF)E $$~ DJ a1ڀ!XxQkkks= AP*|<"B!Zk˶b$ 4L\.K. ;oѫZ?ђ$cRs8 0eZw䘎iq2Mnʑ&ΘUok.,_7!JЁ+EBTьf{ضM<'Jfښj}ur)ɋ?䐜f9Oye1{~C,ۦKo.\X<7سNgʜ9<zkMMMgu]{xPHXT*Qv\\׍@V* QuG\k3%,l&LɤbT}G1gΡ<_sK_ 8(>q%cthl%?p<\P?o<_Sɽt ;wۚ_x3~$R((8W]{PC6h$:DJeYx}`[Dl6Qu41t*:իz5(2=]3}}+c] 7O_Lc7d](ȎΆ'5~o-+̻UN:|D"  W=:WQ,!g>^z T(IH}h'r@J<<@=l~ɥbqB!R!(+xp;D~C?N8g\p@S J8C):P_^yj9&E,aB WO.c ;{7,Xp#RX,c-L&MmmE ,-b19"+vuw󵫯w]R^q%;6mIJJiF9(J@׋Sv!,#*}9r@KXn l3]z饱 AJJ؞K *5ŲK(%Y `Ym² "E^zE8ma1!n}0 Ս BmC:T[8K0J<~=xsGM} ۧqL9 (a~vvX("}Iy`  m@6ц|O]b؇R~ <1vɸq:J q=RI>%䈞U H+K()U_C}m5E٦qVz-xI$̞w8R tuuHeD 4$6LgYNysqJ%r7_< 0AEo? €@ؼs3C!|G $,KXAH*T gСoW={+?SJ<5V-y5K]Y?vk%J.N١T.ء GDh+,HP[T:hlEmm]vNp(uNgB ZK X:FU6E.SNw=|a/Q[W(B"$2((ٻB0ⱡ bs „Hee;A9Xn;1מr3>az6o>7ccVW))S4s9H)q]rى@*E+4]/R')*KE )n*GщֆPE ;/l! IPK{vzz1>kWd)%"E4QZC!(J!`6 ZF!0{}!w-+ z}SOvʕ5ưNvzMV_ԯ?>p/ÊAX08GɀD"y*X,"O"pD*TںxRlZ$j84J{pL)ҘпKŰb qoo#F P>ͥ/ z*=2OUob֙c8#еH$T~qRDtitcp=F)m"^mQFH$I8~Rtώxկ*0)ش<$?nƶ1k!HIj\憃HŨ!pր,PJc`4{vƲJ`ee˴m62zJayQCؽf[)\7)۷0Kt0sǑRbg2\xeW_ӹd*lx2F(#13D~S/K2!w{s|Fj(Tw[uV&Dz'Oa>c6Tt.e<ЃZ',>EO&Ԇḕ~>; 1_eYXEkUP[n1UX$[2~AsxΝ8{>,<m×R>)ɛ eHi&b߱qcRX=۶#WIdT }. JCʅN*R1<|y-G;."1c na[n i?4-:ZCXn$UÙ|aY| x{:vmLiji7V Z/> w:T&LUFQ.Eӳg'b ˈv^fYc1ijTlmdΎ4mQhBCǰYdveaG \nR%k|ƊC,e &ԆlhMʋ/]x^=ږNg*^ث8xځJb*E S(~n ڡE, 1!Z+B]!as3WjV|6?rG.fQ'>q t <7);y]{]dͮ!5M<_p7g&t ~2=L[MN>BX"E*ĄH8ʦwW?n/>3H]9<r^ 5\X^|/<81ƶOOMtNfzueUT2c:0ưckּRٚng2+߱%iaoG"388mصosNe߮-x83orqfoy.J/o]cNbΑ'rctjx@92!($n_?oՕcm1TO'z10Dzc~L;W3|LX9GXqs'*E-R " {fqhvx9$߼XN\>yr ڟd JD_儁?lqFj3 6FɊȣ/c>Nܶ,`CwG+n,6$ʍZED ;s3:4Zl}Y^|ҹZ€2\Uř9LFYeɤV߼7Tn[UIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source/figures/thg_logo_pdf.png0000644000000000000000000021707111534217015021176 0ustar00rootrootPNG  IHDRpisRGBbKGD pHYs##/5tIME:, IDATxio$Iv-xlq7=[Vf00/̼I]];X}7`AfVkn`$ǯ{@}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G} 裏Xxf^[;B(T5Vlf;x0f_r׹֑RWRrVRvV~_>7GӍBUU2:W@2uxȦeӤ o{~=G}tZ L!cBiJ)>c̥2B!BkMRL)(%=%UJ# RJG2BJG PZkR:J 3Tiu{#PG}q5!;RxخF "K}%. (,|\b4b<_`\`0 ce JI8 ?ATe G B)4dWTe(M R!Dqp~"_eBkS;J}ǯ&XK0 Fz_c4! DsJǬ:   "nT $8FO0ΰGGp#|Zwi2' ~裏_~0H -U}0%@I8E0MbA.^| ZR @@)c$ 1!hZ)=ddS*+E48 )%qx8 sWJM몢EJJF' ?q=|+wOۇˆ2zCy Z+%ec NgfN;hd/B];PJ<ːmsB[P%,GYq=q@(%Mm^6XUa݊zUU V=_m-rݥ:Kv}6tR̠1WJ]qPJ4sLkR1F9WW/wm  sZkxd4J+pׁld ~(52: uB)G'Ȳ d=xC)2@9?miWcWmW9}C( | `9cud|R 0^,|+ Qd%RBk 4pلxSJJ+ˉSy=9د7=bZa ʅ9٦u@)vǏpp@H7(CPNjy}ño6l9gΞ36wYLžx=pqPkC)5A| WWf5(Vh0RP4 @P(SupQ%56<<@x겴`m""pA4|(I |* }4=u%|rov8N9xkBqHلZ+Rk-;Yw jBŜS2=8!%\i_B^QF_{0 C_x)(l$ʪe λO)\@+YU&3W ZZ RauQʢnZ/L\`0I]~ D1(B@(f(66,JNLQ;Z}ȼLkMx. J}ם>[#~>1J:  $"H)qBI ZqGqd8D2cp+<|e#Pd13 9W J$(IL`v $ßyxe 1qfWWzA! PeeeRkÕxT|wϹ"&!R5'ȪVJ@"zj]mhc_u/Na|Ls~e$MrN%꺆8Ȳ y^w]xA 1i 9[)d=>UCk;' !ea8xl Œ q`T*A6 d]Pd8wAI4`x%B z;_*R\Z;`.̚sN8XI('%D4ZJyxbY܂xa9`o: aۓNk]g;ϜBiGq:Lx,/hq p}a/.aJAj|wvJ~ N D $!)w;7Q}(@(`< ~ |A'~oZ[ED6dh߃}_DWl$!dD)PJRJSBHBIĄ@D >ͮm;Y-xsϷP7 8Z89|֪ pui7ZRjeף]6ֺh)韯>{ 1uDx:v)MF-f9/|GAx~t]Q JJTUn=>|nKCsY/0L=a NS=~~Aۡ.p6!$ &e놄Ծ#$=6C ?[$Z"!D~$ !BqBy`) mc so>c*RYDJK)mƓRu]Gu]eY<E-b+l3m'[w2Z:vɆ /p`t<{7/opuse;{R `y! ݖ0KuU2p6hq1@$\,QBCQsU' uY"gm>>h @SUd8;!o,P-͆gHkR!q$$yBpu.p]T]z9ޥSZ ?FUը UeVY(˒E!`EQ8y>nz. !-j8LJi);{}?^/Yf7WxI ODQro_"M(^^o@)0,W (AeҍDYXp]/xE]!c4Mdtb2S ABxmz=(cAch:=G]UTxg{$GbvшqԕIS !O(ihD!IӔ$IB$q(H$}~}xwqn͸[>rȥD#-`#sdY,~nvvfZ=>>jι*J" 2n,rƘ!]@hpHp쀌,8O(3؜1(!4ᜓ6a"MS C i4M$ 8FEa" Bapq_)G8Ze(H v;mnlDZYQa`aۣ(rTFYpNRRʗR )j7:`1}CX_x0l1l1|1d>B!607 uӀP ft;4L2P(eȲR v|G 6pǁ뙢$wMqSfQȲy܅#m#\wHr⬥UtWlBQ 祮릮Ʈ!|߇qu\-` đB-5s8\<A8f,~nvk@}g?g"GYVAUE{v;1I`~[X :|9../%./1! mfoÄ28B;Gȴ Hԕ2QDʧ;P%ʢ@]UPR2 *^<~hSǩkTei^jhFcRJ997|M?ȤͶ-52 9ax'<QTijTuPʼy R 0tނ]WjbRjeE4] yK|+&[p#겎잝d-8N/./߽%W7WB2HTuQM }I6sE:(qU,Pao;C=>jm(@HFBk2'QB!Kco5Oĵu$q!NdXlFffz<p$IE!|?k'w -8wH("S)p3\t9y#0Ѿo}ZJiu(ev5/ާO\BHlhl6-os SlE{PB(JnB{f(b7pus|0 ͠DQiiB2J ik%[F5"e ?46fĜ 3PʞvkeJ}K̀B 1cg࿼`g[M)f]B)W|8R#ib<`cX`6I0 ! g{JՉ F!A>4+1rE)4(cCPjB,1Xnv4˲h~klԳf-_}?v=?c R)5aEAq#I$I J"}3l T.uhzj؂!{hρ/L?;kz>z<}]5`2rm]5/G˙]KF-'( h2D<fY6 F+`?뺁ќqt:`0 }UZO8 Zu96觏Lhyqς8ioҡS͊r{en-RH{\gPJ1Bae٠ld\7RRЍZy`mɗR]R}3ui1,\rq\q<8Ʊi!Iar<2x.-9*n~ Zu[Ǐu?^y;S-0OchvgQ*k8SHxp]DQѸRir{V+^f~'}穀2'ˑ[n|-6'CsBBxb `<lpA:6',f 0{5=kpS\>a0µrA8w]G(e>OYئ!ٯRb-n}Qy]R)YW=BJZ sOm2t]1E\.d2AK#ZnB嵩Ѿ*)Hy4:vIuีO$S?8zB9oe絠h?[>Rj}Zqnؾ)PaxV+(Ij4ų Пp,< 8)ht~B*[޻-^˜q89@)ӎc8i!I[ IDAT45ty/RkkucG(YK 214v\QhHcc hH%ds]B٘lp4S~"#p{pxiP爒` @ m+~UMc <uUphhx Cv F}Tunm8*X{fyK؋(^EQ4(M$ v{2bk\^^¨KV]@C4RZy0kӧ>ϹqGy8w|Q z.F]&<sρ\B) eƌߣꙆ1K88`zqWEh}0p6E$6*yfz|Tv:e4A:c~sl0MM"˰[yxT~W4uVRh =30+JK{}U$|>Ձ~%^xk M)9tKJ F}PX.\ʯdR)+4IaHM>>r`xG/5"']wgm¦9gVv19y=!lw;V+e9v;kGʆuMq4aT+נxB#!$Z O=x[xB3 @$IR NM @H2/Ula8jaU*{~ .>緇(M!<RȦAo6خv;ji ? uQ JSp=禀|lHi{ 6BumSK7$Ih0-___a1 y~Ή4JA[*UW*N2qJ#ϳ*s~K< ৸Z'w - _[ w2q7кi85m@(>~ğ'//a#eIJӍ{hn/ve0r_A|n ׍Dq?Ắio=;˜(;M<9FN3sd-(V ٣A>Ln}t 0:=Y`@ESȶ;lq#?nFUJIَmG ?X 0c$l6h4B}s@0HSXt\uAw͟7ā,hi'?u20!wpK(cpsэP V}[[MϤ#at2B:#SpES5( ܾ{/$nT]U;nh?oa*M^xEy8 |!EQ.+\__x|of;ª4v< C6L;I9Od'||g7sJyNvX9׎pm6pQ6 p\{1Hu;d;We1_ GRrkbGe!dN'1MI>,N]Y Qt"ߖU>>?)kh xhcN_> ;ZkTE"˰y|[|;<~5f C܌}+ E_m{|_x{[n,(/_-uv!,e0 !BY#_xj42S;Ƒ:̻9L'TOkW xw?~f()Z!j/Z+?ϲtoSD>cE)(GaCYcͺk&>ԮFJ J8& (FX.?_e;nS7aST45e' P$iBC4(v7sD!v=vP 0 0Z evH:.9(50v~_޽×/8z#Ρ.+5=>G~j]*/Rg{{;t:%帿dM=K4 өK?qyy$I 8pǂ9wcs -^vU(%_ə:)O$'㤁 i>Q O9:OU+]?F)X35 oP7ބEU7neT IRIld9nu]'WUU;_M#M !Cu D&4Mֱme mUH%!dx*+0ΰnj& fח( uYaKhzp?45υp}a&5l*/V>bvWUcl?aؿS\ ޭD!A 4& >v/ >֐FJ ݜpMGȯOO1@ 46. |3[g6ꑏEB 7p.K elA](vVxl)ZŞ|BZ*o f7}`6WWWx-.//1 Vƪ=9R$Goϝd9ݼ P8Oj_m9uu>?>\͆xP(3R+MA(B@:dR778?[Q3 h2W$?(޽{G뺔R ^BgV/<0yt0 J6a)$W8pA=o2lȷ9~R ^?7!ļvӠjTEv>| Rp"tInɴY*A bTjr;2&K}{psKKBȍyq{|>x7P V g'iq{ }' 5 hx2F&8> x $t:R:YE^ۿ!'/,L'TEzVwx=ww~* خ6MGhT .܈Ciŵ>4R 9!27\){O4MzN`|I$x<% ?%0PJgXCKau|P ?x$l27nX+gm~>3r pT(k5jf!k+JeC/#T9a*M^x`0H&\./)0QU ğ6' ؙ)XV5ʲBQ ohCж*Op}Jn3 ylgoAUi-_F+3)g@f?x NNM@RRPf\Jf9mp%cyB{E!WZ=/{VUt' -!+i@uV;< 02&L# a$|~#Dq0 {PD5иS0nL(1Wā0D4!DQg] )-EAX- }#|nBoH y0 Ca+srei-oM?x 0%U(k9BֲRWZ @s\sK SJo|ߟd\1ŋx ,P5tppG?Rg3U$eg_*em(+445' MB}l)h+;BcMu:XCΚ~jǿ J ;YW:LefUګuLqq􁾱~P`̘aM3~Zk$iJݻnTUU[྅ъG][,t÷W᫤~0&b 3adTL-eIN~Cem&ϫ,>}+}7tMcu &81CPhe*!16Rlv~F p0 {s$>(!`B֍MTl2D)\޶s%UTr YKO5my͡ߌŮu9E {c/=ϻL$N˗/?quuuxw']MwWإG΁9}696t,54M# W !p)53Oɹg7u:s{hvUVY,+kv p;Ȉ6J?VY/pΉ/|Ռc&  dRR]7t6}aƍko߾E$=VUuެn)pe虽nߜX@g8ٛ-LmdiƷ7It8" Q!>I:rXeT)40O"N b^$ yFX=|n2|0VHYACz~O=xpMe-!B:T48R P@+Z%.)l R82z_=;Ly,t2咾~OOX.֨T x]s*y*rjWcfOi^XcsXI)Rs!䥐b#$d%%9W82&A \-\:\<^xzQZ]\csl1N1Ss$tY!LЖ; cPkD W^i$* |<+1?cq@6 _]__Ϻ;TJ,r^/__o޼56av90v2&]D>؃H  ˰lQ88 N5ϙ62P ]ҟ [w_%I p:KF<>w%Dw9P!ˣ)Z pk$is EmlK8D^VjɗM2[.`bXӢ:Kyჲf֘ fv˃¥ki}; }7J|V^\7߽W/8` Ύu8:9r?DetΧE:K/rā)(F :HI i'iˏ0bnE}~L\253B-ܻ}q /ng84M_y~^gWWW͛7կ~gby%]ܨs6;'@eΫU`WQ0g|LPD]'2T(AO8P|8tfc>fFx“p= ~>G1 o$V} iB'^ v>n^)0Jr&X_\[y8D^ZJ,m~_MpZoB囅woWn |2oB(r%^~W/PRavtɔ^&54 H'D-jR"-S+ OqV: {)|=7v&Ӊ =D6$Gs&.e_t'?c&ޥivX\UktEsnmml\t\Low.NFH94diu_0hds"^'WD䂁}Gòq~B M_p'g@>|@` (AV}[5k.,ִ΅P/JJRI6l-.ooqvqb>N4M]!+ ԕv+gRڴmi#50?bYoxNHRiu1縸96֜)#ةsl~bа#R5Ģa q&gH@W*M(DTi%&V̼pInU O vįM^Mj٬޾}}w۷+\_{-.hS&iO%IYXD/|=\ʈj/%U'xaQy3Q2=q,]G(AjԀGe] 7'&KNbXB0XA0Qxk,RcBa0<)p8?#>|G9D`y~7[lpvyܗ%4 L h ~k $QOauAa?z[]m sz.u8rr}^m.65^} ̖^yoq] k'2=y?&w`&K1 '&mܟ$(B BJؤ̼JH-: "r?~ƴg3̳ /_/WP)t"Ͳ9hM]4t\7` =YO[M3Rj^^}=}yWo^YAH1ON6[OLe|n8n$X1X2XO{V) >o"| '1'(R*y%2w.It\.kt&o߾jBOtS?qT'剏hgDLݢGI8p0DdFnb jnaL"Yz.&ǪRQ8ό~FZ F N~@&J!| qV2Ɣs0Ơ:p#=3ggx-^Wcu~B)!d)MUv~]Bb_w T;0~ke9+Wgg7/KxXmVHă7Nt)'OToJP餲8w@(xr]0Iٵ.ąB )j3?ֵx'|$,W/^˗/6NBu(SB'z,ccsNOsG䘓(&8>ŵclb=  םۑ)S>r鏕h2>'aR۩G{ә7ܫ}hAp'$MܚQ1:o)('| _A={sufj)5^"GkZ}njk8kWp _LzV??B)@ὒT57y__kܼ[\j,8X4Nmƚ6CLޑ)DPq}8ͻ1BJ!J@h! 'ޖ˥zzzj:rjy{{y߿ :xg3Kz(dnOFJ^Qqdg̑K?VW nDǟ8KJK1:3#Y`#C7 u>#:5sЈ ETd,dGg--bޱwHxSwqNv089/_>ӧO PUsܼ~\b\BA[b8lw==bOxwwxE<~p w`m^%J `N 7IJeY<-fj)..|WXgy?a GwU NG Osql@H҈ I`{czq4B)H! oow9 )z_Wx޿+Y>ׯ0.Kl;`yv(9:|{_uw=Oooj%_I.\9Ju^z9*ono..qus+VJϿAU/-KPKךvtN1P?Zh`$ vt#$dt8W?DFI0W8~2TF6i7B ɿˉhueggg۷777l6KN$q`IF$uP3$ЅV\]03xf)'-FZx)#`1Kd0Yk4Uu@6h5 Tw+j.R?& RHYD3 y]JqT~1Rt 9TM >v c-dX,˗\_#ss_d~~[|ObG[h?!7Xo.why!Y0\lW/z/_WX}|.dJc6n/.#}7hOe jH%2s4|yA:Jv$2p}ab^9nnn4|vv(|a\@%C4HYdqiB xDѰ1iQUwA`=jX)"B۶P qvѺtYߙ`ف1-BUPڦAf|PJp)E*hmLY/!~#]sDnI@HE/Qd-=|Og<<>:͐g~y^c^cX@kզϿ@a5u=p>~O|`iDHK)L)UY*"l>z%n_s.«*ee<}9+i w;Ls'8:Jh.qgJbG7 n4gɟq䎀;11# 7ff~&q!x'h.c6_x/me"-nnnpyyf|ӂ)NE0B+? 4\*JOߨ$ @ph÷VE<-e(mk7ΠđhXz9N; ڦI[i>qֆ]AhA+I`- aBEGkiG BOc{h=!edB~PJBJǙ?}|2M8lم $9M?rݯ8l}ѯ3> ѝTjShDgIHT'I "l6|1r|7rD^~da}yq4AcMѴM?RttI8o!$8+V>*҅Q?aj?.]ɔCy11 }7Xa[qmmk:u00d3pLBz _&kf3i:Ǐxw&~zrDhFq (qŶ OJvjxwK@/4U]{po@&")cPt<ġ(@ n~CS0a I )щ):D4I*A0uHArejEBxpf$web<|hq^IOw;|q(|bsίPJgvUmAi}|_maZF$}I$MJ4͋\E.D9+1{^,//X,ײ XȬ38פMzޚv< SO=̽ZpG6Av_xXzxB}8-/7Z Xֶ1[SM? '=4[4o;|~q}}xu_vuu|1Z\'n׃S}La8M9) = $FɃ#& TfJ #q==p94-OMκ#T#pP@`09Xۢ&>|H'@'), .#SpZ$gW!rIkHEñ;>L[YFVL1ťx >~}u g9.n_ gLi8$@~/w_`{S7R +rh2G$t4Me̋LgXW\-EŬ@ygplyd)$TI6ۺ$F8Ƶo:x7?I-7;(am)dqo]ç&pLJHb>|(i39~5ka߆D\P?3\K4x-.4Y,K}/^fAQG?힗 DCӟ>F;oz̋ˉq~o!' 0{ ,~vnƴ3wisʹ-Ox_9 c6+ D!C9+)54i"3Q~th[eǤ !f3"-|hClj7_#i ބ%u$rxqVr--{z1ӠL!Λ)zr3c@)NeP׸3JBjx*>C ֵs]mRCl7uƋׄK9 Mp؇$EQȋi!IS$I[NGJIMt֘~1EdRHfi%h⤢㾃 D$R>:V歪,mQוwB@=XXe\ҵW=p OOfe8C^d-fX,-f^)h"PTJȋ/ {,U&k5GViMOU]j;ڤN?YB0%\ѐ/y8v1vuW!p6h2:'ߑߐ{vQo-3_>}}ݿREN~.\gfy/^l,.?Yo'&orZqYdT\08#S*](k8ICDi؄$"7PLN<[枠Gp8` ^@ Ieb|$͂Yһ!%4Ai5PA\rOđV&r2V'Z1=KWv[c Dl1|@9# 1=@ԇxG[0Xlzzr<}Z}i$Mf),L$i.hS&1mҹ+C}> wێN&j<=%ܐ1݁wԌK"x"%noXO֟.jjg*κ}&GV !.-|<ߤ >‡ w֏ AFMeY總ūWBw f.0&-CLM=# ֋o8F!LNr=AV'f$HR;f.D!_eX >pCa3.z%nC]4MQeX$%&7 PݢR'A2'@g(H ხxy3 큞Og/-c/`M}n;{439yY"+rH`*5iPޤ nqy}륟, +60LkAbarTF< c^SQ٩ЪX_s׌qTׅQEmb_E)=z~(pkiͮ=w7lk?Z SHJɴ;I@3!B,s f9*"'=SuK7ZoO0uk/bJALr􄇇;<<{:Edel6C٥ %m/ mԇ PmjH0Vg8;?XR`^·FI.w6ht"铎nڦ7M:G%@t"_D(1>98d Άct:Z`zM7#:v#aj#LmiLe*3y04wdD3cX-$*\K-u+Z'-JΤ,8kk[TfYm {S\v~[|(E !-Օ~MXZ=FUn:&?prL#QO$E( H>9CIR*("'祔z% N[= D$Y|kA,4 E Lg޷?'qɄYn%.8m|OO*јV(K̗Kdy(=!xeU-mPD(g(,pRQ+@CDx5[;ZZv4~ꎵG~U#Qc|d91]zh3;rԒ,8c[km퓩Wθθ?:Yݵ~ _QR&YY(Y TA)bi.Lmֺ2s@|@)һÍ& |(mp\^xb;[z պNj˾g4uӸ!XORPx|SxÑbK E@)%tzkR~efREMso 0"1JUYBȐ2~ [k *,P% MI!AM.Dc'oQx7 ÄӛuP#Uwm_oᘑ9YLBɩpm{zDSU 5i"/2Ŭ@VPWk6~"Tfwޣ)â@><wqҬT qTbgO vbI֐FةPq4WŸEM@FԉMy{?@hۧ'|áol0_.i/7Bm]bHyYl6ιN|ӈN&˸E>ړXu;v. :IzLt—3'Gi:ekOl1`sz0 &;?#;~${v?3R!9?O59BH!bDVh:ڶ*a@8( mm`Zg 䘘)8̸g/x+rd%{0Ncކ) xoy<˲|...+z*vAF2:#$$kP~g8iYٸPby*(XtIJ[D%  VԛS8S($%&yOp807$)p,ếgp?$rP-txg{$c@ JzSHq-~nE6y4ϱX\/vBi/lv zN^d(0y?2Ѕ8hLļ6&I1L4|H2A;A+2Y!.^hNs?;ض]qsdɐ%%jv| G["z"GO={r!G?`ĝ'{fKf-i J ,/S.sl.P ʢ-LKY֒+LcmcMe.Mc5S|*Ҕǜysğy+ 0˲L- \\\8;;CY} S\C69ss :[;O|~1X eA%j֑cc)'$1f P ?!( 4 pc*I]멁aioB<;cwoɇep2^G]W88h@VVXPgH$,D""fn.S1%G|}]SGb K*`"4{Sʡ9XF5{WV6?5S}.1k)IhqO>>_"˲d6aZ׸|>-g;iiJj8/yѤ.K}oqtY ꏪj#Ɂ (rIWD#7&e4y~rT"C^7R8p+>p x8!  8O8?DB$pl6ߓfb̎ 3Ll­%G 5{)yU_qUmusj-$˫HK`qQ9Ѐ +`jBvնCWyJ C [&nq_S(؁}w%/\i\/Kkl6l6 8AFݘ''u4( !ܛ~ᨾ1qTbQP\?ʣˋPN6Ġ:QR* c}eUW޸BP>0 9 :IQ(M~v> M5rB RYB J+fD:Sn 郗κzOzjߢ5 :EVhBHHص@{P")dsBBL( T@gITES[ց ~dƚW̼ ͘xs~䊱<֙?ǕuEEQur~~3V+f3Ȯk:HNatHhX|;8H ֊l݋MtK69#!.OShi:pا&pxQc9dZuh% v}>޶"56ǰJH-{dq\]ϐ%>5x^S>Xŧ$K ^gM31'LOb$aM 4> r0Wf~ G_៹I[~uaZ=V]"QGU%h@L{*$΃ bXV*{ZOL3\Zq`yeY]\\__rO>9:QqS?8n`4Q sR!c+y/1 ~>YԓQro`HD4d428˓`wmm__Xq?g>q9I)}cbym9 E9;`L㛊ڦiI)@*4Osi@hnv^ F ˈM|\;cMQ ",2d$ 5A B}(XkmDǛ'I.1Ơm[4MW2l=d #)}ƅoia޻[c%I <+]r;<`2)'Q et U`24t}8\A)PLa޻/!xs|8iAuiꃫf3E1uUⲅ@&Hs|SN _R٫Oh"!MGg@|:O_c vw {ǃqp0N r'3Mm:Qnw-Cۘ<~Jgn_%}> "53 OgkŕFyQ R#YDP2/(@BC/ExRc83%a؆`jS94ElvA?feB'od6"It6aJ\__cZ!IrBw;-d*0SKx4jzrjgYsCwKHt?etɨ>'|;G&pPِcUxEQ(FH C`|q/>I ėtѯѷ{Ikض 1KI!A X%.dT_l qe~"ڶPaۡj4EY&(޸#ƒKӶCdlJKe|HR>jN0Orޱ(m/)tqsmȻU*ٷyvl"_C?%lc/1?8~K~ !W(]fޡz"jQ$L+aH6E䄅Bi(k")J?x$A2V2/H-`B3xZӞ?]̉hi%rduLli‡b׋iUQXVl|dPcEǶYG w[hr{ig85i_v8i[A% YC)O"wi[[@1ϑ LC(4I8dp*ݛJ3Oi<6>W42^b)\uHJ#0ظRumlc'r;0~J|iv?V"t`\ kb%H )жA|!Os]YPpZ{ uֲlV[v|gާ<~70V| * \#VBG _L!9 ' 470@N f\{ Ä/$PEXpH A[/S-ʦվ]UVl*ˇ}P(%Rϒ.rlTWt q~ #pJ|E-#xu둻~4M1 "y֟4d iz3HiNjIVTJM|_&p!ѡ0B* "1r3Va ,?%=%ds:m </߃ rmktp*S:NiۢhsE!(>'Ke?m45꺆 ,ϑ,.׺[v[ԇ=Biפ gP IDAT/AA#X91 GTɉGcq${6=MkSֵ!G-,RD*)ZU)r*O!82;fvؒ#kmk[Ә6vow?h[#Oq$({/=^lȪ-ŚP܄XQmᄂu Rh(t.hyS$*֝LQ@PJlcy6/oϙ{cO{}a[>|'ǚ\"Mt? 2*ˮXv'b4jIo"Oxc|+qs޽%+…$h[a)u41:MŬblkT5IA]Zxwq觌@Id>u>7 9=j܉4T2ڪ7{SgY3s.X@`!ȅ)Ѓc{%I$K\bib=Mf }^!mG@dgwYudNU<^#U;ψ qLCDx`G 3[Z{"bsct bf̖8cZlPw058/sisb?>~pބSxC)ha3lacjcLe'q8aQyT#2xc`33A8@a6f+_wYZhP`T4U87LV!GFPojm[VFgr1jDY>B<8Z`τ)mÇ#NA Y,?~fwP78RzsQMܘc?m : K2\Oς4A^b^L<}5FI{T/#iML0ٌ']YTpL%|!Z0zѪTleyKL!;>En  %߉wdSB? 1EH7{TTyvY()D8)6{F6 !3\r* _ k7y%}L;i8D qpb!tosB>1uF ̀cK𦟖 ^/񹉆( ! Ѕ)D! H +;E,#vՈة#ձ^CȌcuN +*&699 (6A 2hA5N@:E#`P hUZY86Ɛ58u޾>Fk36 A[Ѷ|U-cjîK|cG\(_a~N̸+#E&D}-mƹ~l[y1k`. +}}|}rLb0lCg?3R!tA~‹^Ŏ'sc=o)韀V7@ `+#?g @8& O`@*8#@QyFޱ/tC۶+dkѧwCug84xmj/JIV{S0~\lE&1qӥ: t©_FV<ôk8cQ8H:5ڐ NvqUi$Yi"YBĢ$) 2R(daJ/ /07ygļB' M_ A2 k]P0^rN3 39. $AZlJI,?RzQyT+5bpߥ!}c}w)H?97z$t#+/jǿχp@So-z+s{' (JbeN=q8Fԍ]r VNMvW-:pdfQ ӖXjJ^F15-V5VvzUBӶ*bP G(`@4d,!.7&˶g|Gǖ )ǧG0.]˱׭y~ i] -Nӷy20ax^4 i+6EDݜ -6r"d&G9u[ }9TMi:L18M:i3R aW W;ސwa @3,>Sd~^9v0az8_NY ypO?b?P?RosoxymT_Oq' 7u<)NrV+%A<3㷌? ,Zna5¯vhM+_v\rIx_xR#EL C'tY ^nMwZZE0ohmw`Z? Y6)Ⱥ e3u JyLh9b<SjLMgcIa15rjs^( @H̖X*2Rς3zdӴ(}1r8x}.v)?NCwi8_ ^'pSFn3\ EjTfffuןW_/>fa?t%z2L6\oua(CccIC! q@W75V5ʓ7V+ԅ vv @b˰LvI'$$fhr|}/RY _iSf #OpKhHʩqQi/`pŠ"E9$# )mkS$aTc|tusJ= 9O-A^2. 'R`iyxzts[qZ^t[;aM$*K嵨ׅڊu+Xc8#69?嘿I!15@~L!5 KΆ׸#NOO8|w=8N8Ng0euzffx&%jvT°3vB3\W<~IRwEO\(I1߈<9)*S/ĩ~M2SBJHI2GpAg~I2|aS밙A#n `T0Q(V"H# JV E3aCP7R&'Q7' 2B/i>Mח̔yfh{SiAYy嘿!c~?gާ_o-89g} 3xF`-Vi8TᲲMcLmn{O_g51 tM3JU󥊢jnf%)gC }D:}k%{ua~\ײUI |G/g_2/)%} ӽ>Hĭ*ݬxmʅ(Yf 3ao$w `W{`AY{t: gYȳEhiP`- ѮVhkM;.9gewԞ3Vbj>. -s a&QQ.¤c,48y%9).p< !MCc sL1}ż/(!w?2!MVosSʸ7o g _cwW}O_c{vF4:-Q)- m.YKT hXg5޳luq>0t+rst0 8hf*Cl\*XRC,3 "՗o٬ tfؘz2âOf;:"RRy6O# ݠ52uiD$TރB gMsd'ikDCͣoNFd /z֋IuiVKYtCp'R{qmJZRB'Cfܩ<(]^,#56Iۭw1w)sI6ۼтSw x58ơWn1ǿdo(2W@1 ֢/>m9I}Z6甖ó C(+nIkGPʒ#Q7 5^}wFw: #NO=)°إ7 v=vhޏ\Fmk/'e1_B|1gTςKٟi7*!2r̉ro)қw9oSLQ([&~(ӓҮ L47H9=Mr *l{lv;mfH2)DLvtϷm)@@7j=(9NOOxxw0~%(XcBm.X8=O0#. lօƒf$]DN~j$&cbF !5hq#fUaO&یdƲgSUNf+Sx4(SwJq? DBh3;Oq@?*?ʙX !R1?Po(џw`32ݹ9 0/_SJhV&3P–ˋ^y:M(9/0`ɋ/8q1xX9v<ea=d\|2µ qy~('Y~ܘj6 =?Ne_,; {*,MSvB弜J5GÌJLٌS*LY.,1s-eXEh7+E jFR~QU6ԵX&UD6zcG ]~V]{4!{ %<\^fZc ,te,B3r`JFM9Xy HS85Bd,%~Jkз-jl.>02(Ӿ&!ni`Sȳ^"Dd)Mm:J(ѐSr8. wsSHoroRH?hw*/~'ފf|mߝnlYOeGUWU}9؃g8JffxV`nҚ@L|z788==Ç8==?p>q:q8Yp{wc ꦑckazNK:5z̳ͥ"^rr2_/rI;NA4YrDTb[ K4Lwu[l9( )j7S`tQވK𰘑Y𤜿UcѴ+(, <0 :1wZ=e@׌^tRj"` i|LA71JJĔhLG|Oޕǜ[@D&.#!E3~pf6sk\Yʶ~.̶] S3i]GREҜ(K9eJ bfU]nlv;ƻNOx|U]!|>凌|0MۊGKR!fc\1Ċ,uf \Iƌp}F\sFǟ[Hë0 *P!hF{SjFLᔧ- XH@ x1.(yV &5Q"|UAāz2}aP7UۙEf8/HPyvͻDDW@{H[2qdD9'3L3ܙ-dL|6W [ӹ]o-3ba"a)W}NkO8ܮצ]I`uyd7ᓥ]Z{O/%baw0Zh56kFF8 *9ဪÄ1 ?ZO/eE !L-x29l`JQcfBS.Tf#iP1TMrG`_npPg25qhqʙZEE^5 [=QmnTݔ%fIu0 8j8dZinV2ZQKXV3S ),)Ӑr i1s#%zOP)JmN[F)?wLIr~K9s8&\aɈYrPXB/wpΏ/ ;o仔c@`#HX_UhQ6kЮ8>=;ПA^۷o=6p`^y]yƜ1,-y 5ͤ.Vr!.’F  L^VYS,NT8ÛEG岰B΂b&,Q&{k1N%ő)`ALZ@a"jv7hV-? lf AH5[qRE^Xm~Tea61)S"#(Ӂu)1!Hc{H_D|= bD!:;+)`lA$4լVh -PXȢ^ I\;)'54;ZݫOp:p,Qowh7xxx#2e8-Y^)k8ҕ&?/oDW&W$WC*IX;=f϶wWfk`4B`i1X4\籵`5R1J-Le[JBJܘzv/rw0_q! ƈlXow}ۇlooд,3E(;aqn.$Ddty&,jMjdJd&&.^o|(Ӂ2s'tL'&>1;&g">%o -pL#w 7 &Qb\E]y?-_|YZ ڬlXu9.'8τ嗞sˆYl9:no?[4 'yoNQ9aTaPuaj2Xfъ DGt|@kEb\1xz󒺚LGo6#eS:CrLL0x9cUsSFws/szWՉJwe9?"+ `uXﶸ,Q-I9 \T(U܉3#<^dӎiSe'-dL3? ~B22#'0 >YoXDcMr)嘉p{0Ƿߗ|pp;)gQZd%Cr͢Rjլ` !TAR pB@ӈ4яX1 A dYYOY * Dƌ(y1" Ab|BmBB@qX)jL=gJ3sU0:'2TIR1_Qpes/*LE7>9= HՌy)nbw rΎe]N\s& ft^J-e Jy0H()@I8G-RȑM ":Q@z?0{&}CR*68tbs->rʚ2 ֢nƍA9 yrI  4]ᄺigCNkv\0WD UA%a'tMz*o*(Vyv;)@̅AgKXƥ KY kSL0KKN\*zcxU-;M)eInq^W}Grҩaʭ79$ty -n`|*=u(ab@NN'~@ ,9=$?(mr{x Uf_vzͫ7W?h6\%־2 $m1;0a+Gj R4 p9!@CV>'uvR z-oV]Ua`HL=-m)Mm@F]`_B^+tO7~>?Nbr۶EnNWT6I)24c!'"}dwg'g }9:;WUcc{,Mf37ԴԜw,{JVUbX,R!&qV x/SjKtx`"/G`ӮtIf<<˞rQ{;E}z]$`dB;#t'bř gU* w|jzWݷ>`If%!$d-l @I g)Y$)2rPC- V_ 7INt1J7TYnƜubws3{޼὘ u]c`abaa݉Zm53 ;tN#Χ8n4U{bSp] yq,4K>$9,U ڠޠ>qTکb@rNOBwB=X1!&/3(hbo|/YW_j5n>Yܷ 2!CĐ>qkiZKh&F,;8#LGZJD dlg8*)Y|N @NDpzJXo̒PXR4[e$&Dr-ƈfL?UI$ n)8  \yXa]`}›_nTcsN̼ߒx.,:e #Cq7( &5; }5U91{4Dd Ԭw$!l{Y\on;i<"KrtB蔒1r01Aȿ|0 gtD8( gX`aF ``b^߫ o5_T] ⓿zLbu@@FsEI-R ak™3'1 -B0 /$׵*hf<. y.UZ"C-F&ZbyZ`$yDٙ"0/&whš,Fp'fmc+?:]W[miכY$GV%fF;XF.Js}G,0zaUJcd&`\iڍiv~>} ꦑ}߲?f# NC&oUqЏ46Q%PJ369>!Oq(Z`|Ù F'Z*_nNo\evSo{|7ؿjn=\%RWͺNAZ(QA 8lͰ^H'SBCGSgס;n6ĨQ3'1X'VT[ՌXvsq}/ C 躳g- ]0f2)-t$/&]:`5Khjk+ImFmJŤ,V/Yqí0Y+eDi94GFN@ΌwѻG`;Bp^Pja`")Ej8kF=)*S*‹q!zZԵq's>p||Ԥ#>I6Lr({c0yFAӶh]zՊfw[6[6µKc sI"d&94Z#FEv^RY6=Q;)GI]9UfzF傷^awf#0cƥh'RhzF  GO^&pka@9AR!r2}҉$?Cr| tG5h4e Go'_;Wٯuuk׷Ϸ|OV7 CKIa\ sv&o`>f l% N bbGv W3`Eb*QG[c `KO!ـRf"r`  6cjϛcD<20?[,a*"p%NGUײPU}Y镰+*15+X?}-TMӶw Mp{=ŠwըA ג g(z1jڇ.LMSrTF4`cBi$?]Vqswz4sՌ*gV  Q=I_IC@z?90̮y^;uɑ\QOw/~yz fw=-6 |k@YlG@fs&6N 9fT Ñ cð xwZ! |:yZvM%ojZkۚYy#/`+7[ }'J j{,mUmS5r*{1>@;RBdy>Guik$#^e*)6)y98VauSaQ<:tk\"- Ty)۪q]?_wwbCNR ēpbATF$Z …Vk.N)bDՅ<[ @y pNHi@#B? fXguelj΋h✥ &YEqB. Nwh1tT<F< IDAT阽}8$|kF>G901U.V_ml3K~[-YknT]"֛-mPd8VsSUըo0J5 |+b )uMAƉ9g;qdGuPo ڝGV֨(aCt֙;N]/ VM][<|_qʉE\)hƴ|D ljA*N%J \J o, sЗ, YrD&",AbUI1@g}.%ՋI;^5|s{8я*e26`>Ne?g ?홬ֹ:9˨Y3Չ]TA}YfFIc eLI О\W(&I8tb)KqC0K20X(!RUklV7}}L90ѼS-e~PE`g!_o'~a;grwm7=}{װ,,C9`KEwcVMQ 2!Wʿ# vbI?|i5pp6)p`1gUDʁ7hTu&*Si $Eǝ:;;^LKN$3UM ol/m s00zye\ }9+Mg], h4={@)N']'9Ksyq\5ɂ OuXgo EhvEhZش[վpJ000st`FV䄗 |ۯ5n7fo6tmz(Ipc q'MBQo6_L h>e u@<+UͤfD,5?IqX)G<@F N,~!Y UE\ȓrdИ1Evmb792.&ى(_|JUꨜ y>LnR1K9s^?gxNfyt-N'Ĕ:op(HQA9"x侫A{6 jڝP;/#e<;HF/b5ZmO^_lzW: ,ŵVۤev 12!{̈*oW A@6Mm1^^ș 2NH'tz#(zyƉVF&[13:˞Lb4C_u# )Fik1켗B89?=*+MoKl9exg5+fg2@Uf@viW|A\G)Wf@}uw0{^./-4{OtNyo-|ӢZmV.B1Hq WDclE Z[ՆQe16X90Mg^u:gWIHo![m84Fa\`kVn}5v Ɍ2]/SR:A4eo: :krPeL`3LDIy}֧3;c78=f636V/s|"Arh)vt=Z~긘%Xh`'e'|~嫹V=gʋ{9?_xDzvD}z:Hd*3E;ҔEJrԥ0NNh\ 68p; 53)}7zv)҃ >iNt҉ _RpsAcsSc}<)L71]OJwN202SF2r$5czk N&;$Yع"Mƈȡ] wp_7p_@pAn=~Isdl 5FeEƛ|AM QUsUdff]Mȕs=oqAe*AV ~<ĉAA^X9 ;6j{յm;ϧ#7SC29>i^l8oSh7^xLznpTj_,$uq|b 5@#&bz|@Ls'vGM]x_(}?vמѝ੎hc"@X};R坅%LKW@ u3 w^V($3`q-DȘn࿵{4g4V_8oT&:+4:כ :2(. <kyD|WxftΣ?~T P B p)i<3BBX#JMfRj%`O9)"ڐRɊխqd\v%WH/-K^ 9s'3\ﳕxr7ijci=I;idҘ 8LSB[EBvx)#iE"}hR%$v綝R0odLLyqPZ kEkB!d`8Y&}pAVFl42 RX]X]8p#+}J"r#5+RtZi*L\YJx?by"X>~" s)@)K ;NaxG8YvΈrf{%= jcf҄q;Fi]q,{J>Q"BL9EA&&RJ gENrxYǼ=-8Mݩ %^r W3+=Ǡ%@6KbZ<>D7'˯?H].dmr:=aB ELCVp"+}4g)Tl7 FIF0Qe-Cc3 f5*1 ؜4A s"rWlEd68@r֖Cg]ۚ4L ~m u%2'9,A+?s-mƬ |%2Gu~~.ԪoK%!\p*%!HtSҎbSOr =yQ*v*Vޫ.xVlWY0 lt:fU 3 H1{8g;Bw>jc|w_W/ 2rͶfPxϒ"˪wA @N"&؞`8C4r: wA?M*"Q4R&$)CH uΝ&+, k"""z! ܫ_yohkmPI6Md<σ`//mI%8/7jڎN7ԦBBf,`O-IgꉒMnuQ'%,Ģt>!ĔA+txϿ'o.B1Rva-wwSmm tw-aU71%fnVkBշb2U )16u0qb0yxP)zl"n8? jVvu  T,o9em űv'wSӓ&и1*TdUtEN@wOO~/}p nO XmgA0G5YHp#d3g{wG|w:xEDa;%"Z eC=WUPgSf]i ,R(onYq$B+x|CDkLVs*WY7О9 z/ُu#ۉJ&i2Ji8u h;Lשq)Jt\%β1b:@|3 8 Kh0d!IfGv΃s!d cˏxS1{ [IÁ[,Ơ&MظhZ%/)mҋ>r!1%$F;/R;fa摽?3󝈼+Fo5D,aB)̙Ndd9/|1IK{yHgNIwA%1܂ta ϑYE彬g l _̲`!<&',v8tLχ`;sIgXxCYĦ5x]{Uu5C{9)yXg>Mian"9'9خ orۗ  6JÇ9nx H͏8q,f9 =@TN(v4qݩVMͥ"-HI?~9⽈ Ed T YsVs>764M}'$MüHÏ)4{N*W[;UfV;2f'++&B4&W& 啎 @z˅o7J/$jQG}3[+:#=Y؜~}AssѵϞ$'Z0ey~ BLD |޳0]RQE{c,"~|K#)gkϗA 2K6)L+4i @M,8&_HQHʤx!.xslP:#Ew^ *Z,C( @>IDz-laP5;5oSC@ݻ9 g$ *&Vئt΂ڼ n,P x`<1NOiQzWb{u &iOBkS9kRg^LӘTBgd:~9v 6/Z۩ Qgfj6+s~R"˲ f`P hCx?nq2mu}EE]XъCq;*/0&0`\=J<bQ _sx!#~KAXAጬ`@(EkJk! !%qJT%f53k Ey j5v6%Mx!:(Q暂D$lpc`t(n/^٫ܢ(+my1Elį+xB9x;4qN| )#<9q@LF$%_̑ȬNbjtN! P$[<3ށbqgO{M,U8 fϕI3Fi$pގC^01ҋ`2 ECI7(#YE3x3_b@ : SކއAy.D B^ZQHR*@@ ;8z; lǑuwakY)-FSL@|vcL|҈C7 ^Tߦ&` NE &cHPUe0[-a)R8xy2eH\QfC* q΋xLıLS֎rhS^P)43+H%3*pn?jG˿my ut y^@TmДtBfÖfIs=3ȅe )0̠ABDomˆjѤI#CJ"/Zӎ qV-*HuyU:jI9Av`-HJRHDgz ,22cFH-qH1V[H#!h-;!!l a?IpLYsk%Nw9\6DiV=,/PfAU7ȋd9 XdAȻz=P!WHtBUF3G\~i=WxLć|!w1S.EP~=MHkG_P&o'@^e%"kE j*DQh~ ,(#iGkkFa /5 4\O\yLLh -2-h˴F; I2><]Ny^uɰLb4T=`GIDpЋ1,D FOV (BUtQ\0g)%)ΫNln \<)ƘH\X`ςP\7(l C?CsU) RlQV5ʪ}w=ko9vb _d mT^T_o/) K( zxC`P)CxӘ I`8N=D\Q&漏Swc1H2œWDЌг~ xZԪ~G+ArU+ yLM20EKPZQd>4H 0D(VhDJ qMd=Qo>P,P]^ݓ;nE%pH$Lm'a.ef.2(RC#`<^ %X#[`8)Eƪ~A5 IDATAew!t#<"=8@kMv6zמE9N=<MvK*!3.=1pޱƒf'za{1E 6&xB YCd '`<ט+$#~S , +%3 pv.Xja!?ꗉH ԅKK2p~ z̙S3W Uc &wP<&QSj! D K,1qMyr sԒ bģـ8S0$@ ?@NDˬ D؁0 '-Li A S(!L\* (~G =cQ2p[pr7u# \s旸~ݧ( `L۴?6,ϱ]C)>޹xQ$M*[ntGᅣ )jY<O[F{‰hEa{YnU;A^w@k*@01H N ޹ }p`?Z2POzxP:ʺQ3VAM@A*{`}]l2LMcKE @Epv )Ü'46 @FQ,3W'v l "R o?s;/ڳۧc=G"Tvˢb ԉ/Ǭ8R&רV9VW6W65W] a{xIS#NcaV=oG?eOL~\M _L\7[-rS] ʥx9Zvrdq{ k <)20P@ !/L _^꒤Nr[RA%Ƕ(["ovج^+(q`.JAΑe%j /^(K0J):<ܞp:졵eBZJ0Y&BPI}/Bya\M? e|$59'KH<6P&#,NA6^B}`'2lF~ЏG;20)+T&tnoa:}P8qV[((Ls4!BmۉiY1/Z"(NVׯVX_WXm TM) L4IDZ }g-G&!"@O FEMC>B) RG`GA{ :I)MA3" T|٣3Jl A*i2uIUw2уCW9Vyڽ'#8ÏQ4΢:X5C ؟[S!?g؎nfxf!*.tåk$uMoؾQ U h`7sPwM-Ke 6iM-.Hd⻽El)@qzBukρ&8RhK,| @%@M $)+AuI(މ~>Ñ1 = Ʀ囷w> 3h}N ate t:ot؃EЬ`f謀!m+yTAN\ iBF넓lL;І;G;A':_aU›7ߢs(?wp[]X_oDmۏ8]7] /0Ⴝ8 k]냤S [1["ӟ%3c"")/<:v/ l` Tef e\RmB@2bSX kc9,e\D_oJ9a1q*Re򎡙~_3ϓv~;0zw5nnC|/[kԫ5Fwn`DW7p"̌GlvXov "TuP+U(@U NP#N.ObEk߉]%n[){\USlT.N$4i ծ8LFFY͋-T MeE3Hċ~1<Iݔ \a g A=(PW9*Ai@MߝߞcˁY nQЮQV&D-><+QB gj45wo[_jVѨ,GU%ҵpbpàC{<ܞ0a`V7+45f4|6.0z]?: <^k>B0H^Y=#WPNq,9޻8|p8Uhvxͯ o9^vp:<,kE$cQɱW^`AcaZ+Eʪfw Yܞ8 )HF&/k߈`)&~;į_Ŋ/{tɛ@& ն:(Oֻ ͦD.uSB1]]jgG Иd1L0?I OUj43 /.kwAJ:v‡}2h`\Gr'_&5hԫKz-^ky>N,jJ]b'C(A^(:yB]7d;0x:qj[ ^I*|)*z=P/ Alh4e#A;L4 sm=aKYuy7O9{ܼ|fBl*|x۫+6kMznuRy,C^+qOwQRJ']Rimn1(}j%0) I;\jr%W5VWMQYZ/鐥8dv$ {qhE4M5,1$8oR\{&j 4 VUՠ(K(Eޘ7ݹ͔iA EbXq紧|iE!f/z`56ܼ|`dYttPZnܞP C<ňkQTU0;3DQըfхFga,t8E%gf.4v^Cևtm7;" )kC?pPA0FvA8 62Q(a!=1M.H.5 W7^ݠY4du4ku "x1#=m[ (%sĜkaQ8a*pJ $;ԶoO!.j6E2p~3&*lpow7lZmPVMH +JCdi/5OdBU7F f,e9Uq`0tjۖ-j?Ư\:69x,HufSٖ7%&GV,(0<8@>;uo/oP|."pcTG%9uH]pO{&ȨZcjCY`fw{ahXI*B_YoatDYJvGuZNlqv8 SD&P7`c "';wGe5X+TVGњT$8 ޣ;8=\[\m_ [u( >1V&Dd a)EljKVV5I5}ߡ;8gAq(F L8]?,~n+bA, bD\ߔh6%U93)v(!лXިE:UsU-M\mAGԖnnD Ñy[g]{w?0|h W/^˷^]Ø o?T3wpƃ BMyR| E;/(DPX!˲8~d(\ɐzfAuP`GGT=zU'ʠ YlwFw|=av8CC?_dT'{f8;*+ Z_JGPxGn .6/psۛk4 SnaH Z3r©އRȲ|UTws3B.@_{F n~*rk> cWix}egӷH\`eݠnHi ÈZC+T ){bz8;;"|-B!h/cV7j8yO >iTg)"-2:\LnL e0lP5fffdOZRSy}AVj2Oq^tS;);v\:-y^(JE;y+@V"GKxqmT9꼋8|+JF)mV i0:lJős<ⳟd2Z>YL.m x,|p>-,#0$g 2dY]ċסͷc-UsR&-RV5yQZKuBU7( Yvx>9o#?@Pɏ݀uA3:J΂ 1u)DS$un5HZO*8XO:+e:xCe%tFmQ۶C]k}{q7W~Z1O#(,3TrPnh \ `: 3x2eea[XV(&'p#⮡!&*/ÔkVA0YH%{_r/,\c]gvj̫Xf2+Z48^)ce-)40@e0)\ѳ-%{)._P"g\yrevt?)]م JA']/^[;z-n^FߵXow58a'z1&$ԗU4jΧS@pOgՏأ#TЅv@:siN"‹';D0 h,g =a rPVB5t?2 N vq-ư;޹٧O3P _E\2K1ƏYE VCFT!S9%2( Pne:XMPstS S?R,T5pP_3U;xHm DU5(놜DJ1QiDo1瑮b=_9oz),;gn \ h,*d<:dI,'i'&f`_ӗ5~'F{/81O݇F%&R$)UPmlv/wx{;ܼzx̠Yo`W= 0Y1x-̜zzs#En=.sŝ҇>p}=P]5Py /cӒ63ct Lh,+ oJ0#k*38ft;`=fgGw3bABk?"(pQzoގ<bF5 J7.leeN{+GP̲>$L"̖V5n^ū7EfG4hVk4Zхo; }9e`,GU7X9vm߃}|>#;v=&OYIDATVqc^gHWvDZmQO(,h(arvGΣC/{яew8ߢ;0g={"iOn!ҁk"=fM*nދ}Y@MrG!s%@ (hi0`C*Tp$Fm'[S>5Tca%Lzp36PYSTȊLVM$+߃㛋URTz4HuНGE H]8=l5.O9o?0w󭠿S' m3dM/,;Ël^YV(vXov &ޣ8G3CrZUBUhlVT{Dc'+aG=L!ͬHaqbBF9c{N~E7iP (qqGopE t׉u^sRTGao=S={QU_8L?+Mz/FV"goZn RtZQSE;xX@Im[kz֦%/eyNuCT T) `LM P!F Gَ}yzF^UKh( NT<\KQ0{7;f0JhD#apvp6'L TeYaa{u35q<< /K"4q:Q!e@:46q>qqi|;x(4Q5ƾYQ;qCwD:;{@Rx= _ p" Q)j#wX@ǡ;NcXT k@ R1́]#G[~@|YA& [-SG Zix PYAdr H,'%!n/qv=1Q8w#Qp|QL2Uޓ$ęʤ?1qc>jwo^!Kp?)0,s4>j y5/Ca+ }7sQWTAeF4ﰪM6FpE 0lqg]]wRgyi9HQ {,&ۏ?ƒQ~DQ` Pڀ;|>v==; Ȏ]; Y8w3 +~ ,CTICVtcb\ 1A{LCbդe8 *DB/!)cc`]?LЏgv,3ASGGzpǎ:;v޲ C4`-ByR<c\2.*L=K ƞ'飠(n+Wg/ʪ}O8nѶ,FC& / ;n^p aAD8CsdPQb%$Z)#&,}TOye#x-i'$2Dy }yB^6Ȋ :ˡbyCxvtvx?p/"{uhI̾0E_%_>Lfp-DPQr7WO{W#ɑ#ΐ;KX@Ѓ>@$ã:]ٕӜY.p(7Y@WWegZyȜ@4iE1## i"|B >Dp}x M&N s9[bG!:s)^pP4?=gahWR^ErzlVBd,!H;v[nG9T51DH6("􋡛OR?Rw .9,I7tXT lVqu^~7_}W_`XDCp?G4=0(I=G6[Գ9fXw}з }{@Q#ҥ&KgO&u̵pAQ7~,' %7&mIQ!*rEYCNΈފ21c(ގ< =8I#]s?pzxLɶKoi i< *]C &]gAc1 giiaEhgtmZmLG[]z}=-clEx'jEe . i`i"G{ ܼ֨z?W_7~**E|˫Q{<?z{?}]| Re4CM@۶hm?@"$%8>wFpRzc(q-"@3"*QC&ȕe@[aE]F' ,˔:*DtLqDP c!`pJ,Uj'#19wTzNE5|d,#zDx8O8whɠHQ{cp =[f=v?{@w8k9x!pAaLL5|oI9mv5 cazOÍRD,<+jlUkX.bH3oP*Y4v.뻏J1/pqqw^^c\g(* Aj Ceɧ;h]#';T "Ȓ!1]ߣ:7y,,$%"SSbf ੖.kHJM)t_hM\Q_C WH"L7" Iؖ }{qwNU( "vZخ:[g@x;( L-5110p@f>p=Ǯi6g8" E 61`Eu&GYk#09.^ϱbUIrV%YHn}2Imq$6,&=E RXخ.qq}6XNJҮa9ce_ h쀫Wz1!{\.`}U`= EU#ȌX^СBYs":5pڿytr:떜WvעdPvp+q}!0s8_YRTtQQ U "ςIXa! Aյ9<#DDtc :CĒ\ꇜ_[EL p& W̲G,ଇP**+cّ!Q3G~6rs UQCo0:OU<1Y=)t 8Xo/ WP"@{<-\ՐbSh(6xøoM`YDE&E|ZǞe={ z%mh T& B0p+ ."|5&*]PJk1cO4GP}Xzȣ<2lQh ?dge?0Ezhs@$%3cіT Oi8%#aI1MH0GkI(%W[" 0"#kO$\]QjN.7Xo.^!p C"K̶oV%'̔(nQsg04Cװ31xd+/s ࿏!8C4=N}L[WZ*E$0af!prElj%C`=f 6 ?ƕ#?w&ZwC.yc\Η=fEMa"h_Pi2EV~8t~ Q6X-nl(- Ic7 "T+/qqL 0 xxPe 籐gгr]E* Aپ?84ԬwJ8Vbk0 @l!2nFS0Y#O;->T/&d0|LV~mChח@9רf \)3J?5]SҰJg]rgx%TF5`r{j 6zƸaUC(@8e麚c7iзG0 q %5 ޣ?>e֌G {p3w{|Hs6=3gdHKQD a)@ cl^ɴqaˋǿŗƉ[ >ӑЎH)(UUQ*TszQ/ jQ-B9Wb5g@3(9Y 3ռ@Q.P(+X) ҩy"zQJ!_a}27kW֢zu6tma]PTs袄7=LwL|'"'mw-q ǿvC$ S RRNkd>҇ ϳE`EG 2~%eAU!PRST-ʹr*jb&T =b]Da U:rv`P-&%`%":@k HX`IP2/:qxj 4#ЁĈA8l{#E{ Yκ8߀9\'=z8_yDe?v ! oy9w `M*eRw,U5EE.%JUԕ%J PaG ZQfƣ(ˬ垚JlGJ)GG #|61pX+8e;tءE64CFC꩑J#=*]Dq ,l~3=15q󑗫^nœ h?j>Դy*VeEΨ.h4i0'%3 RR - CA[G`$1"(Ȇ J 까BHpG4hm7d-3!p"-owpCpp){LHHD2J Lg#=K(ќuOk0ˑww3cjU|A.`%†6ϠOXxN ."rк"+0X2uy~ -܅\_]˜9oh@1DaދHNrygHswm"Lvq_U>{9hw MVrEm>n:>dAttA9kZU(R1S6T3$ E$SGg0G CmĚwgQ8UB0G1xr)tYg?g9>678ɣNSЮ'kjT"21΃ 53WbhEY ]V.B)R 97W<8m0]hF8#/!835Kp4~JJ8{qiޏ`LU(leF Wѻ3bhvf(gZZR=뉏R0s>mpo;oÞh6==$<9qsM|*_J~̑u_soD͗ mhM)Zk*JiA s{ 6b]~/O}q3w*˺¼Ċce"{DM`GFHB=RkN>g;$ȘN3S)")8g| D6h]8_L~LFc}!d3T"dRsm]IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source/figures/update.png0000644000000000000000000023665611534217015020037 0ustar00rootrootPNG  IHDR<IsRGBgAMA a cHRMz&u0`:pQ<IDATx^յ% ݣGo"Dsl3X AI$1F9!1`,U9sQYϹv9Uu{UR;樼k׮}jkÇˉ'?pфC%LLL$:J/hZ hͿ7 ۄ}1?6ݿ_'B8+R]]-{s='[ߕ;U_w|!۱ KX6,- t2t _ ZiX PGs?=Y;X/-r|3urreeez}>vZCo;!no_y](gm6>e\c݆ՖϬkz`;Ruoy\ӛw: u^nY0~k~mf2m'o"o;/̹(Qr-|pion2m,+k#믿.$&&JffTTTHKKSGFFRԩSC_> >))I~(oRRY'48zBy0᳏u8rB&e\qlcSΡ) ۪]O]e}PqbZ:f:(\e{leui=[ޓ]9Q_ceԋCo:02n3ksfy6~V[{ c s1\epj;}7|N9wwRrB^ǒ,oe?1#ǰF^D>eLGqQ<cc9F<g>%'N}$k~|[t㼸0L8?c~Dw N8y@4)1VL|$>C+ÄqL9Fc>| u<)= / ۉoq~'m\Zmv|/;qnoI3 .rH!V|yM~[|~k`l~s뽺k73$O?pށQI̗oɕ$Ҝ'555ґYrM7jNx,\I"0%8,f*t1yJ%4o)(^4P?$6|јh: U&DkX/B%~,y uOrL$.4,_2ǗKmn>/u_9;:Bk/i Ӏ׀YúV!IaֳX/]ͳ{SgeY$\V>O:scnY:^Ӫ]Dh&)jVR/z%/$A+$۹5DmR~HOI,>3A,3>H "A݃^"]%t98|K8f{[."S Ga D*=<3U` J y[< aaPz2|G]n"KVV},%n `E(=Z5=5WJ2`f!ưRn!)ae}|ٱ/Gvϓrelٜ![vg6loMʒm{e<X˗.HT(<-V2J[ dtHa@˯jEHi&ۘ[=O!&}M_˧?UM_}ۼveޟ 8Ϙ?]Ӿm>LjG3h-4|QI {~ * *p9|o P1";V#;Mr/$KoNAw| 6ʧP2(&|KMo閃ir'An^|ᇒGkT ˿8OB|h(?DwDp\`!%Ţ.fF/&@X`[P( iFYy,Zh~9(^<ARP>&H4S£OZiFDWoL10*@KS9 c/es [Amy3-S#}2siP'"v!:PN  VfېPI9pA咞_m1SςrQFq}6ֳpTǏ!.4gl-ṳsqM&Mw:8%BfBٛV$@3J@U jk@y|Ɗy4ÜNC*H H|o*`M.=)J{RQ^ϡf^ m$]Pķd3}4pkߑ*eܘ)w˖$,aWlޝ#vCH<2 H@؛ m^K$MiH*Zec2t Jb 3?~3!sI6Tۏ:0oO釴g}Cӏjw'@x,Ӿx!}cpV _*eU֗C!G*g{ ō &՟JIq6}q#, h4ᧂS@A)4e XrLҗ Ьli;9_Td&}7Lo7=i%oVcoN7LCҧ0eOeO>'&.*`AȬS`H-iܚ>eDao#}lHc7G%|sI'|{LENӾK۟:G#𸾱̔4Mc^CӴOMߩm?'>7|Á7LC qL4Xo4}oZ~hENӾ9o;z5 ҏaڟim?&?~#8MFK,Mt-yZ~X7~N >Yf|NA=5QoiG}u3-]$V@rc䓟L}YcwHKdcNzwuuhy`G''-Q | K $|h4Wm;ޕe3qT%}ҞҞUip_7:= r@^oʏvt|ة};򥵩8x$6h-ЛikxuN$ S16N\ɲvhm  @-fxkpABzK$ZHH t@ ԰9\P";RJ pPs(lTPPVEm~h) `prA 18U`I]v&`+nX訷;<VOg@ <ՋM*1ш9(9ϟ[ݭ_6& U'-&}A!ӾWw~ ϟ>1t{j |< ?MaMÄo%9$8Oo30_u /jX(y\5@Nөi՜ݫZ,p >14'{as^;kJG>^{:/KZ-P(g ywE^AP-pB!0 xC;oa7o@D O`,Alb|X[.~֛KV)~Pa)(A@-XthZ0#3}}-Tӧo> s!&zrrwF@4$}%|ҟٟlZT4|æ}jqhMi?SI/yg?tzLA˓_rH=M,8{ H=l"_Vhg_iF1Oc/.ecͲB➙Ye%C0u@ hPYpBe5J [C}uE:1-;1/^ֹ}Xa:Y̝>/8WP}cY@{qNa浰r -Sc['?i=Cwˎ5 7*ߙ5?ѿr]=#GZ?N 1`qcIr瘹 nռ;KtSmtCJ:_YaY/ka`)?tJFIjGq-g# @o!~_QPs-oE3R1N c"S(+$:h%[d%H Zz2@oCnR+×@+DUXُpq`e6)Agvٖ s~Ϲ : S[%ÔE@HKh%.5.-16F(|GpI$r%vխ閭}Cv'sz}-08:٨=5nԔ<Ȟc4$L9hҧSOs??E̴϶:S?LV=äڏ6 3714oyiޟ)MOo{AyHc{F)ƥ 8Frw[˷w_ NW:GA0BxW^{3 Ce/p=;TJч YNɇEM2spyry=21|"}G0N31z#r3Wm#$V XtX?1׬MϷH8w<0VёǏuX@X^qB ly.YBGR !bz<8 }v&Y 5xK򕧷JIVj(-bK *կ ֢]x|Ȑm5}IIye5[瞔dl |X86@(YaBXVl&J!_t5C0oh jH1rR:!h3.F%fZ`B1d6Lg 8ǵ q^2u.F31Icq;䬎mB=} :Owi_1zg-ߎ[H?^-"}X >);G5G8yo0ϤiL>rfa5S( B0 Y^C a0X搮[冖<{?~]qgg3 /dF`-oVYq*qΛyFҢN{-݄QAX?)^ȪE?ȾEX-!((2DY`->GT׭)ոy ~,g)%+=a1x&QQ@!,c 1Z 럮A~I|AX˷xI_I\C vf`<M$%#@:R9 ĺ z!| BINҿ,K6])/UF~zs ]Ea$7"z(Zۊ~LPHQG9LkK g7*M {XSʦt!4d"|ٓ-.h]$wӂ%lŸ)~m2kHz:ux"66 O3(O,L>}5}Mg>eݳH?Z־hI8EQ ߡBZ?L>݈`?}VBʞ%Pօuz fXG /hnb?Q[ٗȋUW˫KUokL,e1L_ ݄oQMoBK-:%y<s:sÙQ5|EckAz%|Z2Ȫf'sNُFI Cj!n9Ɲ2mrV$VK9>%Y穵 mO .=,g1{Z& 7kҊAlh@꥛&5MMށ߲X8ݦ/Ax;.XyIRC`:qdoki Z* xu ck7UܷIh-ޞdξ__&~(I|"Hߊ廃ģ+1<ڟ|̜7`Fk~z^uaX784w|QXXA'y䙒+䷹φLRT I+d}N"Hmx}{yncb sgtƑFdo$l5hccRCxlZpN-:yMlФo}H'۰LaseM]*;5&E1>lX3rL3ϔio&(I|6Owꞃck{;I>i?[c>S>Fd~>Orqݛ,2<p{ȕO%,Xc0b 3٦DdO'`S%XtCN( :DzFlsPش?8DŽGB}ؽ;߱A~iLhf> 0퇂LfڟczkXIꚾ'Ùs^Mݳ?s3pNI{skϗ7'uUÏ߽?Ƀ<_eYc^j~؉K_5|)NMpiI4KA牳 9>9{=Ԛ!&q'X nܹoFZy#A0N'!$> OI&HӾE6O:U< }yϩs"y?C3"_G1q}hؾ"fQ1&|,{2c9E__x^h<4M;ޛD/^e^^V煿]W*W(ύi-ŹKE~7Bw['Ec̚c${'Ba-6},R`6%xM.p [aIDNzhlj 4HΩo yU#wÛI+뜿 rwkl9V oE;}4S}&sijnMf}i3?C^gt<ߗ't!}{j]9Ǜ?&x~|O6l3E Xj9B|W5fj c~wuu _!nLF9fɩ;jͷ/}{Y5OI\yq^kchΣЇ]`o˵UNV8gi3%0fA=ZM;sn姕h茥m /IHfLk xG܃NCևOMcgr*d 1L;"> &}u3S⛛} ;o䭱^uc0F Cr7C: ES>1I*C6ɻ]}%Ȝlt"{C1]"2.!eW΢H{ 0cɆ2YeHDqljLDӨVxD+Dń.1pQOG ۩9W|cJneA!XYV$x{Ύ[zia$R2wIXЁs:Q&tkCG\#{{S 31^?x~kc!ҟԴ_;C?]MI_󝫩{>63D' T=Ka |awʙ.G~M<*N!Z'CXճ1al 4+ym!wu[Dmo9!6dcxBӰ-ڂmтDi -4 1dM,YZ[nW)ƲiC1dְHn`7A̋VI4C22D24lS'IgEw JT|I2QT1uK.ZY-:" c\#ݐf{?:IN8&z.;B@ i0!}lHq4{'O'%0G#~HwL՛8&LBS%Y5IqO5H״kwi~\kIh>zjA6Ylv*Ӽn8L|c1y|ҪpL>L&yk28$Ѭ}H֯r YLu_HV4Xh^&#"Wly^_wg$& g[_8OS&, L횩dKX ")5J5FKӴWϬzl@=hh&U!QkA#%10 uր 0 \BAmLNNCMjO3%n?2wsN7tSY\09@~^fiki4!D~f(dZGԻN:nJ j{&Id%^H~z30~2->$sFX#ƴo#^iq~| a^4uP׼G=i߶ހ;a ^@F!ҕBjMd#+އWr#wC>,X,y)yd*Yʲ'jygpiyp^)=\EKGeXrqJy`(I,ZJ^Z=< bՋij?'<« A~Wg^G_%,JzIG,~qy<>/@޸gR,_&(8 L It +~M N%Teᯓs[? S3^ ^Pz\j\kǽZX @ÿf 'U !UH 30::: h} Ah=,%`D @uR/?%&ueT Ȑ,+ȩS@aB|h(?Dw-L]'IE FH0R\Ռdŏ\/8tA/A@.'I^q-H^IO\2G-J._/JRIok;50 kW(JX_X$y^A7~ _>􁋾|}j4C)04|3TJ/' 6zcOrꝄo;ysCs?wݍ:Q&fhRL>{_zѿ@$} wOjԯjuڻx/MZ,33Cp~s<6+ '-Q | ^*]QߡD9鹸G} ApE}TU:-cZeJKoKLK7K1|$pW߽Uÿƛ<bn"%9|Hd} {xx:su:#V8ޱ݁wJ7taP>`&6GNi_oܼSm}S9_iXE,ֽj6ֽMҌ/m- Zc< Z h8-b ){y'X&&?c3,W"¿# sh'%AFAZ?A -@ s"ǟy0Fd#8L'TJI\v~]ߟZܷM2]PX|DfŒaZ>;{L oCMnSɈi ? sj@A D"U9ʫgzɏ]`Ƥ? C@A -`ؘLhBr'ɝW^9iyK? O LwZ h6៎b>@Ï.|lZ hs6Ꮜt~\Q%,5Nb=){ωI.?+XK4aˮ~eVPZjdϦcmZ^Dcg#L_P: )2H b,&W2A -y6t?˘slǤo8ǥ!2dU/i/ ^v/&ZOdGT&h8Zl/jT]2^Lջ.4!TAlqTiyu|Y` \8,@;q l\H h#aY}e$$, 9\ 6ZE`Ǒ$_÷!xS¼dE"| ʌΣ_XPZ9skfv%n`+q@SA -pdO'G#{/])RQ!uRЉT2 Ss.w2oޝrZᰄrUzfxp/}V¿[4o]k6w![WƌcM]CZ1ۇ@Ӵ1 0xrd|ӗ]H{ϕy$_™\yx:$9;Z?ϵAs/H)|)l&{[:Ih]&>fE8>o 9ȑI!g>ӞdÊr泅 Y?¤?*qg;қ{~ءgTt^}pmA -0[&Z.!EKIU6KQyWHim,rɧ.ywzKm['"nRtdפ"rg[~cX# _w CJR\$EeM_(ݽCEF,33tB(ԵAwZ`[&j.!.~Xz%(M242.a_X].I y ^§B"sH=MtyMq 1çOvLgтZ h36ᗕt?&CcR=uxE]1q& W-! xP^9AHt[-aX ;9ש/fKiK*:RVۡ}K ?0ߣ3Z h6ᗔt? 9Yl=RC`>>gM M[z[\xdX*^YHD995h!OǬo-XiyǤs1[5C˞ ? n@A 6ᓴO,h⇗#1c4u*w~;;Nu&T¿ ӎH{m=*-(#\~@ge-@$B,_>=H0>̹lֽkc{` Y G!|vA} Ap@4 *f;!]ȔG0c^pIY<ې<)o'9xcl;pCw۠?}&C#˯Eqo r &=.qG=^FE>>TL?h'O;'[ޭw|QXF GO|,^Q~>\}\HN$ʫJKNs. U:HgJ* V>p! E-^? @f\Єg} ?%(#GAl,~?AL ?#eG4<gr_>>K'eg1xt< 9,yC1 10u'f[knH+GA6 om߲sak>I{P'P7"O.k_F$,5g/ӭT˝[|,˿m,E'˚ H7qQ~3o\ j0gGVR֏,yX"N簌>&^>bߡI-H= G^LJN/('J+jQZ$-#+Nw%LC7sŸɾ23e$adY>y;PYq=qnR )AL=Lq:}Eo%H;0<.L_!R4G|孻B;[b$:6ampfhL%Ypm|\KMKTԵKǩd_TV-UR,M-m)9 |t> .DcLD^LLv[593&g1+D@S]6?4&%5RZ&euR-#?5rwe޼;a G3.$uK~ZD^31qoZQnVM K륻oXIEe5RZY'5 շwHWwJaQ_X͠Ꮶ~ӔḫPai\[ [dl∔苪Z SP#C{}@-֡$?88(CCCʪ%|_m|bkUޏ|ѷ?::Cu:3F+")#6D>sh\uM vVqow;:?؞g)F = 6yI,SU+VXwwli:u yL%ˤ[R/ŵJ-242.|Rwjy뭷d۶u|.b'UJGzM*SN}%زdjq~lV<)u7$㇤ArgHZVw˷y( 85wvuIxMͧA>(KیtQr5(p&}-ڑ 4xc{rb=ez~CےĨovJ@(By[!$NFnuP]=DgG÷+W_hS*=NnApߋ #ζêhOy`Zsj%Z@M28<&|rN-sKR%#C^^c\>4"sH 񮓕_f}dUKjf?i紝KGgFOWÇu>=w}# h GS"xs:=Bѵ7{8Σ=sL‡$'T?8|3?O@7cK^n'.>ؓz'N|+-9͇Ix{2&}~NI-Pf̂j{N{:M誤cm#2qAqzdz֩yZcV3R҂E(4Gp;==:iq"x9r7i2'4Fİ45Ҵæ=;\8ojE3.vw]'%Vtpxii (p0>,~daZQE+"%ԯauڻx/MZ,33Cp~s<÷H8i|籈1{ =_2<6!ye [$Z(tʽ48㍶DڛExƘ},z:|/.h*8-дv)w~YmT`V!L˻L m ru"axfIx tsja§?“_Go7^72~XJjۀv)|J/}Cdٓ oqŸ=ħSL:8_'}S/ZU5*j{q3܎ޱ݁wJ7|b}>nò4{Aw!͞{mOtzcjz:x,{YXHC0˦.:|urh;3S,D[xkG=1U<f} AcH39-c3 N82蝐KEm׌?-|3ҋxCǑK>$̠.}ǟyY3vΡcQ=<4fWz[n[99ȔqX'a@d} uxWs=f곳Ǥ/5|Lщ4 ^/9ύ4{A~U9t#p艏ʫgzUJQV4sJV>A@.>@.<|c<,.;1s+=/' ?_?IhA8w}&|x a,%B:W>A.07&}jpF Ʃ E.>s~pn)㟒>k9kI]84Ndg %W9pqwXX]&sEpQfMxYkZ שyóK^x#QÜç L .3iM;#f$yܝry,VfX!>_SO!$,o9/1'e鐬.QCQtb{Y]_}`56M[?ҝCҁ9~U=N{fZIc}[߄>snD2f/s35" /k;XD69#Tq$&LRbhQ46v]~/qOߎ\0}'Zwk6ujhˮzAVF42N0b3UjN H> p7L%"X8o,B[$ƶnD3k]y=ҵ%Fs琿0ǠGV<-<9U!y:@ !Y?Z&x8ɢ2{G䬏Ȼn i^R^F} ?8b3Z;_Qv^%X2A{Reu@wdZˮ uwΖؿ$7퍦MX(k܇*75Sɟcr;Rn)Bzܞ1y)wlH#Ǥt4hDEaM;FﬓO]cX,ƽ=> exw]xJf/k)鐡C9 r7N{|ypXwL #I]߰/%LE/X(ãRP$ySX#Yu;,y< h4|Aܢ9M#- ntЃEb:9 31|'9OiL`n*w'!AӇ ~ T}/-i_X&C#O_&w9"_>WN˂ #~-!|j<^Ng',=AͿIF%#JRr`zK/>gҀC^ܶ7 ?.a&{v;fq[%=!~gBÏYd3Hc?{̢%ˤwH2 j$3J %9&|Rwjy뭷d۶u|.B&UJG˲`kRq䈜:u k4 \. kU{c[5OUÿf 70,ӋdoJ>#r[血0z d7d?m§dkj}j [?~Ï32!|oߟ .~Xڻ$9LR2K%5R2@0O b;w$U;2 /1.]$o Sx o/]^{ 4\K=>?{1w}Oyg9^m}=K773x!Y.>G qfAdHNq=|Is1Uf$e'=[{T$|ۉϡ8jYΡxh>|NBœגdo*iu Oaҿއϸ(g…Q/A0C{6[ y28ESHp L%9 nTD*t~_-yZC֌p Oβ]WV}Lh?k >{ @f[x`7&E/ƴv𴼥%UI%DӞ)ϩ fO~ Y_p bjA.ܲr Py`-޸n23lx4X~nc >A@f}id{ xg* =b)m&E(;4.!^ljbbw9eE!'*GY1iIۙ3A8}`AE]۠w !1DڛEuod=T}1$x`p,sK.'4T(YOJ~Ie??^:A}`ʌ \sτ4,\v,J1dC1'xHTA 4ͬC0v ' 9Zf?_pt}jFק%NLAz·5" TG2X>k2J,i'˛!ZmC :d3lC-9MZ83{ߍ!S4#3 F3޶  i;1V I WG1\뙣&{o}~A ҟ0+Ꮮl"⬀P2)5ġdpsƑTGoHo>yK#LOV6гDV.>mNQO[96Vj솎z}h*}e>-a01}`v{J'fII cw1$S'ɾgkiX5&#[ۏqokÙgz0d𭏀l;-#,2'H!]N{Ji4S5;?~>S=ZTtjK\~Sop&ў%A)Ƥon~e;>@Sj+{9$}+$EVfN{?Evgq~E9{tY;!g~G!lqOmbwajg<RǪm!jMu4eQ &};:?αY>˔wS1Cfg?6iч-":љC,wbNbq}'>?bsJ3u^#f̈́E̲y o?|B:G#'i=_} I˹%Twuvxw .9*T7x5*ͷ}^6!d`aEafxlF ~lS]H$y!=KЏ֏ \%H2WЍ,yXHUK?K/E,Cc5K$]l?_üHBz_}fI+ZIFf[w'~W$Է em0SFf*w4nJwIic`4RMYNma>X8DrJ%䛤ɧ\~̛w=V8,H{&….b ^oXkB"JpKVɭlVf\}`уIGϠV_# ?4&er#se$xy,x0,GA§s(}6aok$}VX+ VT+%7$~~ɁD>{%.A>%ˤ{@fR%ZK>u̻k[m:Y>*#eY58rDN:5.`kǽZX o/]λAzdoF)=Xˮ~G$} A=,ٗQ*ҋ%9_#0_9a_X].I y ^_>{EP0%w ?A^;_:{dWJ,]E>}]/yàK 7IGOvɞ~$THO|9nU2wzT'徭 ߭M^3:EqG 1ϒaHؓz'N|xh>|ጰ$/LvC/hju;״ܛX%"Y~Xa" smf~p>LOoپ=?B:{W'UԠw_z$\Xgf4Byy 9oplvs>ESHp LyoX`^*DlO&xcQw H io{y]<#t3Wzt[Q|N\z+tp١gcklVp,jD,H spbZC'n~"YzEߎɾGǴ,jlL)6 O͹L m ru"axfIx ts: fO~ Y_5y78&Uֈ%$xw_2 IeNUt5qINRqq䚤CP15|ol{QH=N3IiaOgqfLes>ᓬIc+p~tN“xjfYPxC=S kwh\^t@b gq'fQVsN#WIq"5[B~\7OcD,# .+K,K_5e ?+@L? >˞xuIEcT6 HesT ̾к7| )@ePx‡A.H 0]D%Yg9/Ԁ)n'k_xYn;Ubh3ʳ{R*:K׬b^ԸW6mwK$^h$ ~%\vۤ8eym芵Ơ,kmi6bx!l5Ksvl&L^7 e|~܃z<&=n/$s-g_z\f?rB۷ʖׂ9tBxۚvr0$)o8Oj._K~u7gwl,xfLF3g@JxW[Jqi<1M-U=-A+>|<2v<#h^J^G2/C/w>OA1|)xK0RX~N4|G~Xu'!'%|yW>hF \Ͽ*cGOI0zJF?R>\y,"[V<`G7fh|2̱5 M1D [I;sUgw1Xm!lo]cd&ˌ$HShzM$7Z3c۫Iˈ L~W pG=,=Kȑ;ߑ<;-~>ᇉ'bJ 1s9#=Bja0AǫGq|S҂K߲<8-?I=gw̋_4#^j3~d]&yLeiyLͼ/˗C> E1r3ĭy5؎4/YBsל9*N]Ic?e~xgcwulq`>r_ u<>̞?{O\'9q ̆1>w)?#֙k&fkVkfi"ldv5gO~៝>/睟i>{qk:GN1|H.^hΧSÏǤ !4kˤ% ħ!>>~T[pO<2ө던{`\ҷI'KI_«g#u8ƓmC.wTe=MPr𠍃>p~Ƥ`ܩQW)_gLGtIٙx]cNh? ~8>Gf_xgwxBJ~[J{_F_vճoo5ZP=z&4gs |o42?" d3»}?36 8{xyeG$Yr[$U wfs.C ޮ *K҇D?̿XuGTĭ_ I?kݛ4N@O@C2W1 8A8>cOJGﰤI:Qo sNp;[rko|M})݇uzlkN_cxm⏦B+lnG9q [doz@vKRjn_\ͻS?_^+p~HR2 <%нH(=&*Z$I2K$]dq%W \/?s=\Z:%)(} 93'?}刴~\:I2^/ ^+ %K@ju̻k[m:Y>v*#eD:}M*SN}%ز8O5N9$5(}C' KjJ/{+>~lyaS /p]1L 2Mb>5۱_ڣ(Pv&aT}N:-2V:O#Cg# \8}໋Np{l؞"veɶ}= a_X].I y +y ir~œegD_,; %` ?5"Ӝ|ۆ4鄾C0]C4z -:Z\}7"ᚍ&V&Kz4=sr ?5E#*`=C) ]}{_* -ݲD91Z~8X(A[|]^*;5(mhn=Lnթ4!,;Xv.j9U5cL~8gB=KES Z~u5?~;N`?sÀh6d\Ig&Y;I_5|%مron5Ǟ L3bҷ i&qRmҏlcg&:Mz2M=3xԨ#ڔL+Kn>G:xTXcȎ = Ko̐?<\(ߜ $:-NZ9^|籈1{CS{z/]@zഗWTIJ^7I{<xGxN{^SۙM5ϨN{cFylGCV5y޹1ǎ`&aH! B[fK.>'YWu;8j:tT~$Sxor},􁇗?-}#^(@QFO_xwޙJ>ç+pӭ24zXzKziȊU/,t@0~8L){ ~A e?#݈M[ю5bVw!DڛUu@hcR6"Uw8c 03aR{|xJ`@A_ @ί>0P<8teqEd_uH<+} ux|K20zDZqe+a=t\.rǽ/ [)i8BqAzܧ~Ɂ}~IG>p.S:G2ryXƏ+ɖw_C?v cG?U/( @@>􁋺(>%C'8.NɕW##K?`~ !l?/jI| $Aniۤ~@} A |'|{?JuA @.>p>I/ |>L<+sXelҷ ្U/00K]@f>zfA} +WYwixgV_x ya(?\i/?} wX;4!EuRX `Y0CG+=no5x@sQ (ԇ0U !Tf`Sl/6_vZJVX`mvc֏\%HQ(@2fȄ\z,m kMtOH=P50e4XpN@Ad._-՞ 06`؎^\z{{ԩSl7q^-]'Lvgʞrٟ[݉d`w+lyLK|Chۄ}r]3;xg;d;Fu1u{pL.j҆G>x;硡~pLi:.l7qSO=%rĉl7q/)+XKeovtȧ\6_.)wϟ/K8Ҟwpa$X€%нI{m2<~DJ[%K:ze6d  Ok5'ۏ8f|j`5}v=4v9))K͓E3(er#se$xy,x0,GA§s(}v sdM"a)VInudVJk,~Ib _<]&1 06 @@#ypafKS-M>ؚ,3e3~s„n̝\*AڂzA C.)qdpKzi,ٛ_P?@ }&/L/L~[K[T7˻彍/[SeîLiO\2G-J._/JRIoGwkaw׌N}Q?7&醧arQ˭yU;Z {?~L###@A>p [嫕Gepp04ۀv._\;4ۙ}v4ҡwd緶'߉)~#zG^q8H?QHEި㌊:y'! q$ƘGP5-Q9X r*`~ϯƶYt@?O̹6nwPvZz}}}68}`s+=x_0_~,o_~D?00HSG68}UyGdg~o|ք9wqɮNɯ†>+WLN|6ѓkjjBJKKՄTPP hs_k5\go7:YokkVlas WYo|aeyᾎ2!o3gc'=s=53FoeCYqMm>}lb'k}PҲ )@ ?Uu BK/$>;wJjj>g\ 2R%ğ w_p+|!0OY˰Ǟ|. sLNq!J%%%j6bڿ޽[\k\e|1rr"{2׾AF޲x[og9v~T񙨃ݖKŧLN _7{lb'kI76=?w/K7l ;vwt7YYY H{Q)kUTuKM!`/ f|:Q鉒[yy}d˖-o[,_hlA>pT|ꫯ0.Ys_{nL\r:yνFg}9,5}=3~lᗿe|[[mp=n:QЧ̨mg_؎WҚn-_%k_}#h2_~Y~hrރQm>Ӡ͛e޽!5K;dx80!u=- M'{% L4=z{!Jo+_[n܌EQap_[?0smm_|w;=,r-o.]YpVq\ 7nZ(oYÐ ns^>suryrg>'WZ⪹bp\q5ḵ|Z/y|]9W.Huj1s5z*,̮_:O9Mdn7.?w2;m8[nx@\Vq5E{_}F|=f|OhЮ-čhЯG__3̵7WO\} ׶}}岼;afZ͇s߭o3>1~T_wyG$}](3[R Ǥi4ç_ ,MtzՓ7n(<|JIe9~p+'/X³M8'&N؞6)`熁4G|p^>y`A(Pza=*ݰva2!(#:d#7$]}/m]}x҃)Q]%m4wK p*U#k鐦\2ݨ:qL\ыD*}RcPqM:4v糟yz0%ڍׇvGL QG`ϋGduã;|hTφ6W=X♹ƷJa!K\ӏuCa<XGem;mkU/( s@O ӄO~542)iH;-Gz9F0:Et0:np$A[20hC8fK mX}Ą(:LD l4  ]@kҌ6-}Q#:`Ђ1ь6jN;N-0,OvW> KbOvuչQmE9ePɌ Ų=9Oυtu>y~ӆ=wC~Nㇻ vPہh\n=  .=^ygqa=XDU'nާ罻3pڂ#1TvgUHJad4JNEWIAuAMXwϙW!5W){*d_Uꑔ~lܦ!)nDb^hfZwJYCubsyc7]ֲ[9Q-Nڢf)@Hjn.=iݩ+Iy@Nɕ]u [fN]8 ؛Z(ˁ"9w (RIFŲeE3 eyfWHFQ5IAU"[%oʨnA6z<eSionTZV&WoL3ʖÿOk%IR% ֥WIF!ץuR\*GC琴9D!C)韘 N|`ZrqяcKym|{}ݧ III0q#!d6G ߩӔӌO;gI q>@$| XHAaIo'!~~<>W  HJaҟ*ٓ0=}%  풁\ 7'r=1߁\$ʶ?J?{A )V-w IM M m>ӧ6`ݘ?mavcN5"Li !Llq7JS|l۴7G6˕2D(‡$I*[ @P6nЦ ^!C*d/m7H?O2$""~E$.%bD&}+lQPPa 6(8HAλ `%wwϔ IJ! Vd~$Ğ̫4"( 3]ͱREj^9@<[#h|RhR>7P¯jzW9@wה-#|_4_9&#R^(kVOBUͰ$y/GDIN< XƏ},r3~i9qC?RމѣI&|NvOKjt=OLCDo!}%'cGUI#~V0TB-BPmߡsݫGG= "}?D0djOҟDqf Q ?~3u6 Ϊ~U,$`HloYW64C'QF,~FI8[eC^/m4Y2d=H x67`I\y59_̗ (|޼-l>\"l=zm݇ iXnCۓ dWZ1T.AQW9٠hZyLC$WnSby'UtAXJ2HF/7_ b7Z}Qm;MɾK?I).) X:Cϯh%d>5=l Ɵ^ @@Uk@r4udHY\efT hpr:OH !T@'iSC ( P.P'ٳ;U(ێjKï"%4>*T4|??ݵ${4䗿y?b y-\ !}j?;TA្!aO?Mt4<P~|?ҏE<&|hY ֊~V#;âP& Zd[a$N Y( cDl/hm %N6gʆj0J֧W)bÞBCRY+wʟq V(Z.Ȩ {;R[o 8g#ĺmEwGNE$Y]n$amBl(lE֒^-{% ٰKmV' *aEUI?9 { );@yJKB a+;@B71%ulyu<K֓YT Њڠȼ$H,+]#f_Q8Jr ǥS[ C MA(k _"qĸ'l!d7~p=g?%6R?08HsN^yi {>PEۈTbU/S*P89ۚӤ6Qiν[r9R󘴷ScXzaPa5\`x~ D9!x '뺋%@o;H|Ʊ·xvD%|˴o |hc}ȞI?uLʆN%EmaAU5b>Ӄ$+ (4VVf\ 5 J+}{%?@MA!N67Qp)NlA `PZؒ_TZ&mF-ns$Z؅RPڊ lpDN~ >_sDo4{C${>t+<$j\cSKӴN fv{U+q^6 (v}?{TX(IX5|FӷA ) )0P>~SE5*UoJpci A]SJA@N@P^Us~3|WƬkbDQ9#cLV^xkZG`(X̰>,CB =l@g9@ yZCU{牌Ddu7H0&gs@ΐkALQX:&[p/A?B]!1ۚ޷죚&x a~칬KzIdsYl*M Dfa{qm6I !@ݬh a#rÜY]/d_$c߇Ht$y ",b%ʷ d+EuSm(c+ Vh^lžR͸0P^> F@ (9_k% ^p+mi@I_8D$_#`9t x=֜c,$rjY ,YZvSW6Ĭ78Yކ\qNCKېT~][x wL5FHniW7v 'Ԣ k1v) E c@G70O333_>A&ҟ~T16; Sg0a6x6c\hyxE§>U{ x*%|i^ (_/J́Hʻ%DbP׿)_"&%y/WXުgrBŁP[9na%wxA(Кax z}ÙK~f'ct l!pX q^S;&}={gLY_Mc Լc= _>.ҙiy{j0'@J]~A|>M!:|P m*Ȼ9g" 0y-kL9Ϻ8Q_t*0A|Z_1acVhߨhSl6 ް> AR2A~Nӝ5i4|ECO3 eh[Yq>;O!X(,IJbnE2XY `)%C_AFuj^%tkZ)L+%Ҋ)m!Կr尠TË۰ÇNK?1aV_, q+o1|FC:H(H AKv![ޓ#{a,fΣ!,95d%{~W 查"syk1 uq:ڃ;?Mޥ Yp`;"-hD_]ӷ ߩ; $w+g7~PSQ+[A;1,In68ĶnZ%[ oVt@K&:e }[`]P༭9*F}+ӮUO:$PNuHp6;|Nl,3n(1hH$0q?5rJ^ڱcŘ]6,0Z>eo;s߅=$ҖStJN"<ϞGwx`Zօ `{K1{,N3d?Ʈac:%O A?bY %RɯҌ%-? SE+d?=pfl^gǜZBM2hwO9ʛ_w҈8%Ml g| 3qXP+Ř ʫ ߞ0GCWv#R^x xfV@"p}vy754# l5%1Zq.y)o!XDy^kʙE8@ni3e B#n,8}G"ruX 3@"ρ8oqsx[F!-أjdOת`"ӑm} ]>-iGT_7$je7~s]P@,;!bWۀmlAP0lXlZ#pǬ[u[u9!L"L*)c. ],T镽pԣfϱ{ /1;F}OM~=,9KnXl<'8Fp@ *x>=hX6Pڂ3H˫iǸ=`'&#/+` i,e?  RF@z%^_dϨ6]__>-5_-뇺t!Xצn% g^!5 08Q7/* ڦ pё$1Xvbzʎril{<Y&|ϟ)oɗ~G?ޭYKmq6D]6#D*/ȝESoLD \hM/oWڟvZhJ{+[-ү5Dk^~AKwJ֗˫'?N$޶s*Y_-·2 X-VK7̋፱F*Glz,̀`Cs\C td;3ӌ |giJ"{MDyu#z yO}uM js,?cI)Ap~t8fQ`>( @$b>Ͼ.,=`:eM? @ I%Y; #c]}rgh #^tԣv_ /WGZ7|F'(:H"dC̜o5OoUK?Rb 5اƂMAhP3:|o" }جiy A$|mۨݧY/9NR@EL#V=Bx j';rBF9*`UÞ~HD5)-ȷ3,OK}%,,UM @EHO_v!|͗6hw"U͓ s#RXYzl岪x,yx3W" Җ W|jC#}G,j`GC _ga I-)! A:y9VI-MΕ_wkHQƐ =7+ a=^CV|NyO|/ˆc/D71 2 ]|" FH.yrk΃?!?w`%$|h_47Z7Ўw#LZE[E1Hc 8t#´O/h#ߘ`^VӨd:F5 ciOD;,Cul !Yè7j~OV&20.C8GB'e&= ȁx. -3>5J|5"\v kjNH[c@AuX eE(E[T@smA䣖Vo(`p4im >DDGtqھ`t΁P~sWג`=b OBhcSd>#15BVp%18 m=lɾ?5|$h "jX-  QYMndb;*@2)DxACFԗ k-M@`?2' Dea a/A47}=z-̩p }MDnuDB:,mc=.B;H;I3}&)-1F@ьu @7xqS9+7>ҏ~&etRTv7ъ¸11Ses+YIG`E)[`E 9ȑYD^do. SO! r2 yN$":΀l 8P{<12rt蓟TV5AHBOAb|+[j:廋?uդfΚW8PWʏ[v$ϓSu[n9&?i16Mv}k {1#2'Lcߏ`Cf0ӌKiP&}Xu |ZtI677:PE3;:{lLطʺlk><+F21|çC/ˇ?,{ T_p*yzfbZ^C>v C @X'IC257.P0۪:jF0d3cDy9j_%Ⱦq@\m!`=/Pe4X BrX}?]`9Yo:/<ًQ;g\hM q#yMB)ep#**WE f|}awds}ܣSȳWg.R=DٍXdDN D&}7>I9[˧@!֋~d0|wvٱ;YوIߍ[y 4lٓMet$Ҽ`⧙S&:_zNd"Q&,b8a,3 =Fb&ahb ŵ^'yp unY<鈀4ُ,2<^-z( [nWK[5KiOZo7{ng-LG_aK!>>ԋgDzɿyIA=A+©v6˿8ևmb캯z<L zD*Ctl#QnIcXo}#\R` M`.14x˓a_\۫fa)q/_+I`צLH. ty4;8}|z ׽Vt̉΁qяkԮ~h1ٹ{ǒfD:78l l[I6ʛMUʰ]qR-uDhgYGJHF :z;y.*,cA :HP&S)oEDg۔an|iSgmD7nx;'杰`|ms'~x~`CF+aO@2?Bk m΂i*PC1sx@ #P+AK.&E )6: J [)9,B.BRɰ["+륄W`l@<:LziL>.x"b_ a<u@=nǞX-%  #?I07{0kHiҧpm&3mK7mdE%bj㵲2r)h*V!3 I0W|M2c G)ȿt _I}_T:ٍ=,_&~羷@0:XFV)\jCu ;e:EÎw>udyC98&I ?Wd6mگ3{S'Ns!oev?$SṙQ~\U׏3>@ @.6H6 E$pQ"x( #l+֋1ݭ*R`@Ex,b C% X(Wރ"lv >B%Dh;} ڦqIW v bvuo`R ({a =w_N SSH@PKւX8 &]aI߃Ѕ-8TlK :  ou=;T|ihcrˀr7wK,E<"= %VC}BA|e+Ǟ(k{Rr?aU㫅e+V<5? * f @JT Ah4?z{|sKkgY>L@( UsÁhoMXx]"K.gJ_=idjk2c4=,-9_IC旤дN s'ivL϶&3 ' 8X C.=ׁ}.Z^z~7k{^UݍzxG{Òot5h ,L(o2ANH"$Xa ?!XB4>-rZ2%7l`y-">]a,&!+G⹥{T<|h5S= S}WC jh$;#jl \{xJHP6C\? /}C{ȷpǾ%:|4 ̸֟ϣԟr/:\.~xkŸl?ֲP&3=^Rp< p\V;t51dY9噟7as5ذrx . 4$9A,cCXI:Nɮ":4,D.ILUic,!rg!G{H* ]# 8YX¾0%繀3b q/ҰMi<̉ψLԉn#C׹@>lv2,юX,\"n_}`wc`7={وFOA F( $lP VtY+(xƀZ.,!CXm8[eТ4d ]u"l!ր.3p/X,w約ٿE'mx?xȉptXN{"2?ܑ"vtKLmOH- 2N/Ę<߳M18cIp^K -d臈X4 k >:qL?B 3-1G?:]B=N{xc2oM w~vfDLCB*VD<`,97W[1mhZ, NUz?z]WNܮlRK $AGpׂ<U Qe 0Uf, Թφ)Ϫ<9y^C;ubZN-\Ǿ&g*_ہ4Ҍ,mZQ\V#H-Q^2HJx>PCj!y@uV$\=mih%!8V,#JP[PoҶ2 . B4#@TڽHѼˑ-{@֞yH< |C̠DŽD$s8(21?%v@.G"Rh~>pZBL=.\\90P6K~7}p!lPe`^6\?4Ʌ X"`Qmp#9>Z`T3xP""0g5*:8mK3IhL=CuFY>e,Cԃadb&NF~d,P&L`_xp.-ϻw9'#7:[lg^ h#(dHŋoķ奝 :^+qi/m7٩g7 ˻ K8qy[6Óv|ibr ¡NUaִM:jk4G5K{,hPa3{.[cφ@m=DjyI* 8, $kI\HBQ47nl7nw@iǼH H@xYvۃ^>~7<\W6W}ؿϺ^>>}>$aE=m@[&vNB;CgOV{k7lzxN_$0}EHuN"$\R~hA-F0-pa@)˓FFvBL5T7`=~w$c"Z۾KZh%:~D{e p?f}ϑ}OOTL8b><5p +0V %vtiȇf`+ 1 )~!@0y8Y' _K6o,?7a"C:R<&lHE>0%4ALC`q 8قw?־d$Re2:w ʲ<:c\ۈFMz":t&i^UfHHAb%SP@`P mπr="v(wĔ"?o^y]^au#Vp2Nas)!/m7:;ps8}YB!SE ,c9@~?r/~h6UrCBߥA:tm ,'E d7w^r؏tB{uw M]XWd$"W;MȬHe ~ڷ ۳xMȪ9T v\} zdB؎}۳aj#(1 m6;X7k#F{;dNmmDlYvm´}/5x?aVbT6&!]/|۴}hF7A l 4F߇wDu^B=¿~m(ූAy`/0N{Fq;lݗ-H y/fG'Af&2ӯ`< p酵'lC¹4'DX~#F'Ȝˮ4&-[+" 0;B ITbr3l()[\} ǫBEk?2*M(zo.P@:Gi^ 1#m"˶_8 ڼPG3$ΎE\Y6nv%(;4s.MRA^`i؅ᕍ u gA@G!eȩC_ p~i!4.CMyD\2T$%[f?wNsL}.,)>.Iy>1mw IA*! |`KN8Ώ6?aM&hC@+@$UߒZ.[~de@l +pmegͨf<&`ϼؔf]ZsN,,7bC.% l{6@;=>Q6 ; #0[(BUhN {L a ;;u1 m.{HBiJQ BJmQv,mE( Zrwg[QFdgLe%{Lc2;׵B26K{]3,0U`T mcʜ˯+WJ޽{eݺur"pv8g(Dc9 yA#$ &;9:'$L4B񖥳JX[G- | a?B‚ nHHTWGazleNLjЩ\DAV5a*^c_zQ=,Xzm'x!`W|׆Sڷ6a l}q r>l}:B vB'4G8fN\zߐCc<2mЫ.h-$qxS#e5[#6J;1fϨzJ$-cuoVs;5{f#!Iy0_ L yBe?#>P~w]~- jҀA8,t u֗F7\(߿C08 a]残^aE664 "~`;goB<d`xe:yN^J5X'jC`dGB8HaX1w8A?1 vӯ†Ϗp-.i`C~?ﴡ χ-8ZĽ@<_ig!\Q6!f(+>(2$>v ?oM䨎<ݝ̎ qKޱfc!qsۀ0,8$@ْխ[}wWg}J̬̬Z}eUe˗ߋx"PLuE赏i͇h͇[i 7u8*?kl<S k vFk =ѫnWQA+i+s.^d yeW.4EkP>2~5q8kkSm4ގӛz/OL2,|(o+`2& L=L,keڍB\9U@[%D $Amd1G[p4&O~gˆAiO{rK)g1Y;ڃP2fs{0؇:M/#͞}%kU_{T7D*]8Y !@`ggj~VRA뭷g{*:w<:e*.֛4BEa;=SAG=˴OQN'Hߤonyw=`gMtyޕ;ÀwTa_hv#0 ;xShgx7Hd. PhDѡ R1vGmn b!;Ft=!®Yb"|/º_;N"D*Dm;!rW(pM]Q)SFeοAtr]ozv=ڽA锋z$rfzG Mmyo?[}cކxn6|& kgCY&예&c\ SFBY-dȹ[62} Ow \,Dv}yQ^c߈اB6$A bK\@^2ډuf#AFס.bM88a )3_M֭5k֨O==#Cу>￟nロ[n#^-:3\fM:W^{~x Iܴ~(џW_Ok}~v;xie"#{U^]gUhD|G}wJs'a>gC<"t!'Zڳ~N?~_?Y|.;Ct6Dӻݷݿ|a㼺8k ?RV𐖯|C瞣~{1Zd {!馛A ,@ Z*R r;]xtigSs[mVlЎJ {#P xO z8 q~ށaeV򺺺Tvj*))\o߾6mD7n?gڳg=3k9EgfHlq*3۷xO^ز;(XgKmpُMGy?RFEӋ z׃jg)?}N GGGiddOgg')ollSiiTTU!60, PTT6k͓䄝l{\Շ4+ z4q*/;3ćA7ޠ_gW𻐀N|EDDT8o_|/.ȑ#466F ROOτ O]]17[jkk-#[&*K/z;]ur/܌wOzJ555TVVFʒe_,g:ڑ>5tߛ}&DHO B]]d ue6!xкhQbbgb7<jmmU`#`c[o>gGUg5} 8ٞTf"w OxXg>;N:~?5"!F6Mت׋^mm&J8z#w#.=;}t('c}`L#[A? xlgooo_G^`C w;~ {)#C9([GG61??ϿXMICdzB{դwөg^~=r T.RZa٥A||4ܰTwdо aNn|'`3!YK筂 ?h9e xopYϭ[2C@rvufP9z7ie rji\Ƥ#>:,| @_L|olnY,=M;DiVERWMJeKf>BM<~Cp؛d;BMXk3s@;Gy aVm;nu`;<.[:?O3θhfڕDg7 `@reVSL9+bsPH˱[q܉ d~C#z<򗿤wЏ unZy;oɰD?.hl_fI7-ފd;} _4|4]]9H{Z~s/^XӟD^74?G÷M, Y~ Efk*dS>@_Qn+5Y_4j_@|D[U>r| W hi >:s:vޭ?Hl} ޯ ' w  oS[᥿Dfi:A8uaiikf}B:Bړ[J-I ݉؁/Pkm|a&I?g&s>5H&}N:ȫ8WϜ5SA9{S[?ⶥ"""i*mK*^rl ^_?"M2~m]}D=Ó8?Q3/ϱ8ը|0}ENUB *hA·iG-_#"Ǭ pΦz ٪`q5C|^:ē5>D՛db }4m3jK"o˳9PWTw!VrPi]{=fYM̢"""2pˢ|к &i % 7?KoT^ ziv@(zgӦ;П32&H_ΙC˖Q2Ld@d@dCn{1RquB6 }X=4QkOwh| j&?>o=Pf 8QgU#5n}'U4t'lyOֳu C$(V/k~#~7U5P 1߳Y?~F}F~ * R.̙.c!g}4r54zr-jwe8Ve.dƫncK =>gKiwڋϻzF=Y׆ fp.e\`xr/FaBW}ᅩA(?3vVy/"xdއcwLmǀ?C|#;dGFFB~VV Lvz&af@<999QҏɺK?T ʍ K?oF~zӄ- wMr 8ccA=hNqZj%1pzdgcҒtې)t٣iӇ~^x&^`wRa`/2 2 2p,/l^ "^WWuTYUCee_Hvg"lҋO`[|K]=Lz]C5X˱FC7klҏbju _&?"1儑믧X6c!Y)W̩""SYπoh`:;yk *.9 /}iǎ=JO,_j)4ܕU=S]P %OsitŊ0=ZX|ן0a]Ù/SCJPDD%I?>aOy}}pH }KK.a)y)77/ ڹ%9<޽p᳖kBle}7k#61%'볱~?s/\Z*/\&}3 ~LqSm' wVm[^rnY,{dΤ>㷛G}? 2ȋ xȀi}|ofZ7Y÷esh m J? ]7CA?k-?%BVCg.\h͝;?x:묳huֈ4|g^w}ketvEDD\dKA/ս'ĤOo aoOo fcY4{D>kyv3T<hǴ=R{}a|:oy/G׳h0p4 d{I*2 2p,Ȁ۶<|yd·wuM^~{{}DMo~nH4< g`_^Ch+N;4]vg'< RAEd@d Y2Ʃ}@4|cOFU3'7px3yhѣ!`/{>*998Bx&PrhT"" 7t R|Mi!do.gڵWL[΁_O_NN} NJawIT+A6#"m-?¾ kUp7Yp8mnv|7G㵼/lʕ߁ 0O',wЎ|M>N|9xLagK>|G rpZ38sD>ٳC|qGhkz$m@jhd2/T|5-?u݄|4}Qw|$aN#0۵1Ljn TtRo ɐgO??Ǝ@aO>7Y~}`9~[aR1 {(d@"LATJϓLxAk?4f>ېI'0O[Wz? +ڕȀ@:<6叓C&}-ڞ?7 l_ d~㼇:Ȩ7z=V曣|ߢݣO>u a(f8; ˀ5ۚ-^3C>7ZٚJk|L63rz2W_0ZB"G#_|Ay?tdEDDwRN 84|m- 1`sӟly^~""}"mͧ 4I`Q_SKG τg""N/π'=%־nos|s7Ls= fgӑ;2ۍajLu,._B{a1892hɠ%2 2 2 $K÷gӓ|eA>7&I s=:;i="u 8穷he{>2 G?FSJ">4zL{'՛7[q_ꄇzh]F>򓟄Ѕ3d+S2ٟHJY2` 2` 㶆j/?~ |3`KK;a}wK ؚ5VxG` Oqm3"er lX!H{:[RaD555T;ϹϿ2CЖ$ g`fc}4V-{har3ŹG?Q*ٴ5`;e𧚬J}pDDRECڷJez /mZŭz2!No؛z` ڌ%W_Mcom~w {G'Lu*ڈ@II aͿIxxS__~C7SMV>2؋ rMMoS!fJ*:I/a*PeSU7PWݻ䱄>k }33ЗL_ZZJe :C|{b;\%y!twe#I!X a 2yQ5~YOVɌP ܕ9 Ds;,Xw wKV.Yύܜ].e2J+)Tg2y|`u RECTށa~Ly3 Sim7+Po`f*:8 ιHo> l{]F\'W֏'_6}vڋ,SK<0}}z> qVħd.YmOt&㐿Ǯȓ;[BtAe:h8HO!LZv?h~0C+?VDThx?riɤ»hٯmSD\Ix~<+.oPkW/T6R!O't&N5^9Q{pUtRNy'w=8:u΀` 2ܭ]DJ眣i:Jbi ^{ŵ|أBQ\ϓ>MbuэUz%;sl%´$6鰁ssj&c& ԡ} k* EY:kMħ{C|';h'79ж*/"ɖZkcmLmHr h C2|~y:9ȉWq eUf*`/04|=ʕoq+?,}GzܐzSU5(=U^?YnKA@WY\c.*'Ygߧ^?#M#"N۲egx?/!.@|0?р{=41?:΀sZι\{K#6|kmOhXx{;* s^yNBжt,_@|xxaIo93leY'PNh'/->\]VBq{UMwP}s9 *юS[g7t:'I&KHny 箬 Oh][aBCY7ZLgΆ5H9;(+5o4i&}_IΝJ3g_}V`_ lzނ_i?z-裏}x???_YآxclKI~6®uv-\$SG9gu黏\azEcbk,6ڶ/f{w7?2μ*No͝y] mh~!W_}V/ZD_p 7k/sʏx͟' [nUf|ޖ<`@}/q΀oD-n:Z;;\aҏa_4[Z`H3ݖ NL9tLƒRuRg8섀Y5v$vxM> Mnz'c~`3}b<c4Dy 6lʤ ІYNwrg= p+4;߈o@̀v /B9㱹?EYg ={z{Eۋ5~>|0'9'it31,'Yqd@e3 8%CcٛnjGCmfW xyM|:K%k.p|~-2X[yG|iX X; ME==dZE gxj7ї;g{hO0ɛqǒGEi@σ_u賖mZ׈ <` g;޾gyloyst=&8Թ ?gT?Q7gڕ0~z1{cCz\/fԧ9=_6w4/Ys.ƞ!"8hN{w>3x%1L<`͜ɏLl7@^Xe<6c&~vTFҎ8"jq'L/|_2(R.DCǒZ~?}N|g3LHgY3g6fԸ%.ʆm)l SO nZ;)3啁)3;zxهkS 9>-A9ޙ&Kۉ tǽ֥d3* =ҞI=f^y\lH#TpAnҗ# ii+ݳ;DUL-ض %q$Sʔot4/= yNGAepH ~C˽-Hֆc4u!uc]9 ehL'Z,\D ȖR&sJ-qu/Td#Ʊ7 K I_ ߫cL7D.1pm{-ORa3'ˤn%'tPާ& W;^H<Z>7,[1we '{$qYnIo1M5d${#ũ |LSq&xi>&B+N[S߬{&ͻs{;q:RgwH_k1KFJ3.$K0 K*4ǽ.qg ~ҭ:.A:̧_@4ON'ǼH~Tv'IR"yl֎&FMAY ؒlyM OI?!&"-OEb~)B9X# jhh+yyYszF4ymKXHxGvɼYɂe7YÏ_{p*;)oz~l^j@zOORK_Ke?x[}?B:zvX&rh"ǖ p^mTu)NE;Ȗ'Ze;8 TT>DuCԍI<)//2 2 22eHOEHSg7<']?\1B'+`yV^M\|9 䇩}ŏ>%=M;hj5i H3DpnĶmPyCtҌSiҥ寧,T /B~}~F$/d 0L;ԑ ^݂^Ybcw/R<4T}/ %WPj *jQc _4|4 i_%񔙧 O9J9BM=qb_iiEJ-KBbd1 3N=CE:7 Udu4y ""- M8!Hˤo| eC,""i/f71 f1ٚ<_dPd`e Oq7w4 DD&[_|3ȏI__\""%Zo Z T5PI{H{ /!i>=IDAT$2 2 22 //= :hGkGCT||||4||iѧf"Zd ~?AwbW"Yd Le01%Sxc^TaŊ!V  @_ 7,y|'^!gC#΄T1LȆ%Δ4gSu #2l4we8-P-%y0Y9W=s4,K9ɪK欤 ֥W_O^npJIr1!>Ju |(_peH8BM=TM뻨=H.y,M!H賎1Ѷ~c~<9.D;p|>Te`U4/,UѼU  /LG= Pk6:\VAEEWHQffm߾rsŗ^V2813NkϻTv*i`?ݽєh7yׇ~0C+?V0'eEcܤf0yC7<&M,k$<1H:|j]9e30mWD_-v{#if]KwP; +|=609(Q]˱;i.?;28;+DFnwJt{OUDo8ȦJ1* ~ϐsL5`;zeX4fϡNڴ7T@_l?HdQE]3].k _3۵:zc[ Bi` 8w#J[:\y,&v-:{N^LrfYV2l.72ޑ'XOl~/5ѴYW ɢ?I3fKlڸ }>TVH?yѤ [T-7-Atgqo&"Ncא;L|=̀o}g _YK? > ـhj/ϷfчҺ I?ruڇo3;hYtﲞrviϵTz;0  #-j7syit_656y0MlwN%^a?aA{Gn_ຏO^)~TCHd L¨ci/;ߧ)63Y-{h=t3|p$y@-^Qͯ}jl;[&/k"""i* Ԝvڋ^4|o .b{ Py+űKGOӎ.Wjj\..)3@߷~ހ8yNYC7uQQm'Ԇly-o5DMN۳xOu!vdR?n rXo|3 G;L^r9RuU2 P]}##O G@}y{7SnAn"ɏ|qBΏ$Wܓh(>>xy^/5JQm:cУ+#tn_hQ̒91ߘ0~EsڻHfnc~A쨱d9 CR:D Uu ԫHv`_M {OK_o 7,2CĹPDHudO q{TvpF׸Ex#?Ug/9KG7ZcCs|xh3dTCgTTxG Tn >4;{7,c*7Lu k kK^c>iqOTF=Wۭ-؍DP1'Bޣi~^X7wPkk57PIISnn>eeОi붝G/"k%cLmyor&=FWT8F,pˠgffsJj)qòyĞ|kS:ŠwdS༲yfZ^Id]O=|yLgMi }KK+55PCCH{VvefҖ;Y4Aߒ<צm6xbhsM B"K;)kMZY˲1h&#KvM#NnfkTa&vsP{lu2Ԝք)])u2:8ZY&LSp3;/ƘjXqӞ[mp1{=:9'ȼ\k|3S~[^  :::B<#DӀ?+Զ 器{p ^-/YkcRhb"".آ]mLj613hҥ>d^oDRbSTTD[lիWӅ\A}Ccj=SN1ZSf.R?XEDDƀ~fkB!<9yl;\|9GCQ8bHS` >Z1f24XA9yJ- R1H'C_qEQucm>PL[,k/vlmhNo%O~Ey%4'MЦ_v- +s4AaqsRʆgH[/i 3/nڸ;B P?$s|O8?K?<ϼN>Li5m^}w=SPJMX@%9L+8໥ LoV߁)r,$&$'_x4Ms7'R~ ɗ"|y ,fit|0OF#E?tI)BW}#_pI[?0[lMIkoXx'6gZ;q~*ۋNWގgNezi+?)P!`u;xZmg`c=نBzc hЪ@GXT%vi`7uR˚%ƄÉ_Io~x3&G.ⳝ9NXxbS_t1kߛbļ,FdK:Nv:t|n>>o]kK?SV>~;`}G Gx&7^WjYx@ :6YO2cBKB@Qɥ`thl wg.ıai#LspMrR<_Jg;yf$ &ي93VGDľ=1D/GZy=_3ɛA@kD vU >$UK(~~輝VH$[|ɂG83ecI%N]G+MN^# S〿/  4xFᴧ~ =_^_'KoRh>';uyìl&}''9jvj3vCH17C0 *Op%A.Բv=??YÏ0#N^fu F$?%#mo?:7|O7*[A_:1o-oK)R _xc=w鷠9b>LKꠕz SԤ-&- @Ϥ>|s*&}U;my5؎?}:+O-w0,C̒n}lȶ;/qښMflK{/}& _hݙgMUuMǛu/u)LLd m8MTx?ozijoGـ;LZ|jhIW>j郯_>Ek?M~ j'7:X &SsEDDd@mh3 }&uSg;1[ ҆]E0'K?Jg7%/"""i*ݽXK9L;s+9'yX'1N TTTD[lիWӬ.B>ښULyUUfm[3NxӴ'Ȁ!=nR[=OOIK.MX} M#6iЍw,HS{GTJ=tvx NJI gϹZ:Fh^ښMvӖ R";];DD_8uQQ[Q 3OW]N4/$Bylh|_g͘B+E-4{9JiW:4@Pmv"""i*>SicG蔙  pW1Қ?;8r+?ٝtu5'(1FGi B:zvtDx7Jm BBaḖ|^M<4|9WRkQ[pvm86yZ__d@d@d Me`c#T16Nc;tFkn=;k  Cw=0ןgw%5w9DvwkGi]刖#2 22|^sv[}t>xGÿt+(}GGiT^{^DDL;o\o|yôo_W7@&߃4֣HCؒ;J7/AO=t.&}M]y:_=^o'xl~cQ g-D_+G;ӵ{ ȉ h?LbWv|MMBr[ϘUDo𕆿@n>B/^}|>C1ݛ0:yp~>gcTuy[^}sAw{q%i:my`}8o-kAw[B|܈^Ws^;Ghoaa^-O?;@ʀ~ ߀[cKc=\|"qϿںQS8F%Gw>(/]v.Ve ?಼ .1ʩ#[9JycԂ`<-O//'22 'Y)G(pe)fZG2إ`'m/m2 ڀ% { b eN:TC}Ȑ4B,{JBjiHtEڇU Qe I,Q:%0 % jNsHӃX8Co-0ä/q/2 22d D**kdͫGz\d˓ {ߣ;xsxdіpګ}% G<\4|EDDT#=nYsn쥢 v!<4OJ'q)~"iﴳΥvtg}_Jr*5Hw>t4{6/20.= QI :)˿OO)@Ԏ(m]D3ϘEՁfz}6d [^;<$//2 2 22{jUJhO^bдfo%Iֆ(@# ۽Uhɒ%t E$]Ƅױ.ھ-xk7]ħt/ EbM0ִсbRdUͧ2!?w Ҭi˖iw5Ч;2i;Ϥg^f571R^G[, _4};^.;黥BQc>FCγIg Z(//vѻ?q:e|[Y` AZ=qD: u4umykMv59o_k6+ׅ!i qr*(NҥG䟏"!n7#yN3URA]b澥Ec% ~_x ^ǿh_^Mr|-c !2ڼi>+ /.4hQ ꦒn*mvDWz'b5|QL3:~[MN{{+-\Eg=S㉸ /2F\~OG~@ξQz'mk߁|[ʄױ.Zk-_o˸o`r)2jU'K﨟^r9!!cM(u CHok'/~ 筝Wy5wG‚Et<˽m-SN ?j4%WƵ]LcG(8x,:ng\nXz/,ǟ4ɘCOg'nq}<5C3@vc'm:Ms;9~f~ym~rMO14e'|̚Y|ʖw 4'wV=I3#<+o(@~OCGU.xLc TܱLkz x+ot&9~m"_w`L:XIhK^WYZ9fɺEϛxyk/x8yZu]dy\5ٞJ~_`Ŭ[2R 5nI}/a?eɾ /ALS 14!<; ~Ƥ)c :XX_?8`n믷MxϛH_^' hq# sth?@}~ K?c mmmXcz ׯ5q&,Zx`-ۯi\+Rļ߁eΊy5&>xjs'm<71|uSjy˛CI,k5v9ڵm^;ux=Οq~.si= ʬ[;S TW'x+O?>̻->BI~U(lj ۱>ـ_^^N5fsُl'Ʃ^k~ga{?ߩ>yg#O td {8 -Hv_o|՟~obħᵍ:O$xʧ(d6y@ušȵ8`m?べ鷝>V+ woAa4޶awP 9،sCrrl/++xM 58o֭MB=VߏAxSꓠwgvSfMp㳍\G6qTzoeiYt9\cy&)k#[}Lpxfy5e8yc3|@/=DY흄;s'3X0Eq]_ui X|?0́ώkƄ͘d9ݛneTV*C^0.N Cb~qq1 ƃhAHoi/a"v52I}/G;1'0dqhڬ:ϛ~5dxw7O&oTSʃ磯ZB7/.IJNq'/?aOBȓVo6?f~L/MbkEc>Zmyʳ_l I(^O%P+ue~rwUdnE<yk^'gM?kKvmߤeS5| 97O/^T,\(y|c1#%1^'_Mח=)];*G |48j]8rZ5oZp|μUT: i WѼB5/ 6%(PSSJ7iύ,wZ$*[޳>K?<腢|Y.Mߎ.~a;].9i #*zк p1Ѐt/_?u`4|gyFil7ߎ*fy^λhut*Pt<`1!5(?،S&oV7`\OSc4R"|(>C9: CfoŤqdj%EDD+q~ z~b; *Ot |G 5f҇{~s|apw9H _`=w|}_F|vT"" Q. 28$(r.2X|]ӏi`WZ5/_ɷ-8'iOO@zȀCf}>6<e //Sz N";;q[^t| mOQ,))m۶ѫJ]|9 [)O>P?uuӺ?%?zqp9yb~ Ȃcb[-yQZ#Qr5K2&A~?7‘5~\;ߙUh|g~^Q~G&wSu=4q ދ~fu1`)o? 7No3^rx78. 1&sj#v3?S{zzߕ8sww7ud;:S} ȑ#444*--۷k~@~=hUGnhc;L|qzX G3 N!^O=MݭAhPG΁4 1{qll{ oߙlEF^u}z);BQ x7U&꧞݂Y;Ssvl9^.C ҅vο|m/uo](K;6؊Pv޵:(׉%ީh?jn?'Ȩcx D;QyuANC(G'HuЈ*G=C=}M烥u E2~O9S 7v2td |^yڙ裏N g5k|ɊfΜI_|1-\~_@q,'@3755QYYٳ?ӏ~#*.*6hX)PN:k ߍ#gh@%pJ]p=`2! c΁ݤ-%4\=U2 )WEe8j˫z+nV+k:Ե*_R]ͭ T[HuT[jewNvgMT:jQ2+[^J5jp]Mcꠚn RM մS GjU>\zr9UTz6T^VTڨ߫Q:..LT*Qne^=uTYH TTK)/u^U:u܎ܞx"!P׍ ?zpSDcjRm 1ШڕFqԮQ+iQkvMo0@A' U©%\~Z)uK#2ԣF @1Ff>s`{ gK:T:r d@N%0TU`Pe TǓ|Ywuva=PB(vO!foRLp &|OnccM1sR8_o Z5`UУMJp?SYB5 fhw)}`Ax^5@WO.x"ԥSTcrT?,*j9U-Pe<U OQSA*->q Tmz@ )ǤFMyfLS̀̃>>(y`<@Vg~[M=|v`3@{Qvvv @gZ{ O6oN0dlEeA,Sj08 E^t*@51CV 0 l3@QZx^+Վ @-p QF9[ 3` u{A{ 5˅& 5ya:huYkTtu0fQE82؃㿽~db2RwɃfW m MM&hJQ ,5az5;f;S>3S @ϫ`j^As5X}P|PU̪TID=@< >`_*`Y@[UbocR*v0!˘1D>aH5IG!͢G ka?Nзk^4SPY8i x 7Qj:Y|rzS𛛛4:< k|'H; `?X;ooYi"pQO3c.vMo^~9zӫJYyjmZ}.Dxc `P2 (#[R`!P>vX#Yh6KD}(`I>̀gh)@>y8uv'}w>`5;{K/moAݎ[q;=A &5`LJÇ68@61bQlʦutgMϫ֠~ JD jL?[xB05|oyLH d]"0hh=uCo~jUUUQnn.} /Ѝ7H̞C>4ɢ uvS_;Gn|Wک Gs|l5u|\g>8`И߇}p>8l~6?|ءਦz{Y=8&ԉ6UG~/U_ԿZ| ~|oƋ^ԥ3^/ޭ ^8pI5x~/܋{V;ҋ{Qu_=,<[Q' G. G>׈s~ >}{I;^o~3\RC> O= 1$q οx4q<L^дiI3h3iƌS5y:844q szQ>N\/ou~磪^z7P>x;|=IS.{p!|ʬkkm>>9Ozyk Ǵw^ڰa/+G'8Z~OG Ѳeвe-SNMpo61qƩ:T ZۜUg~7{n?ϾƅƳ]?BEj_?'D/3Ywϸk 3gff.ແ:D| ]뷬 &Qx _|Ƙ8__qIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/figures/view-menu.png0000644000000000000000000004117314023111777020461 0ustar00rootrootPNG  IHDR=o8abKGD pHYs+tIME&Ͼ-f IDATx{|}%9rPHB9T@*R n_] Fu]LTkI,}]ݬO SWw3Vzഁ jb+'n;O:,ɲ-ے}^~%}[>ʁO&1қc1.EQSIh?' wgo,gy̙g%G!6D,ObWgX1͎\bU9AN"nbz ^$V1&cE9%WQ%~+:J^A(7vg,gkVPW&>BN몪v.AĦ U{In *X~%O+%ArѼ޽[srs=7rM7K,zc c]ǸKr˜appGy7$=C#s/z޽^.y׻8s~jsX5q7ko#_˳nP߭lÉ^?~~'n ζ~Cv:eoJK:I֋nDyB3)k|Cg7.1yfr*s?tttr٭(o$xA+|چN7Gg~r͟Uo'wVmDRgcJlm|i8Nb6MQ@(;z?q mK]X:?zݤ'9w!vu];[>i kZtv]/ugUߘjK|cM#Wٸ֏&T\AֹzQAJ7maɿ>Q z>vυ_ߦSPt M&.ǟqۇP6M\ATؼ95y0z#?Ϛ<._]d]ombA7DX~ywohr(5Siimu-)Sk D}#e˦K/+۞ş~H}w;:t;m}*Fby#W&o} `Fz=lڬ ͉4GLeu[mqo['{yŇY?1<"ywj\i~?JM'CyEf9&_}a ;V4IBc/:dΧ~-/吗raadD!~zͅg$J:moz~_+V9+VIS'y'?m7kCA( ů=]<8uĜ\vjXm k{l s*z=/ ¬+1sEq ({e]ZCYkE s)xلB+ lX0ahh(c|5J  ӧOc̆G^G=JabD"ҭҒ śoYޑގ;% T+|q?ʊ%ϱb񳌞~EZRطo_yGz gϞ%Eb(JtOdl # e%i'4]C!VlngJc}F#F|_:::x嗁DOe퍔~uݠ#6wp;zF wpoRm<.FXF#Ƥh 򫨪J[t26SX(Zޢ0 abEK٫pX:iN4z0|A\5tZJOOml߲ l[KUC8d׶Gfrx,~z0;-3"|XEOQoEh$D,U鍍ƳfMvLJO E%m7m雈nl6[~Sy sbI>a Hn i2^ErŔ-We.L?%ytw߆Uֆu²POʼnZFx ?Mhv]@wAgD1xi-OYb,e) +/aX3|Y£Gy%+MDeOL6%D; nķ]ZvwbC^+hHae6RڞS_vM~Zx'fӜf:b/fvƏ7o?DK<F#]3 h4b8%;X<1mL-'hn7>vt㟨m]6,F.OV=9lL&z1o~7lS#H;FZ}寳NOLl=y0Z85۵qe1hp]܂ذ5nvjv+{~\F`^/]6h*=3d@ʷ{ޞZD4{in֭><\||bŹKxlPhﳸ6ͼXZ*ƶ+^G\LՄf- evi={ V^wM7qM7FDόQK{ώuu`ߩTD#-hXkU0be>}Yn]}H%qjjľpx72mjSK>?fmSQ*#Bi]uUyUUU1^b.Y𘙈&+BN />/)Y9YڵkEAX8t:=AI '09q℈  -tFADo"2nhE,)B'"z <"&"zY'M2@]YW \y&^̹Zн+fjIGx8w{)~[A4A7nhfc&l@_h-W&&"zœ*VED3&"zvC'io`wg5DnS\ac*ЊXN1`#bܯ ¦f MvC{ex+a"z ,,DAAAAAAAegh#8{mFO1zFeJxl03rUju;vI P٢/reI*\ݹEKPY6x57f /zWr翿L_|EX"z A-^Y-[̜>m- N7E#REˍ w^D,VCϠh8\N2nhj0t;tF)O>bLLH?ÕEgW[3t{՜ݶ2Nˬ P  c )UU5հEoE\֭} ~>iع\\qмvU_nٝ398lYy,b#\޽%Z?${q;"rEoe-gN~O} Ξ}^տ7d*FNOW -G@,| M]ǖB>։US֬&ּn:}ڇD W b#԰d?|6mč7H}}=,-͑ZЊ ;S֬LmacG2C?YDLDod$:g̙3<< p1\it-74̾NDf}4,JO>2L5.|=+32ZT(letx ?W> xضC{O+su`jBmI>avC }eEi@! 2HW dx$Ã4?Izy!陛K[T6gdd2DoKyY+jYȊM7VY+kYj\+*BGzn@ZJ +' `]+'Dz "z "z "z "z ea!^UU0ӲqF a^"BQ ADOADOADOrA"=AOЍͦ:Jc"z9:0?|r, H7bUEMy+ey(tw˟nmKvTPtcKEKhtґU2z8ֆؐkkSlY+L~8l i*q;GAћigf)~ަDTӱM/' BA7۝Tt1ҏɈLbn⮭]4L-_Dlvm]Üu""zCC=uyؑ B#njl o-%=YڰAK2ұ8˚/ݢꯙFS~/TDz 7 `u=c++m6ѥ:6kTu7~/(4DDf%: ܄-}Nv'禺;ٛtp7WC>2H縆 VƦ#`w"[0bQ'A> B t?6,Fcz݃JE)~6v|;Lgj9`!mր߃;ƔY)nv#KyaX;s?3E~ цߓ?ݢQmC7i7b+亖+Yy&SŐQ^K xTӅ`>Qf)eV?_枿~ׄi/2ͣWZЍm;%0rUuE BoVzz$PjdA$қ+0PR_BF4A8EtlQ]5B8x [. PfcA=cԪj=,B*Y*^2=sj*AfHg AAAA(/2TU 󘚚=-7 H(UVAHOAX8"h Dz3!4@QB 3a.:K(psMX5BiƓ8c_+'fO|%n>'Mkyt*BhL[0zϗWLhHD=&L=cTcƹۛs WRb(+.%۲+A^z%7 rQ(h4bU?9 >/~[t$TÚ-vВmmA#"yxN]= )CTDZ Wzje?CɓԾ7>!|k wfZiK!5ojl&;[Mㆆ8-s,t6ӺAAiҴ8x&!yڡq~򚘃l1u7ӜNc{9w jWPXl6䧽;tX 05߅FG#q(mo}?WK«ob$aA(oMXQd sjjj`Ϟ= ɣ# 2:2J4?px 8=Al^N 1222np<~2EJ Oѫh@!TN0)PwNXjzi"p\VLEo1LIxijU]n,/BN Wp 33R ,^aq 2HJk P5~tGD3~z꧄cWy8}l1^z*ʦE&޻i~p3:fpl \ WWnu|nX_~dBBUU5-%IY>f bܹ]\»^3QOCC}4'/Dz"{z/1bb!=(ϟ}?TӄE0m[F 7ky_U\(Q~r';n]uk 𲱲NKš[RH[V]yT骸uխЯkZ{cb47=X],F{xT+Jyqvڍ;hpe^OfrC By EC9|( Mtn#MYAmE^4AL'aNCUA(H`8  TkA"=A=AR2ھ}X4H8w^ՋI?+Kz ,p앻9X^c jY5.Xu1j(X@Vڬ9"@0i:XRNKZiw2ۋΤq'3SkOWq&ד9mRQ6qZm{\h ,( q+^ I:xkxrqlmKPSW<sxNh$hhqKzYh#ŅŎFN4hw4AqK߹pǞ<9][ޟ?U"QU]i6թmXnl9@KKʙJn Ǟ/qOR *z7a|5oش`z겜2m!-WFs >1U\stѕ~FKp[~.Z'`j9`!}z.&- -lbt7y"=w \J ɺ+-@ Hg?JE_dMRU]T~+ŗ\9Em74AX8sC;]sz@/.~Um-nw  Y.^ADA[AbF~FϿs2ƚ:=S\ViMA Si/2^;,jIWRuSc?O$F %z\{5+|r0rB%0YKZV=-D?1(K,fE2 N_KȂ 7e.\Y(5eOcJsC1IQ/2(Ed }`' 3?H8ᜍ+9TJPδVzz# BGz9 O~#g\vmܱEqёQ"0t^hrC iʼ86Oh]ϲ͊t?圖mjV*ҋẖ? ct:6TsW=TdE1THBSb>74;tt%yuy&~aqbNwhqd;rO3ړ7&"ze^cѢj/YL8v3)jF7phi!ځP:q?r^ vw7^*q=Ys%Bi/zӧtW/3w7s55hI tܮL4748Qw? QDI?}iVyAGHfZF|EXڞ;.&u4K;8G׻< <74z. B0 mpq7hy9KjU~r:h11^{;ܸq fv?TDHh,rY j\ 'ӥɀٷ(p`[!$>'Mɧqn;ͩ'K?@\cc ~a9\m+[.204ׇ&P՜+Mzh:KUv<tВֶpE{n]= G[+mm2WɢrR Fx/'9}΀^`\x![ ΫL&;k]܂0ꨗde^RmУG{}y0x8į_>Ng`9V&JT$i fݓU|8ēڏ!@ad`y`7>yVѢWa -W-C8#SE}BaU2`m b-Ɯ/ $<pZ,t6ӺA:0ٛ>ݷ,N̞"G %2qBc__w ~w羓Qc((\m/*A6_/ <;={0<<\?C{i^}{UUz0AN UGS1 ZOUWT 붲d"iQA*[ֽc r,rkXDuh Ep5Ҁ LaEz"z ,(DAAAAAAs{z%RJy qo[RMq'*k7 n[+V) R͂!Y}ny&MYhIMˡk8aٯY@3ғasPd9C6P9nhiq't6\yeM3_R7mv'BE >`+ ړ~{8w{!5B"9oo]J&{BKV*_mO.*z.l"zдdK滆ωNuKJĽcjlo$FoM=O37gIGFۏOK6|sztc]Ο .<-ŏ/́]%rӈWD^wB㲖X+ 5Vi^Mjn[Oehd=O ۣqLCҔ%CXEEZwBXt$TL>ʚuPZBi'FW5w01MxXfv+7!TJ.ϝͺW /^iCԓT.l%MK?sI6"MǵVSP*%-t0C\:\,+CXVVd=il"ܘ [qiɤ `e ̇ס<]9s\ <=3;1ofɘt38xڬ¬y8-9z&,fjl&;T :)kgokO™/-$HZq-M'YRA  a!'     œ# H' '0?0,«*=@1555"zZ6n(B$[8*+"=aA!'  }tnpW5njVS+==S4>Ή֞D~ k[Sl[,tO/7(NCFÄ"Q(pgGYZX*\ ;XOČ w0}ۑ'՜o{^v۲YJ/a.%Np۰jZڰfFْۚzZik6u| G:H^ASPaHMD1ɧ 9mJD_pX=t-o|oOg֞t1M| sytT/޶zmkAvUU%+mхs0 }~z|^ O)ϱe6vaKs5eqaODޮ]R:H]yt'kCK7ϊIil3.lA7w0!~~\ TA qCmhݤЁy)LN-ml'߷r8e;1Z^{}kB?'.l-ഐ>ODfPfqCCE "z 'ǟ,UUUuVZЬ]O!u[A$қ#!¬cWEIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258894.0 tortoisehg-6.9/doc/source/figures/visual-diff.jpg0000644000000000000000000011504711534217016020751 0ustar00rootrootJFIFC     C   " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?K~y h!jaAsOP2"nH\1Q1k~Z*fһ? *hl='> [h6^ `B}aAnRTcNnZQVqSQvwp3²ؗ_3$d];W'7Gb/( v+:DӃ#ecsQOGR4.P=Ubb uH0>4t,~ 3MVǹG+87#+/tȑ#F g_|E^]cGtm5may^DynspQo!MjD%m}iVk6ZWlZɓQnn< :yp:E4vm/}+eozÅ/޽s_ pS_975Z|=kjv:XKqxݪZ,qY\qGK{_Ǐ+NGM&խ%~d"`;=7i-OW_U-o'goWD3 g6n'y}:_Zh2>'/R{:FyZxo7G3A,R;_ص&9W $%W1ck ")MUdR>_˛_?-M}7C 3c#g>vV? xOn+WŏxSמ$.>NX~Q o O ?5\}8:EvV=렺KV{ 2!Xeu`2 Rj6z(uX.' >B-y602-R5+r}w<(/wWd ?i?|Bux< 61Ck;>O+V . m!b-ݲ# V?u j7 :uNJ8\,bf İ@AMH7kvmh'ɝ,</giSNx!G^Ϸpw;xڞ߇ƙ6:0}eeħO6@B;-bI0e0Y[IGq/D31!5R fJ.ҷ9ssjݎx$tTk~zWƕh 5HtMcYt5mU|cwye-;-$hv#o%w! c2s\Y6z}%r+edRo1FZ0qW~彽9tzi^okjMx4̋O'f^/87Uxoy)i/V6Ѥ21\ T'k5$t-i]6I=LFk>jx5Fv?fKp ׀WRQMu9KI-XN} ojLC{8*i>k?~oG /5WWᇀd;gƪśyNvWl"=s >vSᇁ>vWY=FHyw9d=gƩs?0*@rGO?.*vWWS 9#9WW=gƫ_ ouo [OoZ$N2 A"HG\oYg#+p;_UXXF*it5۩~/\EW¤X`eUo|g\K O"[ҰOxVxC:j7~TIY {`?f d}W$)eV`0'zR2}?/32利8ʒoM+M> yWTGlyyWO:hPhZ Fkkv&Evlu$4=k>Go<#B6Ёb}PKi@%~Iac <2q;ŘjYu%<;WWz+l/ ]M,gmꎃ~gjOo% :Dr$r(#7IO 9{:i~MOWZ0૭ Z34Xmqzws6TzV 'pF?]sZ쓮jo`骊09f.Z&h՟a**65]x_/qh:e^Y,eWݻq͂Hӊr༆PhY{ˋry3I)"e#^c}h|/-i?u|/-kso[Gwri+E{nXf-r XH rඝ hV`+ZiI1kmy~'I}십0+ /MvZEL~#mzUi${}p;z>!TNUmqeD^sle%vo|g&7Fuz7?UG xÜB$}˱^Sro}%YkJIQM&;u-dG2; )"j=LET" t">/bW>_W1 As#^JrĽAJ,ݭ͝wVW̆IcmJ0ʳ)$a{[O Z .5湷x^Wa>_vI{x!'x7  'ְe*U2>Űx;y.`k HgGds,`;1;5_ 1sxfV{-v:="4LHCC B ]|>+k 'Uk '*Sqj57ΫiOxO$2x!2brWO>8|DT@H^}n?m+Ja)k{NxC8rJ]&F6O(_ L~g"vEVv$0$h?Uv"M _c?n:xw7?\쯸G-OkUH~ Mfu5xw7?G#^1CsԭE?ɧhF,ֺ5+y=7첐{go_AAk?n:ְ"QIDFrp bp%M[TyY QՓ~ߡV,=+2?Y1k:᯴Lr(>(*ŝ'[Y#3"#,}GZM_@^:q7녷Ay3̱" d&w.p7L:֥XG=i_:Gm$ 3*;)E,-?R!eX|WJi,<~vΖCa İcTdφM=]f-\|/ۊYm s g?iZR}ة(u{{L|1E:֗ZZ;VJ%v$K"ل)>x7K"j{{eqgk-{|ch9[#8pgh`kaҼa=1lwg{t@uk>M)Ro.d[ȶBr9ڲ*$7?)Ƽ_<2"Ѵ9aFbu i^|,k6raf "׼Ugw7!Ϭ铛}EuƆ%Qf/%Y,cf$MӶ̾}[:|/fѵy䴎AsyY-|<"ʊX([i88 CK|&w=G jcP6?2,e0|ekil/=ڈ٬\k` !6TH\`Z~:)?\|6/xM_B l2D(r7#]Bḅ+e;K7}${iK@]bVъ 3O(\_g^>٣, Z{,3Mp!#. pYAs%sG\5>%l5X^<][y g- szaOR-曨x"s}mctTsm-9V~af6++ѻ=7/s~deY4:u r3•l08-im5VO ^g8RLƬK7?j bk+3xG‹y[DsF2p9cM[ 4{gPV&žM_N m c41u]H`T}l*zG_֝M|52ěn-bݧ%NY,HĪ`TY,[4}u/ qba&O-DdM`K;y'l?mm?Wcy6`[c8G7$ۖwxUFhtI(")GԬ7({? 5?F!do M([TdO\Zum F#k&u{e宩ovl1&aB79Qde٨x/ ]Nu m$p'WxJFI6{W[_{{;y[J;h_Fodž.P/N}>4jIk,<-Km]=)mke6]j c| G+2N;<'ß|S=CU񥾹xSH(toiZcO/IUmK*"rNr~ix^i6˧lĩjH7~ %߼8n˖~klɕOv}4MZ5_گڮ~DԡӮ%W7wvKl&feTR/ZxZKՙ'x4m!|qKv"iXY޹?fV!AgOwK./>;9`'hEe[6YFa?C+Wl|qψƏ>2o]Z-&uۘ=j%%BՇKO/č*MKCk ,w`)P}( rƸG!ljW\Ei|O;$ ݁i|M}I֬^ Ӵ[ 3OF˶GTE;g[e_JN{-ڛFDV^-aαw:-6]_kIJЖqҦ/~-[RA9"sK;.Q0^Nhگ4?štBe8cIg4 QeCtZOzwg4˳ay q 58lK7kiKó͸%x_K~A+roo_]nx;mg7aֵ f+K ӴI(p`$~GW/~ ujTYmmOkEKhWm`s^˺dž?c>8)/kMn[{h<ݒEظeiSNosf RWm^դk VEY1a2vѯ*tr9H'ew[i^.m~=c]lN}Kk-,vT Fg2.6u4O:$ 晥D<}Ɩ"g{wQw2s#|(oxON gzG5}3wk6tE> y49LoZɵ}b+{VX(&w8Ԁ8\`ap-y_{?~믒*_x/< M;\.gtkЛ%yS(t |L>j*[Yͨ6.8kIdR̃O.j)>0n\xsXSiz?iYlc5ԣy7ˮ F?g-_HmK?t Dм=cxt1*y8"80gV\짧5_wwn-+}']-]e{iנ[[طu?Xlw.dh |˞k+xBt Muss=Gyum{B%2$m b S%DzkOTּ;MkD$^*8do&Ḭd\z7뚃]XM<3:k6-ۺz*QV/>.Љ%DW?Ss.kŵNN$wt_B4#&%1 =W4c#s7+w>V|CRh/?>.Љ%DW?FSY)#F{W0:eP瑊St)isjWR[>eq;<aTrXQS2:-|ɯ7y!YHGދDW?l"x+\ǀ5êjVvwEcq,uI,M>ۇ;>hn%!?,NUݛsO8mZ_q쯯Nۿ>.Љ%DW?RBԧN8Xlo$`[ʂA8S៉.Љ%DW?ڮs47zV{zڹsb95cI`KWr{]McF6稥~j?8V?>.Љ%DW?X.c:]4[[^^ަ_>lݴNe wO(B'yȕſxdJM%տkw1ci9uYQwMˊsHۚ=# "Q wO+hSrOٙ_qDW?l"x+^sEnUlol"x+G6G<D97*YAf}z76G<D# "WG, [3>=# "Q wO+hMʿ_u wO(B'yȕ4Q_/?ϺFB'yȔd|]_?J(Srfg}ǣd|]_?J?>.Љ%yW3ѿ>.Љ%DW??ܫeٙ_qDW?l"x+^sEnUlol"x+G6G<D97*YAf}z76G<D# "WG, [3>=# "Q wO+hMʿ_u wO(B'yȕ4Q_/?ϺFB'yȔd|]_?J(Srfg}_/uXx@Ƈi#^qwq,D ƪW%O ŗ߱`945~?i-d|T/ثR?R1_f:Y~o<5.6OgdX8+ls*Yɏh;/ؿwVig(¹ M+>vnxH|ˋC0cie;T1dX\҅jh0Ub)Qlŋ⥔Y;[idϴ{aÓᙽIHW'~]mlĨ` wZ~.~xa<+j|eݻlhvۭ})M²31[bcnPIp C@ffiПu}gT˳r輿޷[oX).MBQ= 1EI޸ן^6 _-;Qt^9l[b 'GI`r"]-a7gjonۏ"^aԱ ׺ivvBuAg̺nW|wiC `E%i f3|pDx@^\i˧Y۶l8L2cHKfoi0~WɿvϵmۺU÷v}vݷAw3|LOᆻݞM}nҮ7d}e]ӽWѭ,#d˥^+lwō7KY,+t{FHVr˂# 7qr 子յ;]B<ۏ.DZ1 cp>n7o~k+ڏ;gڶ*ۻn>onۏ &[}]^n&y>շnWq}vyw"Qc^:kW߮e,&t^=[Kix&c^fF5DY0%Bā*yG|iV -mŮ㷱a>3f]j G>BQL2M2S݅mcw3|LOᆻݞM}nҮ7 ٛe| 5ߕoG[vqݷmݷmǐdV)ZzxS!IyZJK~|)_xJJx5iXtghZ"E6Dalf|>fm/ wyonۏ#saP-|CSַ5 +foi0~WɿvϵmۺU÷v}vݷAw3|LOᆻݞM}nҮ7:,"safaEz}2>_vy7wJxvۏ۶.foi0~WɿvϵmۺU÷v}vݷAe_<Šٛe| 5ߕoG[vqݷmݷmǐ]-a7gjonۏ &[}]^n&y>շnWq}vyŕDC 3 +foi0~WɿvϵmۺU÷v}vݷAw3|LOᆻݞM}nҮ7*g>W-a7gjշnWq}vy2>_vy7wJxvۏ۶?,"YgQ^w3|LOᆻݞM}nҮ7 ٛe| 5ߕoG[vqݷmݷmǐYWD??0>fm/ wyonۏ XafaEz}2>_vy7wJxvۏ۶.foi0~WɿvϵmۺU÷v}vݷAe_<Šٛe| 5ߕoG[vqݷmݷmǐ]-a7gjonۏ &[}]^n&y>շnWq}vyŕDC 3 +foi0~WɿvϵmۺU÷v}vݷAw3|LOᆻݞM}nҮ7*g>W-a7gjշnWq}vy2>_vy7wJxvۏ۶?,"Yg?i-3?JIctgo,Y!57qqV,2r0pDa-IIX KTB\nk+?L?eZ6re{I?!8Ư/eE}7\DF؀ZOƯ/UbcVgSlt h]7|C]F|6/-giD5Mڬӂ1kK//xx^Wm.a,y\]vd;I#'>r3@$,m!>!]GE$KSp9P\NOVK{[Vڳ27W>`(`2k|7_~;zZ*Y7ɷ3}}/^fG%w|7 xcIk:\0Ehmkq# ӓW7 jK:N ʨDQ022"3Esg]#㟎/w];M<9i:.na6Műv:%āN<w6He4Wh{|E'IgPƭzl.ɼQH=K3F#}B29/J*OM-uNv5z|qquS@8SZk[9IG,IJAz1 ƍPCyk-cKin^Aclk#$cqR|Q>"Ѵ뛛 X3[~",kqkgY%+!fGu~dyuu;MIԼ1e%u\^C}{ud"$qH(&N[?r=%:_5˯Kӵh? '5xW xQ#[b)DlBϰd~-^|8{m2 W/QDˬqXmIcl C+4o,n|D/m.4RϊE|V  >PZu|Eej~Դ_#m椯$e#,wh*c/%读6t]-l:_o\-/?q]}M`kcK7I9*/x^ӗ7b82HrcR{ޗ3Lޑx ej-N{c?e,qʮ}+ ^n|/+]R&{ۍ6Kk3S&tv*) F\־_v?N;bqm;KWK_gO+gk^.)é[f^t|8{bU5 w]XpAd|n^7o 6}F^3]6W6ݥRT K尟j}7`2X=1[4jgS,i&W*TJے{_4\_&X)((((((((((((((((? kom:gUV?ƿIs7wT?.8 wZ6yyp?/,u־uim-CU_̸R"?K*1%Ooc_cw?;/_/_Ck*G7#-|eݻmgg&ݷv~qv>ߏ})k⋫e1\Bfb ^ Ġsg>|-t߈ ux;T,pM4B;Wj[N q/E?qy^ɴE\<9rvْ$d%}'{G%ˤ[_ѻw-^>_şcҮ?Wl߆۝3]onۏ#'W2x_ׇ-C6WxcPmFy0m|JMWgMG_TZj0ufV--o}2 ji +ϧ;gڶvxvۏ۶.e}'.7g>onۏ"OڞYBޏayA[=l5y$H ^____________________R2#J⯗xx/v;LK_Z|#b=VEqk_Z__B5Xˋ9--/IJ,/ȭ[>$篴}6+[nOw_]\,+(J3&0Z&n% 94nXmk~_VV},;mw[.o|CmM/[櫦I42jT*"2 }͠^U_#z hV-]ni~Krܶͱ\n+v[ne}'.7g>onۏ m/ ݞLp}nkgnmn<coQ{J>_UYԵ^чń mkoZh.շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_6W}f+}Z LT܀cd1硬?x_վ,Z:Yvzyw% Zؤ:}[-f/|4Oj#¶Ij5+ ]LBJ/W+hwo/_[u$vkӮ _ k5;ZW*7;6ɟ<%y;$ <\ok_jN5Y'ώ_(%ЇѫeQv\w?VwQx:<[Iw1< >m5{y|~EF5!ڿJKy|]gWV^5C$z[t`؈;8Wğ_Ÿ 7^4[=^g#@ xxÃ^{_#z hV-]ni~Krܶͱ\n+v[UYԵ^ч ?ڴ"S $Jl{Uo ~_ ]mcqx@Ӵm'TI5{HTF/ /$L+Ƈ#oUno -:eoksgt\CJĨnX`d=]42J\/5KO_3VWrIqmoڼR LQ TR˓2KM2of>.C}=5/x{O}EmnX"7B}ǹ'6vpj|^ίxg[N`ӯbHm%e$6a"` /Em%x~Q[o[[2rxˈ %rk֗>gkqxZF隫HX 9h}/]&mSV[O}?⯂o X@ ѭ8$7d!Xjdž"Sz6Eq5adF&68rk4U_ҬT6_\[mx芭`p1Ult;SNmuCΡ՚DfƝ2yVN#0Xde_D5erzw{9VuONf%sۏ.qpjq5խg߸,m)F54lcԭ$k{eL@ 9d|"QOmO\Ե-F?t/$%-"4MI6l+jHMC_=[J1{}I$߽* Jdm$)l*n+k_{&j(Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@5_g-|`c+WYpK_"|X`cPԛ%zw~oY?)WՒ}}wYkZqg%E8TcKyG1$B C ۟5ؿU|F9r~^jTso3 |tqwvmhvۭ~?mᯊ.Xs -zp7K͜b75~ 75lWmRvHY4 ]m8+ ƴgrqDž{&pUfJ2qȕ}$.oWFߌ{o~ߕgӇ[v\o<;wmmmq~2~WɟNvϵmۺqݷmݷmǑ{ž;߀-n|K /]ζjڬ%bC#pp$\Whk/'|ae ֟j1+_Ddf zIk{y/\e}'.7g>onۏ m/ ݞLp}nkgnmnշn÷v}vݷC).g|_Sg%[%V~1%55l;n>m{uWʗryo0S2Z|xvy3w]7 ji +ϧ;gڶvxvۏ۶ȥ?OS|A^l_Z[THKQ%H89>&x>izxRV:;j0˨pEG;oCN?kM7~2~WɟNvϵmۺqݷmݷmǐ]WOO]^n&}8y>շn÷v}vݷG|Q>kp?eх5y4.|nArEc:OĿ#<=Donۏ m/ ݞLp}nkgnmn<|?Vt?,H$7a(c܎Vs i?xwzMͭZhonۏ# )?'M7Z4 cKeo8(bу(zvjϸRZ|xvy3w]7 ji +ϧ;gڶvxvۏ۶)w-^>_______________(͗yll/,7FD.Y~UDy|D3iC}K/沱XL0\%ai2TN^:-|Ym^ZkmiwokB%D6w4$#lm˛+7{?nǏڄO›k{I.|5JJɥ[*]0[j]-_.2h ZN'_xOZl=_~#Vy\Kqµ?;/_/_Ckԏ0}NWZ毴},|GQErRQEQEQEQEQEQE^# iAlkk~,|;񇊼w}cšf{XζcG$Y2! Er$cze?DlRg'OU'u^_(h_f㎟xcƺMW:j!:gJ`6Sφ_2ѓqEJH(Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@5_g-|W[D (j^  SUV?_s!DW.W~g+e#_B'Ɵrd}NWZgOGUguL_S|#b=Vp)bTgE'څQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@5_g-|{WLR2#J UV?jG&Ci^[_<\~<쯀? C%|j_BU0}NWZᬭy m,OQEsVQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEP՟/WOS?+WYpK_C쁪)C-+W~sY?9Ua ڿ Hk/;S>7_۟ma/!<{ NXO* ,$`(1! }?"wx~}+ǿw =z('x saT?Q?Я'x {Н'€=PhGڠB{{Н']Bw A=j{G} ]Bw ?w =z(~}+ǿw =z('x aT?Q?Я'x {Н'€=PhGڠB{{Н']Bw A=j{G} ]Bw ?w =z(~}+ǿw =z*ƕ5=sKҟ,'n>-%L9!NYT?Q?ЬO=96%Np7>}+ A=j{G} adhadh{PhGڠB~?>?T?Q?ЬO&O&7}+?|?|ڠBA=q>2|GhLnbyiEd!$2N@adh{PhGڠB~?>?T?Q?ЬO&O&7}+ A=j{G} adhadhGR%u|!ӟZ⍀9$?⌃IWzόm4cCgkfy!Q<9f!C[%?}_C-y:9$ye=;-|eguw}NM3&v0 [zOıo}uǨA}цd`M.|UĽ'߉!5=byeu)yDq%LEek^s_յO[k?;;2-'PY{؈.ޏw#,_+'tӽywIkwS/xIN5MjV&O2AA?4"|eO'O[zwxwEmzKceeg2v\F+Y<\LDX_0r< 'Em>} mZ~cOhMk^"%}Nx_o%M)Q Vq6a Pn2!\_O\мhbi[kM/ye˷ I,(r{o߆7ѫ=u5)Evɜ~W~w ko,#K<O\~-kU֧iͨŨi&"K$`) 6•% |{a? ~Oi]@6MleiEfIQ1cP!x\/-cF_.,orjh3?V<y}?ǿWFI=|Q=;dҴ/n63pǹݶ,pI iWBiz}Zm$HI2Iqh֔TF2ٴ7_OEf5 P{c&hiT4h9ƮR5u߈|xL~laBxa`hʘ7U  _t-q$@u{;].Yf4P3ylL@_i!Y*]FGm,I[xbGԮڽ,PDfʒ](8!|H 6PK}jDn&kh#e0 |twV9 /x7OuhpieK) $}Wxt?>a1Eqp'|-O^ω/@v$:[1 'H921+~*[_:cN.|ϕm4ZDž,Jצ5}b]9A`p]BP[r;zU4ķhmM%Lr QWZē|A[6| LiIf~#l٤(-?_I9ܩUr|.~ 'ZMk%iy"]SM%h? tz[]BXZCiZcy$6!")ɬU>]SM? s.Zյ+Ku{3Cca+D\8,3Szok;? |Rߌ+PO"+ 20H1eA*PzMT7^6_w-,264{@%h;%!EmxBkHݓqz¨[Dd2B۴%6kik涰o%6E|@4\rMs6mԶ3:Eq3-/?m^k i71swM7ov䔣o$ ϯ%, ԭtom.k{GViQ PR=E\ 7m)aOԬƗ6֐ܴn.#o-#mniTFHNb;xz:]]tǍNJ yԋGb8aϗ΢>_+w}Ok>-xc/ōVZH&hes>Bǁҗy_Ey6qxcH&mVP;{F*\=bvRҼ L&[7geiTy]NB  ~?KSv-v{iqo*o#$.AN99+$$.\O$W[Uƕ_<%4Fy$`9D?* +gN5Foh3O't,Og4d?j1ۃb84 NF,vŤDjIr'|^1%@ Ri16M}3aI! p?n9'y%-= ?,CH/&aؙz+? ?P)+- O?+~gGQh_!COhVOcO}-+ ƙ.=#!Pk0V?3H]/\Ӽՙ'۟"+rCD RQYBo B 8hЋ?6ڤW2BH(\= pn~ڔ{LӚWUWF9x2#Jߙm&i6eE1W4EQX'@8#-ɪxtd:9nz+eS:)?~#]jl8 KWZ_j/$uEO|='^'oۏ$W~''k7UO-_?d~~IDR,~=KR [/dJڠvӤ|X{a"i0zbۏmg]2FRWOYAaW7 __8ȳ -j?bOZ,JKZxR֣şp[ ͎#]|-&F2 gʗ`7|`'!K_!,__x!C֦x"_?܃Udo᯿?v'KQSD=-.*]" /~%N+rΥ0 Og6&#J×ؾ"P?oƟ K}OCã!cSzLbB&8է_~~4OGH?VTBX0?>_ 3=11xu  ,__~ -^ n1.eC#)/w`7: :#~1xt3=~Arx"Ƒl`?J%|mDN'Lu.__3y^ #ӿsxoyx K_WL>T֪rOJB{Ǩʗ? /~п\^ gRzƟ YԿ<;1?ٞ!x?3Iex?OG_|?0A?ZԿ [Bm GW760AڵP7˚R `7|RHȴ kQtoZ#_QٮF_LB?\Ro.T`7/>~!kRz?h&/GGce]{/]{?a} CF?5=4oZ# U2B?a} KEO5='--}?5m&1MvZ#D<!o^r#A|)eKG۳|a|@-j_U㟅Pா?XֿnjӤp\wIBx֥/X0??D?{xO_gSz?{xO_gSz֟ş֦{J!R `w|'3=|GOx~tX|$v*]O*AẆ1|^">o6Nb0_jЂ#UUq>!u\žg)]u7߹././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/figures/workbench.png0000644000000000000000000011635414023111777020533 0ustar00rootrootPNG  IHDRiPLTE ؏'9d`aMYcԏ3Ǯfd9Pa*㫣跦>X:تe+6?[Վ#euĢS[e{cpbPϦtc-jyyS:+mefe1g=Լ_Ry]yvt筭- ӹtw6Tݹהy_ӕqۋٲ㽸q8bKGDH pHYs  tIME, IDATx}Cy!ސD"IU,5k՟;gfvw 愐}|sΙ9g9ݍDv>S#233kFf,tze]>w c~ϼxhu:xbV}g>:Ⱦ.U`hD?8?dC'e'Bas½e^Yc*BvGW*'=g2N=`ttʠFFOk&2D>FkB z}\]qشsK6*ibg{5[6=a@wMxi|o +q:͋IZśTٳ⤱s !iL#1sZ,8i80:-|Sn7Es d%bHmL9LXk Z]f[FOz{׌2:K+1׎#K4#wwǥ 4\8mnMtik+ZM%c#O n5Ɯi3ڂBiO&7֨)ie?+U7PҎ7HDz]Wz䴹^@Zo8;Yo{dvm7ٰMU>Dmh,Fi̵mfFjg{9g1BnQ F1l4Vo˘}|{}wКf폅F푦G,L:tS+yuJ3]6=o}][)=TU=DA 枧 9> l3 |9NV?f 5lw>b RkT\0pTj)R}g0:gen/[Da~7}m]i}}d?LeGH?1ڠ^&"툮9Z;b$98Tgv+Y bNK=>#=V"'5l(g|ksd. L6/'ߦqo(8m ^$2";Biy:+z?'a+8)s/vyF1sX48|2y@2)2 !IzlZ=O#vrRp"ثmy|=ð=7ґ~$2^#mw2i 5=yi} r4:L0!!H3)Gi򈸊ww}~`5miഅ{HVb5 ߰7`MV"cP%J׀LBUNN䞯g vZ>v,M7[#lig3PU9-#x /o>UĮ3; Ayt_AuŕPK-!f5=O$ CNFA`F2N{5$w&lC7)XcA'N;J_%̱$aͣ Ia^'eN> HӀK5C`aizmnڞ˜ݒ? j=Mڽh.d'M]_ 8->H[5N'm` F mvz}){x9,WW1b-f(e5Kq]:DcC=@P>+D>+ )HLYu^.s}Jݠ>j:Q\^rj\0DD,4>-c'}ڵdptN|( ⷪ[ XmtTfiT = aiA^3P5Սq"g7|\cl;_Ɩ3iC_fћ;!-s\kiƖYL7c#ufޯqS.vꍥ)rtt6;׻Nc.h_Cڂ|fvZ3SN@֑Okh{g٘ SΌ43s͢S5|@fAH-L{9nknh:iWhzS Rs1i|t8I[=9Ő`- gLgqlwdk*.̶-I ]O]~NҼA5YP nT$Ҟ; =!]'HS^;֒?}ڀQ=<˾M98,XU?8oƯt!D+AL@uM9Ais}Pz߯]ޯ_3A H絃)\,!kc' t8g'DH#m%hgDOSgwPRA V:E`E^zZ%-+ARIVqRzT4(Ǒɓ@{|v8ĕ=R e̎!hBBt:Җ93Sk樀2f%#a&yzpm~p=ߨr8|!BNjNEMY 7"ĄZC+e9fXPܠ!(6I?r(BtZ4!Bd "8Msa!Bx#+bW}]wsT"!\inm>G%rfhiiBG "md&ra2D6Km6uh)} +9NYms஻TQi<|ַ6gد¹g~>K9ݍگ9pO__3toړ~PEvZyla{asm2^ƙŕqE6ƣjoxw}]^ݠU'3>~x_W;A>r2R br-g~oy'! -,>ߨf8*H!K7&7Dvn- oXajb 4JKopbr-gҁa eӖM촵Ccg{ey{P=:A-e7^.B2l@RV$JV&e>ڹX[$hZ0?%g{yHԻTK1E_Ąg@H[2`*^!m|lLyckytthyiP~_h_^uuuH߉ul8Uq"ciP^zUJ dӬ[bbZͽY_Z{1% ҌvZ xr'H;\E|i㙭ˣ vo#eiWgW3O" 江vn: `cvb嬜fR i4ÙѾœ@Mp*/n-]"mq>vH+ol[ -3Hd[[۪i2E?'uGZ&jMf[݀vV_%XY%_DMTG*ϹeaվѣO .W 3mmҿ[^z4fLqeAo$-{9v}H#s<-<'-?yϗivH3Өhgq1Vճ'n"Cڻ4B_]z~}~njc0Ҏ*cGd ߉҆i4ܽs; -H m'ni6iD>Ycߢ\"ֆ|, ˽JRYA!%4h}nX|;nIFwG.P{U]g2nm$ }>Z%EzƇ k~;3/_J/~2dn ي(GxxR̃ul3ʻmT (~{]"@@Z=ϴcY~w%PUJ\E2UCexkf[@ڶi̎ fH#2Le#62cs~oˑ(/{\ȨVqN#^>y26k:[N3]1HJZ栂щԁ]>Ń qh;j˓Њʇ,mWe\FڠN~A8 mˀ4dg$|MLL|6{d$'x!G_@Aڊi҃TI63־GQ,p/Iisu1Lށ8`+^wPRA*@2RLLV 5"O>eLvf牆3I+93TƷokĀ%%%civ3/}} ={[_ف#m!_I "ŲIo6|Si%m=rKʖ0iyԪi#ZYfհE. -iZˇ_ꦮO+ԍϞn yRUt5 =񈨲aV'bGd2!MF]mڣN1R8@(ȝl~odSF:=-sI@InK[̀_\$2 V<*?]ZXX*¨F#${u5^yQQ<<|ztwgzwȠGX[ e" DzS;z q)}4rBͷQ3"V7N'NOi 2I1ze3~ik}9/JfGĹVCDV-.ֹT,w%r,˾ ZYix!pZl45y.P/;)Gא 1t6.q6"-Ȓ YN4HRg8@'fHe|ʌ7q:1qjqHߓio׏A{\PIo4u8mUn,[w7"mΥ2%=Y(k/A//v ǻI~>þڻ/<"poTZ*!*BmܡFvvRTiddab|btvvɄ3;Phg~E6 ͩ%Ac,:;jk8.ֿԓE.W"uv9 ϹV80Ҽ4◵G4W3GU6V}>C4ŎQ; T`i3,.i}ߗ֗E'gt(p"Mi*:;qZ HjYrix ҌvZ9->=v-b5lW5H;vN;_MTL<]floX9uxZXX/-}'s}3Zs* 8jqi~ky4##?{鍗FFEiei3_7>bf4Nװ#U*ZJѢA%,̜p|KE-"r J,>T*:a/69M=z{4:9CHs,FEJ$+.9\'iq%jJR]vA/b*U<8wht#RR Rsi;L8ebwXYTRWS?Sޝ6:&ƪV6m;єK.Z$1v;sd>D»Rt,F0*H_C= IDATHH;'DoDG"ȩ"^ByD:Gc q`(>K RHqM$+IB+4pO9]D~1!."P\8 #{j672ZHD=1+LEy1I}Aڀҵ,VH;yI {?ࣸ㞿$:v}^%`/vs[U҈%p-TIe{]@L"WaI/şc'ݶEZ.4bU^sk:?0w|FtOџg9ӸAk c}!8XA{G_ =;\b1)6ldlXJ`:#,N#)vڟ-ai"K/B0@v/MuyΥRzD|=l*{@bg#yxid44V6|383@|' k@bg|?iK0_1%L8MkXJ8D ]yg%/_~P 8a$#ЩۙnR^mf{+ˈ̬DDZz9b5wiiRr>S="E"^"jvH3+"]BiuyΫ/[4%@@ŻF:8bhI3v"e佽L4SNQ*-%Pƚ̓ظp*P>p,4p5$4si\9أGiy+J"MP1^Hl@t $y˯pDl5Mݼ>"3e&p/ :؅=a1L8-L7&#ʜ"94`3C8% d;Mװ-횙Ƥt |p) 7;mGbd1:8,P3=*#!Pf>IY\+# !F|TH27 [{vmm4c*%sL4 KN; Ҍ*Ie7w4CFHgd1NR\uB# Ǥi\UN fQ^siEʞnn4,/ݛ" 5zv0~t[Fy/*@ڹwvi̴jjr=5SbQޘ@:H؀ni"6*i:inHp[Ρ6ۑ"&g 7SMb&~:WW(@K6+DH7=Z,QFZ'kN1KKSxýǪ%)UA@K)#k!@m$Y6PɶhEz.&\~mBZl&f4iBTAjTOQI`rp:NCPU"C#s4P՝Hs}EChX@fih2Ҋ"pHUACӶF$"C= wAeW@d͝Qd-:BuЋ++&#5=OǛbAZlP"9mB)$u(yw8M9H QFfff ܧ@p32!NV  v /i(@𖓝h̀}IߓN4W5ipY\8`D yqi ]PĽ ZÞX3HB߀:So4P+hpimCZiE4Y(i!: _ 7;IAʕ%8 &X" oim-H/y8NPT)NS%H|64|:UNID>=ūB#>D.֦*5KfևbRa(t'핐yN4nl86Crm[75FQ4vqX81cIUE\{7v <3>1Ƀ5d$ZA`ŨqH" b`%FK섚Kv _HIz0A28Ez#C1GenKw0AXrw L/]C1xǎILѾ4&Iw \hr;Ʌ+i/19,d[F&d3%ҲϨWy2.7}<|~9攌=H/k4Yj}cm_lr6$eW˭9=s||s֍u i A6ƕl2aWd6|Zўb*H}KV"kZZ&˧pZF%ٙ3"6zIgd"kdfpVߘpi3RlWY{|e1$!BFhUycc|!m'|#*fe%1ZInIݏ9m Ʀk0Z{Qx@n49nt&EҲav=O:$sl9 &cjHo5='pڜ5G1vGimTcAӈupvO`6y  QE4HXZPiXq:8; ɖDx 154[ ‚ӄN`(6F20*Ө$gVD6oꓩ*NBEK7+`{AiFlefh,PbXN." ɖ .0@hl昸Kg6oS 3@:4N<2  Y"MYuްIm'.$聜rU9ɺ:E+&ұi΢`sw!v_56^[%\˧#i=YrGڧHpPւI54Lôxy&2VO jnRbI Y^VOG _[!-iN(Ji+mEg-@cIWHQkXk dƩ~+L y6͓'lU'ȹ*0 D>h5} )&`6wr t$9g/Kכʯwzl=ƾNfGn-ae,}D+nrH֤htbh],v7c!K 0QiO'@?(G/8- SP?Ώi؂m+hh!H#E 6z6;W7r zWX+]W!#iIwkJNC dax˫r#cP hF&Tqio`] hݕ̡Ѐߙ1T֑ Ү`:CHG $АIs ܕ<K\^N ƹ;r&i |JWN@yOcM5Q{\$qt6ry%-6$2 .C-N)&4m3tVrt^aij Ul qIOH(9{W(+0A6ϯ9H.w9y?gZnF^'#8ȳ7v%bv ɕ39/i2F3ri(}\)>#-^pjAX~ݲ;Q|k8NS̨HZ49;,]i5Y54H;Z!hw!#Ie? ij/ {NT4Α֘knrGyXbY{ 4/"v!&}C; 񏠝5lk}Nδlaq_w\ =(T |zIR%ƑBX^# L i ڻ(FD[N3v6\KF"[:s+ iT%M'd 75}CoGR߹JȐb$"JS_ !M-A$SRoGyW&Pp_oE Jb_iv"-I݈yXW ]d bJ|z+YG޿k)I(aݢOiV64kO@ rDNܹ&oe3H3wHrH3w#&D Lch槹/&iB bsƣV/&ٍ"!+Hm8ZߍG;_:҄\86sƣHr;K9јk}7CË!:[ 1DD pN륜h̵fbHHpif1׆n< $:MeNۙs[#FYYýNmFm̵E"m@d] ܪ~XC3K HKq4:xӜY#Z6ewG'2Q(=e?sqi6liv1BB=@K{],R8x6O | RV0GZGh;C+ˇ;^9ݸ|P 8-/)HL-;H.dHk{̵5Ҷ jmZ( qC9|Mކȿ܌܀M8Dx6g4ܩKa3K0ٍf(t~\!# H 8&T I#;SnFiC<)}F7RE  + RL<Yk8spzAi˻yOKۇ%1c~rBM04}!AZҢ2ҢI[m /$Cڼ H;*@(|}KbKq_=¾$V9,q&Uo|wHcFh/Rp;zI`[kL pz[v#2|"mIFR{yJT6G DjHծic:v gw(MV4/.|KUt(۱AIIih)5S`ъI.$\eTeI /4ތҕW)#@Űc_RٛjaT{Z]`&sH7֘H9M#B4c ii ru4gL{-8駜)0HW="p@.u v1LNK ?p1z(s/ȸ)_dwGav V#bT^i%MoYa&'Eޕ,7A>kwNkkedQ8m;4| OcXpnO9 4|wTj^ P4-V/!0,sVa$iX!;4VR/#iܦrÌs=dYW^-Lm(咰@Gۊ^myW7N4\1 4kr}](l9Ӱ}Tf *KBo{Dd(96X2xDB'Sj -ѫTQaCbcsnqŮ|d, מ M*=k˻A/BCErF ENOe@ޕބBW$aJd\LyH$PPdv]RkH-1yAitՒC ʽ#Cʨ+u#_#2M4؈-z;.!3Nqm"V$Qh_2̱;&U'NVHۼFIAZ@N#k;>BU Mai:)uJ ݊'7^RK^ހ1( d scg2YB[i4ε-U=Ji:r<ɔ!'KOS M[8A| ,6)geYir$m.pnYQ"U~e!IrAB6e<_g"X9Ւq='qVM!^ayD"g:zkiylKFϓh0}yDB[Qiq#2i8aV\FgHKpCHS uF+H _ QdiUGaGZ<;>4ܔ sSE:,=:βAI̵sK]1:CGl6.-4Gnp-x8F .D#2bvZQy+8 r)Zgg5&RWҪ hjo]r3@Vj!䴳19 $Z?uG{g](ߓh'zhM7OD_c\='_"VGfO(\h]IHK#Z{ P]W4}Q/{N8I xWfFz{vڠN34;iI i-l՞`Gm[ T61I{Z8 ?2>QP J@aPJ IDAT8*Ra[֞F_J RJzDG+}Ӎ&8GDbo]3S ʜ6:X̵;fTfkٝ41[/zcyPcNg 4s-U8O] Ⱦ8H4IUL3sy5gg3UԽl4!&6k031)&ѵl4!i)f94նv/ [ M4ӘkwLߩnd 9gHi0Zv4R*=R穼֝l4!ӚS4!Ӛ)@$i3<"s-&K9"&<"Hcem@uD(d ->w(t!GHˆΎh_co(yDD[^<1z}P?6yD5s&dOz;gH#yD ryDY Gdlllvg<\7'QgGx,ӤUKC Q1@OGR4/p\<"===si!ZM+J#8n_U&sZ%iQSm[ G}O5s77i^#. ' +Ҳו=Yi.Q%Kho"qi\w ^x=$}WSHuV(5zGDNq%m@yyDiuc;i.qU$"јjW&utM.qE#VlǿvxVOXR:[M=g-8MV \,w(#m.Jz݌voG]zSIF118*[ght_di<",9Ns7HN="H>"%L5 X[-Q .)"k/_\'vyD:3F|=7} >R=3mijJp<"p҅_<"z7XaO+>xi֫_{t |x-EQf5,OMiN[R<"f " dC-.H9 bX_.<;y H[$8 D>O*xTM>W=Q;+b $u(^#Bi]:V؎WXKAȗt_U ~~WMG:s3JEW. iN\#Ӫv/ 2 P(f@$v0 ,vEiBJ̑##m i'''[K/_.U-\fNx\d`A;@Yu&DSaDZmKNUO2;;K哅Y  4HZX&HYfpjֻ4R&G8:F铄&|i 9ir{ZO<"]99\ 7[#.Z MH !8lnDץ1s s}ڎ&NsiyD&**M'!MG$҂<"O`yDZv{vV M4ξ9S^<"Mk;tu#RyE#28Jp9lC9mN/qjG6WӺIBooB{yD:o8t+dzI s ir4,@KW<"㴋GDFs+DA}L*~%Mr,}vOyӉhG$l]]eN&BG#2]<"zMFZqu5PN H#W=Ҕ0oHsivyDt"FydO=Fs7yDZ GDة@1#41k+JxWiyYyƥ1Muh8)RҸ<"/f-iN#bhO4tQfsq҄ixk4!BZXjka TN3Eӄ\$;dHsN\!mq(&-v8J8:ĵ-G\ %DF#|k\<6.fCfGD}$ܝVw!#'zij-Kop4>εj?pXt c:M¬ޓHJܕR NI_<"jTB 1qC\UA{c(l*R4{SQ&O+tTvF*dȓ Q# GgqMV&G\w(Ҝs<|a;AIZE0NCHSF[X!qłr<"!kpk*NAZ9N*mq]|AZ:gJmJ1]IN*'yHNSG/򈴐D lǹҺl8N\!%bi6yD,ވ2m Ү$&,Ɍi^ivԉO纩N=RUD"]x|.͟NsGGqK#b{t1H|"F.8 .H kJ])q:X#1kOs9H.X5u=NsQxEo,/{Jو@M$b=ӄqW̵@!"\HҙH1iBZ3\ ;M@ZCH먘`$liM\ i Ҝ\+Qdmuy,-D"[.5$w+Ҝ\Q,ʁ ]I' c ] 9V0Xvռ75i[RmkggRe5=z7OTTji7 *?xxq/l {1溷ko8rH\[v`dIF76 c<"CHS|7z_i7D $xP%H dI_T{%{Gy(Zic]e-mEF?E?#FRk'z*q`X!- +}G;i~D,o$JAZC R >E٢yڝGC'HssFaQF<BZp3Y0xVߣ{v򈼙Fq_ ?w} [A )- +:* 22(|ol=%A.8,͏1 HPC?G3#nii ^) %8!j9هӲZ[@MR#Ӝ\QrKCΈ%i'H[ \1'a ƟPL#8-} CٿCwyi 0A,8ab%O`ža5N"v DAZ18~H!i\ރM_ћ.Ҟ<"8Sb#҂`hG?P4TL=qO2v׀4 Hǒޑ @k}LԲ}]'1mh K*:2uBS$J AzH% >5Hcfu 끢yD>|isa̵}%sVȀ #ط8pdiy%cB0yG"Uy BD?G#F4ϐ6(̓4rӸ u4Hs|(^7L- <"ΐ)1[Oypvڣ]Gci(}\)>9rץLfrw<"$H(;$DikvӆHz!5@}L֖ܼxhF"kZksHksۄMM(Ӥ1ioa*d7 MA4XI8m󺊴D͝P9 -- ΢ve _g.v3 9i).{D)BxK!9MNSn h#]H#-ף[;O҂k/cm+'d 75}CoL|P{ R/6T@B/isZ?)D+L= i̓w|"Mq"!ĿE Cu +vL -@)_:i#K%d0!Ig l3iQZ,Q48lqI M&&-⒔ R4Pf;[sM4!-3 -H+CeYKml"ZDxGߕJ*~SeH&H!mbOj9mJhBڌH0ҮT*b u YTFF#Sw* NN2VT)Z* VzHQ)4!iHNf(VW>R}w,jl bvZ)a `N+i UP:tXPiP(8Mȹ4+;-u(yw*Ҹ:NDwvS ܬsqmtɲŶh$ 6Wf4_mZ-S|jjXEסCZvLRN{pvҼhGIJϕɧfWo 7dv#- 6/@6di#b4=-UL!!ԮWt!fC(2#DQ3&sei&i}Sw~HA&[ixmlO`P3HkwGDPZ~8ҾXHhfGĜӮLBaooNzszGNo4? "IS*(i6h vCY,iE>*(BfH^!-ep_hVnzX!5i/Ka,};M;f4P+hiF1׶yD,ǿQ{\ d'v5$ dM^n%:efXzFjFy P@='f|h $h9O&XI{h(mOrv벘k~/H z(-9BQ{ 8iL#H[k$зaN"䌜V'з<4= r6N}{YB$G\ 9fsMEq`!  #G!ik \+HKY0ȓk= N3fUI҃,b?Nq@LcN&"?&pZdXf}’d;N ˘k!Bibo48C{wMFն"[n4P'S9U͉I7*EvED7)vMM9y*t@d1نNmDڅ#[W\1H2ߣMg ĥzGZ0T&c @#ҙ1܈=Q 6E|2E۝l7OLi ^h$HKeCMr+p8>&Y7hFT! @.J{*t'H X"IXsO׏<_3pZ18~HtY6Դ!,eϺ9Ҧ ן 3FZ ߣ1VyD,#vLM; M5ԓ~wqr v]]mbOR]piCd\Բ1)ZBkO\<"6֙1= IDATi#:Ni#u6CڈM=#biHd@\D [R8M2pP0&lpiCX`2#@T$} cÓJϭm=Wvt]u,}# 5҆tH[!'Uk#P)bI_bҷ9i_&lϲ a/~.G huC{Ԥ n=7 .JX3udVTKnHPGj[ԾѐSU&'7iX45u =G3BMMGqHy+6BM’mp801ڊV|9\Sx Giub6i䃮uC^3 eIT63}[Jǁ_Z=NiA#X<" رiScK+@7n@^}[Mj7o; f-ȲњDm>}88 Et-Osc3(HS[ B?ZZG/}`ܭq-pAKky>}۩&jDbU?ھ/)ZAF$mx￿ /ָHk56ƭ?Zp imD"!i1ג|J6j2_f6]d(L˧e̟>r׀x ڲ6_$䁎~Hf>5/ʉD 2 "." hQ6u?K:hmiTGkUMki-?O" qsvdp:͠OK]IϦ5Mڡ>mME/J8t65IК#qv4~li\ H$ZKkh:Z{[?ÿg:'5!.pZkI<_fP|j H$5Ή8r ?u9!:!G^vNt6tr'%Kպk9MWc X7#"Ƴ[XL Fի<'kRimD MH{14W[nm+66ck)}^ۊ-LNjZ?k5oKpZ7s R~Uz\k?lA j毽hVtj?iL-V ߨ*(N:C:t\'#w%0d#gbu軒4j[W* }Cڠ.Ƞ.2tZw:aGv~$C/oE{O'HqҥI/2YPfdôj6o㴮@ҷD8 pDԉ!mCyZ7Ceo&h7r5>pO*Y0DvJ@XA5/Ln紝WiΞWAyEx!r^HмF"mb8-A&='.lPl(c|#$Ն4L5f0]<"i2Ҿ64r7cd)Ҿ \!.ek촜Enְ$o>Dc/Ln4(d!k;^Ux2$C-{i BeؐhT|+7vFH S5i Hs?#j石#\YVyD*bCq>:ޥ2 )Hڎ&p\",5oh_EDX?;dvat;˿2iDX&s۟qGG(ʃYv{s9FiPWCRFHG;rB}˃pQt=ҤRI:;5i,H I k {-1D6 w$uiX_#߂ ԩM6`vLae4}8rAt?YYyOzcɞI;<"iF]Nc4|&F.N(D4ǾG1p@ViB{"&|B ;M@ӄiVN#V(˓ժžuq %7ZoVGADT ιiiyD,{LVG͒X:FLEp%~L754#]H wcihuXfTK+X0u[iʤSfk"_ 874G3f6|&G<"lM1?Lv~<z͓'S1A_txN] 5?\%j] wfȆt ?N($&NY'فXpXC4\satvi=a M.IXsO׏<_3pZ18~HtY6 :N45ħ࠱4 ECBg;/HFZSڣ#H vfG-4ibzr..ANS,6X8,%i-)8(s4t)BwGUE>)~Ycɛ<"lȀ #ط8pdഡDa^MehBIAkː!Gi8]5L$d@.p#yH##c8*[h'vgR86 C\!TZ?I_>S!:ߣ#ҁHF"~nOij{Dg2zǡ7zbW|m,Յ.?\ 9!3E7Nde;Pc6XNmCti"H" l6ֵ=g@Bfĺlx6Jkl+(Lewv:Ok"ZH' Fw'|it h8M MHv'6h]5m= b*zDb1dQ6$btҨ1Fv"A?M_tbki-+G!4 Iv5{YHv ,tB:i țt7i^qcb8ۘVv2_ȃfd33 wO,W.=@n3+DvKf|t>xb. s2q2 b+PE2'jU uiVI`흍WGIDD9bPXd ؄5;dz Ɖc{dsoo}tuF ,ժ:*djcҮG;ͼNHQ2< U%t'^ނ5:!M|]A'] ΅%QW.LҾ>:]䪓Or/\:42g&BzмFgy@,٥hi3nĐvT!WLp.lmD/v+ !c4Q Ѿy礴 iQq!48DIvмE΅ e9G8 eyL'4A+iF.Mi)Gd ?V.NO}OHg#Ra[&+zUP%.Auֵ! @44A @H@HQN(wA=@&m'A A AH;ic7C_C]}y8r Miǧcs'wlʎ_P ۉ@V#Ob{n&l&YSs. S rJxMb^eΨK:,S-,Dͭ?yo\Lwr:?sAGgm4Ý٦\M&iWoz*/}MKuTӫTE.xOky!)1Z}fU׸L7Fr2R1IEsz7wlq%/Rm oޤX6-WcF)%I3ji L(E8 .ZٕU"ç<8&%Ud &'irNUI%䤱ERi55(YU- =-['V#xY9"gU'fC7qeeΧJQ**% StNm]y?:\mGa@ߋ>Q$"EaYɔR'Ll5[~(t!C&Яc7xT? "jT Z`3P _r D~3/7hO%9nKJў&7̜iZUIK]#MpQGѝiy+vɢDkcue򴵎%P/יZ)LQm葶ʪcY>w mHS <-=X(>t"Fq8T kݤRi "jix( [?yq(Q!Mb9Rex+uS.) KO#DUgLFΈ$MF +j52-rUGDl՝_:>..]iQin;MXAFAMP4>=zDȧD('P~Dd_X17zԤDӇ!MF)Lwב$HHPn؞IlR[P8^fɴk]ibuXnUڑ O;4uŪY5haF"zD.>ei" J]O㘫9Pv:r;|}9TtCKv猳Y="*KQHyJщ*;JS+D]kH"p*^Ѣꛨv4'(z3Y&H>T+r8,RG4O>i5;GF-~{\oAڍ&M:hȍą[p|܃ɧƂAHiH` v6beؒJ7X|?F|nN/pUYrn#H65jWFD]đw}5u:H@ڰ)IdsN|U!)Vɋ8tBl@7K{?3\uӾ?y<ŗkQMމitBu/w$/BykL@ Cjkt?DiѝXtc5z+6a#ZAѭTOSQQ89z,i ml<-hȹrjpKd-8u]vKdY6Z©;0Pzҳ/!IMliϥcWqq|ii_xoa4~;Z2)[̋5siNB rT^:KȔWW"zc%|'Jz=uqO%xD(LcՒhI˖ ks^46|x~4uRM>Ӛik+/46֤e'##izr1Q}m=]V~<h귗 ;vZU.݇G4,i_S#]=su,4{?] 44EwA ADX AF8(H@Hzfji$-W˜yZC?M?~ x%겙Gbh"66OKx\}'IKiIKTݹ4OXḱ5ˣqI{ӣu7z4;|0As󃧁 &-B}v<45be ɡ=Mi tCZ:GSkH6DCr2ڕsʰ56}Z*)t(i뭺J_NoTH34t}9:H4BKpXtC 6&M_%zZ'syZ舻UR`Z C*qcccR4i}H}/Do^hw-MV* "Hff*bJ}t8~Q3GN|~ZDI@u ib$(tݺu+< WH,Ҿg&Ӿ4hxOPM'*zA(jp4=i4RHCԩ:j]1 H{7ta} B *-orM\60;ND\p_7| 2]=G <˔?i|8&K#"jS]Xxi0i|.G>zoz7E^75{&k_ylA KNe˿4%Pǰ Y]n 3j -wWOkadڻ)e> ]ҋeonz lN>L2e<i UଝoT@HFiQWi 4@OiOi< A4 xHi i 4  xV {8j ^QLyvVpj"BlIS z_Ash5(3yPqow<'c4'>w񚨩<\+/\Sbx᳗s>;W/ig"H8Vax-ʯ|JK-pq&N}bru^8'KR5帪j ׳iFQWy2G1ul}* zaYSo(ky0^*rl3 {ot${>5λxɵ-;mPL{|ny$i#-L\\,uέni"UI|s&Lia9Qf5"!go$$VU];I{@庁QS=/K9)<'}<"MU)ﰛ4ߔcyW՝Kڠ?X7Y[rsZ4aiÐI4H^HxJw?彧\fv\#%F?i&:A :D$j>ֿ\V({q$ ҆U肪 r9|&YvGLOVu0eԔSOS5*_!-:5i6VN&H38zj*:3xz{wRyΟysP.U3)s!OGE" mu2u!ᘞeuK H׋#Cg,RAX{y?ܣ go?^ӓ.3K$) σٯuQ_G= _w/S0X!Mp.M<;y_'ç7Nڸ˞qXҮsm\4DCA#HF&=4{ZZJ/=S[&G >( xU6.k~n iKsTOܹ m))̋}/U^] mi˧sI~VZ:YEYKoW4ʸJk[2/-hr=?Z^*V~ia04!};/RN4n&mgijCe r;&iwڇ4=;tԺQ</iDŽ(K2ÜG/JCLڌ%D}z @4<@@4!y|]:i_|"QJA%6SvX97sof(l!tutr/ޤu¬mT H4s:!GE2dK-=T !oiCd:4aU3Zon0iv&BEZcOr/CvI˼ig -+.i~Ў:vn٥h mXf݈!m{u)tɷi7v+v~}9H."mc ny'H;K;mqڐvy=|Էb#nN߻4=vm#?~@MVz=v+++Vy!\NL}=s-BǕHJ<ͺ_NH֟gcN * :K$EgPҁnfzڳq#, E%fوT΢@N^>YH6JGt]' Create Repository Here` over the directory, or, within the folder, type :command:`thg init`. .. figure:: figures/init.png :alt: Init dialog Repository Init Dialog :guilabel:`Destination` Is the directory where the repository will be created. It is always filled with the current directory, so if you launch the dialog from the right directory there is no reason to change it. :guilabel:`Create special files (.hgignore, ...)` If selected TortoiseHg creates an empty :file:`.hgignore` file in the working directory. :guilabel:`Make repo compatible with Mercurial <1.7` If selected TortoiseHg creates an older format Mercurial repository. Do not check unless you have a strong reason to do, and you know what you are doing. :guilabel:`Show in Workbench after init` When the repository was successfully created, it is added to the RepoRegistry, and opened in a new tab the Workbench. :guilabel:`Hg command` This field displays the command that will be executed by the dialog. Creating a new repository means create a subdirectory called :file:`.hg`. In this subdirectory Mercurial keeps all its versioning information. .. warning:: It is dangerous to manually edit the files in :file:`.hg` directory, repository corruption can occur. :file:`.hg/hgrc` is perhaps the only exception to this rule. From command line ----------------- The init tool can be started from command line :: thg init The syntax is :: thg init [DEST] where [DEST] is the path to destination folder. .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1701080436.0 tortoisehg-6.9/doc/source/intro.txt0000644000000000000000000001324514531066564016275 0ustar00rootroot************ Introduction ************ .. module:: introduction :synopsis: Introduce TortoiseHg and its various parts What is TortoiseHg? =================== TortoiseHg is a set of graphical tools and a shell extension for the `Mercurial `_ distributed revision control system. .. note:: hg is the symbol for the chemical element `Mercury `_ On Windows, TortoiseHg consists of the Workbench graphical application, a shell extension which provides overlay icons and context menus in your file explorer, and a command line program named :file:`thg.exe` which can launch the TortoiseHg tools. Binary packages of TortoiseHg for Windows come with Mercurial and a merge tool and are thus completely ready for use "Out of the Box". On Linux, TortoiseHg consists of a command line thg script and a Nautilus extension which provides overlays and context menus in your file explorer. You must have Mercurial installed separately in order to run TortoiseHg on Linux. TortoiseHg binary packages list Mercurial as a dependency, so it is usually installed for you automatically. .. note:: On Windows, TortoiseHg includes both thg.exe and thgw.exe. The latter is intended to be launched from desktop shortcuts or menu entries as it will refuse to open a command console. thg.exe is for use on the console, and can provide command line help. The thg.cmd batch file that our installer adds into your PATH runs thg.exe. TortoiseHg is primarily written in Python and PyQt (the Windows shell extension being the notable exception). The thg script and TortoiseHg dialogs can be used on any platform that supports PyQt, including Mac OS X. Installing TortoiseHg ===================== On Windows ---------- TortoiseHg comes with an easy to use MSI installer. You can always find the most up to date release on our `website `_. Simply double click on the installer file and follow its instructions. After a first time install, a re-login is usually required to start the icon overlays. During upgrades, the installer will ask to close or restart any applications that have loaded the TortoiseHg shell extension. If you allow those applications to be closed, the upgrade will not require a reboot or logout. If other users are logged in, or if there are applications which cannot be shutdown, a reboot will be required to complete the install. .. note:: If you have a legacy version of TortoiseHg installed, the installer will require that you to remove it. The uninstall can be initiated from the control panel or the start menu. .. warning:: Legacy uninstallers (<=0.9.3) have a tendency to delete your user Mercurial.ini file, so backup your file before uninstalling the older TortoiseHg versions. This is not a problem with the newer MSI packages. Legacy TortoiseHg installers (prior to version 1.0) were built with InnoSetup. They installed a TortoiseOverlay package as a separate application, so you always saw both TortoiseHg and TortoiseOverlay as two applications in the *Add/Remove Programs* control panel program. (On x64 platforms, there were two TortoiseOverlays, one for x86 processes and one of x64 processes). The new MSI installers for TortoiseHg include the TortoiseOverlay packages as "merge modules" so they do not appear as separate applications anymore. It should be safe to uninstall the older TortoiseOverlay applications from *Add/Remove Programs* after you uninstalled the legacy (<=0.9.3) TortoiseHg installer, unless you have other Tortoise products that still use the separate TortoiseOverlay MSI approach (TortoiseCVS or TortoiseBZR). .. note:: TortoiseOverlay is a shim package that allows multiple Tortoise style shell extension clients to share overlay slots. This is necessary because even modern Windows platforms only support a limited number of overlay slots (11-14). TortoiseOverlay packages are created by the TortoiseSVN developers. To be completely safe, there are two approaches you can take: 1) Just leave the old TortoiseOverlay packages installed. They do not harm anything. 2) Uninstall all the old TortoiseOverlay packages, then re-install all of your Tortoise products until they are all functional. Finally, if you have problems with the shell extension even after re-logging in, we recommend you re-run the installer and select the *Repair* option. There were problems with a few versions of TortoiseOverlay that cause upgrades to subtly fail until the *Repair* process is run. Language settings ^^^^^^^^^^^^^^^^^ The TortoiseHg user interface has been translated into many languages. Language packs are not required since all available languages are installed by default. You can select your preferred :guilabel:`UI Language` in the global settings tool. The Windows shell extension context menus get their translations from the Windows registry. Translations for many locales were installed under :file:`C:\\Program Files\\TortoiseHg\\i18n\\cmenu`. Select the locale you would like to use, double-click on it, and confirm all requests. On Linux and Mac ---------------- The most recent Linux packages can be found on our `download `_ page. For Mac OS X, no packages are available but you can run thg and all the dialogs via the source install method. For details, see `Mac OS X `_. .. note:: If you install TortoiseHg from source, you need to add our :file:`contrib/mergetools.rc` file to your HGRC path in some way. One approach is to *%include* it from your :file:`~/.hgrc file`. .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/nautilus.txt0000644000000000000000000000174114023111777016775 0ustar00rootrootGNOME desktop integration ========================= .. module:: nautilus :synopsis: GNOME desktop integration TortoiseHg also provides shell integration with the GNOME desktop via a nautilus-python plugin. If you have installed TortoiseHg from a distribution package, the odds are that this extension is already configured. If not, please consult our Wiki for instructions on how to enable this feature. While the nautilus extension does not have its own GUI for managing the overlays and context menus, it does support command promotion into the top menu. It requires you to edit your :file:`~/.hgrc` file and add lines like these:: [tortoisehg] promoteditems = commit, log, synch .. figure:: figures/nautilus.png :alt: Nautilus screenshot GNOME/Nautilus screenshot While convenient in most cases, the overlay feature can cause slowdowns on big repositories. To disable overlays, edit your :file:`~/.hgrc` file and add:: [tortoisehg] overlayicons = false .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/nonhg.txt0000644000000000000000000001521414023111777016242 0ustar00rootroot************************** Use with other VCS systems ************************** .. module:: nonhg :synopsis: Describe using TortoiseHg as a front-end to other VCS This chapter describes the three most popular Mercurial extensions for interoperating with *foreign* VCS systems. See also `Repository Conversion `_ .. _perfarce-perforce: Perfarce (Perforce) =================== * `Perfarce `_ home page. * `Mercurial for Perforce users `_ This extension modifies the remote repository handling so that repository paths that resemble:: p4://p4server[:port]/clientname cause operations on the named p4 client specification on the p4 server. The client specification must already exist on the server before using this extension. Making changes to the client specification Views causes problems when synchronizing the repositories, and should be avoided. Five built-in Mercurial commands are overridden. outgoing:: If the destination repository name starts with p4:// then this reports files affected by the revision(s) that are in the local repository but not in the p4 depot. push:: If the destination repository name starts with p4:// then this exports changes from the local repository to the p4 depot. If no revision is specified then all changes since the last p4 changelist are pushed. In either case, all revisions to be pushed are foled into a single p4 changelist. Optionally the resulting changelist is submitted to the p4 server, controlled by the --submit option to push, or by setting **perfarce.submit** to True. If the option **perfarce.keep** is False then after a successful submit the files in the p4 workarea will be deleted. pull:: If the source repository name starts with p4:// then this imports changes from the p4 depot, automatically creating merges of changelists submitted by hg push. If the config option **perfarce.keep** is False then the import does not leave files in the p4 workarea, otherwise the p4 workarea will be updated with the new files. incoming:: If the source repository name starts with p4:// then this reports changes in the p4 depot that are not yet in the local repository. clone:: If the source repository name starts with p4:// then this creates the destination repository and pulls all changes from the p4 depot into it. The **perfarce.tags** configuration option determines whether perfarce tries to import Perforce labels as Mercurial tags. *TortoiseHg Integration* When the perfarce extension is enabled, it adds a :guilabel:`start revision` configurable option to the clone tool, and a :guilabel:`P4` toolbar button to the sync tool. The toolbar button performs the p4pending operation. It detects pending Perforce changelists that have been "push"ed to your Perforce client but have not been submitted, or have not been pulled back. This opens the pending changelist dialog so that you can view these pending changelists and either submit or revert them. If Perforce fails the submit because your files are out of date, you must revert the changelist, pull from Perforce, merge, then push again. *Installation* Perfarce comes bundled with TortoiseHg Windows installers, so you enable perfarce by simply adding it to your Mercurial.ini or a repository's hgrc like this:: [extensions] perfarce= .. note:: The perfarce extension has been known to not work together with hgsubversion, so if you plan to use both extensions they should be enabled locally on the repositories that require them. hgsubversion (SVN) ================== * `hgsubversion `_ home page * `hgsubversion Extension `_ wiki page * `Working with Subversion Repositories `_ hgsubversion, as it's name implies, allows you to use Mercurial as a client to a Subversion server. It can also be used to do straight conversions of Subversion repositories into Mercurial. *Installation* TortoiseHg Windows installers up to and including version 3.3.3 come with the python-svn bindings and hgsubversion included. Users of these versions can enable the hgsubversion extensions via the settings tool or manually:: [extensions] hgsubversion = You can verify that worked by typing :command:`hg help hgsubversion` Beginning with release 3.4 of TortoiseHg, the subversion libraries and the Python 2.7 SWIG bindings for them have been removed from the TortoiseHg packages. This was done primarily because of security problems in the subversion DLLs that we as TortoiseHg maintainers have no control over, but also to avoid having to package a second complete revision control system (SVN) in every copy of TortoiseHg (and the major headaches these bindings have become). The python SWIG bindings are now provided as separate download. Instructions to download and use the python SWIG bindings is available at `Subversion bindings for Python 2.7`_. .. _Subversion bindings for Python 2.7: https://bitbucket.org/tortoisehg/thg/wiki/libsvn See the hgsubversion wiki for details of use. We recommend an hgsubversion version of at least 1.2.1 with Mercurial 1.8. .. warning:: When cloning a Subversion server, it is highly recommended to clone only the first few revisions then pull the rest. The failure behavior of the clone command is to delete the incomplete clone, while pull is much more forgiving. *TortoiseHg Integration* Imported Subversion changesets will display the original Subversion checkin number in the Changeset Info widget in the Revision Details task tab of the Workbench. hg-git (git) ============ * `hg-git `_ home page * `hg-git Extension `_ wiki page * `Mercurial for Git users `_ hg-git, as its name implies, allows you to use Mercurial as a client to a git server. It can also be used to do straight conversions of Git repositories into Mercurial. *Installation* TortoiseHg Windows installers come with the python-git bindings (named dulwich) and hg-git. It can be enabled via the settings tool or manually:: [extensions] hggit = You can verify that worked by typing :command:`hg help hggit` See the hggit documentation for details of use. Beware the 'incoming' command appears broken when speaking with git repositories, and 'outgoing' does not show much useful info. So you are restricted to simple push and pull commands, which is common with Mercurial extensions that speak to external revision control tools. .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/patches.txt0000644000000000000000000001546514023111777016570 0ustar00rootrootPatches ******* .. module:: patches :synopsis: Describe patch operations Defining a patch ================ These links are recommended reading for understanding the history and nature of patches and how they can be used with Mercurial. * `The patch management problem `_ * `Understanding patches `_ * `More about patches `_ Pitfalls ======== The standard patch format cannot describe binary files, renames, copies, or permission changes. If your patch needs to record any of those things, you will need to enable **git** patches via:: [diff] git=True Mercurial 1.5 improves its behavior in this regard. It will warn you when git diffs are required, or sometimes upgrade to the git format automatically. See also the `diff section `_ of the hgrc documentation. Mercurial's patch routines do not deal well with mixed EOLN between source files and patches. The **patch.eol** setting was introduced in 1.3 to improve this situation:: [patch] eol = auto #strict, lf, or crlf .. note:: When eol is set to *auto*, the patching engine will preserve the line endings of the patched file regardless of the line endings in the patch itself. You almost always want eol to be configured to *auto*. The only downside is that you cannot make a patch that changes the line endings of a source file. See also the `patch section `_ of the hgrc documentation. Applying a patch is not a foolproof operation. If the source file has diverged from the file that was used to create the patch, there may be conflicts during the patch application. These are written to a file with an .rej extension. TortoiseHg 2.0 includes a :command:`thg rejects` command that can aid in the merging of the rejected chunks into the source file. Export Patches ============== Changeset --------- To export a changeset as a patch file, use the changeset context menu of the Workbench to select :menuselection:`Export --> Export Patch`. It writes the changeset to a file in the repository root folder. Changeset Ranges ---------------- Select the start and end of a range of changesets in the Workbench and open the special revision range context menu. From this menu you can generate patches, generate a bundle, send emails, or visually diff the accumulated changes. This is a very powerful feature and there is no restriction on the base and target changesets you can select. Email ----- .. figure:: figures/email.png :alt: Email dialog Email dialog of Workbench To send a changeset as an email, use the changeset context menu of the Workbench. :menuselection:`Export --> Email Patch`. This opens the e-mail dialog for this single changeset. To send a changeset range, use the changeset range selection feature of the Workbench and select :menuselection:`Email selected...` or :menuselection:`Email DAG range...`. Lastly, you can use the :guilabel:`Email` button on the sync tab of the Workbench to email all outgoing changes to the selected remote repository. .. note:: You must configure `SMTP `_ to send patches via email Import Patches ============== .. figure:: figures/import.png :alt: Import tool Import dialog of the WorkBench The import dialog can be opened from the :guilabel:`Repository` menu of the Workbench, or via :command:`thg import`. The dialog supports file and directory drag and drop. You have the choice of importing directly into the repository, the working folder, a shelf file, or your patch queue. .. note:: Importing a patch requires a clean working directory state. You must commit, revert, or shelve changes before importing a patch. .. note:: If a patch does not import itself cleanly into the repository, the recommended recourse is to import the patch into your patch queue (qimport) and then qpush the patch. This uses TortoiseHg patch rejection dialog and preserves the meta-data in the patch header. Do not forget to qrefresh after resolving the rejected chunks. .. warning:: If the patch you are importing does not have a commit message, Mercurial will try to launch your editor, just as if you had tried to import the patch from the command line. Your ui.editor needs to be a GUI app to make this work correctly. Patch Queues ============ .. figure:: figures/patchqueue.png :alt: Patch Queue in Workbench A patch queue in the repository graph When MQ is enabled, several Workbench features are exposed. Context menu options are exposed in the changeset menus, your patch queue is graphed together with your repository's history, and a Patch Queue is activated. Double clicking on an unapplied patch, an applied patch other than the current qtip, or the qparent triggers a qgoto command; making the double clicked revision the current patch. Double clicking on any other revision will trigger a visual diff of that revision. .. note:: The Workbench must be restarted after enabling or disabling the MQ extension in a repository. This is true of most extensions. .. note:: It is recommended to learn the MQ extension before using the MQ features of the Workbench. .. versionchanged:: 2.10 The :guilabel:`Patch Queue` task tab has been superseded by the :guilabel:`Commit` task tab and the :guilabel:`Patch Queue` dock. Patch Rejects ============= As explained previously, patches are not guaranteed to apply cleanly to their intended source files. Prior to TortoiseHg 2.0, the only recourse available when patch chunks were rejected was to open the source file and the rejects file in an editor and manually fixup the rejected chunks. TortoiseHg 2.0 introduces a dialog that makes this a little bit easier. If the shelve tool detects chunk rejections, it offers to open the rejected chunks in the rejects editor. The MQ tool also does this for qpush commands. .. figure:: figures/rejects.png :alt: Patch Rejects Editor Resolve rejected patch chunks The rejects editor is very basic. Your source file is opened in a QScintilla2 window for edit. Below the source file is the list of chunks that failed to apply to this file. When you click on a chunk in the list the editor jumps to the line where the chunk context was supposed to match. It is up to you to figure out why the chunk did not apply and to resolve it (perhaps even by ignoring the chunk). The resolved/unresolved states are for your own book keeping, so you know when all of the chunks have been dealt with. Once you have marked all of the chunks resolved, the :guilabel:`Save` button will become sensitive. .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/preface.txt0000644000000000000000000000643014023111777016536 0ustar00rootroot******* Preface ******* .. module:: preface :synopsis: About this manual Audience ======== This book is written for computer literate folk who want to use Mercurial to manage their data, but are uncomfortable using the command line client to do so. Since TortoiseHg is a Windows shell extension it's assumed that the user is familiar with the Windows explorer and knows how to use it. You can find the most up to date version of this documentation at our `web `_ site. Reading guide ============= This Preface explains a little about the TortoiseHg project, the community of people who work on it, and the licensing conditions for using it and distributing it. The :doc:`intro` explains what TortoiseHg is, what it does, where it comes from and the basics for installing it on your PC. :doc:`quick` is a quick tutorial on how to start with TortoiseHg. :doc:`daily` is the main chapter, it describes the frequently used components of TortoiseHg. :doc:`settings` describes how to configure TortoiseHg. :doc:`nonhg` describes how to use TortoiseHg as a client for non-Mercurial servers. :doc:`faq` has a list of common questions and their answers. :doc:`debugging` describes how to debug any problems that you find. TortoiseHg is free! =================== TortoiseHg is released under `GPLv2 `_. You are free to install it on as many computers as you like, and to redistribute it according to the GPLv2 license. Community ========= Mailing List:: `Developers `_ - Patches, bug reports, development discussions. And our `wiki `_ on Bitbucket. Acknowledgements ================ Thanks to the many people who contribute to the TortoiseHg project. It takes a community of developers, translators, and users to build a truly useful tool (especially users who care enough to report bugs and file feature requests). The TortoiseHg installer for Windows includes the TortoiseOverlays handler, as provided by the `TortoiseSVN `_ project. The history viewer of TortoiseHg is based on `hgview `_, a tool developed by `David Douard `_ and others, with the financial support of `Logilab `_. Conventions used in this manual =============================== The following typographical conventions are used in this manual: :kbd:`Ctrl-A` Indicates a key, or combination of keys, to press. :guilabel:`Commit` Indicates a label, button or anything that appears in user interfaces. :menuselection:`TortoiseHg... --> About` Indicates a menu choice, or a combination of menu choice, tab selection and GUI label. For example :menuselection:`TortoiseHg... --> Global settings --> Commit --> User name` means do something in :guilabel:`User name` label under :guilabel:`Commit` tab selectable from the menu choice :menuselection:`TortoiseHg... --> Global settings`. :file:`.hg/hgrc` Indicates a filename or directory name. :command:`thg log` Indicates a command to enter into command window. ``myproxy:8000`` Indicates a text to enter into a text input field in the GUI. .. note:: This is a note. .. warning:: An important note. Pay attention. .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/quick.txt0000644000000000000000000003365414023111777016255 0ustar00rootroot********************************* A Quick Start Guide to TortoiseHg ********************************* .. module:: tour :synopsis: A Gentle Introduction to Using TortoiseHg on Windows Welcome to TortoiseHg and the Mercurial! TortoiseHg is a set of graphical applications and Windows Explorer shell extension that serve as a friendly front-end to the Mercurial distributed version control system (DVCS). All TortoiseHg functionality is reachable from 3 places: 1. The :command:`Workbench` application You can start the Workbench from the Start Menu, or by right clicking on the Desktop and selecting :menuselection:`Hg Workbench`. .. figure:: figures/desktop-workbench.png :alt: Desktop Context Menu Start the Workbench from the Desktop 2. The :command:`Explorer` context menu All you have to do is right click on the right folder or files in Explorer, and select a context menu entry. 3. The :command:`thg` command line application Type the appropriate commands from any command line interface, in the form :kbd:`thg [options]`. In this quick guide we would like to make you get started using the Workbench application, but we will also indicate how to do the same with the other possibilities. Mercurial commands are also available from the standard :command:`hg` command line application. Configuring TortoiseHg ====================== Your first step should be to make sure that you are correctly identified to TortoiseHg. You do this by opening the global settings dialog. Workbench: select :menuselection:`File --> Settings...` from the menu Explorer: choose :menuselection:`TortoiseHg --> Global Settings` from the context menu Command line: type :command:`thg userconfig` This opens the TortoiseHg settings dialog, editing your global (user) configuration. .. figure:: figures/settings.png :alt: Settings Dialog TortoiseHg Settings Dialog First select the :guilabel:`Commit` page and enter a name in the :guilabel:`Username` field. .. note:: If you neglect to configure a username TortoiseHg will ask you to enter one when you try to *commit*, which is the first time a username is actually required. .. note:: There are no hard fast rules on how to format your username, the field is free form, but the following convention is commonly used:: FullName for example :: Donald Duck The email address is stripped when viewing history in the revision history viewer, and the built-in web server obfuscates email addresses to prevent SPAM. Next, select the :guilabel:`TortoiseHg` page and select the :guilabel:`Three-way Merge Tool` entry. In the drop down list you will find all of the merge tools detected on your computer (kdiff3 is provided by the Windows installer) and a number of internal merge behaviors. Select your preferred merge tool. If you prefer for TortoiseHg to also use your selected merge tool for visual diffs, you can leave the :guilabel:`Visual Diff Tool` unspecified. Otherwise, select your favorite visual diff tool from the drop down list of detected visual diff tools. If there are no options in either drop-down list, you must install a diff/merge tool that is supported by our mergetools.rc or configure your own tool. .. note:: If you installed TortoiseHg from source, you need to add our :file:`contrib/mergetools.ini` file to your HGRC path in some way. One approach is to *%include* it from your :file:`~/.hgrc` file. Feel free to configure other global settings while you have the dialog open. You will have the chance later to override these global settings with repository local settings, if required. Click the :guilabel:`OK` button to save the changes you have made and close the settings dialog. .. note:: Most TortoiseHg settings changes are noticed immediately, but loading or unloading extensions usually requires restarting all open applications for the changes to take effect. Getting Acquainted ================== Mercurial supports many different `collaboration models `_. This chapter describes just one of those models: a single central repository. The central repository model does not scale as well as other models, but it is the most familiar to those coming from other revision tools and thus is the most common approach people start with. To get started, suppose you volunteer to create the central repository. There are ways to `convert `_ non-Mercurial repositories into Mercurial repositories, but this example assumes you are starting from scratch. Initialize the repository ========================= Create the initial repository on your local machine: Workbench: select :menuselection:`File --> New Repository...` from the menu Explorer: select :menuselection:`TortoiseHg --> Create Repository Here` from the context menu Command line: type :command:`thg init` You can do this from within the folder you want to create the repository in, or enter the correct path in the dialog. You only need to do this once in the root folder of your project. .. figure:: figures/init.png :alt: Init dialog Repository Init Dialog We suggest you keep :guilabel:`Create special files (.hgignore, ...)` checked, and do not check :guilabel:`Make repo compatible with Mercurial < 1.7`, unless you have a strong reason to do so. After pressing :guilabel:`Create`, Mercurial creates a subdirectory in your project folder named :file:`.hg`. This is where Mercurial keeps all its version data. It is called the *repository* or *store*, while the directory containing the source files is called the *working directory*. You never need to specify the :file:`.hg` directory when running commands, you only need to specify the working directory root. It is mentioned here just so you better understand how Mercurial works. The new repository will also be added to the RepoRegistry when you perform this operation from the Workbench. .. warning:: It is dangerous to manually edit the files in :file:`.hg` directory, repository corruption can occur. :file:`.hg/hgrc` is perhaps the only exception to this rule. .. note:: Perhaps you already created one or more repositories. As you can manage multiple repositories in the Workbench at the same time, you can add these existing repositories by selecting :menuselection:`File --> Open Repository...` from its menu, and selecting their folder. Or you could drag their folder from Explorer into the RepoRegistry pane. Add files ========= Now it's time to tell Mercurial which files must be tracked. There are various ways to do this: 1. Workbench: goto the Commit task tab, rightclick on the file, and select :menuselection:`Add` from the context menu. This will change the status indication of that file into 'A' and the filename will turn green. 2. Explorer: select :menuselection:`TortoiseHg --> Add Files...` in the context menu. A dialog will open for you to check the selected files and accept the add operation. You can also open the status tool by selecting :menuselection:`TortoiseHg --> View File Status`. Check the files you want to add and select :guilabel:`Add` from the file context menu. 3. Command line: type :command:`thg status` 4. Or skip adding new files as a separate step and have the commit tool add them implicitly. The commit tool is very similar to the status tool and allows you to do all of the same tasks. In this tool you can add and commit an untracked file by just checking the file and pressing :guilabel:`Commit`. Ignore files ============ You may have some files in the foldertree of your repository that you don't want to track. These can be intermediate results from builds f.i. that you do not wish to always delete immediately, or files your editor generates, etc. You can mark these files as ignored in some different ways too. 1. Workbench: goto the Commit task tab, rightclick on the file, and select :menuselection:`Ignore...` from the context menu to open the ignore filter dialog. 2. Explorer: select :menuselection:`TortoiseHg --> Edit Ignore Filter`. 3. Command line: type :command:`thg hgignore` to bring up the ignore filter dialog. 4. You can also launch the ignore filter from the status tool (the menu option is named :guilabel:`Ignore`). Choose a file from the list or manually type in a *Glob* or *Regular expression* filter and then press :guilabel:`Add`. Changes to the ignore filter take effect immediately. .. note:: The :file:`.hgignore` file, contained in the working directory root, is typically tracked (checked in). .. note:: It is good practice to not have many *unknown* files in your working directory, as it makes it too easy to forget to add vital new files. It is recommended that you keep your :file:`.hgignore` file up to date. Commit ====== Commit your local repository now: Workbench: click on the Working Directory revision which also selects the Commit task tab, or directly select the Commit task tab Explorer: right-clicking anywhere in the folder, or on the folder itself, and then selecting :guilabel:`Hg Commit...` Command line: type :command:`thg commit` Write a commit message, select the files you wish to commit, then press :guilabel:`Commit`. Your previous commit message will be in the message history drop-down, so you do not have to type it in again from scratch. .. figure:: figures/commit.png :alt: Commit dialog Commit Tool Share the repository ==================== Now you are ready to share your work. You do this by making a copy of your repository in a public location that everyone in your group can read. Mercurial calls this copy operation *cloning your repository*. To clone your repository to a shared drive: Workbench: select :menuselection:`File --> Clone Repository...` from the menu Explorer: select :menuselection:`TortoiseHg --> Clone...` from the context menu Command line: type :command:`thg clone` Then enter the destination path, and click :guilabel:`Clone`. .. figure:: figures/share.png :alt: Clone dialog Clone Dialog When you create a clone for the purposes of generating a *central repository* there is no reason for that clone to have a working directory. Checking :guilabel:`Do not update the new working directory` under :guilabel:`Options` will prevent Mercurial from checking out a working copy of the repository in the central repository clone. It will only have the :file:`.hg` directory, which stores the entire revision history of the project. Other team members can clone from this clone with or without a checked out working directory. Fetching from the group repository ================================== You want to start collaborating with your team. They tell you something like *fetch the repository from x*. What does that mean? It means that you want to make a copy of the repository located at x on your local machine. Mercurial calls this cloning and TortoiseHg has a dialog for it. Workbench: select :menuselection:`File --> Clone Repository...` from the menu Explorer: select :menuselection:`TortoiseHg --> Clone...` from the context menu Command line: type :command:`thg clone` Then enter the destination path, and click :guilabel:`OK`. .. figure:: figures/clone.png :alt: Clone dialog Clone Dialog This time you do want to update the working directory because you want to work on the project, under :guilabel:`Options` uncheck :guilabel:`Do not update the new working directory` so Mercurial updates the working directory with the *tip* revision in your new clone. Working with your repository ============================ Suppose you've introduced some changes. It is easy to discover what pending changes there are in the repository. Workbench: go to the Commit task tab and inspect the filelist at the left Any files marked with 'A' (added, green), with '?' (unversioned but not ignored, fuchsia), with 'M' (modified, blue), or with '!' (removed, red) indicate pending changes that should be committed. The Commit task tab in the Workbench gives you a way to see differences within the files, or you can use your visual difference tool (kdiff3). Mercurial allows you to commit many changes before you decide to synchronize (share changes) with the group repository. Explorer: inspect the icons on the folders and files in your repository Folders or files in Explorer marked with one of the icons below are another way of indicating pending changes. You can traverse the directories to find specific changes and commit them from Explorer. Though it might be quicker to do that from the Commit task tab in the Workbench. .. figure:: figures/overlayicons.png :alt: Overlay Icons Overlay Icons on Vista Command line: type :command:`thg commit` When you're ready to publish your changes, you 1. Commit your changes to your local repository (see above). 2. Pull changes from the group repository into your repository using :menuselection:`TortoiseHg --> Workbench` or :command:`thg log`, select the Sync task tab, choose the path to the group repository in the syncbar and then click the :guilabel:`Pull` button. 3. If some changesets were pulled, merge those changes with your local changes and then commit the merge into your local repository. From the revision history viewer (:menuselection:`TortoiseHg --> Workbench` or :command:`thg log`) open the context menu over the changeset which you want to merge and select :guilabel:`Merge with local...`. Finally, in the merge dialog, press :guilabel:`Merge` and then :guilabel:`Commit`. 4. Ensure your merged work still builds and passes your extensive test suite. 5. Push your changes to the group repository, :menuselection:`TortoiseHg --> Workbench` or :command:`thg log`, select the path to group repository and then click the :guilabel:`Push` button. Which may sound complicated, but is easier than it sounds. .. note:: Merges can be safely restarted if necessary. Mercurial makes collaboration easy, fast, and productive. Learn more at Mercurial's `wiki `_. .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/serve.txt0000644000000000000000000000362014023111777016253 0ustar00rootrootServe ===== Mercurial comes with an in-built, light-weight web server capable of serving a single repository for single connection. Serve does not provide user authentication, but does provide a convenient, ad-hoc method of synchronizing a repository over a local network. For more complete information on publishing repositories, see the Mercurial wiki article on `Publishing Repositories `_. From TortoiseHg --------------- .. module:: serve.dialog :synopsis: Dialog used to start/stop the web server .. figure:: figures/serve.png :alt: Web server dialog The serve tool is a wrapper for Mercurial's built-in web server. Once launched, a computer can connect to the http port and browse your repositories, perform clone, pull, or even push operations if enabled. The web server can be launched from either the Workbench (:ref:`Repository Menu `) or the :ref:`Context Menu `. Toolbar buttons: :guilabel:`Start` start the web server :guilabel:`Stop` stop the web server :guilabel:`Configure` Configure repository web style, description, and access policies When the settings dialog is launched via the :guilabel:`Configure` button, it is run in the context of the current repository. Please visit the Mercurial wiki for detailed descriptions of the various web configurations. In TortoiseHg 2.0, the serve tool natively supports collections of local repositories. Just drag them onto the web serve dialog while it is not running, or add them by hand using the editing buttons. The repository collections can be saved and reloaded. From command line ----------------- The server tool can be started from command line :: thg serve [OPTION]... start stand-alone webserver options: --webdir-conf name of the webdir config file use "thg -v help serve" to show global options .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1701080436.0 tortoisehg-6.9/doc/source/settings.txt0000644000000000000000000006252214531066564017004 0ustar00rootroot******** Settings ******** .. module:: settings.dialog :synopsis: Dialog used to set preferences .. figure:: figures/settings.png :alt: Settings dialog Settings dialog The Settings dialog is used to configure both TortoiseHg and the underlying Mercurial DVCS. Since TortoiseHg uses Mercurial's underlying configuration system to store and retrieve its settings, these are essentially the same thing. Mercurial on Windows has a three-tier configuration system. 1) A site-wide configuration file in :file:`C:\\Program Files\\TortoiseHg\\Mercurial.ini` This file is read first and thus has the lowest priority. 2) A per-user configuration file in :file:`C:\\Documents and Settings\\username\\Mercurial.ini` This file is read second and thus can override settings in the site-wide configuration file. 3) A per-repository configuration file in :file:`repo-root\\.hg\\hgrc` This file is read last and can override site-wide and user global settings. The site-wide file can be overwritten on upgrades so it is recommended that you do not make changes to this file. Instead, you should make changes to your user :file:`Mercurial.ini` and/or the repository :file:`hgrc` file. The TortoiseHg Settings dialog enforces this suggestion by only operating in two modes: Global edits your user :file:`Mercurial.ini` file Repository edits a repository :file:`.hg/hgrc` file You may toggle between the two modes using the combo box at the top of the dialog, or directly edit the file in your configured visual editor. Most TortoiseHg users will want to store all configurables in their global user settings, and only use the repository hgrc to store paths (remote repository aliases) and web settings, though it is possible to override many configurables per-repository (a common example is to configure a username for use in a specific repository). Also note that the user and repository configuration files may not exist until you run the Settings dialog for the first time. Tabs ==== The Settings tool is a tabbed application. Each tab corresponds roughly to a section of your :file:`Mercurial.ini` file, though there is a certain amount of overlap. Some sections were split across multiple tabs for clarity. Every tab but :guilabel:`Sync` has the same format, a list of configurable options with a drop-down combo box with possible values and a history of options you have used for that setting. The configurable name (label) has a tooltip which describes in more detail what you are configuring and its default value. The description of the currently focused configurable is also shown in a text box at the bottom of the dialog. Please consult the Mercurial wiki for more detailed information about these configurables (except for the first three tabs: :guilabel:`TortoiseHg`, :guilabel:`Commit`, :guilabel:`Changelog`, which are specific to TortoiseHg). .. module:: TortoiseHg.settings :synopsis: Dialog used to set general TortoiseHg preferences TortoiseHg ---------- :guilabel:`UI Language:` Specify your preferred user interface language (restart needed) :guilabel:`3-way Merge Tool:` Graphical merge program for resolving merge conflicts. If left unspecified, Mercurial will use the first applicable tool it finds on your system or use its internal merge tool that leaves conflict markers in place. Chose :guilabel:`internal:merge` to force conflict markers, :guilabel:`internal:prompt` to always select local or other, or :guilabel:`internal:dump` to leave files in the working directory for manual merging. :guilabel:`Visual Diff Tool:` Specify visual diff tool as described in the [merge-tools] section of your Mercurial configuration files. If left unspecified, TortoiseHg will use the selected merge tool. Failing that it uses the first applicable tool it finds. :guilabel:`Visual Editor:` Specify visual editor, as described in the ``[editor-tools]`` section of your Mercurial configuration files. If left unspecified, TortoiseHg will use the first applicable tool it finds. :guilabel:`CLI Editor:` The editor used by Mercurial command line commands to collect multiline input from the user. Most notably, commit messages. :guilabel:`Shell:` Specify the command to launch your preferred terminal shell application. If the value includes the string ``%(reponame)s``, the name of the repository will be substituted in place of ``%(reponame)s``. Similarly, ``%(root)s`` will be the full path to the repository. (restart needed) Default, Windows: ``cmd.exe /K title %(reponame)s`` Default, OS X: not set Default, other: ``xterm -T "%(reponame)s"`` :guilabel:`Immediate Operations:` Space separated list of shell operations you would like to be performed immediately, without user interaction. Commands are "add remove revert forget". Default: None (leave blank) :guilabel:`Tab Width:` Specify the number of spaces that tabs expand to in various TortoiseHg windows. Default: 8 :guilabel:`Force Repo Tab:` Always show repo tabs, even for a single repo. Default: False :guilabel:`Monitor Repo Changes:` Specify the target filesystem where TortoiseHg monitors changes. Default: localonly :guilabel:`Max Diff Size:` The maximum size file (in KB) that TortoiseHg will show changes for in the changelog, status, and commit windows. A value of zero implies no limit. Default: 1024 (1MB). :guilabel:`Fork GUI:` When running thg from the command line, fork a background process to run graphical dialogs. Default: True. :guilabel:`Full Path Title:` Show a full directory path of the repository in the dialog title instead of just the root directory name. Default: False :guilabel:`Auto-resolve merges:` Indicates whether TortoiseHg should attempt to automatically resolve changes from both sides to the same file, and only report merge conflicts when this is not possible. When False, all files with changes on both sides of the merge will report as conflicting, even if the edits are to different parts of the file. In either case, when conflicts occur, the user will be invited to review and resolve changes manually. Default: True. :guilabel:`New Repo Skeleton:` If specified, files in the directory, e.g. ``.hgignore``, are copied to the newly-created repository. .. module:: workbench.settings :synopsis: Dialog used to set workbench specific preferences Workbench --------- :guilabel:`Single Workbench Window:` Select whether you want to have a single workbench window. If you disable this setting you will get a new workbench window everytime that you use the "Hg Workbench" command on the explorer context menu. Default: True :guilabel:`Default widget:` Select the initial widget that will be shown when opening a repository. Default: revdetails :guilabel:`Initial revision:` Select the initial revision that will be selected when opening a repository. You can select the "current" (i.e. the working directory parent), the current "tip" or the working directory ("workingdir"). Default: current :guilabel:`Open new tabs next to the current tab:` Should new tabs be open next to the current tab? If False new tabs will be open after the last tab. Default: True :guilabel:`Author Coloring:` Color changesets by author name. Default: False :guilabel:`Full Authorname:` Show full authorname in Logview. If not enabled, only a short part, usually name without email is shown. Default: False :guilabel:`Task Tabs:` Show tabs along the side of the bottom half of each repo widget allowing one to switch task tabs without using the toolbar. Default: off :guilabel:`Task Toolbar Order:` Specify which task buttons you want to show on the task toolbar and in which order. Type a list of the task button names. Add separators by putting "|" between task button names. Valid names are: log commit sync grep. Default: log commit grep | sync :guilabel:`Long Summary:` If true, concatenate multiple lines of changeset summary and truncate them at 80 characters as necessary. Default: False :guilabel:`Log Batch Size:` The number of revisions to read and display in the changelog viewer in a single batch. Default: 500 :guilabel:`Dead Branches:` Comma separated list of branch names that should be ignored when building a list of branch names for a repository. Default: None (leave blank) :guilabel:`Branch Colors:` Space separated list of branch names and colors of the form ``branch:#XXXXXX``. Spaces and colons in the branch name must be escaped using a backslash (``\``). Likewise some other characters can be escaped in this way, e.g. ``\u0040`` will be decoded to the ``@`` haracter, and ``\n`` to a linefeed. Default: None (leave blank) :guilabel:`Hide Tags:` Space separated list of tags that will not be shown. Useful example: Specify "qbase qparent qtip" to hide the standard tags inserted by the Mercurial Queues Extension. Default: None (leave blank) :guilabel:`Activate Bookmarks:` Select when TortoiseHg will show a prompt to activate a bookmark when updating to a revision that has one or more bookmarks. ``auto`` : Try to automatically activate bookmarks. When updating to a revision that has a single bookmark it will be activated automatically. Show a prompt if there is more than one bookmark on the revision that is being updated to. ``prompt`` : The default. Show a prompt when updating to a revision that has one or more bookmarks. ``never`` : Never show any prompt to activate any bookmarks. Default: prompt :guilabel:`Show Family Line:` Show indirect revision dependency on the revision graph when filtered by revset. Default: True .. note:: Calculating family line may be slow in some cases. This option is expected to be removed if the performance issue is solved. .. module:: commit.settings :synopsis: Dialog used to set commit specific preferences Commit ------ :guilabel:`Username:` Name associated with commits. The common format is: ``Full Name `` :guilabel:`Ask Username:` If no username has been specified, the user will be prompted to enter a username. Default: False :guilabel:`Summary Line Length:` Suggested length of commit message lines. A red vertical line will mark this length. :guilabel:`CTRL-E` will reflow the current paragraph to the specified line length. Default: 80 :guilabel:`Close After Commit:` Close the commit tool after every successful commit. Default: False :guilabel:`Push After Commit:` Attempt to push to default push target after every successful commit. Default: No push :guilabel:`Auto Commit List:` Comma separated list of files that are automatically included in every commit. Intended for use only as a repository setting. Default: None (leave blank) :guilabel:`Auto Exclude List:` Comma separated list of files that are automatically unchecked when the status, and commit dialogs are opened. Default: None (leave blank) :guilabel:`English Messages:` Generate English commit messages even if :envvar:`LANGUAGE` or :envvar:`LANG` environment variables are set to a non-English language. This setting is used by the Merge, Tag and Backout dialogs. Default: False :guilabel:`New Commit Phase:` The phase of new commits. Default: draft :guilabel:`Secret MQ Patches:` Make MQ patches secret (instead of draft). Default: False :guilabel:`Check Subrepo Phase:` Check the phase of the current revision of each subrepository. For settings other than "ignore", the phase of the current revision of each subrepository is checked before committing the parent repository. Default: follow :guilabel:`Monitor working directory changes:` Select when the working directory status list will be refreshed: ``auto`` : default let TortoiseHg decide when to refresh the working directory status list. TortoiseHg will refresh the status list whenever it performs an action that may potentially modify the working directory. *This may miss any changes that happen outside of TortoiseHg's control*; ``always`` : in addition to the automatic updates above, also refresh the status list whenever the user clicks on the "working dir revision" or on the "Commit icon" on the workbench task bar; ``alwayslocal`` : same as ``always`` but restricts forced refreshes to *local repos*. Default: auto :guilabel:`Confirm adding unknown files:` Determines if TortoiseHg should show a confirmation dialog before adding new files in a commit. If True, a confirmation dialog will be shown. If False, selected new files will be included in the commit with no confirmation dialog. Default: True :guilabel:`Confirm deleting files:` Determines if TortoiseHg should show a confirmation dialog before removing files in a commit. If True, a confirmation dialog will be shown. If False, selected deleted files will be included in the commit with no confirmation dialog. Default: True .. module:: sync.settings :synopsis: Dialog used to set sync specific preferences Sync ---- :guilabel:`After Pull Operation:` Operation which is performed directly after a successful pull. update equates to ``pull --update``, fetch equates to the fetch extension, rebase equates to ``pull --rebase``, updateorrebase equates to ``pull -u --rebase``. Default: none :guilabel:`Default Push:` Select the revisions that will be pushed by default, whenever you click the Push button. ``all`` : The default. Push all changes in *all branches*. ``branch`` : Push all changes in the *current branch*. ``revision`` : Push the changes in the current branch *up to the current revision*. Default: all :guilabel:`Confirm Push:` Determines if TortoiseHg should show a confirmation dialog before pushing changesets. If False, push will be performed without any confirmation dialog. Default: True :guilabel:`Target Combo:` Select if TortoiseHg will show a target combo in the sync toolbar. ``auto`` : The default. Show the combo if more than one target configured. ``always``: Always show the combo. Default: auto :guilabel:`SSH Command:` Command to use for SSH connections. Default: ``ssh`` or ``TortoisePlink.exe -ssh -2`` (Windows) .. module:: server.settings :synopsis: Dialog used to set web server specific preferences Server ------ **Repository Details:** :guilabel:`Name:` Repository name to use in the web interface, and by TortoiseHg as a shorthand name. Default is the working directory. :guilabel:`Encoding:` Character encoding of files in the repository, used by the web interface and TortoiseHg. :guilabel:`'Publishing' repository:` Controls draft phase behavior when working as a server. When true, pushed changesets are set to public in both client and server and pulled or cloned changesets are set to public in the client. Default: True **Web Server:** :guilabel:`Description:` Textual description of the repository's purpose or contents. :guilabel:`Contact:` Name or email address of the person in charge of the repository. :guilabel:`Style:` Which template map style to use. :guilabel:`Archive Formats:` Comma separated list of archive formats allowed for downloading. :guilabel:`Port:` Port to listen on. :guilabel:`Push Requires SSL:` Whether to require that inbound pushes be transported over SSL to prevent password sniffing. :guilabel:`Stripes:` How many lines a "zebra stripe" should span in multiline output. Default is 1; set to 0 to disable. :guilabel:`Max Files:` Maximum number of files to list per changeset. :guilabel:`Max Changes:` Maximum number of changes to list on the changelog. :guilabel:`Allow Push:` Whether to allow pushing to the repository. If empty or not set, push is not allowed. If the special value "*", any remote user can push, including unauthenticated users. Otherwise, the remote user must have been authenticated, and the authenticated user name must be present in this list (separated by whitespace or ","). The contents of the allow_push list are examined after the deny_push list. :guilabel:`Deny Push:` Whether to deny pushing to the repository. If empty or not set, push is not denied. If the special value "*", all remote users are denied push. Otherwise, unauthenticated users are all denied, and any authenticated user name present in this list (separated by whitespace or ",") is also denied. The contents of the deny_push list are examined before the allow_push list. .. module:: proxy.settings :synopsis: Dialog used to set proxy specific preferences Proxy ----- :guilabel:`Host:` Host name and (optional) port of proxy server, for example ``myproxy:8000``. :guilabel:`Bypass List:` Optional. Comma-separated list of host names that should bypass the proxy. :guilabel:`User:` Optional. User name to authenticate with at the proxy server. :guilabel:`Password:` Optional. Password to authenticate with at the proxy server. .. module:: email.settings :synopsis: Dialog used to set email specific preferences Email ----- :guilabel:`From:` Email address to use in the "From" header and for the SMTP envelope. :guilabel:`To:` Comma-separated list of recipient email addresses. :guilabel:`Cc:` Comma-separated list of carbon copy recipient email addresses. :guilabel:`Bcc:` Comma-separated list of blind carbon copy recipient email addresses. :guilabel:`method:` Optional. Method to use to send email messages. If value is "smtp" (default), use SMTP (configured below). Otherwise, use as name of program to run that acts like sendmail (takes :command:`-f` option for sender, list of recipients on command line, message on stdin). Normally, setting this to ``sendmail`` or ``/usr/sbin/sendmail`` is enough to use sendmail to send messages. :guilabel:`SMTP Host:` Host name of mail server. :guilabel:`SMTP Port:` Port to connect to on mail server. Default: 25. :guilabel:`SMTP TLS:` Method to enable TLS when connecting to mail server. Default: none :guilabel:`SMTP Username:` Username to authenticate to mail server with. :guilabel:`SMTP Password:` Password to authenticate to mail server with. :guilabel:`Local Hostname:` Hostname the sender can use to identify itself to the mail server. .. module:: diff.settings :synopsis: Dialog used to set diff specific preferences Diff and Annotate ----------------- :guilabel:`Patch EOL:` Normalize file line endings during and after patch to lf or crlf. Strict does no normalization. Auto does per-file detection, and is the recommended setting. Default: strict :guilabel:`Git Format:` Use git extended diff header format. Default: False. :guilabel:`MQ Git Format:` When set to ``auto``, mq will automatically use git patches when required to avoid losing changes to file modes, copy records or binary files. If set to ``keep``, mq will obey the ``[diff]`` section configuration while preserving existing git patches upon qrefresh. If set to ``yes`` or ``no``, mq will override the ``[diff]`` section and always generate git or regular patches, possibly losing data in the second case. Default: auto :guilabel:`No Dates:` Do not include modification dates in diff headers. Default: False. :guilabel:`Show Function:` Show which function each change is in. Default: False. :guilabel:`Ignore White Space:` Ignore white space when comparing lines. Default: False. :guilabel:`Ignore WS Amount:` Ignore changes in the amount of white space. Default: False. :guilabel:`Ignore Blank Lines:` Ignore changes whose lines are all blank. Default: False. **Annotate:** :guilabel:`Ignore White Space:` Ignore white space when comparing lines in the annotate view. Default: False :guilabel:`Ignore WS Amount:` Ignore changes in the amount of white space in the annotate view. Default: False :guilabel:`Ignore Blank Lines:` Ignore changes whose lines are all blank in the annotate view. Default: False .. module:: font.settings :synopsis: Dialog used to set font specific preferences Font ---- :guilabel:`Message Font:` Font used to display commit messages. Default: monospace 10 :guilabel:`Diff Font:` Font used to display text differences. Default: monospace 10 :guilabel:`List Font:` Font used to display file lists. Default: sans 9 :guilabel:`ChangeLog Font:` Font used to display changelog data. Default: monospace 10 :guilabel:`Output Font:` Font used to display output messages. Default: sans 8 .. module:: issue.settings :synopsis: Dialog used to set issue tracking specific preferences Issue Tracking -------------- :guilabel:`Issue Regex:` Defines the regex to match when picking up issue numbers. :guilabel:`Issue Link:` Defines the command to run when an issue number is recognized. You may include groups in issue.regex, and corresponding ``{n}`` tokens in issue.link (where n is a non-negative integer). ``{0}`` refers to the entire string matched by issue.regex, while ``{1}`` refers to the first group and so on. If no ``{n}`` tokens are found in issue.link, the entire matched string is appended instead. :guilabel:`Inline Tags:` Show tags at start of commit message. :guilabel:`Mandatory Issue Reference:` When committing, require that a reference to an issue be specified. If enabled, the regex configured in 'Issue Regex' must find a match in the commit message. :guilabel:`Issue Tracker Plugin:` Configures a COM ``IBugTraqProvider`` or ``IBugTraqProvider2`` issue tracking plugin. :guilabel:`Configure Issue Tracker:` Configure the selected COM Bug Tracker plugin. :guilabel:`Issue Tracker Trigger:` Determines when the issue tracker state will be updated by TortoiseHg. Valid settings values are: ``never`` : Do not update the Issue Tracker state automatically. ``commit`` : Update the Issue Tracker state after a successful commit. Default: never :guilabel:`Changeset Link:` A "template string" that, when set, turns the revision number and short hashes that are shown on the revision panels into links. The "template string" uses a "mercurial template"-like syntax that currently accepts two template expressions: ``{node|short}`` : replaced by the 12 digit revision id (note that ``{node}`` on its own is currently unsupported). ``{rev}`` : replaced by the revision number. For example, in order to link to heptapod commit pages you can set this to: ``https://foss.heptapod.net/mercurial/tortoisehg/thg/-/commit/{node}`` .. module:: reviewboard.settings :synopsis: Dialog used to set review board specific preferences Review Board ------------ :guilabel:`Server:` Path to review board example ``http://demo.reviewboard.org`` :guilabel:`User:` User name to authenticate with review board :guilabel:`Password:` Password to authenticate with review board :guilabel:`Server Repository ID:` The default repository id for this repo on the review board server :guilabel:`Target Groups:` A comma separated list of target groups :guilabel:`Target People:` A comma separated list of target people .. module:: largefiles.settings :synopsis: Dialog used to set largefiles specific preferences Largefiles ---------- :guilabel:`Patterns:` Files with names meeting the specified patterns will be automatically added as largefiles :guilabel:`Minimum Size:` Files of at least the specified size (in megabytes) will be added as largefiles :guilabel:`User Cache:` Path to the directory where a user's cache of largefiles will be stored .. module:: projrc.settings :synopsis: Dialog used to set projrc specific preferences Projrc ------ :guilabel:`Require confirmation:` When to ask the user to confirm the update of the local "projrc" configuration file when the remote projrc file changes. Possible values are: ``always`` : default Always show a confirmation prompt before updating the local ``.hg/projrc`` file. ``first`` : Show a confirmation dialog when the repository is cloned or when a remote projrc file is found for the first time. ``never`` : Update the local ``.hg/projrc`` file automatically, without requiring any user confirmation. :guilabel:`Servers:` List of Servers from which "projrc" configuration files must be pulled. Set it to "*" to pull from all servers. Set it to "default" to pull from the default sync path. Default is pull from NO servers. :guilabel:`Include:` List of settings that will be pulled from the project configuration file. Default is include NO settings. :guilabel:`Exclude:` List of settings that will NOT be pulled from the project configuration file. Default is exclude none of the included settings. :guilabel:`Update on incoming:` Let the user update the projrc on incoming: ``never`` : default Show whether the remote projrc file has changed, but do not update (nor ask to update) the local projrc file. ``prompt`` : Look for changes to the projrc file. If there are changes *always* show a confirmation prompt, asking the user if it wants to update its local projrc file. ``auto`` : Look for changes to the projrc file. Use the value of the "projrc.confirm" configuration key to determine whether to show a confirmation dialog or not before updating the local projrc file. Default: never .. module:: gpg.settings :synopsis: Dialog used to set gpg specific preferences GnuPG ----- :guilabel:`Command:` Specify the path to GPG. Default: gpg :guilabel:`Key ID:` GPG key ID associated with user. Default: None (leave blank) Keyboard navigation =================== :kbd:`Ctrl-Enter` Apply changes and close the tool, the equivalent of pressing the 'Ok' button. From command line ================= The setting dialog can be started from command line :: thg repoconfig for the repository settings (:file:`.hg/hgrc` file) or :: thg userconfig for the user configuration (:file:`Mercurial.ini` file). The syntax is simple, no options or parameters are needed, except the global options. .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/shelve.txt0000644000000000000000000000707014023111777016420 0ustar00rootrootShelve ====== .. module:: shelve.dialog :synopsis: Dialog used to move changes The shelve tool can move changes between the working directory and shelf patches. If the MQ extension has been enabled, it can also move changes into and out of unapplied patches. The shelve tool can be launched by the Workbench :guilabel:`Repository --> Shelve` menu option, by a toolbar button on working file viewers, or by :command:`thg shelve`. .. note:: We highly recommend setting the patch eol configuration to auto if you use the shelve tool with DOS eoln text files. .. figure:: figures/shelve.png :alt: Shelve dialog Shelve dialog Features -------- The shelve tool has three toolbars. A right and left toolbar for the two side by side panels, and a central toolbar for refresh and creating a new shelf patch. The right and left toolbars are mirrors of each other, offering the same functionality in alternate directions. The left toolbar has these actions: :guilabel:`Delete selected chunks` Remove, or revert, all selected (toggled) chunks in the currently selected file. :guilabel:`Move all files right` Move all changes in all files to the patch selected in the right pane. :guilabel:`Move selected file right` Move all changes in the currently selected file to the patch selected in the right pane. :guilabel:`Edit selected file` If the working directory is being browsed, this button edits the currently selected file. Else it edits the currently viewed patch file. :guilabel:`Move selected chunks right` Move all selected (toggled) chunks to the patch selected in the right pane. The central toolbar has two actions: :guilabel:`Refresh` Refreshes the patch drop down lists and the working copy view :guilabel:`New Shelf` Creates a new shelf file. You must enter a name, though a reasonable default is provided. The right toolbar will move changes from the patch selected on the left side to the patch selected on the right side, or the working copy if it has been selected on the right. Patch Panes ----------- The right and the left patch panes are identical save for the working copy changes are only available on the left. Selectable chunks are only displayed if the file is text and is in a modified state. Added or removed files can be shelved but parts of the file cannot be individually selected. The :guilabel:`Clear` button will empty the currently selected patch or revert the entire working copy. The :guilabel:`Delete` button will delete the currently selected shelf patch. .. note:: The :guilabel:`Delete` button is not sensitive when an MQ patch is selected. MQ patches must be deleted via qdelete using the Workbench context menu or the Patch Queue widget. When right clicking on a file in the file list, you will get a context menu of commands. :guilabel:`Visual Diff` Open the selected file in your default visual diff tool. Only enabled for working copy files. :guilabel:`Edit Local` Open the working copy version of the selected file. :guilabel:`Revert to Revision` Revert all changes to the selected file. Only enabled for working copy files. Trashcan -------- The shelve tool is very conservative with your source and patch files. Before it modifies any file it makes a backup under :file:`.hg/Trashcan`. This trashcan can be emptied by running the purge dialog from the Workbench :guilabel:`Repository --> Purge` menu option. From command line ----------------- The shelve tool can be started from command line:: thg shelve aliases: unshelve shelve tool use "thg -v help shelve" to show global options .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/sync.txt0000644000000000000000000002555614023111777016117 0ustar00rootrootSynchronize =========== .. module:: synchronize.dialog :synopsis: Dialog used to perform synchronization operations .. figure:: figures/synchronize.png :alt: Synchronize dialog Synchronize dialog The synchronize tool is used to transmit changesets between repositories or to email recipients. :guilabel:`Incoming` show changesets that would be pulled from target repository, the changes in the target repository that are not in local repository :guilabel:`Pull` pull incoming changesets from target repository :guilabel:`Outgoing` show changesets that would be pushed to target repository, the changes in the local repository that are not in target repository :guilabel:`Push` push outgoing changesets to target repository, make the local *tip* the new *tip* in the target repository :guilabel:`Email` send outgoing changesets (to target repository) as email :guilabel:`Stop` stop current operation The :guilabel:`Post Pull` dialog contains radio buttons for selecting the operation which is performed after a pull. If you open the configuration tool, you can select a default behavior for your user account and override that selection on a per-repository basis. :guilabel:`None` No operations are performed after a pull. You will be allowed to view the pulled changesets in the log viewer, and you will have the option to update to the new tip if applicable. :guilabel:`Update` Automatically update to the current branch tip if, and only if, new revisions were pulled into the local repository. This could trigger a merge if the pulled changes conflict with local uncommitted changes. :guilabel:`Fetch` Equivalent to hg fetch. See the fetch extension documentation for its behavior. This feature is only available if the fetch extension has been enabled by the user. :guilabel:`Rebase` Equivalent to pull --rebase. See the rebase extension documentation for its behavior. This feature is only available if the rebase extension has been enabled by the user. :guilabel:`Automatically resolve merge conflicts where possible` If update or rebase are selected, a pull operation may result in a merge. If checked, Mercurial will try to resolve trivial merge conflicts without user interaction. If not checked, all merges will be interactive. The :guilabel:`Options` dialog provides checkboxes for selecting infrequently used command options. :guilabel:`Allow push of a new branch` allow a new named branch to be pushed :guilabel:`Force pull or push` override warnings about multiple heads or unrelated repositories :guilabel:`Recurse into subdirectories` incoming or outgoing commands can recurse into subdirectories and provide a full report :guilabel:`Temporarily disable configured proxy` only sensitive when a web proxy is configured for the given repository. While checked it will disable that proxy. :guilabel:`Remote Command` provides a --remotecmd argument When the sync tool is opened within the Workbench, the toolbar has a :guilabel:`Target` checkbox. While checked, the target dropdown box is sensitive and the selected target revision, bookmark, or branch will be added to every synchronization command. When the sync tool is opened outside of the Workbench, the target checkbox and dropdown box is hidden. Clicking on a revision in the graph will update the values in the dropdown box. Holding :kbd:`Alt` while clicking on a revision will select the revision without switching away from the sync tool tab. Below the toolbar is the currently selected URL. All synchronization commands will use this URL. The general effect of the toolbar is that it can be read as a Mercurial command line. The tool buttons select the command, the :guilabel:`Post Pull` and :guilabel:`Options` dialog specify options, the target dropdown box can specify revisions, and finally the URL completes the command. Adding an URL ------------- By far the easiest way to add a new URL to your respository is to drag and drop the URL from another application, then press the save button and provide the URL an alias. The two list panes display URLs that are stored in the current repository's configuration file (:guilabel:`Stored Paths`) and URLs that are stored in other related repositories that are listed in the Workbench repository registry (:guilabel:`Related Paths`). When the sync tool is opened outside of the Workbench, the :guilabel:`Related Paths` list will be empty. .. note:: Being related means two repositories share at least a common root changeset. Cloned are obviously related. Push and pull operations require that repositories to be related, or that you use --force to override the relationship check. The URL lists have a context menu that allows you to browse, open a terminal, or delete an URL from your local configuration file. The platform standard delete key sequence will also remove an URL. Security -------- Mercurial (and TortoiseHg) support two secure protocols for exchanging data with remove servers. HTTPS (SSL) and SSH. HTTPS ~~~~~ There are two asymmetrical parts to a secure HTTPS connection. The first part of the secure connection is authenticating the identification of the server. The second is authenticating yourself (the client) to the server, either via a username and passphrase or a certificate key. Host Authentication +++++++++++++++++++ Prior to version 1.7, Mercurial ignored this half of HTTPS connection security. In version 1.7 it began warning that the server's certificate was not being verified. Mercurial version 1.7.5 introduced the ability to validate an HTTPS server's certificate against a stored fingerprint. TortoiseHg 2.0's synchronize tool has an HTTPS security dialog that allows you to select between using a host fingerprint or using the CA certificates. In theory, a host fingerprint is more secure than the CA certificates if you do not necessarily trust all of the signing authorities listed in the default store. However you must be sure that the fingerprint you store is the correct fingerprint for the server to which you believe you are communicating. TortoiseHg 2.0 also allows you to select an insecure connection for a given host. This disables validation of the host's certificate but still uses an encrypted data stream (which was essentially the behavior of Mercurial pre-1.7 except for the warning messages). User Authentication +++++++++++++++++++ There are several mechanisms available for authenticating yourself to an HTTPS server. The simplest is to allow Mercurial to prompt you for the username and passphrase. However this quickly grows old as the two prompts are always made separately and each push operation can require multiple connections to be established. The next option is to encode the username in the URL so that Mercurial only prompts for a passphrase. This cuts the number of prompts in half, but is still annoying. If you do not wish to be prompted for the passphrase, it must be stored somewhere. Your choices, in increasing security, are: 1) encode the clear-text passphrase in each HTTPS URL in your repository configuration files 2) store the clear-text passphrase in your user configuration file 3) use the mercurial_keyring extension to store the passphrase cryptographically Until recently, TortoiseHg only supported the first option in the graphical interface even though the second and third options were supported internally. TortoiseHg 2.0, we only support the latter two options in the graphical interface, and we do not allow the user configure the first option anymore. By default we strip the username and password off of URLs when they are saved. To migrate from the first option to the later options, select an HTTPS URL in the sync tool, open the security dialog and enter a username and passphrase for the host if none are configured, and save. Next save the URL itself and allow the save dialog to strip the user authentication data from the URL. .. note:: If the mercurial_keyring extension is enabled, the security dialog will not allow you to enter a passphrase since you do not want to store the passphrase in clear text in your configuration file if you are going to later store it cryptographically. Options 2 and 3 use the [auth] section of your user configuration file to configure a single username and passphrase (or certificate key files) to authenticate to a given HTTPS hostname. The [auth] section supports many more configurations than this, see the man page for details. Once the mercurial_keyring extension has been enabled (and all applications are restarted), you can remove the HTTPS passphrases from all of your configuration files. Mercurial will prompt for the passphrase once, then store it cryptographically using the best back-end it can find for your platform. The mercurial_keyring extension requires the [auth] section to be configured for the host to which you are connecting, to provide the username. If your URL has an encoded username or passphrase, the [auth] section is ignored. SSH ~~~ SSH is a symmetrical peer-to-peer secure tunnel. SSH clients and servers have their own key management systems, so Mercurial does not get involved with password prompts when SSH is used. This is problematic on Windows and thus TortoiseHg bundles the TortoisePlink SSH client with its Windows installers. TortoisePlink is a port of the Plink SSH client that uses dialog prompts for host-key authorizations and passphrase prompts. TortoisePlink (developed by the TortoiseSVN project) can use the other SSH tools that are part of the Plink toolchain, including the Pageant key agent. It is a known issue that TortoisePlink does not use compression in many scenarios, and thus is up to four times slower than openssh and other clients. TortoiseHg recommends the use of HTTPS for Windows clients. See the :doc:`faq` for help if you have trouble connecting to ssh servers. Email ----- .. figure:: figures//email.png :alt: Email dialog Email dialog The email dialog can be launched from two TortoiseHg tools. 1) The Workbench, in which case the user intends to email a selection of revisions. 2) The synchronize tool, in which case the user intends to email all outgoing changes to the current target repository. The :guilabel:`Send` button is obvious, and the :guilabel:`Configure` dialog predictably opens the TortoiseHg Settings dialog to the email tab where you can configure your SMTP settings and set default :guilabel:`To:` and :guilabel:`From:` addresses. :guilabel:`In-Reply-To:` is used to make your patches properly threaded in mailing lists. Please consult the Mercurial documentation for the differences between plain patches, Hg patches, Git patches, and bundles. From command line ----------------- The synchronize tool can be started from command line :: thg sync aliases: synchronize Synchronize with other repositories use "thg -v help sync" to show global options The syntax is simple, no options or parameters are needed, except the global options. .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/whatsnew.txt0000644000000000000000000001350514023111777016772 0ustar00rootrootWhat's New ========== .. module:: whatsnew.dialog :synopsis: New features in this release TortoiseHg 2.0 '''''''''''''' Philosophy ---------- The following philosophical changes were made between TortoiseHg 1.0 and TortoiseHg 2.0. Workbench ~~~~~~~~~ We wanted a single 'TortoiseHg' application which can access nearly all TortoiseHg (and Mercurial) functionality and that could be launched by a desktop or start menu shortcut. So we developed the Workbench application. The Workbench can support multiple repositories open at a time via "Repo Tabs" across the top of the main window. Each repository tab supports multiple "Task Tabs" beneath its graph splitter. These task tabs are switchable via icons on the side of the Workbench or via application menus. Available task tabs include a changeset browser, a commit tool, a history search widget, and a sync widget. Also available are two dockable widgets - a *Repository Registry* which lists all known repositories on your local machine and an *Output Log Window* which displays running command lines and their output and can also function as a minimal shell. Showing Mercurial command lines ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In an effort to educate users on Mercurial's command interface, nearly all commands are executed in the log window, displaying the full command line and Mercurial's output (progress indication is provided by progress bars inside the Workbench status bar). The few tools that do not use a command log window will generally display the command line they execute. Resolve tool, deliberate merges ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ TortoiseHg 2.0 introduces a resolve dialog for resolving conflicted file merges. It shows the users all the files that require resolution and those files that have been resolved, allowing merges to be verified. As supported by Mercurial's resolve command, individual file merges may be restarted as many times as necessary to get the merge correctly completed. By default, TortoiseHg will use the resolve dialog to resolve all conflicts, including trivial conflicts. It instructs Mercurial to never merge files automatically, deferring their resolution until the resolve dialog can be launched. This is true for merges, update commands that require content merges, rebases, and backouts. Shelve Improved ~~~~~~~~~~~~~~~ TortoiseHg 2.0 includes a new shelve tool which is capable of moving changes between your working directory, a shelf file, or an unapplied MQ patch. Revision Sets ~~~~~~~~~~~~~ We have replaced the filter bar of the Repository Explorer with a revision set bar in the Workbench. Revision sets were introduced in Mercurial 1.6 and have been integrated with an increasing number of commands in each subsequent release. They are a powerful query language for finding and specifying revisions in your repository. The Workbench also includes a revision set editor which both teaches the user the available keywords and their arguments, and offers brace matching, auto-completions, and other editing amenities. In TortoiseHg 2.0, incoming and outgoing changesets are visualized as revision sets. In previous versions they were represented by graph annotations. Technology ---------- Qt and PyQt ~~~~~~~~~~~ TortoiseHg 2.0 has been a near rewrite of all of the tools and dialogs taking advantage of Digia's excellent `Qt `_ UI framework and Riverbank Computing's fine `PyQt `_ Python bindings. QScintilla2 ~~~~~~~~~~~ TortoiseHg uses the `QScintilla2 `_ editing component extensively to: * display file contents and diffs with syntax highlighting * display annotations with syntax highlighting * edit commit messages with auto-completion of filenames and source symbols * edit revision set strings with brace matching and auto-completion One can configure the QScintilla2 tab stop parameter using the settings tool, while white space visibility and wrap are controlled by context menus. Polling of repository state and config ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The Workbench and other applications like the commit tool will poll repositories on your local machine to detect changes made to either the repository or their configuration files, and automatically update running applications as necessary. Nearly all configuration changes are effective immediately, with the notable exception of enabling or disabling Mercurial extensions. Changes to extension configuration generally require application restarts before they take effect. Immediate bug report dialogs ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Prior to TortoiseHg 2.0, bug reports were written to stderr as they occured and stderr was captured and scanned at exit to report those errors to the user. While we gained many valuable bug reports via this mechanism, there was rarely any context on what operations caused these bugs. In TortoiseHg 2.0, we have created a generic exception handler that catches all Python exceptions that are otherwise unhandled by application code. This allows us to display exception tracebacks almost immediately after they occur (after a short timeout to collect consecutive exceptions together). The hope is that future bug reports will contain better reproduction instructions, or at least context for the tracebacks. Demand loaded graph ~~~~~~~~~~~~~~~~~~~ To keep refreshes as efficient as possible, the graphing algorithm will only load a couple hundred revisions initially during a refresh, and then load further revisions only when those revisions are required to be displayed. You will notice scrolling through the graph is jerky, these are bulk loads of revisions into the graph. To avoid this jerkiness you can force TortoiseHg to load all revisions in the graph via the :guilabel:`Load all revisions` option from the :guilabel:`View` menu. .. vim: noet ts=4 syntax=rest ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source/workbench.txt0000644000000000000000000005114214023111777017113 0ustar00rootrootWorkbench ========= .. module:: workbench.dialog :synopsis: Primary TortoiseHg application The Workbench is the primary TortoiseHg application. It allows you to browse your local repositories, make commits, perform searches, synchronize with other repositories, and perform various maintenance tasks. Nearly every Mercurial feature is accessible from the Workbench. .. figure:: figures/workbench.png :alt: Workbench Workbench dialog. Workbench Main Widgets are: :guilabel:`Revision History View` A tabbed widget to view multiple repositories at once. The different columns show general information about each changeset in the graphlog. You can configure the columns to show from the menu via :menuselection:`View --> Choose Log Columns...`, and there you can reorder the columns too. This is the main or central widget of the Workbench application. :guilabel:`Repository Registry` This widget, by default shown on the left, allows to manage multiple repositories from the Workbench. You can show/hide it via :menuselection:`View --> Show Repo Registry` or with the corresponding button in the Dock Toolbar. It's also a dockable widget. The :menuselection:`View --> Show Paths` menu option allows to not only view the names of the repositories but also their path in a second column. :guilabel:`Output Log` This dockable widget, which can be shown/hidden with :menuselection:`View --> Show Output Log`, gives the user information about the Mercurial commands that were executed during the current session. You can also use it as a commandline by typing Mercurial commands at its prompt directly. It shows any error messages when appropriate. Content is wiped when the Workbench is closed. :guilabel:`Task Tabs` The lower right part of the Workbench is occupied by a stack of widget where you can perform various frequent tasks. It is a tabbed widget. See further for more detail about each one. Workbench Menus --------------- The Workbench has a menu bar for accessing tool functions and for launching other tools. :guilabel:`File` Handle repositories and settings. .. figure:: figures/file-menu.png :alt: File menu File Menu :guilabel:`View` Manage the visibility of various parts of the Workbench. .. figure:: figures/view-menu.png :alt: View menu View menu .. _workbench-repository-label: :guilabel:`Repository` Perform special actions on the active repository. .. figure:: figures/repository-menu.png :alt: Repository menu Repository menu :guilabel:`Help` About shows TortoiseHg version info. Edit Toolbar ------------ .. figure:: figures/edit-toolbar.png :alt: Edit Toolbar Edit toolbar Moving around in the revision history. All the buttons work on the current repository. :guilabel:`Refresh` Reload the revision history of the current repository. :guilabel:`Back` Go back to the previously selected revision. :guilabel:`Forward` Go forward to the next revision in your selection history or most recent revision set query. :guilabel:`Filter toolbar` Show and activate the Filter Toolbar at the top of the revision graph. Dock Toolbar ------------ .. figure:: figures/dock-toolbar.png :alt: Dock Toolbar Dock toolbar Show or hide some main widgets in the Workbench. :guilabel:`Show Repository Registry` Show/hide the Repository Registry widget. :guilabel:`Show Output Log` Show/hide the Output Log widget. Sync Toolbar ------------ .. figure:: figures/sync-toolbar.png :alt: Sync Toolbar Sync toolbar Synchronize your repository with other repositories. :guilabel:`Incoming` Download incoming changesets from the remote repository, store then in a temporary bundle file, then enter bundle preview mode with the incoming changes applied. Incoming changesets will be shown as normal, while others will be shown grayed in the revision graph. The buttons :guilabel:`Accept` and :guilabel:`Reject` are then shown at the top of the revision graph. :guilabel:`Pull` Pull incoming changesets from the remote repository, then apply after-pull effect (update, fetch, or rebase). :guilabel:`Outgoing` Determine outgoing changesets that would be pushed to the remote repository. Outgoing changesets will be shown as normal, while others will be shown grayed in the revision graph. :guilabel:`Push` Push outgoing changesets to the remote repository. Task Toolbar ------------ .. figure:: figures/task-toolbar.png :alt: Task Toolbar Task toolbar Work with the various task tabs. :guilabel:`Revision Details` Shows information about the current revision : files added, removed, renamed, or modified, file contents, changeset info. See _`Revision Details` for more detail. .. .. figure:: figures/revdetails-tasktab.png :alt: Revision Details Task Tab Revision Details Task Tab .. :guilabel:`Commit` Here you can add new files, and do your commits. See _`Commit` for more detail. .. .. figure:: figures/commit-tasktab.png :alt: Commit Task Tab Commit Task Tab .. :guilabel:`Search` For performing text searches through file content. .. See _`Search` for more detail. .. :guilabel:`Synchronize` Gives you full control about how you let your repositories communicate with any other repository. See _`Synchronize` for more detail. .. .. figure:: figures/sync-tasktab.png :alt: Synchronise Task Tab Sync Task Tab .. .. .. figure:: figures/search-tasktab.png :alt: Search Task Tab Search Task Tab .. There is some relation between the revision or patch selected in the graph pane, and the task tabs. * Clicking on the Working Directory automatically switches to the Commit task tab. * Clicking on any revision other than the Working Directory switches to the Revision Details task tab. You can overrule this standard behaviour by doing an :kbd:`ALT-Click` for making your selection. This preserves the current task tab, no matter what revision or patch you select. Cursor selection movements also do not switch task tabs. Filter Toolbar -------------- .. figure:: figures/filter-toolbar.png :alt: Filter Toolbar Filter features for the Workbench. The filter bar allows one to quickly filter the changesets panel. It is based on the Revision Sets feature of Mercurial. See `hg.1.html#revsets `_ for details on how to specify revision sets. The toolbar can be toggled with :kbd:`Ctrl-S`. Parts from left to right: :guilabel:`Clear` Clears the search lineedit. Essentially disables all filters. :guilabel:`Filter entry` Here you can type a filtering condition. The widget is a combobox, holding a history of previous filtering conditions. :guilabel:`Trigger` Applies the condition set by the filter. :guilabel:`Open` Opens the RevSet dialog. There you can select and/or enter your condition in a combined way via point-and-click and by typing. :guilabel:`Delete` Deletes the selected query. :guilabel:`Toggle filter` Applies the filter condition by sowing changesets that don't conform to it in a color suggesting insensitiveness, so the selected ones stand out more. :guilabel:`Branch options` A few options for showing branches. See :menuselection:`Repo Settings --> Workbench --> Dead Branches` for a method to prune names from this combo box. :guilabel:`Branches combo` A combo box with the list of named branches in your repository. :guilabel:`Custom Filter Combo` Finally there is a combo box that selects among the various filter types that can be manually specified. If the repository tab is previewing incoming changesets, a pair of buttons are prepended to the start of the filter bar: :guilabel:`Accept` Accept (pull) the changesets from the previewed bundle. This button is only visible when previewing a changeset bundle. The after-pull effect is respected after pulling from a bundle. :guilabel:`Reject` Reject the changesets from the previewed bundle and exit preview mode. This button is only visible when previewing a changeset bundle. The Workbench will attempt to lookup the entered search phrase in the repository to see if it matches a tag, bookmark, branch name, changeset hash, or revision number. If no changeset match is found, the Workbench checks if the search phrase has any parentheses. If no parentheses are found, the Workbench assumes the search is a keyword and performs a :command:`keyword()` revision set search. If parentheses are found, the Workbench assumes the search phrase is a revision set specification and attempts to resolve the set. If you need to perform a keyword search that includes parentheses, use :command:`keyword("PHRASE(FOO)")`. Revision Graph Details ---------------------- The graph column shows the child-parent relationships between revisions in your repository history. This column auto-sizes for as many lines of ancestry that are required to visualize the revisions you have loaded. The column has an initial hard-limit width to prevent some degenerative cases from breaking the viewer, but can be resized after refreshes. Performance Implications ------------------------ There are some Workbench features that could have performance implications in large repositories. :menuselection:`View --> Choose Log columns...` Enabling the :guilabel:`Changes` column can be expensive to calculate on repositories with large working copies, causing both refreshes and scrolling to be slow. :menuselection:`View --> Load all` Normally, when the user scrolls through the history, chunks of changesets are read as you scroll. This menu choice allows you to have the Workbench read all the changesets from the repository, probably allowing smoother moving through the history. Revision Context Menus ---------------------- Right-clicking on revisions in the graph pane brings up a different context menu when one, two, or more revisions are selected. Context menus can also differ according to the type of revision(s) (working dir, regular revision, (un)applied mq patch). Here we give a list of all existing context menu entries. Right-clicking on a selection of revisions in the (top) graph pane will bring up the revision context menu. With only one revision selected: .. figure:: figures/single-revision-cmenu.png :alt: Single revision context menu :guilabel:`Update...` Update your working directory to this revision. Opens the TortoiseHg update dialog with this revision selected. :guilabel:`Diff to Parent` Open this change in your visual diff tool. :guilabel:`Diff to Local` Display changes (visual diff) between this revision and your current working directory. :guilabel:`Browse at Revision` Brings up the Manifest window with the content of all files in the repo at the selected revision. :guilabel:`Similar Revisions...` Open the TortoiseHg dialog to search for similar revisions. :guilabel:`Merge with local...` Merge the selected changeset with the Working Dir. Opens the TortoiseHg merge dialog with this revision selected. :guilabel:`Tag...` Allows to manage tags to the selected revision. :guilabel:`Bookmark...` Allows to manage bookmarks for the selected revision. :guilabel:`Backout...` Create a backout changeset for selected revision. :guilabel:`Copy Hash` Copies the revision hash to the clipboard. Copy current revision's full hash to the clipboard. Under X11, the short changeset hash is automatically copied to the primary selection when the revision is clicked, you paste it by pressing the middle mouse button. :guilabel:`Export` :guilabel:`Export Patch...` Generate a patch file containing this revision's changes. :guilabel:`Email Patch...` Send this revision's changes to email recipient. Opens the TortoiseHg email dialog with this revision selected. :guilabel:`Archive...` Open the archive dialog for this revision, allowing user to generate a backup copy of the repository at that revision. :guilabel:`Bundle Rev and Descendants...` Open a dialog for exporting this revision and its descendants to a bundle file. :guilabel:`Copy Patch` Copies this revision's changes to the clipboard. *Only visible when MQ is enabled.* :guilabel:`Change Phase to` :guilabel:`public` Change the phase of this revision to public. :guilabel:`draft` Change the phase of this revision to draft. :guilabel:`secret` Change the phase of this revision to secret. :guilabel:`Graft to Local...` Open the graft dialog to copy the selected revision. :guilabel:`Modify history` :guilabel:`Unapply Patch` Pop patches upto this one *Only visible when MQ is enabled* :guilabel:`Import to MQ` Import selected revision into the current patch queue. Only valid for qbase or checked out head revision. *Only visible when MQ is enabled* :guilabel:`Finish patch` Transforms the MQ patch into a regular changeset. *Only visible when MQ is enabled* :guilabel:`Rename Patch...` Renames the MQ patch file. *Only visible when MQ is enabled* :guilabel:`MQ Options` Open the MQ options dialog. *Only visible when MQ is enabled* :guilabel:`Rebase...` Move the selected revision and all of its descendants onto the current working parent revision. *Only visible when rebase is enabled* :guilabel:`Prune...` Mark the selected revision as obsolete. *Only visible when evolve is enabled* :guilabel:`Strip...` Remove the selected revision and all of its descendants from the repository [#rcm1]_ *Only visible when MQ is enabled* With two revisions selected: :guilabel:`Visual diff...` Open this change in your visual diff tool. :guilabel:`Export selected` Creates a patch file for each changeset in selected range. :guilabel:`Email selected...` Opens email dialog with range of changesets. :guilabel:`Export DAG range` Creates a patch file for each changeset in selected range. :guilabel:`Email DAG range...` Opens email dialog with range of changesets. :guilabel:`Bisect - Good, Bad...` todo See `bisect <#id10>`_ section below. :guilabel:`Bisect - Bad, Good...` todo See `bisect <#id10>`_ section below. :guilabel:`Compress history...` Brings up a dialog where you can compress the youngest changeset into the older one. With more than two revisions selected: :guilabel:`Export selected` Creates a patch file for each changeset in selected range. :guilabel:`Email selected...` Opens email dialog with range of changesets. .. [#rcm1] The strip command will store the stripped revisions in a bundle file that can later be reapplied. See also `EditingHistory `_. File Context Menus ------------------ Right-clicking on filenames in the file list pane (bottom left of the RevDetails task tab) will bring up a context menu for the selected file: :guilabel:`Visual Diff` Open this revision of the file in your visual diff tool. :guilabel:`Visual Diff to Local` Visualize differences between this revision and your checked out version. :guilabel:`View at Revision` Open this revision of the file in your visual editor [#flcm1]_. :guilabel:`Edit Local` Open the checked out version of the file in your visual editor [#flcm1]_. :guilabel:`Revert to Revision` Checkout this specific revision of this file [#flcm3]_. :guilabel:`File History` Show revisions that modified this file [#flcm2]_. :guilabel:`Compare file revisions` Brings up a new dialog where you can compare any revision of the file with any other revision in the history. .. [#flcm1] :menuselection:`Global Settings --> TortoiseHg --> Visual Editor` .. [#flcm2] Does not show revisions where a file was deleted, as this is only a manifest change, it does not modify the file's history. .. [#flcm3] The new contents will appear as local changes and must be committed. Right-clicking on filenames in the file list pane of the Commit task tab will bring up a different context menu for the selected file: :guilabel:`Edit` Open this revision of the file in your visual diff tool. :guilabel:`Add` Add this file to the repository for versioning. :guilabel:`Detect Renames...` Brings up a dialog where you can try to detect renamed files. :guilabel:`Ignore` Adds the selected file to the .hgignore content. :guilabel:`Delete unversioned` Deletes unversioned files from disk. Message Parsing --------------- The changeset display pane will detect and underline changeset hashes, HTTP(s) URLs, and bug report identifiers inside changeset messages. These underlined phrases are clickable links. Every word-boundary delimited string of 12 or 40 characters from the range [0-9a-f] is considered a changeset link. Clicking on it in the repository explorer will jump to the given changeset if possible. HTTP and HTTPS URLs are similarly turned into clickable links which are opened in your default web browser. Issue tracker links are enabled when configured in the tortoisehg section of your configuration files. Since only a single issue tracker can be configured at a time, it is typically configured in the repository's :file:`.hg/hgrc` file. There are two keys: issue.regex and issue.link. The first defines the regex to match when picking up issue numbers, while the second defines the command to run when an issue number is recognized. You may include groups in issue.regex, and corresponding {n} tokens in issue.link (where n is a non-negative integer). {0} refers to the entire string matched by issue.regex, while {1} refers to the first group and so on. If no {n} tokens are found in issue.link, the entire matched string is appended instead. Examples:: BitBucket: issue.regex = #(\d+)\b issue.link = https://bitbucket.org//issue/{1}/ Mercurial: issue.regex = \bissue(\d+)\b issue.link = https://bz.mercurial-scm.org/show_bug.cgi?id={1} Output Log Console ------------------ The console built into the Workbench Output Log dock widget can run Mercurial (hg) commands, TortoiseHg (thg) commands, a couple special commands, and limited shell commands. Commands are always executed in the root of the current repository. The prompt is updated to keep you aware of the context. If the command line begins with 'hg', the Mercurial command is run in TortoiseHg's execution environment; meaning output is sent to the log widget and input requests are handled by dialog windows. If the command line begins with 'thg', the requested command is run in a new window but in the same process. For instance 'thg ci' will open a new commit tool window for the current repository. It the command is 'clear' (or 'cls'), the output log contents are erased. If the command is 'exit', the output log window is closed. Otherwise, the command line is forwarded to your platform's default command shell with a limited execution context. There is no stdin while stdout and stderr are piped to the output log. Keyboard navigation ------------------- :kbd:`Ctrl-P` Zoom to the working directory parent revision :kbd:`Ctrl-D` Display visual diffs for selected changeset or file :kbd:`Ctrl-S` Toggle revision set / filter toolbar See also `KeySequences `_ on the wiki pages. Configurables ------------- The Workbench has a few configurable options that can be set in the TortoiseHg Settings dialog on the Workbench tab. :guilabel:`Author coloring` If true, each author's changeset will be given a unique color :guilabel:`Long Summary` Concatenate commit message lines until 80 chars are reached :guilabel:`Graph batch limit` Number of revisions to read in each batch load :guilabel:`Dead Branches` Comma separated list of branch names that should be ignored when building a list of branch names for a repository. :guilabel:`Branch Colors` Space separated list of branch names and colors on the form branch:#XXXXXX. Spaces and colons in the branch name must be escaped using a backslash (\\). Likewise some other characters can be escaped in this way, e.g. \\u0040 will be decoded to the @ character, and \\n to a linefeed. :guilabel:`Hide Tags` Space separated list of tags that will not be shown. Useful example: Specify "qbase qparent qtip" to hide the standard tags inserted by the Mercurial Queues Extension. The exact colors given to particular users can be configured by adding lines like these to your :file:`Mercurial.ini` file: :: [tortoisehg] authorcolor.USERNAME = color The Workbench also respects the following settings on the TortoiseHg tab: :guilabel:`Tab Width` Number of spaces to expand tabs in diffs :guilabel:`Max Diff Size` Maximum size of file to be diffed From command line ----------------- The Workbench can be started from command line :: thg log [OPTIONS] [FILE] aliases: history, explorer, workbench workbench application use "thg -v help log" to show global options .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1737033607.911414 tortoisehg-6.9/doc/source-cs/0000755000000000000000000000000014742203610014764 5ustar00rootroot././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1737033607.911414 tortoisehg-6.9/doc/source-cs/.static/0000755000000000000000000000000014742203610016331 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-cs/.static/.keep0000644000000000000000000000000011534217015017244 0ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/archive.txt0000644000000000000000000000442314023111777017155 0ustar00rootrootArchivace ========= .. module:: archive.dialog :synopsis: Dialog used to make an archive of a repository Při tvorbě archivu repozitáře lze vybírat z řady formátů. Jsou to obvyklé komprimované formáty ale je také možné vytvořit složku nekomprimovaných souborů v jiném místě než v pracovním adresáři (jako klon ale bez složky .hg). Takové archivy mohou být užitečné například při tvorbě sestav (builds - podobně jako při 'svn export'). Archivy s vybraným obsahem mohou být také užitečné při posílání změn externím osobám bez přístupu k repozitáři Spuštění z Verpánku ------------------- V kontextovém menu vybraného changesetu ve Verpánku volíte :menuselection:`Export > Archive...`. .. figure:: figures/archive.png :alt: Archive dialog Dialogové okno pro archiv repozitáře :guilabel:`Revize` Zadání revize, kterou chcete archivovat nebo exportovat. :guilabel:`Pouze soubory upravené či vytvořené v této revizi` Omezíte si počet souborů v archivu. :guilabel:`Zabočit do subrepozitářů` Umožňuje přístup do subrepozitářů. :guilabel:`Destinace` Jméno souboru nebo složky, kde bude archiv vytvořen. Jméno se skládá z názvu aktuálního repozitáře s připojeným číslem vybrané revize, případně s příponou vybraného formátu archivního souboru. :guilabel:`Typy archivů` Zde můžete zvolit typ vytvářeného archivu od prosté složky se soubory až k řadě standardních archivních typů. :guilabel:`Příkaz Hg` Toto pole zobrazuje příkaz, který bude proveden. :guilabel:`Vždy zobrazit výstup` Pro zobrazení záznamového panelu s výsledky prováděného příkazu. Archivovat repozitář znamená vytvořit archivní soubor nebo podadresář s obsahem vybrané revize. Spuštění z příkazového řádku ---------------------------- :: thg archive Úplná skladba je :: thg archive -r [REV] -t [TYPE] [DEST] kde [REV] je archivovaná revize, [TYPE] je typ vytvářeného archivu, a [DEST] je název souboru nebo složky, která se má vytvořit. Podrobněji viz `hg.1.html#archive `_, nebo zadejte :command:`hg help archive` z příkazového řádku systémové konzoly nebo v panelu Output Log ve Verpánku. .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/clone.txt0000644000000000000000000000445214023111777016636 0ustar00rootrootKlonování repozitáře ==================== .. module:: clone.dialog :synopsis: Dialog used to clone a repository Pro klonování repozitáře musíme spustit dialog "clone". V kontextové nabídce průzkumníka Windows vybereme :menuselection:`TortoiseHg -> Klonovat...` nebo zadáme :command:`thg clone`. .. figure:: figures/clone.png :alt: Clone dialog Dialogové okno Klonovat :guilabel:`Zdroj` Cesta k repozitáři (nebo URL), který má být klonován. Pro výběr lokálního adresáře použijeme tlačítko :guilabel:`Vyhledat...`. :guilabel:`Destinace` Cesta k cílovému adresáři, v němž bude vytvořena složka se stejným názvem jako zdrojový repozitář. Pod rozšířenou nabídkou expandéru :guilabel:`Možnosti` nalezneme: :guilabel:`Klonovat k revizi` Můžeme omezit rozsah klonování až po zadanou revizi. Nebudou importovány ani tagy, vytvořené po této revizi. :guilabel:`Neaktualizovat nový pracovní adresář` Je-li zatrženo, bude nový pracovní adresář prázdný až na složku **.hg**. Tato volba je užitečná při vytváření centrálního nebo záložního repozitáře, kde se bude provádět pouze `push` a `pull`. :guilabel:`Použít protokol pull ke kopírování metadat` Nachází-li se zdroj i destinace ve stejném souborovém systému, snaží se Mercurial použít pevné odkazy (hardlinks). Některé souborové systémy, jako např. ASF, používají pevné odkazy nesprávně ale nehlásí chybu. Tuto volbu použijeme, chceme-li se vyhnout pevným odkazům . :guilabel:`Použít nekomprimovaný přenos` Pro použití nekomprimovaného transferu (rychlé v LAN). :guilabel:`Zahrnout frontu oprávek` Pro klonování repozitáře oprávek MQ spolu s hlavním repozitářem. :guilabel:`Použít proxy server` Pro použití proxy serveru, nastaveného v :menuselection:`TortoiseHg... > Globální nastavení > Proxy`. Volba je použitelná jen je-li proxy server nastaven. :guilabel:`Vzdálený příkaz` Nutno určit příkaz Mercurialu, který má být spuštěn na vzdálené straně. Spuštění z příkazového řádku ---------------------------- :: thg clone alias: cl Skladba příkazu je :: thg clone [SOURCE] [DEST] kde [SOURCE] a [DEST] jsou cesty ke zdrojovému repozitáři a k cílové složce nového repozitáře. .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/commit.txt0000644000000000000000000003016714023111777017030 0ustar00rootrootCommit ====== .. module:: commit.dialog :synopsis: Dialog used to perform commit Commit je druhá nejvíce používaná procedura po Verpánku. Tento nástroj provede nejenom požadovanou registraci změn (commit), ale umí také přezkoumat stav pracovního adresáře a provádět nejběžnější prvozní úlohy, jako je přidání nových souborů, zjistit přejmenování souborů a manipulovat s filtrem pro ignorování souborů. .. figure:: figures/commit.png :alt: Commit dialog Dialogové okno Commit Popis prvků ----------- Výčet prvků nástrojové lišty úlohy komit: :guilabel:`### text filtru ###` Pole pro zadání filtrovacího řetězce pro vyhledání souborů. :guilabel:`Status` Rozvinovací seznam různých módů souborů. V seznamu souborů se zobrazí pouze ty soubory, jejichž stavy jsou v seznamu Status zatrženy: * *upravený* ( **M** odified ) znamená, že sledovaný soubor byl změněn. * *přidaný* ( **A** dded ) znamená, že nesledovaný soubor byl přidán ke sledování. * *odebraný* ( **R** emoved ) znamená, že sledovaný soubor byl odebrán příkazem :guilabel:`hg remove`. * *chybějící* ( **!** ) znamená, že Mercurial soubor postrádá. Když napřiklad přejmenujete nebo smažete sledovaný soubor v Exploreru, objeví se jako chybějící a jeho nové jméno jako neznámé. Pravým poklepem na novém názvu vyvoláme dialog, ve kterém lze přejmenování odhalit porovnáním obsahů a označit starý soubor jako odstraněný, nový soubor jako přidaný a zapsat celou operaci jako přejmenování. * *neznámý* ( **?** ) patří souborům, které Mercurial nesleduje, ani nejsou uvedeny v seznamu ignorovaných souborů. Toto označení je implicitní pro soubory, které mají být do správy revizí teprve přídány. Kontextové menu neznámého souboru obsahuje volbu "Ignore", která otevře dialogové okno pro podrobnější nastavení volby. * *ignorovaný* ( **I** ) patří nesledovaným souborům, které jsou uvedeny v seznamu ignorovaných souborů. * *čistý* ( **C** lean ) platí pro sledované soubory, které nebyly editovány. :guilabel:`Refresh` Znovu načíst seznam souborů. :guilabel:`Větev` Uvádí název aktuální větve pracovního adresáře. Poklepem otevřeme dialogové okno, kde lze s větví manipulovat. Nedoporučujeme používat bez dobré znalosti `pojmenovaných větví Mercurialu `_. :guilabel:`Copy message` Rozvinovací seznam posledních deseti souhrnných zpráv komitů. :guilabel:`Možnosti` Dialogové okno pro podrobné nastavení náležitostí komitu - Jméno uživatele, Datum, Push po komitu, Auto Includes, Odbočit do subrepozitářů. Lištu uzavírá roletka pro výběr procedury: :guilabel:`Commit` Komitovat změny. :guilabel:`Amend` Upravit aktuální revizi. :guilabel:`QNew` Vytvořit novou oprávku. :guilabel:`Refresh` Znovu načíst aktuální oprávku (patch). Pole se seznamem souborů má pět (šest) sloupců: * Zatržítko, které označuje soubor, vybraný pro operaci. Neoznačené soubory se akce Commit nezůčastní. * Sloupec :guilabel:`Stat` uvádí status (mód) jednotlivého souboru. Status 'S' označuje 'nečistý subrepozitář', který potřebuje být komitován. * Sloupec :guilabel:`MS` označuje stav sloučení souboru, což může být R(esolved) nebo U(nresolved); zobrazí se jen v případě potřeby * Sloupec :guilabel:`Název souboru` uvádí kanonickou cestu souboru relativně ke kořeni repozitáře (k repozitóriu). * Sloupec :guilabel:`Typ` uvádí příponu souboru (pokud existuje). * Sloupec :guilabel:`Velikost` uvádí velikost neodebraného souboru. Výběr změn ---------- Proces výběru změn spočívá ve výběru těch souborů pracovního adresáře, které mají být zahrnuty do následného komitu. Nezatržené soubory jsou z komitu vyloučeny. Toto poněkud porušuje zásadu Mercurialu, že každý changeset popisuje stav repozitáře v daném časovém okamžiku. Když vyloučíte soubory z komitu, vytváříte zkreslený pohled na stav změn. Protože výběr souborů při provádění komitu je někdy potřebný a Mercurial jej podporuje, je tato možnost součástí komitu již od první verze THg. Nově v TortoiseHg 2.7 umožňuje nástroj komitu provádět částečný výběr dat z jednotlivých upravených souborů. Znamená to, že můžete vyloučit část provedených změn v souboru. To opět porušuje zásadu Mercurialu pro komitování stavu pracovní kopie ale je to velice užitečná vlastnost. Nejčastěji citovaným příkladem je schopnost komitovat opravu chyby při vyloučení všech ostatních opravných zásahů, takže po komitu můžete pokračovat v odlaďování. Vyloučení určité části změněného a vybraného souboru v seznamu na levé straně se provádí tak, že se v odpovídajícím zobrazení změn v pravém dolním poli zvýrazní ta část, která má být vyloučena. Kontextové menu zvýrazněné části má tyto položky: :guilabel:`Copy` :guilabel:`Select All` :guilabel:`Editor Options >` Wrap >, Whitespace >, EOL Visibility >. :guilabel:`Označit vyloučené změny` Přepínač pro přeškrtnutí vyloučených změn. Toto nastavení je primárně osobní preference ale budoucí verze TortoiseHg mohou rozšířit použití tohoto proškrtnutí pro částečné vyloučení individuálních změn. :guilabel:`Hledat v aktuálním souboru` Při tomto výběru se otevře další lišta s těmito prvky: :guilabel:`Zavřít lištu` :guilabel:`Textové pole` :guilabel:`Ignorovat velikost písmen - zatržítko` :guilabel:`Wrap search - zatržítko` :guilabel:`Prev, Next` :guilabel:`Hledat v celé historii` Při tomto výběru se otevře karta Hledat Když uživatel vyloučí jednu nebo více změn souboru, považuje TortoiseHg tento soubor za částečně vybraný (tato možnost výběru změn je někdy označována jako **částečný komit**. Částečně vybrané soubory jsou v seznamu souborů uvedeny se speciálním označením. Tato nová možnost částečného výběru je podobná proceduře `Hunk selection `_ popsaná v dokumentaci k TortoiseHg 0.9.3 a to v několika ohledech: 1) Výběr změn je integrován přímo do zobrazení diffu. Žádný přepínač režimu není potřebný. 2) Soubory pracovní kopie se během částečného komitu nemění. Tak je možné se vyhnout vážnému problému s oprávněním ve Windows. 3) Výběr změn je možný pro kopírované či přejmenované soubory s jednou výjimkou - nelze vyloučit všechny změny, protože se tím vylučuje celý soubor z komitu. TortoiseHg má od verze 2.0 odkládací (shelve) nástroj který umí přesunout vybrané změny z pracovního adresáře do oprávky (patch) nebo mezi oprávkami ale možnost částečného komitu je velice odlišná v tom, že nikdy nemění soubory pracovní kopie. Vše co činí je to, že vyloučí část změn z komitované verze souboru. Po komitu zůstávají všechny vyloučené změny stále v pracovní kopii. Po stisknutí tlačítka Commit zkontroluje komitový nástroj zda některý z ověřovaných souborů není částečně vyloučený. Je-li nějaký částečný komit potřebný, vytvoří komitový nástroj prozatimní oprávkový soubor, který popisuje jak generovat obsah částečně komitovaných souborů a předá tento oprávkový soubor extenzi TortoiseHg pro částečný komit. Tato extenze spouští komitový příkaz Mercurialu se specielními háčky (hooks), v důsledku čehož přicházejí obsahy pro částečný komit z dočasných oprávkových souborů místo aby byly čteny z pracovní kopie. Po komitu jsou tyto dočasné soubory vymazány a soubory pracovní kopie zůstávají nedotčeny. Kontextová menu souborů ----------------------- Pravým poklepem na soubor v seznamu souborů otevřeme kontextové menu příkazů, použitelných právě pro tento soubor. U neznámých **?** souborů umožňuje kontextové menu zjistit přejmenování (pokud si myslíte, že neznámý soubor je kopií nebo přejmenování revizovaného souboru) nebo nastavit seznam ignorovaných souborů repozitáře (pokud nemá být neznámý soubor sledován a chcete, aby jej Mercurial ignoroval). Pole pro zprávy komitů ----------------------- Pole pro zprávy komitů karty Commit má kromě běžných (Undo, Redo, Cut, Copy, Paste, Delete, Select All, Editor Options a Zvýraznění skladby) ještě tyto speciální kontextové nabídky: :guilabel:`Vložit jména souborů`: Vlepit v seznamu vybrané názvy souborů do komitové zprávy v místě kurzoru. :guilabel:`Použít formát`: Použít nastavené zalamování řádků. :guilabel:`Nastavit formát`: Otevře dialogové okno Nastavení TortoiseHg > Commit. Má-li váš projekt pravidla pro formátování komitových zpráv, můžete je nastavit v tomto konfiguračním okně. Procedura komitu uplatní vaše zadání formátu při provádění komitu. Pro formát komitové zprávy jsou signifikantní tyto položky karty Commit widgetu Settings: :guilabel:`Délka souhrnného řádku`: Maximální délka řádku souhrnného popisu komitu. :guilabel:`Průvodní texty anglicky`: Generovat anglickou zprávu komitu i pro neanglické jazykové prostředí. Slučování --------- Procedura komitu má speciální režim, je-li otevřena v repozitáři, který je ve slučovaném stavu (buďto slučování probíhá nebo byla provedena aktualizace, která způsobila konflikt). Stavový sloupec *MS* je v tomto režimu zvlášť užitečný. Soubory, označené *R* jsou ty, kde Mercurial nebo uživatel úspěšně sloučil (rozřešil / resolved) změny od obou rodičů. Soubory, označené *U* mají nerozřešené (unresolved) změny. Můžete použít nabídku kontextového menu *Restart Merge* pro opětovné spuštění slučovacího procesu nebo nabídku *Editovat* pro rozřešení konfliktu ručně. Nabídka *Restart Merge* vám dovolí vybrat slučovací nástroj nebo dokonce vybrat jednu z verzí nepodmínečně (internal:local, internal:other). Po ručním rozřešení konfliktů musíte použít kontextovou nabídku *mark resolved* abyste změnili stav sloučení souboru na *R*. Mercurial nedovolí provést komit, pokud má některý ze souborů nerozřešený (*U*) stav sloučení. Pro úplnost dodejme, že *local* je revize, u níž začíná proces slučování a *other* je revize, s níž má být sloučení provedeno. Abychom zrušili neúspěšný pokus o sloučení, musíme přikázat, aby Mercurial odstranil druhého rodiče z pracovního adresáře. To obvykle znamená provést čistou aktualizaci prvního rodiče. Slučovací nástroj má tlačítko :guilabel:`Undo`, jímž lze zařídit přesně to samé. Jakmile máte svůj pracovní adresář zpět u jedné rodičovské revize, můžete zopakovat proces sloučení. Subrepozitáře ------------- `Subrepozitář `_ je entita, zavedená v Mercurialu 1.3. Umožňuje repozitáři Mercurialu ukládat odkazy na externí repozitáře (případně jiných VCS) a zahrnout stavy těchto externích repozitářů do historie hlavního repozitáře. TortoiseHg 1.0 zavedl rudimentární podporu pro subrepozitáře a to pouze v nástroji commit a status. Považuje-li Mercurial subrepozitář za "nečistý", objeví se v seznamu souborů nástroje Commit s označením stavu *S* a je potom komitován spolu s jinými změnami, přičemž se aktualizuje soubor .hgsubstate v kořenovém adresáři repozitáře. Nastavitelné parametry ---------------------- Nastavitelné parametry úkonu Commit lze zadat v dialogu :menuselection:`File > Settings > Commit` viz odstavec 6.1.3 kapitoly 6. Nastavení parametrů. Spuštění z příkazového řádku ----------------------------- :: thg commit [OPTIONS] [FILE]... aliases: ci commit tool options: -u --user record user as committer -d --date record datecode as commit date use "thg -v help commit" to show global options Pro rychlou nápovědu o formátu datového typu:: hg help dates .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/common.txt0000644000000000000000000001337314023111777017030 0ustar00rootrootObecné vlastnosti ================= .. module:: common.dialog :synopsis: Common features to all the dialog Tyto vlastnosti jsou společné mnoha nástrojům TortoiseHg a jsou tedy dokumentovány pouze na tomto místě. Zobrazení rozdílů ----------------- .. figure:: figures/visual-diff.png :alt: Visual Diff Window Okno pro zobrazení rozdílů pro changeset, který má dva rodiče (p1, p2) V TortoiseHg 1.0 byla vizuální (externí) diffová infrastruktura) zcela přepracována. Nový systém používá popisy nástrojů v :file:`mergetools.rc` k detekci nejběžnějších diffových nástrojů ve vašem počítači (včetně KDiff3, který je dodáván s instalací TortoiseHg) a k výběru nejvhodnějšího z nich. Pokud si uživatel vybral slučovací nástroj (:menuselection:`Setting > TortoiseHg > Nástroj pro sloučení`), je tento nástroj použit a výběrový proces je vynechán. Uživatel si ale stejně může vybrat separátní nástroj (:menuselection:`TortoiseHg > Nástroj Visual Diff`) pro zobrazení diffů. Konfigurační soubor slučovacího nástroje obsahuje optimální příkazové řádky pro každý nástroj, takže další konfigurace uživatelem není potřebná. Stačí si vybrat žádaný nástroj nebo přijmout implicitní nastavení. Systém vizuálních diffů použije každou existující konfiguraci extdiff, kterou najde. Protože ale extdiff ještě donedávna nepodporoval 'three way' diffové argumenty a stále ještě nepodporuje štítkové (label) argumenty, bude pro vás patrně nejlepší, když zakážete nebo smažete všechny konfigurace extdiff, které máte. Vizuální diffový systém použije přímo vybraný diffový nástroj, pokud prováděná akce nepožaduje použití dialogového okna (TortoiseHg) pro vizuální diff. Jde o tyto situace: 1. Výběr porovnávaných souborů vyžaduje více nástrojů 2. Vybraný nástroj štěpí oddělené procesy na pozadí 3. Vybraný nástroj nepodporuje požadované diffy adresářů 4. Vybraný nástroj nepodporuje 'three way' porovnávání 5. Změny souborů zahrnují přejmenování nebo kopie Je-li použito dialogové okno pro vizuální diff, jsou dočasné soubory smazány až po ukončení dialogu. Okno by tedy mělo zůstat otevřené, dokud nezavřete všechny své instance diffových nástrojů. Je-li váš diffový nástroj spuštěn přímo, dočasné soubory se smažou při zavření nástroje. Je-li váš diffový nástroj spuštěn přímo pro porovnání pracovní kopie, bude se srovnávat přímo s pracovním souborem, takže jej můžete editovat zevnitř diffového nástroje. Porovnáváte-li více souborů, pořídí si systém vizuálního diffu snímek souborů pracovní kopie a zaznamená jejich původní velikosti a časové údaje (timestamps). Při zavření diffového nástroje porovná systém velikosti a časy a překopíruje upravené soubory zpět do původních pracovních kopií. Tímto způsobem můžete vždy upravovat soubory vaší pracovní kopie ze svého nástroje pro vizuální diff i při porovnávání adresářů. Je-li dialogové okno pro vizuální diff použito k porovnání souborů pracovní kopie, provádí se diff vždy přímo proti souborům pracovní kopie, neboť se vždy pracuje s jedním souborem v daném okamžiku. Přidávání nástrojů ~~~~~~~~~~~~~~~~~~ Máte-li nainstalovaný diffový nástroj, který není podporován aplikací TortoiseHg, můžete pro něj vytvořit konfiguraci v souboru :file:`Merurial.ini`. Viz `dokumentace Hg `_. Poté přidáte extra klíče, které pro vizuální diff TortoiseHg používá:: diffargs: argumenty pro dvojné komparace diff3args: argumenty pro trojné komparace dirdiff: tento nástroj podporuje dvojné komparace dir3diff: tento nástroj podporuje trojné kopmarace Při sestavování argumentů pro příkazovový řádek můžeme použít následující proměnné:: $parent1: soubor nebo složka z revize prvního rodiče $parent2: soubor nebo složka z revize druhého rodiče $child: soubor nebo složka z porovnávané revize $parent: synonym pro $parent1 $plabel1: symbolický název revize prvního rodiče $plabel2: symbolický název revize druhého rodiče $clabel: symbolický název pro porovnávané revize $parent2 a $ancestor mají ovšem smysl pouze tehdy, jsou-li použity jako argumenty trojného diffu pro zobrazení sloučených changesetů. Nemůže-li váš diffový nástroj použít rozumným způsobem revizi předka, je bezpečnější vypustit jej z příkazového řádku pro diff3args. .. note:: Ve Windows může parametr `executable` použít proměnné prostředí s použitím syntaxe ${ProgramFiles} Pokud tuto konfiguraci neprovedeme, implicitní hodnota **diffargs** je '$parent $child'. Implicitní hodnota **diffargs3** je "", což naznačuje, že vizuální diffový nástroj nemůže provádět trojné komparace. Vytvoříte-li novou konfiguraci nástroje pro vizuální diff nebo vylepšíte stávající, pošlete prosím mail našemu vývojovému oddělení pro možné zahrnutí do příštího vydání programu. Diffy slov ~~~~~~~~~~ Instalační program TortoiseHg pro Windows nyní obsahuje skripty aplikace TortoiseSVN pro porovnávání (a někdy sloučení) dokumentů v mnoha binárních formátech. Tyto jsou nastaveny v souboru :file:`mergepatterns.rc` jako ovladače pro obvyklé extenze souborů každého binárního formátu, takže není zapotřebí zásahu uživatele. Pro podporu výběru nástrojů, vycházejícího z přípony souboru, přidal TortoiseHg podporu pro sekci **[diff-patterns]**, která je ekvivalentní k sekci Mercurialu `merge-patterns `_. .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1735997214.0 tortoisehg-6.9/doc/source-cs/conf.py0000644000000000000000000001434014736233436016301 0ustar00rootroot# -*- coding: utf-8 -*- # # TortoiseHg documentation build configuration file, created by # sphinx-quickstart on Tue Jul 21 23:42:44 2009. # # This file is execfile()d with the current directory set to its containing dir. # # The contents of this file are pickled, so don't put values in the namespace # that aren't pickleable (module imports are okay, they're removed automatically). # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. from __future__ import annotations import sys, os # If your extensions (or modules documented by autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. #sys.path.append(os.path.abspath('.')) # General configuration # --------------------- # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = ['sphinx.ext.autodoc'] # Add any paths that contain templates here, relative to this directory. templates_path = ['.templates'] # The suffix of source filenames. source_suffix = '.txt' # The encoding of source files. source_encoding = 'utf-8' # The master toctree document. master_doc = 'index' # General information about the project. project = u'TortoiseHg' copyright = u'2010-2025, Steve Borho and others' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. version = '4.8' # The full version, including alpha/beta/rc tags. release = '4.8.0' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. language = 'cs' # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: #today = '' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' # List of documents that shouldn't be included in the build. #unused_docs = [] # List of directories, relative to source directory, that shouldn't be searched # for source files. exclude_trees = ['.static', 'build-cs', 'figures' ] # The reST default role (used for this markup: `text`) to use for all documents. #default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. #add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). #add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. #show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # Options for HTML output # ----------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. html_theme = 'sphinx_rtd_theme' # The style sheet to use for HTML and HTML Help pages. A file of that name # must exist either in Sphinx' static/ path, or in one of the custom paths # given in html_static_path. #html_style = 'default.css' # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". #html_title = None # A shorter title for the navigation bar. Default is the same as html_title. #html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. html_logo = 'figures/thg_logo_92x50.png' # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. #html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['.static'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. #html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. #html_use_smartypants = True # Custom sidebar templates, maps document names to template names. #html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. #html_additional_pages = {} # If false, no module index is generated. #html_use_modindex = True # If false, no index is generated. #html_use_index = True # If true, the index is split into individual pages for each letter. #html_split_index = False # If true, the reST sources are included in the HTML build as _sources/. #html_copy_source = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. #html_use_opensearch = '' # If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). #html_file_suffix = '' # Output file base name for HTML help builder. htmlhelp_basename = 'TortoiseHg' # Options for LaTeX output # ------------------------ # The paper size ('letter' or 'a4'). #latex_paper_size = 'letter' # The font size ('10pt', '11pt' or '12pt'). #latex_font_size = '10pt' # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, document class [howto/manual]). latex_documents = [ ('index', 'TortoiseHg.tex', r'TortoiseHg Documentation', r'Steve Borho and others', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of # the title page. latex_logo = 'figures/thg_logo_pdf.png' # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. #latex_use_parts = False # Additional stuff for the LaTeX preamble. #latex_preamble = '' # Documents to append as an appendix to all manuals. #latex_appendices = ['faq'] # If false, no module index is generated. #latex_use_modindex = True ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/daily.txt0000644000000000000000000000033014023111777016627 0ustar00rootroot******************** TortoiseHg prakticky ******************** .. toctree:: :maxdepth: 3 common explorer nautilus workbench init clone commit shelve sync serve guess ignore archive .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/debugging.txt0000644000000000000000000000523714023111777017473 0ustar00rootrootDebugging ========== .. module:: debugging :synopsis: Debug problems in shell extension or dialogs Dialogy ------- Stderr je zachycen v bufferu, který je prohlížen při ukončení programu. Je-li v bufferu nalezena jakákoliv vážná chyba (tracebacky, atp), je celý jeho obsah poslán do nástroje pro hlášení chyb a uživatel má možnost chybu hlásit. Máte-li podezření, že se vyskytly nezaznamenané chyby, můžete nastavit proměnnou prostředí **THGDEBUG** na jakoukoliv hodnotu, čímž vyřadíte ukládání stderr do bufferu. Máte-li elementární znalost Pythonu, můžete také použít:: thg --debugger Chcete-li vyřadit dělení nástrojem thg, můžete buď zadat proměnnou prostředí **THG_HGTK_SPAWN**, nebo přidat parametr k CLI příkazu '--nofork'. Windows ~~~~~~~ Pro odstranění závad např. ve Verpánku, zadejte tyto příkazy do konzoly `cmd.exe`, nacédované do repozitáře:: set THGDEBUG=1 thg --nofork log Linux/MacOSX ~~~~~~~~~~~~ Podobně jako ve Windows:: export THGDEBUG=1 thg --nofork log Extenze shellu --------------- Způsob odladění závisí na platformě. Windows ~~~~~~~ Viz také `Debugging with the shell `_ kde jsou informace o spuštění a testování extenzí shellu ve Windows. Nástroj :command:`DbgView` ze sady SysInternals odchytí chybovou zprávu z extenze shellu. Shell ovšem ladící informace neemituje implicitně. Je nutné to povolit editací klíče registru, definovaného v :file:`win32/shellext/DebugShellExt.reg` v repozitáři TortoiseHg. Dvojklikem na souboru můžete načíst klíč do svého registru. Jinou možností je opustit aplikaci :command:`ThgTaskbar` a spustit ji z příkazového řádku. Ladící informace jsou potom emitovány v otevřené konzole. Nautilus ~~~~~~~~ Ladění se provádí prostřednictvím proměnné DEBUG_THG * pro testování v odlišném procesu:: DEBUG_THG=Ne TMPDIR=/tmp/anydir/ --no-desktop nautilus [path] * pro testování v hlavní instanci:: nautilus -q DEBUG_THG=NOe nautilus * pro permanentní ladění zadejte DEBUT_THG v souboru, který je načítán při spuštění seance (~/.profile, ~/.xprofile) Velká písmena v DEBUG_THG označují moduly. Pouze *O* a *N* u *OverlayCache* a *Nautilus*, jsou podporované názvy modulů. Malá písmena označují části. Podporováno je pouze *e*, označující *chybové* zprávy. Pro restartování nautilus použijte buď 1) killall nautilus (seance restartuje nautilus automaticky, stdin a stdout jdou do ~/.xsession-errors) 2) nautilus -q; nautilus (stdin a stdout jsou v konzole) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/explorer.txt0000644000000000000000000001044114023111777017371 0ustar00rootrootIntegrace s průzkumníkem Windows ================================= .. module:: explorer :synopsis: Windows explorer integration .. _explorer-context-label: Kontextové nabídky ------------------ Přístup k příkazům TortoiseHg je možný pomocí kontextového menu v průzkumníku Windows a dalších aplikacích, které používají standardní dialogy File/Open. Zde je kontextové menu pro složku repozitória: .. figure:: figures/cmenu-nofiles.png :alt: Context menu TortoiseHg poskytuje dialogy pro většinu pravidelně používaných příkazů aplikace Mercurial. Méně používané a nově přidané příkazy jsou ve Windows přístupné z CLI (:file:`cmd.exe`) ve Windows. Překryvné ikonky ---------------- TortoiseHg sdílí překryvné ikony s TortoiseSVN (verze 1.5.x nebo pozdější) a s jinými projekty "Tortoise" prostřednictvím TortoiseOverlays, což je další projekt vytvořený skupinou TortoiseSVN. .. figure:: figures/overlayicons.png :alt: Overlay icons Překryvné ikony souborů přidaných, sledovaných a změněných Kontextové menu obsahuje volbu :guilabel:`Aktualizovat ikony` která přinutí aplikaci TortoiseHg oživit ikony v právě rozbaleném repozitáři nebo ve složce s repozitáři. Ikona hlavního panelu zezelená a ikony v adresáři se změní v otazníky ve chvíli, kdy probíhá tato aktualizace. Konfigurace kontextové nabídky ------------------------------ Ovladač překryvů a kontextové nabídky jsou konfigurovatelné. V ploše otevřeného adresáře nebo dokonce v ploše obrazovky provedeme pravý poklep a vybereme :menuselection:`TortoiseHg > Nastavení kontext. nabídek`. Na kartě "Kontextové" můžeme jednotlivé volby přesouvat ze submenu do hlavního menu a obráceně. .. figure:: figures/shell-config-cmenu.png :alt: Shell Configuration dialog Na kartě "Ikony" upravíme nastavení, týkající se překryvných ikon a zobrazení 'Serveru překryvných ikon' v hlavním panelu Windows. .. figure:: figures/shell-config-icons.png :alt: Shell Configuration dialog, Icons tab :guilabel:`Překryvy povoleny` Umožnit zobrazení překryvných ikon na složkách a souborech v repozitóriu; implicitně: ano :guilabel:`Pouze lokální disky` Zobrazení ikon pouze na lokálních discích. Zobrazení ikon na vzdálených složkách a souborech je náročnější na výkon počítače; implicitně: nezatrženo :guilabel:`Povolené ovladače překryvů:` Tato uživatelská nastavení poskytují možnost vypnout ovladače překryvných ikon ve sdílených komponentách TortoiseOverlays. Tyto komponenty jsou sdíleny všemi aplikacemi Tortoise (TortoiseHg, TortoiseSVN, atd) ve snaze vyhnout se registrování velkého množství ikonových slotů. Všechny tyto aplikace používají stejnou sadu ikonových slotů. Celkový počet dostupných slotů ve Windows je poměrně omezený a liší podle verzí Windows. Například u Windows 7 je k disposici pouze 8 volných slotů pro ovladače překryvných ikon. V tomto editačním poli lze nepotřebné ovladače ikon vypnout a tím snížit jejich celkovou spotřebu. Zvýší se tím šance, že důležité ovladače jako *Normal* (zelená značka) nebo *Modified* (červený vykřičník) obdrží svůj ikonový slot, i když je v počítači registrováno příliš mnoho ovladačů. Velmi se doporučuje zakázat nepoužívané ovladače, jako je Uzamčeno, Jen ke čtení, Ignorováno, Smazáno - pokud víme, že je nepoužívá jiná aplikace Tortoise. Určitě povolíme ovladače pro Přidáno a Neverzováno, protože jsou v TortoiseHg používány. Implicitně jsou všechny volby zatrženy. .. warning:: Nastavení v poli "Povolené ovladače překryvů" ovlivňují všechny aplikace Tortoise. Aby se změny nastavení v tomto poli projevily, je požadován logoff/login. :guilabel:`Hlavní panel` Pro zobrazení ikony serveru překryvných ikon v dolní nástrojové liště Windows zatrhneme volbu "Zobrazit ikonu". Volba "Zvýraznit ikonu" způsobí, že tato ikona změní barvu (zezelená), když ikonový server aktualizuje cache soubory (:file:`.hg\dirstate` a :file:`.hg\thgstatus`) v repozitáři. Překryvné ikony lze selektivně zakázat pro určitý repozitář v souboru :file:`.hg\thgstatus` zápisem jediného řádku:: @@noicons .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/extensions.txt0000644000000000000000000002470614023111777017741 0ustar00rootroot******* Extenze ******* .. module:: extensions :synopsis: Describe extensions bundled with TortoiseHg binary packages Tato kapitola popisuje extenze Mercurialu, které jsou pro Windows dodávány s binárními balíčky TortoiseHg. Tato rozšíření jsou připojena pro pohodlí uživatelů, kteří si je mohou zpřístupnit, jakmile je potřebuji. Hgfold ====== `hgfold `_ je rozšíření Mercurialu, které pomůže uživatelům Windows s kolizemi jmen souborů v VFAT a NTFS. Přidá možnosti k následujícím příkazům Mercurialu. Více info viz :command:`hg help `:: up - dovolí aktualizovat k revizi s kolizemi jmen souborů merge - dovolí sloučení s changesetem, který by vytvořil kolizi jmen souborů Extenze v současné době neumí kolizi zabránit. Viz wiki Mercurialu. **Instalace** Abychom si vyzkoušeli použití tohoto pluginu, zadáme příkaz z příkazového řádku:: hg --config "extensions.fold=" status Můžeme jej zaké zapsat do konfiguračního souboru Mercurial.ini nebo do souboru hgrc v repozitáři:: [extensions] fold= Učíníme-li to, můžeme vypustit opci --config. **Varování** Jako u všech slučovacích operací musí soubor fold.py změnit rodiče pracovního adresáře. To se stále ještě zkouší a proto používejte opatrně. Dostaneme-li po běhu příkazu :command:`hg recover` chybové hlášení, vyzkoušíme příkaz :command:`hg debugsetparents` <číslo revize **tip**>`. Toto číslo zjistíme příkazem :command:`hg log`. Perfarce ======== `Perfarce `_ home page. Tato extenze je dokumentována v odstavci :ref:`perfarce-perforce` kapitoly :doc:`nonhg`. Mercurial-Keyring ================= Extenze `keyring` slouží k bezpečnému ukládání hesel pro spojení přes HTTP a SMTP. Tato extenze používá služby knihovny `Python Keyring Lib`. * `Mercurial Keyring `_ home page * `Keyring Extension `_ wiki page **Co se provádí** Při první akci pull/push z/do vzdáleného repozitáře požádá extenze o heslo pro HTTP a uloží jej do databáze hesel. Při další akci hledá jméno uživatele v .hg/hgrc a heslo v databázi a tyto důvěrné údaje použje, pokud je nalezne. Podobně při posílání e-mailu přes SMTP server, který vyžaduje autorizaci, požádá o zadání hesla při prvním použití serveru, uloží jej do databáze a při dalších použitích jej opět použije. Stane-li se heslo nesprávné (protože bylo neplatné, nebo že bylo změněno), je uživatel požádán o zadání hesla znovu. **Instalace** Nejprve musí být povolena extenze v souboru Mercurial.ini:: [extensions] mercurial_keyring= **Konfigurace uložiště hesla** Nejvhodnější zázemí (backend) hesla by obvykle mělo být výbráno automaticky, bez konfigurace. Lze jej ovšem konfigurovat s použitím souboru ~/keyringrc.cfg (keyringrc.cfg in the home directory of the current user). Podrobnosti viz `keyring docs `_ . .. note:: On Windows XP and above, your encrypted passwords are stored in the credentials subsystem using `CredRead `_ and `CredWrite `_ .. note:: On Windows 2K, the encrypted passwords are stored in the system registry under HKCU\\Software\\Mercurial\\Keyring. **Konfigurace repozitáře (HTTP)** Editujte `.hg/hgrc` lokálního repozitáře a uložte tam cestu ke vzdálenému repozitáři, jméno uživatele, nikoli však heslo. Na příklad:: [paths] myremote = https://my.server.com/hgrepo/someproject [auth] myremote.schemes = http https myremote.prefix = my.server.com/hgrepo myremote.username = mekk Jednodušší forma s vloženým názvem url může být také použita:: [paths] bitbucket = https://User@bitbucket.org/User/project_name/ .. note:: Je-li v :file:`.hg/hgrc` zadáno jméno uživatele i heslo, potom je extenze použije bez použití heslové databáze. Není-li jméno uživatele uvedeno, extenze bude pokaždé vyžadovat osobní údaje, také bez uložení hesla. Takže se v obou případech vlastně vracíme k implicitnímu chování. Podrobnější informace získáte v `[auth] `_. **Konfigurace repozitáře (SMTP)** Editujte buď `.hg/hgrc` nebo `~/.hgrc` (vhodnější je obvykle ten druhý) a zadejte tam všechny standardní vlastnosti pro email a smtp, včetně názvu uživatele smtp ale bez hesla pro smtp. Na příklad:: [email] method = smtp from = Joe Doe [smtp] host = smtp.gmail.com port = 587 username = JoeDoe@gmail.com tls = true Stejně jako v případě HTTP, musíte zadat jméno uživatele ale nesmíte zde uvádět heslo, chcete-li použít extenzi. V opačném případě se procedura překlopí do implicitního chování. **Použití** Konfigurujte repozitář jak výše uvedeno, pak už jen stahujte a vysílejte (pull a push) nebo emailujte. Na heslo byste měl být tázán pouze jednou (pro každou kombinaci jména uživatele a URL vzdáleného repozitáře). .. vim: noet ts=4 projrc ====== `projrc `_ je extenze, která prozkoumá soubor .hg/projrc, hledaje další konfigurační možnosti. Soubor se přenese klonováním a stažením (pull) ze seznamu serverů, který musí být nakonfigurován uživatelem. Z bezpečnostních důvodů musí být také uvedeno, která konfigurační nastavení `projrc` mají být přenesena (implicitně se žádná nastavení ze žádného serveru nepřenášejí). Uživatel také může nastavit extenzi tak, že automaticky zahrne všechny změny do souboru .hg/projrc. To je důležité pro centralizovaná nastavení, kde chcete distribuovat konfigurační nastavení do všech repozitářů s minimálním úsilím. Zejména to lze použít pro přemapování subrepozitářových zdrojů, jak je vysvětleno v textu `SubrepoRemappingPlan `_. **Konfigurace** Tato extenze (jako většina jiných) je implicitně nepovolena. Abyste ji mohli používat, musíte ji nejprve povolit v panelu Setting/Extension. Je-li extenze povolena, vidíte nový vstup "Projrc" v dialogu pro nastavení. Zde můžete extenzi konfigurovat úpravou následujících položek: :guilabel:`Request confirmation` Je-li True (implicitně), jste vyzván k potvrzení kdykoliv extenze zaznamená změny v souboru .hg/projrc vzdáleného serveru. Je-li False, extenze automaticky přijme všechny změny souboru .hg/projrc vzdáleného serveru. :guilabel:`Servers` Toto nastavení je seznam čárkami oddělených globů, které se shodují s názvy serverů, z nichž bude soubor projrc stažen (pulled). Pokud není toto nastvení zadáno, žádné soubory .hg/projrc se nikdy ze žádného serveru nepřenesou. :guilabel:`Include` Tímto klíčem určíte, které sekce a které klíče budou přijaty ze vzdálených souborů projrc. Je to seznam čárkami oddělených globů, které se shodují s názvy sekcí nebo klíčů, které mohou být připojeny. Názvy klíčů musí být určeny názvem jejich sekce následovaným tečkou, následovanou názvem klíče (např. `diff.git`). Všechny sekce a klíče povolíte zadáním "*" (bez uvozovek). :guilabel:`Exclude` Toto nastavení je podobné nastavení `Include` ale má opačný účinek. Deklaruje seznam nastavení, která nebudou přenesena ze společných soubofů projrc. Seznam "exclude" má stejnou skladbu jako seznam "include". Je-li zadán exkluzivní seznam ale inkluzivní seznam je prázdný nebo neexistuje, budou připojeny všechny nevyloučené klíče. Jsou-li zadány oba seznamy a klíč nalézá shodu v obou seznamech, má prioritu nejvíce explicitní shoda v následujícím pořadí: * za nejvíce explicitní jsou považovány přesné shody pro klíče (např. `ui.merge`; * následují shody vzorů (globů) (např. `auth.bitbucket.com.*`), přičemž nejvíce explicitní je nejdelší vzor shody; * shody na úrovni sekcí (e.g. `ui`); * globální (`*`) shody. Shoduje-li se klíč stejnou délkou jak s exkluzivními, tak s inkluzivními vzory, je klíč "zahrnut" (to jest, inkluze má přednost pře exkluzí). **Použití** Řádně nastavená a povolená extenze prohledá soubory .hg/projrc při každém klonování nebo stahování z repozitářů, uvedených v její konfiguraci "servers". Kdykoliv extenze zjistí změnu ve vzdáleném souboru projrc (e.g. when you do not have a .hg/projrc file yet, or when the contents of said file have changed on the server), obdržíte varování pokud nemáte "Require confirmation" nastaveno na False (v kterémžto případě extenze předpokládá, že změny přijímáte). Přijmete-li změny, váš lokální soubor .hg/projrc je aktualizován a jeho nastavení jsou Mercurialem a TortoiseHg vzata v úvahu. Má-li lokální repozitář soubor .hg/projrc, uvidíte v dialogu pro nastavení další panel s názvem "project settings (.hg/projrc)". Tento panel je pouze pro čtení a ukazuje aktuální nastavení v souboru .hg/projrc. I když můžete aktualizovat svoji lokální verzi .hg/projrc, nemožnost měnit údaje v panelu naznačuje, že nemůžete měnit nastavení vzdáleného repozitáře a že když se nastavení vzdáleného repozitáře změní, vaše lokální kopie bude aktualizována při nejbližší akci pull (pokud to dovolíte). Panel "project settings" se zařadí mezi panely "global settings" a "repository settings", čímž je naznačováno, že jeho nastavení jsou použita po globálních nastaveních ale před nastaveními lokálního repozitáře (uvedenými v souboru .hg/hgrc) **Dodatečná poznámka** Podrobnější údaje o používání a konfiguraci z přikazového řádku, jakož i nejčersvější informace o extenzi získáte na stránce `Wiki `_. pbranch ======= Extenze `pbranch `_ (patch branch) sloužila ke správě oprávek coby tematických větví (alternativa k mq). Bohužel, tato extenze přestala být v roce 2012 aktualizována a je proto nekompatibilní s novějšími verzemi Mercurialu. .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/faq.txt0000644000000000000000000001012014023111777016272 0ustar00rootroot************************** Frequently Asked Questions ************************** *Co je TortoiseHg?* Extenze konzoly Windows pro Mercurial podobná extenzím Tortoise pro Subversion a CVS. Obsahuje také aplikaci hgtk, použitelnou na mnoha platformách. *Co je součástí binární instalace TortioseHg pro Windows?* `Mercurial `_, `kdiff3 `_, `TortoisePlink `_ five bonus extensions: hgfold, hgcr-gui, perfarce, mercurial-keyring. python-svn for hgsubversion and convert extensions, and dulwich for hg-git use. See :file:`extension-versions.txt` in installer root for more details *Je Mercurial ve Windows kompatibilní s indexovací službou a se skenery virů?* Ne. Stejně jako v TortoiseSVN, `doporučujeme `_ v pracovní kopii repozitáře vypnout indexování a vyloučit skenování proti virům. *Jak lze získat překlady kontextového menu Exploreru?* Dostupné překlady jsou při instalaci uloženy ve složce :file:`C:\\Program Files\\TortoiseHg\\cmenu_i18n`. Poklepem na zvýrazněném souboru :file:`thg-cmenu-cs.reg` aktivujte dva dotazy, které potvrďte. *Jak provádět sloučení a výběr libovolných revizí?* Pro sloučení a aktualizace je vhodný Verpánek s kontextovou nabídkou vybrané revize. *Proč se nemohu připojit ke serveru SSH (remote: bash: : command not found)?* TortoisePlink (and basic Plink) will try to use the :guilabel:`Host Name` configured in Putty under the :guilabel:`Default Settings`. It adds this host name to its command line parameters, causing the hostname to be specified twice, causing this particular error. Clearing the host name from the :guilabel:`Default Settings` is a possible workaround. *Jak mohu použít nástroj X jako svůj "visual diff"?* Od verze 1.0, by měl TortoiseHg umět detekovat nejpopulárnější diffové nástroje a nabídnout je k výběru v konfiguračním nástroji :guilabel:`Visual Diff Tool`. *Jak je TortoiseHg konfigurován?* Konfigurační sestavení získává Torotisehg ze dvou systémů. 1. Z konfiguačního systému Mercurialu, který má tři úrovně: 1. pro počítač - :file:`\\Documents and Settings\\admin\\Mercurial.ini` 2. pro uživatele - :file:`\\Document and Settings\\user\\Mercurial.ini` 3. pro repozitórium - :file:`{repo-root}\\.hg\\hgrc` 2. Ze složky :file:`%APPDATA%\\Tortoisehg`: 1. Soubor :file:`thg-reporegistry.xml` obsahuje Seznam repozitářů Verpánku. 2. Soubor :file:`TortoiseHgQt.ini` obsahuje nastavení pro stav aplikace (pozice oken, atp). Toto jsou některé položky, které jsou uloženy v konfiguračním systému Mercurialu. :: [tortoisehg] vdiff = vdiff editor = gvim tabwidth = 4 longsummary = True graphlimit = 500 authorcolor = True authorcolor.steve = blue *Kde hledají extenze TortoiseHg externí moduly Pythonu ve Windows?* TortoiseHg obsahuje úplnou distribuci Pythonu sbalenou do souborů DLL. Moduly standardní knihovny jsou v souboru :file:`library.zip` složky :file:`C:\\Program Files\\TortoiseHg`. Pokusíte-li se použít extenzi, která importuje nestandardní modul Pythonu, zjistíte, že se extenze nenačte, protože nemůže modul najít. Například extenze ReviewBoard importuje modul simplejson, který není součástí standardní distribuce Pythonu. Aby vám extenze chodila, musíte přidat několik řádků na začátek souboru ~.py a to před řádek, který importuje cizí modul:: import sys sys.path.append(r'C:\path\to\module') Nepomůže to u modulů, distribuovaných jako soubory ~.egg; doplněná cesta musí obsahovat soubory modulu ~.py nebo ~.pyc. Máte-li více extenzí a/nebo hooků, sdílejících tentýž paket (package) Pythonu, můžete vytvořit extenzi, která explicitně modifikuje sys.path pro všechny ostatní. Jednoduše uveďte extenzi tak aby byla načtena jako první (abecedně). Nějak takto:: [extensions] 00setSysPath = C:\path\to\setsyspath.py .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1737033607.931414 tortoisehg-6.9/doc/source-cs/figures/0000755000000000000000000000000014742203610016430 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/figures/archive.png0000644000000000000000000014711014023111777020567 0ustar00rootrootPNG  IHDRn'bKGDC pHYs+ IDATx^ܽ׹6<:]keQeI(j_^[%+XHI)QbN93 FGN&-;|^sP( @{9{fggCZh{^{p?ǷǞy>߿]pzx'xQx!|{^׷{Id/aO=s~Ďl{ǟ~豟<ȁ~=<@xɇ}ꑭ>{_zb+a?_<з@^ |]zm=W?l݇?zg~Oџh n}m?߲'vݯ9YSGxwmʖ/=<߽;~{]O~O6׷k?9'7}~ϴq7|XȻg=c+;v}Ϸm{'x~#-Ol sw߹0stϱov=G^~w˫y<귷vo>w|׾dCO=vo끾v/pE]v۱޾-;^m9G^{ʷ{+߆zC[x޾{voorԧ4}eێ8y6x-<ه>֟>>~g?}=|߫|o88-({{W~z_~v~Ƿu [~'{wͭφffWfS&&aTxuf~}6磉R,YYX%js&Sr-h<7MgkӳiXLOLO33Zx>=E r︴H.70Bm6Z/g}2k 62SPLL68/Fs|c px"gj4YbHNx:_W=eglå+⊭y)_,g 3 p^,T8*B"F8ڜ4oBUSjaj5SfJ̉enMmɺ#$ds2ٜYj-5#KRsH6b3М5g"ɹ枪ڂSlWxK_YKP \p<6ќO4"gs$ь%:|]E ff3j`3SkTp&IfRuk&ZyshX(eMJVEт!sy\>ΆfәTh}ҿ$Y#>452k` 8dȿ2J H NBĨkDu~^( 3tk81+J[bKfյRJXIa9j&RX9j̤Szp_yW{N<7Rzp~54] ,"Tdm:gJb\/֗k6% \4Rl5龟|MѨzn7|OԜhk6t*zsQO+T+iϟe4ol5b9 ;GŊL44voMk= ap4T]fJrEʧ#޻6ƕ7Ͼucoϟ}Z_pkXk*}^m(i%`E6RT 2cF_Ĩ6: ]RM^VN_U^Wo)cUefMt9>'5d˜ExVuZZ:KCgnh5ԖTrUV bMQ4UR"54\U*SEeJPVJr="eڢTS "eA( 98uwYt͡뷃䍱zli8Öey_BuQ.e*$@`JF?vV=7Zd»C?4^ !|LY9ES놹5ln,-%֖R[Z*sKij) -ŒFҙ[g!o_ɼu5exttQ9ϫߐF-%ҷ$̈UR[r]KiHUUX%3>F^pHԭZ̕'fNrWRZe3/ɗ%N>ogk*3O ND##C÷B\_zJ{1#Gck'T>e _ZR}UaSkjSMiI6Q5riL0,߆|q*Kc$0H4z[*oSm|Qoq]]9,?2?2}Y>\D9-9 }I^6|ޯ:sKـ!# k]*dƒRk^7Pwb|spS\5{OyT*DOϷf<-eB74\$x0;`'螑 0B1NƟfymgԶY7-g  `yo[e9ѭ*T ,96/ bqB7a$*Q&59*#t\8۴&' Q-sa^ s ܌}m"|x;h3z2wx%_RuF˩ <^[[h'8&8fG`/%Ԕx>I-j#څ1m,1+,:WB}VJ9!0`sJ薒RRBnmj 8PUuu =\ ܀ @@]cCӵ`sڼ+tm^l(SXU BYBd4[b+9XPc#3c၉31]Ӆ&<Õg,_auU&TƄ9k\g־-)};H̀j/|D>Ë-Yo}W5+WJ&~_#lJ 2=0iȭ_r [y[vX _`94_V)+MU0URUY`sE|=(bCće!X/#XY(0U9bAPl.s朅!z^3|v/>"+ G"/1ܥq*W*JV)K2-e@WShkru^U]Ku9Cl\{?=>6}-4ޖ4_sۼi|宝uWN:͙Sڕ3/d5uʸCM_/N8qBErf0pق͝5]8Hsʎi?ٷF>h+ Ae."tkEo̫24.sL!N)*)Ѭ)Yoo`H7Z;Zn6;r[.oZ)/+Ջ2ՂDJY$, %"iD"Jq*P/ks`+\߯3t߫!Ӵ&{[ʄ(]\97Q>G/Aρ!&J6yv1 k[Mb7csёۣ`A4PytbFn12.'ĉd(VPRjEʋkįsc.&s9ag^fic۳3S#FnNٱ9iq#qYDT^  ve͵&<9" H#͠#Ȁ D誥1:CKBSUjnT!HlNlʊ<4h7f?< 8?٩_ ~&xLy._Nye/'טh#^W o#`5XSÙo!2kDr8۵jhn`މ-`hiB4zbs)6樧i\u׿rWιʟًgms+ے`v96f~\&r<ڜSBkN?ԧ~sA9uln, t{h!BקU)8]ZGŅU!29AqTedly龺S:&kZoZWRPtRT뗵aUoNmYhqWt7Mt?1BVWCo%2?. ׯW/0gɳyVweP:Lqu!2xd+[ebj]6w%`u.kvsږUZ3 kVi),99Ly(@%6r4TƢXR+j9[:׆FC]Bs%Y68s&@3XecIʙ"bs ڜ+˂y_P]"ulSYCA8̩]8["_%ۊ戺5k1 -30ܒ[ZJ-cT2pA`sE7F^rY,_`W.szSؕK rW%j ka`s]Ko XCo 5 B2-i6N3bᡱЭz`!p=36̊"YYi7..[<(YxU/[nNCv;{'9]BO19k D/i m<~X=d&Ye6wOsE9+RMEm;fZe{Yj]E)rUruB%󷐹 BZФ* k~  (C{~u_ p*x-AAzܧHBCK`UgqC$'·mYћ5v"'v;Ώ('%FGAYsfcE?c/\`vx2.XS_0ټbA,&` /!%ʅXElt tΫ]LW؜bEr-#O\nCaerLf9zL!7vQmj26FҬ4ԕFe)hKLbô[csW_ |vkԍצ\ԇW>6yԱ'gύ/Gn0wa.r\a6. ]$IBSO>LUIcӍMit5 T2WSjr\ 1MGVn[DGZÞN YZ^TBԡڜ d\楺 Bf}YAihb@Lݍt6{>͈gƮrKc S |YpDY\A+ꒃ~>~Ǣ@^clN 8P@Sk*Bu̲ dqDA6taX%GK Cbir<]IHbHPy g`$ʜHW8E:'>ƌܦ62{qhOfΜ֏^Έ@8̎q4Kgw8W#659 u7<k-u @.Hsѩ49Fg@;gSlJ sY:QWFmqkyZ|.}o.ǂ90&؊U:- SZZ:`j#GӶZP1/5g撻e܈gOr_ݿwW[{oyk׎6ݪ"ޥK\ m@MwլU9[Qi-99TQ0@L.Z=%Dwj. v@5PE*Z^DC;m^ѓ4 \HՈ!LjJ5˰J kb s(&4P6 .!2mMJ^xI-%)(@vH 0i.qYT0*o<$'pB M♢,KgK \Yy O^ʫy-5Qy:_BMSmJPT1L5%^ 59<*aunހ +Uu>{C@܈" "6g!Ɓq,|bmszC!F~995k3|5sQz$m -=rN ;ED9ޕ;J(]EdY/_$PCPB">,RJty)]K 8b[s* :Yqy`|*:h#-re@++X+c@0>Mf]G؋#eh!PIEfٳX h4.GxSWy,GfKde`@5l![cS,ypYMZ{hRu 2(U$P-L@GGX ATJVdeGǹQzr!0%!6V6WC7/KJvUFRГKEe)L1{L^,_6[?T-r__Bu%߹"CxƠUԮbJd2zioh`z+o_ STgH~N EWM6  ]ͼ(z`IDܾ|,DoNs`*lnL ) |]Y˔H&%|ONH2sBEA,b sP u3$es 4˗d D)sDͿNMB! PlBaOR%*fYPm'(O+ok6tcyn|;N-3@,ѹw3AG'9].r0Ex8_#?{F`jA;مiD̰)PTLہ]k[tKNE^*.?sS0wyW?`=3Y=Oǧ;&K~{zN'M-Bl+ x=?}IWX;;ɒoNgGCe'k*Y}~g9M\,{@ /f[xw8;o A`R) $EH BH1"+ u LN_{xqbdSZMM)S&lؔu_ y""&پėuΤAJ#)z#L%H1uN̚BW@O-RW:袯(f#+6e+2;,4m*rt ʮjgSF>7<056¦5=eJאx_m؄M:Uױfj&l ރ!J7Uw)_`?\sͭumny Vyu߱yO%wRFڠ,dQ}~X'9N hyRT.Sd:&ƌ3TzNlDV(Ќ7mdCXL)sħoDT@1fPw,`ZSrhdR+ BQfʜ,Pm c[52KꕸOq3T_~1NtU8svMx\T _m~) HF%X;iVll'o#s@Y۩qTWq ꥃW|JP#olZD׮KTeqΟ J ;MN6؀D,*([Fב5hC]ߡtL$Õ5HsNZ]Q:K_j X tkXjzCCua1}|dh &|g Gt IcWt )+v@Jtmz@}|H>W1tПF^>۱So2~΂U VOv3Pt >E `RO1չ1{icX ꜗqO})jbK?yGC$ZGS{y~  ~ =w{S Laf=^ o'h?SLggj0.'yªLTFoQہj#TJ q!rZtYt$'RĚDSrOYȄ\4ؿ[SPӼG!#&n1@4(Q=M],URHgJ@̊"PdCWv*^K$ӗ 2q8=U5amit`AF02$,e{n δoiq4Y Ֆ YGS*z!ԉaj"ޝƧ6,ؙ l5:mTg;EMc_.`s. KNVE櫲<4USgi̞;>U{6OgR4wjiZ)\xiV ֪V5*F{ l*W^5:Psr|}fW'mg2WzC Njo~p|]~?|oywO193gv-/rt.&I %ܽ)=Bт> R\c|<\|_=oS. }H·e0x΃d݀hw @ރ6?Ib_LV<4'ʮO9̂t~G.Ο{zdۻ=w{ G:B$/pxsmy554$^Z"Vg%,v?i 2]Af(QsUSPIAP9nKzJ% :%ENҚ UѢn^i Rm^RrThPh3"UFHH)4IeS0US5?w@v8ҏ_3UqMPJVPl#m:a*wUɌoI[A]GE:dblj ]g u\ <)vLs2҂k]z[62j_h@֮@=8LAtXc+сcqIhKO[c8-p 2_ > \pPqJW3u^%bv!wxhvmLjvW-s֧`s1,ɴ"hsJ6nE6i[Hr"zcΓh݋]mРq!B7Xs:sLނOD* =(ӗ\C 6:-<m!Ndpir8kRpݒ1@]w$BlEcT(VXХ, J(BS'h.#ܐ̑RX:{Ex4?-Eޞ潁 ޳穯4C[)r3]r &E$_f:=L6rBjY(LUNP{؉z6E:@ :` jqL8px 94eZ×QCyx' ϥ<'nY*0o\=QƌҔUs*K^m-hzg:^ IDAT 7dR ^ۿ]2F'y t4dq>rg$ [ۣ)\0N&>桺7~>~Fy\l1CmӜmf"i`95 j Ps4! /T!TkBcıOsP@㌌ϲLeZx~K,/K"X"87=7/^|3 G^p̙3Po~[;^3%aYcZ֚WU}HYi4 Y"< $Q6oُu{@Ю5ٲ`4k5SJ_*J` 4 к)%M'pu{\ږքӛb:seۢɾlq[aK(!2O8=@=ǎ5ڈW V:6lmrN1_o^pgmδ*3g=]^j8$^xms#o9ĹXH3<Kceq`)N/㼦54a$IvѹHkھB:>_@c^3HEl2rI_eo_c ҤCakeAWE@ǦPpBsY(W.ӥt*sVmɩl?%= =aqz{_ dCGO =9tбC:t4k:,3/8-Y=vR4VاowϖgdpOP(EOӹޤ='Nȧ>:}7xkm?tm+?Jc2M\[PjӢֲdkg RAz۔I3HǗsSvْ05I#x+GdW ts*9׬ Ě4:xvVU6P6۲ B@P *JFPIB]gq`#;X꾩>0N:*R6mlپf0/LIy`]3XM6X,Y)pܢY: xQ0"\Т<ÕǗh832˜ 8}n$iU(ŕHâ4 \r@F=uc ƄHNe+6J FFzl0^1,B8Yrlq%ʶgq\|IWb.Ѥ(t(t54J,`GOo}=5h=X8IùYv:o հEeNlӍhmjNwb*Yzܴ JѵS9:*ojj( U!5z8- NTp%}mL6YO-o*RB`#6087(?i@AWhku7H\N*W)2NHTuZalrb],4+\ @75f*id zYO & PW2Hm&Y(̓o9rUXL8ӲD%9,wɛa lG4ϑD\9?~~o~x7Mkӿ o?YGٌP+\kLIuXvO˹|qbg:>c'pZ,CD|"2Й::YB'Wƨƶdڰ.%ƸN7A, V$ivNj }p~ kPMD.-Vp6WƊٙVOFkP'K 1ZVuƄJU嚨RW*}R_Vu)3tZ4ZkAJm d0YU/ r\ 8/r]w_1Mh%p-ZJdLGY fW1wnz/*!` *9+:2>?91y;xkx,L_Xa,2#x jCu+0i.B' #ڂCNE*0AbXJ_g[n'A}^{sX D$b36[mp*--Dw[5T6FR96j:3N.Ū_d5IlGW[32X6R䈖%\JR|YF '7T ^*279ם[o3+Mݳߟ=ggw93v;,deKD힞nwmtlwJ$ŜsHH `@90'1U@iZ9BսnPO]\T A\M iꛝFy2W3yb}<G=]Gf`QmmltεuЃ CP&y HQOoN05϶vG}(5O FX w~=]=a]ճ$)<)SRw}zFɹb?pg_g봹zzvn\dSݻt/o|q/W+>3*`V׵rew{MՍ5uvKk]T{:gZk[0/ҏ5FoK?zjX6.%OI[u5YQZ]^jomUNʠ!@XU ]&3K$CM}u ͦpSxkD; GFӪ<q\xu=ԣuS]RPgԆq<˴o'h$ +:ÂJ?:'%sshd&$R[K*sKd^|]1ۡZ)+d ݲ\!_nmo T׻J+m%9wr ݼ7_+~mۚtp$tVTi/vfZVZ:@ri"#./<92 a^S- 5í9}wLss-KHQ[l--ϡ0Al厢JOiMBo;4N ~EM:vϡLz?#_N0Bнd̏ԻIIJr9U=_D.==AՖPPQ џC A}5zN3-22*|,W꼕Գ |UMFOefZ\e)(9+U &_m3?^:roX(ӫobĞŢ*7+=avC,mjUj j>TMT5j] m9|\o!!ӣq(-D Gj"מukrռ3o6Z̕ ֚F[MN! u|-N7\$׮:3-mކɚƉƉj}ƾh{33xyoq@iPypEhexeXePYUq;D[WxP@Qؕ[~X/VvTjz+*M5-# vN~|t=uKwJO?0A[k>-̓=]%EmK: `ZWW:9٦ʵ.OP8ehSF_Q[8P2fi;~~NmXɣYa$A2C],u3`phVw.סtg= mߺ~0c j{.[Ejih3UV UՍԏU7ޯou6e36}u[^m/*s_-յ_\o~ qϾlZ_ov\Z~hN^чZOeTm+4$ "ג{+4F372J-RCKlXmhu~;nSq>bv+zo! y8t?>_,7aMDt 8:V5 JaΒ/b;EL>r[HG]F_EE_#A%g?=k\ątP vv%P(qY׸(/ً+EJKQxA⡼"Sn0),/ܫ' &]4|NZUvoid"-uE0uj Zb}ue#E2’RSfdbr^Qoi4H+r l8i^J}Û#nesmsj'e&ivzzzf>I3Ef&w)kyITYhfwEx9s=Gln*KLeC嵔F*jLe=Ŵs:>ɑ݅ qHW/VK*{J{ZFMuy/.݌J?WGk\3,i{59a5WWwvu早*KZGdC=퐻:6ksH]]_uUwYX^_8\jn^vVѽYVWu}k}XiT* Sx. ն6[SUt53aEGeX-t:-ɆJcqXRf(.5QZgjtJ|m+Rrbme]Z1_<|?-:zMH??Y>kO~~:}q[=ⱂ2[IY-5E8:u[:\vY+-3΢ұ<گU7;]7Unhoܸ.{-[T{NEo7Sh/wNW5 u.v*dEBJ]?G ޤU)'oGHLD/B?n]5bB +bFDO"rQh\򤢢V.(WڦOI-h4'S _r @9B0x߃{y99۹wJKG +Ƌ'U fDT-]/=h Tn2f:m򅦶&gU|(/7ȐWh+ɥ";ydiI_9`^ESRΔ:qRKӉ\ S*u;Km6:-U򊁢~ Juo#]$R7hGvDhuc5e5#UåC%sG5_9|Nd1惥}E=%"hv?hvD"]bM~\WTi(+3U567Hm.Z.hN53 R7ߥ_Rӡ[TԳrmevD]PЙߑ[/UJkMUѪ+r=0tkDchM@EeOIEwqUoi@Ep5$ns4}RLvQ[Rv?RHi{VIGvAwKIbkh1BHlmNw" QtKr)"$mVVS7ZV_Tғ_ҝ_+hs s {r y%&omLtk>+J^+O7egפ)#o@4 B//(,U75J!4ϕݤy3娛f`s&DlޱBu2#m[_'S|o/nzo7;)אF}vw>pX^ TGХUNѵN ݡ^<@1 )rEmt@ȥlUDG00Rޠ*"7SwQwQɣA? [A tuat17Aáa u7JjeUNKO| _`"n.NNnϝ9zh|{OMt9E:gu Zrn R>D6/4S61 s s 9x}P%BzqPY9bs964Iv;I{A_5߻E/-Rg=`Iy K8T C#Z쪧zxp 򴖨;MiOZce`JSezWonZqP~exUxUxUHyD膂b" iɓөFz~AAKe=bhV U75%S-Y2%g:sr͂BDް!{%R{Sn\/?-`J(jַLvxZ\ͭ@\ÕU𭢴TV?\Y?Vd::2\$'_oW׎{=;>y{5WVU-32RKbsbi{K+'G}{G{k7?ӿ4?~yßm+_|k`oT7o뾹6FhAS4 }$u TD lNzZ:- *[ApN~;9[~ s'6Kuפ_o:L(l~GsK&|A҅fesH;`Ӝdk9q 47XBu}RAm{d5P7.2&.LGQD` =tt~MEEWJ,*rGWP 6ol^**>,yw>65鹝}}@ȝX>p/AA@H 8f/uhCa9tKӽ,aZ= Ͷڑʁ2J` Sqh94ϛuR_|NJ\ֵ nzu zsexy(iֳ?:Yk軺\kmkm2W׏U טJ*`酪]! źR}AA5`Qedo6gKUtSmBzQNy8Lל/:'ƪj+K 0Q3\V?Z8d9Y2/iIe{5ŢAh\,4EzCI"%GBJeSRO'k- &[M+_w,XҵFn߀DF,kijhq*FH?77ߐ{E5u\tAD_Yj.ַ4LU’?xA777;Ͼ|eBRބjhuvnKa_<ж& mz4$ }H ut%K.  >x8p7Nֽojf׾jHT~F[H}n*7?,uU*"6t IDATPPAOsoAߐ\N vzѓˆ=r?!ŦZ͔m( `<[m+r"+"ClkAMŚZoIĜ[0<<ӽ܁ws5{7xn3{{ahK omLSD~ "tֳPiِ)WZes{eb|t}_(2>,- ʑRh#M4:l7_%}HGnA 8H1uPw)b;ԥ#]mf fjvz|;@Vp S$OnZ)kZ<-κf{mD8 >1kymNrɹ,)u4X  Vۼeb<1kΌ[F́qȘbx 1DMy%,3f,9 YN.L8'KNeszp:kNO4`"ǒ PK2 Ŏ%seJp:\HiI}1RmվdG5;YѺӳ]^VK8W!ͱ<m Py U„cF0pxBNo :sf_N.Y㖹101=4:;20j]Z&׬ Ǻ͹> kk۪ٺ2f^6 }&o߀ }>70Y,Pr ;a\=tml:ݛWh׭Gfyq̼0:>UZ O*qI{aOg` Ώ/Y'֬ l27v]tر{!zFjI0] wndOF"Ț A'pzRH9TBvgf߰vbeܲ ѱy1D>0OS1 801 1/sf.'-GC ݛuӟ@K(gNGeĂBqi*fF$`>$0[p/MLr`aW{|!o`?3A*FY.φӵ QC'ǩʌgEVMljwo羧8F&V6ojP 'x%ij' 5q)/qu燏摟V}Kq_8q<뇳`)y{o}>[)G~/S'ӿ=y淧sԯ1zPeŒ_=coN&Yo aԺB2 ( V6N;}gDjBj0/aNÙ }sddrQ59lȖªa?yr] % tQt9|HB8v◑ ĩ_|7w>y<)E I\x TM_w]NtW K*ͥߗQϏ#o4gW4de*CՇWΧ>'}ȇ?r$ ◔~ɲ}c>L̅TFW"0I1$G"Z+&'I5~;㳙(ׇَ](N2G #'V')m>~'mpV7($#PNFhȾ| Zqt%hÓ6/yA$,|Z&[U,uK]~qKU"-X d" {=A&jó:t`+qgv- kh'+A.egn@EC3Fs;|6GIG.e_=uMϺB^DC_ І?d" {AS!j^:y*& g YA/=\S!72^{'馢gSd" {@Vϴt(p4͌׳>#KPC({/dMV ?n`b&8u8㍬CS`M[%+A˾<؜7}MMwHdbA$-y?L?7Klhx[]>yk])+( H~3zpV-ut˔푻~כGƤz ;6dZbۼ G2{ٽ Zڽ[e_KVSOo!|m6O2-16͏d8kNhk$a[[ |*' F6MS;mMzKuxUXuf7T6Gqg#6'l_TՎV U޼Z CcM?Ǯ7^Avm>SmM4A_ [R $}WP*6M`c6[#T||=-O>hsA'<nnݜ>u=pӖadodee_LVSAI*67t?6B6 ƙ72^>gստ2m ݻٙ |*@#8I旲ž/3ny{թ] l!K)]oc!Hq̏x.R=R__W3^8C$3T}[ZwT055a```<$OW6T>#OK=΃2ؕ =ްڸmtA=6$up.rŌwͷww7Ն`/: '䂥Vdi^gͩ{$mij_{ZAm0ZY7RY;RIl~ξp6t[[ZEIONmlmm6Zj'm/.`OAOoXk2 l^BA$=9%%eoK6}[[st؇w!'g~{ʹj϶iW<g_xW-VV(F@A7gƽT(J:W/y~">u˫WSd >9 yZ&|!ߡˇ"65*! `dy>7=tÁfzi2Gm>6Bۼ vLQt$qzH8G166P^fmߥ^BRǸBe_la#GlzO/ zFIg006b4:4j1[mr*Y^ݧ1{Em3;oԾnºKY͑4l_iToBh}ԡ72^p m`r}3+(gsCyj;.Fiy av ܬǸ߶!qJx5G|rw*P:ݜz7"cBVЖSxb|=6l:RI:.6,HmHQ'{f&ݦ%#uϋN"v>)**J-)VaSW{z;̣њfdHVO7$EL=¢?\p}=r r ~~U -}= =Dm^64j&N pRG{Zr.KvMxx:s, (6S,;W,KqE hUU,{(.kMVwwސmKd‰ {p#ǩ׽mK%}R7k#𓋯EizZcH }i!6ov@v(D 2mNFp$p>`Y˳U+yvlf深"^]dBd+ɎO5M^ wwߐ3rvi='~{veF<-3ǚ'ڻdkJcPսn8d>6oP8]nq8YYYv#iDLā>R13͖͞<{$5sHyEf_E%gGdsMJ\86nOٜ_DS{Xu:Wg%\<`Z+=kJJgqǓT@\ѥUs('U9я:Gaљd9c@![衵UDˌ-.LL" RD* bLإ K`W\bLU2¶V$gnum-sIdURaT!NTH sr{q9gpplL70555= @6"r_c3,̌XX ›*Qtq.!,pIuE2H^J0$c/u`raz?| $?^PB ܢͿG^ٱ)k`hˑ=-Ue:;m΀ l,<&]:23rrչ53o<T(^W]ݫJϺoN$+ YHVQ6>XyLp.*EbkCCNNCH6Hrg?đmm| Wο9Ur[YzKYrKY:ëq5eߖv`K۷AҖcnuV?8x' l軇p!A oww5w4j7?}<=[!A$y!5Xc0|3]:Hrad" {kCH %㳎>rO/{ a|" H/N;J': &:&O86m {)CEIS|pֲtxUTؖϟ9W}!qS?6!9 H:rwmY-s:[e< !]oDn~~sAt?\pluXq.WͺְwދxM HZr6;StCF&5 g8W݊>B65MO'g /BP׳g6oEu]*ڜylPe{kI.3':p$J&{cɑ'ߝ MMc |Wk[M6%zl ￑ݽCLFF-fMT%og~rw&i!I.:$ )t̅fgx(|" Heh[0}d>ln5OXmvӥh`Hls #3)OGdaelw`FܼrEtI9F|z3-Za2+&mtOo>]cxѶhJgv7d>6kn[lv'H|zzzbph85\,19),kXZbPLP2+Gl.^aٙIj*md: $kG#O.qmS/O.;$~|N&_uδ:Vl~u4YO["w݁@`nnn1:b.5,E<=/:3$8ZFn;ǵ왼cMln5aMDm<Dtg~Xqd%yrrݵ:<6oP8]nq8YYYv#E\SZq|I{Zx<^=l!W'8.(gpplL70555= ˙h!d+_IhblJ嵈# mHlųdf*0t[E%m42Otal"uF' I9eW/nxtʞ !1վH~gD: s2ѿt7T M_Pyq\Pďga"Y1O3hse<6Wnh bsI%D{Z̑/pi6]@ȓ}1Y >yV`$1쇿 wb?qە EFaC |z?4B{l(@l~KIDٽPB.iAIO6i|ʄl4;rd" {esp06+SO.[suzChs&+A˾ 6 =CP<M,ZZj:5+7VWЖ1 ͧ6}P) 1l~8y_%[jWks;AґKMoHAtw4͌S6U叚;sJV }6@{$  mGMϢAҒٙMW;!z=S?-YZf;Vk-+mNatH9Ѓ0ޱyڵ<)X{6N]ofk t^ޢ\(֚p:YOg?= c=#z`^ׯ|Гl ll}νPm!덬6٣&պT޵.u'/q)>r|_ij~666`[``DDž`6DW36&FnS.hsC>l2C3``Des{fzWͳ|l僞C!ސ+ro.>m {H' آm}ֵiWP"$ O9}!~CaPnj_m {Hb.ڿl柼 M*6$r*`Z䯽j!qCշkA{ٗ8/2xNpmnltkfoj|a;]E ޲FZ IDATdsj'}~\"`ww.zك(|_bU7?sdKMl9123:,g I1H?> :[: Zl~`Ƒ7!/|`C;e_NVpx8 7#lN}b5kϝu'\.X#6'SG.Vg巒E8M)JTdĈ'6rk#'+ڙϯ38_/?'B$K`Rߟo5Xin[irm]B$KR;m[.ԓo78&_Mp;DwY-\>";VT:qL`drv jBrpkS$L m%>c7Y+6=L[ s%9li?{2Nݣ'"`{)=]Yمdn 'uqXQR,rN,Y^>"tۜltں6>Um gj9ESmssH .&.NSF JQdmNccN=T-pĩI^㬗R|Er +|/B}qW11uc#̛@VKlHz?,$6 f13t' &L,f=R?:6?Z6QTf(~!j`D;9sLvuDEWD{Zsve+qe+Z#jk>TL>sV;8$(-5aSbMgMs',(#V&Sv/?!S85a&9h#Q͉Vo+:"[8g|jQ|ƧOZ9~pywNfԜw©Lr2WBb-J8267\j)(ZKO=\#3pF!hAdf>9spnmmЈˁmVjAD̲9- dOK+h[qV;9͈]֖#RX^{:[Et+*_)o=3KBQ 戼}429oow{8n~hVfs=6N@Ǡ׏[8n8qILfйH~>8,'N 1d^)m|tv\N0g?l^P߲vǰ{}w/sH`m&Kwlcs#$/BMZx6b;כ?l4CI#2\|`[4|wQCT{H6?c b:*%E3WPZhs.hsd? $KKKR%S`R9}b&6g@#czzI(盟ݩUslu01:A=Dl>m΀c!^`O?ի.kI: JdscWx6ס,/:s{p;6?CK'آx'87m`KGE?esA$͹}+ oX ;HrQ C%Souh:a7z359 ~RyOءꠢS]6A3anBK/F#3.A͖LC!~AϹEܒ@ܙkZ g]IE3ܱ$[ot]>6GO#8ѾZ/]k]i]vMzဈ!A$=9۶5slety[b[8A-A$m9jWQ|aDea托Qk4Eo܀ x 3{{ڥ1Id\СsNwf?#Ahs'7/U"1͋0/a&,J?]3a1HR0b W|Ok#c??<2mzh+GϽ1*GxNnRtt3M(n 4]^G\' Zm {đ9 ]a|6bsFOS6Zf?0ٷ+/ᙷ󧾼S05= xNOnKJcZMzcM=_뾳c QB b>"NT{ -K}:fj};㓺,qí ÚAbS9#;DP>wG Jy$qqgf>C- ADmmiszZv`({{k5+E ~>euObY jYkHŖ {YI0E jT:==s;zӡs'Z: X>( ے*R'oOO>̔pDj^|c{o95y\>ۻmpj5k|9?5%7 (af$]9/_,qr)>A&JɈ&2T/C8J˚%8Tq-WF%{"%SLJ$ARbd:iw`>1[,0}8Y9ʦjfDG=֖ksiϕړ#B22$(Agě`E\'65ov@HAaj7 *_^^^YY| YO $qQFs33E$M#cFF%c扗Ȑm<ċ65hV%Rkw8`|aaajj ʵC=ΈgHbVO;*9IT_f&sm ӱ#Vr$c|NJ Ӓpsx5͘dP6FlN<9 tsKKK\ȶsq90T4˞&OyтLRHsc&:^%D(j#RYtwkC3l6/SX,x 3=' 6mnl6O rgZ]T\ի2-Ocd#3BG?yn4K66GAx6@#?"6l>6GwAb6A- 9 ȓ!9 >m $6Gy@#< wyFST\| i EA|;J$fy&%LqhC끋WSEd4=_]O$yl6Ì=433%nl( pqvqY!J$6 ~<B:y5hS- 03T\55= AƸ#cG2 >hLMc.|m.Baab!V{#CĤipdphAxН̘A/ˣVƚ^I+ R^Tr~uÊF3$9F%Vn+.~M⯝2: 3[VIcTYims*)pƍņvCixl~? A̱c}E_E)MKˁ0c_E[g_  OUƫRN6SE+VSHQ;|A.wցY}%枷s9!hs>ͥ2ȸu|cX`͛:XGa>G23=nʂ:)x%<9+hT&^\Ɋ[V'mHmh$;92.ڠlW3B l6PPXhZ{MCãʗWVVfgg}>,*M^k+1/r$vċ$I霩tƙ4efnu b͹{Ny v26˟R;AVKpa$?xE5Μ\F"JLƊ$63*'%l _N%u r%~g9u` w車<06gl<s$R+Z-)g5iI1ͱHAі!!&2#E$9yգ~}IaC_yV'@Ʋ\F;xuNJ!'RX[+ie)x 7^Tz H&byҺb ##hCWz^QX4xqwFG6'6Gv bY ##hsA'9 ȓAI bs-hsAAI ͧ ͩؼm  6&:Ad9 HCۜHm ٜD  i x6'BG#-hLMLz OhPXXhX!Ш21iE ~9:gx ב2lytH&Z/,R^Tr~u#|F3$9F%Vn+.~M⯝2:5):YduOIIͷ7Z æqFz}>_,q3$9Q[ṮؿQ.ZXxU5^p=Z)m5U$뼳}gy@,#%qRbNX66 ͥ2ȸu|cX`͛R&6K9G23=3WԱO+YA2qJVT :n{wElEs%yg)ol}Ȟ/4BMl6OBoU2;;`QAܞoZ[Iy##^X&@%,Ι*LgLISlFV'm.mۜ;yJalmZ-Jg ^s SSSfE@<'՜;s2 d2WdxJX9#Ψ\&ېE * $(].Zn WwJ+&SJj6`P_p8<[ZZJ|؍%L>&-uˑ-CBLdgd͚!Rxd3$ _~[x9r-:l9;O ),NFRX6W-tyJx<64f2b03DOBxs9ys;*)hCWz^QX4F.s3i'NzU[6'B ͑] =ECwīX:9ABI:TI OIPBG#?hWU,{ UjA,6AIlξm pmN"6Gw$y/A$!6HfsZhsAm $!hsAt%bGhsA |g(j4Eo܀ xPDdOٜͽhxx<ܼVl6/R oN XTv(͙"Lad<m_2$f)g:XI`vIrT,33kS䜎#MRhOKՐ=3NCm+N'4fg疖RBm!,zZ'YqD6a)+RܘbW2&q |-J9 JlP❆ m5 #tWx<64f2b03C{ViCZ4ikDr/x[yBȝjuQqWB˴?$ޓNC1#zz5`sCch'ݗIϝ qy/2ܸ6T=km9tA#3?˾ {ֻ !֔ Y Oesu%ql6GI_/zC.BБ#YomNA$}ynCݐCh;VBwnm/'qbᄍݍǽ D}ﶻN6{)^]'$.6`zGS " "f|y4goΙF֡ X]?;_.B.\,SSQQQd"4` @TTTT/· .۫< wa`ҜЁe{/sVa9ˤ!ekR^'X4zvW.\4 g;l )ͩ^&u;w*=g*#wm{TTTT/NhLg3!ݕ>1l}JsBXU(6߂!O76`x[\wT\D[Lt׎3R`dTTn^b‚gQ5c3kM(\efg|eQm m?Jgk_9F[Ö]o44Wo-ojoi=\NIS3y qVpՊ7^<`:L5e1M ^_'^%Nދ0R7%V%m<Յ/xr/d/?mlG$Nc8Ru9d|v%sx}ƶ44\Xj?{ ooP+De&;J*RH T. WF!tdY٦R{~kkJu 4Z֘11.|Z~N.VMۚ@ h̀B#TGۏ#w_ch^Oi蘘Ʀ򙙙q U?iᗚxII܊h,9pU ]Δ{[R7Ÿo@{s (E3GGmv;'''GFF`rMUd\q%6?/0MPy_Δ{zSSrڟyji\.GPZ> ٴvFaʿEf[杛x)9q811iG? EeH"׷ū^s EuWq= $אZZ0! -ēZe!kRՄ6f+--'-`>0:Ȧ[qz`lrSj6b`uwwSR"J%),LE?L>M{g|qa˝ַEi_WV>5pLL <}Iga֋eUjP+LES[I[td_RoPf^V*YsTT E܂,TFDZxu1͝TTTTg2o^'x1pf~CҜ%AWX+v́sTTTTaCZ_IWT+tz콇g)ͩ]ߏ}%uw/(9K"B:_ RwJs***GsÈ{e44 \QSQQQmQF}V419z dvN_@K_4_柊jDi^4z4_/QSQQHQ(ͩ^jМwGt2wy_}V囷ȤL*d@ƂZHITGN؂Id=b)vk(v&3%y\J{ ?򳰢L}H^yRkBs{ rlWFstVRW*`j2o l=|-[FЋl951Y+j9տC{^eľe0ƧR 5ԖraR\gh"Y9ޕVlh:Aة;- al'ufj\Fo4p\ZkhuC kFfJ}Q0yox:3J븊4ԖJ/@ߨThPqK [Tυ z(24iX m6u5\O _g'-uNsq)3ek|œ ŤSQ 'Xe+J^êcWI&}3E2 'AZv'H4%YjMO#OZmƩ80Q肴}#QK\J rR  13|—>\H'-00Ԛz=4? _+h^4P2,l z^Odh\~߂rBtK<ֹQu=5r9q@4 X9tJs***9FN#SSQQQӼҜ*`EiNEEE/:(ͩSEo?F *YzZ'}cbC~ɳ.4Ǖ+ׯ_w:KE Dq *Pt/gߖza"B~ɳ.4x(X "_TT_f귽걹a"B~ɳ.47o/ "_TTOmKգs Dqghx&7 "sJE"4AWȠ dIij'6͇ɍVN󹹹 u.yzZQ37L\rNŒ7ObN}2.!5i\FT,8(I.5Y/+88)Lr4: d7G4KؚㅚgH&wT 9 /߅AoG ӟl:}xoY|(͗bi."ϊ@A$bI 4Yk+~h|lc9v^qcٜ?is>y)%C%G({رI-n$1?TT ޛO-"_?2aNJA><<\>ʥeF>[6J᧠Mmb]'l†X "4o_a v&YY/ͫanLDsNA s5a"ҦL-.9,ͫWJ%sJE0jm C,o蠹I?yϣ^Ww ih^Z ͧ6 "sJE4mU[7!H2y> 0u8yh^d|ޢ/^E DWA}lXģf0iLCP3l04ovbW\v(X +BE߲zkcg7!HC8y>?4*XW!-Z<5G/A/_ד?nA,K?^m,X "_e WJ8; {͇[xj ]A4z ?ZK}y2G:=G SSQQQNy{>ٗewv24o[c絔TTTT}^ɗ˰ | 4o[b>4DiNEEE:ў完Lrrrug[4_#;tJs***U'G: D섾mah'@o]YvRSQQQ0ͻ܉j4oNiNEEEB,Y2=əK؞$ '-#O )ͩW'/yM4p6<.4q44 T ?aXgڽ} 97r@4 X|9;݆B3@4 X j+ A}aO^Js***3^{e45 {##_:.=z6<8ҙKC?9S:u:G|w|x8wݰ#ÿ|*d@0dr9~zN6TxUwo}U"BGh>ޔ.;#KCaϠ p д"NƎA}cX> .-v-t[g-]3]SmͣǃmՎ {[Y_kI/r^;qu5/KKCKc%K6ǒձ׿k-Xzf;,O&:;&wbwijGVWSpsHshӱxnniFV(|qaW3W46:BF9 j5EAf~´F}[;-ӝ=6zNw{p";`0 ŀF@:N/LZh MAv vxzC wfNIy*$)#()5{~w2vk[.wY续bt UѴpW34d;6`.^d74v+nr^ a܋kCCfa "͒ђ^vAlxbfN'^$l [QD.>e#t a۹@X6ߓ*_1"gx?`0}m9:yAU͖͔i^qBN] ck\ݰPQP^PVPZPT_[]`_4 IDATys39SiYRGSI  ѶG7>~eEԧ/߿}+*&j]w-?v?''fᢇK]X.(gi^ꎌϸ @wzG܆-tǽخɶ$[tb#z[ăֈfx5fk4 \5 9ig)`H V5}OgML"FR38a{0}3c] 2IP>jK}`yNIŦ::4`S3LB<ʍhW>s=3;h{n,Z{dfҜE^.Cs СzUE{dXq`Zq͋ Y]HsA*}R;AHT: ,k$)kF O!3)@j4ϛʁ}xi48Jt&#ٞCbg W9^N`IQx j l lx71&4aSY!)4AA0㩦giCσ WP7/o`y)}ڨ,9͹9t!qg`3[zeB/W]O\lt◨i# B/#~*$Л|+ozڵ6:OM%Yǖ%(să<\7)#8=B_xAu_{ }===)KDWֱ,S3=6ձdD|!9P:}#*RTUe3~7Kտ qdB}ݽ3ޙcGDhVTXgPITggw7.9:wN1&BS <].pVrjaѷ=Cכ,iY.KArs~>5Zg{!bLajq l_`=g탋gg{k;eA?ۋFT\{APpm;L8$9_<`;!ձ(5`q.jq/e挫xh LPPJ#Z""A1qjEJ5]9Ayvvvr8裆C 8l8pȰa~Þ}{ |@ޞ _؅|~n]vݱmo=흓~u={z;v>}= F>p0C( }ؒ{@оIx`23b4 >gj s~s;v}W];`py( 2I9ssAma;; -Dxox0c/{Z .]_!;μ yf hd<پtmww_s:6_s에_ABaR W׋w da2[xQDzjVVAy~~5Վ(IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/figures/clone.png0000644000000000000000000011065114023111777020246 0ustar00rootrootPNG  IHDRx˕bKGDC pHYs+ IDATx^wE[s9sݻ;{ff3Ń@'a/ha^Re{muwuwuuUWM7y  U]-$@WHSEdf$%%%00p֤Donƿ _oESQ4,'7 A89E:ddIx}^2^Xi.gϞ?8***33h4_||ߟ?ÓNqJuR]RnõOZusZ嵦^*ZfLҊ$O?Kٹy+Լ2|[|u+ȕ鋯> 䋯>r?{ JMM%''X稔ȉ3*ӄa*5 *4N&-EHdB"yReWٔlʊ2YgJbbbqnHD3(˴BŪ2OY8 J LT%D|#*r& 'r ٠,|xF*]JP9lTJX2UX(c,1c>@6J%INfJ "A DPP@h,*8?8D DDNu'::y4d l?|7|tJr4hpF& I1[ K m:t\uu#@]ȄH$vE%vG%uG'zbRzbA4g|ZoBz_bFR`jPZpZhFX %4"G-b*[Z]̄^V)*E,SRdouPUVNfv\Wݨ1m$m„2͠RM %Sʲ)uŔbJZ3%5D*2*y$y$y$y$y2Y2N2vJ bSP1L |Qx>И38('̍:y"~<~,h/Љ>=V1` TG~T><̉V0*cCGB[o?F9Av(GH4ȎvPPd;0e8vh! C|X lm%BaksDw"C=dg4.1KTT|3MMKOO@3 F 9c9E\D^D>b eC"Q (D&*R AJfKQ3V\ WHX`s[5$\qCDaTaLa\a|QBQrQJQ .֊V=PT,Ra2 cgAiC!v*+!n|v}֒PXJWݻu]Q"RSFrrR5Sƫjd #gDfT([Fyr߷Z)kQ5Q\rB,R%4ű(Tx7k_&NSK}B5H6R ۛ!#8R@gS(E8&INHNHCŧ MM!JNJ`JJL` szBcB;UAQAam'ZB[@BE d?qѣ"`ZRA8c´Dd;( GoJE091I,R0, SNfewlrwLrw,N^{B !=D\!7R@٠ԜX fe gFrFFW>sszbDJrQ^VB3+UB#UO^M+z&/ 4XˏXUr~J^*S2*bG#Ӱ̍ύtFeGdGgGdGN7[w![]QyV7W.O`QUB*W3[^3W^5[Y;[Iu$_n'Z@5.J1T8U򪛧Ւ% J98*Zw*i2E/ Hi@%"Q8H삐Å<~1Ese䍥rQQP ({5411D0ǥǦ"RVQ=N ahsrèbbCC.E]E[a˺7>?!c 1s0)s09k(%{(%gD0((%g(UP Q*[B&t$sRrh$SwN2=w C?D1e 2jY삡PNPNPnшh$x$d*4Y&Vb,*iA<%sx>ʊnTN_)T* n/V̖S* a[=`O 2'3g22PK+O{Lzbz*p&=p:=p2=ph,=p$-p(-pؗ8^_̽g+ \z r]`{*Ļ&]5.4-65A.OB}b} Q+hu@¢H$ӲTϫU jDXuW#.kE BV"H%ApVk`>rb_lÂSb"׸QE' }񄾈IYlEU0??,&ЏN J)YɠLPoDAC6zJCM65iPCpl`9hPge ]9q^(s(1h-a<\èb$f^pq$T|S'D=q~"8V"Ӹ \EZ"+Ttjm:mJ _soIGeJ\Ia*3Hb^&#UBel(sńbR9YV5e̔C~aqKf59" bI 9)JJAj J,Ku|VA/B–^bU_ Ar?C }4*tt?)Ӟw'CM#? x_޳^{{C\8ພ:luqxB_K91oճ6U(UkoEjR}űXi\i\Vն:QlԽJe|18614f hudk1s9'ŪR\`GRdSi(- ɪH T1KKSY I[TyTEteLeLU\M\m<пiOeK/*VTj_G*J;G?fBY$l )ux~@W`6hj9vѷ;8v񷺎{|oޚ n"X^=yqԛo{͞co:{m;P g"c.M}s.ߜ |O:j,vU#5(Z%UXP6"kմj |ɲJa % [d$UMJT.Ujnimko]hh]i結E+2,pEgUY%"j&;+v ܈&Vx-:'[%鍇^o>zᷧoO=}G&"i #{@cGvF"uxwǡv|kM_k8Z1 dl]E7 ߜ |ӯOL;bXZOj Z-Bɜw6tOGTmҽ[\IP%#DkA}z%u)VDZGݺ. oo͓-׺mVmΦ.+-ه7D&hoV+ZyBX5r&&(NY.z@h(KTWIj2>`J>ȝN @"+p3m%E*&-ԡT.q,cELȨQUl)(,e>’ jcv=:݇ۈ#9IԀii 45Sq{6v[L5, R@j^´x:U j4ڏm=ַշ5#X;;G|OBu! ^ /G=&H6?L|z{%Kp]K٣E51Go?v[c/O/*[vڴcǭ:Ȓ?. #?y [[j[y㷖>GQ/eˆ5l]/|6\z߯=۷gh4o$}(f,Ja\%}fEV@} w?غwUTL+2,vQu*׺=BRvaG<78,%7@n#zS(pG6rĿb$EV Y%jlӽ-v/g[ߪn:ݟ2dj \;mAIOw撲#(M&[I:V{? it ާ{a&>TU7ǽ2KoUa,&dr44c tuhNWHJhNǿ v"1cl7=_4]]?M&֚ƙFq`keu}cžXkЎlHUqHf).G`Z{:)8"|tb9:3EVV Lp]_(Z,j8g9LYC7lvm P76meo~#~`:#7o=rC#74>G~ZOm~ZOKM7ޜ7g=xsL|.g՗Ozq?_B7gC.鏾>|~)>E9esake6no>`j~dkO*U'*H*n_: EV^ G("n䭁~zvakXoYz=}3kF{kJٺZCzjؤSgN[YA?+{CmakGޒu; ''ŇoDˆWt~pܳ9Q"U<jдz؍8^V1n)wcD.aTm %x156[MTQ\OizOӽS?7A+&,<⃠ |0eWQUa&[%KwVݯ(lm? uɘgU=,RU ˄7`GG}?[m3uz2`*N*'פZu]J'ԝ:OGՒJ~ $+t8{A_g}J)_+w],~\PVxEt [sݒ햂Gn)z?lm\ -Du7OFS~Dc7=vSc75>vS7U?zSʶTf㶟,<硟gm!R|6Ec딿Dʺ_]([[gu; zuN_RpA-!"ksևn{nUjU$@~Zd_^@bNVZ\s_MıeN.-}"y vFnǶE-ekEV,L~$+=\5B}vfo鑰lҽ}Vh?b[i>{* {ktE[֐^1iC^gO)d_FUyY- ֧t@[AiZT n׶ # gM;H^Q"JA }8!9ƞ Cw ±}I-'WLQKXŌ?Dڤ{Y.#`­#ckL*'^ct_+\,eO6>~oǓEHI>Cw5M'BCOHZQ;QQCՎ~:b3L6 ~uOSVfO/qxH>yFY@ЂR]?BjQa"^_ؒcK-EOm1>?-5Ooi͖liyfs3[:LttD0O)bڟͿ\ʧ6۞l~jEOm6جrs!FZ43.S|ro./lؗ'?laLp)VS`.֞(@! XI:;@j0ꑘ:arۋ? Ǐ0wu`90_4ufd U"B^OJ Ɋ$<⶘ @W]][{ʣ=k+OUb׾]Od)[pMPDwCaU7]g_e9[uOZKBCzz޼Q,8ӗ!١dtc{O %3KzBd H@8N9%WwkV!urvDJpoJNԪ`O.xՂG< Ɩ V``Uܽ~M朄{u{ IDAT~3Lۈ6\˸0t}`OK,_l# /6 uĔpH pDmIm4M%f"?7n%~G|TGa(d٫ѩd y'=T+iOV =[3^e[{V8`bT`+uM3uMdOfJ3p̹̭XuciyK/uZ˷I*LxtW7C<Jr5ykp3](儭VV|[լVށel/SK̑v[^{M;|gݝ _QzgǿEt0q1mzg3_;k˟DzU.zs?w{L6PR?]>|cȿ\>|˧^z/ggun9[ ># JdkOce>*uDRVo"|b%GgkHUWKɎs][y*z8e}ߊOx}^"Њo:o03Û.Dn m:g.eIffKN'ѝ e/~#ohLlEtHl]e!=O,$, dY@ <ܟ]*h^FmZ&K J${ӭF<Ibd_qi-akmzoӽiP[6TReQ%]G?vP?fpIa ۄ =ҽh[y@XYc!O!{B=GTʫ ~p٪lU~ڎW&c@uLU?#]SIֆiCUb@<[҉?zp1d^-jƇ?]nhcو[Pκ(aāE~Uj~y Xqh{PT([v:rf3ֆ:9Fb l'іb|eJ^|ce+X+ּh+6h=@{uyhBr9lk'j޽^k{延^~/=Zv=ْ|OZ@lgNHl~lv.orݵ$WU{cU .V!~{n%YVYzpTDsQ]@%:,t8]%y)Bpdغ-LlsP+0j}?\FYo4+A yy3fuS&@P*v.ϲ [IO+:[K7Z*|\NV'{gVoYIqNCXR0* a;a;[qY($ϝ[ifk4ާp @,BF}BYb@n3R }’IuQ Jt;^K~PGum:\h Axd.}ȊJW:ѕcʖÀ~ʒ]tFcRV!.}6)l4Ak*)FLK:[XkO[nVkj&nGxZ=>YDJ;Z:ox\S,|CF|=ؾd0ydlMgVYOD`kW2ΝyꦿkO*岽σ*-ֽiΖ;8,g>xg, Glg{u}5{-KMy;n;`q=ʷZ;xnϦ[ډ`T[jfi#u=^ƶ.oΒ=@3 TJ[I$QP[G_ǽ+\u3pƒAr# K]_)O) V2*6:< _7roPX鵗>Vс؋*>" ~-Oߠ^a.T|NEx]DU=E.NhS^9nbT 8nphyf$Y-|@"/"`OtY@ 㬼;tOf+>pV=lrG߭aF_u{u[KmWG|؜ Mc #vƎXʇ-##C<&ˉW^$ 7{UOW7iH{ ԑ M_۫1%ϻԱ\æ}~-};􃾑ch*c,,>gUɽ%3yuֺkajjGҽU;[[+V(u}[?SI:#돿]s՚O^n/z0/ubQ=h@r^%ǡډKT:c{Ypne3[ *((gw&f5g׼?Ӈ/Uurp@x ߧ["`em:;XSvXOެ3 a\]HN>l.vV[S!x]$\.0qSx WS6~Y p8|5Z@oᏯOТ?Ҳ$>zB{Yw )]K*2wDh/TQGZk1 !Q=GvL)yX&*F1i\x.+j">]6Zj%]5 4z %U#񮏫 Ю" tv  i-tہ䮼"HA/nh脘C!;Eߋp,{=(}TVHzLe&w1(==ӽa1M΍pԊ{-.k帵Bz˫k_w-HY$p`k&+ 4UVC,7>E7|>^z埻O>.%-3-j@U|ofE!XC>~%`+rOu۲=x7FŔ1Z-eLli3`يi)[ڸ5}ܒ 6:]VW`l˧uVu ׶vu߬k|CQ9<ԥ[-C҈h>dEaUKEVR*^* (.=kqʾb Hͫ7WgW ^JM~cP|p%}s}|Mq 0^*UYn_gɔtpz)FF-~`0&~d0\&he 9Cpzo!;zENyakr_d?9;wuOO4 U,ѱJ^`yN)IJSJ::iё>#OgVz?FB'*7u(CvR%4zK<e_ ?W6y h4,2wIcpȷxI٘`*q#,@^ /*׮s,8xӞ;?C5ЅY_u~VkNXJ:&Rgj՝D pa_{炙l7JNJȀV\5ld@ac(idhK*pFrߒ:}OĪ np Xj_s#`5ɆjVU؃LԣTweT|F V4E9'E fddKc(Cp2V˨d8xP_؟k-we:3PF./{:(ǞJnOjKef,HcOqiLԬ)e[ fB9וPs ݹLN}^}Qo/OR9*n-7Etdxe-,>fc),Xd9Vˆl3 pڙJZ[uM_}nd,Vۤ* W}q(,ZSl,N+fКȰjSE¼2BhmgK,gH六^JiF̂DD85flxb>06FTJ+M@tđRi](%fH~E [d*-a~B|w'Y^dfPU.7*f(Qhن,,fhi9i98mIfobFObZWbZgBjg\=.#.#(& %Z#A-fP$Y[A,GSF1a$omp\84G|ZgbFWR&UOrfO ))7% ,Jƭ8,xṃiጼ \a!ApaI*`<2-NX@D&,* Sp4no{-8QT6I{!cvU5A&bm:zc:XyI<  Wq.T귒$u̍>ը+#Pt++exB2' ?<`c)U_]ҍ̩EҨKVqv,RDЋ$K(EmTi2M!װNGfıVL0 lbr sɈ9d+iL|wP8+Cj͈\LY)'(GRJl6KRHbpbPb`b@|j_\3'ƙM;#DxPGx\Gx,SXl{XLQ+(4%4%DP0(j"TTk0]E4M ƀ@*wD&:"p+DN,XaA\OMHOLOH;1SP9o`S|Z!K%̵՛Hf'$X:4 IdPv?NEJ,!#$5Eԁ 3k"JѪ\  2,2t!: ^/nI㕍ɢWwzW:B#Y33ѹ]qFB2)!Khd^GL@dO"+)Nk’A&7cps˄IPd$_gsbO&-?06DڲE>SJ YӨ(()„s&e0%fF3"3N*id}lo@ ŦJIBJĦ)J싈w {bCc:A!ю` ЎFvpN6TX+Q *2kc!lB:eѐf`2aH N|t$H`Ll6&%fފӀs '8#rE2AZH` uǃ`cިD\Fbd@ Yd"LEM]tBH:6Ι@K'f$ w*z<[ J*0;[ס*jνU"``(^?k6g,2 O2EMQN]8=AT?^ DA);:9kĥI%bL U8Re@_2Ap^k)ը,XrX`TT,ZP4:y4⪤a#% oAQ2P~`3(kDtw9@CTBڏZ2h huDQl>xIԧQG>⏓}!C9kЯ >><}!O 'yN5xx P)@!$a=Fs%Fծ0sP[A?~$Cv?OHY E m;q,xD#0 7x#'Ǥ Ʀ%d 'f@k tu%2i@b" LjB=V 6ǻ覰%2ђTw`7W%aDוx4` .Izī;[%s[_>h%z|IАFNHK958zj,1 HX==8rP pЩQTj#lppKBI)!vzAc5Y7E=9P6wu,@-J37mMDσ1gijihlU]ÝFN )z]l5,3W֤;ծfZ뜛[/upݣkxukG; ;L34l=Z;8~.ըU34gl5zgQcfiF hrc+&V4L3 zzZB*if1VJV4Lc&l%تfiQT)^5jf}[j(>تfimM: IDAT0xaifc+z[4jfh3t\*꺺5JcfiNJ(ؚu`p>`ҤIBP5x;bp-pE.Va讞zGhfnUctb^=v,,,lqqu^$^V2􏚭04'˗.]:C1".UVqޗ_Ucfij h՟u^$N' elU34S5/l/ wNKZ[5تf^;[U7چ:l%]c|.:/O -49[-+eX6n]PTC1F=ufW!m7Wn*.mt6(~' w%*g#nJ❭,KBϑcن:qfL'.T<֍Uf@Q7nׇU(_VĤ\S)({׮]w\]*bpEW2nO@?^K]uq2yQʫ`q.ksՎ-wW)Q-;[WUWe+&~KyIc*vl9lϣoAϓU,Q^M(#[r,a$Y.eKL!iBZ8(oᣬ5\Lq*  K}<_[NAq\EZqEv|;bݏoU]Ǩ||*g.O{en_U7^ uE\IUC#F˅-hm&&&\*i;aNREy/wmh,eWlqNV)6DI!1tb:Bb `DNsuqWE)o1BA^.l ++SJœc(h5T'M<]JVUvy\bU͟Q?aH.+o2;MOg£9+*OMVV{]<{b'U{)ȓ(*?&ld~m" 8Ұ]҇B ߝ3'S\9+Bpl=W(يTIbgY2gY^z2+j<\!^zgKUG(VbT~>jRܗLx_m^ȾQ%z4mؼuYXeqqtqkb1Ebѽp-ɄD[{n ۑ]ܳ6S4*G^UWz 51^ŷ?:3<3s0/l=|-Yݳ1% hl=zb΢E}h7kΑ+woܐۼy_zG [ǭ3uK}\dتGSm}oԮJ&ߧyasz|5Ӿp63{5":ye1fJRSqQ;fd[5̋yuzzzuubp-pE:yv6[B$ckW菖ڼij^8vXHHy`kl 3/NNDXٺrrf&MTS/yX l5~~fiF h9uvb,JVDUDяoL34ۨ![MTY*,E[5L3|4ʹJ0TdEę1ifrDR JlEuHU34l&H3_.,)4RMتfiQV[m2ZJ@%g\[5L3|1ɚ9j%cmdU34Gl+g/uu`p>`ҤIBP5x;_?k+t Z[瑪us<[˧STglվyL3Oףǎ-..~C1>:snRܥ[+͢~l]iُ׼ղ|ҥ?k+}sS$t崥rˊiԙ i¼1z337}cptB(gUeD[5L3w/6ƅA2V#[jlL3͔杭|ml6.P:SNdM􍭲pi7sU:L0[؟ W!m7Wn*.m:<^;e+Q9qU:l=fy/w_%Hw1lCl;?ݴXCT f\F*Wa)ƭ+lڨyd:pTqV1U"wm\ūh1Fy [/]j~H#v_"K2sP1uRs[/$9;qRG*W_개JK|-R^򉭯ͭV;d^/D8l]Uv_-Vl_/%9zayE/CV!a<\ +˯s= Q̄rI-weĕ#[r+M(GHPqQɤnnzZ8(oᣬ5\z8U%d*sۯwP\#mQ䀇V\_{X[UW1*?ʙr}W/Wf|l]Q6W$h_ra Fpۄl dJZmg[AK [PUg[02Vљ U%.̽VpWS\ ("mx%H]Qe+_AeIV!R]tW•uZv<ˍ@sVnұ~>/~*o,^-2ÓtUU [/^`~GHz^|Bbtl3( I % hl0T]nh[n8W0W8l%I Ib;brJk+ s!(L6tw*[WٝqUUI7F#i ~P4= ><T9y|߰uEg"%mPg&P*K_ [/\0lo^oy&ڲs1.~=仓bd9xV+gpEu\rsr ε׃6V0@\)!/p/p*uIF)Iy}%U:\vb*!;)b.5&xEɤv; RpU;px-PTq[OQIyz8s_2M~ 귑{!FYa/f=;`==ǭ 09FѶ8 $my-lG wqϖ?6yJ Q+HօPB=hol֫V<3*9ɟya6h1ꞍY/gpEbcU M T?zj'u\]L{V熬tJK=zqֹNų|bsB9iƙj{vU2> [ϝ;㫙m;yi֥߫]TݫzP"Jcfin^o^]]\ \._\^yRȾ Z0e6fy;2;;{bp-pE|wڳ rlеѹNta֕3K4iҤ* ꎿ?xyoP * hrqwwwW[ve҅'[5L36jϖOr~Ƴչ !ZU34Z~2pW]ΞifrAA"Vz@+ݠ [5L3|1֡STç?3ϾؿU34GZluӠkUif5@*hs_}6|4?ֿU347Zaԙ_} 99H40|r[}{s:E]޽3Vייq"[GOQ:ٚV;fffGR{;;CZ~~Pu 4qf N :I}{ K n[OMudl?=:ŤUb[il hySM|@3.0_^61z-Lcf/̜9?E`8HcLc鈴Z̀g&@<[:3A4BMR[UEusd}_vN}Gilz3S秩.l>;9:_TwPبki]rFdgoopt`un~~qqpxcQ#rS| !좓_2:ss3?9ʦ^;?cq'vw5^ ze+م s2Ξ;7={u Yɟ^z6֒ɩ@lu#ml2s[$!kE xss˧N:+ؘkܛߚjjݔ=t=;Ի?9wG/gX[ilL <[/͟; [u//lj&ET?nmekeMTp,yŝ>uO&yb+Ve {0כ-/\:tqAԗ"[['O&NoV`ڪU2"N3 b``'Q#jJz^x{ aPe+FmS-∲3A,{[ilތ};@lU~;p։2"˸qlQ3olpQZoGOt3{__*[ZZ^%VqR[bKqxPN=9W,|vΎ"4^o>7Y=g+WturboT32rt]K2p+Oߩ9JȌ}ewӾ4^ zrdoXrXrXJXWE.bCz;}doyTytۑSr5olE*{jf[il h9pҙ19MZ5;{#[5̋ilz3eIgHW`؞P ֨%]z-Lcfi#"^%._\"` EuilX65mށƥ x صdتٷ7mkd|YוQ xza1 ` تfi ǦQlE303 DRV4L3_ hهlI*cpqif>u;y8Fī a㝋[5L3|1֡hql ` sتfi-{׺[['(XCG5jfh]Cl]bw,ilL34DxUX(5~Dcfitu% FPdl`5o̟8;asM/VTMmݲĉ m'ȲCI/rl'e'Eۈ%K D  0N Љ*m3}Mt{ S-j^OO_3A<`zn_[}ߙ upKź, ` z^5rI vx+@uןzn]Xb=Jܺ8Xn}#pϾq!ƭݰw*qa&ʪ2[J][t*ܩEkxT0>{WݭT-DG˓"]yBo_[ER hTs 8ēz-Dj9Uڑ`[7NpeV!#pk+7߼ykvn~`0 `wSthɳ,iUD- lU-Ǚ[^UX5,T[&~:q}zi5/--dIn7.EBYFn'fB74J,2s,=ڃ."/mjµάiVHbw5e6JKb5HzvQH' __;.p3+ Õ֗^=795scyԵגݚA7Qk|j% pVzT)Rq;"(4|pL##5>`Fl(ʌVR$|L-ϸGk[S6j3ѡun;iIvB3{&u^3{^?ƅN'hNζW>D<>n-JoK}f,YVdJ!} Szck#*[[jk[˓"]yBo_[FU?KcKx-:r&Hn r/M 5T5Isbmr]t6&djЫtz9pk5*ܚve7o/ :Z2:Z|TY9JhtV[٦)T5IsbpgN+í^筃u5M$=c?>=ʹ痖FnUVLl*toTu# }]5+5z6Z$Qjl%O+)A,5)WW3Em֫[+k?o}sS37fnݞ'J][[{11yb]~tܚWvW8G r y:`%P3U|#7%eSBzhD\g푼e409W*:P}i^ijzϦ̥JLm֫[[[+[[_;{Vr;w wYDs=:w](%Yn|bg>r> twqݢ%Ъ';,җ9*Z;h`rbGF"}]+gӶt6mjL޶ e2W%J%1ٹ95=KMKp#?:] g>rOX[gzᰍOMWܕV>t h%.2Knu"Φ\[ۖ[%u?,.^b%1バ|>V6PH6 K^.}0%3cDMs#ssG?&@אT̪*˷VꀶV/,D*c1b߫ }cIDw̅7)~^IEPu#>t5SRnlq>wXxF>#c[T$|0qX< ^n%Ask!Z $ui#([>Z'mz%SW8|r20[zl>^[֕qֶ[06­ eq>umY[ VWfXŭdJk0un[ŭ|rkźGrd9slEL]u^mSבLźGAuP[Եs%[n}#pϾq!ƭ {[hTR@6JIEWx[6kĭ\p=×'E:5953}օ޾x0(o -Ə}?|7 rxiph' =[U׮Lޘ~ٹA[h )*)ĖCF^uV2uͮV[&~:q}zi5/--d)ܪ,d[H*VR^}s^L^ D$aZ5DP J*Z>I<m@sRc+WEq 1|?Xzn=!zmҫ&fnܺ=;Ocbӭ3._}ZUs3Ly =U5jώ覞s;+ڦxy8]^M0bL}z6um[M[_;{Vr;w wY9Y[uW$56];cCQb+L=" !gہ2:tWٱѳ*Tdm\zBuz2 ܜseBZ|$O \Et ptWRx(8*D=g@PΘuk-scn5nxĐB[݂"d ݡnU2)q QqWV pGVUErvޖspuwS0"Z0X-sZjԕpoyyۭ꽧X~+Z%'}uhD&4(uSW@jE skLX0f\ΪTuN讻 ˳i+p6״ Ե1.ZzݚL%]gƖj-]gPp64Rf,Vʦlž-ue BojWdnlMO{m:r&t뾦j>u[X[z+kn" ݺ^k p+wkŽ$k> q>Ew++ Ţnb ݺJVrp+Lnۘ+W6qgճopJyҢ| |~~='n=/Oz߾w".k{ VP>ANF+(%w]o6vYkn|Jn\miip+[u['&wconCn{3{^?ƅu:#|/LRQ`ԨX^x7I8^ n>5{gV|*0>2gtDucW&fo޺۷Z/K7a̒NbMElˤG۫ҕn9 s!X>,z`![`uk;j5;~䍩7oޚ_\w)"sk)K[uS4^ܭKܭ,[&~:q}zi5/--dUV(Vj]bBʣIANSe$Kg{~C".OEZMdl@"s6VfGGfpS[Ujtڏ/KPB*f vUCgEbOZ6­ pɩ3nŘrLJAu4 Em؋hSqim=O["u 3 JY)un| u+u 7*pyP v *͞b[2s19n$jc= Ξ'Յ\neeΝ;Bfn.K)MXY"39]7n;6ѭSc*Wn}V.¬j!nnԹ2ܺnxĐBz ܺ#".^۸U/ȭPnG W3lcQ1yFZdARjC3hEͧ*H;$?cթ,JZ;H|5^ܺ 7UKtߢRn>EF6ZCj'5"ID 5pSbjL"ܚ)n5І[7wǮd[=ͧtn<}݂VWlWo&+ -/`݁M'i݁߿Ozi ]w^Э^VmzY~kd#:T%oAܭyխ5p+VV(ܭ-up+ ֖>u[hS: :Xnb!n2@P.2z[X[2^V([(nP­d+@>tn`o}޽ﯳVJփpk,QobqkXm{&?IrLw HMGUL]VÛX1n JX]Y!n5Qy!_n-ډ33IP. t ío͈Z_C|Jg%CL<@P#'OvQx!: +4Li'k[IWՄxS}@*N3.?؛0%G6TۢÔyd_$N),2DukjxPロVi6k:u ŻMe6UE5q`zJAOD@9zhunA>xGV]ܪMzGX~<$dzǤuktݭ4&ěQV喙o*Bʈkͬ>n:K%rNQ!F2YkgC]Q: bˑC# $v73nUユ]ɓ&Y *7z)q7,<}m4(-'ܭ[7VdƸH5˜P~nnlʀZAWQ[#"3`@ݺl5@Qpm:2JznQfp+ sk{2@hneOV(֣^[D[f56P,ԭ+ܭp+խ| @pk96nbQ @(nnzIK+@9 FzXInnkYzDi5ƭJ&AL ^9y-*+o.A%|6{2@nI,P[RRí6 ob}qkgR Wſſ$]&RfOj1>(VpYP[W[i[-޼P}F[3{p-I%.́n ȭpnB6#j u֕)ו,rŢ"C8ȝIF[aK~0#-2%ɜbgįJ+Q+Kou 5-duHun5!T ܚA7qʂ,*D`$`YHnو>\MԲ`RlamZM6WnXímp+!VuQBƨPd~4)zZg&wG1EU_r)E7: qTɚլ%4Ͳ 7BV!૗[u +GN6 2LnMD5tHk>*U*984[B.n]bnzdF걆n`E3GF 3Uɓbl[Tᑉ8b;gnrobMmiu-i]n=eŭyZ+V5[TNS؂Q,VՅyəpdM$ҕLܪtgbTmuⶺE$4-zpMwFk+WnMk[p+D[qV[}pe n=z9kb#Mƚ~K[Z2ٓ%HtAW2u=84r v]ԭ#W 6մ 'p+( r-Ͽ@Y@.frIz[Y46Uk@]kfb? \t`{@.f_. ?mҾPC}p+(n%ꟶnmTWCW[; l*ih1d@sku>dݺnMn儿[/6'K[©k&Wn}#pϾq֮;GU]w0mbDAW͟V`QVPNGş,"TJ:Tn<)թɩ雷.筺Lj5\6^%?9HW ^CqXAڀ[A9ʭX'ҭ {z­ܪkW&oLMyBݭڤC[GIozi9#+Pp+('Rup?d`it^:{[{&~:q}zi5/--d1[{pNCQ;ۅRMjNf.ۃ[˳]QYUs(@J3*f6'p+('JIuikͭԭJvK1sOV>Tg+W i4]WUUte켵}TgmN,[A9ޭ­&ܭC#3gg+kk啤[jv?ԮE 99>˲(iUyVEfHֆ^p6=LVPNt^ܪ\l.G HWKN @Q"q++Эyn%;u[S׽[VP4X/ eBWӭ p+D2P$ $n4"?ݟWzi+ ngSWEsEJV cT[oݞ;Ů@l@]/*b[y6whn]vD ݺnRTҸ.jqkcJ]nƭBnUWPᫀ`b%=ܒ(֭ݻEwĉ3I5EO֖6W;" ;,]Aٍѳ{7̔f0u0u\β.m ) An1}bqEWev'N(YG.5Z g ˘ĶSªK쉰tw?QS#BUTy)a+b)`wF^[^ pkFGzmܪ`^] 4]"*ťTD)a mwQf+8=q%Vf.izIuCrX^T}nsZ@!miDI⩅csgh'2څa Kv6^rەS(iTŪ$T&EцwG`B{ԓ fFKWZ?1ӧih*Dy1[^VP[gԙ _2 ?IԧijZ\ N7@di|D8'EIDATTzgz@I3*̚k~_dfΞH2ub4ImG).Oi}*+#lQrW=醤:p_֬(K8/FݤehcJV;:­!ΝړZ|m<( n\Ի8q?8s^[LJ^Q>\T_9r!. jhɴڠ40ra0$-k=RlxպDf\MƉYFMUM`?}şE ƴnSג582 q)"HY7٭z{SpiNLDp/(zѲTuX䪹QgLŔ[CI^'&+wS XukyØL$h0wkw+ݐĖ|`7k[7#lu[~ޭ]= fZ~{Э.FK kǙmҚ)0 mk2醘gj^zZ+5]LhɬIܶL(jS kg=~:[AKGN{gy=ɣƭŗPUU;JgqnwYbdqOOGH bQUSRQ7p5kEXPݎS_wYr՟6 5UDFmsgd<\mEٲU,(7Z)JSsLT6ػS֦@Żu+a,%GR EƖX*m+/]g4GJJDܺ9mny8R%ɤx5wku#n3[. @jwi)I&nO"n }ZbV[k_nźnXl~ .mnIReBݚ @p Ե 0F n%F[(V(=[iuk pֵ­P*-[SĉJ@BZj4IzN^)@BZJu"s`X@w@5 )3,--[@BZDj:v^|嵟}Z6v5=u?2_ϩn){YYYyw -E]`ݻﮗ -E]qMp0ezݿX[8Umii!7rjAZD @DܰQέgig2ZPznuf)Q*֭q{)nms|:QaxY;۲wJ̝Pxٶі)Qݚ=U3˷g{:Oe-[c: <}X)QҺNYUR֘! 2c` {}Pz?0Cn]Юy%<}"Aܕ bvЮ L,5we$VC]~R| )} @tn1=' a̔v]gO'%i,>n]-eV$jnVf$xkdHSqkgOVxSL=ՆΔy#)o:]t C2l7$)"z pk8u=U_wizUq]gx\*3IxR9z > J:jNczF೶gnQgYϘQư 1bŭ^_hC}ށpeH!eollL ][÷zj?#÷w6ر"ܤd{׮]HQ[x$+)ŦV"> Jj7ĭ\NujjgJV C۰ ^}^"ܭFCn`_a_뛻?Wާ$~Bܘ0#5]3_HNjeW4c0(:HJ}'>5QߧD)Do>շ-)X9 QJ,PG2ZZ^_8@ޞ9t͙T̹_ʐgϞi i{Rodnm$Awڭ~O>?|w2ttt?~|aa~@BZq\< mt5=@ݺl5O۫>?ܳz[oQX]\ m!-r5$~kd#:T%8~AN%{s+2 JI~U@%u5pWE P+=+C­M$hn/oo??;N~ɞ2ukwwf~KO_/>յO+CܭVd pޞ{__/|won=5p{u=]{ [ۮ n|V޽=s^j 5)p+k}$ z?^o GqkWͭrMA绱n=5t|hq#-U1l[YHt%@uD#GF^3vʋnj['3,ѱ#R$?BHK[JWa[S-nV5{h}ĭ4<|z7s\-WV莺uZ$v|_o7^d@?M]n5SlZKtӖ!S׃dJzro.w+ 3kMWa pEMNJzխTM7-D)zS z-έ-˰n-d=5g.z?M\Jk׮Gҗ?H}KuT<hgOgԕ}Bp+5V \O'ԕcʭu[a-8F'1JPRzy2ptӟ <Fu&[u.~c#s>lkk++q-~{,nHȯP!g f2ynF>o k?;:y^zm/0 ҅Ekp^<s>S7^/|!?~fY5IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/figures/cmenu-nofiles.png0000644000000000000000000006536714023111777021727 0ustar00rootrootPNG  IHDRAf}bKGDC pHYs+ IDATx^Oror?7&7MnsM#1{O,1&KES,H YX(Rl14KJX^v,v:圳=~μ̙g3g Z;0X@#رz/(2Q?#VgD+wEˍ賬7K{Y뽞$zÊK؈u[DI#}wxrO,|܈?>]Fb<#:lEci׮*ꤪ\҃ld'ɮ8Y;@3Ij#{Y/#\È=C[ԍ9(+q;?yPNc.$_Е@>(򡑏^A<޹Hyru ^;(X#D'Ya bUb@7,\z҄kE,ey,k3I[v#07do6a:@#`/- IP40|\ӗ1EsWZ\9nuҊ08 #0hln3 aOmEe V2j v7h vaj;iݐ0LDw- >naVs&!- kIwQV鿲~$?h $40 V!ayW6ۃfcpYOn}FM]Ќ0퉅]x|AuHy.|b~E!!;Fy^\yn&Q!kp%f48dUrk r~W3R0Cr5v 1%H:h ȵWe.'AĽםnVX Mt'׼]u¶;m@#߅#kXDObz ,0w$2:Rsu(k)zIdD8轔1/i~:' "[stdWItQQB%UjVv>g9_EF)ٷ) @\u[=6f bCSb]Xd}QAS %VC*"+zXޣ2"$z a8ג'I48OaȂ\)g80 wKwŌu&~|rAva¨~{_Av Sk[3>L_gI`\wy11B˃ <K<4S<*(^Čoq؆#ާ0n?1uڬ ja ֬sjk(Z{טbV7cEVzQBb*3 'kĊXLb*+Vmٿj~cnj]=u?L9X0WY Hp;. :TH*Kz|5O@@;l]_!KqF\$k;Xq%k08K7ZZݫ{K5 >p5_mG'9>`]!98O)ᇉ_r(z/ySo۳c섨7[xW>k{>?@ <ƍ;Մ@d'DnW]T:*Q7o_yϏen&JL逸U7! l% \% )d_F"0p7dӱuMDvBSO\2̏ l$*k섨;D 2tRd_K [Bg-NIY_ZpKJ+4'vaoW3U+TN{Dn9 lHg/7LJyЧrӹZtq7/Yӈ@d'Dpk7d޳{k:iIg# 7QsֳKFX_Yi";{;Sn#w-/01컪_|qB³ ?w=كdo~3"M4Xii";I&~ CG!mS,IytȈWWbTra !OŎ<@d'"oKMWm#UIգ |x`ZJʓߎ3{vAIД@T:ʓT"翸&v-]Rw ?_8"vD+&Q_:Ħk@`wNDߦΩu{n;<;z}KUqod=?´.|ɢIqO1Dv"BY0Cd/?'?'?C h?v8U! hC 6dt,XUe:)CUDvB?bmW>0fƢ*ى@ ÇOe2zO>D徊q~YSܷJpzYseQz; oV Kt+agV7fSOK_a DvG+sΉ C.Ɨ^zI%>hR ?-|MEf.K 'M1+}oZ hxEmE)v3܉I++8aEu}eu5FT5ujt Y֋S8E475uLO>jX r0W9uٴO:Dȇ۲38XGUYEnQ_G_9KդjkIAA}A?|>a#WtGПĀ>Kрae!Ñ՟Ԁ$<)7`eRڀr{̜z1}W\qEiiz.aǴmA>9T5+˩yYWj.Z#u[s^0P MAiXjp hFZm@;Qa4e' VQ'8b2ߺ o?Osܹ~_ɹj0KJd7w5}P׏?ʀX8 (?_N: @t5?ހ Rc,]ӟ]3Śl6d[qT7dMB  h/u.}{YvS>-\~;e$*po9*{z SuF0}PHcWf_>d0Ih 4>Rσ̭z> 0}lE޹.c f.;a=UP2j8Q܆wWC*FXO?2dCR pxD)OQP;wVTeЎ'ҟk@J*z|ljCp ܇Fe @ƀx <)7 ?րЎ>5G @/@00W7s3z1rrgߜv~O GJc!=+)2*C@;rG><)m1LOCj N;ƴg(2aǀ1@.Se i0k!#pCY nǴ7?Fpf'&̿x;鈏߽ո}G~!QgũZ+oE`zO#2?=svQy~ʩa:Xq_YA9&iz-_|׮]#)-Lh_9k@W+=u 믎U[Poxܔ;?ǀ\ޒ}+חYܚC&]ed=%byCV$?W5߽1V^$JjRe zܡ8h;u^Eef8;\I6|qƷ$ yaݐך &7v߀Y_+ۇ~3ԟʀ?纵C@GE`,qT?o$WM>P}%6m/nG9lܺW}*ޥ6LKO, "kJI-QO % 73Tyc [OF7ѦatOQ7_oɈA,TL($ݓLx4zTٹ>i0 x 9;e/_n@G%wjˍC_3wRSq;=աXuP?}M{wDyo'*uT/&4:ZRRZrPT_ 5mQSՀ2 m@Qv7nLhxU7Zx㓍=&4~Ou{0ZfδBrI z a0 @w||Ⱥ#b5``7U0q=^wڌ>iq;=#?fUYiCTPaaGoKWTVW]? wp{gnW׹%ʌ K ;W~#P(T%H)ܗU_⾢-67?p}%F5q_~] y`eZ_ gKRp7|8%Q(3DFy(vgL;H,ڪp;wدUQy{0ne:|rO2!֟:c4pߎb!h%A_(Yy/n2qƩUxhR>S;-9x(sMEwMZ9>Ž9u(}n'GL7=_@~[΃bKa3b=(悽5Xʻ#_ߩ˷ӣK_MdžЀ.3s뿼;w^YY_rHm2L;jX][ROe@W{#Ư+//_tO k7mO?+Eĸ,BTt7.0M8- giEĐIF;#7/a 3ߒaWv1bĆ ;{7i&*(_}5{ ~dS2) X:pDr X-Z0`RuL0A-(1Ha:Ukr,kkɽxjXՐ̹j0g}*lS2dCȞNG;ƀ~ڴ kjЎQ {[6"˩ތz3_=sB󕵹TQ>UoTR}#b)Xd~=џ꽰OЎ#b '3w$3"QAkf;p Xt%bW-3`y l0gMd-|6 Z9ue_HuV S!i/pQ?>XV)`=h/5W)j8[5Q䉇W:8SK W[*IQ^"AhhVCUJoa^zvEԻBƎ uH |lڟX'%fXnjY'{Bher)U8e#yY غO0*}>heGɥRf@Z D\ɩyش>_D"S/ [BWo2pJWן3AM;·CϘϷ. 8SCsS]iXnf{bv:"Tns^^q3UZ` 3;v6,4 hJPZ&tװ# DVLpRaclHl))]}J.<2}HJn/qLC.(d&"F*P#>3P%CnT`xӧ}(\H/Jޮa(@:ҙL.Vh_bmj{2Hk)uOaC[%g^k̹ }XG^U@q#MQ˥5O~$?EyiIOv^}.ErsVz.iI4*%B9^ ߶UDv"RMՇ))ɂ!h nM^yנ"1ҥ{;>~C- h'w;<7wcϮ?>nV-,9ή+\wj@iV =@@;=@@;=@@;גhf=AMgbaQפ(d>O6C RL0(,7;Ѓ7֟+>[fi$?wJYWYi¾*KhA|{#٭[7}KH4|~ جBK=){Dz7ƽXIU-vmBO<:; b«k;Eþ4ڐrqyU!X.FތG 2k >[iI KUbRd6eګi￳CLI^Bd?p IDAT9}iO~m/ed T(XYI7L3EuɭBfi): dZC/V(b/SL ?J~<]ͲhD3"M?3gv{^ .+ٝ <?#SJU@n<l3 iotu(T- !:vHP~S_Xn^IjWQ*PlWu*ZIz2BVvST"W|@T@?5J<@@@@@@@@@@xקعSU@ =hݺKFOt+;2R?_uo~&~шۀ2ѯeߧbEeaZ -,߂oGݴYWژW^NBk^(cdVX=H7o=4}e붻ƌϟ *q^Dt|zԩs'Rrq֟O{ݱ9m\1oKٗRvoRfGoIi@@򢢧VlXx|V?*qқ' *tkŹ)SxTY.PNy %V3_ZVR10%"7hQk7O^<|͇w{ϳyw{R=pAف~|{T"Դߺ\1gjzZFٶrZ?'/4_}}Ϟ=]t/vbEi:. ?պbpn^l9K%=g[-Ѓ_HjZ^2orٟ+W,ѣGX?Ŗ?ubTM΍[}XD{k@@rww|z:T,vqpJc:~몊;c^N!s,jrXR?#V.ˇީ2`#?!,yԟU.kӿٿLf&>HA|-B~m!5UPOE?ЖR֟?@@@@@@@@ࣿb1(Q IWM'6Ѓb?ր?v- +`?/g@=34k˴2[[ zЊwW?;CM)yKn=eo#\mɨGj5/O6.]Kz_ma*>#]\$UC||{%k"wt[f#zԟ>ۀsJ('ר(ƾsKBMsO[oPLVHk B3'ϻ1՜š൐ 2m]MHOZC'0PGz?ۀ_/wLoz׳qFM1MQp͙G)s憭-#u*cڈ 'bt _}KW zHAatzZVǸ}>C9?hzv?hzv?hzv?hzv?hzƗ(GE[Gow f6}zZH*dJ4"Q?oFGz^,ysk@@26қDvԛמY3~ǩ>REԢ$~87S\=1:iӱ/hm="S#IR{{ JO>4h%9yWE{P\ݖkolug}js$C26қO1cO|~n{J?n[:*juGm闄.Ho{REb>kuk?Xx9n﫤A&B=HoV3Bz 6g5^j̶ޫkLoߩKWghm{)fw;66&3VO3G+gS+bFk(C?f魭C! (?/Xczv?hzv?hzv?hzv?hzhVY@?f_Pځ?ځ?!VϺe~ ?&sT?!{㲆?SSGTߕxYgR^aO^o?@x?; _ھ.=7~k_9Kz/-?vd4s*-!wYr%uGZǏo/!JHf`=Wi}Jg0g_[z?c`s*êHI{[#;# C{C{㌻eY gqqf' |@@#;o|҅FXdNuSџg=xhɕN'V-G 5Ҹ0踪By?܉Gg3:FϾ\GK"f< M=JF5z䚫?v{m ?#'ĎjskT\½HAs=gs]]wj'4$GVw?^#iDj-"/vg%-AIԬ .ЃJ=/Qd[JW3oÐ=XQ7uhϔ4whx1MMv#\ϓb@?+,?6x!ʣd@@_W+\zES.[9c/\: ?Gn ='tR? +KG*hMEdhME2-K@4ځf@; hz@@@H3?:vxEb1/4ѫ?xH֨io+x?4֭ۜMǎ#$iF.*&@Ȭ)R"0hmc^4 _^϶2mZڵYJ3ֳGkM!ۀ!L:#@T2?eJ}h}cI$AN;RU.ݻ.]z}Iӏ̗G4, O.%En{?V޸:Hw3TM~~?XqBwl1'~[;K;RUe_[au~ |i^qH3z4ȴ0'W?+SC=WR-%'2Onf gu:/ ni}"CiG!.َ琏vݵ]ɓ_!ivO=sON`9Tx>WwSsՂrR gىuK{Z*{C}o94VKiRޭZ{1K!5jR&D%UErJ Ղ 9\Y)!S(0)V)% ֟>U;"{_xnݺ#>3iz /,vU1YndI1 c;ޛD}6G뮻oa`?>ȴ0'7S⊡r5Zv!Ng.CB~svlĞκ^rz뭶} F6\؇V*ͦtKMdEUH3B ЪH-,H$4m? I'͈:"4ځf@; hz@@@H3i= ̀vbLf@;H3l/5 H3i= ̀v?4ځ¤Y^1:|J @x?4#taƿD"@x?if5]ok@ f <:Gn%&w{c R==?%hrK >dU w%iF"(,L* azE$vhןa¯:no&O,DdZ>=ӁN8s g(3W^*kvXLx$vd4O+8Ҵ#Sob&dIVIޟ^mA'lnXY>щ*AaI##Wg^@8lYL]//G!"~h4ܺqYKLTYKa3$<;:w.3kZW=:NN33":.RUȾ գX?f C1j%٫ZKHTi \oO"S-ҟ5AG$ O3 ЃO fm?f,̃ifu!?M ̀v?4ځf@; hz@@@H3?6_wQ[y}Ǖ;G.ɾǏA@@4u׾3>s>ɟ[^޿yy4,f <Ѓ4vq濟oXsʟ?nr^o>"@B  _LC jJ_,ľ:}d,Kr c_g}51e3_doG柿ߜXqokq/Q|Sʻzwk_/^|СiF;{_-isY&UHYK;X"۞yp E?rW_Ԧ^/NwW^yO> f )byKg9HgmlY{Sj879m(=as)?X];%ʥ 1jw/?k/ZuU90ųOnz?OgeC9km RBYօH뤪%ͨ=/OZWI|:gnLL[^L-z#PymvR1͆|ԵJ\_mnZt^yĆGvwfzW:}iԨQ[l fܔr2> $BIqlaѮ?o귫#EVafZ3(&u2k>Kv0Dm ]-ۯa{̟'\?O>_>͛#uF$$e_x8PE OПZlP'[nsjLQpQ}xC{e`~8+\޵ g v=|1cn!Sożr $Lesh,0+Ӵ_y eI`w-nw0ן3'LEH=?|ܗo=_u﷜+˟gu=zK.ϛK:^2q;vM392bf]$,EQfc4lO5Ѫ?; ݖIj{g[NҧBWT4.O " YYY٫'_6]ݼ?_0m_WW̙3KJJBӄ2>QĚ&_7/ۓʃh՟19480tas}ug{kȧϝ7ܥ/=q% H% MݻwOx[^w?Ya_L9gO>&MZvÇI f~ ǀTiFūV/Ǚ۲eˑ#G UO3&#iڠ@Nfd)q;>&19if < hz@@@H3i %H3FM ̀v *s ?JI z΅]>6E^P% z٦Iyu{=8 2gɯ=YTz"f <'#4d{Gf[3J[w܍_]UR(^,ľ4J&ZǾ4M=MF6#X@JB?>uy-K%+RYG #X@JQ{Myt͵}Ǿ,9+Ъ?BGEϴn#P2G겖zm5!bf5duuW/1gEi] n[tu+PRIM*Η{œUAnT/k9^%݄bΑ1iN?'m[~-5*Άd3ͽWW޶GkG!.ٖds¦o~ aREzrYI*?T 73qGIy{˥8y?a᷻=))B[%ߖ׮0}gK*%Ѭ+ʱ'^=_S,O^JMj<61Umf'HwT./YEF^iIWQgA>tU[c.6RrI]I﷓|J*,-,s1xTA9^5)T fp?SlUȁ\RXN43G $qݳIgh@.)R'LqIlU f+_htÿ< z@@@H3Fx=H3Fd ?t~A@@@H3!4;53} @x?ivOkF>z!* "@x?4[=c[bc/HKy%:լK69?uiSX%$Ws?VtImכ_M~VWpqP$Xߩi~wXOM3? r@r ֏xYɄ/Wnm_KKW}i𦫾'.l JWf_NkꉄDw]o^bJ=>t<.UbL/!_L`.f'2M4{e5yjUߕxYg6pG7/)۽^,t IDATSΣP[(M![e+r#蔤^bA!^ ցny֣gTޅLyDq-S{]Lj@oxu6==,iwN%':B3u|CZҘ~z*Fyo~3;wKldXF5Oy/5wojCrXu}oYW,wb*ELEqM8V."7(26z%:!s\ N"Ez%0pWVOh .cZ]̟h.~X?:EƆF7{-!?'r Nig,i &" R?&g[^p6-brV. ْ:sʥ[rX(264:',3':~gJ &4J1:pVbќX33 %wYrU^jH._s]_%(cQs%"՟4=:&|QnZ :2+/ONhH.dpM)}@Oz3*7_PP]|Kv%}@J˻DH3ƞv?=@@iۤ{}pHjfgR4S(r/{)W @x?4ځf@; hz@@@H3?͞y놾l+/%s8*-Ɂ4ɶ0I}K9hE]h2g;Ob B <4K||AKgh6wރGNYvqW@xmi>pŋvMcU=syϞq׼q:E+Xdiƽ%CjT"{L;2  M7o"=㑟?~7/z[~'c!dQu~v4*_xժl!?1J5ρcӈ{[p-Ofozc#g1Hihm 6vЃf|ar2AGw뺋z=a3r{kב9ͅ뢤=AW9;/ݐSЮ[o@@b}ӌQ{ #>⾇B鰲w7H>cf<5y^4GϺiȕN'w;6ɾrUUt)†h9޶4֒=F>ާvᷬ{_g|ziF;a6 9fB6  ٌuLy-*޳vm-Xa9{?N3+^s (Ho m@@b;t윇85CjNUn<;^Aw;+?xcCZ`45z^z-6rw)NJceIK0ڀ؝7zB|ѩ?i#=j/.+!M_|dbػ=^IfCG7dqwW;(O0iɁQ7uh; v^!Y]t5? ^ 4+>p䢇ǿ2}2={N>o %>2s[Kν=%INFh6jDHMdJ \=]r^>7 5_(pD+uFݎ:BI;?ٷ {>wvoO º ?cr 7>.Ol*L`ӓ17,HUѬ?t[A>7 TfЭ?K|qٟ"ܳZ*M3$hןx+Bu{=该4@DdG5+l/£B h ̀v?4ځ5͂zh4  hz@@@H3i= ̀v?4ځ|Ҍ,---i£S;Y} Ѓ*͎;v9REi挠5MtQd]|ڨDa\J@HӬCNϞ=UsNբ y믥V{Pд։Vi-P ] HiN>]Bx>Z23ZQkEy70T- :{wJ]|Yv߯J!wgn>ҵKAA㎿or_B6Ds*,茮N9 åhEU!^tJ.U\V(؊S\p^4KOO/?>}K?[VV.mGrR4pǢluZ5gZ곦ϟs/HlaH:'[1֊.26U (ի:[S &|O}'ʏTERWi%V&9?JRN9RTn\ <.Dן`dXj:s1yENuJP.ϧ%k$a7E7 0ѣSN-**:t7O?̔G?}$=&\ )96a̒o7|VN%' H0iV^^^RRr12aӌx~[hH@Co6,m䶟  /cH3ܒGځf@; hz@@@H3i= ̀v?>JKK7Λ`ܹ[n/4iVZV/N~g叺yvۑf }?i:r.ߘΊ&u -`X^p¹3UK..ԭcEF_0tz5r{ii7B)j\rO|" TiEcbwUrqF,*é[n{7h7֫#fs.xOwRC4_м),YRpΈVW9"qY,܎*1N'>,/݃ 瞳RRRl2+|-΢xI :.ޮώuAO'TsM.ǘ_m_PsӒDbfyë9w6oWBb>&9s0s->3faC #gBa {) G}^Hl`>UH7p%HZaaǒBˏ1ѩ?^Mx}[;]c/ׅgSXE4ks9`ߥcc4۶⢅S.+2|/̎iHUH+JU2pQЪ!) rv&>;uoqNuצ8=Yl _2nJHF*B?T%e 3{%,OѝNYt;]=t[momc &ԱS>lOe%^Sa}s#֪Άڄgv;T"[Sr~0$'u+>^%ݏ:ITd' $q 쬓v 9]OW;2?ype啬3)Lz|NZ^iJbIwj"6M#^JF{9hן!ٿPSZ귢NI>{}h埮~t՛{j7?R+t6t1-l3l^qix.L1]9yy\qUZdПX 7UdC:?\GПҖIUm++;. (tѹaHLQ9Ù/lM1?e4OH4'9p#e'~23,UB4?$Q7 Ttl㾤J;X7,m'ݬ%nRF|fϘn1ڤ;*w8ɾb'w63Zg~"Tcчk^ [{sG\yꚝd@5餑0Rgs+[_|f [$ٻfI~f ]c1M ɾ/%*dCNfm_f,ZqYT;ȁTieѵ6]YutҩS-;~x??zId]kgr?0iiz9iEUf < hz@@@H3i= ̀v?4ɶ0I3C*0_*Ho̓"/~S?=Ҭ(g~6~Idy=M܈.ЃHo D͵#1/_uJR@jGzɑӫ{ =9dn[-ЃHoJ OV˲-Jg!Hmp7qCJ*"nQr [o@@~k#+qxz2fR_w&-/%VK*k+& Uy E^'7LJN=J)`lY7 9қad5vB#lTg4=0KRߣMs ]k)`Tid@B*##s\s؏SLSi—@:Fz#t= b=_c,N2'oykQ7̭T0he߲ 43g4he#8Ώե @#Rቬ?#eU?Th:)G<%_{[RaxD_|R"y'NxaA={3Th+SWԁv"돴aH=/u}4'N4Uǧ"4\hT:?KyIlkF6MrlǼ1m|ĄH @@@>iaM :lyxӤ߉eT @x?4p¯*N';# :mx- bRiF{_-މ_ S4kf?4M'"O3u~| )#ͿDFt ldjZ*ЃO#>nĆg~&Q!K3U 'ec/Cé52{-'HWwv8~1VHLٿBuIWs:D݄bbewfzNZsЈϓxfdZ,B?r+ PfR*YLz--&TgH=%)LR 8׶TiwnǐƷs ' a?1'\o C^z٤6}n3S"OAN dB#-_d$:[ ;#+؀sm AU={;~t] fyՁx)uyk0}'&z{P21^X?Ur@@;w[/zǗ Gf0[@@;GG%A}_җ^/b3%ډ;~_2g?+MA)m [@@;&K@ӬiV @?fM3= ̀v?Ўʓ='歍'X F_j޺ɺĉO7!$??\[QU&8ztӉ hORMZm'kؽx媢yϟ`͚ȱSMĬ/d J,?~ / 8qҥ˒U\a:+;ՔF /ЀOUбxW|O=4WG' de[?9k,SL=f,]CGjOTF~}f@qhXޠAŌy_RhHAџ?$PY&+}DŽBj+kxw{3fP~}^ōGjNT aGHQG*h׮u4 sIDATTD?Co̘ D5N>@ɚ5$v"i룝}饗#!FXpqHYu}SiEqn"jHUeLTKꫯ^tE]wطb;H֒\5!q@KOԼhs=7mڴu:uDm@>0YEGʪꛎWT 1XހԜC/p 镹7 OaڳOn`P"89HXcǎ#:v4^(I;.ߥDpݺu1DϚ mI#F_j?vE`0-hbܯ,zę$X+jTgѣL0߲eHsk:–c4Ghlj:pZfg K6M1VY TKEb Dy߉ww>4xøqrw}r|/sX?H%-6mڼ VZ3/YFM8Κ3w %*kW 1X^ {07z/M6b͠ m Ms1"8|J;k CL׫џw1/W?uuC^r>_&OW~GQjl询hƊ.L7nܸ1cfϷHSN~Iw:*;QtZ8ޜ CϷ{| PޅEiz _,61dwx_쾊p6B\^TyNugt׿m&G%XGk?~Gz{_?G?}GOs,Yt9GD _~l SPY w?h!^2\11v(+n:XZ@ڳg0FOs60Zj 0KOuGu'ӏ#e'O5U!$??'+]ak:B/(Ӣ4nd63@@V9I>|_̆`mԨQ{8p1cLO [V=sg^zƍ? [l۶- 6lD|C:u*q޽{;V@(//\ >|ڴi6m" [C@VYOߦONz"1Sdh4\@. @ ? d_VS#\? h_^#Gڵ *b\@ ibHD]dv&A?h_ٙƷ2vl(ωlN|s/\@ 3מaܗ@n[Gts.{2%hy@ Ⱦ2zh? L_ @ӟ=Z6Z@k4\@. @ ? @@?rlhs@ ? @@?rh4\@.mq#g6݆@.mqC9?_>d:?zrυ}r|d_na/F>Ϗ{ .sa>?.+ڠJ\ 9xtISdnQTer836O*s9L^J@@.C$h]$%? hџm"Isu}GA;L7%? џ`7F{f7?5"ZPsgNJ@@.Im\@. @ ? @@?r^d ڀ^<}?tnyym~_|駟@@I6rlS⽳ 6IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/figures/commit-tasktab.png0000644000000000000000000003242714023111777022071 0ustar00rootrootPNG  IHDRA]~bKGDC pHYs+ IDATx^wt[ם3;gNƛlrv2)8JdL2dq.VrdKrQHQH`H$vD`'H($|p߽]@>-)b? E K~?=]gS4[uo={m+zE&>@ŚÊ+v&f}*AU*AU @AD@U  "*AP u@- ADP'JTymgog8h$*AdKbUuBp#@4 x$It||YݾF ؂|4 ;o"HNv،Zpɠ^Y ::6)! 뵇B>UE*Ƨ@sss6UEks!M0e%Y0wn{oݡU˗~Oorte(UE8 - `"JT%T'JH? 3쭨8Ý;yOwu R >̦&MWiCqD'ZA4x-G:Np9Ž _:TW~HeTE>& Uu{ϯߢ^n&ڻ;{]}:g*Zw|ڸZUGuEt0*TZaNց'LUfkCpS=Yxb%Ta Vnv:s08|UICl,b;@Kϻ_}[+]ӥoT =^EEm`UyUq31 YOBhnK+ >OEQyTUp=׃v=G.e^{[{a:ֽeE5=-gޓuPM{IE2%BBD*V0?N'2%cIUW)BeVXᯀ'&&WDے_䭊L8xh%eĭۮuC]o$ ȮmS[xeE>^仕OWaWՋVYݢC>2fXDpj^s@T1993]J(G~PgrxR|{'&ƢUyOLMMJWzz:i#&ӻ"!IUћ~.8ɽ$V/(mfv}n?\!:$N蓩*7mT vO2IhղK&'Uwl,y.Kxì*k&&ӻ"! ]cYm()ugF%}2eoWئ2ٜ$# 2iF$B+U,$ K'> #C, 8[-e[d=AC*^9co|l˨̾H슯 9}/#/$b7⡷ goۑKflwJ׽SΑ*#I7-ֽ5~0R5RMmJ [@TA>VF/Kt"PHmsW7UIUP~nPgM/+k_[Wo!ޑѐ+k ;Q`xbvvV*?+gҫu"s<5._HTgށ=wxt?jG6>p%v_אMKxK8[J~T۩*W$T+vsy#Ts%%Bz(9 ӫ@ߛ**%v(y배*,ۍ-Wk׾-_әkʶdcL 睈'9 zҺb4 QR-_HT[XpG;ͷym/m?RH|ݾI TpC\:l*y<% Z%. W-zPVB>eM们g%A:(9 ӫ@ߛ*yU0L6@>a5ӭoY?l=c,Ut"mWN5 , 6V+_b`AUP!6z$|RCVGʿp/8QO]5d5 eQ.J#&=h+v!gr!UP3DH?6gaz{S%T`X!QU'گ2T_;}:w:wzOͦ`X,yq Ț]]ήÈp8{S-_Wg + bm kRݺ'>|۰~Xiwx_6^އ߮<\F#wTv F@voR mhŨ HΘ`ܤBzv҉ϫ{o06@Rfr|殯=S~"a]F*_ɂ*=%U 6b+p7叨*:5-Xp+Qq>Z{P>SPR|Ty oiKs!9Os\kw+`!*M< vMjg׾:KUK:- ,fYLFT5-mK K^_ZUOiV&%?'Z]:/'DXGڿ-ci<#T.FnOSZ] 7E4 *OC)Z߽nQ1 /k"# j[n;旟N>OuKҵ(kͪ:(nlX-7vsov6Bz:{:J>26% [~wp/<]t}tI>W|ڃ]e iRg(e -v G4v$ܲ4^;z&v }@0@8$?pH7˦uf ;0==LNr˰Ua0Yo.HIQ*|ߗE[AذUg0}=Zi+Z1U  +*LN@YHQťށ*-Ad5" ӫYL A[#擥u/T3d^7" +Ȋ /*d`+ U"%*D[)4A 2lw,*D? + 睄=ыޯҨ,J&z^(s}J*dF\łEk 4;[^&iBA gU% U_jR/үBEQe'_o%aU mB^v'P=H> 9+]<:U(P=x} J#AA7;P2*uCSzeE~S%#gnsnpv+| ji$^a#/UtjHmEW ~уDM>UB]¨/p>3)8) CxNglP3iw*t6Bʶp!}/>绨-<_WM``i ^aUC߶iP*0*0ڊ"2bDIp!gWқ )|c{  ׾N>̀K&E# +uLH]~!*rBD57.Q:aTȹK8)&g!sU*XU؂oEߠ[DA _FVA@'|G_DU!j.RTT ?Ʉ07 騂}ħQ@{\~S9BHAU \&L]aw" 2T5Y(ḫnٝp6ɤ2[**QoaޏcUpNa-c/_*ao/'Pc/&"{W*gs m6R:ϤD)EG8#XlZ|vTeUPT "7F ց8KDɏ^P 0ѨCU !EU`09 xbt4yIOJV, CTw:%H¾zriT1JL & CTXO:jfTѫS"Hn;4Ux !^+KTT*Z.!Hn;D. AlAy UW*A_R_+OL;Dzwmvb&XFt>;h4LWAU` @0ܰY;UT!P}Z;-Uybl,XUгPlWUYPygAp,x6 τo U鉯 xbbb9yq߽ehkoO*~"Ae{ԡ * U!K87zDU`Vs`ʝP$Lɗ+z"< k `@h2eUP wbx"X0V]UA6\O%1%0zcJ̧% 5= t 2 lBqɫ &+AU`%əa33B YҠ*0R t,v]Jl1d &ׂ;+x3Rw[*0r #,ϯ-;N},cVTFVAU`_+x3; *.yqU[Py+xj 2QA!Xa*0r #FFYTrP̢pP T!*TfUj/"tDe*i6-:/"tDe*ؐ[f^D(De*WBU`5 CTPA0S~8a; LU |'0|]U,*zzlW*NkDGd"jٓ^{( }? Dh E(099>==5;}kI? Lg9UsWlPq"m!e*4RP ~E4l'Ub UIC*0U6ޗRV0㋍7zX1Ki"P/U̠*0rrbBzX9~YN/al364︜=4# ɂ*Μ::]:+:B>LO&]_ӡIڶ޾^ѡhjussKE}y:)Jwtn`擹*E%>)frpYYM*҆ Օ*N8EGȉYSuT&'U퟽zwU]g˾zph++uX, V-{2Q[+"Epbwe[=GtHtDb&~8wU# OIVfR}_EEu)gTѪ**?{Gϝٸ= Bm[h}wʵ/[V}x ݃U Ua4A eDk2m q8uuu*.א`(U{䙝'[ᜂeY[KsV*0 c2#\ :1_Q 2mUx]}M"³Nv7\x=u;ot/n>_Q, C -n[*ZKm=g~~SwQkVOڪ ;4 1yzfdO&x\&]ZUs50" 脨X^vzxU! jq̭h<%V赊-*Ngwww{2Z^DUttkU&>&<'eF -\蜯W,b I[0o zcx缏LTC[$y}00XR58$}Dߩli,#s@'@ť3VShsYq&Fx<]@s+jL&a uuuiZNV{zz|>DU tNiP)޷<@9IQêol(! .67;Wʨe!QS]uAwl.{w_|앳qK{y[o \6v{{{/յ~T[{F b^{bq{X%r;}DDU`䜬By'e{2ml;!YM)9ʆbUs2 \GXaBvw=]x_'~o~Vi1+ڪv8l6+[>(c&wT5yJHyR|'=~ǯ'RU*>m|ϯz M_~eUW]~Um2Wũ ?Dl`XI$`9 A6)KH'7" k0,A\  xC5*UdzZmAü㘺RxlD;pIA!P Z/t}v͖Vj7U}8#d ,*`Eah 'b l]R]pXuVSiX3 8;Ԇ?WWTWUSݺ/~O9'' GJFk:Kڷk߶kLEGU`YȻ=N^|\}zAW;qvKyD )IDATm5:꺴ZMw骍væO UR|hJϷ_pAP[l2{/\ӟH-6 j44Um=S7joDU`䖴UÝ}>Ɂw{gG;/GnGݢ3$]Uq6". p:6;.PѫЀvAK cdmK a0Xj̝HUJe+JjfJݑs]ju맟~B{n#s~xA !:YA*!o쾠tzɎ^c-_ߠ U[ DڪH|⅃|,)ӴcP;p %.,B L}6":y `&#1C;I`FwuudUj4Muu#GZ]U c6go0 9 4`7_"8Ÿx=V'݆;Olh2T@U`QEah" w Qzt m{5ЮT55ל*.se{MG |^"c{`&U#x5 0 #,*P|P=w =Z[j7 fQ'mroJ*LY1I شX TFU߉p8^㱸\Fam5QŰbaT&_;D(L0t/h t'ba@MQ`YmP(bU0 Qt<1/ A_`U.$SpE 61 Ͼ&IC9#PSW*0fVVEGl%br*DV+!(*::jz fUA" *| Ʋ(gFK Z_  A7"Jl%@l 0116==0y O %( Y2!-(O@ *lAX}^k#w($Cϰyhdffznn.DU`dY_ .&d c=;趀eyY p2` 9uivG\v#v<^p=P3>UUIP'94 )7,AN$Ua'T(IS嵝UIPT BYP@lAK pM>PdeUX. nJ{C/8 &CTab,y oPyT{_B.mj*jl,dq% T&;onnF:PU0; & AU`T*0BPyUd! `TFɖ*BA vՠzx4FU`TFɖ*w=Jp^EU`TFɚ*^Xpv竿]CATFAU`lqOD̷._oTV>vCC&t[](jniUO Ͳ<#dK1( ' wph2*02 #dKFsSRK膟q"p3G{GU`dTFɖ*\Ƣ՟ѧ㭒=R\S:<۳#à*0NTܖjq8[O\x|c x"AoWUw #xV7~ٞήsu*(6*02 #d]mrǯgtu82ɓ J|FAU`l֛wt7m;?]{v }U*0NUa2'};PHtC0,;Bh806Ipqej]@kjMuNTk'*5cֱ▱¦Qc *-f -QC5N&@Zy9NށѰ/ILCU` D`Y|6 V I@PhUaY!;m.nǙ .qY xG#VQ\VO $|] {͞A\9eif5CցYULSoLUiQ7L5Q4B@L>sS@ƙ;D hh *tU$ NvvƔUou]0 >qUi+Gru 0m 3ŏϝCK_l9=6}848TD\g#U|72u! ؜+骀>RVEcyCZ*xW՞xWI4%O|b"|hF8fȼP>Ө y*0Qc?D 訡=A L<0xsXf|uNw73+DoF@ '9ԡT11}gdzfzb Y!z2BaCsW|IG\VDC?44TF! tOª(k4U${mR3UcʞuD|2}z>4TΗtΡyYT133PKT eN9r]L_L*E#U'Ta'TQ(jهznݱ 3bX3 Gy*0΂* m 06*5t&&r2}+V)h.R?֋'IhUcte^C0WoV:_ґ/3FPA. MPǰ_񗵇eKH:JmX5\P£WPSmыhEۨP'-z=E\ 3 Uw*"?,,6p 5u%Q lv\Z ar$6_dBt8PyNrXR՚ࠆ%TUu=EoqLPփ pʱ^x !e8xQ }¿Sq*0hO^V65568\Y;6^IU H.8c3TAGDt! ΒB6  AU  "*AP  ADT "ARK%*BU  4x8P K| ADT 2 |AV pC>*A*AV5|Ok <|Ok e8_k t"qAA'] )SC 02h"YCVF?]Y!Q0bT+?"gG0+w*R9TŚC iʚ)#g懀*WN>9yƈ;+_oAlY@t +2CbcXQ-=('gp(! IU?AvLG@IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/figures/commit.png0000644000000000000000000005245514023111777020445 0ustar00rootrootPNG  IHDRUpbKGDC pHYs+ IDATx^xŽ >߽KI!BrC !rCH @B0 B -$\pdM%YK޻lu˒߬FZvfgf:}s<;9g^9>Ue93~O.m ծӮonn3fk7i׷h7'ع;ycLr%xe4^ 55h7b_ܮwfޑw1OS^п6ɻl^3 fl@l¾NNn5bbjG3J,Pn+굫̸E9잞8GZ&f%-#߇f>/|tzO؋7Ӡ4%ŵK:^};DdZA|~f9oš+c?z=ߞpܥux)y!?^̘3˵YoqFyڏ'dw̫S n9a~?n.^?Ύ G"ucC u͹Sc[yl 2]}}nxqGtwqw`'5S/k)) `#"!b 2˞u7ٓ3<9Zxzg'5SѮG 5T-w^`~s濏4/k8wzc!yğ}nNߙ!6b7"g|̏^ؑ~N-=lNej-ti6ac͹\eB ܱhwLk_mߩ+ }鮡#n?)?^k/;4r^pyG~ߜaon3/}?|o33/<']͂O.+8kF~U#)g|]+w>r쳵G?vC~r͏'?HElY䧑ֽl ,h.@<;oΏ۝G$m:G_tI3~S;wW)nuoi+egyǬ95>rf_m/ΛV՚G']{t/8r~/akGT_ D:ҿ#fס/" 8@”Gg{ڵC#67fu˱O!nasHUj'w'\ 4T0և~Oy*cs3Ky?|g;ZwM%f>QʳYlIޒK:~b5?'ލ[ 7koUζ{;{z ngR?VdiK8xOe|LLܾ]: lهV $GXy9bA?'Aȭܹᶹ{d잧nkf|5l Kw>vNXxW{KKH#oml ț߼o?Xs w.o 6)mjV19_O)04o~mli+ vfՈ78~V 60. J#VG /~­WR37-?wwJ.̍T( r W~f"K|x?'x,Kzx=8ZƂ͛%s^u歟 Q:$Vo435[yn.>l۩SG=yzF56twٱ}MbRf ˉ36Jq;80,ga7qc0l$wlPRRWjc"Zp׿xf>[カqS߷>ׇՕ䱥WQINpܹ `7̲;7 [`E]ja28H㭕l uj> lmPdѻ-"׻ྮJ#Gx+?jxHOwHV5X<|6a7ۖq[ (ENr%}߫'s۴iŵd;):~7}5}kܞ=9NFNe]K+ĭqV2d`m.{h,l#GBLSK(//_{w~eWj8cOl766Y GDԖq[ (EkYGKoh/<"E/U9;685tJ[)~"s3Yĭ4wYcNLl8\n05 luxmMkcϯ]QsJ‡O=[Rz&+/׶H$ `lJ(@/-;xwYIi]yg5_q}3mοI,+_(;w8pWOh77~5gN+xȝ7679APJ[5 X+1lR\cÆi~"M[Ɖꊬ~kϛ?5cRNfX\- >g+Pꭒ swWBJ9y2oO4”yd 3b37TOLj缻*'v|)lni?8Te66R'sт_{YQ9A`PT RImWh.,z᩿i p# GκgYތ=7?AP=':tM4dm[GxgRvk {?WJ Mݝ[/|-M%}=< w%l'i.zt5ԅ[hm.!K])>`"㻠d9h7B+3AJI aGzbra[j*~KIؾ3eWJS=mͥ Eu5yU9R >b҆~AL?J "!J F|? EbXG}  b HZ%f v^،ʕo9J"u~};w' 2@db7ei VA<@1RH)S$&&ݩ:+465k](V6qՑbG*%AG*g޺˖S}A{RO Ӏŕܽm#&Tc#rIʖS*A$7-#WCRIbgi۴vj+skG`N5N`w[W8Yjqcؾ+ۻJGܲT4J}m7SCNÐR.  |gķ'rϩlJ\PEwnNvH/N6QtSY>v- v!&ᖭa-2@5=#u?*⭛T(.i=|JnN=t$cre1Z9%XLXz0|{F|)4g 3mbk.MT-!Syȩ^^P0*} I8Ո@ |Tk(*~650]3b4 lGO2 /L=lƩ9R<X0WCekHŜ*[7܄]ֽl܆77_&7? -P0Z7m{cصoe=O#@[P,[  5E!=!M_'@7HB4_4p_2 "ipTyN(mSYm5ܶlGl1NCvDqOێN{mx-ڲģERL;0A`^85԰m]ըLaH 7If`/^SV6L;ي;&/[m-X<̙^sf-ƬtE0L;Sg7Y4U X#Xx'K_3NIy(?YPf+&Pk4<"PٳNsM Q8aoHRC$SwWY!uv6Eu03)vZ#Hh&g4V-uvr{sk ȭ,ⶲ o"G{z:[ut4׷ZZ U}}$ `qEB[ ț!&9NǾ}{b#qAYSSACQ_ ؑo AD81}7|M++P8?&M+?(4IcKK5,*Jډ T: ?&< Lm &AdQut4G99[Y6AD@(( NYbX?&l+f"KPTBllۻgo__A7Q#޶woixyh2kR7OxO5E9A7M_%1) SRES o"s:$>$gtO'awqmIszv4gA.'6?ݍBNd̞P A.0B!"OZA"y"[?;r IDATp?\ A^7׿֕ìJ96)oz+Y塉? yސ&dFn A.7׿=M03ěp o 4^ mrktf!+v'H㹽s31H3F칉774 A4:z@uHTj'uk۴Xc+3-FPݔdz5NGrtu$6yhMv^zh[SRHo!reA :/i/;zA wS쩸ě'* oGoho`\ooWOO8wv6$55!lm.W9yX9rɝFX/njjf桉7OT AD81}7|e*ƺ)טJwMnx)ʺZ<4&#K?&M+?(.4TȢt]5հ1&7S5ͥY%Ȭ;LXlqSܣӅXyhMɉD ț[?P3-$׿d@/'gKHOǃ_kk  o"G ٓ#7Sx84fq[NSl6*ɥcSit"y񿾾ݻӳ32SSפfKK[}`'Trk,pht(*~u[G\0;5nr+8Kp"Bm\Z< pƛհ1.bwrfHvYknvxs_Ҙ O}E?O@ُmq\+:"sF63ϺSA d)! &:ۅ\Z -a 1U׺@WbU@HyH<i'P^Z0XNX* iP \Z0Xeì20WmnWAO(U2#N@rk`[c?mrktoeWNlT&b2R(oRVo{nycɦ r ց?_ m&u UjlevjTM̬n㨭F1xX mOׂUR:u [ctMiS0kl瑸njqzP~Ji2Y%siK2HgucJ"@F oNS0ǩ*;t')i? zBB)ﭖedD=x "P*f` enF0p SsSQg'kJN;&7z|5x$ zBBLټ{OΔ-Nܱqiؽpq"?J:Q[Ѻ[&"DI`^nViiݻKJJ rrr2226n qV,߸TI[&*׿vxWNjiNcadk]\G6e[0[ wlVN1lBUN ziQPe=,=N#M[v$nw䎍KцMy熪7~ ˞A?Pm]Qq).ܹyӊ K6o,~ԝIBi+TWWՑdžq5o.NN UzJdCfH+VY+ٱL@rk[[Ѥ1vq֓1_GݏYW fߴOeik.ٱ}ĽrJmfoپ-ݲi15q ɂRP555ʏ,2Ǖ5椤$qrͭe{J p_[*nek9J ⴮ C w&RPX)(Go߳kwnxc>sK;o?ڃuNM^}k?Ybe)V&[Wdn))I\/`AA>Y^eeeYYYyy/u׎[6my%w/nhE݇N I9EJSrcOb~f~o>O?9 8 o붲g~X跋;!s7D ˩}M ˫dJRvn_,ln(\js V++I//ZZZǕcQGGdg禛U?|mE*iqJ(hm+L# Aя=0S9Ocq/6X?3nl:ErfcK-xWU|K8Vo?|F?Y4?(?yWJ+Y!qg yM ;wUXɢw<077`EEEAAAnnnaaaFFFIIIggW]^LYtW7/nBD׿<sx#c@Ǒ=FV~'wbw:9o?|˕y,]+k?(MN Ԅlߺ鎮+?x떕m͒orUWd2YDnI\-nc%Ooْ%lX} BOpYMMMmmm)))2]ܷWfmKELQj)gu6U u8P|)b6WkuN0W gʏ 7#4o)yGR{ptxVȱsoi%u熜d1~)Y EB^0KR͏[[J. ߡHyRs?`ffFsss{{{]]]rʮmmK/oaqzNN?uuu|чs?^y_'/~A׿Gx=M/GAa/j?QsڸE~B }*mE1?#%Fuْ dѻV+s\ 0=}WmmmGGGyyoۜ[{OC׶g$lٹyfبuwwx8sXO@_Kbm6ʖJw0WPOuӔG(nËg}7./ ?KAGMښ[ jkwXO'W{W[sWrJ>ZSޒicF募d$nݱe\+..y寧 7L6I%%Mn&ڲuJQc6ok)! sj*dVgToٴ 563%egkk+?KNN~qQ' ?ٔ~\ڵkU>|jgߍ?kO?;T?m=, V" YZ`%m&0Ul`V6w+!. 3~<X\[S^V->~&$H4?Yܐ8 3_sau5,BMe6CbdQHi (8_Rҗn.\xւ̏>_[r%?pU&n o+OX׶T&kŁ9XPUy [0W q)S O9%k_=NH9$6طΫ%FUVZR@ oU]*$1Ĝkcٝ^^@ dT('!6 4>% >)E֑NHr&%m?b{ٙuօ Λ7oZC9㵩RV Jm׿4nr20HA[ۦxlN [9u }_'})' lOIPmB "fĚA1IÂ˖-!>}\7oNHHXnիW\jժ7xؒm7`x[&m<\]׿H27޶iót&`x\ܕl9 \ ?r6l^ζ쭄 ;w۱-nI[WM+JDח p˩R=S0! #HeQ/E{y}d"mI,N_ p.&[5-nzVaB@ Z )_bF|u$tP'!@5qCWҴf$|yldzvK6-f[itՐ,ln h3N> /Xcׂa A?ML;?v4 0 h`~O< c ?Gj!A" Ij$ j; {APԥ@Lylͯ,N)Jښ;9g`c`BuVW6Ț:W__Eihijkiihoo651>i>X\7ZP;_5[1Y>^6Z:\4%> Aa$9@tMg z p@?#W0ZP=F/l4d40m[r$fȭY{FN^p2ݦӮJ3oMٜKǹʹ&O_J]T#ۜ;F!-oMr Hs2?״G3rt[W 7I̳ۖj3^ 3)g<-\ 0߁\-b=`MVr7y\p m"+=?b~b~ HxcH+?jxg}&=D1 2Ox|8@}6f ,#Gϝ,7 ($?i{6 Yj N.iܮq;[d Jiru#\\u#Y"~ӷ93Ll(XƫuH?l4FxSlti<򛛶]Tj2S'46ۦ5KPO Z\K-5(MVOLӮ;Զ&B6 .WZ" t㒞gq}=LK5p;ϱ>(!玘5*0 ? ' O86%d<hƓ%`APxO49i{/wdC΁ Aa$'oͮ L[7BYu`]pd"Yr|~;ƒKFWţ E FW玬<&? ? țHH1~羣pd[(ak1c:{deTM'%d o1~{`s<;/ksFⲆJKNZ if+@P_E2(.}6MZ_\Joy \T 0RƓY/nJR9EgM5|r[yVvȢ&*Ir#,ϜT$6UsEyHC*H o[EoyR5//){~qS󋟞W")Stn\UgP0\o\xWw^ >PItܾ»CML{N?}O7{lBO$an! -눤#؜FV4'ù{:7<䑾><<楆g#ǽnNŨӽw&#%jry{Pc^PGuDґ`lNc# zE}AÛ摾G dܐVI95/5<A?w/ {lBv3b44"|ЎH6il @O+to HS C撟gP)熼OzS;Ródcok^{{]IdU.}+*O8GU`l"FV6B伢}A}SR%=9&Yzll7޵?%ICJb6d5>a^MU8"2}ʇy44ʡþ) R%;?g)e8 ym}xN?xxH φ 7޵z5.!a|{ߢRd`!U߱Rd#H'i[87,sc{SPcMsΏt&}Y*CG^[S;Ró!7,;4D޻:b޻,K-1.1_|D#c fixh :7#7䴽)/o.ndm9Un78?N٤/Ka(olnq4-ϛml;̕A}S5P!g\ :e,U#mS;Ródxpbʻ ]f%&&滧/#|`GDǢ)JHM[(}hdVR!g\#xI^P6)qo><>3qONo`O}b–Haob EŷY'\iD4hqw#m3oOmU瞜 _X!?9*@LP?}Wf}Mimuq]u )DaTVΉߺ~_O3Ħ;|yW?b/Ńo-Z4?5F(O)۹&!ޜɉM댖|1M[s1y|y{^[>4=9'vY#r(0@ʇtU2854wC~sX߻goW5Dqq7> HYɮ-d58_g~ XatW?@,b?\@,_EbX EbX Ebm\b6,ub}\? @4c?Qo~_' Ɓ6懿f懿r84Q <HۦїW|?wA:U. *7ȺHk 'Ο'QڵaHy,}"#3ҮCJw4[ H{ =>ji62R;'_;}vҢqUƕ LB7HyĐ!0k*҄ޓˎk1.p4tS:dF(~2ӧA;)A ىHu?"* H"*xѨ n-@z4]&bbb1+-' N' 9 Mp3L܅)I̞41믿޶2p:L$hH. JkBV(LȍGb }yzIϚg\˞rS`C 6`9>(S&<2 b4WU@8 8j0hK$=fDv' nC3۴Q #F7^d.|J9lNDZ>yAlM$ k8KA1=A fj03[s& 3P pAGB@0gc0ˣupQ{jmg@whxΑ`ggyVe@xJn_Tc t&ȑV;RA` `^ӽL#&u"wL"3$2«eH;m;f 2ŝ׿ \63bbb2 H}Yj5,ijHA٦~۳ݛXI`oyc{]kv+Lu>Ma)qsE`ө+4dw3g H6m20tS-2ιwL*Nyo3pZ0Fw=>3O$ŁIQؙxs)RN4'9`c ONl=3d%/)1BՇs=XmOеN`rY.?OA*`&Sa!J}@A|@HDTe !C(#0C4 S7ZPy]cDc3333FFܕm"f f f f fJ-u33333Dv69t1||eS_z n0hsp׵ y`P}c瀄k!Ju?Fp,oDC w)p`GKKvH$6hCMM (QDR Fh`D-Ȥ!&2@` g&hj4o5oG@@@@:#f f f f f]SG}b#0b&!:B9 R+=^:#țRQI&S6 JN i-C"3TL(B/3a, D5b sd2uCȬ1Bn (@z0d`4y$Q-YNMZ\4dC@E!`W<"2ltNz8TINT 3NӮAgD58 vNc H[GЛI` 0I-Auu?i>b;cN@@@@@LA3&$6HHKS@Z|҄Ć7:}3h@Gܤ0!mB]`IbNt#:Q :0te$LJ "exsa6Mc=) }d}Ŏr0֘`.dIw;$xBbM'%j$1&1$ڕ*Ŕ IL5qLc2T5S$a'N+80Dg$L>"QD5;l!0$:n.&FK1)&nhY|&3o@ AJ38gPi0D2niL&?`;^04cu>ǁ:ޙ)O e C`ʸI)]lSF11^z+pk1qybD2"!TG,@_~hWbbbbj0b1111Cx im+1111s5Ox.j")Q i'PD d ~5W9@s;:QX} EJQ+Jh|?+rd|s9ok0PXsE_/#N8ΞAe7S3i]<%N'OXj9ֆN:C 2eb-cS0p9ĩMͭm'P> f /:"```@ 2@` qˀu0d˜+ 'VD}g`@djd`uz[2jlOYN Fiƌ@߀r2gQ m Tv=ުgR{FeiʖǿM{[KSaH=`z;ݶ``%@SN(=uƂm ?`_c`hKXzY(EЄBX/6E ,cgu7ߔcv54̗3Ș!aὕ K V.z3̄s}[kw-W(#}Rϙp@ؼ-/1 { 3bRyA`# l؋jn7pAǯŹ3uVxXg)&1RPa Y[hW,S.opRpr>m3F ='O[0Nr0t20hfM|f?ɨ<ڑ&/:ؠh <`pߓ <Җ)?+Y{u t T[X]*@)!LWJ;0֡kwỘ$Fc 2@K C 7p%E JO .R`op 3Bd 00ehf-::,u4耫C|R{+̠NUd򾇨|=WTVV he0c(M<\,ا"heMf=EKAz^V7쒮{LW uªz^ [xYE|^>g23P\ $W[|`lf_f|tV U>K`8̤֎ـ0װ/Y?>v8JA[Xum89~Fv[v-gf-.ﭒz _+e*h*K{]J&u˂3QZKVoW$_7{_>4W)àN&з(u|ϳcc4&F.BvJCe@l3cuiL_00()`3C3pm=Ex{ yy&kRbALx=y3 :u6ȀlvAUpM-Jm& Nf6k2c "Gr}/F_{Uipx@J Ĥ0/3)"`p ;PI 3/\{;} ^?Ip=~T&BR(r2MMPXtf?0*`0B[[ZZZPTTQ@XCsY9rqRR0|ntC_fX5G'$0C[6Ds4g=ysH6:.3k`kim=5|ѽ_g+LXmy垵g5_@8z(k  O}z!!0zl>`P|nUTTBa.S_1+@Is*տ307L4.ʳ5N YVp`R8#yx:[BFOZ nû*<+QzL#w(Nv5.r ̷g(`p0pӈ3g1ߓX3TVVJ/^.c < @Kl&RN}/';Y/|7w CB|HS t(u>xࡧ$ Gl|s9ϯ*˯:uDE ܼ͵g1uEA~Hu,XJVI$f F4#( |霧۷#)) رcmZqF|R3g.͛7O ki ǁ!++F?>|M6 JހԄ0w\JɟDf,\܀!Ybe0piҤIR:vO@%}Mpu mJ+H013~^G|ba?ት_D#Gw|k-OAxIC W  :P 0 z  #>uߌ1aX`BdL"0^xr>`1I˪"ۉG!Y R$h/q| Sw< B. 3Ie22Fs0UX. va <*=ڽ{ގQ?.%n6M2Y6b &#<6fNeT *A00Ca"!w%z0 4v1$ Eb("* ,a˖-xꩧoKI1sx:$U+Waر5k  [nR߾}W\IHsA`,#09Fe) %34^ڸ]!7c VAf \jf4H`l<) i&7Γ3hDR ' ҚInblz$DYf5&X('b VY(|juF `>sqq1#%Rl- S&*Ĥ,_`# תi$sAk+LRinO 2p=U0=fЛd&fvbVPmۤeM;ۉxͭ0."Ga&idz JkXC#ֳ ^vM!''/}>!x@N<)}zm C .Ģc}3<WyŝwމSuXYt>3;< 6 GR9"%.>|8}Q)?P?F 08yW[@`P`C8U`1Xz*|:555x'0m4)3ܸaht׃-;m7/ B0*kd@` 0PXѢ ݃yefA 2`P#OPD =K&` 2@` hrI{=cbbbbbX11111C 3!f f f f fe-Ȼ9Tx.|L@0hP_bӉlv5k(Q:[A@`Ђ.   b}D>1+ a%v4{y3|؟VВ|] @:z&p@`V Bu`s@YI krX 1zb5EB\yT:]|'1B]8كk$--܏ЃwEO~nFPL#~^^ vgVg:ТvŰ,IesA- ])N`Rwu' (ZēXAspSmOdgZB<3R)8A G9wBT=@ӥݒM` 0n2ch;h{;H@@@@`GkvQ Ou9\ OUPz jh1LU9@]ZXǃ5At-fh8r۶f!##{C8z͍hii9(++AccO 0 \<;1\pI.߸虇o^ .?U).~ǗqNϽXTYhhh 0Nefh-+݇_ܵ߸*]Uop J{<l>*\ zpP+iJrk̠?PH(Qb*Q2D7;D)Rrϛ cMdf_R0 df~wvŞ9eYCm]=e .c*P;w5 u%#&>ML/x7>W ??ܾ ^3kjU3;X/طl' >4ф:NubJ W)tmвw5d`𼟦Z0n8 UU5l Wޗ+OE/GqS;Gc^\d}2~t{QדG_؎ WUw/p ʙsx^u0(Sдz @L39LE?`R~q 0)q N#CցځKq\T1z\+\Wǝ~!236b>(IyRbw;}# O&6(^sޜљv򻪅5`0c^tgL*((eK0oGXp/\~/| ><>,=Wn}?c\7߽u'f.؃ܜ,Ӫ܄-vr@`1e< -=lkI(e?kRLTo7_nmmEee%[Iu뤴r2p&^}5<0c{ؔZI ="v?m~(o>7̞k&i`jU(Kv0h_wAX ?S'NS|RMKCZZ*V%%!sv?But DZ{~A pv gGd L8mV?o6>I EjfЮg֌/^@AbHIIvZ$''ctz^yo&/_!338zj`n)L%M 2c,ζt>Qzm& ;o6YӢb94[XZUn8 \mٲEZUJJJ{n:'-fΜ̷Xz2P4$k l͹vW=_L;tJKKQ\\< (V2S,Y7o^@`E`[pQ~@` H20۷ۋm۶a֭oIC*7 0(,VC~~ܹS7(oR&1C EwfP`73}H`  C4pK@@@@E@@@@U8Z -Qt uyj]^%RtXW9%peŊ-X.Ҳ9mgXWzIY,}aew'!(_x 0 <7 cߟOyl)6nƄ{ ahպNh%0ƽC" UXq Yȥ kAF|oH/S)hM n.&0,c|! Wqu83nƮ)ˮ'#Kz4KS  3nj 0Ȅ}x 2V.גKҊ"\IhoSQU>Llkg`hrBASh>qb4/*΁P$`"$,v9ٵa '߅ŚH_r evS۴bڬQX#9 xaj!cAIۇɥ Gg@spl;=)y `4Sٲ9tqBhr) Zƫ+wc,38؋g1 g@lJ*FYy!vcǁ;S[ysa,^EVj'201g G<;GyC^`K02ae2Fxa ‡ٸovc^MO߈ GW2co\4-o1R9O޽Y67O b>"p^e0pfh^\Y0 Fw2_Kh`aeM|gc1xuVr`V#Q$Mqͣ o qBh:&ē3mxtv,AنbϬђ GJ1xOOb^vLHR0x .8*JܱYU&76lMwhywK`=s ̘Ka>|sp7c- P4 Ջ:zb|Qdcbr+оnEk([*0G5fIyQ` lm :PډGQxY%5HeX X0#<=z&9 ?7e웥ɻgŎ7Z `*fЇWI&-Z5a O`gMΠ f@m# +jWy[Jjw}q379 +ZX` ]x6g8٪#t|Dȋar;gNT55;Ҁ n@iC@qi92繶VOς}XiKMjZg8OO< o {76|ZډX]q U#+l-bźϐq#vA1c)JNdX( R[`hlnH]%|I.HW!F5Ո%H.k]Xc8 V_.ls^Te 9X↦VÜkƭB<凥PVLhXy`i)XׯƺЛ̐!2@1vM33333DZF{} vʊq[DfgճC$i$e{Jk ѴZzf 9mc?;21aή%H)Lam(*/@YE;`Kɢ56t-!Lާ5CW{j㾚}@p<&};F [ݨSGn=}e Y_ 0~n{+)un 2 ;9pO?6 q"nx)\k~q-,qE%t\;po៛agEgJ_3V3?-U4 _sz,BEkwy6*9?ߏ;K.zaW^k/o΢sCBb&?Xsh? ߏ>1#7/pݯ fY8w4\/+enA1HZWO7Ӂܯ>}Ν,,3hG\@j`Ad uu5HL\>}M]Kr.3~խXV/pטX)))k!$s>bPv }n~OpS{z{pU&h[31yI$9S>ƭzu% Z  f$sG;]U0%F=TRm~Fffh6kt Y;R[bwď: ?Lt\?qΟ`?ڧϕת˜#˸& ߊ"3 k %wn |DMߵx 4P?jBn~̕+K`().F]<]8!g￘}|o ڋ~3jm /%srV!)%s#3ciՠ+1N lV*O|_d?+`\sr g,IF~nn..^9s`71MG*;$sFؑ={qz)^R8|mw#aYi\?fP&$Y̘3`jb# i&lذk֬afԳ2/] z}i}}>~h$L+!"`8|06oތ ϺKJJPZZʘ`233=;w.ϟ)$;cj9A3ȑ#fK!<(}wĿJlEIxUqO 2l! ?"IgeeIՖ?@ Sl38𔟟/1FYY"f `Rv`gz|I g Rk{6e bӠ>^}s0{lk _ePIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/figures/dock-toolbar.png0000644000000000000000000000534314023111777021527 0ustar00rootrootPNG  IHDRk"׊bKGDC pHYs+ IDAThCypǙvm:t2N'LZ葤L$ 0&B 1!YƇC×,߷|.e߷ea[>߇NE p;io?}{u^B^^^,^:;;dlK۹MPk@ E@[_UF֐)2My!ؔ!hJ'fK(7/4W3eqGF@֊ b%J%ܞ .H p9]"$G+QRR" [fG3`>(|Wa2dR^dʙ|}" ?#- wC-ӉD+36{m]<#imm]n]ff&,ԓ@,::2"`ˈ199T)//׫@h/m? bݞ`3z+sDߧ?nAH:7 VbA x:=V&]j{01))͎f2cbc:L|oz#866?#:7 6G׃ SaT.Q%[4~B5A1D_,LJNfsybqO_G0"B|B$/$J{{{rW'q#r^nuDw,?TR ET䢻c|&$+pzų9RL lȼysbsׯ_OтsP?$ XFHV1 p {]]dD{KzP=;QAjm?M( sIwAH:7 VBpswK2=bsw}|223!DV?b "giiDr4#x ڂ{*??ޮWlvunAl:XUUDzю,OpVq?,#Dc" ;{{(q9op҅A FDA);T5;+\333ccF sb%t=XQQ1,N6}7?]N]~M%2XWIkIqbgJ-B!1!hX;>8y_h_Ѓ0~Q\S\[[ ߯ڊ>|?&&&FGGyv߀` Al[\oWR+'pcewEU3QU2Q=Ś,5iVqc7OĈAp"`? Yixxeddfh=Z ]g4yGbABn.\HJJR*OyYDew9YYi)̃H>i{8GIq ! 8`ꂏ=zT]] Who?FQT%9xjsss3.xf8/Ae \Go=MY"x]h<8G/..nooQX 97: oܥykA& GDDq}g]KU&T;wVO0>G Uq́ iw 'jJ%ܸ/D ~d'H^KbsL`"4P23c/=o}x \rw\p A7D:GD"y0L޽+}q NCs\* \+++}\^yȑ#І\9WT-DU|=[ x0//\{棛1u.K` +!kxq744o)tT*U(N^}5B V53LC\=O>$ zS[mJ\t CEk{i[ :{Uģ *ñ&%l.ON{<(FOo"TO yP7?Ҽ(bQE Jd̎p=B^x%9|v?^e7{`l@W.2NwKB4IڤHwyFSfl5'45R1Ε=Qqﳷ4G $l,LJ$ge< D{S]·Nm!:fg'owXmIu89ٸppY.*m>RSt;?=@E\qN6"}"3:]&W|ZC|2󗒱 4qW72O+5gIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/figures/edit-toolbar.png0000644000000000000000000000747714023111777021546 0ustar00rootrootPNG  IHDR8#7PLTE'#'#'$&$&$(&)(.-105487<7@6H3O/W)_$b eg&d7bCeMlQqMyI}H̀H΄I҈I׌IِKڑKٓLؕNטUכ[ԟb٧c۰g޵k޷ie]QD;0$!&2@NUWTLFA<742|0y-v)r#miggc_ZU S S TWZ] c)g/l7wO~`nuy{~{f{WvGq=o9n>rKz\gosvz¬Ȱʶͼߓ۝תհӵӽEgbKGDMh e pHYs+ IDAThC]PSgnnlQPQNۖ*teI파@  0I ' !$J$I%9w Pޱww pr_= )'R>{#HXܲbw2*]HD:]kx B|``@Eٟ#uu6l|IbPп 0,.ǒӫxDP"Z'$dt4%QUe+ 6+&w B,<ܳgΝ{ 8\6uWq.@TQorK4Gh?,H3䭺 {&I135+J?{񓧈'L\Z]uR13w $.->:!2G*c8[iiRSh&𲾆ŝk55rjI:e 0EWqҗ,E=rP]UU]A(΂ _ Ro@TPLRNh)VZjjjN{u_[[~ڮ\>%7g'q )qg4u8f.CI➐=M,o`alQ\wgqtD0\obTs"O2Gșbu`)gN|[kBc.y0,ag4{Mj -*ѣS#a2&ai:;;cAjo|~7Id` ۔@\X;_߬d s~4qxp{{va{{<'[;#-<ԦxIJ n*)J&&!wYGYiYSSq(5|6d3rrDw" ш=L 5V0gwu Aܣ ڃ 8-v"AO=0A\ao XGyiP 28OG?$9sYYYGTd2(:\䡨8_mvF=ޥ(w!nQz@\OGS3%oLN9lrd.-v0~,*u1sS'۱# d;&*dP$vjzڢת x 8삏#>إ8]ĵG?xh/uВ6E_IAD/:~~ e/-ĉ'OdIOOg'"s2X=J,'5H:`\ћZ1xBrqտ-NEqm5$u&q,Va>:z06Enl𖟟nkTq2NSD,DPԉѭRk:FaUks؟<A2q Zggnbx G1Ts7-JM7;"lnpjJtQͳLX/ҼcGId(һL,F2eU1ݥh4`?ā44EWviYQQy A\떖Ȏ1+1f \#SUwGu{oU^s΁l5M7&BCyɏ-B@$b¡%,FJs` ́W?BePM]82=!Q<$/2Zs|K@onŭ(m͛61N͐o)l~^ Vo鉛 <.iF{$jY+W~h2[Rlٻ/s8l&,$tg~8NaYVTq/HąPɵTC|9%5}y 0bSH,#M M3֛7oJC>{$ԩ!˭Ot=cв(8~Zq~LL"QH 87*Ji~HA/9Ül NA券_),r1UuP粗e%/]\RK.Eą4hro o⎋577a|q,dqM]yraQqyERoZ$q`n28c {WĞ^ܽ7vz}מʶ]/=O;GX/>: =تu&k;la7 xc7Ͽ̶מꏟ}GϼwO7OoP+?ea%H6x]>Nwo$xa%s;uhCj|a XF'>/26l%h=;`ցmUl؁zv$xhyc'v-/쭍Ͽ|7}g07oы=?yq/yKm{m~ܫ?z ʶ~xvm/s۹-0w +۞xnKm~/=l>kO|'[oէ{ljWWW3ݿ/:耾^{vx}ێן؎6ͰBaNNNUUU[[SrƸ]+yUy_Ǘ>U> D|Ouw߮~WK/\ryoV־Y}*kxV?voV>z}G?dѣٵٵՙ̭}6ڗ^zoW}U`+k߭~vi7K_-}5>7ݙl2//|p񫹥痿Yea%hG=tXZfq녵WC|̢ݝv(e`.7>oWY^A,= <XjC[-WK _<,T.|63_ά|p ̬};7 ,~"ݨl}t0j+ ЎP;p~Xzuk|c ڣo>y?<>'ecV?vo?fӯ>fϾ]Ͼ[; Ƨ?">g;#5=}+(*k]kR:uvA*r_ǗwIR CYYS`gw=[TSug݁]ustޱ>m4wZoZn|MiDF[ 77i@eTnBެjnlFUU@u**ʁkeedi)d((BdqDaxAX~h^N<2d2F& WR;_XVƩV SPF1S`ܔ?Ϗty\4.dгHLsA);`d0]Iz9VuJ. Pn';fYBKDnV ð"b͠@)BE-Dn?{yQZ݁˕o' 8|)3[S:/]x t1~Hj+̣*˨22(p7&3 eT}/AיmI4]4$ijj |IzEۑ%4c LyHfQu42+ 1>"H+{2O8>6p$ŃG~*$ R]Lt1@H"e@ $.uXdf+B$j LPȭTr+ Imtb+L7R2șu$\= @$6HMJ J[v OmQ3)M ZK&G♝DvO8B7CaI,-3"DW&L ^6DM1K%?kY[BLæGƁsTCd21>&ItC-kcmTa4i<7nLj}^hx'P^i9i=A>OKagpD&2)L!tN:A4~?GPX$fq1TLŕ_(^x)=BFyRyZyvcq:j GLe?C'i|TT>Wr#TyE-R_6`tnT;W#duyc wTĴT Ciz[+(;NSZStQcѰt<|2l"|(e~@TLVLb (*Fˆe1}頺8(+ \"Udy%>qIPU֗E-ŠxqE)-rf? ĵkצV'LL//mw'VƮNLM5VG7n?1T[7W&n.\C,X/Ml0y})+oXj2=|V{ao |oBo|orPbZuUiw'ݥ%t?Bu"6)zUjwJwjwbVd\U٪l3v,/zogE|&ӋoXT]4:Utt6%u Hvză?M}±󀎻Џ ZnҒI[}y'l44N76`ƨ4wBH7m=UY<]QqZyuDi Ru MN#[fdc&N7TdrHtxtN3]OeVS85TA3KUnѯ59#r1o m[4yuNPe8٭tK=\7S 9+d]N6|Ak'it4ZEmEmA*B1./2401>*FA:U؊C&+s2$W}WI%8[3?O*urgݗ9b/|t1qXnUbVk e]^kM6_ԞTTW}.9.=zǨzmpӍi@`J,qa 8G0+DJ@ս,)NRsK\l@@FΖn[ >af[) l6Bu m[hFJF=aF$l2&lJa-l(7*l!FfJ|t& P"SBIa~3Ro,~gk 7)abcacH4H|Y%?h;f=v@rKM]l{("~]$!1^ⱰFF]6 &֦*S2˒Ӌ.\{>#?PrZuYzZ}Rދ:)p8d 3>.jW~O? ]'ҀA#9>GZE^iwdf@iRvU:Mkk.mWG ERPD.rd^d~DeOBܲK鰱$- +7yXY`E~yqH[83$? ow{:wOc OO7s{Kz#d7&=.[[moծ [c^WdEdy %%㘡Nj@ㅈx=eZMHINsZF2L$2ȼFjOnP rG dF طC&l=I|a' CI>?Q-NՖiӴ)d|aBhr.i DC'h<|SHl&-GŽAu | 8;Ȓ{G #|_{0wKyIſa+NS/"Edk"BwlB6؛kjNk?TQVPCRQA͗~ r= lcaZ7(ӄ$JPKQKdp4n; V賈‘艜AF7J&,R@| 'Fb aS([lHظ*v)v=@ 6D¦abz+"q@v*OBz0m{ib/E%I|8?]" \ϪB'j ƁߚC4~a|k 6Ne&l={hSb _>B/H%0rv˾K{[@:MO876 li[aȍ鄚+iE_HMJKTeԝ|,ʾ.ImTC"SDf DDVXJY$I2*I)ur~Tvrg]7 6Tbxfڎ44 l zyO{Jʬ+s)J?ԝն" ك"X&lՆ!^+Z+ 0li[) N;߁-ca9 ! J*$T AaȌVLk a a#ZĖ&6%QK̨#ꉄz6LBFoDޝ H؛"a.Mz(7Q RB4tB2)3SoMwMC6>!lF@1XBJKuO8j=xmBۯpD"J3zтcꬨʴNOFV(lJM-i6¦6ҦV*Cir,8yhR2.gO m炰76 y㹥cqca ef7؏7ez34M$yAu^H_0`*.-(gWT|=b|lidl)Q000_ /ĆCԡ%0`JoWV& v/]_ZO- $ڜљљљg3y)'BS麬u{u@e2Wk^j5ƕJ~Zeob> Ywz`H;{XƴooV$M7oP?U- 71i8XuT}#1T]U>YQ6Q^:VV2ZRISqB]tDWeJϕ_( QGPnd!e{ޜ)x ٚA`i&2jh!sT^']ÒȔ~ [ $A1$ua= NFf6NjQ&ZRz-1zBs ljs&@af"aSxH'Mu +uO<|Ǥ~U]M/3!~a1pJ IDATբ)Z:-쁰.A9UQd, \j"]{eJٽJEJ٫Vi}UZիT)vޡ0"; ksXVxV Pnje9c¸>oH3(F]&T})Ǝ9&7+r!/d.)  JcQ$NC3l$6; ' 3" Egð\4>z}|ll>26786; : EnD EG<{\;Y*\ǘ.GxPyX)UϕK %bBlXâeT/U̖*fJKŭōbdZjD}u_@Gžna\faכ/ a_>az[+xZKdsxsxsDs$vۍvMktgdkPT48d^G#ht)[DQb4 .D<&``6  mCԆ@i9{4+~|}tk"UCnjlP7Q_;^W;V[=RԌpfnz}-lI넭ko@yz*S`k$XaA o0?g /;d,,sb Y!eΎ rGrs93kD{ٜ. gxJM&|Ż{*KؗR}(8,zi^"ہ Sr!$lTmw%YS{V]zGi5fTB3 ۊwՕ'Ѩ M5!WI8yV:-5DMDf3Ӷ a0acŽ=o 9h'(6 aIT"]nk5WfpF ;k[Eg am lsPyN*%ijY)KLG1u9,SQ~ 7#FoH aGFpSC l HC rRluqJ L$3d3&>„͖l ۽.l#10]Y NENvFQ<ܠ)?90S4_E.U$}{u7v{]igwM;oٝ[Fxy]'p^V1>w\a\cvX{t7Oz0?d-,X`2[p-=3?ŻŻŽg<f欙9cfdQI3z64gaZX3 ܶoY7̬)3k7nj87lo9*잻_Ǘ?6bHT8T?X7\ǚ&['گ#az![;8,jԠ  =<<GVF}9>ZZǢs\,:G#H!vI5vgqzvkLxuPUEl,\^>XQ(UT WUTkNߨX[m ^:55+%l]Z/)!Osfom2zA0hzCuu.֭y 2["YٱaHՐC&CԠ +sy=LJm"2tBQ8^M6 l@6eXXH꬈Y|S1uAUSTUj6QT@DՑ5DnW/IReFJ0 N8v14(2Ðؐv4zvpZM>>Q}$#BiJ%zW pФ^"(L\wmJ[eZ؀%lbV$;E^e fO$l4m&1H2D ۍ%0Jغ a2oSl+m%3)L+Jz;N&.oh&*'CF®&dT2333Lrc&á5iqZ혭 8 =wwj~:w{}|äѿx:m _AWǘ/!lðL?I4Qr'`IB4r%g2{uJz^'eF!+cXƸ1e`00nvA}<Г-dO%Bxh1 ພr]G#Oh#Zr\KiCjzT͈7{>?bnAםa[۱x 5a &Z[ WDjk ۦ;ntnCl X0(ꄧGWGVWa.,, /ć燇ffL,6"sHeAoI8{ihO8^78{]x049}~v*^], J%ޢ|Oa_wCeʪꉚku@۷nZU_"5&l(+#[a!R[&Y0jt*F٭VtJYw)JMS]Z`̓fsԒ5TF*"7ogv1XNL#RiH-4Qܦ25VY" C]ckteI^E58~5WG69N@a֒U$F]fpK:loM3)`-G0O+=Ul;/~l:B;H=@{X4"ݚs"'S*"M9ltN"cPw3D,g/6!q /Z{PY-EK!f;>\ak}g5QL[)9lUxBh{p]= n'& TVi14z;FC׊Cn)z2 ΨȬJϬJUj&5Woё l>JdN?Od;p Ujero18yܷuߕyQ~mo|` 3u 1!3 ChB?&EgQrkQ]2lvO|/\ܛ>Ñvx&3 g9l/ a;K@RσSΥ]]$W__f6^f\䵝twQ9hgusPq!t.JA$4r66IԌrҕlC)MIM uq5*ObwO$ 2"2JobqRHA¶ [5 )4 H>:x@Q)RDjDj<2-j]a .-!END?l(5مYlLEH9Pyغp nʋ,1~+xq1vu "gM~EvP;`ga ;8._<{Mz'{&':;;ڬc-cm Fֱ mZ7ؽq Z˩3<ܰ{nzw{:=SV *:{onk{@sG#jlv݋s9 '䈂2UQ TԤ*M5qZE"U=@qOx3w_ŸReTe^㊌QyƐ<>8:0Ƈfcc@A,0[G"NSV=m)}={!dFۦm} Oփ+ˑ=Ey*26^hnm(w%Im}g.c)|8p:&+C$88HVNg L:6}Z; ;|B[|_C2ݠ xfAWeAƍ@–B l:k\BKqp8)GuK.!9zmt^I&a]1s8r6Ʋ5E3զXf+/?;NC:8炠NT8Z>YvP6-9EX~{rl]~mRץtUEXfJ*Qx+itGcg 9}\>ޓD9=`8n3isT ,Abۨ]VΖr%OQ&PU:-W~2RpKb}_Wۑ {+|ѷROxh>{#G}#tu]G^w~n7;v[Sn>awvkBض ٺF[zl] ./HEY\^vLu4 7)JsR(6 JAx"a+M#J0KIJϳOҭǨmG-I-')mIdfg:Fф͓ʠ {X GO9|S4]h&[]w9䨪}e!eTUVPUQ7^,]<=Xa+ [FŕqD=l!v8Dj(߂.Іl-u`[ dk>qpB҄^ę6TMBe::: S)RXO 58\U:2-<5<۽*rvD48{#7f`8aHlL<6ed]^$ຎwM:u k/]r^=n{">{ֻWߧlm0j#Dcia1F"\Y. 84qA`jwB\h;@(l,qLy/E䥡wy[~9{s&NRO+2/R ;)%|ZĪ+j] jJ]v\w'zAgtޏ Ic!pJ?\RRNA: a 8! rJb.1cDqs '*JBVAJzr]X:;?tgv^qrM|Ҭ6'lDCŠ aRUdBI_r~8Áe]`SmM m3{1KbS[l Mj[ b&gBi+-5nػ=XٹO=]^| |-rW69oޠE}hK "~:p?Ӿ}?{k+{_mz7ੁgvg"acoM$섭뭍# 5Ѻʁ*uvw!kWs+<*]-vOX{ʥud[QaBvlx ɵ.Uk=zmrer8627~މ NGna;Fac3uac3=h&n'6!^7hl@WG*![Cز1U5M:UFYQkUZumr gF+F&kjj\_T5Ф5kPu9k%eEÅ|?K0(5vIʫ I,V̤0ie,F%Y4mbMp>6h$|ڈN9BaVGOפ૮!d2 D^;]ÖjX;6S \4 IDAT70Gv2}H\i7CdIz<*RF.O'Ud+3r (yh5$f=Lv2evEń=T Uly&+,ZdabA|~\{cSTFg ۆL+~*(Մe6 l360Դ^4$kΨ?VUT+NjA-W4`k"[G$??NI;~Ez%mc?N Ew&ȜT81n? c6$̍w 1ytn' ~7gcl0= vEv*Di":&YNU5 >6'3TrB錮:uڱjǻ]{I}A{D{_@81.q(qHl=,apj"[| [lO2ݕDrK9ڽ/=J׻vLwjOb8`!$PgCua aSvĐxԂ .f^&TjR)Z} 1r~Qԕ$9ryOB?q ~d|xTd3CHlٹ.Ank(ie(dƟ5Θ@ϸ3F7<}ΌO"^%˩:JD!Lm{D I"ak\+Oh=G[#aC5l08&f *rb.o1SyScDF3蟔 #R?^I8ȶc##cc lFYvO/S栩\Ojjr1aG 7]6RX>Z l;L!SZ% s@}oAߍٺGg^GM>5|/գd(l,8[g :HKb` X"V^ӿWXӰͦ}oz΃ozݾûw~#r7>t9yl~>y4z街"^8RKC//ҵ}ݼoO{o6}kVa*@7[-e"g)'KѰ]<·}zDAƗd+IKyD,a , bntMNL`/:a yR+ r GmC輚p6*J$d@ة*2\l"; H L)@aנm)1>,E Ou8-dFVA*J*O#*ArmWH$jD3=lX Mq{Fqy_=9;iwgwaƶe+DY@J9u#:F9@#gf%[|iU@R3x=S, .t~Sa5-l\r!$w_*W9GsF^~1{X ɋL-_(HA6,YJi%l–lp6l/`L%%5LmD[uԤΎ)tl$mp .RC)g2Fenw8K+a_JR;GtP 6Db6(.*gwf偰!a]|t6vOC6w C-OؔX3 |$ ;=~pS0s*3pv`y%rٖrP' lo3gYؒ-/vi┥8[uu}IR8 @ [:" 7-Wjc\m,\WtHTWtJCѵffn'S2MvS +*So=۰ <wQ.Զwl v !0f<(*g5$NTTVF@(ol]I,} Dav¾ȶaZOMQ8Fɢ̩ٖs|iaPQsM.^ِimFa ۱Mu݄Z7s1+ 쀪*l [Y%hyyf|\m3U VMUUmAVMlɛD °_Waï`䍧&7vzs?*SS?}so~{#ք#[⧾?ةovw9Μ[ɿ:w'7.)ar93@;q; 'lm'jƦ=Bz;;[c퍁g]t~lU6%,*y 6'UUPclKbGJqvW]^h[=݊Ӌ"ͫX^lMUFjLr]'WK$^7q:fA Yd40[Y..P$f*F"ìZTa_*v .,(ag^+,*bqDSl*X(٘ LcԘSU&W%s`/atdED$gwt EA&wLÑA`ڐߢ0SHe92%PB ?>ϴWꉣc/f1|ȱܱ ')ıf f ĮRlx]q1k\`_qn̎JM!1gY;Co+@sCʁ%j-HՄpr:^RN9!mk5å/,3Vv#lM3VuQ–a<-68l8Y:-*.Dgvewdb}8A*;3B66cD!6SI۰3YLۥ{ofMAB6ʙ|zs^鿨 \և"٦h>?<3'ҲyقŒP.ake-  Y H]icfylVzfv[ v]/X$fSPh6wXor~ g'}v=8 ?_x&tgI\܅]8>wǺ mў;~b #O>=t~d=g&t̳cgyx@$aO>*lCCs}ѮVV'Ξy{~tg fqEaGGMėI^[# f| GyG<{ꗏ\m0 FA،ppf8x;*Sc(A>|}k=nx]5Sk =:eu(j^?!U]o5&W:W;;HQ&^UZ+- u5pcVt1h@x k jLFKI1~hBRj+<*_ q~֨5hb:MT ~-ͰVfTc4`(?//7?7MeCb_6TPyD1"\J\d o՟_ܓav2BFO5䎕bW|Hd𒒼>k3aOJvRh2qicNHl$grHQvioѼWX %s%Ůww3 M̙™w J9::<(2U ƚE6y2:^Ệ*v.WKd|'Ks\`ϲm8s9`&CW5^> 5}uT/Kj-mK _x̻+p;Te ̄mTcG`G]Plw6ֻ&Z/|g؈5:kUM&ahrhf4Mvu]dS6XMvP3a3UefSm N~OF2~k','f^s/@kW_??|"rt!^GO={.\8Esԗ}̓}̙}ܑ=U[SN 9'ݕ/?yxP7ha)% >:ܿ8Нmw6{[e>}yEYL56gbeҲiaІ=^hi҆oxȉǫ+养ɹD#/e9" ^#GޠUԶ Lo~݀/%lr2ucz${xg{wku]5 AգEawAҥ!aU:ݨvVWM- mkTC[[WZq~vz<\iT6tL.r%\FCIA-<[UT70,N?_0.rRSk:]hzMLja4 z<mcLg ffg3sXCpeY@>cd>| {Avz"q!=eJω!vr6݂O]`9ʹ\82_"P ,Ckbݺl>ek0&dǙPHq/ z.s7Yz }X> 2ueX3k-jj\iFa׵,խOz@WuGx`ل;x=-M&_{l]H=^\]{w[;|͝N_}W@<坞wyUmuԷl Ӎ uc3՚x|^rvu> p΅xgcggEgDWW﬈^$|sIxjQs`AprNpr^p29θXKKι7_|.6cP@lo[^~Zy)SI~N:0 {&GdGuJK8ze {пͰ^:~xYqc4X=r[IJvw׿'l-le8!P?{vmak>8[ѭw.YQ{0aM rgU ѶA;iUO U:Xa77,7%kjfk•zQiHF~1KP)l(Σ]]SU[][ f43@>`L$ Oi1vV1*RuvF1[0Q0Q0Q4)ʃ+RRӝRCLgRVJ=5la'Lo pǙbD`pv^S T!Lth"l%l*ƕN|H܎^ГYԛ {05]M\NYUR;Njkꙓ*[JYܞ#Ga<oOu(U TܒR7*\,u-I=RU"8Nc&ѐԉG?}n_Rc9S¶h涱ߘ|[h!L M Ulvv :^$Z+ơp/Є8`ǐ^[$)|L A1θQVĴճغ~=_ݔi^a/հ+?;i u{qI6vC{3tQDz(b l> }hO_/m돴G"M7­}PGo't۝m3%Gp/]l4/ ʳ#G IDATʜ*gV^Tg-iVYk5mƦrmKGqDlh/oh/k.k kKŤJBq-Ȉ3C,"/,6/aoMn$azy ֥bMhU_+`J\v@b[޴ڶg7\;PH~,`vLթ #oy>ֿyAG+Kǵ8wga6^yqs( z?%loDAM6uvc}M+k5tḿ~v)BLyB?b U>Gz5"ѨalUTk 1vr[J;@F[6AՍ`ƕƚjv*׹ JZ2&8|vQcq>(0 0dt1&a+*UH51bZUrI@"n6(0s ' G3 gfaa -%<9 Ȥp kjQ\F=B?Ɩ`(#q%6|s)g1-oN2STTavVC\9 ~(fe9.\Bw˔9@}:^g1n_(_{y97#)H~+^8I-6{:p5-l3=c ]jC6Q"#dtR [0YL .48l- c6Kw-vzzzeƱgBW͔XGk"B]T yNA$5[O9LI>zid)3%~W( <9|>5ؚE8x}HN2  ;<g_tA(lp&olYN+o)m7ַ3 E-Cnϗ;J7[hbmna@X ALU u6ⷴᔪJh6 vj;NL~psi I >΍R!P3$aWs=+4ŦŔs l-NDOHl@G -Fy h٦j|M ADbcUyLSU'ue(JvBUS8{jw$q#c%j)pm#,_!BHtueu xBX",=L=\X{rQ] ﯬ[Y|gyߚߴlzw=gz;zo9n;=ҝ롛|8;;;ۀ;Z{ֻ;6ඣLM{7q ŧ{۫ԧ%응Qu8acxj7VOUUUWWKN}+ݟ]ܘ7\[^H|@f$0h sGaRfoFvbHp=_ wxV|5wwsqvûn,7-Ԕ)8{{OAmsMіzcRe3k fPsA@'LFKYSSjh7$[[[W0RStƧa4QƺDME*׺ rZ<& =vvaSq~=#(lSWP\TdtaD6%ʠFѢceT*e!6(s@c F2 9B4S2ÑxJj8;Nu`gDQ |c 7H.Qn>hrF)/D[KQ)[nMBiD? BúObIxke2ہpW,'_[A*$R6A]joJ4F5eT|-^Q[8oQ&I  H\1M!^ &1ٰDpB (a5\]ܟa0HT)%#doO%"j"ngQ,p03E=ca#ل=?S t2 T0|"| 9/od~ ѸTÇ !,ȒGKѬ>t4 2G [bӵM!v^ph)g5g~a/ltv:u^5؂=3|7rU0vE<.~W6}ZKrAf*rGҍ '"8+>#t@T}:wKz>uIkA>!lA.ժx͇>1 1%UU+̆ ܕm6>6qY[ oq)VjJ#RCT ǔ+ʸ*nIjia/T6.T5g7-V,֌n/OZot/q]"p|/gc?;aN}s~ }g!{3ӷ3wgg~/WW?\__|oߺԷ.4o?7pp~Ǚ߀w_yy[~[Sqƃ50U+a/ vuĺ[X+झ]9U[cmijr;=sC+cSmu^ j&͡ -&?Zm'\d.ҹ{۳N$|kAJm^ g{<7[m6UnܴғSzg6쥞x[C]_n6M1~Ԥ6hkA7n[g*+<؀]ihL4/[V O5ښNՍƺub}Bm\uy*=Qsz֒&&D꼆"P5,`bF=Qve^"VGQhJQeX,Yـږ%zZ3&?1`uHEQ 1Fmkzl2y2[#enX"_>ֈzUjo\!)B R"u#Δ@'PAqINaB?+>UԻf8N`>Fv]!ۂF[3 -lp!qv 2iܹdT.⦄ a ӉG]Bl\$c"<{`;%n6[U!Psd! Xe exr|54efj/k.ttFU, nAG1eِ)mSit8?9gerG2IcUe%E4,/N_)\+e38[ ;>rؓH}Y;NֶL;޿J2Ƙ.Cu^ׁ=Wh@D?¥Z!ͪ!aWDZ+i^WA@m鴽h@[cPZ9MyB]P*58 _9Tj+gU Cu®+E  ݼX33_ݼCsn|ܣCk}w>VR+Ԗ;_~۸y𛻄{~Ms_}?_-_}~>yw{ȝ{߾ |v/nōo} _\ 򭛰nC׹wC[(Dž#Wz8 ;; g7썠GsXY؜ڶخ7Qqv<%3|?M N#@>Dv}AN?;FK:Ά!.BT_瓪oZռRl-uq%Nj598[ %l8R6> B6:h'̍Kl[ df#9lxp"K659=mٵngn9<;^ж^ 5aM; 'yDޏEECw"!n{1+.`fiGþo;N~cvaNzm=Bz`s7{Vzۓ]sMV JGMl0!FKZnUeN жnknZhi^B[75Pm _FU(U/Ձu5*s6k}S[jQ d>nqat],FW c38awB RG^WC*eDjQ BBa}<*bZ &3rG _뿚s5\  DmltW E`_5^I!bR*z947Fz֔MEBOlMrMri6j[(0op5WpOwS¦JH:p?7ͣo\&O"l]+"cFm@BjM)t=#xT6dnB6m ~9V/)&ؚo-X4()UJ1[`6 qSl'΢X.gP[H?u›E0=Yޑ RDp > @ [R ϰDv6܋,TFgF̡\`N@6;` is#쭔zzIug\GO+o5uD;" 0P/ð3k鎁{}s C=9ž8{` 9{v-lt:.:zn阹tv@z{A?' #2C r]v<-̆ӾVV`nYӫ6ˆݺinۭ;i`:}:y}l=;15c l=DZ!^{; d'u*O]Y].*,wVW!XWjk8eŖ唭I58ezu#zSu"5)_.DaGڠQjM! '$1wDkG1>wB:>l- (e!"#*Y-€r<%ŮB=В7q5wr圾9s;flC0],J\OimI*zQޠm-TuR&%%H,#=Q!V&u쉽jvv-[Ĩm47 ^%Ev>q~ڎ|)ɰ"(!P P3mU>:P۸WUNCMm@HBHgVS*1S)NmS&Tg$MR]E @zNW֖ǵ1mE8;UYvh68{{cnjZZ5Y׺X߶::v38}F'M;{bfwtUM3pbhǸ$SN9h{/gn6d awFHh7 D[-=vv*a7(a%_12F<ػ8ڞMѽ[VFF6FGǶ'w&'w[@m܎[.mu }LJ^-quAtnX7uuj\LN\ܜܶ;S;j:Xm n Mכ}D@FjorwbWBGlkC6P믯UꪼUQᆺXclS|sSii$4ҝ˰Ś:P5lNU5I| mJTf]ب ^ܥ9\l i)JB#*ڤ"glS`kYXEleDp}Y(,Le]w)RV׊pތ.8R,a=Dr6wzJQLTO@B;NlT5)Ie)AK)<p ;PXW~(5k 9r01BbB yR d#l@d'Rv:}JVf:d\S+0 mP q~X6ռ1QO$'m$vP{/p(o?rmHېtc6՞M7iI.ƴmapI}& ¡*MV ]`827W+}O`P%x!ӓ#=p**_ j&!Ol2Q6INnv𞧷{)Uc{~rFgS!= uE[;#- f04@ظ"7u;l }dPJ$^ξ9{}x`Gy/- {a hᡍy<2dt{|lgrl;=ڞnaܰ[p'`ဍuej2aX__[[][]ۘ@&~DaQZմ݀׽׵ӱݖhooJ6ĚMu@ y6Xh`ݸЌ^h[uoXlMekIy_\ IDATlM*[2U2CԤ 4AүSx5rZRJ] 2)p)vˤ^/AJbkPQJr ևK~>.q13켉Y2{/dt]lvCvOVs !rA2gKp㖺RiۇѰmj&Z%Zև%H/)4z/ mpvt/jj6jw1J؁ zsinh_F:YKuF.ts/ݰ¥T5*]H%:O(^bt0dj0WB%1; 솶o U^wR(lP>gJԧވGMh.!&}*$RI0?TgNK z o;u]U"q"23q?e2hJ<~+&j :lURN5v'H? FKQ>b$"Igk:a/®Lbp|V[Ә#*SXi SHe5< d8VWP jٵ`Dy,PQhhHT6$q6ӚZ4B}[=ma{m=mtgmQ >lj(dSQ{={pv\Gw5Ș3:XPvb8 {gxotc;| a\ )Vֆp0FA;㻓)O^G!]ǷƷ&7Aaa nedaUT5^ZXXn[서<4N@-| 1QthXi_!Xc=]WP[PST/Tae8z0a&]̨a*U4ZW|HO)0B`h[CEiaK IH&J~1cXŎ"[^TVլ2/\8z>|vk8@.{;= a6:WxJ%ZT-6EPwqu38b-I,\Ч:Jۈ(Lɡ&>7Vj6mk4t (2n|e% ~xO8vANN SÛ9T<999y6 ӁgKV$xlD#!"Gr8^@&Εdx8"#$tLM 2A*W~'Rzu_b=M+cQ6DbOT8l3UNG͘_+d%=PjPDlJؼ]15'4Q _4n]2_ 7!Np]jޮ⦪*j*\V. WE+b DMD:m=БllO6rc3ԹL]iCVSƜQ6G6ښ7чI7$d")aC=D؝ u mk ԴZ_jڃ$j݉zODŽ=Lٚbst߸|%|۹G\&nWw.glC O)<>>+W?^XYS$?d‡yj[jۓ#~0J<,s @}q{aX-n#RI[Gg_x{~2r;RYd?x%|=?4q~/O#%r'O|N|c_$>&&Q,<čIЧ^<|~Y>N. ݛο? ['[sa`C |W> <$(^y289{N4Iԉ_:WK_q |_8ALa>>ypMdd;F=r f|/g;~رkG]=z 1G[އr:|W_{껸|so?̏/!\~bqJyDtS([o%]%]%]_wA_*llNK ;]%]%]*DǷ'vha[i8NtItItKJC'wPJ l}3-tItItIo.ia...CEINtItItaaONtItIt % };%CNw:KtItItfaO^6=뱝T؍tNtItItʣ¾~`6(tNtItItJj=,)[鄝...MW_ {g8,Sc ɑ+ʦ?&~KKKkW_xjAaO=O,%-tItIt)Ǯao [=qcMBo;TmNKK[-.x;#q'oLw'!dGa'vKqa_Z8{8L'6iaKKcW@ػ(~ٿ_tF'lR1>8iaKK%.xz u;-?dNtIt#./_;zѭC&oZ&o`߯]GK>W{vs7TNtItI?jֱ[>;4 8;J@ /0fgQ"4o1 S;(:,=a[JV6<"_|]a,OZU`w!S?`Yxթ{f3ꪚN4z ljT5M.}jQm3f3VZ}Ma#e¦dy ^+V<N<S(w=ըګt&J콴?Ž< `Vi-W݌s}jڤ:n:q|%z8 MPү/uU7Ž݀` z8#Z#l;1#s$aax`lkv  c(S{3¾bk;1$*/K[_گľK(C;jaٓW|Iߺ5VY+Q4@ Ĩb]%aWt]XqFEwŤkJUI}K64*{*aÃg=캸? FWz>JTT(Cp7aaYqM߾JOH$$Q[]u*eaHA% @@ Tt_R`ş®?D !l-='U&ѣ߹jOjáz)Raυ^؏̙Tc5j>}.OI@(A؁IUOk>c FWz!l 6Q$}i! ;рYuI|Vw#=i Ҩ˫8 M8 ӹVU$HnPA؟Ѩ]Vƹ <a  pOcnJ4s!l p[*lG?!{F  p[( 轪 hciC@7®8pakr0: aI5})HU}+vGHC@7NmWR@K;vjLJ# a <{:&ck% >ޘr\dc퉺֎Q*.XA-a7ʑB#lOa[ vUjg|H43DS!lO@ aEؓ$aJ"3ғξ DQz vaG-#DؽU)uRgwRZ=vaG-xIةgבMn>JBvQH011)>f>n%[[ĉO5;٤O SS@ aIصUiuJK3 F;ށ# ai]-pZF}9]S uv0i6=H6oY Ջ [$u8rAg8-E-}zZ2#6 ž- #R(&쌖gZ+aKV}_6v\`g ݂a?@Mm}>E- na \[@H < NvJg̐Brvtm1%F}ݶ}; @^[ YkU[Ke}?!l3m F߿RRS` Y /J~?/s z _ka.4$Ğv" Y֤NM7 ;TV l@&ww:}tggWW"qdFgWYI6ُILfw]dJe?NGT;v =ST%$aSvv,)8d`;SEd0־wGg-灯-oA66=^V?T;v ;Ig l@޳gOEEEJ{pʶO2?wl}rc9dI`+OG0LSf a r t5Da_-Dyj)sdO(aJqMk C-Ta>JE؃ڲr2DV؅ii7?y;v?+?ylߑdM66rn۷HN IDATAv.5x&F S|0ev(.E񘌜Zf+S0J&Kqiii֒g mA4v }TYUG>v: <)2I@hDVϺzzzKp eϧG+YNҧMbPӚ,&Mgfsә2(2:eqSIuUҫҏW:v{[ l"+)Dd0 d***K)qg:G۬L"GmA®&>~ĉD7Sa(چD\#8{lJbϞ=~4iߢ{#=OvP3 h{`%CFZ!lxۂpv }zNԜ:YsT wIGu@A-xj3<]e@vIgAmC-{kҎ!D<y;B7ž6t},9%aVUg; IHQa{Nk|~p `" i3Hd6 \5Hs6 <4ށ#< 9:WTCEۇZ!l@ a^N{;!:!.ׇ:(,=a;6 |݂'a7d5g7*Q`vyΒΒ6=vaG-xvvCABu-Ee?5a@ a^?`3vclܦC7Qa*;Uz^vivmzn0))Žw l@1vbyŃD_W}Bw:}y.@v ߖXD, /vS8rv>O.F;I&#<{$lb낦r~RKRgw&lߒAx8zDaEؓZۉ (3;sAK=;}6wo3v\`ghEݻmvdۿG-xvk{QSYQCW/SaW^TO¶33 FG|vKIM }2d$+[E 3NK+W7\>'B0o9ǖ ̕w>DnډKH;r Kj\EhKSW6Fkӧ;;2s >K=N";$esju,E2cna30wUXRnqK0)]xɯxHm茡0 Vl}5MWWUTI$៰GF؏`7Oatk[#ǎ.8SX~2l" lve/0/ 2Ẇ ׮$o#J9*%awC?mOS+=w)XYZ\rl" lv;rmJ<0my%#Ksb6k,!%i棋4z&+szd!bWkv ݴ+- )U2X7ؖ[rVϒ@~`ƤΡ .t\T[ JJ' xa:\M`EY~WmvMfn:guz_lCgw7à:ZNN5ApJYvdJ'kleѡo;n̩݂{aO5kbK]Hׇo*+腰a;~ ݻ+++JJ]Pl=00088B66Z:VO7;{Y!7-!oJ]y! [Vv)Uo)$C4{Vӱ6vv I]*/Ut ¾MWk䨮C#Jb)Դ΂¢ں:ra7DjX#fj  nhبE%)UP8%q]O Jbj@--m 5q7뱬;:TZ؜Z@C-Á{z*$qfaK{nDy YWOOo]}v[[WWw? ҩffS6Pn2"c,MTGik%N&_ׯ_/*.hm۷ %~ F-*li qCΊMy+7z`u֑{dy[× E=m X3u^9yI&DVd6ن\ FYkQ3Ee1fa7ed곰w^Jjj0! %Y{%0oxEUaNS*OٺG+x v ![uv*g/ߐ|cʍ[aUv~;lypߗҋ`Md($?ua2fˌMvύd'Gg[7)l2~w׮ӧOwvve|zDv^agWYI6ُmf;n}+FKNx v ےAl^FV@؞}ՄYИLlAYbU|'6PXSq5YǖCڤblw] lNopv vvƒ̥K,ka*-G}ͭ<3'\"z?*1UTTv=Nao۾Ӕc%J] VV744%H]wyާ7zaD陜9`zZun2A1Gy̱9a]I(nօ߰&c1K4g"1B\<#wRwNK?uReMm=Quww7? ʫʨ0pNaX1P-5Ie}WbV;j}`ml[A n!TaKlWg( {ڬ%9M{BcwWVVz```ppl" lvep;];w!'v6&fkEYN  {,l9V}[rLvԉ#auttՑ&fWɨ{LqkI4-p+* ;w-j疟N3wܩLaAa/"l94B?M^şuQo#`,J$<oD/8XuR?=3 \B^ U_i<aG (S#S`: TTTdS1[,ea$–-E6텁݈ :<.,,h-[سgyGP9*셒O/nP an!Da6 {JI !lX lB_ ےW^(ũ+O-"@H@7[&I؍Dا~ Leaq p[$윖 a/?ˎ6#s l$ l݂Wa[J oBJ,>ړ~@! 6 n!tai¾4s$^8ĩf/VK;vjLJ# a B6u*[qs]wݳ}3J8~DB*xpJ\ScaMDKUaw7tv?5J'~"VI>ns^H}TQsCåG?ea@ a [zcEk?'͖b2U x[Eت6)˿bsͽMI'3(C[Žw l@-;[{ۍX<{rܱx)DQ [;?mgy@c?t&a;6 |B_oPZ_)>F]=*c-[Ot!xaMMMg5JKKKR vv ;WiBIm6:Oߑr۽1,lo;vz;Yؗ/_.++pB]]ݥK***Kl߯l"ʶV^o^w wIv Q CBoP\S=a4MG~ [^H 8BG4QPYdtT;I٦o;?MdH]SS^UU kkkJ~w<ЕG5v#Um[^CJWq[KӍj0s5賰|̵nr@^)$2ھ̢Cdznf xOa755677UaAvFwwŋI]N}nԡj]FAca aOPT]ӧ1cRS&LYؖnY]j g쁴t[ϼc;Žw6CIUWWW766uGGsefW6Wk)ui3n2G1lJWAZm5IM{65wR0m[V1ylMkSu48`v ^*k„꿘6NbSb@ض%KfˍVsa/|vEE6QuKK 4:;;] [zg_dk9okn]|hf[=){iYwT_楹%ܚ -P͐~ٶrR`v[ya5n}%WξOCVf‰dK2v6 (mhaJGz4u_HFlu*wr\N}5q{bHgWmx%}52n,Yfn *l evV\'B6NsEf!xga755577=\|yxxȻ[/miJ\OL\ 40s/lEr'lzEhXZSYs,mm7~uؒ:n!Op5{4!?a;~ ŋ---eEvhSk{ѽ[զ8pQk1je|B$=8Ny.wGSnq ; @MJ MN+&E}5Qkq|};n!4aVH|$vO{!lavRw ;Qg^h[y/#-  {Y eT9xd20pAAwn%a+ /np/N#_nQ6@7onTÌ j G(  p[$\"ey`sOOVcyG?AH@7^' {2VPR-i*8(C l݂ga/lU7|֪Ƿ?J$_ l$ l݂aϕ>qyʔ zCu[?A#?nv \u-ZY_='h -5uiN"wtx!l݂a&I]DK<{$oߚpni'h=5xp "~d$)KHxu+Y?"݂G;6 |݂{a?<ƌWg̋,jo[X: ;ށ# Yg7YuUnq_V'8p-?Bc_ ; @v = K͚ߘ< ;9#NïY.vaG-xtIؒam,ۤgD>nϬ8.AEJ@>nq_vU'waA}/aO6KicCv\`g ݂gag,YC}fӱ,liM6 \[@H <{MY3%ypJL n̍)q0@v ބݜ.{yb,1,l@7f IDATIrt" aI^6ki#oLCE0 x[,Y ;^-c``M>n,_/9[v3#oLQbSbR$D G [&즬+=)J~sJZƜc;ށ#< ;)s}uYH$f#lϺvv`T%z4v(C[G (佃#<{}%f(!%~*JSe.׷v#7;B7~p}ӉΤhoo'vT}k?I4";  p[ ҳל\,jk&YO=]8ZN}(C "+elٺM>*TE匩#n'M7c Wny |&߆0qa[/޾ qaH|6v gמ^py vI=7ݍڔxk,lL 1Vl}A7.۽l5}W~h[zh"i'0);bKK? ҿiIƮ?z7"9bi ʦO6\Ѫ¾eTZo^<ܢ >ASi.q(-lbjb묬awvU]8E6j 1KUյu Y.1zxTC<:&S!l 3N.d,>~=8eG4".^n/Ϝ9sر+2aKiňҼ6jOv,R&%ݽ&KM39xcSs/.Xv>Ғ_P`c[O~H~#H~DfP~bê=hY gm2:.zic?diI;報pV_K/y,# 'fT| =ŸM}#lgH+G".l`0HlM*h* ^JYvEaWĹ_Wp76 @tQ͛W*<v "dxm6='H= aqa ]|2֙dkaa [̓FE{a=~ 01ں:F 5aQ0 !64akj%L.#vm/<%ܢ 4a6:60a]v)qdݔI߅[wM[5ǩ36HgB^i4559ͪ9wv+0*:#zМl/&a^Mg qBMgUߜL٘qa[tYY5#ܿ. ΊSMy2Jv!)Ǧ71ُnت9rIڦ_kk9`[YRe9-l(H妳۲%IodL{[ca^?S˒_?K.5ĆD\ ,ypJ(hYo [aRnP+⫴[p/O:Kr)K>t&=8a.q".l7 LyhXv㬷jIRNEXDa9c[p/IS]wfE-\;bކ[&'"+12ov<9EJu^V ž~oNCSK֜X/Ju]ScjZi  p[p/le,K<,ҵ67ʿm666 ny_^SRd.']Ғ_P,lӄdo ܉'[3d}Wu_v< ![֛WH9c){+1-m[ V\131)I-ma[cl@vں4**u2Z` k۵W̐<-OG0甄'6P6V6KݵM2 <5mLo qa/ ;o }V2&&kɿuuvZ7n6BCD^b) n@_)m Z8.^s&S;as[&La[b~hy-VhGاd*&CMMM66hϼNy>ǫ}0q>Of,Ǭt}t3LL%S=ӘJl{{؊rΘVn[Y}sJ^Sص2q ܼ`v25|PI*z'.ELҞ]υDA<?i$\9{}Vۖ1)8iCZ@iͤt|6 a;Ɠx#pqEm'b]n9{FCKtS6ˣLr21'a+7'Qf4>O)'i {5u6+y΀Q"¦ΆUgCO*|aσQ a- D0|bT} " ;60ZDT@f~+Q}5 ` MٛrWh m`R Ž2Sx7欢LMGv? 2SxvSU4*lOeΔSmJ?{$'K fG)vyZwWv66a(%< T 5emZIV#)FSHk#}lMRΔ)d`R;Rr@Z"+ Z~J!bƈ < ;1k} ~m5GA˲>h.>0+1KX3> `x gDؙ,! )l .9 lqMK8 sJ3 g{vNcf4+lì.qmj/l)qWϚ –5{")lyJ|ݙ4-t*DdTsLwiL h6̷{@F<ŽMgҏ"ߑBr ry^خ2&m; TѤ-lv(B^؏̙TЖ8FP߾u, BI[Ϯ aA<ž vRzaa#T D< ;/l P*ϣsat <; z l ds/G ra6< -wK:-}7)kjvDr&Gf޻3}kׇ._̄{6f'R쥻).o;am6 r465ۊi HL՘uP]y@mһ7LWJ9s=r #k+M 1ЁYa_N<.<5Mƴ=hӏw~h8'7m.&P=W=4$a tJ%J$m%.|a--[m]~!-vJ_{_MBN<ѡ.eHS[=N?Ù=iz\E h;/l6d") if I| M&andY=۲61wG*!=ډei(Ή'>z|8CcҧTiɸYy@ZnY{⍩Vد߰ϲm4ia̻dRO9'"~C^|Fo]YԮYپ {!sm&V#mu`l0s\/#5gC1X5V#ma#5bKO I;痰"5uh+7rhD za9پ ޾s\~m&Vm@zayJvv:K} p%gޟ+ U@+~ϼP&ϥ#kW^%*h+p^va;k| [?1E{޳l21 [d''켢r%uv>6烿ڞr y–;@ 61]JNR4%ykDWX8nk SrJd7$Sw(ڌg<90zGݺ1.`] w?:y'. J5?RЯY~ssxhWk-7fѼࠡ>b,4fwcc ˛ߨ`ZfKhJbT -gu7h2id=d]~BE_ydGO VTxeR[11)qPFɪ“!7sVth0dpM?&F6cK;8vhIWoS`L SM&+tI5n0![A2s'3B>?kܔ{+##I x+3~`q2'{T,9nEYo>abl 7~ .㳰WYRu&E_ -U~?sdcvAɹG9 onngzVQ'ˢ_ܮMFi$dH,\㥐"CyBi.ؘ7ÒzuWWof8LԄb@&[~uƼg?Qv }S{ɯ=}.XQa#l*Ֆu Q^zc>I̳EW4p2ly jBPA~b Ƽ,|;&I*&&0}\I"ꢲ>>^>44TQYaM1|O`XiԵ~4@gib7k -h&Q[qm1bZwidݑ]摥(ΧG:uxe5mv^#w2 `Ȋ`Z ߅pa/ak7sO Jj[Nr\#ܫPW}֡Y=\͠M~elFxVX3؊NѵJOvNf٬ )[astlW¾]K|k39o}'%ܶͯlk4RJ?njj;lzꗰ~%[b70%euof s k3;:@@v\ ^p9dnX%vWN?O䀡&՜s\Zٚ/{໰PRm[ͼ7g?3;O.5DRSvlohmmpt(ZC:M9Y_+/ۢ$_6 k簆w͘=$;Iǎ9"wtH+gMzwQ(YN.YX%C&^PdV]ٚ.&Ο'¾+_my(?lpp t D_ʏ<4~yE?!N!7`TaPY+`k]=l@ ka çH@ ?eU?/)ߧgarՐ6㷰3 l; ES6#*–㯰3VSag;V7Bxulpirc~G1N4: >/SQy8,5|ⷰR&aϣa&'M:k/6DCت}a#G {*%k.l` Tgag/՜maC&fY i$  3g–psW/O: ByvfbRK-`u6 xB^< ;_vO~ ի'ޙ0mhϴ;󹛬'&Ǻsڴ;٭4C9 Pej'S?]q2. ;,~aw8{jks#H6q;_Kbp#l=\]%&Wf+)O65g®y潹ߏ嬽SF[M%1o2r3oדəho77fS;5&#nt'yZ53xK@ TGago,`= {hhRLIx|r [.Ktuʲ; I֗9;Bj,lK}5vA;R]o]Ź0*ϻW7 u$m /w :ҪLޒ4&iAKlɞev{Yq#ln[;f%Y4n4dbt $VEثqM9y_}5DDz1"KM+M({ܽ86wQ]ϓ_폮aPy^I2ȶ# μxq;oޡU=n{Y;z Ɯ-{ 5rδR)!S)SiCz8WB*l̓Mk;j~k>'x]]w; +I;^~'a6l@g .F27.a?ޚ1O=xy_$l` T'a.Z zs%gϜtPy! [;g6 咵/{\?MS!l=Byv"q21n lByv;+-C9%&q4>Va*/$aaiG!l By[Tg]5 *GK!lByv먳 #oN9;"9¾~@CdGƓ UaK6 [1ElTIؑxوl@ pm=][UaLžia`$alVʔ$9ʔ8 D^O8$w6qBaOS!l rxvHؓɿGK@@ Uؒ[#l4T8[6_$ l DLسޘB#쑈<8 [v. a|}2T(! Ldk 5mU3 IZr%ajWbO)N_ean UR¾+_n1)E?A! %/UTNo4|}Q@peIoCwD]_jƟyGq\ {# D oSw@qٿ)G|8"N GfaOkڪfq%C]Оt=u6hY|F]<Gvufa?d%\ZBRR… H]HD_9RR#*^[SRR#*S$al9 žcl { ۶mkii>V u!5"U|gGNu`q ]tY}?(|l ]Yr^.Iܪ:(ΩsHB( /vվ %_vm`@BjDeWݒU]ABjDeWeIح/l$ J" F^O|g_I0 5"V$҃W:FzUE2VaJc R#;[ah>0<6Gadm*\- K3 {T%zw؊E Sca u$ܖ6'?Rc w+vGT$Jk`] w+%6 vE* 8@ؒRkZb)[l}W[/N01p/%>qb߶w&P u!5 + 8咵-aU| %WMvN'ޙ0mhϴ;Ajab%)j>MI ͬ|aa {_喾ϳf} Lǁ) SLVߥHܽHSxvNs V*-̣In% ѤѤ;\{jks=$rCā1_ؑk β7]n /LNHga2nfL^U$L.F^.w9q&ybeIy;ge(-D9u9kT',h1˻}]兵F=7-yڐ{ l@La3%.]e( lٗ)$XK&o [^SB,s4禡"c ЗM״",]uWZ3ڔ#yf'/*%>(7H] )#1gq212( ~⟗ O2};DJ Uz }Z?Sy-KW%f ,hK%ZNaL_ %a_N*c;xH6a2Uv*' c8ab u"l4`O~]Wh] _]yj'L&-??&ʿr~nbٕ!Wa\&k21<( ,t;'xwߟ#PmppKX8EYJY|Gҋ7KPD+v+{Cژ%Yc<R#;tU[mkSMq+ta+]ʮ );*+㜳(U01ŞMrإؒʾ5JW3aذ%&jM^cP҆kTfQ nӦ03 "9gyڽs{)`Ie+t2ɇ̻2weekGs( IaĊ4rb6^E|a#DZEGg 3d7|%2,^4Y0_=ǣVƜ̡`a35wϊۚ7/c..:Fϊw{e.YvXq*)N/%7&Vwɗ0o7s(GN ;KCVg2 ]_zu`Ce1F!v85|,Q@lP}*?~xVv%;a.lͯ;.ݭv%r\JK8MS+50->νG|vc_N~)g6.,lߧ?k(ˇN [–qEr41N 做+;}! tǢmm?P",lߩv[( a*T!9Ȗڻt_Xpu2$wϰZݻw5%P(bސw1|Π7긻ϟc*lٔ_Fk>^x]^|v@Ļ A4&Qوo8888888O!Fa^2&M {'-Z<'/p7ώk}J\E|Z}zw*T: i pV{ȑ֦ĉ&aۻ 1 9pppppppz-y6yav-?6ȩ,ӗLzQsDA#͚23he3,d3M?S7'x򴅓mҔ&N?Oxħ'e”8uiedX 7;yw^pAp1語1y >g^ج$453 +>TSf,)~˦-lZPPPR?ApF8 .,XQ}`zEgh1 4/CLZ"ِF'żHH+m-"MN1)l\Άq65aeJ_hnUސV\+-zAzDze̚KJKJן/i4Xor3Z~Tv\qBW5u 4wAKR{GMRs[E(u; +1%TB+I+J+[/,,(^/T,V\vziM)TB[U¾dGSZ]@7FBRf : !$.BeDfu1LN^sjIY}KUծZsq"%UuP -NmPԭZ5"@mFQJG_ժv t2rxU:R%he СwahV@E4d_pGy~bj7P;[] 1IDAT PͶj:HT Y(I1PKH1[K%llv$l__}uignzAȐt[OUalD*MN)yY̲ui%Is)cN$]Cሃ$22Q#9"b24j+Bok=!_q;whuQ#9_EJ6:hT\Xl44liڜg-M9M͍MD7zWw\M&SS ]&VJԌHɹpD HYTyw\4U Mᣯ2nV9OT-O(3rMٛ%49Xkv~d|D>ϬÌm6Yk~%f 'Ј舲;ڨoȯʯBW#ȭ9:SVe@L-ݚ-iKXX؈ރo݅}$*[$ #lD`-Xc!\fC;;{Sxcqv~C v6RhaEsΆƜ 999])ҊA fm'H̲d18܌(4jۆ)[MM g׶Ωʄ-ܑWب$ mA^_m/VgL=v6flM,KȻ$zJ Rqldv7g;"^tv6 fHba#g ήM:[8[8;M8uv%hO?uYvsߓ&1gڶ=;]z.>'#QoI[|Mٱ#a눘 5{C(aoA۱"r'-}9.lq6rf3gASvVBEvf庴ԲuĒsagBbN>$PαI֤f^X/KV >A?嗧dHK6Fa*lA¶gM9[NT1' d[ju8吃 ;dww}m?[gil׽lVq>Gl:۪+5|Ji\AY*56=.>m:ٹ!vMªاn&j %l[mb] ;k=r a#a3hgg0lSav  ^t˦M|\aUmz݌YmU[ٖ†]q D$H7PlCH$hBؑHa/Gnv9OSfAVM~v@;v])vpgVF\}"$xH̑أ߯N>&г2b>-EPץ S|"0( aþ<[uCk.pի-[6}^ƛbgP1^ޣ5=ww q$n]&0`D wuventw=@g\chc":k'0cH7ޅAMz ;w4PsPۃˊb *VfnDײOXOy!Y`%Kׯ/ia`IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/figures/file-menu.png0000644000000000000000000001514614023111777021032 0ustar00rootrootPNG  IHDR bKGDC pHYs+IDATx^ypUUStw=cL[P4jw]5ÔBktVQqC\PhЅ(!HX#A dy@vbBBr/s{=˽o{=w9~Ϲ7;W:w>'NDS*n0XFuC;G'w}7`5ɏV޸4t_~Oq~w0XtyKش&VSU\n?嫷(n lm6W??Zd~Ij!yOY-W╃v{{*޸B n$Y=DY>FՖj:Li+Ldҭ'./*.UU}E㥜7;#=/Mq~P$^IwKWXjH,Vsj k8Ld 7^lҊ卄}x4fFg%)Op˥&RܕJpҍr^Z;-hȈ1MUm)ۿ(aorXˌ!.5ʸOӑ0M!|#MX'MZE N+"K^nW3`ؕsnlfh$[dD^>Ν̨MZݿ/6'0),.&#@0Roc 7ݾle;k|m31mGqfUJ}e/#!|n_|l"c9.,QOG6w]1vypn&pY""פ?t'E%vi'#uƌ10J"# GE}V?v=rDI +Hă s_LgR Zqh%,̗&.vf"a+C;jlFw>daLSrDzK[BXRbf(Vnr䲭<ҪP,: CcrB[:e򡲐2?'pedƘ,E2+w̬(N.M,t' _T…R~Hx3 q輂cjwYI7|'+oYS0u2 ~̙aVYl[gwcfG̘p;LF1csH%_J۬R%1ڴЌ["Szi@j䢮lt^qCKva\S"qU-/}C\*yq߱PYӦ⼩mvr;yGɝ݉c2!Ue&˻x [BYpNFue7.'(_uT#F κicML(tν 5 I)Ώtd[3IzNddע5U!nSqpO-rC1yKL5ճvy& ˾I7:ҽI.]34{g kȚtNxyqyuSC$Z}Sbcg`5pq$} O8o>eIg}.x[nDS*n0XFG: V<::;\D@!B᭐Ț&0* YBk-yB셚ubza,@O:|iJ|)#B$1ЋH(r|v& ڿq6$=a>=޹,jf˫s "t7j-:X5z<ؾrxh 'J' z(>1 bS\ 8:nBjR WW:> ^ek52(23!=m Ko>]W[?88(R]]t-VH(LGi"FDz@=!ƫuOXWKhZFsᒙG2{޿E-DɎ44VڵB"ds kMs1dÉ@l^P\wa׍,dBNy-0)n!0[bS2v7?NϹ2y}zCX7LW^ GK}y%PȗW~zؗGM?pS΋,JWr~TζbX!F E[91据BnHI@{v"IK!vvn_Roq!?'BVU1o_=zL\2uŏm?ku8gY ;$aШmVnt0b]״YHtUu=bwF Fm%!bQH8DGZd+5z] )|Qm~hC [B1ktu(m}$7cwkOd/lrƉѦl&pSl#B*5@!={/~dO,yX YvϾMXAߩ|r9^}GnуHZ\mn=Va]UH$KPUȾ# wOgɈ)u PUH⌘BHP"D@!B  @(PHȩQWB (P"D$Au(dq)]ޱdɒ%J_ nRXGŭ:^vZ"f Y/4]3,E sS {{vu }Ѭ~$(Ȍ8ȣeCO Rg머WW(j0򰶇=#UUK9)*KTK!}#ov{pxC_l;;Yd/FZ!iF )$ *bUȫB;vpLly"1DϵqPvyR?Ma~]AXAHg&Kqjxp<)C!uD Bj#q8gu=^#q&/U퍐$w{r>7եAB2GWHWݸd(Z a+9M|t ˹c#O5 u9 x0ĥ*|IjL~($+B\sEBj;U@v\ye"G?WB^LBƚa ٹoGp?P> 6@v A4AĿBP^0rpܖIRKL޷I]MkW4=6^ޅ(T&jָd>Z% Yٍ`@!4rtרsS5ypb&ߩyx|)˖Z+'_߶{t?4ys73*(Ć/Lj)DPLT @(P"D@!VHoWUu=N YH!} ~wpǻ} YH!?|zyѡ;70DB;(d"82;zvOOzy?UݽiT^^M\/B^:z/{xI_m]Z]K!DjF, L9$̓:q~GJ/f$"VS_oL>soN,>>W+*:?oo`Tݾ#,˂VHF;~=b]rnIY*B7zFPH\MM!cIKC!!Wf[cywJŽ]D8$ [ 搕wMGw ]ٷ~ ,T_AcrWt"]!'=13E ϟ|_]sӵǙ Pn%*SUAȑst2=Y+7BZBmWNi1P ~ W!===} CsW i;z0Mytpޜ~uEнkSJHmKu7Ŏ3Y]8bW挓*Mw⒣~aR?VCo ȉ=ͥc+=CYBN(XNH}D\) sV)$;;S`5jVs[]VKޣ_?:tC_w\8O̙unTaVބsHu"Ru(Vr0/h)GU%nj5Ң*H:P[I4)N!rjIGN!Vrfkm wG9+] pk? GD0R䐺O$ݵ3{J^pI!{ì $vATs\+=PrpWT~VHGůtįBͤs #8@JgB@W! Ջ_kyu{O}{ DB@VBt;;; ev)\Ĭ@! B  @(P"DB!md&rj@"F!^ .P"D@!B  @)8&/;^*;l b_O"yy4) M 1 guuXN*4S^~ uXBoGDҢjg+q7B2" 0z$_Kggg6c GaO_W{Q ;sG_&iRCn#wm=;42Lizև\}5(}/`UųPUpguoBDҤ*Bc*s^OVg;Q iYRe)NCPL;{=O]Xkh$+b^) P;#KO"^ z~IB%\{4oq >0<1+CB3Tn ڜd4)D6ݱڤYK#pHI{V^/?.b0+P)$XWp@! 6P"D@!B  @(P"DA!WkbNl&AhPmGҠ &)D:a&P/7gW!L#l|O0ۆ2t*k~ T'@\=@ ߕVSZ!} ӛ=jՁ1XYfJ}9(k讛UBmWA8$R]GRKvY̜FRרO06-SB5`!̱ d>ԉ({$U+Mҏ^Xqe. ҢHD2d@v/$z siiPkѐ$\[DAd#;†C@8ͻl-H fBx,+}t0@B T~B  @(P"D@!HBL( ENB\D@!B  @/4n~92 ݿf&PRc կα k>Oa,[! )8mZ_wn3Fy~|Xg50rx+axM)Pi7D'*<8&#)RzKXۣ4L 5rnKh)ίEA_XǩԔO+gL'~Z d\Y p &ўKvxu?*NG: ϳ߉)K {3tLOPu G}[B^{+F]{,:<ֽW|PeD$eBbfeov]5e̋sᦆ~)h =^`B4t b/⡐Y8jFOWK!*ވS!9qO&q)ye+d~l%S\  ĠXB@  @(P"D@!HB ȩQx% @!B  @(P"Ң4 ҥ @DBTWXG3Zҥ >Gҥjk^'4 " ](RMnhn>0I( @(P"D@!p+@ BU$IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/figures/filter-toolbar.png0000644000000000000000000000612714023111777022075 0ustar00rootrootPNG  IHDR,lkP\bKGDC pHYs+ IDATx^]l7R(Q@BUb)RE* U#<4/TlT>@ ll8g_w6c]6|Є~(vƳ;liovgv<nϒ,A@ RI%*6.`IX k I4 Ib,)c5=qH:/HDsNdJ,Ɣ%@ ivpuT\z|V"p]PfA^xѸ%-%l oα;#?yrVUnO\OCq:)9ذu]+?@̽FW.+7kB;ƫ?><7##p *@ rQc. '>>ٺn3C~7y:g[*:]nbpɱT{$@PfL_&-Xc`;[4Kr 0w۶k։ P6MfxZH4sl =Qv4^uBPAM{wuėFT!TLC2@v!*..kn櫫O< B0-|A=ۤJscu hrvkOBtJHV=9w[o1 $fD<- 30}XJ زFE;^%%rϵ[c_Mm/ zd%8UD.A9 DI(;3̄bnJE◕`'NV |%}&%͸Ϫi)!0xSMTb/hԗDu;I K#!!s̗Y5QǪg-!ESY(ГNY';Q1''jJbX5]dɲ̈́$-N%D}~ȫڒ^g2PIDm Ev8^3j%4! [0x$?"Q#1xJ7)2]f88鞿P1!t<"** ݩqʅiߺ<{̬&`-%$ߢONϔ5 ;sH}B[$܃2! Hr,!R 9b%Ο??7{?H1BW[DFԛ2V_, ioC?9'I+EB2ǤKHgѵk!y/xxnL@q$5bTo1R3 ZНxk"'e"xӥ42/otIORrt-䩩U%n%1nL[dGF@'@-++;t )lȯ555XB%dd $^PPn./gk&O>Z3Я_Ô"hBS]!$D< dP(1QaT=~0j= ׭݉83 Ʊa .-oL/$kzjMV׽ \kGw- ƴEv4^u=]]]*/_###.]Bxp™3g{]Zyh:q62- EXp@= .Vy)8l  =ǓZ/!YUN9wBO'<~$#'WBC*<{#o!$MBj k$ K k ,#ȃIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/figures/guess.png0000644000000000000000000007510614023111777020301 0ustar00rootrootPNG  IHDR"U]bKGDC pHYs+ IDATx^wǝ}GrN~9y$c;gLf&;[bq|$C0{bp l1 X$!I}_@B]OUR]}}tZU˽^}'/6LgἾ6.=7GpC? CD~gX~f֮}`XxHA =L >ʤ*6cmQk{!~gFV秼.˛3Ǜ_‰zt~G?n6Au0(k*:7#泃6[xB}ΝoO뎜>>35poxnp45t=314ۣrzFgǖ7(5(l:u]acQCiڃ#Zd'!ρT OYHE`\3l.  dC:UBȃCSȃQP@,K?rY3l >( "/=2iU<4<8,/ ! fip6Z<)ENc,}Z<-MhV:xTufv|/KǾ!1egGc;<}=}8s<?pөʫ.ܿcSҫM}# ? &=78Jy%`hovʇ i?8!U1liqzE9OյvDmaYo(%g\NprI#ۼY+i-f-pV<"_޼ n%L7'ꈛ&j$eyf}+3`it6;Z\VOtJZx]B)_Xt(@b&NN#@$˄bY8q.`Ŀy;ds gO;OHYLG&N]!p 9H;O< _$`O4M&B&暕 Ez44 4߬oz 1J1i&n4346-32ili`^$Mɺ5Z7fN7gAA{JYe`#ZR2)@ށ8Pv)@œmEiuZa\*hkW*7bɠ{摌&ޤؗrb;NoI o`C:-)k+fZ2Y0wb:şv@uI`y#8xZ=~^7@1L$틦} ?+_2XA0c5W`D@$$_ 8gL8G6lJ'r2G6s(7I,G%΀qvIq`:|v FN{ō`#F&" <)4-TXӤ&l48j%mr"Ҵ -rڙH#&r°Ipi< mf6 +& P5S`Dq$5HPa47Ll3vƅvSy뒭]6n lt7 d7. 4о۽)7%lx{fmn |mȳvݩ]GvƓa(s}INbETȮv0@Dh<ԝm7L;0ЅvG6vL5iU>ʬ?6 3F0Řd]{o1oLLx"KT[i_;"!$"a,` hDȱv,v.A"ANWjw 9鴣h#P;d`T ªȪ8qǐ} )9;8wFg5kl4i hdL)I |&=1&gЬ AAa 4*̴!ZИi;ЌI hT]gVBLZVl>4Ѩ+)ظg ;Vށ}p vЗbk@p D2%qȥR9@R)in9iDl<ԓɻd] QѝjH JeBrB,G2>b xp/]V00߫L{:r>k} gOڏbڌOWLڏL%!f#)cGҲ%tdN,vneKcU.L.]v=Kbgŵٰ8Cj{T 6$a,޸37cظon5lbLc "M4ub@sc443|of2]ƌKČDfm@`sh$4޳1Oid]grf8Y `Ӏ! rX# -"< &"x@713PX#D f0fR8>ѹ+T;-Fd[0xU=g(ʝ&fa9맷˻>}O. #Ѝ!cuTfckc&0 ?!Ib r&HG1T#iXg&ʴuegܭvBb=:.-CqZ8mƲ(qq&.;LH`8  ؀]`3mM Œ&@a&Hߒ "Ӱ0vhL1ƌ)i*H{ь3X̴~N]rCO\󗮻FG~16ڡ AH{g p紼НntPt"gQ+W{eef5rtr-`RePLי]7zlLIlF:Cm=L@Qn+I3k'JO*('_h68,DƝN7 ,E[4HY,vB4!rB0Ǯ_%m-m<5oDѿϟ^ʌAmMUG>N[?_oYwօ`6D0=ĮVYa7ܷP]βif;5V?򪻣/ۡ֡K{^%o=Bghˋ5DOQVwl"U q'r \"hն&ڑ '[ŵ wkf4BVbtD3QfB:]giP]gi묕iTqh0:k:4%Q: @|A f Ǻa޳)6@ӈQ`'%c#4af˫i[^{P bax#ft|^34F̠0UcD3$)3M-W5W%zk8pzӖ77[ )ۮݽo;鈄ܸl@Bt{O=)CſtիEqL_/sU.wg%`)-?(2qdrqE*kV`?E!-q ь@:F==hYwŒD"ěϡ@vb34 mCi?xM3@VV&M M\F5op[=)0x;g63`t> n_30~ kDv"ޠNbgd(w"v [Aa8$ ,diy儘5> 2zXhތF5i}Mڮ'M@#b&ӎ2fzĒt1ӰIC:zzw1I#aGF+3 W}`W?~_?\A̦]b 2\ye8ϯ<+ٓ4&M/8{𐫳7Hs5nc3 dczIpޟT3:L0,`7ދ1s1fҠhm@XL:4[8ې@]g83ߴ4Vh @4TLSIsE"M n!5Bי& +Q& "MfƩ% 1!"M4-bXCHL$pPDi I=ބ CJ+}I#Xǘɘ`uC0ޛ1L( 0z5[i{r1t2b1uf̃~֛-Fb7[~#(]_n-t) oDLvhs6 Cu=kP^Y%ŒAev_MPF#=iݫ{~'' 8=x1Fԫ,1 eAtzVͪ?:Sg7 ' "3I4QNFٟf&-b=Su*I:a#4TL:SbFxb{(aWӢl<3fif(zcf3r ~]ۻE7^0EfE̘ɻJ̐3GŌfQ">LyFLFqo3RYWw{gWaKkcfYoǝm3Wpc6^p[GxS#G`3Q3ifB :$6f%_AwxcfO=8d9/D69*?&,wGW Et\%aF$ ,¡#-f$7LŒ T2Ek*(FVQAq ʗy|+Р{3) MU/:"T$Ögq =^L3RYZ5i&h4euf(0#ɘh0#42f33tY(ؘI#DitWQQޘ  [ yE΄N`1A!f9Vd/=|@|ʙ@FCn6Ìe31|an*QaƋ-?w.3tه UowrU-f+1BF4~3f&52g`{3Lw҅Qв%゜"Y.BrAEr3(HBO"FD /]?ǸQ!^Y_]` ƌ,̈fT7iwie@XG˪ChUܳ/ $a3. 3n4&fhHk6azF339Zx@ܤ)LqF hg$H7i$H1uI#F0`u>ž`.f1&AF8A8y3CSFH#=НL|X?{fmtLCF%OH%BD#̦]LƃK#ʎ 0-FH0a9k ,4( &l^ҟ _G6Hˉk}WZG9ƛN}|Bklln"~#]W3xoz:U<3%uZ{Rh ^qpfV:1Ey jzB#bof(( }n ̘^z @ wg/ uC_` kEͶ_wV^q[Vm~ =h.ō{գ̨ ehFtCUkSSgOUoHEC#ZSsOO~Os~vl cF7c'\KO6S7ϥ;MY*Q> @w1HӬI#A }F,YiȈԄ4k4ŻINL5@#ƗI㕇;̴ENAh@3izh3miEf>1G,3i|bs3^s4+ߛt;Wfдukʗd2-p̉ IDAT'r6u׸+;':͸L3.̄á[o;DF!+'p@ӎFH-@,C#H;3:¦fh4:mixЃzΪկx( Zt+m"具WV2T\wg( vd` 8҆FCwG01Y'̬=ksʹ:fZ ̠To5بhшd3i3HggfzD}5҃иAhc9f5cɃЈ6¦l&CCZKf~†)692lK" r ތgAs`3fyh[3_#;Kr/d_2zU9cyywP)#37}s\@)FfN؏V\JT_2r.b柞|7o>g5y'V*{7"#OFYSACΈ$V;S Ah 4h.=n.vNdͲjs^+٥pb> 68ӺfӉYjAtu&:Cs:Tɀ2c"$Iz!A(:1Ys1lnqchW݂"ZTiGؕ!= Zވ77KH7s('iR,M:.US͐4hBO*0MMc6XDNDO:4>lc<ÃI=¤qX\ EIl%;WƝjghwRt#gw~ ]U7ɞd3>ńdb4cd ]z>w-0AS^R˳ȑ0~ܝ 1s#զg4Fb.;$ WU< g.сݞkK`eHZMOˤh@EO&0zj[Z띳sn ٨eIs / .xrU47b̜;PšF3g 4Qn2HKI(=IV1!ͬ3ϔ!jiĩϜx3qB$Wi=fiФq 8E`i̘6dM'" XkDizMh4~&M{_/E9-/N N&aZv ;+٧uX0&q$)g?fL"#̷1fG+.&4\7;lY? QY'WNK_ e(I;KM 猷K26L227 \,űcX4mh댴 0&8I.;4s~y1Mo&O?CIF}OxNn_( pOƠ*:<44ǀFm[tSIQ3T@s ,L\'LIeL4%ƉI`u`CV\Dh.g4U93نrnVOsK~1hvL36݄oc4JѤ=cF hꄮ(r ;Ҵ2V-f4]g6Uי{4:&ٜ&٤{Te{&N4:"fI@#bgbƬ$P-,H 2Ɓ" 7ӐFldȤA0b4$PXШH@bcҨ1S:×VgJ%flqיLyUŒ8ɦד8sn[eϹ9/@z0clL]WN+ڑr-u.ğÿ)=#zmu͵:g[&(m-,zJ-Z5 34n3^ `cĿL9z3Մ4XSO)R6uDZa}fφͻ1CG SgUy@1;4>By3xVU6|6:W@nȓ:DE 6\aX3M3h~o?Dsab섴j(=)ѤI}dڜXڏeL0En#΅X,^%9 y<9֜ӑsrnoC|8D*fD ž"lTﲦ=ja='=VT` M)ɢy@=(4c`?ݡ׏pr\ΜӖs9#OMz6uB0”Y`ڼqgٵ$V4+t3`G>p l{KB4ㆦYpi3` z8R =i< 4-K'д3@+fՍRڍlœY4Рi0GΉ(>@rtIGW/*Gt*V\Ұ:p6?& -Tl-m!E-y 5@dki#]g>r0cῄ4Y•Vόlald34~5ick!ͩEUx-? ō`TS/`澵V^;wŹKʫ}[FvLI e=TG%K5PK׉<dCA^6dQ2 D8PyK"N$=ѺܭrlTEإL?P<< ,U(pFr`ФäpGWqՉ7'p?&ӏxlU&g[VKoN_K IuLAED N5+RtaK5wvOexgOGE 3v"x&QYw)6wgn|v7qs۟߁۾iM"?7a?Ogϡr,?f,|1;M7?-R~XO9kl|ɩ&g[U6Xl` rf2=|M,8r Ӛ:wl`yu\m_M|4-O ^~}L@oD̬W^'b'C ޽{n|!Pʬb.d^\GGNQ.o RP֬z..sbH ppq0mٲexx8LNRnw״ L5|#hc9eNI)\;ZTukEr+UK@_soнj?DfQpq<=Hq6M~ׂOqՑۢRN(eͪ0CbxAy6Y1oГfWɶcfVTjk`xl]}oW_w ƺ>KWT!) 2fjmy""2UQ( [RޛסcI? 9_L5azmŵ"!A=/uE !Tn-Am(#,3U[9UК5t2E0jjz_24{B;Ut1OkלZS=g#'<Čk $‡41õ"qF X'Wznzho߹۽sŏIz!o?.7fk5nѿ8u=1=%`&u&0s/l3(?U@|+p/8fTd2966߽[KpbҞ 5Wݻ^/O}scM$J卙;IK@ѩA ZmfQ_ u%e X K4tHoK$EKn9/(V^0Zz%(/XqUF[njpb*U2\E P1==Ƿ޴T#ϦTUhTaW"t4~OFoYe-fJ(d0ȧJH 1fΟ&iFgƞ ݔ`IXOS*TZi0è_b}vX[=3:oND0^?qjUC~(D\\"13ǪmՍ.7|wY ?zOk50 ⺝cK/DJUŕ37#m2 Wz}^nn39..ɇѹɹ4[njrr,f3\\\yi0sS{5;?n4-ej1ff3\\\z/̀kWFyO4L3K<0ã..<4?wE|1frcfbb,3I3..4l7͓9fJzspqqycfd3Oڎ`6nnn&`^Y05˲|!fZTbls\\\+Xaƽ^JϜS6~n͠9!&{STmvq1+bq fЖ6W )p<Ҳ,(J.1Z񚝝A ~䯤\Q̳˳'ycf>ŒtƘH3UR[CQ&TmvA\hHL[+v+% T\f8fV3]Zyby3W"oطT*=3}v]AXXYpNg;y!^Οy"d ŕ1L;l<#w w|knnHDyb3Q,N1g}K3sXRҹbY炒٘if\\+X Y]{_vI)gX/GuaJΠ*UJqޘ+A q3&.HcFly!R6FOoNL31~9j"<~~DyD4\)w̅aX1SlݷZބ|YDL4I(MeL5?Dr]'#GCM?H8R5;Nm"iʉʕnNLg2޾~=TlB5 #ފҲr ^A9!QvIeh(O=/2k7TPmD̊>3(^"Rd 1LݚNM}o݋qUAi(WgU9L_TϠ-޳G6-,4OO#̈U/o0XRt"efƆ 3rfn޼y-+5 b&qcV4bKY*$Z?kw)gH8weٴ_lA$/VR1qi'OZgU庛4:-]_wDbFv-\fGۻWnrH5JT'D7'2Ghލ*$.'"$HGhYn"gp*ԝfHmfjʳ?J &f'o|4i L,jm@ 7ڱ1=/: suP@JTf(ʰosԭ|=ȫ|䎬+NwO WJHYi^E{bݧYPp:U<{y+ -+P3s?}NxL\4f7GRE7$yCJ Q!DmUʭPEQ ;Z=n~ vH | \+CZ|+_YzO>)Po,3>5fdطٹͩgLgW yBbFqAlBRéLɥVPWSI u1n( 9taQG}5%e*!T,~*}r-C0Cկ~uڵ۶m۽{;i Lltz}i.f34Ryb&N͟_۪ öQ''dK҂ކRrpH nݺSNUWWUUUAz^O;v݉h0if[+t{i+P~2k͗)$(6Dg{*eYP~a \+ChF"4Ԋs*nZ;f=i6O4#U d#t.fԍ*ݗWmfVȪHG.?PDC./h6Ȁt~ IDATqPѩ6njGɵp4GF9fld"etc9is6rvk)Le5SgE=)d/Peox^i,2QWG}H-n޼1U 2.p 3u]y`*rI,NB9=(!V"|Z3&ۊ`[zucsͷTq_׿~o޼yݐ1UؘI$Ҩ1s{BL^2M%⿚J͇ڭPUӚ}@TG}ͬ_~Æ ۶m+++ ׼( 1Sko&_6i1l)\\+Q+vw-Ҷ*qp1L0c01s4̘}_]oou [+5888<<<666+#7Z0Pc)6fRvL3@ޒ~3'&&a+ tc߾}&7CK0J+Zd11`a4`&! Mȋ`wH#|GSS8}0< 8`YiRF'|20_Z/?Fzckh1s0s@Ƭ_aB|6?j^%30~ `wAH1õbaf1Cb%fZf aWխ[bw8½pfO~jiX0-]1}}kpaGH31õt2ƌ_3b0+_ڵko Iu3gT `ZD~0aÆ-[pp-t0c03Rbs*J037zm۶:u3tvvbmP{ mj0 ŹKt r{|Xl1~tǎ#sp-t0cH30󥌙ybD3O>ݻ 0zDG8 箮B`Lshp{Иʤ 8fJ1i9?f{3;v쨫3 2~r/;ݻʕ+X0-]wk= /4f6o 8~okɥ̰` 1MUUfٜ 綶ӧm6j‚iq ill B ݻw'͸21sN̗US3C`f(f{zZ ?B3< ŹKkuu >`A1ߛZ>2ÌUEc@c3p)]_X[{znӗ/]x-(fhqp-013(a̗3[Ҩ3(//8.nͭ(1õbaߛJQ`N 9u3AY}ԩ\\:rHMM .Bf1õLDf̜40W2POfa Ci 8fLf8o..U3\E34̸·Oa60Dsp3) 3B0,.J{Z$Ҩ0s`b( %.q`cKO3\La=g...8fbac3s3gCA...I3\L`Y hԘ90S1ť S!iZzoRfE SZ$RcǎA\c)C4k1ckbʤR~߬4Wb 33\+UT*DR ٬4WbY/U"LCCW)b* ppH̨&_Y8qp1ČcfO?*P3ɍfy\ ]Ǔ ZY..0# ̔oX,U_>5˚.DuʍΫ )%gG9y>0<]'dR5g+@ZZg2 ZeYYXPҦp}‰Z`u0s3k@g1Čam ^H ԚBӃ LQ&QcbƬaީ\'8pbXJ arrLժ L@Y\ƍJΠKib_^Ta2oHs(ɭ[JA ;N\ bf oI 4C~!|.7o"LNʞ$Lscrƾ}LfQ-\#,I2/f`f֓6UscI^[.t*k(mNɬSg7复ŵh8r^Q+N3p%R3&٣4>hj 0 F@` f@a'c ,LIݻ ru`4j̔Θ`@( 6hQRWU ԉ :5*NSȣ@3D@D"L, efc֯_0-r34߾>Zx`30N`Xrw4)%fcTbFԾD3 |QeO(n]Y's76٢f|Rp͋ʪFeH~jV`11Cկ~u֭y8n"Gӟݻ 0DG8]]=. ,_|{<~'s0s9L]G13_ʳK+/uvv8p1 *{3;v쨫3 2~.7ww+WT ---`Z|mw[[Px0yf| 7#`t0) J|!YP?iVUUep8vl6rs[[{6Mza 3D39foH/xiK);K);^ZRʎXf{z2 r3/ ׮55LQͨ0ӯ3cՉ kUJRʎVKZ/x 0c1 kk^R]/_Twb[К_̜YBת⥔/x)eǗx)eK+^JCk2qJa*//8.yqssCn,)䍙8fJ*x)eK+^J%-^JҊRvКhm SNW9rC+Xf$̲WA?~.U7 Za'^e5ؘ*PКps3MOdLspqqqqͷ{3"i8fMhck~Eݛi$7cc Hf$  է0L9q|>\M g =\t\T*5ŵt|OGli1b&1õ"u+gJߜ.p3;E'VմY3ȵO> էC0mHL hZ35fN>f}+CfnLOp`8c3\E3s@&Ӭy `\3-MOO2 `čq gc`=ƤQaLY 3Qʹf3ж:<ߺ֭[Z̨'d7kڹ"OZO<7Y`gl  |! )kv8ǩU^;97n<~õc 5ϬzRy[q~AҞ.sF读fI@No-NRzNK˘9LYgs3Ohģ'ޫ@@Èf\ѡ @$*IV;P<1z fFʲfjS`!K[Swٌ+)P{Ki8c+3B#OzʻF;W]s*b1lAN H9E/GO7ߟx٭eSN3E˸\RbZ%|*rC ?Z ws#GƎ=eYco^ull8ȲUǴl8cpV:fmFKmq!j.Β0CH̗փ5g 0&:ɛSOB)3"eP$B#K'j32;\+kv !Vm`22]P^ v!EZMo.wnTՓ.{ԅH a&01<63( CS:@!59KJPJ*ƪAӴ7ˎjՅzh-ѩiծŨ-S9fI;R.w4j>D]ACio3٣omc.H6s^r>i{'NV宗/J"-k*<",OQhBT8ZhHQ9:Y+$bDֆ x$Ma0s2vb03]Ͻ庍USzO p#Hْcn+6M~azxP\vxmTP3 8Nu wЌS4(5rFGV`FѼT@ʫ,i EAutz2t]̸bXv)keɧb%hyXH'y(C(~_|[a~םk0;l J _B"4*$`٘alH3#/ 3ӗt0jߵ>zfߛ!-^( clxjTV_eãS۸tZsm=Cf,5 m{RGI|‡?efL9"m-wp1b_܎/q'Y^%$ -8N2lCE֝+1!'J5kЛYVnE7ږh)l 7E-tiQ;ÇB(>f1hOPlߣ;^~oZX3Bċ,rlph b&K0#fT23u {jk~9po8cp|3\`D5f!̜Z:p߻6.pVU5 7oi4{f`&KQ` 0sb` J'|?}~y﹵3./UT^fs/Whfh1Hcf90s~0ۻ6;{fιMbq6mnR1}>&&n'9:c6nHHF/ⴹ;f4ɩy?zd |gòd$Z3Yif`fXxMX3L"j2#hFfLN dO&YXP3ĚYF@Dk&4sqMj j*h͠f ۤ'XP35ȡ=֌3c%O<[j|Td.hp{deӷNVjR3&rL)O וT(-I[! C>NkfOsTlr,`/˱{(ӱA^Moi|UpmC' FG"^JٍI,Jn$u`mB Ivg2/Brғ#Q%>nǠp?JDf#MD/]hp$SX>afW?MFYP -\n07A~Pd&QI*/eDTVjF:Y\YJ4}ILfR+[FnuHMG+g7w%?XA 59B@f P3C{~[BcDA tjf; B@f P3C! jr59B@f P3C! jr(Ѡf ȡkܫE2! .kƅP3C! jr59B@f P3C! jr59 djr(Y֌ԫ fz5m,b-,'8RLOf{6uz˪tv_bq f{]8=of{D箼yZoaX٧]}WP3Қy+v](+/=?PmS}f|=__)5)(*Kw|WwL/f 5\=kγmGNB@ JkOx~Ot}fyH!1wϚw>1Ha5?ׁWE@ Jk'O]9^ٟ>Ծv4;@*Jk\V/ 4C@ Jk! >о/r9Mf 5̳5/:foߏf 5+r~zo:__f 5GtNŶsWo]T e7^Q3Қyw}ZxjBjFWhYٻ Қy_TՔrׅkqm\w\fJ?uAWbf C)jTֲ/u^P^5Q3?g\blv8Ԓ#Osi>[蹠.1{gof #IkfGԎܟyj$j2fWP[kauj2Og>uh.*\ d,~# \& ?*|'corWr9֫wO$!PWuI4h͘qʹcC jiI&RK_OML25Lυ)- }y>lضvq85C NqB#KBJ2$H { ML'Cc%42N Qe̻=68] wioB&DX&SZ`2.i[BƢVnVYI6!{W|h[-bٞmLWV#Np$MPѧN{ N=1zZZJjzx?2O'I2ag)ҼRnof(~cV40%ĔUgukϺ{aM(Z3u&=okkoYvSZV ڌ?nAרoZN<{vᶛNmffgM޾]ܶLWz, Cp{TbI d`&d5tܞ=l ؛6wR4Mu]oYլ)umXb7%b[7bݠ۫>\ܲ:OÎ]65[v{ުq-ͪuS횑]Ғ7쑘-3duok)\m [Vw :e\\jz8X,?};; ;wnڡW'wבBezhM{Ͷ Qz#Hy^Ǝ@k_pfLqp;_ۺY4/s:_iTfj+W5rÂƼY6ڗֆe{ӲyIȲE0E?͖R.7Z,OitnREFgs3?qYuZ빑;b_*zxԩ|_Ef.P\3a4&F@oIJ!rh4]u|5Ӧd4 iM&FiѦ M=mLjvV3z޲^V/WVR%pK:vy6%¦5uuՎK}%Pj+JW0Pund]1XhfB BW"XJmluMzl \K=b]1kW%˲J _[u4q޺`5z̶򌛂] }CS<+HС|PY`M@Å aGڶΰzfu+c3YfN ]7iD4ͳ֡Qp-R-rEڥN 2◶ ϼʦBSlӚȕ5#mXtݞ _3.v>XɊjF5f`5Co,>:Q r5SxmrP;jLuf ?/˞f6ѧ+P3cXHFT3N$=Zm覎{ŋO>Kc_ y:HrgϽ੼C:W*Z]b9]h>Ld<+FhQh8\^`{wcD,(+2\56yT`AbSu2֔|#ͱ1eUeG+XEꬨr]·KrVe˫Wē *? 쇲|4lKqs34]|5?Ge۹!`uˏ/3/j`=;T} ?Qu SM%R)rE_1g.+?k#$<&7em//~Ad3bb.>>PdS LJ|%o.ȝK#)Hr Hb:6OIRcSJT42EI$D$ aPd,$f,$z48z4D"aF 2C @;ף.W.JwE )mw^嬾[72umؒy,vю`(aY(IXDWKVKJ7-(F z($ dP6b k + H|1;w0a]-Xl\6 RQh>6{*p0\)*'*G+ΛcArr X*Z*^2T/jٴfL AZ|.\QP,˨(*gy*8Dkv4 @)\Xp $e_z,f#)Y3@2 /1cOSҦ( B"I HbP F&LD'Pq0JX04feD"C~a&,k&xx݌0Pdvtz`ƻ"j.x\nvnqnviyytxtyv}|||BCaO H,9!]:v[P vp2vm9s%c/yp#AgРw ~;>P#Fl 00NAR ?v}yv0 c $‹'ڎ o$!d1K292R@Ĉ4)LB!5RCҧx5ƦNƦLƤLR)$M ҉摸JX1 a!9D "(}x_X/7-;+M:;}C|ú{`}pP8tp9a $i$aF(IQ{vppWQEybwSh;gyb$$v@iNĎ΅sOT'dh0hnAO@ %^@ /07 6"WAQQۑL&s2{h'N!A /J-5nT%BQ+'؎ lGUBT۰j;yPݘn̼ƈPHz06666ld  2N6``=+d= ߵ;Dgg2çaam/>3Quv ^xA7X՛s2-b6I[ReRUrUR@^Ii ZZj|YX3ۛetY&0Vjժj0NL"K4e "䝂 (Lb b,;(dj.WɢYH1kLH4YISIdb-5u`X <4JJ" pHPDХءpBX̠Hh#_$$'8/87(7(78g` CBcb/(F 2a.ŎAn=5#DxPzQ P镶1YbwA؝kg9ޤ@uB5&y84ςb%={ ™%PU:mGIݦd~$A>H '$GCAC^XIj긚LE5Ek՘RM&ڮvRME/4ٛVcvL0 m "(+©7hf!O *0“;F %y9lJAO z.xoA>)'zWy 3K؎odCH%Gh;ޥp£ޥst/w/wPz;zstSfNr\ڷҭ-l6^2s]Q( a$Z?OghBRrJrNW,YtYr]w-1tdxhHǝ+xʫd&C]NsU. mFՃۈ;ZZZ)&7kZgto#=Hǭ-kMG6(<-uɩZS ɔRVz^.HY6^\!:DζP*"S`GQ#V-EJ_7P /}9ٜٜliFT&c2#;L 9i@x*c,E$K s41dJHRthRX2=g< ?;;3=5J$q)(Gap~rD8nxEs#^u?^%ձzKs$[L8Ǝhލލξ.^3 ov"[[=+[fwQ)ؤt2:xDv#&:ю"HJ9; Uͼ) /*_rG !%ddխ|] -R! biEּ-fJs eR:ӹETH$%[b"@ _x&2).)t3 +͛MϙIBŧN&MD..s;&M؝U4ibSo]Wv*S$L uY5>B`l)6r@a>P68' O ‹ OvN!ˏk+("uUȄj95<#\_m17L"-d~duǧ[=vNn/^a#|O9>SccXXg3>'Q>'>'Oy>yd6gU}ޟUΜa$Gel=f٤3d3xwP\a 3(,ͫS&K{I=@) kk'g NU`# jգ2#T˩5 #wq9YNg_H5amʪCբjRJP*J EHl1N䋔LqL晅l >gZo_4S8?;51K&r;Ʉ3xܷ?Oa5:vʛv&H7߱SZI嵣S?l(hryhqyNwݎnGGGF܏w(AӮL6|בqp;vh{.ﵺ(Ezi%s9U@J |>&_fDaK-dBt ta e;$QJg1h'thuA{4\/ܯ{2HQG*PG*dr 3Bp!0Es(J[py<%Aj"vKEB3GӪʪ *Tr(Q>SlJty mf@#q3E,1\3lb 0˙AۥAnGk2#};)ֆ=1&*d7ꜭ>{`kkve5WvI]x!ě ..xГ.qڏ7Ⳟv&y==K£ Ŷ*~R}i„,vۉ o":EMX_PE &fxy'y>d7ٓZ |Ъ@ Ff, (=M I{_2ݗ}Q?*OS===]܍<}w'rψG%On4lo{[{k{+W}y~Y~gv+{.SrlU\JMj4b[;Ѕ I\5 {cq e*0DT`Ta@/ū.ZfgTϗ s*J*fJP\^z@yuHMF=s>us\ 2fӳgR2v3r$0臉ݰ:DةTc3wN}EakLjL +h 3J³y­>.ڳ-aGXVG$.uc^=:hGYL"!>~' lGgEs{C7R7R=x$UU9*cW{@w ƒ5 8fi<7(09}w'&=qWw+s]9;ygѮ;KwQ붚ݷqm{nk"w;1` ,smoks[˞ۛ^=Wݰw?yWwg>yww=qwCݴztH"$ U5 -KUᐚ&C#0_.?YD%g-U-VR@/W3_Tɨ5R9SSAa}g)({S{#|lk2j,] >;MTbBPuPxʯ)Uw`^p*=;) 6d7󿱰ݧCI( }&.kt2ݺ![Fv(txI -ofrGp޻ u2V>~Vw +ahT>$yMd616(f݁FBe~NŲ1 ?;gfvgVIv@xỎ T]hϮ2c1؆U 6uj'۸ /NwNR@`}KInW/y.fxTumtT7.&iNnL+` {Hl*#Jì.$yتQ^w=A%=cCjH*jPc i5sPp7z#3_z89;ppWꡆ_=ZPoה q0ʃ%/t:Pǯj Ӧ_?O~ӊW~n8p =CdzϾٚa7wN?㉿;_8_};k+xյTGj/73Q5. 7:,_8O8'՛5t7dJiM0fЛ{.RDMJE-t-nw(>k@h=˂.vn4dpXҺݙ$kuiFT2c ܍3`^#U` LrnɌbyfqކiMfdijLR[5qs y=?%_ST=*||%ϙ䬆ꆥ,:(w$[<EwyQ]yp\VގYdCաꞾFvV{=T7;= KJOMTQFzŤ(ڧ(1e7sҝumDaڟo@!Αyj;\ =A:Tc~;+;ϜN@x;` eu97b;9v2aR$6T]&6VWzK2dU()p5%4qO#pR6Hǩ"ea_R q[ml_/y% {uDu~Cqm;HַͯX>G:rC$M;üHUW2ddY]BɤfcuXI++R9)=LIZuOO/+*y]{-`*3w*={25s29}2!u".y<ШVϒc&vũNvӎ0LD9^soϡܹ^1][ 䦝KfG4\su֝<[w Hnw=O|}vZ'POXHS:͛`;:> n~}n:O7Ay2<:BУo8'}/v:we }_N A[X9y olyΩ\efͥVV8Q].<VKH,Uk2 %6ڞᒈ1u d&z# O|?gHJƾPP](i{yd%ir*'q~4䞻B]n\WHn!jzNR`D=ی>ΠaWBkyN[ 4p;  OHd`I*2IhZ˺\X Lr7e{DM;VWng!WcuORy RHL:JuTo=ݑ yrzф4)*Kʧ@12U\vҽKJî97&b=9y匧ed%%ť$E%`ߘbJ:DrOlh?uǿ~/ȷrzP=?.WcOX\ķ?3O,`&Ow/ M&BxB[1)+n띇 ^]c rx^<~c&g9?\1R eTYtYLP,U%.W%,U%,W"KK@K,S+|ob5P4[2W2[2Ij+Iv{Gw]n +UfuWU=d6's(p:@{KYdՒĎa6N/IbA~CEq mlsJ/iOwO35^;nc<w//_^___+FW .9tm/? /w};;x_?flX)QTYbgYu*aSutTv3ys^rӎ>RFn݉~)GmΖv(=-2a^-m ڵ=|֍3ɨj~Mw$2UR`Sk>Rtl?%u<+f_W0a?a$%F*lT'LFHOpa,Eð%8 ]`r2A^f e éؤȸΰЈ^^^oe}ʘTpҐ yѫg0Z: 8f:drnDrkO8}v 3@ @ҸNˏ9ӆxDr;VQl@;mD'8/ q!֣`;KGs]G:]E.5 :X;&fwƒ{xi`r}1 ,H!7XXB,^>[67mv9+-dY`/.V>,58աU&9 PY)8jO@ug5=>@ BD;A$K)%, *%u33w1l[0l!,D5:h^aP(z ʦGkj eU;|H tV :Ahy<+,3Ϙ35՟ٗћ#U齉i )ݱ]Q!šB}[|[ۼ==:>n>>]0t I[tX{YYpk&k< sPpSg+N9۝);Sa\yҹsIpVQ*Oʎ9Jw; ӆc۝>!%vBbLP=TκPw=AoSݔxᑝ;vbڣiPKbn%8#l ŽWHn'oi2Ą'Nv|z :KMe#'ǧOn3ʙӉY8ܝ09c2g&1* 0W/>Hq ̀fU!38ITZBF&I7& ǧ &`[}щ= ]Q]1q= }IY)t?v,ȸ:h-Ɇ\`+t)SQeωvWl@Xqp:j%&}c*Q{ZD64K Ka{>RTzZR-R7E[ohY;tr,"018[)'yAvd q:`JG\`#/|g>(Ygә|FaMM2@?iddd$g ' &%w$vF'vD%GƵEĵ8mڣ#c"b£["C|k5zZW:WzWFW&曆-VBpg+G9&gFg3n NN.HK"5\9PZIg %;a2:s̡xߡ={SGO vڗPv tSSBEh" B+7%<.yyЖvi?TuvwZG^ًO˄GF :# /8J(]DyL ڎ / o:.Ӝf-.On|5۩jς t2>.nT4.UT@S&S`|)UgYr"*vd:29 P^u[շ6î p㲶`:9&K؞үr.Tnn MZqfZB,NeҪfF BCEdRqD 8ٲS91U"N_|Jx8i3iVBnU2HHc[GpVu(&?*RlWxt{hTk08Rc`x}@X]@(@f 8 {x]Зs+uv5u-svκV98:՝uk8o<|Náϸj/8\>}6sUƝ`Tz±CѱS ?]}#S荐.]aD6-8 ر;vI; ,_-P1)m7,؎NUmd:n|VD(<{x~iѤ; DVɞF x4VlǞF`fwd(sj;nVvfһv2KUHT@UKTTY8]̩ΰ@M@m'vsTuHsE ۑ0(<:] HN<ϴEkװ#\T4ؓfKa AKUԱ)T\'[IR% -O0 <DE!C{s;NC["0U>#'{6EAl92g$fl$Qi2m*!xaɸT反<<$FSG#HG]CcbâCz#:C}a~zo]UYvz;ZrbB|{S΅gϖ>k8}BJ0dig\hGs3nDr*WBf\Ig2L%Wr©#HĖީwO=) x$NdQ< #vO0%GNAbCqrǎݮ>M=p=z3pLȓz_ <+'zv.ڪP)*3he& o2wq\zg2+=le*Me˝LϞHUʩ.7*; TMO%r3E|IYVYI%›cWPN)9K*K f{mEudIJ)NɨOK2WpB@7M4+eTX ?_衔 .NB<@~ql>Ud)S&Ĩ<-c:IQV8?HF<e:F r8$j(X$ " ߤwQygg3'"'B"s۟ɷs̳s9n}>}O;̱Sщ3%'N+PpmWOsBj]sUᐳeN:eHLSqǢ ޷Gϝ9`8L)`~ IDAT'r%w"%wbb'WBuM;~ֿjL'ۃHn؝!َwCl'ܫcOF!v𰅭y£=`+zCE b=g;IxvUfƑeJGmG7Y4g; LTEoI`/ cɂAuIQTu񝑂LUWSIFN{7.6TһI1Uff;[*3[l'.OR]JƈLuDu=TuQTui iyc+f#gVu79l_PCM1#Rt!k`\Ł gF i@[=L6Jw),;U쮕p),o}H*3I@L"c&U2M0=(2 (x ~$̈́2DљQ$ R%b,Pb:Fn~F0 aFȐc;7ɨa`hnbK Av\j?rέ٥։X0HNZ? @]ȻWG: ҉wgcAs,>| 57+0v5h;txaV؟՘e'ܮvu^ޥvwS0wikG;$wO`#LgOFr)1|5&>i];OSO,c1ۑL)v= U\gRN݀h;!Ez'<{Gfw8_l%NVsI,Vfخ@ۉ-0Qui&I%F&tGRі)i= &d+0:vfT'nqu&l`rF>~!S 3umcl102~U8&u*$Oe$Xa~p΅Mn\0y{}Jz7(“'댞N9k%Vۺ֎ŖֹƖiJ=c io#6NL6L4tV5LClc\S\csscyd|)Qȉh x³ x6ԓ&`Zj7.4.6K@srsXm.ux:I읊a跴>ĆJa#OYkenM{Ef>{w3&}e~XG[t~60B5>BY4<`I%_0&6:IKB9܌XƚɫcWƯoomG7G6FևFրAə&gM~!ӦǡOv <44$e[Oys7;]}ׁǞ|";Wf1uܳdoyQIro<獝{ď^ WLCm}{ڹǟ|㱝}>?쵟=OC~2+==?o~S?pwc)lgVuliZhŶ v|+uiB -b{M+TZhŶ Qu5Lu|KMuZhZlUG'T:-B -*04iZh j#kkB -b;Qьf5iZhCjB -b{f)TnBSZh.@^.[SZh1HЦLuMuZhZlUG1U]-.(( 8a8mՏS;КG4444@Ij9vm{Bm !%yzyy[06'2_nB -%Uji!vmۖBm6sj766>*M?L -+TMKf a6 Au5ՉC{ۨ:+Npp򦟈WN#B - s۾%0WhU]B~`;gPLӟ>܆N -aAu۴d m+0#|n&gPN -aYuoܬJMu?Eٯ sjayBUgP,+qqZi7R3rElOA*ײ&aypښBmT'+o:bYYtXYek+MC J H^]lͨnEAݫ[&A}r[bԂ@SZhò6_,^D[UyrR&NbM S܆)Yɖ }b:-beթWhK8[TPj^+¶yձ旪˹Y}'34=:a|,:iFJJ ?/*8mMuZhŶ J[ Ke,ZT'ž7eB4f)>()MѨv~@r/pfRB܌_Ju:-beթ}bE2_Vs^H;[3ͪU`[`QgfMٮITMf@ub._dhB -{XVRB( sӅ\.mhZԋUwxsqs6e)6ҹU QyfNw(>qR1#M,._xikB -uXP_2|*:)Bq%.RX\m,')fu+)ՍuP{w8U dl/'4i=,Z)h!B[}!7/;BAE;یm[Qio)Al^\>!of}GmpښBmTMKf a6 :  U/.T7 CSZhòꬕ,nRuӆBlWP^]>Pq6 8mMuZhŶ ۦ%0WhkN00WHsNۢ:{{ŭmppxuZhŶ mǒBX(Mn. +*Pu$Օ nFu^^^7U i{ik6,BMKf a6 "dbXRw4#ب:0mppڪg'W4444@yZ]۞%PhU]\bIbBuE"N -B -:AT7CTWRTݵbJ|1lN -Bm g*JKe+*B -؎AT7 # 2U-V2J5iZh CT]5\bu 4!lN -Bm Kff|Ts55e4iZh킨n*TWKkB -b;k\RLuuhN -BmDuu˕˕u럊TWI`;U`?-B  )Zc.^- _"T6,Wq뗪뗪(6+88xmmZh90"LOZchAn~aYu^o\Y`766>Zh90"\ZchAtcqP Vjڥ닶joG -ր"帙Z E4yV:FOP -s (R,N+p,\-hP5ZWZ+7:k[iZVUTg5@^+7h7>!&:v} ^XģWZlٖBBR(}?.=m o>SH+>ߋ+zaG]A2~ 7(~) ITF\bm>[ #[Y6 _<4Y TGKmE>UsmD`;U駟^A,饻8Jk*As/o%,M3ZZbü<fOA.샯Ur~t"K'c{??Vvf.•/l"ł罹D[ܛ eYLu)헛W?Z]u[,^2^:U݃.s/o),ؿ{gv0-TX\j+x2_Ɩ#Z P~5CVUGyog`k|.;j@ak͔-2u^n\k~b6itz$ɶ`s#lw嫯>H^*֙?)FbEMND\Bf;ػ-vI實TO m_g6ŧHk{,nlW܇5=:V|Siz u_p?AՃ~/տLd߬mNVUG2-|X7kq^طjQU+ٵkTg5@^?^\oTuu \Yu| sYYxvMѨv~@r}jq^'^~x~T[J7Ci6%*{<2&gv-Pj']4͝ y9+*F~6fE}S3fta7'"LڸVӟDӲr#[|6yrgqBZ ZVZ-]-hխltT׷ջIYdQҡI{Hܦ U V+{#Zvde¼fIoR%?(V_~0,^^E5fD:R;gUez򲏯jߋkhf'R;P\FY6ُgkZ~LVUG28pJU5=)_ ѐim Ϡ~iF%z46v6U|[ #[IT:'fVsdTq"sq3,ZfZSym~6;GUdF}Gƛw(g/_e^>Mwe͞,"łn G Du+" 8IuƭAT&Bm^?]jm3K g,VUgmᡩjDm Us#[C"[lڨ7n j6 UMímm&>|ial  G  /PȕѫȕaƮEئ:{{ŭ~-BP@ba G  +jƯWG+#WF|e꼼ohZ|/3lk ?lM|0*"W(WpAxxx?1kZ|1VרwyǿTJj]eJLˎToEJYd#JbK)1p~lI;8E *)"2k A906pa R.$i;1?ƉBM8"a*@iP&-eJLQM^66ʼnI'o,@u܁$nDKX5@$⫎ E70 ;HT@%_u?fWo{N</Cu܁$命//F_tbǞyɉAu܁$ngٙ??¥볁f~=52;Ձr㗇zzQݿ=T*J"~rzO`;FuK3sF@PI$QON?KUGBT#?@PIWݱC?>L`ffAu2$.{nnߪ*UteCxf H)=yVdm7k4۝rlǩJĞót!W:w@".?t{_u x]H$R݋"»Li:gۆg*KuW-a KuH6ObO>s+kqT$:9GuC:f X!f?qG?]']o 哂"VZ囈Sb1S\]XsC%W cvPXe^J;՚ ғDu/TyGu}VvK0%%^8I"T5CWxRPf:+"wj(&rV(.W&bEf.+l![D{ԏ^nT繧v\uW"Ư,uTo$=+C:eIA|c j70+!Uae'|X/|N-J|əޔK0ȇ&;D`Pu3K =nӃ;:N]4 :+Q|wYP8OOcU-'g/ל H(D{η,]O|jpS3U3C:u ឧYTǬ* k4]8 ճΟXSݜt ǾGA4Xp'zmU$ &.9^8#NuvrDW=;-C7CTNPe=P.1]FL|#Ijb,Um; /8Q(*f1/v2Zn:v<ϵtm*꜏(9g;sVM˸1W<-'9A9ӺUӗra患P&I'1NZQNe~mU~ztRJDS@N!+dGP.-U'Rfv(t)J%;^})A2\5TxDDT?goU3[oLbٰ"wJ˙No?(rbЬ?}w?An&vF9W\{[0UU:DlzolmaDʌ 6u (( v2ZnQoPu5wGuLt &}ѓͿ'c'QRNCs*aFA;jjjZ[[hn'<ӆ-S|Ļ1Q)u# YifvO̸誘k( v2ZW]Nv5wn,\hȌcjyTD)0P 9pY_|xr9?H6iRwpJQ>V `2QNSDʌ;-C.fK&GuGevr:[+幸lʄVL ?/2#p(0yڄcT/k+vP4?ǙF>$|ٯi)+یqi(e\P(RXW;-㪮UsjiS]S' EQ].{K3q;aK*0-鼦_KNVPdjrI?i?GE}%AjҬ(G7_CLgJuY-҉ DQ NF lǩzU]W1T"gk6v#Ie kv"d U@u5vnhȟPZ$F [,b'e|m lǩ.\ O ,v#I HUNP繆W"v;h"m<ۉ@INFPmێS]uPIW_}us=G+K LZ`'e|mn T2I cccK>n[K333npp%&-v2jEMյ@I 3)q+s.١ct%&-v26oT7FTW߾֡|W.^tOs鑑]%S'FV 1ףyng^H5D H˛Kr7';-êqo@)cqqq~*͊g9~б>200:1=];N4BITrFR_ڤ勈k UYV@u2v#Ij1}VVжЪKqHZDUx$6i"b'eMTWF8Tlc'1OWhVKr7߁ףYS%@ɽ!}WBt7B04R`d́&9y 'm.Ɠ uKz;ãYd% z";/~!•h@ T׿EV]9;lҎ:~a-R%:q˟y;ުkᖶ>5A֜=jX=Q b\CP)4v2Z&To;YuBuId6EgTS]*)DNSDy rk:R@d MBuI6㣤un!ţYi9qJ=Ae9"rF铨s([)v2ZFT&Bu4Iē6}G^^ukt"pA^ֶD5,8A/.DT s-,;-é IuGeĠmJbffvjj3##'{zw?p(İ5icN7,2D^G9]cU{n5PM fq =݇~|6XomqT7uC3T2I_ccc .^$oϞ}̙wN=u;ճwtI d }Uk;ZC<Ձ@y$+ztI dL: շϭ@nANF˰s$խҾv >%Nb``;-cR]':P$&-v2H@u CI LZ`'e̪smWԯ{mN+o{H>i M.ݣ>ng^H5D Hm׶\JdL&]1T~M[[5ID'z4QѵSDC!D5/'/o$y?W@Қ/ v2ZƠ TuE{^eNb$!nem; :À$y9yyQ+B֜|i25vQ9+W都Ulkε*\{psXqIV33df:fs!"-nیѬRB|w%a$bv{m;-kM6{uPAz˩t/TWQIV936gVBnM{긅? sͪkGFKd=^_NFTܳɵsoeSuu g?ׄkn*;l*r;£wg=S> sqkf+] N>i@zm;-M=PH6iZF_p+\>?E.`aKTd05ɼlhN G,J;Sꔴv2zU6ocLFxat9<*!厝H8iSN9c-nFѬ|aDyow4qdKv2Zȫ+BuRm蚴:) GR* ;x*b2Eą=|Q_IP f1ږEc\,EdL:l_nTv֤;)Nk'JGƛWhQuꖈȍ>bMݓW]8INr {(],d U]cFZ|mʦJw+İ>iM2?S )+ Ѭ1yYհ{1]fP$SduvZѰ='(vʤ]vmyCNk'JGƛWhTT.vƤ-cۂB%v2ZQYWwC .INZU׽~"Ӫv;hIu&:$FI.;<@ R@q&NN}x?D2*ՍAu +I8woݼ|#>d T2Ĉ3idLTѬNbęDu=)#;NM3+yۙ5D H;zyӄTU"չ_G-v#Τ%#IoYSZOc)v*{h(Q.+#|2hXVTNbęDu7?ZC!rT~R'N\m׉/lD5(or^a$Ӈ)?1u606q&-QyOtӍmSmWvIx7G}Q9c-$"v6տ6C !N!f{0RUUXXD)Yђpa!%3v?bX2Tu]K:Y7_vNbęΟ}| gixug{^mǹ׎t{ZGݣ %E_& \ kz!bKv._lzńvsi 'gŖ"1\Kf쾹ZڼdGk9d .TX.| ܡq/WI8//%m빿Z5okTN/v T* N)xF-9$lN1LM2o3;'k5gnviNVߒW9dLY{;<t$FIKTtsycm+i je1wgUWZkq噝۝^%)ӱ;(ˇ@U;05ɼlhN k{`!-NVߒҍX2YS*UW,0+;g]< 8KwDg]`wι>$Y(Vlu_z$R[L[,n=!Ch=V4OH;Qg;PqPԤݏ*ڬX̰2&wˎѻdq w#'=)Tv#ΤƯIb[YFܝ#d){p Yq$_ !%}%AVCʅg\·Dl+S` DLᴃojX=q.+U8n1npa'e#T ;g-Xt-=tO[XZ;(]dyev2ZTI8[=%s2W\b~|;-㩮&]fUG~q&ɏO~4o3v2Z&T]gTĈ3io}<2Nȅ@ ta'e:i$&-v2܏1:!$&-v2:E5CuI LZ`'e:i$&-v2qT\dѬ@H>ij\>TδjO7[~S'*\h"k.hVH4iy-Ov*{h((,q$*|&2%VCfZ$FIjϘM, M,q$*|&21?t8ѬY Nb$[~G3]zUQ Ά%3?tB(N9=swGsȎv'2>QAV$(8Z+]&Y,K_aY2d U]]G NG.ޣYs?@a'1Npֹ HSQ9)X9T:n]?ۑG:Dlzol d% z"1UlIk^n;-eՅWğ$Q?5"5Ab'1MQ7DUNE~gZx^糰 ,=>^xS9[DSۦ7A֜=jX=qPnzc7+B ,v2Z. /hYNb$y-O/8ЅH."SAS l & ͉(8ZqUH, v2ZUuTu$J:v0s$N£Ys~V.'(v#)|]\T_x;ô`9,l _pkS8Չ'VuU3 Q ve2YV]GTv#UsNT$I+'?ǕŪU^QU֣?tE֫ëN sNN;ږEcE*& ά]f鰓2,L^(VFJ+qNk'JGkVF8<խɟނa'1 4i+f7 .;-é.Bw,v@%XBd`'10ikZеNb``;-C=Ձb'10iqTG7P5t@NF˸wuM=uAu KI LZ`'e|mlo,Ns"o"`voX*;pҲĞ2?LD FѼV򗥤mKk&H?ƜXϤBR!I%^.kg&Q&y9yy#U]Hڶ h":cP{@`'1NZ|槶1r@MTr&̓`'eZz77v%Pe~pmy9㌉;pj&5 ;)Dx4X٩hIg*Z0f/m7g2(PT`'eXGo&M@u +(zf޽]BiUc޽ֿBN jիW˽ss%&-v(f]y2Ձ@cjj,"n#{WOe< 7jp>@1;;Kbaqqqii7CGv~.#Au C ttG.10iPtUGm7T2\#@yHD=mժ&9KṂng^H5D H˛<%$'Hp]&PoSݨn)O:2ڪ'd. M jt6ڙ q4$Q)e #S2D^VuW830oq[Y_9)Uhb$a9ybnJ**a.ޓ,  UOSqH! Vw-[Ȇ-&e}󟧶(+V4 Puswqǚ5k"UpʜT" k#?ӟD~E6nA47>1}}3!o沧:To ,ic*dQ'6Qdw!q8:I%j6m_U*4ǩP?}}#iNgFAv5~awwԼk#w̙wN8`,pQ0~űc'O9qy$)^~ePlͪ/p ۄoXw!K$VYeȷOR{[[[xՑgϾw6Ν@ 'lՑ [ q{{  qR! {/.t>o]bubc6;;Wo$JTkfZjL䩥siȝWl|qoX) eX(?kjj:p@&'-ȉ!FGG0~EO@ggω'3jY".@W +(}ݭYwfo)zOBZrHXq*^ wN\6&YWCQFPyd%רNTݴo"T711y䙁>nachhl݂xȑcNd\uY LW%vݣ9p3+X3kfn<|I  , QqWU84tZDȮh}fK8P^Y].KmY[ *U+YWFҫN}]V N?QWlpqކ-e=, TAj]M I$3887ۏ@?Ϯs粮C]T-[U;l ߆wū9,khZ6JTKUE_K yjy蒫N9I)VjUPxO(pvFԥW rk?o7z.ê6c#xkn)6M.%LF,Z}AuŠ\b8ytsyP*uTWʱ21C  ]z@u7v]VfRY m}ƎڮoeT@%Q-oݼo1f=T*J0kټ~ Ձ (ꚻ7я1{:P@uTPxc׆McN;PDAT7бخخT@%Q-wk$Hnz:֭[qN @I LQa'&-e2eLk!7vc̘" LZ#B5UWw}]sc{=ܛJ2&-DDFTZvǘݓ TdFuJխkX5qPvkUW{xM-]{ Tkơ:凤fAusl9~PvDn|al3QwcP@u*\9cvLikk[fͣ 鑩 T@yҲ{[ 闩UwqʔիWܼyj@BzDeC,,yGɝIe闩PT>D ~|eAz3*3:!TuW״J`+<^Y[Q#M@uBn޼y PUC/J16M${n5f"X~oTJMww7 ] T n6o& x_tu߾-AwU`!JXZZ:'7~ /-[/MXGPѼxk=}/|ӿAW  ٝ)j:(so]V ޖ }Âmvgz Zk׮JsTݵM;7JzxNq`-9GPi*o9q75ww}wUZn{PxBuP%,..,H #kj@uPP WUʂz_xqR }!=*BչcBuPڵklllR }!=j)PT MMMJi[1(?:Au[Buh@u@p⪎D'T T8P P@u*@E{sr@ F_~ݍ;_Gk/_]?_+}߾{Ͻٗg_}[|տk__=wJs}ZuK[CsvގFc;H$'{:z:{;fH.]%1tgk#$ƃ8#ibB]141UY^ WgL'd!0Ot1EO# ^ ;DSNh.&hv31*U#W ;G9)WKURT蠲\uK/&Gi ;]j;ttѱ\8p܁C8~;p佃G;qp煣NkDXW:"8Gu_~7vB_]{qW5rdmњu 뛺64wo[oK@ݎCI4ͲMIcW;w 5o>e[־=74tXGpFhv -D1::5Q/ DwXг1:z3;rB_MHlj߼uv-hkoߡeq:vqlL .v;Ѣc1Rj; wjYsHz:POb{}[9QK('z68{Shlh$i4F,t~%kx|!6Vo:z &Y-wzӣ6)v=wnipuw]%t* GdTf7Cc5W~jxlo~^tdӶ-};Hw Κ-HG4W(=zElw`;Fu:֑A,~dU8 fU,@lmԽ˱]C']MBhXg«,9ѩΉvMZ6mulYFu1vMBv:'V8@} j8`#Y)iNuH=Znu@uJ۱^gTt.0xۭ _R Gl:ná?X9ER>"?O='_Bg;=ߪlsޭSлxF!zoVvmnSk(9!.ҩNsoP]RەzP]g;ޮ.1bΘb(gTQC!`ͻ {7v |llTѿa:'[-9%9WZrP]|۩;Ȫ.ZxۚXuk;z՛t[ j#{oS"v >Q(yvs>>ޭ200ͨCDu\zc[N'tLQx"?1f1{o'cXĹ;;yo}~7ڎ/0:'X)>~؏11NcMǘݏ1=i> (U6 $w;U^u俇/7ᆃֽ(ooz*DԈoUٳ؎=1 Eűq'Dbrlcʉ /=%]#z+ ƽWPL1v]Tq"Y9&`:&Il _-tSc%2n^b0_?waΉ9 NM\\Zl8 "23"57n/~SO7@ DOԟ|Sw~'I|#?}쏜O>g>9ʉ? 2_cϵ++!IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/figures/import.png0000644000000000000000000013357114023111777020466 0ustar00rootrootPNG  IHDR~vbKGDC pHYs+ IDATx^gdיW "FZ4$3! AfF1Hv 4|7Tu岼*ޖ޶ 3*BιY9L'νy켕s5 =?_/|xxcN~Nyc?w}?__W~><;U -YxDsV5W}_c?y~}_?~`{pg8~ڻpw v۷V[)~{&f@2p(7c'7N?Ccd |ė'O._u5{4eא~URG~pj)*$FM?}ߩ[lz&4sc(b470364yfA] aOb/`vQ]Nk&MgD ' PbL nqg` >'FޞhOO;NΎ`3 tF!1:]] 㻁xwWtHno Z@S1oh5|j]zu^l 5օ!DmH]RWjJWV**G%(.%;"!|grϱ.e8Lib1 Fh4#af1,löq9)< ?'C8pltp6΢X4jcPtNfD*H.'Z#9BBPɀJPtЬLxEac1lòs. | JD>!$~ԯ!JT+U*DQSj#D]muXc=!Non`ZD[s֖DӖ@m`[zO`ҝCs';?d_ɇ5sab{ Wx?<$cp=(pݳ\lp=ҽ`^BtF[3XB2ɇH(0C1c,'- MM+f˪պfl3 mk6jX3l6-pEa79TszdZ:<38b*096:9:D$F\Z0{&*tɡC>taD5'Ӎ][- f0X,_-W)} J*n@.v.):v 6׊,϶X`y3 ųHC->Ŵb;y8r:$??c>Av"ԣM2(tfP7 = ** T'8oGK32e8J.>\5DDq>QGq>*tD\yzxBDBy&ҢH%SY~Xd '<<[&,(|CO5?ޝ^rzu@6^Po mwCۈڻ̝TGMp{5\ws`nn=X1X>X____³_3OMuKg۫]Fh)קt2>>>8"/uѴlA[W5}p6n`Aۀ le``׆۹r9`m+6IJͶd,Y,1ͦ4EqdX0"y>,BGTZ ԉ9`@@{$C31Ae31W2e+AŨ1`TO;hGZ͍PDpdy;:(Ńa\mY&~dyO!r (-$BXA,Ax([!sXh0h&x#bQ 4D-L @B:q0^"?S|}o{N"ZBTT$aAz,z AC=Ɍ:IG=͔ d,sɰ8'Dga γ](8L'H!ѣP/ 8G8чH(Wjlh-J1(>ހEؐ8ԔO4%8ԧ<(>Jd;巿I$v'3LCLMGLOobH~{kh}qu{squ4qC6nU_xw;nWv(NRbSڥXG(1]ʃ..ŭ.mL "sr߷t[ V T{ݪnNjޭZR-wN|jgz?ˏ-8v0|{nEw==AZEQz,nYm wӽ{}m' wC# v0 |[>&Elx=Ϻǽ׺˵B-8Uc W)Ve[T0ÂaZYEc6@HM2PS BO,dɄf$&zT`T_O+ko6G" ƆHc]yH O(>j~¯2\wKEx' Dwx6P<<osf6@7)yTd :T3Dϰ@l1^N3=w_FߥxOZnb\"=BGg~叺-`gm]os=ݟt5cqR `F }z&VoSo;6lC0b=`ˆH&%"bX 'XARo~}38 mc>3Y^[d`A0݈oB,5 kM&fpI$o4 "JO9h`{fvpY,Zo6E͢&,fIҾwv0|W)>2.N-)_V #Zp_XluctA*n{X n8"bCDSE#{@S"B;!v0a @`+N?oGu"U*5c͍** j FjnƺlUODzԪ ݄0§~nthvg;lZM ƆhC].RkA0S)3|%L*%d`yG"vKDn%:EwP!#[!ȳ`y3:Z;l{LTF0Vb;pwx>x%z.B^x_ xl" z6ރ-`;AL==Lod ;*݄nmӽF~vh=HL7'$ 4: ?18AD'=Jd7!FlR8[D616l`ҝcEbHD< Ơ5MS>1>@<''Ff&ړ ,XSc$jdyum,_S 3etR*Tr\˼2W*J%.xN8 ~g۪ p7D# =' $bSTJA,;`q\Hi_wI*z? zx8l7b1]YH_:FK߉EfG0 Ԟ#Sxl|B^%p02{`] 7] p^~yB괈0_nbݧ}A{=2>=(_.^_holB 8MH)Z-@+>hKmzr~o4m&0ϘN[DljfSfmY;b1;[*޺w8d_w9 1pBٹ_ztA)F1qiB\ Lg%EixMZ!-(s.oJ ̺dUV ,yi鬤tRR&D1QyDT/>8X~R|2_WuU=b~ti*VɼnnX6vv|]h/CZc#}ߚ55}kzq3L#n`rAr |0  #)bqfƈJ5 1*Q\>t zdf-zm н>.Ь lLoTg;dd[SY!֠"WGk[ E|`P(I}RW"#B@x\Y6&dZ N˛4[Z'0"=RMJv:d;\_/o>? xqˣ֋E9"z'x8j(3@&AƊ c9A9f<02Jڨi@3x4p@,q HKѣPOZЇt/D_($>1/< A****\ ՑZGku:,X}#Zy[@ ~ˍ_˙]B"C$0I>08i0NӔ)y UBf p*VG[-\lS[Sמ[qMxdG1n.0͝rKU~ 82Z%W= c|p\p|n/G(w׍1c۰:mgRWԳ)ޞMq'#gfNr1}sDg$G*A5`?^&)ab|)+xQ 7ӓYPV 6N3M|t q͠[N,. - vtwNuO7q_|*19<|$RU# x#ѳ96b#3ΰho 6?PAt&2HfЭTƲ3X!s>@|D%cyaA/9z.‹y9rCFBHSS*pլ e@\LWd60p i6 N9jyDOc:@t r1.&8>č*4\>W.*>)p 71e>'=Ere@YPmmF1u} dcst$o?~l_FO0 #@0,MGhB@.HdcR90.WL }L~{ըJt=z?*ͱZҨTJՄZ8!?Y'_yr'_}rԓ~?S'lwOg~>號$~;2/A O=?}"|'g}q O_46vO ~jէJ#ˏ!_7?70 wejydIvY}-gv}@x?=n7*wNܞGݞ37g>澁Y`($)p%pֿuytB [i`լWj<܏'ԏ]O{Qh/g4 $½]*#^uT4VA*g@h'w~sCDi8#r7!ΛMFص+cˣ#C s3ӭ-StDMm2QU5QU[^&9X='{k,/tÃč,ؙ0L͐IT#bHS-TN1S4 n!ӭd:㸘 s~0DA>"$H< xAm0H Mo" 6X Pdr(*זiJ4ť@BST),@@rmI9d,'+J(tbh)\Xލq39Yj>\A{:<'jQǁ prN"@]PI"G$^+U>/WEUP WFXM]!Q@iJ64!7`741Q_>e2dN=[zC  Ƹ|@<$;9oq|B)4+6hLN0&J /mWx}QK^zҏ/ʏ(ʏ¯(x@֙3$^} áWՇ]>l{ˏ_~Lc/>6_|^x'>i&PvNMPm6U]X7y/X~ DBXX…,?{gĽpwnQR}',?<}i#ꟚϨObfrFr } D;1LuʲOHI>bJE0uX/!;A}^j^ ,ز6 #|ԺՉΙֶ)|m}ZjU*,WeʐLʃY@, ~,|L=\wsN&ҷζY 0 if*PLe)W`SXEz - O'w37eo6y^( zLm-07Armq|(+(/-(F201Viu_KNb8( '0]BrǸSl#eyx^ocCx\7mtƶXf~c IDATX,ͷV6p!]"[,H^)*)hU]>W7%Ꚓ@=1^k5D !ݵ|N2Gav#u,]D S0z?sx}~?O8`#˿{JXr%FU[Rp=@ӂq9v[wVux ȶ/=>c/X /?jyQǩG]~4xG!}苞 >;hG=zkN?:cW3cݫ+?z'/'rA_Ӭ,qC :ӆ޸+%V[kfӥ7To,6\p};nCO˻AΆNI$+_7Nwނot֛d[EӃ{Hكu!)Q1vXfgAw,?͜t NvXaCn}W ؼ(db.ǖ'1d8q=t36RJ \qB2-T0MO*h ВtT45yFX|3Kh,\' N-Rz%~yuHQVDMcR$ԍ@\TׅՁ*zʳo6et & :Z.g#zC{x^_ IDaDxhFQTj@k@+6x$"(u1=Dﵧ<5x橡3O}Js)瞲{y)o>|g}I'Y *S덧o٧>f>[Y~L: <;fC{]f/9ayÿ*?&x~KŽWY*,E6 HY~Y3=wو ~ia~G=[XB}!RFYC~$SMn:?pgv᮫魬'H~fs8NNLAmX= [CY"u?GÒ錏v&+"r1Nc+ A@x7ExZY[l4BeկOhFGWݽ ]mͭ `Ʃ*uRUP$qEuL^UF Ka"$@H|I' pE~ l:\(lNbڀ f+YA@RvM ; <*K,AV,'=H#liabfq҇c\t$8D!(GfYg@5 Hʃ" Ɂm0,$-Gr/+-Vw/j~+=W{/|E^ϥK׻4ݗs\ZПSGzhlATmESJ/!WFH# Fh9`X$p470&6^bIG\Vꨪ.VYjH4&0hM}.XUSx.g>, `wrvp8 \N-SE\['7 =BAH/J2و\}pjRW Tjk F5PȢ޿VsPkPנCpÍ ?O7ύiN|֏~瞏O4͜\ѻO޷'3Ϟ a|<'>~ѳ?9G?x~CgϐWR~Oç-I]gf4͹kwfnϮޞYoZ=Zuld-^ʚ33;bDK_/9N}+˅ײN7/.@o5\X--ݙ]jz3tsэ E-jL `OcO KYg`VYe/ ֞UZxN_ ߏ` `WQ^)H^z2 g,vHK3mcl2Y6 M~,?,7ջ51:[4Uۀ,_T&5IyuQVF**V!|X I\ KC q{|o5vRN 1 {9VΰSq'N6%˨2$ӅdmI.O +:G;X"pdQ,ʒE]a% 5Ơ 7u/r$6V92 H(*!3 &, DM~-VГ}5J^弮/.b>zg:>IN9h<qZ׺?phZD^l*YKrB'</p=Nj9T<"@{0W edM1i||(??^{'77"z J_!:PD,1FYc$=Xb+WҚBUűxU=p:)=JLe\~v |j򻄈n@ RHQL#!$} R>TTUb>JMuzsS`mn<ڄhA 0,M=`,Sv?Ҵ^:=vĥKWN^9mzʙ}ʓ}T/Gs_羜L3 I !y0SiOiWi{i[k׌W_^~M䜋tU=;[NX^{hy$z%G O(H>QZv~~֭"ԮvǦ 3 OY~j) _:iSM8=hay݋wfo9:g_p7nN-r4b/ܙY;s,ߝ!(~,a d헻u@-Tod^D*guDw)-X(#gJTReLݙd\)7bn߶˻ x+Rθ1]X]^X]lZhklU7M4LWMԓڤ6IȪXCWE P@pˇ OFX>,)AFTvd T0ڶr: %$}I8A8Er9n*G8 <(V-&KÕ8[eʣty*PB)Gp[!g4Y%seq^ xd%0@  sl_)WqC4 "!Rt = GX0a | ld_T:_w;;j^܎Ks/v|Y^yv~vDN+jG٭d~zӫe~v!>r`vrM>PD0,WMB)Q%@VoPy~4xF᠖c >[{;+jQբ+EmWۮgv䔵#;뤮\rw_D,%\Pxz:۸r@Td5:K CWUAe_QU: Hn,X}ٴ7lz7al,Zn&V#c+}K= Mmsͳ3USx%|MBR#)"eD <yG9 G`LHAsdy2YVAG5K&;zL[j 2]ad,PO у&PAyH,51Ɨ^BkB`p"R*"ŊH"R6\(#%$T `<Ģ"Pw*~/ax \+·>W  CTQ)%1SS$cy,T0^:IaZptw\m֋[?m, >:_AA{]uwkmd"ѷ`ϲ!׷}>RA?҉ }>\p1]ӢwnWܬ#"!B/n)K'@y%׋{r ; ;_.h勂@a"+%-WJjiղ r}OD{~5Nh<]haI-KU_J(*/ u5rn[Z~/-žwĮ86S 8(˧-?S:~\O6%tg)Yp3\uPw6ԢU8mPHh/z9TJk=_??WYu=ZAkeP'8 G 2 D9`cA^(LEb"WUKEUqQ]ƮϗG]gZ>OYyAB(f/|^h<_h1m_|F"t$ze)ѧ-aKX^<{iJㅥCyE;^EpO!~X:A{CU1|bҡ7K.?z:/`{/ \-)^# bB/Ji( J(a +3HPmvc &jy勺v^.TEał ?CoJYMWD_)k\zԞCΥP#)sT!n/TEUaiuTVWdUIGtv—yWb`˾"i^|浿}kg_wę3?ϟ;LsO|gƳx_ũ^=?8u0y qaN!u <_<N#?xG?'?<?|?~Ga#h?~s??~>wۏ[?7}Dyś-Q#_A?'&;- ZVPV**GÀjXY5TtZ41BDCD&oħn%fLgNϢl X^F", ܽάٽ yԬkj95뜚wO-yV}nd :}#> bV Hތ&n^ ⑅ g\5mKˆi~87d,ۗUkYz7Fi}q>8Zpb'R*iecUCD#eTBʖaBT48|@/A`h\P|״ohսS]_fHu@ (gy٢[l;aƋc/]mi^']P1ysTkԉ(g+F,E\y~ދG8G8}W !#kHZL-Ű l,"`T6HBl,\K\S/^؛]sJa祢/.^(jBQŢKŭWJZ[KZsJ[e-9e-mk<@m1Z/giHl=oeF IDAT,+aeH\A IT~#;r;_jIH2#[ab+*pc3zc~ŵ[Kk1+L~{ub{[_nlfs͝vncvAn7O;wRn!_~`k7_#1;Sۻ#F'!;W{\ǖ_5 6l ȕ奲iaH p/,eNq[?9aY k[w|]? 7 ܩ;;44I+YoT;o'fnŧoĦ#;Ժor39'lIk"aIMsĒ+Il;$~I܌o7±A 킚]mwnrB0/ڙ^tdTvO_,N@w] ghӵasnXǺٱfۢƺ0a7l'^Mk<9NM N̴ϴ̶́ߛ:gՍ35 SU):)NȪb)BEZYCx ϻ6w} /o\W4VPAC?@7њ/ XI[^%L~˃Y(C$ W~Gz[|[xOD(CKqgX!$kCgx Y._׾ueW'@?^( w>_. QaӖ|} ²kDGAz'yu/x<M]{{ixix{y4~bJ?.X4tpR~ /mdC!.$T^/iJ'ra@8 }Ԏͱ MAb*">eAs",];.QEI+۲ۯ疶memymIqϧ 2Fc̉2Yg L#*$H ѫbO$NƓZWbdL,43TfZZe"W+j &rZkZYjOֹuEWUﭬU7j꽨mV7zk}5M怺5XmJLuw.v/ ,#FWGV`shgpg`o{scҵڳ^tTEm=C݃s]Sm}IDo' $;}S]3=Cp<024:!XvDv9[' >KG㜴_`W!k kձvO e(wrH)SCѪ6khtHOY+6Ϛӿ "{AE:N@b_ė{l4EhD iAM80kQ]8aOs= o#5?rB8vϦյavkzۊƲ4nXk{F';-h}~0^h%Ξn)gmb``qcmb:&wM#{Ϝos}uQx{dO猽NR٥ۤ[%O2`۠ۦ9(2٧M;kjijaM5N6J6AA5_^mR,S'e`ξC9ͬLmMlLlcblmEFFYF}hkikikimy9Ǩα\)V6鶞9<˼+|0._cRRq)v1b`o`O@w`WP'R.BBsBsnsrVҋwTߩr~nՍUwDT0Mw"FݏmoODE'NN<|^x;w#=l #23+ihJäĦquQ ú>A\I" \CNdC8((Bnl'=alNjF;5BmLLK%c1hȊIbRqꄔԚZJz]JF]jVCwqQǹ>Pl:Ԭ*y-f2[ٌ ;ZEOW$)$ʪJV*6)ޖK*wdJC%Ŵ²޼NF^WZ^5=)%Rw?nTյʐʠȪQ֭ƨ Бݕݕ"+5ٙg'&5S)̻I[I7KDE(Q~y{{{uWꯅ5\pvӵ[D/f}ǧK2..|@7{ ooWwwOwo2nw_WE_E#xl[4k+B-)VfL ǝ5>2Ҋz.)Ƶ];OA=z6y==ѝayj c&˜ CX'BXG_e*cUƮUzW;wT :80%o -od-uO',~$,oyb-oFXLF ,oqlb8R~tKOݾy;/j_(垳5{N3 MLl))f6d ˧Z;gXڦY"q#K2=`bobgE<~3Ł/BXRq߁p=1suSϢlMmLMbMbLQFryDC{([(kh+g|v{Ggggwob2 Ԙ0P>bB`o@o@w@>gPGH۵CloẔks+Vb/dw*ЯܩX*@aXngގCn kvܝOꌡ@.ԅAF]Xlȶ0{-zz;=ԣI-O|v"G$5=Hh_W{7n {5kQ 7<軐]pȠw&wWJXwagr$E/ڏͼL.<4_mɩ͉)XIձHYh:R&>&1:ZFOάOnJm,)T yetG#_xe8JBμ슦̊rvJ9RNOU$JJKbQ[B-J,aSJSKK3˺rJ{J JKJszs zP<3IDd%&7D$ֆŲBW.* -]z.rHw$σؔxj[|*mƧR)#jűnoDӮDF\~s!ƛŚŘXXZ8ZG;YEXGZEYE Docow { ˣ,R/rJઋ!KWQ>B`o@O@_GP[p˕|kl眿}.4lhι7 n*E]t2m;8*CoWWA>>VxȺ{эb ѷ=L@=h851ynaZܺ|r=a0ܗ}ddG>Y#&-҂?!,N\ؚ1ա17oEUߎ>ij=UC>*1-.#wq—;@f`v&'QpDk[bZ>b[~Gi]陨P|+oyԑgRj)q(4r=2>DꤴFjvKZ^GV!74oa`B2NNY{fiKzITR_\[\SD.,.,BQP$2(2(" I+slsx&bQXZ078GI=g/ȴv) ~ mnЍ' -=ywP{ )e<0ccgg.+J'J+-r˕M!B*+ӏWfXl?δ %ԽX]JM rg}&U0U$}E^<.ܹȣ*G#䯯|˻eS=byM~Ǥn{/k_*zpԝ[~לc.٧HѧG'zdX[Q,Lb#>nhx{38_q5@DǘEOG=s8Q-m(f(lp-gac:6VvV1N]E{lQw>Y9 =m=2<rQEMR+'<ѣ~}`o@__|<< |:\ɳku5,kYf׳-gkgZZJ|`߉ j 9<5<=E\8^ ._4]G|+.ȣr\>GE`ŧvR;"($ߊ [}5ZzF$f$ N+,E][E:mw~`Sפ4& 'G]x<A8J]|2XqGc׳㩵i ə-Ԝ|nVaovaonQ_nQ?b}9Ž +ٹ).)OΣ=-GYDe8J³ e̾s'3nVlڃVJWId0:S;RPO<dͺ^VvV<s-/feu9?)ZمەwWXWF!#NxYChwJ.x#ZU$H{G }0[n|_IXCUPCpUօk:5~!K _ bw<Ot{T[-HcSssKr 2Wo)c_ .j$ɔ.eib(lyLkTԑ?ϨIHM#XX017133?daM%9.6nEv6_b^DL̕h>[+͟Ǵİ0XepEK~=At-Ch_6W|\y0T0iSBKX֏YiZfPt*E^]F*])R" w^AYk8qy֨/#aos}t.oX7_;W3[#g[QFvi&6AkSxa':qGn8J Gq$SNE159ruHǖOEXX涱6gcG;Cv=v.VQζQvѶ6N .IVT+TkwܝuϴG_4}\/z\yUx^KB0"y`_*v9/?>068*(2(48(8LHɕ,g\+pVquA7ʯV\ -JZv&rrS[DևE5݋j ALp~$r:{XӍDGnsۨ#: ]QIX*'MHaw!?Ln 4MjP=jluH,;("!3$u5y-qAUw0"XVGDG'4PZRoWDw)>~jG=!=.:6*&*&*:*6:>%!ߩ-M|F'r=k -ߐT:d/>oh4+>B(>&'A\؊8&0KOmdQ9鹸gߛɿBofAoFqsRSss19Uóee(yQ F{_SKݥݦfRB9R oUD7e%'u&vv'wRcZnEGT|ow ɶ˰x{Sͼ,f;y^-x"fUm֕qŵ;[譲E^s]ل$ZE>8_rKAzz>׿o M=C|0/\|jyё\y'+>jNrH9t1c5# KH/y`Kyly;|es X ё9kmae#84%ͭR,mU;W7Ip;R!#K zR=ٮmK?K?[yط ]uB'bk`fP`/Chu+ <D?0?J[pu/0*h% "d~c.J.y }G4oRŞ =.]st)R~9~&g2N0 26 =owjղKWKBӮ(r*oW\Sy#zvxݝ;w#>llz7wn!.}轖wG;w$<7!Mddwn$] eF2"UABӯޫNsAUXC&;/"#oP?=5T|,;2C#"Xvԣm-֑AX{} x<>(Vm#]ܱN#Nwooin$qgxGh{p[/gPK7{;irZ͜FNo#h5cmݏ;z&;QLuvOwrQL࠘lw@kolomᱛ+zk{ʪ%ln1 vzhފ~z n0\0\4Z(CEXo 5 |nky*VvQ3J`X#%"p>k8f2y5TT>O.(M/ˤл(MhU̺q`d{A#k TΨQSUVQJk/(Wt9U9̞lfo&7ݗ#՟bg3rª"zOQeOqewq nI9օJ0 .?6?&?:/S:5(M^CaAsQq[q)Yw\zh=eDθ6V]e1ٕ]NQTtVVtVTvvHUqh .]5Ş fo%@=&qVn w z} vW+a{ =DTU Cz^]F"x (G[ƚZǛے71!hyqC3FV~i*]3]=(Q ttOs'[9M G]uc5(GjFjZk[pZxC ͼ^SpsHKhkx{ףD'{3M?] ێѶ֎a<9ڎsw7co$,Ғη|Dk;o:uM[oڲOsˏظǍ[kn=idl;yf7ݠjӿ64[(Ƿ;CpQ?O7?Mvۨ}ݗ;ܨo>M?jjkw_iR/|/uο޹_SOih듫3"Whlyj Mc_kni'W?_|ӯ|þn:-~l-:h.Oz'۴᯺}:?-CC|;}?M ghX@isR ՈѭZ2G* Q5 IT .ctNhB˒H~ׂWwZG`Ω;Nhk:Qm(hmEqvm;mmZGkNK[.}~bATzq;wFk癭:wިmZ>WS8Ω?HNN]'wwdg o/vnuf.#]F;p:qWVkuMZrˉkˆxM߶BԆ7< ox3܁W:X6a_oզ_n˭~ڇuѿ|wމ87S;z6۴m[~h]Gơ-ZEܬu`Zm?~Ŷ6kq#[PθA䤠Y"!@ӨtNlG ě޴Іz[mˡl>ڴc}kd?no>Wێhn?i;ZQD8B\hǷjض6mmZ[ l7ؼ`V[ 6n>b&'tk4@fmí:gB 6MN{-3[Oo3؀o牿α8g#~enMǿoው?|כor@sۡMhJCKj`oAVQYTSǶ]{xQ˼H ,;ݍVPЇ%iy|ZfiymE{ڑ4Ǹ|V|FWj&[}R!=-֙.ey|vLNZ&7wGE;wQ9'}MDO+`v4T<;|A;A7ayCEm_{f3 g@?P'EY'-Gzz-)Sr ޲@rCSdA|&e'|lG"_duf o[,x<oHn=c,NvQ1zz=iYdy\|* Y^QA+X^6w+5!3iyLFW0zjw<o1Y^3љGD|JK;3U;xQW3imaLrtOV JY$'&6Tj[֤I Ŗo Ԑ*j(q p^ʥ<o1X^dW 5 v| 򭉩H(oW$2_ Xe,FIٙ e_oyjK0'jy, X~n 'KA;y>ǖ_,Ҝ@9;ѥs|- h,uoh,,'MQ$2?R"Go,;s)Y~~nf?5P|u}~1XXXTyԩud 1rN,7{ҝݟ"@k8xvtXC[ed55b#L)5bCNˆ ,(rҞ<-L= GVEvoݿIQ@WE, ,o;%GSQ7&#KGH n򣦢 b1YӉ{>UnTnrѝOk#IٔHEј@mJ~qLɻdin)/ڒDm&?EdwV9iP˓On&<X=ш?CHIH&"gs,N__g8O(2"˿,EEщg[@[Q7noTV?PSj2$DD@TY~6I%w{E:CCC=ź UԔZ?_JE!4Y(i3=zNNN3́ UԔZك-ߝ՛"r;GS9Dds SThjTjJ-ϊ~'؟-{ҳ@QToT i5_MOOGb D@9ܴlNZvWZVgjTcC6JEGw.J-|@Z@:<1˿lNWjV5FUQdU-) (p(l;!E3/SKʭ_SبR q>YHMXX([&eUTM ?L'"-NhMhINkt?hVؠ_ULis%n_23e'9T c$zJ)E,"Ē(؂Y`M-a/bY_LAkM![~ T|`UQMI ԆD8g0(TLѴ譍k)<ɔA(EyH!)E,"vq)kj {˒d2寸֔ˇ`!߅,7Cdk__d4QRj9c][ٳ太!4OLCxb !,Z#L|Y - J<ʸCQRhOlH2L6Wnsm32yJ.dXS%/,X)(d钟=א|O:JiVM٨"pYDP(eܽ#Y{2WI˧#'Rk(xh칯OFի>C+/#KĬbѼ#·ӂ NHLd v;!)Y l2ͽ9io(%2F V0neWBM_мX2@ f OG=՚BMoJIkt?l;fO~B4ʗ/_rE_f{Ĭ/R8 i ʼn9G3'&dzr+[\Uݱj#R/.pI2[TN2dYnඃϷ֔uUȂաd͕XxX TvL"? 0RIҋHl4_M|k-?p(`Lʜ4މn#jy&%*7BQBykh/0pZl&A^󥛛 ї_ /"JU2PrwDre˹S~,C L^nsm3 k22xsG8mV PSjjXyo\-ߛWҟ_2XX+Ė7S?#ч-@ji5(SMBP|@P>|dOs{KˆZH˗A,z~ق"nnIoA@!ZmÖ/(*~~->y5ߞD_ܝW_,D~}5CX~WT6TtYlyr6%3#(.c]E;Gi"H|˿KX>)#5+;dPϗ5CX~Wc6T-9~M9;e"vcW `,ߒ]ԑ[uy% ^i%T`yb&9+|ay ]FHDʞL`WO[r r;K jٗG/#o5'EmyE܂"ޓ!P/ ?yeaZz%XwK: J ˺JЧzueBQ6U^짧}!P>Hͮ"-S$ŹEe%9,O50J hI U`)Y\XΝ ؖEv!{wX!DxYёr0?Yg~Z ɫ`W>Q;-_!6No955%4PseeYܔCO\#&,,މ`eV |!!q@j=Ń,?l95NI|`*Y#tX؋[Z:[;9=}CzP峔[~!tP  ]b`Ri%&ry"`蓖dYD9˿Gd,U=ƨgU; -m!?:6ѣ,(*&Cb=1Y fjRr_s 5??}Tl%s Hk2bl )wbu’E:dv&%R%Tܬ)glrE%̿w)rNXDZ5HVXB*[{b٣ Q=̨eԌ1kۣ.(v  #OMMMwtoy'h̲ qhI/'/[!$>)!!-I/%+GG_xbP>'s\YJYt9<&XD޾S||K F8_1-Tq@u2{>Z3ƨc,ϱyljfϭǖWӾ|aI9NLL>ۧV IDATׯf+#c$L(x+W4-7[AgcI27_Rjd+J&YPy@|E׍ Hd2WHOKJYr?7!E|ϹDKN)\5.nVŶ*yeQpuG/yZl!F0vW帚˗ӇGF?~Hh˗/cKa,z_lɕzj k׼7ayAF U;Ɩ1,Rh󕀱1%,/0RM5uh&^sZndh(*PƉ&u(^%߿-ϬbG)"k;zzz'&''пǏ'@R},}yx)#[r$; "`$L!6K}|#܊B(pŖYDN6?ONȭŖjMLf_PrUr;sԸXI+' "@|c,yy GT+?|OٽUYuG_3BK38[BLԂؗȓϜ5{'^=Br4aϊz9QǬdne߾F?*@)uZELԄؗȓ`Ԉ=M7+z^ yẄ,%UJJV#~onni~z^êc T#?~>󔖢 Uav?eW4j?P/~G9FXl?imkS';gۺfQ-e`]P}pCh0.^ Oi̢>|ׄ.|PR|hSx ;Wiy N~/[Z:LT~~҅'y>1k}.#<:,?z{P< W`׾Uǣ]ɎWSr~NJŖ'9NTWtjv2_9gzr{v!f#wq'9Si'%dٟf!:dy.ܞi.<Ԋo-HcڏN$[{VY7&딼{nP%JCCd/yi(P b(K iyP-# n_W3w6"W31cQDGK(g,Yx)˿lyɞ׳ʝ/Owg!6NU8k1ol|(j`16˘o??c˿5/?}L~gՌҖxh*|̌ UAb#!~=iyM_4 _JK3'L鞸زAj<, 44 "'s0P8-"q!he lV-O `!|wٝ@(] i4& 'I!0c" r#J@X2Hc?$oݻ]xQwD˙'hy4vĕ,/5F/kjB,/.A5`ET9һ HIXd_[~VvE>/?.9"z'z"_ DbCПLY~Ń!Y~!#mX\C\ij zDE#gPO~>,_$cX/嵏mSYt,P2}y%#6}뫸dZ^rY[? Y!B '`Ժu SJf"<˿U@K`K3uuQe,,(Y~5y2.{R5N,v #g'gdd P•KW.!?–[~dv5ɫٻܥzsF !MC.=z5Ʒ,5ΣY~ܳ3Gߠ ! Xњs{g7<<@L˿˿;'wo?˛rH=E_`U5cllO??{XwySIi\r=XUa\@e[=¸pppT> M1X8fwϷe軌pO/ cGlƻ389`xS{%3+LJBPū9{\}6i N >cdC1w<3k_ dy&UIsBG!ayPw:1,cBﴶ Uї{˜i( ay(lyr=<:[޻ɧw91b{qypC3If閌<!oO(sl,9gbK5w<#60.N2eT]ȸ@|,M "[S,s96+Z| ?.7=oj}ޭɫgRr\~]P ,]ƺ*_25}fxf>)5ƳĞ=Lk_@I_(,噮(.0|OJ+[x Ѫ>6TC Cͅ=X1@S2`[%ȥ,9ER[[TVBDZeP|sja,ju9ű{.;O_u#Oyv^eN(E(3=E5hJBۇhZIUY ZCmNoO@esnhqSBxrJn1ȮN,Rr{>U(ȡy7lاɇ|rV3Y>)j m HhUY |CKgkG7o`7:f\,n|aww Jg?4~z~ƣs ~kkbE" 0"-=I/)6C۝;$|ɬPLobdKn(:|T{ohjnw{Q}C,?WLz@$P$Gtn2s/TEǗ;Ct24rG|gi|#j=;084>555MѩڞU|rPəCˊؤQ >2wAKX5 \J=p+u+s+u/}J~_g@˿֯`ć[ Tx7G؎͔Xb-rg@6xbio KQ~dttbbbvv޾~%~}v5or[Egj[ya+hmRfu YȊ/>W+;m9fwʶrαvγy[u W oE0GVJV",/>Kq)ZQ#Ěԯ]/->~ߑќ/_!Oa_V!6zǪ8`A+ 9mRfu Yll𢎗E[9))vg ^8~ ?ZD*YͲ_YqVrwM,13(9)T*[5ko x4Jؘ*,3%[2S~]œeB5NjQRTQlkt>*ԚbΛzo|-`Nط6fDDId%XTx-GbyJZ N?$%%Yk;zzz'&''пǏ'MHX͆B.%l7Sb)&Nl:Tu,_lQ,ihƼuA?<]2UmdeKZ 4yp4ᙡ`ia(f_l/4wy兊ǖ @ jgMm#,< ,fZge3l_ x>[jlfE1Ea":,N9fϴ<]H:>'I x @O; z<.#᳢}>ŀj|6V+JOӳbW!O>}e%o,21WV[~.{ʗ邃to<,o[=ƸvuV[~Κqw~TV [SGLzOa ,$L\c7`yBӀ'=<X`˫%"xSh 4slyɛ,X6ވk1<@2|X`yP1C\A_'+8R0+-TzqMc/F><`y%,ozq* l׃7`y*_0ƞVmG`y%&,-pX`Pwa8 c,BˏT|0+X^u,.kCw8&U]M1|+-wzcҽޓ\b`y@=]5PRhVl^cYˏ-vz/1cssS?[ޯ,LZGsJSmS-,Q Z1,J;,bXY\)=X`~XRp&{'8sD߿X~To]А{A"rQ;{ր-/j=xyKޱ|[oȩ?x}۽{zF}g›?rؙHr7߻~,[=/?Q/_ C_`P7˼샗}Cĸ[~^|ͱGy X`I[k䟾sSG nCKF:}YóC,z;6..yXxy<2zOt/w+s/Y&zfsMޖ" W~U]d+aI W~EԒU)gog<x"tUKf7s/|4 w͘3ժzT3_EQ +.m/ +{9Sl+G<!o7T=|g'T^>fAYȪudTzx*;Bd_WO|+_`˄zC8WIl$*T3q<T_y[gvOLgePyix1_}Es22{H{Ћ~"w]I*  H_6|}3 H1veS}Ք+Iَ+*W0Aɐ7ȯ'煢ʯ4*}v6SPj3MT@>AMaK9G՜g|+IDATr{MEmEL[m* x/*5yQ[^ak5lT|W66myGFsGʷ isE<t|Wy9gC/w\|Tm>|=gB?ZT]|q=* ?|cKQyQu+i*x*_@Co[tzTM/*uHWT:w,jUy><|VN%.*߄x*_@CH_T^+tƆTM><2<d_da-vkd?:a卨<[|PAmrT@*ޯW545ˋ1=2~j*y>|fHKӨ+&vޤ)Q3T~.* T>fިQ7QiAʯ`+͍9EʯY3jT@MJH7w _y<* )V =* W * W<;˛<l59t$e+F&B n8Ƃl:6Ӥd_p+BkhTg1B 56cPV&p*\ߐ_IH+oϮK&.Yc{ p+*byS_JC,RO2<˪yNcoW m0`\/kmפ1>GR+i蹺&f;ޯJyitʇΝ?ܛr-:u]W¢Wm0`\O3ޤovө[\hW?cSN}CFպKϾgLͭLSQL ^}e <|PyϾWR;HI36 60q.E噟VWΎϱoR^^aK+S=6m- v$<-ep+oְg/+؛n>Qdo'\(E8әpw2VIʛK\gW9BnXVh5u9tbZ= gd A~?ʥ\gWydVjj\.?vNTâWj M<:c\R3Hلgw_%TWl *::zS.]TWWcUZVɧc5WǞL,!lBgUUXcs?ydiiNˇńiMZVI4j 2=ciYiʛKQyq$$4?ya])Аie'bcȯ'*nT.ވ<99BOɯOT~5[yS3{;X43ǣ?)^hu\幚?C4k#ߋx/2:_X<0ܯjf5s5k+hTQT3ʏ (T~;[5 &cǖ_xglU~l͝S͜;D\DzOd7*᫯n*o"܌~PnUӱ|M=L3%VW4`bz65l [tHg}_ޫ,ߺLhGıoSa*?/4df]Nf494ve yQ55lg͙i|hȽMƾUB?U`_йLƂeSBMFkl|q{$[2?ԡC*$<)#cQEnyK2T ݱuH_ҩ3H*th)=}q5Ł&ro *SM\Cɥt(<@`y9~u}j: ΂Nzeː[hGV@T~6[y53NU5B?BV[ٶFF@Pg"G *̄+X* *pPy` T 4<@0C*Py`3T f<@0C*Py`3T f/D*Py`&ܠf<@0_BT f<@0C*̤ÇSRR "E_}socZȊ_d.$WG`ABVD%tW>z ".gKEIII ".//^zp?h k!+"rI^$I*O|zKhoɋYْ'y<:\ȊDS69+?$a`S6i+%HVϣBxQ?[C,['\nK<=TCCe=Bw 1w .c"|ŔݐG _$*?@5+D|Y\GdBeb5r9nsFV$r3*O|*mھ`m&0N} @ HV>u."dBwߚ`5baH91tS6i+>! N"D"BIY0fBk{B9c&-M+qhw3_ky+ +auv6Oەg/p>mgshm`)7(zO?%W~m"Cn* 6 7 ar}\&HRUwlTg-`ֵcÏ7dU-ػ77. G fNW0fdu=y89ۇ<| "yc/B[]˔rW>W|nX~L&Fɞ94VL, r/5VEI} rDxȂ ZeVFJ 2NpWYXo1ogl#w%n y4/|ĝ)(&LLo}+ cB(/._$ +#dWm:'6usי/oײ3.? wVf r+"v,yAwC9r_J9ʋ I?z;2RYmlL.lrރ\޴i}$ lf~${V铲y& Y} ϼRy󵖸۝Wz6E0ApVP9 ݘM"IX7&Vzri|~VJ;X4vvZ6]o8{}&O'~3*ob*}M:.;y@ibb_WYUu$U~ .dE")?sQk+?:$a;} &mfTtH{p!+Od.v됧+{`ABV$9'sw=YyZ]RR?,ZȊf+u##op kaKeΖ<ɋUg+O3{Y YТ?-%G>@:9Hlu;Ul<!]ulQyTPGasQya9gC{v%9B?L)HK6<@`*?t-]Σt[?)js$<@*_ؒGУt[gjT7C? mQ.l-jУ@0mZ<@*f貹6TqVq*<`02V(2,zKM֕?}|ZgHŒ垶&`~@hԚ4clhb~iܘYx39kq^5tˀ!-7-£;X^/fOLOkF߶4䦉~yGѱnihhn46S7컛yiߑy3dܤ5Iͭ:frɰא;pMd~9͹7gKj([u6M<ȭ٥K--Cĺl!1llD!ߵ"s{㆞{1{yC26YlI% KzE[T^lUrW*  qRy߅ۆi̡/=W@z6d:< =_y5L7}= } =I%=7u; 5򕧟,i6tuac%Py) }f@i_򗐷~O~* _|7øgw85 =s8E\Co_y;<gx+ϡouzqgy& ʻwD/x,3N%G֕g?+//vTu&4/Z߃HHWQ|fYl:\]f̺Ʃ<wΓܹs)*rD)ן{#ua>7ћ6#zL=Xy7ńޅn9z33GF3(3F~%~L _{%؏i3(r_΀OG9icG6c?}YIG;6Wk~ 3a_B/tk6! '%'='߻wovvvȹs;FBy'`0knܸq$EEEN삻IGIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/figures/init.png0000644000000000000000000010147714023111777020117 0ustar00rootrootPNG  IHDRjWCbKGDC pHYs+ IDATx^wt#יIsvےw>ʖl9ipsăɽrzoM;yw f~/͑7h7~;s~N6Gu'?S.٢ӭr;%v%_r<r G?m?x%ݗ~8tI?=(a}N>}_9QQQRT׻ҔW˳ngͣ UGmyG7? ߸efgS79l_{7?~x~F?{e߆w8vضx|w߇ewywk-:l 7;[m69nqY_{g;Ov=ww ;Sqo; Ò&/&v)ݝc;|߉k8\!-6^%~ͭk~)kq_-n=?׳Q`O~߃`o?? XVYY BO^e~M{sJ3jYAG6?KlqqinvaanQ]jT9nђ)>W.jjfe Y9VVk5VvE h%j`IZV-UKUE1 /2BJY, eRB2b@Q* ټҙ\d&] L)0]4dNg2 3Ґ<` ɟb*yS\$%g29g"9{")s41c$!c(.mPnYB@L@l`l%6uH6:"LqcP2lI3Ezc:C !Q@tWptwHlOHlo: 4DtG>-7 4{7yQ5\ XSKJ" =AcX@D%2y(6mT>&LZbRщcE4TDST",c9qYJ\Oq sn2]B$L`Ba& vFuFwEuFwaH‡3:;&WfOJM/*)-ͯ-VTVNTLEd(T<^"/OUHYddB:])+KͲ,,I T5/QKUsլ9f^JQrݒq+55EjVwp -*u ݂R+u)rv`%ʜ V[V-dyYކ?yj `_nw˳w:mlNBrFfphvkv[N;1tM]Vڎf&+5hY[Fac}mh XYmXo62[p]Kkszhnlj7m6n6`.GSVWJVDetK@YRJBU`x^X^G-e*?D♜r+Ϧ"3V9IS,Y TX NGGC Qt;C 0:I@Kh;j+.tC[|B0BǬK@gf]5]ŀj'~'h=Zhh}T6&3XfGb!TO23NǨ| 0DNS k(RAC)# A/Bu!H7M`%Mʍtu#1;1I}1IXzIfHh̞V0Q4YL ʹB

|k6wuvv@nuznC]K.'J[x}l6-R𼒗:`TEmmn 3Nϝ9 =) uOĥO"V !0 =z(ɽ 3!~ 2D6$/\,e k mdKՀZeoեʋWԗ|i3!am~@?֣Sc/B>,LG8Mc ńrO`+h~"4K {Å*PAWHlgCh N)1mAQ-́QAѭAm0lY; qxr553:+&'6Of0'XR 2KrJg_($LobfKSŕEchaHahQX1 /%Ot d"ٌXNƩbJ9W %SVBZQ Y̾H/kWuVI S)FJW ֩1N'%$Ъc<1$H MͤΥg..4Nz;,HOM NL O M  6`O6nifdfV~룛? k65ďBg[ V;M{DBN,|mY^epVP6Wj+-)6%yeCEE#ŢR@L+TWWUH+"H"g*dZ1UjjFajxUa' Wr 0-`v  :|ۿbhzۏMW}xߡDDD$i {>k>k HDV.' *焞~y%Yx1k0$xM$z%x %xY||LB>T]Ux5Ä7N8s߯_X36DOZJ\7\4%sB5w 6ڜ(ue;9׆8Fl½S#}Ų=a:;0?8r08z0 /naF f{.FM-[Mu 5x^kLXelxN/262BUlxڼ*clTVr6wp11 qz00[bC yX_+j`g_׺+~ZZ81@Z KJĤ I(ł1abnl "Fp hh qwCP}G4755Cjtށ* =Dr=MCx? "A1 a.a  r4jKLY|h|t8h ДYЗכ۝וߓUؗrKye僅 `eb)JKFʁj2$J)ǘWURiH20q[,b&%IjBSU)$z݊VO2 kpf^e)jJ&Ó5=}hAʨʸʤʤ, ^c\m@Чb.\4{i:DKc1/F_lt7FFwG^T77S9C#vNްaŽvz _1|F`t:qևt`xthtZwAedˌɃx_[^IkLy>nnn7uut%FZ@n ]jӲ:ǼssI26)a[+ک/hsB産=9HH`>9]2dN菌3F@DL/T4T'H6/XW*/{.y.z/y+.y+/y.ԋ66\6|){޸$zJ5<'\]*Qù3i;5(b@Z_׍d ?,A0:R`g * xiW~ w__e_}}\@֌w;DU^ApPy#0m@xM`t}%2[aLLdys4`MficF^OzNgZVGJfkJОc*)2rybcn ЗWܗWҗcA /,ŋK "UYʪ*ኪJɨH6QhdE#xYU-ȵsSՊ*XlD$@|TP1ZZh}ڙ ;Nk:"t5%p&o=ܓ&;Mo*o48ֳ-)x_RvtNl~^~+7slAd~HvAFnoZ!%=9%))11)%95=++͞]؛Sؓ]u+.))-+5 b@ B/,[ʫ,ÕRdE WH}A!0V2XQ=PQO@+%in^\JN_VQU Utޝ\g=G5KW.xλWsRy]t] @elP߽S[fj{KwMFp:w'uO8s(/h=czCxszB8=8) @@':T{A{-N!܆+G3 ^Z?J_H/{U]*Yy޳Gv_Zy r {J}%W|/{.GWW} ikN1 Z/)Сb'󊇳9 ĴԆČ̶tL:̼|CF~G&3;̞f/5f@e`*t/sR kkfIg>.C. +ebS l+ )t6NW^Mtt(qz%O?.}qUמ~ci:p˙;>u޳ytA鯛N!WP+lógn|Oݧ4<`}~Hê<,#~ǏHg<8?/UW^}kN'϶fi^I7atyK4r=%N5}cBw+@+AUٻp;*-P>蘚;ˮ쌼݉ |7w`\-9:ߚu-/KNqsG[(Z No?7>O~Wtӛ$NBtpbU9"|٩͋NΏKr'6"wf1f{;7;?Bgdd`1AHAOwT<=8P{Hn].?wmԺs:^E}⭋o^KhBuB~ Tӫ!`⒯֝Itaqpl1<EtPu* Т1fܛH hO f~StStKrWu̐PbXC 0-W^#w%oE/%o%/ݧ>D`IK7'e[RF3 &!Z˧]MU'r3ii M qD3S i99]yݙ:=#,ON7`^@ c~4Z$Eex8}qnY]igi^gnː~ы@)v^YaE/*us{QP]9.%!җ.yxڗ]k_vn~m/}ouʓ4o Oa|铆l}lxI ԾM O*{RzI'gN 28.u;qqs⯐tLWG2m'i`tlsnrPb-:P ݠl}c @!<{7sϺ.뒣aS7htXz_M.7ICu@v!xopd{hh>?u :픬|;m<*ݚB*SU3[&66/9:ؼDs9`!Jrw'WCmӖ03ێM| zYwӃ#[IbvAΕJ:Y$a@_&:70`/~bLŜ/}tIe I_$=$x{{EuǒVqsD1\^ zZo48 ϡ᳎T!1;:oLxqzz?WQ*:]} ,5x2as8uګW0TG{W_WyW]hbjwjOW7.0) tŦ3r2KfsKʀټpz~ZNORfgbF;h=֚֜ёݙӝۓf|fgbN޳ zsDe$>P\I`i%&HF1MDn:E#5Y 8]tlT$0ZA^rv27j0T^#*5ՍO}2 H4սOSojy~~3=3~]k?059w}`x~6{A/~??ҟ'3橿?!N9iEttuYpz:8}d>Ӆӻg^IQY FT>;U>wmJ`7s;,H&Ĝ{DgD.4B>sLڌqzz#6Wc4m76tuM-@WCǼr]ޜ΋mmnml,6-y+9魅w!tB {EP'h\&Mwt 8=L>=PwW~[rj5pePQع \ ީ+$$w>!9!}pSѫ XEl 䭹⣽Wۇ!TO0|ل'~$Q _X=bspwH/R'(hf` zr1;_Ux IX_xs@xX# ^EP+U /O 6i Fb{i Y/ՋKrKt*h4kJINLNHLŧduee3 LYBcVa_VAL {mL_N1^D+5 bK1 ,Y(!˪F+bLBe.NWb9Z5Uc>R ;ևlD,b atDcO/s9 Ƌe`\xj=p5َ g;ϟxi3ri`r >4z?{T;;>馷O7uF֙7h{Z |_iVER1^#-kG=#pzS|:6Kg\ečQ5Vh8=iN' /BLANmll~c|F,Ctl?N>ku9M-9#ˤ;C9C8^#.mX/:qzZAiٽ޹JL2][WjdbY,[yriUP&i`|]GE+Nl^ۉ).D8=t) ىRX n oa1tv/ NqbCF?l(f0 /5eĶ\]q'=7`h%,ތ>Q([(FmAE[`;EleS$04z:FZ#iCPlH' Sa~ȶ)f ]s ~uau !mQI=4S|`rHZdfLvlN tS<]07۟kJKMIK3盳 s `Kv-aX4RaJxLq7Ƀ; д8I1̫xsTӌ1P* ] $ aEu}ĀyغqYN t@Gc!mGv駫Fv/g_>/+ȮF/1Hi$ښuvMAbJ,:%4o."Bdr*tҍcKClN,Nm>kR/mshNVxtszo6KԺ/Vp-Ps5A{4{^uW<j)5T8xZ#*{)3@8"G$Gě=ݡ®Po :! *5``xhCPt&G:&Pl QD[@^Չh? 1AQ`v\$xby=m! ? wƴb2,٣Eә3%ص'j=x*h#SʉЕ5K*';!Bg&:c;]Ro/Ks Q{1Fcyg 87snX𭱸ƄoLY$Eke"0oǾ9$xv?r/\o۝ao qރ,؇^\"G\#BgQ'϶҆p7S-iyt*6Al [hSE=gn*z4Na f[[3/n~k#WN5c׆\.FS٣MFhO3-xzZߍ=1AzVCDZSt̺jR1 Zi!}(wmYmvuxlΤˉ 64J3S݄YNOqp!aui6abU W[!\m~aHhoh mB vzp_DW@Tt3v0 ` HdjbzXd*,cD@ž`J:e Pw *?t}UFx)8xCnۋ ûD$1lrh{AG3"' A'dMLgdfe`*efx,dMhhXZ*V+DK zYWS [-K-rT= pЁtӛ8=:}sl[Z7i޵ֳG3sMRr㏓[eliÄI+Py j;mtph;1eln^ۯ6K&Lf̺;@cK~][tq^)Bk\bs~w[cs^׉U]ٜU99c"{hCUG%yN'=y 8]ku:B4H < {ձ΀H7at1ӟ= 7(/sz  -H4tǘ:L:es,/i@T"χW/l.0)\h vTIx3KB#jrm =tQCOHP:v !vhN2Ǧe 'f%NOgdӋgQ똄FOgLL`w1Seӹ33LxhbzcǮؑ2\9t;+vll"b\rQN_iW:f%:}Zgzο!^{v$06mK/;3ڏ{cv:͗} #ʣg?7/گzo=N6[|׾oC^5z`mNX3B7wLK[-C3+n/孏o:Mi_NlɲӽM=$FJr{z!7֣m9* vt`9[A-g^l9fhe @x|D!"d q> hbl7ۉ 'JF'Ǧ 3!NOOɟP=h6Vcvd-%ς *^rixKٙn{eJ9"~)+v쳗vۻP'-V1H'pZ<v%힗[/iеu{M%oڲ o뜍;kVnrgm:;6lthح vIsӿ'rz hٞ^v۶lNn>ڪn&zo ?hfؐe 4Kq{9ylӭ`ĞwSMĸm[6R6a 2b/#vh–k/Gr]\UcN.1+rpiDy\ҜyC,;9iZͭN?6~!H# H19? j!%ˀDR}3D Qپ#,0 䋣]g:@~POc_bQA Nq@*}IJT"~0ށ2d* Á8|C==1}·b.hgxcpb0}8>k,1{<9o2%:p&p^̚ȝUF;a3vrR<ׯ@+jy/U.]*^%t4GXɌQqIL Da_aFը%WPDZؼaV7"L* -]AH/ft="3nj0 $~ieo&5TӋO e-{tBI{ZQW?ntԡm3/=ŴhtwhdzL.u}зz sk#\i IDAT\m\iBtwolzw `Cߞ޵ֹJmN- Lktn]wA-$K*+Q$2ٜoH)0riZ[XFǺ^GF8q}LЍ z<26.Ngb}<3LӦX˓{ aZq,aFc %d"w iqcY9)S:iahɡ?1ߡ<ЅzɾD:d_^k؍t*9ٗ*@,QЏ2-3z<+Iz5oQohpB:Ol:C֙1Ttley#w콀*.Gœ ʙ?c B#<8 Uguڧ:ކZ׷bHnnpt!p"c -\F/mڥ JIёέ6f[huYjZxӶ:QflX掝&-=٢4E(IxEVB{AHδ4_&ͭll^dcs~;mtCs g*wZ~p1#uknF%YAP1,$ G#CQ0!NNwCh#"wSCp:,ja[dAt8K1BO<kr'-sxw#!)D'Z((8̸33)Ùq:"!< D'[bRq4 z2_EY% ?f<$=ʡ u`;.tN#J%T@"&)P BWJp\_ RFk؀}uX06߰u~t5/Z/*V: WvUjٗ5t&4;3@6'q!jɹWWY48ӹ9ku̠қu(wӰBG#ʵ!C#\-X8h;7x؆Êַ#M+ƥ:`zZTt]BMRMJ-ZOƭCH޼YG?M]UD{H\BE\], 7mX͙:y:8Sٜެym~'8=~QmS93NdNRV#1'Úu[G:jN: (8`>&GS_PdND01cu :0NGN7cv̎~l-$3*$ZOM֋N)ȵCNe.NAB+VdZV#VpDC3NΆVht 3 6ךZ'mnպPqUBk\a`^W'@Qvvg0q4س lȆ"_Dܴ^HYCp(U]Ê~E_-&9nV>U|zfV>^Q!'RCr-ɛ^tPYIٜ6Ldme̳%6Ϸ9mx"OoO3g8=>},o;&Gut:I3Nx 4<8=X>!:"Y֣$ ~\n>NAP^NYuu4h}Hl2={YCu.Z:ɽ 8cΚMcpy(ml.'Olp\h|Xbx&am$ .Әӡ;E8tt0  ɄZ[IA0uu-~5Q)? su[XՌY5c\GuyːN᭬l kz8uNmʞpVvN1;]K (wn&25^Z?FrbsٖzMŒ͝* L7Q]RhrZ9]-Oe"DdR:!)O /K5&}2c4n)fm774ʿyӬBg$D匚IiϷN~?%G],wzbLWP=QN30Gh!B/b>`Z?NOMۆrtvZk= avZ5; :)C8j:DYXϳFlCTOWdة9ʀh1oc0jݚ{1sչhݪuΒ0PN3{szسdm,:Y2-,00CCgoL\69}09u01Og&fOܜE[S7)7e8e(822neϘ5wlW7`,߲?mFv̖]3>fz[Xa+'!rmyO:/ۮkKqz֣f1'Lj?R+;&zx,{]xvHz%1-cSM}3/ܭi+yY`>K 6U"bǻd ݢXuG+ RӺӭgUg<x9 Ϟ9sϜzSoY͟t[.UgNr_es:pˉIx]U\U>q:'S**9/6N'Zu:0]U\U>+*o|)pOwWqW4n0{\| t^U E]U\U>υ8}n=G.5c^p9U\U\s^X[mtڍBrtWqWquK^_T6No\i`Yr/5PV:;.| XzRZ-[޼gq9U\U\^ӗ=`B=vgtWqWqs!N_i^Zm4m4\NwWqW4vFNFS&.| Xz*LnuaB6]i_a.\|W}7333V  a{W3&;][][m]{0kZgWqW |6~1RXผ q:xL8?۳m`1lṊ_􀀀?88"8.{zwgLnuq v;w9U\U>rӽ!=Γe񞼀a:?g5Pr9U\U>r?*pD[0{}o**e9N-;oqX߷9>NWf-K9nyge${8sbS1|0p:c7UG-~obf&N?ro |X9;s訝9Rꇽ$;ph9n8-7Pn dc9bI#'NWpF |wON#Js GZZGm^ZN3~;ٖ(`t˼ζ~#w:i9o߁CN ;9@;kݮSdc9bIWN`o`L9c>ɭT'mޚ~ &&럷o5{ì~. !yhdVaG9di` "ƚW}⽛vT,k?"otm 쎂79؜:}h;s!{6Gv[/oY8v!{n#rӯ9/DJn3p'g sjha_:-,>m^9\=y}lL09əS]97_&`MoJv!?cNt-rȷ9Xbn p9_r|9,LjlxԱsnc'Ժnc?nev;pUqu[?xpZbfO##.R zeqU͍[yj,Z*Yq.skux]8{^1ݜ 7>p:yhI99EsL~έV;(N)/㷑<{ŭX hnBݰYŷ=v^{7;ɫyKxy؞0#}ߨ2{s_??ؾ'x]g}|+maam7̃9giKKR*Slp^9\=wc*`r[7?y:uCrH[W?a8:y̧h ;l^MO`4ۅ٧:IvE'To/?Bnd?3.N>#ZˉVY[p?KK?WB[lfk757:br2bnInqeVkV^#'NW9߯q\(?.hwqw?am%R۷]+#%iI`Wh[+ lF `EP", K314 " 2IutP]]3}EtWWշ3`^jEQQW9NN+=9Q.[J]XkB۬fbZ}jV)ξYwkT*#ڊ+E.vm5ꓕ ywE7kG'7Vcg#JhgIN: F k7[p,$s[Wl!JRٟ0?&F-RdclzBtp5vK`rN׿:h<&wOB411¶c1Y:sBu飣kׯw> 8\ͪL9gKnodFppj U_7ovP9\-I[Q7[~ߌ$1JbB 48K~nWpZB[#cӿ[c}RE#2X|zggPlrBcFeu"#,s=2[\ Pvt: H#; >~NW.9 b⎫3N?8=t: H#;t79SGs]5 S/nJlvwkNl~Hu7o~7㰌NG$LXWZ}xí7Gs!5Z#~ge9{llLtSDe阮*{Yۈ k=3{Vǖ3LNCS $]ilZ9AU}twCWO-]}grEk[NZ1);"NJCSt0!,{v_ml#B?ض/kpz7߷}Yq| N' Qҥ0S\7<2J ̝n{*:N. mlU.q+'}On޼5:B >NuR_X@kQ5b+,l.gil)k$#wviQ߸qe^x\T~oSI!tHo{"pm^|ug|/\4w:7,nz(HT_;PT>hIgtwgV itV]=::A.Z{/ê?l}"kx?޿-X:d4  2jF#jAwFӕQ.<>3B"?a2NN/Sx/~NHWҍ =a$ʅ4S0+5V2/ϔ6b K]dawƢW[%M:l?t25޻Ev$jƐt*Zi\WԶw\Tx".OjiGR Swdnʟʘ=fQa'ْblg,vOt.kqqU\Nӏe:EC}B ͽ. tވu\߼yFHo$&pUk}{$7O8TAf3K^\:i{o ߣ:]9-{#N®b)@%Lk8)$bybc'9NQӯ72{IN"ȴG}{vU(عr]|u^YAœG/l+,)uv뮳GӋޓy ,.-8ym'O)NV IDATKN߳eO:A$y}fgYf~k}e\^oAœ<5*HZM8jkC#7I3fNӉ}!|CtApfl)O0Bz~:  _U-pqPT?9}Hu$  a΃OΫnf$F=i藺9>Xoq:5(˚aޤGS0y#;NӮw I4T18>@vVt:q¥˝]bsWsW:CUO@3NPԣ"*97)~+#,}q`]z ywk.?*ݍtwCK!uM3RW.M*JyvKCyJ'}r\-V%=>N9CUFZLLi`%-SyM҅hAêBG :"̈6MsOe3'F-sU~DB 8;qup݌ӷ!  "K_󗾺*>#OOӦ53EtoUq7|-L",I%ijjZim5Snq)+켮vARqmM;7f)mWNQߘ#2feV8j|M;݈/vm񎷐s&9-c'ywOիWp^9aI'8U7Q+{5üaVrۺVrqeF%#Ht)U9^3kZU5nߗ HYjI>"pr&e66ٲqc`2 ,yiQ@m{5۴sh|`tƂ-</ϔtuõ9֌;;QGַNt: H8&4VRê[rdoA^_6x&7LlZNMvz?8ݓ6dAœ^N縦7}u$|wv'WNG g=qz\ӟIx}g5г rݙtA0Gr 6x%^﹡9Wz;36  )gYzB\@_䩒#}1iɊe7IT-۩eKNOHwv ]Adt\iɊ?#9]T眞V&rnwABFNbHHo_>pteqzjm_%:AdR 鵸?7)9 = 2Io$zLS+BXRۋNG\t+*}S}k76M5i!jBt-TV<+/S5;]Zau0B@GBV*8駱 YyTBS}gI6joMǂL{0fmoAmg''2C8uWj4ͷ>hs+N!D5pVVS&n l}r&-dEGJus\g; - }6É;5Kv aׂ@pʅ!> Jm&=:c)u&DN|#5CYl_F_"D М. =:)N7mk3O,zzY믴B-&BQw(ۍb>P,uPZW]79C-jYdq2Nm>#tj*7R6765oKBL陿-vE ^k?Y<[Y>73Ӊ Cݑ\W˫gk8I6HZW6[u֠6ij&&m?~FXzWK6&2d&:h-Ɇȝ;7vE\b<#c. fEpr٦&yd[/5'8.RozBWuzm 8=&)8<N7jԩKvF"OqNl} vQRIBZRes\7= ,ӄ0]O1mM`9:,uYNuu^I_pd_o[/ӗӷo!p>N' 6ݵ!B^9QKh(8w( 5|g7M窱6ӱtst%wɿۯCTmY+;'|њ৥qVe8ǐ@1.u׺Tj:ĝ IO"w,}V^;,?mtK_<1M'x 8}Vz.~9ӓ2{釛Q5h̜q\^$( }&mSKuʣ,iM냳{/2^N)%k47}ؾYXkB۬fbZ}jc#geכ~x7?OSk!%'+uQj>:`zrr;%8[ QE[>}5LvA5ZMh Kۛ7o%Or:]^*_ wS0|j "֙s3 P88NWNX;;.ݰLG#HXspj yBm͛襺t?]szjvmYt/ү$1Jb&r::OFwrv,NwH NG ;y3Mui97Gt| SC9KשN98==Ǔ-RL꿊15αӒӷ6Ps7եfSj" 3tu:=!cs}FTw'U $b 9u=5tAuuM@5tAFt3rR>?g! F~M75AKfK_6 u::-ެAfAZfAA/ATqT .Uj1u~Z]VnkҴ]c qjpQ}@_r[I1ia0RP>Ѐ\ #[  ~" +UzLy7 ϝ/^ɛ>zvà>>>~t$/~ /?,ʫ%֩=`dgi'f=Tn\Ѐ)ྟ5(z+84M\JcHyN]obXw ddt*H*&mL3L&s<8}ouX;bXNkeUڨ%/`qoذG^VWiuhHiJA^I*$8S } ut6_0N'w=W(شY׃1i#+S_ dd +@ WDN'd2.|\CBwH@EZ}rN]VѵҋD','E`yyW+[S_HJ8S d_4?uqv=|*qwح].fY>\8=NHF?_ӅI5L&s,#Js͆/VCOk쎍=./O^^._ڬ.ÂknZP[$H%`ytO_fJE)'F #c cŭ_5_ 8[Q_HXKyJXvp偄/b2v:矀L.d7TߘjP[8hҤb]h~zЬQ,iBucc1ft-l2۪֯U4%>;_ދ힂1E8nL YY5'Dշ^L>3_)m9j,oC@.ӛ' k.Ӛʹ8g8+,K9rZ 9? 飣dpL$|==;i%@FNd,~Uqi%Jo c M5Ms,yqQuOyfYB@~oNi]@FApC޶ ddHEVEbVA;}͚5CCCu2r><{hdVYD",HFu[Dʄ#DiWП*9dV0tfJ3W 0)Lf4\&ә䒘IgH<.kNCQ&;'L|i%ob1%@4.A3*2|, Q4 ff*`LɑF$AjZjb!IrzBhڂv+a|*ϱwE[?'w_ut"kA) Y22Rp$N~ņS0 Ŀ1'ߴXc| mdžNWŝ] bX0 Q!갳|&JZ?NvzJy,h=BrzUH"Ȳ$ٺIZL rHNGE]^þoi7J2s^SX z$$$CHSb1ٵD|$ă٥.*iAȤVޠr=;Ɲ^ 5CC.t:^}[kif%Z/YTBHIDATKKPRsrF`UPCg7*&)y˖-skw7w[֣?Z $ž%ʐ#+~rϬ;M*blg m 5 -3L.6͕ t:ѺuNOT\j8}CZu3i=1Pgt7ݤKL|WzrWm|0Zt3ZIvR=TWn~RR&Nw`.7NM/NN/c5z+Ow%]'ZOGݷsZg (k]1h ][KugYٱyY_WYU  / 讂D:8.ݷ,F聸FeL{`L8G U؞RͦUDb3e,za3Ey̾EgY Ye<)ˌcoA׭[ڻwonn.h^zgoL%KWӟBOII|⌤IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/figures/manifest-tasktab.png0000644000000000000000000005577314023111777022420 0ustar00rootrootPNG  IHDR-1?wXbKGDC pHYs+ IDATx^ }lv'l6Y8d?kc]{8$ccX68C d<-t1 Sf Hc$BB@f;`]u}NꪺU_l6   h P A*4:d-AiC H'ABA:  IPAx|uA  Ij֣ uӴmRE!uhju(cAt "R`=M5rl &P brCCC?뻼9K.j5l%ڎeŋoAfO|´8il}A:u|0:T`y,Y8acuۏ.jlEۈe utMXɉ_^: 1Pumx79p/ ۔EW]e+F,y_]C&HǓ=?[/ebg $(W[*ם, 喋u$yD]p5' )u|0:T`,8 Dx{ }׽x g|Cub>W k;>A7!i!j QnӴe'a#ބ Ii} :Sk ua,-T-s-%rH2!Ήt%.U* ݏu|0Q\NiZ{ɛHxg̘AS^uJtmf\3. o_1aQ3& .ta:BtFwwβOQ ~JA+t9oE&LI]aplec87C DD!iYT#!cNG;sţV,STO'r)u|0Q\Q"BA@|9# ӌ]Ӿ~r7}InB{蒍?Sj֛t# 8S+"B'mo (9tɘ|rD71Y~fqmbv!m܏a|q7/-SD}tf"ZD>&1fQ=V"iC:~g 0rګXwӇFӮ^3tUVe.,2Qo3^) Ch;k>A7xCAԍ\:4iWZ]&9fj3 且SYͩCB6Ƽ{̓4Nv?S/iHH>xZLyy7/2_yS;VEt(pN "c+$g`2O˵~th_kyn /_UsdCcOAJ&W]+2Pl,}ѓ߳7_3 yiҘ>1).4lZ g shD*98/6$:cOv}䚟s/>x綠²..`t d'}C}Cٻw%f ,raЎys]7t:ۗ~l?(u;S*2FѦ8d}uA3#RrX?@f" 'q7^H K3I6K)3 զ)*:"dZφ?bǯ%?~ߗG.}g7,㡖c"EA\Ւ,)gE.0L/[~#,^Ȣw\tH,c=u.]g4$H'X'Dfu 8f9n:ל)o ]ζaB34a7С J153KsZr?vpcK C"8SNK=Z/ea(quǽ,%chVuHB{Hrh٦>K7[?ꊳR4xktAl|wOhu(H_yz%$' j9)qܳ穧[T/9O*\{:A-[1C0٭pvܡ?w~ʳ|Ҷ;'Yt)uȋzlC[D^z[/:)Cˡ!ALt(O]tKaO7k?qɰz+:T`֡Cd{t\믇Vk`97g]N-[1Ct O=J PE={ ,^OQ3!AL!uk)?h͡CffP 6Kgۇ JS,[7,YMZI#XY3e: #KW?o[G^~gݾc뫇_t%VIܾd'*;C.X9OD{l~!#CF_]OA"HCH)hwS: kw{S uܬCSlw_? FB{hݺuK9}Q2[Y&(c۲e޽{GNd׮];wܱc۟|'xb8RSYobi֡ݷ{% HNC PC#5A"Bd}1=hu{٧woOlt!rH+VxyrI#ōK03< /K/" :r+$$AgW^{umܶ/Gv1!,|-6?["ҡHM(В%Kutfpn"@ɶvprի-Z?<`ʜQ R ݢС7$u'#%j CxnV`n((Stt-eю$rǛѮo9ly @NYAF"瞌`T,C N-EUv/_`b:;wK>ܿx"T6o֓mٚ?ߞ5V4&j$R#>:㐊-d*bm[:f~{=[PD=#d'?Li$P:{FU@"˪Ut90D^"<Cəy3ێ;=tar"#8rZDl߾ BsJ[ј!\>["u/԰ζb؈،kDgy(Ӯ]nݺw7|S-"Au>{`_x mEc1Z|Y):+ (ks >"WY9cB0MGy h88UXgtiFLIDh.kd^-kKgb$4U⍑[.m]fͺ뮻Mh…f_FE`p-OFU >TC!jDu!bKXԳd:G!XECCCMǶm۶W^y_߷ojxrΒ\ۆ6n!:/thns85kF~Υ/HTIԮH[Ib컝9SoZi_~xv(+?ZܹD WuPճRB\*T:&fW,l"}n*R9[z?upYʩ+\5m4"EJ7oC"0Ck֬Ylrx&j:N!Q2"H9GRÒc#vϫo6㕷}85 ֒sO9&娣ʮ嬣l|e< X6I42*SrELОP tϐC[:&8rMjsm6/W~XEd#V|f,P.Q PksL;q|A b!6Q MC*f=Pضl2::zȑ{xhݎ{5W-ܺj&!;]t՝;ӰC6as .J."ZetH7=àCr3:O1ey5,O"Vory{[Q>!R4)@= 8PC6y=qĉc&m]'O+X"{Ѭ !V !(y ї#HTe+b:͛7{7|X ᧟{eփ3ܺvpU):gϮ|tvqpS';s3ԜD1 Q1SX$KDo(b6Q/ҡčqw`-v5jiJ< duȥӱmڴ^#:D졍7|`kw.۸5;.cYk&:49+>ϐ;~6,eߴٳ(I=N՝\CLL Žl NdՔ\!%qFI]zav:C=qǃ§DDr~uv{g{'26MOzxFrV"DXc-Di\ eNZb8[ 83_cZ!}6,o|e]Fٳgq7tMu֭^zʕ$z衇~ȿ$rQMO }g]{ 6lx-|֡Cv޽'Zfgn}{5kZ*?/~_JAmr-[nx!Dy"겯}gugE!z `"'DEŪC| )#$0?B2L+ uN`]r~CD- ID-bFɮD{lj)zwHdǎ۶m{ꩧȁWnVV裏n ɺ62+DZ7~$ԡK53FuT9d!dA2W i<+EKKmG@@ك<4^!V--ozl?R!$ˌ$%K,^x``w߽uT3xc:dBLY{Z}:gv= dI =Il8-PB%P!p(AWbȏ:8P)C wkDB[U{aim-:$: AT:$ԡ\!@P;(C)uBCtѡ53ŧV@ 4Q+hvJČ!ԡuA!C|B P;3:OVS :$CMA ?5;C 2CtS.%k*t(CF]~6O=4̞[>[~|ԡ uѬ:DiC>|7{JPDǥ#)): v۝Dn#Ja{uH%"!(c#! N.0jC.WC#nkDwSҮ- i?Ŷ Q UU! `!jfCԙPg,߀XT!$shs877JJ%ϫo+БVgxt[ Њ+LdhKm!a $[ؒId):HtyʸYK IlWz"o@{t;'߽n^C!02`P'Dp!5VJB[I'2ef4o /\0*!I/]7M2м-Nu)O y!G{(@C;$B\/7ˉ:eꏧt~U*b(DN2Yn7  ,\j -#Jt5h9}A0`L:Ԋ UWL"B:}"B7ipi[C,.u-o(PjC14*C=##ۊ ]gk:488Hth/q!Sw-?tVL{ EBchӡ!d<Q-uhhhh}kO]ADݧݳ0MrQPBC14Pw0/!] pSCm!l 䍧:'_aM!?C,!14*C9u xG'{>"sUDj͆5JetiFL(@H;wz*C9!ѩi!UV]Dat3g-ܼP,CjbFzPPfdtHWQ <| !#E:7nG\:Dݧ,>'oj]!C| !nY9J| !'WC0twTshu>s{u!y S^qؾ(1/Yާ>wz: 5GGD +ĝ*:yWm7PC$h,bsuQ( ܀:$DBz !m7P].ݴ;mOC!y(I@AB7d}YapڎiDz.R?h,ԡ1IN b,:DXim3mDC.AyCP\Ch XCW??M֫ )d}YFUeuȄRP!lu:NK:q$'1:,C<ÃZ:TPH1kzϜ<go tf ~5quvhM6jMS?؄o'#<*!v#AZr,-9OS&~!B(k̥]58oN<̹an\nP-i5Mrqc9C*C Jǒ7a]㻆XJG̥^zb:uh'[*1T{o`8Oӹ՟v0"D)"$%9䣹IDKǖȆsuia)ggiR]zqKѐ~w!uwq_zO IDAT,2uVFx!(C@(eL$A&L]CJqy5:4A\~CZb3)fL L,is2jZəΚ\EN Eax39犏]$ɹct6X] T?IO/ۼ:碶7KN.0jCe<,2(YY"*-=&f!=d+Y#YGppߣEJ!x#ԒJN$PMI;۔83pLׁZ[<:TrᆤC!2Ǔm1GL> 2ef4o B8yb.]!Ɏ!kϪ_+:$ Y>~ C;Ned~N(!w{nwZCuæԉx,,4&~ M^i%RW5լs:¹:$DBz QD3zh! P.!Y(AarIrS):֝t& );l@!P3S2jMt!?&98抳8ib뜊?DW`Nxmy EZlv @ٟ[֟flulc YBP #H{so yMQ(Gnm"=lEnAQH쿖5Y, KXdgwIN b,%t>%9C*CعuHCܶ+!”6,/VX29bCc7H?PR\]t魜gտC{_{_N %V =pS:,›!5tBhI:Č zϐ :d/']3hE~J_-w@1Uá9YCю̸/B_UMrqcC񰴶P#°3`wCt_\via^o;qXFC@tH?_ac~S8 RrPZ?t,ivYlVG2ԟWE*9zLW؄ C@Coځ,zͼ :d-zz3)_:wF0CꡱxDVY)zPhI-H7U-¹~>6L71wYu:}/ku(Aߣ$ΛI6<:d?}_Q6:J & )d QJf?b+z?=dJQ fgu(ym[>T4Lʉ~*|[_'? ?4Ƭ7?C"mqKYÿ2n5W5ԟW`@X:CjbFzP!%$dɓl:F>5s)[q؄ C| *]]sV t2ޑa>՗MrqcԡuCk-ꦥشI{=f?%^OGTc(+:T!CR&SAC:$R&:Ĝ=pb6BW8=o:&98p:tG~lN]w:uWr?:$RKr>ƺI+byMxL!4r9g s GO8I:8C"u!`9"-7A`@XD"Cd W8 D\!w{cDt_GY-\g´>dn !/MxL!4Bth]O/ѩk>?{YLC}'G):$F:Z)J#UFLbi1Cy9OMrqcu cW=髟?g<[k-o:hՉq[(m]l$I$b;>KGu=7MxL!4BtGg~_3 V fJPӌ?t)y;i$`ӡFf]BŸcG 4G'L3dzҬVx?F$'1Q[ye3Mc/5wfIR3CG~iUH.˻(DF 7 b!~-Rا_x]O2*!wlwA )dFFnX~EϞ[`Њu zj>J_ə_M=k,yBɦ| f@CRgtHaBB6 AE!;V\xκ?`ˇ3VIEIy:C{> ׉OmˉwSN%nzz{*J #:6<׍bfGho.GŵRuuc`S:,›Cԅ:;3ߺ>`jP*!6D=d\pOaw}9Tx +\2Di :vkQ:X/o(BEW#ד@_]c "Pr@XB%M5)!+?p_coѮ)=M[O4Oa Ҙ,FJgw\U-tIlC3@+!u㮏zZޗ-'%/Ge1,VCC3.dcOG5l!ьӬWҘt9#Ds_7f)Caա$E{=?pS:,›UC./~q˗ϛ7[nfy(eڴifzV\:İt{Gf|!~AM\[~tO܅'bhI8JE/:e"E-z~3=# "t]wW:$p`ԡteF:eG?_$g*q/T>06ƅrl0/?y-1 dN:i?u+YQ +g f|((ۣM׿G"E*ڻw1ba^%DDhŊׯoZ|HB7H|uf<<#wYz8$ꊄ h<5؇f~̏3(eM`?ۛ<"2^7>?W7t™.dEA2C)EHX)g~)z~_c-!\\r͚5D1Vrv\77Z&6KYPނFFQ:)?T2uQ۶mC[3^hIކƋ غv vs)rKT)tјl PPfj_lm Ҭ)|I;[7^C!VV:g : ݜE$>?r,CvJ5ei>qv(J)(,ۓV6Y[ -!ePJM_|Ʒ~q;7 M_2Dj43}̼\X[\,^5]U]?`k CR1`ځYD;߷di#{}ꐻ]RMY^B(>uH9%&퀭-!ePJM ӡn~#&Kh}PR{ĚClEV@u[3^@B[n"my`l#!wDLLK*TI$-ZB-!ePJMC>?J78K#/gסCuLPn?F_S7g : ݜE$:CvJ5eMoIסvz4ȇ`nhqE}%AldСC-Ԝg?D;`!SeD9QTPsrg 22}@غv vsPuhۮNc}x'u㟎"]:?D # 2_NM Co"~o~gS8ξE ]N>m[8B5BU:Dm$qVukb7g C[?fuwnYo~"Ză%*+_"6 7mD8-!)OU:D1Gq:)TownE'u!:lFt(E*C+TC/TCĜU!HݜE$>o7oY0_ăϦ&=CDHBnRClz$e<"7߼UM0ߖ Zz:$2:GֵHy#AB*[7^C?ICDl2y9~Z.!_)g;%y&D D_w4A*5xC8B5T غv vs)jMM^{ȺSj!PDm:bI q9AZ3zՀB/xСzŸ$ѡٳWXP]bV^h"%}&MY:B_@˖AݜEAgdn C[C>RvPi)mB#}sd$gN6{hd(GEh"#KT`h"w[[CeIƜ!Șltb'PiDj43:"JbS(-4 GR3$+8s9=V[3^@B[n"PrKT)P(BЮC.L6:J5TDܟ[[CeIPJM!J'v›i^!k6l:̈́饅#C-IRJX| g : ݜE:nTSiIgiQ:@ I=уd(lmAl%AB*[7* o:TI`Di_b:U+ +# H{}C!ph CR1`ځYCvJ5eMoISu/GC`k|b,It?:J~j$ҝBaN7?D;P_B/CCDuƋ غv vs:萻]RM4[[CeIڡC!>Cn YU:t( !-`k UP HݜEӡ nI[_ku 0D鐻]RMٌ7P`k|b,I%:!d<n YͫzƤ:ΌIWvo^="C'=?lzZSAu@,=58᷿уn+wv|s\GCvJ5e:χ-!$UPP|I;[7ȳo֔ߚ[?ܸOo[o^GA?3ҿEmX:g qK+/ t/`ځY8=tm:={{a)bV7rKT)tbReȇ ˒C1_NM!4Īdzmr]?ᾧoݹ맻^u:P1mT{[3^@B[n"ЦwlZ K'u/e˾6 6oڸ}됻]RMYCڽBmzc~ߠ EEfݼ)^/"E>]uAl^s-.W{t6mZq jVh$u)$G'R<"3¼ e,FR"[3^@B[n" cg{ީ7Ξf`6lظnd]uAl+ue˗q'}~kwͷ\fݬw.9P嚹jᑈ/%/~t+Eg : ݜE@!"B_W+t~綾ue$|x">7rKT)t!QJdK$$.(ݣ2<%h>=lSE>]uAlTOv7?xŔɧ/_ xӡ3!i NIK?ZOqZZd.þLPbֵp:زeӷ\u6:nTSDSP-?[[CeIڦCtӌuN[3xw_qWW=^=єqĤ:)dF?kO|NrE +צ"|ՓO꫞u'ƕҤO`ځY8_]2:nTSgl5/vYvPh -pK'|ih%WacN_kFF#œo?qdH/ףLGq*3:H>_oײ!Vg&$͉'jis&4*r :)dF֮[éL9e"u( !-`k !)y}9=H5@d CIV,(`x~Fh(ݗL8+ΧDF:s">2"g=-ނ4yQdbh߂<'ҕDfB9v[غv vs}9w鐻]RMٌ7P`k|b,I%:Ozf/d_Q uhDNC[я# ".X⌕˸iFL'#}Nf!C!zßI5CnM!J'v›՟?SJu(OB\e\W:dm!a.];9@t.QUE>]:9abB2|!l80[ cG7 p= tzo+~Au`k޸8+С[_Ӷ:}LڡC4A~a^ao_3GܖA#12d&cۻ>%HQ: ##d]uAltb'P%rME$F),ު½?S!u@,u!wDLbjBJ>y9Paٓȇ ˒!HBaN7?3J ' V= κg : ݜEh-FC!(CMgD7$::SRGC`k|b,I]:5[Q(Y 嫞tPP7 B@Eu̬!U2'go !GODzP~F<}z]yJq`ځYJ˩!wD'8ci|ȇ ˒CBMDrH\uwC$%pঐuXe=9?lzJQ{#}~CW u@,u!wDoʡ vYtH1Fth<} aw `d&_=CUQ_PСk`ঐuX՟?StH5FQ2wi\t<ң`Y*CjZui[[CeI*!14ZL#`tzo+R/Gu&y '5=1f?d3mVlz:?{{.!?DEcDI& ZC*b;8Fttl];9@t.Q,ӡT([<-!$!w̗&l:C~BaN\:TxȽTB/u%ߥzo>Ņvʋ[n"PrKT)tH׾71~I ~*bDVf"X}\p0QcSN:n~Eȇ ˒!HBaN\:A?4ž&4%M[/HCgojy~VچXcZqK|&lzuA*l];9@t.Q,CM_DbmH#$T|/Kg{?JlmAl%AB*[7* uHrM/\uH;:$LEtHTRA@ڗ~LPbֵAj2ۑx5=Y:$>Ie\mZ\9J(JUlmAl%AB*[7* ultW:SyEe#4bejk,ORpT}B/!Hŀkb7g%*Ք5)')RP".K6Jqk_? uJ=~EP6`ঐuX՟?T%e۟)B;tH?ĭ1^?jO 9֗k`ځYCvJ5eOpVlmAl%i鐲)=}?_!ޮ=-`mИ?$s}ѷupS:҉ RPꏲg ~ y^)T(I4X ޗxNF"?xCn"PrKT)lmAl%@ NEKv7}`'4q^?.P; ro/t"M!J'.HA?)!-`k m!0'ҫ:$' ..:d:`C?_"fxd`ځYCvJ5e:χ-!$mסhR./D%p!y]: ~tI=#@:C!\(VJK%EB/u%ߥ<ԇ:D&At.Q,!^r10Ҋ'z=q3A|T]uAoMu4;5:3$4EΠt"8{ )T 8ߚꐻ]RMY^{)"֣4JQ1#C!`>]uAoMuHrM/)b!fuH~b+3B/!Hs%*Քe:dL$[;ڜi*]UEjCvJ5eOpVlÇ ˒CBC̗Ap5ա''MxL*!Cams%*ՔxSe6CeIگC⺧h!p5ա61^B̉Ƌ ] 8ߚꐻ]RMY!-`>]B ")|I;Α:PY W&< 6(ym[5AFNn:tKT)t:Cx=d6]oо oНb}Pu"Cx=@\%t!o.@bȇ4B| %*Քe:k__N?ָ.Y@vb͓#}DC^m[Cؠi ! Z ͎I}zbw#Llʣ~_>_ܕoǎ][g]tbȇ|$.ѡ]RMY^5zl.!ZKIBP 6lڡ:c} ! 2Lb%:Ty7CfA{攌gCPڱvh@vTw%)c!k(]CMgDLt:(̹rMP.QU xV9hahm't̬1B#' ˒m ~:UA8vYlxRsӡAr`A:!AuA$uȖ AA IPAN: t!A!  uA Z/QAJ": tIuA ^ R) R! !B: !Ad! %[PA6(B: xE R PANPAA:DAA:=X.IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-cs/figures/nautilus.png0000644000000000000000000031444411534217015021014 0ustar00rootrootPNG  IHDRJGsRGBbKGD pHYs  tIMEuE IDATx]g`U>lM!@!&R^;"6@]AQ{ ׆X@RCB&Ǵ;[B"!fgggv= iҤI&MZ };cT.02$"D"F`"E4?Q xZ'GD@`8"u61/8ƘH&M4iGn:'ٵ,cFG:/T%ҤI&MZ'%!" 2$L2anQј~:ʆEAT c^4'1dhAqd'Y ^@b/M4iҤҫow7! @c-iNqpqj CiӞxMgZx?N"ApTbCnrkD\0a/(?>[/ r%$ҎN@woߴe%k䘞 CA.U/( U l$jI VqӑBdq;_~"r=!95H7!cpkđQPXGr΃΂ܗiF[d܏TT %7o5&Zxt[Ia~m 5cAdX,BN39ki+|ABAJ!QE tğ_zf5c˞yEҽyx]ؼ%<2OFE]]Z'&vZ߱1Z$ áp"VJ*JˊK+J[e߿?Z " DSo%)z\ 99%\$CV$,kGD@+" Tz_R^wѢE(̘;gqnkwp?ޛŁB+g~r$$ҎZ@8Ã2/?X7N(|*r3 N`d /&~1ܙhlg;7r)j"XpOymPªciYMu@V>;l޻Fp >ue奧tLgH%OYD4zX9@+ 宓QE[x<1痀JJ@#{<@ȝ4A."%+01 l'> sYFJ@b[(/ԹM)Y\Ӵ@( 7xznӾwuSꐻc 0\^].Dó~(q rvٱoSNVN ]K箙3p( (o'b:7Vd@_1臕c^sĥT X܂@xjGٻoC s6Ir%K#Vc/o9@ݻ5,oӈ)1mmڷ=רaZs۽yۆ~-粿 h(SX/^_v]; -JJ@3|׬)df23Q,q'2 "3Sq*&8MWCuV^Z _@;)0D\/&=kȉ/[ҕO1+fnڕIFMԬsy-EvѲyc7oߏoRՕ#ްqC۷h'K^\mQ4DUdunڤ醭'2RTRWZW[jVX{zylJ?.(ȷD+=sQEQ@( 9}AQEQ, ox㑅r, آPq*-8Eb5 hwSDGr-3׬=kk܋#lp8N(*9Go&tbucrUH[;^0^ѭ1ׯyųspmR=Գ~cZIqDiiiӦͼ˭l߶S)ʾYqzFJ)^=uk UҲM.|g#(xK`G ^P5@F Ҳߗ5nm2J@3Z7{E+s E%|ytwkQaɪMEuJ~KWm>ͺS읗?q-_vCk0꽏niGvc~{M'-Seŵ(<7m~9p@~ys^ ;vj[Ig_~ZDE{Esb0.!!3v,Z`,~'3>DFΐCdYc^HI?+Uk=3#:l^dȴ,%?u?szam|h7 uIo^8}\k4Toi)s; g rTwݺuhra=.̮Ooؽ#7~JZzzfLΩ,(+޶/Ei8;tD"F*C ia P4GC]t@0=N&Y|Æ_\4 aiHF} 0@߫hH\))<pߣS}>ED"1Ƥ#R: U|~u)i?de ˎ7u|n<1ON=i]fk _ୣ;vLZJj$LKK}`Wt\ @;T p5 Edh/Ø!ٳ(Qz>ńc~cՔ%c0jY ~ws5yߥkpmϮ9̻/^3- [[Sş<2&\0\UեZB|NoӼ=9m[s׺V L|m6޷۰-ZԩS'%%^hP{E GPAU] SӴIV8[nNozx<M$Ptg v\G^DOkƅ!ѭQte qA+T^uE N?%S=YCƍ@i5CMORQ@SGJWj)c=C~{)S|uդo: NϽtо}O$0cAR] ""2~k*F*Y28jrNf0n=`\AxKxBf8`> kb D.H҆2}ty]nq!%Tn6\(ȘEQ ž{ի??MvNFFFv`0XQQ v{<nRU$/ F+s+)*sP8o#z.+%%EzFhlυ@lD FOv{]Djf#hpf6LlDF`ԄV.Ck//Ō.y~[x`m hᲗ>k8u~Sn lhT8c51DNcsMjIO`dpmۑDdhxղes]Wnˢ: 6g³Nw%p2Uyځс~֫[7 ˳l߶knVzP!X,;zUD@EQUUay<^ Vdff-XACEq (2 )^/PBJSHAZuM>x)̗^[td*E4lʦ3{d1Wm1QN a"6Mab8u"Q1 ;YE Į'M ҏc'0D5.qkZ;OfG58FڹǏh7K!oyfj˜_U)~Ƙߗot8INP,45k1PYda8V\JZzj6Z4o)ԘzuZ NK '|O} |e<~M|xb>'z޼}HaV>JY\b VYQ11=$ ֩eH":$kUAQ)k%)h[Ku׽u&fϝd[6Jx7ԗ^>^MD-&Κ31F^jԤS"/W{P2뇹FUZy@AS6mr|(G(skot4kNfXw{)/2!4%[ABLW\`z若PeJt^! 4E`t ̟efM_r0K<s Llb=%4"@EQUUt"Xfݻo޴yϞM4.=TmwQ#ׯZ`@Ф%,Ŭ=V K`bQtƣAEFAjG&lgWߌjy=H(&Z5HNWGvBTȘ2SFZR\~<::#*Dht^^M7nEz4 h4@ @e}A҉ $-Y(=otHˀl9!$HBm{^p 1YVod:E  sLBĞI[ &ZR<h߭ C18rn;OOOo83''iV͚޽Kt~JCN=뢇CCxU HSQib43@̐^ƞ _,YJ} V1gZc+'9`\18GA*5 ВS_ڹSE1}>A|(n9ڇss^cF㣛{RI=4<{&=TNG1vA|+7c,C !9$aPʼG6QLHs*CpcLLQ&O}};tl8״YYgM{LzdP9~Pa  BaV|.RBgd(WKWEVW;kc-|%pg_N_R&ܝ:ztyph1~;q~#PEŁS_;N9yJJКF[߁?4sW!]n {{s];{[:D*M~ Gۯ3K*@#.=TNGH#0 q'8 =A@BxU`Y64%f,'"IILHJuIɭ+KQrzG[H9>77:OӽN*ɇP{Bl"BqI` ߩS% @Ea7Ӻ)SyHS$5P5bhGi\n|U!2pgvo=K❥ ;6v3wň˓)!q=I3AÈ,_E%׉aHEM`2\95>kz^9o>gxw=S~5~ljEI3pvt{?%%PN/,e@1~hMT%wk>=S}$5PԌ6Dݵ7;ÅQgLѫ"+Ez` (SQ29:3 HhJ"KFVQV$.GWJ6 w{_Z*!_Y|F8(|8M]59f@Q@O쾩zeoxcO:S$rʭBSp05Gt)}QT7m ƞЅÎ7#[&?'u.0*cAPn]ZDE26jlCϕD):'r({۟h{h s࡮yQ^7MC{3׵ f 70@1ƕ!C%Pj'3aQ z?Đ1a*EϴH$z\xn׮ JUF`/^EeATimBڹk jo=;|J@Ja֓Qhh=Rx"cTQ_c@8?xae$Tu -.* pF!"hQko[Qf7۴q|KQJ:vh0E*=Tg2#O̎ f%cxYE VMV Am|mLAm'/Ȗծ:VP]NGfBC9k*=褭,Z4*Bض@-yee@Y,*- z]jo֍/\仯@!TZ^a!TR^i O[P\Q\BM8{Wzrӵb  0` "5鑐pCE*_߉'(DT1xF귵1Ǩ "GjJ0I;z<7``嫶77!z\O۶ry7i&4&4Ɨs!fBKh޽B)0B#(52c%R.U1<7&U&V;ZsF8A>,& xc:>!Ҵ+)>tѢ-<ǟ~^7h$ &a>[HIP}~7=TPw3CG%r=*LA`HzM{}'@Ƒ[7 4BGA#DB@q 1[őT HXsĈx9I^kk5 V8cF:ZګPs@d^FH4C!+8P…٭j?صKND"P(GQM$CI@<!0 o\A B+QF/FOA8x̛@@ɥJ*eT%xڏE,Me.kbκCUY-PNL5P$ hTӐ% ~P(T,tP55Ι0P$GPGL1x%c)F22A2L]x1%c!xlbeo+ ҫꜥVpsPX*u*B#/ǚz{!^q٩Ͼz^rx\.Uu@*=TH3uB U%VNVl%XtBN GL(x(UOrmJvP4?.v{=HTӢ`J IDAT6kAa(TRŘN%CI@8Bv caeMֱn/ .@0\DLɒq(&D?s-\p5z-NE#&eǚz%C%УDBJm(g &hMG6^ uP׵F!} ##SU >XH+}I@I@%пrF@Av b]aN\ʖ!5$*(_p]dJU3.by,] DSE~ GƢT*MNG,UA1GآJIg#q0'^DZ0;ڌ.1/W]kqjzA1h"rCwtW>y'rDw %86%Pir=%+ހ2`fY! ]1ZCz}X!@/ɄHP(u.VD"{ȩu MsbnJuje;ŚOFP@E? Tr4&zH*$Rͦcg| e&6*eB!\!5N,bk%0!%% m? ?~ jOxCƕ<}'9!ʙBNW/,T*MNG"O!v3=bՌ+ZE{Q}^Fq"sB]*1WYE:?]&FCTш4t,G"Yڵs yP %BD[g Kv-r~Y|yOGc,B!ιΕvܗYW[ (MJSn'"(V%H YE~3΁ ^lڵ 1 TQ1ŭ 1sM@Zj͛7egADmAuZ-g|6o&mڼ1#n HII3OVgM٭T_t~͹uJ@cJSn4ˑMo_ zdCEulQNfAzhK+ x3 jGa)Үmo,P*~~諸3IӥKƘY@s:|ׁ@ aMÿ ]J&=rJ]M6Cd-@|+7Y$f`^Cv0mc~u͇̇ 6xsr6i4s˖^vz^#4I&PP /0$Bu]A&JT;2zq5Gx,RRKRbz2_񚭧`ވѵ_UvP|sSUv*g+ 4 Tz8a946CO+c0Hh$(fbPG.S>aj.˥7&&&E BP)拖da!gD k2hIsZu:cYMiЬGFQ`'żi;C4iҤI] b̐MzBrtØ~q6 qXp]{5uBb$QI&MI`)1ʉX+*lhTa#+? HE5.h (Yd]#!Eh4Gg0W}LIcN~>"E4iҤI@\!r؁ jW%}E$%fޯCޯ% NP*Ð$rN/^eG<+++x+v&Hz@t笡Nz~s$f[Z 5 qSWFb!fM181l2 ( 2C>z9'"h+Η3"-OiE-$6bH۶WrC>﹭몵+*zL=p&MD#e =Hl4H:(U`ftZ+IaWk=jlZ_x\zir0I^'A--qЙC $4}ё؈ELTBz$"NcChJq8ٸ'Nwg3Rt n}eeee<۾%_?sVVVVv oW LNj5geeu;{/jVUMk};j[nwy>[eeeu`Qmێ#©:<8@,4TYmNsxYY/o>ӿIS^ޝ۶l>W5叠۾ɦhp3:++},Z3NhռX]FHz Ҹ1Lc[J&:!'+++q/,.Ԏҹ uĉj[@@"0&8BprT!oD#!ƀ1 %=H9ULXMsny{p3_-Xti>p%߼0lO10Ͽhj_zw,9y>9ps|XWsWmƟrEyJ{W ڵk}۟^+mкN>QÎIoB_猹]wֺ]Rqؘpz.yOو1= 澽F_f|y piNdƦ~~wVf>0?`(is~Yx;;~ߥ.KVtPZVcec&cyяws67Ξh7O8~G;^B/m[] lZ:oF$,"2+(H㱣[8q;hBAHD !2 ]6v}Gg pq?wR&jXcm7 ֪Y.sɠ&<1sZu~sa0Sשtq&M7KcϾvQvâ^{9 GmnEC:OX={n#xhxCEΉЀǟPOWamYkOۧ[Y5;wm:JUzJ|9ޑ;;v oտ99OHA+W_!1[p$iA[t kd %@: 7HDj Y8qpٜ6_g[4NǜU??iNf=1tC_N|ж-XS#ٻlYaέS@ZOOYolh5,}K kp ʩS0Z~Ttc ՞ zu,*Gk|_1MnbP \ Ǟs5 \}#XPla1e84"5IܙkGQ2O,{Uvm[ vpÛ~{mk~|m.ozR}Кg.>vFM]?/ܰ7@Q ̟rÇu'>=6t봉nAar<&.z7oݵn~lC /uz>vl% ԫz轍DMN{mQ,˅{#@pt9 ՝ Fn77ܱiż{76kW71RuLEEcAbgH #ataFdUUdvd & \zXA} ?OQi|sk>]7uj_E+U'zSw;{7|\&thÏcƄׅL<&P]7=ׂ=֍=Əv.qfh ssOԾˉu%s3Ntkv~Oͨx;ёjڕ~F 8ٛҚgbi6\aLB ;͎թ rN]f1#eg8%)[؈{; 2J}fO+'N˗z-de3#|I=rU;<^޷s76)b̥PQCΌ8 #ҖsŠbrSu"7Cb!V:hB1'!?F?qpʯ@4i5NJ% #47{p4VBYCV6At V3M@1ę@D ĬUO'9 uіg=rDGHRv}hŖ:IJ`eFq,xGBR_B8_Lb_bjB(kQ$(|bQ|d̬4iҤIv)p2xub`m>` (cX1oֺ }cU(3p~G#9ʀ"sI&M#ÈXN2$@2|1`F-Z&&4b$\oLA$Nro[1;ޅփVΑU:(ҤI&MZM&)FcS7&l=l%X11Cc9b]>1\H$Fb&Nb.$94iҤIVu!ĘXD3g C-C$Sja { `g:CAaÅb*bJ,H}kud7"cMִiҤ4c z$Y>&06&Lժo O]* N!rl1"֣Z:(Ҥ~`n@FLT@Q(hz9ZҤI;ngݏ =IKb'F%{@$c*: 0fUsح _z=J((ݢZ?Zyooܱ1]nǶحM!:2IVm͘BUs[P@[q:0GPiJR΂ 0Y86΂b6fĉBYX{MGM\N|8Kiþ߯?RŠLA@ )w.N>v[{HP"˨t?a(%faw'MPiZGiVk(2TPƘb &Έks=B70aC qzƔHMa@W۶Y׏?K^ZBՅLEpH80G:g.~a}ڎCW,-(/LhzLd 63#dC:}X9CI@i3 8ab-pn0U16F0-c7[ 5* $2_|lP_Qakt^kіU1*.DI#=o8V5koǽe^p6|.?}, Ȉ1 q@i^h+pSɱ*MNb9!!ފ"<@S!? ;U**n|nmr eGrjGٹT|Q)opmڳUϻ˽Sז+Y6bkÉA՟ȑ*M[׈;c!Qbc0XCl1ʭ0If8'$*=}\_";!%ZWȰG̳"AΣtn;' \i9?eErjWۯ*٫~nݳo0T9g>?==#)=TP ¹]64 g1Y2M*Λ"&&S!a9Dnu(&ҩ \멎߾b#"uIO |9\KOlH$RZQ`ͻ(Pҽޕl\&ܾ M?%~Bau v#)=T*q6W`+DDHf}W3.r !" Y5$"hě$9,IWMbS1ElbvXtï-I;!GF[@e`r wmM32&e8^9+0P̽{;Hъ yѠc$(Gc IDATRz4 h~q~X@=@I+(;H!U h2} kB ]V[6& .d"x`XHNP\bIϬul3hW>» G[ɨޗKrjyb 6=fkݟLPiЪA$PE8TVTJ+%e%eEIGb]W?:1&| n,d- Ȓ#g)8Ήo c=/)/hQ"Ff8ᒒxoڧ žѫYVE_n-;da JPipb c0S 0ԃ?8bA8!r"&cz z4B{'Ԫ`…?(TNbe5iֹSZy-k>ue奧tLW"Kh+I-^߱rYv: Vύ^,z'`KtHzTOXQM(LoH QMb-iL"S!(Сpؑz ˡ*n[)I^g%AZQ-^Щs!T]24" Bƍ?A^qpݔ:XC״xhK#iSPcڬ/۴o{Qô{ MZe5 W.>=ss\- \΂C4=O ~HzTz!k: &حrHW"XA,Ș6pn^bȎNk"r y[_0Ul\3YDܵeVco޾ߤ~+Gܽa㆖[oAuOzۢh ܴI [?Od4R8䀎??C@DP%X> q?~ۻdહaO0^=l5%xa.xHŁ(UϜ\C 7`q9s|lQq\Wl`}ꈓqW{SnSnUHѻ1'FM6s6)҉9qX`0@F9!.،Qո#AΛؓY.Tt@J}ξ贈3j`$lԬ"xdZR(ۇ\ Fpe(~GZd7@"~oߗ^/?`-cۻ ϧ(J2+q9pChWa:*z}owC fjJh1e SjUZ+:jz{.wVoKC;F=3l廯~>ihw+l]׿qYhwcNo]j̯~Zw۵ISǝ3=|ȫ>6d|p%95"V`3 I(I2I#Q vX%vqA"H07o}ҝsk6S}ʟKdz r}7MXw˗Y6˽;- ׸Ku׭[]v+HMMݟ;r3ꧤg6mRNySNH$9֞ b͝OU[QW=wwuB;z8гU`}ǟy‡M_i +OĜyh(hy[/6l?s4 3CiHF} 0@߫hH\))<pߣS}>ED"1Ƥ֘)H E=).?) 6M׿p=ɩ'kԌ]rQP+)7{` Cw#>!`Ȭ!`bBWv} V91bF_*"y_Mۣs&dm1Օ#n'ͯxU#ﲘ*+~s*^>.PUuoP(--mv-_z4tyouۖܵ$S~#_M6EuIIIz'!ڤ9,c?;aS@n7ȝڝs=vX0n‚i9/sn#?sGf_ÄI0'O[^PKf&x9.?^t?O"s;kص?֨ z^3. gn*+kWF Z̝5+Xp-2nL N;3?|SvƼ^3cʽ_x)jҷ{upeqׅk^:~473⋋XG2F7CCA!*&%މWGqxy)fKwZ<}J5ZWt5Cwf 2Yp{8k@ŝҮS(BAس{OVVVzn +**Bnv}>v\Zz2 !Yt{ RXlB5=+CQE(\Ck~Rŝڹw7j;Kthbm@wݬY6>Ʒ`k 2}Wpex H&و\In Hl .~̆ȕQ@zhM=o:G[rUCV쥩﬏`~!znv䔛TGDDf=ٝ&:̎ fEOʱ0jrm>#k7G!$n]A9iwj3QEvyV&ެ)> W_]k϶R޳bӾDzխ moڵK7/'hǫq:}\jlcU / ji6Gf;&eVm_8>X) l@2Civ9Cʼ>&4*Dz UW4SH!t֣X1fR[ǔZ*zhtW6K'kj (R5ič<^t΄vJ^bpJH>Y "0l k'G{5|i? i7 >X:> ye7ߝ'(OꉗۘH1T?Rm'-vnNo@ =}N,:9=k|ʕmn_;oCғ+N^+P_7G@ ŸK{ctf.u?rs)4ٸ ǧ7ot5zrMNPs #02NVbĔ TFY5NVI#&f?0fm:q?7f\3UIRIJ;D@}ʻg5@aTz4@H?P/v5kbq$\_;1"ʡa}G`9,/V'ad2b9R P%d>[13M*هnlyvhigp.xZ{|䅬w_aW޻q /y%wQT];[ @57 *M)~{U@P Z@PAQ(*JE^B'mǔ3;Ia緄3{syΧPC# 9H VRHQ:P 9>,ZsPDČI;c%OD"͏}?'>;ak8=7 SrOѷvqׄwYJ Pa(esm>;+yw#E|Vcf*?uU5}17zjة9[ZYij @Ec 0-! d  " "bdϹeG0"RpM~S&Qdڣ|ͱujkY|'ˌED®Pp|mvL}8e6BTa eD8" @E|vD1jf߉~ @QP4Q DB ĵPN e1p.B84fs*8zN3.:Nۚsj_/ze5X;% &GJЃ縫Be_sq dYƋy/"#2De T;wnSh,WqlɖK'ٹHAwu/!iÒVd0Š@]zˍjJZp!;mRl)j6^A~Kt%>Z C_L`*=4 #d j:!0LIDmE%-HkG@piAd6 V1"U z3hjG q"aPaWTe_4xsQ 6냯zWoc2|-=(/c$N6'w$!-@J5b:4̈́%o A S 90)XT-T$F1UCQ#4dspHIV)bj BM7Ke BCLƣ5R6 aZ^F@*@4~PCP_J%t}Z97@`pWR;,:F9 ׄ$zT5 +?r M3/ɨl7y2JZi^z0ƌs=Lf%P9Q1aG&}b} H.QˣsL "3P"?caAs @/pO[IN&X[]:ncou'uVXŝ:tv ㇷ %0~^DS`硬8PH:Lj׃Fgcp1CVP+eq"aPaW(]ђzeGKBfqI~+;b$dh${<^rDGِ9r("" @EYvd UMMhYY)DƢlfbEf^eWV0@F &3@3}xM̎,*ŀ><߶k9fg/rP?KnL9fg_с}NYtj9=S.8S*zh$64 4,<.H|I``b"$Zl¹Oc(0Z)g U|>$^®P)obPp9@tb]hGbP.;D,{VYDmDgA*zD@21Tx Y6݁ .0Ic;GUcETC *bJ +cq:7tU \.H+Q٪#lrFl;QP YʥU \!򒲖y%a^ 9š5ma㉄ @ @ЛfZR -$!Np ?capd:T:8]^'U2!zK>U )Qvti @ @JS֒ % Qa3g dɈRfx'M$.$i*5~B;^ j^*L*Lz=Vz`)ՏXD IyIvZpѦ/AS<(Ze14X߃ D?(_H@">UTT*!*d)4~Z$ DkdtXqµ}M8cj4![I"&DŽQ*L*LzS ! #`BjChOPCʬ8Q҃ 昶朓Erkz rֈ\46lQv+:pPf )EtI9.I|>f]G*GW2!~lxa)5oA\ALCI)yh顉?Jfffjj&S>˩7qx*k@K{#;$_۝d#׍An f|{R-APl3cz=E3c,--v˲,:TU%YJA$@Es|*aր$ ƿH֜A  EG,^a3T\yD¯}۩G-?]яVX`a (#2cLYPa9=J @EdgW*>T 3p\L,D g206d~KY 1&IRLLLĊ~Xv%<_FWV3&&Fab  @7Ȳ̔^+ }D_$ -8fs:KHH,^qӖQQQ#Ol٨(IGLLL6EiΔ9p8DրTT*H-a)SAF&I OJw 3nb  FA P @~ eyIX;QLɘ\)k)-9C0a„ ,E h,Xk:GtǍy?iE!Cߴ5(„ &LX a!Gl)|2/|H(„ &Lap SJ"Glpr!٦!G"5&corYt =-ރ4.м$ <0Wt\hKO{r7&,džV&0d "Y Z;1xG8\{9XP*p"1oQ9ϵY$g IDATiQuMͣA.6Hٍ sOTvg S Y~e@2* D0h!pp<&KeQ"zL}#ߺOC<{`봛ۜ?xN*R&,%X=sj΅tIUX]50ԷFĬBQw4zP)uewiP6..jˑ (eY9CM{rѯm'f:Jx|$/dR2OS7vX}t4k}#>YEK^&xӸt)MڨRBCS+khRqqqqcFfcV|덛iqweK{UhSR`>l5||]8{*v-[6,y꟯=;4m4xW⾎O&ulYt߱Z_v7yt XXZ~ZF,d`2J 䠺d9+Q/1]#g5|w7:/d<_wm욷Gv\J2m7&o`oڤ\u=]^mգì­_۠l^`F,g'ߚ~lOd("9](4; ,яk /ѻsw~7@V mR LsU{n`5mcǯvV;?tzLۚ_mc_uK眍uzcU]nܤVX bWp_X)qDhA! h UIxA4 M Q%t4RԂ0#-=8&EWhZ6WX̡rKYӑJ}cFC]wRCh49B6TvT*r|yNd/vw]y07H%j6~7Mfɛf45{ΫQ-R|h04Q}vcYr|XI;>Sy-|>ڮu21LX)wYbr'e:[oBd ^9ZNsmK+aъL\$X|g=ꫠש|2cI7ȑK>(츓V46߫ \M-MwM>f9w rentCYs}6tOG~nN0UV2uV ՏB&0+"HZ 0u&Kc uf@Mt#V%y£?&p- {o>/[=mee^(Xl`4]LWW_:|"MGqM3OftCag뚳Y&19pō,&wc[DZ4C4 nuI\,Xl9ІԆ̶m+'c>upغSO ]s٧%A~/z֭Cuz l+64h yŢ3BX[s DPS`N$d2Ā2@ QyÅ҅yR d4 )4Jy{y"' "[Ql%Znt~/deZ:yQb[x*O{M^Ivtҫ ?Io_t6>mOr7nς{Ӊ-n@hѫa''7^ ZkYw>>[tKi>†C4{x''AwCnڻBYo 9qYϿVs(oA_^k4u_gzԈ &hRN{,7cl%Znpe$%Z1ig.)Us.xepeM:sȟWrQJuO4ɲBXH&CjNNj!ccCCd !a#p4CՙCڬQQ߁Lt*hMx'ضُVXa55p1Vɔs{[;ƫn@[~Wi\I3lXU'@̽/a e+5=Ǩ^9 _7L0a!>rpNfk8bx/?|O _Zjo 5 -&2ihl)mut2)Ĭ/ݳ{B GWM?{MߚС+VѸ߆['K4Egu e$%Xb ݘq)5_v>r>v˕kkr`:0&M 9ZڎLh"MWP´;]* f<2Q &Lی j9Rb)FY/-EK:j]? 0 !G&L0annCD=9'w$KzXsr?1&L0aL@D@LUc{ D \M ̥PǔӢQN*80a„ 9J@VD50oaW/}4E3 \(jTp0KE0a„ $E((L2CIIT98f`0lG0MQ|-K'S\92RqtQ &LB;Qy gN2rZ1 ދG&L0ar1 è3 1ɚN>h9uz12S"qIm=(j>םsx$ØT!=(_aGWITTz1%@%_9"B&E5YR 2~L\JŐ] I/|AXTt4Nͻ=Ty]~?'Hضr8-&&vk]G8^Ewp`U+i)V^SsIb(1!"0II!fJAճ*&/1%ԊUnWk CuUs-eGɱ}zK}l3~)IɆLBE~dǪ__M~oh40;k$qH蔘]bv6 l' c ":߂0,^18sMHS]T:C;rj'ke=v_%;lDדd?ؠ[)Z~b+tPaPaЫ0Ui  DT\&!$ӔIL@ͭA]^6]T}K "` %&ؤc{Nl?6'cJ6(%$?! 3N׌kQ=u>O8"@O*L*LzUUaQ>!2#ɤHbnY 0 Cz@P%;/MTn۲g=/Z׽U&ˀIl(9$c"%O!oT{sHQ'ZO*L*LzAQ'k_'MSt8zd%,4y|g)mcT eQrdQP}'^ #j-:}|E3JzkzPaPaЫs :RKY丈PIU(2"iƐ11!SWLD$J`Gp}-xbL Dp^3[ƛ)>j_/1,*2Rh=00]udHBR$_}9ATbtp¹w9&Qr`hV#'d``W}?}Õej\zW2.>ב'D @ @ @*ePy=f)5ti|h $Qau7|6&8JNm=nO2vwSz ؘcԃ_{ʲy~Y@bPn000hL@Fh Ff^`  eG!-LAu1(dUc*M93s`K>{D²d,~agZZG~}}ys&DuE @ @ @ƍܩeP|#D2&C|`)fRJd Ro1^YDRP@Ԝ+J+LW@6EPՕG&8%|#G~/y2SHx<)))?b򊮗.F]rvD @ @ @h8 O@RdټV'&zsb ",[1-(D\OFfo|6\둁d%1Wd*բ\PL_\çw2Z?5#5dYz_m}{ɖ>,3*G 7PaP* UPBT;0 pes(A;âYl RQ6oTjfŊõU)in۝yo}UNĄu+?X0+gU: ޚ))W{嵟-}$!D3W)#F@0TzYK"a8\Oh$ %YCDG9}L,uJȰ'^'XĀsO3gOs5ԬYHz0?1 ?s:מS[HOE;Gz}P՚Y^Q* +Pb5 $0^r&D5}"*d?"$g}Gck4i/./) 7 ~IԪug6x2=[e+&Vm>7)[fg+WD1weN%OC;}Yr[mߙ\zxUG|ؓ=4*g\NK7w/2.2R}aZrkVu򅴴4 v)PrïM|8##rIӼpa:+=ۋۥس_ Ntf\|_e0Pk=^=4giK汨z)eǢW͝մC'ʥUWb޷p}ʦ~}y~ @?%ĕ1Dd Կ 47zfW"?93\~o񋓞t6ddĸӧ=_d\7ޚcyo@Arh'#E$m.'GGI~Cp$ʎhrI~KvcL7רy7cH } F&2 6;t4yCTKlcTbOZ6O7{WK;y|rcs$tyJz ܔ!?~Ve:[Ѣ lmOMKsyKPa_Z>X*<Ɇ)#@W/QQK*?(v5,C_u/Ov~{ԟwh! %ED g1-fiU5-ZϏyt\Sl.|{ȺS͟m1r=iЩf>+zh.qOE ׼o/$?ѹ,qBʠ #yA"9t]CD\aG{Ķ3cL %^8p$#r\+>h+*Pn'555-=\ǎ^Fttn~S6VH"nNzRP.Ny/H5)p\Q_O'z-S}Qy4m{1 IDATҕʌ1VCCz _L"!ECfsrJQQ{pEE)y>TrIQM&%[o+3j4.oJىbBE\{܁>cΎ7a˾z겦8-͏XGK=73 Re(1mED3Ƣ]yn&Oq‹&lV0a=d~C,d}G=>`*Հ:fXٳcE[k;lRl _%щM w{3@sIڃazh 2:p7f!Zbrn%@d#C<+y@Q.o{}k4ߩo\)uicC,NQtIb:؈D7: ~1_V<yj d4wfrzo,?1JwWEJ @@Ddk\CEvAcV7j_%IF@X9۔LPHsx0MhR8M:;P3}BA#ڏHO%@@~'$c8)"F9DT0P4Y%~e+De3$ʬQ S4B+= }?`Df^*"x:OZܘk u,JL[ (iO d  @Ј$)PwU"Q8Xĸ puuߖbTL1S%FX4 OQi1)zIc(&ѽnVJP6]`@݇W-ݙBkYNVs@7 ^VE^yb,ejȴ)ᦵ)0 :&9C aw4 ?XT{= LpFus^mjgЫhg@%7"#C]L%pT1+9&CF1N6([x6JY٨csC)հw1s5}m'IOc.ժH|:TPa7m/~OԽ)xil;s?8v#:^/3Q\_{}=ԂVʰư*ED_H/1gh$|P Q0 x܈;#_m@MZωNؚrύ{”Sw5a|o4 -SLԂ}P fe -i=&}1; @EvCz(S_}Ҧ^7ԥicNl I骾Vcf*̀/ᄆ% اcА.+ҫMeU}U8]5 zafޅB]a"4КE\k^͂yVoxT|o,344d>h`B-y,Ӯ_q|UQ^l': $%N*zCg[6\.Y*)ck%|_)R9J'H^m5Z]ː=&ʹNG\1ӘͩL9ˮWJĞS8mkbϩ]}e,땱k|cef?_.Qͤ@*l{{ɱ>p?x9%O *zj&l*sJ^׬aHP8g ׹L#&s=b5/ӛ:,oKcZ jO_n2ȡg&A %C_X~J=AF> :~ @Ev;hN?tyckLX+6+ư42mؽyhN@ߡ@*CC~#PG X z3]Bw4LʦX0.DK cnQ˜]t@V $: 1FU=֟>=_dL7?o?i3|ѪJ &Nᱢf?`|DL)E&s=Dzd 7]ED0*@E&8 Sg8Q=3;!|$J|#hA5UZ$ %~ "z00\]/yQzCn,' 9,YCRCt7̉wiJ1ސ&ϫךoejf=U*Y%J>eOVɘlD h])=far@º]Σw9~hnR+ȲePbWN$zЍ%L2)4/9~X @7%z;fw^IZ<\aޔ43=9ݡ,T !7*:שw ?X~;լs i;~bwӽ%/^ ^=MJu5kBiMPhTtB@@`֌\~dQ ign߰BZ, ˝FU+;˷_- 号z1 Bo}%+Sf4Bm^ =")UN$zЍ(0cL#)*^vIl1.IY9]xeCPz,FkʭN #Z'$G5w 2i&H$k$ej#3r&nKYpM4\ (}x=?fs!{oBkuEhsj(Y7"cp]ns{(v{^-zuoSe'׼_o/ot9Ɏ(l1ϷZKǒ>Szt`&SZvϔ C.L\ii"=Q'ǖ;V!ىAM(zյ3G9zz*r[uW|ފ$D磻UcQ6Q2w-]!@PSB.7&{(^x= ;SBP0rp>_pD $I_)V<+D,v.; ŋAgOtPYeQv1|`#"Tz9 !gO3 :@̎rT݉+YV9B6?HG=Q!3|#Ra>z w~9_BINPVUr9M wxa5 fdDy< у;AQ؉BP$I>O@(9\<6T٪ z0C)^Ps.jX u.Kp:+E6ן(drK0`օU"v e/4޿Zi = >QHz>Oyo)PǓԐYsݖxENl6I|^CDYF@QND ro&@Y q.R9@^p0+"@אNa2ˑ5ÕS2ղ02˥hj_wu[h0AYZeM8Qs;~ ,ˈ '[OVLðH(,jPw4Yb$QxN-1v0t1dQH Xl uHU%U7{h0kRC@ DV^^+IZ1شhŃDA X9N@# '~r)9>O$Y$DO!B^̤DwZpeБ!dr CnX chrףT4= " 葄, !B V>`V2x/~dSegŐ{'jph|Px{T (G bUWxmdàh1ִnN>ڟ-<Ьy惾!d% @)LYG}I4xG6 ?§LYP@G 1fW4==(ikC@hZ Sap#N0(J&e = $d,0'qnf fG-K=5qxgCV-َ@Y11)z=Ÿ?^-^e<5i_`2'#ˤS rvYb$1%z2@YQ{3#K^DXg`AYΑ9&`x^^'wjq?[5 -pEG;84h6.]A8Z@ݧ*W/,!y/D =„z͊KD֐KoĐkQԙefGu6)<$(H2!Zpt&k)wn 8Xm ɠ"1>K(_u]h2XdGG%333##C"zͩ՚(lCS+UX"Ҕi,ߨ|4/t\@ RSS].Tb%0(hovI?윒3njժYBym֮Pnڔ[ 6n#uҁ2: CQ|h1(> +rj$@l( Y713 .7UV.o!)k̠FnwJJ* H@ucG읲iF!џn {6P賤WC7޷iz"XZZcn3Pui J*< zFz H tcyY%9@6y:C%SHib-eCģ(Qiiiy?|Pr QnwtG?Z `e k:|@iii111, ŕ|h(@JUcXRbJӧ֯Z٪M{gS!c{Ojgvohϩ]^+"{ߎX C ^b';\v~;b{67C|t{B܈~N~?gݢˇ0?7{΁3jsdמkS~_fe3|;ٰns=:^\O1QmL0V,@ÐlʒV'W" Z7Eά7Ĩ!M"eع d^p\>7?q%*~>5ÙG7Kx\&J~fy5[4iL'\< dܑVΫs:`(;A(щM+:V=;a|A(ŒwnC,²U+6"XKN>.hD *J6)Ȋa _#?H20| CA :W0j,,4PKp${eraf\ ven\Ҭ?l('Jf 2 Þs vy=iI^ʦ1S~B-s A͂dHV $dJi娼hw!E!OQ(Tdbtwoֿbt֓aOg`ղ?ٺܶ[cLϦw~Kx&H=0xvww㈛ ]y ^v-s=z@1K9*ĕj A@JR0H;֣T2ų)s˲3oONzVy(ty=y}6n?r$)S(rm9EA]шuLgKJŞxw{vOhӤ~~D?7wjQfy}`N*6S> ],e_T-{OE)k 2xR OA=H1Y>UJ"ɜU0 ‹N ͥ~}s/uF|K|G?|E6]~ :dS7v/fwE6Ҳ^(%lu֗Y?r~?JtL`I(l a[_u>墮.f6ryڭדLs=D$ѷV{3Ǐ0;acv9$Khc IDATĐIL&_6PQ#'LȚd! ]eGJCFMQXFuߍUz`C3|ݝ?}7Z) z|'+˿KxN$ o1^8@ c S@^7+\%E;EMXM %Q q" {[o޵~ٸ-G||qS>ܵQRq%+?2b1e9寏4W~׿?e&J:|71$UnkΖ~E\Y\5,WeȦ} ;$&vXӲL^^6%]!yob &YӡWcK/ur=AQK\bOҩ[RjMʗ*WeȖ1m916KzaCfS#D #ȄVI!1o2Gn?'x҆@bo/s/c|as2Ϭq֊/~q9S?y.5w/WI:WM T~ [;Յ]}}}p/c++ȉ'vlTxm^N=țZoڭ^rY,\6虩{co/#}<^E\ 2{%.Rk> 2mg};:ўCǎiccVES@cZ4rZD$2"!H2Ѫp2!a@.G,>i$F'4w,G=;KWm9oS֯mPĎQe[߶s [ok7}rz exa֨>S%yZ6Iq9O_{ָKW}xȴ%ߘ,[ܓoMj~V'("B,|1O,]zW/k޲*pP c{J:o#c =d]>Y NBߙ([$Y& r>j`-xFw\!Z+~(;caQe%:пN2`RQc_IXO<$e{΃)@*Q&PU:+f+ K ]j;wk5kcJ`h+*pP S?zkrtzdX>ؐCqhIto`Z)AhJNjtJv!soWŷeCIRdchf|h:|e=nߑ#|PXIvL U"&-͏c Ţc(9dd&5؀NU\؉9oùGqM3#xQCG\x:ao=m[r L_,]|&1|q!K?X&GIPs( do(ӊl"+" 0 f!2]!iUAۏJ0Wt|i/~~*윙x~z>m^֠?c)Ո4>thO'`띮O//?|ROaХo6?2yG?DN{4(XT7-8W/o-:z,pw6O M/: O,ҢA*s}֟j9<ӜȺ®*~Mk*97vNm8He\^TW_ڽ]"s<3U7!ӓДFF0a|C xZO0Fi 51P~@zalEaQp[%.eaG! tpwsuuW^ *8>z`o| <ٺh)OOUKw~Ě.٫N:`=tI娫`nY⳴G_+zŽycUWlɃ^gg\3*Wgguam27 Yz׻hsn6ܑ!& $eO:0ɥvGg=¤~8Ixb,R4(::Wh?t @Ӳ/Ӕȃ\"@8L :8+r EHPIds%h q! O(qD*fl-&y]j>r)9\g<w4f]`YqX2F tN;gd0bB_iЂ'3NѤagþ8ϜUO(pFgϚ#ޟĊMko-Ӭ¥#<}V FPwM^{4t.j9BY012^޳x<= 7\ PHVåso5amY0aO8Tz\r&jK׏|oG! q=2'mkqZ*zx 0xy:zC_Tɴi8'*n\kJ.m`KdL&84O])tuMA}497{?>|FXu+; yfu[BD&FdׇԫH^T F7{}jţޞwl)Cv3u#!9S~|1@cھ^S&9 )-};Ϧ3FN?q =Sj\f?wOΝW$R)$ƈ0eSkcHϚ21g!zkֹQ%<0dFe9 !be0A\ؤX@KO';j5wP42t`LY]rx[o>@l2p%MXձ[z2>ӵ:̰h6X;tcU˸ksU!~>>bʰ`{v=~r Sȭ`nف.%j&s֌bZ:+j{w8k+X˹+µ'(T/pe* /[ye ~LU5)G)B|NA<}|NC<~L Ͳ.9o"h4Aw2G!h>yJSRW9UF4%tɜ:QAޜ7FʓZyD[%+"A.o44Z EN1AE۶!~~,k` !mXpQdz) A,0"P|/RYEcjZ wήe :mb9+d'%>f3bē?x3Yޜ_*} (XXXXXX:\{kM{'ȹ~yQ̞M #ϡZRF_2o$(h\ޘ!Ƞ.BX/! exT z kgF|\-m&Y! @yJJwŬm4) 5tCg˽].-G7P̥$F݊;$Eudz4oJ!3EJ@@@*c :[TVRk1*ɎE$pq5 V«jxty *Gb(HPYE6J Ƅsħ>q@mk{?CNsnED=zzcۉ~lv^A7U#>wv+Ak4%K2ȸC!jGS7ita * ]1{\ypvl? 2ۥރ 9_(0ru6xQT[6S#% ohWT@<%9qr,iNQ S \KA B p|t9MZ)_ޥ, ~ ;O8Jg1Ǹˎ FI7S{K Fy3c-FJ@@@8p:vye }^0*HCJs}S-y2Бp$F1rLSTIwF8C7~zP`h!%ij`Tn-oY{ֶiՕ<:"P0kՁ+ qbZyCiD  ER~?CLM-jꞌ~|JGji (}#(@1pe ļCG;0` b*jQ8-w1HS #ee?`1T(jd̟4viEш Zh!B4,m1mO㙊%(AMa'_~4eYV,oЍZ7r-1B(Ŀ 0  3[>97r,˲>GaY 1%,a99R4۾YIi6;/o*:µ+ڶb&_:1NRbyzDmP!%ZeYc92"8UQ<{вAt@ |6u 4`q~A^cn\ztDP{y7)yu(j5TԌϓף0*= pcUTna8~9NMƿ# p 0(Wب"<΁1F*(ob,BW*%ba> (v*)_.r|4EN4#(+xR%PQaZɱc ]G6u.oG5\.qIזٚ b*#WՌk) pr((R1 B3P(y @F!)4{48.m615Cq4;B!ZOEN&aε,]^ҥX8ff5%Oՠ2@a,[}#(UQ\j{gf?P9r9Hfg2g7w^\`!͐?w+**^QɋԌدQ@bT:P(8UX祃08X(* M)#&2iTDMZj$@hQ*^Nߋ0Y*`~8R%?L7VT ̃7RP8Yz~ݱ @ >hOP 3ԅxGtg!&tM&ԛۍ:]CKoY25nwmËݳFqB~ʅY/T (L/K׵񁋛{'f.H7GJ@AZǨ9d,y,wZe_vd2z,[$/TJɓ؃7n˳nSvV&3ݥ)0e7F?Q/~{! ) _W2|JU3+ IDAT֓Һ},s: vu_&֘Q/2޻yKqz^̤XLшs _~y'&= sH$JL[}$ijD"7蜬$ä qc9,2"O=js,B'-by'_( /{M -L^!輪& UA!|s _Ħ1ަBԴOw/@εnftyήaei45^%W# 7FB:&q 14" b<=oPh`GaY㰚eU*ekɧٶK (qmZg6o=x&~1hL/7={C"n;n eQ=El;v2Uܺnnm?~2(x]r)uPUD\3hRyzC=s_ #c:++ç#;~ԫ\.H$UbDo>M@q9`Ic,jɟlX8fhC`%U1 '460%4˨T@bDiaTXhbDI$40 '26H$40 J(hıP ]ޝ|nSoՑ)6&fv r 'gеn0&q%;y1(BPˈ1XSٚG4 DҎ_QAVO1*1 ƍf W$@Ha(6Ѕ23.@ ܸuPT{թs΍y|ܭ?'LM{NL#^&&&b(Q@ߡ  &x܄x0 9X ucdjomOu7`ZB m֠)n.kCADFPk$WPM4-ҟKRkkY/<=--- $c,D"D"DBP X]Q~zm!$MZn^ﶏMh3W÷PӃͤnf[g&z6_I##G j=~@״?%P:E͠bJo)2Kh,XlmeT =%'6DZ]\gm8l<~ <*.yg]fuгG'a `yvseo/+2S6q39e+׽%dx]xAZ$0) 8B6[[W-ߣ<;cV(<Ě~~̥YObKB"5qGZiG51{ >WE4E &EKLoߺIhu")U6f^=_O9եh;)U`ou1Q[>E!ow3cBF(?k׎&6&KtiR;AQ-`ʎs/z˺z{g-oU?'ؿ~C*љ-_ltj i FFtD_cрr!M9oLM0"NL67W@w@wk3 &>n66lw3h/Xk' }߭v.D1WbCjOG1p wݩ * 2-oww ,1]&oϺץ ~b\ n|i6!\oNKy-bZh'dU̻xNn.Bu'0G j)sʼۍ[Pφ_V{|C4q0 ˥<ݿttf|4˿y\Tyơg*E)]|2Y);`UmZ4u]cqy`.E*s:cu&^-,K˽ybT l:x4MrYsQ82R<~WV/* H(VYsrcuO}3cOt7,ng2ΈOH٪Z3L9Η6cMLES||C{]]cusE~&*-"[DGRTWNKKDnGF%Ɔ 5x*D+u4Ts}?]g_9Kꡓsf^_Jg cN!#I y™دؠe{n=ua <޸^y1}VQCD\za; 練0q'x|3~`Uۭ=qzKߐG&z9rr}~rI8ʇ4,]`VxAQ4q ~47i?F}&6keXi4t4" \IWj״ip}Wkž[;'9V^dުcm^+I)Nm׀˚MU `,@Sfջy>5vt0w;2*]haxX1NRu)rd;;؄싓Kƭ?/t)wϢj5je\xzE ͋.|f_!"x&)]!uu:~d@0b@w'', ):gB9B$vyxyW,:w \>W??ጰϊE5t L߶/*553>JGݱw-4!!ʞ|#Xt_c.TXzf4E Ey@Ewʮx@1 Y~w>gL^[1TyY8HL:2QԼ<֕b V FvNCcg|w#N}l]%Hʿ55zW㒑f$[?bּB%0EV`P.vo"'eN-!oSdε:ZaA|woqwO?ΫW![[ٔF+]OT$jZkJ#v i`T\^W }fv$qǟrNݪQ tiC7 Y:+9奍sl֬FC"֮k&Fd9JJyLshʺ^nWn r!VBMjޏϓseqfڮ҈eݭQɱdkK߼#MO s TԷ]гVl oqo~GQ YN{裴w3NE\XmײFM0Ɣժ [VJMܭu~=4, $4ۘx#D'54嗈ɣ6[sRuhm U܃[\z8om{Xq0WaQ=x@ESSeENgHצ4^Ђ uN]:rGS<$zVyPtmF!L7_Uۯ R>4c:u^o1DQQorD0S9.[v3xԧzoHdn|3tM ^ %I6Lq#%ŀwbAZ?SǙWY7r>Jdc@#NZE N͂RwcV6ʝ6t ȬQ̸WW*fS$-:곂oűboKh%8+ى/ sgG*[Jl=ݭ_eIy8#O0eDJlisޒ^5.݆gGZc{h@.}~9v[ )w\mxDN͛'n$'3׳J̐.6`޶8q.}(l}d(ؕ pѓ VT8icSR0wo: TuN7n$$Gqʏ=~h\9kփԙc"񙰬@yRqiiQ˦ Ҙ.hF56vŪЫ輮v,5#Py߷ݞ0LlcINZ~/T.ͺ ]<1y]}?\;,3ki:][ULRl)* OghH*sWHGn/rYIJ 7.K.kl[кjqq~`8KS1ؔ-CG!@eTHyMtDI?Xo; @ t2{JVY>FIps/Xȣ5SU{jON[IHMY{J#:WZ&#vt_н{tآjt7Y@b;SHCPz6r4~(@; <N#O%,ns;-=Yuڕkcϥ`3>oky%{N8U'iǀUXf7k}u&bW0Cm_=R l89fCS9 GF4 P@h=mFھ%گCP sK^dHckEOz2n_|,AѾD=~R'P~MAHRK6׋{ M)c[yNz}[<5zlY[un60!*/+vymuttTsVwȤǚʹIAQ eQ8ءLNu`E}/qЏi":!s(6.BYo!cWn[)+.K)o z|0v mau<'({ލ'zmg=Tr2E5hlo»~9z&J*y9hlo~9|2E~#g)YpGpz_ʹcÙ9(Dݗ4Ǒ6I.^AqrXacKGiY <4̵$0XB#J`"Ya8FXBs*EbD*,2w!CeJlYg6TGaYVV3 RJB."M<:'+#dۛQ{BwfPFЉk%DXix5=ԝRu< 53wJHQsI(kye̽66y@ 鱯,| DA:|NZ_߸Y[39v  Ή%"D`7t:gd,@`v}e$"9ڃ0~iwgxԘI@J@@>M@q<-AM$nzkZC  $^Q[ݜH$! O dMJ@@0(BPGUbѰqmPnm=@NhWѩV7ܿ~*|]bGPrMҎ2ƳG7 ik#aIl"j!]I!* Yn<nYvh~ǻ!P>@xާz[I+JT|=ՍgG5ݗSk~0ڡQ@-EwՋ䕛oz;'mb-YV{i{_9i1WVR/[Jأc3Ӯod3Bbq[B lڿp3k a aBڟ @oժ(yMj//z_ŌTHXe.w2 48"+dʻڏ j`<3\3Ўe\!!1~(7(^ |'Y5n=*oWxsˤA|4]gL(q@?o@vჍ?]8^tk?~$5emԪ&֟iΔo)GxpS-=5}w½ ȳQ=gxU_:hY :զJ\-cX_pAʘpX-Ӗ )|w#@ό/\: v7{w_յ8ǧ'8/y5sEk31kb6^Յqv&ɱ'vNV(.|䋛_NMT⎦_n?@/OXe@ 3L9k| L{ j{C{n&ʓ eKoJwӅӑQW|d;{6+?@9m5Bq[k=%o} y@ 05m\՚k0 z?F}m6W˰&>ؖjE}o|}2k^]{SN~xq?މQM^ь`zsgNk8έxk2j0EL] 卸s#f!Ui [[W%#Gpyc$Rw$)@(bϟ'ajy'們Sh.oAĦ#һ/%`֏nsan"X90#;α3ؿCH}>Aj_UFF 2 F BS&XWFjpP;f歊vĉz~jlRZQB^s8 0z H~8Z g/ #2_@ nCZ"% yĴQcFX2 ^1ejC 1\^ٝZum73"&25֛q}tEΥίR,|=Qɻ".kY62TEһZdّ3Z"ၵ2=U3nCPhȡyOo Żz+((P*O!% )9оpU $,`Z6nw$Z`^fv4i& IDAT`ssY=]m16(d 8^2v;Si{gZX7u~h)hi le83_e8ҿ"LpSym=mJک EV+ʼ<\Ĩx? W@%h0(PTrMJ@ӔIc]_q&-*)'6}׿KD ,-3Z nJv˂_ّ ,-rj A0m8=>>jWY'z1,eVpH[tgoLcޖ2k03U rwwl^rrcFe :іt!A&ªxڦװ0 mX-,,43HLLpw@]AcXZZpGQ颈@ >bRqf)c˶Ni:}jA{!!lt E"q@=.Ÿǽ7 jL0%j;=w9#B ˁ#keʎe+P\R7ST 08)tЉw=&gmh\7OaPC6rrĽk-%>5L1F_-kœGwX˄=7W7333SSS2cej50*JP򢢢=%M}@R!_[v ^ǐgUePd͚~駡nt9-N]\ _S(QR;X,LMMb!(D5ǭY'44r:[_O>T%BcXLӴH$211ŦUEQ@$7"К 6p;}nf]j׏:һd_ m{ߧƹ(\=qT6IW"Yc~٤q)( BG(A@{>E\owt/8`Ly'._`wB >UKw~Ě.٫N:^K1kwޢ^|hU3qՙǛVdž,=Y4b97wȊ Wޓ4o9ܺyFYIK$oISlRb.b7aϝ?_)PpGnX}MxC(bt's#¯nJ3VuzZy |!A <68E@-py#]/?4gy[GDÒq6ԥSvq> Q[YۅKGxNtC?nbi(MyEfOca󦕫b? v_hӨ{MU,"剑&F^$Yl\ԩᝃ:sz{ٶ*Lv폌tbu- 8pHOӁ.fQ8֓Y//m`KdL&84O avT("YΩR%AuDDEҭ”t4@ЕϽ"0w4:6p7E3sTWa;7 cv:c|}}0^'___[[reA۪5BK7o5k—SSv]RWD[߲ :ys;׶$3URmg|L)"w;eDwvmlzG{ytRuyT6\>(cMTW*JexXMH:uRԥ~Y2Ps3#Z-ek*J}^5k@?_(UDZ])ςܤR_YRwBߙ[ߵIfQu]/ujx6 d}~~[z>Uٽ%.-Gvio i07蓄>2pJcEc蘖y;f,>0%5s@}~9v[ )w\mx\53vZlFVB\Py"ϝ;H. ,1W^dd+wUVsN_Y91|_~w)GcR#X_ϴvv䚮 -j8-ixp UwȒ}w[#㗣.[=2c.|sx +IiiikZw ۛ(oó;Z(̘4=Jɟz_W/?s۱2dWv^?}~+YV}gJ4YV8h93i75 m"QoѠa뾫;:KzZ M6=vآKFDQq載A4cٳ- 4`۰]xfac lIG;;LN,I;"o;3Kx#:u˔sĬaޮywk;ȼuԀo::˱ vvv-[|=Ue_-L|9E~lSQV '|{!C>l9F1*BK{vnjtսG` fպψh0oo[Xq'X=z뙈 7k&_T(ˏP'%FD[S8x Cc+|j'>}B?s7" wM˗*c1V q!EM"z7 /meVp5H44M4k׮7o5b4B!˯|>ʺլHyͲSˏrx}&V~n%NdMko0gҮGǍii;M\Q\\\sR4^n> +;$,퉪bI;qhQ y$VPpĴ’ϰL*}[>g ]5 ݄+|bO uSoS [:/V^3k\*WGS@CwsJ7_k)t$d(a]"扡RԳETsPnj}PxiT样ߖJ%v 8 QIiOήryۧ%h3>fۉ) wq%~T_}߭8]etl'$%?<3\T>Z;DŽjAvJ\F֫B5܂VOoIK&oSBbŕc籭 vM_xAJʣ#gEdZY8㢄C.%R촌䏵AQa}DPU78v躍<(هoهv?1\t9j>hmfypolbbbb2~8yAo72^i 1}oq>'z9rr}~GesЃI5v??a7 " kR3W$ݥx;57nCde6Uٙ_N 5k, cqUQ80̸qlmW}3%en;\}MݑBf>n';G&K6KE_ m2 ә^nxT-Uk٣?rMv9 bj.PkG眙?n']K[ ;>(@YLGup$rΝu֒3g>K|-QaKoqq굄2\gƩIy/]pZgN =5@lh7_]&=$>'=§^"u={5G ]).#>o80@hv3:Du֭zzz~ʔRpآSBG,9u%8 ܷ1q %~ d2LAv0z ~|@ |]yK1_ԼCGh"] sڱFT_Z m_jfrGO^Y\JB,zm9p>!Ei7f|ŻMG)LQʴgivy~{Xq'-Y϶oy,EY򣘸@)L= !%>yȘY‡֋$zN/}5iH$l6Q2ڵ+Wzzxm%3? @h*KgGk)Izc֎#iuʲGcGՎ!BC;j::: ߃(+iYF 59;z K aY \q϶4ZZ4Q8B.)U[BYcO X&-z!P6 Qnw~aSGwX5#x<GWA(PA2CWנ֦|,Ny"į)-)JC,Z91*)T* L씈.n˔d?z-/v 3#R%gH<}>G % 4+~:T6na}F, %*o[7:r̄Rs$g*mf-d9@B;E5.miOQX ,CH˜(*oS[lhc⋛ӗfsE~lJ^5VNwbYi[eݗTE+*6@%Uq@%)b3*M!( J`̇EeJ4xLTsХ=U8 LΕJT9am`6! !FܠiUuf 5vEqM\Mэ|kыs3W:vEW],0Ue0.F!cPk$U@ )ʐɋ{QhkSF)C@afvBZ&T}9eVJJJT ;dGB$/7ҡ4Y`IvR=R*%<@SV,-*kZ^$f,:!%݀kfRQ~Ksp-RH`ɉI+37D46֬\i.!}=,cSkdk#ki]i.G.*X} g͵yup 7P\ˠ wUޫc;;Ft=z(UWwJ%a ]aF䭘sL5PzN6I<k= IDATer`pL=,2ec }[],IWOQ[OŦޏILʈ(75שU">*"п˿^b86fhV)XtyːSf޸r6u搕_vAj/2;\'jђjA:ʢk?~B(ay=}]}t|ΨuLs>+ŪXB H J6gKkDt"(.pl݃Fj8 [ryufUԾyʷ7Y|l|B 7_۰rDWy[溧ce[I2EnvC ]Oꟷ^ųBD)&/r=-􉸈q?*`,2p!(@P,DKqxKQ,(c~H=quO.R{DaXA+tM|ӣReiœEbXdqU ,KPۙx89yh:9-Z'lCl3jѫ̌ݹnz@ub:Gxy,QZT eXVE^(hLgV{Z'jPFyb^\73. cc>~s-,(e N Eqhia?")="PH6)á-!ݫ5p֧آ^y;!LμGup$yDDM&6{" (33q7)V?yt '+ RY*-LIj@ 4 ڠ6){w 3P NƤH~|uʯI,}هi/Ʀe^?Zu8:gɁW/.iBey,8_=e^guH=R\F|fY#zN9ZPwQWCQrӯ.^5V?ŝz`&02u~7ff@ |a| m .,.M Y@=?NˢזҪѻt˰,BJrtCiAu\]Wue0'zLY򣘸,)'Oi LSyl9z=1ɑΌ7ֱcCS=I\ "xXOЎDi=׷7'(M;ę}]_~k@# rk"{xRн K@="Ц!0,BZ^JӟXYV?hF &|\2;7rr+[o;1EQz"/Oo>_-=3Zƪ IJaJѨMGoT)ty/<Hc#md2r;Z?Oٰ1֤|T6ʽ=|,DuN?k<4MKr\.%%8~h.nF:fَ0w\WRR{R7^cT;#;Ӟ(DΈnwy_`c 餚mb|ӊ#վa0T@@`vO jf,oѬ"'71B4E<0'%Q|}Cc3=1M} }z0C#0W,Ӏ%{.Ihe}kˊ% \byJIW,+Vיvb{?osߊ؏(1)NUrJAvY%9pZ@»kuޣ U Q \`یab@ ΰGGQAŏ~t~N>NZlvtݲr\(:KO'#cN'z:3D sU]lmm ttt|>y|RW,ݻa90X4l7L3XxoiߵN\; ؄9fN@ ῢ>n]Ksl>d#OAciMp90f[it&-4bcisxl@Q,bYXYosr ar9Ƙx<.+\.aE}7 :nCc? &|(yo7)[U$7nKhmG7rme4BD@(ͥ?P<֊)M6:P 󍍌rEYYYD*W(4)׳2XY04ǀmbn,`T4#ߡwBD@lGU(6T*̒B~ivqzSlPGHQP0i:M)P#<|Zi5_<>2~'leebݬ s .]3X3RhvvvrJiS(k7*&CQ0GWM JO 骕(dQ&^oO]hʃA[;cw+d 9| *L[@2 K)iaLLNfq.!i`EN]N~a,1@jn#_T*y| dZJFz/( c\^^`#c3J#@@xcf$gkqTz3[DZJ%/F,x>ní|<14{Zq! *but ~V[(uZ!bzJa#jP(lRj*(**ZW/6T}ؓJ囊[Ǔvmzd5B#jkۯ.\Yjd,c˸[8ќ(=ud7 |gȪ6_޺"_4.PLIqGaѣg=@0ycOK4 <ؒ7nٓo&|ՅM%Кk 'E>ۃ4**'QQfx0k߾Ǡz6+ i"lU_fԙ"ysc tUBpq7.yd1TzߞϧXXRjSO׀3dif1ل͗֌j?afM#P0eJfqŨF jnnbnnRRZNӕq(,*),*3x?ϓ_=Kʂ[Z\~ m6g~9l&K7|_z{p6[PR!"&6J 7R~GHT.l"6ýQOd_}ńD7.D-&ϊ6ošvYרBTPE)M.*c&BZ^(MNNMII@!4HI$߻(޴1U8S׿GKUZ/qut[y:ip>Lٛ;cۚQe/oܽbI6'.IW .XoUy ^Ns(8`♥y f]zQAf8N]?tM.@Piv}2u jө>A">sq}yu_<+Dny>|\}n%ٍJ:D |tB̒_ ;~³kN=Mq??mWk9铳ni@OZc gyc.Ul_Õ#WDqAW*vM1?[Ә僴6ߧ)buWb@::zp2od,#K#+#]̦a]|me(Ly27p4KĊB`ƘQ+TKS2a쌰J8:I/`Y ڴ 4]{+*[¿]i7bqY@q*܌ 0MZ3`ٶu7T{JApˈM|NTtcGȢϓmLqŰXD\ioQ- HWG׃m#Wf0ǧF&ff_; .eiVE3lT1j؃9ib- * ǵ->Oh˫3*))C`dl͹s5f=fbM%rMM(%b uON/M$2Y*H{Rv TͨP//yc݄b5|)yto V cN 2>RKtmt{lxoD,9uf96YM 0@jwc#E!ʂ1~!"bhBQ,6VP1bPam@)M+"+q7@oZ= E(UNLLq}Cx.& /.lȳlQPeK`7691 $㨥("~hg;3"NؔeV ŒZzs̃3~n<ʊVt5=|(@[~ʎϩ :r^[:rZ656?ER***4B 4===]R"S`$1rУdJI$;OW ĶnvOΔT+E@zfvB^[v4:Ϛ t1mpB ][ҥaNqaP;Nq⣏Q'-Y϶oyq4M|zRrc62z3]Z>ŽCAy4R,BΛco^EFNNmB55Y暴B 31 đBQH]H.yup 7xYŕ M0g(ͳzi.G.*X} gT4zsBf\Yӵq_HjY$*O|_)k PKaIH{$M׃8!Q* W(`!#`JY ,FPbFW}T:Ma&BbA:.Dh:ueԴIjh`hwr @ 6JB]D}9PDݾB};R Ѷ&#)EѶݧNQ~Mm)Joc #IZue԰RԲP@ ({7,bؗ _Eke ÿdxB.\Xpp,bzUlq9N Ghrkd-!"P@ 6ʿb ڑc!huV*1Ѫjj)5Y{El IDATvKEڦvHjGJ FWT~Ϊ^kjw[j^@J b4JգjRiW`QD@ 6{vW|4V4@ Eݨ  qj$D@ 6{j/㪽׊Q00KFJ o%TjEoY>1F0FaHӨvPaOWp ~9յZڬ5@pEk7K`HrR/M=yWf삺 1gl oK^zpЕK90Q4>ξR!u W1YiP]ꉩPc7Q>dJnO$CPN[N.snԼMG/P%_cuװ[ni'Td=ϋ7\Q(˥¬&jR3#SjqcXU [c;pWܶK{%=ɾrg^@@Q&yG׌ j2,bsgxɛݵ_]deAb=t4Ş=Z{"_c0@Q!K/fݗԝq~"Sh]="k!+e*ɛ;9rX3|Ήt]&hc(JSzWZah'Zߪ)3P@)6\.ˤJ=Hh"%>LTo#=e^ PʤGyO&d8Wgr;7w4|,+(}# -A9Ɲ̌g #NT@g6(\sq[ҽcli`{KK9 0҄ӏ"4J0ԜkZ h*{0_*+++5@4`R_zSP)P`XbS;goQ'z (6ꆓ[ryufUԾy |FOhc*bӉ9ם= 1eޜ~oA^]mQދ&6 c;pb/$KsiB5G1GR1:(4G`T:_E&5l)*//(PERλlnš0 D]Z6';he\NCN}1UP@ lfbSC*K sޤu>H %v,\|SߵDUsfH-xY&śqڔXhiV4W}Kǘ'{%eK26 hn 4Z{GO cOw#^'7|V+J)J"¿w1iZE+U*B!W(drMZᣂce ^cO^] *3j9 jLYc/֎&ٽ-FYO)Lշ Q5V4ō4:uޤ-cU*RT(2L*J$r2dϒ?J V5 DY7v&ON?Uͫ\t\GP f70Uqk e@At>uϭk̥ 5[D 5ܬ3E6ϘcT. s{s{Rc¿Gy =LU ƦfVy _Oٷ1olMC}A댫ovܛ(FB.j`okG*@ |F sqnmT^4\xvXˁSܛ5v)So΀>.-B>p:opu~3G'pPV.>.^}z^s.XYV&)j ,q}\<|zSH(_8H@`V3בEpnk~=Kv×WG*T5J2sFo)ܿGM4hљLijBtMHxf1J oF^NE2q t7k֧ܦ4 Nۍ,%$_.G^Ǧ6l{[=:̼q+:?Q)~I_c=:1NkmIF-}sfz(v}'-pڠGZX㴛$ʜ1n LMrmMz/>{i>KN^|C0ԼA'д r>} z+'HOՃVjG,[O$wK_saB$>3s_2w3km:.Xyb2n^%a(~WoRo$A=+UY0C:==^G_Ν]6aST`}!0=#ʲ,pÍcZ˂5GַZJ B6}YlLݭ]#vt]iSfY=ZbBm$~),^!ui]gfP0WRW mcaemwe.uK]k(vi)k?,tٷX7Q^3{v wL_Y5`ka׬YzFttX~.b{FL':W}Xj?ous1NY/M>A #E pk._:ʍazx7ŌD !УTJ|{Q_LR#~!QJ!~#h<" O_gssskۼmm t|/\ nMGl=|i @.sƆvv =8ʥTf5[s谯يYLn Ԝ>qUjvߞb@:h?? q򹇓cI[ /}ފed}PeY+gef!~RHcuװ[ni'Td=ϋ7\?DcZ}ju(ڶOq{,Be~ii:`dXi2\Tv!#>eefT~>-ifq^5ƒy ܙ|E`ow-`m5Y!{yjYDXd-v~ {gz"kHu2 PzeTŋm"Y%u'eٸy>~01ZU$ovl͎y}Zy8^x*CYwf,y9ݛً"[,P٩e]en se89Z,RB^1Rͅ!('Uk~ڶ}v6g q6chC(vM?x_ yע=Dzh܇7,zl/w733}/;y=7p*w766)j Gnz.ӄfr]ǵ;.;vȦ8M]pn;1.ŚW7Vyuk'>Sneor6:=zFw`2N@ `X,z N &Y:؝km>϶X♹e-Wrt$ʮ4Z0 vjjkcU|ڬlԸW9yޖmtj~F>8bwV\+ ϩVdI@k]&/r=-uk5X9+Al@ |భyzT,-&ya"%ڱp+bZOn~IV+Z ㏯72`FniYl[͸AAlZqROK8}ePߺޡԝWf2 Gۃf^&D 1K6 (|ݚ+IB@ʕ*W66l\D=@t0 (` aw (Q7])pk4 "2&1 C878.Z3퓙s۴صN]V8iR{6j0r+Ev!][6-}WZYJʟqàr2nU }`Ŵo@"]8 bs{*NbC3sѽ8`h@؋%4[E%3Z_ 9Ih!$%H_P X'@!!.&@ "KEtd""!'9Ard,|XnϾ8Y) ~v;TL5mx'L,vuӱ}ow=japBLgFAn8a` '%?TZ!\.Qu: BBqBI;.H_L@q*Œ+Aͨa# ʙo/EMa/:)`0upD:/~F2Dt37#0$7BdI D;DĜ8cQ:cFZ~U\Zţ9Qi^UvBfLlkg܁}gܿfeF7vo|tsT9.r{ ",K˻7ڬs IDAT/<ܚH|TAo- lNj(KnT 5$c.8zć~'UXdIbPR1@„ad#0pDV re;čL L+UB‡boRY 0:Z(^ :m%d1jٲ3G3 ѣQq# a f7i,uݶyu+2Ⱟ,XrM+m݂w }J䅢ߍ9S.~Ft}/9_iȿ]!7?޲]5;Կt;JeE~fgd)wlaǝWȂzgDAPRf)^WVpTy2L6E,H2;Ė8.P>qCI"y;=Vp]a12>5hl>>`DML04HPv6䁅u;@$9WXD9B@GcQGi)V\9B K*+6N 7wb{=vjۨwZNOULȂ ^g|+&SgL:5uKy|?ث]v'N۪,~oz:TP`]Sb5]ׯޔed{krωb=Ev8Z-a4!ީ sc۽R*j ؠ+V3W9BxQ%C 7yG.ez!N&eMOԗ+!K.HwCc iP&`؈ gcBy#B=(VH{NmzdKD8:$.E !:2ңǒ-s=ͺ!"76{$+Y^5 5! @h~5Ly rXQn\yIFc¿ -;Ȏ0[aiނФ(1awso#ӯb1L*9d(7qN`+ueUә%Vg;&e;QP7Vepqbx-炉1 ``)j1X@[xԬYk {]4)Q?>fPSM׼z[OARXóKJfzTF*Yg8@D}DYdMishK6fNcyGPN}63oq-+b`ֽڣl۪n_[[dEv2"חS.44=Ҟ>8ޚkתqD5H@eJ$ A HbOw:/ /)] IN 2keprO>l1U T ټYm%I yGMT6kp20wAMRs\P)pyN=jn*5QjjƵҏϭX=Ϝ~e˖p׿SveӢE OKsI%o {ҷ+,G^te))ᅏ nttKGŢ%̭g_1%o \w?.ohO;٥E_ؼuwYtc,īz2'b !(:*2jſ\بO2<\@hM<  sAؠE>D)bmZmʘ E7͂!.?; "wN̲sEIjH&p(Kc9pJ`NݻO˗ժP:+5?+fFߟ]۲}o~S[?O9U>N}:g>1yD#w*^6a-3^/7;/ޣO눣T:vظk*N8Y^.7nrm.oTxw[wk~Yٺzv43%7ڲͿ# _ܤr; ,R@$:ʻL& -m5)*KXOﳠc7t}}H[.ɒSE'ݣ}5 #LjDLߐEWyPQeq ~jy/'j'CO:s~Ny{+On\!SO|YM (jW}릏c+ Ī6hs9wxYfwAu?ڸ~m#_VV4 ?\wf׎wr|cL|ާUvNVv^L]_"ߊ1rs=k{kK>?[fed3w_XY^RоeVw˨{N(^}tiqҵ3/-wIdd_5|Pb=%79I ޼aNVzD'4j}^ g髃Nk(+;'ݮ|pGC[_ KF#!3cITЈŬ?ϝ=ؖvdZ!qX”dz|-n .Rϝ D-#O^uwIL%qs[&D  >qX "Vk ruXQ%΅'>=/\BҥO?}3ko\㋋hswvIJ:i~f#o}y|Iqm~XHk~Enw>e(]7_[Aç!.{lIxμoڃwv㰙 Mnpt<&3p&oHw "'_EK01TLd=dc[D[?9|Y@P}X׭3I;15P&I rPV.O~{9UjۣLc.f4*q52COG>z@ WaAl~ ךfaLv gI3ґEvZF-o}2}Խq{ƿtiQYرƖWM_>yrss_4c;Š2^7K|y{ٝhOqѼū倧F=F۲v[9 vRk5"X[ ױ.MUoKZ-_5|W>(5S=egeFU= @ -=Ta 9{pI)j\~}e=`㽔0*ÜH<U6FF'OU8:BaPGWԋD mQ"$@'@M$z=EvZZۏ+]?ul٪yv_r~0L6zte֭-|jwX{_pcߘ8ѯw'~܂5jy0lmZV7;KRo۬p[,Bd4c%UaRld?{+zzA=ތkiMMQ%(d:dA nE3{ɭ/zwI IHd z` UQU 'za_Խ:L"ukח'B3a9K:ĿϟF~_]\ګz4Y!e/V.M}w6_ޝw2d˭zVMv|Ŝ{k.+j .i'HQM7o'"sE c0@Fd==)Y/HQzb'4&&\\N@Y).0|796JZDE968Q@FUnyW|A$Ulcȸǘ[Eא r"7 =6Ya1D"28jȑqTx".hєcKȌ3Da*ғ6MQ-*#dg) /3ѧm3~/-XzL%sG~:~C4-spŇ_Z g[=K8lOsy~`l[=AUkFMbf=/.g_8^8hԔ֮["%FvZV׿5+w}H۹/ R.u|bF-i^>[Zg@jnຮwkd[3bpͽfhC>OѰUںG^wcv@FVSzm S=Zww:m seWǡPw}T{:d@ʹOP4p>/Tm}A]3=1-ש]:jNc=6ẦG\,^[kУ(,NQm,WEBZ Ww7F'K$r\74R~`K4ARv)C?H;.y3مeu_c^ywxJL8eDŽ.eH8ylr>9NC=)RD9"GMGUµ;/튠}x$F1wxip:݂6l&QVzYǴE$VKuf#(YXA.| Sq2W~,S\/$@L2B`YrEA)[&D(z:>ɥR$VD{w  :qgOn]h;V˓*An*zƓD;I#Kى?,|kS:D˚UX]f'3i۱k෭V.zqҤ>'lԠa ";~x-}=a뎾wh\|${UER;!rd9P͠]S8' MމJPiU3 b(H%WkP)Ž@qJm+w d`o$w15i%^Ŏ Kɜz'm%Pu"<] jzi? I}':6Ӥl!=/JL,Ou>^g5oE?Z 7ىΚԷaڶEvߵxmg۾>{@hTtD(1 kКr. >{Jhd&\#[۽ B]jvU^{# A+BvVώjGtBV'"tUE'ELC/TD|SWZcJ0;qҽJ5*F-ɒϢ:c NVWϬŷ+?veJ߮.^N(8u'3 Pզ-λEϯnoƎo.Ѳ~NVvNV]Nj엛9y>e#;$ uVl\v_Mvr;*֍q[:]zkmA‡ l?T HxR䗸Vc$PrĹiѺyEqu"~պJFH2^NST,JP‚qwbi$R>Х qf>QZYL>\pav6Rm7Y?|gWWN]Xj6-> |:EYKJ;*NuY޵wo.N۶;Ev( eIJ s**-CgB'#ɤ`Pj>%4 Z2dH 8s ?QҟJWWɫwNfGa .Y:NRdk~Ԕd@ܯcd|KMH;KcNۑ{5~5+NeY2+,XqE6o#V˺n8rʆX۹ޤ?N4ㇻ7;.(;AK~E_ۣeVvgbM\DFDX0p[PAYgR}$/"zJP@\rZsA.D{GXX;)[fSyx< I%I!W$({T0&2~b8ܘX33GDJJm/[y%e./)}{q,^"sr]dRJ^5E n2oyMAϾf[|5{ W\dE(J K!JE@h=uΐ KPh'R#@Irvoe!$)`0eh'@ SE`9!IɐqA,zj%TVOMrȍ9R(VfMw78BťQZ ˬҨV?>f݇tѣn-^ۜ o)9ڟ)2SoRRde➭{p`Ydv~eyL7"/(,{M8Kp)KaeML שFĪס[\eGe9D2% )!WMEdES͈PJʒU"JBE12gߓN@RG+9>ATmsLI鍲F !~BH\kT?hmF2+T"hƪTHͬھaŢkԫh,S\x9*c]%$c)jfo'8g:F{EYd9=ni$'v.Rr%esnFpRHR.6$6"ގlFռVC"$X r۳sqAC/Gb!=dK%21]YN#|+ f/ ^r03CZeTo9"HIwp"DN} hڶ-ZtjR9Bʹ'_0b#۫uf*e?}*?Oqfc?VC۹J6fo+|c\sEYd9Rܫ{/pz?]yً%텛[Q{~qxk(ÄVKR< IN*G \W|%JY?>A9sZp<Yl$5ȝv)iNʃp/ 8 i}z<{GݚUj\+㚳]{vƵҏϭX=Ϝ~e˖') ν내Y-v{x;Zj\ ^v߲y}*......Sn@7"`688e$u"'hV SI@;,̐|X"a}:D׈t-lU9}ZQr.Z8!0g@R{GP(1u) =Lg*ΐ9ralL9\Ɇ(I6njX L/|9szv>w/_VBIԚ%+W,vmˮ__z۪ǥa9#:.ٷ^׿S oi{\1KӖ^YO*ͪln9Oς>΂^{bU3e|G7um8iܦN\Wƪ=+NַkmȤUrEr*G G2hR5g(uHDI%"P Kך|+l-ֵq 5qjQiCм'AH{-5g2FGFyT7!BByy (66I᠜zQ!z2A!6T! ﺃ\* [f9eL0CD`F 'sq*弔Ck&)XoE6nPvz͛72lhUVnצôFcd" #彳^T;iޫ/ŘQ3dIceksgθyݷn;F2pAj6'sCv=*`kT=zM7I& 8w'\@D>nBjY"] P6 rT@I W@Z$ ].r>$5Q`V?Ig4!r)zy Dk](Õds] 4@H@z-ӵrt9 ׄ(5n|$q58MLJ=Z㧘x 9g 2Ĥ*;sl'|#߶ovײs/n\6BŎΕJtWxd=1mȘn㔔@ZZt,G9W=6+}ts1/_v̇F֗GhCxZ2&)tzʦYݣDljina3CG?cYQdޠJaJ DYsͲO'f+dIF #$D9aDoudn60/@ q/qZ֠ySjQf͚}޽ųf잦VGR~fM{Cė4K uo=U& ۝5%/*L{:贶s q3/-wIdd͞$se3b\Ѣ3@}dGrۡzJ uor⃓нyÜzNn3?pB윬֧z͎A8yf0J(+$WM^oJ^ Z]W,: ),@M"GIݧ,Ԧb hG*4 :Ivck#n3]ځ]Wi.}F|șUcۦ@(n/ʼnljhdJHXdMTOɏW? ]3֥k#;,7>ZڬS0 Tя˗7m%/.B.+za3{͛Jωo/֯cӓT^|y.̞uS/9&Si#qͳZ+OLqZ޲ Ӟy;:ANG_xv]cDJ?﵆ uC:u$a -Two5UCy}Ik/T+r zJre;LMHHP[#A~wҥi>9y -m"!PpHV/k ^\L!]G'ߌX;'M]J];]x$i?c7 -㖲pBZUz:rj.iǟ~?_;}2YIeVKgog]Ԧ1>r?Nռ4bjoK/\r429{C5Ta|DCE0!Ȃ#{mѦPR%o:fx bDC ,JHOr6*B+ 6{9TGF Z!]T>Ĝ's"czr8psza2DQkV&+<:9N٠yVgo{>-L2e<_Οm6'8tVĝ*;_+6{כcݿoiŷ# c(@?p(ސOT:b$zO;!.%Bu /Rad/=_/C1_ 2Q$-!"?>&=xU:N $qt4r%spM(}>3:+:QzP $ăQT[3,/W e{# ;7 Nqh?Fl)khNj,Q[k7,Ry7xO0 IrH*Wp|n /-oxy !GfNM;ĖVMv|Ŝ Db Q[呵1S2h5?H(~DS2WuEBI*5,A|k @iׇ5F+i]WMgd E;!4a#|МK.ℾ \0_l5;G< $ ] WdU+^{Fp9qު>9M.$Jr)sUOxYiut*9Y_|?6o Tsj|5M/>?#HzV~$ed^>Ww1qШ)?]xC_`){$b97Fɫ:%Kʑxj>ݳs\@+"A+cU!mD1 ?Ykj 6Awq%q"EK8BAQvjs+XDmRu0G TSHӷ@)€nؤfdr- *͡@Aɗ8EvXF׵ȧ~)׺{԰wdiSo >].? 3i} AZOx/-ש]:jNc=6ẦiWwX[:]uwCڹ~u;Pb;Ԧ}K/Ǣ̪Wغ^qqT=F[O8GsoO EbIe?SpM2-w!%HnVbsh _΄4Й ( /OG 0qPBJz-aA37Ŋ%tDXsN}3jA$1nGPkũc*Y X55ȪCrHC/ECl8eʈJ┌ldytfk%NeM"'>L{tj",}G>)ܛ2Eo>S#FyOj[ZC!=no;8AJܥ;]BТ/i zjus 8֦C !KP30 c:(yUEc2OhPRoNgIF&'HAƔM)agLT]E>4^ ]Ȍ:ATpz8";Pwx<Cc/8ި{8œnM%\ S%0`M(C l*`^d+WYGbT}]mU5֊.Ղc.W)ɤ}}y!ROU; 1ZX*" >BWBpąL81=Џ6*yVAReBkشC .5LsBu@贁L.޳+rw+oF_Xy6[j],C6C<ҵ;$8}]J&\R =eV<$aG? S4O8ϴq B:LA(&@!QkcE'ߜo Is&DVy$J&׽(b#&lR-S5R Sh?",W UYSrE@l 7F TThU([38pO<&T({$D,g"|dܟ%@Ъ.U$漖HN= S m`d#n$ DŽVK#l!%j}+YdIE"uc!҉ cR0$4aq F'd {(hm@%~d0@D&ZZ 17A 1AATdc`iR&ZU N&1F+n{6—]٩= c'"Yh=/ EYdGFq<JnQF QR4U 5 }}SHbŬG:=}#w>t=T8{ .Ӣ>7OTV/*l))8d@,7Cp^J(^Coe)]6vrԐPK"$ ] p &ddK`\!qq?DYdG"}s|-m(l RHMut7DD-WJM[eAOp@`J=m톒g h5%7RUuȲq kA!iti'XÈ7>WˋbhYdm/hңSHTӏ!G[ropScǎuk((wvP/5L@2՛Btbd`lIDC;k=J$=ʃ([HxPW6! E=_+]|DwsWS;.HXXK(=F`\"oIDAT;Z7A|0&=N4pI q*\L|֊Kf)E#DPƹk+V^tɥ+w;Ogώ`Jd7q1~Ofn~`]>'M>kF#}h?w\|"騰k4 =oA焜āI]5#ߗ SV=xP@W'F3J~zM~ܑdN:r(#VӸ7F^3Uh;(jhk]*S١ggĉ@<N͛hذq^fΞ}ݠֽ+ѽ j˺|}Iq4G` p"4iegegt6y[>҂{,ѭAvNV07>23Tݒh'(s]ɄZzR0⃬RA1 B Rñ_+Jbغ"e/Ϡ0dP |!骴&1gv s ᖟ*uVZ +;v޼oo8㓙 ;na kJJvKJͲ݆ڱV}DؾoV3tGGW]ҧ_Ͼ573ٰ|g|ȾT9q-ҚE~shEn̦\%輈B IbObh$yXp rX4N\i 4m,} Ie~+*z["5b<9E9(}-5:6;f~d9@}jL۫W=[rdeVMX 8FPQ($T .4rt@)hbJ}WXT|6y'OR^ "C'nEB@%1x<(GXGu;N>&D41IZH8Y=z1wL볏0xzT t_8r/8K/~f%sGr'W_~i|*Yo8i>ɛVZ1i#KryMEH[wF=3@kH[KJPzH7PP+fLr8W?[`ͮs'ZXظ0"08*s/@fvS,`| ''8Q;wi޾Dw* rg\xxܽ-ᅫ^M,/p / `')(yIÁ+S{㦿<ιawQSy~ѲeGq8 kx<^VZj֮UfGUj\dPalH;^7 [lмUVgishKvK_vSՖy %mbtotTc/ݜh M BJ4g?a9W%orƩΊHm~M9\׵S ]|g@ΙOLqȾM|K tqTpjf]n ]jjt*W5?J=58z2/`u3.w&`rM2/?۳ӐU=VC"Y"!L|#:w.,fCwy(J" I%dnrqPIĴБ ry<$=L2y*(Fʵ2 \9Q'4#$Nelvɣfe9qI+HǨ1d#d m[+aFi$?'!$ .++[aƣ%ޟvƽig%1c_:X5V1My"r&s׌wM,;/kdlW_VQ`SS[Gf:gxYi+D"{gU?󵌶x/@W 0nVpSӯ~kuwW]R&ϻ!C8Q$ Rz@huh'崀oyJ2E6yn$낡ܬFOի#EѨ>4ggQv'JV6HJ;$u(C榇jp#9^+h 1)F)bY[ 4r:>v܄'cI)'!N5ib\6 ),x3\L( >bPv}igW2}#V'&o>ld߂mVuJm~]yv8K^1z5uROT2NWݫPvsoW~Rխ[iN}Qkwe 5MnEv8(طQe/'4+1t{K`CIvK"Ev1v4d 5[=/3PmZ'G4 YS-O9fwT̑y- JcA.Ae1D.y*1HRX1 EH*jAt;TA4W>܍VnCIM9`oЊ+jPad ?0Rb\'*Tʩ4λ^wYNeɒXj'lu,Sr l(oQIP</++s*Ww={W.*hF)gRF)K,%/:k;ZH${ VxW}3 -JJ#pB")iDHE9cM.L)2N^c"8'WTE*NѬwᑑPvvG Pb^b(D hm)C'vG .PuQTI)a# &~;$9w2Z8Cy= [ZFH\1Ġd},t9_αnvM32/"?s5%(Թm/Ba0!n (\Qo}n0i}.s*,K`nMFDjoEHv.'.A+dqB"5ة 9sqӇtqYL@b15c(ʓNDf(#oK@D~@sWX(DF(|022I1 콢cҡ<'(:lJȤZjժU}/7&u}ڞb-7Fv"Ƣ()&Uї F_P| RH$E-, `FU3! 6z܇]OЖ֩g2" HK&%0 R'XWFXPSSv#Fem$V57[<.FԄO=9L&')Sr,MrCgs+< I -qG s۴G%8Oxh "4'c1ݻ9G_Ϡ8$J,a l)2KMMMIIxYSԕ)` c)8GSk?0 JJ۷x_q42ERR +޽=eY23m۾M~DgomժU'VɬZZZc?U9wJ@JK˚ԫ Nd%L J,b0eҳD_Դp W6IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-cs/figures/overlayicons.png0000644000000000000000000002177311534217015021665 0ustar00rootrootPNG  IHDRBt sRGBgAMA a cHRMz&u0`:pQ<#yIDATx^]xTպE$z vOקw"REDz@ABH!{ ^!z3&!f9第3W髮3<#`=hr 7ٻ~?n%#p(mAs)T*,eeepkdԈ("Ipf1 T*,%%(L4sD}"7Fp; 톘(BtQ *4"Ra)--AaWab+zhmH)QPiԳ= 'sr HOOCuu Q8ԉj",@ T:!o]IF~$.;IX2TeFuQ䘣&4j/:w`8"pTsҤ%HHH%EGR6߹y.. #x- G KYi4ba5{5nNH$P4聬@Eo>Bv$jsO5$4Y'`wF:Q9+?(2'QIFbb *+QXXPi$<7QVZI+Epp`c} ^^~ KrpT3aaBVkHMFUE)TWU(Mu&ADCuQ]9NnaaQj"AVV2j}wIBUe-e" qk4Z\G K"Xcu@|trx [_LlHh⑟˰>>Us8>4%-+,YVp< ps|v9 HtL 3yBXc S2sP@5ʗZ^IrɊʑCM`e"/EFn)sKw/a,~(%Gނ’ik DEE?.Z")%Q bHI kg’EmU$ $$e*Ts+)#)BQ)YI K(!1+DnE3͐d1+EYzf!DDH#Gǿ/* 󖆣 K%.7 Kdxc␙]/,8w"2ȑKZ&{ aK.s[69rFvJILJHHr)ER1aBŤ"JQt LJe0)|BQ"c1aYH &,873rhbS'7GS :v9NΠCdzX/+3a9}RsivXJ]ԴL?GGtn2&0CG,?<{CX|!BpGƆsf76~wzj.{Efa$ V*b\X"TXHlOhfl@\Odб+Y7ajv"ZC={mmܮ 93cm蛭68,^f^>2cbt? l,A[؃0YsG LUXEX`ҞK#zvƘC]3aّ8nwwsىbf!%ɔbd''5JXء}OGL~鄹fdiB C|L=}ñW8 ܜ v}!#8jGXl!`wh9K푒@XN:Iņ 6 &S n#1DL= OwŸc]`pqu_:an=l^~8Jvm|c>Hyª&)g_s~x ]0|6_XI)Rj L)_(j)~1ɊƎٹHX/w"$Po{s&]R֢]^N,2u:"j.Raa nYmKhω8[&d5'3׻S^NXr9'PuN$,k10N$*=0צ ,~{08|2 FpNc΅aT/x#8>Љ\I0^<~$xO`3M\18D83cRŗ## s а%IXfǠ݂ d7֜X\tRf2,5 :He08/BfBJ*ǹ>@ԆeI\|g 8z ,*J0G` 0?em2֤ihˎ$bJw-cq|Ǐ-u\{֚BV}`B{źx5d8x,6cg;?G/S20uvx ttFal"VkQFBnGǚЙ!K=apFAu"T VH-,j i]a2>q& 碹>Q^$: fHlU&a:_OD8x4 C#VX mx_Q+lLCHd%2-%$7"f,5>sJpTtC^N}ɃrTSL/0QYKb>Ͻ+h6XE@r:/Qa=d,F Vy^v_%/7r?C Oc[Ȯb uE㩖0lo{8j8N<|QXx}NV+1&Xn,ƫ18w0'znec @tH~ή0_BD]&Ηk_kOTXz RXkM1dF8^D OX+Yf_EӥzaI *b?\ȷ#xfKp gG u`O*QQe, xR[(UhcHſ!ТZhLXZB4#T[k{ı?V ºa$*%a Vbm,Cq]!'1RThE&`k|澁/Aɝ"}E 0PL1V;=ERWE+'PDkX:IuPqQ-t 6Y$QZ>.ض"}+(+er5+SXWZr^cqtl{{,4@k3CJ竐}#%$wlBW#%%t +#U#,@}_W"ҦBTXFR>.33ݘ&@{f4t&B{z;y" ߨ'}@X>cO4Qy0 Nwވ7Fqx5x 6E &'_'aD̻6N $tQqJ, fJb*Y, o֬7qfJX.?j(&{ }?.aThʜ=[HRvM:R/?|Zu&k-VП@Faηf O!q#}c6,D?V!]5LHnRbD@SCxM aۭ=B#>U#,&,%\Td"%YsB]a$.) l1 {fKkܛiO儥' $,/p}l0cDVpVߩصX7KJVFXXֆx?u|QquǚxkXdLbxxk]dfъq`PxMIAaɠ #0[xr}^̈́؄Q{B(t@utjCv5?IaIr-wnA˕C.ҿ]#v._\ևEaM}*l+XeP0&R+qfmHYެOOTXK1+޷#f5P"r%ʲdh͏65 `T?z}Ҏ5¤i߬C+ "8ohدϷ`)cKBvfJj/WC_}_㡱8!v:/d--dK!5C!nٸQD-_X6tZMfjaia5X94ˡ-]ڲ\#ym㵴PRf.z*+SSTbщwp.,njU5_;Få.;s6>z6C12} m؏ٖ.ߞ/qÿ¶qc? H]uc1vuyXZk*TnRr*fJZ5&3%F̯P̚´ .S1^(j-fQJ(] 6=jQf{FQBX!YeC16vAhCRuOg?GƆؿ|2ydRRREܙXXXݝZS ډ{;ڍً7olOL胉d/_|DemBً}%G0Ʊ_P 1Y6dy2Qa+?s3h K fp>M[B=5&xc. ߄ lAŏQH7d¶ٺE!\j#,l4^dEi}7h kUx';ȣك0`DLLL-T`iiQ-z6(?zՅ~%mJcТ=sک5=1`ms6G,p%1Rhcnt̶O-uz)aaƊudK f/.gY;17 V<0o7d35UU|Y1j|}D?6'T>|qIVbJmI$mmzk;%ӣcHMMtX[[#007Zc)jx` 3ѥ.%Z؁ h&(Ե4ro<~-pl} g=l)0Pĝ/Svz}dk}on2gӁu~sFNgM‘ ;=1o'ܼؓpvpN{ pu@\GIV²dUf[ERVKZ׋DFFA%DRuwyu f~X~ F8Z>KdaXx1f;{u}B+nS_6lrGc"m҄m6StGizȨTzݣcS{L,S1_O>\8ÄE.ؠv0lUVi,,rR#N"rHx`l]҅2gWnB{I0DgS3cyl X65_wa*lC|4tB63&"^W^hG3V1~bb!+uSF!"J`88JkC>ShX6‘|:fߩGea ",r3eM5Z4ŽFw\v^K>RnKMpi!,V(I(#ri (֕zPvN2 % \,.I5 HgcBMRT $&&B1 G*7?PJX;![ 9mcװyue8r_#dKߨx#=(߿FƼS&86h_X65(7 7;TJk 9JKwt>LOqsu!,BX!,PJ%:Ϣw|!,BX(BXJ(1#|:3BY9 Er@ R γ(,_pp@!,JA(JΌP,pVga"Ep@p@p@"TB,J|71x:"ER9 EJ3§3#8 ՙփXRIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/figures/patch-repograph.png0000644000000000000000000006170714023111777022241 0ustar00rootrootPNG  IHDR !}AsRGBgAMA a pHYsodc\IDATx^k%Gy# W E/NR_6ZE9*b 'N`!i."tZd!jՙ{鞾Ι9g朿S{L~7O?3 @(P 5iP @(xؤϛVt 7ɷKo|>0L|>HݤonRsV(P lۍn4 @(vP @(F)qpo|c:P @(&)ݤF[P @( n׼<(P lgΜ٤E[P @(Q vo.t.:gG&S1$pKvO6LjۢmKRA(P` Q;鬽GyZ^^ P @) ~9q'w]q⻺._xta]$Ι8f<[XN/ͨ}@;pnϝo)g}8qPw|6ժ򸋎Qy\|Wo ~}Ty'/.q9q1DQkS6cu}okDۺZv1{u.ʾZ| OP.>.}Eܡ 掋 b PXBlh+eI3˨~;F;=Z@Y*N6W +YNZ3 ھ%ۥcBC|>DȈ:"<)IG9`q0+#%RW[Gqψ*ۭl'AYo;fۓtrԕt"L|>X(o`wwPD|q,"srT7W~{+6MFv~Q>XX}-uruyʎk!|>>40jұe8SUc!#L!*]v1WN86mt\·s ]|`}@H淾hsUlA9ݩ9V9ͷso 9_w<Ω]]ϱ˰ecws{Ws);n-(+=-fy6Q"+1v/__e)4M ?|;=|$leIp{6K~|68@n{j1|>n|*}m}_?.N~=7ߦRaԏ/?|>H ~{+lL{7Onc|>@}CX |>$u]@|>{lc>7ԯh\k5|>|@-P @(vzmP @( nP @(k'Ngm< P @(@@?܎ (P HZ-w-?c9(&qѕM#~d!q\G]8.GGAm٦V#f-ztU΢vֽvS}<IQne@];36>UYfoQf'dyZJݶ_?ue3ɓT>=fV5L*8<~x RMR/&Ȳc Q 5nSؔc~ɓ)L9֢91=(cВ VA\2C>XeHTǢZ-z~+>hڸbQ}ClVC٘ >԰H#%Qߔmny~)l103TӹXx"kXE} u+LcƾCmȂ[؎psֈi V*3Ѭr9eVJ?mEhnw(T1e9 ;L|Z_~-O9ntS)_v:j{m{k5꣨n;tDThteS|ƤG,RYut}UIuen*v<6y={|)5cA1Fܓ1't-#j4ǩS3sFe-"ἱ* OWcM[+ $) .ڴt\ <6yMflrdޡ/r0 ]C { ai( 9.(m# *bև1kQB~UMcQ_ |xniȮ~h<4\ATu|v{|rLP ]`-=:onCkBϪ1fC}wU_;6h{]5V<݋( ܞ:uj~nڋ\1،iF+5zPtԓ 4!ttX1(MdkՊ 7V9&۸Zx5ݠcGGW~S=m<|Xy}0mRu"ΕB~cWտ}d<;2RP~}ܺ{< ^ ߻Ki 4'kXv`X W@2ܒh,cԖڕ t_ ei hEYREŌA7aQ8J] Ypˣ}aPU(fM1.̾*|U*´Cs v3iWŬ@^#<nC3!ĕVS =Ptmm|O+=SUj6_AğS4J-{X1q)pN  vK0ೄ#'}/|]s;"[/<+-9itOB}`l?ΙJcc/Tg95A]\Ӆ 6vPlB 1ipޮoEzSO}ɬn@ٶzSw뢙ͳ"L1wNgEԖ˕8`f|5ѹZoFYe=>Sh@ dí p &=hՔU{`}_\[پeTVbgAYlg')_ }^e*>;-ʞ04ӆ[ yT!Ieot::f:؊THqŴ1ˈA9}f 4p6eD,G4\UR_}ݵ`kjྐྵ͊YmT)pz^݀gڐ}KgN W)ILFϱPӱ[kotCҁM#^(ʔ?F|u\~L?KuMsi8N5^?>mG8ccGuj?8}PE~T{=P8vwn4@ $ӧemlq34e9*>OB"e:-ʏ xmV nLUzLͤ`u#icJľ>eK4]F^4h1! HCR`ވڱ{41`4ˋqr`ӯC'C0i[ 912}Ҝ7bR\|>՛y͵k?Ҟ>o3چr;:.k~/c$ve6!堨T=uԨL[{qY3϶N3@'u;Z!CijT^wI},3rv m?>T/=l BBd%("ގ1jKʆ[oO2h,:+S WH*ZjL9k]]n=fF o`{"vɏnt}7 j>45A_;nU~B0nM͇No ~R_m@7f1&ʛejeY|X5`#H Q,ՀwJ`8VmNvBvKwfR `6w='-!ԆPE`.mqiN=D-]bǗ + R4k#g| ۉFȖGD፧8R04i V"!0iX\>Z6zJ OQ[74zҺH.K/}_ngέ}My7Uluք[7zkߪE`l{1;u/(s![2I7KƵ>?B{CR@7SnᨔžRt[v`p'4}kOBb*9ۿjf wEmB>\$eIcR;5%'->k<3<)[gVzJ)׸M&3-\{Әqǭ9k͇XWn9 _b=FZܵ}e h[w6vWG*S#JRYܐx#+jCvR U5j1WOvX߻@mwZrjXh\}Բ7_]sQsKb~ReC;\64`W_ӖW:k ݩ NKNsQN? ~}BBP @( n7F(P l h4 @(vzmP @((ݐF3P @( n7F(P l h4 @(˴i=[ЗяhP @Z77 yєFsL*[`k/e {V|.68Ծ.'@(S no~g\,?ϿD~zݽp lchp08鵎0F @ry`$B=/fxmlG@1P @(Ȃ[ؾ.Lլ'/x%93n̲w+ CaY GAw߲T۝՗]7A(KW n)lO|.qXB@uqxi8gȮ7Mh#AGS p"ZLfJ~.oB 8w5mÁ|lJ Oփۤz`wѫC(YpKgm/l-XEy)) UP^ԥN5TP^Uu]Qt.k,/mnbS $i|ҎEr P @JNy/jE\` duo7؀ HtDn_7+]¹M6/64#R5Xuemeq+jkSv6P @(@Ү@)w}Z%\|MCnoԶV@@rmu*}7Y0"E`͑&PtAlopK\.KYת/P @!+-cp l)]H|r{:SJK๹)LWpE]) ujkjZec]%P]'$fEGx^p(PP nI1?3o}E@HjMQLc* eT<d|YhAO-1T^sl 28Uwju"}9j'P @(6\l%h7R.JEsVox @o{- -$J\E_._rP`4 iehںцhgd(j,0 @(X% j}f˽s+yP @(@ nPeB(P DJdGP @(}(CU P @($ܞ9s&s)?n}~:qN~?A3h&@+%}拮O?peB+-6V |>,Kg#x܏}et|YpkAbx{ ! 4|>]@2 f?*Cw|gs"C+u[j_Ό20(|>> >*1[`Ȭx3Tlg]]29\cOa [3qa)ڠFuVen`ttKi|`[n>=+Srw˭<*uk3q0_FOA+}@c8ܦipଆIթ  JZBCS19ƒ*ʩ`8+>a.s'۹^$nB6KۘMf9pSWα v7^_Z:zpof-t|j37h* ٿNe? ؞˫c:AB'} [ >俇඄d3K,J`0e*˂E`wp* lcG]N]9ǦHi6ܶ7hIַk3EOnsΠFkԟm*خp{XlMEc4BY2-agJ7?YQݽLӊ`ZSxTJ#-Ac]E}QVwhe_jXE]i z8pVbk6ծor|26U=G]ջ%T*9Q/Â/4V]f] [dQkcµg&kLr9b/ԖmR} TM۾īYκr +5GSԗmM ­ {Z7f}V=E~69vҹNu:3q 6]>Ӟ&:}׹S1;kwNjf@q8/gxƋ}ю>.T Sy/u~ {>;犉t-!VeXu\֚,V $O;V/%[D[S e>ju@k z@Sk<"G9 nqfzoD9~l9xtlDa .~:}}3/ Ԁ&!nԛ~b|OY:Pv}k3 a?FV=4?|wmףF/+%ܾo*j¦n `KH;zUH ^\̳JW๻F #p*`K?_} ~CVCǞh|Qg__z<]v5@׊^3]|G T7t^`Lp&?zJ\u6{bCgZ@ҠV7-A֋^@K}Ѣ1ʷu.S_.{lſ)_0rnIiiթ2 TnBpH ZgD:N8 | ("[E#%ZQ:_)|+ҙ7nX 1{W^$nXd)1vJcgmOd@@Rέcm mbpӹ 5wR pۈ;BܸKqpAY*lI ߂22L#xSRg+#bvÂֳ턠w?p`;-zAZoi c6A9AL0΍FyUTDHU~lfaG)j0_nYjm ȒmP6`K8IPW'9&@eڕ4v>Luy杊76F$­3M(:{t@l'ٲmu pEtY1v\pKܱmnt:Z- l\q=wVF}ȯPE]B9<V+w3) 7/cڢe4U΂2(~>}oQR6м{w"O ɓp4Ѧ(MTkkZ<%mŽm{}[y\}Z `m_4D>g \EУ|fT L>uycE"Ѷ-MדN C!;b OEƄ :H=J usC?O)ڟo1m܆WaFd]}PSrnڜӕnTA`@\Ta~;ejf%+hxL_[0$p jirl펍s#i *.?ڕMI/ Pr(vwr@eomI[ҎzW,s |tm7P >#|VSc=Zwс_6݆Ccp6_VƊvvE9C5/|>} +rր  .v_p|f >@+) zA[^ $|>۶;i[(=A(P @nv'JP @(XP @(Up[yt6( @(T5>g⡇=%ZM A(P` [g?b7s3nmYѮ:"9\cOa [3qnGˏ[8t:Nvzy;J\Ŵh|o[FPmB.[mptiʾO-]TȆ[ ?S'+^qBcn0:}AV ^k>|h*&w9o C n -am2W|PAMlu)9CMPm4mO<S'2(A d o|;6|0a~m ft }4{sCp#~Wө7\-Y>=}qleXc `/pqFpsֈi 4mtAgYY$Yg8;t`CMi6+`(vĞOH* PʀMhTFe4J2EqSowAoqinUN֪܆(ΌoܩRzyb" MoNfsجh:t u^F8ӯiQf Ag{}4of]WεF-ޟf8|].{sJ߭}^MMP * /{{d~-"h"twI+=> nYJ7ϓ+#,[:rx) fAY S 6[5 :H$ ^Q  >p<w7Q yo&;r~yґn5zd.:Щ8G`<8$OfK0pcPkj}Cg{t߇ĐێN&טe<5ry,+K#}80?׮SFX.P9#P n.Jۗ?#hzmbڋ˚i18tS(jk//^^ք[ V$JFQ$2 9ۑ"AQ0DXu إFV)H)vPU493Z{i<_ܨQ"fزEe[ߘV ݮMSt <" ~(QwVm]c|k}M6 D}=ϸ?j\#n+A܎ cH[1>I(N}gMK7!n+i(/ƢíyîFQZW=(AitOp[Nu6`p+ .4п n<7tNmO*/}`\*`pi n3k(Z4N`s܏OmGB(ЇpKw`Kʆ[.ջvK5Rl ;JhEbڬ(o%4hNViG`*#-ʕCvi9uV:lR9( (SurDˢYαg$߃H4/ Ù9i̿>l%f]~i y[[2bN4ȳX?#*;/˷Xv}:8(WpKf3f3cAnnu`յJ55;q s˷\v}BPcێ A(P`E nW$<P @(^mD(P @)] @(P{kP @(VvE£Z(P @b %B(P` V?=UYΤDAP @(X~k7s3nmYѮ:΢ Ns.~}L\(S^Vu|(#m,]oU^mYn_zK6H_uݟ^>vH%]jeY6dV'㼌*ۜk7~Q n5OWx ApkU@zpVä,8U*aӂÇbrpG҆S޿Q 50/rm6紵M]mqU9m۾in׳~견ˬliS_sbP`8 d o|;6|0a~m ft<ƒGv/rm6紵M]mܶvJܶ6XsY*H[r}ғͅf$Vhд!S[:šZi ,aߡ9$4}.Q\6atùV60Y w sXvt>3>5-M&gtNImtUk"^W)͊߉[4cgm"'ZJ".qSjWo( ܡ/ n}_ZuFu OK7rMs\pI>/]׍ҥt.z|rK-}~i1dKC) /{{d~-"h"twɊӮ4e9*>OBȮ̚pPp̏m4ב߲\8 k*cݨ4 >:o.nA+ۆb F@+ᬾFKU7ݢ. <]yLS_[8t<U7Cұ>?I.by5I/@?\8(%DnjVNQЌCtn !"kF@.a7"`ٱ-b12lSެtRNNWѶ>E+?v.!3reΚ˟>G9f{8YdtjCjKf߬\C* -c.%}ғPFmO _u6VX"5x\jљ qK[4^9t*i8ONM˨Eˆ[6ܶ^uP,rلHU.rp8 ^MMgtACsCZL:6~z%یKC( dp Ԯlt^XL-A;"wZB) 9Yi S/.n#̍CN]vXS`[170{5*Ii _j5&m.6\6\׏ S537@ǂ0\M'7AvXV&fbV=0qYpQw`k-ߛVMEI) |{ZQ]{A+ !c{ZO'Y{Ђ6^3%"hX^4Hc 9\TiEdr3ܶj-_Zg/ + E!h/syF?̟}+S{: b!-VO;5w,>qnp- P @+] @(P'= bP @(vF(P @$,P @(XkP @(zRpۓ( @(P` n9jP @(IVp{w -?oz GġI~8Fq7^}yif7& gɞ\&VΪ Oun=ZlӞvxx/﷈7H`*dR:wr.첬P:~TLCmXKZAS%*ޙ_`6uv6xP @S n)bK`#?ⵯ=#F!?y#.̙MঀL1m5戀[SE!5zXFM dZ(E r9{vǰ-Gs PT n)l9> .qjlL5ZGa܈=%\B> 4[ɺR4\iۥ&,CttOZDjj8.i U9EKjtlylVD.ukit>g gCo a^_ƨҫ jcm}y`V2lUPP[%/y8K[g6җ^֭K)͂8d2h8 `DSݱ,m# XʻdS=mL7=!+ Kߘ#vюbV?l:*CB3ڎpv\p>T(r IVzpmj״TbKP P 31RPn)Tb"5h ȡ>j0*4r2Um촣w߈C)l>  Z x }j:.#Gnsjg9K*| nBK0,=]/A<.{ڀ^DíCjZކP|>֯Fέ]pk;M!cf.؃c P @5Q ni/Z4F8>) $PrmtM(^ZZZN3ACBڬ ⲧVmg XQAU%#=-!/r+*BC ߍ2w>eD01&C(@ܒٴ.Ei'MM`{m eE\(I\ Kn]j*i6#s ְʥ8g\UoO8ɂؾ\0`mpj+Ћ8+k@`[ۋ"4"Ұ] Em& ` ~pAUa+|t؅PP nloR7h\  P @(@+*y0@#waP @(QcPn&h(P ,vp*P @(?` P @( nB(P K@(P ,vp*P @(?` P @( nB(P K @|>uə3g |>[=n|>nkx6}p |>6>33/-}p |>X™ƙ=m!> n.RkC|>00vQRxT7n>|>04 chN{*mf3h}p)|pe¯@n;8^㭛fp{7??~u-0Ձ-?`wL&8-w[G FGʱ mGޥSڞ{|JEl˭uվdM2{X[llp#Gmۣ[%n՚c[5m'I-qGZI5p;yv \T|(q֧x kiʲm,T}()[z}\i"78-b[M.9z\!]p;r@rc !m(:;m@n#0Hm$رlH5IiXImmMֲ B׫WojSx́E2~ʾm9z\Mقf)c{shwpKPkrCptΨEDP,iI+VMWVSBsM#b+SޔXQ:Ρ](dY GXdՂ$pE}%6<ẴGv_GYEFyڍs)xkKM+e퉵|+CzT'/8zJ_A3w—t4ڸݢݵU?=,^i >hߗuc}MQz>ӠViImh]Ҵ9Cg(գ<kڒ2eqlrבfKȿ<~[=Xuh#-b S !m9)kvAWp[yAGfc]U ſ6knьSތXo ^.`Z7E_)LvBp"fʂL;w}l#-!YI0N[_#U{6pQ7|*yݟ: #(;z ݛ.\)#6L[3))Ǚ~ӯb௏5LṢ4k]\W59*Kٔr-t{֓Og%7jW.[Fj |(uFt=%p#H`@ .m-ثU^y445֪5}^L=ȫ"7SM76#:[ؿv68Zֻ2udm3-!dg0r}]7NPdli^ׂvsn Kݬ*}lio6"M1DSXaLsX9Rd@sKCv$yOG4sJIf3h|T[՝=T?Q9SaݾubKH!36c҄N=,$}zvsұͪ:'<Vs/fb+#-UeH#߉ҲfYmy ٢A-4^uMZ9eZ[T䕲-o6sESES ʘ4"|n@e Z[5(X"Ń{oy9pkrz*CP+96u9u>ule5[Qm=3/;]_yp۱P9"vIPް<]سH88ԷaUzᠯ宪ש^ml@tsZoUֳoа'nuraF@D& @a[?5B򄏯})DPC͞-q\#(X0mX?޸?|>-O,n|>0 m~NQev /|pQ|}h%| nzP @(06֚evyjP @(R śTSl#ese{]Z!jeEdK*ԝmlFEw4~voiz} qY8zhP CܪgjȳFߔR~%oћj͵]i 9++'v۸Y׀a h @(@۷B׶qye4oyuX˾ t29vW-ᶱ0 [PF,Xm\L ue~oS'C.n:}mu AwetV;{Pp%/r%[?b߼>udý;?a}挄ެ5BǮ?\E(!rQqܶLo:φ[kPub0:8wf REy^量IƻG T@;fKdmݬ~b{-co2P ]{B>R[/1<~mP @uWp=-E>v) @%P @(Da#~ME36Dt4 W P[s[sm"禷[z Tƹcd7#-A˜2//(3i;~KVpdQP @+zCza(Qt ܮP|T P)"[nc˶plQP @$&ɴn7t(Au۱P @uSpn=DJdGP @( nP"P tQŽ>4|p .(3g||>E@- 5|>|p .(@-|>  a h|p .(`*|>  >2Po,ZM|>|po!œ0׵um ^hd n1=p [ԇp>|h|p7P nJWJگ*[ ɿn5A3zv# [^~,.҅?TAzXn7c۾o1 |>]vЇ>%(Scѷ} }pF@ n)//߈oy-"ˠrc 7}T|~NsM+kwħo9Cˁ_~ƇΧb~GyU);^| _wu;en6+>O'?)ꪠ[AoX&oA@ ^qng|Y5IG .nnGkpO?\}NzH|T{}GR'ut,ߍ7(>񏋏|# Փ< %L='7rK {ĉB{G?}|bVqw|pF@ ܾ}ԧd!?Wu y~G%}QbggGh~|E|k_Lu|__җnn;[GۻYhcW^hd ?ASI;ѩ_}u)qΏه5_swmo nwwo) x]xPJEL]ni:D@[ZG6GV@6Bini7 7h^)pKaCR-Ej)>d|_<ݢlnwۻmԃ7Bnʯ@[؏W]{?ClOs~c.?7>/*k;j=|O//'?/|~)/x7w "sl5RR@u1mkKʧ DSM[Wf}2zs v ?n(s`[쪴8NiΫQl2tes bT:AElmYm-K~1@tFٷ)pK@{-[JE-k}l qӜ sA-/K=묳\:OK&'-"tJ\RejT6-E|JW ،{%?yx۱[[o}ߧ EFwUYD UqUEgNUU[0yþȰnwVJAzDgc>cmԃ7BE."PĖֵrnp{g=Yf jg;)t@m',!Ї WOξtM2 믗I[*S3.@J+ )pK (ߖ"7}vN}[|'u)YwK1!vTZfDuT|߱d]|^_/L`]CՇY#ۍ@/4o[ʱթC׿<~ST54-A|h v H-A-(E7 IQ>/MSv Rrx n/w_q n3_O_7L E7Mթj!X,zt[-ciw2ב[:dpM/([H4Kɠh4vl ɹNqzv# [%H"M n)_$ߴ{{eoi CK@Hw[(v0-!EP/mvS7ˮM|ŻM߫i7˹չ<[ |.c{A&^`v挊u{2t|cڍ |߷jvlȭ7ȡ zPF(VS墟ܾ/OWN/Z۟/_n \ijP*E;)zK97}hѱ9=& d BKz1]-(h*v[ĕ!y]Gۃ9rDMoJf,th=[^;Fۭ2D ԗuBsx>B#V`ď?sO'R?!vo9lq}HˆᜭJKՂ2Z'PJ}GR2(oNDc[*ruWz[ZHWW//;N/Xi @5ZmeoApy}ĝ쟕p?.vGpK@Gnc {wz͵; ):6VO }f~w]nC2)zwCT҇:jLUW]u?q%K[>0}_m0wmnz}+ .@ RpяRcPkWP-G9-(bKT ږr)Uk6-nC߄t۾o1u] ^ɗ `PvP+셿.^hd .=w~wd**[ :}3pmԃ7Bn4¯6Fyn7Ⱦbx<p ҟPi|p7P@}`nFh >^hd "}׍P @Z(E?IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/figures/patchqueue.png0000644000000000000000000002340314023111777021310 0ustar00rootrootPNG  IHDR[bKGDC pHYs+ IDATx^{t՝o$alB6dɰM$M&d2C@,@BDزelllYtKr[jIc0 ?8ǐs1[ժ\~/[{VSnWw3c(/>_4 Aee%X,,## :EFdҊh}TXDžJOh^Oq\#ᅠ5ZlPSF\ˣZ댸~7l 7xQ33% qV=>~?iQ6=n1cǾ`ĭ~=/}F|GhiiQ??iF|e*mkf4]gFO|]hv3Z?ߌ(ѢMnc77REwqgSO%ķxUV\K}WWͣK n=kѣwޯ_ zܣA%~d_8Ǐ^+w}zgVP?㚿x +x`D1zM#ǃz|1=ɌO=l#<&xԈ%Y+ӂ>Ԋk?F<9i/x_ Q=~eƱkˍxZ>~]BWXfƉ*ˆgOZRW~iqZF9cE|Z!xM*=nX6xEFaDF#ˆ0"8_FuV#f]DnlmV9܈!LN #ˆ0"Xx#/`Ĉ@F W#^}Hqq U#ˆ0"#ˆ@bcň0"#.{FXG`Jx:ӦoEGE#g6ڇ`DF hDSaĨoDZKb-AǮ]e~иX7T.^ &'SMԈL#k7 5~WF!1Y#.n:B+ߺ{^U6ijM㏔0qD=VIu[ aDF jDW0b7F|3qZÂ|[Y2]"BC~znDvu<5 PL7h N50US{{ja2Qآ쬋#o i1VMaDF#F> gDS q.F4u}V#~m4޳,#\<FaDFE(nÈbnFY51auXv jh }tV];f|Cq{4qSFaB 1R\uu;kFsbQFה-c[JuYssJkV0"#ˆX 1:x2"YcQ_5-/50"#ΟY0`Ĉ#ˆ0"#Η0bщ?2ϟЇaDFӈXDa\ !Xt$F$ F#FQ.G#b0yQ`ıh{3;r%14޻{dNi6M}ƿ"yX``(@s0bgf[VN|wdb W'umL{?M/d;R8xm\>iA˕%'<pp )hF\;_|kxG\OƻVL~}y뙉!eXWoٙ)H2onmݻ/=d޽;uu:tp_7\N=LLLp4Ruu-_yK&y*p:$c||]K9\N#LfHO("0b9q,;yON~cf<ɕ.AXgWd/ȴMd&2{Ƕ?F'#]Լ[/N o_8񁡡TjWccKu&=#hpiG_~w_4p;Vys2]iO{{^H<ϙKí'匎rrs)rPCS#F׈^~/>'Fn|?_Xv_>e)d#M-CҒ>1{2#>ˣC;RcoEUfpuq57KkmOjK&K7xo\ٳgUUvA{su{FnĶ6Bk׮ڀsk!'''`ww7/=[ZZh<-x o`(@34qhwѥs9=抡ۗAKf=4s~j-127 wmj{nWu5$/yx2ؓJm|qcGv77#7542SOqS]exSyr-577pqɓ<ۋ됫 lǎƕ\G MGCmٲ_ܴiR Xx`(@s0"w6z1飼ߛNKv FTؿ_-:oY$۔C"==F|/Nxdz]=mXMMM\Ϭ\:y8pK|tQ[K_zvnD^m۶M6|p^NNNrr.[l͚5ܩ\ ש]o9rD:2`1"/_[Ο omm[kj| 8TN#I/['|9Ij1ǫ՚փqOqw}gN7T=O2xа{:t(򒑋m`@O|*ZiO>#SOS"(7m޹+հG;Zxf{c+kj >'&U?lծ5-yuO٪Ԍ[{كW㎞k׭Ow|:skOy_q]KFyu53=w=sKkZ? ԓ"1+ΡCZI0b!?#&:fuDYK"HhK^Ҵɽ~eڢ œDnrԴY:$1P#jovцsܙ (2#)Z5 [z+4Zyv??%86s!XΗ4)uH0b4\Fgv臩C}B2W)Efa@.X#gF6`e\hEF̕@@a]e^r( `#@hp!B 40B i `d|!10r}8@^  ΈS7d1tFpP#*:R1GwW/, }#_#fƿYznR<=Z$3.,vGY8sT>A Cs7b@G͉9ѕdUamDz-Hٴ.yU=J$wz4-vuVsECn\ϱ|OylD/EY R"Yo}+цƯ[RQq 9QUSy ^JT#[s+$לMfad8Lcc #$L lD!-siU,՞cuI3$Gʡ(rFz5V]҅zNh#@9?qxO"YZkc')tgFg-"È\! i7?xsU4oxenՈ^SZ4nЯYw/Ɯ\=oGeOJL;G˿'_ wFkt:\9 Ù7qԇS_my]'WT˲庰FB / 8tbV>bYwqa&"alBǬjW5*qa\ BaM}>u/=z'WNG<ⱀ#F3"\ c#Aጘ(1Y+Mʞ1J*SY$K%r0 ˆvU)OݦY Kmɜ`D݈aԤp5PY^\=y:<0 4g#Jͤ4k֊g-X[Jv~ޮ?>z2s|onx2BQ{.;^3wF0" iDF05$m'n3vNm3ON\FpPhYF;eIWuT͕c|FpPhFNZ\ju"kJQ#`$HNL`#@8(%HA/U{Y泷O~]v#V肴^R1~AF0"H$F0".C#7`D 10 #F0"`XFp c#A0b,`#@8F`D1緸##A!q n#A2b%;ٍ BIc/#E%gT:{ 9G)҈ld K_+4 t1IEAP` @eRF,El#ih>ȉCPFzo^1u$HN` @eR pv#x)m.f -iͥWA FaT~!ʒ:sȡl%S`^Qpf%qVUL\}Ʒ}3F1 m[TzD̷w;Y+g.J \Ã+ ]El3"tk{va[_[V1VN]4ßm]+W*AxB-mIF8}#dU&\^*FnAqןjT۽?ՑpQj9j=jnLgf%՝\xFxS#ˬrӿz= `M:OP&y٧jviM򊱬l>QA-ŌY z$`#`!Hm(+]tl>2kb&jY }SߥۺSޠbU >"Xp`Ĉ@0"X v)UaJh+WBe=۾ڰH5l6(I;kHsdP JP""#Fa~WuRHնgx)s+HY<'g F#F`D(.0bD  mJ FdXtFPD`"B0"DfDϵm X, ?yfMIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/figures/pbranch.png0000644000000000000000000034667414023111777020603 0ustar00rootrootPNG  IHDR,b6OsRGBbKGD pHYs  tIME!LmtEXtCommentCreated with GIMPW IDATxԽwdE7=u~afA0HrJa]%*,T%HHUPוbX"QL몣dQA&f[u~ԩSu3 >O?}Sݪs7:0i,){-.7qOeO-`bAl,Ot7ɧa]߀./̽30gu'$J*ʸ' &f& GMjEdR.pTe%/7*[RoV*AxB?9f*^:VMCJcu&09&p'lWԢH\[X|\2;86tqgU˂ƢRnAY*H_1 P7dPU2AS   MS22Jx{18NF֤nV+LUe-spZ k[8ka Tun2ȀxЯ1gB'P ^}]71@-Tpl{JlbBHs2Us\D^] '1pjI*R0 Eq3`*B-G4 kT! (|J5['I2Al` _RU!PѪ:11*ܱ#EH*Uu-K.UTu=T}PL>2>mjy M-nV KN$˼j%Y5ؐ_+C*S-3 Lj I@I &,I%Ʉh] dR xL8МPo6+d\]iҾ8q`;S"q@Z{t1;tv$*B6x` &#N+LiWW'$s}*͋o \"by.Zg)jC1p<ȘP;?-jϧd9V _ORJL3<EOɄ1QJ"K e9p;CI;D:X}*Δfǿlߵ==/>tXwչ~G>5sƫ_z\{W' %2|B':O|J!DӪIC0swdJ4 8&::O׾K! 7b+ UP]⍓18AusD8NaBR姄B(م#r=\H\P2N'\|0!aPG*mQ E7 Y')Z2}YBSi4(SEupN$:UbܢL ($ *pK⑂Ck;R?! >[ 8;1yQ?59RS"ldD*uݠ OBNԘ8:PWO rJ&Qm98E5`AOfD%D4C9m`徶Nvkpq,ȷUϭDq (6![`9]=䡵0UoHJ1l#"pps9]#U Uv'A/HXYxSAIR8 O;}O==ȶeH&SЕ!UP hd\Q.2YA"U #p ޅAɐ< 3\_Naˁ̰ΣF%>iUUJ=J0:v*"9IqhH U9ʨ! u: LV"frRMLd4-׎|0P3gXG>7, Ff s=UXJIDL]H$ `ض`fG Ğ;f{.?]hܾ] Nu)BKr^*^2+#LKI١+ܗBʧ\D>IaYB: OԎ*BW6V 5(QuLv&[\O-G@C@$0a3}h;J|RZ@ ~GxMja/PIPJ+>  A`#?n(B4KRC9'ld;ƶhUWT t)O_aU6rˊI< ŒrCUX302Nh6)y(9"9_X^̔!.z>-@ɒ fQs"UnQH8O2)uL9BL!_pN3õH4@{ ȃ1F5'Hqs5cu7!+Ie@Tş* )8D1a 8U]}0J9:qzDzE.4]Pf4շm[Lۂߌ.\t;VŧڶhGpmv"W^3 V (LNp?-~ڳ WyY|]{ll'' Rkx܎m=UE~ ?}Y'^_ݙY_I4qa!U0UD6oh^8"THh"GE+eE՝3]AYYGqXJ*hԁӢ,JէI>O,`E!u홦)&Җ*?'$F%[•Q58}H: ]Zt54bHIhg@TWMUynx]j,<de$ >9=e9XCRuA *爛$pD"]l0gI L>q[ZX?84{dRm4ȧgBZjJɓs7Y!ytP_W\Ku&I ?)%B(@$HO_O,9A[ 8_ ۬hw Wml\Nq'!$xg$T&V9O2rR:. Jru@[ 9s0M B)ΏWMTCK$'uUǿǃ;bTp&MU'hB&L&=7 PR.#`y.;H} t8O$6̡G>=N(T6. !9B5UGx$ENG* s9" s\xMXb$LZ+w=XTV=US'{>~t`T/?E$6H]DdCTVVUKu ;"eW3k+f#\MAx˓]pD*xxjCI˼`A±cR"9TM'QGV!^_ӵ%u8ERAcg Z1!s IO>򅈴9f-l6h.SGmIjmюm$PKDUPHId"u106K$\.Wڋp^G1(1(H1s^:JZ,wa9 T fE!g9(@*\gPXKIClR!s3Q"GA5<8 gM|1aèm{˿uBsFhk}CEC -UM9I&@v =Pzt9F"J}0>#V 5J@(Wd:GnNfvxApz|7g/Ig4'‘W?MUjC լcTa.\wIkAi4A=>x'BV$UkT?PiWg:UǨ49Љt(i*Zt A}樎S9&QۡG4}BC#j:LN:XKP]HL9W3G)u#3#:r#Tޕ[7I,*e2F6S*`C! )QЄ"NKNlzc4%ɃuFhd4F Q,)C>-fBAcyÂ^syQ UYFPҁ 9 dB-h)f"qIlճOZh:sI(>dQ,nP`$YJ]+c9QCѡJɯPbr0QY8y)c O(L֢uQ--ti8|_تs׎ŽFi>LqjO n l {{ҳ>%ϩQJVhD@E@ehܑ7u !hz+y1i'`m\AQ;YG |:l*)V܉hp_K/;/ XrY UU IDAT lIA-!x~hMKiU"’{ǥӝ3 < zOPiᴯ5̝RE4 -C@}BGTL?(ǪHvΩI 5lLBMiw?^UfJtk99_Y4q{2%H})]k,|R"#'!Ʊ9ӾFZycU,hʄ"h+ZOBL&,l]km(ߍLMcS>- EG܁oŪ꤭ku jrV:PRp.tٿ#+rBt{ЂRy胁eB]`͚%|P-8<#ea25c y͟5>7o&ʼnx'wuH@(wǷ,OpjΒQ)_&X~W5I'w7 a[*(L/s^|6ο|7ng_Y?=3rs3~LDzqE?U㑲*/3/>tnTĥ^I2br"!U{woΚX7cCcycX%X0wC]gOG]뫚@Pt`2bbZq*9 F 'E4k@X( 1$H =JIˎS1q>k2]{Ii̕uG6LEW81M@kHz(3&s2] 0w_@8Kw=*Y~ͪ'+E $A>l ch:4y0 ΥF|RqL<% v1y:5mv ,}D!o Vxj+2E xb@L>Qx$f}#J%+VTd@kNz8IHL-jLf,DMQtpYqk8$ڶ'm= 0h1z*t@YIlt' b"ɓ+^ f.r~GO-~VuF8qhilxcxďmGBA F& ; ytW psOsO{*Y1gE(E0u.ЙX!U꼢νc6&̨uR+7zDynF+]8+}H>Cn4p\X(nnwΡ00gS| J;($tE)>99w *B3^|8oGiP6t!䂵@shazm wX ^~&iK@f {lP}yV߇h_LDxOf(R~F5,;A3[`E Pc nuer4zg~9p& :~ Jeu]Ĵ Lj[^zZh MNJK:OVʋcP7ʾ;p@GPNϭYC2QJah0"-H52ؑ:ϑo@k(9 vߍE?.NbZBBi[vdD[ ,3Ļ6"f2+TeAzQ\DV5TkhAp^FV`&NÜŋ?2~q9=PTȴZ5N4 oǶVA|gފ#[ kW)\vҫ1,{3qEr,*}@߂selr xg>8+Z|3 G^&^[[8t,ξ5h_nykw`q$:[-W~[K5Ӭ[q~G^+E;[ÁG}\h.'m,|Vxy܉; /5xU2ˏ|v>oW_="wxV㬣_=)-1^dM}͗ϧq3 x[?o|Q 8} '8m׍܋SW<qo8y׍#Fpx=_/ΕPw4 )\$'hlӛމ7aeM \m 5_0h쓆/5oJ-qgN1y4g}KoUG~{2.%|agrx-\}Eě'u>S`v_™c[:G}Bf$7)Egu9D&<.u$XS[j] S̅},AU7g1Yu5?) eq~tdJ^%BNJ8P\`ݎ$UOiد#JڋR,b`[K_%i Ux==|k"Ħ I1q r cMJ$x T 5=IDbیdU)%e>Sv0LH Z4U6e Z9_BeJ@!쎑3tƎǏŰM"0?#y1lQL%M](RVOg`0k SV-:V8100 koeA9kJۚ确](}HkPSZm0t81Jz+tآ]ז1l"XmF6ѴD5L\2 91 1u˖c=q]j։Z ~/V9g(,2wBށ1).WdyxIN~>N~Nw3p5}~sԿgO m;`.w0 ΍_ gl;\n>^~؀` lcA7 ・e+, _nܱ'6Tְ Wao]{>||03eWG `ul͆R1opf(i/ 7yPx/޸Bzl@XWs.&s=8 T'~  ߽^ߍ'^4?)'_?y>e  - a8=x}_,춾-߆]qSyl-ow^]6?bf^bvw^ i<U0.>lRe;N 8asqFpm䃿u`_4º"qPɑ%-iB`Lg-UI`\\r¶c!1d A5*YƦ`8? ;c*۶bmpcR]m6'eiEr.Y3(֥\Bp*l;O CVژd4"X+>$ªn17I8#ʥE[Yk αŦ<2g*CLf&&3I0DwV9dG$}IO.KIBJ*|<>KG>4kbpv~M}^N:X0k=[xD5YMt[I  7$U'QTRf|8<_%x_Kȭ h 1{U*Α&o:6 >km3~q9=\^o;DG|>ݍw#6L:'J7I )6x .%#0m՘rM3{ w\'|Pm׏7̘_ɡ{-֜M:^ŷ֫ ,xASp r 8`ϋp٥w`Y|q7܄^1&E{ pN`)&ۗ]?}+J\ϔ0dض8\xNh7X5#obՆj<‚yka?aվk(v@I-N[)$xbns "oʘO2˲1Mˆeg”7+ynWkPqΚ/!UYҐj z#]ImP7$z,^ņu!JaxVrL-_˗cjjƣ1l*DZ5}""E@8+hhVX+V`jjVLaj?FS#Lajj[@$!7gTh}L 3{:MI1LmJ aGm0? IDATduġiZY5YJ.Abuȼ.9k%{`L?C9#K߹n͙b89p8p CL NL`b6111 .M,@^k04`@(&&&6&prÉ!&'''cv{|mР603g53150= ٳf5W`gB=k63g)y̜f,Hg`gA3s꙳09Y1= 9sZ`[Gc-_4.L}Wm!Uml/'X>+bb<>2fa9Z\ݚ`W;zf՟%'B9E݀oo;<{<%6.Pq7`~}w`vѽyo85}w|Jn ǩ5|ͻ+ˆ,o+qG#vp=ss{ ?⹎L$yZ M`|U mO{1۷^'-}8Ĭ>c mubH i8l#fS~gvBSF87`!û.{xN=eD67 GN3vg5CiW.ω #8l!?mG\{zqCn|omf3Ǧp pr~d'6=jd/M;Ū3cV9?D#l6K;ן~ NL​ v<Kx[ނc,yU8I[Ff@m5dZ2B/ l-9W;xj8?,dD,i,0&;9aC݄JE"4(dX¦"v]s_zD(tSC ;PP3nY|d&Iw^Cq&&7:1NEu wL6X5ʷT14UWUp_T9!{X%ur BpR|6b t G^l7 DY슞I!Nz Rt{j$.9\cuTNI0) U^S: =ڋN HVi0|GSV_(dl#|^[bx4 l 5Ɠemk]t{jۼGo[BZqPYFy31[d ev&$xܶ∋p&Ax Qg(>oswxIxyaAw>jcEXXHDA!kv߆aـm0`~~Ε=^dZ:T^W8{bӣW`r5;m5f[~;o.ԕLN:SjJye~?8y+xZs"'Ӹغ=?~?8q+ͷc=4q:h{(Ttv1Ӵs̶gV}Y!3%+@κHgi Vw.hw(bN/:~u*5o[UGϿ?EHRGLmQutn TUi \û : ZB4Mpud(B4n>K%{gCp*)DUh RNݔƟa{=# n ]5a 2S;&;N֡p$A-7DԨ ѕKT oغL?Y<%`Qh-VLz18~SuQzLf0\ӡhZ7}uj9GvPVcĐ낸U5aKCLJ|u#k]: jG,':nGh-k=EC@* `8brr禪 x뗿>`1I3NHfat ̜BnAS3;히G\j"6~6,EH:UsUђfU"wZue\5KB%3т-_S!=omE@tQꗩ˖>˗'hk~ۯ_R'yy=p=xq7|E-I!Vťݣ~XpXdnYŞsྠxC.bM$xe2z:Q7h;hN :PN4Z 0AU!^ X;ƸMnds묍 %8 <$8Q8u2w*c&h2ȳIbM 30[mxhj\zUhQ6"j**9y͇e!kr)c o1gz隹4\tG~ԙ }u6sO|a`D"m'.U )풷@Od@2ZYJXI"[t I<' vMĺxѻDzYV]_W8P^b\G/$8ne1AR$i[,X٩FD[]%i!lZfI?? ŕD XA](лHbˊڟ`u7ÁI =\Lt˃?ӮP3rjLJr;Z_߭p*69?.RME(͎ZX! BCXcGʁ^= 0*60Qk 290MPjAR0uނ wAۺ; |i<@^1Ӝ;ZEhΑjP|zHdYs+@SpRQRAY!qr>dIW]H7q]?ZLVΞX7kưUQU#iGTEetK10w.o/wk 66h3E¢>"N(EJ+Tֱkd x-lC[RrhF݄O@PXy"M1E E\Y9⪎YS}ҐYBF|̝2pѢZd'Q;˦)v 2\Ջj&8M(^H*b LR@1O߃qk8& $ qFB󪇀ApsW >dAVre I6e̙9,06V0RQukyyl*Ȓ\4+m 4bw\ѷ9$:.h^q\xhG_&g{~V>aec'oSVDh SEUP/hM0h}a|'xGmuBO0$awh!FğF "jBZ[դj.2jzF Mjd=L굶sPB1ha[n9U+ۈx'% *8t껵c>3^ͦoʦ@BC ""?+E_2]qHʊhRn$ iIZ#hf 5s3=r]לJĝJeN*()& ERGU5%kf`3E!#mIw i)⣧r©گȰXV(zBե0xzzY[=Uuthg3tG;3b%dnӇtC (+lWv!õnHsX>m픰Y>uP`q,O!I}AZCv#Kk;@="@qdQi)ob* J@5c[IɁ'M% pBySզ F*PJ(hƢc/-vdHg6Yݮgfʪtt`ݻF{ D@U*A0hJB .:vq|YAf-HˠGҭuZ 0 ~];2;UH @7UJ\+SRoR4 JXV{&ѭx w ]%pBUS.Tv$ͥ13ߺS¥K/"NIrA5MQ4-CN]F#]Vbu*J/i ]jyě%E*<)twև Zfִp1gV!HdM4!=הr;]BUNiB.+KK果7]m)Om5UP3V.ڑQgC:Ҫ|V@ #n1wۺ.B%5 >ni: }8(SEU]n6 SZ*ԭܧj[BMo}-;L1 aOq t4-@@MY)2bʢ4M ֆc5++*vm)"aHe j*ՖcnF뺽Wlk6A.juZmJS9dʍԩ푁Ln4QHx_v̄ЭBT%5e*3vAHu!3XՔ#toT(@J5@oKK.=p]A/Lm\;'-8CᎃpxeU7Y^b wlni_}!%=#]f1xtᠰ>d@TE8PJ0 t2o pz0R섣qBH+ LQZG k[ 0  U6'yE7kZ20wi]{oZXlbeZtkL d(D]Ϯ`H6KaShfeY-C4S^ +\v+ݭm4S8^7'=`֞\u]2N'hpp=Lwbm;Ȳddڱʅm©d.\  U @gnix )- 2bx+Vf8=%)(HeJXU(d.sB {Ha8 if:XP]FRLtWrðAAQĶjxŴ`-̈]t#*p畎MH*@ZOY,SH`|wRi*5EkCXEq &dsS ikbR•5Ȳ9dx=Jl9YݮzRZ( WF@Ƀ~SZ! d{DNdv岔Y~'.K"#* IDATtgX$-ބKjwr1:yF&)ef@-_*lJz ̓O},) n?ax4M.rd_pYU A `>R75BE+SCdQMYDN",)`` 9ja-%<8zXcVLCa}&\~۶r0 - L Z@8Y2tLs4RV/"-D:HY/T+SqZێPoG޺Kjy:ªG 4tF6Up)E)]ON,OV)M#oB\ Ee${+VB඲ffW4gK-FFUquC5jf@xF̅KML浲x湕=Fue~rʳ#`njO.câܧz:{! lOp^܉i$ޤ| bA5#-fQ/a{vyY_*a) Nk (]2%tB2e.E:CU4-i~\q9.*cGOo8A5))f3+TZK&ܦaBH&q;鲦net[K7C05魺 (]ZR)MM]@Ű,n2'FH=+t'S -j+^u S)K:pYEtH㊃-{4pvekO3H$M%^߇L..RJo'Qz u:r5t_⴬Fe1ҝI;OF ic3RiN#Yܲ j>Ө=pWI_8)mjUOEkxǹ7tOrʕ)@Do^nk`*ذ]9=fRcO= n_])R]^=yc=-kH:Uwb =nm{?ܳ')?%zȔ475wXO^L k̤n7)UvrAJ_>%(i%Igip[A>4)HڣIܚ.' 'Ȋey 8"1vGIѫ됽"b۟Ab3Sw۫ތ<@d”c&?`/P״xWWOi~A^K!-%л􂂆'6Ut ' ;՝͗K  n@=N*p_,.{weoxd")^ujۣ2u{qHrN} '=ٿտZy!()RX"Rߝ&7k߻0(p[ٲc1 2vv_Ype&tgJ.VQalB(uHotƫO-H.+"sȤ9K#$A$;:*"b^"GVSb O<րH}WzRnWĀU7Eu>KŰdsٗ2$ȬsͭRrXT\c "5#A~9j{>|Ç>|||Ç2 e}vNH~OÇ>|1@@+Svo2D@tB}Ç>|b~\ G\J=qu߅ɇ>|ÇcNo. m'Y Ϯw{<}s=|r2Je\=qhnv7sxI7|g?IW6@>̾ܣ;~詏ތg>|ÇeT?s]pU8FOh~Rtp&bUZ"μ>H]IJg3oG|(Cf)%w54 D M-IG'e  MbO ,_?6~8t6_|-}t3>|Ç0.`kBtG,c)7Uɟgl\ZUƌ2fT}W݆<<IJ˟lגW~PM˻wsӏET]Xײ<٥n/?_}_KBg??uy.w7Ls≯nvvuu8z7r+qo(D6 z>`%??Uq Ws%n:IX͍yhkI^]zoS?K_ v.1y \cZ_-9]x}J~~'ܲKoAZw[|g+nS3ȏ~1g7.mdON\5l|'k7D._v_g s\C1UGV9LTWv%ww j!GS`Yv!ReЅJ?[/^|BLɥrpbv}tvlEJS9|fvSٱdg\w.<+M]..Y,TjGWb/S)/sev\3*lT.z^>g"8Wy g,tJ_d[A.Ӌxm=>|LJ60EZ DV T}kp9l0<3ϳ[+m7O6-qOO?;5G\kq8 -ʗ^L߭lW!R&V^߶^NI+fn38扬ٞi\۸mTr#Ї+M>|GWb[BI9+ % "z>nw^WNf r׃[{uYp6٧SZlMgNȂ?`=25'W?_+y%/[so..zLm,fi֮\ٞqEY8sA{=n}].0bYE!Z Dc|}ϸhl}g-b" gm] !n~3er"6xy i4/9k.ck:a%>I3y|^SuIzϞU g-ݜg|Ç>-[.jey~|ӹ sŋ|/E.|Ç;J C^pvZHmo^r 8 [wכ:ĵ 5! =~'Xs~u+)_!죾>σ|Ç>Rhܱ&y"4`m=Xcь?Xd {7>rt>ǃ|Ç>> ,E"?{W)HٞkOupo>|Ç-`Y$VCIÇ>|cA 1?O@w!i|Ç>|Q&L@dp|>|Ç_Jt 0y?~,^N;|Ƈ>|@wC L7>|`vV"J|ؓ{h-Nŕ3DrrxHO5T:89ηDx;}CW/ 'CqI! RbHi6Ai0 fM.Oo}5:t, G5"!2zb fUj)YZڟ@` >u5RXAaH@b< C 4۠(nB„ hmiO361壙1-[O(6{O999呓@<g޽gnޅEFWN%vʆ0VQW ^(Dmgؽ&Ybly!vohg$'gxm=V:S%E&b?18=?JGRS4Xھ;Vp 7fǴR #BS {hwID{è ) ) ji{= fLAm7*X.8^}W1aT!mn/{}KDwj-iw;9Yr) r>>|B @bڕ/HIWq}os-XG ޫY[52D hf퉦kX]ںnYy8~;p, eo߱^}Dr>u uԠ]΅vD~+pjWk9]ml ^}O?>|x@ i  y~oїQ?[4v3QtCZI49;w~{mDA,vǗrD~~>b'hFW}jA0PT]Ӈ~vִpp.zeG7k߽|6?{N>^3t?ͯ}P0߶swlk-lثQV ABYsFPg &Br6]lQWuaHKh~L8.C-&0_ݯyGiʕ+>|8dd2bAz!52~xvfMI p"B;4֭[~OIQgWUŲ+: U{`t𜧻#RTJ5@TVVPŲeG$Ϗ~g ?"뫀Hę~h~l˿J-o-:Y;%w?QWSK("ڨrk=cޜ1 LW4OC}C9n4v&vr_}YmmlmUI$w cX-yB UE(*Mqv}FirU%Bp7pwpwp_;+<BrM<׹)b>VϿ'mF{lƆI !Ǔh6s>}ć903Zڂ'Bv`/>ީcDYLKhjj__)J2FqI)RB[g/74ڴN֮]رcp^oa˝)s 'W^y%#G:EEE\sKkvѣ^Ӫ PtiY $xB#P6JJJu}ew$C~mFC"F;]smۈmm#W[ e0 _SMtZ:ڀ_# u7ZG-MB7; 'd=hSß ~P_0 O#$zgA^)j}J;h,[8?{ Ol)DddKÛL.;bP(/ĄQEN HZ|zb$oo0¢w-#}jc -.cWs B.%MJ_x!_M?\-}jɍDz-۶^cޑG=B(߹Wk(omjE h$ Fk{IBOt ie IDAT c 3|ڌ[v ]2ŧ3''fEK{o_2[ᩱ5ʗ͑_<;{N%3rؾ};93g0cZRp`=L]'/gᑕ돢׽V4`f ѾvԂؔKe 1Z:1]'4MB导##ʔ*s |oj:}:_p~2eEaVBmS EW4@ )?w4{ډu$P5>>0/aM!RtWB[M[&/'i1jDٔ?t*̀_~ug}gIa ͚(dŪ 4ovMSSeeeZX@DQ0h!v Bu2uPPP|@ee%Æ ( '4$æ-'!aiҤw<d÷m͍iI3uU/$8a@Lo p)pCk+$u!療`u0wԙ,Y'&̬vґhbo&rGF( sJذeM {4#Nb¤ = #N؝qn3RJ&Q?ErOgw{Zbh }t$;_uO2H}iL2jlC[ں h.v9偾թi֐H @CcߖƨGrICM+wEk[?R0xu#:A'A˿DYa̜$ kU0e1$VyUL_J(R4,$u:4HQM > :_,^هv*E(P/b"S0 9J8ڡԖ$HŲ0ЁX5'[t%=-Hy^ly(i^ڤ:Wԫ@_0y&ۂz)V(k74rrrصkmmml/RJB53 'hQKCi:A4]AU$1ƖwɹI44Ms\XC=#8Gm:mmm{HnJo^(P['?eL G 7VO@0?*=XD>-VCοr72f)ԩ2߾Z,̭g(z ^Go[O߄sGCK)Er v ;^FOփ!PB_@ɸ Фz [M/o~]|u.2(ϰeU3C>dԾF1DNVl˳Ƈs(}2AzM43쳜;.s/о7l|_@=Gu.kD&Qh( P4bըEC>t5dD-'2z~g J:b `λyxo#U,^?lfkg/ t HYhKt@tI MKpd]>| w `Y#E>67'$;c?qڼzAիWS\\L4%gXl>HL&EarV,Dx<|(k֬p?;}qڜPON@3R KN0W$Ep(HGGǠhH{3wBDPҍ[CJE 5@0Og>c2Iip]҉ ihh`L '[Ċh׵՗=mf n9~di{`˪_e=#GN=8jFv-n]#ZnBy]שӅl}BtKFw ((( //N:T~~>cǎe;p'grb\Voeʭj3!.EaD۷?h7{BOqU6AO$ǘg]N@0*rY͘qF;f o!l(ܮimP^іFD"TTTKss3tvv{n^uVZEcc#˗/'RTJ%|md ULBHu8c Qdzr7l{bV[H:!e;RC%{%=eH%} :owv$շzgc.bl! ]BƝG:;;SfrGIbQ[iniDQ¨ayH{${:Yy6cy!bF[&nio"%0.8nP / ~ƻXM7`}YO%*RW)1kk&غ1Yӂ2(1;iL}OdhD%5v&[$h>wٸqSZmii^EbmE Q^д5te| 0^˻Au Dn{ /Q tCi0 \=>||YpISAb B[Z!+/m T*;7p1a1K-KkcZpS*\JIYY`-[PVVFRm>GB0|p9qWp*))!Q^^NYY+`^z%MW;K/[o1|FEmm-eeeOK.f0466裏r3~xT]. :$I;rX[6lNvI^^#Fd2IAAƍ\"A5v!ZaB3݇Do@ ֌u"(RTBgY^} E靇A Weظ؅)1w$N3`&j,Ct#H$RH;,YzҬES K'p_k0S~ %uQGdB K3Auʞ#ۅ9֯_OII\\\LUU:i]?Ι3[ NUUijjbڴiB!=UU%QW`Ĉ0$]t<'O& e˖1w>Wi})A/@Mt]kH9 8hk#k֬?+VȬYXn[l ΏD">0@x{3#io @?!dhѕpԀBQi>dx4}ڷ{KjrD12A풾ίMͫvHyHf =pԯ8|0EEŋ8,0lzS,,PƧ> }=*}*43S11Bsm8cCs]qf!{e]0 C-l+J@PR(H(n'|;c˞H Ð%$4M#gl +{}哏$h_q-;rۄ o3us[0w4ͪ Tz zzwi{ {HʆaI)RaՁ)3O^WOn%14%-{Li/νY+D ȣ^~]p\躎(̜9͛7cV D"m۵@!@<:::1c] &c9l&v;RJ'3?TVV:`ao>֯_ϴi <k֬ hg RN:] //d2N<g񔖖r)0|pgoaiQB#Lf K'2嵥?/InQ4VV^t7"hF[G:ן%FggDLa"I'K(IVĜP~w^):aaH  0 M7SJà~O;1|鸻F$'kwmoSD~@Uڔ*~|-{r;RL2!7&O :e )q&%c撦'l~^LtHjf&)A s ?$#Js9Өkǃ;iH0tU”iy],0YEB@ $;1'NjGr!ڵh4aw 8B}-6IţNY붆aᰓI(AGGʧ>).]d :#5x ??KRyv]Mzp~1umM;64#ko>c Iø3;H 69H4$:R߿c)(!0yfd(}u+}ko?XBh3yj -\}ꕃu~Ri@hɡt;ˎ:wɈfFfЍԐrEJIY9ʄq"~vHM[\$b~ L"Ir"yynOWXBcHA#Fsy1$=!;O (H<1캉Ծi/7w-,8 IDAT>2°,n)Qte䐇n@_5yA-H>,tQdIEui(fkVyy9]!ĠT+Qq L)&'t۷ocȑ,\O11hY3԰zLw8hk? D `Ӂ@Fz3[޺=;(9pK<$֩\BGg#٠̻ Ĵbsݹ1 d||, <-d)N,IcT942Jn :<}6``pӧOgW]x1b?я7w9It}gf5QUwd#, ,lbHqHGMDԊA}( &hŤ/j!.PĀP$,C$,*b,3s~;3w&3$LBJ޳s=||>Gx4gNG OZou'8MW a$d|J#KF0I?ȑi8SI`Nx>C&{Ep'=c_滴3"W`jNAso}t 8}/Ny~ ~4 `l!+wHH9oP,=BPo`@QB<+mwZ9h?mLլߏbߗ=+.АFM%'Obh8~p [Ho9p3=xa韺7Pd㊑RxHm (kމZ?!;Bg=wWb4]ކ$qrJ6Lpi 0Pb_e.]d^>ӗڳW3WKPr`y'w_~`){Sjư{G+\:F]vG][Pj{_BE0p- qyCAcտԼ=.>((N){6>lշ?0#f\>Z86WT%` zDO'va}[L'!>}?<[^Rwć䬮rN}Pk}DmkM*^ -3G κ={%F+]>ZjO&Mb˖- 8޽{+^i=ٵP#h+45D5 SL4 żC# U̶w1;X N\B_1B<6(v槟"#=L瀉NB|@#?w5B0o֗K$ Ũ+EaFr~P[nAoLqfjߟI&q-hMkyGnxD;ڏwt%\ ;9H_.tׂb0t0j2򠡸|c61]D"}Dr^Q4zFš Ⴂ-rh!H$D"H.x9BA(B(.m!NAU].cjsNY{qFY $H$KKؠq_ ? ~JH$ܕoJt s~%+A"H2/iBe8-tŹ&3!9HV PD" A]H7^^bbbdMJ:j̴D"H$IGIUWPK#jIwY.p^Ε H$Ig.Q@ B 0pY D"H$A BQ/)B'Zx@8í$dI$/oTU b$$ l PwNIFh۬K7o6QQQ?&i .BX03e0 Vsy"$$h:LN7x˽Ӵ[ hwiΙzmV}])v8~=ߕ[UЯ0xߟ{ R~ ^Wm<:էfQu\23_``С\q3p3f W\qCu y DT(%+^A(RO[sHJCwy?9^fޫ g g>Fӱo p){1{1.ط|֤H=D" b0 +8_7>nƲ6AzJfxxbi!<{:Vjq6-r6޺gVf=&e%EOOl9- czX 3`>/-Wv]OQūfw?׍c8uzꫯꫯW^:ucǎ];gL($5R-Zڅ8 EJ*tkd-B ,ِunVNT{XNi2LZ剫"3EdgT[My4| ZtLÝdS>5~*{߳JZUo (ΞGÄDhA4?ykD" Tc2vs@wS!D ^\]n}5Upy^LYeTpƙαڈXƮZ-/ `H$`Th6Y^0xӊG +u X`tW}|dk-^Hb"Jg}6" Lv,|n;8&Y|EuGu5_]Ƚ԰V?݁5fKlBh%>__q1nU:k υZڳGcYx5}nfC,{S7-& š=0@S_5kƾ㥺L{Jeyjc ,t0M:pg?W_H$pZQ\6NiQ d#iTG#X5vRFSThq\9yenM Rٚri52 EXU,P \fVajC lUh] FkNSwm=ʧZzc*ьpm_>wr# } ݵ@ʷjQxx8\sKmɩt5,/Lނ@IU,m097abBxg"OoZϤ l]cIRgS!aL?i!s)E7i׶>J'ot"7;'aMN镳X}0?{ V+`xF,e#/{U-y%j%+IS IꪅERa{fW8͖BQ!խpqd U(W Hs׳*@}‘^ϑ]+}*@H$$2mxt_ 5ԋiDZ,iZHk<{0<0i,"x?igQn=.S~ʾ?I^u}Fq~zW:SF]yCawGǸE6-wאP5Q]y{5}S2Y.&:ϣjF=+}Elijjѣ~) 69W rLJDf'c&WLx̹rZsHJbz\iZYRzy-ճ t=@ U8Y1JCs |60BzbH$`B3Bh.]}&?8ޟ+ ybg(ݬ݅@fox'Ɋj<$_Wΰ>w_h3z'H0O=_Q=k㆖x'ǓF@op !/~!_VNgO;L +6o/D"G (@TEɅaPUӲa$ik-ɴ5Nq=?wɊ_1 \v =z4{̙3 G@V U:82K;.D"9@]`P NIRauuAI$a꯻gC2NƟOvM$D"thnŽC˅[xP?'էD"H$ĵ 2{ijHHOՖH$D"N$PP|q # Cl ȗ'9o<474' D}D"H4@Xڠ8,]zqu09 ^)Q<\NsȊ@" :oH$p8-08Ouk.zvfC8Îpqh>{.(U@EdL#P J2 FzRH$D"\ m^m_SfR̈z˖-6pV]p@4tJ:=sCTpMV q}fE<1H)ip/tM/YtyXxi;,&q.T]/jݫu;!OI˱vT}NC?"hmnB bn+yCmwy=kKϨ"ncۙ7L˥/Ckw\9_ɽq:\W I#, \+qd.rGgK#ꮅ688Q<1@ͺAy;j)r/{:ssz8ҲҒzVd* BJv쵪u !#eܱ#}cU0𺇀ۇY?^kȨD(Ư9?[yJ۹ ^H1QM0g囈챝{R9sm}F>or_xq=[뗊yqvv0yQ& +׸~uї_ r (NF U084 CV zp};DÙ5k"AE| $NUQѪ/1 u&ww^ǯc|ßx]g;?n"NZly׹]UĻ;fsdSkڄ~SQYu\;V eM>[`{6>Siױw>6?^ynϺ2!0( Fh h $D]wP_"(Q ƉoQwFe$ʰX=-iL:GQrs&idKG`l7@҅C;7goT3ugY>8VӼ~'t c~S6?˸*wqzN4bna,Cep*AzEF΍_Z6$M6"ó<n>ĭk*l=kMgۯ{s%t加(DrK[˽Vcrx}CLak˸w߱.! W}~c}ӗLf81~3et:O?Cs<-_ϣOSMVP'#"o=lw|7P[?V3HdtRˤˣ^&AhǏBXXX3K\ PWz^]ku_AJJwJz[' 9`P0(E$D"H$)QvE U6 51 1u5PTBە|!رcX,=`K//'**J>Ջх. W]uz2wM$/_╔wO>#Gp{h6lgxb4qmim"ĝ0 &DƖ-[8pG#8~8_|Fbn- )@tLh];)dץG.3Hd~)O1#)<8pӯ_?wS__kMM-UUb\Pt5 !gݝ;w~v;{bpwD"H$Drpq pΜncw8윭?K]Ipfit*Ln@ZPP0( B*"(@'OrرVl61Ͳ\TWYe%zmCֵD"~I#66%8J466aٰ;qw39EhT\B8W fpV jkkilll5ᠬnvTDDK qy+ Y /IYF$DK] .nw`۰ٜл)A(KS|tI.ZٳΝ;=ztk >;w2qD\d872H$D"긹^ͥ=L?ܸ*ݨ;K~/뉈TTTb`4Y^x&8'N`0ϭ'd-B ,ِuzW#D.f+$=ogkf-%С6MjkJD HƭWjeC]3lLy륍Dr^ݹp~@ao,g!][9pa0;SmyQ1Z8t#Fh4{nx fΜJ|2%)#D[o~kq$1K>m6xaJFʝޮt:8~ oeEΏor)>-U^O^S4Rq>{UXH@kn4g_iu{iEO2\3}xԳ>CD +(ͯ e*y p}yLhe${ ,%.!<ui]H֤چrv&rT'KN>0 ࠗ0:>s~m֬YCFFdժU7W^a̙w}>]J.^r<> A5.9cNQp}3'Cc !D S80qW:Vr3>[Rr!<腈ĿuPXmh?\ IgoTř9(ZO^tm, K6SzsP(֚yk5^4ڋEdT*DSL($ݩ.knc}đS]h}4AyIw&5?ms;}F3~VMBBك={ҧOob@~ d DGETig:#jNBEh /R^|E;  !!ښZ&L?ƒP `WT(!wQ&xH@Iz-9̙Z\ēhcq<̙qPReRĝc:m0,߫s"|L64OOg"rYO^tra+(ǔ8O`VRN:/a\&ҳXou\p-G}KSi3Ymvfm6te=ӧRWҊ0O'}zr͘)b}y6r,%nC2 [W$X1g=K_bX&dU,B\uo22x֜dl_c@:3#Fm6?}U%\kMA?]Q P*Dp~T>|ǹK.7|fr\¢ߗWkP:0Mj6Hr /\<q.j82WgSgm2A^~Ôj!XsH@Q} .c-_ȑ3/_׿J_*vEOWGqRa6Ct ׈ &(,)^vx*yً'J<)O]Ԣ\NT-dS@? y gÆ cȑ5lW!_zO?.{8h¤U Jgk1I$B< &K3)q̃~z[ԗ:o!۔Q_\rIOk<;(`Ȑޤ_+s;3խM#,f឵K )/,}K m*l.EOئ.JX25X sf0J~y ԛ_C v?K}Vs#?Κ8O hK Ĺ]0 $I!8z(۶mwaݺuڵZ%^/?`qιDH4${ {kdYL)9iNG С0f+\5bcs8v46>}uqZIP7ZH-of0J,r T4fEAQh TU>Uٟ7?3FL%呗( 'mIw#Jd(]oߦ  xl$\pQ{^|JP}~~&Z-:&Q\\,DnnDZrJm6aل%٢k"}.o&]3w B0yܴEd|CSNPSsV<6A~!&ww+,D(t\}E,%8;^]ݻm&}\roҍ EzKuSH7___/kqaߋ~㨩q?jkkE]]8vǸY'ŶVl}#NiG g8qΊCZ.~3;M ,))aϞ=- 8O?Cs<-_ߩQrqDӯsWʊxP0<KIf|!H\444pqBBBm7]?VrH Uq4rMIy4Ǔ'OrرVl6ekH$AyBf.|9ǫ8r6紼Ɏ"eԼt [RWKA"2V6: &6| V9ʚYL"\"t1N]M}S=Ykt{usѢHT% L%G+&oS\ٳ8عs'F8ÇgΝR`H$AO>>uޙ Z˜?_l $D&D88Pt-A09՘w _A ,,x۷#Hco˧d΍sh5?>#H$ ..\9+w[ne̘1DDDPSSYp 2aÆѧOO]!CI e+^!+ޠʔ8D>-r+"JMUQږ,,~w+_஫c?=zɊH$I """ pm$љ3<> hdsKxpN8ASSG@hh(on3tLd[V (L4kENC\j .Rě#p3<<CBYVn=E{?#H$ Fӊߝ q7b2= :33yd^uBBBl1-[0q6f"yۉK$ 'N擏cɈ31b$ J35q<7bvӓLz|}y)^KTT]vbĈFvO<̙30jqsͪyos˗n4('I"7 +ZxDOfE9k,~83a" __~W2͠jn&~vw8Z4˼fQd|N^`JX|z۫^10nI5#jᬘuYtY GOӽc|(=zug &M6h; %%?~5k֐J?j*~+0sL> ChYD'fRʖVPM 558` hH (a'RSR9uOBN!nq$OO3k,x_~M9ok C-IBPëQ,Ώ }o݁nfwhwZ;l.Itt4 2aΝۊR{|j^:%&DҬ3ܐƼ#f'OYDaQ!TRT񼖓Gjk'UsTҶg|P2gɣT\.*$YIEQRI֗N5ɓU83|ڐhuSb׊n_Zͥ}QLɌ] >Tx[6_⯬@2$H\l24*VskKSGMI:pNhh%\oAff&כ,[MfEOf&j[gF"dzX`o/szT`A,WU8fL9tǷǐC1IuSx ={:p(_wo^TX eJ+Q ((ʬ)ėbn IDATh#\=f>Z E8h ȆRH@y&WeKj&eScRՋjjx+ͫk5-m>3peKƱkX6A܍Zy!jS|ٮk^bQ2L<|,]=T[7柤cMqB&g.ԫ|[ZWr-u@ᱩ."``@BD&Op<а7V DWCXLRf]&ƚbX(ظ)seyRV=6k:wVZ,UaI!tj˂ķz)HCzlܐ4g:7S {9gzz4!mb&NUPp6\*M]Nllڴ{ {?2.))n7BwA@oy|c0uWobC La_QU]:ZQdJCnW"n;6/Npt*pI&3}z)DŔPs/}MWi1툐0?S'ۆJ2JKof\kqCx`ƦB=os0u,ԃZ ep\+sAL>kv5 lZװ9θWSnWJKC]E݅{E"v++nKe'}BWIPF+&3p*Va^hcMMp8\ [S*@ܹ#|v믿%R3ut3~_8ѩϸ/0eolX:~q l+[K"տ- @}t/&Lh0fzS=EoGom ئЇ><ÿƝ7bãm&"*^VU0[s54ze`HfRi&lLOQ7/sR(J*J|>IƲ%#NZ\`,cYǸG|N6v-`4uŲ5Kmu!3nejPڸaΑ.Tf*{U_kĺ;]p`kju4V Bҳ>y$ǎk5fY:KƑ}DGoR[5 BS.[c^JSg)b̀h *cF^Y3 jI].q3^ [լ%3x ܅|X!YѤ$\?ȈH>%<_sITtiߜp ǿa? s%6o1>qqSY,6Op`-@ʔ+<Śy=*~û}^zd $-BG![^o|_6w:-܇DsRjY>삱:>h<7D=m h1-m&3F -ZlNjiyHy%ƪ4.q|8;w hGjD"yٽ!ai;rŏ`|{[%AakY|wZ@^"z_?=kRan{I.&I;>-ݕ&H"@8vAoN vA[߿?\y-F8o.Df!"Lo⭒OxnlW'#qeQ3zo1MC\ߡ;ۘk >'NH$?%vl^~8:K|1cƐ'|€0,yn /n'hjjc0 o%RmWQ(L4kEERZ9) O>Dqˏc̺bv/]o=ƎC_ulo)DƋyc8\D"t}Й3((`E]y7x#& q~СL1S&ͦn4blՙꮢ餳J+ܔj͉S\"ҳM *(x1ka.eG>0,MYJZmw̺Zm.e奿0,s)z/H$4 UCIEq@~)<8p-[PYYZ.d24h7on-F"t(FN>穛"Ϊ"ω;ſ|?9O)CYmO$N;r%D5QTAh4!m5jR\\je֭_r]!<<#G2i$ ׯIII,.,iy,*L/p8f∉=}; Ww =Ą;ʝ+W+EY{D"H{`Ž?O6J\"ȥb6b Bk]+rv)#{iOcK7lOEE4=ԷJw[[S/TŤ(- mpKE쳻n܀d~3g0`0cȏ<1R4ɽ曱Xv-g& g, Çg˖-<06 nŪ!Nl-iQ: X[ήw~Q7 ym KYMkyg;xo2u}3,X n=U)+yL9& ,:%,mۜ7<5_k漱m\5. WBBBBbp@o3g0g#zѠ!sg7 UUUܹ'x|;<,X[o5[TQ6 Gy󡇸|\–-cldȉ| 7>SexF&'>?<,+WoϦ*bb`v>>3@o;x$$$N!J^^Q"ODs9G,^˗STT@ii)̞=%hѢ0]"ˬ mTOkaD1C{UsMݢ [شilbVfoa=شi|Y~Gi)?zj#Kbæبq}z{(SUM^UğMaz/;4nx f22Mv)JURLU9Nr%N"te$"Z?TUM8I gvY/<_f[MM)gWtZ;ʹJXA@$< r!7|{l޼,W%N,|xO]#5\~4fL+2S-d!(Q)Fu/%,**a!1 pr/ZynoO$$ԋznW,zag&0W/Zϳ 'y}A@+&݇Y<КEr\UIjV2]>$i/t" /¾}سgOlucccR9 M-#4q`tW7%wWVV /xj5{ROr4! ǷGSr׀GNk,i`UxS1X9ܬh{Ԟ(:+gX@`;MpZgWĵILִ%$B~Re'2NM8TkkW/4G'bcϚ0VMN,𥕡&J'T7>KQ')VyOpU[e@kT$KE[3侯VI 6m'|ZP(|SO=E8߄DlЦ:6bod${8 W~$'Y*`Su uNp#2DRNl&jUFuFΉK͔ٳs&OD?Egjɸ zţbe=vOV{CF=lEiBB⤅ʈKO,Ńtބ33L%ǩ5aXMӑ@kpEJ"P1ٽ{wF`˯BBwRJ&*.j 6SCT,&=*٘/iitƖ8Mc*;gM ? gsݞCFvG1T j$4St-Z LnzU$͂VĈ&!,y/ɑ&}.6>g#CQ,t'/%~y`rO2W5HXq_q (,,dӦM\x9L4M6GRK_{u.K"24X`JP/+b^;Xt}D|L$ D*mn SKl Nc1U0*8LNոN.W7/d6qyv: }Lr4o3뗳hzM>?o-YϢaIϙ~Z|~V-}LNU 4N,d LS-I"=Wo?BAȻ3m4&MDGGw}7C e|G:tH[o=w;Ȭlΰ~Wc2Gӟӝ>?)7SH?;B8i԰QZ*>۹ghQ#F_g\Kq:v 9~{F)H ǎ)8q9yIe"3fxx73f Ga߿O&cȐ!۷/ L>6+Źݎ k\ўѣNt͏DYsղX$R͛7YFWWcg>ڟUsew6͋IW l>Qvǜ{6˾I.q0|G'aY.jΖ#fIc=؉GnuJBB;}"HDn4k,L&! ^SO=E~~>`)SaÆ̗=F5Gfu.!ot{jxcjj3gp;jӧ!tfn}+P/qaȡ<n0x463XX((0_0nxui[#3~:e/c٬e ҇>SXbX1ee,. `Ж$!!!1@ "~xPPX0 c\aǎlذ=#Fd26U:b^}Uc9:ӑY*S hm>4O.$$$r7`;bŊ&f̨] n>dr,t`ƚkم|,ccxa3Vmʑ{hi"4@֯_O _gƍ1 ȕW^嬳΢<rGfD=Y1? aԨagsib۶\uoYp=g>Bz԰Qlc6fm㪺XBl5j(~;ȴm\ëXX cAbP7|3wYYoȥq{b`2عs'/"wqP8:vQNMu ٝamR=A7蝳2?+{Uf 禛Xǁ/,0p{y\1 qSM|wmm IDATp+h;Mkn?$!!!!!<(KB̙~>c wq;wdڵ1|p,X… uvKbkּҥv퇼N^0ujaKP5oaKKYu-z7L55sR6ܱ5a3KYi-x^:e Ϝ4(7|KHHHd [  9Ï~#/^)**RR:;:={6K/aѢEL$$$$yy K|w;ms5we^c%Kx6:mqͯ=W-횷9oyll$BQVu0IWW# 6:-izLoV{؉֞e<,p.Ѿ"Fks710e.qȳ|2Ə?4o_++W) 0zoyEV^2yAo/ƕ'qzcN[iذmwyNn?׷q+-|N'?C(+מv zzzS=˾&1sTiQ*|UUfͻ.9; )P\F__q)S_*cͮ4'떏^Yh 7e[HG.ӽ.{T^ғE;ϮnL{Uu|nN3 *5]:@" gC {Bm?>mK`9QB!Zg7r$HBXJOed.+ 捭)ݔB0S0o&E((t|+̸w]\^<#e&Z$Ä-kuBO ͍(J"yАXa֍Y2@8,z!Y$ԋznWܚ0#n^xu6vqR-zj`[#Zϳ9m =3&P'kɱ:>97:(Fʮ^cr͂[xcxĸ=VJ"GswKK=6zlEM4թGG4~61i4!.=Yآ*tpTw:HǷG7EYו~Ӥ#mGeB9h!JWye}W,QFjrJɦ>%U>IMM2jP+nje0\$''B4kH'%: Qkׄ )!̥ R؅V<'RiepF 3:H ꕏ ǚB?Ict|Jk`!JWiyo]_m2 ҌCoWT`.$>NVI՜(ZPHA mn_2  !'=& f =t ~ ÇgU?/ֳdU8 ~Uѿ{(;;C+N{Jfi:jYдǯ/*Uy::- e8M&ʌZ>9R/\>rDA f_4[VuZQB AKߣbv}yhيiʶ| Wμ'i5mk@W/]5M#ro J.$^CVtȟ.QʅdgCRܾXk!xpP(g|~L0 ضm!c1cf|wߓ {:=?~wC,f50żrrNqyTBCׅ՟gd;` !Kp/TͯbL Dg ;kvY=n$ϫ\5%+MQcړTW)Ә&zq%&["DܛdWA%_}Z,f&j_z"d%֓|<"iKCp?D>1gI6![gq߽o\˽wy~I&q1V>Sx.Cs@qs|>FŘ1c1bq?U2Յ7d-gΗ9g;]a;6G> 7&a~SDޥ+SunyjFK4Edp m)eh*usӟ\ e"n _Ōh6V# -o raY,HATDO<*w4BYR8㜱\Bg(\rT6} C /u۷6a do=pp5=vFvNv- ,ad4I:iP8r,dJHwHe!&G{!@Lҍv+ \VW %N߶ !&|ub'u'P~4"lq[snHa<!C5jsogy&MEh= ᑟ.=g1:)ߗj*l}[<æ=5Ut<^ݏ+2tp\_lyW?)?YMM/YBBdAHHHHH0=S_C¡PtyǟM[s/ .ݻwyf&+gI\?[{8}Uy"qEJ~_v4su&%Lkn$e2mjd"M\k_s(CL;/i%.E?l[xӕcsqBA Bk~F\RR!C?,D8_weqOs&hr\)Vi⚼w-LLWkD J 0BDpdծ+0Ia+cw>s'ldծOYER&u7}9KHHHHHHHH?K qD?!??p8L~!v_9]O[[< ˯ʕLb Cr)_lXs95W+!!!!!!!1`A DP(H(xq@@@pȑpg{_8LXW}l2.p*W̘P@0c38/]OF+!!!!!!!!1Ps0B U 7⬳`}i8CU b{Zh_s?U[mh7+!!!!!!!1P"1a K`P(1a"1J(& Fh roOa:?8a|#Z}=-g9uY[gկWqCɊ bsQҭҐdF~Y 㫊\fv9E]*(U4uWߙH *DL"GFaBǶ3<EΘp)^fq/&Y[U+̸fa =T.g%z+vԚ BщA?OPZY=Oe^((,]S:QRMh|lӐ/Iv?ʣ\>Vv@r7)ǜ̈́J7q($>x dauut_(塠d '`ʤ(h@8gť;e#GEQ]{e[迏ރ&`t _f!~'8*]VχB v0٘Wv `ֿ0[q049h?ܻ~F;Z0, #nwϥpT$$ Le)dIsiI;PxV10$hE焎&,<ΰcF]+TϺdG %T7 pJ7:ZBCl!GVuɪ*36*:x/f֎ a⫆* bҀpa鿏ڝ\)EJ Q5UИ阄Zx^td'We\FM[,D?2Ҭdn(/ov"M$Ǘ"]ucҕcr~\M7VSSR:>X*L,ܠ((*q3cϏA@t;3D(x ?L!D6fd=HD.D*iUSUei"d^ ֔n u"BS0oTwQ? 4CfAOӐ(/t2S-da6$1acuQD!Jƭ巕3h.C7|TEK^uM8jNDD\{0~'H?jiMPz/O'ʪOn6^"2%2qTVA&-fϋS~\Qi#E|ԉz_#3]-YUם&kLZmȮ]停ҕrhځ%v[)J;_κ;*fށ4}ètVM1iYTScW hfTD?# Ss+Ќ`]=jf ]&Neirg}BV2Ōe<֤IOyJ'Ʊډn;ʢ]d4JY9izn\X-{ؤAyMUCv=p(#G9vd{]hDuNG;li fK+Ij󉓅y{T~Z4WU-$ZW5I̗G )4{]QqRv0B B|)uʾU)ސH"qg>.H)xtLe"o uuӠۯD٠fuo<[3 [@R pLn)ӝa< [h2aUh#~@vyJd6SR42"]Am焺^Mfl.PZޤz6S;xL.3VЛD1!! yy7/="Z b!x;ގ1c*y8HAN\> v@PBuMy +AEl+PaW٠OʬBjMO|2aL)mVFD`ڙoЋiXMZSD R;Jtsi\Y/Y78g% Eh=guRSo>ޞttt>b Ff1!f| q7~.gMzǏe˖ػ[nEo($x#葈V"t #tL ‘S r\بdꛝԹ3Z*]lӷVAʚW+ױlu=]mL&*p\S5jWw ^nIT*F& ˍqi,Tj{[ߣBus:[D!!q ۱ł[X]RMY-A37B{!_@y=\5gm۶%<˖-C0zk`"{tN (աo%Yn#tbKՋe5Pe=u3z;; $``С :!C>icǩ 4EѽzHٽ{wF`˖!ɬ0ڛۇU(+e<$zvb7-:' fsO#wlo{ʼPeϗQZYʻw4ۜՃ+ՔT(~<ѐ{;~@ * f33gd̙\|̝;}{Y2AQl%N;_8f˖-tuubdzv@7~dWeG J,{]L6敨xuFMۙ{\hGT XEa3tsAeFY Id3PxV10bXPFfΜdn`ѢE|,Z(5!G{ S^`#G),,dӦMYo4i6mqce)7xԨV%5؛Y} LyG* wŠɁ7:Z E۾ Y=(:P'hGnfmRxhak)%4HH*,ۼx_'YViњMJL' /_-WU͜LrOQ۶ҥ'vPN4^җ^};ddvRfZOY(" O2n8fΜϥ^J8& ADQC04[nhhh`ذa=6\8O%` eyckJ7eE>|TP;#wQ? 4\fAOӐ(/t2S-da6/}kSXI$+lܺQ~[9:pcG? nQ uB "*$ܫ;iq,;&~AcJDmQeNG<7jޘm!-rjͯHSvuIp/;5bCt^U-&j KλN aɃ^Tm+]z2Lm{+;dNSvas┭4lKe!U>IhI%CͮR~  .h_iӦ1i$::::d(ׯ磏>СC6ZǏ筷JK[EHgBi5dai16X3h>VmIMؠvrS^"hM,7~{oɒ Ohԇ2'> є\- xt;$TӨ~'8bhHch_((VM1iYTScW hfTX#SdHGɵӘe7c&UL_9u7ŵ|O,D&n2 kL'+]~TO~TF4pڼkM*|ƶ"==-\售]r~3?FAyMo;x 鐛'q" \vS? K"XVn~R 2eh f̘7`̘1 V>Gyٳf~?&//!Co߾Vұ\WRϴb{?jZi.vcfCӞ3VJ&P]144%͗rZ]o*˧_hwR;6f˪>ahT}b^:*lLo_-\8M=bhW8i׿ʈKO+hHPMҖ \ =) &<] '3HĬYx' &PqCsyyyǯ2e 6l+yuLҮ؍fҶ5={?I0Y.uaGY,dz,f1́X M唖 vKU)ސH"qg>.H)h4UI(M3jTaiجz4vCg`$ 2K;M4o79%󰙲L6MMVǶ}DžT[h2a+ YTy&|_dkH8գrdA\ݦafxؚr" R%!+C|D8h;vaZ[[c@1:t(ż\;QN6װVNF)b٨Ǩ ўNn:4@q-{ԟ6HNuU:4־̗ݬ= }笮P\ <<0֯Z#e,MU{c$LUoϱB]kF.7_t(,֤oP\>%I5PJlXāQQP*[(7e#+]~J~ځ3E޳xS݉-r(knO#m=^O6Eu_L D( fL a$nk('#ZU/>d8c̹"_~_z7cvZfϞM0dϞ=X,Ζ-[xy)((Ȱ ejTpؽwUŪLN'v{?9^KvаtnI̾ֈQqɎ=fߢQO}5{GR;Y?uqg8|aaҹfK@SŜ9s~`;`Ν]6΂ XpaVoUSvQ|vΝ;iooaq6IHHHHHlЎQ5ɓ'p%=F}{JR:" KAs9G?bݜ} 2R:;:={6^r)t?yo?ގWTS"D`0sN t;S lܸS"//< Cּ^3[Jf "J D-;&Mnܸq<>ms1A'2W$k :;;5jPK ĩxX,p&+ѻdA-:h59)_V= (qȐ! BPK "b4w%$z5ľp8p8$ KB 0yyJlu[bp|besCştkDBݻ9}QpB~$ڶ KXDcPsÅ^;w.'$E B Dqo(LEA" : ٰa;vHX޳g[neڴi\ve!K$3gfeKW ! D?Ai0ͺ_tEI%$@ߛ!OΫ#>̷m~_1qe@lڴO>D- ַէ'1I\`00}t.BJKK̀K D0cǎh(ݿG"%$@Èp!jbĈXEQwPPSIcuAvޝ_0dX,r3D@f9s&F*ܑ#G8rǎ' ʂc?С)>p,, ~"ǃAF& c`00afΜb P$"AgZ @tvvrر-[ꪫ6,JHu_ x o&/f >'ԧqjq{챬e@Dȃ@HH1~x/=|pߣD|0`H39L(++c„ L6P(D8EBn [n3Gf=OVӟ@Hnds EB2e gy#FY(!!?d0݉$1PZZ%\BN}i!xm 0azי1cÆ ロa?'2rn* /J0*8^[u04&y@I>ͪQoՑ2H8nRz0v/mwpD'ޜm ܖ )iєON!Ng f= oˮ]xއC4,YB `…}S_9o+=uR MeK6BRB =MӴl}CC۷o . ɰgB/_?17|3-MF l5jt`:Q-heԭcsv#m>|Za=k>('\b= Oi О챶-l籶 ?]6  S02<tE@>l-Zĉ'{N:$/nF>ϔ:(U(P`E4ac0ɕc]N (Zo;ϊxYLrU-nUΥLMk||AAE@س2zFquN?LMڵk[xרk7`޽ŋ|OObK@iZ$  J@dLa9Og2tN,?5c~[+Vpw[oqqDZ`Lop\pvq@^2!:'  0EhPU]RQ Dv:C|   ><ͣQ`(00),e$AAA浀x̨YaBs5ai 4iAAAAOSł P( t߉Zf'CQJqJn@cJ 0iTmEdRxtsœvsST jsNӍx< 'Y.( ¼EhǼy IDAT,Du?hx&n}[37s߾WndK_Ѱ|gí=ɾ=Ґ  _y4* QUe(̈́ICZιm=G*eNϼ?cۯ{/XѠhYXUSz|(P=o^:MA( 4x<dAU ?6,9E5 8v ]ϻ?ѓ_q8#DZ`S ݫ{[+&SPJc8c04ȣH 0S%HΔ x@\ K?HGU|e}$ TG[Xxj{/u:AR;|ۜqJQ tK=AAf~ȊXd#Bs|؏-=34gy,w|=Ç?z2hd~NN8R010 3JAak% aiEaVqnKQ>Zvj uhTUkd2>S7ylʢ/)Hg t#n0![Ã,9$^  pȊeˊ J7x7x{W`bjgq{J|Gs'r'U8t1\wijVsQAvF' :F2RZW )RwwsQx1z;VNdZ"AA(kksuzNUUUYe˖Z{3p)UUɆ*9ы[aFNy|tw+&W>cj>fXl)# D`$cp#12~A^ ?ۼwˠ 2vx/xpEߔPARGn`}_Z &t}qGcZLPJa:GLMXp[Y:p?{E#q0 Ps^ŎS܎d<3#:iXuZ=in0+F2󛾾 csd*.G,;~N&!-AAf8Κq_w l,X@UUN]KPFqGR''?msbfEe0y4+ !m?dLQ1׈nL7B 索z)Fͮ>JhZ}! B(el0iJ[<_AR ]7uLF ou}6ctCx<?|<OELJeQ>d:Ng2*<B11pzeL;pb(gMI+7,p \όp gyrϯ8>Ϗ~+ !#C.RAAHJ38 ;1RUV ]ߟ~e(0y}]>OL΢%{3:zFxj*z C)FtuFt:CF2ٙ; p`$3)"BAD>佴{ ?}Cviח&(|2(e|r}jkQ2 p`ɒ%tM=M83ͦ5د|{#>"@m(őKdid  8o??=4 qMKgƫ mp7YQ bpߟ,ocr׿<HAaK/8#V$\uu5`:8 >;tbd$M&u-wWddXFIRUU 'gA"  MPY7eTSqpZ'c%طg\|?F!?%9~eEvK,zCjyN,ZKkX.޿D~lJ.RAA dCD&g媫ca%1L]7Jz?Bd0t |444p 'j*tݴt1? uG}?Xr"Xݗ6 ٿ=GH]|[>3_Py芌3tk%U pAKz!cBZ:%L#H129 |k}Rg3v.`I$k뭯8kJtZ[xbAAÀ%􌎞ɐdd:[}p>?+n<S<^c xpAA~DL&M&=Jxr.^S:k^ѳ秹x[tn[k)tn&rJ8>]_wap)9ڱ\QXdăV]I7AC&:`fHC&!=2B:=B:F1QVr۱v\Ld^-$&k ܋3Os[zj&"!m$xH))dAAu3 Ca #i2<Q#p gT,6v'|W]> ^6q{U\.NRn&L   5=2ˆ5d4e@1Bg=ēVCċ|Iym@:mrd*BW]Cop8L?lI<1Hg;=KPn9U?oއc_W+&LSC%DDQR1f1R+#SɝF"2R=ln{ $nhY=^ңzhJOͥlJM{K@:aLZ)""ysovJ[eW^0ŕ\NNܜL+x8yu~}+}K=,P@&04`AuC#d2:')QN}t K/nN3TZdQGrwVw}҆?ȩh=)?*(] K?LSGMjonO~HǕݧ? `ң844"r1t3u:g tCe'_88yhO?x /6%̄ 0t*7ӠR\z_}%P ְ*~?ٰ5kC"o uޕ̕duU?Zy57/>"uךymgGA\r)_xT 5Aci'nY}~\p~|ҽk~zGG;&^^ZB]^~ugwlu?ʍQ+ CL0,ieM3xD.ֿΙrx؊ %NVrî?ƒŋXcܽ9W=Cp p<4Co[ệ9mظ}]zxKˏ%w?JC^:ו]E|m1OYtwḩpK/ |9x;G2ﳱ]hO^?C%u_~{e.?I_kX2a` Pp8jQQpsҙpq2W< OjF3F3`?W^3朷Gt95Qer+\srYK/3Kc܁Pi\wc.g9}W~:"x+^)lA}R"U~/H%~?&\S|z︖R/]pJҿ|o߯9v >x@4Њ@FZR17}s/ bQ;nwǛzpK=wߎ] \궮/m.*zWT}0g_J׋ \M?=]L{1Wfds|k(wb7]_ i֓ oqWA?kw>rݻ|V9O1?:rΈN1h,y'(2>A[9Cd]k_}diW>ή|&vֺ+%“c%m>y>AhZnoxnYy5>O{0q}exexGjw?忸.D_)^u}G4]_fev-wlǯK`ݷS´VecL qn#BOTq'S6<ŁO-%5/\uɱگrriXtZM+We|Zn*2\>;1cTۜs샱};k \w5qc+q]COn8./}j}R:v%d#'?ِӯk Hc-+lw~ܶʼkwvwݖ_sߩ0}h_afF߉}trxo|2b|w޷~% E㎫#LţZ9VVS\%zeCa캛~9[q$Fr][H37}fq?g|s9ńI ׷J e1<<̞={f…x4yg$y)BN =\XP#8ga6ovIHHDxUi! 4sʌܪl<DD0Op"+be0ijGv8 (>vyf4 "FgլD;t82Zuw'ih-n#/E%Jo/('ht|޴ ~gtZs/1F0?F9hKłmPhg [%in!gKP`cT__}->??aHĶP(#;0"'" ~j5FhJ6_(*ncc-(nEO('8 OgbAr,K`ebA|jZci]0 v_+t9>bo Htn">mnY)T`Ku۠%[IymmxR;oHk*F0_Xp e]s[nT,:V%`ouuݿ?K.  B- P0iK 4iQ@L$UPw]3.κ8ߗZO G9g A)٭'裃Fg?4j@('4V;$ַ_)x]LիWxo  ŒhLO';* }(ٟ3] +XJe"D\)jK,!Q_~(H @IS{UUUTUUqꩧRSSC8H  S$",2}"L1 D)#̺&½옌/o- G]MT4PSᠻؓy}FZX*Hte(VLjR@Jc1[-$l3>{_g٧CTm9Ӹ93b2! 0$D֔ɣ3DQŧEa =rx å+]h> /#NЧYuӭBcJmesXQ Оy&ŵ} 1õn+ߚ\ a>Iz^pkg;k;2Z!N2XUUW\Ass3},^~i֬Ya}AA8x"A=Q \r7rg/[ c'Aj2ge$_KD4rџ>O[gg0<<̞={f…f 0 4Mchh5_"o; ׷f?۷ڲvh^vať=9'f2c 0بֹ~%7ML7 }Ӝs9e8QOfp$6k"wuKN| IDATO~.l ?ԣ:###NWј|7_|{VMؿs'wo|{V͗^0DZHќ& 2{qB K-uj"&5P3(YLfh8 *GJ޽|/vBx5ٙA:y^}2g4av F,ʋ D{a R%2uYM3gBJŞ9sifH6)ֺfӨvbH$[r+f#5V󏆍G8?EMr JK =Q֙٥'rR涜9kZp)1EmmJmq;uhha97;MuҜv-[H/} ,_\Fzt Fp]Mx8iAa {œyȺ?h yBWJtEsFeO<|vu{[t%8ڷY׻^.BM UgF}ف:ا0{IΘeC 6BbK' ACh%% dkŧiM,'yӎ2rIiuXDs5o4 -|?^T~y]60V 2sںg^ΉD8br:y$ODgi]g|jI17}f5Hm(c]G3Hhˉ.AAȊ4lDDvvJsra#lZ%5L 6Bw;1XmnC7Af=LgK>'7[Hh{7)WlϏ7#Dh%_~ֹDM$y,ܣ-Fjt7:Qk-s3bwŽϽǝwŻJDEG%wӛsMw0#}-gTjGAкO1j8J 9`Ecr 0ruz)j A'.Oz|l裃Fɷ/JXf/0[XL|X^]!n#R/g?ǀњj| ~4f|< <{7Ͼko q0H3yM{;ّr=QHZ~bDb)G;I{iJDʛaBQ(Lœ#%Jo4  LXJd͘,JDmFOh:lӢ@;i >pز7\1k.G$=̲[:ߞg]ިx~aURc]h>|{pOpJ*9Exۊ'vN6*Of>)bA4Zn%хA\V|-@Zu^po?{7\:7&AjBC$"]MN 9axx={P]]… x'*O5Mchh5_"om>6oYCCľֱeCAͷFVpM7q/ ] K9_#lf D^̡>8EAN gS=ߚ"WUHifչv,X@  oH&jAAA\ԃa=Da& yyY(/  L^, =Ada1o쀾shg="Og6Bm}jKYcQw]3.sơXYֹv~t̓kyh8p]7ڻB.\H5 \󕯰CͦpA[z*:Adƒ; ks9[r)A - s!eR(D~} b}4'ǚ 0~f^093!>c0i;xoMeQ[[]l2/{C8.7sGHtA BaJٱ*DŽ)Ka&'KczQZͬ5vthj"Ɏr&zIoiֹvE9'bv0C]]]xp:xi܈HD}NO5X([9k"E,,Ⱦ󈆍G8:ѾI.[A! L` eMA5~}t6ok58z[Ⳗ㨿/{ܸeԹvsK̯ZfXI1V݄ ОTzק6%kex1 m$wBnοi wЕ ఃNr<AlKs0 eغ0q {Ts\m+ W3k(uՏ. vBƖQڡs(ή}2/i{ mz'>Ouw388Ȳed[oqMg,Rfs!Qc̊0'5@t4pk H!i P+-Q^0 5R(u CG$aQFJMsH#/Gtm;8HҺ:m'ld2kmT.hu4ɎD2P s\A.ԆaCs3sI@Nrs:Q,[ g2y'?wwu* utИV3zX#I[G8(Hh%ok},dDмAc-P9`(Ú~搀桀`} ?L>ӟKyvnvֲ+K/}z|4'm<:NGhsoCa:mn;_c#큰& ku=RaR1-0{S}\a^Y}<◿%ԧxw8S!U έB?#C9ߢ᥵'>v oeX3g0 Z13v%URY@uV^믿NCCO=AAXPAM3K*<1E8/yhiiᮻbҥ8  =a}39*M3e@b]L̿~oE\F$\'hs1p)ϵ9~?)b-Qz{X}_a\~߿w[^}CLq83y9xGٺuAA,fili okOtOtKO{Ao&0m1RGXskW?Afd3-ja#$mk% I*EϺ. P__}|)9ƓO>駟N[[tH$/'?IAA涀Pf8@)K;`zAn”r&r Rhg[]j}#_jlV^z{}tСu8IzQLl'ݶ|oo}]g+#^{-[n￟~  S9xL QNנX3 ٟWTzu|k ?OCR(Di3붅W8l<ÜzlݺoK/xAa~ K8544f2L4zi{;ّ*qx;sŻflIL[嘩XI} Pd[^Tm_q(JDa//gϞ=\tEW_: .FAa~ ̗0UVeq-bt4~$?Do&c*i "o5#] ppd>|I^ AA'ʚy0=h**ƶ%@M&i*չ_"U?:9[+w/*R֎W"T*G?VAa~ PV%MTTYgZƬqiΊz/O?+iC{3 KuxP#IAA+9੪@xfZCmmm%7_|{VMؿs'wo|{V͗^)_R13wRʙ nЉ$4m0?Ϗ 0?Wn cOUv ji"a14`AuC#.xIڻB.\Zt|BlxUjB ݊ԋ1P }mR[051AYf6XK*KYsmWb̤(z6+#bqMIEk ^MSw޼%wggrqbkB4;%Nr9sAy?2MwfpppԺ~-NQh֚ 9K6Z Dd.3 cwKĖ(3 pzgx[{rn?- nkyr+Ao&}іď@o ۬[`bu-v)d;@;IP=l.'Lg)*Z~~Vr;{ߞu;\f;D"|9<'"ﳴbA>Σ*XF-vhm}ls B̘ťGaJ:g Rhg[Oj}` RS  cյ1}tС9b$MҨA֏0afK2NԥRlK$ ./,s:J:hsGVi*fsiH!Kn5Z7ړ2  H-kThQ SIsrɒ 'J*Vڳyy!BĕB&4 MV0a83\@Ծko qt K֜]*iͭ2 .Fai7AȠ+'-$T"R;:́o'v4qcDر+.u-o=([J$DBö2UkB'Z]gkqh"zK\$~ky KkSI[ 9c1Wbt4~T?DOW~9e^^x>  N<[<ٗ'i"h-V)4¬!D\ 0$&{0jC)c}f:>wy  B=cg<虌%-T 0չv,X@EABhPFGu{ՉZѲYK\>3JW  00012i2t6g Qy*6HOi=iykńIAJӺA c,')Q&,DO*3AAJaudҦYS1{,ˇ+j.yܖ3XD7C*νW_^̜ ٟmpԵq"OKw'rEWQ  M&0 25IVunIdnkyJVl(Mvya:bJJT jF ~6uM6R8(O 6})Vb^9W*FKOoeJƳЄ޽<{lR_z)vCҙ  i2sA虌95yO;oTj@; ü[Ĺ`KozgNس:q9[{P^ztШEHx?wě/=VԦM߹;w7=VK/L):cX6eK o1fmAy# MBYu]Ga@, Nc Tdj2س$Xy>9+D\)jK,!!gh8p]75>w/ ]k! +_aiu5C!!2 ksi[<  9YM4kwtdo=NvJ\>&Ž&o-c½hfm;rϡXR1"f$>d3& `ƬxoMeQ[[]l2/{C:Xr~,I% K ~l^a9QSoZSn?Q_Uy9e#8#mNԣFks/[QGg6ZrE顮.O<8ED]]o<;kk6 3 :}F\Ё"3sI"!_}2:vms1Eνs(RRJ:cy lN^m$›[C7p'dv[xX=^{QQݠѐxRn+' kf" c,r_zyfZZ#tgK\8=V9<'>wf%Av']pZ"zs$x[7gRٳVdlSvMBl%Ll܊L~ r' B 9?93s"XG{YZWnbmJ)/erGxL';1&NA"B" K{qF։Z.'e\"L؝wrs}q]wR|.`QG9vлI IDAT)ĨXYr+qXJ٦柂uhc Q03MrY(L3dOKR{766 }s ow۳r!a:-4;"Arr&DSD]JYFa6KA]I0z:"3ړz!yLS9d6lm=OvUr5s/ԧSN_-=ahuxI :wQAJ 0?C~᥵'>zAaǟpKY1 K혻G[ ikyFy获(D=KwO=5/ă  爫dT,wfyuWwm(ey)8 >h$lf}.8 ";r!]2lNE51MkkR:6<;}X0B"ܭ{P^~?oaxZZᤓmAAAʇ2'OtK[qܕRddmlI6#Ut|]to=~4sJ)k(M9BkdMj9sԎNsI.{)sq߳mp?J _AAf5Yĩc|S-M4yFe? &Leg<kk9?JAa6+T_vIM@hdV "ܳjOm:sK! JY$SґSA8Kͣe(iΌɂ7]I ,V ui;{^(D…^s /}ȗ5_ K 1o\ '@E$$A 4SH8g Jkяj"a-3AsS2Ǫkyo<ﭪM_1DAdWR  -am'D58'Q5d3׋aO#bu !̀ /VK]uۭ4rWWݺuystww9rd^Ul*bMX eXZrJ/!<{:~B<AL%$”PNDx8lu-r ̐d5+De~0ØcOY]H[I2::o~׾}k?svۗmۭmoފ?믿 O.sQD\ve^N{D/hfm7A!FQ $|)ق@d0eAtFCAB$ K!&&.|<.E19B :f6n]s04 aoc}w5cyˠw+D"灨&. 9f41o:M8& BN~V.tZD: |>Cx;go,[ *2}S<>ay{ev!t04^oG8;|/n)DylC9'=Aez$Ylϩ jl8-3>hE kODO"ƭ["̞oq4,'Q(("[pĬO8 v 9 GA'ԋX@c*$\U@*5T*T*Ǭ -ϱܹs=wox&zZ<=At0t. ׇ(|v3_5Zԣ=(=A+(S@Qgi&C$uWPj8p8WHҔ6SeƎhW -o|n\x?Fc}޽x'?8LqVEm; ɕQ,GE0(=an R Xx I $CȊLZ@$08ZŞA,`OFA!4 `"!0dѤaL'БM !Ar=mlxO8e t,ʡrEO\{,>yue[o+Gpo~\C/#Hi0o?4=1v4gDG0[Aq#1=tIQVLԺ1?Riw$K`,At$]WPQʬ9&B#;?C^Pjz uB28}"؁DnD=barBՅM؏d,PDZ4ކPM;zE:ל W^yz+Nꪫį+W&u9b˪ 3JιMu \"fhg?A#\0Nv A)9¹7|7~7/zw#! vLwg58x^;Qr m\eoDz)G5vvtOa 9.01wUUca׮]HR(//Goo/  !| YQ|P3" 0+z)R1Xfk_7nߏT*K(..! b10 b@0e0]h":ǂ<ޡ ߾1:'C=Gy˱w^|K_K  E KD0ǵP=⧬̾Ng)ѣ7DBƧw戀%  . EC kb0Yn12A<`lllF>s c˖-H$(//ǯ~+۷AA``L,+VSz.3Q7DA oW_}5tRappPUUX,' "BVlˆIy z}QT !Gh=:$_&so5Q[0 i~aƥ^&455ao~Ip뭷#@A+ $#I$ID=6}.Bg{I\:cf`Gr[3"{h. kߡO!@~o ƌC :ĴCcc#&|M=zþ}8}4//s>AAAĂL$Ʉ0; #*-7 a SX12 À`9I`0؁p$<0.ki9H'L)߽{7~Wgb7f۸q#с믿wq˱cj`  .>!I0x?|  98:EEi7.OCVoaX3Cx $ x W8qeeew^b׮](++/os7ߤ&)ID+G(AA$ %t> <+T<`DzV[DFOҵ<Es4i:0Ãҙ$,RKM@U5sOB4|ٳguV={shM9ǻヒ[Ckk+RE`j:~=4a=Aaj&YYa<l2Dk\=Y0Z"2 RjQ @ؘF7"sVZX,3g@UՌTU;#NY`8YTĢS6yhai; ȃ<V 'Q0"_ a2We~ucd,{ABALQkD~k l7 /(--ũSMͬѸ=Z5$[ꀨgt5ƛޚI=a=S \ȁ`dĘ0]B,܉`58"-`vH0"C۬"{8<^=D:"!~AۈLt`9 6ށ{Law.왨y?¤ @>n:$qƜsM6֭[G=3%4{d :Lc6`?%1+ܑt9[Ão{D=@}-=09{l "!0&{^7f0, b&thu5^x9sXz5dYXOeYPoPSSC 8$1AA.E!Gʔ 8^iyn#k08P=$1NtNa(*^`9Ix_"a@/:+Tu9#9x]^e'hwُgb7F_]va׮]Pկ~EυYDAĂ[s?kbhz37a1T''ۻnΔ s"M(۫޹Y[?eee֧" q3%DV{ra=ɞކ@7z2 xYA{x2}Y˓Q4G@GИ*_[@h*Yx-X1  fR>9uI l?1n3؋]XovRɼP +Hh :e- I@a:Q*FuYvzg;l  b CI_m ?~8>;džă>{oF <! vxցK*SO=;sUUiTUùCz"t:tZ8RVXzu_þo4:}lou={,_|Ju4s ɉ  b1Ҷ;ao]NAAA3ti41/Q~9z   F8נ#9@0 #2dI.]˖aŊ'VbժOK?>5[ø&Bz9g/$I֛ >?_$_? .]:'ĉ(++wkٮ]PVV_~8཰@tVLe0 b@4pM3rUP*TU2go`9.~>t«?ilڴ  Z .I3Xja,5^vgϞ֭[qYw֭[{SX! VaN@O HOL`FU3Y٫  _-v!;^=0Jiя;x:㣏;Fe .K45M+xX,3gxz-TU;#NܹbU6Dg?}hj \dY$8/VL]XGE)EBOFQQь s;]`x ¬嵽Kw`@/"tm4o?j^8> a  71 ԘQ0}V1EIqyT9ҷknhlM|H=a dGAq s- <"Y26MBg{I\qޓ ]Mp]ZL|f؎+>Ё` N8Lt khy,Ăg*6i DځH-knqq{ls]0ك>RB/% =bD8SH"B3Nt<$T v`UZa ;p _/X~(G0Xn,dB}fW큼|Wz#UzԿa$Q0!LYqF,wӦMԘy˞ IDAT ?Pຏ-E Wo.3_~oB;@30Ts h1s &' `6|g ٙ ! ̈]{D@}UXe HX!LXz5dYMeYPJÃS,^:3\łNi "fĄyHLN79PO#8=^t\q63pdOq_n/bܹMtc mrcD|a*lݺ_q֭&yQ!%Q\GU1^G1 ۼ|}mw0zA@^[Br %QAADzD*MдIx )5K]#WAa "FBdid j7y} %ԉP-ul[ wf@l)h|p7??W/&/ 0뮻D1ܣ>a\s5Ę 5XoU#֫14Y?;}0@ ﶌ @-5A!ZNCc\HfʊOǏНAcpg7\rx) 8dzfA;qtb΍$j2Ô _{ UO:mL!”{2I_S^k#rR뿅SԈgC(FZJ+xFm=B%u,c.  bqK0IF@dYObl0>⇕S8^VڎN? m>څ:}_IЊ;:\i@M؎qw~\ζuig[ox֣ M%vT]xcԛ  X)$ ,[-a\GPWՃc#8T,ΆV+klBA%GFn!5a;]瑩0={X#+WAA%Ife "AQ$K@L-x3jцa {=8&=eچ?|O=x~4Y8.7IkBg -]8 'qwBvǞ=8q|Zk._ŬG3@4of!UEr6sђDB~LA,V 2EJ?lE]U J%l;T];FܽU%mؾmYןho׈bkJW{q4Ćc8eShY p(Xͭu*)q[cX0KٳguV={!<8xwuV$ X-2j:UPy~ik EEi^kd89 K@HPdOϧ@)3T܈CVfDzF:~/n7]X뺷lLjQ.oڽnƾ̪ǖec0.$OؑhkVvX gΜZwyعs'=9 iP6!aWAC@H=>>A@L.r􂚉 y P3nFQa|EbjFF0B3Qg m:OXlpFn'x/-E" :FxuX">܆jGydEFg2ôCKI}L(J,Q"~꺦(?FPRi}.~-=k9DYcζ}:Ľ:tͳ3M%Q\GU ɘa8r/_NO5X`O_:ў/)13&كR`9-; Bg #  @&ŧ@V( =T@T)zѤb42/bÆV315NcGcmx ܐg< دXI4 e%%M88mZPsۏ^>h&`^Ob~oہQt'ӷ_5&qu!H`ݨEmm-}Q k'ƌSXn2Ѐz; Ո%:HGXNt RfÌ1@(K(nx5BbzPK!A) NVEQ,Ce!L(.O^P7=,m}?mZc60՛߇JClņ7u۾'z=sR.YǖmבȲI!IvxbGz|$^\fLfy~XRPh{;58nLݹЇ$6G:V,W6ލm?Eh?ي;7 jS0ggϣ\\Cw#i?QIԔOA10!+2dCJ왑,K-ry!R5#\Z7Щ#  yȭ,(דXߜm?ַ@ר0cDSK9PR҄Z{9AAA%!.x!*ۅ 8g.\ 'OYކC9g[NAA=9>oρ}=͜x D/spΡi4M4Uk kиFEA1AȁFc2 -U==vaN"Nt!NOȩ  b1|فMg)J!4z6z '7q'E'> ;w˖-$I8$ \>v TU4KX|Xb%5AAi+I&S@v<7moѾvTViV鋘b8Yb%֬YCGA1*"ciD=|NNTXђcH9PvPU҆G^}9qXn pI2ιcH0s9c cccԀAA!3š) A/n2Il,   EDx # Bʿܢ Q)AAA\x0g)8k?pFAA$ ;aøAA({&jbx.]&a2 rCE  0t&3H_2Ew:.y ~ӯş(]2~c!@. AA1u@LvEK+0^EaYI\ -㹿ϾރkxI}P@e>k~dY  b!(x`YD:_7.'F#zh)$3uQ|a]عE\%ѹE]׾^ޱY/d=LĞ~nocb]y}8N|uBJX>~?zǸ{¿eYFEEZ\{uVw}ػwo\AA|[A4|߇,˸I<AA,L%!2S_R_ Ց(v>P=7"96=~vcnT͖[pKF}I-zmO9_eI^@v{x"T/;Y=E555CӴu  '2DN#7|R=6WbrI2cYK7pz$kIX{LA#U{k_BҤ#Ϲyz'k-Gp-eeY$I""Nx  X7eŧ96x |lBx>;53z2ÙNq NO'rq٥ T o6-[9c طFvQAA n{ksAF9!< 7ܐ9 _r^ _}3x+LN'  f|֙[8؛_v,\mOrl.Y/N W" XJe1|GAAD(AAAŜAAa"QAAoRCAAEAAAB(LAAAʁ8'AAADVp@ 3A   B84 100AAAXh.tL,aB   [@*4M$K@<AAAd*ԴTj$Ab4pMa\  beŊxii5cHΏA$   b8uK@N;?0y?MӠi0AA%\͛7;!Li??Yb`B  C [ aRU"56dd FmIAA1l+I4h RHR懠&  ÖB'Ki0 QAAA,r-y0B eRUiU9H@AAbG Uz7H$2[Bzރ`NF+㓟$>AAA\`J˗/7ߜ  a@AA nNfw~???E٦\l݄Bgjo\֜zx,`L0&A$I$1ȒI KdYcL:|-xFy9ۑq -l0:4p ކOb0aƾyE=ɘ@;Ko%樫>9c08g9k2Le0ser!)1zסsQ15kviW^y$I$ ^;S }h44Ui4k? Čucku3<#\d#{I6CĸkW|vBNֵƹ}QZh͸YQ:גy]1v5`ebѶy4 BM4;A?/)9Ӭnęw "Wg+>cOLK"P06)Ŋ% ! L ɺraͳZ+ /M2Ɩ"g.#=cRHT~ :6NaA!J"PuA6gD}Je Y[庄3@xb0c4L^Hv2˒$ U֍xIsԙ4T[@B@Vۘ0IrM5׶\v!@OTA+B3ʖ$I<ƪg睘@:6Onn" oIDAT!Ea,ĥ!$ElΒё(Dxs{A3IM[2E$Fl C@8ŲhsjkћP޷vo\ӬFbzbq?Xw]w_19¹U2ݡ lÙ>¯emce_^zuD/m zQNLF|&1k/ ^f ZYl]fM 2| |_bg|s퇳i̺1W/eͅ};z2ԸfZ1jK0^a$r˗6}v"a 0{W{Э ˹ek )Ra ^w}W$a[S\jBꆪXĘ{nv]%}#Әx &RcP-H73I2!㯬@dݣH>' 6Vn)>(0,1enicPUih:=Tj ScPմ-0(%Kd%Xt)|"dYd:A5Ăxj ???Ը[֐VUpcHw=\ dz}dI_E>M$9ڔyx2=Ymi7%5v^Ɛx ~i8'Cђ%(**BQQgydY@#ۑNO`bb㘘''w_Q,Y%Ks Ɋ>U÷ ti@TU_03#{H@2 ǨҥWTd&[ s=2StY,.Kg蹖 Z 5I ]2Oz9w;@Sa 2z흡XUgn=ʬðS|1(!\bH-p#H2BN$藝]laŜ󆑫 Ƒ*e Sb2DFKB A2DfhDq [bמ~ɲES]"S1{;s g?T@vxrV mbz c[ x~ O `?dYé0.q[q6dzl_>rg=akv@} \t ~8z1skO 7Xf@滜OZF/8*/}ተ -3B kg ѻ8z&z'xXG.d" AagK%2r>gd?.'jUr$z2K73xffHO#=1 [7n̰<1>np>5mz o#:"L|nq=7gh:+V %(RʱrzV c%>滄IE_7.L޵Oit1^S.ƙ^څWr̨=D!!_Kz-d aZ4b[:Xxz=e|ڢ@s3֬Dɛp808Ç\\^Flvςh|s193,AOq/ĤW/wIaWdu;BhVȋxD!މm*Fgt#63Dϖ9ăhc+mdb|.c4+o$U+TKz)fƅ by:'^\`3O{tkߊEloìUp`YNNΙao% Y,DSYDl$!@x am$C~hFxϸ31>1UMӓ3|iϺl!ӣ̲xrz(\&~H~^Sv&_׊K%J>b/_fL3h2P0D !aV DZGr"x!=Œx8+a=c!țYRs0bl]GQFE,mǣGϏzG6ȸ G핲WKs)IPf%0r2E2QpcccB~"נ~ws3apGYcؖ\=d}ζ ҋ$~WXd^=đL7#,cT/3s#=wϢqݰvzS]nsrW3r系#,Y+wxUQg_O?LS)Z,) XN}uvwBsi9E# HDDǨ'q/g0zs}wgysZJbNQu5*S^y:, 4 O| -a\r)\FcuIIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/figures/rejects.png0000644000000000000000000025413114023111777020607 0ustar00rootrootPNG  IHDRI|%sRGBgAMA a pHYsodIDATx^׵9ߡ{a> 18fm#K,[l1;q`clj'1)c,13Y#FkߵvEMݣ%=݅6Tտ5G|A}:KspNO' 726<9D[݈6N9vq4݄el.ߜܜ}^O|fsD}- n*ӯ{t~6ttkju5۶Zt=?`X XcG;lY屷7Q79l8oql\ozw-|յlMϲ엯FD&҄I3hTWD/ُ_ym&'MiZddRZT, gXٴ3G߀c7)icSc#IeT`[kCZ۬#~߻z k)Hr-^o~5ג54|Vӻc];uH1m|6֘?``mn ݨ:V6:&^õr|Wނ8kmqkk,6> x;Ҏey5ν ug%iJ<铩ki-4avl\l8H[Қca1rm?|Ǡ.>k:S:o[t=J]:r<>LK;yix5יAhSϣpo?hvԀmd8_ >S>Ze:.cSPY6뒔qkLlezcd ^Wj7y@#3z|\um.p_اuu0X{_O?C#HxY~23K^O<6BھP0R醁RPcA~4x n~nn']X{ 8FΧӝOuu;u;uǺqtːt3tF:aP]}_Vf@Ʋ5?F-s֥֕Xƺߨ4]w.St1|*]](O?_² º t##|WzEJzP:tN7Ggw.љ9N\Kv|f\IN >Gt]Jn9)}567|o3}aW6\>z߇y?7۲>ookuvN'?SS|tZ/#n3{|tVϑ>}m9ی33\c$Nn)+:>N'a4uŲ_I(I'w #n. O;Mpu:z [@]A/|~YޞyjƮ#hCD+8B0ѲXvѲCiiѯi%~Wy% k%mšCZq -?p}h Zg/5쥹;ҜU 沰~k>SZgB8"W|.>'U"]֥(h1p~k?νfocpq=@s<PBt-w" ?cA>h!{1 8DKL~K~@ )(e ܕ 7nR9& .n@}ό^lB&}ϥt)V/`q4t/y7Χu3<pzqt3@mᵹX Kn]9ۦ>6-] 8f]9º+z=..Rh0{1GGӅUpԬǗJAvBCgwnnZ `qt:F.,ugVOj}O19:O'|SM}`v7ZS:z~΄ggck$(f}F+H53as\s#ޣ黽FY1BR5H@_'O HGi7? 2f50}n-|E@`!t>@8Zv]v  СS!Z(U0ȐB"C) u/bh3޳ef}ڱp@4jHcBU 0ہYMj ^[` 2*j)x=lyp4{;y\Cu VYZMpZ`JCPmH}="KV @`7qev=įI51X R5zm0Uʠl 6l@'kdpv49ԅRН_@6rQfq/\ dHe(f{T 󯼍/|PFHH(t=",6(H5r4Vn.MYU/NORzUz>K)M?2Ca(U\|q2=$$@${M׻Ў&  ;2,Hlo㈭[7LxR]PNF!jqGCm]ekpYW܎z]]hUeUKUdv$]WtI. RF3Jzt^/(M=չ=9? @|N$+u.?I8ې(9\\o3> }!G%cD\:eǒҠqit8d KwtQ:oR~d }7 jJ5r#!B)Q  wG7^C4 >-.+BBy`e71lw B{q"v2GT8"wr@*b Gљiԍ6)1qq4}-p}D!T>/GPptֈH*rCdtΎ8~a?t ]`uZ``fn=ckrBҴyC^h!Ѭm\xpex xe)ՑV,R@RjXe,ކ]0:@thqeڌQ¶?Ǚ)@D]9 QzDMi@pE&"fԙk`}y kvB_n㳩 |#jɰF2\a$$U)CYnVǿѕ}Ht1DJk4"mo)CN7n4ކh#Bb# ~0Z h juTRʹHUtU,XpuYjTj!k בۖddP?bZ\w?@'bw}xo^|][w<$|v;tvmxej|ֺ)n@1nQaW`G3n5u7_ \^S+GsO#R?|vuyߑaG>GǾBx?*˔|8ץ| |=|pd*DG5Zaq~Ȅ{ܛ76b@W=><ˠ:.^o,X @ut4t4t-utCi i{]5~K;^|@z:j'~AhѨD> 8 ]¨Q s8J~69ӄ\Ok׀ӣ NVA "oK9q8ΰQLh24Nwat4i{i"k GYSp)C0 .WW | ݲ ]:@95e= e¬؃L4OA{`dz?uCVh#U-VZg2VYVN9"x6=b5A,ratH2XNxNtr4uiZْZmyìSz \ N]@U%P&mՅmo?7B«ZS/H7D=k-k5StXO_H-ei*-ٟ_H@pѣ =g|^" :B[ҾQH5mIoD9En4~L 胀S:ڱf*uv@vt}-xy&%+V}cnh=V_@?AQNPϦSGN 5ө-`T+~TOT+@-| PALQzi*`уJ )ƾ-CJXߋ`t7t ~3r_Do3muYhq ^Y7*ǨC OyGQOXwQxo u$s|lfצ?9"pȸ pnn/Zw0l݁ea[D7==np!jDЯ||]%ƥY3zVP@ Ji@ HHWt>  RH5[6 ߔ\X?gDZ"Rh`)|rg܆q}ܖ#qjSH92 BWek}X`\@1h)q9ҹ \Lի+ ^n~( k|~>5y;^M`uASC>  ϯ)8UA .*H*ԆP)éGE5Cdt`taԇøa)R=]Ơp`A)"J9i8UlZ[--OJV9>qnmr, {~],t&F{otJ4P:쫵? 5=hz-Xε=d}~arg fyʔ[Q_ (;}QRGPrRJS@ʩѪ8D@j%6 g5!hx*,z4LMBA}55iEmuXAz|}^MU {:zA=9pwH@W_ J֯Հb- 8x:۩ ͠v .@Ww?mp0}ϯj#|9c!0},ԑ{!u+AwI֝Ϣ[r(c:ӛ#4=QBFOa?[|aˌr܁ѺS{/w{Sx}?h{KܓpotҪ{?N-}c] [7N9z5W jʩ}ty֩h QQR(*wtBRHOnO>"xFzҷ #M 5#x){;]Ԏ`Pj]MNە*PPj= 2DHut4J>(5#q@j(C))?e`6#ݔ=Cu22hz`j*(5ԋ@Q Aa4H}QSt#jʑR3J;I@Q H3y`r())CRZ@ ]di.PꋲfAP˒iuAPj^@i!a4 >mUQ!8 H)P/J=ܳ~ڍF~Qrz p ?m ]]쎈#C#~5>f  xoi0>?9 h:^EK/;fޗw@B)i/tR){ HG/{N@L@DF )u;--p55SuSͩQ-))RaR'5t"QR LsTd7}oG^5ܞjKj9uɈQ%g(HTh 'r*~2 O5UuB޻z;z#Z:"jN{RզۓFIȨAQRRNs;R iS3oԽwS| >&Q嶤 іTutⶤnLq+b80Mv# ^GH"DH}3ҰԽ@^ϠR>Gey24({'m ׹C?݈T$;01r4"*NHw4ꉈ((GBB H}Â{_@J8'r¹@OΧe^] *`u \Cs-Z-^f~V {_ԫss}˔xu}%%خ Z`3P'C-: #mQW"mz].B}P6h l?jIhZc~ Tx? ghݖ=Б}ոո?GOC]uzyu|y6,,j8`z!?nAJPʑRRݮצjW.^~%={+ 0V@ !hC:-HU&W⡞N ..p;;w;;q'rtۢ.BŀQN׻0CBNܾRItOGJg7='UmJNN RPۍrѩDu&{߻mHul;oC5uS:R:7L=éTtbLS&TuۋڒmH:@NKI3)U鶤Iup6х}{ߛmH*Z-)s6NN:f[SNkqQN!Uzd!"aϸ&괺AKRw+9}?? )_DHpZ){=f٩l>'҆byYz f~ /_mFut9U<4蔽}L=h`ԉQR5&)Gt{ vgɯGޤύVQH@7GE_**R?̧CCϦyk>=ւiS y z_sUHE:p. צՍ@9>+ =/*# =BV @5C kZ(.Gn;*ڻ𪣳PUw} p h`IUBg3W&WVG#t7K):E] ,+.w|ej-@/)x2EomdgJ3 S9gs'0?#Z^ +^;c}WlDSgQk@iKDL[ ۙ2RN_{tv:==ڔc44FSDHOFdDIHO!"vFHSn&˞ۏ.a01I@U 8C&zlR5 ~y((b_zH%gP9ڔbmx(w(Ua~==zٛTzK6-ɉ;:0P P5IgHU=!iCE)!YxM{$w[ndJ7zޛ0j)u{՛^G0U=ѮT?h&G4ݧUAIT+홯^]q}.{Mr.=վZQ8Y!}6+ E{dih?NɈa5;SGn/m6mRR@jtZqu'|wj@˨Փ?=qGh(S}.|tIWyOGzhЧٗUt{T΀ >Vip)@3g~nfh~e> ;xoכgSAsq]1q4TGPS*qA?{NS+VɅWuy*D\ӵ暧ؾX}]"iz?}8Uy}i{HuPOD[3G_eFԵǫ_mWЉ]Cjk 1::SPw:1`ipbuɖ:l)h3!z.Qt6X ؊/Cc#<`+%:)9W&&p{Bݱ1V#Pʑ҇jfi*}7=3kSz9ڔ^2`ϮxR=VUT gU;c ,w| Ha>Nm3=H>ê偫Y|** ;0A 5{ N]hp6')w~Fy|Ű]cqJqIy`}gp}k|Rw,R41HXWDA>}2}BdWx| (5C@H՘ܡ iuw|5H> *C <)F͎Lv/$fڳ>Zu4&7;Rj eHM(e塠5ӎFa=̓@"kڵJa){s}s5\|AiN@z#G@LJtn肇~Bg$qs?~ ]5}ޤ'>=ԯw`@ T꿢/t—Qus \yjZzὅ^/sPVl`4Ob0(4pʀ@ۦS?g Z,) 8U'ª H}Y֟A70i?7VD1=.7 p:@Z9嶅508@Y̦Me(i~ʕQu@H՟봔gXP­:wA^28mHeFYsxB}(eu khB{y J{J:W9J{gߟB7<=AJ UG͐?O;FH#&C]} HqH"Ω_c&h #弞gtҰuq[9ƀ<#Tζ4g NZɉgsO݃^;jd(ԯz*gЀS-Tɉgiٚpՠ ƌNjV'wF'of'wf&)A݁6Ԓ0_A9SxfrX׶SunsĽTԬN<95o!Lx93F-*(XQұH&L cT2lر#x0@56(bŊD\ Sw'lvY3ou$`|}Mu`+5ks:j:tҥw..mC7G- j覾vtǏ$ I-y?ʱ e]i_&jHePr8jmj=b4/ݪvgaZ>ۿlffi.yZccb?,S;kknfߟ:zd %-%n|Jwli Sz_uԋ՞}Єty沜Y8گe:<CoFѽƶ|aDU۫ Js7]?BUnB~޹;I?F'~?"v?Xq=}x[^L3.:xAB[ 兟wn9/u+"N 뿃tp' tέV{1uts'Ö#~Ρ;kԶպt/@nez0sen~ xƟoyC᏿ݯ7tK{+t2ݯQ}% M zht=5^I H/^Ncs,DIO!eRզM:i{#eqH9B: } gjBO:T('%OCrc0q;Q`ԂzMgpA=8u_ӊjazQb4NjP# j wكh.Q^ViB5`2tӉ<:ym.u S5JԜRSFiq U }OT.j8iG})z݁)bQ 9 ЁiFEH3HV*e"Tu)SH_ti"ez\.Ϡ幜^8H1?B!8KmEq:NtbeK:FstkORatE{N5RDz#Z("4c =wf{}&;5H۾^| ^.<x 0y;8:EaGs, 5{[^ZT"'{/R1m`qMOh8r/^ϝRL"R C`Ir@k/ގ?H͈*iGubNx?@ĊNOvW?i}@))G"zQ^(:Z=eNc;QtlQ=͡jP3+H,wѹBC=};@R[^?Q@hn WP嬨TX"s·{L9@& X EC;|v[w^ 6p?p~.U]5:~1Se- ~R[_A?A\N; H: *xK=~ nzqJߎ7%@z !ut"t]ơsGIǪ=ЩH;"=>))QOc c"H @:@: ˞SD) TGPgQNSHY<]ғ_H3 {SG+;=ՙs1gW a JC9uA)E&z:ڜm܈ L>]i@UL6F ҀB:&Ů7f24r*S#:gYdO9M>Ԣ9e@QQWޜx6yzQN~ kB#ĝ>x|L28>oXӔ&6ly4a50>H:0^1i6/M=@nK\ xu7?o_B>BEsч>?1tO铀3g^^@=e< S:0@I323RLO">0SjE9<@P邪ZgaZfUo{+ԥ@rRC_):D=1EFM@jOG`d)èP!JUSU(noo H9e C,0ڇpWN|V`n$딾˿#H!Tw} .lqω:ףaԉP PHNy_5tԀC &0z\pPS0?DŽPgջ &x^E%z_sDIq~@hO P_?"m9~{t_\OW?v?  Ttl LWH/v4"m:4H@H۟@:z5cv[ Kaʔiډ{rDS(Ϧ@/_M`~#8Y bgrZCR%xT1,'25lۯ>79hkS5EqhtCO:}iGF~qԐOLzW]W%K+7?t{cSd;מsx@un=9 pPx{S=vl||Z/O9&>yq_ʮ|hCz_èRc|~Ug˛_vijz[z{wC5ש ߤbwgzP6<>6 j|7eϝCӓ3a_x6xߓTΝSNzV}vq"R:Ȧ?Eop2=>@GH* ==R7JH=#[h(+ B:wS*Eo !^'HېΣ H_h[tpȟK?]T;j*i_;N|rD g!Gnш9)wAt1frZ^~7ۆrqܑIކgqR-^rY {Ź J8η͠S FuRE 5H⾭a]R)d(>;hΝ6@L<ŨVEPȩ8`u}c+ײsyBJMj4 E/+Ho{=۾.{,jzh/tэIWq HHL<5ԄU/{tjR@:R`XW.;5JWt':zA3t >x}>r="ssů>gUʾ?uC~+S匏4^F+嶢jh(SI@8K~Ujy|G}WwK]q筍j '|##?lN4ӑT4ӎp2u?H] DDĺ2BExMH+`TmEў?0xߢK ?6c:rnduD\}Q7;:l9OxξggrEmS>cݼs5nUݶeN_K7_M"ȃNSr!i""y mJeCQթi[ :lL):5`:4Y!REnDHzNEG)RH3~^)<쓚~zzn'3 }^LcO# BQvSz{hȋp1#?54j*J|g#|o3*MDi "l4ЦZfB/{ Ǵ0\>LiN}y|-y(NCkho g k>( 刘@jB(E Int?PQ3fؙ3U{-X]ms ,3dR0$~ /(fSb=W9=n-;އ#-qsViDHy{^i(ֵ]Q{tY77Pу]=MWu]tmlA9mσժ)fhiBL8 ΀#yZ>㳯@ sw_!\}ɋȤ/ձf@xuxrEw?qLo'L_ P_tڻvžO5Z,fJ8\(ܔjpY)S!MuUy0}G: T0=Һ+$*Z6T* 9euwa[2z|wlK4~_1+5~|f`<.fk69wTF@g5TDsn]-w>Ik95}@og50^K^ =!s..ԤϨzr]tuY_ߏseToݛFp׬ޣKQ˞ / EDIלկ̥1[~:KC/?n_G''OB ǰOT3{%2ڔvH{)P  }@˱;YD<(>34qta!dga kf-GYR8R?]bșZ(ef#_r}ɇ?a;W62i="sP5y* q^( yp|@-i&ha0M[ZW!ϑ˱Hoq`yA: ^vW Jz׺/KTY&5Wscp1?ύS">c`|( <ޜ1:q'$R7/=w.Kr O^pTWW7-"# NzP~e l:}j8TNэj308Ϻԙgq޻Ԍ?<;Ũ3ej ;{viP;5)f L♊lE:=Q|%gfԌQ:-x`P_'![M푙p& 5P>[Qgj}g@|eEd6#Tza?=wn~t85ֹRBi|9J)/]`ا}>( }@zzuNzo!c"◂{s^è`E_ )C)hXzߎ}( GZteѯGlTMuz~H޿PP0mĵ$W&FpjOi3f#9Mmmi4ia0MXq/?@\M\XV+`AWp-/;j? qKYi.C x@cvŬu]4~7Tʠpԅ.Et9HFMUI#ݖmuo`񳢞#bee(eUC؆8q<g::9~aX2_GЯ˵x߸W>_}=y/i*; 63> ^ν5Pz%jL%z~$]CoCi9b^<=~J{JP^jP6`Bۛ-5Zz̅8!{nՉ{_ =ۆ4 xf?t2R wBޣH^z8MgޝMT|"*RåLo(vtTP 0SOU{w>{~J7<9ԝE5=(|W Ai}F{6ټıxs>z:B4p:UOu 4ޛehTZ吞+ʜ#<;dˮH}3jl$`+}b8%WU5u V22]ӱl:Ð@yJXUZ?Fp/YjɖxX$lPwQ ,O;!e.޷7{QsXl쇎D*t%@g~Fp^,G}a=3UO/  2rBasu6:DGYvS<})\H?]Ost%dC>1Tr# A)8:*D)ă ^gH{rR+PVk3 ~޳6BMj\K'|L.gzVC&2vj Ju1iёU ^Mstt1ڌFF(/n/t_`F-XGu!ɵ4~)Tk\~4f@pp }5+d~c|>ZCxl4s}ϧϧϧϧ,Sl24䥎&-IK1g grb*#nt lmR-)wj@&r%HPuUrg5_w?8RYeuix&m[/ /6uHhP5 *,}S5llkg>YCfTS?B8 =UҫkJk(Kw<=Ή>^hO ?]O鉶em(@Qyxztid Rx8:#θN@cYb>ᘆ{;w8 L| u1F|#5/E;L^TmFAQ^4=GFS0:mGǡXDF"U_9%Ns{RH?{|B<)]5t."ҩ!@੣&0rTT(C(/3_g,y /C*p4rԃQSZP &n Ԏj0Uhi3>g"{r](5A׵UƁ ::QQQPBkd]xwLT(AVzSj(e(ZBt`mDqz~?;K"Ca @UFY [tJJP&-[N-SyjZ@zJHr7tXGL[MMYA>>>>O,ON\JNXL_ht|Tn}i2iEi[T{Dk:"ZgUT"jWD Pވ(vE5Tь:#2z5"C&Bv߬.h2Xj|؅JɖF rTj(dݯpJJ/({^\6Nw)ݎMg'-8n 7C!{I)7e x#m:a~xl=1Jv溴c_źkK󵆮p:Chr^!7@s4nxrR+݈'`%?nEMib3 ӳ<=7ArD6Љ F=HSJBTGH{pʞ ]@:2 Qrh(C&|{ro0R3Y< ;fjYsʰʀGt ܞTGIUҴH)Gz-j fTT1]k75S&Tfz[/RFoՖTé &j0WNԌ2rDt%򔬋 Pv",u Ycd1aPj-4j8ⶣщI(j\M('N~2 8QzDGhe4me=M_f^4}U=:HoV%%CtTZxJ4v1}0~):(' ,D>?hxy)ӧ1<@O0YT?_ %Yi 4ɫ tv^Q@  5Pi{<^,Osξ4kF{-ϕh+^O v/C[u#d "TT9ngG*+?+]] ]ph'؋nTP6 B o([L}VJm  m5  @>o5*6tmvh H`PZ^ e]w$t)E~?*0Ed瑺|aULZF: !U# `v5TGFSm!MV+@&!%D'q}y?"\p~UDxpx[qZ00>pu@F''g198qtkʺt]9x<]|DJXq ۏcr{)FPPX?ʤm]]}JW_,3Tu@ıBM}҄1 ]k$^4\^1||,Q/A]:1s_$"< GC/< щt!w^?9 ѳ=#S=M QSt'F`QHk#eQ;zRfT(4;G69*OLQND~rw: :Yehe8haG_Խ%h 9B0# kULԄQզ;[iqG,w~YىTCiPIF9Qf!tޞ_]u`j]PʩLfX o)t |Bs T%h&`HYkiƅp|h/Ʋzn9\@VoE$rM\H;%Q?[L@>ZDG?ù9ńsָJERa9v\S|TWQ3W9hn`"i²NR!Ѥ@`c<%h-4a%Mܾ&oGSͤۦ0߻l@~Y!Y3J vHp좹}ki־U4w Z9ЊQV`$Njچ(^I`2 ? HvAe Nt\+k qP^6-B S7)=R۾`:Bt@}yqADYU zW'!)E~s{bg[^$S&Rl)hP""y3A@ҁJ }<~$X++01e T ^B|:1蠒& z.++pwʺsAC=2ZGF909a=5}e`c eXc?y}#l]w4]o ]ubԣKP.,nz S57A4#*z*gOC> SnS@_Z-ٶnYF76m9wЬ h4y^DLѹ -)Gb<#2PQN>}%}>9 ί,n+Dl7q}1qzr b2bۏ؎As9h:#_ hҊ}(R!Eo{أ˞;5Mf;NHH)# Am(OɺUTu.<6ФM#hQ/u̥!@&+4c[>+l.(-8f]OSv/=ػh/@}ZKiѵmHEIsT)t AH URQPϭύ&C~H! R_Nѧ::y0)C)èҫv@i0x ݀gsCoBT'ӭ݁T~bPպ@WVjYZպ(d04=C址J[w`vD/oh&V\fH%"+G.X^ 9` $/C4PG+!2`.¸Z.,:3圃ɕޣ黽֙x 8A:mJzYXH8NyIb:ISbsV/ gwyzs[~9NI],a3l , q}^k%tOq]?Sk bt=(.٨KsP"=m ~5u;FL E|K>rj=X3"^qk*|܆T5Gu& 6.1{7фKh)Ն4jWT3c3L00嘆zHꔽ]~e\6.'@k\ 3o{WҔ4 :a<Н33aCCkFgFiNfAQBiXUg\у_t[i'7_O<)4K_GзoF/(T>oX|gGj)2a;.ko,:MOSw~Vu-NTԄQ}N`g|be]g)Rkk~{#rS-53IQ0UP=)xNsaSd@$MsӰ ΔQRRݞTx~6ǽ44 唽gJ H8qy,t LbR ?&+?0[{9-۵w%h=J$S:/D{%ЋT4D9n>R68?l )5{ڇT96)[~VL°USpkD4~rې22i 54ۑک{3Hy%܃iڞ 46N/7bVbv1a*X[ ]%sېjrJYE[Xl? P'YJcѸx4 Q|}i@,1@:z4Ydchcx IzAH㢣qΠqe[ l:i֧j4_35ٝB2>v5Ǫ[ehZO֐xi- &5N+}Jucivg%doc}>+q?vGYꝱH \oCoIx5Zݨ<{C{7ja߄i֥i EXϲ5+|:.Ux/+,KJ,s^g[6yOuOigѯG/#U7P_P:[(,XF|l}^nJ<+ij pZ\^N"k)D C3m4DkV7a`Ћ< ϗiV~,@z}/z:y=x~u+we[l z/vVaކ3 Ku =`h?Qk/~0Y{.H .?C{Uozn~wB ͯ\s6B:CmE-co;ese2{ĵuר߇6]PKz+ƺ܂6a v%m`!eڵxFh3}x|l<\z[.Y(VwtA/Ԯފ^؛vѲ ;hm_VlHknM h"}; yhʰ]j=>o_H dwoEZ:(fmMKLԯЯooĵmډ2sοy7f CYCLk;ʷ0Nڕ9Hs{sMp]Mf&Zgݳy5ǕMb5Y6÷O{AyI?C|Mr.;!\^\+%u_2f4HS110YUPc oؾ`ǾB;ZaFE8Gj}JO2t1>k:s_rxz+9Wok%Hm]rV*U[)W3mMg7oKڑ*LWםnMy@}Sk`QsommӦ`CSk>s0=</kٮs}`鞓levEv92^>9{|lssyb}θ~k7ˠK/\Z ޞP5+cD`C{.k:ҮGj1ݛZvA-;t;SUjzCGjۥ#UnVS~g`܋ָ:#S}oaҹ([}mG}XYCCAԾ+AmPWWjm1-xpT9;D,tF%|LOYsP灸}nNqSuv]wOݩנطoZ]2?UxFv>LiE-@B ]QJGcH=: u@RFHoİO#u@RH(LjC#grc~DRH: uׁL1A>@j**Ajq@q ;pAZv-mܸoN;wAk.ڽ{7mٲE }G*:5e!-&sA)i6z'&8 @1iCͩCS)&!'Nq@āp &宥j>eM1Ns{`Bq c &iQtrfj#*جFA@`ՀPtۭADH3Y` 5TY2+dcw?k}q@rq@Zt"zsRF 4 i@:f5 QRRE}k*e%6IŎ.U w [2֌p˅*YQM*umr3^$"*lߑb?!Gq@h ={h߾}įfO\zD#AT+d@:R UChȘ!$Bb'xi@Y*w - jQ@)6.6)r/5Kq@(ub=묳Ҡ4_@jB/BgDHMc>Sf^/DL%Bkuw!?;:i!R1L) bYZ$3GH[\k/84R 7 .-[4_@~qk@jVRӐfQRa"߆܁˟z%q@(A@a6tM4p@H?RFCQ!*j?B:AC5nP|2SS|ݷS*m9圤dn){5nl!U){1& E?q@J 4}G_g}FGFZ:T_#"B|uuR2ڏX\%B}uuh; NQ)L&9E8Z&SF-k졟ʽ.Sq2x;8aR0!o`|WmH}@a /\a0*Rx 8 8Plzb.{R=xS)e u7 2i_q@Łbi_ H,aH/8imHH%BZ.Sq@@1ThޤR!-C Q8 8P. H9&em6<ڲLK\)8 8 Á'c])[ i1Sq@Ł1J !-A)8 pTh9DHQ8 8P.&t}89!ՑhC77lի}"7> :DHqr8 @18T&O:*$Zsכ9Y 33ㅁm2ІEPQ!8 8 4eu4|.m/mHY8 8P 0n+FnCʽͨ2]/Rx 8 8Pl0M\)^FMzS@z9R|7t/j IG?SX^"Ůr~q@q@(u La)҇m 0Z 뀔\ †v6Hq@qHH>wL1)zt 2SS_q@فb#m0/{(eպ ?7n]a! )_R#"eq@āB;P  ܄3Z+ѩus{H%BZj,q@ārv@c`1p|ڋevNM'SӔ t }yDH8 @(=F돐O{>'JX/8 @1  ݈)^VQGHaL/Gھ\S!-GD.8 v@mHf\TRN!-o i_q@فbiO.rTԔ!mM 5\AQs{L\?h'iqJ>0՘'@pU]Yygv̷ε{V?$|ݪNV_3T}V+| 8 @1/"<^\LMVT%@zQgXRSe`ӀPWow(>lƦ0(0S5TYYSTVS|YYʽW[[=fxʿ:|ͬ8 #σ/k}@ʽ 7!@ELCԎ iCjLMJ#zY 4älV%GJ"vdQEH3]kXr\oP[DwKR~|w_]j~< xNR[hz㛢JMf N 3iM5Uju5בUcwVHy3:EWU8 :P  =29_1h<@t'թ)mH3MٯZ%VؠH!E % wF́4K\mHsRZ=j>Cā\(Q ŝi<L;e?d6NL!@\ڐW_;RF/i܀TGi;'EfFꝯ>)"叿ma)1@Z=픻JfTos+-8R@:x<] ]]c7dk'FZ_QEv(fQ;]r=·i}MZ; H㏯uFʠf:^g$,-@}yfJ=N(iPok=OOvQզJ/5Ls}Mvf(ǨDq@rr@ېujrې2nT ʺ"BZ}D[Ͳ0!ͩ8 8(&e }|'e&/LoO\8 8 ́bQL2wا2j9@pYxFxfDH V8 8( ៩4 |D(rR6'E.Aq@ @ge:2@t+)9] P*W iXq@COU!e 0Z@*&%8 @(w?2Qvj`| {ȁq@q@(ÀjSW ]囲i규Xq@M @԰O.^^zp|0P<4ߙ71A8J9ͳI޽>Ig*ZlӘ)$?Ρ݉NEq| 5+d\q@(CʞEH}T&CdȔ 6 }}؆AexOcnSVΚ)Gs;9h^?HTӧ&ͮǏ&dO]ZY9(PY8)8@ԄҴO BjH!#zQ 4m.UJ4 \"OH1C`% xȢf<i;kXr\oj)HSESzSrA_im iͻ Vk%Mx{cFӦF 55rzOUjiM9h ^uD:5eiExԧɾd+q@hRj(MoCj7i1_ VIg!lPQfS,F?.w`IHcLց6?MoUSNj;xD9қTpMs֧^m e)}u-O*(C}Ms^4Aā&@14q/{UcHۘia0%Byr!$ XC;+ @z7QB):yiy2R1?4GTEHudԌ{95ʡ!1z@QEM68 RxTu&Rm?uh”|*^y~B̼_fNM@NdI'*\@/ GK#e+B|S!@Y;P N>;'H'ٚ.-iVAUR oNMzDHs{F:B>ru6sR4Цځۀ&l"'ӑEH˯ڇ5S6CxsFn+~oHD)wk$[8(~QiuƟaF !v2ڏ mH42~#`5 J i3vv N76vO& H㏯uFʠf:=ë ӯ0 (Y^mSTڝ4>U @C @# d>G6_[+aǦ٭6*oSrMun#5;E{Ird_q@(?`OXVi7=h!4,ҙ!-CJ,8 @1ԾJTHOH'3Kw'l(LҐ|>T"WL8 8P^V"uR.)@DH롐Ҋ8 @:P@d^9H}Vj98 8 % F2h9DH롐Ҋ8 @:P@z12%&;eiVj98 8  ngJWҊ8 8eNM҆4*8 8P64N/{ ^zp|{zOkCX^/b:# R/lgpoA3-j2=nۧ\ic3-l/8wt35]:ې= &"cWSBl䙚  :Tڐcԡq J<5g} 2[˹5>6ryWw`8 ́RS*TTEB#!SEOǤ鰪f4dLjm`DH}T6w UQE@sw4] &]_9&,k_/e q@ā9P@z;DG` t.z/:hHT/5mM#@\"I*!H!:6) W?`/ k ŎHd;t\rڢJ>Qq0&v;}NMF/AOІ<iPJ5oNCq|/2DHs+K:TocsJ#}_l%[ >}k4;Uhu54:X*A蘕#BGo^8VJVSU$ק7NM=8 rāR/.<ҍ69ixt 2g 琬q(,yfF/2,e#p&0(^Er2s?SMNsOvq ,~ e0zN]?Q/DH Rw8 8D(q ݔe ҆<-eٔN: %8 Ł9eNM!]8 8PB4*}|rRP8 @9P@mH/2 @S%BZrG $8 @$p`BH%B{E#8 @udېz0@ =aS{C9 *h<`$s R˾9z|n Gj}GicI˗ӻGLW*"i98 @rJHn!b-́aU<SՐ!ҤK4y,䖹MZȒ9i( R8>#'ecq@ā8P@zHoLNRo B"@PR/!ͽFԑ&P/VّQ! WTӘ^3cZSwZSEW׆L{]#8 d@!>RN?((Ck@*+ `S R S!|.< JNWRj= ^>NnTq@LJH/SӅn}gj R>lWڗi*ǠmHۧ~Vpok`4(NBq@J́R%>5&:6It/B*qQ# iz䒏#@Z:UJ"8@([oa[:p ?>nn@!ĠH{\˗v&rT3=m*<|}Tq@ŁRթېXx|iPJ̔} i.UC2CӏOg>}_lۻR>B*=|H*sب F:7l驢[C:nI-8% @?q/| ,*Udا".q@(i  @ !nIYq@h.NB<9mIa J;R*ҦU8 @a(Q >^<@ ]Č^V~@*T^98 8 4 JH&}DH"W!8 qdTEH9eDIߞ}DH Sy8 84(i PL[e !m\8 8 Ɓ3!a oOiaUq@ā9P@.,DF](=qsSzp9è6hfÎ!Up>9p|ԌNj#c|۞r)pb!_dX<*q(Y `Y(АXOPzX1C99jjf)lj?Zgy R6%P?Tr:4w+"ϟ#PS2婻WzT/pMË8PJHgE:J:d!<@7tIR{R iū ݋nsB;2r+1W]N'j# M+jiXQtyQLl#Ցg.S,q@(EJH )whR)e=qԋr>H!m6$4+쫿 I j سS PR`(_}@돏+oG) 0VRMs/؊]_氷a^^:gMq@(% L6 袧f+56f>jz|j1*EӅ<}%!p)mM-~@xVƐ}m?-&gVFuÛFOKBKq@,JH"e }gFO{iV4!cێJD@I_ȱR Y\R MFҨ3 &8 e@ *Q&{fzU[[8e{>?@:|vDǧ,WFߊ4Fk\V+eJ} FoH>#[8P~&쑲QQ#ynCLs;/et>^҇% 6M)z1=Jas#l;EoصHAh hac߷޷?_ECilٍ*%|q@(H%OQ|KPF $mHK1w7#dا&qtD.DH!:(BhqàT!mZ=QӺҸ4Bā|:PL =vRs5} * \a;&e !gc8 @Ss@jBi 2^Rm˾cYxFliS{tzq@q _4^ыN/R櫺qq@q):P, 믉#Z?B:mH )t1ΔҰM\ڐ6JIq@2q@jCiz^\ !ͤJʶ8 8p9P4 Et(_U+H5嗲X8 @&H  (+^ލtkށTz8G~UUxCCfmi&URq@ā́b@)GGkDP! HGzgJ~T$C*!0Ӑ!R{P>^q Tڐo\8 8 HH9:z:կ)un;503z eTSDHhiJT7 ^@9mkCc<5gTZq@q@!=kҀԀRH?0~HT/51*ESv!=^'Nq@q@Ɓbi?)w=J{J,T H~yt1iCx@ ejvl6T[Gq@ER.h7+Ҷ:Bmts]ͧ GoNRUD5DH##"8 v@jBHߝxbOoN8W/BjjnOGshC47['8 @):PL m8r%er{{ҷ&oJi,z#@j)Z!-Ū/eq@āRq@mHBwHY;JzHzKT)8 8 Áb~ HJ!ݪ(If{i1Sq@ā:PL ~/J( ѓ.۔DH [8 8P HOQ)iyW6)8 8 AHM(GH(-w M6p8 @)Rڐ:)t9*:z9N T^q3V).8 LJRi?܎ډ@)`$IU*W 4g}زU8 8@Tl Pj=n&Nٻ*AWS09:B9hwT]$UTe|jyߡn(U<24jT=`Pꡙߟ8xMe%l5Sx>ʈV;hB˟ GʚF9Dāl(qH5FR Z 3ê( HCP [oFHܨXP)GxT3t8/CiBéé"C:>9n}._Y"S?E i(j*C_{ =Ieq@b(&t=!~@iC8@R*X q6IA" Ȧz;zjGFU4C8ELڊΨuv&pPuUo`>}#껾'SQT6$g73ᖒTS F܋^"1L͊h_ڑQu 8(Uӊ hsOs?SiO=uN@qf'ru.7jt#@?I}zq@(A#PAANMj"Brh6$]PoeQRsj +duLTa@l:lkOsm%{n븓i)ckVУ?}Zf9ݜ *6qFXu X.OOm,s:>e7UK9l*SPViMSSqi8@1t F]VGĭ)!C8܁[2T&rb+>}98 $q@z;22^DH#::N$DK(S TExq [hg\F18p|;@:m4Hj^{5_M{4sLڲe JĤ#@¨rR!r8 8p<8@0n:ڿ}kuvVڼy mذM,WsOin_`xxq@q H_y޽v;h5|*Zt9͙;ƍD-/m\ mWw(h`ۈAi60Z2fSdq@q@2p@mE;vm۶hɒep@BOúGR=}\)JxfR3Ht.F$8 % ;wt̐fd( Ҭ>^AHf@S&9S\I<8 8Д8ԋF)GPr44K inP} t5<]UVetRwߝ[nR>5Om}WL62 q@āt ^a@ e_sٗHe0 RA,Kܜ6RknAadj kI{"5y H5b8 ҧjNNqMC}lk㤵3?RJ^( %dtxҀ(~5tjEDB }'q@(QJHw 7}P4(:?5d$mHs{ Vj32VRM}L Á)ܼq@ārr@1S Nfԗ7`ՎU6nNEmx`rJ7Rd %ezq@āuR=Ksoڴ-Zfh5k.M6&LBF-4N4(%_4S ^ >$:*mHsy@"4kYSza:4}@\Aͧjsxǧ&F= ,i*8 Hy&2at-qfZ~ge6}&fiJcMrңGҡC|e Oi.LR2}=KR`q@q@wy֭[iChm*J| ZC,ŋ…i4e4m/dhya% ) =׍>@R!M:[SSvq@q` 4iҡ/M,#F4">~;-@/Fr窏\v5J ,8 @0])}vڹsO 3hݻ S +Ag l.8 @Y:P, =mH9]oSi@C"eYͤ8 8 ;P 6]+CөI!}f lJR@*Ryq@q@(-  = mvA9Re ޙ l@<8 8 ;PiF@fh bHm^?q@q@J+Bc`q(-?xVDWC렽6> }zCNkFcLT)@z9WaJPjXx{o`*fCGHe~kČJ[C/;;gk*՛G3BÎ|I_/&Tp/Ti3ٳei?4v8'Յ?R6āsΏ{ҜiôxaZ8 mݘ@M3u(T5d5 Rut!{&@ZbD@}۪ C4OPu/5{Ų}I6Ul0-ϙ+K?M/ WȌy$G࣢Y}#DL8PBH(ںF.Ikӌ͇iTe)C~;qԋ2)lP5!cm@!-ZeQLCS9DH"h&0)X0R)CN .a-HT9TL׾೽čq:IAbuf! go:ϔ?&,RI0d{!fKҼY)JсbiGhŦ=-4z.M]M҃t;=-f;w#Z"v4jP 2}=.R`.P3I;U dܦM  uh &9ϼ S[EQW!k o:=M&Bj}\)L(O+7/nKv."Ri%ՠ$mkXM(Ze_<5:Hmz"9v3wz_W-0IHY'@15RQh܊N~"XB8 0GoҸ@*8}4W1%i'"m{M(pz+hN] Jg!x#'jdR#nA}_Ai߆dn^LEEM7gQRERqHۡSGh4 z4SSK !mHRvē.}x(wH(7՗S[R G᜜NÁ οʀC ,ӡ-|gADt xHSi;6Dw:.~5N#"ϟ?n9v1a|ɸrSw3@kn ZNM2'L>yjh!C(N}Ӗ}Gi#p5S}ڰOH*XNHQcfo04/b>rx7#?lW 8S^)qr@};0#50ڴH  2S}{s`{waj8!_ :__cqN4!GyYEϯwR.TO{=:۞-Sqq_s"'ޣ{Y6_{(Qry\wZ):%]_@B!sXEtjU4T>^q TڐG_e, 8Q@eи/27I~ 2P-`g Qe?pIo{CxcA?Iq!?v-F!H0 !U 1@jI:Pz te\3u, GEX^lUq}KP*Bq[QHԿTݣ'Unj[|%~$BjCc[@AAxn<qHg5(5t!{gj fd),%Z5lwz/RѸA eQL/oR T̶AWwڏD\3F NDB6kŭ'&W~ չk ?IΦk߰U ?A<%u.l}u,Cd\;Ϣ ?DC< FO]J7Br)G |L4,]6oBAo4qRH~|Jȵx % 3<_E8wqu_A4 Hc#=71Po'Oo@7?DH]-y 2]LMqS;RLv:6 9b~Ժ/> IA|D#S#| Ф!8 Kxjr`#fWN)4I[>~$}4`nW "IPR{~_lW|?Dުons]]_uGHR͆v]P>*]/R8]ouu/ LI:/`|nIipӹ^t=2O/Y`Z {_}zs9mGfvJo?ט.Cp R<th&IջNC+6rA/{ПxҦqA>f[t̅~mX:n+#>t4Uwnt[&٩^Z´!5n{㳴!(Ό@1>͔evrMmru_VMi?_9 IS')t6R.;sԛ i?|X$E'AKz?y7Hb>_rMXMo`| JTꗏ\mRHȵp/{HTrMKT\V_R4:P@zA\"jX'8 @vvZڸq#m߾vSCC̯vEw-[/d4VѣtxYuu5UHW"JHEH``wj%Bڄ\8 8 ʁRFW !Mq@āpJH]e-g <8 8 4) QnO5>lzgaTV 4?h}mI*85ޠ5փ;յgv oazo<]QYN@T߅審,L}PךR&mlHޔmKsOc,,ik2OWqS&UB~ڐHy%ê( H4!CnT۪a q@Y/$uBpsI 5Քo^Jv>~\Ο{^#_@z@iT-:>]~ƅzQB# qKH=ǎ 8F)CՀ)Cs؆(/iqJ#z/VsjX#7*_ j22ln9}_n 1FWF̓$OP7SAޜqWյ@>p3ca@3ve}<|=5Hs cY#ؾDŽ~USe_"S1ˢ#; !k(iR_4HT!i6$yDHPl KF;BPGOP_pnďŌPcj/ij.|!`3侨+ݧ!? Q03/h~#,?|k5=N6p%| k:d{]81Haߏϣ? {=^{Lݿ!ߥ@a~0 t>a::>HHuR3z㋀"j !c%BZJjF~\m?R;*f~`jDzظѹ)~)1"ŌAv~`|?ȑ0 G%ӎE C"\^- C$06Bo ?iVg8Z@=K#|??hY3!-o~?²-|e^͙hCzcڐ&I{DHU5hD_"|_Xɀ?Ami_}]_n@jէ,AJG4=G F gq | ΊOq?c v}{Hǜ? h! ~ܚ*|e@i{W?)= ېu Qi?RL;4"d})MF*-fۗ~}NY̨#)J㲪E>:&FJɚ?jAʰbixHΰ/;?_@w7_:AVthgׄ AC\?Ǔ |~b0#OtS}`Y4 *Ҡ|E@;Ps;%w8(/]EBf}iq~lYtA aK5m H:&i#˅U3$U:ԾUtGmr~אjK=,ՉEN?'d70<:TK:SR`NkQʘ~q|7' -ϧHLGsPHMq4HFHe.r~D8 8PhEHOGQG!-te8 8P JHS0@ivjFQ!8 8 4%Z Q]!|8 8 4R݆t-ڐ69ԡ0(JiJolLM˶9iƮr>q@q@@17:5|N^Ђޙ@hޜy~TzޞjC;XoF@q7 *n[Y/9`5ok&sٍqs\?O'?Ovc܁#_n^&kي&dnv Hhgz9&H_Hjԣ|/\6R=Ӕ1^ԏ!ѫL;rdS@TkLSWaL0-!?hZPsJ cJFټ qxS{Ow{7|OD左ܑ Lݭյ@8u(aOX§^u[wsRSɦ7\H?eO_]c~?7Lի1o=GZ2֙eCaϏ^S&\߃#{>DyخX@!Cgm0K[nh@EPy~ Ȫ!UWg* ýC4lP_2%x?zN#uYCk9_کg ̇q"CKdp< O@ow/2,.\?R?a|sʟkTmM}EwA_SuG G>0x ?t'ݿV qGOCw>f-~'^~4X mCϿ4{ޚqCu}}S)DG4KRf4CW6F/s#:%,fPTRw_ց[C"6Ra ݹ\[pd*͋l Si 8 +u, Hx"q=lO@>:=e\}>GTdO6{.@[^41YL|o;Ar~;^z=mtY[餛/e)rDj 6T{4ా-BH)Y_Hԕwg#qח Ho]F]_ddmx3Spy*%֦8y>4d$t_ԟh uOFV?){ ~(ׄ AO~,qA?>'AE PGN W,4v9JqtQUuD3j[_]ӇswiSSPJlΗ6f;d'6fnzw8R&R/NG괌 YZ34^v)1} &,>}f6N+ Kz;\_xJ9ՖLV~1?;@a70թ:%vjӚ DHM?ͣs}aa|Z$$|IPCOUuݰ=N 9T9B Cu94;E<IByHuqbi~iBW;E;ܳo\ }x7UtO좳6i(=h&o6bS@qHKi#Y8ΚtXRHe8~bi#i4}ikms~@kZѨe{}|>:GHi Mz}![āB9@<*q?UMR.,Q mۭ~7ИE;i4jvZޢ-Ux}up774bA:e:Bk98 8 v@ڪظ>>>>VnjB̓o@c.i#tae@i+_q@āp@@nt6zo|zyΈ֗shmtݭQũ7WǨW,4z1(CAAkcT98 8 t@zδhf}tݧ跟LaOū67MRM>cԥTH|4*B@*0ZG@-8 v8@ @ɁяM|8 67EgZM6~c;HMDH]8 8PH[<f(7!#gH'HFDN&M^ѶT"Hq@qHui;_ !]iCz֭iiP1(`@`@)yR==Gg 6>Oo.%BZj.qXAVh Ԑ>!^4d+[kғ(p"ԧ-/ubie@wGџ',ӊ ;HonGS0@頑iCxQz|1ծ<L2DbƥP }3gv :T"PHiq);(-E* uÁc(-<E]?1PE p@ڦcz>1g}9{#}1k}6s޲n4yN4b j/ u&9BW.OY鰪f4d1GTV"81"*kzjsᘈW_Gյ9p{u;dӟ@>lAN* cZV1jH#|7S랤z# S8J[W:8cW8аm7* Ufx[HAإho|o`3I+PS7QOЀϷU芖ا( Hi!׼0( ){*8t@Y81] ?SCS ճQn p`΀@gkb,ooG4" F t~ ?4ᕋ7?۫i;6}4Ay<ҕH{ҔUh2&d ;:`ا ;{K?.GZl]@R,9EoD@ir)=Nr-8wK"^4e[gm+t4 Ɂm7cLKx4pY]By:zbi>iޣ4sGh WEo^oΡ^O^DHW *#f4$e/mHZg`8p8`G89F2$cG uҁN= ?gx4G '@ynb>W4]ҼmGX[P%e_yG!Uځe-HOvpu}}2uvt,`3]tgǼ׎jPh[#? JeLl+Ǜө j#"|:F(3mov@~∨ٗk2 cTe|"k,Iwx)=etd>:q;R3%oj۟ONE^U۬@s`y(-;p$GQze.zv,`K^4Q!I=7rA8p:h[2[R\aH{ dKG#GhaWXVՑShC:nꆨh7#t}G~]\}@|DHぐR8Jhi@Ɵ $jDGK6$)D17ts) =h|bRM=[FK-@DHTEFq@W D#:U +vSRA?o: TYa x}q@q R_~ K%{NMК&Onv#vR,,R&8 8 H{L;Ё!tQZ}aDHOM\{|u:nU-0FEH`xr8 8p|9P >i>@t#4k79Jw?@zKGkzd44昧ǨajhH_ 3ߝqz|UGZq@q@8(v뇁Qij ۣ -4~1=7:j)S 6o}258 @1cԡ)i\nZ ޢ }ƭ;FFu53.yN YmuT[W㶕@<>tsߐ6I}vdWG=HR@z mh̪C=S^j!~yR<%Bz<>Sf57 7ҌSD€ĎdS@TkNhDL kZ xr$7$k\_tjLGZΐgdj?*"7.>H?9 f4U7:ԡh?*T'Ys;c]OoiM$Sb;79m'#< J Hk0w~kNQ^C׻f]gG@q#i²}4nNٷo_]E#oZzuލ 1){a@+|86H(4ю,\J+CUxLJ^/߸i>TJO83lC{oIYۦ˗`4PI* Th|]H C2!U0jOAog<~@VPʟ5/_Fu(@짭AUܡɁRթvT;iWgS̥Vo̧/lsx@jJ)QWJF}dǑ3G_`!Ԏe_Z$Li"rsn+= mzT28{7!*oiX L_= Hv3jZY0C"O \EW9kEXPx|8P ՝=wlb0ƿeGf3W?{9zgYk霛.FU͆#%i)'ooY8 MԔ7 [6Y H+P4J,@x1H܆Џ>JA"^zрa3ӎX } m_Ү}al9B7;x~ }2i>Wtatדyj,рtH _g'S@4!,uZ:p ?I{܀TGSW`ހ&&R'=k7I1تsP-_=]_pdH ͍h8ÁQ'xX}A}FdWjOj>VŁHLU34;ڎeo?p}4z*][=jyKtWߟ'fw%o@lЭ(CZdOX+e37PeS6v:Zo  tzءR@:Dwک@KԾ!Msdd5o2"թ* ةn7*cu@7u:m2LԶ>(u|JO:Y0ϫgߎʑ:}lIZ#dB9P 噚v:Jwi'=@ytMԼ]xd:k5[< i͔6qzq@(I I)\cPʾ%eR~瑣#?.]qt}NtK^шtLMMā0E 1Vhgw?\ 8P0cGiő#.,kGt7Qe;ZM-:G3λTGHy-؝8 8P"H2|5b ߧs/.f{=t9i%RG8 8 ԁbi^F&߇eHo7 ..vO>ӿ۬4*2;:jA\q@āp@@ ,k@Wwλ.+KZ:sH"f&{Rq@q@ @1? s`/kᄃ]t9]| tUON9e!-x=8 @;P  =  5:x@{t\PI^z ]z͍4S(; i?!Rtq@q@(A#CRSGNٿ =ss/s/LA;ߧN:5@iij Y4$҂c98  XI?ʜb+AicsⅨ|Cvw/%vioZhwxb`))^Vz٣S3VQҳЖ#o3uIyRo*аH]B)l B1=ҪaRiC,q @iTM MnS ǚ^SMڷWU"`,I ~S%e(=woC HR{' iX.*kzW\_3T-6eMmTGյ9ju;k_ԲooJ4fOR0 #j* ]'usDl%>O}>o#b=wҚԡi?kݠjOM.|q:,>+૷Ë0s1?dIwIOAzSN?~迿Ҙ} J!75 JS7?ySq H0k*JSʟS)d}v0LdDFqhϜ !( ! ϋƕρ`S0qR.>B ;M9CwiK[nM{==t|7qχs=^?% B}5(CɧN< zHx@j]HjEP mki4obUZ@˄#^;Kdn0 OԌ?AңoH,{ :=~U@ i>\cxw 9 u"&o^>c&8.e(?˿3:4]Hu|w鄓O7~(jZь n;QR@6N -.Aj6V}| xb#^ !޵Ǘώ*+A H?c?_\; Ȱf9訂( H )J2B>6XU@ ܃9u2:5UD`T"F@pfRb)ά DvJ>I{_!Qڐ@ʙ*eoA1L Ȋ.FjF[bߗ¶ALK~f*_ )N|DOI@׎LsX'| E2MK/bqNMV!39R̴)2NkF4iXwt|6v?NAW_,{50T#oN|Yx`tc6Ht<`ՏJTf7H]8*eB35l@e0;yQj|$Oo,I G@zV4O:L։а߾YV4ϟ谴!WCār YJ+k.TRfٲ>JH_mH?ԡ^Ao~dƛ_wj3ALM(IIq@sG*j {^.Q@=Azҩgt7}"7H%B.F8 8p:P@00Dp27O_ RO\8 8 $r@zC= }OƷOR0Mz׿E҆zЩ?RX&DuQ6q@āԁb \7Gm?~?~(k)iT4 V:)-8 Ǚ% _5?(UV~:?KitqVrq@q8tTGI7GDC~EO\v@3la]Kq@āԁRRRHìLo?ۿoꫯ??HL^;Ҵh5D3u;mȬM:Bk`qzq spⰩ!;BټqmJC*O0u'93/v9澅7R]kBL:}~+I}΃_i^A/Y^r$ Oo7ҿzSMҪa [@,HKHށܦ $bNWF\@ϻoV`]0 %,U$c(-<rxsdt1V H!o@g@jRTm&@[ v?23#lԆ!ѷ0 #*AOQm UzSl6+5ԀutOojFz7v!sjT>?w}n/hBU\ߴ~Go\o(k}um8Ahϰuhڜ1ᗊj?6efT:z㠘4IZ5z# S8J[W:8: u ā8P@ 2sVWFU1){ i\K)lPPf!S?@YW¨+\nҚhh׍Ii7.Bf}1?>̌ }kH ?*B]&Q0Wv0owC&3 Pv/ͨQ4Hf9Mx" |@v *WP.$ ONL)q}#FH)EIIiT&VڐXtĽ?lxs0xJB 6DiI4}l8 uY(WPT28{zaM@8h[!wAg4/Mhn5-e!X@UXO7ho<9@I_ZRJW_E")GCC:.94T3&q8ўϲp@ީ)3 ?:)*ɀ4@gG(iƘS slosB:ɰO |L;bqLIjl'@YnG@:Y ʍa T'!_!sZi8)$܀TGSW`ހ&^OG xr}Q巀. }Ⱥ m`Û{v4p uFW.= o7I=a){sLPpF,#6(ez܉hcDFHCh7Ӏ/mEK*M E/{ )Ce|Э(CgNFQNFDO%Bz?i9\ÍJˇ@a`NGloߠuN;T]vAu:Ko/Y1bA 2hH#o[y}V t ةng%* tëᗴ6zh&IoR_ǧӑxqH͔ͫ}l:? 8PpJH8Gw!<i!:DH ^e@a')y3R0.(e_ 2ḾRo&ij5LMMjĖ&@!Ʋ6=r>qr$TeMb}z_c.8vo<l^(+8 ǥ% ;Oo~d '|Do@H85R.Zq@;JH#{8+3;⊢1f&3ę$.M$D?k⠙M0& V4 &;4MB{sԹ/|޺UmK/Sߠ^L^psi3I'Vv@US<9jH @(hs H;"ktq7⿻.]IϽ0N;[[dTܯy# P IR ]NJwo;WфIP); EM^[(4P @(ST驧Eo=7U~܇wשy"BP @(&H%~ֹgoUTOzHvkЯq?]b0/ a{DH䵅BC(:IS V)W%!jg)lHGy̅&VPL+ũOi H8@_|!l <یwSE77_Sߥ .46 -:e O/}_'(EҸ]A(PZ pbpy{Y֥斿VޚR} TtRwߞN^;6 Ae +"AY(b jfrhm۫}&eY;GUT_:kyiYc\ LTR7sV|;K(G_Ֆv_rUVAK.(ylH>Tr&]}y^sicYDٴV(`Dnq Si:t_mWKV7/_3G˦JHJ"]<ޙ>SDFQ>ޘ:._4"܌MuΪ>A(ҪH0V 6d4=D?LM ;}8ei]#7ӕrL4B@FW|Wu蕿 ln,f+BC?Yx̮+G'BTۍ}]ϖGOaFw=ju}dʓI%Lz>otK7ߡ~q"fQIКUS(:(o<8 @֯*kSFD 4jHJ)No=?Ms@qx"z+(0fS":X/{6UQTzտR\6ȩ'·/ELWxM/i k(`B6pҩW1W_G r9gtt-BIٰ/mG3љaҨptYxFp H<̌੼JK!r$Q±мͽgHӠ9訄U7+@ʰ'-Rn5wOS<]9H?o}j8y ٽGр+OK=EҤoH @FK}GHڧ*({&RWIwu&{u&kހ&=bXv?KZӴ~UEe1oi6A^oϦWXL^uw˟ Ui{8 >ңmO/ML_z]v\o &ig5WP\3CtTOv(C(P KAM":Z$"do~nMz>(B 4٬)hxEt8:hϞypNvW9}f+[xD &E؉nxdΛG(+E~uvȗ ngPQb6˃z8Cr iQ(Qb4Y XGK>@&mN_|C=~Yrit)]SON=FCD]v?442L&\Yee?P @(H%t!4駩 ' ;Q㻜L#F;Q4)ֲom P ĩ@jth(?:e#}e\aNPiP @rT @z!@ڡ $iRC!P @(@:T4K Ytzj P @((7 >H^6g\TAݚN͑_(P U @*G? /4&C&ОW_'|Kc韼~"We~ bW@;7w鳅@((R yHy99 '"5uqPSn)б}-K]~rTQAl<)` C@(@*GsϿHt=S?z:p)2R䈑L0"B1SuDvf HVYધ+}S%2P #>V.ʫ3zY(=13i? HchT?ia 9tU>DoN@jn`/}iD P @(VR ǴH_$ײ?ytgFSgtJMN@j.*;y'&}HStK嬘HF6#˨*wGIc"U(*J m/tEJ(=sdtX:.'H׍ 4"~T*>&CZ=QOX%yP [Ti'1W^_‹ҵl/VK*,rS&3BUɈz)T߹`%' 5䉁jYG}qkgP @b*J =^_eWy_:l?zXrR|@|4P6Qu(_12(I6fw9^ ^7;W{i[A @(КH%pҩk7.&߫7B9)!5| lP @(@T S@z1bnP @֬@*T5_ :%t){9y}RU4|(P @(XTi'1 WЅ{Er>ғOjrR5٫ipQ(P J L=Y_НUUTѾҤtĀnSf}(-jm QF(Pm+P $tf@z1u'L39N?:YLFLhb-2Od׶]P @(ڊҁH @^H<zb FyES -03!BV.) @(@)tHk"VIiS@Hn@[[H>PB;v>:;ßA;t HsK tҾc]֮_G2 'P Jчf#Fx(bWUoCKt^s; k{R'7p,Ї5 忰 H1 %ҽ{ zgCl@ H9j(F{;%$"P?H,8=Ȩ`I l>--vlɣ[C8^BSѿ*~i`>kew:/1~vRGs1܀4tiQR vI*Pr ՠ4!=蠃驱$V ukg+,%tuUDHt֝ pcEHf{ 0Vr` ѣ&j8Y8|6}"9t Mz'cK@N?DkdϿ׃/Q$[*㾤>_q:nO Aǵ/b/}E&Ls}E!bH[`As@GhF1$2W )CXa5G H3f_S+C C"Z\,H)?f^|EDUkԣ|Nݴ (Z(#6>[#lj(4%ucD/h()"*A3il(^R@Z|рԨR{_qR/} RH4f -T|@%PP@}.TܴOii-)APZ;V5[U%uQގ)I/ 8Mn}==#* U$+ch&{ dl:y2=ZXL^Xd%ǡ% |/:}B?f5;tQ>/duP yJ HukQ۸o?jzj\}HՔOX "ڔ%jLpjKiZP8mZ;}L4l)bjڡR@YXoI4gӲǔT.gm{g8qڧ,j騗 7}Ơ qpo۪֮}47nY7xֻ ң@)ɞsRr@>Qj')7>iI}G4=@(>%xXƴOȈD@$J uN@{$VglX)R]`(@ 6L9A¾P 1J ztsAM ٽG)"/P @(Zv@Hwv&jhh of%èHhԿ+}}W_O/OyC4 t2!m^"@(Z; eիu]Z=+UW#<"A5Q =siOnXE~vR=űg-f*Mɤ+;aV}MVtLmJ&fK@ljm&#ֿg'wɿ9 g~Ld*۔>zV-BzR~hРA%!#gt?ޙpEKzх. HsKK@wQ_bTN6gחiuۘ\ޔ6ֵSXoֲZ4PR_XXL3HD>~4a;wnFy>J7^)7+!=l?>we(Lߘ:.wl@+4$si">&D*+`x- Nt32*"x`䢫ٵ͖eA9ziˋihySsM릻xNh}}/{!ʿtv_+#й+7~vRC9 y( ]ĭTˠP ( ݶmܹz I,08v=z~?ne^]K .M }h*"ur>A!cEHMBgTAʷի|˟/h$-}"9Xv e՟ }s?ÕEƦoD?dϿٿ XyiGBak9CT@imm-ȧnB_T0<#'w=S jz~x]?G7}H_}HϻWT/*SDR+Ǹ4׳ VӥB@%zhO6CIFA=@m:D M)-NJffY4"36f/K_;-ȴ4=?>_H @;rtT53lzhb@˄Ny-ο?#hk KRKNzf{!ŅX&"m.R=9il@qz<.!qaP[oKߘPyjA/U@)7A(C*O:'2zo}Ut!vE/ 2!*!ס[cjV#܄6zsBFdslAV^&`]oK6XCg EW)l79&{H`X=IDATyo<[e*/:A'73; }l{zqDKo\N_.+6=Xn2ˆ2~w5#BZ^Ds[8m6[͙ʟiNS0ԴCUU܏S]fhAG3O更>%=ց]&l)4DWּv7Udܦ?]Ѫ}4W|~7`4'(кP@^kݑGӳϿHՃs>-黋5Z'c-( Fi^>LBڂ H,ZH#"-I%DO: :k7:it|GH0h| >dO}ڣ)Ciraqԡ .N]N#GSҵkR[f )[~=͜9SK6lŜʏ|>I (H:S}IiߑЉw:?9:tH͛%nڴIvU۸|\. |>lٲLI9N`bml4RcȣJ0==1IjߡcLsv֭Lz'+dj b,3RlSv5ȕv#F_ 'A;|>HdNcR VaRSJ_i?^QH8iLiO!0Ԑi\jXÇ -a'mJ DogQF|>I3+0}iR!@J M<^)Ci@`kMMhc(zX;%r{scFnQ)n>I|& >0_qW^?Ciڀt@vb|9I3K=GH?( FuF M~k#7޿?==nl7?+r{j-[ #2}@i݉~ J!҃9T6ٷfce}H!z*ڵ+]uU4f_@˺cJW)SdHt ׯ 0 ;'1 }HH9]DGukn>v8:8wT6F) ѳgOݻ7 4&O HkDqݺrjZlE$c@TjG=d2Z"lJ)ތ3N&=z5a4i4iRe9 =rcwS>ucŴO}$ֹ2ȇGٻEHoFzG7q\sZ3Zhi$[~cH>3?t1͝;__ȸ٢|}@W^);wn#@zhsSSSĤOrR,@ʃ{T!Ch龀tm2:x2?a$[v=:t(b<|'sЬYhr)"| QP@Z%ʡi /!*,!=VL niNv1"jz)ײwIAiuu/ 徘˗ ќ9"k.͙3>/\Pnz>a>M⭻ߺw/|>H( V贎͠ԴmnCЖ{hkKf[)/:~d:%t΅ߠs63Ί-Bf 7ɈΖjWX%ssc#2-^ [qoxPA:BI@9CSCZm.vm#!v9+MW%ߦoT/EϏHgv;:=oWsrƌhڴo( zhER)>@fuHm_=XL幟VCК{$O驧E1?|?_M^B30V/"N8Q4"͛$TnGg |>sRt]ż-b|NZVj&u.DMkw܇^~Łԉ;mc,X zJLIUsԩSidV ڊk~ @ɯGr-_b4Oђi:"j*~%iWП~xm^@;G 5U8.' m |>2˒G5Ꮩ/ȋ/Do ŵ"ZZ' sҳ3@w LTM^;8s0h|@0 '!] "ҥ;LJZPnvr?TKia߶ӼF]|m]wveK2 be]ϤD4~x?ُwa/)|>D_>#(jbP '*}z*/t?O?_컟wamm Q|>}`t>* snnܙz&B={_I]MoHMOH>@7"|>H>Vj"Vj*Vj& e-VjWj:s{]D/6ɕNx+[|>%|nZ+l:a{Ķ <~9:ntR׳3x-4)ֲ|>L(e~) ^.a{@z話}.ԡ񄓨SS.'"B=|>@$WҖ l ) =hc7}l:4'S#oHxC|>P:-t!4jh:p|M:6:t H1nz&MM`ݺubXXI@(h ݻ6nH[n:so3+Hy0l[C*"> #GC?mw${w +A `Q /P @h Ho05O[ZhnaL([AL#GCk@!22QoذV\ +h-P @((мմ-aG m!H>ct\h@ʡ` ޽VD @(@wiZVohԔ$]GDv>+-Rh ZI*r,duUfeUzd$di{VTˏ~_5TSKV&~_Ab˯a2Y6R]w kٷвub-]ײ_L M>I fb8^j --ReHH C+߆22v#hm?qU@J|Z}HH 3k.D*.Zb>[/gњet qc'JNM[D|̭41? ʞ7wlCϋȣ-W\cN?$@VQ;v,44/c7iw"7Zl5h͏tL8F|Ja2yF`ϓU6 jBk#|I`]ԇ>IVobT:EH%Oa3e$]85[u>4WXگ/w LlX yc}:Un{T 7qꩅmsH7QM{-H[Dʝ;KԯK\rY?zInIs!s=Ⱦt&ISey!st|L>~;Df#Ov%?rL5|^+`p`/Z#},SKfA3IM;T%i4Y&X:0EDGiYcJ*35NM(-mQ7A7}eyr 7} PTR!`9 Jd6+(8+4WawL=[ק%QlŏnF#-Big<)*ز6׷ЖRXiX2$#ܟrǎ-xy-9j[2^| e|}9<*9w]z|tݹjqyzX9Ϝ{ -[I]q# uP @5퓿fs٦;-XZDqm IQIe? }Tzu =#b_왪o.EQ01~^?g J?E h9o hVYѹ70boPֿܜ7,vNή[[!/TS72HPtV,ƐIT@zR:)@>k{Ŷ;L ա4CHlMMM^X1d巩Ac3h2hp \c0oΟ曵4o"9FOfzQ߲^2!BmiB((oJ2|@ QOzgt֭7sn}A5K/}>rcl1}iy0{(I(P* / Fy}l@qDH׮]+Gs-[>|R鹲)4iB((oJ H;EHHҺ:ڸaR+a P @(Pd@zh߻ q{4. e!J׮YCܟV< I\H @(@y+P* 4PP# 8' ;iTdTcq;d'q7'w `ڧrP M H ,t(; 4!alY+O,eJɷDPkXVqgqb&xWD./y/y/+m (rJbb]n,މiݠWotsYHkͧP@kǼY&w)CO&MD#F(#Gm_^zϟ/ٓZnPhFPHg(zb.aD{ C MQH p&A.^L#V -l40l-H Hҩˁ͋ x"^Z14z}rشWWFQݴ? ^\ߥaRM6Q %xv:bKG~+[>tˡ>5퓘A9kRWfY -C*`y!':@.'UB_[=f2i!<R/}Ҙ^Cח̯Kz}He| Çhcc7 @k֮u>ŋҰ'RRU Wa -:D (xGOu&{EotmנI6?D5Ho]}-udNw`]o[6ZTd_Ч]fxHc:_?ח;fO]ވRWv|p߭< /,&9hS] sg=QGk֬>[M˖& t͚={C!2|\E=+rdER:9y9R5[e/hƳ iD_> >gީ|zWA:4сY٘њZljZt-\[H ͘-X@fFAH}̚cN $4p8,H(@ 9=OC XJI@ H.9NP HS]=3sY(P @ @,eMܟt1%ڰa}9 }HêH+D`>}Җ=th>UwIOGSLٻKsFC1)nr@8R4كW Ht;m׭['Vo,nB>|MJMZ&OK@ӣ>J۶m/"J( wZTg`ŊHbd[r>2RoC2V麔_LKd_vP^^7;_;`9r4rcq; >Wzڴhkk=t8=i7,Br/RĀTh]3?ō˝8z_B桔MsarH#&l.8,9;Jkjia_@ϝC[{Y紝qQR6HK?q =p!g,wt7No^]-N -X;\}4@Nt PAu |H8^H 3 &4}$dj߽iDHͮ> 5UAn|>; u*' )M?Xg0QCZz6,Ijwq5tВiʲ?YQN$UM?P*l/,3mhY -PR7J|>H@ܜњuk m޼UR ̝/4͡g~DN{H@: +5w @S0Xo41 N0ʃ;C B (Et > HǏO6msgFv(5kEimJ5 2*I3.v4in@x(N|@oIJ ޯ1;顇8U %Kwē{E:PL̇;t!ō?|>HƍEV9]G\羟T^bGIWig'Jj|,)n|x@| &!ekcN `ڒ  6N ,>y؜~|<L>/np [jOOc%H~]%&~)_!2)6yxE?V}|ORf^o(W)G_*|?K_[J OeW47 ek0ʶOx'/ZT5ݣ>mx?V_?nr*zÔK;Z}/new/}G?h cN@Zl&+/rp-n?8/K72ë8}7VZ>NKk2}er#A/DƹpE\VJvLf"F|@MÉ8v-šWTSzas>Mj[U_NzCh^k+;j2 6(̮kO˿|8B)/|>Hy&e!B}ORڕAU+|nzɂ{!И—[0HHͨ@ԣ1N&; $^@*mjejb]TҮN/}G;qA"v3B8^zՏ+^'>NߜA(iRa&!m=Zn@%D]@@s{ߢ4a H H  / ukW Lhk3/zFM$ԫ B =O)pO)4鳦rjj4F"*$[Чl ܩmy. q/% ud)`"`"`vnMޮ95[ rN>LVK? ^k* utƷַ#ly$ zQi&}ϛ\50+HnpiߛàΟe5O얠. @mV^uT>&l@tTWK<<5奔w7a]lV4'9 ,m5uè>?wiE2ɾ^Y@Z"`sC>h>kڧL3~JC^} \UDH$@*#I=dnRԱ"Ai.IֲoGGӶtKAM0`RH

&TaZL }io˯xNogg?t(P 0`JH͘546_|xNxn0QCG|>TaZɌ_ jjllX& Si9N@#@Ya"5)>cq; >Wz)7sdԄ۷իiѢEdiovppz`p3|>g6(@K]xйsJϼ&wJ))b |>(H=ײG1kX e]tOiYm}L(z@uѭ<<ڌHX51yJpTmib0ÇoDnOjN5}2_>|K՝k1R\ʏid VPs}SX^7v'/F24ٷ8 hi^Y䄶lYmWMH)5"-R~mAֲGحՁ&y=sR$Wҡ*nց+E k֬&uSDsZ&fN+' 1#NB: Q4nPsH}DNOK?4][܌^ oEm֬wz6 [\ZՌr鯗٩2c^vK9+ǜqiVcyO?λ ^Տ4 YoeWsv+~S1w^ڸq#mݺ꨾bmfA \n!mڽ`:H }^% !? VCDƐNyh?,kv"Dtɇy!b0LA*7^R UZ0װ } T ;"fϟGݿ`y+$uueץ?G ARf|y\^|˩wTJ Kfl/)orj{OTFEP 3:d9 QԮ !E Mx+|$Ԅ?"x@?,}T!U>(]TҮ׮"x ,)Zfvra?xU?@mVq~zNy@˄0tއ??0LSplP |))J て?؜-J]@@jDxT4LAvAF__@׮峉Lh롟k{O@i\G$ N/9n B ܏#a)HmŮɞ=~ϪMaq"p8Ou6צ6n#EHUѡIOdAl^~Lokw0udNw|zS@TnMޞMF]]Fr)&{C_SzrO?# 29&0X M!=g GI3RuS-Ӽnl lV@`4ЩiߛJ&bga㍾|fImj7n;eP[pn}ؤ=;lK<<5奔wA;j٬LJiOr?Gv0s[T[+OZu(~L- Nv>w#6iU!ELƍ߃GN[mk[l|MIow>g 44֦2HޜΜ9HϘ&=ienI/ s8szk2?"Bڦ00= Jt(@J  Gۣ>=ܘXN)C)7sR5ՙdzn\x.@R M ӓ_ jBg5ws:x~CwA|>4={dT4=ܘXN4cGԔ> 8>iRhO ӕ_ ex|ddm|<FyDHuƒZHKztc" ~!2Ƈ>J o>ҡ@+Qin1>t@UD]SUyU%tҕ˭~&̨|)iRJ-@:jZ8rS@goFP1)O,>P/%R gP@**Ā"g.w@\4)Rҡ qJthHX4HY5Si1F8>PV>,mu28eEYkkKT^6 y|(+Uϻ5=(63Gx3F j׀C X!U ؿ9$[6/ "nN/C-P --LqrRƣTmS`)!#pG2P+1<&|y8 ~;  6sJԾ{yt]2aRO^s< :?-@1B ӓFrz@ ؈󁅴Oe6Q:H-M"jr6EkIGHft}݁;\d׉C;/(wiRؤGI# J!MXI"B P(KP٧ e3Y'x @kČ@Z[Da3(|!H#2!eU 9T53) Z!0/Q!5kDͩ9hsR`\}3@i 5-l*D4U0ڕn@08 H'w&jhh16}7O9x`>lzHFǵ B+ fQ!mCDPJn>.ebLTBo:zehP٬IKn~ tJ30;}sZ>6[0jeW?Jmf|k HD{Eݻw֣G+eG7*(A9dC}@#|>/vMի!k_~4h ziF㌐˓sQi8XHK{ᷥ _=07JXK*biǭj0`M0ΝQnzO"BԽ)KOs m{4|>H@m6ڹsk&GB9":i$ z_RDH#^9 M 7j |>t zԭZZZ9ePW_}ؤ#BZT!RJq9w| >)GGU3<æ1vP {p(47ܨQ/|>P Ё SECFHHM(UF#7RpN|>H@T,(Fv:i:oQ^|>pzm H(iҵkR[f )[~=͜9S·K6lŜ%]_|s 6PfW]9S<\̻eJmrk2fdM&[h w}Y'ug|QWIjKkV V ^81ϡN_*|qUR˰3^Ai@ݼyM6б]4np9qؖ-[4NNwֈ"z^9t|_{?HM(MHnJaL/'x";VH(FߊM ڹF탧bp;v2Q5 RN@&zǤ)^xvOKt@| h/n^ILcTԔn_5|p/]~ q ۷34ѨQd0HE@?jU'rOc=xvOKt@| h jƉrljT(`yiSSs6X/a/1^QYIUw)äaݺFFFR~K63;1i۟Dž |>P.>G jr j!GxSThnh>v}{m(cxzz8o~~Wqj-[ݻCr:w -Q2ʱRnjٳ'ݛ D'O5"nzZr5-["1(*@æ-Y|>[2 ѣm„ 4i$ HA;bTt7Q | m>o jrlTƍ7H<曾#k|N˗F- eogR6}>Oܹe>^yr:si1#qG̓ :iAQMraC ӧҭ[hluС ?r{O.Y>Q)weZkbF㎘'Ǎ?=7~>H( ۂ*J 徃 J})G/_I ,9s慲ի\3g}^p6}>a>MIDH9ZF!-f=yR<@z|@(P~!ݰq\~l |aavŊU>I[LZxI@!!zƏ@]i~[P@ecS Ns16=ۻ3iA3~{-\(v ͬr($#qG̓  HF(ǖHe.|'~e8qhFD7S9h(Gg'eiڧbD㎘'Ǎ?=7~>H`R1_)r~3ϱ`9=SO=U6sԩS5r{iZ^h9e51~YE NpN(gcK!-Χ#?B/Q'cD}A/Ft<;MEB[|X>ւ)}@c#BuJ4 H[k=JtT7 ׹@| ->T_0lA-UYJ CkP*s8"iO#htewa>@T5GiPo|>$RiB|>`@DAM\|>)7D|>R)|>XR ->R)>@I}@ ,m|fQw;|>R)|>1xio˯jz.~kС4p@aY Xů~6v $8o|7ޢ3?F/`Y Xօ~}Qڶm|`]X/ Nɰy.Q&:p577ò  ^7~FXVփua}4@;IPB#Bg]X/fz0Z !@I:o2->P> u R644 X(@Y쫯*v4jjw1{q,sߘQC|4> mk㧼aK_ eA)7i?}'||@Sڼ!teCh^e HsP*NDH& >| q ]?tto4u}W dx "o&ė]>_472X0MO)@dt={hzߟjtǎy[h[8%9 }TvX U>iy=wDX@Yg3EMU* HMU4BZ[[Km6=ػ7=8>VU4 L>xK>zxuxECc)C>QTt}>f >]HHi޳zg󲐙ۮ)-韦M ---f͚6w>4OZcPE1FSA}dۿ;fv꣧꿟؇u dES|>!HHs2\r?RF{`Z4 5Q#qΧHWZE;NizRP4 lSnxb*H-RDԄ٠@rJnomzaT }[WwοR|RD8|>)TLٟTk>,G3jM 7+0 w+VbSXD-Zz#ߧG_|MnwcttH=_#f1uA=nD7o8|>P>(6s3?Sn\Rb nզ6fz=@l2PMt.:護eu#DmviT)`0 OHHR>nɒ%0CR܈i<@D ..Fy#fZMMk\z.06l WiZ`,>^cR@l` dؿ^?|u4cGL<р`]X/3mڴIjz.Rh`' Tؿu=PO@WxKFр`]!Cd$a Xů~Xq8i}5)>/ź_پR`q8Ҁ|>&TUUTQP#c?Aǵ"|>|R8P$zx+|Ї@ |>PROp:~[5|>ZHR|>%)֋:FHR|>%)ƄV R)>@I}@ ,⭷Q|>?_CZ |4>оCGة3u|‰t]sϧˮ6]M?Mtí?^ŀob{ 0Fdߵϼ~9p0ⷃ{ӯ˜+l0^eǮ |.| ~&+g7κpo2se/|.>'_ϯ }yGտ&8|7ם2֕Mp$O2E^_ Jy m8GH+ǩ_(fR'ap=ē$mn#wo*=9b$Az.Dz~O7}c.GQny=8_3T7ڿ׸ό}RsI uW|>7e40a[4u4sΧ`rڼv}5a{ m-vgY8_ю=۹Oe<| g_a_2k_|); >?p #lw֚&aYl]7}߮E3VOތOwgl[a?mQkmQ >q8NX>i{Hoնzdmwojwu$~/mb۹6*C5 >oرGOϷ_Eveub &B6a{q@¾WJQ1E]гJ~GSvX(z9J>13O<җ#>: :ұ;q:x<%a:@Nֱs:߅ڪҮ.;b3M$W~g54{{}"C{1vy>4SZ*{Ygz/ˏ_uͪsq>8\.U"ڰNKQ8Hy {K'igK\7SCѣVӤGD'";5V/ V#l;6;@j72qRgMDk2s>! Juд_}hFa E֬mkC5Y&oE&a}.lUK }V4 kl -dnZX>MO69w izago7ifYLjiq]CX}-khFZQlo%ubFqL#Hmvь4mNzwY]&Q w҇khfY.jQN.ff+6{пAzQؗӯȰDg̘AUUU$xN=4~%RuOP Uy|n(A~r#31T=`@M}܀ O\rKǏVNuTvp*8~Tz7ˢ˚A ^w}# FyZӁ Ju 0 I)Cg@GHPbSP" 9 v0 bUQҐ@h QTBi}Hno H7 w|-sm4ӭ4ufzkfzs&[$\D76 neMJzI@^hI,5GJ4g>|xH>Pz衇P6J~4)(p+Iɮ~&ځiP -({Cqoӽu%թH5Tj/E}#9_5@4d =ߢ]l Hg#hFʖ=&DtgsA~@R4/!km" 笣Z+ٟm=iH?VK5(0d@Fh1t@ڤ5˂Xwq2^4rHfH)7QǴ9j4%j#E 6bb{Nu_uZ~}!ʽ<~e#M (>5k?QUVtr~{z};z4荩Ҵh%fN1pă82f7`&ޮ~S8F1xibPoW8OQD Zʃڞ3miɚ&O~nvf6hx`S~xp_SlC زsĶC |.B-b -qn ׋纚FZ>Kۅ~'>QseoNPz8CCC;\t8B ;:w9N֝ι]tٕTxtmU*I< x-nf7{gп5c׋sp{f;&vawSaq|]m|y淯Ѐu|^/κpO-)͆}kqEz sX yn1OnkA?ӟ6uG?1u-?Y.~߹N4,}ಲrYև5ŭn+mg9sӺ>~^IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/figures/repository-menu.png0000644000000000000000000004047614023111777022336 0ustar00rootrootPNG  IHDRsbKGDC pHYs+ IDATx^E< )n|<2؍?)̛k*_S| q3~6"B'whU_GQakuW[l{Ez $ hi"/(0y6\gbNԴwK=)Nvz6GZ7{Ob^ZK5_GzkQxsV;}OTv&]vlCۉm/m*Fg&xjrԬ\r_c&iI1)Z>L3 F u =x"5ZH2j`x| 4^xvU:ڈaI$Sh'aƠ2L{hv$#,f}~ @7o\r39rA K"!0ɳ˹r[>n)??$ ;\ [D5RJsf);ZUсCo3:tou*>^B0<:h@" ,0hxw]v7]K/>9q{1yu*:X_V<"{κcOHnk9;M+9*a\Č֩Iht j@ky iYN'gv>4焎Ʃٟ3kA dpEֺyMCTNɍL's:A˲\l"ZoAELf-C;l4}!чYJpÝ^hx⩌WQ`f ;];wvlYyvE u91khnIuu3Q$] [uFuu֎>-WGN>jZQ!.CP'wl?4?TQzukZOĬu)BDCv6sBx\ |:57ca…ZwՎ;YɢOJK_Ui}˼No/`GA7RWFJD-Cey2+ 䑥GX9n%j}vd`|:ԧGz f8kN:艘zT7e?Q{Qy'1G@Fk^WOhmK,#pUszACWiU)֪Z==78*J*jfY[VTՌYC:տ#[i 蚽BGѠrk ~uFi|FfjY(~0=@'oΌ^?zs٘ůl(<۶<}3OuCUߎ3IgIft^`WJEoGC{DҳJJWGOZ^@ix(xfASʊܜaꑙ NrxNVZlMma+@Ȁ1:Gl%Ϗ=YwnϜ +@Ȁ1:֌9 ې6YK 2uxLicO&qWcV^B (:K0@"ڀ9&m0͎ z":6`^m4`ցEA" @g%_֨Я#_(j@"ڀʼnzFsvc(`!@C;vF7꺡x߷hX?0?ΥSӝBq_!V.4Z/Zg7Ժ(x@"0pScMeATE-9k+dv::_l ?0oS5sv057y60 ql+^Smczy겷lBN!.)R& "Պ'Z9e_Mq5B1AP7ƺ¤)59 4Q: iNzZWZTy:r/KbꚚܼL.;pMԨ7lؓ'O0.Mlq-.6P?ьWQ:m133M Һ#@{1Ү}hOR+"OEL3lyvw+NFC/)[џ 'a̼ygxF;EW8 ԝ)>u*K ,ޣFW0`uhhΖgx^pEzO3>?s\h!㔏|iU!OԵLu f3'Rs׺I1<6ΧkVK?ъ+|=d5/|eaЋP7Ul^Xhg~\X~e7rY?Ҝ`+JʋtmFș5kVt^'M{) ^,Af_Tdm+J_]YW 3 ?ZOOO΍G#S S1X LcO^gҽbxͷz!L?2}dj]F.&ศ Vah@h]̀xm>䓯zرcVa 2L6`@=ާO9Æ *^Bh'֣WSY&+z&OZ 2ЀցE7V*YtSS] Du`|mũSgJ6(MWSθ))0@"ڀsb|u{ R(^. z":6.6okO\֩^Krt9:>5`ә}ųK:(X.u>Z],O 7IWε1חFѺ0lM#;*V쪯t xK=>oņ쳕ojjRQL"|hXun/+LU3hNSKSƕe}ux[{E]13S0,;lz&ឣ @"pEy9{%7;x!msˤ[{FquLsUi]̨߳7EO7knuNs_o>u6WfjGv+Ro/Р+vS <{M].6MN[SYTחڴ?}}*c>=T43ZȔ[r1=t[S_r{*K2ּ_U^D zϭ [;[:.Q]xUw? ,:ԬC6ܺ{!+ .GO㿈Okl]BtĢU֌NҊc"  3ټ4 _ޚ /NHm}hBM[՘lG/=S%,yp|/gF7+</~o@hʷTwKl\cE(*ۖ;P7TAWneNG֛ ~?tz=pwb!O'f*}8wy3/P)rgg1o w>RtP+&z"zZgvCgjjrkN֬]'c,˒?*x+"s`7#+ƺ|O, RPP"H:6^C}`|:G{)24N)*A]ֿ;hs+GGxyUSqjYp* d6`?@=Z/:32~5%ᘄu;(MO&H::B7:L<=7Of8V:k1w DjA.'Sc.#IBӫצygJ-nNO:!{g|1zZ.k|ùqӭN_Z z R2ť%xn?uk W4Li~%Dt&%gwssg\MNfLL3VHIN9?!@+ 5 xgγS.4VhṊ:hk]ZeLaIZ˭M_6f/_y2IΏKwAJ32 [g*7#oTy=KzP(*1&QNuѽC `::]/V}sN8:Stpo3&d/7W>=S5&aCE )\QW4ow 'q!hfLݏLr!e\~@U{P5U!d7ұsrӐj:}Mu@|FXAHlz_zt)0+"""W_ȅE.odX8ѡ #ӔgkJ.D=H.!%ʔo+ο0cx 6VkdKSSRhX,Za4M㯣HیG^=uOw6t'j=s: :vLNE4*F"hގw&"Y]LUQs~a:T{\khx IDATj]]}p{c St\ޯNG]\^@Pz$6Qs fĝ_}GvA\rܻJmmm=j+'Ы%[Ξ /F[G_ۛ36T G|/iLNmg|uoEp[ hXܜоek}H/F3oFg O+@[`7:7'Y8͝NM_8X.h' ,0<:h@"   @Z/ k@pykkkN:x!C{gϞ7o|z]u744p*9rI,Xf͚M69M@:͘ɓ-Zs'N9s&׌9sptN, hX,YO?ݼy37N hX%sMz{75E~ 0Ă\/#@Lj=m z=:DuuN+goܶ6iAX ZO):N9YXDOʕ\a(,O`1u֝MͧLxܶފq;}\*-TԺ*{ۮ\'< (W;:pγaW 5'tb"ZgX7"n4À >oF=S0rR"&h䚦6i/` 1eGOLnBu+SLD#SUvKٛ)͕3J`{ &>72~ϥO^)&bMib\1=ɕui{7:Č*N팼[4<\"Z @ ^X~ K3h\&Gvzr#`I~R4-orF [hO؋_u77`w1Z5@g'Mo~=?~{Ҿ>S7q̉ё']en@֖?w^;j≛>oxzgS#sA <@owǩh:?!w[]i%]@ ,@Ă)EqS c": :0@u`%uց ::ZVZC)H/ZC[u uHx@@Buz+'j Fݗ?#w~cZC(3Oaz6'c&t#uH8"B:c&t#uH8NRZ@CZIJ5#ӫdvo O)Pk >' :$ZWQz,F Ԋl\ȕ3G Edֻ/:$ZhV%5ޓCXW6uYdh{@¦u{-֤o{#ZGֻ7:$ZWړ%KAZwgRI3-Lfdh@ªujޛ$ֲ@V˻=NHvŭɈ:] !:]ց ::ZVZ@J@hX h+@u`%uց ::ZVZtK.h]uB ZCjݨ Z@J@hX h+@u`%uց ::$Zw"$lF]d=+=P0 %E=Rx oY :$Z\6CuNydd8(]zSv9-~?KZS^zs:oa/zRg]6u,NNk*Lu$}qPHl񩧬PL<vr#E<T'եgK}1I.@ ZWϝ}䖑 SߔёsؤG:ZL:GicrO+ u62蹄^ЎV-SG$+KW Udꠑ :lC΂qP6`M_uza:G.ԑ Zx]6KR=Y^7ҺT]Q[YF@0j]kzCTY1@)M}hM/)r#Q18[I?A~j]CCr&OZz:$ZWHmx>ߣg=t]zA~nsXԃtk|dj'N.O֙0n ֻiu`%uH:,:ZVZ@J@hX h+@u`%uց ::ZVZ@J@z k@pAxZ @hX h+@u`%u1zaaall]_/jɗw[PP,,@tаows-}￿o߾̍?zpw{jkk]0@tԙnx?߸3{F1 ZaZh}wQ/ZpV.y ML>gkEDSuhoV:|`NA&gvE;vjfrhk{$ Ѻc_-jْ})iI9gN:+j_vki] @ :Z(_󍛾ݰiV^kW}q&dž-oGkfl67v-z=:DGMMM۶oݴy㊕˾ݰ~Vm6Y͆nW:$ZWXк$zygӳhH@ph[緅L@\4.xhH@pj]LͼjC@hNGaRFlIq[z:$ZQX) yUYہ !:]ց ::ZVZ@J@hX h+@u`%uց ::ZVZtK.h]uB ZCjݨ Z@J@hX h+@u`%uց ::$O@kѲ3|h=%ԧT@Pk!q.|Lw6ӽf< Q:tIvÛ)Y*-GeYJŹ" T@0h]9ΙPm)R38^hYRrqSPN'gxP)TAhG.:Cu`hҰq0WA).ZZst׈kZ׉#:-xA% Z:$ZMu('+V"5zs|:;#I:3Y&}I`Tܔ@aZA.zB1LY$OK.VVGzR1yd)yP;$NuHx~]k@u`%uZZ@J@hX h+@u`%uց ::ZVZ@J@h/"`_QH=(}Gw~auH.9m`k]":hݦbu :$ZYuuPk=%ԧ ֺZv"=۔36Բp%/WЅ'>l}jAJzA aкr,٣>~l8ʴ<%e:kѓATl(+ES:* , GTjUCs Vo U ի Ulk!uN   έCxZ^>i]qai3*Ud_@ !:?nLv=mLz2DvI7uird'>L샊h=@0hEHFt)":=mBѓ8 baI0K)|B5wHh  z@h]hG@u  ց ::ZVZ@J@hX h+@u`%uց ]B ZCjеZ7*@0 ::ZVZ@J@hX h֝}:euu2f~U4 ib ?"ku&ukJDߖs}މ56<ڿ[_nn}Aϔ:zze3/'핓R->@q}U/in6<E`JGF4OH:\VhWZl.Gu֋՞yA Û[h+M3Twew4y=W*ƏG,UT6jByXoX\2k)R?t}Euw]_>ew]ҁ"ՊS:FZϚS8H_i]AQ?fByJAc?wb0Ȟu)_r^"B\2_ zO)ȴpMQKKbɷu?R,)xQB{">2+Zs0O?-2QR){@@ϼ'ZhOPk[zzL~~:KI1i #2:-x@Ѻ׍.Uל Bu)*hRhO'_;9V_}]a/F">h%/ ӓ0E1|tf_sXٍp0va8c\Sl@4^)Å)k+[WTʢߪS55˂⊹ EȫKybaj*G,|AhF)<U~kq*Zhi2_/`_T") :D0II3N Jyb"?:KK3*I^lk8ht[u8*˲Ve}cTZZu@ ,@hX h+@u`%uց ::ZVZhi 2RS ZaZhiO>L2m uҺxXR;[8&{a/ _(*OP:'cDݻF& ,R6H!ZQT]uݞ{Ɗ\-p-,aj=㏧8'O90rM#W{kO^&u4u:%olpR uS{.?5bӠ9}g$=8iF/|?&rw_\0>[onuҞ[owj/@-y\^@|]i8e}uPy\_S\P :?Ɉ{}FD?7r:,f̸7 jʟ.oO>w|d*aQ/ҨcEaS:1㸲}@Z?z޶Ow/}؃o-|q'u~_z $䧟V.oRڥ)zlB=Y0jPg e\hG=uwG'oڸx:Nސ;fS.={'SԌrvuECÛYcFu2B aj6??ŗc>{ߏo<>r9}b^y+][]*3"Q=AH&ULҵ/xs4m+hy\y2* @/8S{~{iѫS~䷜1~=z4/5ޥs$iehqrf9LT1ڤ\Z_ʕd1qctz :?G:Ͽ^NA>3S5/>ϑa'8:D?~sc|:'~+:?1uu+kM+@ oUSSl~IDAT7F#F,[K11Ժt^ց ::ZVZZ@렗^[X hf"ϝ;lٲ  OVEǏsb˖-+WSpjz6̵Vh6?qWM O=IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/figures/revdetails-tasktab.png0000644000000000000000000003203214023111777022733 0ustar00rootrootPNG  IHDR OAbKGDC pHYs+ IDATx^w$='gof{ssmkNr{ıۉw:NbYK";r,V$IS($*M"A>Hg}xqFZ} 6\4fk>'w oɱ{o`x;p~?ꕩor]o' s6Kdp_N7.} B ʯށlxw;Xo(g8{ßް}3Hfha􆳕Dq@׊i G9Ɨ,_ç a O*|ސllZʎG9'<{ӫ|W*G(dGAlsqtXN[&w<]f,AE]rbQ ?!ް'z@p?]\[^ٗf oX\Z2 K0#u2ɚ5&'ˇXP&뗕g- ې$(jkTDDt ?PSvx杬˷[^nnhoض"0չ??Yt%$KrpVY#UeЖ`ϭHTAʭien:J5P 􆖎.bOZsr(7x6 ٜ("!$LxX%vop(Sgil:hlH*H2u$iG$%l}",x }}݄sgl̿ T*!$Lx!Av_4X%$MnEcE[53c ssGSeV`g+cnDG~;7ۑjZk鍯򗖖 Cy6Fm[CkW[2j &X]<"9tlAy)k2G'֏VLQ&QPY_g+ׯ)/]E5Ea<\'ji~]g,ؤsiv2n`7",ۂ46nEl퇛u\_Jo 2#֭gJ[scm;a+(Ofs%ᚙA)k_(#:uD:74O=6~_lPZ}>8xC$BzlC9!D{4/7$)ktE$Ɏظ~ Z+>,Ǻtvmd.|o}%s?{+qyV}7wN|}KN`C1.n-h[̳Q 7A'g*%!)jIś"{ "o_y>l_>Qُwu$G<9QdִGcr7",[lͱI>$Čn4RRM;MrOAG>>Vc6s=jxł}3/l]kx`[x݅mkoȽ+Ko);f9}y{wP G P"oȽ!R;Sc3#mվά_ύ{`[~?婯iQz_`(x:0M X/E oX&\cڗQU`#mü1?$~<^eBبXzCwxMC m=5C96@aOF1 ɉZ)+(3k$Sb\R7v7Kʋ$ @FNNt$("I`7)RqDhzCna~CK[FqSdޠ|${&"opnˏ(v;jNmi4-vaK`wmpvmul*X$Ukܺ |=-;>S.D cm%%eʦAXo`#)fcǺ/[Pap[ⶪ"jRRGr8ʶՈvAzCќ &Ͼ3fF 4yǕPi 27'psҭ((_E!d#M6lVۂw֒[ D YUT xr(\TサQPjk-=DI{!&%u43E]6 x U8W;o7~6u,dWEEؚ=ƈ6]fHZbN^S!ցVY3%;>[3]˶ (g{tw~p~?:كpoH4qxms۪5-.n]Löekl|/l~m l~:M򭙢UH(?@@' }\ݺ{o73no :9@D|ąuK,(g ۏ|)[q§ސl$Yy(g{?J%Kϟx"U 0Pq?S7ݟ{y=|C59>W_ cr#@` 7ҿwM~t&d7X`<ȁ7 }c߽[o ~Y.r7#7a ybQ]" 1lC^keB2 ?0O2o`_ E$C8zkt5ȮJѶյV|ʈ$A^VPNĺI5=F(g8{{LNf?wF|֐d5A^g:G֔&"EEɉr7:*ޣʦAH7V]q#&[-c1{Eev(֔#ك7ֈCIAn\tk2l 3IPqH9ʄDc;-<VI>gNJEíɒ%Õ:$7mAg~حܴ$D9 +CIZ$u֪rz\Q|Q$.oJr-nBg8,ߑuM5tVUްt x`s:9u/[:ilwfH*D4oQ;Dkkats#V$i Pr.~m|ϗ^78A 2([ֶrY^<=jKYD-.lFg1JvӃ|/k%~?ꕩnxwo0$Z5V۲5 خLl;[VuKs*KIڐ,X+Xr[ؽ'Ǐ&'Gc33㳳41??3??K\4xyy9xʕѼb 7$̛09'{"{#{ a37aoç:'C2Oܛ yC oX78P7  x*x n/!oU%7>g *Z+em``DQM\eoVwo`D!\!BfV 7[Jt:i:͋kTێ xEܠK|ns$Y4J"?LQ1HS''^"e@ x&:xwYdxldќLLٴ9(-bKN3w[\gGLvZpUlPg[-6ݣO]$05=؅_e6 mYUHDNre#:sdRVlh|/Q[IH`(;ޑ3o7XlqQUHk3wkD9ekfr.9@XQʶ{H)[-AT[p#=rl01K00@d ?mi˸ް)oY["xU3-LnhҐCA.WE(R7ӣ϶NùxMi(A`[uYdK%ClcןݤpI(PŢ,_կwDz|𕮗jpދD78nr<(i@#LI"ʸyn+UA[D2鶱:9~$:&۽?ްYoHps7f|}l0>^k8=o78_9' F7S|NipoGK tPCjxoȿ698з'ޟCf `͌47{XX78Sf&33 {{)x@O7N7 op Mox#yxC*k}A!qI`޿x L\ke͉>}#]}N ސҊ7܄"ҏ2Okowf榐=avP" )yuն`MEZOl2_2\V&E9|~D7$6: ЪdCgәI .vyPT&D<.ڤ]eXFts4ѱpZՆ{U]l 9䎍z՜mS$YS2Ipqk*GyQ07@poPM*?ekNNТI;s++s"v=̿f7ŽeUX=ʺ ~Sxyw>D$!ɽA'-jIvPgdQ\Yկ&pQ&hUqS-G466PΤ|p9WsW5(_ 7pvx8zqIe5syG?hgɚidaZ XfakЌۖ4X[YSx*xC"͆HodaoVoc{ bDO1oVo7(,xadwb|xbbar!@0==Np!E֞So7G}?0"3&3&F&Gb?35>7;x̾ 7 z:}။`P?p16:89>:?;gWFxo7~t+o6ꄽᛝ`@@{,u N`hU7͏'̌ή~ ~-~!o 'z;8k\ѸPRPY(p眛˪^<;V99x2zx}7 $@;z}JSog+X>׶\ݺT, =y53Ywk7 .x9I7C/pqp`es63BbY,m7@ I2i8cpwnϲ77d5 $ސsneɠԻdzCg*ڰ7 $pl.~1]sSuKiN\Ψ {ÞFx$^,_;,x.ՅNk/1^HI կD7DIRumBỔS5[3W3c@˙sĩٌ6wлuo{%hك-;ӻ AwO>RnySM,Mopjm *wse+(ZGMJ A ᬃ7LNS oO(7laZ CW7/YRI{J{~}o'~_,/~x͖G>E j{CS~O&}^,oUFA dd!j{9L)iX%S"oxS=Q|}`bvWN&x9I=%ˮ:|y6arftrOLύ.L_Y78Lr{J ˒?׆L]!o ')^DPz$g[o^֚47l I)5U};pɭ/lmC%[_ LOό.767X}[;O4?h˾78\olN$e6ؽəQ|6 \DoVoH44v7>V^ ް75Vc_  07\뾥 x*x 07@xù4)` ` U }?a\SoB!&޺s(A4VyzOI*[_PImq~tYi 9:OmKK˅ ^oCCC]]R7@a d ORfhj(3Ugz '.RXZJU`YيSE's*[?Sxle2KScyAS姩r.^K}>_VD ѻ HQF{'Ƈ'&F&'dabXX[\opbr⢴dأ?A_,.p:0xnSN|aʖXF>"e 34:!cSDD>P t@' VT{M%%-¸¶| ok`,00>68>6DgLgLLMNщŤfj|nvziiʕ屩}Fx7/%%Єe̞4gGXhCL"`ʲӯ-TWx#o#1>ӎ9TeVS}碻[NAm6:`CC=1)Bgggkkk[[[E###L7t5 u :}]C]ѡ0~2>bltpr|t~v7ϮpW7\}op$h4^lٓ>B~cI*Dt bxCwyz>-ocS,P)&1L! 7E7yj^1IW6ʋOVtJvr;ߛP󆡡+r[ y-SFx7GAg 4u1&nB!&'-ߝ@E yGiJdZ{!9{Y !s?)K3mC!o:mHq Cttt444x<ƚ@ qHh~ Lh3"~{x}ކX^Sy+O`<7 ժ ʰONQቑA'Z.vRKΤf%&o󘜬#eϟiii-9N4['jϔ%۲2()7@7DRI\碼y9IDAT_>H ywSQeKg~%LJYz_]cC7CguK_h4_j!9{mDcT%9sjGGG{{{*ξq30632S6j- Iµ7͏'̌ή~<P^NyMɔ<.ZA2Rހ9QQ{îw|޻/zgҷ|Q~c4&a#7ГqzN1 ok*?^^I JAD ~ow]UyI':0>ӕqrG[ myat/vݝ 2 ꄼAt 9R򆱱1z+4k:QPSs>ؾ}7<{Jۉ뾥 d yC\DD IC {O􄝠ZMCh6oPrZ m,BSCe%:Q hXqfIIq@011A v߿Ϟ=79_D))/,=^\VRFy'r[4Hu Ъ  Z8A|7@x`SoVoXarb^<&57wV3;=op 7z_^'8ؽ+ܳ<+x-xog\*;o ut,x uw=EYsW;>q*l7 58]NΞ;~<;nh`jdffwO77 ywL^wM[~]C3c3So LVoήJi?x9?̼<2ޅ78S7P`aj*0W4P'q/>rU޴ 4m6Z勼<o8Z[?X^??KE"o Ïo~ ,75l+lln^h۶;!ZqؠDs":2i8cpw|,l@ e\o_|COoHeIl߹^0Efۢ4)$ g/_GZye s/_#M\on/w n}}ސʒ{Cв=޸\k%w]MlCe&xʵVܸ-] (•5-SPDu\4܂UllNMNltZ+n4W o(,{ o8z}G1DTVb27l6_nRaIr\4Qca*3Y*:d5 ]K vnvURY4J_y? ZMK(.!6~,7>'xw17RYJo06jJ!,7M(tHERikQJL0$GE&yyĶl7ǪH+NE o8]=_ټz@e"=dV>'QxfTt-%*OkEA*7ĭ06q)5(LV&5[I~[#WGcxC2o%ly!)x.l7v1z.oDcYt*ǘhU~Ml&ɾUDicNI"\In6ATƹ5 n+y{lt\Dq۲ 'ԇ?Z QڼDސ f6\Lo PXrbp$Cazz0CL s >:X``|lp|l Ϙ$ϘI+cS32 61u w \&F{F7Bu˒YB;h\GxmAt x9IkM d y^G5op $zmռ 7@dDg^G5op $ٮc`é%}T'AN>ᷠuu78Arbj I>y_xo ')k} NXu78Arbjq.TD9q۰NhU\o /'A:iT`Cao&kJkH.b)-jC=Gpqʮp,\w.{gZT`C⑨m W"o^]RݲT|gHQN"Tkᜪ)c?w;;3!DHTN6B+7p rÝ/˃CJsQ& IȑB1uzu5ol47;!pnʉF(Aހ뾥D^IACC>=2PNt| o(SqCUm]2?;?7!Da(Pr7@\6HԵej <-_{pU2V5/GO`*Y'NGJN#WF5lEUBVu%o*ް0!D냑HTN6B+7qyBwD߭ @ՕxCĨ7\e˗f7#рٮ`}$*'n!xĕry!'l ܉ NyresyP#*B}8q:R7:ܨ(JHê SUo!XPrm#oyCι9W^Xd061=X.ؼGA;lMs('^G*eT]%auW҆^4yҥ !*=eQN6B+7 ^$ouW Jpo!D:1Gr7@\{m簼˃VN~ϵ-7hѢ<)9տ5#CU^EU"Vv%o>hL GYm W"o^0Ao9nf]0=k^Z/PN"Tkጪ}ˋH葨m W"o^$nQtyV9K^4?AۨPN"TkW,mQ<J kH.B;/3kgjfkg*?st('G m޵qޙޥDDm#ozAB.ʂԱrOQ< k.B :d5 +.(Px$78:xT@7s7x;v >{z o& YBPu 6/~0~1~ \c yǀ`S}!HX /\ZѢ+b!]n;(ۈ1ewF_=e172{(Q]u 6DY3( ƅNw}е7Ee_(kƾ-{#}Ay(ێ #]Te^UUQ8FUM3UvZoN\??IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/figures/search-tasktab.png0000644000000000000000000003220514023111777022040 0ustar00rootrootPNG  IHDR[LbKGDC pHYs+ IDATx^w}긐*b)r۹#91kY$˲lbk{`&䵴G BVK--թre?ӟ~o3ӳ3磶|ӟϧ_=Pl6 f ݖJ3 P/iԋ< ACnXςP~ަ. hz[MYih&7kM'pt;`i֠gnjz̪v6KԺ1DXwz6r.@yj] m? Ge%xD_!m? Ge\KKKWHiQi#gAژ4>O>4:fr^\i4/,t6 2_WFrTi*J2s ŚiCdVAԉ :##S%sŠOƭJiͷXism#jbHG>7MniHڽ}tlEa# ;{axn gXi]{{w܍LXS2'Z|4qX 9i3O\uՁo> Nu7߲ݭ_l,jG sZi6'-Ct|`5-%VnvU|?CVFS[iDwO8 YgAk K6+[gZy1[d҆L­3橵^[p7Zתs/DR҆aKtFR }6HRoxT:mbsdƾ 2d]E. H3ʅuȔƅN$xī&+ݕsA^ >≝[͟ ^*kwn?6y ٳ**?mѡo=O76~g8gv]7o<ӆ9+#ߜ6ũeU|Μ9-Un-kSpj)O`.YLԦv]톻b1ip˥5~ܦM6 j~A-DREi\z6IT\pLH3*B$qm÷U^ܓ6|tBȹ#k.J*kڈn,i"b.e; 'vF7OͅE=kڼ5 Scc;O\h. ov'%LOomgwmyw_y^~ᶣrttI\ &)g2'?S2.gc7m4t5Yrk]r٦devE3Y]5FY]S쇜ܦMKT¬fTL{CK sL$g$XX/ɧG98Tc|ouҷ͙%d}5x}X2jZӆ~nDžI_ژUvTH5L0u\J2/ޱ;ކ-s/>1 Qڸk7z膟,ǧשGFvTNXM_Zh^rO㞺s>g/i}P; κRM|+9놻:i黓+^wYueuSI6(PiO\p妍Xu3RRôBٽ|^2Ď xBsN̟66 ndˮ0lQ~no֛>uk#5Ə>|ێI{1w;p:mG复^Zn@mM`@yhw<ӹUwN*T(?*2) ֌[Ç"ULcvtzfz+Gw~o9=vڦq[ot?:QG@S'?m?χ5~Wv`죴`}Sz^icI3GݟgӆY2HO~ػПݻp~@~;JyR- icO{œO_~?w|󻓿"mGYitژXrFѢdXO:=.Cp͖9."m#|,'mG+gOxxn{O 6@!+mjپۮ375665g¶ƦvOʷڣ5\qЃp];q wŸ6_? 'Gz;BzW+mqڜTk%SW LZi) 3fJL?\{Cl6/*icg/,l0'\h^83CB:o! }6:us]{jjnNH9iÌbAU6Ӳ&ž,U7jxuiN_ytlj!os}ĄɤNhֳ2kk<9UcϺ담NsyoS&=pMDuL68rcsֲO-oEP*wT4sS'_^S5Mo7mTyPTݨ;ե9}']4so.:4en-mKANN{L4gf7-3p6GF+#׍ q Jf̽ |On5GЏ[}%VͲ@56Fpɻ+'ؖђ\4w %;um-+iͮFmUoacӤhќ  {ۧZmmhu7A0rPic`_]=`Qe_3#:Y[?u%MM6!U-(zc(Y"ٲ{8'YjKms'<~kΜ ?;%i#+Zf39S%=G7<TlЦ?m=0k-W/icH(NIh8U5eǸ#suU2#n͊afsymi\-)1ӒLHxl lʹϟкZ,.٭;Ax[͟kh,U?tZ3syJ‹AE1bFoa[%A]*܉RΆ6?zz?*"su~yEwrb{=pP6䃂Xtd02vzxT)P,11.isp7^QIucY.DW{Ն><.+R;F͟ mXzB&-քZ;Duݖ眙'mKO5K?<X^9?0e5gl/҆3xvm73mgq/8ݘY;71m.wyj}w>=~x򮱱'.%[ɒss[n.kCԤ[[apqTO>2aǴa4cm\۰a|؜ˌM3XַV-YwR핈K٪p~`R[aN{{엙v6omM[y'CkBӯuzkMY_ˣg<l';ޜ_n q Hf6[4Khw'..<M 3#E/*]/^sm8o œe=Gj8_cweM8bS(CZAZJ(]i\`H0kEvY7 R&j$vc.ڔ/!C5<}uUΞ <#~éę' z?ytGt0nײL8x`KaU"4ښܓy'8S0/˛ sqlG_p ؊  'vn yKZьlo _u[[7wm qO2Qs@k]icwpvLaQ{\qCh ԉ3y]o9ϙF1-w[({deFziMHxJIu,U*sA}Uf'[XЫ:ZOYgrC4/=O뻢 ݴg[Zy#.=));$+s(7<Jz9ilj\^xr# _ݚqɣhNN"]_NǍ|n#SXMwtHe/dxZs+u-ӥc"{쭰wNRuv3?G7㱫ţ+L:z&_}=KN;aa7ޛ ML8oʖ|3ON?eGRb(fVrnl=N?T3mBxF#i~:AWk@TI U%m yLM耪'mH `6tN JژΩO:a cfӰ<2QC'Gi Lsݵ8,I:l֦m4%Uvjͩ+ɪmV%ɢ~j ҆o}(7*PPE5Zo5|fN\`oZ0y9:K~DOU,emQ)kVx*/ؐϬFڦT5 T?Gt\^ɫשQM#xRP1YERXd$,Į38g29̼Gl)w0 4d&Rk'F6tTw]Jutjeꗩ!uq QjMY FqkM-O3ds;Ȝ4Zu>(GN>f#-v(ZðFI~1\_VVZY,bJt˲0:.Erٸqxd' 7@V۠[);d6WdE̦YPvlU\mҏvo֞=qKժ#W:爫ʓۈ\4k괽jmYe}݂Y5jLwsݻH'9mxӔ!/}!ougD;D ؜[(Yxy_J*04D]P2g35[B;Ǚt<>RybsNwYY,nzsz*˒_]["i-vȪ'X{̙}h[xɞ4}oK5n7iܭu̸͎mZVWmȖRrqUNoyu5\͜NzK޸1|^1*2>ݭKFid ,<̼/Y%Ek%gB>ˮO3>5W5kƴX J9BsrUk?ZWեuU ez]~3{[tpsLxEfFJt:6_j~k%3.iCeN_gqښfj1k$"̘;)Ӏ$|s|VJW;FnBw k3/Mǟü%9i;942ꝈNe*gM!zOYXow5$kEf6fݷ2^̪so?k'a5cl6s;R6tT6%YK͈Kbբ)9eRiC,=͚orvko|^^?uRi iS_ƚ5/m>}wKZRR=tۂ3 ɺcMApBmuuu$jQLc6 /ݖ1ā=&nW;ynQZ6/a/icSB3x ~Pk'J;iePwx [Du/mv;~m7>򮛎5JCI\djcJ|ܳ`*N}̑^zr2C::I5 E7J , 1%eYABk\$7niIv\6Ӫl FrFt惦Yld7Vŵ|Pw^}bn\KL_k'{i?W+m:oݷ}LbnėF䲦YSUKq0;ީTX\XOT۾ݾd9'.;d 77di`''u5kV5͂Uq؝t?洸cbVՈ^VV3^3ʲ$WW4[*@֦9s&g"wYl݁fZNŔ]nux͎SkYujީTckχ3omiKo酵Ob\.NZ( !&NPdZGHÝ5 ͤ @3ݔ/tԥORruX J9B3 {O0Y2ݭN9VAǖ"/WX㶖 9kqsB-Uf촸6+% ['ՒuN9Tqk]Կ^KEn}>k?T(m5{؉C/^0='Rh#m\W8:3cpX2RiX|͢u/Pȩ3cT>FEBw kѼlUeZ9澳㾷ϼdl]Tuzw)Y"5TM?ۗ.ݷ}53OC5:MixNcXEP8 -2mߌNNmnk Sh󦍛8K]y=?oeZJ ACߐ6RG*P}TM_zs;ə׶R(ld@jozn_)wKb +Fa092<2RyG%ƩQAGQڈ>P؃+_ Q9`buK:y[z2m MFq-)'MEKd!0ي'5rx1cYDG:mGbr3*D Xc)m(11f7m xɐ龒"Ln}V؉Ibs]/}B8LkhM%sa !ӆ3[ M&3YF$P`>yE~I0Hԩ*Qb)$kbJk {' ȗD7G)"m#Q_Xz2qed7v~҆٢:t_Y՚ߴLX1\Y$𰸮=6|$ĵݞL\@Yi߷?};ڧK[wIX5?;)==W!{q7%rUC I΄wrwR* w$qyk0m|~W%mF:Tm/QbvH7==; Nq3[U҆F{ ĺ5V6+Ϻk(m :Uy+ O~g+'xJ2Uy+ Ʒ?<|[!mt< Fa_ǾFяVى/ F1W屯`LOu8W;ׯ¿.riϿ'Nб;x m4-'mk;?pρƱ_==Jܑ!mقܴ~[޷#.짧glA~nڨ("mZ)"mZ)"mZ)"mZ)"mZ)"mZ)"mZ)"mZ8mU,@~&mtH6B ե!類6@B6@iJ6@iJ6@iJ6@iJ6@/mU /ӍˬZ|Z9HOO~k_}|O=f m?K't1=;>wն- P7m|W_+7'-\{揿ҕɿ|~lǽ=ŇI7m^5?;q}_{+?<7!p67m8zjSO=y+sݲ6(M}ws-G= ;=>vc\Ų҆qk6||t&,~IǾzاzmB*7m?p/{.+C }bc˽}eMSi#]?|=xu7޸֭޺5wv2iƇmgvW8pf6'~v-mDP E_w/_x6|0j(Ȣ|iOC_Z2j(Ȣ|i'n \P EHO6@iJ6@iJ6@iJ6@iJ6@iJ6@iJ6@T6&:ci1:i % P P+ER P+ER P+ER P+ER P+ER P+ER P+ER P+ER P+ER P+ER P+ER P+ERPW( :"HED"mz6@H^ P -D ; e:j6@-Hd{ˬMn mɉ:5肜ЩA)5iL{GH^1P!DLIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/figures/serve.png0000644000000000000000000011223614023111777020273 0ustar00rootrootPNG  IHDR5oTbKGDC pHYs+ IDATx^wt\יIglh[vO۲MEjy-,QTɲ"%e[b TJ(dD9*GB" @ dYv9g{U(*鞙{B$}75L:.??_7s$Hޅp8zGoݯ!w0||omnw%|w}/nI?򿎽_G7p,};{w~wn۷W/oooa ;n;wǝ߻cqW}]]܄Ý7K9 %$ہ; ېƭ7Г_; wܺѯ#{9NTn}o\w!|o7Rtt?[N

CN18J1?x#?_k\|sOwr^G]k7wk4>Z%6>ں|eçp&^g[;:>k}/rbL!Wd@NU6wgW~^vR2{!\e fa#g9?88ͻ?E%E_tWS~/:ޟ_?)2~oû4͑0׾%\:d0,{k+ݦ.rg҇t”#˝,=+=NKYI̫ҕzhZJ2BJy>w[iz{{z[Z.t^jokk$5ַԷ7M5LUNT\\ FhJQh] ]5rI5+u*Ye vE^]dJ J ܪ4XP2eHAYPїtAm?T8e RM0-J}键tZW<Ipj 1N0")pZ]8MPE,]4hgip* 1.,ejD1, > $%9Bgv2Dg. O](:[7r|D(F$*DR: A a&,DdZ(CH,h\ M(!Z  'GQ@5QP*,T_Ƀ\Y+JIF|@#|WDI>J|9S araa8GRuHHtP 5Avy!~@:1$1/:B?nTUQfYB`LSt%㺲`AyX.xyԅʆUMs5-K, 1s1I<|S<럮{[^ٙٙ"ij&vp{{/tx9>ajv怫3Yu`X`۟^)9b__jB6mՁH?|Hku;uuH@aT_51S !Ά f>7`"z` |@~ﵬZW 1/&=em?V}wX0?ٿѷ޻@sRk|K<2]8USUJ E~]ZSj]r!-Ru%Hn#{~v@6u6iGc|!mሶpT7,tZ FanHOThG1~\]()hE`I-bD P# *L$3>0 (X)8M2zBB@R_H\BS$sE-5S3U9W'lIvlHR +(ASbFqT\?DP!4LtU"v*0 @^DT(!?c LaOЅS0 I:,Bʠ@1 "u"**fcb*FP=3,"Wb/DUQ ïKLhXk"}q.  )fb(эKR}@ ~/J=c1@m Uཤ0wqmQWt%!Ci^bExidyً sUM͗jZZvXjdYl\lXls9ei㏗ԶW>=̤deN 28QWsfHu+'ٞ ,v_\"t_\*6z*6{*z*vz7En$[[[SSSS]]D {_e`_/)}w9sٚ#Hp'>Hh+^ ǚ \8.[\{y(79Xߏ3y/&YV=楞`_4-t-t= ]Z;g!>hWuhTkR< %SۤjD+Vt@H.RbUD+I1+V֪ڔBkShJSs^0 T0eV\R. 唨bRz*u!6F8D&&(Nj8 NtC5 HdgόK ^UD2|@J"KķB JoCLatl8V,H2u#+}R0jL02@L qaRPJb ?V([_'kARkjy]XQ{Ԇ 1Lbj}цXt0㣕% 6"CbuP 1/T U"uHL m(djR@Eia E0"DLȐ)"e oRh.(ё¡>(? 2m@ &1Ռȴ#rdRPZo~UL0@ $/ h/ČESe3 sU -mKumK ;Y:;0@Oxj۹kE WS84t}B``fM0kX,~t^onM[Kֲֲ͎ҭHo|C.FQI 's[61ǵ+r.)62pl~Ƣy ELu}߱:}Y{ p Lle^͛esvް1֭VŹj ؗMeuϲgYX_5>n,`zCHU&[$6*@ beD-QH}=RUUXe$UFBV`G2p.Vڄ @f2@ JHa^ƕ8AMj]h&2@RLPswjZgJ&5% U3j4d&ə ("9ʀςELKP̢zK'˄VNW 5r|+D[ :@ 5@9*P 1D@@e:`|iq5B&3Lba5%=E(jR)9 R SR BJ4A#8jCx>U&+b~_>̗C Ucbl Jwo#M","|%P H 3aQ1L eRt*}( !? Ѣd`8@JHxÐCzPB J!< 5#r6a#l$V(apx!V2*)hشPݼX 2XA+ + V:W!ZmL 9LJK2ʧ;S;H@2۱[)[Y]t;u{OۗBP7?ta04 K Fahi_k_o IZr\>M&aɰhXh47Cg kW۝?o9׆A?| E(aʀiXm  /[=muVMȕAa~.pV W|IF2[ +,C{t |N/p{Z:W-U3BBg\kt}c&R^,.55zRQVEn@GZ %tB Vt"eH#BY@# &,UY]J9j.!Qلr@nIx#5dv%V& ׇeSLI& 8рBG8i<(yVq“J݄RS@55k!l"K}Z>H+i(qZ!Z! !Z1Z=JUALUj χ3t dAHJĪb'ŕx8RW%U#"/b@ 0}'PDQ/GEA s2{sKh@I1hL)0 AF԰X=$V^+TzJP*"bP1哂4C2ͰL;Ѝ`wv䧌lۑ8)K2&*'Kkg+.6-V.׶.׵Է4+@jSf0 |ҍVh!2 `f0"al$uK\UΧ[ɒ$ή˿_cxm|l~rߎ&M3=fej0uQ:b&e i iy[H@`r 7<ÛPeƶFۣ^ƿ$;0{r`{!Spgal{CbT ox u{ f+8V( ,^miV^ #:O oM+vC삈MA 9=';nO+-PK]H1d $\+6q6$a=&ӅWcPN2Fk (>(pq |вTC|@t6֚Un̷Xifdt}ad7tM DɓE^vKg /xji^zirma|m|c6:X 5pͿtWVlA=7E /Mp KF΂l9u$o`8OOb4oV KF΢ɝ3rI#7nCޢeeI ؕs 4wpɷ~[ozn1w A@`vY םM/Tc[Á?_\^ ~.)#{I49\CqI@*Cv?:fk422tsؿ94}UsB~bO|GLcc&rb_Pv,U]B%D"UX+QI~)(/VBY7_sI7O'X8%[vCF V“1,@\)uC/(ӆ䆘HZq9LqաH 5e6.M*$fSJ4ZAFtB!$a'v6wh}x E뒼7dyo)M9]j,B[$ @&s,9KhQ:( 1 &(mcj@ 5Z)P<.~B!+Au=Q 1<DZ` ʹFK\X@H&DˠD="{Rg؞'rx&r< ""K扡89W @=_dZsV0<9rIr0\#݃ڀ}FqC9O's%Mky"S?ߛaČn+Eb#hLSU#T]|0UR=>,>hYVDJfdy/9g9==L_XW4 4o,sSi#VKS(CƓ}M(  dcʂD0۹JFJFڽ H'JA %uq(M@d5"ŨȀ+!&xy"gqyٝs!]2?5QҼ柼MoBPKq  N_&Ϝ-IuxX& _i (8EZ/PKLhNEvй,9 6:>{hN̓ެZ5"FЈFdMn&C߮pz5~!lp‘E qrTy"0)ۗ̈́ 2,L{3=YLד͂WП-0rfD0摓9=I^g6~ڟ nj) mX׃T.bG>9p~  \!}9x؛tf䷧緝m4Ӟue syT@a*"KJР~ Tċkf!>h^i^m]kE4(&dQj2Jm&wy9kŔ$ُ#p{o΋V-+LuWg!:mkh۞ߞ[x]w3nO|iTv)GiQEZ\6LUͫTi˪Z 3BCIUr2Uyy=LX 5w?5z恋*eK{w?.寲$&l&hrDZ&r䈬uz):~Xt=7#Yע_H&³j섉]`삒 Jd'o-`}pexd|9]V۲ɴA{4յ`q_o ֩dYJ[U ֦9zQ=*[s)4m"y@Ó|^dpȡ2jP-T1&Q0FX%#[tP 4&"1%x&CYx P \js?' IDAT/弭{U+n˂\ȼ.5yy}] r ^xy=܁,5> cb:$M0}f"@06(GhA `Fg5tz(jE7vy  zЇ0md7!9-<;hMiP2C_r^V~OF~Wz~gz^yr崦 yP RguveNnK ٭ x3ߝ'T9O||Nvc Əiٍg .|nsz^k-Ӟwg 7@q?Gl|GVbt)u 胦f>\%0=DNP?<#?t?~p/<| F|W %'Dȅr??zA?Qϳu=υ D?} ՌճhYdzݩSu'ỹuSY❾ І{8:4=jkzȑV ,p#ٝ'Ox['Sc{ /$S~d!~{\%;(*5leAlsTmmblhD[0HA]ZBRݪ/U0Dh0:ZvHTV$VALC _ (j2zDJA0,0H Bu cG42HHh@B`%8n=&eL0)ƤI("٨@:Ȁ+ee5p/ 5 r^&y]k:2&^y`5WHJI!1P20`.#(?a؎9 dЙ:\5VMMju@ M -.hr5<h ըɨCx";Q؍2 Wc" OYsdwC :V-gf5l8QLV㙜洜f8}m[ӲZd536`I&Mnks1d@J@hn:Hnpt Oo9 '4̈́GԜN>Q{p6lv#!|^ C;vd:s9.pC>*"T:$\?.הDꙒrea:Й3pMJgQLᡙ:غrE7֙(IM2zWc~> g T Bר(ꋭ{0:I ?/'oycw8~GO=st䙣g9NA{n>sBB?Qpg?<R2H$??F_z@#3==dYMfϫ^~Cw5wJ7-6`m 4<U'4q5ny ]p䩲 w/wL߈O_H˹eS7*ֶ1[8y#'0 oDXc;v(10r+ޅιچŪHYxa_W8)bO։ueOhhL[uEm]ydZvK 4! kF1G "*CH*8 PU@J4d)l/&'54i&؀ޣ{JOQm\##UP228#r..fwr7q? "5Iȼ!T%'LJ"&2g"X64A{boY'c&g3S">Z!Yd 9$dkkweשv2Ѕe{I"K$M:NמJ9Qg%dA5;h>t:TFéu9yCZ [73>(!;$-Bٜ܎4><^az)TB>Y|ӫOgTCtF̺3ugVHmMoM7Z2ND `~}g>{>wo{N`5g_}@N =w_ƞo|z>v>Q=?~Y0>0r|c6VF(8#ֻ ?~Qx\#Җo)λӭ9'!a02ɓ߲FvKrc%SN [A ͻHWFs9sV*- 47OՃ eE%cz|unoNҗFQ}IX[©:et kG1n\N(J}:p ʏa@}qyaHLJp+k&$M\ĤNE(tbW,}ޯܷy_Vm8=M{,>K 2l#LNȀNzFXdyF D XݧI ԳDA AALC7} DUBd rژ y7'uH&jLu|6ۂZ*uXc| !Y68 2y}Y;! aA !rZ4|?D?B'>3(*\n F b#*!ۙq)?Ulpa|P\5>MP%t@`㳵c8 V,TW>vÚu,,Hki`ҥBը]}{rik"f,ڋ%esk)m}xæ]/={ᡗy|ï<p1k~9-_^kx祇/=><>V,[&WGw^&8}.+ow]wEq=s8+@#/EPb]PſX:8S3`w/A3(t|*ӳ%OAË%>AG-) bʠboT hNb_4~QKu@xnyر؎5Y+Iw a{X1 .ut5̀ *A1}`ҹ GiT-A-/ -i]Tj_y * DQNqqU?&gLɨP?Uݘ U $)+"􄄎K0J(* ai)m|Ko垩|p^Ie9Y9Sl@(veCbP1,PC\'_Yyh= ~z\ϥpH3O)|T:J`zғ} mؓ g0m6MnV4ygmK+GI2g2H (W03a1ȝ-E,ezr[!tte HoH$4+L+;{#b(Qhv'08 _у2]ڒ_,L?Xj^쌄u"﬷n4ڍ -Dlde~~B+b 5qRh.L\kӵ 6C [i)(/.8+:+:^ǺO<{1ӉN;dN]D}/.3X0/22hjW\ :0n< PR +EQ Bjpi"Q`2} G$[DF.&;'ibpf;߫uT5 Ȁ 9hW^c(+.)Yy}&?8=KoAL@IJar O U|$^bQx{p!2Hv k8X9BA-Fu`1E:{q ?G -8H $H2t 3-+`7/K{2q|QoVrؓw|sfK|SC! >Êp4'E\9CIvn1 9 nD~%ҟܙ|>&Τ6.\ gDeZ" }yzfRE"'פ*aX#Fs};-T8K]8/ܜRG"Gy# ljoEWb r…D 2{E9gU]}SSuO{#_޳=s?g;\>9Գç}6pѴ7'v0Lˁ3{N=b=}|nK4OOg,[xc?pOMG~z2eNj#۴"kILd-l&bٶddOH"緓ԙsdbLK|2xCz cFH֒3hɾXTs-OŃxSG,2R[̎&Xokmh G!,Pk=J.U%KuJ(Utq}I|+k (Fc폨 5"&2021hHD@@4mJD):Ԭd $Rv|0i#%pIcW< $BG$pa^?XA/BU@JdTH ԸH(Fx!W>WɊa\~ô2 $Z q 4H]`oN`ApV ' 3vL(aKB4e0StK#h>r'$&̤3gL:S`5WH`2̊nH lI!Kf |s.<սXl'WBdNXA s6ߜ'  @ -[`4 3ǡh,HVS c/CPHV#dN+e1a\e 8-LW͖Vϗ-ˌJ߱k_|cUkHK]/?0*O6A]"G=C5ꆚꇛ[F?Ό՜5M[[\9ozr9w9q^^_Oݜp>\Ar7'"d{e4`h~)C=Gy(P9~?>/F~?{,Vz& ɋw=~-:u݉]dcݍ7bW"T4[^E6#ٝ7R#aIPh"w+jc[?m L HRK Gg {<18BdPp<B.J+UD/`z!Ha*mbC>*j8Uѐb\qt! 4Ȃҩ B0 EYpjq ``}`'kN 3 *(\Y,ƅ1l'be6 r$j?ēP6@~ SG,ŨT5.#ρ" %@ P?NQgU2`0d®][r^%T>DL,MMh 8@ը48]  4A)qψP9,T BN6OIȘSN3'|9Ƀ})6h\BHV˼\;_YЈ|#vs$n|a˝Qhs{>dDb;bʜ|%TP胸ba߇& >ۋ >X>H(`|<ɯhG;=Mm@k6%Rd0ָo47pКa!7!c-@WxG0G;UFޟT? #>@~fXk-m/A L/?s,O5JKre3W?Z2o&2u3&)dfz{fzgz+ 9k%kӢqִdoZ7ڛ֜Ȧr7lv:r>-#`n-Rc7 JmʉgI]U?q_L#Eߦsp5tŃ[>BƢ 38sP"_ԩˉf~2nWJ3,#ȩ AM" ]LB2IDZIqf% ~ZI&/68H](mf$֞$Z’8Yh@#Lh qMR3I3/ۋb CT"A?*B#U|"fd]w҄tHa\op@`8BF02SIgᢁdU%5$ 3 H#" iq.Ї" E%Keu Q ƥdP'DXNLH'^}_ 6}By捧̞ X<{ϝx7=w{,/}~|or^ײ7 IDAT/_}^{ۯ?p?~}~7'o{{໯>x+|{ G ~˅T| )Z{տ )L{  {gt6x"\nP(SDאo% XJh9vaU8L d2sLqH &/o m\!nw+z*;)o E푁0eWμk7^9Ry׽auowAB7N8H, m+$!Y?nrrɚ:~Js d)vɹDg%)Y 5)|)ehtspdƕd)Yڹj/-Kd dQ"\\TjTj s]2fդeץ67gz$\/s.#T8Ԉ/z:W10F{hhEK0BR0@+|8_ "1d2%<_n-1)3uX3U KA*D P3`VNbA" /O͘asPB32v#v;=LPrwBjt11kۆܐ%,p+1nC2 BlxyQ2@+l ͸LClJ㤽h":A dQc:u $оidٴ}1t,446pKM$)G:.5cRn{kڳֻ޻ѿiZX1_lY7)ā;|5 2o ufFոji" "ش87MM(qV`VNa_w]h,[,c ޿uxh`3gp1nX8pR@OߥKm͸xpII`hLf Ly9-2Μ0dڅWʸx&&-<5י-fƕ8xr@9oU^.0 i|SF!+P<O:mDB_+pyB6@d PQ )0(oF~T78nCwFk>5\*71A/v%?]rk2=wNLnkxbvș>ۆgTC=H`&AB4 #d+6C0 :l{1J *I|0^TIPEߑ@|ngLжTO+,&>h$4v܇yX%`Iseнֳ>[$>FV߸?McƊP&E pf68[|n6\@9=$` ݈nJ Ns=9<fԝ\%sX3Wpw3`^X`78omim`HIٸ`}rS fdK?vNw3%@ݐ438Yn\'ٹR@>,^1Ҁb:\@$v2P x2 Ƹe+p]9 >q!+I"=P݌PR6"P7Xh-Rw& 70Q3(YpwB}EbBEV7Q2JIzؾsu0eSqךɀ dhH{?2fEtP>]pa{ԓ!E 5{a>4E,r# 5А:L>hNA!>XL  2ļ?@0,k&s"o-\F@m\paڀ}mء&]e61&nlv/)R2aųݟrEHT6gBvK`vE&;'Il}g] ށnbWb'|;k=kj 5NVOV^ ~Z3,Wxb+ןy.tZ3}Xw;S>D /~Q{&lN\\XN'څhb)c 40=nb }2]#/O2]dpsoA1i̶ &>`V5OeKve1(u$ZASZMݪs. (Ac%icla\q5`}pV#k%dвmH&0VXh`|hKb >hg5`)?D {d2`"slW[ 7]ĴOieto`2BڇXE~r_ɲbl+&;76`^D'\`c {3y+ټ>A_S1$@տ [}ytpxL{.Ao>0s⃳U<_s*,(FHdr˗c"uH43w4 ׀ n.ϑ ^ yNAL82"*,T__R_)>b-CʠkbwN)>%7;]ۜg, }"*8$ ((`6D m餾lb\qեE "k5t)(`r$>HXaQB}B$$dgC ? ვ$>H6[?һC]]0M }}++ /-/- }bwROb$7t3 ҿ 0H^,1t/]KHRKRsbSb#i%lhkmqa~b]_WOUF#Ⴂqޯr_皳rgtNklVdoOÒߝ.{5A`\?3A\\2( 1›ޛ7qt3s懓daO2{NՓe@` W ؆$a16^eI^%w!}jRd$>JOr}zl'?Q $Ѻ2HRʠd@Lu'+E$Ȅ$^.2[>0wܽEF2ud4I} ]/% `5,s2+@v@胘;@J%R{_BsvKy A:?hdIw]l"0%; 87Vؾ6^ܠR w 䞓=?ŢŢIR #W_w^!;re߹BrLڠ߿;w/4 ^>pUPwsPH.ܕ8)e@Vf߅bZw ~۴ݔ[sm9ͮ3;8i{_ήݐ:_mr닍upYXY^RWIpmޏ-磯xӭ.E?Y˾}ˁ.;hű%1'G%rdbY8p_j% (| iJDǜ b9,/d&hϣ2\dNe`e^@i*|:Xo& kD5҄mdNr2w@(.|% %rV9V1$g֤eV~Q꫆ z?X ?0"l}EQZAT·>o904m" jy@R9;D5V^(} v^,%do:v4=gY˹@"}MbS.\ijsUE1&9 BqX䁳z9s^s,B4rJc_}coi. =zJO]W b$CMo*3.E^~_qhy3Nx{m۴!fͥm5p2K!|{ ~E2Sw}z.<ƴa:29`N^)gIC v28@b3Dʀg~߷\h|k 25(|_Կ@߰?:cnvNȅio0!Pkׯh:xPLs!C e7:.]8kL= e0wSn\;r-_8Yf3z Z.Ȁ{5A)4pyKC2P~Kvf\Z/ܽ[s9s"݁.JD\OULPwT528yu貿2/+GlX WKgR7#g@X2Ap՚+5|RtiMh.0F3o&&wE#':#>/?ͽ$ .u]"3c2jX .W{~HO 2(<*+ݔi !0#%w \mWoznE2hn|2ȓ62Ah/2/@{+YmR‚;|/YY˺^lc$1) NFR0n K ?GɗLP5ʺ/^F:@e2cR,19e K&({|ܙ+5ܹSg5Jvb%Bq)*9F 0e22h-K _d_- , 8uB%"wj 6)/S>*r糰O@ŏ?+cJVVҥK -Ef-@2TUrSF2Kvd|ȥ+5UKoq6tx}>m2-ʑV^K͝@g½so?: G["iik׮6lLc~J5})ݣ]dS'KS`5!-Q~|t Ue2`S?N*/ h[hh6A2r;hdqwXwZ}!Ggfj,Z^azY]v5 L*(7COb|Y{9tvQ 5)+x(.aEcmq㕋@US]j]n*oZ3E,X@gf6Ġ-2t'nWU!7GREvd0 EK.ʑY1L+˘)1^f)FkwZ!Ų3ixWӞ+8`3P4f5P&+_*Kɪ\UxwkmW[s{"T4o޼9^YAXwݕj)cJ_q_ 8KJ' [7.,Z,Vh8=c4kblސЭ>d >:sv3 80݋-+o\=Y`0'U zp5vK!Wj) \z\5UbMtܿYl+K]g@goHLX2: QEKӪ<esJs H\ B.pt Vep25)DLqDTJY3AWkQn 2~kj뽖d7UY| >/( *;eVG^EUl)ڭYNX3e" @<іtֱ̽z]&RJ@v80~L*W&woGDY+jdrY+&2!m?2=sAu ^;-z% >W5υ*;W΢YkZjhJyHP ͼWQw!_\S sRݤUFKwz5]_RSs tg+_h d{!V` ^!rZ P'ftȄ~ɀف(ep)W[=/uޗYoʢ%@A8$H/x}q&zN\wi'_2rMg)YMJ L"3r1P/EOD<]FxlfA&YyV QnH2R޸ܫ,ˠ? my]@fQ@_.yX#%shz9hc'/+?ࣼ ^sae].4 ,!5nY}e_ߞm MB̙7ns՗[SakcX,r>F9 daw7xj79|]uhQ}9g}B> ›cEhxlHگ+n^᷉H;d<\6)d_?z684t+\m-2tƬܮ M/Fz3Ѹy;n!\i ʁ򆆆o޼9.жvm:cj;k*Ϥ/PoGӛ;lqv+!@Q:6+!mm٦3fbmG5_R2חe<Q[OoȲ̦  \ JVQ,!%dp2xAֆ6lzk@%֖^WʞA7 7п3} l1Aȝ51mLmu JWdϠo7a}vW[n2+d*e`_ |`oTe-dPg{$- ԱOCŊ k3n[ommfOU+׊>Pˠ_nbS  \$6e]KH™:|#U7V_fF0 a]3|ݹ(|U8g[L25n21e7Ն7XTGl?Onu*H^}2yMajɴG~-ȠLvm aeH5[=&RqΝ+괺jk6 [ sa#-e0-c%K<0 ԮڕumVC 2+~@#)o)%]{טRPe0mIcRǦys2!lpeqɬ a?2NK8:]݇n)j;|eP/*~(UL=ֻ2ɨﮁ 2P] /밂.%ixXX3R4)+Ηvi4e]KW:I2`&XfM]w5dWdX%Q;E3ɲ3őDn[uov?I ^ȀddK.X`O;Hdo3xҭ ~` '2Q7u WN yeav6ж'm:?>UvxK-d?2M:}mJdk=N͞-*m9d홗o+ܵp΅K/ܾ(YLN’Lo?[eע+0&ȪJ <MQ}W: ։&tBL}ػxž%v _G!ʀ ÙR ,e1\{(2ekA^]kҲΔ5j”~ryqGJ83~ע xd88 Wf9RxlEٿAp2gm蔂XJא[x%AU*oՎj݊ V~.{Ys;m)E1ER⺆< 2d2}?€LwvRcJbWĥu {<ɠ{ڙ 20}`98 Vƭdcp2dʑnTB}AHP dμΎԒT[V`GBdCd, Ag0L= @0LRRʔ5"`37J{d msM@f3dRÅRgLMfsRy#d5"j6~S\d|֌wbܕ  /d*P qXłx^i{gnS)5f2vϠӖR%64kRd4{,'[Pd] (+&|vēfa||29p+ScScR_D V:b9Krͮ(/q #.7)F*.FqB_5?9v閠7!'f2ޛYL3A=&hDx^!!?N 7@o),Ҭ]=)sN8Gғx+W;ɤ$I@*qt{"K 0tx$A\UU+Oi8$6 wun K&dDtfL`Q»H6N;1@^?˞LLw&r&v&*eLdRI2 ",ik/(+yBimo [^xbybD'"^ߢxr+I@ݎU $uzH $TpGmҐ/)/I#\OҠꊓr5t(B{-Qe?qd &8$j @`N2X]HYSF+hN+(EqV^/q7xWnfL?8y[bk@Ի]%h{ϛ鵈ǣ5c"^ G=. #8$*FGG!@dJZG+G u TQ{k2j2t@?.f?-t{XIX.\hhnnVr4cǎUpqzl%t9L\\vOyaY2dB@L 2+---mmm.]:wyJ=rv| 8|0[YYiee0ΊI˓J', V!D2 dB@L +2oҀ*_t2lepС`[/㋖EFƟ\|7Ukzអ'B3 hljiV1͓kl.ʽ &PϠ4@EC Pt'jk)>OLb@ÿeO0d0BT2lAVaB'â x &5@o\:tҀyG-سgOdϕ_,YB҃ (僓![zu͚X%6= ,ʀ4 rn8#RSS{u rss'ҦSɢ\ǟ}׎+mtd/_W NyDG-#B"Kq.Y+lrdnp/N֒8uYw*[FiřL.@1HZKГ.iii9U|~߶}`@]~ő2*JqQI檨oxWQ] Rm诏 T adk2O&@}}yG{پ}{d~TɿeIS6?]TZ3RugKMmT4t.]Ymė侀 F,ˠin >\XXxƓ nJmLWUuUQh ~ݻ7nܰaCdyԙOA{_Q)me-nz_H~FE##ssĹirs*)Ndt^oۺc>maĦ{2 XAUU9Py֓ѣG֭$/2x2x?.=_O>el& Υ aETAg󼭖MB2 PWdA#A/I-"7XuL}ٲȃ ".d9)w?K@q>2`bXw}S9SNYΝ;4իWo߾E^ٺu+ _>==l%`WF-> _=-{[Uy=d03~3mM4m^^ Oۻw/ ߿[[[̚Vº fe u,gWe:~UMjW""ʠz胀 l+VW&KS `du26 :6FA@A9 K-*fe5ug &Zdu<SNMw% j2P?H-OqĤUǭg7%2p .ޛUQ_T"Vm1N|2Pú ;,$2by}2XYV @H JO-+LXT5d!0 \1n[@d rwa e0{ތ֒EcKƗ-#2&w 144dpCWXR~1ӧ)Ci**C0DuJ#a &0 N{ڳg [x_2(k)YVhEp,t dpw |yCC7ojOSѴT N,Z^H7w H>ꩄ &A&{:GL߬@SѴT 2,$D-qyɀd0@ƍٓ~zwG& s+2 &0`2 \.ӹ{nwG 9(o)dpA,j`ҡipC2>fx;,o-^])*,AȠhmڢ!Z4Z;^mƻ)N_! l߾ݑ %^'$|֩# ˀ\xz,!r\vM=&4)ʕ}$wnk @CH G!۷/;;{nVVVe̊ N~3 n޼uƸw~fqi,TsO]=}eq uMq/4A9lE}O@&?zÇ8@nذ!2xVE{)w3.e" $R7o]QH{AfdKz {o Ȯ:jڥz!KVg淫[{vMf~~ffpAY!H tM@o\/g2Xqqa712,hىzTÊTm,ݑ!k2`5WQrifvZl e{Aln*VJˀj=U۷۷7zl1ŋ)ѧ>)+2(NxInJm4LjO?@웫YvkF,Hs_@b%lEJ>ҐٕeK(1%)6Aѱb: b T}jƴ۸+\ZVk4inϭ~bR.ip6UL?Ҭ 1\A?͛CGg ʖRb(&Y7F]9bv"_h;NU9dhNK2+4%@ 8g?B+ ,'Ppۇ+eqK)eK(!o^W-?C@{ڑd @Ao .3wd'׵ܺS[{z_og#$m85ㇹHF#uz V ++UO$2`q|xd jmB +S.r d a2w>S.+a2x421>4< AB:l$20;ӷg)(ҝ{]o884[.a_!HH?}|At!ޡG-<춟2!{0ALeTAŲI tྨXb||ܬ ^䐒I< 1p> *e5^ z2XA,dwa|IDATH veá3h'}PFEy1@w2ŵe˯7Y;`Н߱ڥ?>@X3JF'БA [tߵ)D בp\[VW {t|oݫ5UU9]YYI/\cT.&4?X A5CCC>|p+_a`y9xˠ.2zyܛއ1RuΔL1EH իj^hk>JΎխYdvb5ք{%`څۨȻ7@wŔłU{% tOVde˖7oP !2;20:XFoSǗRn,wn.bmnf.bZOS,+2w> W+[UU,T5ޡ9;׮w=Ul'\ ~VLuS=  )8rH~~~yy9E/O:u֖ ˀeep !woi~ԡМE4Q"4ǶT|PY2r^^멻bMW J"9ih[۽چZ4,tYZ=^{Hj^y{}|kE#:+&2.77vv6ir\G/ "o.*:EYXU ܡ֋wc"䷵ f|@K\G+Z|VD!>cm{Kz/* hYJL>G#.AU#h|$?@AAƺ Ή444vr@NN PGСC'D$VN p 8L~EL{vnŝ/]ѳy8eۢz6vڈHd`_!`2eCFc,ʠ#B'N ( 8ؗS н,ʀZs8S;w>"7dĢ #.))9}Ϝ9sɒ-ٱSJiu1!e@={129rȕ+WhJQ0dd26&uP?uTgg'$WN dƊ 8GiiAA > `bX_KP !$sC6&@H| ]#نGng)(ҝdmKe ɀ8z?;ǜ[U R 8>dT&*L 2`2L x 9TŤBpBM,=:NA(d%Tdɀ d'ddP#ʠ2@C%3C3e=Me4C% @P0:e!oPAQX#ddPݣA\ר2@_TG2Hd@֝[n>w={vӦM۶m[A k&( x>|ȑ#J9sfƍw޹s͛%M  42Zϛ=t} xPL82 ʀ d۷od۷S|p ʀt/`Ϟ=| `Umn xl޼ي )D+2~qhÆ &XnW"^^\ 8~@c쬬ɑՐ +2~Tc͛7x"2HdP @1H5&333zAp2c*M6y'ހd/E/ m۶Cyǘ H&Q ' Hʠ Vo@ff&o  VBpʀAvv 48D/I A'zJQZ !֢ X42@p 6<P&eAF 1&,J2oN%J qUB`MC9`> X2hHZӐ_, WY 22a2H:{Ads|@h S+E=jd>H _i,2ȢAM2b2w4deШ's|`] = ɀE%\gAE+ r3W-.k2r28c$4>'da$2}@"`% d'*ʀduBx`eu]4B2XgMU%Y|  #[OI8}(/yK|]ʌ9|扑Le;fwNis禾Կ<Ÿ~῞yg7g9uf3&ӂECʜ{8Eh>-5W'4mlO?+A!@œwgy{Q2Q%i[|eO$uJt2߲|@.N"5}>}^>UBlHT6UfqtWҏS⦔UvRJm !%m\Ŵ*m)*i),n9yrAѥO6?y\/<d饢Sl4 r>v96^CQC?*d-YثNOmst9Y*:ߜ/{so}뭏vd{ |/e'8mM\'`;+(ɚTq[dJuƊCIuŤ8[*)TXVQaIZshd#YgISf/r֝I[׸ ĭ5U+iq䲘ҘX 3j@c+םMLHa&}Ry_Pi4U<-1F2Xi DI|te̗ ueߜ >|}' Q˓+ѩU1T.] 58R)Pe&i2HRz|VRL>p2e`דJ|[ VX,RTt/@A"'$cܩ|Lձ;WdpV%+5_{g}W[,3iɜ,nZoK:X &M2` %g$yˠPl8%p>`Ap>ߟQ'2Ȕdp65 |:yH >``2@O~Ls`&jB@ȝNkT>Ț΁TEe{We~ҝGşGZ꣏>٣Gŭ/Q], i7M.2#@PZDRu6"]|Y>'<|A'KI2XL։!e4\ ɢط b!0=o"],2d`)\~(߭&&UybO%LD֏5v` WM+.*;{ =iFY9;jG:^CF _/ ,X{|PO򛇦ZGG7E]a;Gi E@Eu<Ֆ)R;jTu+g}F&HOO%IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/figures/settings.png0000644000000000000000000011530214023111777021004 0ustar00rootrootPNG  IHDRjobKGDC pHYs+StEXtDescription[SCM]actwin,0,0,618,623;Nastaven TortoiseHg thgw 16.8.2014 , 9:56:48miJ IDATx|UǃeWݿu/{^A@@z&ET, "XV)t5!BB )By^yu9>;wJN9 0 J8yaQaveB^JFXu;^F}rlP#񽇋H6P>dmu"-tg̺uYY]y4={!],tLVbdLaeCgQsߪWw躉MwN-WCMזTDx̢dk9+SK";Ɉs׈v.^JEX#hz7N9u"4RCpg6߂(7t&}3|$D2 >C"YZq.13 YWqR4~z!bu^,9{׫G㓕w̩αrT\=n'ΰn'šf;$4$cD"H$tz-ϡ>bY=E)_]2^/]XKԨuZ&9R\H ? a}@Ñzy+95]=)DI$dv1c U`. * 1pgbvVQ"]QG7P;.u&`cGaSxuS(<)T4&H$`5 1iy &-TIK蔠< ';=c }jXi8a'!zU|O:[kDxv@vב!; WuOkչSb fqh]͕i$D"f2|x/wŭspcl4흅k^ĕ]Oi 4pC%Y}ZyVrpȟ99 {ԫz2CrǻuX M5{e0UMc:$ANHcۚ#uwsd܋bU@-$I̬R_,Vj3D"YK~;{f%ڏ dgy4\5W vjd3&v{}ZQH1n~% >'2P,Qhn5udY~Ķ}c~ $ZuƨMd#޴. r.= J +v=J6BI"HEp,a6ZSf7ph;wK5RѤ}2**ZuS{}=g9:,.i[]~'w/6.s" a%{՘G)2il06'@mjA-jM"|UWsFX?TD`r2&H$S}s<,7qGl3 teOemp;PpǵS.; 4RF㡡eu@X~ۀbZ:zq@-c`kNφB^j[qmk} "kdOdxuHk}-Rހ7`;" a8`$]uBr&ZJP[-bݾW@Q6kzؘ<3(cSίVe(-Sm>-WIJx9Mdz|6Zۧ/* D"Iyonyn\\'Mz]pa\\!MyGcy5F;wPr^9˛ ,E>b(c]H ^fnгMՃ󬹁sx˻i@wX nlT+rߊv~7Pc• Amj8 dc}\N\ނCCԔ6O8QϟpJPӻxD"I+jpŸ[1.U{ɫŸL%^Kg: p9ϒJZ=uZۭ&PH$R4rQ .홋:.g<\ҍ}pn<`4\kqs \vKō=ѴW*|%tO_^8\fE 7ccWbMq٦Jķhm#8oW^zzվ,2cGiϨ)ܼL|3NfW5KZ䦩-GmJ땛OkZSZ4ekC~.å]և𷶉{8Mmƭd%6]!}9s7wڎ[><݈"5zlNH S7 j+A~f,h~>O,,b|hv^܏~iZIxhw ൏Gsw&h<)g:M=j6#B"H!T4V C e-¤TaJ4{[jݯ~P@S5l֥B]|Ոvv9j:Rv齜߲AmG15 ! V9qޟ$UC"Y\t,urgsK0Sv;اT5MN&š{~4z:g=PXNr*dܱwJ[G"H$$exƱT=L-\]$O(&f(Qһ>i"+I+u~eHVtHVU# 9&8#|1e'H$D"BX;vT5D"H$5D"H$D"H$D"H$@D"H$@vD"H$D"H$@D"H$@D"H$DF"H$DHr߆)H!ضNvD"|'*"!BM#;.d'H$A؜\'@GH$C츤D"H~55gH$CtH$@GP;q2}??' H$@3-Nn_N4Hj$D"P 5iDH8Cp'l;@D"HjCA{"1 7|{Yaaan5/S R_`35D"Y P=dҘVzL MX_D",j-vЂ qFMuD]=^= bFS'm1D"B j =0q?D}s/£ZaS^7yʵ~yy ~UgH$@-6~c+ݍqoCInza_7^xYj zJxʽ_xj}KF"H$󚍊iOޏO߉cƚx|QԔBzAE;3: jN H$DmvdA=Դ 7<0x[҂>5D"L jvdS}-j[Q_ ;7bwj@_O#^EOȖ@D"H$/ |m?bQ}?>^oTJRwgP>'[b%P#H$ɐ6柇 %Zn^&>Y'5@D"Hj~59ҙD"P#H$ZAm{DSӐBHj$D"P 6Hj$D"H$D"P#H$D"P#H$DFF2 H$jEZr D"H$ќ16H$D"H$D"zg"D"H$AD"H$)AD"H$DBHtH$DF"";'1MVZmȣF5D%9/Qu}d+xVqA! Oeb􌥸=6Iz |9(/W<{C }OI$SDH8z.?2"Kc_ b#i߇j$ R8ڔVb;%̙3$T+쿣~TDѾ؇QCD"p^akCw1T[[#CU(/-cM=.T.k}X[kZPC rxyIfTa~xsTIҭ(0Z\S9iA.ԙ:\p{Des OW*'TEEJq*'CӣF}3G-,,L^Iq~HO]= rTarFg>CxBbE\? 8P4=ux.'vktoQ=@N% /L\N4:F?EJi{/>7⾔^>M0k+d Azի@.[k=ޖk}:38^uylk@mrncè 6[c(ou7b.y3om,++ #GͰ]a~}m ~ !&S&]q E(.nO_0Mhw959f?#Gqt4>eM71 Ca]H]-Cn:2{r=pR}+Or\KzšZ} }I_Gӛ8x=vh_C }q(dMkz 6ރ| RNjIbDR,ƚXr.}͵>4Cb !oya:*-*Bɿo0o8ĩ߿+֮Ca F՗ǕӾ݇Q yH ^ my4*ʊ1帡1D'BTV7i=HZuԪ EG@jfQ=.9YgLu(QZq_`y*mۇ\`ڕ̲u@-F7u.G2'N)jF7:'ty_(Kt]"M΁6N占p -f0=@RtG-q,^VWD>жk|9^?AϡӷLj8ǣ'spVI:B r6գzpotkۧߤyBĉX),4MTYX~;ੁcXeI{))z;k FN幛ѾGK.$[igܼ(:dkgb IDATDPcWz.o:!u3`f$'Ejq"++yyX5i-K.7h]!i-KmO#@ (|.)LCNN6yX}?z+G:Mfxu:]tm '[=<߉V}cڌr3%S/WWm9LjU^ a.'(-ϟ_/>+`V{*PN}mS`#J]R(Ak"lI 2#Q$oT͸+W0" }#ƠI+{D}5Q[^mK i?fǢh%fBV~6%(ǐiKp8`ɧjOq^-:ޏ?&7]Fߌ_4CgZԴ_<ʥir|Sy{WZNjg~ U.!(]]?$&=ݪ f/YRG)یa@xky9]\}ir@~C+6gI4i῿ވ{gmSYy#&sC\'w^ɵ]}5O؃y@>tr#zYH0c5O+?\JnxrO|<^.E[ \D.J j,9] ͦLe|U]޴<,}Jߍ,|?:HNI{RE9Mqw׉mSUUrGhV:Yy-OksqRV=/yK Psxvi@uu6D%8y*`0W7Чy>M:p;w6,כp/Œ"T 퓨y=)vQN(E!4;p.xd'wiXZ'"T [#*[_+ެ[ +˛a$Mƣt彙ɮW'xK.n7xUʍ@GA 6MYQ?Z Ԑ^<* hgH4iGR Z͞TKʡ~g㤱!8 'C. D.=CjRk8ytiX9pgg>AD2g}.T!UVV7zφy`=Yr:{b!zfܨ<-nz:_l"δ%bNqr]f@MHQ}Zid.m##Æ /Tola6{=.ujc(q $Qe6l$۴W7yȣf\{hq/{}Be~Z$G{=5 ntt#Oy$5eP{T8>-P{th"ƌ^G-벬6e@@t \ jQ%@˱flFW2YգV]UE2(GrH&6Q:HUs?)}Q5W,;2x[ڨ3u&ty⭲ s?!mInS7c/{Eu'4:JQ7uY{HAmJGMsVcԇDOڨQ1@߯Em8:^S rpA+yLdddư?"Cpx6U;AmutV}5Z|v ߉w㣷7`WWP cS B;`v~iԌϻ50<Y0XU}ՎC)\3&se# miD,|u|'XyBZ`l/eKBdddd;vkwa]d1#KbX> w2OĴrq^G5׀OCc~m qԴ}5v1%2ddddF7ӂF\LIF@x5D2l jd53>)3=,,;6iS:W!52552ϰ)>@Dr| />F RjWjWjWjS˒>OmWa&{-'*k*OR=ÁvR+y rt>ڬEb+%jj$RK/Z(AmQ|Z"Qq7aDբW@\FDD"QB6q:5ǔ0-!=m[/ ԔP# GyTe#"F]I$Ye+کt p%܂)`lXrp2*`>Ԫk*1?j,& ѓ1e,H^dddf4󾙀.. ?Wyic܋،- L J+ g5^6P&HF𖌌,_ɵؓPqsU`RQʱvOVGT`2,YJq^zԪN֔܅yyܗJjɉkMG5#"yj=ޗ˽uSd z}8O8$522P38qSs֊ړXj)IO2221HKH x=E&Ԉ/(ib匁 .L8z8tctlsAs9Z!KPo }yԌ|22'3QXy@- aW#1yX56- ~e?tŎn N< dzz G=$zګrLjrR}92+y#[e=AzAM{-im#3IkU;$Zx63Xzs,XV)tXZ͎w[i} jZ TߗNv5޺('P##3QC1 j:+'}Тs<?aXIG ,T*SV4:喭5L0-xysx@̜bw8FVZlkrS+*LבS)zԴojtFNy܇A zgSݲUxyxcN+ }?NGM5#4K[:sy+^ϞRi{& K0ԤjVr522s1iz}2H41L< r譥]'>uub֫ lf{@(FFFfm[\v[$@sB5X]epL`NPΤ9&'ނώ&xgEqzM?QM7 ooQfPXOES򦑑Ymu11H[sMc$+vf'IS |z9>;z&#~fƫ_}v4Cm83l+Wq5]|kQt2ѻ>Beo-ڨJvN1^+!OiK#*|g8#G;aڨO&c"MN )>\;ޞgF0~MdF =&lz@͛qB+@PjP,YhiUu,qfbhL,4s6O w@cw^Q/;.}ܙZu4lp6fAMA@-''GݻqAddd`޽U]]M$dAP JV=# 1(вUy)DzRSSq _ u֡XXn Ė-[ORg2ZH jҺϴr(k Y8W2p[vqѓ"c/1iTFfPsPV9M{9m~W˳.S[N}Y z*d˥i<^68a+/y)IOA"jf?իW;AXLL pl߾?#G“O>c;|Q_#'2zԀS;_ׯ=Z*zY&jޖ^dbAt7w ~߬@-aޔ,X)ɜ#f} =|d zsG C+SϟKbƌ?~<~/pCǍ>}ŻN5AϠeIr<R ;JC4:ނm<˰fWvµ[q$~_ '/tVHTaNaYu&x:UںsߤyBĉX),t03P$jO?r͛>H?֭[cذa7Goh۶#ڵk>@͆']ϲնI)PMI6j 7Ă՛|ǑtechуG%'~1@j\ԛ"2b(|.)LCNN6yX}?z>lըԘޞ7omĈ:ui:m|Wh۶-ƍ~7*tA1;y$pMPSQvROsSf:)sgow|ZK*ת/aQ(zZ)@lJ1b}o=ж66,S,)AZjq,JZ֛[bv,dgmS aYC-k]ԯ%Qczzp( }ooK`Æ "1555%ɵRr@ cXޓMxDXgZyZyYix;E68o'kLlo&yuo?z#f!֫'g?{ ZAfE\%w O"'a㗗;HѥK+|x4@L$n}bզCBj"P+b:SjfHEG- @`|q"N%AuFm)E80#f($)}'.nv^֓ݖ }VVVpdegόM95>Gⲷq`4e$juBhbQ.y#P)h ݚS6^R;eBgΜcǰazi!rqBͮPjWvnStm;5C7$RhELF'(KyzXϴZ.Dʼ]L趟46> DGƚ"#bYԘWJtde=zeDEj$ lu ţFmJ> jƀ MݿY"7iѐAnr$6D5{d00yHtAyJ@MO%K敹O?%"P#YLY.'7+ho~o-,ÁZpВ 4>j@c>5ѣ jf:BZ`hq<~2 nő#}.@,gY=Z'C*++vOIv)tSLYX>B=NQ3Us8н{n}4nDX>|8Q1XqX{6W\q8:P~Xfjk}' >\~!?ƺp<RSv)++Ő/ Ԃvlj~C/¹fǢh%fBV~6\!Ӗ = u[r /ZR5']PXr$%ڦyj\s ߑ__P:jTgzʍjZO5=lPӻ jP36̃`W|Q;`5}m]^O]ډ'G ! Ic뿻3"#i>}xrr֔:{媥{hy?yȣ ]7\5.BzKkYfoumcђ8YzPTȴԂez=jjiB<0+ԩ=0]Si>/Ba;"aflqFgo43T{O^ YBVf:= d,lNC9F\m9|ϴ%bNq夙}hxڞݻ{#eԈ!лx1PG]Чg}:t2uӪ2⓾/,˺VB~;IhȇAY>wk;IQקd q?$(Zz [p( H+[SAFZۣFD*ʋm#5y%Ҁ@d!hp@[} Xp( ڕ-+,|n8@m d/DFF5@'t}dlݢ-> j:u 7܀ڵK/'xs֯_n w̠fDXSFLp=$YֽZңߊel7|S|+W_}%UWW#::Z$2s%ZT5g'P65Q )_V?Sp}S>P37[Ԩ75E$Й@{@C˖-رCիW#//O|y^O ;u?dK~sJq[ 1>Y6fѣֳgO|I1-55gRz4Ϻ$ '3^S4wX_S$4$gԽB> p%P QDnо}{tEk.qΝ;u{Ԁ@M(ŘwĈ/,\GNj%WBha:G vm~ 'RN` 04C>CQ7o>IIIo58qϠSt{<>OZ/a?7#9pGzz*ґ[}cмm8:MOQ?bQv]R m j~7}y esr[o /ę3gߵޟj5o.qQ t!c3ԯfSTTЌ6zۄ@} MIIn@^Sڦ }}QiF57A <8n'`yN,fSVV!_.>4g HaN RcQcg!+?ChTTcȴ%\hP,j̋vEaȐ!\a'wT&\o\%4zr0qm/pw9sxo&yuo?z#f!Mei<>JmNˑkCezrO˄>;;EغuL_ާO;v,0Bj"]xCZ!e)]yYnvOƒӵ@lKW;{6ij7{RyҞ {tNSubTUU}x?P˕y7,QDaap(?KKKݦWUU 􊊊AZp=jI^2%܉^!yP|{L=5إ UpOǘXkEFsچ;z\E1]j}uy6Zڇ hgH4i޶\4sɛЧ[ }ã ڿ-7q7FgÏ#2yW&44'J;z7óFޱ9@c=6>Ϻ k]8il%HsQm3v"݋3\Y׽|V'ނg}M3g$*G-ТqUZR(S? d,lo&/֣%@mJ}F۰^BIjM 5qx5Wq0@\SSyA͗'O]t9jGvب]Ad" j2PGPxWa6kѽ oߎ:ܠ]+'3w:')db D"Qg8P TtT{J'yȌk̓ -!MpP#jg8mq1}r;zFG!6jkkhB|Wim((,mӳ3>Cbˑ 񬟷;X"P### pI>ZjQ W {]~>b*~i(3>ihy F6£2 BeֺDYPc5oYq;cǏ!Aoɒķ/bgZroͮ7 0Z7{2ӔYǓZ.W3\:ջNelz8]ͫVLXOdb0&I u2Ok9jfÇ'#77KSRRpqQ)Ճј3g_8몙ʼC]܍[UZ'2m7-~21^Hjddd3@T(-]YZOiL523恅Ғh̎D2LQ+-)=Ax"[yE6jWd>窍dt>,--bca9㳰%c{III8|P=.R[]#3GvHƔe:dGޞ갎]vȠfH5]l<>14(###r ?oԍHI[6Yzc WyMzZeiW~˿R4 , 7Zf$g†עf8nЇ>d]ݠǎNJNӻ=b=%W̸VDT?b؁b\ +̠uQN{{Y]ݜgrs /9ZԚsyyY:;;~-VQzvek\19|[֭[V( ?sX_°zˋsƖZ?ղUf~19$9CuPf۠SԖ\;0߽{W@v9xtuuY]zN6??o-..J65O֚֘^UO7i[t* ZoZ5Z_1Ov=nNB.OUXrWUNMݢiBb1$%A4L@Tk Ay]k9ߦty+qLNKp) Nӂ^$%u_u;LH:FZeWgu8+w0W:+.&HU[r؛FܺjBu{2o^ᵨjM[P)Sf`w&[ʐv`8 ɞ&j϶o|y;9y=-uէՑnWM6E!NCRMnnUEV|4U;%MCtZ6 Ԯ_&3W.Yߑ@}ټIܒ0Nr%vz>.#,Dk[MSVs}Coɻ{|7<f+Ī{PMsZg2`B+Ii[4ݸ1+/?!y雟c;dbߵY\]]54ms {~A &TiO j΍+/|NϞ ɹs)5OPg0je >sgc󯖺7k3t}zn]^kNCP〈PP:)5Z5&CfnQ#1{̩4{P$H0"]\$5m@)m泊-ޜ/|\O7~2,1%ETڿogyu k@PCDD$EԾ?emߒMšA iyi<筿XS> R?5_s尦A Mux@䏾U^ngΣl:Eݠ}|K/GO3򉯾LԢ j%y a^9Y+2ugV]v-wa6/G?lsH.\r55 Vk>uܺ籿yA~qX/SrʴXus֍'zѸ~򺚭^SԮu,[N}_fQVVۍ'֌:ٵEբM&9$uG(Fݔ[4:}KPkpP31 vAz {N]&i85qNJ WY6A~u'Ky`6Lۗ _7A>~t4VH R?a^zO-iT][Hŏܙ/xX9Wzޓv0:uvNp@I~j!ߔc_t^]q_W+n!0-ޜiW:.A QP"""A5DDDAHP#A FP"""A j5 j5[I5l4j;0"h3sy9y }rdxE ݑ+y|r_VeOfEv[֞%Y%A!!A ⎆ٻrv殜*ɼ , Iϙtet.Z ԐqG[4NCڹ{w4o3Rt)5H4~ZKK[4]ouM{6p<Fݝ喴F@ˌ,51XP㴨A Aߨv&x/4zN9y&w:15Hj Pji$4AmmN'A"2Vje7f5OyM߷ٖZݹ٢E/zvyʖ:%r>&A*5@wSr^tyj./㶽a j!-N,+CY!jQ4B[skmԼg-^Cf=]q Mv˚Lmpz?XtʮpVv`d1uӢ) A- -saVAի^ZjB[xn*]gL4G!pn#X=iQA-.kҥi/]az=^':M@i;Hm)HzX<'rɮ̲,A MA- L[ܺ>M|;my.u.\.&0 ?,O/xTLQ\NE(a5m2:ց @ ;htl4 k]Jw"P4UCޓ4 j{W(A !A k]K޿*(3U9PԐ#",X Ԑqg|} ѻ>V|4U;%MCtZ5H35hQD$JP""b%A FP"""A j5 j5"""A5L\⏈ AP8$ 4\^N^(H^CCwt_ןeٓY]ǖgI&fVe jhjHP!mj+Jmh2/˾dFss&/ {e jhjHP-iF!ܽp;):\ iJAM[$?AoLXۀ >hwg%m`<2#9K go 6Ԡ8-jԼ AzYB[i_h4srL>5uc gU j 5PuK[=Z0B@Q6=6tZk|mٰ^͎IP@WxjalS[*c ]tn]hlXǃSEi\tu[v@sF k^bHjNWkz@e|]}< 7NnY~ NVY̕,~Z  V4Ӏe0_B[xn*]gL4G!pn#X=iAͤ)@.Լ=^':M@i;Hm)HzX<'rɮ̲,A MTs Dݏ^ u jQ~l29NAMGPj2ܙ- 9_9L/P0YkPZePk/Nu2/9i-z_L@P aXA *4hֺNDyi'KiԶJzFP !A k]K޿*(3U9PԐ#",X Ԑqg|} ѻ>V|4U;%MCtZ5H35hQD$JP""b%A FP"""A j5 j5"""A5L\⏈ AP8$ 4\^N^(H^CCwt_ןeٓY]ǖgI&fVe jhjHP!mj+Jmh2/˾dFss&/ {e jhjHP-iF!ܽp;):\ iJAM[$?A>"w{>joE;-iYj8{ciQ71.BZrU_h4srL>5uc gUw d`ѢFHh>ڦ75NPTEP|\k$ЅԒE.OUXrWUN5HQf‚5?#ԪCNesM[mm~CI-XVCZ{  nQjZ}MZfnBݲ&,e4#:;+Y jA ;5yNZxAVq O-Z~Zt묵^@؝ɖਲ2m=k)QAiiwjI E`:AiO۱5Fh[HAZ<۰Mvee jh8Gͤ2Hhr{MWԢ;Gi t 85%nw& 4O0t^.0@t~gAm>PhA8}ɼ䤵vfR@\Zr ^hPӱ4u*݉@T i{OZ4m]){}"A k]K޿*(3U9PԐ#",X Ԑqg|} ѻ>V|4U;%MCtZ5H35hQD$JP""b%A FP"""A j5 j5"""A-XP{A jXG5qPH5h4PU92"ȁڦ75NPTePnnTN]iCǃ( @|+BI ԜZ05~]chAmRZBP""bԀHP#A 5DDDA j5A FP&G.GD A cA bFxbf./'/otU ȡ;r`pE:/YJ{߲ɬȮcڳ$3ֲ5H45$@ѐ65{WܕS64eXA299|ֲ5H45$@і4 iŐv^8[.C-m A Mb4y>uA5l 7eyף?VyKN:ǿ͚|u/T9?u^v'2CP#AAeQ}*_6ך/7O=' srEzܸqMvv =՚6n;yo^u.˔\2-3Vܺu ^4(뱑FP5puPkzHfW _6dϑ!k>ӮW7^:4Z!Mfqq^2$7cjL A-jƩhS/%y?\Y7G;!smЇe˩չb,JVxzQԳ7FPZ&ݺ+zmf~/o4g=-MGfĚT]oN-t_7~>kn!I[I+iH{t?({XuzG:{׏1˭YN8G^5HMP3 ;PL4N_n|uGԼWnA@l5/Z4AG/(wwjKگC;~E޵]U7kk5/OaeR5HUP K$4yȠt KzBUkdh5VZ¯>kӽѫ;uݝ{_9ٿy&]+byZuVO^}AIP#A5u jift P(Ͼ5?T3v~7[sҴ<(~WoZ!P(.Nʨ A "j^~Q(EWrMyp 'Ԣ5>G(Fݔ[4/碹}tj5qLOP ԼvxmI3mou'Ky`6^:+_7A?k\L`_?:NQ+27=v ,O*U]]y+t=Il]Ayzuu^8Q?5 [) WH CP#A FP#!""j@PCDD$ԀHP"""A5DDD%("" j5DDDDA 16Y j[ j5DDDDA 0T jISj1Sj1S2Msi{]m5i"H5 ܟ.{vZo#4)Οzq+0?a#兩]>vӄs%탕փ3ݿM}2m8$KPKq|_*kK!$nOZ롙Z86P^&.AfOn眦mC:{t]A^mnaR㴝a>fz0[.gZa>GCnbm~;^NV'^Q_vh/A٩|MFY|/ j_l^8N7r5y O~ؽ24_8molsW[A|Du|ssR/ee XgzGXe>|nvj2 #yy;h]gzz3oRA{ i}7F0) _N-I^/;e/6moz,'V϶j!q}xmׯ A>znQEkk3R6a}~Ly3Ȳ~5q;hQwa}~Ѣg/5Ӣ^%QϠ-Q5 Lž>frנ. awE%X2:4@>azzt}Bxd9/'Yɗfxuym c{vmg` ܶ'hgLa|~>_CN'}>LmZ&mYz<Ut5. b+Ө0hXP{;w&0$a@}P?c5VנZv()OsDP A bJS7z d]Zޯw0QIqbLBVRZ)Ne ɂcⰝdn j^2Oi~nk2ccjm^˘s7[ONt?U~u 5 6 YSAF2wMϴ. =Ang k 5yݭLi{n2{kH'51sQ ՚']X]Q0oK0hnj&^UP8hy^c>`~>.&bݺ>kn}&/.Q j-[k{LbZx]3)[.&J3DNn P/ji/@ @L!@LiXP{C5wn%BP)5BP)5BP)5BP)5BP)5BP)5BP)5BP)5BP) joh@})5BP)5BP)5BP)5BP)5BP)5BP)5BP)5BP)5Ұ_&8QH1=` A bJ"""bMmPCDDDl j5""""A FPCDDD$!"""j5""""A 0!"""=e>-Ҷ\n\PiHnk3# jxOԖ4 iׯqA Ójj; jHPCDDD$!""&kWFA pLwì-r +C"":35$+>/-/qwlzR[SateHPCDDQ[;4`wf"X˧#֠r>9*2$!"" tksskw}2Z5DDD"^.|>_4E;ODeX(-){rk]Zp-C""b mZ}'dmm-cY -[s{kQnUe\ if]ː2v,ʞEs'EWVe`LLڝ;+]U.""bֿ`.Ֆ~q./ʣqPf֭OD]/arE""b=s[/~.R=pyyXE̓Z9ԧ|]7~pl1MܒW޶\륆iڥVAmjE|Y7~k2{A 1HPaMAM˵^jpV6]\%?<<'?3j%~ەn Zʵ""b KrC=œl=x VP*yˬrzM-ùW5DD A7f{`f) ԞVn]X){z\{j,,+[ƭ fkݜ)s5DD A}EY_RÀӴZzʀUztkQZ7o\+& jAڷv_oZrY75 8M~n}|X&iPӮ>Sl o\,35DD@AmWX ۭ9]o_(v%^SS'r2qR1M jɃ[g;.[_x]nݺfkl* \8NPCDD Ծ۳XTd#Ma)Pve8{uJ.]s-C""CJ1ׯ_+q}i2V 2Z.ayY^^xV.Lv-C"";6=Jj,ϸc}rpLoV8%?!A S'c_"ݴY6}K>9P_}QPO;2tDFNO/7h [n`R}$O}2m2[#6@YԀrock?gI} I˿/-|i=cGuV(@mFvr߆VYmh5ڤmo=53RzPgϖADDDXY/S IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/figures/shell-config-cmenu.png0000644000000000000000000013544014023111777022630 0ustar00rootrootPNG  IHDR%^bKGDC pHYs+ IDATx^wtc}KkƎ"Ėe[VtmՑlIX,k˲%p8z {%z# vN"~^~$ș$k}9r㜍67ee݃/zh#>ß>~C1g?E>}>S;~3<:JXi@/>O~#D}x?ׇ#8GZa?}?^?ãCϖ#?r'"|3НН ?oI ~??o~O&;;G0isRzҦ[YK}#wя _u~֛zw|7x뿼~ׯUgU׮^7y^ـ7Mr7(o\_^'_֕oR\*o^+B p_ƻo\o_\W~v2o/ ^};ׯP7pWׁk{;o7%W\C޽vNu ]F{/R\xBq_οZ`o ~16p+ !Rho}{gnͻ͒ fZ] "o?g~_?ݯ> ?&C>?}ox-ѸR0x?[YsW k^[R紊R"i-, kH42fDS(ڂN_6,&Ӳ XU3bY6AcmF_1hrSʔZQSG40&qvrT3OMNL& tx9'FY/LO/b iib D ^[RʬJR"OЬ 3}|frT?125>яC,fg\n/i jUx\@p2/z p`DJ]b^ 1pJhD~fH #CH0z &{DOH'@كRoW"U^lj_ v:{CEG {CH|p,92Y3"x/W/J/DTERƓc)\I)G)$BђBi޴bbV˲T ѱ\EPRSQMUԺ^2,ihY,GR^x3~Or}i{ZSψ&@m{&j^#q {}p/jXDўYcmEuh$Y7IV ;ݷn׭EGo_?>ȋb2H}u:U[ b[r&ii& b_ɲ0;hkιuĹrn#69ݾlL%t֨MaܯdB7+Y,|H`$Rzj:}`,LUuoGu,)T9N P)yD)Yqϲp)؀ `mG,Jq**tj0,M3+l^^떧P5P-+QĊX+eF)4E%ekvzyʰ31L@k-JRC TKJBP.˕KʢavD j&ju} %"^SMDXQ'^Cd*'DyHc!` )A^"jNv8P==42TC`(C]AC{C|)wÝ}.7ԍRwHPw8RMMG VnsKL~B|*OUKUA)KBiHVI+"YE,#F/Ғ\"I^"΋%y܄Ky3c2 Ffq0(JUE$S䀺,הR[UM-%i`^3Z֍D;ǥcq8ۘx:ފ MO|70$LowL-LךR5I I/Ӎ,͘pBC"ȕ!67L}qnnZs{6|p߻CԽ׽qy.[a)Xt8ѫS ZR]JS)s*dN*Gia>i¬b#:Wnq8nh`5ca[VmŐ1N%VT}J[.vN) TW@UTM9l2/X,eL&UcMAI*) *W Ҕ3-N[UZ7YI9[gf qn L 3k'j ^EGu'QQL5P]P"yJhWNY7XnaE=D,S-KUŒX$. $|q+\`Ln)X Fi^' Cx~`<70֠4K7AzӽCޡt2;"jF/w"2A \ \覀[//|ڗ Ҡ"H@{03$ǒC#(#7OrKt^)`hK!^IǓP^z"(e0|A$'j ^F#$7j)ey<'DGQ*IU%BS#+UTUC)k+:y@lݘ{{~4pҤJQk2fG6ҧUd?ST E@5\UM'¾z@=qE=qU=y=疍"~fI_җ>;v~kX P"Ϟ̐yl3,tH2il9]+_"`܋޹VpX֙ui`*@ q::}pTEg7$B[d8f^x%oZ3N T~*U4*FЪCSSQT\?=oɚ̥Yͱ<rwͭ7tXw:6ȺͶ>k]h+Fˢf*T6- 3%c2nu֭MklN=K8&`5"&XafX(-4L-ԑt3# bŸ5kպ5ԚR*WH+bP8V'ٕqVeYE;& d@Mc>4#Π eȹ;zAĠ@{W?[@Ǡr?ډĺcQI@k0R}c0-;̏ "Wa,8$Hr'^ %D '%ORS^-ryAXhg0(5 BJ"4riQ..I(e0ɣY4+ˊX R.Je"TL@\S5%-ӊμ:mY7!Gw~]ϗn0K2aMsOmg%`Y4X!,C5P]<)ŃcAk'Z=qG}GZ0TGx|7q=n[p=X Yt;N[1Y6sJaVhYv{j>+ n[v4H aBkmP`=[ x|Ϊ^󳦔e&a6L 0MJ8UٔXrV[Xp+ϚK,?<p]Ywmk ׶hȂQ[Vm9o܁]w`o;ӻ7ݝ;v ޱQi 8)D?KlV-h`nTdm-l70Yf,[~3Ե ԺR&SJ+B2O,x5wa]gVZex44QhP$ {G4Hk 9t ){ww |g|P9u{˽<c`,Iu `s(5Nt$zF)-3ȍ $BVKȖ,qċD hUEa JCI,[kY)pz'JYFR 7܈%HVBiFi49 R$J S HY4e-eӪHd=nAzK!իO'] 9څ& ټ}.kf,HR{RO'wx=Y#ZW xJ>wʺȹ]y%!X V#Xo%^* Q$7#&bqxhh5_ xgv\5ydʴ+ ^ϿlAM䏀؆>=S= TGON/^?6~>~z݄Onh~Bu8cVNNNGdGΤGΤF,9g/C~'kͼP/K YH)A*4 ȕh[WCz,LΧ3l Gmr.sdCz/ͤ҉z2‹B8PKM9P`!Z x|#L%px '&)=rJI%Dt#^BdzB*xL87*z\e}1Bp=ތFbXtK m`{|.ӻ]w`E@l7 C e`2 E?k=*>T<l9:%{-wOUQ誔%yU?1M)/_^ .yKCB'34PA%h@xTGZ{HEpƙTz`D͝dH{$3¼<G٥1ne^f2WbptvXIFj`&Y){v1E•.yEb RQI , QJe,O<ϣ 6(A/Y^aY]PR&^i 8@2zy_}Ty|/nkT0nW=,AY9"?W=/N틆Ǿhz싖Ǿh} sO|_;#Oޝxwg;gC\i>-rd |nw{+̏}q1<.=A 8䘔5c<4z/~ʹ?lD?^Wy6FC45Q\Y'R%s•[pGGN1rVfN$J- IDATm'Rdl%AXMB{rc:oۙn:ϣ叡)盎S P=Lgwөf*ţ(hh)BSr$ \S3'd|S"q8i^D @hB.z+'mmU_xCPN"M5'l{HmH!J M V@d7!u,D+>dԄ]>m⾶'fAmNumn{AHl\LcC)[,۞\]Yǎٺmlg6Z!׬KkB*O.3Y10!e2` aHr'۞`%筯#g_i,:gCjz{+p;v8P;tw)pt#/c5TH{43>^燘2xsӧpD߼L8 ߼w-\9R. yLb.Z-%<7WupnzJgA[Rz yf!eMPs&EB|=q\v7G/b3R.` -O1 tjk>Y5z"kZx 725x3J&vTbde2 V X!)7cm G_dcV8N":gzۃ*3$^H-b"ہȖۤq%DZ`ˆw|m_xAf(e'H@'픣C7)X`LM_Ʈ=09Ik:l>`2N<wεkk/O6unC])Ue"83keBe4Zn/39 vi`fd|t":2LDF&);'& ALa-r% \XD5Kkxmxr<>Fj/b7)B!}kmH9R)MYKfm ss5{[ ؖ rd((R.] pjk5gok;s9k(^.(eV+xTܕfSm^:-sY\3${Ԝ!ѿN?hȯ׺mmzO:2 BDl 2;=%iHk<"Oȗ,͜2OP <27fO 12y2Wla%H2q1/@/G)5b |EA2E"/g@)2BEF̊U9 *)ު}E/mvn`X'Vt py@ic+ dlr=eW'Wt_G=1>u؞g{\O{D'{R3}0johe3&CKF?}i<dw eEʎ߾k: yaֲ`.KN۽P=݌'#\6{ ~mOrWDWER=P.VPr?*\ =,Ynh,)}ADJs#$2Ov)'Ni:o߫4]ƹlf)ۭ>u ?uj] , :~y'hTr7=wT (2T 9 '>4۷m e%8mMM"_1ndpJFH0 ʿo$ 9'g 9yC:CMGt65d°Z8q8LIYRn`0yK4vcxXN.)"/:_?OIٌI s/NC67Lk Nٮๆ$&.z3 {Bd2$e02a l ;8<:;^ sÌ=;J OF㱡2 GF&b#1zr)3e)Kj\)J/m&R J\^s9Y%e2+,@ʒW犳a%H &/:fp#tnƍ2Qe1,O^ȋ"e 0rZ SR7߬?bna0f +ie1m,`gB\!ll %:\' <|W(|U;o/Έ ߺ}8 GO ˇ"C񷿚3}:X/ 4b~?^ lbۉ䮃$~=aL&s+3(G*/SR>c"Ϗh GQ%̼=Ӆ"/{`SOfI/xԏBk8nQR> I:rࡔ#ĹBIo.nKmh`LR;=LM+I򑔩 Jʧ6|}KoM,vb?y,BGxq/@ lyD]"ef Z̑So3JLGPP}5 [j<2ːES ~^Bұ10ͺ3?$b)xdg-PXBLs>ds-]vW uў[sD_'܋$B\ ]uBo[тk}ʚ˷FAZ4U'Hᄊ &M`6_wc˷nH]8a[nid4LMF]"W"{~~"+(Ffo4?k{`|7O<~?mOvkv-34?;ZY/2KcRi8\2'~}K}w쌹/ 00&[_>;s֟;^L&1&Dm^<ǘqN- ,qD5\@CPlN2,VM ^frHt\̡,̰)2Ky`Bh-p9<418'G$2ܹ V،2SД2S!zuQD5hcmܨKSy!m6d,Ls)huBPc}'O?x>??X?*?, 00~ItLA&/NHWon02EӔgU܉(Qmlx5l9 yTRmda>k<@ԜJ\ukp_Σ{tٖ*PZSn@0^ '0zV;lH5$"~ 0ԓx?w#+xtJ`CǃqjֹBŪ_JI?7'>>2偸f]񮒊D]sy״ͺS&cH;}I }wX/h6Xp[8z%miǃT䒸@ʏz )wwͶ$NY(ɥʒ.AJyY;&e )_ _pb^Z.@)7.#-8EgԤ/q7qZ2yqOB_z)'p7N1FR eˣDp 7 RǢ \̈c&8EB.&[PWEADŽ RX<+/8x-ʱYS ^`8gL!2e;Ǽ"eI{e˒$OD)۫Ϟz`6TޭKrq\ک ')#UBe .,+_{5Ҭ.͚pknͦ}pNSd|Xk~Cʡ;d%q-R~WoM)o;zJʬ gOL_x6|z  mG";n"$u?e3WqRai^VܺyDA^r!{M--~x1 |m/Fhh++ia nx=˹>\ϭXKEledqg 6B(fu$bP'I=+p-۱-kMA < :@( s ~FB뀸1f&d&›{F~#~r*r2w*Q7-3K $e26,Slk?2'B>w9^\L\kqJ;`q;Uwc6'.ɋe0omC&{H/|L+kj%/w%= xpw8ڇFFpBc"9<adX Nƫ "jƛc1 FH3&ؙeyy6H2e19T`jf!A9 GJrg?/?/O>/|MEa>_}/O>~ٓw ߾i?}cb zC1u7 w~Bʮu/V(wq\b>74g@8KЊL铷eong= ZUrp'! KIK!E[*w`b \t=ӱjZm+i6c,efKҌdW-E+F4hQ6Au;ZV6Hۺ͵4_nk6 n,m[]wxNbl njمly'o}(GN5}o/OvٝJ)Oݐ%Ur12G/#K/N)]G%|hK@XCg:\S&;Ƚ|r fkxLc02Ke$2w`j/~TcIֽT] d 6.aƻqJԌXh|p<5LC) I^,1"SPc X*[&F39HFi3@)X<_d #^mL\`CdR9‰Yf2|y>eϐ3\2,-g2'v.) IDATT6ߪoM`[;=/)v(F8r#7p,ddϞuck_Jy=.wg>ǚӹI &or<1jF M%X> "ՠ![a#g; (kn  sB&o3S|= |p s ~35m>2k^1WL.k E@c,L ´b.K湕ٹ5kԥUͭڬ1;VmYRT#?<w21`Kdž 4q_:7BFpw&.ڲɟ:Mct]=R2L-HD& &QuJc.Ɖ sDʸg`?~7PEVpE|gȪ wfR&DHOC8ܴ3 ц{p\wJY_k?Rnx<7NunCnJ$(n4Vïy/O (Jo:=tU#Y0_0NfA #iieBö2ѱLq$-ŬX;~Ӿ:gkdXl++6gm .dѳ3Kj4}<3M ´PWtʔUV@EE-+%(%‚_eY;Mg&'qFt`&v\q҄P^+*ՂLUj2բLYC &EW$XNXI[F5u/qnҮ 'TKԗ7 akEUUX2]J8F+NF& #a`,?D R(2 ;0J}Ciͪ}}Xx"EWwB T"eR^$>N3Gs\ġCh@w07 ^)?,ggLLӉ{L44d0M{g{"4G6Lζ$l9ۘwzOEUJ2J6(NSN}}\N#/9lT/,j@jޟ8Ga$h!oGFF 9hRCm!ha9}<7D.yGѯ℗q5|vAe*X򵪘Wo /_CU{ x_nbRr+]]ns;4rX{T.r̓#)UùTrnL)yy+f3&ۘ!"!łS6X')RK ؉WF^#sj%fX"Ȱdz2,ˮ#\(HmjQ9U|KѹSyO/8rԑGOD?`r1H2,,;$$}wpj$ (qA!ÒB#"*E}БG.#H1G_EXaj#Ň9 ]rzm!n/>rH5]t(ࡢ F/]L|]upht` " eH@P6,,? ? _?/7'ՋwOw.oLB./.ᕼ+3 K;2$,d<\ǹaqqsNJm=vy'IKEx=!e"増b/zMÓ%,L ߋHxV83e2lԌ%qZ#w? ,U8s!=H$:P4fD_s[$#s 5Cv>~*6kᩳuW^,9 jLU1ת 5Ysʍܮɝ[[{[:ܭc|]*Y7)c:.!|f:Acv&Km7}l@MPrL-J7YA+~ b֎k12R0բQ-aۘȶϑHs(9YtㅧB9ZpH Ly=`N(QCʃQaȽa!YYA~~)>>I^q<{xs+PRPHꞽa9oؙ<$Ȩ<,yKA%Q%"br塳.rgg~ ˄CU- U*P_EFŲ[쌤 z_>|Ԍs*2RܯگO9:>2~X1->-.%69UZVVPԦggd6fe7ec׵jQa;_!]* kEo+&咃]o!ÿ6 *}ɨ 1}6>6L"DtIGi̠hJ3Qg`[@ge`_R!>O\|zY_–r%[F#n 2n""Et[Ki/-m/-k/+(/G@{%n"=tjDR R5wܩ/ed3V9BF:+Q/\eJ+_13ٳ䓯?'F? ~pXE+JaqB7ROv2c7^dd1X識L9e4"Fiť| `q)2,eOy eKCK)X$rݭTRrH )Ǡ[21F1D@͚X"|)ǀJ\ձ7{7]R=,)w,Ê5=jjNv,Hʓߝ“r1H,\II)KGM`ꮚk7Ȕ雤rh `I@0ª꘢k1xNz{2HvGK~Q=b^sc.]y;I/Ǡ\SYR+Rs1孕.˼f_0}N@6zm 2O>\S~ZqtY3纇z^{I]L8R^ R2cfɧO$a9rkM|Le^[ŋ e0eVISٱē$o))_, >IY.R({;;M R3_f4K8q,1$S_s<*Ie W0f][gQ@`FKˎ':dj"`$x~dIF9]-Q7)킪ΚW_%澘>.媫7ܬZRf`Z6cQ2=-S~4bR~1FZ5"5XIxOa]ʢ%F? e0#Yn!g{}O{oV_R)%G vg';IKyX0ӃZU)/SLNR&3u\%>[k>/\d<\F>釄y1Hj+n!S&|eK*4R2Z E)2=7+!< ,=ǾH2YWGKY}N-Zm^2 wbA`.\\[{ΝX"լYRR+\bq ,^I9V.J)3tR^).%@`.W-뫽[Knc\) .%@`FݣKy*&wkSQR B.@l0+fOW;6?=2H`T/k5Df){7P Qa:65?@ǃI}R}joU)̱i>AB%Q#x:CʷDSFR\i!AޢR&Hyݒ$C:HI 0*L!#ݾO 0:LPC8 0ZLrc6%NO;DjAT)PFfKYc4FRnÒr\ýG(Hw@$) 5Ƨ&H>#{ eaZ$ =I9A|} eQah#R~@BRz3Ib8E.'*Q5 ,lR z /Qm鑼+, R95Nʃ&^6nD_pp1}` yi ,$e3CU- yG5WXQI9 3 RKjzyI4`v)R&/lR O CHQ)FiD&1 K3SZR1/XVPR0e Vх_9e' d#BrV PUQd9^ >G&Q}`,a;J$靖\ ɖ0^KW/jlJkIҜڜev.Aw-U-M txʻ3JyQָ@Q2V؞u0n׹uݔ=!NUkzT`Wb`sbEꎊ쒆q. 1^ʋ~\ߘRRG$a'RN&)4Ih2hF)uذ ա1 +t2܃/)epY;*(3Aa|;!&.IMIy[I)gkdEKR`T g>UdaVX7G`JV? 8YDjz 8FxZev ]ҷ /ݐP(QRJIoR~>ՖٚMI$k-&eSB%1&)Zqdw Ԡx4Gsso2^LGK!uGmL=s QO啃d IDAT[/YW"/'?BAR8})vT͐l=ܳ`@G/cC{âq⑚K Lx5\/6EVkveIYY:)/?~a=rGqEkB96Ř2tƁ`?\y <*ʑ_ .HʝY9LU{zfH0AʟG⑔ /"יۙӑ:) qx<_R].e^2#1H`4/>CcGCB8,EqHʿ+%S 0 ?18>$-DRKym eQ`;RJRJ' )ORD;F RӇ]ͩieɊԒAJ??.-,),)()1DA pw;0c;/aKWszy*!ZO~)-.-S5a.).4 $)k[2* Zz2DSFR+AAjFz RE¦ yiKKK[[[OOO$7f```pp#zR珴=*,OȏaR-ER.)))F"aӀH.O^& E?o~EJLoi.2`e$-6 HRYmyO'ׄTT)VG"aӀH.yt 6)yOj++>鶄$Nj4}rk7YU C׊Yv~\!5YZ\V\gy$*5ާ=2/duҦCi(:(615[ݱR^|AʮN2t©O~Z7PS7P]iEܾQM])mѾn9V \O<'塡Ǐ[uN#=5=xjzx)uXk,%eu%ݵjtïyHN]qD(r L'x(@JDjq<]t!_fI2'0;(suT읡6܆bIq|e Iy}Ozk O{򳟟6 鷔u=r2&/.gF8'2fbBEDhZb]HXB# uL0:e&X_rvאd1 _ʄΜ9￧l!)&sDEOGxxxpp0e IsL} u {RgMC xQ[JDoS]^`تSEu0݂R׌q~|!-i?Յ uW:]In:hͱw)Zpl277SNݺuÇ)))r-AŭK rPcPKJ2:#qSp .5 \@rDp;ۦtQXo2#94uW@`zL>2 q)SEndIe_bQ)3}9 ~n]ߍkWk< -i(e t!3&X%Β:)Vgo~! `M,$H.º-CM(:)?g|g '/[FM!8q-HɖKsRRnRK#acqv:FLW;’2=KY(V!H0'/[FMG؂ PmsP gلW {MbRDm`y!<)5p))VE"aӀ؈=5*)D"aӀ )޸qǏ4׮]+((R:c2ZjҶir^$V!H0' $IYьPLF箮ήֶƦ7oZBχi{AHyʻ/z{k?[AB2`N$-6 H#Gh hkjK3KKG#?B~NyۓWFWy~mf *)Dޢi%q ηCH^@oo_wwO]]cuumEeuiiRFr`}Fy}}4|&vʌ8`CE/  {p_,Ky&Fb' #wttUԖWgg禦f[He=g>vEɞ]'9c-2542-4RR]| Aʀ96-4Hy\a R..L0=`]$-D===---}g8znɥZmvh}Ȝm )W?Z]QܕhgϞ=s7ݒKyŪi Ymޛb+1))7ݒKy*tD]A^>mCSgLTDFGwR/( M}cvXc.mCʋ/ȬWx=pp}kVb7bs"aoaJ xO_ ͦT%nY6SKo39'hZɮ()~)n\'hZolspUQj8 X {M"׬?[ݒ:&DmgǝwޑVjX eH[$lɥQW(0#+y[Ր۹bs"ao^({;;;(XA ؄PwRΤAmPWPg@.esH[xMev:t ŔJ#QGP!uTR.WړS^Ю1k饼nJ?}6'wOopJ _EHʴpʘ%WRbVa31c[RK2ub{S٫ kS.q "ao1(eBhqm;O[Gz)0)cdtw;E (]SwVF""eQ'z,NVَ󭊭ɨ8 j}TIM؀s~ w47R_H=(%90=`e$-&JS@qhO2US%Mu+qrИ&^Q$28M:r1W#KCJ`)ރ )sL'&eDo oݡUؤ&^Q$ėG\|]\-fPR* R X {甍2J0A6R^ g]q;˺v-$JH!$$nQX} HSf[;Et\@B2`ND9=Kq}_w;l+/nYtz_q|~ 0  p)>Wy21u)cXR/9q ΁일/mW҇էn|EqSg']mnRH.Hʥq0){'zLLruKN9^[{ Aʀ91,~2_3?0Ox" ?yXw?[\DGAKy޲Ieq+[<]V[lMW .XRS"}/bϨݲc/_qb!/sˬnz9 0\OHxiUNZ݈}iM;nrƣNFj Aʀ91$mCm}d޷3/U۟xInc.!&.RV~Yy;/7AJL2c>6vaQ ~wCѶ)R@Fjo館)-(,,-R%(,$MNrY}HM4aSh7w54ma%2iI_ RYV]Wi /7|HdO_jX e^nϫo#[>Na}֓g#CȻeo?D]mG̝ލSyyO7LK9<^T˘>Pqܽ1Rl p/ F&oaSs +V!H0'QӘʶV:y;?^ ?|2ߠGfʮnfGJ2W=2UBWRmK@T9 9s 1r0Ks5swg`&.}So%Qo`HO.UfhI)lyou';~Ѧ7ls*^Fe#0Ub ђ+Ioy-Xg9^ZՒPel%XX͙5Ӗޭ FlbR!m‹L>B Aʀ91  \(fV(49YSW ?4Er_xzc2~i̯V&pT 1 q){QR1mX UmfA)+դW6:hsTiR;K3$֬HY(AY b>尼|,02`}eQ UْQm*I&KC_~B9  >$f$} P"#[.ggO?䏌:hsT \ `"^d(u} I[rMϓ c+jfcF6uPWH͙Z8x$(w^ݴO;П@RE^+)F_o'gcm*AU 612|1NrٖY0dyY*-CEW ɥtu-(.7Q66cWFRnVy7/C Rr|ppŋ/Ulb4RQL*OniP&*eR)\ˬOvci'MJY&Nb䵃kܼ uٶJPTTTe}T`/:qd<}?EM ۓ\]uL" 1'';둋vuJrמ RRF=gϞtҕ+W‰'.\/o)T*!W:([2RKyhhSRRsUyСCS eR^fqn[v/DG6'ǥ^9mY e/7o"##)DeҐIڵk e0KyʽyxCs裤 1/Z3Aʀ1^W\yc?qđ#G>(H0R\ߡ /U'e?$el)x)?>33S6S4552˄Hy $S((%0 /e*-H6FJ IYTSh\PPR aR(B^&I\Z$tW˙*mH2FJq̙aq$bbHNN>|0r}}=H0H)g+Aʀ1^/^|K.\pӧO+ șBR>p:@ʀlAwRH2H>K ;v'N?~08|9ΧL/5?fD/7AFMHKK,KH9 y9[RR:uTtt4#߽{Gjs2jcAQ?Nku51dnxخ7E3mKW/ A|:@/“QL&c!;v"$X8LIyM.69`szC' Aʀ9H4 !6%e";i nC~kCZm㊅bs"aoi@BlWSޙ۸MWl&:bs"aoi@BlWʓߞӸgV;bI +V!H0' $v< M kO5GB2`N$-6 H KyƮǾsvU7|_p?>  {MbR8zoVzm\Ybs"aoi@BlC*pl)Iya\ʸ AʀH4 ! N>!Yu22`u$-즩oYOkL`RqNyVPppN*^cEO^͆H9x7Hd~$Xh޲bs"aoRVͺcY[r^j_QeߚӰ* x+|c/V!H0'CR֝̈bM%C!2<o6jn3=;&4;(f~cې2008,_wM*vZ=|*Rӓ17Ƶɝ|MՕ%T@.cz-W>5AnEvLPʣilBʰr\L7-M;3F6 Aʀ925o&kD',[,J1``zFӊoX`؂s۳2NSgL 4cv>KFCʒU0K`U$-IlA׎N9>6ߜ,zc[rN[Vh,'1+L{ov3i4O2O_k>$pg2=b #N56 Hv{Q')~^tcY-'ۊCr}'1 Ks&B^ <X {)鿰ǵ$У(:8椞)Z3C|L)k|ӱXb״vҤŨPg66"`wHq1%!__+lLp5kH[iZ|̘;cRfe{b^E^&eL7:tTZB2`N$-w!^1dېRkk,B"aӀ؈2=rO>)+AʀՑH4 ! lM;6XƽX Rl {Mb#RKw˻v+=ۆAʀ aoi@BlGhL)6E¦ )^ժ0;H { iO^|c؈}2ݑRrR$Bb@ [Sl6 L [@ʀ ao'eli{ X {J̙81qwb5I"xE0ű)gR&,)Ip+L1,ZR6s ; l lBʚt$e\)^Vj3@ʀCckj29{n4 eaRւAbzO_g*xR.IO :f56P9)#R^rH {)f1Vn$V7OlO`}>lflH b,,2  $ĖLC- eVH4 !%e+H-$-6 HH !aoi@BlM/R)R"aoi@BlRʚgJ9 HE¦ ^2GLiG/-L){) aoi@B$g2GlTcgTgg2`CH[$lɥtfW7Hޛ“r6H { inv!ҶM [_R ?]()3aWt+~fy =@ʀ$H[loϲ:0I {//QL֤}h4H.eU z3TL.42vCC2@^sݎqK!~7/:q۵ۯvm֘=dK2H>R^c2,ݖ_i:pbiK@yyqkiyO\W wBg2$$oT%nmn٦'pRŐI1MA>IPZ 2ϑ2oRx]^XWؗAz)372q[/|iO睚&N)Š!~q..==!4.ny J;}w7XOъ}B )eٖ[.SS)@ʀՑHe jzBz{te̱tO_vw3v'iFe6NO{=Kζ˨}O%\ 5Fy2`KH[$lɥmoyӅM @ʀ aoi@B8RF},А uΛwذ-CH> $#e?{͓dhbaz]k&;?!5#/74N~HjH {M"8R^lي+<<<.]bёU nvSKo'1)!aoi@B /\z5//0r)/](Icף-n53fIyH {MBH0r7h#[Nkg(|wz!5m 0&$"{ X {MBH  [z 22٥QIMuMqIvNډͧLO RE"aӀRFdB1?GRfdx)|XvQ^Vk#ao5-MBf/߇6;o*r}r/K@H`ZL,!e630sW@:V©3fÃ}Z(V!H0'!)$DQ2S‚Rwxx`~)[j څ“r6cN2`]$-RI- _V CH/_}XHʻAٞAwN&=[Z2`U$-R I[ VT5 hcBʝuRHů0n{SCt7tW"ٚkUR̉E¦1ho)/{R:cfeW gfEb%eNCt f w'I %)Nnhqہe!m  ť a۲q)&Ť<}͛l%56e *)pPRƞfM.oB( U) d)PXR꺚ܰĆNnyYLt){Rn#vbMGgף|~`:>('V!HL >>xPٍ\ A\F)e,ϩ˵M}d]ǀWT/2ɘ*=9{8RߧL,4*{M6C޲Kى~n/V!HIRmޓー̒<_vuo]L|32ɼI)Il[/;ķZGʌox\8/0LrH/e='nY7i˺i;Mwq!Ԩ"g>y9)s'*aYxUCrc)29֍uu(sY`gEk)8D&I92e0y6|%s*|I)Z`ʎysLF.NW'!p,9},%! ֿn_=^Lx CTk?1^&LM߽e}rVێ e.Z3Ua )i*[>h5UŒ e.Z0>qI OʋA\DfRPkm{3HL*0,Ro_l2Gȋ e.Z H)W\Ceu\i¬jmRÐ߽ݸӚ3NkϬFI,Ow2Q$N>)ZSw㺳N(ϭFI*OHLr)pZq)o8焲j{2QVXXRx Q0) R"53KH@Q. eڨϠ@jBR#"#\dR H q @aN)Ru/%%$2}%j4zMbl=Rb.Mbp4:}tu -׏1b?9 +b+R-,STZU^UkHK2©kmȺ"6ƤmM*̄v0jx/>]Vue((kAo{:v_\QR^Skhjnde+, 4V3M)0:RW0sJyܶ_o۰v{Sr~qeQYuYZXޞ6aUT.5-Wfu]j.b"OΧ"waֹMwߘU'|lG*q?fKe#[az|ӳT*d^|qq;Ou/bF);rPi2|2iΐZw&W646 wwwWCyı,fd`7RC.Pq=0yhNa^w{Ʈ~OV)UY DsbS!5?5ΣB oQʋ/nKMED;d(!5Zmggg__ Em]ȧ/p3²gCqd !|dYyB:Y48?E 7a:u ZV)>bS1JvVe#vx1| !㡻Mӯ$hh;::y1mjnHu0bfSց:PI{| LQb)敕յMMmm]]]_GG?1~slq܌qaѰ+d-;I#BeNֿVO1x/h+B1+IDATОc %/>6uC/bF)ܤ*ņ;7\A7H)7l8J)ƌsM"?nQ3>7BNم;[~;i/[M@ &֝N2 e@b(67\N<;VZւHQ/?mn|N"hn% 睈|՚ R+6Rv:L!ƍ ))՚ R&FWBIy$.R0*)!5S<WsqB9rsOkT%[R"5Ӥ\X}8 Q"k/ACf/c.)ϢO`f R;\oL>|a5d3}N2"j_LL$媌u=4R,x0A_OXŃK9I*7τDKyru憫4j^ܰ*: ea :s5O:Mצ̇Rdق̟nx< `6Lr:sM/:} ebg0E7[^(H)<녩Yb}A)l´|lүH|/97d>Eq2R0#Ky~t4IȯR^CV;ٟvu;S@fx);,wP(NyQI@ )+ʠ:)4UTqբV:míSg0Lx)fӢ6U*H@2>uZצڛH}u_( eKjLa9t0)R);&/@r*,7Nc\xAvzIJ82E/߽հtK, c@ʿn_},PO(y83*m zF)kuCgVE2۸"'X`A߿z.OU~LD7~G tvv>|p zFyS~2Rͯ:_<* ~DC`z^_H#SR~X`AP~=#Æ<0C_g#߭ǿTa(cMA__X"2˅q鲛2U}(ehũ eۊ. ˉxrrM [ )Sm]ngs3BYRx+(+1]YYYp-\ #2N٨/"[Fu2y9`|=3IJW_`aaa9U_Fz>n6zB#d:!"Nx9Vs2SqӞ9F#(JBPv]JF"J'*rX[FNrN$S$%5D}vfPIjSՉ)2amgJ{.;PkL˩KͨJ(k=š@yGS FTP]퉡LنΦIVMr:G^@,,,,뫨ƚ3z.0@9=O'&>VѮنD=1@9-65]-Pr0Bz (W><|=|Vj M+Vn\[e3Y%_/2T}+ѣ+W|khՒ67<[~ oZbBoˈG^ ^kuAC>"|݆H  ÝDz "bfr}wPϵ^!==Vp_r>ܶ.s۲lfWWmu]}^x8P(AA63$%4 x/K[>t`^k===={z X6xޡkzP/üGC&f aTuG{3Z UVoYf*h k=MU/L}7Q޼b5 }P_O?V{m[ Q4G;;0A@MnU&&zKXf^Pʆ /GՖ?(+ݹVqfIōҊRY5YGLuG_YP]ӥk }5`v5뛆ꛇGZFu-t[;ɺ%pH=LnN7T # ZSUݥzVWUTj}Zөꪪv 5h *&& VW?W*`a{:aXh)B}-BsWGh+WݑnPG+('װh%WV9U`fjTFP|Loz&KJ2,uҩvk AV7\CyX^pG,[\kͦ(O݀Xgt7ZgMTIn{Qt[P㓮%\把9 LΙ蘟"h!B޻-p8xoi  @9}nn ٿ-@`#AP B}!HԉXɓhi MܶԼv-_73d$g5'!8hNt N,KjZAJU\TɃ[M+Q_s+-). H+ZtzkMG7l<%OA#Ӵs(%f|);+.%RR( 8jJN&gդK;[ve쾞ߞߑFg nu=}g[ڎ6i^$9519A^ ' r{[`]`2 х,VQLXU+( +"37A9"MLL|I,1LJE/bdu<~4(iF <8s:]H\s #9giaBOD"qDA 8 ~u48XHƉPP)3" QѼhH) ZBPLD <u ^(,$q7\ И™c!`1#$&^ITtXqVKRVsbٙ`xi+ݚӖ5ض;ڥ;vvK7-:Ӛ͜e{罶cݹϪ,&}c.4m64<A={*y,< 4@p!([mA9.͹khIp v̍MPf4= t^1Cx5Ft\q 2^ՉSx(Mʎw[-즔DVAP3b Pf/^fsPFfl3(W#(Kk0eMTs#: H', "G/1xЅ{ l At11N!F3NB0`Z Py &X)s`B6 +21[Hg= :eӑ1g"cIC4p o܋,adKRSBi H.^L"-9˩z.#(KM\~C(Oˎu.Mr믿v ( P.CPfĞGF o{P/XetRm;6Oʇl@9%.-s9&\es.u֡eC D0grh:,+xI2>Sa9> l' pfʻI.JᰜKΨՈR4D_X!(3c(%q\1q)Ղ!VLOV,hn X)'§Y`.D +a Kc,!2W@C N" |q'Œz‘Z F1BwzyQ gb&*^ Ca9JYLS!ӆi(ˈSs.[#|\h[\6Y9Ttˮ] ƌ!]A&(_ q1ܳ 6rH`HaI/Cyˤ|8CYT PafyAp1t 3(kI*e֠3U(Gž,,E\.+xaY Qƣ1 '~A3\Z%.f!(_"O):r_ +-2`1l-"͹43AFNrjl<"54` Jz %2_dB0Ar6="_WjbPǫ݆ P ,; w f &*Q@8*#5$d4_`dZlȊ ͈Bv3NNaM&qC]yق3m8Y8gSזyPw3ظq#] >9?_??>w<6QWT GP55saj!Hˣ.Ou=7k/_!z-^/-xx`~<73:}Ƚg=Ϻ{tu?~51L Xw'=h 1@A~a_ _6NŖd'c'*.KDwA r8{R̞=|/^4D~}Oy)SSS:f~£>T{)#zp>އG _x{ys<?{?CK}8p/{`#Çp}G}>+a}w~} kqݿao#{ڷW}{>~=p?b}p@7>/KFF LE"EBw|;wq^ٕ/]3H>Kٿ"ɭ_~zkOO@|Lj?|.||DL~A?l&ologkkwnZY| +cn|7p?nnŷ/=ߎ?n ?|n~c߭nu;+ɏ*bXtuqsgYqdC7S|D!~L> {fo6gLns^n>ğϝ;o|ApΟO9/ڷk3(O|{=tʕ᣿}C^0lGEd!#1p#TDDs]ѣ!" ! !|XDH2*V$TiynA[TUzr%. 9D$Rռ$P$ OA\@ $1 q1Q la#LnCC 9=0zhognAPWkscsljl$hlbZ'[gmxmxMiY2Q2Y LYY7VV=ZRi-,5he/\<;q3O\T^*_+5V9Kݕ-V_M+l5PtUI?jhFTM@c(o@hCl8,PVm_iS\.*(rb *DaS((界Z3sW2/\P ṣ'GNҎ;v8q~ 5Ll\<|if,HS)U*T MQJ[R+ї Ɗc%hj4W7k͵͖kZO56vLR\4_7= 8!nΟg%h 8$2Wd|E@XJPD*4$2 b@]ʄDBaH(B4 ̈Ea>x󛱏OH_G'nF=*f-kk:y bffν}]x'u65ukE\R#Ū;"|WwAw/SPF~M|F9lK$R "r1H +#J%F5'UTQ:9@JJHv#irM\I( n^_P4EqQcZ[BX@*"HqkHi2R6Bd&- k|-(O [v3!'Dg 1iÁa?󐷇x<.u!z\ݮ)jVk ɚu){6Hh:mS ShSuΚFGeZ\j\ϔ]*ɸ">wItU,ťmf)VT?V4UEu:Ӎ]`#bf{6|!zL]5Xn VS,|5KAuwI҉ <=QX_:[LJuysN#)91tcgz>8q~ ,H:B6RrjjHPU(.甀UJMaZWR\Zk(3'ՌljԀ[muT[}hC{> 2 H7?_`t5K.V3,eBʝjNyLKY(UlIY  @ܔgw7y R8~3⚗ ,ʆmMN[ni7O0B>I1~MzMxU9mY>$\&0ko^~K YN􁄉L9w>ddN'0/Èt8[#1e\Х6&RWb*}Lځ6:ۀաg @BcךE`Y[eC$zNt`yE'̮ $*pwRT qB=JHS(_%.VEd(_2E8Y`śart;0 24o`G S#=Mt]N.D3¹ib|:^d 5yk9+kڜ SA i4v[{m3}tv/zg~$L@ -ݳ]&h*!hlgI5%SnRk%5RtWoI痓R.]53@ω?;vy8Iڑ}GOw%'/3A ,<<ɵ<|Y&P*Vs˥rMAe}qHͦJ-exSH4NEfI5/l˂t/c5:k嚤5RբDHyAHψX~s8vn~pF 5RFc7f'^ !.zDˢ5Qﺸ熸&cI'[t]x <# u~Ea'{=k_ eeL Ro/~mO?9n[6)VHq^FH4!RFŪDb+J#25't2 q|/[i]0Z#Ke(b_I`m+71G{hH;h 5b;SJ TLvUMVnrrJr)/!)kOWI  rѓ{HIqw>Kp)|/^ ,Dd)KT9% er˺*]qXH&$e&kuIRnqQ`0AN|[j&[^"b+2y^j֬RBX")@L܀ )egH7>ۘ og#i܅ûvg;ӎY5¢F65γ2fɡ~i 3?/~hMuC]PW9%M]7bQc9f.9t>GN=wL/ R_^c)Kˮ+(+2 YEb:r6\WP/c)Kk:Syh@MkvrcDskMwg{LCay@`/f1&M˄ӼLyW/Kv*6v)f9@ !gk [U`X4fS^ʭ厣ozmAZ .%Vko n!H/hwdgس9Xnjh%Z@KbF@m33P8Q|j?胔OwP^2 KҊi^F}w`HEFVE%cuLuqȢ6l_u'ձ/ wA> ښcjm|jpiLb&vELΩԆcDnOǹ>E#u&+-7/LZ#* 6U*<[HRt!!|,x.a$\qmE# spIݽ=mcv{sh4`mkrga(ƕ$x_2ϗ-Htwovsyh-gA!vƈA|Nk4f 2rR.ȿ+ Q$kƌ˺SUI?8-8v}ᓸT{g??x"k YK+yk@@yHY*ReeڼrTpjRc*5֙,J0reh׵7v )C >f 23?[ 'd)Ve"9t5'̻DfuRerQ<|.Hُ y3H}`8Lp ߈j;ۉ݌Ri)ZEAjaZD mmm+muL+;,nzy-o-VЖ$ bԂ9jAZLZ -˜A֥ IXr;KI02Q2oC)7Yct_b[IQld\8F TY  ;F@+Ukm}/VL8U'=Ɣp6~&l=M.l&@o~wsʳ9!ML! qOaNHܫ) V;ed0MpaYЛu qU:TaWh!"2BN<&,&1@Ly fzhCS}n50CwS8ÖDxP9/Q-JՋ2L,,mgyeײZ+E~ nΊ>H0"6/:]\D&2G^=/e d;=rqu*ull< TׁBuf&X]rJur}XXe*6WKj-uֲzk9`GFGGkZ쵭cumΩnwk:+>Nи!<yyRLtrSj̻{Yˈ ,.BRyi>'glr•;k/@FEHF"T47:&4F#[mވ4yv.pxr| 9, Ԑn̚k̊5e%0+I/ݝaOKMY)BSV2g2g3Lom6{6{6;>[$Rȃ۲-q"4?wgڟ͟2R8211'l_-t<6iא.Suw`j{$I^gp7 lz7O+hnC@}LxHԓ;"A~rL G; Vq;l]"H6ƵƘbj}Ac攺9 B a"r6@hKH\MHVPhrUT'Fƥ!h3:58!.KX,,2B/# zO+J݊ Z(D,H 8h3;2b'\̃hr@reé Έ)d=M?v^`9{%#_# 5H rJt%2C^XX %5ZkYVQohljjWkZjZju SMݞ^[?rpcYAe:oP0,YP#U+BҸP<'x |#/^{9}d@#0ҦF0 K:$3WWgɊުUg/V_\\N\4_sy1֋!#_'XwFY[=E q#yEAv4]9$O>){I+??=a{ןpO^³z ڰ)ܯ=>wk_}xqݡPO$D >R܀R~Ηɤ$ $vv#G|~'8za< /pLռ'WA͌k,$*_}I3H<:jFݤ)/҅y|Q(E=f39h Q-ag$9LHӄ.t%V [D#5EkDPU"RyH4SʁcrLDt!nkJtl^YV9ʞsz˪ފ)Yb6HJe',S,.D l~1chm/ܖ,baU%jwa`Ŏ-)cGs.jOd(?8#}ISg8~s uɅl٥\|B"}Pl.!0&rnR*kaV\k+) Ʊʦf4 Y6Y>n6Zmh0r31!2/=2svDf*0]^V(Ċ4&)C\ns^ΰKGҭe\%h$f qߠq0NԒNx ogc/>&}QKj^gxa[?lsÓvQӿR_?u~eƗֿ} IDAT(8/>~цg[WHDM9"$2!ee.H_nKW_(_ e4KΠ )ېlZQAҒFFaWb6u^?#)eK֟zt=)FO7 M rό?-Dg>|Hz9Aʄ7w.;O3f_˔~";6id%TyYo]1XW V$5 a_IY`[7HSެk:ưҭ*4+R2*b@X3pwp uͶvqeW0,{JriRv-!et#x,IyZR% gA£xGNsawyƉW 9Ky+k"CV.1S喼rK~ZTe+)-Տ cMUMfDMD-@kw5t@ u`c(Evz^FHy{yEY攗PF^c) Aʢ?8 a{rqܜA7wӕ~c7V*MUI$B\ a An&ԅY/}M7o[,'o;(q$~ ^ާ~QˏI^zLҏ1û |k2 R Ge$KW_jB/OJك丿[8RgFGloJ%.YTR{mFPFR(RQ(T弒zJ!.zp kM`yyA絆ZSiY ~?Oc3P '4̳j^PzEʶ~B4nbJסwqCcD#0s%F"Dg卢%QY&*8TkNQ婪EJd)r=3jnR'e #' )?=K?BRNgަ"J)jӡW({C6[V\UBBomYTZpXy;I"b)ۼM.:)gWYpR ƧV:2ej K wcP%ܱ,/bXl_̛l-qRʨk`5WC 7S/z)U!z(JǑ:y=Dfc\RV?sÑg,G93Ǟ8T;*]G?;zġjOu+g%<+w񮚟R]ʏ")47*3!_} /ﷻRr_e2xS< ;xĵxdsd%+pR!W ]oP0~._|"HdÇl w׼fVƷ^ֳPM'e,=`-=8J?~ {fAoouY<79ȹ()),V@L)oRlHMΩeX1YqQcp:etб$i)E# -nR(R-1j 2 mתE< 4l9)eW_Hi;v.G,Hʫ5{%eK&˻))$K/kǷ)3^^lHVd7[q)]^gp"QY& Pb.>FjFHwgqR i~rgF/E"αpՂ(SxvD@&ORh|oeDRnկ@@ċc /`N4U'M/Q~F6}}eآվ j Q#?B6Et)%y"HǯU 4KKYgNQ@ Eg<0& &f|{=59i"$JJ/^d+t)۰/q/)*/4w甩ɝ86gMRFmt7US|%23)KWD)j%b3ԜFPfr˭ּ k~ ()-KJQ^v7:ʱ+''[j6OC+3n)CXD^^{$Lzy[5-/3wF-/˓^V@FFRʗyO"/pXf po*N z ^+EMbd#8Xɓ?kG5׎j#G̙GGF;r;sOڕko}@ᯧM஻p<< L«v:l~Ĉ^;j(8VnrB}vH9!Q&8'&|W2}G)Kۤ2>*d^ogiIOW&\ n d]qV(!q#1^T(l}BP];H%νz&/ ~ #z<¨Rmsf:4 **JWu{vBƬ#1h:kcqD9"V"V/1zRh*"C/z^jާPd׊W({ 8 \ˊ >ښfom[3HX@xZ7:(vzG.(Q_Q xm}[}{IMKIwR֟ |Jt$)t)_˔]V^\)3Y)/`vS3J#@a /ːQiieew@sLKo LZc0 őj`T3cj]-qVK2RƲ2# $q(Dx|f 3g0TY__0N .Bb`mٶDZXtL KY[ҳcgg'*κ+z+Lל= NFj355g|gcl>n7[wք!Q_yXuI&e9`IYLHYkӛ0=O2}`/Y!MMkʔ7ۅt٢M >+ݗ';'Ω&z˩?q/MZ0L 텸׬P\g]snM[U}.! CWk#)[1:e]oxOe/Q-wB 5Zf YehE'B I';\g k3NBm.y^f#U%rX6%pdn'Q\) hReT9+-w M+hF-< =C,7d< U *&&EASHV0wM1Oi3i au#b_*ѫٶ,FX=3&;Ԝfg,eӽ\*e7q^nFao7vzf[!,vxujNF~|?2fۊrJF;#sX% Ԝ1hgcGp`W1{sG$z_;Gӻ_o;O|~|zo7H뉷nG,ʸ Pĥ<&o-H"VeGD20ߩO{!Oo}To QiV^#W*LIrO 4T+{2P2)OD<+sc <' d|F (BbeX}P(bŬXD/+ 8xNBҡU25_B W`qL7]MO <pko;Gny9D{=2sՌj-ni^a#ȗ%q8qDs\tm0/e1,.'DrA\DTԯ"񋄖B `!JX RՂ@ W/5\ B+ Cf}.~}w?4l}Cc4 Å+ !wIgNAt.`yh,? й /IGkhÞ)n'Z:jhr2o!ccK$y#- Ey \>3ۥ;-|Rx.RFRR`Vh%mj޲+3^-'6\ǰkJj?˓8,HkyyQdNWsp`$L% m_gH̩j^/]@/E IDAT0Ύ` #`&MHۚILȶZӼv)e3ȄB:V\S͡2sL:͗B7d;7h{ >$֮>@߉0tꁎnm{hҴuJjP4ɛmP[:t&jwo 6tӜ]iw΁nT#/7t:{&ƖFKeT^c,C%27j-}{x5KDstn΋`ٹ9!Nl13?K4XHπkhS;NMk]ܮj4Vy}3  ҚIUA\]'W]YuAYۤk7&>4!l@”0ZFc4cbN9S0=1% Y mM\O?KJ38:\{9OwݽwCsuӦh]Gksjo5jtՍڪzUUFQV#/XJ PT ʄ|bA4y%(H eʂruA Q/+"sRQ΅u*sa-ySg/UW +,%|LŅ˒3' g S߁aynSj $T31dKͩjk[dN&iӲ"3i:Nq . ?(t R32>/?d^Ha˃qZX\ԡM@z9+o|2y$sp,~k_yXġc8~(|h؁#a;PރLsEW&B {(|HG4A8nu/ݚ߮I/,_wŲ_/ec /]痭AqaoEqqٺKK~1+_8/-\y eo ?O-%+_|4gzyzǩg\X߲"l[%zք %nܞi{7+GIG 3,E̸x#m7p]cC<[Wlv5sX.xyX`ۊ񳛛vrR40cWۿھ7{{%]f65s^+0qe>"tQ毉' ] S:Ĺg3z94DZd?>r=ַy#xStnSp Ď>xё-P۶58N>]Ɉy/9Z>7;rMAq3)ƛлQNqlzORf,.YFyZ^Uy\ܫɽW{<9wpVfVdTdآ '(G]]ņUte:L6Jpd٢t.(aKS*2.ʙ` "=2#EUFNu& 1FU陕iw珞Qr Q[Xoπ>-E o&HH,q+? K8bq/E$+E(bqDƠ'DL#c y7gEFDDY暃sq58zXލHVU[ xJʛբQEI8J(𴹷 s(P̢k)*, / ask1f cG=)b{R#Z~$H8=_x(K,eW+SSk$ߩMNqtQfi(HjHf"!L6rظې"9\4[}.+&3*3zLM23EEf v,3,# ˹"+,,[gq ‘nE݊c]Ҕg3æ̫ͫ{:~M< kޫmY%)72I/I:qL< ,~y#@Fc;یQn3Q7{x1cQh͸YP1Zb1zʈQB~8]؜qCTVcgĕETC( V_QZJ\Sy}%!k(Ӵ՚_OVU&&ܽǎ3c#G:}谩:_{ŇS9}ؘYn{6o$lLI~D"}ǽ%KTYw\cyv5u𑳇:bç1l'17F|CGN.1]2wB̭ŝGTZ|RݟyakXty{ ]qķ0a#?>L S#{|1#ms[5S8Jˆ)čJ {`+ snvF9wV/dt|:x]Km _@dtF@Gs722S~Ck=%-\!8W +b1AٹݫE=sZ㌞W~wt~/.f^q2g_Xf*wl?Ҟuyci3nhKm5sS3asve8߿";y ~+C}#2@W[Ay<Cl[H ЅL_ha=2~2S2^Ԕ/̞уg0ͺB2@W KF7J(Iy4T1t!o&28)|}[_gBq>T^M,Ec*9#3ф.^WZ<{R{nU#h]R^G K9?CDS&~t~j )o2v 0;@i)(Hi>{Pd }uZ02X)+ _<ܯF~7 ]iԿ 9X)7R'RsVT;la;eR62ԥjŷ!?&8@`?Qr\ʡۅ`'Zih%h092tBʜ RJ9JHhrÇـq8W%rٵ2%)_/$RùRv2t^QKzIRnii nY)ٸn쀔)@oK0zh \Cw&p8hV|PћMhR.i. +!&F|\.,e.@oCHl4=n"{?0\ԔRpR/3(LHJ0P Rp]RE#oьz/Kf%)8)&`"8\,`S/C'ܙLG")_e?h :H,D!b1 9b2ChDMa%f̿MCǁC'x7] )Wr1BJ7@{)j(\ \ οl8\O95l2chQEQ`A/ Rn~^fz H!Ky4kWظCO؟r]9"2h)# j-W3/3qZƶ^Q, RpRˏ3qr?NʑB8ExNrNvPʼn0D}tCJje!?K9"Ȋ,e suZʜa|DfU).Q_+(x)ry!b-Y%eͶ՘ ]ʣ(-0gh⢱DHT#e'"e`2r}evJO u&8_O_HKy4|48.C^R. eD J9\j l[ޓ21fv )_2=IA^HIth@f6Fv/8^ps{ )j~UUbm*~Ǎ&)WOp#!b[7YHҾYB-k4ڥ, & D-e*coUƱIA._쏤~FXލлu2줔 ΤC՚v)O2W>,ONHJHbI<2~?5Es=$zQm2R2T% TiHʭ57xC,c)eCg^+)t}o(-&evþnP5RPZq  IDATD&nu#4I:wߤeݤ PW)8P$a)Iw}#rC³C25RB՚^)&qQK#s"rB³KjF/tIN](n܊<~-ͱ#ED ?!H^Uk:lrGRNctF=loI(ϏDޏ*mg~+jM'!)VץIyK>zTr3$VqƲS{ִKy{ rmj:H#?;)eIKKoU6E @5R~wrFLR~eZJNMJILSqrZ ezTioꌚ;5iiYiHŃ_s[Vm:ZYs'&eRA՚v)[:Nfu,eg0r32갚k[Q!H^Ukڥ6ktMKUFŝ;L=n+_6d6d@vk5djzTijZ3+2+Ӳ*ӳ*Ӑ؟Ok@]S!RKгjMLYRY2E6Nt{8rQT6H@Uk:< K98G&275r~cw~wwޭ%8 ١@#<}dڜʬܪ,!Mq478GhooQ[[Z/tjOr [kVc?!b,ă')^t5ѫ}_TڪrlۓٹUfVz;Vl|^ Qrn%ڥ5´8q9FbfnhW{ )>4rWYYECcCX9,E%Ҳk|pLbE{Ŧ֋x1P^n~j(h(đT<{K{у|6z_ ^ȹWPd-G}文KOM/<.ג xd⧭Mvdⷲx5Rڶq RDL|źl"4~j{w-UUU):~erjr.jJGp6%278@Ljb_F\ [>7hB"Y|i @Rv³/X/$$&XUsrr^ ACƘ5+b'mimw,LXR2Su!,Z6eF8[x?![G/d(j\qTXnJ%-h#`q&6@=pY/eT={;m/Z5 ](|Ht2aJԲF)7BeB. S/2lGŖWWW1r1ZڪuI٦dŪ P,>dB*e .*@H)ܛ5QRt%$rEEV/HWECV䷥DSɝ'NA&74[d"]V-2ld&zƣOTVRJU#7٪8K?vL"+t?s1Po3R.{hea)/RaK s^HrZ斶ں^o&k7$wdidž7bǒeLl[tHjR6eαXKJ**+kjQn|jIP lUS:&ȦERX>[%2 lb&njgV j-kp468+q=ִKy OlUǣ_o_ zy@Oݽ|5ҏ9(/8#=tH߽0jJ͏G~`mk}GRJރ"2 ?qP]ge:DYj2e+jj;Hڞi_eV9D=ִK-q5iH|u(){j[Q/?O9ڇ"6m/f 5RF}ߌɻ'wK5`$w{ (w?I]{Ukڥ9&"eO^\9O=x"Ayӝ0G@5R7{]1۾E'|RT~.Kx!ddVYXhuP]n3G&}ΐ|vmsecE|SK9)/ А!#SC|vcW7~~W)@:>/(oQR :|$q{m7}ÆO.o ݛUfzl=dg[nS/j)##{2cQöβ7W6s!)F>zK9 ڥ<~蔲ϣ>ю-CT5U0_c,ݯ2@]cS˓vo2v1[r +eȇs@'xU&&};[QjRFFf|(7 ڥlC)l?|JTSTeC! ЀRFTH?߇ci S}Q^ FmJRLl&:|JZQHƣb ̧Lt` Q*wy_Jԫ)zZWްDmU{>ߛFIndw 9DGtR$X RVL eRj!HY^qʢڈ\V)j*IIs6)WU}(٬wYS`>#PŸ6'k2LSå>Rʃ_T;q|#I2줔]( 3I' ;P_;/sRʖ1mقⓘIy2);29 ZsPʌ9)xq@ySoP0zZ egbctJ6#e˜=?lwk|f18!H^Ukz'{6F<׿7h &Bc_+-C2jV6_AuZ2%~Zj&eRA՚R_n}k·6/i[_0Z ezT9&e˜gw%ÖbaK眏PZ ezT鐲NmWYۅn).L78>7iuP]ʓ) N} _mzqK(ݕ!HW}2 3sP 5RRy'(Hيbȫ\QPߐɾG2ִK-ֶ[[~ʇ_a_4=հ>)HjMyM8z#PTzy rz~рyxw}_ } 5R3sLBQuCplY_T>ˋrwAP]ʣ͏[?rQXBERP5R1yd%߭=I?=˫V3r,}O% q4E'A05bK4gG=ßgk~MNr2+̶H/ ԡCwm$JxҕDa,l7P; !JK2Y#6ɖ@@6 o =[)3\:h>CO:)K Т{#scMg]r/<b^G:+q;b])On )$5~Fг0Po;2,'r+(c~<=A{ kdCf۬,s vn:51 r)fgVQKH^ŒRQIR-Pnl-j I^$DPhwqoSIdE+-v)d%PʍLڳbmFCEdW:!@CwFª[JevhՂtH/ ͉9(ARQP񛩞M 2 pϬ-lDfi?Yd ~DD*e`B{KJ"-qDfO%ȶBKodnD (TMqA|JR,^j*6 KϻtG ӫ~~UϩmGDZT|$Mt쵘(UpFegesrSV$K%.?i)Z!!)zXsb93} ^l<<_:2 gH%P64&_k+N& HtJ_rwqI ߝddgbJYlT[@^5т侑d%/^RUϠvԶU@(TRR1y4i+"lr췰VR)7>R^5BPtI9$'ro&8)?'z?L^:p<%i~3lgBߥ\Ry' -moA-mYp{- XY(<+M@j!ݶU@hTJ*ԓL^K "dϦ9&Go4-UTʍ/?hgW աjM2'w@¡<-kR 1/vVAhVLJ61> &)=7GPII8 "jQepkHTM`;BVe!PvU95bvӘFcEW0 _tFŠV,bW<>C՚)reǗy-E EנʊƯp_9aׄ ޗn:Y5"s ׈ۈ.n^f\N5'NQzQ*$fqYHIQ**qE(z ½ ϪCb "!ʬЀ ILm[KSAj'Bv#i1iTDV~'Rln4]UTo YaW%CUZ'ϠǖQTk}~.RQϭm~sv؟'9Kn@yUzD#h9="O-Tir Ɋ8xEG>syTMc.i^[/]r>=j]BOhMeԔ"Z!gF>p֡3Οy`~aMɯKV1{~/!C RΰĴUލR]ִKΈB.}f[X]gmߢ"C^>|{ n/2ִK6Fz}sg;9 l~[\[w益Q/1P]a洈i{L*`Zi.,!}\3R?a:i 8 RA՚)3Ԝ>+Td݂lBR89 e)Tijh?MYʸRC՚v)p,83rGz]ut!oqR;:ˏ2/jM_爐(E\9g;Wʻvvr z"t8김3D0Pof2ӹ Rfy9Dy{FzwCNR3-8aMa(6(k*g;Y9 9y-=4k_x\%?_5',f.7s?fLz?uq:l/I)U1d"zGg#] !=dpF=-f C1;qsd< 6nD|=a)'$&XUsrr1|a&&"M͝rtDllI2JӡRr](9iv'24N_{I)YN|s(^nnnq*Z){2R.,.Y"㟖m Xso^oD崵_s•@_}<$݉|_q?48Rf'ɧs]gψň xɒYRr?AJ{\Rͭ @R !eΔrjZFaI۳y]p϶?z֗X, _i]qGOEFf',9{s8Mlx{ 2P|%Um|T>R\S᰿z+!w0+**:+e毶ppiUrSi)VkZ]9)|S IDAT{=#v-&IԤؽ&0 ,d\qs[@R"2egJ9v"kC"[kk몫khלJblJ s?u8z::Ȗ5Rs\B䪧9tFvǾЧ7r2kmR|{ )oVRfimmEC anR gLH!D~f%Dp2se>( nI7?6&Dc̓R+@՚N)'lM D%@++ 8)iuP]?_ָ+q<礗9!&PC^nIe Į)/!@PGc>]qz&qR\<&eRA՚){M,8ve2>Z-嘵ɞr=H>TixE,S> cjM}$nsĚ-QkX5K>o_؇5Rv1*(vcȪM᫷Db5W4R>"|O@ִKy4חrcت˛3?_A՚v)<"~+\[Ɗ !+˛?d?3)ϾqP]ʮɋ\UיW7ziҳ/"eV?o<P'RШ%v+KK*K9IR~D{{;oO&: R7r+/-Z,?a)_BFRJz۾/*kmmU&C{utttu(xo7r"ù8ψlnp M C<&j2܍!jL>]Ӊ+4. 2hK\[*S;gg™RNHJMJ+8s)!4&~εڗJ0KCi/b3W\'2#@BѤ|SqRMzsC9E-E/E4UWh2e~xK\CF,UH&'¦sɪ-pt FEmHYt ^{-yRyF:DW1׀4).`ٍ4\Fa'OY&>6W>,*/'3<{{;ZxH`` p:pF'Jy{Ju; QZKHivr z"t8김3D0PoSjX6^;)wzTrڤ/>K eP]̙uW6"){ Uk~)27ԧ8ZsHʟeO@PSʉ_d5Re/jM/j?OPYAN2@5R RptIvi[v e)TjM+KH.T鐲iBrwٲ#iij/@ZjM?wӶtC1hUγ((ݩl3jKy QskTEO'uB@X)߮Φiwoٙ񤥌1f_E=% e%zD!B՚N)~g3M>S8JY<+d3)$S@ o5wqoSI,A< ® 0MNo'ٶLNAaNKдCayGfM\SsRcg6Qr3~]4_鑈IH!ʖ9Ld?+(2q,I@tJv$e'/e{fQ/YZ ''T'b^2.v犧D)KY97TjM1H[RfJu"@BJqPv7L,, Rj)雥RfIY.9UMq㲑$5U/Q̟_#*̄\m;I$eP5}R_yY*[ʬT!û%ًG:;RAlJ3OP,3QZV|.@@tK9u#r&$ʶry/?)?8PWR7n^ƝV)GC>*2t;Z)m;|lґ)@5Gy tH9`Br6>KJ[2H@ִKmӄʄI?Mfu)瀔jM'+?D.*ٞ<K `ִKy[eqcW- e=P]1#oX1rƨͥC^d2eo2"Tix1qQk̋X6xڐ%eMJ\Nʡ e9TiیQ1歸2oW:R)5Nʿ =$45iKyרa/ƴ9KSdKO.OAPܡG#?2ς_|dm(bNy/(e^v)?,<+dqyx `: eY^5+~˜s{Gd"2)H. _0#ˢ 2@.SF-.e>/%.; ڥჿRЏv)O2'Uv&$qѝNE Rp RJz[QRr_G͸[J$'gt &ߋL/@ Bϙ\ B<6B=r(ߘ3 z ?o>#e/䏿cV|HS׈5,2R&J;f6\0^BvQ- wu ,@}n!D/ 2;uz!*s߾`zS)WCݼb|-hMB棔42e=PN ,9+JbB"DyDU )saAfv_%@ Zl hM46K);l*&eSBLa/ij39WDN&h_z)B>)WѤA_pZ1l_.e~/rd e銲>$EѮĴ "9pa2IRĖRVSIJS6#2g.!1R)(ex,Abn& A2p|%d9@GtaS?c|sd5 J 8R*AjM#*RP5R6 cpϾ zyR@՚v)OwO8q-k>I{2  9 e9Ti2<61t+_-ŲualAYK Xx&U3H@ִKy1Q+-Zymʫ8J^IyـE8L(@"jzTi#G,v 6 |?/ss/jMGO6(|)+|?~<2 _ȡjMfóCL=MA\]?ۘ23E0 Uk:`P?QW2RP5Rf{l7S#zHʂa@ִKysO=ciߒ/ؤ< `ִKy̴_ X|b9/Iy1H@ִKyܬѱQ+.Xqu`=e8 eEZ.ew/ua˄(k&~ѷI'hHyZNjA@a'U9nؕbWDOHhooQ[[Z(MO WLJѝHg,9ˎ`q/] !#)%=|mBNDϨPL٤I7ިkK^ yʢ%g.Gw fFJzn}CyAf JG=>JwO4MV@a"j[y櫶qM'nE|kP7r5]K^2S^r]SEL ehR \Johyߪs99"$~Jݯ{d3Bq/vzyP;F6PWaQFw٩fjIЋRf'NqT2{xq'DR~MZHd拨m Xso^oD崵EǫĖJq%{w[R)iU+Y$zys֪#)AqF.wӖ)e{R%틏n}7}JjA1aa|1RNM(,~{w< x/?1Z_bE|+ VBKJ.zT¸Dؑ^NȦ+O4|c֡TՒ<я/Iyc xWgkLy2eho&&5~~8쯞}JHMۊ \;[.hL56Q ^gX5嵏Md"lQrF#iK^ [>}օ-]7G_g]\]{Y_53NF)'NRdph`PDsK[]}}mm]uuY̶x~=5]l3/ Qb9pH(ɐXGYs\Mw7[VQHv8h.V- z1Pc⊢V^[˯CQX}̐_Uzc8BR_ 2Kkk+嵷/Vtf` Q1#\4-k_YS~=WE>:sLudko'-C%k6Zg`@):ל=L=C\XQ0?pږп76ϴ ;+e[@ִKyԇtPGfspŵ~חd2Z.ee?{4SQmab̭Sf| Uk:t32H>}=v8>Uk:}<%gl]BSjMG2Yys3u_#{y7?qP]ʣF [xoLY?{oYaN5@5Rv9*<#0A}xqӂ O,8a. @5Rv_&z-eMV3~c+YtjOD9)q=ִK-Wl?A/>EtnH@UkڥMYC>"AEf 1RUhm6;\;RЍ)1e)g楌:xL٠zڥ<ɟJþ_2)H.~H[β\ ]?݈eRCʾ+?IZ:X OGԜؼSF2)H.|%VYʋN켸c2)H!eq׉|%nG^rzβ[NI ETt\M^~aa%fQ 2L ӂN)+/tth-v\3SVɅ[00vP%>tU2A|L}KK`w0dK!SrQ)DbB7Q,Л`, ))03Y$_h#vgGPazڥ}"yVW~‚,\x$ecƔDL&:srq4bAozG.#)) KJ:9_@>u%kJΣC~GdSHy7 W^\{,e}JkP]#?-fv?*hm!ˇ̭e)؍H8+f@8P)2s YHIUہ@\ĸQOPh^161fd V30a*UH,V2Z(^3!9!WXF@A'?oឲ%zTa2dtd$DgƚUJ qVb@\%$&ESBvGh[bT J tRQjVTFXMElٱH$CL,ŸPR@Ag_ #+Htl̏Gxp.L@ ^KT*-p,vPf%)K> j <%s%?g$м)$@ Gue?1UޯuM63Ȥ G4Kd>T -R( P<萲)qb)@Rfѣ&3k̂h2"!4V'IDATqBRV?F)3zg|!O^Ɲ2ce*e;J )I^84ֱr?!wb&eVK?O|D)3^eг/ĞvWy%6(dL&Ǯ*ڎ"xڅ,k%w-<' R@N+Q'谍H$HH&VjdJQ|WWP:ImGZ Cs(R^7?FP3He ذ)Un# C<+RCzTq/iځ@~hN|X|6>&A:2AQnyտpY1,A߉z>2{1?6/}C #3@/())/#IzvЫ!eaT>DRF.^znҳ󖜙17i#|%ɀ)m߾z)89)cԜE'D]ʓϬHQ? HE'7-8> ehD6ǭEEKِW1R+Yt"`Ai7C> e.qGFh8^Iy1G|=t]c9KnniCss RFe< GGO:/3 ZЏ2PFF儏)G]b:EI]QRcG7܍4 R~ohXfY~g82I/+咅'GaZ|znl^A]0FXl6w?ڠGzڥޅv)y7l9ڟ?'egn ĩ3F2RF)cXziKP,JX-Dò!Sfc)k0LIC;ױ=pO3z*H y;x=# VvkSnq%ZˏGHy2oݏ53ka [ A _ )_`x9^g_*HXS; &y.W\pysk3?HŦc!.1S]—|.s3/n %ror3 b T#R6ʸBd%qhY/,!;*%e~B< mӡF/%N)G=ev22ma e1L;&]0pl돡.Aiy'LV^axr! qX➭:޸R16(zM蒵aKׅ/C/L(2c+ME e/Nb ZLCEz[fv-%p.XL(II-kƨWnYr2Н@wrkkk=Bxm]-{MXk,Fܹ*۪׌Ěr\`"ah2-Uj˖hnm71l-D9sL~Gl9Μ9#= p+&|7XqZ0Jy9H;]OF۪9)wSKmӄ<;_2 e*)aدroruB`)Q& e䖖 T#RmU)r R'+WZuuuiO .F۪˟lCy to߾{TTp*`҂{O.xsZIJ޺!b)Om۶N֒TT#+׃Q{w=%P]h  Э/e  RR~Ї|!@] rU녨h-)<@݈w`)waMkڪN6.j kի{T@dF aȲZd V[ܬ0eD;}|لa<}~Owyq~NBC' 2MO|dAJ)/=G 2&,>!HD#D Ld1ޡBH~_V>,'Ld1rPR& 2ȘP~xD>oQR&߾ 2@ hKCۭ"$$:| mcvݮv;n_UkGJsk=vwkG[u{7PorvKq:m9ocodpl;Cn[NjtMlw^b]py,-[,636325[hd7"3 k3KyK-V.Xbga-+`Hg9cꎥ:our>@x9nptq͎7ɛCqNvBt? 4:ttLa`#Kqvtt `>6݀']u!6袰z)Nޛ]| =H'FJYaY_a)ԥ-3[W>(!ѣ0r>Sc(Œ(”P=DiaؤeBMS[TTh3t8^na;%ͅ-EP"i+)k/:~_ɽbL"HaiUgYMOJquO^4Ai` $USӫEOEegYRɃb[ j^\X37 'JV֥̋iygsS4g,;q>-3?=BFo\ iAa-5:~PǺPaP^ޚꪮNʥ>_V BOT+UQC]{Iţpu)n]rV]C4颻hFkPڃǒr8JFh#+Hז2lccs#w}Aƈɐ W < D0:PV6zDYj>J2L%:0ӽ%Z BKӇ7Љ24 l_V4Zā1Ɂ<ꍠ|L BQ~GYx9L,/7ӾT*;bgArIg#h,*t{eV ^T ?*"N*HLj%7.)b Č昔&qRctb}$/VGTE+Ear~TPaIpMNU*5Ȟ[)lkV|Nk -7+̗ˍJW1cGƖ+6_`gj<춲>}̝M\-HLm>t5˶xkұc GnKUDJmA-Sq'RX-Ŕ51$9<eDi4~#zqr<jaȄRAlp4jȒ^ ۀKp9LfEI;A=OxpAړ8H?Χ^ B`n"b8kTD =ԶA`'} {vBZAʱ 9d Dsu'ۙ11Dg;?,e,gt)AJ)3t2'΢@\f.%,CRN~R6WFʢBr|yk ^VY% eWBʫwRޤ#eqLQJ9ǀAx ef9":G VT&.+ ?b3|0L *##])yӕx-oB;‰t& /P{1TONLKxRvageYe)ghL=E?uiPy<,:'قAѥaqUa] չ2byL^VI9QMHY׶r[4F\) ){^D׍YʯeZ8,\cn^GL(K+IrMqZ&zRNR!ydZ19!6Q , /2e4jШaaP-n56*Rs7 %zE:PBf trſƉ %##:ֺBO;~uC3wwI,9V4v)^~E)#/3˄MH9Scdm)kYGʆnX Spj |R*#/FRAy,9l2f+`Qix\5!(, rh^FReW<//\BHLK)퀕2~H߯,_/k8|gqD%aqPأ͇/'^_5rr,Hr Kĺy$~#N*?cѥĒq+07:'/` 8t)`}s p(AaPdIHt_T] P}3\Zr0,{ `0˰^kcy{. ?De%iϘQ:j&g]O u P!UOCOe'wbT #^*QCP_{z~QaNJG{񽶇mmZ[ﷴv7%\WCs@{ރ;; uOP O&A q' TP<~#/K$P aJrsLPJ$}l"8yjX#D"$X^޵k˜HHc609kY3fZ̘i>} (e6ATMUy\|&hlEsLM-1̗`&8= uM-FVs3-gL7}=w͚:uƔ){oӀ&O}):L~LE=m2:}ʻot`tM'ϵ;v t"##hhrbL5"Kua cƶm #>|>zIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/figures/shelve.png0000644000000000000000000010107014023111777020427 0ustar00rootrootPNG  IHDR6vdEbKGDC pHYs+ IDATx^itչY??sw=뮬/~$@0!$'IBƀg@Bp066xxyyfkVkh%u5XeMV]v =ȖE.UWjOvW;"UUUiii)qʊfGooo[[[BB£q?:5?l$1B,mXA%B$b$0)0i ؏1~6c. Y6_6|RL 0>Ӏb bi~A! c4=:{t#2?(UJ}\V6NúȐжB;؍!Ys_<8:7<<;:b;FfFGiU"pЈ咜zç] @C Ç8:::O\wlsl]j5z%fhac¥f)!ݭ69w R ;͢30.A m>`#mOh3z6ZF*ĨD5M&:!F#9'DÜMb ~R r:ZKk &K I\+vQ1^QIbhr#el )! P >^N BFh1W&1[cxhѩ=2(u(6ԋ|uQC)ڨluhцK]'%DyyVF!a醸^U1)[ Ŝ SBxgc m,1+DDsfO3oVab YDvԄe SձrƢjZR$E2 u ^k8m ))W2FQiЅDvr)DLRǥ.;RnΨ EE'Rb.4[JDKQ(RU|EV R\JN)2U#*U.en(eKP>CmTQsPq㈋KMm6x9%*$(.9:c@njb-RABxHZCmc&+vϷvI|2f1QXˏMc6VTB)4$TۂIF}UzK6嶻 6*JH̡q*LKHKqb,*XQ5SEKj-垪ZLT 'R&c)DKt`#ƙĶT GQ\jO| FaM\JhBCcb=9V=< X I>=TNkH!ȣK1bt6ϜJ@ u6ڍCY \Mm*@FM)b]РBn)ʼ:f74*}RB~ƬǏ10nJ1/R>R[* UaR3b*:U0E)dQɹ EAMTĊVg(:SKP+Z zuunIHNZ#C@̴،pϜBtu 肿w0|0Y;ibRFD԰EȊh,UGJ(n? {6V7ԭA")47aݔROְzקʥԊ:.ԖuhfDeNIs%EқRFRꧪT}Jp,()(JkjrԱj̈́(HŖNYq4(UܠTY6dISˉȣGAjb,zz %oSpRcc0r,0aCňg:vаe;XJ_6n-B!YJg|-R{6})maQw<@s& 7jbEeQ)jU&R`FRDQK)U b)xRf(}UX?PJZQ.KY+ T4pӮORD$5&1k3,?uA(Cݢ# r0LlX%v*EuPWQQKu("~DQ5vZpq{6>uF=~}t >].%0IOXE\w,qlRv2*1R,%jVʥH %S7!R+y˖E}|RQբ,M5, v^Qݡ3a*Jg]td+7=}}-M-nԜG_zbt9R~*9ʡrlWXג3>ޣ=´ ,YtyW "QW-wAy֭߮M߱H--MI ˏ.^NtG.;q*WzQc{}̐EbƅԂU&"P)%EՒDJtraE-)T(4 _>a[TQ}"zE) ZQ}2>U+ʲ*m VQ0UTW q)=7Gg~l E?17[l}z93]B\GCS[TTNd,2)U#u:QQuX\l8FvFVSԕ-raR{R!&ʏ K$mO&DXI긊~07# C,e|SʢO3=D{vqN;nG-EZ6DDUuRYJN\P땮L4MDEm%r3"˴&fAQ-)GDo;:_?]PAQvG /J\*YSQQUB=).3DBEO$?,CT^LsEɋu1t5'BTԛC}!PT**c ,ͤQI𗩁o1/\'ԑWDE)'vL"%+jo)n"vX~f&6sSʨ/DJ d0*ʌVm)ITMU Un&riX(cm Š+Ί"(.YKNQdZ!}_EBC]%8IK̡}BN&UL#YҲϯ.U%TwȾe* GNB$b&2H3,JQTvġ!ҴsjKoJ}a}%77tõHiǠXʩ MHhDQ Bb,UK)R5R䦔ZjͥRR *'EUw-E;爙:I (*(0VR}tW\04Np)څ>eQA{~}hϨKb1QOU̢u}H*rܟTdQ9ZE+OEC8-O{I j#UG4 :#LE3eAv*GuSJQT:OP~ZQi41,$LUk]|٢Eu*&"Sc܄y nƸ nkNرp9,,eݧ)?@c-f̐śHqE i-8W((XFQd*jZ&O^'נ7C1[:u!Ag&VQ!wTQ]>ENE h╷?oW3~)>cEު*onR\EK(J{O%&:oWW?{ Ӟ=}V5gl)ٻED~eFQ1{Q}:E h };{*ljMhҎ*nwRDS70MDLD%JS(OPԬp;Q1Rg*.`uu''|dɥ+J'f(;R@Q T]Q D5'D+9.z1qwlr?ci;\B|+MEK}b瞶('+I;&W s daXlep2Ak#Q`syZv$(q1Q%rR)JcFM}$1(aqa&g9b (p (R!R[( of;7`;Ǫɓ>sKJ9.d7O7LTtJRO.XHGjRsSJ̥S- iڦWE)%DEXʾݩ,eH[J(󵞹|wv( ~oB\vǍj(:OgE%*ɣ̥.;q}S\))JyiNLŔ ydEu#&N<y_(eZͣ#r#t|A9;UO>~J,.)P[Hu"mr{̓za*$jE}`/ }wy3GQro Dg>nnS.?~fbU(a~ȢH:nD9MJ.U#ܑ#e Pw ?6^~⳵NU4 1B>3۪9%@Q}s=HF@K{~ʊ{zt-0=PU' ̙WgUO=B=U8q]Q3hBNGXV*9 H^$9QTGu>l H.c!A%EyZJ(O-*R6jy8}:e0nJE`$}3rʚ! a,EUCD$)ZNĸ^{>ј\{@ʞoc4>qB~B&>ڡm8wH3NYR(|8}_;36֌DDQסɗ6K_E-ޑjW,AX<g#刏Gꔞc܄tSyYLg>QQ>FK֭7tkJTN%RS]ӭ=QNJ>Oc$zn1Pu94.'xvˤx_PQvp?T秧NQԕ#~m#ͥ:\ݧΨdCf'ɶ} @1ïV =z?/l(y=Ә={X9PB)*V&R0R܅1OeivFɻ)3b0r3<.f"JEݧ]ed-RNHIJb:j)וnJgoMޔbH.y[S7)eykTwhoD %tK]})"*;w꿭MqBϴU VaJtkU}hXke5J(ڿVC)ܳ~0R&>7DoXj0M<.FQ}b.9n|FT:WE _!M-% @-a? %QK *WE(R 1? K.De:g)#E(4Zn$*,FWQ]-Yi6 *|<}RO =j}ߨzF##4rr({.>sE)CЙ0Σ ?Hd0PQ!Fo,~xIwi.E͎#=I5f¸)JѧVQd*2RQI:~:UZTHMɃi.e'; Ra(JקQkOQ:QQWIRF4GL>ڥ(:Z)e1OIC4-5#SMT*dKC.Uvr)~K1c)x2ՍȥRMagf~J"Ae;1É6!lUZsM$B.a`aF]CO];A%f']/WI'' ?1ٳػ5ܑo&yF}]73K1=qb-E?9VDZ2V`Fh"܎[J;ų2_zSJo0,k^T/E}EYɎogTDtq6ݓ;nqR!hPU 4|0_G٬ wE6Ób5]QܑoM:Či7![Jݧvr)^"ſ);ؼϾT_{XVĺ4jXE1r &$KUj-u)~Ih)1 %-\Q$RV!*;j**>EΛ)j`ohF"f92bpc065bbO4fi#1^!KWG>q-|qd=7?Lݑӯ;LZqqXV됫X4/.FͰ7> 1 mS6 uSi҆] 3pSԌৣ_n37 &XyFZQC0 @:KY+ XtrqՌBAn8bA9T ȐUBAPQbEPcZ6&\iY- DQyQQ¡s,n-GJ)RbN(///---..Pu3 IDAT.***((Ȩ(;}᥶7^:dU6"%ZQӨh p#?h*(&Vs𳨲yhhdtftɴS)VI^:88?(Sf`l8ggwfle{嵑ʀ״Z VQ$4EEE |qeC6/77}_}˟d/}=y/}ZXVcUDEEEWWW{{{OOGGuwM mى~wjlٲ0y0w6ț/!&PrQ}}}V ϟ744oM.<48xtNjoی].WՂHxtt9XysAE/m|Ӕe;AQ/nς{uwdUZYrlX9yE}F~>7nnrGh*~nk\Ȏё@v}0o߾Qh,qjjjzzӧ ʌ|!+JyܠJQMBUe9K(W^پsWMM@"HQ?شGO~d@{O5zw~͚}ۼd hǏOII+%/~v;=B睗?8^j(ꅏ3᥿?yP~/`^& >VN>gF:wTZh ,59#B,B9y$-W0QTss3rEpᘘXTTi֡CKI{~Q\EBpGBBB]] 80y)\@Qմ>~j}W^ZƦ<6ZYQPtφ*h/+㳲\>xʪl h k4Xڻ2Os!iK;](avP?ʄ+块_go;Z`/))TWW rb2N ]"4Ѓ3cM~<:2$oyvvv~~>LQoaQ4;jvڽ{7TI8q.yUq۶mZmA{NnCmRX;9 0Dzd(:$K)R%?$R'9v^ᇟ|'33%g4k^ (c@EggΞ;(P[Ʀ͇~zp^s?}/i y=VeKEA݀KrǓ^\\{|t#H Ӱ>7w'?Q>ZvCMJȰ5U_ylv`ɗ& WL>;1rtd職 nCOV~H>cǎUVVB ԩS+lڪl3C5l5@ft:SSS4&/ kb)M;5`KgϞ=!$U`ëF+4?V1p*l'/q7MMH dUn)&4DQM- ehl/>$|H椤 -_ޙ]e@QOsv$c}¿=kų'!ɺD~6((;z(;y3;(YSyGmɿݜ-O[68w].{›PVVgmx*\T5]K? 8uf2쿭?gsKUX-~ӌ`Jɵ'G|m%Ϗ CU`yUZd?ˡjsPq"aDQPN;˗/C ~ͽtҞ={@TVEs(Veh dpH2&pdY&555v4,; I"2QT^$a"`7999%@i"[F%MbTw 4v~x+`EkA,V::\_;qQp/<wC:j?ďo[gJy뫯=+g 'p{B ^pρB yRq ۳JH7\bcGn܅FAA!5W/^M;3h FTio/nC  TLpImQۭ'L4}{&,=S9 a]y\®~f$U[s_쟄2Q&fڴIQX( 䳰K rW&***˰ iOiSϭe8{4R/}?RKO>Pѹnxi0a+!W+t e:{/yNl9^Tݲc)^ow{G+o< *?ׄofCmUa' b)8ᠪ*B^UUMrk- ,ه.Y-.PPįoMI}n0TNr ̤ /]zI=N UT @5DQZ3h!s .!Kػw/l˪0>=+$@o?egg;+>I(vK0<>oIi dKE(r HGD;s1~83< px)7Hxa_J){\;/R+ ˾Kxi/GK ܻ?uѵkĒ瞽' |^o7m<ƄU;yu p~Ӌ5ŖpSeKnwe=->` oж5nk jEy4%F$fѣt@gΜ~^\ rHVce?37#F/ Ν;;ڡtygk.$%'^L}<&h>[[{jJOƬ?>_<ߪ3`rrrhNz3ಎd)pVe *{7OKWuMuIr3߄z{`d+I4~i"P5H8T2>a]i> 3> 3XDeU]{Nn $a&/-9&kSN؁%6ӧVIo8zX >z 7((Ϫ-bo/,Z\Pp獦g6c=rnǯ?yǩ{=>_ϞC \Js Ro(3=_J-o7w6- O9 o2ķI,5hqZjX b)TTPA@KjMUUUXUUYAO8Q*v ƪdY@`@$~1ܗN#W\v ;FQ򇳨`)vR%ov9/MRv^^KkK4#!)],m:ulSs3 1TQKv?ΟI9EUUEy9pT5pt^)~BwR~ϗ9 o}9$|./fWQ_\ֳbƺ{e4$%%|TQftڵII, P5s@S]]VA5,~ދa#¡MwCjt\z 93z 6&;(?QT("E /QPScxYZSkvHKO)q\RZ&* RS;UpygQ^pAJ)9Sѷ/+~-kB.\*F3'IPQ AmmmfffXug˖-غuU1/9DE mr(P.uu" b̀}.{5 ]?z9? ڴ?惓}m/_J~MƹsʢPQ DgVDK{;EX֊B {_/lEz%QZx=\ۡo_O6EnDiEڗ( (SnVVao;rkT-$V&w5DsBigΜihhH joh5.yOmqG(a˖-'OlllDE!TDӇunÎ>dY(j^#t  1D5BtJAQS5RU @:Cz)BJQQnbp6BAn\4DE=x$א6OU 1-Dl_槬 DA ki @O=80*bZ͛ DAN`,Г㡸}Ω21J!6o*AAbH?W7_Ic =9?0믘*7}rA$6t!|9PҦ"Y DA |RP@ܽ}B^T r|U4@QcǎW_}E$; 2O2[#X'RZV΅sRnc#9X&Y&IU"(W1UDoѷe֝;w"Ix?0_6E]wa88"8.DWX<2:j-XtM6Wer,äRqg}SWh)W^ ӣH,wOxW;>1]1x88"8.D::::6333~Gǥ4`m,g& kh ~-*ିrjDbPS}t ($ wܳв_E= :pDp\:c &h29aR@:k+H 'EQAbzEL "ǂ₵>jLΟersQbE~. (GwIG"[#XPQ\6u`(|o_6u\ ᣻3KJuU"arUWoUؘ` pn*aP%}oWz; H0umB̈L(*TYRߋj*dQQkWl~juywwy88X(jƱ6c\]MLb=s:RCb8OQg=%]F`m8*V*DK1ɚwz.zOTf׵5}cccHS8'\] F`m,g&Q>u;"'#ox/W^Fb~j/ç:oc#҃&jLΟer%< S^qDOQ[nOz{{ǐX$[ߺ{ۋ5Hycc%խu*&jLΟer*Je&fόna9GQ3/"Ix?5lKtK DJLI)HocI [ X&Y&I`Kp(AQL>\ ,ƊZ+)*ś ( ӵEy3 EeA\TTf/BAn,JfHG z9Eyƻ*# BAn L, w IDATgeIƪ@A >2IW9ǖ桯8\,C_#t3Yט'7=͗GFF AP#^@=.6!2Ğ?z']zSSi`Zڿ>ccIOEY}բj) ΃)^zKT3kS7<( ^Q][/f79Zcƒ( EUUΉ#w9qDϙ DPZcEMNNPE)mM??ڤ~K eQ#ToAxV3C3rv-՚iabƻLʑѢYbV[6⎞(/CAZ쬴8_(K{* A`:YQ.EQ+AQZ|*^TE#3+'!#HxF< ][d&`%ʢL93/ Wfw]*+ͣ2[ @E!ME,50'ujzpǩ=g]4W U# k}fS3%lٗp X߇|oñJ Oo t:TEU9({"nhs2YnYJ@@E!l+* X-OL8{!1pZZATQz|]Ɨ>&DzܮXߔw}?E ֓_yd^?Gʞt֛tR٤zR* A`n\VTE۾8{ދ) TQkOԓ)yDЊwVx4< qR%M*Sh3@0Y6]eNs'嘃~ G1P/PQb+EIuc8q3D3k]& PEq=4"Y* ljurgܺdN;wJsVTغu'ױ ҂4,WQI?VH-UvNvU5n Uib{[%P/PQbE̖ACH}w?/;/\<H0͢*|~֑<^RηX/qįu8/_X{ruE(s^lsZ>AQG:t%\L]:Hn~.`pBsq⸨(+oɛ, F@ځBK7筜-"Q5WIEhKIg/$wLvnbsO3Va% eb;/j/ZF;C);7N_TP;[¨qAE!cEr?o8x!p`rpjTE`BsPQb dEYxS.${;7$|PQb*Eu?no=H8p&ꅌKӝO$|PQbh}O&_M=݁B@E!%"%n??p.xP|ؙPQ>(HQ Nh]>?7EIt+* A" *@x[ #_vo=$!]-On6t (PQ=R=҃]oT`ׅ/:զdYBK5*-%)5\=q~* A" ( %'5RKPɾ$2PQb$EЎo}w BKLG-%)k0Zeg8\A" )7SWigB`)c'p9D* A,RdW|Ć﵎ן 8?p8i8>}? BKE-7+*qѤig&.Lw"R!9(Ğ$Eɟt^oI9>~.sbDRt37J 栢Eu?LgL$fM$L$My=q( TXbnPT)UqxRDjDzD'E`BsPQbJXE=wo'o<`T r5]F,BADQueujPQ "AVT2AQ(AdRH AŀT 5E,BA(dѱcǎW_}HuF{ T (R(fe֝;wF %@9-6{ T j(tVVVdddX,S^y`08===).ĶI`mBD>/jBU?[![*ZxgOOOW&rss@)ÅYmļI`mB|^3-%$R(*OmmmYYYH˳*cr][VKzb^ K  8SgffFP-]M~_un1E'jSp5Q'Ĭ |^DPT-)JT u !,Je5 ,Rz+0-~flDRTHTh(tvuuAjmm@SWWWVVvnbSO<lT_(XR2O8z?u/9U}T3a\ҥxk1+žp!Si/Ljn]RItbŻ;j^بiKt?uj6Uy -nꙪEu;!qmjlSMDEBU !)ZQpz@CCCQQQz^\p9WSP5U*{pO&'sHQ3\RxM͹{4%RaTGf t9lfq~c"úgm(}#G*I2/SUsdꞶHl?z4O7dfD[,h51]wT*WTyy dywp+0V|xiUUbo8Y37n)KI,&{skAl07gjL 售DKzڵV YcszJdfP} +:; nj̩s,-0++˪J jƛдt(}I=w-U8f!-(M>H=ڡ(eB5oOe&&x4tSM@:BU1PTqq1\ %_njWxޏ/˼mUͅwcXtTfS2 Nt%ޅR ڿ<-bYuϺDo odB"J=mc~2WKX:e^KI,ڄ|ɂ(*\J|fMRA]|F;K.ݴ rN*4WUuOYNצFq\ %JR~խcT0Sa\eq][gx=K꫷jdU(A_8:V}~e^7f.N{.6a5Yjb&DQNRBQ+ *TuTVьsk:u)W+L8Ί˗/=zǎV!K%L(A_/6{XnmL UTT*vdee%%%]pܹsϟ߾}޽{rrrKC,W=AVG %蟏e`mj"`^M$ERQ) +&E28+)))***(((,,iNV!ˎ[~'cB 苍&KR&rU3E!HpIbPB̋=A|^*D(T (@E! FQը(AdQދBA jE BA)C33.gs:?nG"XB[M~)PT| H{(BEUTiԸMmWjVq:Nl.G=rC=/566611?i@E!}OB>| `7qFKi.O6WRuM~~4MF vZyBX0?7}^6p*?}d-Bpӛ7UWhC S uTZB[{_Q?M~]{Pu9\Zyîug>v3 WW+VYZ  1QT|`P(*;B̈́9PW᧧(ڦc#`3"ﱙnSWz׶mK> b' ^|f%X CA۪$D$UlK%n,,( ljժW_}СCϟOKKMMM(6z+ iDzwkk[ :'ܣ$BƖCmkZ8^C٫F(&ςn( W9ڏ0h/4,"V:G`ae'جb1a@E!B|9>e@E!BBB`eT3dIB 1 * Ab(ٳ߿$$$8NTa(u=qqP&h>X@Q^tA(H@ <55uΝCE!l_0`[#&#E5sCHj1C,61?ittlxdoWWw{GWKK{m]}aQTa( /$&`G4M*|Q"(& E/%:00r5U_,  61Vw(Jf8 D3 zAOs"2{ iU ]Eq˗_f~yctCV>a=avsٱJYW-G{`dX]3(j|||dd)onisjk뫪jKJ*򊪫kQQbSE- E w8/$$hms[6Yh%m UQ`aR/kq> ;%oWե'4mq0jU9DfdSUPQ, E;Z(Ji+JnewS(țpLC aaeDa2\F0>PQX)+Jߟj:Yt˚71"7fA%DRyThH+o/(bj0(]f?7k, j^7eժtEǎB E|EA" 6)_+͖?- nӱ 6BS{ıti7܏XbQpM\9(忟F[9h׼;(Y)*o5?ܙQ6#ᤗ7T,KCQrCI* AT(]S0hllq**Wrr PQbTbU}_0DEA EwऊJgIIyAa|T 1uH$ IDATԩޑ裁H;ZZښ[Z*QQbTPTII X 2$?eee(,E_E!T,je4ɊjFh~5Jh)ܰlDE!B` Po|T(g-nn>s1OT,jPO|D}!9?/|B#4UHAsb0wX7>3{QQ0pɦ!O|6 _{7XQ}Q"FYwd?Qu} +өt'wP#-9QO* An5YPg|j| o_ʊ 9oZ칍KRW%U~J|Eew9}!}ؗ7vxw(t+c˖X2uKI[HJ&%ě8g{z9b@~W*i83=+ǔqp }Q9(f(:\ݸ E49|qJU'/\bV|"؎(. o_ #? HDTqJ Jiw>PA.{\P~MLJcƄNKE4y*uLbpu=7,B2n|DT~Pj)a(FQ^!\ӷ5UQ^"CQ@Qz!'\?ſ~%~pKy\zFf'BzilpMᛓSѯď&_#Kշֿ> =(&/ gOω΋]O c~**ܿ&=뜇n|fBOֈf[{(Z SKI TiriaA< k7"^𲢨>( ir(Ҭ0"^nb(, ?++>'((|&d&ִb]x%&>%R,En&[ŚXFU/) UQVP"?po4ݰu1Yݜi 3O*dEBQ(@Q7M~&6ƪ=Wz~r$=-K@Q@Q7M^gWn|ԥ⹙䞊Gn<O\U$zj1)VQPMgcq𧒥NKMzs*\,+CNx5ErmW{ ؟b-tM J sEN9vۊ^ERSByּHn)As,9Oȵ;8<;5󃾢(R~_8c\ݢDHX^. ZP31ªs;.qe ,F Ko:?ryg,W)7 anK( ?s+7Ϟ8Wu9~~\bkgKQQeJ2P*+}(*}m,7X`-+[̊M_Iʞ2ۭ?UqOnw ( ?_8yC?t^XE,EzǐB(Vɞ(k.oGޫ(3!ZUm2LyKnzlz%Qۚ e粳㫢+٩v^Bʌ=S72:nPgijМ0-t=4q!?W5(z (K}S FQ/Z2*9lgp9gE4y#ʼ;" ixRpopi+~b$eZ?HtԾ֟rcN_4}UR.[+ ( _(P~TKAQPVxweQ]š"Qw:?E! C>oro̶x퀢ShTHհ+GsҚmߡ?%HoytjiKye84^^(l7^T^Q1N<)NƕIM_n*(!gE-E[Qj93 *XJ?5(( WT5u}>T=Q;̿ݖ2ݱOiR;Ꜹdz8P]P@s}EQDB<֠(dKœRUR*[=(N8W^sc yxHrR(Dοh(Q4,cpDPTפ(bx> E|տ֯X`Rq~/demܞD+me0/y[B(]E=~wN8܌UTU1Zei߾?϶g> gP+ |JQ@4v[EY iSzSN3?-(ra,巢\9\{J?*Wl`߾[!C߶^h٠˟O]#s7 xz;@WT޽fq1ӧU?-CQBbQxES"Y?X__$[(Ecn+),X@`"wUH@Qx('p{n_SFOP^~+ eUP^(LQ EJd⣢&WR}ᇎșEwH _!>WE ,yd6E-y#d/7?-.=zt}]mfUH:-,A}K Wk:'-?'82e |Y(j`bϓ?풊MzYw]iH*7%\*E!Kf婨MQQb7cRݽ,e΢]ŐTD X.-M`%% :)Y*(Q?'8$<͜]"(9IFMÇ[})E!w/e;W9~ٳgF5:z.G^vl I%OnSN/YE!w/(QQ(;x{WSSTeۓ7n|{ڈ]\z샤~顇:q;(d%l RR}ssCRbqo좯ot K@ @R{/ v/^2W^B!ݸ164tw.HFw "߰D"D RdF$@5rF+6vw67]>~oXS(jv3^2NQDQ~bTKRRݺ5+W ]#%(MYć3#F͊;QbUUUooի:GggPDuYT4E Ryetd)Z2+9phhٳz/>(S n-8etZw8')?E-gUl( On=vZH]KH )j,GQRB aM. fS7-e5E nv *SD:խnb멞aұ-( 5Md;QQ(ńHgp*TDJF6::"1E(""RW]< MLw4t4v6v5Sg5EIꄢ@HbmJJ}j}jc,yFST|e61ٲRӲRۺR^K<xʠ(;>XVVໃn;++ +Ս+M+敚hr>(RVErdSUE;ڂ9 !m*cy1 Nwߵ86ݰ\S"9a"Vr< Rv$x%xh2qv•+V.GS<*MG*r4ro󻀋}m4kF.Z^x;HfإW@L}[cNV֮'ME=*˛,e3М XmIY?d[v98[7ϟtzL~dK9(0J{a}Ч{8~hxZH7I;[a|0bUut6K[JwݪִCVis[xP=Ĩ͘Oj́#Qn~< peܦT-v wǻK}\nMLKfH3cs,[rn c;[n~ilȉ$KIL<+)*EQoK]2ꏪЧW]<}6.M4nnk+j=)oȜn 'arW ).% zs1ϳXgIN+3?I׳ }7Z]٨o|R w;?އi;M{Z.%-ұwmz.yR[.в6@.e,Kfwi?9QCGš!Fb_]\zYQs2dDQo_6]X (lkTU*'(5d)S}Ν;gx7_y>~©wOV(:@5lW#E57.jpCoů/-UU;#)j*\_2ܛleK5XjV*m8Awt2Y(AӁhW+I)y# @>Q3DQKM%&(;DSdC[>~-X;Px)(b)*gn?ƞOef[WZRu-ɺdLza{Q㗖\sjIRTQ{tmSLz!Ω\P|v{Sbɭ{d%ES!( @1Em_{V O^EEE3-:fF@QGo_LVX?.O}sl8{5Sג%E(&9UvI1a=[ߖ!q%L E(D:ɉ$I^IN?dLtd:홆tTaw7*pݍ"J;\ QjN~۴^ݴVHbr$9Eu@ɸItQeg"HZSj:DĤ3v }LB$ (鼬L433G";K,wg̲!egY:rQ 2Ir;" *C!ҝ@9Ĭ|\M,9sWi5>h.X6ՂiTf 13NELKNN$džzkj ODW CBw7T+ԙiH7tS69HQ2G+MrlԶ7Bj4X%QF^H?;HͺdCg+ܝiɶf[{p Nnd$2]T#][>uEp:v+E˺|Z7r ]M}Hz#a z紙Zڝ䞤wS4K2:<^e2.N)HveY-=R􊭹GKޥ±WJ"CRU ,$sY4uH ,LDܞ`QOԮ+mW,6Zm%)Ler)BͫTJu>/7(ѸB  ?Jl0uci`c2@ittֽJDJرc/F-Nn.RҍJrBz9redjnXV7X!}4BٓEZ o\i'J "wLkoV{&$ 3 )tnV^#C/K[HdnAR#-͐rIKiA*ݹ=q$HE /X`Mj C$IO5$ce FKOF3sr4Exgq [,7IvK AJ$YjF +RHp%$G5e9-tUIQu䌤ZfZhls aحQfSWRcBqtԡэl]%b:rHӧnp(%(<*dV"s׫#iNAMSKNf-z ` k@Q Rv⌗.$KE;jcOQ sVEEUpRXu\)厊bR(eEтI-E%9 9/{MOV-% ӨMQR0%ntth׷jkkz{{+++{af{أRLTFE,UWۙ4IDATR:EYQQj/ MavBYB,ufyT@EًMNsW,eA[d+AQE\ڐYgB)5}^R:pi^,ZW&m&!2"JzˆR노g#42Ysj1c)-9t4I#{HFSҤt,4ܼ@caż92"ϩspb"~=6",rys}mjDYh("H%EMEMa) 5lBJkՒu{N-N 38LS^l>O4DdDt庺7nKB>@`@ ;Ga~jjjm"IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/figures/single-revision-cmenu.png0000644000000000000000000003003314023111777023363 0ustar00rootrootPNG  IHDRumwmibKGDC pHYs+ IDATx^pǝת꽪g߻g{+[+Ar O|-ٖN(Z+LQ$E "E`I$&,H3E ADEqw };3=3=a0AϿ{f1gwmqn )7\Rx f )I >z{{<Q >_ǐ›#9X/s?Ȝn{ksv3[rgnǿw"phR}Ӯ_*++k7222>>`Pg!זnUҡe]կT}vuR/q藴 .3j9c㗻zy6y<ǹo ,n*_C-_6n+/ ,l`N_܋j>_vg$$k$PI~bBj _s%򍎎18Ppw\o\|j}U\Z/|OHqB(bv5G/III~Œ_w2іnkKɛR~%1_7D /\^q_PK% `9 xQdv2FQw;Oc,_gi@^|N7I_; yi9wO/h^|?闦ר"iгNwHG!}{4N٦V͓C/E lo|aWoU6VE4. oNݕ5i`>A5OB=U&4YETeMQ 1אM9^*Zے,DeBI~QҫyvPlok7Lk}\ M]8YqaFwwjEOŮ!@Gw~qg<(~jfFY(qlܚ[_|5rg8qh돇~UzmES_1e}Z||#hEzg0[/, d'˕D<GzW:^\%e ) 2/|0}N~eE5d:;/_NU~׋^O_Z\.~6D~#{K?\kg".}8~0KܜK%_;Kv/V~_X~: `bu/Ձ_;6X/ ~1 ~_X~: `bu/Ձ_; RV^fʵkKʨ1j8~Wgwv7wuoJq;uJF/%CH+ Bĕ?Ky `_ /Fmi)ikKڱLItB.T^1XMMI+?8~ ?!G.\\N+@U͔Ĝ_ |6*d[[_;4by#S|~8ŻOm)4 j3%1Ҍ&!q5- < cIRҊޅ?K G&$&ډ3QCvUXgV;ʊZ ()[_ji XOZ??"($*w%Hk#~I=Up٥:¹GNu.lwީohjE`"^91 $P|L闊K^ɧrsf]2cƚ =x~-E#KEj3?~~ih-T}Ћ^_>]Ř 1 /d jPIS&e2 ή> L^(<ܴzC'tc/d5@& ҥɂ"iΏ/~q$MpcO|p엩wDZ=st,O%(ݘ4c/?o/qy<}Yh:~#PS[W#S_xafGgz/G/!E%_;v/V~_X~: `G~q:; Zk4W~  `/-JU,ʚU3NgMy?j,y{tis/.ͼÙqCmOJ^uXwU\QW˞:&  `/5y p?mOVd?,^93 /-Z? Ē*XUvhync:ewu?QܴҐ0Vs/ 9VOZ9г ׽hΉ/)*`/[? =h<~ h%MssM_Ώk[?=xWՅYliE`8~!&P9xרg5ـ_;~rӜKo27˥MҤ,ǫgyqjܒdt6i/fXǧrg}OOW8B}DSv{!P6Cb|)3ѮQ8n'z ?Gd~lRy{RI5L!-)ҡx~PKq2Ҧ5m*j#Te#a/- E[RW{ OaZf`[Aߤ B Ї?znԲ~0]gr&yGe1´_b6'#&^l"?^4Bv"/ \9ϏO/叐e5A-' ~!+nOk&MV6/~mHݝ 9G vy%+PJy|\ɩ&G3ȧ9G6HKL)QnMT ! `G?"2 _;vh?V&j_ϗ: `bu/_\n.npо0$GaHQI`/yu Dӕ+#}}ccH$_r<708W:1DJ_k~͗{-+lmTI}C]Qa$RTzt ?($W@Aaqi饼ꬢKey ͭbNjr z #] {9'7Lv]9;TfɎE< -BNjt _F"E%/_d~vr,.-̯\Vs5X_\}z2dqvvNוծT?,q,KM@%lrO2.V3/_*++~v )` EڎK\ʹ[.T9Z!L+Z;]CW=]uKZ)qNLh);ɰ%^܆1 `藴4_{zYYYe׻}u5m5ݙ KEE9E|Nr tG<]nZJܥZ cN2lI/_6n(n/.fUv^1MW%xz‡餞jWꓶ)Ps _aKB)6]|p[;)y?A=m ˲{ws0 Wxkb?_yY歉g(;h'D/C'1DE/2~nom;ϖv4/ݑ]\\\´ROPsG|v9Sϧn㽝?+2؝wi_cyJRW(?GdmCى1=pL/ئʢD_?55> lYD$%%RX\V^UYY'ZKO_|Й0l~QtuC~@M!3IAO:~"ekkVd4]\~bFR07_A!ʮt0/)%w#w܂-[}>1R{].7ہ/:?q1q ?j'u3ͳʋBqĢ^BDb*.C?SN3*@{|ē:B0z/F28E{_z/wẜ[PSQQt:c'No޼y|ojls_vy{yzdo;۫w ӟL QWHv%ڨ2>ΏTg'6D c"I+`to彖贪M&o :X'j//īhak MpY_QTRQ[՗SXOw'Z٠R'7QJ}-i9ҮZsC'\~L}D!b7E/T /8N` DO"EJ~>I;=&bԦ̼k1k =it65wu[;zj.U5\-x;vNq4w EouyԻb&ynaL_([HӇ_e,q&uS|-f~-!a˂\*k[/9AJUMcEu}aiUnQEaYM^q>)))9zXc[|O O)z@ZQ'Gd&^Wm|x-FkrSg_CQY^Q'~ӱN!^Cu.nC)q۔wr &g_ԭ8^ؖsX,~|*W (&qz4wW}-M z~i|ګHm{cIAˡnzNx_;~ɫȩhrt=HQI `/.7S3{[ /t 4~:E_.:`bup;"z0F`9؄E7 (D\tv/V'*|`9(bupM7/V'=K_I?F~qL^нs$cUB1Hs-Edӹ/΋g͛E'LD/w)kKxк*ӂ@#5W&zữ^װ68#i^ WPF KmWloXH(ep r0sу7݀@~٘1{ns<0#=:쮔%[Fq@ge{# 7R :[;0i /Nea|Zq:a"~!{1=^S$tߨĻ-VF^qm}[V_~}AB{ԠU|bw䫎H9jEË /= &§7/<[>,b/+zSGۡn1T#<: _;i',u ?y5,:ۦZu)n*M|bU3!;KTn>d))^~ S~)o}mI-Xy?:\mr~g=p"v.2MMoZ _;:nmFu 7G7;]3?p{hGM `_x >sÜ7Ԝ 3+>~WQ}:3Av {&C~iu~Nܚ|4~0뗐ASqp;X\tD>7D+><F/bu"{?=[ՉE',>H?P(k~:gj#_"ͥQ!L*ƙ$L/j k{\)f_@l=_/8K9ًn4~7nJKX^t U:QoQ~:E_.:`bup;BK]]]fOF8/ypс@(~RQQ.|zիoj0Zc.:/\JJ Ν˸:zP㵚FJI\`_@p~!Ôە_ Q𢇀EV!rq7gOjmm< v~2 `YHri9䮼sޖB;q,s.3C]3nj_"~\Ô_$qW9FZm̟!ȥ/bW8A_;"ʅk; >*~õ֗ gm#o_Uv%=#o(}{ɥ턡\8㦦}+KD`π g/%WGz[ ~?/w对/ȅ3#r~-~V3NT0R0]y%cN.yP/͘Ka@01NRzҼ\p50e$~ J.\w1  q.ݼ\ 55i <=&p"8ZX\tv/V~:O4nևeăQՉE~2!Aѓ%{>` |29ՉEviځ<=]])Le/́_Nd/ХF!#:@J )@MX; QB'T\=QA̕TĶfO@v|b(&֠ذ.Ax7=s5Pq|_Kiog#vKij\ ヨ1Il49ERUri;5ޟ͟@`[:A/IDAT_Fw,{GO=#__tix7<_vL55udHM$!"6;gu ~/ Yc{8f]=uN=/(:d%83+_" (MZ#$/~mvkz2U\3rjf/5w״o%>I*%G -a/?:󧎦Nn^+uU65zEb*nL"&_T,Zd~;oܱ~eɶXV=oz}[?U6!n(,o?E"䒣;$:@2~a&?{0`/q7@(/a#"X~: `bu/Ձ_;v/V~_/ ~1Q > `bu/Ձ_;v/V~_X#~Q~숼_XI#nj f_&"P-K?9aA,VNHtN,H$8l]&)S-D*d6pR/K`-Nt}>iC>vߖ/N85QzkJLr l Q#~QEiۊ^ hQTv.O(ib/:#ujdc)(p `Ib8On{C10GFڅ.J.XQH/9f@Pݮ3~QJ^Sp#~1X~: `bu/Ձ_;v/V~_X~: `bu~  q8_A_;v/V~_X~: `_y\\E5/łۏ}:~#K3fmkNSC$_C/ݭ%}'>JIޯZ/O8ιx@ 1ucU~GQƞW|3B^ Wh|!a*/z~(;06#lF5?Ph%W`c>Ґ0VM/n(/ۆNϧhES/޾j'3k'J?%$jLb:M x)WȔFUqapї#^+/sk*E⫸8 1_ZQSJj_0/5\6j$F_%,E~]1QSYzg/Ɵ]u_.Smc/ъѾ4H}[Ā_ *_;2B,wSogVGiui~79J0~Qwt GwV:qa엾W~އH >"M4R;3v;m/HҝY$RV_cSm{uD8~0 +|Yգ& `)׍q0sN G/,Kv/V~_XC 2 `/^~ )~뫬LKK۸qcrrr ;6066Fm.(rO)^IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/figures/sync-tasktab.png0000644000000000000000000002020314023111777021542 0ustar00rootrootPNG  IHDRSaPLTE݉ق{vrk`XL7,%$.5޹=ڵGױMұTή^ʮfŰq³{‹ʕҡѦϩͭͮͰͲдҵӶֹػۿ׾׻ָӹ͸Ŷ}zwwwuz}}wk}f{]{R|Hz;z2z+y'y$! }{}.A}P}w_xshwsivsjvsjusjusjtrirpeqodqodqodqodqodqodqobpo`pp_pp_pp_po`pobqodqodkmgejjX`hE\z?Tr4Gb-=T'4E&0!bKGDj6 pHYs+IDATx^oGWNjxٌm1ċØe5KblJ@{ƣZ;:BfoFh)[*t ƩTX +DK>E6̄{N}&|z?ks߽K4kkNHi" Y%SjjՄwߟ(Nϴ)j]˝y0Q(R)]OL?lyQj5JjNY*|? BmuK?UJBZMU@`vM *'ƺW-SWAʖj@jY;50Nͥ85Q*}VO ]TOǪkG"34)kT߼&Cχ}+67xܮ{f /}ᅮ^xGUmDIT 7y*nT@j_JSqj-*kr ۩+^pXX#vuFTU# sjhCy;JwPZq*;/FTuy+7©Xf͖@{NpGv~P(_~(NeQj]z}hhG}ypw= J?G;UR)NugVX,W)p0SenI3oXo4]uHz/t,ƺ. |矏\ _2T׮HuXr^WtjWxs:>3~ OZש3᜙tsOBnnlܲ:梫ͪK'5Nb>ze./߿^q̞j6kѷ~WdC6$,wƠC|m)>*w>,Ԭ[Z[zNq>=d:Ko 3T~my~{Tν[ ܻ+{q jի\p\:/Nt:Rz:NuT* jzN#ժԋR_8rG.|Sf;DqJ WN3Hcq\r]<|Nё*nkm.h*/__YaCeePt9r6zMLmhwW5JJu2y$uU֕Q5շ:uAmmuumSCRvsDqʂD @m")'wip,wKvr85ӽaT5&j7wF߸Y=sSL.mflFJS<;Z|ͣZTm -W{ϩmu֕W6l攭Tϝ{Ts%8SpY1zYo,8Lss[INrx=%S5^~eMq'y{Χ}Ӓn꣙|a_wڷ:˫75kXT}yy͛l vN XRl:l4)/ŵH3U 0'3A&dD?E`>3Gg'qc]*)^wʲNWRƩrSI8-NL|rt}W)8u?n|Hװ*EzN5GqիwY[u:J|]nBp>SE^{}d)C{qjz rsFOhǩ]Cǩ?Ŕr c>|x[[ S1TP)=['G)1{.JALK?Z>u2}S~B0:%EM SFMyܕ+V};Z[VҥjNI/ٜJY9O0B|N]tI}I7VlޚtYvjz/zgtX}0D~]-Ɔ}SxZə}P?lu[~rw:IQ,ө%";u⧟]v£S־tlMO`TFONwS =بzaSt9]:N?ES9quCuoS[Eyg=tUj[@@۩irT*iB.RnJ[-֠loiN7 ٽm {>ڡ'''sS:pn7YvgZ5okij/;~xߞ6}<$gZ,, e엲 O?E?}P|Hd~l{tÝz>Ԯ%ZR,/WBBBBBBBB&)BTD`!l(S !1s{dI$ /)"oSKõ}ƩA1@_ #}5.pi?9X&aR9oYL'pN-0_:_&cr4,)KN-WXTÔaC_¤p/%!Ү%vT(EF32:%oɧ%9ż!G%/2K.g:Ŗ<&L,*ќr\-KY}aK_:uxؖgx ҷTr; )pFSR44444);yYQu}<䀬$,ɩ]3|N;1|n_9O9 +TYuSe7W,O߿  iYNdbRr᝷/]$Sß ep]\_N!~S~+}e e!TNCn/`?"̕xTM"@ee|*?n}jü "'][ *T?6}GH]>+*k67444oN>IjѝrS)+K? \^QUqaӦMKéSYA##S(Cg[)<Aozy xU6P 6%׃6SJuWufo~Fyse\Dw'r; #) @!JU$ jRNE@rjWJ쿟4J:Nf3::8 eCȱޒR Ā)˾u+N7=9522'dd8)Y(V,8L[" FTvNuoؚN뜺5KP2`$Su &+jX/#h[Sf٩FFBNy}'y{| :\JKDm5,VCX)q SUbHN}F}ww}w Bޅ/=GkpPZ9 #FlT1Sc1zt%Kρu5_rU,k9UENi,{l u A,t It It It It I`5Xڍh? `:e:euʏ9ebRJGz~>w]ϒeK%;E؟^ DM$v9@ m)Pbgʮ^v\j'81,ԙPDZ^x a#+<+RxJn~K|%H',!S%(ځ=²"G@%Sފt*N;m\װdƄTbG%.1"9%ZKLK @DhT͠X:EPOUieBSڛq>JXZ"y), 6E%ESv3j˥vs!SZl$Z xN%;n$ZSɶR S+Z~S@ S@ 0^rSSSu?T T:GOaT TC]]mmm[k}e͇pJbN%\S)M_5TXy% KSuS2*9yWr^,D!98N8\Te39 K>gNY]O~7s tʀk޻|S)S]Ϟ=R}pC~߷gu$:e@v*x{w;8tJ:e@O9Ju8)ﱳx2ë>ضS:R vj>P[ &uSR~ V:NV*)w7;ՌNցNyP)SːHg\tNa0}@x^aN))T+wUi()h$j5S:N_ M>3*I S+uJpj~Y:Co>Y::e:e:e Saϝ#9dRϝ#19@HNdgXQq )) + So_A|3 DoCc&M!ح#"SDY(}] . dזC ?Q|7J)pty=E|ٵ%Ž94N-j򳄜sJ3{)6H8|u'<܅SgtWH&7xAH/)2=xe7g/)^!!<(F:PV U^&ssj)H˛$͍#SIFI܈Y95WJP285DۄdlV6=N-iЩX,8Abq2_+(k-C+MS:QbDEq)ԯ_Dʐ_Z;Abe sKXPĖXD!S0䔸mN%Hqʹi Dh8 wn#0gID ?/!94TJR,E8>BNT H\Sl KP/?D=4f\,T&1~չ{ǏS"SJw d ~0YYѪȶyN&GD, պRԓGOvsߡ~2)k,QqD(3W4N 5 TpQg*?u32) 4k@ A 3,̟A:9`I©WS˫{O2)estr;"e ㉻ Vy:~^ ONmO8U)eYt©V.>}s{@ 䔘.=|©ԕKk._LJ88пzpo1:e2zJ]x⩾oYj;:e2 |Jss?|ߥ>B SS{W;ڞ<~CLSS=~ܶ}ν=vsS)r,)T,)T,)T,)T,)T,)T,)T,)T,)T,)T,)T,)T,)T,)T,)T,)T,)T,)^Щ )qtЩ )&SSЩXSЩXSЩXSЩXSЩXSЩXSЩXSЩXSЩXS|NmdS!STFgB1NA Ned |~ԲSS4}(: :e@7GߕMS)t+ tp*3mn(S&)"}+SF))*ҘP()٩=z\3T0ɩ|.g|y@ @&r㹝 2n| 2Cѩ)} (::e@l;iBB@ >cSSЩXSЩXSЩXSЩXSЩXSЩXSЩXSЩXSЩXSЩXS8N\;ʄ9nE u*, nS$۩4+RIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/figures/sync-toolbar.png0000644000000000000000000000675614023111777021574 0ustar00rootrootPNG  IHDR*mggAMA a pHYsss"tEXtSoftwarePaint.NET v3.5.5I kIDATx^ T==vڊJm*jVU[s.VX7 "(wȾdg2y7"BLZ%g;?7w;߽#R/g!? $nF Irj,uR܅Xk @i!Z!fZUѮm=6ŎHp'L[!MKuB_Ʌ2S)#g*zy RUU<6RF\GT 79;vT'k([O0yq aVqC}]}RRr82[%/"oO蟹6~/Vu!D\ kNtʝ3v',߉T ~%2rjf[]N;3;KNkB֥жPd:+}ZnX#`{"`l`Qk8'R_k rQ-ktԞmU@Mn@>2+Q. +Nל9ۿ`o+o_Ƒv4S`XMğ)>4 >zK/[_pLX\+]hUz- !VW6 9.{)`9ۿpE`ƺ>|Y7=`m5M|k}v`+T]vV`VhukG섭8 7u?8O^ئDV\a;,w- >`a s=0n>~ࣃ{zm7G[ȫ>7KbHspQ*euȮȟ5(쓩߂PHWx#zQi0clكTZ9pٞϟ9{,sJ»dLPx?+QԵ=`fC?1hL {m(,'=^lsxۃkUճzU/lVxt;4$!D\./NwyTy]sV|&vTLYccޠ h8K;`ʽ^{ vS:]*}+ ]KųӅI)șԦsRV=EPznRW6;K^VL᧑SGD=Ufl)^n|M᎙ `BOޛ>]RW1e8D<tB^[0 v?#Lr )bN|vi*xE0R8q0UH_zSCD~o@%g*qC\ܕP|b:t`wflH%_ŕ993Pf²Hqqii?GO$uMc9r5`W\bR*߈{*Ղ%\a=)a4- |D7I q${.-!|vc‹ WuT6W8TwJ^IH3 R]#-mp n[pti.i7VrFI#[Du}p nT C`ٗm5͂I} lQ* ˄D058A)(sgs|.j 9_cfh%j Q7n +W’DvϣO_ j䚱8\Gn1[5#;Ϸl։…[ٚ0AM܃f]Mv=p=CŴH˹ipSAba:4LЎӧyg/o\`9- [HZ 7f]C l!i^.0lcO;'2\︆zK/f`9dwiQ<z<^p2`oҰak  æ8 [/)dv eN3Q~+YD[F=!SB} s16ɇbWLmqK¦mVt¾7$-"N027l a?FG[%v7)*s\!6 I\~iL*;Cytfo89d&klB>~`dWSaPQ_޷o.ӿ[qn~LY7#$w?ݙl}8 G+v˷ȝ'|v7Yl@lCj6N9P3`!M)*ɘ7+mʳ&`H2?.;_~ݥIK`TX2'j+4] 9#hlYys9Nrv65ȋYR! P}P7TЃD:~zY,X6EDK緉?Q0feD]FMADN"b>Nv7):jfXYx(M?-/$  Is395M2e ORjŘ!*XsgqN:8*IZfg&$d n:` KH~dR)ϫ(†`x2$˾4ÆjEzZť A*:&8a!&ıh)_cfrA9 36U㻂 Mc ~k<5H%"vI.jTwfl +DW00| G`xd}a{m|-+c^NIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/figures/synchronize.png0000644000000000000000000014457714023111777021537 0ustar00rootrootPNG  IHDRvS;ֶbKGDC pHYs+ IDATx^wpםK^޽k9lYzZL l+K 3L@$D"r0 0sEJޠ;-ۧ>39ݽPGEE}o~㛏~|}~+}pwww_*L+߅'pn[`x>{K}~W׀~e\>}w0J|wo>O![~;zml'_z}n=9B.}a|~ܿQkg Ob3p72N:YxJUM?}N;~ΧB>nSw_?_?_>_nl X.j>gG#dYar{cm'VՏkw pe<$O]VV>Z^,prYwNY ո]lǪ|Ck9;1O6~c׷֮B~ud_6Xg80뾬<#wlxp/<׸=B7"dN= dƿlpEn"/nzoȇ<l-#vJ` ? ̧oo떞*wrο*uퟎ?>M?_XҥK/'Y,9nLZcjЊԷ,5/6/6.^k\i&TUaSu\u#R8OִSJOq>z7[PUPY7P;_]r2S5rdz5B(sHlItqdQ#3si6}59[g VfH5ff9ӀLGZF_Jݘf7.ŖlUjaԥJ4%T;Nꔩ:dChT)RyG=AjK4ƷEǵFǶD4GF7G4GDDD5GD6G6E6EMM!Ma!aM@hcPXcLCן;_{ܵSkN9y!ZKhdkx9"#2#"ajm湐37EWZT5 ۇ=*$pTj2_~WH(aMm?$R߁j^o4 cٕ֕:ֲךI*] ZmЬօօbXj6-7[/7`f1-7!KmKK ԻM  VckŲr1Y+r̕r-,,HRlV3  A4Nf8R1vC]MlIb4ԯ Wm$S֪Ѣk*Li5^j)x (62bkSXڔ14!f E7c mbr; z zql37AZ !烛C m=v 7bC t!B0[ 3P P;ey7\Qj?~?AT yOמ _ T)4?QB i>(I 3l?ܻ#RŲYP0gźlXVoY.JYư,KDm2ec`;5 3(ҽ(vVf͊(VAg4/ }bM@PԲĬ(Zd++ڞ8EO@qԲj;ZV&9I( !mpR>s̘5=LGDhe}E[$H8{mE[q㬷b)^ e{gMN*6`1eAiᄍ:;Q9Q9]9S9w5sj嫙+kʌH큿Oܬܨ\ "WfeYeY3eYeY}W@ oW RF7Ue},Xye G Z]Qbhb=ju}cssͲbVm++`bqsrSRcR=IH=iјl9|9XR1_K+*Dţ\vcZ>ǐjӧF fMIw)XjY`I꬚dHVuS,N*mRcUeHYj&xD$:-*5"%\P^;yjVGO֠b7 fn"M!^Cr|\ Z z.YH:da0Bc#JY?hIJFNeI ;X6,ɲ2VM{Yֲq~YK^Y;eYbY l4lvSe\L,SM"`Rl?#$βnN2>‚h]%X,ǓGXֲ TDh*{ -%չzYv()u89cT9f DhVX7.Y^e1#ZֲT űa!7FƷA Gˉ7>قqlnk^~hRG6|Xp1/-XG c"eee\~BX/o6u[źpni7.`ؼ'nva/Sa"XaǫusՄ*J{څԿ}on~})bŭX16/Vk[pж`B@Ԭ]+& 賽{öٳfY{a',$kvSWۭkUSJ+_u B-tqQ,ɲԯ[=[V3vr~'~+;S\>UT:qxp(ki(T#p~؊~u Ht;!,4h)eѲZ}FgcHm:GlS%nKHв x+G&eMQqm1-jsXTKXt[8b1EԌȶ֐`lp՞<]sTUeOT;u nćeOמ8CgUυa %3$Lch2\pixVH h5a 0DQasp9( kqAy,Y,a#Q kp]Ҥm?b.ZVh>ˢe2b.)$} 2Ȳx^!~@HzH D# Z#iX"c!1 p zׂkaSX.1`5/1S J8:բk^eXhe$R:,킥ZU TR.f--+H*;VcjYȲ*̲eGe`ٜIlkٝE0zدn\ƊZV +Dˋ۲(ZbYؕ6Uyʉ|d:_9W.++|zb#_NSBC| ,SgQO?Mzy;bb;1< rTDh,,f 78Hd<, 3! '(ͧ5ڣ4DFQcIc1r9g\4F.!+3>NΝY6/ `"' cCe {j-?zgff׷UebWhFrQ[WZ:W,$\{PY]}MGs`˵#s_nލ.ۺDkY5^`_4β8_Yf9ʼj\)sWPӗ˦J&.^ ;{a0;?+?3דNv`Ɲ,7A`&=? ]Npӝ4.ͩO: pS:Bљdth }hzZL-UNʻk+N+&tF#DK .Jb8 2FZ·&I0šjO75୰Px\|!B%dI%j  Fu 4B!<!AAf/)3CTk)/hKxLWd,BhA;Fw<CLa 3ajVX ^JE'DKzcza Yc-SrSPX98fx1nB)/t¢_iGln]X޲**ZT젂,Iu2U1c*ZNR4efwQ^, +SqvbYs'ɲBŒ—b5k1cYD5ȕ`uIJUecYAvϵJbY#Q&aЯ"CԲYcz2N8۽t${uHqvWhYoѮ~|37f;(Vm|a3Bub _"[&; h 8kkUuKцhmXRDRTrLr|rapa̩EmЂ6h0 &QM&_UNUh*W:XS^Z5~r (/~=*tʚV 8dFWW;V[-m]5\n"^f5{p3t{< Vvm^b8f\-K <YA~-f#ЯUB"~R1[|u lqbّK ڡp`V@V@&ҟ;;󹃙yCCY@`z@ZVjVJ0{iS}[.IS!v.5=2 L2uL+U٥jJD /l@'^C$Ș/ b@Q(ƲpZhm9O")h,!#g,ث-K{.Il o& C ("aaD<ȴ;< vD1VJLfS0_B7-:KAlXn X'S2;~}cWfQq5Px()&[-wpWawPgbƲTLՁb I򩌫>ֲl lKB&tgY^qA?`28.N1dndiFP/( ,X&˪B1X,dѲ$zYEP5d -;2j҆#`Y=,%ڴ6rwb?*@دV8 {SB::L>t2e[ -\%Sv4io3#py0)eduHgjgmҳҳ}ҳNYG~zP~zDqzLqzByzJyzVyz @8 ݩSsYiI Q٩!٩)Sz!9c鑜閜-zɇW>Z)#د?dMkMd~m_kXC6Mrڦ=X+WЍ*3@b.d&1ea#`Yfl7e!=~YDL5^e5BZ9SVI[EZE+J{urtKW ˎ_C׎^ɽ0sa8(.fɢ̼a0.u;R2S2C>m@ڟI6FR\d2ɡH©2If CuCJvO#Y$Q?WҔ0/AH4MESu1aAWb#AP Zi/{t=ZHd!+O'F'=Q@"CG1c܌ IDAT J{ vg"Ƞ';'0(|{}r[]f!,OD 7 {Ѐk%YM%bK _X%Q KĻ3vl;ˢb4ȪYJ/˲T5/d bX {N&ԲX.\LuD^xucNYp+ZS*T9e#@̟_fUʐ:u8)m'ґi{(3CD; gY]Jغ?Ӯ_vxG_{gly [{{p?s{Qg8 gyg|13y-c` \xEVqrEJ|:S,(vllą B`4hKct,0}q,`4 Ir4BjpZpjHJ0``rd=[wέyȌG2٣Hv+k]ۉ~pOS  H "E jIH%֍2"֊rrko4%s˝ В+A|!(], *x膅 ב@/@Dq*\RbKjKKJCxJz*KB$ Fje4$2ЇU`}8feD /Q`qί8ЉT9 ]ٓeKDLel_%F"'%]AaOC|R!cEY =b. /EHH$1AdY5CfY dYl,XβhVb˲M e+2bcDK&c86 TcE߯},&y=;NA3o|َd>$ JÅx)|Vdjcz11t1@':UNTzUn'QNT{$"a!='en$K)T#y"lDe ̘Ԃ5L_YITD9!@}_bG&l~2L#Į;'1-SX.%DC~<^S{eZ;e%ql,IIaEDbY.Ʋ]إoAhY.\,EcN!!(<ӻ/˲/3y@Xn[pI42':9˒Xfk>bDK-'ZX-dYGbbx,ɲewmt⌏hO-l9oY"ZebQ*VG,Cvl115-hj|N'…8cHk1;6X T_=^rBMf5A {R375Ff#Njz+gwlBJ!1623 QOOIFɳO<矪x{j~)ӋOuT׋Ou)/]Oʋ>K/>xቾyI[~7?ynճ˟_+~tS, XwS>$]c.2#sG_=O/Fb/<䵨܈VuabW#7PJ į RKDNi"yXtF!9Ldg2rL&/5{yX\zd`q-ZJɛI~Cxakt#Fon6#>;dYeU:'=a۲';d{rY eZv,Y,BE'ڜmD[AK-KE %+,b-]itL2CC+Bf 9m#X&?es-=\6ّ}G;P/fZq P%X3kJCCBʶ~i_PG%1FŒv8V:]RA;SELa XW_1bx')_ꋽ0EJD#6w{a_ԈC1+:12`*R؅f;"N įLVfD*C.";x@2'y?t'_݉bl0%ʔDG~Ͳ輼K(AiWؾ/Wր0%V{aa&:s,@eɋ0,lu 8@bβrer F&pA6pXhYr1&a-}??P3g`%]' kYbkeUrj,dd/(-+k܇U;`_Z-;Zv$H,bD;I (4o'ƌh/w2 ,(XFr; :r;μB. y!%"9}prx>qA9~zPCG=w4sǞZJFS(rdϖ/g:(3g^>zs&^oFZz9^UЖUl;E. 5ab|2(ff/xp+tP1E( aI_Q,^\TX+Qlt #WT _Q3k!ͯ4’ `ւB:i,:sɾq,qKÉG2srRSp1El0d A]ڀ.?9? Hh_c 8IY'WEX,RS%V> ;AAɲBbI`#xξJg( bĚ0Woz0UYQ0܈JT#yjVʨbX]K!Wa& |&;Ѧ :eeo;DL\QU.nd5鼧K;ّt}BG?S@pz !CHoKBƦaw _]E~3+YƲL%eUe;d8˒ 1-JF\ˏ~re պZvX2MMCf2bl`Ɠ;vD6/PݘP0ޘZE }KG[2咭0WJ.Jz=8mIN\)Szن٘2\B(.rX._wYg!Ơכ_o~z{띡w=5g+Wc^b_ żD1C\;zYG\'%Ͳ1,ѐe Q4˒1jx g Hxk8doGi/mYzyW*僬+EfKDC)V%e,X,Z6- Mh2fYT,ְC]uX7{goEE"g{jK\WWy\WKRIpUr1T\@9wq4t9ć2guY].uTT!% Uڦ풿~x-G;ZvKJe\c! Tȸw(aA;w=w^ўģV 9ѥ d\JNx;+Wk^>[^P+Pؗ:]5RV_UIIԥJZFu3_(Fv;6{-{?r wk#5rDAK!fD<,K»G@'pց~K06^kԹU;[%KJ{Ql19ϯ`VXze\s 3s3r=@zF.WOdyRӲS2=t!ͥKu&$k9>ΎWHUh{^֮H)^kBC}RS'+tL݌+ 䚄} D#Wn(/{b+GB"ebIbv/K+ \2-bYѦc^7Ϲ7f%)bB2}BzG+Y 2 ,+-gȄACv13Ѳb >Yv9'/W,y$󡕎8޲l,VYŒNho,U,nMeAȲҦiDžݫhZ8ui,])+/^&YpSQPB,[:wlv"&ϢS[c[G F}%Йs7>yϖxM/4|[3b'nғbIúj0'6ѓbI`oZWƝ)*+R\>]L[\\ ӗʦMW& .Jsgd;ӲY@_j&^?%Ϙg`pҝ 1ԥ%%{^mr&WԣڔZBmrUJU2uTe$J$Q#QI5NY-i& Y: @OI`S,oYX+WaS}, Mb:qZe-m"eG\FVj޲ >bVB*=gAFBjV*%q@4 β d] r=%d 8aXA{S;_.fr3t}SC-+ARL\C8I YVdYb$,Q^EGm>gD{PEPe,ˉyvtsHVFثB 8?ry7xޏ)<:ۏ|2o_z[/=/?W6PвkK,m,ZM>9Y'ų Pa}!~-Fzu:yDADAXaƯِY)UhI6v%,I3Io::viVd$71h6ΦJVj/EN HD9AFnJ{vMutju+lxhSJ'bYX(W "UJ\U1X,*6NE,&31 =dّR,&X'K/b*˲bAJrUbs#ʼn-K2˒r1vRrbVYGWr{ yDֲBŢebiG,qo c-XVaQŒr1`C!UʈeвhC/R\"lgYKBX6'Β%N4^eAU,W)=Wr(µkj uKJ~nPT/љz,Uu "N-T5(X~>sC.^nPPɳSGoFӹ:ZeW;A"U exz]CJ|Y#c.D %EBړb̲qvDW(6uݵY˞KEWPe8Kǟ[)^xKK7;K4$ -dP!/F1Y}ڮ uݺaizGY4 /{ֺֻ}} m1xXZ;Nk +׆kYT M0S,WAś_ ˦J0\,p)^. v`}8ͦլ֚UZRkVj MR۩JBbe[U*SuJ@;&WmĖB\8si$; #םLͰbu)dEł_A YF֢dJ1~UwIU!u$yŶRFLkt):`i|;+{_.z J*V=\UxmWbm#AOhYzF$\eJgXfyK ˌb+}k9rT쒐\m*lv hG0ڶxCY3eܼ(sZ%5aj9NPTM~ez^iq;!g+ttpB _TAdez5ı#Y,6ܫO%բNT'uJUcQj^ѯ=J@-XjT%UZ &;d*1%bSl|[L|[t*6:ktB錑tzșb9 -r^ʁEvV,kY r0 (-hlX{,ĻP춖wݦŲ|Ř=?Yvek5+v 08WuԫGV*8g{ /sHpukR^]S,dIYfHF2Ur1}x= 41d/NU9{PEK{gYh1gkYV5KV2W92Ueٕ-iv+Y߬ \xE423%mGJcrCr}+LPh:F5Tj\G+ir+S׊iƬrd!.8L.uTɼKѬ܁lOj˘0u)=`꬚d 'u\VkrJKNxU 6[ꖪe0lIYҎ8)vMl'B'N:P0/銑vBU81&!EIJ>rMrl.ՀncX^eIx{*%kuTe$+V}Wݶb;vb(VhY#w6#oaA>$w8'*b'x&˝#,ǥYYA34r&b%br1EXS0I.R.&Cвd8NcβƽwE]izFITv8x5^IXiWX)YEe)V%d72rF WveKVS9jhxH_X#'ˎ|'2IPد^y qe_9ev?meA\4mKPCe.͕]UN8f@;D%h3p%`T?YV(VCmٻ-?jڙ0(Y=~ gYhIl%v ʦXβ_k YV elm -bL-;aX3GY=x{nY`0#dgڏ[ӄ)f>L33!d803&`t—kۑ#[[C@A3@ps\woW?pl7O k3?.<]Ͻ煸x쟑͝pkqxnt{殸 1x =9u;φEcog >e ;=*䘽 L 2ʂ$?> ]9 鑐_v]?]vcu]_=|I+IÝ ?b&6mf2gmc{[lb&686Qb&6M*bouMlb6RB+++mmm;@lb&-b?֞ .l8GW6n춮&6Ml_=7$>[_썛tN(.J z镡53rMMlbؾxS,{ ~>mؽ^Aj+.;>;!aYɫvØlkXj{G[&6|KUlݵ/6e&f7YgnݺS傅]1Yɹ.6MlbRl^{{XxPtn\gUBR:BR-AƎͭmAlb&/hhܿ.sf 6O. .[~| %}mAlb&/h[R}Y)|յ ޼yp~[s|mgMlbnLϠ؝b m ƒV{o-,=b&?~Tc~OӾ w剣-# ۭ#6Mlb1h,@Uڟ8 @N |=ZhXlb&?*vt mk_N8l} KL/,'e͛yb&?Xzŀ,B\p_VXr YSygnqumMlbk~Vn[ol[om_,y{%9ݛZ#6Mlblb;[{+37sc`jk&6Ml|*vlR5O)ִވ!w+6Mlb&PlAݶ)6Mlb[Xj#Qb&6qm\n\b`b}="*Vlb&=4Vs 5K ^m[mj[m,Ś&6MlbU,嚦R,w@IVאeQD&i{(}w[evO6rOHm؄=و)iiW;biؾ<ݓ'ET5ZVŮ4qb9}A#y>6a'yO6"67/.6p(}blsnFIؾ<ݓ'|86/5/׵|ZYT,>?G"/h<>&l8F&6)v\Rmu؏?ӱ±rgIT,m#}?Bc{rd#b{gY*vZ ۷ol䞴ϑ > =9{ͿGKz;Slj KK{8̏$O O$j(!fFC$$1Amwݲ-r I.:X{:{e?evwvN:Kkynv;eg}di&0$UhR8A.dEל# UFnshuvf]Zّ4#&Q& pʱY8hva4+;PlWKa"[x䜿` #^N!V pJ577#>ڼ(LU"=*A4 E! ''4(Zn$[,}Okq]z9zK)eA %"ֿ<d ) )e-ԟN3sZo=kzQZoo_uM<׹ge8Z?P fs!FBez<;#0cR])K@VN0MHL=JD9*/4G Kep| yӃN F4CKgTFڔϚs޺% ÕIVw>;4*cI}Ra |a1<ب7< IC& !BC#Pv'r˹Ni3 g>@Ϳ% l OH.@TltTXˆXIi0mUfQ Nzw6[!J 4)*<e^gc$bK[/͹"N!rľ4y]l}}}Ut&ى7zAD\O۶9w :ϱ`,_arGXF]FhbY4!/;~Dߴ)bZNhV65M9ea1?6<$[/Zv)4؏8\"7"3/+ʕ k 4RHiNqpegN:Q= t6~sx3FE2|Zd`4BxC663;>ը7@MMBe ,6J' س``%"qr]m\zIRb1f7bYLJexh;Ks=( 0a vHef QY,]2В-[w`bKFH'hu r/WZV!]οLc'4N_']rvEr=Ff xM6e =GWéFuM=(&oiZٰ80Lƨ4倴4 af[8z %KMMsAJTWLLm' +x4.1mxh - -,H"ĆVZ{jO{G +)-7`8q &ٛf lРHiC -A*XkiY~9, jcmChm$׍4!N&!EذK+."7=QEl+{v-.)7`8q &>F ` 云֯z s B|!4<Y8g!ZgjChu]5bA A~!b-bh#žPI{FoTTǖHʞ:GOuԤV'V!KD.G6e֜Aw==nܒkȞ^ɓ}m{^ db/;y,"9F4 /M. yT$ON]LـI P]Z"p|; RSJ.?)_|ʳs2+"N ѩJE(R5} `Ǝ;2jS2jSe֦v]b](kf9;9QӧMCBȀyl.'1+^x T;Ui.֤-UZi!.j)S(+Abix G,F_R$e>b[%uXtN6gR}!XH?UdLژXabA N,b?} !Ҝ[eeآfKQKA1g-W=Z&k(VN#Ȣ(lTjPj#DpWH&+{NX 0hsb(/ywIHzbUVP ~Y&N } Vؐ}&N֡,铽A>9}*jJ\3 4Tl G+\ K^i"fؔ ctu*-n F,ڝ ;UdW ^-m-f x>@b:KۊJZJ9c9bX+i Ƽi,d |G1XY UB,"+6dmXl^,ڝbbC`KD,"hXl~Bgykh,bӝzzVv #Ϛbz]qP!ww^G(usl=_F?El b|D@le[hbQN䆊kmWlIbL&?dkcʖrzbMvG1X^,$f5#>ܾ>ٜ?o^-Vs„=ܲ&%6b 6cb[ xzW[_,PR$b_;=drePo_ncfY O3M[a0bdz٢HKC7qTF,g'Þ=jINMGf㔤fo{brؑL |{l2|} 8Xg"`#".!BυLZy6tHߵ?}ǁof}OG(ݾ=__5ロڷxqߤI97 ^v,&`rE!(>i- =PEf'b!KfCRIn1bq.pê 7l%{ 'dxu}l-)G @ƞDLR]#޿~_~!ȵN~LJigԦQZBq}Wݾ{ӶMݺ7u[F]]egmmٜnnh'f៷hEU˛Fd}B ?: \;+?6Y*=9iRϒ<k,bZe1N9aƞD ȶF-n6rž8O,bwxYQu-{Rצة ̛tDE7ܰ5mdoyi% }2-<=U{&5I@3oҠqH0y kq~Q!]p[Xf3:@e*+*E1bq8zG r37EwlŕŊ=#3@gp<)U}IG 5>@ ~3'9-d.bELNYP˫O@Lz" C&rP\SoAIrHľV -.+kAe Fa{'Lx[-yr<$dbsdNy\:#ɣT*vL -,'v*GYFs;#֨cy.i%8-+,RflL3d sNl:3O29qeXtG'':ၛڛQ Qŕ0*Gu+V@Ǩm:*cm./d֧K۶?m("Ċ|ݙ)6YF&7 vn?'NBWd7ݴWСQ:NhTDg@;&fA,ibSdG#DXb_Z@߰G7;;6#vXpf~{GG3wE-l8 {8ľs!# Ggd4u5:߉ƨ)@];-, ތʥ7]7aW=[˂ZyN{VرV~'/f5Z&k ]wKĈ;=EĢ-̋NΦ^8Pz KǍ[h{׾ɜZFfh &@rvW:?|b2>s1gr9y'Q‰"@5 ǮĢ-,2ZX+onp +`X#X [,VK-ǣ̉lr5]Jv e;PbY& /Q*_ΣGVw8^x)K/5@m&մ5,65!{AfdOj5=;JUŤY6FF!D]./f5y0{ס]oCw"bEHHb˚l̈́ {;ц585-44D|}z[n]ږYf+}ώGy(e&fn,<.^(0sf~Z<*%SH~&$\ոI}xpK/9&+{pXpTuqmayjI&' elE_fLYϧ|\LeqӞfyǟ ?6l+'qsG1=Q3?#fx$\JC)w| nZiTШ-x&,bz:#&+6J !b_Èu[BlZۓ7$ؒ&&9jvc**ZZ֯FWU(ha|ӝak.;r8%0-ӷQ nxՔ~(owy9fXE|ݖAD,YĤU_G+?y) 6b e`bS 4J``tCw+ñA&%jU@ h#61u_޶}es5qggj-64t>~ːlj=@ע.Mofn{^7^WA2+\i`x:ٖp@bKZu1"ԀF$neeLdV%Uǩ?њwsu[oҤovC{Ynʺ8v@r1iIfkޜ~/JQlt qE}jnzC<a7W7b'NBEZ;|,#ނA,WK d,{r rF"zS"ׄUWR;o^Ѝ7.CWpRW3-w'B!cIHð ! WL-p 57))qNXƨ)H'JpD"O( L D(jpO"4ϒS_?%ehjˆMR6g ֓L\1"&;%ŋ7n[F L2xɂ#+3UNOUG:n-"89 :y긙a/9Aםd'T90P(.HDt3pOD  <"V' 9%"vwfa#MX׍#~mҤ7o"CC5el`ng!w2L8r+% Dnart"%Ǵ!HBKͨ~p-WlSɰ5ݴ' 6$\#n9V|ĉYh VWw<Њk0"Vv[\(0_铉?YOѰ":Û: +N mdY>~:/45u!m7nqK}իZ L~ N pő 0SE,u1Yg_F^1Sg1(rDnuqqϯ}|AFۯ`:s ךъ1- ɻr>/bxS+ñA&%ӝ@ R#b-64t>~!C?E-P5=PLafGc]M~d4IOdߒO8s "ԀFDneSDl{++YRvhy9FÊXNk [ˌ VĂXSVXW-"55u!K;KǍ["b pi](vWtuc-D`lmG H3Mh"Zvtqq^,J 5nA#PmðO)aԆK nh 8590ƴDnt)[E V늘Zelppk[hhhѣ'x t W}nwR_(F@ߑuq"+$V=ʶ۝DYkZB[bbLm ,v<צac7T'ʥ4Rc aܹQ(/I,ŅsUJ32U@)[Ă@ )$نXX49R bvU!6v2@,Ă)kDXlM,\"6 @ -9Ă@ dHĊuy34eظ_ w@ AbJˆn'Ă@ ddP#+ @ {Dlb9@ JrFbA Qƈ]; @AQ IDATgfffs唟oX Q6NkonkkvZ ![.RbUSt-3-25\)yR0$ 䳋H. ,bX0-_owm\GE4U\_͏̽eWaa#_G>03~![;Svx:AWu ??G*uO҈fFŝ{|OYۥұܹs-!M  WQZ=t萯S5ki/[P_N#'â3Pt3:uEbm(d|kһ; n TM O8|Q폜/b۴efz6v9.U\y]]]Ԇ ]O:Ooƫ֕8:q%%%hvAxlDDkqq)5yVĽ˰vF/)$:rkZ(u⚚DWDPr/vH֡q+HHĎN#'6nZ-@ZÄq b? eVs—2g2msmGliHfð g!~ysAd0yLU(R],XUQV͋=^ky]S̚}6U׳;K˾=,b{Y~ܑK`(1h +DSJMM XtO$)-Dasvی;WER_6#=dΊ=ls[o՞f/?U0 'F1h@Bbk#xrNy'gFY-"JpEg?+t ,cǧnYЅ ЎsM?2sAj-mfu$UI y0ʘ4ĵ$-׀FQuMX_0J_熈>0 B:qXNOr(I^^I_+kކRHUfBB/U;%8ؼ& ma] K %7ƂEu&LO/~xK/RsC5TQ,ݚ՜ݣ߈+TZ_VߑuNS}E5ҭ]q;3vo/h+Om)li4'F,#)2c WZZZ !Yc80mwڥ>m Þ\@ʦ89>+ oݵk?in'E,ژ!6 6Q$r"naElOOO#ƯLdC+ A$yu bo:׀zDi:5Q" &"/j-MH-5#7+RXաXΧOXb u x# QUrX[9HŲws9܋x ;;i'T]PRgm>vǑE`5557d&W;aSK¾7H{V2|5L8E,KqL L7Y/xYޙ[9:q1 uY m8KVVVQQQȨ--ќ_}{wo=W_hv睚f7_:Y_e?j ?lpp.t~q_%VuϞ=j-}|iUv/:bt1R#([eeɓR#jk)*,.-+#߫y:D/koA6! Mda@lu"v5Z_~|[1bM|`F=ɛ*sR<6-`b&y*3IGy}/G5eFYk$$y?P- 59I!N>GJGIVg.ϓw1)gLLͺLL ]qkZ(C"!ܙW;ʓ4ו1 ] n~%'+// {\[cIp y{N/gD"6|xInYADR_pϹ.z:siШZC*@&čf;8mbYqr\,bpozP"1w\pd)DYT1Ze3!8B)Ꭾ["9SԺ^zrY =ǒ?N>D2蝬tf$'nR&fe栕k%Kb VYjIl v"JQ4:/ GK)rmk$2SV Ji;4+Ub3E;?-dDqC]E2a6"DqV|uu}azy?Tu0Z*u0]ݽmJ֦{4;K#z"knX e'ħ;wQ>ׯJܶNYt$lfOL&MVob"o[坰Ox/l*ҐsqMB|\tt4RHHHtdh+ BպMGlssYqK{M[Zv_̊{V=_k驟E*YACTx"x@ll, V^a=Ԉ*d]ӓCP' 1ÏlR>%T cd2"vt+'{P/:MGT(S1T'ZTbDb][_P\RZȊ7FHYZQXP`.H,ɋ Q&U{ VQUDUSՑ;`-v"6-bIOKogr'6(J4 r5FxRkK"hO4{3;=-K?:ywSm>9{T/Ӿ9gI{QD'q@8,x=0~'!t\#BFau@-K7VNXokUO3)ԓ!bB޵M74>ś :ՐBHHrRA{P  AlGY5_;t5z%-+}geg  e03Teӯ5kۼJ:n\_v]`:\۲v.:j@O3 㯽f~zщr/|~ɥy}GrWQ!--M ѻogRg[}L9}=s$,ihR#.+/+*GC!Ang7=+Xw┈ZbWg~Yta7VU~QW=eٵ&׶/PE:=pIYڿ_WP.Z%U+tXz!;2$'+{KňH1&ЛC+R|5b $zgIH+h'C^ /De_G_=/-+!ǟA_N *oHRzPK$fvb|ElA̻ 3zm8i^?$tic~g/D^($qXjii;Lߑ_U_Bn^Gٔ.je2@2 9dz",FlHȝ2j) '(Y`_άJOH̲X JJKUѿZvXj~/Z"SOpgŰvU_۝ d;%b/OZw6zd\^UvһM,>h#Rаi6Rv8w Ǭh V1G v9Dlo 9X+hsϢG>Nv}&Є~{~y_&.K7qlAcG:6kk>wzB߱o߭z|_^Qb#(sٯ?/뛛7nj7bW#]W3|ƹ=3JPzYO)[ؿ?C[;>8j\A߼Gy=SKWdv6M;z VyC/N;xUy݋Z9pvr".~;/~c}|ES- NG侎֎rޓz~u.[!#G۷Od*sX+)lMNmR :T5qCXUK{I2bg@tʐ{"_L>u_XdFV* mGUzp<}_Emnnzs>cZmߤSa͚/[~svW[z?ǜ21Y7ѴN9=9?>~]˽MeaIMKn" uĹ1`fwޠ.U5&,/ʼܰKkn6A".Δjݢ/Ķp=|={V˵R%ם;w8T#=m8EyT-K$b/q2,Īe'vg[w=TPWZ^U䩬&mu+DvXvbK)uzwe ?MEl9ڼ~?ev}3#LO~w_[':f昉M:Tg~vC>+9Q.'֕_{U)FB@BYłF[bbbDXpm~{=Ӽ9jG{ NuyZƥuے覆] ײ4HR&>͙3)AKŎNS4P=NE{ {q?'xi;vmLLޟᛗр`(bod. /eMTHv*SkߣDl/#~ۄ*p v{'c[^{]u__ͼ_쐇g2T{Vu]Q[ʺBnE M墌G=(cN) 1G~`yyyaa!΢wþw_{rQʼԠդb^pgY}Y]24lJKKAݵk_w֝X7n܈ޗiɰ9rDt{;u!@E"5bcbc|?l]ys,Xs:7;@lX:],RiAdDzʘј?g< Şuq^?UQǔr$g/L?{`j͏tr+IX-vb(U[oqal.Bj*K̬tjas-h-.)oG:sF}{9Oե=V`V旋r/QsJ-CM@[Ty IDAT_~~>H,SN۷oE<3.nժUh2 -?Fq86mg!C]:b_7ٳ>EGbT7LYцOwʏ'DUWWcI;YٿF~.(vG⼰ˋvw߰_㯩 PR߈́5ZQZG4T|O/3{?3W/br(N~b੩)bdia9j,FPc}Mf!T |ʰ8Rޗ“($Y8.D"_W~ۿ^<[pC~iGD,"K5F,@׻H~4eY n!k|||~N@,OY@,ƂH&v>ube@ Шb X )b%bA 45TM@  @A"6  @1El @cEXKʂO9f!p |(rĦ]-+mha@ Y*%Xbz@ GDD{2a yv 2'̏ۃm /fĂ@ J9tHXXdPP(+bE/kt,5; @uسgJ:ddd9r"11Q?)Hz#tjv@,ز8y{Æ6m JHHܾ}WSSNFRq5lCi\̪r-N ;)l=+; -H才'+^@Xp)""СCe>|h)o1~a3t龰#WX?|پ{//:k'^ulIw/ka[`%͕q)|[(r"Kl%ȡa* Zmt(j)Oz*.†Y]K44Է;UwUڎfr3s]ӾK?a[mDZ&.s;9'^_~|u^2hE[`[4nt¢2:%#c ;m;3 {%,]6Lj@a@47L<&m<)SW~1 /lѶ!vWZ﬿x#~}Sgw9p;+~"}`^X/$㊗tWZP$[4.o4Y~]WQ=Y^ulHl9[O-)x ƺF4bKNɜɤ}$Oj?p殇v?d ˛u?>z/r]6'{̱^swL@,0 R"&!.2=lg@X+z)re_&Ѩ  q@ޕ.(6"UeHs(Zeb)\$`b b9~ē: T!jvR’_fv߅xjO[?]qz\*UN"K}SYqAfrh*\(&<<)..V{bA 4v5LM #D -F= @ $C,gb;:k2%XEXEXE:NOM Or'@n:#_YWQ @ HS$b.r1Sc_wCv-?=#xAL`evBSE g$bA ؝e7[,؊ݻ77fRߝhbS] S"_wcHt4**]͟. @ M=<ȃĊĂ@ h,Dem+^(.--ɩl1="nĂ@ )>[ FlPPPff_cc#ڶ2s2} !؍XLY@,ƂH\ubο1bcbbrssϟ?z̙ftfl&2=r bW?#(3UDŽ>p>ejbKb d/ht锳q~(0+4D"6𶃟#?z"++288Ef2f&hU8rxؒzMi:H^|ʤjHjgkv!:Dҩϸ8c;m` rHĆ1yyyUUUɓLa!M8g/r{6\lMNvO};U SOPa6u*1A׿~wc"3.%T!ϸ[.Yzc䣳7L~fO|\(#Vc|M\r,s!wڇ׫$|NrOkl\z8; ;|S|ŲtD7İtu-*b3.T 3Jv0SM.݁:6 "?Ƒ^9E=NM3[Rb [Q_bg,xJƊ,딫XB/W=FYH'\Hb䫧VC J]גN(1Lg\k@1a;ȕI}*LT;VD,uc${WP.5y.a?D[)ŁW*8uC媗"Pj-/A) )t]K:&1(Ҙ8aFuzp  :Uv"V:&<7-!U+A/XY!k2bIRK4Dtu-`SDR84KfDXg .9IuqV"⽬f aɗ 6ٙ:CJ[ĸd+J 1\˨Ni1b#edi%R_:躖]U3~qaM)| @m"4mޚbt^#yMr U\Ubjqt')DdR8ɭnCK]ײ a&*gggaTI3giY "66nC LYUv":<XB@ XĮLj(;sbA Bcn]ŗĂ@Xcs]r$bkb=R#=bA qĂ@ 4(r,b%/[i% @cZDlBMڤ)'Xi9kXi9 nh#)[@ XC:md⚮*l'zfśZ؝56#&FI@ Ih,@QV/t tEE,e&.:^0Av ;p%ŤCt!hVFY(Rxl%@d(M쪸E]WkkQH0 &.)&Qr$ 6bY V]\Y u` vIKؘx.:Z0Av ;p٥AFeb@#K Xt&.)&Qr$"vI\q#;PĚ]L&<0O'{R0O/%"1hN¤S &. 6bVuT hJ;8QUssGWTJpCľb{cڬNy$X0<`4 If'=m*EtUفXߩ ROzbJv11Gf4 ņɉ7FفXt.>Ħ uS#jϵnlSLf/qӽYM2,&L2&<+- 3~XG]ہ!_rdgxh!&-.SO:#z2WuE{fl QIMcصiKDʪ{jO{GWRZ}fXHL:0L=|ީ[{_bu2 Ė]RGl .`ҁe"o\3@bGEum#l0 s K"ۦҤ$^KR(Q$סU9ImZr&qH)ˋ$PI̙˙3%w>x!Μṣ3wWo;jG|X'k֫7GL&6q*("➵^ùB|0ō#tHQ:gnbWӵvv\:d.ʷzbe튽swյ+ ~8)7`!E>*24wWIw]a{tHUl#`#Ex0萢}K[i]v(ƎjٜM'zŞl{={htuyNO IU[(BUDfRP.+vceeūt8)֫*PEatŞꋽ_O~o;?-;Ǟ*vj2W,K3?fW o)x*4.ht8)kT։bɝdP(Բ}]*@&;)6,QpBl{k׮-..YT, tи0=PU[mpm=O6M\b&Ŷ2&GbU˗.//,o V͑ BF @+vإo/lIꛖXW_M~l&R*vtttuueAи0Mweg>VNxdϥ芍\h䯋fzJؕ;Vط7V/unõM=G~Gtf#=H `9dπ+Ek=gc`3pWly7˝M*Ui;:&j(6Zv(Qr.,.-þqxɶo ?#5f3 vIѽRuO]?ec,I,i (qQ~k(\;hjG~ǎsյe[c b⯋K+Cm=69WYG!팸rclxriGfK?u)X ,Wi (qQǣ?x{ǁaiIoS'%W읻w8 G*}Gie(}}R|6ZEc/e›ҫvţ ;bԘ]&Qڔ-;c: wa }޷B]!Oclm}6|hGMٵOo~- (XRmg8j(6ݦY6_r޹B~̖)z4U|%_`ʒ@_)n,R]savv3+ًKeM9@ⲱY#`ZNʒdv6(3/ϧ7~ (X="QHlit%+*[^ )heHMzARܪ/]uYfؙPNx{ѴQ֔w%eeTQ!F1)N-ctlԫyOиb2)gSUl!bU˖\ 7l|xݽ! }醸U,l5 [,N #ө}6{IaY~Bw[:|)uŨu jgǾY4.X|uu9)v\fSl)#meԕ|Ih+EVXUrBG쌴epZ6gCn(oʩ3l\a/Ny\JS%301JʛN;k{\?'_g_A xP,EXŲ%Wqw,=Ie)I߶{ϞJО=ZI" AaJ8R,M; -)=S2e}ٮ1/Am騬wtYz>fMl6 P,S.N)v$_'^tybxT++‰@1}Al eV,Kpr 52=== /JIONR :)Y()bG>[BŲ_vno*% ^)&U'R&QWe\< &G 6'4.8SlbN@LQ{`K0eRlVQ:b @L[P9B!Bl>P,S6v%{jeXP,SN֪Yq/@ @UD`U0 @@8Ȏ% Wl)V, 0;~}UYU( `mkk:X$T*v4Q 0XƢT:}رɵ"*T*N+Mb((rzzzeeeH U곺b{ImL)(bbb|XƢt:z"$ IDAT*T1}")IU,laq`bbd2IQCU"oGQlOS>ڔb2@]Ǧ$ 0SnYbP,0vg?}'g UM1ݲv&X `,Gn+?ST*RYE}ӢbP, @X{ͯ. UT}֤X'&X `,}'giJS9TjmbJ@b;x:uTl 0XSN=MdX6(Xey]KbYmNB @ThY^^ؖA( @WbY^Kզ؄6) XX(_9uؼ]LP,0*bY$M(AfY*l$X;^U,p_B_Ua_xYM@Ǖ8s#z~%TųbbY NM@ KcvbJb rvNv~TO|glAA{kMS,PlaiPl , gYzTo'7Mt*EXS]B裾hMue'Yz&;\rgšq\[uQ{&:)BWdw2MMgzcÔ Zީ?C-n#^C&p)_[ҪZ6X[TMџMXͲ>Q/*ɲƳX.FUX6Z4t/I+ecH.Jhi s::x[iYb}YKXߖ֪آ-{8~)wY!z$,)6,[Z+v ;XM)ҲF-XeLjMտ=_>EeU[VUɲb-K-iI;nPǨ-VgRfr$֧~:k=7?|C'J'ݰlLl+v㖕+6_eYkuiCe׫X^Pd.Md_M̲1Ͳ\VybYr&jXvYe%-ֲ9)ѲjjTN9XA?#M-Lyb6GeUDVUl>UDne[kV:DMdee>Sf _v,)sυ^yFovUW#qfXWV ZXղ\:Ǣ_z]l4f vUu ۩寋XjeMhsYl;u)Ԗu~5DVX˖βENd]dϡaIJ ^-V2-_sԦ,3r*eWK^5(RlBWѷiJ2%>34 [D,Kʥ96T>KKEe$vJʡ͉e|qw$k|8>8zmLrDQyQ8l&\F[E.a xޢӀ%#e]gb|&LОZǔ@<(idJ~=p@mmmɓo&Y_~|[+-  쫯J~MM΋IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/figures/task-toolbar.png0000644000000000000000000000676314023111777021560 0ustar00rootrootPNG  IHDR$?bKGDC pHYs+ IDAThCyTSWLiXVwVthZZe ;"VčEQP)";%@}$/KHQ+" si Ƀ{;ǻw+pW sSfxYxett/xb 5 g3cCׇ]-~Q\ȩnglHf(R%Mez5a3 \k 3-vV6Lhh-+)è(@’nzT[tǣ'Jn E6_iOҞ!=m]ں3Н噿@ߜp]n\Y _=XWsμ'`5[J6qcWνGH,kبoT5 zqhlr4'zRf5'䷡2݃z8vO2?xCk 'E[uPs2{)(y#u{uIQus8qJe:>#Jĸ+)E%Y9iqqUUj4qKU§]g="ѓ*%[w BxHugj{%Y^ Ϝ5@XٿtdP@+%}?}!L}#ͽ 6s%EȀ+y8#nqQ"b u <\@v@{Os:\뜚 #MIhQDdKbU X]-XII 3x͒㮃k2nu n86VMSon#֫$W>>ĖR%'SHDRP_U\RfuXB-4uݸ#hOB8NpalH(G|,/X]6{uz!(MP($A]-ͳb~@%!ՅӣMYm6dPs[ ^EajxwbK Z9g4ˠ3L6]V/iG.)ơ6 EdT;])d$pj˴-ˉ'b"I,u{=:XσG}??xسv:Y/hKRW&&>> ?յ&"K]Ax+xj@lt.P(!tv 4ʊ-@aL!݋\+7!#5-Mɉ?vtSX :bEX(UY-_U7l݇=1r-u# o>-prVh*C)o3."zH %Ttݰ%[ vl Qf8Cը(EAs}x;1XŽ:[v4lk%RGuZPaj ueK@$q.xCQi{teQ52PONԭva>izp; Nyˑ:>Mo!Qfj"@Ohؒk8(Ç8Q+:JM훐gGF~ w)Q;<0skgC"w}{KiXBI DhhJ8G-=^HR\Ok:AHY_Zb` n[䯊;A+$y믝v  o[./3βn[ \PL=F )I/iF@!@Q~ت?w1 ;Zć8] Ό)χ'J ֭n<"k9妱GSt=m)^xypx8ƺ力C|C|k\HuVs2Jс-LrQo3[# #Ζl*sq'k}lP_YYY`mF= (rW:# ER2fR9fvvſ6!nV*m\>}WiYG:lavbk,%ٵ>6\5,J0#+l {Нa;BnZW.Jw,[,h[ #PXٸI:1%2d1SD>yf+y[+vk5=vn]ougmh'^8mZ҄m['OQA}"G5LTyOOݢĪJ¾'6+rs|16B RAGZ)[^9+ =#Öu 3[M2+D0TiRbY7qsk zS.*|p,\n?cG,jԝql[3cj+6}o/=~X#Ս(`Ma1EhY V6z Oȗ悹Ԏ*IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-cs/figures/thg_logo_92x50.png0000644000000000000000000002003311534217015021605 0ustar00rootrootPNG  IHDR\2rsRGBbKGD pHYsHH1XItIME EMIDATxy]U;[cRCR** 0 A@6BVADFD峻D!@#2 CBU[w8gܪh8^uSy> ne-,~;L%&L4Wzן.3G4KN6'd~`?۟fVJp؉f|N]Cw<?| _Mo:X`20LZ4_vQֶ CK-0e2wdY it巀 +g?VE!fŴ:כX,fl h}=;nUY11߻{ܻ l*l* 7}3fUN5u Ǝ̷,G p@}Ӂǎ<8Ù1c'M۶18{tk֬rIկ_~2< W冼{vYx3iLeеm;\vXKYXGxs OFI}_.>3f̘ .K2sLCP!㢵Fk K06Nַ͖-[b˖{mvBoo6=~7.X,Sl5_HK]C=;w(ꢮq STlYg}XF)E $$~ DJ a1ڀ!XxQkkks= AP*|<"B!Zk˶b$ 4L\.K. ;oѫZ?ђ$cRs8 0eZw䘎iq2Mnʑ&ΘUok.,_7!JЁ+EBTьf{ضM<'Jfښj}ur)ɋ?䐜f9Oye1{~C,ۦKo.\X<7سNgʜ9<zkMMMgu]{xPHXT*Qv\\׍@V* QuG\k3%,l&LɤbT}G1gΡ<_sK_ 8(>q%cthl%?p<\P?o<_Sɽt ;wۚ_x3~$R((8W]{PC6h$:DJeYx}`[Dl6Qu41t*:իz5(2=]3}}+c] 7O_Lc7d](ȎΆ'5~o-+̻UN:|D"  W=:WQ,!g>^z T(IH}h'r@J<<@=l~ɥbqB!R!(+xp;D~C?N8g\p@S J8C):P_^yj9&E,aB WO.c ;{7,Xp#RX,c-L&MmmE ,-b19"+vuw󵫯w]R^q%;6mIJJiF9(J@׋Sv!,#*}9r@KXn l3]z饱 AJJ؞K *5ŲK(%Y `Ym² "E^zE8ma1!n}0 Ս BmC:T[8K0J<~=xsGM} ۧqL9 (a~vvX("}Iy`  m@6ц|O]b؇R~ <1vɸq:J q=RI>%䈞U H+K()U_C}m5E٦qVz-xI$̞w8R tuuHeD 4$6LgYNysqJ%r7_< 0AEo? €@ؼs3C!|G $,KXAH*T gСoW={+?SJ<5V-y5K]Y?vk%J.N١T.ء GDh+,HP[T:hlEmm]vNp(uNgB ZK X:FU6E.SNw=|a/Q[W(B"$2((ٻB0ⱡ bs „Hee;A9Xn;1מr3>az6o>7ccVW))S4s9H)q]rى@*E+4]/R')*KE )n*GщֆPE ;/l! IPK{vzz1>kWd)%"E4QZC!(J!`6 ZF!0{}!w-+ z}SOvʕ5ưNvzMV_ԯ?>p/ÊAX08GɀD"y*X,"O"pD*TںxRlZ$j84J{pL)ҘпKŰb qoo#F P>ͥ/ z*=2OUob֙c8#еH$T~qRDtitcp=F)m"^mQFH$I8~Rtώxկ*0)ش<$?nƶ1k!HIj\憃HŨ!pր,PJc`4{vƲJ`ee˴m62zJayQCؽf[)\7)۷0Kt0sǑRbg2\xeW_ӹd*lx2F(#13D~S/K2!w{s|Fj(Tw[uV&Dz'Oa>c6Tt.e<ЃZ',>EO&Ԇḕ~>; 1_eYXEkUP[n1UX$[2~AsxΝ8{>,<m×R>)ɛ eHi&b߱qcRX=۶#WIdT }. JCʅN*R1<|y-G;."1c na[n i?4-:ZCXn$UÙ|aY| x{:vmLiji7V Z/> w:T&LUFQ.Eӳg'b ˈv^fYc1ijTlmdΎ4mQhBCǰYdveaG \nR%k|ƊC,e &ԆlhMʋ/]x^=ږNg*^ث8xځJb*E S(~n ڡE, 1!Z+B]!as3WjV|6?rG.fQ'>q t <7);y]{]dͮ!5M<_p7g&t ~2=L[MN>BX"E*ĄH8ʦwW?n/>3H]9<r^ 5\X^|/<81ƶOOMtNfzueUT2c:0ưckּRٚng2+߱%iaoG"388mصosNe߮-x83orqfoy.J/o]cNbΑ'rctjx@92!($n_?oՕcm1TO'z10Dzc~L;W3|LX9GXqs'*E-R " {fqhvx9$߼XN\>yr ڟd JD_儁?lqFj3 6FɊȣ/c>Nܶ,`CwG+n,6$ʍZED ;s3:4Zl}Y^|ҹZ€2\Uř9LFYeɤV߼7Tn[UIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-cs/figures/thg_logo_pdf.png0000644000000000000000000021707111534217015021601 0ustar00rootrootPNG  IHDRpisRGBbKGD pHYs##/5tIME:, IDATxio$Iv-xlq7=[Vf00/̼I]];X}7`AfVkn`$ǯ{@}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G} 裏Xxf^[;B(T5Vlf;x0f_r׹֑RWRrVRvV~_>7GӍBUU2:W@2uxȦeӤ o{~=G}tZ L!cBiJ)>c̥2B!BkMRL)(%=%UJ# RJG2BJG PZkR:J 3Tiu{#PG}q5!;RxخF "K}%. (,|\b4b<_`\`0 ce JI8 ?ATe G B)4dWTe(M R!Dqp~"_eBkS;J}ǯ&XK0 Fz_c4! DsJǬ:   "nT $8FO0ΰGGp#|Zwi2' ~裏_~0H -U}0%@I8E0MbA.^| ZR @@)c$ 1!hZ)=ddS*+E48 )%qx8 sWJM몢EJJF' ?q=|+wOۇˆ2zCy Z+%ec NgfN;hd/B];PJ<ːmsB[P%,GYq=q@(%Mm^6XUa݊zUU V=_m-rݥ:Kv}6tR̠1WJ]qPJ4sLkR1F9WW/wm  sZkxd4J+pׁld ~(52: uB)G'Ȳ d=xC)2@9?miWcWmW9}C( | `9cud|R 0^,|+ Qd%RBk 4pلxSJJ+ˉSy=9د7=bZa ʅ9٦u@)vǏpp@H7(CPNjy}ño6l9gΞ36wYLžx=pqPkC)5A| WWf5(Vh0RP4 @P(SupQ%56<<@x겴`m""pA4|(I |* }4=u%|rov8N9xkBqHلZ+Rk-;Yw jBŜS2=8!%\i_B^QF_{0 C_x)(l$ʪe λO)\@+YU&3W ZZ RauQʢnZ/L\`0I]~ D1(B@(f(66,JNLQ;Z}ȼLkMx. J}ם>[#~>1J:  $"H)qBI ZqGqd8D2cp+<|e#Pd13 9W J$(IL`v $ßyxe 1qfWWzA! PeeeRkÕxT|wϹ"&!R5'ȪVJ@"zj]mhc_u/Na|Ls~e$MrN%꺆8Ȳ y^w]xA 1i 9[)d=>UCk;' !ea8xl Œ q`T*A6 d]Pd8wAI4`x%B z;_*R\Z;`.̚sN8XI('%D4ZJyxbY܂xa9`o: aۓNk]g;ϜBiGq:Lx,/hq p}a/.aJAj|wvJ~ N D $!)w;7Q}(@(`< ~ |A'~oZ[ED6dh߃}_DWl$!dD)PJRJSBHBIĄ@D >ͮm;Y-xsϷP7 8Z89|֪ pui7ZRjeף]6ֺh)韯>{ 1uDx:v)MF-f9/|GAx~t]Q JJTUn=>|nKCsY/0L=a NS=~~Aۡ.p6!$ &e놄Ծ#$=6C ?[$Z"!D~$ !BqBy`) mc so>c*RYDJK)mƓRu]Gu]eY<E-b+l3m'[w2Z:vɆ /p`t<{7/opuse;{R `y! ݖ0KuU2p6hq1@$\,QBCQsU' uY"gm>>h @SUd8;!o,P-͆gHkR!q$$yBpu.p]T]z9ޥSZ ?FUը UeVY(˒E!`EQ8y>nz. !-j8LJi);{}?^/Yf7WxI ODQro_"M(^^o@)0,W (AeҍDYXp]/xE]!c4Mdtb2S ABxmz=(cAch:=G]UTxg{$GbvшqԕIS !O(ihD!IӔ$IB$q(H$}~}xwqn͸[>rȥD#-`#sdY,~nvvfZ=>>jι*J" 2n,rƘ!]@hpHp쀌,8O(3؜1(!4ᜓ6a"MS C i4M$ 8FEa" Bapq_)G8Ze(H v;mnlDZYQa`aۣ(rTFYpNRRʗR )j7:`1}CX_x0l1l1|1d>B!607 uӀP ft;4L2P(eȲR v|G 6pǁ뙢$wMqSfQȲy܅#m#\wHr⬥UtWlBQ 祮릮Ʈ!|߇qu\-` đB-5s8\<A8f,~nvk@}g?g"GYVAUE{v;1I`~[X :|9../%./1! mfoÄ28B;Gȴ Hԕ2QDʧ;P%ʢ@]UPR2 *^<~hSǩkTei^jhFcRJ997|M?ȤͶ-52 9ax'<QTijTuPʼy R 0tނ]WjbRjeE4] yK|+&[p#겎잝d-8N/./߽%W7WB2HTuQM }I6sE:(qU,Pao;C=>jm(@HFBk2'QB!Kco5Oĵu$q!NdXlFffz<p$IE!|?k'w -8wH("S)p3\t9y#0Ѿo}ZJiu(ev5/ާO\BHlhl6-os SlE{PB(JnB{f(b7pus|0 ͠DQiiB2J ik%[F5"e ?46fĜ 3PʞvkeJ}K̀B 1cg࿼`g[M)f]B)W|8R#ib<`cX`6I0 ! g{JՉ F!A>4+1rE)4(cCPjB,1Xnv4˲h~klԳf-_}?v=?c R)5aEAq#I$I J"}3l T.uhzj؂!{hρ/L?;kz>z<}]5`2rm]5/G˙]KF-'( h2D<fY6 F+`?뺁ќqt:`0 }UZO8 Zu96觏Lhyqς8ioҡS͊r{en-RH{\gPJ1Bae٠ld\7RRЍZy`mɗR]R}3ui1,\rq\q<8Ʊi!Iar<2x.-9*n~ Zu[Ǐu?^y;S-0OchvgQ*k8SHxp]DQѸRir{V+^f~'}穀2'ˑ[n|-6'CsBBxb `<lpA:6',f 0{5=kpS\>a0µrA8w]G(e>OYئ!ٯRb-n}Qy]R)YW=BJZ sOm2t]1E\.d2AK#ZnB嵩Ѿ*)Hy4:vIuีO$S?8zB9oe絠h?[>Rj}Zqnؾ)PaxV+(Ij4ų Пp,< 8)ht~B*[޻-^˜q89@)ӎc8i!I[ IDAT45ty/RkkucG(YK 214v\QhHcc hH%ds]B٘lp4S~"#p{pxiP爒` @ m+~UMc <uUphhx Cv F}Tunm8*X{fyK؋(^EQ4(M$ v{2bk\^^¨KV]@C4RZy0kӧ>ϹqGy8w|Q z.F]&<sρ\B) eƌߣꙆ1K88`zqWEh}0p6E$6*yfz|Tv:e4A:c~sl0MM"˰[yxT~W4uVRh =30+JK{}U$|>Ձ~%^xk M)9tKJ F}PX.\ʯdR)+4IaHM>>r`xG/5"']wgm¦9gVv19y=!lw;V+e9v;kGʆuMq4aT+נxB#!$Z O=x[xB3 @$IR NM @H2/Ula8jaU*{~ .>緇(M!<RȦAo6خv;ji ? uQ JSp=禀|lHi{ 6BumSK7$Ih0-___a1 y~Ή4JA[*UW*N2qJ#ϳ*s~K< ৸Z'w - _[ w2q7кi85m@(>~ğ'//a#eIJӍ{hn/ve0r_A|n ׍Dq?Ắio=;˜(;M<9FN3sd-(V ٣A>Ln}t 0:=Y`@ESȶ;lq#?nFUJIَmG ?X 0c$l6h4B}s@0HSXt\uAw͟7ā,hi'?u20!wpK(cpsэP V}[[MϤ#at2B:#SpES5( ܾ{/$nT]U;nh?oa*M^xEy8 |!EQ.+\__x|of;ª4v< C6L;I9Od'||g7sJyNvX9׎pm6pQ6 p\{1Hu;d;We1_ GRrkbGe!dN'1MI>,N]Y Qt"ߖU>>?)kh xhcN_> ;ZkTE"˰y|[|;<~5f C܌}+ E_m{|_x{[n,(/_-uv!,e0 !BY#_xj42S;Ƒ:̻9L'TOkW xw?~f()Z!j/Z+?ϲtoSD>cE)(GaCYcͺk&>ԮFJ J8& (FX.?_e;nS7aST45e' P$iBC4(v7sD!v=vP 0 0Z evH:.9(50v~_޽×/8z#Ρ.+5=>G~j]*/Rg{{;t:%帿dM=K4 өK?qyy$I 8pǂ9wcs -^vU(%_ə:)O$'㤁 i>Q O9:OU+]?F)X35 oP7ބEU7neT IRIld9nu]'WUU;_M#M !Cu D&4Mֱme mUH%!dx*+0ΰnj& fח( uYaKhzp?45υp}a&5l*/V>bvWUcl?aؿS\ ޭD!A 4& >v/ >֐FJ ݜpMGȯOO1@ 46. |3[g6ꑏEB 7p.K elA](vVxl)ZŞ|BZ*o f7}`6WWWx-.//1 Vƪ=9R$Goϝd9ݼ P8Oj_m9uu>?>\͆xP(3R+MA(B@:dR778?[Q3 h2W$?(޽{G뺔R ^BgV/<0yt0 J6a)$W8pA=o2lȷ9~R ^?7!ļvӠjTEv>| Rp"tInɴY*A bTjr;2&K}{psKKBȍyq{|>x7P V g'iq{ }' 5 hx2F&8> x $t:R:YE^ۿ!'/,L'TEzVwx=ww~* خ6MGhT .܈Ciŵ>4R 9!27\){O4MzN`|I$x<% ?%0PJgXCKau|P ?x$l27nX+gm~>3r pT(k5jf!k+JeC/#T9a*M^x`0H&\./)0QU ğ6' ؙ)XV5ʲBQ ohCж*Op}Jn3 ylgoAUi-_F+3)g@f?x NNM@RRPf\Jf9mp%cyB{E!WZ=/{VUt' -!+i@uV;< 02&L# a$|~#Dq0 {PD5иS0nL(1Wā0D4!DQg] )-EAX- }#|nBoH y0 Ca+srei-oM?x 0%U(k9BֲRWZ @s\sK SJo|ߟd\1ŋx ,P5tppG?Rg3U$eg_*em(+445' MB}l)h+;BcMu:XCΚ~jǿ J ;YW:LefUګuLqq􁾱~P`̘aM3~Zk$iJݻnTUU[྅ъG][,t÷W᫤~0&b 3adTL-eIN~Cem&ϫ,>}+}7tMcu &81CPhe*!16Rlv~F p0 {s$>(!`B֍MTl2D)\޶s%UTr YKO5my͡ߌŮu9E {c/=ϻL$N˗/?quuuxw']MwWإG΁9}696t,54M# W !p)53Oɹg7u:s{hvUVY,+kv p;Ȉ6J?VY/pΉ/|Ռc&  dRR]7t6}aƍko߾E$=VUuެn)pe虽nߜX@g8ٛ-LmdiƷ7It8" Q!>I:rXeT)40O"N b^$ yFX=|n2|0VHYACz~O=xpMe-!B:T48R P@+Z%.)l R82z_=;Ly,t2咾~OOX.֨T x]s*y*rjWcfOi^XcsXI)Rs!䥐b#$d%%9W82&A \-\:\<^xzQZ]\csl1N1Ss$tY!LЖ; cPkD W^i$* |<+1?cq@6 _]__Ϻ;TJ,r^/__o޼56av90v2&]D>؃H  ˰lQ88 N5ϙ62P ]ҟ [w_%I p:KF<>w%Dw9P!ˣ)Z pk$is EmlK8D^VjɗM2[.`bXӢ:Kyჲf֘ fv˃¥ki}; }7J|V^\7߽W/8` Ύu8:9r?DetΧE:K/rā)(F :HI i'iˏ0bnE}~L\253B-ܻ}q /ng84M_y~^gWWW͛7կ~gby%]ܨs6;'@eΫU`WQ0g|LPD]'2T(AO8P|8tfc>fFx“p= ~>G1 o$V} iB'^ v>n^)0Jr&X_\[y8D^ZJ,m~_MpZoB囅woWn |2oB(r%^~W/PRavtɔ^&54 H'D-jR"-S+ OqV: {)|=7v&Ӊ =D6$Gs&.e_t'?c&ޥivX\UktEsnmml\t\Low.NFH94diu_0hds"^'WD䂁}Gòq~B M_p'g@>|@` (AV}[5k.,ִ΅P/JJRI6l-.ooqvqb>N4M]!+ ԕv+gRڴmi#50?bYoxNHRiu1縸96֜)#ةsl~bа#R5Ģa q&gH@W*M(DTi%&V̼pInU O vįM^Mj٬޾}}w۷+\_{-.hS&iO%IYXD/|=\ʈj/%U'xaQy3Q2=q,]G(AjԀGe] 7'&KNbXB0XA0Qxk,RcBa0<)p8?#>|G9D`y~7[lpvyܗ%4 L h ~k $QOauAa?z[]m sz.u8rr}^m.65^} ̖^yoq] k'2=y?&w`&K1 '&mܟ$(B BJؤ̼JH-: "r?~ƴg3̳ /_/WP)t"Ͳ9hM]4t\7` =YO[M3Rj^^}=}yWo^YAH1ON6[OLe|n8n$X1X2XO{V) >o"| '1'(R*y%2w.It\.kt&o߾jBOtS?qT'剏hgDLݢGI8p0DdFnb jnaL"Yz.&ǪRQ8ό~FZ F N~@&J!| qV2Ɣs0Ơ:p#=3ggx-^Wcu~B)!d)MUv~]Bb_w T;0~ke9+Wgg7/KxXmVHă7Nt)'OToJP餲8w@(xr]0Iٵ.ąB )j3?ֵx'|$,W/^˗/6NBu(SB'z,ccsNOsG䘓(&8>ŵclb=  םۑ)S>r鏕h2>'aR۩G{ә7ܫ}hAp'$MܚQ1:o)('| _A={sufj)5^"GkZ}njk8kWp _LzV??B)@ὒT57y__kܼ[\j,8X4Nmƚ6CLޑ)DPq}8ͻ1BJ!J@h! 'ޖ˥zzzj:rjy{{y߿ :xg3Kz(dnOFJ^Qqdg̑K?VW nDǟ8KJK1:3#Y`#C7 u>#:5sЈ ETd,dGg--bޱwHxSwqNv089/_>ӧO PUsܼ~\b\BA[b8lw==bOxwwxE<~p w`m^%J `N 7IJeY<-fj)..|WXgy?a GwU NG Osql@H҈ I`{czq4B)H! oow9 )z_Wx޿+Y>ׯ0.Kl;`yv(9:|{_uw=Oooj%_I.\9Ju^z9*ono..qus+VJϿAU/-KPKךvtN1P?Zh`$ vt#$dt8W?DFI0W8~2TF6i7B ɿˉhueggg۷777l6KN$q`IF$uP3$ЅV\]03xf)'-FZx)#`1Kd0Yk4Uu@6h5 Tw+j.R?& RHYD3 y]JqT~1Rt 9TM >v c-dX,˗\_#ss_d~~[|ObG[h?!7Xo.why!Y0\lW/z/_WX}|.dJc6n/.#}7hOe jH%2s4|yA:Jv$2p}ab^9nnn4|vv(|a\@%C4HYdqiB xDѰ1iQUwA`=jX)"B۶P qvѺtYߙ`ف1-BUPڦAf|PJp)E*hmLY/!~#]sDnI@HE/Qd-=|Og<<>:͐g~y^c^cX@kզϿ@a5u=p>~O|`iDHK)L)UY*"l>z%n_s.«*ee<}9+i w;Ls'8:Jh.qgJbG7 n4gɟq䎀;11# 7ff~&q!x'h.c6_x/me"-nnnpyyf|ӂ)NE0B+? 4\*JOߨ$ @ph÷VE<-e(mk7ΠđhXz9N; ڦI[i>qֆ]AhA+I`- aBEGkiG BOc{h=!edB~PJBJǙ?}|2M8lم $9M?rݯ8l}ѯ3> ѝTjShDgIHT'I "l6|1r|7rD^~da}yq4AcMѴM?RttI8o!$8+V>*҅Q?aj?.]ɔCy11 }7Xa[qmmk:u00d3pLBz _&kf3i:Ǐxw&~zrDhFq (qŶ OJvjxwK@/4U]{po@&")cPt<ġ(@ n~CS0a I )щ):D4I*A0uHArejEBxpf$web<|hq^IOw;|q(|bsίPJgvUmAi}|_maZF$}I$MJ4͋\E.D9+1{^,//X,ײ XȬ38פMzޚv< SO=̽ZpG6Av_xXzxB}8-/7Z Xֶ1[SM? '=4[4o;|~q}}xu_vuu|1Z\'n׃S}La8M9) = $FɃ#& TfJ #q==p94-OMκ#T#pP@`09Xۢ&>|H'@'), .#SpZ$gW!rIkHEñ;>L[YFVL1ťx >~}u g9.n_ gLi8$@~/w_`{S7R +rh2G$t4Me̋LgXW\-EŬ@ygplyd)$TI6ۺ$F8Ƶo:x7?I-7;(am)dqo]ç&pLJHb>|(i39~5ka߆D\P?3\K4x-.4Y,K}/^fAQG?힗 DCӟ>F;oz̋ˉq~o!' 0{ ,~vnƴ3wisʹ-Ox_9 c6+ D!C9+)54i"3Q~th[eǤ !f3"-|hClj7_#i ބ%u$rxqVr--{z1ӠL!Λ)zr3c@)NeP׸3JBjx*>C ֵs]mRCl7uƋׄK9 Mp؇$EQȋi!IS$I[NGJIMt֘~1EdRHfi%h⤢㾃 D$R>:V歪,mQוwB@=XXe\ҵW=p OOfe8C^d-fX,-f^)h"PTJȋ/ {,U&k5GViMOU]j;ڤN?YB0%\ѐ/y8v1vuW!p6h2:'ߑߐ{vQo-3_>}}ݿREN~.\gfy/^l,.?Yo'&orZqYdT\08#S*](k8ICDi؄$"7PLN<[枠Gp8` ^@ Ieb|$͂Yһ!%4Ai5PA\rOđV&r2V'Z1=KWv[c Dl1|@9# 1=@ԇxG[0Xlzzr<}Z}i$Mf),L$i.hS&1mҹ+C}> wێN&j<=%ܐ1݁wԌK"x"%noXO֟.jjg*κ}&GV !.-|<ߤ >‡ w֏ AFMeY總ūWBw f.0&-CLM=# ֋o8F!LNr=AV'f$HR;f.D!_eX >pCa3.z%nC]4MQeX$%&7 PݢR'A2'@g(H ხxy3 큞Og/-c/`M}n;{439yY"+rH`*5iPޤ nqy}륟, +60LkAbarTF< c^SQ٩ЪX_s׌qTׅQEmb_E)=z~(pkiͮ=w7lk?Z SHJɴ;I@3!B,s f9*"'=SuK7ZoO0uk/bJALr􄇇;<<{:Edel6C٥ %m/ mԇ PmjH0Vg8;?XR`^·FI.w6ht"铎nڦ7M:G%@t"_D(1>98d Άct:Z`zM7#:v#aj#LmiLe*3y04wdD3cX-$*\K-u+Z'-JΤ,8kk[TfYm {S\v~[|(E !-Օ~MXZ=FUn:&?prL#QO$E( H>9CIR*("'祔z% N[= D$Y|kA,4 E Lg޷?'qɄYn%.8m|OO*јV(K̗Kdy(=!xeU-mPD(g(,pRQ+@CDx5[;ZZv4~ꎵG~U#Qc|d91]zh3;rԒ,8c[km퓩Wθθ?:Yݵ~ _QR&YY(Y TA)bi.Lmֺ2s@|@)һÍ& |(mp\^xb;[z պNj˾g4uӸ!XORPx|SxÑbK E@)%tzkR~efREMso 0"1JUYBȐ2~ [k *,P% MI!AM.Dc'oQx7 ÄӛuP#Uwm_oᘑ9YLBɩpm{zDSU 5i"/2Ŭ@VPWk6~"Tfwޣ)â@><wqҬT qTbgO vbI֐FةPq4WŸEM@FԉMy{?@hۧ'|áol0_.i/7Bm]bHyYl6ιN|ӈN&˸E>ړXu;v. :IzLt—3'Gi:ekOl1`sz0 &;?#;~${v?3R!9?O59BH!bDVh:ڶ*a@8( mm`Zg 䘘)8̸g/x+rd%{0Ncކ) xoy<˲|...+z*vAF2:#$$kP~g8iYٸPby*(XtIJ[D%  VԛS8S($%&yOp807$)p,ếgp?$rP-txg{$c@ JzSHq-~nE6y4ϱX\/vBi/lv zN^d(0y?2Ѕ8hLļ6&I1L4|H2A;A+2Y!.^hNs?;ض]qsdɐ%%jv| G["z"GO={r!G?`ĝ'{fKf-i J ,/S.sl.P ʢ-LKY֒+LcmcMe.Mc5S|*Ҕǜysğy+ 0˲L- \\\8;;CY} S\C69ss :[;O|~1X eA%j֑cc)'$1f P ?!( 4 pc*I]멁aioB<;cwoɇep2^G]W88h@VVXPgH$,D""fn.S1%G|}]SGb K*`"4{Sʡ9XF5{WV6?5S}.1k)IhqO>>_"˲d6aZ׸|>-g;iiJj8/yѤ.K}oqtY ꏪj#Ɂ (rIWD#7&e4y~rT"C^7R8p+>p x8!  8O8?DB$pl6ߓfb̎ 3Ll­%G 5{)yU_qUmusj-$˫HK`qQ9Ѐ +`jBvնCWyJ C [&nq_S(؁}w%/\i\/Kkl6l6 8AFݘ''u4( !ܛ~ᨾ1qTbQP\?ʣˋPN6Ġ:QR* c}eUW޸BP>0 9 :IQ(M~v> M5rB RYB J+fD:Sn 郗κzOzjߢ5 :EVhBHHص@{P")dsBBL( T@gITES[ց ~dƚW̼ ͘xs~䊱<֙?ǕuEEQur~~3V+f3Ȯk:HNatHhX|;8H ֊l݋MtK69#!.OShi:pا&pxQc9dZuh% v}>޶"56ǰJH-{dq\]ϐ%>5x^S>Xŧ$K ^gM31'LOb$aM 4> r0Wf~ G_៹I[~uaZ=V]"QGU%h@L{*$΃ bXV*{ZOL3\Zq`yeY]\\__rO>9:QqS?8n`4Q sR!c+y/1 ~>YԓQro`HD4d428˓`wmm__Xq?g>q9I)}cbym9 E9;`L㛊ڦiI)@*4Osi@hnv^ F ˈM|\;cMQ ",2d$ 5A B}(XkmDǛ'I.1Ơm[4MW2l=d #)}ƅoia޻[c%I <+]r;<`2)'Q et U`24t}8\A)PLa޻/!xs|8iAuiꃫf3E1uUⲅ@&Hs|SN _R٫Oh"!MGg@|:O_c vw {ǃqp0N r'3Mm:Qnw-Cۘ<~Jgn_%}> "53 OgkŕFyQ R#YDP2/(@BC/ExRc83%a؆`jS94ElvA?feB'od6"It6aJ\__cZ!IrBw;-d*0SKx4jzrjgYsCwKHt?etɨ>'|;G&pPِcUxEQ(FH C`|q/>I ėtѯѷ{Ikض 1KI!A X%.dT_l qe~"ڶPaۡj4EY&(޸#ƒKӶCdlJKe|HR>jN0Orޱ(m/)tqsmȻU*ٷyvl"_C?%lc/1?8~K~ !W(]fޡz"jQ$L+aH6E䄅Bi(k")J?x$A2V2/H-`B3xZӞ?]̉hi%rduLli‡b׋iUQXVl|dPcEǶYG w[hr{ig85i_v8i[A% YC)O"wi[[@1ϑ LC(4I8dp*ݛJ3Oi<6>W42^b)\uHJ#0ظRumlc'r;0~J|iv?V"t`\ kb%H )жA|!Os]YPpZ{ uֲlV[v|gާ<~70V| * \#VBG _L!9 ' 470@N f\{ Ä/$PEXpH A[/S-ʦվ]UVl*ˇ}P(%Rϒ.rlTWt q~ #pJ|E-#xu둻~4M1 "y֟4d iz3HiNjIVTJM|_&p!ѡ0B* "1r3Va ,?%=%ds:m </߃ rmktp*S:NiۢhsE!(>'Ke?m45꺆 ,ϑ,.׺[v[ԇ=Biפ gP IDAT/AA#X91 GTɉGcq${6=MkSֵ!G-,RD*)ZU)r*O!82;fvؒ#kmk[Ә6vow?h[#Oq$({/=^lȪ-ŚP܄XQmᄂu Rh(t.hyS$*֝LQ@PJlcy6/oϙ{cO{}a[>|'ǚ\"Mt? 2*ˮXv'b4jIo"Oxc|+qs޽%+…$h[a)u41:MŬblkT5IA]Zxwq觌@Id>u>7 9=j܉4T2ڪ7{SgY3s.X@`!ȅ)Ѓc{%I$K\bib=Mf }^!mG@dgwYudNU<^#U;ψ qLCDx`G 3[Z{"bsct bf̖8cZlPw058/sisb?>~pބSxC)ha3lacjcLe'q8aQyT#2xc`33A8@a6f+_wYZhP`T4U87LV!GFPojm[VFgr1jDY>B<8Z`τ)mÇ#NA Y,?~fwP78RzsQMܘc?m : K2\Oς4A^b^L<}5FI{T/#iML0ٌ']YTpL%|!Z0zѪTleyKL!;>En  %߉wdSB? 1EH7{TTyvY()D8)6{F6 !3\r* _ k7y%}L;i8D qpb!tosB>1uF ̀cK𦟖 ^/񹉆( ! Ѕ)D! H +;E,#vՈة#ձ^CȌcuN +*&699 (6A 2hA5N@:E#`P hUZY86Ɛ58u޾>Fk36 A[Ѷ|U-cjîK|cG\(_a~N̸+#E&D}-mƹ~l[y1k`. +}}|}rLb0lCg?3R!tA~‹^Ŏ'sc=o)韀V7@ `+#?g @8& O`@*8#@QyFޱ/tC۶+dkѧwCug84xmj/JIV{S0~\lE&1qӥ: t©_FV<ôk8cQ8H:5ڐ NvqUi$Yi"YBĢ$) 2R(daJ/ /07ygļB' M_ A2 k]P0^rN3 39. $AZlJI,?RzQyT+5bpߥ!}c}w)H?97z$t#+/jǿχp@So-z+s{' (JbeN=q8Fԍ]r VNMvW-:pdfQ ӖXjJ^F15-V5VvzUBӶ*bP G(`@4d,!.7&˶g|Gǖ )ǧG0.]˱׭y~ i] -Nӷy20ax^4 i+6EDݜ -6r"d&G9u[ }9TMi:L18M:i3R aW W;ސwa @3,>Sd~^9v0az8_NY ypO?b?P?RosoxymT_Oq' 7u<)NrV+%A<3㷌? ,Zna5¯vhM+_v\rIx_xR#EL C'tY ^nMwZZE0ohmw`Z? Y6)Ⱥ e3u JyLh9b<SjLMgcIa15rjs^( @H̖X*2Rς3zdӴ(}1r8x}.v)?NCwi8_ ^'pSFn3\ EjTfffuןW_/>fa?t%z2L6\oua(CccIC! q@W75V5ʓ7V+ԅ vv @b˰LvI'$$fhr|}/RY _iSf #OpKhHʩqQi/`pŠ"E9$# )mkS$aTc|tusJ= 9O-A^2. 'R`iyxzts[qZ^t[;aM$*K嵨ׅڊu+Xc8#69?嘿I!15@~L!5 KΆ׸#NOO8|w=8N8Ng0euzffx&%jvT°3vB3\W<~IRwEO\(I1߈<9)*S/ĩ~M2SBJHI2GpAg~I2|aS밙A#n `T0Q(V"H# JV E3aCP7R&'Q7' 2B/i>Mח̔yfh{SiAYy嘿!c~?gާ_o-89g} 3xF`-Vi8TᲲMcLmn{O_g51 tM3JU󥊢jnf%)gC }D:}k%{ua~\ײUI |G/g_2/)%} ӽ>Hĭ*ݬxmʅ(Yf 3ao$w `W{`AY{t: gYȳEhiP`- ѮVhkM;.9gewԞ3Vbj>. -s a&QQ.¤c,48y%9).p< !MCc sL1}ż/(!w?2!MVosSʸ7o g _cwW}O_c{vF4:-Q)- m.YKT hXg5޳luq>0t+rst0 8hf*Cl\*XRC,3 "՗o٬ tfؘz2âOf;:"RRy6O# ݠ52uiD$TރB gMsd'ikDCͣoNFd /z֋IuiVKYtCp'R{qmJZRB'Cfܩ<(]^,#56Iۭw1w)sI6ۼтSw x58ơWn1ǿdo(2W@1 ֢/>m9I}Z6甖ó C(+nIkGPʒ#Q7 5^}wFw: #NO=)°إ7 v=vhޏ\Fmk/'e1_B|1gTςKٟi7*!2r̉ro)қw9oSLQ([&~(ӓҮ L47H9=Mr *l{lv;mfH2)DLvtϷm)@@7j=(9NOOxxw0~%(XcBm.X8=O0#. lօƒf$]DN~j$&cbF !5hq#fUaO&یdƲgSUNf+Sx4(SwJq? DBh3;Oq@?*?ʙX !R1?Po(џw`32ݹ9 0/_SJhV&3P–ˋ^y:M(9/0`ɋ/8q1xX9v<ea=d\|2µ qy~('Y~ܘj6 =?Ne_,; {*,MSvB弜J5GÌJLٌS*LY.,1s-eXEh7+E jFR~QU6ԵX&UD6zcG ]~V]{4!{ %<\^fZc ,te,B3r`JFM9Xy HS85Bd,%~Jkз-jl.>02(Ӿ&!ni`Sȳ^"Dd)Mm:J(ѐSr8. wsSHoroRH?hw*/~'ފf|mߝnlYOeGUWU}9؃g8JffxV`nҚ@L|z788==Ç8==?p>q:q8Yp{wc ꦑckazNK:5z̳ͥ"^rr2_/rI;NA4YrDTb[ K4Lwu[l9( )j7S`tQވK𰘑Y𤜿UcѴ+(, <0 :1wZ=e@׌^tRj"` i|LA71JJĔhLG|Oޕǜ[@D&.#!E3~pf6sk\Yʶ~.̶] S3i]GREҜ(K9eJ bfU]nlv;ƻNOx|U]!|>凌|0MۊGKR!fc\1Ċ,uf \Iƌp}F\sFǟ[Hë0 *P!hF{SjFLᔧ- XH@ x1.(yV &5Q"|UAāz2}aP7UۙEf8/HPyvͻDDW@{H[2qdD9'3L3ܙ-dL|6W [ӹ]o-3ba"a)W}NkO8ܮצ]I`uyd7ᓥ]Z{O/%baw0Zh56kFF8 *9ဪÄ1 ?ZO/eE !L-x29l`JQcfBS.Tf#iP1TMrG`_npPg25qhqʙZEE^5 [=QmnTݔ%fIu0 8j8dZinV2ZQKXV3S ),)Ӑr i1s#%zOP)JmN[F)?wLIr~K9s8&\aɈYrPXB/wpΏ/ ;o仔c@`#HX_UhQ6kЮ8>=;ПA^۷o=6p`^y]yƜ1,-y 5ͤ.Vr!.’F  L^VYS,NT8ÛEG岰B΂b&,Q&{k1N%ő)`ALZ@a"jv7hV-? lf AH5[qRE^Xm~Tea61)S"#(Ӂu)1!Hc{H_D|= bD!:;+)`lA$4լVh -PXȢ^ I\;)'54;ZݫOp:p,Qowh7xxx#2e8-Y^)k8ҕ&?/oDW&W$WC*IX;=f϶wWfk`4B`i1X4\籵`5R1J-Le[JBJܘzv/rw0_q! ƈlXow}ۇlooд,3E(;aqn.$Ddty&,jMjdJd&&.^o|(Ӂ2s'tL'&>1;&g">%o -pL#w 7 &Qb\E]y?-_|YZ ڬlXu9.'8τ嗞sˆYl9:no?[4 'yoNQ9aTaPuaj2Xfъ DGt|@kEb\1xz󒺚LGo6#eS:CrLL0x9cUsSFws/szWՉJwe9?"+ `uXﶸ,Q-I9 \T(U܉3#<^dӎiSe'-dL3? ~B22#'0 >YoXDcMr)嘉p{0Ƿߗ|pp;)gQZd%Cr͢Rjլ` !TAR pB@ӈ4яX1 A dYYOY * Dƌ(y1" Ab|BmBB@qX)jL=gJ3sU0:'2TIR1_Qpes/*LE7>9= HՌy)nbw rΎe]N\s& ft^J-e Jy0H()@I8G-RȑM ":Q@z?0{&}CR*68tbs->rʚ2 ֢nƍA9 yrI  4]ᄺigCNkv\0WD UA%a'tMz*o*(Vyv;)@̅AgKXƥ KY kSL0KKN\*zcxU-;M)eInq^W}Grҩaʭ79$ty -n`|*=u(ab@NN'~@ ,9=$?(mr{x Uf_vzͫ7W?h6\%־2 $m1;0a+Gj R4 p9!@CV>'uvR z-oV]Ua`HL=-m)Mm@F]`_B^+tO7~>?Nbr۶EnNWT6I)24c!'"}dwg'g }9:;WUcc{,Mf37ԴԜw,{JVUbX,R!&qV x/SjKtx`"/G`ӮtIf<<˞rQ{;E}z]$`dB;#t'bř gU* w|jzWݷ>`If%!$d-l @I g)Y$)2rPC- V_ 7INt1J7TYnƜubws3{޼὘ u]c`abaa݉Zm53 ;tN#Χ8n4U{bSp] yq,4K>$9,U ڠޠ>qTکb@rNOBwB=X1!&/3(hbo|/YW_j5n>Yܷ 2!CĐ>qkiZKh&F,;8#LGZJD dlg8*)Y|N @NDpzJXo̒PXR4[e$&Dr-ƈfL?UI$ n)8  \yXa]`}›_nTcsN̼ߒx.,:e #Cq7( &5; }5U91{4Dd Ԭw$!l{Y\on;i<"KrtB蔒1r01Aȿ|0 gtD8( gX`aF ``b^߫ o5_T] ⓿zLbu@@FsEI-R ak™3'1 -B0 /$׵*hf<. y.UZ"C-F&ZbyZ`$yDٙ"0/&whš,Fp'fmc+?:]W[miכY$GV%fF;XF.Js}G,0zaUJcd&`\iڍiv~>} ꦑ}߲?f# NC&oUqЏ46Q%PJ369>!Oq(Z`|Ù F'Z*_nNo\evSo{|7ؿjn=\%RWͺNAZ(QA 8lͰ^H'SBCGSgס;n6ĨQ3'1X'VT[ՌXvsq}/ C 躳g- ]0f2)-t$/&]:`5Khjk+ImFmJŤ,V/Yqí0Y+eDi94GFN@ΌwѻG`;Bp^Pja`")Ej8kF=)*S*‹q!zZԵq's>p||Ԥ#>I6Lr({c0yFAӶh]zՊfw[6[6µKc sI"d&94Z#FEv^RY6=Q;)GI]9UfzF傷^awf#0cƥh'RhzF  GO^&pka@9AR!r2}҉$?Cr| tG5h4e Go'_;Wٯuuk׷Ϸ|OV7 CKIa\ sv&o`>f l% N bbGv W3`Eb*QG[c `KO!ـRf"r`  6cjϛcD<20?[,a*"p%NGUײPU}Y镰+*15+X?}-TMӶw Mp{=ŠwըA ג g(z1jڇ.LMSrTF4`cBi$?]Vqswz4sՌ*gV  Q=I_IC@z?90̮y^;uɑ\QOw/~yz fw=-6 |k@YlG@fs&6N 9fT Ñ cð xwZ! |:yZvM%ojZkۚYy#/`+7[ }'J j{,mUmS5r*{1>@;RBdy>Guik$#^e*)6)y98VauSaQ<:tk\"- Ty)۪q]?_wwbCNR ēpbATF$Z …Vk.N)bDՅ<[ @y pNHi@#B? fXguelj΋h✥ &YEqB. Nwh1tT<F< IDAT阽}8$|kF>G901U.V_ml3K~[-YknT]"֛-mPd8VsSUըo0J5 |+b )uMAƉ9g;qdGuPo ڝGV֨(aCt֙;N]/ VM][<|_qʉE\)hƴ|D ljA*N%J \J o, sЗ, YrD&",AbUI1@g}.%ՋI;^5|s{8я*e26`>Ne?g ?홬ֹ:9˨Y3Չ]TA}YfFIc eLI О\W(&I8tb)KqC0K20X(!RUklV7}}L90ѼS-e~PE`g!_o'~a;grwm7=}{װ,,C9`KEwcVMQ 2!Wʿ# vbI?|i5pp6)p`1gUDʁ7hTu&*Si $Eǝ:;;^LKN$3UM ol/m s00zye\ }9+Mg], h4={@)N']'9Ksyq\5ɂ OuXgo EhvEhZش[վpJ000st`FV䄗 |ۯ5n7fo6tmz(Ipc q'MBQo6_L h>e u@<+UͤfD,5?IqX)G<@F N,~!Y UE\ȓrdИ1Evmb792.&ى(_|JUꨜ y>LnR1K9s^?gxNfyt-N'Ĕ:op(HQA9"x侫A{6 jڝP;/#e<;HF/b5ZmO^_lzW: ,ŵVۤev 12!{̈*oW A@6Mm1^^ș 2NH'tz#(zyƉVF&[13:˞Lb4C_u# )Fik1켗B89?=*+MoKl9exg5+fg2@Uf@viW|A\G)Wf@}uw0{^./-4{OtNyo-|ӢZmV.B1Hq WDclE Z[ՆQe16X90Mg^u:gWIHo![m84Fa\`kVn}5v Ɍ2]/SR:A4eo: :krPeL`3LDIy}֧3;c78=f636V/s|"Arh)vt=Z~긘%Xh`'e'|~嫹V=gʋ{9?_xDzvD}z:Hd*3E;ҔEJrԥ0NNh\ 68p; 53)}7zv)҃ >iNt҉ _RpsAcsSc}<)L71]OJwN202SF2r$5czk N&;$Yع"Mƈȡ] wp_7p_@pAn=~Isdl 5FeEƛ|AM QUsUdff]Mȕs=oqAe*AV ~<ĉAA^X9 ;6j{յm;ϧ#7SC29>i^l8oSh7^xLznpTj_,$uq|b 5@#&bz|@Ls'vGM]x_(}?vמѝ੎hc"@X};R坅%LKW@ u3 w^V($3`q-DȘn࿵{4g4V_8oT&:+4:כ :2(. <kyD|WxftΣ?~T P B p)i<3BBX#JMfRj%`O9)"ڐRɊխqd\v%WH/-K^ 9s'3\ﳕxr7ijci=I;idҘ 8LSB[EBvx)#iE"}hR%$v綝R0odLLyqPZ kEkB!d`8Y&}pAVFl42 RX]X]8p#+}J"r#5+RtZi*L\YJx?by"X>~" s)@)K ;NaxG8YvΈrf{%= jcf҄q;Fi]q,{J>Q"BL9EA&&RJ gENrxYǼ=-8Mݩ %^r W3+=Ǡ%@6KbZ<>D7'˯?H].dmr:=aB ELCVp"+}4g)Tl7 FIF0Qe-Cc3 f5*1 ؜4A s"rWlEd68@r֖Cg]ۚ4L ~m u%2'9,A+?s-mƬ |%2Gu~~.ԪoK%!\p*%!HtSҎbSOr =yQ*v*Vޫ.xVlWY0 lt:fU 3 H1{8g;Bw>jc|w_W/ 2rͶfPxϒ"˪wA @N"&؞`8C4r: wA?M*"Q4R&$)CH uΝ&+, k"""z! ܫ_yohkmPI6Md<σ`//mI%8/7jڎN7ԦBBf,`O-IgꉒMnuQ'%,Ģt>!ĔA+txϿ'o.B1Rva-wwSmm tw-aU71%fnVkBշb2U )16u0qb0yxP)zl"n8? jVvu  T,o9em űv'wSӓ&и1*TdUtEN@wOO~/}p nO XmgA0G5YHp#d3g{wG|w:xEDa;%"Z eC=WUPgSf]i ,R(onYq$B+x|CDkLVs*WY7О9 z/ُu#ۉJ&i2Ji8u h;Lשq)Jt\%β1b:@|3 8 Kh0d!IfGv΃s!d cˏxS1{ [IÁ[,Ơ&MظhZ%/)mҋ>r!1%$F;/R;fa摽?3󝈼+Fo5D,aB)̙Ndd9/|1IK{yHgNIwA%1܂ta ϑYE彬g l _̲`!<&',v8tLχ`;sIgXxCYĦ5x]{Uu5C{9)yXg>Mian"9'9خ orۗ  6JÇ9nx H͏8q,f9 =@TN(v4qݩVMͥ"-HI?~9⽈ Ed T YsVs>764M}'$MüHÏ)4{N*W[;UfV;2f'++&B4&W& 啎 @z˅o7J/$jQG}3[+:#=Y؜~}AssѵϞ$'Z0ey~ BLD |޳0]RQE{c,"~|K#)gkϗA 2K6)L+4i @M,8&_HQHʤx!.xslP:#Ew^ *Z,C( @>IDz-laP5;5oSC@ݻ9 g$ *&Vئt΂ڼ n,P x`<1NOiQzWb{u &iOBkS9kRg^LӘTBgd:~9v 6/Z۩ Qgfj6+s~R"˲ f`P hCx?nq2mu}EE]XъCq;*/0&0`\=J<bQ _sx!#~KAXAጬ`@(EkJk! !%qJT%f53k Ey j5v6%Mx!:(Q暂D$lpc`t(n/^٫ܢ(+my1Elį+xB9x;4qN| )#<9q@LF$%_̑ȬNbjtN! P$[<3ށbqgO{M,U8 fϕI3Fi$pގC^01ҋ`2 ECI7(#YE3x3_b@ : SކއAy.D B^ZQHR*@@ ;8z; lǑuwakY)-FSL@|vcL|҈C7 ^Tߦ&` NE &cHPUe0[-a)R8xy2eH\QfC* q΋xLıLS֎rhS^P)43+H%3*pn?jG˿my ut y^@TmДtBfÖfIs=3ȅe )0̠ABDomˆjѤI#CJ"/Zӎ qV-*HuyU:jI9Av`-HJRHDgz ,22cFH-qH1V[H#!h-;!!l a?IpLYsk%Nw9\6DiV=,/PfAU7ȋd9 XdAȻz=P!WHtBUF3G\~i=WxLć|!w1S.EP~=MHkG_P&o'@^e%"kE j*DQh~ ,(#iGkkFa /5 4\O\yLLh -2-h˴F; I2><]Ny^uɰLb4T=`GIDpЋ1,D FOV (BUtQ\0g)%)ΫNln \<)ƘH\X`ςP\7(l C?CsU) RlQV5ʪ}w=ko9vb _d mT^T_o/) K( zxC`P)CxӘ I`8N=D\Q&漏Swc1H2œWDЌг~ xZԪ~G+ArU+ yLM20EKPZQd>4H 0D(VhDJ qMd=Qo>P,P]^ݓ;nE%pH$Lm'a.ef.2(RC#`<^ %X#[`8)Eƪ~A5 IDATAew!t#<"=8@kMv6zמE9N=<MvK*!3.=1pޱƒf'za{1E 6&xB YCd '`<ט+$#~S , +%3 pv.Xja!?ꗉH ԅKK2p~ z̙S3W Uc &wP<&QSj! D K,1qMyr sԒ bģـ8S0$@ ?@NDˬ D؁0 '-Li A S(!L\* (~G =cQ2p[pr7u# \s旸~ݧ( `L۴?6,ϱ]C)>޹xQ$M*[ntGᅣ )jY<O[F{‰hEa{YnU;A^w@k*@01H N ޹ }p`?Z2POzxP:ʺQ3VAM@A*{`}]l2LMcKE @Epv )Ü'46 @FQ,3W'v l "R o?s;/ڳۧc=G"Tvˢb ԉ/Ǭ8R&רV9VW6W65W] a{xIS#NcaV=oG?eOL~\M _L\7[-rS] ʥx9Zvrdq{ k <)20P@ !/L _^꒤Nr[RA%Ƕ(["ovج^+(q`.JAΑe%j /^(K0J):<ܞp:졵eBZJ0Y&BPI}/Bya\M? e|$59'KH<6P&#,NA6^B}`'2lF~ЏG;20)+T&tnoa:}P8qV[((Ls4!BmۉiY1/Z"(NVׯVX_WXm TM) L4IDZ }g-G&!"@O FEMC>B) RG`GA{ :I)MA3" T|٣3Jl A*i2uIUw2уCW9Vyڽ'#8ÏQ4΢:X5C ؟[S!?g؎nfxf!*.tåk$uMoؾQ U h`7sPwM-Ke 6iM-.Hd⻽El)@qzBukρ&8RhK,| @%@M $)+AuI(މ~>Ñ1 = Ʀ囷w> 3h}N ate t:ot؃EЬ`f謀!m+yTAN\ iBF넓lL;І;G;A':_aU›7ߢs(?wp[]X_oDmۏ8]7] /0Ⴝ8 k]냤S [1["ӟ%3c"")/<:v/ l` Tef e\RmB@2bSX kc9,e\D_oJ9a1q*Re򎡙~_3ϓv~;0zw5nnC|/[kԫ5Fwn`DW7p"̌GlvXov "TuP+U(@U NP#N.ObEk߉]%n[){\USlT.N$4i ծ8LFFY͋-T MeE3Hċ~1<Iݔ \a g A=(PW9*Ai@MߝߞcˁY nQЮQV&D-><+QB gj45wo[_jVѨ,GU%ҵpbpàC{<ܞ0a`V7+45f4|6.0z]?: <^k>B0H^Y=#WPNq,9޻8|p8Uhvxͯ o9^vp:<,kE$cQɱW^`AcaZ+Eʪfw Yܞ8 )HF&/k߈`)&~;į_Ŋ/{tɛ@& ն:(Oֻ ͦD.uSB1]]jgG Иd1L0?I OUj43 /.kwAJ:v‡}2h`\Gr'_&5hԫKz-^ky>N,jJ]b'C(A^(:yB]7d;0x:qj[ ^I*|)*z=P/ Alh4e#A;L4 sm=aKYuy7O9{ܼ|fBl*|x۫+6kMznuRy,C^+qOwQRJ']Rimn1(}j%0) I;\jr%W5VWMQYZ/鐥8dv$ {qhE4M5,1$8oR\{&j 4 VUՠ(K(Eޘ7ݹ͔iA EbXq紧|iE!f/z`56ܼ|`dYttPZnܞP C<ňkQTU0;3DQըfхFga,t8E%gf.4v^Cևtm7;" )kC?pPA0FvA8 62Q(a!=1M.H.5 W7^ݠY4du4ku "x1#=m[ (%sĜkaQ8a*pJ $;ԶoO!.j6E2p~3&*lpow7lZmPVMH +JCdi/5OdBU7F f,e9Uq`0tjۖ-j?Ư\:69x,HufSٖ7%&GV,(0<8@>;uo/oP|."pcTG%9uH]pO{&ȨZcjCY`fw{ahXI*B_YoatDYJvGuZNlqv8 SD&P7`c "';wGe5X+TVGњT$8 ޣ;8=\[\m_ [u( >1V&Dd a)EljKVV5I5}ߡ;8gAq(F L8]?,~n+bA, bD\ߔh6%U93)v(!лXިE:UsU-M\mAGԖnnD Ñy[g]{w?0|h W/^˷^]Ø o?T3wpƃ BMyR| E;/(DPX!˲8~d(\ɐzfAuP`GGT=zU'ʠ YlwFw|=av8CC?_dT'{f8;*+ Z_JGPxGn .6/psۛk4 SnaH Z3r©އRȲ|UTws3B.@_{F n~*rk> cWix}egӷH\`eݠnHi ÈZC+T ){bz8;;"|-B!h/cV7j8yO >iTg)"-2:\LnL e0lP5fffdOZRSy}AVj2Oq^tS;);v\:-y^(JE;y+@V"GKxqmT9꼋8|+JF)mV i0:lJős<ⳟd2Z>YL.m x,|p>-,#0$g 2dY]ċסͷc-UsR&-RV5yQZKuBU7( Yvx>9o#?@Pɏ݀uA3:J΂ 1u)DS$un5HZO*8XO:+e:xCe%tFmQ۶C]k}{q7W~Z1O#(,3TrPnh \ `: 3x2eea[XV(&'p#⮡!&*/ÔkVA0YH%{_r/,\c]gvj̫Xf2+Z48^)ce-)40@e0)\ѳ-%{)._P"g\yrevt?)]م JA']/^[;z-n^FߵXow58a'z1&$ԗU4jΧS@pOgՏأ#TЅv@:siN"‹';D0 h,g =a rPVB5t?2 N vq-ư;޹٧O3P _E\2K1ƏYE VCFT!S9%2( Pne:XMPstS S?R,T5pP_3U;xHm DU5(놜DJ1QiDo1瑮b=_9oz),;gn \ h,*d<:dI,'i'&f`_ӗ5~'F{/81O݇F%&R$)UPmlv/wx{;ܼzx̠Yo`W= 0Y1x-̜zzs#En=.sŝ҇>p}=P]5Py /cӒ63ct Lh,+ oJ0#k*38ft;`=fgGw3bABk?"(pQzoގ<bF5 J7.leeN{+GP̲>$L"̖V5n^ū7EfG4hVk4Zхo; }9e`,GU7X9vm߃}|>#;v=&OYIDATVqc^gHWvDZmQO(,h(arvGΣC/{яew8ߢ;0g={"iOn!ҁk"=fM*nދ}Y@MrG!s%@ (hi0`C*Tp$Fm'[S>5Tca%Lzp36PYSTȊLVM$+߃㛋URTz4HuНGE H]8=l5.O9o?0w󭠿S' m3dM/,;Ël^YV(vXov &ޣ8G3CrZUBUhlVT{Dc'+aG=L!ͬHaqbBF9c{N~E7iP (qqGopE t׉u^sRTGao=S={QU_8L?+Mz/FV"goZn RtZQSE;xX@Im[kz֦%/eyNuCT T) `LM P!F Gَ}yzF^UKh( NT<\KQ0{7;f0JhD#apvp6'L TeYaa{u35q<< /K"4q:Q!e@:46q>qqi|;x(4Q5ƾYQ;qCwD:;{@Rx= _ p" Q)j#wX@ǡ;NcXT k@ R1́]#G[~@|YA& [-SG Zix PYAdr H,'%!n/qv=1Q8w#Qp|QL2Uޓ$ęʤ?1qc>jwo^!Kp?)0,s4>j y5/Ca+ }7sQWTAeF4ﰪM6FpE 0lqg]]wRgyi9HQ {,&ۏ?ƒQ~DQ` Pڀ;|>v==; Ȏ]; Y8w3 +~ ,CTICVtcb\ 1A{LCbդe8 *DB/!)cc`]?LЏgv,3ASGGzpǎ:;v޲ C4`-ByR<c\2.*L=K ƞ'飠(n+Wg/ʪ}O8nѶ,FC& / ;n^p aAD8CsdPQb%$Z)#&,}TOye#x-i'$2Dy }yB^6Ȋ :ˡbyCxvtvx?p/"{uhI̾0E_%_>Lfp-DPQr7WO{W#ɑ#ΐ;KX@Ѓ>@$ã:]ٕӜY.p(7Y@WWegZyȜ@4iE1## i"|B >Dp}x M&N s9[bG!:s)^pP4?=gahWR^ErzlVBd,!H;v[nG9T51DH6("􋡛OR?Rw .9,I7tXT lVqu^~7_}W_`XDCp?G4=0(I=G6[Գ9fXw}з }{@Q#ҥ&KgO&u̵pAQ7~,' %7&mIQ!*rEYCNΈފ21c(ގ< =8I#]s?pzxLɶKoi i< *]C &]gAc1 giiaEhgtmZmLG[]z}=-clEx'jEe . i`i"G{ ܼ֨z?W_7~**E|˫Q{<?z{?}]| Re4CM@۶hm?@"$%8>wFpRzc(q-"@3"*QC&ȕe@[aE]F' ,˔:*DtLqDP c!`pJ,Uj'#19wTzNE5|d,#zDx8O8whɠHQ{cp =[f=v?{@w8k9x!pAaLL5|oI9mv5 cazOÍRD,<+jlUkX.bH3oP*Y4v.뻏J1/pqqw^^c\g(* Aj Ceɧ;h]#';T "Ȓ!1]ߣ:7y,,$%"SSbf ੖.kHJM)t_hM\Q_C WH"L7" Iؖ }{qwNU( "vZخ:[g@x;( L-5110p@f>p=Ǯi6g8" E 61`Eu&GYk#09.^ϱbUIrV%YHn}2Imq$6,&=E RXخ.qq}6XNJҮa9ce_ h쀫Wz1!{\.`}U`= EU#ȌX^СBYs":5pڿytr:떜WvעdPvp+q}!0s8_YRTtQQ U "ςIXa! Aյ9<#DDtc :CĒ\ꇜ_[EL p& W̲G,ଇP**+cّ!Q3G~6rs UQCo0:OU<1Y=)t 8Xo/ WP"@{<-\ՐbSh(6xøoM`YDE&E|ZǞe={ z%mh T& B0p+ ."|5&*]PJk1cO4GP}Xzȣ<2lQh ?dge?0Ezhs@$%3cіT Oi8%#aI1MH0GkI(%W[" 0"#kO$\]QjN.7Xo.^!p C"K̶oV%'̔(nQsg04Cװ31xd+/s ࿏!8C4=N}L[WZ*E$0af!prElj%C`=f 6 ?ƕ#?w&ZwC.yc\Η=fEMa"h_Pi2EV~8t~ Q6X-nl(- Ic7 "T+/qqL 0 xxPe 籐gгr]E* Aپ?84ԬwJ8Vbk0 @l!2nFS0Y#O;->T/&d0|LV~mChח@9רf \)3J?5]SҰJg]rgx%TF5`r{j 6zƸaUC(@8e麚c7iзG0 q %5 ޣ?>e֌G {p3w{|Hs6=3gdHKQD a)@ cl^ɴqaˋǿŗƉ[ >ӑЎH)(UUQ*TszQ/ jQ-B9Wb5g@3(9Y 3ռ@Q.P(+X) ҩy"zQJ!_a}27kW֢zu6tma]PTs袄7=LwL|'"'mw-q ǿvC$ S RRNkd>҇ ϳE`EG 2~%eAU!PRST-ʹr*jb&T =b]Da U:rv`P-&%`%":@k HX`IP2/:qxj 4#ЁĈA8l{#E{ Yκ8߀9\'=z8_yDe?v ! oy9w `M*eRw,U5EE.%JUԕ%J PaG ZQfƣ(ˬ垚JlGJ)GG #|61pX+8e;tءE64CFC꩑J#=*]Dq ,l~3=15q󑗫^nœ h?j>Դy*VeEΨ.h4i0'%3 RR - CA[G`$1"(Ȇ J 까BHpG4hm7d-3!p"-owpCpp){LHHD2J Lg#=K(ќuOk0ˑww3cjU|A.`%†6ϠOXxN ."rк"+0X2uy~ -܅\_]˜9oh@1DaދHNrygHswm"Lvq_U>{9hw MVrEm>n:>dAttA9kZU(R1S6T3$ E$SGg0G CmĚwgQ8UB0G1xr)tYg?g9>678ɣNSЮ'kjT"21΃ 53WbhEY ]V.B)R 97W<8m0]hF8#/!835Kp4~JJ8{qiޏ`LU(leF Wѻ3bhvf(gZZR=뉏R0s>mpo;oÞh6==$<9qsM|*_J~̑u_soD͗ mhM)Zk*JiA s{ 6b]~/O}q3w*˺¼Ċce"{DM`GFHB=RkN>g;$ȘN3S)")8g| D6h]8_L~LFc}!d3T"dRsm]IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/figures/view-menu.png0000644000000000000000000001625714023111777021071 0ustar00rootrootPNG  IHDRD\PLTEޡ֑ؖ׎ڋڇڂہvk_SNMNNOPQRTWY`gμʷųŮƧƜÖ}vlXE>{5v1p-n-k*i/k:nJpTs`teswgrqfrpeqpeqoeqoesl^sj]pj`gki`hlO`tIVe@L[4@N)3?%,4# TXbKGDkj pHYs+HIDATx^Ms7 p+K|lvj7֔vkkֶu=Mv˚%YQ/j$IdIi6v('d"D6I^h6 P֡ Qׅ(H,B$&@$& Bn9L㣾4Ϳޥ!Jf!Hĸ0oB+1@Ďv$jsm~cVSҖ=0Mj[kHL'l8%Oh3D,i(n+AOup:x[|$QۖxG"QnQr2B }bB/eH'N/"z)[E,Q@bx9T EP("BwruEHDbYDbz̕dIJ?vK.gIJ8}LūyH, x靉.8[-~At{k.w46AlPkLwѓ-{FNWqW 5(kJ8qDESTh@%koYbvǿ|@0/>=+HhY]%;{_׮FF[|4f(<2:l2+ ژZf[;&Qhl+W._vHֶb&Ş/8d,ަ)KC 4u獀t:Z%*hGewvb.JOYB Y% qⷭ3 9M prg_Fvr9C$1n=}bc~m)6ޕB}%ȶ$*&ey s%>eg GPp%*ub[X"v}x'^;;qc"42)+FJ,    %6,݋ &qiv$>r+s '=mM"}FiXb*$h@ie0m-_$R6ЗH ȉ&Ȯ>{1k],[_"$i%*FD*0ĒD*Q{[z*[J̻`^S^禓 YJSn,HA$&R.NHLHLHLHLHLHLHLHLHLHL@DM]c&R*sx $n!vuQNbQ(1_#NV8+64!Rb(-1`O]& tlɳa6aUEVzmݒy-V5tmZU(bu\QFSH12sD$Z @H|,{HsD$+C oԝcBBIE:4ȣVb_ȫsWP:|c d zcυ=ASFbNLccbe%(/QOYBDbDbDbDbDbDbDb%)=t=eI' *+%$M~{49(EM5JdnNQGrBuH"N$i/3iȃ1t2 D|3x/6 \W tӭUȟP'J*HL@% "1"1"1"1"1"1"1͜T̲BP^;[GJH4r;{J"==wlP<` $(Qx`J bKC9bQhJmy^ IT<i b }琝&L0Mjb$ 칳1uT%j[<1T+Y ô|K sY1ЉDo6CDmu<uhsL r4nm ;}[P& fk B+A"y8{h_4K^h){@ Dx {/A}f"1"1"1"1"1(: #1 "1"1"1"1Vbs`~H,HLHL@Xdk#xt{$>ٳ _EEc0~t2%KL+F`:KәåZ{DXe_i?(zxSվsDx4>c0ȗ#zxٳ8_ϳ^9H]Bav!DŔD#zfهm;LZ2J A>~ȑ*I?{GC|b) xG K$I<2:::Y",2+FAV  @%~ڐ=YO$fm<_w%jvw~b$jzZ8j%qd":Uw>BfJib(͍L85<.ۧ5*v~#7@"E?\3 I}?ys;]GPxn /k?l2arSc&Z mi UJ>m[hTD ynv ,T7ޝL:[6B'e}ݑ8Ono?lh7bYȯ(h/|[o+bNdů9/.y%nm^ZFpp$nf>ZHȤlDbDbDbDbDbDbę[ >Lbѻ<$}3 Δ؄菸T̝'FO?e$ƞiz/xǮzbzvEp|@~|D}% v?zWHG`dP ;/_|nlQ`1C%^xuõ/w&G%'T*#E%6`ק?QD"_HBy, 8q~ŏ;P\j,E%^/g&'j%7}ʁ+OkQ(" X,*)}b[⿾ZNQI@GώM\{:((( 2&wO ^@%]}~SP@!fIՀJfJ~}e_GffgoU4&6q_Oi^s[G,MfQ&TJ6[z9ǷḪ歭ٍҗKrca41W JbG$Kq[9tTQI@W~OL%@$&@$&@$&@$&@$&%PI       p$50o?l6gn *q~3c^iTbԑ4F8JX1.ĝ}Z3Hk6T(DـR|S!4"wwCD2$l N7vww!`|4DC&~*m{Oba=Ji} [kZXWD7ĦM~^U ؋H̆_MʹSS63cOHDS+EjDPC9¶C :7lo(]>5 `cQdZ%fKbn|`gzipB%v[qdfQ.gj\&yOfr5QL&@$&@$&@$&@$&@$&@$&XOn6ߏOd~3ǻDذ@$NpTD6kC q> EYQB"Binyjc%jŦ?Ɏ?ҾxMDAy*!צD\fvtmllb)= .3h4'-HFL(hv酉 O4?.]P"v"3TZ6K//+QæĸK"p#;ɑ?}siv.ge^>VXN4t,~ 3MVǹG+87#+/tȑ#F g_|E^]cGtm5may^DynspQo!MjD%m}iVk6ZWlZɓQnn< :yp:E4vm/}+eozÅ/޽s_ pS_975Z|=kjv:XKqxݪZ,qY\qGK{_Ǐ+NGM&խ%~d"`;=7i-OW_U-o'goWD3 g6n'y}:_Zh2>'/R{:FyZxo7G3A,R;_ص&9W $%W1ck ")MUdR>_˛_?-M}7C 3c#g>vV? xOn+WŏxSמ$.>NX~Q o O ?5\}8:EvV=렺KV{ 2!Xeu`2 Rj6z(uX.' >B-y602-R5+r}w<(/wWd ?i?|Bux< 61Ck;>O+V . m!b-ݲ# V?u j7 :uNJ8\,bf İ@AMH7kvmh'ɝ,</giSNx!G^Ϸpw;xڞ߇ƙ6:0}eeħO6@B;-bI0e0Y[IGq/D31!5R fJ.ҷ9ssjݎx$tTk~zWƕh 5HtMcYt5mU|cwye-;-$hv#o%w! c2s\Y6z}%r+edRo1FZ0qW~彽9tzi^okjMx4̋O'f^/87Uxoy)i/V6Ѥ21\ T'k5$t-i]6I=LFk>jx5Fv?fKp ׀WRQMu9KI-XN} ojLC{8*i>k?~oG /5WWᇀd;gƪśyNvWl"=s >vSᇁ>vWY=FHyw9d=gƩs?0*@rGO?.*vWWS 9#9WW=gƫ_ ouo [OoZ$N2 A"HG\oYg#+p;_UXXF*it5۩~/\EW¤X`eUo|g\K O"[ҰOxVxC:j7~TIY {`?f d}W$)eV`0'zR2}?/32利8ʒoM+M> yWTGlyyWO:hPhZ Fkkv&Evlu$4=k>Go<#B6Ёb}PKi@%~Iac <2q;ŘjYu%<;WWz+l/ ]M,gmꎃ~gjOo% :Dr$r(#7IO 9{:i~MOWZ0૭ Z34Xmqzws6TzV 'pF?]sZ쓮jo`骊09f.Z&h՟a**65]x_/qh:e^Y,eWݻq͂Hӊr༆PhY{ˋry3I)"e#^c}h|/-i?u|/-kso[Gwri+E{nXf-r XH rඝ hV`+ZiI1kmy~'I}십0+ /MvZEL~#mzUi${}p;z>!TNUmqeD^sle%vo|g&7Fuz7?UG xÜB$}˱^Sro}%YkJIQM&;u-dG2; )"j=LET" t">/bW>_W1 As#^JrĽAJ,ݭ͝wVW̆IcmJ0ʳ)$a{[O Z .5湷x^Wa>_vI{x!'x7  'ְe*U2>Űx;y.`k HgGds,`;1;5_ 1sxfV{-v:="4LHCC B ]|>+k 'Uk '*Sqj57ΫiOxO$2x!2brWO>8|DT@H^}n?m+Ja)k{NxC8rJ]&F6O(_ L~g"vEVv$0$h?Uv"M _c?n:xw7?\쯸G-OkUH~ Mfu5xw7?G#^1CsԭE?ɧhF,ֺ5+y=7첐{go_AAk?n:ְ"QIDFrp bp%M[TyY QՓ~ߡV,=+2?Y1k:᯴Lr(>(*ŝ'[Y#3"#,}GZM_@^:q7녷Ay3̱" d&w.p7L:֥XG=i_:Gm$ 3*;)E,-?R!eX|WJi,<~vΖCa İcTdφM=]f-\|/ۊYm s g?iZR}ة(u{{L|1E:֗ZZ;VJ%v$K"ل)>x7K"j{{eqgk-{|ch9[#8pgh`kaҼa=1lwg{t@uk>M)Ro.d[ȶBr9ڲ*$7?)Ƽ_<2"Ѵ9aFbu i^|,k6raf "׼Ugw7!Ϭ铛}EuƆ%Qf/%Y,cf$MӶ̾}[:|/fѵy䴎AsyY-|<"ʊX([i88 CK|&w=G jcP6?2,e0|ekil/=ڈ٬\k` !6TH\`Z~:)?\|6/xM_B l2D(r7#]Bḅ+e;K7}${iK@]bVъ 3O(\_g^>٣, Z{,3Mp!#. pYAs%sG\5>%l5X^<][y g- szaOR-曨x"s}mctTsm-9V~af6++ѻ=7/s~deY4:u r3•l08-im5VO ^g8RLƬK7?j bk+3xG‹y[DsF2p9cM[ 4{gPV&žM_N m c41u]H`T}l*zG_֝M|52ěn-bݧ%NY,HĪ`TY,[4}u/ qba&O-DdM`K;y'l?mm?Wcy6`[c8G7$ۖwxUFhtI(")GԬ7({? 5?F!do M([TdO\Zum F#k&u{e宩ovl1&aB79Qde٨x/ ]Nu m$p'WxJFI6{W[_{{;y[J;h_Fodž.P/N}>4jIk,<-Km]=)mke6]j c| G+2N;<'ß|S=CU񥾹xSH(toiZcO/IUmK*"rNr~ix^i6˧lĩjH7~ %߼8n˖~klɕOv}4MZ5_گڮ~DԡӮ%W7wvKl&feTR/ZxZKՙ'x4m!|qKv"iXY޹?fV!AgOwK./>;9`'hEe[6YFa?C+Wl|qψƏ>2o]Z-&uۘ=j%%BՇKO/č*MKCk ,w`)P}( rƸG!ljW\Ei|O;$ ݁i|M}I֬^ Ӵ[ 3OF˶GTE;g[e_JN{-ڛFDV^-aαw:-6]_kIJЖqҦ/~-[RA9"sK;.Q0^Nhگ4?štBe8cIg4 QeCtZOzwg4˳ay q 58lK7kiKó͸%x_K~A+roo_]nx;mg7aֵ f+K ӴI(p`$~GW/~ ujTYmmOkEKhWm`s^˺dž?c>8)/kMn[{h<ݒEظeiSNosf RWm^դk VEY1a2vѯ*tr9H'ew[i^.m~=c]lN}Kk-,vT Fg2.6u4O:$ 晥D<}Ɩ"g{wQw2s#|(oxON gzG5}3wk6tE> y49LoZɵ}b+{VX(&w8Ԁ8\`ap-y_{?~믒*_x/< M;\.gtkЛ%yS(t |L>j*[Yͨ6.8kIdR̃O.j)>0n\xsXSiz?iYlc5ԣy7ˮ F?g-_HmK?t Dм=cxt1*y8"80gV\짧5_wwn-+}']-]e{iנ[[طu?Xlw.dh |˞k+xBt Muss=Gyum{B%2$m b S%DzkOTּ;MkD$^*8do&Ḭd\z7뚃]XM<3:k6-ۺz*QV/>.Љ%DW?Ss.kŵNN$wt_B4#&%1 =W4c#s7+w>V|CRh/?>.Љ%DW?FSY)#F{W0:eP瑊St)isjWR[>eq;<aTrXQS2:-|ɯ7y!YHGދDW?l"x+\ǀ5êjVvwEcq,uI,M>ۇ;>hn%!?,NUݛsO8mZ_q쯯Nۿ>.Љ%DW?RBԧN8Xlo$`[ʂA8S៉.Љ%DW?ڮs47zV{zڹsb95cI`KWr{]McF6稥~j?8V?>.Љ%DW?X.c:]4[[^^ަ_>lݴNe wO(B'yȕſxdJM%տkw1ci9uYQwMˊsHۚ=# "Q wO+hSrOٙ_qDW?l"x+^sEnUlol"x+G6G<D97*YAf}z76G<D# "WG, [3>=# "Q wO+hMʿ_u wO(B'yȕ4Q_/?ϺFB'yȔd|]_?J(Srfg}ǣd|]_?J?>.Љ%yW3ѿ>.Љ%DW??ܫeٙ_qDW?l"x+^sEnUlol"x+G6G<D97*YAf}z76G<D# "WG, [3>=# "Q wO+hMʿ_u wO(B'yȕ4Q_/?ϺFB'yȔd|]_?J(Srfg}_/uXx@Ƈi#^qwq,D ƪW%O ŗ߱`945~?i-d|T/ثR?R1_f:Y~o<5.6OgdX8+ls*Yɏh;/ؿwVig(¹ M+>vnxH|ˋC0cie;T1dX\҅jh0Ub)Qlŋ⥔Y;[idϴ{aÓᙽIHW'~]mlĨ` wZ~.~xa<+j|eݻlhvۭ})M²31[bcnPIp C@ffiПu}gT˳r輿޷[oX).MBQ= 1EI޸ן^6 _-;Qt^9l[b 'GI`r"]-a7gjonۏ"^aԱ ׺ivvBuAg̺nW|wiC `E%i f3|pDx@^\i˧Y۶l8L2cHKfoi0~WɿvϵmۺU÷v}vݷAw3|LOᆻݞM}nҮ7d}e]ӽWѭ,#d˥^+lwō7KY,+t{FHVr˂# 7qr 子յ;]B<ۏ.DZ1 cp>n7o~k+ڏ;gڶ*ۻn>onۏ &[}]^n&y>շnWq}vyw"Qc^:kW߮e,&t^=[Kix&c^fF5DY0%Bā*yG|iV -mŮ㷱a>3f]j G>BQL2M2S݅mcw3|LOᆻݞM}nҮ7 ٛe| 5ߕoG[vqݷmݷmǐdV)ZzxS!IyZJK~|)_xJJx5iXtghZ"E6Dalf|>fm/ wyonۏ#saP-|CSַ5 +foi0~WɿvϵmۺU÷v}vݷAw3|LOᆻݞM}nҮ7:,"safaEz}2>_vy7wJxvۏ۶.foi0~WɿvϵmۺU÷v}vݷAe_<Šٛe| 5ߕoG[vqݷmݷmǐ]-a7gjonۏ &[}]^n&y>շnWq}vyŕDC 3 +foi0~WɿvϵmۺU÷v}vݷAw3|LOᆻݞM}nҮ7*g>W-a7gjշnWq}vy2>_vy7wJxvۏ۶?,"YgQ^w3|LOᆻݞM}nҮ7 ٛe| 5ߕoG[vqݷmݷmǐYWD??0>fm/ wyonۏ XafaEz}2>_vy7wJxvۏ۶.foi0~WɿvϵmۺU÷v}vݷAe_<Šٛe| 5ߕoG[vqݷmݷmǐ]-a7gjonۏ &[}]^n&y>շnWq}vyŕDC 3 +foi0~WɿvϵmۺU÷v}vݷAw3|LOᆻݞM}nҮ7*g>W-a7gjշnWq}vy2>_vy7wJxvۏ۶?,"Yg?i-3?JIctgo,Y!57qqV,2r0pDa-IIX KTB\nk+?L?eZ6re{I?!8Ư/eE}7\DF؀ZOƯ/UbcVgSlt h]7|C]F|6/-giD5Mڬӂ1kK//xx^Wm.a,y\]vd;I#'>r3@$,m!>!]GE$KSp9P\NOVK{[Vڳ27W>`(`2k|7_~;zZ*Y7ɷ3}}/^fG%w|7 xcIk:\0Ehmkq# ӓW7 jK:N ʨDQ022"3Esg]#㟎/w];M<9i:.na6Műv:%āN<w6He4Wh{|E'IgPƭzl.ɼQH=K3F#}B29/J*OM-uNv5z|qquS@8SZk[9IG,IJAz1 ƍPCyk-cKin^Aclk#$cqR|Q>"Ѵ뛛 X3[~",kqkgY%+!fGu~dyuu;MIԼ1e%u\^C}{ud"$qH(&N[?r=%:_5˯Kӵh? '5xW xQ#[b)DlBϰd~-^|8{m2 W/QDˬqXmIcl C+4o,n|D/m.4RϊE|V  >PZu|Eej~Դ_#m椯$e#,wh*c/%读6t]-l:_o\-/?q]}M`kcK7I9*/x^ӗ7b82HrcR{ޗ3Lޑx ej-N{c?e,qʮ}+ ^n|/+]R&{ۍ6Kk3S&tv*) F\־_v?N;bqm;KWK_gO+gk^.)é[f^t|8{bU5 w]XpAd|n^7o 6}F^3]6W6ݥRT K尟j}7`2X=1[4jgS,i&W*TJے{_4\_&X)((((((((((((((((? kom:gUV?ƿIs7wT?.8 wZ6yyp?/,u־uim-CU_̸R"?K*1%Ooc_cw?;/_/_Ck*G7#-|eݻmgg&ݷv~qv>ߏ})k⋫e1\Bfb ^ Ġsg>|-t߈ ux;T,pM4B;Wj[N q/E?qy^ɴE\<9rvْ$d%}'{G%ˤ[_ѻw-^>_şcҮ?Wl߆۝3]onۏ#'W2x_ׇ-C6WxcPmFy0m|JMWgMG_TZj0ufV--o}2 ji +ϧ;gڶvxvۏ۶.e}'.7g>onۏ"OڞYBޏayA[=l5y$H ^____________________R2#J⯗xx/v;LK_Z|#b=VEqk_Z__B5Xˋ9--/IJ,/ȭ[>$篴}6+[nOw_]\,+(J3&0Z&n% 94nXmk~_VV},;mw[.o|CmM/[櫦I42jT*"2 }͠^U_#z hV-]ni~Krܶͱ\n+v[ne}'.7g>onۏ m/ ݞLp}nkgnmn<coQ{J>_UYԵ^чń mkoZh.շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_շn÷v}vݷAw-^>_6W}f+}Z LT܀cd1硬?x_վ,Z:Yvzyw% Zؤ:}[-f/|4Oj#¶Ij5+ ]LBJ/W+hwo/_[u$vkӮ _ k5;ZW*7;6ɟ<%y;$ <\ok_jN5Y'ώ_(%ЇѫeQv\w?VwQx:<[Iw1< >m5{y|~EF5!ڿJKy|]gWV^5C$z[t`؈;8Wğ_Ÿ 7^4[=^g#@ xxÃ^{_#z hV-]ni~Krܶͱ\n+v[UYԵ^ч ?ڴ"S $Jl{Uo ~_ ]mcqx@Ӵm'TI5{HTF/ /$L+Ƈ#oUno -:eoksgt\CJĨnX`d=]42J\/5KO_3VWrIqmoڼR LQ TR˓2KM2of>.C}=5/x{O}EmnX"7B}ǹ'6vpj|^ίxg[N`ӯbHm%e$6a"` /Em%x~Q[o[[2rxˈ %rk֗>gkqxZF隫HX 9h}/]&mSV[O}?⯂o X@ ѭ8$7d!Xjdž"Sz6Eq5adF&68rk4U_ҬT6_\[mx芭`p1Ult;SNmuCΡ՚DfƝ2yVN#0Xde_D5erzw{9VuONf%sۏ.qpjq5խg߸,m)F54lcԭ$k{eL@ 9d|"QOmO\Ե-F?t/$%-"4MI6l+jHMC_=[J1{}I$߽* Jdm$)l*n+k_{&j(Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@5_g-|`c+WYpK_"|X`cPԛ%zw~oY?)WՒ}}wYkZqg%E8TcKyG1$B C ۟5ؿU|F9r~^jTso3 |tqwvmhvۭ~?mᯊ.Xs -zp7K͜b75~ 75lWmRvHY4 ]m8+ ƴgrqDž{&pUfJ2qȕ}$.oWFߌ{o~ߕgӇ[v\o<;wmmmq~2~WɟNvϵmۺqݷmݷmǑ{ž;߀-n|K /]ζjڬ%bC#pp$\Whk/'|ae ֟j1+_Ddf zIk{y/\e}'.7g>onۏ m/ ݞLp}nkgnmnշn÷v}vݷC).g|_Sg%[%V~1%55l;n>m{uWʗryo0S2Z|xvy3w]7 ji +ϧ;gڶvxvۏ۶ȥ?OS|A^l_Z[THKQ%H89>&x>izxRV:;j0˨pEG;oCN?kM7~2~WɟNvϵmۺqݷmݷmǐ]WOO]^n&}8y>շn÷v}vݷG|Q>kp?eх5y4.|nArEc:OĿ#<=Donۏ m/ ݞLp}nkgnmn<|?Vt?,H$7a(c܎Vs i?xwzMͭZhonۏ# )?'M7Z4 cKeo8(bу(zvjϸRZ|xvy3w]7 ji +ϧ;gڶvxvۏ۶)w-^>_______________(͗yll/,7FD.Y~UDy|D3iC}K/沱XL0\%ai2TN^:-|Ym^ZkmiwokB%D6w4$#lm˛+7{?nǏڄO›k{I.|5JJɥ[*]0[j]-_.2h ZN'_xOZl=_~#Vy\Kqµ?;/_/_Ckԏ0}NWZ毴},|GQErRQEQEQEQEQEQE^# iAlkk~,|;񇊼w}cšf{XζcG$Y2! Er$cze?DlRg'OU'u^_(h_f㎟xcƺMW:j!:gJ`6Sφ_2ѓqEJH(Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@5_g-|W[D (j^  SUV?_s!DW.W~g+e#_B'Ɵrd}NWZgOGUguL_S|#b=Vp)bTgE'څQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@5_g-|{WLR2#J UV?jG&Ci^[_<\~<쯀? C%|j_BU0}NWZᬭy m,OQEsVQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEP՟/WOS?+WYpK_C쁪)C-+W~sY?9Ua ڿ Hk/;S>7_۟ma/!<{ NXO* ,$`(1! }?"wx~}+ǿw =z('x saT?Q?Я'x {Н'€=PhGڠB{{Н']Bw A=j{G} ]Bw ?w =z(~}+ǿw =z('x aT?Q?Я'x {Н'€=PhGڠB{{Н']Bw A=j{G} ]Bw ?w =z(~}+ǿw =z*ƕ5=sKҟ,'n>-%L9!NYT?Q?ЬO=96%Np7>}+ A=j{G} adhadh{PhGڠB~?>?T?Q?ЬO&O&7}+?|?|ڠBA=q>2|GhLnbyiEd!$2N@adh{PhGڠB~?>?T?Q?ЬO&O&7}+ A=j{G} adhadhGR%u|!ӟZ⍀9$?⌃IWzόm4cCgkfy!Q<9f!C[%?}_C-y:9$ye=;-|eguw}NM3&v0 [zOıo}uǨA}цd`M.|UĽ'߉!5=byeu)yDq%LEek^s_յO[k?;;2-'PY{؈.ޏw#,_+'tӽywIkwS/xIN5MjV&O2AA?4"|eO'O[zwxwEmzKceeg2v\F+Y<\LDX_0r< 'Em>} mZ~cOhMk^"%}Nx_o%M)Q Vq6a Pn2!\_O\мhbi[kM/ye˷ I,(r{o߆7ѫ=u5)Evɜ~W~w ko,#K<O\~-kU֧iͨŨi&"K$`) 6•% |{a? ~Oi]@6MleiEfIQ1cP!x\/-cF_.,orjh3?V<y}?ǿWFI=|Q=;dҴ/n63pǹݶ,pI iWBiz}Zm$HI2Iqh֔TF2ٴ7_OEf5 P{c&hiT4h9ƮR5u߈|xL~laBxa`hʘ7U  _t-q$@u{;].Yf4P3ylL@_i!Y*]FGm,I[xbGԮڽ,PDfʒ](8!|H 6PK}jDn&kh#e0 |twV9 /x7OuhpieK) $}Wxt?>a1Eqp'|-O^ω/@v$:[1 'H921+~*[_:cN.|ϕm4ZDž,Jצ5}b]9A`p]BP[r;zU4ķhmM%Lr QWZē|A[6| LiIf~#l٤(-?_I9ܩUr|.~ 'ZMk%iy"]SM%h? tz[]BXZCiZcy$6!")ɬU>]SM? s.Zյ+Ku{3Cca+D\8,3Szok;? |Rߌ+PO"+ 20H1eA*PzMT7^6_w-,264{@%h;%!EmxBkHݓqz¨[Dd2B۴%6kik涰o%6E|@4\rMs6mԶ3:Eq3-/?m^k i71swM7ov䔣o$ ϯ%, ԭtom.k{GViQ PR=E\ 7m)aOԬƗ6֐ܴn.#o-#mniTFHNb;xz:]]tǍNJ yԋGb8aϗ΢>_+w}Ok>-xc/ōVZH&hes>Bǁҗy_Ey6qxcH&mVP;{F*\=bvRҼ L&[7geiTy]NB  ~?KSv-v{iqo*o#$.AN99+$$.\O$W[Uƕ_<%4Fy$`9D?* +gN5Foh3O't,Og4d?j1ۃb84 NF,vŤDjIr'|^1%@ Ri16M}3aI! p?n9'y%-= ?,CH/&aؙz+? ?P)+- O?+~gGQh_!COhVOcO}-+ ƙ.=#!Pk0V?3H]/\Ӽՙ'۟"+rCD RQYBo B 8hЋ?6ڤW2BH(\= pn~ڔ{LӚWUWF9x2#Jߙm&i6eE1W4EQX'@8#-ɪxtd:9nz+eS:)?~#]jl8 KWZ_j/$uEO|='^'oۏ$W~''k7UO-_?d~~IDR,~=KR [/dJڠvӤ|X{a"i0zbۏmg]2FRWOYAaW7 __8ȳ -j?bOZ,JKZxR֣şp[ ͎#]|-&F2 gʗ`7|`'!K_!,__x!C֦x"_?܃Udo᯿?v'KQSD=-.*]" /~%N+rΥ0 Og6&#J×ؾ"P?oƟ K}OCã!cSzLbB&8է_~~4OGH?VTBX0?>_ 3=11xu  ,__~ -^ n1.eC#)/w`7: :#~1xt3=~Arx"Ƒl`?J%|mDN'Lu.__3y^ #ӿsxoyx K_WL>T֪rOJB{Ǩʗ? /~п\^ gRzƟ YԿ<;1?ٞ!x?3Iex?OG_|?0A?ZԿ [Bm GW760AڵP7˚R `7|RHȴ kQtoZ#_QٮF_LB?\Ro.T`7/>~!kRz?h&/GGce]{/]{?a} CF?5=4oZ# U2B?a} KEO5='--}?5m&1MvZ#D<!o^r#A|)eKG۳|a|@-j_U㟅Pா?XֿnjӤp\wIBx֥/X0??D?{xO_gSz?{xO_gSz֟ş֦{J!R `w|'3=|GOx~tX|$v*]O*AẆ1|^">o6Nb0_jЂ#UUq>!u\žg)]u7߹././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/figures/visual-diff.png0000644000000000000000000002531514023111777021361 0ustar00rootrootPNG  IHDRzbKGDC pHYs+ IDATx^xU' GWeeQ)Fv0 RB ҂:H)Y *͂ 5T#$ޒn#=7ܹ3J~s9s=9g7gnCXþ+[;o!wƀh/C d!& )h063* T:@~n>ۇrLqS0y $MfPmZX}TYwi o~esc.7Sl,vޕ;{=j@Y* #=G|Ґwde g -qwƥ՛A9J(7d2&7/^$BMW"Ĉ9E0*O] +鮶1aH0R4B!?^N>0<7(Vl8-y$u@55wn)&_?VrN0>WyKޚ ^ƦG KS 1"IuNaNs'q%DXI)8ҘD&@Ey.11-`b*݌썄QfF gxcH<# aoHO=v\hs=A\o%/˴),F굠HNA&Zp##zOx!##n(xK=mX 7s#$f 06 F"f(pQ5Y Il0,>=)IV5ο2kf%+tx>b)wT)T)|N)1\v]B{3e<4FtnkոğKm C'Ĥ5? a顦~N~wDnDȇ;Ň*jYgq׻g/ t˶O#w=kDZRQzE*9@BO]kw\pՕ⧮\SwFuNz9mg[7#W:E{M40-,%Iga0sʴw^L]5;uԔ)K&Y_o}9beH!'ov2{z*."Rq 5Œ[ZŻZ ,4/WP)h]dX:[.蚷5#2>c75Ua;-sZdlvnIKm d|ru96dsu{ޚrVʊeR^h]4κ #q {T<*yea e[7qf"<.j.6+=өQͰl9l@Mds,uH1t#ɐD/yΡ^X_.ι&C'Eyr^*tLB9fsYMzu.vZqDӴFX掴f3<3]Z6aA͓͡5طWƒtK3׻"[1kuy!^X ]_Ѫ^*[Lz,+rt{fpf!(2}pؘ׾4d=d|D acoԶ΃ JX>k?G1˵|Y0UNLNjH337-%/9# jwo~oǯ_"DV2;Y|bP O19皆Aazl!TK(}i[~H,ChûtU@ m{z+A9-sYr#zKZ.ruYΛ"m 4Yт1ݻi8IOw!L.""7sp7$3#.?3-qT8*Ӷa7{x@zSzMBY,cQfq7խػ*>9H.f UZq[y_t89) Scq],c:Xm2BO .>ToGdPwGWyZt=]|_߬vڇL?f =$o{q ]w_W l0dA!U7h>&sЌgtyVn9_mB^9yw̲5n{ yFg B׽^,r汃]}8>s #;&O:yH+Ӡ;Lzݔ=0zg&lW7>r=ni\ojxW,q!*sDKF~\uHO}~zm7|)y^Pu2E5y&щ&؄{#"[F$54d1Goa(9jfX`Ph(:ٿ݉Ǜ~ACZis}Q!tO }tӋO5|'n g:^V,P[)c\0&W\_W7ϻgynv Rq @2_K9FǷ>gm6sIoM}~j`އ~zjعE~lϼMv}mnm[eK۶uiK/;߲M:6`lWwۀ/=*r^zcyy'DP hAd]y &:c6pF#O\Bz]Oz$KܒM?NJ7*Ox!r2fc6 "CAY_ȓ!w=f|w{UC+!axBI0u: haBwbx =vx]izO% A/PB(?ip83ŦD@C#t$m }zc X0r׻0 Zl \`,zc X]Q?*AGWbʥ*Tsrٯ2:F]OHgfz=TVJDqHgEVE2=Ȋ&#!QT58Jw* :^O帞tS(tF=@_Y]JҫPMO*#n@1Re̲tD%_ir4Dڋb6 R +K%Ӭd+gP VgXYUvi(YloR˩Xrd4GR)M7WfGQ8 i&Tm+XRwqԷҷ,H3yY>B͑I{W[Vo8f=t#z* l[a(٩J6V3XדM%${$U^O"wp=\X1^mYkUϣ3_TGIO/zUI4\TiXz=]ZD)5+m/ξTSi%(u$ٻ`A856Sﯡ#i[&i}c3v$m_p):s֙|pk2p=m\g&RcV X0p=E]o?@MCӻ*zn$ARy\\Z+=Fhָ Z!Tz6+Qi54cd ʠGp=nS|&Ũ}$% mAPMVs=2 !XT1&wfAVS׃Z^?WWYYO \j^pв\_N,GY6AP-UMw=^Ro(Q9iQDV) VZ] A׃ X*+A]]/Fh\ A׃ XAd, 2zKs?zRZ Ad, 2zKp=%ARy\/ \*ݮ ׃ .A׃ XAd, 2zjt^ \ A\ c A׃ XAd,y=jzKp=%A\ c AT'W z6 Ad, 2zKp=%AR\׃ A׃ XAd, 2zKp=%A\ c A׃ XAd, 2zKp=%A\ c A׃ XAd, 2zKp=%A\ c A׃ XAd, 2zKp=%A\ c Abp=jzKp=%A\ c A׃ XzAuBp=%A\ c AT ATk׃ XAd, 2zKp=*w=ihzW]j#׋Zl \`,zcƍ/ aIDAT X4j4Mz-zZs \j̙g⋎E_(N؈=söU7\O.%^dv>_TlEı?FX)׃%ZE'5ߢ  cCs=Zk SNt= we|UƖN^.~wBAfT\jY  L/L(-$:zG&U~rX-2}' ,G:\OQәA~+_ʕB'ՔTɖf҂^VW$|Sq|]OZ%jIJT5U?{[ ji'P:\/ݿeo_kT\O>.zUw]x,m݌r^IK6.zYs̲$iz*p=z*ŻZq=U8YxJ1zÂAP! }7')5T鮧zeu==nAPŵs/z9tg;_tgUzDbbdU*MԻMQ|W(68Qn-דƻ!2)q\f@PCw0J \g w,q<2k-AKzN<˾A| [m_\/ھ;~u3{Oߞ,uے}y\7\O.]Nr}kΞrǡ2Q;A7##)׃:,˵~~P4508^k0p=\`,zc%X.$ǝJ=[5sC셦x8͋f)t_  3,tϾ.ڢS[Oc>_kt!J37tE_ݟiyy2<ט|SD1⦞8ܟ4-"dm|KS0[MW*Hw {RIG]fG0x&7tI3uBs6_zl2h&Kr,\r 3.>mkkNN |˼Kg$:#?m%] Y;_ eДLzv?u=]{b\x-ཝvi CHZ)>JkM( +ƧzUecS]s MyTZI+Ehi椘s= p=i>p xw/Mt(֌%++~Q)iiI˕zQ29WE2-Dvvjskʴx]/ߔ=~P։ӔS ɉrz@ͅ[DZ)aR |:lAo;ͯUNgxU\(f5}^P6iA5gWۤfsϮbhOy@fsM:T)QO$838]~<szn#$y]k8^Xn(/`o$\׳+*7^#r8c9܏ 9(Vx(7Qᙄpm'y`M7䓔L9EoSm~'ᴞwH9g;8w>`sb׏G0 >8393/L(T(T(T(T(T(T(TBBBBBB1B5(ؘ P޸@BBBBBϾ'?͏/勦U0pB JU8 PP[:BЏP4PQa* REҸ)J|PPPPU]9?6cm[e-[^x S_{n1M*ԩpJ3T$=dB2BE?CE2PPPPGP9Pܻ/׿:g[mɜOMg>=g[sV4BE|dSH'B%o-~7~Gz$TP4****;1B%֌a+G?Ywbڏּ/4~ێguv4T$ =]fPȬ)@8" $G_3MFjĭ0 6Kp[B@ VB#D'6C Ȩ FFb!dT @ @B x@ A"T 0L8T]1HA"Tb >`,v dB@F,}x{hZn PHH@A)TpXTAe_! M#jG`B:j1BUj*쉋r; .&P*ek K ܬBGy=k6a˳KWM*qTW+UB<{; -I\ 4b4(PovqO ?TL@*: ;!p/ԢrӾ6~B!*,MO@%(p9:ҷ]F\[f?QKSY=El>1_BgfU}c%WC]- sBAfFR#qsXZe'+J7iꭴڃ ySesc j#wG+j&CSX h/뷯׫ngt*k5MAshʣzǪ~g'%A6xn4$U7Gʕ9[_~gGWF>:U1zlYģ 2_*#\ I&?k{3Ls( I.X H ~$q`ujB\PTp*ɠkkJ?l4|dEV,*T_^~-OnkW琿.:LaEcUWAR!h4 rQeCGGT*MNik0oPۊ;{ܹ㥻q^wHC]WuhsG6R$IfvEO/ c\ rYVt)N[vnogCJLActf֓_\~Y4-.7"S^s'͸MP7ݿ;M@@k[YyC\@-qWыmy,)Ҡ@J p&TiuũKyr,rqZ=Uˁ=kw TIԦ^D"BEx.}E_tϚ4u„_kL;c֧}aU|w數\^X8>?Ky7+d4E轛fKQA*%Ji{sCTct>mĸ M&߯yn8z|t=8k߽{nimV2FtKk@ekXL~uF |</::}3HwI㭻a> vM_W޻~S櫥5Ғ̲,6U m2<,Cv/a*T ~ %n4ׁT՘-K9\age>?\WehZdDܚ}fojsA7iTeš])_LWpํJM[0-.S`gZZdm7F.g6A^;S-czTHPwا9gp'-CjKO@TB%@0ojY^[/?9s7&LP5r%_+׮(j}~GG<`#V +dIe*KJNV 7J"`,I իP_[\VV&(z!=B٪i^o\6kSJ喗/&$D3sb9e{;1 UkyɯFǦ OlH*`m"ǧ;kn|^ʳ3cP}AƥVfFֹO.>E RB9icic&?wg:L򺺺&Bqu"ץSghj32Rⷠ!r]ط̳%i{jѥNU%}ajNK:UUk%koG-!%deU։L:T9~o+;o~*bWϺ sY{s))l^Q7Bu眽~Bi<PRY3-.dZ{+䕌^QcSK8jt/bSjFG9͵)1擏 ;ƏL?^>~䕗Nt-OġZMIQ;}*`GUUō-S. Psc Dl!az2SZZUUm=ݷTWz#iW^|NeCCCq9ؼޛQ[  zKV&6,Mb?\B TXA>@`GwP{׽+[/){lRGZZjIttxKKJH^^VXx@j7$x.:VwOgi[]|> C4ׁȴ6b"ɢ*[xر3Ǫ9jeǬ -u@Fr k%kMVKV{4:Ӹ ZN9-Lt4G&/{mWы[sPM/ڥcd6uZ]+o(ζu9igd#UP) )ky_x6VTP1sׅm}Ë@)$ԝŅ6iJRv lU "NZ7/dI]&'Mz d7j.#^Mw)v6t%Xuy$*ǞZ[l*cO+cO P$y%RQ 'A*4՗)z&U6u5w\orP]W*xƭoHsɺ+k{o{znEzz{|_wwozKPUivG5cKȤ_!]oS#`iyR(wU[ao׮[s7!(+?IR RbZ䪶V9=iɎY\E yt"ޚyy>\;rDݭ/ ݳ0n+Mmu j)sU-%rk$ooƦ4HY[:ZԦw I4k08`sWxNu}‰⿱5ٍPUJ066idWTrmk]SPJZs7]UUXMN0#~(lm [lK?>$1e}#AHiaH>lm@$Ħ>T_[+S-ڵ7V+' ?!ɮ-ڸA9PǍhr@P4/sVׯi;poe@*rS ^̔R96*4]͚.J}kg\[V%1## %BWfLս3S폽)T(_ٛn4]/kâ?J5z%>"ݔOHH/!7%-P---SCoh7o{;'M:<2В ;+1+;=//'-BChx[@CX=Tz򣿂8KK!}otbbti9q'G;%@0yW.u8i{TjK.~4dD.5ڊUZڀ&6 }4EI޶MBdݴ#4&;nMzeSDjpX26L^SvEEE\]ޢmmQש5Mm5b477~zF \Va~.u]2M!yulAU.lʰC'.<\D`Љ} X ~dB\x  @Zs=7XgǏΝ[_SlZ"kkkuN0n\ީ/]D!K uEM6;gͶwwןڍC :~+(RuMF`SsUe[Ⱦ]@->f ?Uaᧄ2ĥـԼ8@NV,2JxZW!3#u~ZBmlRieNY[GR#"r%~)y`D˸!i.YjOHo彷{. jSLHQDV |^ʑ* Uiכ7^OJ Ϗv)[sAChHMKԜP6Z ˻m'']Xޚznt@ƍݹ; KSq] J.jNVz2JX7`1=X#㋼6/fTAށtk d_O(uKYioիW;;;޽ M0[t MUu 2M:TEkZMʶ`Msk֨r2uJgG] (t*:i`NhT}P[t|ܾ7 )?Bʒx?aQ2?ɕo?Rkߊm:mow:퓔XSXWXYXR`vh_i)`w41PƤl=Nfˬ7Wżkܤ_7*5TpVܺT 'Ϟ>r%IVXkʷުKLlnnlooǐ IDATgl&@NkkkmZxԫo8nエ6'{ٔmv&KwBKrݗf+]WT5c)pRUs*U^z'6}Z,^3^plcXP/X)ȉ AQt_Xx򂂂ªC`$P M/ +ʪeUIEtI,JC8ȯ \?Qm-_!ֲQyN P1nJ_`M?q|A>C!}Dvվzk "AZ2ddDEZ9k?zN-IX{ M(0Yqi25b׏k|uFuȪ^L[k{MWJ >qɡ)BjeH́MkRp㴸.lc ; = Y+Zˑ+RoLz{›F䚊7h*먞4꫊9lpD()uqD҆ʴKY}q TJ Tyyl[7[0nOIi1NZ8imʣTŀPOĦ ~J#Po7[i~nݹcXb*',Yt}Ү7,9S^T֦a,m,,}Qo(Ə,H9Y}wU5V`ݞ=\hBۼޏ̱H0 ^*S363m><@^:^կ;lC( K0IJ i T@T{2\Jr,xcW/I-W *rt4F ֤PVtC) S l6UzrynEQyf];86ҍh,<-EK#3bP`GjPV߿f])-o֋Z7 y4Ae80HHwtt =+Ibw9MR ߄^rc` P&O)wlNl.3A>C*޺6B_8:4f?Z3 )_1A>@`GHNUB;[Zk}n{oE t)(~xO;-]4ie\.ۘθ>?*zjuu{ E]]ص̢"@iӸT_oJf]ܳ景lzuk^ؔ ϭǺW j.PUJiyX ,kQ*R\pHahq= [l Z5jͳ W=YfF-ɦ)PhG8/ %-o9..KwJxЩ02*lV۽)9@ ܥc;-,zk}ۀ |+WʧPdeD_Gli-)#BEw}OY2H+7MH _ qEu"?ש`$yonfC^4USp󻂀s@"(444--'%%=^S}G3Ft;7\7XMplBGvmO;0٪^6K{2:y2BmoW54U!7Ԩԭ!Ʌh>]"XY)b0ZEJf1v-HxpU=xoR+/f;,z҉_ޑ4&C;k̕ο;6Ѹc[g͟|7{#<lڸ # ǟbf[lَxT% %m132chET }Rw"62SP$Ԧuv43Ԏ>EGӎ=du[`HNף<ڸ>z~CORdL@`|`dTT85v *qc59.- , H\_]#)(8$SHw 5j_)m?Qn/`Ν/w9Ԟf;̦SBT7(PBE>7EM@y *XpL$L?7\c()1S"ς!EEE:؟KII Buww?vHC--ͅZvz6e;ň*v׆WkX=o.pŵa;cj#vJ)48Zigg Z8BEeee }-at="?|MBPm W/Ѣ66:v4Mt-orn||?ׄ;)vv+[[reCF1Bm֔GUm:lH:D FnWZqY܋vHF#)  3&կPNm +>81+ tc(#78_p cE_?2B.,.̎Jqv?_qyyӴcOJ5n] G*$+]RzJxjrhrbHb|pH{aArReTW0(n+nm*B8Ώmn:y<,, 8$=,t쥢]iv_/)Vgj. $T͸1o?˚e|LY}Uꬃeok}V~ф} їx$HJ NjVz HHKޛA7wӹfGu<P?hӳh繟8ZqO|<{ g7&Ʀ`< D0Bx"x}СgϞ;wرcֹ'<­I4| d`Cg_x`2BrE. hrG%5+7Г# %Amxzk+e* vT ε~vcH^FUmF\s}].{}> K.ԝ>p:0{70~9* 0S6`! 50!)rlΝ%hp#jPi^Ԧ觧M\ltjFs)X9~y۶=͢] ,{O7V؛e$8gjkԳk"̂CeoZM7&c2lFWA`Hft5|[̍GьPKJ2̶Zeu=ƚ?t>6 u_;ݪzD`V.߸qq%Q~FhDՆmJ|h[j'YJT-oGXX,2BzUK$b5cG6Ԧ; rşx8}‰ S)7!lڞq%Vj/ ~(T>pmnaGd궪q|x6n\1Zr#T@\*v-(PA!,d3u3P`-'*ؽN pzgSĦ`Z#epP/G؜=yq@)ʆ\GWl?OCVW^^eR!cg{R2ao+; _RjHEޮbϩ@iz灡jFo{ح*,*},A%b~^v|zZ7U@|ے7CW(fDXV_[vyٔBڜ`mrs.M]~tlxݕx֭_PL56gVeʼns '%,;VSN:ΙeLįp͒x[m.N3#tۦ Nu˝kOoJ]jSsk,QH6׼-Vi|þ0=/W:vq7 )ۈ# q/?X1no+; _ؚ/d`GB(ԥ5Mh5 "T歹Xtu7N4L3O=T8CP3\M*Rs9}:ewihiʤ05c# ΄Z*.lWm(PWg{60S _^lpu:Ԧv'MؔB B;} pyG; MOOKMHLT,>@UVf}-۶g8H7}(8W?izJN6BEh`>P8V|fNH?K X0TU)%` ̚]ܢ(նT"*eW"@uBySZTQ-TU湺؃iXXX]]x ڜ~jkz? VO|V$xh07 xkދ4x#SgMwNOߑfZ%֨+-R>xչo^[5|"!)8{mooODo?NT#Tu~6?m͏:Q9XI>k?򱢪ʈ#1/X70}vs?*ōPsJ"q._Ц蠀kATYPXWOTV` T* lmZ#wS(YYY^^^>a}&W=%p7_BW/Ԅ.XPqp _ZW&i-90 Lq#{Gg$VE1Y:$USҰ6CA \|,^W Y$O\f3P;VU7!ds~m?O;7{w뾭[ Ea "bqTW{0bE3-.$V3?\e5|pui 6N] r%yM;;k+bB|hII 4_tu:m{ႳRH$ iaˎUҞCb?A +,)D&իEn!x;PwFfA&Xr}L{vB^]U%;?䆰6rS3kMy6՗?&ትIOIzR?*oMoIYVh,)**Tdjyqs̸@^qC<'(=W>y(ԐBQ]{?̙{Ъ{~ho$PiX~,kN%7BWI0Nκj24CT/De%l`\ҶJ65FF^rtpwruzᢳ9g';n`%@0K'rjP 1}dǏ/ä7YY7WT\YҺ 3R@ڐ}3&|L%ف1=MTo7B%xAc=꼣gLI91/_?8Uo2ן@ɾf펜A3^t:,E&^_X芨V<:ɕO,׼ʕ `'56!nVak4U:wIn&Ƈ,Z4G5ѤA*aA?IHJPUR6xmS\X 5oz7LԁX; ( }Y%--RGy!h\d\yM-O餸_֮?ku*X͵2 0ě${AsbX׻9GD' ʋ|'--rClv A@6ӑށ( @Lo H@ $X\ƭ2!*2`!^ C"T 1c1t| T_ Wcxw$BKr )?4ObZ~l!$,ZA1h up%!->ۃDK0N086ம<2RYZ.JmepH"A_*AlV)64Bh }e4ʈ`P`}bZ4p#vǏ^n6;r:H+,jk0:!Ӝ<Ɲ &Wwio 6e/T*"\zI_ҵH H9b[$V[D_'iWchpi.Ԓb>rnk{dEΐ‚d ,` #}atEbam\@VZNӮ+> 2VG(T,F|nN+;M * f)i&ZͱFk ݺPUaby\` bI\y v\=Yl%鑓nSdzzqf--EhGC*h -']Xghzt]FP$,O=5 ECi>'O |bUHsw765T2 GTz rHe9694A`3GʓEY4 grn 9`AA Yn6#!."V-IU~[(^b+T0 2V*u+H{T}EӇTEc bR}y te\&nŒe ,vEbUl6GZo D|Fj-^bN@^vH~qa*ÈnT@(#H23.-Bܴo TC#T\&iqK,O,P)c bR}yB%Y&:F0eoQ9=OAMLCO#YZ2#HP0cI6[/# Wנ%6ɠaOU 6#p{wT_q!TaP*By Pqע==ꪅ%C 0 2 c7KlvX#0A\ OZX q-$:C/6X*HY CI<.b,XA<Ɲ &WwMo[BL΅\ S-O,CtZ#V" x0$ :=_/mƕa9KZ}D`l .Jv>S}Zy橜;@ brH."tim!z,B吱s$b f 9Pc`> =cap U? -Pׂ1:|#cF "Tb(>_AillaZB xxP#G@ TCK!TMl3+Rg_/ Lp:*& ڇ:P ^HzKw\?(}Y6V^=kE4Kq zү;d[&0Wcy߇7v9[n/N떜yQ)3[A%BC7t-F2 l #&0d,X%)Tab`Wr k0 m jk0;ӧO(TBtZdf>zj;޾v'vAZ!*\YlU)H-*kL%8La&Xˠ ?t*}Y v&EcY]#*rA_~Ԩ -*kL%8La&Xˠ 8IT?&Amݕ6 [n-_RS#R(am 2j,2B-xZPH>,jJJ 6*җ*}xL0%X n]2[B ~rඋ *<⠑q-9HhQoFTDZP^۴f YbX -5Dמ͉Ħ =\d$T4N>*c8Y *{ P,A:aβ,Rl FMK60BƆg,44-S/>dsdBTAʀ)G Y P; -BX16-+NIJZƖ7jCT5aY҆9j`/Tb߰[^'h&bg ! G4 H>6W옄PٌP<\]-$20 ŅBZhZI"cKHCZh.56q# Bbzs [ \1 &!ThSFS]5PCl #iX F:cy߇ԎL?'cF0P32҃CHm`uHCC=}%R= pZ(T֘NKp aPc FP4!WȮ^"˷0jPp2{1n硅Be6}5}xAPFiTwOа˕J m۷_"WV2F pZ(T֘NKplLWcy߇[]EˉP⼣C GX$/qݻ8~LJx9*i4X'ejӍ!m 2j,#pp Ԉ*vDdT䂅<怡jFf.8 5'/O>"֬#0r%-X+R-eSà*@8ajhDsvnPS)woܼ0uFe PՌ[1 pB_ 0`ajSYٙW#2Ħ~bIi32I4MUؗa,I@€0 >Gwzz{ i\ANJ{K~z*TDTk ]~ pP0`11BP)X(oGG{dtxWU@xd> T~4T5Ҕ']ju Cz70,_ĥ0`4+{8*}X;R]W~椮~oaIl:ۯ}`CzcAf[Yvt oQ a$ޚfIs)^<Ϝ3AECmѠ†`PQcyߍ'R#Ԛ~pя6iͷ_-_|րuلѧ BMտg~8(+zzqKm3JjܠQxJOUƑ"T-X215ʸ@~ʥP AXxSYP Zt5v$JdԶ;AzVl\2ꅪݯa1mMhP)BbR9bpghfv2Y Q#U1*tm^DHLg9%9 Gg;1Z\1l&UJ ⺸Mඅ؆bq Yh:hMK { B{+Ϭ;]wɰqKmݿ T<$n"z#9"苡][!VN4+gȠrtd6 CW8;wԂѠTSf uR :>Efo~'w:k T9RH2"nHJ#T`|\`k :MfIfs:quu4ͦ2d&$N*cCx*_lKm7 .o"u( HUEX1H▲rF8{ڑ;S4P {FInI@`l lc6(Y^S˫#?x0q%PTe89i*oP Gȁ GQfb_dx>\p~ Q֝S/P-PwѥMMJ 1u]a/[HUg2*"(Ա=4X;EMC`h:u.0 cSĦk\@'BgUE[~>P4H)Wy'TΔGR̟d[ܼQ,08"EqDuTkӢ9 u~PO|jJLU,B&NX} ]{tރ6;)vM]^pM+݂KSQ5.Uv^ՒvU~}+էT~|PS9j Í.`\KTg@u6-(n+9q,N!{߇jlcIw.oزԵ>1<1xsb6; i䚚1[U\K oJOPSj3Bp}E<ҡ9C#qi΀b*!qO# 5߇jlcIn׾彝U??nԵ As[X yGN4dP9vQ˒{iZcI~L("ƴ={j6Ebԟ@APyYJ{hi]Z~R0ۊ2A|;j-߬~èёaX"$;٩?PP"* @ UM# 5CU I[<0 Fq 9hMqPPh_o@UM# 5K߇*}48*?OkH1ZSF)ԠPCH  -lWt%d4-74*B_nO/F[>> UA:'Ti8j Ƒ98ds],Xپbњ4JڀCK`\1vvW-dBrʢD1,/UM#*5C,q(TMt1}5""){#![`J38arN u\s\*'<Ubr0ZSF)T#>̱ cg=ɽiU@pvJQ\Ŷ F3Kϒ(]e3LjZMއBbIgAU_$AUj|BP}Ρ)Ԟ ,qYGs дDeDT#T5s-ƶ> V6#vQpe0?_t צEsњ4JjPJ$@lOCBuQ}l\zk*'\(S\njhh+Su6g̋HXm0?_t צEueѠiBU=F}9xiHElwrK>Bu`\/whܢ@o8F(WMs_3J+í% jUռ{l^,n&+_Q UET߇ʾ"kVC"mg@Bu~W7Ý%+JG+(GS/Mȗ\W .-+.yõԈX&n+gb0qq]sϨVEѠiB-36K/ե#nH\ 9{Nwd\^i$5iB JC8m(kTVPAI1jQb4jPUhlMc**5iB*Wl ڞ T[- IDAT FU:Z}j viX)JJ:ZP )N|[ *AUB:Ӷ 9hMqPC AP  F{Bb6,x[t͖5ub wz5Bmc_0.mm/9pHVSϑJ @}94}퇵 J*S T8p{4lL!5ũ?P92䕯=[35ٸ[Ý^P-qd*=Ǩ?_)KT/kTdo|&GKC& uԢg9R/nKߞ4&`F QӢoi5U4p#; ]t צEs F Tꤹ+=tl|~C^?zTF/cH-ʲPH7;}s~)}駸Z', ήU4-Lzl n0T\PLi)N:exiՃ:|k٧վo=s,H,tv"kVC"D*NͰ_0~e!hSG{torMMPTjrxJha/nWJQaռxQ>_Y'yɠiB-H>TyA>-\ oTVcmK-bPyJ\*y*UKmQ#T=DX3TŃ[6:a>eziGbe9jQU#Έ} 15~Wr#v,K{%h"F*^(*dMqD Tm(9#f{B}gڇ{iqJ&”B@ rb "t+;z:ggxꊾW4,A&[3?)k?qggӁL[rE UhlW ¢阛pRu7_f-2>d8g"*ף;3^㤹+Y{%PU_0>p@W|bPm8}ԇK 'M8vqnj=wqͦ PW\J7,Q+{!QO5e3$F`7cߒnX?Kb>5&z<._l܄cϩ cO7w>~4c/TwWO}m=K Ւl͆ll8/lcp6@+ ȱc.?j߅,jOSW{sd{ j'b$rH,nm4ZY'uΞ;KjS/Z__?ۛ{K`ժ+T7dP5/YP/Bo/{P1Jzʶ*9R b_LKnK\ŵԳbkUpAwÑtZY5<}ԡC6 *Κ=c/-] B9wc)T/ou^&իi|YpvJQ\Ŷ푠9Fn@ӑg1zՌ}mVYHaOT`Wi"nU mf0XddW'kO7orWvf)RN>#H_W͋WuR6_0WBUBeDT#T5sޱZ^w=v\r_;p_vǡݫg_W߯Pce 3T襤| mM3 AY5:,ڤVݥj!cJZfa.-ήsҡT[9#U {WF }KU87 h}~ -XW @\_ P#;7ípةt/1vP|JXVc|:'']̖/.lPU/qW(zDQ_]ɻ7BV>c2Xϭ2fm"^"q@HSBuc}}w].P8u]WӫPciSKrk=T\jaTʍ /BE g>}v%E_7G-+rzlYo:~pW %T}l bAYXwˇo?V|c;G\SKK&B;BE Yi?o{.~k M=3(Pon sB|g~b $orZ/<@1 5\15HǁP-bta$13e֥J"C1r"T>a|#$/X,FJBmWYZwG6U.+nn9hfB"Py@քPVMnܲ5+ i4X'PMDZz_uݼb5fVtA#}fRRTb[v5֩.|]~YRwBd!TՔ+<Ƙ[%? @FHJ_>J ̗\jGK鼏^\%@1ՕƸe i UZ)PpBee)p UBMH ԘA|{ҭ,mrmljZ$ԝF8ZQ)Tq765fPp*?!3f6wo&|_1nnyjYJ Ѥg5ܣRJvXn m j̠PBeLyPv_Nj*.D$*q 6NYq765fPp*uO',>tSyrO.׿}+jYfYoPnbta$1 %T7W0nkӫ?yHP-,m"H 3(Pߚ3t=s㣽6=a=CsVgX=U\šw,?TW.!""H .ۛz{jL<7kCʝG òaAk\q~{[* 3(Pp[»+ vqܬWt{"nZ+7jC @@1B ><]gLݬ*>PmahL86UmQfq7Gq*E[I1&yhS)p-Np#j̠PB<=dM=:Po3X.E8et(QɡP-bn,$9앦&HX@1B u/?zOMmJށ[[ķ-`tb\_v*pUD'B0${#g .*1-CV ԘAe[9K\ 5V,p-qO"8u㎉Mh6 i/aU~@Z&/h 3(PZ*~V/Ę8gqr%TQzӴ좚v*좿ui ҡ[Tk4T3"rr ~!x@A Nnʶl c,+[UScJg4CIgFnB5H@,$ʭP5)ZUf 72qQJ5 UtgyP܌&@P˸Pc#?BPʭDndno5~J2viƦ~;Z& P5PMG.-0%KײQEۺX JoJn+\9qRTCq\/LբaV dA* T$XtT5q| dA* |Mh٤BMkBE PAP$H dA* T 5Y !ABMk(jhL#0ҳa9`@kFV!X\j4A & P56jGsh6.֜Ucn¸u & P5MXD,;jI3*1nBMk(BM1p-\1!Uq4BmhޥZEjL!XC.I ]rvFyU\UbJRLl3~~ C|TòݹX%ԓǫ{Vu[8G ԘB*r+T:$yLJ?ؗ= cwHő5!tͱؔұ܊8ِjEnfCb_R uE;Vt\8[ZP5CJ ]rnj>hwq'A9}ͱ2Y?U5܌͆ dKGkܙC-]rmXc{n ԘB*)Tv^JH,ٖUoݦ>l?~fըմXswjj#P5"H(~˷PGgn9\P5"H)BFn2nCM,GDqBtI[s6ZTCɂ T` P1bܓl$]4F]tjJQjcTFE dA*j[MJ8%5WfBo(D%n9L5~LtLS_4k dA* XE%S! &j XCE.$c|ϽS@ɂKF|IDAT T` A$j XC* ,B A& P5ZqqL$PAP-b'@ɂ T` E-ԔKGL BMk(jzi3*bQǽ kSPAP-"~[hp@ T` PρS}ř 'YS5 qown5  U\˖ArjѪji {A T`>$R!aB 1*BPwBE0j XC'T>OlJ*BMk(WB%FRwrVJٝgkc"1 ,BPv"z8JXDb5Y Vj*7P?j XC*T] dA* T 5Y !ABMkBE PAP$H,v?XrG{Ŏj XC*/ԃex󧧺|zɳ|6O+Sr5#?B A Pi?Ǧ?!- Ç:ftaطP5$j髒$Qqo?g>g?=S=>=s3>Q_~{̟nm!o T`J=Mߖ Xrߧ'~;54>Ӱ;5Սv?BBhj @"P a׳N?oY]?~~Ǐ4׎5 B1*B@JfoMTXԕ].ꙃ5srvk T` P8pX/ }s휳tfqeAñc5xB7*B@F~KJͩ(Y΃{*'̙o/~g T` Pߴ;ש'+^\]:|Ƥ a56@=z6޻S8_}鍑C9CmVj̀P=*z4Bl-W{Ywq&5@=*s]Q/ݵdS5@̅:*a*]@|Q ~W|53_y.zBqByvglv,zq=TBҥk=n+M B)kZtU~tW/ رO ǨmRؑW^,lJjL!XCBuO*q+P'0-ׇ_H!ԠPc AHJ<)i=ח+vpF 6)q AI T` \*eAI T` qk4G%Sߢ0h&P5D9Z*,)i l'UQ[5&P5P{@L!5 l Or @j!XC*mP APBj!XC*ZBM2kB@ AI T` Ah!5 !-&P5 $C* T pam G]G5@=Pe7Bֈs\$PDB~ P5 $C* TdB P APBj!XC*ZBM2kB@ AI T` )j; Hr@ T` Ʉj@`oFwJP5$* @ɂ T` A$j XC:vrED5Y !U.MEDP[UlQwʹ Go6^K=1}3|B%kB?K\DB-|q?'Ӻ|swxd֏k ;V.9}zj,!XC*/)\{ןpai1_Ud,KB A uр[~f΍7666Θ1õ֭[KK>}O>m6l= B%kZa>aV8&ucY}[%Pfto}T__TSSs,9Κ5yC T` F&)fҷU֎dh͚5˗/?uHZ[*))ٺ~ XB*LBu/짔B&3*[g B;}cǎڥK~' .llt~ٺգ_ؿ=KBP@]N!VI0(G4EA uqS>rmcǎ[nJg g2wά2ynPc A (T2YS5%Pl]S-[jvKQŚzTyM٩qTi*_QKLM>d, UXFAG6F0gxիWWTT477755}3s?Y[pܔ?Pc A (T ;8K=6\q45[QQu+4Uԩnirݙݻ5Xޱy}i`vѸK\:޲i/+,߲`9kV-Xlζ-ˎ45"T۹hFqdQ7M|^1▋N?ZYhi罻q{,z;|w|ƶP5PkӁ5Wu[5ZcZYY~饗3u_#jՕ=a_qĜ8N5}o빔^a}ҵEM?\4}K 7(5PU#ڄq 6OygcVxf݄ysq^ydǪj XCvaJ5_hcڿ4ُ%.PgΜqw3 ̻_x uuXw*_B)Խ~/z]^ԅndc/? ukW/,ݵ`iUWMgNf9y%TijcJP 5h XB* }ڴ+_^ۮ.~hօ\%iwW/.jv'ԲK>P;#۵kWRRP˗8SmWVet+TWƽJd=P^WwNcܽ˖ K/^4m,*R[M=KB%Fi8iTj:Jp,& P5Pl'nۦ'%_*I+; ~E.q:z;?Ͼ/|ug?n7- ߷Neo;4]}^ZYHvj[J 6Uc&vMu\_O__~#5ݏ)߲i)׸uY3ƺB]0oҮE UNi{PA (TJwdǹ_rOYUԵi _"צg{BgN}t@;/*|[79usʝ={e{wMÎu>86xim*8G?Bm%֮.ظpՊysfw:oĕnۮ*ӠB%8U5Y Be.+.qM]jj-_W_W#kv:—Jy&ugR_콎'ʮW-R2閉sIcz*uTՀ)-j ɖM>;{c|ݸ?غyB%8U5Y B%/;/HI?~VڧK\pyt-9Pn]:+Q←x惻{Ŧ|'F;g^^4~u|Y3.*RgfBM5PA (T ;}hօOziVr쩧׷PnϾ Ls n#Cwm{țW13B}ۮBgZPt%zhűG>b[sfwmZWDs%K6j 5Y B%/SʲPtO,)tgn35YъM{Kg2A2U#O 柅Pws-USm:Xz~kw-*p6s]{*ڏ|#OPf ٬PA (TKЩߡ'ܿCOO~򓆆 heҺ{6.^qd3r pM3U|*wfskwW#gt7v~u->BuIݸ3ϪR?HbJM8(s]RRTG!.& P5PlwZ|e5PKv_t֋/*'wI&ߏk5/Jo߇@;cyAjF#F PBMk(PIpm,TNvcKJ7jV3j XCv :P[%Y:*5[Q!5i !P٫XO~  u43bGiXod=?j,!XCBuuy[Ab.: ͋3yBMkZp"*j XC*҆JX"-4\XB ABCBkBE )8[!ƁPAP$H {A T`>GDB~ P5"H@ɂ T` A$j XC2$*NNi 8B*Bi7p5Y !PBg*1j!XC*8@ T` AHb t B*,/Iю&x]Fu@ T` ޗmCi8Mf-[h)PABP~h܄f}j -y3v7 tܼh{w]T2qj4/j< XCBT!WץEu-P'lx̯<.znǥO`@hP5d'TvٽI"#SUq(CYbSuUHB/O $-UG^k.ykjŷ?[~KBPB ]q6qv~7%Q/x~;{:A5,+bM XB*Zx47)3L6De*Pe63P sp|JFBuzƀG8^f5 !kn*E%Be3e~W&U \/ _F͗@q T` |86)ݢXJqO*6HaB󇮼/kiګU\ٻ;.P A2 BTYiH3^WE/6wr]}׍_|fӗoz_}EnWB֐P-qQE\39Q]kMם\ڹu \ޅP AP$\T*FqqU\ºY g?%5 !ILKulB?9\kgkZZqD K T`^1zN\FV xèT^j VVj̀P=*HI +T}[GF?yݮ XB* T$ۣ |5,fJ~o<-9R T` WE/T6JM/PA$dM BEAam" Hp6G 8M!TA M BEA˨l" m46G bM!TA1Ʀ" &66PA$ AALޣ+  sF dEkԴIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/guess.txt0000644000000000000000000000261514023111777016663 0ustar00rootrootVypátrat změnu jména ==================== .. module:: guess.dialog :synopsis: Dialog used to detect copies and/or renames .. figure:: figures/guess.png :alt: Rename guessing dialog Dialog pro hledání změněného názvu Tento dialog se používá pro vyhledání přejmenovaných, přemístěných anebo kopírovaných souborů u nichž k těmto změnám došlo bez vědomí aplikace Mercurial. Dialog lze spustit z kontextové nabídky TortoiseHg (Status souboru, Uhodnout změny názvu) nebo v kartě Commit. Používá se tento postup: * vyberete jeden nebo více :guilabel:`neverzovaných souborů` * na posuvníku nastavíte požadovanou pravděpodobnost hledané shody * zrušíte zatržení :guilabel:`Vzít v úvahu pouze smazané soubory` aby se hledání tykalo i kopií * stisknete :guilabel:`Nalézt změny jmen` * sledujete :guilabel:`Kandidáti shod` a akceptujete dobré shody * opakujete tak dlouho, dokud nejsou všem neverzovaným souborům nalezeny shody. Kandidáti shod -------------- Když v tomto seznamu vyberete shodu, rozdíly mezi vybranými soubory se zobrazí v dolním poli. Volbou :guilabel:`Accept Selected Matches` projevíte souhlas a změna se zapíše do análů Mercurialu. Spuštění z příkazového řádku ---------------------------- :: thg guess guess previous renames or copies use "thg -v help guess" to show global options .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/ignore.txt0000644000000000000000000000151114023111777017012 0ustar00rootrootSeznam ignorovaných souborů =========================== .. module:: ignore.dialog :synopsis: Dialog used to maintain the ignore filter .. figure:: figures/ignore.png :alt: Ignore filter dialog Seznam ignorovaných souborů `.hgignore` je uložen v repozitóriu. Tento ručně vytvořený soubor se edituje pomocí dialogového okna, které lze spustit z kontextové nabídky :guilabel:`TortoiseHg > Ignorované soubory...`. Přepínač :guilabel:`Glob` umožňuje přepínat mezi glob a regexp vzory. Tlačítkem `Přidat` potvrzujeme přidávanou položku seznamu, kterou zapíšeme do textového pole vlevo. Spuštění z příkazového řádku ----------------------------- :: thg hgignore [FILE] aliases: ignore, filter ignore filter editor use "thg -v help hgignore" to show global options .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/index.txt0000644000000000000000000000102614023111777016637 0ustar00rootroot .. TortoiseHg documentation master file, created by sphinx-quickstart on Tue May 15 13:14:26 2014. Poslední editace překladu 30. dubna 2014 Vítejte v dokumentaci pro TortoiseHg! ===================================== Contents: .. toctree:: :maxdepth: 3 :numbered: preface intro whatsnew quick daily settings patches extensions nonhg faq debugging Rejstříky a přehledy ==================== * :ref:`genindex` * :ref:`modindex` * :ref:`search` .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/init.txt0000644000000000000000000000304414023111777016475 0ustar00rootrootVytvoření nového repozitáře =========================== .. module:: init.dialog :synopsis: Dialog used to create a repository Pro vytvoření nového repozitáře použijeme dialog **Init**. V kontextové nabídce průzkumníka Windows vybereme :menuselection:`TortoiseHg... -> Vytvořit repozitář`. .. figure:: figures/init.png :alt: Init dialog Vytvoření nového repozitáře :guilabel:`Destinace` Určení repozitória v němž bude repozitář vytvořen. Textové pole je implicitně zaplněno názvem aktuálního adresáře, takže jej nemusíme měnit, pokud jsme okno otevřeli ze správného místa. Zadáme-li dosud neexistující název, vytvoří se repozitórium nové i s novým repozitářem. :guilabel:`Vytvořit specifické soubory (.hgignore, ...)` Při potvrzené volbě vytvoří TortoiseHg v pracovním adresáři prázdný soubor :file:`.hgignore` pro seznam ignorovaných souborů. . :guilabel:`Vytvořit repo kompatibilní s Mercurialem <1.7` Při potvrzené volbě vytvoří TortoiseHg starší formát repozitáře. Pokud pro to nemáme vážné důvody (a víme dobře co činíme), pak tuto volbu ignorujeme. .. warning:: Je nebezpečné ručně editovat soubory ve složce :file:`.hg`, neboť může dojít k poškození repozitáře. Výjimkou je konfigurační soubor :file:`.hg/hgrc`. Spuštění z příkazového řádku ---------------------------- :: thg init Skladba příkazu je:: thg init [DEST] kde [DEST] je cesta k repozitóriu, v němž má být repozitář vytvořen. .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/intro.txt0000644000000000000000000001255514023111777016674 0ustar00rootroot**** Úvod **** .. module:: introduction :synopsis: Introduce TortoiseHg and its various parts Co je TortoiseHg? ================= TortoiseHg je sada grafických nástrojů a extenzí uživatelského rozhraní programu `Mercurial `_ (`CzechMercurial `_) pro necentralizovanou (neboli distribuovanou) správu verzí. Ve Windows se TortoiseHg skládá z grafické aplikace Verpánek (Workbench), z extenze uživatelského rozhranní s překryvnými ikonami a kontextovým menu v Průzkumníku a z programu pro příkazový řádek :file:`thg.exe` který spouští nástroje TortoiseHg. Binární pakety aplikace TortoiseHg pro Windows obsahují Mercurial i slučovací nástroj a je proto možné je použít bezprostředně po instalaci. V Linuxu se TortoiseHg skládá ze skriptu thg pro příkazový řádek a z extenze Nautilusu, která poskytuje překryvné ikony a kontextové menu v průzkumíku souborů. Pro činnost TortoiseHg v Linuxu je potřebná oddělená instalace programu Mercurial. Binární pakety TortoiseHg znají Mercurial jako závislou aplikaci, která je obvykle instalována automaticky. .. note:: Ve Window obsahuje TortoiseHg jak thg.exe, tak thgw.exe. programy. Nástroj thgw.exe je zamýšlen pro použití v zástupci na ploše nebo v menu. Nástroj thg.exe je určen pro použití v konzoli a pro volání nápovědy z příkazového řádku. Dávkový soubor thg.cmd, který instalace přidá do proměnné PATH, volá thg.exe. TortoiseHg je napsán převážně v Pythonu a PyQt (extenze rozhraní Windows je významná výjimka). Skript thg a dialogy TortoiseHg lze použít na jakékoliv platformě, která podporuje PyQt, včetně Mac OS X. Instalace TortoiseHg ==================== Ve Windows ---------- TortoiseHg je dodáván se snadno ovladatelným instalačním programem. Aktuální verzi lze nalézt na naši `webové stránce `_. Dvojím poklepem na staženém souboru spustíme instalaci a sledujeme pokyny. Během aktualizací nás instalátor požádá, abychon zavřeli nebo restartovali všechny aplikace, které si načetly extenze rozhranní TorotiseHg. Pokud aplikace zavřeme, aktualizace nebude požadovat restart počítače. Jsou-li připojeni jiní uživatelé, nebo nelze-li některé aplikace zavřít, bude pro ukončení instalace požadován restart. .. note:: Máme-li nainstalovánu starší verzi TortoiseHg, požádá nás instalátor abychom ji odinstalovali. .. warning:: Starší instalační programy (<=0.9.3) mají tendenci při odinstalování smazat soubor Mercurial.ini. Je dobré si jej zálohovat před odinstalováním starších verzí TortoiseHg. Tento problém se nevyskytuje u novějších paketů MSI. Starší instalační programy (před verzí 1.0) byly vytvořeny s InnoSetup. Balíček TortoiseOverlay instalovaly jako separátní aplikaci, takže v ovládacím panelu *Přidat/Odebrat programy* jsme mohli vidět jak TortoiseHg, tak TortoiseOverlay. (U platforem x64 byly TortoiseOverlay dvakrát, jednou pro procesy x86 a jednou pro procesy x64). Nové instalátory pro THg obsahují pakety TortoiseOverlay jako "sloučené moduly", takže se již neobjevují jako separátní aplikace. Mohlo by být bezpečné odinstalovat starší aplikaci TortoiseOverlay nástrojem *Přidat/Odebrat programy* poté, co odinstalujeme starší TortoiseHg (<= 0.9.3) - pokud nemáme jiné produkty Tortoise (TortoiseCVS nebo TortoiseBZR), které TortoiseOverlay používají. .. note:: TortoiseOverlay je "shim" paket, který umožňuje sdílet překryvné sloty více extenzím rozhraní. To je nezbytné, protože i moderní platformy Windows podporují jenom omezený počet překryvných slotů (11-14). Pakety TortoiseOverlay vytvářejí vývojáři TortoiseSVN. Bezpečné jsou tyto dvě možnosti: 1. Ponecháme staré balíčky TortoiseOverlay nainstalovány, neboť ničemu neškodí. 2. Staré balíčky TortoiseOverlay odinstalujeme a přeinstalujeme všechny své produkty Tortoise. Pokud se i potom vyskytnou problémy s extenzí rozhraní, doporučujeme znovu spustit instalátor s volbou *Repair* (Opravit). Jazykové nastavení ^^^^^^^^^^^^^^^^^^ Uživatelské rozhraní TorotiseHg bylo přeloženo do mnoha jazyků. Jazykové balíčky nejsou potřebné, neboť všechny přeložené jazyky jsou nainstalované. Preferovaný jazyk lze nastavit v nástroji pro globální konfiguraci (:guilabel:`Settings > TortoiseHg > Jazyk aplikace`). Kontextové nabídky rozhraní Windows jsou překládány pomocí registrů Windows. Překlady pro mnohé lokalizace byly nainstalovány do složky :file:`C:\\Program Files\\TortoiseHg\\i18n\\cmenu`. Na vybraném jazyku proveďte dvojpoklep a potvrďte dotazy. V OS Linux a Mac ----------------- Nejposlednější pakety ke stažení pro Linux lze nalézt na našich `stránkách `_. Pro MacOSX nejsou žádné balíčky k disposici, ale je možné používat thg a všechny dialogy pomocí instalační metody. Podrobnosti viz `MacOSX `_. .. note:: Při instalaci TortoiseHg ze zdroje, je nutné nějakým způsobem přidat soubor :file:`contrib\\mergetools.rc` do cesty HGRC. Možný způsob je přidat jej ze souboru :file:`~/.hgrc`. .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/nautilus.txt0000644000000000000000000000177614023111777017410 0ustar00rootrootIntegrace s desktopem GNOME =========================== .. module:: nautilus :synopsis: GNOME desktop integration TortoiseHg umožňuje integraci konzoly s pracovní plochou GNOME prostřednictvím pluginu nautilus-python. Pokud jste instaloval TortoiseHg z instalačního paketu, pak nejspíš máte tuto extenzi již nastavenou. Pokud ne, pročtěte si pokyny na našich stránkách Wiki. Protože extenze nautilu nemá své vlastní GUI pro správu překryvných ikon a kontextových menu, podporuje povýšení příkazů do nejvyššího menu. Je zapotřebí upravit soubor :file:`~/hgrc` a přidat řádky, jako jsou tyto:: [tortoisehg] promoteditems = commit, log, synch .. figure:: figures/nautilus.png :alt: Nautilus screenshot GNOME/Nautilus screenshot Byť většinou užitečné, mohou překryvné ikony způsobit zpomalení výkonu u velkých repozitářů. Tuto funkci lze vyřadit úpravou konfiguračního souboru :file:`~/.hgrc`:: [tortoisehg] overlayicons = false .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/nonhg.txt0000644000000000000000000001572414023111777016653 0ustar00rootroot**************************** Použití s jinými systémy VCS **************************** .. module:: nonhg :synopsis: Describe using TortoiseHg as a front-end to other VCS Tato kapitola popisuje tři nejoblíbenější extenze Mercurialu pro spolupráci s *cizími* systémy VCS. Viz také `Konverze repozitáře `_. .. _perfarce-perforce: Perfarce (Perforce) =================== * `Perfarce `_ home page. * `Mercurial for Perforce users `_ Tato extenze upravuje obsluhu vzdáleného repozitáře tak, že cesta repozitáře, která připomíná:: p4://p4server[:port]/clientname způsobí operace na jmenované klientské specifikaci p4 na serveru p4. Klientská specifikace musí již na serveru existovat před použitím této extenze. Provádění změn u klienstské specifikace Views působí problémy při synchronizaci repozitářů a měli bychom se jim vyhnout. Extenze přepisuje pět vestavěných příkazů Mercurialu. outgoing (odchozí):: Začíná-li název destinace repozitáře p4://, potom jsou vybrány soubory ovlivněné revizemi lokálního repozitáře, nikoliv repozitáře v lokaci p4. push (poslat):: Začíná-li název destinace repozitáře p4://, potom jsou exportovány změny z lokálního repozitáře do lokace p4. Není-li určena žádná revize, potom jsou odeslány všechny změny od posledního výpisu změn p4. V obou případech jsou všechny revize, které mají být odeslány, shrnuty v jediném výpisu změn p4. Volitelně je výsledný changelist předán serveru p4 na základě opce --submit pro push nebo na základě nastavení **perfarce.submit** na True. Je-li **perfarce.keep** nastaveno na False potom se po úspěšném předání souborů smaže pracovní prostor p4. pull (stáhnout):: Začíná-li název zdrojového repozitáře p4://, potom jsou změny importovány z depotu p4, přičemž se automaticky slučují changelisty podané příkazem hg push. Je-li **perfarce.keep** nastaveno na False, potom se po úspěšném importu souborů smaže pracovní prostor p4; v opačném případě je pracovní prostor p4 novými soubory aktualizován. incoming (příchozí):: Začíná-li název zdrojového repozitáře p4://, potom jsou oznámeny změny v depotu p4, které dosud nejsou v lokálním repozitáři. clone:: Začíná-li název zdrojového repozitáře p4://, potom se vytvoří cílový repozitář a přetáhnou se do něho všechny změny z depotu p4. Nastavení konfigurační opce *perfarce.tags* určí, zda se perfarce pokusí importovat popisky (labels) Perforce jako tagy Mercurialu. **Integrace TortoiseHg** Je-li umožněna extenze perfarce, přidá se volba :guilabel:`start revision` do nástroje *klonovat* a tlačítko :guilabel:`P4` do synchronizační lišty. Tlačítko nástrojové lišty provádí operace "p4pending". Vyhledá nevyřízené (pending) seznamy změn (changelists) Perforce, které byly poslány (pushed) do vašeho klienta Perforce ale nebyly postoupeny (submitted) nebo staženy (pulled) zpět. Otevře se dialogové okno se seznamem nevyřízených změn, které můžeme buď postoupit (submit) nebo vrátit zpět (revert). Když se proceduře Perforce úkon submit nepodaří, protože vaše soubory jsou zastaralé, musíte zrušit (revert) seznam změn (changelist), provést pull z Perforce, sloučit a provést push znovu. **Instalace** Perfarce se dodává společně s instalátory TortoiseHg 1.0 pro Windows takže jej snadno zavedeme přidáním záznamu do souboru Mercurial.ini nebo do konfiguračního souboru hgrc repozitáře:: [extensions] perfarce= .. note:: Je známo, že extenze perfarce nepracuje spolu s extenzí hgsubversion, takže pokud zamýšlíte používat obě, měly by být povoleny lokálně pro ty repozitáře, které je potřebují. hgsubversion (SVN) ================== * `hgsubversion `_ home page * `hgsubversion Extension `_ wiki page * `Working with Subversion Repositories `_ hgsubversion, jak název napovídá, umožňuje použít Mercurial jako klientskou aplikaci pro server SVN. Lze jej také použít pro přímý převod repozitářů SVN do Mercurialu. **Instalace** Instalační program TotroiseHg pro Window až k vezi 3.3.3 obsahuje pojítka python-svn a hgsubversion. Uživatelé těchto verzí mohou extenzi hgsubversion povolit konfiguračním nástrojem nebo ručně v konfig souboru Mercurial.ini:: [extensions] hgsubversion = Funkčnost instalace si ověříme zadáním `hg help hgsubversion` Počínaje verzí TortoiseHg 3.4 jsou knihovny subversion a příslušná poutka pro SWIG Pythonu 2.7 z instalace odebrány. Důvodem byly primárně bezpečnostní problémy v knihovnách DLL pro subversion, nad nimiž nemají správci TortoiseHg žádnou kontrolu. Důvodem byla rovněž snaha vyhnout se potřebě přikládat ke každému vydání TortoiseHg další kompletní systém správy revizí - SVN. Pojítka (bindings) pro SWIG Pythonu jsou nyní k disposici jako samostatný download. Pokyny pro stažení a použití těchto poutek jsou dostupné na `Subversion bindings for Python 2.7`_. .. _Subversion bindings for Python 2.7: https://bitbucket.org/tortoisehg/thg/wiki/libsvn Viz hgsubversion wiki. Doporučujeme verzi hgsvn alespoň 1.2.1 s Mercurialem 1.8. .. warning:: Při klonování serveru pro Subversion se doporučuje klonovat pouze několik prvních revizí a ostatní stáhnout akcí pull. Chování příkazu clone je nastaveno tak, že se při neúspěšném provedeni neúplný klon smaže, zatímco realizace příkazu pull je mnohem tolerantnější. *Integrace TortoiseHg* Importované changesety Subversion zobrazí původní číslo changesetu na kartě Podrobnosti revizí ve Verpánku. hg-git (git) ============ * `hg-git `_ home page * `hg-git Extension `_ wiki page * `Mercurial for Git users `_ hg-git, jak název naznačuje, nám umožní použít Mercurial jako klientskou aplikaci pro server git. Lze jej použít také pro přímý převod repozitáře Git do Mercurialu. *Instalace* Instalační programy TortoiseHg pro Windows obsahují pojítka (bindings) python-git (zvaná dulwich) a hg-git. Je možné je povolit nástrojem Settings nebo ručně:: [extensions] hggit = Úspěšnost nastavení lze ověřit příkazem :command:`hg help hggit`. Podrobnosti viz dokumentace hggit. Vězte, že příkazy 'incoming' a 'outgoing' nepracují vždy spolehlivě při komunikaci s gitovými repozitáři. Jste tedy odkázán na jednoduché příkazy 'pull' a 'push', což je společné Mercurialovým extenzím, které komunikují s externími nástroji správy verzí. .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/patches.txt0000644000000000000000000001622614023111777017167 0ustar00rootroot******* Oprávky ******* .. module:: patches :synopsis: Describe patch operations Definice oprávky ================ Pro pochopení historie a povahy oprávek (patches) a jejich použití v Mercurialu je důležitá četba následujících odkazů (žel, v angličtině). * `Problém správy oprávek `_ * `Pochopení oprávek `_ * `Více o oprávkách `_ Úskalí ====== Standardní formát oprávky neumí popsat binární soubory, přejmenování souborů nebo změnu povolení. Potřebujete-li cokoliv z uvedeného zachytit, musíme povolit oprávky **git** zadáním:: [diff] git=True Mercurial 1.5 své chování v tomto směru vylepšuje. Vydá upozornění, když jsou potřebné diffy git nebo se někdy do formágu git nastaví automaticky - `diff section `_. Oprávkové rutiny Mercurialu nezacházejí dobře s různými EOLN u zdrojových kódů a u oprávek. Pro zlepšení situace bylo v 1.3 zavedeno nastavení **patch.eol**:: [patch] eol = auto #strict, lf, or crlf .. note:: Je-li EOL nastaveno na *auto*, zachová oprávková rutina konce řádků zdrojového kódu bez ohledu na jejich ukončení v oprávce samé. Nastavení na *auto* použijeme ve většině případů. Nevýhodou tohoto nastavení je, že nemůžete provést oprávku, která mění ukončení řádků oproti zdrojovému souboru. Viz také `patch section `_ dokumentace hgrc. Aplikace oprávky není 'omyluvzdorná' operace. Pokud se zdrojový soubor odchýlil od souboru, použitého pro vytvoření oprávky, mohou při její aplikaci vzniknout konflikty. Tyto se pak zapisují do souboru s příponou .rej. TortoiseHg obsahuje příkaz :command:`thg rejects`, který může pomoci při slučování odmítnutých porcí (chunks) do zdrojového souboru. Export oprávek ============== Changeset --------- Pro export changesetu jako oprávkového souboru použijete kontextovou nabídku pro vybranou revizi ve Verpánku :menuselection:`Export > Export patch...`. Procedura zapíše changeset do souboru v kořenovém adresáři repozitáře. Rozsahy changesetů ------------------ Vyberte začátek a konec rozsahu changesetů ve Verpánku a otevřete speciální kontextové menu pro rozsah revizí. Z tohoto menu můžete generovat oprávky, svazky, poslat email nebo zobrazit diffy nahromaděných změn. Toto je velmi účinná procedura bez omezení pro vybírané bázové a cílové changesety. Email ----- .. figure:: figures/email.png :alt: Email dialog Pro odeslání vybraného changesetu ve Verpánku jako emailu použijete kontextové menu :menuselection:`Exportovat > Email oprávky...`. Volba otevře okno pro odeslání vybraného changesetu. Pro odeslání rozsahu changesetů použijete výše popsaný způsob výběru a zvolíte :menuselection:`Email selected...` nebo :menuselection:`Email DAG range...` Konečně lze pro odeslání všech odchozích změn do vybraného vzdáleného repozitáře použít tlačítko :guilabel:`Email` v synchronizační liště úkonové karty Synchronizovat. .. note:: Pro posílání oprávek emailem nutno nastavit `SMTP `_ Import oprávek ============== .. figure:: figures/import.png :alt: Import tool Dialog pro import oprávky lze otevřít v menu :guilabel:`Repoziář` nebo prostřednictvím příkazu :command:`thg import`. Dialog podporuje přemisťování souborů a adresářů metodou drag and drop. Můžete importovat přímo do repozitáře, pracovního adresáře, shelfového souboru nebo do své fronty oprávek. .. note:: Import oprávky vyžaduje čistý stav pracovního adresáře. Před importem oprávky musíte provést commit, revert, nebo odložení (shelve) změn. .. note:: Když se nedaří importovat oprávku čistě do repozitáře, doporučuje se importovat oprávku do fronty oprávek (qimport) a potom provést qpush. Tato procedura používá "patch rejection" dialog a zachovává meta-date v záhlaví oprávky. Nezapomeňte provést qrefresh po rozřešení odmítnutých porcí (chunks). .. warning:: Pokud importovaná oprávka nemá zprávu komitu, pokusí se Mercurial spustit váš editor, stejně jako kdyby jste se pokoušel importovat oprávku z příkazového řádku. Pro zdárný průběh akce je zapotřebí, aby váš UI editor byla aplikace GUI. Fronty oprávek ============== Je-li povolena extenze MQ, aktivuje se několik dalších procedur Verpánku. Je k dispozici rozšířená nabídka kontextového menu v přehledu revizí, kde je přítomnost oprávek graficky vyjádřena tvarem uzlů grafu DAG. .. figure:: figures/patch-repograph.png :alt: Patch Queue Fronta oprávek v Přehledu revizí Lze otevřít přemistitelný panel Fronta oprávek (Patch Queue), kde lze nastavit či zrušit 'aplikovanost' oprávky, smazat vybranou oprávku nebo zadat guard. .. figure:: figures/patchqueue.png :alt: Patch Queue Dvojí poklep na neaplikované oprávce, aplikované oprávce jiné než qtip nebo qparent spouští příkaz *qgoto*; poklepnutá revize se stává aktuální oprávkou. Dvojí poklep na kterékoliv jiné revizi spustí zobrazení jejího diffu. .. note:: Po povolení nebo zapovězení extenze MQ v repozitáři je nutné restartovat Workbench. To platí pro většinu extenzí. .. note:: Je vřele doporučováno seznámit se s extenzí MQ před jejím používáním ve Verpánku. .. versionchanged:: 2.10 Karta :guilabel:`Patch Queue` byla nahrazena kartou :guilabel:`Commit` a přemistitelným panelem :guilabel:`Patch Queue`. Odmítnuté oprávky ================= Jak bylo již dříve poznamenáno, u oprávek není zaručeno, že se čistě aplikují na zamýšlené zdrojové soubory. Při odmítnutí porcí oprávek bylo před TortoiseHg 2.0 jedinou možností otevřít zdrojový a odmítnutý soubor v editoru a ručně uspořádat odmítnuté porce. TortoiseHg 2.0 zavádí dialog, který tuto činnost trochu ulehčuje. Když odkládací (shelve) nástroj rozpozná odmítnutí porcí (chunks), otevře tyto porce ve zvlášním editoru. Totéž činí nástroj MQ pro příkazy qpush. .. figure:: figures/rejects.png :alt: Patch Rejects Editor Resolve rejected patch chunks Editor odmítnutých porcí je poměrně primitivní. Zdrojový soubor je otevřen pro editování v okně QScintilla2. Pod zdrojovým souborem je seznam porcí, které se nepodařilo na tento soubor aplikovat. Poklepete-li na porci v seznamu, přeskočí editor na řádek, kde se očekává shoda kontextu porce. Uživatel musí určit proč se porce nepoužila a řešit to (možná i ignorováním porce). Stavy resolved / unresolved jsou evidovány, takže lze kdykoliv zjistit, kdy se s porcemi pracovalo. Jakmile označíte všechny porce jako rozřešené (resolved), stane se tlačítko :guilabel:`Save` sensitivní. .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/preface.txt0000644000000000000000000001134414023111777017141 0ustar00rootroot********* Předmluva ********* .. module:: preface :synopsis: About this manual Cílový čtenář ============== Tato kniha je napsána pro "informovaného" uživatele, který chce používat Mercurial pro správu svých dat a vyhovuje mu, není-li pro komunikaci s programem omezen pouze na příkazový řádek. TortoiseHg je extenze uživatelského rozhraní Windows. Nejaktuálnější verzi této dokumentace lze nalézt na `webových `_ stránkách TortoiseHg. Seznámení s obsahem ==================== V kapitole :doc:`intro` se seznámíme s instalací programu a s nastavením jeho jazykové verze. Kapitola :doc:`quick` je stručným návodem na užívání programu. Hlavní kapitola :doc:`daily` zevrubně popisuje často používané nástroje programu. Kapitola :doc:`settings` popisuje konfiguraci TortoiseHg. Kapitola :doc:`nonhg` popisuje použití TortoiseHg jako klientskou aplikaci pro nemercurialové servery. Kapitola :doc:`faq` obsahuje seznam otázek a odpovědí - nepřeloženo. Kapitola :doc:`debugging` popisuje řešení možných problémů. TortoiseHg je volně dostupný program! ===================================== TortoiseHg je šířen ve shodě s licenčními podmínkami `GPLv2 `_. Lze jej instalovat na neomezené množství počítačů a šířit ve shodě s licencí GPLv2. Komunita ======== `Developers `_ - Patches, bug reports, development discussions. Naše Wiki na stránkách Bitbucket je `zde `_ . Poděkování ========== Dík všem, kteří do projektu TortoiseHg přispívají. Pro vybudování skutečně použitelné aplikace je potřebný kolektiv vývojářů, překladatelů a uživatelů. Dík patří zejména těm uživatelům, kteří nelenují oznámit chybu nebo se podělit o svůj názor. Instalátor TortoiseHg pro Windows obsahuje ovladač TortoiseOverlays, převzatý z projektu `TortoiseSVN `_. Prohlížeč historie v TortoiseHg je založen na aplikaci `hgview `_, kterou vytvořil David Douard s kolektivem s finanční podporou `Logilab `_. Konvence použité v textu ======================== V návodu jsou používány následující typografické konvence: :kbd:`Ctrl-A` Označuje klávesu nebo kombinaci kláves, které mají být stisknuty. :guilabel:`Commit` Označuje popisek, tlačítko či cokoli, co uvidíme v uživatelském rozhraní. :menuselection:`TortoiseHg --> About` Označuje výběr položky z menu nebo kombinaci položek z menu, výběr karty nebo GUI popisku. Například pořadí :menuselection:`TortoiseHg --> Globální nastavení --> Commit --> Jméno uživatele` nám říká abychom něco zadali v textovém poli :guilabel:`Jméno uživatele`, které se nachází na záložce :guilabel:`Commit`, jíž vybereme z nabídky :menuselection:`TortoiseHg --> Globální nastavení`. :file:`.hg/hgrc` Označuje jméno adresáře a souboru. :command:`hg log` Označuje příkaz jež má být zadán na příkazové řádce terminálu (např. cmd.exe). ``myproxy:8000`` Označuje text, který má být zadán do textového pole grafického rozhraní. .. note:: Toto je poznámka. .. warning:: Důležitá poznámka nebo varování. Poznámky překladatele ===================== Program TortoiseHg lze aktivovat buď jako kontextové menu v Průzkumníku Windows nebo jej lze volat příkazem :command:`thg ` z konzoly cmd.exe. U příkazů pro thg se nelze vyhnout anglickým termínům. Rovněž příkazy Mercurialu :command:`hg ` lze zadat pouze v anglickém jazyce. Z toho vyplývá, že bez znalosti jistého množství anglických slov se při používání TortoiseHg nelze obejít. Proto mnohá slova v manuálu i v lokalizaci nepřekládám. Slova Workbench překládám jako Verpánek, patch jako oprávka, hunk jako porce, rebase jako přeskupení, graft jako přesazení, collapse jako shluknout, ... Považuji za vhodné vymezit význam slova pracovní adresář. :strong:`Pracovní adresář` je pomyslná složka, která svůj obsah odvozuje z aktuálně nastavené aktuální revize. Kořenový adresář projeku, který obsahuje složku s názvem :strong:`.hg` neboli :strong:`repozitář` je rovněž dynamický útvar a v tomto textu bude označován jako :strong:`repozitórium`. Pro každou revizi může mít repozitórium jiné složení souborů! Nutno dodat, že pojem :emphasis:`repozitář` se často (nepřesně) používá i pro :emphasis:`repozitórium`. Termíny changeset a revize jsou prakticky zaměnitelné. Případné připomínky vítám: tovim@seznam.cz .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/quick.txt0000644000000000000000000003221514023111777016650 0ustar00rootroot**************************** Rychlá cesta pro netrpělivé **************************** .. module:: tour :synopsis: A Gentle Introduction to Using TortoiseHg on Windows Jak už bylo řečeno, TortoiseHg je sada grafických aplikací, které spolu s Průzkumníkem Windows slouží jako uživatelsky přívětivé rozhranní pro DVCS Mercurialu (distributed version control system - necentralizovaný systém správy verzí). Všechny nástroje TortoiseHg jsou přístupné ze třech míst: 1. Z aplikace **Verpánek** Verpánek (Workbench) spustíme z menu Start nebo z kontextového menu aktivovaného poklepem pravé klávesy myši s kurzorem kdekoli v ploše monitoru. .. figure:: figures/desktop-workbench.png :alt: Desktop Context Menu Spuštění Verpánku z plochy monitoru 2. Z kontextového menu **Explorer** Na vybrané složce či souboru v Průzkumníku provedeme pravý poklep a vybereme položku z kontextového menu. 3. Příkazem **thg** z příkazového řádku V konzoli cmd.exe či v jiném terminálu zadáme příkaz :command:`thg [opce]`. Příkazy Mercurialu jsou dostupné také z příkazového řádku příkazem :command:`hg `. .. note:: Při zadávání příkazu z příkazového řádku se předpokládá, že repozitórium je aktuálním adresářem příkazové konzoly. Nastavení programu ================== Nejprve se musíme do programu TortoiseHg řádně zapsat. Uděláme to tak, že otevřeme dialog pro globální nastavení. Verpánek: :menuselection: `File > Settings` Průzkumník: :menuselection: `TortoiseHg > Globální nastavení` Příkazem: **thg userconfig** Tím si otevřeme dialogové okno Nastavení TortoiseHg pro úpravu globální konfigurace platné pro všechny repozitáře. .. figure:: figures/settings.png :alt: Settings Dialog Okno TortoiseHg Settings Nejprve vybereme kartu :guilabel:`Commit` a zadáme jméno v poli :guilabel:`Jméno uživatele`. .. note:: Pokud nezadáme uživatelské jméno nyní, budeme na něj tázáni později, až poprvé použijeme příkaz ``commit``. .. note:: Pro formátování uživatelského jména není pevné pravidlo ale obvykle se používá následující forma:: Celé Jméno například :: Donald Duck Emailová adresa je při prohlížení změn odtržena a vestavěný webový server emailovou adresu zakryje v rámci prevence proti spamu. Dále vybereme katru :guilabel:`TortoiseHg` a v ní :guilabel:`Nástroj pro sloučení`. V rozvinovacím seznamu nalezneme všechny slučovací nástroje nalezené v programovém vybavení počítače (kdiff3 je poskytnut instalátorem pro Windows) a řadu interních způsobů sloučení. Vybereme si oblíbený nástroj pro slučování. Pokud chceme, aby TortoiseHg používal námi vybraný slučovací nástroj také pro zobrazení diffů, necháme položku :guilabel:`Nástroj pro sloučení` neurčenu. Jinak si v rozvinovacím seznamu vybereme z nabízených nástrojů. Pokud nám v uvedených položkách není nabídnuta žádná volba, musíme instalovat nástroj, který je podporován v mergetools.rc nebo si nakonfigurovat nástroj vlastní. .. note:: Při instalaci TortoiseHg ze zdroje, je nutné nějakým způsobem přidat soubor :kbd:`contrib/mergetools.ini` do cesty HGRC. Možný způsob je připojit jej ze souboru :kbd:`~/.hgrc`. Neostýchejte se konfigurovat i další položky globálního nastavení. Budeme je moci později přepsat v lokální konfiguraci repozitáře. Nastavené změny potvrdíme a okno zavřeme tlačítkem :command:`OK`. .. note:: Většina změn nastavení TortoiseHg se projeví okamžitě ale povolení nebo zakázání extenzí obvykle vyžadují restart. Status souboru ============== Soubory, obsluhované Mercurialem, mají různý vztah k zapisované historii. Tento vztah je vyjádřen jako *status* souboru příslušným označením: * A (added) přidaný do komitu - příkazem *hg add* * M (modified) změněný * I (ignored) ignorovaný, uvedený v seznamu *.hgignore* * ! (missing) postrádaný, většinou ručně smazaný * R (removed) odebraný - příkazem *hg remove* * ? (unknown) neznámý, přidaný do repozitória ručně * C (clean) čistý, beze změn Vytvoření repozitória a repozitáře ================================== Jak bylo již uvedeno v Předmluvě (odst. 1.7), budeme z didaktických důvodů rozlišovat mezi repozitářem a repozitóriem. Za repozitář budeme považovat složku .hg, za repozitórium její kořenový adresář. Repozitórium můžeme vytvořit z existující složky, kde umístíme repozitář, nebo vytvoříme složku repozitória i repozitáře současně. Můžeme si vybrat jeden ze tří způsobů: Verpánek: :menuselection:`File > Nový repozitář...` Průzkumník: :menuselection:`TortoiseHg > Vytvořit repozitář` z kontextového menu Příkaz: :command:`thg init` .. figure:: figures/init.png :alt: Repository Init dialog Dialogové okno pro vytvoření repozitáře či repozitória Je dobré ponechat volbu :guilabel:`Vytvořit specifické soubory (.hgignore, ...)` zatrženou a nezatrhávat :guilabel:`Vytvořit repozitář kompatibilní s Mercurialem < 1.7` pokud k tomu nemáme pádný důvod. Po stisku tlačítka :guilabel:`Vytvořit`, vytvoří Mercurial v našem repozitóriu složku repozitáře :file:`.hg`. Zde si program ukládá všechna verzovaná data. Se složkou :file:`.hg` nikdy přímo nepracujeme. Při zadávání příkazů se odkazujeme na repozitórium. Nové repozitórium se také přidá do Seznamu repozitářů , pokud tuto operaci provedeme z Verpánku. Nezařazená repozitória můžete přidat do Seznamu repozitářů výběrem :menuselection:`File > Otevřít repozitář...` nebo je můžete přetáhnout z Průzkumníka. .. note:: Mezi právě aktuálními revizemi a repozitóriem existuje tajemná symbióza. Jak později poznáme, mění se obsah repozitória podle aktuálně nastavené revize. Ponecháme-li aktuální starší revizi, můžeme případné nověji přidané soubory v Průzkumníku Windows (tedy v repozitóriu) nevidět! .. warning:: Ručně editovat soubory ve složce :file:`.hg` je nebezpečné, může dojít k poškození repozitáře. Jedinou výjimkou je konfigurační soubor :file:`.hg/hgrc`. Přidávání souborů ================= Nyní je třeba aplikaci Mercurial sdělit, které soubory mají být sledovány. Lze to provést více způsoby: 1. Verpánek: ikonou :menuselection:`Commit` otevřeme úkonovou kartu, pravým poklepem zvýrazníme vybraný soubor a z kontextového menu vybereme :menuselection:`Add` . To změní status souboru na 'A' a po zatržení nabídky barva názvu zezelená. 2. Explorer: vybereme :menuselection:`TortoiseHg > Přidat soubory...` v kontextovém menu vybraného souboru. Otevře se okno pro zadání výběru a potvrzení operace :menuselection:`add`. Stejným způsobem lze vybrat nabídku :menuselection:`TortoiseHg > Status souboru`. V otevřeném dialogovém okně můžeme vybrat zamýšlené soubory. 3. Příkazem: :command:`thg status` 4. Přidávání souborů v samostatném kroku můžeme přeskočit a přidat je implicitně v rámci příkazu :menuselection:`TortoiseHg > Commit...`. Otevře se podobné dialogové okno jako u volby :menuselection:`Status souboru`. Vybereme zařazovaný, dosud nesledovaný soubor a volbu potvrdíme tlačítkem :guilabel:`Commit`. Ignorování souborů ================== Ve svých repozitóriích můžeme mít z různých důvodů soubory, jež nechceme sledovat. Tyto soubory lze označit jako ignorované a to rovněž několika způsoby. 1. Verpánek: aktivujte panel Commit, na zvýrazněném souboru vyvolejte kontextové menu a vyberte :menuselection:`Ignorovat...`. 2. Explorer: vyberte :menuselection:`TortoiseHg > Ignorované soubory` 3. Příkazem :command:`thg hgignore` otevřeme dialogové okno pro filtrování souborů. Pro vybraný soubor určíte druh filtru (`Glob` nebo `Regexp`) a zadáte :command:`Přidat`. Změny filtru :guilabel:`ignore` se projeví okamžitě. .. note:: Soubor :file:`.hgignore`, obsažený repozitóriu, je normálně sledován (checked in). .. note:: Je dobré, nemít v repozitóriu mnoho `neznámých` souborů, protože se potom snadno zapomene přidat důležité nové soubory. Doporučuje se udržovat soubor :file:`.hgignore` v aktuálním stavu. Commit ====== Předání změn do repozitáře provedete následujícím způsobem: Verpánek: Poklepem na pracovní adresář se otevře panel pro předání změn (commit), případně tento panel můžete aktivovat výběrem ikony s `fajfkou`. Explorer: Pravým poklepem kdekoliv ve složce otevřete kontextové menu a vyberete dialogové okno :menuselection:`TortoiseHg > Commit...`. Příkaz: :command:`thg commit` Napíšete předávací zprávu, vyberete soubory, které chcete předat a přikážete :guilabel:`Commit`. Předchozí předávací zpráva bude uvedena v roletkovém seznamu; v případě potřeby ji lze s úpravou použít. .. figure:: figures/commit.png :alt: Commit dialog Zadávací okno TortoiseHg > Commit Sdílení repozitářů ================== Mercurial podporuje mnoho různých `modelů spolupráce `_. Tento odstavec popisuje pouze jeden z nich: model s centrálním repozitářem. Na místě, kam mají přístup všichni členové skupiny se vytvoří centrální repozitář, kam všichni posílají své změny, přičemž jeden člen kolektivu má za úkol na tento repozitář dohlížet. Tento centrální repozitář může vzniknout jako nový repozitář nebo jako kopie (klon) již někde jinde vytvořeného repozitáře. *Klonování repozitáře* lze provést trojím způsobem: Verpánek: Z menu vyberete :menuselection:`File > Klonovat repozitář...` Explorer: Z kontextového menu vyberete :menuselection:`TortoiseHg > Klonovat...` Příkaz: :command::`thg clone`. Potom zadáte cestu k destinaci a zavelíte :command:`Klonovat`. .. figure:: figures/clone.png :alt: Clone dialog Okno akce Clone Vytváříte-li *centrální repozitář* klonováním, potom nemusíte kopírovat celý obsah repozitória. Zatržením volby :guilabel:`Neaktualizovat nový pracovní adresář` zajistíte kopírování pouze složky :file:`.hg`, která obsahuje úplný přehled revizí projektu. Další členové skupiny si tento centrální repozitář naklonují již s nezatrženou volbou :guilabel:`Neaktualizovat nový pracovní adresář`. Tím si do svého lokálního repozitoria přenesou i pracovní soubory. Klonováním vzniká příbuzenský vztah mezi repozitáři. Akce *pull* a *commit* lze provádět pouze mezi příbuznými repozitáři. Příbuzný repozitář na jiném počítači je repozitář vzdálený (remote). Práce s repozitářem =================== Předpokládejme, že jste provedl nějaké změny. Zda máte v (pomyslném) pracovním adresáři nepředané (nekomitované) změny zjistíte snadno: **Verpánek**: V panelu úlohy Commit prohlédneme seznam souborů na levé straně. Šifry **A** (přidaný - zelená) a **M** (upravený - modrá) označují soubory, které lze komitovat přímo. Soubory označené **?** (neznámý - fialková), **!** (postrádaný - červená) či **R** (odebraný - červená) nutno nejprve přidat či vrátit do sledování. Spodní pole vpravo karty Commit vám zobrazí i změny v jednotlivých souborech nebo můžete použít svůj nástroj pro zobrazování rozdílů (kdiff3). V Mercurialu lze provést řadu komitů předtím, než se rozhodnete pro sdílení svých změn s repozitářem centrálním. **Explorer**: Složky a soubory vašeho repozitória jsou označeny jednou z překryvných ikon. Ty vám napoví, v jakém stavu se ten či onen soubor nebo složka nachází. .. figure:: figures/overlayicons.png :alt: Overlay Icons Překryvné ikony **Příkazový řádek**: Příkazem :command:`thg commit` vyvoláte dialogové okno. Jste-li připraven zveřejnit své změny, provedete následující: 1. Předáte změny do svého lokálního repozitáře (provedete komit). 2. Aktivujete kartu pro synchronizaci, vyberete cestu k centrálnímu repozitáři a stisknete tlačítko :guilabel:`Pull`, čímž vydáte příkaz ke stažení možných změn z tohoto repozitáře. 3. Byly-li nějaké changesety staženy, provedete jejich případné sloučení s vašimi lokálními změnami a provedete jejich komit do repozitáře. V přehledu changesetů zviditelníte ten, se kterým chcete sloučení provést, aktivujete kontextové menu a vyberete :guilabel:`Merge with local...`. V dialogovém okně pro sloučení stisknete :command:`Sloučit` (merge) a posléze :command:`Commit`. 4. Sloučenou práci prověříte svým testovacím postupem. 5. V kartě pro synchronizaci vyberete cestu k centrálnímu repozitáři a pošlete do něho své změny tlačítkem :command:`Push`. .. note:: Sloučení lze bezpečně v případě potřeby opakovat. Spolupráce prostřednictvím Mercurialu je snadná, rychlá a produktivní. Více o Mercurialu na jeho stránkách `wiki `_. .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/serve.txt0000644000000000000000000000370114023111777016656 0ustar00rootrootServe ===== Mercurial poskytuje vestavěný, úsporný server, který je schopný zprostředkovat jedno spojení pro jeden repozitář. Server neprovádí ověření uživatele ale nabízí vhodnou, ad-hoc metodu pro synchronizaci repozitářů v rámci lokální sítě. Bližší informaci o publikování repozitářů lze nalézt v článku `Publishing Repositories `_. Spuštění z TortoiseHg --------------------- .. module:: serve.dialog :synopsis: Dialog used to start/stop the web server .. figure:: figures/serve.png :alt: Web server dialog Nástroj Serve je prostředníkem pro vestavěný webový server Mercurialu. Jakmile je spuštěn, může se počítač připojit k portu http a procházet vašimi repozitáři, provádět úkony clone, pull, či dokonce push, pokud to konfigurace vašeho serveru dovoluje. Webový server může být spuštěn buď z Verpánku - Repozitář > **Web Server** nebo z kontextové nabídky Exploreru - TortoiseHg > **Webový server**. Tlačítka nástrojové lišty: :guilabel:`Spustit` spustit webový server :guilabel:`Zastavit` zavřít webový server :guilabel:`Nastavit` otevře kartu Server nástroje Settings Je-li konfigurační dialog spuštěn prostřednictvím tlačítka :guilabel:`Configure`, je spuštěn pro aktuální repozitář. Navštivte prosím wiki stránky Mercurialu pro podrobný popis různých konfigurací webu. Nástroj serve v TortoiseHg 2.0 nativně podporuje kolekci lokálních repozitářů. Jednoduše je přetáhnete v dialogovém okně "serve", nebo je přidáte ručně s použitím editovacích tlačítek. Kolekci repozitářů lze uložit a znovu načíst. Spuštění z příkazového řádku ---------------------------- :: thg serve [OPTION]... start stand-alone webserver options: --webdir-conf name of the webdir config file use "thg -v help serve" to show global options .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/settings.txt0000644000000000000000000005513114023111777017376 0ustar00rootroot******************* Nastavení parametrů ******************* .. module:: settings.dialog :synopsis: Dialog used to set preferences .. figure:: figures/settings.png :alt: Settings dialog Nástroj **Settings** se používá pro konfiguraci jak TortoiseHg, tak Mercurialu, protože TortoiseHg je vlastně uživatelská obálka programu Mercurial. Mercurial ve Windows má tři konfigurační úrovně. 1) Nastavení pro počítač v souboru :file:`C:\\Program Files\\TortoiseHg\\Mercurial.ini` Tento soubor je čten jako první a má nejnižší prioritu. 2) Nastavení pro uživatele v souboru :file:`C:\\Documents and Settings\\username\\mercurial.ini` Tento soubor je čten jako druhý a může přepsat parametry nastavení pro počítač. 3) Nastavení pro repozitář v souboru :file:`repozitórium\\.hg\\hgrc`. Tento soubor je čten jako poslední a má tudíž nejvyšší prioritu. Nastavení pro počítač může být přepsáno při aktualizaci programu, takže se doporučuje provádět změny jen v souborech :file:`..username\\mercurial.ini` a/nebo :file:`.hg\\hgrc`. V TortoiseHg je toto doporučení posíleno tím, že se používají jen dvě úrovně nastavení: Globální nastavení uživatele edituje nastavení pro uživatele :file:`..username\\mercurial.ini` Nastavení repozitáře edituje nastavení pro repozitář :file:`.hg/hgrc` Mezi těmito režimy lze přepínat výběrovými tlačítky vlevo nahoře v kartě Settings. Většina uživatelů TortoiseHg si všechny nastavitelné parametry uloží v globálním nastavení a soubor hgrc v repozitáři použije pro uložení cest (aliasy pro vzdálené repozitáře) a konfiguraci webu. Vězme, že soubory pro tato nastavení neexistují dříve, než poprvé použijeme dialog Nastavení. Karty ===== Nástroj pro konfiguraci programu se skládá z přehledně uspořádaných karet. Každá karta přibližně odpovídá jedné sekci vašeho konfiguračního souboru :file:`Mercurial.ini`. Některé sekce však byly kvůli přehlednosti rozděleny do více karet. Všechny karty kromě :guilabel:`Extenze, Nástroje, Hooks` mají stejný formát - sloupec nastavitelných parametrů s rozbalovacími seznamy možných hodnot. Názvy parametrů jsou doplněny skrytými popisy parametru a jeho možných hodnot. Popis aktuálně editovaného parametru se rovněž objeví v textovém rámečku dole. Podrobnější informaci o nastavitelných parametrech nalezneme na stránkách wiki pro Mercurial, kromě těch karet, které jsou specifické pro TortoiseHg: :guilabel:`TortoiseHg`, :guilabel:`Commit`, :guilabel:`Changelog`. .. module:: TortoiseHg.settings :synopsis: Dialog used to set general TortoiseHg preferences TortoiseHg ---------- :guilabel:`Jazyk aplikace` Jazyk pro kontrolu pravopisu. Není-li určeno, použije se systémový jazyk. Například: en, en_GB, en_US. :guilabel:`Nástroj pro sloučení:` Grafický program pro řešení konfliktů při slučování. Pokud není určen, vybere Mercurial první použitelný nástroj, který nalezne v našem systému, nebo použije vlastní nástroj, který konflikty jenom označí. Tuto poslední možnost lze přikázat výběrem :guilabel:`internal:merge`. Volba:guilabel:`internal:prompt` vždy vybere lokální nástroj a volba guilabel:`internal:dump` ponechá soubory v pracovním adresáři pro ruční sloučení. :guilabel:`Nástroj Visual Diff:` Určit externí program pro porovnávání diffů (příkaz extdiff) :guilabel:`CLI editor:` Editor, který Mercurial použije pro více řádkový vstup od uživatele, což jsou zejména zprávy komitů. :guilabel:`Terminál:` Vybrat příkaz ke spuštění oblíbené konzoly. Pokud hodnota obsahuje řetězec ``%(reponame)s``, bude za něj dosazen název repozitáře. Podobně ``%(root)s`` bude obsahovat úplnou cestu k repozitáři (potřebný restart). Implicitně ve Windows: ``cmd.exe /K title %(reponame)s`` Implicitně v OS X: neurčeno Implicitně v ostatních: ``xterm -T "%(reponame)s"`` :guilabel:`Následné operace:` Mezerami vymezený seznam operací konzoly, které se mají okamžitě provést bez součinnosti uživatele. Příkazy jsou "add remove revert forget". Implicitně: None (leave blank) :guilabel:`Šířka ouška karty:` Určit počet míst na která se roztáhnou ouška karet v různých oknech TortoiseHg. Implicitně je 'neurčeno'. :guilabel:`Zobrazit karty:` Zobrazit repozitář v kartě, i když je jediný. Implicitně je False. :guilabel:`Sledovat změny repozitáře:` Určit kategorii souborů, u kterých TortoiseHg monitoruje změny. Implicitně je vždy. :guilabel:`Max velikost diffu:` Maximální velikost souboru (v KB) pro zobrazení změn v oknech pro changelog, status a commit. Nulová hodnota je pro nastavení bez limitu. Implicitně je 1024 (1MB). :guilabel:`Rozdělit GUI:` Při spuštění příkazu z příkazového řádku spustit proces na pozadí pro zobrazení grafických dialogů. :guilabel:`Název úplné cesty:` Zobrazit celou cestu k adresáři repozitáře v záhlaví okna místo pouhého jména adresáře. Implicitně je False. :guilabel:`Automatické sloučení:` Určuje, zda se má TortoiseHg pokusit automaticky řešit změny z obou stran téhož souboru a hlásit slučovací konflikty jen tehdy, pokud to není možné. Při nastavení False jsou všechny soubory s oboustrannými změnami hlášeny jako konfliktní i když jde o změny v různých místech souboru. V každém případě je při výskytu konfliktu uživatel vyzván aby prohlédl a řešil změny manuelně. Implicitně je True. :guilabel:`Nový skelet repozitáře:` Je-li určeno, jsou soubory v adresáři (např. ``.hgignore``) kopírovány do nově vytvořeného adresáře. .. module:: workbench.settings :synopsis: Dialog used to set workbench specific preferences Verpánek -------- :guilabel:`Jediné okno Verpánku:` Není-li tato volba povolena, otevře se nový Verpánek pokaždé, když z kontextového menu vyberete "Hg Verpánek". :guilabel:`Počáteční widget:` Nastavený widget se ukáže při otevření repozitáře. Implicitně: revdetails :guilabel:`Počáteční revize:` Uvedená revize bude vybrána při otevření repozitáře. Můžete vybrat "current" (to jest rodiče pracovního adresáře), aktuální "tip" nebo pracovní adresář (workingdir). Implicitně: current :guilabel:`Otevřít nové karty vedle stávajících:` Při volbě False se nová karta otevře za poslední otevřenou kartou. :guilabel:`Zabarvení podle autora:` Zabarvení changesetů podle jména autora. Není-li umožněno, jsou změny zabarveny zeleně pro sloučení, červeně pro netriviální rodiče a černě pro běžné případy. Implicitně je False. :guilabel:`Celé jméno autora:` Není-li povoleno, zobrazí se ve zkrácené verzi. :guilabel:`Poloha úkonových karet:` Orientace lišty (east, west, off) s oušky úkonových karet. Při volbě off nejsou ouška zobrazena. :guilabel:`Pořadí úloh úkonové lišty:` Výpisem názvů lze určit počet a pořadí nástrojů lišty. Platné názvy jsou: log | commit | grep | pbranch } sync. :guilabel:`Dlouhý souhrn:` Zadáno-li true, spojují se řádky zpráv až do délky 80 znaků. Implicitně je False :guilabel:`Počet načtených revizí:` Počet současně zobrazitelných changesetů v protokolu. :guilabel:`Mrtvé větve:` Seznam čárkami oddělených jmen větví, které mají být ignorovány při sestavování seznamu jmen větví pro repozitář. Implicitní nastavení je None. :guilabel:`Barvy větví:` Seznam mezerami oddělených jmen větví a barev ve formě 'branch:#XXXXXX'. Mezery a dvojtečky ve jménu větve musí být předznamenány zpětnými lomítky (\\). Podobně mohou být předznamenány i některé další znaky, např. \\u0040 bude dekódováno na znak @ a \\n na 'linefeed'. Implicitní nastavení je None. :guilabel:`Skrýt tagy:` Seznam mezerami oddělených tagů, které se nebudou zobrazovat. Užitečný příklad: zadejte 'qbase qparent qtip' pro skrytí standardních tagů, vkládaných extenzí MQ. Implicitní nastavení je None. :guilabel:`Aktivovat záložky:` Nastavením auto, prompt, never se ovlivní aktivace záložek při aktualizaci k revizi, která má jednu či více záložek. ``auto`` : Pokusit se automaticky aktivovat záložky. Při aktualizaci k revizi s jedinou záložkou je aktivována tato záložka. Při více záložkách je nabídnut výběrový prompt. ``prompt`` : Implicitní nastavení. Zobrazit prompt při aktualizaci k revizi s jednou či více záložkami. ``never`` : Nikdy žádný prompt pro aktivaci záložky neukazovat. :guilabel:`Zobrazit rodinnou linii:` Zobrazit nepřímou závislost revize na grafu při filtrování revsetem - true, false, neurčeno; implicitně true. .. note:: Počítání rodinné linie může být v některých případech pomalé. Očekává se, že tato volba bude odstraněna po vyřešení problému s výkonem. .. module:: commit.settings :synopsis: Dialog used to set commit specific preferences Commit ------ :guilabel:`Jméno uživatele:` Jméno spojené s komity. :guilabel:`Požadovat jméno uživatele:` Požádat o jméno uživatele, nebylo-li dosud zadáno. Implicitní nastavení je False. :guilabel:`Délka souhrnného řádku:` Požadovaná délka řádku průvodní zprávy komitu. Tato délka je vyznačena svislou červenou čarou. Příkaz :guilabel:`CTRL-E` přeformátuje aktuální odstavec na nastavenou délku. Implicitně: 80 :guilabel:`Po komitu zavřít` Ukončit proceduru commit po každém úspěšném komitu. Implicitní nastavení je False. :guilabel:`Push po komitu:` Aplikace se pokusí poslat (push) revizi k nastavenému repozitáři po každém úspěšném komitu. Implicitně je No push. :guilabel:`Seznam auto-include:` Čárkami vymezený seznam souborů, které jsou automaticky vloženy do každého komitu. Zamýšleno pouze jako nastavení repozitáře. Implicitní nastavení je None. :guilabel:`Seznam auto-exclude:` Čárkami rozdělený seznam souborů, které jsou automaticky vypuštěny z výběru při otevření dialogů status, commit a shelve. Implicitní nastavení je None. :guilabel:`Průvodní texty anglicky` Generovat anglickou zprávu, i když jsou proměnné prostředí LANGUAGE nebo LANG nastaveny na neanglický jazyk. Toto nastavení je používáno procedurami Merge, Tag a Backout. Implicitní nastavení je False. :guilabel:`Fáze nových komitů:` Lze zadat vlastnost public, draft, secret :guilabel:`Oprávky MQ-secret:` Určit fázi oprávek MQ-secret místo draft. Implicitně je False. :guilabel:`Ověřit fázi subrepozitáře:` Ověřit fázi aktuální revize každého subrepozitáře Pro jiná nastavení než "ignore" se toto ověření provádí před komitem v rodičovském repozitáři. Implicitně je follow. :guilabel:`Monitorovat změny pracovního adresáře:` Určit frekvenci opětovného načítání (refresh) stavového výpisu pracovního adresáře - auto, allways, allwayslocal: ``auto`` : default TortoisHg rozhodne, kdy zčerství (refresh) status pracovního adresáře. Učiní tak pokaždé, když provede akci, která by mohla potenciálně změnit pracovní adresář. *To může vynechat všechny změny, ke kterým dojde mimo kontrolu TortoiseHg*; ``always`` : kromě výše uvedených automatických aktualizací ještě obnovit (refresh) seznam stavů při každém kliknutí na revizi pracovního adresáře nabo na ikonu "Commit" v liště úkonů; ``alwayslocal`` : totéž jako při ``always`` avšak omezuje vynucená "osvěžení" na lokální repozitáře. :guilabel:`Potvrdit přidání neznámých souborů:` Určuje, zda má TortoiseHg zobrazit konfirmační dialog před přidáním nových souborů při komitu. Zadáno-li False, vybrané nové soubory budou přidány do komitu bez potvrzovacího dialogu. Implictně: True :guilabel:`Potvrdit mazání souborů:` Určuje, zda má TortoiseHg zobrazit konfirmační dialog před odebráním souborů při komitu. Implicitně: True .. module:: sync.settings :synopsis: Dialog used to set synchonization specific preferences Synchronizace ------------- :guilabel:`Operace po akci pull` Operace, které se provedou přímo po úspěšném provedení akce pull. Hodnota 'update' odpovídá pull --update, 'fetch' je extenze fetch, 'rebase' odpovídá pull --rebase. Implicitní nastavení je None. :guilabel:`Připojit k push:` Výběr revizí (all, branch, revision), které se implicitně vyberou pro akci Push. ``all`` : Implicitní nastavení. Poslat (push) všechny změny ve *všech větvích*. ``branch`` : Pušit všechny změny v *aktuální větvi*. ``revision`` : Poslat změny aktuální větve *až po aktuální revizi*. :guilabel:`Potvrdit push:` Určuje, zda má TortoiseHg zobrazit konfirmační dialog před odesláním změn. Implicitně True. :guilabel:`Výběrové kombo:` Nastavuje režim zobrazování výběrové roletky v synchronizační liště (auto, always, neurčeno). Roletka obsahuje výpis vzdálených repozitářů. Při výběru auto se kombo zobrazí, je-li zadán více než jeden cíl. :guilabel:`SSH Command:` Příkaz se použije při spojení přes SSH .. module:: server.settings :synopsis: Dialog used to set web server specific preferences Server ------ *Detaily repozitáře:* :guilabel:`Název:` Název repozitáře pro použití ve webovém rozhraní. Implicitní hodnota je název pracovního adresáře. :guilabel:`Kódování:` Kódování souborů v repozitáři, použité ve webovém rozhraní a v aplikaci TortoiseHg. :guilabel:`Publikující repozitář:` Kontroluje chování fáze "draft" při práci jako server. Je-li nastaveno "true", odesílané changesety jsou zařazeny jako "public" u klienta i serveru; stažené (pulled) či klonované changesety jsou zařazeny jako "public" u klienta. Imlicitně: True *Webový server:* :guilabel:`Popis:` Popis účelu nebo obsahu repozitáře. :guilabel:`Kontakt:` Jméno nebo mailová adresa osoby zodpovědné za repozitář. :guilabel:`Styl:` Výběr šablony stylů :guilabel:`Formáty pro archivaci:` Seznam (CSV) archivovacích formátů pro načítání :guilabel:`Port:` Port, kterému má být nasloucháno. :guilabel:`Push vyžaduje SSL:` Zda požadovat přenos příchozího 'push' přes SSL, aby se zabránilo 'čenichání po heslu'. :guilabel:`Pruhy:` Kolik řádků májí zabírat "pruhy zebry" ve víceřádkovém výstupu. Implicitní nastavení je 1; hodnota 0 volbu znemožní. :guilabel:`Souborů maximálně:` Maximální počet souborů uváděných v jednom changesetu. :guilabel:`Změn maximálně:` Maximální počet změn uváděných v changelogu. :guilabel:`Povolit push:` Zda povolit vzdálený push do lokálního repozitáře. Není-li určeno, push není dovolen. Je-li zadána hodnota "*", může push provést libovolný i neověřený uživatel. Vzdálení uživatelé musí jinak být ověřeni a jejich ověřená jména musí být přítomna v tomto seznamu (oddělená mezerou nebo ","). Obsah seznamu allow_push je zkoumán po seznamu deny_push. :guilabel:`Odmítnout push:` Zda odmítnout vyslání do repozitáře. Není-li nic zadáno, 'push' není odmítnuto. Je-li zadána hodnota "*", mají 'push' zamítnut všichni uživatelé, ověření či neověření. Případný seznam deny_push je zkoumán před seznamem allow_push. .. module:: proxy.settings :synopsis: Dialog used to set proxy specific preferences Proxy ----- :guilabel:`Hostitel:` Jméno hostitele a (nepovinné) port proxy serveru, například ``myproxy:8000``. :guilabel:`Seznam pro bypass:` Nepovinné. CSV seznam jmen hostitelů, kteří mají obejít proxy server. :guilabel:`Uživatel:` Nepovinné. Jméno uživatele pro ověření u proxy serveru. :guilabel:`Heslo:` Nepovinné. Heslo pro ověření u proxy serveru. .. module:: email.settings :synopsis: Dialog used to set email specific preferences Email ----- :guilabel:`From:` Emailová adresa pro použití v záhlaví "From" a pro obálku SMTP. :guilabel:`To:` CSV seznam adres příjemců emailu. :guilabel:`Cc:` CSV seznam adres příjemců kopie emailu. :guilabel:`Bcc:` CSV seznam skrytých adres příjemců kopie emailu. :guilabel:`Metoda:` Nepovinné. Použitá metoda při posílání emailových zpráv. Je-li hodnota "smtp" (implicitní hodnota), použije se SMTP (konfigurace viz níže). Jinak se zadaná hodnota použije jako jméno programu, který působí jako 'sendmail' (příjímá volbu :command:`-f` pro odesílatele, seznam příjemců na příkazovém řádku, zprávu v stdin). Normálně pro posílání zpráv postačí nastavení ``sendmail`` nebo ``/usr/sbin/sendmail``. :guilabel:`Hostitel SMTP:` Jméno hostitele mailového serveru. :guilabel:`Port SMTP:` Port pro připojení na mailovém serveru. Implicitní nastavení je 25. :guilabel:`SMTP TLS:` Určení povolené metody TLS pro připojení k mailovému serveru. Implicitně: none :guilabel:`Uživatel SMTP:` Uživatelské jméno pro ověření u mailového serveru. :guilabel:`Heslo pro SMTP:` Heslo pro ověření u mailového serveru. :guilabel:`Lokální jméno hostitele:` Hostitelské jméno, které může odesílatel použít pro ověření u mailového serveru. .. module:: diff.settings :synopsis: Dialog used to set diff specific preferences Diffy a anotace --------------- :guilabel:`Oprávka EOL:` Normalizovat ukončení řádků v souboru na lf nebo crlf během a po akci patch. Doporučené nastavení "auto" provádí detekci po souborech. Implicitně: strict :guilabel:`Formát Git:` Použít rozšířený git formát záhlaví diffu. Implicitně je False. :guilabel:`Formát MQ Git` Nastaveno-li na 'keep', použije mq konfiguraci sekce (diff), přičemž při qrefresh zachová existující oprávky (patches). Nastaveno-li 'yes' nebo 'no', mq potlačí sekci (diff) a vždy generuje gitové nebo regulerní oprávky, přičemž je ve druhém případě možná ztráta dat. :guilabel:`Žádná data:` Do záhlaví diffů nezahrnovat data modifikací. Implicitně je False. :guilabel:`Zobrazit funkci:` Ukázat funkci ve které je jednotlivá změna obsažena. Implicitně je False. :guilabel:`Ignorovat prázdná místa:` Ignorovat prázdná místa (WS) při porovnávání řádků. Implicitně je False. :guilabel:`Ignorovat množství WS:` Ignorovat změny v počtu prázdných míst v zobrazení diffu. Implicitně je False. :guilabel:`Ignorovat prázdné řádky:` Ignorovat změny, jejichž řádky jsou všechny prázdné. Implicitně je False. .. module:: font.settings :synopsis: Dialog used to set font specific preferences Fonty ----- :guilabel:`Font zprávy:` Font průvodních zpráv komitu. Implicitně: monospace 10 :guilabel:`Font diffu:` Font pro zobrazení textových rozdílů. Implicitně: monospace 10. :guilabel:`Font seznamu:` Font použitý vseznamu souborů . Implicitně: sans 9. :guilabel:`Font přehledu revizí` Font použitý v přehledu revizí. Implicitně: monospace 10. :guilabel:`Font výstupu:` Font textu v panelu Output Log. Implicitně: sans 8. .. module:: extensions.settings :synopsis: Dialog used to set specific preferences Extenze ------- Aktivační seznam extenzí. .. module:: tool.settings :synopsis: Dialog used to set tool specific preferences Nástroje -------- Prostředí pro konfiguraci vlastního ovládacího prvku a jeho zařazení do uživatelské nástrojové lišty. .. module:: hooks.settings :synopsis: Dialog used to set specific preferences Hooks ----- Prostředí pro připojení externích programů pro různé typy příkazů. .. module:: issue.settings :synopsis: Dialog used to set issue tracking specific preferences Sledování problémů ------------------ :guilabel:`Regex problému` Definuje regex shody pro vyhledávání čísel problému. :guilabel:`Přípojení k problému` Definuje příkaz, spuštěný při rozpoznání čísla problému. Lze přidat skupiny v issue.regex a příslušné tokeny ``{n}`` v issue.link (kde "n" je kladné celé číslo). Token ``{0}`` odkazuje na celý řetězec, shodující se podle issue.regex, zatímco ``{1}`` odkazuje ůna první skupinu a tak dále. Nejsou-li v issue.link nalezeny žádné tokeny ``{n}``, je připojen celý shodný řetězec. :guilabel:`Úvodní tagy` Zobrazit tagy na počátku sdělení komitu. :guilabel:`Povinný odkaz na problém` Požadovat odkaz na problém při komitu. Je-li povoleno, musí regex, nastavený v "Issue Regex", nalézt shodu ve zprávě komitu. :guilabel:`Issue Tracker Plugin` Konfiguruje pluginy COM pro sledování chyb. :guilabel:`Konfigurovat Issue Tracker` Konfiguroat vybraný plugin COM Bug Tracker. :guilabel:`Aktualizovat Issue Tracker` Určuje, kdy má být aktualizován stav IT. Platná nastavení jsou: ``never`` : Neaktualizovat stav IT automaticky. ``commit`` : Aktualizovat stav IT po úspěšném komitu. Implicitně: never :guilabel:`Changeset Link` Šablona řetězce, která změní číslo revize a krátký hash z panelu revize na link. Tato šablona používá syntaxi Mercurialu, jež aktuálně přijímá dva výrazy: ``{node|short}`` : je nahrazen dvanácti ciferným ID revize (``{node}`` samo o sobě není aktuálně podporováno). ``{rev}`` : je nahrazen číslem revize. Například, pro připojení ke komitovým stránkám bitbucket můžete provést toto nastavení: ``https://bitbucket.org/tortoisehg/thg/commits/{node|short}`` .. module:: rewievboard.settings :synopsis: Dialog used to set rewiev board specific preferences Review Board ------------ :guilabel:`Server` Cesta k příkladu pro RB: "http://demo.reviewboard.org" :guilabel:`Uživatel` Jméno uživatele pro ověření přístupu na RB. :guilabel:`Heslo` Heslo pro ověření přístupu na RB. :guilabel:`ID repozitáře na serveru` Implicitní ID repozitáře na serveru RB :guilabel:`Cílové skupiny` Seznam čárkami oddělených cílových skupin :guilabel:`Cílové osoby` Seznam čárkami oddělených cílových osob Klávesová navigace =================== :kbd:`Ctrl-Enter` Uplatnit změny a ukončit dialog; ekvivalent stisknutí tlačítka 'OK'. Spuštění z příkazového řádku ============================ Konfigurační dialog může být spuštěn z příkazového řádku :: thg repoconfig pro nastavení repozitáře (:file:`.hg/hgrc` file) nebo :: thg userconfig pro uživatelskou konfiguraci (:file:`Mercurial.ini` file). Příkazy se zadávájí bez parametrů, kromě globálních voleb. .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/shelve.txt0000644000000000000000000000750314023111777017024 0ustar00rootrootShelve ====== .. module:: shelve.dialog :synopsis: Dialog used to perform shelve/unshelve operations Nástroj **shelve** dovede přesouvat změny mezi pracovním adresářem a oprávkami v almárce (shelf patches). Byla-li povolena extenze MQ, umí také přesouvat změny **do** i **z** neaplikovaných oprávek. Nástroj shelve spustíme ve Verpánku výběrem :guilabel:`Repozitář > Shelve...`, nebo příkazem :command:`thg shelve` .. note:: Vřele doporučujeme nastavit konfiguraci EOL oprávky na "auto", pokud používáte nástroj shelve pro textové soubory s DOS EOLn. .. figure:: figures/shelve.png :alt: Shelve dialog Dialogové okno Shelve Vlastnosti ---------- Nástroj shelve má tři nástrojové lišty. Levou a pravou pro dva panely vedle sebe a střední lištu pro příkazy 'Refresh' a New Shelf. Levá lišta je zrcadlovým obrazem pravé, obě nabízejí stejné funkce v obráceném pořadí. Levá lišta obsahuje tyto akce: :guilabel:`Smazat vybrané porce (chunks)` Odstranit nebo zrušit všechny vybrané (přepnuté) porce v aktuálně vybraném souboru. :guilabel:`Přesunout všechny soubory vpravo` Přesunout všechny změny ve všech souborech do oprávky, vybrané v pravém panelu. :guilabel:`Přesunout vybraný soubor vpravo` Přesunout všechny změny ve vybraném souboru do oprávky, vybrané v pravém panelu. :guilabel:`Editovat soubor` Při procházení pracovním adresářem toto tlačítko umožní editaci vybraného souboru. Případně editaci aktuálně zobrazeného oprávkového souboru. :guilabel:`Přesunout vybrané porce vpravo` Přesunout všechny vybrané (přepnuté) porce do oprávky, vybrané v pravém panelu. Střední lišta má dvě akce: :guilabel:`Refresh` Znovu načte rozbalovací seznamy oprávek a zobrazení pracovní kopie. :guilabel:`New Shelf` Vytvoří nový almárkový soubor. Musíte zadat název i když je k disposici rozumná implicitní hodnota. Pravá nástrojová lišta umožní přesun změn z oprávek, vybraných na levé straně do oprávek, vybraných na pravé straně, nebo přesun pracovní kopie, byla-li vybrána na pravé straně. Panely oprávek -------------- Levý a pravý panel oprávek jsou identické, kromě toho, že změny pracovní kopie jsou přístupné jenom v levém panelu. Vybíratelné porce (chunks) jsou zobrazeny pouze tehdy, jde-li o textový soubor a je-li v modifikovaném stavu. Přidané nebo odebrané soubory mohou být odloženy (shelved) ale jejich části nelze individuálně vybrat. Tlačítko :guilabel:`Clear` vyprázdní aktuálně vybranou cestu nebo vrátí (revert) celou pracovní kopii. Tlačítko :guilabel:`Delete` smaže aktuálně vybranou oprávku almárky. .. note:: Tlačítko :guilabel:`Delete` není sensitivní, je-li vybrána oprávka MQ. Oprávky MQ se smažou prostřednictvím 'qdelete' s použitím kontextového menu Verpánku nebo widgetu Patch Queue. Při dvojím poklepu na souboru v seznamu dostanete kontextové menu s příkazy: :guilabel:`Visual Diff` Otevřít vybraný soubor ve vašem nastaveném nástroji pro zobrazení diffů. Povoleno jen pro soubory pracovní kopie. :guilabel:`Edit Local` Otevřít verzi pracovní kopie vybraného souboru. :guilabel:`Revert to Revision` Vrátit všechny změny vybraného souboru. Povoleno jen pro soubory pracovní kopie. Trashcan -------- Nástroj shelve zachází s vašimi zdrojovými a oprávkovými soubory velmi konzervativně. Předtím, než modifikuje kterýkoliv soubor, provede zálohování do :file:`.hg/Trashcan`. Tato nádoba na odpadky může být vyprázdněna s použitím nástroje Verpánku :guilabel:`Repository > Purge...`. Spuštění z příkazového řádku ---------------------------- :: thg shelve aliases: unshelve shelve tool use "thg -v help shelve" to show global options .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/sync.txt0000644000000000000000000002654514023111777016521 0ustar00rootrootSynchronizace ============= .. module:: synchronize.dialog :synopsis: Dialog used to perform synchronization operations Nástroj `TortoiseHg > Synchronizovat` .. figure:: figures/synchronize.png :alt: Synchronize dialog Synchronizační nástroj se používá pro přesouvání changesetů mezi repozitáři nebo pro odesílání změn přes e-mail. :guilabel:`Incoming` Ukázat (příchozí) changesety, které mohou být staženy (pulled) z cílového repozitáře, neboli změny v cílovém repozitáři, které nejsou v lokálním repozitáři :guilabel:`Pull` Stáhnout příchozí changesety z cílového repozitáře :guilabel:`Outgoing` Ukázat (odchozí) changesety, které mohou být poslány (pushed) do cílového repozitáře, neboli změny v lokálním repozitáři, které nejsou v cílovém repozitáři :guilabel:`Push` Poslat odchozí changesety do cílového repozitáře, neboli zařídit, aby se lokální *tip* stal *tipem* v cílovém repozitáři :guilabel:`Email` Poslat odchozí changesety (do cílového repozitáře) jako e-mail :guilabel:`Rozbalit` Rozbalit svazkový (bundle) soubor *.hg* :guilabel:`Stop` Zastavit probíhající operaci :guilabel:`Po akci pull:` Tlačítko obsahuje zatržítka pro výběr operací, které se mají provést po stažení (pull) změn ze vzdáleného repozitáře. Otevřete-li konfigurační nástroj, můžete vybrat implicitní chování pro váš uživatelský účet a potlačit tento výběr na úrovni repozitáře. :guilabel:`None` Po akci pull se neprovedou žádné operace. Můžete si prohlédnout stažené changesety v záznamovém panelu a můžete se pokusit o aktualizaci k novému tipu. :guilabel:`Update` Automaticky aktualizovat k tipu aktuální větve tehdy a jen tehdy, jestliže byly nové revize staženy do lokálního repozitáře. Může to spustit slučování, jestliže stažené změny kolidují s lokálními nekomitovanými změnami. :guilabel:`Fetch` Ekvivalentní k hg fetch. Viz dokumentaci k extenzi fetch. Tato procedura je přístupná, pokud byla povolena uživatelem. :guilabel:`Konflikty při slučování` Konflikty při sloučování řešit pokud možno automaticky. Je-li tato volba zatržena, pokusí se Mercurial řešit triviální konflikty bez spoluúčasti uživatele. Není-li, jsou všechna slučování interaktivní. :guilabel:`Možnosti` Tlačítko obsahuje zatržítka pro výběr méně používaných příkazových opcí. :guilabel:`Povolit push nové větve` Povolit vyslání (push) nové větve :guilabel:`Vynutit push nebo pull` Potlačit varování o vícerých čelech (heads) nebo nespřízněných repozitářích :guilabel:`Zabočit do subrepozitářů` Příkazy incoming (příchozí) nebo outgoing (odchozí) mohou zahrnout i subrepozitáře a poskytnout úplný přehled :guilabel:`Dočasně odpojit nastavené HTTP proxy` Tato volba je sensitivní pouze tehdy, je-li pro daný repozitář nastaven proxy web; zatržením se tento web zapoví. :guilabel:`Emitovat výstup ladění` ... :guilabel:`Pracovat s frontou oprávek (-mq)` ... :guilabel:`Vzdálený příkaz` Textové pole pro zadání vzdáleného příkazu :guilabel:`Větev` Textové pole pro zadání názvu větve Je-li synchronizační nástroj otevřen ve Verpánku, má nástrojová lišta ještě zatržítko :guilabel:`Cíl`. Zatržením se aktivuje roletkový seznam, ve kterém lze vybrat cílovou revizi, bookmark nebo větev. Tyto výběry se přidají ke každému synchronizačnímu příkazu. Je-li synchronizační nástroj otevřen mimo Verpánek, je toto zatržítko skryté. Než bude zatržítko "Cíl" doplněno i do widgetu `TortoiseHg > Synchronizovat`, bude zřejmě vhodnější používat synchronizační nástroj z Verpánku. Pod nástrojovou lištou je uvedena aktuálně vybraná adresa URL. Tuto adresu použijí všechny synchronizační nástroje. Celkový účinek nástroje `Synchronizovat` je ten, že může být čten jako příkaz Mercuriálu z příkazového řádku. Tlačítky nástroje se vybere příkaz, v dialozích `Po akci pull` a `Možnosti` se zadají parametry, v roletkovém seznamu `Cíl` se určí revize či větve a textovém poli lze zkontrolovat adresu vzdáleného repozitáře. Před textovým polem pro URL jsou dvě ikony pro nastavení bezpečného spojení a uložení aktuálního URL jako alias. Přidání URL ----------- Nejsnadněji přidáte nové URL do svého repozitáře jeho přetažením (drag @ drop) z jiné aplikace, uložíte a zadáte alias. V textových polích spodní části karty Synchronizovat lze vidět adresy, uložené v konfiguračním souboru aktuálního repozitáře (:guilabel:`Cesty v nastavení repozitáře`) a adresy, které jsou uložené v jiných příbuzných repozitářích, uvedených v Seznamu repozitářů (:guilabel:`Příbuzné cesty`). .. note:: "Příbuzný" znamená, že dva repozitáře mají alespoň jeden společný kořenový changeset. Klonované repozitáře jsou zcela zřejmě příbuzné. Operace push a pull vyžadují příbuznost repozitářů; tento požadavek lze potlačit opcí --force. Seznamy adres URL mají kontextové menu s nabídkami Explore, Terminal, Copy Path, Edit a Remove. Bezpečné připojení ke vzdálenému repozitáři ------------------------------------------- Mercurial (a TortoiseHg) podporují dva bezpečnostní protokoly pro výměnu dat se vzdálenými servery, HTTPS a SSH. Bezpečné spojení HTTPS lze nastavit aktivací ikony :guilabel:`Bezpečné spojení HTTPS` v kartě Synchronizovat. Bezpečné spojení HTTPS se skládá ze dvou asymetrických částí. První částí je ověření hostitele, což lze v nástroji Bezpečné spojení HTTPS zadat trojím způsobem: * Ověřit pomocí certifikátů certifikační autority (CA) * Ověřit pomocí uloženého fingerprintu hostitele * Bez ověření hostitele avšak stále se zašifrováním (nejhorší) Druhou částí bezpečného spojení je ověření uživatele zadáním jména, hesla, případně certifikačního klíče či řetězce (chain). Prověření hostitele +++++++++++++++++++ Před verzí 1.7 ignoroval Mercurial tuto část bezpečnosti HTTPS spojení. Ve verzi 1.7 již začal varovat, že certifikát serveru není ověřován. Mercurial 1.7.5 zavedl schopnost ověřit certifikát serveru HTTPS porovnáním s uloženým fingerprintem. Synchronizační nástroj TortoiseHg 2.0 obsahuje dialog, umožňující zvolit mezi fingerprintem hostitele nebo použitím certifikátu CA. Teoreticky je fingerprint hostitele bezpečnější než certifikáty CA, pokud zcela nevěříte všem autoritám, uvedeným v implicitním uložišti. Musíte si ovšem být jist, že váš uložený fingerprint je skutečně ten správný. TortoiseHg 2.0 také umožňuje použití nezajištěného spojení s daným hostitelem. Přitom se nepoužije ověření certifikátu hostitele ale použije se zašifrovaný datový proud (stream) - což je vlastně chování Mercurialu před verzí 1.7. messages). Prověření uživatele +++++++++++++++++++ Pro prověření vlastní osoby vzhledem k serveru HTTPS je k disposici několik mechanizmů. Nejjednodušším je oprávnění Mercurialu požádat uživatele o zadání uživatelského jména a hesla. To má tu nevýhodu, že separátní výzvy vyžadují vytvoření dvou separátních spojení. Další možností je připojení uživatelského jména k URL, takže Mercurial žádá pouze o zadání hesla (passphrase). To zkracuje proces prověřování na polovinu ale je stále poněkud únavné. Nechcete-li být obtěžování se zadáváním fráze hesla, musí být někde uloženo. Máte tyto možnosti: 1) připojit passphrase k URL HTTPS v konfiguračním souboru každého repozitáře 2) uložit passphrase do konfiguračního souboru uživatele 3) použít extenzi mercurial_keyring k uložení passphrase v kryptografické formě. Až donedávna podporoval TortoiseHg ve svém grafickém rozhranní pouze první možnost i když interně byly podporovány i druhá a třetí varianta. V grafickém rozhranní TortoiseHg 2.0 jsou podporovány pouze dvě poslední varianty. Uživatelské jméno a heslo jsou při ukládání odtrženy od URL. Při přechodu od první možnosti k některé další vyberte v synchronizačním nástroji HTTPS URL, otevřte bezpečnostní dialog a zadejte uživatelské jméno a passphrase pro hostitele (není-li žádný nakonfigurován) a uložte. Poté uložte samotné URL a povolte odtržení ověřovacích dat uživatele od URL. .. note:: Je-li povolena extenze mercurial_keyring, bezpečnostní dialog vám nedovolí zadat passphrase ve formě prostého textu, neboť se předpokládá, že chcete uložit passphrase kryptograficky. Druhá a třetí možnost používá sekci [auth] konfiguračního souboru uživatele k nastavení jména uživatele a passphrase (nebo soubory s certifikačními klíči) k autentifikaci u daného jména HTTPS hostitele. Sekce [auth] podporuje mnohem víc konfigurací, než je tato - viz stránky man. Jakmile je povolena extenze mercurial_keyring (a všechny aplikace jsou restartovány), můžete odebrat HTTPS passphrases ze všech svých konfiguračních souborů. Mercurial požádá o passphrase jednou, potom jej kryptograficky uloží s použitím nejlepšího back-endu, který na vaší platformě nalezne. Extenze mercurial_keyring vyžaduje aby byla sekce [auth] nastavena pro hostitele, ke kterému se připojujete aby mohla poskytnout jméno uživatele. Má-li vaše URL vkódované (encoded) jméno uživatele nebo passphrase, je sekce [auth] ignorována. SSH ~~~ SSH je symetrický peer-to-peer bezpečný tunel. Klienti SSH a servery mají své vlastní systémy správy, takže Mercurial se na výzvách po hesle při použití SSH nepodílí. To je problematické ve Windovs, pročež TortoisHg připojuje do svých instalačních programů klienta SSH TortoiseHgPlink. TortoisePlink je port klienta Plink SSH, který používá dialogové prompty pro prověření hostitelského klíče a hesla uživatele. TortoisePlink (vyvinutý v rámci projektu TortoiseSVN) může použít také ostatní nástroje SSH, které jsou součástí Plink toolchainu, včetně prostředku Pageant key. Je známým problémem, že TortoisePlink v mnoha situacích nepoužívá kompresi, v důsledku čehož je až čtyřikrát pomalejší než openssh a jiní klienti. Pro Windows doporučuje TortoiseHg použití HTTPs. See the :doc:`faq` for help if you have trouble connecting to ssh servers. E-mail ------ .. figure:: figures//email.png :alt: Email dialog Dialogové okno **Email** lze spustit ze dvou nástrojů TortoiseHg. * Z Verpánku jako kontextové menu pro jednu nebo více vybraných revizi. * Tlačítkem :guilabel:`Email out..` v synchronizačním panelu odešlete všechny odchozí změny do zadaného cílového repozitáře. Parametry poštovního klienta lze přednastavit v otevřeném okně 'Email out' výběrem :guilabel:Settings`. V dokumentaci pro Mercurial se seznámíte s rozdíly mezi plain patches, Hg patches, Git patches a svazky (bundles). Spuštění z příkazového řádku ---------------------------- :: thg sync aliases: synchronize Synchronize with other repositories use "thg -v help sync" to show global options Skladba je jednoduchá, žádné opce nebo parametry nejsou zapotřebí, kromě opcí globálních. .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/whatsnew.txt0000644000000000000000000001361714023111777017401 0ustar00rootroot************* Co je nového ************* .. module:: whatsnew :synopsis: Changes made between TortoiseHg 1.0 and TortoiseHg 2.0 TortoiseHg 2.0 ============== Filosofie --------- Mezi TortoiseHg 1.0 a TortoiseHg 2.0 došlo k následujícím změnám. Verpánek ^^^^^^^^ Chtěli jsme mít jedinou aplikaci, která by měla přístup k téměř všem funkcím TortoiseHg (a Mercurialu) a která by šla spustit zástupcem z plochy, nebo výběrem z menu Start. Za tím účelem jsme vyvinuli aplikaci Workbench neboli Verpánek. Verpánek podporuje otevření a zobrazení více než jednoho repozitáře na kartách, aktivovaných poklepem na položce seznamu v panelu :guilabel:`Seznam repozitářů`. Každá repozitářová karta je propojena s úkonovými kartami (Podrobnosti revizí, Commit, Synchronizace, Hledat), které se zobrazují v úkonové ploše pod Přehledem revizí. Tyto karty se přepínají poklepem na ouška, ikonami v úkonové liště nebo výběrem nabídky v roletce :guilabel:`View`. K disposici jsou také tři parkovatelné panely - *Seznam repozitářů*, *Fronta oprávek* a Výstupní konzola* (Output Log). První zobrazuje stromovou strukturu lokálních repozitářů v počítači, druhý panel se použije při manipulaci s oprávkami (patches) a třetí panel zobrazuje aktuálně prováděné příkazy a lze jej použít i pro zadávání příkazů. Zobrazení příkazového řádku Mercuriálu ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Ve snaze poučit uživatele o použitých příkazech Mercuriálu, jsou téměř všechny příkazy souběžně zobrazovány ve výstupní konzole, včetně následného výstupu z Mercuriálu. Nástroj Resolve, uvážlivá sloučení ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ TortoiseHg 2.0 zavádí dialog 'resolve' pro řešení konfliktů při slučování souborů. Ukazuje uživateli všechny soubory, které potřebují řešení i soubory již rozřešené, umožňujíce kontrolu sloučení. Za podpory procedury 'resolve' mohou být jednotlivá sloučení restartována tak často, jak je pro správné sloučení souborů zapotřebí. Proceduru 'resolve' použije TortoiseHg implicitně k řešení všech konfliktů. Pokud je úspěšné, dojde k automatickéhu sloučení, pokud ne, musí konflikt vyřešit uživatel. Zlepšené odkládání souborů ^^^^^^^^^^^^^^^^^^^^^^^^^^ Tortoise 2.0 obsahuje nový odkládací nástroj zvaný 'shelve' který umí přesouvat změny z pracovního adresáře do šelfového souboru (shelf file) nebo do neaplikované oprávky MQ (MQ patch). Sady revizí ^^^^^^^^^^^ Lištu pro nastavení filtru v Repozitory Explorer jsme ve Verpánku nahradili Pracovní lištou filtru pro výběr sad revizí (implicitně není zobrazena). Sady revizí byly zavedeny v Mercurialu 1.6 a byly v každém dalším vydání integrovány se stoupajícím počtem příkazů. Je to mocný dotazovací nástroj pro vyhledávání revizí v repozitáři. Verpánek obsahuje také editor sady revizí, který je zdrojem poučení o dostupných klíčových slovech a jejich argumentech, a má schopnost doplňovat otevřené závorky, počatá slova a další. Příchozí a odchozí changesety jsou nyní v TortoiseHg 2.0 zobrazeny jako sady revizí. V předchozích verzích byly reprezentovány komentářem ke grafu. Technologie ----------- Qt a PyQt ^^^^^^^^^ Téměř všechny nástroje a dialogy v TortoiseHg 2.0 byly přepsány pro využití vynikajících aplikací `Qt `_ a `PyQt `_. QScintilla2 ^^^^^^^^^^^ TortoiseHg používá značnou měrou editovací komponenty aplikace `QScintilla2 `_ pro: * zobrazení souborů a diffů se zvýrazněním syntaxe * zobrazení anotací se zvýrazněním syntaxe * editaci komitových zpráv s automatickým dokončováním jmen souborů a zdrojových symbolů * editaci řetězců sad revizí (revision set strings) s doplňováním závorek a s automatickým dokončováním. Délku tabulátoru lze nastavit v konfiguračním nástroji, zatímco délky řádků a viditelnost "white space" jsou ovládány z kontextových menu. Zjišťování stavu repozitáře a konfigurace ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Verpánek a další aplikace, jako např. nástroj :guilabel:`commit` prohledají repozitáře ve vašem počítači aby v nich nebo v konfiguračních souborech zjistily změny a automaticky v případě potřeby aktualizovaly běžící aplikace. Téměř všechny konfigurační změny jsou okamžitě účinné kromě povolení či zakázání extenzí Mercurialu. Změny nastavení extenzí obvykle vyžadují restart aplikace. Okamžité hlášení chyb ^^^^^^^^^^^^^^^^^^^^^ Před TortoiseHg 2.0 bylo hlášení chyb zapisováno do stderr v okamžiku jejich vzniku a stderr byl odchycen a skenován pro předání uživateli při ukončení aplikace. I když se tímto mechanizmem získalo mnoho cenných chybových zpráv, bylo možné jen výjimečně zjistit, které operace chybu způsobily. Pro TortoiseHg 2.0 byl vytvořen generický manipulátor výjimek, který odchytí všechny výjimky Pythonu, které by jinak zůstaly kódem aplikace neošetřeny. To umožňuje zobrazit záznamy výjimek téměř okamžitě po jejich vzniku (po krátké pauze potřebné pro shromáždění za sebou jdoucích výjimek). Očekává se, že chybové zprávy budou napříště obsahovat lepší instrukce pro reprodukci nebo alespoň souvislosti pro zpětné záznamy. Načtení grafu dle požadavku ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Za účelem pružného zobrazení načítá grafový algoritmus při akci refresh implicitně jenom několik stovek revizí a poté načítá pouze požadované revize. Při procházení Přehledem revizí může dojít k jeho trhavému zobrazení. Tento projev lze odstanit příkazem :guilabel:`Načíst všechny revize` v menu :guilabel:`View`. .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-cs/workbench.txt0000644000000000000000000006034414023111777017522 0ustar00rootrootVerpánek ======== .. module:: workbench.dialog :synopsis: Primary TortoiseHg application Verpánek neboli Workbench je primární aplikace TortoiseHg. Umožňuje procházet lokálními repozitáři, předávat (commit) změny do repozitáře , provádět vyhledávání a synchronizaci s jinými repozitáři a vykonávat různé provozní úlohy. Téměř každá procedura Mercurialu je dostupná z Verpánku. Všechna tlačítka pracují s aktuálním repozitářem. .. figure:: figures/workbench.png :alt: Workbench V základní minimalistické konfiguraci (s vypnutými lištami) má okno Verpánku pouze jedno pole a to Přehled revizí na jedné či více kartách, jejichž ouška jsou řazena v pruhu nad polem seznamu. Mezi pruh hlavního menu (Soubor, Zobrazit, Repozitář, Help) a Přehled revizí lze vložit nástrojové lišty - Editovací (Edit Toolbar), Parkovací (Dock Toolbar), Úkonovou (Task Toolbar), Synchronizační (Sync Toolbar) a Uživatelskou (Custom Toolbar). Složení jednotlivých lišt bude uvedeno níže. Lišty lze aktivovat/deaktivovat výběrem z kontextové nabídky, vytvořené poklepem "pravé" myši v pruhu hlavního menu nebo výběrem ze sekvence :menuselection:`Zobrazit > Nástrojové lišty`. Parkovací lišta obsahuje ikony tří procedur - :menuselection:`Otevřít seznam repozitářů, Otevřít frontu oprávek, Otevřít konzolu`. První dvě procedury se zobrazují v samostatném přemistitelném okně. Okno poslední procedury je nepřemistitelné. Výběr ze sekvence :menuselection:`Zobrazit > Zobrazit úkonovou plochu` otevře strukturovanou pracovní plochu, jejíž konfigurace se mění podle právě zvoleného úkonu v Úkonové liště (Podrobnosti revizí, Commit, Synchronizovat a Hledat ). Tuto úkonovou plochu lze opatřit samostatnou lištou s oušky karet, obsahujících úkony z Úkonové lišty a to sekvencí :menuselection:`Soubor > Settings > Verpánek` --> Poloha úkonových karet (east, west, off). Úkonovou plochu lze překrýt otevřením okna konzoly pro reflexi nebo zadávání příkazů aplikace :menuselection:`hg` nebo :menuselection:`thg`. Použijeme k tomu sekvenci :menuselection:`Zobrazit > Otevřít konzolu`, nebo ikonu v editovací liště. Další užitečné zpestření pracovní plochy Verpánku poskytuje volba :menuselection:`Zobrazit > Otevřít seznam repozitářů`, jež otevře okno se seznamem repozitářů vlevo od seznamu revizí a úkonové plochy,jež lze tažením přemístit i mimo plochu Verpánku. Hlavní panely Verpánku jsou tedy tyto: Přehled revizí Panel pod nástrojovými lištami v záhlaví s výčtem revizí vybraného repozitáře. Ve sloupcích jsou uváděny základní informace o každém changesetu neboli revizi repozitáře. Lze si nastavit, které sloupce mají být viditelné (:menuselection:`Zobrazit` > Vybrat sloupce přehledu revizí) a v jakém pořadí. Seznam repozitářů neboli repozitórií Lze aktivovat ikonou nebo volbou :menuselection:`Zobrazit` > Zobrazit seznam repozitářů. Volba :menuselection:`Zobrazit` > Nastavení seznamu repozitářů > Show Paths umožní zobrazení nejenom jmen repozitářů ale i cest k nim. Úkonová plocha Plocha pod přehledem revizí s poměnným obsahem. Nástroje úkonové plochy lze aktivovat ze třech míst: * jako položku roletky :menuselection:`Zobrazit` --> Podrobnosti revize, Comit, Synchronizovat, Hledat * výběrem ikony v Úkonové liště --> dtto * výběrem ouška na okraji Úkonové plochy - zobrazení oušek lze zapnout/vypnout v prostředí :menuselection:`File` > Settings > Verpánek > Úkonová lišta Výstupní konzola (Output Log) Tento nepřemistitelný panel, který vyvoláme tlačítkem s ikonou "Log" nebo výběrem :menuselection:`Zobrazit > Otevřít konzolu`, poskytuje uživateli informaci o příkazech Mercurialu, které byly provedeny během stávající seance. Lze jej také použít jako příkazový řádek pro přímé zadávání příkazů Mercurialu. V určitých situacích také zobrazuje chybová hlášení. Okno panelu se také vypne zavřením Verpánku. Hlavní menu ----------- Standardní lišta s roletkovými nabídkami pro přístup k nástrojům a pro spouštění různých úloh. :menuselection:`Soubor` .. figure:: figures/file-menu.png :alt: File menu :menuselection:`Zobrazit` .. figure:: figures/view-menu.png :alt: View menu :menuselection:`Repozitář` .. figure:: figures/repository-menu.png :alt: Repository menu :menuselection:`Help` Obsahuje info o programu a popis Verpánku. Editovací lišta --------------- .. figure:: figures/edit-toolbar.png :alt: Edit Toolbar :guilabel:`Obnovit (refresh) aktuální repozitář` Znovu načíst přehled revizí aktuálního repozitáře. :guilabel:`Stop`: Zastavit probíhající operaci. :guilabel:`Přejít k aktuální revizi`: Přejít k revizi, která je právě aktuální. :guilabel:`Přejít k jiné revizi`: Přejít k libovolné určené revizi. :guilabel:`Zpět`: Vrátit se k předchozí revizi. :guilabel:`Vpřed` Přejít k předchozí revizi. :guilabel:`Lišta filtru se sadami revizí nebo větvemi` Aktivovat nástrojovou lištu pro editaci filtru. :guilabel:`Aktualizovat pracovní adresář` Aktualizovat pracovní adresář k označené revizi. :guilabel:`Sloučit (merge)` Sloučit s dalším čelem vybrané větve. Parkovací lišta --------------- Tato lišta zobrazí nebo skryje původně přemistitelné panely Verpánku. Panel konzoly je aktuálně nepřemistitelný. .. figure:: figures/dock-toolbar.png :alt: Dock Toolbar :guilabel:`Otevřít seznam repozitářů` Ve skutečnosti jde o seznam repozitórií - kořenových adresářů se složkami :strong:`.hg` :guilabel:`Otevřít frontu oprávek` (Show Patch Queue) :guilabel:`Otevřít konzolu` Otevřít konzolu (output log), zobrazující výstup z příkazů Mercuriálu, které byly zadány buď některým nástrojem TortoiseHg nebo zadány v konzole. Úkonová lišta ------------- .. figure:: figures/task-toolbar.png :alt: Task Toolbar Lišta je sestavena z ikon, které aktivují úkonové karty v úkonové ploše: **Podrobnosti revize, Commit, Hledat** a **Synchronizovat**. Rozdělení úkonové plochy se mění v závislosti na volbě úkonové karty. Tuto volbu lze realizovat i výběrem ouška karty na okraji úkonové plochy, pokud je viditelnost oušek aktivována. :guilabel:`Podrobnosti revizí` Pracovní plocha této karty se zkládá ze třech polí: * Rozbalovací plochy (+/-) :strong:`Changeset` obsahuje údaje o číslu revize, zkrácený heš, souhrnný text zprávy komitu, jméno a email komitenta, datum komitu, informace o rodičích a dětech * Textového pole se souhrnným i úplným textem zprávy komitu * Diffové zobrazení změn vybraného souboru, uvedeného v textovém poli vlevo. .. figure:: figures/revdetails-tasktab.png :alt: Revision Details :guilabel:`Commit` Zde je možné přidávat nové soubory a provádět komit do repozitáře. Až na informaci o changesetu je rozdělení tohoto pole obdobné, jako u Podrobnosti revizí. .. figure:: figures/commit-tasktab.png :alt: Commit Task Tab :guilabel:`Synchronizovat` Umožňuje podrobné nastavení cesty ke vzdálenému repozitáři. Karta obsahuje úplnou nabídku synchronizačních úloh. .. figure:: figures/sync-tasktab.png :alt: Synchronise Task Tab :guilabel:`Hledat` Slouží pro vyhledávání zadaného textu v souboru. .. figure:: figures/search-tasktab.png :alt: Search Task Tab Mezi vybranou revizí nebo oprávkou v Přehledu revizí a úkonovou kartou Commit či Podrobnosti revizí existují tyto relace: * Poklep na revizi "Pracovní adresář" aktivuje kartu s úlohou Commit. * Poklep na kteroukoliv jinou revizi aktivuje kartu Podrobnosti revizí. Synchronizační lišta -------------------- .. figure:: figures/sync-toolbar.png :alt: Sync Toolbar Sync toolbar Slouží k synchronizaci lokálního repozitáře s jinými repozitáři. Obsahuje čtyři ikony pro úkony Incoming, Pull, Outgoing, Push. Popisy těchto úkonů jsou uvedeny v kapitole 5.9 Synchronizace. Pracovní lišta filtru --------------------- .. figure:: figures/filter-toolbar.png :alt: Filter Toolbar Filtrovací možnosti ve Verpánku Tato lišta umožňuje rychlé filtrování vybraných changesetů. Je založena na proceduře Revision Sets Mercuriálu. Určení skladby revizí viz `hg.1.html#revsets `_. Zobrazení této lišty aktivujeme buď tlačítkem s ikonou v editovací liště nebo přepínačem :kbd:`Ctrl+S`. Lišta obsahuje následující sadu procedur (zleva doprava): :guilabel:`Clear` Smaže aktuální dotaz (query). Vlastně anuluje zadání filtru. :guilabel:`Roletka` Zde lze zapsat filtrovací podmínku do textového pole roletkového seznamu, obsahujícího předchozí filtrovací podmínky :guilabel:`Aktivovat průzkum` Aplikuje dotaz na zadanou sadu revizí. :guilabel:`Otevřít editor průzkumu` Otvírá dialogové okno "Revision Set Query". Zde můžete upřesnit svůj dotaz. :guilabel:`Smazat vybraný dotaz` Smaže zadaný vyhledávací dotaz (query). :guilabel:`Filtr` Přepínač pro aktivaci filtru. Aktivní filtr prosévá changesety a barevně označí ty, které podmínce nevyhovují. :guilabel:`Ukázat / Skrýt` Ukázat/skrýt skryté changesety :guilabel:`Graft` Přepínač viditelnosti gráftu :guilabel:`Větev` Výběrový seznam s možností zadat typ větve - aktivní, uzavřené, všechny :guilabel:`Custom Filter Combo` Rozvinovací seznam jednotlivých typů větví (stable, default, hgtk). V situaci, kdy je zobrazován seznam příchozích changesetů, vynoří se na počátku filtrovací lišty dvě tlačítka: :guilabel:`Accept` Přijmout (pull) changesety z prohlíženého svazku. :guilabel:`Reject` Odmítnout changesety z prohlíženého svazku. Verpánek se pokusí nalézt zadanou vyhledávací frázi v repozitáři, porovnávaje ji s tagem, záložkou, názvem větve, hešem changesetu nebo s číslem revize. Není-li žádná shoda nalezena, zjistí Verpánek, zda fráze obsahuje závorky. Pokud ne, předpokládá Verpánek, že fráze je klíčovým slovem a provede hledání :command:`keyword ()`. Jsou-li závorky zjištěny, předpokládá Verpánek, že fráze je specifikací sady revizí a pokusí se sadu řešit. Potřebujete-li provést hledání s klíčovým slovem, které obsahuje závorky, použijte příkaz :command:`keyword` ("fráze(foo)"). Graf revizí ---------------------- Sloupec s grafem zobrazuje vztah dítě-rodič mezi revizemi. Tento sloupec se automaticky zvětšuje podle počtu čar. Výkonové implikace ------------------ Některá nastavení Verpánku mohou mít u velkých repozitářů vliv na výkon. :menuselection:`View > Vybrat sloupce záznamu ...` Povolení sloupce :guilabel:`Změny` může být náročné na přepočet repozitářů s rozsáhlými pracovními kopiemi, což může vést ke zpomalení u rolování a oživení. :menuselection:`Vew > Načíst všechny revize` Normálně se při rolování revizemi postupně načítají dávky changesetů, což může někdy způsobovat trhavé zobrazení. Načtení všech changesetů najednou může vést k 'hladšímu' zobrazení. Kontextová menu revizí ---------------------- Pravý poklep na revizi v Přehledu revizí vyvolá různá kontextová menu v závislosti na počtu vybraných revizí. Kontextová menu se mohou také lišit v závislosti na typu vybrané revize (pracovní adresář, normální revize, oprávka mq). Dále uvádíme seznam všech existujících kontextových menu. :strong:`Vybrána jen jedna revize` (nikoliv pracovní adresář) .. figure:: figures/single-revision-cmenu.png :alt: Single revision context menu :guilabel:`Aktualizovat...` Aktualizovat pracovní adresář k označené revizi. Otevře se dialogové okno s podrobnostmi o aktualizaci. :guilabel:`Diff to parent...` Zobrazí změny mezi aktuální a rodičovskou revizí v nastavenem diffovém nástroji. :guilabel:`Diff to local...` Zobrazí změny mezi vybranou revizí a pracovním adresářem. :guilabel:`Podrobnosti revize` Otevře okno Manifest se zobrazením všech složek a souborů vybrané revize včetně informací o changesetu a zprávy komitu :guilabel:`Filtrovat podle` Ancestors and Descendants, Author, Branch, More options... Nabídka deseti kriterií: Shrnutí, Popis, Autor, Datum, Soubory, Obsah dílů, Stav subrepozitáře, Větev, Rodiče, Fáze. :guilabel:`Merge with local...` Otevře okno "Merge" pro sloučení vybrané revize s lokální revizí pracovního adresáře. :guilabel:`Tag...` Otevře okno pro zadání názvu vytvářeného tagu pro vybranou revizi. :guilabel:`Bookmark...` Otevře okno pro zadání nazvu záložky pro vybranou revizi. :guilabel:`Backout...` Otevře okno "Backout" pro anulování vybrané revize. :guilabel:`Revert All Files...` U všech souborů vyřadí nekomitované změny a ponechá soubory v nezměněném stavu. :guilabel:`Copy Hash` Zkopíruje úplný heš vybrané revize do schránky. -- `V operačním systému X11 se do primárního výběru při označení revize automaticky kopíruje krátký heš; vlepí se stlačením prostředního tlačítka myši`. :guilabel:`Export >` :guilabel:`Export patch` Generuje oprávkový soubor, obsahující změny revize. :guilabel:`Email patch...` Otevře okno pro odeslání emailu se změnami revize. :guilabel:`Archive...` Otevře okno pro archivaci revize s možností generovat záložní kopii revize. :guilabel:`Bundle revision and descendants...` Vytvoří svazek a uloží jej do repozitória (kořenové složky repozitáře). :guilabel:`Copy Patch` Zkopíruje změny revize do schránky. *Přístupné jen při povolené extenzi MQ* :guilabel:`Změna fáze ...` Nabídne výběr fáze: public, draft, secret :guilabel:`Graft to local...` Otevře dialog Graft pro zkopírování vybrané revize. :guilabel:`Modify history >` :emphasis:`Přístupné jen při povolené extenzi MQ`: :guilabel:`Unapply Patch` Zrušit oprávku a vrátit se k rodiči. :guilabel:`Import to MQ` Importovat vybranou revizi do fronty oprávek. :guilabel:`Finish Patch` Přemění oprávku MQ na normální changeset. :guilabel:`Rename Patch` Přejmenovat oprávku :guilabel:`MQ Options` Podrobnější nastavení pro extenzi MQ. :guilabel:`Rebase` Přeskupit changeset včetně potomků k jiné destinaci :guilabel:`Strip` Odstranit vybranou revizi a všechny její potomky z repozitáře. [#rcm1]_ :strong:`Vybrány dvě revize` :guilabel:`Visual diff...` Zobrazí vybrané revize v diffovém prohlížeči. :guilabel:`Export diff...` Otevře okno "Psát diffový soubor". :guilabel:`Export selected...` Pro zadané revize vytvoří oprávky (patches) a exportuje je do zadané složky. :guilabel:`Email selected...` Otevře okno pro odeslání vybraných revizí. :guilabel:`Copy selected as patch...` Z vybraných revizí vytvoří oprávku a uloží ji do schránky. :guilabel:`Export DAG range...` Pro každou revizi vybraného rozsahu vytvoří oprávkový soubor a uloží je v zadaném místě. :guilabel:`Email DAG range...` Otevře okno pro odeslání vybraného rozsahu changesetů ve formě oprávek (patches). :guilabel:`Bundle DAG range...` Ze zadaného rozsahu vytvoří svazek oprávek a uloží je jako jediný soubor. :guilabel:`Bisect - Good, Bad...` TODO, viz odstavec `bisect <#id10>`_ níže :guilabel:`Bisect - Bad, Good...` TODO, viz odstavec `bisect <#id10>`_ níže :guilabel:`Komprimovat historii ...` Otevře okno, v němž lze zkomprimovat zadaný rozsah revizí. :guilabel:`Rebase ...` Přeskupit changeset s potomky k jiné destinaci. :guilabel:`Přejít ke společnému předkovi...` V přehledu revizí přejde ke společnému předkovi obou vybraných revizí. :guilabel:`Filtrovat podle >` Ancestors and Descendants, Author, Branch, Více možností --> Zadání dalších parametrů pro úlohu "Nalézt shody u vybraných revizí". :guilabel:`Gráftovat výběr k aktuální revizi ...` Přenést vybrané revize do pracovního adresáře. :strong:`Vybrány více než dvě revize` :guilabel:`Export selected...` Vytvoří oprávkové soubory pro všechny vybrané revize. :guilabel:`Email selected...` Otevře okno pro odeslání vybraných changesetů. :guilabel:`Copy selected as patch` Z vybraných revizí vytvoří oprávky a uloží je do schránky. :guilabel:`Přejít ke společnému předkovi` viz :guilabel:`Filtrovat podle >` Ancestors and Descendants, Author, Branch, Více možností --> viz :guilabel:`Gráftovat výběr k aktuální ...` Přenést vybrané revize do pracovního adresáře. .. [#rcm1] Tento příkaz uloží odtržené revize do svazku souborů, které mohou být později znovu použity. Viz také `Editing History `_ Kontextová menu souboru ------------------------ Pravým poklepem na soubor v seznamu souborů aktuální revize vyvoláme kontextové menu pro vybraný soubor: :guilabel:`Diff to Parent` Zobrazí změny mezi aktuální a rodičovskou verzí souboru v nastavenem diffovém nástroji. :guilabel:`Diff to Local` Zobrazí rozdíly mezi aktuální a lokální verzí souboru. :guilabel:`Zobrazit verzi souboru` Otevře verzi souboru v nastaveném či vhodném textovém editoru [#f1cm2]_. :guilabel:`Uložit verzi souboru` Uloží soubor do zadané složky :guilabel:`Edit Local` Otevře soubor v nastaveném či vhodném textovém editoru. :guilabel:`Open Local` Otevře soubor v nastaveném či vhodném textovém editoru. :guilabel:`Explore Local` Otevře nadřazenou složku zkoumaného souboru. :guilabel:`Copy Path` Zkopíruje cestu k souboru do schránky. :guilabel:`Vrátit k revizi` Vrátí soubor ke stavu označené revize [#f1cm3]_. :guilabel:`Historie souboru` Ukáže revize, které měnily tento soubor [#f1cm4]_. :guilabel:`Porovnat revize souboru` Otevře nové okno, kde lze porovnat kteroukoukoli revizi souboru s libovolnou jinou revizí. :guilabel:`Selektivní výběr` Otevře lištu výběrového filtru. :guilabel:`Seznam stavů` Tuto nabídku lze také realizovat jako kontextové menu při poklepu kdekoli v prázdném místě Seznamu souborů. Umožňuje nastavit viditelnost souborů v závislosti na jejich statusu: :strong:`M` upravený, :strong:`A` přidaný, :strong:`R` odebraný, :strong:`C` čistý, :strong:`S` subrepo. Volba "Prostý seznam" ovlivňuje způsob prezentace názvů souborů. Přepínač "Manifest mode" zařídí zobrazení celého obsahu repozitória, kromě složky :strong:`.hg`. Tento přepínač je také přítomný jako ikona v levém horním rohu karty "Podrobnosti revizí", spolu s textovým polem pro zadání filtru. .. [#f1cm2] :menuselection:`File > Global Settings > TortoiseHg > Visual Editor` .. [#f1cm3] Nový obsah se objeví jako lokální změna a musí být předána (committed) repozitáři. .. [#f1cm4] Ve které revizi byl soubor smazán se neukáže, protože to je jenom "vnějšková" změna, která neovlivňuje historii souboru. Pravý poklep na název souboru při aktivované úloze Commit vyvolá pro vybraný soubor odlišné kontextové menu: :strong:`Jde-li o upravené (M) soubory pracovního adresáře`: :guilabel:`Diff to Parent` Otevře diffový nástroj a zobrazí texty s označenými změnami. :guilabel:`Copy Patch` Zkopíruje oprávku (patch) do schránky. :guilabel:`Edit Local` Otevře soubor ve vhodném textovém editoru. :guilabel:`Open Local` Otevře soubor v nastaveném textovém editoru. :guilabel:`Explore Local` Otevře repozitórium pro aktuální revizi. :guilabel:`Copy Path` Zkopíruje cestu k souboru do schránky. :guilabel:`Vrátit (revert)...` Otevře okno, kde lze diferencovaně rozhodnout o zrušení změn lokálního souboru (souboru pracovního adresáře). :guilabel:`Historie souboru ...` Otevře okno se zobrazením změn v jednotlivých revizích. :guilabel:`Zapomenout` (forget) Vyřadit soubor ze sledování. :guilabel:`Označit / Odznačit` Vložit / odebrat zatržítko. :guilabel:`Kopírovat...` Kopírovat soubor do zadané destinace. :guilabel:`Přejmenovat...` Přejmenovat soubor. :guilabel:`Seznam stavů`> M, A, R, C, S, I, !(postrádaný), ?(neznámý) :strong:`Jde-li o neznámé (?) soubory pracovního adresáře`: V tomto případě se nabídka skládá z Edit Local, Open Local, Explore Local, Copy Path, Add, Označit, Odznačit, Seznam stavů - plus: :guilabel:`Změna názvu ...` Otevře okno pro nalezení přejmenovaných souborů. :guilabel:`Ignorovat ...` Otevře seznam ignorovaných souborů. :guilabel:`Smazat neverzované...` Smazat neverzované soubory. Analýza zpráv komitů -------------------- V poli +/- **Changeset** na kartě Podrobnosti revizí jsou detekovány a podtrženy heše, adresy HTTP(s) a označení chybových zpráv, nalezené ve zprávách komitů. Tyto podtržené údaje jsou aktivní linky k changesetům v Přehledu revizí. URL adresy HTTP a HTTPS se podobně změní na klikatelné linky které se otevřou ve vašem implicitním webovém prohlížeči. Linky k Issue Tracker jsou povoleny, pokud je to nastaveno v sekci 'tortoisehg' vašeho konfiguračního souboru. Protože lze nastavit pouze jeden issue tracker, je obvykle uváděn v souboru `.hg/hgrc`. Jsou dva klíče: issue.regex a issue.link. První definuje regex shody při výběru čísla problému, druhý definuje příkaz, který má být po určení čísla problému proveden. Do issue.regex můžete vložit skupiny a odpovídajících {n} znaků (tokens) do issue.link (kde n je pozitivní celé číslo). {0} odkazuje na celý řetězec, porovnávaný issue.regexem, zatímco {1} odkazuje na první skupinu, atd. Nejsou-li v issue.linku nalezeny žádné {n} znaky, je připojen celý porovnávaný řetězec. Příklady:: BitBucket: issue.regex = #(\d+)\b issue.link = https://bitbucket.org//issue/{1}/ Mercurial: issue.regex = \bissue(\d+)\b issue.link = https://bz.mercurial-scm.org/show_bug.cgi?id={1} Výstupní konzola ---------------- V konzole, vestavěné do nepřemístitelného panelu (Output Log), lze spouštět příkazy Mercurialu (hg), TortoiseHg (thg), řadu speciálních příkazů a omezený počet příkazů konzoly. Příkazy se vždy provedou v kořenovém adresáři aktuálního repozitáře (repozitória). Prompt je aktualizován pro udržení souvislosti. Začíná-li příkaz 'hg', je proveden v prováděcím prostředí TortoiseHg; což znamená, že výstup je poslán do Output Log ale požadavky na vstupy jsou obslouženy dialogovými okny. Začíná-li příkaz 'thg', je zadaný příkaz proveden v novém okně pro tentýž proces. Například 'thg ci' otevře nové okno s procedurou pro předání změn (commit) do aktuálního repozitáře. Je-li zadaným příkazem 'clear' nebo 'cls' smaže se obsah konzoly. Příkaz 'exit' toto okno zavře. .. note:: Otherwise, the command line is forwarded to your platform’s default command shell with a limited execution context. There is no stdin while stdout and stderr are piped to the output log. Klávesová navigace ------------------ :kbd:`Ctrl-P` Přesun do rodičovské revize pracovního adresáře :kbd:`Ctrl-D` Zobrazit visuální diffy pro vybraný changeset nebo soubor :kbd:`Ctrl-S` Přepínač mezi sadou revizí a lištou filtru. Viz také `KeySequences `_ na stránkách Wiki. Nastavitelné možnosti --------------------- Nastavitelné parametry Verpánku lze zadat v dialogu :menuselection:`Soubor > Settings > Verpánek` viz odstavec 6.1.2 kapitoly 6. Nastavení parametrů. Konkretní barvu u parametru "Zabarvení podle autora" lze zadat v souboru :file:`Mercurial.ini`: :: [tortoisehg]. authorcolor.USERNAME = color Spuštění z příkazového řádku ---------------------------- thg log [OPTIONS] [FILE] aliases: history, explorer, workbench workbench application use "thg -v help log" to show global options .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1737033607.939414 tortoisehg-6.9/doc/source-ja/0000755000000000000000000000000014742203610014751 5ustar00rootroot././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1737033607.939414 tortoisehg-6.9/doc/source-ja/.static/0000755000000000000000000000000014742203610016316 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/.static/.keep0000644000000000000000000000000011534217015017231 0ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/BASE0000644000000000000000000000005511534217015015406 0ustar00rootroot6025:30c5d9a1f5dd90791d86850d83bef1823209ae66././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-ja/changelog.txt0000644000000000000000000007007614023111777017457 0ustar00rootrootチェンジログ ============ .. module:: changelog.dialog :synopsis: チェンジログを表示するダイアログ チェンジログビューア (別名:リポジトリエクスプローラ) はリポジトリのリビジョン履歴を可視化し、 チェンジセットに対して様々な操作をするのに使用され、リビジョン履歴をグラフ化し、 親/子リビジョンの関係を表示します。また各リビジョンにおいてどのファイルが変更さたのか、 さらに変更内容についても見ることができます。 .. figure:: figures/log.png :alt: チェンジログ ツールバーを非表示にしたチェンジログビューア チェンジログビューアには各種機能を実行したり、 他のツールを起動したりするためのメニューバーがあります。 :guilabel:`ツール` TortoiseHg の各種ツールを別プロセスで起動します。 :guilabel:`表示` オプション機能の表示切り替えと、表示内容の再読み込みします。 :guilabel:`リビジョン` リポジトリ内の特定のチェンジセットを選択します。 :guilabel:`同期` リポジトリ同期機能 (後述) に関する操作をします。 :guilabel:`ヘルプ` システム既定のウェブブラウザでチェンジログビューアに関するヘルプを開きます。 また TortoiseHg のバージョン情報を表示します。 ツールバーボタンを左から順に見ていきます: :guilabel:`再読み込み` リビジョン履歴を再読み込みします (別のウィンドウでコミットした時など)。 :guilabel:`マークをリセット` リビジョングラフの新規・受信・送信リビジョンを表すマークを消して再読み込みします。 :guilabel:`同期ツール` 同期ツールを開きます。他のリポジトリとチェンジセットのやり取りできます。 :guilabel:`MQ` MQ パネルの表示を切り替えます。このボタンは MQ 拡張機能がユーザによって 有効化されているときのみ表示されます。 :guilabel:`コミット` コミットダイアログを別プロセスで起動します。 :guilabel:`リポジトリ検索` リポジトリ検索ツールを別プロセスで起動します。 :guilabel:`リカバリ` リカバリツールを別プロセスで起動します。 :guilabel:`ウェブサーバ` ウェブサーバツールを別プロセスで起動します。 :guilabel:`シェルフ` シェルフダイアログを別プロセスで起動します。 :guilabel:`さらにリビジョンを読み込む` チェンジセット一覧に次の N 件のリビジョンを読み込みます。 :guilabel:`全リビジョンを読み込む` チェンジセット一覧に残りすべてのリビジョンを読み込みます。 同期バー -------- .. figure:: figures/syncbar.png :alt: 同期バー チェンジログビューアのリポジトリ同期機能 左から順に :guilabel:`受信` 指定されたリポジトリからチェンジセットをダウンロードして一時的なバンドル ファイルとして保存した後、プレビューモードに切り替えます。 リビジョングラフでは受信したチェンジセットの横に下向きの矢印が表示されます。 :guilabel:`取り込み` プレビュー中のバンドルをローカルのリポジトリに取り込みます (プル)。 このボタンはバンドルのプレビュー中にのみ有効になります。 プル後の操作が設定されている場合、取り込み完了後に実行されます。 :guilabel:`破棄` プレビュー中のバンドルを破棄して、プレビューモードから抜けます。 このボタンはバンドルのプレビュー中にのみ有効になります。 :guilabel:`プル` 指定されたリポジトリからチェンジセットをプルし、プル後の操作 (update, fetch, または rebase) が実行されます。 :guilabel:`インポート` インポートダイアログを開いてパッチを取り込みます。 :guilabel:`送信` 指定されたリポジトリに送信されるチェンジセットを確認します。 リビジョングラフでは送信されるチェンジセットの横に上向きの矢印が表示されます。 :guilabel:`プッシュ` 指定されたリポジトリにチェンジセットをプッシュします。 :guilabel:`メール送信` 指定したリポジトリへのチェンジセットをメールで送信します。 :guilabel:`中止` 現在の操作を中止します。このボタンは送信チェンジセットの確認中 (incoming) にのみ有効になります。 :guilabel:`中止` ボタンの右側には閲覧中のリポジトリに設定されたすべてのリモートリポジトリ を含むコンボボックスがあります。デフォルトのリポジトリパスが設定されている場合は 起動時にそれが自動的に選択されます。リポジトリパス設定の詳細については `hg.1.html#urls `_ をご覧ください。 さらにその右側には :guilabel:`プル後の操作` コンボボックスがあり、 同期バーによるプル操作が完了した後に実行する処理を選択することができます。 :guilabel:`更新` (update) 以外の操作として :guilabel:`リベース` (rebase) と :guilabel:`取得` (fetch) がありますが、それぞれ rebase 拡張機能と fetch 拡張機能を有効化しない限りリストには表示されません。 :guilabel:`プル後の操作` コンボボックスの右側は :guilabel:`設定` ボタンになります。 このボタンを押すとリポジトリ設定ダイアログの :guilabel:`同期` タブが開かれ、 素早くプル後の操作やリポジトリパスを設定することが可能になっています。 リポジトリ同期機能によってチェンジログビューアが起動した後に追加された チェンジセットはリビジョングラフでは緑色の星印が表示されます。 これにはコミット、プルされたチェンジセット、適用されたパッチなどを含みます。 .. note:: 緑色の星印が表示された新規チェンジセットを通常表示に戻すには :guilabel:`表示 -> マークをリセット` を使用してください。 フィルタバー ------------ .. figure:: figures/searchbar.png :alt: フィルタバー チェンジログビューアのフィルタ機能 フィルタバーを使えばチェンジセットに素早くフィルタをかけることができます。 左から順に :guilabel:`全て` すべてのチェンジセットを表示します。実質的にはすべてのフィルタを解除します。 :guilabel:`タグ` タグの付いたチェンジセットのみ表示します。 :guilabel:`祖先` 現在選択しているチェンジセットの祖先にあたるチェンジセットのみを表示します。 このフィルタはチェンジセットが選択されているときのみ有効になります。 :guilabel:`親リビジョン` 作業ディレクトリの親リビジョンのみを表示します。 マージ作業中でない限り常に1つのチェンジセットのみが表示されます。 :guilabel:`ヘッド` リポジトリのヘッドリビジョン (子リビジョンを持たないチェンジセット) のみを表示します。 :guilabel:`マージ` リポジトリのマージリビジョン (2つの親リビジョンを持つチェンジセット) のみを表示します。 :guilabel:`マージを非表示` マージリビジョンの表示を切り替えるトグルボタンです。他のフィルタと併用できる ようにするためラジオボタンではありません。 :guilabel:`ブランチ` 選択したブランチに属するリビジョンのみを表示するフィルタです。 コンボボックスにはリポジトリ内のブランチ名が含まれますが、 :guilabel:`リポジトリ設定 -> チェンジログ -> 削除済みブランチ` の設定が適用されています。 :guilabel:`カスタムフィルタ` 最後のコンボボックスはその横にあるテキストボックスに入力するタイプの フィルタです。 カスタムフィルタはまず最初にフィルタの種類をコンボボックスで選択し、 テキストボックスに条件を入力してエンターキーを押すことで適用されます。 :guilabel:`リビジョンの範囲` 入力されたテキストをリビジョンの範囲として解釈します。詳細は `hg.1.html#revisions `_ をご覧ください。 :guilabel:`ファイル名パターン` 入力されたテキストを glob パターンとして解釈します。 *regexp:* を先頭に付加することで正規表現パターンとして解釈されます。詳細は `hg.1.html#patterns `_ をご覧ください。 :guilabel:`キーワード` 入力されたテキストをチェンジセットのメタデータ (ユーザ名、コミットメッセージなど) にマッチするキーワードとして解釈します。 :guilabel:`日付` 入力されたテキストを日付の範囲として解釈します。詳細は `hg.1.html#dates `_ をご覧ください。 :guilabel:`ユーザ名` 入力されたテキストをユーザ名 (コミッタ) として解釈します。 フィルタ条件の入力エリアはコンボボックスになっており、 ダイアログを開いている間は入力履歴を保持します。 ドロップダウンリストを開いて項目を選択するとフィルタが適用されます。 リビジョングラフ ---------------- グラフ列はリポジトリのリビジョン間の親子関係を表示します。この列は読み込まれている チェンジセットを可視化するのに必要な幅が自動的に決定されます。チェンジログビューア 全体の表示を保つために表示幅には制限が設けられていますが、読み込み完了後に変更する ことができます。 実行速度への影響 ---------------- チェンジログビューアには巨大なリポジトリで使うべきではない機能がいくつかあります。 There are some Repository Explorer features that should probably be avoided in large repositories. * :menuselection:`表示 -> ブランチで色分け` このオプションはグラフ描画のために各リビジョンごとにブランチ名を取得する必要があり、 リビジョン一覧の読み込み速度の低下を招きます。 * :menuselection:`表示 -> コンパクトグラフ` このオプションを有効にすると通常のグラフ描画速度より遅くなります。 またグラフにおけるリビジョン間の接続が不正確になります。 その意味でグラフの正確さかグラフの横幅の節約のどちらを取るかによります。 * リビジョン一覧の :guilabel:`変更` 列 巨大な作業コピーを持つリポジトリにおいてこの列を表示することは実行速度の面で高くつきます。 チェンジログビューアの起動だけでなく、スクロール速度も低下します。 リビジョンの右クリックメニュー ------------------------------ グラフパネルのリビジョンを選択して右クリックするとリビジョンの右クリックメニューが 表示されます: :guilabel:`GUI 差分ツールで表示` 指定された GUI 差分表示ツールでこのチェンジセットを開きます。 :guilabel:`変更点の表示` チェンジセットブラウザでこのチェンジセットを開きます。 :guilabel:`ローカルとの差分` GUI 差分表示ツールでこのチェンジセットと作業ディレクトリの内容の差分を表示します。 :guilabel:`ハッシュ値のコピー` このリビジョンの完全なハッシュ値をクリップボードにコピーします。 :guilabel:`更新...` 作業ディレクトリをこのリビジョンにおける内容に更新します。 [#rcm1]_ :guilabel:`マージ...` このリビジョンとマージします。 [#rcm2]_ :guilabel:`バックアウト...` 選択中のリビジョンをバックアウトするチェンジセットを作成します。 :guilabel:`元に戻す` 作業ディレクトリの親リビジョンを変更せずに、このリビジョンの内容に戻します。 十分注意して使用してください。 :guilabel:`エクスポート` :guilabel:`パッチの作成...` このリビジョンの変更点を含んだパッチを作成します。 :guilabel:`メールで送信...` このリビジョンの変更点をメールで送信します。 [#rcm3]_ :guilabel:`バンドルの作成...` 選択中のリビジョンから tip リビジョンまでのすべてのリビジョンを含むバンドルを作成します。 :guilabel:`アーカイブに保存...` このリビジョンでアーカイブダイアログを開き、リポジトリのバックアップを作成します。 :guilabel:`タグ` :guilabel:`タグの追加/削除...` TortoiseHg のタグ編集ダイアログを開きます。 :guilabel:`ブックマークの追加/移動/削除...` TortoiseHg のブックマークダイアログを選択中のリビジョンで開きます。 *このメニューは boomarks 拡張機能が有効なときにのみ表示されます。* :guilabel:`ブックマークの名前変更...` TortoiseHg のブックマーク名変更ダイアログを開きます。 *このメニューは boomarks 拡張機能が有効なときにのみ表示されます。* :guilabel:`Mercurial Queue` :guilabel:`MQ にインポート` 選択中のリビジョンを MQ にインポートします。 qbase リビジョンまたはヘッドリビジョンにのみ有効です。 *このメニューは mq 拡張機能が有効なときにのみ表示されます。* :guilabel:`削除...` 選択中のリビジョンとそのすべての子孫にあたるリビジョンをリポジトリから削除します。 [#rcm4]_ *このメニューは mq 拡張機能が有効なときにのみ表示されます。* :guilabel:`ローカルに移植` 選択中のリビジョンを現在の作業ディレクトリの親リビジョンの上に移植 (transplant) します。 *このメニューは transplant 拡張機能が有効なときにのみ表示されます。* :guilabel:`Bisect` :guilabel:`リセット` Bisect の状態をリセットします。 詳しくは後述の `bisect <#id10>`_ のセクションを参照してください。 :guilabel:`Good としてマーク` 選択中のリビジョンを Good としてマークします。 :guilabel:`Bad としてマーク` 選択中のリビジョンを Bad としてマークします。 :guilabel:`テストをスキップ` 選択中のリビジョンのテストをスキップします。 リビジョンを選択した後、別のリビジョンの上で右クリックすると先ほどとは異なる 右クリックメニューが表示されます。このメニューにはリビジョン範囲を扱うコマンドが 含まれています。 :guilabel:`選択中のリビジョンとの差分` リビジョン範囲で累積された変更をステータスビューアで開きます。 これは変更点の中から特定のファイルへの変更だけを取り出して保存するのに便利です。 :guilabel:`選択中のリビジョンとの GUI 差分表示` [#rcm5]_ リビジョン範囲で累積された変更を GUI 差分表示ツールで開きます。 :guilabel:`この範囲をメールで送信` リビジョン範囲でメール送信ダイアログを開きます。 :guilabel:`この範囲をバンドル` リビジョン範囲を含むバンドルファイルを作成します。 :guilabel:`この範囲をパッチとして保存...` リビジョン範囲のチェンジセットを個別のパッチとして保存します。 :guilabel:`マージ...` [#rcm6]_ このリビジョンと選択中のリビジョンをマージします。もしどちらのリビジョンも チェックアウトされていない場合はマージ作業を始める前に最初に選択したリビジョンに更新されます。 作業ディレクトリがクリーンでない場合、この操作は失敗します。 :guilabel:`この範囲をローカルに移植` リビジョン範囲のチェンジセットを現在の作業ディレクトリの親リビジョンの上に移植 (transplant) します。 *このメニューは transplant 拡張機能が有効なときにのみ表示されます。* :guilabel:`選択中のリビジョンの上にリベースする` このリビジョンを選択中のリビジョンの上にリベースします。 *このメニューは rebase 拡張機能が有効なときにのみ表示されます。* :guilabel:`この範囲を MQ にインポート` リビジョン範囲のチェンジセットを MQ にインポートします。 *このメニューは mq 拡張機能が有効なときにのみ表示されます。* .. [#rcm1] 選択したリビジョンが指定された状態で TortoiseHg の更新ダイアログが開きます。 .. [#rcm2] 選択したリビジョンが指定された状態で TortoiseHg のマージダイアログが開きます。 .. [#rcm3] 選択したリビジョンが指定された状態で TortoiseHg のメール送信ダイアログが開きます。 .. [#rcm4] strip コマンドは削除したリビジョンを後で再適用できるようにバンドルファイルとして 保存します。詳細は `こちら `_ を参照してください。 .. [#rcm5] :menuselection:`ユーザ設定 --> TortoiseHg --> GUI 差分表示コマンド` .. [#rcm6] 選択中のリビジョンが現在の作業ディレクトリの親リビジョンであるときのみ有効になります。 ファイルの右クリックメニュー ---------------------------- 左下にあるファイル一覧のファイル名の上で右クリックすると、そのファイルの 右クリックメニューが表示されます: :guilabel:`GUI 差分表示` このファイルを GUI の差分表示ツールで開きます。 :guilabel:`ローカルとの差分` このファイルと作業ディレクトリの該当ファイルの差分を視覚的に表示します。 :guilabel:`エディタで表示` このファイルを GUI のエディタで開きます。 [#flcm1]_ :guilabel:`ファイルに保存...` このファイルを指定された場所に保存します。 :guilabel:`履歴の表示` このファイルが変更されたすべてのリビジョンを表示します。 [#flcm2]_ :guilabel:`行ごとの履歴を表示` このファイルの行ごとの変更履歴を表示します。 :guilabel:`元に戻す` このファイルを作業ディレクトリに取り出します。 [#flcm3]_ .. [#flcm1] :menuselection:`ユーザ設定 --> TortoiseHg --> GUI エディタ` .. [#flcm2] ファイルの履歴を変更しない単純な変更のみ表示し、削除されたファイルなどは 表示されません。 .. [#flcm3] 新しいファイル内容は作業ディレクトリへの変更として反映されるので、 コミットが必要になります。 チェンジセットブラウザ ---------------------- チェンジセットブラウザは動作速度向上のため通常1つのファイルの差分のみ表示します。 一度にすべてのファイルの差分を表示したい場合は :guilabel:`[すべてのファイル]` を クリックしてください。またチェンジセットブラウザは最大差分サイズを超えるファイル は表示せず飛ばします。詳しくは :menuselection:`ユーザ設定 --> TortoiseHg --> 最大差分サイズ` を参照してください。 :menuselection:`表示 -> 最大差分サイズ制限を無視` を使用すると一時的にこのオプションを無効化できます。 チェンジログビューアとリポジトリ検索ツールは単一のリビジョンまたはいくつかの リビジョン範囲が連結された差分を表示するためにチェンジセットブラウザを開きます。 チェンジセットブラウザはコミットツールやシェルフツールにとても良く似ています。 左側には変更されたすべてのファイルが一覧表示され、右側の差分パネルには変更箇所が 行ごとに表示されます。 '変更差分モード' で開いた場合、表示しているチェンジセットからファイルまたは ファイル内のハンクを選択して特定の変更点を抽出し、ツールバーの :guilabel:`名前を付けて保存` ボタンからそれらをパッチとして保存できます。 これはリポジトリから必要な変更のみを取り出すのに非常に効率的な方法です。 チェンジセットブラウザはキーボードショートカットの :kbd:`Ctrl-C` に 対応しているため、ハイライトされているハンクをクリップボードにコピーできます。 残念ながら TortoiseHg にはまだ変更点を取り込むためのダイアログが用意されていないため、 これらについてはコマンドラインから :command:`hg import` を実行してください。 コミットメッセージの解析 ------------------------ TortoiseHg 1.0 からチェンジログビューアはコミットメッセージ内のチェンジセットのハッシュ値、 ウェブサイトの URL、バグ管理システムの識別番号を認識して下線を引きます。 下線が引かれた部分はクリック可能なリンクになります。 16進数 (0-9a-f) の12文字または40文字の連続した文字列はすべてチェンジセットのハッシュ値と見なされ、 そのチェンジセットへのリンクになります。 開いているリポジトリにそのチェンジセットが存在すれば、クリックすることで移動できます。 ウェブサイトの URL も同様にクリック可能なリンクになり、システム既定のブラウザで開かれます。 バグ番号のリンクは設定ファイルの tortoisehg セクションが設定されているときに有効になります。 今のところ1度に1つのバグ管理システムしか登録できませんが、通常はリポジトリの :file:`.hg/hgrc` ファイルに記述します。設定項目は issue.regex と issue.link の2つです。 issue.regex でバグ番号を切り出すための正規表現を定義し、 issue.link でどのような URL を生成するかを定義します。 issue.regex では正規表現のグループ機能を使うことができ、グループでマッチした文字列は {n} (n は非負整数) を issue.link に含めることで展開されます。 {0] は issue.regex によるマッチ全体、 {1} は最初のグループを参照します。 {n} トークンが issue.link に含まれていない場合、マッチ全体が issue.link 文字列の最後に追加されます。 設定例: :: BitBucket: issue.regex = #(\d+)\b issue.link = https://bitbucket.org//issue/{1}/ Mercurial: issue.regex = \bissue(\d+)\b issue.link = https://bz.mercurial-scm.org/show_bug.cgi?id={1} Bisect ------ TortoiseHg 1.0 から、どのチェンジセットにおいてバグが入り込んだのかを調べる Bisect 機能に対応しました。まず、バグが確認されているもっとも新しいチェンジセットに "Bad" のマークを付け、次にバグがないとわかっているもっとも古いチェンジセットに "Good" のマークを付けます。そしてテストを実行して作業ディレクトリの親リビジョンが "Good" なのか "Bad" なのかをマークします。すると Bisect は別の可能性のあるチェンジセットに更新します。もしそれ以上可能性のある リビジョンがない場合は問題のリビジョンが見つかったことを知らせます。 リビジョンに "Good" または "Bad" のマークを付ける際、 そのチェンジセットをチェックアウトする必要はありません。 より自動的な Bisect を実現するには Mercurial をコマンドラインから使用し、 作業ディレクトリの構成でビルドしてテストを実行し、0 (成功)、125 (スキップ)、 127 (中断)、または "Bad" (0、125、127以外) を返す自動化されたテストを提供する必要があります。 詳しくは :command:`hg bisect` コマンドのヘルプを参照してください。 キーボードショートカット ------------------------ :kbd:`Ctrl-P` 作業ディレクトリの親リビジョンに移動します :kbd:`Ctrl-D` GUI の差分表示ツールで選択中のチェンジセットを表示します :kbd:`Ctrl-R` 表示内容を再読み込みします :kbd:`Ctrl-G` 指定リビジョンに移動します オプション設定 -------------- チェンジログビューアには TortoiseHg 設定ダイアログのチェンジログタブから変更できる いくつかのオプション項目があります。 :guilabel:`コミッタの色分け` チェンジセットをコミッタごとに色分けします :guilabel:`改行を無視してログを表示` コミットメッセージの改行を無視して、最大80文字まで表示します :guilabel:`読み込むログの件数` 一度に読み込むリビジョンの件数 :guilabel:`ハッシュ値のコピー` 選択時にリビジョンのチェンジセット ID (ハッシュ値) をクリップボードにコピーします。 廃止予定。 :guilabel:`削除済みブランチ` リポジトリでブランチ名一覧を作成する際に無視するブランチ名をカンマ区切りで指定します。 :guilabel:`ブランチの色:` ブランチ名とその色を "branch:#XXXXXX" の形式で空白文字区切りで指定。 ブランチ名に含まれる空白文字とコロン(":")はバックスラッシュ("\")で エスケープする必要があります。同様に他の文字についても、例えば "\u0040" はアットマーク("@")にデコードされ、"\n" は改行になります。 :guilabel:`非表示タグ:` 非表示にしたいタグ名を空白区切りで指定。便利な使用例:"qbase qparent qtip" を設定することで MQ 拡張機能が使用するタグを隠すことができます。 :guilabel:`折り畳み` チェンジセットのヘッダ情報を折り畳み可能にします。このオプションを有効にした場合、 ヘッダ情報の部分は固定表示になります。 特定のコミッタに指定した色を割り当てたい場合は :file:`Mercurial.ini` ファイルに 次の設定を追加してください: :: [tortoisehg] authorcolor.コミッタ名 = color またチェンジログビューアは TortoiseHg ページの以下の設定も反映されます: :guilabel:`タブ文字の幅` コメント情報の表示でタブ文字1つあたりいくつの空白に展開するかを指定します :guilabel:`最大差分サイズ` 表示する最大の差分ファイルサイズ :guilabel:`差分を画面下部に表示` ファイル一覧の下に差分表示パネルを配置する コマンドラインからの実行 ------------------------ チェンジログビューアはコマンドラインから起動することもできます: :: hgtk log [OPTIONS] [FILE] aliases: history changelog viewer options: -l --limit limit number of changes displayed use "hgtk -v help log" to show global options .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/clone.txt0000644000000000000000000000573511534217015016624 0ustar00rootrootクローン ================ .. module:: clone.dialog :synopsis: リポジトリのクローンに使うダイアログ リポジトリのクローンにはクローンダイアログを使います。 エクスプローラで右クリックメニューを開いて :menuselection:`TortoiseHg... --> リポジトリのクローン` を選択するか、 コマンドラインから :command:`hgtk clone` を実行してください。 .. figure:: figures/clone.png :alt: クローンダイアログ クローンダイアログ :guilabel:`クローン元` クローン元のリポジトリパス (ディレクトリまたは URL) を指定してください。 :guilabel:`選択...` ボタンを使えばローカルのディレクトリを選択できます。 :guilabel:`クローン先` クローン先のディレクトリを指定してください。このディレクトリにクローン元と同じ名前の ディレクトリが作成されます。 :guilabel:`詳細設定` には以下の設定項目が含まれています: :guilabel:`リビジョン指定` ここで指定したリビジョンまでクローンするよう制限できます。 指定したリビジョン以降のタグであればインポートされます。 :guilabel:`クローン後に作業ディレクトリを HEAD に更新しない` チェックを入れた場合、クローンが完了しても作業ディレクトリが空のままになります。 これは共有リポジトリやバックアップなど、プルまたはプッシュしかしないような リポジトリのクローンに便利です。 :guilabel:`メタデータのコピーに Pull を使用する` クローン元とクローン先が同一ファイルシステムのとき、Mercurial はハードリンクの使用を試みますが、 AFS など一部の不完全なハードリンク実装を持つファイルシステムではエラー報告が出ません。 このオプションを使用すればハードリンクの使用しないように明示的に指定できます。 :guilabel:`無圧縮で転送する` 無圧縮のデータ転送を使用します。有線 LAN ネットワークではその方が速い場合があります。 :guilabel:`プロキシサーバを使用する` :menuselection:`TortoiseHg... --> ユーザ設定 --> プロキシ` で設定したプロキシサーバを使用します。 このオプションはプロキシサーバが設定されているときのみ有効になります。 :guilabel:`リモートコマンド` クローン元のリポジトリで実行する Mercurial コマンドを指定します。 コマンドラインからの実行 ------------------------ クローンツールはコマンドラインから起動することもできます: :: hgtk clone コマンドの構文は: :: hgtk clone [SOURCE] [DEST] [SOURCE] と [DEST] は、それぞれクローン元リポジトリのパスとクローン先のディレクトリです。 .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-ja/commit.txt0000644000000000000000000006506314023111777017020 0ustar00rootrootコミット ======== .. module:: commit.dialog :synopsis: コミットを実行するダイアログ .. warning:: win32text 拡張機能はハンク選択で問題を引き起こす可能性があります。この問題は Mercurial 1.3 と TortoiseHg 0.8 において解決されましたが、適切な設定が 必要です。詳しくは `issue #82 `_ をご覧ください。 コミットツールは TortoiseHg に2つある主要アプリケーションのうちの1つです。 リポジトリエクスプローラ (別名: チェンジログビューア) と共にこれら2つのツールは TortoiseHg が実装しているほぼすべての機能にアクセスできます。 コミットツールは変更点をコミットするだけではなく、作業ディレクトリの状態の確認や、 その他にも様々な作業 (新規ファイルの追加、名前変更の記録、 リポジトリの無視フィルタの編集、など) もコミットツール上で行なえます。 .. figure:: figures/commit.png :alt: コミットダイアログ コミットダイアログ 機能 ---- コミットツールの一番上にはバージョン 0.9 から導入されたメニューバーがあります。 :guilabel:`ツール` TortoiseHg の各種ツールを別プロセスで起動します。 :guilabel:`表示` オプション機能の表示切り替えと、作業ディレクトリの表示内容を再読み込みします。 :guilabel:`操作` ツールバーのボタンと同じ操作を実行できます。 :guilabel:`ヘルプ` システム既定のウェブブラウザでコミットツールに関するヘルプを開きます。 また TortoiseHg のバージョン情報を表示します。 その下のツールバーにあるボタンを左から順に見ていきます: :guilabel:`コミット` チェックされたファイルの選択されたハンクをコミットします。 :guilabel:`取り消し` 直前のコミットを取り消します。入力したコミットメッセージは :guilabel:`最近コミットしたメッセージ` の一覧に追加されるため、 コミットミスを修正した後に同じメッセージでコミットできます。 :guilabel:`差分` チェックされているファイルを GUI 差分ツールで表示します。 :guilabel:`元に戻す` チェックされているファイルを変更を加える前の状態に戻します。 その変更がマージの場合はどちらの親リビジョンに戻すか選択できます。 :guilabel:`追加` チェックされている不明ファイル '?' または無視ファイル 'I' を追加します。 :guilabel:`移動` チェックされているファイルを指定されたディレクトリに移動します。 :guilabel:`削除` チェックされているファイルを削除します。 :guilabel:`破棄` チェックされている管理済みファイルを破棄します。 :guilabel:`再読み込み` 作業ディレクトリの状態を再読み込みします。 再読み込み後もチェックボックスの選択状態は保たれます。 :guilabel:`MQ` MQ パネルの表示を切り替えます。このボタンは MQ 拡張機能がユーザによって 有効化されているときのみ表示されます。 ツールバーの下にはいくつかの便利なウィジェットがあります: :guilabel:`ブランチダイアログ` 作業ディレクトリの現在のブランチ名を表示します。通常はブランチ名の表示のみですが、 このボタンを押すとブランチ操作のためのダイアログが表示されます。 この機能は Mercurial の `名前付きブランチ `_ を理解している場合のみ使用してください。 :guilabel:`最近コミットしたメッセージ` 最近のコミットメッセージ 10 件のドロップダウンリストです。 このリストは最初に開いた時にコミットメッセージが読み込まれます。 :guilabel:`QNew` MQ 拡張機能を使用している場合、新しいパッチ名を入力するためのテキストボックスが 表示されます。パッチ名を入力するとコミットツールは 'QNew' モードに切り替わります。 ファイル一覧には4つの列があります: 1) 各種操作のためにそのファイルが選択されているかどうかを示すチェックボックス。 ツールバーボタンによる操作はチェックされているファイルにのみ行なわれます。 部分選択状態のファイルについては特殊なチェック状態となります。 この列のヘッダを使えばすべてのファイルをチェックしたりチェックを外したりできます。 2) :guilabel:`状態` 列には Mercurial の status コマンドで使用されている ファイル状態を示す 'MARD?IC' のうちの1つが表示されます。'S' は未コミットの変更を含むサブリポジトリを意味します。 3) :guilabel:`マージ` 列はそのファイルのマージ状態を示しており、Mercurial の resolve コマンドで使用されている ' RU' のうちどれか1つが表示されます。 4) リポジトリルートを基準としたファイルパスが表示されます。 .. note:: コミットツールがファイルパターンまたは特定のファイルを選択した状態で起動された場合、 ファイル一覧の下にそれらのフィルタを削除して作業ディレクトリにおける変更すべてを 表示するためのボタンが表示されます。 ファイル一覧の下に並んだチェックボックスは {M:変更, A:追加, R:削除, !:削除, ?:不明, C:クリーン, I:無視} のファイル状態ごとにファイル一覧に表示するかどうかを設定できます。 このチェックボックスはコミットツールからファイルまたはディレクトリを指定された場合には 無効になります。 *R:削除* は管理済みファイルが Mercurial の管理から外されたことを示しています。 一方で *!:削除* は管理済みファイルが見当たらず、Mercurial がそのファイルを 追跡できなくなったことを意味しています。例えば管理済みファイルの名前をエクスプローラで 変更したとき、コミットツールのファイル一覧には元のファイル名が *!:削除* として表示され、 新しいファイル名が *?:不明* として表示されます。新しいファイル名の右クリックメニューから 名前変更推定ダイアログを起動すればファイル内容の比較によって名前変更を検出し、 古いファイルを *R:削除* とマークし、新しいファイルを *A:追加* とマークすることができます。 *?:不明* は Mercurial によって管理されておらず、かつ、設定されている 無視ファイルフィルタにマッチしないファイルに表示されます。リビジョン管理に 追加する必要のあるファイルなどはデフォルトで不明ファイルとして表示されます。 無視ファイルフィルタを最新に保つことは良い習慣です。不明ファイルの 右クリックメニューには無視ファイルフィルタを編集するツールを開くコマンドがあります。 *C:クリーン* は変更が加えられていない管理済みのファイルです。 一方で *I:無視* は設定されている無視ファイルフィルタに該当する管理外のファイルです。 どちらのファイルもエクスプローラでの選択に含めるか、 コマンドラインからそのファイル名を指定して起動しない限りデフォルトでは表示されません。 .. figure:: figures/parentbar.png :alt: 親リビジョンバー コミットツールの親リビジョンバー ファイル一覧と差分表示パネルの下には *親リビジョンバー* があります。 ここには現在の作業ディレクトリの親にあたるチェンジセットが表示され、 コミットによって新しくヘッドが作成されるかどうか見ることができます。 このバーは :guilabel:`表示` メニューから非表示にできます。 ファイル一覧の右側は差分表示パネルになります。バージョン 0.9 から差分表示パネルが タブ表示になりました。 :guilabel:`テキスト差分` 選択しているファイルの差分をテキストで表示します。 :guilabel:`ハンク選択` バージョン 0.7 から 0.8 まではこのタブは単純に内容を表示するだけでしたが、 0.8 からはハンク選択機能が実装され、変更点の一部を選択してコミットできる ようになりました。このタブには選択されているファイルの差分ハンクが表示されますが、 バイナリファイルは表示されません。内容の確認は :guilabel:`テキスト差分` タブで行ってください。 :guilabel:`コミットプレビュー` このタブにはすべての選択されたハンクが表示されます。実質的にこのプレビューには コミットボタンを押したときに何がコミットされるかが表示されます。 :guilabel:`パッチ内容` コミットツールがパッチ更新モードのときにのみ表示されます。 ここには現在のパッチ内容が表示されます。 .. figure:: figures/advancedbar.png :alt: 詳細設定バー コミットツールの詳細設定バー :guilabel:`表示` メニュー で :guilabel:`詳細設定` を有効にした場合、 ツールバーとコミットログ履歴の間に詳細設定バーが挿入されます。このバーには: :guilabel:`コミッタ` コミットに使用するユーザ名です。この値は通常 Mercurial.ini ファイルから 読み込まれますが、コマンドラインやパッチファイルから読み込んで指定すること もできます。直接入力することで異なるユーザを指定することも可能です。 :guilabel:`自動的に含む` ファイルにチェックを入れたかどうかに関わらず、常にコミットに含めたい ファイルをカンマ区切りで指定するためのテキストボックスです。 この機能はリポジトリの pre-commit フックによってコミット時に自動更新される ファイル (例えば changelog ファイル) などを常にコミットに含めたい、 というときに便利です。 :guilabel:`コミット後にプッシュ` コミットが正常に完了した後、デフォルトの URL にプッシュするかどうかを 設定するチェックボックスです。 変更点の選択 ------------ さて、「チェックされたファイルの選択されたハンクをコミットする」と言ったとき、 それは何を意味しているのでしょうか? TortoiseHg のコミットツールには 変更点の一部のみをコミットする機能が標準で備わっているため、 単純にそれを使うという意味になります。 つまり、管理下に置かれたファイルに対するすべての変更箇所は、どの部分をコミットに含めて、 どの部分をコミットせずに (作業ディレクトリに) 残すのか個別に選択することができます。 darcs バージョン管理システム、または Mercurial の record 拡張機能のユーザであれば すぐに分かるはずです。 どんなとき必要になるのか? ^^^^^^^^^^^^^^^^^^^^^^^^^^ 関連性の低い複数の変更が作業ディレクトリにあり、それらを個別のチェンジセットとして コミットしたいとします。この場合、コミット時にファイル一覧を指定することでうまく 対処できるケースもありますが、同じソースコードに変更点が混ざり合っているケースでは コミットする変更点を選択する機能が必要不可欠になります。 どうやって使うのか? ^^^^^^^^^^^^^^^^^^^^ 差分表示パネルの :guilabel:`ハンク選択` タブでチェンジハンクをダブルクリックすることで そのハンクの選択状態を切り換えることができます。 *厳密には選択状態はアクティベート操作によって切り替わるため、ダブルクリックでは なくスペースキーを押すことでも可能です。* ハンクが選択解除されると差分パネルの 色分け表示が無効になり、背景色がグレーになります。それと同時にファイルの差分ヘッダ が更新され、現在選択されているハンクの数と行数が表示されます。もう一度 ダブルクリックしてハンクを選択することでコミットにその変更を含めることができます。 ファイル内の変更が部分的に選択されているとき、ファイル一覧に表示されるそのファイルの チェックボックス表示がラジオボタンのようになります。これにより、次のコミットで 各ファイルの全体がコミットされるのか、部分的にコミットされるのか一目で分かります。 コミットするとどうなるのか? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 簡単に言ってしまえば、チェックの入ったファイル内の選択されたハンクがリポジトリに コミットされ、選択されなかった変更点は作業ディレクトリに残り、次のコミットに 持ち越されます。 実際には少々複雑なことをしています。その裏側で何が起こっているのかというと、 選択されなかったハンクのバックアップを安全な場所に作成した後、作業ディレクトリの 内容が最新リビジョンの状態に戻し、クリーンな状態にします。そして選択された変更点 のみが作業ディレクトリに書き戻されて、この状態でコミットされます。 最後にバックアップから選択されなかったハンクが作業ディレクトリに復元されます。 ハンク選択されなかったファイルは *バックアップ、書き戻し、コミット、復元* の 一連の処理はされません。 このハンク選択機能の内部処理に関する記述は、不運にも処理に失敗したときに役に立つ かもしれません (Windows ではその可能性がゼロであると言い切れないため)。 何らかのプログラム (アンチウイルスソフト、コンパイラなど) が処理の過程で生成された 一時ファイルをロックしてしまった場合、書き戻しに失敗したというエラーが発生する かもしれません。しかしこれらのエラーは修復できます。リポジトリにある :file:`.rej` ファイルを削除してからもう一度コミットを試みてください。 キーボードショートカット ------------------------ :kbd:`Ctrl-Enter` コミットを実行します :kbd:`Ctrl-C` 差分表示パネルでこのショートカットを押すと、ハイライト (選択ではない) されている ハンクの内容がクリップボードにコピーされます。作業ディレクトリの変更から任意の 変更点をテキストとしてどこかにペーストするのに使えます。 :kbd:`Alt-Q` カーソルのある段落(空行で区切られた行)を空白で連結して1行にします。このショートカット を使用するにはフォーマットポリシーの設定が必要です。 クリップボードにコピーされるハンクは気が利いていて、差分のヘッダ情報が付加されます。 つまり、クリップボードの内容はいつでも正しいパッチとして使えるというわけです。 ファイルの右クリックメニュー ---------------------------- ファイル一覧のファイルの上で右クリックすると、選択されたファイルに対する コマンドを含むメニューが表示されます。 不明ファイル **?** の右クリックメニューには名前変更を検出するコマンド (不明ファイルが管理下にあったファイルのコピーまたは名前変更されたものだと 考えられる場合) や、リポジトリの無視フィルタを編集するするコマンド (その不明ファイルを今後もリビジョン管理することはなく、Mercurial にそれを 無視して欲しい場合) が提供されます。 マージ作業 ---------- マージ状態のリポジトリを開いたとき (正確には現在の作業ディレクトリが2つの 親リビジョンを持っているとき) コミットツールは特別なモードに切り替わります。 ファイル一覧にはチェックボックスが表示されず、差分表示パネルの :guilabel:`ハンク選択` タブは非表示になります。 マージ後に作業ディレクトリ全体をコミットしなければならないため、 基本的にコミットマニフェストは不変です。 このモードではマージ状態を示す *ms* 列が特に役に立ちます。この *ms* 列で *R* というマークが付いたファイルは Mercurial またはユーザによって2つの 親リビジョンから正しくマージ (衝突の解決) されたファイルです。 *U* マーク 付いたファイルは未解決のファイルです。そのファイルのマージ作業を再開するには 右クリックメニューの *衝突の解決* メニューを選択するか、 *編集* メニューで ファイルを開いて手動で衝突を解決します。 *衝突の解決* メニューからマージ作業を 開始すると、その都度マージツールを変更できるため、ファイルごとに適切な マージツールを使用することができます。衝突を解決したら *解決済みとしてマーク* メニューを選択してファイルのマージ状態を手動で *R* に変更します。 Mercurial は1つでもマージ状態が *U* となっているファイルがあるとコミットを 中止します。 *ローカル* はマージを始めたときにチェックアウトされていたリビジョンで、 *他のリビジョン* はマージ対象のリビジョンです。 失敗したマージ作業を取り消すには2つ目の親リビジョンによる変更点を作業リポジトリ から削除するために Mercurial に知らせなければなりません。 これは通常1つ目の親リビジョンへのクリーンな (ローカルでの変更を上書き) 更新を 意味します。マージツールにはまさにその操作のための :guilabel:`取り消し` ボタンがあります。これはリカバリツールの :guilabel:`クリーン` ボタンを 押しても同じ結果になります。 作業ディレクトリをどちらかの親リビジョンに戻せば再びマージ作業を始めることが できます。 コミットメッセージパネル ------------------------ コミットメッセージパネルは以下の特別な右クリックメニューがあります: :guilabel:`ファイル名を貼り付け`: チェックの入っているファイル名ををコミットメッセージのカーソル位置に 貼り付けます。 :guilabel:`フォーマットポリシーの適用`: 設定されたメッセージの折り返しポリシーを現在のメッセージに適用します。 :guilabel:`フォーマットポリシーの設定`: 設定ダイアログの :guilabel:`コミット` ページを開きます。 プロジェクトにコミットメッセージのルールがある場合はそれらを設定ダイアログで 変更できます。コミットツールは設定されたポリシーをコミット時にチェックし、 コミット前でもポリシーに沿ったメッセージになっているか確認できます。 設定ダイアログの :guilabel:`コミット` ページにはコミットメッセージポリシーの 設定項目が2つあります: :guilabel:`要約行最大文字数:` コミットログ最初の行 (要約行) の最大文字数。これが設定された場合、 要約行が長すぎる、もしくは要約行とそれ以降のログが空行で区切られていないときに 警告が表示されます。デフォルト:0 (制限しません)。 :guilabel:`コミットログ折り返し文字数:` コミットログの折り返し文字数。これが設定された場合、コミットログ中の1行でも 設定文字数を上回っていると警告が表示され、その文字数で強制的に折り返すための ポップアップメニューが表示されます。デフォルト:0 (制限しません)。 MQ パッチ --------- 多くの Mercurial 上級者はパッチの管理に MQ 拡張機能を使っていることでしょう。 コミットツールはパッチが適用されているとき *パッチ更新* モードに切り替わります。 ダイアログのタイトルは "パッチ更新 *パッチ名*" となり、コミットメッセージパネル にはそのパッチのコメントが表示されます。 差分表示パネルの :guilabel:`パッチ内容` タブには現在のパッチ内容がすべて表示されます。 :guilabel:`テキスト差分` と :guilabel:`ハンク選択` タブにはパッチ内容に加えて 作業ディレクトリでの変更点も合わせて表示されます。ハンク選択機能を使えば現在の パッチから変更点の一部を別のパッチに移動 (またその逆も) することができます。 これは実質的に :command:`qdiff` コマンドを実行したときの内容が表示されます。 コマンドラインから実行する :command:`hg diff` のように作業ディレクトリに おける変更点のみを表示する方法はありませんが、新しいパッチ名を入力する テキストボックスに何か1文字でも入力すれば *パッチ作成* モード (後述) に 切り替わるので、作業ディレクトリにおける変更のみを見ることは一応できます。 :guilabel:`コミット` ボタンを押すことで (パッチ更新モードではラベルが :guilabel:`パッチ更新` に変化します) は現在のパッチ内容を選択されている変更点に コミットメッセージと共に更新 (qrefresh) します。更新後も除外した変更点は 作業ディレクトリに残り、ファイル一覧や差分表示パネルに表示される内容は何も 変化しないため、最初は少し戸惑うかもしれません。 QNew モード ----------- コミットツールから MQ のパッチを作成できます。 MQ 拡張機能が有効になっている場合、 ブランチボタンとコミットメッセージ履歴のドロップダウンリストの間にテキストボックスが 表示されます。このテキストボックスにパッチ名を入力し始めるとコミットツールは *コミット* または *パッチ更新* モードから *パッチ作成* モードに切り替わり、差分表示パネルには 現在の作業ディレクトリにおける変更点が表示されます。正常にモードが切り替わると :guilabel:`コミット` ボタンが :guilabel:`QNew` ボタンに変化するので一目瞭然です。 :guilabel:`QNew` ボタンが押されると選択されている変更点のハンクが入力された 名前の新しいパッチに書き込まれ、ダイアログが再読み込みされます。これにより、 少なくとも1つ適用済みのパッチが存在するため、ダイアログは *パッチ更新* モード に切り替わります。 パッチのコミットメッセージは *パッチ作成* モードのときに入力することもできますし、 作成後の *パッチ更新* モードで更新することもできます。 パッチ作成時に変更点の一部を除外した場合、その変更点も差分表示パネルの新しいパッチ の中に表示されますが、これは前述の通り *パッチ更新* モードが現在のパッチ内容と 作業ディレクトリの変更点をまとめて表示するためです。ここで再びテキストボックスに パッチ名の入力を始めるとコミットツールは再度 *パッチ作成* モードに移行し、 差分表示パネルには作業ディレクトリに残った (先ほどのパッチ作成で除外した) 変更点が表示されます。 オプション設定 -------------- :menuselection:`コミット --> ユーザ名` コミットに関連付けるユーザ名を設定します (:doc:`quick`) :menuselection:`コミット --> 要約文字数` 要約行の文字数を制限するポリシーを設定します :menuselection:`コミット --> メッセージ文字数` コミットメッセージ各行の文字数を制限するポリシーを設定します これに加えて上級者向けの3つのオプションがあります。 :menuselection:`コミット --> コミット後にプッシュ`: True にすることで *コミット後にプッシュ* チェックボックス の初期値として 使用されます。 :menuselection:`コミット --> 自動コミットファイル`: コミットに自動的に含めたいファイルをカンマ区切りで指定します。 通常はユーザ設定ではなくリポジトリ設定で使用します。 :menuselection:`コミット --> 自動除外ファイル`: ステータス、コミット、シェルフツールにおいて自動的にチェックを外したい ファイルをカンマ区切りで指定します。 :menuselection:`TortoiseHg --> 差分を画面下部に表示` 差分表示パネルをファイル一覧の右側から下に切り替えます :menuselection:`TortoiseHg --> 最大差分サイズ` 表示する差分の上限サイズを設定します 外部ツールの設定はバージョン 0.9 で廃止されました。 コマンドラインからの実行 ------------------------ コミットツールはコマンドラインから起動することもできます: :: hgtk commit [OPTIONS] [FILE]... aliases: ci commit tool options: -u --user record user as committer -d --date record datecode as commit date use "hgtk -v help commit" to show global options 日付の書式は: :: hg help dates から見ることができます。 .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-ja/common.txt0000644000000000000000000002356014023111777017014 0ustar00rootroot共通の機能 ========== .. module:: common.dialog :synopsis: 全ダイアログ共通の機能 これらの機能は多くの TortoiseHg ダイアログに共通しているため、 ここにまとめておきます。 キーボードショートカット ------------------------ すべての TortoiseHg ダイアログで使用可能なキーボードショートカットが いくつか定義されています。 :kbd:`Ctrl-Q` 開いているウィンドウすべてを閉じてアプリケーションを終了します :kbd:`Ctrl-W` 現在のウィンドウを閉じます (開いているウィンドウが1つだけの場合は :kbd:`Ctrl-Q` と同じ動作) :kbd:`Ctrl-D` 現在選択されているファイルまたはチェンジセットの差分を表示します :kbd:`Ctrl-Enter` コマンドを実行します :kbd:`Ctrl-.` and :kbd:`Ctrl-,` ファイル一覧で次および前のファイルを選択します :kbd:`Ctrl-[` and :kbd:`Ctrl-]` テキスト表示でページ単位で前後にスクロールします :kbd:`F5`, :kbd:`Ctrl-R` 最新の状態に更新します `Mac OS X `_ では アップル (Command) キーを :kbd:`Ctrl` キーモディファイアの代わりに使用します。 ただしコピー&ペーストなど一部の機能については GTK+ 標準のキーボードショートカットが 使用されるため、 :kbd:`Ctrl` キーを使わなければならない場合もあります。 差分表示 -------- .. figure:: figures/visual-diff.png :alt: 差分表示ウィンドウ 差分表示ウィンドウ TortoiseHg 1.0 では GUI 差分表示 (外部ツール) のベースが見直されました。 新しいシステムはよく使われている差分ツール (インストーラ同梱の KDiff3 も含む) の検出とその選択に :file:`mergetools.rc` を使用します。 ユーザがマージツール (:menuselection:`TortoiseHg --> 3-way マージツール`) を設定すると、ツール選択の処理を飛ばして、マージツールが GUI 差分表示にも使用されます。 もちろん :menuselection:`TortoiseHg --> GUI 差分表示ツール` を設定することで、 これまで通りマージツールと差分表示ツールを別々に設定することもできます。 マージツール設定ファイルには各ツールごとに最適なコマンドライン設定を持っているため、 面倒な追加設定などは不要です。使用したいツールを選択するだけで大丈夫です。 既存の extdiff 設定が見つかった場合は GUI 差分システムはそれを使います。 しかし extdiff は 3-way 差分のラベル引数をサポートしていないため、 より便利に使うために extdiff の設定を削除または無効にすることをお勧めします。 あえて TortoiseHg の GUI 差分ウィンドウを使おうとしない限り、GUI 差分システムは選択されている差分ツールを直接起動します。 以下が想定している状況です: 1) 比較されるファイルが複数のツールを必要とする 2) 選択されたツールが別のバックグラウンドプロセスを起動する 3) 選択されたツールがディレクトリ差分をサポートしていない 4) 選択されたツールが 3-way 比較をサポートしていない 5) ファイルの変更が名前変更またはコピーを含む GUI 差分ウィンドウが使用された場合、ウィンドウが閉じられたときに一時ファイルが削除されます。 従って差分表示ツールを終了するまで閉じずに残しておく必要があります。 直接差分表示ツールが起動された場合、そのツールが終了したときに一時ファイルが削除されます。 作業コピーのファイルの比較に差分表示ツールが起動された場合、 ツールはその作業コピーのファイルを元に差分を取るため、 そのファイルをツール上で変更することができます。 複数のファイルを比較する場合、GUI 差分システムは作業コピーのスナップショットを別の場所に作成し、 そのファイルのサイズと日付を記録しておきます。 差分表示ツールが閉じられたとき、さきほどのファイルサイズと日付を元に比較し、 変更が加えられていた場合はそのファイルをオリジナルの作業コピーに書き戻します。 このようにしてディレクトリ差分であっても差分表示ツール上からファイルの書き換えが可能になっています。 GUI 差分ウィンドウが作業コピーの比較に使用された場合、 常に1つのファイルに対して操作されるため、作業コピーのファイルを元に差分を抽出します。 .. note:: :menuselection:`TortoiseHg --> 差分ウィンドウをスキップ` のオプションは削除されました。 ツールの追加 ~~~~~~~~~~~~ 使っている GUI 差分表示ツールを TortoiseHg がサポートしてないときは ホームディレクトリにある :file:`Mercurial.ini` ファイルにツール設定を追加することができます。 詳しい設定方法については Mercurial の `ドキュメント `_ を参照してください。それが終わったら TortoiseHg が使用する設定項目を追加してください: :: diffargs: 2つのファイル比較に使用される引数です diff3args: 3つのファイル比較に使用される引数です dirdiff: 2つのディレクトリ比較をサポートするツールの場合に使用する引数です dir3diff: 3つのディレクトリ比較をサポートするツールの場合に使用する引数です コマンドライン引数には以下の変数を使用することができます: :: $parent1: 1つ目の親リビジョンのファイルまたはディレクトリ $parent2: 2つ目の親リビジョンのファイルまたはディレクトリ $child: 比較元のリビジョンのファイルまたはディレクトリ $parent: $parent1 の別名 $plabel1: 1つ目の親リビジョンのシンボル名 $plabel2: 2つ目の親リビジョンのシンボル名 $clabel: 比較元のリビジョンのシンボル名 もちろん $parent2 と $ancestor は 3-way 差分を使用するときにのみ意味を持ちます。 使用している差分表示ツールが共通の祖先リビジョンを扱うことができないのであれば、 diff3args から削除しても構いません。 .. note:: Windows では `executable` 引数において環境変数を ${ProgramFiles} という書き方で使用することができます。 未設定の場合、 **diffargs** のデフォルト値は '$parent $child'、 **diff3args** は "" (空文字) になるため、デフォルトでは 3-way 比較が無効となります。 新しく設定を作成したり、既存のツールの設定を改良したときは 是非私たちの開発メーリングリストに投稿してください。 将来のリリースで利用させていただきます。 Office ファイルの差分 ~~~~~~~~~~~~~~~~~~~~~ TortoiseHg の Windows インストーラには様々なバイナリファイルを比較・マージするために TortoiseSVN のスクリプトを同梱しています。 それらは TortoiseHg のインストールディレクトリにある :file:`mergepatterns.rc` ファイルで設定されているため、 使用にあたって特別な追加設定などは不要です。 ファイルの拡張子によって使用する差分表示ツールを変更するために、 TortoiseHg は Mercurial の `merge-patterns `_ にならって **[diff-patterns]** セクションをサポートしています。 ツリービュー内検索 ------------------ ステータス、コミット、シェルフ、チェンジログツールのファイル一覧、 チェンジログビューアのグラフ表示パネル、リポジトリ検索ツールのコメントパネルなど 多くの TortoiseHg ダイアログでツリービューを利用しています。 TortoiseHg のツリービューの大部分はインクリメンタル検索が可能です。 どれか行を1つ選択するなどして、ツリービューがフォーカスされている状態で 検索キーワードの入力を始めてください。入力した検索キーワードを含む小さな テキスボックスが表示されて、ツリービューは最初にマッチした行にジャンプします。 さらに入力を続けると検索結果が絞られます (エンターキーを押しても次のマッチ項目 にジャンプしないので注意してください。検索ボックスが消えて検索が終了してしまいます)。 * :kbd:`Ctrl-F` は明示的に検索テキストボックスを開きます * :kbd:`Ctrl-G` 次にマッチした行に移動します * :kbd:`Shift-Ctrl-G` 前にマッチした行に移動します * マウスのホイールを回転させると前後のマッチ行に移動します HG コマンドダイアログ --------------------- TortoiseHg ダイアログの多くは Mercurial のコマンド実行の状況をリアルタイムに 表示するため *hgcmd* を使用しています。 .. figure:: figures/hgcmd.png :alt: Mercurial コマンドダイアログ Mercurial コマンドダイアログ .. note:: エラーメッセージは目立つように赤い文字として表示されます Mercurial コマンドの実行が終了したとき、ダイアログは :guilabel:`閉じる` ボタンに フォーカスを移動させます。そのため :kbd:`Enter` キーを押すだけでウィンドウを 閉じることができます。 .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1735997214.0 tortoisehg-6.9/doc/source-ja/conf.py0000644000000000000000000001405514736233436016271 0ustar00rootroot# -*- coding: utf-8 -*- # # TortoiseHg documentation build configuration file, created by # sphinx-quickstart on Tue Jul 21 23:42:44 2009. # # This file is execfile()d with the current directory set to its containing dir. # # The contents of this file are pickled, so don't put values in the namespace # that aren't pickleable (module imports are okay, they're removed automatically). # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. from __future__ import annotations import sys, os # If your extensions (or modules documented by autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. #sys.path.append(os.path.abspath('.')) # General configuration # --------------------- # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = ['sphinx.ext.autodoc'] # Add any paths that contain templates here, relative to this directory. templates_path = ['.templates'] # The suffix of source filenames. source_suffix = '.txt' # The encoding of source files. source_encoding = 'utf-8' # The master toctree document. master_doc = 'index' # General information about the project. project = u'TortoiseHg' copyright = u'2010-2025, Steve Borho、他' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. version = '2.7' # The full version, including alpha/beta/rc tags. release = '2.7.0' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. language = 'ja' # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: #today = '' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' # List of documents that shouldn't be included in the build. #unused_docs = [] # List of directories, relative to source directory, that shouldn't be searched # for source files. exclude_trees = [] # The reST default role (used for this markup: `text`) to use for all documents. #default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. #add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). #add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. #show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # Options for HTML output # ----------------------- # The style sheet to use for HTML and HTML Help pages. A file of that name # must exist either in Sphinx' static/ path, or in one of the custom paths # given in html_static_path. html_style = 'default.css' # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". #html_title = None # A shorter title for the navigation bar. Default is the same as html_title. #html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. html_logo = 'figures/thg_logo_92x50.png' # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. #html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['.static'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. #html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. #html_use_smartypants = True # Custom sidebar templates, maps document names to template names. #html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. #html_additional_pages = {} # If false, no module index is generated. #html_use_modindex = True # If false, no index is generated. #html_use_index = True # If true, the index is split into individual pages for each letter. #html_split_index = False # If true, the reST sources are included in the HTML build as _sources/. #html_copy_source = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. #html_use_opensearch = '' # If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). #html_file_suffix = '' # Output file base name for HTML help builder. htmlhelp_basename = 'TortoiseHg' # Options for LaTeX output # ------------------------ # The paper size ('letter' or 'a4'). #latex_paper_size = 'letter' # The font size ('10pt', '11pt' or '12pt'). #latex_font_size = '10pt' # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, document class [howto/manual]). latex_documents = [ ('index', 'TortoiseHg.tex', r'TortoiseHg マニュアル', r'Steve Borho、他', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of # the title page. latex_logo = 'figures/thg_logo_pdf.png' # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. #latex_use_parts = False # Additional stuff for the LaTeX preamble. #latex_preamble = '' # Documents to append as an appendix to all manuals. #latex_appendices = ['faq'] # If false, no module index is generated. #latex_use_modindex = True ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-ja/daily.txt0000644000000000000000000000033614023111777016622 0ustar00rootroot********************* TortoiseHg ダイアログ ********************* .. toctree:: :maxdepth: 3 common explorer init clone commit shelve changelog datamine synchronize serve guess ignore .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/datamine.txt0000644000000000000000000001447311534217015017305 0ustar00rootrootリポジトリ検索 ============== .. module:: datamine.dialog :synopsis: リポジトリ履歴から検索を行うダイアログ リポジトリ検索ツールはリポジトリのリビジョン履歴を調べるのに使うことができます。 *検索* と *コメント* の2種類のタブを持つアプリケーションです。 検索タブ -------- .. figure:: figures/search.png :alt: 検索ダイアログ 検索タブ 検索タブはすべてのリビジョン履歴からキーワード、変数名、関数名などで検索 (grep) できます。 各テキストボックスは以下の意味があります: :guilabel:`正規表現` 正規表現検索に使用する条件。 :guilabel:`次を含む` 検索対象に含めるパスをカンマ区切りで指定。指定されていない場合は、 リポジトリ全体が対象となります。つまりパスを指定して初めて検索対象が 絞り込まれます。 :guilabel:`次を含まない` 検索対象から外すパスをカンマ区切りで指定。 この条件より先に :guilabel:`次を含む` の条件が適用されます。 テキストボックスの下のチェックボックスは以下のようになります: :guilabel:`コピーと名前変更を追跡` :guilabel:`次を含む` の条件が指定されていないとき、コピーまたは名前変更を考慮して検索します :guilabel:`大文字小文字を区別しない` アルファベットの大文字小文字を区別せず検索を実行します :guilabel:`行番号の表示` 検索結果に該当個所の行番号を表示します :guilabel:`該当リビジョンをすべて表示` 検索条件にマッチした直近のリビジョンだけでなく、すべてのリビジョンを表示します。 該当行が追加されたのか削除されたのかを示す +/- 記号が表示されます。 検索タブは検索を開始するとそのキーワードにタブ名が変更されます。 ツールバーの :guilabel:`中止` ボタンを押せば処理中の検索が停止しますが (:guilabel:`中止` ボタンは検索中にのみ押せる状態になります)、 :guilabel:`新規検索` ボタンを押せば新しい検索タブを開くことができます。 検索結果 ^^^^^^^^ 検索結果は該当チェンジセットへのリンクとなり、マウスカーソルを乗せることでツールチップ (コミッタ、日時、コミットログ) が表示されます。検索結果の各行で右クリックをすると 次の機能を持つ右クリックメニューが表示されます: :guilabel:`変更点の表示` このチェンジセットをチェンジセットダイアログで開き、すべての変更点を確認します :guilabel:`コメントする` このリビジョンのファイルをコメントタブで開きます :guilabel:`履歴の表示` チェンジログビューアでこのファイルのリビジョン履歴を表示します :guilabel:`ファイルの表示` そのファイルをあらかじめ設定された GUI エディタで開きます コメントタブ ------------ .. figure:: figures/annotate.png :alt: コメントタブ コメントタブ リビジョングラフパネル (上半分) にはそのチェンジセットにおける変更全体を チェンジセットダイアログで表示するための右クリックメニューが用意されています。 リビジョングラフパネルのリビジョンをダブルクリックすると下半分のパネルに ファイルのコメント情報が更新されます。 コメントパネル (下半分) は現在のコメント情報です。パネル内の各行も同様にチェンジセットへの リンクになっています。行をダブルクリックすると上半分のパネルが更新され、 その行が追加または変更されたチェンジセットが表示され、フォーカスが移動します。 コメントパネル内の各行は2つの指標に基いて色分けされており、コミッタが色相 (色の違い)、 最後の変更からの経過時間が彩度になっています。つまり、古い変更になるほど 色が薄くなるわけです。 コメントパネルの列ヘッダ部分 (行、リビジョン、ソース) で右クリックすると表示される 右クリックメニューからデフォルトでは表示されていない :guilabel:`ファイル名` と :guilabel:`ユーザ` 列を表示できます。 名前変更の追跡 ^^^^^^^^^^^^^^ コメント情報のデータはコードの各行が作成された初期チェンジセットを探し出すために 自動的にコピーや名前変更の履歴をさかのぼって収集されます。 一方で、リビジョングラフは 自動的に名前変更やコピーをたどりません。その代わり、リビジョン一覧の名前変更またはコピーを 含むチェンジセット行をクリックすると、その履歴をたどったグラフを表示するためのボタンが 表示されます。そのボタンを押すと同じチェンジセットの古いファイル名でコメントタブが開きます。 リビジョングラフも同様に名前変更とコピーをたどって表示されるため、異なるファイル名を含む チェンジセット同士が接続される場合があります。その場合はグラフの色が変化します。 オプション設定 ^^^^^^^^^^^^^^ コメントタブは以下の他のツールの設定項目を使用しています: :menuselection:`チェンジログ --> コミッタの色分け` チェンジセットをコミッタごとに色分けします :menuselection:`チェンジログ --> 改行を無視してログを表示` コミットメッセージの改行を無視して、最大80文字まで表示します :menuselection:`TortoiseHg --> タブ文字の幅` コメント情報の表示でタブ文字1つあたりいくつの空白に展開するかを指定します コマンドラインからの実行 ------------------------ リポジトリ検索ツールはコマンドラインから起動することもできます: :: hgtk datamine aliases: annotate, blame repository search and annotate tool use "hgtk -v help datamine" to show global options .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-ja/debugging.txt0000644000000000000000000000657414023111777017465 0ustar00rootrootTortoiseHg のデバッグ ===================== .. module:: debugging :synopsis: TortoiseHg のダイアログやシェル拡張をデバッグするためのヒント ダイアログ ---------- 標準エラー出力はプログラムの終了時点でバッファに補足されます。 何らかの深刻なエラーが標準エラー出力で見つかった場合、ユーザがバグを報告できるように そのすべての内容がバグレポートツールに送信されます。 出力されていないエラーがあるかもしれない場合は環境変数 **THGDEBUG** を設定して 標準エラー出力のバッファリングを無効化してください。 多少 Python の経験があれば: :: hgtk --debugger を使うこともできます。 hgtk によるダイアログ用の別プロセス生成を無効にするには環境変数 **THG_HGTK_SPAWN** を設定するか、コマンドラインから '--nofork' オプションを使って起動してください。 Windows ~~~~~~~ 例えばチェンジログビューアをデバッグする場合、コマンドプロンプト (:command:`cmd.exe`) を起動してリポジトリに移動し、次のコマンドを実行してください: :: set THGDEBUG=1 hgtk log Linux または MacOSX ~~~~~~~~~~~~~~~~~~~ 例えばチェンジログビューアをデバッグする場合、ターミナルでリポジトリに移動し、 次のコマンドを実行してください: :: export THGDEBUG=1 hgtk log シェル拡張 ---------- デバッグ方法はプラットフォームに依存します。 Windows エクスプローラ ~~~~~~~~~~~~~~~~~~~~~~ https://msdn.microsoft.com/en-us/library/cc144064(VS.85).aspx に Windows シェル拡張を実行・デバッグするための情報が掲載されています。 SysInternals による :command:`DbgView` ツールはシェル拡張からのデバッッグ情報を 補足することができます。 :command:`ThgTaskbar` アプリケーションの設定ダイアログにはエラーログが表示される タブがあります。このダイアログを開いた状態でエクスプローラを使ってリポジトリを 閲覧すると各種デバッグメッセージを取得することができます。 Nautilus ファイルマネージャ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 環境変数 DEBUG_THG を設定して、 * 個別のプロセスをテストします: :: DEBUG_THG=Ne TMPDIR=/tmp/anydir/ --no-desktop nautilus [path] * メインインスタンスをテストします: :: nautilus -q DEBUG_THG=NOe nautilus * 常にデバッグ状態で起動したい場合は環境変数 DEBUG_THG をセッション開始と共に 読み込まれる設定ファイル (~/.profile, ~/.xprofile など) に設定してください。 .. NEEDFORTRANSLATION Upper case characters in DEBUG_THG specify modules. Only *O* and *N* for *OverlayCache* and *Nautilus*, respecively, are supported module names. Lower case characters imply parts. Only *e* is supported, implying *error* messages. Nautilus を再起動は次のどちらかの方法で可能です: 1) すべての Nautilus プロセスを削除する (セッションが自動的に Nautilus を再起動し、標準入出力先は ~/.xsession-errors) 2) コマンドラインから :command:`nautilus -q; nautilus` を実行 (標準入出力先はコンソール) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/explorer.txt0000644000000000000000000000767311534217015017367 0ustar00rootrootWindows エクスプローラ統合 ========================== .. module:: explorer :synopsis: Windows エクスプローラへの統合 アイコンオーバーレイ -------------------- TortoiseHg は Windows エクスプローラのアイコンオーバーレイを通じてファイル状態の 視覚的に表示します。これは TortoiseCVS や TortoiseSVN といった他の Tortoise クライアントのそれと似た機能です。 TortoiseHg は TortoiseOverlays (TortoiseSVN チームによるプロジェクト) を利用することでアイコンオーバーレイを TortoiseSVN (バージョン 1.5 系以降) や他の "Tortoise" プロジェクトと共有します。 .. figure:: figures/overlayicons.png :alt: アイコンオーバーレイ :menuselection:`表示 --> アイコン` で表示したアイコンオーバーレイ (Windows XP) 右クリックメニューには :guilabel:`アイコンの更新` メニューが用意されており、 強制的に現在表示しているリポジトリまたはディレクトリのアイコンを最新の状態に 更新できます。更新中はタスクバーアイコンが緑色になり、ディレクトリのアイコンオーバーレイは 「?」マークが表示されます。 アイコンオーバーレイと右クリックメニューは設定可能です。 どのフォルダ (もちろんデスクトップも可) でもいいのでアイコンのない場所で 右クリックメニューを開いて、 :menuselection:`TortoiseHg --> エクスプローラ設定` を選択します。設定ダイアログではメニューを個別にトップに移動できます。 .. figure:: figures/taskbarui.png :alt: エクスプローラ設定ダイアログ エクスプローラ設定ダイアログ また :file:`.hg\\thgstatus` ファイルを編集することで特定のリポジトリだけで アイコンオーバーレイを無効にすることもできます。 次の1行だけが書かれたファイルを作成してください: :: @@noicons 右クリックメニュー ------------------ TortoiseHg の各種ダイアログを開くためのコマンドは普段使っている エクスプローラから実行します。次のスクリーンショットは Mercurial 管理下にあるディレクトリの右クリックメニューです: .. figure:: figures/cmenu-nofiles.png :alt: 右クリックメニュー (ディレクトリ) Mercurial 管理下にあるディレクトリの右クリックメニュー そしてこれはファイルまたはディレクトリを選択した状態で開いた右クリックメニューです: .. figure:: figures/cmenu-files.png :alt: 右クリックメニュー (ファイル) ファイルまたはディレクトリを選択した状態で開いた右クリックメニュー TortoiseHg は普段よく使う Mercurial コマンドに対応したダイアログを提供します。 一方で滅多に使わないコマンドや、比較的最近追加されたコマンドは :file:`cmd.exe` などのコマンドライン (CLI) 経由で実行します。 Nautilus -------- TortoiseHg は nautilus-python プラグインを利用して GNOME デスクトップ環境の シェルとの統合も提供しています。頒布パッケージから TortoiseHg をインストールした 場合はこの拡張機能も既に設定済みです。そうでない場合は Wiki を参考にしてください。 Nautilus 拡張機能のアイコンオーバーレイや右クリックメニューを設定するための GUI が用意されるまでの間は、 :file:`~/.hgrc` ファイルを編集することでメニュー項目を トップに持ってくる設定のみ可能です。以下の設定を追加してください:: [tortoisehg] promoteditems = commit, log, synch .. figure:: figures/nautilus.png :alt: Nautilus スクリーンショット GNOME/Nautilus スクリーンショット .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-ja/extensions.txt0000644000000000000000000002403214023111777017716 0ustar00rootroot******** 拡張機能 ******** .. module:: extensions :synopsis: TortoiseHg バイナリパッケージに同梱されている拡張機能について この章では Windows 向けの TortoiseHg バイナリパッケージに標準添付されている Mercurial の拡張機能について述べます。これらの拡張機能は TortoiseHg をより便利に使ってもらうためで、必要になったらすぐに簡単に有効にできます。 Hgfold ====== `hgfold `_ は VFAT および NTFS 上におけるファイル名の大文字小文字の違いによる名前衝突を回避したい Windows ユーザ向けの Mercurial 拡張機能です。 この拡張機能は以下の Mercurial コマンドにオプションを追加します。詳しいヘルプは :command:`hg help ` で見ることができます: :: up - ファイル名の衝突を解決して特定のリビジョンへ更新 merge - ファイル名の衝突を解決してマージ **インストール** この拡張機能をテストするためにコマンドラインから次のように実行します: :: hg --config "extensions.fold=" status 今後も継続して使用したい場合は Mercurial.ini またはリポジトリの hgrc に次のように記述してください: :: [extensions] fold= この設定をすればコマンドラインで --config 引数を指定する必要はありません。 **注意** 通常のマージコマンドと同様、 fold.py は作業ツリーの親を変更する必要があります。 まだ実験的な拡張機能ですので十分注意して使用してください。 :command:`hg recover` を実行後に何かエラーが発生した場合は :command:`hg debugsetparents ` を試してみてください。tip リビジョンの番号は :command:`hg log -l 2` で調べることができます。 Hgcr-gui ======== `コードレビュー `_ 管理ツール * この拡張機能はプロジェクトのコードレビューを管理します。 * レビュー管理を Mercurial 内で完結させます。 * One can add files to the review, remove them and notify reviewr that files are ready for review. * レビューアはコードに "完了" とマークして、開発者にメッセージを返します。 * プロジェクトマネージャはレビュー状況を確認できます - どのファイルがレビュー済みでどれがまだなのか。 * hgcr は自動的に最後にレビューした時点から変更されたファイルを見つけ出して通知します。 * この拡張機能は TortoiseHg の GUI を利用しますが、コマンドラインから使うことができます。 * コードレビューのデータベースはリポジトリのルートディレトリに .code-review という名前のファイルとして保存されます。 **使い方**:: hg cr [OPTIONS] [FILES] Code Review Plugin (requires Mercurial 1.3.x and TortoiseHg 0.9) options: -c --complete Mark CR as complete -a --add Add files to CR list -r --remove Remove files from CR list -l --list Print files in CR list use "hg -v help cr" to show global options .. note:: オプションなしで実行すると GUI が起動します。 **詳細説明** .. NEEDFORTRANSLATION * I've implemented the review around files and not changesets, because at the end, I want to be able to tell for the specific project if all the files went through code review process or not - the project status. * おそらくあなたは多くの開発者と管理しなければならない複数のプロジェクトを持っていて、 開発者のコードをレビューするグループがあります。 * 開発者のように変更点を追い続けるのは非常に難しいことですが、どのファイルが (レビューアによって) レビュー済みでどれがまだなのかを知るのは簡単です。 * この拡張機能を使えば開発者は作業が終わった段階でレビューが必要なファイルにマークを付けて、 レビューアに知らせることができます。 * コードレビューのデータベースにチェンジセットが保管されているので、 レビューアはチェンジセットをひろってきてコードレビューを始めます (開発者のコードに注釈を付けられる)。 * そしてコードレビューが終わり次第レビューアは "レビュー完了" のマークを付けて開発者に知らせます。 * プロジェクトマネージャはいつでもプロジェクトがどうなっているのか確認できます。 **インストール** Mercurial.ini またはリポジトリの hgrc に次のように記述してください: :: [extensions] hgcr-gui= Perfarce ======== `ウェブサイト `_ この拡張機能については `こちら `_ で解説しています。 HGEOL ===== hgeol は将来 win32text 拡張機能に取って代わる拡張機能で、 より完全で確実な方法で改行文字問題の解決を試みます。 まだ未確定な部分も多く、頻繁に内容が書き変わることが予想されるため、 ここに詳細な説明を書くかわりにリンクを張っておきます。 * `EolExtension `_ Mercurial-Keyring ================= * `Mercurial Keyring `_ ウェブサイト * `Keyring 拡張機能 `_ Wiki keyring 拡張機能は安全に認証パスワード (HTTP/HTTPS and SMTP) をシステム固有の パスワードデータベース (Gnome Keyring, KDE KWallet, OSXKeyChain, Win32, コマンドライン) に保存するために keyring ライブラリのサービスを使います。 **何をするのか** この拡張機能は初回のリモートリポジトリとのプル/プッシュ操作時に HTTP パスワードの入力を促し、それをパスワードデータベースに保存します (ユーザ名とリポジトリ URL の組み合せのキーで)。 それ以後は .hg/hgrc のユーザ名を確認して適切なパスワードを パスワードデータベースから取り出して使用します。 同様に認証を必要とする SMTP 経由のメール送信についても初回のみ入力を要求し、 次回からはパスワードデータベースのパスワードを再利用します。 パスワード認証に失敗した場合は再び入力を求めます。 **インストール** まずは拡張機能を Mercurial.ini ファイルで有効にしてください: :: [extensions] mercurial_keyring= **バックエンドの設定** 使用しているシステムに最適なバックエンドは自動的に選択されますが、 必要に応じて ~/keyringrc.cfg ファイル (ユーザのホームディレクトリの keyringrc.cfg ファイル) を設定することで指定可能です。 設定に関する詳細は `keyring ドキュメント `_ を参照してください。 .. note:: Windows XP 以降の Windows では、暗号化されたパスワードは `CredRead `_ と `CredWrite `_ を用いて、Credentials Subsystem に保管されます。 .. note:: Windows 2000 では、暗号化されたパスワードはシステムレジストリ HKCU\\Software\\Mercurial\\Keyring 以下に保管されます。 **リポジトリの設定 (HTTP)** リポジトリローカルの .hg/hgrc ファイルにリモートリポジトリの URL とユーザ名を記述して保存します。 パスワードは keyring から提供されるためここでは記述しないでください: :: [paths] myremote = https://my.server.com/hgrepo/someproject [auth] myremote.schemes = http https myremote.prefix = my.server.com/hgrepo myremote.username = mekk 次のようにリポジトリ URL にユーザ名を含める形式を使用すれば、より簡潔に記述できます: :: [paths] bitbucket = https://User@bitbucket.org/User/project_name/ .. note:: .hg/hgrc ファイル内にユーザ名とパスワードの両方を記述した場合、 keyring 拡張機能はパスワードデータベースを使用せず、 記述してあるパスワードを使用します。 また、ユーザ名が記述されていない場合は認証が必要になるたびに ユーザ名とパスワードの入力を要求しますが、 それらはパスワードデータベースに保管されません。 つまりこれら両方の状況は keyring 拡張機能を使用していない、 Mercurial 標準の動作になるということです。 Mercurial の認証に関するより詳しい説明はマニュアルの `[auth] `_ セクションにあります。 **リポジトリの設定 (SMTP)** リポジトリローカルの .hg/hgrc ファイル、またはホームディレクトリの hgrc ファイル (メール送信の認証情報はリポジトリ共通で使えるので通常は後者) に SMTP パスワード以外の SMTP メール設定を記述してください。例えば: :: [email] method = smtp from = Joe Doe [smtp] host = smtp.gmail.com port = 587 username = JoeDoe@gmail.com tls = true 前述の HTTP の設定と同様に、ユーザ名だけを設定してパスワードは設定しません。 パスワードを記述した場合の動作は Mercurial 標準の振る舞いになります。 **使い方** 上記設定を終えたら、あとは普通にプルやプッシュ (またはメール送信) をするだけです。(ユーザ名とリポジトリ URL の組み合せで) 初回のみパスワードを要求されます。 .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-ja/faq.txt0000644000000000000000000001746714023111777016304 0ustar00rootroot************ よくある質問 ************ *TortoiseHg って何?* Mercurial 分散構成管理システムのための Windows シェル拡張です。Subversion における TortoiseSVN や、CVS における TortoiseCVS のような クライアントアプリケーションです。TortoiseHg は他のプラットフォーム向けに コマンドラインから起動するための hgtk スクリプトも含んでいます。 *Windows 向けの TortoiseHg インストーラには何が含まれていますか?* `Mercurial `_, `kdiff3 `_, `TortoisePlink `_, に加えて5つの拡張機能: hgfold、hgcr-gui、perfarce、hgeol、mercurial-keyring を同梱しています。また hgsubversion 拡張機能およびリポジトリ変換拡張機能のために python-svn、hg-git 拡張機能のために dulwich も含めています。 詳細は :file:`extension-versions.txt` をご覧ください。 *Windows 上の Mercurial はインデックスサービスやアンチウイルスソフトウェアと競合しませんか?* 競合する可能性があります。 `TortoiseSVN `_ と同様、リポジトリとその作業コピーのディレクトリではインデックスサービスを無効にし、 アンチウイルスソフトウェアのスキャン対象外に指定してください。 *エクスプローラの右クリックメニューは翻訳されないのですか?* 右クリックメニューの翻訳ファイルは TortoiseHg のインストールディレクトリ :file:`C:\\Program Files\\TortoiseHg\\i18n\\cmenu` にあります。 使用したい言語の Windows レジストリファイルをダブルクリックして、 表示される確認ダイアログの指示に従ってインストールしてください。 *TortoiseHg ダイアログのツールバー表示を設定できますか?* TortoiseHg のダイアログは PyGTK のアプリケーションなので、 :file:`C:\\Program Files\\TortoiseHg\\gtk\\etc\\gtk-2.0\\gtkrc` にある :file:`gtkrc` ファイルを変更することで設定可能です: :: gtk-toolbar-icon-size = GTK_ICON_SIZE_LARGE_TOOLBAR # Pick an icon size from: # GTK_ICON_SIZE_MENU # GTK_ICON_SIZE_SMALL_TOOLBAR # GTK_ICON_SIZE_LARGE_TOOLBAR (default) # GTK_ICON_SIZE_BUTTON # GTK_ICON_SIZE_DND # GTK_ICON_SIZE_DIALOG gtk-toolbar-style = GTK_TOOLBAR_BOTH # Pick a toolbar style from: # GTK_TOOLBAR_ICONS # GTK_TOOLBAR_TEXT # GTK_TOOLBAR_BOTH (default) # GTK_TOOLBAR_BOTH_HORIZ これらの設定は TortoiseHg 全体に適用されます。 *マージや任意のリビジョンへの更新はどうやるの?* チェンジログツールからマージや特定リビジョンへの更新が行えます。 エクスプローラの右クリックメニューの :guilabel:`ログの表示` から起動してください。 *TortoiseHg の shelve 拡張機能をコマンドラインから使うにはどうすればいいですか?* :file:`Mercurial.ini` ファイルで以下のように拡張機能を有効化してください: :: [extensions] tortoisehg.util.hgshelve= *SSH サーバに接続できない (TortoisePlink.exe - "...cannot execute specified..." というエラーメッセージ)* `SSH 接続 `_ ページを参照してください。 *~差分表示ツールを使うにはどうすればいいの?* バージョン 1.0 から TortoiseHg はよく使われている GUI 差分表示ツールを自動的に検出し、 それらを設定画面で選択可能な状態にしてくれます。 *シェル拡張を無効にする方法は? (アイコンオーバーレイと右クリックメニュー)* TortoiseHg インストーラを使って、シェル拡張機能を削除してください。 *TortoiseHg はどこに設定を保存しているの?* TortoiseHg は2種類の設定システムを利用しています。 1. Mercurial の設定システムで、3つのレイヤがあります 1. グローバル設定: :file:`%ProgramFiles%\\TortoiseHg` にある :file:`Mercurial.ini` ファイル 2. ユーザ設定: :file:`%UserProfile%` にある :file:`Mercurial.ini` ファイル 3. リポジトリ設定: :file:`{repo-root}\.hg` にある :file:`hgrc` ファイル 2. ダイアログの位置や状態などを保存している :file:`%APPDATA%\\Tortoisehg` 以下は Mercurial の設定システムに保存される設定項目です: :: [tortoisehg] vdiff = vdiff editor = gvim tabwidth = 4 longsummary = True graphlimit = 500 authorcolor = True authorcolor.steve = blue *フォントの変更はできますか?* 一部可能です。 TortoiseHg の各種ダイアログ (コミット、変更点の表示、 シェルフ) のベースとなっている gtools はフォント設定が可能です: :: [gtools] # font used in changeset viewer and commit log text fontcomment = courier 10 # font used for diffs in status and commit tools fontdiff = courier 10 # font used in command output window fontlog = courier 10 *GTK のテーマを変更するにはどうすればいいの?* テーマをダウンロードしてそれを :file:`gtk\\share\\themes` にコピーし、 :file:`gtk\\etc\\gtk-2.0\\gtkrc` ファイルで変更してください。 *Windows の TortoiseHg はどこの Python モジュールを参照しているの?* TortoiseHg は Python の実行に必要な環境を DLL の形で同梱しています。 標準ライブラリはすべて :file:`C:\\Program Files\\TortoiseHg` の :file:`library.zip` ファイルに格納されています。 そのため、非標準の Python モジュールに依存した Mercurial 拡張機能 を使用するとそのモジュールが見つからないため読み込みに失敗します。 例えば ReviewBoard 拡張機能は Python の標準ライブラリに含まれていない simplejson モジュールをインポートします。 そのような拡張機能を動作させるにはちょっとした変更が必要です。 拡張機能のソースコードを開いて非標準のモジュールインポートの前に そのモジュールのインストール場所を追記します: :: import sys sys.path.append(r'C:\path\to\module') この方法はモジュールが .egg ファイルとして配布されている場合はうまくいきません。 指定するパスは .py または .pyc ファイルを含んでいる必要があります。 もしいくつもの拡張機能またはフックスクリプトを使用していて、同じ Python パッケージを共有したい場合は明示的に sys.path を変更する拡張機能を作ることができます。 最初に読み込まれるような単純な名前 (つまりアルファベット順で) にしてください。 例えば: :: [extensions] 00setSysPath = C:\path\to\setsyspath.py *ダイアログのぎこちないフォント描画を直すにはどうすればいいの?* バージョン 0.8 以降では複数の GTK+ テーマを同梱せず、デフォルトのテーマとして MS-Windows のみを同梱しています。その結果、MS-Windows テーマが原因で フォント描画がおかしくなる場合があります。これを直すには以下の設定を TortoiseHg の :file:`gtkrc` ファイルに追加してください: :: style "msw-default" { font_name = "MS UI Gothic 9" } :file:`gtkrc` ファイルは TortoiseHg のインストールディレクトリにあります。 :file:`C:\\Program Files\\TortoiseHg\\gtk\\etc\\gtk-2.0\\gtkrc` .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1737033607.959414 tortoisehg-6.9/doc/source-ja/figures/0000755000000000000000000000000014742203610016415 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/figures/advancedbar.png0000644000000000000000000000613011534217015021355 0ustar00rootrootPNG  IHDR$Ry pHYs+ IDATxwuB˵o؃u9>nxIҸ-rd˒qkDJ$}_%R!I$i  q~oׯ]ǿ5hb;vnh']0 0 > Uًƾދy'/_rʌo2mջCGa77 r'NK{oAA$onj|C|7f@@8  h,fzt+ Y7FM&o0I!C95 %T'O&Sn)7vJ:|;A>Y.O '>` =d~74|AHV= |Sop4|]0 Mߴ< |ƙo"pA_ag(P<\@|ƑoͥHG<)wwU #[25333|$ B gQw{y|SlwO- Z*6lKV̠V)*If`7 +x2^y!sj]$]6`H,zn_.G%n;d~Mu=eWUgG^-1ܱw k Fj'F8TfЍvHpv6 `,~Zk {"t*c_C;v#%6Ь_Yi@H|>!5+##m4|SuI'2#O1s&7j(!]S0̨|8 FMP(J77GHK-l+Fvs$|j$ ORudA7kZ<8}&Z#o3k)Am0v-7Fe'FnM[$$g̀XLncn2nYB1GQ>PYW<"S7Nqoj؃< xO!Q|s 2 %S,gC~oMy|S'D.hTW{۱qpnNjOWs%fh%y3~um$4aI{NL2HO,\=2?)s cLcUg4Jo.<^N6|R%Og3>%"y"`̚[}1pSyxF$2 FA[Ǿq )\J̿& X7G>;|:vY)P> | kOSQOa|}so\npfH IM`HQbtP,VdZ++G9ߘs|u\v [W o_3ŗ"y%5;>=X;{*\a`ħquSv7F ׎P& 1>Z8̟_쩋;pؒŜ)ࠗ[87o"y)i.WL` +ɇN.߄= _! ԤI}MmJ^y|s;y+&dj7AHh|M۽w{y+\@TMГ7)h#X0oO4y i]O oqRGa߼WLl|$ B s,6K-P@Ͷ'oR7И͖7ilK , B [twʇ*Vu|@͈B7@<"LbmTS_r7|0o]ިy.F?>'F|1]GfSO}x=>hc1a_X#>k_L&P࿸hDQ~ȱO1]y ѝ?#H!ʻ"c0JRpAa6tzgP!CؘqMȦӢE>#/X&W?0CoB_ 44z׎"!BO]/5?y8kxG۰~}uvnX1}2||sKpzdp$% tN3f<:|'Mƍ۾eukTA֪ 236$gnLܔEު٦ّ35w.].]'iy {02| e\vavlK'lt^8b !6#tM4uyT>1`&g fYE&gB\,4%{Ir*ĢDH0,HHqsXX]l2m2mR7K:3#F;k˴d2hh蔏)Q)'D&P}AX BGnr$m?y?_[>oxEz=e_p rسBz^ y)DpRHg0=]ztGsQyH>w 9h繼E7̋^2 oreW#'ͫߘ(@/6~\^S2oMX[}L q~fOg5Q l̳7|~ }x"xx###x E2%O)"7#ϹEϺ=ˈg.=.݁O_ A\xBS.nnA]p$e:g>vӈGO{?(:!:IO =I'~ϓgrq>KC\oQxDI񚗴w^77/#+@û@D | 1b$3T3, f$f83lcF(F"F*')?T Rcc);;1$v؏Bb?#L?% qS⧆%f'""Y#UTsIsR1 E"nQ\ڒ8N]}+דHafhj Mg_9|4- ZZ/4VH S"1Mʨ@\q-mGYpeT-BZM \BZ_tIJϾ^uc?4xH@ґ_P^&`AG#٘ .\D\d6D,dwZ^}>} 1 E24X$t?}#{3bS01{2I'4; Evmb3lqL;M QQf.XXE 2% "9syr$IKTʼn3@Yqiشiʴ9B)Rg+RghghAYfteL=E,U$`5^r$fO[7<#!%m٤O2K̤ļpe$i"%H^710FŘ%mPR KJ &`NJ1@R’d$,)AI)UFbAJHxI}@Jvtw|BsC!)EvF! %찄%%ьI `RGK q^"9$%p  vRByI%%@X@a LKQ %%$%)/ZJXRsS %qRDRRpm$楤*Hzh$LJH<-/). %a0Iy"BR!FJ#%HU@oOlDjepII0\RmX0CHu-#:u_Y#aIXԐhr"#E`!'J@8N甝-?[_q>™P@ ,Fp7r:Taȯ fW|Jȫ$ʫ`8Iss<ϱr(CNpp6O, :);]ҳ?ެ==Ż3?a&ة85m$mfn45u^NH^&9k5*9sURJDƊ$0(!d@p2!" QÂbKd}KG+8# ! @}ԤŠn"jr $[38)y=Y0,#yTJ(/HÒnx?f$%%Kb;H^bj$,)0KJ$HJ^4J Ģ ^.ܘ|)aĴ|ϕ_ R2sR FJt>Rin:/遤$KaPr%ȗ,))1ȸaJM|a/1J#%DJ9CԄLyQJ#%d26Lc$Sf<  @gs(3W&>m>k@\Wͯ-ϕxK %%ZLCGcGSGs}kU[zjp@@@Z^Fr0U߰:h#Rh6 !#Y:Eg* ɸPPyʵڭڽڣjܹ15n%bIIk145% kpk ܅sq5|B9U3JNW~ʦT~Iǁ<ı<$:GsGr`aٔD(axOzawz'K_3`A HcV]c* ln4`֥dIZ Kbx&L?&CXh+y_$16`ndSzu}MNvKK.SRRRRRR >˻ӈϪqA)B,r)r)rKز.y ,}%܀5XD#':啃\.*-/TT4V6|~E@#W / ^F<)eJ:+riCWשk.1\,.^(u)u.&8՜ kT+@RJ&ur+N#r'rʏ#ʌ#̒@VɡL QLzt6{ r!\IZzicuP$B52$@@>ѽm#E b u+ēq;<R$&p/x -%,%"GE%Jh#1P®oI')l$o:[%o!>J$)y&^-WJIh)u2 I itu{1)!^bvsQ #ڍ@7I'&)H8R Nj7Ovnz^~n jl)Wp<1|)E"%U6 #a 3J{ %%ىr|) 5Vt%)Tp().פPH rU)3K#B A07V:Zy^PQC0# ) )DGLFs˼iD yDly'O9/q>^vxŅ 9o ;{k/"p|| g%xdxn}HF{F$P:}wtEGvb JG2P:r&rp+MQMfimStm32u[if]Gx6G 3G "R'M* %?vU5Jb/I҃{eU]6c+~ L_ B7@^Qw/(pJjZW@ U_,2r0cÌ)k*] 66U:Wr=H|l[Z:ss%9kYb:4@K,4 KFW;ΛQP\C{4O7>GG I𒋔t尧\ßvfLJz21@H^2s %^c"%J^ɦ )ayI?+ *ߴv  7T_aRQ[wӛk$xYpZ\F"PŠI % oMNܤa/\S8&K jt} t?95 %nHJ^7GJ{IttAL%HRA%L'fČqb`^+8qLc3FJf0Rdtʩ7y`$g\w,<^bw6F|sS.w]6~%kJ MڕkvS'O?=l8}8! 3 (>{쁊*1gwWpoY)(8s ,|ӇON;}8xŬaxF24ɦwwGb#09g.9u~KJfXVZp҂`e>}!C!4:ZTSZ .RY 딃W'\x冪I< 1?|R烮 77BۗԒ@qÔ+7-'+mj#\{ S%:iQ„ƒ]iSg]7\d,=Gp-^ҟ7㪴UxHDс9NgݗZw5*Gc:?UZZB|JPUٝa j JZu6]QR_k89{nGv١*).Cy!j lZ، 1yz ^Xg P.WCOɨ&7/##5>B0@H4B t8')/ z1K!]/< m%n#zP1 DR"j7"t7n!#RJ\zӯM)i$×޼mIJ0Rǟ|Ó -m,1c$=IDJx+ TJX $KnXzcļ^RBJHLqyݼ;%%f+8%ocI L()A^"{qdE򅼄#%#J`)c)!py 2$%H8vWGIIl'-%T{$%yrmޜ<3r[tvY"C!W'b"BCVP6y6}Ce a/ NŦ0oB8(,?i; OAAA!nCyԫ祮ׯ7\k>o}:̙++-.xLZܵYkkåkVW/_5_rk/dHU^oL7&&`$XJJAGfG5Gv-tv*?5KXwiM`E}hU)DD74W[SL~ cQ5afm-!~+ncJ5okhaӠOo¡̼.kT-p|&!Znӎ$]>󤍥U o&Є:t5.R.?sD*Q~Ą/P41yC0&Y5Y="Vk҄O/DH#9j{usx1/N^XjR˕S&bht.AqC zCծMI P:弄ją'/tEIIHˡO=$QϢ7RFDxF")yCDPJ&3uF$qm6&1I?:&5x^+8fcod1\xnVL•nLbHJLJ,FR7u7F)t %O$y|`w`PH&)xJ_RªHcKh)#a'%Ѩ:K()G.P@d2NJ䴔 KL$|TRKHP R?6TRBb$iJ3gyr/Oaqf ]JYV5;E(6yޡ|(ط;4 C/fTg컾cnwCƽ:npĸ&L00y@턁 (N̙37 ?^W0P1~ \0r`xwg~q λnɠ?  %KۑSx%-r[jcZΜGzͅ jIyi@G|/qAeYwt>r7ݜsON p-97/B}~(5wt&iެwC9xnͻ!g}yvπxf- Wh5b<U.]6܂sf.o%&bAZ͍;:T.Z57nnȁ>"_WI4Ov^p]ܚhD#97HߤulƮ6+C&K(Q}$PEǺq9fwBPՕ..Bn^Gm*UClt$$ ~#I1hq֑Θǜ$3% A$,A^I Ty )!-iiB$ KxWK ڑF}IOҮnDHDJ˕MvaM7Iw^ƅW 4On+a {H 4HxƓc  KJ$ ^?$z` & N4X;in`Gs2XJ5'OBW4X1gp!㇄p܉<3w[l^{ 5c${vD|me4AtY3͉se +^mWdq R[Ӯwu\r'= Y3޼w^n6Ӳo;A0>"ֽ˱Vn׸2>"=\pZ֭lhs|nx|=Uz{9p͌%wD{u˾u/B> YY &d`@dfs[1e)]DZeC-`wtJzWrW׊ih[hM)aYL NnHfs5FY3fP3(܄|%DU װ_p;Ѿ`* 7Q M l(s5A9]V̔k`~mH~~׽rg]Q[+lX:0:c5Af$%v 7ŕ)OJ^K <#Y6w17vt̓']1t"ژ\6pZ5DHx$sǓ0ac %B\OYe$fĝ#%0PR\/ YCJ8-|)L(aǓ\<Ăjqf56AIĝ HI't!Rr>;=-0g|[ JJpX=ؗI4cRB_p$ H ;)^B KJvXXh+JJ)9H|3 =CnG 1{H_ߨ`Eш@1hl$w9.4|\ eS8.ql6#"z8]x Fd 9uSFk;v{Yʑ$Hbr &u&FҪޔ!:{# r⌠+(#Yp Ws~]qR<.i`$@7 @$>$*ythd$=/{Dx/8#H' y?‰(ÎIbĝ#%<#y^Hx^bMb*(%i$DJImrO$u@41#%cHRBbƓFH.1KL%#iƓh_Lb"%ޝa<,Ac`>]\I*$PIUpΰdiW[86ް۽bB+"VES%KYgY7[n`X7e5OX~ٷdh%KXmNN\i yFҿ6w&:(-J+2{lI ve) o:I4Hq.r0Y/#5(pf2H4C]ΗT_oG3l 1Hn"2,.p\/lZ1 * 4F#iʼnT-r;:!A5"{lZn[ ґ7C?6%8SEJx$?4#F|bgc %#Fb4QjKKdCt3Rq `#$&9G%tLBzJ7OQ\YRBCp=vC m(1{ ަXP"8Ɠ3C8r_vcPPk/)`$f17 pfj7$AB$m'a'`$ZMX.WI8G\a10j(Vߐom%4 % GJ`/H%ư ^2{QJ"NR# gy &QKbd \TpLl)1P"Rzge|ȤAq+WǯIX64XZ$"  ɛ0~eo^ l1JGjd+& >yRǕ֕+[Wm_}jNJ+4;W>Y{aLLd]AvZ޵"i犄+㶭Tn[m N:j3~wMrHߞɛu脅,ۗ}lAz;6J&Uƨ&T$"gp-fLUj򰅄>TE!=0HHFbl(l$7-HEIǙFtt&-#H$)Ml>e$F]PFbԨk]NFx ?bYc:cᮅƹȍ | by5XƟ0Z-dWZ,YH&F&AgEF7wx7G mH:rtD("@~# K 6JJ$06|gz#&HAfĬXl(`$T@IIn(K:5)$V [J$楄' re$\H < _J ln+m$nObHݸ B6.W$%$*,VXe@ j1yK()K@c^2%<)C E%2VGF"DH jw `<$P)XcXBI$iڑK.ߣolljHѩԭm269lAP )h'i-z'Fb)(HxQq۷ *`caGaGǴ#3;fp9(8Ir[On:ptG2 & xY0fJo0 1H~_7||)(̏`grP#vl:;[Frf\F0 a\Mjs w6;z FºƆiA[o2B <ݸg.dב s:52,Ace8HFr-A]#whtru7nVHԴx4ܶ#*X,0ft52BzGK:O;}֑I"/|<Ľ fゑ8a#o@SI`XtaH̒~yB>vM$"P!:҉#RBbGnIɳF򒉑X3`b`+Z\5XLJO1R^#1zI[Fҟ[gMo$ƤAmb#is@r<ėpw%J)QIߓACKj( P7ZJ"RBD I[tRK9RZJmH]q|PRn+#AR \"-K&mIGmI.MvLqEi9jRV7V74\kC$H3c灦/MFeB 8}8 >(>8^^)K'+T$P$4 yMH5$edYe_H&irWYN\T1/(#OuDe6?(2/&ݤ΄$[4Vx\};7_(/Hja﵄)൛0}$6,n}o~kl7,ܗC+L!2ƅ#Z_- H;F@,ձޖTob`}/LCAGY[6:v i$ܮ Fh.=I/!3tRr~,Ѷ79!xv=ܲ'I:fX HKlkѾ 0tn0v!is<1a0!mZhH` nk &AF"1^L(YL&,K %]a+Y ej$VJK^r~#x wݍ9^b$ beLҟoxo I,LHH kBIg+w:&nFk+yI&y#n:H H m$#1N(!;q7ᣒjэ$/vxN[I7insI'e ROI䄗#\R! %x%Džx1skGJ8a ;K |'_',%^ )&(2b5R^BRG$%~D KȑR% [JD9!HiCK  %%W %LNl>CQh"/)n'%%ԔϾdS t\/2i*# gKpݤJ\lؐcOlHӆ5k';`J_$$Jdh1,` ٞM$EsHD Ոp0B PB5ž2XwOqÚ*V5>5 S¿ ogܤƸɏSM!q-7竻\Rw ]}j0.Oy_y33@nŧ9@IR8rA{VX sZa[)YTitD5,(IL % y5d#Hh)! #%d+0 M{rӮX屗<X3%#1X FbX&ox3FbKxFDb&&&d%̚$t7u7-'30glкݰIxFbv< H:YJJr%\QqX |N6BUpDWQԀWZM@J^'REIIRI?D#)ARWKd/^͑?#VR"cK 9+8c*8h+%\FWufT,X CJd0`>FH-M[_0CaiX ,YHFĬY&I^bb:K6ulTsF#f\&w 6/0*U)p$$ Qh?o檕u90- o[jRX `'%5 (0?QGi Ey2Yx i羔ٔڗQ seoSg$ 7o B1…3|Q59G(w:SPuvE|_y Q'1'0*UGsGPSv8qe,9@?d_P 511 vNoCmMpmn~9g%$e,K4,L*e Q0$q(&QE-D@l:#VA#᷸2RI ]z(%P63+e1V'f7fSKo]I$]Θ5kƓRb#A\b.x10@*)7TJX^5z("%ouVRBJxQRh*L" a$%#HR8t+%cJ&p_ cKj)1i`$8K 2F)$R֢PF&FA^J6x`)1g*ʾ~#l)II2$%Y[HJ`Ot{aa^ɬOKN7˝*@S* B81Scȣ8KQN8[rD~ Ӽr$88 Gs%dٟ]/t!doFz`vg}b(ڕ2(a("llMG8 -i[tR7\`6w=r5l 29keRL/WQ@b XY N??^?/$N 2MDi򇑪a aqM l]/]VtrB2FbISS\р$)!Fn'wN2k$'&6yc$Ǔ0z5Ie#A&1H kP7 2,%HxRB |LrmHxRbn $ȼv'䌅$ܥ7ĤnFJi %O@S@7M<]XJWpyH2Hx (FJHRTpޤ$$x + u^B'%pD'H)#!u\Bh%C5R^BI %HJRb,1VpXJb?&Mt$͊Jf{,%󕔔,KCR$DJ,ZJ%/%ԧfD@JX^((%#ad@u1{uI()و𒬭6g.wwxzAC!̘?Qt4XF1|UL8Ɛ] r!pfat,!  ̢X5 pٍAb'CzюBv}6`+/ؒO =`@ 6cz-!w&w-][VirWjrV`krAFrD֒ŪE̅ ys8=">6mDn`C73#&B.N)?eIҔQE& O|?<64~xH{(C> o4/ᐎ<}  FC΁0GsHGl:bKW cƘPRɀyFˌuc$m'!R"K,/0#i$qLR21 $ml ̓\#|60cC -%,r'1xvoĢ<ҖP]x+>fBIs>c#%pI7=R GJo>Qt)GJJDMPI UMdGJb`JJ䬰(%#))QJɔ)az`\ DaLJ$HRKxRƌR1A)hIJrq8 K4!)yH~eݯk0 %5I,XU&N>ACIˣ|6DGؕOؙߩC적D*hD#-ͩ&D&m."56h6`u@@VCXAƬR Pg˱F`%g-MZeDJ0_鐘ʘʘhngťόόMLMW)tS)rdc>LBI'J)1 @HU M M0<87$H q; ~1o^~[ vuw/u& #TJ)]蘄Iͳ,)y0#jX0925IFI[0ڍr|7 GJzP2xff7,4DHL6Yz#h$R3x0#7P=S'\M!#ycX '%%K )K o&(jw-%R,)!a`LRKqM<$)1qyVXb%qtRHd$sdr~1}oļGdVQFA(xޝ  j(d`<k:ŚNV' 1Y<;ȕWq4IXR33RbҰ?^~DPJ$}tg$A 7qFbnHJPLJR [Jޗ$%*-%$)I̧dt륄^gM$GHL )%@Za4_)#i< mCW6JCr z- RfP"'fIaJM8etv 3NbN2z?mfkje&( дj ,i@K(oA-Hؒ(Ldp5h@M:gZLQ4U6`Vf~9/aVE%/ĩPCpQljS<R MRA_^eWW^!1! U`V bn yp C3. ºU"0VcѬD0o }bl3X)'8_~\|x@KZ7bS,H)EU B6 w0Na%|1%Oo?#yi;(hA4bBVHQEa&>"`EucT :b0-r& SӤP":@\="p H]U0 &u1úo.U !m@pCZ[9![P5dP}H#<|Ϙ6̵yp ,+f0nzkP=*Bg|'1;9W)قHSFRWl#<#t, %01 `HR/k$fWܿ_HGvAd UHȂb$~/"""""""Q]0FEHK|MDDDDDDD0f4*!#WM#ǟ￈t`VɊD=@??u[P'\tQ_kQ3INZVHqS-W."""""0vA 5ݕGBd 1?q ˪]=.߽w/rp-(w8YI1 ٵA;{<]p$o$+6)z]mF zLjF_}Z\_cIA:RYYlVyyy ;r,++ \;dKXG."O \:tWSRRDDDDDDI5F<#޽/vs,Mɯ.VprM;lvEEe#gDRb?t$##7_) Z=zJ,7 i4hemؾ;i-Җ߇{|xMо "yAG~G7yrLWQ'_xzJU #H#\+ZyU7+>ǟ$Tw$%sn/<-Ei6z#i>Ҋ:VQmϾkP1yyySGIRh)ґ5!IzF@#!km+[nrŒ$''(BN"􎀎zJ|' 1͚f$g]v\^Y?3z!Z\Z}aH ̤tD `)RϤ +bF""""""ǍdYFB(zJ J9ō#;s5M_?< ZS ȩ="`>HYp;atl6g$#a`#(۴yCޒSO3HNlZZχQ뼹pSWve3a%""""" Fr&E#Y' ǝZaև@J`>CR`r\\zt:NOO~H[Aj0NMy`#ao$r#=ogŚ{Rr_4"%F#2h*#aaCG}8af1RftF4^FBБcg.?$/)FWh_ewD?n$9 ёHDDDDDDD7d#HD#/TmSv>j0HH<\޿Yk?7tq Ʋllll1h`ǰsjSV r/:IAWeØ\Szx)KE#>a#Yr_ZA\taEF" BrxJj&/M!„(C}|@8(#~vVl$"""""""b]FF3i#7v6-m8B/H<߿QFMMIGz@Fև7#1I_RLԯHleU01(8H.^pGW:&]t.B2oHD yMM;U*aeb:6#S#᷃H:[+;줄IP3 }$ j$HJR|OuWLstH8i~`:o 21QaK݂S 0Qo2 ~V>0HM]m$DhM_IʠbD*#F (@FcXJ  0 ԃөÜ4ԥ"ҝ"!w A~c#ϯya7ڰB-HeIG}""""""0FEK3 +Un"#k84`d$ڷa6hْc ;i]准SڐŏAxQx:>z Nawh|nz׵Xb$й{d#s]*-#Y$1/߅ ^cTp]fQfQ0Tv,<mgP7^iQ+OYpW]DDDDDD``$;[8jrFRYXJ2vv ɷ?77/%"""""b=`P&g$ %`$#۟Z( ?#lM]GFinHGvAQKت74 &IZF_^DDDDDDD#H6is7js@J֫n #_HGvVmH6n#AIIm0o(.H2h#ٖl$599ADDDDDDDl#mgIWn1I߿""""""""2ֻt(ٞpdkZ]IJұ|o7?QDDDDDDDQvToHbFc+}%%  AEG$MX sDDb@  AEJ$'iM|cl~M M^H  (2"yqEL?f>Frnb~UJփH@$A%uUR3@QHiKexC D BS#O"NID}|}} BnJ|GmL???&3kj?}GW~ؑ ATD[-Oy#3?ֶox t!p9ӳSZ#l-~K$gϱ8&2ArСGKO?+9ʕM(0~>@$AP!ɦ'Lys7 D2=MDM|`%#h4M|?;ܼyK|>l٥K@$AP!c0ֶiomgdچS7laǦcO$WCAPbd[ o0g/۰c6옺aI~C= B$ JD8{ÖaHN]G8{>_Gᴕ,A(d?."9}GyHN_ҁ/`G2|DA:@MIQiGAvGiAACZrFC0qQēZP5rI"bBnV!C_X{+]"y:ċ]ȔHĬ\V.W߼UWr#T=yX)u/M=QLdJ&E%l!D" Pi `h bQ1 @s"H"ɹ߹3[t`"tD$.\t7+DHՃ-;x\ u39s"#+XA2$_pQ8u''jf%7U*+'7rG9ӝi"TcvaإmP[Lv 7zf;hT$HDȃ=J2$u&fZ qCǏE$|r?67hSߚS4S\o}}ʧ'Nc?xLUߎ/Lmm 9 /',̮o{UFidx>T!0H5=]3\#5 3jǯN][͊|PO.2a8G9ɬ;]>{3T Cwqqq.쀹\;x`?ӣǎ2C71#cE]Y2s':"ἱ8:#Y5>H)UxgDHI%1t[D?Hb$20`@$wI$r򇲻_u7#=:ǯ9 W>=n5w>) h}_\̲'o$ķZ[9eA憑n\D Y==Kes+W_t{COjDy2d9ޮ~j5⒧~6o"L"xpme?O;9"Íq|¥lqEEZjD|yo 3 !\Hn}L&CBcޓEѩzT=&F~_59g7R' 6"q,@#DHȦc)Dr7s|'/}`85arIV@ƭ$jߧ[)[:t\UTtw>:?uU\VdIXD+dzd KW(ە„a8v:~Egd+ ƴ;8m /oxw'+RXd_XG̯"]9ޞD?-I$ vnEvpԖF*|Gˡ^&г+7V8Vѥ.(q+RGVup⊊q1؈A$,o9.IS(̈$jA L0 NŦ!ll :<~a)FrԦ|/\W\9pp͉ *0 㣴sxWmNY!Xi3{_Ko~G_ӟ\TfaFGi$1_/Yv'/mǗ6^=x D0:>JD0Ko1`\"a.Ow{3\7AAϊH2՟.X-X ߝsW3wwXԳ7}>9^0*BҎ? #}{sW0'F ΈƑoyqQO:1Yg $+6"gD0=Ņ  DF$ ~}=s^dHV;#  DF${n[9 J .#j_DAA ȈdAo.s%O,b7tH  D͂l}6JH F  DG$wzh]nA G| AH"#y;vo?M~8Ue_|\sJLҐ&w};cP"Xew,U"xᇭd_oRȪK ը:J܏"I`hy}<Ӷrmtp:!Id]__gl|fHjVdϞ=Fz0ž`߲q[.+ y0"s`;$4q'fؗcȑ'*Sc4dL|ꠓK;~{"_TrlY\#t~PRB5Q/t$h2րb!ʖHOpi J\.$S1{*F&nOXSl:q&E@A]8?d[0(jów5y$#swfHz!F!9o6FKt)ul% W|![,)M$,G1AyDR@$ZI#jlR9 lQKy1̣,78޲ b ;# z"̅g/b Dbȗ ٹ;_w:ڨwCHKK<1'Fm Zs ޥJYmj K郂k ]B:ѕSH'=AŢ([u?#oH*^ !w9#>O;FYqf*vG|>Φ# 1P|ɧ %tZ~%.j c/5=w{sY$?[W(#Y<;5"rxЇNܛ}FJUbUWKW5GKMY"&  lpP,7i,[O>><ӿF{&{U gmq6(JyJ$wL%lf@$dH,wk*PK~$V)tvv._UT[[e˖m۶-="iU9֪,LGqDr#_l|}!X!]aZ?yѣG/ۺdLN~ԩsڱ_LHzn{Kռ[ (ؗl "@1r"^&] ^ H9[a5G;xݷ77565G$M[zFΘcC/X8" '+.r]̙޾}yמM֯H2 GΘ{s[ Dr#_hx DAAM$0a+5'Ok^"۷wwvn{kW׽}δqK m7hلHX&Q3  *d"x#lȉ;v0ڶqʫ3"OoKAI\H^1dt#g@$ATDsϱýzͻO$߻={v߿ΥKG$ P~ӌ9X8bIv A(lܸA /oy릵0(aJ"IH3@API !~k53_7冲6/0d @$Ɉ)&\7U Eo_ "  IDrTkD1Gn@A$B"۴cMWPRq  @$IퟝɍW="  (D"  DAA^@PTlQݒua Z9K/v"1<4ѐ<)x wjһ~S(ǃE$CBA$sP]!O$ϰ3ĉdGd``}:K6c#.ŃFU{ h"H#t_.B"q1y?s $?dϞ=Fz0ž`߲q[.hiCLd}ah'OWT8э"{8De!u9uO+L:yT{(IN," `"E $IY䔱ZpIIn i:>DYS(BydMg#顀  "y衇Lľesx?u;Q '7T[ 3" g$k еTDY=/ϱr"ʀY4>*RHx^OUQIN+SrI(5.Du&>r[ L[!HTLbkoA@Sy$`D1#Hdѓ&M≄}(_ ľˍ%%A+51;" 4NM<"\#*ero@X+Zj-0̻ċG(V(Np]jii>]FwsUnԉuDQr )$ Lx/Q{T1J\?{BEﻚX"Nj>{ Zn x"e5E"GC`iIK^X^$ut&09gJ/tH2}pB b$Ѐ7Dq>K#4ߴAP5᳀b$~{ħb@$:?kC,TRK ܐ8,k*^uÅ;[^1b#FDWd%ԋ!E+hP5W-6^wp|0Ä#l` P9?H3"i-BRP۹Ͽ$F/9ۙ_܍! yF SRq s?J|>NZ*Y1&rN(->kU('T-6^GЛ^t G$7 \PXٔ "ٚW*ƃ A9H !ЈD B&Y|m H؟ʆ AA#A$AH  D"  (DbDAA      AAK$;A$AH "i@Ac"fe AA")M  @$AHRD"ZO\UJj t!Sz1J$lōQvSݣh]nVH"*|gG8UվP:DbB<LdHL$?Րhn2X͇./N,H"AD<@Br55%*ݪH}b "a`dH63"i%,ɞ={FfʠQ+#Ƶ}Ϩ+4"ՐavR/ x[9$H6;P2NzzpZD⡭D,m>)=Tx=_E="6 ,9IdiR4G|i&e!_0@taeXh^Q40-"o E?z_xݭdrN$LHrj\jNF$I`J3FhlE´,T?b$tڊ_DjZu@{j#ѱH6HOmaD"!Mԍ8UgkwB=D ;8il+C*(hI6T\)=ҦȼBz9TH|AFЯtzg0ϧX0h7RDf?_LVm,"nFJ ?+p˯(!tYu>&D|D6|Vi8çIqb_ TbV?kC$|Aa3ӟ>)j] gm2&*A&Db8&"ٚw+(ŢNU$0AC\ (Bb;BD"%P)њ+-A 4IqH-C!Fse`{|A$HH  o1DAA  E$"Y "  ID2M$Q  H$E"@A$."jC$/?rs"'L"  IDr6JD"ɨ  G$E"9k&Y "  ID 2,d @$QIYaHn-XP"  IDCɿ;|,L2҄  DG$הDrCfk7 A$A"H"j3dIH }?ZR3rv?kqb&?@9+4G$or Xk7HbKs!8>uv DV(+%}DP:`> 7ιZt%.>.Ch*CI$D][$Ml?l5d6, k?jH0n̦%1H@$ K^3(xWwH}b " Iy%\3:JHIdϞ=Fz0ž`߲q[.vUkiʛ>dG662甆YVأ}KJK"uF]e=~p̛feS?Gh;H4u#Nacprעɓ|tJH;wvTPLU:t %ۆ·rKF5J 7}6E" DŽL,5yQbzMnO8P3W8x(tV-R$Ns"1\"Q Ċ4mCx n}#|a3%S/z dmJ~邃 hdm1I #Tmۧ"|Ff(F5HVO@)( #r(F-dD9&5^|u96+kD2zI&D¾eCgXxe3D~y$:X áϣW) |=B2_E/=^AbߧrĿT3\mCxS RK#TQ@H1a_֡,{q =b$TKqvɵsHMoa@&DB'W^X[8"!9빊bl#)Ҵ( R{(Q6;D"$'FBD,[,I?" d̎nO P=uJ~C-"!6D7H8lz3[zF[CWO^HHYD8%/F|e. q(|^D Hu/xBIތU-VjHzhb$-6I:Q"āH\5qشӍ0ICgwl_D2N<1-mu %$Bw)R4S%AEiȣT\W\ &^$6,U2,Ţ7z+^j&c *=BY1>D}Ny@$t~u'J XPI0ljpc}&'_?+ݑF=LyF4?v5#gW<;F8یF_{]JLbpʥ!O@AI$RbK UU;u Lqk)5t(ED"QtT?'zLZs,zڅGHtd0>k1 ?kS2tIgϵ38P%'L]"ٚW]*7mC|Y*."!z JOk߲DI  z }ix)jh/Dr݌3O3"\ "@y!YZ|̫ X&Ą#L"  IDRO$Oa;@$A"H 0" "  IDœ"8HR1M  N$gvv AH#+PR"  (D27%Y'?kE$0 0CG$]Td aA$I%ad% asL$ asC$7Tλ2M$S@$0 0 "Hn "aa8gDĈj% 8Y^pfp  {S$yPV2F% 0M"yj?`I5*@&|"Ѻ]#/#!FI'fU# Ta)mbTv hHcrwHdѓ&M≄}φ^ g-8 1D;y$ ueyKA'0" c$R<3%pϋ`#sVzB>WU8g%v x'>19Ů#_u-0kZp7_:H'L!@%!CLAY gmȧcՆlT/П# Jmz(v͊ VmCt> 2SDYQuȟDRY! ` 0 VF$ ,(a UpdH6`@`T HRD˜ .dL$ H`a${7L}KKK d$aP1|Gy'.]nݺH@$0 0 GbA ?|WW##9spC;@$0 0\Dr3g8X0Y|#$ a)"9}4t˗/# GdB$A$0 0 D$s肩d‘!YD2AAPe [á^  ">zG  "JHp2  HNQ:D#Y AACU "a dq W1%H  ^d؄ AA"&,@A3"eaLk@A/,"+v=APN=o%9q{wֿ  @$q%j""A! IDRxT͒B!VLy,=APN=   p$UҎ"Jj.VVRނe`?bj z$#*V.utX>x`W Ԕh=Ѽ4hvޅˌ'Q*e^/U y (/}{ioֈ-dH#L2'_z[`ALf L) k $k!we8_d'\Ïmv|ј#+8b9a,V߲soM,.*:m W''JLJ<} h^B mraC#&Mzꩧ(ɘHgH>>SUf6_jsNX?sqHo9oWw9G8@"1ғJ~)V"V겊HdwHr3a8lM=Lb$ǟ\!.[g=owW2"+~zq+m*w^a2]j|qe -Lc%fupڌ{*ydW+kV(7v< 0 p"mM=7Z"g!3 !6<n 8W+*Cx<'V HHXb\fR|ʕ'3m~a8O-0"LHfDҔ6|G_L?reCL[!aө"˗jkku~[ڶm .!MH~aK.?CXpȑc޷޽vvƞƦb$HDbCIX"  h!K.\gΜa'}v===6w_֎i-Y'Oog{!|zx"pȩSO|g׮Eoֆͯ{}HC$A %YDrE Gyԉ;v0ڶqʫ&iISa tVataDq{ц.]^4D2D0 ÅN$QՀH@$0 0 ""a HA$ a=RD"a\I[f/6$A$ a 􍚽InH~g8i2p*'gH:&,}0 @"iyBJHITDRYR4$̎iZzQl`O͘9ϙI ,b+0 0$D`ԬĞ#Oٜ$'"aL,O6aD3bd^b>C4Lq2}&w+kaxhIgfDs3sN$d'aJy03ŁR4s+u&g1>M5 0<#g.$ /d/>D93 1s.p \& A$\p+\Pg:: pɖ+aJ@$&Vq:WgHͶ>\{f}"KßHgVO aN4l~ƜdB [fߞN`(01c \]C2cΦ[.V &$0 C$+ob.)g7g6_c7mfO1qn!(֬XZDBm7rvaL RBȇ[\"QiՋ:0 A"In6DE$I+|oDb?sw&~ paɦLo݂!\ىynQɅma-H@$0 0"۸sĔDbD0 HdMLkeJD")k6lB aA$IÞjdPbI@$ a 8i&i&@A4d\T&ak7H  D1l0ĀɍßnRIYsDrn:i+0 y:A$i`n@$ a%\"0 pH@$0 0c"a6  0 HLH@$0 0 ""aA$Q걩?Z\>Jۄk)_ϟY^SBI"__/K2nlYz ±|’Dֻfc{q}6`g'5xp]R]P!.$9W "'Twbl!+m̽zlI5eq@-*EY:!TtnKtQ;fډ.hJ>L{`cջ)d)OUc$yɰ:c1* rK$,߾td `![8SD炟9OO h> fv9XײNJM"ч\LϦdHv)r^ɢD!|gkBA 1ot5Q1 "?d 2%N,!LIHt@DuoTPt:Ԅ]yՆD]-mISv Z<˫6lD4'}$5m՞jݓ.Rb#f//-]sŊ0˗DҩZrW@$2l4/I$WΜHX?I6#p>[ܰaLHO$Nvܭ~ݸU F+O0߭FD2;SbtfIr.z&zܠ|gq׿"n3d_nKv q9ӿncl0)tR):r̈́ nu($)I t[rV h!Pt\VNRyD$u:DrU1kKH돒lp?,  _@v9Kۧñ~ 'H-" 0 0$J"iHA$H? 0 "H=8̆ aG$A$H? 0 "["  h(b"kHL(i@A+"ip$4$:i+0 9E$ D "Aaa 3:aD2D"aa ft 0 "H`aDD0 H "i4drD1{Nڌ5c4[ٚLhLYdؒYjʲwEaxɍ'7EK$XS\"aQcMƴ\{KTIC f@D*ndfwH$VQO7:PBɌlHbl6d8])&ui$m"1ftͶVP#vvEU\Lqڐ/ʋuzR^XQ3 6L:Ӆt"a+"Zۉߐg7C0 0/D"AaaI|Db" aDH$vxia a@$#@$ a!#6 0 H"%SDb@IV x i@$AHȈH ~@'9m~a8O8dJ)"i 0 0$>"D"  0 H%SDlZ"s( 0 0$R"!)I՜+چhD0 dC$9"ꪹ#* hg[\A$H? 0 "$ aH9a⢢ 7[TD&̓`۔,/$H:&Daa.Lm6,5HYĀΞdؒOrLJ7H< ܁<["aU aH$LmQy0I՜L$!jF&'&3U 0GDO$fĀLdjrO(P Wmdo0s0Db"Ŗ0aD!\k %XW՛ ,/Mm" J0z:كLB̂0 L3&=s&&9jpLګ 70 pIQv#i{MDH&,gi+]0 Xd %Y!=a1qR_D|_O$KH`<"i-Dr^JA$~adJ$Sd~> 0 H#l"D"aIu D0 9$|H~aD!4*?? "Aaa8>",xdn&DAAАQڵyy#_2B(ˎ]o6EcH 5PHu_J GrBZ$""3[$ Qb=slɘ8UDX2J'zI?>ӍNN+t G֫}gJ2#.XhԚ\5bMb3)s#.d w8 *Nx<^i%{ iW|p=d:J%z:]p҈dz %DҕUg.O2 b} 'DP %IY75X%`.vM"чғ!toδ&`VP9&DBWtq Nyrg!NͅtSo6tU84ˉjxLiV%򮸧vN4 yuxDM$71yY"7[ Np|¤..DF$Fzc~8+ G꛸TT7=Í7`kj$~6x {r$r~z@J{6 l2Ӎ9ԓ#(ZN3?[nFUR:$՛>h UqӅBSl6!V9xwإx7cөe#kλ\w8DR~CyDbfK$7QgCb| H瘦WmZ\"A"3t2>x}@$=7Θc؄HH~aD54cM)"" aDjsS9D0 I rH~p 0 1IE$7yd#9 AACE\J@$AH:}d8Vm~a6sM(+IfD0 ĆH ( 0 0$B"iyƼ (H`a8D2D"a\IEHF*jN]WaA$a asF$l9KDڬ/Js1ܟ!}<O$kƖgfW$(]VR֟g7UGҎoޚMߞ5 3Uk%cWqiQwL,*:y0DhPRʻ̟F^VU_x%{9 Yib5!O$#%6:ddkFg cӛQQ+Z Stv]e)Gi?"$#XH"H$zxo!2Do{լ~d6F#̱%vRr* cXvy}}'v_ınbO_N%Qֈ~ettkY F\8EcP.P"&1sZ+%>ѯBFTH՘HT.GDɇI bճGNL#ȻTG!IWd`roOH,L;9'a .sOfv3k2b#8Ly\.g?p_;<̓ 5˜P+f=d íer2IeqMOꈛMРTq*( YHԉ'"3=u[#,8Iv~TUꅞHtXߵ7GzRD"5AQt$ăD"ߨ뺬szD`]rSԲ5g#1fZ|@~WHRC!ZD cxJ,dJx0"O(˘L$ʒzmOID"I *!;aÜj}˗ M$nTeF-7 !ZijjELp] L5IR[T:m*QI "!+j B֞WҒޝ6Ua7#&;U0w9LqfUn%i:L AQTzDHLGI$|,+Y>kC ^rHA$ b'?8wpRQ\O؆@[z&2>.L[#q+T*cϩNG{9$)GY :)Z}ܒ7DQqTcJ)1(v[MQ"8zK}"I\[1 YQdH|f)MXٖ4{wO Bᨈǽ Sw}jvD")ȹGcæGK/I0 C#F>#O>ҥK׭[QoT| a#'x绺,I{IKD0 zDr3g8X0Y|#-  0 kӧYt/^|a8$M"H`a8HXb]0 2@A4Td [á^I%  5k=JHVc+a`a6R5 aT&TID2,"YAAP+[D>0@A}ys6ܢ PDAAHZT/p$E$I; HVH,(e AA!@A0ĻDAAPӷwDUHŠEJ|(t0fH۵))lt6];n^oxG ;;4omײu{we~I̼pKZnfNCڴVwdmxK\N^oVsf{bt-OCJ6]7{MޡƔo2\oh n1lyk_mRemwyGGPC$%J3LD%("q94P2LLm2Oo!%w% n5Ą"A$<|UHLAIJ,"%^DB@ɲ؉{4z$" Pb]. 7ǧ]E#}W}?]u(>c"UiIl()WAIs)!:?g)ZJj=PbI,(aaJjm(iH+L"bF$% "Y!#فL"%|Ă7L2-dďKb&K HM$HHd)!JP 0(i2,oiFȊ97Wνz&$ RRrD⅒ (@ %H7DE$wI(('DDJ^`8%*RE.bC7ok?j^vH (30(Q"9LʰH8k7íD% 7%9.9ΘAH %,Hl.\zP"`I҇$M[i!LO$AP2p[rāDq:R2͗H(deHL(izJ##k17_;庲nvcEMsnd%m(o BIHjJ8.Q@3:k7wQ։d@$B;IrHt|^Q⵻ȵ׃#kgE鷯ۗ-0 0 G_u,:2+_?J>?g|kN }Wuâ ug||髟wޑk=OK//?t4ȦCIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/figures/bundlepreview.png0000644000000000000000000021630011534217015022000 0ustar00rootrootPNG  IHDRN$bKGDC pHYs+ IDATxwt\םs=}fwֱݻ3m[d%[V$19gI (&Q @9*s9 Tw{HJ{s ~]z9'I~3G}܏'?{~ $槫AoBQgcwzGAo2?{T~S/~F&৿X~_OO/Roo_?k%gG/[Vڇw{0Y|ueQM_?O]\B fV1FOw?@`2ŇYXLzdĤ~a~qodBͻ#)\ $Ell#_w ; (aŘUj[bLG` VB1s j` zf ,Ge"?_jnw$,Z[E wȷy_HE[\x[270RԼP؍}4 GdcθրkORo'&Z6=eg{˲DGأ."~z?=v_ Ǿ\CEMp\q/_gŸ5b_~sox9sW૯|O%^fU|mP{Gkmb=]b;.t=2s/{>=r GAܓN 3uHRYub-OOuS\ƗW8ɸq OqPJ$~ N!}̖_`HEgfDSpI6NM 'py ]6Rpn4LOq1QnnS;ĮdU0U}3`wggVC+uS ' =Լ.${2k2k(:wC85oeOg г#Qn8/W0/RD4 . ite H@>7%\$ 4RȦIUv|TY1W3ip* qQ~o gk{/͝S:6-#ﴌ2`4;ˍaa&I}jTSra#32V\͏ْ~lU檶0?e}z9;;x{`h߈xߘd`̡ 9!}m޾^nZ/']`lqoi[-[ݙؒ]궻SMd˃qhXtxDr=l9D=&F3$&cccJWgрh@nL{Xx:n4v֛$1˖M Q]vCu3Pâ 44/ae?Z'S\v̪Uw$ZB6ML&nBnR`ǔgM2'Yң#ccQaHޡAAA89>8@CX:d 2yGF`T9*f s ȟL ?YIMZ4%-)Y鴼tF^6#+**PV3eu1\qӝF@w;Ӟku7[|_ $|(` E*xຈч8H"W91H$`|]Pw{u>aA݃}w}wqėۋ6Wofm3#瞺U PSmQg~%7]ζz;"}*6ޕIM2s%v+l= [ޯt !sX8G.0!i]c7t#\:GhRÇlJt.SfnɌwVEo͈%"Ո7#7D"-"ėU1τZp]TFk5Wx̩ j B|U5Af + <,o*.L=o?,aqK&R&Uс_Ɨ5,M5b%T4l`bk˓2Ӗ2qL-`ieU>!=0&J|459AiQ^=d*{ilΘ.]݌u>a}лܦ^v>fBClAx`Zx[Ƿ1&@IUOoOc@vv GC{F${Gi㊃CCTU:Uu>Ld"][6+겧9 dӺfgpmEUNx:B>҂<&P L%jqcr(o߲##RZTCPbT´(o^fٍwqBlm3ۉo"UthX{{8i}##sa,nnqa>@vsPvvw:Rj=1Gx}}aHQ4 =)M1ԌQ~:B>-LO'!oLDU:OfGr*qHQY 8$ ZPޢCa0L9Fp7 Yqqθ$gB;!͝Qe&+ i)(RN+23.>=!:5.j6N&'''&10.Ac1^b[>e1.(O*@\3%ˎuLe=[}=5 |CB3"KKXJ 8[v[܉ddcZ BkR7L%c!Seͨ3T'%{F_;ysr660f  —Ljs>n|d`UDH$mJ&[$mlGk{<;Feˍv>{2m\oRRu9DӦOiO2GfG̘,)ab3fs֐*/O`!++~dlk)PeCPiE `* 37#6Iu*s\ )! 3FdGd#aɡ!hpp_zx{{{zusH]]]d;;$tO^~.(T21Æ)`I~c31$fT3N3Fe0A<݁Aс>4 1->.βRtwwsReD18:ʢidP?{ֵYC E BvB,Uq[Y0;RȄhtԑ3ͦ*>< I#pqdL e`B5!Ϛ*riJOSO ՠpFSDG+eʙ@_WmkH-xk:3rB`9)4@d;%bJ礎&|1?[/مgf /E.6 WzVҺXgCP;m@ioS䶻r(r]^-m2;/K-sdN&VEdmZ̷d' jhtgsBc|^l },_;.*\1*E'P U߳s*Yۨ4(<'d:FK"%ed2f 1NKhAV\xĠ`r¸- !a a+IuDQ9ض̘O܎OiG$P,+hwHGiMh $ڏ&5+ًhӨ4vM;0?4c (Ӛɲfmـ8r7!<2)@Ѻ_]i2ĝUݕZq*|W~`&{^ދ|\R/]d.ҳ-!lZʕ"tW:CPiwtI _ rDNBPiVHzU%uUsU}UcUSUl}seBSAI7{o~Ixn][eۭ+W̷0ݭ+[W7(+ 3=|nHL ]j+ ~Kkx]jwӣ!4b3'a5JFm ӱr,ϵw- K"Y{{_/r?\$-"ϢгwGy(a9LGx>;m%8a #1`|7*d90+AMH5x{^r[i+ \pxz5^"n[钻;CnZron晚y\-nKgx?ugH!!^5}qn-W׾}-譆+Kُu絳43@2P/J=wUȷplGYCtþ)z(4lۨlˈtˈd3IEeȶjǁ4APo[ߤfU}T2SS`7afGt#j,+ΜF11-7g4 @d La=m?qf\Y׬~ >P(eRط(.< 73nK,4Z  QnAn #1H1!8' ꂃ߯JO-wwɜRg.mm"+zWdm[[frKl)6LEkP :@\$2 bezMnTL弡qzo}z1l g[s-0bH5bb-=nd#ݱ($57us)zn҅OkgOu`_&\9|ӼoưgZkJن XeBey\DL [`Ra&U!MF'LJq*L;f`'}KZD>Jaôa^㱤}WveOcH$ `%Kcb;ҹ\(ߓ)f }"ȟ+䉃R* qEIS,#CJ(KRB>W*z55(T_ER0BURH2Le+xKO1]8ِ8vh&Bf9kt;2e@4]:U>=4=8ASb##=ò\W*nU&44]ƴ(D>QM-nj,X! U\*qAbFh>r̵fd;sрlr@S&1`lÉF# 4 &`"!0MdƔɰlyg$9|_YP VVَ#~L=ZR>**1t=vOC,[, }/y_\{Ǟö尬,K|Ă@cypȱp`^sz].rWU"w[-HZN28.PN* JQsLgq+Fsw8q%ge,pyԜ=9m=Sm9Sc>Sk:S?{ hS=<['?S'=S'>S':]/8]?U=Uz^#wܒYoHL҃lS asxhlfPPq__|_ }__I_J__)__1mk׺ٯs_6W_/_hf!?ږK} <z"(] ̌a`t`Kr3N̅LWV"87Ь:Y0 Pƭ 8nWg',IZ%0'Iܸiv0;f#60}*oӧt)ܽrW얻@)w]'wU{vGnk[rSf!5| ?Rr`LaR9nk\Zk5̡{vkG:lN;g7^6;`qcù\;}XXl/6o[Z?1ϟ7D ڹ:3X*=9g~J̘vNC S5[-؜BJlҀ}%=mHe6m6yݒAɴ&v#lG8=C}ikr{TpvPrg;s8΃+>dGL?S%\I(Oʗ a,RHQEt eʕ)*T&J.S֬v}*1Nb?\W"pƁXӀ2ql|B_SGPp]27eٳY6ŴB)f2G3fG`JN"Nj`'4&ȸzߘ*mL7nTI¯GH6[X\aپ86a) I-p;n8SꍘQHz yIhHdr:*9bqr+iS!!+ƄF\uJq*AAgSzůCoJoJUV-W J\A>\Hboz[ ~n!"vcT1auC >n F41}LmSYq)޸+7oPUqm\c؁l|E=cyuswZP#j*EcJsJwxԈX*, 喓32W=OO@B +BP!=Y)#lv-ĹW&L6P^ꎹ~=$ݸu:\_j~By/Wtöxͺxٲp=k6huJew7S:ucY0̻gۧ [-<&ۚ-1[C!a`DU=cL4-+mOa%CIͲ/XΏ8pII 7!Ǿoq=L'='p]>Bȟ ;[:+CWD QPx$IVB*VR#UkNUSp qG_XUGCU"PoDV8R!g˥XADZ"#"P3繡Ds>@Ͳe21}6BMB=z;@աΞ#i I&KNR.(,?O؂*θX/u4c1CeČQHEрy0 Ǒ@(3馌`4کsҖ&4D$P,{|F Á h*TղÅ$++L%л|pMқTJU_F8BVspQ&I$_"+<'RBj8zO9.w8S,^P"򖊼eboW.WHR?tv5t Յ&`^>6_4"٨:; m~RwOiS{Wm@i@/ScЫbg  J2,7 K=m1jp|0"7+#Jˈ $ןM5YSƮ)+וJ$u%E}xĀuEcHm >˩C`g0-1Bt?;z<#*- |- |M&5*9T77S6c~c~#rBbױI,Q / xI[HKRؿ Q7FԬowBZ#|BɤFNOvDb, {gF榝)ϑlpF"3ȴ#JvrJkjYpjQޭcCj3(}r=!5m<"ڀ ՞>wաvm7 gl*Ngo/ ̃VRښ*(Xh8j]m:=t B{֝(~bgi (o>/LxwwqgWo:_-].~bYh2͟6DO"4P<+ٖ]t[)fjh*l {JĠž6l'u*UjsD6òa0;,;!h'Yչvsa8h> !q}4m@=:e8H(UDIӓ\F(W3,:.Ӗv,I ag( !oAGJmN1 Xb,P6f2$ͅڗ<FC]]P 9dq0T1 #%j"o~&;_痢ꑭ˕BR(V?FR,tv@yw!J:ۑ:눥o(n8B "پ1R*Ie@4P! TU`;A4F-rZ9Cgu ƅƅOqj_GPgkL8a.ƃc_bYdU|+տwcr5 sٍ~zcTc7 Ň_V֡CgZJzhf٧}ɏ(sg[_}k϶lkOzzo=yi[O O uDƍOA|?[{IO2|S7ןz:^}ޫ}W>l5D "̒@dVݣNtk8o,(k^ZMnF PsP2ȶDM QRȖ:Yƞ,Ξuv`IXxV=zRQ'"k^=B =E!11PdsBxIG630$4~xzָ:4(owUH֢"  .b#UMD]m7:M.K2k#}h3TEy4^ [Pdz=K^̳n+1ȃ]\Doؗ/[/pzL̗E ǞƲfvAi#w6MЈm#{ڀװt6aζٱ^׈ln;{Ɲ{D~ぇD&" ?B?ٙ`\y0hwg^'ٚXٱ%3nKMh0AlhP+53J%z8Ά/i";8F"w6I jHRh/bݷꃫ&ىN\6Gtv)Xdg$6$@g$"F?6ޔVM#Irsz /E s⑍;{Mm N Qيp= X:Pxs湲,3 ;3pRBG] t<"oJjK|٠vwv"DH:l R;|Bڧ uDjGDg7Ξ`Xh9b%{@ngU e?YǨ?cccA6bwufAVwxx1DC㷟8M;O?1@?1iȿ?΋mm|Ov}/v'F_+WzלW~/u}}_/+coWm_Mї5ү^MKOth};/>'d:`pT =$xNYRB@և:[뉝թM~ʓDjǵ(PvtZTJ"瞧m"=_mXB}~{pޢ웜t/!C$XRdz﴾O_%0h+fIo]tv/}}d͖+ŋ&)}.\PybQבƲawM;bt[)[GH4 (#"cb!Wl=c&Uz[DvR^3ޓ7Ejd?NL?^4ɗd[qg?޿| u"Hqu.l(xdOj!a# k&۞[(Hh1[{WF6!pbLZ.c5{ oo.y7cmX@F 8u(/i*UǬeTu@έu̺TuC#,!vxp˺/8'OtNΜ觟`d@d'}Oy֗j{驎zWz巣=A}ן'8?{ȫ:O:_3_5L~3o_OΗ~{'?>yO!g["ۢt5++#өA{ ّQ}̕W+3wʽ<&s\^Br|AfDlOGMrD!CdS(Uo\ ߸8g(3peAZo~lsKlxezg߭j Vx vv*;>w 8QQpmJ6nveYyEКw5xك-W_K5 nWmv*&yskF% t{dE6ޮm ӆ)otf' tjuE`DPj<=]](*;鷟v>]Un|GeMq\zOmVȠZ0^,VÞ8eqd/V#>XYJuu~/^̆nh{A,f/],7-57"pjL,sD 66n6ltFO$h.x)5wfN v]czMDXO^=1:zu{VYi|;ߞB7>k }IG{=qdPd#A92BލKWJ^5T/Tl߿: ޫM1U|I;Z4?m&gCɧ ۗdj=Ķ|:;MDgB1Nc뾱gC";]ߏY::'׳QdcDd_G?E>!";wU~Nu?UϪeF+ٮu_'Y8'9'[lxcrW~Ɖɮpú/pNZCtCa8jdE?[zB;// ػ/P}af6wM O#dj/Dv.oz-ZSY Dw‶'̰/^,))S*|޲ȶD7(OHQamلk{d^?V_Ƕ7}epIX$xH[-DQǢ8wFuv.]hyp6;EP|jpzٞ(ۋܮP"eiσ.vI:붥+֥&) mV=W_Нqg3]ӆSTqm`R t|z$xiFҌq׌98^$[Ӷ;1|=gB%%;( IDATpuAXu5P~ >h};|=x UsSB?B' JB"yE8yDa"I~L-=~ "~f$Jm _< |"b@r:[61FG'ˀ'BמK/s##3L">`*d FcL"_?khɽ@>x*dy2ç= ҏ׳ѓ <~ls6Iv6ɞCF6\9.7 >9"xd!9i=r^9_FOL<2rZC&y%"d _=kyu>ެNˮj4 q A㈰Ob|h FN rON2Nu.iXNO1O O qa^Pvܽ{Fז7{ٷ卡-on{}lNoUW8;^/TuKmⱭۺ%9_f/Oo{핉m~6޻ͯwn~}m^g~rw?٣=-Jם"nAasx2?i_RoPO;USvxnO9Zd^ľL&&i&Vc-^VS61}##L#?jxb5iDX{(Mxȼ01t ӺLvt`'UL͎8Fn'iCؿB01= `l)+vM'K:+e-VYP>B?%\MГ|o dQ G̓%B\OA' Q''jkҋ+Uz]Gi«&쉕'K^t\-W/ԓT:eUkjlErRj[N5튝Nvt6t:m% "8蔑<6M{4F{h%i 5WMj'uiƣ3l5O )\* U#Ȯ#1tq٘s13i a@9ee2g2b%L*D&JG_itl8rc; xp+Cۅɉ`>Aף%{q" O |?EBA/XwH!FCy\Uܿ`A3 b.A)!l)Dv Ch%N"r '4#) }l|XɎBd'W/i×J;JƤ'G$ âaa㐰qPpjws}uyDa59y熄gGE$ȸiB:$n*}M꘸iT4$h5zYM݌SMΙnzS/4i5Ώ ϏΏe_Wq_W]{7ܷw-C2qp3郛7o~'J(6+>Hx.EqQaFJ̡M&l=idAoSM=`[>_ߦȾ->{(Dd"ٷ{GT8-ɠqF&>ٟ{ Hggŋnh^+Il%[vVmA_}?$Z˭&=vNoA7? }L9#{EI[ 4נ'kl<#砅m#y*!6zkvEo]"d^3V":|g;]{mɲ%1Xe}+{d[%KfN $A2 rdL`qf0y099shﻷ:NOԩp߽}x4^ڒݩIMjd{FgIAOnV(MHӘ JT`]-6VWbC]q~:PpFKV׫gݬ@ %noE;kF׵e 9ZdM:}NJtLI;`X5Vk_G׌+E]6RBy̿_%n绶r&o1>{__OJ-_s݊U=/,}+YPYݯ^)<20?gڈ:14[vi. ((\Ad;dHֲx{)3Ɯ˸`e¶]g+߻&wlwzY 8dჲHCXʑ\ˆ;tH8p@D }>| yvs9Ν);}ҎOn')"MC$E݆ͺ~wTRo*fmxKf'CJySfLxGNz>$DyOgqQ%GJRibLhN=$hH&ݦaSԥSWKR{WVO2/Ȉҙ#'"A=dnӈa˘D7߻ )CFPJK`},I<$DIn#Ik /Łtsڎ9wUk/9 F|ž#bkưR )iyke"X%I~٩n.N@pw[)3U LPLr[۹%.aqWIvwsR|).tK:y%0}dIxIaqNDITI;+.:ECҴuG7Zz7ܺfx'WeUI~{ ٶe/s<W:eu^mֿڲn жmpUՓ[oʔdaZNlUVCܼy10dys%56Xd|0%ٴ%lՇf#ALK6閍MeIH6-vg j#L=;mD;2{bSF3>|F`DPÂיgO BЄ54CXi{>Y{Ǧ>'1k87?4b g=mu.5bm6_>ѳ!c` xEݯi}l~of;g7/I-WHB;9r!h&H $4fw\peN-6nVmAdᣎʭu [ިv6kH_E1nuÝ-Ғi]hn_e@$-MBC3`m_[c5[bx]т'Λb7JC\h"S` "89iL7NX55sPFvm^՚^ūnlXW{0K: ,_Cy_.CCofƈ)7Qs&%csx |I;#/V,K!ku}}&ּl&A'qiҁ}(9έ\橍x ]࿻(Ng4nH#8+[4(C4|LJBq0H?H8 x>g/Ͻ33q8vO cmc&dԴuİu2<<8؏SSw;(2SVN (Q̓,;'m8=\~H\ |LE ri͐f7dyRm'm2ɗ¼Ijl>5,dQ㖝SvL'B%%KeUEi\!I*H{I`?@QRuC u0C]e Ԉy'abuI,d'>Fpa/8\aa>x w Z/KǥӀD(bET(K}WlcQçdqͅ!yi|+)_]GtW|Wr_zi@viP~yXyyDuyDY>l'0Ke|H^>(+{EHw/{~1NʇWÊ~e|LѾcSM;7t 7 0wľS6L;^pp >ےxx{]΁S{׍#ڽn`C](*˟d[o M7\?fꤎzIiQ5N]Oۭ=wo=[s{J%7}׮Td)gL`ʧ&)(xg$dffT(mF$.4o.OuA8vsSIڮ?GgZ߃ڍmS$ z%8hl憀O6kPPKİC#аA3i6+:iP˟Ża{5C?-(>ԥd3HiE)WPkMch@lrY+D$ٹ}䉂]`Ք]?,!1EI0|ov Z6C01]-]h5wOvYc_p|;I;Ow]n[k?;hd)~U袗2MD9R'wL;M7_D_zVMEfF []xoUM6zu[ 2oNh0fY7f]7̥A=7L͔s#(6Keʹyp$3L`LotM~v|g'߻K#gRE(4rtAdQpnDO% A>N($Bq8 GwX{<~kkߴc/DZwʱgʾ4w¶k9f9j>j>b>l6l6h}j&%e3-_߅cL!_-Эثԯ26d1j`ºgʱ:BQ@%ALaLAvYR@~ɗPD&,;&f%vXCjވs49y| 0E9"C|"qOIiY,xNCEP"T *yy_&5h*?r; %\K`c0x9CNa`\ks)td#`kI)az 3\2͌\kό;]L. (ӠhET M;b3t֙: CIjgc5uZu{NNqgSO|QدV|u*=R|(u5- oס tkm;ӶNxSeV޸pܹw{rzl 6dͳ0e㇆z=tQ{=xib{66߁fMr?N;"$%|>fؤ- $E5c0eԪIvX#5TpBCР4׍>tV{ɖlU OhFx.'lUb4"읃:x6RJ}Qdm`8Av}fEiztvC4L.sjrƀ[|6xþ|g2'zIlN[ hL.x~'7^kW7 -QE)'epy_}{x'-a~ɵO?$V顿/4R?Ԯ2 t)aÆacS.# Q3iԒf,-)&5 iA8k6ۖt/N6SN# -);cǔs's״{8(Ep G𚚫yh*#9~!\$d08p)A<#< :LCSmԴIMWbsN^ fȨW; dXE$)Y䴌9ɮ(.9?I1eD`I`HaR5JV* Pbj,P5#z e;tS;,*Wi8<zcB{RN$Ӓi,4PȂ` "t^ e`3K}~;|x[=ykO?' X,8{Tm2I`ܚE@d["#9` F ETZ%2ܫ|*oEt2xڤdhDwг]lzF؈gS, bڒOɖ3n&w}% D{4^Xg|X,wcL5q̉zS6ocuJm:vA-UFxa;! b{֤}ǘei۰!A~l zbAЯ!k7r-!c#&6˶1+~^ 6ӾHzg8`؝dǵ |05{ qvE{=$c.c\Djtͩ98͙98+!yn!2(ˤP1Q IeEH,|V"xF< )$ |O!p㺏NrGI zp² 05!  vw!;)}x[At)뒿Cd[L_nϐaߨ8uCN PA IDATYi4re#$ AE4M#,ws]$G#1 bRH^;ȅd~ !#l:XlX:# "y9 WvXGWiIUw !T$a z ԎG+EGX#"I ۾qq^ъeR3rhځ+L;rB8 pxxO}[|ps:K%`)eϖ+.$gK8bYLςM$VjYzmaa224[)},^"*k> V`hKzM [j;& ףaЛHȒx? yI\jGE5Umu}2dwc CAO7 V7/zlnL-q>f/bN4 *}.~U.ce*U4x \)d{6tvm})4Iw'`s6mG )væ;w%y[]ytP,8P?iǕ)\r(ݰ|G>8 p OiB,g8)9M,J3Pi9\G٧yTJ#%HX*#E9Q9#N)89>9:1:><F8i7E  "{t{4]*٣HӝBWW__pptx+byN }DA,$\*BR2,sg~L;Ku't ;S5AvhvCL^$$#e$]}j6aQ3,p }F'IKdaLG]^JXd09G(KT KiL(KuP+PVʃUYM.^!^2!ޔxnJ} W9ŮnduχԳi{vڳ & A %h|=={W+ܕxfг J g!IL'8bO&m؄-6XccVfbD)#060:Act7>]Oߥ|mצ)PʀEn&Y(s6Pz `۱%J"+C%Q:r198:::H 25/]lׇ: .#vL &Ϥm8$zg\0Ku:ai7ϴͦD1`H5-m6~UPUKJ㕻H:#3I,udҁQӾaӞAկ@[vv1Lj7ŨyߨeߘuS'8A $2<8Rp\9nd:# #\r' 7iiw&L,\G9ȱi7P8 B/pN @hgEsxgX)z;>^joCVQA%|ߧ?=8;2l<6jupa8/DdK%TEM3rdz^4c!X iEI.dȮ0ER;yM慩Pbdԯ`vXlvX)68&% ь K%r^V,p4KiY0/{Jd Rԑv$ A P? Oi pBTlG;Sv"B%iaƬ1K|0b STcC ̱S߈Q >}j6ܭ uiB]`*(}wd;ROK{dLMRW#AGuZV9n5^ lUZ%V- lHR-m5"Vl'7qAn#hP>avc]8mXfM2.S6fL^üD9fN1%&c%;^Wi7Uu<[… g%bQw&IDZqۑ1Q!!A@@ c?xpؔfd6#CJl yȄ=$rp [( 8)\` <>rrxOrR'89p4[ (šRqT9/%WP:\ݤX,$WCEY$ՏY!Y(*+H,ZD.%$tI!e`{By=\]<:p)Ǚ)pDpq1rr|b||||Xf #ÈP`(x٫>ԯacC#VXcѴ s^//I#"]M3Z.NSĤyr=%\㴫&9L&$TvԎ͋ɎyOYNL9s CQ_eR!+߯L3Q'/C $R@ B1W5SSL8j/Xe:S:HpHybr/$)K pY,+ֲp% _Gk pue2| PpAa ZB !PC&MInFB Ђ&Ԩ 4AZUWDj>U+} J#Ut jՄdu@tKJ[> H3#IB@7S:5NT4wb?Y-;2W$4u:_$/? ٝIU%H1:3'&gOP&Gҳ]Jr= ޴pSK5AJS* 0Xktk]}WBxw98Ъ4g0f%FkbĒ6LJLgs)oLbX/ŀ@G(h6ҡ wm`2Ъܑ[dYmxŀ:N'CZpN!vֈ"Q-D~oɳٮ\i5 fkƳ:|gIqgɷ؀[bGy[ꪕAm҇Ph-H>ڦcD AS&vc͘h5fdh7!Yi:4mVLH4zlɾKTkuu /W1,'G<3W 9h1k؈ȰA֕AxLiFJc(,yԒĊY9&9>a?>86e,'9JN,N 29{%%LA89+ %P* .#تZ.#&fS1ʥpu.kQ1\H\S$CxXE*+$T.f$ @W B@&Ԡ kBu@:pPnT#j:pGH+ё h1qB)50XN:mDa-*׮)IҿQA[$&gϑnHv/Ւmb#&q i̶2=mgѢK4xS.D EK3"sFĺ Zu.QK՚*M:qC Wx&aiktsBU A}jH(tN#E8@-VuC(r@ehžᤃR4,&@ݩdyjVP,N]~bJBJCפ 77hطaWd`XCVDjePEU:uР6jbMZfB.-rGkE-阑;h.Ҭ4i 0z6Tk `&ج цZ6d:E'#֤њ w(1I63`Sږ ΍ Q.Pm T%ro -ɶ4r D돥%J.ԯ dGdc91ٶ{\B3T6AJnD=7 i OR; |dB襤[Xߝp#cIFmwQuf `X-3}D9cx.ީuhbh;fHj&Fi!4SԱ&ePDzy^- ֈ5"_Wynr]7]ڔj)Gꔽr^qTrS)W[92'+Ҥ(0_775!sapaxaxaP6#eIÔ2Rα^Z+xJy])ޒɯH!Nku&}Y?4u3 D6Qx-Vf&Éu MI0Rq83535PFRgXz~N@IQ\,"-|Ί9.8ߝ,F'G'Pr؄a f%? 10n;?j83S98N͆V4ň' 7 /?(ί(/L^.eE4 Ca8HzL7梹EZ KRkL@Myz!EP$q8X) VE+xr4Q%Ҵ⴫K'l(1 P4bΎ! %30?5=p3}jkOas#QK” CץME"~K`$o3Ӽ.er&1i ir/ dwCKIv%fW4A/!/d&6Bm I`P(5 djM첏>vXv+69A'@(vM*\+Hk}|%"{ SRgC񤽄2AGT2'jERB`B9``]V" ^ ! 5<T)hu6^1Z DkeÎ7f]%9IVB>ޮcX>ڬ4" H.R ju PYnц[vBgja֝pWN P`)6 SL 3ώgk۩w hDeVEdodҒ"H[A^-J60j6fy6%ݞ8jیp';b7{0~kCp;2e;I R@GȰa0gL3&D1cnLqӐ':uVG[TfeQiTDq<ڠZr[jiJ% yk\O崧r}eY>8.cKc6ֲq[٘ Vy`Z:n)Y(fJɸxT,:ZN OwՊDHrLNr !i΋S$IMRZ!O^}\HtLF#Qya JҌ怉|Lue[6?@TB\Oٴlu~Y8J8$U#? IDAT>MA8nM롒}9CKH6T{(W R 4|SJ:\ZkDѰoZdNW@ F 9ZhƖ5-KgvKڳm6o3ĉdǚ&}QMz6R4h#"pt"uʪuY، rKKB/45ukҋa 0%vdֆ@u~z /16)lon64Li}aGIJ6z&1,]kQspdap\pfCf؁b!`0 bEw)@wu.}7Ψ=ʓPxfzf'p&$θ["kDd€ A>),@1#< }Ka-M1>2$#M3C#<%A-$E;bgLK )I轫e@n #;øgR[13ddb9Q\Xdyrb '#$An&FZ*W;"GLh -̷!%ܼddGh`p&:%P 0Eϋ9?8pͅ١&;p@ғu@s4r 27ٓMIie8 @  eP 1iV%(Hг&F_ n#2 ų%J"%xHf"'dds&hLjYّ救Ϙ/f ¢`ɰ \)IJ$eu_%/͸ps>K?MbDHDh# y\=RWђrOÌ> 3;Ň ܣhi3Хd%hwȌϠN%3z!@w1])E0@'F_xzQ3*vlM\SG?K{H'^rson^X7(/ lYޜy3XKolcgF6o<,v3k>-Ơdgރ!D^N5^%6 ˫9nzMFeOWe|?+4ɿU ?MW?y9W Y5b#dO* 7= Эs ݞ|/s>E꓄O0s%w ٛ̌zªqa@!yP2< x xze<4g󲖲ey<7mb2/Hr9ϧa(o.,7Ҽp߭2n~9xlGptk73eHKΤ3w/Γ<9Ι I-_vyOgc,ImNdNdB|܇9dgIfm:bŝ;C>?98QwbxzsMETR<'v˿ӵ[~B?%/x)ĿA}=]Nzz9yv.bf(.n~z^݄ꍙ<*="OjҒR~Ͼwlllqʕ'^^uEH6#} >nP5xcO` 6` 6`9"%͌d%;vC{ev[>z+lll1Od^yi}}On vMj;[ŎVC ?]V` 6` 6`c~ :w3~K<ޅZf>8?[dll<%Udo$gi SI/`% 6` 6` 6 질d-Bkؘzm_$Q?ՌjjFJ_^zl6` 6` 6ؘ'd=V HY`lQX~[pzDU5P(L>*+lll1Od?M$M#̍*b_ƩYĉUԬ"eیIٕ;=t8` 6EZe;b[72E䫏dWvK*$T&ٹkV-R5W rz~Sݧƫdg6D?goɃ(e6izB2R7.e|292ZayfF;TL84{+ەVTkoy;3Y޿"_:V2.c 6`3(kP[eIhn<D+:He%{+S\(R4[bsXjf-y˖9#ӵU]kXUod'#f+iß%{d8N.vy̿<J%c5s%nA1Qtf/v3Ҽ#l|\AG$Ybkd%d*ŕO/Ov(s|9 ]J^_ErrϜrYgߎp2*4Ǎqђ\E03W3/J͚]ȘsR0d) dْ=lf- 6`'%;vG]/4 H K6aEjzLfӳ]$12-9.˼H.%;wrsJ.KSfļН,S~I1 -{0%˩0-%{vPYEXi4+z_ћUKϿeI$l6` 6)n;%:Ggt#N>k';(9f_潔q*%9s[JHjegY]{?Rrʖzbɒ"-ٙ9fK4Yfep 9YY/?uɞY$稛f 6`c&^lyzO$' od_ndSTf߿.ZΥ^ ?JN74/nF.3)\yY8s{.PQYJvr]dgdϲ5sﳜI(j,Us$9\y-7< )G-٬dlȐlgv[hGců;}K-N>A|^Z<^N__?͖gνFZj#g}4e˔E[s%-ٴ>:ɞ]iުUɵӒ}iͿYΜ~Rȕ..pCdq J6l*@m7(wd׈7yT)_x 5s+:D5C*l9-KZvD͗Ue~9[ftә r-w@7.q:Jv> ,zln%KSrvteƼA̍JyW6nz@}犹 3vcdlHF-.R'1 o*oU(f^ZZwuΟ+u{_^ҍ/ye$oirf;>X|\?,Hj94h{՜3&?ʬ>thUOէx27E}rWp=uC~K]B:fuJJ 6` E6|f^j-2WQ~%vOn[)+?|a |Kyj+Jw_f5'H}Ã/mv^~Sz%̻ 6N>ͲY^03wG+oשNRyd"ә{1GqԱl񙋤d(܍R{\3AOPOU4N]j_K xnqH#!>P~m\ kfOMʟ 6`OGh^ۨ[fQd}Q?<^5rn{/9=V#]>t$8]9R?uGlǪw( У.>&:&\G6` 6` 6HKkX3#Р/wJ_S\蕗tˋd|{~ollQmhX{`tVmo8qcD[9<8kdllkײxps1mhDTxe.FF$W8Dv@ ?y wR3#hʰ7` 6hd2}֮e{1J:6KxwMpX#}]AKh7ϲ$- 6`,N>A/Fe~\}*/O C*ܝWy<#B[fp}.ي`% 6`p66,Y.lJI'I'|ƺE60lzv+ٟ V` 6>!;"+Y+yFWXzВ«,4c˜I>L$[%ϱ`% 6`c%dd ;l6`OHĢh7X$u&O_:Ŷ@ROv؉+./gpGl X V+d?G%{cc_QRwCRO ; yw.l6*'lll鯶W5vl `jdctt: QY뎦zF<^Rgy646P*WRҁ|Ja6k /n.{lnk%ެn{_} Joorwwz<G_N`?Z%5˂){=nV$`3::Ԧ?m| β0;tg߬Q8snl^k^=7c5wy%6= a蝯-o9j/,K/VM6\/^&@ xsF,`?Ze뒭jvNU}ce!tErW.~} wIJΕ~VbQ4V&Cjpj ^nͪoRY"GڙU,ѱ%g(߱s}.:=/9ƀA}0L D"Yg1A$",`Eh%iVJMZUV 0yf{?L:G]clc]:#.%.S*J)oMysŊwӒ~ӪH0}{ImH\Gg-I]n}ϚVl0d*jW藷.H7>>,3{ds.{suYWLx⓫Zsɫ]ݝ!Wda '<'{Np"3엞<ϻj5X~ŋ ~5|c.NN6Wuvu7w[̳k{9ӭ_d˰Y"}3tv 3f͚yrJģJqNRtWq[֗Rr/~IaD-,޾OcmHmv$mzzӔ(K6]B,"d3SFZkdζ>a6Z縑d~q,G~_ڽ'd?dְy믿Od}=E ŖlP*ٚ&7QPg-"GɦkB$[HJؙAHҶiͿŘ%ֲvr[xL!ϱ(lI1I[jjHܷlٲndɒ sxUٜYb`+]dj7zٶI8L7Tzz堻g͛=d#W?*$m7}ܹsܨl~l΍/wov͛;9gQG} dpŽcv1qB400rmGoo/sDV|=F;.g7DkUL_(k";a̙_%yGğ1lwV V=zks>q>u,.K<ѲO>dğkKb'L>jl]}FVw=u+G dFΙ:uǏdGmޓNdK߰ 6N.6pg&<%hFbJVLe2EtE-uS ,%m-Hȏ\IGΦ&/r\NrW}BKل7n ;ַBlq\.SHg_Z*t|62qAy<%d? &+ Rv(/fJhSEY*ْJ'®s.ƘeUlӗgɴ'|- _uڵw}gGGczҥH"/=c2[g0%z3 o MRLSL9ۘ]x||>)V˵u IDATTjLBMg\ղj̓^Xw]W>8mEG{}_&yc;<3dRNgE__`sիWcҹ|sΜ9z$\~g>WL<ʚ |%ueGV˛5ך5kz~Yw}{`j5d&3[ZZ|ZxDO/̳{C_ /fpNcEc',W7?q+w$#?Vg~7|`{$=(QpE|paw'5 NjMk9Tg{kbd+ENrVەK;[s"fFvd\ۢ/]"MEjUߞUbS;Z7NrKEo(lVuyHZd%#]BnZX{K;TUp5,Z H61:Pm&X IJ[$↱H6amxuHhdö"rĻܒMBQ!%{jvvr閛navqǝGg=sqVQ?XÝ"I6ͽ??7fw=osO+]Z[[b;ÙhrkK_SX>t7&)rQ,G濳pZayZ{{+ ߍTs^u]|3ÒD~xy9#﷋MN=vҤI|xxx?r,OzW|$;Zb,'RZm^n9*En$}Z%(ەJJ˚"o=\!]^4% |ݪDKj-zcp$/b8F)ZYy&KMA!n:_LjIٺ ` ɶ5Fs  Z}MP2ڊ9z;|m0~=x;<"wW4ВXv VZŌƱ7XbM723kPDɞo֒M3 ި C{.-GlѢEp' ҿ@Xó<ߟ?FOvkwL]O.yzOjógUD,z;;N:i1ln?Nbl棏𩱊-V9"͋L7=+W 4~w”)SNڈd??&H5vmw[f{ `{n?֣4_cY!_hrr='Dѿ)7ҥKO=-O>S޺7zʛo)G3}vTKԽZNrBlz1^*S.Z@[WR>YqniZ.T^*aK)Wf%!3*qu %85Ky]?U="dmאd+pL<CT΢, {&VXRZ#X3jű~lgA~bɖkVdq_!.ҳ«cp5W-[?L9~C[Hɐ>꫿? Ǎw<:{G*j˰# <7޿̛7Ӧ_sʻS"nY9O[)/.}_nK+?БGn9ȭGe9f;|0Rj au'.cn]?E%2d>ӻNgyaK˞/2s}m5ȺÿŸY֎Y"?{0 ؜5þz![>[i]c̓Ɵ}2^ޏ؜?~1xv1EFg$Z2a(s?Aep"T Y\X(QH\ V4ɦ)$;x#(ĶEfV6>eoCyK3CMGYO2asUߢ-&3mE9mE|Z3fBd;AVdXa${5 ,;::μ_u6lxGz{{߿c Js%wƒm8>I{[eN+7l}Q25olժU^w/S:u|f<?/vD+03?9 \Eo_߽Ǽ׏u~7ʺy֟z෿6[t1?~:;o|d>b>yx-ƫ6#Zޅ|ƼE3M6mclm] \r16dR UFBε˙O[cl 9vP*En8}${a&}I'G_^{Ɠf0>'qyL̾^䆥:g=D"lk铻w%C,Zln (mo!h*e+d@Q/ZnFlnQJB:,XeսK$[Vgz+CdwHb[ԱOfBqߢdd[(6lq ߦlS#DP9?>e3N.;dsF]3(RFL:Ժb%۟΂%5kovUL8︫^ŌU>KGLg/靹dl/e"V{%w_=ٯw<%7r ob݋od2^r}sC}. itf\dՂ~7S]&?3X!a{_;s :{lL/|itWW׉7̼u'=s-[حnoo׭rG |ewzsȒ8?=W˰n=cîOXwf͚[ſȬB ѺXR_ٍ'OcI<x4A[n˪'xu-bNbBD6S2v%qo>vu&C2Mn!rH;.'D~-M[Ø(QE[X WMyD!`ɎԚNl-ty+]D ,s}OVA!eImQm)-=aqg Ֆ#Բ'eyB͙umKvGGWܹz3X}s4믭~ۛKzg,#ٖd[zͦw;ua%u?a[`t4_wS.o3~j|<r'SÏÖ`L}r7Od+X2 e)3KMN5״qƒ~wYgezk?ZsYf{ Vc?;욉9"?nӧ_6l,[%;5wu]~#X'zſM{`;!K. oyV}ZZZN-G.7c5>42>a[ſ},/=š>~(vi l>^tA¢F(^UQWQV}RSEYldžc,\7UWzdMx\]ۆv/˘l!6r}a յ-6eʔ^:d.-ZtMϛ7?SDQ7h$y!_O}Gm۵lzs!YufoN$g|[_yor[olj/?,78d~7nd[v-A̼[9ŋ?'/_Mt_6_}iΜ99t֬YCF+W\H)wtVӮ2<\`(M}ݬOyp<_a >~l6cC/sbdGN[˪g?^\D]I晤 @!eQϪ,>X-F-^miiyթn=1+V y${z[ϴ֍S%ɞ߹͘Yu Ƅ)%L V?ҨkB,MɎvϙIbS[>I;+ fӼCϿ|,J2{ * l ( H6 $D}k"6%Kds [!ى#; B!e&dNg,n4Ov֝^n\cy7)s'  d@Kɞ؈d[ex-޶s߼[6Lɾ ,# P!bQlg tfoWw#[^iRHvId@PE.ɖx&$ʂ)՘lfdOo1#Lkd=wa^ymAFw$*--Q =dE%{1mN" ŖuJNedS<=.2{f6ښ ى$;E.>\e{WT0/ٳںgiS$tc&N.\A`nKg3nJ${'%zO629dD"ΨZjا ݮdZlK dY٘nt|O6$jgse$e1p((.dlk*٦and@RH3q'.i_0O+xww.3{vYpkȜvH6$ œc>|9^[gl٬ɞnOk &l@NKϯ_;09f-X۷$4!dHv(dhѺa&!KIS/++ t\ Ka,UUZEUgQlEGO*V0BI5fuL~E4sWlj`d'bF$m1b.,VߑvRd'cN41diR}`v"#/r`ϒODC-]hwC؅5cR}#1480ة05T![\@ aA#c/TclbiHK[CǶgpkV}A4Zu)F$m|f "SX&Y^*U @vF+hMgFLB;vHv(dKv훿bc1n`ׅWܤS$z(T8nT \Ptm!c"%~3#Ǐ|<#,yo.dU|}$n15 dC Bzz!ZA]ldsFêR򫐒GcHSbcɸީTY-`^ɎsqږnNВu7l,jU^@EmxzoLnH[n¦.J߬s:(Sig;B.l-ǨSYיP<aDK6O,j,gop4 _\PW%l(0.bYjX-ۋ׏w  l19Z3(BsYŔlgPE)d=։ UƘ]_zc3w ۮNKdw[JW?jJczo w_[sdKG5h q7J8[J$!6@Cp}U<ES4VgJР;4n]wp \ŰpW%b"66`ӿB!ʍI(B~#h)dQt\ dk ӵZqu*1zG|C L)Ɔɮ|}-E=2Kg {k?\mL8WުC% WP<C0SϺ@~FGGbpB"LU# NRJ4엊Dy6Y)5sӅ+|9ʅqȽVEϞ6sZ9 /9NPW ܺuJ.djvd2Ց VQxqX KHrjXe W.{#Ɔɮ|t;a{e2{f8\nH;?bcڸeOMM1W{) *eLH:r+MX{-L li*f ~B$"De*/.Tod8~c^ٻaC\i.b ב846`xi.0뾼&!Gz.g<%/;HH IW9f;U1L.7_bagCŻRB͘KЄblgwsd죇wkkw.0-{rUX9&zLlM.j%̻w"햘~.ՄePx];Vས͸\fLl쵪˶zu0;=&5$r;; Xɓ_-%0^R,E}@:ɔB-H%$!cۺȒq.kZvKb.Ʒ8VXˎ !f0)bp<dn|щ?{K78ӑ܈+MMsSD월_}ym\lmͮP$n̝[#ܭF}݂|~Q%͔|LHk|ϑ[Qȴdˢl'֭]1y~dA*x1Q#쮾Ym=L^^dMkw/X;dHvgh XD$ c?e)dN˒UV5H6C>%}L!ܒEkEQ5|Ucv+5 Zo@?d Wr3hm!廐L RQUTEٶz@ʝͪ$|&M-5YEjHv(d/=etU`G]$@4!(dHv(dn4˔leȺ=3${=lHIH6 d'dFe:PoP$M ـ(7\eu9In6-0'H6$ $@E$1K7l@H̆d@BH@ $;QK"dcNd@Hϐ3HvpͷeC !/Tڵ٭ʘ֘lOo:+GPkdcEI?IӽUfH6^$g׬1${Ɩ9p#~c-.cXIj?$ե':gu46ې5szޭ3Z60v${'ًH5b~dcx|q3}T{ .=y׹%ڐ,ٛغad^o'o%g=˝QI}u)EyeNg/8up& `vOИl40L}T{ .=쭞dKc-ɶdo.`Ij?$եl 6$U.w1ݳ8*~Y4~ʕخPՔX^?iRԷIEte!(A{O=n<{Q +Zs7+:D?D1>aIq&٬qQv~÷_-6xȋ"Ir2;u4B9y%A:ʸܠΏ$!Vۘ-K5h$dY.pzGq!JjB"`I£HG#ǮQoACb#/Qi.{:ngi]: ^MJ*BFOϬsW)p8;gE#_\lf Q=un6 d&ٴEoU*bl-kyJ8/Q>e;>~qv> ,q{Jp;|z@ɶY#ŠvBz4Ifu2Jꆆ4mL7nUXSvq H6UADoD>:;/权wXU̿H"g_o]J7P}"Q#c~wݳ{(TV]pn#d?.mhH쵽۬"f${lC1U 4YXɞ>o'9}[d]ՑlTTd@|;PES#G&+&ɮ.:4['wdd?Coh$K1bĜ6t5d;X^P 1-C)dR (WN-c+6=X].6EH6ɖOa%;7XO Cq]dm߶f{9do4$F BJZAg%[.d#%;I9"Ϸ|}Pmb/y )E|^\!*fɞf f={"F0{1dӍ&. 4hت$bPö#ىy߈r*JvͫfT,[6ɛC[:0y6M,Nn)s$nݰ1¦MlSV´6ө<82"tS:|%f< ~yyF=|["TjWn:vG3x= ɎUblYЯʪ>EsNd$;e#blð]Jƽ-Y|(xpҩF=tW׬5E%AK~ O( vP|u+հkrA#<+#=[Cqd3)|Z]6lI6kݸŘ"HQ1͛2 ${^;i>+ Ɏ PeRI}u)P#mll;o&1mDMɎ`Ij?$ե"$}ӼؿddʤKS^^gH,5F.bM}8VT~@@_]z.0;K{g {bsj׷=X#$X;ܹ2վ_=W<~0lS7m"ٖdNjN4\]d7#قd/Na"T;r@Ive洴02Wq_W7%]ӳt${=I\DKv߻d͵oNÐlPfn\쥛CABYS?;ىaJD, !}dgtӾl4 ِlI%H%w}!{=^ Td3ö$EiӾH6HܸQcF 5mlk.n}LzL:SHݍucR1)ٸ$00U#*- .*0O${p+̩o;/S ]8f;R-ULs:e)SMNuΝ1RzTZ7 Md95 R"RgUiJo?U-aG\x )EH-vpRdk@nqsڐlϯIgG dopE9kOJv6K>g>?ݯ[u .)uF1 ]̡o3MJN T:gi|Ɇxq\5 X՝444J!g(B^=GgOJ|d.وdtb Rl1d+nA\HG1ցVTh%BwB!"&/$eiE"Δdwttr!gq&ʹdPI=]WnB1v=hoi[6_2iWYfLzigaNLnu2P;VDCƥS2&\Vɮ[']9mt(kaS&(|,üƪ42?dF4Nl!rG9:+CF&nT8G)}':=Cِ{խ⯐ݭ56ƺs떔,~d#OfRDe\j7RpsV5i{? I){T!Ci9@: {'PD>đk|ؤ"݃ } :)ۿ}#ٻVw${L8؟l-$$*>mrWz&eo&gds){Rpq3_2+J+|OԞi,flthHѦC7sfv.~k͑>GdJ931$ϚxbfqN6 ﷦w##F;v,/OwaHqEdK@Aȟ.$9cĚv坕D=ż "%FFԕdOh<:~dhi"y3W&L9 W;3Y(;=8'ki椱zrQS#7VtFU3C^7#rbJݺvO$?d]ѩ)]"Q@ZYJM5e8t&Y: A}!nP#K:eL6wdfFm#=;>s0)ٸ%}ѕlk:‹QF I7 Ņuï|YdƊ8IٛSOQ|$?)L]ܐy݄j|7>im6la9XVuҝSyD 픪Cf,c{SJW#t$;duFj%;D-Gsz9}ALr{˕A55E8 v&(pj:`ɦV0v.1Lv/Xj`JQ;$[7\%k5?h9Bʋ-!*q wErNU"9$33d37%] N,$[CӒHG xLZQHxn sG(xM-B$\R'T+=훚)TɶrwknWIDIc[(|ʧ)vp//n2ԙ{%H.5ysE+2&QS~{4Sj׳kƁ:Su'6d֙H#mvK6shէim!jEP0b$rvIhJq)o,9m&1ܱFFMܨԤҒ~ 01o]ЎR4+5WtRKjX|YU>PΤP"7~U\SZ&EX0Kr MY^HfJG6$UdNI6z~g'۰-ea&2iش{&k xEpЄOXiZok%gJ$dH|CP^~;ӘcQƒ$rDyH"Cojxǟא0!߿d2 #]'0a'У  ?\.M-;֕Nݍ/*LMs< H!ht2VO%2F}Wh"Ϳ3dCN&H+o"ٛ6X@bHufZx ~IN$ j!h.A,l&v${@+췧bHvl6D ِ영d@O${hGcͫNCől*H6$;f P5b1U; @K-فP"bd3n]=`N_Ow;zp; d$ɆdH*qEV'A s'H6HDXfНvHH6HD\vMKnfʒ֙ ޹0K$^y;A@%ݿe'kwڱ{']$$X"Lvm^MCN^ s %=uuC-_?>xg߁CC@%${iDH5A@)H61"6 Pܺu6mav$;a~w Tbdn۵bw${ TdoەݸŝvA0YɞPpX}^JI6eBh7j̨q*ݍucҙͤdəP?0bܸM[;%޲ߝWdqHw+2ӜNfjrZ9cE t3q>(ڧǥSM]fߦF5G T]]SI[Rl)H8cM<9()$`avda86ϩ'G do޾4-+dwKu;^z}}M}]ǰ6$;;N bMMűЭ%NZ|+Ao͔ 9S!&~yrF5RW a>ږl˾q$ۃ%ey% (I܀V'PTh:Ӯ q/${a؆dmiJv`7}`ַ%fv'H@% ;ꦘk0}-=XCgINא8PNX^ܺ-uP8) TèQd39m!ܫ-lu6qGnK)yK $;JO[wIsٰ8DC=s\\j-EcꂝͩU)TZLm%j$t#9O`='9pݚ!Z6kCObdmߵgMlڶg'{6mNå_:kp''i}[SmtA<.g[>;^3M|>>'rvRӜK5S7Z^غXA: %O1oL*V+Q"l8Biw^ǟ9C8ד&MUߜWd;7XȘw}6W A[t- F0+u#T@b`!L]^?$Whhqr1K$IM[iW.ҳu;xضm,/φ;lAXPc`^+H!N7'wl!lh" u5J`n'i41٢doc]hJl!6~)/G=yDqkv7MY{Hcmɖƍ8-aC͊8^ݳ잭I+tOP|h#M0 kvr& pXȥJ6!,I[wcnB cˌW]ͽ*6cah7by);-YIH%uSSihZbm7(|%3)S QCV0by['8= {Q|^+@qoLа]!.| ۚ؟Ul9y<-١dWpǓ(#I,>7ߐ%[w״-hWlu`Eli"*plcw쾑fTl/vqT$ $[) q~l~qCJbB"c$۔5ݽW^g*d|d2͔7l!y ˏ傂dE ~gąJsF9 laC|4\Z=5$ق3_BEْËfJA\`$ƣ Q=˜lZQ{t&dQcI"H+:Ra8\^o;wu%䗃c1Yщ@<-û,^kNdOs+ n9u-)~gׄa[P4xP^v>K,V|QZܷƦj.ԡwZlME"fXh*)hט]Dʱ|oHNhi)!JpH(oH6,Շ9YMiHG.v vjOB7 ޿dy B+R'{nװ+Kl#-ϮIcyb31Ew%IvT~饗Z'@8h5AɮɎK @dwmnM >SZtl@X - VL\l&댩$nb?} J$%("D^H6WiG %ftAܒzEH6(9lH6K$ۑ̒m۶|l~L6$"ۓ(iǞJݻ~֒g}ƍ|H6(%Dwv M{xp {w'|C9fϞ~ $HdS${ԩ~G1ydiH6(%qDڶcT:fv5C}饗߯$H#Iig|yctAl޽["$"{6 o')}dϜ9sĈ?/EH6(%Ei ^ww3fN:E)$$X"[gK}i$|{9p@BBAy@޼m-k#;hްϝz+\?O=  $X"٫{L[nuӛ׳ %{;ZӜν]cdBw?< IDATJ,k2kӳ:${Vv;Ax㍨dɎLzL:#| N늛ʩlcC]cwsQ6*gGP&Uf1cdoiƲ'g.rJʕ+G3ҝt+&Eө1)cjrZ9c;ϥ9e1{ jtfXasA&W6Sd+9EZ\S3"u:Li!%enb`g*Bk}~jT*5*SA5VN]Ӭ,ɖ8v5P+/o.?:fʌʐl"AfCYQ[E? ֈdcd3ɞy6l1KvGG!rgl>?L[HtItbxZqQ 9|8ERaWdg1Jt[>xo^.Pg (w {A$%נ{H-e[՛OSp) -dK{wS' 9cJ [ 2fJzΰsIlyr +){4,w^48!eϑ[]&D%3Mds$/݄zN};Jf">ࣜ;'lo4rk篩\xn֢ؖX&kL6UoچG]UPj\,R6§ ^-SV30MgEuOQ.b WiFΘn|d"Hs &볰Bagyl͊ y;mHҾX%}p_za!9n2}7PpwuMCG:Ƕr]C;&\Չ@F4uK t]K=rޓf#d>M nV65Fmn$ƿ*ا{8sw#|SO oPNmj[IրZ{b%jJO>A)bSL|DJ3j|K0[I Kjs!>o1@,I}t2 !M)ߓ]TɶDiya"٠/>8fHrUFuD-HΙc9H6(` z|M\6ڈ+ĴvG=޲Kv lP @&qE^  $"S۟ $"ُDJLH6H1E,~ @Ll&KlR @|lGB@5 H6vH6H:Gϑ%{ $$#ِlbd_*Hllc4@R!IH6l ^71@ $X"٭L,y $d̬F܂dcҙ6>ك ݍuj* DM^lK/G3ҝt+&Eө1)cjrZ9c;A!dzBѩS5&Ts*F+[#*! dPK,r')^,n.RQ3vcJv$;H6ŏO-dgK.Ēl~cؔpNK54fyŚmhpFt uxB,$U7%5[gCcLZDDh ChJvQ$v;#m‡jD K$۔V0UE쎎C93θل}`ַl3a;;K.VRX va֜vʹ?%0lgId A&z0ˌ$u!kI/$ Pl2m ޕU9Bw#sժ W^p/Sf I56˰"\y)K%e^&rE=}JgrB#nBIaכNRN:q@Ays9AxŃ"C Xw:;K9fHvf)dd=uʹd;AWɪ?s~ys,4y)p 8pt1+-oMusN$OIl>ڜ6XJs%;ݼ]Zb`jXz,P-)݁I9%5^,WQOt#a"&utnVjGvhuQg+_}q[fr;S)½ r1z? b^I%{Ĉcǎ%. 60xw_ޡB$[UƐhLZN^9#o12Vg*䈫@j@%RMuC,@J67ț:r Yƥ(3Cf>l]"Kv`{XOVK<0MzaG5Jdy(r$[:] GjR_xZiuɉd%H!S#ٺL3v=[gع$Hy -f@|T@/BݘVNnS|rQ'nzc3dS3I%\@9#vkc͢Ls(TIMB&nqN>BCtA Xk\5z Zچ6WD_ HNJL}:|,OB=*vk#oH${>KdQ~s+ܡFQP#G<}{QkF2h"yɨLKP}1vqTISZ{HݔF!,LɦKJe-FG[| X&v܏EAvI03Ex5KR*z~lzʦd6%Vɶ l%EA_|kP{PP(1F#9ӳ} ;Q2Z{Tr` @8dٕZK-ف@Ayd{ԞZjJ\lW3${ $H.G!8@RHv~sd Hv+$x# j"ٛV $X"-L߄d`K$;de}Ud&1٦d[  '1َdH6H4E[f+mH6&1_?ZX\2dCdLG}x6H9&|$HvM${x6Hud @]Zut&t3OL(ZX}u%S$ .+o^)[5fE6*% BhkSm 5Tbk@ltaֱ%;'x6$PQq*` "\x'Eif;)"#kQO۬q Kv W(: L$yr9w BFWkW>Mcf,6&SZ'XIˣXr d3çP5;%."DuX2d4-[l؊KlH,QXtԨqU2\ՏSwV (|ҝ3" y]ݗj$;E~㕆۬S$]D _߿k>q#e'uqTE{6ax;r_MX%;Hv۪S&26~Vb$Fl6lgCC-/{]K!f2>nU9'/5&FKA/B,)XbJ9bCjC5C5슖lϮ?rDRI5!gIŭ}$o8J}3CjB$޽{wչrQ߿ %DE, 12N_}*zj-d<}gLnUOd3J$#h)Ps eTr<>3d# tŻc|#U4\t$|Ltr+4&nz1dw#W]޲eҥ˿/>?%Et%0udjxɦV[;D ^jWd'l2diI6? 9S\B>TK G+/D uE[v "|r8ɖ {ppӇ~T ?m$[\u~7kvox&+m#=~bǧ.y"x┶J$=ȅKXp۳A x,kf*#[[2'J sQ"G\Ǹ'm5ÿ=PG.X1?CyL '٤aoܸ룏>·./ _fGҒU8k l͊LV.g=H̰-a>nH 킛oNrK!<R#nxwh)KfR ?S< /.Wpk7*zOdDZL'iAp9WnrE3[$]Z|_0ʘeπ9i^tKcśJ!$^(8"MSMn| lFGG[kĈZ *@a"ȿ|a&mܸS/rg @K${i%d#+S$^bkp$H6G'j+&ٮa#/kP\bd/^䴥ONooi&٧rq## %jIk}OftUKdO7$IC+Ho&?sg!٠@kQ߿5lp7N\|os'7o*#皒ԌeOM_䌥MdS)%ftAܒzEH6(9g_ {wjB)`g?L&  ƉaQs[B)=eOrIݻ~֒g}ƍ|H6(%Deg.j/Rr޻wO>y衇Z˜p gvdRK$k/:/g/+dO:=#&O,-$HLszzIv6=ӬzK/~uEH6(%qDMɞ,&;.ٛ7o;vA|<ݻu+B@)+윬9K ${̙#F`?O_~}}}+B@)%ksْQ\ɾ['tҢE JI,l&gfYg,$$ Tdc۝ggg+ٟԧHdJwɯ{.mw&1G;KX_]U$O/jDX@|*2p*yIDAT͌Er${ȗlHv(P"4b/,uLH6#;j qɶ(T!Zֈ`,`lπUBJ6]3el_,DOFĝ#JvHbT3^JYygLZ覉%=a&YedjxɦV2ikc> X٫^y^]G.¾ Yڗl=mIkK()9Y#، )<'|HA-\WR$Llm]-f$[* YYjs@5✘"֕/wt,XH yQ`$#:Y;M^d#FP|d3W!K_]җBT apWřQ襟)/eW"^p G%[+sZ 4: %d]h=?]0))dsbr-H[^ꐻ̝WT4ҙ;w'2ꬑ $up:8~f"ٚ+R"aH|cV) ~]tM& U /~'H-|l!t] 9q{b(J-2Mj&?(:?[9D>}ռdT%iT0_nR%u۩Fl{Ҏ&6%\E͹:\DW3El9>uNm]/$"'Z?E}". Zu4gH5KRߦ!$^zr1f$lu^WےNܒ͘;wYge}`FdH65B1${ AK| trmqDhTd O  H6T,~& l`{et%!$Eua_+`7VQ+NNkJ.pr;ߡ "]E9dwo%p=!Nw]_!%=lZlBFٷ@Hb#ٺ7Hua=ɶM·dFp!+$|{xv$Ir$RHSbd3 @V=4?cJ5hllBJ"KwZi!`&+c.c{޼.@UH)$-C`|%-ZH6@Il$ۧBJ"K8z  PFK'/nxҝH6@́HZ!%}۶H3Q$;* ^ɎT!7Z$@)<mocU;7a%-̳'odH p !7MJ6@"@_]4< fwBA(6-[;{!(ٛ_m=w$@$]BAd.QE'rI!"L_Yd{vv-~# _A+H6bF$_<B+H6Ϥz0G_T|hT~RQ^V[04mit^#gVc&K@l̰""j[CFÏ )bSdc 'HN<7LOql) V>9]W[?89R &$(&N)u?(lĒ*IzLJ3j%ۍ.f)oސ d{ b'&EW-Zdײm5dфZI6u] [j&L nIo\rc"hd [ ia~؀7`v;3;HĞ_8G%Ux{)Qzb4RKtꊒjls t3]xANAՕZV dWWνQ,;ݖdĺfbU59'}!u֎ju+ݝs cS ,XCdN?)i/OۇwxF6֜JA[%nGi8n>lj8=.Ϻ,4n^QEÃv9 ?&h?UޟPW [?%6?Y3f= I;Ų0b@al~З%aOxyD,SqVf|J$[u:2?FyD?jql>l'k=/?^JٜE=^8 r JP,6]Y?q4MMIq μl^Σ1/D_j9UL($ԗZO+1(ύ*z;aRބDj46Î΅]MLT `z C6X ]4@N,Gd<]'P7Ldȇz fl8FJ|pdW>uZu>mUd~ + 9It\GuOUzxO=_>{)ٳJQ'gB$xLe@lDJ {F&j%EDZn;nSya1 TɎC=-Ͼrp/qa̒Ʌ[.塆6?˦^1jI'w{hl-rq=[щ+]kbmI&R޸XbaGA]9GoEJX]&x`\{尜%~Wd uIv_nʷ=YrK >|6'f.֚t6΄`GOp젝lN Вlu~ M41%6ı_LvrV׈ [KЫd;Uؤ+Gj;ZY.E{)J%X)Y)dfT^V-zڝhՃZ;q=`+lF<ޔmz[q_wk{&%Y]_d3ni2s-ҹ=q_Y[NɸcRF͝YŻG,츢vn10|VX6̉6bnM?jQX*#$ve5j.)ٓg7l LN<>=Ÿf--${J}P;*g_ i5S mC}OuCk\*bxԶ)g!:*iVB\qͳBoV8tZؗ^ۭqv6F;2TF7e.e%1x$N| >mOo:reF3/5slE,J%dC7KvQ;KK%DAM2r+#fjH-S+o; ]pΞlx&D䮹 XZX7@HT;VB6Md<Ɇ^@{$.@ U;>}UpjɆ~@ UJJFp>H64A H6 M8WFa- msO/w*هaUP$&|Y${ޚa_4%{F'ʞ$?>>[tu[{}ͻ/"pC4/:[3CwY$Y8z/_U_%媚9 ~}gH6HorCp$.M *׵L:lVѭlnv'eOUT~맧 Fnd?6lK|GJn ķIj2q˭ӡZ=k}( KI~bRo;׃:L}G^zI\kz璒&$۪[OtASV$AGjKEMt%ٱ&v:yR7v7(&=>:t"4|v.= n#ܑd[-o9^6DST0}3tl)x{H-]7%;I[/4zՋcz:xhsoQ$ KѳodHB8$B8׎kt$JZs6EƔt^ņ#H67%{)qwd5lկ%~BU4ۅ5uЍdW|1)tℹyėlXHC=U3|n.%NJ}ꫤs$] G4p>8tӓ4)HTر~ \HH6K-CFYזiࣿ} /^m'WD.a H6J}ާξ v+ﱾX 0s'H6-H6 $$`n w˥$7?}I6-dJ%|l$z&TCdOdCG Є*y@a Є*yl! H64Jj$ÿg# Hv_qJlX9H=>xlk0˛pkp ad! H*|쮪+9eZAH63P%Ɇ^ԕ}w~S#Ǻn` @<, ]нdG4&g}}ӁXϧa%%ܫ;tqq;LظR1;Zcczja=^z%hB-A bz*yX*? 0#^.c=K|ngAwsNaW$sjxÉu2nӛ֓YӣOHaz#@$V$;JdISKɞ)3LR)NՔfwnFwǶF,p'8vcm{G5O/7!%-GS`F3UP*{$du4Vu2,C}hf YRDlt|6*ò-bm;} )iY1\P%_l$[ca++/4K'n94]$)[s\[WHG?KsH>=CFݎ*FH_M?$,doIlQ{[3㜣*`Q!Z2?@uC뮂:i1puFɳ?$H6t=?ѣ{*m=;dj>ȞU2=*[Wpq)=*',?|Ѱ1*}x/>pTCddCw ޽deRLN"RA>PzVdy*- NaG7g{])Y0-Qc1"ɞ.;DA]L?Xx8RWvW7l$VHN] ù{_x*`2]፭%2٢Ĉ#Xf@BɆd=9Bjrf&slUTmhq/ߌ`X07KUK2٢DG-q5bHvTӟ9鱢kl%JHH6=3\/P'rH}b7@۽ %RY'ۜ*# ^N L6JIoH6=_';[GB7Ruڡ[[,d[qGkgr44K&Ob2=F}&CXհ+ɞ*f\!dI< ٰrFuKvԙO`'܋nD/U* nRffI3{", m6ֻmLߛ~U| s UH< ٰrF+3ٞzg>KMTCdU<IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/figures/clone.png0000644000000000000000000007013011534217015020224 0ustar00rootrootPNG  IHDR-abKGDC pHYs+ IDATxy՝[yoNϜ3缙7==~eM #۴f chۧlcoجR f14c#*UJU%!ZkjWr#ƒYY)+32Fd{oF 40 < L!ax@lC1+Q[6C1Fl( )Q-=:ԠUΊ2H" ' +=ԏp5k3 0<%| 'ل!) $뇚"7˙֙sI^|d!9ml2 dgnnnff4999111CNI^d{JI$ҁ!$FAT!D $8>>N pt.] y>}J@H!26F S 5N{{{\;%yJ)S'H$R B.Crwmaa\G%m20ŋ j)!©(STO >%Rt@R 5 H$ RACnh###TцɍjYmm Μ9~NzO!(Sz<ՑImmmT$H $"RF@z)ah횚ӧO?~ȑ#:x`aa;@A)S?q)ʣ>ɂTQ 9Ew6V__OJFq[ ZR:#hm֨\ H1/ol+),-*c1RV4Dɲegϱ8PvpK,Z]ϱ(-+)+*+,+cQ|xPiqIDc#dfJԕɥ+IBEo&HtQUL111!D_C2yL̑=r---Ν+++kĒ1U?ͲEFXoeQG+{vm4FNb"ZL$>m\~R9)#r2 WY,5X5֨=8 ;, ]ҳXoau,SUuYTt$Ģ}\"!Rn0]EJqMZU4!{;iZ-SQ |ٙdAS9c1AwN\-nL XtX݈qmR1ƢhqEhtKTP,} H}x"%QSQTPVQ1t!MEmKe)x=$T$< $ * P*UњiCLEKlDU:uqq-*URi"*-k헮CRIdl6:T4yuWEe G[+ڗ+;N=Z$",,,u)<$Pzjttt`` W^y?|S+5&T Y%24P䒞X=FLPD=-,n'^2t\+fxtqQ۲{laS&j21OIOlD YD>JdzԢkH+Xh]sBE(*NtHIsw:d/=OWҿK{^Jktx핡S%GH>/KQ{T555uuu>H" A=477G&Gp6H+n2lePe 0s3}ZEqe p[~#(fĴv#8좵PSGUϤK%EdsBǽ uTaIŬMEbS|(* 9$1 ֋+X\顕rbPv^6r(:P*2Ή2wαι{HSQTR{l*2wP.,՞QI1 eJ"yĈα(JQ.k_XU =zBJ,-ܺU*!wNVpxFIP9C*2z(}೏ q^1$DӣǛ~'#O?YG%J}G_z}Qr>2f18 {zz~킂Wm4m'n-1`~賅^]rE9u9&-m EQaME縊"1aD5'258ɻ:4*r/*T|6@9ۘ;gLXsDݺӸ "[bXjcEb&wݤ]mY$9SE"ǿ@(mfFj - )ldO3'Ή N)GΩUDϻJ/pS=pǮ(v?|Gy K'pp< ģbÝn]?k'^ky?.=B-Qz{yG~_ٳj'O^p100"88Vwcǎ曻vDSXhP+WxoedO3Jh[ZZ >wkI|!]y73żsfD Ȼ,b3֭y7 RI^ҳbݠX<ꤑ7oU`W̕~?EOxxn|gشT[yϕSQ]VMEbHticEDIKCf5oG1\=FnӸ޹R;l‚C<,Vssݏ]Ӹ9wPhuY+*:@QUךC }"lNa~0Tzj9 zלPѪ+e!!eCn*U?C_{koko\?w˟}?iٛW߼7ooy{5 n3CF,znݼÛ٪>W~Jnkx~]须?~/..>~sIb8\:;;hTv=S=4\~cǾ,'w:Om`^ MŐXE^/_\b&jP=-ū/^uW_U}U_)vv+g Sm6^U#_jWS]uKWҶ/]]_)5}Zw݇zgyWŬgF"yT255i/_hugΜ)++{ןx 75}DӏWSychs~;,sa!GNxH1óCouuRkyJR_{SMfhC=n.ay6+ 0n`tpWN#o&mӢ+9,Ő]e7=WJ䡡Y-l[bG¨;*2RTDܖK $"Fyяd-mK\s"|B57?ݯe4'Dvg(l(.( ֒Ȟ9_0:)9i9<{"r1Pd6Jz;7W<_&V*:W+YI$}^T299i5r۴ҽ{>njg&ejE+ߙ}TIR iK= Ct;Bʣ$NwFY _g l*/7Yz+>2*ywú:yȘ2ٳC \|}t+Μ\o>r}pԩ4=T(+qxMiDxH!~|cyR3{hވcywݭ 9j0hsPJZ)<䨇~>DUHPn)&50'ejf<%z{8IƨiT,ST^*bm\<wN9hBkȔӸ.$mQ }F޹JMElqw6JbBF%nz@nc!CEVU{HECQEwtΛJ7Uw~o\7?d0~Jq[ןuo^7w}䮛ﺩL-Qz~#_|A"];ټs}SN?v.\vP~:Ko{\lDDj.)Zz>c'be/H7s'4zYn>qNӃIr=$CR %ժJT =t^?zϷ~Uλ޿yD IDAT;wg^7Q4xFtGNqw3y;߿ r{y]v7=T[[Kxb=c=4Emշ աq[k كCqv> ?[~vw#w=rwgtA[)~vw,"?Y5?y;b'Sy^{hȌƲFχ_?w];Kz\x뵿lp0C61LJfЇ~A/&yh.~|w^(C>z/g8\)?pGEB.⾩Q}(Rqgo` ^fu{yyODZY:/yȜ/Nj㶒w6$s",$4w#5 _e=r-h*:ʆXI%JᡤmR6 M7*UDA*62$tiA䗭CO|~o{O}')~[vmOS蕢6xI =xɟ-|䷾{(.{(??_лk!K<4dʣ/qwX І[!U_۵/,Jz!=|CCy|HL9+!Й뿕Sw 0P^ovN0CqS~(rQU=PrE[ yy~Hԥ͗<$:jۮ=s{C=BE^1l3a!;w4yznsH_"k-a0ܹ>q_6y I9!sB7݀ t)l$T7d;WD=TTz;s>Ғ}J( QT\*=bx1e gDZpUpEPEIue%ujCxTȡ{h#"C뵽5]u=,\4C?!$s\EI"zV-*vUQu6ld+L'I*UTkUQjsܲVyk,:WrY+w ;~zi  Tu}gު϶ב;?:cy 3'N7^;"n煳 np1 w&l ŐqR!3Y!CnU넅5$Js)9$ Yp޹@E9# :{LquG8N-_2CZy.scϺL%4{ZL΍rU= z_@z1@аtA<.}޿PsZU睛s2snR6rs/oHJH)@6v)l4y"!k9Φ <:{ݪ(TCRQCE!o ѐ~I&q%Vү_ыΘ)m4mY\mAU r^@;*DejDyŨ% 4Jv$į?wC8~hS˰q9I;9[<1OtΥFV(haԯs_Ү`PCzImd+L*=.rn#7yxHSѰP@ i*Vv=V&$~ 2XmzaV-4f|~!iRݯ*ҭ`:q^#ո~Io뢎ś_[uyo"F!4й~]Bz) E wu%s59~NsGӸwNZ@YI0 F u+lM{ÛcLض >yHaSt Y>vPf >ٶTG7,25$6Ca'$x(l!eIpx(CxlY6ᡌ"=TC`K՞t2D ujO:ClࡰړbC8v/[I}U!ds(Fz2K_$}u.lOvk}"-Aܶ^Ν{՞*_q˂.w_J/knͳaBx!zAY%Bpx(_V7~,S!Śx e&!=gݻ%t^DS#7؜ClI3iR%Mv)ʒƭڠOXwKqyx+}#ޯԠLOg'!iPUO~q6>!98y$iCbW C1-Fb/<4!^Q@|_oy'=ɷ_ھ2rrאz r,j*)d T[e݀[]d=ź{\\YJ$48 r-Hhn#CH"Q>;/xȶpd'[u!CE5 WtZ'-R7[:+<䡡y=/JXR:Z\F㖽vLt]mOuکй)h=hBJx\_k"-3 =|%4Aϰ^(#+q{ȹ@%;ٟiKei#<&"٧ΥCjLz3C / C‰Cb<@x߹ٳ<<>E/B< 0EqL,ᩡG;>Y!?M|\z6|fF%TywN:rXƼ uzPdho;Y|=5ٺa?]˥_No{!8#<4%=;d{jO:HCA-!PXI5#=~ǚC`՞tFࡡ5#PujO:HzPx(d!ejO:b8&`KoCCrj7E/ECBjҋ Pu#C/RCa($Ze׍z )Õ+UdrRECT=TӺ/>L1ҽ 8VC 2T$ȗ>jnğzs/4"<=c1b-d>_7b<ľo:G]/eYc_<J* %Q6<BA) eg'!iPUO~}b|(j*Cy-qFA>R[A-E۷"OU)d}e<Փ!x[DBs5UgHCQQ ^1hf7$bU>E6a%w<R.C  ~9_ mCy ϽM?ꞓC2C=Q=2C)<ľwWs lP{|[Bsi<$yh2J"<[bbS)h҇{7$M !i~5LsIM,vYdmv>O>= ci۶ndgs !a u#f7C۶ߌ6 !FՕJYfexȬrjj'!"axTs?,ũ=tZl)0JX+w$}껔CHz^McUuA Υ D0/Nb2CXS[e!zȨ! |~ɰ$7~tl=\zCGC ࡭PtTzI H6k[A$J 2>) Y;fR!A@Hd$ 'ҟBnC"J܈蕔CK,2' sh2SDҙb$`PT/gßݱ-)7n!l۶(u#\AxH,l--!U!j'{wzHa&CR KF]AAuuƌxaZ?s> diXfy{y-rzH IBxy]o{!Gn|/?_μ߾1bxHd5}?a]h >.P!=tlE|{3!|?}1"WBBv+ IDAT? 醳 5uCPyUhPCez _^xe?ECD`CPb )#<%PѶ7@#(gr!x(ʎeazh{$yhBx(VTe#fPE+*ږBC(.C mC`΢$zejcir0>Ł/RITūLPQl=$)ZNmS;7)3t9H|sy%!)P8P6"$嘇> Cz<=Frx(L@:rx(h%#!C`P6bxHaHPe#r=$z2C3!~Fr=1Qaxl !sCY>o;ftͯe4C ]Y 12C4Cb{2C!q,(ճ Ѯ{"3o;KGICjGXF=dWYIG_E7xȱ%U!3:]`lʈr!=kiiʫoNn -^jϙAWrs#.upE miNJ1SfEv^)EzvG"J"2 СMͥ[,QIh.`*[TT-;,r45"غ B/B&zqPQ`YK"2z}O92EֵM~&gy&B| uwO [5z?IF5 v=Q2sAxrLPUw(!eL CBE6vd!y2C; mHeYbl"!]XIu$d&܌h&HAA!7?&.kkvҢD۬?/5Sώ[zYkm/p!= !+]\ՠl6u>]<& pf=$PRGRsmKVxHuIu9vks:R Mז^4OW/au ߶Da?E_5Y[zHo+ 26}!SCt塀ںmkv+!?V0H(D!|?|4 -)Z_DYPeIw8glK?(ڲʧ$} 'Ŀ[CmlvfЖg7/;:+TK.Բ=ĐR#' o gmپovv;:c[C.K<+<|CCX{O$!xYY3m<$༑@=ds7;uF~s~V-YO y2P-r<Ě[ j׊ g IΣ19~9WГD=d39]E. Y$PCZڵ5뙙G)ne_Nݷ/8ZYKjmt pe捍w:k5Shy%pcx}wwsŁxHC zc=)¶-)9?徟z(չHͳMӗoC%䎡)9+gKU kяP{N =4E oSs[F"P}9`:EwUш!.˜{1tkz(>9A{3y5d-[C휏-ۥm۫[T25Qle&@ur^e*8Aڜ2wUl2.#[SxCd}h\P' 8XdyA *sd7[ﰐΡ{;ZqX##yȱuN9A6$@ oXs}~l? ޯ6]AA{ȣ2ؼ ACx@C&0 < L!ax@C&0 < L2C= \(jA\֢jm3 0Y!+*x\=l*Jr,fE=ٕ:2mlg<:'S=$"aD[ 'oukUss!ElBsœ#ُqI8-!0q[2aq$^ExC1Q`k4LX{je[pk&[\y]#jYw5z!4K)vё_S0-ؘ5zbL'zaY]%N畽$-Q6]ic|G|Eb9U\E)%P~fmii֊-: #C{jZw#Jw,{?m/l{fnl9_]:?)7ᲧFO=+FtL+A+]bX$ Ļ<~kƬ4um)4n,: $}nkEb\kOWzם5 " zٛᆴ':geaٚYL%׬8}emK[j9jݖv}={MpNv{@x@C&0 < L!ax@C&C0PUw4+=/w8$P+Tԝ!NCy~^|SlV ԜB6,Myh:=ԝFM+ Ū1d<֏PI$TDIҕH*OM_Nݕ #H*/ZIET졹+LzIr<m+ZiѶvV!$<iS s%NNY-<4viyume~JvT!b`'$3Z8G**e*Z CqQ1or桱բlq C+qC$ꃇ Z9)j%JZiZU7@.CI{lP4΅!VZ.ME!aMss{Z@N<4|vPݴ蝛]aC;ײxi\Fxv`ԡi*B yP]\ $%<$J=$!Ttqr Fx@DaVu|lq\<!";*b%<C5wD kDiv823>نDkL2CZIdCCC޹xr$ Y!1N%J"xrzz<#J<:ȧCCEYx@>J@UA>J_6/f"PCl6ȧCC\E!Mi`[^~a׻٤Ct,DR.'y {<_98DjY4TI()* Q=t75I8>X^-;롲%CEs{0yHWQ<n)wax d kM7%8Wམ!7faZ]V%՟$TC\E[txH L\)Ǟ/SIr#k=C?.D[!]{VDhYQe Cl2)z@JbM)+RRcu&gIDAT@[s>GOi>m]&rͭ\ Cl2)`xHݯt)EzHÚ҃&wv\U匏(|Ce rK]I 魇RGyιqSz@ )vrՊn*2TAT;Թ4z( 3bN`>`=r?|-++G]՘ y<ԖYzcHzS) 5ON`bn>FLI_Ͱ.LJV Cli!"P%=KJMP;ͩRxvYGꬋzʅ!4~2=E):_{1n*OujPձS<6XyJ^e渊!6'͛-v~9rY6v>CBExp|26r}U"n <&4El9_k_=&TVE !6SoPGfz`A>Jb*ZLO#ք(2C!6SoPEZyx 7Pr{SxhS=DS{`|x桰ەxx_xHWjjj MLL%!ZC>C!p[r(ry=w^z{{!)@xRPGFxr桙Xe׺M< PyHSCnC/!Qmh򜋇DPPзmC(//Wz=CC l G?JO> Cw~eQCb&*--ݻwO>=tIx}t x孢)桪.?.(( ǎ7˗/:::"ș3gHq#цV?*nZHTE{IETi1nU{iѭ]vF7LZKS>X Eb K,bS&C~l{|u|MyL^Ec2ш, G}W~.{{`gzۤ;Bd4?͢S"X:$bREK]}^Y8gHw$*U3'[RK<[QKTe˘_$P9}{?O~W^yq *]!}H%!JbZXXlhh8wz/?O' slEʨvʈ5n!8HQ7}~(2[8WҴPڲtmmXje'%̻ǻc{ˆĢJ ^G+:׏um[+i^uh>6rQQ"Ҳ2F*EE!°&x(DmFtTH"!CEC "6Td󐦢 IEF_܏/*jg$nG{T?~JFyTBBIC+++􄙙z`OOOsssuuɓ'Itx> UɗHwUdU`*^.yV1MPR6.HE$**ֻ$y(RY)=\J#Y$T$)V*5qu*JFi)r*RQUE6*Zg<&{Ůb]EFU<=UUEujT$yHTEuS$*f_XIԶT)gKKI$;G?ѓO> /ٳCII … T>!PH+$bى^1u>(--}7_w}[jUEuɽsItйMD9)_7{֕sBE{*JCIDVyȸ=$D޹pLRe靋J"kΨl*jtQVXT]sw!9i]@@lpIp뭷RY#<3bpeeeNmmm%} JH( )DC) gϞPIk.RɐmOSg̾dCc4!lb!HXRB(jBx7C TU* !egGK۲Wוqlyp8Zۄ>7޼[{+~OϵŧK OuqJ/|.OnÓ_eOmKdpˡTJM:s3N㽄>'B'O,..& C ---^R2;Q@ `11y>ͷҥKdeee:tԩSDrQxؘ[\\$D:dOy4Ą%oU{.+///**b7yyyǏ?zÇsrr~^QEP:n?rȱcN8_XXxK.тׯaH9D2r!6:5 BmffHDnݺE.\PRRr邂Ĥŏ(JFq;_xKn߾}ΝNA&I99-`u!hΜގFkkkf$ EMMM LgeeeΝ;{l#ۙ3gEQ4G^ZZQ^^tʕW޸q@ 0D8ȇvȜޖ +++2| Ʈ>J뙍jjj)bĩRQEIsP:bGH#|I! D4Y5 DN;d4gFp8 ǹc zmmmnڵkg :EQ%w$>G$@ˇd؇DtHF"9-Vx%荌 twwS{y|844&zzzH߿=(JF;zG}O9|@ 9@8Ð}h#{b1gDQEIs;zG}o DHC8;(E;;;2qH$WWW/B,YEQG >G$HH #ChwwW#{(ڪ +(bGy@2 Jޡ׈l"jnQEQ21^O 맟~x衇ڌ%ʱ?V҄$ 6;RܹsB)րmAۂۂۂdێ&kۏzz>n>H[_x?,d*ݷN OTuinHܥ6Zp>,`[0d[G57%m>9WDL|Gi)cpRYlԹeO$e9_\RlG~uymvnb]Asm-mm;\pjWW8 4nCqkncGTL#-ZۊWmu]M׊p9E\ƶ2 ŹKƦ DWι6ߎf^ ˖`[TUd|$nH0:h̅=XͱNma[(}; mUcb4ꯡ7ة᷉e-ݠz`ZֶlgDbۃOuwvIQ)KIt3~wnRٻ nm 4m,)HKt 3r b}#Sϒ)4+INMQ%$^Wr*) -ZP1jY ¶#S#RnҶBɑԆE񘾪kIAmAH%xWm]lky[E6-{v=^o87~j[bդ-5V֙ehs[LAB+KmPnmAɶXjIbK5dpƊZb4fԏZmKRZb[ѭ۶>Ι]@#ۆv2cږn0Uֶv m~$В2]6j0XLwj5¶#6j5$v.Vo:.ˠђ;`[P?`۲m$ l GVI ZP/`H Y-@jT!te{& q1[@>t`hY6&֕55`[:$d`HzWK{Y5Crg^[!M,B̩T\ ֌Ւpp\na[:hmY TueOm|6?l @%@-K L-mK K@ʶ)2_̧͇CM ́mIH,6vkr^ۖY6s$ԊtqQ$M,A˄ܑ(-::+hܖ)\:\8 Z\!dYpF(Rb[Q΁~Tٶ9we?(ϵc|O}mDl FuVWw sHEޚ'`[P?j+խʺ6l]S*Qf\1,z$Y<p:mAɶ]]]mFLos̶҉!]~^6VFh&vvZmVKᕃwXVYvѶruKf`[YZ[dT2\a*l`[P?jmGG՘` YBasGO$5s7Զ#́ي3wм~sDC+AmA.YwwwWWIr}HжIf x.H|,?'uq)#mIV{`333DU ~n됔mM܍a[y8YC#mϟ]Y8Gn[ s7R,i*ʭc3^Im׶AK5 y1k|Z`[P?%dos՘RӜfgI2WK]2l GM%%?I!Yy /̹ l G|vvvS. Tnٶs4ԏT@mAm<@\`["9ml Q/ۖ+cCG'}g ['+ Ű R*Wkۡ?8W<733[{99a!A"dvɩӵSK?ON4 Q >δor<111===;;{dlK)u=9-c~+;7m_zk89:>1%闓W&PP^LGķFFFJn¶Ke#<0ŪU|*2]NZBAizyC?mop?}5Hle˖]vᎏ6QNLe|jΝ+Xz5ԧʉSs竕)1oӯ/_?Ɲ`C=m=Ms/Ƕ-Ь*nVm7Ӣ|r^8 \.'i۳3i|rSO=m__[3۞*͜ǧQ:Wq3]GQ u/o+wݕ_6wpږ3%KE ?wxw3CLl f /T Qm;!LgQ:HOl{׮}Mنv{{wܹgϞ~x|[xד${m;00o- 窧+Sbq{m9U$bU:MlOmORz[{ U;L4$=$_̡׊A~~ YBӹ4Ã|vbWtK^<[,?&m&6PY'@[7\zBlpnz0Xi| 7tWOzodÆM~>H%۾}yj-ץT~ q)~s[~m6FeQ,~_~l[.7!.[Ewv޶_V\ o𡣽oRmj>8۞&z>U%_2իS> ҈>bnkǶ{;_bNHgk@v7=*╱vʴSNK۶v^xѣ===\s͉3&tLdyJ,`ɾ_BW:v 6 Vyݵ]23tv,⫡d\Z2{? LmU v2U*w?!uB=AimkPw#hE/ϟ)mڵo?}RlmOI9Qկ~7L,MnڴԩSW\ ۜb9^2^XRS+΍*g~bE Ņq6;'#W 2bZKRݜ^dQc}Tx:ēA寛9~ǎ}DܶMG--)ٽ{/^F8>y{̙]v]uU޻*ȳm̠dDUN3KbV-mjϟ??33G(ٶ29{$v9p7޸xnȇ'Ȓ/馛,Xp 7_Y,G*OJS,]A֢'>(UK[iםxYGy o[_g`8HM?CRhm?)MÓБ+oK;9KˑK3S((M/ ]+{ 7)m9=:uj}ڭ/nIFv̩1k?4M %=A^Bl+UǏ;o6$M f4vh#ȑʓs9yg>{C~+u-]~&G&krel %A^rg.Uß8d϶#yy7ts? >8d϶9Jl, *-q@A9 l @ *-q@ȶC==Ckl q޻ koa-@%bF=hmŏEj%I]h$΀A.c*9u qo!_, b "5,V`Μ9&A^p$EƛAsjA -m .m 0FжW﬒m r[7VaԑmۺGbITX+i[>b3CVVVkg r[6d۶l,YڋBl9bn;ۼmv>bg6Զ+[YU w Zµ[cK y ۦ 8uKmcU| ۶5nQ&a[!co޺imȓm\U4S{_u۶Mp+o[%lVb[+ɀ F1 w$h?IaVږnlJlKJTAȺm qq {2BN9Gff6d۶]*Sa-lA,@%ZBm(^UEDo˓ 8 9h-q@A9 l @ *-q@A9 l @ *ٳ)QɞmHrݠ7&3gfU;w=x W{;BBj  9׶g]ڥnAp+ d?Zf6I`[ ŋ}˯$^AnEe+ٖ23l-qi7`U;椺1lH |mB!ܶW:ms[z&h&W-}Ag[nu^,^8vMʶ,WnO^Jk}79s&Nz2mŮ]\3`MiJbB:CўF*8/N8Ҳkl|╿xkpN:),S98enRgaDʾ)Rem;6T4 wg̃/􆶉vbwΟ-$ mlFc*(f¶۔vVۂ IDAT-lԡy8;8wmATn[!:2'ΈYl58 5gެń~yMnrwF@(hID%'g~$H_o߳ b}%\+ >oocRrRCx'S,*&DaDuJ"E6+5 GHQO[t;xi.=_ͱWT^O/ iP}FιKvDo[UDNvȝmЪme^3X*iM!mP[I5%}oFWGh蜻6̯Uj۠ 鷗9z- H6dĴcy-mϹ: +Ը>4p]>|mbBY A2@m56.BJyurJmum: r[VCd4BQ5͹k۲_mڀm1'asFmv4$84p]9  sW7cb77fl.-qh6 :  sb9͵ r8 AT`[ QmD r6١?MjǥD%MrO87dntiq`[!?5sF[-JmП@ۖQɁmSF-JlHb-7P y$MdPۊ2-M]ض!-?ql%D%MdOm-m[DElk4'{FkkL+ 4 *mCF(2[ۂdݶ b6lm"A lKq1Y r<`[␍ G~5 f8胼sܹB $Ƚv.mcޓEx|o.YdcMTA/z:333::J^B&ƱFln[V댴4w-T)-l ZULQ-UӱU W r㻷.CXnwdvf۶{zB%L5̧3o5  uVWwر$-ܹsk H}C( *}~_G_Hkj;SloIuv*Yhi[=ZZq\b[%ȝ WU|y&;3Uݷl+Q:޳Vk7k geh7Vj3iwuuYu䶏>8 Zs[YkBFLi v*$(mvmwWԣڵv[ mAΐygՆ`$^9xGi%-yyW3Wc'Ȗߓ~wUpAsDpR\ u:Iκmܛ 1e-4ȉR[1RȒ.huW7&A5!mk0yXGÝ%xN^z/5+O0W&# GYh/!{bäoKOx5"*֬>^~cjO{fT}z2o['8Ј u3PwZ$a'Rl*m[.Kr,AN]Y%,XPF&cL6NGcE/ w{hҪ% o YYm %7o3͐jۙH=8ݫEK tB n+ٛyUipq+8d۶]]mx7CJX>%/nbī#6eHmK K~By ^x!ÎpnR1msLnli7mJތ m9Ђ'r礪 XA N .F2aV#'E]Y7C꽺Y ۖۦt*Qɾmv|9 JKLz-՜ۦD%۶Ly֨!/,T֠ʇ *hM-JmѶf(rnܾzi+ ;)Qɍmm]WFa-} YZٛ03lSl ۆ<2 HۂĶ$d9 l @# ġAr l @ *-q@A9 l @ *-q䅮S-Kl>sXD r߳…msLl @m+=67E ג qin8"O.mdF"&9ö!mk 袊2)56Z1b_p!T /=f 'Ν;|Y6m<؜pb;2&"m YBd fZUEV3l @AN$yOY u[t} Wf[zAk*f=nz&\Ҕ4% ҍ 9A ,]yJlK~ڵ%%InacUzkh[G9 1B6恪5R v+Vڶx$mWO/^\PPYp W-~ĖѶUŌmp ^}ynLٺNoZ~D֔N'KnmJj~ oA^(#䰅>bXs57-va onKᮒg:ۚqN!?f3PO7;n<&I0kC gub[tttXK,ZH䍤Yi7G7fִSCeeb?nztqۆ*1W,D=K+BS4U }$uziMlU|> ttaSߒXNPT5L*7VʖascO$ə߄~R4/-]jG袋 %ն`72$FjELʯmgږYL3 v7e6lk+,pU϶x"Ӷ mUxnGP%rWm RֶKaTi&囖mڛ¬ &⺚˹UB۔b| r=rh[*ж:h4CY,a@3ivJGl+hf[״HWٙtMe6 *=ܶ {G2 =V-mS l ۺmJC:{3Pr&;N@q@D"UuGvc)jc"M--GvmQ#6<@\`Ƃqw?tuu-[?-[8P.ggga[pBG?ҥKxk׮[n jw5222>>`DD>3"jʡr#dztd/s\1 ^}*OA'3jίthjz8_F+MkIs\%k~\w}vқݐjqٍW)oS|{Nn륩 6r#(C$mdQ66>[Y'IR bt1حvceE'XX&Gʍ2FxF:gZyd=IbB_MQte/nsi/L@B^巻!&29Fh$j*54 x𗠅&FڣӖ.MOFר$POٮڲ)I!]X7@/Q2$F`u#xF͸nԁ6h86J~MR#PFxFv,r!] D2! 3l^A$F){R6PFF El<l@PtFF El<l@!\6C6deH(׳8 @F5ܳQ8tz` DhFB V& m3Ñᡡ`l,#l\m} EGWOht,?C  jp8FhlDih;{nϞ555nvtvGc̒jtvF.&1љϞ/jHF---P)6n۶mŊ)VZEDv Dc"{щR)_YHaWTmڴGYQ4El޽-Xz5)+OEGWhx4!Fה ꏇbݽ}s߮ZFk׮ݶcP;CDo_*W-D|ټfi#QŬ*y{Yzo,8dSEi+ZW8Y!F^5ќSs[/#e:7JIAJШnLFm&\(6?ԼbŊ@MMw8̜g|5k0mDϝ7T1ǹH/fw6HFA<2kb*6-D$jŚYb-ި4%U?F r% ̽L_+H9'O˗?|t)+6R XmNpCQWLƣjgF.FQbKKݻ'O >ӦM#IҢEV\Ih۶m?TR:BÉH>k'բUm9 i ]WBW. Ϙ/8`l_VU D y/FͲ:q'2R:6Rpz񂐚t@mat]3M1F>5W-rfv~<}Sq?UkUUc=?^Űk׮I&i#qNv6r@SG)Lۇ9XhaYHSfQpfFuhڰ_`5Ȍz&NtMe VKy~.76!w{]|F{ghՒvbR 'H#/cD[Q]Q2U]bndꆬmhMwCR^*T$ũmQ6zFg/$o#~yP칲/=Cܒmh|XeF#q%bN#{5I]f͑#G~ohv!Jtch_6~~P~(\yvo;Tw}gTDvԍJJ#j 6W!Q^}'6CcߠM)6ˀ df\`5Q' -.n1Qԕ3cɁG"q)~|ci]]vO;z*tJtc f~PҸe ōZeDaUv)e'=2C V o儍\au$6z%=1.|JyUۈyJ;z}H-aQۨ3'n߾}g&[:C555]]]htϞ=^{;hmV s N5UسF$Vׇ: ͯ [Z$O{{{&OhbB$U8uDGW4NZ(&r`HIh9q{yG}Sg;Ȗ]?=uӧ/]>9N"ąP,#Zo '62\F"źa#B(ȑwGO6Kܽw.iSCX7@ ooa#@㶍>u fl@pm:xu32I?:CÉPt@d/`#n(;tjp DhFB VpFx7w.8.8.8vz/pH!بM=/N3"37럳rR>KX=Of F=?}W]^ɫ.c. w;Uv"YeZKLF2׿)7@`~\}>CkG /nyqƺ_} IV_e]jl2NVgw=g6Frtw*t{i22\|[F$$^8ruU*\@Je$WF)y[w)ZJw&JFg&#RuBepm"ypW?^b /I̹=?pIW8mXg[rn*rܟ 􍉔f߁3-l`ns}(vb߄CutTg";.T }7>G*%oT=+OIm>jC2Fh.mbwI6:| 篳':̭3g7N)] =ƅGHz$Uuuu:<k&'ǥv:e&Kb{kBѯbp gM^("/BjA6+ߟuS*d>6s;ӲAH 22@ض^z' 08Sǐ"Y@mĐD#*iV$HFښ}mv-p ;F׋6Z+Fu\l# J,flhl62GJHNld^GeyԒoaNƢaEfYe@qqU m#m_O{D{iO!gQ:zx6>phG# cw6Iuڬ>UxnZQ`>C1/CQ/ζztZ/wytL̾2FFV~d\%LH!}ZjQRRbkpMЪȒX̴lEuBCM$W{=g.pJVlH)!wf#2rQ52큎@.(˵F#3cSzJG)%f#cJn|ДʵL8XϚ.3(\QkW_KqM(N F2z֞"ʜ !P;s#y;Z*Vs׸vrC yoM_;7'ׯ~}u'k'~lds6|ȍ$+W4mDeR%&|P'bۄ@NH'7 B1Q_2* T~ T`qn>`=rr=znuLH)<z1T8&-qfPFZm鄪*y;Q0 ;pteKHCgIHOٗZ2,ݜDxk~-86.Ph6 `HLk9FvŖKJx@[0.K!1_+{@>S/ppjl|\ˋ'yLk󭧞"? hD)_.}AF+] ʍf}sfGa#bmwޑΧϾSoqNu Z#;Hɴ~) >l?l`u~號v+>HY'XT_f 6H冭+Crҁ$9ٮ՝ 2l`c=w6 w;8q4l򭸍۬dMmf#c֍|WqlJ"ü\Ё]d[-ۡnF6Ŷ L%Q>zӣ|y&mdzI涳=SǺaذ}i(\]!بMx6pl0|kK( +6bc"U0v 6Wi#7 ȍ( o'j<=PL6ҍNm۠SS*69ނPt0~tF1D1y'!m>/t6ɬLpx x4Dgwhb/Cy Ƈ[Hl6mrĿ#^b1?pt>镉&5a}tt/&"ј(8` ՛+K">FƋ4mdM(i?hykGHx_lGP|4-"ƒ 6_6RbZYƒBgO|R:VN|Jn͙"[SgȮLG 6j4,^GTDūq3IxQ[^y' zUZiosP"ҏh(#,̆oeı,2ǎAfGgHo\v\Xr:xk:C#'4_*ʈu-wfm=ۜZvˮھ>naD FyM./m(Q_\Z]_#d-1>u='h[smRU|i=|Gtll+lDFMr|$vя#:º;`wtb0ب/NbuSOs*N]WmObDw$f¸-Əpqher ZȱL~QoGlDF'IHvgc#ݑ8UuO=y롃cQiIU v!JtcNyٳ2h\0Qm"Fr–Y3}3ĉpa~~]|iBYK(胍Nm78XUCpwl']Qŝ;o6BHb3BCpLgyk$+t& Ut\S^۩NR-f~+<w]SZFF&t֝H"2`Qg8Nb徧/HH6Zޱ| 3uRC≎P,;>D!FJn4gZiɁ${u )I]nPƢT!}>k7#76V6~rH6zSQ`s3`##hEF:qsدb`V9B FDECCC_%{cT 4F$ IDAT*ZZM>y@8niiٴi/^aQwr#]bAEdxjn>!ANg !UWWW{?ܐ۾yFg;zq L_Ȗg:Jzx'<'̐( KE`#+5}yfuU\sL{k7huFڡu?cRYkY:E`#Nᄆ@Iq܋{MUdMgh=ב8C&=a]8*YW"}4@eFOV5 &*>%_f_&ץo~_dȮǗo}3 TM$Qp,e gs0R!Fmzʞv|Mnww+V}_֍|l{ӞkkLF-c= 'iV]l*긦-jۧ+e+Ff`#oj{Ƀiko$YQ?3m;n/_S@62|m#b:FFGj'Fn9솃/%ɊfzL?p~lٷH^yo[ӳ0ke|6Sl:HWtjڱ6zyS t?'LБhqSÉ/Lt¤./{M/,~Ôl$ ԦEemC&mDaMQ7ps#CR 628m޾c3l'~Y5|̌}dž4T߷#7&3n#+)vтdldXe.[`Ք b R/H$`#^7MU_ϧLT4W|}3.CgۓQ2˵3e#q&1/i2!UbCހzF޿_ѓwغׂ]o.'YQs%yaϮfF8,9_MeRI(\D]FL8{m͇Oe˾UڷfTF"qWm瓲QHUH*72T4I ]yA)2I6N@ l`@-' xGY3S[S[u<;叿x|{>pU6YlF9wf{7,\}m.{6f`#ml`#l\6p Fp6.8dFFYf Fp6.8F`#l|s`#lz+$FF )`#lL]c8ʚ*x"eM·G}yB $WںF-klelrr6J4mxl }# hd5u;O6Z~ĉoV򀶑wDl$01eƱު=^&[)0t-K {&-[aLL%d96p}ݷ0Dyy9ђ,$|HF6q, r#*b2?cVF.I3ENtO$Ϻ:$IJ3aZWSE~7uAFܡo=3MQ[ۈa4c`# yG|/)AxHz@2$Oq"$iڈu)UȾa7[FҟT$-C;fl#o V$"?W|\FIbb4\F.vbg#Q* ~Qm:`#LԩS}ߟ$'(//6Td/G^lz'Lu#-1.SrQ4!S济`#F>JR)'F|%ag wM=1Fw~N׆^QMutQ=WL3Vn`#Vmo|Oܝ8U $WWqhS8XHXm6f#kEgl|8lmiq(_/88f F Fp6.8F`#Fd` l\6X ---6mZ|ŋQ{FFFoH"%Ց! BWEcx< `Az G(}E]=Fi7$l@B\%54}Eo#4`ɨȈ0FzkIo3'oH@@@@@WEmYIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/figures/cmenu-nofiles.png0000644000000000000000000006324311534217015021677 0ustar00rootrootPNG  IHDR5?쿩bKGDC pHYs+ IDATx ŝߛdvdMb&4XEpbE<`@QAK@@ndPf8w~YSOy=S3OջUU@H (?"(?"(?P@O-:8@dO[[[0~0O "O DO MMM---G=v(Z'gmF9 a vo>mْyDɫיFƻG4Q$_*paWVF)OO'⧺%%+_7}$~ c$!E:ʲ܉'Gs^N xKdC[J ~a\"PIT:H&ٓZǰ!w8\?B}ioJoXtNUtBV&pƇ^>nx*OP~pxw[)g~OnSUyR5#9r~$w8:o;7I?y~~0S{uOO$ld#k6W+(F)U OލRm4*b ~0Ӫ7X*=Ӡ0~l$1e+{80nߦE:~ 5J !t}tr iOOpO/~hӕoO [OW~ӧhO ,??''"`@D ~~0O "Of/^԰w4c'SSªL`fێݵv|E9t BS?T~ڹ{k׭_M9徧ǼnU~ ,ĥ Ştqvgsr5J `iysߟEU!ONR!Yd\RSӢ;5y2הVBU\'O+?%^ٺKS3[S 8 f(VOnzu)b9(='O6YnFկ_nܸqc(?QrJk*9%ܣә՚*O|$gRG9<26v\f҆'!Q AGMT?0gԩ^xa]]]Z~7ۀW+(F) .')Hv} `8mfWW\q7|-Lk\zM:r=]7oS-I@W@Q`0ӷm.zзa~X `{UuO O"`@D ~~0O "O D ??''CNT1!~ ='"`@D ~~0O "O D ??U%솲*L@??" ⠌+('wT$Nɥ2ɘh1'T.OWp  Oo%){~2O`)9Y^̣(O,p TO@?=>9`jkљ)EYJ3~r#OTג+/Ā ~rZX*~LCm4JO`۠RTQ{ ?tu{1I:Pz b`0'Nb'V|njL+z*^>z^C''RS<;|5['lۇ`EisozfTKeeef6J yD?1Q)9+ "~A?_W0zcυU]Ͻq/|6d J: ~{>)gҕ ?E 5KGY>}ȎӞ!?.V # z7M؈)bOgxGoٲݷ swKO4ɍ'xq8KΠ?Iaؽ{Ս?iޟO{ '/3|־򤪫ݖql5 |~}۷Ӿm޻iQ}o! ?YX#BhDc\'b-''C3rpcܤRTO4{9a/} Y{)Y)[a<?ҘvyZ?z۷g5~ `HoCz~>Re ,!5ݡ ??''"`@D ~~0O "OI;s&/)'CêZ!C"+v'O]&߬ɂYV#qr聟 :?%=XEJO~+ ou'O `зqr"KOTT8"~0?;rR^)P Er`D?LGf%"+*ro%(fM(OIiWJw޵|ǮVV녏hJ QԔ)'5v;0'3~Ju1 ´iʔPR?~rRxRIi(?YOa~?t\KQNDsi_vOdc2YH&XངOd ewJgI?1ѸWy^cML ?d|a}QOlcp>E"Lnn} ,񓣨)Sr?{h+jO4D95tYOd12%?t񓰼;;~%=WH2=^D߳rw0z bG1InJ=QeO\ո?~*JO# #OdIcT[_Зv~r|xE c3"H1  ~% $v,qJev$ɸsOO "OqcJ!SjD?~!~ (Y''9(Y''9(Y''9(Y''9) A)?z>i9|l',ښH?YUĩ\P|h~"" 9S O s'@D ~hZ|~TVn~X'3~`%"B1$~Vb*zuBJs?-xΜ?Ξϧ?~ ?lQ:~1d]OҟY{#5<\ƕx2ٞ;?UaiҡTT^.O7W[~O.4BS@BRPdFdBޙ1JO @ C?M}mC银GҼʺ?Wvtܜ2Uc)MU.xv#IrTUy?Թ}'$:KB̯ۋ%'C)B`wqI#wsS8?uf "׸ R?Z>ilte4֔uQا6Ρ~Jy7šPln>ɸsOO=i?kzLS?Yf&{ bI0 ~eI_ߨQқ{kSS`DȾ?AN7SGN6Ov# Y}.ي'N:Gt+N3rCOjߓ>JY$ODHgV$ΟJ .l)F1B ~2|2}+O>oO][`';xJ'i~3 }wD4 x vQd~c (NB>i$4O\k!?qrj\rw?ʱƧkqS?(TϪ(fWQU`ĎSfWDn>51LڧGOؠݔGd7}Aâ_=ؿ'+q;%uU-n d%"7iF&U~AԘJS^ -'i>xksu Xq'FV.?m¢wjnK k6W4ʷf~'@N>pO^=>䀭a(WG1:j s[ 82G:b7}'{[.q.qpJ*'O^e?T~rJN ?+? D)'2'~ @@~0?P~AD ( "($Q&&~2^JI 5&IJggbvҥ]vox˭ |X)j@|LWJO,}NLMH)ݺu{%/H"[2+&kJsf!dX)pk{fOi{?i>nMefU @ mڴU_-r"ŐkQT~E"fk%~ѥ ߏul} O4)fϊ0?7?3m,T{U]vDK7o;wnNȿ$x"~"s'Xo~*^TIu?Y{Ak[-S@4/a? AxEWU~IZ?vɭreB~J+:~_"~kt>ك"?fWAxӆB+-ƞNj[:}âs~WG>QOBYK(iCdG;離3e$^v}g~L #  ЩS,kQJ+;> K@TRu?\P?v6?F7Õ+`c# 'o~}uN>䇯OraprNOL G _|T@>\ ʜx0#~ ʘ$Xƞ^֋ ě4zD%Ou& LX*;~b+W9(UO8 ''d8e_z'C)4Ot_TD@ӅG=BѺ'|/~饗3|4XQ~tI>lj:F]D$rv=J~3?UIAROt-p$F5{j=F6]J[=;kuUE(}a׌R.nc{:OCVBUY5ԧOvъREa~X*P@X'C&(K/EY~0?P~AD ( "O_'/D "D!Yt_%GNo ]4s'Q%sOI dMbέA[[E3M()a*?II\LKXS g}]h)4 O9)h|-Ag)gbf☒ @Ic_$On#'Bu4R("*zHUeG (PڸHO "O?kkZ:]Sl$ ɤO @ q/"B䊉%u]Y2x%w7(OmN) ɑ'G1 {n"DG'  Ο8"DQKɮY?)dC7O!\M|S L=;rz_ z$lm}J?I)d6yL[ IDAT'S_~*0S$1'IˍDЊr$(i?ѯ ?̿O$0h OvJO\<~jB/;j"`PIO g~'ISз9l 'O(0Ol$#6(SN^`PIڽ5eɤ+]n-0~`?4{˯Qk0re39%5t ~W2.>$KI7եӻX#ӕ 0"LLn^H$%@ K_`~X#'a'/Gi?eLZ 5JR<~bz6Ep\U^n5'ͮ0i?r䫄h1K"BZ KIv)G<3=63D E'3gk{ٿ4 .f`.o WCN$?5V(Xa.&O]A53 "DOʟ ژΚUra?ڸHO "ObZ6Q)4%S'p 0O "O9_Ŝe󊳫gg)& wJLۗ<6߼˂o}S9}7~~߾}:~(EN$,z4gbq7*"TڴgnK7ͷ_S>Wp^'wxnǔb|*Il]HS+#+lᳳdG? D >i[}OuӮ} N=}Wj/x6lKc;+?z.\ E'ib9M'HHJQ]i|azonw(5ia_g߽fYϝǟ|Ӣv|ӣ%REQf+-?q0e\4)?Ϧ!nQ. ҃1g&5ă B,}s']6Ꞛ+F(CfY?}gg޵kqՏfKO٧T([,(: b}sg~zѲvޝgQ紾8o~=5jƍI2N_郾R#+$M~9dk:|o—- -Wx&~ ??wǯu?_]]yU+Y[Tց b}{k>>㎭x=_/xWn]ߜwO3|A>L˯_O_1%A,[on׭:5ݿ>\m&~|}Æ [n]FWij'/aA=2A,Rx}7+OvW.<_ן>.~Y?u0a¶m,oS$L~+E& `;vӾ}ykxgΘ_s_K?ۇ RUUO]~i7b ԃ?:|K޽d *jYpaee+RQQ1^6mڪUjkkrBi?ŷ@)d/Ժu֮]bÆ ;v G/_oNc">!&Fh/0~b}a | bFQI=s$nt8Ncʩ.P>~b}dfLϬ‹NWE7'_6E'E!XĩUSgּHV;GONbDx[!ߗnIC&B(`?P~O~>p9SUy2p1^*ry`b0YE^LߗF@DшؤU[ReT=TL9(>*'%b>,'FZT>/`YOI9kPd2ױIxRcWGH?P ~c$_rzYL?)*΍RN LޗO*3OAU~.{bzy@C1멱 THTutG7ss2{} jEH+}O <~k쥽+8E^.~'j[-az^,NLNKuRi:}(/?Hˎ{õ#23\Gv͛TVPy$ "~>^.dL::~4CQ)ďޝ} $0g> >vd9ϤZHuD'f:݁ML~ߕ2̪W[&$O,Ηg/cL2_X.If1OdX"yJ)[x_fA< DE)'~ KE*g/g'w%| (ktMb/ PHǯ)}|Ӟ%軣?W!ߕ3J Izɋ{ [zTWۯb;*'~r@ Fuw yx?ߕ_K ut$9S6`Uo5Y~wGe'VGZ| 7{A~ +bE' 2`PBKH!|G¬g%9p?FߕT%r?E[`ߏdMUϷJwGAW]X~WRʗC?ˈ> -UO~y-^Z;"'}ge%6)G9ZIJX}]r'٥7^G * *ykP1'IAI}Ks?)fb]Iv/*%ݪ~;&_~!=?H*V"QWۓ_"~0"iﻧT=]_E'I庣HZ3.S }Q^2)@9 "OP?P~AD ( "O_'/!{`kL@Y~qY;³ a ȉҿןRY*W3lĐ-%bϳ B<Vkt{=grʓX8™U|N'z~ņ9Q~SRey3ifXV n!bj`fSN&~%}Z$S3[iB?0Noƕzkd0P-pQ/}E_~w?;Gkx[#]ġ':Go=' l-yIn>~rY#ى/7x?jI~'yіb䓳3zt%̚eJHׇV4oZ!?sJݬ¢/ _ilG>IFvǥl_՗O.C'Ts1PdKFܴNV5ΒQ}ۆG'm4y˕u :__l}4,_WIrG% ZM79;]PBn4o&/;_иڻ+?0[wmSyyV˯Ff>p R.C .w~ ~~tl}.ꢆFDx@<֚?9L^+y9 ڝG3xm!-41^d~-ABv;W\Vy}P z~\sLyYK٥eG\>TlһG}drq=c,<KZ5RˍVjd2)TV 9.߉&H;Wқz݀70Shwړiƾ57~z3sQ~ P%MS0H>RV7k%9t?̻edLFlO-tA?!X^s27 I $ݻW4om"\@)^j!#?>y,a{9=qvP6K#I?!oKdJY7ۣ_(x&jilІkeߴrI>5h OX~aONgVtkR`qNS{X?K FI,|!O&ϣyeՒ,/| n"5;FK9`ܠ7mPK˯G-O%[~zX5tx:~2I(quCleBvm '{?yUQ!~jT&P;F 'aT~R1dKxn3#{ 3?8O&~jX#7ܚop/HʪE{?=z?~4E(E-Oj>H5W-l퍯ϓc_]'[=$~rP?L]4#/\4᜹#.DY~0?P~AD ( "O_'/D /L7~Y5k:eˎ=( O5\)U9lӱūȖu[wwCY ~a9EU~6캨ܮÖ!oݹλk55yYF0dUT@BTEnޱU.D^|?I+ǒϬjyHao@eh؊>pQՍig,w9ҝn~0H#cW>^!y{?7nڎ}O] vT~+¨7r?M7-8{9ńŝ)E bݶk_ӷ;j 1/ygf8eg;tg)7>mgmZ嗝m^vjAOy|_Y&n} [kSSzON\7DNDN.;'޲׃}{s^o\J23e'?^0"w,>~[-=iLTOOYN^I$x"Sr]c:.7W7HG̫2dLOm<+1Pmvۅ3C?;pʞcIWj#ӳ=zx~W/>/{9姇S*v-t; 6gOTƜY'}ePB?A^y;޲W}7=x/?熏.|F떱&ngPEi_Y7Z']T~%$r@>#=~2'~Z\եbm'T''nmGS[~,M]`B#Ow=H洛c_ZTw|On\z!S ?cW&4n]m.ӝfxdjB$a;X"-%UgNTnL&+BQ~z2?y|IqP?J]jy -#f}}pT{V\>oDNDNONvu]O S~S xd>+tH:{E\DI ~ EI? J§jKW&VLST+?ޒH -5;ju5z8沲Q7nk9#ޚsƕlٶ#B|e%T(gxr\( ~ E(~"~6sM~9x' Ha.> DU]z9Ћ`& ?kg\ Y~Q:~*؇ɷa WLhDڇ^ ?1l}3O ~Gwӽxw=>T9O =OT71vd⊊Ş~aYSZX<=lҸ mߕn@Gq6[<~ЮO}'gWܹ3tL&X I~u/p r]]ft?bS>iۥЖЮK}Jk׬o愗JS>f}>;ߞ\rRm{c߲S?Xj2]35}* Kxmߓޫ$O-Y bC4:ieQUE" I#hfQ&VL/aBGzrabBӢ%_4Ʈ%6"bkoo%[\p _6/~?*( Z°x|cNRV^.}=3Otj,A]Sr$ZTΞ޻iD]QmGW[@P"OpynO n}hQ*~g4,^\'Y fTf%ϰZ0 Z&Ehr2ʃ() q#tLc"ëUr$?{7Jt#Ά$|&N_x$QjšUvzWOb);-_ﴂ{G3_IHe/k?%,*_OLJ>( g?G|`g rq[-l1Jۿ U>qƶWT,Y5D0$TokW驧eHYJNouuuiFGPZ(~b!k /~]x6)mO"{P$.RlWkq6[<~.C?YoۺmsV'Z~؃.9u_Ҕ_ySSO>j5OHE -|Q~2y܂ˉ ]\K |BWҲ_Oy٣삇?=?h=I5{=u9]y{K׆.NOn?)$be1vik ~Jf6;W~JIA?;8]XMzT?S֎wv !3#4Q۶̛?N#hG>.D3_]TgJ?Y6OiS4~:dmߣw" ` IDAT+ܘK}-m#bu$;mo#a, r񪏟4w>NdOafhKގ&Fceљ-2)M'_Uiկp}AwK2Fu)`|@H[S0Mc?| Spc*`C m̷DHMwmxD!bs"A{Uҩ㽃nWf2Б맀@i?['+v7sE}ۇ `@~0?P~AD ( "O_'/D "T`ĉ(s}9|+ ,gϩ=v( O6 RLҟeya&QN=u5X6B# 57ezQ=˜IZ~>ּI@/GQ ?Iś 1kk?~R/' ~/V@S34ӳ*Sgs[P.+}8j?kWyu~YxPTw{smF^,݀!׌x+o F&YAɉ3/:lϱԛC%K.'bV0Y4h6g< UIeC%zSr8_/4݋kibB Pyv#oK6>;|5['lۇ`EisozfPFW&#>g O ?ŌɃ Kj>=&Swϸc0I_n5|Oo6O胒~jh8?հ --z3w4LsaUs|u/?/? 9PNHbbFI0@VLpA+ɲ~bReɇKukA?eO=Q{U5KGY>}ȎӞ!~:\Thߴ@4(?QO@>rP,Ѝ'7S5bLB' M8}FW^z}-[}۠?1纺t/7$w7 z2' Hu_E,X=~xade~:aI]_dR^lq2\r~{9nӼ?7-1ϟٓ?I?tA~=VbiAވG'9C#O)F͸"'{t,n157օWbI ~S̰k0򓴝6۷ݾmޭMz{ V+{F=Pq-)ROP* KrV _IjT 'q!&ObMs^6YߤWuK0}4疃&jrˠ IJڠO1Q>F>{F4j%R~A@0^^:GO*_-'C: `@~0?P~AD ( "O_'/DKP~AD9D'E/D "`@~0?P~AD kKoZcȿ5k/KpU#?WoLB, Ok]۳!Tz*/LsO#R%,QDGϾ`2 %RBU~W+ڿΣ9osNJR~Uzj{/*[hr+ZI?C=I|AVa PĴiFWU~7~֫{`ۊN柲m)~_Oj?=rUWS>He-JwC߫}![WڊFNTDO6{ џAXBWxy҉CosګIZ ĠI09_z^ME5bdQ~J/}* (gڸHjD:㧥Wg Vx$gO&q!dvRX(?OS4$6 ?M9qMO'YԨh; MRzAM i+xdǕulI5fO=X|x\Q ?5"㪻Rh6~@ђA*O[]_OȮlINrts=Zn|%u}L V:E'pw3H{[OL?qpqOGMYNJ.;G.ӏo$ǿS)~<莪JI%~ڽ;gV\4!r6yU[ʠ;genϭ}ɽ%%UO>aD䞄0An;21̹ϻ/+{:`[S{$}cO§f)ϝRa6(%TwլKv}xѡ=ÏiiݽݰvsJvw6.{d`0)wU,'& d "`@~0?P~AD ( "O_'/S h/iE#dK򛽺| g&~~U]ޞD^7 ٞ7?u}Uy5jyت?S]6Q2i#~~*o "GU~W+ڿΣ9osNJRWZ{+g`r0I5C8v.ݏ=u  iU{=mEMOٶڏV.݃|5e9_Y'3?ыؒ|~n2 *'v?ht|j/$~20!zQϣzBMa Z?u:<ġii^䚀^]\H])xad~0iʉCoz~Z?y =>Bl&sB#a\f{A10Cmg- ? `)y_]~i_^~+UG}t_+W ;> ŖGo 6~"+=?/='C8T 9=?2ChT-&>.M8q}⧴ Uyt~Dq~onjWO! [%öYw4+b@X 6')=ƜI|GD?4~{wάd;Y7$H`^YnX[w+іT }2~:"qT"/HʻfaS!* Dn;21̹ϻ/=PYdy rf?Ԃmx ʐ؈k|YO=;_N_>[.ͤmp7&џ-|~*hQFZ~/zszo>ǚSr>a" XIOO~2yڭOX!qzpw 1-r?-|葏ĺSG/qfOxحį!&k3ah+̒! @<ͷ$2۬X|ĞO}@QO/+wovUO?[wKֿݥ.|sKµxB%U?iU]ZuYrIWj#DUt{_sgdi{Nnؾ.b|_.2y&~JisSZ[˹Ѳ2Ck' a]y#-u T~?Nwn^9~EHԣGlE ¯K74' )Hl~0[Ls7>|KT^}os3M-2wܐ~WO<~NYTVISaS6(@0]ˉ삟@Vȷ:ujeo!l':*ΖT#T̅=8xqur-#ѫW=z@f,),+'mz O "O$rztfk>LTD^_xK‹l' .K~b婯ޝզWcE?W?]z饽Z/#Nr?5J/X;>{bnO~(EuoH|U D-Q᤟v0~2$9Sl+Og& (~!~"N"D"_3*'.]|CN_>[O "`oLNo O_́ ( "O_r맆U[q[+*?88XVNJSU͡[4у͇d?vf$$% D魕-$9"mn7o|E{YK{oԌO ;O OЩӇ 2bСDWdN9ԌO?OM-~:< F20{Ocrk߃@ɹ>]z-***&NLgSXkÁf/N@@Q^mk6Qke੼4m#!E" MFf0feit!R#,r˽Z64xicƌQOO⥝{[hӊ˫SC'>g[~U2MmڴMOy4S=s>g'jmj=DqIv帀."r-Go[~s=CUiĈgJ"G[7eg1Ɠ+DuuJs&@s{d{锟ܽm''im!!7P 믿ޮ]K/H#) ~v6[Kk$*;;ۤLœAEZw僪C ?~oCSǟ{.^1m?tuf1-8Ꮙ+)دƔ9y{Mq|s!![ZfE_Sd_#!"qhK.OvZQTb=gZFg~&.~RbeSlkϢ^tJi̟?ٲe|?p7@g4}k"i,&ODrkL2adbJZ[-r?4V%yHHIm(Ľ?]{ xn}+w…G(H%5~BBIafrR['s.رv痷Oz~(kƀVB )6֌;|gСC~^ce^7?+*+~?!8iO3uKU+IL E%.%obQ ȿ)y?k6+'exu'H=VwFl ~GeO^{igmӰal?͜9sGZIĴ+.;)!.+~nRB6$&[N$8)QQADF4p];*Raz:X-R92~pvɣty;Oh uU,OmlqSf;O}PeWw}ѹ瞻`?mUtuOC*;WT+nI6:dt!䷌.Dv%n"ݓxmgsNnKpِ򛈜4{{^{mR*za';u)%ka?;{ZtSPnFrbkTu^P9CG4Oqһ߳7Κވ#f̘e˖/|w:mUpkmC6UoY,7p'&6:;fvXWw\O6>R) R6: O<<2Lo}9G2)MݠБśUygfQٲHȇjZH]+Θ tܙl?8~={455͛7}f̲fgVrTSJ{o6I3gZ~zQ'|r"0yjSP- [lTDP>~WoeMǺ ^x< :M(m !O[OIT|~$x[nnݺu͟&[fϙ{w\{;v0`bڲuW}s Su8^ABR&~, ?se]-^wm\y7lYw);5#!!.o Cn4I/?A:mʻ ~H ADȭj-9RxSmGZ뛎 77O׽;wII'r맆l>-oBcY9Rҗ;wzmqoI'r'<߀<.5f+ ^ O O~ "'(*@Ā@>EE=zݻw~ |x-K(-9⋓'O^xʕ+? ȉȩTS<@Fx{dhv)&fӧȑ#nݺwzKCCCSS '+l?qr"ߞ={V7f̘?ȩ1 }'>OR9ܹs۶mK.'*=FPX'&O֭`ˉ8NG?8?4!~/~o$r׎vo OIDAT O M<9͚=S;zEo O z5X^Y3Bɉxon0 6H$ ٔH$v~xY]3n3f(^.5ESگ]v@"XTjO$m_O j,މRW4+DNDNg}I0O DOa^J'_Od,aĞ;l%ڵIuBKЦMl#+ S7s4Ck(N6'G'ME:U5 a.G D#kNݖS# E}6 đɁ5?Bv'##Z3rЭ| &HT$Bl|CH'X hJ&ۊ}XaT.q 'PDOID IBXQl3I'}R yӐ;^B@@(b'|Q6Yɷ9'8W'??(ÓWꍢr| "&*~B{NڮH}I@Ԁ@'p!(:5efDO O DOB$υ D I E@?8?PO O?#@?8?PO O?#H!T # ?O }~q~@(~'G'  ~q~@% WZH@zLPP9~q$2~L&bC)nL4X;vىHʽ{wyRw đI󩚽2Yh @$?"~q$~bjyS?1YOJNec]ʛ ~q$~*yC?F~2iK$4~ ry~q$~b#~~PCVǒ$"C(#c'QE#7JVJ,$'P8'G"T4Wf~@-(т( Py~q$~R7Is #0@D đQj(hP*j;ICnF=.@ހ@\dcQ:a[QDnA HtS4 (#S`=y'G'  ~q~@(~'GL;EEbD8V^=iҤ?Ob)RLѣGsTf…7nX@ %_R8?O---&? RrI%cǎZ +Ekɫ7Hmjj"e Dp~:fq n؅.9S @D @D @D @DIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/figures/commit.png0000644000000000000000000067377311534217015020442 0ustar00rootrootPNG  IHDR  sRGBgAMA a cHRMz&u0`:pQ< pHYsodyIDATx^|[RZB)R {:qb;x{ɲdYےe[mI{Y"@ޫiyH(ҽ}WW_s<}[}'w?W|͊oVh> OzzaxB/>ê7wkCy:jpڭhylI_pSMUG0A,#{;5 =-soxbƞwqiwxɍ̷|}T4\it Y# bZ,|XZotv-;ޟm/G in~oÈoo߾#̳7+>s~w-7s_/serݻ'+~ڴO3vvΣ[Ƨj0 +a:&F a F81.hhni51(,!- ě Oԍhjn"'wdBS ΰ&9 [)J̡ m3HcAj@Q\5ԁQJ?h7B&Wz+z@=CeCC%]΁|E_/Wї˖#e!fz3{2ڻۺҤ)PX$' "R,SWls{R4!OHAHs[Ջ 5번"h/"<"BVHin/ko)k)B!¥;ydw,Ee=yI®YT,I#)bŊ8"^Jv"vJԑ;Uۺq'MW=Qz{ZtmeD֧,k)S֗)W {}":Ft }ч]S胏!d6Bm*!SHI*I:$H w$; )EHqjDjŶUij`&Dp=G8ڢE6jQ9G ـG `Ѝ0v b^)?pcTH1W"r!#d{+RXH+@t2$2ʒtdI:A9:sۺ@ym]nPH *(J;:;**I݄z**{ o}%7ދ/WLݼ=tmj !%!OMtOt`}jOپ.-vj l F֠ޚngw髫Z&U(H$q.* :[6p̩sTEMUMZ-wηg;0'BNL-`5Bt1hj]td[R ޙVɉ#t 뚝Z0BmvAG8‹lBl. kVɒdl:lcjS\ghH&5jT *wΨ{=T9@bdd,gn+cl-el.o*XTAA{ws̩ZMZYZFʌ_Lx!_iϧ3&-1yOF<xD Iy4(G H?~sğ/~?;MxOu\>x?1+$>O)ć1UC)R J[Hic@ !pHf?x.c,?Wآ?='PTB 诉%OcB Ij-Tҿ%>CdB&=Hez.TBL)LEz>_+ )_iX)^`;dJ.ɥ%<\ %K(=_WLOdBX?1'},29F ~4?&#yi3aϘ={z=Ǟq;pKe`*:hx^ǫToCcx6ЌGC2~ |C2~|~,4C?!4xh??_2TxӠL0=lD#Ee>|T@9/DRL.ܕy+^->UB5o$RNZ3*>"mȮژK8|šE5ۊhۋkA;J;K@ݥ=rr&h:tAB:R1tMnrκyt{ң%jϠ^ T7[x3ڞAzjQRQa0GZV-+Veueueeegj$sPC.ӇUQC#E1 >693 ~Vrӻ_/xkjÛP8Q) iXf@+E ׊Vw\jpa7r9M\!R]W-On'IF6!wvq+p Zf8Mn{ЃyՋb/[ gBz1ȣ^nr/ĄDNu"GWPbmqZ.rmq8] dLh4h@cKp/*8!2g_%{wkG9skGŴ kcFn,뙕fTLx)ݸ]3%H)y6Vl_s?.$G~/qAU&tCPKG8]%_n XGGJ> +|1|W?q (yW" eE (uEPB N[)PH mTRQN)jEh!lC1W)",kE((X" _i(0ay0R2UJ<˲*U.ogi?I0Vxo"mtb0!I 0*H 0*z<1Jb@Zb,Mz`Kc=\3S0^1`K~e,.X0 lMXVRcf," S8(:]E=G"zt ߀B~_Z!28Ai@JHH{=Ry<- ah;j @OP!cX$K3py a[#{ 0c=-MR2V:0_3 X32QfE+FYXc"z=U+YXeeVU!XO pƢmK{@f`u@ T`oX:X}Cy8`{ُF~Z `UYi-%y씖qN4'-'EMMMMMIԗ4 ϽH: `wsXSb悬Č /<ޙ/UoX/4J XdΐYl]Z# ʫٗ_( !qhZbz3ߢ+^K LfqQ"l 565BCɂv\A&@j$ӠwC+K$Hݑ$ z\pVMkqkȬg20FZIm>V7r`/*!l'cr +Aɿ " `Z~he+DWK,d,5`e{,`E+K?cie5]ʜX,J_E֢ XC.@}9Epb( g)+4ᙿ'orz,-W&fi{WTN,Xڌvb,+XZB5Z`ib"~, %F``g,܃Et=XIȉ3 +c,̉ ,- 9T V+Q0KXZEcE`,=,BR3^Z'~U" WAiIPv",,ܭh߆-.$1,) z,4 {H1xpYXf7cf= ~G X/Dk4 XYZTFr1c?Xr>ʫޔOڂvQKXfa5Y J=:* ){)z1U{]ACc^|݂\5<[ ϔ2Zj|cv 111Rْ)N&E'Eʓ#;##{#C]./^b_$ sw#;#ɑ6lsh9)))mLO ILK:W÷b4~@V>rҭ4V2X t+[ߑ%i[$5ŷ'D`m㚡\?ML`#lǶ<<$Q$J;[;)dt#uK:$:tĈՊu`RDi(Sv-0L-$YH3R06\B`5$5V5ռ].r Lo0֞J2'% ikɭ^SA}rZ92p_=WQ >QbkgV{Wv{w;Gޓ+UQpxFpY%RuUvU(ϬtWv@꨼\ћ.=>N*HARϐJ=C=PygwAk&EP{{(eϾG&볤}Zx-8ai:P;`JDx"k^BzhyV_20R&cX+27QcXIBc)XX?ҕEVBN,`E X2.`Z8cl9+ -|, )^7JJ3'KR(!TB.upN2EX:QB"2?2JX&(LEk!?$c+^+Px?KOU20)S3 cc,[  =#RaBT<\fAC߁L8YX)Å:p! 1c!?۸+򃜪 d"VXXX+vX,Kb( dA 4<`YE^jl|ˇL,vs1+>uPCU&)&kM0;_pfYоZ +օ'.Vf8669H:}5[~TsQ*i[V>`DlwQ;ٸl욟g6#%hȓu(:Sr9Zϓd[QZYVP%c $RX~1(ևJW6M,Vn:8cQ>FXx!ګtb|,BXlGanNõ-&}wW\z O˵ӣ'6P\^sǾZ-{H>SSSFf2c:v)x΍ L~ud{9w׿XUHy_d|?y<  E[)^uj}U{13ֽ+Iメ靀#{CU1G`JW9X8`NMvMtˮ 4J,V:b̛;/\ҏ5V?ZudIN`u^z*>zרVkMfmYtUSÄF**LgpZmY*SkVk_+Zކ׳6Jpuʇӷx@hp 6r?GG`!:Uq/) x8Tu F&pr 4;mS;흭6n߱j;$^fս^dUpirM.Gcxe^]ahJ0kWxǦ(@1-(3>#>wp8$S^ut㾘DNMߒini+|XetGT9~y4K D)$:QBU;^ KK)K`sb[kNTw`FXĈԟU@!zzڠcac 734=XDtkl+ KR3)e g˕d,\R(c=[X=ebt3B!ZpD!ZdD!XxpBu;Ix2PPOՆ9# 5K6h8 zGjV Ĉ8`D!c $cԁBc.Y!i0 GȏrecOR0 KcH*faA'Bi7+K~H+,+]YX,ʂ:xf*Y(*D Zb,G՛ (l.fm0K7\Xek ! Q 0XA5y{squ /,8z01`b>ȫ氛/u(10眥6:%:Qe}&؞mӷھ>g{;+ݹr{y#'jhLh3#ٔ\X/7ayv;=U֕\Wc]r5y`Ka!!$wg`k"Dt:QmJ׳U}l곕T|(^(X9҅ɆQXr(לA%v yP^kG'|+[]{dfs!ϗxʯsuqSp|Tj.~WkϿ̣@RfjcȲ,BRSQ*h*rG`qGFmM[*7;fNGq@$z ?X&`I`5Ci 3ZE}+F?V;֓D\ ;a|ufRP{1\⚎+k⻚\DCZ&w,H~_,]]|A(VK,ԀFEG`St.`i%c# qFҐ Q~GU@(!B`jXpBMRED 뙔gAHx;U.$*cicQ-X󸲖 XX;vH"x&"J6hf%U99Ǐ,|P z+cilQ24t+cݵbhP`-XA9Xq?I?b,rQ%cinSKXJW[V,Ri:X0_H↩NCHBca`!y"R pW^ M|,`,cB20bycR?)cpW0Y(ּcXE򎦗I-9t8$wS+׹:ny<1Dz)2?g`TN/u*gY+W3}:z)84&|reGݞl{ǷWN>jxx+xkV@ΧΔv9uqVX6SI'W`@SGQFaaՉk5C((N)R9ILQֵ<(RP6` *7Y1X+bK02Tjy!zӿ$vB6\xC/h81yi9''w?4t48nw 8Tnᙏ]軜D=uK…bD=sq+p_!rAz̄j8ڧ .Qqyj1ܚXs(!>XE`XN,U J"# XX{$VA˃*52(X؈B݄wX5 B=G0GXQ( ݱd,>k  c,›b,8J}$9hcHKRf=aʏ\Y(b2ðх(ffidc翖PK#V.r=c7UT@ c~,Yp+d~ .ɵyQʘg(gr)g9˸L2˧0Sh~1T\jXXhɲ˪Xƌ +ps(d[de\le\fe\qT)ڋ'''y'DIIIS4[94Ra}ڸ 5>)1IXu2 j"#ǕRSUOW9C&0} ч' i)bCpr/K̲'VK,l9 x,[K'A`ԟAebGjl XVP`űՑla(% jqDa @RŖaqe=8"Lb$$~kJ\|E/+%̈bEqcy@aB(1P I&#i?#J hN ll Cpbٱ̰`7[Z GxUiU p`z}f8 =&%; cmy(d >ٳ!V3Jc3=#NKBx3=B ',SwLjPK a"L7֬ˣͮ/`g]=RZ!|W \ QH M@4Â*"<(@ߏ5`XXQ޵A%]5g|Br9sjvGGQ2VLNxǫ6(be`8!H(DBY(I,>P3]=Ps eYyGSݵʻcGuY G@ac͓7P9Bha7P>0+3[(c)ʈ!?(\,Chړ!JXȕF*SZYz\Y/  g,c!J/{7SX),cHp!V,|B,%hםt)p^']vTmi_"pi/`iscWNsu {9qgOG6wî͎7;w}[/v`vz:n:.Cr=;msػ~KwXW}Z,iDQ~/`d,`,ڱȓ&PhMgB &o^sP0V[Dr;}g{gҘqUV$q. u T j{P@*lնk3z+MA>PU/hX%(@Ri႒ =-iMCP^DޙmLoRX]e:z\&B+p_Ef94M b:=`i& XKuOyK/c/X`~,LVRUZܗXs|XZ>g҈.j>ƚw -W֏ Ӡ4s>MD UeԵ4X[zT5XUkBSޱXs"-HRdaHcKvkX`a/Px&@(c@`yʻ u9 qBPyw4S!HY]ԌP;6PUwtNf*TgCQ ?jykX0i41G! QՆEFHx'&g, ~,(d,lO+(wAC)O1HX`FZ1DdhXOÅfe< \bĸ7SKN/ZU>|qTQ, e%]JdjIe\*WJQ.UṬJU,QZ$ոD:RDR*n]Tq+lBHB!խr84RV>ض}l$cb &լXhg=ޅ D(٦=I, mP]KbOu׿ަm⣛Uڵ \*IՒKibyAmJvv`)qavPev>;*юQ*PXSUlC$fgTis`j(a5c@z(1qq0 !$pG:?\gT+w+X1]`f(aXp9$C Ă(n|E{ۗx ~Rb:D-gNpɞΟ<+%T{ulBhTnTX@!+,ϽJi0>S>-X!Va³X PSD&֜X҉U .KOPY]K(ԞP' G XDѹN," jBETљP׉ ,=UN,(TVm6BulhBXhJ+Xh, Jyci!]0b,,h~ǂ peYYȉf,g#c+ O³C q?VBx3cMz?J3&<\diPw|,ePÅɡx,)H53Q(sL-jdjNU+uZ;]3 Y*,)S*P i!|R!Z?ZV C SdLG圥p̩\ ]d;\ag9A(By(a[- -hIJE6IA o@B$JC g 13- DC`h:A @c@$0R韛a4'~)gd RL{Bv\403_@Nu"(43&;n-M VftLsZwvcm=*sƚ3ؤsRN\"Deb@a6PcB|hlBdXݕH v_UEG3"v&XP$D%4U R{tX(J8gDF{9$c͗4s~{eJ6T(TG ,I?'^DYX:s+ ciD *X»`i+(TMQ}4 J'PAYXh"@C!(N,JlwXĈy*c`v,<><[% 4f]cPbR0JU1\YiV2B,\7@wM?0*@TB _'+xmj)XYc?̫ހbԏ AXJV1b%c+NGǚX.T -ԬDc)1{ANGn3A)!(d [xf7Y,YM0 sstVpIm=x@n\?E埠QxU*Y[5z7ZBtU zE@`\W u`<( X?e&.c{ZlE[(\cA\bQ¹1KB/j"'JXz+TRHB+8(g*\ԏF. g,YjB2j>A!R *ԨNQP{rZN,Tŵޱ4,$P HY,p2BNǂX s3u>ּm VR͟7K=Pg< 1aXs*X:Xڕ46 ' bN,d,9 l$b*z6̝p)tXz~,Tbt>=X`Bb-yD!XX]Al1֯q̂"1 c,m`o9(@ܡ \cRVꟂR1+E C b.L[ 0TaL]X*ZʹR bcm,bX8fi YXJV)YRbYӕUwc`9>-%ff,C[xXW)?76  iITtE,P;T=MfF,S Ye m<[:"oGR ;,#:+ų!@Yꐠ%kE! ═Fa΁̫YfLb9d:s<ނ`h8tx*@9.zSZYZ=Lh|L؈?8jxǩHǨuG)uFj.=B @N$k/(n/gn+o)EPQq͇EJz#jM6iUfkY+3*_ɶ ,(ڎFW8`K=FWV0 VX&L, RoTR$'^/(@Θ [-f5F[9X(Ԉ"aG术ZP dA$!$`lt`59 Oq嵸D wȃ'#ybxK|0 RV\HmHm ji+\@lV+YIE9&&|YD8BZN3E8 ;W@Zօ3y:=['8!YgW޳qZgKφNJ>ջsy-һH. ^u~GC+s_m]9mC-'\+o] '\+ز3 m3Zֱ9arXcEhYگ* ;,V!OaV+UVJY;ZVYjkM9VjM7v@yK󤣣ִò-;ԑzGp\m k{Zk'a[r^{A%7.8/&'`YGng\ϕf7VsDnsFZ-IkՖ$[j {_PحrJK5 h]䠔[mXح_ZگG:zM+޲rDFzė|O- wm]uz3v֫l ako㢔6ˠ~!1= g&`@N{'XvL j՛ҍWA .rIm[ux+/_  ,` ,ͻh#? TCfER("Igrk 0X` 0X`@!{1-W/`uA:Ef=V_}f ,` ,`dʧs`qZ(Ba$X+u/o5` 0X` 0X`! 2gJ XT,,̃"ƺq[ߓ':G'ݍOG;^lbtD"e\FM-/.O`jgHgowsׯuʺ./Ů_>Jut]roH;33veF!o_7 t ]F,yzk2={Fn^_~hؗ ,`h@\b:"Ja "Uú:-ڶk;b``Lߚ6O"\ڕbߣg캬dRrrJ1T-z8G8ww׼~+Z}`tF+j )}^aFB .%fGQW˕~;vwȶ ;̂J:0z >ae5Opؗхme(.߽<=Zecd5Uڬ.VLP> 8mU>~zM#yaeg&z(Ɂ?Cߢz.e=@C ,` G 2eXݧdBTջW>UkrVE7OYvӅA=k]hLgf 댷}̙hcqg&zIkL ;" ܒ֑+DW& R/+ߚB/Aйݏ-y}b՝Vu#m{2hg7Q׏a 0X`T 2eQYˬo>U*zȍY+"KE׸Um'' ;5ԻH?OQOW'V4֩hԧPTSZZιk] jZn1-3=s,Zίr.k˜$l7Gtdri8vlLeϙsIٮ8_ Ǽہw]FZFERԇbU0 LJd#;fecVcJ&1=yNMhy}-Buh_m)@]mߺoڰ֔\pɵx{'s m Wl/V=)jqz{_cذ1cqzoR;3 +,` ,CY)A:X`a5X+DoGEuMɥ;StΠB\Phiڟ»4VPu^CRzH)!Mꖻwl$]]S] ޸ߩaV;_YWVOo|U/\^ݛ7H?X^4]UhBah9$TNU a&;zZ>sHOV=_r*>co6Q9.!^a`42S*3*d̢-"Ia^?ڝYvEY5x|DڛHاesyl}=W 0X` x-ȔBۦꩃVf;USݯz:ܡ3Eh$ӽ2uo];UP-DB t~> |W7TƨƮi6?s^d^p┅[6[~̠t×5!X,&47٫䋧2v%:^"G=x߮0JğQDXnj>{Ow=gbubVJϝp*{~-3 {h'JZİ{) 5`xRdĩH:=NhZч]jpK72ͫ'Tg'Sq ʒ 罭zj6~FZ٥'ew0qҷjO"hGhzbs-kyö ,` d"K9[F%w(!BXȃUE5xc`OoBl)[`T%RZoIvs ϿbS8Q[Biq]?+]?vyú?pIܭ9uR|*d8>(6y]ħٙ8%)ƙJcwRmuv*d]yIЍpM+E]GijeBK{\cM߰.QW.C#(fzK9;NsĻJuߟU[ARbF$aޓzY+D\BՔ߮:=p+Hő(4y&gh47)-.](.uwGyUqH3+?rj2'Q.\X{gntt44uk=8SdoPV7rйt~}Ύᱼt鉎OLV=x ZūZY|B׷Ne \f'&'[oȖ^ !Yry.okY#Ѷ|MSmX'aG%e"cm9os' ,` ,c@42YFu׋[в ,`ҫ,CX#^t94gwmtdJKS[⚞CI%}wGx|lP߾F֩' ޞASW ˕p ,` XhgXotħ,` ,` ,`@ K5@d,` ,` ,`@y+[uP}[JpKseYGZҬkc^I vgJhcX`3:-Vf{'Ț[}T*frgu Rl_{U/.em ^"Φt/'b5x%泄5 XFiz:ʥֆewl*5k['>dr洕E{6=$X(V}bPt6筺ڨldPH@Rr|tL#~)(/bgYv,ĐLH㫜 1"e=Wٹ)ٛ.cơ61\h1}N5~}ԯH[ƶeq`e< CS 7Z)riV*Or_.{e49(-Q]$t;%0ٙ5m FnMb:%²"R6#YRzp][jn޺15596>IJf0ܖ&@%V\R`wA&Yo]S`2㭈ʷO|s四NO[rKF˺׶=Jʊ茚FACC}TRZ9q,wRՁ$med텬YJ;w39t>:&hl()L}Hg(s" X,nx e* M}? K(¬vXZFjZ#ikdfvD6W4E94)[10[HVM.Sje45EsxHzu@ʗv쵁NFFG4jn"Q肆Wy|Ni%LQ(do.-/~ .2pT ,UF.FEֻ{|()}iBD{צ/}s%{j w$-?xW-(cì %{x8:;3>]N=U7WJh;2kCYe7G;([Mb bK"wyCI][N04_jM,2 x, n[*ϯ@VKIgr*huka XY\f ,Pz 8a*sa}L,׮( XX-mUqq^=73;o|@+\ױ; W"h ?@0E^4bS6X1DT;:N\1,,zK+a?_rG;9fdQj(t+/3$oIW &5FyX9^c$e7yE6 qP[7ugR6[n2{ئ:`-% [@t܁@xVnb˿X[[/˒M>h}~B*9*vP;֯YꔔgcCX-3Yenntw/㴌։Fy:qHXрg,`e`u])eu=s%RI|4Қ[ZНAUJDM--"|:%IғJ.qjNm(c-c'`NuvvH(36zHd}vZ.44E TI<\ hj$qzG\\) eI7X`-EeN(B2 :u%DD ՝<ߴRQ C mlkjoOv^~@ 練ERQM'ǒcd=W֊|'+^תX()*\X[>Lg`AH}s $Ky514<()`ޅ눗<('ue?TZTTMu10ިh+;7~^6ϚXX? ef)Nm'O Ύv)LGl͡> hX~Hxȓ綹LkNy]*>Vñ) -,ׁ'Ϟ$WRjEy@Ҿ>N.NLS+mc}.Tuyuvx=ƻ|%<6E!##$"ďݗ[;%I! i4?Wk3Bs,(@l=@t -ZWd*]ly(ɵ\Rxlf\JAa-'wivƹ|@ӑjUbX8eRF'C(*+l L"*=8xPev`-hhܛMyT9HMv:?>uЬ ' ,;`ݧ~.Ь`Z@,̃U\u =3B.Ήf@_6g$Ώ+aQIz2#n@T>ъBD>c$.7 ;jj]~"9+&Zix?)A@KVqGO;(h6!T4.ˮQnZNm0% ^-=mm=Tf+I>#"he]͒~QH x[9Hk& IwszL^îI^}+V|;gİ4܉MadI_BmҬ0L9o3ό\!d"qNrX|vYyi~R|R\Drh2@v&u_mËT^_3ƢPJI~sI@!+I{UdgߵVI{9+꼪{rPQTwؼa` Z޾7J#bdoO/7,߫1$<8K)h*I/7Z,{w@O>@tt1IҖl*08A!Xћz1F2Tay]^ љNv#rGt-"(X!9N)!!yT2-n;d1K,v~nyC%}o.[I3q1^q+9RYx־^8gUgatSUDOiHڵプn)!&G<Dbء=fn%\ظL`3.ៈ-lYj;=l3N>yqYy1gl8zXI6_%#Z]Y i[k_9gq c 8߷ ]>#m,YAOXKfښ;vRKU-*ʉwrEw>mfZg z#P;9=L%qғxMyU4xbUPQ4Ղ~)io]u&G;[}uStI{~#`dsSzD,?C &W g! ljNGbb k),(7k9$DZsv?|p#%|}Eygv,Tvi$Uy>n ^g L|^#sClZj~٣o}׿HAύ>v_[Wߖg־电k M*JDU[^m,L%+81^Kgs闬"y r#ʉ*maOW{֮܅.9\-,]_LHP, ѡC}bNm&-?/^ st:樓>Q[Vk\Io'D}Yv4:;C;֟I\<Xʰ`S@0g:XW%59jf;#,I6֤)d8T6:sc[ݣ𸴤蒶1(sB *Tz_svtDIL~Jn݇fњRNV]PV*5v5k/cfۓϿ|Uo}rVkGBw/oUj'zP{ƪ=?x?+S@u<{Jŝ Í[4pN:qgsWO[a[/='~շ6:Qt+uþs{i[|vѠj͔^~4]_<%R$3WD\-/??\ >߿|8/,~oP)=9-&bDjXV\V RZ}7ǟy׷AV7(b~$,5z.}HD =X`-˕`hi/- Xz>ovo8`uX|y렷7ʫ`) =(L0ZeRT}Yc/,w_ w *mjӓ&V`tbHN%Ƈjk#U SݽךrͩkXo:~NWUI;.mjC1Ţ2[T^ฦ늸uX'j^2;g^\˯/|}]Zg1^_{D?u&*:c3+(s̕NĒФZ˨* ;.f1~ #Oxe^6BDe:V_u.);/UTTLnb|u\shXRU'vѼ$i,]*,??ԟ׈Efҝ|߀%moqkQ*,ce9W XYiǭmSDf) (""~O?7;\SO_|Ӈ8l;KVa뺍9,y"~kz^x/~_Uoh{}^x!!(@FU4Ե!j 2 No;X>^'5\exEWLb卫]1d7UP*M>╋6?/?/^ts3t{ә* regMj\g6ڄN9fE "Otn5\.UVJZañ1]I*/JN]2+Jɼ xr&K*l*bHg."c,>ϮnIsSVZjQ9 =*3D}}`5P}:; HM74\-TpʼZ[=W)}-1:%; ^]{?ǻ74ՃU'cz(Q^KnǖXHJϝ4vΫ}jY"/::C6lQ5-ڲxd1)`AMm_~~C&Y4%kbmU%o;{Fv^O ϧ7 c0#dCX=Y/FAͶto`Jj_fnZJ眣uOo6ܷo/c2ݧ[fErT9X$zuEߵK"j =FSbzn[UYGMƎ(=0SFl2(Ɩ5_ܘt]%yeMXM&hꜾ<:: 7?sJZ KA.̪@5x],l5܄w|[i}MsjӞōFq][|y/Q*Yf0&_u?61euz.n pˋ_XE{4/ K R\!綾n=L&B7rm?ly1X(tp'B1^Pj$7=8-< m>dE'`1z{ ܯ6YF7#2}~ʄֽa7V`](ˤ>!l ܼBOoy~qo7ĒŞE8$pד;9 7HҎQRfwXў{k͆ݧo *.%+Hw=XDa㵷7l{}ᄉvCF}FEadW\R:]Co/,3)¡cnI-~{υril²Kx Aνu)umca>l4 Cx%r 2^guPJ6SuW:;}?a/ ܋RH \gN3zSb`J"a=`WWNpZ{5BgwBMu-4iEܶ]/Iⶱ+⦴qt7zJ"51+S+ۮDȬhl%je1ɄaT,@PZnu"gVro]-\К?>MU =>6 )aRyV"N!h ?#Q#K?&+?dMwEF0kB>i5q(pk7YݻYP{/$X\\|pF,|GG "-et|^\Gw=tgZ]w>FV_A{9T[(ˣ1n^X}j݆}1 h\տ=?76m;v#.h{Bѽ/VBة19-okP&78%dz:n0-,:}=O x8joFiY90m?oqB 8dv{y:gz %fQG-=k=2.]"iԚ}v9pBe3ٞGMDI'=BQ9;w%Urd^.qvo>j**:eWڌ}hNPнz)=߰KdBĞXY\ |.Bَh*o;^YX M_Ҡ#{_C־ 1b N>~q}O0πy>_t_iuƓujZyZj@Ui[@ .ώ/ܽ"U1{nu_D%4)`ezF5-݂FqyQA {K3XwK<ϸf3Ku$ni'#9Lv V回4u I`NaLwBv Rʒls,a}Xl ncY&hW+/7K"S/({M"H2^n$K4 yE(hIq6x2ܾqe Fo<%*TT)KX%Q=hQzaJ&5+*{=n}⬎ FYDϗ|lʂRxi,;73g K8WsoNQ47ΞHlml(V[}C(uY{O'E!&Y*,)âP#k/sNg:?rM~U_KklvϮٹ$*츺hKYyC _A]Uu=}6Wz|X;+ LX x>$z+6d5*tNs"7&vZt-_~}Nǔ]v7}` ttGenyƁ.YyFn,x ,?l@*-H>3"$gFk)-7):BwY҂"F8Rg#Cc\Pw:;+fob-kiUtthׯކ aepe)zSf5L2U\]]l]"SuK߱/D &VuCG5eInh^r/jv!X g}]%j# zʹ`7[090YCfWкhv٘kgɐ_)9b\*ǯX_sl169V4]ecCaa% xqMu!bw:ԘHP/C~UI$^}P,59vt[ɻbHU!&&#)# vM8Lz4՟xSv=m8C/-zq1K ɩVi1 dE{\WQZFv_ScIMU5o fY[8O Rk+[/*>IsK#W ?)fioM]3>ZVo;VY\G\`R k@T<'N י*/ӀS`=tG÷F&?j-zn^;}ӑ[=C=6,?~{x;rkl^YFoO] Ѷã7U.j4Q좫-mYLjJV*^%4x.ÑTz]?ddU_ jS,v'EՁyzYui{aglٗUWBһ$U pobX`I 2!B!+- cc ,` ,`dJ#3I!B ` e ,` ,`dJs YjGM?߰sK{UźD9XXwFod ,` ,ҫYX.Xs=XIJ+JCw 2X` 0X` XLJRAjV6"<jO 2X` 0X` XL-X, Df ,` ,`d, ҃WѪ 2X` 0X` XLK_}̲e `aTayA ,` ,`Z `!QsڻǪضt2Ye ,`U \~:b-Q]ԛ4Kmz_ĩk7d W[,5=[)3+I(N6U`Xk9`@֝;~cx,`HNN.++#`9mˠu>sʃe^#X'9'9YZX),`a,p$|Ǘ_~?XK=[[`W7.qjiM\= 3X`an-XD_kX}-8 k<,`fn.aoX'`J׃uX1,`l~_{(] 4vORϢJ&׼6Tq?B>`BUXSSSu >fff;MO3"< k Vʂ@_s0OcL垢pWdYivp`9XSʄ(̜+W9_=xL_>_)dn띯am٦Jtf Î-d,_'Vnݲa=;㨹=nmq&et(>_yk) -dM]TP ٜ;xȴ f첖%}{uk``cGQQȢ_˳uY]aZA|_h:=ZNqE~6ˣNlQ`Ypv 5pM$kWzt=W]U|z \]RɖaIE,B~eߓefbUܪzu&ܩajw/y:Qa7ڻʜ>yU Zvvfiw3sb C{w%Q/}SLֽfzDɪ_>obgem2kKaYoǥaM_  XA,LugIsNfo\|,L®>ZebCW3ݿRȎ7k^[i ]cn<2اM_>1$vxe>&hMMw@LZevz%v^{XGm.`h4iղHl>SϭoSX]]X׮L΁I% }dU= 0P@qN)m9(g7O~̇?P}xdzl@}w^ Zx/dӾ0\XjEM3<% X<%M=)\ `{m:^{*!Wa#Z:C;fA<ѸT phV-~tmyW5z\c|dNBFhHݽ^aGd ޾;3>{WX_犐ƖF"QFF|.gQI$2sU_~K/tL pؒ˟kknjv;R~u3,{vL>0v&l5x`Vğ+ӽ|t}WYwUUbpLRۗ{x&ޫڻ|K %Sk;?[M争Ͼm/?]0(dՒ(L&Wpʋw(YCPh w_m` ;sh/{$ t^xkJW]{[u~ӽb8m`Om 4~!1:tPvoWSAnY |WK/XYE%g(yٙ>Fڲ֯|wx5605+_+N([FM HdOvj{w8ȥ4,wt%T}7awzEUey[p4u>o_~{RwѭF4v}`I1uM}?7rII[CKC&@f%d0nuz`!z!!+2 1ڦ"#gVeyEy0s2?SXq6dZ|IA3(vLq5m^K"G٧^~q Wj+t;c2ߐZpx>?0;;ސs"w4;KK.hiX˩.V[Ov;3J\NCuo~[79 Rjd`vX,TWmIQy f^QC[7 zלNv?.q316+&%yIVe#5֧,SA>V]*w   `^5R*GB9}W0py\lcx `eu>eL fw||klmq\" M uxa߆5r̞7>> v,F&'f|ۀ>,lTF '.s2C ᥙ vSF׫T! 56ԝۿ*6ˋ/mmDXgu&T#GtzCFeu#r֏Zfr0)AiFj{|7Ɗ1<{5t05dTyu5;Fw>) MtC}HR8Ic|R!›RrЁ5`Ćk#G6!Fo:F唀DW~sWǒ]=l\sg_kj)WI ҧXZ5flW_ܼ2ze-$f7gƬ鯿n~lo5]p%xwtx7;o bsn}fxg_ZLq3A"[=! 27z\Yoߺy+ړ2N|u98'7_3F8V^CY\7^'|9W]33W|v;Ͷ\v0ɊzԿefMoLgqaxZЍH}3.5FXf/(h77>V g|:v8=.7ozwՆs^3XkU8f8oDʻSA'Kln5=}.uL5eZa[HnHhEQOjXBviP(vرB8uT€e>}dUXNۭ=̝\ #Jp676ݑ!Tq҃5PhaW1O)c2gv8.vLK󰈤b_WeR^ ]yʕaX(2re,]78<2ip&&'GFG6 =aGm L K&{"/X࢑d"}Cxg zkdT[^;ͯgEߴ) AcqnKzRƋLեxf?ݑS%iĄŴMݘaInPJrt¿qY )v.8/"ę`Moجyٚ35uNkAx%՞aIqm2= U?>syrH^nyWu訵YutN~8$/'?1=L ,T`5}̄5J7|#^v[ ^(7WY7<Z/'rz[OLtsԍn)x4ڮ4ftɢ-,ʤW Tǥ n|YQE=Ta%֔{f{OW͢?}.;>\Mu.?__k)ywPF M ˍBűY{w;ت| -MQO|k(3525ˏ ˬk_N1w*7Ԅ bsM-I݈˝2|gnB=>,km.w׍Qa`,Ⱦ~r㝝o޽{wG+_^:`Sn ^{>/c$ѫ.4QyAtjKJ,Dؙyڭ+ G%1{H_GAg\$:~qЮi}{B/`ݽU!P .Ω{,mVf፵TF5vO5x:\BK#kD3;.,cR'y_^=*>ĈfMO)Yy xT\( JdA+.7IAڣ3{!{1ztpF[t+#߻^rܬ`a9sYnfn{|e9%uCWtSߤ^}QyEٳᓳ#&G2>_~bz>30Fߨ q;6r>QBI:k Nv_C56q ׹+<9}[+F X_޾<4n^w?e8wj7w lHmu)Cժ+Z{薱l=$]p$7Yo}zù YL|6I>&`ݓac|'$hT*{6v` ݸٔϽoÌ3E2Y@̧XiJzz =S`u33}U,Mui=!cG*Fё#VzkP灅I_igz@o` ȩ ; w.+l}}kGG5#b4!L׫f\lpmm^F _U'=c =mm}+I@`ŇT (Q[A hh4'[Y<:t< :pfzfF @>!TB}v1pا,r} jjH4KfV :* M-K,d0Ȣj~z1ӝz)q:Q都^2nLB] n]b#80%AECE/nl>2- *k[5 yCyjƖ]ˠݰLǔL`@`ê~C`M-w%-.-[&2W b,nA?+ߝ /hlbKхUmc,yu(dvt>K̞N ` 1h1XG]celk%N WVxCɉi0 2kB,qu5Ix/L "%O7cݽ,loi3A*98yxX`&'WWHumD"uRSLrgry>k6dOu,RgmMM75 j 61 - XT_OdA"jq,zQHK@c-WxgWRiE2Eΰo8 WNj{s}MSYs`D`s 1"9Ȁ욘GhVf#xer ͎u66䋖% $X}VW$AOt= /X_aIdumu=6>YKF'Iy>b|^zdhh.2SR|ow}cLS =ʜ vV"xZSn9zj|767[M5Le6n @`9)#ỿ`!3sq?^ތx'=]=d*pۣ"“M#7cG.L[ˑQ>f72Ve|v%Mۇ-m Ν1+,(,6W:g [*m,2pL8Da&^8`=He[M_ ڌ@3zXocoXT*5.>>1)i|Eاa0X`ym#ݗÞbn- F:vl?`DaXOf 2z$.ŹA,o,k``;(8}!FKoz. <4Ƿ"^`>nz'σ1p珻˼ý_Pcj! ˆvyVyMC3'Rn}X=9e!i*ؐ%_0AjL 7 ]0ڂ708۹>+8SѤ]hiUo8cXkHx:L`ɹNplXzͺ&ЂV)$ |o9"mY& Ubax}6,X@]Y l~U^UCSD|W `uv{ H&vܛwDxy;cM,ӸT϶>˺N]l, Zzɚ ؽc}gzC  PeQeU%'Hc--N8w˂?9 < H HxA!YfiV]V ҘQMQuVEP6<{Poll;W`JBn$ @$ |lRӲBc~ X8t+7sIc5խ.ݦ,p󚓓4Vˇ82'~sma H H`@TVV,ckg ,~mCEXWoԴõeS`WxI`Q1&a0///Є m$ @L,}ϋDy|oǀmc]3m3iskٰ`x@vG,{@~uu`F(>  H֋ X!:Xqvpx g]rmm-X H>rzq#/;z/m ǭ;Ն7B`0$y {AN$ @F,6 `Xi]fs3r7W6L<[w@>w5Pܔm#"c[Y|/)6/@.ql.yD9/I Fsy2 87 7it)2`Z]w9{>gnZ_VŠtuY0'C*dT"}b}W,FCxBӖL7' WW$+/XdgMW*],-,,IVѝWW@_4+ @$ j>^0,--aC i8KsKK UL\uNqI`-vZ4ȅ(VLD2 j" öc@dF*yp??{]^P" Fn }yŹD# 5$xR#7@}!%f]ee}NdvKt DSd#UӋ}yqqޚ61  H_ CpD^p\Y`P:` `90ra]l|T6zNAʉXdmc4t d4MmT&BgOP4tq #7š_PgVlOdJ'!+A4茞Te\wBd0Ԥ8Yf2kDɳxBYeEjj2ˌ ;$ tn^:E\27QbpgE.l%UCOcE\mk?uH$vH0 Dk(``kW2*e.wv`'-Xgwpz}sa|Y[ݻ^|vM_jjˣS { !-F :cQ>J{h2纄GVVGHWk~ \q|4.f5MM#16B2= KXZzn^ rJ"5ki>*q;}<pYYץFԍBqE\]Btz?t^;/O4#;>=M Ca H>6Ɩ6"l,w89X@`M'X-+;;Lܷ1|) v{[f)5%e;yVYs7_/Og :;;(صG#O6q*~'ӽ|_ŧ:% lJFǺlܫqi_*5%{>z;`0"1{tvu%i\q9vuuvvz,,^csش|Z݋7 2BM?@R@ W__bbbMK <_&*&֞A+9 X@|nCLϳwmJ O|!$z8==_}rR;s= 8zw>.r2D.j4~2vѿvۥ$aHKOFhwImy[W91~oA"`Re^K"{駟Wb߱j")$42޷!FA1PU+>C|8NI{c&s:),4!)дdM`aPtΫYgoL_5Ҏ&] FDمQI0?NboΡj}F/'s=#{TB$~kjjI4??m x&['2urlҫ|4 ,:?jBKH[ߙkwO%DG74 ۆ|Ej/ вi$lj-M7U'},ny76=T:b{޻R882[~EJfӫC`}-.U+\CzдQ`ۜәpN*Q}yh_AVjuoX 6\!Jsb^]Uf 8z ; y5Z၆!iWs~8 YMG=VI>g@QK(_3=LqpمR[6nMwwB0u nӔ:HXUBky\f Hx{0{IJ'tz4#]`h4l \W.^Y8-GcʥL3[rKT<]FIc?I!REk=KrI9^nUȥ_~ع3gxYD.=:䜝u=?9sG޹t \?ӧ~'/D@Pi!ߓ3V}oܸӷ'x0{~} DBgӏbXE{ql-ޅ7ՌzX`:&њڑi ׯ^9y6ɝ_`[%[W8Ѥ-\w5ͣ;ٳ[3lM0G' 1! %fn=]SҳsE'П竮pM! KQQcJD<=Cм)0gH &dVON`e$8-y'$o"C`lh\t/?-ij mMF_} auتچYA\/rP#g :g0Mjn nM4=H;MmC{շtHľꚚ޶zk`hAihn#D;y9c ]DZeR9}lxo-PVbс.9B[8"e)~{zJȌ%2'^Μ__vY6|K,i@ tS?dtMrk&="``,J1`),͵;hL`.ћ_Ng?W 2,sF۳ҹr^g\,rlV VF H<_"CpaS`Rh}%A;xIYYxKQQPr6eJyT?’@lMbS퓭^$aȕ0$ @$`c`&e wqOMrUOu#oVN`*`R{  H@` /nX=$pWo5N0BCpCɛ, 0U+XHφŀ H"L`e c,Xv鄱!pV#=2@X@`M ?,XЂ;4 Hx`e &33㱽dAA&j1cz`{}r6 ̍ LQzykD~ࣼԚB' m @$ @o6k*B I`!!8P 7nY Cq}CQ?萔 $Xo H wXB 6v吜G$Cq`Z&:SIdrHc  >b$ @$HȉYGL\& T0=eptS`u1RsS2]܀Ū 90@$ @$b8_rE#*Gc-XLv&q$0RHwLvp @$ @&z '2c1 gq*4V2BuN͂k[߿:V H JXN)Y`{E0#7'M@d3}bz& @$ 0園U>F!aV&ܢaJR16,XK|.sne ~Сza$ @;K`]`eWTp`k׵ltV]^` տkb~0NβmX0H H j px*uE Qnis`W##s↪ҚdAal^xkc]Jii_UgUMM]hJmM456g," *H3:2Wmkn㓙gd.623bv / -g|b;v7+% gjjvmQЖgXhB 9}k {I+ā];$ @$Kjv-Q<2GW*&n25CuzPS ٵ\~`Wh+wPͰ;QYqsW~T ha-qFmsPe*MBԭRAbV}ǿVJ7Pca;\J(Õ 0;R))U"9+<OYϑZ;G8OAeX瓙@`U0;rcSf%`eЫiv}:@䯂3-:CH[ͨItuv$Pztmf#~ptMԖZ#Br=yhzW{5,$ @$ &XHuu6'`Fgy,XE!#;Z[C]GG[[B+g~;ny5օ];p]@JR}>PTztê#E[7LKuqQО3tt"P(쮊b H-A"p:!r?E4U6.ZhkhŰO,'̭\!z↺CowmpFYK/2%U g5cLFHwUFkz:Pɞ {}m-49^7Ђ{/ HxG VzN$r!̂u0Of_1呑1]cA'ѹ+"Vr ,{}.buX,d1i(~l܇\"#MX|ϔhmC ? >4xeQs0 *Yѫ(5"Qmf& :i|T~~  @$ UrKiMƆ +pt2؞r e*?quf>cp 5 HxlT !̂V$]BQ6 ^zz;,/$ @$lVT-QKen 1G7㙹9DgΗ HL`3Lph-Xcaqz  H `p0%'Saqz/ HL`yv28 ,pDž3 68zxޙF9a$ @$ 7d+#mMCkxi ,09 IaA!H Hmؘ~k9<3ٳ^o0H HurNͮyԇ`g rf\Na58cޘ|$ @$nVdRI p|8/_wiKt8NfFBn4,$ @$ 0u?$vo| L+G_܌sTڟJ/R ]oLX>H Hx7 q?z7 HO/"Ҡl\XjH Hx;#>G*Co}`$ @$xL< aa!H Hx5 HO/$~CgRC$ @[!M`U(sЄ`V4B$ @G `!H H' /j ZփŃ H wXdBA$ @L`C`‚Ռ,"38}n`XvH Hxd+*g' ֛o#$ @$ 6V,XwSC$ @B w%`9 H H!lT0848$ @$ ~R&:_ѨS3" o$ @$ |80u/8V=c3(>5 H 7A@&73 "n&Z @$ @ UTM~I[,X2 ڰ$ @$FlFfM}ِlg0Di $ @$ |PVֿ>>/X,0D-XT@$ @%!߽q6# 0uH H`nP/rST`K-x$ ?4>$ @$ j+,=cWJH9XP`j0=H HV` 4oKP`} M @$ @L`D~Q !ׅ @$ @"9܀X`0<P`}M @$ @,$u7!X@t!H H% ; N57EO b$ @$ p F C7 =L H>TӠw F_[Q(> H @`]`E|wa9X@` @& @$ @, "BUလ Ch`;$ @$ z+ o "0(^=w"$ @$ | 6}S'X8'V  H^-98 ևzaj$ @$* C G`5!H HxB`oZzuaJ$ @$xF,8$ @$ uo>tݶ!:[T2 $ @$ @ -*I`2j E-X7!I0($ @$ lXP` @$ @+ TeЁY~HDs0@{E`*;,,$ @1r0D)2D!B ~(XMCeee $  XA뼓 `H$oT*}cy=F0o0H`mFg64 H53)vW!J`o4›ٹ*C.4YXކv H WN + ;C34 @$qbx333o/fgg9 49X N+"Do)VWWߘ ZL\^X,~ / X@?1 . c+_,>b"dVՎ v@P`}]V K{zq啴HSJ0 } b>k_ U663flݷU}jkj9izu~c+կH?+i|fF7g]f"sq9}O+Ӡ0zJJN( }[amTkl|qKNo ?-ɣfY_F^|cis{W0V8kk8DYpvID– )# hyM ѸJke̅e/~whKM6E$ī/zsʹF$6,ou^d~Alg1yުݺNwxPJk|\2&ʓMn MyWϡȟH y rq Ϸё쑐+i^K?]P6.#}5!UWAb{$W nM@PٕW<ĶD)׍듳,HGL LjW{]7=_?77/w?a37˖*fQXط=|3+dkEH4`soCg||&bl7l Z<1!|f!~':~Ck^%`NXi00oM<&!h,'MiCCsgw?3*]R;=,,//  y]|In$0rΎz{5'W%SC[UՆ[YfbN̮$[\tgKx{N׍SXD\:H iS3㒀6s%ӬI20;!y%c9nQ-m4nZ4OH4%9DKN`%|''VW++kFopAxHBGmmmX4N N[teZ%$$$i#aU4|$Gj  VVV۾Z vFnїGp-k XY5. zyhƣw޸ә3|h[g?f,ћ#'9d_)y_R))2灁 GtUҕ$DNNSZ5U|tC8T`n"WWu.gf&?PTz5<~޵ ;9:B޹{SI}uq!ٗ~]>MHQBn*ZgNy+BHo?P3 j פҮZ*@w5h6pP ԑ،5[骪p'O 0^֫ϩ.Fg4 yt280s*>R9(Z-WV,h^>]Q;{}ՕA.rn:Et!x@!-`aݕgtO#Mn:iف7N:VPz9_cqQٯ#:_F_F_Mn@͍wtP.) &x!JLԘUڟӗk]00 ^RȥL?G8}ZޕLmT83VٝF>0ʥBR:Rq6]rZ@ q*&RzIצI~W/+tɸJi X / 3b8TϠ!x)$WKi#ő4wTuxx9q]o|YļT,yCN3Z+>0<$^iȏ)牖K3i1y3K#jd(X^@;D4jSEɻdOGZ7^:jV5)%{a'1i-6&V+3 cgc':sF~gO\RT˟|{Ea;cf$Xja+h#5/߭|\CZÄ-.e;Y 7CQ3oǩr{7AZX&`L]c#Bgu{:W.NQ'n zAeH,Yhh+y`"ST ٱl}a2L vo?=>X@]GGGx؂OXs!BT`}+'Ēe k_00Ne$vЌkE@`aѰCpׯ;d[8~զuRh}v8呂/}վ4+iai2XX\ ,lprHwm"<7$<.nquBoQ8^]ivv~eJ|^Ő,M="Fпg5 rǼHx+W ն#$t?jj57'z9^kEQ`~vGX-7D'Ssx_Qp* .&ր}B~S*Erq@-2 jH;ZP|kXʍUJX̜DR S=<:(?g*%y5.033؅㕩1UM%XJ'Bz ue[M/9kqR&Ahs::k8#$^uL\΍k˚$)ļXԸ*d% ,s͖u5>,+lK n8]ة˶2YϩsTlXgN#jA刁R )!!-϶\J]Teck]~.tX wKZ#Te D[\ga׷<4F٠~T;ۢ 5Ԇ9Y jRRSLk7%U^y\`_zSNH>i6_¯ %ReoQ]kcE~E)dlȐ2N k)y*UQ<%c[V ML\dzI[O1z+U:f7y8ΩSײ% SWG{DDDfff?XOzē{pʺsl3pPTu_?>1A{psJ0I=C` ɕ淝l i@w.>9{T|ӣR㢙1ẺX MP}02Ge/,O`0q![thN430 N$)y7Peb {QX}QZØGq`ܕ#ri%x9A AL\4~9 }g20CR?647=iKK'8/ lbҁǡm8|yrq܊D8\7mP2CBJH zC, UfTO&dlcMf :[ ]fD:( |a.xW8wBzba}\`xlJWW,G;Qۤ.p!!, 澔;㫣~Z)+´@`\̲+SKieXPX$a_MoDP4fݣ]z{ }spuY<]dg\6gdXlވ#Ѻ |}Q6Ut@z[ y>u3JJ(Sf Z R,dX uf@lYsڊX!da30"70Fu)ΙC|, IJ&I-i!Iq\K b <.wM=jZzc\0O i2,h6d?Jw8]8 ~i~bǚt}\bRԂh7rtG XmbUCG)qD2זܰ.{HG Q}{A7D5VHW3.$ՁShËjUcRЫmx}hu5+;[}Jog#t@gCx{[cݽt SHEWNu,@T;RA+%m{|bޞlZ݌Lٌz!8!Emyӳǯ$V(1. ϱiWx ɏXkBY) 0Jc1( 4>U)%UG%hukJy[ kҾG꾅XbP_Ӊ7Uz>~W5ាESr/]Z"IOO///ojjjooF,0i%h_ ,li,6C}Q}a]Fp>)!foiLslYjFRB"1m)39PMՈP%%嫇?; ݨO: mnwh㿌eh՟f4<愽}|>m,00 da\E3YK |3PGfD" k;"Wf/SVSWJ%h ׵kh vN!gfM1]?aY>d/pوdOzSNSr|4TUo5yAu<ׇXͱir2}SJ3+BB܌l=]I=[1Kb]jk;mf=tl:vwcM,˄),ܺbl.`0h:Itna(E=IzFLiM6GNXgfFz6m/@FmFsux^8"1d8, d嗘o 2L|| LL) CAEͷ ?zqDر*7@2lQ塭PA `It uffs卖 >9]s.8c̢ zr_Xxdf@AXOp!zkv{mUd`Eh߆`gUGnns:y¾ΣP3Ʈ rh *;[e\w²ne/0z#= pS<'凂,UUji((fѠWki`DX:Da9Fjlщ@ӌPf(h 3Ô-\`Vv-ZlhF@NqI9.;YNU*]Iwqam0֪9]g8XuFEbCKS&]]Ǐ[i k:DS xӄ ơ8p"-⩫Ah,0.:&6qX]cFYK62&/2 ܺ+( ۦIC 6j['"Rnkߜ"+akZ:mpf',v!)6 #)6C?~Z4;^k[3.pwO p i-n(ͫorKm#!ȶWbh/0I\b_XB>Α[ =3G~zԴm5@1yQBF>;2q|faTꯩ\O΁NQP&{ Нsʪ ,NA¯yjžéL6VWQt ˕͛١}N[+4KisH7`#5pr^0^-EZpK/ľx:"{Urǫ4@PRr{'; vB乡T+=uG֏6h`6^m[{9r+G(CV\7\t؍(ݩ~9-n$`dwN3ܱɷ8{iv#Ao-w}=1Kn?a9ީ#ԫ*%P[~z%.]O\t,`o΁)hL"ޛcyq>Aпն1yyHW- aBw4Z7 O@`Eik?7(~E4 RCi5̉D ;9by!Gb5 OA4rfז^]B 9/ #$70kxl&6[jz tM{>tE%,>Y-X4%yĚJ/ 17ە献a\ɡpc/ l#433WQ+͞8ྡl^{nK!zHהDȠz52_S9_:Y˄CCSpύ"j#MNxc"*fW*/d&7w% $ց/;xo|{Q)Y=ѕ}c7GőMEg^Ro?ɂ<0iVj\cs`7*P.YIIDATtԃ)Ab(=߄=,~8`찿!M{DdWJ鉎@~.^㥾@?GnwȶY5[^iOrʱRbv?o,F^P˷CXk#ͯ3k2E{UX[u'UETU4ET9{wGe6O566)y<>J${6E; ,0J(Kk\ K! $ '&]bmBe/a^TTNS]"  K˨@DH @. .2v^`@Ds!6.?ޭ/*T0@\Yo5}!]qy6,XrW\9Ywx=T(FR/* K٥flKy3ՓceVh~:&Y_L@"M6[V8Eiq[Y CsưUPtyV,xM0ڜш[ܽQR&N#ĩU(%36Z,? D,aMx"[b5&ǤGo@\Z-1XʍHr:]c["<)? ?DE [~*ؘr$ߪ *~:jRMZg.slL^cӡ+..aI`9NcM~y<;rWS昄h÷tNG`cQ/@*/Կ"PG~w xg7gzwȞwv`id_cmܰaWftjZ55 J@PpݺHs *gQW\tÓrd*N*)Y9vj! /fKAp _`2ګ3ː^ WRqd_0R>ܷ;/XsspSSѾ>YoA` ,pxrK|s_BE`kch$ *V;4nll~9))(rVHmtwI 5|D!XI j[5J%2EO~%yGy] raG$$hQx^[c3L庆}HLR5q }#c &("TI e}vtcŶY9OԸ`P=.ygt;Fnus܉*9rEUXeL`Rk7DsAbL=}j*T`n6-}~uPtRckm#:))xiJgPh|tޕjfn?}0ũJ燏[wURmpW_hvo(toCvP{DZ qnN֬kqZT A8>Vvi=3k :A 'G 9u'$%zyEs[SH$%gSh =9b^M]/D]e,(^<P CbjXƫ|S^1l}kjIJ6#qK W9bCXeCpaO:34g7!/Cl_dd bfV!EFF<8~,uqmHk)3f>I+juKIZ%B h0w?2dc^K !!IE}RgCuR9 #=YyhVea~2'gb\n+$\:BqjEAZlsqn⭈t\A_ɳӑ=@l4moGmCYK0Ք  6VF5fvh Fc3Ǟ VW=kFEtv(m9ڑ`Q##9(]2}[KSᾲÆ \WArii "*KJ rrs332RҒSR Y>5"~UU`ߟz_x!+I?*,0N$ )(L 6f>fyzcX ͟w~/2l;kG۽YbUgߠwhP>_n-MqO΃M3I!,&צ ͤ,]pLU t-B]s1t]}Q$bֻJ+׽:IpCMҹ%±C>ٳgg/ZV|w]c2!',OHŜGٮ={|o}r='tq$M l_Jkq>ռ27Zf_5dGT(검Asf~%`Z- KWܓA]U-<d994cr1y. 'Íσ:e|¼?^$}<#~lBazX$Q9 kL818NإJWXm)4D H2C :DGnhU#4Ĩ5(\PLk{~޽_~Ӻ~}9HW0dIWS#'~ٷi0ʰ7mͶxDke^GGoW1`1>0O)ֺt>E3Y珿}>ٽ2TuiNṕ6 Շe90iz9.2tե|fY=`Ϫd5AaM/l H;@*z'd<,Zt󂥑$-l)%(DnSx#OtXH7?o>6bEا 'JΆb:j7łJ9/s௟ݘ , `T>whNNr* ψtmOO~L?=ݻg&/?_o)*6Wݻ?#R3#]YmI8.Pog{25= >oO(5-.te=tO'fbX`b(0} d *`/0b} < 6֒2hfyf9k)Q}\sjkkfnvO&ac8!"!E0CK1DR@ǘ` boZ@FK"IY|M(2=*,O,5'z$ؔ8dmLJ%8#Ldj S`K2?X?:``+4EOw$ah}]c\xӚpQ᨜?L,3vCjT7 Y^2l`g6^#C@lXB؜v:G9c-}fήhĸP|˯jYF5n8cnpxYz+膾_*W-FA//+k2hyvemkᡮV؇L7ȊjgDx+K{>XUoΥu<2D@xy)>n\ھ_]I_)ᴹKF#djVR ؍Y:p>r6?3[{dQ]s{/Ow;C-[M\ 5 ^/?'araz*+ U>8;7mk|ryt# Vt)Bڭ6## myaz.^\bm^Hk\[/l:1epʜf CS#f"A,,~{d s^8MťGyj:p+,}*XϗEZ:&dX¹[^1 `SvT}A)իqL+)wHd䜤q8=g H!aǧԗe0m&8\V rsKʋ^"ٵf{MAzz)_Tg X>]&0' }̍6syeI\QqQuEE!rycxziwcedQnu?\jEȩI>2| $U52"!)r)ȵB0fyҋ!R^rTIpNfb }|Z_iaAuUUW͌B0TYPTTڄ EqGJ–Զo c]Nd4=S1 {̪ɶ数d9fsu1r)*Z\X cr+8h|QNu+iR#c1|Y32g5yAzm&qr [bHu vvIIMyya/ R[EkB D?V䑐!rKzGYe:!l` 7 KZ^::5r&5۩SȍBmxܜS^V]RXTuc3G[o.d,v&*k-Hod9XK/ e&.CKXRӼMլ ^]v:<Ո/4U "tNjŽB h5/n PנxK*6$e[,uCnr 5&72ͮjD,֩PC^, Z*mv_4ݶܘ5܌D,i#-,Nʪhj,+o/[DO-iUĴYVeTF XFKV$ ^]6jVFn̬!q$JPO[Z~Yn52kn@ؓCji5wۺq4mtnjqFvN[!jrœ.)͍s:qξ, 7A .:+@ܲVx9:z^m@N rx b{ ;gF&B<004)`45֕s=H\F[u07@ N2m\\6uvPփkj!9R$ݼIDg-ށQ51Z[Q?3EҚˑ A C`p$Eye՝T`#㌵wtt 8{F6t'ȸRJNcCSI4.U]%9sF!>&&9Te9i$ Ó Zܻx*5_z)auIbx DZ8۟LMOV;n 4bH >.(ob]h\ 05P"&߽mStI`*#f2$\$J9=6imi5=VghUOUAYT)IG7ЗyN ijzLZR;ee]чَ&q5; E$oWnwX6Țt3Q|d[XB=0H>h/+!9X@`9>_`w_QEI&Xq,#X\9_fϽ7jod P[VukUCBBC&dS/iڙjz("<.~XuM쓷`ݾJ({ ##)>EvɯŶ^(o>&7npmP 6=Vy Vc]D㍤ld4hNsW_O.,coU|Ͽbuݐ^|[~׏Ч}AN yw 0}^g󧅄G]Fb'졲EfP`}BX9H^)XXٜ ,GOc1ɝHcj%ur /y+up /K)W9 g8`iU|+gs aNe{SBzc)’`s@L?At7SJ5cu V͏#` F<0 Vo:y%vŝ]s;&Z<,G9HÛdM1MCkGU`62gDWHNRF#uB8=Qr9O8ͨ t ,N&̻wX*se9:o` Fy`X:3EcLqbjEW fd[`k&"sMS*J3Hh'/..usDO٣kQ0YWC`;{LvoJv-eci_[ `$+X vp4"d2YL2nfi0 '(41[润sZ-U Vq6o(;FLO#rMi(d{ͮ)+ӹr LM >k%/Y.WnC P*44tM6fv32S~XӬ0nߦX)<6N׻{ILǗ-k*Fg#ӦxWMUCP5rjW˽uՓVokX)+$ PHc ?Ȣ<4lJ]i7O!È<EB'G-th軦6Dɞ5-"c jyמA S.{=k3\jD4?wr<$ ",ݣ=7[?bzȳ7#4,inXc}M$g3L9x6eff4x<:2'3 Jffu' rMsǐNl<)Bc 0RJrs;H|6>.8FVRY\sMc_&g|+)/+Ic:nkCh88p@&GZwcH&:LU=aD8&fg5LNݣXr+d5&4hIj'@f|PXog"!EjzIBoJn+* *u S`_MFc .e!C#eǘV~kZfM |) /_;/3'NU9gx҂b>~{vTF,HvU=a"#7CbO3\LϷ*H lQ м՚|ms2,!D;Nv5TU3TVvs3]l؄nyk*gzd:{?tyeC XKK38ɫKku л|GsӅ w {x(C|^'~W9ħԘ]9""wGg5XB.5g׮]G~s~z_fKP2;PO#v}sT&u󬘯_sX74tmy;E;i1iF^`m<0g^c>`%.ai@ŝ:L E~7] igӭTpqRykCKWWaB' \ΐjiҔIlc*ZAOݿebqI7dhJ47-H%UQy>895"l O`7 :>֚ѿ}bAk'+PL`Eo`9 ?bI`L5kn B%G&<Ջ4ǶG$۠:N-q3]޶tdid+ Zq؃})? u`k% 8molA&]faY PXKS~#9KrK/-+l}VZ0+{^7A^!>W @6X]^ζj|5m+{R=Я#XYEm"PM^zinVN qC(ٗ,$ K C&//U\8vΜW-JF ;gc' }{إl6duN?~ s Dcx=3wp@DW#HO~gS6BR;Ej?뗷}pIz|!w/X[& @0@{Aߜd.++I+bA E", )>nTsX,hgi,ΠфsVϲ "p VK$ьd YkAwxvQ*[ )^2c},;뫵٩IKף4Hl͋Lit0U(_03+~eKY U,p^񜇥 @ zz uYBKxz$ENn`Y\0K$}] @4_$./'86~y9QgX0Ն`Ǜ{q6 &E4ElL&xs7~:!HZCUS|Zx4z# C-m?7ܯBB 8# -)YL2$ lEg|Fg,|3M__%aFn兙>^UX- G4.;bb:F5b{ $gw#X,k}}+N&mOwŇkkDم`wWU#$ |<~-bl):D ,ihBd%5Ј.c-ڮ}kFή]`:1 `Ɓ1` ~:qU[T~uyO1Z%T$ 9u;'( (J\Z[-H&έH+ E.WƘYEjd# ^o]u{3u! D9!υM hj[ʞ[[hjEːh'~8B3Y#ٛh߯H"wnƁUgjbvuof:[,;'2ju Ǟ]1c, 6FmJ`BP<܀*`ڢ*` QNdk:(As8zs gY1|yD̦puE̤ 6w9k#R^ɮ S83;ۚmz~xnv; >C3 ֳ gJC {.?jd\PQUخ8J̌}SF2 厾yEŠ8%8%H^/Xq,ԂLE-*u4lx<|]JK{~7/̸ͤXԁU1}\~E"&P.ܕ1%zGҘ\o%a]=MpP)Y1*DzvM,/եv'1{WWVk/MJ43Eb"F҆[՞f=]}U f9T[Q ˵I ֙\Py>GB'+)k1kh|s06r(nv*Dkf6!HdOGֺN,1E '\/]&;zr"FU!3٦Xu[*5a&V)MOV֎H%ɺYs+pMXy+-Cz0J.=.s}\Abo`G ȽN#;aC3Ayl0@6Rndikz=|llOUуefSc2:9z<'wYkjJD=vwICKXҵiDttZmE(^Xfk zƟ (LDŽr^}F*IҨa3 F 4z-xxsrǣJ锎]adv|7o_^fI>?PFڊk<\qRpttdxؽ2 $6ӓnr.nbsrd :8JTV(بDª"IIn$|V+ ^^`Ed!k Ӡ"CQ#sJa^3=O`$n5A` UGTm,z)0uզZ[ +~: @ۏ9xAySl O"g ,U5klÐch$#2E-5 [DR)vKoMu\aXcrϭ)~|k+&T@e;ʎwPJI&o ax3;y%>SF$`spS` FvvX}DX[-X NըQ [|⦒vLTnqG*}LBCuneBJ|:6Ƅb&:kO_WL.'K3#k)&DHHٶ]~òAG ,ĂE`]կ]'䑱GV0_q<"SB`I&l {^nHpVZOJgi:f͍lW<֬ndY_-gm;ѴtӪA K"Ҳ&53Yߏm |‚ߐ_{/,X"H}"6DsVqq1 'FbAHIM}*Bf02d)z:׸_er>p$$ZUٗvA(bU2s'm߾}c:Xj I1KByKmvWU5LVulR"b8,U2U;hb$*RioZ %w,J]T)sռTNܺˌ;`?"lJA:/J8_Wj44$bQYYo)sf.׻\w&De%c&ŵ?tQT>X52P7^X>>*51w$:L9^Gkt}la,L`7UnpvYO H.js `ǻZ.f|sZ߷o/TOJi٦Oۧ_GN(߷U:km9nw \Kw"rOSHRy`71o,2wn6 ߸`23v1.%LtgX  )'\Kjr߫U;Y󬡼y0GH2"{#C@`]bSPpm'<-juM3??Wڳ{{.z¶3ACA42OW~?ʥ*W n/LMIµ xSe"\([RzOT|  BOP*-Ef7[@gOrߺ_On2~bhX'Nl='[|ϻ펳c?U HVd +`m,׀w zzXf_Kن|s}v5=-X 36Bl_YwvcEk BLy x랻ufӆ H" X+X-X9XH#פB$"/P`CX(L>b/-WNfCЂw(XXsCE -G`An1, $^#雙.M7)`$Y̎z; $ ^V`| XpֻذT %]y畍'6LgUr{Oz`~[}sZ@LZݻE"3 S+cHjv]_ڃr8g\9xy Oړy]}4{(D`䥫>w.pX<|,$;/cJ˜N>iaTmq q:LЙx̷cro{T\e!6Nwfݳk7{1@?nXt*_9i^L.)Q=Q"l2^/. 9^jؾ±6/Z0y\k.ŵyZqsݳjkniD8m~4Ǟo}{vdQqȪd0q˸#]s5owNJ4>qj/W kz[ =*nfdS%F}]6BKL mKTƄ}H-m#|j["YB@Q&ѝM`-BdQ{eTwkh,*P[v!^3R7ð}GK n8F{7PK8QA.rP)cɪ<(͎hkqֵiy)x!f^4@SM8z$lhr`ϮH>.Nt'G)H=iՇ)=OE9k>poC=HL9::ށm#lT,qAC셾R:$Iq4dxycwA{TP}sUMJ2 n5"([d#<.Q켄_2^^L&xY%ՎJ:_ms޶4hcbQ@#MGwL/gOQ}ZHYX5 D''R+7kou䎎. K )\kh`eMuk,xJ!BejD1MEv̰z;Zx_,{}޼_$'S[m~jQSS4G0Hx&gU(ܥ&&W?_>@DGK3a=%nC,i/l|[Êh'3{{gE\fɝ{^b')[g[pEcG o]UԀN߷+4uS97RZ4А]QkJc-bURFgb\LC@Ɩ%@q 1SChZ(/[''[{=f5&>K=2.?!Y+홳ddpwLxuGmk잝c7C5[6ꙐlA.p՛ļ cOq:1ؾB=FQ>׏6ؒ X^j85UV'5#',E824:C-u#g[{^UU!:`<'aK(},e-X䆯2WѲ8Iz=bv`}Iȫk/`mбD*+ 5< ,"2&k*% 6zh7[(>&)n\\c\t,++^V tkgG.^vfV)$}Y:Ĥ,2vM9̰d*1"(OKLiaޒ&ueew\P Kw,-+h]X~ JyO慝r jZXL7. 0v| SeWyNgjFVR'Y5jkpd|`tjxlfd18JUu9vlKt\Heݯ+U~&{-/~R$/SB :F`ע5 P$Y5/oJ& 5E*dţEWrqg\0l}||eWlY pͮR&K"iv+79 ݦMƵ3sigj2'2pi_gO9ߑyA6PAлrwV5É;w߿y")J"L"j'W:8&ZMD.Xm,rWac'E,Xz != 7ojS$dEXdc)\ctq/i,8_KL!"xcΪEj8$,X.&]@nۋRG;r/< l 1`kTiN-޼_7&Hp.dOyةUHT,Xm$l -'6kf⛌tkXiP=1:Xu&c;{ن1)a N#ENDdź}bӲ GlYBNߌLƧmҎDT$7xCB_ZXv]mguQnr:4@``w'p(^T'̈́=<R> ڀ2q_l* ,/VG9G|THqa/OQ t&RT`Lp%,†^_楣-AX66;X]H<"';Wg U  IǶ3St `W;^) 4 =qXDPJGQt7Z6:WvDD׻!]9!"\ SA.H 3WidX" Y% cjPU1 Zɞ+Ē\hZ(eX+Ag9@6k~X,bcEҼvi7}UZF>X/",Pss+B]̬Rz)ЙTa[ġ\LPfE 7q`m3vBS4R) &Ӹrn&s% M;yTuK2L4=ə'ϯ'fϠ rx e\z߾A8vԢ"Ĉ1K)Po#&ͯU0i@d`PCX4)D,,.=qrR)G81@ #yk\*a Ɛ.*ۃJ"pE hqbQȃb`Վ@1ZGCbuh^!]-ORt~NgJ*gO 2A'K D/!ܐ/ 9t73̉a(NVєN$W# `4Tɛ{iz[e i{ģs뢼'jZ;$uӑ*2#ܘ\+9JEpBڊBsk<n9;J >9 S}4e`”3&4\oJS2\?a~)cM{-\j,` Um(cީ ntխy]2A c,^r.d2' /y0!_~аn&)vܟ]:+`gs WsiƱ}7`Te%:@nm5_Q1Vܯ=qv (EoI(M%e %an8}6*~p^&xӱJQZ`da C QRC ^3Wګ\]#r{p#>(z'_~NYw0ˬn/ջʊcC@!P^W2/Fk51>զ<Jx& 8cQv=:R`/-(oj &H Mc>GS dV]Fg.LbD!&bkjS#c[|Pͨec DL>>_ wwRu<8Ehĥ>,\fJSL[[B}c!TPdnnz;ѹXRYbtG]D@^sQR ]}Rgɏ/-Ud;KjSx4D9((lrRaKK[iVxdN1tT`?U[ Q6rViT-guf&d퇏HmPRBHNgC-~b՛\ ;l,/ P+$[y d'6Nq÷ϷxO#$J.sޢN2>wj1fRnIm9C&].^᳁]+M:9daomh&YMJgݠ_غ>>--)`~=d8<3nngjFK==bRAyhRDpQ;˝Vg1mg-jfA;Ʃ$ai0+mlڒ; yxtui!x|Ҿ|x6ϫ0%Z*. 75%8Qfg{v5dhDAyC0U {z8'F#ldG@t%&2 t"=ς+WH\)]?EϥVп@͙CJRUs'|1}IJ \L=45F,{G.-/&{u,C/g49a% ڿa癇_x]?)j! t ܃;Zl-[^(K;5xxiM<[ziT'CWb41uv85ТYpk-fʠ>J%)`!cmqs9,!\fBvabP^\j}9^aVhLJJJ-doBO@0KGϙ IHcP6ZcjzjvN84Ԏof z]Eh|,dBK)ˣ~qcS){ԼߤI}ׁ%il T)М[[nU-g)tZ-=tBvGdz 2;1oyQ#ӌ,=b`6_@HLrcE".H Xf S@ެ>930w .iv516ۚY=哉؆7dzLˢ{A?Yl2Y62x^?kVH  Z:g]6pitP|`VJӾ_>bNv 8`{"H Gc/uXLcEk-K./V!L2x_!]dn*h4){qj|^2p';).(=aJ)p|NN6oS3jo`@ dRPՐ64X̺ZD]1G5 ;M6a@7bj=+m+9ҾK gHUicI@ I8ߞvT)QyL.'P k*.;1hd˦}t}T sޱ8`ua8`(@d>)4'",[Cs-q#Q6Llvq܄ hz͇16nd<+ÒDvgoJ K!4f F$loh`K67f2,1v XG |B؝c&g(-7aۻpX4e?vˊLvh? W( p {|Pj~QR=r&u}^+؈Do>jN  ߫Ko>7on$a۷S7_5&s?~d;MEzoPvq 5  d'Fx<U _b766u%eɪV[w݂Z`'Vn>˸mؾHas\P,qп5:h 1jT|-y OtZ+!Ms8WGKq-^!NFH w tvM=ٽ퓾t2?))z?м,Zc]jؘT%9 6 XYI=$`]X#,䘓? ڸtvҊ*baηE} ^7%m>.^9zb CI੦{dn3:.q"FAO&7'0jE" ;a`b@ Ѧj2OW AqFcF?=:%/>z{RQoĘr]6GZ1q>p(MkrCx|Rr)tvSJ٬ORo~l yS@p Ȅ\HuD2spg Ÿ 0xR\vZ/CIvkZOrOw,X ~ X 5jc6i^ݹy̡ISW{SבÙ|ہ p2,"ky؞0xP4s͉3Ofu%x+ap )0M $bA!CfP7zLPۂtj/Ôof[k 爨[k C[)K -Zu+ې*t!8)ie/dF;8 1XYti%fYvtU$_XXAP[\<ؔ $ScTGXkFW,֊AeBN?gX<5Tb Gi~4[/8S!H 2xr4;x\Db73~6.#n潩\ٖ|j^߈_Sܒ cGkUN#~})Tػfϴ:ȗKiG>Zv-|GPXo֮|}1m*n.ah |-1?/z-ؽEd|jbQˈ{ޕY©`O]{PI)2c׸ɇ@=9EQ=#>Ϻ" 9%rL{AG⛨ۧ[љ1 ~_{瑆Ep j9|m J63[1xU\*j7ͮ~#N֝~-Lm߂3i1s5 ̿v a5pC \x U?c gOXY \2/5-Ea$L.zpTc+kj?_&\ e`2ېc&)M^$G"C@aPV`׉,bi T8DFJBOq?Էھ6őeJpjZ429bZR<NihDBva[>bS1H[!KmtXX%L((88ŗd˓dPNqvtҘm~4w!fVǓ~Ub0GB:jkf84T`k: =30GB8m{.\SlHԑ9 Q-,r z+V%3bSW%L lxz''j) l`(|bmKo2I\<jz|j0r2 =P8_^` R\/W՟Jܚ]<Ćg6~[$(b= `R(&y ;iy?c.;/ kv;H">@':5"|t K.`RmMpF&),!("Ԇ5Lĥ `BQ4(#Y`2 d7TT"`ID2aөd(Zh\Na%f-Yސ憈A]AӟG'),Tʣ4ڮ2n\ȤRwmِI,BNӪʔ4b~}`0dGց/|^o{6xvlr=lH`EHtl$rD YAd2@` RJAa@=_%( tC!dnz{R)%\ X(t>|B6dX &OL?~RY|X?`PcO[9Gy2=_ş?qڔ?ܤ7rdexݺu뜾Ya2ʸUOn_:|,xN9ptgרI7^ tm2[XIwX|(hriI7?s +[woz4 ʴKVEB固-\tg_Zg$w@ҩ}c'>s;_>^\A@)dG||7{&9r/ Ż֑7!B<; ^uÇ~aa R6]޳^'/W@7~sK?ěЈi&霾R1p,E`լϋh&}Jq~:ʄW\n7 jg(괡(D %&:ݹuix)cHCu p{ɨءTܹ4eZ*d7G=%.|#{MZhI+Kϓ|{}\yd9wt1w{'Ҍ\ɭ-}YUݬGt:hVK#G?J7h&teΗ=o9 |Yy9gq+H(dyKݺuwlMO}iƗ:,uKΝ[,R `Pٝb|0s%o>=;L/♙9H5z^yӎil?2~CњqB\S[q+%+ ok[_5BM* -#%דS ~uk?iO/0W.\z094z<ɀg>qn˪żǶ8pS78+ߐaCV5`)u$[:.<8&ezWH> sqt5Ʒziգ@ j%dEgu,qcn-xפg/^e, AldhpCʇ0 ,adM4ĽjOcqs+>u9д5 ^MD-)xqfRkxV[,U0 +Q,3%3<=J, R{7G H ˞Ųґ9W rbA8zv-JXkéQZ p1^Uҵ2X 9[+1~ZF 7J y YR1 h6.aYOTXj3ޘ[V[VU*oY !^)i>"I? - Cy9`9^5Z_X!;X;/\ssL9ؾ(&ÂfpKtK R&@p h,?\`[Ǥ}C:`742j/=7Gdé}w"- GHc;٧rd_Aa>@*K*zwU[VeS^BtG_ Ҽ7oGr1#\MSUxkfc<,KjS}"hR`yyiJ돟8~vf٤Zw3 +losNZ <3h MJ9ؾm/'һǟE66fFg R.p0%x.A}G: < H hOKH1<3Dqic7 =AZͽ #f8S,A,\_KloM'g *\tvrlȞR]V\chL&vLmp瑹C`D+ãZK2A1}-ONӷir ofNi/kCu946еhMݰX' r:g%-*^ENS,wm!J4Λ[Rk_>*>rl߷oym)Ч{s.ZV!Yzop+mhuV.;aZbɭ_yp `Wֺo۸ɍV  ++E`ol6V |:nߨNy,&G%e9d! )?)4I#sDd,+6( _1`tdFzdžt7F_ {1v#P GWԤ [ ]{wG/Z֔1 >aa2R6ficpL2oE<dT[Z*v*AR&c.Ωar[E2JkJtGv. >2_aC2E&f5c(0f ;ޔ̖F5Q.D`-DKK-*["-II b-z{҆3xR>6,ޢr~}˾ᅤ$CZcrP?^EXG5u7ȞDG;gg֖h0Yjko@=f )^yS59~{{)dGbv6 ^4Xd)Ssy̺C(%Ћ.e!bsCzӭ"/E9_ԼNuM,jFI- NgYjoOS36B>;wj}`n#ZE󲷰񈭆wXݛK<ŖR[`x߿=?)Å&fꆹs?JV^5N@zإ %RoOi7vÒy5ְ=rZӍ+6V TGѪ 2*;6¦ж1v8.-c*p3l\x9r5':Zڅ+nogUQ cG+ ŋIUnxgg[_|pN9}& [qTJlݢ [1}I2!{ԷrqXZ0;u% qYT1j9jch5i76 WW >܂4n7Z-wϟP1!<>t~Hq5դ[qggݳ~H1.^54w <i_~|ۭ|$WCPO|j  ߾o1Z_p7jeywݵQW< s^DTO'6ןUOj3+gN1\sږ-񩣾O/1$:z \M )(*6QK.m.taWXe XyzEeK@gC jϯ9on Np/$}3q!vP;mX68,6WЃwuySd؍I OW{{gW=Mr_ƂlƠeF,4(w (Dvyib_RYD-'@N ;J V}m<(T_UHDMQ`ep5}xz;V6b,Slυ!  .Rk,жQnHDUAqȞ3٧n8 \4"ƻE)&-NV77U"mrjjqO^qRoAXCkyR7 mT"8<` /eֆliH,utf"N,:K'{hРIק}LYbj1ɱ+%.,AD ݱ5oxʜf@d&(GN9V7eȓD)phg>6^!rAe sDWّyS.g{ȡ!p-Qa*<<2[ZU_LBP1.ubl]"gwn"[&½Ɨq`Z\¢Ak;<`Ef{^`AuYE }q$.:}Lhu A0@w^hzSL0ē\LW6@%1E6s۵5EqLfa 0 t;G?n/E ʘDn,q9sq^~+RƏCJ"2_Gj끿"˃r77|D %&m _E`b֮n$Oi Nl"Q֫^ t`̘@꯭qG}bPFzpd]lM6.Øz5M腝(6)%~{;?A`қU6V[O:_"+Ye WX9u+hz9GO̯LYzE֑/" qG, 0Dsϫuai;z2!iNTkU2\zngKuA͜=E~-Y/۶5pf05"5q,og`=AIGmǠx Bd<=q"wnGKlq'neNes &ο̄tK ULhv*6HRPHM$|fQ,N,:o12s@&yvAdPν%7_^q\Z}%^b2rZV˿o"=X[- -qbKNBPשjb SWe9:04ei:)qE66Xoq[*HMI) {QdBE{W'W. E,>lUo7j9Q1(ڠmVܼT%]Nkēps㭑L@M-9Uz>oA@Ȭs )F[*¬:u-R GSpz.-/ylE ާcM,/ t*\rh}6@Vgd6sͦ.F< 1/_|KRF}˓Jq;9L8qqڿaH(F&d8g5)S$- )Cm*?ͭM֏I"fW\6zpE++yj@ບ[AOq;D`J"4W\?/odlK^nvvqnw{/3Q`o+ & jzIHOҺ=ӰHH/jU)BgIiɘv?Z\ZYM\/zD4B` 8S1y L!zl3̣EBPy+(٤ae/_!eLLk7Ob1-pɅ;aE.`srV[G4adڟ(4qXibjIri_ؾaK߶WOV?pp%W6E,gz$Ă]c]TT_`-@7˄GD G\ظH_;s'1M01ȸ0qy;yGڥycFh-Gܽu=,=-y;tmP@ʫIٟ_epiyy;44+&r_Hj:|۝?`PYI:y4摤!wFb-)~,,FW׉S9 j㭒iRWʃvN;}FBrXY$ lj~J60=T*D>6M80BυL* n`mm#Z#j@:.Y_m }G0 zx"n`mJO'ÁfrDŽԱlK2EuXo* kkC}K&3-X|5 T1VC|>W]5Α%Ѫ6N&eԦ5ZnG DXr!66`X*V)SLY6p/巶1ꉇS0^H͎ᎇpa @U@>s%QU0e8pp16zݥEK꧎N]gt+X"Fsk4T>n2#1~v]@T1k]7k tcނt YsJHS4ʈCp¦zzz7n8v2mzG~чbXnԢcw, pcV%Fƥ$+ *9+_O\] $*vܳ@'ܮh۳w|QcvDbE=˗/;v̳NHzsUiS7Cz9cٚ;N(O Q(TG'2"1Jt3B]I^b"'-8Q">6sz4gcn]lS*X[ Kf E"{m$>5'nM[5j iQ8ˡn=ztDB}Ө:ǀ..V0y+ʒJ&Pf֟:L-3hC9M <'@"Zxzy}KJs9 Wn]\~ 2RܰWҶnZvoeS~$$<_6vU<سr5L![93ts($"tqXj2OEf;WfT2p%SڑmY' gBL1EVlnsʠ1ۯORcCDvy`Ub}QOܷIK*qmxr}G`ᘳw6`;m`x&w5Kw!kRa0v`T>Ն.79$w,^K1H&ӌswZN0bn*Ĩw +16Mj܎~V X}cn pEE}3Ş=nGGP\Poٹob \ p[r>G= *+>#\2ȝ5}i'd{}FB<X 9G!(+C< 2rkLU,i=bEtTGb|e$9 ḏo ϭtr"accX8JEk O8e`hX &> }s(b]/+^/+(/Z-sjWj}KY cl}y6rRh~@e[ټeZLT"\KMKMh KUo9<׵]өU,ܵD왆ޔؒU5[epFa+(|<њJbԕ7+݅n~-K$^076+nFo؝iC-Cva.P`'kR=mm >hwshJR-w26M{6ϫaRffff青U{\ K(GGt`}"J nV?]x8UAw@*,H{trPe`Ʉu!["Q֗lK@'Džܻh܆,JMzﬞ޵oo!UiiX|R]`Y1IU`e,gxv׻6Tm5Wv4k>"7&<~o`B#DijcِQ4X l ?x;*R\UIh{n0px\Q|S骗,"5xbUt FzOJx ^?&Q3!NfܾgwLk7xOf.P5Ыg,ν?k!zL?W%BYʽphٟ:eo~eJA 6;yՏM>[~+_׀8/lKX-+?4 |׿zcv_pQB75w~Qԏ<,cuڛWV_>mOև߽/_-1ϮCK7:}g7UJf}s?C4Foo-o cҖfo];?,cdE"c魷? MQ "SKߝ\XDܛy:ǎ߱&s'm/UU\'og^%|rCw Zj +~ fRx]2 њX)SS{g[Ьe+6"ۍgy?-4J{?}jѣ_vTn3;uv>sH[*uuvlknu I,ͨތm€[ [q<= BĦo:PfsJW8~API8gg>[+|t$[懲qf+`*ؤt>}?ѹ,}[ՇZR%"A~Χ:Wg|wΙ3;_K8JC kaC ,-6-WUSMɤzCJ`w`w}m}klO%$; I#qvmhq6іa;6C]֞qkܧ:27=<4UR{w62C5n"R?$&{?4U)g+*Q.utbö˃d3cB0$)tNӜgôvWNhKRSR<U7[;Ztxms*C4e}~ ݈JwX8Ϭ7hT#C'!#orϱ'8Р]\^* RY6Qic]ҩ>ZbG?"BJnUO?{S}c[ze%[pܿ1}vP5֛x&bCS&4c{2~w?Eoo)uV|ۖ۷!>c:X9.53h`) "nqa,?gPa8viVvpB !1` -[d2}ўP4W~& V{C jMi~?$CRE,Vh_X3^hMC j%8Xh@Bl\a nS b_R]ߺ' 5b 9u~A~ZU~ XK/ Nf疺m3l`0R EC)OE כ; O uu[B*%oX+%^`4] NلrM<JKox$'l8d$X_W#⒃WxTSV6-Xg'2N 8$0mIt05k&049ПUe6蓁|AW2?H4kMEsY C}. T/Q܏ww^ϫ h¬Y!] ʈl{Q6h%ܯl#a.z>Fo **cLA 8 ~8Z)sHU dY_ZA'R5Ӡzа*秺aM*Zy;^0ysSFK,@%TNWhۯkb^ۙ椹b3JYpa9<Q. W*UUX Ucg@+M#rټ3]]Ԃf0/nW{+I5puf!pNJQot']fcw@W8q@b:@ DйoY=fg=OT%Z&2pբ`A!jjސkAtuΖM4M=R94 ֧(X s; c])">(6W|U-5\\G T #"T%rBLpS Zon粋 hHDCyQD}ɲw|iz8"a&`Gzf{c# '{孬T8% Hu< C Tj TH ɩMDx>4*Aѡ˗(D,k]uh 8wdQ薐[;dea4p/s sCdK6DWa\aI|R\[ zER(jQ&&E|DĒ'DQ`։׳k-]"&V!$&rK״P»m(+9"9 HH52Eɶk0 Sp!aD"$w*EwꝠg{gf.L|JK_Pss+B}z 3#U? &|FnTmP7B6XrG2F(6<4A_lUPGnRn&9rcCF^xoJOjCJ#|l}}r9>ZcC.*9-ʔb&8sO@wMU,Dp46/m(4Ž+'Yu4yƠ6tQ'Veb.{P'A,Ș$S>AdY伤N3T"@2{Dɜ%A뱂Y" jD !& 0A O 8ydJ:!-:P|D&0&4a&X;ҁ`-r_E(fp?Yb_\2U L}ܹs]~ĝ1 d#H?Oa[Co{L;L?wK.uE4vaH\mZmOO((y2Ysn)kTiIYVCQP L\k|( Nh}kbLT>c*:*cM`م56vt ̯j ww97Pg 88DYoT)Ms""nIoA5+UG=\jJ'c!mPޓ;X0=-S(۱ ۝9 n 0iM6Q/sͭ~_ClZE@1ͯ><4p{8bW -MS,|ǿz7l`ó C3g^ ]*HzUFĄQ__:w{ۓ fd^UdwoY/`9{tX 6Ʒ!r΄ w׎ٻ[mbFo̗~{5ZڰRhRߞ<Ƣ꣟$;{w&~`J4J^ƧffǦW1xwTc*F0e~ blfcAGg} l ڴ|{ ,p과Ws2e=D`$Qs^JZc˝,JyH'eDTYolhabwzx$ܤ&gG]*(kS`{yոŮ?1a]Rb5nRJEmPR'eK%1]}5&#Q;`81SJ/x+ΜXtMb<<+xEsYhv铁>ep`?uy]B*1Q0V:ڂx${kGOk@CwrYb唊\d*,)&%{̪{֧mH*1: QJeiU# fuH2JU`6 4`7;j@NԆ&Ւ.lhCB:`ŴYgp;zyO+k בY)W1G"e%g{%H2VwJ. btNHDm^:O(2#U"\nQnS#8v[Xc_R5RW'Z |_*f s̞k Q`þ+ NjRZoImT?n &&8 !Da3.AR\*'mHIޮSξk;d`*lWs *g{-/:U&/*Ugﲩp$SƁ4w>DdMu&y%7~D7fe ]`bг={o8D?wfw]+ TywA1Ƅm1Vp'CwUjBgpLfw|XjMXݵzOK|I1Aynm*=F8눴 XL7D's`r,}cLm|RvKnpa?3PԜ*]=e@uaQp zHhڔI:*)iYjZk|2 [gػrw6iairgRT_咢Wo߾p 9aygܼvoY_*l,|S}Fʫ=wKJϵQ+9`qm \Rb|NyG=,q+Da{hA<'# sk_WXT6R; y* 9Fh}8 )(o]EexxĤO,Zkg(t.K4c W\[qa U,XVU vx|泌;Y 6a KVTӭ(LmH W  75g]!y"0ѰPrw@*J*4nY+ļH6v] l#KG@󗞌C_dqaS$&LylJP;hteMX1LÍ5Eb P~Q.p7%1!L 1;$z~]]( ɨe{mb4HWzS=8$_'_:d;9ThaT؁R>4B1]na[0Qo[N\LZ+/?+EC㱾PiӤؘ򋯭5D@[KpGBAc~/9/4& O7'S67+UnEPY.e*)$xZX[aB!u{Tɹ0?2|sA{8,̢);&`sIreXV3&2RSL E_ FFg<>>xRpiU`˟pm[`gSP`RgY 61N`+"UJ>Wz7B )TDDMzpy٨NS,F@ؤO]~fҐCRˉR,t*ԟ H}n%We:}3yp!-_Y@'ZUrRfWqJTI\DǼLM2n<͋@i\™jK%0X}XO  oLHW_,f]W.Lfr-ɴywmq#Yfxr6ZTۖJگ#zeX̀޹5]hW6OM #wkPгk<ɆM|\M륉<cL۝zdsL?X} VX `-,.a'ŵ(B xُ""5{4;Cjl  %^7X 2PGGZԙ`OoJqdfV"O,T|4p17Bdb#O){;J:.1p&zp16+"%"=9S 3YnZu'I7xuT)U)B hn.MWW1s}P;၌c %ix2A%5ۨtF5R !ۨФbHSD%o0Cf7? Zz鵀Dj 8xM5_-suڏ]ɪ 7Ow5":7&ƶJWX % Xz aKT9/Yju&sE޿\{mtpMlgO|(Y;Vzh@ 8z #[т⮛:G7f0D{`0zx-wnNx/ש7!ÖjP4+>?X=9l9lAP{bTQ^Vϛ-z^T-=jP z^r?e#[-m]+ /Gm=9/Q8}:~ 2z7C21< VL*0bAC axu Wa_H_S=C ( 2z'3!,MVLYGi0ѡ4*kC4x,8tK}1m|5==V$,gD,* μ!D[ _cj7*n:6ÙiX=noz?~Q?D 5g_/ѦT@!L'kdFi7rM˱3x awbyGt Ty)tȀoYhqS$ ],|?=_|{[קLl O(R<&P ]cxO??#:LOg4LDܩ|::_؎s@V꼾rLВmR<s\+rtO=n wG'Ӡ3LDSǎ_-h%@*yS҈j#$hgZ/ŗw =S% djZ쀚1&i?LWXqo'נ4`McR냬C ֏jJ/Xh+WKE5DVYf#'eΉv0M'*bvEm  Vh 3чjM# X5Gk⃽-zVH].t=3}hK!OMEePoNXU6 37qp9$ $E! =:.@ЋI+wq-9#-}NϢbaq=~Ʈ8(W<-R-z]aܙZE)6?R_V?8MΧlWrB}g:G2p7>jʵvkDrKJ Ig*#Q%LT[uO ds8HJpд 3QvZOFT3y.`P \ 8s>ЎƁhe LCbeZfJnzѵ=7]T8厺QHQ"ROsyu9c?z˻q\߽4*mïUCЃs _ U ,LmKZyOuyys:yqT34Q0K^@s}CkkgyX]]]g}GJ}M܅ԔuhiN[fQв } .P1CBTjT䎂.c ~IV=V rֶ[OByZN@2te[A pVc )eq8D)& t"/qd ge0(K,h1g7'J:8@&R梷tq80]5c^VƜju.w0'G6!ǚe) բ#;nhN+r6j֪Fp <*oT|}OiJE,}mPJ٣E̶8yy!YU^mTl\Hf`gy_WWԽHUS^7*JS|߂Ӹ=:S>,ONGsjP-x9s]ЍFsZ͊`A!Og?UT ^\` V4*z09DL.0 D#)0↋# u>$C\`٩р[HiWmBQvDDP@``\̡~EEEբ$IAI{瓓߿s1gLkdX@t0۽f]#B̼@ H:[vѵ.eo7֋S_.Y35fӾl NkC,ey"ͺPNj|};("=|蒅 ~uHZ`j,1 K7 C"\L+V`F.=p:s*%r*Ct|g?9^'_vrwCvU;If߳8F=NBCM!Ur4,]k,.[w*|=#}<]T ) XqZ(MHw(jHV;C uThxel69`}}w@.ct-mހcϿF?~`;YO2Ē>Z? ~е G,<;w/~{?E('ݤaZclIᄑ`S@˳UŭȀy`?rypSl3UT>ӋyN7gO)%7ZׄnlffS"2:ܫƓ{|x D tn٥>U[!y` SgkҦBv|~Rӓڋ|SjuR_وSnfJyL& xDȠ~ |QpTfb\iLQNVuն%/56 C6Ayцa  lX*wb{BMUu:[kc[>L[gOѭmbH홎Ez栦0ہ+8mQX9VOs캉wYC0 /SBIlp'+>p^QoI 1 紺|BIW̺Ѵ->o;>?oxa3:cȩՆ@ =5 m(zoX֘y=7 r&]pOOE=Q)>mnsk2wU7YVX1@4pG֮elzAd.dG,L"4s;Rl}$6hUw~>RR@IG}c5Lgn`9u/Ho+YD{3޹s9s̙9s6޻1Nw:Lv)fffQ2H̒ed_k-I'{?\Z^}wo_,XkdxNHli+";6lڷ}XhZj<`Ʀf`HW X54p`A3Pjh7%y xl9b啂'4D!X@mC2PgCK9tV7rbvxyϒıƨ@W(D?$җe2#Z#P&zAD @[p[QC]q~Y O5m(X)t>&$wiy dW|5k8'״9Y^ѭ P(XSpv/սCVlRq23}?ݟiAVë *=?ُn2]rY1LJU~<~DVk"sj*=O,L,U ӼB*?w'e,g*ѵ03{=(ѣ; ֳA [sqĔdxS/2j[}A2m;{ Q~&Wnk^`%E>>y4)J+$A`'t)>1jmZ(es \ü ۏ2;F ۄ'6%XFGHZlCtvv.L.Va1F 2u QwH@Kjp\uzӷ Y.I)21HE=jr6L\9q0.`8gUUm%/&5B:9,lSUz|UW}8[_{僵Yĥ9eH?KyRD}Ic@ r,5oc^|>`ddx[Ј"ϬrɄ-թ >,}$e8([ ~^XZdĉK[ˆ|==Z܌*B/"b`QMǡc!17zO΍ysr)B{5ƉJlyrN=6UHq C8T_J\Û<}_K/o%N>ge$.ΕY1\鉥KSa; KuyP1==ߘp%2)kh jp +328eXP&9s2"EkI4ڌ^B-4;ix䋡^N+bs;LkijxV1XEi1';M%j\4Er}!؜tYȔ\*H*KAgt &w`S3`g?@¨`q~:::/I0jt/o}. !V!k?GGqݢ-fk%PmݳV:m\ݕ f5?'52mS&P7L/s%MٱȤL0ks݉1)ց[1îԍ%DZJ(]jjTN?irܪ WXWXťgg'%08_'>\"pNjvObv&#IS l\2IKÉM?Oí ,r[z4.'B KoE,`Goce띆AYin2FfXp}OEOv,: ڰYA/H~flmm<:Cy8aR]]1<^u+&oQ( .[׻ѕIv7ₙc̊DqٔfZ7F^ t{!w{Q9͈@7ebҶFĤMIw|u.4U_Es#խ3+hhYECLik8֜rwtCzr왻5Oiey ~j#Dr} -X%ᕇ^Еa6*OBp65yڥS)r߲alsg l gb+z czWMBX9I'% 8p6@.JK'N*cvm-`E+>yxr8|W KQ|mХ3?^gŐ8R8,%IS`{&R\3vQnPF*Zںf-#K;o\⨗OԵ55n8% f3@`7 ŸP?s3ݾۼc',W-X09n!CMFtg-$rA3e65@F(Ė6 '1@@`AObbMX~a8$[A0giY9'ós1Q(f<Yfbm-2c$({p2rF3蘁"A-XaS=&:W 9g1HUqE/3K^VHX]]fzs)K.motTo<jKƧKDt)Q ~LmM ZLԱ=  ,=>X`@qS4*eUxsufP@Mon& ѡc͡ǏtUv'gskީi1[o zJ+& XǿwUT3Ȍ!`.2/t2k#Kwsj%dqX[IՍuM.mnp}Rit kEΪ)mG Mv^y4- ˏS5z,-k*Nkjƕ^; .w &0  TNEDKWƘ쥂)YuTs!s6ug.>xyV8wVjBXm%,a񭠼4 .3+a3A4uzOHČA"ո+K̄BV+~rPHjE(sC3 3 2#˴!;lVsc.# ^kl( I*R6I:BQud`77 oB1YǏpI#ǎݰ ]9k-E-p_@`ZOGcZm*'Utօxٕ?5Civ I=:DƉ?@e={%%IDATnd.d+}{Q#{ )0+@`DoY" Vꍜנ\ZW뀢0\ib1̅Dx%D*je6v6Jlб׏hZk?1 3i\pYa^wP .04[eY=$re[K"FVp%vr:,zGi5>Wޓqe̎ᮞUP[ˬ-`} FYvs yݢև]\"uE?9@̎)Rn0*ޭqSUd3:J=!3Ϣ /\[6W;\ |uQ9E,@Ul)7t3`U6皳P))B$DZggԳi8H]ɣyj!A%u؂UH,ab, )=`U,b !FZ1=-VtqB`ҜJN8Ŋ + j94@\Rlb]^'{+ ,TXħ$Gv kCc ֱ5xi] .KP&o|T "ԘLl14PA=%qLSt2aӕbtSW*om%(tVBIrCSs|pԓ!F.:K4#;>ʞF|N:a_Ahr`٘z,X#IdqtS{[ %=<2-XgĩSן4ѡwuzhD5hS(-@%úd:xԩKrRB% *U݊Ds9ƘDwJxOtؐ)D+80tl"oCz~@rizlL 9iK ^ PR+noU ll'V!̘A+xmvlJY_F*,-I5ӆ>c(ԦQ!T8T,#\i_-kk=vfŰ.d[BCWZ`w%뼺\w4z ?G6̦࠴Z ̦'E7!X|Tys}}Ϩqӳ+k2LX!q%q5MZƖ[ҍ1d=/D]51v%-"Ud0R,Y}Z/ HյKhE.:H+!Is>FvD!]tMDvU1ݕk*灷 )YnKwuA X`&u#>2mSS_hŀSխGKo63}= çfm!p)Lq&ch:/F4LJ@g6pwi-!1s %+KZhK ðA#eڙW Jw DCHӡZ$W{5$Փl2hƝbW\&჌n-l}'ֵm"J/wVPcZpR |[;ϿI EEl|ˋ?\yJC.kn$J'rO42'n?SѶ])ABs(v'Q1V&U;h£ vuCR''$\#O_ryٿ}f^8֓tW?Ѳ|ǚ0= j3g%іT`(K%x@/VI|qUqNFZx'g޹r0TtN>vC]Ꞻ۳_3 zQ<2re^M.&b䎘|Բ*&0lXoi }fWpWoiX'7O5HjgXcκ)g*"- [JA6x e鳔ڀFH?q%)b*Ou9,jeꩳg1 a{1GwdZi܃ʿ%T2-t|cp m"*c3^0Kh[˹wkDRQ\kh M>ltcbG,BE6WA7P;"c16q3gcr#~yC מj⅋ɑ-ʞwlSK% Yff=Ww .BDNF"SfPu:9=RGK)CϏU*OTcSLN~useP3Ђ tO?\} W^ ^˼u\F %euCY*7Y 6c#]3,7K|s6?\ۋ^n-V>q5R/?^6Kja:wL@e)6J KLNIU6oksce*e c)  X?FSzmkiVXi6LJ%:5 3MY߀>\x> N-'$8?o]=y-6hwwl|j N gõNLIɆ#qM>o @/=q;&{u ;1661EA c+\6 ;9>1%_<7|[*y2K:]XnO})(`E t Ь#1& 4 3c=n'5 n.:3> >vCȧѯӆ+xHaNwex]}0"F~R !k?2`#c( 2>`3"`lRF@FOz2>%>`NF>E#,lH-KpY! C@F\'s$#X>e| )<7mp( P.:$t\K}]jh|DwhA83SR.R}&k3}Dw׍PѕbHTm ۓ63Bb*$e:ٔ#w%E;? 9VQ13n f;sN]e,O%kX'k՝77x5HƬ|(H˃o)q2/+1aϑx]~(_tAi#}M1aށQ}Pxd):cRʞ` 5e6 L* 2xf&.}*ʒҌCbY?&q&/w(Ҟ{A@.ptU:ʹBYк*`f[\ W /˒c+9`e,*p 5e3 }YLN5^(ܪ;'J|[IxH~ o_M#"Yꂫ)w L94I+#A p,\ۀClM7u?JEуT ߛc ޽mR5B{ZsME޹xD㥏M5(P|㍑$J>OQ61tA}j"44Aח!*?^$r6Y5 kحvZŤw,ry&?T|b~&HFYY$7u9bd .Fwz.=ƞ.=CƅPt f FW}E Md6)3^ aQޣ`Y_@>o]؇>iSk=_^7̯ܲfuGa\O}LGWX5 _{ZuR课 y#M+zsb)4V޹ uT bi JU/o׼`V<ҬbL_'U­bǶD55lS`Z(ڙi>m h/p[[ZM@DHnG’pmgi'TGEOEw;RcK|1iJ3~@O6.""CR}Igs6*5wIuS8lrWlCnbI5ZWm-P-nH$IosFQ ġܣߔyUt(k,|kˎ&ST2">)Jh2iI֍׎;T/xGZ vBE!3j~(8 Y6m:$72~>l|K\>X_TW,AL\Xg;A)}\2FFV _7pXN!'?kk;_|ZD}\FFcj;kųv:l|)'ۢN%7=(%Pv$\GA/s.ͲnvXX!C 9d3,kĊ6$4ȴ}Dv4dZ-EXh_P^VcEX Xߙﭥs_B`lⱰMAATዛ֊7䍝JAP{b5Pm+FroC}@Wׄ U6cd!ŕK-p9zwn߾}n^=*zm$Hލ7( 7 *i74!ZsWY )a&?-XClB6pU4rPF\WUtRPT=Ƽ.M69CϻdBc@K:!v`mr; RJ9zK§G5̕:7?s[,Q lodS ݭJ_%N2EK- XV*O&hQvYtFi~m;~h {&>Kظ`abcT*đj7OBa87j1/sk ų ,LDQ J˘?9%Ť,BM[q;fyGŦHx[`>$Vv*_\ wlZOO]Sլ&Xۤ!'״xJ^}٦/Br_X@!Z&aaqXk}xB.w^I $ϩ46:MB7y%NR ,~YD]Uה 4*p35BIpdk*C"0GKcm }7TS xLLFEbϽ\XX`U"(E(vUo~U '/cU/yQ8|lkqoxgJS Hao𼹩n@ %)tI:Ke #G'' n&p1nw@́mXMd=\}[I'9`UK=B FH}Ά~Ґldd]L; #V?Ǖ&XR;\L-*c^~(= KSMFde RZS uk# ɑ𦩖`q)x_+TM]]]]ֽҠ"Z-w;K@*k0Qkݍ !'poC3zً׉=BFqYr.`%pC#(5BHHG3+k[1.Փ#Fn5@樵8:sxtrO̚j [Z^ջeJ?J4%XlZ͌L\j4ŋAcE}ݜ<CjG) &6u$BL[Xc|dex3_8|џ~pʍ5j%UqVi$y(w|lUpb; I}ĩ^{ay;ebKNOT> ^7VjR4HB[} jƤbWڞ;Z ]6ꉨ/ 8|NDI5n .}1YˎÌtFh}dUh|sEqQA~M9b7V݅a{3~+Ŷ_u穆yȽ3$=xu@d~{}!m읇oP2 ;I2Xs:.M+na{o&L rpET*mlVdhEr؅XbWJ3צ;=2F{B^}`8+>N)e7 M_p|[|:aK'^}P <6,*_'4u?2-;Nd W?PLt}P?~<] 2Cq~%} F],@`}C-k C@F~O[: DH% $K2M=d8ػy%Xm ֏2 ?duo[AYetx``!+G3²xkd뭡T3nMbF: RNПjkC= A=:Ŀ} mY-)Dܪ澅_OFWnj7T`}R>A=r.;i2R(\Aw(]qݸL?sO]1<;*S2+ .-i0ʮy[M|˗%IW˶i}(/ ,⿣ӯ*л| Z :6Fc˻WW "p3ZUne ⧋*dCe?4JJj_sEVAΑ@eoi2&t>.@I׫S,&^&:j0UMuoJ.?֊nŋLD=C*S7&U#q#._6:7ΕN#Sx:-QzAԅXmPɽJm 6aй [B9d_Ro7˦:6i(8%33Y~JXJ5!mwN j /߷ Du{JZJ7"UF)UM]~C?8|4TsTV EH`|⃆֙E㢨.KC-Ȝr)}Au !XtG$YQ2~htIDbWpcb{dcCy]o{ճ&lp܏8|q79 t!a~;'ft jZWmLVj`gg˃|GFEH+>L8upaÚh(L1 /kɑЗYaUn+WafSpi2~r*r 45a2bLw0 +&0}Yb &a9q@rw50cKu}`[ ЛR-[>l W42`ѡg1# dq0R\UIj QckjU/ \,~zvv~rveOCDUY]SG›H~/f!H[7  cpY`+68a|beUG,b,neΑAz21ϨK@pqg.z (&9fL0qXѽͅ]+&VTT|"mt?cѭstL#O]p~;w-󒻫e pHƞ"fy h;ʟoҨ+QiMPUhT>" 6m ~:(>,lKgEEEw,C'Y'BQ!< ,.4ijak2f=>#M*_tXŗ.p4']2 SVXg/?z!ݞ`zk/xW²NX|y{eDhznD7h֙#>_gpΩմ^%V:j#E}uj+9]T%n'3&BWU̚D&v`sR>ّ+g 9 z $v e֨" #({],ih4f GpKA\AusPz2<-uuMÊfPeKx$hR0ʫIj<>Ϻ"ť83!FN!^am/W!+ XQ0 c"Y߂2,JMX3qVU:fi76 i$ ]WWz֒ 䍭5L_[[[m8lqle_4J+c`'u WFm"EȄ@~ Pp u< DVbzJ*v],&I&QjY1@/t-7Z"l~)w" emE s1 2|RˇcZ%3'(K :vƩa ޿X=oOMis%XCCn!:zW~v\ܦ {DvI6n"g4ܣrp~,Qk)X31&( P/ڟ?;y9/CKK3[8פ=:Oi6jsWgL0owǒw:ZM$#P,XRLbwG^-sQ T$"܍2vC}~9tLaYhi"G1Ha@drQ*,BkR  .jw4Y5FVՍ"L-2$&Iv3մ=_/D*J0.3lKB h"47`)]kU10Qx>rэ`0=5E6 $Y[׊h1@I*2 9`ŧ͍T߸ikC ΃1dC/02w>,9LtrX|w&ݿo>uP4ue}q@Q7Gy?Kb }`5 V4`.6-2dтkxȮs+ǪQG{eѳL`Ij5x[4ǐ+ !O[> l\AĖ Y!>' {wơ|+uhQHM*j)O @a)52)Һ RGKbOq Jl"י)~!yR3k=kRfh130;4{As|5/R}yw"B2%70ZڅQ!Uht{jT|w,ȿP=kvKu-Bium&R0<Ȯ"ĖyhǍB 3PrϞ\ ,yh@XHUk6YӓT%[ 1 -O"؜nWсhUqpDC@ )pQMq^#OǸk䴍몢c*փSde[{׵t/^SNm_g"ŗ t fiBUVGhc5n6ō}C]M>)Ch?dCH.tA1vG5NPC(ihpMq<1ZjrNUnj[`-BL%o2Qj7l^ӻsN5hh;֣#h, `*̣ѝAjUm8<'\7i}NpICkky7'Z' .0lFI9!x_ qM9ξƚԈNPE+DӧΝ!?ѽu̗8TdW#J vEE=61Wun} MNҸڴ\Hs.ۛWNmEZ5U.w $&Rui|bw;[eemX36NX" \M::AC1#mpxdlKۯ=Q V`rtxzy4t# `0 S^Z__hm"~<MռwYWw@<;IeK8/L_KMܭh2<|zVXC[Zʵ>{qf Ck#u:̊% [0R'7UEP)K:32_p$jBT(< ͡*óz[K/o=IitK+ ӳi1Tqvnu!6M;$݉nH3[k[}NOV@!腩Ov\? {eB K"COwZyT/ 剡&P$gdVo7ؓ l0B3du xQKZA3*L2SڠI#'L:5*:})G2$XW"ɦMPWm5u`Z uohR# ĭle )5 tӿFݳpxlnPz;7!ח=A9et.y:7#|>hsk>3ڵEwV#2L54nֻY۵Ng:cIKípp jQ[;cUչbkoee[.~BmQ"hcǀ|z)nXMTL(2; dh 7DF7A9c56↙yل2k}㔙b7s0Wr9x[ɨz sIn{ a֎96KS?:+:y+T5:k\߂Ϗ*12 {6~.LÎ誤}R:k%ķZ Hv~}>ϫ~xbvKu,f Ӌge!Am-"c b ږwmݓ`5HsWkeB:%gH_3xb߻6H#?{Z]R7NNi!AB{[[ Q1r|iPG I@ WfЯLUtez: ' xc7fJjgg$@)]ݞݳ-RW^x":9EkӈbB<ޫK84re/oYϵiAoEߗE〼`wYn?G>Z#)#hy,k%K&<{~[7+3 dKY`|?C/ZE MWP4`*`}!k#_cd!#+$5+8G_} epd1 C@ %X_e},XQ+8HhT%e25V O$Xc#[2Iq2ބ,pvo(U = z nVBr-{*D长JnIr&JP܉MipP)ұ|P^Y?S>e7"mJ*aGMH%C i$T2?S<0Pz"@Ν҈1 ú㹿p@{rjxJ2 HFPc$~W.X*dDD- ~n < k;=p ~n@}^AD뒶j3odP@yy}s~r,ۆE\eqw\d+ N5VwI86=r/Ir q Iw_|q٧jB޺ksnE#K{om|ۓ, ;W~_ҎԖ8 gO9{'D[ɴqL_%GǤBRȡ/>wG +GX9$/]˖U^i246`sx~N=yU (ͥk/'(ej=}go?yߨr7p_ẁ;L\opְK=_?>>2st>Tx)mZtԑb^@d z(VnjL 4yMUǮI?PXs$~j7\RSN/o5h2S硧]]=>+Aߴ^ѨAK!X h뙳MkWXc}",j_4$ɟ46]_duLa\b"oIfp%`=mhH`K :E(#Xo?2Y瑡Orr?W@.PvB%G8Z%ֲ[F,voXdUf$oy ,uh%%'Gz<9yݥbTE[=RUQUӳ B&^-TUUԲڊ`F9?I8pK!Pڠ/VRY\ovccKvP4Jt/I蚀ER4+?^ -RWԩVgᑀH޹kX XMx1)q|'\:?ņ#Jw;C깗-GL cea0%|v !:.:qFkO07>f.@hsU U m/0vK0EcJ2̝]oHHqzjr`5ݚvKօBAև6 -dŒmS t虧@JIȈk#Q#dZO~p.Ym@=I"X & 1SRW++8$ɛCE;)MGGH?Jx{@@ +\_7=?^DvV\̂# 'CA>XBBOy` G_C,`ѧqq5i36V+ RJ;k$4' h"s` !-R^,*Z\g/`E,l> v閡 $>8s)a^}ͪfI`m;rBQt3!T'_*2w N!9!XL}*p? ͧ'7lԟ17x^~)6`cws!-kmY ":Ů !XUubh[q VWfP/P=cD yp.Z $dL蛅seAMZuf^j N㦗y`p;.9|CMɺΝ;wy_, 3)kwW MX-~QMb "k5Bc=Sgs9QL'uNNͰx[B>?8"X-B2yH!FCB<-U?X<+}:6=.f ;%Z[n[dPZHχ $I+;#E&4 =![]O˖h Pm&L.˯lZY4 ̀Ѕ2~=+V7d%Xj? a$f=5aB.(+x1XHx$^0Ы+{|{zjtmmqP`1k+%wQFR6j ,$,`- ȣ272>M޴EV`I[@oo#ӢeL;Ɓ3)dv#kj彳ϓvc|[k@(9Z&6, XseqNN^^xU;wBa(X0zlt LZm7Z8[y{z9YBaĂ͚ vWB[Riጥ邬Ykt]ӛzPNneD2.Yv=! jr9eY/u}DZL֝A9x:c@}} QY9e`m@rmPFݭ}aR;.qZLYc_]>yᙣOc%2r(kvԠ0M ~E[;e|>f,k(wW5]3\bKǝ)u@A>ruxDzqx3sn"\nqv4VsjDI2.M-aroN 9Zzx[56DiQҽJ_KtAx5Wwa`XvEl2Yz7;E74=dg ru5yKWdB5L2(-{To C7;}w79Π@3~@#'eƊ:Mi]@P\ 4A xh;_3$ӥ)]Wt'S)EG?Sve>֜)JYM| 2?'GvT?5O, ` sZHA|@AJ^Wp}eЅq23Du7` 2C=SH/ W[W6yBq˛zORb}vʶydbO7Jbcm3"GD-C`m0oZFwl@u c cۛ@s~ff^a=> .]e"7'K7u1U!gVD$gJ-,"{%m6(ΔS>JaMi^fNa'x0k+:\xz!ܺΉylWq^f^i~ke S*3+)|dSuNfNUletWEpjzt_+Qbv7n4f7T;4wn*Iwl:83x0gvߪBaCNh>ou-XIȜ1U"C#!̏YcwS'EiT<}~jqO}~/`C˾?#8% z/E^C oXvMHoP2d~ d9e|"'2f!w{]?E+$D;.! #XpC. D:<Ǘ ~A^MΚe6_UU;4TB֩-UUx:tkqyBO%Lf;g u5MSH8mZj+pWMD[e mm D]\AU]9CbKcmc[i<\][7 D]=j*+kǗHJ"X.DmG ΘkB|p"2z^z]U]|CZ4ouWHS|(;TKfXec2?0h3 .`Hg^pǻEݮi>Nwj'E?pTۀT(wH&vWV Lkq#iK@/sk)4x ik'J ؖʦ IHc Z8_?"q0PZFNˆ[A+ ~Pۂ8`p!D=:=' ׇ4<ʆVk_>Dɷ >ޏzwnֹ7MKRt`Hn,8iicmkgc}C $#NPSu\*X?|6vVfg P7WOl~꡶mxeK2&#@~G64QEY:HBRMT{j8 L.߼a`J5׼x/wqU\%MO0ז{nao0 9XڶhL9w?8vddne`gofoo7D=}hbL/vhuN3a1I;douW=q1tⱛ^ǡ?RឆGa%O|<=ԃ?\zZRhwb^F*Y bi[UaXCjCRIySYlm N }.PS.IQBPi?V3(C`5ߠ~JLY> !k"8Xnc3[7C cY|={"LUH$`=ʖ.{wT[n,""օܓ|_;`Hd+1&E EĮ pKj$P&&Y;aF޶&UXp&C;X[\ǘ*K7s̡Y#{=+)*jXO:ib#bg{cI,&cBG6k}ӗ\4R l,56jh*:319I(lnmWJÌP%|Vyx`"?sٓΖ~; 4t ͏ xSdR=kaЦL*iўHɳ$%~X u>e|Z}\2菊M"WEEY9ۘ?k AX`HUz+M@Ɓ*lgj)#dt,иo#+X(`) ;|o4dw"HVM1ON*LAv)bqt{@0彰j OK6״UBuWenmrGǹ[ۛ%Ou>q,=+3+%* #!Xk xB)_2CL*)~ u+tLgM;5-"{)Kt6 /u l|.Llf}"I\XA*d@c ky(5v 5gCXy2M`r34ߗlP9 檐>Y}ޚv/wkKYmKtS>~cMT1P"Xn]FFrM7IxLft' WcOp6<+-LLwxCkwMvC'u}\ڜBPq/@WU^IrӢ)f6<+`G9 y%ts7` 4<НvӯXDM 8RsxDnU Sc1eS{n2 X ~0*ҽn>zX. u`-MJ#KK-aTÀ,Fv$k82ղ&)&XpGMťɪ(c?o聨w.8p d:F2lSvBn2'SMeN|Q4LN xfSD,a<hJR#p9#HMN?eP8ɯ *n-6Y, ӏi¶R;gX%S)MtWph FcŢPg:rUԯt_ Bd)ZWt WyBd}jZrLC8`D1eU 4 bO iE Q~W85h7tX~W;9(e6 X/ ,oIw(!"г:h)L#U@?ALVL"CbOU(Ntc9;W3R;\fa_`PĀ@rf` cҴ#u`E- 槉,X@GD޽B&!\~D HuĞ{4.Gzls;f%/P|,7 \uɢ?{vmy DOf+-JHPJw-9b% J'{ &!諣rpD@JJ/{t}rI>$w/"Hy^IƤr7\U9A8 >xq@dN:b̠㇓<: @J.WzY=VuRTVe[&ٓOpuACs# M!D7CYKP-l||2E]FW/9Uv f靾6@Z5cv"M ~| E("X*d)8قufUGX |M8U`jZ8i⮳j=%{P' j0QN]ҊK2kǁjaT<4\Q41ˑBR6pֳMi ؝eAiMwkyݩm$.)D.ޜl:܉m x5q-Io"kqp=f6҈gy?EZqPI| 7с~\(I B|KqRA adTh+_> d ,X̋ y ZK h\OOAROhp.\h7Vӏ,g5Rh!jHT(› p})ȯhiM*Bv#[HExeݳ:c\G|l%}z5t kǡ},d=jFZ%3[BSwc5^2m;˸ {q"{֜&"QK_8q͛H/+@MTu$oN޸ysJ0Y`+o>՛.`Hѥ)UvPi Auo@χkw &XƟ}stK5;T;I4Ձ~.YCr\~.(gβggs(sn/o]vw yL|K7νp*dfPZ,W|s#ıW}~D fWr[w{۴'rZѦSވ $:wm)kۙR 73'6ѥ.sƞ4P}Cz _@-V; vō_݈.L1輒]*C@l4k7o^?sU.P9ipzuаK z k3%·GY-_vE,m2Hg4RgauCÏo|؂(u?>O+Wv;yq&s~*=6(dݭ7mAO5t/|sE*2~͋-8]ų :~|ϧm֕?!"QI7%%C[qW8sб7ugvT{eLZ7jF PޅȔd#[ [ǴWgPP3|6:7nSZJ,}oN"H8wnݸz[x)"t^1UzSɣF2}(W@ #[5 ϾfVA$t?;vѩ]O_='Q,y#͚Di:G:ⶀ=._:zS!6O?!w[,Nq,[A#'LkFBrSWv]H4X'eF? !k"F p*Ndؿ\cBl.xY& ٰsE^Au4i-usn뀣8TJ6~(kl*u] %XJE"h@\tϦR,F^E<"~;iXw.9F.`Q$ 5Bo F)È 4 :"Ѡ1XL&Jm 3ԺşȲ_:v)赪-. j/c/pQ4b,$D&4 WҠ<J)4gѩd28)y3\_$F*$6MV:.ŸiArx0*9o\U\: j粐ܱ6L:_|$&4-y%*4OXk>B!td4y,_jAJ1Y_M'DD\4ꄶ@P+PS$GbdXdk aަ a/=ol"X6Zy RtKmΨQI4il_@$`OS3S'o w}:Sfn&&*JZ}Af>,Od\E bs2)S=2E&p_`Ii>rs?DBЪ7s(Xv믋O_~!ޛ`}/;^t}Ȃ@bN&/4^beblh2d||<oSY2 ֧9޲Vx2%2dX?m:NdiDʶ?(ʑ! #X ̲Jd@ ֿx'\EЄ8ǜmCLY'x5Rbk,r+飽P8R#Jv᙭oFk4 nЗA[klJH #VfMGMdgJZ,`+l˗ O^^V6^!@Y$6ާk-;Yb+1" ;[ZbCGD7[FJ߲7dטe\!+\vA~ݛ 8sT㫰H4dyC- z:"#T3sD0QydvkkP5OTEu*aZbMT9ZI! ZlOp13sc4DAyp;k3ǀO;3m\a/cl}P6[M%J ˝Pɻ6O%:amifтjlOTY@-֏+D'k3;Ҷ=tgfŢt'\#̈́m1]!Π/%B.=?!C͚HqywPTE`5>$92%+U/,ls֊$%#hOrI% *|CKlo*%:چ"yPTIߥw˥ ]4>g{U6/[[Z]Iɞb5lL#>ܗ/L9xTeR,ϊQ}ufೃGoy8[޺x3>V_s`ӀJ8hane8̗'R:,z/N*U$ 靀hO5\nddE;%D$arg.y-x^* r/!fuxS6 Ҁ1qObPcC6y( -tg?&}M۶EFv{=R@2 ;F)7Eb[*s.#Fwij>9Pӻ4&%Z/4Pm2g*0 {6]NW$wqf@ծix8H.z_N$7댂S ^) +.w.>sÇO

>o^j /}؈.?}iq6R]yڞ7xݣ+I~y_("zx|8CΙ`u_#d?NdI]~Zr>ChG%U^P ЛB;f.7f+[]-u疴&yϰ@j!BgmbP,;蛻 7ӱΊ4B*}"Xf\EuAe)Dh^V޿nemcr2gےtu'1ۻ@9{+o<}]m6=" XwԍI`@ ]3PjOJqq政K a$obåvz5Fd$FRuN9XWg6׿.@+F6\F:..GY,T@0Z;6=Z"YҞ ^f Q 6n= %uKj,OLV{vv~\j>&5yJ튴w~}>S>0T^_g̾hhD%p(@gtuglJ1" *FY8{|[NG+;LtLdi @ʛ]UAֳ"5UҁrhmCY[FxD#iՁ}tVK4?Q_1 ?jLJJOGCTdxȢb:샆iI 7tjx:A\WXF A&%Z~Q߄:Re\;oM/RXP6Y,ACtL/+C~Ҁ:"PeEX75rܼ\T+(wx2=md+Vs<đNG}&12$1i-=`6+2#)l5xƴW^|oLCOa&Hٳ0s+F1yEi|QߺW:(@b nqLo5 R>#XkAF~Mt&##(U+< JxD}[ XpK]g,K! nܛ] dt=edSZQѶꪡJLwkIQ.8Q]7JԾ;37qi1EvI/UelWABdnq|9M@_X:ezTոJ82O?sݩ G EXKaL<kmEe"U`joc=XU5EFGvI0Ov@k%_ 8GcS=eǂK`>J](ԶC%w`'/;"0~;=KE^)R}9) Y0+d}+/[nB>&JH:6cD 0Q-N wDөNZp$a$twK]V|,A\mwŮ !Xj5J} @ Mk=t2K:$ 1ߜ>7s}$ڦ ޽s0)\1C:}CVVł7$!PBSST ksO=4T:AsWr0n9zUC$PQ GMƹ٤/߳+,ly$,o4 Y"zKzQDG3Bӕc|E-͍8K]]_"H4 4KJi{R~.=9t0p촞_ 1"بE0o]і"t/+ݸyAF椬aݧ5jc 1MJ3R~uP̍DZmwsP,७H; gTZk]YЩsYss&7/>|6BjzjU ~$K0S↌9uy؍r@(#sׯr|oTgןiTXt'ЈC+(}\g-عws Ѽ9hzFF5lk'ZȡWՋ74) \z :}0qor3D~ed<}ke*O*):YÇc{uv?\uSw/ E4IuyA^lԅ xB^;=qFEPQ\hGMh&}<{`8muT^"HA+X0#MچV犴/0SվwЍG8LکCeQ }O%\Oz 2"@uGPW[T g2ߣGyҎ+z_3#,'`DxU|z4Yؕo%aH`sE贛"\VӼm>} d<S|>myH?9dsI=Ư"칬!XC<$ !>% hR_{dw|RP(g=%EwyI^]ت%2ljLK:~^K5nW"hCfuP|>RcQa}_۵H$^=0ʿ{Ie5Ўu^`,2j^Z輕Jk_h=4z/ if7{.^9{NKŰ_^8J @|y*%ٹCnٓ-=h`,..H$Ȁ9ɩl6+**J -yǀ, m8 0]*FZ_MKh&Xh`1Co3?:-*90km&Xhtl ODim{k?_|J{q IEv/ԙ~3cu o{^ݷw$X p`fr -)EA@J>xXk­@c:|;/úU3 *y"NP;️G-Bȃw !XΫԗ4 :|dB1tPx+5TuHكՒkơ/as)qpY18xE$1SWk4ڨ>r|^% 37(dž yC n[gD>F ޚw)'n:Ȝ84CV;GԌ=9UpeVRB/F0=A a<̋P9}󔪱xڳu,ⲾkҮqW'j@@k gFi潜 :i၃+G.+ea E葃 oxosUd"c,./{}*9H??|4c']KiU&/.I[fbCZEi@י%@G(M(X,nR(ٶ@kOqf;fVG&7߸x/8L8tA 6:Pr|򧏾A;gi\Û#i:gs#kn]NSX踬_ikPwԙЛ3i&7.rr`h yk8l 'x2L6~2kvЁ;6s8C0XJ W@:vE 'z AwSu>_1p抧ϲL! wzYW8}KIwJa#6ޟ_Q X 7CҚbG]-<8=ۚ# lH{6L$W@-Ӎա)x w2HM-Ņf,O.McdPA)>sS^.8d%Ò(<:q}e b{0cX6vf1}^yUJ|h"1GOL6#5ku7bS tt3g dL+bzO1 nl(@^C,P_#njn20g\ڋ1׍7grG&[聯 | 6sCz1PXO6DDdLr }UQ8GXls[umW.ԙj?N2-x,0##~"JA@# ubq0>!#,lX{><ܚjs,?3LxѢu>c]E˝2%=Ӽ^Uӿl9MpSY (,*iNlijp bqYs=? Ԑ'ʵ-h4|ih 5 '#y#.%D>^fCXXC# c&)}*ȍ:;BXh6{͵bMͯmnLvcV56#ݰ$,[dQ9HY`23IliDPQDj4uk*Y\oY!I呂gj}T! H=Q @]P7]de#䏂4C,t֧G XhNŧF1X?kf'K_9m%cc{_;$$o|3E-'s2`UB-K]1)SsnO.=ϛlQ-jC[Ӑ$_zEFEeU[V'k,NQdO868z#1*oMz|ѣ.?|emd_',-QI7L0qzV]b`p1]"gI,hII$VƓU[M|!kdP*NV6P8zWqҝM,2B(0*k|GC)rMc8 d F:Hn-fKA!.'ϟf`K"K,qnuFW>.<L`=KJ0j}/x-B`OAKOEE)^~bϛKũL'+;B#w|~S!FK[_U1-Oư2(D|[=yig d[ܸT]3!"X /\R P}.`ƻYEgt])nj(t*dPi c膾ɧ4$ZfIk(+%:~2ͳV=RF `)مA-Y)xuVubbBIx  XJs$٧x@((~b-]@[Xx-+Pŋg~}}:?$ o>$rT2/E::c&t5.7c`o++AkuuPaL a/gDcq\zB3~mO p7G*# u{kJTF{G#<[geHML< 2+.FwtcI lKDW`kyM",POC&QhM^f2rEi<7Σ0 In H6I jmnl8QH`K|]:!8 jMFCQ\Af:syb|T c-6nz/?(s燎w=[Cצc@56Ql64# ΍p=e.aɡ̊;Yq6!h¿_r*寧+cio??>yv` #W~?OoMӅ+$IEqw. %9?Zu[[!@lEuEpB,*-1CmOeޱ$gm.ɾ"MT,}o/X$Zk26aPcs`m>%2eKnmQ͒ -bTѹCfm<tķ{,-lO;]tp @|~R /*usmcQ~p.Գx;$K’hvno'ηeHz8PY a;X)AsV'cw l!"PAHu<vl>+ |,M.T\qW3}=2aN,Mvu2aƦԧbоQVxVV'p1m#|wAcx#-2FJ]lBjƈ A}P2UM FUc+D-v93BGJA}N՝sI,|s_*be *m{ܖeup7?E8P$8k [HCm7iScf!ҲxŘ/I:0W]Wt*L"T2u'|DQXk+C G~_V)zl1/9ى4譋Kdz:+@_#O՚]/M!.+zkY`@\fa,tpł-Tѥ[ XO1c$I|.Mvd0$C;%Y2?Yg G ?H@yb{B(w3ӯ}yD*{OWͩD'Z ?*@]<}k@{9F< 0Z>^Zkc%ZF!^gɩ .nq;)hw՝x\A,ИØK>.`}86ydgfh;k*؄ou?<*i=5/Koė^W~ {op6c05h4NzI B`E+ -""=U?` #6)E@{G5{ӌ,ێ6{ +|oK| yԥ뷾4C@J\:b)o!-N++pt%-OJ"Au`I ֿb`gP)R>ޕ`@?p, UE8DA$K{"Ex/kK_!.\UGڦ!v<&HXwWa7FTa M>`M'H`+p73&Dıy\R"dڻ2& ÄBX4B#քe"U"6qDL \ DEn/Xg8@D*¦Bi5>SHM%,Pv)1tD2qO+q4q:{:@}L`Y>d47җ18,q`CDH+xUSx"XY5Y5]t: JhƠ"H (!*{]MԽ*R,/-JBfKI'A"5qP_1HV4*Y9(++mI7le9laHcqhdbcQ ,)DW]F WQ}«pL{/ hPhJ {i%R~Q~>ZgKl.%K.̌w0rGyQ7>2;GEM0k%B< ghKH8:‘~0Ћt T@ܷNܽrS9d<|sW Fջ[/@kXn޺sSۄ>vn7Eڣ~{B?xR1Jnw3zY hbZH&$7G]:O@^9$IANl =n_ 罇M6QkcR;M; `rgZ"{(ͱ g>yY4{=*i*)oE53q FK GkAP?,Aݿw}yS&I]\.5?P7g %opaPP,7_8nkܼ͔1FWD ɀ/zk^Tɴ% idGٟAx=X KH`HO"!_ ~_QbNe#\=ͫk&+KnSfKjk'K3W(:[r.&d cg3<1:5u&}"RbQcOlƦg{5òtJUi{>>.xt=S|4V֥Fak &Zo{O)45" {#Cj.,TAgU\x3`\x{DR gm~z=-RR[ϭ.8 9+.%G!xQwt|&tEFdD1E|rIc|o 44Y2Zmn(,TJη`8IJv~Pbd=dž/ DX ILAAx\Cvd_v\p\;v<]DVD|ZCPvDc*ib^ E]i\Vjm=' yil|hBHkͿxgu$:I$",i7G_ZRb%~/Х)>9Ҹ^,~r4jt4^I^HҸ#PU`ͷZixB;A("XqO5)i,ڶkU53K6 )*ztQ2Z⠩_% VQhv*nvˁ,Q{,,Soj\Pinsg.PFC0`D}Iל҉saVja񥥉~I+H&Gisҍ|Ҥ],WkT!1UqJkl`1Va5[iQL字Bk6KrSku l{> mGغHCaRN}:lTXT 36{l͍*'Q@r''5DEy9z'_Agw@\ Ok C; t[GYmL@%8z!D`,L eOp³w[ԽqH.q+e|`U4@eAPxx^@];d読 2>י]/[eJ|cXZ$b'rh*m/(,Hȏ\3ɪCJ`m]Kps)"6y~^DPJgbL+$ jofPz \j f7"5Uj^'⯖^zjFVCUf]rh$.Κک]j>:*T~[L@ bk+7>~u0V0&5, *7u:ꫮX4ď14W_s+v/ʛ &v$vw7X.LRRaqEFWg@:arO#hkx>RߞR 3Qc4B\|<+{rD?BfbMbmT@ۦ}?SP ؊PեD;sgT y-{Q &Tf#J6S&e&VC X`/-#EC`?%\0 /dp'4SNEnSۻ'[;x'|?|-Ns?MV`4 diСVȮ9lңGJ98>^&XV%$<·lCi39+LovfF߮k ڄ$M`[D(ЭxštHL2WC˸IǽY贀 3 U5j] yڢHȗ:jP] L+w9}вd.fU몟5m(gm\IK#gzRñveSϖ)xa؉l9g2 gFl[I;!f!3ԸJ7SqK\h 8"lr:),pu01gaw$Xa121`Ijh4 MHS@;9R率ZH#a\045U1CڰW|-xc.[Y)\ᖺK0!YɎt@H$6_՘A\-spK5.@p" x_m#+cg7"qݹpC YL;W?bcMAwbfI|2gUtM,-Lum+&، 募_QŬ,,+0XGVzƺơus"o mW?%|&|V0>҆o} ƲF< ^+{+P[8U|RSPHP2GlmD}V<4`h deqŭ@`%y+>x 7޵չ,ww_ءiU2~k9AE8Eٛ={񮲑U`(yG >;D]i# 33@1ݓ_y*U30ܘ }o_P,( 4P b]Y.T Uڵ81'b#$ħV4N0yĖl0I֎`<9%R#ou5[2U 9`tu$*@h Y>2/`!=9}vPW6 /4[1B~gqi5 QZZ^]Z1&:7Eq*RDT=σ}% YvmϪDՏXBbQ,?e6ʂrf 탒@[4O" 0 %EL{A~M;C'6BovZrni;xq.55 `͘)ΎONΜjw4nuk+HDK\"x-̓vS!--EF cP2:f[HuwwvlJ4 264U-Qg!\|rs|Rgifdp*v8⛽nn:NAWB["Wr1VevG' ^{P{8/Tx𶡃_hz Yb/O$X={o^Ѕ Sy$S1f/k=NK}4ܭgv~^:q lA1G}E%%]ts\=b]KOx~~PYכl,w;Xqd6{7 +6u5P)ojQjp!`)w~4uIALCHv(J;+jqrT n) MPCWhIvwҕ4 {U3|iЀן^\jϓwγWH,HiTjLwE0I[Wr3oP9\HGݻQLKu`La'B$w/@_{eBfy\O-;L>D^g4"`)x?>@47Qs̝i*[z=cUiOޱrVm1cB-umcI [v63*b8nz"b(o46$k~amk|3ӗ<7iX&==9?+& d|_ztДJvnQ;cb(N\z +ni94[^>}>hsk kUtˊcw>Td!rAiЁCJ L)2.\ҹKi3InjǏ?N;at٭^HmD ̥g:8IhKfE=P5ZSMxHȌ67=&Ӌ'fKsBZ"ф# (]E ՓrnNXYK-%t: DEIx-Bh9u&ݽp\rs /?-24⤯Y_5prp@B'/*#uRjaR'THc,&=M)41:)^aLZH ƙA*7;y#ϩ٧;>0&l(IQrQ.s>{8 oKJEO?;h[sYQxs%FgR̃rFr7ACő~ܝ4 U2LTleDMA D[|xMI||M6ّAJ@prOXqK$ru¦z6_f;=cO@k N HcR`Biivxb8ҜaExCOO9|Ob#H1 u|Y0\[hM0ӌqܿ;vQ>6I[L@V?g1 Q&8}6w>Tyz"Nw4i?vP ^e@Rs[G}vݻ*=sdm,Z'ʥ2'L'4R(QH遞VS *bYuδ?'4obqwP_ek\mqLbTOUж`qL4^y$5AXOQqm^C2jEAb2\Խqmr;t>rxm1:n+tp'iZ3Z͵"x[9\gK5N3#A{ǭ32GN\6p&2@paI 6Wo+TS[j6ښʷ{N oBJ-t)v׼Zd ͉}g2~[H5X¤oMbM娂ݧ&M42!%(:-'-7M `240FDO5f**£f CUI槿>"#<š/%z%7%(wUw8%X)#oB[M?C2b<X^ya!?ѵdb1ĥ"XIUVzZucbiMMdXbl8}nMr>';@Km3izϯkxg9-L_;2Z2XR~Qb*)nߺj.'3TF7NGc/>=(8E(;h%B[` 槛C5PC"'2E%V\WNu r=`1 Ña9 5*?qA;lF'WT@ƫ01CDQWHM\eG 2"H^`B[PH4-Rl*r4Rr{Y[t*B,٥shP xLo-T!&ֹ4u)z"#lS[A"5Zov焣kkD$LcTgBr l^tLZ/okAYjxLڜ_㢷Rզ H,5Z6mq|&e=,RG;h1^aoF' 2DZlk\l,XK-LI+,TE(f1ܹ {"UXDY(:8931-IMXhJ|V=c%-oJ=mbb?q᭭6$;=9īrW3#AH5dҐ>W#g.'4K !yX褄 Xfwo'OCu nmVDrVu,pd`z6D 1f+6恒鮢H;7ޥNnMKA";I8'EP@iwU1*_/&`1!@ t8w05sYq+ 2qsSL-Mո(UCB-MCfhs=ݵଆ(ٹ(eӄF I^J.mn14evNb ($.PS#LQ('5dSiaQ$,N.KƤ ֗^*"wm t#jiH0va۽ Z$bN9̂ZխT2%ήg,=!0~E@U-BQ:q_o7`[xN'=9fP(?G!AEH]u4{N[|w_T>/G`=pnl< Oia) .#\G?9,s C[ک`q}\ @ke?T~eŁRl(Us̡v̚}՞ޞ0R/9u P;]|½ }Ͽ~c o䝶g5̏\q/n>ط"^]jǰ;;;,,)j]ym甸cB@wzm\+>5Fg߆h;Aߣ2jK\dLVv!ΎH6 ɿ0&#_lW%"8(QΏ2_ԔцrJ1{v`1(՟%_ǰ!o{kpQ1 `w|0xa(5^v}v=G’{4Z{^Sv`0I$ FCN,**JG I?pil" E$|`tHϒ"k"i޹L\J|';&=Qou8LWKj1>rtVV|cH>U7#>yJKSӗQ/0RZHuk;i*꯭tkԎP jLi0k]zg%(LN&-4 8,@Da )(otIHD68˳C:{0PjRHxk~{h:X_ A `2jtHO"k"_iRHxL8AzH"K" %X{#6uSp B W s S/Rwxhp`TJ7fC@{P, -B.`}+Ag,&S^NN0;EC#K'80 O>7LUvJv/m3 g[5\d M݉=wtg/iophsI<(ByrI{DHQ0A 4rfY}K#E~G;8rҎV2 .’W;L̳ whDr։ 88k8P:$4Ie3x5I&rO oSNN7RowӒ3q-eGA[{W]_e kb-^s7 /\76jSQ+ [䰹*jXK Ew1mAI#9R8RC o74E^¢K[Yԅ)9%սˡ`4=u%9M܆I'%E`T': @=*m1)!Gqt}rr:9 Cw~L9[&7ăNgX cHoИ1)m_`~{׏l5S4xh4}D#`[98,g=G\# =Pt؃5BV(M`R'EB`_%Ő1l1s>';gaB#-ۺGO36d|wiGp?]756\eC@drkyN7@Gpsp_iY0}Ȋo-fll,'5{ĥN76:->mcc%6czyL&C8L&MHcۈ\> LT[,VI-> H:{D72#ܪ`!JDi Wrr^Uzd;4k(gL<`QHb0sC,c+@ 7dI:AHG~SP}TRyjalzMbP 1zfjNO 7LK%+3gj2YN mltD&3규Gڳ̣Cg.Gѵ*yXl8,A~h=<2$o+H],{]"2"Lm-Z=҇+|0 hQ6`0,,]LpX#E(Pg1,:Y`*A;V5ǚ*9}'ɒXcf:ž*7S)GYlSEB@Onۯၕ[b`5 4eVkfONV)qhEÖξlؔS׷DntƨrJB{3Oj_i85:Ȼ+\ȕd!I֠a2P]4;q-wt Of ѱ&=pfMfe;1N1͍@Mz*ghfNBI@ 6BW޾XWm}לe<6`P~,;$%cTvNP@Yѭep͊Ay4J,8G``| lcN)jv Y.l)aVj ڑ8}|wmVp,(ѨTMl)<iYVg~8~?Ψ/@%Vf".NAZ*xş8_Ͼ:hƩ\)C}|: `*1Z |mޖls(~gF048"Թϝ2V9~J\0(VZm-p .A,Fh@>J礚iH0.{]"0q\G=.(`M셟rK;7o;Z0%TRZ$fp \CtF2`T`IZG) !X@d=OzD!2lR< " )"Il# :(ql,vf]lBEg8UM 22sаIߑ }5 `FF〢N[FXxxX5c2⠟(d0[ Yz*AlɣJ]A禆W& "s(%y&h>%!-e/i`aagV0(Z+ #t89gA6M\\jjTbud(4Ȅ/*,,?lxBbtob kExN&$s}sf^#lޘKtd\<o/#`cMLQà0? , dxOx~ 2bwC,d t u&Bs$yĚ*ݵ,(qTeG]wsѶ[&XYzZN[ Zu^A9s,EGTU|nBd'XrRc[v7^l JHG~ ?sYդxr'RBPiQ"@B.({{{{d ܱN2095<}OaV&FfQX2M4ǀp76EF6v S@9B0]Řlkr<#_'`kZX , b* REI.q}Ǻmm75 zXOTT} Ũb:vLeaݿ c,Ha`T %$ fh榩pcDe#,|V[%y%mQ)<ߢ9y>qy%4#A!=,USk D;#+"u{gfT9@YtTt>_wIDATU`03hn A|2\KmMtKm~`tbGa XH {=ے~+ED`?NuPUr)CV9Ɇzw'ΞzL y5ݧaha*AYgX= p% ~&3+G7T^%wuA JȱM&d\JLHqTiiKA/ֻ1Tf~'BGF&ndrnDF\닕V-,c՗%wAlwkU#Mm'O9Y.|g縦I\g6&d[+I-pC COp1<KM4v [$sG.Xb'7 \X YN_r ?T q}}e$  { lB 4Q6mᖐPp_LFe6ȓ#mЉCIfRT܌BV &+^MŽ2[9o1fbf0Y$ܩTKǖ r3r o54牠|ZYsB$sɘrSz+{vd81F ABc7yCEh/T"y-WXnxe)#/M GVNp[$u!Px :Qe+Skr;afȜ͍5&(Aot n}(|8Hu;LSx"#X9r횼m(FhݺRuR 89wd 잊L8iG!2kWUI+j% ~7~*cJ9 jzb>l߻P4CUy"8ܛoS8ɁP('çBwCh xF!-keSE,.ɗ. u } F 0E9ag(@J)$G9er OWjԹU^3 k_ v %^buAplU|cUpA1{BT+f3Moݳͫ{Fܮma4[]i=sK)j`FA 2{…rOҜTsb~ Xɑv䷋%X"w3 4MT*=E- ֿ(JaK" EME` H7RT6z(",$<BV[TY^[3"!wW7)"X***࿶111x<~0΍_Da )QhgU*_a)R~33yi$6s &k_8YF{N@kͲyT8~D(mxѧGƖD1VtVPiKsW-KHLT}䵧jUS*.[{-/~2#qM ?}\ȹX:o}*osMo?Tw%g7'\?U"2$B|!(.C+-ฤ؁eFᴜ],3Zo'?8 wjjOo]6(VV͝;B1XuRfh#F/~䛻PwRךU$laP]yT:E(zp܋dm=#'.̯|ᑛ$5Q.FurFxK3h5~Zuf4Asxn€΅/+g|wmyq.7?NPԯN5?G\V#c;ݾ.o 5:o89^᙭;RJ" &u옮qRvt߾\X&ȏ}tG,EϢ? W|rY:W;ҾL!J[{U[d~:X!.. ywqEt5[} ]kuu5))IQQ+udd|Ƀ'`I,l:.%XvJϒ"!T:2~a LrTpo_eJK{fWDgyvY .'(άenr3pMSzd˕naPEĦ* kG'& ũ}.v K-;< ] ճCMY>F)] !mBG.1\ֳ|BQhz{M0clcSiBZ Db_[Yc.g 7\i*iL:{/PGӾM΋uO[& =]V43-މyyv:Yt`s81"g014[UAXjNe]݀ T]p8ͥT&v Gy*q*iPKȺ͞v~S;t +t8 u3h~G:ցl2Gk2텕 3p ~I]ٵ] >ț5.k!Q9l7X Xj:\7`Ͷ;u=0M:ɩ:@@ua1de6O3JNilXqk5ݻgjSqLiX/ wJp)%{J<@]\4/1p]`c@j=TW[U a+{fY:6@vO,h ˜>*uiVdtn4lӹ>Ǟnh|ԉX >;8VhoUuPn t*4ڧTCa+l|u:$X,3#61񉟐HB(u.#l'^i3vJW\wy`ua ?7z|Yfv,`iWO3? H4BK=XaUH_9ҁrj4Ƹ[fLE|FZ42ʂjxW2v2r_菷yJa\oѫw ː.՛هvvYC?V[?&6!&TL?)J2 qH:<%}0 4I^LwKQ; JȚnr03@#)OYuYT:Q[V5ݖ79A~Eb4xBF%wN ]8J:q*smPy"]T<[KU|BzPJJ|{0c3 Xs;\KLWL:bN4od l/z;MH9q.VLVJ%hY$Kk.[I :BBO#kFw-./BWV^!$fZ l]\lT5Ϥ'XA+ѝ#^pʍr:vzIuAh6wvqw4n$LY^j`U(<}8w0p-C퓑~8W9I#;{=ִ]\,4Rjkjim]_U!td" (4{.hs:IsooV[A6!DfO e r]V(}\lkYMFj~% zf KŶ E [[nnT*!ب\{Ȏ~?E ( ¥^5>>.fW ^zsɥEd}`-B >'M4V -,E@`_eaHŚ:ksRぬ5{VϨdMhM)X<ιᨛ3-6gjJ3r.mOЏ;Y3xcyļtk{|} D`bj& $5^>ލkY`xM(a8SX9`4SUVo2*K˳Dr!%G.[K)MiXQ1䚙;GbLmSk9.Fe5U{f(U:b<ʴ".gpV/2&Xh1 yHbS /`^끞h,DKL/. j'FUYH.\oJ0pbϛkh?tZ%Ӑg1UUF'frH)^RqFt\A75v[&:iWl |R=Uؒp FDoN ) BBTQM`D*T?."Xs&aB"@9looP>*&IHǠ*V CBYc(wrE5uLɝiwN^q) 9>#`[sOr1 py*`qQu8tţU}GGi MxZ@z8K`q]O@ `Ӑd%t{|\? )m1AY$Hm#X5AL*V>$'X?frS#+9~ d^,2\,/,qUuFcrPa>+`D > oG |~`w=#Zi(}'i ;Ί4) ` x8sE%|&c6}q&"vchxc*Xi|]gjA |G &;e[;e՝(ډ2e zFZD(63m:'(ɍ*XF'Bw5:qʆサ`%iUcp!J386D]5s:66 ګ1U.-|xg2vӗ64@r=x5I%qXB,3#'|z=3:bTe\aTd+|, Q2%Fgfjx ۑZC[%X 9 v+ D:tdn00[^'9E2XF.`'%΢+ٝK@u6`B\NO/ɛWQȪy`Qړ`1Aďޗ$^js3_K,~i(A0 1(|pbTxU (&^V(NĐ߂` 6F"KϪ52]q?i\X$)cNm)l\|rwMZ}a`-//#-B]} u"D .cF+Qךlà0dqE Qxj^cs_ꧣbZ<"\UQE hjIl&Uhw;R{lJ/a:K׃yf6§ΣlNuD'nu==|;; I4x, \m#(o"ʵ$b&ϻ6/ҦҔcC0@sۦQ{z@ƙ/-@ evcE)n^!)aNu\"O=`닝tX_;|V|БŖ&CoNYlm T;?#! 8? l/qx.Emac͟ I-Ӑ=`l 4 E98ԩdmEJkkP|$ccLd S*G@O{ >⺎;*wBڧjRsok2z}E 鶏S霛(1vLMML@+[,!rGb:Iʤ2kZ@HND:XW a%tfDEdf& n(IV(Q# 8[ YCtDfXtE,ثkI!G^NT/6?Uفj# L10ᱨn3ZgrCvjtD'cG&)tG`@@djcQaAFCϠ{lEeW7x߱ VwfUvl=:ޔ ^::GLKWc:WXRcQ/TlכZ CUv<^]+%-:)X\D8{:'2t_ǷW/3EP'5I&BCR źȢeKXNt6Tv  ho0NlK4RXPӈ[P@ 61_$Xk}DXC^ [֜Ԅ!o@Ж L"o҆J:gAxK8YtB].*dٓ%*/dAH,`DA71X^rD`ph4Z[r[`tNN2:gjQx}{uÊ,u 5nh$g/BƗo_%W4uKtU!-U ;C@V)gU@h/he\V Ȣ54.9 g/' oPFEUE. &XĞ#T "!iv0F|߂kQэU0;%ōJKClH؆E={ #p ei7߰:8cڮnoWg%~θXKSW9~Nſsw4=*zUn}_/5əa!hF"X@;,X)o>֫ 2 SjRo$ͤ]"yCh} rkj IhDIr&-#EB`4[׺F /bH*+++**@rZ}@apaaaqq*V >VpbK)wqmۿ.r%r5;nq0 fmlz/#^{u{w.r$$;3#V;3._΀߲KVЉ}Y.(tr@ iiirzxaj~~A7CЙ~gh\΍w!`d'$#$ne#k98Ё^$yabbPJyM FovV.půp9vrߠ KO+qqq`k1;})Cx{Unx<}=jN5_# bpr`W,X--\X3kD\._ CR X`3\#%*,..M 4 nWOKi.BXq xX@7,'׃s2T_CA/u /sxi@  g+2t`,P ̛&>tq ##|a b7C,ЉiGr1icaUUH ;|RCOd0@2(X0UѱA(@%֙eLP $u3l6=3wx:x;RCOOOJZNHelllxs"&> :9?0p6,2H`J Ё0ņ,7rŒ_ i _,0J㯓T0xVe<\& @ " wP ǟӏ7tKT{VAmmhQ:6 -NU5&[g-9`d,@= XgǥkiBr%={ܥ,#pAKKsKSS#) `NqXccr Ёρ'[YKxQs >Saw?DP?coz^w3ޔ?g :uՍWR&t_ԷO}`y APY\y*Ntssuj|R~ W1|ꦹƤ`;Ad_n┽Ã+ܿo:Uf}v~z$'l4`D63X`V/GHB|`0Ay~U3Aэ⦢ļjPeB溲lq60E 2LyEra,XU $'$0LC;4:x^X6`4;č |bJ:5GSyd6Gu0zގ s;=7;-Tݷ`tj둛e/,Qs MkUE n!`է9JĨ{z> @M^m}+G5Qf}OLHk2'rbèi,/;:7n{s {ǯTؑsѐZ9C֏`y 5?P߇-̐|`';JmȏPr ƾ:Rk7-_PBt)n>6y#xo+ߒ5t Jg:\9}H2UdʑX`C`,[(`Uaug5Xc=mhP-r[[xOlo{gBFF'<[o&'!і8xb|jYwfjbttd޵0=>725=1?ۅ\ah.cJ'dž箵 d2EPg[ϨBƦ';4<=68<:>>˘3ӣÃKIpO}<o'Zn]ܽ [־s)t.~WvmJ5X v|Ao}kR`_4Ļ-6;LU y4Eޭs "6!$`Z@a{DX_,B#TePemo4gMbH綪mظq5k?~T~.lS,L,\&H yU] }K+kZ\p~:aQUݐ*qk+q /1R QᾡeXn{λF7 AAOcAl`)!Uۢd"Kj c]M*+Ol}q!.YꩰBힾs\ j0P*̐D!`=w 5>X+lر[)±QQ5sڷDh;FH{ZK%}Ý-E=cm(E[ & GBgy Jy59B8[]مzc>=h榓~>oj:whצ#w:03UEgzK=ߨ>Yq* -ڃ^?F{E%Ygt.)\Տ;'sG%>V~-E¨YJ~w_Oa/o޴uqu 'id~FPD!ÇT5P_i V߻ Lnj 7gN:[CsO jL;OܼZsQC8e//Xb~1,\=_bE(26H߆Uѭo$o;M9IA^&ކ_#ǧq3"iާ7|rC#2ˊ.w#8B)*=`P\\1!#*,dHU|1UˍGIsE|h xW^7gʲ#(yr MKk>`ILk`aOau0?Ldupͩk0s"`m&Ͳ/`}@,6MQGlu}4۾5>ULfG}p9I?џtkl m0q/5[X;;.zlcfgmcd0Th< W]uB 1RF݈GH )`|c' ޺q+,i>nVEC脨,զ $6:a%DW8;3-3*Ap΅Y3-_bQ>r ^ڋmF0K]ɢ$Q>z'7Q XBµZ ~, ssy9+fe|P˄VҺs"%.|`z+S 5Em qS2.Pd1L yDZBhiba 1Mt9}j`V!O:;zp'1*yYZ_?};5H~VVEغ(,W7;XŖ k%^vIujʑUI8ymmy8ȪHDFZ Xٜxǁf߾y7m]1 t_>,^X'[ i@Oܐp 1WEVMS 2oX+ƪ,&)&桍!]!t#Y2#!!DC,܃S*M _2_ےC,q[[]Q_b&T*-Va*mMOc?Vl,Ds~B"CII hBkuZǯ8Ga950 5Fx̃Zqay| Dv &ڞwZr\+r[3SmCSuF!6c5"]f^#>4fw-tjD\g}r}+?H\O9?+[XcCM^7ݵ_lo ՟^._w+64+=;[SguVq,vRkZA]/ʊ-wͭj՛PA7$efcGM^s%ƒq,qLP} "GNX}%~^ՑquUc`%,Gz銎Iaͭ4wljpd{dpkMþǝ3ybt+79m^і>G_^5s̮+/&MjmjR @{))"{!) >~n:Z$DZCKmZ`;N1s=Σ A?ߡ~7? hhhjjPK} 4lܰطs+;:ݜKr3vw6pWc}=|}[g;9KÍji\)ۥi{ʀX#{O͍sѰBM7s~-x65ͭǖ$5UǼ><1;35> x /4_}(m v % 7}zvh1y6i=@)JprN>WNp 7ΝڸnSvE&;1qq1u[47h GX}kx%'p}G5 =^&]TD`[y#l|!\QĒugږПZa e;mlvk6͐!&g Xs\xG혜ÿ95j 0 Fs~鮬0#wkgo./?ځl$g-(:v &)3ǫI<BK{1*+k_F`.6YBu w! 7X[>;W.jD!jn>:5S\D ]4gkxH) \"Tޭyϭ{ϺEg5hL0WLUdC}uԷ|v2.o`UXOuo;=O("c5X(`mʡR7Q= kb^{QiB~hMM"`33ӃqAV^]% 33cU}xt>P8 ~-,Sf]E=R`KuO9n'U5&yĞ-gcTF;1 Zk:p _-u|ܝ+zɽʝ}jqa(0+`Wt;^u=4پp2Gm%j,x J!.?49;ӔϯG:n"Dy$GڝbWֹ3EN)JQFܡ.Uy^9w悭{JMnÒNH5X ȯ'# }!*^wTձѹJ w/vkCQi+0)i(uqv:>`1-3kʘ3G9S"#9\zb;3]TC4\aClZ. al{҂^2uKwj譍={FXe0&qoI_eoSCr ,8cWmkE81ўu$S<cMElZ,g.+>=OFN,j:FGʹ?,opYW&qV_U׭&[| LlӻG87p^,NKc=|Rj=mjW/X=ɓk] .š%crU8Aetw2Rgd7IE`ڇ(X:0r;dUE#|yՖj@ LʛMD>0Mw1v d;jO#tXaBK锱ݍ.洈9P ]),+irjE^{E覣: 䶕kwxvDRg SRgSnpQoLײ5(7Jb/JS*Z#o};/2`t6݌oP%Ȳ1~*[oa]\Vs)?>~R0qе N&[9< onɋMt*jaz{GMJ`A0 q_!i.yL`YEz"/c²//*c}yў_|jitфwy5<<dlOlIBQQ"`5m9XBڝ=BgDGCm밼c=*m%}~5)ohL'XDWwߞr3w mJyXIxi9`^v%ѷGìsFfK5- ֿa5~yK7Rx#ofvb*Ԧ߽C+lfs?PqOPM;"uV`ue@:oK^-‘Jvo"`Mvr[ޥL3 Uͅ%)!D:}I`3|OXcx~.+3HGᯕ+0\`wG O%TvNp!x%dov˼δ851/f& 4aaGvS1t K2۟v=X *7ڿKCSmx Sc}@k|20:Xw(Y1&(xurUR9\9`eb#f$zGEUAgW_{Tte i;sD]]mma>L>Ғ3:zs%t]iXPd%+q6{H%鸋^}I5X98}Hoc}+til9lR+533ZhZ2`M uf<8i!W Bb_"_R٫`c h3B/R`1h<^rwsP׆X hpcsȶ"]@eæث.9ׁ: `q}cXq[6Ƃh- .;Fw咽)^WPg^PH&53ݼ\w#a%Dlp1Į&,ز8<Fyr@qӅ FA4xU[0^BW<4v%*"?ÖQ8vH17'ԙ.b)FWB.E<2elP;0 ƫnV>4p|lH I,:X iltz9Yx uκX+6J `=9>X7.fȏټd`Kg]0Ja&pD5lbGK}Ik}/`>}Wf_+WSZ|bsn'pߕi탵sxx Vj1 +5N!^P% a3 }pAXFsX8 &X+9Vހ3` f:K' ӀR,,t:X ʅ@$*k%wr_t::H`ɖnn Ё0n'Arnn.' P^='f:xHOO/.3`S7Шg5gF;oMQ9t/\ L@gyz^̬\AЁvxz3ƠI@VCAv:`d*`uj@Wj *%2; @t:NIڌK}jk0LѤTjTvds; bk %Aҗl7?/!1sIu_;7(Lv>DN0a+CLJARLOIKR3XG& ,:@`d&,ߺQ ɉ`Y;g݇o㍚6Gu#KJl}l{&LMS[R/3ax,}B. "BwTŚԴNOoCbc1ś) 3r=1qNDر m><;(qEإ.(g{3?DZZ_l20o`IL*H}E"o6mwX8$v8[坏?B qaDR2./E+tLRls^j~)KXIA2n\I#mvij/?ӓ@Հqo]f4S#y"%ɔ`kSrF9@k'i<0p1Ӈ;4Gw5˥! qd.vIhI|YT J4"*Qu4qկW+!a}sۦk)V'NsLmz,m_:#N.+{lS#{6m%CEy<)l~>d%Zt/|r=2wP[ [?;M͗Mu2wv>:xG:0+}0[K?^iy~MifIOArcw02Th%;mmkr(B?\ST4VTT6Imm(/C4؛ᗖV4=qt~^@/K;=]܆vVj흘om+*+jkkr LAwG\L=9wi~PnIEwdfvI &k>ffz~Ւnq(QiYwIA449TVQ5X49݈Y#螞hHʲJNk?C ʖ VL~=_+C205\[VRʩ y:ӈ⒪Ǝ&UA,L .tOMh9&t*Φ؟|}l󺤤*9ؿψZo(jquu +ˑ$D3S<4 %5H=ʒց~a< @^NM`i\W_u2%ɌF 祿󔩳5cӧ(kYR xƇk.j,#Q"+' bNF!/,X,8[:<"uՈP]Yu?cZfhVPQXـ6L"7Ci}k ] zNQ/&fZ]xEЯD44;umZ}^mx,Igmc-moRdg$3wt N)iap-8:*|de3%.ul9wAqklRYv7-MLzu;溗rN]k$[:`S*;,,n]^,t:LX.]bnc1N&ѩa b83p ^0X`y}BG!(#P+X;pO}8L]\gff:fR/X>HYc@t`>uou̎uŧ7=~(I%‚dh^}'*݀'Z61R fKY%))N6zI=[gE]+Z ~8i) D^q֧C:w>@u:kYZ;pW{gyVCoٓҦǚgtoƆ6~8:aRu.%vnݛ8#3:fҜ1+Nj#֦#rz' oaXk_S/_7m5vLAmsN`b{]msV.9"hL /]#gvx[E_fk~$3Wëg3/>zr8i0dfvV|ss֡ʰ{FB9e>|4 t7U { Mc:g&%UEe,{F`#7'Bzdk)pzd`/QϊI6`20VmoUWJ۹˼t|rfE>B=zdsHq]6t']=:9%̧ZWռ`kAE }]Gm>l[SBkMol[Jɟw0wէs-I"z2Y\9sͻ{zڃJns$9RKw7 LDAuT :b\%Ó3oi'n71x0t:Xۢez䁝{ןtT}O44|#M3qZ*dMWNmZ&:kE}dfzj(a@#Җt8% [94Kz +םy*[,;[-PocܿZ 4#ʢ\Nk[/X5ʞ^]Q<% AwMB%Wp8yu=ŰT'j=A&;jk8<70n0jKesd\lwjzzM,;̀eq}|Yz[8).bےpB`a$Ң'rKHNA14~k22X0ZN!ʛ\lE`Ӽn!91Ft|ōُ0"#]sHSǙ&VwR86BkA`*A0/-l` VdfQɌ,yߛe'襣Ok_M'mrml/-Ly?Dg 訠upolhcW] O~p+ @t7/ҡ/`Ӷm@VY .i+z{إ56fm'O@2` (lsAeX4=-|wV/ơleѬzL@﨤AJ^qt!ށ;lt\uWZDݵI} bޖ45;]߫vƩV{sk6[6k .ؕxoy@bJM5XQi5F{YsH;D's+Q,:([sd4>XxzGԘ|Wyņ ,LDy -ji}Xd"#5X}E@G񢀛vС4[.>mZj>bv|ݛ?Z؃ѡn ۞b<ڈiD.Otns.3\Ix!%.2(|u!ڧOWI&&@;H@T60T6sjJsX6pbHA+gct*%~ĨtO&^тb9M ٮ 0G$W][r9yH\T8! n@wftw*љ٩:˶dXۓ˓*nhq> :&BfA}uf! /HZpA44 \,ܼ bL&$/MW^/<XgdYWKq#!SvX@X`5xz<$d4OHXKAٕ47J!ÛL\KTQr80irz<8/&PwEND@ԋKqvD|! ~ar'bT '{}/T\f*b̍Xav]R@C.GX *s)VvnkA9aΌ738t:XI,XXzh9&$ٚ2HbfyS\f&[qIuyݘmiLz55yP!aDDo[3<vpT\_y}a5;D3q=[B0yki;eFĮ?#[WkR:GMLv48׽@\Ll]<|@7Hړƕ531ۏ85ږp;Vv|ګbx d09{t?ivC__;sք,҃@|k:+ Q_EmB}&&MCQ QBm!\\XUs#^o}~ԯP&5vvu5/E;٘us."oʃ-Ou{߻gw脗Tq>~'Pӱvk+vkdeL- __'`c_J/jN621 \I&O!T ۟q*Xڕ>+$:4 `3kG/ɂ?pt:XOh,@ X )i@kR8L{Ct:,X|5Y4X'1=?0:t:@/,xX/ @S8|z]t:@z O:,2t:@~Yѡt:x P X[/_lC:ND=$H F*,?QnNjFɍVVTN㕝%UNT"sg_F̬]?ߙl-?fֲYaH$\r3*Ӡ~[uv`"۱8φeF#?Lid(f4)׼ )Y|ٔFY4 ;Ro˄FU-*ՄJ'c*E&1u(# FRQ@WlyN([T*" UYXmUL%!$p 9$nҏ d@$XZFYId2!Sdh&d1|5"Qo$M""}Y@AzjF*LW}H_*>^n*e'D(0 [.2 "TxL70QDD$]<8_଑osGzDE)GXRT'T,_x "Y' F)x?dIZA a %_z!󤰋v(H' "U8E7XBx*鋈WPE`De  Ӏ0'Cs 3VU{b`b3%ƀw KdZe|iT(H Ю]蝈v"wEe2vѣ>deKFQã㞭Z[Rxzbǫn(fPpb W{]KBשPԺEE$ NHBJР$m&o젥K6'Fn>eYTGf|((D{Ws Q~99d:A#աy*&竘ܯb:{86OAc |LD3*gG\i]pEYtDhm&tRYs`D`gKm،剩fj,lX̭ܺ@[bnz4S= P$s|16G261OdW:>ikj:m51sFFJ (!LPPhBc>"L}HAE~һx;wwpVVG x(?Bp>"PPQ͑M63Yj VgD"RG>[쭨4hF"چJ32vPЅyh'P|8jt'赔ȏIԷo_#BW5ȯ *lyɯҟCR,ad J~3F0A?F(7o!z3 ¿k P\o|*tU`誠w y'*3XU _Q_(Az?u?D ezY{=8P_o(VE0!FKz8OwU"VSkTѫ"T Ev8Q1 e-B*P E`A7i'| DyB+_ZZWcHQ!JXA @kJ\Cj-1h$D9m %'dMRl"b >)FI42@F~k~=m._HL**"1fY,[,9uaT Z0ZXX(`Rf9Rb,0Z(XtZ u M5cYJxKD| XS({d{yGGؒ2FZ$2YDʻ(iA|wwwqwE_[ E|'&6#7b~ȴ55*fk[ HYR3FZ%,v-,r;j(c>F%G~HdAoFB1k1R\ZfaqRY* -Y` ׃@lIF Dpo"Ba ᭿-0 Hf YR U@f)Yl!HJZ~AH ,1U_5䏏z7H O{@.9R-0͑Bk0Ki!IYl-Y,@] X7?"O>yTRXs+¬XJtWa Ut g,^2R"`U,@]a,7<`N(cދo}xe m*Ll V!z0}9``IkT p\`DW`%,@Wۣrgp3~vyI}M?#n,Z&ٲ[ʤR//.zٲxB<,yVeU}J[J%K D@l.m] UTJ$6UXXP,"E%^_0Ѻ+R)yy[W&<|BpH |(vDem)mvl ,/G -MmZ+)} 'yb*KQT ju`uBW(kmmo͙Ӛ\ss~#e}Uyd@9rP WVH-l][ԶUжjEXֵZߺ@55yOyT2IV"8WQlY3eX{=.?^:DbʏPx᫥,WЫ<zR>Y=g_=J9Wϼ 9p̫YDgwbzypgg_egz$νz?{O;2 IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/figures/email.png0000644000000000000000000011167111534217015020221 0ustar00rootrootPNG  IHDR:j* pHYs+kIDATx} `UŽ̹7+[LX"FL*.EEkV h}>y-~j[pA[X%"D$@[v|3g̙9]`?޳Ιs_$uhw/e4 B1 `_ f ^j?u`/H-Q!7W| @#ͻvmeI 1 K 8iG~Gh'V-}Lp*i+\a:触 QRdFuw;Ю]uϮ򋧑ֽ8Nqo9bˇWxśҤ.í="nIǼ Ɇ|d:#>zݵ׶kEĒe_e" ɞ=gOYo|ˍw\)k05oK; C qeZLa`ťD-3}窨#Dm?tiiJg6{mi{G/v}XE?ZBh#LCgXe i'QilԐh7Y^C hix-ryϱ#sk.qܘ7}w5k*7w0Gu;wow;@GknjrIEχ3l1h UHˇLji`D"kݺ_wUc~xmkajcz 7ζ]b$( H02Zψo3I ynK6lg3jb!l['K:qӿq- ֽ44b2#D"&zQR)QLB'D}Ptb%;`5Wr1CRٳ:Gy=$7ޫ:=Y6:57џSΦiMi7̴݈SqndZ4χDin}펜!h +7.z5l9-b[dC%O$ucqi\nʴfU r^.w ~]utjtIٸ`‡aK~#0N8f v+̭XJ6Q0D Pxt ιt΍U&ʔ 8,bU{}=L8nςPB/ btNL-ZKP 8xHan"5{&HR;{J-;GfL)01z/BF'~I$+13" |g_gX"jG{ -asPBV%c Wϻ1H,XKF%R{Rex!6757%6wJ_gR25G!b4mű~fSP QW/G~f31+fȣʽ/ W_6oe[0m96Er Ӿ|f #$`HuJ$Pr7ﶗG0MMFx܌D7`mƠ&F^)ɣSBɻw4贈 gi&s,'_#d;!cXX1Q;<*90M9BSXg&1}>zYN[{f.s;B8ͦAEcoSH)I{`j훌r9KQk\n765~~ %#Ro>Wdr]f#{,R&&wR= vܻ[l荘J#(h/n>R  w0+ԪZ6@K+QjY2!a̍idt*=BMbx&t(4 +.DѹSѕA_HK%@DVB N75?}qE9!_?}sA(+BHH Ĺe pwy :jV=qڳw {Z諦|oXV^=0D\HiDϭWخLAD=ݲzq90V K+ irLD5ks+Ǝ@ˮ8y6+HȂ]obdpeRӉZo8ƞD*&#Hӹ#|Qt+k>|OH%Us1qsJ(]Vn v^&7y<50YD:縵ϵa2]3+ԫ>zAx`%d ynҶє_%Jq`BlhjV[Ը<=765Gj9UٴCٰ괄7܁)CJBҿZ~ŕ=oRGl͍,ܴiPc{Lkֳ֣|pTra{mTW$MrJU-:_'ߩS?/qUcS mg_sNcqyr͜]7&a{aqSإdW}@"ȜO7TPK;vxωzCBՏ(_88w"q7IS+^G r`!1p`@iQ]tt>J#~3$bG3Q㏅ڤ>&ۥD:qB+\\,g`WaTF=NkERٻ{ nwKڵ5G~l/Pݶ-wTUKfcXtNUw~#ܔԃ8>nbNf<[9T;J4nw;F]Ytb8VRZ5'Q.6Goa6r+2vQW#Bؽ˯,irwv$JO+lcCrؽruO^R4LéJ%9/+PN)p6P:cgT <?WLrң=tV_w|p XCѩDɞ{Mt]MW G>u5i 0l2CcTRy޾d2(~,IDXy m'qShX5dUA=ػo ۾C4e**:u9 +/nZ{\/ :4t c<]k7Һiazj|S%ƈ0sl7T,F\w>2C55SV=uWS@FQT2={4 nObNtN/~_>q!ʪad$ծ ZiU&hߝ?duGx7<`B~0'{W>?i]C1*y{%OÓݷ_QyeNw`ln;up85Ώn?ٛOͣ[٪/ 6_6\1 yR?E?G7$fk]7)4DHM>Xwl,.0`X 6n;[MQsGpNl8q\\UcKi_F#n_^g}įv$lN/XkVUaQC+#5]Jauv}IX-G|3؃.%c-M/&nN!+݉_sZe6,ue^g8-r᧳q'mg[w}›гq/w@G߄Gw\;Vν mV_?2P3#̎ /n7L./_?wOU.`2U_p]hŴ seWjd^^ih[]+of/׹Rd$')l/~ӧ,ABD-W6vԇ¤=5vd",{e0&p@ 6c8XFDc- >`ﻡk[[4wcZx6:erbT'7Dr,'ުQėp^wG0-5b;^uY@;ȄCp ihjj~Óa !+ӊRpX 8ZHhafMOGkX ӪBv{~?{`4,NП/]2>KT5L+͖(h=d*/K2;}v~y_cl7ҫDɦקѫAMIIkXw}]C8'ڴ.=c5?8|ĭio~ h7;tK7oo/{)m~ijes4pbʗ#Q5['# ꫙]}ѱi~x' 67j_#7≔7-nhA@jL.Dvf9q+eV`hyg-JvDZAXԗiIˏcTo]6Ȋ,mJ0HD58 +㵻Ip|@<]:QوfN,' &鉘sDו2E9cѱ*TstFK]E7k8 GNm¤("12&ԑm_D}۩.yJ~QqpRz)U%8Bcudr=Y7 JI wn;f[_nymcᘦ}DcMHÍIʒ O=/!bKDaN 'y֐##vC+:F\o9)frСC|͓N= jR 3r+3#;Pф__8g_Vn Wv?qn܇OǪ?X˿Gy/eFbMY?:z"OPIƥ??g^t2ˑ+O݇ސNyd/DŽ+_>.\͛72cwfMc'D5UMVqHA>uhoUr2#Eu{bpy 6zm=7CyF/cD]8{\>^Wn $ؙ+*lDpes׭8ΰ8պ Ǽ+Nh1qi}e=D6"5-Ms#z d.؝I0RΑ0=]s`ZEMdgG0+ 5t_#ESڭ{ "}oRM'xИT v;{TO*{Zr[swj958n&'%pRjJ l-"x=I:?$)fƙOziYI1lv$˅Knճ I'@H@V qԫg$|0!94Tgl|7ngM8- }iϘw3SLU͗8 (ldžF9eQ?񦑥+,S|VA+Y7\|{Y#,tʸsųw?o5+gx/mRq5io^©>L)wVta֋l#=r].8y!8u[ݙYj;3͈.t{lj$ gÞ/.w>hbI}\RNZ)"':8*Jq JUe*sAz_ CjbL_I7c̉kuSI4À2)N@/MaC6̏jOᰞ׎U:Q\L:Z.HMv6DlNx >M>"a{@AP]}uCG-]liU@ÂF+W{LٜjTm(Pb0R`d$%uehLuc+ʊf7a2T RaX߱٘E[1՘XN-)ݺǝ~ Nq#{>cUm7[?2c ))) 9r>ۧO!G5dh:=9m!r~5aL:wђG[6Y 72B/_xɗ =+sSyS⟔bw:~>|kO]-*_xEYv~S~sк)GN=iKҸ3Zքg6|pv}Kжe2]YYe xiMJ?,=$2aM'(X0'X Z9ޔTSb}tFAB795I5"2X RU?ph`qIco DahqoԐjzi+]7z#(Qi9luLTW=D tt JBa\:>N>ܶࢩqgCsӥ\Э戯W'ԔceL3o{hTG =(ƒl}aC }\U־M{7-2Bvp5՛X̧^x{4O`r`Z5''ed$'7pԃ^^^dɒTPSa:z3mȆ'ΝrFPPggϥ?_uU|bQo-[aغ=nXկF~_/Ck'U% j;>g7~aʢ=r?aV2֭eY<%j_U髿+y"_I}M"Nc48a7;>4#M6NfC5{s͠jU4,2[Ǵl4eL}l4oVٷ> 'R$(DX{|1}B㉢U,&(g3U勒ndI@w1Dɋb=A_'|1eIsWbx'^W:f^=^sBNN9Zq93i:q*É)ۄHHjxwvXGϪ4jGrGvlw8fUA}yg|pyv_n'89 U"'6M{FowO:6J?ޱ{ņs>nc M?>O< _xy9R)/[o͟z~ϣvZ۱J24ObezSA5J87zQ*-Lk>?ƫ~D !$n5 ^MO]sS}S>jU|41^goϔ`ȱ>.QQpvHF,XiS˽ eCQq](p&{ rɷc DPjSoTzS"Og'09Ñgk>VhxAI/_$VqНвº;÷z $.}]+tQ?+ʅ`Us`%Z؞qc5MIS{MhY.S [*c'Sbe:; #:S4$ö[d[<^Xzۆ=6N SlܸJf\ -җoNs/QgiltHt3b5dL+=bp E]p(O]` INvQ#67эK>#w.)J2)yKR,N?x0ŴjnJ9 `l")fە 9ʞl4Ϯб_7o &B\/Ov:_-wENJ?oo Nz%\@GJ -iY~U1>=YcꎣlJ.Gb∯@4vol4U))1%@C^:Aj%QjSH 2?U)tѐGp+yfXN+F,d㚣%[&}v>@lI//H>x`z-lm=ٱSO9bߠv6Eha5?w>y C:uj^+KdY>imo~Hz?[w5Dڱ-8䈥mTGDn)Y8A`ڢkTL vu~춱 U&JV& H)lD1tǜ\ǰ{ظM. xB<("%bwV {+ZP(]SmDZswgFs,3lFGj:; vMQOb" ;G< BZUO+8Wn%FLK-@:y[U,;\U9}ךf%I:3nA̙7xmlMB:L:7\jsL}uMt8ĉ>'=y$@&׊qo_5F-%q:猎,W:s6_4[srUD@L)43?V HΓթND/D;ե |i; ߑpjmK\$;]]DoM] ;>Ҕӌ-׃p{T L^Fw"h._FzhME/ )q"hӷX1eZ`r(*3iw܃Z1|+kjvm Rbo1N!_r=)jG 1ĩA39 IdeG=c ;IXŇg7:wb[aEdCfaE)VnV0 a5 9L1Nm:}"mm{#4nUf2eF5qyLR]N5FE,_޹n;Թ=bYdό"ŀdX>Igr$K@JJLSY5c=Sۆz ~|'Nz\s&tCp ڔIVJ8۸%RqH KŢ tKMPg2>$ew*9oAs簩ϷB/K t'>IwD+ vX1#0șɉrSf]Gz,znp|ĺ7c/ĊXL\GmU<{̘\z}\Z5$Lۀm[+hvD[Bi9]b4˲t[wDnaWjrtq:ӹ(2n~zfz,xI)>,+i5ǽ)~~뽒ǵ))ծv e;=E Ɖ Nq:~ WeǢV,GD790:q!ٓUU9 tQQ2>8rjT,QsNg"|.XLk>pCse0$jЋ'0E',sJn!Sى)m2ו.)W|&\u@ Λ<yDYPt!'S[W‡B|d ?!ڕF|Da?X/jN hIsJA+ȧ..@u0J>+U8XZ+5Nz7h،`儆|8 CDNuGGu5;˰wF(x6]h7z!Gaqq8VEB=cpug.ݶ}NXYO'9?OWI`VA+xM\i8Լk!5zn+-{dk-ZUov A Hveܢ eBb>RwZ!c2|t'ҁr\ҙW=s2;o֧TzK^Сp`FR,jvUϞ蘌rNl=@F6:9!^cij.9tN BA`F\tht⩽rQ`waRa_.GVyH[|> }-ˑ9wStW}tk'ҽGO7\rʩggfpjjjLJJڌM]&r("i߽h/rs6xC"o 駟q)vKKnhlf+/?Sz.`hٲ^:풵_̳ΗoΊǞt 6uTp/u5ݲfqCMzsCzUW%48xp{q%?X_ijعk@>s?~2ޭg#=KҥK73fˆ߬~eocr%C$oC%r}w \hɺkYgʊէ: _=腟\zcz _jug5ˊq{1#Yjvm{ݻ;?pٵw;SNw`Ϙ1c>[=@94U[۴=Rv͏p5ۏ>c³}|dfm9s[w( mMM'6\~ޤ{CrAsO(\y-OyO]عznoZzʾe}uMѭԆ:31B. U_24MWi᜜Qر'W_=qĥڭ{!Gfg95[6uLhX00itE[n` ؔ1 uإ[+:WlljЯߎgJNLx6Vh윉z:~„%K^u2p9#:zo Z9yiDC}SsIcjsqLwYtR:EfWpWv;(9%# sOrAW}SGd=%N=}W>/ʏ8:{m 82+JUBcLY&~=75Hzrl%u;Eu{„E(>c9FP{g.2d𺵫OMU{ʆm5gƆ?6O]=?7N7%^Uxy)G~OZFwF~{oW3/WOuNԷTGg!.g,{㭇tFoh2,MMzwOb͛6peL#|rުwWλf'?} : 3ڎ*2X>,89Ω`Sgb}_)]vyY>BȬ6~]u]xto=|Y KOO_bϮ3n{ӧm esC6[|nrJOMuq%G8ε`^y]FA/|ݽ}aߺÔ}Dv}GO?RRR+]g3oI?<^?hCB7V F "9-&_}p@l:{_Dt.}̈W9xP+_RY\?nlҒr 'mI:/U Lj۵P8@{țW/na[/VwHoљ8^_%<_ݰnasV|nƉwm[pm֡31&C?tu#qFjvW)sջ>uƧ.ǏVpos3X W<~3^gwO&ݹnםt".WIqcu~Lld +|/έ`w jz0:]^B}o _NHF\яJ7<6߇8EWgCd^ܮ+cn5f_L*T՞z"jB(?CP /!rnq9;tn;w+_WQ׏8;$8[mSGUqpկ}vGقŚ{-XᎾ?kxNx 9+5:3KW{pkvu'nfI#mxS~F^#C°h;t1nM@642'@ץsUIWvWXksI-= ߠ{ЭM㖝Ѣo(sqG |T_^bPr@ =tt>Z;tGG֝4W9QQOЉ|m ~SC_rhg=Kǖ l;RLn6[ȷdi ?藫6~TA;BW񇀪ziM-C/|s9Sn|=k;kVT _;.nZpp׮xo:͓qu=̻_tƊ2¹4Ky;ވ،ئo3j>@w3E\[RҪ'CcMz//6je}ϫ#?]>沇7w~h{??~d񳮚7m٤\ *7{{?,+Crp8*A]nZy?ņCY5Y']8s+G`}f]>UE;|12Nr ZYtW~E惣G9>$t^4osNg_h;+ 2W{p-x|Ela=OP޿DtmwՄ{w?|{[Tn]Oke?Ko&RuSŬVl.XW_=7#eW嘰BvWi7F qj;ڹwilǼT0nO6D\E!y}@Rϑ]!FivkԦpڂEuW)cc+8Wxkn5 s:cpr5|@Gё|WN6'[EF@E޹mc;v J8`s:^.UW&Nu): d(ۙQ!|k՟BtDSFF̧Fl6G=@]%G7 DCh1蘄ĸ9w/*pzA;#3s'2:(cOVw8 [;Ϲ]3tsaE5'gddL_ ]l9;uOJSا5lv~ aehNmme0d:3itD;FF2 j9̲_%>o!wss%j|#}FS [9dNhgBGalA-' S[Gyma>x?kH;pjiXeNe.v#sD edJ2ҹsj$=87gjm7:kڙ;oZrc*\Fg+{4_n>Х5qw dk 㢄9uL@ ݎawoTivZh-֖?J+ gk ▢k:M7#6lF .wuc;؎@;kr t jNY߆]KT! s,ZWzz:t8c0\nX~u6d`A纙]vx^a3ƌ:_oJ!ԁ@ -B:T]ҥ |~.섽Htk=AY'ϯHlY y]l1'nޑsڜѥݦs@95dɾ}N7_O0bآfU Cg+]Uze7A4vZVݪffx:(> ϊjmJυ`rylfα=:2Ω laYYNqw-|~6}ݸqB*W1ϡۿũ͝827*f ASf̷&HFдs,CldNVe HK#)޶mۃ7xm:ȤԔd89YVT͞P3n;wxРI8-R%p;KosyJ:;jyT\vʲLncᚍS[b\[ 1{4ӓ&Z׽Yd;uj٧΅iCj}ݱcDŽ&w\6?{Y'1cRIgm/vueUٜ\ Zd BÓҁm^"1nQ_ D[D>N/_>Wuv}k;n}421dn^=["if٧r'`r+JJ)9zCY!rK)Mv/R&cCtgZȲ|y]'KP6 @["(l#F[E(2y2/?X_y1N:.~r9]E7&|/._n r}Lɟ~*m*fNmɓ40X6SfuYr{yVRΎEE[R82CH9\u<`|) 9ò>,?$Z<sãw)X l~ΙYl [yʳ3^ wp: U+++?#Jt233`.|cG/DXҊW4yF?N[Wt@]*+rCg1Q{ kwfszMV~I? iGauPҵӵf}!f.Vf.tSo!:iYiq]1{ e>oBӭ;@sIJy*pC'A馛Zyו*ˇ3ruЅ}{7n\_U^pA(pbkgf|<3*KJx >_:`"(ͱ`ì06{R#bixy6HX Kr s ۚz 2dd>*}ղ>lѣC[,&ag0ʞni:c[+l<_u ܟ>Qt$fVbKh'cl١pVnOڹ._hvAm.h[9cc_@kZyҍò6To֭{= Я>NW  yy yÜUvrIS֤W/ӥ͝/ ~z܊i S䈓ѣ<]=^˪mf[8_.a{Q9BEŹDLN2 e#vs׮޳W)I=֣[Z~}#t-^]0&9ѰCrUh)=+dy`3,U ֐˖03w:#09U R✂X yhSQ |` &EA;-RZ69uJRRzZ eӻuKO@P:PJӧㆥ/O/fY4lCE,-u9 3jM;1ʱjcʩ]WϫϨ#L()hάl]Р/:G]/hˁ@gs,߱cG榴d$ ٣{>}*n-7.XLmRDjj/JU^56V[m{pZ֔iȶt9S[[2u)fyS# 2P$@;Z-tN$Uγ23:bH}7S;{$B#* `<ɽTw?'s\9t3}a9«o{Xc;kEI e[3'6f\sS!U͉E٘}9 `i-"[n]FQ.߿HLMMO*AQ0og>q+hZ+q-|վj\pYn*ragɟ5m wQ3 zas=M*_$gTCp:#"Hڵ.]'~?–24|Z岎=7:Z=}TcI2fuN(n]65w[ݷəͱs9%n՚0@NW,ٷoI]SP@? IUFkΝ;]=% . BBti _GssJjA#ľ6ZI/+./~Ϛsм?'9à FYq\TX씗'FxtY;D{bjO M(֖ΞZ|팱[o-;77dطo~E"'=v(nATy-V7u $#iS|ׯQ3gN!s l,nLi?~K˴k/j6CkzEaymIܨ}l^6{z1ZyyÄQ[[R p4]9TUԂҖ[tblzSn{虜==m~پ};]E7HL-+Umnj*]'`*6suT(\zHzC_>crM ig6e{{QBԽtaM/sۅ+et&LsB5(7[w/*Fy紞lS>]t^:9$عk׀vӫgԔR{uO->n 1kd|ޔ;(/滘+~b1e[Nw,[lqk< .(Y JU9(8{'aŸ̥՚n-r!nmD-gz/@34JGLbY]ròZ2:' #HIJJOKIKINKM*YnҩgkОSϖ)I/g&Տ¸eDv[O͙μèaڂ,)\Z02t֭Z4Lm,[ [r R+F :l.2>:K/>:M7#\VffUuu 6ooHOII =IOOrkq;bS3m~VPCE}G(͝7?{ٔ"*,OaF7E̳h؎ϙBWhŒ- TϏqoPrL%MJ usjLm) ::m{vv˯:vq{ݿ@Ik֬ٺu+MTYyDXtX3q >uyhxWգg,7GuzO[җl}|Bۭtz 02qVp<8Q 8DWg&=JϽOuR$'nD4]ȼ띇U,+@8p\ Ss 9^dN <8lA-LJO^zoooWwn_՝͟e韾v/d͏Vo4/﹘F_wXN-.jfyέzWw{KWz꛵~Uwl^',}u.6nst'<U%ã_ھ^G~ꩧ~S lk՜;+/ҤQ[i4<sz d>e Ϯ͎EqL/|,St+;p>򂷸Y*G=o[փtfgu3=v ss٬FfǸvµ@}W&.F<2:dѼ@WWHM;O yu~}w_ՙ3g{1!G?Tçs5Ǎe}'7ҺK* 啚kZT*Bޛ>ukoMCR>J[>c?OYQt9]΅.xNpC'vvw?;~_߽{WgzHMPP&JT'W\A3abUAPsmT^~}ڙ2=r0M8@o%]EUeomgq- -,} E.0kgz+Q0(jצ̙yjZ̙nOw&TV: ###/^yeKzSY{{NO~R$[bSy>ژ#P-Q- ꜤG}f:td6ޣۢ[^O"%.  kvy+|[qAt7շi==$1=Q֖%ZW;i \%;a ;~o?|7w_{Mez^$z㳵L嶹%6O2篺5'ӭyE<%>}j*T;}K];Z\~?&"yAM{ʅɇNBMR.EsOKGH ݿ֏woD/ŋo޼ak>ַ믫 WƹsO<ˏ #EܗK"y\vk/*luD9֥yG t[j/߉63ðep@o Bh*sDO׾B/]I^<&s:ΏsP8qSqNv*ЃP/g%=n5^~>?PW0h{B3= Ϲiqv_Kַ-A!8aktCuqUBp/E{OT"nVcsMz =rΗW'rV.ES]!vź^8ĝfW`~ }v뿜V_Ցwy-Dxs1wM_<'h7W [uR_aN/|U?Օཀྵ m7sk9Q%z+ܡiGmQlu8ۋ_]]_7_8㝁g_~xd iw_0ꁕKu״QN o$5ڐ޽\7L}ќOڙ|m{+Guj}64}iRŸ7*qJ2Ʀu|G_PU]s|'m|~-1Xd'U~V'vLoT^ԍc܋缜^`AMϧvd.bTaƻ䩯X]Gƃ9&h.@7~yNpaM -D/E[G j=88prhkpudbUo:g 6 >yۇo8'n5Rꍪ>:E~޾ӸbѦJO{efaT]n?g{ig6[կckި~o37;yvzxNp9`П>EoFթ;k&0tO]Ω?ZZxؿѦF+%zQ+'O:q䠺űSUo}~'ĸٝP* u'^ێ :teTJVKMgcn ;??jol,va:)P8zb} W}y;W}/_&&&Z_gNNП[ߑy8ґ& @)/ڈ>5xڠP%ډXS#O>_~N5L tѵ0 ?\NlgkylãA@߰Iζ痩G? PVSj[Ez_v1Hlmv@}kkmS=I vYTOed'+޴bRvizA2d+@M-z4Kʨ1=NJdU3mםo&v c7MtQƒtQΡes/Y\UPMOy[~ {]m]x~m 錩8zĕUAn]OO^Nnގ_E'0toX}7l?GӫK$pg'sl6%C/z^.7-%uΥh qo[Mm}L7]m٪+q=]*?7ǽ2-jQVu$?yQ YoXGJ{?r5nZm=XXfB~*B9UD#^^vڣe+p䉷~G5PUmuklL4ݵ*R 674saLΞyt<ףO0k]b>dPOۼ1Z5+AIprLp>K]5FUo֏='$fēV[Z;QR .RDk^eޞD8X@t5j] \ G_(h-316ȱ/5#t+ɳMwvkPښ%0)կ5ͼXzpsWxu{4ɽ!{v^PjFٹz5މNT³:>, s 5_koc[[Ugݽ짨tO3zWKÄnq5 ! knYNp(5zwBǹ p+ sNgyth<Nh] r _Gy>ަ.2 dxʵool+{zPw:vnw%>H0z$O5gƹ 7we8yqх뉠%}zuYOW[%х#p+w=7t2[Hj-_:9 @ Bd!p/=gc@@cho/<p7ѩGูw|G/sϲtn3_*=o}[3>Gf*}4=|;]?gU8n߾ųΜ9ât.+ET`>8wC}/{+C|Xۏ}NiWv_r[𖧇Bzj[U[x3~I6?_tF[_]MVmoBb[iDVj^m~zWt_Pۢ޽<oԪsS.{M/= gҼH7]CJ^c._ܬ᮳ʗ2֘-('VzQokvY5'zcF-4Ʀ GJmuv`&Wº;,Ã,ߞWǂ_jvV,Px˶o| ,Qwؽ]nvL_/ě7&&oxS2gf'{{;0u| q?{xɪc<.*^w\rʅkSL6gY-̥6=[lht_yȟ֍ U*dVC+3kTj7/2]5]ZMGྦ6|=>%̈́p: 'SяdWpz뺝tіЇ ?Qb㟄ϛ p>zȌ:8UETC 38=}܊}8ϸJ7y I͇MFIi=pq6#dl|b*mTTgN6o6lV8E V2psnlWJI.Pt1x'Y`raxY`qup*ĿX{G=sGf*}xd:~u$sϲp,R&@_q3紷RU$:){^ ڢF_,;z tw7z׿U:=~c,B;'p:@q8] $ OyI@(\7,'p޹Pչ  \c:˥ A0a3Q5Uc(p:WMIv)87']q_]q>|_tmKr9 't{?QMUǸ}TK\q}1@vLwT:ͥ9ΑsΥ&L}q9.ƹgs&%a@OU=/ya/%js?ГWYss7/y4H]B]\$ET5RY:Ks 9Is$:9l眜 g':Chlբ<粠-Y"4R$:B Yғ8^884@u\9-=+p!] bx. \J*tܒ R(Ľ sVvWUP2y8X{Op?8$BuL8r!Uvtqɢ\_gBTûr\(grP!yBƁOJnǹvk8W >OpRz 5y+_'&%p=fwVxsL_<-swV(D\ XT/K >OtD}ޮׄ©#V$w@1b8©HS'=&u{\QJ9 ΒXC)^t@ݯlk_bpy.u-pe+^&׽sϲ8LNC;ƹs!wx6exugúyvukJae洴h~v[.Sy\>}ûwysswn:C0ܙzLػ-ߋ5:2wV_XE'kO}񺢻%+˔ŽIw>p(S<̻? P'oǿ8 ^!DIT?=".rv DtK?gVS-t.}_0WݗfWLݗ.f==Zzŧͱ1".D/Ec]@o]&nNE<}eOWt='~.Ӆ8@7"<og]>{~Wˍ]$˯6ftRG.;f#|T7꧔~iN/Wًy*e4Hm]kc* bn+}ef/F柁RpoBtA:RomIv>12wt2dzHP!]d'q.(離5Kw?~B߫KojRJW$@Dr#,˅<U&vZ7!rj{EmB{@vDwKH{k.|R=o=w<EV 1Xز~z#ASǻѽG؊Zpj%ZMvm}VK%l[/Nt&v/D&S/0Ej8f7=w^\觛?x#gΆs we0OnʃO@˼w]U=hSCxW$NT2>UQQ7,gX2%%sc -KI7a}BݏneȩdgdB?8E0J1~Mj/:ƅdTF/^;8͟l]NZGd"oJeAAplo ʃ}?"{+vx2kuLIdkmVf'=8;nS:sfӣЉ;o'޺ET D-2$'H᧴LO.²=}ɚ?Sg% eQDn"ZOFKi8~fDn\PXdY~-+x󙷍$EA-":}K'Z_؝=e^;t_oͺuܿprvgs޾u6snٴc;7_x_vmݖ^l@_f v;12d*ݗ]?젺PNᜲ#GsMrˏU*OpUk'"Lͯ4S3H,%O }ϫ@J8C(c9J)EPc)KYY%3Kfd;ӊmiE[ " 6oJߘyrܵ krVcsVū+Wf^,&siL撘Ϣ3Ge @pĜ4ðT`VXД!I%N Jq@K`}=58w#k L aknNϓ52E_6攙 Z$:s R& 2}fM/x;O*SNOC?Ύ{) Bhh͡,Hmj|Ԩ`GbĎiХx5gMvcJ 0s2 .6:2"}bL:{HDg](kZ[y]>y ,ٱ|KfCb!)O! Y՜%RL Ś?eͽt3 #D R憧 CH!p;@ {Si@8` |O$降Qqb"> yƺI*f4*050R2%hs0k"3A>ťĎv| ؎*dGg$ֺH8HF9'Q@^v|RjE#U#A5rvtxJS;rWAĎ MS;:S;> Yg;rvĎsDv$\>jܑQF"}5n=qWc½hfY]Iq (Vxzy9{;Wy;W88c|Ng\|\}\}\|\1U.pr^.^.E^.^.Y 'XV_~\z~0?yQbǭ"#5w|Xzj"dѴ2- d0 He[VoW`Wh_@ht N=ڞ҆}yP`7z]Y=7`=bxl8.J)1HEwhB+hoMGEY1 GQu z$=MP-އًNOzHClO+ܖFDAr'a}&@ޙ3^:>{U\Q,26kElIJ茥QgFX.OY2ঐI<;8ivPC,3b㉙ R>ED#|S|L;c<#&"wb-$d#gGTYGeU;("í`Lpz BaGI$ݐjO"5;@hK OP5 y5jQ9wTVcv4vĀ N:;p}r3`Gz=k >(]o+ Rgx؎j(+J؎A}:͈fD%J'7?tK؎k%;18.XApDLIuk59*<}ʶզHeSrB QS]W]hT]hrpf~fQeSUTlT6R8ʦPeؕ%?F]u=acQK%v-xGF,t?kǮ$AJTT}-bD0H˥IUZV.ao!ͺqn[u+ƭ p%TQa\$4"*1N\Csֺ|1hM j+^bLاIoTzv*;ݣ[x+q(q<+U+BYU$Hގ\MՃh`ERF(qT%]dj$U/eǐĂJ9A#A-pOg={5:A$w2}DvTiqz7U\UhzLHǨkb+i T6_\wD/`[hIwo8 ALKT稳vV9|[DEEEEEEEE9\==0Z{j{*{rֲֲֲ/Q@եDz %&Y@1p$r8!pRp0'8 b*!O>B hDGᐽ/9w=I9D-qDWE#!AB9 `O*NQWUH1 #:cc5Ҳyq$N"6HގHg%vT5rGê éQxʉ R.rGNvvM[l-Uf*0fJ0<}9OL=q0c "Bf?DwsyU=AjfqΗ=A#jy rKf9VyJLk{ŎĶΤKWSgm\;2Qiq'UqVO_*~>:Ÿކd|SOfx|`ki$ l$&7x~;چbfi$\{CLDN;BYǀl}^^9PV%#WS3}ʪ+8&q܅8])m-HXʼn㓢G^ʪU jQYN]rQF'HjR;:c;ZR;yH쨘;v>Q1}11nRQHW?q R>\Z-(؎+!""8vwH;l-i-0-'474^[P~|y!+r~F#E͋3hd0ma*U9 sga̖/LN{SpLU3WX5;eUfͅFb~|;;MzX<􆎀qS !qT7&5g-6 DhuyVl58YB2,ńNx uǍD͹}>OCD/BCY97Ǩ%O/*9vs@d٩dpXVuB$y{Sɞ+= ƹWd\ƓsY ]j~uqnfv9ca!gk8VUJL ' юQBZc(*q=H#b!!֛%w##!mh;{`C~ ,-Mm~QPqHwuwuWIW6yV5F B*GuRB"N3/q*Fֶs}+ j1EUEU`ܲSCyGnX8$q_$ψ~0@-'QMS#Ȏ|Uq2񼗮*'Hy R5 i#]UŹiUN4OaNK(sFb;z;hi+%_.jڱ[UގnQQcEv|`:v9cTD3.~DwǙy;ζ@ zZ&dQXIlϵ V cOg9ߞ2Lb־HW9:q;cPqo0npȸ"ƿ5o%+i[))&3ej=8B8Cǽ'z|8}۪o;AĚ9LCr+Dv1'?s챋LF3b!S?[}$ek]F] n@^mL+5)ꭂ *vmx hyX|#WW@eS>0Za#Tq͍Q㘊'xj(aȎV5jUJdGêDe{#$;4wds ycMH.ȎH.aC\AЎ1cbb;I[؍⪮qq*1#}wqŀ@b3[*z. RcMy $e{ :}˸w]ǿ9]'p!DL5qp 'M2 ab8?-؎ɓ$L?iH$8ÐC' ?gO]jQ(TW$>_C(-/5E},ErbN6|-rp)Fs[1/ N@p%$vކwhn%lK-K^5|f}|&( O{,9:[~ &xU]U6ЛYy+A7:wGewތ X=j՞`⫠LY= Mr=q-oҐ>z]KSZTXd4裵 (Q&pͽ ,=>GEE8SYG:GXDOg6$<9bH}ёBJ Zy5/mMٛX O\j Pk 0l ,e&抿lM>,y ?/5ux!SL7eSF&#\&L2NԎo_z`a.u̟BBKNXgj gֻ"/1o6zzC@GԘC5rUFD(1/ _XRCg1-؂25 H  iD,QcF8!mJ-m_ބx@yTʰ7fm.*Pj -vӱ0"a| 3 7;Y.C\j"b 1x(bZ;^$pMTFPǚj@JpפPJ@-RԎb5 }Ub5rF~%! T!"5fBTxʿUɻR$js -CM%F:BghCrGުQn& -FG<TO#*戍0;j$PAkd[ѱj$pvx;r4G]rhxrGaYk߿yvTN{nGAW;U 9,pG,Ш3ϜX'X63@1KseAs&yN0n8Ie8)? vFvLI牴N{ǥ+m҅GSV?Bjj7-`\WYͩ. #׻"ӜEvJ6@jY8L$k j[ %Rjו5f߈Ď$)cFY駊:/sjL: ;RK'½Hw$(o/o68dׂ;qj#jlMh0$D-*jZn#76EvԘ7'*ֳDu[Fp|jDB=m#*1\(r5VAƽI9PS] A0~0Hr`$V4qGoJ{Ю'ts@@jvԈ@j(otTȡmbU{;v vt`G@:y|{>R;:svt';j=cu(iڊ7f*Z5gkݦ?c-- X Ƭ<td-kf 8@^\f0]a000000~ͬ3SVOVO?|)NX=C'} 1jVYa+g|7rn~_$UcT0;i@ZFݣ׻6j."5F5BC#Qb5ʓ˭)7Yf$9v)Ns܇(iD;ͲP,V B*eY\z_q)w;B)B%ChnE [TދC}IЬ:2+H5jf`D΄G^(_Lh0ԨQJFԈRFIA5X,qsL8k%5:hYpih#Ɩ~;SMjW#d "Q=VVq=itG4)Mu#I%JՈ(@6Ci#FFёW#D;+]M*K;IV]0WʪSx8tX%vD#Uy;ڊ؎ 'Ȟ5=ơ*++g7!gb@U:aĚV羈 t؈7lmx@+. }5/2<`@`+C7غ2rʘm+ⷯHܾ"e2 }Ҍ]l 4ڵ,C^my¶qۖGo]eEئ!VmZ6&y|e_//a LFI(Q#qE&@] a8yWoi5^;ps U  !GTܦ-qQFROp"*zQr "&pETع9zUmjiYc;iYV\8(r!Jq'vrYS}/K}D&Qʨ7ݬuJ\EHqx}q)UAۉrjyQ4Zzl(p7Cx5L%:īNF(ɩ1x?}Ԙ9^JFФ*jt5jUqRPMR++. U%ުz(jtDRvR5ؑQ@QQ\t,eeUVQ$ Q3Ȏ'vr 3>";7@\YQ>:svt5qJհ6cw˫:-$esP2a %-(U`iUۑp ;Cv`vbtjo$Ąk-{hS¡M7ޔ~tS,jρU-<(ƛ\q_ /rJbAR/&FJ^>"{u`/R5b5Р%љu 0QąU i #7sT}9;j<#d\QbLٛdu;+fug/Qc\Fn80uLA>T GF2{7ϭJtQqSR5j8R5jNԎ"5r-5J5b;5*; v2XaԶHrp4+ )il,w-s*gsNfg*%gSlQD ̳ 72Nvh %U0{\x2Fy29bGSHBH˪GFΎ.:إ9; j|8oG{ގpg#OZ]rtQ͎Mu>y?uh|Or~tms,[)3_%|Jy2Kߟ90LƬJ__Ƌ|q[/-.·_l(g!ys;o~&]7 }cۯ^1|o4 ?槠k` :J8ܤ0 wBh4`WRk $F>ڶΘ#sU\@T! )@s +?[f[~Z]bUd^xO%. f[ N9>RFXϖt6%DqN8t9O]9.x?mPPȚB@i(GaUFlG75[y;jt1E5ۑ[M@0#vt1y,p;с R {>>DlǤin3lznC%1MQ <)zKM1(/wQءxV.-^Qz˟I'v܈(؈a8ޔ *E`ٿE3̙鸊j 0c'CkZ`$MdU7miDhlh Lpo6M Q.Q/s/`͠1DH0ij l MiCprf&iGfImј%[J4Qj| 7'+?-U %S:]j .ODMӥS1hg4i*,H^ljc9tԣ˦ 5̏] y2EcY ME5UXÜS#WS<)풣0CGU=&yYQ8>atv(wDj|! ;JyvɸWevŐ%s$SEp3KWB^)fe4GTQtald GPY+bوUFF+VǴ#̪tƑ(]fE/~i=V[Ź#$KNa/hV3ͭU`!$+RehCgB,GWUaC Rp+T@#ܗܼID4xp{U&Wj^PUʁDʙH/-A*B5 Kjdo4wc!]Fò_t]6w0*:$Vy_+Z_*ZOd?Z/rEh"R]1,VUR6yr>Oِ@PCMX CX#eu4!}u?b fF YKV N7PS!Ys [yimhBaĎ؎xRoէ/`eէV#9^u9eU1V#A*jqtؓE8;!d+êJY?%9;dG\YsQ.H쨘>v1CrvP +#$lwe81v\ȣpN8d:UHF5 (?K!zѱ&<ؑoڱxov Z8(daE@ FpKΣmvkzܲhFl=jh 6Dstr-޶F! 9mZuֈZMΗ"QŞEܣx'OdUESaQy$ksWq#p BqK-ŊRG`Ej!*3Xmt_fL1Xe5 `b",\L.@ o#? /b61`cVa8cd.,,2>J_Xܒ@e^Z I̓8K7 xd O;/D87V6+rg8Ѯ!Ýb% Yg-]y/BDj|D$KVFGK4Chti^P(itF }cݷ#Sy? >O hGj.;JVQD HHÎu {v#rGyʨCQ##dQ5uxvX]8~sG*LC̢]-JAeN U%s &) k,0ŵVZ ڨ=SKbYTm?y(NqP $yDˀC F6ī49Х˨ϰ 9CYbY'퐟b…m)mm@'C`%I5%`!CJCV-J[,XD "E F OfaД)3!ICa%S O8>;5`by&035+j@q=x}jڑWvNquE;Jݎ9;AYcMAߪw?WS5r##NȎpS΀hHea4y$h^ %p<('#R*gOhBB O> !eZ&G)ex`,70xTmPZ&Woelm۱۶Qn%]d8ܾ 1h$61XR7ne1 1YKsљ2b-̘>nn8H.m6j%73,eFXd`ZHO)I> D|Q@$Ā  c}c>1cFyG#GzE#<{FR<"?#w {U=X P A#!x3! q,? [l|^+OyF<g`#,ШBRqqGMЊTڼl&&eUYoէ r 5rrs]rUvTʆ9rFk.QKνsCVMA* +d^~5:61PɎBӣcut׎*rvTJetW#zP\]T\Xcyj4o 5I[cwݰ?~j{F vD#TV7";lFv,ܖmX$ܕY*ݛ] -ԥH(eQN6Vv)(Ł0{}5,,0xۙ%J ?E ?5ҨKnk9&RLlj8\O򱃖(ss9r0+9!bˑ!EGY]p 0t3HJ:^ u^PҔ $A%~?3.~_8ر~c|)}bFČ{Ex# x#=6> 4X M_9M` 'NAGOk{īۉ{}FKxhMzἄ!yS<;3B:ђ.pI:c?Ծh߇"#R#%܂*8rKV=}^Fk^>kSF#@Îih4E^UFYu9uXUlqqގ<a3ê38q;BH쨥 V6;>q vԕ>&NuH؎:BE!/vU\]`GI*V*q j8OT'R5=8q$۱'HP?b#=b_H9QR!.@{bN]jt ;#zom#p>V%UYyt K:eio}r: 0snHzG*q(ãLphb,0gQPDޢ̅GPTQJNL)AX~%}H H~|ĎB !2QyF|C#vpE5-7Uao& ~UԢwgty>C9 Mx!!L_S|QB <̓yΚxٳ<3gxlE@?"\`Ay z4r!k?q5?M5˪xH]8*U#mn1! Fr*#FI08w4G)rDjr:(@iS*)>E˪8ޣQ\EvitÎŐ1Z;FI+eԋn;_ܑ$]ٱ\o֯!j\FE^~Mr/{@Vu~_~1hA n5۾&&{CM^L7yYpƘH: ""#A:1AicQQ!F?4%A Ç<@+ ZWLAqt(dAit穤1r_Xiec5Kk$HV6vԄ,k\ӕe8EN1TUvErICicYL8PVcC*4rM:M#P Q\cGZal)r (B~ W+GRVN7FUr<9MU͈j_ӊ5@q3]J3F.Q`qx5.%/́ +qp?BhD%`!^9Z\D$_r䤶uv41}+-V )]D48Ɔ/!;¥e2pAG12\]LeiAi>etN'߮T7D,:R',X`w`GԨՈ˾X25`ޡvjER:15`ޡFq3CmL,X`DF1F,X`Ը*2fHԎL,X`1]F#̇ #-* ,X՘.W#"=¨LmjEŒ_ ;5^D[0cJ,X`SQd65lx=RM/#>w]\κX5qU\L,X`qCB.>>gmL\Ȏ8wLajd (k!Pc6OJ['S# ,Xjxĺ8DqL,X` \,kd MnLݘ1^^rj;5vS`xڦ7$끄\F,F,1R5&'_= 5?cFNx… `q_RmɅ;R %jܘ|T#,X jlrvX25f_FĀ HGM5`AT A ,X<*R;w"5ݾ)%Sr?25`?idjd⡪1pfwZH_ٜOGf\ajd!F#YxjT_;G5nI1e,X<5~U;Yxhj̹r}OZ/lK-؊Af08,~sǎl8,A{)5nO+;Af15`V64/ZXXYxXj/xzɾ%r5";ǬvF,FS"!ԙт [k~!¤,kdFK,EZPcoOWf"e5;N%VG~'VLΐHĂm}~<wLm D05enHƥUNeEnTYȂUcg y5^S؎ *Mһ{fy[7tG.SihCЧ=}Z+nZJSY*,-*4ODS# ZeoR<[XsFF`ǂF廲\-+Az ҕ}/=eH !nvgtf"5jӠauq? b/JU~ ZAm_kUTC,./q$mНKui4ӦFqmYJl7~e={/o޳<65j#hKURÕ~`ѕ+Ă]+n|aS\kS\G m_wQTs{ZPKqR:PjTű 7nʉM4Z:❮ݼRKAXw:ԨQߛ'ZKo}P򇱱1`qA7-CBxΗԝ/=)ƞސ6jۡ]䅊k8BU=-Q Fyt;d{RVnzыwF-ď#w]P_ɂ}S/KD6uJ묁=w[7؅{Pyd[ݿ^׋{np{];j~ҒK>mOQIMa-5ł=旎e NAήޖzȂ)kdG57r)oTAWαc_Ȃޢ[_U4Q*5sES# FF,zkoql&U%¥ ȂޠwZjƎown&V5ܾȂ^FV_A~YQ^ͲFLL,X 56|qǯů V^5-u,kd(}?Wcwj[k[5^VDkL,ݙ]^Ʀ/\ѿ"GkS# FFvwfw˯CB95^<_~Ȃ~-?Wc˗߄5\ D4\xCڀ&FLL.~PcWD4^xÛ.毾ajd+Uc6Ҫ[6c\]!^!ɢ[wjշMWbW$jhȂQQo}vŽ߃ٵݹ/:~#% 5_FO~jlml x˭w~j,XV{OOI~ ƯZv3~b'|r3 #ے?7tpk?Xq-񈎄)=qx{S#r=s_N‚Q?^;7f~[|m֗9[T: gG7k_[G%'v1c׎>_W~SU/ w|wPΣq Cp%.>\W;&vI[?ڎhUQ. K5_~Su@zj>Xsن75ۛko^=2Ƭ $]C-!\|U{Twn42.o/h.b'!D;̥Qi^aVK0쒈_>/ʽTӁ_IKˊ,XH#F7bŻ {z"e" $* _"w^8L"r5 ?9u5^;0"xǟ/].u&uB(NŒDrFj(WLLƟAs' >k3t1HBnv `psr&df%(N1?r&8#vkj-ZZmlX,ZK uKBRB`@B[ߑ_ޭ{_n%M5yܺK]>52Ww=R_FDb]܋F54u3%&/QwĴϾycſϽyS/X8#f6UoMQ)0g>v!w(?[9_ c#1WwyholW .jZƮE,זZ~w-񟚦ֵ/Si Sf{RiIBj?of4W'߻o!o囆CTNUv!w(D\s%=5>֪˸zwO΀ &3й:[2/y7>Mx1i/&Q1iիC[/KįPhǍtR.coñťfpQ5B?҇]\p:?2x8zm܈j<܋mRȳj|xu{m6[!>:qn|)ARZNgj( r#4/z촧uKs(eF![/8?zi7Z5 c J(PIڅQEqaxxK/9_6M]𼮋ra9 +fv?=,%%>yKƗ>6hLOc4hiQ[/,/ї檱Kˆ"~m[Vp05*㧞I3rwZ܆UC@\.:_z3ξ|w.3;8~(H'\<~Ƨ <5~pSg_"~m+KQ^O?؛'h|/MV)s;͐KZSgƨP#jLAbZFaWzE:FP#PRA(-\5sNW/^F@ bxi5봬Ə>y=Dv5  WbZݧ ꀪ5Ā*FHQOwCyKů[ Ryc=ϋ=5?ũ?{3B8jԈ " j|#3(~ͷՙQi#j$qmWMOEDiOP&7ܸ|CӫQ#FHiP{װ~<5xeQ#FHP߫*F׋ףF@bs o5JWcѲF׋-[߰5j̃[,נA9x;_G.~^5xncxKu[<;j~:ˋ.EQ#j4biL%o:z{-υ/PȲU*S-['xu,]W5FѸkm.\Ƹ^ m(֚b+ .1rIcGRtw{G઼_ncʛ e#Z٢륞bM;P(hyqP#P5>56[2m=V{(!Jˀ6~pr]5 YhYcF׎jlfi%Pc{\}G,.V <=?kز|5  K~@uoZYf˸I+:5eѲF8S/N65jL:jjIF FlIO4F fz5(tًdCR;k6v"BQ%kELnXZ5& NB>GM; XWE7N5`10Oq w SE~NV5rӋk'VP5j U8[>gZ}.ڻHVQ,{XRn|Gc|]/ڬqGn_C5:^\3!5jvc ҧ2sX܌;TV YX?kjmf׎/]Sq5j_É -p4 C\;zjfq5Pcѫ17F@ju&ˎ"5ZR1 5j,z5oYV3 5ZR5j "%jl'Ը Î-)Z=z񪚽Q#FH)QnymGO5VF@5M5F*5FQ#j|GP#j5F@P#j5F@P#j5F@P#j5F@P#j@8UP#jD5F5j@P#F5j@P#F5j@P#F5j@P#F5jD5FԈP#jDP#j5F@P#j0j@S:3P#j@ihjԈRu>56FTA)SwM5w5FԨq=j@1[P#j@5pY58%yF5j@5@53Ԙfc "J-PjD;j>{gG4h NI+E@ɫѻ"<ϟO>H=DS uJZ)J^t'@A{w)D:=%FNJ駟&)ԘV k4+jDt'HczGÙKK {ejLs D\V j!05Ǧv%:>$-%B"zb#S76|ғ/tޤ]EƪZxSŬ;-5 洠ۃe:#.W .Z&y:Yϋ5B1BFwd6>Ԣ1>10\w(_nT0lW NҳW_ׯJ;AZF`S"$t˒ƔJe{ԬB"ս?]1Ts͛nTQ:͙X&L3'sͳ`8џ=/w%s.N,ƷMv~( dm둹D(%Xb ;E~ ;p6!G^n/CysV6kAS!{cvjk^x ~ D)ܓmDN}t_\gzd56hN08j] z|lp.'S8O/ C,;k+XKCRBYݙRʩh5^CݪPj'Z %j̠Jg[i Y;(cAdJlHW9C0jt j|W2_o0ʈ%fG36k }ʏh6裏~џџ4+U Tl@h󣾭S|ȯBn(iaxKԼHZ jTk6 4L9L&2ѽ یB17i#(e/Xy־ 8W);M%sNq"؛veTɼLwav9sVkeUqȷCI)Ho5tlZLLcߒ{;M|70J,eQxԏ:˝YߡVU+ah'4Nx[A,%lsM|]C$]wҚ-pVtVWO[]Z)Q`6}nz!BQNـ8c»A+85 sw a=٭ףFj7O7_n _ @ݗu-!ܵ&4[ Sc#?Fuuq7PtY}wH [?*kS}",+mڔsEOzZCԨYziARce˷:hû" @x+ebezIS6 Tce%I=(R:&mPѫQc ,k,O(5:~o K7E*Es/T^=&JS>l`A5/&krj \V 4]Nt * ^`e=P%j EƷ~[x'S WvLF/i cLVQcPoR:hmʎrPc[}U5J;b(hy韦Od׎A598n LXd ^hHQj$Md\hCJZ IG?>o޼UVmڴiCԸʶaj5:9g&yt4yϪ\Н@%-CYw|T]hIS|P|jO}_W/ / kԸy_=nQ 2hjg#0e(7x6)i SJ7섪1_PdYcmָ|Z̷TcoTW=%JJCPDjw]r̼+qԪn8PY`DŽ!%D{pGUmHSF@YIWF@]#65w]=y1:RRCMnDԸ{-[ԫ444Xwttj1ѱoPҷC(I㋌ũFŞ?/Ν;[g?ꫝ[nUJY #f7YêQ5 }faQMJůkkk])~E1r*FRO:}7?z~ήkh'FW)Iz6*OyU]F+SxHwoǏykGҾgǎET㰙UMCf9RiFiwҵ `@x%qs.9?w;wRݷoPWͬ6aFadjecm1dZ⚔JFv!jFH2Ar*IP#@ɫq3ꮚ`i%:Ri=yڅ0dU3ꯚ)8xj,"Y&hnÑGti@q{b@'뮜aQ|☛ N1NJP8(65'ԨaǔPcr5b5>WcjtPc%ū5&6r:څ)(5^5XֻMy)V,Dp CCQ.dvaz1vڬ0j 5 4jF$Cr:]C t%1nywT!5H$I0n-G/%[/ B4PM[D<+~ڷս]-}+١#g5;g@1qih;FR09[F#/Ḩ/+Ď 0j5R@3ə{rdZlM; B4 %5_Kp3*œx,M{XGsUc!vT!ށ^_(y5~~n sevCYuFTT5"X%P#jScmǹǡF@NFHga 2LIV^ΖG)(5 Bri[Y=h1wZ^d7zLcԇH0jj4PY?=J-6gl_QٿcKQ^JZ3Fˊj46,49 }ë@qP^freR=MaZI[ -S5RLm7H.MWΘW]`i!k/j̋C RF\s7|e6)C*]iVy,/s}OWѲl6 =VS6SV^^۩Y^Jxe%{늤4ztFNF]u]Q8#'rwfb=u~iD;vuf)G턍4-!Ρ=u>s'=C^{r8Pc#Ը?VaX(yxͧ\SiI<+<v4"+z #RڼtM']>Ζ{'UpumB^QTJwH;h\XJkj +j=R㮼 \R$sK Vs9a#=wsږ!KUcp">kaGjVp ba]HNգހ˾}-uiζ}۩OյU*٫QzIE d͈߱-Ak{ԨA7`;9G91[_Qh~gCÉ֞1;JQ AH/P~?\tTރvG=;_i9u3aϨˋTFVRVVj ]38/[9Sc:-j଱-P7W7`?מҕEَҚ}íqa7qX1!o`*lFxzۗwEĩvGqᄄQ{t!_7C+zQP{dnh@U۟?)y~(Àj6zs=Xչ ԘÉҞcӎPc8lFDjfc@r?Ei ZqX|XbnA,<.k*-kF@J!/_j (dq xŇn1tB:&|IJP%yLh$'k.NxFnTzEqggqh_Jxv`ҽr!glXZ簣\j,.%M@~nk| ؐ75"}ȵKPcoFH@;l0؀5:j5F@Z583/jL0)U.Lg3d:X_ 5jl>q8W̼Q|W!QM94om&}>LSF7qxsjX.ט5MГ|>M=DW' V>lNȕwޜY!GS I[I?)UꌯW6Tuǧi^I Pw{K~¸+Ct^rS56)YN=DW!W*30SU?')ϼ9ɳ~8;d $򳚉_\aijDtOqj\ove::5ބqCg9; 47  ;ש&1Tޖxjag:z#*q-ysBv~툟#~:0y_n.Y{»MGNi@5CUc N;!Lڽf"qj"DF$PcRELУt~m@1Π1F. }'ms?J~¸E5Z=! zr+*C&*6lLU++9ɳ¦[J6ct`>54RDuj ?91߇X?Zvg;; 07 E5&*v1SDo"rnh&LU++9ɳtGS[ĭ2)Un]sUJ:kO$[6TDϤe¸L{ǝyDڻFj52q(|5AM"F{03U'7@8ɵ#jhъYMJM.?xp3zz:y7Ovu Q5vF(5^nڴяf~cajzv3jRVcuxv9n؇p5FP Ycs1UvD0t؇U;f7F(55m@5@)g9 .u`j485V3 wعsF#P# Q5:qjSc?gq ׎PFǎPFӎj|5@:xpܕP#jƹPPcJ׎ҮKQ#^hAcjѴOP#SV;ո 5@XbDP؝]d(k@@5V:j׏_9g9jqL*ێ5^ uj<4f*#LAj)e:3LZhPg=eny_yݬж )eUtqO^lP΄Y)Yp"[Te4z~zOfc(y5.X톢1V^l%d5flcic^Q*c-tkkn6 @= ]j`UÂ.1bȰ{Olb(c4 5fѴQƾ/\+²7{&TGcQƽ_F#q\d$5{Cqr52h&{5@՘]e۱5@hQD@fϮ@25.PcU jnkOٲPP' m;qBeBl $FW[1DUu2ZmiCyH2lw,>癫,I[̲VC++J*jLF %Ms-[MØ**w&>vReSTZj/`4B1PO)e$qHX:Pj3bUn5 5*':/XL5icDɜ[H;O\NƉwӋDd4V:04ݝ&v+&RF׎~5N=kL: r5 Yֹvhu5ND&5'QDiR㤪Pc"5Fjx{/xgϽѮCuoڟ5f5j" F"ex3gΝ>}p=;wz׿yaj4옍RcKqeL5qjܰaCOOo}"q|cG~hG:|ݭ~5V7"kDXtR),/+V~s@~, CY;wvat/n߾]QѢ&~U UGYڒ0txԩ3gμ;OY>X5TJX] ? 5Vo0PjIU=칊5abԫq5̤TRz9"*jN)% }jܨQFQLJ?Pc5vT80jI5gBE POj5@*hQUcukGTㆀȶԣF@}Q#R@*XRI 5j\'~PcW,٘5ZӤTm2jLF3 A*l@(/ъTLJMol@‚<&w}/\P,/5ؤTm2@Jƿz~ 5Tm2@߸q={,/F||y(&Wٳg}]Ba-[^,5T5^pAK\t_wgF2Z jTQ<ա jT1hA1j5@*x)1Rw5*7Yq͒M1j69=ƝQ ^cjԫ1ScGiWc]IQ#}mbvݤf5@XЄVa)ըP7WEk'U\5jj<8nњ['e ;F@-\=JPcp̈́ņQ#]w3ŰVjqҤ]FWvUm5^aq2jqY{ר筴U]5~YqJɨҧƫ6vԨq2j4qi{9kQT;B5 8rnQ)RW:ͪ>9F5ZjGT㬆fg;ͬ8ɨҩF3İk8ҮY:5ZêR/jlAf5OQ#FI3j5Y8FHFsK.FteğGn7n|'1xn|{ D/bj~Ge5~{/E舉{@D]"lWK_U/*:h'Fy%:^ /Kw+/)b5Dt>P@ݞ"E=$#ѨF>}4q8*^="2VzqDD*_t6uu*$Z|_Q+ŠWh64qXD JwujEG[nÏ.}!~.iPގc*3(ljqզWkhgvPckPZAZ㭪 ڱݪFÎ[K#ıa5nѳ>eG 7hQcǍıViVێu=5Z~5vlQ5v$/Hxnܴw3+_ˌӲ_oן~῿7jL;N ıqQGV 5$Kr$cr٩_2u_hj!(v͆L2q6wџ>&QcoQs[ v[7/²F#b掎 5jlF9w+m5FV;QVQ㵪Tv,(QS5$ǩ!b>jU5TX;j( rfk‹#G~qgO}snXkADJ⺭g|q_2Okfد??8˟|pkm鍛q+Q|qPK>(M"n{~m\'1Ͽ65.i_IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/figures/hgcmd.png0000644000000000000000000005611611534217015020216 0ustar00rootrootPNG  IHDR r[j pHYs+\IDATx]E֮ꙍl KZ1` .w 0gBQOňz I$ *`YXX2,qwU= f.35U_+|CwD%8p`ϾD B#0}`fNBJTXky`\;T1@6@b GOAw~ BJ#8%'kII8!1L-ر o_ڍz 0#I.KtưáOnš6gqӾ>M߳ۇfÊ͙3S0ВSR.#-; f,AC\LD6~ , aJtؒl9NUJ-H*~&K9WD?+ή ѿ֫!w>Ui|A.jE+b^D>SUDN 'D)2z3HIQ'@6G*H?j\ײ"\.i c?8^uBF$UXdXP\)"QrTAD, h-yH޼1d*˩B wOD4#8KA#Fu+!(N}Z_v&))wK~?\p>xȼ-ۿߺ#mE^f(q5k[b^Ѱ5F?(u4+_VMz*Φ*LKJٝ [!_]c\Flm0|E{L +Xd@ip ': $2" , m² 2_Hd4dDEj"a3dFC, Rr="1Ur2`C*" axREZ6oWbЗhA넳9U][:r^Ast􂂂]-9Oߓ'T47y8Dket;B6!Xi!Y4s/r>|ʈ߼BW^/^Qb5b_6<ŽPK' a/=.QYf NJA!CpeH X+bw3E.#!x6ѐ#K"eYבd!g$(9~LK+RdˆB8p 4EnӹM|wT /W͔ Űa,YeFj,6|qsZ[Gz\?Ӵ[Ut"7Ɠ1ێXHi4KLCNj@蟖<; `se(@r$˼Z4Lryv86C!/r%UQu?6,lfxڦ4iVTu:Ş*D BeqQWq(An˜8N|XZLY%$X,jI8 e*'9%͹$DːD^[,[X0kgMX f4'`TL)erJs"5iLuz(NXb;--)H?^i|S%!d o.ѷ,'Am?$_U"2]"2G^CLύۏ'g'8L҂A ݽa{h mn*N\f4v+dNFjI38 NxW$jD1OQ]Xˬ&?06X- W0DDbp9!"U,{xLxv}d#X'`LґeI#M!I uinǒ8浇aQ^X ;="Ig*?7ws˘f12t,:.L9kМo~8|H,1Ft#VBiu  SzXx ?mVW:7wlMB̌6t=!%P:&iZvoVW4SΕ Q P_B&ZGpٞ˲;jDQKyR<{Yd$Wp*{Rn5U.J攽/^_\rWsn|榚c㗥$kk΁ҢTVdJ# ! uIf=붺w 0i?ͳF~8W2c2Mv3j7n1 1+$l C:Cod7b(7 %t8a l5h 5ڑH8Gubv$!P/%ľ~&SrSN~ZR^B(gJg%&S5MlFNHLrYu;ovQ?dL+#4❉%$1F!5lJ.slta&Q&!JW'Y.phRz|UMBcRT=4T%9$>ڛ_Y(AꌤĐA!maċy>ԏw {9{!&&m(U!l9b`Ӽ󍏓D:Nbjm-0-p 5SSґ{}`}2-H{"0O'T'[%pБ\8gX% FpJPY޷ynY c'N^宯ۤaqa SR3OámLCy,ޑVa͝ŀic fGMGZ2,D;Ec'03b^,ZnjLʊȎ熤=le]ިKWVQ<^5)!%*%Dw0 _5D6Ϳ|WGmWW*^ˉJ>Nq`N)}q]+P,p8G#LbY)L:9Ѽ]6p2aj&/ฐcj+7B) ?|p=PIJvK.`ޔbzΌ I5gV]!O-tPwN:rhTLKXq]h&L"#iؐu{A%OZ5Ď7޹q珻1MKW5fd[w]> Klpltx]{5=f PIHdʙqn(QO ;:`OVMѢg`?wћQ̿6/yYn}_o6fwո^ƃX;?z7׃Nٱ~VפOnHo8^aоǚiҠO}h΄?J?a!5!! W`ˆ:~MWBuOusz5uㄻZ7ONc%lxCN6-nk.P:4IIi ;&/ǻK_i ۷M;㴙Jطt%-n;W Bz5F0 y[[& Ҫk:+ JltͰ7f؂mߏnv*$wOh¼dv5KFpxg]׬q4j޿䭖nXfݿa6B/wحxߪǚ\ۤ?^^dpJȸ0GTq|y':NB,+lD?\V/S3G6ָq>k]cG'Zl\+;F8/? յ4>BBT Qcc8jL2@F"̀̃&jߝ8+_v*3(!vh,3:m#i~r% z_2l?~-'mfNh eeЬ''l%[~yvHߢ-4qO&lg,?`;_mٱtێ:|}_δ-;n׷w]/<突2ҝE3`9;wY '>:e;i5zj O-?+dh;]hFQpIOX3M lYy. 7~5w|iM_^'i۷ ~3,=#sŨn6w \4)K.qw [۹Oa [^~_Bf=I6c5fi~FFOp망M\n}{o}mYX4nݿ|7`h]Ν=qUΤU%h5J.֍@/Q>[8|_vџzO+}*gªW/)?wm9ֽ6lɈټQ>4q8gvu'LΝxy1Zd6_=N7Ռ~UOMv㴵z:{^vkGKj{~y__[:c6g#7eg2{r5jxͿVe*؁ 򿞝^`vhyѿr:w=^v~4k?2pݳFwg;^X[;~-:fشm1w`ņ 7mq=K=Mľ Etd?mcќ]:f=AN*$0cF?!Cy,1AKMR1]/NIҒPJ NJ)ZR*JN^(%$瘝g% 0C*EU˜Ba҃SQ-ZJNKע&ZHVV!OܻzUӦM֫\F5kVvv8RYgۯQTѸO%v({K^ӂ;Vu~bNO۝ԁw&^Ŕy9a2_] yYU^8l5wvf yw#z+>|]mVJˆ.cQ[u5w7+j//v޲&atqV11}?Xʨ2&0vQVAozoW6Ӥ迌.@^rg{7E6k 7D1lmKٿq%]3% :qMy:I?A9}asjKc֎ݓ?ܝ27'\QO^C[k䩷O :}7aտ>-8Z|`r>קq&=WGPlC)Tv+Ԋ!zT*T-5UH*)=Rj|>Js_i:l) zТhZjEZ^"JQƤ6-`좰yƟUk;jF^A<,Ѷn۔b랔݋lG y;Ϩy~Ɩ*o̎sV`gN Zs5jHkDkb#>^dsr?y/%qMp}_YSho?dv-mߚ_?~}}Ud&XNZrfw컳rQ#6P{_zzK5Zuy׹lѶOM1&#TMe s~_:ywT?7.xmrל<NMyʛ-~z+r.+{%eb#{Un\֡MQOk_qU3qCt9kc#6GJ7qou.m? KJ믹r?|iSϠGcT%CS^cu9~}950㲎+F4#e??t:G ?~ښkQQD豯/m&?ynQť*Vݭ_E1Nٙ/Zϳ{/ lAHvTJQqMKTLጯԌ!c ' {u^DF¡G vJC8rYǨ*0b}bz0)v^k5EZoRͷY*^PNrRe͛7¶m}Cs%چ;Uj֩Z̹kwM9 ݽsU-M:Kj.#ꙇeqXcF.|bZ燇1!Q[P}|VV#g{]GYױiiR1oM=j&H]a0[Y]Yeo=UzDty+ݻ8鿗$qjf\]5,X5bINx[o]TKRUHjFg]!["[ _YWUx1 ==a^yv>Spr^ixseFH +2:}nȢOMv~xUm? l?rֆ5S2^}rZɤ;ew?,rv.znk^xv{ނh9[u]9#$#h.*+꩕R?zEeB :3-WO*b a̫PZnl%*44gTh;]35ςHRHJU*%2FS֔PkZZΝ{՝_L՛ufwxu@HkoTNّ;)oC1PW0~D.kx?/+>M.F + XFNxCzN׼; 5 Cy _~t^yVF0w&r3(kF}+eXSZuF^Ci'4H.kOT^V̾wa7ktx9^!Ukry/0ey'QinϘ} ^n.|%[2p寮5o*a%;6}c}[VVv/kHkI[mxxWt^ov1J jkw_U:X̿sCk4S։z.̝+L~Kcڈk|da\pԻ>PƗ[U sVhU9U$TXDńJ+V WPRRJ׊+&4C)!zVe3-R%Z,-fzvSS!~?~3|{j5~Oa ?Tv>jժZgy\ @qg]z冺֡5 sf76.W2G|k:쫱-C06?^߻X졕c4ZM7Y+9ڿ󳭽g0 i.cWqk3qtZMGuffcӌQ tM9(hDHIhx}RVzt2**OպozSoWGpnשٍVfq[_MÞhFʣ`U?;.nw 8V_rF k`/*zbE55n)Nl_M6v7л8؝WXi0HGm0&UvӇz%5}M,+k`o;^4nӓw_X QX$?j$dF\ N, #qeʠm`CF79t#x,H EIµ%'eCԂ|ӀzpOZf+̩% =˗֌s>ݹjo B Ed$q,x@uܢQwqQJ)F]dZo㈫ˉЉh` {Kr2_Y}ygFH̻x@mJuNʳql|.bxҲ:ɏ!\+%iYr矇˘vB簪jYm[~qP͊ 4W~#oӡv%:a'r4  .ckI_ ߞznzyv]9h\-_ >˧ꙿ_GεLOt;"q Hb\,5*ҶMx'QN,Z.B<,~r=9Ί(ɧCJBhѭ@_w +16ǟ?{"U`UB{Q1ԌF<]TZ-ZcPU%aQkew ;o9_*QӿyLp {<"R QH\ΥKәIGNN=_@/\?x.$^}kV, alS2BėX=#RX K>ZE"H[B>x"t!B(r)X}y]HA9X4)̲OR&DTjG["[uh.׾ !>H H1Q}eZ-щn66dDe1F'b?C>=Q[)J#YjKb11r_RQLsXAU*q7ޣhРk@5@`4 F hv4Z 4PS ,Im 2fb_ ~ Z!wT2:s@bП (IFӂٮ >B!-)PunP{aBkxwM-9.d m*zcn ^aCBF%Aok ktQx tb秥tygΒLLc1.C,fdȰRɳrY>}&G#h6U_O?n=cß/^ξa]Κ^#V ˺ظf5q+ьk#%Z|W+Nl|*G1 <Ѫ~Eđlf؊ǃ"JԹ=7uq_a_!7gw#brYqy2+5x0ƚj>7獡OLw,1^IM55֮mSW~U\i^@A8P5`.I3q4L.& ALDt{AЉ^*}5q'Z2zlll_+hTˏRgY+NAH6}]l1 f|X34,rh,lQv.аPĔk&'hqs}Gs?Z3a$R6֮Nzlu197IWY{=>+E ^qoTi-S<6eϰm;s$!$Åu۬ΐw´ \E^z Y@ n\B2VK(K^+dm 2S+U\V{Txb&5K di>7:Ʈ7Z.(/3"DgX@!-f:ꯔMo&7t IE"c%!GQ+QhpX!X~Vŋ&*,!w5jw>ntj1rf>5a2Z2w[?fg,}~2os: P5a:46~gX==e: /(*Fj)ԏiX#o-ӆ,]lUH~vF)SUOovIe*ViVEExr Fzz:XIg8,fje7]gs/bbFrc@zL?C\O,`\IB 2F~,sh3s|G8Ӂ,wk3}ZOzZ$lU[:oB#a 5Qӧe8/UgX?u|v=3mMX2G83(SWc'꛲rxx+d/J'+Ӱp$fCҌgI2@Gq1i,bͩ\d"{{KX`ݭ]ҜEeBFƠKTHٟ>iQ[S=pZ#߮tE>( ƌ)YN-eYqISp`Zxj1vCmT yQdb#;N@o!*-:)Pȿ?oQ[bo<fP61Niilg<\ػW)cmjt;}d4я>IۅmV-zfQn\*lQ%~U6YU+=b԰%ClYJz4.d'ʃh9ń0vOWudI/ׁm-KD KA-P٢kWuV޶#GI}ϥbge-ڗ-5.ĬŚ3YTHHU=-C?Z?LGb=uʜ~_K4dr/ǿb'ʾn}v55vCNαk(X?e`J( 1j'NezL0g*hQ-ĎRXI U֙NM" 4 pecSÍI.NN'NO&+vڮd'gf10( !=ibNC<#_ [3xD hq Pb(JtZ)"jBjtj,K3á 5e;CnM-b.+bR3 V/Ǝ>~ |)،lf&luر_weyp!@Py䭒O eΘ!V@IPA*`M7Zh? 9ci@*8a!cOV<h&$g qC3jLNeBM~2h_ ,- (J (&4df6`k'?@A@2.i(آ8Sp#~RvK T2w}Ƹګ*y MgL>Tzλ#3 n9z<|ML3G5ʱ+g<$h3 Z_&ZRY2k5Wk'xZwg]q0ȉ.:tαWpiП&K,D3}ZOe= Qnz+hc2eoqa-]U'<_[eMwӗ:#gY=l᭬Ur -3O@$,OB\XAм>k6H/5YKxg"e_T69z_uPxrka7W^g/Y6Q0%7ٝ|"Q PnzDœt09szyM- hDi[W6!FE: JqP/by Ej~>bE1qD뀿M$$\%f@8 TфRv\Ek!I aA $]"+}~ E{]0:#-$Uohs J@O<͙12AR딢*(i5B,r],.㤅0vx"5Hyg|Tl'EM؍tqͦעeAD==xl7Ѵj`;+P\YF#0R 3{)@fI &V&,cIqA(zz;* 4eS1#('3 `8~**)W2f-69*'vtЭnB́c깐vpXTeQN/,]F%$ |%Ig؈>k'GŘ^LzFu8 Dωۊdnm'u߀ a?"o~ry]T4 [LT2' mf6p<6ˊb*N\#h& ^Z ( h-]lPsx} ><_ / ѽLieѼӈl%e~\Ev(rŢU Dledہ3,Tz-*"Y@F&Pů_ۙBԌ5d4sJ埘H8w^OuN }7DU/E9G,%rV-X5!bxP퍱]EF},]sbMfo3)tmp(g[h>I\ e1E62b3)(o*{=9) QŗōU 7qlZ~I,9y#{5ާ?ϙ/, %5@_ IOڶI">rZ7 x_WUN/nUaӖXcB4NJD4=iac:bD,Ch|Mۍ6, Ss.3k6،w[k9u. hf`lm2SMMۆ"̇zOqm ُm4`_pr4d>Ųs%rH;i<o@6e  iX6'~e雎)r]t~Q@ȕ+׏J| &ij)""r9!vJd(C9trbq+PaNWG~qΖ3vH0Df>Q:3judN'˜/jԠ(NE(ڤE }ՂY893=&R|c*8PafbB< B@@1(#UʹV+KT2M%)1o 9sҶn XXbYNI~Z1GB G|p9knG*  SODx#9&36Ue \J:ޑE<]BX2 L}R.lp•M#lxki\',`iv쵲YE9|i3$hQw܅(7#d(iag۲qQq5RPR NT&S腌~b(xGW>0RC>1D.t $ߍ::.†艚3- |BԊ'V`GQ?I@"G7 "LLP*jH1Z* O("~z"#qN󄐋 IFdDDg[/=ɰh6\є4%NL2;b\Y ST5*0PDws\j1 ,SLB'M<3c<6ftf?:tk)/G hQ,m\( M-ce)TOOlFBWgAE(x͇p/%"xO/B!Y|鍍.PMW$vwLu=Cx0f)f>ˉΟ7}}(F\džnP15jR/V2Z8&ǧLz/7 ߘխq.l:1FyE` H =P^ X>d tDI+RB< ߇ ^ gMC4lZNؚe]k65$SӴL׶;0LBbYk6р@Kg؛`ΐa[ ~e3 hgsQÚۄe@@%iO80 ^8yL;vE.eC431a#,&(# 737Bw+D+پeB& -FC69t\&vF f@a3iGMMNd0I3Xo s_ 'FX24@Ya4ϰ-Y 4Ʒ@'ۙlr>eCd40DǍY@Q8>Qi;C־'0\etM &rU0cDJεagX,:PtM6IDgDVqg͈U h 2ӘSѰ)q3A:r|g@CØpdeӈAINq-as*0I3<Ɯ`MPF@t\k6uB t'.|Y83. r"L:eO:3#b4Z!'Δ((@4E\a@Y&2Y ("=sSU8 IM3(kf`x"44l~  eѰKDʋt r0({%feYͭ}@ٕΐKBjeFLJgPtʦT##(%:eQ8K"BJ DG` 3e,le>q+kLeC3PuNA cllXsha`4d)S:l3 $4Pd;6AẅJ 3PV4N>XL2FjiIMf &(NJ>0*#8 lp!!l2ctFP ʬb6 FeO:,G՚f@3n;v ıTF 5Vq~\ t}P(fNb\&`''P~ 1P`;j_Nne}iDmֹc{# .K2eȌK.[32lb4a=(KMYĴ4GLHg8dĠwĻpfk)QeX]K:S\~q]?-MӒ.M@qǏ?:$))鬳߿lҙMlL:34F d8X3*Wn{ɅRSO>rdů+ihw2;G<իW?:$//o„ wuW4L$qJgT#mZQt=7tSժU<#GѤ37m0 X7h NM2.;MKUHހ ˶mFժU۷omuIQ)-M|5x[&qUcmIdI6uԁÈa:t?l޼dƟzY[gm kr  Prb4=QT\9ʐVܷ;_:uo׍؟ܓIg1pہg5QO 3iNIENNI<3!_~^,r?ap+݋ҝ@|9k~tl>yfCG!g*0d^"-f;;ҙFRtWL{ujpczi5KnC=/񃴴bV{tЭݝ|72?uzN㏀N0 {^Tb-ݱcG,$rL4ұ2(h~͍OyF/~ux/GR) Ɏv;Xvmf606|̻2\3I>ܞd^y~1(՘al 0k)M@6gD>A Ge_|MƕwsEMԢM^xٰ{8 &SMc_2Gr35,wNf۷o/‰vpm^& QKtg}ZGV@=TowtrB:ŗhK6K H p}n?JW^zM:tx&; o'1اDge?S[عN4 $;TK/_..D*鐒 TsNf߾}'0| 7@}5Pa췘M!'nO?4<4&L^6؄Q |RQ49 ;1X#&h_M$˘ 7ȑtwӤh*zkK[JK[$bue0SS۴vgge!>q\N ,YzFJ>/%%thѣ~]eѣGSʣSgq!4i.g'jyMFaxxT_Ü O݊WlIA~{ԨQ77*r y=D7_ٍV 'T">=> 4+5vA)qfΰ_`GS63( %]TMPFKST ĵt&"']L=²4 3b,B<1l@ؖΐ #8v0D[~[i-)zkK EB^+.SFR7mN 'E=~\1L;n0/jv]t3ݣ>ۺ`\7|s˕MJI Nu1u6w& R8 t/GΝc `N%**Nq=Ĕ21DlvwUڒ,&UEFP aˆl? xƷucen,ѣs+T)!װdݨwԚa #NNa{crtP_LaYZRCكPzJFr89V$ϐߌ%aF«oR{b}XcEFw pgKJjX+ZfeuC@ıbB U1tUm5 bٿ߈ | #8L1d;6@O,SX,qMv3 ;m;a5t+l%ke4Ղ"CD1몉MǹGDȺ/Nd30VuspFg6_Zj48`pKqk 0&aY50NGމ*G+ ֚%+<[;)S쑰I|ciN9Ԇv⩛X P\Dv`F) M!b&blLXķ 6-[.,Y+NI%$\N"2X bmtpӱGIv?C4SIguJ$O9B0M'% hXW|U)ժM\p/?۲rH8Ԧ-CUj$ǎ.FiV3aoqw[jHz!t>Ycb&QLu?A1YncXBcGql{&-22m?QcUEw7ƈD"=}8(DU(ǔBGݮ$ɣTCH̓4y0۟5w͖؇'l^ucѝyab vkFLsukbGA'kTnм~jrƩ n?[In֣D{PJo;ӆW9rjD?MZG@J$II)lalTߎBqW@\VSq PwKؽ`ZQͣjTH\!1BV>mFIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/figures/ignore.png0000644000000000000000000010423611534217015020414 0ustar00rootrootPNG  IHDR pHYs+PIDATx VEg,71A BMR]SSQ|Mˮ0K*n%B756o/ H^HzC`w̜sg}|?3g9|Тf˶nо$B! A9XVPOs9ܜISB2$,-=/"kwɞgpul ڐuH[(M5$Ehw_ګw|{-u[уzEB.{:>f=!cS:k_^IfĒY~0Խ%=AQL:vΜBX_T\uUJŵW_M{{ϼҥK]Rִ/cuWǔ_cn[ΥbVp@Ih4[cc-Gdeۖ9wigѣU5K92AM4{.l1eܷɃGirGl3K $s{$vC-0c̥ca906c0{tcgy3'/$#eXhOgf(gwyƷz0ovOi.=z*+-gS37z>bYޔi 禱}gжref+L7G) g#ҲBB ߏ9+(S3PZV5m $`#ɨ~[걭9 R@:P2UL& -JaGAeEl1uڶGv˕ط)I›;Iumw]&@d,b{><^S6]QyR}~=j#Q]'=CN 7g+/9)qwd*wgw(JwXVOxIf3.[Jnkvf %|5o.yY:Ht /^#Y0rU)ԓk'qy'7a8mɈٖ&ܢԗ&UY4RAU I| zތs.)L*KYjKFu ݔ&[^v빍riXEsXi?UP4}kiD,lﵞƲ4&,-m 'U = Hg4zlj};JٓXǡqPZLہށ0Mckshhz1_Z\skKpd' {F$iB2vg7KzGmYk}:&:=˗bVWF/QV+Xɯ~Ql4"a0#%~mR_Qܖʷ`jjitꙪ̔#+LKy_&N/ւW=NI=N UϔPǝXԚel1.He)3g5-N3m *3TmJK8ۗIW3& EkVE'HDd>f%{kZ%b$53ܿZs1p1nj9k2$b]k5\O~T-Pd)z7+f BE(q5XI1RYD%fiP؊ q-0lJLm k&UJMȯ6m5Q,sD˕i"f=ӏ 7w,k vL<}%*{]GH~=%WI:l13YqS8dhbhL)S_!Rmm+yԌ8Gq*k[IkRuj ic7#!(JF Z7 P#rQ 6ڌ6)$SU4n]5QUTt@We7$ʺܼڃkPgh+f[2;zIi:ʘ,ͻ??.sK#kl)RL+qtV+[Y)\}`v%S>ƻnʸ6cc {bLoinrߦe:YSa!KN'VBuy"Eb!,fL'WLVyUxYV?vo_Y<ꅒHXbZCC!qɬfdy$ҢL<]3]{ r6q /ܩ5HV=v3rh!cdx/ bdY,LS*?-\[h_fP\*kн}ºIX85-ĶdtM,_i,TeIN8иc1U1tb3m!A Ynk4l&wU$J5fiًҢ/9#*ЉUQbہ';WuX~%vG݇wdQoZ뼷sٯoΝ]ᆵ,`jaTr YɃpݝ+x4~8|Ҡ>ᅲn S2 ]Mv45Eك{eĄJO ehg&J Zm?2bpUN?>?AȅoKL=8~?vI?x?q/j~~I=%8S]Ufe~?XQq\ )+d"k;ķh˴,"bk>t󓏲<1Ŏ͢z?{u7-V99#1,O<ɏ =$>om왏ok3߽IW^x=ZA&hLemz2v}}y=bgvx _ϝ155M-ځs3Q.uőNm8t2L"u ܞ28Sʚ/:̑Ve{e:}O5s*tY ^Q(+Dh_ck8~kҚrXÑk=^&_k"aYQ_eh!C{M>;W"=ϗ^Փ**?w4$igk5 䌌hd@*Kq;6+#F~#0k"+k8HE)a%#~̲L\1ϏZ1n;w[7束8L `O@{R}S߿2Y/Oo// [t#-y̻㜃h4b*rkNj6w,\lzXEÅ#eC"˚ٟqSk;zjt굗~{9Q>}ߴ;gn J տWy&;ctL[׌sޜʒjQ^I ;嗿es6O~Wٻ}-D zWK727cJߵ+h-%z@kN7Iw*'><λ"Dfkrv5R7Wiwq"x?mR7k[H5яaDH(fQV"ЪyXo ѴB'wnqbW󚡮e λkNHQ~ﱤnͼ_:ŋUZ-[t{2-Sl|m維֮QƸZ3}h":2Ԃrۡ|Jk7W&m[:(ЪE4NZxEsx}Sºz-ө`ӕ/[ *0wWGqr;wj 69;n3![}OR}%)qn3 BSowsIšڴ٪{>s;?~E=_|~=us'yLl^E6MO>>'BIRȘu˙׊(w/<$*P4 fMY%Gr[BV$$ySH 0nūe:5|E+r&-$4Ӵ%09OF{Eި0Iլ@%tX9z9Y|Vfs|md(I-E}ıjWD.۶d-xUiZ6>E/.ӷw %*6XsBHdl**GC2+ڦvx 돶)$+qmw׽+LhڰV_CH}o5h;ֽ eoz*!;oݶAr2Nx57M$6^|4/X￳־ZLq5!ɴY$K ;bBNX`<>QvGOxG?z۝)q/~o5MzH]'_NO}g&|j>"MO]\Y_#[7SF:_~+~@3}i95`&p֏Xzv!҂ީT AϹ9̶n~)S(JQ@E~] cL[V/]q) bʿs~VV~XQ bG}ź60[3x۷7[L*+bN_sܝ1Y=pP|ٜc ,{cmziio|vW=#6;cH3?Ԗu׏" [s0;>|˿OFƊ5 "^?ڟ)i ˢ2ALM}Z8UA/ۨhk[Ƃ;h(UHfJms$'Po}k)ITrECsP; Xo%;!M6R:8@kV InTN(2GyU6wC=̿񖍊J7ҡŮ[ "MS'صkϸtꆍ;ԨY>/s "2>4>Gd|7g>:{Fp]/]pz+JY{p*~OؼS;6lAȆo_n/oGJJ67;W?κ?5Sʝ_hG^y΢D9E[dHةM擇l+%s,{ ؝ - 8ziVhiSC8e=g4W5%40N`,?]8M&FZƶ7U3!aC1p*W?E*Ym21N+aT94Wr\$5-g1&j\ٙ~\㝠Y#bk׮KqS-P#)ju7/ml)DWJ*G}CҴoona5՚T"n9C^T߾VGɗi*]*hUabb u}^E$HEE(ɰ0.I 6ο ߱uK?wvD7N.OyTy;cƭпgxzO3>p`W,/|p^=[veg/ }Ƌ,4X+0K׋79fPd:.m#笭=PU%z|7s+7~l5ks s)62 ŻȐsB#>U-s~upu~,p6l#{+h˷~;5UL!|+cF_A}S/#?|yu/+z~r#UR8{(m=]ˠ$ihKwm+o@/{1oxEt3:yװLsSS._eNgd:oDw:`c>}/>qE6N 9ᕉGӵWͷ>yo^a4յ/7Y=oM']Ĺ=JE6k[e))PWxc_o[P"S2ȕk r-;e ZjFoPq<8g6=ycBu%՛IٗTgߩ{#r;#>1E#Ue3?ٵ[2=oχOZal_ٟ$%77t{!]v2%&Z^1J+u_=1-۲@JE;XuIV;De)JۅLuC2q 6pG|ЫfL(WKSwx#kZ sىb4ln9m_v/tw4ݻşTsԌo:޽z) YJU˽xi)Իw1z44D~,[ywF{Ftw= 43bku^-6'i9<3 8a9|)ј5Hx}zl~j橗>MUp ,sٯ…y!^7|mtpqoq?:pE|G& r͗?uㆳw31üĬoᯇRb} 'Ps{ܗoss}[a\M}]]3qwugΘ1}V[|7VoZQ=fkl#H"|q+֎s|S}_?{;>H}>q T"arOQ~a}>6?`9"Zĭ>?4@r_/RRa'8KGp*Ŏ!S<_A CgG:mfvk~ouǞVO+z.+{(>k7~?4EQzM~1Eך a)/Ԁ;/qi%IO|)#f_sYc947K~4Q[w18~yM0 rGҰMs]vH`_}7w@㊬nz|ш nx5W~fϕ.~ӧ,;c?Вy?/k1c))I&3ǻvwq+W IM8?M,\L>2] 8u=ۊ kOjMYt4Yykϯྭ3IC&jkQf#8qf.G& {20g.?8#\[ӓ(ۻYG1ga@@f8bM߶Db2 3p2[ E?KԸn.>OX/k!ri=gYoW ֳ_Xd}A4p|Ʒ "ȷS/˗J=?}vUMWMy<{A2gW!jiTɇQ_=c/srfwo_aH/-=4j 7 O{C |]!2Ysi9T9 ʒ+A[?s٭jP&O)E%}4$_?˟Eےy'5u"NrSc4 9wѭU$q|X"NMi,f˙n& Yؘ'+CcJ`jfę1mEGQ3BEdfdFHRU{M,z8UYd"p Pͭ}s\1o=ӷױp~6g{}c:D{_ml2h!GHɻn )y}/הplDM|jg4.Jo`G>}C?-G%"Jz??yS|Q?{ۑ94|岏4<<LJ>ŭۀG GisVz07T(.?~apvGk7|ݥOOHDџ_OMHG sp_q$kpH3x_GOśqTZ4_Kmғ3w" p!BF$l1O]t"n3*u,Bڳ6J}yO')ygsfgKM;[ojzwwӎ&As3OߕimjΨL땦XR|UTԤ|#a\ZHr8urآLlsOsvd%E$M@ߗ9LMޟ}SP'ls]W (32\e)RZ}U*Ɍe(-Q,/'3d^/$;65KI{Ro̫ u̻7+-/z_=;o~,\`L2Dϑ,G֔c\9'5-cW=tV>7u\Y=S+KI 4&mM4GWQ3" L79 c$ъ33xRaĒi%v-ݷĝ2΋IꞬojMXs w8jĶAUaqm\ջzjf ŭ.L^VgthKѩ8x+vaH[Բd%Qai\[SF 7e1_Յ[DF=Tÿ)qV+c32u0E#r,rb1O,6&0SekCա n+ Wֽ Ux3407pڝm1_94)qGΎ>4+2M^?*k߲]vxuHwH@Y=7_INpA a9̸*>f.-R$3eLKguB]gꈓ4k9udph,g~W*fY8tZ0l< m֞m!j < rsfD%bulzPHk#m:Ɉ1iáż5oQv|O+ Fb,kيv8˺X5uz+T(ΑSHHr3{pjOی3T()iLۙѵNL#f nK^zӟϲHu_7KfjwTLrW8e,W_ e1' F0FZSd DskRΰgG'gɞc@:#+-Rw5LY#t<~ѡmO$>8v;!(# fdAXNG 3mQceJaULSe<}e;34"DUw'eߖՓOQs9ÒG*ʼn*]ۨwbt*MA5m igƽh;y,lOQhdkv b;;ԛP%Y~$>d/mD{U:DA 822^MIŘOm:ڻ*g#+vcr-Gi!DڞkCs̼ 'ycWmgSڋӍ4YSFJљ I{:fL*e`TmjFb[;ޭû:A,258Ci8_)eY.Lܒa*Mcg'o4>l e֘Pꫩ eXrCr%۾,IRתc,b ǺKfj0:(tVՎ':>)-z0 ! rڌ6|o/.ƩfJB,3*:!!s#ھ{,ϢWVN0EAMYPzY=WYCڤ wƆb5HuuljZ@io2&񺸰}8#͒ֈ۟џRڷ2UVzeG%r&OFHzNlk+N̼I5Hth#ԉ]Б9*HL# ^tn9s#9]ᓺ$:f>'uO7s7gH W131 B}!2U\FU(e!qĺͩ^o]LlfC|2/N*#2LEbk+ٚqPHalqmiqDwHkۛ1ØaW,]dz"3oSUY.M'un%Vv?=6u6 -k݌nd :#[1ZuꎩEh}!h|S&tp(B):{}*kߛ9Fę?ߍjZn\pԏJPe5 g~ЫiVg?f$$lOi'b!jm]/hrM'Mށƚr8m[WSOܿ=lDgYqܷr68'};v(`xॗ^:k֬Vs2g7E=sΝ-ȋ47qA+J*z tmubV2oݸ$=,Pk{* Ҵlv#{虒,XwטUKXOs:eI-%ypR+t2jd*q@)P2k`ՒLfI@ΨQ%"U#*νkYZZ=}{2aae}'0x[~vX:X^dt%ȼK?gH#q3xב[WqTo{fws~|_u'/' Ԏ5I̿\|)ͦq)ckI}UYɛ ,'}y|O7oȗ~GynɄIsXsmQys2;{颹OJQ\\Z/|dUܹSv릶I],?A]+a&qi,W]J*9ӹv.5uAa# Zx9kGP;y|L[}IkS/XjfM9Ņ3O&/u7l=3Kq匊z91tHNq?0e~3NqTQ""2D'ŶZy49V63{nÎ]Ƚ4T븊׬0jA wXwnrɈQ7yï.k6.;Z%9\ՙn\ϭ^k׮~.^LbbW.sCG}<+O͜8XjTG53Slg6*rHuz,5+ ky;Kg^;6wh*ccRXӘmCZK'Z.ōXZ;S7̉x<+t'[/|NÕ5ٞ\zLjW_djwQgCUF &M^}c99Wg}rT]S7VU_:_G+_R7%o 7N6qT-~ʰ=ƕely/Y69Ėr;peo Op9 =o8 \ly*{$wV~i{( l2%{ }:_#t(24E'5KW~"EEE۶m;#_}{GbyM=`#<=C&L(..o6/AIיʿ{1|\Nz]w͞=-dfLV2UzL{ c$<qZN Bc;kfd]fd1IcY-!F$@QeJiANE!@'+2 eJg2J^>K~7sݸq] ޽{~'On%\F{|E}R=gN}暃>{ܼy> 6uj.# "NU n cǎ{^z饳fj5\X1Mk3>hϝ;wX^ /JK94qMe+2uI{795%Y=IV t>j*_WֺϭZ_@ʅ%_UL*aY%64{598uaF%JG] Ln{:.3j#av,V761IYN:n//̓ ZvZn [1*Jw!5kGu)23 p-_.KO[ZunׅD+E@矾1gs2+'Tvx d':A5{:9cV۔,H^krRt+Y Iss;o\7j;Syw?U>rԱw7 +x[RxS G4ʵޥQɭqԖ,=k_e,}~h%FԮjC=4a„BtobyvgRS{cL:={vSSSa^}խHPe5fbےedyR1gw8 g!Idw f]]PyC+Tt:_2bfd]LMQ:]ydn S{m%e9TINkʶ5NTu1X@KV^Gr:n%YCQNd:ubT'HqvtIR1]/k&<킗k㥋N7?'Gr`IPs巌֛ͷ{)y՚;EgfcXond"ZSđdn?i2r,&3N?jyIɳj\2wBkY=+Y+0FdTE}< xGF;yI2JV2h@ sto\9z9Q\zLsڼQus=D)wS)JlLOFnsUnMEK:[[l۫5{ 0gZꇬ%YN%:\֮~nD\z=Ur |Zr'sc+J+uL }i/DKZg-_dˊvZ+\+Yh2S1,1ssT?M[ӖL_=@xdD#U6E!pqx >ii8zD-pI&DS%c\Qy…vyҤI|,WG}隼`Y[5̮ŋq'pPsi% r%CH ><\GߒHpyd/(@O Q\BsňV% !|h(.hh3Ṕw&%S>aRbqVBoM~t/ %nnRj7`5:D\Fb.izȁ']vņl#Drď܏'^zԃy%/`Ml"Ǽ|`=DZItc  ]/$NG4H''%JBiؖ[4f%jjD\%*;uڒp\&f2Щ,!IkZPd;VXɔ1ո^hK:_YXFc Lcĺ-Y5232%m@J3DJ63SNi @WRѪ~/O'MKK%5G`V5CF M qNd$dp.dܜɼ{jׂKtM-v7(.G$GVgDtWC9t;w7դ#-O dzdBj HCȿ_$=9|7T ("35e2܈ޝi2٦xYn=ev#~PM ?;ÅM^9z QP^[o o>ViNZD %fJkRmmiuòb Hoe4Դ#[ BŖx5C+hYԜm]fV{Va)_J' PxL^_;P'̤<|3i 9l8 rc@ Vmrr:!.6;D^DF6KؗdlW::vEu˼ r]2Z0q~Uڱ5YP7jRSZ58UTԱydRǑ/ gIVR)4~F>oCǖ'KV_^~G>uD[*Ԯ$˯kQn\4bF2bpm匊V阭D'W.c*=\^c n밡_m` )Q kɵkH^HE4!i^r;Vrz91W5i%4'g:܎\:$ϵ%#JZxyMo:%uKe.-̕ŋVO @[YKx |/o#_\ \dttgr\=z2GbkM;_ |6'#kVh6tZBI 'g{"n''-h%xW\91L"+9vQ\% @{b۵I[kS;N-[+ܖV__Q$W &Y1zZdNL` ddLr{5r^uY+**@ʤ1}ѬVԎZ[xjD^K!g/qMȵ2lG +xu6T|dje fJ.6dcTD*=]ǵhk+kU)dh`]&gANKcmB򵵭4߯%)^4T:q\q^, Ey!~|@+ bZ/?=pA7obp̟6L_bv2ndդDʳUTԱydRF )^MfwwzzLthK*7vEư %' XpLY5UMɳUTԱydRLCV6qKWͯ' &79@ig% ūQdxȨ^Ϭ VΨH_E]M2WX\-LrJ0]dJSυXg9&R񍬫Pxamx]N]h+>tDIkKFvdGJmW4T빡y@P-4Ud3 kۊ0}7R͗5+ fGG,,ZmMK0C-‹ r.}CC\pUH% I UL'(>;TAƷ.W]V"[ _D% \;j![D.+JP(a),+F8[ځ/f 44k-<<ײL9fH؅Nr{Nk.5hWЍvQՈbxkE "fu<VYPvr׸gb]+@N0_26r1еSv2d{9&0nbPFU%VVF[2C$=R&p`] 5nPKS\?|ٍ;伷^KwqƱb.ɦɻXpqŝ{T1ZYɡ~mOR(b<:J.ЊSؐzlFX'UՓڱ ܉=Y+:kxt9vȅ:*5m&71AKOTk&/U;vxZ7jR9yեN&.,o,5`ވYWYِP vT@,r3֙)BU>DOؘ֚./Q74 :,(r >mEYE(smɈBkdlmirǼ6h0UNyMC4WSeV6gHLlX+܍}ߡG\e.f@Z*X3vb#_ kgj]NhW"7 RpXu%EQ̪nd,.S %y:.6A"ǵ\,rdK Yb:K霽]SV2TL*ۡ|&dh.-n_j41ř#̦ ;E}|cS졒l Va*UY|uf[dD(l IV=#g96YQ+KpLlaVV\Y&XӘB\Y+q!ɤ-?vMLPE7q~ڱ ԺU(T}L2OقNR_X]EL g' *jdI lMvlX.\8iҤ~;~d(5n[ޮٵfzG#؋?>N|0dgh%}ѻdUs.b3Պ*3#t\Es^~s`d $={d`/V0\$@CsK2bX6Ҏ} CXn+z t'p\$I,n.#a g79?+J=rp(WdOHl]m 6r۪}D*{"7! LPbx Hr^]YY*R[e S#kIaٓIX$]z[Sdlb_)<[JH6 6{#5Pq\e< >s='ssc'C.8D+yo&e uy8'졒,c*9d*{" (Q\JIrl=We)44Uf05b:NFٓtՎIm}/n0w "$XE$Z#O1*ZJjBuO{p8V] Q˟Jc KOkOElwŖ$2wsƒǔ7Νf{{N3o2446^Q޽H"'\83EyZb=Y-b},*0D˧6WiqU z]-IJKZoŪo(PZ%TblB8&lq^w-|dضWxLcrDm,TVضQG>KGv9 OAݼl1SB @a8fn$Zj]JDaT]CPbɮ_ar%@&@^oӖ^R&,^x666VVV?~ܳ|Ȑ!ᶍ ^UjY<(][i]}xxa^>sΊ'~Xl p 5BR7;-ffp@k&T'麈i$x={8-{6 @BܒbLH9f:UܷE E1V\f,xmhD{~I2%%#r Y$'e$-L Qҍ.Y&g!H3b%הŭ%RT VIїt 7*kQ̩ɅYuB(̎K/œe$-If3hcxd X*L//He^;A)]@dbDYd @mݯyruٛ6{sxKboSVIV,3Q=(iBJO-9mEY/mW6ʎEOg;j!$Y:86W9%~4sW5Bc,Em'P&Ks(3EqӺSk0.wå,y&k<VA9*ÿJU[W%Sں4՗<-Œ,}r )G fmjh&}Aad y6'/]ˤJkᆊJmm@h9x7yz.@11 bQjsV*jm吞?v^|[9صcL@CRI svVY:S4jWyU;-ڼ\|(_\3*!e^<-fQESgm $ oԺtZ.߀E+Ss_kve/(,,e8 Jw2AzS%SlJ R]"Ӣ*ϡ󊡩l?Cbc v 슷6*L$ QՆ&KRX ^S*û\+Z̢ͲzX;ٿmE݋̇1cZ},>%)|0^94jUf>KJv9 PAݼl1SB 1б@FٿBi+|~JdWYd8٧_ִ[޶Ռ ֓C yl06gW˂yE8u2 5O|Ǘ#q3z@llcS3‹۳P3YcK8[*%Yhɿs?M< ᐉbFFs!OM E9% ՅlLs)>cWT3&Pe` Ѓ 5Iƈ.`@W70gS2nAzƛ88@ }FdUVTh ,fI$08|մjBاE L.9e},-8q"赳m+&Zɮ$k-g)ϩ)V%?ΘZujņoޜ:d[Q@U]J9kgf2uƆb[*ί TI,檪tVWR^?FlRo2ܶrtUy`N ޗL%ȯoYU;OآQcz]ΫڹuUXr+`f.,LY~髙'8-EntJV )_պ|oEuh Cr땅$?1Ԛ)SgjD /_eG[2mEIVJѼ6]T@MbS1k8S[a˜pCB *'>H=V-*TeESg64#X8 F Rzwi[lk "֫VN9f[i@B_5lj͸pVKm棺dȘimPPr17riN@9 +b]''H5cWGeͳy0su97֬Ysȑ'Ofggg_|ųgO 2UF,$ńu('o5ϔ~;+DgUM'Tg>Ϭ\y^nw󝂂 =׳ܹAY 9 ;WNƵ_:77JvwcU孷qVo,Xpvvvf! 6{'k6˞ 5E Eyfn+J`UA\7zzzetc<;v 5Aƫ꒩kHDs> C2 gNl`H1Ȅ]kɯ\&%ɦ{vM~G]^ZsG1([R8iNiԒj&ܜi6Lv9KK&MbԺi,lZ,avG儿mZvpضyb *o~g5Qpn3obgӢ__ℭsmY]LΉKOSTG5iP6{律r~eMzMy²{9-7jy9Y'{\3ƚo۟s;-+#ܸ]~v+O_2co7ֻNe?`eEJup}k+,Zn~ykr}<~opcoZx\=6g?vDs^OnUJ_:s4Tjʖ;iRo~CS`7H*..Rh2!M5=ʧ |cמx=a0ヒk{ۥ esZ*dvZ^^ƩS=^N[VgNU6ox\n}֔ `/_8+evjzv`w=|gq=ƾWY0W=S|uG 22c.? ["D귴1Ϣ}m[G$Xg$sa5$}Ʃ{l_OE`=WjWn{+\WBadeo>5<ܖs2DZJ, qT+mXa/d~(N&F4^>~?nnys]^^m3ݭBWV\.7g_o4}edqGx$[dBLgQ6 д.{Uڎu{{w]ݧ5OU+(*vt+^3_m?0.Kصt=lt:&͹mG.v<.9+Ӗ__^BjGJޗmgV;OfZ-3UZ#zV 5O]6\{dgͶR-L Pi\2\3M&<|͵$٣\P:gaᒙ.>pO{GMɽ]ݞŔ#)-xc7|tʥ '5:%\]wOejq0o$䇺d6'pVpݵwOÝqD0ao-.~%/\jt\#7}ˆe>j-+ӌߟq #Ξ,VZO KG=z9o6oiʗw0Z|-DG{ޟ g;W9]Xjd/$^{vwdVx#)wFU^waI]; YZ\+pGwuO{ T`GhCE{ '=X>lzy}O)' z/{3=r'vk1p~Gls-K˴o4G =|F>@kg>Hk)|?Q\fw~fS#\_i//{C3~rFK.mfM6x·Rx3pn7jo|꽫=Ŋ̟E!_YQP#WE~Mt{57vstu6߾o kl9gNPqkǦ|slx4`7رfٺcx d;^?浞bj3 _w Кlޯ c̰mo*m/}W/N:+Y%Bo{en{/ȷW9NL/_L%kb|AzEb_u>X{%-x\.1>M}PX+'ظʢˋ= |wӲË g G0[d-|L;W,nyψk^s[VO>tb4sө_u%OeSje[yƛ4 vin.gL<ƤsfCh}Uzg.RgIKǦ*L/g,SrɺGS ңrLds|gF;&\]ɜ9A &n35(^$$$FquGXb؟} ;JUH,Jm~6\ֿ%o8݉r83q_qۻwv_ϟё#v>$E/aRԒd=+D"LeVnEg~V>e)D<8u烬\Oy!^R"q1a6(j N]7wX`?8~3heĒ|sw̛7רU gm׵-~r͸n8_՛*Į#-ujqaݜ"~'*?jGN+BkkhZY~dnjV-4׬]ו%T'ʹmdT=4礴O{ʞyv'd[KysϕBBWI^IɺȨ)%"{JGGFlYQogW&Z\?e*pa$z!imף^>Ѽ![c OwvsU62tׂk쬬c/McӉ[8.F| ,`l$Tl&Qex<ݖ)vymo`}bڃvw7#\q"jQn+=ΐVn7FWy$0 n4]Jf'X-E+;Wv59X"(fHӭ3L҉\yMO PY=ݖxs0 X櫭?9w"~)3jETJTI"q+ urq+IM6b!ps N"rw|ѱ# [;u"WLkϿ;Nz`HVn.S>fnG8!FK?{pcivyUSӤN`F$HVe ỳu\-䞗{*+|}pM з!6IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/figures/import.png0000644000000000000000000014054511534217015020446 0ustar00rootrootPNG  IHDRD+:obKGDC pHYs+ IDATxp$y Twsm%EmI̢HQ %+Ж,3\.r9d`L9s@v?'!,II򫺨 7ƿko;>_ҝ_\]?_ |ݗMoۮkn,k)7V5|\Y:+ۆ͟"/~ 3ѷ۫GRym0k{f'@?57//ko5W_~̵BԧgŕXk??_~O?iXCs_ku7}j*_g#??O)<ŧ?mD|jx__sç _0uuj]ںW. \zeq ryq*Ry`,+0O-7Ұmr),W޺s%n@%-g!>9U>VWߛ_A+ Wʟ"V_-gKB0ΗSR2[@-%sT*'%X\,&Dt7ϥ R~nV\\Z7]w\.]ㇷϯxp<^1RYz`D^4#ΐE>Q>2.gR[%+^aWs XQRC[ފaE~|?<|9Hn2eWj]6VLՏ9eSl%ct "e0F/6a (_x *ONL 5*4ƠPCh 7xj5rrJ <5 kY}pV)A%DMzzpWwb1-!, sfؖ$Pg%ΜԝyK ߼2 ,*K* P9A%WC xQB$p/3i<17嘛'qKaԔ6fCpuiHQؚ*I`PԦ5@WYh4)͸.O4Gswn;@Gzx4xh/iυyWoG/^?Ϳ=ݝGUgF--,ڣR̀6A]P~@a=X$6=?n=mqp m?W{?迼uv]|~oۋ:~{#=ێ|ͳC;.j%:ԧ8ѝ^;ġnyWdswF1_o1L!3P#u~-lŘma8 L62,V0]aƵ8Kq3z^h ԪL2 @a2*f)E]%AVh# D=%,ʒ> /aRօuE" 0O20Asj pYRQTyM((=H~a|3c2nlIrS('7͏qcwg/s9KCxq^iWyd(5>@x1^d3HЙ\_jLMf֋m]!d,|kXĪ%j% %kKtȢyFJt֗x2JWJnK%CbSHdjOj=3Z,guW (JlaH \e xKDjʬ1|GsXl=}zf4nا@-Q-.s$ҝUs WFLKl)ĞGFJ]2 .*Ҧ&֫7bChͯȬ4n) #ܰ!gnϪl 5&&S'Yx<-l ev%=9d}xk^=Ηt|գx,3׏^=\ͻgsog@|.Q츭Uz?,6CY}wyyosWo|c?vNۻd/Wn;~rӜd;[&tWώY=d >QCg9"-}6Vլqu}|UeVje&56SZg|YEiHgX^ ls1& 1J,LT) [ˬX͔NN%})n_ۗbX!Vy57 /|* Pf?5ԟcop$ 3}hAm5w e/ݖ -dc,XV HҞX'Y˄%Gb=[l#؂5`sp*?fԮW8bJ{ r+YCSPl TMX#d=&QX$ OIYx5; &$1wf3r5ƛxs*w&w$̑@͙rrOA-+`epL>RcL>Zc-U3{yVFͅac~Ygr[DcuRd[L}_zkfos7OvgۑnoAi_;z{l>o=Ϳu{лmzeǹs6Q2D>c^^f<Y~86?sWoՎ3uE1wzډx;.klx2[uVBil(mՈf4J(MIIZ7죕aՂ3]]cca5 2{od>bbbb꺘nv7瑋s=͔xQROsidzZ=- B%n ]-BGBef@-8Kz@dMe222c|6Dǰi՛W@fWoz՛Ye\'Հ{=KU\ 8yGl-EK(odMїj2ޝԻ::cʸ2Rْ/ž3@153Fm `,*-d7վN&<4 g¿$T'ߒķ(. "/T+&M0YqDe40Qcc ՕP%72K)=p$!L;Afz:{Z߽09go ގ#;'vwOj<9u)`ɽ,q̘tωN϶bSmnߧEό̈8[yOsfw8l'|w[&w:E{$dq$pz aY3݆m0I6'-?:( g$Jh݂zlL|{8?g7֑j#,buwT@ Du=j@E HLeRtU4}f0uMceucYü@ aըHpE^8x2pdœ1BDdd9QhNc4|귯[ZNZNeZN[N%ZNӑӡӁӞST\,#63RJ]wMpQf!uJk@hb#f{ fPc+nWԅ~d.P,ow7x ļ+6猖=@B ]Qٟ1R di|n@Mࡅ.Pl@(O`:y]NXbC9l:erw.!Gsjtn<ѿMQ# >UWF:Y/G}_vGtmj7y 0F]##ʣclqWw?=l<3j9;f0hӃW$ {oU>{uA-(#3) aR^U]rx={ϹXA$*dM1X2J`Yī AdF 8l^ @]QDB"0뜛q)Ӏƪ2[1b2l`\*U֧=i2# w_O{|PqOzW|[x9s KbIGdGYC}@rW zfaم)nnY 3PZHtJBB?˅ Q |~> ( F]8 ,'SCS`|vrnz~&kZg}gF|P6rp64[j8uX&YcŠga)R*PͺjŠ枧ܨ7q edғ"@] Wf Cmj4EM 1r[$D< RpuhEb+64$2퇾 o(]!J2GeW{Ǘ|#; {wam[oy"DHV8V5O~'qx?#Bv8~`mN˾};v'ƾ{0]%Te y@)JH6Ӓ+k.g_߾nY|G/9H;Ma8`Pa!*MSMM&2K:յH7G|yEMAfny䨽\H%7X ar u)<}ݦ3elbJs'PiLhl-h1R S&+D˜9_eԔȧ1&1"q ,+ i[UEhC&„šS<0]łEz~bGGU'f0QXJ7];A3m?(JFj>1䅰bV,]ǭ!2j!҂ㄐKb;>:.1 EEAÖwd蒄g ^/*y#.m pL'hj@i3l\=uW``" *Fi_2YVh=f%āu"phRH.IdFS|2쟧+ciS!fCA냭DWr#©DU2)ͭ~=<;۵l׿vӻn͹k{6mBxk=Ha{|c keXػ{۽{lwnݽݲ{7ᄀ 7|Cp$KZIK]{mgfjQ)}Y@-%KZMtxw~jv/'Mg V(Khj~m1A4}߯> P OsJ/cHdvAsErhF -z8ƗѢp!:Ѕ NdO^ ;lEb΋=mz}vF_r,1|( |fJHF 8+}e$$Y: -?cOSy>Cn0 l10aC <]MrI[WXa-q :ENCk"mYO <&;aِE_[Ed:QCsiA h,2(:4AI]YxG8@(bSڂ: vw^rzy£=A4=*Ⰺ[T]h706 4 dH$utÕ4 ` 02ѯ‘>UdYt Bf|Ȥj0rC]:2QŜRt&Pz Y _pE ]!- uitW+Q=-4-R%)!sd{R~΃g{{gᯊѯѯ5wfAv;_?uL?z>ᇿ}9zpaikn] hC OZ4cfEx\2u)_[Kgwo~yg|ޝX$) h,Bh?MYSj6|0=h`. tտצdyO ( DQDoad6ɻHnkƎh䭗YrΗTeByo4<:ƖF}վ2w^̊Y-3X3|szʜ4&M 8ň!1CrGK 58*:+,yO.SxY lA~ =ac&?AUD3'@`U]683@sx VzMi0@@6( ܘ#3c;7ff{uz\-2vݭo[}uNāNv{L!:(GЏQmo\Mhk i5tXzOJAm0!P +LY4bMOW!5wbBрQYq3'q1H7 #? 2(Ph_!O50r?U?!II bK"kRo$S^rkb]ܿk7 oE_pCO!W 6af<%C|jܦ@XOk!CQ1f0>Ȍ=/2{pUThs%8HMO̺9ǟNdvwZWyrhƗWyQȈ*aI)crҘ#.Zd!6aj[#Q5b+`@a,YO{ānԘc>jo"4yPΘ̈\a46&SV5v#=lxP߂g@ȹ62* ܸ eӂMvMfhlm 6ZmZ֏n|ߍnfB1CĈB [`G)蕆6"C pQ/laAlU(9 +*pRYV7]Ց:g! LPL)0#ӄKʬA`la13 && X(JL3*&BYą9HT`"T ht |+o} o5/|NwJSI4Vpo]y4?r鑻ܥ}.wK]~+|u5_ck8•Q8rYPfWh:ե-^vێ4eӋzFfpɎ2X dI ~s>(=bd6W# h5X؏6KU wd [f a8J}@$JjƁG w3JQWUkh|̔/YYc;v*!b@ִ+caAh !,!4Ω Qp mpC%& Pgcztب66"p!5xPE8u*U@/GX O{ľnbYwb`2{yuaT9G@,Bl?D: Ό4h $A1-9 !QTi' qq+l6]L9UNz`$`d8/N,e3gLT6@3l0w"roDlB62Hs[EZA%}piUr ̹]9#UUk 42De#XFu3LdҐ@)DINLY BAAeUdMJ Ee@EDTZU{XB"0%&TF1EYSd)gaٟ7}~^Σ^c>v{%ݫx^jGĽ'Aw_g^7Oާ>Fd'y><~?~w=vO{=PfΔH12*2AWFp _?5ߖwѝ盞c]otݛj8t-Z@>4ټd $b@fll,0 Dr)$ @WĦyi *2dVD.y)W!ɻ[͈y228BY9^0KRý.>ga$8B DiM3zm5emҮUJ6UB(m]UV6AR٪5Ց€)'hpV\-2kSLiǚ9O?{}zg~-ޯ1bF߿G?N_G?4ÃROPAAg|g}g=oH X Td:PSm?}AG_h=Ǻe>ȭvaE0q gv5= FrX&,z^4_y՛MMo v^,GYʍ9&bAEzyeDZ5^rt%| 3CxB22T@M.x 8;3r_R`Y켕:bGNhZ!L31=F #fǒúP<@[c4 fFuPQ<҇b غD8)lVEpQulC!-AH7Ib)2ik6cʊO-|JpYFhm-!gޖYC:L` 4#nDHqnA<"Fh't {#wOK:D b% ud 21Ue-Wƫ lDUaplubs4 p2s74iK8jo=aJ#إL çX3Ȥ#-;Kg)5Q;M T{ќy@ꢐ.4}([e'. ;$thw$IlIn*Ce?ӷ_~O?{Z𳧅?J?J˧}0˿~ORlvۯo&4g=#/_<;g' ?6vONU}fH!v_W֯:6O/˞)6+qt\2ʭs+xKTuޒMOtXޥNw cI d6i>ڴomGczw PԼ_*fKe&Zb4=1ɆAfhwR猋&P6bV1n}sroY)]%(tgi[o-L1'- s~1SQadt 4g)b|\XT%W'm5tڕ҉CpЁO;ZӅ\SbU,"iq8fm3Yg!pw=BUXzIhH$LQ:$i]hۤVEkzec"uKZ2o.w`?-G9]%wI]`'9t#PF:h#UILE+8Utwk _V1dxf@c=Y^4Fl(9_ÌՊ”jy 3:ؘo:;k/嬣 G'qK R+ o%$cir2:G׭! H?[}k/N @?3+?Ӿ3+?3n)`}?ocOpQg?s?3oG~ _(__ /=xY#$$ qh>ڛn_ci|yBk'~u:yuEw/G:ɝU8Q:ȭkZx)RXbŵ=D%,Vh +vc=bGо k+<i6[FC߁ME{ u,'pN >~,Ӌ~<0c5pp`P~5$9İ&a=ev |LlM,[(~:(P`^{煞9tsm `eGpb98 F>1aSaȘr\} j00Ki઼WUD{y^3H+"]HwmjZ;Z|bo%tv ]{,`C8EGIJ u)V}[̘fױɴTx:֭vP*Ъ|ͰT{UcrQ:u{[UkSNuKDz4^MYKdi,|54WqYRA:RGX(KglHjL \C'N.TfOӌ%&Wձ|4#ӣfX0lQ 4?#ͪӫ͙Lw0s2i ̳nd Љ"y:3/~FRzB%| PP$k5Sia9Sh:|%/dErh;<&GªZ?aNwd;_헴H]l_~޵yj;xy]^t{ɾ% aw_ּصM}pվoϮ1h3b fu_s%S|UO܇~ʿ1rI{>6vQ`F>-Fo/w9,\W"+Qrt%^BxʥPs>ƌ5Cb(Z0="QfU|İ.Ϩ. c|;;M&h MٮMApl zO9$oDz>p)UijzG`L_r.Ykck. Bܿ"/߲Ȼ,Y 3ep5'%iZRW :nlsS 59?p  r^MXKcLX2'vB[#PbI=2?v+#Ij$R5`~Sغuv 1PHeH݆X>Ҧ:EsA羠u ApFDsj\6B_^yuUo7 ncccؠ16Fن0dlo`} > CcHr i!6dن|@4R*w;# s62ycuۗq%Qc]L8' `6?nETjICt6X7;'e;b `[okȗ_7sE"yJ@|wPh|pnw}_x/Px/X|/Tz/\z?R~?Z~?6~({, W+F3~ KUK裤 `W\/V*Pf>ՈȌ8ic,_zXC5"+$&*IӵK!ru~ ?ś3noz3sٞbo8yŔl]E/i#K%yhMXĀMoMRfo2ð< %{i]qK0EZMFyuV̻`2Eq&񁽖Y`EĴՑΰv$C4306\͸pc!ɾ^&>lFN&JTX46 IjZ,sNϝɏ~37|?ykgn³~]ۯ7Op#c;nD7gn7_}k'n]7 䒥r & D2mHsJ}͟p֘%GeRj5a3a`IdKJDD>} ~X*ԬHrga4jL]dk|%89PxHcLB((q5VD̗`=4s&Kg%23Afe0"& I$@8pIPcҼ Df+3ުɈ̈[$,9xk#Eoa_µܨ}6tF`Чzg,X >aGmAgPmﴺgJ@oV)؀r!6է08Doefad6`qSFK[1,# <Vlnkn6Ιܧz xLc8 GT:DQSJa\ R`3 y\g2ΘͮF~km!kgsMn6Xz23P[؀1XFhCf;d [Ȱ51lM[sÖ3Wdf*MMòr%D+ȿET-<*Vs,W/f 1ڋYXWF[ҝPcLf.<N2^5y8͌q<_/3 eڰQaxL< [{SK6l{A&p/-b>~+[1>[%bl֞!cCi~e,k yȴ4֥sdnLPfb ( eKh qՆ5&1߇3G!z#2[u7¥"aa#ky`57ǐ5x 6(,KWWJU\tBJ%5Jٗx سc&`s?~6Qe?Oq.%6DFeFfeه9$:al#90C 4VicHʥ0l0^)Z&p1i˕¼+Ar<%ܼfnYY2k^>R7/}ɞl6e0: )dUE_B/l\Hp H' 9uv^Ȯ8Jg%|6*nv#$&߯:Lޣm wW@L`D^t &Q2נ/бUS iט螐N)Y3jܠʖ Oҧ0Yb=GWU '1Uu6#!^N[8o2ڎMGCjArBJL}ry=bxH K,S$ҽ)vدTTktGuijw½h-ʶEx55{8F LXjmJݧTT(X? lc0L!sklĖf,9)-s3Cw\Ф0m#s&6xj[`# ^aG[m%=̨@ch/liNIamzPPFq82 Z^dPC< Not;Fz{̓H̻O&E197j éHFBc̸9?i)NYK|{4?;V cC 3*h"\eߜ4't1]xLU#c>:eO (FiJ_s LJ0 m>2WKjψI96kYcdIx`gJLJFR>z 5 IDATw]~8W $H8T2 2KPԑruy}cr4"WKY둓͘t~:)h]`5;YP>F ozlm>[pZ}\kPoSi@Z]"A`mf?<5ŸljNwg;Ă.G&Aiu$Ds`/98dLA)#c.\$QRĉgGMqSae3&v= dj2#D&Y{d5Ԟ2[%V`n̶HG"K=8H Q )kܐܐ¨rq2iH*8SK74\qW'pCHG L~&Hc6>WfSֶ Sۤs%p, VO*ȃ\UhX3&-9vi#<PdXz ݓI]׸{R7͘v9k$HoJLcS(@0ƀiS|֚"GVpvEЏV3BK|P{}Hl M\+2:"sL}|}gW–Ђ?И;F`ڑv $£!Y)oR t);%BsTlKl =)'$PFŖBCPh AYbImqܙϑYRTiflH|n*aaDFSp=vJJ8x$PXǕpq$ͮAL,@e F_ZNh\qS3a"3;q; +vTΤʕRZoV% &@QEXoٝQ*'$+t 2G .F$ ^d(e%7gI˺ xdG9J^SЌq\M*?O:\r4IxjP%==ۅ2V>B_At,+%CEq̧2SUY9J &,C GroZ3.qƛrgҾ̀Uzy2Q>FdgtbYp@%옝:~z` ]w0`ϋޗؽ/8b  uJ8/{[+#퓣oߕ)g V!&z&KcAW͓dž s q ssύ`ͅfdtDܫz }\c)]o묳yv~ :琛; ȏtI(Np4V2YVqzq|ata|q2eov q!7F8g u`/̣;=ύN''GGzG{DXXybPϞi.g\=RRE[#UQ>*.s1hm|[;IX[&LcQ!9 [)/h[ƍmS <n`#p:<(qUaO`0h-u mSU+O̕6s%b( +:47P[RxQԁoDQxG^XvI]x i1X͕r$kJ`C<4p8F~aMfqasB YTY@d2%AT`IԞqK)\5!crǨ %x^O;X }`VigZSjפ9rB}ɉ%"@r"9;K6/hQf}V ъz4 !BA="qw6?{7Xw-sp޻ueI(Q"%(QQk]ؖ%QTĜa $3D:NN3ϩCzkzuOW\lslfԨ h#M7M5ܘ1Y;^=V6xB1ʵU[KtjI6-U該Te:Tݥ*#u$To;gd!iVՎlr[ѥ6h/.^2b|=.vء=q<9ki=ݶTҖ]$,m9ٸx䔳hq1DSΉmO>Ag0|eljm[ k7To(yQX:rH&6m$SI7Ԭמͨ?ex6XƢ9zw_neֻזY՜owt}s~uI[{hO8v~7i K(>s,>3Vf9U׷Tv?ғ(.Xus_ݱmVnYrWnxeWozuۦWn$+7{yӺ7~bMVn^e޲!n }kswtGgѱ_<ٲ/V/oZټiWecnE+U9.n=yd9۳zwvxwwݵfm=zxC!ɜw_BUź܋-Ϸl;Yh {μﶕsZb;ÿ/>_kC^ aI"s8Ͼ3ygw딶po.}t|]~ 9+v#ܵ$xԷ+e=;Oo;޸X\ 'qۏw[ 7ÿo6͆n<(Y-V}r|sqö$m9#fOH$wG>w}>{Yޏ!iM5}]'VY<.qcom)ւwvu=Ѿ([w↼Kz1;O4imsy%5; +6]X=%,pg9qX{bS۪"$Ϛkiߩ'k''ǫOT+=p-%b{aT_/!! .&=vi9yg:PCޑw6ȹ.;QyL锊ʯngŶս$~*Ԇ(Βخr߉}ǯ/ȒOV(":tZ{QZIԵD9-XceŗI~R'+V坮ҩç*I:TZqF">Uwٚj\h(TxDoDi$Z8rhB2}&*͈Ҍ@MiL$͑?psoNu7Tk5ק;Y}srۭ 7I8uDy[B$RFXDOLOb+]n-Z%i9J mtFiMHEc˚5>St݁S5)rgn9t|{]5oځ+7XLuӇg2SmȬsݕ*:sK 8ZΦ|Wlhņ_bڗ6}LҊ k_\ |zZ?xIZ# XG{r~v`#]R\(_W^EYΊMf+w-r#k`չ;޹[ʹm[;sf8m䜻|s4l*g9?>yo伹z5_=?~Lٛeo.?uyn:oh{叏V~6=Dνx}OYOΩvrh^1zݡ_}rHZ{rsxoh|Wގ/ϯ")3]pQך3>䔼ۋv[%~ӑmޘoIZ7}_"5O|T ڢ?{}6b{Im؊o9zis-pW{ݒh潷9>SIn+;-sjwQ;]ɿ#Ҏ; /..=N8Ӑw5_,~Ei&;YAs|J8eM{7-rփjrjYY˱+D$83E#&+&fE?;quO]w#iѳ9Gϐgw/)[t9Z|H.X0șyɿ$VBA s /D.---²'K_>xW۝;$>qib&\fXqVT?`ӝ~3ߜ#oZ!v#{TիJ-i7Tvw]j4pƩn矫;Bvç8,Iuڿ$I돔59B MGHbjI#A=|3 .wW驸#m"S\jα+9;vyg՝uWHڞy{W#r[av=(vz*|TV}Xw'.~re?OrF*7l.Zܸi{ ƚID8lc5dIIW?ɻB%׆S6WZ+Dlj7#nО_INr\X_P'ud(f$2댞k=U.<"^i{v|mǻFKՄdf*͛d>dkl?:'aف^/n/u=vs=3}<}pO^lyrt/ wξWvuUQf6ڧe9ܱ[7~ߑelö-ol{{׎(­Ȋ9gkrmE/?{~_M^xoԬ1[%mm;9%>v.nίD\pl݁GK'&۞ΦpjiA'մl-G.(,'9szWQEαK;^vlۑ[%ikr''!7:pH3YUn,L4dcxchcn}g'(ݑwnOѕ'kHVpC Ϊӧ&GJH(FD)m=tbA[D;ticZvA v;t*'TΑS;ө]GOkIzO=$%n+,[ta۴-LMƒ5gZƧSɬo iNL ;H3,F香fn܈M_~gZ [zZZɻEBKmzlaҭ#Ñɒkڴj}u7Hm5RMZZTCjnԶն߬k&^ܬmiRu$UiYK= }־궛؃unw D^Kj;_CRM#U[/OZ6scugu{?JU[_UʖD^Uެ%~pC{d3)v}ڏʵIhhkomnnlo'Y^UK5}cv w{v4#I|j-jjo9R7T{Jwυs[JUVTT]'DYTUQTY^T'YQ\'#OUkO6ԝnn:Zyz_u`]P}ƛn67^vJCݕuH!R_wZw}޾nYU\Xvlyé˵OtąZ6X]zԥӗN_?slyيs$ g6ZuNOdʖ궋uW7_joXm_&9*I5.մU6#%04rϳWɦW4U_*oj!_rj.TV47v_mF2\\qvխ[.V7_j.l*J#LZ:Wpa]l IDATXXVDr^$I[RM˵mWگu\mhVSz]K-UݕM*;;ֵ]iږu Uת[IQѧfE/} 7{zZ{jIn򢮍ކ$CTkk^O\mSgmSo5ަξkmo wt^}m`/q}y|gHmRZ:Z{H";S]j(k$jHm濍mZJii5Rs-]7HH䟯/vt]_Y)̈6>k7j\ʛV^ş,yE^{/[?s܃Ow^xl^zxLZHY9INǸxh)]g ϗ]#H'{!/Y^4ZTj=n$G}ן~VA>g3G/^_YY-YǞZɧ^G|zS_%7iSd>>IN?VUT+B\GC%$ppM"0?3㏈ݯE#r"Bٌ&`2U!4!EbvGM_'bڛkI%_$~dCeHG`?kWk*i{W*vYvk>}kC̵x(Uսnpl5Se2 Kf; y]=;3j!L6⩇Nr/Qb~E--ezE|NҺ[T/l Ҋq݄$'q ُA2Y?ǁO*u{D`!3fN!H!` JmZm>3z Ff7e1WB5_UhfdG@_AI2t_^mՀO2ydvefpʟN|OQS22뙪1|Ȭ84,2bKnHY &~;|Ťu3^8Tٌ!32"1ˬ2s2ddJ=U[ di4̔wOj>>]}cY]jII ,I2zmggAfj 33Y e6Ɍg=`#"3@fg $NcʬkD3FfVdF d&28%pCfW:o_gR>lILZ8&Wnk? 3+C2s ]f$wazҾ|dx̒W8 ]d6c>O^(/,Z7UWlLUNf wtCfkqDfF'FdvcJvOc''v'ϼˬ}LYm3Mf_deV' @zUmRe=}mʬnAf"Ļ.K$]n#i|Yd@lo)47eycxbIZGɿ2 <,_ֿW2kۓsWÌvY%@,] M#beMscs_寙Aff,3,@<{oMk&l[cXÌw8)D2s N:[LSU/[1Af22{?8UsLЩr_2K0cyv֢EC/(!fc'ZV?@-a '~B52b20wR2*o+YzC'!r-楑r]v·(/xHrڍpT^(LV付:H?"\V 'HdFɫR4TeĻE?2d$]r4*Dh1fַ"d1X|g$3g ۲BءEfn0 h CukÌo,կ2ynse Aewn\hg5FguAJ1,/žqK&dWQ8ٽM| 9'ؠYzpեҔA*96KxYPNA@z?8Sslٚ[723R2d&˟}[vuH)oѽ 1ax]fvՠ) m/"BE=0cN!pe,HdȌ,sٹC39c%^R!Lڄ@,z'#Iyk&[w7(e&\l 2sۗS#XNksEEv^/= ۍ-Av $ٺڳiH$KXqCH+՟rs1u4VJ '2s5Y 2I^~kBSbS{ai"[w[&3Y {\?~mM0D1~=FfY=PR2tQHkzˣlƬZn"8|ɩAj, +yfZq7xxIףybϜ2 ?14ueJ(lFqVZ!3y7-12)2'y^fc\^#` p.\Zl|pCE5|jW֨/)\~d1 $+M]m-+-o4LdznenOzY 7ubtNsQ+I‹$ hc#B3~V1-y53:q@v{{|!kh~eՇ7߼92]9V٥%b|9ܧCwIjS(2s)5];[+K"dfVH=(\WY}ً</9Gm~c/zc_-A R_o`I.yM$TԾ.3%8 =V?2]um[OnO3MȬMnNHf9SFDh?VZ{:vu%*D-ܚaD p/.uksd@&~@d+Fgjzkz&iÌ.x0寮흨5d3>1ss_sDfvd5dBWW N]7$ٗ,5d@` 3) 3:DODf'  qMe6[cNqMSI1 @,& !zˬA: 2  Lfp1d7IR/#FY7@234f̖_2#i2 M/ɀ&٦SM7'Ij999 (goN5&#iʐgɬkNݮd }1d??rsksw̮ 229گU"IwI#DO㳭$2 ٵ9"nLA"Cuɒ_e6ml2AZv*&f4k>]fݱ$AfR 3H%ju Niڒ_2) d629ykִ2@fJ2e%ʬ'6IcSw 3 RZf]Ɍd3sw{c3#s#wCf 3H%akCf"2cd6{}d(d&2(ΊDi Z}]d⑯ܵn-MѹwH tE#J>ܬr^7"yXI{CJ"ױ xsdut"B5 ;'5P0Kr%nis ]!}Ӂ3_6@XIX̺gHd򊘬oNdD!3T}I=Gx2Kd#)9˳#{ш\fFwUKnl 5gnaI28 9!PYY|dkF/q 3Afa$S2.>";F= ILxǔEga+7~d:Df{dNU$ꎩ#onTY"=L_1 Bb2s sأ8N\k̗S;zLM! QlljNCOcq}9:ws쎑!3x^Y Ae&Q+_$+;Du(xdw/ >]f}3}nd&$bf>;яI x9 gLš(fdB_Po5ʣ٘eFU"3cY[1֊ׁbk&3aXCB'J"#/7(#Ifgߛ>kb;3"Q(}>*aUw9v<Ry%Mf3w*{zgo4G|@fJ2{,seM羨ltS'gJfcs!-OL!ϾʺiޯldNq-3[ Cflb2OLv3t˭? K'KKZ 39[0)Afs]ʺ=ժ,572D 3H%R=b{_莞e o5N5M7Ou Af 3FOV\S;xơ}/lhlό@4՛2+jd@f 'WHg 'w: IDATIkyy7]=gq6N6M6NBfR 3!3et'V ί"J_?Mԏk80Id&2`(^cucjGcM哥&:nAf 3F2[†ۅuc#sOe6ZlB d&@0”+ov7MqbdY\fug _uW~HfIkrN"5!3)C*3UrG+i9:SBq2;Zc2@0DObr3̎2|6KcH":vLddz^[umDfHbdlHm4L d#3ÅcdvuD*3=2; qy "Ļ=,v^X4d&Efq<;KR$ yǼW"D'z7%! _fm81dv2Qf [f:++]E#}l<2Fq`բ,*e[xj"XHHdVˬz$2s$S"H+G:teףjCzWT2j-kt@Z͐-_ZPz#Iev:_&+;LͲ7P2kd=_ykzog0`CQ\].,,7YϜsgR jŜ'LEU7PvV\fH]V)c)UZn9:{m#Fxf ǻ \"؝9g݌Cf ˌVݛ@fb;}"0|dݯI@vUZ(HRd:A^"it줥M x%eySXQj x93qBmڀ `b2;d_2_n _fFD}y⊋ud)0߲9ˊWV&Tԩ~Z撋n;p,7( >J/Af _]ї2eGf`#/3Y8d53dL6'2{E"36h ̜wx!ͤDfdfu=̘1= -dGКz2T"9#>cdv2s ABt Ȳw&dtE_Sc\gM_pr%_f+j8aLfN)&z!w ˙Nrm]Ju2ŅҺ*rR斨=Z{e2$EfN2˫̑ZPce3RaHGdFՑH.0 AEɉBf:tq݌B9HVuӄK5K|H˔-G}أ/:R]sAP2fd6I(JGB1*?&)YrгV7E1 6?2xtRS KSsU9 zρeL2;Ѧ%j A0se)\ڹ7@#d8I;j4@feh:3VfՐ #E2Y2; ˬݼD٧Cf@f$ɬDa  3 3:@0%v݌c}u+3 H.)ȃ̓.@EB^!۶yxxE~H/4(vj!ډ]fBf<'3+C㊍sҏT7*vb^T@@”٫㬄kf̪G@ZCf(3q0 ѷODfip4 3\BSװvaƿY8IL~gc60n,f$0ta"H$˞ ڞD 9Vh:oEyfX:!hR9tPSDKAo,R=پ\E{h #t/9&r\W>lOց޼6w2F|vjeN,2Pf:{D"y3aԞᙝ#K22ר5,^1k]*3.+/i~uZ.ۢRfO][\()k"r_]{ 6Ä(3g,ݯlQI-Df+!3c\&m;dv1܎lHˌ&2fq+dto4^)3>wYQDe&6/xhd&ϩ U_Sf+-j&(yڔ}fiOyh;P8H.Ff~dˊŒ U6$42:pn5N>#idҒ+^5Ss/[h;Ph#2+NȎ7;})53F aEqWIYzIL^`kf<^<;]3SwvNj]Tf.W-* Xc֥9!aHHEdV8e']f_%2 Yr򠑈̞z 2TIN8qz2+@Jp Bjap)TiX_2cWqEj56FLl%%3C6z/V-d[sʃWR.~ڸ\6+"In^e-5?B!eܹcY$f`G iq֏ LLd6sL٤TfvjI@+02I:ݓDf_dM;-]@fnÙ@R 2cNڐ5d @0B٠,AfR 3FʆgH}AKo/]vb@0R!|˷n*5ޱ'_ih;P )_~tn;5 E v鼵8Zh;Pd?W!i3aM'ό42yuџ~yY#Ϭ m' WfA&@\6[@ c -QfO2+|'Sfrn~o;U\BY~}YFI!~6;9aɞo@f  Sf/18_wnHDfe߭?:m+=>|h;PH;DŰd=G&Mfz!ce&N>c2H2[SGkG֍)+E߭ѷrJt' m' i'3~2k8A?} `i)iAztTω7aTpsPxpG'2&f_!5k36 Sf+~60u&vfHDf^IV06Cүy#Bv1 ^Th3S)/pT}m鄷V.ߞYے Kb=@2{mW 3۫͡٩CON,^fB`gBL53zR2fvnK~fFTn @I5]f+vRD$w3pckӞƊk/% M-hBٓ/[v~ _^'xCWTCۉB,h`ƯRJ& dwY,L%Ct&wVTjeR2G=x1, B/CV&2//Swf jT1賯 +3\c諸6{>51TP뺴5SÌE3fM\Df` Yf}ɔٟTlڮǾB!eW<]3_*a;0`b+ʜTRV~Eb|H+S1E"ܼnڻv+d*;BfƦяqV"$3qJ ح3do7p3nXMjI){٤;JznƊ]ut$5cZג,} {/3]Ogd?m' $pw8E ָI*d?5f9xj•)R%3;h\OιL d@ W%w3ɒ{WT (7Sɧ_yh;P !4mLg/ܡQ;O-[Fh;P !ʌshiN#w4&ܶSW m' #D=u ͕itJt0R^DWW  ^]um9;}Nٗ&6yhݤg2Qfb!N40 gϧ80Qf2;OSY2& 3#a\dF=e*^C?\DգV硖JwVIw0p=gP. rzٵ A29!^[u-vD{KkJ\a;'3~ʐ,Vvk%zd= ?+ L8L352T$`/b'QY@fiDL#Y8aF+pD \k9ة:}V,`}pt 2fFdRf3k9)c3"Y,! 4"ce1mѓM&t;NDMf%+aYU}umYCʌ̨>5h0+0u)9*Se(o3~O, )YI3L dH Lid&2`z2s2`VfS`cd&2s&M%Y9T0#d&% dp3;]THf# i 3㷛,0닾B L"2+0#)X?Zb^vɾt͚p/:CfnodZr$a3 "2d&%dpxѳ U[R5?oEǒ|ϯ^#,.d@aF#AfRUfMFճ`(u AfDH׺"3[WVjd5p!3ҝTl2sf^ezd.Щ?6(Ȭ%Bkk`NLs@e6]aF5(3<4&^"aF3Dcee TFTBq̚ 22o2qY<TeZaXWef(pDdvd&e~dfz ̫h.r)-b~͌J%'r 2n5![0OTfF">̤Zf,woQRsow %ZfF@h-݌f H̎CfH,Qwoږ0SE\XI$I23BfMtxU:TRf3z|1I̜*R%) "2T@f@fYa3ddHtaQ dl2@0RJDDm -!4B{K_-dDDBdVdɌ$L dHZfluBf2 3dF@fTˬ2S@0R+3#Af \eUXRfz̔x"7|}00KtzP1Ho<6MFpR'b 2sEeee23e|頳"DH/="ؾy~e&(5ignM੉pR`AZuŻZ 39XEFf\MDEfږ^ _]Qy!T$Q񵱫,]ʔ&='Oc7{L o]Qo3B Tu- %2}I ,3;5zop(.wHjbD簻=7z _9^1~ޟ>`j9CDrJw ?e5U)+'].~ZA{ҭۈbe,cIZ[!3'ˌVݛ@fw/Zї$"3YdF+:hP]cc*J?N0RӦKԎo(R^1 B;WT9~C-v9t!6lHff!3)dF̌~x⊋udπ0;9C " {x0g-u)LAʵϋbAI6#k"F`Wߠucf"3z/d7).o F$.סȟOYl̤gdȌsfe3LyǪ́mc ;rs r̔{eipؚTfxP0֥׷ʳ#vkD{/>V2LO-] _D/3؟7wlq+Q~)HV|aǏztQAP)3zRuzLB|CfJ*e6 9E L6Zl&] 54 =59'QQRnF̏m/ >0&sR)&zӣw "񈇊}dEqѕm9HBJOR5d>"ֹaLBZBRޟe.TágŇ=u|d)Qu$7 ]ő݁.^yMA;(4Q9e$3(4+q֙Se6B=23#0LRwHqͬuDLģ* Ifg+,dYvj"C ]fwef'L9e6mc%)ӹJqpI2ʬmNK0#d&MCv NRd2`\fz̤@f"3#Y2d 2}aFW 3dF@fɌ 9pe%2}v2Sy2s%>Yp(6OO>XR %/OpB?dlK +6>z_صI.n IDAT^f} %x4M"- Z,dY(GFf@F?>iQNyHJ,AITQ'~6f3"&)bF"*cXxݙб H$4)*+;J?zп5YsgH[D_2Y9MwN[Yl}nBhItv:K57')+KHf퐙L |}ˌEb_d)em]K'(e^US{9،de'28M-47w#3/MwuvJ2sXג~MYƳ\dd,wupDRfd;Tj}6# &/P -GK&HJh?~a2HVfKdsQ=S+Ɏ y|L`>IydFd$d2ylV^^n/53nJ@dߐ)KTW(.d 3Ue2)vğ̸QQf7AmIqqQS+)d&XsF)c"3LFDrHĜ'ؖy1+艭G-3 ..dEfx]#3s]BI=3+2KMrd&t6 2K2Zfd,9;b\KgF$a{VD^u͌"vSP];d{*k%Vw|BaA;b~ߜ6&M9}쎨ZIvl(k% ^Ua(H=҈Lt hBzk/1ge\JuٲH]o*3F|"3ʪG.ٯrDC֚ %h]liIg3j@J>AHS}L`@d.d̜Nvp(3_,@e. _x%b//fd5=|2 dB^oP  0Gf%Y0 3F2"3, Y@0 2dIFd2` 2K#-鏾!@@d.,\{ehH(Ò7φy5+3qjƐHGRAfʼXsr003=l?||Iӱ0齼\Qx>zNO `= A\Kg F_c@ "t!eGXA#3O2S8 Z>,'Egɴ7NM+َ+:/pT}%w+؍IMKdτXwR 2238 =a2o1Pe[l.JyNPD(ecĪ>X>Cdn_ܴv$ӌ+&A,4cDIid92 +"4Y6~aF~d^nيR4Sp=̒ ^Jf($YpebUtf7#"Fj=cj]6CwjSԾhƬi ҅tY8_t͌$q(sRJYin;!PbNpFpSiB ߒ몸fv,H'PnW!{םqjC?9e2TbTITObw3 X޾naLZ2%]A0vO,]H'K)rf},H Wf@d.@f~QY@0Y@0Y@0Y2sxqҗrAƓ"4"ce&P<Q@+ʫG^6)Yt'+z G;T-d##"taxtmvqRF'͊zSA sUU?[5t<<TfD KȌ|q@QW4#b, Qf mVPfL`dFuL󱢻\2:p!To;+<} ޔ)d z)Len+.3I0HFdf 2B}nI,^8"L淞{`ݯI{tFB؍qY 2 ½!3zkfҋ?#/:EnF.݌jx#lk0bTdS]@uGTʜwhAQױG%*]Jv ؙp,dCf~X9 MfeB=gL?@9崢{䴛URԓUe-ݺ\go HH<2sB#1D$䷵74"ce3289r2w%Ff?2Qf$fzzY@d.@fĉ_JI3d2 DfidAd.@f DfidAd.@f DfidLN 2K 3g 3 DfiDL5gv 28,]H?N!U__UBfd҈Ɍ}`I}:^7vɾt͚p,]s녵7Hi=6f@EY+dtYE&TmKZ֬GZ?-z FSTKrw>z ZֻAȑdyhQFyBCf,*֕w%k t')YLfWC^EpG t*-*eƏ 2kPZ$/k!).d@f~dcedKd0S9hh4a̘JHcJRB"V?&3~s(Au_ƪuq\f֊ 7Y$%2ӓDf!35#3sKd^EspKankfU,9KYr@a BmY2}p7#,B:!DH,Qwoږ0SE\XI$ȌȬ2 L:<*Af̜*B̆Af̜ 23}2s2;2+l}g? 3LYal!d ndAdun4MAfA 0aFff 2d=2df 2d =2Ӄc3? 3FY;YÔ3'2 v* %2}FI^d g.fNOJ=&?{)NȑYQ+8Qf? [f9tVD3 ŷY7ϯyqs3*coܚS| 923e,"S"HȌzۅG:teףjCzW,+̨$ eeC]URV|ȟznd68s~3 3=_vk27lh7˝;xcd5zjrY;.P#[ܺd?sRϝsJq^1~3䂩1H[j"~cQbTvV?wB7/T.fL-3g?ˌVݛ@fby-}Vt׉Lz\" NʹcREiG"ܐ" r-.VL nWFL M "=ʭ/ew(SSgtq_ψ ٬Yvd6 Ǘ—7$fc]&cd30hvlؿ(q ZaZR[)quua1$5S#}*` Ep𱺺+#y˖=K*YndW7a 2_q&K̄"1Efq:2'Q!3twhIWweiZr9\$3i@6PeJrjqjNY53Cfƿ;|]3MdcEwlzQޯAX)9t!<wIWWi 1+'>'SͶFlzdf$7~oY$ ̸ f[ܥ53l/X$׋FEIŊ*V7ϊd\6Doz.3~!3h{*C(Sz&$)S2Ԑ_9cEakfI2"3{2GZ̼%^K2P`̳SYʞ:>~̨:c_K5el+lN:]zvD\p7DN@gFYv\VꒅPLUN/VStdʕ1o2#Bf(JGB1*?,dYvj"CepAR23d/29HL.+={\/d y %<#8 d\Fv dF@f , Y@0 42`p2h.d\ 3LKTfm C:(5Y 2K6 Wf\TDBYdDmzœk02QI!u=K %@fd)x4_HDf\ᶖUA^Vci&HfN.a912kdY.Od(^Fl~&nGfJfg@!& 2 aLBʌl?)&)SũT3Xs|> .e& Sj'bEÝkPSH/x#bɲ D"n2s k<ْvS֤ 92}UL] }"|CfAT`d&9CY$鉜d&L̤ ]]fO8ٶC+SnN{̤S7jx, e?' '%MQ}[[1v uɂll2 BB}WwH$;۞0oNV-Rz9l\2}1Ɨl$c[ܭޗmKzB&'iYV[ =;|"~R.TIߎbs1[L+s 3d ̒ 2d!3d !zj=\ 3-# Œd Sd<̦F @l 2x!F 1 .~N<@ 1̦ 3@za]yYfϼSfw!3@ "h @@ft}7DEf%`ÁqY dWң.ZhQVvy69o2F~$q#L}w4A`Ql%ŋMH2#oW^(jjt AA2+GB2MOq]4eY:̪^@9Ca3Fjh ,3P@f &nTUȻkUtw$&m^6%ha2"F2+D0鑔w{YeD/] 82󷯪Qz"uAf̬×7}e'.1 ̳l=eJ qѕoAf {mZ;`;aa ;Fa\ "*J)wPrWh) $n*$"i'N 745qևofϳ3٭Uxgwg=׾8ꮇgzff_Q!3K(Bgf n%zvl9kQ_C 3/~[]m9^AI}f(Rz>qB(̌UeEf&-*ڥm๋wI3N_tr_P>hT"ZRyhvk⭂+gf&3"ăAQPgUP[uz >0 h"çi!<o<,}C$ 0=3 (8  ٭yO@~0 hPwP x6#`AРf 0 h- `AP܅- `AP܅- `AP܅- *A1b 4WAq*]?ۀA-4  Ww3 (\`AS0-gA[uY`6Ǔ3 lvC3 `Ff̚`AS0d<9cbChۏuo}k߻z7+47޼w}*Ioy@~b9Ċ0 CF2_Ig2KM<,fd]jm[[ͽn[;%3Ko֭}m.h)j番Z@-bwo\PywZauF¥yZaԶe^P㲯%ͣAzuOvyWtNຏ/k*vjvI~Y6v7%#wfqј}Gk=%zk 1THv 3B٥K>zVh$\͞wUW|iM5Szr:p*}$]J,'ϙ r%z4^KesY猢YS]̛/B.w9˜2M7ܚrM\7rOק䞲]ZuyRꓕ$Y6hczjnF wKYsFtWïSSlNQ{6Knl46лXYGz5r9MX׽D> .~Prsyb9t0 b}zX`BijXg6,Ix&`tيg*¥9t 0e8f&H :H9aϔ0 4Li72;yf ͌kLDZW-ƗʉIj5I<0\0a3aZwNN{ōfxVg9oIE3&Æ%0%h?>J19ezYN$li`;:Ϟ3yk[IDAT>ԏ9 ںՖ`cSSaf{Cӕ\@NhnR챽>gtc,֧+qd qndvq^<5H^q͝O^8=UwJ =hc>L"`93 i.g/y9O <{b0 YUK9IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/figures/init.png0000644000000000000000000005124611534217015020076 0ustar00rootrootPNG  IHDR?FbKGDC pHYs+ IDATxitםͯ3=oO;twI;v/c{N'&rbN:-';qwےmٖ-yXm I\ Qyު[V"@PU(~xVMqqqqqJYgrE6hJ"ZC\\\\ @!2 XZZwQ">"<2QDŽ) X@`^kE "D"$p|TqLԤ!BX=٠9YQ...ua# G5WD) ) }>녍ĚZ|G%@ 0EȒ1.LTdC橩)=2225(j```k]D M(KFbJ\ x+`CCC?ۃŕ|v> h@V,bQl pB@FZ].ll ௣nl6+Vkk+|A"@ LY.@ P@SѺL"BBVl477744X,ꪪʊ\\\\"`S[[[__>vuuAxX\DdPC}:RX (77… ϟ?w\\\\"Nzz: @8x" Hp b25unF@\Xŀbӧ;vÇ;o[o&z y>'N%eee) #Բ ,"nXL0似'O¦<Wwu7[e^߾Ξ= X*`m[[[OOkddFE ΐ*HG3iF @lnn}'7uɳȕU:ټfV@)=K;*G9&x)6Z ]em:*%]ٝ-JO?CN:]ZZ inIT$ 7@.>!FҐ4i*++!_i> z"6wxEG#vnsK^G;'QIp y KǝV9y՞vPO kzA>={'O#iW`~2Zg'?;>=ww9>V[ [2t`W^yN>URRtss3qDwp?>srr=7߼~n}E QĎ @4tN AD/K&%ZZ_ k&\ЪD甆IYǭ %mbdl@1TDXd""#fbbȉa0cQH"11m>шy aM2i%#AXv6/"PD.-T/V9jBAu*,b26  aa Xb(-)Zl,]AŖEQ"WʊcGzǎ8ӎ J;2vč=di{#ILЧ೰XǏ?:xQg>޴Jݓ(3<o%mmm}}}5ň>%nIzWyXY0r%A\9-=1YhTӐAx1ltPؠy{8qX, k]okc;Wq!l&|]vA|)sUUU|ϺLPcD΍eeegΜIMMcb5uG*p4r>*=/>vع-xdAs2FQѹ/ ֱW0x+ٗroRmsS=CTY WJy Q|vzFtW)fby{R^ Mkʱ!3ZKy6n@m(-   QQVAhTd+hE{ļ6 mȹs=MYUXiX*0ecQC1ƢDd`S;9)i׳)k(b@lX ZVVІX&;sҲW{^i}/ɑ HKcSA(W[dX,/bka`K4㏿ovZZ乼˗/744@ XYݤDr3v>7,O?t߾}zLí7?.:-YO;=Yc?QׅR2 q)ږ".RF}XnoY_>֌) +cyubmW}{ *UIp龔chZ̉%!d+x7ܛ>6D_VT}^jpȌ?@bN9qU+iT%X+HO7:N'QtCL@*#($LF&3b"baӤ L P& DEε Vdȭ8O[S].ޢb`b|yE Qq 8[s5Ȉ#ÀBĺu8!GDC kZb-ZJ&(cb0qd1hx@?ܜ~psn.M%?G7^ w`놆nh놖nuqr!,>`ßjK`dX>֕[.x?% &Wz<g(vkkkV+` x< 1ì㤃aX N81_Ў%nΕ"n]zg gvi,4#yXdFFE˓^g^ugCDԔ2ea&yP|-s;h̏9eD6H0}rPΡRc4"wpf3VkMH1DfLP0Qfe0=՟?tFCT$-Uϱ!tE#B3bb,%&b, Ki11O,Qլb"6`1Gl9s$2hI]hXjf@"KF|OsO2,qjgGBƺ`%,b l,Zd>uTv^el|@wG[%-wRr-w|*rM |M-d&7A߀(4 ೰X, KZܒ-Y?kozL/sϥ=z\fffIIIMMMkk+733C6b"Ln ?~k׿{FCOFގ̥~{o[oW|z*MvY0-q+8!8nMqEĔ]5FA9ъ F1 ݖab{ྔg`bjJJ\6`"r IO4%&JL,#AаVP;^MiD+LEb,ˉ&@Z͎]ݘBlD&6( $jC3=)]BMۄDn*`d"Lb%0DEfi(g"ba"аa1PLv@F\-l+&v !*V(MFBAl:Pb"Fk ")1Ŵ$D9XL$4)+8D%Y&j~Ⱦ(xmwl;*Q˶;~|Gӏhnm~Q۷+^y`~|`KKZ`]9x#2`9rɌꖖ0v=yyyiiiL,[g-οz!8vqWm/2ޘ9U1rJATb"$>~b ؗCL@<_j)o%5㡔1&Gm7~E`P9aJ!u7M2" DaQʉcH"gc^d%&Exvh0q38$ 쵲RqaWJ?ΔCvzcm}&LHNQ$LD,8'H3D6* LsؘHzWx(g"80u!`1a@FfaJ+v *.U9Ub͠pL 1Z.bM8NJioa(aab E&|nyDeLZ>:ckގ;Z^{*vW] ?ȶ_eOHІiWl>؀Ke’a"FX/ֿ3M&>#>,a"ԸEEEUUUWD9⽷:8 LLރCہCǿR-&LR1M#$Qw;)+e#c EMd?6λkqZTED:'T3Z7'ƈ9EEH8'ξ )mj$-|vѨ(X嗵`x Eyѣ;Q؎x|Go<-){31w㰜:LX2,5za %Lܷo2rֆwV2qTpɾ[ٷL<<͉'Z擿Zy9m&'ٜ(iuϡ~gܞqahYL,Z=^i!!*>ݦQ,32L{blJ`:1 Ȓ`)S7ك~E%r&Kq b""zm IDAT;,Y,"2u SlQDE\EE"!J"1[Y ZӸm{ p]9_( ^[XDL$F49o!ZZ1*2XDL0X#@_a?(賨ɩ9r0&=-1M,3L|kՒY3p3-<^cM/y6Xi:(; gy95~g% qE4KCe톳fsO0fb=}caf '0u߅uT򳇞(ݨbb3z0j~ETX"bE!a1_ZC;?^>pXm-k(:cۄ9f]O0aϰiOc{ʡKmL WpBiqKW0EeC7Bΰ=n) p feQF4nUXD-4-g\|,"2f+Ң xHM8[Evo~\aU  g%aQhAg5-vGtFE "5¢3(Аء~1cq^ J2 Wt{}_۾_oC}ڎoOm_o˞SYX,˄%a-du^X۳7Rܲd1r|&~G'=Ur]qWxԯۼ ߙ({ZN'"YG[e5yӺO?XyCz.DampܧVO}O #됛A'lCH$'⨘E4lX 3rD,pXA301&aQ `Eb r,ӼuӸa_5_ڃ*KqT$X&#`&ֈX4DLȨd32cFdb؞XQF2,1X$p1v}&E蠾Ln,;ԖqFkn?8rHzNu_}zG띕;{A=DVaRhe@Z,Ś }a|)tx ezҺHY5Gvq za_ ۨpj>ElTرO"""c^(`ыfZ$,^`܌(t`,zPKPAž"bbj F_$#LHXA`,j]0XXX 5r,b GBFBCŚ>2SQFlcQbܫ qhN}u^Oo=y-Tvk[Nc9.m8r&xƃwa BS&Iֹ-vK6j܃Vfz׼Cm|O pBjF$U.!$˱baQhU$t|0ѥ~l-2QbΤsARS#ŽbܰX޻ta2"40o#lNEX&hHYaq@Ģ77&Mc51#z2CP{?5d'xd2X$1l|.>]qnܩw7ͦ3qpj c MQhghE@ȁ(NEeg9 Zb{ TДIM-bQU2 pb3MltE% e=1+%2ʱ(L kD ^XPH5%,2Ff"0X nzEs ,642?@7ܦfG#`^ DRe72 43`K{_ا4ZI:C팕!`0ǴmgaiH:I BH\- brbxE/&TZLU =3L3'5,,v;%>"0Q¢>1щ2,V2b&V2: *&1X#"SG ènE:[hhbT2n&jb'7Iƥ"MWI=*لi2U;1Rt]*FGE{T)zdϯG1iyyz;`)2O<y\pL1_nk9]&f +&cxO O6C$\!܎)dĞZtL*?6vO-au30l:c+?-tGd2-2~v{#W1Ⱦ/2鏂A$g6pLg?Ennnus9 ,D-qqqq>98$q&rqqqILę%3+YFO<6o&7L6$:ugzשS>0qJMZ = nx%(ys1 ./zgmCDv&ӛ6pqkDzse3Ze"iLdo5LZ \_]L잎Qt ƙxLZ7]{L .b"+LL޸3#\;S`.LJ;JȎf;'"g(-}&f1ժLXֆw XO1QwJ7'2!&*¡B9aRLҬuUatfRD%/q&rVDzjfĹE٘&0itګDv 7$C}L!y S h.St 좤ifNq3kݴ"& '9aJdzęٞ[ZJ`c&JD@8')!(2H4lq\.7nOyd:F W/(|3kݴD}ziPD!3tL/-ID' vDs:L;R_(4=ydWޞ5lI_l g"zjL%%D - NYȜsalt#طhǢb21xUẒ;yݘHęȵnJZNTW1q>6Ü\\\3Kg"$4g"abDm0q3$Ll3M؜\\\fI6ęe6 866X&q&rqq !#&&xzB..kH !%&j#IZt"̒nL\Zk\tfm/hacv\l娇ZSmFR:e&DqhpgݮDiD$O]xW/GjȱRDKc`z,CݡkԞM/q&&0ZKgs`{_Mf*H^DM#KkHx窆XT.A3Le\V$&5bo̜ ]sPa_ "L&be ƕ3iabN2aN~?tdٕIl SzvE;op.~P #4!2~4Z]ݧDqp7J\r/2ȅ_eȂe_Cq2d&6&D6f"0Z]"Q?o O}ߍD=Xx?5$|L|gςA~;fFv'J̖\ 0req)é{ UkWN &MdbJNPDD,jϘf(. E? tuL}PqPf9`?L ("oMw ĥ3;]w/*3f/#t~k;d_)n,m&6 3QB#Zb {Gvj%t6* lCQ,تKS9QݩDcD@U1\~+f"t &j9O1?tĚC976"}@L0'j*Su LK~µ,@ ʊ1Nc"pSQP혻irOv7ȿr.Cq&n8|6b⟴uO,Tf%2IQEUy/1Qv(,!~g"x)!Tƾ(5퉪wu.UYQ=q0f:3qe'be}b ᶱ Pd:Ͷ[ꯞPSkF`/WHC,cKZ#UL]0)B咴jW{~>WDh3Lj%jz]?0H*&!w,jy$̡($i8 џs\0YI`aQKSFDbӘX B"zBUb+*mR$&Ma"~`Y\׬ JkYuçI+\*D+04& r&rqq*DE3X͙e6D"\\\eD&ֱLL2GIVD../6k]\\\0u0șe[MfK"g"Q,D D g"y(b&`+hL2U-0`ѹL2I&1B p&rqq'XhbL&89gabL$@L2QXhyT&ֈLgĴ޻ڐ93KFRbc {;nj&6a&6D^]&'Zfl;jn,(e#I]׎X'~mb7&DFMd"bupԐEc4EJXH[w(Zc,ͥDv̡ݯE5ԓlXpcEs4#'7Dݦ;<)(Pf,Tv;)v8?6b&#GKf#(+ߦblhXhqm`a&F#æ2ʱ4L.wf(K2E1h:3pO1kP`U9Q9q ]L1̕IVW+VQ܊zg Xæ0"LT4ÂNMLT|J}p\9eJp6q^T#e17ƫgƠW#1D;[D{PЉ+Hܼ8n,.JľH(/َΪ1Z&{ rjc*XeQT=e6O䠑 DD" լt6?-Uozz6R֒A8')aX\v LLCDY`# +de=rF[H;i'C˻JTRn8ym]![|j3Q1:8Νy0 ՊQ&c&V`&^N:Nݮ5ˉ:qkOPlU`^qRlHqQϱ&Iͽ)`rOT<$nb|Fe T7h)gDID^Ia b'))Ü(XElbv=uB)( ڍۮ(n!5jZEėb{WDY,gf$M }B6k&U f0qiRovC3K$u.'i/hB0 _k).IDATUQWn殢ܘF5m6gPV9k\Dċa}&Dޅ\\\א>ó˽Ja12LJ=K=j9L@,L2MPyR/Ƣ#-D...3Y*__0!g"9"L, X ̛Deݜ\\\0caR<& @L2UJ *vʻKf33<|ڽE}~SHL2Im6"K8L۽%sE+/B@,&8LbbS@hK恆%yD...D,Npg8abMd}g 1#g"Y8 ,bQϙe()a""ag"I"LL$X4 8Dy';Q&Z=&0ч@LJHRԩSzL4{̑ L E,f0LJ dӕ,Z=s0]b~;g"W!j|EsX+hG@LJ8;D-VoLJ8;D-T;c&R,DDӜ\IGB|Es"Ţ9Lƙȕ,q(wZ"=f21lq&r%Ik;3Ε3"IiLyc?$q%`""əȕ%C"!̞\ja{/0`gAbw%OL@LJ!HLQ 2(D,m4Ot'tCQ&WYBN,B˙ȕ4%(ʊ298yZ眸\"Hv̮\EC"LL\&E ]bL$)oN\YrC<Ԛ]KTQքgbs)82Qsg{ט$ E:L?:Xq3ʙu+},*&* K9*՟L2%#'d5C'(5$*DDDiIg$ rdиLN5cFӠ]L<~Nsx3g"jg?n6/p&rqq-fA{bDdD...$0Obk L$L2Qۀk }:LLKK#Lr&rqqm |\3y<"M&V^{MLD...$0}`*hg}v888ZSSÙŵc92B` 21??{Q3klt2nnnu{'3{'E_=\jj*0ɓP򮆉~񌏏{zzVbĞ:u w^2slҢSqtBv*̊1k3XF%@>;RR!<|oDgr&L9R5A'H/9(x"اoxφ?>ˇЖ͛E?=#ĺE(ԯ^xGveff@X& LluuugϾ_''ϖwY,rƢ`z]mJgD3W+2x$yB rf'9yFpLzӴ̍SfB` X)lll$l0l<|:WcMc|8_S+P7/ ?<}tVVVYYYmm-< .Q&NNNaqΝ;|0$o\ΩLLsZX\K&qٰS 'a*xd\,D ,ʿ)兜/X^tɰHETgg 3XDLaTE>%ú`հ%m8 LԤ?=,eXLz]v:t?022p8/_ ?_Nm `Q &&yb95r,j3!3J(q3%ITX\_&aqȸ`fTXD(x!"AFG O3-4"X h@V$!b!Q$*R,~< $V4lb6A _ŕdj8 @8(H<X\/9IQ3$*hERDƀ}}}cȨ)V+iv> DhX .X$E4% lmJ8 @8(QY꒙1!&a1 a5P*Jua ra pqqq%S< h@\DM,.--ȒB)xjjjk||ŵ.vD#KC_ Qj,q `pqqqyMj&D#&X$#QGG"`s-RCCXP" Ȓ :Q&WD)))"TِE[ŸIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/figures/log.png0000644000000000000000000027135311534217015017717 0ustar00rootrootPNG  IHDRoJbKGDC pHYs+ IDATxwם/ٷv8}vglɒeٖ=f-[2eK7xFV`ns91d$ s9省<[I*<{|NjP?T.%^ڷ=|GG;14}ѯ#G_/By=Fj&x'OW ˝{9\qf~l띟]KzpV^5JO?==y Fך5>sFz;?uH(ZWnɚ=}*T,oy{GFO.~\ !fRcdOipOğwh]GTEO,Vw@<bXf0> 1Blz" k}`e-.2ge>",Œ *\ BHW+N-`4Xd;, y?g01 @pY' qH-!rܝs391C8<;l| lnka,O2EgoG9Yēs''-!% F@ =چoldm+j׸\m^׊rrE;*|/^/|lß,1wGBm>^%"",#"?۶9rgF~?lҟso~!oc9cY=:Mk*7h?ITKfK)Ҭ jR a.0ͨ>OA!D7E(e#tSf QAœ!8"4Kn3l 5ND%#$cxև>4 k}U[r C|EhDuyS龥R{oiSt[-c1vi߰$[Z̉es)~hc9c}}{Y}6rF: jTJ ]{\=.JGb5,tCB1~gڻ9nm`Yڙvfs9}EH֓u$MݬfQUOS phJQ>(NOMKwK1dxdǸdtׄt|ϴjﬦ/2,,{%Qw }u`&EI bx*ެJ4s&MYD3HXcN4l^5!UP[LJV)Ux_ v.]rXXwyJ{4ӅT>ݦKiS@@z6( ^U# T"<{"x=B8<yW+A$Y4M`3PP"Ԫ @TG;5.Gzu>]O0$ !Crؘ1&)pĜ: ,ip̒>n͜64=iYp N1Ǽ-mh}) UF*BQFRH #{.@<qLܲN"[NO "Ó#ף+|XBȇ~MLpOp 7m7-yaK.?sdx/}c9d<:f!.k}gTkVE!!{TͰZ K24i.@xIjE4]n2Ma%ʱŸe["lseA10 f[cl[mOq5D'}0!BUx"F~ݻL6m-dd=@i!27TuQ{!O/j #:! -"Xwǝr aپY 9BN!Ի}AYiXÿ[ߍ#u=QQC6 +je!6KZ"Ugtzu Vos fRct_:[5dQ&Z:֥ "Nmgvv H{ 1q ԉ@ȇ 9qbGqrv)u?ò6͔ϣ]s%=1ȣQESI{ifX܃> AcrȘS(cdN"Y"almGx}&BC2rl9ۙ^j!['C^uxӫo^#o^W8o]qߺ}%xJܾ^r.eϭ[]7/;n^ݼly|U_Ϝ;lK0p D6 éIH:>0j!X{fnDgSAHYˑbԞ`ZLsa 7u>>20cBg\La|ko qY#|[LHI38r-ƲFcXtKj |$-ό5Ff`kaO2 DS<3k ó#${dOYgfƕve\I'Ȁ gf̙Hnٗݰ nK]>Dܒ )l^2F>ЃE}iu2ie`T?)+ p{FĞagPup],{ɰӁ 9L16 $CI_Ojgu53mմrFS194>8.RMJrb| AF!{\cLL*wMwh!d-ClgS#׊pHa[pnդjYE4k4kkԬIt j qJGJD{ylNc;uiߤi eeE9*D~,9t[--E귙gkڶۑyz{7NJvAZ&WIhߺ6raڷWп@(aiBv#El1-Ns$ݕ4z FHYOvT+gҕƝđnْ5FcMkUc>r3yMYU*xJJ$#߈;$]\W/FQamtk+:gj35M8gg u8jrFW1=898)֔NiON* qμ0UTJi2+VBcwcC 6רMOҭk5k7w&Gw 4G(g+bAIL(xܻ9],&lԥ-s?ⴍ7ny^jsEԹjH ^[ߢYfArW Iz=;FS.G(1Ox} BJ}r@NukR]@`T U3<"C1Y14X/(B%6I$Z90zm0(vl~e?ݼ< YHDuwuPanI!BA$xkDMmXl0l& U-Ce=ELT#lT#.3k 7IF4Z BTcXsWqPu,:3Q]潴p!Wn -H& -(|U֡rQr>%{hd}Ĕq}}X>C#]lP@9]hU,J4InV^4-"O-F [#,lQ:eA"gʃm ÐTnݏ$t +!96C6ߵ ',xʄ}6l^lgjIHCd+.]`K.2K`Z,v}c]GS[(1Gb~ם iuN/6]8mxچ>@}0`4h"rr^8vI)߅Sduaqa~aԂ.ΏΏjQQ ?!B6g١*?S=`B11IPR%SrNpʀ73(]nPpiTKr6deCP(X 9q9{݂6v.m9'Qm.tTW{n{˱msD\\׵~rÔ:qV}wK̟ 4/qh?DDe~z儍 iRG !X&HqnK{̯B讍uzso u[7O2h6 z4(jNtȠQB ,E1I?4)ZC 'JDQe;0 !4QGM{iƽT^ܟ !h|$-cZr5/`-H2mNu.dCit,hK9%JWU $DΕflTמB]e9Tꞧ[Rζ:)(")(MP-Ď5Ŝg\_/nM7ЦN҆ӣF䃯@ΖM\]kt dB6R!a!A B %VQV!gwU85>M'_ C@( ٩ÆB9}œ9i)3m{ߎ!ۖb*>4c% %>_3,}q?o7{c@|q5X>zT1zT9zT5zTw1>j:}zQǙ3G\0?|zv=z9z>z2z:z" g{x^b9;Em[ Պr6H17PSTK6ՐMc%XI2"f f3ڽӚ=SS]ND z)͎iݮY샐MP=Dfuuc'ۈ5%Ӻ}k7j$U U5Xl lԟ熜턨iư6J۹<Ͳ$iFq_wrPކvog;C^q!;y]<ϮUMx_P zFp(sqs>R<:ZJ8F ْ \ȮS 80U(d7kLHMXk-zָ.MuW6 tw/ⴝ!}L&pNvApsvGmRH&q׋(g{!gFa제e| a Qۈ̡HTun0TfAqg5 A6K%@OGET6_ ؉jFٸ04$ ^Q+e IDATc:\Z)5!pUPE4TQvm习(xFTTM-E^+y=W mԑta?V ,A>l~cƇ^m<\~WBkliI:[PQP;t 9[:sEp9ucC&BlS]s'r m:]نHfk0<֥ % drXؽl5dۂ`-VW0-vK݊.pvK?e2tYG:#NÍ JWpc>a0cPvC=ԡuă].@4!\9;' $SxYn-Q)DhgHܢsnNE),H {^wFO+|)70( exA^2("A.ËYH#wĘF"K~a"lk\vrB\ 0 <4ofΓ$Wjƙr$'1k%~Eܥ:sv aoPxBv'Nm-4k34gi4P,Dήk(jl Ɇ22g{g{4z 'IvuZcJcZsVlCi/7VDc&U9٨;ծKᏜOψ6Uz~8yj}uIVG f˄Rg׵vdw0wrv-0c 薷9,ev$rcsNn17lgwwϦ4^/q!_A(Dܿ9{yZ[W_.D qREjdZy^kP&U9St6ӖU;ӵRw^ c_|^+V_ڐ!guȀ.3Mc}Z^uGB6w"(d+Hn@8E^xZ>Ru*`; >d2He KL!hRPEIOuMP_f4S9ze <͒`, [إfCk˗oHs9;W&R,ԨQjla BJi\ Ήc+ϕfPとk/K#A}+s"r "?4cZev0TTGÅ]bCy>UV7*:cN@wwk,LF\lx'OjQs9w_/m!QH)Z6}9&r6 X,.G9;ܥt"=j9;ڧkbZƇ!g#z#QlS0OZS(=cEԍm?![L~ JsZ`oDciه|q),=+寧9,nw+U*nzY׬k67mvIow`m%ɈiAoI$i4Z]-nWvjl[+nrYcbR -A% ehIۙQp"ϢĿ$-|r3/d䮔ܙlZJ@912Ḱ0?HYBk8k,ڢX+f[2EC.ggL fUyuhA^D"*O}^"$̾v׎$qdIˆ0h~^~<;0ҫޢ7Ej[$]} :rJ|WBaoX!ㄐrv0Pg6Vfk4͙ s9sMl  $!u3{ZkBvΎ)I Dgv׬~ٸjO)J LGmx^KH-E5iKз K TA+B[uc;Y eͼj~gkdrW1Ʋ +$\X r?Iؕ=ػ6̻k}q^4x ʊ |rW! TFdy}O\;sZթ655v"ٵZX +;874Pdp{6d6oP& hST:ه$zUH*֭u)tȐvY ZqEhFr![ܵ:9*e,! V0Q1s>~/ t{HhCL+.{-Fys*ޫNZ.Mj$F|PcTD:qRP8,^.^㻉k8:vC,!Tn`JVօJϠ xikx&(JlCȋBk}T_PW w/ץ1x{uD/C\`Qi_vP{[IDFk0ЍEpSk%@. -vC] [Q{U>& >M%G1C80&5NS')uʌg,p{Ϛy;g3wo)gzgVKፖt")'݀m Y"rV/_I_LLp[zIG-PtԪ:kZcW֊ً _xQu,FA{ZV#nZx-u:Vkz֯kU$yŖD!;|GL%NE ;ɰ'$˞:>?g?/]_ IK »+=Y't'ʉƓ W[iuZCYW!dB+fmy{d]tG|D Q;h," .ZfƱcȢ&c7Ѝ,)߾v9\XYEoWڰnQA8|O_yW <7@Ȳ/f4՝R#9iY'#W絡ӊ y}rXPO6كBi'F4K3!;)9S͜bBF gf3[oFw1;';'İl"p3.bx1afYN"p" mwUCQҬvZ/_F zYV+C|O9uϲev3h4iqb l/6gBm4vy+XۅXl P6qYio +]m?׽WYOºV92WyDK;)dܥf`X`\G *KCVDaUrx2WiH7BvQ\`3Q (UW ձlP]E|ieT.*[U*d}wdX`u\W#,Ip< =] b4uﯬm Cj5_huʣpn&QcSw\<<'j%XQnxDfYkľvC@-EWS "jam6v;E'!qʘiS 3޷9KڞF!uΈzgE}ol9wZȢēJ5"~&F`J ϊFH"K `:2/^iVz-O]ԕ矺S7?Ogs ㅟ0_ ş_şHKy/W A< ,c ^x“d$')~'_-|}Om-?˟{ +%~jE_: R(dG)8͊C٩sn^ȟ}lF}S8b !{BʛUy3*OZNiI' ϯ+yq֐8kDԝ3*[s5'tO{&2ʘھ*? ރI6\ƙjJΝ=̏>xG~?8[`oy 'E:^~,_藏ss{>8g~/n<3?^}?憐maѫX|/ђlc mM0 -q WVgm낼7W]kvُcX|#W &V5>闖#/D(d~?O#2nPV_tہ 5h,!dG =!؎,1 0[JJ Ȃ:BChhDhwxA-)hP`IA4HBbl򫿸lGyBZ1<}V?mN#cMCCm:xQ?yNDž09ȵm}Lk7X:iN}i3R-X3D7IY]ՌrZshJspJ}`Ju`RU &Ƒc=cظb8}SN2 *e8ы_HN$d.H! 7Iuzamb"7 QOC=ZŲCCRN53R $tx` e{fȺUsrj V0'̭D5+%,*t& u0dώIŧu0 / [%bګYVci{[>&  NSЕ׍F+h5,EAbXa:$%I@(+ }=X7 NqsmhaA3Ĵ52,tK\O3!:]3TSUd i1 SD]>*#L)WtB3e`J Wj`Uszima;anO HPi@ih@J,eWI!jj[Y._n#inV&?HU>*ቪf๻^ؼ>/*Ch_(Ⱥu k;KL"%u<|w+$c+Ŷ7Lk=a=btK~dA*IJ6ml{ Ah:ڹv:N[=O+~l@$aX8y"x ; PNB'UapJ@b\z?(-c.{ z0HMP& $=.1n[)4{&``o>8,24Ξk? d_|<˿x/7s?~_y_@:^yAW_E? <s-O~̳OL>gx?O^œrƙ8bdKd4 [uw^yO>-r:l!ea[{E1Nlh'AY:k6M#V?QNTrRyh(+ec۲[ߖixRypux;v> QW+qI}4K՜b tDtCr %\-CE<])rDO8H6PqCSA&hUB,1WSլQGѭtk2 ${vqsG|agD{{L;.+O'eS@UN+gApVzOz SϫÎ3[ -=ؠ66oBwǹLH YCq.aMQ6oeo=wO'ź~^xOKOϼ4奧/=Ϳ_O _yZSGDzUKD/_)r~O^|S/>5S/>uŧnԵS~w_M]nC ُ?"B}x#4S wqx]p1k9>i k7Űt,4S>g}JַR-d K@ hR4袙2egYXmc01uy#|yL:.p+tN'EbϨ;*xH}ߗc/Snnq1ado/k92GƗHS%1yq>K6_ai1n1lVleW?^뿺_ϼFFwu)r_:[`\  G8#l<̲0amat bH?7{)FYSiVIrR2A@JB p[ o! yOc21>1Y[:rU\GyecMV(OHY. umZ:~iEuIW$kFE)a%(lYVؼ\Q8{:?O`k./CJfbj4s3g3t x7;I:$7$P=c*8td&,9ʶ؏qr'qqN \4ϊ<=} 祾 E&5GMׂw'N"'NN%)̓W#`":5)B)(,0&1\7>[on{sě[g:uʶש۷ҷoemݵU5ɮW$_~E19g^]/1W{kmѷF3l{(7+{zmɒdY {dIV(Q)JI"Eb3s9# &`Aya I{U 43CRNFCݮFտnnly rۺ{V\N͝D8]UBӮTsj><ڻ6ac}sZzŎeVwt֕le i,gNőYH6ُWl#-:a8BڮY"= rW2ݝD\ܗrtW _|Jw9>%쉄)}jĮI y mSÀujȪ9hjer ^QݾwjM9؂8Ԣ>ҪEbk%At|3 4gx)N&9W~wgN`#ߥԟԟ:tu'mDxXX( O(6+MC@衆у@PG7u#k_QWɽUQBQ)ك[5jVvAvQqEuM rwE"$̠pyѮ9v$ND|6SЭ?m! aLL0c2D %dZ1@5{IJ֑Ԇ!BZPF# YMaو!29d'RXNpNC9Mjf!Ƿ(}s[ݛ/ֶc[ǎm]ooUw6YA#l2a?46ٵEk זΝ[ڷomԿ hzpM߷eM'}[nmS;FǁNuӭ;W߻zڍvՄo)y!?\dˬrی>t̪gGqquJ"[lrağ"=gDO=."$"I#9-R5 XsӎrY3]*_V2H0<8<3A2%(EˡK|ġ3T`ܓgevԦMq4q ^D]j;U6x$u ;j앃kIPl ![ڥOԧtڤvmb8j(-ͪS*Jc#<֨80zHH Cr hwPcV6}B'I<ST-M)DtLD*M l@2ߚķ&,W2BqCGGTGYn{e65(`"@FNh&V-+ǀ6p|ŜhӟhZxNgC|1.ә.n \\j BHL:AJƅ#HӅ6k`!-)|s Ϝ ].SbcHԟf]O=hN'[pI[HH":a Z&#kjX?ڠ8ި:tP(6`Sk1$>b;X xw<Ȼh~bu|u^N\@ z8P$^!Wf3M_k*d9 *۔/3t);tadҮ=hN"H}iW"] W/CuJO2$uϘBaJ ,`؀\@l}Q4,)teQ̧'2>_f+h T CQة$]PU%ne1DvQ MPiA =~EKSGo|v;:>_wwHvo|}omW{S 7B{Co .VbO>uWO%}vcb&_[㾇Evt#y}|G{?gqFB[=6Z-#7@n*s*5u.R`-\~&S k>Cy=D6H([U!ti\0=qX|"T9~>\msJ'0tW% }Ҫ'Gf+F-y0W/v>Y> [jn2Ti0tG<۩+-FXXͰJ(w Ŷ|5W`6eYB-S`'XxHFE;IBb>MMJķhFTSy JF& #,aÄ-Míeebgh]Gt$c7CF;w5K+ةPG)1?vʂA Sģ^ׅ 2`t"h)q@$[Y=J "Wcj7:4$Bt&R 4K%f ACCEs1y=;{XI;\@q?pH\1L2V>8T ܕ*LfB:vBTVjj+u}]؀6ۚN+vΦ2GS̊4*hԱMu=UNfBj'|O:|3^ψ|. ChiP,QLDh@X`n-M餵ء0P|Tvj芃AM_pE9'#q0v03AK:v]./T `[3r2.˕kOܾcVb?JD\tMAՔC( Yz19"t\@q#+"cJK@]"*0CaDհj[3⫑"jN6ATyVo}3G ke5k7Fa5f]}#?[sk~|S7O-?xuhm7ǘ~f~0konz='o?꛿7޸'߉{`o7VTT;BO 1@fBˎ<;4V ii_JgM!P ؁L#thg!+DcK%g<2eLbGso؝z ઀kW4Ll&K)t / ;_),EB$e$e}(v6W\-~ ^ 1hi\v!#GسA[&Ej7.BDj#/I--Y<P(_NeMb&vA| 8(vx$e2ͯ :)sF6CwP.Av]?Rܳ:-LZ"ҿE - ,4Lٍ([gD~\L6QηP\*S*0ފAP 'jL 0LJuz G4Ŵ8gpuL L癸0;d qgV4b|?r˷ܱCFʄiڅ 9jzp׹= FyS0F K@~'ݔ':V=X.3 ~aC"qkJ:4c0aQ¹p,by}^ ,s>LaF/pՓʉ6Ek 0V@Sqg@CfzAinnÁt6ٝv}j>)l,M騡$X ٍPRQA66:L]m 'Dch#wCOzp#;U1IDzQ;98Ao#ĩp"A|8HI:;W6 퇉`P$)?43@ +_lpE:hLsP7xx]d܈ tSyP4*fD^7#y=ׂ_^Df [@fScBH4) Xa-bhk1!im=Oik~>BL=+,-%5%{P"zQRxxJ/mK4w@yI6p^̀yn:{vn~N3j[&euz_TnYgdii32۬>7fcqgc9 !40X)i4CA܀i8ӫKm=-Rwð~xf]38^5詒LA_9R)VnLo5nBsɷettIMzU*WW$4@R6EGHl֜EެIl&ץ`&7cWh HSF%ߋਸ਼Etuujp\VږEє-aB֔BmIhqΆtp ң=Aޡ{_dš82n7 00P[FnFqk"zy~jA"iiV RKh`2*SE(X2l' NC3H^b*e6_)Hʀ+Z j3hP"M_w} b}%N *GE0)$BĀ{ư*AQ7j"H]<h!:찠,By0 &>Rha `|ڵX xGQv tc(݋ed#5Cu_B1QD`Tȯ3W u:CР( WS!jq5ѕUD E: !': 4U# 35 A5Vس@B1׈iR7-B+MYht Zg =ǀo0 BBX|̅bfBo7\IIHE0%ZV< 7S5h7͘G*>ej41Jt~؀G |I8K<3l΍)bSdz3$!YTy  $0gĆ׮@ZIǛ\gQ,uJK@ـl'W+I s@bY3LmjѲCŽ {,}/_ pXȉjQ$P#?QS)|!ߠL@oxX^<Ӡ:ӤBO$ٍsH\!~H܈^<H 3,=8GıΦC}TgC-܃jp{(lɆ&V3Y(mh7jUg5&rQ#8鰈%ÌU5ֆVCR> Wp~&uB#La^Koa|'nyvZRiHX  ,*?_SDy  (k"\jON!H._ Y/5bKΞ-@gK+d,DQޱ2D b!uX-M*0@n֣S(ݔ@:h)n}#% YZfl#֠xN>::NQ &k@#"lGw ޡ_%E ( h+iSGAE`T_1`d,t)ch^&$D6zQѭ6n!yV\t-3 eԮSgѹz FƁy?s@iVlA :xFh8'=ڨ-#cîAGmV)XJbPX PX;^܋e(I=BaB/NS(Få}gul,퓴V`wVM'P${V6u6ڴܬ m6$)lUH'J:1sgj4I,M $X4Z[m#glK|Dg 3}( R,mܠyNtaj0NILӃ!0*K 2;z!sn`4 ܠiz@zzc|k&1Z}ˀUbl2wIrg ]2g)kt4>@HKtje ը@NߵzEBoЦXmvv5e(i6faK&yeE0>STICK]b8UȍKu +r:]AeNk&6(NU+?Xس?O?}/08UHhT%4iXǡƜi&rXъ#CpW 9F-0\3Jh$`iIC i͝eMWI3-x[A蛑R[8-'mƏ7-A;,c'!>YǮc~]LH(cTx;@@qpV/+JQ])bzYt@d7T^ Jx2TנNJ24!CN1T)(/AÔ*e<$B?͢ F{1xcCȵdP Sn]N Ff.OV0cv ImX@gýƹ^2 nR"Gh}bW?of-sCI$u~ĺiO?ѣ{۠WW'T5E@Q#T֊b]Se:diYG3(Jn(ӌ=9 _~Y{P*ʑcHA%8|rD&5N֧Ƙ2蕂%a +>1o :'DYAL XCӔ(RDQ| HU.ڝѾ;cwF.u|Y(18xf  " ]S4 Bm@1L"}2D9Zj[~Nt!ݔ^gCێBFXЬ=ݠ:Y8V%`t}HKzڦ(]{D| ,ń/r]RGu6/ OyHmfR,YGd/6a{_p!{5Ь-Tܚ Js`,!bZu@F 245 i8,zA%O&)ڠ8tBgY'k~pM*Bp08?d Hdθkwoz٣$`tMǦ3f3o.Y99;9kwꞳj3Yysskg[w7O\Ogsk,j46̸Z:W@)AGtR2Mgsx:kf ~\0%F`l@%~V:gisOg4`ZcRۧT)%#ߨ+7yF1Gxj#5xF'5O,9N}fNKF, ~S Am瀺_ާl+z.{1F |ް7?bH"g]JGٯv0ӧr)_9%A=R4 "5Oπ> 3z=lL'm6] 9S$)8ܰ=qAţV,1I(3f%юKtz{:73φ͙ 6}a#;1bBsmffP1  'Ge2f5\{ Gt/c`ה^r2_VbK@/ j!ΠWN)Ee4vuek8S{V]O~4ls H{x2T} q0wE+r@8Er,S_g?pe`TÄIW Ԩ2\EKhA9 n 7&BId,&Gg@q6}2#Wa[n(Fi{~읚/RTTU|u@0yN$g b`桵/=凟}y/z[Ol䖝kf'yXƷVmx^}h+^}yٺm_|b;hַܲc7{G}Ooӓ>?Z|}Ol<-gQeq^xG a o»zk=GvG}u/3K9|zۃO"1ƣЌӸp)ڼNlW`p~{y{~=Ol#G h=5>儲 )#<,5SuΩ]{ٿPQF*;4*BzrTu-;V& v~=w}9WmS5[ W蚁f>z\tZsu([zH9OUT 4UB{h˜3838㌳(Fl7ٝ %O|3 UB]HW-t '93838,~rfI7oQSҪ~Xzǩ/ u v Do®""9gq@dlyxIzPM "&nzۮ|$b3z˘{]@i7\9"L镌Bu7KQ0+89l4H]ẋ0{i2vu?Z1D)nl^_̐oD2ֺWgqgWlh`^}G~r ԓ_4ջ̋\~<*F0j" ueRg2;9WgU.5wqgqvels=Yn3=w ^;|ͻPd,޲veRZ,_V'N]q._qWgqgW^һ=\aV"θN)6YXrٜqgqgqv٘_d bٿ!%g^2'93838,^{}CȞ!"=NdsgqgqY lBi0.Dٳ3838㌳E-Hd9gqgqg+6"&왳ťpgqgq2/A[uvf>ȉl83838fLM!oy/383838j!"./㗃]qQ]ٜqg]d:UJbfd8}UXe_838b:vEz6~-DݮŠ"938œeW]%}}0 Nd*Ndsg]fY!UzsmlYl$UX38 ʛwNdW(W^-{MgfZNd*Ndsg]v9˲+8na Z'vV'93ήBeٕkDv'vV'93ήBeٕk<w{"OKx-xkJ%*/{(}$5F\f2yppp-us N,jJQ)9nڬ=JiW7X@Vi%)NSy(؋?Tt\|ηg1gum"u& P oɢ.{=n^_y۷KzD6gqi_,+..6_K>ҦWڋlF]X\  !ú %ޓ-&o_ځO 55=NÉJ_zzpK*Ա(rvV}UZM}^Ģbn{w ?J$HFűozry744$y'L֯MW k'o/o?~Sˋu3Ï̘ߝ|&y}VPs9-)O<}@Ӧޭ݆k ]Kݭx"u;{M/;F$DaP(LPꖧa)Xrxàa(;mn4{4/}\%tI+tBNWk˨bqETdK/AMKPHSzdSRo^M[hD*oYVs\:ݸ٬5U##ì:; ?BQ[<Po]aP~ m;O|"_4@׼S$woN^,)ht}?|5nԜV(;>xKcVߧ.Հ]#Zt+7nح,' -c;96poAn^]{Yݍ/lͽsc5ү_;i#iE+T)Uxr/gy&NJ%nzƑ&l-!CqN9~o2~JPd&o\p7wY{ ae"51'!x}G QHл E46(᥉pAꎡELwAmD.ˡ.5so/Sj3}饘7aSZ1BVS'Z]ጳ}";DF!=8iqX31.&]뱶-5{+n\(.-t ]jN$eU+UJև@6Ad@gQEvnM/ Z&Dveo_ngژŽ(i6y~,;G3[>š^РB]b7=l6PxFk`n3GA&% ?4LE}S% ?YSSS^/KE7}P/hlӶ~uow<}ּSIqO\S{k;6O>m]Fnhjؗm޶[#}Ok;߫Dg5BtlGJ;Իꭊ;Wn,6GZT˶l+,7mʲlmߖH$SSSsOA~i\0ǞX]UUu޼#bRM rQLM&1>߬p8v GE*H.#.Ud?!5دv&x`XN]XR~G?iuZ!3ή ceqly_fI^TdS5l/ p'$R>9_3TIdEƆ|%MZVQRPv5ժH[M"0Otv$Owj?~,8י]->eZ ?eZ |TBGj~Z;5$!m7}T n~r %T*} fk Ŏ#Y~!JSs:= ։n 9?Y!kY}y? GϽW3cgػT՟?5?/aC[GwH.R&Qt[~8ei/ސX)e#eMmd|Qw+W;sb靼';a|: Cr+7nffe>XZZa;JJJNo:;;NOWҺslhk#mh$>poFc;`zkjj󾾾G/Ȏ/+ -_eCvmXia #DR7 %atS*'-(ΌUGuilήF`&Xf}X!C$-h5l:# 46Y@m-M|%"%$f}j9jTo9y4,)LUuyyEYVvHb %٦"[Yd߻-gz7s0MbkM2ӻr1+3oyư{xvzIiZ_t{2^ɏyd^qc}}=i[?Imm-L/^ZcoTqO6_ڐMGqd?_ 5O’#=hAsWWW'}p99١MDvp&[F*#bKd ,Ks%E5Ed3ӥD#iY;*,"%v9Uhѳxkel:#|1ktp^H~E;Zbf}vfHz; [6k})j0׬3Ӛ>-w,Lr|G*U+7`Ad I<Ӯs~ˌ)mϼ_x3'>:rl{\zgwIݤj;^*z1e`8yݠo t[nƄU:{MU7i ,c|_p_淟nUpof_٪*SS·?l $DxחUr#Ɖcy+{ 1BϾ*p8uO .ǣCw%(=7WVV@ ]Qv Uc!0E[[FKA!ZFK 9:4}hCtXvM7AcqGxP~Q.\dZjK#$Gxk_P:6 6[Hx"DBLC$;@)ai0%Mm۱Ceʊg椔3- GڽĤ3?,|Cf$Ed hEd߳%1U/ܡs?x`˚Oj~rybEbLϛ #K5;D"V{HFGGOsx+Ӧcݧhb_mT*e(eWHdg|?NR0x2.]֡'5w+S$cS~y~?foWDwE~5bkލ5gH l8{;c}"mCZxv7t?C]Gy";p#?d}D9\ 㱽]ǐܡQ`_XDx(KpmVtVc߄{GϺ1 w<(u^BNcsvUڥٔeƐm"i/ Z=g jUBd,g`;e}IjCqQ|TYVӥ'w ? 777uv<|E9a`ٳ[>ڝGk}Q=3I~dWJKGW_&xDMfP]cde>֦vr0VJ2[~k|eT ,gP Y5k Æ߃F|>;1H`u;lJ<32xF:pF>rF+BkV8A#>Һҽ{}ݏD 9bqspI'p6|/&]ǡ*nxtS4? Pj:?_?]|@u~X_3VdDdj8bExF?\R7 HZ'G~ߚqȶ"*'ЀLE&]>9wՃ5kv$4&=egdrOeUEG@6ېȞQ# E||V2p-7W=-(쉥h_ ں IDATt  󠼗9.HV+vIVxn)n̿vC5 :g~ 4Aei{a$:fX#"UHNl-asu/_.NyFbR'Qޢ.{=nȯKKK߼㚲2B+"+K'jMGT_獳| < j - ޼@p-xM A-i Zhj1^50ݶdda (J2LHII$_UdzqN9_fXy3#"###y2n^ВUoGի=s?^q3Z-#UddnD&x zEK1{=>X`nL!O&ݝW>J|${d!kxdEmw^p&x 0AeJOdd&H3 2d-/lRo6Ұ! $&Ȑl@} >Hv>Hdy5ly]|4s~)z{vօdߠ?F^t&x zy 7<l\~4dKYuo L@-X\v 3^} fs>w3I_|lnL@30{zyMx$;Md)Y0Gh&]]c% 'ds!<ͤ2;){<ɒ"$%ݚ<ԃd{@<%{sJWw_M]5U{cme=$B $<;^*B8G#g]nz\$G 3DjߠdyvVq׊W@AN/s7έ+/>Js B@9(j-+Cq5؅@SpE躽[tx'6[Q*EũASCT}VJjj*&oÎ56-9]x'_'֯VVewv3LztZöRVp>78ˑܚQ Jvs^ӡt]`VxmА7x%l3-ۍdg| HNDV싎;8/S\%~U)FIv*rl5#jP_<khGw@ANN${ųœlGWsʵYWJ1 JCcM4j'Q̐7j6- "$t/gKxO,Ԅ`6l/>c&ٜlH6, SH6d~$V&E%+lX4&l 9}]$YuGHvdjB"ly$;cgdI%xvcgjB"lEIT7"xLMk ${!c{B&{/;d9IK Ȥࡎd/v mO%ܰyv`6"x$B>~w=]]Ik揕;/#;|Nd}n |F`$;5sN$N΂مdbSJm%]J "K7}6 XdEd;?Շa22 Gm>3ڪ;;j?^,$F?°Oۦ= c]q{ ك6ySfB峱H#'H(ٝ|cg¼,c?.c?`ap4{3Ñ[Q.GHv]p& 0`8=hѡd'狏'I<<ɮ΄a22 Gm>3Do$,"0L㲱1ZӲ_e7gdZY__qdzE +_"ٷ_JS7>v">;a}A_!$;!M_xL#N@W$h[@B>)ms" t 6W+8ې嶘WJN<쳅d%2E#KUv͑l#t8p|ƞdzAE튼#Isp$`?|Kx4CjA0sB}o#fftY`<\t-hqke)Oh&$@KX:$I_ eO[rǎc婖lw'[H󆗊LaÕpU`#ٕo=H6an<3R{J؀qܕ_dPHv)ۂ]\d%TH|FEJv5rv ^cx0'2AXi 򴋹+RC^|\M`=WpT5y~%G_Y.RJq*^#ُՁInN{Ij&٧޻}Ad+_(oʰ,]x24-6<ٲɣF ubiuHPzybQ*h79`N^I86(]HE#I=;Kd-J6Oaa#ٸ I7o.'3N=6$8؏X00U߰$~ŗ,A3aAό#ٯK۹dzEHvMp& 0`8=hI$µW1IL$HL&c?.c?`ap4{3H}}<~~4HvLLw-؏X0$]ۓ߿_ߍd7x #}$;?l䞝Hu>1N>Rl8{.{otTywI%gңG[Zy5Gh'I<ε<1N|3\e5rŅ$f+NuaY.o#nqAK p"l+Yn'mt3:i+0f{MsN<ֱI<z,[[@pOE+OD㣫Hd~wgH>rZ{2&C@;U*~ar9r,ȚdF6%n_vp>~x$;}5zYNɹ $^5Kv4A-;F2zT$m%z+78U"2.,w×v?}Ĺm8nvAjfcGae$⵽\ ;O$̙3s#3Y'l^*;zP$\Se@$kڱ2;E 5lT#ٜ 5#ԖdGG6@oᕎ&Zcen}ŊoEbV`WS>ޮSs#[/b5buHI#yn JO:RSbyov74z;n ݃ Ѵn:o@ʙE%mcιNM_1.Q1ﰋpkg㇯4 ]֌-v]i"4$JA37MʯkrۺT&:]ۡe#|)fU&EtgNYyV冶8t Ħ34diQiF4º%u7DeޯJq7ˎSoIzOY*/t?|]Hvi8OQq>d9Hv6]ĤJɾ{>L%;4OA-m 5vacsxi)fÍǺ6EY4 _S. DF.Jh>2Ǭj$\ݞ0ǔׇD^؉XYC1=_X/@pw\yu P e.:-!jޢ3ԑl PKPؓ˅roJ6.Qo9gsrt&wX{NS/-V> NQrT,N;WGe1$c^[}\$W({v, ^.dOQǻމ{kWIe%?$}݁d>r_g!l*B=ȢywB7c K['_ӶH OʟN($Jdƶ(F.m} -ϟiyYTÛgT8]Oߵ?@u˿:l ?:Йy|TkNvd)<<(:Ct$[<(0RYzNI--d7܃H4<.˛Wo!+u؟+bⳭFխ2tAOb7*Viɾt&m*x_5;l2Sd%EwM6<8dq 35#D8Ay_LJ/٬/,NWQ}vO_b>d!C]s砚_%:n}b/!4"? 3 =43^ghrLR41!E=ى.tI97I_tN2l}籈keZpDNQrT.U3֑dnNgр!D4t cevgqR`G'h7>5iI] `aY Nd#F37 yZ͙\NFt{R2o~k^-"`d+Ӑ1C9v IDATP)3/09qFyj|ud~L&$,(ltOH?MS6I.B H6Ӻa{H6$ O#ٿҴG$OvM FZFBBBBBBSH[wdd$H6ҢEߟUA 7zŞomܾ;(tHK]l}@RHv.(#{&A;I?^rs%#"I2V8NGf%ٶЬֹ֨-ta[SGfUg#yvۻzN5\S|a6eޕ=ϯ~IWlm:VIΙH} dk}$D6s]-n`??kD$ر葸*0ˁO:pk㗳ЬL '3mPxtGfsmLF?T]y9(?ϻ"u]MJ ]H*|4Hpzm:'lc'K^qw+ VsOHwse4C>Mh%^{"UJ|Kۆ!{IpRH[wdwyϤkUP"֏?{2綿D.ŮIԈ Bdhr[:9yp JN&<'ՀdUάg΃Y ŀREZIN+hM&Q"PO(f!׋֎=KXOM%QL;Pzkl[tvC<d~H+/ A VI+쬠)sϾbϻA kN$~d罇YK 6=G⮎ɨ0Oѧ7S_,M{i[ɔf^ byVh .d I2惚^uJi\@m}N?ӷJ}{JXyr؏W5vudKuKDrV] )6ytXC&H߻W$HvwHUEDJ9iy;a MٻUH?ۙ+"n~k^wD$y$/:=Q6}W1ʋt%⡝Tfl^y_t#ldϾw Lj"tZHzgK}(KFq+KӁl%,@R(-}ۊTո!~:*";qTNjھ{]dgҵL8-,J.r"VsPvTf_΄>z=ҵ / H#f݁Tv."G+%[RƑla:R#fƂD1l)^|_9i2GtN6/7#$,Nj )\̛&FsydʞI/>ƤMg2w x7i-Dł_|4~~wqqG^kgcW+8y96Bi^JeZfx1 ͌ sүs5H.%ExZ~$Fʴɡ,:%éPĽ>RYCyw]9z,k/66`ɿ1?uELk3h-H@m}/,RE|{g}$˻&a}u/O_ DG'ɝ~)}iy 6J8<-+ -ɞcBnא}7Y{_ KX =jX:Q,Eg9i[ڇc[}"+YGZ ՒM/EKE&eF]e{1!H*ܵ8_l4XJ.8E[IoS)ف果y,םS9Ыty wjɾ}˻&1~?<]-=u]-ˏ]uA=z"H:Ɍ$y&h˧mtU+aݲN;Mdn myD2?Vk6KR-ɟ6ۛOo%ֱIKts_֟o5SFewddw&ٛ>`??kD$ۋꑸ0JN|=,;-GʚcܑKUJ1©[m2F5'Bx/IvW;ҭM[On<7rGY=z!0Ep 4C]XwM9'[]?Ƨ=VV;ͅ/ l#ٟܸkRd9s{9xw3$& dt:PadqJGGS|Hm̕5|d}}Mvd,rk'{Mlwlz^ rS)xؖ1@l`p"J !'r%GiClK#ۑST6[ՐI\ҌB+{AZl^!UR[,N5NJ5Q"vQb fp+.M.CUiz9^U si&#NϠ[^gOo~fvd:t(Gɟ=dވs]X@{!ۀX=uqՙBq>$Ryœ1r pRAvMr©O\H[ҀP7G(c R@u2)m/-!mXYТ:MP'E k5H탢=FkSIHj̤O\HWl~h޲ㆍEe凥h%-ya @%[jsgn6ZFo H'7?32}>|Jvg-id[R,;SY7ݸnO#IL)p,]-X$\ׁ.&P]8K|uC,%RG;OY8߰zǫV&&Us3q 1gAȫd+͢m8?C/_eUTM΄šK,:A쓪@f I|;p[[l:,G-et,hM EiQճ4j #^Crw)t#|<.ޓ['ztJ1]&i Sm֡S2;lmR Q>h WM4${lw#;la^iGlJёlJ^d}ђy▌pN6-Z}=q+'Wi*kwxeL{wd߼+88ؚ5S̝{'Mڛ~eiLdc:skJrU#%;,h67 \7T0zS)99d_EUsȥ/>J[ik%1[tB iՒ`cYxI?Q 3ZG%s)̬!$)\~U܃BDx\U6n5hKj+^-}E"df~dpuwMqBv>IҹO+${|4LVl;jts}s͐.8R|QZ{1ZRgY$}+>uUtFpLZ]3~d0o)>0sM{قRCzTR/EFMjJt~ʚ."~13aرӗq)AGP*9 `N|txL:;c&]_o{sqO IXDg(E9"iF)w@+G$243e$n?q77_E$}Ǥ#c~F3Z ,4rZ{2`dqylFZ+JQzyf%In^>#/_%^DzV5'B8׼dŕW+$ :sbÒ+ ?# uS#o8nvAj&;sXY4fҐl쟾z>s=sf$HLD%]ˎ..$;.t=ǒa'JL#Hp3cNd|ukV Fɦ7 בIm.;y`7-v  .~gB.fBJb%~scB~+(;.`^܃(ym| DiexI}\Z̚5zw N.V/TCX&=&0Qd&~ w_fM_M5FkSzzAV!p7 0f:Y-1zǺ>H}СD!$& d"-Oa~n e#QǮY=u!C><*q&x>D3<g<#l)]ޘ $챸0>B!dDR΍> 'զ~ZP{%[sorhyZ +;Q{Ӫ׬٫Ɂw"Ԍ,Kl~Tq#Dť SvEn- VAlUrlK豷Ǚ$]6}>|Jvg-id[RU-;SY7P\31On>}MiPQJfW;TٚPB{[Z,d"ڕ_,)Q HY!Mva""$ݑ[)4ǀUXi%v"*՞k,CU=;{׫^?$lG@O(֐l]7?]N y U)I:zc&ٴ@WDW,AgGkEY>i[D<gAɳal$gZ'7wQP=1 D)Β:-LGKvudg( HJdETK)"٧b HZJvtϡl%-dG ⶼ*^U/L&]Yњ.d;o L(/ RHפ*ď]6{am@t~*̌|o㴅m:A(DYU"iPLp4KMƲ@=1 `$[ Q$ۄ~#dX4v2 l}["Z//b+7?b˽ =B sJiwY.r~9~X$d㋏Y4w x7Yn-v/=1i>et:iy03fay3'yveG׳lOyVfW9sђ-wQ2ϾFtS\|lJ2qП-;Pulie^-{lP:]%W/$ɯޒNޗ7g.Bw\Uzf@-|cfF'ߏҞ۫sm$BGWUC"Ǿ'[\Gl>aJѿHJ,%bsOcl>~}xt=k/cl,"FyQ*E좶Kx%]\yQEVc"tdtye=$"J#x/rKzVd+m"gy0=ӕ_q1ߓ|ё2l}؉Y' 8u^UAHv#c~ֱҲT2+0 u E$ $LIl/34gUIg"zÉ)H kΈN'N]1 c5e)"=J Zͷ 7?zN[{FH+8^-wc $;+̿W: $/t)؟(Jݝ!Ry1dtd__<ɟ ʝ%I:2Yfq~wBA',k3o婖.Qƻ$nhzlrv%;1Z.(R~]$;-7PLH6%'o~*ٶz,d2ٙͣeHdd4Z3s[ɟE ]!.$3쉘8J?k횤 zNp"٩auG-e#l%[fo^9}QKtr&ź9i/[*١}t2F{gJz?9Lw;>W#acP f70]|bzvkdWzP",lP̠]M& .:}Mɦcdr#,x|S,M,rES:-HÕ$BCm8BAۈݸ I٥w%O"jٿL#K'voHf0xt73:h6U9SR.Ul!y }p$n8|qR*w\Sl$4f=9?7n#㘜is-O&3ㄝnĀ=q:n-g"Ff&B3 T>*׌Xw.6Kt?}d[dM͖\Fҩj޸ѻx}tyhS3LE(p70l4ɖ{W!,Pzv7sOBgMٵ6 }H KQkoY~,ѫcW&UgH!|%Umfi[=ܽd$K@g]TR7I=^xzs94_iʊ/g{˧ 䕧38_$[p2i+/zGW5m,)B3lNɱI@Inhmfz[|Hw k@E@IP"bCDGFin|KvQGs+͒ L@H2 %XD#~L\2Z>nul:Ou |Iq m;齫D/J'+sHV櫴zD)V.Ǜ֚RlJs~5 >QRjɦǓ).7mw${df;hD.OJ*O^YO˜`{㍼q|/*KlOhK|kOwN~ ?w+/~/#$[|gLKKgu6wY n$:/dNrU6* חYs׿{'_yyyɓaCAs h>sq秧d}y}…Gַ/' g3+@@dj!O Gwvv~_9r__~n>W`6_v37/җtG}qk$tKH^{OOC?'+++4b''w__ۿ۝;w9@@d?HvWf#ى7'8tb҉OSNl;qļ e$oWH/~G=x%c_o?h< e$;׷g_y{~77_Wi_#G~_hF6})ҳܒ$$?g~#_oG?pB`ú@@dgPO!?Z{2:2YfqrӬbt,ղ8@٨t}C0GD fT%-.^^K7uprɹP^z<mY3U0T\!*#ٿx}̙{H,ߓJ6B7ldT'XF`S3vTz0UP2죿~H#|^U`*v^Ć̊pgb"%EؽI~2i}obiPe[Z;✭<ŜݾO{v #ξ0y`u%t8nd=77C%b!3Y'y7hqI҅΅[Y2ztMTOm7_]]5-( 6&fe*jkt֫?,-SH&bZ-.tjN|"^}2BuwD|Be1DFo8g]tK  H(n8|PdW&EȠ[e$\Kn.{Çd'֒)HDi;p{p4丫. .Ӆthf`߉*7~$[(=;=yI(.L%n=!^DZElڒܔgP L%|E-Ύ+˖["cAbFNZ 3%F"^v6H(/Wx4v5Q^>^Gkd'Oo`UH(3ze"w5X܊*܈:ͮRI?x5XFY3exlWYB{\;Yi*b #Tz3 *q$6-xِ3ȧ[dKy$Դ4M8sp/^쁷vH$5lLqUm?+ 6%{_\I|%,=b^GU=&gs3Ty[bD#b%;lodu83ICU8iJ`~v|\9qO,B${?Xy1 hq "3H۟ዏAԄ>n\oQg|R7,ltM^jՋf%[`ة}ə}#4mg}tlejUfWb%yt5%;dm%κn.Ym}RqA}^$GB8>ÿ~lzȏ uM$p"[ZkG sC.+n5OY5(B 0;A6J2;11J·h`[Hv7U=ix$ c5&X :1kJH3e$;Il0= Ռf@9^ߤ-#g3~-H6,j 0UbeiɆdG9ٙdoF `z@>B 2[l:dz!tvv de]dI$_B,]-H6E! xr4`F dlH6h$>}EnLlH6Xl y1 S*,13tPl}ES~ 1ՏRd=ݥd·ΐdѕKd whv+}w$jzZTJ.aɮժ4@^GkފdS)I:.$Sʮ%`wLte(Ao Nדl :츓fZ!\VSXi}cZq\f͢H6l]/vNIE+|}Qӻ 7* `;ۙ,U״.'҆GiM1M4ؓ3 Û/J[O>}+I"5 \~Քl*y^)M.FhͶŖ숸ḛC}$%۽;J{C̩"T;ɖ*O'V4"`W?_G>>ݫi@[4,ElWԳ3~J,G- x7i#BS"~`OҰ37lfUPU*'٤{rA\bK$ypFMsŅb+$)ĸ؃M]a#7/y#xT;3xńJ)67$E?鼎'sY\lՒl8|_8)ƾyY.FBƮn~%;N+_/r/{s4{ԭ'^AZ8&zjU dFg  } Y(W%6rqM` iqݝƥ)[s+J/? ٠6I:޾x9=MYS)_$[p#& iLS}/b"yB $t嵍yף奥yWc7BLZ+JXn4 EGOlIvZ]xvߒ9o$0FgDT7g7%]ɿ$KLwjINY&b'RBӚʖ9=}@hF FIٝ ͍}K%u۽qUg#yvۻQ͏ˇ%&Ǜs7ǯoKUfLmvjzFSZPϴbʮÓl/ ^+ŅfRecs nVn{reVXݑ%f[oElaU߇H#?hhHvvoӀ>z`{ _wt>-}¯Ҙ#?ĺVKWUs0KDs=^4V#jkG^<߬,HEkR"++\ YC\nNWOS I+FPgzmHXYkU 6 ,/ ~S3$R-+ 9]k5sՊy[eO)b6)opYAS()5{sQZŻEkG֮.wӾ^&+ٻfDzVAGQ֕O1yHޯ׬̞>$UCR>h:2E=d!F0{d0[s}ԟ1ZVVdY˔ SͥB֔|'[Lyҭ%[n'?Dʙy ']

ux OeGQ@УY@$[r:̦wC5QxGJQl=*KM $CGA=0Dk50[u7'ySF3\@gд Fąf/dꩯrbRoەoff^ bWfުrt1w|B |rHi[FsR(K6gVY++<,M%[ROٵOn[m:GVlͣwLh"9Koo99H/Е*\@$Y"G_dˏMl^B1zW.vu"y!)V5l6㿼-u*k|ܸJ=}Mb2] D7hԒ̳!`<ԗv%kVu5:">H <[">c]G-ͺ"v<0+OM> ͜l0'#4y^63hк,a-9*N/d3,--Ւ4AXdSm#({:n)՜-9Vx^fH-yHdd F$PKK@ l,lt$ $'ow.HZjy $[ &ˤ%;Ym~?۹MӑJvRnޏ=leݟwO-ɎtY^w:bMd@6_B~`遇B HvԕGd.BZA n%&Z[VI+8&ٯ%F?knq[?q|VοUUWvY,ѯ(d[wF /z}eCL$D_=˜ښt?@a!r@}ElwYۻQ0Fn8M$еRb2pѣ_+k+ϥ+l);'_;'vSH6ӣdϞdG}Ca1u^+((Zg-wY<gT[n`̑uqbwgrjſ3DFgp0si7$dۅT\V]٩pcf&eTM鈙,sH5]Wp%۝I n[=zkY\Y7 `+ٹg\cS\bsT/Ul+ {kT?!;j\%o3)E.RdMՒ&d@ %;I{ jN^6U0l%Pd㋏X%{fV?^h[cb:GLpp̪"s}fwv$ۆٌI[H6hK8?..ft`/A*뚼TOw/>fa$ l| c {v%L0 X+٥W Z51HVǺԮ@s X+ `@@ `@@ `"W>uW. dw $d%ђ}O.= $PKHW~zJِl0 Z $PKjJvِl0 ZP_SφdqPK `ddHl:{yyie}}/ހG@Z嵵?9Z'ASKIW~a F$D*n7$N=7$nK'$Xt[ߪoL+EhҝšV<{H6`ԒH6XpF/َI6wn$U1Ǎ#kJ3b%833^6a14%[l@ RKJEH6l\ 8EJ)cUЙ`*ECLUD2rϬ >_9/k~V4)?ښcVau]mPT'=,Kjk{dlҙG丬KټIûݏt EIIC8{S:1RK `Yx$? D5m=Zyfc:s߭BnqWҼB1ԡ<@p$R"LV%{ًыӄu&Y jh?7vm lҞK-#ܷDvd@īx\zE욥u07tҐdCifnZ<Ԑ쟽z FIv@aY'7ԫJ'1jRet+vo=Po9goWߟloʖ&q2^[.Գdhf-(-SSGj%u$?dɖi]6vl8X7b+7 pMXm%|D$;2#f:ݯ5bҕ9tb)d{vH6`Ԓ} ŢIvk9&f?'{K,60s+rA!PagЄ Yڃ3Fʪysz(MͰ{(ɖ=+l=~i(y{e|p+f/ufSwԃɎl4<Ԕҳ!`,Y 0&I6}a]+kW Fr-J IU`Ҧ(%~̏Ȧ!ɖI o/bΜlKkH6 kD_Ւ^<ԗ̳@Hdw*@ $WC,8䡑d %l@ : X|jC ~-H6ltB-yd N%l@  H6:<ԓ6c QOwk<4$AXd{-d&[wjf:rƶDD_' M6bϐW4o2zĆkV%uva`5F-y#ٯ_{u#ٷ!`@˿s[en+ lمkUudaKq%WIrY9jyFмDž/.݅^5DMj`6 @-y!l0B /o%ɖ Q: %Gf:abTVIݰRL !5bFNzSk`++E),o4)<{th;9l%%uH6l'\[\ 15qċZ3z@j~A4@O4ɖL&TE ͿoHKd$mcfkfY_cK T QKI fCXd"6zN6#`˜ZŚ*'xdUW+wR˿\U}Z4oJȮEŇ61_CR9;~9C䡁d_d.M_"Z5l&-#č*\gCedy韪5q+Kؐ/IƟr&hɶuu?Kfb+5-8L)^lapjCm΃ِl0 4ZuSvEpVs(_;Y!z1igoQdKGvvdyϸͽ\0hjɃ+ٗn?M*@йd;N]L.$` L]KT.ii&jrBj8O)1Y,KvBf"1lZ&g.SV'MD֔]_ ˉlpdbD2$,,u%$}BTP'ۣtvdJ^)JM4tLLGg߃ d\,-BX)%wvɦ#|֯Q;ًGd@҅R潻!{6.:Y(Gޟ$\*/%ۀ7[LIۋSW%[6?M󕷘T\x!reRdBG#sizpV%[i:z<)VU]AjmmHj̤ÃPK\ɾ_y= f߼J$3H6#GWv,0g{`Cfiɿ.sCM䨶{X]Y+LvԙHqfqkHvw혷Rd+r:%t0K?O捧ހdE({ >9%sfeVAB"cu!7X6)[J6)v'\UhH4EddGF=,V):-VГll0jɃ#ٿW_kx:$>ߓ]\}?Q77uWQ7b''U5\vs:›".̼Ks7WtuvLהlEI s6l;+\  q`H 'ָ}ϛcr)[NANCN>vK[r;67k%1[tB MD6Z-9em{AV@8;1'[nUgd%d٩O|J>i]*7T6i B璝^ Z^.]'Fi@Wnn%Vo l;B,ʿ`ڹݲo.ŒҚ%zhImI d+Iٟm lkkjm/oVlPrP)ZWbӛm4ϛfJkVք8tߤ6~LL䵓פñ sURKvšdoͪÃPK\|Sغz˓C"4\#tE.-xK̳D) t)RK~;OjW%N'܀dГdOnW +QXR]oHg60I-yp%Û|鉓ԧOz$iå;l0 ٣bJ4h)Im9RS<8o_84eU7!`$@ t''.=MrkO!`@ ҅/='WnBȁdjɃ /^K`6$H6:<x#̾ c N%dx`EH6=ltB-y$rKl0~ Z Igt]H67}H3bb1'{dPdyoguFtD N;{xfap=A4]A$d1Hvq%g!_Ųur/2*fp__a?LXBԳ2݂: f+wyIP^%[+`fl٘6${1%_gCXdc37l rzxwX$v/txcgyiwB^dLʗw5N*#irՅ*k坆f|d:ݬj,ݳ(;K?shqCZ>ԗ_@[؆861g9"咗\05QzC}[y.5so>m i*<D@_}[qOw _ VEY|ل-g񮖈s,A]@AZ0.٢UzY%GEk fz3$eo *uS7g>9{;ͻY6Kv;5g4 |_Sۓ^RXG/2Q@a W%]bj#`rK6-7$16? cS)7&K8?I9ߓŠ"١k3ˆ.ٜWr<@AIJvpSP?9'e|=Rxꚾ1XfNTӒ2wڽNl/ۻO Ї$x|PtClHv7m-Ce7w܍Q,ķQ(ٜ 2snhR9 2N_IX)KK3%FSLз~"*2Ir$a{v$dHv*x|f ߀dl`Dz D1T%yKb&ٻ +@`%yJvUi #(CHG\TlH6H=lAIxW͕1H6HlAI  #(GwwZ! H${ M>zatgw ${g Rdd }HGwCAd@ $dxeN{e (3n\R![/3} Ж챥d['RˬwHUqSۑ,oJj1/+LY #@d؞"d @VєV&{! CdIc4}Ed H"!)PA%{+{F! %@(gYawFnSd; id`):W 2$C#|fd>&%{D{! @d<зl Ǒ*$k|AW/CAځd@Ux${I @9s#?oKv$dH6aع0mnc} 2$hd$yh R$d0ɶ= $dd>&V OAAʁd@+ٵVF @JvA[lɞdt>+LW @Jv{j&φd>+ٶdAAvdd$_SeS*H"&Vmɶ= ROdWMVSr#YuDNDhifyk> Xɮbm=4R;mN 1%HQi#^z|g*rĻ.Gw%grMِl 0%ۈB#$JW @N2%am_$/$$+ dOcDMw&G>^x_&ym8QSxҋKuj#@"?J׹j1yˁ`R=훒lPjW/%{MX[ i!MK6J%lz$(R;3GHbMiX%lD{%ۖl'AJ6Hel/b} ٙ(U~K-ޮۑo71$Q$ٍcalHy$;nKjDtcHh~DUA FNw}A57U}7wgp1$[->+>nI6VA?>~vsۉ!aLM?Ekcj$`Fj  Aދ?NvJ?~IJcԓwOqI*M̬d; K5l*(+ e $@]qt]^G’=H6H lxT(H+LdBAFd@쩢d72ɾR c?| }Wmɶ={$drJ6>NTR@Gt.O*zS.(MUy7TS SQ/dohw=+5ddT!lч>@~'|ܜT:|[<ǻIK4~濤+]T[ƕu=uy$y_(}E8?OPB%I&} R]ĐRKvdGlJ=1n[J!"Kx%!cE9IvN񺪬d+#-M.eYKvs@FXF -$Vs$zFDR.٢:Eau*]sVvD훺>E/D[TJlAdWCA(D%m$/IGDZꔐ̄101ZH6Hldۺ'! @OWφd>%]r=$dI`kAs%%c|^iIc]l+1~ A*1KwYXZ@\Ɏ앐l6 e hd_ZoI$dHvIll:d\Z4+նd;d[UcC$*uA_G%EUK-#=4W{.d,O%rl5S9"Ó$F^)fQ;tvH~~(Ÿd͕u#dW+l%KOdk\dݕɵ GlH6H@Es"[$[wd ͕CkFdcq3,JlV#7F~K;2Jv[5kG $lH6H lʨI6~yd#l}kv`u롑dW`䷋tRm$- 1%~9ZEKȸd͕cՇW:@AH6Tfd"4W[;W94~h RYDs%clŁFƧ! @Jv}g AAʁd@͕FYw롑~H6H;l裹}=[} R$hd3^kzW }WG\Y:H6Hl製=xWga1(W @JE:\k>H6H;l裻HNd0v }4W[dxAadt>+L2$zhot $d;,f$nH6Hlc`%{۳F @lWwv\d>fVmfIH[%H6Hl裹}~&lH6H=^Fl٣ //QTjpW! k$AsJ$]RbpScĒ3?>8 ']5HQtHdk'i:+ 9+ِl)*."ɠo/d+5^Aɮll.0i@\ @"U!7v9M.K̀[ˏTox$:Zݎ) 8.y DbCp¾{7"h(3l'x&d doJgJT}HHJ=I;(hGެh)Rxʐ)R3 RO%*|w#w-M%p!n#3,s~HK}#Dʸ(J|7K4W/X:$dJvjVEo\[^WR+cKɶdԓ_73%[dK${U($g4*?V2vF! Q44W[v#َgCAZd# %Zhd3^&gCAZd;po U6jT[ioyl+-ľr$y6 vGfJWI +F%{dہdv0~Kɖ7J׳F/CAd;@4%;LJJH5dq-Kf XɆd,aɮ*1[kzIo:\1Zu2)Й%6uJFJٍ5#Q#VNB~PWhDC 9EaRmM<\Ҡ,QFJv}g% AV%"9%noiSQ5#.٦҄p $90vG6F$);r\6ùĘ%n4T*^ԸU Ɲ%;dݕl&{]φd3$1-. p)vhJv:%Ėlw qhQ:cK6#MqPwKSAJxQAAɪd ++{5{#^hP+5ouS6#'9lO❎Q"GY#ҜFT%,z ,Ed dہdavp%P17@$wwJJn_DM= yUl[EHT0~MTTgxDvEm{3kķ0NFH6_^! dU5-v}Ɏ}'/9#!)y^e겉ܨ+J3Ol5נdTRi(I6FK,>AóD|{,żgdԓU>JGq#;wIIOxEE%nSxوJIkF'py]4I1r{/mMpʞY 14Wy%{?$ Kv ĸpٔLrDs%ەldz! @5Qf.8% FWW2>Y D$oe~1 $ہImd҂fGg1KѠR/-g+uh4^D헳xRJvʃ}bv+dAAd;N) M+ +Kڇd򣽒H>^ )Ɏ $8%*d ّMeU5 _ɮ>zvX ]dXZHODU ~uwKdג;".xz.('*#Rv)zMXgY,Cd!ĨSsE})]!q%xFnS,jPi(#e@s%Ij&yz6$J6Lgs{.TJJfd(o0^I:m*MQIct$&i (Z{X+VqSbR]~g= RLlFS5%Ɣp() S_"T-Iȍ-%BY0!-=(͊%]r,gC1d${ RA%%S--rNj v%g.ަfGq|$6UǫtqIo'"!׼koQGתìTܣ]`=O%$;Xp! dUKwVlJp JvX$|I_1:BQ1BH_ IDAT5`\:;$^3G~YT +ٵg[BndU>NFCk~pn;w݅ނ|QG=$ss9pFQI۔&^uD{RꌬR'}(mJhAr-I ))^T?pKry*^ۚ=.PWW1ɮu%{ M%x}ȥ|R]|$ ݕUl ٚTtQ &8Ygf Dw%ەl۳! @l;gCAd@+uVjVAAd@͕uCd>+َdہdL>V뇬؋ِlz Gw%gr $d H6]ɶ${= }LdKv#$H610_̮Kِl G{%ZW! @J-ٶgIv޳! -@׳my6$H61${D.ld}2SUUU HDW{%ax` RN$b3U6{rolc/ϹP:V؇^  Jv^m^  uMwў2cV57n |AE%ҺQ׳! @ɦ4*g=Ɲ8-T.AD%Ivh޳! $D]Y*KU4ͭ3`YqM]xPYN9~4Ǯ991"AJ+ٍL@AId{eHnK9D6KN('R;( MT$W=<[;MJ'cFB,>YP=GJgT 3L6Ðl$]tL%KdGBibcY ɦ̗T%Cu!$69+S>  Q+~ *~$[jJIvxD-9sst8}cEP*Of{HK$W b*9Sdxx 'ɒ3%_T%%[ub.9S%GE)u!?DvFXɆdl(6XɎgKي]d<&C<ܸd'ٱ/0-YrHJd#RLdo {yh ROB~OkC$^b dc`J-=<"0%2r S.t' H3b6$Hvƒ)@btHu=̬dCAdS#! 䌭dOldlaɖ??  䌭d= R$NF"w HZ3 Mo'rAA$gx%{ RO~_)bfH6 ȓ3 ']\l$6FmG H2J6 a o4+HTA$d_dl! dsol*FG_t  NN% 2Vp1(ĎD_gA$Yn ]Bgu)$[M 䌬d; ]M^3 lH6=߀݆7ʛw) 䰒 @H6  ə]ndaFA<ə]Ɇd F] R䰒 @H~#1h@ - \ᄖ$x6 N+d|.T'$H6 N++[fdS~/j=l%ፌ HIJ6*٢_ z=*;pI0)áϧhyR*qRTR:Aa%l 6SD/I1;0{R̒Jv0#%[29Q:ݥ"h&ldXyZ]}&$ߨ$pe)Jm1~BH`IzA4J6{Xѫ5JRwJ:"f?R.q63O=E%Eփ V0$%elt դzdrX @V%{GūBAfZrX $AA䰒 @H6  a%lAA4J6+A)[rX $AA䰒 @H6  a%/CAVlAA4J6  h&l@AL+FAD39d  frX $AA䰒 @d dMGm<?o(X$>lY+ȪdWtElD`%YJeι.h1z >LI d' }sbs%VڻHɦl|@ЍS"ّP/!tJ6> }-푽P%S_ݾ(9d ]"rїdIû>.1! JvďDJdiKd'>;Gl`gbM:\|\C"D`%R񂱒 @d#Ò l|$!!Zt FO@R<;]nsi!ے!ց/xI-Hއ^W}ϴW$oUAD%wjq7dC7]YU?ꦭҝ O%[熝=$;Y.@IC͕쇿${C&LdlnM[ $ DMdkJ(H6$;[f|҆7d4/+ 959ːl*٢"wnFHt/艳=\T)ɲ%e>ulOh^Al{&5 $?7zy>7?-H6H>Y\qw 8ex(Rڔot:rOH$N$Wy ]gP($8i,I~,$A%)裏%owOw306?e{ݴvl|$]o`o\ ֗lbm"y,JMJtK/%u%G$M)Hʹk|umWtoc?)`d68Q+"HҬd3rj4RHUќ.]J1T>h[uMWv$6H6H윶wՄ&HIVHSҵݔ>ɏ8%#FI^IYH^7>^zQ<.R$.9qwgšoOyٓ4rD\W`s9-R:-AM~u}n |}ckݴvMl| \!v()kM{w;wI---s:uD&N;(%I]e HB'ٳ~gbm〛oy5^0dJk䬯WaNZ-aIXC%c%%p8(DOʷ^Zx&LoiɊcf=HvSţU! 3.<ޤ}=7踛 &7$ '㭽S.$$dWYꁤ:yIurla${'/o:vLodf+o{l| )قpJ}p%mv\ KJ}FRZ H)?.5dOO>fpҖ쫮oҦ%VYNVA d])624]3A$IvPSӛ_vSW5/l[X?~{CA l"3%l2%[sPGA IN>Ĵ!&X'ؕFy+;'o2~HYl_IssxOnJN<)EAO0EFPF$JSWɖL>tԕD)AT$W"?;:<&ny' KvZ8<&}%7FvGK +ٓ;e-UE?ű~1$)A$W"~~vg3;.scdWX)>Yto1cJ4{⒭KyI]IIQr&$nd~{ۻou⭎3#x7! dx%[ZޭԒ-(}%FNdjEtBcKA)Ỉ0(,3 Hœ+H%=${߸ԖsOm>{y O%;,^&٢tx$0 J6pɈD[E}) *r.ٔ_ . )Mn<}?'0%$u 0Ɖb&scUd?m: ~ RW@dԒ^&> XdL5#$g[5ql{ЧyH BOq%+vZ G>s7tPA @$Vў̻FvwY?1=@dw=._zH OC7\2ȼ r`sևm{ Rqɮ{Ӝ O'TfN=|foNNu\c}տeE/v<$i+ٯ{%kna|Qآc-S_|1 (]3o>\dNtܺ^ލ=E%jԷ'`oy;TZ3U7wNwRIj%z,_p_ؚk,Ϗ6*_"2?k}qIډ]sc7O.2{Gc+ٖLw#gO/3s˰ n 8d măMX%O.?=sw|?/M?ՙ~CqGM~(?#ltYBzxSQJgaHJ\Կ텾x,ɶE3Pd|rt[r~}g/Z'Ɓ߭>:Ų嶾;~A$ d[9gN5=H6FN ]dAqI 7;9}{S{?w8YG%⅓]GOt?g…lU Ⱦ{6U׶^fYsJ{]_d p$@prR=#=LHv+FN?"(4U &IvD+>wֲl_ͮ_.8$md9|f_@_d>߿bo 0,l7}oׯZ\w_JveH62>zL/CLx!3EvUlJRɶ<=0̾oݾܵ]E˧~~֯c{EGc^?_N~mXsƐ ǦO@ '}Aۦ[+=, ={Wx&M;yd[~kf=?;?ȧO_Ou_q'f]w|_y'fSn?Y9f<#}}u_ڼw㟾_xf=X1${s{ysڹ%}_c'2vn{ vϲ/uU7O8[VfrYXGo|ۭy/[`Bʷx?vP*|y>w@{w(~Իpy# &'%"ۖ0'1W0X۔j-3׵./=ggvr ˴/}&rdY.3%K( iVNVpNOILgk~.1K܄|){ԓm=fk\1+VFB:4uku*ie ʙ䳜r+ !';Ig&YS:;|I^'{X&ۻ'ۺ?\yIDAT&¶XnnT;2㞚X@an /x/6.ۃt$|i \!=rasCMgN5pDOvBڻj_tgxϡ]{Z:w6]^g^wjÞYZԺ7<[/lizSozsasm:tv3'7;3[kϾpaws羣]zN^l:t/MgvX9ŋ|pvgj0b%[ٹfاP[x;{G[usZg`Ky>NY}q> ODM@?OG77bZb&|,$Ͼ M^p}\>QH2f.x$AGo^zuۧ[iI9vV~f]8G/=:i(k[&ִ尝1^FW5Ya/܍kmg];:jrlecMmV˱PZ6^r{&eݑuG׵Xj>JMP1 +_Y׿o!˃]v+Kdw1XtJ,=ھ~Vɚ摵G٠:m5,ۧ7grɖv,.vlrSƣo[ʆ@Zı_{;ꎳ}/ܖ#nnll(fC0Oy˯RzYeCo76>Mϼۍg~/}f}?vO޼mzܭ[~έO=^wpf/8tς{Ա=ݯW;n_xjm[g?w|ㅽ?x? G^xmm,XV^zŷYy b8ocgm_~b;:N{//g'n}28VBu+jV/;طd t-ݹ`Wǫ;/9֟;/,ua箎8[ط>㬓yyӯ}V^vŭ'^| of o/ivVx伷OgqfѮsKt,׵@ʃ5}콰qz4Vx:߭[9:u}^O-|m)|^H?'cnO~vֆC}^|&wގ|8`v%r>ҭ,NwC؟!N gYκ%yPJN7ʈ/MnVU4v p7 k7nFlenTa fZ'-86RvL[i~/ ]m8^aj*]}Gd=[)xW9]lK=Ilg3̿,d_=֖ge;e{ˏg{${#MP-^$ٶdp<9Þͼ\Jv޳d<ۖ쮂df5nbKY^+xgߟyU-g879Ș'͎0϶T'voƖd{cО=~*XdxIjۭqܺΗe`uk+^;= *1=n{Ǟs?Z&Ly&·~Oc0~S^lX7=Z綴;j f/j=K?^p^Y/}_~뎧wzǗQݏV6|l:o?vN.|;}r> '2d:y9[:OA95f씱#{wpn\ivS0\]oI6sd_\z=K,۵hK'm+:>ʅ,(n/vaےmyf׳SgO:ж>^J^dw%ٝ ͓lg{%WŞ"y8_}H$;ڞmsW۷~֒ٶd_6eK6߳MHv޳UUL-u7`i}uY Zu1L d<{5o1{U1nY\TU^fMG󞽾Օl&̘K}L"ٗHѳmg/fngW7ZlgsT|zv.d{=۷]챂g_=ld^Xfmg_b0w={C޳wfIVzxv+J Vڼa0X㦱ٶd=ފ-Xk2n툵~KZNg1yT-/~y;)--lN)͇,a]fK:q o?F3['ZeYÓK¾9=;^:8k^ݝL[/ig{XYq>bKg/n{a]zН/}=o; ?icϼ&,N/rnɮsweYgwO3y2ߟWYG]ְٙw3]f*cݪ ]'5ls#K6d<{/{#/f޶k{etn7^>bǭ P+V~k:nm)[nڊmew Sl<wVlJvh1W]*۳WϞ׳͘ژ_̾g7wIX^_m:?uE}KV*.eOC SNdzm/c%{ t14j4ֳLOg%;m?4x˳׳ =}\dPm϶ֳC#k٫ ={8Gpz9\ɶ=hF.f;=ey1&Β"!m,*e=Q^n .f۶]ÕZ{ 2lNl˳={1*[H˓N#آ_nh2`l~`nyO^x5\ۧD_v7NrSO.iƢG>_9x{߳L_ydNM}e5K{@u뜕G_r7޿u__ȂZXE9MϽņvKt,g&w{~.;\c)˞Ż/,r+"ݖ?-ɿٻ/oضF;Q\n*<.byftzv|m.a[>]\՞lgۑgs2N$g[k9<4xυeع^yzZk={su^;>٘^7v۰c\!ڟ}*a<[؍]̶<{!{1{9ȿp'dweO-i/ gᨶ#^϶#슋5ճWRwC#֣F6m^katIcyvֳ_]:0LΘDNV2qo#Y&?:PTG0c\dT)S귒= G0WfH3H 't%OE'H;l) w73Ŷ ]?~olgO;g`d l3!gY#/Of'Y#ԚL3K%7]/$C\m2] D\#J]!. Wlxۓ|s> <{gGG(M1?JPxQXؘ1Z"/ZLNj]l_{#5Ͱg&uڴ 5ż\1%j}25@QLNGeP1W~.c ~\|ߵp5Ug;}~'ٹ*!?x5kz/79O{BMdb;TyOQkUel!NN*~-];xM M@u!7T-OIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/figures/nautilus.png0000644000000000000000000031444411534217015021001 0ustar00rootrootPNG  IHDRJGsRGBbKGD pHYs  tIMEuE IDATx]g`U>lM!@!&R^;"6@]AQ{ ׆X@RCB&Ǵ;[B"!fgggv= iҤI&MZ };cT.02$"D"F`"E4?Q xZ'GD@`8"u61/8ƘH&M4iGn:'ٵ,cFG:/T%ҤI&MZ'%!" 2$L2anQј~:ʆEAT c^4'1dhAqd'Y ^@b/M4iҤҫow7! @c-iNqpqj CiӞxMgZx?N"ApTbCnrkD\0a/(?>[/ r%$ҎN@woߴe%k䘞 CA.U/( U l$jI VqӑBdq;_~"r=!95H7!cpkđQPXGr΃΂ܗiF[d܏TT %7o5&Zxt[Ia~m 5cAdX,BN39ki+|ABAJ!QE tğ_zf5c˞yEҽyx]ؼ%<2OFE]]Z'&vZ߱1Z$ áp"VJ*JˊK+J[e߿?Z " DSo%)z\ 99%\$CV$,kGD@+" Tz_R^wѢE(̘;gqnkwp?ޛŁB+g~r$$ҎZ@8Ã2/?X7N(|*r3 N`d /&~1ܙhlg;7r)j"XpOymPªciYMu@V>;l޻Fp >ue奧tLgH%OYD4zX9@+ 宓QE[x<1痀JJ@#{<@ȝ4A."%+01 l'> sYFJ@b[(/ԹM)Y\Ӵ@( 7xznӾwuSꐻc 0\^].Dó~(q rvٱoSNVN ]K箙3p( (o'b:7Vd@_1臕c^sĥT X܂@xjGٻoC s6Ir%K#Vc/o9@ݻ5,oӈ)1mmڷ=רaZs۽yۆ~-粿 h(SX/^_v]; -JJ@3|׬)df23Q,q'2 "3Sq*&8MWCuV^Z _@;)0D\/&=kȉ/[ҕO1+fnڕIFMԬsy-EvѲyc7oߏoRՕ#ްqC۷h'K^\mQ4DUdunڤ醭'2RTRWZW[jVX{zylJ?.(ȷD+=sQEQ@( 9}AQEQ, ox㑅r, آPq*-8Eb5 hwSDGr-3׬=kk܋#lp8N(*9Go&tbucrUH[;^0^ѭ1ׯyųspmR=Գ~cZIqDiiiӦͼ˭l߶S)ʾYqzFJ)^=uk UҲM.|g#(xK`G ^P5@F Ҳߗ5nm2J@3Z7{E+s E%|ytwkQaɪMEuJ~KWm>ͺS읗?q-_vCk0꽏niGvc~{M'-Seŵ(<7m~9p@~ys^ ;vj[Ig_~ZDE{Esb0.!!3v,Z`,~'3>DFΐCdYc^HI?+Uk=3#:l^dȴ,%?u?szam|h7 uIo^8}\k4Toi)s; g rTwݺuhra=.̮Ooؽ#7~JZzzfLΩ,(+޶/Ei8;tD"F*C ia P4GC]t@0=N&Y|Æ_\4 aiHF} 0@߫hH\))<pߣS}>ED"1Ƥ#R: U|~u)i?de ˎ7u|n<1ON=i]fk _ୣ;vLZJj$LKK}`Wt\ @;T p5 Edh/Ø!ٳ(Qz>ńc~cՔ%c0jY ~ws5yߥkpmϮ9̻/^3- [[Sş<2&\0\UեZB|NoӼ=9m[s׺V L|m6޷۰-ZԩS'%%^hP{E GPAU] SӴIV8[nNozx<M$Ptg v\G^DOkƅ!ѭQte qA+T^uE N?%S=YCƍ@i5CMORQ@SGJWj)c=C~{)S|uդo: NϽtо}O$0cAR] ""2~k*F*Y28jrNf0n=`\AxKxBf8`> kb D.H҆2}ty]nq!%Tn6\(ȘEQ ž{ի??MvNFFFv`0XQQ v{<nRU$/ F+s+)*sP8o#z.+%%EzFhlυ@lD FOv{]Djf#hpf6LlDF`ԄV.Ck//Ō.y~[x`m hᲗ>k8u~Sn lhT8c51DNcsMjIO`dpmۑDdhxղes]Wnˢ: 6g³Nw%p2Uyځс~֫[7 ˳l߶knVzP!X,;zUD@EQUUay<^ Vdff-XACEq (2 )^/PBJSHAZuM>x)̗^[td*E4lʦ3{d1Wm1QN a"6Mab8u"Q1 ;YE Į'M ҏc'0D5.qkZ;OfG58FڹǏh7K!oyfj˜_U)~Ƙߗot8INP,45k1PYda8V\JZzj6Z4o)ԘzuZ NK '|O} |e<~M|xb>'z޼}HaV>JY\b VYQ11=$ ֩eH":$kUAQ)k%)h[Ku׽u&fϝd[6Jx7ԗ^>^MD-&Κ31F^jԤS"/W{P2뇹FUZy@AS6mr|(G(skot4kNfXw{)/2!4%[ABLW\`z若PeJt^! 4E`t ̟efM_r0K<s Llb=%4"@EQUUt"Xfݻo޴yϞM4.=TmwQ#ׯZ`@Ф%,Ŭ=V K`bQtƣAEFAjG&lgWߌjy=H(&Z5HNWGvBTȘ2SFZR\~<::#*Dht^^M7nEz4 h4@ @e}A҉ $-Y(=otHˀl9!$HBm{^p 1YVod:E  sLBĞI[ &ZR<h߭ C18rn;OOOo83''iV͚޽Kt~JCN=뢇CCxU HSQib43@̐^ƞ _,YJ} V1gZc+'9`\18GA*5 ВS_ڹSE1}>A|(n9ڇss^cF㣛{RI=4<{&=TNG1vA|+7c,C !9$aPʼG6QLHs*CpcLLQ&O}};tl8״YYgM{LzdP9~Pa  BaV|.RBgd(WKWEVW;kc-|%pg_N_R&ܝ:ztyph1~;q~#PEŁS_;N9yJJКF[߁?4sW!]n {{s];{[:D*M~ Gۯ3K*@#.=TNGH#0 q'8 =A@BxU`Y64%f,'"IILHJuIɭ+KQrzG[H9>77:OӽN*ɇP{Bl"BqI` ߩS% @Ea7Ӻ)SyHS$5P5bhGi\n|U!2pgvo=K❥ ;6v3wň˓)!q=I3AÈ,_E%׉aHEM`2\95>kz^9o>gxw=S~5~ljEI3pvt{?%%PN/,e@1~hMT%wk>=S}$5PԌ6Dݵ7;ÅQgLѫ"+Ez` (SQ29:3 HhJ"KFVQV$.GWJ6 w{_Z*!_Y|F8(|8M]59f@Q@O쾩zeoxcO:S$rʭBSp05Gt)}QT7m ƞЅÎ7#[&?'u.0*cAPn]ZDE26jlCϕD):'r({۟h{h s࡮yQ^7MC{3׵ f 70@1ƕ!C%Pj'3aQ z?Đ1a*EϴH$z\xn׮ JUF`/^EeATimBڹk jo=;|J@Ja֓Qhh=Rx"cTQ_c@8?xae$Tu -.* pF!"hQko[Qf7۴q|KQJ:vh0E*=Tg2#O̎ f%cxYE VMV Am|mLAm'/Ȗծ:VP]NGfBC9k*=褭,Z4*Bض@-yee@Y,*- z]jo֍/\仯@!TZ^a!TR^i O[P\Q\BM8{Wzrӵb  0` "5鑐pCE*_߉'(DT1xF귵1Ǩ "GjJ0I;z<7``嫶77!z\O۶ry7i&4&4Ɨs!fBKh޽B)0B#(52c%R.U1<7&U&V;ZsF8A>,& xc:>!Ҵ+)>tѢ-<ǟ~^7h$ &a>[HIP}~7=TPw3CG%r=*LA`HzM{}'@Ƒ[7 4BGA#DB@q 1[őT HXsĈx9I^kk5 V8cF:ZګPs@d^FH4C!+8P…٭j?صKND"P(GQM$CI@<!0 o\A B+QF/FOA8x̛@@ɥJ*eT%xڏE,Me.kbκCUY-PNL5P$ hTӐ% ~P(T,tP55Ι0P$GPGL1x%c)F22A2L]x1%c!xlbeo+ ҫꜥVpsPX*u*B#/ǚz{!^q٩Ͼz^rx\.Uu@*=TH3uB U%VNVl%XtBN GL(x(UOrmJvP4?.v{=HTӢ`J IDAT6kAa(TRŘN%CI@8Bv caeMֱn/ .@0\DLɒq(&D?s-\p5z-NE#&eǚz%C%УDBJm(g &hMG6^ uP׵F!} ##SU >XH+}I@I@%пrF@Av b]aN\ʖ!5$*(_p]dJU3.by,] DSE~ GƢT*MNG,UA1GآJIg#q0'^DZ0;ڌ.1/W]kqjzA1h"rCwtW>y'rDw %86%Pir=%+ހ2`fY! ]1ZCz}X!@/ɄHP(u.VD"{ȩu MsbnJuje;ŚOFP@E? Tr4&zH*$Rͦcg| e&6*eB!\!5N,bk%0!%% m? ?~ jOxCƕ<}'9!ʙBNW/,T*MNG"O!v3=bՌ+ZE{Q}^Fq"sB]*1WYE:?]&FCTш4t,G"Yڵs yP %BD[g Kv-r~Y|yOGc,B!ιΕvܗYW[ (MJSn'"(V%H YE~3΁ ^lڵ 1 TQ1ŭ 1sM@Zj͛7egADmAuZ-g|6o&mڼ1#n HII3OVgM٭T_t~͹uJ@cJSn4ˑMo_ zdCEulQNfAzhK+ x3 jGa)Үmo,P*~~諸3IӥKƘY@s:|ׁ@ aMÿ ]J&=rJ]M6Cd-@|+7Y$f`^Cv0mc~u͇̇ 6xsr6i4s˖^vz^#4I&PP /0$Bu]A&JT;2zq5Gx,RRKRbz2_񚭧`ވѵ_UvP|sSUv*g+ 4 Tz8a946CO+c0Hh$(fbPG.S>aj.˥7&&&E BP)拖da!gD k2hIsZu:cYMiЬGFQ`'żi;C4iҤI] b̐MzBrtØ~q6 qXp]{5uBb$QI&MI`)1ʉX+*lhTa#+? HE5.h (Yd]#!Eh4Gg0W}LIcN~>"E4iҤI@\!r؁ jW%}E$%fޯCޯ% NP*Ð$rN/^eG<+++x+v&Hz@t笡Nz~s$f[Z 5 qSWFb!fM181l2 ( 2C>z9'"h+Η3"-OiE-$6bH۶WrC>﹭몵+*zL=p&MD#e =Hl4H:(U`ftZ+IaWk=jlZ_x\zir0I^'A--qЙC $4}ё؈ELTBz$"NcChJq8ٸ'Nwg3Rt n}eeee<۾%_?sVVVVv oW LNj5geeu;{/jVUMk};j[nwy>[eeeu`Qmێ#©:<8@,4TYmNsxYY/o>ӿIS^ޝ۶l>W5叠۾ɦhp3:++},Z3NhռX]FHz Ҹ1Lc[J&:!'+++q/,.Ԏҹ uĉj[@@"0&8BprT!oD#!ƀ1 %=H9ULXMsny{p3_-Xti>p%߼0lO10Ͽhj_zw,9y>9ps|XWsWmƟrEyJ{W ڵk}۟^+mкN>QÎIoB_猹]wֺ]Rqؘpz.yOو1= 澽F_f|y piNdƦ~~wVf>0?`(is~Yx;;~ߥ.KVtPZVcec&cyяws67Ξh7O8~G;^B/m[] lZ:oF$,"2+(H㱣[8q;hBAHD !2 ]6v}Gg pq?wR&jXcm7 ֪Y.sɠ&<1sZu~sa0Sשtq&M7KcϾvQvâ^{9 GmnEC:OX={n#xhxCEΉЀǟPOWamYkOۧ[Y5;wm:JUzJ|9ޑ;;v oտ99OHA+W_!1[p$iA[t kd %@: 7HDj Y8qpٜ6_g[4NǜU??iNf=1tC_N|ж-XS#ٻlYaέS@ZOOYolh5,}K kp ʩS0Z~Ttc ՞ zu,*Gk|_1MnbP \ Ǟs5 \}#XPla1e84"5IܙkGQ2O,{Uvm[ vpÛ~{mk~|m.ozR}Кg.>vFM]?/ܰ7@Q ̟rÇu'>=6t봉nAar<&.z7oݵn~lC /uz>vl% ԫz轍DMN{mQ,˅{#@pt9 ՝ Fn77ܱiż{76kW71RuLEEcAbgH #ataFdUUdvd & \zXA} ?OQi|sk>]7uj_E+U'zSw;{7|\&thÏcƄׅL<&P]7=ׂ=֍=Əv.qfh ssOԾˉu%s3Ntkv~Oͨx;ёjڕ~F 8ٛҚgbi6\aLB ;͎թ rN]f1#eg8%)[؈{; 2J}fO+'N˗z-de3#|I=rU;<^޷s76)b̥PQCΌ8 #ҖsŠbrSu"7Cb!V:hB1'!?F?qpʯ@4i5NJ% #47{p4VBYCV6At V3M@1ę@D ĬUO'9 uіg=rDGHRv}hŖ:IJ`eFq,xGBR_B8_Lb_bjB(kQ$(|bQ|d̬4iҤIv)p2xub`m>` (cX1oֺ }cU(3p~G#9ʀ"sI&M#ÈXN2$@2|1`F-Z&&4b$\oLA$Nro[1;ޅփVΑU:(ҤI&MZM&)FcS7&l=l%X11Cc9b]>1\H$Fb&Nb.$94iҤIVu!ĘXD3g C-C$Sja { `g:CAaÅb*bJ,H}kud7"cMִiҤ4c z$Y>&06&Lժo O]* N!rl1"֣Z:(Ҥ~`n@FLT@Q(hz9ZҤI;ngݏ =IKb'F%{@$c*: 0fUsح _z=J((ݢZ?Zyooܱ1]nǶحM!:2IVm͘BUs[P@[q:0GPiJR΂ 0Y86΂b6fĉBYX{MGM\N|8Kiþ߯?RŠLA@ )w.N>v[{HP"˨t?a(%faw'MPiZGiVk(2TPƘb &Έks=B70aC qzƔHMa@W۶Y׏?K^ZBՅLEpH80G:g.~a}ڎCW,-(/LhzLd 63#dC:}X9CI@i3 8ab-pn0U16F0-c7[ 5* $2_|lP_Qakt^kіU1*.DI#=o8V5koǽe^p6|.?}, Ȉ1 q@i^h+pSɱ*MNb9!!ފ"<@S!? ;U**n|nmr eGrjGٹT|Q)opmڳUϻ˽Sז+Y6bkÉA՟ȑ*M[׈;c!Qbc0XCl1ʭ0If8'$*=}\_";!%ZWȰG̳"AΣtn;' \i9?eErjWۯ*٫~nݳo0T9g>?==#)=TP ¹]64 g1Y2M*Λ"&&S!a9Dnu(&ҩ \멎߾b#"uIO |9\KOlH$RZQ`ͻ(Pҽޕl\&ܾ M?%~Bau v#)=T*q6W`+DDHf}W3.r !" Y5$"hě$9,IWMbS1ElbvXtï-I;!GF[@e`r wmM32&e8^9+0P̽{;Hъ yѠc$(Gc IDATRz4 h~q~X@=@I+(;H!U h2} kB ]V[6& .d"x`XHNP\bIϬul3hW>» G[ɨޗKrjyb 6=fkݟLPiЪA$PE8TVTJ+%e%eEIGb]W?:1&| n,d- Ȓ#g)8Ήo c=/)/hQ"Ff8ᒒxoڧ žѫYVE_n-;da JPipb c0S 0ԃ?8bA8!r"&cz z4B{'Ԫ`…?(TNbe5iֹSZy-k>ue奧tLW"Kh+I-^߱rYv: Vύ^,z'`KtHzTOXQM(LoH QMb-iL"S!(Сpؑz ˡ*n[)I^g%AZQ-^Щs!T]24" Bƍ?A^qpݔ:XC״xhK#iSPcڬ/۴o{Qô{ MZe5 W.>=ss\- \΂C4=O ~HzTz!k: &حrHW"XA,Ș6pn^bȎNk"r y[_0Ul\3YDܵeVco޾ߤ~+Gܽa㆖[oAuOzۢh ܴI [?Od4R8䀎??C@DP%X> q?~ۻdહaO0^=l5%xa.xHŁ(UϜ\C 7`q9s|lQq\Wl`}ꈓqW{SnSnUHѻ1'FM6s6)҉9qX`0@F9!.،Qո#AΛؓY.Tt@J}ξ贈3j`$lԬ"xdZR(ۇ\ Fpe(~GZd7@"~oߗ^/?`-cۻ ϧ(J2+q9pChWa:*z}owC fjJh1e SjUZ+:jz{.wVoKC;F=3l廯~>ihw+l]׿qYhwcNo]j̯~Zw۵ISǝ3=|ȫ>6d|p%95"V`3 I(I2I#Q vX%vqA"H07o}ҝsk6S}ʟKdz r}7MXw˗Y6˽;- ׸Ku׭[]v+HMMݟ;r3ꧤg6mRNySNH$9֞ b͝OU[QW=wwuB;z8гU`}ǟy‡M_i +OĜyh(hy[/6l?s4 3CiHF} 0@߫hH\))<pߣS}>ED"1Ƥ֘)H E=).?) 6M׿p=ɩ'kԌ]rQP+)7{` Cw#>!`Ȭ!`bBWv} V91bF_*"y_Mۣs&dm1Օ#n'ͯxU#ﲘ*+~s*^>.PUuoP(--mv-_z4tyouۖܵ$S~#_M6EuIIIz'!ڤ9,c?;aS@n7ȝڝs=vX0n‚i9/sn#?sGf_ÄI0'O[^PKf&x9.?^t?O"s;kص?֨ z^3. gn*+kWF Z̝5+Xp-2nL N;3?|SvƼ^3cʽ_x)jҷ{upeqׅk^:~473⋋XG2F7CCA!*&%މWGqxy)fKwZ<}J5ZWt5Cwf 2Yp{8k@ŝҮS(BAس{OVVVzn +**Bnv}>v\Zz2 !Yt{ RXlB5=+CQE(\Ck~Rŝڹw7j;Kthbm@wݬY6>Ʒ`k 2}Wpex H&و\In Hl .~̆ȕQ@zhM=o:G[rUCV쥩﬏`~!znv䔛TGDDf=ٝ&:̎ fEOʱ0jrm>#k7G!$n]A9iwj3QEvyV&ެ)> W_]k϶R޳bӾDzխ moڵK7/'hǫq:}\jlcU / ji6Gf;&eVm_8>X) l@2Civ9Cʼ>&4*Dz UW4SH!t֣X1fR[ǔZ*zhtW6K'kj (R5ič<^t΄vJ^bpJH>Y "0l k'G{5|i? i7 >X:> ye7ߝ'(OꉗۘH1T?Rm'-vnNo@ =}N,:9=k|ʕmn_;oCғ+N^+P_7G@ ŸK{ctf.u?rs)4ٸ ǧ7ot5zrMNPs #02NVbĔ TFY5NVI#&f?0fm:q?7f\3UIRIJ;D@}ʻg5@aTz4@H?P/v5kbq$\_;1"ʡa}G`9,/V'ad2b9R P%d>[13M*هnlyvhigp.xZ{|䅬w_aW޻q /y%wQT];[ @57 *M)~{U@P Z@PAQ(*JE^B'mǔ3;Ia緄3{syΧPC# 9H VRHQ:P 9>,ZsPDČI;c%OD"͏}?'>;ak8=7 SrOѷvqׄwYJ Pa(esm>;+yw#E|Vcf*?uU5}17zjة9[ZYij @Ec 0-! d  " "bdϹeG0"RpM~S&Qdڣ|ͱujkY|'ˌED®Pp|mvL}8e6BTa eD8" @E|vD1jf߉~ @QP4Q DB ĵPN e1p.B84fs*8zN3.:Nۚsj_/ze5X;% &GJЃ縫Be_sq dYƋy/"#2De T;wnSh,WqlɖK'ٹHAwu/!iÒVd0Š@]zˍjJZp!;mRl)j6^A~Kt%>Z C_L`*=4 #d j:!0LIDmE%-HkG@piAd6 V1"U z3hjG q"aPaWTe_4xsQ 6냯zWoc2|-=(/c$N6'w$!-@J5b:4̈́%o A S 90)XT-T$F1UCQ#4dspHIV)bj BM7Ke BCLƣ5R6 aZ^F@*@4~PCP_J%t}Z97@`pWR;,:F9 ׄ$zT5 +?r M3/ɨl7y2JZi^z0ƌs=Lf%P9Q1aG&}b} H.QˣsL "3P"?caAs @/pO[IN&X[]:ncou'uVXŝ:tv ㇷ %0~^DS`硬8PH:Lj׃Fgcp1CVP+eq"aPaW(]ђzeGKBfqI~+;b$dh${<^rDGِ9r("" @EYvd UMMhYY)DƢlfbEf^eWV0@F &3@3}xM̎,*ŀ><߶k9fg/rP?KnL9fg_с}NYtj9=S.8S*zh$64 4,<.H|I``b"$Zl¹Oc(0Z)g U|>$^®P)obPp9@tb]hGbP.;D,{VYDmDgA*zD@21Tx Y6݁ .0Ic;GUcETC *bJ +cq:7tU \.H+Q٪#lrFl;QP YʥU \!򒲖y%a^ 9š5ma㉄ @ @ЛfZR -$!Np ?capd:T:8]^'U2!zK>U )Qvti @ @JS֒ % Qa3g dɈRfx'M$.$i*5~B;^ j^*L*Lz=Vz`)ՏXD IyIvZpѦ/AS<(Ze14X߃ D?(_H@">UTT*!*d)4~Z$ DkdtXqµ}M8cj4![I"&DŽQ*L*LzS ! #`BjChOPCʬ8Q҃ 昶朓Erkz rֈ\46lQv+:pPf )EtI9.I|>f]G*GW2!~lxa)5oA\ALCI)yh顉?Jfffjj&S>˩7qx*k@K{#;$_۝d#׍An f|{R-APl3cz=E3c,--v˲,:TU%YJA$@Es|*aր$ ƿH֜A  EG,^a3T\yD¯}۩G-?]яVX`a (#2cLYPa9=J @EdgW*>T 3p\L,D g206d~KY 1&IRLLLĊ~Xv%<_FWV3&&Fab  @7Ȳ̔^+ }D_$ -8fs:KHH,^qӖQQQ#Ol٨(IGLLL6EiΔ9p8DրTT*H-a)SAF&I OJw 3nb  FA P @~ eyIX;QLɘ\)k)-9C0a„ ,E h,Xk:GtǍy?iE!Cߴ5(„ &LX a!Gl)|2/|H(„ &Lap SJ"Glpr!٦!G"5&corYt =-ރ4.м$ <0Wt\hKO{r7&,džV&0d "Y Z;1xG8\{9XP*p"1oQ9ϵY$g IDATiQuMͣA.6Hٍ sOTvg S Y~e@2* D0h!pp<&KeQ"zL}#ߺOC<{`봛ۜ?xN*R&,%X=sj΅tIUX]50ԷFĬBQw4zP)uewiP6..jˑ (eY9CM{rѯm'f:Jx|$/dR2OS7vX}t4k}#>YEK^&xӸt)MڨRBCS+khRqqqqcFfcV|덛iqweK{UhSR`>l5||]8{*v-[6,y꟯=;4m4xW⾎O&ulYt߱Z_v7yt XXZ~ZF,d`2J 䠺d9+Q/1]#g5|w7:/d<_wm욷Gv\J2m7&o`oڤ\u=]^mգì­_۠l^`F,g'ߚ~lOd("9](4; ,яk /ѻsw~7@V mR LsU{n`5mcǯvV;?tzLۚ_mc_uK眍uzcU]nܤVX bWp_X)qDhA! h UIxA4 M Q%t4RԂ0#-=8&EWhZ6WX̡rKYӑJ}cFC]wRCh49B6TvT*r|yNd/vw]y07H%j6~7Mfɛf45{ΫQ-R|h04Q}vcYr|XI;>Sy-|>ڮu21LX)wYbr'e:[oBd ^9ZNsmK+aъL\$X|g=ꫠש|2cI7ȑK>(츓V46߫ \M-MwM>f9w rentCYs}6tOG~nN0UV2uV ՏB&0+"HZ 0u&Kc uf@Mt#V%y£?&p- {o>/[=mee^(Xl`4]LWW_:|"MGqM3OftCag뚳Y&19pō,&wc[DZ4C4 nuI\,Xl9ІԆ̶m+'c>upغSO ]s٧%A~/z֭Cuz l+64h yŢ3BX[s DPS`N$d2Ā2@ QyÅ҅yR d4 )4Jy{y"' "[Ql%Znt~/deZ:yQb[x*O{M^Ivtҫ ?Io_t6>mOr7nς{Ӊ-n@hѫa''7^ ZkYw>>[tKi>†C4{x''AwCnڻBYo 9qYϿVs(oA_^k4u_gzԈ &hRN{,7cl%Znpe$%Z1ig.)Us.xepeM:sȟWrQJuO4ɲBXH&CjNNj!ccCCd !a#p4CՙCڬQQ߁Lt*hMx'ضُVXa55p1Vɔs{[;ƫn@[~Wi\I3lXU'@̽/a e+5=Ǩ^9 _7L0a!>rpNfk8bx/?|O _Zjo 5 -&2ihl)mut2)Ĭ/ݳ{B GWM?{MߚС+VѸ߆['K4Egu e$%Xb ݘq)5_v>r>v˕kkr`:0&M 9ZڎLh"MWP´;]* f<2Q &Lی j9Rb)FY/-EK:j]? 0 !G&L0annCD=9'w$KzXsr?1&L0aL@D@LUc{ D \M ̥PǔӢQN*80a„ 9J@VD50oaW/}4E3 \(jTp0KE0a„ $E((L2CIIT98f`0lG0MQ|-K'S\92RqtQ &LB;Qy gN2rZ1 ދG&L0ar1 è3 1ɚN>h9uz12S"qIm=(j>םsx$ØT!=(_aGWITTz1%@%_9"B&E5YR 2~L\JŐ] I/|AXTt4Nͻ=Ty]~?'Hضr8-&&vk]G8^Ewp`U+i)V^SsIb(1!"0II!fJAճ*&/1%ԊUnWk CuUs-eGɱ}zK}l3~)IɆLBE~dǪ__M~oh40;k$qH蔘]bv6 l' c ":߂0,^18sMHS]T:C;rj'ke=v_%;lDדd?ؠ[)Z~b+tPaPaЫ0Ui  DT\&!$ӔIL@ͭA]^6]T}K "` %&ؤc{Nl?6'cJ6(%$?! 3N׌kQ=u>O8"@O*L*LzUUaQ>!2#ɤHbnY 0 Cz@P%;/MTn۲g=/Z׽U&ˀIl(9$c"%O!oT{sHQ'ZO*L*LzAQ'k_'MSt8zd%,4y|g)mcT eQrdQP}'^ #j-:}|E3JzkzPaPaЫs :RKY丈PIU(2"iƐ11!SWLD$J`Gp}-xbL Dp^3[ƛ)>j_/1,*2Rh=00]udHBR$_}9ATbtp¹w9&Qr`hV#'d``W}?}Õej\zW2.>ב'D @ @ @*ePy=f)5ti|h $Qau7|6&8JNm=nO2vwSz ؘcԃ_{ʲy~Y@bPn000hL@Fh Ff^`  eG!-LAu1(dUc*M93s`K>{D²d,~agZZG~}}ys&DuE @ @ @ƍܩeP|#D2&C|`)fRJd Ro1^YDRP@Ԝ+J+LW@6EPՕG&8%|#G~/y2SHx<)))?b򊮗.F]rvD @ @ @h8 O@RdټV'&zsb ",[1-(D\OFfo|6\둁d%1Wd*բ\PL_\çw2Z?5#5dYz_m}{ɖ>,3*G 7PaP* UPBT;0 pes(A;âYl RQ6oTjfŊõU)in۝yo}UNĄu+?X0+gU: ޚ))W{嵟-}$!D3W)#F@0TzYK"a8\Oh$ %YCDG9}L,uJȰ'^'XĀsO3gOs5ԬYHz0?1 ?s:מS[HOE;Gz}P՚Y^Q* +Pb5 $0^r&D5}"*d?"$g}Gck4i/./) 7 ~IԪug6x2=[e+&Vm>7)[fg+WD1weN%OC;}Yr[mߙ\zxUG|ؓ=4*g\NK7w/2.2R}aZrkVu򅴴4 v)PrïM|8##rIӼpa:+=ۋۥس_ Ntf\|_e0Pk=^=4giK汨z)eǢW͝մC'ʥUWb޷p}ʦ~}y~ @?%ĕ1Dd Կ 47zfW"?93\~o񋓞t6ddĸӧ=_d\7ޚcyo@Arh'#E$m.'GGI~Cp$ʎhrI~KvcL7רy7cH } F&2 6;t4yCTKlcTbOZ6O7{WK;y|rcs$tyJz ܔ!?~Ve:[Ѣ lmOMKsyKPa_Z>X*<Ɇ)#@W/QQK*?(v5,C_u/Ov~{ԟwh! %ED g1-fiU5-ZϏyt\Sl.|{ȺS͟m1r=iЩf>+zh.qOE ׼o/$?ѹ,qBʠ #yA"9t]CD\aG{Ķ3cL %^8p$#r\+>h+*Pn'555-=\ǎ^Fttn~S6VH"nNzRP.Ny/H5)p\Q_O'z-S}Qy4m{1 IDATҕʌ1VCCz _L"!ECfsrJQQ{pEE)y>TrIQM&%[o+3j4.oJىbBE\{܁>cΎ7a˾z겦8-͏XGK=73 Re(1mED3Ƣ]yn&Oq‹&lV0a=d~C,d}G=>`*Հ:fXٳcE[k;lRl _%щM w{3@sIڃazh 2:p7f!Zbrn%@d#C<+y@Q.o{}k4ߩo\)uicC,NQtIb:؈D7: ~1_V<yj d4wfrzo,?1JwWEJ @@Ddk\CEvAcV7j_%IF@X9۔LPHsx0MhR8M:;P3}BA#ڏHO%@@~'$c8)"F9DT0P4Y%~e+De3$ʬQ S4B+= }?`Df^*"x:OZܘk u,JL[ (iO d  @Ј$)PwU"Q8Xĸ puuߖbTL1S%FX4 OQi1)zIc(&ѽnVJP6]`@݇W-ݙBkYNVs@7 ^VE^yb,ejȴ)ᦵ)0 :&9C aw4 ?XT{= LpFus^mjgЫhg@%7"#C]L%pT1+9&CF1N6([x6JY٨csC)հw1s5}m'IOc.ժH|:TPa7m/~OԽ)xil;s?8v#:^/3Q\_{}=ԂVʰư*ED_H/1gh$|P Q0 x܈;#_m@MZωNؚrύ{”Sw5a|o4 -SLԂ}P fe -i=&}1; @EvCz(S_}Ҧ^7ԥicNl I骾Vcf*̀/ᄆ% اcА.+ҫMeU}U8]5 zafޅB]a"4КE\k^͂yVoxT|o,344d>h`B-y,Ӯ_q|UQ^l': $%N*zCg[6\.Y*)ck%|_)R9J'H^m5Z]ː=&ʹNG\1ӘͩL9ˮWJĞS8mkbϩ]}e,땱k|cef?_.Qͤ@*l{{ɱ>p?x9%O *zj&l*sJ^׬aHP8g ׹L#&s=b5/ӛ:,oKcZ jO_n2ȡg&A %C_X~J=AF> :~ @Ev;hN?tyckLX+6+ư42mؽyhN@ߡ@*CC~#PG X z3]Bw4LʦX0.DK cnQ˜]t@V $: 1FU=֟>=_dL7?o?i3|ѪJ &Nᱢf?`|DL)E&s=Dzd 7]ED0*@E&8 Sg8Q=3;!|$J|#hA5UZ$ %~ "z00\]/yQzCn,' 9,YCRCt7̉wiJ1ސ&ϫךoejf=U*Y%J>eOVɘlD h])=far@º]Σw9~hnR+ȲePbWN$zЍ%L2)4/9~X @7%z;fw^IZ<\aޔ43=9ݡ,T !7*:שw ?X~;լs i;~bwӽ%/^ ^=MJu5kBiMPhTtB@@`֌\~dQ ign߰BZ, ˝FU+;˷_- 号z1 Bo}%+Sf4Bm^ =")UN$zЍ(0cL#)*^vIl1.IY9]xeCPz,FkʭN #Z'$G5w 2i&H$k$ej#3r&nKYpM4\ (}x=?fs!{oBkuEhsj(Y7"cp]ns{(v{^-zuoSe'׼_o/ot9Ɏ(l1ϷZKǒ>Szt`&SZvϔ C.L\ii"=Q'ǖ;V!ىAM(zյ3G9zz*r[uW|ފ$D磻UcQ6Q2w-]!@PSB.7&{(^x= ;SBP0rp>_pD $I_)V<+D,v.; ŋAgOtPYeQv1|`#"Tz9 !gO3 :@̎rT݉+YV9B6?HG=Q!3|#Ra>z w~9_BINPVUr9M wxa5 fdDy< у;AQ؉BP$I>O@(9\<6T٪ z0C)^Ps.jX u.Kp:+E6ן(drK0`օU"v e/4޿Zi = >QHz>Oyo)PǓԐYsݖxENl6I|^CDYF@QND ro&@Y q.R9@^p0+"@אNa2ˑ5ÕS2ղ02˥hj_wu[h0AYZeM8Qs;~ ,ˈ '[OVLðH(,jPw4Yb$QxN-1v0t1dQH Xl uHU%U7{h0kRC@ DV^^+IZ1شhŃDA X9N@# '~r)9>O$Y$DO!B^̤DwZpeБ!dr CnX chrףT4= " 葄, !B V>`V2x/~dSegŐ{'jph|Px{T (G bUWxmdàh1ִnN>ڟ-<Ьy惾!d% @)LYG}I4xG6 ?§LYP@G 1fW4==(ikC@hZ Sap#N0(J&e = $d,0'qnf fG-K=5qxgCV-َ@Y11)z=Ÿ?^-^e<5i_`2'#ˤS rvYb$1%z2@YQ{3#K^DXg`AYΑ9&`x^^'wjq?[5 -pEG;84h6.]A8Z@ݧ*W/,!y/D =„z͊KD֐KoĐkQԙefGu6)<$(H2!Zpt&k)wn 8Xm ɠ"1>K(_u]h2XdGG%333##C"zͩ՚(lCS+UX"Ҕi,ߨ|4/t\@ RSS].Tb%0(hovI?윒3njժYBym֮Pnڔ[ 6n#uҁ2: CQ|h1(> +rj$@l( Y713 .7UV.o!)k̠FnwJJ* H@ucG읲iF!џn {6P賤WC7޷iz"XZZcn3Pui J*< zFz H tcyY%9@6y:C%SHib-eCģ(Qiiiy?|Pr QnwtG?Z `e k:|@iii111, ŕ|h(@JUcXRbJӧ֯Z٪M{gS!c{Ojgvohϩ]^+"{ߎX C ^b';\v~;b{67C|t{B܈~N~?gݢˇ0?7{΁3jsdמkS~_fe3|;ٰns=:^\O1QmL0V,@ÐlʒV'W" Z7Eά7Ĩ!M"eع d^p\>7?q%*~>5ÙG7Kx\&J~fy5[4iL'\< dܑVΫs:`(;A(щM+:V=;a|A(ŒwnC,²U+6"XKN>.hD *J6)Ȋa _#?H20| CA :W0j,,4PKp${eraf\ ven\Ҭ?l('Jf 2 Þs vy=iI^ʦ1S~B-s A͂dHV $dJi娼hw!E!OQ(Tdbtwoֿbt֓aOg`ղ?ٺܶ[cLϦw~Kx&H=0xvww㈛ ]y ^v-s=z@1K9*ĕj A@JR0H;֣T2ų)s˲3oONzVy(ty=y}6n?r$)S(rm9EA]шuLgKJŞxw{vOhӤ~~D?7wjQfy}`N*6S> ],e_T-{OE)k 2xR OA=H1Y>UJ"ɜU0 ‹N ͥ~}s/uF|K|G?|E6]~ :dS7v/fwE6Ҳ^(%lu֗Y?r~?JtL`I(l a[_u>墮.f6ryڭדLs=D$ѷV{3Ǐ0;acv9$Khc IDATĐIL&_6PQ#'LȚd! ]eGJCFMQXFuߍUz`C3|ݝ?}7Z) z|'+˿KxN$ o1^8@ c S@^7+\%E;EMXM %Q q" {[o޵~ٸ-G||qS>ܵQRq%+?2b1e9寏4W~׿?e&J:|71$UnkΖ~E\Y\5,WeȦ} ;$&vXӲL^^6%]!yob &YӡWcK/ur=AQK\bOҩ[RjMʗ*WeȖ1m916KzaCfS#D #ȄVI!1o2Gn?'x҆@bo/s/c|as2Ϭq֊/~q9S?y.5w/WI:WM T~ [;Յ]}}}p/c++ȉ'vlTxm^N=țZoڭ^rY,\6虩{co/#}<^E\ 2{%.Rk> 2mg};:ўCǎiccVES@cZ4rZD$2"!H2Ѫp2!a@.G,>i$F'4w,G=;KWm9oS֯mPĎQe[߶s [ok7}rz exa֨>S%yZ6Iq9O_{ָKW}xȴ%ߘ,[ܓoMj~V'("B,|1O,]zW/k޲*pP c{J:o#c =d]>Y NBߙ([$Y& r>j`-xFw\!Z+~(;caQe%:пN2`RQc_IXO<$e{΃)@*Q&PU:+f+ K ]j;wk5kcJ`h+*pP S?zkrtzdX>ؐCqhIto`Z)AhJNjtJv!soWŷeCIRdchf|h:|e=nߑ#|PXIvL U"&-͏c Ţc(9dd&5؀NU\؉9oùGqM3#xQCG\x:ao=m[r L_,]|&1|q!K?X&GIPs( do(ӊl"+" 0 f!2]!iUAۏJ0Wt|i/~~*윙x~z>m^֠?c)Ո4>thO'`띮O//?|ROaХo6?2yG?DN{4(XT7-8W/o-:z,pw6O M/: O,ҢA*s}֟j9<ӜȺ®*~Mk*97vNm8He\^TW_ڽ]"s<3U7!ӓДFF0a|C xZO0Fi 51P~@zalEaQp[%.eaG! tpwsuuW^ *8>z`o| <ٺh)OOUKw~Ě.٫N:`=tI娫`nY⳴G_+zŽycUWlɃ^gg\3*Wgguam27 Yz׻hsn6ܑ!& $eO:0ɥvGg=¤~8Ixb,R4(::Wh?t @Ӳ/Ӕȃ\"@8L :8+r EHPIds%h q! O(qD*fl-&y]j>r)9\g<w4f]`YqX2F tN;gd0bB_iЂ'3NѤagþ8ϜUO(pFgϚ#ޟĊMko-Ӭ¥#<}V FPwM^{4t.j9BY012^޳x<= 7\ PHVåso5amY0aO8Tz\r&jK׏|oG! q=2'mkqZ*zx 0xy:zC_Tɴi8'*n\kJ.m`KdL&84O])tuMA}497{?>|FXu+; yfu[BD&FdׇԫH^T F7{}jţޞwl)Cv3u#!9S~|1@cھ^S&9 )-};Ϧ3FN?q =Sj\f?wOΝW$R)$ƈ0eSkcHϚ21g!zkֹQ%<0dFe9 !be0A\ؤX@KO';j5wP42t`LY]rx[o>@l2p%MXձ[z2>ӵ:̰h6X;tcU˸ksU!~>>bʰ`{v=~r Sȭ`nف.%j&s֌bZ:+j{w8k+X˹+µ'(T/pe* /[ye ~LU5)G)B|NA<}|NC<~L Ͳ.9o"h4Aw2G!h>yJSRW9UF4%tɜ:QAޜ7FʓZyD[%+"A.o44Z EN1AE۶!~~,k` !mXpQdz) A,0"P|/RYEcjZ wήe :mb9+d'%>f3bē?x3Yޜ_*} (XXXXXX:\{kM{'ȹ~yQ̞M #ϡZRF_2o$(h\ޘ!Ƞ.BX/! exT z kgF|\-m&Y! @yJJwŬm4) 5tCg˽].-G7P̥$F݊;$Eudz4oJ!3EJ@@@*c :[TVRk1*ɎE$pq5 V«jxty *Gb(HPYE6J Ƅsħ>q@mk{?CNsnED=zzcۉ~lv^A7U#>wv+Ak4%K2ȸC!jGS7ita * ]1{\ypvl? 2ۥރ 9_(0ru6xQT[6S#% ohWT@<%9qr,iNQ S \KA B p|t9MZ)_ޥ, ~ ;O8Jg1Ǹˎ FI7S{K Fy3c-FJ@@@8p:vye }^0*HCJs}S-y2Бp$F1rLSTIwF8C7~zP`h!%ij`Tn-oY{ֶiՕ<:"P0kՁ+ qbZyCiD  ER~?CLM-jꞌ~|JGji (}#(@1pe ļCG;0` b*jQ8-w1HS #ee?`1T(jd̟4viEш Zh!B4,m1mO㙊%(AMa'_~4eYV,oЍZ7r-1B(Ŀ 0  3[>97r,˲>GaY 1%,a99R4۾YIi6;/o*:µ+ڶb&_:1NRbyzDmP!%ZeYc92"8UQ<{вAt@ |6u 4`q~A^cn\ztDP{y7)yu(j5TԌϓף0*= pcUTna8~9NMƿ# p 0(Wب"<΁1F*(ob,BW*%ba> (v*)_.r|4EN4#(+xR%PQaZɱc ]G6u.oG5\.qIזٚ b*#WՌk) pr((R1 B3P(y @F!)4{48.m615Cq4;B!ZOEN&aε,]^ҥX8ff5%Oՠ2@a,[}#(UQ\j{gf?P9r9Hfg2g7w^\`!͐?w+**^QɋԌدQ@bT:P(8UX祃08X(* M)#&2iTDMZj$@hQ*^Nߋ0Y*`~8R%?L7VT ̃7RP8Yz~ݱ @ >hOP 3ԅxGtg!&tM&ԛۍ:]CKoY25nwmËݳFqB~ʅY/T (L/K׵񁋛{'f.H7GJ@AZǨ9d,y,wZe_vd2z,[$/TJɓ؃7n˳nSvV&3ݥ)0e7F?Q/~{! ) _W2|JU3+ IDAT֓Һ},s: vu_&֘Q/2޻yKqz^̤XLшs _~y'&= sH$JL[}$ijD"7蜬$ä qc9,2"O=js,B'-by'_( /{M -L^!輪& UA!|s _Ħ1ަBԴOw/@εnftyήaei45^%W# 7FB:&q 14" b<=oPh`GaY㰚eU*ekɧٶK (qmZg6o=x&~1hL/7={C"n;n eQ=El;v2Uܺnnm?~2(x]r)uPUD\3hRyzC=s_ #c:++ç#;~ԫ\.H$UbDo>M@q9`Ic,jɟlX8fhC`%U1 '460%4˨T@bDiaTXhbDI$40 '26H$40 J(hıP ]ޝ|nSoՑ)6&fv r 'gеn0&q%;y1(BPˈ1XSٚG4 DҎ_QAVO1*1 ƍf W$@Ha(6Ѕ23.@ ܸuPT{թs΍y|ܭ?'LM{NL#^&&&b(Q@ߡ  &x܄x0 9X ucdjomOu7`ZB m֠)n.kCADFPk$WPM4-ҟKRkkY/<=--- $c,D"D"DBP X]Q~zm!$MZn^ﶏMh3W÷PӃͤnf[g&z6_I##G j=~@״?%P:E͠bJo)2Kh,XlmeT =%'6DZ]\gm8l<~ <*.yg]fuгG'a `yvseo/+2S6q39e+׽%dx]xAZ$0) 8B6[[W-ߣ<;cV(<Ě~~̥YObKB"5qGZiG51{ >WE4E &EKLoߺIhu")U6f^=_O9եh;)U`ou1Q[>E!ow3cBF(?k׎&6&KtiR;AQ-`ʎs/z˺z{g-oU?'ؿ~C*љ-_ltj i FFtD_cрr!M9oLM0"NL67W@w@wk3 &>n66lw3h/Xk' }߭v.D1WbCjOG1p wݩ * 2-oww ,1]&oϺץ ~b\ n|i6!\oNKy-bZh'dU̻xNn.Bu'0G j)sʼۍ[Pφ_V{|C4q0 ˥<ݿttf|4˿y\Tyơg*E)]|2Y);`UmZ4u]cqy`.E*s:cu&^-,K˽ybT l:x4MrYsQ82R<~WV/* H(VYsrcuO}3cOt7,ng2ΈOH٪Z3L9Η6cMLES||C{]]cusE~&*-"[DGRTWNKKDnGF%Ɔ 5x*D+u4Ts}?]g_9Kꡓsf^_Jg cN!#I y™دؠe{n=ua <޸^y1}VQCD\za; 練0q'x|3~`Uۭ=qzKߐG&z9rr}~rI8ʇ4,]`VxAQ4q ~47i?F}&6keXi4t4" \IWj״ip}Wkž[;'9V^dުcm^+I)Nm׀˚MU `,@Sfջy>5vt0w;2*]haxX1NRu)rd;;؄싓Kƭ?/t)wϢj5je\xzE ͋.|f_!"x&)]!uu:~d@0b@w'', ):gB9B$vyxyW,:w \>W??ጰϊE5t L߶/*553>JGݱw-4!!ʞ|#Xt_c.TXzf4E Ey@Ewʮx@1 Y~w>gL^[1TyY8HL:2QԼ<֕b V FvNCcg|w#N}l]%Hʿ55zW㒑f$[?bּB%0EV`P.vo"'eN-!oSdε:ZaA|woqwO?ΫW![[ٔF+]OT$jZkJ#v i`T\^W }fv$qǟrNݪQ tiC7 Y:+9奍sl֬FC"֮k&Fd9JJyLshʺ^nWn r!VBMjޏϓseqfڮ҈eݭQɱdkK߼#MO s TԷ]гVl oqo~GQ YN{裴w3NE\XmײFM0Ɣժ [VJMܭu~=4, $4ۘx#D'54嗈ɣ6[sRuhm U܃[\z8om{Xq0WaQ=x@ESSeENgHצ4^Ђ uN]:rGS<$zVyPtmF!L7_Uۯ R>4c:u^o1DQQorD0S9.[v3xԧzoHdn|3tM ^ %I6Lq#%ŀwbAZ?SǙWY7r>Jdc@#NZE N͂RwcV6ʝ6t ȬQ̸WW*fS$-:곂oűboKh%8+ى/ sgG*[Jl=ݭ_eIy8#O0eDJlisޒ^5.݆gGZc{h@.}~9v[ )w\mxDN͛'n$'3׳J̐.6`޶8q.}(l}d(ؕ pѓ VT8icSR0wo: TuN7n$$Gqʏ=~h\9kփԙc"񙰬@yRqiiQ˦ Ҙ.hF56vŪЫ輮v,5#Py߷ݞ0LlcINZ~/T.ͺ ]<1y]}?\;,3ki:][ULRl)* OghH*sWHGn/rYIJ 7.K.kl[кjqq~`8KS1ؔ-CG!@eTHyMtDI?Xo; @ t2{JVY>FIps/Xȣ5SU{jON[IHMY{J#:WZ&#vt_н{tآjt7Y@b;SHCPz6r4~(@; <N#O%,ns;-=Yuڕkcϥ`3>oky%{N8U'iǀUXf7k}u&bW0Cm_=R l89fCS9 GF4 P@h=mFھ%گCP sK^dHckEOz2n_|,AѾD=~R'P~MAHRK6׋{ M)c[yNz}[<5zlY[un60!*/+vymuttTsVwȤǚʹIAQ eQ8ءLNu`E}/qЏi":!s(6.BYo!cWn[)+.K)o z|0v mau<'({ލ'zmg=Tr2E5hlo»~9z&J*y9hlo~9|2E~#g)YpGpz_ʹcÙ9(Dݗ4Ǒ6I.^AqrXacKGiY <4̵$0XB#J`"Ya8FXBs*EbD*,2w!CeJlYg6TGaYVV3 RJB."M<:'+#dۛQ{BwfPFЉk%DXix5=ԝRu< 53wJHQsI(kye̽66y@ 鱯,| DA:|NZ_߸Y[39v  Ή%"D`7t:gd,@`v}e$"9ڃ0~iwgxԘI@J@@>M@q<-AM$nzkZC  $^Q[ݜH$! O dMJ@@0(BPGUbѰqmPnm=@NhWѩV7ܿ~*|]bGPrMҎ2ƳG7 ik#aIl"j!]I!* Yn<nYvh~ǻ!P>@xާz[I+JT|=ՍgG5ݗSk~0ڡQ@-EwՋ䕛oz;'mb-YV{i{_9i1WVR/[Jأc3Ӯod3Bbq[B lڿp3k a aBڟ @oժ(yMj//z_ŌTHXe.w2 48"+dʻڏ j`<3\3Ўe\!!1~(7(^ |'Y5n=*oWxsˤA|4]gL(q@?o@vჍ?]8^tk?~$5emԪ&֟iΔo)GxpS-=5}w½ ȳQ=gxU_:hY :զJ\-cX_pAʘpX-Ӗ )|w#@ό/\: v7{w_յ8ǧ'8/y5sEk31kb6^Յqv&ɱ'vNV(.|䋛_NMT⎦_n?@/OXe@ 3L9k| L{ j{C{n&ʓ eKoJwӅӑQW|d;{6+?@9m5Bq[k=%o} y@ 05m\՚k0 z?F}m6W˰&>ؖjE}o|}2k^]{SN~xq?މQM^ь`zsgNk8έxk2j0EL] 卸s#f!Ui [[W%#Gpyc$Rw$)@(bϟ'ajy'們Sh.oAĦ#һ/%`֏nsan"X90#;α3ؿCH}>Aj_UFF 2 F BS&XWFjpP;f歊vĉz~jlRZQB^s8 0z H~8Z g/ #2_@ nCZ"% yĴQcFX2 ^1ejC 1\^ٝZum73"&25֛q}tEΥίR,|=Qɻ".kY62TEһZdّ3Z"ၵ2=U3nCPhȡyOo Żz+((P*O!% )9оpU $,`Z6nw$Z`^fv4i& IDAT`ssY=]m16(d 8^2v;Si{gZX7u~h)hi le83_e8ҿ"LpSym=mJک EV+ʼ<\Ĩx? W@%h0(PTrMJ@ӔIc]_q&-*)'6}׿KD ,-3Z nJv˂_ّ ,-rj A0m8=>>jWY'z1,eVpH[tgoLcޖ2k03U rwwl^rrcFe :іt!A&ªxڦװ0 mX-,,43HLLpw@]AcXZZpGQ颈@ >bRqf)c˶Ni:}jA{!!lt E"q@=.Ÿǽ7 jL0%j;=w9#B ˁ#keʎe+P\R7ST 08)tЉw=&gmh\7OaPC6rrĽk-%>5L1F_-kœGwX˄=7W7333SSS2cej50*JP򢢢=%M}@R!_[v ^ǐgUePd͚~駡nt9-N]\ _S(QR;X,LMMb!(D5ǭY'44r:[_O>T%BcXLӴH$211ŦUEQ@$7"К 6p;}nf]j׏:һd_ m{ߧƹ(\=qT6IW"Yc~٤q)( BG(A@{>E\owt/8`Ly'._`wB >UKw~Ě.٫N:^K1kwޢ^|hU3qՙǛVdž,=Y4b97wȊ Wޓ4o9ܺyFYIK$oISlRb.b7aϝ?_)PpGnX}MxC(bt's#¯nJ3VuzZy |!A <68E@-py#]/?4gy[GDÒq6ԥSvq> Q[YۅKGxNtC?nbi(MyEfOca󦕫b? v_hӨ{MU,"剑&F^$Yl\ԩᝃ:sz{ٶ*Lv폌tbu- 8pHOӁ.fQ8֓Y//m`KdL&84O avT("YΩR%AuDDEҭ”t4@ЕϽ"0w4:6p7E3sTWa;7 cv:c|}}0^'___[[reA۪5BK7o5k—SSv]RWD[߲ :ys;׶$3URmg|L)"w;eDwvmlzG{ytRuyT6\>(cMTW*JexXMH:uRԥ~Y2Ps3#Z-ek*J}^5k@?_(UDZ])ςܤR_YRwBߙ[ߵIfQu]/ujx6 d}~~[z>Uٽ%.-Gvio i07蓄>2pJcEc蘖y;f,>0%5s@}~9v[ )w\mx\53vZlFVB\Py"ϝ;H. ,1W^dd+wUVsN_Y91|_~w)GcR#X_ϴvv䚮 -j8-ixp UwȒ}w[#㗣.[=2c.|sx +IiiikZw ۛ(oó;Z(̘4=Jɟz_W/?s۱2dWv^?}~+YV}gJ4YV8h93i75 m"QoѠa뾫;:KzZ M6=vآKFDQq載A4cٳ- 4`۰]xfac lIG;;LN,I;"o;3Kx#:u˔sĬaޮywk;ȼuԀo::˱ vvv-[|=Ue_-L|9E~lSQV '|{!C>l9F1*BK{vnjtսG` fպψh0oo[Xq'X=z뙈 7k&_T(ˏP'%FD[S8x Cc+|j'>}B?s7" wM˗*c1V q!EM"z7 /meVp5H44M4k׮7o5b4B!˯|>ʺլHyͲSˏrx}&V~n%NdMko0gҮGǍii;M\Q\\\sR4^n> +;$,퉪bI;qhQ y$VPpĴ’ϰL*}[>g ]5 ݄+|bO uSoS [:/V^3k\*WGS@CwsJ7_k)t$d(a]"扡RԳETsPnj}PxiT样ߖJ%v 8 QIiOήryۧ%h3>fۉ) wq%~T_}߭8]etl'$%?<3\T>Z;DŽjAvJ\F֫B5܂VOoIK&oSBbŕc籭 vM_xAJʣ#gEdZY8㢄C.%R촌䏵AQa}DPU78v躍<(هoهv?1\t9j>hmfypolbbbb2~8yAo72^i 1}oq>'z9rr}~GesЃI5v??a7 " kR3W$ݥx;57nCde6Uٙ_N 5k, cqUQ80̸qlmW}3%en;\}MݑBf>n';G&K6KE_ m2 ә^nxT-Uk٣?rMv9 bj.PkG眙?n']K[ ;>(@YLGup$rΝu֒3g>K|-QaKoqq굄2\gƩIy/]pZgN =5@lh7_]&=$>'=§^"u={5G ]).#>o80@hv3:Du֭zzz~ʔRpآSBG,9u%8 ܷ1q %~ d2LAv0z ~|@ |]yK1_ԼCGh"] sڱFT_Z m_jfrGO^Y\JB,zm9p>!Ei7f|ŻMG)LQʴgivy~{Xq'-Y϶oy,EY򣘸@)L= !%>yȘY‡֋$zN/}5iH$l6Q2ڵ+Wzzxm%3? @h*KgGk)Izc֎#iuʲGcGՎ!BC;j::: ߃(+iYF 59;z K aY \q϶4ZZ4Q8B.)U[BYcO X&-z!P6 Qnw~aSGwX5#x<GWA(PA2CWנ֦|,Ny"į)-)JC,Z91*)T* L씈.n˔d?z-/v 3#R%gH<}>G % 4+~:T6na}F, %*o[7:r̄Rs$g*mf-d9@B;E5.miOQX ,CH˜(*oS[lhc⋛ӗfsE~lJ^5VNwbYi[eݗTE+*6@%Uq@%)b3*M!( J`̇EeJ4xLTsХ=U8 LΕJT9am`6! !FܠiUuf 5vEqM\Mэ|kыs3W:vEW],0Ue0.F!cPk$U@ )ʐɋ{QhkSF)C@afvBZ&T}9eVJJJT ;dGB$/7ҡ4Y`IvR=R*%<@SV,-*kZ^$f,:!%݀kfRQ~Ksp-RH`ɉI+37D46֬\i.!}=,cSkdk#ki]i.G.*X} g͵yup 7P\ˠ wUޫc;;Ft=z(UWwJ%a ]aF䭘sL5PzN6I<k= IDATer`pL=,2ec }[],IWOQ[OŦޏILʈ(75שU">*"п˿^b86fhV)XtyːSf޸r6u搕_vAj/2;\'jђjA:ʢk?~B(ay=}]}t|ΨuLs>+ŪXB H J6gKkDt"(.pl݃Fj8 [ryufUԾyʷ7Y|l|B 7_۰rDWy[溧ce[I2EnvC ]Oꟷ^ųBD)&/r=-􉸈q?*`,2p!(@P,DKqxKQ,(c~H=quO.R{DaXA+tM|ӣReiœEbXdqU ,KPۙx89yh:9-Z'lCl3jѫ̌ݹnz@ub:Gxy,QZT eXVE^(hLgV{Z'jPFyb^\73. cc>~s-,(e N Eqhia?")="PH6)á-!ݫ5p֧آ^y;!LμGup$yDDM&6{" (33q7)V?yt '+ RY*-LIj@ 4 ڠ6){w 3P NƤH~|uʯI,}هi/Ʀe^?Zu8:gɁW/.iBey,8_=e^guH=R\F|fY#zN9ZPwQWCQrӯ.^5V?ŝz`&02u~7ff@ |a| m .,.M Y@=?NˢזҪѻt˰,BJrtCiAu\]Wue0'zLY򣘸,)'Oi LSyl9z=1ɑΌ7ֱcCS=I\ "xXOЎDi=׷7'(M;ę}]_~k@# rk"{xRн K@="Ц!0,BZ^JӟXYV?hF &|\2;7rr+[o;1EQz"/Oo>_-=3Zƪ IJaJѨMGoT)ty/<Hc#md2r;Z?Oٰ1֤|T6ʽ=|,DuN?k<4MKr\.%%8~h.nF:fَ0w\WRR{R7^cT;#;Ӟ(DΈnwy_`c 餚mb|ӊ#վa0T@@`vO jf,oѬ"'71B4E<0'%Q|}Cc3=1M} }z0C#0W,Ӏ%{.Ihe}kˊ% \byJIW,+Vיvb{?osߊ؏(1)NUrJAvY%9pZ@»kuޣ U Q \`یab@ ΰGGQAŏ~t~N>NZlvtݲr\(:KO'#cN'z:3D sU]lmm ttt|>y|RW,ݻa90X4l7L3XxoiߵN\; ؄9fN@ ῢ>n]Ksl>d#OAciMp90f[it&-4bcisxl@Q,bYXYosr ar9Ƙx<.+\.aE}7 :nCc? &|(yo7)[U$7nKhmG7rme4BD@(ͥ?P<֊)M6:P 󍍌rEYYYD*W(4)׳2XY04ǀmbn,`T4#ߡwBD@lGU(6T*̒B~ivqzSlPGHQP0i:M)P#<|Zi5_<>2~'leebݬ s .]3X3RhvvvrJiS(k7*&CQ0GWM JO 骕(dQ&^oO]hʃA[;cw+d 9| *L[@2 K)iaLLNfq.!i`EN]N~a,1@jn#_T*y| dZJFz/( c\^^`#c3J#@@xcf$gkqTz3[DZJ%/F,x>ní|<14{Zq! *but ~V[(uZ!bzJa#jP(lRj*(**ZW/6T}ؓJ囊[Ǔvmzd5B#jkۯ.\Yjd,c˸[8ќ(=ud7 |gȪ6_޺"_4.PLIqGaѣg=@0ycOK4 <ؒ7nٓo&|ՅM%Кk 'E>ۃ4**'QQfx0k߾Ǡz6+ i"lU_fԙ"ysc tUBpq7.yd1TzߞϧXXRjSO׀3dif1ل͗֌j?afM#P0eJfqŨF jnnbnnRRZNӕq(,*),*3x?ϓ_=Kʂ[Z\~ m6g~9l&K7|_z{p6[PR!"&6J 7R~GHT.l"6ýQOd_}ńD7.D-&ϊ6ošvYרBTPE)M.*c&BZ^(MNNMII@!4HI$߻(޴1U8S׿GKUZ/qut[y:ip>Lٛ;cۚQe/oܽbI6'.IW .XoUy ^Ns(8`♥y f]zQAf8N]?tM.@Piv}2u jө>A">sq}yu_<+Dny>|\}n%ٍJ:D |tB̒_ ;~³kN=Mq??mWk9铳ni@OZc gyc.Ul_Õ#WDqAW*vM1?[Ә僴6ߧ)buWb@::zp2od,#K#+#]̦a]|me(Ly27p4KĊB`ƘQ+TKS2a쌰J8:I/`Y ڴ 4]{+*[¿]i7bqY@q*܌ 0MZ3`ٶu7T{JApˈM|NTtcGȢϓmLqŰXD\ioQ- HWG׃m#Wf0ǧF&ff_; .eiVE3lT1j؃9ib- * ǵ->Oh˫3*))C`dl͹s5f=fbM%rMM(%b uON/M$2Y*H{Rv TͨP//yc݄b5|)yto V cN 2>RKtmt{lxoD,9uf96YM 0@jwc#E!ʂ1~!"bhBQ,6VP1bPam@)M+"+q7@oZ= E(UNLLq}Cx.& /.lȳlQPeK`7691 $㨥("~hg;3"NؔeV ŒZzs̃3~n<ʊVt5=|(@[~ʎϩ :r^[:rZ656?ER***4B 4===]R"S`$1rУdJI$;OW ĶnvOΔT+E@zfvB^[v4:Ϛ t1mpB ][ҥaNqaP;Nq⣏Q'-Y϶oyq4M|zRrc62z3]Z>ŽCAy4R,BΛco^EFNNmB55Y暴B 31 đBQH]H.yup 7xYŕ M0g(ͳzi.G.*X} gT4zsBf\Yӵq_HjY$*O|_)k PKaIH{$M׃8!Q* W(`!#`JY ,FPbFW}T:Ma&BbA:.Dh:ueԴIjh`hwr @ 6JB]D}9PDݾB};R Ѷ&#)EѶݧNQ~Mm)Joc #IZue԰RԲP@ ({7,bؗ _Eke ÿdxB.\Xpp,bzUlq9N Ghrkd-!"P@ 6ʿb ڑc!huV*1Ѫjj)5Y{El IDATvKEڦvHjGJ FWT~Ϊ^kjw[j^@J b4JգjRiW`QD@ 6{vW|4V4@ Eݨ  qj$D@ 6{j/㪽׊Q00KFJ o%TjEoY>1F0FaHӨvPaOWp ~9յZڬ5@pEk7K`HrR/M=yWf삺 1gl oK^zpЕK90Q4>ξR!u W1YiP]ꉩPc7Q>dJnO$CPN[N.snԼMG/P%_cuװ[ni'Td=ϋ7\Q(˥¬&jR3#SjqcXU [c;pWܶK{%=ɾrg^@@Q&yG׌ j2,bsgxɛݵ_]deAb=t4Ş=Z{"_c0@Q!K/fݗԝq~"Sh]="k!+e*ɛ;9rX3|Ήt]&hc(JSzWZah'Zߪ)3P@)6\.ˤJ=Hh"%>LTo#=e^ PʤGyO&d8Wgr;7w4|,+(}# -A9Ɲ̌g #NT@g6(\sq[ҽcli`{KK9 0҄ӏ"4J0ԜkZ h*{0_*+++5@4`R_zSP)P`XbS;goQ'z (6ꆓ[ryufUԾy |FOhc*bӉ9ם= 1eޜ~oA^]mQދ&6 c;pb/$KsiB5G1GR1:(4G`T:_E&5l)*//(PERλlnš0 D]Z6';he\NCN}1UP@ lfbSC*K sޤu>H %v,\|SߵDUsfH-xY&śqڔXhiV4W}Kǘ'{%eK26 hn 4Z{GO cOw#^'7|V+J)J"¿w1iZE+U*B!W(drMZᣂce ^cO^] *3j9 jLYc/֎&ٽ-FYO)Lշ Q5V4ō4:uޤ-cU*RT(2L*J$r2dϒ?J V5 DY7v&ON?Uͫ\t\GP f70Uqk e@At>uϭk̥ 5[D 5ܬ3E6ϘcT. s{s{Rc¿Gy =LU ƦfVy _Oٷ1olMC}A댫ovܛ(FB.j`okG*@ |F sqnmT^4\xvXˁSܛ5v)So΀>.-B>p:opu~3G'pPV.>.^}z^s.XYV&)j ,q}\<|zSH(_8H@`V3בEpnk~=Kv×WG*T5J2sFo)ܿGM4hљLijBtMHxf1J oF^NE2q t7k֧ܦ4 Nۍ,%$_.G^Ǧ6l{[=:̼q+:?Q)~I_c=:1NkmIF-}sfz(v}'-pڠGZX㴛$ʜ1n LMrmMz/>{i>KN^|C0ԼA'д r>} z+'HOՃVjG,[O$wK_saB$>3s_2w3km:.Xyb2n^%a(~WoRo$A=+UY0C:==^G_Ν]6aST`}!0=#ʲ,pÍcZ˂5GַZJ B6}YlLݭ]#vt]iSfY=ZbBm$~),^!ui]gfP0WRW mcaemwe.uK]k(vi)k?,tٷX7Q^3{v wL_Y5`ka׬YzFttX~.b{FL':W}Xj?ous1NY/M>A #E pk._:ʍazx7ŌD !УTJ|{Q_LR#~!QJ!~#h<" O_gssskۼmm t|/\ nMGl=|i @.sƆvv =8ʥTf5[s谯يYLn Ԝ>qUjvߞb@:h?? q򹇓cI[ /}ފed}PeY+gef!~RHcuװ[ni'Td=ϋ7\?DcZ}ju(ڶOq{,Be~ii:`dXi2\Tv!#>eefT~>-ifq^5ƒy ܙ|E`ow-`m5Y!{yjYDXd-v~ {gz"kHu2 PzeTŋm"Y%u'eٸy>~01ZU$ovl͎y}Zy8^x*CYwf,y9ݛً"[,P٩e]en se89Z,RB^1Rͅ!('Uk~ڶ}v6g q6chC(vM?x_ yע=Dzh܇7,zl/w733}/;y=7p*w766)j Gnz.ӄfr]ǵ;.;vȦ8M]pn;1.ŚW7Vyuk'>Sneor6:=zFw`2N@ `X,z N &Y:؝km>϶X♹e-Wrt$ʮ4Z0 vjjkcU|ڬlԸW9yޖmtj~F>8bwV\+ ϩVdI@k]&/r=-uk5X9+Al@ |భyzT,-&ya"%ڱp+bZOn~IV+Z ㏯72`FniYl[͸AAlZqROK8}ePߺޡԝWf2 Gۃf^&D 1K6 (|ݚ+IB@ʕ*W66l\D=@t0 (` aw (Q7])pk4 "2&1 C878.Z3퓙s۴صN]V8iR{6j0r+Ev!][6-}WZYJʟqàr2nU }`Ŵo@"]8 bs{*NbC3sѽ8`h@؋%4[E%3Z_ 9Ih!$%H_P X'@!!.&@ "KEtd""!'9Ard,|XnϾ8Y) ~v;TL5mx'L,vuӱ}ow=japBLgFAn8a` '%?TZ!\.Qu: BBqBI;.H_L@q*Œ+Aͨa# ʙo/EMa/:)`0upD:/~F2Dt37#0$7BdI D;DĜ8cQ:cFZ~U\Zţ9Qi^UvBfLlkg܁}gܿfeF7vo|tsT9.r{ ",K˻7ڬs IDAT/<ܚH|TAo- lNj(KnT 5$c.8zć~'UXdIbPR1@„ad#0pDV re;čL L+UB‡boRY 0:Z(^ :m%d1jٲ3G3 ѣQq# a f7i,uݶyu+2Ⱟ,XrM+m݂w }J䅢ߍ9S.~Ft}/9_iȿ]!7?޲]5;Կt;JeE~fgd)wlaǝWȂzgDAPRf)^WVpTy2L6E,H2;Ė8.P>qCI"y;=Vp]a12>5hl>>`DML04HPv6䁅u;@$9WXD9B@GcQGi)V\9B K*+6N 7wb{=vjۨwZNOULȂ ^g|+&SgL:5uKy|?ث]v'N۪,~oz:TP`]Sb5]ׯޔed{krωb=Ev8Z-a4!ީ sc۽R*j ؠ+V3W9BxQ%C 7yG.ez!N&eMOԗ+!K.HwCc iP&`؈ gcBy#B=(VH{NmzdKD8:$.E !:2ңǒ-s=ͺ!"76{$+Y^5 5! @h~5Ly rXQn\yIFc¿ -;Ȏ0[aiނФ(1awso#ӯb1L*9d(7qN`+ueUә%Vg;&e;QP7Vepqbx-炉1 ``)j1X@[xԬYk {]4)Q?>fPSM׼z[OARXóKJfzTF*Yg8@D}DYdMishK6fNcyGPN}63oq-+b`ֽڣl۪n_[[dEv2"חS.44=Ҟ>8ޚkתqD5H@eJ$ A HbOw:/ /)] IN 2keprO>l1U T ټYm%I yGMT6kp20wAMRs\P)pyN=jn*5QjjƵҏϭX=Ϝ~e˖p׿SveӢE OKsI%o {ҷ+,G^te))ᅏ nttKGŢ%̭g_1%o \w?.ohO;٥E_ؼuwYtc,īz2'b !(:*2jſ\بO2<\@hM<  sAؠE>D)bmZmʘ E7͂!.?; "wN̲sEIjH&p(Kc9pJ`NݻO˗ժP:+5?+fFߟ]۲}o~S[?O9U>N}:g>1yD#w*^6a-3^/7;/ޣO눣T:vظk*N8Y^.7nrm.oTxw[wk~Yٺzv43%7ڲͿ# _ܤr; ,R@$:ʻL& -m5)*KXOﳠc7t}}H[.ɒSE'ݣ}5 #LjDLߐEWyPQeq ~jy/'j'CO:s~Ny{+On\!SO|YM (jW}릏c+ Ī6hs9wxYfwAu?ڸ~m#_VV4 ?\wf׎wr|cL|ާUvNVv^L]_"ߊ1rs=k{kK>?[fed3w_XY^RоeVw˨{N(^}tiqҵ3/-wIdd_5|Pb=%79I ޼aNVzD'4j}^ g髃Nk(+;'ݮ|pGC[_ KF#!3cITЈŬ?ϝ=ؖvdZ!qX”dz|-n .Rϝ D-#O^uwIL%qs[&D  >qX "Vk ruXQ%΅'>=/\BҥO?}3ko\㋋hswvIJ:i~f#o}y|Iqm~XHk~Enw>e(]7_[Aç!.{lIxμoڃwv㰙 Mnpt<&3p&oHw "'_EK01TLd=dc[D[?9|Y@P}X׭3I;15P&I rPV.O~{9UjۣLc.f4*q52COG>z@ WaAl~ ךfaLv gI3ґEvZF-o}2}Խq{ƿtiQYرƖWM_>yrss_4c;Š2^7K|y{ٝhOqѼū倧F=F۲v[9 vRk5"X[ ױ.MUoKZ-_5|W>(5S=egeFU= @ -=Ta 9{pI)j\~}e=`㽔0*ÜH<U6FF'OU8:BaPGWԋD mQ"$@'@M$z=EvZZۏ+]?ul٪yv_r~0L6zte֭-|jwX{_pcߘ8ѯw'~܂5jy0lmZV7;KRo۬p[,Bd4c%UaRld?{+zzA=ތkiMMQ%(d:dA nE3{ɭ/zwI IHd z` UQU 'za_Խ:L"ukח'B3a9K:ĿϟF~_]\ګz4Y!e/V.M}w6_ޝw2d˭zVMv|Ŝ{k.+j .i'HQM7o'"sE c0@Fd==)Y/HQzb'4&&\\N@Y).0|796JZDE968Q@FUnyW|A$Ulcȸǘ[Eא r"7 =6Ya1D"28jȑqTx".hєcKȌ3Da*ғ6MQ-*#dg) /3ѧm3~/-XzL%sG~:~C4-spŇ_Z g[=K8lOsy~`l[=AUkFMbf=/.g_8^8hԔ֮["%FvZV׿5+w}H۹/ R.u|bF-i^>[Zg@jnຮwkd[3bpͽfhC>OѰUںG^wcv@FVSzm S=Zww:m seWǡPw}T{:d@ʹOP4p>/Tm}A]3=1-ש]:jNc=6ẦG\,^[kУ(,NQm,WEBZ Ww7F'K$r\74R~`K4ARv)C?H;.y3مeu_c^ywxJL8eDŽ.eH8ylr>9NC=)RD9"GMGUµ;/튠}x$F1wxip:݂6l&QVzYǴE$VKuf#(YXA.| Sq2W~,S\/$@L2B`YrEA)[&D(z:>ɥR$VD{w  :qgOn]h;V˓*An*zƓD;I#Kى?,|kS:D˚UX]f'3i۱k෭V.zqҤ>'lԠa ";~x-}=a뎾wh\|${UER;!rd9P͠]S8' MމJPiU3 b(H%WkP)Ž@qJm+w d`o$w15i%^Ŏ Kɜz'm%Pu"<] jzi? I}':6Ӥl!=/JL,Ou>^g5oE?Z 7ىΚԷaڶEvߵxmg۾>{@hTtD(1 kКr. >{Jhd&\#[۽ B]jvU^{# A+BvVώjGtBV'"tUE'ELC/TD|SWZcJ0;qҽJ5*F-ɒϢ:c NVWϬŷ+?veJ߮.^N(8u'3 Pզ-λEϯnoƎo.Ѳ~NVvNV]Nj엛9y>e#;$ uVl\v_Mvr;*֍q[:]zkmA‡ l?T HxR䗸Vc$PrĹiѺyEqu"~պJFH2^NST,JP‚qwbi$R>Х qf>QZYL>\pav6Rm7Y?|gWWN]Xj6-> |:EYKJ;*NuY޵wo.N۶;Ev( eIJ s**-CgB'#ɤ`Pj>%4 Z2dH 8s ?QҟJWWɫwNfGa .Y:NRdk~Ԕd@ܯcd|KMH;KcNۑ{5~5+NeY2+,XqE6o#V˺n8rʆX۹ޤ?N4ㇻ7;.(;AK~E_ۣeVvgbM\DFDX0p[PAYgR}$/"zJP@\rZsA.D{GXX;)[fSyx< I%I!W$({T0&2~b8ܘX33GDJJm/[y%e./)}{q,^"sr]dRJ^5E n2oyMAϾf[|5{ W\dE(J K!JE@h=uΐ KPh'R#@Irvoe!$)`0eh'@ SE`9!IɐqA,zj%TVOMrȍ9R(VfMw78BťQZ ˬҨV?>f݇tѣn-^ۜ o)9ڟ)2SoRRde➭{p`Ydv~eyL7"/(,{M8Kp)KaeML שFĪס[\eGe9D2% )!WMEdES͈PJʒU"JBE12gߓN@RG+9>ATmsLI鍲F !~BH\kT?hmF2+T"hƪTHͬھaŢkԫh,S\x9*c]%$c)jfo'8g:F{EYd9=ni$'v.Rr%esnFpRHR.6$6"ގlFռVC"$X r۳sqAC/Gb!=dK%21]YN#|+ f/ ^r03CZeTo9"HIwp"DN} hڶ-ZtjR9Bʹ'_0b#۫uf*e?}*?Oqfc?VC۹J6fo+|c\sEYd9Rܫ{/pz?]yً%텛[Q{~qxk(ÄVKR< IN*G \W|%JY?>A9sZp<Yl$5ȝv)iNʃp/ 8 i}z<{GݚUj\+㚳]{vƵҏϭX=Ϝ~e˖') ν내Y-v{x;Zj\ ^v߲y}*......Sn@7"`688e$u"'hV SI@;,̐|X"a}:D׈t-lU9}ZQr.Z8!0g@R{GP(1u) =Lg*ΐ9ralL9\Ɇ(I6njX L/|9szv>w/_VBIԚ%+W,vmˮ__z۪ǥa9#:.ٷ^׿S oi{\1KӖ^YO*ͪln9Oς>΂^{bU3e|G7um8iܦN\Wƪ=+NַkmȤUrEr*G G2hR5g(uHDI%"P Kך|+l-ֵq 5qjQiCм'AH{-5g2FGFyT7!BByy (66I᠜zQ!z2A!6T! ﺃ\* [f9eL0CD`F 'sq*弔Ck&)XoE6nPvz͛72lhUVnצôFcd" #彳^T;iޫ/ŘQ3dIceksgθyݷn;F2pAj6'sCv=*`kT=zM7I& 8w'\@D>nBjY"] P6 rT@I W@Z$ ].r>$5Q`V?Ig4!r)zy Dk](Õds] 4@H@z-ӵrt9 ׄ(5n|$q58MLJ=Z㧘x 9g 2Ĥ*;sl'|#߶ovײs/n\6BŎΕJtWxd=1mȘn㔔@ZZt,G9W=6+}ts1/_v̇F֗GhCxZ2&)tzʦYݣDljina3CG?cYQdޠJaJ DYsͲO'f+dIF #$D9aDoudn60/@ q/qZ֠ySjQf͚}޽ųf잦VGR~fM{Cė4K uo=U& ۝5%/*L{:贶s q3/-wIdd͞$se3b\Ѣ3@}dGrۡzJ uor⃓нyÜzNn3?pB윬֧z͎A8yf0J(+$WM^oJ^ Z]W,: ),@M"GIݧ,Ԧb hG*4 :Ivck#n3]ځ]Wi.}F|șUcۦ@(n/ʼnljhdJHXdMTOɏW? ]3֥k#;,7>ZڬS0 Tя˗7m%/.B.+za3{͛Jωo/֯cӓT^|y.̞uS/9&Si#qͳZ+OLqZ޲ Ӟy;:ANG_xv]cDJ?﵆ uC:u$a -Two5UCy}Ik/T+r zJre;LMHHP[#A~wҥi>9y -m"!PpHV/k ^\L!]G'ߌX;'M]J];]x$i?c7 -㖲pBZUz:rj.iǟ~?_;}2YIeVKgog]Ԧ1>r?Nռ4bjoK/\r429{C5Ta|DCE0!Ȃ#{mѦPR%o:fx bDC ,JHOr6*B+ 6{9TGF Z!]T>Ĝ's"czr8psza2DQkV&+<:9N٠yVgo{>-L2e<_Οm6'8tVĝ*;_+6{כcݿoiŷ# c(@?p(ސOT:b$zO;!.%Bu /Rad/=_/C1_ 2Q$-!"?>&=xU:N $qt4r%spM(}>3:+:QzP $ăQT[3,/W e{# ;7 Nqh?Fl)khNj,Q[k7,Ry7xO0 IrH*Wp|n /-oxy !GfNM;ĖVMv|Ŝ Db Q[呵1S2h5?H(~DS2WuEBI*5,A|k @iׇ5F+i]WMgd E;!4a#|МK.ℾ \0_l5;G< $ ] WdU+^{Fp9qު>9M.$Jr)sUOxYiut*9Y_|?6o Tsj|5M/>?#HzV~$ed^>Ww1qШ)?]xC_`){$b97Fɫ:%Kʑxj>ݳs\@+"A+cU!mD1 ?Ykj 6Awq%q"EK8BAQvjs+XDmRu0G TSHӷ@)€nؤfdr- *͡@Aɗ8EvXF׵ȧ~)׺{԰wdiSo >].? 3i} AZOx/-ש]:jNc=6ẦiWwX[:]uwCڹ~u;Pb;Ԧ}K/Ǣ̪Wغ^qqT=F[O8GsoO EbIe?SpM2-w!%HnVbsh _΄4Й ( /OG 0qPBJz-aA37Ŋ%tDXsN}3jA$1nGPkũc*Y X55ȪCrHC/ECl8eʈJ┌ldytfk%NeM"'>L{tj",}G>)ܛ2Eo>S#FyOj[ZC!=no;8AJܥ;]BТ/i zjus 8֦C !KP30 c:(yUEc2OhPRoNgIF&'HAƔM)agLT]E>4^ ]Ȍ:ATpz8";Pwx<Cc/8ި{8œnM%\ S%0`M(C l*`^d+WYGbT}]mU5֊.Ղc.W)ɤ}}y!ROU; 1ZX*" >BWBpąL81=Џ6*yVAReBkشC .5LsBu@贁L.޳+rw+oF_Xy6[j],C6C<ҵ;$8}]J&\R =eV<$aG? S4O8ϴq B:LA(&@!QkcE'ߜo Is&DVy$J&׽(b#&lR-S5R Sh?",W UYSrE@l 7F TThU([38pO<&T({$D,g"|dܟ%@Ъ.U$漖HN= S m`d#n$ DŽVK#l!%j}+YdIE"uc!҉ cR0$4aq F'd {(hm@%~d0@D&ZZ 17A 1AATdc`iR&ZU N&1F+n{6—]٩= c'"Yh=/ EYdGFq<JnQF QR4U 5 }}SHbŬG:=}#w>t=T8{ .Ӣ>7OTV/*l))8d@,7Cp^J(^Coe)]6vrԐPK"$ ] p &ddK`\!qq?DYdG"}s|-m(l RHMut7DD-WJM[eAOp@`J=m톒g h5%7RUuȲq kA!iti'XÈ7>WˋbhYdm/hңSHTӏ!G[ropScǎuk((wvP/5L@2՛Btbd`lIDC;k=J$=ʃ([HxPW6! E=_+]|DwsWS;.HXXK(=F`\"oIDAT;Z7A|0&=N4pI q*\L|֊Kf)E#DPƹk+V^tɥ+w;Ogώ`Jd7q1~Ofn~`]>'M>kF#}h?w\|"騰k4 =oA焜āI]5#ߗ SV=xP@W'F3J~zM~ܑdN:r(#VӸ7F^3Uh;(jhk]*S١ggĉ@<N͛hذq^fΞ}ݠֽ+ѽ j˺|}Iq4G` p"4iegegt6y[>҂{,ѭAvNV07>23Tݒh'(s]ɄZzR0⃬RA1 B Rñ_+Jbغ"e/Ϡ0dP |!骴&1gv s ᖟ*uVZ +;v޼oo8㓙 ;na kJJvKJͲ݆ڱV}DؾoV3tGGW]ҧ_Ͼ573ٰ|g|ȾT9q-ҚE~shEn̦\%輈B IbObh$yXp rX4N\i 4m,} Ie~+*z["5b<9E9(}-5:6;f~d9@}jL۫W=[rdeVMX 8FPQ($T .4rt@)hbJ}WXT|6y'OR^ "C'nEB@%1x<(GXGu;N>&D41IZH8Y=z1wL볏0xzT t_8r/8K/~f%sGr'W_~i|*Yo8i>ɛVZ1i#KryMEH[wF=3@kH[KJPzH7PP+fLr8W?[`ͮs'ZXظ0"08*s/@fvS,`| ''8Q;wi޾Dw* rg\xxܽ-ᅫ^M,/p / `')(yIÁ+S{㦿<ιawQSy~ѲeGq8 kx<^VZj֮UfGUj\dPalH;^7 [lмUVgishKvK_vSՖy %mbtotTc/ݜh M BJ4g?a9W%orƩΊHm~M9\׵S ]|g@ΙOLqȾM|K tqTpjf]n ]jjt*W5?J=58z2/`u3.w&`rM2/?۳ӐU=VC"Y"!L|#:w.,fCwy(J" I%dnrqPIĴБ ry<$=L2y*(Fʵ2 \9Q'4#$Nelvɣfe9qI+HǨ1d#d m[+aFi$?'!$ .++[aƣ%ޟvƽig%1c_:X5V1My"r&s׌wM,;/kdlW_VQ`SS[Gf:gxYi+D"{gU?󵌶x/@W 0nVpSӯ~kuwW]R&ϻ!C8Q$ Rz@huh'崀oyJ2E6yn$낡ܬFOի#EѨ>4ggQv'JV6HJ;$u(C榇jp#9^+h 1)F)bY[ 4r:>v܄'cI)'!N5ib\6 ),x3\L( >bPv}igW2}#V'&o>ld߂mVuJm~]yv8K^1z5uROT2NWݫPvsoW~Rխ[iN}Qkwe 5MnEv8(طQe/'4+1t{K`CIvK"Ev1v4d 5[=/3PmZ'G4 YS-O9fwT̑y- JcA.Ae1D.y*1HRX1 EH*jAt;TA4W>܍VnCIM9`oЊ+jPad ?0Rb\'*Tʩ4λ^wYNeɒXj'lu,Sr l(oQIP</++s*Ww={W.*hF)gRF)K,%/:k;ZH${ VxW}3 -JJ#pB")iDHE9cM.L)2N^c"8'WTE*NѬwᑑPvvG Pb^b(D hm)C'vG .PuQTI)a# &~;$9w2Z8Cy= [ZFH\1Ġd},t9_αnvM32/"?s5%(Թm/Ba0!n (\Qo}n0i}.s*,K`nMFDjoEHv.'.A+dqB"5ة 9sqӇtqYL@b15c(ʓNDf(#oK@D~@sWX(DF(|022I1 콢cҡ<'(:lJȤZjժU}/7&u}ڞb-7Fv"Ƣ()&Uї F_P| RH$E-, `FU3! 6z܇]OЖ֩g2" HK&%0 R'XWFXPSSv#Fem$V57[<.FԄO=9L&')Sr,MrCgs+< I -qG s۴G%8Oxh "4'c1ݻ9G_Ϡ8$J,a l)2KMMMIIxYSԕ)` c)8GSk?0 JJ۷x_q42ERR +޽=eY23m۾M~DgomժU'VɬZZZc?U9wJ@JK˚ԫ Nd%L J,b0eҳD_Դp W6IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/figures/newchangeset.png0000644000000000000000000002234411534217015021603 0ustar00rootrootPNG  IHDRibKGDC pHYs+ IDATx[Ź7QK^ JYtɲ8fe"Bb$"Xd@9V")D\9t_gɾ}gjFCT|D 0 4#°TQ*>Z  H'< S  Ia2)>̇ː m(Ԍ'*`PH'bBIϭT0x( 7㹥_DZ^F0Wqb9\7W!"LSR"HߪcP1eTp z`PRJʼn@'ތ]KE˳)}^{(w)zAAQRq84,N%UU:=RU|hT|RR"ayqsHE@'QUb*cSLJT{~?]{JS-x~-M*pуr.Q>8&0B Ce aF7E4K Ib":RT#U/s]~Ӭ2v y*dϟ@*f?D6ൠ-Pe E*"IKN$QWw c2=ywzlP;đ냦 e Y5p#FLV33%i Jˡ=`=m$W>2HEDIjEiDSc Q|2[|W}SOEgr[ELFD#HvzU48H'M @ |RR"VawHE@'E.E?((Uqҳ*|XTT|RRm_*/-J瓢@*q J瓢@*?|GVřdR tsl]PDU!^DhUZ.U`p"U<*Tky評*pRqqtgTPR: (ǞszJ'uRwNRnI{ssڔyRPR+:)=1IM@*GN[U&}]]%\y2 3u}Rtܗ/M7:S+ l!G0[sh*,'+%᳽T9e~-=bm>񉡑ٞHd4T¢=U;PrvHܙ'[.s=?O:%O]̾u%rtЩ7眨L?A%( \:-g,p +mԐF#4gLT)fdel&<4swwL 5S}*4zêB k!5 iJ\We*n,uLI&I`0SΦ /|euHhR1y`m(kOꧤ㓞(]%W#*Vx5Y*jjxOP T&B뚘=z5#.3rY4 >HL3 IŅԥkB*;s<Һ [~oIvaa8 NAњQg)F*\ VPR6*Ӛ*RR7eqS*d'Dm"Z{zJcUH1`jwiyUXY ]*ʻCOwTJC4jA󧷪u7Q*d4n)bӌ@T"~⪖pSG[f:A 54*cƛ v.g _eo~wv<)v^sƿi)y[.0 TʢLc s<[@dW?v L+ZnWȠzR1Y|T*<5rZ[bb!'~E Q2G_;[ؔDqiFf _PhmXD4I*lSHܕYf\?<NT?㨂WPR[ AO2Q2_d m)L*uiɭnUE<b.###QPtIY?O%GtcZ"s&fKbN0<Ȉle1R`#=JEtĒIE vO6ݐ &"[-LkRQ-[5M+L' ?zUьU5ѳ0L(5!/5kimKGK/?{Wo$GtJqՇx$(pj_%sN#f%ͷk;eY79eS=N(QqV7 RW¦ߞG*adĬ9S8WjD6jQ–z9sfkŕifXJE112o$\Q[yӇ Rq\]&e?Cb}Wl^aXZ<٤ ~Wa:YeXv" (`TPRqtE:H@*>lE/.@*(BltdT@*@"Ǟ$d_hs.ڪ([T v{@*N~^n1Rz-[A{Sr7a\A *x;1;fs;TDF7sms+7o/nvFsRN?Iu/^|;NGfߺ9:Ȕr6/+ 67vrnyhUwNu#{wHSDd%vѬTPksM*J g޼lH/Ʃu*g=em']Z\\|oLOoٺmϓג:>4swϳ;JPTՆ)l轵I %eJdXR CZ{V&RړQÈg.FמS*N##J*biڼp{k{ȱ&:TLX$_nKE?$CX&(liLOJ6^g"uiciʒvFz/'v fg(Kp3%O*.ץR c$ƄttJti݆JlGɉcK;v޿w/'2a4V(]-)rLqu&J)OFڠ޸hK)姂Jf+xmlup=9!V*XEfQtwTGrN6^UE+8oܵ1:d-x272\sqw*sgB_45>έb|!4.ŀKJ Zjʱ=70k̭1{ZF?jP*:7[nwrRfE*,*%\H177G֬#yݏ<^$NN3kDҷD gD*yiqyyya70yҥRQ@7ɋT\wu\ƿ]Rki#0)zF.(~]Rk uT:u[o\rC u  DϤ?^JoUU HP*Krgbii'w+BU1??O 'T u\'ŋ{/lڴW_W!OTH!@\]n/lT@>TjoQI3ϰRēzcU>Owu%ϥ^裏.vT@>VŪt*"XL׿&GIHNG|o~2+  <'_-~"'WZ}k2eRz$<\.~ib||*`/A*@oTD U(6HK/^}Ir%H v\-&G ?٩SRq1 l!N` Tȝvq7L5k&ꘜn[[yRaohF扝prXo3I]<]~Ra:)Z;G?Z̾u%rtFf1vnD-7*[>-#llo6CH{cw*2MR{kOVkjB+66K*GU͑2@yHET]ve7o~ЇtΟX\\|oLOoٺmϓג:>4sw{9*g7܎{Q%Ox!#yРSK6 oVgU䎿=JN']ڱ HWih,m ٌFJꭗ"*NiǤ4ِltUAoژ^; /M8'r4$skk7{T6w/U#Nzoq駱*X~Q2TYf׮]TЩ㾝\ooZ9}ttJ{Rh\JQe'ơ~*9Vjg3DNSxʧBFNzcJ= 1:QLRI|+WnQ*7N*̪ԫDVMp^دs/&zK'˚t)۱ ͼ~x7 :%O= SѪ0$3nqR%zLb8>M&w*mj}PoUoPA[A*oUXDh&l}^XBְb=m 8lLH(M|(9:S+ "\Ejo"2[,l4GBؐFfiJű"<'V8g&6+f14|d#~J/<YU>XlOKVE̴6~ͣʫ7:%O= hͫ*\`L cJ="M:vfD+XHSXgT[?m'h~Y =z5hkvi{4c2纃捹6j)1WȂIl#¼2e#} foCs s,e>M6 _k} Gc1%2zDB Sri$WDT&ۥxڿN3*$kwU.MDMGc[E]EvL=TuqJƹZE0 (m Ɏe`.]ucIuD.~xr˪O o )YR>h@~gyyݏ<^nVAtJz ?kd?*|6!3!ɓ.SH d .lxRՃ*R bЁTR@ 0@*HBIAHH R@R H THR Hx<TR@ݖ _{ Rz$-=1IRAMrC&6緐ĥUX]]-:(R!$\͇4؍Zo/S}&{Pw %e;ʛG0Updn/7 H#R/a\xYUNڌgҬ3.Nw˧)ɠrTǂR!mi~"}}J`b?yV6o?-+ߘ޲u۞'%Gt:}h;Hm]U*d0.z#nomRlY6rG{/vR7b(Yeٚk[qwg*,(U, J16"7aG[Ռ{nkHҚT2>MZm7>Wtq) pޤm[j;oM*H&4<Һ [~oIvaa1RBfh-m0O8PyeBYR)hBLoW]S֓k^*lz#(K DR1ՖSo<0|@IK*|R\i=]z"ͫz .v,}JMyXfͮ]tSx};n޴rVf cCou%džU;v|٪}FD'uՕM} VXN)*TLE6HzE)~'Ƌ{ĝ\܃d +{a-BOaJim[J-+ġ7Ft@䩧0RV=b@VR+j0moݝW([U54 yxojRaj5E uJ*Nq׌4I!Γz3v2B*G7&4s"-T\L[T @ o|oGGZ)TrX4Uѓ Os{FJ6]/Z`#KjtO/d2f67J*:eUO"'Z\KSnUyȃU3M_`hgNSOZAP 12 nQhUTtTIom Γ$nr)K9ϧC+Vx26k6=nC#Sf=%JQZeJoU/e}TK<IhǍ7b> Qo)T)Xv4nð6)y@*8Oܠ|C-5FE]a%ݎmBb|\J%5 ׶of<(e}F U&ݪEJ_o{j*'ۜaN]ݵ{m7Xb&O/{`į2N?yraiIf0Z[ѹ5_{tC*gvC']  ~mRL~h?]*R&UЯ= `T < hbY" H?T / TH{k|@ 0'x$$ `T }e e8a?vvc]~6/QUjeEEFFfF_7/XjS( l}crm3?N. BH6V ܘ#\;?=8; BHݘ#ptW#CPEM3d;7ym}R9D JXvL;٭;vJm(*E#wƧ^~]*g J1چtm9 Jl}s͜C8;2hFm^hiΝn PKޘ>?mQ~"nJPK4hp+3("?˸.궠~^܍yn};ߐ! `27MZ87@6{rpbk^- &Si?/iodmy[ ,5nX .L}?|Z\UZv3.f&n)C;X dӴ]HwA ԌC1IF:Zi߽_~݆Iwroo/Xu dAyVн:Qy8] ж`Fm+Vr7G*'K ˭F-?䝌դYzvhFm3Zh̬lCBCK×[!}C9 uv@|3 xD@Wj/7_:#o9Q;+T/ڬ.Hp˪' טڀ@+Ǿ)=Jew^Zp |ȫg.Hem+DAs Dm?+Yzrh9_yڟPT,Cy{ Z"MZ7zX3Ue4^Eif4GJєXD%`FS!LOld/S5N#]7Er 2B>Yn ں~4HC6梭gc.꫄h[lm,$N6yf$|"rUȯ a9n3ĕ 3Jer e%=`f]K]^>Й.#ڢ%Q[h:v~ˉ|$䫚Q8iY.*rXA+ [,fZI4ɈP Y^nW@i{ iC[wi: - &\Y+wj6? qF:Wւ|mWST[+]Y>VSXu"<ڞ|_|q"I!lz( >^z[O6929vhH@#2>VUPLxvcF[6 _βE."Wqi2QΑFm<͹(}ʹ woemB߿gm$.h3e zA6iA\.YSn<)e%jc1|$r6&{푻+ںKsi{fB(RAQ) / $u:㿍6{ IOД}tgfU D[P̼^Gm590QxWmtϫA!D> cD[+cwgH D\C0 CZK D%w7jW4m)flz$~&J5ErU8@Қ44q3M`w`ki@MH[BshsW0ڬ aQA[xNvȑud?i8 ϐDħkgm8,qqzFH3"qA[fMnY]qkG!J1U8+S:I.؂I`XgmXyV믬tmD/›ȂGg1bc4ٓ OR!j+!D7Ll"s|Z fH"bUAʏے'4s4:@3͜nJa0m̐B Hmr96iv}^PD!VYcF_?svljC,ohInak !gRgHhe-ơP-h-m?TNBMn)hT:5"PhM1DRuDEDh0nNTiBP @4 B\ mnBPAd&D Jݚ҄hCPiSUf"P(ThCPڏSUm(*JvX+ |eV3JlІ цhk2v !2U6G5IE[w!/O JOI[}<%m=L1`_OE[eiW[guYٶ׳(9hYihT#GO?%,5)&K%`p۹|&soϋs_? 2h(u6nȃ& ShE6Lm,ֆgWi[j*{Ξ}v~~7Id|$r-i 9ה`w|d8PMXi[^q~VJk<醙|ggsD`hFzؓRr& 0ڊe%'w[/n!kFZÇj4$6Sh_#y~-=`v^M |?SB@~Ef[m\,&xSﺨ͍<&j#gV*Uؽ2"' HgVijt]<ǽ{257oT@vT|U1A]t|qD6Jغjﷺ8r@qF uyۿhS-DcPzI|H;Em477jk/Eq70>vWl=;SJQfhҲ]ٺjz !=B7Hcw jƒW'+.|tЊZ6ivl磹K {SM"vQ[}<ؤn]5m2CWR>fqOԂEmFdyO#dKgjlOӭE h!"M'flQzemc5C\Ԧ Ȗ)}1JyrExsm5叿Wwz+G_Ȩ"yΐ *$sCgw+o.gVV,, iN–`U+)}}hI= ɸZg%mDdTӕFhMj來xmlndMm і~QTRSOY& t!6D@ۛoIVOr t!:m|n&mxx'׭[[ цjm6;;o߾ד>`\&\CPXm~Ƣmii{衇$j$6 U\UGlڴ/"P(T\bhAh;qģ>jc;vL*hCPqh3 駟IvUuED K&ڪ5C]֭[Gr֯_%݊6 hԶFS\Q۩S:::޻cǎ1m(*./;CFxi BťF.}ﮭ&6TkWvQL-,]Sitmsχ~H3#P-26sw˾;}շrk2 цjmY+4 LĀG#P-Nf9Y~cpvA[EH%‹s~1HS6g!#(h l>kʼn60on͛70&퀶h>nKd|$A<muk}hQz@%E+s\#qӴI㑷ɳLݥ/&|ypMrFl@O4%Fr>l/'d"LEvRVҡECbuH(\GN=,,Rў?dzD6Ʉ4h|xeޯZp1" T )!Kr.ϵ5mdѱk.m#-h3=f|-iTą묉hJjA:ȮxXO*҉6t &[@xrEt v其0{)ؿkJiL炓{ggmWMĀ6T@"^5mR_-{<\{s  kC \]_lGd 8Fe4B:sZ[/ڔK?jۤrIA}*ϐ/vgm#2 N !8lЈ=BC3AthF+fDmҴ-|Or#^ ho9@,4su8˳Gɰ{ՁLy8SW|XEw'-%qv)rgX ?%2CS'D"!7]T{ <#~KhCmB!P_6D*uBeQ6T іE!P(ThCP BeP6 A!P(ThCPiD ʖm(*j=P+YS)k$mmJmYE)k0&VцD іEh[:uL&v>.{<*B5P:#x]t9h;i,Nݓ7+v=^ꂫn{V-ڴޏ hkfAd=s7+wfh@yi _ 8 owsek>5j~5$vַSo0V *whgEZ|~mBkm@Agor0:vŗsP-`ԭū^({)w] Y~T\塛3+(%S*_*.X]Qr3oqmw?m)6,=_F4xpZXG0RyG,?VLn{:t ؝P]ѷ6kӜ;tUuOD=_$\p̖Wmh쯈dJ,Dmۖ+(E<3>mT3uط*.{I Ex3dB4xunhnWteoxщE3'VWF>c h_]A~{J>R/kx5Sv|Hӈ6.(Ȋ8&}2C)* gm?h>qlC/ڼcgRtNhhxpu?C@pZ)v{<3J _RFoSd6ZN#hڔ5<~iodWц"BeQ{m3m_=`jDPVE۵W&?4vۡ_BPmwӟ\03<~hCP镍/|vuؕ#*?X6 j9?jtg|mӫG/O |%ﵱm(7mjIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/figures/overlayicons.png0000644000000000000000000001610111534217015021637 0ustar00rootrootPNG  IHDR'Yi<sRGBbKGD pHYshhG,ktIME8 IDATx{|Uՙsrrh(l?dhͩuB!vNhd`|δA_[igDm&`ibrbBH r/k='  `~9ޛ{[k}B8eD!p8G!~@:DX|zw}/rq&Bqq{v1ȯ8CY+\vnI(9/ HnoNm4ӽW~ui7ͨt:v~ d#. 5Iv634$ cȎ6[sQEw&"oA<TnBe[n 0K,?kjjڸ΍SI$OJ  J?t@D{>7^We5R O}. Z^K|;cKU3n]^uKh^rmȘv_ȣ7 n<sMӱyoW_N BCg$dlRf~zg/g0P @!ff^>Ӗ^zk`Dtɞ9wy>TF?D>ZpRMdO_Oߍ,AQ\^̂TιW__jN`2]'{ Ug5@t :4@Щ>a5rT qT2t  (R1@˿o2ND]ԩc h(o~wӒ(5:Ry~78r)A<~@dfGxYǻ&&u.3nzowd#ݪz$˭(x ѭ@@ ّ' @|ũ:|.YzviQ%̠f{SW5/I2ѭҿ^ٹpq XWzۯxJWgX#K&O̠T͔u'QyD'2 /I@v^OLǣ(e DEBDXJQ pu>Gۜn4WPDItMcɲiHU:[tU_ PySjGvLK+%EcoR).= |n3Z!Z 4Pŏ.v{^EQ87"d]*J"PU=-,pǡW#QT8*)A)EFLn<􋫮a F_:ܿ nEs~vdҨΚtdEQ{PD0 {}.&{EX8 0Ni4d .'EaיE`Uߔ TUCqTUPbT5?+kn{zgn߂[tvtVTe.'SEɣ*yNE=c!DeEN> 4p]}3X vE1%;Ӂk|>KۏD@¡qX\F Ru ?lʀ!0F4Gz,LI:!]wאQS)ť %wPʌ3ťN wG_~X RC4'!P.gR!S)D*s|2x=Q@L Е33IR#I$2$}^QR$JHtH,+ 4Տl<>`pfPM>X*B%ReC(ߟ`JM  @Rd"}2êmk53`XػQ=hYuB@P ( (((KJT@]**2J""  C;DIED"H,˲,+*xgO>}&0AAEI_"c̤&5̟=׈3d}9)RI(Mt\[Q\~(CD4)&PiOO`\3245FuL/b+p]'"C3}9L=s*ǣ$ KČT//Zc (# RB &h& J4&1 B1ML+/lJjun\lZݱ0 0&yM78k-^yٴL*N3)jt&JH i:݇>Lٱk>&覘1Ib icnX#LB5h'ܹJ%"d$;+K j g@ gs9M$Q'"Ɉa@idL̠K;k?\ev^32etM34 0M\t==,]v'[3FhF3S[o|a୳gҩWɌOiKfzjņkIv50D/:qDߐz4:e 95nz`Jʂq\.KUUk.IyYH$1_TND4fAjl;Uds{|^W mgK\W}5ܖ{g}Nq$7hL{Ճ0 ]Ӛэnf|9/u ?u$% h2Q׏:NB44LzD`(2ݥutttttJ]'' 9pR_do7m-P}`SѓbFUO(RJ={/i9 >w]p8:c9EZZ#UwZTn7߅ 5B!͡O^.C˅m6[ðEp儚v-][>iL&E7.*:W2wUn 7Z$Һ~PTMNL.:Him #رC=`mhY646VYh#[mk]϶4b/mXƦrF-Mjw\T3l^5`mDD&?tee.UDzZ1im PXOvpъmH떮UK:[EE`ϊ۟j@pK}}Kxls|KKei=z==mk[\UPT'|:%W߼jnb5wtG6Y4"]e-X4FamipO\-m+ϰ\p-]sGٲv!·L67ί);޶+#A"ۛ <ڸEU0͢sBc0Rlࢍ`nCkJ+.LхoiZ+TϘTOE{`mSSmr3 wY>VvEkkٔspHilR6WO+:,Ioyx'Lϱǂp[i?|jj]p8:]pq8:pq8uwp8w]p8:pq8up8uw]p.$k1Y?X9/c?&/_|E+r:(.v^.y9뺲2W6/s59/c?Wv^@\Ǎu%K@555mmmȱ,/~aȾ 9/c MVcc]쒑9/cZf[ÈuC\;@Y .y9K8~n|Cuu-b96E,\!}}^ u˖ڲ;!@ lobWV(c'1AS@[KuxMw+cס, " pͦ"ǁvD ,r|:#Q$d!9wTtUPA,PUBJ\KBG\ȱGQ0NTQQZ'\E+^=~$]ʀ/_Qtġ$T@cOlر:3'S6 mmjj"fjͫ@5V;9VtCLC.. 2ٕޯtR$Ie;(i'~EGwq-7璹Q@($,,*SH% A@&Ġ׬Yc.\fxyq&uD($,CBN(EE&:%UEGd{L[SG"q&E&|.9VuD4YOfN`"0Dʀ2`(o~>"/[Xue!Pn2h:Bƀk2Z2pB'J`l Q:c&#&%EBd"S"#Q@"ޡq.\1=,$ ®ݻoWS i^:e0ePF07n"<ᚧr~QXI0$͘&j8sijM@@F\GA<Υr1(Ij ӵ!1>Υq]{{{,2 &"0$s rC'G\^gƦ0 "0<|wS[kT |.sYp8w]plP3!64F,pz6Ƕ 5j #[\Hs9/6T.(-(Zq㢢Wi*[bTuxXDCA!5rH)0I9`m{ƶg:ļE6b2#vzj=hp>ݵg>""ؼjKkB۟jV4"+6{<+--aij#\6⁹p7. S{mDpKZ> ei%뇇I#v' 7wG S1iyD*J7s+iT ijqh- 0++*U- T̯#X"v\vEcV4n;;-Ö-]j1ݛc].xrD:7E6:#ۛ6ϯX։VrekxH4r_T M(vUWyUE!;mj ۘbc#S=G၊`öy@,] '7Op8p8uwp8:]pq8:pq8WG>IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/figures/parentbar.png0000644000000000000000000001543511534217015021111 0ustar00rootrootPNG  IHDRKVxq pHYs+IDATxyl}ǟ%^:xiĉjE7fjRWl˧ _" E:%Y(hR+4Z"\(Tc==rwvvvf~7;mj#ߴAs6nBPnbwkֽ]f_Oɹ հgG';2{5/ukS`F B ѮCČg}N&Pk6i~G;F( ¢ROǖG9T*''xA;k( 堙R&dۺԶ9J-Yz闳["Ӆf3+.RRr.qy:KwG񸤪[Uc}:;GPF;lBAnH( :8"ؕ]45ytgD2'Nҷ+ gu"= AюB4$ :(uzbv3Q66/)G p vKQ;9ah/ 2D; *yFFknDďhR_ ze{}`:%ŧTI):17>{f4I)r%œҸjR5IJvAR 1Yx+غ>6Ж&jk 5hN(2A /39t9(F=2v1w|Z II3s`BxhjPMOM}!=nI4֘twVT6L/2oKxQ} ԫҽYJz>hcq_W"ڍpPg4]0Fxz{i ڶ.a;m].#c.6K҅xwRH4(J +8K:KvNNK*jo T̑DTXΥ^)f#uS-Jx^D(Bxkz[?f%2XC)jw# R{!F'%>K]3y @ɭgGB) D_p-tWNZvh?yvHd.~q7MCl}ϗihlӈa-^p'n-O`ݯA[FW6D?@̡עFJ%BBOanK!@` 3Z;8 _fCvy Li@xw97qZ~>=9IQ>Szr`RѫVNBxj6LMRDtQ,GȌGHE^wFr:tUԣ5Cj8W*B{g?cf073AB0w>!> Mz7f%ړ=UjǯE  hGA;ShNk4_c5Ofx*X '@; oA pYE{prL!F܍8g H#muC6@7E&\T4ϨԠ][KIJL0܂vNk/Ɇ@ׯ3ߢ VI~<he<"O11T1]&{$p@~Mf:H}'Ȝ͝50\y(.Plȇ&^{6݀q{юPj8h_?^crQ'$oUٚ QTĨ]hA3 v(YcG%v7#ģwp>G _B9AD;:3ߣ VS= BPvD;^w< B!3E!QaQ(ЎFюB8C5?k&;G;NCPG;a(Ԡ{n!?BPnҡkgG:΂v rv wh_ 8聚qlzƍcB]itvюBfW߉hG!(j=kgs;w^+!x޾>~E [fk/eo} +,ڥiwg]z3Ӎ;3>Ws᪂caKJ6fץ֟g֥$Y69h\c9LxhWо!S*|%'D;8mǽY?Wrh;f[bG{_n%h,`|WߺKnS,)w 1jG 7[_$*0ڇGh,=Ѹ4fNeSp:L8Iy3uu}h.>G7qU\I2:@J@C!6Ӷ"hԺ vO[VeG{[h=yc6r@[-cA{{jhll{zKGCA}PCHᄾަ)p~*HJ ʐؙE^Lm쌍U6%4PJAPEv'knb hbh)Jk.u9 ;ixrG"À(ZB?@d62a%T!`# }ihг0Ա]-%巿Ƚm{ ĭl7jNGYtV*WnwΧ W54itye|yFnp|$qIs!FAʴ}\ ʃRJ/'m0Oe)뀼9i[i S06dDitb.Ojr~ FRKfli}VPv=vTFgA^D;j=ZDz ;|AC~];C~ Q2j׮Dv BPh#^Q; юhGPvF7( BP( *J%D  BPE) p@BPЎ3Q( !h\hGP( юBP(8,BPRWv BfP^ΐGP(ўEP( 5SΞhGP(Dўch@P( 5Cv BJ Y _y*v BJY5 WtDP( Uh`C>X>юBP(TD}zÚȂ᪶!BwcšP( Uhú$pv BJ_}E*D; BP%>D; BP;Gk2ymCv BJY wjߐ?\uOv䷮|{K]g/v /S guvs$`/ONMw_H7Ϋc=7':OOtH}RK=g/Ύ_6q_"k< ЃrM}^w<)@{ނvo-fZެ|>h>{AKo=u=;Uvh4.K22)׵?p l%G)D;<]B{Dw+MH B=?c2CgNhOf辳ۧNJw} [[jvFtwpIHw'Wt];7xjKqE{=%O=Z箾k?߮ ^_xt8 t75to=;cD:=Q^$pcGw @s{#h~$ E/V;{sOy\{u{xM1ڍ7V[ՍF$dzNBuuU= ®? JF~__wSK_;{'q22pW`<>[W?%ܝ_ =U\]_Cd~5%zw|~annLyzY8~˟?ڗ| -sww;7}_/OEx_㗶W ||_Ewλ?WoKOiw;_P>QMcuzK_-s-kE.7_jkҶ>]ίnwߊOяRq[,buP}E̿.<2hkgM,ɝluѯyuv֧鏚(7Y?6K_ 9[q;mNeC޵p?#'X\}groć8Z`]A*~fF z- lF4P~F,]O-Jraǧ0ҍ$>@Dv=(_V#D8^\*\\&]_,( _eheoEc-,>`qxЊ'ƽ |vqې+nƷ}@`1,X&[1t~ "Z?Cr%\>ʿXs]_xݷf]ǻfg0 axX ƒmMeqCWXZƺk(j&EVTqMRx$o\he흢N1{~R|\_*T\p捬TtufHo/{?~?G%?ϯэ?7Em:dէ?{ԛDN` M=*L| V庨}-vll^H6)MxE$Z+J5P(X# V UATp8Pvgʘoޱw޶wζgK旦/N^20i|a<7tk@KO^4g,02 KI"X"ѼjU4vm`]Xj.R#T+*Sk Cj,_({XvCu}Biuait]ϯ#x3Y۱(R뤑E VOnƕ_Qq[Mm:lwݕ6i7)οݐt0Цϵ[umUit*ٸlP5J5!IZOwPOs >l'J!zVu@4dFy4)P2ڊ'h*ڮvcSĻ t^]WӧCjC̰)3 ;j.cmuUz͞C #yWYh-hKr tqEyb9EzǑ!$z|ϳ!6q8'&z&&/(x/>q1_c#RL\O\ˮ>~2~٧Qxޟ -r7u}Bgc'xJ'R8&|TAR:\ w^d[R5ߕ"O^ 3-t$8Y\kg >lSe1tYgFz?@D)mN D&IOBzH~HɝJDwBy W]] YyN<+u:ߒޔߐyNK='%WŞWĞbs^a7 -zMi]ÌnhhjS)MbRu`RU>?P6oba¾q^VaȞd+YyFYYjQD`'oS Ivmtu]i4kSѨM7hU:MV%iZG`ȿW}~xiaÜX):$M 2fLkfisf‚ RT,s C{MJaпe,)% )uRt ^xe" H YlL@ I^f ^TD˃f~ڰm-O[*I-KHb>.5۰cws].HZP5ȠmT)Ƞ- &ev<(5ȣRkŠU|; 0ZaYư} ;Ds=!{DE'&i*>?Nѡ =&IKӦݳVjV^mR[TI*dC5\tBX))SI5ʨ#uCB,z]АpTuҠ!uait]&XmXb+T!۸TSy ?v-P6[mnRo@5"Qڹvb.ۦ˶ݢI7ShT&z;$ ֈb0P)v{MOQ-"FHx]'5jd&H -TvU!^]5$aM~I؆!=lĄ!9{e&1`^!^%`}†N{֧s4p- !u;YZ'l!{hb}]4W@k}4Jؐ |i6eSrVKͶ+)+]W +W ]E+D&MJD^9ry..]Z7С5iAIƛiL6i{TԮE}Bg7ׅQQ,jOYog]j-CFyixIq9H%yCF/"M I k z7$JAfg8(H@E"EP$L6bx?U$Ez@ha]z.K}+iD6&fm@\o+?~Fk#nmuC&iS;4@)!fEIkGdHDCDEaF V .,~NرmŴ2Dm1N1pc&tRF/C6ypKE1mh*aC9АXRel%QE 1PNB\_vEs24$lIi؊2E5i 0sU񽰠ZIAiV&kEuX4Yn-QMkݍ?2QHb"2-t*D$j"uإ Q;ѹnqFjSkdx(0ac6pڱ{4.-T6 !^Q9 Qx5j┃v$^Z~õ !sbגtreMbYEy},ˮ6 N|.RbdkJ!a,(q_FӅs l/s^<". \<8bL[ۉ^|+3g {&/000f??f9?f>?f8?H~0dc1oΖ{LB]߸kyF?I؎I캶Mm$X[=}FU:jKc[RH<2_^\^%Q*i$Xޔʋ]q#*DX#[T舋\I'-9b\G|gJ i'+xZ#Si3 ~)Ķ9(ky0!6&s48Sg:d۫x="4i\"NCӐEEEK: ;k7,[Ң_J)>eXl5MztYS#HW`&W8c$b&e$ȼOi=[Tsxڊyn$R]Eٽt5"5biQdl}lk[@OO $A֔Q$ِ*%$D2qHS a7h2$d7jZKmD6:,.= ۴\ԳuÌ-# gټARqr\Ss.mtSmdvl!6+$mGeY^ǎ`(i_#W U죤>nϿjϿX:Qp8Ev,Nq.SM{Ž~/w]˗Rߢh^Qʢ;7ɭjBYuQ0 fz{i$`zwZii38{vinpiSBc'#c'c'cđ4DN4NIISαSα3'gN['uotO] ՙ=^~gg`*7rN-( Ǵ>cn9b,k q3-s/*|: K@^_DF1TS8rwRM+|E ,Y/#Ş*1j;gL̲=gYgGs98`ً-}E݅k2=g:G ”`3Dn"V~2Y#-ߔfa0أv e BӤ C U% *c$Qyh^C٤]u8(!g!\aڶT7duv+KŐ}ҹ|8 *^W(g<`CB;" -4FYZe E qj{ùU/UTx?,2(Q*dVFoA=uLwꘞ0F짏Ns:=uHԑIpRDuv};isgNGD^8zXb{R(}9? -+z> !3rpY"yΛB`O)? kYm0 絑% Bpr@^"ՑeMtU]_ҟ{S2wRK1+.awRMCp2r?_ad AO*9e(O,)!<?D7zq")(&Q31c/xeO0lYkbڒ4'w 񷵱1M U2,pTẺ8Nhc9؎  ,;lZðV3 ysŜi?c,7k;c;}s2i=a {&ު0d atoakNRG)Ӷ?VSi{xIVWT)b2DBˤWE|̲o'MGE9K|/MY& ӅLGR;”}dE߾C1p"$OAy(0dûOBv ] u~lb&u b IDAT)6ؔCtކX]i˩. D>on#l y;DӶ6ݥIwb MB mǨoU[A$Qy4 Q!Box*n B`ʄ$pe=$aS[H$J_$KoYuabAƢ`22I[)MbsBY(PIC <7iH8p[0 !YsW\l9PEa-Ի i>ysd;b'[,t3{M:g;uvҥMvy!QImHC"4X+x]G.iS}FEq!Ҽ@'U"$ ٩=NؙA#!aE؋CbzAz%ׅxzW\+g 9[2q%$x['s<'QS4{ϗmal+&t#ā58.D>ܫ]UjF{u=he6vvyG(~1T]:8(1}!Ҥhm:rq!;m&SF]t2j+^mb3^@9;]ىX"z@Z|K%9l; 4'm-Lra zBnߚrb޻-P 7䘳lo A0y dR؇jEF»4bN7Ce[6Cݘ }؝=>.j  nohͺQ/fIJL@-%0d4ȦH>Ch7fPU|KeEiG HCbh$9?jjYsQ98vGm2IeP3l>Ӕl*Fۀ␄`={Yh'C$5(QST01@TѡT Xc.X/ $ HubuTi$ge)[2XZ?2=,76d?eASa5l)Qg vknjnݔ gA@6Bvu>Tn+٢`ΎS'dho !F}rv"ؙ})v"xdS9.l'{/N.)V5Kn$;n%bsC0gSPk\vׇE`&9{E#Rf;a!B^O"6&3 Erx01G3O)Hzہ]۾߮oU[MV@}5Gނ}6{3Tv3\sF@EעkYkQtʺ[%ݭV˞܍1{tfcN !_rlscq15γ̑KYcb[$a!aCȲ9:dx∯ Oꔻ0DEmIJ5V jI ebX5&"]Gt6 fڗRӪ@ZY ^.^h ]- -OUg5$luqr8 +۫t'Y.^&@2wAOAVJoӸ&xsu JTInЦ#eR޽|{7ׁ_ĜmG,sԯl;<g=^Sܔ|M@{Y݂G#^qԾR`ʤkEox-F(V ӡ Rd*YEjZeNWT&uozi,@&;MpWݐ+u:0Bd 4#u?Q'v@`9NΛ͛8i!*j _/7C(U&ك9;3r R4~,3eBb: 5.P5HQ@lE$Q * َ,T],kBEEp$VIJK*wkE^XD<ܦvVXQ߲n~d {o`psv.@1 '>}[&ٮ݌;D2C@}! }þ#)`lB}rG/Ft-ue"x۾$W'A} AΦȟo=dZ,VOQdO\cM'z8Hs`shfsDq ͛@Hz(m 0^0Lm ©GsE@(hTt5.tmgUo鮷u;\О"WW-Aػ,t:4uʎ:EGA jǯ>/yrl1Gs3!K_w|%C'pЙ9SbGIđ?O;˗9R wtCM a,cvTְ׍$d+UHHXq$)nO^%WUKNfxLR2%Vtl{+a.CJf-B'ǞxCm]4(٫uCb8-kKHO xVU]{>eCL<,4{k~-nkDL K5Fu~!^VB@_. {=\n%E @RH;b^9vqx=<ߞ޽"߾D;~ %X5Reu)vI4| *KIU`47k:E^mPFgGuU"7[[t]ԍ i&w\QZM m VFtc,QF#0 HC etiMiRDG .:!)H<*ViElFAkz݇x8q8mYzi ޼>!_ gYv-,Io`e:D6կ2!}v`J 5IDN1&/)PLk@:F5J(k?. "(s)XJdvek!ޣNiPVd#lnĖέnnE~׫Q6ե)b?p !䅶6`@%p<ʕ& -`p2ұSx:ޣ}x6>M ]rH6Q1}ؘ>b5e2W,55{ºxŠ;e˝^'#ʟ!Q{̵/e 08攔=+FhN12#)}ȸxx\\^KbF'%Ӓ -dNvt^Nc(1:g?ܙ#?rc==c=]=Q<Ǿ@=O?]\V>~o{+~^rؽ;w'{݇Ώwͻx}̚ 96 _wwޝ!ߙ83BWFʊ]Y++ug^4nߟ\G>X2q.lH*_^X҆ !rHdL%ll.;b0AlWҗM!SԪ+u$ ډ }"0﫝~m-KH^Yԇ VϮ'.q` hRVA˜h[20U  h{DUMTGo"{fOKڏ/UD[ԡJey} z ɬW*9mkp;3;:gsm7Q.JւԐ$h@WA(AG钃paNdNY2-׉7`i]|F9ͽaN^2%K$hR28)\-/ߣ/ ^?<%ibF2p捱}oo_ὗx~{oYt>Sd}]ׅ}}}S?gG߼7}[<|_ dY[=!ǐGLά؍$E)qͳ׎OUMcUaZSчjX"Ȳ CtIc$dy/=VV{׋Q;yݞ\$K$\퀐1ǖL%c$oad`BFr2Cl O1F?!5 o׮+SbO:aPVQROz۩䁶@>ްpi=9kMNZLK;YUMe{D>cػ.e`ZۙV&ѯaibXysݜЬ_匡rP1ҕOi'ilG֕sF8\G$JpJ\sBWUHS'zKn`'m"B'P69~L>SԑOZy.ҧe?3eFʞLE'sdxTY)-b-"L(Ou7!8P8΍  ;/,o_D@΄[)%on%!ZNm$7- eYS8 ^ZD)F ƈzuߚ#!U'h*4Ƈ@lh!6*P"/>yW=@$-t|]xC<-Əy)z҇)ʇt=TB7 w>oG=a?|}9/[ ?~w}W_v)z{?o;Cb'yɖr̯~z`d@n`K%!{'۝X0kW`՗Z !ΦV)EӮ]MKƓ=䪓t$lH52l3~u2oC6O wKV\=1 ˦9tӻ:dOwIiC9M(fj)>"wLq 5>kMW YeM}L:s ql[?Dz=,k70 CuMmDa'R3$3 mgxTUu*B/rܺCE"!Rqxqs+:-H$Fj[xVtLQA<@S*_$ 7xkukё;P2rX9L (1"@hHbD^W]<9;*vmkeemf>ys㼹a0g5rQ Փ*0Td@5Z^0klf[vVV vPR*3D) aA(Fkt@׆[4@uKҨ.uUBj?8,*RDm0fGVw/1rֽVKv!YxP>iNpZN8=<hZmo ll|lS*qL 3D9)ߣ.6Q~rO}?O}>v߅{D}jT IDATϮ\0F9z;BБb'8`.2+R+()o߿k$wresc<ĊǗm֭P![B<0S88,% ":+ 9}:8\'u-<>dqJ$m׮'~]?}Uׇs(.jYȪw5 xĝ:Sxl[i͚"S5]:m}Rz8ʵfۆ!ui K瀱5[g-ӨiZ8k6Lh'4uqk:tMWU`<;kg ͐ڙvz>!؃p0 ;$[dc{gA8mtp]pPka٩SnxOKi9!Ѫ63zhlfg(1{so3m޲Y=a 4bA4'jބ~hڤh!ZY67 u<=|o `)q6xͣÍ|d+ER*:LGwt >?[y:KKއFEoDFagPs}\q=lG7Et2a7msVdl1౑6k@چI u'IPT k 6Ɓo4M`0X@/1s <ڣb'Km,Ԉe5{X6i혷`utiY.MHs] SEM`&3y,mǢBQ~(lG HЈ40{$( BO^/ 9iksu1mVt nml{us=\>A3,B#"{X=|Gc(p" "*TN.NU *&PGRGΨg4hL=KFi[=rU2|U2ĔѫnvMmG%GƥGUXr͂5p%=$_? _ &̫l_?g̣WytG'ydGxˇ|Hˇ$~HzHY/zp ՃByxܿxOk?G.3Ydg_2F. ;_P`O )lZZ05uw7詼26$W d;h-niGPvācx+KѫkQW¤L?c"QxZ}!;\!;T!;X.;Pֵѹs_iK3|H9֢́-U^~ZyV mƉz)>3{f[3;@p]hZ\zz:-4`U+М|Aڪ2Re/5|/!(T j_j_upO@HM0O *_BpZ}ꐡ9^9`Bghi4%3gĹHh#_ARyfFF!g: `i@Dꈣ;О4'jkUjTGkjJqB~(>uy}y1y^PBbTgWˠ_@٠y(l/(LO(f4&Q{/@5PS *qt]:F4Q: lCQ(2D١8|--3,<9hxhOͭםP=VFhppP*Y`/PQQGkU軰kaws4'|8 kO-1 pb g9@`NZ0)ؒ*mŶ;!lsda&/j*+ړ*oGio)#]VG>jmvW~Aca0X8eV[Sa/ ZZ,9"s76x6ܶG{s9S ߪժU+Uʏwx( #G+JxT&;EYpZx-Q#!afpzɊJh\)Xu5#U#Õ E @¨gZ}ZsƟZmPuyD''NB΂)>7pMSl rch񃏈'a$"^,IG2RSd6RDfքfx `:`:5cPYDh `I\=+*9SUՍLXuԗ΃%XhXԷJXyL&^wkAi!'x"&4yh֣O1& cUժhh_P(k+S@gq5GqP]@g:c,z8'k͉LU: ڡ-YzX \GԙYs4`evLȭ/Dart.PVUxA).%Ŝj9ĥoUԍ9:%_;$t B޷φ=u~y̨WO}tvNVKXq8ii2ۘ>p+{սqa*MQtK*v4ȪeG-2&t^fа|N ,z'|Ҝg\KП˿["b LuG>t6dNpGվیV[w%<>Q*8ʮqŞ+e -|fsj)јhH!C|!^W#]=EsF @VqJu VTqJ8\}\ Nfkdq^ؓ&z@_PI M)BGM-hQk]o,O4odҦ=vS)PLnjdžxa1[IN@4:I] qO:NrɒBZssyy"ہBQԉ(t%](d2jPiuL_G\abCpS [OVG+~vxխ75?q7?y-O~ӵwt?[w筘۞ub&yٓwlͯ~?Yu+oyoz?ێVkw5nado3ꦟ5:xk~TlF=Q/DmNp,Q+wG='%sSR=S)UoJ?뿨hht^4W p2mEˢV%uV$p^{|D %4ϋqye7Իq}|m:iJ#HqDln_;Ԩ\N Vt u:B@A[k{vd BGОηNmL@) zS"y$gNlK`S|=M1`[R{-ZGW}A:t}B}(ƐiyAkΐ?W.xʓn(gn U1kqfi}fE3nMyVmИMǚ$5&G !폠of &DIt@  h;]m;sCY9?_t`I R$T!RfOerR73yp9j|.cC%\:Sԟ!"҅^K~c{*dOi4xx4'ԓ֑M\B5kOJdC…vz2nA$#EW<"Ba`r\wHPv^y== /Cj W6쬖An@I{5 (&/d~/Jdn2ph3Q 9l.͙ q!PPt:ŝ!kT6T.)#*J9C Sz|K5?}~ĥ0 `^]Td0wƚ|0(Xk0d)!- so[뎨?lon\TzM=U}ty8x{IQ"YI+:䧑]f=0h.jY|skUpB$o}mL59Qiv]7jTVvW\]RYH%: VXm zЩm! ~90;gIS+ԛ.l?<>gQ%Kd;Ϸc͞޸q%jLzj$tO{To|sPt跠lrBM2U%FTUoj3XmS &FZ_>͕%#oru6S " t33r2Z꺢iqM/sDLdݬʕB :\:F;PelD~R4Ɗ"B"v!D! :Gu ?#p%.xS=%1%'VlJ vW`F{ÆbTq#$ S:λT_lc#q>"Dn'Psp!c03=^(CM'?qBzm7!V|=-D͸eMfZV6D'Ӊ\+I1٩8WT!fLO׿l5'q6djR+sz5rm^cA,u`/n x(P<_t/AqۅĆvx_}!0\bSΈRݸr0XTlٴ7N`(Ril6jlF= Hw*|/It&} j:d9jHHDDvλ"rd"}z&VՕC'M:E:*R*ڧ^3Fl }0z* G. rݣ@b{ 5ǁ*%bk-uI zD1:fq23kw^ckkˤ_8&Y@6rң,laA\rh%hUɾ;G&lTY=v@Cu#8=%h5OZvQj/"mG>v\^e_K:`"7AC/UQmDn a1#rzn  ݀uT^mcr47[AѲ B1ze5|koTvPA%ME0w.BF]Kcl[[oMs3n0_x%&& W ?q2OR^퓖&,l8kt8ِ6l ,D# 6G2+FQÌ 7O>r9+ lmTM2Þ+DcEBI_tɛOB!D#$F `X7:aZ$qy#ht t0hl%Jr}PD 9>3B= :tH\ҍ}BG ^,+IEk7 N`1# jOl/hS"C"erD|B@[ LTaUd A=Y4ST=KM5zD#$M7y0̀0q8_1o-4L[OL f%S>Wىi[F} ~v%nw )Nծf6xv[TlEuJCuTfG]c %m;\Mz&qd-ÝvàT?Цh$:D\R4mz 1(.TP1]BSNWTiUc1I\4&LZ b(\ec6'n4ڞ uSત)'dQe> ;Kԗv:$?[P R@"j$n+[㤵5kabrL`Tkc4*؆hZK8S;S%s׃ն&шTNiIagx !D@&[Vwd+ d%XKe#>; 8Y8 Kc2p-b,v'S0u*B@.֣$p.;L%vЙEn=ϚTQvwY[4,ug1+>J7 Kʌb{\3NC=]By|/mVqi,/e +ʪD^1?œŨ+N9::Fڡ&&Dz67GY-`&a<p!"7 K> !a.y! eXI7Tl+,mcMqu:ln[k&1o=! Lvc>|lfB`FEf1EѧgLd%aY#UPB}L1Fg3k;NG]WOynODm䳇шm#VjO'ZMm6xiGv4pb )4ē0ۛ6c-,#AbU@awr;_(z>_u2h"P= P8EZWn8B 1IR<Ӹlcc H 34bFNS'"=F.D5tERC#zk;{j:z;z{*r2ioYtJ;\^ÖvIF֞`xJ]uB Tg)$q>J(i* ܶCym/HKvkCsr[G :N Oȼ2`c+g4`a8SiR2hv']ГhߋƖBt*kh@:ɈAUp_'8{Jp;rRœ;Oҍ㨾c E񰹒:dcJe' ۏKK ;qBu"lƚc<޺5car%[NO¦#OeSQQ}Vr F{nAёij%r\KI 7nۛ`q5̘NkV`^(sf6NQCòG::ƈnۏy9t5_~k<ٙqhO>Cc[=Ӊ-1^ZĀ)>j026 kB B{0]ǎ 80{=Jzab ؂7:{(.6 BR4DUCؔGeٓac.bdke&cC@#J/>nwbe1gc?])J۬%-Xl.YB@dGG~KoA[Yn̗.{-!sS@ij%pFsh~O|L;eKފ){l u4Mkڛyz{7}I Ԧ3ۖΗAF^o?^ VgMvDȢKL&V1!%{i5-0&(F8O%wn z$jT(Nuz0K//ି?QGל!hp\,L>xJ5XS)Ju+^ʑ#ۏt|uTJOZPӅR`s'4Xqu]L)pc<ǜ&̷?҄>ywD`W$-tdz m$ƹm&%vxt.ǝ 5Dr) 4#CN?{k>} ׃)^ {a0@JgW }G0}2~yr y`sC(b$0<& vu:L.{I/naa{'ojsWOs6sP2?!y -R#S x4~@(MFmv0 3 `]4m-n-k#uHrOO%0ӍkFt$;ܰ7Mr۬cm$ޚfnģf<s$-pN ebcPbh33VehHfl4Y1`-(;ܬq7y g#jW5. íFIaj i=@ZlVvSM\,kVe@U&Tj$v+ܿ݊Zj)TKm5U)`Z9\9^ r̪ȫݠ@ pquiֈ.pku@UgeG_E{o^$L yMF]6OŃW}V. Yfs6ߚ-tzr[ɘ;ߴ?Kt$Od"\Z&T1>NaIp҇/Hm;i= o2Ѕ"(b6Sl`yvRFW׏T (,XzKb㳑&Y{| rΊ+JER /IgwyXmB c33kk9>$y`Ӂ<og>v!yLAƇX*^2A^co@$̈=EV FOaC7e,ȝ>q 1HIϓC`svBDdCIz3t<.;坆ail7{63!c؛s؇amn6ÍÍF L h,:SpzC n!̄n3b[/FqC1}gD@hjېVZ\ 씛ݦ G3]r ѐ2, +#Jy@nj1ۘ:"3uMXaˌR]CUUߢ+9-6uTah46utv}c;55̂nPa)l] Ž:ZT=jDo-4Rm?0 B:M.;N.<$ u[ѝ_[W|W3^,A6XzjuR`uw]LLrXmD}n B83qM?V<4KK@O ^Ю/_ECؽ[Q=C':a%$]8HmFE5-cLma*=1"х+Q7Z!ZVZ{{:cRMJzv05XCC΃p燶!  П )L[EC8X9wy 'CBu8͘箑ɢfuQ(hSqi¶ϾWZWc=&YGbVo|`&?/=maxvˣnb3{n+0co} j˟+_ڲ_}d+?CP ( .>hkeo3n|cFm26MXUX-l?=˞&[\?ǟˊY_ Oh/u冿B'_F)T<^%n3+L̇p\>Av3[G~.hUgxf |:@Za'*s:d ;x~t,=o6]ws){Ջy!s?>{z&@$,;<' h6Gֽ| mP,P( rq6580٤Akn"FȟMF& ԅ͈"Vgw TTTTTTTTTTT >:8٨v7d1٪BjkvCdBLMoZ'TQid`ɶQMEEEEEEEEE5d9Ѡta<{d=&;Q>l*********M`Jlv!_ed/u\m ad㧋6in07>}l*********0z`c,k"X}l*********0&{ll-GJDb LCֽFM6U&{#wr_{M?{lL(o1z}f35ْ}]BPQQIpFEEݳO5Nc}Q?鯆.VHl #=J4ٸ g|g\ ^YʯE_"*!3r/Y"/w䮟yO][y7` ԕd߾\ݍqQQQQQ}L^MM~54~TWc/llQ[5*Tٻ|KS2~ ,g{]ni~?`o[J٤f Zf? ߀.k09I+ IDATG{wp5rXґH\L ۙ9:rQGEEEES8}T[`{bMv)I^S[g$sxE/ϴ]NilCk=ƫ]E_}gtGL8.=d8O-ʐq_i쌧ga}n2E R0GYL_m)^HEEEEudx`Mw _&{ņd}[#$gjJ|yj$C# ] -EK s6!OL6uTTTTTc<̃Lf3-ӜДoC4sl$gr {9rٙl3{.#Nte ngGL`@s8Lz̼Yd8̆wf!;2ax, 0V2^^z5d$d˦X`Wle&[6Pk}0 9k:W/lS ðJ䯟 26Fha5k0'B]K@_R6ف2n :CG)dƧ5o-dOsᓚy6gA. vw}n R#p}8B5אWA3 .|&l****HŚqb `o&NlX`vde/O3x3tsl550gh~wo]MvDrLvค&|靆{֯g-L&;0yI_43'䦟T @s&; C"d( 5TTTTT %4&l҄:<\&&^>PߍtW8of#F qAW9}6o]:Ӿ-Z_S\!d cYŖ*ȠdF v8_T cwPntL6BhG^̍7&Kr@X&Vo|cɎl@od|_; mZOy>IqP3^^i}~;><-z@E፴o{Ŵ~G_d?zѩc3SCBuN/Z, _M;š ZlW"FV 6F&< hP`5ތPv*20Xkqw;ni7,|iBcҗK ̃iM;vqvekF|*y> SȢ^Ȕo?}Zk'0`H+1*2wEF&lRUCܓ/Vݛx ARWD*bj-sm箜!jf&:&lmpY yi0`d &Y3 4a`^~3܋7.BWWiS~Em UUwQQQQQ] B&6TvY3B5Xk0Q7ɯ͈mp 5TTTTTTTTTTWdm/ t|5[LvWަ&*d}ln |6`ol4 Ѭ&jFa62q~LM6k5TTTTTTTTTT3l0. &[`dSQQQQQQQQQB-2LLnl*********Ř!lYMM6kEq!v㣏N +d'dcdSQQQQQQQQQQdgdvEfddTdSM̂TTTTTTT+3\4IMv3 5T*x%5J{******ȕFlLaӧPE(O{D&㳽&{c#"dSQQQQQQ}gL6}N6lD3TTTTTTT_sdMVjl******M6^jm?ylG]kC}6)r;弮o/t1ui8yy.Q8L6ՕÏ{_r[/OO7b_.8&;Χo9\T,Y "'ɂܞ̄|o;uӲ Z+J'+o\(?y:5K]pl*tUe9)q\T)e7UwTO-\)].R )K/ >ZB̓ 3ջ;Q8?MLvk[0cKhJ{=Thn)oWi*LILTz~KN kBs785r^̮}`8/}? d/YC?Σ'n_-a čͭS춤 8MJeRjͻne~Ux*~4թvd```8o:\w:.Uft56o$vm}?͌. PraE6پ&{q۵\}8S >ȿ3{>fۙoFsSj{d/GɣIuN&{k]['iyvEYL68lnU>9Q+t68:=&yf|:=yWhG?F Qˉ;OEq4귟}{PYtM*](oUs2h{xtf[, =78[n/]?\ƻi὏6}Wѿ?M--Ns9?8zl@\.yͲ.UD)JI2&2?9ۺxftAQg7kt%4&{d[y}6zᢴq¨7;E{Z_o>zZ2(?g?[ezݓͲ/cY,Łv~#fsq2dϻzw/l}7 ŷP]1ײ6|.Nݖ6Z%j\-bΜUUGN}eVH%qUw7cZ+_M]2dZbΏb2:TJϾw^k/ufnj~~-L/:s}"dݬYϼC /&Լ۲5-R2 w~u vGDeK]pZLv, kPכQ9g}7nrɯv~W/z?ּNM"(sRݿ<(}Q/M莗hV[V#M/퍷tZRn1$?y̜.+p^wr~Zt]?;OJ~.LNi6a[{[Am\cYrQ,_lF]~g/ĕerH[?n9OdOl(gE[] +ew=q0L6\D}Ru}myPޚ"NnǧWM[wmkjC{JL~,\&[ ZֱJSa}ojg.pܯ|3:B3W_o5߸+6 5nc}O\kVusUC|V̺q_ڿ~O,Z4WK5?kӭO7_W7~^bP(\bΏd[&F^XV~^x᭷ZQm=,6֌z>s,uag!6OƪoL&ĕmv\l;-+߄O%$XbxM ȞƂE0 =r  ߲|+]be)ANWT'ʿ|5{.ذ%6nO-įSJkyͯ޿Rx;>.xmgokd7')/Ŏjkzg4V :BY 8z㛷oPsBԅgUnl*+DO}[Gw 󗺘#0}}===vU| 7|럿QQQ7tR*P C cČID?Mt g_',֌s;GrN(l1X+T>.:An1OAL6_c7ġ_<|w9vǓ~pm ¿<yn/!=iE$ėOfo_bea åys5V _ݰ6spA=5 ?㢶X~Ko> 356q luCZ[M5KSWƼm{]V٠ -u\fV>~C]UNacNÿ. \b] ]cEŹGj{*RGj?֝l rcJouhqMz"X|r̔܂Ⲃr&r.d%%Zbe]nT5—Mp"M6|1v!lf>]NԺW"wgMg*lOripR=0j)>ć/-Kwo'ٵ)pm:"q1qmƶ ,nN>X;}޾=z qJ¶) [RbRwff<2q2[y@)eR<]ᬩ^gzSw{y:&ߦEp;/tK]œxUosN/oo3߻1$WeinjH8ZYSzQ k9ѲWSW|;=ĔDZŜIdNcbVrDH7Nn?XX/R͎1DPoeN_;>$‡Ue*r5^SbyWv/ǭh4 '̬*/nGvOK:}B:5 *0wFw┥.ˢJ-k~z$mi=fVWySw.梪vqY֝;8ׂv\]Ώ8o=\_xϒfܺК|5i@bm0]wM7_k<3BEy،KP#?Bu/P/ټ&d/?>tf7KկSxpͲ̩{ִw,{G*" ? ,{"nSmvڕ;l&ٖ^cRͅ}.i.ݡrVs8I_̿t"u0Qݣc̩駙NwPMi\,=)/RR0:uGj̛xko,m!_5uum~o2?r:2UWJ]wwnۙe-DvJT*}լ6l088ԅ '|{]wK]kKײp &>tI&d/N&;^'kjtl>VD{)o&HŶ>w{iePX]{֢gzؽߡԡ=`WbWާ߫~Tw /M>]7|ph3α-F̮xUug+nXR\)e*Ξuת\,gž.ٵg/V\.ommmiiRT.%RU.uA.K S޶{?O#g2K"l `^,}ϳE?ιoÙ9oῗغ'}KOzگ<yQxuuJ,KZ^r@:V:w%N~7>w=`2n쳅γyJojp Oͭ](y &5A9=2"'y-Z}O.ɶ6ɞbd};,&ٶLѷ;E4dSE$ɦc bɦX4Md=QQQ,uAft}wզpXNu 8: d_&3l5Qa#,k.AVw=[Ћ\vԼo)ōll@ѩ.B}lǙwu~q%}j`=3jVV[!l05`Kf/k0r1eӗd3$X3DIy|WTajngfʆbFޙ. lL̓ɞiQӎW23?WOmf{u=g!3G"ddq6axϥlK3Cav&{Rfs_ƅ_2fvoPR^:ͱ7dGtAi)l<;X/M"M1` dç.9^4zB\ifNטfHrl=vL%tSAʵQx3^ guc@4 qO;8-{~7o3-QvpצsO6;fh`ߢ _<5FP-@& }B9<eжa]*L5r~2ٗᢈ<->slZ۷Fo2:dlLv{4}V?%ٶ.3mS[c&  vu) BvC`Y|gd=5~n93eɞi ^uen@lЇH\:T!㗜[Md nv )Pؽ0s_.w!lɾ{}9d_nU~_X3bEvg.AB`("(ϴ/|!e0ԢAwW&;A:ǵ[&{-6 yphbױaވ ްaǰȒXuMCCylöhMy<>F!RC IDATֈ HD E<<Af]Y_f~U]EЯ*3++W_}]]fZU. e}^4d b8 vG%.v>fMy+dK~R jS#ٌY:BRW1Z\45. ,W\Tz5`ik57|Qvo0ߧi&4J?\IZ&Ij#Dۅd%x}h8$0NzullG2RiزeI cǼ<.Fd8髚.&%?GBO)x^J S'd*WzhSkmQkf [JX.=Ima$Dw,Gͥ}=0 /n^&SVPl4ףq ho.VqMkUj8L QƝ\KomBQ{r}1N%-QlW][3ަU?z-a5z@S,W (#o4"l!ϷK|T3 1zpTfhL{ j@$̿o4 `O#٬dx i$|x6#/>6$x0Hv3b4')³2}sH@$ }=Z${d{#d`Om1Gd'g@$ vO6$;cdO?'[fPɎrH6l,8O߶mH"wdIaH6(&c ."$سQ5{ @1d챘4N~񑤋l8IEn)!F$;<]d f"Bu|nӌ`Eg.EAJ$!qҊdߙFT*JhpHL!f4NČ5Q"³IdHطAw` AI~递=HF}*"ҳdH6,L.xɞ6ȁ\D"³omɎ ;euHvdht=dFH8zNȳHvGHvdh'ܥ~wA珀#`QT8V߾x.$@`AX4ɃdKv+n=';~D$Er_q~~_FVoq;=r+R=q* ,MMj5{nfSlYpx<F NLG {7N%;NӲIFܑ쥫_w-o}kyU>?{~R}w{yJ-f|[n :E}nW=y}墂sfr詔;)LRM&X*lXdxIb{-]IҝQj'vرԜs"@ AYPKZL1Cv}2_z /|~oڟ+oǾ"&=ݶ62+(w/z{kɖm9=s 2YU5{ $ǎN9r$riIv&iXBv !Z27e˒ivuٞW)ARdm~=sג6;N{OV]i"-61 T3d*}\eJ\e&-Qɮ @Em;~"ڕ-^u0Fj}uҸX&y㋏G~d]lGBǓw/[|7~OwG}dQba1%fu{،E|'|komEQG^)S/HMUtcj8ZMZXZWI[,gY37) l슒]E El m*h6G_cՒ4-]#[Kٷ<%' bȸݩLYOk OA$D8m/f8e/nXѸD7${EҲ %БK/>_>- ?~#?YVy_~7{|>𱕟~Owws+{*lާ7W'=?'>~0׋by p; ]}䁟_ ._Cof!XYPS,\qc;3rdisf*n30% t ٤TҺKeX8)s^{-0uL{FUWk^ٲ^%L%jqܵfQq^۟MJvWqJ(IvG&*\:%[a9&vWFTZʗKa[a5woݿ\v/|w~ƟCܡ|d]>u]r~t߿_}gֈ]a#vhOQ>y4_M?)eث%%['3T@iG/qHCvk1@)tl*!JaO$;/VY)]EljPl!*ujVJ +׺lgmAHv|s´̍$O!WFXEѐrۢZNdz6u3LdSxdk$4W>!V: (^uFo=[/DOn~'GJg^辻Ŵ3CH?~Ew_VzTԾK'p7Kݱ >t|/O}_VfԡM{ *#'I>k DcVdi;u-;JDu/.Ѹxأ!]߰a,uAB:J掛f.il2`x+$0n;|CB Q(O /%[_ejO)I*'4s%F%5-Vv&Jקo1)nAB^uDLJ$.Jwl|ƿ Qpٿ|w;ϼrQ{|s˗O} eKxw?=>/dޝS&4Hg5"uyW(H'&%[n1yj2%ˢ ˜ҵze-lR{sͶ]ǭXZ21;zg m`3?ZJa\i=۝/ՙHcxgH$[ $sV R"W|zH.mثV>İog$bJ1/cco͗tOW.JO?|*Ğ7|pr_t^[_'L"kaܷ4ä&N}ul&:Iۓd3-)F&di1bg6O),!l5m5j>D}n]ó<݂}}QǒqI:-zyE9-L`.<ϾqѸ*A˿L"Bc>Jh{2=OzW?Gn~ooxdZESś}m;pޛL~=7~~W_^S'-)hTö|tIl^&kd'՚J˝tCuּg%kM15m*+]HB|T.&?UW^aQɑ@y^uJ/*l x$;HTl ./ϸ*I${=' KޓϬV.{k^^Oe;Nm~׽׾3? .$޹5KW/{lA2.RIfJ**Sh&J 2=!X5׶4V/ ux8-gHZ38SZ]P*%٫A]1.\r%Ro$a˘ye*yngd7OӿR:T@Ӻ-?ИWh-[>%bo{Ҵ]W }oيdߝD8y fd'ht* ,MMj5;92fv>|дdeENHv~BWdߝe@O)]:!yd;G$T68cd?$@`AX4ɃdK{OeɾSd#a$ X: OʦN$@$E6$@`AX4ɃdK]°nCO)gC$Emd%Fآ&d$]O锘TwJL°tHvv@`ضHwa sF.٧gd?}Nb"Q"wy 0g44(O"H$*`QR[Ǔ!IH ɮsQDƏЇd0OA%ųwy";+_a r\-)f,4Rþ'T~*d:hۈd\pyK SY>{2vI-]M !١(%ӼWiN_~Xc0T2ݻϐdB$*s6d4y^%_Ma}d?)1ݏtSAg.!N_~XL.!ҰU>ʊ짢f%+[֋oY)[Ϣdt}tl!=u:ʻ~*}N']Jw,-[Ϯ+Z"^_Ze'm f$Nil*%+[")NP߲t${ǒ=t핕y Cj']wVWqՕN\gId?Kr3MrŸ;J:-Gj˃2ddw'Tdܕ4풟p?IyM#bۊN\OyoNo~%fOli0-9jwqHC4;q?δ; bM eNf#OL{4_PpOR}L[*+m0TЗ~v3kșo '-n]qUɐgNd8W $[sb̓%+v8% AɶB]݃.wq%ӋLgϬ;yve `:%{!ىa'׊d3dG>W,qld:cZL;Slds8!0pe.|&eJ/9XoQQfj}gDI⑷e)0o:` `qH6mUU}ʷEO鹣~lgBK9qYemy?Ul6@u<]KsMVVJgWbĮw{!r\.ire7cӑ|v5HZB)EwsFEI!TdՔgo\ed{[ZRe@~bUck#<%r9!a."$o *ُ?󰘞9=#Ud; V\秊îQV/-VhspeS,F֐ /U,Jspnxk#مOI3_!u3m%d?ҹ8:~tG#d7IYV9iQNB՟.BB. ͍0xmFy#~aH, +5ƕy?DoEZKs_挜T>p&Qթ/ٱ znn Q护íxȒS} K6,BJq%c棕6fEp~3}+8pFNJo=$;5$G<+dˉ:Dٔ ύf-oo`m1`KQ:Ig!Hv+dCt}th]jEV Μسg;NdJU9+&l mA%c%$;%B hUHv8 CE d3˻&gw%l hUHv8 CE`}FJaHvYf3W J_~X!٧ξsgisV)ٳeҬ1%бs "${9Aی$]{|YHvdBTה$[ϟHvd"II$s2%{gn3lPd ~3+T>+&%{<짹,QRk2mdznK!l^bj'g; 0/{4:DH$Z/F% &n-iZl@!ٳfH6JHvϧS.٧Ͼ gn3l@!ٳfH6JH~Y98MG@p‘--S:hIdZ\WMHtZ--@h- fBNu̝õ dc5/E9*)1i}m[LokhMm3٧m넔 l!_hd>Hw]El>W~_YVjJ-˿#^?.!/(!W(ƒ:ѣ*ypHRa4^pX4dp\샶qZ,DaknɎ Oq%{Hv|D P)XQ ]SV/(_ύd[͡:` ɖ |K:9C*tEY"J+~P;b )ޚVhp# r)Ǻ4z(8F]2I-ʔIKhp8yuCO)$;d7Pf{˺ g+:{wsvIFU[?=ڐK<}.BNeUvS;!ZL$m%d Lϋ]_)٫' s;|VN/dd+B#ʒ$ru׽uG?z A)f-yXbdQ濫a?Zx(N~U0)di󠃒,㭽Kcg]9'اG;kˆdkeKXz<3z+~U.(P6ߏ"AjQ-S۝õ7kfśy3fBzҢZE׮#&ٌMW@τtxR`}S[APVH'SVԪ=&g1ޫv2o-˗nXr+lu63H'8L%D]rdFgQlwݗ)oE{qr2[&(6V%;~00Te2%W3`RnmܱtXױC;"RclfFv^dSfuZ 4z$~hVɮn@hf5r z+]֟}Xa%1.8m EGP.:A"/83rR$#g$CQGCˆ|${kOQ|Z $Y N/lvulX2;L\]&dsg OzC-RN#t4Jvd4,],JI %,٤d>E#d9Sl.Lu c$[_DikEւFkiB>-|)d磏O~a %T:#'FOӔlJ̻doذ."ޚV~W1psuwu,?lvu{IIJcFnd%{pa>b!I%;[d#Hn<Ş~YN6L#ٺMF^RlH67f-[?[Ӊd[ڶ|ن,d\"AINhfn)sg>L%Y˗#+.s/D:mt&zv6$;u+ێ!Oܳ8QbLbZT95cz"zĭw znIl5 d\i"\([׼ncӦQ/GYډ W##ǃWVģK6t9V۶Tf~p_W&L$9FEY='^nL:*K yň#.]u嗇ZIF8-pq$ܭ33y2mK.PzD=z-KsiY1\R;=BUQ[yވnծt.WH|%JvH6u ,bvO rUەύi抅UjȰ'ۮGdtE*uk#j%dV%H$#go}"DS/z)PFK>]D,'%(-VM"7y#$f͚M6Q":5pu$lKQP,_+lZrjJ+,&/?5N&zU:WS'Ɏ U$;hd["(זlmL*}$[YiS5`ga+[ewpxnJI&\KݸTXB'z|@]Dg=52)HvstLdӤvjҤGGRd́f d璽&u$_|d]crRS|rdD=!y.t90SXZ$f'F5Q$ $ٱfz"I6HEuQLORQ@"}dꉿ'tME%3c%RY-d|>*q$;ߐַݱ Uv!^ƆUɆdw:-#<ȳ2L4w8tj~l6+V*ƯNR-3[T#b6:&ىݦ;.l؉%GέQ%; f'l֍dC>&*7*_|4KKg<"r#KʫfJIoNV{V ']^Ԍ2Ta#Ͷ" d'$)085Ft0H6HdE n/]03F|$S$^uXD!$,"ylh#"W^M$ &}^4lPdCH6@(FHv'd"\$ȳc>|${@B*}m$٩gC; $ "ِEHEHNEHI?YI's$,"1 4CHv2la֌"A6']1iZl+v!ǩdDž'J4M@"Ɇd@3d cg'D/;u+%0 ?0@"Ɇd@3O$QqdrffByɖAqbVtD=J篻ڐl@+Nu̝õ`cuE}h zPTܧQsv"p$Ĵ$;A&%HވQOdODɞ .@:9=zQ8`kg%{k664Gb!ʽ [BFT9vIvTxR,-/$9EǐsWPoa1u>U7n%h$,: G&#%rj*Rb\YɎrQT_dk . 9ϩ+p?rg]SrgѸ4 =^KW],\lJRjhcݔue݆39RC#{^[5sڒ]@X&YH6$/E_~Vd>9w${_>dڵ;//ğb4zrji,]@)/p5$Fˉ7 $[*Z2n4Tٴdsjs6n͌xsPp^eP|`CZtX(._ȫIz(/A:^Ȑ+Ћ*uZB*%ԴD_ri]'K*tdZrpD/Trk\Ŏd" !vsɤtWTz_*,G.B>٣d+j#e7nb} A)fNm':{&5~WOMn@__{8aoO39c~9uyȧZA7[.B?-M$>I%t$5L>r]~z奠ŽKl쪖We,Y ٶMaI>:DnPl{~j9/VJt._'͗]nu@-ɞd'IΰFG|$;p2cNXfͦMd?=RgGLe={VPtݴ%j Owuɦ%0KI>w42/s_MSSd;̥T(%[#5N!$RPUcs+=h]Ⱥ:sIA BEld?n/u$[Gy'K=Q/V ٗih-Tym7]VrHlby_̆Q$;۴7r垓&d$qX3=Qvq"&3F2CbݣHh`|:yϦuۣ6i)&oыue]n.+nlJG8BE!ٝd'$)08ٙ zh̶CZ;|R&`$[z6$@"nd[S2Z:$[m]&`$[z6$@"ɞd IN-0ddwH6XD -d\< *l@! dH6@()lPd8yͽ! 0lHEHaHvd"T${_y6$@B* t,dT='ner%%H$wu@ IDAT?lFD- H6$!h$;dSÌڎ'}ݚɖAqbVT*5H6XD ҺNudo6]~83A/9B`ɾP4Ş݀dFcdVHa?Xē,d'@ 997!K02<\ldoƑbZ,Dak>g|mdaZ^\H hݕzpnd*}=/d}(dg9qd vH(EuHx< x!Z˻w"qH5Ul$[l'~ O35HE]q#$f͚M6Q\D-1;gɶ`0hg"gʏZ1hIr[AhzHoL|cJ1OxEt3(L8t*bZH6Y& H1oA&ZbIܨMc|M1Q4%kTԋa7%ٖVlqשµyՓm*}`N@MqIlc=dkNJ9*I0;{7"bĔdU7M)`O?R"a#F^gӟU"<3V}: fWd"BɣBK6`dGMCcα="]CxH?d̙ZIF](2͵dkIrdµ=k{f[]a: cBGJ6.HiJ2<^nOִX¤vkle$^mO$bN6F̲7#ŴH_Ii澇ɶlY<]lthɎј"';Og~-$:WG oE%"K> \aijɒٙf knb 6-/Ⱥآtca/UµjB:[qam^7&}H`<(O=O[)dTy$n@r0.Ʃ|;ӱI VڧجQtta`2`'l#kUa;z0,̏c&VbɎ=;d:j G.esmЪ 7nb} A)fNm':)szWNLU%]̕-=gx mWgv|5.\IpDXZFҼsKJK<)-nH6A/Y, *r B J3" [+kF:j~ (dvc*,F?ylc$=${G01s(h|m>b/⣭|]5G-XfͦMd?/ճd+_3m,&M[]&يF:7ڥʉs$;(2/deHLZ"%;_r2@JVŚV-=c@#D\[$[_щ(YEgt%$nu 1:P=Y/%%zq4OH>@]9^dGiov<]dɆdk>Mc41^l|MӽGFNmPs6,W!Vä5Ɠf,H#WQjF$tԓljN^uv`VBݒri3gG,,Mfp=l$kd*3?jrYl+N 8a"ϝ$@ EE=g`eyZ=).T5d+pӭ4?U\jOO%م츻U%[d-.2%%sa|jDͭh>ERd́f&K fC;I= 'kmKT?_ifg.2?XV[an&l+zOHhH `w8bIv3/٩%'bCkhfр|k&;]SdLV{F|!k!.V+Uam!s%/:n8"?tmH`40Vr0r1L3$9$:ɞgڔljV;W7FbݛϮriy_̆Q$x H$Dz+HD_מ.B2OFjceI-d0Th9ǁ~z( ;tGfp=clk/9 Xt*U^/V_FhP~L!ٝd'$G)0/>"SR=L ϟǒ` ٝ H6$CE$IǥgC; $,"lH64CHdǞ}E `[nKH`6$@"Ɇd@3d$ؑ/C$ "7=rB!ٝ PH3φdwH6@(GKKJ$.0@0}"ٝ P={vI`jEH!ُ@;>AB$'KI&Hv''H6@(FHv7'H6XD:c4ZJHȢ$@3dal!g ٭ `dhGOIHv''H6XDOǓ~o2u+3QKd8u#ӒZ>ˈbXmE.Hvxm:sd_ܡV׳n*$]m4 9!XLyTY p]o6ޖsQAzlN%dWhO*E.?ڰdW8 A#٩dy 뗳ګoTBef-dk%Ҕ3Քx|$-^?Ì9b<_(w4HgٙeQpU(L.UrE٤~TmL0$;$AՒ]%Vd%aT:AБh ,Y.wL&'4M}qo6 jV9kwb#ٻv:?b VvkRH=z$dA)kFDG$ĞHjW]QTCkh|RA$[IN#M~fY2WFdW2esjJ3ޤ1`8S|ZW֫eJYrf?c]ÅjlmQ6r0^Ų=Ze 0p~^mܔ~1+weW`dDgJ6;";ZZKX1+JT ĺnv޸qKO13X8OAPZMlCj{KV${ğKW\\6Ir0lKH ;%iF/IGA%zMI@M*,GmnK.geK 66|Ve?Wv.u};`(ӧHHOTl!Kvl_7]$oİjdJODdYfӦMTşHVQTSʠlB͜lxn9]Z)W(~h3k#݋K6w캩t~1AkhJ6[em"l[cUJdb$ڪ#h0mJ90DYW^3Cq>/v]3mŬ[ˎR0}dבwb],q6dkK%墨ɦ@1|:Քl?!=MzW+:h$<*d1v_=\ַX-0Q5m*WjWQRmig²dk9 dәn6ӷؽ@ьlHݫx m;]mzϋ9>H̊JN3lOGR^>m cSd ]5:9~h{ rI6߃&5ye*4fH 3-M5/]3mKH {(0hx$N)vپ hm$Hx{5ɦ.}^ɖg+Hv5gW~g;d۲CeD/wkd+yjX+V9 znzQE%F8ǜiild!%[ÁkRdtgN7C|9hmjwN*,իYWgM؍W)> پ*YR VcUZw`~-~u}{^*%l'Ln(ӧHv; Kv,2?{Ĕl3Ee&>MSS <X̥î9!ٶo3G5_It>ꛩHM=4o3&c,0jdOuNeFHwO X=k y\dZ¸Z'KfU*d^`wEs{,\s`~d[tR ڮ/y/~a*2zF)>Sd?dmBsD\0v.I0;a/"Vc4c/>ŖPy,_y𳮋]Ȕ"I\Nl@ϐl_yI6v=&Go|8$$,"l#A5xƮӥHv.ُ@[=A" ӈdߘInHv'H6XD H _?yvφdydHԳ! h8}>lHv'H6@(d>~$< f#B[yQz6$$ Gw8%{F[  hvG!m R?FM'%<(Uwtf#هC³`S$ l$[Jv4n3l@! G!- ڥ1㥵upٻ76lW(|S,;0o4ɾ7]OB[ ${skth|_~ g-h;]li7{Tqےn2+wI2suQ@^lAsIMtJ#_ŘRůw L{|tfdG_(7 ߶iLFӓl8w0 쾶\$Bx$[HUi0jf"/?{?~"1O1vN9:$gB._%5>Hs9X[j#j %}lqH7n-|pڭX0MA$;K7l%{ 'Mڜ_ewX,GfH_O%{y6_H~C:+4r9RZ7/8cuVb4\ť$:شK<S@F$_Hِ63ɾB'K$3klG[xS-iH~RMDW%%MBi (]~4f3CJvV%;'luIv}zovOG,͘ڶ9U;%L$[l$\TQiN^Iz}z]Wj1~E/OU}'RmIA'k93t3mtP=zsd_ysgGI#8n-3K/]s&*K.ǁfgS M|RTt$"b %E~=@ckki]z^:ܒ<\'d/JlӰKv`lEFLBUe;"dv1a0>̧F̋4!FM N6Ce[lC:LHKdwHv^.2~H\K5elсV"~(npdsKIhc3 fE6z:Dp "ٵEK3VR; XļdO]Lx` ZCcY8-j]krC5U&=-"%{Տ*ys?n-l]Zk`<&4_|BjcLI$P֛ބ$#m_hl2C_n0:VK6Mрb:F}e&ٟdYI>!~oӟxSj)ӗo˿U{W]$ `Jvd_ ӔGnٲկ~XG0lH66m3j|'N5?F`A${amd_-$Hv;+H6-=fN5ʄH2$]jA$PmLJIvِ6Cw.<=`*+Cy&A$r |${& @}aSmdd`&%{֭@uب,$^H6A$@ZrSFHvهEh?f-H[ .I}px : ~%;lH6 n/>κ]% !`nd?&g672{6$tH6dBEfݖE!lυ+I}l L7V,lzCx6ƶ-`&@H%65osek-HvKd s"tN5on5BHvdlY ͥnH\eŘ*7ksչB|;ΰc~v06;oI vf%3o=G3@<+*[2hKvb9y~RtرT]/2d(eqDoUXKKSK66n ;K-:5%{ CӒ?gV4GZط`na%[9]-fY <z- -e#R ݱ ;({TqQӞy^$+r%- u;K{9--~v&yHRwdW+X$ɞFՊm[߂Ŕl|%L9'1MK{R-Ӥbb%Qn/:qRi;Iy]. y^]]l P |mLҬhCt"ez-o-w$ GRp?4Re.D:Q6/FEtD1[!;+kl~dW^*l'WIij*wYrлMܞw"t;[Wjtv/w@9&쏨wW{FzR&n.Y >ݒlեW #5jIvt*yЬ* ՔHykg͕Wz1]X# -lͱ9^rC2vıl֘'lG u%[9ے :"Yi!%[C^_o*d=^m {Jrɟ! JwJ}J+H-n+"3C^/;d}#Z%{ZJ~?7^ IGg_ɶk*OבRI%[ߛ`h7 a˿mJzUK]G/Wj,߾ʦ:$uNvldSdH~v.%mm~#R\,!"Iy[$!F jҤdߠdKUqHgwr+0}Z,+ZJAJbٮ\bs>/EƙX?Y1n`۶Kv涜y$ꥦfeI\"$ؤYq䆳3]:镓3 J\0eZ-W-T"}hKʱŠe Wf]]oGzl_YW)βNqfv+ܒmE;I9pG4J4-ّglpδ+Jv^ a̔)rVCOyIQĪd.#ׂE {󘙩n6֟Be&"L)oк,saWRE4R0`ՠ+ݽS&]|d^*l'W6ud 1WYf3_"UJ1FҺV;^ B'()ٱgCAWhdS#di=x0#n(:m `~<*={$tJ6LDfCz=/= Ƽu$JɃ H6g B)y('ҳd7% @ȁd Jvِl BclH6 lOvu.Tf,TH?lt$TC]Y`ذv2ɎSO7d= LM4Iv!{!!Dyކ^3!:F=sîHd'rB:t#RkIRa4/lss]2fڊjV,*RPD-((kEFSޱeCJv4VmsN2)Tu2mi"ކnŧMyk3e_4zHs2}zvlHvV.$@7ɶ9ϊj#,lr"k#;`-D92uЎHء&sאlqɶ͔HOj'Fk$;NIx9$p[%[0${DR󵖇kpu6S7} LCoG;SiV)1~PHBגXs"^')Ś.UɎ %[I8dݓJ_|dpUCMV϶>C+$w^;``>AbÊdqh^H6[4&+ Ji>4'fi;Nphӧ3i֓!y[v<n/3Kɖł Ҳ,n.Go-)gFsv #EzH)Id@AǘdgJ\A/+#H>Ǻ^f-'xɾn]b" 8)7?rBz.ҳ!٠+@d ٠S@dHHh6~gs@dJɃ!٧ozEd@JɃ.A|@JɃ&NN= :$A(%d]H8)PO B)y%S7|荩ddWs֮6L9WW_eGOR`JtcCXfݫ//dǿHl:{ҎKjяaV"^PJ4~> Fdw°Cc%ozhNJU2%l: -<}g\lz˘:1VVl<[O9[ֱ̙_Z-ٚaf=l\X[RHXJv,Jќ RJɃ&ٻFҍ_}BHц$&9>=*xz٭sb gK.hZ fp\ }VHȯg/G*gΏtpf>֎WBg%_Z/ex !%M,RIcNlu~6f+ه~Vxlۺ?}J6k8J^k/tXE[GgF$;^Ϧ٤8jkTM\I /0$o k{#2n۳-KDsM7J !%:`1(%dol۸ʧZ}C˯ƱcG_9Nm_mي%9.^s0heS s{@tr[GO=*V:X{*Ll?RқO BU-dtU'M{;C+njB`n;b!7lq ˎ}^m96nj MA0 S'I\~rvW4˛w|>9wjR?$lPsx#W${B0}׉f77(UZsP\jPN)5 +4h+ײc.[Mv`Z$Ƀ/ٟ{y}M#o\^ፏ;{z kj\?Haop*s8\ ɶ)j]}p[\c­Ѷg nlq?۔m\J6HGx|vދO^xׯw&Usv$eX}ړxk"%XӨ`&֗7;edp y ؍5%7>n:klK޷ϞlP$Ƀ'٧W<ދk_~( -$w$3cl7ǰ (dhٷv.'H2VJ}9 ˍ=RՖ&ĺ٬ogkP$Ƀ#x|gW./0Y[3o $y"7lIH^`ԃ$o;xSGh(7"M8ϻLRR]?]/baLw%fXd/Ɇs1${sl-LrEam  Sqi(FNA1)1kDooLVyR|Z<"oHrp5 $$ p${VW:1ZQEB[b5uOwDBa} ֕CL`%/k*5Ty{Ac[sdfܔK ]!vKd-$H6LIHʋU<\;|YXMuQ[Oslz WfmuߑJfqgAZcJ̚ ~t2+=a=?ȏeVHW#0-&!ٱk3C憿o S*je#҄sB)6ղ懽Lu#s 4/:^mVϻueOp=#"Il8S sN6P];Y6IXB~@>yˢ|]Lu}Y5d%[s$N)dߖiIڱ6-$ P$y${H6LK s롒:dh#ùuԋR>H֢idK)DfJ%+0"˷lOͲ=֮0QOYu$~F߈B5XJvⴹ!" es7X3z νؽ6v'vJ< 0q&!2% fύi0=5‹1'5 3@8K:q7RdۉOGli ꑓC^l/+=GҾ;.tH'I<>m${O>C:&!ى+ن2kj>l$y%l_ϐl%`;[t~lI0@ϐl$@fyȻwB+G<}[OWdC P$yp$C/% ɆZ@IH6L$$d#$j"$Ƀ w}|ʳ#Ɇ*@I KvH6T EHO֒x6 3@0ȃ 'M/[ʝi踈9hUi7wͽdykiO3Cތ۟vZYWypVGGӸl8`ԄAđ%!0R%{yYg~,_hFUE/gϒf{ڽ&уv[-5Y$:0˳&O>eͶpWj;3Bˇ6C=ʝՌ˸$x)}${S^_8O!QB KՅdEa*$I"V9;;X"Kx>رFO xB JnY2IDATͰ'UK{%%۹xH0Ubۮp)[C)ٜ=*b=.Jάo(%[X^~16ռWseR+y&H%-f<vjiie)MNT5LiJׯ&ڕeIqݎ+0YDy!HW;>ErXl%._GTUwrKkqdѱjGfx}a&msϦ\Sy^Q,9o{aW-ׯ;V4 )&yҞlY-:gu{.g峻NewT׬dn4=8/z%ۨ! ]0&7+gjbBj#dȃOP P7Y+rdG7ܭ"N!֮'!i\[nnv-bs7#+Mfw[ଽ0# } >6:;^B/${gc+ĺAd['.vfKh5o^ HWKMCCc8BP]0C6qkDmD,<Hڳ-{$#}%{cZOCdEv됎qhR|QJti\u-Nis<ާP[>;𧹝 ˛k<ɶZ#lk4974}(؊%KAɖg#VKJC݃QL{u*fTSLK,,f_ar`A@gɆ"%V_=&*3Vd'/b:6_ߓ-6wlcwɒ-6,-H’ִ9o.+ي5dɎ-$pEd)`%Jv`;r4=VMlf3v 3&T%!yq%'^~dd9O9~H硿9Yۥ&=Bk_F 1]"]}gakda`*[al57Q3P`ߗlcLISܛ5y{ݥJ@)1y_v65ykuMzޚKcނK' x'VKJC߃YN0#p&GJ:vKȗ> 5O6"LY˵g{JvsC*${ [=raKFy;\D$X:iq~3z>ϵMz}D=)Phٽqf/ޞ".fB0EC$[83RlKͫuAgѮ8 ŲGV%-aĘjIi PS5p S\p35H\k"d!'-${^g#P ?]Yp~} J x1ՠo#WH"GXDGWb6 3@/,3k YFZn87BØ$Ƀ#?vɒ!P HR~18I@$d_7!0 l(B S"$Ƀ$ٯ;Fz"g$B_/%ɆsXdJO~=XHb6 |Ivs{}dC OMH6T^ ;n\l{fK"7|Xo08F %~dD@luqz/d_0c+ϗZn$ ud뙪 {>@γl]Jym(T.XS=`dJ >4z%_oh=ɆQJHPyX)~/a%{}}?r =~dTv?4쇿8Ɇ0Zɞh*oI#fhQ"yV-sh~jH΃&I}xdCROީR2Lݏ`ơF)@UKvR?&Î%{.MBoVMⷛ߮< `{w#IqKUjdg'%Ƞ$٩@CmH6.?]$ &#vFQ'$|Ky9.Ǵ718d05$u>V|RglɆIn02z$j|%dGH6T G'gK++Fl'SeJwoݕl@u O!nnd?zwɆ@ |b!ُd>[֒Ɇ:@ \~Ӎd I6+P H6SL7AWFl$) ߟ.ْg#0l'_ ٯ{߭=7>B- O1^z6 Ճd@>E${yk<ے>dCU OdB~ܖmKÓֳl$ɗ]+g!>H6T lQ^{6 d@>E$lS?]{6 /wl.#61䠡<`Iߖ;ɆjdumfQgXyu,r\L%%$ه'³zdCT$fs]p@&󢒽Yi# Ɇ8wP\':Gl|۵g#Pɞy~RT-٫ӟD !uȸ?d9ϛH}Mbb?r̼d˒}ɆZh%tG0Pܜ>Ůf)SSM?j?|`{̷. 1Bɞy5557XX#A#fk\V39Tl10߲ddCuPC7%+y-Uo!"r bߐl핼~eoX+9MzsYP=VpgKTls_r_,ܧ?>35GqeoU7!PH$K'B_,DL'/ Llsd^@ܤֳA _Xz,bTe6egɾdCUD^ْiH6TODdKo_<:m=[g#P =57PO*&R3l$3,L23Tz.;[%+H6LdwOhz"^b>$F RYJ>##A2'ٙIAyLL%÷_<:Y-fdCMD?'۪Q,L|%[S\}j8l(LQ>t³[$G]d=g5Hd+kFM3UG)f۹_S&:.Y͹B'[Ϯ?4$FE}cE$;$WfJ>g!UgCI-9L#:=XW%?C_-hm Dd?9 7$;3%}Â/^_#&%[]8v?KÓ^,<}dCTe4E3RģlOzGy)<+MJaFrF4*R0+ُO}ɽזF^#P;5~ua)aLL|ɾrջ/>ol%FdOy4l$ɖ˷~|ٕ妑קd"P왱`ַ۠BjeJߧxF-R2)](dK\9MFx~d?Y.f?z)m$ɆʘdwOHv)]*&$4$vLd䣅dGd PHvj$;>_F%[m5-b'Sw!_=hl$g’=k5V?虁#W7gRa(PYWΞ$(ga#ʑ'C8,P(J|&ޏg̩JHI7Ob}³N[}1rdC5LCgy &hrWG c<8uBNYJ=*e&ofGMs1yt}͹yS$s}?R`/}xG'dֳl$;_ JvQGF;HSE:L+r++g6qIJ|%@OBZHd?G&#sRLl۹n$یra%{c:SOag]9~Vv()[}y3d'$*Nz7=3PoJRNK0%M?*cGRNYҟ @谳.霉(?XGD~g HڳBv$CBJ2$[<}PK8d1^Y̜$T{3M>paA,$}@3G곦X^0 #uH0Qt:=BZ#HN3$'\:b5Dj*SgWTFԗ!dddCL@ff/(ResC]y>b۹t"iSfJINs #xl$b=??9ŚB1*7R'y(yؕS ۛ|oH M?F ?&Y9 .fyM4P?dz| l K>f[(+l"zifSPhٶd ~ftSJU!}y!k~IC$*IIoN]Jgdcߍdϥ?^-_C'`+dI<3;ďQ '")%E UG`7ۦdwdC\4ӧ?'b34C|yaH͕b|5gHQu5ŶIÒR,%u 3ۦd?]ye$&d$P>_a+@*$γl$A,l'SXIvGH6 KǷ}z6 Ճd@>$Bֳl$نd?0&*zIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/figures/recover.png0000644000000000000000000007621711534217015020605 0ustar00rootrootPNG  IHDRp pHYs+|AIDATx] |rnCVAă+`+ZzUh W[ RCfqL&"`XvSe|IȠd|u!jx[7xڔOSH$b;:??`QMJ'c3 [cb(햏Q,z 9!8 !oUFZ$> \d$.i oa&b֍5BƸ8Wvd<| U[4d0j Vd̉j2_PknȰ[{/̘kuk3KJB ށ.J/]`;Dº %7bd򑰝{BP~!b ׄhK; z"BםǮ((Uۿ(1Y6][4;b<^<H=к#)(}=[i8UR { >I7EkC"Ӎ[9)ٺ ZAn 0\!Nbv(y\[M^^yUhDl‡%oPOzu:ңВTh6S|)Y}"JƖq!#=f={?9"{ٔW֤Msjxhfp3ūa1Sq*$bƠJiNI+SteqNչ 'ਮa/"Q,P򎨱uS26C14 ̤OdLхXS5r٩l:Em6r{;Vv:f'Dh?tETOzفZX:TV'ݐo/'lgM7HXPcY F%3qq$"&Mo#uFŚsdo~h ūL5g=a=Ex 3%/75yU0 5J%a "kuC aJk0]iZYӯ|?9spX2FꈄZWL -e֖!*=u_oxkYǵno~㭻鑶4d1V ?\7)v8hh#E`vc@V#1 U!-oD}m6O8C1e !J^R^h^g!-OuJ6l؉x5k B&cdyd'B@:MH(1^h RnG#a)Q,G騑C%dGR!U)#4-q=9y[Fp#Aƺ2f,uͶ,G DPKu[[xE5R X,˼`ᥣ ֤lXE&ciD4kM S!?.MUH| ֡*.g`ЖK=@yڛme%S!XVfM$,x5[ Kp*m38eXS[{C一֒ݯA3ς%[ yȬVR !uԈ3A{0kbUqm}^X(v%CP>ܲ?t^Bt>pnT_mXI ?/D1{I{ nXgm~zNebґ-SFp]QμܜHܗkg۷q<0fb- 9D尦L235:ɶơO[_:. o>3:pf`vϸ^[^XXPl΂]v'(AZ\#A1^kz=b#G*=#Ef!q y@w-#ku梁\Ld&C$ż*ZWEHG|b}|(8p=#&"qK:U!#t GK!XFeEv~@N: تݞ{|]ۃ: VB(:%CLJy5% g(|E 9>jKzq&i5j&/Pk1@̂BXkDh}CĥccCecY@^v\zKͤ(`e"V7Zd aL4| Mki^W%ϝz_|1'5W\2dE5C¶4H|L\xVhE#nC|R؜ObR}{PᆅӰE01=A3gt\ę]43Ttƹ~j!b^v˄u׽뾚8;pˌ ;#H%CP\OgovE}B܍Ji'M(F3.hO߽}qYv˔o[uY ]kգN QQfymyŐB(:f(ea0櫈OH GƶX|qJl& 6SG3:,bzq-dE%tÊ+.6U0URwFE̢L)Y%)TZeTe<*/F46 ˼.8j잇pjZfK!)GD=]39rfC]|m8JХ` f/ ZCƶA/ܹgo2ӟK| ؽf nF;/.dv卯_9СԬ֬[(t !~0I` |F+LO~n7tO2sx X:(c,֎Z3@mUֱ4Nw;V<+;7ڶ;Lu4.7pp&Q\Z8hYPf k8ZvF8'3DŐ H)^P8^\=}HA542!"(LT9-eO㢅C-3o $~Y 3,H@a]A &ƫ"Pl ;0^r=Q["۶^{m8 .c]P#Ntd"Q)dWkՙ"n\` gT* @)Q;\8%SC)Zr(KO[QAru74A[OL6+hBr+4 -Hݲ;s2ǯg3s2AɏplckT9{Xd+I=͌nMmw{2; -~YUG~,KVU{b>ޱ [rV|`ʹ3lN- >PaahiLL~1wCYu@n{[oT;Ș1GHv>,>fֱXc9mkQl]u1jcmuҰdg"rXYǟ:o2Ouqw 7WgG_{'S =i+|3ny7?nڥ/[;akXd*o6{[Ԇ@&fзe'Op[[G: k^*.dbPv8Ľd">Ù^.U!UܘO|Eg"D"tzjƋ?i,ıeJ*@Y(5.#/p!YZ[~#P1I;Ц- :jZ٦%$n:^~YY cS ;AoJ2:)S4,'-k[._|n eEawʵIq0X^AzBA%KԸ`nto ǯ mbXIgn,]TĵR2!nS8ȜXNi9!zْy&c%6~koƉW]]wra;.35ᚊ*֚ódڲ,俹ǯ?mtid:n#h!{^hpJHFst {Ktq| hI/1! fc͝|lu{b,y²'DhxÜ_~./ҕnׇSZ30g-o}pߝvOԾjڷ\ͭK ~M[vC\׌G.|4s8׿0mKh ='uxkz?q;yPՇ a@ Ϭ4Psfg48Flo-S"aD/hDdTˀ=' l@ wC&s:j98 W "@^޿{7C&07Zgۇ)g[J,q7 ;pfH ݖ͍Pbk\f6~y?DήB-[73NiF,KHfh!ǛaH;ÀxÛ~3!;;sw:vйS_Zzr PY*_st4vgF#9lf}Rw<}ҽ+_YK'^Ux/dLιK_*g +E`i=󋂐Oʠ,áDݳoU댚m.сЩwUUD@GBpj9־H[b1%C>:jҀ;q`AuUi8ɻ=մv~ ]춖DnQ ?a,W\[M%Ń|9% =1{wA ,!J5{%,-n3':+&Xo/(@HX+Z.܏Ġ\kQm1–) aO 츃#dDuG26@. ʹ0͠!c|r09o g srù--'rs@n `2ߙ8c_?MZԌ;c6L39^JCA9hϽ5tԡcމ?j/=yQ1]onօ#=ܡS :>];5_GC;~{kа8ks|[|8.y_UV5iGL>[<ӹg>ohwtBwU '˕vl'ޭw?.ךz̞v׃3BgE5f:v A_r}BR-71X1o rX1U(34hi^_ ^]v8#SuhΆPIS5 ^$S |ܪh% jލ95PҒ6%UckE̋qEvLm몑Mg֔h\HMGt+4wB0 Ip 5g*ڱ`^֕4,%3gp~gegp~@ effGn][LfU[Q8Mv,Gc-Y oeessELC#fxxIA2:qGZG /l-&~Y[$:-eXpnVxȟ=xۓjmWuL _y<\,tO ׮{/8}wîް_Ys@Նazy[]}~9-=†H[~hQhE.]j1>\=UVQM\}>>SSOOugvJu_Бn `|쏲M쮄/9؏LX7nIWS>?-̬Vμ> fծt >e:Ʌb1{syk^:p>a/7t@/"{z`k Fߕ{{*.{׮~ EQ+5edufJ(C(#Ys:l)q .eeneY\Y;Ul7ֳ2;Уҷ)SC쵂2oK+gb Fv'=c/GKԸqm4+&NBFMɖl:wÉFL"c_k:&3ۢ:dly\5U?4a ($QLYGK[Tlۧ0g֏~a& C2벱& n̿3LaȕwOcJ^5n;}HwC%}q,;.<^~҂E5yƫ`=S;ul;8R?;73&#Ϝ~+7_~!^ ۥ7zK#Sg].:2;ZrԑTx ?AW{%'iz38pxG!8DlrMN1pmjLM1`QCɜ8!G3b< ɌM G7!;vL{Mwɚ㤖JLhAEɎ줎0Π]B|kFz(Z yy@-9!D']B]YĮʦd#%3vnXa{=;q+mΫqpXr%'Ac1crA~ޢ cvPߞvٕ9XOO 2slV!'l2`+NZ@,'cG3IƏkgu!*T>wYX`b? 3++foJyIsyuYoKH\h2~6D4D5DF":7IXM GAMڑ co tX̑13lӸsatwc=h`v;KkIwhDn. 'ռ ڡ 蜌d\xʐsr@5[ p=/"L l #݉KƂ-TСkq#P_d?~|-M= ŀڧL$dIS [[@Y=[׽SuvUId UF 8Ϭ&QQ6Ejj%QC9 BQ& hjEeIAd#+Cܜ^'9㞇?YiAct_~O |ѝK?eyGK/oP,S 7=~cgU<G kf0s_uq>"NZuǬ ( a[J^,~DNC "Y:+1`|ɮxJPvvSMD(ܠHrnP4ip i+6F 5j2;&w&䫣SfJ%^`y'_'yZPoF'ux%mS˳)1~qP2tN2YLc;Co>n c? M*tvRE q=U[1V<%#&:3ퟆV3Bq5)rw qrAsw^AݻtiᚉrOaznz\fܗ$2˖[%]N)3 ,QSb4tyu;c@aS7!i mW4[%, J˞qrK?~vpnwiٴcr6 .#U"+&I1;)Y'`CPM&&F(]Fd`}2y[Gmx352lhqo u1T9\Y!֠c#ژ_ps)|_vd\T``#X-nSd2w`(jiWKwx5xlGF pe6:#ayQ!M ŴV\w`MYwk7n5ˑkJ(7×C 9AsA3P `(.ߠ )T#I3+abx!%ch]ʏӋE"F.=D%ӃڱQES$B(Yɨ9|D-2ma{\vNnqt,r/rBG"¢`O; -Kq\ 7A<0 3s  QϧK(Y@ȴ'nQЃ-0$1 XLY ϐ7wB;nKitÕ=/S5gm\aٶRA.6g,̧~A㺄5~ 8᪀9ci$ĐCPvXż7 Bof!pcך˗LjAX֑FCtYi^e50c ^IA.1iVc#A~-gvZu$"(F~Ӥ #vbAg4+ʂFEd#EHÄD&gGuC_ b1ˏ2/YÏr`LQFDd ,!&p~އ SM~BWP!RǻISK'mHEO~#n_0iZ2_gNJv),J6"{?.J١.9 τ)yU3#_Z{i,;۽i@Tl%)\Ȋ&d L-PP,еnnGV3θS2pZsA*VeG*6jf_.u*xn+ʋ԰YBHR-B0 pw/=%f>\s- *#a89CbAdPf6#0ދ)Nfb D~TtH]Brj.RSG&iT(E<zqdf4]pP26jLL|$}Tv.-\6˫# ߸lNQ6{#$Ў[sW'R"!3˒j핾q! ^m.u;4XgNlÌu!{@^ƅ-]L͏%# ̓1DΜĪAGM%„)__$]ieR?}#F <brɦnCNI#*Y"Rp 7a1tSIu4d[uXtR,(%,DKl1d1^l2_\x`Ü*msdDg)aD۱*/nе_oZsJ"pLn*{HdIT)(((((C>vHTWm*hM&cָM1뫣|VkU+((((4}Ϲ}Ǿ޽.߿>(;^m޸G5Buמ3)C֌vK&H\N_65ka-:z•'{~HHn?Mm{1Pfޏa*~kesz^V`<eϞ)9/>D{}/:vVB sThma\rmU2X>M;뙭׻ٞ3jЍ"n:{臏6tJ`/lY9YJv>)oX؃__:(JVPH D9>v1Ñ݇E˶&klvm9pӎpaubt *rmKyj: 1 4uSYޢȪmogD[zm'Wvo]v_M~p0rG8weOкmG5u*(lRi$Sޡ1%];u;`FQBu&2l? ʒғ'M 6->5|Э[He^[ΩYyMF&2Z|׻Nҋ/V=gsj}AdiC!> pnl|v=eV/\E|9Wgº(ji&ѭH;ulZG2t:Pӯ( ~自?^5~w涹Ϧ]zs~vo^zMÔ<3Ԥ>h.e'=n*'jPF85ʽF=k[5y'o{uO>}:ZxpzݖrώmW٧?h, ww`24k{c/9g;>V^7۾|y\͘ "+[;Ʉ:%w^W{;=XզE^Zvgdg$ ڏ֎3q'>Շw8t}ۼgwW(R׍ݏ(5;vo{.G5YaӇD+ftݼeKNm.5iv5W}nUW ۷}ē9W__П>>3OYU͕ %c.ᢩ4 ukԾٲ-cNnsL.O/6}_G||pu>u۟ݻz>oC5# l߯nGǨjndWv?>w#u_l{c n: K3{n9·w?;/.d\۷o#d<|#Lۘ\>6دHc 2;Ih_IԁÛk67D"w$ohFÑd*3k6E=oE#ntXXi9-@ 6U]׍7L=S;vW5s >Ëi*R7VͨF||mfȇW={o9`b>MC{3J>VPH#1`a[dX'F{؆zW&=ៃу6ZۣL>垚ӷt׺5ox1""Жv|׹FP׍9;koӺݾP ߱}g촵K&gׄs@co^}cw3یOؓCer -uK(-}_{LVMP |uwmf}(7GJ_72ڶvqUV/{9ܜ~kVߪkp|\q Ü;㳖_o:*ƻg_}U_]ͭ7]>&M4R2f%cN=C 35"TlVk= ]Upۜ }k =3pfv>,섽99W5tu#+۷mO{cm=wb-7h0 <0O5k?}z騑E/Tyͽ}웻n|_xh(((?n5*8KBFK>N>U Q(iy0hֱEN[Z۱L>ravΉF2a}.@ ^"uvs ׍̸pꡪ~r'Oz:|6D|NakO\xcĩO>v/O=O;WM iaؾ&N>6K1jW[-v|Žku:Wڰs[s^G|Oؙ 2Nk1oM=gh]}}X#nz[vp~;›am(0Yʔ3? (ϙVS+2VPH?u%\dSE{ZuWc }_Ɲ걥'Q ݷT u'3dLJ7W{w4gHvaGkn|/Fte,O QKB!ȻiHqmRW#pa-~c"cFu?;i}ǹZ{@@>^$y=LiI()Ӄ8dًx.);l%ef+(((((@M %[$/[&P`˜h~ojqcf0#~ǒc>[z63,3m\/yvW&/Lnn\;q.' U?MyQo TKO)SA!1 JՐ$7^.yvxx=WXz^!q>΅B_uʝ%L؜/+g{-JG('xx̢߹ޯ7l JOWKTpcqmw<]]-hQ{L[>>GZ6[o39QUA njkx lLA7ϜM8ϝqGWi.?L أ؄)t7?pˏlු<]MEd84<Տ6]t( [6 #$+sXJ~yCrj闙6iRA$rvfĨ ]yb81(CH"bm9Gi`= 2i^Vϥ(+B7f/1avs_% f(C~_z"ˋ'F` W)|7Z?_nfi޵t.9<3wm06@y.qqBMa&8#*V~'7VWOSBFDfh?޸M= +]BvsT6s9F;o(.uc@y#xPS?J^܆`+wZ]uu$l<\ NZm.5ݹP̹pQoؿۏ#{{wKOow΄;ƾp]+(}5CKp66MK~?zb猳t~S=0'=wi}Sq@7|\iXr:ؑ˾97xK=:Ǥ‘K6O2 %`壬?st|h&/x|`7AbY_e%<γu`ޣ 4"hil\CF=Qfs_`{3jݝs6k>7'{|݈{q-h/K?i`{OV^$^^w) \?jDyi5CH}˚렽ᜩ 19-2Zo˳#G^NΖʾ\Oe&Isy'l*〗IOrꞠMF&ǹ-,S]HA2)avD>&,6;hzy / ߄9sCP{֯Tw%Z֌?pҳ7<5={Oy]7<7oadoDZ&M !ҋ˕NZ7)2L]zMMPO_37½Pq.O[mQƧqOV}\7yUpz8j؏n%v.vt>zc)(4{8i}E<[̼z<+wk3UD]rJ'h}R1Xɾ:宛/߹w#]ԃ; .ԡfVuݲ׵Vͬ`o& Tn}vD"%_LͽCsV&U2S c.\~ReWw̎x`|x0w? 5UB2 L?|)~®! ,E&I|d_ bwW`Ƴs/;ox˳G޿!c8gZiI60#1"~IpF{oNN{5^| c7]^He-BB=}_ש,M ^j=ॱ}_R6E(ɒY0M3=oxa=Ԭ?'\5}zhYW<3WSX7g>7w E>͞|A;X ׾iHA1{iU[/y{vuV׎]_ ջA/ƻ8+7n7pԷQpdP^m`޷VW}$f_yŲ9|.\3)ðAȒ-'?onu{=R 2|M--j /1.L0}TP?WX$k`KӬ!-PmUPPPPh|l1,d8ab*|LmMnKSЌdL!vA|as_ 46bPE˾W]21 |l?61 ֶh8џaE]˿Ģ~ԏQ?MZ10hTw>ݹ:}S饗kPkTM_9kYPfD/0!Pϥ2l؊e`BW+(((((($ol f˨哰1|lqY֒|ZMAAAAA! m65<|d cv!Kd1` e6VPPPPPHM!|&T5B:YsmaW1 dep%FSPPPPPH^}-`m\HciVPPPPPHx  N$ኑIɮ#aSVpB +!ڇ! <o->W4`JJ޼ZAAA1Ah5I>uMUb_нk5 AM HohlfUQJ%;>PPPPP{e-%lNVW~UUzWLϩ7)>7ڴ֠eO,Ks.Y5=|4Y]AAA]!\̼kj̓)GQ$o=!k.Ďb)D,rE镘*rqV3JJ*.'\'L31(jb:9g.vHQ^&Y6V0A3f J/JN 4#Ll_o^.҃f̘}.z248b`K5̕eԼrƸyc->;o E%&אϞV6yyAhJ0vޔEӽ7ۙˡH")˗3ewlmzʙeL3 ?y5gR8+%uUs0wc'Ż S2e^c HD)هZNA6J a~t,r-o#X؝159x;UǍPPPPhքljmDNmXj=(ﺿ }cy _X0S G]3u%??2eyZSeߠֱyc5=8 _5{t3 Gře{4i:8Ǔe2.ߚ_&j:1υxd(99ⲛ}2,S0#<}ܯ|jeUPPP8:4 `_})'o\wN`1đ }-QQ(>](톙lM&$/ݵ6CyKjf$7T Zd ?fJDk |lp2D@[R~MɳZ@&/wWk񡠠c$ctk|lW䘆 9'| xyGf/)kjl?5s|rI44&ɥ0S¹+?𑏁 R+((((M1CGQrzRI ߊmp)TԫcX0V'cه9 GŔqɲ bb.#Us˾ɋghVPPPqB76uly<#of[S[Aޡ%Kb\+((((0wZ璑4&?y%qO2xs%UkQ<6 QVMSO.iLf^usm/S|!CX P1q8c7)Yֽ{'^}O|kcRhZAAAANC`KX`jSPjR#^q5즱x1ȅLrQ#.&V1Li#J$13H99v[P'4"'GŸVPPPPlX,t(+8Jb$^ # (8ZAAAAA,*YBMKytb\+(((("c[FFa8.:i*;G$| Tks1KONwTq̬ 5b\+(((cD,nj3\96 /:8wV1p6`A p=RXA=S?$l?=%A܎HTb a.Zv$W V8(T3[cfL_ݓm0YU(툂Bs)Z\|~'{Nx ;ad@a=4R:y2M-LW ۍ^0$">+r<䝎TA6X'9roJ8YTy9:,`I% QT$oX? a҃['& hY e5]t61_FK3CYFR%딖1}5th *M#۱GPPPPPH3Ms}5ܙ>8<׺7A58 )Dbj[ XKM?0WFY8 )c@@|lQ oHlaGD@&lWAAAAqc7" 9Dm䘀 i: ૠL114+NHLkUceG2VqzRNƺq :ȗjV$$#[+|Bbi`WAAAA!=ۋ)X\Q"KWSc*˛tla^*UPPPPH̱.ұpL25JC)[q2MJnL6P|~sN,[u 5x\3c 8RIl e~gVxD褲2q߳8Y,DRfTŃG~IZ) J=JS3=GW*k8џA3jc:jǙ~dyx_I#%#3o!Q#q&Y[=>:MFϬbs @~T\J ǡWWL;-{tGv/m ~G]匏*W˯>*Y9~PĂ"H \|r#B6ZLX@2A_%q}76C\-)+ pO֡vAYz,\sKW|㞒.<՗.h9(2>ApT9XQXMEtrXjOỹ\xzh 4#ޒ>idO!){6s(z<ݫF^],ye0iXѕM͂yyc=GQGcE-*Mn~F?>}3=D^ # <~[یx՝zt}~jt[d6D}u55J.+祟ST>DwT8鼇b{vqjGrW7ߘݣv {c\ΟU1p(GjSh"z, ͯ,KV/X)Fe;wqLsEyK̔cm`>E`9>W0hy9yk:蠰^nFY==9 `+rQlb%I{S=eGReo|J`HlxGjtX]+CV}nu5*/ fL1ۧƮ/uM0[Q.h4x^ΡA9P r5;rоxt޼)%dXS1w ":l9z8Ӹ 3.J K OYA~Hl3G1؂ٖIr$*֣JW/gx.x?65UYx >HLP^-鉂5v8$kO*WL.-VC?au\S2 G9pV3xywqjGr$TH>ut.TE+[9_mfQ"xNS5 >?MPlwz"LU~ B,8L5EV͌qւw*֌#A}kQk##aq"oe&Na3oqq簪-;=_CYDr1gQD(5Dn6_)FrCq${.R|FSjNΦ*ZY<a%O/S>**5 GX_M$a3؟ϿEFTkB.&؜1Oڀ&Β/[qd5dǩj*((ք|wt.fD/{+Ʌb{F8'}dס؈ dT M`Hq5K>FVLk+dg+cS񣞕GdeXqj0 HǦW"'&826ceN edލc󤠠84J:VPPPPPH/H,^I+(((((ȍF*C*gM4+,~\%yJ+\b8M~NYRRcCTYцGYYn13g9"ˎe1_M GV wxfDF Ը,)n3c?(} O'f9B~M'W4OA1ؕ%:@ciK|GQgS S#ayJ~9M:rfʈڋ pEZdOWC2ư?H rJnnN7L/b<ˀ4+wEv

_6r/B"-'HLA,.8UN1>=hפIe2GMvB 5Yy5rlsY4}bd3ӛޚQcI?VPd)idHrL8<Wb^A~>r?'eҕ5o+Ş<卽4B¢)$5g~"5_ ɹ$c]ǎ=6%q7Xr[\Œ<IN ~r?M32ޏ%Kow}__Lj'&L筭ǖi̳RJQB&Ⱦ gRλ &{>UKFw#;K%w,]Ǡ}FxR>yt2.E{ uAz}cx5_ w5Nk1GytŲm6OVsb.Jr&o?ιf˩r~L}oMP~=O?|*Q{,eԼxӶ'2zPC~VPH3S˭o/c:邋'ǦsT ̅QM[Y v7Ӻc|}2Ϥ x?G"ȫ^`XfYpqUjF%| U((((((4c[1#+RVPPPPPhdǍ*BZ$mӬB~\ 8JkPIm/4NA! C|+Iy Z%qwAC8HvdUTQ%xSXd` j#+TH4fQҊZڥsy33gy|3fΙR`6D{anfr&ApL=wQgUYJ-fPzpUV9fewVJْ8RڛQ%kTT! Zk(C!FYK-LiN'/8o%*6&6&>*ӞT65A}o9Fjڢ>ʆ X9hfJN/.͹Xfi~F^*Ogo;qbO-.&^SeSjr>;frۃ"4eaQ^K&*ϳ*KqL%cfϤp͎ M>L9X@ g*U94cx9G.4vKcnQ{"M]P[+O̼:MJ]qXn$seY;멕:ɫ d|L481Y6AdWOn#V7:63U,-SPAұ8 *6@OCk }XvLWX\^[4/Яm7[}D(#æʞiRMG[+3M>t)őMjFiޞ6 =it19mfFA 4Z=s2Tg?J*irf`{eCs]=6Z 3~TBJD:{!0SOXr6Ry쉵k;dh٬ˢ:mJKq:"1jjI,-+wl\<6k=ܰR$zOҸfq^&ISdқyc_ފFF8fgάu RӴ-jz^\]f68GeryVl8j4/ [~Z56Dbec$9$ǫ:`l̡y.=U}UCD7<{\ڬӦGT&7u.bܔS{+\?^?s~(*Mb ZM'gW&F` zsAh7AAwKMYsWU .C4˦Gv~&[ϼQZuW\ 塛%Hqp}Tgtb*7M h߁YgA}wK?JqoJPjXSƬ|aT䲯0Omֵ 5YԳ159RI+F aFl 7Xb,цXŊ{j zV:5>J<$?:a<_= )r(ɂ П&R^^FF(\t:fXjOe)YRSK%^AX*3ʱATPnKhIY! Z X& v}+'R'ё!ي5babq<-:߹>w7(4z2hbc: Tî6URe Zį&63HJ.qso,OnxGZyLv N7,Zg푩k/}w%vD՞ݴ1x\Y|*H7 jO{S"WHSdWfH8m߅[yyw=[G %ttLxQyRG$/Eww$mQٵu-O/?C ؑ4w¸xIٶǬgubD.pFryaŵcCУ@èaXzoiOFGIE.zF<]o ۦ/5 ag7N֐ ai8|Qٷ9~:c(f8Q9nF3wѺ]\ : Kk.)[x`H[8tDOTQ[G*#^IO; ŌX8?5Hj +^v2BDSZY?;vcB{qsN}õJwI"Zt\k0;NY=V–an ٶYNF5ǃVY/<힘a="?s9>8Z^CC gҊ݋ =?|I%vwGET{v%EVq>>\|>TPY`en=4ZXEG p-.}1Ӎs(7# m$u<،h*T{9>x?;v8;z4-H7n4Յ{gݵTbwF ~ՅLkϮ=HIc(򐳒tWΝyoF_졹'x=DKw~&1l2Kwe_NI_||>赞=|?V>#ǡE LʧpxMD+DkHKVmsXUxGoGܯ@diI,ɓ2vE$ޖn^mQQyR)Ebp֜ȝ}Ue=eIFRMi;KQ1DL]o=wWxޏT}oY+g!SZ"_WUYnpR-u\gѩ"RUɮgsqV*rGjαX\)dN]]rWtX3!7msT {Yo܍ړs-2 ?H2o".cs݃D)*dko_ /v}U6;f@A3S0%W-*ҡϒ5Ż?ɷ=1q'Nt$W?xv%F6JCeU+*$l8$TGMsaU*^t!DF/Dr&e/UN9/N V=&ɹJL-@aq䚐y o$$"NSI) b[ t:Jy=N\Z͋SMtar%+e8"-3ߥv'\1atf{ǁWo~smwϽsw5KRrwz'M16p:y R܀g䭉;ʱCPB!4{y~JPT*3x>s3|lDy䘞rpk8haVN9 0w}ex{<َKfxzS~'Ɨ;^~rÍ!`+ynλ=d$ S&NkJ<Җ !7zoK3WIZ4|h'?أ4"m݈Z, uQ{i0[)1ywu"w(Jb KROUV N38 YTh"C4oUT4wgٮњTF}ӟz[/]yW?}_oyxWvߺ|>_=oh3^|\{wΎϥnweR켣.KZI) ]ͪ|Dxcǵ%nkkǃ07L-\+5YxSIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/figures/rename.png0000644000000000000000000002677211534217015020410 0ustar00rootrootPNG  IHDR[SbKGDC pHYs+ IDATxytՙg޼wޜ̜s&ov668#lc<'a$0`'^0 `Lx`;l˻HekkKnuzZzoYuҋdaH}w]}W_}uvְ2ϝF-~a9"ُuVW=,9AQUDnW((d妚%,Aة+z HDzOލ Ժõp+Dځ` DS Kex%Q}=bUgȇR޸~x|62<^μ;|~R@Q]0nk{{iۻu_I@Tŝ4i#VT 2G5Ir峏}ܶsصͽkg6߮mwֳ{_zɲg)XX ޱ{o.s;Z];wp]dtQ\tiz7xaĹVQ(E_eY{z@/Җ&] }be]H+Љh3A|9lRB@7A78^5(x'oăċìxV$.y^:J[cxv-ò ׹$}[anj ՂR_q#O?W Z>Vڷ}$mlڱ.d+OxoC YCxwokGw|dQ뎏Zd&4m"l(.(n(6Wa9rrm~ۼ%׼eSÖMo}Sd;s*{ݢ:bq Aky& SNF~JHoܡ %ڀnJi( +3@Z8=; bչūCU8pRL/"I*^tH=` M%z[/_ c^6ه1Y9~qmKk/Yod+Fx^3ԓV*Xhr}u }^΁9{{NͿ[`ӯ-^pzUL~dP#d 353(3L3ʳgf(Ξq g_xم3̟yxCfn}F/_66YLU,W5P?݂dYY&w_ qccZqEw&n`;#] t!}zCAv[} 1@HDqcHW? + ¡Bl:'2<+wH>H‡"%-%)D./ҕژbpMw7?zGr)IT4{ٓKL.34gr%0*BE`SEtX|=s6s89;{н~^Qo}|ڏ6Wk?WV?صuŦ'fcbiťj,2In%Ҭ|y9nk+I?rE-XB@zo'~1D퍂$;`{D\;d_9=RFUK9!k6&n+ b9A@0k^YV3+{f 9`IcR͈⢻Do\}7g߃ރhҽGviZs͝R&nVb)[?X W"?r[nm>H ą*"<WpqM*q9 ޘVMe{,Jvrwm#ź+q#j?70QAj^qMG=L\Gbq!MsRLPf|Y\w]Ú$"W:NSJXf؜/DȀZt+vڃ;r0w?|Ϯ?_vegYve]Z.-~~i 5\RV Or\xnys>O?e÷NGy/޳䧿X/ϝq׃ߛr3lQ\V̌Kx_8m.H%f'+A\<_;zWπ*_QqCf qIB@,vaI(IS,)vYϻ|J'θq)@6{ҽ4}q.}?wn+g^~83@+\~k=]=mz@?YտhhӜ1Xt*?[ů={. ~%'vJXqt2qy.@oװ``= $bטtW4T0~qZx4j`:ӡ\\n |/9oUʦuE_+ZJWJֽRӛo\庍i^Ԝ+M iB^i}.o y|ëeozmݫ _}/v6lxI*.wW-ZJVGzpk:w>ݫP)wv/z, K. ;yĭ;$_H,<-K] %Rmh&Ǖ> W<Ɵ'6"uEk .mZ:B5Kn, * ܭ 4V#w߽Qz4zD`?NNrAg@w=)U΂P 7k|WH,O7Eǭ'+WNST#!HP u/VFt7DF5,K-kbX?fE#F+t|zu$o9ED\zF a \.n[CFt9TU**{߲'ȭdOcw~oɝ{oYz׭'߿moVP}߿+ ûA2k{f[d{נV\\rW/+; t6PY*xwW=`:z%/]t*K-e}Q @A^2}h.t bTܪH3LH⢻I]ȻP3t*$ v(=870Q:imuq]9;F4Vn?hAO htSVjaÇ1/bb$JCU4]` !8Q: \KG:!鶓t%|p WP ]U)=-l%}82LX T؃&(9K58 g+-9^(tU}Ii)CRqtrcgC#lq l̮G1fWP݀Y h?zB=ۇ#{qU g< ә:O\qEZ239vn(n A,v-kIiIőe8g ҙp]ݍ)ܽ}G&`>)C\3zWξ GZ [Xݪ8ƼBn[:0n0 g$D@E ?U1@KR]}# (dMȝtSk+L@e=TNSCkkpZeJ,p=\nW']UeʪnkդyPw1J?q*k10yqHv5V QNQ|䖒b @+Ƀo`-=X VIi8'ɕ@9K3ٟdj gU V9m` S 8Çͨgu t)bIRQHr3b:ApWS0۪@ -}W[ Bޕ܍pDg_npkҦB'W->̬ ]sj#ͣtUlH+ V"8HY8ȕ^ "%wIH)Sˬ8LUi(,^>ۙJ'{ IiG53n -# ޱa* DbF {H*v拫R_0 !v"YE+nO10/zv NO: `uZUdᲹ,p/n+Ư*h(X#9tZ7>K ʢUXFAYX 8"h+YK]u&tʇ;*]hUbP)]:7Izܤ"!~4DCIEj(''SDVTrVŋR Kl55`q+eJ˖"Ȍ6]lD.49{/.*)l5/ߠ{U4&0X@$ЌTS<,S÷GῠAu]^*X@?& ¤41r_Ů`IL\Phnjw "OKy(~ JqQWoHtG.+i Iv 0Y"7݀>mqCY|*ż x#{5=H8}<vw5|5*+.,ɗyO*M(.hoaDB1׈ FL05bB!2^d׈ P Ʈ_@W׈L u\tC\#2'FLH!.БP\SԬdk1iʈw0q1U q[ݺ_1Oi#,M}q5H‘>F71@E ↉+$LҸKhFSՉK6C\{ʍia O")wR//b sJژ[".:qW7w *#6+?숎Jp9򧈸 ? ,G&'ci eWu%hY r)Βz5zSssWj6nN碌Pr qٔC?{qbԩz{A}gjq & _}xll虔YuR,++,/o*굩jw* _r$n$>,ϧWW^&y3[yNHt )_U}QN\7*m3Eݣy ])JЦP'zML,n4>,̀J\ tq؟IV*0( ֔eiW}M!+ʸa EEqU +/ΘMq%L+Ŏͮrwzk.SnÉ_UբRn}>O lj[lCj'24@EwIƆ}C@DTt[ӿ^NꯆH/ۙxf])_h7#y{Ojz3f rWj6_#އT\_gLWW,qَRW>|$BFGL: IDATs0ō Pt#AHϸ(?ݷpfDR!!"b]\Db qȐ#1_ ޝ|0b*]#⿺~75fI*ba=~wULO9FdN޾ɁE%sFL/삻vC\#&B-X?tF;`kDs 05"cK`9$]G8Q R qȜݽٱ`P˭55"f(+"CFdz0qߟ"I-`k&nK?&]+&]C\#&@07]7S#!wK#t:U7]mv`8mq0&]Ȼ:V qH"U7*l.FHhŽBĥ*ĭ25͘w q q35'~o q'b$jш[(63b-T}=|3\XpCkLq#n$ `-00:q?Ͼa븉[h q{qI(/=q'(ɘ$*}0O Eqb b/X[5n ~*I>dwQK[;x@8\ՇN4O6M)3;m1gnh3 M>Ka6G)FT#r1t9A:k+@j"G>/ELL=*z"ˑHׁ2dY'e_)[}%̫ú`:^3MY Y/aҽf mw##ֲXq'dwGܯp70um +|wVKq.WtwZfaR،؝m>cN.qAWŽI>] 3k G .q~P~}8˒.v\;q3f!rqEwYE}OH+Z%qT>Y\.˻+ev(Ҥ o֠eX6 3QAW&.;]Z}ą({9雡HM`%`!EobqvVC= 'qRN>EATjlWAdHP@C8ׁ>'Su .{UtQzT Y#Ud;Z4תťkJ=O ~IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/figures/search.png0000644000000000000000000016561611534217015020407 0ustar00rootrootPNG  IHDR&| pHYs+@IDATxXTֿD51kb&QS{/QcoeeޛbOL&77~>} }3g3y[km͏^"nӦu3-FCxˑcF{dGG>o;|^~h5v~oR&#ާSG8"q6q'@f}!:Mſci+]{s:_}>q&'O.{KvgQ*p'|'3KMńm[Ӌ`6llH/\FY>a"4T*6[ &ORre#?N^41s KȲE`?,>s!f̎INOVh'ȵEiލL848a -G)h'9kXcy^[)BE|˕K`]\x(W7ʅ˔Gu6'k]a8A.O^\RYO Kzc]/.\j.QT5ȴuqLd]AA rd]%.AaXs^B%.uE 墬u)u*.+̊U.xq [/\([W_ںN/l]Ƴ.l]K8z5X`]_kg$Xכ1謋"DH֥e.nc]J*뚍KG]jX5o5A@sU 7q3(b&fAbfu"5غÛڢ9o%R.hqqoYE\b [fU.T.KVBT.Ks'^b]&jgde]grYur BYhyR.1R T& +._yŵ׌(WϺb AˤruʺvRHxŊWu]뢕.1z CI V κĕˈu".LGʅ5 OHUQ刕 [Tű."׳ȺdϝY.Wʺ(r g aꑁ1cxqH'^H(Ӣ"R ^%^غ樑uUxqBɺu-FɺlQf]D kӬg1-\b1֦̂㧚|hkhoh=cl %7_I r_mXZ\(.yZֈ(΂!ꍵG7~50RԷ47/i(v.v.Ĕb*+kk}}/:7:k iunuiuiuiu]j]]*]ʼ]J]0.E*r D\pY  !ւ VK`]kPKa H3hNCxِ0DC i@7\[euu-H0M^DT5{*B#]xUb<+  |+m,,,K?_`%s hbpRO%uX{;z쪎iJVƠ jm.s`c+ۅS4?b)91K Qa100 <yyF.nEV/<Õ[pз8e̴,q#.W.d]FK^A.SVzà/ uѾͺM]^\(M).vtP.V.Ѭ˴ru]QYћnA.:|g ʋpՏmX/g^7= +k]LE4R.,{9RՋǑr낮/ʺp_3B׳D%z[ uY[/D M]ȺȺcGC@kx!dd]PdLe+/d]3* ΨYP5^uAUgm # (Wn[OA9kH!CBܿҶCU7 DQ9ZVZ^Fvy YN'ϝ9w2ɂs'Ν(9w܉s']NԸw9ހ8vn.x7 ?_Op>Q Ox=|'+R;J\oZ51Z:!2sܿuo:@B~tE~jL˵VD\k;G ë0WU[h^UtSxlp)Rx=J]QV %%,hih<;bKMY{GGm᫹S .3x\*.zU_D4Į;H1 &WN pRoYΆ93hjIwNvw QVSqܶ,Zʠ:eLS><<$](xު=Pwvt^1򭞔ocloY\ .3vru3C8XuY#`]gt@˕g]}ŇR.SYxy厕KuZyXA+=cWnÔt+=\%,/VzcׄYk]Fr.re]L۽ p.rYb@Y.\oq ]"?rd\BZ-^ȺIJ. xBb]T#Q+}<0qWPSS/^uig2U^sUx֥X[օTk(Ws3[egP EbEr  ٘bmc=o=%WN \%E@* Ӫ3_g:v8p(t8Tx`郕Ԝ>Pi8}lopp`*L"ys8r8p8e 1Ƽ%P1ŗ,_hc Pֵsh[te~!;9ķ\ d F+mլ4m7R^zMmY.vХ\A#)X$_tzK ׀xB81b)1沣6W]R7_aP5YܟۦBkEtU6_ Z |5j>ڗsY~MTzpaw3{p! Ñ^@}}:]kJ@QbkH} \}S>=9?k[E,ywu!A+]8a<9,C8P4(Bf?*ِVij.gǦOV`$tžQ/\}/Doф-Ae)\(y)XGqy E;L*WC*[VzxL)/r`]Oyش.?ѬKmGP]r=̈.h\4O j3#xWܺ3#ό4uEfF<0&Z993#x]N(6uq.̇`].b]Tf]xwaK ^bh]!غB_qc ^u)W TŎ'$ݰ$d]᦭+g]QȺlEYXuc]xYoW#^* k]iʽc"%/9*~KT":' z< i ʧےغSs`[*3u^u Ri: !1J*;*;jvvklk\k&wMZ6lJ0d<9SnP ]TvQEyke]vQE5)kl&/^mZe3 Yx-,FO Xך%g;*[6@4|+퀒"ԶD߂ HH%^if=TɍܸkjGqAaΒMȺn` ՙxhNv+M=ppFv\cM5"cERڮhzYNJi\/>>x=!ա \om'`q].B4V* UKJlxJ).Xܗ Xt'Ǧ[Y]C>V< L`#zd(PBXl 3gF s!R^>hD)YǷ:4 }xe (-X ZHalz˒oabKP%R^}e<2єuaz2f]b[?Bm`| -/vt K0Jϵ.V8/ ʋ.^yQlLSa˕\}8]T=Gǰ3#EZ@9]VTeM ޜ$Xu9cr6u!zYWκ{U70 N(UaΊK#^d+UԺ>K."^u/$[Z6ˆHa=#`æ<qD(BTxL\ËY5mʵϊZRZoy䩰rU-;t]R-'BǕȄJY̻ڢ_E>|_d`mUv%,U4ɺV= G2o_"Bn|Ux뫈֓B黷oIK_mΙ[юلvDٶF͍,ֳۙJo5kuĒki",7 TGxfm'z6:=/' 6THFa#&˵c#E.xsI*GI(b-"[J\Vg#U.3R.KF:U^<q*uѝ1]ĺ=A&0:p蠉&4*j(S'Nh[, ;\1yupF5b*uE<J}{yi)f)YowCI쪻P HeD.z-=2_Zr¾S.,^Vs"SnʵU.Bǒ=wZ#VV|Ǝ޸aؤڂ[H oꎊ\-NBa6[\B̭kۉr9`Ja}FriD'kz=hfH,2'8R r#\u. mqh'i1Ǵr&H`kQ)9\oHPi_Nwa&o | [ķB)r}D /:!AŃX9...b![頋o]h"zκD^S.x:,/ ZW3#RPչ2 V.Gwt 2mzݸuj0XEw;0Fyaօ["x.'HzN%.wuY܋.'N͌HzYL, ˕q+j3ғ #m]cÓ+/C6uS$Hw[dr/%uaK7OIYuFνu-PHUpsɲKvr;?Z{NZ29[Z+'V5+1K;z;_6 H)?4qf” /_V/^0 )m\oQra+矁ʝ^!+s{kn׆u:܏boصTV@ĕJКfPR.t'o!Rd!) r)W\(QJRXRqe+װA5+L}jۏN/&܂zb5$]2yd(?'+!(&qzxH-vr n`rA#x`ɺz8>gFpO.9S3#u1Yxř2gL \ј.:bKt>jec:\o\+d=:ǺM]EHzzf]O%g]!BLFuؓuXSsVOћI{ƺhZu@4>y`F^&{uAyq|MAĺg]“qűf3#-^$PE5SNG֕Xuatu!ȺR#e]h"urdedN(ͧʠBVSǯA*{~|&$KhºЄaIÓ7F$oHelNTFQB|*mzvJܹ*eJ+3|Ӝ}b :"~$|VޕWw']}u1W`o[*Mx$QKGzBq9>-&܊G(Cl+!CѠE騵ɣ xaa;6-q@scQ/hb̫|Ord&o#ķl1Njj)FˢeYW'ˋBn݋̈d$=EFXS^r3f]>BzcrX"5L"ܺ؛5_x%h1ʺYr/?keJ=GmfODYU3YBYjYd]ၱ#F@k%^غY GuE"XX>{e]TօJh\uV:ʺRY /u)f;q=Y QZh(L4Ch((tEhU5]lFlQ)3(;i;iTu0JeG6;DG܁'؞|`Vݑ[3n>5[ OnJNn.5BĖ[rOn9ϳ ݦ;Msx[mIGw0ޥB*z )?oQc߿g\2Kw ͝p᪹fOlڽ|~yjQ;rjW2bZAZX"=1jĴ=ȽJXB[L& fݤ۬rnbB^8G蠋BV p| Oʠ)ӕDu$ W٪uww\gWi+߷nr} Kc-V.]=}4lѾUq} mX"&3d0E{U\phfŤM [FC#Ó1í?F\;޷ꚔRܺbLW? ׺But nuĖKiں59TᘮN]$ZHzO~ [%^2s1)@}od;{%cAAyijL=*/F]Tm jRtS-ؓ0r1|OOb]DpG҈~c}GԃuMY+.JJ?GjƎFE]Itu.-4E"(ɺs6ĺ謋r/ƺTBڛQSY7h+򊓚.ň[OSG_u8k껸Kx> @[bc[RD"*r4adS]]I,A]T%jU)FQ6cZ|.РQ֦k5J Q]IHU_pq7bFrUܣ?b[r(Rb\{{RVqhQfq.Ϣ*щ:[ɐ %.Т^t FBJ9|P!(SM#֗Xr>Ȑ0FoB΢s'\' sPEu?qi0ޑ;pƽCJaH ( ʓC^V ۡUqf|#OfR#^=)/ 4=(tӥ\l8ܡ".*?p„*њaFvp3ފ';= 7ۿ6}&GNF*:f䜅\FPE0f"Ƽ3 / zyW~vȫvC_6`ɰ7?1pAG d\Facґl7|[{cѰ7lX8 f9p} +׷r} }k[FIJ?5>3Y{}9`]+ft?`ulg`<4T(H}eT"DTNoNU8*ch O.8")T /f*=$@݉ΣGjW^dQ\lsJѹCx}uMdeI>D#3%d|5GSj[d@<9@xs$7 ~3UO^̏ȷ OdP~yEAC{" }+ޙJd|A˲(b\uC 2hA[igΞxMphuf]݋Z4Kx/sb#|f]EUGYW.QzfF6999# $"M 5Pjj5T&<& DD>Fg`seu0li-L0/ \j*=*/E.6뢃hC2X%R^a,h>PJߡrqcH棲58 fKTˋƆG XHGßrg \uQE)Ws|TE.Vhs E-Hّ(MxEܸ e]O`7f]/..׽knzK3"*ĺ64fYR. vfg \@ ZDp|t x'#t̬֓W먹1--V#lcFX`bueY 1iXB'q+3VgLV%eNαO]F.` ڢ:]77lћb+mi=DP|+׷\;2JvfBE =9.XcE^Y8;&¾6tՁuYr=u]ƕC;{;/cVdr*u ]M)uqRYsXAqYʺ1օ۹pd]NSg]L%>ttq/.N/c]Tё.Z ]gXB#BޒVzu%[WX0*bŋWaLZdP._agw) HP)MKZG(BW\\~!BsSĺ`f=.x֥ZR.POYK65(YGxאSO2[pV &oغU)G\Qg@;aDK9D2MM*/z C,MO>(1Fn42T \88s Y'Dӥupd$wu(9U⟓8Ay|yG!p^!(A@4ಘ j|twlٜ^)hcmkRSMުMZ+o&k=e]ErYiy2a]Cj~%[DXَ䀲.Mu+5A0SsZ8ȡI|+3%"8bk1|N=Y\@'TGVU ::_y jpr3GŻ3we vҋwY !ښ^hpQWAQg>@H|{-&5&oejJ!} x)/G\8fX$).16!hqB" >&>&.}a\:҂MbƤԀ~Z?KACJ-aR;U:E[(|^d؈G ي}[/)?{(߲rfN&[ 㯧\QaDBh\LutD˒tgFVzHzuMBet=kr.]b253b̼u2f]7L[Hz3:sg.D>WFQ2b]"5<o]rqt .2>Z.8RFں( 9 w HLYiz[>YzX@[q#AF$]$BqSϳb]uE#ʱ.ԑhx֥ X}e _u6u-.FṵOpE.(/BeL]ڤ+{Z")ϟL6]B'^VȅWϣ/ vF'|̥,l7]+lGe1ӦBJyk ]9jMVBCX¤lH?N"IҤ%Jl!OʴȰX0qPΔ1f6ʜfƤA ~ Ё$MÞy*LLN Ẅ́S>L~?:ca @vX0:,~dh,q{xgRWLK$[мd!-4[BYraڶJl.BmC+E' z僌7{XyQ&-rE4A5 rE.S#E[I]>N*ɑׯWʋ)W'.T2J?؄u*`/k]z=g g]2W.Lr ˋtźwe.b`=O!zi[wQG2Yj}nXW`pY z7d4+huq+.@e]ѩLE#JgLItwuQ ^ ʺ(j]ܸK`]HbtܸkJ1>g tUfrFa'ff;l[f-%̒@F1^!XVN_FWh-XJ&Oٟ$e-3%fK3&f,2m2 mBxNb gB)m:mZ?SHHsBLfNVj')t y@tњSދJA4@c Gc]Cіc`tH¨Є!@zRaAWR=.{:B}]rXkXϔrǏd b_鰠Ok{F 2̲QV;hF^ÖtJ7"Xlِ&d}UZ|]VH' VjORP-wI3$dŧƧ/K[f 6m~ b^~)fGʝܩt3T`(v"혤HDC.|QQ)#QE4c#SލLyR% OiXᤝDB AD!CD*P=$0f0B=(P=0@Bj5?%H+~ e_9O wsz!{xDq0 [aѾ(+[thTbGttuoэ#sݺZ,;\|9: ׺P+}_cEc[M*b`ud5hz;:z=)$]jOS/]KlFfw1Pg 0xj] rԆ&x]W+6 AjpVJCSע]/ ?4x̋f؝"/LPi? .4ѣw"x!*0ޕ@@~U=Rf $%`uc[.iB8̈́36/i Ev_GCH(S7DO |/ȣaBY,MC%PЀ(GSmH:}84~, z DM AV(j j j ZV^Q)RTF-ЄF9 CEL [ތ1-ԛxB+hopNGӎAv kx@ Z%hOt >\j״b.JzueLu=Fp&\3![j!ٝ!)o뭆r~7(2=[[w/.}r[sk ;\ #’IG粔?z$ۇ{~N3p>)~CFRAc,5Yq#FlC`mm%g? XR2X' NYhTr s}2Wu?fQ.^Drߗ0'hU"\1D~UBBBBBBBBL@:\?~EBBBBBBBBL@:\?7>rew\[w\ׯWp؄D_gW'_+_vՓh4_^7 s%$$$$$$D@rm՗brw)wt彿o{IEm<Q|:1x r5_ğ WuQeIRtr5^!~}NݳcZNW|^^_k(j[󪫫V. תv`];F>_\W{:Oĕkk*W2*=x݅uW= 67#b\-_[nF*XA)//wxԠ5%뒐xXڔ/9[R{.鶶j|F?~/m-kjjr7YԲ2𭜜S^ _}]/rmU-.Q.?aߖ^QٞYq-=oßַ|6A&R. U4[pjbb[MT+mڼ}ϡu܇ ҏxu~DNo %_, Cڬ3\Bb]r 8xi5Il.n 3Nu-'& yoX/߂07UŒ0\upﻍȺ HӚ?w嚵;)uAE|\}?,E\no`*Ôv7a_XLkJ%!!!!!!)xʵKWg]Y0"1G zWߒ|KBBBBBBCڤ+Dk6=x咐?\ĺXJ"AW\]\{5(uڼ(B\ڣcK?K ʵшr}ʵ6+;V3?V:8bL֐Fl9e?ޏ}$;$U_L/~$$$$$$$:.,Su8ڀM)W{%KAS.VKŕ <8YRVq_v\9MݒU.}1Gf&k=2oH>&QHZ/{0X,b Dcl("&;[XEolu%;RR. US+%k&3R.ڱXdF)\ZF3`{&#_.RUu? GXĵLBBBBBBBR.#PrNβֵFq16Wq ԍ{Hiޢ3H|"ŊϬvQ傔87)񒐐rBE72uP.VLDZK$:1 +tERן\fIHHHHHH(ml|U:re)Yk4W*_ *%+SkQ5>OW锋[|f]LFur咔KBBBBBBsʕeBV%e Jqu5}'FrȨھ_>`9R.1Q5R:\jdԟ~ה%rgj'B5U5/@BB&^rwo7 x޺mm7w 7szӃݶ1Ҷ1̢])h@N -%$TRUiA[0]//23κ7n܈_D|/`0loCP,A+r5/! 2q7G(XK¯|bjYz= "G=:ez;sr}U <k@@ `0l8X\}vE`{VF/X]̒{z=:zn7/!w${`*Y~w]^guE}Ww?/Ն&cV~oI]%-V=}uo|Ujo޸>i\`05OQ{W10S ] } w{uF۬*W>}rմ++{_/ܲ;7N)_enϟg,V?suozU=k)$0 1|@ ,dSW\osbZko:LN`0 'Eea񈷰 Ӌ::ν'`0 `v4FgEkѿ>OyQr{]N`0 S\,\>oyԵ`>N=`0 s4ObKEDD\Oqwi `01|\++% `_} k{O`0 S\ϽϭdDQ8r`0 h}).ؿf < rv}`0 Ce{|ٗ<% o.o,8V0 `0G;#s+-+5bƢo wu `0|*|Z Wcz `0X*S\rԵYAARak*f?MFg֨2  ޒ"\zfI`W=$@bp> Yȵa`ѫYruD]1r B \p&!5[roE{\@. r עU?E*r-m Er  ʅ\hu u赿_,@ňr  ʁ\akjf rQn=}@. AAk:U"rmٷrAAV3RX˘}wK( \u຅~l\C5?U8r5ZAAЈB _#׶ǾeeKzK(WRQU7 Yrv>/BX.Ձ\AQ~kWdjgR"W>`qrГ2F"w0-9ٮ~;ns]pk?]ᆟ4fܘcG?ܻAA\/ZEDx{R;r#SWETcTre[4_}?so&?0)?M1wrAA WTr1<ό(W#kD!8$ >]s NH.<@.`|A[/)>l,zQcF'5vԵ.o7ec~p/X  +¢\*r9g3^' W1eHBly",E_{xKD.[K#[zu7Qws3?u2^^. D{'>rQ.aaGٳg\A3[Wݬ VS3fZ @A~x[2rrOa r  ky\+r|n\ҍ`boF\A4␫~KWr\;ܴdBz   (r֒UXKeyJF]-r  ʊ\+|Œտ\WArUd  (3rŒU\WK""c\/|[wU r`0  L ^=ֲՌrUu1{ AA2‘௼Kr:-ϯf  (3r;x2[o}~ͯ5k%  (rV[2r]kš[_ke?  (#r;ekn{~m/x&!/QWf  "![oqj7ZF]̀\AAkuߡ^X{\w,_Xk~ AAPFZyֵNv?qw.AA W|q]/L@w]+_{AAQ׏^#מWn ̀\AAkãod5f1+drӘ1Z  ʊ\b[#W7[\AAkK<[iMvr'D AAP6xĕ/WYBIk7{fs}"\ !wtȤ՛Y[|\^;y-&QwBA4wfʌ#WSSo?_rAAeD͇޿vfN]MBiMf AAPVQFZ"w݌  ʎ\Ǧn̺%䚹{жrAAeD;Y?yjuڴ}c@. lPjl>wvNܗC>2' 6?~;ǀ3Mu玣@.4B+fNneȂRJ˖eJ=eף:v=ֽk\'Z+( и#!ן%evx|[uԙ'~Q^@. hVF@@ȵ2L@g|e72۾{ױ: j䂆ͼTbʁEC"Ww_ <ړݻ=\>;xʞvW&OuGLRk'+\*r :S4jѤ?iRy)mG:( rƵ+z\рpdq]dkO3H=D¢\n)!t_5qz9I._rytF PB9@v6//e"i^Ҥ0o[`ٗY6Rl#8?߂\\⛏c߬\qԊXy=쿿߹#3gkol{JF.V *-"\P ob @MQ_kF%uߦۅqX *?_B.VQ1N?xZ)k߱'!43p2r =(л9(.h*Tz*FWO\% K94|S@ꔩKv5O5jUEA{[~"M K8J:9#1GQƣ;+_7WܱVL|S~b(ص/6\Gμ{r"+.\iQ6U>"}pYpGDҿ3 QeQě@@Hg;+=3 1@TZt\]g,Qu4'o<*5GI|:)?r8l$Zݡ\ ;Ekzi {b,@* Oy%-,(mUУ:f꒞-2^z1m5ʥv9Er{B-+╷r-nT[uepls"׾ w-l-鋬w_K\|hh{'͸\|a1Kb)S]VCH s!r%lԄ) u#$ů[C)&Z>B- ?B) |@ (^;hw:➾Z\^תwj0Э/awi|(!WxQuř"tEÌwS ,/Ži7cʁ߶oTMJ걟kC0 W/f6mz~l;4#Wk[?0 3[[S#_CD^(J3-n w D6Ĉ\q*rKʾYkkP Eye:oחZ&րrF]\)/_.EKNk4?rv* +fz:v폭d%S\My/C? + \!IG./nGꄮ+M%y =rG.͏) U=4>k ? ٳ; 24_X c`|Iv`D^{u= ! PrY~ML_hBi{lK{:wE?ò(wH2%~ lS%x+ky@#8nEp@ p*N3yKF`{kg'O㟵rĩ wQ3PC%:y֋Bu7x1@. hVF@\gΜVX9ރ=(#WZ+( и#2#זTrxKE "r0@ 2jreF>r1{7\P`/:pHF.4B+f!\O\X̪>Ub ŮaAhe |7zSblYy+˵"őh.f{k@.4B+fNn1cL8q ːe2σ\='VǮ#˯3K`W,E 6#v$O0QX8DžeȲ<"r=SK=[ rZy/'=I>0nk\=z5 /  ʍ\u)5 >r5AA?~^L]ruY@. <5GAqaqqO?.dȵ~+  (#rGD `f  r!׸y?VFAA6t_:n%^:ve rq3  ʁ\/;!W@]*rޱ3\AAkνxy AA.knȵ/q  (r͹h\H]ryc߷~KN0q n֫Zc8{SV7S1,ʦ ˮFZҍ_@ C ryQ\3zט\gT!Q\{dibYXzsQK/h,ƆR̈́\44]!#πO!2'jЊ7#WKeiL"ջAb:ZM3Q'%{eg4~y~5W kڋ N Ua\Sdt|j*gt`}c%!׻z9z䢑k[wh׿\@.ɀEa>*RGĪHHܯvɲZU:=5آ\xR4kt^uzXUM7Ok%6qTVtґlV4;x'uGK]&ʕknV=Yy+ːKw `ҿҙbhNa]D\u?Cs.`Ǻd;FyV rmvn{7l(x! R*90*r /0|.Q.qo?<^V)b\ Q$ᣤAO}Ak%5>nn_Mf@ DxRt|i+3Ot0$'H(b+d4^JP~ 2 7,`em!&j3@7vWBw yw.a]gDZcǎֽ{P>o~rrIk~ݣ\`*p}  9zϳ5wby쏢b2R[V_ˡ/ $ PDT+@-.R"Q5{}*scCV˿UnR-Ka"L=DZLI<):*\3b6!lz1zy\-~=?pȑ#کHIH(c<9% jO 2r7Q%넑y*D ggP^}@^5WuM 0~U3Џ S$J~'4mr *;x\p}]΍t ?n -˺m:l!/hdcEqU~GE-{,QNjӇ2;C3(^748+~ ?NOO-AaVv{-ZNf N۽aһeL Vdk3@/#׳{SCk꤂+Aĉ#TxGvM\+l6({ԅ67|UiMeC{i64 ))V:4̐u3z6wѳ uwaȵvmۺz{:tѣǎ>|(đ^ 6=z,)TooCwoeBL -?[~l΁\E^+pLȟEP ~N ?9&3"Wb!&{IA]PzѡJ O~1r))voÒ#5)'2%~Tgr~Ϙu5p*l|\rQr A<ڟ"f"Ea6 Y8xN1 m} d 0>bދ;]~^+o?sx;J)_WM+M+&-o.R%_H+Mr߇? az[Ut,CK6^-B[ 0C[\_[FFo,BpTu  5'. AAP)1sP AAPP   r!X AAP k,  L:zQ  ,:?@@.  AAPEqsE שSL h ofCؿ( uIvʑ#G!W@]2rrA U0r,  \!<d Bp2ȷ7nra;CV5z5,}C,"r Z\ k1rTIiĦj `<7;V"rIĥ֨)`ZoD@1ȗ\7>BqrE^"#a_ O^㧆4eĩ +F.>O^"=MEZÅ&^*׫2_5 A\O>{,oQP\#2-8EY-'sB&&َR "mD:І ЗrW|k_+rODu[.H\ool/Gsl\''K5|>*.`O_xO?Y8x( StUFx*;e5kqg6."%]X;kWRi:&H'{O`0, #W[?Ǎw]wԕ l~ԥ#W`e#W8%Jclg*G4ȥ܅:eUDLg \C W^ܟɠS᳄m"r/\0 bbt|妛n5kSO=>F/kz (W Jʣ-5ϼnB.p JxzΠD|* h,(Ur`0Xჼ)ʥ+Wku1+$m ~F8=,0$O%Dov'B [o;piob|Ʊd\fVf{c3y(eIO /jca0 g,G"B2ꇔ #=rm ҄\]!yˎ\d`ʄ\[@fD6` Ž%ՈXb9`0l"ׅK@=o7$2K\5z|_R>_՗l3iӵno~.yYO]mS16je{jy;"[XƝa5~CD9^pAO-qʧv/0 s[\՗[ϼ_9l[Ɛpisp֗Fosp4Kk}]Dų]/ᷞJW9CVQJK.-TT]ߺO 늑Kǝ”%2ʋ `E@r]H"9 A!> 0 *&\3bJ\ou١ko}}C.`p  D`yQBs0䚑 x'O;g`0 "g>u)5C@.z#\9r;vVL]i  h5u+MO"Wyf;v9bZ[쇘 A4"Df"= `0lhXk\`>{mr`0 rA.k5~;@ `0+rԥ ל Ũkz  `0 W>䊨KC 5!6  `0 Wf亸Pr1r`0 reGM6 `05'0  `0 Wn \F/z76w mn[{ImK{:ۊ-FVĻ;斷T~}ڮtz`yub%[8tQwz\WvS-IUO+9\BH kk@Xc`1:j3ѲsN5bג?, r:UYO)8=Q+ K4`iO'Ø2yn9RxzJ6 ?/V FIyǺ{r#>?@%[KnD菘L]`m1 dΓ@2 HW$L⳵:yh QxHAZ1~jIYKr2ȥ51}Gsd]rOtqat3ZhN0yb?U$6Xvkֹ˔g6 *t}pTq-{Gt?=Lq"IذC\7)n-Sq'46.k@]ܪ<{7 A.[˲2kЯAYנ&h 2YRr Z0 _2Đ+ŶҐ{(uWOw49t!᳓6t|+q/xg1Gݨ+q7:EjѡK\mc=O%I U$ݑK_S4?u tz\a/4lr0ravu4yJ=(O)ʋ24r);RӺ#^KwqY\sy#}%LڌEƖ"9^~B|i7[ r RZȍAA\73 AA@ґ˧. AA@\uO"rrAAʍ\$"z AA@u=  r j֫J!ZoZQAZE,8[*HB+ʬ4vwjmgKu="׹">?@yG?2IZM*2nkUs| 2 ?A8_:Q׊` 5O!L'nH<˥>4w)M_DI٣yU*FA]H,Mݻ ޛv7za:r'.S}MVFt" [K+mdh{Inp{Pbti" dPic`ȓ&L<8V]r3$3 \KEsB.2q p sjq0-o , BI8zzJ0~(/Qma*UxHRq{cyba:y%A"K[g!L$߼RDgCU R!:E{OkwKU{$DiO.9l#sEadh_T>%ŴZȡ2D#' d%X\m(g 2 ץr]#׹E WH$~PF4Q1d X+!3[{8֮TAy.QnTSEKErF.F~m(ԫkisZM-PSi\+=n3Հ1 yJ6";=\d{jgYtˁGnINri< ggKq d9\:rM*H|\d ep C.y+oTr. Ā%K hRQ"Km:^Rm rCPۑklr%a KDs͊IaplD,]u+N!>["PSl;?uuàOu tHK{ɫD-jc=WtZ\3r}$a+y`]qA I>ؽT䆸p "U|-Ew.zHª:,q x13 ҃Uuu;&; d3z`q:mGr*^-TM6S;^)MQՂڒf؛Poh7M%zh:y)zN׋;g^Jlj:UӼS}懟z pZMռGjv`oRGڎNlE inΣn'x*FΥ¨beUGLR(2:F Jk!(<2P/YkՙzU(c9\3jAN ۴Hɐx+dgEFg//4jCsf(6~adm, *wD#[Ce{VO͡eF{0ڄ\  r\Dwؙ  r\3\A"F AA@Iې AA@|5u+-ظ@. \ّk ry  WxC"  W5e&οu]  Ur]8&=lA@. \ِ{ u  r\7vug\AGn{9u@  Wuڭ51s7n[^,x`蛖sV|eiF}EZ5\UrQIb^֑>$ 9*#>!EȵfB>}s#WV׫r1y0;jo$!v% n5J'V\)ό04,&fƁ. ;3ɹ+U2"Gk)7bqjVʮē鵪9O>NWU\ n I)[\C$ 4 A} P&NG=O 㧏"տ"Q$Yhvq/CHЫp:Yd6i'0:ѓ>O8߉-|+"on[Ib"O5rAP+kw9=[^, AбQǗ C0ePֿq%!B  䀇u,pX*3rI5#3^gdFL>u!Tmdγ(%Z\ rSetLmjZ!(OA+7riu-/\MdWE> lK@.˅3^r :z>%.$m8Tdv2YB%D;C~"L ˾ 䂠Fu&kc=7nL\|Suˋ%"F17'ŗ6 M>w'nHDLo*5y_,uuCtqө"B.U)i_u..s\^'w=y^Ӥ{,?eyr"+iM*O {t/&=DoC _t z=zȑ9xо}/'̂\M=i[^,5%E;n62!hĤՂڒFYrCmÑ uSڮN^j"EGbbģexNu > (ؚ\XF-_X4ܑ q%ZD۴4&'OV/ؐ'9\\SLaԩl(طoOϾ]l޲mU[vw}ksnQzkp/Rf{TֆktvP A#ӧٖ׎;gϾ;woe֭WYreGۦ{4F]rAxi6kڦ~ 4:s Gwݽcm6l^j /شisf -/ڑ  reD_O_^$k3 AA@b6;\AA.߀\A\AArAAjr    rAA AA@. AA    =gȊAf*{`pԨUr~˺$b[ *uJNeAHGN5[r#WV׫r1y0୎InqHEj]U25r盲J \<#ry=ݳeVkTv%OUyA>ȸZR7qm'5E^+ZBB2.'95*ݐÔQ:7cO-hJn*#}SyZC"MiK+<~ k5HzZ,d,A@.䚼zKK')eYC:Ȇj3C8ƓRU0 =?Ly D%|~aQ^գT$t" .c<0Bڹ /{E,~6+bʗLR$DnrѰscU+d!od͕[%+9pAK% s192g磨,UN=d6bյyN8EIOP$T$gjve쨫LN)riyyHE#wq.DhA.CK}))DG2yar#,l2TsD.fA]* 붲XT\sz7emcQU jK5)I mhvCدN^'"EGb? [[Q#cG2~xƐn 4eZ:燇\dH7AP"W AENup APG ׹"r=  :w؀\AJG\  ȕCہ\A\AA@. AA@.AAr  U"rM AA AA4v AA@rk  WYu΋DjԂTZoJǣz7>$T]~v'_:0;?;+oTQrz5 ::#d 3<{ϧY)=3iA;U;(u(oB4ryK<[  ƭzUٰ"[0&553i)S( 2[qh =C8=v6Z,a5>}%x+J\I+w[izG} WE+1>Y&GW^!2!MZդJ hܷ<4B0ŏӉ7D+p.WS-!5k(D% r ( E.['33 ̯[BzcI6 t- W3^ĈJU`DcMذT¢.$j OwYTit9O|ZjeeEZƯ/^]gǪ#)ὴHuį"IrB)J)/O/*dN=)9U{G&A뼱+3%m4gp?74J&ߍ%ZazMl:]#/8)C-DЬ#1K W^CTu˽>M;\.M/rF"W`;%c6 S "iNM*d/e񌠍L gξd¢+fE.ߕ \D}*_ryw_Mj WK\UȥlX䣛y.צ/r Eӥ5Qq"ĊRkǪ݃XM̃\Fz9ԬGΤu/[LIr1QW^@. \!W`r}Gi  reEvÀ\AJB  reC ]wrAA*unjw1>u  r\SDw  r  ,r9ç@. \e"WD]@. \e"O]@. \#}kΙ1u   Ur1 B AA@"k\(ji֫H(OYk(_`w]YF%״ήt~ttְ␥[l2mlL|zpu?]MNs Ed/}:Y{*\,,Dws{=Q>;)uC[侮vuL 5ђ֌.H|*]rtUNlȍJJrw?=q:5³14뮙1uqZc*la1 (V̒S ŸOP]Zդ$BaUs<\dLG#HՅh%=n%FjU<(g%H,y:=J U{DM -V{ 0יb-sHGyCsP^G|:?dDZrqrD@~1;Փ7> ə<(^gh?@CwŒ @.N0 smghJN|^Kjfʸ!a/>ʋHRɑ0OC9pz줨>nhx }Zp BV콕$ӯN|TzME a:[\񛤪㤾^iKS WT%PnO{.輭;.o@. \+.z`C䂠%o-LޞL) )w+iR SHn%L^|6[rw":rُ=m@.JRiWiG<O$R͆n.Fr:gʁs:ݵVIO~0u1@NCSꚟfxYn򔵆C\L%T|NT$u҄?ӗJ7[F@rsDH*|Xq<TfQK8xe=2G噿Ɋ-o8U0~!w=fm8Lk=CuE#r̃\P LҨ߲G-}Ϲ',jT8stf:=H'KS,*K刃LƁԨR"!W(=jX!΂(W#WbKq<>voQZP]Zդh%_!GŨ^$M|dG< D ƒQ.8LvѯlȕyKmX7v9gGǛJT.mqaZ 󔜒hn+iıR*aq)BcIlq5wr9"W`Fz(?r5#NCïf C6OB`_x'$jxN> Xh(JɿWu?<阼zUP jC?ʕ90c+@Viݣ٢eeNS륀EaoPihniW{ivԡ\`QJ;V.g r]NҐknEQdi,-ߍ%Sfao"EUT*(Q)Jf} Ziݩ2;㛃"$>01̷.3K@&zPXbkWf4VM8J0xJ[ѓrY"yR%Y$Deү.5zͳx\\]R"otE.iG8eWYT TVԻM2^)HS{̸i6}$>LXʛ&^_T߸ihlߘ(GΊ}58`7,+ky!ѲCR򩋊r.xaquzH}Ȇ}S2o{yOIε A_gm%9UNVH7v 3!W@]r+-1h8:B uy1u>r}aΣ|a!?  r@T ,\X  ȕ.$r r  rB.Խ\  rG_48%Gf(#@. \ ׸@\1z{  W /,6 AA@ky}fȅ7! r@.]r}~Q,,BA*|^. \  \A ׆{Ќ\>u} 4etG?^jPKP$;J{\R+[3Chi)r#7  a)t b/g3 3r!!2'DI3Ctirȵm%Q ZoGjT(OYk9DŴ_BxώLEZ*M3}!Bc.vjOTВļ{PKxZ\Eʃ\rDO YMRfU62:sJ5AF]x\ rH39s$w5jpQKtxsn N25YUSs`UuuY)-zyԖb}ӉBH2K JG_a\|Q-|2o83ԑ˷=Xr_&0 Rw(؋4YjMyWFV\mG.rrYJ.\zfYʙMS퉿ePd<ȕ*72*8:ئ*s"@B.S/KުRrl'.A 0H,O->X1MtS+bǴҮ\Ye WKdL,utPF.B@Z%xKR֎h# UWḲi:J%?MHC߂=tqF.uO9v3Px+%RE,re&'XK˱EՀ5!\-QLOlW/5M+Cx15a~L]rG.UPc~P׶YVQ!e(p=Bگ\vNJ"oQ<]puQ4Nك,bfGvwp_ W$j0y4 i_%Vn!nre+0Pn[_HX+X~u릅ct!qg`L=~r+& -+)5oOlJ/g|qf$!WD]r]>aF]x8BѡSbJTyB' M\^ϳ<[iCJ3#.0҈ŇuU؏D@Cwrd/m۞rBurԥ!WH]@. \9k+N|Ȋ\  reGw\!CrySrAAʉ\E.rAAʏ\ $a|  ȕE AA+r<䚨 ̇.g AA+'rC̄\  W.䪫paqg!rG"  rCQ͚o AA+;rmeuao`*= = REd>1[أ.aBG8%ALȦ|ko4ds3NX$Voըp疩\7zucP_3u7o9%RTu[/a!3AR ;6c\*md蕩 Q. ;r}Gb꒢\f19aBKI@Gj ^NBujV.P~VzX6Ze}4LD ƒQ.8Lȕ5,^tw3{teٲ;Zzヲ{rS.fLk.T bGW,. m>hXm,,7c4 Pf> Xh(JɿWu?<阼zUP jC<ğmr@ddw3j>JUZ%L ?Z蝬 Sp鬀>hY_Yʓl.m}m1&f޾ E0C{(`˷|pV#Gȣ #N{fin,?8ߘʨ}%ƞ0`o}) zTA)*NQ2k= AӸ#W>\v;ݗ=J<<}ӐE.9쫮D帨gn 7i%gZ;{stX(+ti #adJjc!ȥ>+-Q{T&K)O"׈Alۄ]u[H}a1Uo'9eˣ\K\;rsMn?ree@@Dz @ȕkaQAa_k>&_m]vS(q*mVrYR%Y$Deү.A#&?O]4r}΋rmϵc~P۶Y\F?@QtQ6%rquտJnLľN~u2\Q4Nk,bfGqlrdϭMiV>a$pk{;5.,WDފEҙCi_KOW"|io?SB#v~xcr!g A.uz(6?_)oܰG У# eS/%޵- \!ׇMY ׈Bá $\AA-AY!r=蒐33`  h ӧO8xȑzWvmݺ}Ӧ-m|ieϿ^WBr=  h# quC8phnXo\jW.]֕+. >#g\AzGIUѣXkϞ]vܱc;m۾fͺz(r4 @. =rZQ`ٍŋ3!1uCrAA4lСCǏMЉ'baSNe@xx"קEB  WfH4  Wn(\>  ȕ vS\0}?  r\uI)\  r\1uQO{\Ar!lM@s}ykg|rAAʃ\u\0mg>xGFZoGj%?SrQr1m{P-^;7S֥JL_Fr^w0x˾`CmZ\U+\Xkr ׫>% I{Eth?jI}=XEbV '~nG閌*T!TǢ#P*9gH`i2 2(&h#P+>Ft_Vbr c.yCB!/'QJVIeJ~B Q+H,Z-2>y8}uK \pL9Lxm$ B# ETK7g-`rӅSq??mNW6;>B l_E`*>Zsn&e r wDشP$"%ʕ%OFfujf!-Ǫ0 S1F.~Fg6 Ey:1y4ϲA5(ur G|5(yD.qӯ-72j_DI}ΓيUYS=L*U*nqԌE!pFRA)a]xx-|_әֹȔAM)2Q] 觓]jl VpFiXȒ;"9h#:.,N/ ;!>ݷk njħ9Ň(HAX~ܤ+t5b J\g|z0BhwC2r9ռK߱{H+i]3.ijr  CP+.bbu?eF.Dx挚M<v /B@G5`FP{ g}saǫKm3îF;97j>8) !S\]RR[kRq˛TeaGOEmR}su0yAovd ]J$$7qşMNB~LiZ ׫H)yzKJ6Nսgx½DkrQ*'yܨK& 2 j9Ō#WG.(naqj=Q{c[5ՙ=-Ƒa_nC^a\efD\# A^ڢAa0Bt=  Ur}R@.D  rAۘd:3 AA@|5WBJS  r\kΧ  r\Q05u< AA@ ;r  ȕb""AA@R\A EO5eNL]XX  ȕ4vʓ:r}}  UrM}2SݔX@. \ّ+. ٟ2o}rAAʃ\G g?loRԹst_j)o֫J'SFGŔm_%aw}J"(CŦlt`%J XeiAr 4 ㎧S{=Ed/@I<]c`#T >zߌO ցѨU*?rZWw/yF,ss;&,R Qdǜ]5oeg. CFn9*9OWRq߽qqDLl #Ҟ}uϴ7oĴ9rE,,N ak+<"Si;XդQ'VypAqX  PKՅhmԒ?V%U!ąd,PbɔC2`_uFZB m^rC(uX R*< )*ϧrsJFD(O%[KB.S(\3O7ԆqtZ,0댈:S{$ZҳK>>evT |0*ҳU>D `O̓N0~(/QUnN~%+p NύT>}(G ^ϛ/B .AךuiڨY ߻5x03Н=~TWr\ȥe-%Pn/q!JQJǭH@^A{^:N&O}l.>/ÐOn?r#Wt2i,D6y$JM) \]>}H/,#vz6Nm$,ڽݯnj x3{ȥM`\ˌ\)v}5D.e -)xew)$bYxZrZ\^PW7<H&mjMH<\N@wȥגkiYXsyC5BV2{toD3ms!ע==ѓ.w'Nik(|Pܲ+'3om_W\F !׍, +?iObo*ύJ,Rv- /.1dن'n|| Wpe.騰\y6T]{ ^xuuEkA&IyqGq&+Vg;ɽ["jr2QՑ\;\2Sal!6, wpjS6\@2\w GMd=M[ZXrB;4ַqB \i멘8ry w_:v򌍛\T&t]"4 A@|F ׄGMt̤^ AA++r}jSKA |O[ AA, b]mrAAʉ\uuw\T AA@k'-kԄOYAA+3r[5:F @. \% F  r\ÅE^8zbL]@. \A<^@. \yry..wfu\'\ǖ-ɖ^.ZI(b 0RHGH,_/uC*)WލkEv6@]$ĝlէv3939s.$E} _g3g~\z$X`0 Uzé\#\ `P*\o\'4 .`0TMQ Nꮌ iօʅ`0 |ꁔk̰ (@ѻIFwЁ-pT.cM)kU?IGLErlf X.kfˁL S6kplÿ]e\ئ#4?;NmiC+(ט\7^(]>i=[+gMF?;U"\9Jq[l5ף4*ыIǁ\Vi+ؼ77{q9EXZdRٝUvVWz7D51R74Rr <˗75+۷9ҚnLŞ'* ͏3<5.9gMtۧ!6:K7sC8e¬~'nݼ!䎃_`ہK0.]岟]VZG®b[^af;_ Lz.H$<B(W;GtqʥYq-yC; U=7{8_]3-^r[ 8cT,&hrf]gΡrS<77g+\%SB1>erAؑS1{)s:>}8Ug6,.v91* F>͛E*Bi~%a ~%@5v"y70`L R @-YALcRkR8AՆ)G !R.j]Vf0on~}W!ׯ؛$[%s?27: pfT.4CzsŦ*2r\{n,"XQQ.q.S`?\:D}%1ۼEmWV.h`KVo!f;\Rl"R=g\UJ\D'|Rrn3KL7*\^ cMkrZL- DlAJ]1OM?**S.QV@'׆*e+%ڀ|2KTRl!U dK)n-G@]z /K4\uRxQ<\6"sRF9.,~| Oiށ}GwbU.AcUh7sQƒE}*\Q{1a+v\-8<۹C-\<Ƞ{H[B[׼g(\BM;{$yh(ʝ%oPg%rK/򫯾:99U.r=z\A˺ʭr/ 5f^w{y_Xe+;WRvnW8R[D~|K\/h=cskwWYO,m{So_ W_K s4}z?7Gu/ e22`5?qt4Z+P3/zX_tIp,{ h!ֵtI{$#ӼH+/$%禯\r):'W|q-y#;+P,zWfggo޼VYrAG~8X?ʅ`0 f;+ۮ#E_GJV. S;yݏF-F,r<*`0m\*ruۢɶX5J[Ρra0 ?~Rr)׾x-+W¯r0 `{|)׉r%Rm)tK-_*`0b^[<')r)U0 `0rea)IMxըrra0 TNvhEL `0 :EJ\NjIy `0 \(Sh@ `0 ZEA`0 )GT>MbDtRKKΡra0 \"^s$FRRKE `0@`0 )OF`0 reަH+%\ `0e*f]r=)W@*`0L+6[8Z `0x*WDW0 `*\T#p$\\ A`0 rra0 TITRͨ\ `0US(*`0 *`0 *`0 *rEr_:]s:s YO_w7YrQ~Mlrpʵ)9oP_Rt;+p+mZ/f*f*y oksS^JLS >Lr}%dɯrpj^Bkx0C*`%QUBպ~@0VP0\+W2FonYcz]?ݞ-O_-Ü=/nPH[/\܋gIY|U[+d\?^Ԧz"8JL(JhO-h3y kݴ-nњxW^uͫqm( ݎT}/p4Y)/by.?ʥ#rzR9 Y`_ud28y*upt T@ -k!/R@?.$ITO|)/qBl\qS壣ZZ2ܼmpU7 "NIj {q8N=$>gۥ3*vj]~ l*݄ ?ec  kvU8fOˮ|u|Lo8й)WSc ~UGeBE{RSţV/x"[zfzVj֤, fv[l]> s(߽ %좎crz)S 2+E,)QWAMeBʑʥRr5 ccT7HY+h3K,cP.f:EHPV).a0O7DUoUvgW*`Le.[zyOZem!n\ O$ڡb8 K~CcZ\SV| UE➫y V \Z>W`kr| Fi˧^/:p/x(`B&>{{9z~Zw<[ؕ(PpN*:.qT&C?7_cc=[cK/xEː5% DG0Nh׹Ё{ÿrUxjp{񋓾%:-XteWSP@fE׷`L"EXs~W*sGtob0\=r`#* r> +A`0 R.iʅ`P0  `0 f+G\ `0\oF"J `0 Պʅ`0 Պʅ`0 Sak g/^HL2VǹR9oppVL q#Ӆ6VvV‹9sy he 9s:99uRiTgU#|֡VV{7߬ ݼT}}!\/ݸAԺY$ 5A>,$nͳJ/ds+յZqm:$)m'Rfl>`̝o@~gbYznu=YYK/WK+RkeJR@ʛuG2`AE7+z2C6+ nr|AFe-EKra\\!Vk8i?kkw9ChAhN8ru! ,Su N%ŵjza5E_I/'n-'n.7 1&7yއzrS%)>g~pY7-{AB:?/%{ˑV"FYݤon' w E4%qd BrB%P ^)y 3֟C"W7hAK8lL BP%@ #cãFLWGchG,ٝdf=±\DŽ|>/O79QЙ+LNLL}2$363Ϛ|nr33OO̜,N:?-v;ҹD&O7R d}HG B2 !hD3$Ds'$ #LȜ#kt=LIؠ&YbpHjuc6{9bQ7Qak=5(Dv8Z;׏%p)n֒ۗOf&:';S]LW~7μtG0e2I,Lv9Ot\+[t2"C(tm:Sd3YIt:ܾhv_d-m ӁTHZjJn(Z; [! "">1dAfAEK2Klx 4H@$<*+tI'){: Gv\LݩHlb1kF*wMwթU8l$)smaa"xүCibF!Ut,vPxn]ab]`(+Zr?P"^CQ“01`/9:r{b(nhSeYQR\iruS.ͺXLJPruZ׮˙݃'u{U+t586(tʥYWDd]Rk]˰.u ݴ8aZ\G-ߒY\i% {m'O~W٧ҷ^~roHEYb Qrk]ő& úh;&Ej]GsyNrD oYEثW L(Z33kRɺ"Yx}H ]GȃL=G ]uU #\a]r+}H,e-]"Q2*dK7e/muaW`˺rY#u&ȃ0b Ժrmd@zZ\3::Y Iޓx8/ZċV{8qN.q b`Eֽ:u8%yӺ"P%j&EđxZ)fE r)~=)*Mbr⬋e\T+ xWJb*Zr֕[(^p:٢U躬[8.x*tBf]֥͞P\xuY7[.zruCk~z%[ǻ/ל/}ϟ7?vxw/#y  LG[s}[_+9ŗ{|q?tu=H{lY7w{4d!:lE&7@#&kM|([Hfi󿌄 㳁OaIN|:1@|FBBBB|F|F|F||S/{ YuO .m#>#!! <x!,oa>bLsJ6mȺobSjm2%(Ů60knc)UڦOURU|U%HP [K_듓٢->4%f%?05 ٶ=i1h2|/gC8ϊ$րelyRnGgg.cu\|S\#N[ <^EΜףQ ;|fLyzM%Fنm+4kt՚X36ӚZjg-xkG`9q셋B>Bd*ywVnlee0666;;;>>>111??%YV&2 _S󚑈,U;FLdhἫ>U_ߘ?^\<3ʸAڋE8 #Gzzz;zp,.CRX'Iz03 2+S]X._*#>2W{چ?.ʔ؏Q̐ϴb4Cڅ& >+/8-kr}plxl"79}(V65sעYK3 m Y9oxŪp^Gi J20gec>J P>`"E|ﶝ?s|Sy608ۓyPR]ʝ?ןN=>WS{^;X Up8>W3w]ܸbRnfsXܰ[ Vj'R& o^Zn!9;s̅m؉Pt,30rcx|,759}kvn>wـʦ0f7L3P `)$uVy&6)8|v(wakH|Vk-ɱ ϚR>sǜbLJ;U g{Z{pSsgMMMpkFK=^zlwݕ Van_SiBΊUQܠOL  K11(=7 =_ߴ?+&qW;_k)_n^#`3Z /|>tsh4slaqqii?gS{sTQ,]5h-鐳% + 8 ?ʊr:1T+gwB=6\>+ugB\)T|%!"y;W& G'+n<>Y -/ 1wqxa_v |O};xǰ uʔܠ#/,///--_!W0(1^T(GN{k9}9>1=skX8 C#r>>'Y?J4b3 >܄`F6X*"1h?̧3)i |VkKX+te)&R2] Psb(nH>s<>{O<6> >{C3)sB$b"x2R]fZnLNTj?m@mh? f#{Ykn#>L:䧃9ϣ*03g5wPҝrbrJ?,d yq3ap{+a-LdbЎj<&ܵ">lm;& 7C>kK5ؘ?K@@Cz;i g٥5̺Ëms.mj‰}{x3}{{͉):*.Dy\cҋ2GXu=$q$WƬ"X3^MO< hagZ!Y aZJԽ Y;~nb|v{!tYfSp>T޽ƞ>->Aa-zkQ!8yM,^EfWc9'_JTߴjmKz">x@U`з}{޼" OtZq g,Nw=J_oғu;cO?Ӆ.d\TpIy8DˢL(RyxƌsH!҂&1sH,Tn63yʦ뜪5|fMøZY43 ?49<bO72'CQy###(-G`@+Lg0ٓ$ λ_D|f*+鏸Y ;s-'ϼ &i2T^TQ7Hpg ;sӳpHkM^efr#:FR;BjO>ό);3τy#?ȫYt,cKa@6QװbFx-糏 c[o^NJʯ.J$낮߇:+d2THliH `*CV7uG[9lHDkķvLr>_A+Ptt&5$YR^\^д9/7H22)>>pDH];1oa2EĔxwCB-iMZ3?SE%Фn1$&qF\6IEi)P~nVV~Hb!8ҥŇSՠToGSod~ZSk)BSga`L×Ѷ n0>8|칓У_av~jI2&3N~Ӻ_৪šmGDNMr g? IɣgCFH>: g 3gXZrg$$$$go  g~|"fHHHHϪ*0  g ~t5#!>#7A̅3,UY`63rYUFfX~xsL!>#7HڍF_IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/figures/serve.png0000644000000000000000000007461411534217015020263 0ustar00rootrootPNG  IHDRR_PbKGDC pHYs+ IDATx xŝv}w7n0$$۶}+cCˇNے-[e[}_3ьC-utY]3}hS]U]tU_R]pU&o}G /߾`aEFs[lYco]E'<.8@pXp|<*sHۢdI/d9" x$北:b';c'H-\l  [F5} ES,x vK[ BEaÖp5RlEvǎcqOtv@T0j`Bc;]&2JEk=*{Ů}5Rb8qJO Uګ> ^~pAoP[#/3/+? o8p>/=&A={'o_3w=g_M44iE@?m;>1+肟 X+mAT~7 7h:]#x [ݵ]br '!X4E\h;ou`7gM~`Np[D{?R0pFS< J wDKlcQK=x5P2Z x0riD0H`6a?5Pϻa$@*H0̃& TP@N) Tp5PD<!DX x$@K" } r$T @:8ܮ:xɀ[+jiqv/sWg=ٟy8O?i߾O{}ڵS{?#UT|d9 @g HA#r8|v42prsŻ?jqSFm h;\1n  juG[66 bar"ι?ބ(@OA p<b0pFShžAgσV9nÝQM3hU"0 AND` ^-r$EyxpX :upJEHP tHQ$`@e~շR 7u@SOl҉+O>q5ٳ ӯmO/ex]Y }{?.]Ow9 0?Iȓ95x4 ]QL[#nd w; ݯVWHA>M7+;DrlEa1`z(nWEv-s82oEn؟+@!#pwB{E6iOtƎۣ%cG@m A@zd`84Ȭa`3s@ d{ 9<@b9J:8HyS<G]$$"0X6PP]=g(zns%QP[H͟/鯫k۵ݲkmvox\ox[?xG2Ux,`Ɓޏvvj߹նsmm:yI AU0<7?[c ?e bB")aC۴ J=֪`k"jku ;%H-&U*6D[~t2ŝBG0P&)'y`Ϡ F-s,l jE=F|@_9<{Jur䁑^CHP9<(xN*$!ApF" H 5j Na/7'' :ݣv 7-ꫪlv붷ېm߶n۾owm{[rm޶e`ۖmobK|Q>%oۛںk-[l[XniK r[ǎ.h#q `,:A:Wܬ[?y7J=u!Шz kcl!h;tC6చCZvC[ R`21x{$l׶6O @A h( OHY| I 6vB8 N:{W}W?/G/>t燵Y6O+ڂ; ZYc6ۃ< G =ၐmJES:8P4'ġ]Ӈy*cGmOؘ *lw&|GI~x,!-{ap tlbkt447B Gn P^xy ](j(Cb*jA<xp= H(%"Aܲ FF0 F:b خbԦݞ@-DN ×yd ׼| 7|K6lK϶g;^yg^ye^ޯ?;%0'^~g/?cyiˋOtˋO7t Oe>[lUZ n}.:p1e /_K_zk~Sͽ}vDPcC*wߑ9v G$J΃!`;3n) v{rh APb7o_l]bO9=Oej!* YKd8q^ +")9N#=;aJN50@ "< @t;Єxa0;8K1]$w51NL64 \V *' Z]M$*<0p}Vkmrw|Eh%3^$f:vg7:N?$pOV?d'7=ܼOo~š=s3sCrȯ}P(OȎ:7?޶M7mPqC 5=Q=q's_M|m=> nlee%_m,n׿kO_wO,tG-UO-ʫƺ.oEOwA ?~7~+kލݸo,7GoĭןZx^_9?S9Rg~P.L_8nڅsΩX899qu% +^p}тy7dϻa߼ν/]x㮎wO~mѱ~;{2?tt❝n-?|ocٶ>;!:.uwAN~Y]h'ݚ{k8S'‚$n$U Rk|?1cgh:fLn%BWyw.]x%z;݅v_ &.ί`Gm;TAXihfCƫ"s0 Rvnx?j!I`ruGήYă:%eH>y<a0 ,iL10 ?0/ۭ0D!>]}"D!q. 2|kܰk]Gٷ\w94wΑ-wmkOϿ| ^pmk3X\{ŵMk_S6ה̽kn-ws~ 9e/g^aЁA_||ݩ-ij9=;['s&6Xso|qٿo o}X@0'E 4 PrFE*pp P`-G OAPzΡCfM0t-;L֜ B5A0zZ0 ݾxQ&"8"DdH`MAt"7@DĀ[Pd4(A<<(Fa"~0 _",Ҽ'yo;10Fu0d``X 'Cp*$] ?[qeKY"pMHX}#O:F#DAgK}sy_j= oso9|pEo>7.n︩-.F%KdSpoTJtbMtxэXpۍy?q-1kotݗ9V::0xiC}s爵s/s׿-8rs%_5__7_k;lz|gQo'`s$3/g,ʫTMj=58aPxB`Ofܾ)Sf\ +3t aWvnNlY3 7.;ϠL#Àn|Yp p+Zz׬+mK+[zy_/?t#y`yO^Vzٙ-\vݒ?;שAo-r;,=<誥W--_/-^uwʗ0@E0pqְq?xK.7_e\p?/|󅯮zNuZ;|Ϡ+\ϠtA'Z3$`PSwa" h(9LLDrE.x5Q) "jD; Nj"g`ᇉZPàB:= y y$hx0A'#H> $(f`;fkc2Qe ߽|P<^ 8` 1jT  V>dYm{Q=2D>(l‡nw?_Y{.:kmw? ,?#%8~tU*_UO?Yo#n~lec+[y+KYu zV}ኬ.::g0V\e Rmn񪕝7=u#9Mպ/\tsuh?goB0q AL ּ[ |Zrڧ D<~H %[P.\~!$ȴ9 0JcsוQ8<{ܛ,L1c!`8:`A3#{xԉ '&},AS @k #6$%BSF $95y 2A֦Wߩ>^wG4\\QÿN(Vnjsk.+>%\ HTw]B@C1 z[N}6y jsu O]w~_|+/0K_^UxýUVt39pzUYK#ng A%xE0}>q_:$At1FetAɋ$+ut[r''ιcQS'cNO.QM70X(BzoA3O,瀣q;xpX8aÝ0xtH S0xtZ@<@؇l4=wYdHhJǃ0Q#^OF^CM 4㭎;]̋o׷9 cvwNmoxuhw$o|bʷCuB; Cs9ȃPyHH pvwQnܮCrrGVzso]D"D&o\Fʬ t}o WdT}㊒C|;*Z\a ܓ2tq$j %{& IDATi}N>N+X}e$q[p ϘYYuB ZpI;w" phLjwS~SQ ),AG<, @@Z4֗]+@Jzfa҄)j5$ *4M}zu=N軟X?[q+ž];QNj\|> s7~o~mE䒯yyK/=o.Xvw]}!77|9eeK}᝗][߸ n伟]r⋾ k7 |Uq]{+(D7vߺd%ow=7{b[??X5 L))Jy/+{@Eْ{k(o??BEȞKav ӄlܓ"~R'N 8ᓱǕ݂zghHLֈ1gxj 3Arhz$:LyYѹ"C0D"1<@G|bYkHs3(xx?>@Sz\=S`N X\]cÐ9 =5|{ۻ?v?Rmkc[΁?pzbn^|O2r O ?N:1(Ju([y?=4V&qW 6l'+S(l>|@ ."Q`@IK':AĂ ǃQz|8`$-;YHT `)\/XOq|:nV+Wd1.1.>zrIνѺH=ZnpMw#A:0#/^H8ZshmWqmƾ_|dx H``8lgC<98s1yH 8𙣼}-~5kv A\: j/.¤If,΁VI砈dUd :Sv> HA.$z2zr7] ],F>`E#?+;Z:A30p10ZQïx1Gh>5Ep%h[36*/˄^LfĻ0_6H,?{U2O0u9oxv7}6-ox7n4%nw3w'LS$0UBxY?&S ău``E)` s@P82Hd<8U$(/s?܉^mbOvJӝӎ(.95ߩ)Q=]UDU]]pMO37 ?k#= #bH b2afH>ؙiSa0ގ^ =vaȂ[ݢ7'GZ-.(ߗ0M"7ù7cu5Q=V F" DxYbZ~ @nx)cLB(yp5t9BBN{fz! (:y * HP7;-r.mk-iK;B3 3N2Y+DT8P#Xp+Jg WwG./kr`` t+Coi!PAs ,R@v)OH$H[ qq+4z`AwdG#68A 4"uC5&F0쎄="yw&T8JG4puO>xGkd4] kVvs/2;%P `@x0(BWc"gWL`30vAK(tZ!EG:8"A‰;zQkp>f 5{ ,l,j>=;6Rb OB O#L3|YYf+Fge6ѳpBO`oY`_r_ad_>(N I؍ <90PҔ=h`B4X;l KP %#G-fa@`~MneOvs#+`apPqXxI` teB[GJSwsux-'ZO yN{N[Sp id@i@i$riցSmۇX(8 8<>9FcGbn診r'I%qKr')#{>X?^ -r Acv<'i|xEpw_nM[u= d \}`^飯;f_^=v 5=+wGN/7 F}o[psk|oXz>5bcADvGn`p8Gn?"qh pg(3<;'tt 0 OSaҨ;芢h/x@>˹gfff)^ݫkVo󵷭x` zν;/[zzV^t?^+g% ]v?k%(d{4e:̿W% s+UE+p}puź},ݒ_~/_ ^es pf21111@x`9'h :@H31111Jر` 5}L7R)uD %a @ܣ+20111 @x j0 B0%W"$301110$N _re1Gwy)`{?xP|+#W?`Ĕf0XX/RY`pEy_Gvw=&&&4._>ssr>Yj=={~lk+2):}ɓ'? O}}U s  E #e+AWFiWg`sny̓6mby<'O5kW"31M @xڼV9 be~AiiG;w M2ڿj}{tn[WWo̼'?ijnLCCPAlhhl?uvv>!cj21 @xˬ20o"{=;3_{ obqݓ$@zq+h}t_ݵ /Xۆ[s?ebVT/[~@ ~|w].׽y$ԚOAx``> aM9 |Kbwy<'7t'oa@ {=!o߈?K'8?ʵkz{뚪tt}u7t4:xdKkjj>3gcyEyUU՟j{p 8ΘZ31[=a g`g0>>B{zz~IBmvknwXGFiںڛo0 ,pC XG-8{, lڴ}tAF,A^zȸgv{ϷgϞh4/Xє/ OI`k$ptuFW^{ rUO>߰{/'spUWW߂o~|cɨ*9+t@.y9[' CCC[L䓏c}t}j/70 ct8! z:swתb9k/'s={X,3gάY`û~LL Utm9wϠ>*aў$?{<wlD"378eT< KV{`@/㞁`KG[1a`wݻ OȡC Ɩw_$JktI@8aPe 3jڜf ^~3Z̨in9凷㏻{㉡k8~굫A Օeb:G&rVwVu0@vaW9#cQ0q>s`s tחuXVSS&xvNQ V^ngàk9>Y*f ZX3|rw+20[LL3_n11Wukݓ3[z&ՙD{ɬμެISTFɃ%gR&`]rwp,^{y>A}O'޵Q\`!>!~L䧂۫'"AmA"a2@f2B) L{)B'dhQTRPCmfl*abbRGFB8+ƾHr}_d`4v4wl L ,t;-*Opj@GUM;j À:⾉'h{Pz]e|šq[ELxJ&ӌOAxA^%WBM&g50c ;t"ٺ1 Rm*Ovh%30\( Jhh:Kvr1Іpq'>lnzF0XhLA1 1XSl0_q[1i9  ޼頋m?`$I{1) tVД@c.idºBkF L~c +\k0&9@NLywb\a07#! n pgN \Wn 0ѱDw>)Ly@Z&1s0E3]@3014$sȄp6@=;xhQebb2& b-1ҫ ZƁ[チq" @LG{|M|q_3tl 3*J,v-ў#im\OeAvxbb54/;Ĕ:a 0*mょ `kV|nOgP1 i#]4VV}Z@&ܒ$238A5B~>!uLLLSއ67p ;Pt}p=a/*-@&\7 0ҫ& u j>{0ROnMcS(zTC \ 3E&&~w;AgD >!"&&s0Xax,6Ö@ CB@z4DjeAד0ڗN 6ݑ43tI 'uN@%wn%#6&bbJ& ehBt]`AF=@b@f|4 0)) ip]T-,30I,܍ C]bnB0}F&H֡ql@2 ?zSth ڌοŘ=PÀ.aGℤB"bDFsH7_CM ~ȝ@G.Ԡ):&֊I, q"&0@W=RAV(~{6?y %/08b`D/@DH$]OX&0N؆9tīfD ȃPo[%=8!MgLLLLLQ>ta0@0Jch\)ahzDq DLLLLLTD(1 Յ1 SKfSK 1 @01111N$`0(W(a3&&&&&3Q ap}0";w 31111M;AѾ<˕0Xj=S w0 CB{Ǣ LLLL'QbtE4Z)L?0 ‚}ce+O7R/A|0 b`_)=ac>@@]lp10111 bN>'`w{" LLLLi*A9 >4)b׿11H=t?gjRWW@xA^%0yGFB T_4K`D)PTy\ a “(@xA^! Mgx/B30*101Q @(&~$*? f (% IDATn FaRl3ȸ&zrkfݛ O LLyqO-=`p4&x, g@ ՙYOV B ͢HP)@xA^ οX|b87Er=" 8#E=a>08R Dsis^4b0`b ȋc>@KhK?ˤ! A$gPq1DOdj101Q w E#F V20111808et .a @b 'N¢L~RMo wB&MmbəRҬZh*I.ob▜LYmc6 Cߓ4 0p"r͵ځk}-~FP3LfJI_vm4\Z57SiDpU7ʹ N(]urT`x A1`;L@5RlMoi՚hE%r}?m[_)׉ !W\ NSJIczj-6O_܋U7nAɉSҌ60&r TI910`0uHhqQUDu"7ڲ)jY_)<} #j= jۈ,jJӒhnbCkUrBMHu Ơ5;2 LnZ% Gۡ0 0 0 Sh"/dmCui~mZ rJf֖D5-2%tUL\cZ>5m\I)Y"Օږh\:Mn N.Kw͐&nyb w aQcJ !k*۩fB.I&غP7諪Z%HBAA/͎|g&N^l(T~BM/rkNYy%$A;GK@[q[h[m 1?Lk1hKi⺳k}RVך|Z4]:euVfBnhB0lh&f-=%RP43ߚ3TNQwpXرv1?~jGۃG-AYt̐QhL3GbMFfVInYB襺b8~cP 5t ɕx5|>>AW?6C`Ĕ{'VbG>a@^"Dvz;3SaIZIV#=80,1[_ Vy|dkBEPN!M,< a`C<@ٰ\krvqzeui& ٪&mZV=!Q 443-kK9PՍ)K7@ JLK8߃`pΑTc`7~Ϻ (ՉZDFNLNIg`CjaVQ0PM Y{4it÷"T2 08ޙAH%Zl9WawKՉI6tC[(Zwग़&0E UJrݘ Oo$'NbR&_F_R[@+i&K?n>,AQ[=\dFpAoL&U[ulc^dFd(Oȍug*\aY->; \r//l ["i(O[k<Bw `pePK!! &bȆn>)d2:5a:yMKUӲꘔMĎYyt~Au``S@}(*{jVV<=C*rWK&*TP(HD˞'pPVJ;(+BKFHXow+Ixjs8Zl `0/h-h94z)`gT'n"j=X4k~ՙ3T%۝rf 6՟h2TMN[idz+ ;Яd&c8$1=.70 X,ޗWk5;²7 P<)Yޯ eLrvr @++i ʘKI`2$s(Z<  λ O SɩZRY#yK)L걘2Pj|醹Bg'8I0P)G U`0c%s0R.n `p'ͮ>kU   Uwe'Dvh2`@_:aFUɆV=Sf) Ts`0HpT>><]<`p9}U{U1 锪'€>3@X)Jm.W0t뜌vJʹ259i2A* ˁ M0(P L)Uǘ0j)[3p*jj}ҴO*|VyY TXhv{ i]lsc%lnDDZ%XT>aD219C՜K_ &4Ѵ3 pfabiͥ! p@t>I=} NUJzNh3D3T%۝rfЫ|/@~j)y:6IL>)vEَ$*{"Sj\ fMPP-0Z0eN Tn(sr4ז jZQ5ֿ3 #xsO-=>:jxO%tk>5R$ہPV&vuyk!)Ɂ&0KH KUj)g 0E II`衖 |12>/mtfFҩ>tR6#٧0]ټ  L0f N &!gL IBR5$@4y*cz}7R,Mg¶0pQ[p[_{ hށL_Ek:%VS#NTadtD umbdM L<_dn&Ԛ eRށ `P %`Ϯ C+<TgT4ΖZ&K `b@VɃAsbtH n4\PzR._4F0»c8v̽ќ:h;b:R`ʦInܔE=Mo3YKZmfJKUeOFNt)3T͙\t0QmrJM+UU2WzJuoK4+ "bg7RS,D -;e Uv''*O.@+[J1]+YMcL"4oKX邵4I0L3yJ9 2R4(aSe˘4BNL)"f `00\  rFݘ8[`@i J tJ&P*+8)UD F.]9jY*Q$$V}KW7Z_` \MԀ`@P- ȉSҧ<h@|әZL= +tJҍF7@Mj_%'3 @HdV%n$ʥLit*́&bMW~W u\Ny6@+Rgpɕ^dʛR }ܺOar3M3%60;0a2-JVZ57kZ"W[YD%*܆ӹ{6Q݈`8 ⳉeZjg"%VS#mpZ"ۋ̓P"Дhta%ȕ7rT-%J5)wXCu2*]uFe }BJ eƯ50Mz6Au:vo?ŭR͝D+ &K M { a0*]kFfCXL@EH5ea@~jil?G>k 2;p2)K$0f\u/y 9h婺V2Jk1 !|2-G9ISV6"%V-Ny$_%(ԝQ9r D ۧ%4+ 3o:`nweo:cVWq2* *Wg00TcT~l} 7JJbH81.h>80`4-O u2R4kIk2b2u3T%%*IJj #'L.\:Rդ*+fabKټMD07 ޱX,@~g7RS,D5Pr Uv''äP5r:eСQ @Jr+& V1ے\pT6kc'`p~+I= 4 #E]N n` [$gYrbJ1ca0K50J[1C~D0a .c)LA2PjBgWMUPJ`RT7BiE.PmDts]"rFn ~( d`@5>)VEv{ۈ~g34MGd‡j)&6"Z4T M(W~OrkjMTM`&\TK74P1ʔ490L mtJғlBZӬI̵@HrrSUC妡i`4hMts3]89`@(a2 S}lIJOarzdsF`€f2u5)00}tdJrF < .M&J.Z\$7T׭ F΁F[s``2a Th+LI- a`P@'c͟0H IMgZ(!r*:o)K$6eS:BPmP+K*j6Lnɴ ,&M)ZitBHhr\ɺ9 h֧4?NQ$uzA즳,L42R';ϴTjw5sj:gW{سZ&*= O rh/RSKY2111TZ O-ҟxSzH}7t`ĔR33ȼw 30111߁ԏ Wy):ñQ .@0m DV`ĔN`vc8~;ҫ ry301110[GxC x`Ĕ^QMcym{101118C0q.)``ĔR&&&sJ``Ĕ2|&&&t &bbbbbJ^MtDv5Q LLLL%}} h&&&d>|2~6Q|hn=Ml"&&&&D@pAIDATEQ֏@sO-ebbbbJZZ,y5`@kU>&&&&>PPkH05^}5711111o:h;7w U輸[5lqw 31111w w D M;ϻrO j5|z&&&t w FcC {* LLLLi&P^?w,AV`e LLLL%՗!s80-`%SZJ ` 101111101111101111M001111M001111MaVπ>މ(Ѓ(LLLL*ȼ%0W=j?žMĔvRy6l"kj|vi0|5{j)SzI婥WŲ|ٵkwπ)ͤxg}k/FrG/3&&&tޛ GGlad&&&4d;A)41Yq&&&t w ۣE}! 0 k70011189/İ[b@\z78^*hAnu F L xEV·q_h?:Ђiw֙-ŜIlx"mڤΜ86Ğl4_/ŜiDmNILzN%R⾁IљWQw~qA$?@7pSy PUЙ›҉3pFafYqf0-s` av=&UGBKa0&`_Nꙁg`AK&ѯ*&Z* hu`7AԽMɟ?0`'{%u7q;ߎ&DJDr[]aN`k@AYqRyk_oa 0`'g~A:ngps=]aNz:[G9^9Dza} ]aN`eF{N6< F7GaN :HaěQ08,@+W`WA@&sV ŕ`@ȪN}5- # PfcʕSk 08jX$r0€&# .[X83r'padaT'řac0W zʕ03a]ge,lTގ`5+i+ՙB dqr-# aÀoN&[XTӵZ NCݵTܛ(3BznyR _t=R@0T|RLsf=ʗǗcfa֣EʀQ?R@v{?SHoJYt1 ԭ>i@R_$dU-8\0`?R_KaNr\(R0xKdEm|a xt1P 0eDR@UM3 ęA d) V7/080Gaqf\ He80XvE%_{P&0jC Yxd\}:qܵk9M-dDJ53g3X 2apwnύ:AOg0TOg+?$&tWt{9-f|,w{>Y>k:FɄV+p2WeF}Q/_y}8 YթCZTDꚎ9 0ؤ p)B aCA3VV7я# YȪ~\AdXi )%)8 # N0PƳ% $@~# q ^8 :ð3iS:lJ\ ~;u- Dʛ- rhTTޞHݎBzQS-qRpꮥ+_wi\޵Tgpq)+?p tٓ@tv)PPr Lu{9@zRfOgK} @d|" .⛯8 YթFC^pAK=^YTJ_=!?\}9e2Waܱݕa hix1LF|VVNO YȪN}=Zr/GL+򗦷g(08#1EO0)u@0GRz0 aNn`įyTH7mRuA#_g00W m[onرgQ^bⰍl4++Q{",Pd )( v` (D|; oN&2nT,(oZ*tR|l ݮ,>v6s]Kʄ3@gP(0hg7l; I)?Gѣa@u<1Ole˽" 'Ōfʛ7 A 0lo( = C9LLJ" rr=7 `ްIAmNGaA `ްyT= B " )%)C3 }f@=z"J$gg7l2 =.> 5#Bχ0upfa{ö3xa 0lo0QAg1l8wlM3xkl],>v6s4n+ݛ;ɽZ(wG߿郺"};ž{/$-͓d(fxel^%p߼N"GirQqSs5Ě+SoO6[cœ7WXR=NV{%NTn:re=jm-\5~/֪u?ir5l 7Ul͢*^{,M<˯?7?k_xW'Cׯ!A3SjHi9{ޣLX_?Y_ﮥI*3UK7cZ]a}MZǍl䃡| [~`I4 yfCƜXd}/ˊq{^eM5 1Q=!_ l&OoRc}bdBB|'2˘?/ y0hLA di{32Kw)m2An}*_d$LM4-G,pK3f<`H[ #&i#bfMPP<y&@H/ >e{EjI} 폏7?رcܵoΚŲGsn6Ն!ofpbä7K {Qs#r"O?yN^Bf`>?t$z Yo6I=8 4)AOjKR>j;]3ޙxO4w:.fH 1iTk*9휈vn6F#~a"zFkka)nD:'"9 !*}i@vjgԠK!iTq&#=8M%Ӥ,LbM ="'* f9 9 n~m|)g&٣RAE°<"!W^XszQ[֭}^u&QPpG++VR,^  _.u>TPaߥ 5QMx:%@T+e˶'sUa?ͦB:CfqEM/IV&IÙDOtn*.r" zD$8{=߄}o(6>t@Тzĩ;4gW7452c^MeYIvSSrD6Y0R}Ɋi8 n8&3ZYsrDzֳ"D ^O*>UԹ$I#F$rHe)\ Uls&uaV ^t €6oGM<%'2O(xTX{ (*+ 5KwɃY!tJUlEX1uMqg):q{T:RURAw6TEq)"ikNiymt}aXzs-UZȽB:l-P0€G$˓w_n6 )>2 Ɩ nQy=yY]PM6 f._yN9_,d^NBTj)V 2x~u<}Ѥ:Υ49e(~8h{ !f~~=q5סqK8r1,"Bh{QT @߄>G>#~F2!M߷ht/jk~&E1Cd_TH{70=FeC#P!!e*_ s}9z|L7ىg7T֩ʧ.:c Lt[MQg7dاb4<+'Ŋ0p K2 ġ82c !ZΈEy)864ɬʒDEmICClU<0HQ- t:I;3l˕H(HPyF$XPU(MTijlP߇Rނq9h>{?wG]S)ia20+qmeɒDaYζf͢kZFa2f7lL1.ōT IB+u<ͥ\Mk }nØR-;n5[14g*_ꙵ5ZMmU2&iDH>!Z)NfbF1]̠h[ZKlRSmmųʳVTFʗ4n۪m}[K-ܮ>9S"  [yt߳{}yy|/=!$$ U>%=P}iUy->VjK IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/figures/settings.png0000644000000000000000000015375511534217015021003 0ustar00rootrootPNG  IHDR,+bKGDC pHYs+ IDATxg%W_wvݳ=HH #$Z4 ZFRJ|nP`*I%F zJͬ4gޛ{es"n\YY) }O<ƍ8d 3_{Mƛ/܀Gt>|{>wxww_s w\ζnw_{{w|{A|wwlkx#/Np և#|[/J~zχEW׀%ԍ~սh[(z3m]Ӿ18WN=~[zBR'WyχེwM^B[;E=yOw#@eb%,?~|ڎ 7ޫڟf{}}ܹ/yK/;y?.Iʩ F^5FR/RQ,uFT*R^5z UkPR54:ܣʖ=S57*xs}Q[%rqW|jttTy/jTyqKQtJ{[;雰ZYP \VeY"PYpWF?q'VZ.:Ks\>N?P|(ێd~*P+}?p9vۀs 5F.كOU9Ê蝓=bm?>c\:l?IugoqIWڹI o;Y8^'3_zXzޓ=oI̠8ST [7AٜmPY 5M1\jWJa < ˲D678;57;=;Cbvnn~ieQXVjW5Kf (Q=.$Ȫ) ksJ1-O@IК rǴA9p‚T8&LPVgyCh_̚;޲WVxKTr*OI.ָ-U\sr $ު+*C-u mh"jP-2m(r"Ypc*.$DBW:,w}ӡ^h՚s5giGcј's4j, a}tVҶ5)3ߖ g QiKrFM8#r!]:uR?.--ywZy`+8h* g#vQI4|L!<</7ܯϻ^w:80xmN<* [N)⠓ Y$x$ \$O)g@p. 0IB''eSؠ:yV55akٜqf7WkјvԧlIKyܘզՉ!UlP=GNà3iЩItJ8% `< Ú.=fȎ¤,ISn˜=Oӥ Cf˜0k+-)Sn'In4f͹Yk~VpksZL"n ߚ#p^XqW=*dLx 3gYf?3fgteV%om+9RJwVk|ENLZP";ʷUo@m~6>G[@lby>zA:45[  a6]rmMZ+>;I Ub t2xZ3@Ae&0 [iR l0uM@kglE I3`4dMKaH.;ѢBm(Cdy3Q\qk@e LlL:@D6+8f3 ;}3s,`sAxfYIg?LUBeje5<畉u)51uaÁ㇃'NN%N>}8up(vH$^%@ׅ= }p`?ެ̜iތͼQn#ygLxLoAyO_+th)#UFRk+u2zMR\*T֨4XT׻F_}7u'5θ l%(5$zo[YBrk[m%AVN [)Y=rԞW`T5*6)P#12ZX T*!tQfUa3k:KyǼm$/ %@<^并in")[}ZT阱v !e¥̛6h_6s`.30|s &eaϕv+a*+.12ë!Xi(:rx$:Wbg=x 4}7S[G,TsF=J!MY].; xl܎A3#Q,3OÄ(M,7v0gpk)O[+3ꬣWg϶Q͙ SFO&N~ڢn,PjX=23e#ٳ$wE՚u4y6O4AL 6/7_Q`}|YZik6 NqNPNRr"pDXfgASP3XX%H=W'BʞB׋:Mq<`:ʄ$'N)Sgcx-QO<ž@\]yl(`h*c@QclP@$c vʴT``3v6[+ʓT¸1Δ;gDBr؂]B$۪v@r}@9ϳ-TM˶2maϜ w\EwsMaBy[+B!螫}|sD:KK2_Ԉ]n-uf:\t]ѡ6Y!ʀgfr_6v d6sl6hwi)լʺe"(Vj~M7fxM|/ﵿ/}"|.{~/" ^~. _ImP'l^/_|wzrM7LLsy~K0 جo6_sֈ 2E*w)CB[!^̮2MMV=;ZpENn0$~PA#tҮHp/UUoN/ݬ5XH튕伐TQX9({dp cgJ\+Yw%XHԝT! ,EAw~ć GL4ɏL8 D!c77\cs_*oc^d2 L,+lNQ0[k_uff/?7hl, ښ̆ߌxdN3Ia KS\ @GTn\Bxq1jj|xsBd'8p(0 [ j긵ߍ [uŠV8`jYY$`Ryvȳ!U`Uʤ2~]jli[u^!Hw5j> 5o]j(GmQX4Q2 !yՇgbI+7{^rUݠPyېkZNLgptYXh!57+=` w6wfYQ&xv,bMoYGPmEè\ucd'{ ?cɳ>c3>|7gQ? G~zG~G/?*1Oe3a;qCfg{fU{;Lټ 0fR{'s_G'|U3p#eJ %q~#\<ʭV 6RU_썗<;VpGs(0(qG+xEoKV :$*X-8"DP)Q&b;NUq9QUWr%U7lu7sFLTuī#qT}Gz^5 1@c>Cݱwu" D<49A3͔t&l& ZyukfA|U7lX뼙iflfl`7q︮p>GaUgt OU ȇ.=;{pel3D$"t=+c>+OTL{5_=w#ʼn|L5Nl7)IUt y!r3PI5|g;PM*=*Wv;g1ͤ6h m#d|\r?0oB6y6QAb:|YFho f⛫|6@5Bnw;>GŮ=wVdxo>I3+׈HFR72lpG]K6T٥ؘmɩ1hZs<т3j.P$eN+ގ)* ۔ZTHe??I/y`]&4r@`{ٌm6㖱<BUmY.dfesw2fwo.r 4өt6)-Ѧ1*WU/#w~bOLww]_c;?c]wݪua׭Nxnq ({qTjwުyrk;o]֥̎oGヷ\˗?`.UnBA#wϽ`N0*]Lmث`f6K~>p)(/0\%rP& !g05 *H:p|*4x?X;UJ8́ylŌ͊v7"Ao)w&80/l9vPL= ҚM10sӚHe_yP[#yj<23oAAg3rOkc1ngs.6#ۄEv^~4h* IDAT^~j3c?9ń*2`ZL $nQ\J6/A-!='Oh r-!;`YEOkы:N<,3C еc3p:qM r#,BSlF,g0f&⛲9036SL`7hD.̱YРѦͱM3qz3d*?/f3Nse3Y#;>#;>#;n{;~zԷߤ&7Ini37-Myӷ}泟e?zS="{i/I+ ̿߼){CsߥTiu# TNP0ܑ{{w!Y#Γ;O"?zP$ CyebiaM?nBy~8pk0wϪMP?5,!fvsOI_ i0mǬ ? YH&? lYgczi{f;26t 7as[33q|\v'l^`fF$˨c2cr=;,`3ה]qYFm[.\NH3036{ݝ͘r|skno|ۆmmۦmۖmۤަ}OwBGuq$~]{8RI}ɕ{>x'=v}O 靟P%fhVd^ʳ/?^:xhK Sz3׎bMzf8:Ort)_E՟HZ:|OS >{9e0Sc`q`#(3=X'`^v|&K14pAnV^: T IPK?{XAƁ{Y-#2c< fG\ ꛍ@0Qa;ݒ쎓Oz9?Hk7կ)K0B۱/[z<4s=lns EV[?O;9ɇwN?|w->c;VcݮJ>0N}>Nn_zG}hC;&k#8xb3wg{Ǎ(ye9zEߩ/F)_5`^Ƕh:U $+T ~TяԩswCg$MBL0mFܒ>擁uerinDX{h1E{h=rYFr!`41 2EflʮJxVA|s]z~: MsDؓF,'; Y-s` ɞMŃ!>CdޔF8){F0z=|]uij`T9W}jb'窳yS)@uN֓eca?YȄLe&3ԩ mf$NISUIlUygqI2y[Q3Y8*qF5U `el(o<~7!=:{/?4ŇA?9'϶LL"ѽ}S\.WT/]`1L:x_dgՉا?cpJ{{~ ' uHWA:!K39Տ`KF@N8Gz޸#&JUv0M=Jc?-9c gU`$ٝcl*^w K8ܞFL2}~Sݙh]&e:5F#Βp 3-}.7] ͣr&v1Rɿh.3j2K3rR!Rl!8XtG 0VU&{joO'9FNT$L$&!5G!?/( iF0,KRFp3N"mݔll$?#ro])M:jFc&e4nu].7 2yz4n*NK=öɘm 7@A[K8%M}&%I6N8%$*7xZ^Eg[1-I()Q9* !43-l[gͶ͝Ll搌^s';}3YgoMf!yEBDy;p}ja̧pfpp6@O<'_WO~EWO~Y//Z_ zKPZR 5KU@s췿wTOs;f)_{8.0V fnjlΓQѻeb't 6@ǁ'9 'h~;_ӻo遁gRpf;9桻3<0OgXIYp>tQg8]P]PzOI 6B(1CYmfH\NbNm״ ٳo fJmPỳ L$6"vF2\bH'jR ֡F2#̨!;x.{Ƅ$'=W0XiR7AP$6ijPӶ2܉v1d~vQcOB2sRu2JsFpM. Fe8\ Ox$vPD'3xUع 8l$?l7>hRU ~e( X]LII<* &,v,̖Rp\D$̘}DB֫`NѪf؎Sjc%\ǂ[ƊdEV3:l3Vtkq=OȢp L}l4:i̕ >N"ܒSlթSi2I ɭl fU eC)P<. p Oˣ1a66,Ф#zfs ۷U9 Z3wmȌb̘xa)NX؜ZyLmʳUHhJ0'ѳ8+dp= 9xi]s{3Tx&f)7j,F̉! >Z@0qH^ko96{Lxƙf+(ݝlvw2s^IU{fՖBY$l% \`l>>7ꟛO'G#!Htf(6;J%J͂΂Ҡ͔N ljbhB57ׅ=}Q[̵E;g__] WVnNբ_ld /^OŁ6jsMvf86o#O,0HKU`M`0we9@,Ne@`ֆ[IۙN=?pO[̨ه2y&oܜ< 7igYk`C6W\N' 9$1p! ;{$?DHu҅Ci616I 6ݓC >{VP-a>pÃ7~{okz9.\,]0?x?s>%f~sP|m#yt{I*T|m~`ƶʺo I+yA8q%Hľgl?2D/ ʢ281Bd4"=݇\o;a ?R`^4W-6tiF6o&#ƍy\IoF0F` .5IUϪcCؠ* [\V$ֹrlN֥GʚĈ&l2|31͸t/p,73ͿMxqxoH(CBefc3"63̳>`vu$qI;vzŚ\ėLEcd-Ë+-92" ;kĚXVY6E%c+p 7ҝ2!ETc4rd5.\KJ}0o9u(R+vZoPŸ@mnⲱk>H;v)KPQIfU@v=;yy:XIk3 n 'vS}0|ñ .|_uwg0ɋB6ϻRY IXx-eFWg{9.̎Q0us줔Ȣ99yB6:Ob@08Y8 { Cp(f(KV*uil#a\f:l 4"|m96}kھXRei_6{l86K40Vf м`/ˀ[kL3b՝6*#F5[Rb} WL(fY `v z,`3vՇ~oV)Ni+8 |ޟ%K27$hXQͧ3:4JRJeUdU.]Ue* ΦTkJD(Y"Z^H2Z23F_}i7wtƙP;b*[Ti`rTn 5c ]Ѻ5%sZ8\(|jIYzte=ȿljJm 3 WK@ʈKDWAQ%U0Ü0Z;I,]<$#Ī_Uk@ 6lms疣ʛu< 9#!f/i1v:@viqpevlA]ؔ`i4k&|sߦl*sg_>IabJ4e6< ?`85eiF_`^qX6e>fkuTOrCD8kŋNz"F_e=g:?ǚ tiR! vr`q48fp`Qh9sfpf;M;{NӬIR*`;ۓ´<`FnjWaDx&HfxL9>(/,xRN3,eH <6{9HKlv& f2 ̦آ!0ufCx0mvfm昽4i-)9F}9j]engD>iletIٲ lnlMd t֝ɖ=ްpMU }MaJU+入ťŅTPirUeqk!'up;u4ڙP9J{\a8Y"RshXy jלҁR8TN"hӜ=ywA[tE]p -睐Sk/uRav,vL'_*RIUN+UG*{,1'6HOKWlJ˃3B{orۤA f2W*u8棫8X:*|M۩M} x,ϵMW0޻=cvy`\r"bGmÎ 4H/f?5^#dNBfXg~Ha@MENipyi<9;iܨڄ EӬNi9(zJũSP,|j-t*ӫ>"?#7(g);;f)G&X,[A򲳼쪮j+ڲNس$="c++a=)G^|+9 o `fp+̦?҉LdqgO0aӨOi͠dB3oṵjKd+6 ׂ-H&iF&.E_E3Va@n7R@!zRAڔl0ӸpiEbPFl,t)LM ` ؤ4"FMUݪY̎ffΘP T.BL`O2cʘ(OoM %Ih1R5B2a 1pU5mlU.'IZ t<1N_:1v`qc K>w/()9*{f ¸*if)6)Ei7sgvŞYEfg2)ӫ8i>I P,@0OA& pՎ̙HNnFe:KгmAc3o EbL_7'Mq$̔v$c6A92EpM(k:2DYClΔE{~Ɏ]tE{i sT¬%kdMPS6qh%6k-JsQ_$]GtuL@•Fl~;оmdMƉU|#,<*!Tv,=#[Hwb/Lp|;- $Drp Ű*nf0 ĜJ"~$LaܝKQ@)Nb>LQQX͊8y 3*K_"+c<f.Lj:)?1(f̃bGI2dvN$QٜN:Ě̕2cbI@lfL*&sq {px66-2fuI`rYmds=4a3s8ˍT$YJh0i._ '~oC=C_K|/U_? (| ;/}xw`<+O*nGG$%_'J/ѓ 1q_tK{DlzK䯃0[L|>{=v/qb}s͛~3_=:(`3` 'C 1C+Zm0E0!b! !)E0!b!U b!b s)\i`C 1C-nY TUb!b\,b!o`)GD0!b!UbC'16WS 1S <;..96sX~AWS 1S !)ټ 0_m#%|o,b\s8[!J[3.|!Y 1ĸBfMqox|i!Y 1ĸB W%D0!W((fo|UBbq- W%D0!W(͈̄>ݿ㓓WK;N|ˆ"C+b`ʓz4Qpv*|!|~u[>f U w lr=o'E0!W(z\f[ [Miݛս=>3nov<;6nDbqł9T fs^ !EnLL9=}-7QC/wI |-"C+$s!l'.OX]2{~*f-\f#c{唑q2f1 L3ʀR酚;/·}g_"n]0_0o8w` nyka`C 1Pṯu#Ty㱯o-sa >W,s f!\|`Fnfic,fQ>Е&s5d`C 1X KfkjD4W׷ yXŽ>s|Sc5 ~OmτnfA`b}`Ю [7 b!.0x0_B ha T_yo-!qo_~&ƚ' ƛscl掽88sa_W"C+ C JcCQy;"GSo{VG6n6ec"|vfnֳ={]1TwNYI8_ckܾܦ/Y 1ĸBvS_]rjZT"ٷ+`o:MGW&&30^x#?ӥ&`f'lhE0!W(`߯}wژz紾yA%}o-"W1zSf`C 1PP0 P/q}RX&Ix }k|CU b! sJ0W̗ge؊If"*"C+/5bԴbpNuvA%?}ϣ}k|CU b! fC ?o-KNLHNM*zo-"b`*!Y 1ĸB`.oMC'yD- D0;:9)==-w W%D0!W(`lѱc'&Eo:D0_B`C 1Pp`n 5e)ݡV_|!Y 1ĸBYO :9%;583:DR[6k`C 1Dm(2]jp^w&USy_gQGqt^}AQ+"+ ([,bA&;XZ}/K)ӽ $wIrܥI5216j/뭈ܨ4?O@KDX͸13TTG?q >mG/畾}02rs.ٖkUVYإɱ'Swťg!ЌLEw=Hyyי+d=|nVQC|}9A<Ԧ@BC '3> smxemÑ#ɥG/c=+_0`db"Z47O8Vy"䕪? 's-nOTOeTQ_^c_0`dlbgӹ󩌚L6e2b1#s43?bz**KF/f7ӟ1[&̪=e.(o)#f_\@r/:s|n1ee2tF b@gbu둞sĬ- 5w`I*۬&btsĬ-$T0P~]|1wsi6\ 11kK(*'fLj1. 11k 1p{Vϳ2bB\Cf&b.1k 1NVٓ#11k 1glĬ-3Gb3*Б#!KO;|b7$C fm0sjklnv['OܴiSXغkölHHHoRWW-rĤCѠLL<h `?qnG'bNi>$GÈ9!ARqWsmmCm=gnKo)bۚ7m|2`IoO2%OgLw,*:$APJoM2Y\}#h$f2 k}H7z[񨑻,sA)+]}9h,Ƅ|F\UPL/cvm555ǏPQ>cM~1e׮۰iSvNNٸssw6/l r.B.1[ો~ f{`f&7eY kZt!@CU-_}JȖC5;4'fusBb|QIl?|SqY6txkl;hA~3z9ϙmS?2K=Mp$glk)(ڲ}PP{="Aϼ^nӮcvzk/;-zڤI}f<;#ޙbS 'n:=(bۄnt"{~1k]!oFHY 2_))%_dvNg&ep\$65FN>ԉYyN[t_^A̶.tA$fK&Uى?.eョSg6hؘ>z^[=os w^o~;bIoDFA&LQ }goAEB:&NZn9AT7KGƶ|yxZ b.!塪 ZƬ[oD(")f W#fybz&L%ocZ:?/NooԷFQ/呧y{}:u}_2m؍eW^Us,Չ7s+ye#faȣʍny9^fr3 c> c]lgAKDM+rךYUhqEjLEce6\F1sMM=z=t=8= IDATlx#kO]>w>#FK626B9=baY%b$1KV;ْDzNYR]-\D5VPAAbV׸H5i 鲮=.6х3eUC # UNL{]*ff՞e쒘/%_MwxK7on?>>}[vz{~zw>o1u$~nTGM]c7,6f~C,X%3dev\+mW~[mv +?D(fl~,W _"f]Yxoß}szҥ={>Ϧvknj~_x?腎CoyGou}I'ȅ^ْyu{m*ʶdY#$Zkk!E1+ՊMwHnh,q h.!ˉ3Ջ97/5_ؽЌ̬9MuNyo/sZ(-ĻbVx?Ig /4yl~1[:\߽V83do~ a4kPR{Qؾlma_ٓ3ze9ǜ[wu٠V)y9޵ɸ55tIII߾q}8 s(Yee9Ӛ# 񦘝T [)*__b\QOlkт ,}M.{?b ǻiбn.I|*\vY.(fIfs\S[[W_g҇kut$F+X^T4bK̫IY39bc˩ki|vb6bcpe՜ϩejsb"f6T@~bh.:FlМ@\'3 !f@1` |!x6hN5KlĬ-3@k1՝ˬ>]MZiOS6 f@ fm0㢘g39'V!f@ fm0b\#s5A@Bid5w`3h\uFs&Bm̆@?8@w8o"xfI1Ӹ9!b6b}c+-bΪ'\fN\^CsO۫2tmmՂ 3+jmnvOT?GEfhk@X1gT%sbJwĜsꇈޚo5L2=:f*Lzx&f7kk@pb>Flm0bb.ݟ=kzc\ӫL$~}|6ʸbnVĬ-0j13M3e"fln)ٓo.CϮ}/CHS@P3nq3ܬY[B`KK"fqUv=#f[*vK̍W_τ\n5]So~ usMϬgܬS1'ob֖P 0`qMf+gU ze_̫̤{ekCaye_މ[91w5lstI@PeA f㊄<jU1_ʯoq{bzeS+׮ToZ̕T՗I ˅u\n.ỦTnЪ|phSkKpYm,$.%JR}bnX k JYlKx GΎeKEbvس#*H1h,:FyIlLS w⋹C5W@ܪ#ffKܬv9bvCmX%j6UџV1믦S-%Kow;>N)@#fDN[Y}j)8IֲO~/age-wb@Z!檺ꔼ*Db%RNwӋJS}wJ1K1[*?_fm E-li뙀fƬle⺘K.Wے@uEuOb0m7}SNՖ D/bdbf)]^밨*< d"ģ/gV}L:klbѸWiU=qjbnQ\wMelXusw%m,sxE 13j:fF~e jP^˫z`"rj%fh!Q fh,fRUZPCSZ!,sIMWJ73W +XzQt[w0[8aKK@j-Յf1^T5O3Y1sƝ ~+f?bh,沪tVL*r3 fc@ fm0ZJQ-\p5Ζ!f@1` |" K9Ur6 f@ fm0>L6LK-bĬ-3@{1gZ,sNY%Z|ښtsqJSijSiVSEqSGg0Y[ fb*1gDulsnY=ԋZ.?/'v(9[әM74%e |bzKbV.$i11\8w@QSo:=)nASRlSf%b0K&R͵1qbfSj1:w϶UIG'5.h* m*@S}-+jsJ f[R/߼fz։YMY V4Մ5լZjū~ҜY[| F̵9Mv17\/R^ b̸{تߗM82)mNS¦MkoiH>zUflʷ!1kK(#fk͍jĜu%RR:iʲg/`^Ȣ9?]9qq$Kȉy7m۶[bj_L}/>ڼ^Ӗ&d[lDμH߉Lj&@ uqHN :c~`KUļaÆY~2+S.7/yԞ 'NݿxQ!ޚu#w-Ues_8TԸ!faWka/FK_h|f1k 1v و2$ce3v\c?\kbiy{rvu Ygզi#ָ.f$\:a-"f{kG‡X\Y[ fbi.Ģ|xz-իs}c'v?VtRqN|yfkcCsjUJ8:ʗ(?cCm)YG @ŜCꎦVRemEe5QٔVTF̯do {nLaO皆̺kڊ>Qsl.19Ĭ-3@c1_.zl9,8[J,b&5 U-)P>2C7q?]aO&>tפ}~UC,$.8 0׉ٰ j#Ζm9KaRX\R-3briF&Dj S_L0=~`ٯD2-I Zʶ}m4r%B.Qyx(fZ+y.ruY81ǻ f3}qM]Ǜ ˟g;?0KC:tUC|$fIK/fYWKgQ:Fz`{uNj@D,nvs5S_uY?sG|õ|g< ӋLz7xy?u.]4!!8???GrrGw?a!:s\p`ptp-'SLexa54GHa>p^ KB圛O1gļZ1 {z5Wpw_o[o۷E .EE>_1S]:rʦY1CIE flNTN̲5Ϋآd2Prn3fbUU6f(#@I1K#U&s[ϕsqP+ fgN#pWb+[YUFځdŬƇ`rgUE.\Ĭ1#UDXLDsd'j!3˦`yΖY˶5Σ]ELv2$+۝ )fu#2RfǛFdQ2Oa2sZ%V1o=[.z:f]Y>{mt\i Z\P.v-(;jv3bn88t`l䅈QncV2q_7CFL, j(&ų;\Њ-Eۘ4u^&~˟3\<3ژ;WĸY$f*鞘s#5w?lC,{t͠mv"#fQ BU6S=xffngl2k+[\-z"gR{n[4+ s{i1W6*X̩+97Y&bvW̹.qgo.W:D\j=!ڔg Q7TTgn-!gDZi-%;V˽$ou᢭1K9D0)2!oKǾވp _ɹY$(Mb!2g_j=_9G&bꆾ Ɣ>y{v4nPz u3z/yQsR +[[t2V6C| |17:偘jKN?h{cVwV>x9Vwif& 0xq)/?ܶ3i{[ bcbws}cusVij|a3|3doE+(1͓)>HO7Abh-"V7WzY|,:а?Խ}3'ֵqay$& @esqDUvlnnN*8?%zޑ î?xʞɾ^vmX$(VeA<9{Ĭ-3@c1|^ TV7{KWR7T\ȉ[q,EnVn-UhtA˫W:"f:ZbnryCVCid5w`/T[ ZSՈ:\T4zYDLo6n 22{&ϓK7l:eJDuIesǎfh#t+zDbNeY%D=gjbcjef}I7r"uԊY1;Z7ڗah`cy@oblsbn;/n׾Tʓc_;ctS9IiŹ_jd5҈nOD;|sC f7V1؂f1[\Z-onLc+S+W4IJ+ژJjnNY1 7E 3Fvdͤ'mY7*fN;}r> mXȅƺMWҊ^vb֚!A1{0(*5@o,bN&'fՋKr us7Q7O:Xf"%f['-ƅ굅 MQܡwFB/fb梘_K;[Ǝaubޑ S q/Q-1kK(3 t=fF̵67ˋصץK;ֵ^ĐfԽC>Xtgne_:EB fm #Wż/+2I1osEOļiD)+{iRٻ?U5> (=D:UZ~6p 1k 1p\PWbXk fjCbS~_3OO@q IDAT<Èvn~cVn ڍ{E y'}z[ bc$iB1ow]̶A7ٗ#Ӵ6e"o)}oBnxtI7=8mWR# +s|z[ bc1_\+E5V+f49e4-8D .?^?pؒ 77gbvTy/FIDbkJW3vۗ mA9XZmS3ڠPm1[,%fŜ\̂c^{"njv>g?>s{kuSwk?A^p]|{ZL\1q.%&-l+/imE[ =UЬ3@3ۘL+fk]^ W#7}o'ƶ{n6=щ: >׉Ҷ/o{}O볿M9{liioڛ͏ |#DPleoAQh_nĭbVZeo$EoBfZmmP3>@_WJv$,hc-nV-ŗf={66ݎ_$6>ogd]=Ne#?7ӺFLOOvz2gnC oOA|1 慲6f{jŭJbmËYwn)~8ڥ}mWq"+UhciJ/Q%3g$ ~[oj'~hZa- 6VLY]3ffE`3vᅲ_/ش<>>x+GJE$fA 9YyxN|1iEhX5+~KZa5"%Kes1-nvlc*żhO)C^;~|:/HiG3 Q1Wg7};߇qO=g?_oohÓL޻wovvԙ"WBLmE \vlb/ flocfܠFsiK_>*`]OwM/Hh'̯46N77_1=4sΌ ,ƥT E",d&@߈ٚbfk]o'\?$վ 8Xۈ;ڄn}o|z.S2>[V5jyyv9ѷܶ/7N=gOIOY^2"@)bĬX.Pt > Ĭ-3gbN+,IC}ycW?9l6o~=''mVU!_OԿƑ׷Єo.#fY킘%7R,x3Y[ f.Ŭ:b^qyɃ{'u7wzsm6zgFg^k7NOcx菳~eu9TY{rabc1'[셈yO>8=҉}goycI[#4U@?8@w8ox_ML\q)7q{o?{^^?ߝ<±>M?uq]NbǏgeeaf@oԈU1744҃ooŶGu?@x_[\ϐn?Lt={Ң|3T @o9>$z17n.++;|v7W~{ϽsW>ʧ_m—zha3g\n/_L󑶌@4^JZBJ$۳aW g5s匐Ug6cŴ+f,\3?l;v9s&##n#m1Q%fKbn6;;ҥKN:t ۷~K⒒ae x#Hsbޙ\SIl6Sddeeџt ]^YY %k%} 1'_qK@WY[B1bY[ f㊄>$''f.AF@1` 25bn)Y[ f 1k 1!fC fm03h.Hs9.8 0I@S@p601fo \QQ~%;'^$ >3st_ h|M |wC16)7}!f<Āb}f賂}gR.)IɾMM)&00.H|1kCu7l黩uAv*"[@9##ogC3zŪU ^r%\Dwz~e߉i|*lյ8+G{Ya+J&Qmmt~lq%&KW/_9;3ze}y1m߱cMX؆͛._1i+z5G}c.bn:oN,UumpībV Z4jzm]fd"ޡk: =f1/`n MK`41󩭭ŰS7\|Q[ܨӶӉ1 1 $ڢ;1$1;vX9,|uΨ 1|߫TS{Nl O,bcG1Rfs݆MG~=j4nq.XɛVzNfBv;@1` /fJUU5kG|=*jfjqOVSS^sZf7P@ʾ =s,#:o9p]9$W>5yg.Ck#`@F,"揖5XU]ݴ:q_vYr}Cc 5bx8HWll*}y4}hK(vjF֢,܀1k 1$$UϔF]s0*]99}d϶%AѾ8,w @]9zeS1_yz穒~aw̶Jwb5}dbHMM[Y[ f>{{W]{uczgGʖpduuF&H̎t f vA1k 1Љ듕 #Ӆm{JCvzX8?DY8>pBtф ۊ'U_<:z1 똛܏!f~u#(f*;VIn_rŖ,j$AiٖC1$ȮdI8yoX>h͕/d ^98,!벇e8My_!Ņ/Y,i(r瓍Mp}{GnAԋYQ_6)Gp@%1+@;\?bmⳀbal/߂R)%ЋݛyF`\\;RI=&^|^Kz-Ml+}\xYf 9]Mc/?`ʪlDZ3݈p0`mnoqEVYell]ǗNk&6XbYM3\YqB:Z#b_t=wIsbE_I.{18w ;pӅaT̿_5>Ѫۘ-7(ȻnS[skF9/<*'bfGD~t,)s$QElc.,ATs"ggM,|`,fޕo >pv]s辻,>tψ]qKbfn&ʮY7*ʢ"iD7o.wJDTLkOFUhqEjL|.K>2G9.Mvy'P[?9` ѷ}݂>_`멘404`_do3 QW^JUe 9zY"f6 e13eكY\) #h2r(WJ䉙^l>=^lV&>s3?\z#Kn.K۱1vsv׬}6][Q1;o N}&+fmCrPMq`Sl"w-&b ]N&O;DT͋m%۰42[ 0!nF* !%-m6fe+x1}o3v{){ZuңmP1:sxَdW$% d-8d۵!ExGahihۋۘ4צb]Dbe v@3ߝbׄoSeu3Bi1;=-ghAA`9f6n#gnlgcnxϼ+[Ơ֥:nk}dͱo/c2F[^/,b{BBQ-fU}YfZ\m۩ $:W.eJfdcpzDu1K9$[{͎m-p #Xߘ`u u?XhNxa{OeHZyb Yxہ^> bV'%Ĭ-3b>@1` f\Y[ f 1k 1W1@e 1Ȣb >sjZꚰU̘=7De&tC/@8o(1mmeUKnB7ȣ+81-㞘[h f361h>1'&^Uf5b=D9N @żCbVW<}R_ٙ [&x#HռbNNNRʎ?FU65oZfy@Zʾ ]|&b"fL<,[b$X<sG&bf-`-53qEB]y쵪l&få`@L'9̳b IDAT- 53hbrl_gǜxcCe[4xҬNĜҾ}H?bq/13Ą+ 5oQp(*؉?}ź%<P,®Lhbv:VKjlV΂evEe5N[x*_}gv=Ѕ 'R9_̼p 1۬+APԺ }J- L1PsYh]}& `zg߲sxTKsD̼ y81sbwM@̠QsY^_i  הrq-ղAkԉYy4--JZW:l9Ub͈Bs8] 'cJWiZ}a`#I,%1sQUY ߈PDR̒Hn>f'fӃ)Rٲ-bT)s:Eju1*g:o`k␋XDW.+*."tӃf9W*}ү)[qz3#\ d4tYW%oN5-vKC # UNLt"#G,[d֜熨L43݄n',|TPʓע졵52[bo/û13kU^Z֯2aq`l䅈QncV2щι݄n',||mJ1 g7+ZX\p 9ژ44򙂂Dbe 6f<nQsY붥kaB[llFgWrkٺ^m/_9;3ze]b6j. q dm+i|#۱ ^(%BY~ďw57acc_oD 8RF'ce<bb@̠ @s~~ޚF}w b\O=/\;'8@ fm0 K~ҟ).$\|!rbr䴋)ihNS}Zm@1` "f*2|CBΦNaMWRR$/[ڵGvФ&9!@PхN:%":bk5qWRٔ}wϜ;E&C9Y[ f @/{1_NOM˸LӱSGW[k3sS^O=JMzKs & PbnQ`EŜyyQo~>gaRI?ZtF鬞/7)Y4IC1JUH.ğ HA fm 7QW2S7oAnٹTѱmS`P6)*&"flwufRcFy1h{FnLf@oQ4^2G߾9Y}%sAQ:r2d@g\irK̊a[*6:V-JO `@oQY9={w_~3Ρb.,ͷhJM\TRPX\PJFϹ4tnrK̂TX !YhcL3FԵ)y%%EE%=@SjZj )KrgforG 4\N$QfKHl)D8DC f7NdH")fԸ42..-*%Ť9=ukV'^P&N/e؊UJTD[%<=*l1k>;EIbsMf1tAy99+򊲲r‰O܇gxl䪘-sK`:1v!Ow/ sK#}(ivzۅ*6U}rw f(reUEEe9a_:nبQs~horEl*m:^\ (?_}}Ap{sK#XsP~T7F+ڏ?%w!b*KJHUUUՕOVyhNIoCr 1k 1𥘓lbnXIe]ء+k9N^.8Dn*FJ*HeUEuMU\ˉ9h܇g_t 洉C fm0=)0wyVIQ~/vIb6S~JJت^Uv|cǏWUU>v4"2Ji+++}00bc1WWM^]Cw^LRnρr$V1WTT,[8B{K.,..<h rqͺCc1׮ړ|Wb bΧs]O]G= bd[8kmE&x,+voFWw;݄jupv/ͭ2o-[8TmAA3hyG{:%&\)z6fg\q &b%nJw_&xBj@89 T,#?ƙȖGV֢6%!)f:>[̼.2u3M+$](y ] ~,p (5Z½r5kVeC`cLiӸ삙[lE4rppsTe\Ĭ-1&NJl`$c5VHK",K1Db3g7KL,f{wz1 PK)J &+&+f~QRu"f2Pvje⁘cE#VՅh6d])r$?@,f$!f%nFވn\#f$6fe+$+{6ӔWյp] ~(f0,r9$.G\fO:qm C:M}eۡϔw@ B_bf8[ JR j] g1˼_T\p<,URDQ8O:DS9.vͮuRcl! tNZs|+\|@Y#%(`u%'n]Ň¾#KYt"'HMc*[J+r$?@t,fC^@be5kl)_@E1_h f\Y[0@Wbf&UC fm09mF@1` t#ƨJ&gRj1k 1Љ#˹5ram ٿ!@P_#ĒΔ|%w!?@ fm0bn ɹ9ME⊒}:BC f@Bid5w`Y1sKm83P6[sĬ-t~ Gs3Kecv)@ f7b~ s vJ+k\U%pd)@ f7bGkWK]?\z,b FVwߺf{2J5H_ 3E1,yqKg莋 W9P_ 3y1paY q(keӋޅ1Qs51g11\_ 3'b>欼$&|Z!S1',9b I/je&P7#b6b}#3+fThc6b}4HQyI+v'-uK1Qvվ4ܛrO򅌒{c@o&(0=xe5WOK$ @O3#g)bvYC%K1({],79r*>7L_ 3cxiUS4m-Y /􍬘bivږҊ?d)@ f7b~?k_RZq}c$K1Qs3ds%&17b}D4PJM1R f@oUeӈ cX11qTeoXs b6b}Dj87Cƀ@o\u& !fC@ f7ĜPm ӊ!f@o9󋺹v["s=1o 3%1V7D5 3'br""u3l ƙϖG*ӊ f@oyri!f@o\E\FUhB~@83eLL|rbw ƙOM֠b6b}DOq- 34*KJbfgS f@o81os\8͛ϔB@87Ă@o1S11n$-RB;b sTuRb>UJ|!3NX1sAJ!f@ f7V173z(:1nNί19lq󥺲ٸ #h7 Wjssr Um*r 3NQj7zvsl *hb1 ⚘MqV>xh&I pbLaf!EV3ۍ},[ *lbIZ7AF"f~.0 ބra]j[L̹K~3.Ǩ‰y++f"1!f@C̈{5!wCU6hEU67CF(9d63-X,Wm7-*1UmJ99ki&5<1& l ^,bk%>7=F֠Y MŢ!fFji-o/[2sд%U /̺b62U1"f\l݀ by˹J"d̺b6ĭ86تtQ,N9+sT %Z!.@Z̕b11P#-\mv%ld :@!3\ 11P)f.AF@\3 @ b :b :b :]1WS1AFm#u~¡xWO$ ,M,B<}Hf} P  d߁r]-;&i3n$\z[^RY;"'l=j[x&Uŋ_跔|fQw#QxE*)r;TsWTk hn5uЬXlGl?ioXf֔%:Q^ Iel6ϴmZQS_օ+HLf 3vPLmx&f!f@1ˊwW wr۱Yp+h3z|t"(U<&(dQ>bHGXc~ 1s)scNw"f2W408u3lb81(P8;R={1 Qa#۽wyJAVqFg80Ş{ά}vϮ|`IdYA2eEʦ W#[b(I9(JbAALȹfH/sg>=8ÙUTU@۱K0mSP2$-uXjᇜtI;3Ph٪60v4D֕GIfXwc:RVQLZOءEml;V!̳qŏ~s{?n;?׏b6"sΪJM'IEǣPHu,7볠uIF֫N=M !v9R]VBY6os Lg${q.GomCMڟ]5ݎ{=un=D@K Mau+;CmUpCLeҲT91?@s.bd{r'N;(+׶G;_+s+B,_aRu:<&{K5_ 9l1a;I(ѻ9IA̝q+!BSxhXl-Sz!zBʚn{0vM,AbmZ?$ole~sWu} )6-.Wǹu|6C^T~8G'kE&b^ -1g>@, 1ǖ͕s,fX Z쐶bAI\'ز1h bLbX6 1  ! bB bns bN.1Ė!<@ sbs4"@Jbż1:  1'|1  Kbs b59 f3Ph3D\ݱ1  #1n b11@TsA2sf9 f0Ĝh3D 1  1E 1DT0Z?࿳ d 1\aQC$O5MBy/f.0$f:$O:K^VI򙆆 VFsohM0&=Fѵk b/Izܲc=TGƳ3`l׊ue /e-O7uМԬ#^Lc)/gM9NJI};7V[!f_=nU%~T7&??}ϰ'?t<<&TNV,f/->i ƥǀct1"ulKf%Ŝ`sr,G³Sٺi73^=v:|pF3`J[OJmlsT6Kdjzg#5vfr#'1~l4ٱkȜt4lĕuf>v}CbflPھ+V\+X 1brE_`ysb ω`oe`/}$V{/I1Ǔ @ 嶒ÂVrܖ+;%3yKn4Gn f@ @C&=Pn鑊3 ` @G1Wuƫ f4@0rK2 Lz# fj( A ~:(xBrK[zxު/Bq~b^$b 1[F1-Dyb"Afl;V f` %f恙{=ZA+T>쳄Qz7~坝{o|ϯ~K?'OO~c?~?أ?ؓOO|=|מΗm\-/[^Sb^bsbkGj; OkAKszUQn#/w,3/7g%5b\ui柏blYx.ٻ7D-aˆ523CkSޑ3Cͱ涮Φ뭱XWsGoK@[ݷg{Ytsnwޚ9qsLǍTdd- wh4m6ͻzF^b(wË.-- Nk7f֩ĨnS~s+(>כq_i*3*ɳȐg}7>ΚA^) /d&V,wŸNާ Ofbh6k,L.?B_8|.S|IR.苉L.*/& *]^6J6 YCͱDx<^ΒR"ݔ;Zja6%#CM5=FF-;7i>87Y'Wg(ԆYexzUTh\U+-̭Mnp6D6g n\G3CvT C$HdMiђ([zmaz2b-u#TNh *1 7Y?я| dYﵧS׳Z۽ZJPڞ:R\-Uieͳ'/#g:V5}vҧ%ET?:ǃU=_Kܧ*|^xlޢ7IWXtӽ! ]YTGY͍o . 9ra%GFUmzM5DXovRdNIjݟ7|YtŕcŴlYӺY%RW-+rHG9.7Y4Ll$OP{cfZ8s\dŕ/58MDw:›_"p[֠9Bb/m̝̚ib1sw:~H1*j|15xyyj.EYJwgI$e3 udƵҵ(=2V-yPj,.I_|}>v`m󁚦ϫnׇ[m?eѯwRO|R(Iy;q7:A* ,JwDz[%Y7|Lr̖qDTh7ECIRDn]>WKȹ%PF(%8M\-G ŕfWL9XY'YiMޢ?7]#aW/WdԪ,}1]f5]x}w~֩A~ַ)RC|c>@(@xj z:"a]LGxf)F^ȪZ~?FH<2^W1[nieS̲GUniv&)O(CF\2Y"Ӣmk]bf7Z JԒ}%B$$~aq}ܚQVYAV2X}}#Te5eR咕U#, N-ZRXYuN]hk^*JLd\/ƎOz6LV׬ЀFlֳAMl1šgbZ9rY,f܉u*qU*Jְ;eDSQiMϔr-lVb3if34N;\ߗahb3%%1]_ܲV[Fx9R\Wnwکz?4ս_!bLTԧ\!7#jpIWƑU}tdJܿtL JA)98speES#M0r )Yf9Ƨz @jC^ٽ[K.MIJ?r\KCfasO%n< ecNf\K$ny핹l}q,S3љU$$,/2K-GACdZCIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/figures/share.png0000644000000000000000000006541111534217015020234 0ustar00rootrootPNG  IHDRiaʪn pHYs+jIDATxt\ewY{޽:LƀѱqGL&hp l9)K9VI**圣exXJmIO:j|+!!a%аu {ַ7׍A_Qr_a;j]?_;9O⊕{vc~ƍ87߼曟l:0hiqmΰz 8hkf֬Y9%_v~YXR8X\yZyZ+[QvcoKÊJ*p az>`1R/d]DO_ZR;X>"f]L]H ; ˷m/ݚWyn朒Y -Y>1 ?d-0u)SN79w_ⷓJ=1Mܿ%zB ~%.gM\جc^\|deυ M2789If$H8I'.?~!qM=ON;?\xʹgYO:k ] + >v!1ǩ'~8)p`3g%"NL<'8!ԧ熦 5/ K[Lx"pDbg#3KQK2Q/&^2U1٫b_~1.k y$佚HIs~#oN8mw5 ~dy?M:E,?d]w:qZ'` 53]` E?#0^M0ޘQ1غ9˺%g`՜5B{xPED228>2!2)292ߡ耶VpdpKdpsdpcdpCdp-qHudH%3*<2P)EfѿLnݺ>k֭K]^٠Hgeo."dgmw~,_۪٪֜(=YZMi7ek]dO]]dcj>WRU0!1j9V xe+8RJZ\ZPE~َ9-%LI*ڐaX1<5D!T3 )LS %f*"iRF6!oBb^\\h2?ɳgP&LKQďJ) ԋU5XIpyaeJ1.VxJ5\ +y\XVR\ Lm5VJpiRJYQEJVJq)# }.@@|\{ ~~ CՆ=z9\ p}ҿBׇ =_W wCk W"Gߠ2~kzg{\Rr ֌mYṈγ/[Pv\qy^Mig* g+`Śr֧ezw)o8ht|ƼZKBV9{-/ 2ڕ_3a2m˶f[?bE.ޘQ|+%$Icj&:Sߓ 1!|(L{.ܴh |:(iv (!/^N,"Ŕr.v2cbJ>L-f%K.ey RBK]V :+BKВaZ+BK-Vq)aIJY\iQ³# Jڸh(a%Wf*;Uw#tU@ O7n!>զgf@ߦ@Z_g߷߷[%D]/Z[38'wf)ɳC8ypkDI7SgU_p4\p6+W5ڿ-7 `}^ 2|5G bURU}g2|>YV{L/ K9 ֪#ŕ-}eSeAٞRYk}*@rm;`Cغ#׶=Ƕ K5l a7g7e1l-Rӏ7nuPOc PLd!RLIBqCgb9\dqJ҃b8Jo%+=,Ҥd%W 7iUYiqPJ\Iqi-X䴊L_~m=Z{ qՙg֝9@th˹?l7ôrNәc ug՞9VsX%̱3J}Y}OTf/}rJ*#(uѢE^ V 7.DL#gvd[ܽ;e}AaKŎ%ګϔ՝/s6V6W5T7V7մk fޡQs0*ARV5$Pмev6w X5RPK9 P}QR}ZybWE,G~RqR~\~LTAsp! l_fQyw}W>Em]nδn(Gpk\ ʥ:7J$dO\c)P+,O9'$Ed GD|ȗǥ^1e.ZQY][nhWs{n r Nh G n%e)r"0f9ʸE`)+%\g 8ΖU-9mU}˸oIIრv:o(篩*-r)r&j܃}PnB 3`՚KV"*cIPMD(iD8eܣJƊ)",#lRr"+p.PR>|T -eN1\YeZ X1\"\Z֩ŕYIqIXXI +9\X)+7e<2g[9{^oe}KmVv`[umUغI6KonݿxvQQ  4sݯ^L-S[ZZ洚J/ nN,,nEϕWԇT6W7G׶ےړ;R:Mi"`ؠSDNn`(w ĉjNhhXtkqzm8+*v4Z?0pêMMp=C @⺀ b0&I}usr>^kfL[EL [!Jb̅fhXzb.(D=Kj*i!$!d-C, @rȢR><1gf1+rU#T 7Ren2JYhɱ. RTP.谴2vnڹ)g]vm2T{u e N* {~xS*Bɷ߭PI+'hl,ڽ`ݛvmٵ9k/6b#NO)_~;qT(n]}kpT| k>/ limMl,Rs/D{?mmp[O{7ei9 gu3_z1, `O"?{ v4)BϡQ;)AlI_d,%'iP2!h% bsb+י!V:n#LJo^<{yW%,ei-|mI%yk]b^hחXw2L bK ZK.Z4cRk˓^[WVļ"+NE@ T8P>R@}_pkpPrɚ*M e)kr &QU[ӜTfjjlio kM]]6m>EmQsR{u;;,wBP䂎^G[2{M~>? ySg_t)/Ayknb /l͝}7u7SOn%)'6ô&KXc[ZZ'kZq_Z5>sxmHn 1,ĭPD+ ܖk,TIym̥IF\DO)+yJ!Q2<ї7ヾrRVjTY WťpR+}=yP39VZ8V*,)(YIun5(%z p 矘A@bg?μ/m}3Ϟ}m@ sggͺ?}Y̺?aq3qČ !3 S?5 uG+'6_GBA6(w(钤^:MWVASݔX tVsg^[waG/+^3KzJ{.^k1MdNY_^Y2ӎܛnIE{Űݿfm w/w~`j׀qձsOı,k@ q?o+8sϽ9\g"y/Ld^$8_,Cf*q%K$BK2󡀙xxM_OPs˯7@ʪ`r[ҶymEPeXU_2:(6Ct7'@Ii@$qKVi`E`V?C5o"g߯fW  C#|~5V/9^X`&^\g0Z43 `eL;i>6J]}1Ӽᥭ"l=K@X@g?j%w1em%.--!)k؝N|Vs[~rl3?~֞ҙE6@%904-g|Hz-&q+["tn-֡# *+lNJz))A+RDɘIJJr"HXE&NZ*bxbW5 =RY)+]RJ*+K)w~zYjM 7%lޔySLM\05yg-hJ֢ۖ>L$wMI_4Ԕg&-pZi͟<Z{¼{,e ʇʢ71廴@RgZeYpSek݅J(wCeNkW! (I\B)(qdP{qA,)e%cB@ T>Dž_TP:ݳ#ebZ{Ԧ@IRPZ3>&-G>*!l';)]At?xm;LL@d3!&s%--A *=P']i\ʀ2 kJ(z?E@ 8%c&!QH*)I@y=+s<+Rr$#shpeAQ HX&X-+sϿIjggv߳dVYfF-|F+gO\5=kta'B23SbfŠY1+fE/lNȲ9K,d΅%s2xˀc/m(](6|F8P%nA꬏jJ( \̀2%`ӯ~]>}YJf{%`ÁYJ(J>$w. SU@ic]}t=@^%Ĥ[`"PZ?^zqؚaދǼ8ʼn-NZlYo,羱h/a:_1'E7S^6ys >s1>~.:s<(V% 9SNI/nrʆ66><(ID Վ 2 JG.˜PY L:Y #QPH@iPziF6Ŕ /qYUrJv2 JY <4 ,%وj'ǮG&9%IQ6~rf!ʔULOL1(>'AܭF8J"'J (T)cXϰR/ankHXivj4mVYi ʅ]jȏ }gM;kYΚ$:զV:cOV}Յjٟg~&5$^y^OX@'K ʫ +7\[?۴$ʧwTUS|msb-%ܽmŝv (/f9HZGiSG:J;[/yQq(/'_xAHX}l=^RZ3?I $-PR,+v4TC:Әlv68)HM ^8L\xkp ;v>u%BK#VQyg Od % TX1c9q +BKJZC.XVh隕r\]}/_{goNvꦷMBl U5[.vw򶽓9qmy7eIM].\r]ݿy桩Wa33Ɨެ/]?]QiliJm6w1SVFZY8@6>rM 1i e WMfHj$wAi@yў9kѳQh\2UJ(5}nRyc|fQw@iu|2(_΀2z- ʃrx 'J*xv`h xq&4j - DžV&TQ$%փB%nP:1>1.1:1ԙsćcc#Ïoٰ?gVr<(,eAinxܺ߶ÂwgmZ(}GU54C?蘒ܙFھ!,.O _q3]%RB{ .bQOʯ#-1zU~ dmu*f{kڃg3vdIG}7KV2"XD ٞ@ڈS۠ ;?_EzS])AI'>6s^8lc9< 0$(4ZbJF)yJƕ*=8V򡥲VY%`6.˻JbJMV%Z\TYRG K3jv䕇xϢ?n_m?,'tYfń?,g3?oe"JRPt{JP[8P m;v ogU~5WBoJ(C7ܖ3VA#ۉ Xۍ݈=miM{gs:HbB!Y4MUQy<@ٞ>1IkmOukjKy2'!=#<$,z8l`VCYBy-<]͡W ؀Xl.oc,\8<zÐO?JI9%%$~`YZ U~-=rʲP&]Vrf V @e%2{Ev0:]_՗xC, O֋,(Q%UPV\i5pm .}P)<ύsm )P <ǒۊ'ه(wbv??vD!nA7Op+ rH, TE_"$cg8 ?G= >eǷ+K*3GаaLϱo͵Qa/`4]fn},r8 d,"c%%iM2"3cÈ0.2lxdm k-`DzgdG v8Kv52%%/(|a4_ې%%` 2i GQ)I|*R*ݯDY -`!ChRf +&*+?f'rV~FAɘ Q%_sl[Ŭ,`XY!ejt"*z|ǂ 7ʍ|MşgmˆAέ;sK`/ɨ_U/v(vRhBS =@qЅzF&&!gvJy y!+Xe^gD)Wyth:e @X04P M)ATP'7C ~F섑+_2 "%m Y3 -DH vNPh7982!^:YH2 % 3cP&LS2v2aⶌ%KYlÄqGDT)k3\C),+ WYŬ$<&!Bhɢt$̳C)TAP)ec.+bVQO,(^WtLP$9!HB_pcS.€e0H% ,-TC Ow 循oJaxS=AxJie.!ڢ&yu3KqDlڜjtqJ9@œjEi>b>)'|ZXc;lƱ嗁?ޒW ޔcߘmۘm]i4:d?IRHM"~3ux;52K so\cks_cٯrŢ2VF/a&@BH&$90L/ q>Qd7m6etQ ?˘+XIpqs(Z1<+Y\$q+JOKXd% * pR:ŕ_eA٣ʍRPdYr'{CUydm:d#;!WP~,k`<$2DzJ_lͥbN8Nƅ."v]|+5]Mv\rl٬?g>8afVw,ȏ[Ʌo=FɤdR~%&˛8ZC̗3A /D&Fp<r.- 3=1e~PӁ,";r&zI$ze !E1eeZʊ,+/Y9:z.JeZRJ\.&V5XiY 4=P3Ĭ$A% W-l;X=V:yVʲGu]W)(X@4&>N&]B[0$I0$ͳ!)!9Adm ahF-Sx2ϛf1$ u,bܗRs",9zKɒ']"cE^.1EF}>s8e>P[?ʲ~I t{KT-SMEoXH1n&J|RoUd+#Җ˨S/ %~.4P^LLk!x5 iN@q_S; =zPro#dCSRW%ʸ5X9EWN3Xey{=RBXɵR& .?ŕ륬lPIY KT4q7XPv\@ %VЋL6҄zLHQ$B9%\;Td ˡƍ )g̝dc*6;I͛ xKýLėOD@60.~|@̒ ! KvZ4 &ooBLh~=ټW V'bl 7v\u}!)CR'?A%@ 9ԳfS2 /=y!0"SFO9=C$)6%݋+AsW T/_cPΰ +y\Y)ťeh).48Jmƕ2:("Py𲌒0@a~k8Oϝ[w]@ z``!sG/5?DJ?m.QS7mSsS<쮑Θb!x{GJoayz\,Uc6EIzYN dxvtDiT;9 Ǝ^ɚ0e0u.QT::@ju;$dd;q0uؐ rrp CvA8% Qp,:2؋9q[ coǺtGl✦f-:Pt:;ܙj&c 0&cH͌C&d%q+1| NLrTbca^+ł~ץ/hSV ;U AqYb@X B3 7k2AB-(;J-Pn@PPqJC( AtQrGI% BPFPP(Ұ"h=n@I Z7dׯ_w;] Jq%(% 5NAykϞ=Gu;]xڠ,BPP=KP~'7o޼|;]xJ% u{@9](?CPPy$#C] ]dX2 PVoUPJnJ%vBPPPz$tL3P(,4Moxa,r#%UI^ޡդݶPo6g4}[y/KXȈ<%JP<>(48>6wz 흹/uP^/N&z߀b4̖ȽDP"(%> +XwMZ¿XNgk=%XJ@IIM4yk0J U Jb4 LânMܾ SQĠHnR%Q1 _2PYq\R-ԃy,Ά<=\rPGFP9ĠBc#9 Bd*lN LId(*jRqH3pGU gǠVs`v:xEoz_E찖zC/n`sM*B<$Ǣ2=N$5)sUJO#l2 ;oL9++=BUPL8 ?) 9@٧jldHq޹$oPY FID)JI%b=PjeEwqL -&%56RRLC8NBbQLQJ%+ xely-*_Ʉh!,ʋyw[]ʊR[ڲ3jxsڽPӣuv!T#dSŖ"8S8B-qf\Mb =T}CP2$0O(v "9GGj@i0tQ݈R4ݦfDJ"J~Ie,rԁN[z (6M)|dB!zC (wVSJ(-CRmW8WJiA:J&,ES-T(]RXL7XhU4ȥ]GzH)?SVsԑAP2NT2[y_L2rk:+nii'8b>Av`T~H JE@P@YH/S٪ϑYv[pƈr#kתY}r̋SS6Nd&xX+Y#Ԝ=(# (/mʴvJ\#޷#6DMj<8»$ j##KeH-ʍ'JmB O}y)obiDyisш '8 54PV{$CN (dY8 Ay'BI'%QJHdW^u!fQPFPP (<<]D%(=#%{ P_<ABOPy$#rJ-PCDI@8%ܚ]% 5>AiHF.)b>/-j1(.m)3,DPP#vϞ=joor;]q3]IJRlJjr%h֭킝®)zifI"QDY7piGgFc(+{-})(ȵ6B%PRQ~3@i% BkG(/eKyyvKBgPp()w>]J 5~Aigoq(r,2'aeiQG/6٘co_tG lq)x\;{u:|o )]P(dP{ Y[(v8>{9rmvNqyReLJjG2coo/|;]#P#*(/AJ#(Q(0r(3J[WaίP8hD!(HF@?~wv _;A4xqBlCPP>c} %ZRP~UHÎD%(=APySB`6(RJV/ej;A)Φ}!ǥBJu2`N2r#%UI^ޡդݶP.5}[y/'$X uKɪ%UPV\j$y'-7ِ5TJ2EgDP1(YXkךŚ]Vv:d ?,ļ'e/] v(˺'KتP\r8uKPJg1+O@PW;t&*+A)FmX5 u׃# JLD c0I޻))%3g@j㈏pYuUi_kkRj2R%TX[D5jT& fYoDVs`v:xEoz_~kV >%e+5oѤ"Nr,~PlPǏ& s@M[ ^)MCT~Z4SqH(gSH&[ (s4Ri&Aw!TGvBfQ ʊi;FրOSW^F\@^t7Zd桬S/R2өNFxPv/}Ŭ)=B,zF JV*0ׯ7C[2U B7Xw*n-vGRbm]=[V{[VVKegd#J۴= ܈(}=UPJAqD)ʀRYGJ-=w=%CB"$(=kΖ֜-9W&:9ZgEwQGZR3T(S*1D(_o RX!mĉҸOK&D 7D!wAx8 (\ nb]T;D#(=#P^zqv *ëX r=%:wJj3eY8Ie뱵-% 5.A(5͜[$Looe܈D%(<P^r v(u-ZP^TߖXʸiABGP=b0> v v+XZZ v==8y2t{9tP{{.)z;j)m[ŠNQ(xJݻ![w;]Gƶv(l CP!z Nf4u3P\>;11@BP (۾ҙܙB,e^k7v% vv x67BOPv\Z[-F% /=PwFPP J`qg/onP_Ǹ*B_PZ;J8@~{kxAB'({^u(޽J 5^A ,-?@Z0<шDPr C7<шDP "PV :9>PyfQ(%1򖃒0Od_䈗$ l5$dah!-"zQ(AYIYG,7.';( OȠ]BO wo-"Q(%,B1KAPw[{P)툚`f@I8B2>\ƳRʕq+bsf/ƈDgP>ư, J,g#J% AexJ (J.GgCF!A9A[۲8a(%!\bW].%ΏP9,G`J(%J (XraPFƥnznok,t,`v 6M| v_צCzzZFiΖBP"( (QPRV%hbʊ3bwiE);7͈DzËG/goSz &(/ැGsɭMۣR?`T/4Yw^JeLM3&`%K1( % %Y[]^Phvaު(dI߮RF!j(4#7"נEjp JWeʅ&P\l%eUGU]edGggwwdhutj=P ^[Y]:EWnA}^Je4%J (DEf>Ȁ26) ڵM-m~HMpV )h(Zk)Du R幹:Je!&"Pv|&2(MGwt^T1G[(h"Fy-2:qG"UuժlDi8DP"(G#(((yV RP24ʴ̜"0ڵk𷥵U.%p YP5K} NgL>B;8A9:@Y³RJ#2k[GV6}G!H4Fvvc9 1HeP J] "g ψrJ|D]P65(RJ.AB!(QcMsyVJAQrnx:DgPJ& &AađJ5A9+0XReQW% APq pd0J1(JI lAPq ʙL\)egߜtPpZ5bDaڻUM39V& (Cg͢FPF11ʰI3).)93ABƩP>ıR Jp% ϠOY)%HBgP> A 6W#(Q(8ehUO'2So~;P'>ϲRSJ85@BAJ ((dPjD( 5 @YcŽ'SJ>1DaD5@R'("0JƣB"P> d,({J?F?is\r"h] uP&^ca<]I'Ƀl(rMS;a܈i~ `rP% Led\koPaM퐎Q/tI (%Kkex&˺uc'vT0ep]Ek[kG/d07~TdSO=|(mepe <+%|,h`4à,;[K+.~-/|Y AjP7\DLCM Rby=NmݣأbhtQF(yVJALF(K*[;s^]]ʢp;UzbnYu{d$hbk& GB:yUj u* 0DVPNdX)(WY]iu:un8de!%YZ'r?!V=}*0J1k!{?qe Pu(QAyV ,FA9:%(-%{_yl~9NgfDI@"P%kQt3AsejjR2''Z5(%KhR5@)> '+*Qc<+堜Ld-m (hgA O$e:vQ+6S^HnwV𤾲~jt쨠AA/,ՎeD)[6(Ňrx #JԨeäq<+%$O4/)(Ke-=s_>6oq+MڪWGyI!GZ(5"H$R0Esyl/$D/E hڶPΆGAPz/4͉N)c:QvvvtQTiP1c Ҳ{xwɠ^o* ,YJǛE@in94zH! >1D:P򬔀AP[kkZ{z7}}==EU\23 JJ=%yLkzp!>3-Hh^9RQsqĔP2DTd[$)#J'{ƒA NJ4ݻBkPG kȏFE^{0.(Q {c| I]FPc<+%d ~ PPQ6(:KYIp)%KɇGxPgij<+PL<;و% )Q gbx>P}BFY1 DP(% B!(( ADP(% B!(Q( ABPJ à` ]"cF!(ʫ4kTRCXzޟp5x.WX?WjPPDQZg1eOxPBZSSMnR;v~?Z4G' pR]&T~9 '3m'^n('cv' J3L\3Ǝ5/D,;yVTCﺆ|wA~wOվT4]^FGG%wߐ2ńpjF6uՔjAzc TJ룷w_a(=(\aeIYeЬJEA`N-H\KtJPBq}PjNF_fx| J[GcP-0YC.KeBeCad(OA;,)*u8(#;:;%%#Jw_3֋[<;% i d14JIՂRGU54\?45n(>V>2ٛ$RRw~(DJ|(cҠ][|$Dg7RvEeC ]Jٺl\u,d:c4Thp}D0yvzX$ 綕hy~ q`HwAL<*·#Ҫ6U֑"+(MGwt^ThR-g3:RY{`m`_/ϻE!5+[V9 JYDluvϮVGF\0iv/z%b,(5 ?zf'OGPմ̜"LZjؗN2'$́9uvv|#ZK/޸$HEX=$qen/ݖ݈҃ku̷F"v vYh~k!\۩A)eQp7tvuÿ^4V2wY38R'_g݃h%U[[tQN"$ Ěm1W?J#cSV~/R&~?x'(=y2`% c/+zZ˽*E,彫Ka67^Ca\E0,z{i~Ow 7 BPA( ADP(% B!(Q( ABPJ BPP(B( DPP(B( DPQ!;\GG(=Ew#E@#^L'l洶,ԐT8w Q_L(%9*>5>%ݔJ:7X,e눓M3b.n&'ia99JN}XoZvU)P۝K+!{-$M&(Փ98bv `<:@>Ð3Q9@ʒrgmu]#dmmk/(4kR7k6%NqO"E%v[ VՈR+z1_z̓j,앀BP(MGwt^T8dPjdׄR7FXi<rM&!I(1ːNZ"B- œ'ǔ*isbU% A9,Lik(s][Z[]uQԕN~&En%a1Ps(Vc)x$9^v!<%75ωU>/:%B!( 9y %aΩS74]ͶJJZy 4Gt~2 E#^sj WiH Q(EVYWWzzzu@ބܽߓfTn[Gq~DKrۻGnu*"=7| fK^tRҝBPށ'sRLHqizEtᶖeӷH]0}Ffy(e]{8RNWMI!$ Ay7(Ic ]l*) ~_~Yج$TL9&Z Qc@p2DmUL\2V*4 :3~A!( J%y>ܬ$owARFѧ(F˷k\Q^'E֛''b! ȴA'm5nJX"[m =z,[v3fNMzQ!"ТPJ)(e" J,zK\*t J::Y%vMLM $/)n٘CÆoqIn'g KtgkN%=+Hћ2HM?攟vI^eʄXUBPJJ(PR'^\G6]JJ8 Ŷr5u]cr´j=Bsq8VY"m:Eo)O#zAHEXeP(%v@K%B h.kU%<|QZٱ b'5m;.2esvSNZ*JEA5iIڂHoWmjG>%A1){j3Kv+4 `)jX{܃߶)jӏkwsfiOLH AUJ ovhT#(Q(Rʮ I#AePJB!(e,AT7#(Q(RyT΢P% BP*A "snxƜ4h nC8 Sv/̜tx:2(]J>Kwxy0ͽFPw9(Ef0ȸSSMٺTV7J-yB!M_́ F JB\Ld&gDֶeɻY]_Д?4Pj eD"J=(5x S]7LgB(qr%eƆֶB]J? }LvZ򇣾Q(%a%-GeIYUQUWGm-)K#JCQPlSY1#AeP&AY ?@pV rzEf9g;d4-MT6L\6EOɈB*P21dS&đ974 Jq(](#JJX20VW U6Ֆ(ԨbcLik(s][Z[Иf[ :L" 5@[9y %aΩ=Pj}dQ@⬰K,*:κ斖ή޾~klM&4= uҩ4ŽD(d2z#dfܑQJ|B!(p  DPP(B( DP(% B!(Q( ABPJ BPeXDF(BP1%(jCP.BPP(KP.BPP(%B( 5 \DPJ\DPJ% BP7AB.@鋠DPJ% B 7(#( A)DfDPP(%B!(( 5YDPJMPR#(Q((3( A1uJ ABJ *(Ff2FPP(PABPc<]o@Fcƺd>(Q(jl~i P.YDPJuPDPP(%B2ABPd JJ %AB.@DPJ%(Gd (Q(R PDPP(&()+3V^~:\ xņ!(Q^>{9r .\,xņ!(Q^|Ioo͛7/R˂Wl P YDݝx. ^bAɳAkA?~ .>(u@Yāa%DP"(@ FPfPu(*b.@9A%FvO2JWan(9a~f*(yVF!(Qw+(r`kM[>[-+f5iGha9{CR``|N;'A77<]e-5@In:M Ѹ4pM$yP',wO(kS6($˭$VP>DPWvfhJE;'yyR`$bO[ekkɮk K>jɢn\1CDY:X6vR,ۢP7bFIwY"'E}kk!?LG@ɀe%uׂ C*/3mⰟ+Կ*Zq(qJUHJ/hEʢ75UTe8wNIEYJh{\xf<3/1&9?}l]Ό܁@LS2/׵eL՛Sn` hD]Z*+Q. +.PZQrVrL:R&֤^1DQbv(>aQ9Lh2Cd.BBhԤE6!["JHϲ'J EeQlK:]]>!P@RC-$4),0qO\gb[ţCaeEy3Dkt=.~MB)V2q/*ֶD Oj|чiCbocOWL((JLիWM1n+L넹}o.f4PuQjLOuUp</P} (= Ṥ{~Xؒ4W,((YW(1;_OX(T=Q(Hz\iI,Pl5J?IW+Q\F-AεGJh+hJScNU(JLn˗sA iU@b(WEiDY(g0h%VI{Ũ(>EAQ(b2(1@AEKbDWZPN  b@) \ +TĢ쓊DɹE444ܺuksss JiPXd+ƋDQb޼ܼya@) X VL"J}(+(J kM~%AQ2(E P E`0dEiO9QQ E/ J%բ҇`0(JQ ߸:fW ހ Bz{[/m(yW~ :BBblHYc@p~`Lwoqlݳ^xXNy`E[uB3d!,%t,% 5]vϮV=5s߳u?X|^UQ {~J[qͮğkg6HJK^ODio>fV*O($w$ǩީ(gD9sVO-sGK#E=SW2t!&1tG`!S'08Ǝc?]mJB@0mZi P~EZ57K6>C0YPa{#\5T9>9s;)r8s3ZRk9R3\),t :[h ug_G` U,'¿(-ܹsU7~GǼc>Y1`ԕ1Yz '1c N8SgHq(aPLhk9\!2v1)(C&S 2С#l ԷŰK_mX)jM9`O9)][XWZueGqgkg\Y8=td)p(RpIO{k3\014X(X"E%{ZS#(:8y`w7VVV._Xt1r Ε\)#J(SALV ig,f7˕T\(J-FcRIZE˜%&֕-^=d&{1P.WFxWfS)|]9BPЕ ~ޕdGɞql @KA=髫up^͗?M4{9Д2n +M6BGt_Y=5f(RжQe'BEIwQi?`TS ƿs&?O8ͤm'Mm[xÛ;Ni;2uf׷fޞ۳(Or> O_A;ݧϦxm]ߚeS4=|o CLOx`-9  SD;ck`7^_䍧__h^cEx/׿B+ן{cz3ĩh7mwys!ʟߞWⷧ_D|/}_&/ۿ嗿_~~{|OPO!~|:#Z_~?v齹=ůvt-ã[chĶc_oPjƛ'.\ͮe;bE+6A\=Y{'fH9s(9Hrєc)ySO-8(N HCPx*& 8F(Hg9\eH/:r8PTbُه(@ &{sw'|ϲ3>gG\6϶,X  !:c}dk"VG OY,4y"i"񽐄 eq3bgƾ;-0-TiHM7|#^GO 6;lwxq^^y*xQ!#n݂ʇʇHA:p 1_>ހ⊴~Wb z;vvqv}E spo+4Y}\}#*))0[`w%*y 0̃b#<j x3Z ,c4.hDhў~mCK_ ʻ+WWKD“~BG{GSvC.v4qx.vt2qcKˮ]M\a^Lݺh)%3f===zYxXzk{ ;W8u 8R4E>=xbrW$7|1E9E3N` =ijqoEIj >u>D!+Q+ejTiPo6ny#4Ap]PUT#+2E`qH)n~Tr5FGqY}k;z|۱ /,#:ƫ7>k_BD$UQNH0BSŧ1gL!qG EǙ2s#f 8D QGҋ؊NAL)L?GOHBٛ/{0!'#>؎d+ksLFp(p5 Xa`WKI CZ͑ 1oDM yc#^!UyTTrWJU.٫2r ګzQ]o[?>i珰E_e8^r#O"M>VNWJBA`iQ+@] Q+:Z Q+͌d*j7@XrWcWb pUUJZ+{=V`1jE%X|ˇcWZQ%VȮڛj P+c5jήDJ'2@vs[c <.=Zz#JZZQvŨ+VvՉ Vbʵ=PZGRjE vՉcW/PvE mWn`WMYRȮZ{pw߫RaNÝFJd\)臭 O# g~ȮbP+Mv5O̮Q튨 ]!,-vE+,Z 3KP+_,P+JKdP&Vj_ܧVS!77d2k2ZUW̫RS.) - -TggjgD`WZ'.Qmܸ2yjWO>s( *UHNb:Q,$|VɅҋ٥r.q+b @.rDM.y9'eP%d84Yee"(FE ]x+< '#%L?ʵ+պfm\6W`W)`W ȮgP t(Lʏ*b*UUBWIdīRʿ7ǫd :~Wj 8V@** D䯠*AF*VHTZtP~8+JvJM*U"vEPvŪPu+FFݵ+o͂bjZ+v5Tp5Xm*U˱+UOASb,WbԊ+V1BZa +#MvEI-\A Cp]YkS+q#v]\X,UʓV] U{ZA) 쪃 Q+lZ]uB'ⲋ^0uUw3mveo3@dW.nCy*C ԊԮ]Eq =/Xv5cW jW|ZvvdP̮EەJ*BŮ")"jUQ+]#XVMŮ5M%RXQ"u/( p~[#7 ݯWURr[ԭϭϭ-ϭ:3uZU'3opV;UJVB*sBցI9GsO:U :.t94,<¢Qţn ʼP@5ڬP'L P\.L"aL(4ʯB :$' D.ҸLvRҳ4g0J(2 P@ `]`ZP !ZP.2jy 8/ bœ*_(VWOm^j[x+UNAbH^<"^"`チ'qt$v jCxitrB˙U(bW^E>Q+ ujũ] H@7 wƮBko v5]]ЮV#X ka*⯷`V#j5BWr%#XԴZP]ڂXծY4bQ+vVmA^g |<3W'+pŴ aiR+M+_՞ ڕ'Oh"jՁ0vT(fQt2`ꌊX<6+`xej0 tv 縉@)\EmRR+m+dW j)FԮ ]ToWXRǨ]1jUqBC-K$ Q0M\2Q.k߫s6.nJ=۶ ?9ùñӡӡӡӱSttlthikM+ @CC}9þþ>puw,OM\=sWNd~~ކY<KVU{3qdj>4f]*\S RօUEv5%5%WJ*8WKҫZWJjƦuquU+seUDPm!P*Li>„ cBP-7-D)ZOOh_f@ѫpJtY]- M^ WeW 5gVҨ7^0v*JC uE^%,Vr RUWL I y9F"~6TP!!%]pt]t#ry}U+2ŝ]1n Vxj%+h+ m*CWՈZEHJ[j+ V!mA8RmANO+Չ+jƮ3qՙ;qeWb+5jř+ W]@[ %}-ɷ;׮lxjvE -ȝ2ML_Q+Ts֮T v)_#cW"+KƮZ sW~C9+-2:^3-]1zvEFǮ+6 7Y¨4#("jJ$yԒ`>!i}Ru@k4O Uu\ ޷`Xdd,;Y8Y;YU8YUIj$V:UΟ[PpnS/&*vp,w(u(v(twsd9Z%NU+``\j=r`.j( | b yXE *XܫW! z+R\NUS-zp,\'7{s:zCc1/]9z:тժ' ]a g+W_ ]R+꺺R+U(w 4tҡUz20q5Ev%VtR+wQ+nOVv%g׬V4ޜ. [ORЧB.j[X%FʅS/[ ,.f[\ȵoqB2 V竬Wc,/MpjuB,|ysg4I1PlDZMʮ34jʯH>SZ7sd$`b6C~*^A7|ֵYv< EJ "мB+Xh\\ʯIjV|dښЈ-~"T<(*"m2yAH"tqC0f4ɓ*oPƫFz[%U\D:qJ*VPzU7o$]41`u.ִ]«]v/!R+yث9eWԪFX\UJɳ+ZXbԊv5jHpFڵ V8޺ĕjEەyvrURjFڹ+ Q+x[^M튬"bW"+<߮<CW*j%.d&vvI7ԝ+m5ʇ[0o ՂݝU+eTd]7t0fە+9B]ab]QsWN$`Wx:x,|5v`Ž`ka]! UGϮ"p[0A*9"EEbIu77~x>ƁQ+V s=ȥHi|^yJR3@T3d^> ^>orTɩRS&*1&, jfJM>.4y?1:a|*TIF.. YXVZMȭ74!V1"j㛷7ܨ2 NXuxd*zeA]qK*ȥvu^p:fQ wwo g=kw"1|tBč`Ii%̻ wa|zCI4*zL]6+c_3}4HV8Jt| [eP,6ɯ8]XS 3" a2 ZHpZ`TiIV><&^AW:#Uȫ\W]^^-Vz *VN>Vo -Z%r ﮦ^_-]bqj`4dxݦ>gxf9&b֘YcbgI=&i֘9/\I32kL1#g 5F1clk33k8i\s6.8js`R7 tUZUVU3mj4rK)h]XTZQqͯJYw+de;mwyVCqGMs=I1ڨ9m POͺ(ޣUϓr| sd(CKmfKeˇf6!¥9mEÌ&J:kҢAZc6+|/P]Dx?v"A!K//x0kqàI&+61v[:w%@4>?$ԊT@qUc^ C^=Rh*lD9S*^^U;U)*+zQ% ",ڮL+/hkWXZaz J.X'(,_U?jEZ Pvi xj!s%1ad cTjWeW WECDgJܮ\Ēԫ-.\ b8=A]N\\Y0͸r׽v%P+8u=A;خ.dd1@[F•8+u 9!5Ƙ+bT=udWĮ:;)_tL" |iIʫw_`@Ȯ+H4wخ"4ەFR+$X4]6 ueY9HUz*oeo7ɗ`1ij*=hX -SD}Dϙ}gNΜ0k|8圱sF7wlܱIsǦ`.X|Y ՊsǦ$?wlܱsdž5V6c nL1 .'Ě\bGZk4?Dkh6ܬoFllVl9[~ٸTۢ*ҫޕu5 7!fSc][o~o|PJ0jU_H˹y挣˃C- l~ 7[+ bve˾͏rAlg4x"2= .{n,ΛN~q'eлT-n3Ͽ*n9vFiiwYF驍 ['Oj)w@./x(~rvk-JP-!v݆0r*iwh 2Ivdٸj0h5'Uab^P'UWaUC@/H{0{I^E ^g^xUpœ8V'nڷ_WiW+DA$X3(ӠVtPjEh/bWZ "AV+V#Cpj•*9#uGJt}8vի*켈v~OS!X8IWL("o芯Vb"1Wbj\-]5JS'S+3ȮDmA.jAڂOVZ W`W<2U]-HU[J$p|W[]'|%+F]Q%fW+>`W>8ANCIJ>-ەU ɂh#X`fW H r Ǯ@-X꒞o ')`"4:g՘5Ĭ76 /bF5a}]Ouo{SߛୀSd LQ.hr1'',~3iɛ)K޸j%{ )fL_<%vES"/%or{S⬌EV#)Vbj5&MЮڭZlJU5&>(@[*jyRG͏?[y VZ%"خxPV9G _M.bz{`N@u6QXTEJ U|hHjʲa:JߥȨ"iZyR$ԓV;\lZ%x46˽w2NǽKhPޱ,bVhVB.RAZD n`׫(sX4b55DW9 M@W/NURU¯@Wu:Xxv0<:Z.UdҧoglW]]@wؕZ+jϵBj՗oWvOV8j%fWa4RoWajW]t O\kU+հ+QRC)Y }+]9"{kbDkV+ʮ:W:- jud Wj'bP bP3qMKD'">-H)2P sG` xcXvEjµ+bWvPj$pKas :lgx/] v]1W r,ma5\VYk\WqA)e(}rDnp!(6tj=1M1%2=W|V]1'`%BrrճVϊY;+~ݬu3HY7KVp%eu3cΎY=;rճ Ζ.|g[ݳZ5Vc_]!Uj;V_~9AWǎǃ싫Q7P^*LENvYlURX>ҤVﵹDUE|.VJ@rK OZU[-3jL2s39jMF/g Z|R`J-)q:x6ZBjE՝{.gLn'`JCUD AّZCC6y/j*PxcʝUʉxOW$fƂWA+tQ]ʳܳ z ;YveWUbڂ=8vՓ3NJWuʕL\iW+bWܕ;Vիb֮jgPTcWa5mQĕFR3tkD{ \D WbV+Y/ MWCW~QJ=t)]# Ղ+#шvڕhO9H;i vdW p֘+]Y FsDWǴБ+gƮ:4q]hµ+ ^ `؏5ʮ`]]+ngPtjmX\7hwFOBIcͳV>4Z0m뾘m>o >;}€]a;}щ$Y@M-,o]mr۲m#v,ٱ 2W+6G]'ȫ]Ԯڒ#dEԊە׮` gW& zx#+AHph r BATBWە ϶RcWvPP+kW`{4aVYV~Q.i~i4  GY% WC\ˋ"n 9EypK-DwtK-7ؔ~rS&f.9urs&nI<%薘#["m =Eq`sͲ'-1XV# SQєWSښ^zWfRP+*Zb?գuVB,Lh n(;kEUȴ@rZYUQdr9BI9 Ts,=LE(h'hNjT GG)?>vPFsv ۟v@ƅY\_[ d*2.H? "1gG}?hSi>nvv׬,hG8GAZM_Xf $Čƭ>Tj>cսd, P%dT A)[B"E-{@^!Q+·+fs/Vĺ1^G+m9jxUUlӳVFʀ]M(SjEEEJ 6W | ZNaQn9x8%W|t𔅊$ }'0n XEJ*A.ī䚼]Jϫl䋆бZҋtښc<ژS98*_!jg+XX:EM[\S+щ>.sVd/^0HUh?VV]j-8XЕU+a#YsԊؕ'BZѮujOj՟.g v?^[PƂv/6]0tEU{^D{[N1W W-Fd6iiDh(ÏV+v]EJ{DAVĮL˹W,]uEU;V`jWVx xCW bWHgP7o%vcsP]Ũ`UJX,bW8v+bWՙKV;uNSWQsS[@ Q\j)9WQ\RRRKtXBnkadjRP+ƮF|I_cbm4;b3vq-YA^M1~ѲI *m9 w.Y66gܹuA6-dLLrlvp x| Q=Lk"A]K u)'g r!m͂c%,[QDV'oQB`gF^Z%f 3)0y ,"U!n W pCERzV0)EIU1WKQ?o1q,]H;DB.\@rDeL(v,Wݰ#UjE 1j%"mA&Ak[ʯ]1q g\ BD Wa| mAj WXŸNJMD`H m WrM;7ڂ|cPgXP|JASͮLJ0q:t%6qqJ &]8te+?+V++Fۂʅ"ՖgW<v!;4Wve vڳ-ؕO?(\vX089hD:n!v%pJ`0ŷ+UЮ4]}]{cM;ape #TIXxc*ySb#1pAG Z35 Yڰuc7|Ə0a$f 6p1&\;~q#Va+_f8zȊQ|u鈁GoX_{(xcW#J>˟~zUthV@v3G0k&mUP\ZVURCj`f(7F]sn썻q7&|E4qHy7 фSY|,4 !qw aL\;zg^IJTcٯA(-n ;٢A|85!\(2B{ݔJ_ j0{ݩ=p*]^[\8W`1jՏ/X] k zhDNJ;\v=*b4 VcDj jW p!vQhWsyv t]=Ůt+*]BQJv%U KM'(sŝsE QK1jwoWFĮ$΃]6_`>`WIg0p$hlk0j ] ە Ǯ2hW2K`3B4# Dx Z5 \-Gwo~l]*/)ǟT*MV;b@2 柹ѢsK>1^vPhM)uc[X%)vتŧ4˿F$H6Q%* '`(DZ*!k +ц  >,h@OBUo]Y=\`HƹP @`!P)P3zә%PP~$Ud:JVh7T$^z*cTa -zʯ3U־}ԄDm-g}()hr.IJJ/Ur)8l6+7/ȯ,*aK9pBab x1)T.TU,Pʯ4\*rys/VYInŹr3@p:tV) ҏ2dH3Dg:Vt,p4F&Hߗ:3>{{l TA 2BatxX*d^5{ )@jbvQUWWC,#Uث|;VO{+oQxU[UU\B ` Z?hU'bW֔]VA/;`bQ+Zqv@wVj5]Zi,ј+]ЩvdA O^jZ 'j b$ϮT DۂڕE"M\g]0te11UBQF׵-(.sQJ`W1W¶XD;׮ϝ]h rf쪓Nv {zsWBJ> G j U]Ekk,J.]=qsP4]XfWLJDb2-(_e~] K]aK]'XjUVA̫xvEjJ/ Ĝ#IǒO|VqZ3Eg3>Bu!B6P!9|"ƹRY!e i̩S|8e̒F(F09(>Fs4S|$p8PZѡT)w27)ob\DB 9pgB68 hA:Vm΄ݗEC(($,Q^ICPpZ`4ɁWMڌAht^h*D_gWUȫ\vA@NʗUU,Yx 3@+S7Nj vD+Į ?<]vK-Ȅ*vjWvŌ+Hەؙ31oEv !w[B-qXLLIRG-k@\Y2<KĬ/QN%.P$B((U!> 3zw:yU|BRxU*VRXeM U>Um)bUfbvEڂ8]t-H WbmAAg"(\q++$Xʾ<RS+pEU(p֮`&4]il j]=Q+;71W;73A "E5yjŋbԊji ʄVƺ_n rނf<;mAUkWlʛ,U⍴':J%抵+#Ʈs'RBK;+,XTpThWP+Tmpxo W0>sJԮ{G]9Um./o#Oн9R|$vYFk:U&Wq%H$#sIGWDLRD* %~cf'f!+Q.(&{K|VF[b5Jc7Pdޏ^.:smt( c W'EH3^8xR Rd<-!(IԢ`pjAH{@0(RU]^XocuXeN,;,@r-eB^X ìnFwaMK~*taSe_"=OJOVr=-D~I?e 5_I'7+V۱ZZU?VP?ѣG=zv+h  _PVIXѣG=zMBju-1/X-&V0N?G=zѣGhQ=x~#Vd1 Q~OG=zѣGh]Ke1ԊJX/ݏѣG=zĨ]UZ_=zѣGI|ʆ+-jϿ/zѣG=z&L(ؕZmJZ}o L77FlBZaa[sss[A0;^+,?Vzhz܅-Zp,6{޲k]=CN5^4:t]ZEϾ}7{ٱGL"Y~r{BYQGH~SgEQGjopJ_|DU;lo4VخԪlwyov'WԨ~W"D`W/8;q|dt]JOOU}}]ۭ۷ZZ%eyp~+QNU>jU\ssƙGLV/־_UerB4|Zțޱ6wuxx88M;w &mdBtsŻs~KatF5 O8go<N\V Hz4v2N/q߯VثZv js?V?mW0vlMC'㿡j[c^^ީjkk̒tWgjӇWݿKZ/o'zO Hߞ?=:5쪵ܑ ^63R(1I yPL( rt1#1EZ(I CFd+ÓW.~cdi()1"768Du)9Qr[VZUV UF~']}?nݫVvѣ;g555)DGG!+JVD]UZ֫VaщPP%??\~׿^[w[*y;TiXL?7G|sϯvs8孏N}␘_WSSUWwj5+m?>٤o/е5W6X,͏}V^g9u>Jx%ҫ?VZ1^//`W?"7خĝ>7{*<"[z3a*Rd߽orr]W _ȕ&VpE{{uwnVqw@ҿp(6仠RLyUR/W}ո!/hVqv9q8߼yߑZݩ((=$0.:U}90eQ|8 iXVHgpITV=끱Փ;Z+kܓn$$ 7`]VZ&VZ=/oʵ+h–vkWثL^oӫճ7kU}YpX,/>mjn-p[Zu.VZZ)rmX׸Kzgw@{{>3m2_fbYժ?ǧ (K/2Uܩ;O}{ނE\( LHJHNI Wƙsg7nmgk^ܗWtSBDeE3~'pkp{>[նc؎_g?}VU`WD YzЫN/o {o AR jWny -W_{V47zop?c AƥZiCУ޻cM?V%K 6,4=^!y12&"rrva(wCG~IÕ׾f\<׊fS2K%R`HEL|dJz'iP3|A9>KzX0Q@76:A7P%{WZ4Uv;Ϭ Cb^4^"/^ճBZ w񌍱2Zgpᘻ)}Yw Yҿ0WjHWS^_ՊMgdFFG\tw=vx%&I|}J99J=, \LìzDaCR^WYOW wZOզȔěw"obvտjElxȵ 5JB_zVgF-< Zv83Nswssm^hgnnNEqJYviE١`NnVi)suо_Ƣ5U_y /n(^PͲ6I<{j]d+@‚cLe%\Ha,Hd A !m^@ZEՊ?v&I P?{x("T;+}꙯ZQbdhV (v',d׬m {v+MTݦ0SEJ̑.=ZQVʰP+;+VO`N+[VVҪ<}ڃu4{po=]k1ʨT$ߵbPKl~0ZR]aw.8yǻ^xvsZg>g}v󖭍c VUw|k˛m~Ï6hIӏ+kx`=}Xƞ h4p~VsVf$Pgęg۵o}<#4nfߕVٳhz /U,$vݷoYS_#$ϣޫgO3OYbyz7{?%;e w7ۧUx-&:b[wܹ; 60fʚxO&T% w+tQ`TzHVm kڼm/IAadخ뷾IbW$.%wޚk@j"җ߫br@[Wۗwm'Z,:8 IGã;&}9ᢼw;_GE ܨXX70{* iU|D/B kkc~ʤ,7 hE-VVeV亵gNz4A ம8{R7L"36ڻ)pg'ƍno˶ճ6vJS|X>c/*eBW&meF=&3D ~uDtnS`;g n惮f G UvO VuX{8 eo3(Rn[a40:q~JEesFECy9ZNݰM߾&,E>ȵs0z}ȥa)Z-Uu^䜃!=2 Fr;c(RCt3y(TԊ<7hFV1= 4sUfPE Z9R;^,|) onqVF P30l'J aqhxz{#$d|?葡)Ze 6p&PV_;wQVB#Djjih״ vyWևs>bI(?GI=kWu72% en VQ+.Rb4hјJ|tPn*BX FwъlgpuOA㠺WGf6SyF+vwOd5(,ΒtXh۩R3G+'*,S"vLEN~t]vaU9=Zɥu8TdA{+LӜ=ogװ7iM>d7B\Tk{73ߙT+K b'.RrpYʣG ZqcCp"D+#-PbZQQqy5\UlQ+Z+XW| hiw!NhFJ AC6n}B-6gr ð9@,:Xb$c1Gi^xEEouI&C"xG8,~b7]qÝli{7y}-oh)0!(Zhc vVpnM{QDE&˼tAP?rҏQh9yAVI#nU ÞVNFsԊ!}nIoOVIĘt.6ZA+Nh1ZQzMC 㽁#_;8V%-輞,xPH1V:o%&mKIfŇs+N"aV""OJD6tn`[/*` (Z"IL7*G~HS ޞ䂺P#V 0*‹,ƎhvQ+>Fd_A.Zr1DŅ܊=jVLj?(V[&\JhD;;wy-+ܦ>_8s2%+ъS֗Yt Bqde'T\7cN9WV:ޜK}C9';d4쫷'3OOt~&EsKy_Tvы*mS_oTaY l53@^,M\l_s*͓=-݉Fxm}eH>uTvjf~_Ea c|ߚp ӪSZ mQy2[Vl;M+O[r_s:\qp[x}~ /T+tN:FLrݝI ZU>@mc%ZvbSH~R\:{ン-/Cbs?l~. g'G pHx#Sz"ыj CQ6IտCheF*l:3tȉ 0 `j%PV߬ɱ {BG.`0 F0շһEEFl7]p `0,`ZU,K[]]UNt܅=0 `LV'z)T}+VU[۾O`0 F0ɊZvz7GSMWUE+:{(Z `0  V@GUؖcZ~W `0X&>m Z>Kn;]E¥`0 vG]hz77ۓV?NV`0 c8{SD `%^yBte `0LhZm}j OkUwl!XX:tUr`Z@TĒ<A!**-mHjGwhuҥbEdce*T Qմsa0 jW*k'QV՗=Ǫ]=mN ~ z'mZbO~TUXU :AID:ׯZ=wv]ĞVޮ`@퓦<{ʕh$@+ N4-[YrZ&$BJLĈVlzɔg:E}"+QyVA@+Z՜<; Z ]{ӎ5DU}S.?vE"BQٟ;T$lDRFxʡt:*jv,4ʤn!@+\̙3H{ꙝ ԞUЅg4=gdb zh|phӿqsӟ?IN Ao>NIН/37=$<&٧}7fvyxS=_ِɛzX4mm/[ N#}A`j!@Dr?:{,'|+ZzncZ=س{,VmGk;yip_|}NN%Z r`R6QlquSrW_hPVt8CS3Ϫ="3(\n!5$!tSU}#d0TYJN)41uK_5߲͡M_wQ(W=O?ٳ=Um]=2:.>_4Ŧ+b Z^A՞ڦc+6;74eGe?ZE2N32 0I a쟄C_bVnqu^+>5ƍ}h+E 1D+F C޳3X' ɡFBZC Q?! EpvM4if>CQ K$D^˦=ձ6{ѦzɕשQڻ l e*C)Zy{OzMʦ|~Hk Y gʬ,P;fVI]/yݒ`nN`ibV>4 ̢_Ӭ+#K8)a4"{5y_7)y: ٨dq&V 1jOh-\6̇r魭Vԋ]oZSgPOO90V_zeF]tbO._F};y:( V<٭}=#B{z٤.o|莗~I3wJ+ǧ%>K :s #bg;ȡ֗[ ]bъ|;=#@WI6XdceVb]<`C=+.7"zS܏w 7鍂`~3:AangQ('be46H^EG&XaT q4A33mY{pV-V'_U:ӵSbw:zZ8=XV.6KٶE_}'zbIj dceV2fъے <{Z5 ]J핺V.\Jc6bMzhu.gi?'cIj dceV@eV֭[k…_O_݁SgԷ6EN hZA}"\{[ϝ>}<ׯռ6|0\t+STYE+`NNr#G;77666ԓw 655 Ѫ-9K3@+l, ޡ]3dR0Ȓese85uH*l=q ZZ|dk>Z^jk-`Vl! ,n] s@/b对 ͠v?1V^+AFb7zJ!hqƂVg^=x؊+Z:8ZֹZG; h% DsUΠeu?Քu2q2+iSecOHb&[.ZT jPH}W s5θjeKU,Z]Z[窶Εm+[;9@/=8]0`ņV"c^nG)ݳտk96dxCF4 F?y1 d?.lwn7ykk88sV aYeZ~lkFޫ{co8u b 8)dA㳛*CY:0?uք"h4  ;碈ejOAZyV ah9nglhuNjouh?|e͡;VZk3v|vE??vuǹ}׀V#C#@ ^Nk0eӤ'\(XcLW@2zJd;'F"QBBo4α8cA+Lkڏ[kVW>βk?zZ=3[/?YHhEqǭ>R1W;*Vs*jjȲYBYV&L gQZru;fى"jʞS{ힲ;O~앟4Z 1K#,Z Sx^pH 1z!->lp'ZJE*Ͽ ۊNDZc'}:sV߬;wi+Jyy`t័{'?3Ҟ\6/Qv(jG@M _'YZDE83ZA Zu-OnEk'z֭Vmp^矜WnWjOV/L秅kܯ,9Υ@8R|%NpR"G(a6'!' ZA 2m=[IDVg^N]<~쇰{/Ӂ__`vmU%  ZEU˻m@kkR;VA@Ht)ςheYe`0AJVzOˣվA} h *(Z=FuG׮VzhA@+ UZd;MV ZiZ]va zN]ZAEee)Pf!h|թ+ gb6ZVg_{5ľ[YC^#1Vi$D_]=3e2d dZ~myL^W$hAcT 1Ia7ΠŋV9O~ APkw,y/yΥoҷ|"o}٦//xWu h̢Uoxo+pN)X1fܠNdĈ$ A(@U-_^hUC+ҍ+V4cd3S4'(SҏZ:?3AEV6ztŢ?\lX V2jqUY[Fq2/E}u~gV6ܶh,<U%+ȷj=?+EzPzꥴxv \B?wKWk8eٚߜ VQhߚ-C+ Vzhs*V,*o> AJVK&hV.W2 Vhtyݣ+=u 0!A@+ UZ7W^C+ U AJ~6XZQyaBVA@+MF*V~u2@+ZA4Wg٫)]qhq VA@+}G~~yV ZEbVt:+BCbcVt~iE| -Zc~*ӑGqtL+US8-ThMq^ (LuqJ~ '3tB2tKl0hu?))y4Zi*iƎ@+Z7!(:3XECN V|4CQ+eID~@ThFYBTGdoh%K?raB;T+(W*#˗-{նmV5Ze[!9ZQuad2Ŵaz,}f" >DRtיy)Z1!ZIҗޟv䟻u&RsVK;(&!Z_!˥& AfgOGe#PP?*A61!rk#\yb}3!}=<eI_|_!yA8}ϓĽEK\,O%Q˭`o]+-*?8o4jU0NAŤ'hA@"R=<VMF- hA4* A%Z A8FgyTfVAh VA2zMV hAVy A hAP|hnIo%g{)N]V$arӢSSLNye~(PzQN%٦dz[vE8S@+@$ۅ!I$&;#*e@;Gwͤ_Ic䧼#1W(f%Fr]: ovI7BI^ _R6"ZI+ο?G ճs9{o >NB7Y:2 y)Ͳڊ|Ju:'o2M%J4d ̥թuu/3}QZ _qI30j%_A١U(X Z5L쿈"n$iO+or̊.$u 9[RT~#|@O!ZW= '/)$?ԿuqJ~&ׯ <~V j% O $#Z V|4sQ+eJI&MG?Q̜e Sd';E_Ԓ3A+w&d%M*~sV? Zr=hBu&bThEi Tdv02Z ˿iϥÌR9 AYD})҉'7Z̯3QS'U#c7C/C3gp[B 9Z_ ˙\8 q0N5̈~@@8*U^Qg6~MO,E)jYF:#Wϴ" F>|n/$0 j"G"#_Nd vO3D7J1a>_9[UQ#ԗֺ~K+yuQgS*Q>7rV?cɛK_%tR.p;@%C & kr" %)?nf4?qw^E-Fw4J~E+C^*nL[}}$~.$ZIQo/lj9+?hqzv24tE5tMY *P^J31*KVY>ebiɎ?#A+Ayee0p(O'?\L9φh_Uԣ7rV[ZZ~s \ h\< Qyqtf;I,]#΁u&")m]^WsTݪ,gĤ_Z}f2BWt ZA~sT<tSK?3k \ojZA A4hUqS//"t AJVfCO( \J-ZA hZ}bz'g, A*sK]iA* A*Ci ?bZA hZ}?OW3kZA h Z0 \M/ U5Ϣ.i3yYlfς/uMO){Gz릩eVE5 h5%z}]Q49.f2)=oԋqڧՐW.Ѫ#ϻ2"t5hA;O[PzSJvoO/Nazig.pLoLhNpW\D r$p̿QR^QtorM\ǩdR!ٛG3/ FtgG,1/_U,x[}*A/.A71Zp Q֮ &h~d꼛  hE) Q[neNWFoQxu~Տ0yN(xW^iTC\f~!^z8Y}jFW;nkNv"̿J>Gh*ڃkˍۧ:j%A7q2j?CCSXtShA Iݓ]{2}$A`qc ⨕dOf4nh%oW'/hu瞛)s?<^ZAиB`gXH\U.6X e&LJ]_8,U*|FFFZIU+"t \ZAxZ4ŊF F8nL@t-D%A;oxbN<< (\QLP.SIъT7bKШ8o*)=Z*ڃo|OSRC}+pzhA*jLVv'˖~ۚY;~FQѣ&]2w WV.5f7YsS˖?s˄MQբn]Xmv^I;TJX|&ڿl= 7i>Mۧw #ڕQH(]M V|p AP*h̙]{hA< A*~ hA V9D+JW@+ZAѪQ hABnVV Zi[V @[ZZA h=Z5 /p A*s*khyƫlnZA h%Z}vƫ7̕@+ZAConZA h ZͫoK?;UV hA >=mGW@+ZA@OԢɢ+ VܺOSӖ~ed VA@lЪ/%tZhA@+ Uh5Sէ VA@/vWKV ZeV?";pE hA@+ Uvh/骜L  hAؔ6]Y+ VYG[1'phA@+ Uh5cSH hA@+ U6h|s?:eEWShZA heVZ}t|:-BV ZG-#tu5- Vsh hA@+ U$ZͶj+B_ZA h!Z3\ZA h ZK$h VA@+-.]IjNi Vh5ǣ+ V@+VA@+VAc(] hA hAZA ZA h5hA@+ Uh@+ZAAU&ϳ-VS hAZ hA hA)Zt Aʢ@+ZA2BZA h1Z hAŁV?LGWVɑ RZۡ?C hAcΤF&?OGm@mn!Nl}::2wɒԊsCG[Zڛ߳zZAиD+:l{\hFL֦%23agVO~ APLhEBVO o_SSsmU;O* bG%"w~ /q'~S!Z뽽/^gϞ9s;~h瑣io?^[[j*5Z}hA<Igh0ӇU?CZ")ںu+ V2gVC!%f3F\'?~ (:ys3"}) k]t hA@xwej=?+Ee9:}ADrFB'~ 1Z0kH!۞kOܠ+ZZA8FA~ ZA Z hAńVηj> VA@l#'F+VV ZŁV]?$0 j"G"#_Nd vO3D7J1a>_9[UQ#ԗֺ~K+yuQgS*Q>7G+$h$(-ףB(V>-! #-^'֗)~"-ʼE˱}~zYU9YHۉI;Zyt J?dAExj V Sƈ h AZ(Z A*{r hA@+ Uh5hA@+ Uh) hAZ>:E)@+ZArV@+Z'Z,\r_x?C:퐗\i,B\^4hG{b* hA@(C~\qy4'5Sh=}]MAy^>e̽bD+G@+hey:܂қR{{*|q K3w=sdzcʿ?Ew|˼$/T#dňʥ{ Ζo*?2?N}% <eyL%0O;Gh*ڃkˍۧ:j%A7q2j?C\hzhA@+^{tK`O$(,N98zlDgiy咿VV.# tL7ʏHU_޷AK4a'{*JR|G2@ )_|ތڃ ʠčV]禖ܪ hA a!JsqsWmVܺ`i *&Q0bC+u}{J~^s2kWC,]h%iWCS"B+ bi@|_p;7[xK: wH9IJxxBAP^i\~!Qn6dxf3"ӡQqވ?*U:S(+{2meU$4nhhWD+j@+Zy]j2YZ/[NQok_fﬗgwg8FE.wud)JR^YԴdEe~~O-[-6MGUκvay%Pٮb@+a)h6k#k'ߤ4m5ӏhWF#Z *9Kc T1U}Zm@+?hDpIV9B: ZeV] hA(] hA^,̦+ V֏O[ AZMZA HSVǴĉV/ h<VDImΥJR r?E7EyQzO'=Wъ4tA$mEDf$n)T2ЪE+VP%;זJ&2Euy5ڕEoDheyХ ׺t+Ĵ% VݘNoIwWf^k.$y\6块ihjQ !_gs:Xy?~a?-%%iXyKJVD iWontPmvsxs޴RW?cb^QYc_?+FF hA@HtpzXDz]%+);ze>qe[o(uF`l_9? +=nV ^ MuW啶vK&LFבi:B?+ӂEH\N6&2dw*+/J_?3j^C'^ZbMWFhAc!V5PT ţ 4w^v~6LeE+Ay@+vƊ`U>,2?{! {nOmZzQ a%+m*kn)hDh2ґY]|^uLhO6,}I_q2X/-U|!j!Z7@a>w˕E~>˧D*1SUhŇ GJvbD+ ?3%5]4%I`*8ʦ+ xzaGW@+ZEC#4F/{|k3J[ɬp/*CV(r~kVAV^%Z[2ҝ%Z,`vti9-Bb؄tVȯ_)2fT_1'Vݕz+i8["MwM /^>̡OI:Y"YnW&H#`g$ӏڮQ+i^^hvIqۃ7i2T2|'H;i&8`[M҈8'$@ WO  hUFq1#bx˃P,h(]9AZ/; UQIJg~@{{hIZQZA h(_h VA@+]rjz hA(] hAf, hA@+ Uhܣ+ VYէ)Z5b{PFH?RUh{uuݹeh\SN!mש,tZ (n+*klA@+WhŽ}>LWm=W:DhfT#l x}n>Ew2^%+Hk.NY/Y]fT2:!J'u~> ]]{2[KU$je%I@KNrZqV׾ʇ(e[FэlV("|M鉜f2gxRGۉ#TPK?KEN~eTkoD>+A]:D>ͯ Lۿl hKV9m\ZAVz̭^b bC]t"CV#5@nR3h%-bE J~ @+4zw[^#}_qDLۿdLJU٢UF~VWLhGW@+Z@eSUG+&1 ՈF2gJ?h%/l(oE%8F eAV^. Aq>hŝ6YCЬ(}h#ڧuy1=i7 A/LFգ6ZZ}W?cѕX@+Z#j ,s G,Ud7Z!^$k:Dx{c,ba򭰼FwW6Kф?R?KïLQ|lp&#(nׅy;w0H%ڧid2r\v2X#cz!@ZD *n=7G@PQՋbAP / *ơՇV ZeVheՋ@+ZAt3W|2V ZeV-lj wL\qBZA91Z}(."fB;^ u|Lʞ;>;;dPEs'`TkC'w^V~ eV1KMh *[ȷRUh%WVTQר\]YK:9y?l:urZn}Њhu7SEl{(c3 /X6~E42g:I0z&hEp;㪨(y|xPRp(J]۲_1%'{^-I띗ihj4yI髣8AB?vtα_#*+~[&$iʎcE\R5I/_U{Wye'j0۝6yK&5YyUOƼCH:u=UӼhE(n/~_W3ъZ hԊ$VD,(f(Q:"Z)ZiMn z^\BE.nb d+VYG9_gjUDQ+ :8=W[aFGcٮtKSd<$;p);zeHSnﳍG󑣎Ӡb?u"V ^ MuW啶vK&LFבi:B?+ȴ=u4ҋx.'%eׯğ֗0ju]wM0'XjUuuAjfcLt&c* hI1tu&JTKB+>l?DžV#Zi.91Bssܤd0p݊C :uА׋"Dn:tЊ *lbr?gbwE p\|Jxԣ[qUxUye#:7ːV.3b+I1^qU+hzЈ7M}[@\QlMfՄ?~qWFy~w^[s֯*JݒwDg.Jgv?Ki¨C& :-D~J1huW^%z[W̒5Ih8`3*~=HfLX,0WD82eSpH(ѹ~dh%-!@+ԹZCEĄVRo%wדrK[D Wˇ9)I.*@7H+YB$_ч03N?j?BRDD~0yyE~Rn.G\%y+oJߤr˨Qw2ӑfR;fل c~B?K>.g_?C+а-#bG>ࠌ^*;ZpB0OyX~v.<Lџ U:c=m"PTtBkOFQEGfpQ#葍V1<~Aq9 +3h2zx0&ů̇rɃF~\X@9 C3?ThB0è(1VScn|RƙƩBŃVa"S߀huKj͖Ytf yt%C+7S‹n GUV#/-&t AиB&U*JW:sV  ZQM3?2}-ZV E!ƇVKbգ!ۮ]ؚ( 4E *.&:V7M_LV46ЪWn? ("cjKW@+hEj֬Y_ZǾ>O:}X1&$#> 85HDU.ЊmF*huZ hL{D =e6mH>?EnVC/| wu\]jIfΚccc*-fV}iӦ "隬 &曁UUUS?788ZM0LGsVjc><ƍW^%s;K_G_̾ɝ6 *״,WesS ~MXUmk0qmȦhE'|駟^|֭[h58xðb620S | hE>?EnM9zh#O֭#tUZJcW4j6(_}Ե'zI#` /u*th#PXbNŶU;4h#<*rĉ_z,Z13y^ ]6k#`$xs iZf.SX̙EfϞf͚۷+ЊO;vС#ٺOR | hE>?En44'*Ghկ~<آQ+%Z7Qk8~n=.gWT xDsd3Zy%vpΎc'vڣ19,2"rwBvQl k9_T惌]Vh` l\h唛㒞Z^z 8EBV--7Êَ*MmPSSC>?En MշZduuuZѪMV]=77FFjP.QBla=q؉{kňVŠCR:fʰ&pYQ8*&+J$@+D00d A(Њ,9thSFX1[gqb.𡹹|W]CV9B3fUۑc'zHH<9_~/>rW{Gg ZEGlkCcmQCZA~kCccJ'j(ڬVքm5 } }F Z1[i=ʢV܎\b{krKgO-al &ܹzVhUh؊ Hhڿ{GJvmfp"4@ŃVoWIh牮2\Z AYE2.l<%xD+eOrk+kGʍ hE۷ﮪQm; ˉUnߺz˖@\E]{z T5|=6ʪq=j f1fYV 1D[IxT%Wڅ)Z1&f*f65`Gθ~Q`UODiڵuudmcꫯr) ws6aoԊS:Ƨ j5Jع{/E yՕ~a[ke$'< A)FWW5O,ZU/2VEP ~aѪю=3lIo4|,!/&%qB0 bVm]7hkVVŸeA쒳#{Waik ;jmvs]+eZHG;~!AŨъL`YN n R .](m,SW۵\Ƨ؝|3.sr;4Zq4AP΁VAA*6 F+ZAEA ъ9LӸF&("8R 1cZM'1VxLqVPĢ;K2VԀV4ъ~&=!qV\ Օ7VĀV4.Ъu4mszm2HdlUU rM,ZB98E^^r ZgO|Ol] VztQWFZuJij ΢z'nAg-rPR_)&n3:GRZXb 8Z>R,Pbl\ wxTDpW"h`$ՑN:SRs׀# kYb&ÂI)ZblR(-x) Z Q+mO%#IJV=d#<D)J' _[$,QWG*%NъM$4Ze?&It"!ZNʨp]niB<Ծފ6uRskU) Z6Uŏ= \xO?P$Qu(vc/EMՅ#MNxJO8ji}V3P*5׍'/pIpmvAح$DfV{yd?Wl2T/;u*I P))YE4CWx; wqweY6^]Tm pHHU0.QR{T[gZei!IT@eAK` [.v~G~[27=7ïgZޜBi9ϐ"lqz󜫕N% [|+oYDnR P3Oד(YpVaOY<U/bbwsmyZ[8%ۍvrKzEjet/ Wo?&ӟ[Z~W V+Y7qg讲Gʠrϊ`6TxCUMbA,kfVKqGR ߟpZh 1 oѫ\+Jv^3w[ddĬ>ژƹͪ0/$]O;ZD~xU۪i?Umն5M-qY_&6jeV?x%䱟幋o'; XQ\kgH&?~oSLeyd 5nhC]oiPKP+'`+}]kjŪi$TBjjSQBmPlz.&+c0ṙYߠyf]S|:VM]9ܭIOeW:_'tj59H={O_zm7jg]v={\Ղz ?u^=VNr:>sϼ*hY^yi#{%%j%*(%;.D5.(2=Ȫx󐆭æ?ĉ6(GVoP5Jz+%E?Z. 1` ߚCںA՛Jz>Wwh]Qj3F~0v_CO_:P+éث]\~=oB0]U+euqDyWjBgM+zjeMP+j'Sh:Ӡ٥qУ}ݦMf5?_MҦPDbŕ+}"O>WH]}<]s%gZYYJ Vn2&166雘I ] D#'[jQ+/|ښ̢ҍegZM[{wߞE3Kc_|m Kv -Ngj嵳Y< `Y} UV)t0MqWU`>ХZ]əJv Tv*u9yu'AJy xZ]d Zhdn_zjE}/B}3ξOo/-9S+s5 1AA3 UYK=[ʉZ7SV4u֛\A*ju5g?|jbL WcAg}ߌ<^#_};8T+:8"GtkV꽟xSudn%gEZwzZ+ZE}BPyT>+j駟.gj;HV9u,gZ94Rۍ WȮ\Zz+rOg+WޕwmՊW/fY^|u#mf)!i;YH ^=5zi>!hV3 ٭V@2Z`427YVŚCdZеZB% t3Awfu:h9<xgu~O/PZ-kuS2mS2vja$CHBFF8jrshMV'tyT>죜IvG  DrHYb Mą++j@@@@@ VZMl+tQP+$'*wj$c oG8*8P_Վ WȮ(Tؙ(@Nr,V+j5PޒlvjdZZd*0>_֜(oMVviAP+* ,ZZȮjVdGV02_Vc%MfŮ-jE0Y@2Vō1bWhZPV VP@ l!G+UE~i3A@ qVo6Dž*\ j@ TEMђD@ @`*\ZA Aȴ\!@ W+pU>@  RʪV}V@ iQ>P+@ P+@ VV@ V@ V@ V@ P+@ P+@ P+@ P+P+@ 4IP+@ j56V}V@ .jUE~eZ來6dWY2O&VQ2ͫ<}#9ɣ̠42Sm)iƆGtyx`yǃy,iޫ<ڹZ +TRgXy1gøY32n82v3Y\pr.45FL/DDN/Fgc3g1pVȌ!ik3V3WЈEg0SgBS bb o`6N`bNN¸y NXH/fl {_OdOf1k w|h\L-DDӋi|NՉ387Ò+B,A[D g˼ʈaXg2,`=) apfuoM(D30aA!ƭ#;cZ~a?{и*.Сoiu)锐P;EXak%#l,! h"mh$4SpPݶk (C%-hyGPpmZP]`x]`d}pt}GPgOy($ls]p°h]:eCU]DEG_y{-V-nBMƀ3В,!lG␰Ui!0*BmrN>pV+)=Cs M|F0KCG8)8(l5Mp/(kV*[m}U퉚䚮u;<уÈ=56ne٨pDgƍ4M717#*U &jl VD6#",# D Py ;"jp!ٮ:ambN:q6BqBf17#o Hc6)?zCэ#WE\-xY=LXw1TׅY5XӁcj0m$ JH *[-DW!2D+mVaJT%M*ŘSDӠ%b]5SV%[޵OzhS: SR+Jخ ۢVĉZ+jerdWJcW*dW5Ȯz] !ALZ튴R(JU<A`WHJZ"خB.*XT, jʮ2V6,ZٸCGV6vo,W*hV]BvU "]UU#X{hzݮ`]̮\Q+]Yʃ]R+ZQY)+gjڕVfڕV ]mʮ6(j,ZvS+V5m"JjEٕV`qYV] dWcD?o=w~k.R+g19u"NU16bWUzʰ@ZT]9jS]J"p kz"Y: -Z ;Qui],\ #a-\9] ͮzsV]VJtVZTGFEܮlVaZ*h0ەVBXR&+Ů4RkW\]Q%+ZQecWZJV*Q2U2v]J+vjٕpuL-\҅Qʮ̅+]DbW&2쪟JծڕV]jn6*Q+]}c6>m;ܝWycO~G=;ԑ]qժTbWNqծ<-THvE 9AWj،U+)\)ӂI<-;\U@JP0ϘZvWQv%,\tVN˽W1XWZWRZIN_n}F~ ||q4 sUDi$pw+]t3I"|mozז|eLva)c-ͻ[T^&%m፬4P"J"Dmd7%,!9pFY#ˆp, H{0[LC.YKG MYiɬ6p1Np\->ᦞbG["ɭNbNM"i7ɆͭIzմ&6&xhl4$P0nD҅TRY]]xŎMC\8cB`]1%:$&(a-NHd Bkyo\Eyy:Wj\vPq5a_W0qش}13|sP` B{DlQ>uk].q^-I"r1Gp=Gպ5nKݭsw(NISFEжCԍɈ58@څ9Dn' bB݀ vmD@U>e_WGMlЮmD-1#[Oebl0$0L%3mZ!0Ҙ,$4XM\<{*|uB ^ 1:cQ-'b"|k5 -a%pgqA1 6$`!VzV*4Vqk V.!njv#i_i_Bvrw"mnt96Kfhs P(t/GJ*} ~WXEC8 cbv +*s.(\(sD%F6:A"Au@dYWE/4x:7_k<.r6Sy'Ȓ ~'߰7M Ti15u DjJ#\H ) vF Q#̱Y9maz,Qk2ڇ $m}zkҥ1w*SejGZUVEciј[5fciXQejP:VjmźNlDY`o9[feo7aMyWvp<-o+v < P @P]% P&.qO#0ls9:NxizAXȈ ݅( éFL 7 77IBh]qi 5ƆsCThq <-5ޖKbkzz ђREDBK\ivb8 PC$qLrw{^ai5 BXG~RE$V$- HS"B ‘š¾&((tl@f']8G|˾.˭rOfrK *֘EjPe(t|NþPmi,b]wJL/5/JK`SL@j]0V6 P#%qaٻ*w P{Uu]'vTg]^J;(prl9',1eh4u~@ h0=juZݩR16I,nꄢZF D*B"J%r\*-HEb/rWXyV|u͹_ yR\k9ymzJ[1*K{@Ql$AeوrT4Lj͵HNΥֹ M37MmVVA;J(-W5Ueêu40QpbLa\儱zҌց޴S%:SB&%kL^~+bsy 3y30.q :WPmՄ -! ^; f5Bjx~9h(ꗗ J4e#ڲ\T3(v t*%,LJH E0UBjMA]WYz+5T5MxMm8- liĉ FNfcĴF F0EztHq&:$HFq 7֔uhVM$7ʋMq@_R`,)0XKˎgia@x-i#ޒKޒ|wI$QopF?,.Pݡ P…X ,c^ syf]b:VXe GE\yo\%qIdBKԲ$.++JBeRX&vVi[VZ%m /Aj Nո4y:OD uֹ/il~ţ49\gjbFP *t`GpLoS]JWe[PٖTN%G-~ [+DXh/zuuub''ŀ>U{$U{Ymb7Fu!rPP>O!K{N) M[":x9-=#mmm/f9.f9/ra.'E~}xq\be/f/di/d/dAp)\6]?з{ u¿ڷWigZQzgYQce_;t\G ,[.\"0,Âи 2.M ӂԼ 3/- "Me]D-f Dg.(-}tRW4΀ֵ{Bo`2׊޹s,h١2X:LbJ](QLkVl*Smj Z2xN% aiȷވ5aaHr="~iH;r]돩}a/($%u8lqʨөՊ!lP!Kd~W* D|c5g禫g&+K&NJ&F\4>|a|<09|nr$ob@po`wfɞc]G;Zv<9Г52xz|l<#.fKM GxWӹ#YeGd\h|WۏuA dUuFN׌jǁuc`z`3/&8[m9.4@EleOMYaeW Nu+];quKT4tDS ް R-ogo9[?qf4 :fͩ9S3~ګ&<>]5n{௄eNfW5^ht !<-C:l!:쐬v;ۉ^Sz';ܬG cDCͤ7֗fV)"wTuhߠC(#A!M,CC\Cpt}}\}\}\r1cǴ@1cqw܊cy/>]qq{1+ƒ{̈ O%"9!999킒wᗾzZdR꜔di9!8ַdtfgU`J߼/h-EQO/6%&䗙r3Ba+3CX|J|D''iG+d WaM_b[8U; ސ` BsIknٮ2XZL@\(W`DJ+UeZ#vKc#\.ԹBTJ3t'ȗ: bwbiW_7*ё,1H "UBJߚ̻*q/ ^1o̘ zf:Qm_* D![s۹\LTDXp r Dd du8v0P[- ;[vΛ4)䈊XI! 9U [U.ݓUw3;U'lߙ*2[u2k]ǮuMw,,3wqL1TQ7:1ș:\~r21Z!:]=UgR?zC->а\G5P1sz_^~bAkAWDP,{Gtwe̝U1 ;\aX(^fi؞,Ձzv܊{. dS*h=t> Hj,a6)֯щӆ7)&הjCm;aGtވmq n5FܬFLq #h!(60 fq\HRF$>~7T3'2'2' 323*j3svcqwA~Toc>X1lYy89qu␺ %A.ltWZ^LDŽ9)u!)b#Z-џy aa0@ެ<G7'uq&Su'' <\(4 H~'3 w1{Ҍxk*M3*T9vO4N=O=R>Vd-7B-G& v8u.}S{e]/bFM7hk١ %3]T B 1LLJUmvj>cQuݐ?-!<Ȏی~ $\pQ޹.RsuW,6zb_X[SxWE>x˨iՓُ0^o JbA+8]r|&xw]~؏1tkPZW.E 1AĈ2Rta-ed3ς?y}C .D Ga v̧xUf҅R ' .=^#+ AewVcgg+a?bHA7`rN֚E35:t/P^RC\(BMcq EsY?z  e1 č#"d* :_O[(:4.\H Qrp\XIPEP, ^:ƙBދ];v2s:ڲ-Ǚ-ǘ͇!lmY@CUk2ښtS..䈮܆%/|U7_x-+r_>sf\|pG/u' AB` Yeg] !y}]U'qTZuvñ3uk@Q9UCYe}ǮBx?佬='s[ 0h{@PT[um>< IDATwiͼ3#X.}[#JTρ#.{~莰e(!xmRAJǗugW_hC&]_q[.ܬ[vkJX]ݚp3#Y7emƈn5ܔSO&c<ʅuH +L)MvajhvM<=~z_Ok}]?A0G~Ge?v/ F3π, 𙧅    q_cm?a~@IK0Z0CwNO|ɟgF3^ KFiQb^-&m⸰׍M:t\A.D:a #=FdzLpUe+`ސZs.=Y?gqjLVޤejD0?N5(f P.t.G^Ϯ  A!(CrȈIqp7luz9b<Juhapa \.E↟%.{ v?& *.vW@量n¶lf멶֓mMښ6j?"Thqasݡ#=}#.bI 'W]38.GqD\x+/|qx <[ީ_ շ_ A ?౫q]+Bpt5cg'֍%^]cJ(YjbBGׂ+PO^ w9z#\\wPIPa`8^H303+G5 3F]gSѤm8f4hRjJlm1Յ[q#N[\ #R:L"/(H4 IrN4iC[!ptf7d??o?>ήOٿD"S)eޅs*r| 7sw_<+/?CBk0ôq! …:gd֗^/e F|^:e;jY.3 3@F0b. בte\2 A~ؑqŧ: _Ȝpa<&qթ54Jg@J#Ui@r-F6ۻ2QӇϔKW 5'ؗɀE.XX؅d)`  vrDMi̼B阨)P[yETi0LhrkRѐDxCc_Cy6=ܛCO>ꚬ/-2ԟs [3-'GZ2ZBPT C`n/:9ܟ3>7=?ϽƕsdEӢޕօʾcWZVɂ #^;ts p!!6"'PE{NX M8.@B}@l!tɢs*Di̲Se}J{23.6;S^海]@EǮCe%%[TMkJgj_^-rU ;Pt7dPX@"BDI0}JG/c @qbKp !gVkfQ.}.![Woj=ޔ oˆ)R҅7'oֈ7?qc)۶s!):$hKv!5АZSLp+&F߳.\:4 ͺx鉇Z|ɇv?C}O=4CO?OM%$_* }Cp-0s{ާ~aw?ܲaN~.qᗾ a"(8vό'rpe)j;<_UyxZ@ 6Wd9CVeUJ yH~jOcUƿt|N;?=;[7?]53Y65^46|yx@ﹾ=9:Oth9l>ޔޜۦC̦ fζc}'FL_d%\4ڸpϜ=[?|+#i^!唽8D0WI‚t>t9Ke9 U}t&,D0K{: .(}MO^Cu t92x)JjQK-G ;Y#9գX?Nq7}@a[^V Wp(4[\MZI\)z Ŕd:=B.4*̪=.쓃 k>pNS Sh qov4,@D;hON$(7>k܂ r텰oJjtx>ƾr׻|~W|G~؋LKο(S/=:GG_||]/}| Op $q:ۨ)%Nɓ` }X`+b_$euEΣqUcEmS?xpAmh~cK Zۂ־Jdd,K:xi[X|I5W p: ]U&o,qv`!lYX6#mdzSgkAFJoT *Im0 qRX`=^KPxB͇q=.d Yp4>6tRiQp8]D/.|p=fӬ0;8.ŘZ>23-le>xE#v1~~peղg+Kg&M_82xn`oNOV_ǺG zz;'Oe LN_br|y)_Y’LIW{8Z ,:zPpjnl3(@"OfdǙUp&q>J|9itv^рrT;o/\s텷n>ӚP[0ۊ]eJq .LC.9Lt.t޼n-:р ɭ,~=ЫϏkz3=?ܷ~ ~_ms|>@\̾Ϗ0 C /. !b#޽(3 A s0}[No֟{n{P#H+Rk@n*h4څ£UsUk_Bl4_ v,P4eGWЈ@<(P vQC\Eh2 2ހɳb8ow1\zCgiVhրMVM1%cЭy N҅(YTA\ dPuBlD\Ȝdw5eRg paP =b_0rdm2g6Ϙعoh&uIz TcM+} ie/ZEF!ǮΗfgNOO]9?6;:tzd0{d k0B0pjt0kl鉼 ,e.@Z*RV4U|BV2$>u]ޗY}tr DDJb!@^@4h@41uU·_!Z C-lqj^avm3,9Vh :^l"zD/爇m {^ o&U}YUtJ5US;܏tl)#XTli!#nt ƍw!Cv R.eDp!B0МԧCFIa:&,DvMM# ~F L}uWX_wUiC/8漌83|UW^}cmiy_&B!ø bE!kP8 F7ahχ￾ E]Og{| OF4n SP]#uv;f`;`1C]e][K4!cc B&6ID"aWrEs3f.LO̝8;5~vj"wz"wf2ovyES %bETW-Wt,mb\Y2 ɻ2wq*n `VF ^|ZJVWW=sb}sgNHꫡ '^z1^GJtᗿ#!E?_]߽% _}atF \;Du1x\0Foxb$ 4y6'5L.5װ2}9@'P BĬx.nf;Wos#.q'%:kU ae[c$qb|t7r!9\xu5.v3g];p d2v5Z ~k )@LtQB 4~EYɇ9/{ޠujXf24LӉ~x䜮GTUVI&HŒJL (qyW8`;7ɇ-Q!+UHV"QVH2S\'4,sݬj\S>$/]_n\je]h=8CLsX;?Ԍ怱jFOԍ8SD}5+!=Hk# ΢%}{~܆iŅV6N~yd/tT5qSޝ94BЂ&:x A;φ/4Lg$]O' :kļkŷBOAD" qyg)I\cmw<5H1Bqf"PIq *fgP:%tNАaI9hһE)?y7{;S_;kfz[B WN cwZ;N;Aer:Rkt?~aXgV]( ? pgm"߲&IV_WjOL1/fŌTP# )2oCuXglb@}‚IC CCgq\08zUC4c XPg>ݯs,˨Q7 qm$Y JP3:v l\`)3N¾Qp>b4nDGs U{ϊؽ(pyN:p1os3>id<ű ̽zcЩַt-JmT-UVJby-T" eE"@^ ebyDQ*UIURML_+77*MrG,r6M{ÜvP9&-PɮHv9(&H΍C)Ƴ_}68k BB%Fr@g"M3|fw~㻏~WKT؋&%@OII {x2RQ:PBnx7y񠒘臻HJ6GF$fߥ[DN#3$JxU mlw !h,kn[79/fĉ4vcSH!'EBC:ZBC 9PMR#-4L0pڤPh 'wg_}k/|7~󝤗p\ 9@> 9Cpv|E{Eamh:үݵuTa*k.2w+$8"Q=Sr?+E*ϺƳ[?h1ҼnAۨe3ap>қ/bO(1#$_OһgYE!.bP(G8:*}m-n4l8@mjg4ծ 9s'AsGhu@Om "|_T틪7$<gE^X Ƕ{vϼ3gtT톐59OoY;vUmnV:Vnd*آ tP#7(Lu s֤t6+ݭJo.4q sis^#pV %E1E Be" 9%45LH/O@wݻ+Cj+FM'_:r ^Di ;JaDW>J-OA@OZd$q$^)S\">1 N 7DSzS.J T&FLߎx؂[2sM\BNR3YS}Ji!"j54Xd7u!zW" /ը b:"=ֶBBZODh l .L_o #&qĤº[Z}_7dDr"¼p&3& mQ?zCNM\]r.% {U%  QpFZLQ K#jdDF uH4SyJoTȽ!gM:tײе$8xڐ*´ua3GL!ջuNuk-jg٤v4MJ*g3=m*SСZR-w)+]NSr=lW<ଵnR|z`~YXkBThLQEk 5W'}vZG-pHaKs0A-\) ^_aIhCԓSI\O: 4$p&d9@؈W0n&/ċܣ04SznjV3*ƈmJ5%&E9B`Ԍ924됝a6YH!uSFc#hA$*5tBHW# 8c׺ĤN:]E8bpDv‚qBI_6s}3D4J2׺p_W<5Zup'd0-\7/",),%֤@61>L|G, ' Pw|sChȃ3@SP9C񕛨Σ32ڑ R+*7LVßJsS⬫1{2OX IpXV, Em# Ժ?.3uŝtjt[1hDdYt7"kcHWv-xʅ4:d萝hHՔ:tȢHKE 0!6܍]袹0(BCf:D. ]=DK12u\Wz5ܵ>&M7b!(]bD狒x# <'K)ìڹFWh$%hA@؎P _^B[SX#A-$udrWLc{垘 G%Dpg A#ȶY-8k[MY&-kcQS`2 C_ڧ]R& ڵ^mO׆4aLd@W^E~N H]KBc̈́PlĉM w&z<7m6vXlOA,-4bfnIle۞49Sz.bէ Sنo[MFĤђ<1I1Fr)$L!6:ttk :4-A\ٶi.Ĉ1tRuB@\CҡnD aDJzZ}ӡzzטG,EՌqj P$#9s .rܖ  a 0#ig"ve8. ZH?ne6-bZ<-bF !8o La)6R*# f%I~~,μ56gAZb35f̱iSl Cl#F t]lxkG*QHԗvcPET!.q[.S^܅q%\tX;#v`:8CT]%RuR$< A"WY:O\`l yJӸP I)n-5FDS:Al  6$С9̦\&]JƄYpW:D;ihtH\kJIIoCZ'$Ж!ͅQmБ!JQJĈ.…-T½%u1dTL=FPm Q$4. K<O|@$>n[d闈%Qovt)@2^&P!UK%l(ʄzuR: LצCx5Fy7/6g&5E f60m"C@1 =_ǐ {5!@:jJ"9n;$+KW0"S,s( Аpa~Dfw?A=Pn#!yDDkؓƥ$8jDRa%RtI9&MhQ30bB{pNRL3B:spP]$C-e&?y| Cp$Jk-p!+Dn1aC6%BcB.D0و(.dGVI7|rhRO)p۝hěF]Nסsg5 n&$ \= t[B;C̽rDĵq.@ȱt,9o]!^ a +? ͇qB@aE XZѰ,R1' MGjGeļ%͒u6~To^/Fވu0}E8j M+I+Bn6Y,΃?F!dn#UhUԵa Atˊ?uoyU$qZQ7=م !] iEM&vEo#˳MCS_$&}plcJ2)瘒φUReĺ9-cl 8nLY9ֱܰCIbڒSS}Mft q1Gw~%:lj +aSjJ.LS!r;V50_z`:>~M"->T)+ۘKt/Ko|~ڞ߾o_yŗy[%:ʻɿـH~oQt/|OޥLwIIW;_uxSlO?qTBK(REF)*= ߷ "ɟ d9rKUقߦ~+GqK If7. v>>~;CL{GY};C24$]H;bNIw'.?/6CD wvNI_:&P h5J  vra\#wcjv>p!t!; Υo^.NIȅqvh4n!!s!f'w8Ͽ.NI䙸!7zPTO?߲BR x-_Um~]$A.NI;鋗H&!]_J0:-wMɝSRDŽa>oo}I;)MR*ooMN~eI;i'}R…d~wE&qeThͮ/y *vNITO>;i'm\uH8qtѱ IvoX, ˁvW~w0p';i'N;.I_BG uC د.&p'HK]N4^GMTG7Аdމ v\ $/qNO vFQZ|⅗?aҎ w$.-S(\rǔ1)Y<+O]/LqN/v\d;/sV )dwd%RGEmYe7}ݵeYב f01A0Df$$XU]a{09?AÞ0_uOBɓ='zOtL}+\5 A`ԡ W\@^hqqG8x6qL=bWjXT ݅s.9|_ƪ]a dLya\M'u]a d 3fH^挼KK_Xx[ٰBFsai+5v{F;>Hԅ+Dzj=t)-N&R~a+ qPp9kYzm֘Mf O  ԅ˓gN԰?c䅷/X#3>Ů02=0}B-/\q_!yuzΊѩx+ ԅ}3']_6Ƶ'f.ȷ165GJ/v]HD兜 ޼88Cm`ܪRśe[#Ě?]bTtk / Y1_rU,LnchMXU!TXz12ǜT(/͚Oa,HZj+0*b7SgN..\@~f^ yZc3WTI F>M nhsEBUfo3X)K2^qHeKEtx6bc]hxROROL(SSٮޯH&!v7~_i]ͅs7;F.^ UP.VCᗴV47ؚxf ACf>wvNх^>jtdWߵOrGـ9UV`͎उUWFE.-\bJ*,WRRzP͋y7r$e!%~m*"Hⳏǝ&A\[R*KFWf"|\+|8}&+;nU]~e.>X)J.Zk3by{ [uywݫ=mBS3?bQ7Z@waia2|͏~]̀Rʻ9|l(JB_peINK9 c`~zƲ6'W >]g)LR]JEHゕv=WR+s&S/AW}HvU#ޭ6.]-rkX]65\۔R.IGg#(ӅGľ\$ޣ|o. |B\8j0Kₕz虞Z %亰+`xCTeE}vgj7J .qR JHz7]>$_,expd-/5¬޲tE&?{kH]o~n+ fZg.a_ZD$>k18>ǟ] !aro+9q%¯=f+ ¶ f.ln\&!.#.asa~dǍ:Nv ML]a d4^¾^Ϟ:5|DP2M;P+xhwLT[O_ !ҍ ok)dᡧ~Bpz@ ÅBiG"~P~ ǧg.Γ&r<(/ zt .\lbdl2;W@. .]qa<^-Rr[ lPy|[waPc(9Hu}'HM,>KJ!{|@D‰,PB_aɅɛz7z]P]8[Kӡ™ϯnZA\HJU \ it9^Mݼ @ra23M7ӣtU08p!T ..|aq5͂״, Q0;.Lh0}_waZ qoЅXbWQbт  .o*<)!m De c&Dm1&Mq2ՍK\K)V@CO/ 񁦓]?ͤHGռ.LeF fX.\<S״ .\…A2Ͻp>c㧈旟vQ9r0' ?W!cG IDATZ i|sRX٪]\^cp@o sRsגגsU 6H\HviKf1432˲p\ ,b-Z4%Y|S=Ù6͒PNGH…  jBtPpwdoZ1TvnG|tǹZ$pB]7m9?r~%Ns bFP\Q ;~nDFvIeg o_~/y`NvN?B݊Z.QP-1zfh١mg b@7t>]y)MQB ' U.$vrj`Ɂ-nl>y#!l/OLϼw w\~?BTTs5N:@ʾr![ǯ}xi$gnۇ>ܵK&}/ͪ!Bq[\Hy==|.`-VM~\nmr)oz|b֖cj&Ho:KKgx]#76?蹮3nE- c fOkxM @= Zz[>#pą?O?8_J\|PB"Ʀ83IkܘM1E9 vU۸f5mWQY8vBs#O /6K4ZI!  j:Lax,EPM+^d5Rfa/F:fI߰",@vE^%0ք>PjI/_l9?||6ԭe"waߌt~VMve"\"2B'ݱeŅ6 x,$\R=tAkw6҉R CPJU^m}ÿI/f `×MgsAo~ZDB6}1AyJcҺUxnk}ٱʵׂJgw@Q[W쉌ӢJ29$cshR\̽N3R͆ A=.8R]2~%16rc?ݾKz]w6S](3  ܻf;N lc/҅(nz쒍-V!5iŸn?zۈ<`íw3>Ux=$tZ~P-VJq8B bTV`phnP: إ0Iԅ쵽F?Þכ?3:(E23C$Fԣ…~Hϝ1BPD͖ ,{jćZte[07 řNuM}ͧ0H/k>3jEP^s#j&4y)1rzxC mXTv~kRb8-4Sۗ| ~a҈u5 \Q {GùƷǶ.Lw^yqzgޱ'ֿF4p!DMh.\ޑ܎CąKװpbb΋پ'6F4p!DM.o?q~q Ӆw%_u1RD˥qpoB]7q>θv"l \߃ R.!<L\Bjg+$tnsa \XB 33jҋҟխ ECiʰ K# w.2.$ li\ha&~I]ϰkSvV /.֮񜾴]ԏJp!Buat! ./\Hu\svkHّn#9 Edr!]\]\B&&!o#\̺8{%#?0e&q3:V>w<k$/N>\2mtdseD%yn\cOrKߙK҂ ?$ 5At.L\HG B]kCT4q!ۤC#b] I.a5=Ǝo5sKr4E6?,QmϮ ټkkis/Z%'$ua˅N. sXm`k٘tj{ =9! EFfRY`t.5&/-o.TUk,t3^ZIW'9Lʅ}9GJskV( " ]n DBVXGƴΉ<>\(\4lU]t N ̅BӅWIq 9^RPzXH.+[$.-hooSi.4\a0s,f n9иWjYn؅¨Byi]sϼИQ{DI=+/q^(lX3˦ sK9+ @T _эM16pS-$T|D(ŧ%$gKjgI](R^jowrDS{7CTⶹآVKsCY+IJAU [l#O"݉B](,e=ȅj좜_֕J/WMjraM\f&.Y>G^(RY֗vӅ)T\Ey>bVI_!KEAǙ:L tҡBmmf`@T [^olgZ.G.E]8)0qaJ1~_*υK:  4"qaÅ[':XA ãS@z WܟoHW{%̍iBiźp uܖsV$sIQ5QzOٹgǬ>anDM@Ԅ]p3V  jp$/tflәQ=  jw kyM4FHteI07  j"r.0,jʅW*@ / .<3j. DպP4PYtZ5A?aj2 \X E)$.68bf5f+p!qB=5 QnJ~USDr005N@.tRIMպ9Hp8uC0c v q*d%ul[c=89~7& cv-TxWPo;;N,};+dv|n7Q RJg](w }P1먱kе9MZ+gƁd)&ݶWqL}іfmɌ#c\+|dB ]"A( όAXl:BE';"j فemlZyIꬍPDZ81Ճp!n Ԛ֒ +d.PF$a0bBq]RC˺eC3qʗj._iG/QYˆv%e_0$BV:UBTmr#>9zTClXNy=3}=CnN} A- 瑞` "0ɯ ^(4LŷDZ%l TM˕-ńڱİ t1kff3M{ؕ d2"( 1NEєх.4&B߽3BPtQ˭Rus#W%J=)m%\NԞKfbm?HAÅV$sph_Ыow7I+7UBʄp}"܅K sZV$F ֽF4p!2ؾcJ.\ymʈ S^ s#j<.\yqFB5erKKٖ4fXZQ5pqa~aw{~W{e 5 \Q J:swGawG~9?p!DM\GnͅO…  jݝyC~  j®=pa*Ѕ.jVq@]X*=ʨ\Ju]B`Ot~zz^Yy}[L#6 tثXQUQ*&76L)gȰ)3zTR#&Bum[<˨Z1"DҼT6l*_Uun,55!3~g#%; .) u…  jJ]M.tB5ewa7\]HT? el.tx%  y;|,F>{ _}D:,.,. ,ɔ=RϳF鰵@sz4|u\(2p. Jy"sr$5@p! Ʌ{") -RZ,@0ӛoaXgCޤ1ioop=.\@}Q>Z:  2r"UeE^Xh.$>3^ks -i[9JW" #ʟ"/ D.1S**](vl:\1e;{.Jjɟ9,$.\@}QּP3"H _,UR̗*Hw!!yeuSi@Q~4Q0m37ʸ~JPZ]Z NBsFy^{gOJ'}~R5 </^HTԞ6񂢖9\h'D;Q) Iم֕RPɅzf. !4dn|$۴gx/(\.LEgsÅ)  B@Ԕх@p! j9Kpa B5erA9܅P\ . @Ԕ˅{bpp#rps\1P v\j^x0A. Ӆ¥."1w . \QS6@Ԕ=/읻 @ԔÅSLR pB 0p!DM\7OCK @DXCYZ*mH: +.Gݵ[7ƴƦf'b(⃐Uk|akր q IDATdugg25C]>ҠDBx)=*i؋|iL昬:0\ZY'iIsbcd[&'ua\]XDg5ΥkTo+s!Q'y__QSc-åOUl* !KJ': .r1r!mc1?k)]h䝆X, ;\wve˱K)-i'q]$|Q#q `vHH[Nf;N lk_ *M=;9lM#8'eyɗ)+jL7 }5CPN).'^(AhH IUw(Cp3eܗ))Iieiew A=R&[ :W } G^Xܽ4|l0B݇ E:nvtv2L]q)S_  b?ޓ BKpa }j\`(.fds#-hGjw^sͬ^LK>JG˔F2%Z/muw9i BPԤ.+w Mpa qI?N~M~vHʺB  ]n{\!546_'^5dgTdvED ]_ ]l.Qh~T 6pa8q"<KX*hW3 +uKPJ]蚗zGr;Oh%Lo_~Bpa 1S$RąpaBo}gC{GhLLz^^OÅ  ~sW7|PۇIOoY.,&kiݪX:%R  O /h* K. +/GP>INR  ҟ1GSCt*΅fL1>w-PH8x}5)m??33CF-S.^R73&AN?Xe";=ãzh K\|470sʌNc +˅b3Udąʅz"k>swOz_i1|RP27qzC[\ͺ8/΁ ":pUXBI}0a k TMUɱdMν'+A`?0>r]G <ٔ6SK. T1z_@X~cs~o^Тml2}aT Up.T pW!ssU)A,Ʌ҉Bٖ|O_ҽ,kquq6j-O^(UzG%].Ft #%9v%nQ}Z\bw5V_>Tϝ sXSS{l5n.>x_}˜Dr_dM c9 4/[dcy= {bAo . 5V瑒7S`bʿ]cV^P]jƵ$}=paT ]BHv-o¸lEw!v(ڤ Ud^nt] {BZ,P5|/_ʅA{V%rSJLWYf](æHvNUJ^/ N7"). HЀO ٞX,f n9 ͅ>v^.Whbz8bp&ҼPbA BQܫ>fn.,n*Vz^s*G B.,Jv<4n6fY]Bk^ݗ.|%$]B U7=IEdwMixSL6eKf8Xj_;Qq-`V'9GJvL 9]S=a~X>%B}_ױ|€T LSӨ&+څvT e6^ t"j\>uvq+wnc].2v"䷄ν'+A ;&#%9vl|蛒/b.t?kB GLiPy.ÜwW]*_YT7 eB ]RHn{| ΅Ry.=B5ljGqVP.g\\Xpapo4ҚqF:7d} @Ԅ>˗ .Nحu dB(䅫ގ+ K. +/\իɹ+&7|.,@(y_?b\QV^Ćׯ%[1U .,@(y^O-x.,rfjPaQCպP{ |GYtZ󲫛bY; paDԖ k";d%ejY $S \j䅕N]ȧBø"ub:Oօ0n 8 +E ؄~p}Heψָt#YKp>_1] es;Fgaywb1c'f"\rnFQ RV:B1+v>g^{&`=؁ ש @@ެ9WWn+8αyJv3նߴkhJ.sD: Yl:BE'7` ٱԸeǝ㷲 ruF(XlhS8TM|!XMkIkFC,ٱ I"Jg]XlZ(UlL`BIEH|4hn{.hY2_FCr! +u!OH*L׶T_Ԟy.a: bGLhZ 9"/Jg]W}]/o&?IOb-ʒLRfy*ʖbbBXbdz5I3&C]2M Aq /hBg~~VBk( z>%Q˭Rus#W%J=)m%\NԞKfbm?HA /th_Ыow7 /hօ "Eb^x-p. l1LB Pw!0\BB0dB( +&P0B(pa5 +Š.A^XT ]=9JS 6U{Q% /h*Յgt9JW G1W>FyE(:fN}|h6֪D.UE.L1UJj]7Mv{V lU%Uw׫_5|lQwٳ=nluh7V6bznvU j p^#.Ln.Tԅ1(8؅X weo*{QcEEթ :xˡ!JH@T zŭQi2Qibk2%{ +'6v-p01ǁqҕpaT pwgS]FՊ+=~OՌ;ŻPvjkC&Su>Uб}8RA14YT} +P_=g힙ÅaP.t رiKwd=BEkRFu?ܢRVG V2!wQ:ߴ;P }Hn[S;.3V \@(yϽ76KKt~alnhw!pS .^21S3+ύMBwMX0|Wp!K(y6~6r!@,7/\X4aP2pw~5ZO%Uo{B@I≯$ Ly"srԃ57!\(OnxZj`/CZ…R7[Y`7߸4φI gc:R;xB{.]"؍opa8DB\Hc(F Ϩך\Bv־nNէBpBӅp҅Z?RqrqReU ŎM 1&UlgERI-3'ed߅ /B ΅/*ORzb}FȻM]ʺI4 =/. \e܋N?%niy}.-΅|V'w9 đr' +]h]},5Zu5Ni.!7:#E)Ity$\ 4gg%s㋼%Iݦ>QGiT pa8p! jV:p!\( +.D J. eyaES.2ҁ  /hB䅕ӅE^X8Jٮ ˌ p C5^\8k\p!P'6~5p 1od沕@Ԅ^ڕY+ …@%/\+s{:V KW \QV^s/8mE:d}paDXCYZ*mH: %/|ٗùƭHen_~/\X*]ˏkn⿍iMO-.Q!"܊rRăejYnԅ?B Pdf; J.tǙz#YқVZq)jwV))cjV,lNK3ZمZ5UvseϞFON4*>uq_>1bbpwÅ ٥6֨EEex㹕WV.Ŀ0rsɞ,)Hh 6Q471Uvk! CP.YŅ|bū8ade+R΅]8U}7d ~./4g7,!;R. Kw=$vV[Ig5CP¯=51ֶӿ~FTK2]I).'^(Pg*y!װKS[gd_rkdhse5Nab.s.snLÅ ˅3{ě[N1|vdJpC}ŹЗ|K÷̆|_/<)sZT.utҊȮEfε Å> ˅76'H$ d\Cѿ/\ B^R%ŌTˑP#sR~UO]Up \Jt!"ftθy^n A!Pe§u٦?tfG)ƅ;`$r++aHP ?>}3-bS(] #FQ%L,z9X;W6cv p <[>cZ^x\j" ?a羄Uv?BPHH"L{]/ | 녖 SpaR(rGq@] [{ܯvh:.,&δ]ힶ}HM@ԄKג:CbۇHb  jrOq}#=z>1=ÌS \QC\1*>K]N}xjx3#InBXBuQk3r.D<|*gƵ . D^-h6MbL:tpaa@pث׿;6RDD:O\\^xb}c-r; $BÓ u!A]xWB]y; p!pa{!\ vm!.t#/tI!\\bu\HBu |ոPŮfT,p뮫$obҩOB3是MMo?s ^Hd qYIX%W{] 1ROq _;?}[ڷ"6XbƐ*oWAeУѴOk`g%]JȢ]XV"+ׅ6.0ʯ?JBIyB5z7IdVZf:(\OCGCҷ .Ⱦ8,B qv`=%SS !X*0le>cJ̓.꾥v56ƫZV@ mE[幼0n)'$:ϝaϾ,PxP@J[| ӺGOn^~սgA>TBnFn9%2M ?\5E[(KgkXk¡bY ZɣsNnuVzAqSGreqrG:#.]g|̞UZ.)#JA YqvF:ŸQ5V Es!׼9JɈz>BŗCbfL.WG6{_dWmAگ.'}X4'L `V{}(-% _.< ϣJw6M=#DBfaʿ h+w\sU^ȭ@h|ܸWh]B~Js,g-\RIDAT=BN47E/mC^^VHY邃^msH±5Ong+ PVJ$ 3ۅxiYW^Yys)? ! K2N~ xjMZ)ӅZ^jW 6G"uʐMWH/Evu1ɧ =W(vZ>sS3 ~ wKs3@y!)r[=Hy,;K+ʅ_<^"/ͥY~PTأWn|eFv!/lL1+.d\+˅TԣߋR_Kq`u. C yZ I\ ݅Zto|sҮ,]JWW e 0ہfgva|1g~&EsoPBdGfd,γ[Yjw_+\ ^#=$S٥~^X 43#> Y$.Z&D]gbot~vdA9\nn-X!5i3'CtR5byܗ, :ӾPy^ƳՃ>._>օnG[qS) xcJ|!ȩiaĆzfv\X-,]Y PpFZ}V]7@ЗVW\\BC,#^sis?KjxCh%>΋C/̺HQyy?uߧO]٣du&Fg]~aj[+Tn~t! .tI - Ux\5vR1*ĵZa?IS[Υ6|v"[.t|Ⱶ?~xj'?814}p!zg^1~=2\^x\㡞?Ac[.P/|;.fE3Fӹ[  \|k/v~FS[  X|b-H|˩7Ie.P7|76ol9@?z[;z!B^8[;]m@}A#2v_u@T;. =ƏzqƏ镉.P/ L{ƻlC.yw.Pg7#|f|Tv~ln@=W#魭Oc6=``/\YU:o[F΋5/qĜCPo;Ϡʺu'^mk#_Xv=sB@B|-@} %7nT]+4~EsapJ B@5pr..,Xt\\Hv`E:vY+5 ՈŮHY pB./4]H^!!\FX_U pa z!yO!\R qs.uɈtnaJӅ{:{fi<\:yamP۽3^i0r!y+5 B::n.|-ȋb]Y-5: B]klk"\Ipڗ{;Ό<3G:;T)qa˥쮎!\N" MZk54ޢ }JԢυd,̭1)lq2" (psᚗz6 7]S0CRT+9PuD4c]hxRMv^h;@}?2,*)"U/7..\ >Jb75=/.y)CS P}z d3煁@m9v92ג[l=#5UXz6oB…j$ʼ\!u!'ȌB"25AYqpQ]..|;{m۾e;]8mL gB@e^\#KP\:H-ʞvOx/wnjimnм]ܒe+0 .H]]^hM0k/m83aW4@ZX5C>jmWbm>Dbd*d ˅Sij ;{H#b E7 (\hOVK.Wϯ at [N[r.~a") BRBFE^(1sK]f}H t}k/gg6$RP) UGB+d#՚|.҈.4N"xٛϔgow zoD*s ]$:ܮ.T#~\hPtH$?$/d*֥)ӹq"ͻ:/~bgOG|wa+q^P%/4Zlq6n\heBHM3(J{A}  X[g|MG6n>6.s! PylnqQ*|؅l6-auml.,TTX~XkW>O~o[3.4t; pqןx_=r_;6:хTp!A^(P{CŅ_8x燎y/>:>:ҝ2&B@P.tO=}Oّc?;z|d:r0 !/UQp 3OǏgĉÙ/.}!X qq߯y?qOO#1\tn?BjݚN \?'?SGH4>:p.T) [Ӌ: Ɂ=>9)q_z)efDPo;dHO}'n\cr=`F @mߟgׯ#C|p9p!څ:r_}}2$uv@O}D|>ɿ}vGbąx zMG߉ÙW0c…jxٳ7ة:~'T|$Ҋ ۦ,…joYw~p:u}4ep!z߿8\_ܶˌ Mv c3a9bO^]U^~l[G}54^k~H^sZ</xΚnK33)\Ͻ?|h =אϘCϾZ7\ű,! {h͐<>Kcb <µ@$AfBFNWOY;Fz$& }I&&Hq |]Nb,Eƨcr}dEdKvY<&Klv$1`InTY=-9Eu1B"_h! gvZs6H&I̐0w=/ qǮ7id!,cyUK/d"zcnQ`15<)Ɣ =&cFN"12=!UYrn wX]vS|Ha7Z*\pvPƧL4Nfq=}Kó${t*oYk88ǘcҒFi%rB+6/ᅱIljO痬+_o7QO!s Rk_VԎ3-ڳ;r{:{ gH?ػp+zh݅=]Z.w&ǷzntQ7>d˥tKԮٽ=2z(gG~.'+szY`-)2X>EHꕅYxo"=#v[ѝ!'Gң+cD]ϝ$wt2crGv-Gz+vlcbn ehq!Y6=Rf 0VGA*L9M6j+H$Hw$/pBncI}hѣ;ӎ]L)vsƝ=L;r40bS.;Z$2>$9! 9.AǑ $&hɈMa|so|s#1l qO4N@Û΍4G7om '09wvLtMAA=d-8zP%aCvgbZ0ٝݕՙ! K;.%o9Ob9Nb&#N6wlګ#v ZĘGmS=a%Ǘ~q:ͭ46١4 N3h|&[*mɭleԡu7?Cpb~{fG~g|69A՝a*ߥ4ȻηC8@pXMQ~KSW.+ U ۴Pt}N>~?^Kc{<=s{㻿DM4DM4= < 5^ W&R1ҋ-?\Twh&h& ){3 +#@Q~V^KeDM4lVwLсt DR#Q 4K 5jԨ6@su3Ѐt 3ЯCY⡤:e @ԨQs ?230SAH 6@:xw.Q D5js@dپ0;,@` n D5j(=j 4`f /@` @(QFI{IFyyZ@rP_e @ԨQsB < <-<jOT̍6w T7W2o XVwszzZعuwK;ufåiIG}S "^Ը]Ez+)c2oJx|O|:p[|cݹƾO{?  ڴ"##EO'ݖkɉq@ԨQtZ9҃6/wqqY@[[ӝRU]9::jڈIA[L @ XNs)?j {"nt߁ @a>۪t+~%k#0j\]~e^k1/bصœύY\5 C'66uaII5떾v@| O9_Ӫe80Y 1l`yE͂[7&es]>r5r ]Аu7+K %fwtt288xqXse7o^ѯ_Z^* ܽH FVqfW{_ f?_߼yGcPg;QUVv)1 0㗶 2TYYm]aaa۝;wblTT6zoq,$(N|kQfp l1[L^"#@ FҁСIɒ1g8Ǧr@6+/ʑ쵠V덎\Tw3+*oV6)2Dx =9 4a i3PnϏʟACGC +~zH! ХEb/.((t)X`А] T8z;3[}g@IlH9_Wn9p]1)o~[LʧSl=C՘tT과)roYP(i.xu_/_yU|{jJd >b d0Ь@VPdV"0Є$0xq:c!Gm"אʏou@O㫑AYg T|T9u-ޡSM+NU9]MwT%7070fu>59 C*>p$d[ƝP ά\~޽7^gWկQbb;H39?Oװ3;$z7`]To_k+@' ;@or!Kj Bd!@>H?YJH/Kw0WA3;ڬ:]30԰|ݎXYy_UB7C3F?x~ gvQVegg=<-xavRѵf cd::{V'ꁭb\ml' ' qəW;V<(ǁԧ$@WGnx%===?u/cndL|`̟ $\{ayZc Τ:d+nqg0IJTu}XSۗNF]44d&E b ~'A*=a@),-z{7x˂7@<: N7euYW_p b}ڂQ::;R2b!%Hӡ!:n 05[TH9ZAi+8\4Q}b[A˿rOm)B ێAbGC h7ńBPD1._2J?:,jQ(0b"*2O8x mQaF&CNSE&Fħ<5&Ha?!` ANp*IBv%@\Mpu%?2dz(C_G "d#Ь1,b]l2;[^iSk!`b(ھtB7:q$#mAh.GLmDVYb@@ͤBPbzxl0jM2>ܞh@gƧov) &̒XPFF *; b ӐDžWp{v_bmBjw'[\ٕ%r >} w4f 0yO{Ǵ@ߍn]FyΉ b"0'b{?| d ?oi c%'V)i?PDGan/9 wZAb"c"n5w)ܼ\1jNL4 s7l Cppm#z}Sa`[TzpkkW}1,0 ɩ 2t+p'b"/YP.=x`[<abuc@ 0z^d pUt/];iAs1k&drqퟎ忶W`2$+D.]*W=ag_uH/c|rȒc٪9 zh/OF*X+&#p<9dO"L8 ae@BLBjRM"S:>Il @N@V^09j\-Y Ml[ "XD` 8I0I8ka udC'㪏{!䇆 dTtdЗ'5H}aC_n;6 * ߇ۻw;Z1tq*@O%B/['&+LQaC|9xl1.:Y@<ĝYE7.L\\8ü'TX 0]u"R?( /脁baah+m/!E9enI& A"'l W>j}؄>TË:"& 3G@`PJLfa`$ !Qz'!<›"08ܔ0H 1j@ g{g"9`],>$7͖@@x*Wa"4:\`:nv&~dYZu)1uJ2y:K NMOv nV=go8JJK:/&b\X>H'7~~ "ih9K2@@ӂF8O2` 1@(=?BjԨ= *(99O reEɃ@zGLU2e @ԨQcjd]2 0. SU;D25jԜJ2@@ӂ:H@E: s׍S1 Du @Q6 ((99O 2]Ed_ar l e @Q6 $(9 9O |a2~t4?r(Q D9e 2М3Su铚@zGMQ-&hbejx&QF(ѫ%&L:XVIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/figures/synchronize.png0000644000000000000000000016766411534217015021522 0ustar00rootrootPNG  IHDRO+/ pHYs+fIDATxtWր $@; 5n:ޛ% {ﶊ$ɽ^Mold73d`t3g,ɒF|S'5|W}i^2w:Nt@L#r3^N)t:ԙ]~۴Oc=g|@̜xw.{f ~z;LDwfAw>Y]~w;M); t!p.B{|ԟ,G+jVkZl}|r7w'h/ۖ,ϟu.Z|ѢÄAP:LFcwl` n}cG>嵇b3ĤWS쑧'3k0{)cRĤI3I;~$.X| '2RutbiSL.Y'58#AhIqфL)f08Hq-b .Iݘ]1;i;;i6yy蔏R6F&LZJ2S-%, MX(4aapعҘ9Ҙـ$}-Yb{bŻbL@|G!RTL)ʧO DO&GM􋚀|7ro8߈q>c}"DFz AAaoz{@B_u }5A9I9_vy!E}{ iگ_7+߮%OgL' aܓ!); ԣ 枝,WXzwkॊË$}YspA<9x ̫4.!Ÿ4qsyp y b:0]f0p6=)F1Fd4fw$Z?rX<N>"lHM9SUPP!)B\ļ^wyI (yf#ًD/2hⵀ>  X#zY Xf~Yjxt1cԽGwsOB ==z{",^@o U>}=/Zxtz嫈~W^,Xyb xj@kuk7l|76`](Ghg8 !=æx˦O5?@@ѳ?@K"lb V+J`D@@P\(HP"ibD⠘%Ҙ%x].G˘+bac"(88feZ_L,\Ddy8%egKj?\EbOFe-EL퍘q@=p+p+6}l(T ʤeJ !$@fVD=_ Aje*~x0iM^?ΣzgbaS;=hJc'QUÑl,8(n/9f^r46Lb'ٟ$eYrYDs|Re$ $2IQt"C6&ل*q.0*Qd?G0DqL&qY6J:8y_١L߮H*O!2y]Dĕ2򰄥a Cj;/(f.WMfa/D)V0j2=pGpă&kDMBNw&j"}ّxE{8NjjbԤ5 /j { QNW1 -4DPPLYЂAN:{bA;rջ%x`KkvueZP^(Ls[PZf'2vqN봓a'p83v2F8vMPvd'njA$M0v:Ne%(,l'^&bǥO?q2>! %0Χ}eZ0_q"4 _" _IR` |99 Ð{ H=9H9rd$Y1*(#%, dnP P^#RՄ2!j2BCM{%X^2`5  ~DM/9J5c/m eֿ-e'ݭ`Pҧ+[Mz`2ҴQ Qxv `*|b "F% ȷ5#(4rƎBEm'L/(na Nxv"Dy"vŽPRmтd/|̎ hA0Ҕ Ў /v:NAnH@P؎ #(5'V( %""%tlw۾@P" "(;QGP(G GZ/iAYF"(L(DC)T%QP(EIe JiN"SaۉˍSvm'HP [M ؉-5y@agQgȳTY&yV=kĞug#fS4"?֊aK== ==2R/,:y<)Xb.e'(? >!vVI8$)/Qp%,<"jVev b6WՔ,xd1*ֆjW2 32Nqs!bz__i ϧO+8,3Nw;qY(٦H8*y]d2ղ0"N,JhS@ \%DJHJad5x Rӝ,CpW N&]BeJM/Bȁ&wį+`|U3&W);NXA-v3t~^!Z*|"$(ONk7OXv(:DI^@vG;vf~>a'(xiOlc'6vBhN"(]tvՌ#((BL-( ^͑GAb(,=a9RWge,[I^ ((|҄ AyQ!Y1%( IH("AjBLxG)reT2A %KP`\dGP,X%^ sށ/;Yy6QQ \?gn|n*mnǺܜ,OOQ=2^{=_AT|}>9B*%XX^+++w/w̯p*@8pPSc* 0<Z^O9YΥbS"0'd1.1rs92H/Y4i ! RoI (ePz (up65 $@z0OvF a )Cd`&Ap <j<5hZMwj^Ċ*4a W;Sk석n'A1EX/^vo ND{EE(:OGEOAIDs섥)->Qvqv!(tNAq gyvu8 N'6^MۉJW3 -(h (`Am(lBP!Aet LDA)i% ,MAЂ/NP|D(,aɊr)UFI"(DPV҂׉JD;yv{~@ay@aY`a6Dzq}+.$@1P)-3]| wc{ݦUNVNVYQ@!u$m/ {sȜ} )rl졻|!iW2 ,sJl9 +܊*=n.8q5N %#5euziz&hA\:z=9eV\i (QGgG(#(0~9}ֻs=:yzɾ:ղ$̝ʬrJQΥNɇ@,ɮLZ;`'qsPq2K DK"SPG%!j"%U%Cj"uDj B&NX :!;&j*&XMĂ؉ώڒ;FwHWKw|P5ĂmFv&N·Cxt`Ϙ\PىP~c',Gf'h (c£N^wjIO^x*=n$#(, *@;a{3>:z9ʛ tv L P&{OEv҄`xA@*B9D 'zK؎B)vEJQVH ImMʴMJ]r&NNaZSY'9$g9d9d#RRs;0׃oX/(IJtP]>t|ʕiWYW~gYgEf}V0Qx?[{c1feK7=fz.+O|~dodJNF/L`;A7g'py,?L']g }083LZ!ZX^WV 㣳 7nD_) !:'p~j[,n2tFqfNHzt !Dx .FaSXjEcHԥnY&2;`'I@4JMjVÆ5q Fj 􃨉KVd'}$}{ٓlKSjbƷQb'>/0jB0ȨIvbvHHP@y:C P C'>N#(tA '|fىCxQ$B4%( Y;Cx gv"V)@U Fď+(B95(!S}+(فKPDlAQJ1/C4E-(,GQ2b9s&'rGLR^bWd'*LȾe0&NJPbU][Cwo ٵ%xw] \ 7jYdH-[Kj@MjMW޳<ғ>G~yafy_Ly.R≮0Z3Y/^<ù;)0惴;Gt@]g{hrKMc=ϻ7IMnoڨE~R5]+6+@P\$, JeO'$d̀kb(ET: Ԁ)Ky[~(^҂BK$@$@MM\P ,_M8J{#$z,5^b^Ԅ(5]M/JDĬi;1Bvh-@1w^w'Ew~g'ͨ>8GP0MO"h&w Oxv?@KM; a ;\8 Gu"(JNT-(Z֌~E l:f 3 x@W{ǟ((2GCPHqX~(JShAYX*0")+$X!UA1b'vV. X|O+Jtu["l\Ýዦ0ׯR sdٓL3I4gRм yOϟ3B \\i<,sbL`B q &(LZ0!byNϝ?gћC@zb'T}E`J?>˛f6x1\9~$u"*ꂫ#`u'z.,sl$ Σ{D=Ϋ2=Nnd4Ƿ4>4xI/nnTwan][GrxszuQ oZqteA^-xWF+o?+}0Ì]ZOPijROC+\:x;x=nmAVs˄OhAqN61N`lTmCxvV-(E-(Q(A! QԎ(FDy%(C;G:C'h[0=efs(A`Ĕ,!(%+ eRe'R`"(NTY{X aRO2Osy[C Ja}5>MM |&T{)mLfz}4磙~f͐.hFآQKf(P.tje.]~.:ܚ|Z˧.\6CtF3ϐ.!Z<LEE3lLg멶,(cr);8v屌NpګCfI:ڎ`';eydޛG3_ޛt(o8vRaIl¹IK `xyGN` I lr ) @Wvr7dO]v'8m' ")(m'r>j;Q*v( vR\C`8T@C{2d}T2B6H뼃'l5jjI$RdOĨf9j j"5yٙFM8Hz:{:z5 fIaNttvŒNԩOP4 5Nƚ"(t~Gp p:Gdv7j'^ƭ'n'lZ'^' se'|A.@ynkEhmk ؉{gS;ש,Ow37-(p AAsXё Y7p,J8pru GAAՂ"g %(xT HS$HMhGQК(,Au&C59g2;-꼠䎽/R2eYA*{_k|y- }T~+V#V[;/|smaj Otdz5Ig'n0WnnԺus/Z5|UW͏wzo@_5zc_ɨ6X3&jr(um|p IڀCAb@eN`$Ix Na(|@Y󧠝vR}oQJIɣ,t*WmvR~m]ى +T&vBEGvre'pkIT$!;FvZ\ B/GPIq8jZ65yW&FM $thr,>a:P-`Q; Yd@;Mg㨉FelC/N쳲mM L8ñЂN c''6w'ߡ[(B'RvALGS̨"(NL(Ga DagyZ,AcE>'HP< Q)PUp(" AAA&TEvEAdcn5." gZѺuם?yqxh=fZ|M{"6>Ʊ .~M\W/Jm1m7a8bq.c.=q{V$YYն-cz^5{'a{vG44vkT.֟g's`;0 qzt+F]#|d'G2-۽/|}<8H$o'<;EN aN-/7NpjjA:Q9GIPNh& TF\ѨYbNn7nB3؉ѧIQu^W$v2;N*;K&FN/x 3}MGhFMFy&V/Q P OMܤ#njVd'XMqHgI}LgYSZP(#ϦQOm<;ic}d>OEtTȎ)(͵FP{!NtOPȲ' gӨ> F~I7Rҙޕ,Yҍ (DP4e D!M4(AAE6;(qD\!CPa iQ(ȉ#A;B BV *F(H,Sk [PP u[SFo Cx^O6/z};[; tJ}wAEYNo]>@n7/r?@ ?(R)LJ$,>?iDvdd{px{aGytضoSܚxjki3Mqfk&4Bub[m')o:=vّGxiCyv2*e'dI*[e} ׫^#xd'0Oާ9Sc=/s/+T\gq|GC*^9X;qI:Vfך2);y bH8Ibb'v-&L"`'Z\Dm'vL>w .wE~A7'PvҀW:UATwmpU,L)N$pҔP[ 50?=m:dByV^;-e']lox%V ;1B&a'0XPjV訐m(C J؛ۉ d =۟x?~ d5NBdX d9vȯ>g-@2Gĺ d3:әhFPNhAa5^A׬ 0T"Ed'yEA!(sI8 Q4EbG!"6e,28'.gtK/:: V Tef?ds RٻU5) hL1ÒX48N8p2T/TX⩰$,90ŒOv4#f8o{$sM4I`~$! 0bFc'z; A;]}lL/ʼno'DP\t v;؉6Ap}g0m'#[NZ8n;jsNH]v6̍A;Zcu?&N4 PMȪ>鮭\Ntf ƭjYqf`)pk;Cՠ@;(@w@qoy!A*g6NeyEPق"(,AaEP8ղJv%_P$LESZbʆв:aZ T?ʮ\"ʁz "]ȫo MDM&UFGDbCJCJJE0P bB\ QWa*e2E@TH2"^bgm|ؘűo);@ap;/Teuwŭ쎼3`')0uifUn 06گwIdyy!7BsGMް(nIBc0(r[PÆa1K,N-d𰯴.{U7 @iE wLJuZi˨I!;viȀxAqhcPI2Qfa^ ؜Wi/ѭ&-胐XMp IW;@t ldSM|xv=#TD0j'T~*|> WP4Ew6!;  pDI-ڼ:dd[QfNX"(!C4 P;3?F~ 'EiebZG̸RBtv JWSWN [P(M 6 5h4.@["As( J (r~Eč GQ#(XS$P 2$"[|긍/X<`Ř%Ca,&-1d2bj,[Em`a4̎oAjFfԠ53x![?~ĆFl0#7Mih̘͓lb3?l4z&Z5G?ba+ ]1zQ]S\ٲVU e (;ۿi'Gr'$dm_Iȋ5>/ey;B $)OL azr7![-ՠFu7bocn1(9fЉ\4̢(nYLM?5zyע?5: ![!Z}YHQ$F{@bGWs@3{8!j]NP6Z^ٚx5qS%C9j5q@vWŠ9v.5&N49>wNAaw@ F7A %(v";Q KM\CT Jn;i M6`q ,@iY'wl?:1Eڟ;]h5xLkXՌ+ZPzp7 Q^E5(0MۀGP@ep'(3% =&"P  D+(rXE:H"A!(,'"QNȂB&,dclrjr="&?P[CD|Ǧ cXvRe'?ob!v;3șl|ckQVU  h BKH:,QKvju0ՎWjC,L5WNE9"&@jҜ2_,uZ2>>4hVB9=̂5j5.hA/m\eWs`bZĞdUξmHMAMQ'C$EÆ5HMFy^,5yr0jB` &1HM]:vF tN4Nx.Az #(RAH:\Aă RBdȶ<'NhGVALh`L a;G?^OrRAkHe Gx*+2 QX?wىh& e>Z҂EAcGb|XDHhM!JT-B*cԺMVQ(WհYX+ĺ`="v}H손؍qad'lPmL#:y.Y`ž rky6\ -bSv59@Y6DJvb(}U%gRФvB&hv&HMupX4o- %(dⅣ&HMd5hבq͞#BjbV\kĞk/X#:Z5&>ltUϦ1A ,Q8w]_s мa -(Pw}O4(O"O;Ѩ>a' Ptt(DX .( PD-(dgy\IESPH4EP}P ( Y&DmQxhyP@$PDӠb$(KI1 JȗIiGAZPG!5_a.Q.#.`L/2STB>|j9 qYr"%ԼOR(@DN'L=sLsDq0ePKX@G u4PHlG@M 1#/S84Ka/KMh0[M:Sjt B5a선gcxL܄\%}3kDPwv=·b$-;c'Oda4)( NMN8c7!W"YvYvB GnDPzh YQ(/Y|<589KYr.OrpPa)*~"hB֑xB8LxC28 ;=@L.evEVy HƨuI/Y08v$fXFSj9TO(栟P~aülJME} 9Ut#jvµ%}4NX4i'ͰSzhNt#w?5}w-ܔ ?p"Dl v+##|D-(m/ mD(ShN_UtR+N";e+( =;[oSeUW3wFPMAQ|"KPPeZPfS>|A*Q9 "(rAAY (2H(AY.!)*˳ kXpZPX-2i{T蔝r*'NO[ e'_<;9$+bLPYQ8>DB,0!4d0U4Y8dԜ9Q!`-`&2قbĤSĢ%9}LȌdNۋ٣LݣĂ` %O$llNF'oa9:ySt"D$W/ x R%A:HM&a\/64CW'5*RUups{Bu 4[#5c'_x- &V~oH;a J=DwE0w_В;£?eEr"(2jFb|:G{{{k e'OX9DAq `ggc^Ff?£a'DJ׻ $(WPdŕA]eM9DEޯZfcG8KGB-d,0](os%P2 P2#((TE,EAYL *C ABk %(8"g DPpEP"(L ZPfyƕFßvѤK ;A싅8:z~%@LC4@l86ݔn8uCq=~E~E~%dT6{0).;!Lbkt(M@,?lHBևd2Yj *YJY1",\dYhI> ]aP̂9"h (aCP~G2"(!c=@ls% QGCX='%8<"(\AVYBGY %(Auh ~#(R!'iA>=O IDPƗ I o'u'l;99s%(R{Po* 0SȓRWNH'OA+ }ЭpOL BN[LEC(bJbJ%2&Bl|NAZ/KXu5a1BVƯ Aį_GX48viH,, . ]0T@/U̕(`>g`|f@;99 5A-,=B3=%%TMWjJ?=B&HMHa=GMK(5RDMe'jGx7a'm m4>aa ( ^DQb'\PK6:CDSPx-#(z6m -&߉X~E]}"a`A՟c'/q/hSOh-(^O'vDb'DP.S2 J/-B1ve#Aq6ΓAG!)fcMAKGSF8 #(4HPe*ыI4/(8"%(Q(A";j!AYO;Fv,w"قrT%] P Jh8J ,;R&#pvEF^d i J%zA743 M(&zT4JIUAa1zƯ[y>TƓ^z](#ӸQԺ"\1.d֥ଦp!8bE UͣP(xL*!`2" Ƈ# kI V 2o)~SN{[ >j @/*8TRj^٨U9kfM cr Ux1xJZqӛssxU! p$G9wY;. $+JDaGa'PTU\]\M}KkPGJW6PO FZT& KԳtVU#h%KQ&^B4B&,x]X(Y+[lb0۱:s.:MCSMtZOx H2vIQ󐍼OPު~Uws'^//[ҵ/"eG+,1H6el5\|V`h9ڶVk}_T*%=b1{y`Tu˫*4o 'Nu'v/X{̻%omΫ>Okmͽw`FXdtN?а0+|na/M~VbuƘX$RZY␒mi,ҳP;ŸA\,~p^&O=e5!o!{pƣr禀W"#ܾ;6j'|{<j'ŭ+W9Εux:QW&L Xt{҂+ވ޵ ꌼGĝoymCujF">* oYp,zUQlf󪵾K^;hh'$_y! G+N=W^Ύ55qٲvPːjzyAP}l[Yye| }}{GJ9ލ7S\ݝ)W_N(Z$çi'p.Z1YoW)lQȃ6 );0VΎ"P=A#rV˾=PtyK36lEYvdt'n!]S] {9,Sv lsvII 3F/_{ƽwV)DN*k7B}yAAA&5!!!_OOOJ. 蟛 5(P$>:!5̣V%;{eWܸ(R&טNxv =(M]8}.gn-M %CF(q'2]sO/ue(5J VSS*4Ujl- 7g  “>#a 8Զ줢&?t蝂>:S]~SmjTpӣ5yA}**KDZt ի@222bCC~ ><}9a`Q ~o?2}Jږ@Y>H4"Y/Amk[cP UPjxH3|2a ,y+TФ6a'y#gtԽwn-0zXlmUF +^Bv;Y1+;;m;R%(HԤˠ);JF*cS 9ػ;79Īv%N>;!'D3JJ|Hms??c`m4X/0ƎA6dN!LU JQmb&k7S2Gʨ4ciQI<4觺=/;XH*Ԛ Ԡ-FnmOnGqZ' k;R* *od' ,Sz v &gIH˭mWFmCFYI[z2tOd@c`5†i>@/KCC** gxT!畯>?o̽3:UqwK[{vZZ&R :lXe{\OqigBZ׫/e{,[U+yz9]6ZUNںi'd'[*&>pNk7mvK)jge'dGmn~.Jw;ǂ @' .R4M5x!W#?*մ+WuհG ﶧ 3p@JJ Q^R~݊6wRExD]oV|";|%誵}í:}~)Hgv`'ӵr..$k&BE[Hgb'00$92y#ß8Uxlt6mk+koGLcQʚʒLQﮯۭeUqcJDZ 6|ՠAҀ]?d׬-F׻lYÏV|Ϯdٗ˿v*9~$'@=v&;`'NpY fpS@ȶ>o]QʫQ$?MxULAԄ]oC@dvit쀎̕#]vh^AԪDZ ֠ #"".{IR}0699Q (_'jM۠u[j[˿Ȋ.|W%ო.vsRx"4޻Wn͜L vҦ$m'qχPE煶3sE>@PbHvE3^b'd򠶷QƮ0e|*‡|[ U{ܞ5@Ԅ Y49Y7ɢ'8hor}TL9ɁCbCUl;}q|vc) VZh;?{(j+Ts6ǶQP.Y 6ݞ(J:YYwmlxT>)45FPxSi@e NLYyAu(~^{I{͘d?FNTN4NC:F:/B 壈uS{1+~l> u>~]2|ݞmVxILҢgv_?nNRvsfu>;GkS5kd't(j #+kqx kW.DG0~>j<8jggmRkc+uYVN섭+'gY-<: v\ԝd FbvBRpBsO`n?$j^Cvl[]jK5y dv }o NǺN:ONMDN:ֲ̎гSm5o=N>?Qs'$Tؙic*>4+U>={ vpi'm]d< KNvj#y_ mN4<}c; 1U#&ѻSW QJDZ]y۳Z[vҲcM#םW;ў%dYvJb vb$uTU?V& pG>I[5 Q~t8̿}ӝu=]JQZI#j6 ls#FQwۥ8csPJܓ{yڳ:[MB{H汦G e'V>Zq#ΊBuVҧѺ߫ae$VWljDq6p'O݄M覩qa]S 6G-okCE?I+THr|eIɮTEp+QmeD`^D"iIX,"D2ĪyNOw?̙栗s:}Eҙxܝdw+G{db wqNeooݮBs~ Nʶ܏p ~Cכ^(/ErYˊW~k<|/?~NwH뱛T;ENR;զSkXnNX9O>9aɡE'UWEն_ k+o퓢q>}UJ~ړye=ҫxv۪Q[PiZpYϽ_Sw-0#1kZ)uҡ$v2tygVvʴc0/_OWc- ӐebNĒ'IJ7RMZ5!hǗ~32뫲>9aE6nC?i$*׋':gGƶ-%Ey_> nt|3o͜q鴼JoM9w{]U>wHIb'|u$$$$$$$v$a|A6{5N>Q|Ԏ$LCΊ]N^{o\Mq;|?Ԏ$LCĂNg؉בڑ;I'htgN\uM$$$$$$$v$aؽ뷎Ԏt5hLgHzBd'_o|S;y I\PY4V!!!!!!!!/ ;YqgSbYbdGHI$(6 @;I$ӉR#vN^":;@$QI/vrNA;c'!,Wa'褝ԗl3K6|vN6~!N/۴i :e'qd&ΦհtNI'5$Rtj:S$$$є}W3KgdI%D줷ʨF4P4s4Zm9h@w7؉a'#L$Y>g؉P/$ٙ8i3e'WnM o+NN*yId'[M:>ddgfrdGtrUj&wlHN _x\mQj'Yd碩'؉P(m^3DɕO W-|[&bIED 76nQrѸm{zo:@4O+x0nRo{O꾁vmJQN'N\;DByEyH'J)&N;$1a+‹_2`:F&s:&vYa'K׋I'v8jN;?G~T=ŗZqMN?,%0A4Syd >Pp_E|jzF}v2/mNs I^5댝QӲV(qo$p*o'Iy;!zw *v"0(pez*,R2LU ɿ;O׍; mV"N>dgOp++7WVemvJU%%FؕJ(Z H:Qf'yc'mx$v9Cvreb'!;@@&!Dߊsas c=a'-NI|v (|edɺ/,]NR;YQvrƶ%{[^@Ճ<"(Y㕋X*b5:o$Y-$3h쌸k/?Ļ!9iݢ !N,ҋGɃM*̩*=VhA\KS-%qDGw{BN`'m 1&v"=v0o'IH,;QԿ۰8vNш|ue&Q"dKd[.6`uIlfDg\íZ0N+#`Ԟ(>i(d(;zc'F7Q%s}v);Ŵ^: ƸVZMsʖ{IEmqH:ԟӒW5^@NƜO9%섘5<ȱ\%4{QsI3ᖤ,l9$ Ta'؉95,LGvk b'K߯+j?ޒkoqXꛟ7W֙׵$_iǢג&(9A4SqfxE퉛\*^oA=o#;y_{-'t;NMuK YΎ!fסl]s߾iڟ ۉ=T3P2H|D?#"Dܴ6c'kK $v~3v"di\e] ;1[CV&5"ܗSש8NbXՄy~Hiƍ-ЮaNd>?5[9J﮵5̶%ưsVotQ#^@NƜp?E턜ɪ؄a'BqыJ[k>ˉ<gGNqiVl#Bb' ◮T&vN"Av+jkVo[I;}j6X0Sit>Z,0$PPsjDՃS2SBw}vrBbc?1O5؉ݹ1vbE--;qIc'D鐓f']csTN" DLq32bˉYcҳX>]\,xxf3D5g=\h;(dՑ_Gvtݗ ;y`P(=X~Wlm;9fQAj&=UsNxvb:+xAd}Wb$P%! Ɋ,g{طQjEp-r1-K-d`Ȩ?9UDm'D3r;aw/hjv2}"Q̊YKVmҳ3JŸ8WS`v"C~ƣ"G3/';vtq2&Y=Jx=C(uUO`%OUO\oxGv !'cNc'h ݛP џ6$rC=-#ß[NWZ*Ew0kĊmO턡A;ֲ(S; /ڑAV V>aZ]N;)C6 'Vs!'*$p=Z>3~b<[-o6Qx_}@4SQE=H9#`dI]JNob;uN_}_[kE@1m'EأmvRC{줒w0|?~1|y;)4pv;mNN*y>rK5_ju_UGvD_b5(m{{t;qƮ1hj'y`'nr`'c'5YA~cou}Xg<044$v1 5V[;t;;;/vUNu]&q2dҤIO?ɓ'ojDE3EcGMNf'tT ;YsWkDɺ4ߌƓT;L0A|ʨF4P4s4ZmUv"aNd?ā3voD ?HHHH)H ND^Qb't vX,]a'm?vɺ'i:5jϯ(|uYsv򀈚D .3iÎoc3(jAT;|w~HMq :b'돝z0|mنvr-,m9uvb5W5;yxG6|xc`'茝l8v__$kl5A(m9 ;@Go+6늍L$M[;a'ob?`LɫD^t;ټkb%v"qqW/㹛+ +o\RFlf'WMڼ{]IVe$w)wD_'>!G9|9RЕvq蔐$j'\{l(m;}eWi'Ǯ^ҿor>v#a'r&b?3nb! |eܸqƴ 0yߩm(mWƴE̦n&NݘsYs2N?y8MټӴ4v :a';O{ɔ-QvrڍyMӁ;@'dיӶuWb'_gp"=G;}ŒEmm{ {'v \ߞ}{Žѿ`'舝9{av9$׿;p(O];@d BJn;@$Nn ~NlMpmL}*j'.߱4)vrEӁKWa'^ͻV6I '6NN_[^i]([0vw'i'gntN%|b}kWvmNb._Iޮth ;P$`qUu*΢9(W֜{qc'/\"}?N~Dc/86x@e8,,r5-6;`ρYvr7~|H?=;Px "%Bfӌ!NقᲓ./{0I?{Pɹ+b;5?D7|D[ق᳓_Ҿgtv+4M#J7{$3 Vp>,OW~YqxqD^;Њ43LQOAFBsg35I2dİC"8NN|c鑓y:zvU;_#a35x1NbM`QFvkBقavr՟?G~O䕣'_9c ;y9iD߾76e=G<,2~)ˎm'i" B% 9L9;#vN._ف#?;p4WɅo,;z2OL;y=m'#ˢ{?XaϦ6`?e'.W#Sgjo%i׮]~7͛7 ɑeyvKξy`uشf5} -j9G'Ǭ>o}7 WEв8%an8X֖CKqhT;ysѓ+Zq4Jvßbg\jN 0 LNné-hL- z ߱Բ:_lCul(P!uܶyjO޼f7rUg"&-1d1$JWLYַl⁓?o^OCFE>pL3ƿ/º D4h h%v`.9xl1f';2w l1{?4xd5@cA͉՟k]uζR35[N 5y#;y@%Xѭ_U|z|ɍ6;D8,}Ώw}O>c9v4{;["2{樢dޙҫ+q=&7|1Fv.608-} CaEZ #*df' X59l)FQ=2s".C{zê;%dN@vrʵW_%N "v}k;`,&N>{l>;QxF؉X2ZT.TAXN I~s b+PYÓ )Q0k1gF!;72jP4>5FVhFt| DuWիKz+ϵ@5gѭĸIE]xdG Zbd!;9~C+f'kN$J'δ,Y!r:z !%/^w`oVlCݱck(c &$'VΕ#'pCT6is]U!7ʱƴ0uGxI.%2I4+Uyɲ{u D}>WqB'v$l)y@" N+鳾ّʢMv=)uL^,2V_W;UI&:׹vtj19y\r=#;Q".;)BP(Q Bvtj"TB [y3x9'ﶕNdGV9$i'xSHI:˷ם8yܹs"^ſLJbEw1:l=@1B͡3bS$[<C|a = N2H6ܢ@~&^Ez^b=sd mfqY9plkO+d,KcNR3G3KhU׽%`'\.d]\~OxSQ:}&)V0줅}v2Ziߐ6TZr48Ԙܳ<$ǽ2df v?2Uɩk76?'i'3;OG?#̊vR6MdHUس7nџPC\r;G%%i'+~~`wg;;)/*${23ZY):TTe'ӷIңQǞyrg;Pޗ[ qD[9$$|[]GLۺ303wL;Yvxļ{'eF?@vRf_6Z&llXƵ hĸqᵽ@'Nn}"%"Cw=:E'M>;Pٗ6be2{m\^S^cN;qH(vr{G9w=1vZ;)/>=q@ZhcP:p>Bd([k';03({&|Yw<:gO ;PۗͱE74ذ,z&Y<s ~<,;0QfI;Yz&xę4IMNپ E7,JBdډ (ޤ"QuLfDQ;Y2xߙȌwN9y Z\ mXbrr5+2lm-Ȍw=2=J0d;3G>a䭻a';!SpMT/:HUA}+_Gk3-!vDPI>5|vl;8v"DeZu@ vm@v?k׿ꉝ u؊y UƒU=_d8f߈xg!1%zy\=e0<`'|;پk>z|ɍ6{$x?.50:x>O呞׺ oFvP6UT1tNJ~!C]PVQ}VQ䇀9;N ]{`k:}ٳ}۷ۭ\C^+G`P߼,EmK3 L;I≮2׶Fv $xv9N)Og1U3leeS<$h'?YB 8.("1UU?E2 AŁy+ iDH W$ V; m}{ :v3g_pE߹s]vQ(jaZCR u3k5#Cx0r͜;;sg$(s`'蜝_+65MHH{1toQkRݨHֺV:6/XP ;(N`'P``'蠝PNv0v0vr'm'߁Nv:l'ssA$ `'cvrWd'v2-;;)f'HHHHc3N@Uv e'NT ~;IŶ1dtN2A$ 蠝̋t3AqNN<삝AvIdҘ] {>'7nqv2?'\v0]vEcs%{aqM׾q߄]񜥾o;ϰ;@evßbg\jNԾ.Ë:{E#H3Z 7bBlUKe1k5N鯆О؉m'N`'V;ٶc O;hѵ_m[D"-8*ReWby̩G^Cذ} NGRANMv}׾9|Љ7mnu`ԠĂP0@ݨ(Gsި6quLI&(m;;@dv=XLN>}پˎ섢$9tQ1;.b4F{ҀROJdBlyY td 1scO)x⥘ZD}Fݤ טAgojN\Yׇ:*56Ӗw? vvtj19y\r=#A;QB /9)3R`L9jaÌtZu:7iLç򻑾WnvDPGIv3!F O{.* `ɺ 5Gķod>}:;QP\|I`%Qbq;aq7ؽWfc<25ELZnhRϬOB?̚ƸlַwcǏ>s .^;w>`'`G 7'ud1oY ގ2{iR;a%c6[WGW _N4hvTV75)d%5bZDWd?[n8*իm{X]G(;y>NEOSt8qR) `1"hNpc=z7+Ϭd=-jmu3˦rn{^J]*]c !D=hvBV`'a;SEDWYFԨgY/ FY먗M.m@<郛dE/N{ XG"oRrhȦ:KTz&;oR,#Tr8'7 vRNoHVmNjonsm'j`@:Fk9=Uv NAf'?u;q%kyl N_47䞑g'v0AyT`' 勐&5MBU59CюV!h'v2l0`'[vG ;Q IJv^/U>k%+J(uyޢjAy'3~PQ져\&hH_ןx &$bɔ{컄sdɒիWqNv1;sBPNP$2v2yLI|l߁\?[7i0jœz#33qV2㲓Й^Ī@/hNݼxwLwt;43j'ֶ;LRϖd _sim7$/'wdnز#u Nvzdf>aI>#(FG]ukڹIZM&NsbN|{;Gf<;1Vpͻ5[Y=8SrcUӿX/ OӋz݊ -w6*k2.+m:hk -9HyONVf5;b.\@;i'`'a;ٴoME̲d?vo'3KVxEk1'P݃- \H ֍0Uػǐ*.o-vf//-}=2dԔ)̶e؉m'lSnw;-I'(,󑡎B{۵`zv _i;qq؊GwP.porI3p@`'|;y>y3F4-?p|f/d'v ;Uٴs vNH0'pfaj8.Wە!Fvl&G1iLrIQ ZץS/U:`-gBUlj<e}~<B:-&Xq6Hm[FהXxJ= ^wNvSDD NRWdn_nN7Mk-ae.6CTWZ+aEs \Na̙5f s.hOO^g5EY7Ǚ 5(d'A`'A;yCƂ8d(]M08/)QPШ)p/H]: U#)̑`'\;g ذ,(HXd?MNmtĂb, Nc'`'W@*u=il *}N`'`{qFNj$Ij'ֶ;LMg{Ī'_ uH: sO؉Nv2˴K}fG:$WXyڤzݪ+Zmq!뗆 c9-G;)n'Ίm'2yo'WQU;Om(;~Pk鑫ːī[k4CfxEgKO=aZN0nη[׳Xh :gbN|줠<ʌ |-r;e_G}{%ώ7@@tZX2#wױ,؉:&Dze )'Smo <ʰNQl-O#C(k.;iYf-6;14T nRm f=a'hΣMvbD-QJ2Y g2YI]bd;NnJ/vI/U>k _1ljlUw.ͤ*ߡ7ȁE\XN;NcҼk*+'65ٗ;j=YϪ<+/nn-mXֈgȠBO=a7'rWQcs]m3L qT]Zu=K֠x&WN/N\#;-ND/mG=/2.ozQ`U̵sr+ݣ(HV޺FC6hs&Lr !:vR.Yoj%bDq2vBjJ f[;0^trbk%RkQ.G]vى#Cz"L 0? d hh VNMN76vRbnvǰNNVx^ߵh$_QOWvD|t8P0oGJ#;IS_N>)\z)K}a]oYJ_M˕̼E[P3Qzuu_LڢOQ/p=yF̕h oC4SJ?`UZv"M;>~N{.J1(3 Fؗ8Aczz8=ڤUeNmrfUp=krBUxE3] 'Dۉ;=fWPbg j]ix#UfN u 6W0Gv0v򎇦#)BPvTlőQ.2I9;yh `'HPO1dvb;郝v2>J0;O u=Tl *} ;;]l'Mj븨FN2v2g'Nmw4꥞q,cV] %RFxV'gO0϶&x1N8v2۴B+YPyG:ŨVRyٮ7-I`%n 4Ca;(F;iNEPM./l|H^R7\?(kE[[v8V525vOImkQR|v\Y֪'LG %+T_{ۛvxwZI;A;dN/;w}18)~ɷr{Ũk*_G}gއcKvQlTIݢ^w(l&;)v7N|~U1(ϸ ;!5z -vrE2մNQlD#cvߵj.;sпK"=ݴlT]GporI3pŷ;`'E䈰9]j'Mt|wG` -i1>zGmҪ2^W`rz93Ԫ|59!!r/97(ad3K(UCc܍  ΊEZj@MNv$dib'O}QdtƦ΍zg)rC΅ fN u 6W0Gv0,|2D$d3y2I%vΧT>J蠝L[<=?(2پtN&v e'Oͻvߚv{NNj%ܺ]OINLP&o3g9T~L `nV\T#`'0Lv2AN;aҨzb^L==[3O8I0:Yf\>p?ۚ xHiDbI{ШVUyjAE8Q*Umqꗆ c9-Gh''+vb,w*ɩ=%+](dԬ֢` id&MBi]z|vO<.DYf{%kMij0'vx Tm'D|NIJUe{%{[Tg NuƮ5J%P(& *VOFA]7-eѬ$_q_u@<3.CNHM<>l  e,;J~>2Ql]VFA]yvBfLu8 nRm fa'0\v2iuێ޷Po&;Q;Q3WLf0pfaj8.Wە!FvB;ygn'.d'r trjF r_ﰳ>*R.c0y ]fxF^ɰ6QHMyͮG#؉kJ<ƞZ; @Uv t(+yo{9594QMUCyV5+lį'DiƤ(g!'fg"D5 Ii&P$ԩy\A}qH]: U#)̑@vi+v"c ̸h '-ޕ؋d7N|v2#zbwb RO]$۹uCJcND]Нv-Y)̭j;)e'IN;aҨz^L==[gf4LFx'WgO0϶&xQq;"a<WhŨ˪VRyjA-ގwW8iZ$Iwnq vbɻ}v$ى6i k&6dw㳾jO*Kj~n-XȘDO=1 ZMzRm'/'oU%Y zV[}BkGO<;s+o'`'n;ANAaND/ucG=/2.;xLэuw&6dclQLĭ'v-<_{/8JU <2dԔ)̶7pId'n'ܣZTG~/Uv g=E\⺟S/El &NJm-v8d$bwҥvҴmBvb&;("Dd ~lx0ܡl[29K3 S ytڮ 1Xv$+vN[v욛Pz)K}a]oYJ'jc@D ]dI=zds0y/'8iyD3fxd5%?RcONI"((# ywcxu9594QMZUCV 5;p'vsosL̈́Co(3c0fg"D5 Ii&؉j'v2ԹX|؈ְ4 k@Ƕ t`$91섴HPӣNdT=t4Yqzf+v2u+Nnsv L;3 :i'N@\?[7i0zdN;]c'MFND2kvI^2fP-d=&H: sO1f'I%GN汓W%ׇՂy= 4Da;7.F;!dm'Ɗy*7UV6Om$/XrGAYE'וf^^ qkNdH#k0 mzWOyQ"v;n]& `IoVzC GO<s+o'ƴLdNpK&{%{[v/7s7Q`6Qpi9VG1Qjn׎wut=C^RGdVj ze )'Smo cN+$줓{[+Oj.;ag~/\m{WNC9nˋm1[A879ݤI{ Na'ISօvҴm'Bvb&;gQ_|b;Q_U.Kf0pfaj8.Wە!FvcN&DGl;etv!m'˛Ġ2B7,Wv]i"*_NL\^}u[bbm Vh o+D4SJ?`UZo`,Ʉv =:ĠNQ{ٱ.7fs'9@j>brUp=krE ']Ywut=#;"3v"nY=$3w5,4k$8+i%QNN5a; e'iOXıoܧPcH]: U#)̑ƲLKdN=;D QbȠ23؉N=+3vv;ٰtd;\kusv> `'edN"(PA/YԿcS[ t5q]tX0iK=A@==[L2GuPhVr57/To'5)9<鶓W%ׇ򮳃%bXSh猃.Z/ rZ< tNbAg'y)U1Om$/kֳ/wUT{[YT^n-XֈgKO=aNmUŢr==Q( Ee'9Ksv'NNDϦtK^}=tэug)i9VGc>6=ͤQ W+8 KS*O0@;IsRv=EG]ed]hbVG{y\A5j#buE nRm f]a'9;yt#N^8>;6ى+>\WbۉrY293 S ytڮ 1mxfŦ\>|j7G r[%ڳ#ʦƃ yQ)`'9K%a u6'H=FהXxJ= ^w\NO+y!{9594Q:U늩CVIvAhU9%3'v"ZCo'3*4k$8+i%QNN5N$俌Y>c} ='͜@бmIa`L:c'{tnƊ02 Ș10v2/N Nq;`';y v J?u=l *}e;wv$ X/Yտ S[% n'3;IRډFS(j ӳ_K H" sO# i'l~N`Gޑ^D1UUuv֭*CȁE\XN;Nl'ҦyGlH^J׬g_?(dݭԬ\tcX#!# Y#HYXj%6ye )'Smo N~vR+i'ܣع׌UM=ZNoŷ"rÿ"vR䆸>ZU GporI3pwK`'L;Oe՛:>jQVs> WB7Q@e`:ipN ΊEZj@M' ؙZ!4 Otг *Ёt$cNdL+"#,)v~9h1]`'OO`'%Ksv> `'08gTL ``\T#`'y;家k&zHOӳ5`KUJ$=O.T_`8ǟmM<9 -ɯ;"v2Xhy #HZ|ժ*:;\".q-뗆 c9-Gf'/ AXPxvb,rQeFRR;rGAYܴ'똕fۮ׭<+ i'LBp|a8n&u(IJZD?zp_~;A_}_EDPZN,1wK1we\nwr|u Vzi9VGY:8܇F!4荝X$ ]ZCǎMA\Ry|?=ZY2PlK^VAKlCܝɻtmporI3p71@vگ<;iZzt_N)SOր-[a# FG<ܓ+3s'g[s<(ƺHdBTّND1{Tuv ~靺8iZ$Iwnq vbzXPDg'"y(aUFOm$/kֳ/w^{nYYjV^.:zZıϐ{$8fU3LeJcoo]/ܾc'9KN}TPZ^({_e\nwr/|u V̻p馹i9VGUEEc'nBTF@o@MA\Ry|?=;Nײtrbk!S}?(G]v |fZm? Gl : &NJm-vv2''iΣMv%Z9;izY$kSb8P0oGJ#; e'OZ/vI/U>k _kyy!4=+;iԊ<۱ { *Ёtb;ٹCD"䕣>*Dqь $')f'L]Nձ,;yOwf;@gdf'ߗv>AvN2Avɻ}g濻w . 'Tsv> FĂ"dűL~g1er?t4y+dJs;NXv2E_ݓOw& X0iK=pB|R(2`tij=L>37}572`v_=S^HwL;,Ցw-Qj%wD=׳SoG?L⏝tLjƲ^l'Iv_l Wg;v2_QEߙ´trbk!S}?l(G]vى'WvK&=b { Ymtjc'%f6o ;N~5C{?0{O^.;iZ=x!;hnHQEtd s g2YI]bd;1C-'3v{ߟf'iI}Θ}\oYJM)1Lsxe'y+O*OE ͇; "=&if32vO)Vkqk'H;Y;t[('5{bzLN*)a1E=:BmҪ2̨CVɹg;nu'3; "D\CibTE̜(d'AƲ$Ib''N"|b|绳vfh@4_AUŏӃASBбmIa`L;!d݉8g A sG3<*_ Of;)j'HO~b|g0v?`dG.;7{Z0vɮn'g>6wq.(sa'RKsv> `'|||8;wt笑)j*>;ȰۉF!Iӳ5`/ysNd$gyrzfn9lkn'a줰||⏈ًvbZD1xTuVP`-iU}8iZˁ$Iw< v²i m'?h<3i'"y*15&m$/kֳ/wS{.VYjV^.:z݊ 8V525vO 5pȓ$/b'FT\;!ۮXwƚ:Ei6FMͨG#؉kJ<ƞZ; r`'ɋPC ƨک.7&pz 2Iʜz]1rz9֪|59K~Pȓ~RDf#%CIBKC'm'ӂbAV$4P;#NFꄉⶓŰtNNb'aN;0d1TKpRCvnЮҧN@7T[2%qQ@ev.k&V2={bӳ5`KֵH* sO3 i'(N ?b=v2Xhy HY|}ت*:;\ 4Ca;(F; >®裉LgډjUGΓoKeמW< 3׭M+ zi'LBۉ,Hȇju?7$t|d $7@+F9'9KV$I؉蚲MP%{W[v/wx7Q`U;6dcl[ž-"'qC,/ 6ce2+-.4z -vN;^1|{۵jx'LZmɛnxwvИ nRm fa'IQ;eΣMvBU6(/>aS*%shr8P0oGJ#;IN>G]vqNҎ*к.}yP[|fQَmc@D؉c#x>;IǭnN=)0ZeI< 2vO)Vk\؉Nve0!uesu95eAͩ.S!L!S!gʇY4O 'yC훜יh ;7CǙ 5(d'A`'-\ ؙڂoܧc *ЁtXe'20vW) 9(ɋ|\I&(|lQ;@7N>fN}<nXP`'褝Ⱃ^8; U@3+]OڹuCJ`\Pvv2̽8gQyL `n\T#`';)h'l'9.u(.-ɵޙ ovR vs/:6'MkE ;{;؉e'vRWRڬ5mqfOOшvZ#@CVA՗{ڗ+/)N]_#5;b.\D:i'섲z'dEX3 Zc"0k0(upYy*E~j$?Ҕ)̶&;$I$Fkىw[k ؊ϤBnG:Xao[VWNM,0`'-I7t ;x}7cb:vlUd o,T3L-ej2Nva'nWmN؇:6_}c蹜0+ lP=uV3)&{7]yUډEPMN76vRbnNѰزyd{sى~ip7)>۫c'ˣ==;1 lNZgvyѐ;lvBd@bNsoGJ#;1g'd:+QOF,J(zeqio'|N\bꀋ,TN :^e*m'fAՓv# N҃>Nf۳0IMt8XN'h\A/0*x-Q03;N_|ePv8Ɣp6@ f)ZsĆ$YٔL yn4uV֚^uץLlImi iQi5Q :fX~PF!; : Ѕvm۶3uf͚hѢ~|b%2״AF # ̮{_\: U#)̑NgٶƳ==37}5742{gTבqڅkVd&T!3#9c\I%)HBlbp \]$K*%mclƎUsOwp`o݂Y*_w~Pb'xN'%]~D}cqGPi>? KS'׷ CP޼%w 8yqNg5cN Z(:̎M' AW#%kҋψ70kϲqBROtqWpI;_*sqm,[X LΤrܸHUsBf`6[nCLCq;%j#\3zfHl %-drfgנ(LQ#8l2vAtV.s+tHp4~Q٨,)U&fӘ \|%;yޒPv 2Lx|B}yb_k5Ce-vA P:1Ƙ_b.vbjܒv].lt"yjQMKf %q[RQ!'Kf[$+p/ : haG.uʕq:9N'%|$=PnC'FiZQ9(v-n=/B*pv9:$_TDN_t2BlQuzPٺ,l{e7A٧3;脌6CNՠX{Aa۝N\(E1쌌P/g =@YP_IzwCɜߒxͯ$f,Q;}J'4]Zy:MI'J4}vwgǧ_reQ3;StbͿCcѣxw:8{{7"1b6jMb$?Fnp=_5^2{#E* j1}K܄KF- DxI;E}*V=(2/:d AYARO?}. M﷯^~-tsdIjEiز`/\ He:< @fRgv0APN 4?9?T$&822zʕkoۿN 3tF'i:GE+;} F'}W_ՉxI޿{;wggfܺ535uՑ~t2:  /9PH\M^{5tb   _t~'R/OK$_䠃NtAAТhQ3[ Pٮ`n_O A P@'⧓jPk)Bbb: tA'{B{RNYsaP?xX1\=7'tMa|IR"uo7U^RM%ͼ0'qm\'`0A%$.U:QҀ@J%r~}dA!dtʺr+.{ %CX<3," 8b'N:I ǫs~jV|FD<ڳʩr}ЉrvT9x3T KK&w.?S9^=rV xwSq6zm;̱G\=f_6@'\`b' (\Aā5`KHUkXr[Drş<*4>]?q0SyEkfC6 Jz${~nғG[*ιG$ S2P_At C'^E@5؉5 VQ].f!ܪG㌝8c$h07)%9i }P1Θ{f[$+pW : tI+2GZ?tž/,3ժe~nW*k cUy*}v yN\R@:D*g@T. l 1ADH'dLVta%T\ة@'YyAӉ>u'E1f;i%%a`l 4aK{N\9(X4B;-uO إUת3 c{LJss^0Ce#%KFyayŻ3~`$-/*kϲe}=]N3=)S`w8ל1jk [_J) %BkVϼؗM:A otnN tb8F<[Ύ LϿϥjezZ̭t"tHTj8ғ`!!:rϙES9"ⷛ$ S2P_jA!E,"1Nޢ40tbr3v~jskPtx ­Ad%t8Ɓ,7i_J@F'֯؉>:6&Xib AA'<9!wz @qNCX {6r縍5]Gf؉rmGyʰ-1뇅j:"70}Jƫv3qF Ae벰͖3;=t򭲔?-uOMܢWWh/~Iz9f=5#AŝN\(;-v|ni0`VLJ~: HH'Uòf :E<`*kIAȋN]?;")-|':  ʸ,:)5DM'Hrw\bNNht0 0<褔߾ĎhjW$u:  h>EIM' :G]d~JR+  h4ƶ4@!cA'A-(*ͻ6k#%A' C'=^(umᮮi AA٥:y5-[[::oNN  ĆJ 5ա5-NS<16 :  (t2䠓K#ty]m >AeNdkBkkB E'tr^KfvH$&DGoN  &f餪J^Mږ cfY>iX Nllkj441F2 Nru'!c@AE:II  I)K'ҜW$^AA٠MF'F{v  DN8:AAYQ'[cI E Ԅ @@Atb;D۳S AA٦Ptrؠ(y:`G1AAYgi:)q )V3XgiMuSIB'i:٦ ݺk҉ą бћ':&)[$ͻSok3}a֞'vx<22 ]]ߘ&&xt֞xc~l⮁/MM:\8$4\f|rL79PDۣ=[ں -]kCk;V5h~lj_٘vc \sL:qۉW^pث; ߒ {ƖFDDV;f\agir~Zi5g ڮ߼2Upڭ~lxyUۊʚؚsk:5vnhJ76 Z7l nV-BwxqspotqCMw˼AԺ$Ʈ:Vյ-.=F~Kδ*;_p#putܴGK:ۃK\)s3#R&nc|=նtxٙ3g㫪WWwIvZ_oHml.h)h)hLԻwZTP񣬍ۉ[-H{'q+] &.4=`m8ޣ{oވ}OCe&[N,y§^<]qS~NhhDyC]KA}xKsl{8+*u;E3A>\3J ( t$p (mN4:(E#(P4 hjHrP`iDQ{XHμ7:J&,XE(˥ftb8(ڵqPRYL'KN,=6B'xJu$7u@!:NDs(eʦI(|Љn(Ry k,.h"@\":ɵ\XP%.4y4a%׃NdI:(gL@Y]վ#6sT~C7lj2([tJa'@MA'EЀ͢!u@ߔ^UKw;^{_տ_%d3(y,@!tOZ75D6Ƿ&vE13BI%K3Ji>ab@$2Qq43Q݇%F$v~Ggk{S8OIb5)qh6B1J̴P(G1#(+8@qbJ;t;TAQp:ѤU<(@COVIc>,|bN%N B'!|EP(ufوo:%X$B'r:t tb8h) E'qeStrVNx҉ (1r6+" @`FPRNt@Q Px:I"htҖdȰ;4W6ƏKW?sW?m^~מE($(2ZFeGSAEc&،R_dw44(;zDsfdNQ~,щ (\Sr '}HD1'FOq629B@QesjtrNNVgWi;nt(N PfNZ# ($B'=[½[A'ЉQBi%~$5‡O (t"5r3WI*:(K鄎Y>T2 PA'kj:t@YkJ{S7cf6@QQ{sZ^s_~#]e|GGzq64PRNU[NϏu/eZ.{؜5:VVXeVVdj8"Wa ߥ8 e}KHiٜ>~ow70'ڰ[?~3YhZƿޢD o^Ar 7"wc {C}>/!T޻[9]hMZK/ꋌ[/ut5P Fnx0Fz?g# Bl[l[F,UsIJb ë fH])j %$P:EƗx  dԞړQnȩ=yA] ޕSys h7:Vy5WKKՌLNʹa u奸dׅ% .k(fĿ`^Gol95LXBr᫻l/Y5`ϛs)7cMsSܤ>7ύc/DVŰ6C(7Kp_A `@P`9L rZffYfTuT2<;͍}~ԐCp3!c8N,ˎ#dxyH˞ERZ Yp!JvYaٹsVIY9Wyc8lZ\skNd-ElY=wNr@.1Ap)]S|k 캊6pF8*֊̲&jRUNLby#(dƞZuԵB2zFz{W;jww{{}=PO{-'Hkк7S{<۞kGڣu:=Ow#*|[=]:e( ĭ_җlDVIRK]pEO0Vc̸fEg3Y𩓒<3q U[d.YEK.SFVlU[+%t*E#R07f'Aw6xZ_6֢xjt4Erg DpixY{_E# ]z05F)#>$˕22`) GNh l-X<=u.r]{ޜ3efL)CfRХƴQMjDV'!Xr*,Cٯ!>yʢ=H$HfO7LE^D䪌RѪ>eW@Lt&ij܈ڙ4~z CĐ2> #HubXR` kg )c2mB aY3V-ykiBUi,T%XhɁFY}bVAb3ج66 ה^42i-(߈k}w,Y0lYԭ/^%xP XVc|;/t~MnV_e߽ol̓#?^X66Y[@[moǁhX۱D۱d۱X9Ӱ5ǀd8kot4;_Gښmm`wCxV_VSUg.&_W12W W j0 t*HiN y֝BX !J o 2b̅y3+E֔Xkli=vb`JS3.1MijP \3 ȁH }H9,ze>- wIB] ) _!;p/x6%z렦Z!6cDOJǻnYnjTb JLCԐĠ2>?/ I}`4/D闅aM%>qА" "ႅ4qm @OO"k4mB?c% ,ҚڲYU%7oJSؤ*4 N("IUpJFfu9}|Ra-SPxV>75+93/[4lbX+BϮ:9C{(m"@D,dKr+fLك@tm6p2>uN7̿q]!xqM##G|Ǐ #r7bL~Fh'ְ[57hzMW7MoZo{oJx$w9U<+|/WJI#%seδܙpq#='1ζwtuut n+! 'nUGl_w'Q9oT>M$܉UWl-y[0k dXVBy{쑢Ŏ]„:o ٟ́Li/e2=I'w'Εк: `[$:F#ÒHFZ MN ,ɝ!ƴE` k!RJg 4V*H+6Pƒ2TnDOZpFjO 5&ĄfK\dMm)=%$[1t]6!= i #1=4迧& 'IQPmXjZfIQоt, GaDbBI] 3v%Hy=8X2VXh}Osz`dHArG>Y%gm LЀOD88[6 ]dNV ]SFd!o@zz(eGۢkoBÉ\r.:y9YDi15O M)Y˩y{ˢ;- uK"}V@٪L5 $bX%ӒiIH۫ g>$t$#뷵.@@\[m:gi7̙N͙Zm\kǒ$ {Ї%H48$ )"#:>;mbа*+)-Xs kl\z~gYxXmC"0J="ɼ l`RR Ψ3j 4CӅu}cZ8@4VWZ]K[iQ#Bm!5f䕛<2[fp!zDRYipR>`,%śd0jX (Cj[PmES &^}({9١Sگ9_3ڗ13O_~ӞFӯ~_~6_yh~]̯(9=^Z?wp>y+3pTKsshjjj9ΝUʘ AYtV܉5/qkUv?Oz+x!*p<6  OY|)3S'nd1Ob}Qc 7#Z1#B8)1@k4QDBENwӞYg\鈩q34Sfy.a➣xe<-yV9b]"cPh OBTOrn<|Sd^ԇ9u`ZTk<, }g7~zε̙OONO3Ys3,gPMScڣUi>1.L]嘺+-Ab[LZ^yJ*wC"SFe‹HB=(V_x$xhĴĔyJ49>i6OO[d4|+ vTN3œDw.I]W9Sn֘'TQ>gһdY2u/{MKaA<;"vXp]ט=&sO<rτ;EQzUFӄ,WM>,[So4SkPa ~+5z$zXiB] T,,x|| F˒i @z\c^8v_[ٵ8/ |SRxx\/<~/<ȯOAG~M>Ў{x܌ɹvegwZ),S"<ٓwq(5ǏݾJh wo/zo&|QG%pd8mS˜Ĕؘظ(.u]SΈa[C7o RTa%l|lqW=hX J=-k|][TwoVn=qdɖTvpGMY[Uoj}sHȜ eφ*bn]+85 gu ݚ1, ֘kUK7{cĭUMZ0 @~uΛNh@N֭`Ri(踛Z 칇spe,fe_{6sF,o}k $k m|_a{i]:j Vb%gU0nD5L(7fNr1gi&.Pz5bjP|[/ם\8yML:wrY)󯰻fܺt9o)m+0oj^鞱E1y|F n5?>TI{Lpڷl/cی${j#`RD>zf[b[!o˸gS4-`?VJ!i ÖXĒ IDATIJĒ,Xyj=* }hXCCKcd٭8w[do =>aOaQY ؖHܱh9{D~YhH$' iu2gSVulT!o]v-)ݰD%؍w;u]}7лhBbk ЊRú&^L] E,Zm{–9v[1a qkz۠n%zb O֎qItk쉁޽m5wNI:ѭQdĭ9ͯt+J_7^?]_uⷯ[u\+ε\+GwYum+XF(ε\7fw]{uȍexͯ_eRn,Vn"V[[:z{zZzƞ;3饗y&ĉW_{7{TǼq/e"PKKJh~}`zUՋg hRW!}` rXG|;JH?r8M8[=x<{05)4H_ ،K[&LLMݺ B* Sw@N mT0b?$eMluUg0YT[r UH%oZCE+veEoz[-_f9m6#IZz $+,6[ߖծYCRsPb ~'HL۞Z` r9wF遣qq+ Yw1iJߤb V0I+dGobV,q)SS nŞXו(Vz此JVa Uj^t6qǹΦEn6/N.O-!m <mzj<'u-  41Z a:7OaA˲T3ԵkzihPS''ĭ"^tzKJX6d!P;zm=<[/,+Xؠn]2P>$We"ǨUY xFKY& gOF[E紬sB1.n}lpsiU?o&NHZwM5̜?9۷ VYkRze?\_4-=s7o۾>{>{nXsķMzQ[w쎯vҞ{n#{,#{ؿ={!7_+Syk٭|i`M@Tx:S󉾾]_SxWw}Ȣnmoox3w'M5 XɓXݪoj5\OhQ@LYsط@x/%$>}L:z{TΘTckcՂ|VRbYJ+IZ[^HN.*u~ І5''\]->лlA.K&rˌW>,9&g]W{JD Esgy(^[@{N̪S /_yown^ןNcrC\j?kS*{]S qѲv=oؾnw3ﮥ{wQtߍnw /~} ˪5*QB{#q{f}7M k任{~Μr2V~sWW֗xk^}?ڑycJdl|Ï=#GZ[[[GFFz={I/m~y{芭xk5nym!{&L 7_KѭrDZ,9 ܑl4|Mi%<z!9oc1sKɬ98MYXF2gLxNzˤEɬDKڥ] `D[MF_Tu. ¹;K}<93AN8r[iƊ^9Vl9;\ ̃Пq=6|'\%""SMw|IjvWfUO`\E>E\i8CJԤ.1+54, Cd9LŞ{@8H^gC6yLzdػcLy{ӜQtĢ9MVr֊?\4q \C߼wN;QwOg]S qiǘcL1}G "#¶a_^o < )EϴwV?Xpu\=em rupWoN݇UTg~o}#{`ďd̃ޥtg{%?[;ߡ|P?h9p]_ܭ? p@^ރyA|?|wM߉Ţ0>} +gx 0?-efUlɓCCCo}@Kc`rWuny &UyHI-_[zs'X&]~3ؙs[/y1=gLW%*cOXb]3iVj߁NU3A>Ղie,r{2S(#k7FQypDgA=DCbШ?N(C0YgT.%AF!iRK ϖ8t +Xm8G6ugY /MC\ Xt~`ęfB-\98F˦QeXqX'VXC[xfld05Hug216ۇG\|="Hď4HĿzG'O=`@Ț' wi'  'Zx{hч𨼷>`R>X)"4G|q-)':N̏s%KJF:;;A<ʈתX V'$ tkM5sf"nV_0n=$Vπ ΀d7VJ]x?Q=vn`"*P7xq sP_v*)HI8ex%|s~l6_&2f/O gD))_ffg)*`u%nKJ<, <1o UgdԐ"]Ơ({ꉹaeN%o%z=UVJJ&An6Im 腖_6}dNG +WHn>hվl(zu::" ncs2C;CJF{n%+*d@<nF;š@;%E q O O |.Q[B?!# 􊂄@nn!vz[놕bo J\>ȵ[AElHǑ 4q]:iO2^8[[ nNqI]r @cBD΍"c <8* t\&ԑIMtZŦq .KEgy#X֒V dξ}շ58W埑yI I1!І --<DWh٧N5#sn`6jkWrw`Gy<*xQsJ{TQG~}~k<_  e2"ѿjVNw3t םn~߇ekY5WKHII`NnXhkk;qD˩Ep94>799)~_wGOt#xE֊#I+p`_vk ѫ@fʭkЫk5A&++wLM$[zAZ{Z%OXpJ{8wJg$;^ʥ ɰ!c%X-cwUo7oĊbV1>d A[yL*~}ZTJقQ=xK~N2* l̴:+ZsSMɨ݀-Tu|>z/ů 75:vLQex=hKO xzANRi8O94=13R\.ËIl0B_q%V5or݇z=[ kj zWU_oSg*CbՃn VrŊhA:ʐemÐ C9+ hgtK[`eerf _`2FDJDK#eK}(/۾ԩ ڝ !79uUycϑmkq\x뱩|ݜgP2nۑ ߌ)1gol|JQUtX6'ꡣ`= M$D",UkjXV֭T]W4x  |_;K58yd80f_pE|P&]•A #5F1md4iMl)+M` 8 6B#M@NmuĹ4 ҳ`Jϛ`Y`8baf*$chYs<ώbE\v#Gw }?z.~Gwe'6dLx {?{/o.ľ?+>+?>sU| ]}Wk.#\k.rm7_sٽ\?ݫ.w%\u+?sOq't?}2hA->v9u@`JQi2 A!Ju] %31 AnuvbdA3D3iczmϚ(99o[`r8h$h! [36YWxL{!)™ dMȭőU$ 2H4S2j#TְWb jqg[Unu2-|CsS=ݧ{gKݣǏy/?xglAn ["2=Y1{"L!JQ?5lJ}VaX X`:i7taYD0XaU$(.ڐaya7ꕌBDNv>W5q,e 23V21Gy3mu+zEVI֖!I"8C٪VesŁ:O1#o ^KunMl z%_E2g_ʌS8~(;JEd L`ai&҉ f:\;n34 mT:B ^o K)6٬[C%s Sײ^k݊E^U'1JbX:%5M`5D+Yc6TF̊pefXvy fݣ8 Ϟ!S]2ҕVrg zRo ɧR KJh%OaF K)lJ22`ƕe[qcjވvft3= *51 9 k OʬSZʩ&TmG+rz:^+-Rn`cu![0 zsnegXhvR2EX”_k1,G!q+SrYR%S[TQ]~֫s%.Q)1iUA O9Ya\U₅4ʭ,eVXi%m3CJK *ܤ+bz q+MkJ rZ)z-&İaqr=!D&v cUoIz[Of_ AL9-]&^ϟ_p#шF|lJOʹܺvNH W7hG ⨆B֫AÙ>шF4#`KGA,*RW/шF4#`KpX͸sֿT<ɮ˯AF4%sC~_xw?ai,ޗݝ.O#ш%8[$Bѭ_ua mcB́vxk<ڏ+j͞"ޟF4[3+yӼu[q q6nR*U;3;2.Uz(ֿ?hD#>zޣ[ADUxxtLӁʳ\XZ | zшF|QsUnm}pVcʝcfj3ku6BߟF4l=݊ + \]ߞ'vd-rd]v?u2S_P>\ӈF4⃍Z.ҭU׿N* eV-rqyym;xnmD#1[KQxK;t_D;-zf^ila篍hD#>;usH~Go&g.ƈ[T\zoR7}FMPv_@on-~m7>&Ÿu$<ǪF4CVn%[.k\Dwv+9y{ ]Npk#aZ*nsY[]4hʭx٫`jt"s7ڈF45q~0c#[1"CVղ 6vn1שUNXoYpv 6hۨtVW^!MJrZw;pk#шal֧hU&n%'[шF4*v25n@7w??|ȗhD#Q۹:f7s+c6ڈF4.V)kbւoO!F484'ue~_dJZ~ 7mw#O~(VȠ[?E&wtkC^hD#>Z~'BU##Fb{zE,^Ї;޿9Y/66Ug6(6nB-%ք^r嵜~Օ/BݺL=^^5omjPj˸?oшcl߂ɒ)p.9Ktr Pl3V^:ÛۓG|[0X[ҩWw|n;[/d-^Mo㙾*򍨌[x71a#>汍[/} ̩ܳ (K?WW ,I1ՙ5]yC;J[ib~/ 뫲϶fٿMZn|^KnD#>[=LImSk^e_ȯB[Zaxjw_*u [k[>ۑ)>ln/̭57ڈal'[&D yLhV%s>MMYuf1']lF4ۺ!7B055Ro"'z!y+,\6-(Rv[7v[++oi[SaҎF4⃈e'X'IeRd&粮| +gȞ^t~p`7T枭)rHNUiտ$u*ԭ61no%Qkm3YsVk\N&%ԉd][yV"ԍs'vmVGv]ğG]YU޼?Ue4 P[RvNRzlnP[.:^;'s̭eS:+y­OV wkוn CVs늟[íP =[]9Y@@@<֭WV[^O­-_dy=gY vp]έ|fXSlll'y9)`iu+wdh[aٶ tX#Oefpa"s~"}a"Mfe^WיnݽIMlsOݹڙ>"xT 4?wqYttӆLnǾwA1BR_n9#GՀ:<)=3JΎ3#txwjnZsQVQjzleYU[;CJܩ`5Ϸ>s5>=4쩡l[6nY!V*Vthn5,j!Zc۹9 v ?SWR1]Օl3f z^Ԙ]ƭᆳ%[I RVwS_wWXBlֻ/fB-+|>R0-t$nOfi[4\EQai5q %>& 0Nlh\[ڧunT[ oYu^ZRcF&_鶻tN5­`F<\d 7ܭn=+ž)Slںn.`hMp+ToRtjTmVL_ Zn3myT<8[b1S-̭%VZG &nT<4[ӂu\Q)u@+sSp+hwsejṰŁYխ3-p+օLyxY7ۙ[Xgstù7 :ZF^Q~o:k`bn}\1z:vPr{m5\98& $̓Z%ϲԺbEnfn- h0n[\zغYKVI"ǭ6 0PZ%"ngncn/:ʆҕy  5آ_j5j9 WO!]㘮̭X(ZJ;2We}! !|#ߨK]Us6jN1%C_{kWQG!]I"UV)ҊU [M^K#U Z[ʉ{37RWLqY+νR5ش脪[ݷA?]n}dcVI.i2[ ,u储G:33л1uNEЄqhvukUߺ-/x\UOQjA[I,7,uKayIK7*- X'!J#]cq[FU:4TV?7]J4i>uW*cTx٠/|5*JݪZܭ|>խMiAѸՌRW~Zf`tʳ'soطv8Vw,KrGct` ?U~cAݪs+OvT'Э~/XK]Z֞YzKX'n0Jº[/=í7Zût; ݺŤͭp+u9W\bVqŊwV0+KՈeLwU[MKZY  nVpUSA [WUSjV _Nb6ܺ{W] Ϥ+n8Eĭj+n-+SJZ- vreպ56rmFͭ7oPvuG:8HĺC[aJmzND[op7uŢ+mAtA"=M @J' "skyf[o.ɅB a+=C"6Fw*)$#[gzíw˩ *l? PAJ' R+jbMzMԭҗ24K?'H;$bC!+{)$HmZЬjqNzqv jR PAJ' Rf t%47oKgx,?~iA! A =S˔nmno}h}MͭQ%4Dĭzhno7mJcSK,.N/SˣiWDASH5Wf$TXWmȜ-@۵`X_XDywpb:? d%=Vn~_.HgJ46SlZҚٞv^LDJB]nT֋V_7 /E(ZyXƇ[M WiKrn5oC:ѱw[aZ+n$YH:|ݚTdo8dHPoi?FYX}OCR=Ny̭f#Xuytqwe*Xa^ t 5e~qډ zBb-+lX/X ,|>0"eoe.֊H]=UD)nN}b&;;ôM7+[gWuNU"SZH#4} IDAT14h>s{ W}K㾭Эy_x~*{%Ìd~dJ8N|w "I# ه/L^C R|LqKy}V)tNV7Vc,2(@$ڭ۪n³\}e33[T蚿NTx!\?Z)aMWdbH:nDʟ1uC}V,յ>Tqm'v960(ϵ\78Cܵ#jO ^ԭRAJ' R xqt|xbKkoW,تEaly;>ˊ !ԭ@J' [7o{acsh8й#O`BA* t ѻ?u-A27ܭ}uԞəC:n R:IocqBxmw5x۝GM}H?okl nR:I_?;xeiwy|ejo7ˋbz.-+V ޭ/Gy|r[65ro׏ t nR:IJm{iOxR7fʢ#=c? 퐈 A*t ѻڲܮc=j:;gv+m,skh)PPJ)$H-DܛG{hpZQuԭn R:Iխo}D'>Ɖ7?vA!  VI QkOlχbD,xG'4z&Ϸ>#H;$bCAPJřsX>ڹƀ&UMb;3R =,^ I ˋ|5?G^J[?8yi'NDPcxC([%!HPN ֪Y[u+:X?ۇ+._o熧3ͷ8j},TXa y/ 6PPJWy_ɺ$IB^Q71;n5w/xu5x)H˃w[y'p{prk lz1Vonk![ܭִIDzC+[w[Gzu}V1ý^gyC[|?ޟq?51Z86_ڂ[ou$r?}*~{,I0.mqtUj ѻu.J džX*hu`݁APJu .Pukbڥa5"7bHnt.i1Rbl}W#xC([%QE{# bCKJUj_ݹ/zp`?nJwc[?e-¶cX5VԭR3Nuq.ʑ,>>X>bA*h2?T1Cļ4[Km4Xn:7UUpjU^kOz*2 XU[nK]G[O6Xl(+͗6o{AvHD U*~)djmoJAk]ozBM8XU[ݮ_hϷFf> ID9!ԭ­^k  5u'ZKRgf1dvt n ID9uTeukVڂؒjղ8u>z-y-RC򰸕dˇz-]/ SGAU rxC([%\;nVrҒj-{vƸnm@Ju{Hҹ➳ ᅭo HjDA*qJ_ܵraiycap* PPPJ)$H=ݪ~/Ho'}syx&V [m}#}\'"H;$bCBA* t uvkڱB`}FnlybA*t ut]];>\~fY*Y1/VxCJ ^Fvt͔n~{L~pGO|jfjpk| nDnueVM\Jo[ʿ^)WVԭ1nJunX9u¶$}m׵Uq+['xC([%QUJ{I :4zcյ#wMɕ٭̻\?9=74yw'VTn''[YjyQXcr%q:g;gYsfn_Gjx&0t!ԭr/MrUѱ Z=|ѭ7c:RϓΥ#^V| [gVq@m7 U~p^wH(n}ɁΥ+{csG1@| nwJB꫶֥Pp)NN[oڠ~絋Z5s7֟cs`@PJ)$H-:bu:WK/ޟ?:?:X*my n !ԭ@J' Rc8,V$n R:I:5w-ʧƺq7UH$AjRpk [Nn}Ju[[t7UH$Aw+T٬PjTUO`h, A*t 5p3 F]g`u Ʒ VI ޭԖԙfnU16A*t 5p3 F^e[Iڛ9\k VI ޭԖԙTFPRjkv/16 V ޭԖFPRru-1:{n!ԭ@J' [-GfsFU($`n:n R:IO̭ [/#Ff8BA* t qL1Cz­nJæ4g^mɷIj.On\qSoź7UR: ,;~6[T0M3{ tUoJCw:N! U*OiXI=V&j4Vy{G15Zwuu6o!ukݞLضmrl|jm VYb\Ż`~6tϕs.cPeInߪ~/֟b nwM$ܫt 'U}̭s0Xƽx1$zAʾaê~qklѹ}W=vN,ɭAqkkVm>y,0V !խ2fDVUkWpk5t9iGmjޏ~VjT(W[obn750kl[T9uIֺ\Z& <6\:fusrq}K @PVIVZkuc[BEu[G^[[couk`jVs+ї GnھR;3]sn}ZuH%ք@PVIn(<FY:*؇V5mъc[Zr:n!Wv ~nUyootuլi"[wg=_a>zj [+pk ^R_~nz4DHt:K J֭tU68\V>}`q[cYu+us ֵtu'@kGsGF8BMʪ*M}Gٺ[[}BľCv$z?oֵoSeWGCl%lL`OP=ѹ#%>H%T,wZMspځD_*hyi ҾsDdx&o!VnO'XӶVU#`@n];6U[5eif熦{N9=ɩZ)xM׭4gKGi69iDl(xC(5[ЭpOj!s]ֵoS%ʺyvG'/Kntݺg/Pl.H;$bC"uƪ[66?E ܺv ׭?L}5˹߮unu< 4lxkަJuzo(wy%VO嶁KGx"ũ Hu٭~N:[]ʽ~|cï~PE  kަJukOw |9pso~>g=''B5n LL 6PL$Y2,K8F;wWz۩O^}+giDL!ԭI[+ܩNcZ[*ϙ'հjmDY1X{ϰ1XjL-nN;'g?9;O>=eŋnޭ^Sۦ&&\L[VBӜb9)\SֹΗVǦa+n5w`?5Mbs,d;\Xb  H[^F_i:\Ȍ̊Uo_Ukn?9/*j۹ծ,o6U[NѵL27$ -9V#d]"򹱇JFhscC( ۇJ%VxC(d­AomL>Tn.c3ﻢGgYTg_7YZ|֧VSw67uuۚ.4*뼲5]bme[CQ&0}A T)M6YjF~?֮zۍpOOOO Ⱥ:Dn֭[pE5caê~q׽q'[CcVFpcmo=ޏ v,bAnOVSĭ 4(K5by*֭B[sZ:ƌ`@ׅAr{Kw0v1o|hpvߚp7~nWFi{Ȗ?Vu1Oh>B@ n Lq^mh@ !6TjwQ>CbXx*soǷe[r,+FHuk _(.c1wz"nZRíq750pځeܚ**cWd-+{Ҭzͪn"uԭpڀԢnehboڵ|k[6=:Wwbo%^u4kEW ܺvmDZj׿utPqBtsE+"uuҟy`krz~)pځD_R[my#jnt-`Gfpk ԫnq uYpځeVuvh2V ĆԽnu݈/}% H-R%u>-\V-֭o!׭TC`I2RV_^8uTak@ Zb@:JV6&۹Hm bn-|sEukZu+ƷJⰧ}'"I~b[MHV֣Tukwzdn!RGoj{kn5ظu@jQj2B^֦nՊփ!zխv|ѳӼP`íkަJu1\-̭]n]1Ṽ#Bc4?T n];Vc,#lnu+?xC(u[y? 75Sx*֭n 1"D(r[E!RH[%\H#ԭj,cpk Խn kr{VVܖZc>㿣u+7By_GA}>Pԝ2Z+{,#nCne1  Ȭ[ïlڃ΅K ]3=0-cnUW{gcRuͭpk\ : VIn4]mi>ĭbstCkDq+9_.7kRnM!ԭV߲x1+[Mb5-l=ۙjvN ]:tjwaE}#^Mԭnm[IQPqZ5өvs1!.2>}")Vvyj 9# IDATާܪwD eݪtK7KxC([#˭kfbr~+ICjVD[ތa-]]>MխnMíq$D([WV;r]tV,j3uhH7\VeNKj_ 7"nݕhVVG9({rkE&l66t;*os i&quu8oҭ^x"uu [ux;EPκα'[Ww@- y1`=qtM6ʐpfn[!uZ=1RUSNq[o4ח揫̷it쾢V6[]zgm`ܳMV6[^V:_ݺAJ' R5[1WK nR:I6UjQ­ #D([AJ' R>T2 & VI oS%nM"!RGA R:IխEC&fBA* tmD\QճD"uԭ IJfm`O OxC([%NMVVU.n[cIQPzNfu@Ыӭ5PPJ)$x*Q׭#̭Or­"D([AJ' R?OKW5!PPJ)$x*׭yV=nƋn)$HMQխ^:  VI oS%⺕/gnM!RGAM=RZ%enM:W!TnQ ƒn&hJ֠+UM͏«5԰(]nAWxC([%0C|cCíyZ+5nRVi5^Hu7|?N{񫗣w־V\֭pk nD)Ki/.WަJ V^nE@: VoIԼn[ou$I D([AJ' 7UH$TA B"uԭ {zn-!ԭ@J' ަJV5Hu7H$APPPJ)$x*[y#D([AJ' upk nR:I6U"[n1&D([AJ' Rխ[;Ccd)56PPJ)$x*֭OnrҠ*s:LsK^: VoID_nan-tgXti0~/u= X1<ۼA!  VI oS%ʺVó]+4w.￰DJk֦7޳.9ӑb?Ϧ2>A!n)$Hu/ Riyƹjuiiݩǧ?+7IvHĆ7URgr2Vx*Q֭]tVM?9;\*]yM7vr'һ_軼D#D([HiוS<semVvCjV.p*V~7wWW 7m[[ʽybHS? $"!ԭ֠kh+.nnoS%ʺ?_YIV)Vitg3vgkW~]vԎnFNjelӿ-X@n}w\z?}병]j[hnƙ?Z:r᩟l~Rv VIޭ.]~ľcUM(\[7o860MMݼazab4sCWh $"!RGAͪݪym[PL+* } ozG_kխ{-[ou$pâ7ZܑÚmDY>{.-Њv&Wz[_QEA@: Vo\ػW PB ׭̭n=6Zne$s4^:xC;Gf~>ˊ !ԭvnt(> @(o}lc|m=4^k5>0+6Hu7)rk?~q,5 c>tX? .APPJ;ny4dVQq> oS%ʺ?_Yy[6ݯ/co鶻 |s}|{C %"!RGA R:IVؗ>V^mw5(~|j34ҏ=ѩjTW>ގގygn PHu7H$A[73tD-n5kӺl}R PPPJ)$x*׭{Φ>QZLu+o !RGA R:IG3oeӬe5], f VI oS%ʺ?y|~u/1X8JoxO.?iDl(Bt ׭x1u7[X1YA!  VI oS%ʺ[8Ѿz^iza ʾ~ާF?~̍Bt ׭?љt׾3 +ݼ'yЅwmniDl(xC([%NM(֟l~w>9Zͷy㥃_>xstsĈn)$Hum>7t[?>fj~7onVӬO`C6Β̫G_m~}~ 퐈 ou$Ie-.@gYmlMsK]'v}:go>;A~k !RGAb@[]csN?wjcn_]zk|{rA|w >PPJBJJWjڹںZE .Tn}7\Z'X[pM7m`ݧX|rO`5Hu7UEЕik{ʖh2p0I8׶`uD_>'^,oxB#\j9j!ԭVl.lެ.Vh[Y[[MOƴJӜ3zS]eJ[ys ~ɔ[:v-Z?Gf󛷽 HjGQPz#n *`=J]VPVVljUV6Ln9cϹZ޼{I|7s'}'Ccte vPPJbUnuflm}b½=ꆶ5pR겧JYަJu/tae!S^mZZk_/{/K< vHu7qa$gYT[+ZXyw|,EbH}ާSk[VjˑLDw׎xP> VITVgIX? `_\g|,w;n``+ں5ަJu+\POZ^6?B_upkl: Vo˲?-6{.[ܓC"tk#Hu+%sko[xBA*)m+uD]snu=)ڷq$nu;^WoS%ҺnM*!RGAJtf˿:#յr C?f6zZ|5^PPJ;ѴFV0)=9us}6UZ ­"D([AJ' uk+/xC([%NMz׭[Spk: VoIԹn]k[ ou$IR5w]skn!RGA R:I׭pk\ nR:I6U[+uk n!RGA R:IԭOpk '/xC([%NM(V6W: ȩ`a"uԭ nݲEu,$[^^6+sk:`koflcou$IeJmߚnacύMړfcw}yA!n)$HuOeh:Ҿ/ƾy=$S:عr9ppiDl(xC([%NM(և40}fO:R{:5]npB3{N|rzz Ў!RGA R:IC'|ԇOtjZ[dkh7ɏ7C"6!ԭ@J' ަJuϷ>siGb//եuc}o8=>-ie" n6E ugr m4yަJum>74o9/%զm]̼zN]c? '"X !RGAMkz;e]"*Mg_[E[}lz.[Cpÿ=;0;3^m $ʡs>Chtx vPPJ"[E۴fŪ OWZ[+ɼJj96U[C~ѷ;w7B[pk0Q%۶m[]ETTKV}ol["؅HMFK$]">/U~Nqnͼr«^A@ |{dpUU7yU ~`qORGL;?Quxk7ci A0';Vq3>rڽ\I|_Ν͖s*vpuӊ1D!^,9;[ߪȽEN,+ pp}e7Q[5~(`Inc.μtwkv1sMM7zGj97~;L.=|w 6 6i1_֤nmz3PŭiQt_Lq|oAUզnk!]szf{MdeMi&,ۛv˸*;(u|gZX;mkaDCw,<\^e LQ22{ deKwݞv1wpvjwTzP+=qZGYLv$@$zZ?:53:s [݆9c3{v=h}#s~>ܖV'!2q õsպ'9G걐)Qjscsm9s|y;Ǝ ![ pI]^b%Jm΍bĂ17bڱ±A-.J[^V|pbҫ8{)$*Vʭ[bktg zVqC2"^cn 8H$AXIH䌨Ev|bD%{q5c { 8H$A,s [U­BVR:Ir3de [5AJ' q*)$#[Oiq¶[@J' "X[Gû\YԻY@C ݭjZǿH`QwFsת nڭ^/ kUuTzv~@]ЭTV@ V [@>p+nn­ j|[2[`n=[womں[™vQU;ڽG;:UpkV[EjPԽSw,@0|S`;BJN,[:܊zP7"u+3qԠ.v)~ *\q맫p}UkVc+zP[]VdjS{[H߭p}&umĥ![Ί & w*^@Y Pqn֙Pدz-)5r[o흽VQ݊?5"uj9Sf\w$NǨ[ {p+ת-V캵Oq*Ka$[3QխTVO [ 0ݚ[ (p+ȧ dV [@>p+n :5ԇ#k|cB 0ԍw`>n_ÿԍn@YSde-* Ta|OW+^#۵`QP7 =/ΰ\YfZ[G(mM0~ʒPT[iA Bc^cX{oiߏ/sћfg4JFrա"m>붞&*Fʓ-u8 Ӛo,E鸎rߓ˭,W|k[h۪mkiJ?8ӭKH ZSOP%e.@ sf%/*Vuq*x|՞e#IFSS6uvZ ұgڛ_MZtYh}Eȕq(R=ѭGX[|қ/[M7tر[{VB Cj2WagoWEw觫z?.;a*,{v)+zVNiuO g۩ϿOeQѡWԫ[+3C'죚=K36ΣTvaƎ!c{wz?bJ5begYMF_¥W͈Yˊ^|V>谜sg}(,whVz2LހJ-?;x RV'R/Na1}|#>Aʫ#?-e󙟸U>&ZMmU^w>[%usy!2.N*ƃĆ ȭ<5r}u@ڟO bnW 6 \c/ fV\96 bnAc/ fV\96 bFw2 |c/_!M'_R7Dn\6 wտ ;~ˋ[=J]؜|mNf=5m p+Xt+P6k65m4[ JOWNןu.D҅ vO_j߱fTEkCoJ]~ی>m >n wjVCTjR"IDATlʐA۟ Ls|ʹWSycVJtR~߯US(a_P iЁÓutWS#2%خvC/lJ% Lƍg{x:*xJi:վvU%*[;VAJ-۸!j*V"U%^zH|*4o)nn՜L[i%ͭ 'qKju~TNV5pՑA{g洹[)܏_Sg nvk խ2Ubp04Y]^ []K_Ӿmn T)קO@KZwАQ'G#\QӥBwj *8<csk VS[՛'bE 2_"S%>hTk{tފa9Hŭ^4[-E)w+AE;>t|kk xi@ ޫ[/8ܺhukǕkTzk,/Gi<c(Vb^4|`g!yPod8a-zk܈1y1.alfGX6ibCvF+214mیh6Gp\?TbditIWeDᚫ˙ќ-/ xMl)*֯G/,J]}ls))YbtlxTbqE vS qF?wD>w{C=8i2-iZqgK74ۡz8z&iÞKkB_1Q*L'1\>F;rhİw h1X<2Pl/VvoJ,0}|? aUϢ98σ{ ӑ2⓳^co\@C=̑l@^fWM&~UFDLs[ٕ.Cveц/j{Z/)XOWQWEpǽD[תܪF]65j/2GO0Æk٭+-Fz>sdb=OZ^5[1vtd:VވfVuU*zr+r+ [/}^[uMesLL#OuQBnefM^z EZSR2]\k|V^^MVG_^[դZ5[ !j7[+ C\}YtmJגtUdPwkzVVpOA^- o,n.xaMի@{:U7^V.?OuTAzU/zeZVU"uWRjTͭ]Oo)u/]=W]սgbXtpԞ/V33zΞ0z][k3 ҫCze[^ۭ6vngӭze+kZfJW~IUM=u1tπӰ EKTki)ʛ-5g,{QEFxG,a˲v؟Ƶb=ID@(tJbg#IYXc)6ײ(UڅWvE DasnN(]1WIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/figures/thg_logo_92x50.png0000644000000000000000000002003311534217015021572 0ustar00rootrootPNG  IHDR\2rsRGBbKGD pHYsHH1XItIME EMIDATxy]U;[cRCR** 0 A@6BVADFD峻D!@#2 CBU[w8gܪh8^uSy> ne-,~;L%&L4Wzן.3G4KN6'd~`?۟fVJp؉f|N]Cw<?| _Mo:X`20LZ4_vQֶ CK-0e2wdY it巀 +g?VE!fŴ:כX,fl h}=;nUY11߻{ܻ l*l* 7}3fUN5u Ǝ̷,G p@}Ӂǎ<8Ù1c'M۶18{tk֬rIկ_~2< W冼{vYx3iLeеm;\vXKYXGxs OFI}_.>3f̘ .K2sLCP!㢵Fk K06Nַ͖-[b˖{mvBoo6=~7.X,Sl5_HK]C=;w(ꢮq STlYg}XF)E $$~ DJ a1ڀ!XxQkkks= AP*|<"B!Zk˶b$ 4L\.K. ;oѫZ?ђ$cRs8 0eZw䘎iq2Mnʑ&ΘUok.,_7!JЁ+EBTьf{ضM<'Jfښj}ur)ɋ?䐜f9Oye1{~C,ۦKo.\X<7سNgʜ9<zkMMMgu]{xPHXT*Qv\\׍@V* QuG\k3%,l&LɤbT}G1gΡ<_sK_ 8(>q%cthl%?p<\P?o<_Sɽt ;wۚ_x3~$R((8W]{PC6h$:DJeYx}`[Dl6Qu41t*:իz5(2=]3}}+c] 7O_Lc7d](ȎΆ'5~o-+̻UN:|D"  W=:WQ,!g>^z T(IH}h'r@J<<@=l~ɥbqB!R!(+xp;D~C?N8g\p@S J8C):P_^yj9&E,aB WO.c ;{7,Xp#RX,c-L&MmmE ,-b19"+vuw󵫯w]R^q%;6mIJJiF9(J@׋Sv!,#*}9r@KXn l3]z饱 AJJ؞K *5ŲK(%Y `Ym² "E^zE8ma1!n}0 Ս BmC:T[8K0J<~=xsGM} ۧqL9 (a~vvX("}Iy`  m@6ц|O]b؇R~ <1vɸq:J q=RI>%䈞U H+K()U_C}m5E٦qVz-xI$̞w8R tuuHeD 4$6LgYNysqJ%r7_< 0AEo? €@ؼs3C!|G $,KXAH*T gСoW={+?SJ<5V-y5K]Y?vk%J.N١T.ء GDh+,HP[T:hlEmm]vNp(uNgB ZK X:FU6E.SNw=|a/Q[W(B"$2((ٻB0ⱡ bs „Hee;A9Xn;1מr3>az6o>7ccVW))S4s9H)q]rى@*E+4]/R')*KE )n*GщֆPE ;/l! IPK{vzz1>kWd)%"E4QZC!(J!`6 ZF!0{}!w-+ z}SOvʕ5ưNvzMV_ԯ?>p/ÊAX08GɀD"y*X,"O"pD*TںxRlZ$j84J{pL)ҘпKŰb qoo#F P>ͥ/ z*=2OUob֙c8#еH$T~qRDtitcp=F)m"^mQFH$I8~Rtώxկ*0)ش<$?nƶ1k!HIj\憃HŨ!pր,PJc`4{vƲJ`ee˴m62zJayQCؽf[)\7)۷0Kt0sǑRbg2\xeW_ӹd*lx2F(#13D~S/K2!w{s|Fj(Tw[uV&Dz'Oa>c6Tt.e<ЃZ',>EO&Ԇḕ~>; 1_eYXEkUP[n1UX$[2~AsxΝ8{>,<m×R>)ɛ eHi&b߱qcRX=۶#WIdT }. JCʅN*R1<|y-G;."1c na[n i?4-:ZCXn$UÙ|aY| x{:vmLiji7V Z/> w:T&LUFQ.Eӳg'b ˈv^fYc1ijTlmdΎ4mQhBCǰYdveaG \nR%k|ƊC,e &ԆlhMʋ/]x^=ږNg*^ث8xځJb*E S(~n ڡE, 1!Z+B]!as3WjV|6?rG.fQ'>q t <7);y]{]dͮ!5M<_p7g&t ~2=L[MN>BX"E*ĄH8ʦwW?n/>3H]9<r^ 5\X^|/<81ƶOOMtNfzueUT2c:0ưckּRٚng2+߱%iaoG"388mصosNe߮-x83orqfoy.J/o]cNbΑ'rctjx@92!($n_?oՕcm1TO'z10Dzc~L;W3|LX9GXqs'*E-R " {fqhvx9$߼XN\>yr ڟd JD_儁?lqFj3 6FɊȣ/c>Nܶ,`CwG+n,6$ʍZED ;s3:4Zl}Y^|ҹZ€2\Uř9LFYeɤV߼7Tn[UIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/figures/thg_logo_pdf.png0000644000000000000000000021707111534217015021566 0ustar00rootrootPNG  IHDRpisRGBbKGD pHYs##/5tIME:, IDATxio$Iv-xlq7=[Vf00/̼I]];X}7`AfVkn`$ǯ{@}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G}G} 裏Xxf^[;B(T5Vlf;x0f_r׹֑RWRrVRvV~_>7GӍBUU2:W@2uxȦeӤ o{~=G}tZ L!cBiJ)>c̥2B!BkMRL)(%=%UJ# RJG2BJG PZkR:J 3Tiu{#PG}q5!;RxخF "K}%. (,|\b4b<_`\`0 ce JI8 ?ATe G B)4dWTe(M R!Dqp~"_eBkS;J}ǯ&XK0 Fz_c4! DsJǬ:   "nT $8FO0ΰGGp#|Zwi2' ~裏_~0H -U}0%@I8E0MbA.^| ZR @@)c$ 1!hZ)=ddS*+E48 )%qx8 sWJM몢EJJF' ?q=|+wOۇˆ2zCy Z+%ec NgfN;hd/B];PJ<ːmsB[P%,GYq=q@(%Mm^6XUa݊zUU V=_m-rݥ:Kv}6tR̠1WJ]qPJ4sLkR1F9WW/wm  sZkxd4J+pׁld ~(52: uB)G'Ȳ d=xC)2@9?miWcWmW9}C( | `9cud|R 0^,|+ Qd%RBk 4pلxSJJ+ˉSy=9د7=bZa ʅ9٦u@)vǏpp@H7(CPNjy}ño6l9gΞ36wYLžx=pqPkC)5A| WWf5(Vh0RP4 @P(SupQ%56<<@x겴`m""pA4|(I |* }4=u%|rov8N9xkBqHلZ+Rk-;Yw jBŜS2=8!%\i_B^QF_{0 C_x)(l$ʪe λO)\@+YU&3W ZZ RauQʢnZ/L\`0I]~ D1(B@(f(66,JNLQ;Z}ȼLkMx. J}ם>[#~>1J:  $"H)qBI ZqGqd8D2cp+<|e#Pd13 9W J$(IL`v $ßyxe 1qfWWzA! PeeeRkÕxT|wϹ"&!R5'ȪVJ@"zj]mhc_u/Na|Ls~e$MrN%꺆8Ȳ y^w]xA 1i 9[)d=>UCk;' !ea8xl Œ q`T*A6 d]Pd8wAI4`x%B z;_*R\Z;`.̚sN8XI('%D4ZJyxbY܂xa9`o: aۓNk]g;ϜBiGq:Lx,/hq p}a/.aJAj|wvJ~ N D $!)w;7Q}(@(`< ~ |A'~oZ[ED6dh߃}_DWl$!dD)PJRJSBHBIĄ@D >ͮm;Y-xsϷP7 8Z89|֪ pui7ZRjeף]6ֺh)韯>{ 1uDx:v)MF-f9/|GAx~t]Q JJTUn=>|nKCsY/0L=a NS=~~Aۡ.p6!$ &e놄Ծ#$=6C ?[$Z"!D~$ !BqBy`) mc so>c*RYDJK)mƓRu]Gu]eY<E-b+l3m'[w2Z:vɆ /p`t<{7/opuse;{R `y! ݖ0KuU2p6hq1@$\,QBCQsU' uY"gm>>h @SUd8;!o,P-͆gHkR!q$$yBpu.p]T]z9ޥSZ ?FUը UeVY(˒E!`EQ8y>nz. !-j8LJi);{}?^/Yf7WxI ODQro_"M(^^o@)0,W (AeҍDYXp]/xE]!c4Mdtb2S ABxmz=(cAch:=G]UTxg{$GbvшqԕIS !O(ihD!IӔ$IB$q(H$}~}xwqn͸[>rȥD#-`#sdY,~nvvfZ=>>jι*J" 2n,rƘ!]@hpHp쀌,8O(3؜1(!4ᜓ6a"MS C i4M$ 8FEa" Bapq_)G8Ze(H v;mnlDZYQa`aۣ(rTFYpNRRʗR )j7:`1}CX_x0l1l1|1d>B!607 uӀP ft;4L2P(eȲR v|G 6pǁ뙢$wMqSfQȲy܅#m#\wHr⬥UtWlBQ 祮릮Ʈ!|߇qu\-` đB-5s8\<A8f,~nvk@}g?g"GYVAUE{v;1I`~[X :|9../%./1! mfoÄ28B;Gȴ Hԕ2QDʧ;P%ʢ@]UPR2 *^<~hSǩkTei^jhFcRJ997|M?ȤͶ-52 9ax'<QTijTuPʼy R 0tނ]WjbRjeE4] yK|+&[p#겎잝d-8N/./߽%W7WB2HTuQM }I6sE:(qU,Pao;C=>jm(@HFBk2'QB!Kco5Oĵu$q!NdXlFffz<p$IE!|?k'w -8wH("S)p3\t9y#0Ѿo}ZJiu(ev5/ާO\BHlhl6-os SlE{PB(JnB{f(b7pus|0 ͠DQiiB2J ik%[F5"e ?46fĜ 3PʞvkeJ}K̀B 1cg࿼`g[M)f]B)W|8R#ib<`cX`6I0 ! g{JՉ F!A>4+1rE)4(cCPjB,1Xnv4˲h~klԳf-_}?v=?c R)5aEAq#I$I J"}3l T.uhzj؂!{hρ/L?;kz>z<}]5`2rm]5/G˙]KF-'( h2D<fY6 F+`?뺁ќqt:`0 }UZO8 Zu96觏Lhyqς8ioҡS͊r{en-RH{\gPJ1Bae٠ld\7RRЍZy`mɗR]R}3ui1,\rq\q<8Ʊi!Iar<2x.-9*n~ Zu[Ǐu?^y;S-0OchvgQ*k8SHxp]DQѸRir{V+^f~'}穀2'ˑ[n|-6'CsBBxb `<lpA:6',f 0{5=kpS\>a0µrA8w]G(e>OYئ!ٯRb-n}Qy]R)YW=BJZ sOm2t]1E\.d2AK#ZnB嵩Ѿ*)Hy4:vIuีO$S?8zB9oe絠h?[>Rj}Zqnؾ)PaxV+(Ij4ų Пp,< 8)ht~B*[޻-^˜q89@)ӎc8i!I[ IDAT45ty/RkkucG(YK 214v\QhHcc hH%ds]B٘lp4S~"#p{pxiP爒` @ m+~UMc <uUphhx Cv F}Tunm8*X{fyK؋(^EQ4(M$ v{2bk\^^¨KV]@C4RZy0kӧ>ϹqGy8w|Q z.F]&<sρ\B) eƌߣꙆ1K88`zqWEh}0p6E$6*yfz|Tv:e4A:c~sl0MM"˰[yxT~W4uVRh =30+JK{}U$|>Ձ~%^xk M)9tKJ F}PX.\ʯdR)+4IaHM>>r`xG/5"']wgm¦9gVv19y=!lw;V+e9v;kGʆuMq4aT+נxB#!$Z O=x[xB3 @$IR NM @H2/Ula8jaU*{~ .>緇(M!<RȦAo6خv;ji ? uQ JSp=禀|lHi{ 6BumSK7$Ih0-___a1 y~Ή4JA[*UW*N2qJ#ϳ*s~K< ৸Z'w - _[ w2q7кi85m@(>~ğ'//a#eIJӍ{hn/ve0r_A|n ׍Dq?Ắio=;˜(;M<9FN3sd-(V ٣A>Ln}t 0:=Y`@ESȶ;lq#?nFUJIَmG ?X 0c$l6h4B}s@0HSXt\uAw͟7ā,hi'?u20!wpK(cpsэP V}[[MϤ#at2B:#SpES5( ܾ{/$nT]U;nh?oa*M^xEy8 |!EQ.+\__x|of;ª4v< C6L;I9Od'||g7sJyNvX9׎pm6pQ6 p\{1Hu;d;We1_ GRrkbGe!dN'1MI>,N]Y Qt"ߖU>>?)kh xhcN_> ;ZkTE"˰y|[|;<~5f C܌}+ E_m{|_x{[n,(/_-uv!,e0 !BY#_xj42S;Ƒ:̻9L'TOkW xw?~f()Z!j/Z+?ϲtoSD>cE)(GaCYcͺk&>ԮFJ J8& (FX.?_e;nS7aST45e' P$iBC4(v7sD!v=vP 0 0Z evH:.9(50v~_޽×/8z#Ρ.+5=>G~j]*/Rg{{;t:%帿dM=K4 өK?qyy$I 8pǂ9wcs -^vU(%_ə:)O$'㤁 i>Q O9:OU+]?F)X35 oP7ބEU7neT IRIld9nu]'WUU;_M#M !Cu D&4Mֱme mUH%!dx*+0ΰnj& fח( uYaKhzp?45υp}a&5l*/V>bvWUcl?aؿS\ ޭD!A 4& >v/ >֐FJ ݜpMGȯOO1@ 46. |3[g6ꑏEB 7p.K elA](vVxl)ZŞ|BZ*o f7}`6WWWx-.//1 Vƪ=9R$Goϝd9ݼ P8Oj_m9uu>?>\͆xP(3R+MA(B@:dR778?[Q3 h2W$?(޽{G뺔R ^BgV/<0yt0 J6a)$W8pA=o2lȷ9~R ^?7!ļvӠjTEv>| Rp"tInɴY*A bTjr;2&K}{psKKBȍyq{|>x7P V g'iq{ }' 5 hx2F&8> x $t:R:YE^ۿ!'/,L'TEzVwx=ww~* خ6MGhT .܈Ciŵ>4R 9!27\){O4MzN`|I$x<% ?%0PJgXCKau|P ?x$l27nX+gm~>3r pT(k5jf!k+JeC/#T9a*M^x`0H&\./)0QU ğ6' ؙ)XV5ʲBQ ohCж*Op}Jn3 ylgoAUi-_F+3)g@f?x NNM@RRPf\Jf9mp%cyB{E!WZ=/{VUt' -!+i@uV;< 02&L# a$|~#Dq0 {PD5иS0nL(1Wā0D4!DQg] )-EAX- }#|nBoH y0 Ca+srei-oM?x 0%U(k9BֲRWZ @s\sK SJo|ߟd\1ŋx ,P5tppG?Rg3U$eg_*em(+445' MB}l)h+;BcMu:XCΚ~jǿ J ;YW:LefUګuLqq􁾱~P`̘aM3~Zk$iJݻnTUU[྅ъG][,t÷W᫤~0&b 3adTL-eIN~Cem&ϫ,>}+}7tMcu &81CPhe*!16Rlv~F p0 {s$>(!`B֍MTl2D)\޶s%UTr YKO5my͡ߌŮu9E {c/=ϻL$N˗/?quuuxw']MwWإG΁9}696t,54M# W !p)53Oɹg7u:s{hvUVY,+kv p;Ȉ6J?VY/pΉ/|Ռc&  dRR]7t6}aƍko߾E$=VUuެn)pe虽nߜX@g8ٛ-LmdiƷ7It8" Q!>I:rXeT)40O"N b^$ yFX=|n2|0VHYACz~O=xpMe-!B:T48R P@+Z%.)l R82z_=;Ly,t2咾~OOX.֨T x]s*y*rjWcfOi^XcsXI)Rs!䥐b#$d%%9W82&A \-\:\<^xzQZ]\csl1N1Ss$tY!LЖ; cPkD W^i$* |<+1?cq@6 _]__Ϻ;TJ,r^/__o޼56av90v2&]D>؃H  ˰lQ88 N5ϙ62P ]ҟ [w_%I p:KF<>w%Dw9P!ˣ)Z pk$is EmlK8D^VjɗM2[.`bXӢ:Kyჲf֘ fv˃¥ki}; }7J|V^\7߽W/8` Ύu8:9r?DetΧE:K/rā)(F :HI i'iˏ0bnE}~L\253B-ܻ}q /ng84M_y~^gWWW͛7կ~gby%]ܨs6;'@eΫU`WQ0g|LPD]'2T(AO8P|8tfc>fFx“p= ~>G1 o$V} iB'^ v>n^)0Jr&X_\[y8D^ZJ,m~_MpZoB囅woWn |2oB(r%^~W/PRavtɔ^&54 H'D-jR"-S+ OqV: {)|=7v&Ӊ =D6$Gs&.e_t'?c&ޥivX\UktEsnmml\t\Low.NFH94diu_0hds"^'WD䂁}Gòq~B M_p'g@>|@` (AV}[5k.,ִ΅P/JJRI6l-.ooqvqb>N4M]!+ ԕv+gRڴmi#50?bYoxNHRiu1縸96֜)#ةsl~bа#R5Ģa q&gH@W*M(DTi%&V̼pInU O vįM^Mj٬޾}}w۷+\_{-.hS&iO%IYXD/|=\ʈj/%U'xaQy3Q2=q,]G(AjԀGe] 7'&KNbXB0XA0Qxk,RcBa0<)p8?#>|G9D`y~7[lpvyܗ%4 L h ~k $QOauAa?z[]m sz.u8rr}^m.65^} ̖^yoq] k'2=y?&w`&K1 '&mܟ$(B BJؤ̼JH-: "r?~ƴg3̳ /_/WP)t"Ͳ9hM]4t\7` =YO[M3Rj^^}=}yWo^YAH1ON6[OLe|n8n$X1X2XO{V) >o"| '1'(R*y%2w.It\.kt&o߾jBOtS?qT'剏hgDLݢGI8p0DdFnb jnaL"Yz.&ǪRQ8ό~FZ F N~@&J!| qV2Ɣs0Ơ:p#=3ggx-^Wcu~B)!d)MUv~]Bb_w T;0~ke9+Wgg7/KxXmVHă7Nt)'OToJP餲8w@(xr]0Iٵ.ąB )j3?ֵx'|$,W/^˗/6NBu(SB'z,ccsNOsG䘓(&8>ŵclb=  םۑ)S>r鏕h2>'aR۩G{ә7ܫ}hAp'$MܚQ1:o)('| _A={sufj)5^"GkZ}njk8kWp _LzV??B)@ὒT57y__kܼ[\j,8X4Nmƚ6CLޑ)DPq}8ͻ1BJ!J@h! 'ޖ˥zzzj:rjy{{y߿ :xg3Kz(dnOFJ^Qqdg̑K?VW nDǟ8KJK1:3#Y`#C7 u>#:5sЈ ETd,dGg--bޱwHxSwqNv089/_>ӧO PUsܼ~\b\BA[b8lw==bOxwwxE<~p w`m^%J `N 7IJeY<-fj)..|WXgy?a GwU NG Osql@H҈ I`{czq4B)H! oow9 )z_Wx޿+Y>ׯ0.Kl;`yv(9:|{_uw=Oooj%_I.\9Ju^z9*ono..qus+VJϿAU/-KPKךvtN1P?Zh`$ vt#$dt8W?DFI0W8~2TF6i7B ɿˉhueggg۷777l6KN$q`IF$uP3$ЅV\]03xf)'-FZx)#`1Kd0Yk4Uu@6h5 Tw+j.R?& RHYD3 y]JqT~1Rt 9TM >v c-dX,˗\_#ss_d~~[|ObG[h?!7Xo.why!Y0\lW/z/_WX}|.dJc6n/.#}7hOe jH%2s4|yA:Jv$2p}ab^9nnn4|vv(|a\@%C4HYdqiB xDѰ1iQUwA`=jX)"B۶P qvѺtYߙ`ف1-BUPڦAf|PJp)E*hmLY/!~#]sDnI@HE/Qd-=|Og<<>:͐g~y^c^cX@kզϿ@a5u=p>~O|`iDHK)L)UY*"l>z%n_s.«*ee<}9+i w;Ls'8:Jh.qgJbG7 n4gɟq䎀;11# 7ff~&q!x'h.c6_x/me"-nnnpyyf|ӂ)NE0B+? 4\*JOߨ$ @ph÷VE<-e(mk7ΠđhXz9N; ڦI[i>qֆ]AhA+I`- aBEGkiG BOc{h=!edB~PJBJǙ?}|2M8lم $9M?rݯ8l}ѯ3> ѝTjShDgIHT'I "l6|1r|7rD^~da}yq4AcMѴM?RttI8o!$8+V>*҅Q?aj?.]ɔCy11 }7Xa[qmmk:u00d3pLBz _&kf3i:Ǐxw&~zrDhFq (qŶ OJvjxwK@/4U]{po@&")cPt<ġ(@ n~CS0a I )щ):D4I*A0uHArejEBxpf$web<|hq^IOw;|q(|bsίPJgvUmAi}|_maZF$}I$MJ4͋\E.D9+1{^,//X,ײ XȬ38פMzޚv< SO=̽ZpG6Av_xXzxB}8-/7Z Xֶ1[SM? '=4[4o;|~q}}xu_vuu|1Z\'n׃S}La8M9) = $FɃ#& TfJ #q==p94-OMκ#T#pP@`09Xۢ&>|H'@'), .#SpZ$gW!rIkHEñ;>L[YFVL1ťx >~}u g9.n_ gLi8$@~/w_`{S7R +rh2G$t4Me̋LgXW\-EŬ@ygplyd)$TI6ۺ$F8Ƶo:x7?I-7;(am)dqo]ç&pLJHb>|(i39~5ka߆D\P?3\K4x-.4Y,K}/^fAQG?힗 DCӟ>F;oz̋ˉq~o!' 0{ ,~vnƴ3wisʹ-Ox_9 c6+ D!C9+)54i"3Q~th[eǤ !f3"-|hClj7_#i ބ%u$rxqVr--{z1ӠL!Λ)zr3c@)NeP׸3JBjx*>C ֵs]mRCl7uƋׄK9 Mp؇$EQȋi!IS$I[NGJIMt֘~1EdRHfi%h⤢㾃 D$R>:V歪,mQוwB@=XXe\ҵW=p OOfe8C^d-fX,-f^)h"PTJȋ/ {,U&k5GViMOU]j;ڤN?YB0%\ѐ/y8v1vuW!p6h2:'ߑߐ{vQo-3_>}}ݿREN~.\gfy/^l,.?Yo'&orZqYdT\08#S*](k8ICDi؄$"7PLN<[枠Gp8` ^@ Ieb|$͂Yһ!%4Ai5PA\rOđV&r2V'Z1=KWv[c Dl1|@9# 1=@ԇxG[0Xlzzr<}Z}i$Mf),L$i.hS&1mҹ+C}> wێN&j<=%ܐ1݁wԌK"x"%noXO֟.jjg*κ}&GV !.-|<ߤ >‡ w֏ AFMeY總ūWBw f.0&-CLM=# ֋o8F!LNr=AV'f$HR;f.D!_eX >pCa3.z%nC]4MQeX$%&7 PݢR'A2'@g(H ხxy3 큞Og/-c/`M}n;{439yY"+rH`*5iPޤ nqy}륟, +60LkAbarTF< c^SQ٩ЪX_s׌qTׅQEmb_E)=z~(pkiͮ=w7lk?Z SHJɴ;I@3!B,s f9*"'=SuK7ZoO0uk/bJALr􄇇;<<{:Edel6C٥ %m/ mԇ PmjH0Vg8;?XR`^·FI.w6ht"铎nڦ7M:G%@t"_D(1>98d Άct:Z`zM7#:v#aj#LmiLe*3y04wdD3cX-$*\K-u+Z'-JΤ,8kk[TfYm {S\v~[|(E !-Օ~MXZ=FUn:&?prL#QO$E( H>9CIR*("'祔z% N[= D$Y|kA,4 E Lg޷?'qɄYn%.8m|OO*јV(K̗Kdy(=!xeU-mPD(g(,pRQ+@CDx5[;ZZv4~ꎵG~U#Qc|d91]zh3;rԒ,8c[km퓩Wθθ?:Yݵ~ _QR&YY(Y TA)bi.Lmֺ2s@|@)һÍ& |(mp\^xb;[z պNj˾g4uӸ!XORPx|SxÑbK E@)%tzkR~efREMso 0"1JUYBȐ2~ [k *,P% MI!AM.Dc'oQx7 ÄӛuP#Uwm_oᘑ9YLBɩpm{zDSU 5i"/2Ŭ@VPWk6~"Tfwޣ)â@><wqҬT qTbgO vbI֐FةPq4WŸEM@FԉMy{?@hۧ'|áol0_.i/7Bm]bHyYl6ιN|ӈN&˸E>ړXu;v. :IzLt—3'Gi:ekOl1`sz0 &;?#;~${v?3R!9?O59BH!bDVh:ڶ*a@8( mm`Zg 䘘)8̸g/x+rd%{0Ncކ) xoy<˲|...+z*vAF2:#$$kP~g8iYٸPby*(XtIJ[D%  VԛS8S($%&yOp807$)p,ếgp?$rP-txg{$c@ JzSHq-~nE6y4ϱX\/vBi/lv zN^d(0y?2Ѕ8hLļ6&I1L4|H2A;A+2Y!.^hNs?;ض]qsdɐ%%jv| G["z"GO={r!G?`ĝ'{fKf-i J ,/S.sl.P ʢ-LKY֒+LcmcMe.Mc5S|*Ҕǜysğy+ 0˲L- \\\8;;CY} S\C69ss :[;O|~1X eA%j֑cc)'$1f P ?!( 4 pc*I]멁aioB<;cwoɇep2^G]W88h@VVXPgH$,D""fn.S1%G|}]SGb K*`"4{Sʡ9XF5{WV6?5S}.1k)IhqO>>_"˲d6aZ׸|>-g;iiJj8/yѤ.K}oqtY ꏪj#Ɂ (rIWD#7&e4y~rT"C^7R8p+>p x8!  8O8?DB$pl6ߓfb̎ 3Ll­%G 5{)yU_qUmusj-$˫HK`qQ9Ѐ +`jBvնCWyJ C [&nq_S(؁}w%/\i\/Kkl6l6 8AFݘ''u4( !ܛ~ᨾ1qTbQP\?ʣˋPN6Ġ:QR* c}eUW޸BP>0 9 :IQ(M~v> M5rB RYB J+fD:Sn 郗κzOzjߢ5 :EVhBHHص@{P")dsBBL( T@gITES[ց ~dƚW̼ ͘xs~䊱<֙?ǕuEEQur~~3V+f3Ȯk:HNatHhX|;8H ֊l݋MtK69#!.OShi:pا&pxQc9dZuh% v}>޶"56ǰJH-{dq\]ϐ%>5x^S>Xŧ$K ^gM31'LOb$aM 4> r0Wf~ G_៹I[~uaZ=V]"QGU%h@L{*$΃ bXV*{ZOL3\Zq`yeY]\\__rO>9:QqS?8n`4Q sR!c+y/1 ~>YԓQro`HD4d428˓`wmm__Xq?g>q9I)}cbym9 E9;`L㛊ڦiI)@*4Osi@hnv^ F ˈM|\;cMQ ",2d$ 5A B}(XkmDǛ'I.1Ơm[4MW2l=d #)}ƅoia޻[c%I <+]r;<`2)'Q et U`24t}8\A)PLa޻/!xs|8iAuiꃫf3E1uUⲅ@&Hs|SN _R٫Oh"!MGg@|:O_c vw {ǃqp0N r'3Mm:Qnw-Cۘ<~Jgn_%}> "53 OgkŕFyQ R#YDP2/(@BC/ExRc83%a؆`jS94ElvA?feB'od6"It6aJ\__cZ!IrBw;-d*0SKx4jzrjgYsCwKHt?etɨ>'|;G&pPِcUxEQ(FH C`|q/>I ėtѯѷ{Ikض 1KI!A X%.dT_l qe~"ڶPaۡj4EY&(޸#ƒKӶCdlJKe|HR>jN0Orޱ(m/)tqsmȻU*ٷyvl"_C?%lc/1?8~K~ !W(]fޡz"jQ$L+aH6E䄅Bi(k")J?x$A2V2/H-`B3xZӞ?]̉hi%rduLli‡b׋iUQXVl|dPcEǶYG w[hr{ig85i_v8i[A% YC)O"wi[[@1ϑ LC(4I8dp*ݛJ3Oi<6>W42^b)\uHJ#0ظRumlc'r;0~J|iv?V"t`\ kb%H )жA|!Os]YPpZ{ uֲlV[v|gާ<~70V| * \#VBG _L!9 ' 470@N f\{ Ä/$PEXpH A[/S-ʦվ]UVl*ˇ}P(%Rϒ.rlTWt q~ #pJ|E-#xu둻~4M1 "y֟4d iz3HiNjIVTJM|_&p!ѡ0B* "1r3Va ,?%=%ds:m </߃ rmktp*S:NiۢhsE!(>'Ke?m45꺆 ,ϑ,.׺[v[ԇ=Biפ gP IDAT/AA#X91 GTɉGcq${6=MkSֵ!G-,RD*)ZU)r*O!82;fvؒ#kmk[Ә6vow?h[#Oq$({/=^lȪ-ŚP܄XQmᄂu Rh(t.hyS$*֝LQ@PJlcy6/oϙ{cO{}a[>|'ǚ\"Mt? 2*ˮXv'b4jIo"Oxc|+qs޽%+…$h[a)u41:MŬblkT5IA]Zxwq觌@Id>u>7 9=j܉4T2ڪ7{SgY3s.X@`!ȅ)Ѓc{%I$K\bib=Mf }^!mG@dgwYudNU<^#U;ψ qLCDx`G 3[Z{"bsct bf̖8cZlPw058/sisb?>~pބSxC)ha3lacjcLe'q8aQyT#2xc`33A8@a6f+_wYZhP`T4U87LV!GFPojm[VFgr1jDY>B<8Z`τ)mÇ#NA Y,?~fwP78RzsQMܘc?m : K2\Oς4A^b^L<}5FI{T/#iML0ٌ']YTpL%|!Z0zѪTleyKL!;>En  %߉wdSB? 1EH7{TTyvY()D8)6{F6 !3\r* _ k7y%}L;i8D qpb!tosB>1uF ̀cK𦟖 ^/񹉆( ! Ѕ)D! H +;E,#vՈة#ձ^CȌcuN +*&699 (6A 2hA5N@:E#`P hUZY86Ɛ58u޾>Fk36 A[Ѷ|U-cjîK|cG\(_a~N̸+#E&D}-mƹ~l[y1k`. +}}|}rLb0lCg?3R!tA~‹^Ŏ'sc=o)韀V7@ `+#?g @8& O`@*8#@QyFޱ/tC۶+dkѧwCug84xmj/JIV{S0~\lE&1qӥ: t©_FV<ôk8cQ8H:5ڐ NvqUi$Yi"YBĢ$) 2R(daJ/ /07ygļB' M_ A2 k]P0^rN3 39. $AZlJI,?RzQyT+5bpߥ!}c}w)H?97z$t#+/jǿχp@So-z+s{' (JbeN=q8Fԍ]r VNMvW-:pdfQ ӖXjJ^F15-V5VvzUBӶ*bP G(`@4d,!.7&˶g|Gǖ )ǧG0.]˱׭y~ i] -Nӷy20ax^4 i+6EDݜ -6r"d&G9u[ }9TMi:L18M:i3R aW W;ސwa @3,>Sd~^9v0az8_NY ypO?b?P?RosoxymT_Oq' 7u<)NrV+%A<3㷌? ,Zna5¯vhM+_v\rIx_xR#EL C'tY ^nMwZZE0ohmw`Z? Y6)Ⱥ e3u JyLh9b<SjLMgcIa15rjs^( @H̖X*2Rς3zdӴ(}1r8x}.v)?NCwi8_ ^'pSFn3\ EjTfffuןW_/>fa?t%z2L6\oua(CccIC! q@W75V5ʓ7V+ԅ vv @b˰LvI'$$fhr|}/RY _iSf #OpKhHʩqQi/`pŠ"E9$# )mkS$aTc|tusJ= 9O-A^2. 'R`iyxzts[qZ^t[;aM$*K嵨ׅڊu+Xc8#69?嘿I!15@~L!5 KΆ׸#NOO8|w=8N8Ng0euzffx&%jvT°3vB3\W<~IRwEO\(I1߈<9)*S/ĩ~M2SBJHI2GpAg~I2|aS밙A#n `T0Q(V"H# JV E3aCP7R&'Q7' 2B/i>Mח̔yfh{SiAYy嘿!c~?gާ_o-89g} 3xF`-Vi8TᲲMcLmn{O_g51 tM3JU󥊢jnf%)gC }D:}k%{ua~\ײUI |G/g_2/)%} ӽ>Hĭ*ݬxmʅ(Yf 3ao$w `W{`AY{t: gYȳEhiP`- ѮVhkM;.9gewԞ3Vbj>. -s a&QQ.¤c,48y%9).p< !MCc sL1}ż/(!w?2!MVosSʸ7o g _cwW}O_c{vF4:-Q)- m.YKT hXg5޳luq>0t+rst0 8hf*Cl\*XRC,3 "՗o٬ tfؘz2âOf;:"RRy6O# ݠ52uiD$TރB gMsd'ikDCͣoNFd /z֋IuiVKYtCp'R{qmJZRB'Cfܩ<(]^,#56Iۭw1w)sI6ۼтSw x58ơWn1ǿdo(2W@1 ֢/>m9I}Z6甖ó C(+nIkGPʒ#Q7 5^}wFw: #NO=)°إ7 v=vhޏ\Fmk/'e1_B|1gTςKٟi7*!2r̉ro)қw9oSLQ([&~(ӓҮ L47H9=Mr *l{lv;mfH2)DLvtϷm)@@7j=(9NOOxxw0~%(XcBm.X8=O0#. lօƒf$]DN~j$&cbF !5hq#fUaO&یdƲgSUNf+Sx4(SwJq? DBh3;Oq@?*?ʙX !R1?Po(џw`32ݹ9 0/_SJhV&3P–ˋ^y:M(9/0`ɋ/8q1xX9v<ea=d\|2µ qy~('Y~ܘj6 =?Ne_,; {*,MSvB弜J5GÌJLٌS*LY.,1s-eXEh7+E jFR~QU6ԵX&UD6zcG ]~V]{4!{ %<\^fZc ,te,B3r`JFM9Xy HS85Bd,%~Jkз-jl.>02(Ӿ&!ni`Sȳ^"Dd)Mm:J(ѐSr8. wsSHoroRH?hw*/~'ފf|mߝnlYOeGUWU}9؃g8JffxV`nҚ@L|z788==Ç8==?p>q:q8Yp{wc ꦑckazNK:5z̳ͥ"^rr2_/rI;NA4YrDTb[ K4Lwu[l9( )j7S`tQވK𰘑Y𤜿UcѴ+(, <0 :1wZ=e@׌^tRj"` i|LA71JJĔhLG|Oޕǜ[@D&.#!E3~pf6sk\Yʶ~.̶] S3i]GREҜ(K9eJ bfU]nlv;ƻNOx|U]!|>凌|0MۊGKR!fc\1Ċ,uf \Iƌp}F\sFǟ[Hë0 *P!hF{SjFLᔧ- XH@ x1.(yV &5Q"|UAāz2}aP7UۙEf8/HPyvͻDDW@{H[2qdD9'3L3ܙ-dL|6W [ӹ]o-3ba"a)W}NkO8ܮצ]I`uyd7ᓥ]Z{O/%baw0Zh56kFF8 *9ဪÄ1 ?ZO/eE !L-x29l`JQcfBS.Tf#iP1TMrG`_npPg25qhqʙZEE^5 [=QmnTݔ%fIu0 8j8dZinV2ZQKXV3S ),)Ӑr i1s#%zOP)JmN[F)?wLIr~K9s8&\aɈYrPXB/wpΏ/ ;o仔c@`#HX_UhQ6kЮ8>=;ПA^۷o=6p`^y]yƜ1,-y 5ͤ.Vr!.’F  L^VYS,NT8ÛEG岰B΂b&,Q&{k1N%ő)`ALZ@a"jv7hV-? lf AH5[qRE^Xm~Tea61)S"#(Ӂu)1!Hc{H_D|= bD!:;+)`lA$4լVh -PXȢ^ I\;)'54;ZݫOp:p,Qowh7xxx#2e8-Y^)k8ҕ&?/oDW&W$WC*IX;=f϶wWfk`4B`i1X4\籵`5R1J-Le[JBJܘzv/rw0_q! ƈlXow}ۇlooд,3E(;aqn.$Ddty&,jMjdJd&&.^o|(Ӂ2s'tL'&>1;&g">%o -pL#w 7 &Qb\E]y?-_|YZ ڬlXu9.'8τ嗞sˆYl9:no?[4 'yoNQ9aTaPuaj2Xfъ DGt|@kEb\1xz󒺚LGo6#eS:CrLL0x9cUsSFws/szWՉJwe9?"+ `uXﶸ,Q-I9 \T(U܉3#<^dӎiSe'-dL3? ~B22#'0 >YoXDcMr)嘉p{0Ƿߗ|pp;)gQZd%Cr͢Rjլ` !TAR pB@ӈ4яX1 A dYYOY * Dƌ(y1" Ab|BmBB@qX)jL=gJ3sU0:'2TIR1_Qpes/*LE7>9= HՌy)nbw rΎe]N\s& ft^J-e Jy0H()@I8G-RȑM ":Q@z?0{&}CR*68tbs->rʚ2 ֢nƍA9 yrI  4]ᄺigCNkv\0WD UA%a'tMz*o*(Vyv;)@̅AgKXƥ KY kSL0KKN\*zcxU-;M)eInq^W}Grҩaʭ79$ty -n`|*=u(ab@NN'~@ ,9=$?(mr{x Uf_vzͫ7W?h6\%־2 $m1;0a+Gj R4 p9!@CV>'uvR z-oV]Ua`HL=-m)Mm@F]`_B^+tO7~>?Nbr۶EnNWT6I)24c!'"}dwg'g }9:;WUcc{,Mf37ԴԜw,{JVUbX,R!&qV x/SjKtx`"/G`ӮtIf<<˞rQ{;E}z]$`dB;#t'bř gU* w|jzWݷ>`If%!$d-l @I g)Y$)2rPC- V_ 7INt1J7TYnƜubws3{޼὘ u]c`abaa݉Zm53 ;tN#Χ8n4U{bSp] yq,4K>$9,U ڠޠ>qTکb@rNOBwB=X1!&/3(hbo|/YW_j5n>Yܷ 2!CĐ>qkiZKh&F,;8#LGZJD dlg8*)Y|N @NDpzJXo̒PXR4[e$&Dr-ƈfL?UI$ n)8  \yXa]`}›_nTcsN̼ߒx.,:e #Cq7( &5; }5U91{4Dd Ԭw$!l{Y\on;i<"KrtB蔒1r01Aȿ|0 gtD8( gX`aF ``b^߫ o5_T] ⓿zLbu@@FsEI-R ak™3'1 -B0 /$׵*hf<. y.UZ"C-F&ZbyZ`$yDٙ"0/&whš,Fp'fmc+?:]W[miכY$GV%fF;XF.Js}G,0zaUJcd&`\iڍiv~>} ꦑ}߲?f# NC&oUqЏ46Q%PJ369>!Oq(Z`|Ù F'Z*_nNo\evSo{|7ؿjn=\%RWͺNAZ(QA 8lͰ^H'SBCGSgס;n6ĨQ3'1X'VT[ՌXvsq}/ C 躳g- ]0f2)-t$/&]:`5Khjk+ImFmJŤ,V/Yqí0Y+eDi94GFN@ΌwѻG`;Bp^Pja`")Ej8kF=)*S*‹q!zZԵq's>p||Ԥ#>I6Lr({c0yFAӶh]zՊfw[6[6µKc sI"d&94Z#FEv^RY6=Q;)GI]9UfzF傷^awf#0cƥh'RhzF  GO^&pka@9AR!r2}҉$?Cr| tG5h4e Go'_;Wٯuuk׷Ϸ|OV7 CKIa\ sv&o`>f l% N bbGv W3`Eb*QG[c `KO!ـRf"r`  6cjϛcD<20?[,a*"p%NGUײPU}Y镰+*15+X?}-TMӶw Mp{=ŠwըA ג g(z1jڇ.LMSrTF4`cBi$?]Vqswz4sՌ*gV  Q=I_IC@z?90̮y^;uɑ\QOw/~yz fw=-6 |k@YlG@fs&6N 9fT Ñ cð xwZ! |:yZvM%ojZkۚYy#/`+7[ }'J j{,mUmS5r*{1>@;RBdy>Guik$#^e*)6)y98VauSaQ<:tk\"- Ty)۪q]?_wwbCNR ēpbATF$Z …Vk.N)bDՅ<[ @y pNHi@#B? fXguelj΋h✥ &YEqB. Nwh1tT<F< IDAT阽}8$|kF>G901U.V_ml3K~[-YknT]"֛-mPd8VsSUըo0J5 |+b )uMAƉ9g;qdGuPo ڝGV֨(aCt֙;N]/ VM][<|_qʉE\)hƴ|D ljA*N%J \J o, sЗ, YrD&",AbUI1@g}.%ՋI;^5|s{8я*e26`>Ne?g ?홬ֹ:9˨Y3Չ]TA}YfFIc eLI О\W(&I8tb)KqC0K20X(!RUklV7}}L90ѼS-e~PE`g!_o'~a;grwm7=}{װ,,C9`KEwcVMQ 2!Wʿ# vbI?|i5pp6)p`1gUDʁ7hTu&*Si $Eǝ:;;^LKN$3UM ol/m s00zye\ }9+Mg], h4={@)N']'9Ksyq\5ɂ OuXgo EhvEhZش[վpJ000st`FV䄗 |ۯ5n7fo6tmz(Ipc q'MBQo6_L h>e u@<+UͤfD,5?IqX)G<@F N,~!Y UE\ȓrdИ1Evmb792.&ى(_|JUꨜ y>LnR1K9s^?gxNfyt-N'Ĕ:op(HQA9"x侫A{6 jڝP;/#e<;HF/b5ZmO^_lzW: ,ŵVۤev 12!{̈*oW A@6Mm1^^ș 2NH'tz#(zyƉVF&[13:˞Lb4C_u# )Fik1켗B89?=*+MoKl9exg5+fg2@Uf@viW|A\G)Wf@}uw0{^./-4{OtNyo-|ӢZmV.B1Hq WDclE Z[ՆQe16X90Mg^u:gWIHo![m84Fa\`kVn}5v Ɍ2]/SR:A4eo: :krPeL`3LDIy}֧3;c78=f636V/s|"Arh)vt=Z~긘%Xh`'e'|~嫹V=gʋ{9?_xDzvD}z:Hd*3E;ҔEJrԥ0NNh\ 68p; 53)}7zv)҃ >iNt҉ _RpsAcsSc}<)L71]OJwN202SF2r$5czk N&;$Yع"Mƈȡ] wp_7p_@pAn=~Isdl 5FeEƛ|AM QUsUdff]Mȕs=oqAe*AV ~<ĉAA^X9 ;6j{յm;ϧ#7SC29>i^l8oSh7^xLznpTj_,$uq|b 5@#&bz|@Ls'vGM]x_(}?vמѝ੎hc"@X};R坅%LKW@ u3 w^V($3`q-DȘn࿵{4g4V_8oT&:+4:כ :2(. <kyD|WxftΣ?~T P B p)i<3BBX#JMfRj%`O9)"ڐRɊխqd\v%WH/-K^ 9s'3\ﳕxr7ijci=I;idҘ 8LSB[EBvx)#iE"}hR%$v綝R0odLLyqPZ kEkB!d`8Y&}pAVFl42 RX]X]8p#+}J"r#5+RtZi*L\YJx?by"X>~" s)@)K ;NaxG8YvΈrf{%= jcf҄q;Fi]q,{J>Q"BL9EA&&RJ gENrxYǼ=-8Mݩ %^r W3+=Ǡ%@6KbZ<>D7'˯?H].dmr:=aB ELCVp"+}4g)Tl7 FIF0Qe-Cc3 f5*1 ؜4A s"rWlEd68@r֖Cg]ۚ4L ~m u%2'9,A+?s-mƬ |%2Gu~~.ԪoK%!\p*%!HtSҎbSOr =yQ*v*Vޫ.xVlWY0 lt:fU 3 H1{8g;Bw>jc|w_W/ 2rͶfPxϒ"˪wA @N"&؞`8C4r: wA?M*"Q4R&$)CH uΝ&+, k"""z! ܫ_yohkmPI6Md<σ`//mI%8/7jڎN7ԦBBf,`O-IgꉒMnuQ'%,Ģt>!ĔA+txϿ'o.B1Rva-wwSmm tw-aU71%fnVkBշb2U )16u0qb0yxP)zl"n8? jVvu  T,o9em űv'wSӓ&и1*TdUtEN@wOO~/}p nO XmgA0G5YHp#d3g{wG|w:xEDa;%"Z eC=WUPgSf]i ,R(onYq$B+x|CDkLVs*WY7О9 z/ُu#ۉJ&i2Ji8u h;Lשq)Jt\%β1b:@|3 8 Kh0d!IfGv΃s!d cˏxS1{ [IÁ[,Ơ&MظhZ%/)mҋ>r!1%$F;/R;fa摽?3󝈼+Fo5D,aB)̙Ndd9/|1IK{yHgNIwA%1܂ta ϑYE彬g l _̲`!<&',v8tLχ`;sIgXxCYĦ5x]{Uu5C{9)yXg>Mian"9'9خ orۗ  6JÇ9nx H͏8q,f9 =@TN(v4qݩVMͥ"-HI?~9⽈ Ed T YsVs>764M}'$MüHÏ)4{N*W[;UfV;2f'++&B4&W& 啎 @z˅o7J/$jQG}3[+:#=Y؜~}AssѵϞ$'Z0ey~ BLD |޳0]RQE{c,"~|K#)gkϗA 2K6)L+4i @M,8&_HQHʤx!.xslP:#Ew^ *Z,C( @>IDz-laP5;5oSC@ݻ9 g$ *&Vئt΂ڼ n,P x`<1NOiQzWb{u &iOBkS9kRg^LӘTBgd:~9v 6/Z۩ Qgfj6+s~R"˲ f`P hCx?nq2mu}EE]XъCq;*/0&0`\=J<bQ _sx!#~KAXAጬ`@(EkJk! !%qJT%f53k Ey j5v6%Mx!:(Q暂D$lpc`t(n/^٫ܢ(+my1Elį+xB9x;4qN| )#<9q@LF$%_̑ȬNbjtN! P$[<3ށbqgO{M,U8 fϕI3Fi$pގC^01ҋ`2 ECI7(#YE3x3_b@ : SކއAy.D B^ZQHR*@@ ;8z; lǑuwakY)-FSL@|vcL|҈C7 ^Tߦ&` NE &cHPUe0[-a)R8xy2eH\QfC* q΋xLıLS֎rhS^P)43+H%3*pn?jG˿my ut y^@TmДtBfÖfIs=3ȅe )0̠ABDomˆjѤI#CJ"/Zӎ qV-*HuyU:jI9Av`-HJRHDgz ,22cFH-qH1V[H#!h-;!!l a?IpLYsk%Nw9\6DiV=,/PfAU7ȋd9 XdAȻz=P!WHtBUF3G\~i=WxLć|!w1S.EP~=MHkG_P&o'@^e%"kE j*DQh~ ,(#iGkkFa /5 4\O\yLLh -2-h˴F; I2><]Ny^uɰLb4T=`GIDpЋ1,D FOV (BUtQ\0g)%)ΫNln \<)ƘH\X`ςP\7(l C?CsU) RlQV5ʪ}w=ko9vb _d mT^T_o/) K( zxC`P)CxӘ I`8N=D\Q&漏Swc1H2œWDЌг~ xZԪ~G+ArU+ yLM20EKPZQd>4H 0D(VhDJ qMd=Qo>P,P]^ݓ;nE%pH$Lm'a.ef.2(RC#`<^ %X#[`8)Eƪ~A5 IDATAew!t#<"=8@kMv6zמE9N=<MvK*!3.=1pޱƒf'za{1E 6&xB YCd '`<ט+$#~S , +%3 pv.Xja!?ꗉH ԅKK2p~ z̙S3W Uc &wP<&QSj! D K,1qMyr sԒ bģـ8S0$@ ?@NDˬ D؁0 '-Li A S(!L\* (~G =cQ2p[pr7u# \s旸~ݧ( `L۴?6,ϱ]C)>޹xQ$M*[ntGᅣ )jY<O[F{‰hEa{YnU;A^w@k*@01H N ޹ }p`?Z2POzxP:ʺQ3VAM@A*{`}]l2LMcKE @Epv )Ü'46 @FQ,3W'v l "R o?s;/ڳۧc=G"Tvˢb ԉ/Ǭ8R&רV9VW6W65W] a{xIS#NcaV=oG?eOL~\M _L\7[-rS] ʥx9Zvrdq{ k <)20P@ !/L _^꒤Nr[RA%Ƕ(["ovج^+(q`.JAΑe%j /^(K0J):<ܞp:졵eBZJ0Y&BPI}/Bya\M? e|$59'KH<6P&#,NA6^B}`'2lF~ЏG;20)+T&tnoa:}P8qV[((Ls4!BmۉiY1/Z"(NVׯVX_WXm TM) L4IDZ }g-G&!"@O FEMC>B) RG`GA{ :I)MA3" T|٣3Jl A*i2uIUw2уCW9Vyڽ'#8ÏQ4΢:X5C ؟[S!?g؎nfxf!*.tåk$uMoؾQ U h`7sPwM-Ke 6iM-.Hd⻽El)@qzBukρ&8RhK,| @%@M $)+AuI(މ~>Ñ1 = Ʀ囷w> 3h}N ate t:ot؃EЬ`f謀!m+yTAN\ iBF넓lL;І;G;A':_aU›7ߢs(?wp[]X_oDmۏ8]7] /0Ⴝ8 k]냤S [1["ӟ%3c"")/<:v/ l` Tef e\RmB@2bSX kc9,e\D_oJ9a1q*Re򎡙~_3ϓv~;0zw5nnC|/[kԫ5Fwn`DW7p"̌GlvXov "TuP+U(@U NP#N.ObEk߉]%n[){\USlT.N$4i ծ8LFFY͋-T MeE3Hċ~1<Iݔ \a g A=(PW9*Ai@MߝߞcˁY nQЮQV&D-><+QB gj45wo[_jVѨ,GU%ҵpbpàC{<ܞ0a`V7+45f4|6.0z]?: <^k>B0H^Y=#WPNq,9޻8|p8Uhvxͯ o9^vp:<,kE$cQɱW^`AcaZ+Eʪfw Yܞ8 )HF&/k߈`)&~;į_Ŋ/{tɛ@& ն:(Oֻ ͦD.uSB1]]jgG Иd1L0?I OUj43 /.kwAJ:v‡}2h`\Gr'_&5hԫKz-^ky>N,jJ]b'C(A^(:yB]7d;0x:qj[ ^I*|)*z=P/ Alh4e#A;L4 sm=aKYuy7O9{ܼ|fBl*|x۫+6kMznuRy,C^+qOwQRJ']Rimn1(}j%0) I;\jr%W5VWMQYZ/鐥8dv$ {qhE4M5,1$8oR\{&j 4 VUՠ(K(Eޘ7ݹ͔iA EbXq紧|iE!f/z`56ܼ|`dYttPZnܞP C<ňkQTU0;3DQըfхFga,t8E%gf.4v^Cևtm7;" )kC?pPA0FvA8 62Q(a!=1M.H.5 W7^ݠY4du4ku "x1#=m[ (%sĜkaQ8a*pJ $;ԶoO!.j6E2p~3&*lpow7lZmPVMH +JCdi/5OdBU7F f,e9Uq`0tjۖ-j?Ư\:69x,HufSٖ7%&GV,(0<8@>;uo/oP|."pcTG%9uH]pO{&ȨZcjCY`fw{ahXI*B_YoatDYJvGuZNlqv8 SD&P7`c "';wGe5X+TVGњT$8 ޣ;8=\[\m_ [u( >1V&Dd a)EljKVV5I5}ߡ;8gAq(F L8]?,~n+bA, bD\ߔh6%U93)v(!лXިE:UsU-M\mAGԖnnD Ñy[g]{w?0|h W/^˷^]Ø o?T3wpƃ BMyR| E;/(DPX!˲8~d(\ɐzfAuP`GGT=zU'ʠ YlwFw|=av8CC?_dT'{f8;*+ Z_JGPxGn .6/psۛk4 SnaH Z3r©އRȲ|UTws3B.@_{F n~*rk> cWix}egӷH\`eݠnHi ÈZC+T ){bz8;;"|-B!h/cV7j8yO >iTg)"-2:\LnL e0lP5fffdOZRSy}AVj2Oq^tS;);v\:-y^(JE;y+@V"GKxqmT9꼋8|+JF)mV i0:lJős<ⳟd2Z>YL.m x,|p>-,#0$g 2dY]ċסͷc-UsR&-RV5yQZKuBU7( Yvx>9o#?@Pɏ݀uA3:J΂ 1u)DS$un5HZO*8XO:+e:xCe%tFmQ۶C]k}{q7W~Z1O#(,3TrPnh \ `: 3x2eea[XV(&'p#⮡!&*/ÔkVA0YH%{_r/,\c]gvj̫Xf2+Z48^)ce-)40@e0)\ѳ-%{)._P"g\yrevt?)]م JA']/^[;z-n^FߵXow58a'z1&$ԗU4jΧS@pOgՏأ#TЅv@:siN"‹';D0 h,g =a rPVB5t?2 N vq-ư;޹٧O3P _E\2K1ƏYE VCFT!S9%2( Pne:XMPstS S?R,T5pP_3U;xHm DU5(놜DJ1QiDo1瑮b=_9oz),;gn \ h,*d<:dI,'i'&f`_ӗ5~'F{/81O݇F%&R$)UPmlv/wx{;ܼzx̠Yo`W= 0Y1x-̜zzs#En=.sŝ҇>p}=P]5Py /cӒ63ct Lh,+ oJ0#k*38ft;`=fgGw3bABk?"(pQzoގ<bF5 J7.leeN{+GP̲>$L"̖V5n^ū7EfG4hVk4Zхo; }9e`,GU7X9vm߃}|>#;v=&OYIDATVqc^gHWvDZmQO(,h(arvGΣC/{яew8ߢ;0g={"iOn!ҁk"=fM*nދ}Y@MrG!s%@ (hi0`C*Tp$Fm'[S>5Tca%Lzp36PYSTȊLVM$+߃㛋URTz4HuНGE H]8=l5.O9o?0w󭠿S' m3dM/,;Ël^YV(vXov &ޣ8G3CrZUBUhlVT{Dc'+aG=L!ͬHaqbBF9c{N~E7iP (qqGopE t׉u^sRTGao=S={QU_8L?+Mz/FV"goZn RtZQSE;xX@Im[kz֦%/eyNuCT T) `LM P!F Gَ}yzF^UKh( NT<\KQ0{7;f0JhD#apvp6'L TeYaa{u35q<< /K"4q:Q!e@:46q>qqi|;x(4Q5ƾYQ;qCwD:;{@Rx= _ p" Q)j#wX@ǡ;NcXT k@ R1́]#G[~@|YA& [-SG Zix PYAdr H,'%!n/qv=1Q8w#Qp|QL2Uޓ$ęʤ?1qc>jwo^!Kp?)0,s4>j y5/Ca+ }7sQWTAeF4ﰪM6FpE 0lqg]]wRgyi9HQ {,&ۏ?ƒQ~DQ` Pڀ;|>v==; Ȏ]; Y8w3 +~ ,CTICVtcb\ 1A{LCbդe8 *DB/!)cc`]?LЏgv,3ASGGzpǎ:;v޲ C4`-ByR<c\2.*L=K ƞ'飠(n+Wg/ʪ}O8nѶ,FC& / ;n^p aAD8CsdPQb%$Z)#&,}TOye#x-i'$2Dy }yB^6Ȋ :ˡbyCxvtvx?p/"{uhI̾0E_%_>Lfp-DPQr7WO{W#ɑ#ΐ;KX@Ѓ>@$ã:]ٕӜY.p(7Y@WWegZyȜ@4iE1## i"|B >Dp}x M&N s9[bG!:s)^pP4?=gahWR^ErzlVBd,!H;v[nG9T51DH6("􋡛OR?Rw .9,I7tXT lVqu^~7_}W_`XDCp?G4=0(I=G6[Գ9fXw}з }{@Q#ҥ&KgO&u̵pAQ7~,' %7&mIQ!*rEYCNΈފ21c(ގ< =8I#]s?pzxLɶKoi i< *]C &]gAc1 giiaEhgtmZmLG[]z}=-clEx'jEe . i`i"G{ ܼ֨z?W_7~**E|˫Q{<?z{?}]| Re4CM@۶hm?@"$%8>wFpRzc(q-"@3"*QC&ȕe@[aE]F' ,˔:*DtLqDP c!`pJ,Uj'#19wTzNE5|d,#zDx8O8whɠHQ{cp =[f=v?{@w8k9x!pAaLL5|oI9mv5 cazOÍRD,<+jlUkX.bH3oP*Y4v.뻏J1/pqqw^^c\g(* Aj Ceɧ;h]#';T "Ȓ!1]ߣ:7y,,$%"SSbf ੖.kHJM)t_hM\Q_C WH"L7" Iؖ }{qwNU( "vZخ:[g@x;( L-5110p@f>p=Ǯi6g8" E 61`Eu&GYk#09.^ϱbUIrV%YHn}2Imq$6,&=E RXخ.qq}6XNJҮa9ce_ h쀫Wz1!{\.`}U`= EU#ȌX^СBYs":5pڿytr:떜WvעdPvp+q}!0s8_YRTtQQ U "ςIXa! Aյ9<#DDtc :CĒ\ꇜ_[EL p& W̲G,ଇP**+cّ!Q3G~6rs UQCo0:OU<1Y=)t 8Xo/ WP"@{<-\ՐbSh(6xøoM`YDE&E|ZǞe={ z%mh T& B0p+ ."|5&*]PJk1cO4GP}Xzȣ<2lQh ?dge?0Ezhs@$%3cіT Oi8%#aI1MH0GkI(%W[" 0"#kO$\]QjN.7Xo.^!p C"K̶oV%'̔(nQsg04Cװ31xd+/s ࿏!8C4=N}L[WZ*E$0af!prElj%C`=f 6 ?ƕ#?w&ZwC.yc\Η=fEMa"h_Pi2EV~8t~ Q6X-nl(- Ic7 "T+/qqL 0 xxPe 籐gгr]E* Aپ?84ԬwJ8Vbk0 @l!2nFS0Y#O;->T/&d0|LV~mChח@9רf \)3J?5]SҰJg]rgx%TF5`r{j 6zƸaUC(@8e麚c7iзG0 q %5 ޣ?>e֌G {p3w{|Hs6=3gdHKQD a)@ cl^ɴqaˋǿŗƉ[ >ӑЎH)(UUQ*TszQ/ jQ-B9Wb5g@3(9Y 3ռ@Q.P(+X) ҩy"zQJ!_a}27kW֢zu6tma]PTs袄7=LwL|'"'mw-q ǿvC$ S RRNkd>҇ ϳE`EG 2~%eAU!PRST-ʹr*jb&T =b]Da U:rv`P-&%`%":@k HX`IP2/:qxj 4#ЁĈA8l{#E{ Yκ8߀9\'=z8_yDe?v ! oy9w `M*eRw,U5EE.%JUԕ%J PaG ZQfƣ(ˬ垚JlGJ)GG #|61pX+8e;tءE64CFC꩑J#=*]Dq ,l~3=15q󑗫^nœ h?j>Դy*VeEΨ.h4i0'%3 RR - CA[G`$1"(Ȇ J 까BHpG4hm7d-3!p"-owpCpp){LHHD2J Lg#=K(ќuOk0ˑww3cjU|A.`%†6ϠOXxN ."rк"+0X2uy~ -܅\_]˜9oh@1DaދHNrygHswm"Lvq_U>{9hw MVrEm>n:>dAttA9kZU(R1S6T3$ E$SGg0G CmĚwgQ8UB0G1xr)tYg?g9>678ɣNSЮ'kjT"21΃ 53WbhEY ]V.B)R 97W<8m0]hF8#/!835Kp4~JJ8{qiޏ`LU(leF Wѻ3bhvf(gZZR=뉏R0s>mpo;oÞh6==$<9qsM|*_J~̑u_soD͗ mhM)Zk*JiA s{ 6b]~/O}q3w*˺¼Ċce"{DM`GFHB=RkN>g;$ȘN3S)")8g| D6h]8_L~LFc}!d3T"dRsm]IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/figures/update.png0000644000000000000000000024215011534217015020411 0ustar00rootrootPNG  IHDRf7bKGDC pHYs+ IDATxy$}+ kmGZ+>/IcIH2h ̛4Z!J$<WD̐ @of}ݯ꺻˿:xW+~UYYYYӿ<}ƶWZϗ_~l":; 6`wPgbZV^]m?jNo;|[M?PN72LTGlD-ƈ!s#Ǵg5!i/!s#sļ̝@L(A#111d21mO1d2d2m?0d21111m0d21111m0d21111m0d21111m0d21111m"RK/Di@vO sebbb6 Ljd_RKu*/mZ$>!1111 LtI /)8U K $I(?Oi@vO sr40AaKJ] Qt¤ }YM'{"1&MԵVaL{@V -PB 0P C̨9eX%%|mL&HDp8 qLi@vO s3Ĵ)ٳ0=#(f#H<ORRDi57{S(onqqqjjjllW^6uʕ қo 6-dnT6]*iu:ȍ7>r@S}<!gn8+%- P'я>=Vk}o$55V.} ?e+WUȴcB!܏cFKtĉc'N=q!lNĉ{;}mNzhc(lyC'>yϱ1[-w'};P p -q8}eYFG;{=~dp*ĎEv=UIe ɥ{u{t,C9Ra0 9_AcG:8t9p'؁:x=_jQ>^݁_0!H*RCz/1{>~IK.}vePz۽~\!ۏkZ'_l={Wqȴo~󛣣###ΥG>adׁ:睼r m@&bX/d(zW?ɻᆱ]]1lؔfSn6fSl6i͚Ҭ͊,vyYo6 tzSs1]J2_͖@w5ȧOii iZEJlngW!B^P `u(Ҧ+IʲRQp"Vǟ<*(6AG * lM*o}6؀]5}ؚ*2>υ|[e 2G=TU| *15Mၫ*DUKu^q\Z-j\<ˢ#5m}]$(]u]^ۇeI/z 1bXFϭ"4lxy!4FCl4FCƦ`q h5"ɍ(K(}b:2hC4o/躤7^~  Qu(Uʂ^jW$"ؚ`U/8(p9&@Q7E*;߁bw|/^z >ٕLaJR/!sc2?A"^VL&/%tΦmaa(!hu feFF5Hb#X4"\Fn,ٔ4._O|<ṟ^[4TZL0 j2Dv9ٔ eYrBWxi(M$һKe*-U.-.! ?_֯꣉XJYlҲ7 L[q!r\4ހ -㧲d>sL^-mؚL-3yrt֘4Sh\Oic*c挅T5BdD%bU# m@ DX%chAYt\X(eM0u#$+rX b -7|cnW,(YNIR^+z^ujPWRdh%2493{}vt(MGR\^WpR k[rL;w<&jQUPM](j3Ym:M&8F0wmv}z>`h>P\N_("[,K->_@U=IOjzF ^6Ez/Qj3i}*N$䉸<cx>"hO)'hӣh]K/sYm*!ʵ`ryx 4T^, qut5XḆ0,&d>`c*!2iL3BU#" HFa'RqdiXR"p~uE푨<Ba xv/@S:#!d9 }"՜%651_PČ$L]Œ CRSf9l'p#Sy}UIKRNˢX%@f'c`hef~aljjxjzx~abie!XI9/\-Op> ZV՜&UuS dR`RbB{sً`K ˋ+hD+Im*MZ6Pvqi3u QOzSaY» IUr2*WkWXFpΤ:ח*G}ӳu+>GL8888Ks + E`'\hd:ԐGs6C!?%ledpJ6J)u>\.Qيnrqw?~Ŀ[d[|qCL\RrC3BȤΥ֜46r府=l=~ \\\я~t=KXwjvd ad #ir#\6✑ndWg⵱`l^~ܥ)@fa>-2!Zd.j:Mw)L^B<ߚJ9dTgٟaj,]R/Tp-&\ # a$Ώ$;X,psen5a\7 dMp1zE#Qi4l49b~ 0y$&]+p /A@ tb3 ߢ&BOY dN6wut= KW#"ص< ^lsXA!UKݱ~="_#>fZPT$ \dr04=7?:1yy|bh~%3_I .jA&%bDuNgڕҥܻswoO%~ 6ޙI ș]/\zk#+h>@!bdJ"jz\A>%`2]L\JHK../󰁘15kLMH^*8ׂel=a e[`tQ!3 ER*b!&R9kKY ^_Y{bNxT kFFN5dz% ʽ587'<|sժ(XwdvgUV:)2ZX)yd@ea8$^(cqM5KPmj UςRo9Yc"#dC•p9_Z.zi*fc"F&N R@uԜad&t; }<>WdqErY`EqUȜ<>qyznl!8ctƹISs !QUkV6ȬK%u2%_ U.[9x&m"35 ^k /JWJW TF/A\̙d'c%|osn.GIxyqF&Yn!sDf0/-df/\Ilyds9dd{0⭷}+_!_CW3.aj<ƣ餺#5HJQ ow>D(߁WeAQu;2iF[!CQ1jhZ#{ ӝNY6F&&Zٱ1@&ճ-l,hGLF3~J#Z1QB(h;\n,eRfx&lRPDK\dg{DLI \AKH?+lg9D\U9 w4j/#)^jdfjΜ6%%A&YѼGX}49ǒxEmqe 3NY+Q2\-8FMT^fvypq>L;?M;},tC "ؕyǕi@&ntNdf02)!RD.&@nhV,eLuW̆=RC5=#4yJQGµ2%5+\ 汅UGՀ,l/:BZYDWK:ϡ)AQsh$$#OnFrǾ?={S(&i62n陝 f_ȄZV(ញ]$WF{37_o|w_O}ML8Y iHȡUƿM02]+ )n:\]L τF&Wri> ED VqߟVTY,%)-IQIZ̑85`]^QY b^UNKci(ϖE'aiϹ"THsIW DZHKSy*N>kL qm2P3gROE.) <-r16>S nbj.`jN& Ԣ9Y|q1g 5Bo'WP:jM-6ʍjcYcWIQjLOjZ-Kœم񥕹 r}" u" NҖY2xB U,/-/..-//BU (̍Dh},*bFhX&q4+K\1KV5d8S 6Bmk q4T( r1qQ3/6N "hIH6*N婤YS%IӧHzK_ Q~,™VETBIk9ԁ1!F5TLH(F8 fYl|?k3|]/dA{{m4P%j2=[h]:xOe21WAN.:2ICf. BW^M_]~ًWar(?XnD$W ۑ)R,iF^Ami9j3Q38V(UP^\HV#rj>^YKpJ%v/ճjIi u撤$$))IfMKiq<-đX}4UO'2l}Ҵ dxڴ =E~/r|t1IwY $&P7[D.t.3aX-sei,VŪXՖR5[S퍈&l-(T2[eMpXԁG̢yHPf$y3`0xI7jK-x7CbsEnDCMWѧ1'1t!D±8Pt)&'; 8O6dUnVRUDͩ:Rh>xwJSim:"iYN9jqg,, Ž"WY~JfelFJT$ ,H9_z0 LD^TgRBc-9Cm>-h2l%uhZA], `y_&MJ"׾5kesD?u\,Ree?^8{42 #"|ܼͪ=rnxnrwI5}zL]Xڀv1@lյEM&20Af϶j-}6|?RS+y?ſcIc⫾TlVo̊4LrD5?Fq8ڬ6Tt45%5/$*+H~9Z,()=.3}~ g= jM2є*E]ŪP`J}Z_p|E+ s%a2Y"X. ^Re9.? 5#A]]щA^ (%9"+Y*ZTcj#5cjE#Y5jR >äsӘm\_VV#tnGEcy4$F BL> Ս>%lebQu~HK'drP d+t.O5WfC+h2ϥ2R^_?2;y&lqlEU VոrU]eu.ŲXі*p(XՂ5-aa$d` o6 F EUTǘba-k^<\1ҷY YA5"r.Sz+YV{LNmd-Z¼kaAĉIjD5^GQYDPüտEԴfT|#,4'10ǂ .6o=+]4d\O^oy+WD"BfUDu\|\ ++Xx?X;_VHܯOڥϽQ1먛xwso?sR5kfS3Y#D5\fAAXE?KC;5I*KR^2"X[^PaAX v#`<8'=˜,Vğ9sfcO+JYMz5(βid7)@YN 7yOӭ,>n8F@چpf^K<^uYd5dV8-ST"$`L<ϤKx:MGݬgљ)\I|ߩ1YZ\Ct%T=&!O1̣h6"sãJ0A0$M@\FdRz˧̘U*gTiu[W*gh\5{]-2{RsS5G?yw n@]b6G}~^{7s?&Vʟf濉|y" ܿHz\& j\3bv䙏+ivl3bnWd}=ۅJɭr49YhB7ҵF!stT(v*&&^ Ӯ ^Oj.,,LMM%k#Kˏ_z#/>y#\An{|\_}kTL/&>y~GDhQbd2{̺i0I#ON.`]=9&W̵Qs=A&Vbg)7/v\X~߅Đ9`m02~k#?3o𛹱X%{w?~&?wVKi} *d@L¶9.W ⛞2f!Sv SW߹kҝcW{7>>OOO,"n(0jȴF44z$+ްx¼F>.5Ȥ,l#R#}"zrSdQK~@5ng#ӓw#2bsomx}S)*B(ʹT&A] Nb˱T,YeyT^[`848%˚˔,G$y*2RFb2P&TF)3`yunu-ŲXіU.L_(]b}/VA|A9},PdgTFdb?j-劾9dsH}ݼVbQ[*![, B^˫3u:NMԙ:V* UӍF@u'&;*ؚFFG]B68yuy{`٭CD&ZZ^ܬHͲ,v9Yo4F4!$kي*l%.FdVb]SMD:ƼĿ\ZQҲjӒe-UAR5--Ad5':i0I-jIFSE~>>L?) .>}1Nv(82#n4+XbL$?6\IS\ڲHȆ v6T''><<<s'C¶wÄ'I >8)dC#~:paxA1ѝxtyy'O>u>RHɿ*Z~ }?O<8@`~I.dM{u2N9 z3[pCvzO)3 wG<9,m#)b/ d~d(3oZr<}֝>K|Wzq5᪱\2FIh~⮖yoo@O!-4ȶG`dBL+qdTn՝ Й y։ZgydYm2Ĵ9 ך72Fk~2?1e捵2?;{RtDp;t~<3Nn3K]o!iv@fYn.$>Fp&_}>~ȤFvݑ ޵Cݬ v靥ÐĴ5B#\mK\1{˝=l[/SeCYb^&NףhFBlFfbT' Tlhfx6[^hwiZ[m̀sY|Vf C&぀hlVq }^1Jd_no̫i2N3{YϊYG~w])!G/{ddbbb:dl:Oͻ *-LLLLex"Pqx}C<2@/q?̧ Ob-! T<̐9(*fHv T uȪ ^(C`ŐbdbڕJOdL(cxM@2+-C&Ӯn%Cdxa!sZ;2E kC&ӮiQϐ9X1dn2v6#b^ŐbdbڕTd>)`_C`.dc\2v6OPԊ&麄W02Ϟ=o@<552LXT* 2 馧͘O4t~2@j$ι!*tubdbڕTd>(.hZ ةjq!sȴB3Ԏs G雁 VɃٗcEl w4 m*2?Ⱥii#C`msds"I@6<jWu5D&BvQ7X;dbb6'I+Vմq90C`WII:n N^&Ճ^pp~>:i@Td>ueUE͙ ^Afw/=RNo"awTFmTV4 y"ӳR2tB#yM+hZQʚb 2{zc!clv2Qe .t111 H~xY 4=iiM˩jw=Ȑ9Xdv#8lj쟓igb&2vTe2L"둺դ8E]w ?Ҟ@&.L2DphUzABL{c -iG{[fw^V{!Áb]_+k QЫ LR @>` >:gAu\cl{K?N'1ĴE??DfBQ]+Ʃ]2Lg jHMS`67׫-t4#F[ZLnqLL[METkcw2[߻K>z[ltt_UTl&]MEei$O$ٌPPS7߫|ᎻI{>t#%}*='L&]A 3"L$:W+~ALǾڽbVѵYf^o01dn2v6bLE˜,tﺑik-jr!=ʀ!!s ĐĴ+zdL&0/sbeR^?yׁLLdĐbdbڕTd}bX.2j˼}ׇn[|3!wZgRm}t!Z:4b1d21Jm*2JuH+55̫qYe͊LԮQm׳c.h6u!s ĐĴ+|$'*1QKjBRyӸL6afil4452W%L&]׭.|iU`6`.dZd\2v uYWU7,ZĐd&:"^/ 6$]?Đ9X1dn6W-nL e2"C&d 4S6=̐9X1d2111=(.h`{!sd.C&@@h C& SuIӈ2+L=WWm`z #S44_pJi %6Pzw/ޙ L=-g$C&Ӫt #S4ˠ=ΐ9X1d2Qm9#2V%@&Y~!sZ`CLg0쌷 xN?7OC&:ļ ` 297䜮k5rj%u^ͱm[1fS:(VdQVDZx<?-sļLZ} Ӷwmt*Ee7X;t܊#d,_3훞Ӗtӱ?or!SWϥVw\.wuA26GOA&4 2a2 kʹ \DSe1яT]n1֎D6$igyn#o2Hfaܹn1;v=O79RU-uumuTlXNdQe2mN<(ٌ>BA+C Ʀy ݅k'uU\{8!{-dnd[g,2Q"ҡO+ *y7n|tQ@^W; F<_Z6Kdv,QkV=]պL#K^13|o`^fGbU1Ȅm\mxz5.c֊CC]A^Ӡ8N;7k*Yu}k V?4c箘.yhȂWRT,*t#pq&wipyV?}_->qoW[;yOewLPhc'd_GjYvFy]Y*+9uxd&?)- D1i?13O5®*enmŃaIB 2g @LYg _6vB&BzY؂md],yޣW Չ02֭Ԫgadڎ:,Y_/]Y,/U.WM2s~B2zIPe0^hGvc9f2?p2SGVш,*9we{ c^^^Z#:7z:(fށδ>y~gl:FW/iiɐɴ*83}&ƙ[=fVUck2M.k8)ד>uU;̈=*Q4;( 0̒=c:C,2d2Mm9#2VOr#2@UqN2_؄8Ynd]826U\46{:L$=DWhamLLLL;@"lH!2߶e}cw?Q2-1d2111m>(Υijqd7O˾d^.f W-cV &=+t!뺢26eKLX ["˻s-;QuDži_wXt˝2Ff?ĴŐ9xM,̵ʆ6eL)W~ڜ޶d[p7211EiCj]Ȥɐy֖`h-n죟cugo{!١}/l 2ſ dA̽G?EM+a Q2dVBAQs-lAϘ[kD/Hh/isW+9D/uUly i#&;s1n Oy.cɼL&5M2-Bm%D(ܞGot!< vD|ǩ=!6zv2ze=0{A+uE};~IWX~gO`7 ]oгm(t:rg]le̠A. rN?ːDV2&"6e+ XEaRs^&Z,6;ykDf90v Аv[FvF70\ύUۏ+St`En_N2r|MoLC*un${.JMfdpq˴?e"ڏjLrfsc z*t]40lkːxk|aKCR7QUx~[=/dvcwdz5-&ym]sZYNOO/cVl3)Nd:kS] QޟYbW 4[4d:Mb] %5Jg6$ڪ/WZjTvBͲ} NGtšL#δ,z ^f:o~ -T%QgwE&]1r7D]ȴUb1d2G A[̖lY/Պ窰Ʒ>#;5e~D#zT9jȴ'nyDeY2>72utF&ƐĐ5tx37=}n^CɆT:Z:c֊@o/<{'ҥRtm5ΎdRMU {Uۻ[Xzet4l m7٥-GG;5ƴD *CVh L.k쫹>^'eIN2a,=u1n2xگgIXt}^E7:vV-]uGUjvJBIt![SnUT".tt1mc:Ț&@ *db'iT w򧅿c*=\#+2[}]< >xWkM277V1e5F&1 29{o%r,d2bRluwfa$3 .lSN]Q;hbZ? LKָL:m?ݬZٙChg#d^g;eͮSɴTt]4G9Xm)2N;=l$`F&i!i!ig ):g11dn2v>Yi2,L&&& ̪YFV2a2v22H_k [Õz^-/a7`bbڒGɳ}*PE VA& ,eC&Ӧ@486M7pðΐĴz14]!sbdbbb2Y&L ^̼aXƐĴ"Lie|;z2adbbb:! 28ȄU2111 R*f Ajmdx 14A ̪jVӈY[qe(qLLLL9Ui1@!j-|sHrvYK׵*4~{ÿC{ԫg`.+Wg=KWX,qfQVkng;\mqއ?"A(sWT*\`,sC̅] |@. /Fz)Nt\F{/6n4݊= XsBu-0C1\?7N̖މv\pkdLUuZ,ɎA˶^Lv{Qe:UŕOcܓ%8H~Hdt;U og U䷁l_UtKIx@Yɾ2RWK[dYL/ r{*>+x ^/OEn5MުbN7)߫.þr. @[=>^j]iG}i|`y9ҲLoȕo m9DítU G5Κ/˔\y7L6ؕ)k#9>͏ǝԅ۳%EY,[:VvNlEzdN,+v UAid[s8oG~e[ܢw-rmxlG.ؼΫB2ۃz\n]zq7a=8K?\v QMez;I\,̇zo }ܺ|aS]iTstL2rEe*;r"5Mv YYsxQ3dޛ\ )xh3 wݾK^9/;sqk יּ]H¶YnlklM˵s[XPNhu:Oܻ ˑQжo㲠.%kIg5{;3KҮƖ>x\Ebsx>@lޱܟoIZغ>^e~̽xA > W|%~eUǙO.LoLǍE=E<›6e2^r /o\978Z![%^cE;r-3m]K<V[ 浠[Ȟ_T^>Z`.n w+: C嘃Ų6vXhB272W7~)LTenҿw 1K4 t:|w%@ xܛIƣE$1<^8$c>Ql{w3!ߘ]?)szY}f;1RdXKhdJnC3bEfQuYt~ Of #Q̘28L2 G{,K?!϶M6MZi:43/T&dAƣg&, ]X27_mj?f2?EdV3&OdZ;eyT&dA##ӝK'iՏ(Kpd'{2$ 2xdq,0plzbq@*sc9?>;ۃeً'Id(æ̩^bX&ff\X2}v`L2 G^>T#>>>66B߸q['ggVGIeAdCݻw{$2ÔKT4L2Xmja>e>@*I+2 cPnW;=,?=He>LeZHeAʅC{CV5Hez'<̭2 cET[<{ROx,L!I2)D|c9$o̒ALx 2r3'd A*-½A'<+12uzI* 22,W)pdA* 7_z3߷̐$G,?ke \ˬh2?$ZO=>9@ ROx,kg2gIeAJĪe/V_U鳬F鱒ʴKo]Dp_tI2쌑\x(eS2 cxL{N7fޗ\X,stes.d)>3P)33[Hen,_OLAc2ݦ9&-Qd^{'[d.y<84=<9<5e |I*sugɰahiiP(lO$2 @Tm_2Fo8^t2OM׍L֍NFFf>92%W. rϸ:f$j13J$~nSʴԫΓezgtwܞs-H}4klZ5 O2yec9ZL#IˍGLq/kj(<"5|T}\.KVYQD=0>hٰy7f{:c9?>;k`!ќ=L* 2>tih_$+L.>虈~%X +uWQ (oQAKغO2m=W,tJ2a;zUfeuC~O*Ŝ2S̅aiiBx>d|T[<{y7 ZI/դ02o}|Z~'mzY&\їm}c]WLQ0~uh 2YT[<{`y >[íͮm0Eޘ%e)sm6e/KQ_dO2)D,m{5w2tXB:~K_jR狲(c_s8qK\S^32 cA*-½A?hTrteھm'g5c9|SA8&l4~{A?KLxT[$̯=;G%IQӤ8)h%>tL wΪ:ʎYErL̎d<p~2qر5{o6i '^+7'NuMiUʎqEx'[wQT&U*U]]]ssl{Fl|a['gkC֚Ak̀wb#e~c[8*{d|q[vSe~xf4m5YSoNN&puA5<3:Z;8X34D=:yǎJTM&S{{;Xqoc G"rlډZGgg1] tv$r8:硙 2xرveooM_Ameee"HRAք\qoj4PƊhA(s c&fgNWY:!6-0A#9ӣvv0m==X*Ljkkk͏{W;j9$NOq.\2Za {߭p, SAGz2 qfd--S__ BR8P(rMh&vm^A4bД2enΎ[cQ zTw$%!K"5ja]]~z8tdAƪǶ=4 }}e]Ag4~ysxxxJJJ^^$5ju"Z*h 1hʈ7BcM1;;kXǡ( i2GqI*^} W^pUDdp]5aJZN?%fdr2 cc"@-i%:L'}޽{qqq%%%|>_,?')4PDKM4\|9 4nD ͝(P&dcNx#ZP[[KRRɱDN*< 2X]*y2]$%rݺu+222999++F1̲2H7“(hr\1@#F5hܠs^hen2?Vk75#cG r'Oai8Nûv ?c߱䮃_}4p}‡]|9uЩSr7}Gc{7|?]n|sߴfg~v c>؄ػ7u_u|F~{FCh>bM| }7_̧p?E>cw7}Z{Xw]߿af {h}{;v{OJl*%-mCw>--sڍ)Z2ׅOs[T1s/vb`GaolX, G_څVU5ګG{b ד/\<@x}Wk;\vmC(LCXn - }(Dx>5ЉywhEeo SSSAq?MA *--p8\. Jw8}Z#t{a9==P&XZ"O0iZ[g]3֡oó#Q̘!m+Oc}%1La&1Ň̌ [{Ƨ;'[&SChklgbjzpzzhzzxzzdzz3`b''&&F[zFzJ_^%)bq Y iYQqaȸ#!PJRX4"=2.=".-< DRamyI I j M I P!FXLJ} >HTqdm.""3&S#{%j%6W#bS[Aal*L pH:th"mmN"juHdgvG&BO>FIBȄ4TcBB(h!(D%h4E |rJ+aWGb_߾mOr N hU#!!!11.TjNN$ܠOp'd NH:!tuuuqJ*sbbbhhIEd6NXA0jCc `i4M14ul.jJ'֙7qct15==iL`X,Cˠ2Z,b1Y,S)in~D<)mRvM SMSSITTTTTID7rb}litT5,0 d $4ʾ9yׁ|~oӶ۴dw}|۾S;yCg?|izwvؾ/v:{N\&cu-=tV.tjP[Ag]]?s+(*w_@Gvu]Aڴ=SO>񖠏ߠ?iG绂6};h˞ }A;:xSAΠ8v)U^uܭoM='n>v7:rȍn8xc{c+;["]~wWuCvm[c`r{Opk)=xОcA}u$pЮCv hc~E :v!Špq=.o =xUƒP~uG>za130apQTyZz.TWCg}^\Pcp [v΃g:kN_;x@x!'9u{Co/xo/pƠE}n(yo.VvO;v, ̙3ϟt,ڵknݺw^DDH4##Y^^^UUBp&\=|e8XhKKFe֍XVuUaUwZ5]VmUkCwstbjA4㛽~wBfU+bihVBbe2,qX]{}g'~_o}_33?ɿ==?0?|Eg~K?ճ?5s?Ϻa/_ˏ/?^tٟy'~__G>s ߛ=g?|3?⺋2/U cf< W3aɎqhn5k:L$,W=_ڦ*uJ0!NcIlEf*.Tr*sz jx|Z&4E I#K\ha+[Je*qBjAV4Uj/o.W V":+;.L7W T@\U`ڙrsPhʯjέ4fq TvCZI}*Ӑ0$ ItCbq-ABQm<=u@".H,CJI}ZiCZјmM9fzUFQ٘^RنC".YG)UGVS tQD1 b]x6 C U0Lh EH a<,_ 4ed*aJKk8I ))C2.6 ID.D];Ivٺ>LZRKbkX*L`*b9"d ŨH@$!T$3`4.I(Uq܄^2]Βf*s+up1eͥ ]gEu7W˫'!$h"CoS!7 rZ m9~D`aPaҀ~DN-M#rh-Sa SXt汮gkFEEք\S$)zЙsI<|_` ldž;?b{?7cm4OLvSNX:!KLC4_z^qÿDdqzh1L oh NuOwM X+B]Q z/txrrxbot}`[.xb\eFQ_\[)Fj)|Md:"G 5f*3{һvvN Jn& o& '.Gs/R"+GV,?Q~63@8tNG/Já,Qz*}*}*4cCT($'B' J{{"dhY@(,s6|,RBյdtQP^"@Z5i? k2$_/͓ICd\)0̉p]v,M,=h2 R,M&m|Go?aډفng>V߼m[>|϶e/'[ю|/.]-;w~cǧ۶mrO}l5ooy73=ړiUEUłT0!Je%RyV"LQ唃8չ@L_ɭPU+B+W3D5,q]LX4+*TMf-U6Z=M!L<[ a+Zk:3MPmmԴ jmk _ί6JHX!Xb#CXTP+7dfk3X5L}::HXM(|u|:&W'c 4q"m]ԥSi=:T)KP'qEBULCD("aY yU.&4y'E|;Yt;Ix+Yp+QĿȿȿXu=w-{5{%rt%J(΅Hbxٰӡ3)npɩ`Vy>3>a'Oc8ݻcw;sCmđbЭA#GoCyy*L$R|dt, 04OCE(MM C0P #È\qHy?^.{ˬ9|IDRb8'KԈH zlJФ*M`,20Le"Sĩ5bq&Q?KSV/eq bI,MGci"cA5%P"d$X$҄IEDH)AYRB~-]X"7q4bV{2E i iIiIƴ$5d&g$]}ypGz3321䖌dSFrsz1=1=ِ.–8 @_~/&&&fgg \ÿB|.5˄ B vHܤ` lVQQ}|<18t%zu[Pq&'''$$DFFBe{u6 d5 !))If4-*g)r8ʜr d Dj J@]xb1%2i]RX6V&EkV m"MlEzc$tUTrx<:kE5f A0I&@ *89}:KkA4M"@@|ULqBub:IfhRX46TVKeà:ZXhm4El<&_NɗGɣr,YX& J%ii{"NN ( Y&T݈ތވ]^Wq%2RTŨ e΅υφ,g Y Y&p>3>}Fy;8(#=vq(A#AEoiMڑ[Gh0c@pq`\bt镄) *n~(/ +P2JQ$yCQ(B Y#FG CsYU3w+n=j őR M]+qLM,rC|)#U#*I,K0%P QNS$ y"tDJ# M"G&ʼnt'Yҥ) i S’LY ScE@*Cn󥶀_S$gʚV)[[Ppၭ)PG˭MDJC"ŘHiN`I$Jg՛o'>'~c|7-=9ڜ݂iN6&E7$EY:XdlK/tĉ[nEGG9VMZM&qoa'?_aš& @ƩT*RX,AB 49 ]Ϲt & 4t:Ffff> ޽{.\ؿIkWN6CsctHCt!:TSBLgeJFF\tH4+=8K744mBܛ]q)C;55&@nK|l jq@)A#=? WDwqeKHreee Q:p hRRRDDիW![s?/ >:YMCh蕹orVf+OSiyxGQZ)7*Q@UV&7vUCS؅nMBK`$rqөCu T ].E]]\.ԙԭ\eKɖY#X\yg}A!66&Yթ @ehKGd RY]zIuziuFYufyu&GG-Ӧck@RP%U4U\2P[WFyJ Έl$fHt0(»v JFXu3%7+A؊+1Ȧ嗣9(6P2 'bpgN2O2N%`ٓty*B?88R̒ד˃Ҹw3g,XIWD!p"id4q BsY# DQ4itd#Dc{M!GjSؘRm*&LGAP9r 4IT Le@),%FIaS%46LGKU2U 5Y5\m{@ j//UmMGEuWe (WϫC`e8x۳e40芠ʠڠ;WwݹRJ+ƻWLw/mw/^n{so!7G:T(isr^k}U}UX{#[L`t[PݻϞ={ݘH4KJJt:efJn7fA۳5GFFGA\h~S8 ;O:8j5]bܺu t=:-T*\UrDw8!{#G?( k SG1D.WFjX:QuwjzZMRpF Rg"rJ*8GoiisNM+WQ @kߙ~(7U7^Mc[atB];_UU*Z9rSD#XkUes8Ye*f!29u@VE]vE]6&BS@T.:蒙Ɍ$K (kh 5х|52WϑeB! 8Sr?Cr*黎Bv (ƭd$$DGpH]˽_yV0˱刘K681()GcGIѥbˮs'LM-' E"2RE#Ԩ[`Y$uL K`E4SEHi°AX?PAFQh"SK&éM+MP[Q^QK*k3dr,G`Ȯ2dpѱ‡;\6%$ Lz4v@dk,B]C/WTTzvtFz!&YF&KL^ޕAYfm/P&5+ShW溗~i(*\=/z^qyg8kn5bL7϶`怳)m&X,S9sk.Ȯ]\`(xU]o ;;={ ,̇Us8,:33cX&&& ݄H" \%@s.#j$* X8NMLL}cǞyIHJ+3lYK*ݬɖ]Sm{ݘS_ 6iYnhWw.z>vSyQ B1;6m&s˵- -f'Ե[ R 9)k;x h+H[]\$h M@1ט6`ИW՘WecAc!_Аǯϭ2䠆ՐUiȬ,7T`H/CTv®M.A$j5 {t]li(j PĄ)sE#͑dCY232$wbo0( qˍT>p#:A6!xד0ɼ)UҪn/sE!Ұby8CRR*Jp1XFrDqPcTѥ9DɔF$Q,%.QIJUqD.&.Ґ܆ DƌL;Y|c6 06y< &ߘ'0 s 9fUfskŭ'7 y|~P 0 HP,j,&\[6%ؗp9hr2&(so~Q['pJ|)SK'UN._>Y \9ـir҄iqΞo!A?!&aFL4XRRRBBBB`]AlWen߾׮] %~򥸸7 ^olle:gL^}՚D ℌsttΡVFsL&C]Ϲt "wjZ8k”w8q$aGT4)MeJUp0lyKROonj&:G>ܝlgN : ]Jt6^]@ywS CÈkں!ѷ69H1lY: ;0Vc+`DN\+AMZ`! CyuJvӀ؟s+3JjE5].Pw s̔1mHJ#!`FJZ1-vL4@\(j.5l9WМo囀99l^s9dpJ#˜^qS?t'u VM<&Y 0u""Bj" 5p@^)C!6s9pνl"ˁn; F|7S|'St/Kt/[|?[+ )aY(#KU IDATRFsu@ WeqUوixX6RSPF+rel:R&US T~cߘ7f@3A#4BSȔ'n Fk S$kh2<(i).4p#D@ ]9UC7oЃ(4  E4@X$n*$MtI3CjbL`JDVKeB )&W|i'v'MXe䚠?ݾ_K;/Ekk_Zhkuֽ\ʕk7&T%K˩|򵯕kퟋ`_%g Z?̭[=zʕ+111I|g.n/U XY;$c)G.1( 4H ~躺:N* hB5ceI/ArD[ )ܒNv ޘ<6ReS +7t)zT=cM0_655Bs3L$}{Mݣ6p\59W(,=D>齴FIFy:4}(}@8 o ^$i4]e'Kɔw0ty;Q v 7f.o+KQ"hR3P(HD> 6lr9lߚUՒ3epMܦʦ cjEcJ11H.kJ!.UKبa 5*"uEsDa'ɀM.C]Pwyhבy8MQ`"(:BMjx*M_Ch) Ex"41B ډ&ૣT*U4_ ]P,K5PLqsؔ%n"D@Kuŭ_.272ٝmXB!KXhѡ9בn.[ZZપFRI$J&zԩg~ !60% Nš՜/+ɼE*,gCSݧF?%kQ4v/M>_2Knrw>Tt'XKohaGEg}n0Ǥx3B f\璨77g'`^a݈1cXC(X3=Rkѷ |.V7 )AIn@X;+82MODRu1Le7 PQ.Ld);=E*+:tv"yMU(: D#Oڳ,9ߖQBy-\SAes*AEsJEsryS$r4&4!!ca! RLX& YV,kD6:PASG#Q MKD#+)#|U@!TFT"UX)VG5 Qh:J"(rD QEib8Iu6YV&3fMYlY[̜+mϓ\I&K)i@Q(;i"e] Pw35= u@. *;D;@(e-8 E MXM"#B 4"Y#M@e)oc)XJs KMu݄5 {*n7d@z3hmygm_[I'_S`ew-PkYC? |Wo~岷_`ˢ5/Kּ,_/vT*d+5ּ] WJz+Pz-MXk#llIȔq(/{ .ܹs'***%%%// 3m|'Dwʄ\^GE___OOX MV+Jy< 1R[$Ӆ8X(d|Ƒ]&1oNo/.]WCn%(ӈYme.e|{~m.#m2qw\FsYkL6::oۂ/KZz%gk)2Ʈ 2rʛGM!]P[_+{٪^ (({X0Rj,uSNg'fn)V+{P/=EPtHyA#h& )3XF2Q%RM$GQ*xP,/ C X( ICŲPInHS3,Ek-Wޖ+6\%G&2qY (T2,M24L @[%AH.:%fL"$2N#zj̷"D8NOnҥDa.š$ErHT^i; ŠGr{J}7x9=4?Dndz{zi^_/}_|u ?xCux9@K>|] 7ߨXF7JֿA_F7 #w9\MP~V<۷ͅF>P&4fgI}HHHsyP6@j \^AK-=~?gFJYli.GQPU鋅uܪPJ/G^?/e_gԪ[mw?wϥ]:q].wq[#X]{ :B(DoDeC'zcX,AͤD˴nn],|𛝝 JXRRNg43Z9XwsYZsTSVUρ59[F[qPQmR-~%0p2u!&@Ww0&Cdb섈 'n5'P3։QCfKO}K' N.,M5{GQfSAt'[ aЭMڍUrTnF5:&2~S !!i7Qĉ0 )02*EK ֛7؉9EPhkM*m 3?u=Ypy~+\ۆF׍ZC2lz!?>3p瞵H3[`ˏgȟ{HC=0߱]33䜇+U;4n yw ܲe޽{yyy555"@L;2Q'f`zRUZUa4qp>P6n徹Iw!gv̨?-Kd]\<} E3&>Rc@b@=|[C+E$љNhw'cYa/{ypZѦMk%FyOk^6SW~ tƶe 1ñ?ijZJ7տNioú:g J}#ָ P%G'n/"SNDR @F*աG~޵o|&(a*:%UcM7 z󣧍.5;k@ω]CGvqL|Ԃf_-Љ t9mE=Ydq{<ܽ^_TO=uOa<)޾TU,=t d:)~G3~B, (3|/}bMmP C^Q;et}>Us#tM.MiUF` yר,MMp:coh2^g,WBl]5Sd XP#.25-J#TE"x 4V)VH @>T"4E@_Cίȫ ͭpXȭYͅU" f|R|Օtg:p *qކ, 4vn=K7e4gulpF=)Rɏ%}|>wyv_=@DxP":(lx:|×[7t--/7#t ;ܸm6*(߲IY+`[ߜBM݃#sϞ=\_T}.L$sY]Y_de}]=}yUjnUPV#SR:ʿo1~wR~PW薱][~+_}PZQ7ґٍº>SUNW+cwf؋Ȧm8Jڎ, +lݛaJ$gcbѶi;\Ʈ:nkW].nNs f!]n.=((uJKBT:*U qkV· kEu"o-bdNEUyipҝR 1%"eTy 0"k#K[f4^=6J-6WEzY}Y.: <}% ^%Mz(I@P MuaOj^"ȪhilflL!BZ#-lE+Gن9ujKۅR r8{֯+9r\^8Skl[oivq[=oi}-;2>~zs*ڎ2@~8 3XՄn]ov.KE \ĺz#z\l }wB&>>;/V 2)o3'_otv^(_,g j҄e,)PK'#/=lM'q?Y3À.}qҷ'mr[mZ!3bu>fK$%+I?4RhvQ`cNA 2rvg}$L:Cp2SvNuA!ijG31v KQ+gk +e2vfWou>Bb--5uB}'_Uيx Q#H0T) U¤YʢtEF pa6jC+EHB$q>\! UBp0 i(RQlFƪ1XrQT.FB\" "~* q9lb/x9GEv)d)#mJz4q[8Aj?^~ ҶU+l ʶc-ǪWn=Aj=Q݂\|h~vr|D$Y;EӝfΰgX,ő^&o'!\T.b]J6jH??>i!6 fr +.J {T\*n.X EuMl]N"CThrY|k(֙y>Z4 Clc5F8[`!Rz /FC$V2M:}1WWq4lu[UR r<-A.,y1[QVrUe:MO$>EMT.kpNxU;,!fZRDh>"3]&#bʬ(*EjALEfIhE3†VZ<cܑ# q\:ˡu#G(X Ĕ*Ncy:\ps|#kGi@\Cs˝J#'oi~̋2fTW׌̬= Z%{̞uYc_](%Jv!WWr̻(@_/BS^d^Kt?0wwGw759Iܡo 2-b?⋷uC햶d@֣$_a,/V3C^ 28Pl Ho^ ؘU:<>O,࠱ [=_wdvl4lX|`j|uQ4J>\- WCu`9?X!DRda"\!,K{!P) %"N ؁N(JRA墺 @.T cՅ p#X` IDATtyy:vvttUcnӣaåJZf0psYCv܇e#G1Ym %6C%C%Ceպd)M{=U>h<ĨG>"ѶUV]^fY[oU]Yx+]r6J6r{wޭ,E)=0}02mlJG4Ncu?dk"Z,4ͅu\"Cyx,noOqSw~n^sku=懷{;9?^>/W#Gp8 gë/wzam'$5: ;WٌM N ~;f#seݱ2=.wQ&As-1g ҫL4sfCof^o2u1뿋txRNYF v5m>%Ě֎x/s/ڑFi, H7=aHaK.'FM (N4Vm Z9EV$h|HF_bD6ou)c[WkQZnKlHtI&UY14Bh2T KN6P BXU"KB4y 2/tH=OW.uq: j:r4,Hav@7<0; 1nV+JU}P]֟(sbKT(h*3uTt4I|,=K6'5kCD2W194o6s<ś d;~295p.!l!3uxO<'+\GGJ(q؂-4 }<<xomO Vr`hՂo_h_h:/T6˾|3fӾCcU$IM}8L۫ʫQjakEyo俁Q·ˋ8-s!ʏT>:([t B4z{~>hE~l W 6c(@V!n#\dd;hJU$KZ+E2bSFe.1"CH1LJ.dyr}6TRxJxJpRpJԼ@!̣!gH5xmi@*mf4bC@LبL,$aDd tx`Y]UA'K<äM>_7e4= 4t^Ѵ%S7!7!%l- ׈Q͕h|ɨc484aDs`rV6e΃LsOgBbfԆLUPyڼ<8ywGe/ JrVAhh"=0"=vܵiԩyjFV72&S5!#bFYQ wsSv_m[a3hrMd]hRsav6x ۙ05V_{tņ)#؈3:}WOң(,ݍM]RITq/_$YC,@pxYƑDm"eRCte ~J$uW5:wۓ\tdDY>]p%yϒ}ȔNw9`;3{:&Y1b+׼ Oa (`垜4,w]`uy71α]( uwсMs{r{  uǣL$Cu.;HvRTӶVVUVFYћoU]]RVR9\ S~@hdA$XΠf28|y&_b. E"Kٔ_\+-Lf(/0T\^dyl=KsZVR)uT=FC>PiJU"I*m|SW_R3U E"UC H(e40鲋4iMvkP&Iy!KQRsU W]Հy*" '6MXKI[t.f6'c'~s.AX,NM,L j…HG Y#d6̎uB祇FfaNŚL9+L]oh0\I NçP?Ou{(lb"ezvWCڎ˼'Ob|'YY'C;d{ogeHe%5bȜDy5R3/>g)zѥ_BJ ļղL24,eA%RӎKv!9:P.UMH.6$MFOi[Bkrś\F]h0œz`XxH:vlzj@,i;:q|@؅׉z}-p-<rĆH[x54dY=Mėi^$$RMRc,Y)Q"dQZx]BU\0COǐ#I=U 2΃!ӝMuvu܅YȄeJ7&s{éyM?b͋L2;Q}gȨUDxFC Xg^H͵@]r< 23y3f)\Qf0KfOkG5=(ԭ-*!WnVm ʇL*#d xzȄ2נ[e gUBDZ"k)47 E|KA)k0s \c>Q<շVJUn,34]eѩ@KntVKZ+ Ьf9\FMlmB[ nA*̊|\P,b9VW?ї|H |cX%2Q$6zckR`l0RCĉMY35`Ek 675F;!bϟ FXly GpBfN4N] `xQf֢]*|"zм<-6 T&x}yKu ^XSH1Od)|bͶ^:4/ZC߹4~tyLL,'seNѣˋ2E:"߼,ss+\|zj =4c@]5KR3%uM&@`{R0ۋylRT.h+Ezd4A FةfK; Eyk^MEjтvԪh;zv QsUhcƅ=<=!8-f _:L B :bD-. lCfJՈXBF͑HCZx-mXĬG/%Ace` e\"ا"g)Q[:_<2E&FpŽ;}3VZy6(PxDOI4gdxQ&䓘;ۃ氪5iiڶSՃ1dg]&Oeu]&O'6;$2:FW[(notf]=> g~[paexR[pt 5y ~M[h閚@ku詒8[fz R"(1JUD*9b5( 4(Ьz+e_QcrlxCxzlo _r@.– l9zd>CpUcUcD#ef5Ii!%|islm_5m'y_*/(4)o:VeGVH _S%sW\ݸrnKV EAUSGY8ǔZ:$G#L]Qf[Rd5WַT[ E#LZZ%iT64W!!T\-n&[8A6*XDV3q:Cn~ )ozͩЈ^yiO`M~Q,tLhf3[:s#ahD8|A0jDPݞRt,/8X6Č.4pB$A|jBl_ nmIќ902vmw:2;~|5 epuȼ:@.e.We.򾮿V'22D*P(QaADwj:0E 0Bl܆OG\HI4dm@m{|^♽SUԑ2sC?dl :GJ'cS>$@C%j *p* yШ=$q$4e4FiQq2PksS#j(rB/K"^9,ƍ N ̯ `^(բ"ĝ5`Q,{9CuO'IN";'SN`XLcnVd|܌pxIMHfXXxrl>C3cϳ\E-4Nt'E"a쀰a~@}CaLv\~B8TVqGiju:t:}pQה3lr4}u!6H(j?E DMkBC3g7%8$Yk< C U>twS6d=0aTSM;i ] v3TLFAxЄhZdSg q7aӇ6LA06lę A ^Nl4$6*R$Vl Kie͸cbƈ!2bw(0exƆMsfS!2Qs0c@U|Mڧܖ?,Auf楠n,Y\ht_5W'2G4k:bĸH 1Mȑnps09>7_W=#1^ho{G[2 ȗ<:]DjAҎE/E/FCrb$cþy`0;ÃNX ao={yb؀;;P{-oZ[:=В5kK k3ܜvsGߎۼ}`wlg®imvN۔vה(Oٕi{:m^te#@Lqs0f Fc0l P 7"&p8jDѨ%X9l'N ۯpg3rWK5ݖu$RD+1v'- IDATA ]Kef&3:cFwGSScSnjgK>lzpǦ}qب ldfel!=3r avR|Kr0DBȃS&~"p 6 P 0vVW`:rbhU&ÑTv 7 ]jg٭qvaョȼZ(L>_Nd|᧙rI~;˩6m?sA~V-[m3,O7<>l>< Gb/3M۸u톭k^~?zi|N^᝵Y.l+\nx{ gbObF˟By׼~q>Ͻe> o+^ٲl~ 7Ɠ_bkOl~oT=:^^h-6oyf;l甮LyQce5:yK^?hq{bx~ko"?7劏SCȜg'y%uFxS.Ѹ{ٰ!4q˝=2@Bk"{᧙х~u7(KNBF{G>̽`4?"eAZȼCՓqw~-: "D+LOӧL Rj"GPhZ2B(KNBZF&3JFf*+++)))***((9ӧ;v;wnݺuӦMO?-?@M9pwt]E &D&btT?<#[^ڼyom6Q(TP%B#TPU.RܔZid.?xbbbtttpp~FA ?Njh4< LMM/7d"DhU?뻤g U٭?oƍ|#GC! U*bq8P qb*I*H d~nJJdފ!0 P ,d&Ds~?33ֻd(JNduؤcQ?JmBZi=ꇉpc d J}\d!?`'LB}k%'̡ь21DՉLaKyZzɁ Kx,˫ Ġעg̙|v1?dңquEzٴe%6!B^|cGr`xxmKau卍ԪD:mIEk<57Wh"DJ% DdDדgs_kWB6u}w2a ߅1j+[cr4N(WWh"DJ7wtNڢd^g&L]2a9e,d2Qngpd\nրH=,ڄ"<[s3̛g-*ZKɿ:̺,̙ ́q-$voZɢM!B+42c&Ȝ5|K\wg~= ]ժU"sAM2d֠Qo.wlXɢM!B+)dc̐9%uzWWRS9+1-(60d: d"Dh G=6>7E 3jmo 7!jc=<*Jpw8VPzź[n!_Tge}߈~SQ*.!B7 s|#s)G}$f?|ZL ?W'rrG?=D[o>JJdz}cT7e=ޑg6oشi|ݺK6ۗu14 ׵auPjU"w?254h X@"u?.oiW2ko{=9C#Se]*!Bn !dM'2&yC):y5GGp~_F7n߰a&>nhdpp>ɳg2Me]*!Bn lOdL Rj"str[l xᵏUvʟdСHںdYOmxu1lKLd'w_sWw1"Lw2j05**} ޮ'_x}y̔{bo9q1>XRϞ=#rK~>{wsWH@/_d.E _̪ԌR#dve;>߬|~os3CɼkIk0Bzf\сG'osY{?Y2\baY\*Qj)[TRT,D">rkjj(JEEEaa 'JAUyᇟ}͛7oٲ?ܻwdz jdB#TPIBUHE2߼žR߽(ʌ"{#?k/к7ߴ?l>=V:3˿KYOOWbR(^P_!Bn =k^ܮpMݵz26̮2}˝&ܑnwx d>~n i_HEĖ-3?7_[>{d>J(7}YG/705/Tnoя>V(fNE2d~21&93 V?xbAH}ۉ+u=17 d.0;GI:(Z96>=(GV}[o9ztر@G/|22'.=2rfWhb߾\7յRCC~#TVXr`c2o$V12CP/샅߮2AnCt-(f>gI_2|,(5ZeV;~Ys*9K[[|qtA#bA1u<(KCR_|Q@sXȿ$+^L&C~H&wV.72/{')CE4]!` <7ςbW"]çMex1,rk.\֌Ok&2-ay/s=kR㺎ጇ.}_Ȝ<2h)4J% ~Lא}P:(kv^z..L1!d饥ϟ׺vb8CoWO; dQLRCx ʼFd.>ӵTKgLfttի?U}Mع^A̹/MWOǎxbee%łTV755577Cb1ŌJgŧUKƒ6WS'Ԍxʸ-.ύ੮ܗa.Msδdd.^dkEf9sd~ZTIŰ,B%}6sY/#?a\1]mő9Ks-ky֖>OfXf-E.ij]V!3+$+ C(DayPc@Қ[nx̖b]]D?}5kVWFΝ:qˌ//\(t,t%/Yv+_gz34]3*+jt%:;ؙnr۬kUΩv^Y8bVd;O0曧=tbYȜ}v}{ƾ8sq>ߩs-%`zd~+0dc#d'Z25+B{Z*˼Q2L:su~pjAl@s(5fòk‹z^5|xYSSS]]]XX~?@Ζ-yyyPĩT*U&t:a(8/W5"s_0#Śզ 3Y<+Q58f\ftprED!Ob:OpǷ~wž^l~P]8--bO)Kez . K+?;J&e,Ci_odf-ù9~f- /2"]z\|*2oŐjܣ*1[(?m/ kmm5LZ=9 {W`t8Mglٳxfo-L01錽=x YH@!DR$s+KV BuW7y]juSUIIIг333sCV m2,!Nr-i*,NOJ MiEI$T%dJ_t!{͙RpرEOU[DPE=ȉX,jvG;ڔdZ7F>$NdDdjť*]m2mRZg9o[c6sԬmcwɈ `#$iqEOAN IO$SO}[HNo ϥͪrh'S+TJcүEdo)Ff?i Ry#)C]M[nZJbex6A( s c&kybted̩,RvaoQ${2u\drHzdw>OT'ػ"4OQWEbSCR1ǝTelMA;Dȋ0Lg:8UL8xuRG)Á>޽L~y{/fi&W&{LX_v<CۛxHX\h2 gD^FdJrϞMN>n|<\4ToܙAҠ:4u;Gzed%_M~!>YQs`j]vcKlzs%x[v45dsKEao0F#':K]@pȵ-šXJ137׏#FEl=C 7[\լ(eԯD1<,O: IDATc,ziSm]S+v#P(ˁ1̠ifѲLEES]ӫ"2Q("o{< B12N&"Blcc̠if1Ldx }gBTAfI4%YfvD& dq$DdH3یev815DPFL c,BD& d: a8d4ͨY&L\ӲHuVtnC0#DsMy!,BON 5Ҟs-9|sOW '2~@(EgONC<_Ȍ1{)V./1¹O+-'bLHjICuQs7ph姶gP~V2L7w?֍4͐Y擧,3ox'mV\C;pL@:nQE8AEtf:%k 2NIbI2PH4}:j/ܾ9kBhtP@ Qx>X7Y2IV>}Y1iRBY֦˞[DOWJ&O'{{6V<ֳCNTZ%biq ?T@XFi-j}iU&*};߈4͘YsL4'/ۨlm̠U FcRw0b鳵Ur"ܾ0ǴkyaP׵LSxŃB)'\)W@"i894Ȕ_*/KT^hTZݥEL.kE'F)?PɡE>˦07"ڞbW:΁Y$ Rnd#.6>+Αi@J- VC~~ĴSkIU*N[_4͐Y&˂Z2_lΏ8w$()|GR!YD? /'?]=sRP;YALQz›k224f7p-2hTA|-=eJ12Sd\ 3DeD4cWHt40:iL LX<l瞀9àמ9zh һ%;Vśqr3ʀif "Ss RoP^X "6gndʽ8iT G **iZڏ2o6,r'úc㢝H8ץQ`2 u~F0EG|,G 6QR6`sz/12۟ d%S8~N[Q CmdtW-NrKtXS®']7 :Yg/G.1 S+If,ӁLe^+"B_纎G 6f_ o)c,BBkkidR޵L +ل#jyyjVIꒅH3 eXLp܊DP2-1M_W?h}9tLT%B*oS*{W* B8d@d7e(tzHݦz]=gZmF2946cBdױn\i= B!@f];s9LOe  |u^)OVSI1d!tN.W/> Baյ4g7ݯfsȜ |o="l3XCS*,*+m֕ߣP(Zږ;uqb\Ϫ2,P% &= egJOoy&.8**7<<СڳiS_ N/EkuaGP(5M˯Wkfftv袵S}͚~z|ǎoٿ?s犢cc;$*U7fy1 2_}}pd^aǽ+~~BPn; $FxuQexTd:eҐ捈L1fkwg#+c`GP(zu׳#?q^yp֜WLR4H3 eΛxph,+1+1vˊ5[|Q( 2N_H?v*2oY c,ӎ̜l.ԷWˮw[Ƈυ#d_⎖ 6񘟎]赮n /!Ȅzgdci812%=]d.d޾_ƽ{LVw,q:v^ P;yn#S/(qODqs (Pj#&CD@[M\uBI7Oej S:|9 iTZשr9DE%u?Ճ<‹,22!dAEf,s5~-2^ DskU|}/7ۗe̥R3™@&ałS:3MfM9FjyhzOA{ɍBٻgOiO:2B i^=OJjPC|E&TFϵDZ&ik4/ fd ]Ll.bILՑ5浐)ر(ۿpuy:ѱDbZˋ⡡di0L+,HK% 9D{g՝{WGV?#vdQ YKe6!8"l3X9Cfꃚշ\=i\Gr{Yd{ͫ#S[_2=Q {љe:) SVq'@,* :w(}֜e ҆`uyWkGmO+[@EK7EL{2ѨtԁE-;fPq/B* .')~Ijh~R.&02y0/S}-Xb e~uy󸒍GUvv, ~ L){So!SͲ8H0% "#"}Oyg}j'ozQڪ;9O݀;A\ں41PZ3ЫezlH'z{S㾸b@4[^뵿~g;+Xw|ݖ-bNݽ'{ <& VbDدcc:7O)˄:*e!!3T^72['2_\:zLe DY_>y.BW9ڝvDveG;7Y8(E,cd.d*9F1Di_۟YGP(7-ҶE]制1gLFudXL`TIP',DBAOMƠYɪU$݄DP,~M՟">tEksfd1gd<ݹE=]ifL WkB}fql aO_lDlU2vs|paݦ'O=_zu!"3HxI&ZCCCf8777999<<|Ϟ=s<6[͆:[ˮo@)K=Ph5.yb n>҃朄[9s8V#JFXj<Ҕ*9#zog'Odght֮]}{?~<"""&&&555;;;;;$*U7fy/TNd]36ToI2٣lp|}.9"Ij.#c.Ig}D5 C+ th) r`ײ_t FtDGBtL@` d4`Yfko=h#0l\uA1%q:)TnQțqj.謏}ʣ *QJ3>QQ%a5>(¯@{։~}!XbˎڮkE=)5L.~ B=eP*b eس̆ &Z,S+e4 P&ps|o[h 0S{nO7)Y6=1OVPP٘%P.꺭s|2:f,gTQ4`Y|w heW}gҼT<|TB j䚫g_r[}KR*:25ZDDTW^ILt',e:MzKR6 L_*ߙGlw8y@4#JmdN38/+|Xm__sU;70NAc@K esu1S3 ;ˤ,GUZ!3I(H,+YMxѳDPeH3 eȼEu-![r&-22]E"S.L >/YȻ}sះ)_ f( +y>b_d_]dC RIJU8b1F2hLފDPo{\s~koD:,2-RG&#GMK=D͜H3 e58,aD& 2XdV6/ ,ӉLjcf9dOjZu/> B?X[X=䗑.fO"2Q>ifѲL@Yf8-UwߣP(մp9w~stvyx?JYBD3\栶  IDATu:jUv!yf<3*^;֗v~p8:ȵc1=٪?2qg*1+޼\; ]A>ZzVmR'"mLW-Htg83Չwm(3== q2&d^eCf 902QGs s8CU}}O7^Dm(7u^^=w& Sc`0"lbYXY򆲳wv7߼YW|PW_ٴ)t/'w9r_3dCC3-MdJ$tW3szóC}k;vD|MGf;WU 6ؙ& VbLzdxZn+M+~ڲxI̙Nd˿ uk\qyM۩'/g|^͞L22ifѲW^K}GS;OtYoɆ%!2gZzI\BU8v<2^ ̚$,b eΛx`p,V5[@[64t/ 9Y)l>rc璏Ke^΁Y_ '=Dm29dZSj`b 3'zȜia9r iuiE7J8rI݀YY&?JEP3 ] XoݮᣩE,WaXO3-2gHndiUiySO9/{,/ #Y&L12%ZV c3ifLP"sj>?1)A\\I )U=<^modi^SLXȌqwkJ;|2ȩ^KZȔdT310^L12Ydܮ⣱oM.wvdDŽS(A~f|eoz2v,.lFkodFWrx؎ҭ,seiEӉOJTy-3D0JT+Yyy5 \fZ"fКY sY" Ђ'jN[Ȏ$;}h.ًzr-S$KdGCޟŝ&pe_3Drv)8t?2+qL⑳7(!Si`6D3˔FJRW0R$U*b e吙t־e_)2: H2TVzFeYAp¦ZKf);&*u!FIaEߕ"bJcFVV5y|ұ/ s )oye*]Д%=CQiqI>2_UZ|Rы.:?OuPt0"S.ƐYWFck`D&gHOo[_LOP.KzoLzK2%òUz~#Z+wjTŽ#mɱ44WZKFV6zȕѩǮ^;* f,˜ѫye|tv~|Lq@&t}@Ȕ8I!"{MT,Sfw'~Xm\j׍L"2 !6e #G+(&DTnzqW!SAj+LfT.!?V.m0J3Ę W2-ek 24og3;OyDfyDoY ɍ,EfXdA$˄80kPf.\fUE\Cp kA+DL k+5v߈%{2;0. ̂ZqZ>J{?2 z!2gZeΐ2sՊuJ&=`GLY2+6e/-Z΁;w޻54+xxǬx 6xqu,J[_@l5^"sHraُwtyt8G G^|uQ&/[22g/~lr]k#m}Sq]6I WH Q^Nd~syWߙg +VX_^#PRCdndH'jzzzrrj 殮暚={Y uS7U'" 6iɏzW7Yu&˥͗ZGg/z}ڵ۷o߻w#""bbbRSS;;;$*UM"D\LuDoXƦLDGԛn~P(mu}#lTAXs =K@]%oJ[PpaaJ7H3 e[&36lfF}Q( -ey,vԼoxK\z-YBݲ*SڋK %ƐYfkoM[hLܺӗ]B\Պ;̓uV{`eO2U:)N]P"lG#MNNo =˨2r.{ rC`S`VB+CSB'Oxd%zJ8ԿNd*J}uͷ, I_{kpYf-UeGP(W6f%.d;vLLAa`ee* Wci>Z-ӫ(zXi R<ȭpʈR%J4,5fL x225eX _mDP(Md\(t[!EdP@T(E,sll̔#2Q(TJ 1Lش4*2,S~-"Bԑo>Df`4YfKKKmmmII "B4y !2![lbe˻uVDDw}'GfC;@lݽ]Z y'Ċ;VlNb'_. _|~u`_>?kvɺ.] _,7/a-&{+f_,lo2l}* >{/>5[f{lpo!>OKPo[f0$߅R[gXy9d6"\p\++[-lyWFJl}nÇ6f%Guvر~@ srr&B;ϳaWJKKŋ=12>o ؚL!&͓MM}M}㍽c|4wFLuOk;jڙ6 `t >fKjENaZl tnjc a\_W Q˛a9|ʕaׂ-Tw d2Q5ʅ͆#Ƹpo`c;fgLsA^; HckOV43˝|-oWY=, !.$&ؘpF/j1fi-bػ %#aIoFQ rfn9hYл8dnܸq׮]8y$\|||FFFnn.d 3 Bƈ4eX,6TVV۷o_r~կ~u&2Qh|CW4z3 ld5Le&n׍׌UުNYfI*5QFbq_|aOçZf7Gott!&2bV;u+ٍWsZFv--{{5>%d9WbW"5*49^Ż 4D1Edձ Qq<55ҫϦUI8Rv: ^K O3Mw/mx6_;7I|1P2`b)uB)( H(27 ʆ*+F+GS*)U[5ciiuuS馩 dw6HDDFxFj@AOfc#D=`$f;u~*~i:tiގtW 4[jSǒ7+GHqF0 6(sF"l؛rG3򰐈+0IBe`E2(|0b8j4ښV3N`ÔEG+Cۼyw0ӧO_|911133 g,ih+$텾R___QQcCׯ_?zuVgdFM;/꧀^&$Zn'A"x6{ ]Ǫ̃̄<^Qy*2zN->^$qZ d]FB:/l0tNgWT̪25!2 ÝQu.lZrG90\zfɛǓN,>Rz6Pz*F'2.K.y-(A{ & QiM^VZoU/XNfR9jN&ok ꥑ0Yy@fOr1ŇL4j @+d&A&K:5dCL<5T9@&LM!8ETFfbKb fPJ-B18g&v"+{?o>{,$IIIYYY'C6"3,s||z ޽{p]/گEFUu?˪v!\E/S\9 LZ5/D|AWÎܖQq>y>QCK-;{LJS7pQtf)`Xr,g?2PO`#M-;aJ)Tr=nr\|2'oK,8Xq n!쒣 n<9\&dFڑ|9Cf]edFri|o8Wfsv]hVqԬQ)eȬRLyP9-5e!,%CfaXi^tP*[fDDhLܪOKNJ P Ch?f3 E԰{bFlaRApe5f9jZIR=gZ{ώʖ-[}ȑ#ϟNNN<A@&X"#"1D>2={6555111:: ӧMMMEEE))).]l/:ʰS Z~v-R1iHKMY$'>^=(&?ldk/fLfDzyI)nM)9adR?F|>=x'oJzrh(B,Xp (D#cqq8&0}x=:h$+bZ)55ATRv4P5 OMׯ7& ζ=|޽{III׮]dBo>=2Ngm#{P(0Sk VFv )&zfToUI?*Sdʷgݠ Νd Aihh)++Δ'b ׯ_>w…C<}IN'P(0"6f&VFvǧAŁSɺ+./6L #<<|ƍ###i뫫3>|YYYiiipvڵWB/tŋ/P(a6fE` &V%XzLMKFϐ J N>SXf36IDATyyyQQǏጌNnݺƍP(0Sk"+C[sy Gd]J1tLdFr&A8t O8B &0()0+,0./K0450780:K>WyȔSS?)MSSSituuuvvBgjmm ]II ?8_X1 2>`t`wr^"2.*2Ԕs+Y&& 6==Mn%&t2WSSSUUUɩܡ2N( e "#`h`k`n`qR'/2 5 r-Ag Ёz{{t'-dsS BC`Pĩ$ɥ~^"2)dRU2 'b<; >A-Q(ʐ"Ex!%,yXKD?3d2)ݕ)&:P(ʐ"EJBJ*,]%Oe )oKt8ԍBPoSq) X!2&0$PS">DP(#R"aI2qOpȌtEtuk6)TEP(T0% 2I ]@fץL7F<BPty[_L B\oТ"BP3*OQ( BɅDP(J( B"BP(]@P( eHYfѾ%!K.( BX,2YZ".Q( R;DP(JSK Bt[ "m䷽IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/figures/visual-diff.png0000644000000000000000000012171411534217015021342 0ustar00rootrootPNG  IHDRw,. bKGDC pHYs+ IDATxyՙ[y17LOOn޺ 0FB lnwq! hAB[R*վYYkm}FDF* l+ĉfVVjpo_fɯR-_rKW{㎏~n%_1c(k,؞i_?pJ%?M>QPU(WMG_x_T17'?G,[Qd_?/9)zˬ!ٛMꟚ rY*F*dXϓpaa Y_aΕZ¿-\'Rj,n $Y/ ]ll~jgm~4J }'Q.:y6*Í^ڟ&(8Lw-c usdM_UV5MpM ֵ ]#W QcCژ;&_ ]DR&TH:2}̻"H7"WZL)} ڗ0oe#Zf59kIZS3-5mMM[RS$0iIN 820fd5,'u80BC҈19jL̄5;iM9VfεY:0@-U8i)ccebG+0cԶX׆-CASߐӧ{um[ܥ^:U@YxN5Uh*Ҧeg]e|}qnb+pdGc(eOo`XWGkq:b_~],fÅL^M~E"`z6DAC)QB AD9TApBh*] Kk/apyC *$A߽'Rz:>$B:}žx_GK}˽ ,\m#틽 Ho{vx gwGX,V Ldy| V[[WɽPhXѢeaFk7jkU&±0Ik,K$z({_Aڼᗱ!݂kM_V^ 'd;+u%ę;Dz薃xX/ lI-5fzׂ3eNR&Ѿ˔q#4$Fx(g95eMO23ܬseι:Zk:4yxA/4uU 9nڵE--߲DĵDQFkXYSM]ۣ-/BnCs-k\>cYV*c˷,ֲ!%˒S޵Nd3Rזk}< E[εny-~VGpZmkY>v=!x:Z-@gs9ju5/v5'񮦥 βlt6;M&oGJ6ZVJ*hѲ~ˑ—Sr* ϵkZ >~ԼbW ϯ|.\X bgp4)Ku^jt}dB( }W WzsJOVI+)9Z9JPtI"δ(l | O[ 0/MQLKlk`lcܱ]勶xWmgRC#wiry^enƘVMi9:g| ^޲%%]E֙kKk7D+Vğm |5]PD[vm>ݨ.Zw雛4ـ:GcsG^ ]\"k g=ң=EkDpcm6X%k Z+p|;;%W.rqv 5_Lopl;#GRԸ[XPК:e,E "\rp\&nlwev [ VK-^ELwf.~Wk!j+:FO|)wYI]qkA튩1#tDS:оxYJ)=@ZIXތ܋;&}]iVJN#ŋBAIfδFb]wEᅠk YWb9i.Ae`wuڒi^!z9cmڱ:i_ƭ1KnԒʈeuԂWL4.(6EM+\?\AQ4d1]&퀂 Xl/35xnmCWvPcNuY. s- W[1gBo+Jުcm~:ڮ܋PZP,Ffe׹FwmQ\+,W,*@WthWPEe\[,{&Mkq[qGqWqOq!Xw,Tw,\w,|;= *:(<_~ XAo1]{Y{^{Z{r昑`8s39%[T<{ӟSwܺıDHJ k{e+_z;;3.MlK aU=D׭u[l~]w?wd0<~x>}uk߯~ۇ$hY"P*ZXV`YXEĺ(;gͥ_jᾁ:߻0 4fLnnؔb AֲV m2*\È(, 6 M?!/\BI<4`Yv`%cqy"ȷXKEZa=^ uqXE:,!/x55z1yŻ@cd/#! 쭏Y5 S7we]ۏne9Wl^ʺ@pmi\[ŵ dҳ!:+?^gPm8nŲs>o*~S|]wu-n{E=w)û^=N8|p=wh٣>oHa'nB2:g ~ۿii3^>Qc\x&^5r/Uʙ#uqͳ^\,+8_dY+gޫ2.V(+ּ%sjPUU;NHq{N;ر1؁(K| !|Qk5R`O Fw ~ݫy4VXXyumDMA>1nTD`&#R{x@feP_2cM'(VM=Ih; h}T!Z #cy*ײ™P8 ZO*ɳr=[ykrƲ4aeOꖅNiKTĺݪDzWܧ]%~>-R~&{PK:0!#2*wy{isq}q8l"L;匛u  )W<*YFBȋa-o8W lC"%(U(8yQ)\/B*T>|W Rv eXƊJE+п/sz74p)p- AtIѸ8zAV#E@ʺvYZPe\ˉjrYזxǮ=8TPu [-⽯J"r+}/idiK}/Y !^V˰ƻEMp{ {_T}QE/xYˢ7^6ww⭜ei1c-gVU`"|='~'_85ܱW] OL;G:=xI&(BX&"BA!Ǥa}ٽɾs>(*+ 3 S p a^:F$):Ga؆5k oҵ|VU݄koB-Iq];qWv|kdw~sjgv}}ꁯ x0k`֨wIQSN;Żu;'w9;ٿۿٹۿٶ훢Cy2R:7"R a~<15I |)!>W':vHFڕK8guU6j|^uEhu?TtƭYH>ep},+mvIcYx)mzNi$bqiwqr|4%㌤a+55LAX)~)Va˕#ٗƓ -S/5.'c iJ MEkYjߤNقVl ^ ИmjUeM6DVP"`216`FjF]Ϗk%σtnd]Tob_\QvuNTtj![ʸF,~u,1-JS`WJZ[ŕPc}n XΚmT(vg(}&KDf1?{Ϛ$Ⱥ8o"Ш7$􈝝ֶs˔☡q0nn^_q^u5͹=W^[E6q4!bX;=j=7fP N hNO*O(>pGyOuUV딝QGמN:fܠ |Dx.T3nX7l  &YwyaA3DHaY?n?O?˨pƐs1&x q@tu(t +- \49i 2UHGױڤ+@!5n -#$s[RpdBN9I bėǗe[IBʮ)xId $,~\kw"a->yq7e %` ]6L0$-|Ztl _ {QҠeXɞ$803jBfPT!@|2?p$夒 pѸ <;55ﴑe*,h!&1~X>dn"@ZBS"6<(5d SE3>Vl:Ij})?= >@I0Wc8ۚvBbSXd 7Xs3g oT8z֎SˤiT80<ק< j ύΏ1S=0n0n0fn@;f ]?JWm<=A$=ի>٣mi2wy.O4~̡ím#hp]}iHXDL`@jA$ NyOkNAT[ Ok A`,P ƻW;ht?~!UpOpOggGNgz\- `B19BD`_z_'[ $ܔ6vbb/0eB‘QK✯bzm"Z{(25ѡ*aDQ,ZG>^E;_IkyϠWsmjDڏ.J۔7E?I||_۾޷ΡmwnĶN܎;D;C;T?0NE!v }'>~#1xz]{˷OuOܒHfzf A <;;fUCH٦G|쥷. IDATfȵ"ͧ@hieiӚwbYT *:R=Yv(b0mb\N.yE 6]|UC\PQsՏSHKH D/.YK?mL7x/v 3h7v-eA+Ϋ(l[0 ]+53X:BgP*Umkn,2zbxR)23`4~恮P !vqA-(IJ@ke~]j9b0HY gI6Yl_LnzסiHu\0F?zw⽼}Qp蹇jv$kjn-EX8S 'zj}R9Ok|J9$ ,ImӨqHv_vWR->->%9%=-?Փt/8ӧW j gMԭЏQ씽~T ~ z6婃o_;P? ~@;'^z~4,8vā/L{yPN|A!#Rݐ<8hm2M]!{]d[nVӜ׍k!< ~עGZpV("!9.&hLXNǻnok Dþx_7WDsX>zyɹ,!' ;P~EM%L4>4u<ٯ)%AYm-v(5|h9%Ҙ giD#2 hh6/Asm^Q%AFkȸ-_o{{v3Lgf=s=r{dޭ|nգwQ@vB~{Ek|K]G?|g{'{{;% %dπe]S*dRIyg=쾧߽=8Na'գ?QϾ%SLh c e@|I[Z߼e!<@9uIUʘ_. 7f%Xoad_͞Ϳh#`EaŇK#"pg-(Ew0eP[J1+ze-.e|&Ѳ! |dzPeA8=zJ-Ŗ3DּNKh"&9 ^kSZ|-r/c;j~A gW8-йzSv<*(D5e798Yj}fkDjkMͽ'eBw^z~(V'Q/̙:u-cKC~^Q]tTvڀy1\#CrKVۯ>Bziڅq{vHw W0 .YߪxL{8t~߬{> o7Q@ uvh'х"*Z+AC.?쒡%wףQ<` <&stuæ&Tl "r-}t7LSfH QDr K'Q53rK`>8j'z>8 ix&L]fƂ| fw']8A<8U).=t+N Ύg}6֮Htlnv>fˋh-m6gjW mYז-ߵ-+꣈k F^Yl,;u]=O{b9Ήzr쏶 ~]#oW1( ?l'k~kMJ>mm3On?w?ݏ||1(ɵ,;T _xW/ˇ~{}߾cgǯ :*G~xsҸXbX6犦]pJyu|١>G"FSkD-nJj^οkY.XjUP<sόه/טQڴѣ? ]a/,Pf.@IZf}N lV3Xvv݅uk4]6btvZVok2^3* V;9X68@KN\8keiI-%3}eU  hĩ=q2M:Leݴ-ր I~#0SA:[kSۢ :vMBh6Xؚv{^U=[s19.wHmbk3gDˎ/ e{uݢ3IJ'珷keHᦩC'Gm?!Տ'헦 ӎ1S]d6;m?@L8u>@N S(ڽgyĵ#RMe&i8gdVB 2DC{}42]Tݯ5{h?@j;_AR*P%g!AcT4FB !c<]I0|'x7@~%+PY]ۀ w)'iF[8&>l>MŒ0mSıiV.kY:^czcKA8[d1rMN.Z!oPꮭ*MkiYmeÌeh<7 =1cO?1Sx| ~藏~cyTG59T> ~l&~lGz|~' gQX3vcDdɦSçW{ze}s/ئ~ kķbY6fHcdΥvצ߯;!Rˆ_yytP{1lypΦ9w\ƃ7IK[1alC7Ld6ūy *~`bKV>tZ!\:I7*3s5PY)AB"ZOOBpOa:|ވu[VrQF/S:`VmjSkA7eּ!11f1"\efUE[)Ֆ>t'emm<;/g}ZSⅧT/ н3+?33#O пS-O/".}>>$aO/?#mm}3(oYӼoN;ղ}~@`pcOc# Cs^nɩ.Nvĵȶ&<);ӯ>7jjt\u7y6+ Ws+>' ޅ}$JO#*%[I+K`&N@鋤b-;V>G*kYNbB- rmgA˾vͺH,KY0nX7dz xF36[[!<(NwyF37yfxy;oh.7@|-WR*7$ ̈ЄLd6XF9 \Yq": 0S~rDW] h(b7HYz!h0|@oɽn)a-\fR{V2gbtk`0*/T˒jȃ1(ښgqD-sFuN݉5A (bUQ;e[tծȾ߿Wl5,h]&Ya*Mգe橩y2id LwbFz+ͮtz]ŒVU0iJe :cba0t}ODj I{+/1gDĎnc:m2i4oi }=]RPv!iJOvϏ&l k!}[Vy8n>;9)=*8 vvqOYi[l8 $kbA!G$;'zԧ`3vɎ GLT5c[Ob;v5.L&;xiT=}xD{tޣ:ѥKe ұV!檎ԏ3:lr=.a>u+^tЎQ, \![.PK3ӎZm A!s(?Nv6[ mQx2Nm'DgJtMxtiW>78&:Vԟ6zDYCIeZ,Khb8&mNq}q,_UZoA>*2~&ڏ[ۣeO/|+/z\cC;Fz]1$2늕#3:ZLd3<$F:n`2:(톳CL΀1)cY"2a98Xt.dqkBT9'bKE_]!aއ=q,!,kYCHP&=d&bt`A uv).vU/.=U k\dյg67Lgj|C0Wn> 7a$t1}Jw :WLj"sXЯgL\кz12s`پx7 `Y#8?ncYPrI2IN,=ψIg ҨXW9%S.叼4?LAn ƞ"?l\f7Q}Z֓GB j EIc@l Ap #r%XKz|X4:JY#3fi@qMpTVShwؚ&-qӅ1ù!mݠL{gIs,(<2&@{i^?bCz6N45ӵ*g뻀DbY;tWut-e{'_k'{;$GN4D{2ϦH?ɷ} lm?:yo7N`ת61816g[IQY8/@!2x1=k7j30'7㝊ݪϙ8>,e)yV<+܉gv[ 쇌Ч $CƤs24%ݞʴ>ws)\2|U֍<R]ةZ'y*勖v0D{-=u|Vje\ݴkKjE[e͋zqc-/5rXz}-OO=O}>oyK<[R%v[𥂗tc #qhpL82BO/z'?pe+ɷlje-ן|2:OiLKxKftYoN!S >z$:ȷ bM,L]u\ $C@|_Cp/ҔuDz.RK\r I> k.}K6 k- .@}F6i Gc)X9%kf>eoKoI=qЭEu BZ,h\E;}8RXYF׬uƯ [l]8i:¢;:Gcq*zLkj2Yn( v٩zՎG3^y::1h~Z8q呍yIkY\%*2 ZC@` X@bsHlJ-QWcQI$5b1&YX֢חa0¾(''\Q)2o "3!6eMccȰ:4=_. -+s9i{㤵ara0am]Z+?%uʢv8i;?lhO*Ol A$A4&K<BA`E%æ(6p l-QH #fhQR|]E,b$ }]QmU ;D.9Q|tf8Դaqa~\bV?n'TύYk>ؒx bJ85BLٙAz~Z?ncG-rMe@->bî^ i*u D(Z8H<5 w',̸d #BG%v)]0L:{j^-Kٲ-rmn+>SkKڊZWmq)M&ՙ*7FRZ}*[P jw/j< '?G)('] IRP<\@R8iԶ(ĖWd5*@ðAQd\bײʝm.J8:jxI'$Z$,K3Icb\8]Ա>eWGqcY萆$VQECD~XnUǺq:qzWQnnҔlAdY[%E=oy^t%1D$Bh+ڢ=5-fYA8|1[3ypS-3kKO0.be#$,]:&gY#)xV Vq,0q0CNtFR"P*\DB~}L$3UCx^77 c "!7q3ր앙SbpJL. ,ƒ,˃}kuԲF`Ypm~m]J$lN哲1"،r $" B7LHGt+$iy+"ir1S0z.RHZ){C)I7.;fl]*vީ&\2,$0le6;?3&d@0m^$p:(^V !tݫDkԗG@o$u1Yyօug}ލ̹g]3iڤcm±6nG̣1+2JbSʰ[.{tdzOp iIIGc!]dxedKNsВY&,SϥJ+P*5fTOͷ dU(SD*CEt7KItӫвpo\f_f3 o4KD}b728CZ-/Md C.mzʸJ2PFY5^_PjCDDE EbEEJ~8[NE[ToXӟrz»R(WbQCA5Ƒ0eZ-Qllt!V,31&bJZ}%J(i<`Md82P bPpwKl ̽*vؕ:;4>oY5/34´9>mIKN[S5`!=2,,f 7%2,`\3jHGp߅ gg23#7\S^Q"~.ua&ꢕ"z r`7vlLǾ1Nq49YTu-( ^duX}>vvm98^"D] ^rd[1iʚ_ybr>(Z]6"dt[`_6^,$"d!64\D[TouT,-gqmiD[)e2{-%~XPhy m6Tֲ% l,#J ֲ:7azxy#THZ$D))`#s5spM&Bv+"\B~񊒎%no9*R!.kK_$rJ.~b i6M// YS k)6Sluf[M-f,?yk"}v<7[q*o*hnX5U^T:wޮTkg`?8]+$_rfv"f˗%\| '+zPO^U|o@_sޟoY/K_3G~Q@{?sB[瑩(ޚ7 j %TuL*;&`,z*j,S#̾S*V>4bj0㫦u|I \zb7_ >n%|,i˖3EORVhP/˲;_͍*VWn*؂ T#ݶR,[xw/'2. mY?TŲxZ5BDkD=]Mׅp! ^%#{).Rnχ,WԂrVXK렙ŲeE۔BGi(${(no V#-2g$EzmwsK!&]6SlY{gu=Z{64ߛ{I9YuwgƓ-Yɶlٴ5cξz罻ckmEE*SDʁ(f1 fH> Ս Q]tu>xh(ymHt0 %C ڰgi3eZRLZ]ߚeǐ :BͩF[o Se[WP>K/qҿS^q.붚.de}:*)I<'+K?w8sӅ j[rt %M1/FHb3r]gjQqu˜ONᯪhG '?eUp-$.cQHK/Q|V`,K|_ecNDC4i!l'\6VzNC,}j:[/i1ө7L^C9;kv2)̯C)%cZ*eg-X:2xbgֽ1CI9Juѧ2m]t$>Ͱԙ 3WLMsS,w^Vq!+ED%uMvʪp8mscG<[]#~Ѫw X?|_0CɔgrKZצYq% xT&~o_J`(3PB`&t AA3F e%ʠU(;c:%ʾ?CAЌ*(Q;o$L;` 1b wʻe,A)@YglEwP3( AAq? ʠ(˖e! U(;AFYZ*3 FY@A411/\T&}l,8^1&O&ʮ.O'aĻ8qFZKHY*e.yt48^SWgPaN˔p,Yh0Rfn] ae^$/R V(V(;{C@f=CϽ{PaN'!~Ⱦ^5070 p8!Ej\jWPB- ^~Je{g׫3AYa8MʎFj{C`F,"^.k}w+^ea4 eo:lmoV콳.4/3w~KIY?V2;cd0 ñlEYOOSv("ױǠ?PvBunյ~ 6D6ybbhb0TLD_T*1; \ʏ10 Ɠ=eueB:^.m\BxrٟƢl?KlO 0 'f e9Rvo,pjy㕲+?{E{%?Rvq7QdK<C[8a¶+7jU=tSC ^-̖ںdn_I:|+CvYtOYt'ûRyCa8y );<i7J%+o"?XPJ^Bw?|] j<ȒӠ"\JK!򕒂z1֥ ̬Kc~!?],3ée!Oe\e`'t1Qi LnPG΢AVIY)ǢG6jǢ,??ð WhҔF9N ''vhZQYWK¤L X ;A.c'DeKAYaDB?86j}j͆}B,f`FY~m%iOa=)khK7rچԿn{Lʚ; j a6;!u7F4+`?6tu7PVNz.kup6-6s#aCYxPDsPEC..H`?8l1P|5ϧj,+*WPNj-e=%+$+Y>mOFb턫9|O20 *eyxPD6lDG!_he[ ,?].co;AFE[4o{e|=DTRCD4Il1fJ{w"/W0 &m_fʶ Gdk]e{Gë7eS(8 1v0~ a8ގ:nfmi(;YPum0nP66waN5tx^@ٵ;Òzv =ȚMeSʧI_C0 Bّx;" e|QuZ/( 0 @Me=]eir;U{D1az%nr wz4S, 0 ' w}H'f(1z)(z;, 0&:eeCe<ƾCzn#T& 0 ' ?e]b7\Fŏʔ ᕙo0 px]ۣH7a3>1g#DY;3Ͽ'PaN'}ސf=$) IDATG<w)(kpdwx̥=&  U(X02 8w,{}=C>? @Y (M@ʪ)bz387LP J%Y GzD_x D ? kȔgFOO? AY (M(5+Y%ʺeFP J%P=֬RyDYQVL}jU2)۰uٲ 񯗓9զO3.`T(;hQwH`kP6'eIR6E[`R(rI6 h)!g揌.ުPT{}j-e-1;@,0( AP*!k\ZиLCѬh_ږv-e3s[pS1qfVZ[a¶a),ztDи.ŭ꒒ucL+6f_n c]"̓bQV JvYazXXCҁLk[O snըvŹNDP]e ^%tGJQ/Q?rK>_9rX(A ɹuDUZK9g 3fZk,AQSMe/7n P;_=B>WmNh y^)|*wStQ)O42ͨ2~MI(Ce0L/"sCן0|eO@ٍv /5ɗQ1vwFZZ9rm0DSHvrYc}Ffl5WC' oЫ_Kxy58~{{K3n` APh]"1(䱌ee0ǢVJ~Onfih hZnsP| c\l\H~ ٚցma$drws,APJk]CuT(W;'!luQ6ŤNƃMP (ʾ:̫%[ e)ͫ@Y (}0LkG%]ɫV{r<=-,A.:ed\ĕJU(KKsTAPz)Q͕)+Hٳ ,AvJe[$jQ6ӷem~a *%oeOWyHέ(X$rH> DS,qO=J͘Xd9[rSWmAAwNYfs SD،  :vo+ʠ#G<|:e.Xqqf{4D͘`/xZyfe!4)K$zJ%D،?88{GrM/le!4)Kܬ{O2qo*=[[rUkWgAPh%n=eOV"l}sG*~xf/_BAiSYb0=USLl%f;g!=ۖ] OU4~P J%+^hr}}kٷDX%ݦ&dS9AP(Q,aTNgJ.{t^vWnyr햾_z-;RVvJFyAPB%rw<2]SƨTb+6yKe_]6Ԛ ֔٢8x2Iʦd.)'I$|( hxx7?WJx`+͵߾ٖ˖dl A֙p a .=D}LK a3f-|hl)#=Dꀛ233  K9f ^7ף5Kq+%dy;ʣus WZ_aeq1wpE]#NBʲ[uSҋZD6 A7?\'MQ)QJ~a:rG =#_X#*fe~N9Dg)rȯ)cIY=mk$)b]d"ɋLZoC+6D[7fWT-VM=%n=>rG =<<>V+u~xbQ6k҆X-Fe.1#\M.ku5meu-k,0r!bt9:iIf!e!JqM=%n=ǘRD،92eG%7FWcLʪӉ\Fkף1LZfSPa=idh0qM(ʥϜ ]ǂވ&!⮰[& JeM=%n6FeLl%ªޣQFLr.kup%rie ±,Aw詑2eNQpYtj=AJyY=e):"eJ eHd\nrIn~*S0)87ڢ)xC[Ƽ0VoxOe,5b6ehVB^m5ceel!JUM=ge3]u)jRN+%'k74`dyA}Fe!ʲ,h?Ⱦ2ۙUY=kRv{ KTs_{wD2ŏd̒~i&OW[_kvs9{,(%U=Wg^| DSeWf([>|Rv0QvGٝ}_Uv7'*ڍ,A&J@.KdWOV({Ϭޏx=Z*( A6dP?<=k;\2( A˾([}ңP7ot뎓EU?}P J%"QFwVg?_d_q_^BAiQ{t ߻d_8t_~ Dee??_6SV-G<wcsG1/K3ƕMjAP(egw'{%m'nVBAi$9}CšOmWNQ51 HIeuwkK,A&Jb.s xQXZׅ_ GIewhdKd]ώ!Rs.s<~.dieKoVg&vwgSJjNZ>wL3,~PsYwvUίj|M֔5*[@&IêO^Njk!&$.\ls\~%R-1)'jIl A֙YM-tP (Jb.;{CCkmˮ>m)#=DꀛiƲL0ÄmR蠣q][),-%%r _ +A ,s/3u%#cn2AzQ&! %1a_C7{Kn-_P1++vvs  9GAPk+'S*)ǒztn+SBSU=ZT-nATs9D^ QF=,x`YzrY'lWNEj+zp ;G/sҒLbP hJb.;g#DcT(Zo(eb9Y5#&WsI$|"e0|^jBLP]Ue  Jf.hDޱ_rHr.kup>`~V\ h\ѳaM}o9lT1оgcuNҹR}g>~4#ln5%z izCs'3ܶ)A9TsٹKeOjr^;'c+\cl`?+X[4o{Z=|[5'*o9:GЖ1_e GIe-y?S=e z;֔J,O-0A4Y%1g낚[k62MIڡpAwZe|1!m(v{)C:@Y;&Η({1}x|AY (M\V@٥Ox5e_e!Q"s !e5_x EeUЂAĔ\V2( AALeAY \ ieex#xW>" d e! (YJ~._ UIe5k/,BAidc (\V'OX3A˲~̫jn ٔNn)yY;ig0MCi9vwur%!Jj.{m Wu렓Kܘ=Iʦ/Հ݊4R=3{!AНQ2s%D35cgN3 Vos 2PffN~㓣l(-`t6( AݮMB]{l<ȩ^JјJSVd|TgM3xZ ёcR*)ǒXƑLߖvM8r3ԩדTO14COsڒui;pfy0 wGK}.5ᶛ"#QW%KIe,zdx4|ȭ#Eoz|Ě4:G29?h Ajt6yŊ2s'|)i~l8BSbZ-J 進MwtLܚ]윲oxlE_A,%*ͮd(;{CPVA_mק2-eZx2Dv8~ J (;kKM?\l|ۇ~a5eygsYkx$0,?>$V}b!!;j[R`sYspiP$[2:{{+Wzu%eo1raOLak4..焧km&,rN&j㦮˚:I̢}"H[ް(`zEYD~f^%-).hvn]C"澂 (YJl.S9ܣ_//haYC/_oEY` Z.V&!DMZ4ohKD|IZ=|[5QV^`&fs>1-uBYix%dn#-]4Lom%Dm%IeuwޡO~uɗK:|n5wT)Ov:OO)iɩ!|n+J!%<({ϬAG{/(wϾ2MI^<ʊ;`(%;S69%vE[ RJ eeh/3QgϤeSLޔ=~J1Mѻu.!dyWJz. ￸u.uR. AAUs{Ϗ5t?eP J%11ĭ.dIESVZ^c AAwJߗ}Jrց߬y DIe/-o_ BAi$河>~Ǹ^( A9V25bAY (M\V<_ Z<x#$K6a IDATs0ʞjnPiAP(,( AJ3'cMoAP(O{V&( A^0&ύnB DĻ8qFG*^W)k;ϼ( Ad:/OptJYjv+j|jdRvJlqAtǥQLqPݣrsɕ-}^7&9~O) gwVJwt+P8A3RIs <~ENU4bߓ23sr)$)Bu&-Hb1H%e~v3X=eeNGKu4dzPt!us=_֒<ÚTy;ʣE@ `Bβeˢ8YϸNڕ z9*YfH:F5ƾ)o!s@%Sɤ,FOеXwqW80sKp nJ$q8׷r`iT`S*OfAc>N;V*Ԣ-Y[䲢:ڪž Jj) {F[3r ? +˵ZԨ煾b 6"r\O (oND6W7v;߮=eQ1̔i2w6;/6W䲆_&IbqOnZz0s)!e m)RϩN-lnVDYA Zꛘ*eZtAP$ee=Չ[^~sN1GJsYkYRNb.k'&IYN,emrYf[qRּnIY?fY.AExn'Sc]40۞Z4ϷrNVjuyYS8YO1Ld%_ժNS➁ J(+ּ0ʿF5ÿ}qeͩsܕ[c`t)Hs=M ͈:/7UC~-eueNtnjO1E٨DբIrC5(kS{ (yPqPVヅ] uDN/ԎCSTlz H$RvcnrG-U.R'><󓼩Fl* AwH{qܺs-s`xwAY (M$Svw< #e?5Uچ"k7BAi"刲> oR6rOskt?NwA4cdIYw{/0_!vy ~帾B4C5}~Iڸqt$မcG=yro|7=y4ND3HN~ t@0Cမڭ6B>eH{Go|q|+^6Svz?/$OqQ־  ȉp\ ([n=￸uڎ=󢹢eI( P\3s%lQZF n,{˙dxʃPqTR)\%=$~ Sͮ0ah&̴@zHZģ'#«MGۢ,rDY/,._sEqST.ɞeDy>ԎI27(+x[kH]o[֙F~_!7vٽeݖu,dAܶ8d_6Ơ)|2.45v.V0%);!mۙΛaaUv2ݲ(2멮k Tvr?]nִTU?"UcaT(+-$w&vM٨yLnq3c|o>}fx94偊ԖKMrCXn65__b5i>84~E#J-ӭ>4D&e8bQTԇlĩ]F:{?7F4 "=eu3s: ;N 6ǥضڻɡltL}Fg״1Mc Ɓ48oKPR'2nYx45qzPWܣApq〱<`d6FU0 vQG8&)a6JcY$nXN)"(@ۆ *Wct4DɨrY|. P9)M?"~HGQVJ8)-NqLĺ@Xt7t @7.>>öyҧ N2n͠.j$ jRxe >~(|"EVL&2Y64v 돔زAGMA1nT0XΚ+M &=WШ Y)ITW}ˇ7-u2Oj^`wd3J+zUQ.S+k[R蛧Sg=EnTiF'el(Kks7\.:bX }N=KV?QQ[c٠ibPw43nub.) ciG0ƍ1 Tk.L"Y叿jSJrr{,Ȫ6,Us_Qjؚk)5&I)3YԫxTp`<6?ȉ&M6Wd2{}9VVVǹlt}Y<-8HMg VZwpMmi*C1M'Ʋr>hBG*?4M45ծrG)XJzEk[v"!2me9֧_nQDaUUF[:ms%L*#_X&+rYXTjyKxvI-iq%X{8TR: WKWOc ^Dk.:%Jgt`͆ڄ| $׺ؔZkg6+;˱Fkʸ9}W4vy}w9Q*RJõ͘RCrľIYvqiD a Vl^TժM/MB&PKs▙= w!ߧuWK~5jmAi"PK8`fQ zF_hŒڎ'3W44( 0hBq ̕\Qj-|r9rY&  %03WzʾE=V}=Pv΢an|~Å^כ+^ZiBM(.မrD-m?]-Se_,hLsEKS6&H,@aЄ+ezGKa7/4|wsuUC}q]N(;JɃtGမ(k")",Q v,>Pu+7&dODA$o6Ǝ>Z<0<fceCK+l#&;O! (o Hf]H%㧪F%<CAЌOY ee?Ԓd  ;/f5+3]65En~/vAIb_c̾3D~89OrOwA4cun^췟H&TĂAVox?xzӨ?>ocq}Hrf7a jw[955ڀ#(?~W?AAP\y6x.[ʭQ(;wɣHv7RHs`oOwA4cv-C3u\6+!ee,zdx4|VWߜ! hE'01<48{e6]gm! h7X.(˾9Q(%߾PЫ?>OVϞyRRyhՙO^b>ϼ˿Gʩ?iY'=a{DJN^G5ӟPz7F7={տS`~%f*LOKY/A`{mwVo|:m+V|AW\YiK"MNRu{_?6?¶BUA>8ޤޛ˟~{?rQ6,ee/}t2!v+/V^ZRYZ\/\ShrU4Vngnad,-ojj6F{ǚ-֡p0v{8궡HPi S`>?Mj}(S鮖bT;JLR^:Bj;iۥm)H|ɦc^K?+Z[="P=Vր";AD2Hx8=$ڭVTUy0,{i u > /k_EoraH$MVv1氍b;(s ּ $f}KKMHxrL(rխ> h/OϾڱ'Å)ȍϏ(=LzTO2%ߜ*ۖSLܪ]y5ߞ\suk]y՜kv~w {.6~Fђ#kgCȹs͓ɹI9!W<[̭;]5S5rTd]>|tȭ>ڄھ;_tŗNj8z9ULγU~aϥ.6Ҷ8STW%_޷wv'K)ߖSLγRGoR2}:]k﵎.6̯~'>?^鑛[|?vώݢ9]=z׹(9\#Ok'UcOU;^bc^dd:f$)zX! L\C:0=+ٷGN[hv 8):7%#d>+!:rjDziGTR{K]}L#¾U]gޱ7OwX>(Rl8NO2RcnIeƤOoRօEٽ'Șh)%4}S4o;]AޞC pDԝ ջYib#WZhLB^4]m͞}'ʆNVzsGBةSvuBۖQv[N`w^ m>''}؝WK-} Gsɷ뿻&"Ry"+a`a1)Foެ^%:WxWʿ8Qʼn/K9hל}xL\_}VR6ɴ#)*꣗D]zc}=Ʌ.=dzk{}ܥJ.ҟ2p~OY_e.꧍:P} Yoy򷴏®;]iCp,QA_"4ӺK"g?ZNzpAe rZtPuKAA6zFMf=ne5u, =O;v #nT#;G[hnSb-y_a=FYEYIf7F} }R%.8Gݕ vO##{R̶XErwvLO mg#(JGZ2CN: "kvT%S]1̠[2xdY[DS˕R(Qlc);i- FJf]ÖehKdv.bKs#']V#V򀐯,Akhtt-4~(h%ڃV: 1(k&=4*6hu@[޾{O(%uVxm0IDAT;方(8@ʓH үD lL,?i* >TghyX弱nuѪԼ}:+=j'ؼ Z6od J:Ȍv @+uolIh5i=@+Jgce`PO< U,iG.} %G-=.9VGb/D EBbq "wː/44=c}ã}þ>h{ + (Y'|kd8Qu>) OկM~rX]BG_ѽYQpPyRPVRZppƑ8pkǧCN9M;ћB#C|È3vi\cgSSڮovYrk% =OU,瓗8RºX&?x9 ?xYtx[|*s=BuY=Zo<>)+)#:+-ie9_dJSa2\JБIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/guess.txt0000644000000000000000000000451611534217015016646 0ustar00rootroot名前変更の推定 ============== .. module:: guess.dialog :synopsis: コピーまたは名前変更を検出するダイアログ .. figure:: figures/guess.png :alt: 名前変更推定ダイアログ 名前変更推定ダイアログ このダイアログはファイルの名前変更、移動およびコピーを Mercurial からの情報を 使わずに検索するのに使います。エクスプローラの右クリックメニューや、 ステータス・コミットツールのファイル一覧に表示された不明ファイルの 右クリックメニューから起動できます。 基本的な使い方は以下になります: 1) :guilabel:`コミットされていないファイル` から1つまたは複数のファイルを選択する 2) 相似度のパーセンテージをスライダを使って設定する 3) :guilabel:`名前変更の検索` または :guilabel:`コピーの検索` ボタンを押す 4) 右側の推定結果から適切な項目を選択して :guilabel:`推定結果を確定する` ボタンを押します 5) すべての未コミットファイルが解決するまで以上を繰り返します 名前変更の検索 -------------- この機能はリポジトリから見あたらないファイル (管理されているファイルだったけど今は無い) を検索します。見あたらないファイルごとにリポジトリで管理されているファイルの 最新リビジョンと比較し、 :guilabel:`相似度のしきい値` の設定を上回るファイルを :guilabel:`推定結果` の一覧にそのペアを追加します。 コピーの検索 ------------ この機能は見あたらないファイルごとにリポジトリで管理されているファイルと完全に一致する ファイルを探し出します。 推定結果 -------- この一覧に表示された項目を選択すると、その差分が下のパネルに表示されます。 :guilabel:`推定結果を確定する` ボタンを押すと Mercurial に名前変更、または コピーとして記録されます。 コマンドラインからの実行 ------------------------ 推定ツールはコマンドラインから起動することもできます: :: hgtk guess guess previous renames or copies use "hgtk -v help guess" to show global options .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/ignore.txt0000644000000000000000000000165611534217015017005 0ustar00rootroot無視フィルタ ============ .. module:: ignore.dialog :synopsis: 無視フィルタの保守に使うダイアログ 無視フィルタダイアログはリポジトリのルートにある :file:`.hgignore` ファイルの ような Mercurial の無視ファイルフィルタの編集に使われます。 エクスプローラの右クリックメニューや、ステータス・コミットツールのファイル一覧に 表示された不明ファイルの右クリックメニューから起動できます。 .. figure:: figures/ignore.png :alt: 無視フィルタダイアログ 無視フィルタダイアログ コマンドラインからの実行 ------------------------ 無視フィルタツールはコマンドラインから起動することもできます: :: hgtk hgignore [FILE] aliases: ignore, filter ignore filter editor use "hgtk -v help hgignore" to show global options .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-ja/index.txt0000644000000000000000000000101614023111777016623 0ustar00rootroot.. TortoiseHg documentation master file, created by sphinx-quickstart on Tue Jul 21 13:14:26 2009. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. TortoiseHg マニュアルにようこそ! ================================ 目次: .. toctree:: :maxdepth: 3 :numbered: preface intro quick daily settings recovery patches extensions nonhg faq debugging 索引 ==== * :ref:`genindex` * :ref:`modindex` * :ref:`search` .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/init.txt0000644000000000000000000000447211534217015016464 0ustar00rootroot新しいリポジトリを作成する ========================== .. module:: init.dialog :synopsis: 新しいリポジトリの作成に使用するダイアログ 既存のディレクトリ (プロジェクト) に新しくリポジトリを作成するには、 リポジトリ初期化ダイアログを開きます。エクスプローラで、プロジェクトの ルートディレクトリ内またはディレクトリそのものの右クリックメニューから :menuselection:`TortoiseHg... --> ここにリポジトリを作成` を選択するか、 コマンドラインから :command:`hgtk init` を実行してください。 .. figure:: figures/init.png :alt: 初期化ダイアログ リポジトリ初期化ダイアログ :guilabel:`作成先` リポジトリを作成するディレクトリを指定してください。カレントディレクトリが 初期ディレクトリとして指定されるため、作成したいディレクトリから起動すれば 特に変更する必要はありません。 :guilabel:`特殊ファイルを追加する (.hgignoreなど)` これにチェックを入れると TortoiseHg は空の :file:`.hgignore` ファイルを 作業ディレクトリに作成します。 :guilabel:`Mercurial 1.0 互換のリポジトリを作成` これにチェックを入れると TortoiseHg は古い形式の Mercurial リポジトリを 作成します。自分が何をしているのか十分に理解していて、どうしてもそうしなければ ならない場合のみチェックを入れてください。 リポジトリの新規作成は :file:`.hg` ディレクトリの作成を意味し、 このディレクトリで Mercurial はすべてのバージョン情報を保持しています。 .. warning:: :file:`.hg` ディレクトリ内のファイルを編集するのは非常に危険です。 リポジトリの破損を招きます。ただし :file:`.hg/hgrc` のみ例外的に 編集が認められています。 コマンドラインからの実行 ------------------------ リポジトリ初期化ツールはコマンドラインから起動することもできます: :: hgtk init コマンドの構文は: :: hgtk init [DEST] となっており、[DEST] には作成先のディレクトリを指定します。 .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-ja/intro.txt0000644000000000000000000002234014023111777016652 0ustar00rootroot**** 導入 **** .. module:: introduction :synopsis: TortoiseHg の導入 TortoiseHg とは何か? ==================== TortoiseHg は `Mercurial `_ 分散構成管理のための GUI ツールと Windows エクスプローラに統合するためのシェル拡張のパッケージです。 Windows では、 TortoiseHg はエクスプローラにアイコンオーバーレイおよび 右クリックメニューを組み込むシェル拡張と、TortoiseHg の各種ダイアログを 起動するためのコマンドラインツール :file:`hgtk.exe` から構成されます。 Windows 用インストーラには Mercurial やマージツール、それ以外に必要なもの すべてを含んでおり、これをインストールするだけすぐ使えるようになっています。 Linux では、 TortoiseHg はコマンドラインから利用する :file:`hgtk` スクリプトと ファイルマネージャにアイコンオーバーレイと右クリックメニューを提供する Nautilus 拡張機能から構成されます。TortoiseHg を Linux で利用するには別途 Mercurial をインストールする必要がありますが、 通常は TortoiseHg バイナリパッケージが Mercurial を依存ソフトウェアとしてリストアップするため、 自動的にインストールされます。 TortoiseHg は (Windows のシェル拡張を除いて) 主に Python と PyGTK で書かれています。 :file:`hgtk` スクリプトと TortoiseHg の各種ダイアログは (例えば Mac OS など) PyGTK に対応した環境であればどこでも使うことができます。 TortoiseHg のインストール ========================= Windows の場合 -------------- TortoiseHg には簡単にセットアップできるようにインストーラが用意されています。 ダウンロードしたインストーラをダブルクリックして起動し、後はインストーラに 表示される手順に従って完了させてください。 面倒な作業はすべてインストーラがやってくれます。 インストール後の再起動は必須なので注意してください。 .. note:: バージョン 0.8 より古い TortoiseHg がインストールされている場合、 インストーラは最初に古いバージョンをアンインストールするよう促します。 アンインストールは通常のソフトウェアと同様に、 スタートメニューからコントロールパネルを開き、 その中の「プログラムの追加と削除」から可能です。 .. note:: バージョン 0.8 以降の TortoiseHg がインストールされている場合、 インストーラは新しいファイルをコピーするときに ThgTaskbar アプリケーションを終了します。 TortoiseHg は使いやすい MSI インストーラを採用しています。 最新バージョンは TortoiseHg の `ウェブサイト `_ から入手できます。 ダウンロードしたらインストーラをダブルクリックして起動し、 表示される指示に従ってインストールを進めてください。 初回インストール後はアイコンオーバーレイを有効にするために通常は 再ログインが必要です。. アップグレートインストールの場合は、インストーラが TortoiseHg のシェル拡張を読み込んでいるアプリケーションを検出し、 それらを終了するか、もしくは再起動するか尋ねます。 すべてのアプリケーションの終了を許可すれば、再起動・再ログインせずに インストールを完了できます。もし他のユーザがログインしていたり、 終了できないアプリケーションがあった場合のみ インストールを完了するために再起動が必要になります。 .. note:: 古い TortoiseHg がインストールされている場合、TortoiseHg 1.0 のインストーラはそれをアンインストールするよう指示します。 アンインストールはコントロールパネルの「プログラムの追加と削除」、 またはスタートメニューから実行できます。 .. warning:: アンインストール時、古いインストーラはホームディレクトリにある Mercurial.ini ファイルを削除する可能性があるため、 事前にバックアップを取っておいてください。この不具合は新しい MSI インストーラでは問題ありません。 バージョン 1.0 以前のすべての TortoiseHg インストーラは InnoSetup を使用してビルドされていました。古いインストーラは TortoiseOverlay パッケージを独立したアプリケーションとしてインストールしていたため、 コントロールパネルの「プログラムの追加と削除」において TortoiseHg と TortoiseOverlay の2つのアプリケーションが表示されていました (64ビット環境では32ビット向けと64ビット向けに2つの TortoiseOverlay パッケージ)。 TortoiseHg 1.0 の新しい MSI インストーラは TortoiseOverlay を "マージモジュール" として収録しているため、 今後は独立したアプリケーションとして表示されることはありません。 バージョン 0.9.3 以前の TortoiseHg をアンイントールした後、 もし独立した TortoiseOverlay パッケージを使用するアプリケーション (TortoiseCVS や TortoiseBZR) がインストールされていないのであれば、 古い TortoiseOverlay をコントロールパネルの「プログラムの追加と削除」 から安全にアンインストールすることができます。 .. note:: TortoiseOverlay は Tortoise 系アプリケーション間で オーバーレイスロットを共有する仕組みを提供するパッケージです。 Windows はオーバーレイスロットの数に限り (11から14) があるため、 これは必要不可欠な仕組みです。TortoiseOverlay パッケージは TortoiseSVN 開発陣によって作成されました。 より完全な安全性を求めるのであれば2つの方法があります: 1) インストール済みの TortoiseOverlay パッケージをアンインストールせず、 そのまま残しておく。残しておいても特に害はありません。 2) 一度すべての TortoiseOverlay パッケージをアンインストールしてから、 Tortoise 系アプリケーションをすべて再インストールする。 言語設定 ^^^^^^^^ TortoiseHg のユーザインターフェイスは様々な言語に翻訳されています。 すべての利用可能な言語はインストール済みなので、 別途言語パックをダウンロードする必要はありません。 :file:`C:\\Program Files\\TortoiseHg\\locale` に利用可能な言語が用意されています。 環境変数 ``LANGUAGE`` に言語コードを設定するだけでその言語が利用可能になります。 例えば日本語であれば ``set LANGUAGE=ja`` を設定してください。 .. note:: ``LANGUAGE`` を設定しても :guilabel:`OK` や :guilabel:`Apply` のような GTK+ 標準のダイアログボタンのラベルが英語のままになっている場合、TortoiseHg のインストーラがその言語の GTK+ 翻訳ファイルを含んでいないことを意味します。 これはリリース時にご利用の言語の TortoiseHg 翻訳が完了していなかったためです。 Windows シェル拡張の右クリックメニューはその翻訳文字列を Windows のレジストリ から取得しています。すでに多くの言語向けに翻訳されており、それらは :file:`C:\\Program Files\\TortoiseHg\\i18n\\cmenu` にインストールされています。 使用したい言語のレジストリファイルをダブルクリックすると確認ダイアログが出ますので、 指示に従ってインストールしてください。 Linux または Max OS の場合 -------------------------- Debian の DEB パッケージまたは Fedora 向けの RPM パッケージは `ダウンロード ` ページに用意されています。 Max OS X 向けのパッケージは用意されていませんが、ソースコードから インストールすることで hgtk スクリプトを含むすべての TortoiseHg ダイアログが 利用可能になります。詳しくは `MacOSX `_ をご覧ください。 .. note:: TortoiseHg をソースコードからインストールしている場合、 contrib/mergetools.rc ファイルを HGRC パスに含める必要があります。 例えば %include を使うことで ~/.hgrc ファイルから読み込みます。 言語設定 ^^^^^^^^ TortoiseHg はローカライズに `gettext `_ ライブラリの Python バインディングを利用しています。ダイアログをローカライズするには 環境変数 ``LANGUAGE`` を使用したい言語に設定するのが簡単です。 .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-ja/nonhg.txt0000644000000000000000000001714314023111777016635 0ustar00rootroot************************************** 他のバージョン管理システムとの相互運用 ************************************** .. module:: nonhg :synopsis: TortoiseHg を他のバージョン管理システムのフロントエンドとして使用する方法 この章では他のバージョン管理システムと相互運用するために使用される3つの Mercurial 拡張機能について述べます。 `リポジトリの変換 `_ も参照してください。 Perfarce (Perforce) =================== * `Perfarce `_ ウェブサイト * `Perforce ユーザのための Mercurial `_ この拡張機能は Perforce サーバ上の名前付き Perforce クライアント仕様に基いて :: p4://p4server[:port]/clientname のようなリモートリポジトリパスを持つリポジトリにおける同期処理を変更します。 この拡張機能を使用する前にサーバ上にクライアント仕様を用意しておく必要があります。 .. NEEDFORTRANSLATION Making changes to the client specification Views causes problems when synchronizing the repositories, and should be avoided. 5つの Mercurial 標準コマンドが上書きされます。 outgoing:: 送信先リポジトリのパスが p4:// で始まっている場合、 ローカルリポジトリにあって Perforce リポジトリにないリビジョンの ファイルを表示します。 push:: プッシュ先リポジトリのパスが p4:// で始まっている場合、 変更点をローカルリポジトリから Perforce リポジトリにエクスポートします。 リビジョンを指定せずに実行したときは、最後のプッシュした時点からの すべてのリビジョンが送信されます。どちらの場合も単一の Perforce 変更リストにまとめられた状態ででプッシュされます。 結果の変更リストを Perforce サーバにサブミットするかどうかは --submit オプションを使用するか、 **perfarce.submit** 設定を True にしてください。 **perfarce.keep** が False のとき、ファイルのサブミットに成功すると、 Perforce 作業エリアが削除されます。 pull:: プル元リポジトリのパスが p4:// で始まっている場合、 Perforce リポジトリから変更点をインポートし、hg push で 自動的にサブミット済みの変更リストとマージされます。 **perfarce.keep** 設定が False の場合は Perforce 作業エリアからファイルが削除され、 True のときは Perforce 作業エリアは新しいファイルで更新されます。 incoming:: 受信元リポジトリのパスが p4:// で始まっている場合、 Perforce リポジトリにあって、まだローカルにない変更点を表示します。 clone:: クローン元リポジトリのパスが p4:// で始まっている場合、 クローン先のリポジトリを作成し、すべての変更点を Perforce リポジトリからプルします。 **TortoiseHg との統合** perfarce 拡張機能が有効化されると、クローンダイアログに :guilabel:`開始リビジョン` オプション設定が追加され、 チェンジログビューアのメニューバーには :guilabel:`Perforce` メニューが追加されます: identity:: Perforce 変更リストの tip リビジョンがローカルリポジトリにおける どのリビジョンなのかを探して、そのリビジョンを選択します。 pending:: Perforce クライアントにプッシュしているが、まだサブミットしていない、 または取り止めた保留中の Perforce 変更リストを検出します。 実行すると保留中の変更リストが表示され、それらをサブミットするか 取り止めるか決めることができます。 **インストール** 拡張機能を Mercurial.ini ファイルまたはリポジトリの hgrc ファイルで有効にしてください: :: [extensions] perfarce= hgsubversion (SVN) ================== * `hgsubversion `_ ウェブサイト * `hgsubversion 拡張機能 `_ Wiki * `Subversion リポジトリを使う `_ hgsubversion はその名前の通り、Mercurial を Subversion サーバのクライアントとして使用するための拡張機能です。また Subversion リポジトリを Mercurial のリポジトリに変換するのにも使えます。 *インストール* TortoiseHg の Windows インストーラは hgsubversion が必要とする Python 用の SVN ライブラリを同梱しているため、以下の hgsubversion リポジトリをローカルにクローンするだけで使えます: :: hg clone https://bitbucket.org/durin42/hgsubversion/ C:\hgsvn そして次のようにしてクローンしたリポジトリの中を指すようにして hgsubversion 拡張機能を Mercurial.ini で有効にします: :: [extensions] hgsubversion = C:\hgsvn\hgsubversion 正しくインストールできたかどうかは :command:`hg help hgsubversion` をコマンドラインから実行して確認してください。 より詳細な説明については hgsubversion の Wiki をご覧ください。 .. warning:: Subversion サーバからクローンする際は、最初のいくつかのリビジョンだけを クローンしてから、残りのリビジョンをプルすることをお勧めします。 クローンに失敗すると不完全なクローンリポジトリ全体が削除されてしまうためです。 その点、プル操作はより寛容です。 *TortoiseHg におけるサポート* Subversion リポジトリからインポートしたチェンジセットには、Subversion におけるバージョン番号がログビューアに表示されます。 hg-git (git) ============ * `hg-git `_ ウェブサイト * `hg-git 拡張機能 `_ Wiki * `Git ユーザのための Mercurial `_ hg-git はその名前の通り、Mercurial を git サーバのクライアントとして使用するための拡張機能です。 また git リポジトリを Mercurial のリポジトリに変換するのにも使えます。 *インストール* TortoiseHg の Windows インストーラは hg-git が必要とする Python 用の git ライブラリ (dulwich) を同梱しているため、以下の hg-git リポジトリをローカルにクローンするだけで使えます: :: hg clone https://bitbucket.org/durin42/hg-git/ C:\hg-git Mercurial.ini ファイルで hggit と bookmarks 拡張機能を有効にしてください: :: [extensions] bookmarks = hggit = C:\hg-git\hggit 正しくインストールできたかどうかは :command:`hg help hggit` をコマンドラインから実行して確認してください。 より詳細な説明については hg-git の Wiki をご覧ください。 'incoming' コマンドは git リポジトリとのやり取りがうまくいっておらず、 'outgoing' コマンドはあまり有用な情報を表示しません。 他のバージョン管理システムと相互運用する拡張機能では珍しくないことですが、 実質的に使用できるのはプルとプッシュ操作だけになります。 .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-ja/patches.txt0000644000000000000000000001707014023111777017152 0ustar00rootroot****** パッチ ****** .. module:: patches :synopsis: パッチの取り扱いについて パッチとは ========== 以下のリンクはパッチの本質と歴史を理解し、Mercurial ではどのように使われているのかを理解するのによい資料です。 * `パッチ管理問題 `_ * `パッチを理解する `_ * `さらにパッチについて `_ 落とし穴 ======== 標準的なパッチ形式はバイナリファイルや名前変更、コピー、パーミッションの変更を記述できません。 そのためまず **GIT** 形式のパッチを有効にする必要があります: :: [diff] git=True Mercurial 1.5 ではこの振る舞いが改善され、GIT 形式の差分が必要な場合は ユーザに警告を出すか、自動的に GIT 形式に変更します。詳しくは hgrc マニュアルの `差分 `_ のセクションを参照してください。 Mercurial のパッチ処理は改行文字に一貫性のないソースファイルとパッチを うまく取り扱うことができないため、その解決方法として **patch.eol** 設定がバージョン 1.3 で導入されました: :: [patch] eol = auto #strict, lf, or crlf hgeol 拡張機能もこの領域の問題の改善に取り組んでいます。 おそらく Mercurial 1.5 で解決します。詳しくは 詳しくは hgrc マニュアルの `パッチ `_ のセクションを参照してください。 実のところパッチの適用というのはそれほど簡単な作業ではありません。 もしソースファイルがパッチ作成時から枝分かれしてしまっていたら、 パッチ適用時に衝突が起こり、.rej という拡張子のファイルが生成されます。 TortoiseHg 1.0 からこれらの除外されたハンクをうまく適用してくれる実験的な :command:`hgtk mpatch` コマンドが導入されました。このコマンドは Chris Mason による `mpatch `_ ツールが元になっています。この mpatch でも適用できなかったハンクは手動で適用するしかありません。 パッチのエクスポート ==================== チェンジセット -------------- チェンジセットをパッチとして保存するには、チェンジログビューアで チェンジセットの右クリックメニューから :menuselection:`エクスポート --> パッチの作成` を選択してください。 ファイル保存ダイアログが表示されます。 リビジョン範囲 -------------- チェンジログビューアでリビジョンの範囲を選択してください。 始点 (base) となるチェンジセットを左クリックで選択し、次に終点 (target) のチェンジセットの上で右クリックすると、このリビジョン範囲に対するコマンドを含んだ 右クリックメニューが表示され、パッチの生成・バンドルの保存、メール送信、そして 選択範囲のチェンジセットの変更点を積み重ねた差分を見ることができます。 始点と終点の選択には制限がないため、この操作は非常に強力な機能です。 メール送信 ---------- .. figure:: figures/email.png :alt: メール送信ダイアログ メール送信ダイアログ 単独のチェンジセットを送るにはチェンジログビューアで チェンジセットの右クリックメニューを使用してください: :menuselection:`エクスポート --> メールで送信...` 。 選択するとメール送信ダイアログが開きます。 リビジョン範囲をまとめて送る場合はリビジョン範囲の右クリックメニューから :menuselection:`この範囲をメールで送信...` を選択してください。 最後に、選択中のリモートリポジトリにすべてのチェンジセットを送るために同期ツールバーの :guilabel:`メール送信` ボタンを使うこともできます。 .. note:: パッチをメールで送信するには事前に `SMTP `_ の設定が必要です。 チェンジセットのつまみ食い -------------------------- チェンジログビューアでリビジョン範囲の右クリックメニューの :menuselection:`選択中のリビジョンとの差分` を使用してください。始点から終点までのすべてのリビジョンにおける変更点を 積み重ねた差分がステータスダイアログに表示されます。 ステータスダイアログではコミットツールと同じようにファイルおよびハンク選択機能を 使うことができ、最終的な結果は :guilabel:`プレビュー` タブで見ることができます。 :guilabel:`名前を付けて保存` ボタンを押せば選択されている変更点をパッチファイルとして保存できます。 より手軽な方法としてはハンク選択画面で必要なハンクをハイライト (選択ではない) してから CTRL-C すればクリップボードに差分をコピーできます。 .. note:: 選択する順番を逆にすると、生成されるパッチの順番も逆になります。 パッチのインポート ================== .. figure:: figures/import.png :alt: インポートダイアログ インポートダイアログ インポートダイアログはログビューアの同期バーまたはメニューから、 もしくはコマンドラインから :command:`hgtk import` で開くことができます。 このダイアログはファイルマネージャからのファイルおよびディレクトリの ドラッグ&ドロップ操作に対応しています。:guilabel:`選択` ボタンの右隣ににある ドロップダウンメニューには、パッチを含むディレクトリを選択するための :guilabel:`ディレクトリの選択...` メニューと、クリップボートから取り込む :guilabel:`クリップボートからインポート` メニューがあります。 リポジトリに直接インポートするか、MQ にインポートするか選択できます。 .. note:: パッチのインポートを正しく行うには作業ディレクトリがクリーン でなければなりません。インポートする前に未コミットの変更点をコミット、 元に戻す、またはシェルフしてください。 .. warning:: コミットメッセージのないパッチをインポートすると Mercurial はエディタを起動して入力を促します。そのため ui.editor 設定値として GUI エディタが設定されている必要があります。 MQ (パッチキュー) ================= .. figure:: figures/patchqueue.png :alt: MQ パネル ログビューアの MQ パネル リポジトリで MQ 拡張機能が有効化されていると、ログビューアとコミットツールで MQ パネルが利用可能になります。MQ パネルでは qpush、qpop、qrename、qfinish を含むほとんどのパッチ操作を行えます。MQ パネルを使う前に MQ 拡張機能について学んでおくことをお勧めします。 .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-ja/preface.txt0000644000000000000000000001033614023111777017126 0ustar00rootroot******** はじめに ******** .. module:: preface :synopsis: このマニュアルについて 対象読者 ======== 本書は Mercurial を利用してファイルやデータを管理したいけど、 コマンドラインから操作するのはやや不便だと感じる、 ある程度コンピュータに慣れ親しんだ方のために書かれました。 TortoiseHg は Windows のシェル拡張として提供されるため、 ユーザは普段使っている Windows エクスプローラから利用することができます。 本書の最新版は `公式サイト `_ からダウンロード可能です。 本書の読み方 ============ この章では本書の構成、開発や議論の中心となっているコミュニティ、 利用および再配布のソフトウェアライセンスなど、 TortoiseHg プロジェクトについて少し説明をしておきます。 :doc:`intro` では TortoiseHg とは何か、何ができるのか、 どこからどうやってインストールすればいいのかなど、 基本的な事柄について説明します。 :doc:`quick` は TortoiseHg に初めて触れる人のための短いチュートリアルです。 :doc:`daily` はこのマニュアルの本編で、 TortoiseHg でよく利用するダイアログやコンポーネントについて解説します。 :doc:`settings` では TortoiseHg の設定ダイアログついて詳しく説明しています。 :doc:`recovery` はプロジェクトで行うリカバリ操作について書かれています。 :doc:`nonhg` では TortoiseHg を他のバージョン管理システムのクライアントとして 使用する方法について述べています。 :doc:`faq` には TortoiseHg 自体に関する質問や、 多くの人がぶつかる問題の解決方法などがまとめてあります。 :doc:`debugging` は TortoiseHg のバグを見つけたときに、 どのようにしてデバッグをすればいいのかについて書かれています。 ライセンス ========== TortoiseHg は `GPLv2 `_ の下でリリースされています。 好きなコンピュータに好きなだけインストールすることができますし、 GPLv2 ライセンスに従う限り再配布も可能です。 コミュニティ ============ Bitbucket には `公式 Wiki `_ もあります。 日本語 Wiki は `こちら `_ になります。 謝辞 ==== TortoiseHg プロジェクトに貢献し、本当に便利なツールを作り上げたすべての開発者、 翻訳者、利用者コミュニティ、特に貴重なバグレポートおよび機能要望をしていただいた ユーザの方々に感謝の意を表します。 TortoiseHg の Windows 向けインストーラには `TortoiseSVN `_ プロジェクトによる TortoiseOverlays ハンドラが含まれています。 表記規則 ======== 本マニュアルでは以下の表記規則に従っています: :kbd:`Ctrl-A` 押すべきキーボードのキーまたはキーの組み合せを示しています。 :guilabel:`コミット` ラベル、ボタンなど GUI に表示される文字列を示しています。 :menuselection:`TortoiseHg... --> About` メニュー選択およびその組み合せ、またタブ選択、GUI のラベルを示します。例えば :menuselection:`TortoiseHg... --> ユーザ設定 --> コミット --> ユーザ名` は メニューから :menuselection:`TortoiseHg... --> ユーザ設定` とたどり、 開いたダイアログの :guilabel:`コミット` というページに切り替えて、その中にある :guilabel:`ユーザ名` というラベルの付いた場所で何かをする、という意味になります。 :file:`.hg/hgrc` ファイル名やディレクトリ名を示します。 :command:`hgtk log` コマンドプロンプトなどへの入力を示します。 ``myproxy:8000`` GUI のテキストボックスへの入力を示します。 .. note:: 注釈です。 .. warning:: 重要な注釈です。注意してください。 .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-ja/quick.txt0000644000000000000000000003646114023111777016644 0ustar00rootroot*************************** TortoiseHg クイックスタート *************************** .. module:: tour :synopsis: Windows で TortoiseHg を使うためのチュートリアル TortoiseHg と Mercurial にようこそ! TortoiseHg は Mercurial 分散バージョン管理システム (DVCS) に Windows エクスプローラのシェル拡張と使い勝手の良い GUI フロントエンドを提供するアプリケーションです。すべての TortoiseHg の機能はエクスプローラの右クリックメニューからだけでなく、付属の :command:`hgtk` コマンドラインツールからも起動することができます。 Mercurial のコマンドも通常の :command:`hg` コマンドで利用できます。 TortoiseHg の設定 ================= まず最初にやることは TortoiseHg にあなた自身について教えることです。 TortoiseHg のユーザ設定ダイアログから設定できます。 プロジェクトディレクトリを右クリックして :menuselection:`TortoiseHg --> ユーザ設定` を選択します。 .. figure:: figures/cmenu-global-settings.png :alt: デスクトップの右クリックメニュー デスクトップからユーザ設定ダイアログを開く このメニューは TortoiseHg 設定ダイアログを開いて、ホームディレクトリにある あなたのユーザ設定を編集します。コマンドラインから使用しているのであれば :command:`hgtk userconfig` でユーザ設定ダイアログを開くことができます。 .. figure:: figures/settings.png :alt: 設定ダイアログ TortoiseHg 設定ダイアログ そして :guilabel:`コミット` ページに切り替えて、 :guilabel:`ユーザ名` の テキストボックスに名前を入力してください。 .. note:: ユーザ名の設定をし忘れた場合、TortoiseHg は必要に応じてコミット時にユーザ名の 入力を促します。 .. note:: ユーザ名として設定する名前の形式に厳密なルールがあるわけではありませんが、 多くの人が次のような形式を採用しています: 氏名 <電子メールアドレス> 例えば: Taro Yamada 電子メールアドレスはチェンジログビューアで履歴を表示する際には削除され、 Mercurial 内蔵のウェブサーバを利用した場合はスパム対策のためメールアドレス の一部のみ表示されます。 次に :guilabel:`TortoiseHg` ページに切り替え、 :guilabel:`3-way マージツール` の設定項目を選択します。このドロップダウンリストにはシステム内で検出された すべての利用可能なマージツール (kdiff3 は Windows 向けの TortoiseHg インストーラ同梱) と Mercurial 組み込みのマージ処理が含まれています。 好みのマージツールを選んでください。 選択したマージツールを GUI 差分表示ツールとしても利用したい場合は :guilabel:`GUI 差分表示ツール` の設定項目を :guilabel:`未設定` のままにしておいてください。マージツールとは異なる他の差分ツールを 利用したい場合はドロップダウンリストから好きなツールを選択してください。 ドロップダウンリストに選択肢がない場合は mergetools.rc がサポートしている 差分/マージツールをインストールするか、未サポートのツールであれば :file:`Mercurial.ini` ファイル、または :file:`.hgrc` ファイルに設定を記述する必要があります。 .. note:: TortoiseHg をソースコードからインストールしている場合、 contrib/mergetools.rc ファイルを HGRC パスに含める必要があります。 例えば %include を使うことで ~/.hgrc ファイルから読み込みます。 他のユーザ設定も自由に設定してください。必要であればユーザ設定における 設定値はリポジトリごとの設定で上書きすることができます。 :guilabel:`OK` ボタンを押して変更を保存して完了です。 .. note:: ほとんどの TortoiseHg ダイアログは設定を反映するために 再起動する必要があります (システムの再起動ではない)。 リポジトリの初期化 ================== 右クリックメニューの :guilabel:`ここにリポジトリを作成` を選択するか、 コマンドラインから :command:`hgtk init` を実行して最初のリポジトリを ローカルディスク上に作成してみましょう。 この作業はプロジェクトディレクトリのルートで一度だけ行ってください。 .. figure:: figures/init.png :alt: 初期化ダイアログ リポジトリ初期化ダイアログ 特に理由がなければ :guilabel:`特殊ファイルを追加する (.hgignoreなど)` にチェックを入れ、 :guilabel:`Mercurial 1.0 互換のリポジトリを作成` のチェックは外した状態で リポジトリを作成すると良いでしょう。 :guilabel:`作成` ボタンを押すと Mercurial はプロジェクトディレクトリに :file:`.hg` という名前のディレクトリを作成します。 ここには Mercurial のすべてのバージョン情報が保管され、一般に *リポジトリ* と呼ばれています。一方、実際のソースファイルなどが含まれているディレクトリを *作業ディレクトリ* と呼びます。コマンドを実行するときこの :file:`.hg` ディレクトリを指定する必要はなく、作業ディレクトリのルートを指定するだけで 大丈夫です。これは Mercurial がどのように動いているのかを理解するために 覚えておくと良いかもしれません。 .. warning:: :file:`.hg` を直接編集することはリポジトリの破損を引き起こすため危険です。 ただし :file:`.hg/hgrc` のみ例外的に編集が認められています。 ファイルの追加 ============== いよいよ Mercurial にどのファイルを管理下に置き、どのファイルを無視すべき なのかを指定します。これにはいくつものやり方があります: 1. エクスプローラで追加したいファイルを右クリックしてメニューを開いて :menuselection:`TortoiseHg --> 追加...` を選択します。 するとファイル追加を確認するダイアログが表示されるので、 それでよければ :guilabel:`追加` ボタンを押してください。 2. もしくは、ステータスツール (:menuselection:`TortoiseHg --> 変更点の確認` またはコマンドラインから :command:`hgtk status`) を開いて追加したいファイルの チェックボックスにチェックを入れ、 :guilabel:`追加` ボタンを押します。 ステータスツールでは、不明なファイルの右クリックメニュー (:guilabel:`無視`) から無視フィルタツールを開くこともできます。 3. または、ファイルの追加を独立した作業として行わず、コミットツールで済ます ことも可能です。コミットツールはステータスツールと非常に似ており、 ステータスツールで可能な操作はすべてコミットツールでも行えます。 このツールではファイルにチェックを入れて :guilabel:`コミット` ボタンを押す ことで、まだ Mercurial 管理下に置かれていないファイルの追加およびコミット することができます。 4. 無視ファイルを指定するために無視フィルタダイアログを開きます: 右クリックメニューから :menuselection:`TortoiseHg --> 無視フィルタの編集` を選択するか、コマンドラインから :command:`hgtk hgignore` を実行します。 一覧からファイルを選択するか直接 *Glob* または *正規表現* を入力して :guilabel:`追加` ボタンを押してください。ここでの変更は即座に反映されます。 .. note:: :file:`.hgignore` ファイルは作業ディレクトリのルートに含まれており、 通常は Mercurial のバージョン管理下に置かれています。 .. note:: 作業ディレクトリにたくさんの *不明* ファイルを放置したままにしないというのは、 バージョン管理下に置くべきファイルの追加し忘れを未然に防ぐという意味で よい習慣と言えます。そのため :file:`.hgignore` ファイルを極力最新の状態に 保つよう努めてください。 コミット ======== プロジェクトディレクトリを右クリックして :guilabel:`Hg コミット ...` を 選択するか、コマンドラインから :command:`hgtk commit` を実行して変更点を ローカルリポジトリにコミットします。コミットメッセージを記述し、 コミットしたいファイルにチェックを入れてから :guilabel:`コミット` ボタンを 押します。コミット後にコミットメッセージの内容やコミットしたファイルの間違いに 気付いた場合は :guilabel:`取り消し` ボタンで直前のコミットを取り消すことが できます。入力したコミットメッセージはメッセージ履歴のドロップダウンリストに 残るため、同じメッセージを再度入力し直す必要はありません。 .. note:: コミットツールを閉じてしまうと直前のコミットを :guilabel:`取り消し` ボタンで 取り消すことは出来なくなります。 .. figure:: figures/commit.png :alt: コミットダイアログ コミットツール リポジトリの共有 ================ これであなたの成果を共有するための準備が整いました。あとはこのリポジトリを 他のメンバからも参照できる共用スペースにコピーするだけでOKです。 Mercurial ではこのコピー操作を *リポジトリのクローン (cloning your repository)* と呼んでいます。リポジトリを共有ドライブにするには右クリックメニューから :menuselection:`TortoiseHg --> リポジトリのクローン` を選択するか、 コマンドラインから :command:`hgtk clone` を実行します。 .. figure:: figures/share.png :alt: クローンダイアログ クローンダイアログ チームでコードを共有するための *中央リポジトリ* に、あなたが持っている ローカルのリポジトリのような作業ディレクトリは必要ありません。 つまり、純粋にリポジトリだけあれば十分と言えます。このような場合、 :guilabel:`クローン後に作業ディレクトリを HEAD に更新しない` にチェックを入れることで Mercurial は中央リポジトリのクローンから 作業コピーをチェックアウトしません。その結果、プロジェクトのリビジョン履歴の すべてが格納されている :file:`.hg` のみとなります。 他のチームメンバはこの中央リポジトリからクローンすることで作業できます。 共有リポジトリからの取得 ======================== 今あなたがあるチームと共同作業を始めたいとします。彼らは *X からリポジトリを取得してくれ* と言っていますが、どういう意味なのでしょうか? これは、X という場所に置かれているリポジトリをローカルにクローンしてくれ、 という意味になります。Mercurial ではこれをクローン (cloning) と呼び、 TortoiseHg には専用のダイアログが用意されています。 クローンを作成したいディレクトリで右クリックメニューを開いて :menuselection:`TortoiseHg --> リポジトリのクローン` を選択するか コマンドラインから :command:`hgtk clone` を実行してください。 .. figure:: figures/clone.png :alt: クローンダイアログ クローンダイアログ 今回はこれからクローンするリポジトリの作業ディレクトリでプロジェクトの作業を するため、 :guilabel:`クローン後に作業ディレクトリを HEAD に更新しない` のチェックは外してください。これで Mercurial は作業ディレクトリを *tip* リビジョンに更新します。 リポジトリを使ったワークフロー ============================== 作業ディレクトリでいくつかの変更を加えたとします。エクスプローラでいくつかの 変更が保留中であることをアイコンオーバーレイの変化から簡単に確認できます。 より詳細な変更点の確認やそれらのコミットはエクスプローラから行うことができます。 手っ取り早い方法はコミットツールを使うことです: .. figure:: figures/overlayicons.png :alt: アイコンオーバーレイ Windows Vista でのアイコンオーバーレイ表示 コミットツールは変更の差分を表示してくれます。もしくは普段使用している GUI の 差分表示ツール (kdiff など) を使用することもできます。 Mercurial のリポジトリは 分散型になっているため、変更点を共有リポジトリと同期 (変更点の共有) するかどうか 決める前にローカルリポジトリにコミットできます。 変更を共有リポジトリに公開する準備が整ったら、 1. ローカルのリポジトリに変更点をコミットします (前述)。 2. 共有リポジトリから変更をローカルリポジトリにプル (pull) します: 右クリックメニューから :menuselection:`TortoiseHg --> ログの表示` または コマンドラインから :command:`hgtk log` を実行し、共有リポジトリの場所を 同期バーで選択して、ツールバーの :guilabel:`プル` ボタンを押します。 3. いくつかのチェンジセットがプルされた場合、それらの変更とローカルでの変更を マージして、マージ結果をローカルリポジトリにコミットしてください。 チェンジログビューアから (:menuselection:`TortoiseHg --> ログの表示` または :command:`hgtk log`) マージしたいリビジョンの右クリックメニューを 開いて :guilabel:`マージ` を選択します。マージダイアログが表示されるので、 :guilabel:`マージ` ボタンを押してマージを実行し、 :guilabel:`コミット` してください。 4. マージが正しく行われたかどうかテストなどで検証してください。 5. 変更を共有リポジトリにプッシュ (push) するために、 :menuselection:`TortoiseHg --> ログの表示` または :command:`hgtk log` で同期ダイアログを開き、共有リポジトリの場所を選択してから :guilabel:`プッシュ` ボタンを押します。 文章にすると複雑に見えますが、実際にはコミットしてチェンジログビューアのボタンを 押すだけです。 .. note:: マージ作業に失敗したとしても安全に最初からマージ作業を始めることが可能です。 Mercurial は共同作業を簡単に、素早く、効率的にします。 詳しくは Mercurial の `wiki `_ をご覧ください。 .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/recovery.txt0000644000000000000000000000331211534217015017347 0ustar00rootroot******** リカバリ ******** .. module:: recovery.dialog :synopsis: リカバリ操作を行うためのダイアログ .. figure:: figures/recover.png :alt: リカバリダイアログ リカバリダイアログ ツールバーのボタンは Mercurial コマンドそのものになっています: :guilabel:`クリーン` :command:`hg update --clean` - 現在の親リビジョンそのものを作業ディレクトリに クリーンな状態でチェックアウトします。マージ作業を途中で中止した場合や部分的にしか 完了していないマージ結果を取り消すことができます。ただしこれは作業ディレクトリ における変更を破棄することになるため十分注意してください。 そのためシェルフ機能を使って変更を保管してからこのコマンドを使用すべきです。 :guilabel:`ロールバック` :command:`hg rollback` - コミットやプルなど、リポジトリに対する最後の操作を 取り消します。ただし、ロールバックの結果どのような操作が取り消されるのかを事前に 知ることはできないため、最後に何をしたのか分かっている状況でのみ使用してください。 :guilabel:`復元` :command:`hg recover` - トランザクションの中断などで破損したリポジトリを復元します。 このコマンドは滅多に使いませんが、する必要のあるときは Mercurial が教えてくれます。 :guilabel:`検証` :command:`hg verify` - リポジトリの整合性チェックをします。この操作はリポジトリ内容の 変更を一切伴わないため安全です。 .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258893.0 tortoisehg-6.9/doc/source-ja/serve.txt0000644000000000000000000000433511534217015016643 0ustar00rootrootサーバ ====== .. module:: serve.dialog :synopsis: ウェブサーバを開始・停止するためのダイアログ .. figure:: figures/serve.png :alt: ウェブサーバダイアログ サーバツールは Mercurial 内蔵のウェブサーバのラッパーです。 起動すればどんなコンピュータでも HTTP ポートでサービスを開始し、 リポジトリの閲覧や、クローン、プルだけでなく、サーバ設定を変更して許可することで プッシュも可能です。 ツールバーボタン: :: :guilabel:`開始` ウェブサーバを開始します :guilabel:`中止` ウェブサーバを停止します :guilabel:`ブラウザで開く` 既定のブラウザを起動してリポジトリを表示します :guilabel:`設定` リポジトリのテーマ、説明、アクセスポリシーの設定をします :guilabel:`設定` ボタンを押すとそのリポジトリの設定ダイアログが開きます。 サーバ設定の詳細については Mercurial の Wiki を参照してください。 複数のリポジトリ ---------------- 1つのウェブサーバプロセスで複数のリポジトリを運用したい場合は :file:`hgwebdir.conf` という名前のテキストファイルを作成し、そのファイルに次のような設定を記述してください: :: [paths] / = /path/to/repositories/* 左辺の '/' はウェブサーバにアクセスするときのパスで、右辺はローカルリポジトリの ディレクトリパスです。ここに複数の項目を記述することができます。 この設定ファイルを使用するためにウェブサーバダイアログを右クリックメニューから ではなく、コマンドラインから :command:`hgtk serve --webdir-conf=hgwebdir.conf` を実行して起動してください。 コマンドラインからの実行 ------------------------ サーバツールはコマンドラインから起動することもできます: :: hgtk serve [OPTION]... web server options: --webdir-conf name of the webdir config file use "hgtk -v help serve" to show global options .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-ja/settings.txt0000644000000000000000000005076014023111777017366 0ustar00rootroot************** 設定ダイアログ ************** .. module:: settings.dialog :synopsis: TortoiseHg および Mercurial の設定ダイアログ .. figure:: figures/settings.png :alt: 設定ダイアログ 設定ダイアログ 設定ダイアログでは TortoiseHg と Mercurial 本体の両方の設定ができます。 TortoiseHg は Mercurial の設定システムを利用して設定情報を保存・取得しているため、 本質的に同じになります。 Windows の Mercurial には3つの設定ファイルがあります。 1) グローバル設定ファイル: :file:`C:\\Program Files\\TortoiseHg\\Mercurial.ini` このファイルは最初に読み込まれるため、最も優先順位が低くなります。 2) ユーザ設定ファイル: :file:`C:\\Documents and Settings\\ユーザ名\\Mercurial.ini` このファイルは2番目に読み込まれるため、前述のグローバル設定ファイルを 上書きできます。 3) リポジトリ設定ファイル: :file:`リポジトリのルート\\.hg\\hgrc` このファイルは最後に読み込まれるため、グローバルおよびユーザ設定ファイルを 上書きできます。 グローバル設定ファイルは TortoiseHg のアップグレード時に上書きされる可能性があるため、 このファイルを編集することはお勧めできません。その代わり、ホームディレクトリにある ユーザ設定ファイル :file:`Mercurial.ini` または :file:`hgrc` ファイルを変更した 方が良いでしょう。TortoiseHg 設定ダイアログもこれに従い、次の2つのファイルにのみ 変更を行います: ユーザ ユーザ設定ファイル :file:`Mercurial.ini` または :file:`hgrc` を編集します リポジトリ リポジトリ設定ファイル :file:`.hg/hgrc` を編集します どちらの設定ファイルを編集するかはダイアログ上部のコンボボックスから切り替える ことができます。さらにあらかじめ設定されている GUI エディタで直接編集をすること もできます。 これら2種類の設定ファイルの使い分けについては、リポジトリ設定ファイルは 他の設定ファイルより優先されるため、すべてのリポジトリに共通する設定を ユーザ設定ファイルにまとめて保存しておき、リポジトリ設定ファイルには リポジトリパスのエイリアスや、ウェブサーバ設定といったリポジトリ固有の設定を 保存する、といった感じになります。ユーザおよびリポジトリ設定ファイルは自分で作成するか、 初めて設定ダイアログを開くまで存在しませんので注意してください。 設定ページ ========== 設定ツールは複数のページに分かれており、各ページは :file:`Mercurial.ini` ファイルの各セクションに対応しています。 :guilabel:`同期` ページを除けばすべてのページは同じレイアウトになっており、 設定項目がドロップダウンコンボボックスと共に一覧になっています。 コンボボックスには設定可能な値の他、ユーザが過去に入力した値の履歴も含みます。 設定項目のラベルにはツールチップが設定してあるため、マウスカーソルを乗せると その項目の詳しい説明を見ることができます。コンボボックスをクリックするなどして アクティブにしても、ダイアログ下部の説明表示用のフレームに同じ説明が表示されます。 設定項目についてのより詳細な情報については Mercurial の公式 Wiki を参照してください。 ただし、最初の3つのページ (:guilabel:`TortoiseHg`, :guilabel:`コミット`, :guilabel:`チェンジログ`) については TortoiseHg 固有の設定になるため、 Mercurial の Wiki には該当する情報がありません。 .. module:: TortoiseHg.settings :synopsis: TortoiseHg の設定 TortoiseHg ---------- :guilabel:`3-way マージツール:` マージ時の衝突を解決するGUI のマージプログラム。指定されなかった場合、Mercurial は システムで最初に見つかった内蔵マージツールを衝突マーカを取り除くために使用します。 強制的に衝突マーカを表示するには :guilabel:`internal:merge` を指定し、 常に local か other を選択できるようにするには :guilabel:`internal:prompt` を 指定し、手作業でマージするために作業ディレクトリにファイルを書き出しておくには :guilabel:`internal:dump` を指定してください。 :guilabel:`GUI 差分表示ツール:` Mercurial 設定ファイルの [merge-tools] セクションに記述されている GUI 差分表示ツールを指定。 未設定の場合は選択されている 3-way マージツールを使用します。 3-way マージツールが選択されていない場合は TortoiseHg が利用可能なツールを探して使います。 :guilabel:`差分表示をスキップ:` TortoiseHg の GUI 差分表示ダイアログを表示せず、設定されている GUI 差分表示ツールのディレクトリ比較機能を使います。この機能は GUI 差分表示ツールが 正しい extdiff 設定を持っている場合のみ有効にしてください。デフォルト:False。 :guilabel:`GUI エディタ:` ファイルを表示するための GUI エディタを指定します。 :guilabel:`コマンドラインエディタ:` コミット時や Mercurial がユーザから複数行のテキスト入力を必要としている場合に 使用するエディタです。CLI コマンドにのみ使用されます。 :guilabel:`タブ文字の幅:` TorroiseHg の各種ダイアログにおいてテキスト中のタブ文字をいくつの空白文字に 展開するかを指定してください。デフォルト:タブ文字を展開しない。 :guilabel:`最大差分サイズ:` チェンジログ・ステータス・コミットダイアログで表示する最大ファイルサイズを KB 単位で指定してください。0の場合は無制限となります。デフォルト:1024。 :guilabel:`差分を画面下部に表示:` 差分表示パネルをステータス・シェルフ・コミットダイアログのファイル一覧の下に配置します。 デフォルト:False (ファイル一覧の右側に表示)。 :guilabel:`標準エラーの補足:` 標準エラー出力の実行時エラーを補足して表示します。デフォルト:True。 :guilabel:`ダイアログプロセスの生成:` hgtk をコマンドラインから起動したとき、ダイアログ用のバックグラウンドプロセスを 生成するかどうかを設定します。デフォルト:True。 :guilabel:`絶対パス表示:` 各種ダイアログのタイトルにリポジトリのディレクトリ名のかわりにフルパスを 表示します。デフォルト:False。 :guilabel:`スペルチェック言語:` スペルチェックに使用するデフォルトの言語を指定します。指定されなかった場合は システム既定の言語が使用されます。例:en, en_GB, en_US。 スペルチェックには gtkspell が必要になるため、 GNOME デスクトップを 採用している環境でのみ使用可能です。 .. module:: commit.settings :synopsis: コミットダイアログに関する設定 コミット -------- :guilabel:`ユーザ名:` コミット時に使用する名前。 :guilabel:`要約行最大文字数:` コミットログ最初の行 (要約行) の最大文字数。これが設定された場合、 要約行が長すぎる、もしくは要約行とそれ以降のログが空行で区切られていないときに 警告が表示されます。デフォルト:0 (制限しません)。 :guilabel:`コミットログ折り返し文字数:` コミットログの折り返し文字数。これが設定された場合、コミットログ中の1行でも 設定文字数を上回っていると警告が表示され、その文字数で強制的に折り返すための ポップアップメニューが表示されます。デフォルト:0 (制限しません)。 :guilabel:`コミット後にプッシュ:` True にすることで *コミット後にプッシュ* チェックボックス の初期値として 使用されます。デフォルト:False。 :guilabel:`自動コミットリスト:` コミットに自動的に含めたいファイルをカンマ区切りで指定します。 通常はユーザ設定ではなくリポジトリ設定で使用します。デフォルト:指定無し。 :guilabel:`自動除外リスト:` ステータス、コミット、シェルフツールにおいて自動的にチェックを外したい ファイルをカンマ区切りで指定します。デフォルト:指定無し。 .. module:: changelog.settings :synopsis: チェンジログの表示に関する設定 チェンジログ ------------ :guilabel:`コミッタで色分け:` コミッタ名でチェンジセットを色分けします。このオプションが無効の場合、 マージリビジョンは緑、親リビジョンが離れているリビジョンは赤、 それ以外の通常のリビジョンは黒に色分けされます。デフォルト:False。 :guilabel:`長めの要約行:` この設定が有効の場合、最大80文字になるまでコミットログの改行を無視して 1行として表示します。デフォルト:False。 :guilabel:`ログ読み込み件数:` 1度の処理で読み込みおよび表示するリビジョンの件数。デフォルト:500。 :guilabel:`削除済みブランチ:` リポジトリでブランチ名一覧を作成する際に無視するブランチ名をカンマ区切りで指定。 デフォルト:指定無し。 :guilabel:`ブランチの色:` ブランチ名とその色を "branch:#XXXXXX" の形式で空白文字区切りで指定。 ブランチ名に含まれる空白文字とコロン(":")はバックスラッシュ("\")で エスケープする必要があります。同様に他の文字についても、例えば "\u0040" はアットマーク("@")にデコードされ、"\n" は改行になります。 デフォルト:指定無し。 :guilabel:`非表示タグ:` 非表示にしたいタグ名を空白区切りで指定。便利な使用例:"qbase qparent qtip" を設定することで MQ 拡張機能が使用するタグを隠すことができます。 デフォルト:指定無し。 .. module:: synchronize.settings :synopsis: 同期ツールに関する設定 同期 ---- :guilabel:`同期` ページではリポジトリに関連するパス (URL やディレクトリパス) を 保存することができます。これらのパスをユーザ設定やユーザ設定ファイルに保存する ことはあまりなく、多くの場合リポジトリ設定ファイルにのみ保存します。Mercurial には 2つの特別なパス名 (エイリアス) があり、それらはいくつかの Mercurial コマンドで デフォルトのパスとして使用されます。 * *default* - プル元のデフォルトのパス。普通はクローンしたときのパス。 * *default-push* - コマンドラインを使用したときのデフォルトのプッシュ先のパス。 :guilabel:`プル後の処理:` プル操作が正常に完了するとそのまま続けて実行されます。 :guilabel:`update` はコマンドラインの :command:`pull --update`、 :guilabel:`fetch` は fetch 拡張機能、 :guilabel:`rebase` は :command:`pull --rebase` と同等の操作です。デフォルト:なし。 :guilabel:`リモートリポジトリパス` このパネルでは頻繁に利用するリポジトリのパスとそのエイリアスを設定できます。 クローンを実行すると Mercurial は自動的にそのリポジトリを *default* という エイリアスで登録します。ここで設定したパスはすべて同期ツールのコンボボックスに 表示され、コマンドラインから使用する場合でもショートカットとして利用できます。 .. module:: web.settings :synopsis: ウェブサーバに関する設定 サーバ ------ :guilabel:`リポジトリ名:` ウェブブラウザを使ったリポジトリ表示で使用する名前。 デフォルト:作業ディレクトリ名。 :guilabel:`説明:` リポジトリの目的または内容に関する説明文。 :guilabel:`連絡先:` このリポジトリの管理者の名前またはメールアドレス。 :guilabel:`テーマ:` 使用するテンプレート名。 :guilabel:`アーカイブ形式:` ダウンロード可能にするアーカイブ形式をカンマ区切りで指定。 :guilabel:`ポート番号:` サーバの待ち受けポート番号。 :guilabel:`SSL プッシュ:` パスワード傍受などを防ぐため、プッシュ操作に SSL 通信の使用を必須と するかどうか。 :guilabel:`ストライプ:` 複数行を出力するとき、何行ごとに色を変えるか。 デフォルト:1 (0でストライプ無効)。 :guilabel:`最大ファイル表示件数:` チェンジセットごとに表示するファイルの最大件数。 :guilabel:`最大チェンジセット表示件数:` チェンジログ一覧に表示するチェンジセットの最大件数。 :guilabel:`プッシュ許可リスト:` リポジトリへのプッシュを許可するかどうか。空欄または未設定の場合、プッシュは許可されません。 特別な設定値 "*" の場合は認証されてないユーザも含め、誰でもプッシュ可能になります。 特定のユーザのみ許可したい場合はユーザ名をカンマ区切り (空白文字でも可) で指定してください。 それによってユーザ認証が必要になります。ここで指定した許可ユーザ一覧は拒否ユーザ一覧の 後に適用されます。 :guilabel:`プッシュ拒否リスト:` リポジトリへのプッシュを拒否するかどうか。空欄または未設定の場合、プッシュは拒否されません。 特別な設定値 "*" の場合はすべてのユーザがプッシュを拒否されます。特定のユーザのみ拒否したい場合は ユーザ名をカンマ区切り (空白文字でも可) で指定してください。ここで指定した拒否ユーザ一覧は 許可ユーザ一覧の前に適用されます。 :guilabel:`文字エンコーディング:` 文字エンコーディング名。 .. module:: proxy.settings :synopsis: プロキシ設定 プロキシ -------- :guilabel:`ホスト名:` プロキシサーバのホスト名とポート番号。例えば ``myproxy:8000`` など。 :guilabel:`除外ホスト:` 必要であればプロキシサーバを経由しないホスト名をカンマ区切りで指定。 :guilabel:`ユーザ名:` 必要であればプロキシサーバ認証用のユーザ名を指定。 :guilabel:`パスワード:` 必要であればプロキシサーバ認証用のパスワードを指定。 .. module:: email.settings :synopsis: メール送信に関する設定 メール送信 ---------- :guilabel:`送信者:` SMTP の "From" ヘッダに使用する送信元メールアドレス。 :guilabel:`受取人:` 送信先のメールアドレスをカンマ区切りで指定。 :guilabel:`Cc:` CC のメールアドレスをカンマ区切りで指定。 :guilabel:`Bcc:` BCC のメールアドレスをカンマ区切りで指定。 :guilabel:`メール送信手段:` 必要ならメールを送信する手段を指定。デフォルトの "smtp" は SMTP (以下の項目で設定可能) を用いてメールを送信します。もしくは sendmail (-f オプションで送信者、引数として受取人一覧、 メール本文は標準入力) のようなメール送信プログラムを直接指定することもできます。 通常は ``sendmail`` または ``/usr/sbin/sendmail`` と指定するだけで送信できます。 :guilabel:`SMTP ホスト名:` メールサーバのホスト名。 :guilabel:`SMTP ポート番号:` メールサーバへの接続ポート番号。デフォルト:25。 :guilabel:`SMTP TLS 設定:` TLS を使用してメールサーバに接続します。デフォルト:False。 :guilabel:`SMTP ユーザ名:` メールサーバ認証用のユーザ名。 :guilabel:`SMTP パスワード:` メールサーバ認証用のパスワード。 :guilabel:`ローカルホスト名:` 送信者自身をメールサーバに識別させるためのホスト名。 .. module:: diff.settings :synopsis: 差分表示に関する設定 差分 ---- :guilabel:`パッチ改行文字:` パッチファイルの改行文字を LF または CR+LF に正規化します。 Strict の場合は正規化されません。デフォルト:Strict。 :guilabel:`Git 拡張形式:` GIT の拡張差分ヘッダ形式を使用します。デフォルト:False。 :guilabel:`日付を非表示:` 差分ヘッダに日付情報を付加しないようにします。デフォルト:False。 :guilabel:`関数名の表示:` どの関数が変更されたのかを表示。デフォルト:False。 :guilabel:`空白文字の無視:` 行比較の際に空白文字の有無を無視します。デフォルト:False。 :guilabel:`空白文字の数の違いを無視:` 空白文字の数の違いを無視します。デフォルト:False。 :guilabel:`空行を無視:` 比較時に空行の有無を無視します。デフォルト:False。 :guilabel:`色付け方法:` 差分表示の色付け方法を指定。foreground は文字自体に色を付け、background は背景色を変更する。none にすることで差分の色付けを無効にできます。 デフォルト:foreground。 .. module:: font.settings :synopsis: フォントに関する設定 フォント設定 ------------ :guilabel:`テーマ標準フォント` 現在の GTK テーマのフォント設定を使用します。 :guilabel:`推奨フォント:` 各言語・環境向けに最適なフォント設定を選びます。 :guilabel:`個別設定フォント:` 使用するフォント名およびサイズをその使用目的ごとに個別に設定します。 このグループに含まれるドロップダウンコンボは :guilabel:`個別設定フォント:` ラジオボタンを選択したときに有効化されます。 :guilabel:`コミットメッセージ:` チェンジセットの詳細表示およびコミットダイアログのログ入力エリアで 使用されるフォント。デフォルトは monospace 10 です。 :guilabel:`差分表示:` チェンジセットの詳細表示およびコミットダイアログの差分表示で使用される フォント。デフォルトは monospace 10 です。 :guilabel:`ファイル一覧:` コミットダイアログのファイル一覧で使用されるフォント。 デフォルトは sans 9 です。 :guilabel:`コマンド出力:` コマンド出力ウィンドウで使用されるフォント。 デフォルトは monospace 10 です。 今回のリリースで削除された設定項目 ================================== :guilabel:`ハッシュ値のコピー:` チェンジログビューアでそのとき選択しているチェンジセットのチェンジセット ID をクリップボードにコピーできるようにします。廃止予定。デフォルト:False。 チェンジセットのハッシュ値をクリップボードにコピーするには、 チェンジセットの右クリックメニューから :guilabel:`ハッシュのコピー` を使用してください。 キーボードショートカット ======================== :kbd:`Ctrl-Enter` 変更を保存してダイアログを閉じます。これは :guilabel:`OK` ボタンを 押したときと同じ動作になります。 コマンドラインからの実行 ======================== 設定ダイアログはコマンドラインから起動することもできます。 リポジトリ設定 (:file:`.hg/hgrc` file) の場合は: :: hgtk repoconfig ユーザ設定 (:file:`Mercurial.ini` file) の場合は: :: hgtk userconfig コマンド構文はこのようにシンプルで共通オプションを除けばコマンドラインオプションを 指定する必要ありません。 .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-ja/shelve.txt0000644000000000000000000002210114023111777017000 0ustar00rootrootシェルフ ======== .. module:: shelve.dialog :synopsis: シェルフ・シェルフから戻す操作をするためのダイアログ .. warning:: win32text 拡張機能はハンク選択で問題を引き起こす可能性があります。この問題は Mercurial 1.3 と TortoiseHg 0.8 において解決されましたが、適切な設定が 必要です。詳しくは `issue #82 `_ をご覧ください。 このダイアログは作業ディレクトリにおける変更点のうち、必要な部分のみを選択して *シェルフ* (一時的に別の場所に保管しておく) するために使います。シェルフした変更点は特別なパッチとして リポジトリに格納され、いつでもその変更点を作業ディレクトリに戻すことができます。 .. figure:: figures/shelve.png :alt: シェルフダイアログ シェルフダイアログ ツールバーボタンを左から順に見ていきます: :guilabel:`シェルフ` チェックされたファイルの選択されたハンクをシェルフします。 :guilabel:`シェルフから戻す` シェルフされた変更点を作業ディレクトリに戻します。 :guilabel:`差分` チェックの入っているファイルの GUI 差分を表示します。 :guilabel:`元に戻す` チェックされているファイルを変更を加える前の状態に戻します。 その変更がマージの場合はどちらの親リビジョンに戻すか選択できます。 :guilabel:`追加` チェックされている不明ファイル '?' または無視ファイル 'I' を追加します。 :guilabel:`移動` チェックされているファイルを指定されたディレクトリに移動します。 :guilabel:`削除` チェックされているファイルを削除します。 :guilabel:`破棄` チェックされている管理済みファイルを破棄します。 :guilabel:`再読み込み` 作業ディレクトリの状態を再読み込みします。 再読み込み後もチェックボックスの選択状態は保たれます。 ファイル一覧には4つの列があります: 1) 各種操作のためにそのファイルが選択されているかどうかを示すチェックボックス。 ツールバーボタンによる操作はチェックされているファイルにのみ行なわれます。 部分選択状態のファイルについては特殊なチェック状態となります。 この列のヘッダを使えばすべてのファイルをチェックしたりチェックを外したりできます。 2) :guilabel:`状態` 列には Mercurial の status コマンドで使用されている ファイル状態を示す 'MARD?IC' のうちの1つが表示されます。 3) :guilabel:`マージ` 列はそのファイルのマージ状態を示しており、Mercurial の resolve コマンドで使用されている ' RU' のうちどれか1つが表示されます。 4) リポジトリルートを基準としたファイルパスが表示されます。 ファイル一覧の下に並んだチェックボックスは {M:変更, A:追加, R:削除, !:削除, ?:不明, C:クリーン, I:無視} のファイル状態ごとにファイル一覧に表示するかどうかを設定できます。 このチェックボックスはコミットツールからファイルまたはディレクトリを指定された場合には 無効になります。 タブ ---- シェルフツールの差分表示パネルには4つのタブがあります: 1) テキスト差分 - 選択されているファイルの差分が表示されます 2) ハンク選択 - 選択されているファイルのハンク選択状態を変更できます 3) シェルフプレビュー - すべての選択されている変更点が表示されます。このプレビュー に表示されている内容が作業ディレクトリから取り除かれてシェルフに格納されます。 4) シェルフ内容 - シェルフに格納されている内容が表示されます 変更点をシェルフする -------------------- このダイアログはコミットツールのように TortoiseHg のハンク選択機能を採用しており、 シェルフに移動したいファイルおよび変更点をユーザが選択できます。シェルフボタンを 押すと、選択された変更点が作業ディレクトリから削除され、パッチファイルとして保存されます。 既にシェルフされた変更点が存在する場合はその変更点と置き換えるか、もしくは新しい変更点を それにマージするか尋ねられます。シェルフに変更点があるときのみシェルフから戻すボタンが 有効になります。 シェルフした変更点を戻す ------------------------ シェルフから戻すボタンが押されると、シェルフした変更点が作業ディレクトリに再適用されます。 .. note:: シェルフから戻した後、シェルフツールを再読み込みすると、シェルフから戻された変更点は 作業ディレクトリへの変更として表示されます。 record/commit とはどう違うのか? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ シェルフされた変更点はそれが戻されるまで実際に作業ディレクトリから取り除かれます。 これはシェルフされている状態でもプロジェクトをビルドしたり、テストを実行したり できることを意味しています。コミットされた変更点が有効かどうか試すことができるので、 ビルド時に変更点を選択するより安全と言えます。 変更点をシェルフすることは完成した作業結果からデバッグ用コードを取り除くこどで動作に 影響がないか確かめるのに便利です。 注意:シェルフされた変更点は作業ディレクトリの内容を基準としたパッチに保管されます。 そのためもしシェルフ後の変更と衝突を起こした場合、そのパッチがキレイに再適用できる という保証はありません。 MQ とはどう違うのか? ^^^^^^^^^^^^^^^^^^^^^ シェルフはチェンジセットに変換されない単一の無名 MQ パッチと見なすことができます。 しかしシェルフツールは MQ でパッチを管理していても便利に使えます。 シェルフは MQ のパッチから変更点の一部を取得し、それらを別の MQ パッチ (または完全に新しいパッチ) に再適用できます。 例えば: 1) 分割したいパッチに変更をプッシュする 2) シェルフツールを開く (最上位のパッチがハンク選択可能になる) 3) そのパッチに残したいハンクの選択を解除して、 :guilabel:`シェルフ` ボタンを押す 4) コマンドラインから :command:`hg qrefresh` するかコミットツールの :guilabel:`QRefresh` ボタンで最上位のパッチを更新する 5) :command:`qpush` または :command:`qpop` してシェルフした変更を適用したい パッチに移動する 6) シェルフツールを開いて :guilabel:`シェルフから戻す` ボタンを押す 7) 最上位のパッチを更新する (手順4に戻る) 追加、削除、名前変更されたファイルをシェルフすることはできませんが、 MQ ならそれが可能です。 attic 拡張機能とはどう違うのか? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ attic 拡張機能はシェルフ機能の上位版です。具体的には attic は独立した複数の名前付き *シェルフ* を保持することができます。 キーボードショートカット ------------------------ :guilabel:`Ctrl-C` 差分表示パネルで現在ハイライト (選択ではない) されているハンクをクリップボードに コピーします。コピーしたハンクをテキストエディタに貼り付ければ、作業ディレクトリに おける変更点から任意のパッチを作り出すのに使えます。 クリップボードにコピーされたハンクは差分ヘッダが付加されるため、クリップボードの内容は 常に有効なパッチとして利用できます。 オプション設定 -------------- * :menuselection:`TortoiseHg --> 差分を画面下部に表示` * :menuselection:`TortoiseHg --> タブ文字の幅` * :menuselection:`TortoiseHg --> 最大差分サイズ` コマンドラインからの実行 ------------------------ シェルフツールはコマンドラインから起動することもできます: :: hgtk shelve aliases: unshelve shelve/unshelve tool use "hgtk -v help shelve" to show global options TortoiseHg のシェルフ機能を Mercurial のコマンドラインから使うには、 Mercurial.ini ファイルで以下のように拡張機能を有効化してください: :: [extensions] tortoisehg.util.hgshelve= これにより Mercurial に :command:`shelve` および :command:`unshelve` コマンドが追加されます。 .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/doc/source-ja/synchronize.txt0000644000000000000000000001745314023111777020103 0ustar00rootroot同期ツール ========== .. module:: synchronize.dialog :synopsis: 他のリポジトリとの同期作業に使用するダイアログ .. figure:: figures/synchronize.png :alt: 同期ダイアログ 同期ダイアログ .. note:: 同期ツールはバージョン 0.9 において廃止予定となり、以降のリリースで削除されます。 そのため同期操作はチェンジログビューアで行うことを推奨しています。 同期ツールはリポジトリ間でチェンジセットを転送したり、メールを送信するのに使います。 :guilabel:`受信` 指定したリポジトリからプルされるチェンジセットを表示します。 それらはローカルのリポジトリにはなく、指定したリポジトリにあるチェンジセットです。 :guilabel:`プル` チェンジセットを指定したリポジトリからプルします :guilabel:`送信` 指定したリポジトリにプッシュするチェンジセットを表示します。 それらはローカルにあって、指定したリポジトリにはないチェンジセットです。 :guilabel:`プッシュ` チェンジセットを指定したリポジトリにプッシュします。その結果、 ローカルにおける *tip* リビジョンが指定したリポジトリの新しい *tip* リビジョンになります。 :guilabel:`メール送信` 指定したリポジトリへのチェンジセットをメールで送信します :guilabel:`シェルフ` いくつかの同期操作は作業ディレクトリがクリーンであることを前提として いるため、シェルフツールを起動して作業ディレクトリにおける変更点を 一時的にシェルフに退避します。 :guilabel:`中止` 現在の操作を中止します :guilabel:`設定` リポジトリパス (とそのエイリアス) の設定ダイアログを開きます ツールバーの下のボタンはそれぞれ: :guilabel:`リポジトリ:` 同期に使用するローカルリポジトリを指定します :guilabel:`バンドル:` プルの対象となるローカルのバンドルファイルを指定します その隣のコンボボックスには同期の対象となるリポジトリのパスを入力または選択します。 ドロップダウンリストにはこのリポジトリに設定されているパスのエイリアスが表示されます。 :guilabel:`プル後の処理` のフレームにはプル操作が完了した後に実行する処理を選択する ラジオボタンがあります。この動作はツールバーの :guilabel:`設定` ボタンから変更可能です。 ユーザ設定を上書きすることでリポジトリごとにデフォルトの動作を設定できます。 :guilabel:`なし` プル後に何もしません。下のログパネルでプルされたチェンジセットを確認できます。 *tip* リビジョンに更新するためのボタンが表示されることもあります。 :guilabel:`更新` ローカルリポジトリに新しいリビジョンがプルされた場合に自動的にブランチの *tip* リビジョンに更新します。これによってプルした変更とローカルのまだコミットされていない 変更が衝突した場合にマージが発生する可能性があります。 :guilabel:`取得` :command:`hg fetch` と同じ操作になります。動作の詳細については fetch 拡張機能の ヘルプを参照してください。この機能は fetch 拡張機能がユーザによって有効化されて いるときのみ表示されます。 :guilabel:`リベース` :command:`hg pull --rebase` と同じ操作になります。動作の詳細については rebase 拡張機能のヘルプを参照してください。この機能は rebase 拡張機能が ユーザによって有効化されているときのみ表示されます。 :guilabel:`プロキシサーバを使用する` チェックボックスは同期操作ごとに プロキシサーバの設定を無効化するのに便利です。 このボタンはプロキシ設定がされている場合にのみ有効になります。 すべての同期操作はユーザからの入力を促すダイアログによる認証を必要とします。 TortoiseHg は *ssh:* 接続とその認証のために TortoisePlink ツール (TortoiseSVN からの提供) を使用します。SSH サーバへの接続に問題がある場合は :doc:`faq` を参考にしてみてください。 折り畳める :guilabel:`詳細設定` パネルにはプル・プッシュ操作に関連した設定が いくつか用意されています: :guilabel:`強制的にプッシュ/プルする` 無関係なリポジトリまたは複数のヘッドがあるなどの警告を無視して実行します :guilabel:`対象リビジョン` すべてのリビジョンを送らないようにします :guilabel:`リモートコマンド` -e オプションを使います :guilabel:`パッチの表示` チェンジセット送受信時の差分を表示します :guilabel:`最新のものを最初に表示` チェンジセットを逆順に表示します :guilabel:`マージリビジョン以外を表示` 結果表示からマージリビジョンを除外します (プッシュ・プル操作に影響はありません) プルした後 ---------- チェンジセットがローカルのリポジトリにプルされた後、ダイアログの下部にボタンが表示されます: :guilabel:`tip リビジョンに更新` 作業ディレクトリを現在のブランチの tip リビジョンに更新します ボタンは使用可能なときにのみ表示されます。 メール送信 ---------- .. figure:: figures//email.png :alt: メールダイアログ メールダイアログ メールダイアログは2つの TortoiseHg ツールから起動できます。 1) チェンジログビューア: 単一または複数リビジョンをメールで送信したい場合。 2) 同期ツール: 指定したリポジトリに送信可能なすべてのチェンジセットをメールで送信したい場合 (メールダイアログを起動する前に :guilabel:`送信` ボタンでどのチェンジセットが送信対象に なるのかを確認するのはよい習慣です)。 :guilabel:`送信` ボタンはそのままで、 :guilabel:`設定` ボタンを押すと TortoiseHg の設定ダイアログにある :guilabel:`メール送信` ページを開きます。そこでは SMTP 設定や :guilabel:`To:` アドレスと :guilabel:`From:` アドレスのデフォルトを指定することができます。 :guilabel:`In-Reply-To:` は送信するパッチがメーリングリストで確実にスレッド として認識されるために使われます。 プレーンパッチ、Mercurial パッチ、GIT パッチ、バンドルの違いについては Mercurial のマニュアルを参照してください。 コマンドラインからの実行 ------------------------ 同期ツールはコマンドラインから起動することもできます: :: hgtk synch aliases: pull, push, incoming, outgoing, email repository synchronization tool use "hgtk -v help synch" to show global options コマンド構文は共通オプションを除けばオプションや引数を必要としないため シンプルになっています。 :command:`push` 、 :command:`outgoing` 、 :command:`email` のエイリアスで同期ツールを起動した場合、自動的に *default-push* URL が選択されます。 それ以外のエイリアスの場合は *default* URL が選択されます。 選択された URL が見つからない場合は最初に見つかったパスが使用されます。 .. vim: noet ts=4 ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1737033608.007414 tortoisehg-6.9/hgext3rd/0000755000000000000000000000000014742203610014044 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/hgext3rd/__init__.py0000644000000000000000000000023114672254332016162 0ustar00rootroot# name space package to host third party extensions from __future__ import annotations import pkgutil __path__ = pkgutil.extend_path(__path__, __name__) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/hgext3rd/thg.py0000644000000000000000000001172414672254332015216 0ustar00rootroot# thg - mercurial extension for TortoiseHg repository browser # # Copyright (C) 2014 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. """browse the repository in a graphical way using tortoisehg The 'tortoisehg' extension introduces a :hg:`view` command to spawn a light version of the tortoisehg workbench. """ from __future__ import annotations import os import sys from mercurial import ( pycompat, registrar, ui as uimod, util, ) from mercurial.utils import ( procutil, ) from tortoisehg.util.i18n import agettext as _ testedwith = b'4.3' cmdtable = {} command = registrar.command(cmdtable) if hasattr(sys, "frozen"): if sys.frozen == 'windows_exe': # sys.stdin is invalid, should be None. Fixes svn, git subrepos sys.stdin = None if 'THGDEBUG' in os.environ: import win32traceutil print('starting') # os.Popen() needs this, and Mercurial still uses os.Popen if 'COMSPEC' not in os.environ: comspec = os.path.join(os.environ.get('SystemRoot', r'C:\Windows'), 'system32', 'cmd.exe') os.environ['COMSPEC'] = comspec else: thgpath = os.path.dirname(os.path.realpath(__file__)) thgpath = os.path.dirname(thgpath) testpath = os.path.join(thgpath, 'tortoisehg') if os.path.isdir(testpath) and thgpath not in sys.path: sys.path.insert(0, thgpath) if 'HGPATH' in os.environ: hgpath = os.environ['HGPATH'] testpath = os.path.join(hgpath, 'mercurial') if os.path.isdir(testpath) and hgpath not in sys.path: sys.path.insert(0, hgpath) # Make sure to load threading by main thread; otherwise, _MainThread instance # may have wrong thread id and results KeyError at exit. import threading from mercurial import demandimport demandimport.IGNORES.update([ 'win32com.shell', 'numpy', # comtypes.npsupport does try-import 'tortoisehg.util.config', 'tortoisehg.hgqt.icons_rc', 'tortoisehg.hgqt.translations_rc', # don't create troublesome demandmods for bunch of Q* attributes 'tortoisehg.hgqt.qsci', 'tortoisehg.hgqt.qtcore', 'tortoisehg.hgqt.qtgui', 'tortoisehg.hgqt.qtnetwork', # TODO: fix name resolution in demandimporter and remove these 'qsci', 'qtcore', 'qtgui', 'qtnetwork', # pygments seems to have trouble on loading plugins (see #4271, #4298) 'pkgutil', 'pkg_resources', ]) demandimport.enable() # Verify we can reach TortoiseHg sources first try: import tortoisehg.hgqt.run except ImportError as e: sys.stderr.write(str(e)+'\n') sys.stderr.write("abort: couldn't find tortoisehg libraries in [%s]\n" % os.pathsep.join(sys.path)) sys.stderr.write("(check your install and PYTHONPATH)\n") sys.exit(-1) def enforceversion(): """Verify we have an acceptable version of Mercurial Display an error dialog in the contrary. """ from tortoisehg.util.hgversion import hgversion, checkhgversion errmsg = checkhgversion(hgversion) if errmsg: from tortoisehg.hgqt.bugreport import run from tortoisehg.hgqt.run import qtrun opts = { 'cmd': b' '.join(pycompat.sysargv), 'error': b'\n' + errmsg + b'\n', 'nofork': True, } qtrun(run, uimod.ui(), **opts) sys.exit(1) @command(b'view', [], _("hg view"), inferrepo=True) def cmdview(ui, repo, *pats, **opts): """start light interactive history viewer from tortoisehg""" enforceversion() origstderr = sys.stderr # TODO: Figure out if this hack for py2exe is still needed, and possibly # wrap this to handle unicode on py3 if not pycompat.ispy3: mystderr = util.bytesio() sys.stderr = mystderr sys.__stdout__ = sys.stdout sys.__stderr__ = sys.stderr procutil.stderr = sys.stderr ret = 0 try: from tortoisehg.hgqt.run import qtrun from tortoisehg.hgqt.run import debuglighthg as startfunc opts['repository'] = repo.root qtrun(startfunc, ui, *pats, **opts) if not pycompat.ispy3: sys.stderr = origstderr stderrout = mystderr.getvalue() else: stderrout = '' # TODO: handle stderr stream on py3 errors = ('Traceback', 'TypeError', 'NameError', 'AttributeError', 'NotImplementedError') for l in stderrout.splitlines(): if l.startswith(errors): from tortoisehg.hgqt.bugreport import run opts = {'cmd': ' '.join(sys.argv), 'error': 'Recoverable error (stderr):\n' + stderrout, 'nofork': True} qtrun(run, uimod.ui(), **opts) break sys.exit(ret) except SystemExit: raise except: procutil.stderr = sys.__stderr__ = sys.stderr = origstderr raise ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.0114143 tortoisehg-6.9/i18n/0000755000000000000000000000000014742203610013073 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1649124153.0 tortoisehg-6.9/i18n/__init__.py0000644000000000000000000000000014222721471015175 0ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/i18n/msgfmt.py0000644000000000000000000002045214672254332014756 0ustar00rootroot#! /usr/bin/env python # -*- coding: iso-8859-1 -*- # Written by Martin v. Loewis # # Changed by Christian 'Tiran' Heimes for the placeless # translation service (PTS) of Zope # # Fixed some bugs and updated to support msgctxt # by Hanno Schlichting """Generate binary message catalog from textual translation description. This program converts a textual Uniforum-style message catalog (.po file) into a binary GNU catalog (.mo file). This is essentially the same function as the GNU msgfmt program, however, it is a simpler implementation. This file was taken from Python-2.3.2/Tools/i18n and altered in several ways. Now you can simply use it from another python module: from msgfmt import Msgfmt mo = Msgfmt(po).get() where po is path to a po file as string, an opened po file ready for reading or a list of strings (readlines of a po file) and mo is the compiled mo file as binary string. Exceptions: * IOError if the file couldn't be read * msgfmt.PoSyntaxError if the po file has syntax errors """ from __future__ import annotations import struct import array from mercurial import ( pycompat, util, ) __version__ = "1.1-pythongettext" class PoSyntaxError(Exception): """ Syntax error in a po file """ def __init__(self, msg): self.msg = msg def __str__(self): return 'Po file syntax error: %s' % self.msg class Msgfmt: """ """ def __init__(self, po, name='unknown'): self.po = po self.name = name self.messages = {} self.openfile = False def readPoData(self): """ read po data from self.po and return an iterator """ output = [] if isinstance(self.po, str): # self.read() expects an iterable of "str" lines output = open(self.po, 'r', encoding='utf-8') elif isinstance(self.po, file): self.po.seek(0) self.openfile = True output = self.po elif isinstance(self.po, list): output = self.po if not output: raise ValueError("self.po is invalid! %s" % type(self.po)) return output def add(self, context, id, str, fuzzy): "Add a non-empty and non-fuzzy translation to the dictionary." if str and not fuzzy: # The context is put before the id and separated by a EOT char. if context: id = context + '\x04' + id self.messages[id] = str def generate(self): "Return the generated output." # the keys are sorted in the .mo file keys = sorted(self.messages.keys()) offsets = [] ids = strs = b'' for id in keys: id_bytes = pycompat.sysbytes(id) message_bytes = pycompat.sysbytes(self.messages[id]) # For each string, we need size and file offset. Each string is # NUL terminated; the NUL does not count into the size. offsets.append((len(ids), len(id_bytes), len(strs), len(message_bytes))) ids += id_bytes + b'\0' strs += message_bytes + b'\0' output = b'' # The header is 7 32-bit unsigned integers. We don't use hash tables, # so the keys start right after the index tables. keystart = 7*4+16*len(keys) # and the values start after the keys valuestart = keystart + len(ids) koffsets = [] voffsets = [] # The string table first has the list of keys, then the list of values. # Each entry has first the size of the string, then the file offset. for o1, l1, o2, l2 in offsets: koffsets += [l1, o1+keystart] voffsets += [l2, o2+valuestart] offsets = koffsets + voffsets # Even though we don't use a hashtable, we still set its offset to be # binary compatible with the gnu gettext format produced by: # msgfmt file.po --no-hash output = struct.pack("Iiiiiii", 0x950412de, # Magic 0, # Version len(keys), # # of entries 7*4, # start of key index 7*4+len(keys)*8, # start of value index 0, keystart) # size and offset of hash table output += array.array("i", offsets).tobytes() output += ids output += strs return output def get(self): """ """ self.read() # Compute output return self.generate() def read(self, header_only=False): """ """ ID = 1 STR = 2 CTXT = 3 section = None fuzzy = 0 msgid = msgstr = msgctxt = '' # Parse the catalog lno = 0 for l in self.readPoData(): lno += 1 # If we get a comment line after a msgstr or a line starting with # msgid or msgctxt, this is a new entry if section == STR and (l[0] == '#' or (l[0] == 'm' and (l.startswith('msgctxt') or l.startswith('msgid')))): self.add(msgctxt, msgid, msgstr, fuzzy) section = None msgctxt = '' fuzzy = 0 # If we only want the header we stop after the first message if header_only: break # Record a fuzzy mark if l[:2] == '#,' and 'fuzzy' in l: fuzzy = 1 # Skip comments if l[0] == '#': continue # Now we are in a msgctxt section elif l[0] == 'm': if l.startswith('msgctxt'): section = CTXT l = l[7:] msgctxt = '' # Now we are in a msgid section, output previous section elif l.startswith('msgid') and not l.startswith('msgid_plural'): if section == STR: self.add(msgid, msgstr, fuzzy) section = ID l = l[5:] msgid = msgstr = '' is_plural = False # This is a message with plural forms elif l.startswith('msgid_plural'): if section != ID: print('msgid_plural not preceeded by msgid on %s:%d' % (infile, lno), file=sys.stderr) sys.exit(1) l = l[12:] msgid += '\0' # separator of singular and plural is_plural = True # Now we are in a msgstr section elif l.startswith('msgstr'): section = STR if l.startswith('msgstr['): if not is_plural: print('plural without msgid_plural on %s:%d' % (infile, lno), file=sys.stderr) sys.exit(1) l = l.split(']', 1)[1] if msgstr: msgstr += '\0' # Separator of the various plural forms else: if is_plural: print('indexed msgstr required for plural on %s:%d' % (infile, lno), file=sys.stderr) sys.exit(1) l = l[6:] # Skip empty lines l = l.strip() if not l: continue # XXX: Does this always follow Python escape semantics? try: l = eval(l) except Exception as msg: raise PoSyntaxError('%s (line %d of po file %s): \n%s' % (msg, lno, self.name, l)) if section == CTXT: msgctxt += l elif section == ID: msgid += l elif section == STR: msgstr += l else: raise PoSyntaxError('error in line %d of po file %s' % (lno, self.name)) # Add last entry if section == STR: self.add(msgctxt, msgid, msgstr, fuzzy) if self.openfile: self.po.close() def getAsFile(self): return util.bytesio(self.get()) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.0394142 tortoisehg-6.9/i18n/tortoisehg/0000755000000000000000000000000014742203610015262 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/ar.po0000644000000000000000000043352514440352353016244 0ustar00rootroot# Arabic translation for tortoisehg # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the tortoisehg package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2011-10-25 07:12+0000\n" "Last-Translator: Fadi Mansour \n" "Language-Team: Arabic \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= " "3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n" "X-Launchpad-Export-Date: 2019-07-17 05:41+0000\n" "X-Generator: Launchpad (build 19009)\n" msgid "TortoiseHg Overlay Icon Server" msgstr "مخدم أيقونات الدلالة لتورتويز إتش جي" msgid "Exit" msgstr "إنهاء" msgid "About" msgstr "حول البرنامج" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "" msgid "You can visit our site here" msgstr "يمكنك زيارة موقعنا من هنا" msgid "&License" msgstr "&رخصة" #, python-format msgid "version %s" msgstr "النسخة %s" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "باستخدام Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "" msgid "License" msgstr "" msgid "= Working Directory Parent =" msgstr "=أب مجلد العمل=" msgid "Directory of files" msgstr "قائمة الملفات" msgid "Tar archives" msgstr "" msgid "Uncompressed tar archive" msgstr "أرشيف tar غير مضغوط" msgid "Bzip2 tar archives" msgstr "" msgid "Tar archive compressed using bzip2" msgstr "أرشيف tar مضغوط بـbzip2" msgid "Gzip tar archives" msgstr "" msgid "Tar archive compressed using gzip" msgstr "أرشيف tar مضغوط بـgzip" msgid "Zip archives" msgstr "" msgid "Uncompressed zip archive" msgstr "أرشيف zip غير مضفوط" msgid "Zip archive compressed using deflate" msgstr "أرشيف zip مضفوط بـdeflate" msgid "Revision:" msgstr "المراجعة:" msgid "All files in this revision" msgstr "" msgid "Only files modified/created in this revision" msgstr "فقط الملفات المعدلة/المنشأة في هذه المراجعة" msgid "Only files modified/created since:" msgstr "" msgid "Archive Content:" msgstr "" msgid "Recurse into subrepositories" msgstr "النزول للمجلدات الفرعية" msgid "Browse..." msgstr "تصفّح..." msgid "Destination path:" msgstr "مسار الهدف:" msgid "Archive types:" msgstr "أنواع الأرشيفات:" msgid "Hg command:" msgstr "أمر hg:" msgid "Select Destination Folder" msgstr "" msgid "Select Destination File" msgstr "" msgid "All files (*)" msgstr "" msgid "Duplicate Name" msgstr "" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "" msgid "Confirm Overwrite" msgstr "" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "" #, python-format msgid "Archive - %s" msgstr "" msgid "&Archive" msgstr "" msgid "Backout requires a parent revision" msgstr "" msgid "Cannot backout change on a different branch" msgstr "" #, python-format msgid "Backout - %s" msgstr "" msgid "Prepare to backout" msgstr "" msgid "Verify backout revision and ensure your working directory is clean." msgstr "" msgid "Backing out a parent revision is a single step operation" msgstr "" msgid "Backout revision" msgstr "" msgid "Not a head, backout will create a new head!" msgstr "" msgid "Current local revision" msgstr "" msgid "Working directory status" msgstr "" msgid "Checking..." msgstr "" msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Automatically resolve merge conflicts where possible" msgstr "" msgid "Uncommitted local changes are detected" msgstr "" msgid "Clean" msgstr "" msgid "Backing out, then merging..." msgstr "" msgid "All conflicting files will be marked unresolved." msgstr "" msgid "Automatically advance to next page when backout and merge are complete." msgstr "" #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" msgid "No merge conflicts, ready to commit" msgstr "" msgid "Commit backout and merge results" msgstr "" msgid "Parents" msgstr "" msgid "Working Directory" msgstr "" msgid "Working Directory (merged)" msgstr "" msgid "Commit message" msgstr "" msgid "Skip final confirmation page, close after commit." msgstr "" msgid "Backed out changeset: " msgstr "" msgid "Confirm Discard Message" msgstr "" msgid "Discard current backout message?" msgstr "" msgid "Use English backout message" msgstr "" msgid "Backing out and committing..." msgstr "" msgid "Please wait while making backout." msgstr "" msgid "Committing..." msgstr "" msgid "Please wait while committing merged files." msgstr "" msgid "Finished" msgstr "" msgid "Backout changeset" msgstr "" #, python-format msgid "Bisect - %s" msgstr "" msgid "Accept" msgstr "" msgid "Known good revision:" msgstr "" msgid "Known bad revision:" msgstr "" msgid "Discard local changes (revert --all)" msgstr "" msgid "Revision is &Good" msgstr "" msgid "Revision is &Bad" msgstr "" msgid "&Skip this Revision" msgstr "" msgid "Close" msgstr "" msgid "Error encountered." msgstr "" msgid "Culprit found." msgstr "" msgid "Revision" msgstr "" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "" #, python-format msgid "%s (hint: %s)" msgstr "" msgid "Bookmark:" msgstr "" msgid "New Name:" msgstr "" msgid "Activate:" msgstr "" msgid "&Add" msgstr "" msgid "Re&name" msgstr "" msgid "&Remove" msgstr "" msgid "&Move" msgstr "" #, python-format msgid "Bookmark - %s" msgstr "" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "" #, python-format msgid "Bookmark '%s' has been added" msgstr "" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "" #, python-format msgid "Bookmark '%s' has been moved" msgstr "" #, python-format msgid "Bookmark '%s' does not exist" msgstr "" #, python-format msgid "Bookmark '%s' has been removed" msgstr "" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "" msgid "TortoiseHg Bookmark Sync" msgstr "" msgid "Outgoing Bookmarks" msgstr "" msgid "&Push Bookmark" msgstr "" msgid "&Remove Bookmark" msgstr "" msgid "Incoming Bookmarks" msgstr "" msgid "P&ull Bookmark" msgstr "" msgid "R&emove Bookmark" msgstr "" #, python-format msgid "Pushed local bookmark: %s" msgstr "" #, python-format msgid "Pulled remote bookmark: %s" msgstr "" #, python-format msgid "Removed remote bookmark: %s" msgstr "" #, python-format msgid "Removed local bookmark: %s" msgstr "" #, python-format msgid "%s - branch operation" msgstr "" msgid "Select branch of merge commit" msgstr "" msgid "Changes take effect on next commit" msgstr "" msgid "No branch changes" msgstr "" msgid "Open a new named branch" msgstr "" msgid "Close current branch" msgstr "" #, python-format msgid "Please report this bug to our bug tracker" msgstr "" msgid "Checking for updates..." msgstr "" msgid "Copy" msgstr "" msgid "Quit" msgstr "" msgid "TortoiseHg Bug Report" msgstr "" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "" msgid "Your TortoiseHg is up to date." msgstr "" msgid "Save error report to" msgstr "" msgid "Text files (*.txt)" msgstr "" msgid "Error writing file" msgstr "" msgid "TortoiseHg Error" msgstr "" msgid "" "If you still have trouble, please file a bug report." msgstr "" msgid "Visual Diff" msgstr "" msgid "View file changes in external diff tool" msgstr "" msgid "Edit Local" msgstr "" msgid "Edit current file in working copy" msgstr "" msgid "Revert to Revision" msgstr "" msgid "Revert file(s) to contents at this revision" msgstr "" msgid "Patch failed to apply" msgstr "" msgid "Manually resolve rejected chunks?" msgstr "" msgid "Edit patched file and rejects?" msgstr "" msgid "No deletable chunks" msgstr "" msgid "Completely remove file from patch?" msgstr "" msgid "Revert all file changes?" msgstr "" msgid "No chunks remain" msgstr "" msgid "file has been deleted, refresh" msgstr "" msgid "file has been modified, refresh" msgstr "" msgid "Unable to merge chunks" msgstr "" msgid "Add or remove patches must be merged in the working directory" msgstr "" msgid "Unable to remove" msgstr "" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" msgctxt "files" msgid "All" msgstr "" msgctxt "files" msgid "None" msgstr "" msgid "Toggle display of text search bar" msgstr "" msgid "Diff Toolbar" msgstr "" #, python-format msgid "Chunks selected: %d / %d" msgstr "" msgid "Please wait while the file is opened ..." msgstr "" msgid "Source:" msgstr "" msgid "Destination:" msgstr "" msgid "Options" msgstr "" msgid "Clone to revision:" msgstr "" msgid "A revision identifier, bookmark, tag or branch name" msgstr "" msgid "Do not update the new working directory" msgstr "" msgid "Use pull protocol to copy metadata" msgstr "" msgid "Clone with minimal processing" msgstr "" msgid "Include patch queue" msgstr "" msgid "Use proxy server" msgstr "" msgid "Do not verify host certificate" msgstr "" msgid "Remote command:" msgstr "" msgid "Use largefiles" msgstr "" msgid "Start revision:" msgstr "" msgid "Select source repository" msgstr "" msgid "Select destination repository" msgstr "" msgid "Select patch folder" msgstr "" #, python-format msgid "Clone - %s" msgstr "" msgid "&Clone" msgstr "" msgid "failed to start command\n" msgstr "" msgid "error while running command\n" msgstr "" #, python-format msgid "process exited unexpectedly with code %d" msgstr "" #, python-format msgid "failed to encode command: %s" msgstr "" #, python-format msgid "timed out while reading: %r..." msgstr "" msgid "timed out waiting for message" msgstr "" #, python-format msgid "unexpected response on required channel %r" msgstr "" #, python-format msgid "invalid \"hello\" message: %r" msgstr "" msgid "no \"runcommand\" capability" msgstr "" #, python-format msgid "corrupted command result: %r" msgstr "" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "" msgid "Terminated by user" msgstr "" #, python-format msgid "[command terminated by user %s]" msgstr "" #, python-format msgid "[command interrupted %s]" msgstr "" #, python-format msgid "[command returned code %d %%s]" msgstr "" #, python-format msgid "[command completed successfully %s]" msgstr "" msgid "Running..." msgstr "" msgid "Failed!" msgstr "" msgid "Clea&r Log" msgstr "" msgid "TortoiseHg Prompt" msgstr "" msgid "Show Detail" msgstr "" msgid "Hide Detail" msgstr "" msgid "Confirm Exit" msgstr "" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" msgid "&Run" msgstr "" msgid "TortoiseHg Command Dialog" msgstr "" msgid "Command Error" msgstr "" #, python-format msgid "[Code: %d]" msgstr "" msgid "Merge" msgstr "" #, python-format msgid "Merge with %s" msgstr "" msgid "Patch Name Required" msgstr "" msgid "You must enter a patch name" msgstr "" msgctxt "start progress" msgid "Commit" msgstr "" msgctxt "start progress" msgid "MQ Action" msgstr "" msgctxt "start progress" msgid "Rollback" msgstr "" msgid "Commit Dialog Toolbar" msgstr "" msgid "Branch: " msgstr "" msgid "Copy message" msgstr "" msgid "Copy one of the recent commit messages" msgstr "" msgid "Show Issues" msgstr "" msgid "Please wait..." msgstr "" #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "" msgid "Issue Tracker" msgstr "" msgid "Show Issues..." msgstr "" msgid "Stop" msgstr "" msgid "### patch name ###" msgstr "" msgid "Commit changes" msgstr "" msgid "Commit" msgstr "" msgid "Amend current revision" msgstr "" msgid "Amend" msgstr "" msgid "Create a new patch" msgstr "" msgid "QNew" msgstr "" msgid "Refresh current patch" msgstr "" msgid "QRefresh" msgstr "" msgid "Confirm Branch Change" msgstr "" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "" msgid "Restart &Branch" msgstr "" msgid "&Commit to current branch" msgstr "" msgid "Cancel" msgstr "" msgid "Confirm New Branch" msgstr "" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "" msgid "Create &Branch" msgstr "" msgid "Close Branch: " msgstr "" msgid "New Branch: " msgstr "" #, python-format msgid "Selected Options: %s" msgstr "" msgid "Parent:" msgstr "" msgid "Patch name:" msgstr "" #, python-format msgid "Close %s branch" msgstr "" #, python-format msgid "Rollback commit to revision %d" msgstr "" msgid "Confirm Undo" msgstr "" msgid "Discard current commit message?" msgstr "" msgid "Message Translation Failure" msgstr "" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" msgid "&Replace" msgstr "" msgid "Nothing Committed" msgstr "" msgid "Please enter commit message" msgstr "" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" msgid "No files checked" msgstr "" msgid "No modified files checkmarked for commit" msgstr "" msgid "Confirm Add" msgstr "" msgid "Add selected untracked files?" msgstr "" msgid "Confirm Remove" msgstr "" msgid "Remove selected deleted files?" msgstr "" msgid "Nothing changed." msgstr "" msgctxt "window title" msgid "Commit" msgstr "" #, python-format msgid "%s - commit options" msgstr "" msgid "Set username:" msgstr "" msgid "Save in Repo" msgstr "" msgid "Save Global" msgstr "" msgid "Set Date:" msgstr "" msgid "Update" msgstr "" msgid "Push After Commit:" msgstr "" msgid "Auto Includes:" msgstr "" msgid "Recurse into subrepositories (--subrepos)" msgstr "" msgid "Unable to save username" msgstr "" msgid "Iniparse must be installed." msgstr "" msgid "Unable to write configuration file" msgstr "" msgid "Unable to save after commit push" msgstr "" msgid "Unable to save auto include list" msgstr "" msgid "Unable to save recurse in subrepos." msgstr "" msgid "Invalid date format" msgstr "" msgid "No username configured" msgstr "" #, python-format msgid "%s - commit" msgstr "" msgid "TortoiseHg Commit" msgstr "" msgid "Are you sure that you want to cancel the commit operation?" msgstr "" msgid "Compress changesets up to and including" msgstr "" msgid "Onto destination" msgstr "" msgid "Compress" msgstr "" #, python-format msgid "Compress - %s" msgstr "" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the compress" msgstr "" msgid "Changes have been moved, you must now commit" msgstr "" msgctxt "action button" msgid "Commit" msgstr "" msgid "Compress is complete, old history untouched" msgstr "" msgid "must be specified repository" msgstr "" msgid "must be specified 'type' in style" msgstr "" msgid "Git Commit:" msgstr "" msgid "Summary:" msgstr "" msgid "User:" msgstr "" msgid "Date:" msgstr "" msgid "Age:" msgstr "" msgid "Branch:" msgstr "" msgid "Close:" msgstr "" msgid "Tags:" msgstr "" msgid "Graft:" msgstr "" msgid "Transplant:" msgstr "" msgid "Obsolete state:" msgstr "" msgid "Perforce:" msgstr "" msgid "Subversion:" msgstr "" msgid "Converted From:" msgstr "" msgid "Original Parent:" msgstr "" msgid "No items to display" msgstr "" msgid "Use compact view" msgstr "" msgid "Patch:" msgstr "" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "" msgid "Select a GUI location to edit:" msgstr "" msgid "Select the toolbar or menu to change" msgstr "" msgid "Tools shown on selected location" msgstr "" msgid "Delete from list" msgstr "" msgid "Add to list" msgstr "" msgid "Add separator" msgstr "" msgid "List of all tools" msgstr "" msgid "New Tool ..." msgstr "" msgid "Edit Tool ..." msgstr "" msgid "Delete Tool" msgstr "" msgid "Type" msgstr "" msgid "Name" msgstr "" msgid "Command" msgstr "" msgid "New hook" msgstr "" msgid "Edit hook" msgstr "" msgid "Delete hook" msgstr "" msgid "Replace existing hook?" msgstr "" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" msgid "OK" msgstr "" msgid "Missing information" msgstr "" msgid "All items" msgstr "" msgid "Working directory" msgstr "" msgid "All revisions" msgstr "" msgid "All contexts" msgstr "" msgid "Fixed revisions" msgstr "" msgid "Applied patches" msgstr "" msgid "Applied patches or qparent" msgstr "" msgid "" msgstr "" msgid "Configure Custom Tool" msgstr "" msgid "Tool name" msgstr "" msgid "The tool name. It cannot contain spaces." msgstr "" #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" msgid "Tool label" msgstr "" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" msgid "Tooltip" msgstr "" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" msgid "Icon" msgstr "" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" msgid "On repowidget, show for" msgstr "" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" msgid "Show Output Log" msgstr "" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" msgid "You must set a tool name." msgstr "" msgid "The tool name cannot have any spaces in it." msgstr "" msgid "You must set a command to run." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" msgid "Configure Hook" msgstr "" msgid "Hook type" msgstr "" msgid "Select when your command will be run" msgstr "" msgid "The hook name. It cannot contain spaces." msgstr "" msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" msgid "You must set a valid hook type." msgstr "" msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "" msgid "Console" msgstr "" msgid "File &History / Annotate" msgstr "" msgid "Show the history of the selected file" msgstr "" msgid "Co&mpare File Revisions" msgstr "" msgid "Compare revisions of the selected file" msgstr "" msgid "Filter Histor&y" msgstr "" msgid "Query about changesets affecting the selected files" msgstr "" msgid "Diff &Changeset to Parent" msgstr "" msgid "Diff Changeset to Loc&al" msgstr "" msgid "&Diff to Parent" msgstr "" msgid "Diff to &Local" msgstr "" msgid "View changes to current in external diff tool" msgstr "" msgid "&View at Revision" msgstr "" msgid "View file as it appeared at this revision" msgstr "" msgid "&Save at Revision..." msgstr "" msgid "Save file as it appeared at this revision" msgstr "" msgid "Save file to" msgstr "" msgid "&Edit Local" msgstr "" msgid "&Open Local" msgstr "" msgid "E&xplore Local" msgstr "" msgid "Open parent folder of current file in the system file manager" msgstr "" msgid "&Copy Patch" msgstr "" msgid "Copy &Path" msgstr "" msgid "Copy full path of file(s) to the clipboard" msgstr "" msgid "&Revert to Revision..." msgstr "" msgid "Open S&ubrepository" msgstr "" msgid "Open the selected subrepository" msgstr "" msgid "E&xplore Folder" msgstr "" msgid "Open the selected folder in the system file manager" msgstr "" msgid "Open &Terminal" msgstr "" msgid "Open a shell terminal in the selected folder" msgstr "" msgid "Custom Tools" msgstr "" msgid "Diff &Local" msgstr "" msgid "&View Missing" msgstr "" msgid "View O&ther" msgstr "" msgid "Add &Largefiles..." msgstr "" msgid "&Forget" msgstr "" msgid "&Delete Unversioned..." msgstr "" msgid "Confirm Delete Unversioned" msgstr "" msgid "Delete the following unversioned files?" msgstr "" msgid "&Delete" msgstr "" msgid "Re&move Versioned" msgstr "" msgid "&Revert..." msgstr "" msgid "Uncommited merge - please select a parent revision" msgstr "" msgid "Revert files to local or other parent?" msgstr "" msgid "&Local" msgstr "" msgid "&Other" msgstr "" msgid "Confirm Revert" msgstr "" msgid "Revert local file changes?" msgstr "" msgid "&Revert with backup" msgstr "" msgid "&Discard changes" msgstr "" msgid "Revert the following files?" msgstr "" msgid "&Revert" msgstr "" msgid "&Copy..." msgstr "" msgid "Re&name..." msgstr "" msgid "&Ignore..." msgstr "" msgid "Edit Re&jects" msgstr "" msgid "Manually resolve rejected patch chunks" msgstr "" msgid "De&tect Renames..." msgstr "" msgid "&Mark Resolved" msgstr "" msgid "&Mark Unresolved" msgstr "" msgid "Restart Mer&ge" msgstr "" msgid "Was renamed from" msgstr "" msgid "Restart Merge &with" msgstr "" msgid "Display the file anyway" msgstr "" msgid "Diff not displayed: " msgstr "" #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid "File is binary" msgstr "" msgid "File may be binary (maximum line length exceeded)" msgstr "" msgid "File or diffs not displayed: " msgstr "" msgid " (was added)" msgstr "" #, python-format msgid " (copied from %s)" msgstr "" #, python-format msgid " (renamed from %s)" msgstr "" msgid " (is a symlink)" msgstr "" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid " (was deleted)" msgstr "" msgid " (was added, now missing)" msgstr "" msgid " (is unversioned)" msgstr "" msgid "exec mode has been set" msgstr "" msgid "exec mode has been unset" msgstr "" #, python-format msgid "changeset: %s" msgstr "" msgid "Initial revision" msgstr "" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" msgid "Subrepo created and set to initial revision." msgstr "" msgid "Subrepo initialized to revision:" msgstr "" msgid "Subrepo removed from repository." msgstr "" msgid "Previously the subrepository was at the following revision:" msgstr "" msgid "Subrepo was not changed." msgstr "" msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "" msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "" msgid "Subrepo state is:" msgstr "" msgid "Revision has changed to:" msgstr "" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "" msgid "From:" msgstr "" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" msgid "Subrepository not found in the working directory." msgstr "" msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" msgid "Not a Mercurial subrepo, not previewable" msgstr "" #, python-format msgid "Error previewing subrepo: %s" msgstr "" msgid "Subrepo may be damaged or inaccessible." msgstr "" msgid "The subrepository is dirty." msgstr "" msgid "File Status:" msgstr "" msgid "(is a changed sub-repository)" msgstr "" msgid "(is an unchanged sub-repository)" msgstr "" msgid "(is a dirty sub-repository)" msgstr "" msgid "(is a new sub-repository)" msgstr "" msgid "(is a removed sub-repository)" msgstr "" msgid "(is a changed and dirty sub-repository)" msgstr "" msgid "(is a new and dirty sub-repository)" msgstr "" msgid "open..." msgstr "" #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "" msgid "File History Log Columns" msgstr "" msgid "Back" msgstr "" msgid "Forward" msgstr "" msgid "Diff Selected &Changesets" msgstr "" msgid "&Diff Selected File Revisions" msgstr "" msgid "Show Revision &Details" msgstr "" msgid "Too many rows selected for menu" msgstr "" msgid "File Differences Log Columns" msgstr "" msgid "Next diff" msgstr "" msgid "Previous diff" msgstr "" msgid "Unicode" msgstr "" msgid "Western Europe" msgstr "" msgid "Unified Chinese" msgstr "" msgid "Traditional Chinese" msgstr "" msgid "Korean" msgstr "" msgid "Japanese" msgstr "" msgid "Thai" msgstr "" msgid "Central and Eastern Europe" msgstr "" msgid "Cyrillic" msgstr "" msgid "Russian" msgstr "" msgid "Ukrainian" msgstr "" msgid "Greek" msgstr "" msgid "Turkish" msgstr "" msgid "Arabic" msgstr "" msgid "Hebrew" msgstr "" msgid "Vietnamese" msgstr "" msgid "Baltic" msgstr "" msgid "Southern Europe" msgstr "" msgid "Nordic" msgstr "" msgid "Celtic" msgstr "" msgid "South-Eastern Europe" msgstr "" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "" msgid "View change as unified diff output" msgstr "" msgid "View change in context of file" msgstr "" msgid "Annotate with revision numbers" msgstr "" msgid "Next Diff" msgstr "" msgid "Previous Diff" msgstr "" msgid "Open shelve tool" msgstr "" msgid "&Auto Detect" msgstr "" msgid "Show changes from first parent" msgstr "" msgid "Show changes from second parent" msgstr "" msgid "E&ncoding" msgstr "" msgid "&Search in Current File" msgstr "" msgid "Search in All &History" msgstr "" msgid "Go to Line" msgstr "" #, python-format msgid "Enter line number (1 - %d)" msgstr "" msgid "Show &Author" msgstr "" msgid "Show &Date" msgstr "" msgid "Show &Revision" msgstr "" msgid "Annotate Op&tions" msgstr "" msgid "Search Selected Text" msgstr "" msgid "In Current &File" msgstr "" msgid "In &Current Revision" msgstr "" msgid "In &Original Revision" msgstr "" msgid "In All &History" msgstr "" msgid "Go to" msgstr "" msgid "View File at" msgstr "" msgid "Diff File to" msgstr "" msgid "&Originating Revision" msgstr "" msgid "&Parent Revision" msgstr "" #, python-format msgid "&Parent Revision (%d)" msgstr "" msgid "&Mark Excluded Changes" msgstr "" msgid "(excluded from the next commit)" msgstr "" msgid "Interrupted graft operation found" msgstr "" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" msgid "Continue or abort interrupted graft operation?" msgstr "" msgid "To graft destination" msgstr "" msgid "Use my user name instead of graft committer user name" msgstr "" msgid "Use current date" msgstr "" msgid "Append graft info to log message" msgstr "" msgid "Graft" msgstr "" msgid "Abort" msgstr "" #, python-format msgid "Graft - %s" msgstr "" msgid "Graft changeset" msgstr "" #, python-format msgid "Graft changeset #%d of %d" msgstr "" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" msgid "You may continue or start the graft" msgstr "" msgid "Graft is complete" msgstr "" msgid "Graft failed" msgstr "" msgid "Graft aborted" msgstr "" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" msgid "You may continue the graft" msgstr "" msgid "Exiting with an unfinished graft is not recommended." msgstr "" msgid "Consider aborting the graft first." msgstr "" msgid "&Exit" msgstr "" msgid "### regular expression search pattern ###" msgstr "" msgid "Regexp:" msgstr "" msgid "Ignore case" msgstr "" msgid "Search" msgstr "" msgid "Working Copy" msgstr "" msgid "All History" msgstr "" msgid "Report only the first match per file" msgstr "" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "" msgid "Includes:" msgstr "" msgid "Excludes:" msgstr "" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" #, python-format msgid "\"%s\" removed from search history" msgstr "" #, python-format msgid "\"%s\" removed from path history" msgstr "" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "" #, python-format msgid "grep: %s\n" msgstr "" #, python-format msgid "%d matches found" msgstr "" msgid "No matches found" msgstr "" msgid "Searching" msgstr "" msgid "history" msgstr "" msgid "Interrupted" msgstr "" msgid "files" msgstr "" #, python-format msgid "Skipping %s, unable to read" msgstr "" msgid "Vi&ew File" msgstr "" msgid "&View Changeset" msgstr "" msgid "Annotate &File" msgstr "" msgid "File" msgstr "" msgid "Line" msgstr "" msgid "Rev" msgstr "" msgid "User" msgstr "" msgid "Match Text" msgstr "" msgid "TortoiseHg Search" msgstr "" #, python-format msgid "Detect Copies/Renames in %s" msgstr "" msgid "Unrevisioned Files" msgstr "" msgid "Refresh file list" msgstr "" #, python-format msgid "Min Similarity: %d%%" msgstr "" msgid "Only consider deleted files" msgstr "" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "" msgid "Find Renames" msgstr "" msgid "Find copy and/or rename sources" msgstr "" msgid "Candidate Matches" msgstr "" msgid "Accept All Matches" msgstr "" msgid "Accept Selected Matches" msgstr "" msgid "Differences from Source to Dest" msgstr "" msgid "Search already in progress" msgstr "" msgid "Cannot start a new search" msgstr "" msgid "No files to find" msgstr "" msgid "There are no files that may have been renamed" msgstr "" msgid "Multiple sources chosen" msgstr "" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" #. i18n: percent format #, python-format msgid "%d%%" msgstr "" msgid "Source" msgstr "" msgid "Dest" msgstr "" msgid "% Match" msgstr "" msgid "Sending Email" msgstr "" msgid "Email" msgstr "" msgid "To:" msgstr "" msgid "Cc:" msgstr "" msgid "In-Reply-To:" msgstr "" msgid "Message identifier to reply to, for threading" msgstr "" msgid "Flag:" msgstr "" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" msgid "Send changesets as Hg patches" msgstr "" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" msgid "Use extended (git) patch format" msgstr "" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" msgid "Plain, do not prepend Hg header" msgstr "" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" msgid "Send single binary bundle, not patches" msgstr "" msgid "send patches as part of the email body" msgstr "" msgid "body" msgstr "" msgid "send patches as attachments" msgstr "" msgid "attach" msgstr "" msgid "send patches as inline attachments" msgstr "" msgid "inline" msgstr "" msgid "add diffstat output to messages" msgstr "" msgid "diffstat" msgstr "" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" msgid "Write patch series (bundle) description" msgstr "" msgid "Subject:" msgstr "" msgid "Changesets" msgstr "" msgid "Select &All" msgstr "" msgid "Select &None" msgstr "" msgid "Edit" msgstr "" msgid "Preview" msgstr "" msgid "&Settings" msgstr "" msgid "Send &Email" msgstr "" msgid "&Close" msgstr "إ&غلاق" #, python-format msgid "Ignore filter - %s" msgstr "" msgid "Glob" msgstr "" msgid "Regexp" msgstr "" msgid "Add" msgstr "" msgid "Edit File" msgstr "" msgid "Ignore Filter" msgstr "" msgid "Untracked Files" msgstr "" msgid "Backspace or Del to remove row(s)" msgstr "" msgid "Add ignore filter..." msgstr "" msgid "selected files" msgstr "" msgid "Ignore " msgstr "" msgid "Invalid glob expression" msgstr "" msgid "Invalid regexp expression" msgstr "" msgid "Unable to read repository status" msgstr "" msgid "New file created" msgstr "" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" msgid "Unable to write .hgignore file" msgstr "" msgid "Copy working directory files from skeleton" msgstr "" msgid "Create special files (.hgignore, ...)" msgstr "" msgid "Make repo compatible with Mercurial <1.7" msgstr "" msgid "New Repository" msgstr "" msgid "&Create" msgstr "" msgid "Unable to create a config file" msgstr "" msgid "Insufficient access rights." msgstr "" msgid "Show Log" msgstr "" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" msgid "Add as &Largefiles" msgstr "" msgid "Add as &Normal Files" msgstr "" msgid "Invalid Patterns" msgstr "" msgid "Failed to process largefiles.patterns." msgstr "" msgid "Word docs (*.doc *.docx)" msgstr "" msgid "PDF docs (*.pdf)" msgstr "" msgid "Excel files (*.xls *.xlsx)" msgstr "" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "" msgid "Refresh lock information" msgstr "" msgid "Lock a file not described in .hglocks" msgstr "" msgid "Stop current operation" msgstr "" msgid "Locked And Lockable Files:" msgstr "" msgid "Path" msgstr "" msgid "Locking User" msgstr "" msgid "Purpose" msgstr "" msgid "Simplelock extension not enabled" msgstr "" msgid "Please enable and configure simplelock" msgstr "" msgid "Open a (nonmergable) file you wish to be locked" msgstr "" msgid "File was not within current repository" msgstr "" #, python-format msgid "Locking %s" msgstr "" #, python-format msgid "Unlocking %s" msgstr "" msgid "Refreshing locks..." msgstr "" #, python-format msgid "Lock of %s successful" msgstr "" #, python-format msgid "Lock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s successful" msgstr "" msgid "Ready, double click to lock or unlock" msgstr "" msgid "Ready" msgstr "" msgid "You can only release your own locks" msgstr "" msgid "Find revisions matching fields of:" msgstr "" msgid "Revision to Match:" msgstr "" msgid "Fields to match:" msgstr "" msgid "Summary (first description line)" msgstr "" msgid "Description" msgstr "" msgid "Author" msgstr "" msgid "Date" msgstr "" msgid "Files" msgstr "" msgid "Diff contents" msgstr "" msgid "Subrepo states" msgstr "" msgid "Branch" msgstr "" msgid "Phase" msgstr "" msgid "&Match" msgstr "" #, python-format msgid "Find matches - %s" msgstr "" msgid "Revisions to Match:" msgstr "" #, python-format msgid "Match any of %d revisions" msgstr "" msgid "Unknown revision!" msgstr "" msgid "Parse Error!" msgstr "" #, python-format msgid "Merge - %s" msgstr "" msgid "Do you want to exit?" msgstr "" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" msgid "Prepare to merge" msgstr "" msgid "Verify merge targets and ensure your working directory is clean." msgstr "" msgid "Not a head revision!" msgstr "" msgid "Merge from (other revision)" msgstr "" msgid "Merge to (working directory)" msgstr "" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Or use:" msgstr "" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "" msgid "Discard all changes from the other revision" msgstr "" msgid "&Discard" msgstr "" msgid "Confirm Discard Changes" msgstr "" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" msgctxt "working dir state" msgid "Clean" msgstr "" msgid "Merging..." msgstr "" msgid "Automatically advance to next page when merge is complete." msgstr "" #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" msgid "" "No merge conflicts, ready to commit or review" msgstr "" msgid "Commit merge results" msgstr "" msgid "Commit Options" msgstr "" msgid "Commit Now" msgstr "" msgid "Commit Later" msgstr "" msgid "Merge changeset" msgstr "" msgid "Syntax Highlighting" msgstr "" msgid "Paste &Filenames" msgstr "" msgid "App&ly Format" msgstr "" msgid "C&onfigure Format" msgstr "" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "" msgid "&Commit to Queue..." msgstr "" msgid "Create &New Queue..." msgstr "" msgid "&Rename Active Queue..." msgstr "" msgid "&Delete Queue..." msgstr "" msgid "&Purge Queue..." msgstr "" msgid "Create Patch Queue" msgstr "" msgid "New patch queue name" msgstr "" msgid "Create" msgstr "" msgid "Rename Patch Queue" msgstr "" #, python-format msgid "Rename patch queue '%s' to" msgstr "" msgid "Rename" msgstr "" msgid "Delete Patch Queue" msgstr "" msgid "Delete reference to" msgstr "" msgid "Delete" msgstr "" msgid "Purge Patch Queue" msgstr "" msgid "Remove patch directory of" msgstr "" msgid "Purge" msgstr "" msgid "Rename Patch" msgstr "" #, python-format msgid "Rename patch %s to:" msgstr "" msgid "no guards" msgstr "" msgid "Patch Queue" msgstr "" msgctxt "MQ QPush" msgid "Push" msgstr "" msgid "Apply one patch" msgstr "" msgctxt "MQ QPush" msgid "Push all" msgstr "" msgid "Apply all patches" msgstr "" msgid "Pop" msgstr "" msgid "Unapply one patch" msgstr "" msgid "Pop all" msgstr "" msgid "Unapply all patches" msgstr "" msgid "Go &to Patch" msgstr "" msgid "&Apply Only This Patch" msgstr "" msgid "Apply only the selected patch" msgstr "" msgid "&Finish Patch" msgstr "" msgid "Move applied patches into repository history" msgstr "" msgid "&Delete Patches..." msgstr "" msgid "Delete selected patches" msgstr "" msgid "Re&name Patch..." msgstr "" msgid "Set &Guards..." msgstr "" msgid "Configure guards for selected patch" msgstr "" msgid "Patch Queue Actions Toolbar" msgstr "" msgid "Configure guards" msgstr "" #, python-format msgid "Input new guards for %s:" msgstr "" msgid "Confirm patch queue switch" msgstr "" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "" #, python-format msgid "Guards: %d/%d" msgstr "" msgid "MQ options" msgstr "" msgid "Force push or pop (--force)" msgstr "" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "" msgid "Submitting p4 changelist..." msgstr "" msgid "Reverting p4 changelist..." msgstr "" msgid "Patch Branch Toolbar" msgstr "" msgid "Merge all pending dependencies" msgstr "" msgid "Backout current patch branch" msgstr "" msgid "Backport part of a changeset to a dependency" msgstr "" msgid "Start a new patch branch" msgstr "" msgid "Edit patch dependency graph" msgstr "" msgid "will be closed" msgstr "" #, python-format msgid "needs merge of %i heads\n" msgstr "" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "" #, python-format msgid "needs merge with %s\n" msgstr "" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "" msgid "&Goto (update workdir)" msgstr "" msgid "&Merge" msgstr "" msgid "No patch branch selected" msgstr "" msgid "No editor found" msgstr "" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" msgid "Graph" msgstr "" msgid "Status" msgstr "" msgid "Title" msgstr "" msgid "Message" msgstr "" msgid "New Patch Branch" msgstr "" msgid "Patch message:" msgstr "" msgid "Patch date:" msgstr "" msgid "Patch user:" msgstr "" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" msgid "Review Board" msgstr "" msgid "Password:" msgstr "" msgid "Error" msgstr "" #, python-format msgid "Review draft posted to %s\n" msgstr "" #, python-format msgid "Review published to %s\n" msgstr "" msgid "Success" msgstr "" msgid "Repository ID:" msgstr "" msgid "Post Review" msgstr "" msgid "Review ID:" msgstr "" msgid "Update the fields of this existing request" msgstr "" msgid "Update Review" msgstr "" msgid "Create diff with all outgoing changes" msgstr "" msgid "Create diff with all changes on this branch" msgstr "" msgid "Publish request immediately" msgstr "" msgid "%p%" msgstr "" msgid "Connecting to Review Board..." msgstr "" msgid "Target:" msgstr "" msgid "Do not modify working copy (-k/--keep)" msgstr "" #, python-format msgid "Prune - %s" msgstr "" msgid "&Prune" msgstr "" msgid "No unknown files found" msgstr "" msgid "No ignored files found" msgstr "" msgid "No trash files found" msgstr "" msgid "Delete empty folders" msgstr "" msgid "Preserve files beginning with .hg" msgstr "" #, python-format msgid "%s - purge" msgstr "" msgid "Checking" msgstr "" msgid "Ready to purge." msgstr "" #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "" msgstr[1] "" msgid "Confirm file deletions" msgstr "" msgid "Are you sure you want to delete these files and/or folders?" msgstr "" msgid "Deletion failures" msgstr "" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "" msgstr[1] "" msgid "Deleting trash folder..." msgstr "" #, python-format msgid "Deleted %d files" msgstr "" #, python-format msgid "Deleted %d files and %d folders" msgstr "" msgid "Delete Patches" msgstr "" msgid "Remove patches from queue?" msgstr "" msgid "Keep patch files" msgstr "" #, python-format msgid "Patch fold - %s" msgstr "" msgid "New patch message:" msgstr "" msgid "Patches to fold" msgstr "" msgid "&Undo" msgstr "" msgid "&Redo" msgstr "" msgid "Cu&t" msgstr "" msgid "&Copy" msgstr "" msgid "&Paste" msgstr "" msgid "&Editor Options" msgstr "" msgid "&Wrap" msgstr "" msgctxt "wrap mode" msgid "&None" msgstr "" msgid "&Word" msgstr "" msgid "&Character" msgstr "" msgid "White&space" msgstr "" msgid "&Visible" msgstr "" msgid "&Invisible" msgstr "" msgid "&AfterIndent" msgstr "" msgid "&TAB Inserts" msgstr "" msgid "&Auto" msgstr "" msgid "&TAB" msgstr "" msgid "&Spaces" msgstr "" msgid "EOL &Visibility" msgstr "" msgid "EOL &Mode" msgstr "" msgid "&Windows" msgstr "" msgid "&Unix" msgstr "" msgid "&Mac" msgstr "" msgid "&Auto-Complete" msgstr "" msgid "### regular expression ###" msgstr "" msgid "Regular expression search pattern" msgstr "" msgid "Wrap search" msgstr "" msgid "Prev" msgstr "" msgid "Next" msgstr "" msgid "Unable to read file" msgstr "" msgid "Could not open the specified file for reading." msgstr "" msgid "This appears to be a binary file." msgstr "" msgid "An error occurred while reading the file." msgstr "" msgid "Text Translation Failure" msgstr "" msgid "Could not translate the file content from native encoding." msgstr "" msgid "Several characters would be lost." msgstr "" msgid "Unable to write file" msgstr "" msgid "Could not translate the file content to native encoding." msgstr "" msgid "Could not open the specified file for writing." msgstr "" msgid "An error occurred while writing the file." msgstr "" msgid "Try refreshing your repository." msgstr "" #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
Please edit your config" msgstr "" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
Please fix your config" msgstr "" #, python-format msgid "Operation aborted:

%(arg0)s." msgstr "" msgid "Repository is locked" msgstr "" msgid "hint:" msgstr "" msgid "Repository Error" msgstr "" msgid "No visual editor configured" msgstr "" msgid "Please configure a visual editor." msgstr "" msgid "Editor launch failure" msgstr "" msgid "Failed to open path in terminal" msgstr "" #, python-format msgid "\"%s\" is not a valid directory" msgstr "" #, python-format msgid "Invalid configuration: %s" msgstr "" msgid "Unable to start the following command:" msgstr "" msgid "No shell configured" msgstr "" msgid "A terminal shell must be configured" msgstr "" msgid "Please enter a username" msgstr "" msgid "You must identify yourself to Mercurial" msgstr "" msgid "Unable to translate input to local encoding." msgstr "" msgid "Checkmark files to add" msgstr "" msgid "Checkmark files to forget" msgstr "" msgid "Forget" msgstr "" msgid "Checkmark files to revert" msgstr "" msgid "Revert" msgstr "" msgid "Checkmark files to remove" msgstr "" msgid "Remove" msgstr "" #, python-format msgid "%s - hg %s" msgstr "" msgid "Do not save backup files (*.orig)" msgstr "" msgid "Force removal of modified files (--force)" msgstr "" msgid "Add &Largefiles" msgstr "" msgid "No files selected" msgstr "" msgid "No operation to perform" msgstr "" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" msgid "Remove &Unmodified Files" msgstr "" msgid "Remove &All Selected Files" msgstr "" msgid "Rebase changeset and descendants" msgstr "" msgid "To rebase destination" msgstr "" msgid "Swap source and destination" msgstr "" msgid "Keep original changesets (--keep)" msgstr "" msgid "Keep original branch names (--keepbranches)" msgstr "" msgid "Collapse the rebased changesets (--collapse)" msgstr "" msgid "Rebase entire source branch (-b/--base)" msgstr "" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "" msgid "Rebase" msgstr "" #, python-format msgid "Rebase - %s" msgstr "" msgid "" "Before rebase, you must
commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the rebase" msgstr "" msgid "Rebase is complete" msgstr "" msgid "Rebase failed" msgstr "" msgid "Rebase aborted" msgstr "" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" msgid "Exiting with an unfinished rebase is not recommended." msgstr "" msgid "Consider aborting the rebase first." msgstr "" #, python-format msgid "Merge rejected patch chunks into %s" msgstr "" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "" msgid "Mark this chunk as unresolved" msgstr "" msgid "Reload File" msgstr "" msgid "Are you sure you want to reload this file?" msgstr "" msgid "All unsaved changes will be lost." msgstr "" msgid "Warning" msgstr "" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" msgid "Copy source -> destination" msgstr "" msgid "Copy Error" msgstr "" msgid "Rename Error" msgstr "" msgid "Select Source File" msgstr "" msgid "Select Source Folder" msgstr "" msgid "Source does not exist." msgstr "" msgid "The source must be within the repository tree." msgstr "" msgid "The destination must be within the repository tree." msgstr "" msgid "Destination file already exists." msgstr "" msgid "Are you sure you want to overwrite it ?" msgstr "" #, python-format msgid "Copy - %s" msgstr "" #, python-format msgid "Rename - %s" msgstr "" msgid "Show all" msgstr "" msgid "### revision set query ###" msgstr "" msgid "Clear current query and query text" msgstr "" msgid "Trigger revision set query" msgstr "" msgid "Open advanced query editor" msgstr "" msgid "Delete selected query from history" msgstr "" msgid "filter" msgstr "" msgid "Toggle filtering of non-matched changesets" msgstr "" msgid "Show/Hide hidden changesets" msgstr "" msgid "Toggle graft relations visibility" msgstr "" msgid "Keyword Search" msgstr "" msgid "Revision Set" msgstr "" msgid "(unsaved)" msgstr "" msgid "Display graph the named branch only" msgstr "" msgid "Display only active branches" msgstr "" msgid "Display closed branches" msgstr "" msgid "Include all ancestors" msgstr "" msgctxt "column header" msgid "Graph" msgstr "" msgctxt "column header" msgid "Rev" msgstr "" msgctxt "column header" msgid "Branch" msgstr "" msgctxt "column header" msgid "Description" msgstr "" msgctxt "column header" msgid "Author" msgstr "" msgctxt "column header" msgid "Tags" msgstr "" msgctxt "column header" msgid "Latest tags" msgstr "" msgctxt "column header" msgid "Node" msgstr "" msgctxt "column header" msgid "Git Commit" msgstr "" msgctxt "column header" msgid "Age" msgstr "" msgctxt "column header" msgid "Local Time" msgstr "" msgctxt "column header" msgid "UTC Time" msgstr "" msgctxt "column header" msgid "Changes" msgstr "" msgctxt "column header" msgid "Converted From" msgstr "" msgctxt "column header" msgid "Phase" msgstr "" msgctxt "column header" msgid "Filename" msgstr "" msgid "Searching..." msgstr "" #, python-format msgid "filling (%d)" msgstr "" msgid "Mercurial User" msgstr "" msgid "Repository Registry" msgstr "" msgid "Show &Paths" msgstr "" msgid "Show S&hort Paths" msgstr "" msgid "&Scan Repositories at Startup" msgstr "" msgid "Scan &Remote Repositories" msgstr "" msgid "&Refresh Repository List" msgstr "" msgid "Refresh the Repository Registry list" msgstr "" msgid "&Open" msgstr "" msgid "Open the repository in a new tab" msgstr "" msgid "&Open All" msgstr "" msgid "Open all repositories in new tabs" msgstr "" msgid "New &Group" msgstr "" msgid "Create a new group" msgstr "" msgid "Rename the entry" msgstr "" msgid "Settin&gs" msgstr "" msgid "View the repository's settings" msgstr "" msgid "Re&move from Registry" msgstr "" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" msgid "Clon&e..." msgstr "" msgid "Clone Repository" msgstr "" msgid "E&xplore" msgstr "" msgid "Open the repository in a file browser" msgstr "" msgid "&Terminal" msgstr "" msgid "Open a shell terminal in the repository root" msgstr "" msgid "&Add Repository..." msgstr "" msgid "Add a repository to this group" msgstr "" msgid "A&dd Subrepository..." msgstr "" msgid "Convert an existing repository into a subrepository" msgstr "" msgid "Remo&ve Subrepository..." msgstr "" msgid "Remove this subrepository from the current revision" msgstr "" msgid "Copy the root path of the repository to the clipboard" msgstr "" msgid "Sort by &Name" msgstr "" msgid "Sort the group by short name" msgstr "" msgid "Sort by &Path" msgstr "" msgid "Sort the group by full path" msgstr "" msgid "&Sort by .hgsub" msgstr "" msgid "Order the subrepos as in .hgsub" msgstr "" msgid "Select repository directory to add" msgstr "" msgid "Select an existing repository to add as a subrepo" msgstr "" msgid "Cannot add subrepository" msgstr "" #, python-format msgid "%s is not a valid repository" msgstr "" #, python-format msgid "\"%s\" is not a folder" msgstr "" msgid "A repository cannot be added as a subrepo of itself" msgstr "" #, python-format msgid "" "The selected folder:

%s

is not inside the target repository." "

This may be allowed but is greatly discouraged.
If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" msgid "Cannot open repository" msgstr "" #, python-format msgid "The selected repository:

%s

cannot be open!" msgstr "" msgid "Subrepository already exists" msgstr "" #, python-format msgid "" "The selected repository:

%s

is already a subrepository of:" "

%s

as: \"%s\"" msgstr "" msgid "Failed to add subrepository" msgstr "" #, python-format msgid "Cannot open the .hgsub file in:

%s" msgstr "" msgid "Failed to add repository" msgstr "" #, python-format msgid "The .hgsub file already contains the line:

%s" msgstr "" msgid "Subrepo added to .hgsub file" msgstr "" #, python-format msgid "" "The selected subrepo:

%s

has been added to the .hgsub " "file of the repository:

%s

Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" #, python-format msgid "Cannot update the .hgsub file in:

%s" msgstr "" msgid "Could not open .hgsub file" msgstr "" msgid "Cannot read the .hgsub file.

Subrepository removal failed." msgstr "" msgid "Subrepository not found" msgstr "" msgid "" "The selected subrepository was not found on the .hgsub file.

Perhaps it " "has already been removed?" msgstr "" msgid "&Yes" msgstr "" msgid "&No" msgstr "" msgid "Remove the selected repository?" msgstr "" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" msgid "Subrepository removed from .hgsub" msgstr "" msgid "" "The selected subrepository has been removed from the .hgsub file.

Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" msgid "Could not update .hgsub file" msgstr "" msgid "Cannot update the .hgsub file.

Subrepository removal failed." msgstr "" #, python-format msgid "Unsupported repository type (%s)" msgstr "" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "" msgid "New Group" msgstr "" msgid "Confirm Delete" msgstr "" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "" msgid "Could not get subrepository list" msgstr "" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

%s" msgstr "" msgid "Could not open some subrepositories" msgstr "" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

%s

The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

%s" msgstr "" msgid "Updating repository registry" msgstr "" #, python-format msgid "Loading repository %s" msgstr "" msgid "Repository Registry updated" msgstr "" msgid "Close tab" msgstr "" msgid "Close other tabs" msgstr "" msgid "Undo close tab" msgstr "" msgid "Reopen last closed tab" msgstr "" msgid "Undo close other tabs" msgstr "" msgid "Reopen last closed tab group" msgstr "" msgid "Failed to open repository" msgstr "" msgid "&Sort" msgstr "" #, python-format msgid "Local Repository %s" msgstr "" #, python-format msgid "" "An exception happened while loading the subrepos of:

\"%s\"

" msgstr "" #, python-format msgid "The exception error message was:

%s

" msgstr "" msgid "Click OK to continue or Abort to exit." msgstr "" msgid "Error loading subrepos" msgstr "" msgid "Unable to update repository name" msgstr "" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "" msgid "default" msgstr "" msgid "C&hoose Log Columns..." msgstr "" msgid "&Resize Columns" msgstr "" #, python-format msgid "Goto ancestor of %s and %s" msgstr "" #, python-format msgid "Can't find revision '%s'" msgstr "" msgid "Drag to change order" msgstr "" msgid "Workbench Log Columns" msgstr "" msgctxt "tab tooltip" msgid "Revision details" msgstr "" msgctxt "tab tooltip" msgid "Commit" msgstr "" msgctxt "tab tooltip" msgid "Search" msgstr "" msgctxt "tab tooltip" msgid "Console log" msgstr "" msgctxt "tab tooltip" msgid "Synchronize" msgstr "" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "" #, python-format msgid "%s " msgstr "" #, python-format msgid "Found %d incoming changesets" msgstr "" msgid "Pull" msgstr "" msgid "Pull incoming changesets into your repository" msgstr "" msgid "Reject incoming changesets" msgstr "" #, python-format msgid "Push current branch (%s)" msgstr "" #, python-format msgid "Push up to current revision (#%d)" msgstr "" #, python-format msgid "Push up to revision #%d" msgstr "" msgid "Push all" msgstr "" msgid "no outgoing changesets" msgstr "" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets" msgstr "" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "" msgid "Nothing to push" msgstr "" msgid "No revision found" msgstr "" #, python-format msgid "%s - verify repository" msgstr "" #, python-format msgid "%s - recover repository" msgstr "" msgid "No transaction available" msgstr "" msgid "There is no rollback transaction available" msgstr "" msgid "Undo last commit?" msgstr "" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "" msgid "Undo last transaction?" msgstr "" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "" msgid "Unable to determine working copy revision\n" msgstr "" msgid "Remove current working revision?" msgstr "" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" msgid "Tab cannot exit" msgstr "" msgid "Pus&h" msgstr "" msgid "Push to &Here" msgstr "" msgid "Push Selected &Branch" msgstr "" msgid "Push &All" msgstr "" msgid "&Update..." msgstr "" msgid "Bro&wse at Revision" msgstr "" msgid "&Merge with Local..." msgstr "" msgid "&Tag..." msgstr "" msgid "Boo&kmark..." msgstr "" msgid "Top&ic..." msgstr "" msgid "Sig&n..." msgstr "" msgid "&Backout..." msgstr "" msgid "Revert &All Files..." msgstr "" msgid "Copy &Hash" msgstr "" msgid "E&xport" msgstr "" msgid "E&xport Patch..." msgstr "" msgid "&Email Patch..." msgstr "" msgid "&Archive..." msgstr "" msgid "&Bundle Rev and Descendants..." msgstr "" msgid "Change &Phase to" msgstr "" msgid "&Graft to Local..." msgstr "" msgid "Modi&fy History" msgstr "" msgid "&Unapply Patch" msgstr "" msgid "Import to &MQ" msgstr "" msgid "MQ &Options" msgstr "" msgid "&Rebase..." msgstr "" msgid "&Prune..." msgstr "" msgid "&Strip..." msgstr "" msgid "Post to Re&view Board..." msgstr "" msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "" msgid "Write diff file" msgstr "" msgid "Unable to write diff file" msgstr "" msgid "Unable to compress history" msgstr "" msgid "Selected changeset pair not related" msgstr "" msgid "Visual Diff..." msgstr "" msgid "Export Diff..." msgstr "" msgid "Export Selected..." msgstr "" msgid "Email Selected..." msgstr "" msgid "Copy Selected as Patch" msgstr "" msgid "Archive DAG Range..." msgstr "" msgid "Export DAG Range..." msgstr "" msgid "Email DAG Range..." msgstr "" msgid "Bundle DAG Range..." msgstr "" msgid "Bisect - Good, Bad..." msgstr "" msgid "Bisect - Bad, Good..." msgstr "" msgid "Compress History..." msgstr "" msgid "Rebase..." msgstr "" msgid "Goto common ancestor" msgstr "" msgid "Graft Selected to local..." msgstr "" msgid "&Prune Selected..." msgstr "" msgid "Post Selected to Review Board..." msgstr "" msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "" msgid "Apply onto original parent" msgstr "" msgid "Apply only this patch" msgstr "" msgid "Fold patches..." msgstr "" msgid "Delete patches..." msgstr "" msgid "Rename patch..." msgstr "" msgid "Pull to here..." msgstr "" msgid "Visual diff..." msgstr "" msgid "Export patch" msgstr "" msgid "Patch Files (*.patch)" msgstr "" msgid "Cannot export revision" msgstr "" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" msgid "There is already an existing folder with that same name." msgstr "" msgid "Replace" msgstr "" msgid "Append" msgstr "" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" msgid "What do you want to do?\n" msgstr "" msgid "Replace the existing patch files.\n" msgstr "" msgid "Append the changes to the existing patch files.\n" msgstr "" msgid "Abort the export operation.\n" msgstr "" msgid "Patch files already exist" msgstr "" msgid "Patch exported" msgstr "" #, python-format msgid "" "Revision #%d (%s) was exported to:

%s%s%s" msgstr "" msgid "Patches exported" msgstr "" #, python-format msgid "%d patches were exported to:

%s" msgstr "" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

Are you sure you want to use revert?

(use " "update to checkout another revision)" msgstr "" msgid "Filter b&y" msgstr "" msgid "&Ancestors and Descendants" msgstr "" msgid "A&uthor" msgstr "" msgid "&Branch" msgstr "" msgid "&More Options..." msgstr "" msgid "Unable to merge" msgstr "" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "" msgid "Unable to backout" msgstr "" msgid "Write bundle" msgstr "" msgid "Backwards phase change requested" msgstr "" msgid "Do you really want to make this revision secret?" msgstr "" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" msgid "&Make secret" msgstr "" msgid "&Cancel" msgstr "" msgid "Do you really want to force a backwards phase transition?" msgstr "" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" msgid "&Force" msgstr "" msgid "Cannot import selected revision" msgstr "" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" msgid "Invalid command" msgstr "" msgid "The selected command is empty" msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" msgid "Failed to execute custom TortoiseHg command" msgstr "" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "" msgid "Failed to execute custom command" msgstr "" #, python-format msgid "The command \"%s\" could not be executed." msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" msgid "&Edit Toolbar" msgstr "" msgid "&Refresh" msgstr "" msgid "&Filter Toolbar" msgstr "" #, python-format msgid "TortoiseHg: %s" msgstr "" msgid "S&tatus Bar" msgstr "" #, python-format msgid "Resolve Conflicts - %s" msgstr "" msgid "Local revision information" msgstr "" msgid "Other revision information" msgstr "" msgid "Unresolved conflicts" msgstr "" msgid "Mercurial Re&solve" msgstr "" msgid "Attempt automatic (trivial) merge" msgstr "" msgid "Tool &Resolve" msgstr "" msgid "Merge using selected merge tool" msgstr "" msgid "&Take Local" msgstr "" msgid "Accept the local file version (yours)" msgstr "" msgid "Take &Other" msgstr "" msgid "Accept the other file version (theirs)" msgstr "" msgid "&Mark as Resolved" msgstr "" msgid "Mark this file as resolved" msgstr "" msgid "Diff &Local to Ancestor" msgstr "" msgid "&Diff Other to Ancestor" msgstr "" msgid "Resolved conflicts" msgstr "" msgid "&Edit File" msgstr "" msgid "Edit resolved file" msgstr "" msgid "3-&Way Diff" msgstr "" msgid "Visual three-way diff" msgstr "" msgid "Visual diff between resolved file and first parent" msgstr "" msgid "&Diff to Other" msgstr "" msgid "Visual diff between resolved file and second parent" msgstr "" msgid "Mark as &Unresolved" msgstr "" msgid "Mark this file as unresolved" msgstr "" msgid "Detected merge/diff tools:" msgstr "" msgid "Command output" msgstr "" msgid "Unable to show subrepository files" msgstr "" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" msgid "There are merge conflicts to be resolved" msgstr "" msgid "All conflicts are resolved." msgstr "" msgid "There are no conflicting file merges." msgstr "" msgid "Exit without finishing resolve?" msgstr "" msgid "Unresolved conflicts remain. Are you sure?" msgstr "" msgid "E&xit" msgstr "" msgid "Ext" msgstr "" msgid "Repository" msgstr "" msgid "" msgstr "" msgid "File List Toolbar" msgstr "" msgid "Ma&nifest Mode" msgstr "" msgid "Show all version-controlled files in tree view" msgstr "" msgid "&Flat List" msgstr "" msgid "### filter text ###" msgstr "" msgid "Changed by &This Commit" msgstr "" msgid "Show files changed by this commit" msgstr "" msgid "Compare to &1st Parent" msgstr "" msgid "Compare to &2nd Parent" msgstr "" msgid "Toggle parent to be used as the base revision" msgstr "" msgid "List Optio&ns" msgstr "" #, python-format msgid "%s - Revision Details (%s)" msgstr "" #, python-format msgid "Revert - %s" msgstr "" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "" msgid "Revert all files to this revision" msgstr "" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "" msgid "null revision (i.e. remove file(s))" msgstr "" msgid "Changeset:" msgstr "" msgid "Child:" msgstr "" msgid "Predecessors:" msgstr "" msgid "Successors:" msgstr "" msgid "Head is closed!" msgstr "" msgid "Changesets where username contains string." msgstr "" msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" msgid "Like \"keyword(string)\" but accepts a regex." msgstr "" msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" msgid "The named bookmark or all bookmarks." msgstr "" msgid "The named tag or all tags." msgstr "" msgid "Changeset is tagged." msgstr "" msgid "Changeset is a named branch head." msgstr "" msgid "Changeset is a merge changeset." msgstr "" msgid "Changeset is closed." msgstr "" msgid "" "Changesets within the interval, see help dates" msgstr "" msgid "Greatest common ancestor of the two changesets." msgstr "" msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" msgid "Changesets which modify files matched by pattern." msgstr "" msgid "Changesets which add files matched by pattern." msgstr "" msgid "Changesets which remove files matched by pattern." msgstr "" msgid "Changesets containing files matched by pattern." msgstr "" msgid "All changesets belonging to the branches of changesets in set." msgstr "" msgid "Members of a set with no children in set." msgstr "" msgid "Changesets which are descendants of changesets in set." msgstr "" msgid "Changesets that are ancestors of a changeset in set." msgstr "" msgid "Child changesets of changesets in set." msgstr "" msgid "The set of all parents for all changesets in set." msgstr "" msgid "First parent for all changesets in set, or the working directory." msgstr "" msgid "Second parent for all changesets in set, or the working directory." msgstr "" msgid "Changesets with no parent changeset in set." msgstr "" msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" msgid "Changeset with lowest revision number in set." msgstr "" msgid "Changeset with highest revision number in set." msgstr "" msgid "First n members of a set." msgstr "" msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "" msgid "All changesets, the same as 0:tip." msgstr "" msgid "Revision Set Query" msgstr "" msgid "all revisions converted from subversion" msgstr "" msgid "changeset which represents converted svn revision" msgstr "" msgid "Common sets" msgstr "" msgid "File pattern sets" msgstr "" msgid "Set Ancestry" msgstr "" msgid "Set Logic" msgstr "" msgid "" "help " "revsets" msgstr "" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" #, python-format msgid "thg: unknown command '%s'\n" msgstr "" #, python-format msgid "thg %s: %s\n" msgstr "" #, python-format msgid "thg: %s\n" msgstr "" #, python-format msgid "abort: %s!\n" msgstr "" #, python-format msgid "abort: %s\n" msgstr "" #, python-format msgid "(%s)\n" msgstr "" msgid "option --config may not be abbreviated!" msgstr "" msgid "invalid arguments" msgstr "" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" msgid "repository root directory or symbolic path name" msgstr "" msgid "enable additional output" msgstr "" msgid "suppress output" msgstr "" msgid "display help and exit" msgstr "" msgid "set/override config option (use 'section.name=value')" msgstr "" msgid "enable debugging output" msgstr "" msgid "start debugger" msgstr "" msgid "print command execution profile" msgstr "" msgid "do not fork GUI process" msgstr "" msgid "always fork GUI process" msgstr "" msgid "read file list from file" msgstr "" msgid "read file list from file encoding utf-8" msgstr "" msgid "thg about" msgstr "" msgid "thg add [FILE]..." msgstr "" msgid "revision to annotate" msgstr "" msgid "open to line" msgstr "" msgid "initial search pattern" msgstr "" msgid "thg annotate" msgstr "" #, python-format msgid "invalid line number: %s" msgstr "" msgid "revision to archive" msgstr "" msgid "thg archive" msgstr "" msgid "merge with old dirstate parent after backout" msgstr "" msgid "parent to choose when backing out merge" msgstr "" msgid "revision to backout" msgstr "" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "" msgid "thg bisect" msgstr "" msgid "revision" msgstr "" msgid "thg bookmarks [-r REV] [NAME]" msgstr "" msgid "only one new bookmark name allowed" msgstr "" msgid "the clone will include an empty working copy (only a repository)" msgstr "" msgid "revision, tag or branch to check out" msgstr "" msgid "include the specified changeset" msgstr "" msgid "clone only the specified branch" msgstr "" msgid "use pull protocol to copy metadata" msgstr "" msgid "use uncompressed transfer (fast over LAN)" msgstr "" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "" msgid "record user as committer" msgstr "" msgid "record datecode as commit date" msgstr "" msgid "thg commit [OPTIONS] [FILE]..." msgstr "" msgid "thg debugblockmatcher" msgstr "" msgid "thg debugbugreport [TEXT]" msgstr "" msgid "thg debugconsole" msgstr "" msgid "thg debuglighthg" msgstr "" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "" msgid "no command specified" msgstr "" msgid "thg drag_copy SOURCE... DEST" msgstr "" msgid "thg drag_move SOURCE... DEST" msgstr "" msgid "a revision to send" msgstr "" msgid "thg email [REVS]" msgstr "" msgid "use only one form to specify the revision" msgstr "" msgid "select the specified revision" msgstr "" msgid "side-by-side comparison of revisions" msgstr "" msgid "thg filelog [OPTION]... FILE" msgstr "" msgid "requires a single filename" msgstr "" msgid "thg forget [FILE]..." msgstr "" msgid "revisions to graft" msgstr "" msgid "thg graft [-r] REV..." msgstr "" msgid "You must provide revisions to graft" msgstr "" msgid "ignore case during search" msgstr "" msgid "thg grep" msgstr "" msgid "thg guess" msgstr "" msgid "thg help [COMMAND]" msgstr "" msgid "global options:" msgstr "" msgid "use \"thg help\" for the full list of commands" msgstr "" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "" msgid "" "list of commands:\n" "\n" msgstr "" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" msgid "(no help text available)" msgstr "" msgid "options:\n" msgstr "" msgid "no commands defined\n" msgstr "" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "" msgid "" "basic commands:\n" "\n" msgstr "" #, python-format msgid " (default: %s)" msgstr "" msgid "thg hgignore [FILE]" msgstr "" msgid "import to the patch queue (MQ)" msgstr "" msgid "thg import [OPTION] [SOURCE]..." msgstr "" msgid "thg init [DEST]" msgstr "" msgid "thg lock" msgstr "" msgid "search for a given text or revset" msgstr "" msgid "(DEPRECATED)" msgstr "" msgid "open a new workbench window" msgstr "" msgid "thg log [OPTIONS] [FILE]" msgstr "" msgid "cannot specify both -k/--query and filenames" msgstr "" msgid "revision to display" msgstr "" msgid "thg manifest [-r REV] [FILE]" msgstr "" msgid "revision to merge" msgstr "" msgid "thg merge [[-r] REV]" msgstr "" msgid "Merge revision not specified or not found" msgstr "" msgid "a revision to post" msgstr "" msgid "thg postreview [-r] REV..." msgstr "" msgid "reviewboard extension not enabled" msgstr "" #, python-format msgid "see %(url)s" msgstr "" msgid "no revisions specified" msgstr "" msgid "revisions to prune" msgstr "" msgid "thg prune [-r] REV..." msgstr "" msgid "thg purge" msgstr "" msgid "keep original changesets" msgstr "" msgid "keep original branch names" msgstr "" msgid "rebase from the specified changeset" msgstr "" msgid "rebase onto the specified changeset" msgstr "" msgid "thg rebase -s REV -d REV [--keep]" msgstr "" msgid "Rebase already in progress" msgstr "" msgid "Resuming rebase already in progress" msgstr "" msgid "You must provide source and dest arguments" msgstr "" msgid "thg rejects [FILE]" msgstr "" msgid "You must provide the path to a file" msgstr "" msgid "thg remove [FILE]..." msgstr "" msgid "thg rename [SOURCE] [DEST]" msgstr "" msgid "field to give initial focus" msgstr "" msgid "thg repoconfig" msgstr "" msgid "thg resolve" msgstr "" msgid "the revision to show" msgstr "" msgid "thg revdetails [-r REV]" msgstr "" msgid "thg revert [FILE]..." msgstr "" msgid "revision to update" msgstr "" msgid "thg rupdate [[-r] REV]" msgstr "" msgid "name of the hgweb config file (serve more than one repository)" msgstr "" msgid "name of the hgweb config file (DEPRECATED)" msgstr "" msgid "thg serve [--web-conf FILE]" msgstr "" msgid "thg shellconfig" msgstr "" msgid "thg shelve" msgstr "" msgid "sign even if the sigfile is modified" msgstr "" msgid "make the signature local" msgstr "" msgid "the key id to sign with" msgstr "" msgid "do not commit the sigfile after signing" msgstr "" msgid "use as commit message" msgstr "" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "" msgid "Please enable the Gpg extension first." msgstr "" msgid "show files without changes" msgstr "" msgid "show ignored files" msgstr "" msgid "thg status [OPTIONS] [FILE]" msgstr "" msgid "discard uncommitted changes (no backup)" msgstr "" msgid "do not back up stripped revisions" msgstr "" msgid "do not modify working copy during strip" msgstr "" msgid "revision to strip" msgstr "" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "" msgid "open the bookmark sync window" msgstr "" msgid "thg sync [OPTION]... [PEER]" msgstr "" msgid "replace existing tag" msgstr "" msgid "make the tag local" msgstr "" msgid "revision to tag" msgstr "" msgid "remove a tag" msgstr "" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "" msgid "wait until the second ticks over" msgstr "" msgid "notify the shell for paths given" msgstr "" msgid "remove the status cache" msgstr "" msgid "show the contents of the status cache (no update)" msgstr "" msgid "update all repos in current dir" msgstr "" msgid "thg thgstatus [OPTION]" msgstr "" msgid "thg topics [-r REV] [NAME]" msgstr "" msgid "Please enable the Topic extension first." msgstr "" msgid "only one new topic name allowed" msgstr "" msgid "thg update [-C] [[-r] REV]" msgstr "" msgid "thg userconfig" msgstr "" msgid "changeset to view in diff tool" msgstr "" msgid "revisions to view in diff tool" msgstr "" msgid "bundle file to preview" msgstr "" msgid "launch visual diff tool" msgstr "" msgid "print license" msgstr "" msgid "thg version [OPTION]" msgstr "" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "" msgid "Location:" msgstr "" msgid "Update to:" msgstr "" msgid "Options:" msgstr "" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "" msgid "Perform a push before updating (-p/--push)" msgstr "" msgid "Allow pushing new branches (--new-branch)" msgstr "" msgid "Force push to remote location (-f/--force)" msgstr "" msgid "remove working directory" msgstr "" msgid "unknown revision!" msgstr "" #, python-format msgid "Remote Update - %s" msgstr "" msgid "&Update" msgstr "" msgid "Log" msgstr "" msgid "Repositories" msgstr "" #, python-format msgid "Running at %s" msgstr "" msgid "Stopped" msgstr "" msgid "TortoiseHg Web Server" msgstr "" msgid "Web Server" msgstr "" msgid "Port:" msgstr "" msgid "Status:" msgstr "" msgid "Start" msgstr "" msgid "Settings" msgstr "" msgid "" msgstr "" msgid "&True" msgstr "" msgid "&False" msgstr "" msgid "&Unspecified" msgstr "" #, python-format msgid "%dpt" msgstr "" msgid "Bold" msgstr "" msgid "Italic" msgstr "" msgid "Strike" msgstr "" msgid "Underline" msgstr "" msgid "&Set..." msgstr "" msgid "&Clear" msgstr "" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "" msgid "&Browse..." msgstr "" msgid "UI Language" msgstr "" msgid "Specify your preferred user interface language (restart needed)" msgstr "" msgid "Three-way Merge Tool" msgstr "" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" msgid "Visual Diff Tool" msgstr "" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" msgid "Visual Editor" msgstr "" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" msgid "CLI Editor" msgstr "" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" msgid "Shell" msgstr "" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
Default, Windows: cmd.exe /" "K title %(reponame)s
Default, OS X: not set
Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" msgid "Immediate Operations" msgstr "" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" msgid "Tab Width" msgstr "" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" msgid "Force Repo Tab" msgstr "" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "" msgid "Monitor Repo Changes" msgstr "" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" msgid "Max Diff Size" msgstr "" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" msgid "Fork GUI" msgstr "" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" msgid "Full Path Title" msgstr "" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" msgid "Auto-resolve merges" msgstr "" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" msgid "New Repo Skeleton" msgstr "" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "" msgid "Single Workbench Window" msgstr "" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" msgid "Default widget" msgstr "" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" msgid "" "Open new tabs next\n" "to the current tab" msgstr "" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" msgid "Author Coloring" msgstr "" msgid "Color changesets by author name. Default: False" msgstr "" msgid "Full Authorname" msgstr "" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" msgid "Task Tabs" msgstr "" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" msgid "Task Toolbar Order" msgstr "" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
Valid names are: log commit sync grep and " "pbranch.
Default: log commit grep pbranch | sync" msgstr "" msgid "Long Summary" msgstr "" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" msgid "Log Batch Size" msgstr "" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "" msgid "Dead Branches" msgstr "" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" msgid "Branch Colors" msgstr "" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" msgid "Hide Tags" msgstr "" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" msgid "Activate Bookmarks" msgstr "" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

  • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
  • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
  • never: Never show any prompt to " "activate any bookmarks.

Default: prompt" msgstr "" msgid "Show Family Line" msgstr "" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" msgid "Use optimized graph layouter" msgstr "" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" msgctxt "config item" msgid "Commit" msgstr "" msgid "Username" msgstr "" msgid "" "Name associated with commits. The common format is:
Full Name <" "email@example.com>" msgstr "" msgid "Ask Username" msgstr "" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" msgid "Summary Line Length" msgstr "" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" msgid "Close After Commit" msgstr "" msgid "Close the commit tool after every successful commit. Default: False" msgstr "" msgid "Push After Commit" msgstr "" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" msgid "Auto Commit List" msgstr "" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" msgid "Auto Exclude List" msgstr "" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" msgid "English Messages" msgstr "" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" msgid "New Commit Phase" msgstr "" msgid "The phase of new commits. Default: draft" msgstr "" msgid "Secret MQ Patches" msgstr "" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "" msgid "Check Subrepo Phase" msgstr "" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" msgid "Monitor working
directory changes" msgstr "" msgid "" "Select when the working directory status list will be refreshed:
- " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
- always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
- " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
Default: auto" msgstr "" msgid "Confirm adding unknown files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Confirm deleting files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Sync" msgstr "" msgid "After Pull Operation" msgstr "" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" msgid "Default Push" msgstr "" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

  • all: The default. Push all changes in all " "branches.
  • branch: Push all changes in the current branch.
  • revision: Push the changes in the current branch up to the current revision.

Default: all" msgstr "" msgid "Confirm Push" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" msgid "Target Combo" msgstr "" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

  • auto: The default. Show the combo if more than one target " "configured.
  • always: Always show the combo.

Default: auto" msgstr "" msgid "SSH Command" msgstr "" msgid "" "Command to use for SSH connections.

Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" msgid "Subrepository Features:" msgstr "" msgid "Allow Hg Subrepos" msgstr "" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" msgid "Allow Git Subrepos" msgstr "" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

See the security note before enabling Git " "subrepos." msgstr "" msgid "Allow SVN Subrepos" msgstr "" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

See the security note before enabling " "Subversion subrepos." msgstr "" msgid "Server" msgstr "" msgid "Repository Details:" msgstr "" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" msgid "Encoding" msgstr "" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" msgid "'Publishing' repository" msgstr "" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" msgid "Web Server:" msgstr "" msgid "Textual description of the repository's purpose or contents." msgstr "" msgid "Contact" msgstr "" msgid "Name or email address of the person in charge of the repository." msgstr "" msgid "Style" msgstr "" msgid "Which template map style to use" msgstr "" msgid "Archive Formats" msgstr "" msgid "Comma separated list of archive formats allowed for downloading" msgstr "" msgid "Port" msgstr "" msgid "Port to listen on" msgstr "" msgid "Push Requires SSL" msgstr "" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" msgid "Stripes" msgstr "" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" msgid "Max Files" msgstr "" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "" msgid "Max Changes" msgstr "" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "" msgid "Allow Push" msgstr "" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" msgid "Deny Push" msgstr "" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" msgid "Proxy" msgstr "" msgid "Host" msgstr "" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "" msgid "Bypass List" msgstr "" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "" msgid "Optional. User name to authenticate with at the proxy server" msgstr "" msgid "Password" msgstr "" msgid "Optional. Password to authenticate with at the proxy server" msgstr "" msgid "From" msgstr "" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "" msgid "To" msgstr "" msgid "Comma-separated list of recipient email addresses" msgstr "" msgid "Cc" msgstr "" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "" msgid "Bcc" msgstr "" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "" msgid "method" msgstr "" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" msgid "SMTP Host" msgstr "" msgid "Host name of mail server" msgstr "" msgid "SMTP Port" msgstr "" msgid "Port to connect to on mail server. Default: 25" msgstr "" msgid "SMTP TLS" msgstr "" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "" msgid "SMTP Username" msgstr "" msgid "Username to authenticate to mail server with" msgstr "" msgid "SMTP Password" msgstr "" msgid "Password to authenticate to mail server with" msgstr "" msgid "Local Hostname" msgstr "" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "" msgid "Diff and Annotate" msgstr "" msgid "Patch EOL" msgstr "" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" msgid "Git Format" msgstr "" msgid "Use git extended diff header format. Default: False" msgstr "" msgid "MQ Git Format" msgstr "" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" msgid "No Dates" msgstr "" msgid "Do not include modification dates in diff headers. Default: False" msgstr "" msgid "Show Function" msgstr "" msgid "Show which function each change is in. Default: False" msgstr "" msgid "Ignore White Space" msgstr "" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "" msgid "Ignore WS Amount" msgstr "" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "" msgid "Ignore Blank Lines" msgstr "" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "" msgid "Annotate:" msgstr "" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "" msgid "Fonts" msgstr "" msgid "Message Font" msgstr "" msgid "Font used to display commit messages. Default: monospace 10" msgstr "" msgid "Diff Font" msgstr "" msgid "Font used to display text differences. Default: monospace 10" msgstr "" msgid "ChangeLog Font" msgstr "" msgid "Font used to display changelog data. Default: monospace 10" msgstr "" msgid "Output Font" msgstr "" msgid "Font used to display output messages. Default: sans 8" msgstr "" msgid "Extensions" msgstr "" msgid "Tools" msgstr "" msgid "Hooks" msgstr "" msgid "Issue Tracking" msgstr "" msgid "Issue Regex" msgstr "" msgid "Defines the regex to match when picking up issue numbers." msgstr "" msgid "Issue Link" msgstr "" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" msgid "Inline Tags" msgstr "" msgid "Show tags at start of commit message." msgstr "" msgid "Mandatory Issue Reference" msgstr "" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" msgid "Issue Tracker Plugin" msgstr "" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" msgid "Configure Issue Tracker" msgstr "" msgid "Configure the selected COM Bug Tracker plugin." msgstr "" msgid "Issue Tracker Trigger" msgstr "" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

  • never: Do not update the Issue Tracker " "state automatically.
  • commit: Update the Issue Tracker state after " "a successful commit.

Default: never" msgstr "" msgid "Changeset Link" msgstr "" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
The template string " "uses a normal mercurial template syntax, such as:

  • {node|short} : replaced by " "the 12 digit revision id.
  • {rev} : replaced by the revision number." "
  • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
For example, in order to " "link to bitbucket commit pages you can set this to:
https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
https://github.com/torvalds/" "linux/commit/{gitnode}
https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
" msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "" msgid "User name to authenticate with review board" msgstr "" msgid "Password to authenticate with review board" msgstr "" msgid "Server Repository ID" msgstr "" msgid "The default repository id for this repo on the review board server" msgstr "" msgid "Target Groups" msgstr "" msgid "A comma separated list of target groups" msgstr "" msgid "Target People" msgstr "" msgid "A comma separated list of target people" msgstr "" msgid "Kiln Bfiles" msgstr "" msgid "Patterns" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" msgid "Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" msgid "System Cache" msgstr "" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "" msgid "Simplelock" msgstr "" msgid "Lock Clone" msgstr "" msgid "" "Location of local clone of organizational lock repository.

This repository " "must contain a \"locked\" text file" msgstr "" msgid "Largefiles" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" msgid "Minimum Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" msgid "User Cache" msgstr "" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" msgid "Projrc" msgstr "" msgid "Require confirmation" msgstr "" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

  • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
  • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
  • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
" msgstr "" msgid "Servers" msgstr "" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" msgid "Include" msgstr "" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" msgid "Exclude" msgstr "" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" msgid "Update on incoming" msgstr "" msgid "" "Let the user update the projrc on incoming:
  • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
  • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
  • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

    Default: never" msgstr "" msgid "GnuPG" msgstr "" msgid "Specify the path to GPG. Default: gpg" msgstr "" msgid "Key ID" msgstr "" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "" msgid "TortoiseHg Settings" msgstr "" msgid "Iniparse package not found" msgstr "" msgid "Can't change settings without iniparse package - view is readonly." msgstr "" #, python-format msgid "%s's global settings" msgstr "" msgid "No repository found" msgstr "" msgid "no repo at " msgstr "" #, python-format msgid "%s project settings (.hg/projrc)" msgstr "" #, python-format msgid "%s repository settings" msgstr "" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "" msgid "Apply changes before exit?" msgstr "" msgid "&No (discard changes)" msgstr "" msgid "Reload" msgstr "" msgid "Settings File:" msgstr "" msgid "Confirm Save" msgstr "" msgid "Save changes before editing?" msgstr "" msgid "&Save" msgstr "" msgid "Confirm Reload" msgstr "" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" msgid "Unable to create a Mercurial.ini file" msgstr "" msgid "Insufficient access rights, reverting to read-only mode." msgstr "" msgid "Context Menu" msgstr "" msgid "Top menu items:" msgstr "" msgid "Sub menu items:" msgstr "" msgid "Menu Behavior" msgstr "" msgid "Hide context menu outside repositories" msgstr "" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" msgid "Icons" msgstr "" msgid "Overlays" msgstr "" msgid "Enabled overlays" msgstr "" msgid "Local disks only" msgstr "" msgid "Enabled Overlay Handlers" msgstr "" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "" msgid "Added" msgstr "" msgid "Locked*" msgstr "" msgid "Ignored*" msgstr "" msgid "Unversioned" msgstr "" msgid "Readonly*" msgstr "" msgid "Deleted*" msgstr "" msgid "*: not used by TortoiseHg" msgstr "" msgid "Taskbar" msgstr "" msgid "Show Icon" msgstr "" msgid "Highlight Icon" msgstr "" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" msgid "Explorer Extension Settings - TortoiseHg" msgstr "" msgid "Clear" msgstr "" msgid "Clear the current shelf file" msgstr "" msgid "Delete the current shelf file" msgstr "" msgid "Left Toolbar" msgstr "" msgid "Delete selected chunks" msgstr "" msgid "Move all files right" msgstr "" msgid "Move selected file right" msgstr "" msgid "Edit file" msgstr "" msgid "Move selected chunks right" msgstr "" msgid "Refresh Toolbar" msgstr "" msgid "Refresh" msgstr "" msgid "New Shelf" msgstr "" msgid "Right Toolbar" msgstr "" msgid "Move selected chunks left" msgstr "" msgid "Move selected file left" msgstr "" msgid "Move all files left" msgstr "" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "" msgid "Delete selected chunks from working copy?" msgstr "" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "" msgid "Are you sure?" msgstr "" msgid "TortoiseHg New Shelf Name" msgstr "" msgid "Specify name of new shelf" msgstr "" msgid "Bad filename" msgstr "" #, python-format msgid "A shelf name cannot contain %s" msgstr "" msgid "File already exists" msgstr "" msgid "A shelf file of that name already exists" msgstr "" msgid "New shelf created" msgstr "" #, python-format msgid "Delete shelf file %s?" msgstr "" msgid "Shelf deleted" msgstr "" msgid "Revert all working copy changes?" msgstr "" #, python-format msgid "Clear contents of shelf file %s?" msgstr "" msgid "Shelf cleared" msgstr "" #, python-format msgid "Shelf: %s" msgstr "" #, python-format msgid "Patch: %s" msgstr "" msgid "Key:" msgstr "" msgid "Local sign" msgstr "" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "" msgid "No commit" msgstr "" msgid "Use custom commit message:" msgstr "" msgid "&Sign" msgstr "" #, python-format msgid "Sign - %s" msgstr "" msgid "Signature has been added" msgstr "" msgid "Repository command still running" msgstr "" msgid "Filter:" msgstr "" msgid "Check all files" msgstr "" msgid "Uncheck all files" msgstr "" msgid "Status File List Toolbar" msgstr "" msgid "Remove filter, show root" msgstr "" #, python-format msgid "%s - status (selection filtered)" msgstr "" #, python-format msgid "%s - status" msgstr "" msgid "Check" msgstr "" msgid "Uncheck" msgstr "" msgid "status" msgstr "" msgid "Failed to refresh" msgstr "" msgid "No appropriate files" msgstr "" msgid "No files found for this operation" msgstr "" msgid "Stat" msgstr "" msgid "M" msgstr "" msgid "Filename" msgstr "" msgid "Size (KB)" msgstr "" #, python-format msgid "Checked count: %d" msgstr "" msgid ", resolved merge" msgstr "" msgid ", unresolved merge" msgstr "" #, python-format msgid "%s is modified" msgstr "" msgid "modified" msgstr "" #, python-format msgid "%s is added" msgstr "" msgid "added" msgstr "" #, python-format msgid "%s is removed" msgstr "" msgid "removed" msgstr "" #, python-format msgid "%s is not tracked (unknown)" msgstr "" msgid "unknown" msgstr "" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "" msgid "missing" msgstr "" #, python-format msgid "%s is ignored" msgstr "" msgid "ignored" msgstr "" #, python-format msgid "%s is not modified (clean)" msgstr "" msgid "clean" msgstr "" #, python-format msgid "%s is a dirty subrepo" msgstr "" msgid "subrepo" msgstr "" msgid "Check for incoming changes from selected URL" msgstr "" msgid "Pull incoming changes from selected URL" msgstr "" msgid "Detect outgoing changes to selected URL" msgstr "" msgid "Push outgoing changes to selected URL" msgstr "" msgid "Sync Bookmarks" msgstr "" msgid "Email outgoing changesets for remote repository" msgstr "" msgid "Manage pending perforce changelists" msgstr "" msgid "Unbundle" msgstr "" msgid "Selected Options:" msgstr "" msgid "Path Edit Toolbar" msgstr "" msgid "Security" msgstr "" msgid "Manage HTTPS connection security and user authentication" msgstr "" msgid "Save" msgstr "" msgid "Save current URL under an alias" msgstr "" msgid "Paths in Repository Settings:" msgstr "" msgid "Related Paths:" msgstr "" msgid "branch: " msgstr "" msgid "bookmark: " msgstr "" #, python-format msgid "rev: %d (%s)" msgstr "" msgid "Post Pull: " msgstr "" msgid "&Edit..." msgstr "" msgid "&Remove..." msgstr "" msgid "Repository not local" msgstr "" msgid "A terminal shell cannot be opened for remote" msgstr "" msgid "Confirm path delete" msgstr "" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "" msgid "Select repository" msgstr "" msgid "No host specified" msgstr "" msgid "Please set a valid URL to continue." msgstr "" msgid "No remote repository URL or path set" msgstr "" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

    Please type and save a remote repository path on the " "Sync widget." msgstr "" msgid "Redundant authentication info" msgstr "" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" msgid "sync command already running" msgstr "" #, python-format msgid "Getting incoming changesets from %s..." msgstr "" #, python-format msgid "Found incoming changesets from %s" msgstr "" #, python-format msgid "No incoming changesets from %s" msgstr "" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "" #, python-format msgid "Pulling from %s..." msgstr "" #, python-format msgid "Pull from %s completed" msgstr "" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "" msgid "Merge caused file conflicts" msgstr "" msgid "File conflicts need to be resolved" msgstr "" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "" #, python-format msgid "%d outgoing changesets to %s" msgstr "" #, python-format msgid "No outgoing changesets to %s" msgstr "" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "" msgid "Perforce pending..." msgstr "" #, python-format msgid "%s (submitted)" msgstr "" #, python-format msgid "%s (pending)" msgstr "" msgid "Unable to parse p4pending output" msgstr "" #, python-format msgid "%d pending changelists found" msgstr "" msgid "No pending Perforce changelists" msgstr "" msgid "Aborted p4pending" msgstr "" msgid "Unable to determine pending changesets" msgstr "" msgid "Confirm Push to remote Repository" msgstr "" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" #, python-format msgid "Push to %s aborted" msgstr "" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" #, python-format msgid "Pushing to %s..." msgstr "" #, python-format msgid "Push to %s completed" msgstr "" #, python-format msgid "Push to %s aborted, ret %d" msgstr "" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" msgid "Determining outgoing changesets to email..." msgstr "" msgid "No outgoing changesets" msgstr "" #, python-format msgid "Outgoing aborted, ret %d" msgstr "" msgid "Select bundle file" msgstr "" msgid "Bundle files (*.hg)" msgstr "" msgid "Unable to remove URL" msgstr "" msgid "Post Pull Behavior" msgstr "" msgid "Select post-pull operation for this repository" msgstr "" msgid "None - simply pull changesets" msgstr "" msgid "Update - pull, then try to update" msgstr "" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "" msgid "Rebase - rebase local commits above pulled changes" msgstr "" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "" msgid "Launch settings tool..." msgstr "" msgid "Unable to save post pull operation" msgstr "" msgid "Save Path" msgstr "" msgid "Alias" msgstr "" msgid "URL" msgstr "" msgid "Remove authentication data from URL" msgstr "" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" msgid "Update subrepo paths" msgstr "" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" msgid "Unable to save an URL" msgstr "" msgid "Confirm URL replace" msgstr "" #, python-format msgid "%s already exists, replace URL?" msgstr "" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

    %s

    Replace it with the " "following URL?:

    %s" msgstr "" msgid "Security: " msgstr "" #, python-format msgid "Host: %s" msgstr "" msgid "Secure HTTPS Connection" msgstr "" msgid "Verify with Certificate Authority certificates (best)" msgstr "" msgid "Verify with stored host fingerprint (good)" msgstr "" msgid "No host validation, but still encrypted (bad)" msgstr "" msgid "### host certificate fingerprint ###" msgstr "" msgid "Query" msgstr "" msgid "TLS 1.0" msgstr "" msgid "TLS 1.1" msgstr "" msgid "TLS 1.2" msgstr "" msgid "Minimum Protocol" msgstr "" msgid "User Authentication" msgstr "" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Key" msgstr "" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Chain" msgstr "" msgid "Certificate Query Error" msgstr "" msgid "Select User Certificate Key File" msgstr "" msgid "PEM files (*.pem *.key)" msgstr "" msgid "Select User Certificate Chain File" msgstr "" msgid "PEM files (*.pem *.crt *.cer)" msgstr "" msgid "Unable to save authentication" msgstr "" #, python-format msgid "%s - sync options" msgstr "" msgid "Allow push of a new branch (--new-branch)" msgstr "" msgid "Force push or pull (override safety checks, --force)" msgstr "" msgid "Temporarily disable configured HTTP proxy" msgstr "" msgid "Emit debugging output (--debug)" msgstr "" msgid "Work on patch queue (--mq)" msgstr "" #, python-format msgid "Tag - %s" msgstr "" msgid "Tag:" msgstr "" msgid "Tagged:" msgstr "" msgid "Local tag" msgstr "" msgid "Replace existing tag (-f/--force)" msgstr "" msgid "Use English commit message" msgstr "" msgid "local" msgstr "" msgid "Move" msgstr "" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "" #, python-format msgid "Added tag %s for changeset %s" msgstr "" #, python-format msgid "Tag '%s' has been moved" msgstr "" #, python-format msgid "Tag '%s' has been added" msgstr "" #, python-format msgid "Removed tag %s" msgstr "" #, python-format msgid "Tag '%s' has been removed" msgstr "" msgid "Patch files (*.diff *.patch)" msgstr "" #, python-format msgid "Import - %s" msgstr "" msgid "Browse Directory..." msgstr "" msgid "Import from Clipboard" msgstr "" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "" msgid "Preview:" msgstr "" msgid "Shelf" msgstr "" msgid "Checking working directory status..." msgstr "" msgid "&Import" msgstr "" msgid "Working directory is not clean! View changes..." msgstr "" msgid "Select patches" msgstr "" msgid "Select Directory containing patches" msgstr "" #, python-format msgid "%s patches" msgstr "" #, python-format msgid "%s will be imported to " msgstr "" msgid "Nothing to import" msgstr "" msgid "Strip:" msgstr "" msgid "Discard local changes, no backup (-f/--force)" msgstr "" msgid "No backup (-n/--nobackup)" msgstr "" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "" msgstr[1] "" msgid "Unknown revision!" msgstr "" msgid "Detected uncommitted local changes." msgstr "" msgid "Do you want to keep them or discard them?" msgstr "" msgid "&Keep (--keep)" msgstr "" msgid "&Discard (--force)" msgstr "" msgid "Confirm Strip" msgstr "" #, python-format msgid "Strip - %s" msgstr "" msgid "&Strip" msgstr "" msgid "Topic:" msgstr "" msgid "&Rename" msgstr "" #, python-format msgid "Topic - %s" msgstr "" #, python-format msgid "A topic named \"%s\" already exists" msgstr "" #, python-format msgid "Topic '%s' has been added" msgstr "" #, python-format msgid "Topic '%s' does not exist" msgstr "" #, python-format msgid "Topic '%s' has been removed" msgstr "" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "" msgid "Parent 1:" msgstr "" msgid "Parent 2:" msgstr "" msgid "Pull subrepos from:" msgstr "" msgid "List updated files (--verbose)" msgstr "" msgid "Discard local changes, no backup (-C/--clean)" msgstr "" msgid "Always merge (when possible)" msgstr "" msgid "(same as parent)" msgstr "" msgid "Activate bookmark?" msgstr "" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

    Do " "you want to activate it?
    You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

    Select " "the bookmark that you want to activate and click OK.

    Click " "Cancel if you don't want to activate any of them.

    You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

    " msgstr "" msgid "Deactivate current bookmark?" msgstr "" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" msgid "Discard - discard local changes, no backup" msgstr "" msgid "&Shelve" msgstr "" msgid "Shelve - move local changes to a patch" msgstr "" msgid "Merge - allow to merge with local changes" msgstr "" msgid "Confirm Update" msgstr "" #, python-format msgid "Update - %s" msgstr "" msgid "[non-existant]" msgstr "" msgid "Tool launch failure" msgstr "" #, python-format msgid "%s : %s" msgstr "" msgid "No diff tool found" msgstr "" msgid "No visual diff tools were detected" msgstr "" msgid "[working copy]" msgstr "" msgid "[original]" msgstr "" msgid "Unable to find changeset" msgstr "" msgid "You likely need to refresh this application" msgstr "" msgid "No file changes" msgstr "" msgid "There are no file changes to view" msgstr "" msgid "working changes" msgstr "" #, python-format msgid "changeset %d:%s" msgstr "" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "" msgid "Visual Diffs - " msgstr "" msgid " filtered" msgstr "" msgid "Temporary files are removed when this dialog is closed" msgstr "" msgid "Select Tool:" msgstr "" msgid "Dir diff to p1" msgstr "" msgid "Dir diff to p2" msgstr "" msgid "3-way dir diff" msgstr "" msgid "Directory diff" msgstr "" msgid "Confirm Discard" msgstr "" msgid "Discard outstanding changes to working directory?" msgstr "" msgid "Config files (*.conf *.config *.ini)" msgstr "" msgid "Open hgweb config" msgstr "" msgid "Save hgweb config" msgstr "" msgid "Path:" msgstr "" msgid "Local Path:" msgstr "" msgid "Select Repository" msgstr "" msgid "Add Path to Serve" msgstr "" msgid "Edit Path to Serve" msgstr "" msgid "Local Path" msgstr "" msgid "Webconf" msgstr "" msgid "Config File:" msgstr "" msgid "Open" msgstr "" msgid "New &Workbench" msgstr "" msgid "&New Repository..." msgstr "" msgid "Clon&e Repository..." msgstr "" msgid "&Open Repository..." msgstr "" msgid "&File" msgstr "" msgid "&View" msgstr "" msgid "&Repository" msgstr "" msgid "&Help" msgstr "" msgid "&Dock Toolbar" msgstr "" msgid "&Task Toolbar" msgstr "" msgid "&Custom Toolbar" msgstr "" msgid "S&ync Toolbar" msgstr "" msgid "&Close Repository" msgstr "" msgid "Sh&ow Repository Registry" msgstr "" msgid "Show &Patch Queue" msgstr "" msgid "Show Conso&le" msgstr "" msgid "Place Console in Doc&k Area" msgstr "" msgid "R&epository Registry Options" msgstr "" msgid "Save Open Repositories on E&xit" msgstr "" msgid "Sa&ve Current Sync Paths on Exit" msgstr "" msgid "Show Tas&k Tab" msgstr "" msgid "&Commit" msgstr "" msgid "&Patch Branch" msgstr "" msgid "Revision &Details" msgstr "" msgid "&Search" msgstr "" msgid "S&ynchronize" msgstr "" msgid "Refresh current repository" msgstr "" msgid "Refresh &Task Tab" msgstr "" msgid "Refresh only the current task tab" msgstr "" msgid "Load &All Revisions" msgstr "" msgid "Load all revisions into graph" msgstr "" msgid "Go to current revision" msgstr "" msgid "&Goto Revision..." msgstr "" msgid "Go to a specific revision" msgstr "" msgid "Filter graph with revision sets or branches" msgstr "" msgid "&Workbench Toolbars" msgstr "" msgid "&Lock File..." msgstr "" msgid "Lock or unlock files" msgstr "" msgid "Update working directory or switch revisions" msgstr "" msgid "&Shelve..." msgstr "" msgid "&Import Patches..." msgstr "" msgid "U&nbundle..." msgstr "" msgid "&Merge..." msgstr "" msgid "Merge with the other head of the current branch" msgstr "" msgid "&Resolve..." msgstr "" msgid "R&ollback/Undo..." msgstr "" msgid "&Purge..." msgstr "" msgid "&Bisect..." msgstr "" msgid "&Verify" msgstr "" msgid "Re&cover" msgstr "" msgid "&Web Server" msgstr "" msgid "E&xplorer Help" msgstr "" msgid "&Readme" msgstr "" msgid "About &Qt" msgstr "" msgid "&About TortoiseHg" msgstr "" msgid "&Incoming" msgstr "" msgid "&Pull" msgstr "" msgid "&Outgoing" msgstr "" msgid "P&ush" msgstr "" msgid "&Sync Bookmarks..." msgstr "" #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" msgid "Check for incoming changes" msgstr "" msgid "Pull incoming changes" msgstr "" msgid "Detect outgoing changes" msgstr "" msgid "Push outgoing changes" msgstr "" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" #, python-format msgid "Execute custom tool '%s'" msgstr "" msgid "Custom Toolbar &Settings" msgstr "" msgid "TortoiseHg Workbench" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "" msgid "Goto revision" msgstr "" msgid "Enter revision identifier" msgstr "" msgid "Select repository directory to open" msgstr "" msgid "README not configured" msgstr "" msgid "" "A README file is not configured for the current repository.

    To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" msgid "Issue Tracker Plugin Error" msgstr "" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "" msgid "This error will not be shown again until you restart the workbench" msgstr "" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "" msgid "Error executing \"commit finished\" trigger" msgstr "" msgid "Cannot open Plugin Options dialog" msgstr "" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "" msgid "[--insecure] [SOURCE]" msgstr "" #, python-format msgid "unsupported URL: %s" msgstr "" #, python-format msgid "%s certificate error: no certificate received" msgstr "" msgid "move after the specified patch" msgstr "" msgid "[--after PATCH] PATCH..." msgstr "" msgid "unknown patch to move specified" msgstr "" msgid "invalid patch position specified" msgstr "" msgid "cannot move applied patches" msgstr "" #, python-format msgid "patch %s not in series" msgstr "" msgid "cannot move into applied patches" msgstr "" msgid "abort: " msgstr "" msgid "hint: " msgstr "" #, python-format msgid "HTTP Error: %d (%s)" msgstr "" #, python-format msgid "URLError: %s" msgstr "" msgid "SSL: Server certificate verify failed" msgstr "" #, python-format msgid "SSL: unknown error %s:%s" msgstr "" #, python-format msgid "SSL error: %s" msgstr "" msgid "hgsubversion packaged with thg" msgstr "" msgid "hggit packaged with thg" msgstr "" msgid "inotify is not supported on this platform" msgstr "" msgid "eol is incompatible with win32text" msgstr "" msgid "win32text is incompatible with eol" msgstr "" msgid "hgsubversion is incompatible with perfarce" msgstr "" msgid "perfarce is incompatible with hgsubversion" msgstr "" msgid "Workbench custom toolbar" msgstr "" msgid "Revision details context menu" msgstr "" msgid "Pair selection context menu" msgstr "" msgid "Multiple selection context menu" msgstr "" msgid "Commit context menu" msgstr "" msgid "File context menu (on manifest and revision details)" msgstr "" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" msgid "in the future" msgstr "" msgid "now" msgstr "" #, python-format msgid "command parse error: %s" msgstr "" #, python-format msgid "no matches found: %s" msgstr "" msgid "Commit..." msgstr "" msgid "Commit changes in repository" msgstr "" msgid "Create Repository Here" msgstr "" msgid "Create a new repository" msgstr "" msgid "Clone..." msgstr "" msgid "Create clone here from source" msgstr "" msgid "File Status" msgstr "" msgid "Repository status & changes" msgstr "" msgid "Add Files..." msgstr "" msgid "Add files to version control" msgstr "" msgid "Revert Files..." msgstr "" msgid "Revert file changes" msgstr "" msgid "Forget Files..." msgstr "" msgid "Remove files from version control" msgstr "" msgid "Remove Files..." msgstr "" msgid "Rename File" msgstr "" msgid "Rename file or directory" msgstr "" msgid "View change history in repository" msgstr "" msgid "File History" msgstr "" msgid "View change history of selected files" msgstr "" msgid "Shelve Changes" msgstr "" msgid "Move changes between working dir and patch" msgstr "" msgid "Synchronize" msgstr "" msgid "Synchronize with remote repository" msgstr "" msgid "Start web server for this repository" msgstr "" msgid "Update..." msgstr "" msgid "Update working directory" msgstr "" msgid "Update Icons" msgstr "" msgid "Update icons for this repository" msgstr "" msgid "Global Settings" msgstr "" msgid "Configure user wide settings" msgstr "" msgid "Repository Settings" msgstr "" msgid "Configure repository settings" msgstr "" msgid "Explorer Extension Settings" msgstr "" msgid "Configure Explorer extension" msgstr "" msgid "About TortoiseHg" msgstr "" msgid "Show About Dialog" msgstr "" msgid "Diff to parent" msgstr "" msgid "View changes using GUI diff tool" msgstr "" msgid "Edit Ignore Filter" msgstr "" msgid "Edit repository ignore filter" msgstr "" msgid "Guess Renames" msgstr "" msgid "Detect renames and copies" msgstr "" msgid "Search History" msgstr "" msgid "Search file revisions for patterns" msgstr "" msgid "DnD Synchronize" msgstr "" msgid "Synchronize with dragged repository" msgstr "" #, python-format msgid "unrecognized response: %s" msgstr "" msgid "password: " msgstr "" #, python-format msgid "repository %s not found" msgstr "" msgid "win32ill: cannot create window for messages" msgstr "" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "" msgid "win32ill: interrupted while stopping message loop\n" msgstr "" #~ msgid "Several icons are courtesy of the TortoiseSVN project" #~ msgstr "عدد من الإيقونات مقتبسة من تورتويز إس في إن" #~ msgid "A new version of TortoiseHg is ready for download!" #~ msgstr "هناك نسخة جديدة من تورتويز إتش جي جاهزة للتحميل" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/bg.po0000644000000000000000000043463314440352353016233 0ustar00rootroot# Bulgarian translation for tortoisehg # Copyright (c) 2016 Rosetta Contributors and Canonical Ltd 2016 # This file is distributed under the same license as the tortoisehg package. # FIRST AUTHOR , 2016. # msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2016-02-14 04:55+0000\n" "Last-Translator: Georgi Manchev \n" "Language-Team: Bulgarian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2019-07-17 05:41+0000\n" "X-Generator: Launchpad (build 19009)\n" msgid "TortoiseHg Overlay Icon Server" msgstr "" msgid "Exit" msgstr "Изход" msgid "About" msgstr "За програмата" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "" msgid "You can visit our site here" msgstr "" msgid "&License" msgstr "&Лиценз" #, python-format msgid "version %s" msgstr "версия %s" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "Нова TortoiseHg (%s) версия е налична за изтегляне." msgid "License" msgstr "" msgid "= Working Directory Parent =" msgstr "" msgid "Directory of files" msgstr "" msgid "Tar archives" msgstr "" msgid "Uncompressed tar archive" msgstr "" msgid "Bzip2 tar archives" msgstr "" msgid "Tar archive compressed using bzip2" msgstr "" msgid "Gzip tar archives" msgstr "" msgid "Tar archive compressed using gzip" msgstr "" msgid "Zip archives" msgstr "" msgid "Uncompressed zip archive" msgstr "" msgid "Zip archive compressed using deflate" msgstr "" msgid "Revision:" msgstr "Ревизия:" msgid "All files in this revision" msgstr "" msgid "Only files modified/created in this revision" msgstr "" msgid "Only files modified/created since:" msgstr "" msgid "Archive Content:" msgstr "" msgid "Recurse into subrepositories" msgstr "" msgid "Browse..." msgstr "" msgid "Destination path:" msgstr "" msgid "Archive types:" msgstr "" msgid "Hg command:" msgstr "Hg команда:" msgid "Select Destination Folder" msgstr "" msgid "Select Destination File" msgstr "" msgid "All files (*)" msgstr "Всички файлове (*)" msgid "Duplicate Name" msgstr "" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "" msgid "Confirm Overwrite" msgstr "Потвърди презаписа" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" "Директорията \"%s\" не е празна!\n" "Искате ли да я презапишете?" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" "Фаилът \"%s\" вече съществува!\n" "Искате ли да го презапишете?" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "" #, python-format msgid "Archive - %s" msgstr "Архив - %s" msgid "&Archive" msgstr "" msgid "Backout requires a parent revision" msgstr "" msgid "Cannot backout change on a different branch" msgstr "" #, python-format msgid "Backout - %s" msgstr "" msgid "Prepare to backout" msgstr "" msgid "Verify backout revision and ensure your working directory is clean." msgstr "" msgid "Backing out a parent revision is a single step operation" msgstr "" msgid "Backout revision" msgstr "" msgid "Not a head, backout will create a new head!" msgstr "" msgid "Current local revision" msgstr "" msgid "Working directory status" msgstr "Статус на работната директория" msgid "Checking..." msgstr "" msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Automatically resolve merge conflicts where possible" msgstr "" msgid "Uncommitted local changes are detected" msgstr "" msgid "Clean" msgstr "" msgid "Backing out, then merging..." msgstr "" msgid "All conflicting files will be marked unresolved." msgstr "" msgid "Automatically advance to next page when backout and merge are complete." msgstr "" #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" msgid "No merge conflicts, ready to commit" msgstr "" msgid "Commit backout and merge results" msgstr "" msgid "Parents" msgstr "" msgid "Working Directory" msgstr "" msgid "Working Directory (merged)" msgstr "" msgid "Commit message" msgstr "" msgid "Skip final confirmation page, close after commit." msgstr "" msgid "Backed out changeset: " msgstr "" msgid "Confirm Discard Message" msgstr "" msgid "Discard current backout message?" msgstr "" msgid "Use English backout message" msgstr "" msgid "Backing out and committing..." msgstr "" msgid "Please wait while making backout." msgstr "" msgid "Committing..." msgstr "" msgid "Please wait while committing merged files." msgstr "" msgid "Finished" msgstr "" msgid "Backout changeset" msgstr "" #, python-format msgid "Bisect - %s" msgstr "" msgid "Accept" msgstr "" msgid "Known good revision:" msgstr "Известни добри ревизии:" msgid "Known bad revision:" msgstr "Известни лоши ревизии:" msgid "Discard local changes (revert --all)" msgstr "Отхвърляне на локалните промени (revert --all)" msgid "Revision is &Good" msgstr "Ревизията е &Добра" msgid "Revision is &Bad" msgstr "Ревизията е &Лоша" msgid "&Skip this Revision" msgstr "&Пропусни тази ревизия" msgid "Close" msgstr "" msgid "Error encountered." msgstr "" msgid "Culprit found." msgstr "" msgid "Revision" msgstr "Ревизия" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "Тествай тази ревизия и докладвай. (добра/лоша/пропусни)" #, python-format msgid "%s (hint: %s)" msgstr "" msgid "Bookmark:" msgstr "" msgid "New Name:" msgstr "" msgid "Activate:" msgstr "" msgid "&Add" msgstr "" msgid "Re&name" msgstr "" msgid "&Remove" msgstr "" msgid "&Move" msgstr "" #, python-format msgid "Bookmark - %s" msgstr "" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "" #, python-format msgid "Bookmark '%s' has been added" msgstr "" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "" #, python-format msgid "Bookmark '%s' has been moved" msgstr "" #, python-format msgid "Bookmark '%s' does not exist" msgstr "" #, python-format msgid "Bookmark '%s' has been removed" msgstr "" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "" msgid "TortoiseHg Bookmark Sync" msgstr "" msgid "Outgoing Bookmarks" msgstr "" msgid "&Push Bookmark" msgstr "" msgid "&Remove Bookmark" msgstr "" msgid "Incoming Bookmarks" msgstr "" msgid "P&ull Bookmark" msgstr "" msgid "R&emove Bookmark" msgstr "" #, python-format msgid "Pushed local bookmark: %s" msgstr "" #, python-format msgid "Pulled remote bookmark: %s" msgstr "" #, python-format msgid "Removed remote bookmark: %s" msgstr "" #, python-format msgid "Removed local bookmark: %s" msgstr "" #, python-format msgid "%s - branch operation" msgstr "" msgid "Select branch of merge commit" msgstr "" msgid "Changes take effect on next commit" msgstr "" msgid "No branch changes" msgstr "" msgid "Open a new named branch" msgstr "" msgid "Close current branch" msgstr "" #, python-format msgid "Please report this bug to our bug tracker" msgstr "" msgid "Checking for updates..." msgstr "Проверка за обновления..." msgid "Copy" msgstr "" msgid "Quit" msgstr "" msgid "TortoiseHg Bug Report" msgstr "" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "" msgid "Your TortoiseHg is up to date." msgstr "" msgid "Save error report to" msgstr "" msgid "Text files (*.txt)" msgstr "" msgid "Error writing file" msgstr "" msgid "TortoiseHg Error" msgstr "" msgid "" "If you still have trouble, please file a bug report." msgstr "" msgid "Visual Diff" msgstr "" msgid "View file changes in external diff tool" msgstr "" msgid "Edit Local" msgstr "" msgid "Edit current file in working copy" msgstr "" msgid "Revert to Revision" msgstr "" msgid "Revert file(s) to contents at this revision" msgstr "" msgid "Patch failed to apply" msgstr "" msgid "Manually resolve rejected chunks?" msgstr "" msgid "Edit patched file and rejects?" msgstr "" msgid "No deletable chunks" msgstr "" msgid "Completely remove file from patch?" msgstr "" msgid "Revert all file changes?" msgstr "" msgid "No chunks remain" msgstr "" msgid "file has been deleted, refresh" msgstr "" msgid "file has been modified, refresh" msgstr "" msgid "Unable to merge chunks" msgstr "" msgid "Add or remove patches must be merged in the working directory" msgstr "" msgid "Unable to remove" msgstr "Не може да бъде премахнат" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" "Фаилът %s не може да бъде премахнат,\n" "permission denied" msgctxt "files" msgid "All" msgstr "" msgctxt "files" msgid "None" msgstr "" msgid "Toggle display of text search bar" msgstr "" msgid "Diff Toolbar" msgstr "" #, python-format msgid "Chunks selected: %d / %d" msgstr "" msgid "Please wait while the file is opened ..." msgstr "Моля, изчакайте докато файлът се отвори ..." msgid "Source:" msgstr "" msgid "Destination:" msgstr "" msgid "Options" msgstr "Опций" msgid "Clone to revision:" msgstr "" msgid "A revision identifier, bookmark, tag or branch name" msgstr "" msgid "Do not update the new working directory" msgstr "" msgid "Use pull protocol to copy metadata" msgstr "" msgid "Clone with minimal processing" msgstr "" msgid "Include patch queue" msgstr "" msgid "Use proxy server" msgstr "Използвай прокси сървър" msgid "Do not verify host certificate" msgstr "" msgid "Remote command:" msgstr "" msgid "Use largefiles" msgstr "" msgid "Start revision:" msgstr "Начална ревизия:" msgid "Select source repository" msgstr "" msgid "Select destination repository" msgstr "" msgid "Select patch folder" msgstr "" #, python-format msgid "Clone - %s" msgstr "Клонирай - %s" msgid "&Clone" msgstr "&Клонирай" msgid "failed to start command\n" msgstr "" msgid "error while running command\n" msgstr "грешка при изпълнение на команда\n" #, python-format msgid "process exited unexpectedly with code %d" msgstr "" #, python-format msgid "failed to encode command: %s" msgstr "" #, python-format msgid "timed out while reading: %r..." msgstr "" msgid "timed out waiting for message" msgstr "" #, python-format msgid "unexpected response on required channel %r" msgstr "" #, python-format msgid "invalid \"hello\" message: %r" msgstr "" msgid "no \"runcommand\" capability" msgstr "" #, python-format msgid "corrupted command result: %r" msgstr "" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "" msgid "Terminated by user" msgstr "Прекъснат от потребителя" #, python-format msgid "[command terminated by user %s]" msgstr "[командата е прекратена от потребителя %s]" #, python-format msgid "[command interrupted %s]" msgstr "[прекъсната команда %s]" #, python-format msgid "[command returned code %d %%s]" msgstr "" #, python-format msgid "[command completed successfully %s]" msgstr "" msgid "Running..." msgstr "" msgid "Failed!" msgstr "" msgid "Clea&r Log" msgstr "" msgid "TortoiseHg Prompt" msgstr "" msgid "Show Detail" msgstr "" msgid "Hide Detail" msgstr "" msgid "Confirm Exit" msgstr "" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" msgid "&Run" msgstr "" msgid "TortoiseHg Command Dialog" msgstr "" msgid "Command Error" msgstr "" #, python-format msgid "[Code: %d]" msgstr "[Код: %d]" msgid "Merge" msgstr "Обедини" #, python-format msgid "Merge with %s" msgstr "Обедини с %s" msgid "Patch Name Required" msgstr "" msgid "You must enter a patch name" msgstr "" msgctxt "start progress" msgid "Commit" msgstr "" msgctxt "start progress" msgid "MQ Action" msgstr "" msgctxt "start progress" msgid "Rollback" msgstr "" msgid "Commit Dialog Toolbar" msgstr "" msgid "Branch: " msgstr "" msgid "Copy message" msgstr "" msgid "Copy one of the recent commit messages" msgstr "" msgid "Show Issues" msgstr "" msgid "Please wait..." msgstr "" #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "" msgid "Issue Tracker" msgstr "" msgid "Show Issues..." msgstr "" msgid "Stop" msgstr "" msgid "### patch name ###" msgstr "" msgid "Commit changes" msgstr "" msgid "Commit" msgstr "" msgid "Amend current revision" msgstr "" msgid "Amend" msgstr "" msgid "Create a new patch" msgstr "" msgid "QNew" msgstr "" msgid "Refresh current patch" msgstr "" msgid "QRefresh" msgstr "" msgid "Confirm Branch Change" msgstr "" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "" msgid "Restart &Branch" msgstr "" msgid "&Commit to current branch" msgstr "" msgid "Cancel" msgstr "" msgid "Confirm New Branch" msgstr "" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "" msgid "Create &Branch" msgstr "" msgid "Close Branch: " msgstr "" msgid "New Branch: " msgstr "" #, python-format msgid "Selected Options: %s" msgstr "" msgid "Parent:" msgstr "" msgid "Patch name:" msgstr "" #, python-format msgid "Close %s branch" msgstr "" #, python-format msgid "Rollback commit to revision %d" msgstr "" msgid "Confirm Undo" msgstr "" msgid "Discard current commit message?" msgstr "" msgid "Message Translation Failure" msgstr "" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" msgid "&Replace" msgstr "" msgid "Nothing Committed" msgstr "" msgid "Please enter commit message" msgstr "" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" msgid "No files checked" msgstr "" msgid "No modified files checkmarked for commit" msgstr "" msgid "Confirm Add" msgstr "" msgid "Add selected untracked files?" msgstr "" msgid "Confirm Remove" msgstr "" msgid "Remove selected deleted files?" msgstr "" msgid "Nothing changed." msgstr "" msgctxt "window title" msgid "Commit" msgstr "" #, python-format msgid "%s - commit options" msgstr "" msgid "Set username:" msgstr "" msgid "Save in Repo" msgstr "" msgid "Save Global" msgstr "" msgid "Set Date:" msgstr "" msgid "Update" msgstr "" msgid "Push After Commit:" msgstr "" msgid "Auto Includes:" msgstr "" msgid "Recurse into subrepositories (--subrepos)" msgstr "" msgid "Unable to save username" msgstr "" msgid "Iniparse must be installed." msgstr "" msgid "Unable to write configuration file" msgstr "" msgid "Unable to save after commit push" msgstr "" msgid "Unable to save auto include list" msgstr "" msgid "Unable to save recurse in subrepos." msgstr "" msgid "Invalid date format" msgstr "" msgid "No username configured" msgstr "" #, python-format msgid "%s - commit" msgstr "" msgid "TortoiseHg Commit" msgstr "" msgid "Are you sure that you want to cancel the commit operation?" msgstr "" msgid "Compress changesets up to and including" msgstr "" msgid "Onto destination" msgstr "" msgid "Compress" msgstr "" #, python-format msgid "Compress - %s" msgstr "" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the compress" msgstr "" msgid "Changes have been moved, you must now commit" msgstr "" msgctxt "action button" msgid "Commit" msgstr "" msgid "Compress is complete, old history untouched" msgstr "" msgid "must be specified repository" msgstr "" msgid "must be specified 'type' in style" msgstr "" msgid "Git Commit:" msgstr "" msgid "Summary:" msgstr "" msgid "User:" msgstr "" msgid "Date:" msgstr "" msgid "Age:" msgstr "" msgid "Branch:" msgstr "" msgid "Close:" msgstr "" msgid "Tags:" msgstr "" msgid "Graft:" msgstr "" msgid "Transplant:" msgstr "" msgid "Obsolete state:" msgstr "" msgid "Perforce:" msgstr "" msgid "Subversion:" msgstr "" msgid "Converted From:" msgstr "" msgid "Original Parent:" msgstr "" msgid "No items to display" msgstr "" msgid "Use compact view" msgstr "" msgid "Patch:" msgstr "" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "" msgid "Select a GUI location to edit:" msgstr "" msgid "Select the toolbar or menu to change" msgstr "" msgid "Tools shown on selected location" msgstr "" msgid "Delete from list" msgstr "" msgid "Add to list" msgstr "" msgid "Add separator" msgstr "" msgid "List of all tools" msgstr "" msgid "New Tool ..." msgstr "" msgid "Edit Tool ..." msgstr "" msgid "Delete Tool" msgstr "" msgid "Type" msgstr "" msgid "Name" msgstr "" msgid "Command" msgstr "" msgid "New hook" msgstr "" msgid "Edit hook" msgstr "" msgid "Delete hook" msgstr "" msgid "Replace existing hook?" msgstr "" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" msgid "OK" msgstr "" msgid "Missing information" msgstr "" msgid "All items" msgstr "" msgid "Working directory" msgstr "" msgid "All revisions" msgstr "" msgid "All contexts" msgstr "" msgid "Fixed revisions" msgstr "" msgid "Applied patches" msgstr "" msgid "Applied patches or qparent" msgstr "" msgid "" msgstr "" msgid "Configure Custom Tool" msgstr "" msgid "Tool name" msgstr "" msgid "The tool name. It cannot contain spaces." msgstr "" #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" msgid "Tool label" msgstr "" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" msgid "Tooltip" msgstr "" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" msgid "Icon" msgstr "" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" msgid "On repowidget, show for" msgstr "" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" msgid "Show Output Log" msgstr "" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" msgid "You must set a tool name." msgstr "" msgid "The tool name cannot have any spaces in it." msgstr "" msgid "You must set a command to run." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" msgid "Configure Hook" msgstr "" msgid "Hook type" msgstr "" msgid "Select when your command will be run" msgstr "" msgid "The hook name. It cannot contain spaces." msgstr "" msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" msgid "You must set a valid hook type." msgstr "" msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "" msgid "Console" msgstr "" msgid "File &History / Annotate" msgstr "" msgid "Show the history of the selected file" msgstr "" msgid "Co&mpare File Revisions" msgstr "" msgid "Compare revisions of the selected file" msgstr "" msgid "Filter Histor&y" msgstr "" msgid "Query about changesets affecting the selected files" msgstr "" msgid "Diff &Changeset to Parent" msgstr "" msgid "Diff Changeset to Loc&al" msgstr "" msgid "&Diff to Parent" msgstr "" msgid "Diff to &Local" msgstr "" msgid "View changes to current in external diff tool" msgstr "" msgid "&View at Revision" msgstr "" msgid "View file as it appeared at this revision" msgstr "" msgid "&Save at Revision..." msgstr "" msgid "Save file as it appeared at this revision" msgstr "" msgid "Save file to" msgstr "" msgid "&Edit Local" msgstr "" msgid "&Open Local" msgstr "" msgid "E&xplore Local" msgstr "" msgid "Open parent folder of current file in the system file manager" msgstr "" msgid "&Copy Patch" msgstr "" msgid "Copy &Path" msgstr "" msgid "Copy full path of file(s) to the clipboard" msgstr "" msgid "&Revert to Revision..." msgstr "" msgid "Open S&ubrepository" msgstr "" msgid "Open the selected subrepository" msgstr "" msgid "E&xplore Folder" msgstr "" msgid "Open the selected folder in the system file manager" msgstr "" msgid "Open &Terminal" msgstr "" msgid "Open a shell terminal in the selected folder" msgstr "" msgid "Custom Tools" msgstr "" msgid "Diff &Local" msgstr "" msgid "&View Missing" msgstr "" msgid "View O&ther" msgstr "" msgid "Add &Largefiles..." msgstr "" msgid "&Forget" msgstr "" msgid "&Delete Unversioned..." msgstr "" msgid "Confirm Delete Unversioned" msgstr "" msgid "Delete the following unversioned files?" msgstr "" msgid "&Delete" msgstr "" msgid "Re&move Versioned" msgstr "" msgid "&Revert..." msgstr "" msgid "Uncommited merge - please select a parent revision" msgstr "" msgid "Revert files to local or other parent?" msgstr "" msgid "&Local" msgstr "" msgid "&Other" msgstr "" msgid "Confirm Revert" msgstr "" msgid "Revert local file changes?" msgstr "" msgid "&Revert with backup" msgstr "" msgid "&Discard changes" msgstr "" msgid "Revert the following files?" msgstr "" msgid "&Revert" msgstr "" msgid "&Copy..." msgstr "" msgid "Re&name..." msgstr "" msgid "&Ignore..." msgstr "" msgid "Edit Re&jects" msgstr "" msgid "Manually resolve rejected patch chunks" msgstr "" msgid "De&tect Renames..." msgstr "" msgid "&Mark Resolved" msgstr "" msgid "&Mark Unresolved" msgstr "" msgid "Restart Mer&ge" msgstr "" msgid "Was renamed from" msgstr "" msgid "Restart Merge &with" msgstr "" msgid "Display the file anyway" msgstr "" msgid "Diff not displayed: " msgstr "" #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid "File is binary" msgstr "" msgid "File may be binary (maximum line length exceeded)" msgstr "" msgid "File or diffs not displayed: " msgstr "" msgid " (was added)" msgstr "" #, python-format msgid " (copied from %s)" msgstr "" #, python-format msgid " (renamed from %s)" msgstr "" msgid " (is a symlink)" msgstr "" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid " (was deleted)" msgstr "" msgid " (was added, now missing)" msgstr "" msgid " (is unversioned)" msgstr "" msgid "exec mode has been set" msgstr "" msgid "exec mode has been unset" msgstr "" #, python-format msgid "changeset: %s" msgstr "" msgid "Initial revision" msgstr "" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" msgid "Subrepo created and set to initial revision." msgstr "" msgid "Subrepo initialized to revision:" msgstr "" msgid "Subrepo removed from repository." msgstr "" msgid "Previously the subrepository was at the following revision:" msgstr "" msgid "Subrepo was not changed." msgstr "" msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "" msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "" msgid "Subrepo state is:" msgstr "" msgid "Revision has changed to:" msgstr "" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "" msgid "From:" msgstr "" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" msgid "Subrepository not found in the working directory." msgstr "" msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" msgid "Not a Mercurial subrepo, not previewable" msgstr "" #, python-format msgid "Error previewing subrepo: %s" msgstr "" msgid "Subrepo may be damaged or inaccessible." msgstr "" msgid "The subrepository is dirty." msgstr "" msgid "File Status:" msgstr "" msgid "(is a changed sub-repository)" msgstr "" msgid "(is an unchanged sub-repository)" msgstr "" msgid "(is a dirty sub-repository)" msgstr "" msgid "(is a new sub-repository)" msgstr "" msgid "(is a removed sub-repository)" msgstr "" msgid "(is a changed and dirty sub-repository)" msgstr "" msgid "(is a new and dirty sub-repository)" msgstr "" msgid "open..." msgstr "" #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "" msgid "File History Log Columns" msgstr "" msgid "Back" msgstr "" msgid "Forward" msgstr "" msgid "Diff Selected &Changesets" msgstr "" msgid "&Diff Selected File Revisions" msgstr "" msgid "Show Revision &Details" msgstr "" msgid "Too many rows selected for menu" msgstr "" msgid "File Differences Log Columns" msgstr "" msgid "Next diff" msgstr "" msgid "Previous diff" msgstr "" msgid "Unicode" msgstr "" msgid "Western Europe" msgstr "" msgid "Unified Chinese" msgstr "" msgid "Traditional Chinese" msgstr "" msgid "Korean" msgstr "" msgid "Japanese" msgstr "" msgid "Thai" msgstr "" msgid "Central and Eastern Europe" msgstr "" msgid "Cyrillic" msgstr "" msgid "Russian" msgstr "" msgid "Ukrainian" msgstr "" msgid "Greek" msgstr "" msgid "Turkish" msgstr "" msgid "Arabic" msgstr "" msgid "Hebrew" msgstr "" msgid "Vietnamese" msgstr "" msgid "Baltic" msgstr "" msgid "Southern Europe" msgstr "" msgid "Nordic" msgstr "" msgid "Celtic" msgstr "" msgid "South-Eastern Europe" msgstr "" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "" msgid "View change as unified diff output" msgstr "" msgid "View change in context of file" msgstr "" msgid "Annotate with revision numbers" msgstr "" msgid "Next Diff" msgstr "" msgid "Previous Diff" msgstr "" msgid "Open shelve tool" msgstr "" msgid "&Auto Detect" msgstr "" msgid "Show changes from first parent" msgstr "" msgid "Show changes from second parent" msgstr "" msgid "E&ncoding" msgstr "" msgid "&Search in Current File" msgstr "" msgid "Search in All &History" msgstr "" msgid "Go to Line" msgstr "" #, python-format msgid "Enter line number (1 - %d)" msgstr "" msgid "Show &Author" msgstr "" msgid "Show &Date" msgstr "" msgid "Show &Revision" msgstr "" msgid "Annotate Op&tions" msgstr "" msgid "Search Selected Text" msgstr "" msgid "In Current &File" msgstr "" msgid "In &Current Revision" msgstr "" msgid "In &Original Revision" msgstr "" msgid "In All &History" msgstr "" msgid "Go to" msgstr "" msgid "View File at" msgstr "" msgid "Diff File to" msgstr "" msgid "&Originating Revision" msgstr "" msgid "&Parent Revision" msgstr "" #, python-format msgid "&Parent Revision (%d)" msgstr "" msgid "&Mark Excluded Changes" msgstr "" msgid "(excluded from the next commit)" msgstr "" msgid "Interrupted graft operation found" msgstr "" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" msgid "Continue or abort interrupted graft operation?" msgstr "" msgid "To graft destination" msgstr "" msgid "Use my user name instead of graft committer user name" msgstr "" msgid "Use current date" msgstr "" msgid "Append graft info to log message" msgstr "" msgid "Graft" msgstr "" msgid "Abort" msgstr "" #, python-format msgid "Graft - %s" msgstr "" msgid "Graft changeset" msgstr "" #, python-format msgid "Graft changeset #%d of %d" msgstr "" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" msgid "You may continue or start the graft" msgstr "" msgid "Graft is complete" msgstr "" msgid "Graft failed" msgstr "" msgid "Graft aborted" msgstr "" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" msgid "You may continue the graft" msgstr "" msgid "Exiting with an unfinished graft is not recommended." msgstr "" msgid "Consider aborting the graft first." msgstr "" msgid "&Exit" msgstr "" msgid "### regular expression search pattern ###" msgstr "" msgid "Regexp:" msgstr "" msgid "Ignore case" msgstr "" msgid "Search" msgstr "" msgid "Working Copy" msgstr "" msgid "All History" msgstr "" msgid "Report only the first match per file" msgstr "" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "" msgid "Includes:" msgstr "" msgid "Excludes:" msgstr "" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" #, python-format msgid "\"%s\" removed from search history" msgstr "" #, python-format msgid "\"%s\" removed from path history" msgstr "" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "" #, python-format msgid "grep: %s\n" msgstr "" #, python-format msgid "%d matches found" msgstr "" msgid "No matches found" msgstr "" msgid "Searching" msgstr "" msgid "history" msgstr "" msgid "Interrupted" msgstr "" msgid "files" msgstr "" #, python-format msgid "Skipping %s, unable to read" msgstr "" msgid "Vi&ew File" msgstr "" msgid "&View Changeset" msgstr "" msgid "Annotate &File" msgstr "" msgid "File" msgstr "" msgid "Line" msgstr "" msgid "Rev" msgstr "" msgid "User" msgstr "" msgid "Match Text" msgstr "" msgid "TortoiseHg Search" msgstr "" #, python-format msgid "Detect Copies/Renames in %s" msgstr "" msgid "Unrevisioned Files" msgstr "" msgid "Refresh file list" msgstr "" #, python-format msgid "Min Similarity: %d%%" msgstr "" msgid "Only consider deleted files" msgstr "" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "" msgid "Find Renames" msgstr "" msgid "Find copy and/or rename sources" msgstr "" msgid "Candidate Matches" msgstr "" msgid "Accept All Matches" msgstr "" msgid "Accept Selected Matches" msgstr "" msgid "Differences from Source to Dest" msgstr "" msgid "Search already in progress" msgstr "" msgid "Cannot start a new search" msgstr "" msgid "No files to find" msgstr "" msgid "There are no files that may have been renamed" msgstr "" msgid "Multiple sources chosen" msgstr "" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" #. i18n: percent format #, python-format msgid "%d%%" msgstr "" msgid "Source" msgstr "" msgid "Dest" msgstr "" msgid "% Match" msgstr "" msgid "Sending Email" msgstr "" msgid "Email" msgstr "" msgid "To:" msgstr "" msgid "Cc:" msgstr "" msgid "In-Reply-To:" msgstr "" msgid "Message identifier to reply to, for threading" msgstr "" msgid "Flag:" msgstr "" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" msgid "Send changesets as Hg patches" msgstr "" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" msgid "Use extended (git) patch format" msgstr "" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" msgid "Plain, do not prepend Hg header" msgstr "" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" msgid "Send single binary bundle, not patches" msgstr "" msgid "send patches as part of the email body" msgstr "" msgid "body" msgstr "" msgid "send patches as attachments" msgstr "" msgid "attach" msgstr "" msgid "send patches as inline attachments" msgstr "" msgid "inline" msgstr "" msgid "add diffstat output to messages" msgstr "" msgid "diffstat" msgstr "" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" msgid "Write patch series (bundle) description" msgstr "" msgid "Subject:" msgstr "" msgid "Changesets" msgstr "" msgid "Select &All" msgstr "" msgid "Select &None" msgstr "" msgid "Edit" msgstr "" msgid "Preview" msgstr "" msgid "&Settings" msgstr "" msgid "Send &Email" msgstr "" msgid "&Close" msgstr "" #, python-format msgid "Ignore filter - %s" msgstr "" msgid "Glob" msgstr "" msgid "Regexp" msgstr "" msgid "Add" msgstr "" msgid "Edit File" msgstr "" msgid "Ignore Filter" msgstr "" msgid "Untracked Files" msgstr "" msgid "Backspace or Del to remove row(s)" msgstr "" msgid "Add ignore filter..." msgstr "" msgid "selected files" msgstr "" msgid "Ignore " msgstr "" msgid "Invalid glob expression" msgstr "" msgid "Invalid regexp expression" msgstr "" msgid "Unable to read repository status" msgstr "" msgid "New file created" msgstr "" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" msgid "Unable to write .hgignore file" msgstr "" msgid "Copy working directory files from skeleton" msgstr "" msgid "Create special files (.hgignore, ...)" msgstr "" msgid "Make repo compatible with Mercurial <1.7" msgstr "" msgid "New Repository" msgstr "" msgid "&Create" msgstr "" msgid "Unable to create a config file" msgstr "" msgid "Insufficient access rights." msgstr "" msgid "Show Log" msgstr "" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" msgid "Add as &Largefiles" msgstr "" msgid "Add as &Normal Files" msgstr "" msgid "Invalid Patterns" msgstr "" msgid "Failed to process largefiles.patterns." msgstr "" msgid "Word docs (*.doc *.docx)" msgstr "" msgid "PDF docs (*.pdf)" msgstr "" msgid "Excel files (*.xls *.xlsx)" msgstr "" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "" msgid "Refresh lock information" msgstr "" msgid "Lock a file not described in .hglocks" msgstr "" msgid "Stop current operation" msgstr "" msgid "Locked And Lockable Files:" msgstr "" msgid "Path" msgstr "" msgid "Locking User" msgstr "" msgid "Purpose" msgstr "" msgid "Simplelock extension not enabled" msgstr "" msgid "Please enable and configure simplelock" msgstr "" msgid "Open a (nonmergable) file you wish to be locked" msgstr "" msgid "File was not within current repository" msgstr "" #, python-format msgid "Locking %s" msgstr "" #, python-format msgid "Unlocking %s" msgstr "" msgid "Refreshing locks..." msgstr "" #, python-format msgid "Lock of %s successful" msgstr "" #, python-format msgid "Lock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s successful" msgstr "" msgid "Ready, double click to lock or unlock" msgstr "" msgid "Ready" msgstr "" msgid "You can only release your own locks" msgstr "" msgid "Find revisions matching fields of:" msgstr "" msgid "Revision to Match:" msgstr "" msgid "Fields to match:" msgstr "" msgid "Summary (first description line)" msgstr "" msgid "Description" msgstr "" msgid "Author" msgstr "" msgid "Date" msgstr "" msgid "Files" msgstr "" msgid "Diff contents" msgstr "" msgid "Subrepo states" msgstr "" msgid "Branch" msgstr "" msgid "Phase" msgstr "" msgid "&Match" msgstr "" #, python-format msgid "Find matches - %s" msgstr "" msgid "Revisions to Match:" msgstr "" #, python-format msgid "Match any of %d revisions" msgstr "" msgid "Unknown revision!" msgstr "" msgid "Parse Error!" msgstr "" #, python-format msgid "Merge - %s" msgstr "" msgid "Do you want to exit?" msgstr "" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" msgid "Prepare to merge" msgstr "" msgid "Verify merge targets and ensure your working directory is clean." msgstr "" msgid "Not a head revision!" msgstr "" msgid "Merge from (other revision)" msgstr "" msgid "Merge to (working directory)" msgstr "" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Or use:" msgstr "" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "" msgid "Discard all changes from the other revision" msgstr "" msgid "&Discard" msgstr "" msgid "Confirm Discard Changes" msgstr "" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" msgctxt "working dir state" msgid "Clean" msgstr "" msgid "Merging..." msgstr "" msgid "Automatically advance to next page when merge is complete." msgstr "" #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" msgid "" "No merge conflicts, ready to commit or review" msgstr "" msgid "Commit merge results" msgstr "" msgid "Commit Options" msgstr "" msgid "Commit Now" msgstr "" msgid "Commit Later" msgstr "" msgid "Merge changeset" msgstr "" msgid "Syntax Highlighting" msgstr "" msgid "Paste &Filenames" msgstr "" msgid "App&ly Format" msgstr "" msgid "C&onfigure Format" msgstr "" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "" msgid "&Commit to Queue..." msgstr "" msgid "Create &New Queue..." msgstr "" msgid "&Rename Active Queue..." msgstr "" msgid "&Delete Queue..." msgstr "" msgid "&Purge Queue..." msgstr "" msgid "Create Patch Queue" msgstr "" msgid "New patch queue name" msgstr "" msgid "Create" msgstr "" msgid "Rename Patch Queue" msgstr "" #, python-format msgid "Rename patch queue '%s' to" msgstr "" msgid "Rename" msgstr "" msgid "Delete Patch Queue" msgstr "" msgid "Delete reference to" msgstr "" msgid "Delete" msgstr "" msgid "Purge Patch Queue" msgstr "" msgid "Remove patch directory of" msgstr "" msgid "Purge" msgstr "" msgid "Rename Patch" msgstr "" #, python-format msgid "Rename patch %s to:" msgstr "" msgid "no guards" msgstr "" msgid "Patch Queue" msgstr "" msgctxt "MQ QPush" msgid "Push" msgstr "" msgid "Apply one patch" msgstr "" msgctxt "MQ QPush" msgid "Push all" msgstr "" msgid "Apply all patches" msgstr "" msgid "Pop" msgstr "" msgid "Unapply one patch" msgstr "" msgid "Pop all" msgstr "" msgid "Unapply all patches" msgstr "" msgid "Go &to Patch" msgstr "" msgid "&Apply Only This Patch" msgstr "" msgid "Apply only the selected patch" msgstr "" msgid "&Finish Patch" msgstr "" msgid "Move applied patches into repository history" msgstr "" msgid "&Delete Patches..." msgstr "" msgid "Delete selected patches" msgstr "" msgid "Re&name Patch..." msgstr "" msgid "Set &Guards..." msgstr "" msgid "Configure guards for selected patch" msgstr "" msgid "Patch Queue Actions Toolbar" msgstr "" msgid "Configure guards" msgstr "" #, python-format msgid "Input new guards for %s:" msgstr "" msgid "Confirm patch queue switch" msgstr "" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "" #, python-format msgid "Guards: %d/%d" msgstr "" msgid "MQ options" msgstr "" msgid "Force push or pop (--force)" msgstr "" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "" msgid "Submitting p4 changelist..." msgstr "" msgid "Reverting p4 changelist..." msgstr "" msgid "Patch Branch Toolbar" msgstr "" msgid "Merge all pending dependencies" msgstr "" msgid "Backout current patch branch" msgstr "" msgid "Backport part of a changeset to a dependency" msgstr "" msgid "Start a new patch branch" msgstr "" msgid "Edit patch dependency graph" msgstr "" msgid "will be closed" msgstr "" #, python-format msgid "needs merge of %i heads\n" msgstr "" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "" #, python-format msgid "needs merge with %s\n" msgstr "" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "" msgid "&Goto (update workdir)" msgstr "" msgid "&Merge" msgstr "" msgid "No patch branch selected" msgstr "" msgid "No editor found" msgstr "" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" msgid "Graph" msgstr "" msgid "Status" msgstr "" msgid "Title" msgstr "" msgid "Message" msgstr "" msgid "New Patch Branch" msgstr "" msgid "Patch message:" msgstr "" msgid "Patch date:" msgstr "" msgid "Patch user:" msgstr "" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" msgid "Review Board" msgstr "" msgid "Password:" msgstr "" msgid "Error" msgstr "" #, python-format msgid "Review draft posted to %s\n" msgstr "" #, python-format msgid "Review published to %s\n" msgstr "" msgid "Success" msgstr "" msgid "Repository ID:" msgstr "" msgid "Post Review" msgstr "" msgid "Review ID:" msgstr "" msgid "Update the fields of this existing request" msgstr "" msgid "Update Review" msgstr "" msgid "Create diff with all outgoing changes" msgstr "" msgid "Create diff with all changes on this branch" msgstr "" msgid "Publish request immediately" msgstr "" msgid "%p%" msgstr "" msgid "Connecting to Review Board..." msgstr "" msgid "Target:" msgstr "" msgid "Do not modify working copy (-k/--keep)" msgstr "" #, python-format msgid "Prune - %s" msgstr "" msgid "&Prune" msgstr "" msgid "No unknown files found" msgstr "" msgid "No ignored files found" msgstr "" msgid "No trash files found" msgstr "" msgid "Delete empty folders" msgstr "" msgid "Preserve files beginning with .hg" msgstr "" #, python-format msgid "%s - purge" msgstr "" msgid "Checking" msgstr "" msgid "Ready to purge." msgstr "" #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "" msgstr[1] "" msgid "Confirm file deletions" msgstr "" msgid "Are you sure you want to delete these files and/or folders?" msgstr "" msgid "Deletion failures" msgstr "" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "" msgstr[1] "" msgid "Deleting trash folder..." msgstr "" #, python-format msgid "Deleted %d files" msgstr "" #, python-format msgid "Deleted %d files and %d folders" msgstr "" msgid "Delete Patches" msgstr "" msgid "Remove patches from queue?" msgstr "" msgid "Keep patch files" msgstr "" #, python-format msgid "Patch fold - %s" msgstr "" msgid "New patch message:" msgstr "" msgid "Patches to fold" msgstr "" msgid "&Undo" msgstr "" msgid "&Redo" msgstr "" msgid "Cu&t" msgstr "" msgid "&Copy" msgstr "" msgid "&Paste" msgstr "" msgid "&Editor Options" msgstr "" msgid "&Wrap" msgstr "" msgctxt "wrap mode" msgid "&None" msgstr "" msgid "&Word" msgstr "" msgid "&Character" msgstr "" msgid "White&space" msgstr "" msgid "&Visible" msgstr "" msgid "&Invisible" msgstr "" msgid "&AfterIndent" msgstr "" msgid "&TAB Inserts" msgstr "" msgid "&Auto" msgstr "" msgid "&TAB" msgstr "" msgid "&Spaces" msgstr "" msgid "EOL &Visibility" msgstr "" msgid "EOL &Mode" msgstr "" msgid "&Windows" msgstr "" msgid "&Unix" msgstr "" msgid "&Mac" msgstr "" msgid "&Auto-Complete" msgstr "" msgid "### regular expression ###" msgstr "" msgid "Regular expression search pattern" msgstr "" msgid "Wrap search" msgstr "" msgid "Prev" msgstr "" msgid "Next" msgstr "" msgid "Unable to read file" msgstr "" msgid "Could not open the specified file for reading." msgstr "" msgid "This appears to be a binary file." msgstr "" msgid "An error occurred while reading the file." msgstr "" msgid "Text Translation Failure" msgstr "" msgid "Could not translate the file content from native encoding." msgstr "" msgid "Several characters would be lost." msgstr "" msgid "Unable to write file" msgstr "" msgid "Could not translate the file content to native encoding." msgstr "" msgid "Could not open the specified file for writing." msgstr "" msgid "An error occurred while writing the file." msgstr "" msgid "Try refreshing your repository." msgstr "" #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
    Please edit your config" msgstr "" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
    Please fix your config" msgstr "" #, python-format msgid "Operation aborted:

    %(arg0)s." msgstr "" msgid "Repository is locked" msgstr "" msgid "hint:" msgstr "" msgid "Repository Error" msgstr "" msgid "No visual editor configured" msgstr "" msgid "Please configure a visual editor." msgstr "" msgid "Editor launch failure" msgstr "" msgid "Failed to open path in terminal" msgstr "" #, python-format msgid "\"%s\" is not a valid directory" msgstr "" #, python-format msgid "Invalid configuration: %s" msgstr "" msgid "Unable to start the following command:" msgstr "" msgid "No shell configured" msgstr "" msgid "A terminal shell must be configured" msgstr "" msgid "Please enter a username" msgstr "" msgid "You must identify yourself to Mercurial" msgstr "" msgid "Unable to translate input to local encoding." msgstr "" msgid "Checkmark files to add" msgstr "" msgid "Checkmark files to forget" msgstr "" msgid "Forget" msgstr "" msgid "Checkmark files to revert" msgstr "" msgid "Revert" msgstr "" msgid "Checkmark files to remove" msgstr "" msgid "Remove" msgstr "" #, python-format msgid "%s - hg %s" msgstr "" msgid "Do not save backup files (*.orig)" msgstr "" msgid "Force removal of modified files (--force)" msgstr "" msgid "Add &Largefiles" msgstr "" msgid "No files selected" msgstr "" msgid "No operation to perform" msgstr "" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" msgid "Remove &Unmodified Files" msgstr "" msgid "Remove &All Selected Files" msgstr "" msgid "Rebase changeset and descendants" msgstr "" msgid "To rebase destination" msgstr "" msgid "Swap source and destination" msgstr "" msgid "Keep original changesets (--keep)" msgstr "" msgid "Keep original branch names (--keepbranches)" msgstr "" msgid "Collapse the rebased changesets (--collapse)" msgstr "" msgid "Rebase entire source branch (-b/--base)" msgstr "" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "" msgid "Rebase" msgstr "" #, python-format msgid "Rebase - %s" msgstr "" msgid "" "Before rebase, you must
    commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the rebase" msgstr "" msgid "Rebase is complete" msgstr "" msgid "Rebase failed" msgstr "" msgid "Rebase aborted" msgstr "" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" msgid "Exiting with an unfinished rebase is not recommended." msgstr "" msgid "Consider aborting the rebase first." msgstr "" #, python-format msgid "Merge rejected patch chunks into %s" msgstr "" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "" msgid "Mark this chunk as unresolved" msgstr "" msgid "Reload File" msgstr "" msgid "Are you sure you want to reload this file?" msgstr "" msgid "All unsaved changes will be lost." msgstr "" msgid "Warning" msgstr "" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" msgid "Copy source -> destination" msgstr "" msgid "Copy Error" msgstr "" msgid "Rename Error" msgstr "" msgid "Select Source File" msgstr "" msgid "Select Source Folder" msgstr "" msgid "Source does not exist." msgstr "" msgid "The source must be within the repository tree." msgstr "" msgid "The destination must be within the repository tree." msgstr "" msgid "Destination file already exists." msgstr "" msgid "Are you sure you want to overwrite it ?" msgstr "" #, python-format msgid "Copy - %s" msgstr "" #, python-format msgid "Rename - %s" msgstr "" msgid "Show all" msgstr "" msgid "### revision set query ###" msgstr "" msgid "Clear current query and query text" msgstr "" msgid "Trigger revision set query" msgstr "" msgid "Open advanced query editor" msgstr "" msgid "Delete selected query from history" msgstr "" msgid "filter" msgstr "" msgid "Toggle filtering of non-matched changesets" msgstr "" msgid "Show/Hide hidden changesets" msgstr "" msgid "Toggle graft relations visibility" msgstr "" msgid "Keyword Search" msgstr "" msgid "Revision Set" msgstr "" msgid "(unsaved)" msgstr "" msgid "Display graph the named branch only" msgstr "" msgid "Display only active branches" msgstr "" msgid "Display closed branches" msgstr "" msgid "Include all ancestors" msgstr "" msgctxt "column header" msgid "Graph" msgstr "" msgctxt "column header" msgid "Rev" msgstr "" msgctxt "column header" msgid "Branch" msgstr "" msgctxt "column header" msgid "Description" msgstr "" msgctxt "column header" msgid "Author" msgstr "" msgctxt "column header" msgid "Tags" msgstr "" msgctxt "column header" msgid "Latest tags" msgstr "" msgctxt "column header" msgid "Node" msgstr "" msgctxt "column header" msgid "Git Commit" msgstr "" msgctxt "column header" msgid "Age" msgstr "" msgctxt "column header" msgid "Local Time" msgstr "" msgctxt "column header" msgid "UTC Time" msgstr "" msgctxt "column header" msgid "Changes" msgstr "" msgctxt "column header" msgid "Converted From" msgstr "" msgctxt "column header" msgid "Phase" msgstr "" msgctxt "column header" msgid "Filename" msgstr "" msgid "Searching..." msgstr "" #, python-format msgid "filling (%d)" msgstr "" msgid "Mercurial User" msgstr "" msgid "Repository Registry" msgstr "" msgid "Show &Paths" msgstr "" msgid "Show S&hort Paths" msgstr "" msgid "&Scan Repositories at Startup" msgstr "" msgid "Scan &Remote Repositories" msgstr "" msgid "&Refresh Repository List" msgstr "" msgid "Refresh the Repository Registry list" msgstr "" msgid "&Open" msgstr "" msgid "Open the repository in a new tab" msgstr "" msgid "&Open All" msgstr "" msgid "Open all repositories in new tabs" msgstr "" msgid "New &Group" msgstr "" msgid "Create a new group" msgstr "" msgid "Rename the entry" msgstr "" msgid "Settin&gs" msgstr "" msgid "View the repository's settings" msgstr "" msgid "Re&move from Registry" msgstr "" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" msgid "Clon&e..." msgstr "" msgid "Clone Repository" msgstr "" msgid "E&xplore" msgstr "" msgid "Open the repository in a file browser" msgstr "" msgid "&Terminal" msgstr "" msgid "Open a shell terminal in the repository root" msgstr "" msgid "&Add Repository..." msgstr "" msgid "Add a repository to this group" msgstr "" msgid "A&dd Subrepository..." msgstr "" msgid "Convert an existing repository into a subrepository" msgstr "" msgid "Remo&ve Subrepository..." msgstr "" msgid "Remove this subrepository from the current revision" msgstr "" msgid "Copy the root path of the repository to the clipboard" msgstr "" msgid "Sort by &Name" msgstr "" msgid "Sort the group by short name" msgstr "" msgid "Sort by &Path" msgstr "" msgid "Sort the group by full path" msgstr "" msgid "&Sort by .hgsub" msgstr "" msgid "Order the subrepos as in .hgsub" msgstr "" msgid "Select repository directory to add" msgstr "" msgid "Select an existing repository to add as a subrepo" msgstr "" msgid "Cannot add subrepository" msgstr "" #, python-format msgid "%s is not a valid repository" msgstr "" #, python-format msgid "\"%s\" is not a folder" msgstr "" msgid "A repository cannot be added as a subrepo of itself" msgstr "" #, python-format msgid "" "The selected folder:

    %s

    is not inside the target repository." "

    This may be allowed but is greatly discouraged.
    If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" msgid "Cannot open repository" msgstr "" #, python-format msgid "The selected repository:

    %s

    cannot be open!" msgstr "" msgid "Subrepository already exists" msgstr "" #, python-format msgid "" "The selected repository:

    %s

    is already a subrepository of:" "

    %s

    as: \"%s\"" msgstr "" msgid "Failed to add subrepository" msgstr "" #, python-format msgid "Cannot open the .hgsub file in:

    %s" msgstr "" msgid "Failed to add repository" msgstr "" #, python-format msgid "The .hgsub file already contains the line:

    %s" msgstr "" msgid "Subrepo added to .hgsub file" msgstr "" #, python-format msgid "" "The selected subrepo:

    %s

    has been added to the .hgsub " "file of the repository:

    %s

    Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" #, python-format msgid "Cannot update the .hgsub file in:

    %s" msgstr "" msgid "Could not open .hgsub file" msgstr "" msgid "Cannot read the .hgsub file.

    Subrepository removal failed." msgstr "" msgid "Subrepository not found" msgstr "" msgid "" "The selected subrepository was not found on the .hgsub file.

    Perhaps it " "has already been removed?" msgstr "" msgid "&Yes" msgstr "" msgid "&No" msgstr "" msgid "Remove the selected repository?" msgstr "" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" msgid "Subrepository removed from .hgsub" msgstr "" msgid "" "The selected subrepository has been removed from the .hgsub file.

    Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" msgid "Could not update .hgsub file" msgstr "" msgid "Cannot update the .hgsub file.

    Subrepository removal failed." msgstr "" #, python-format msgid "Unsupported repository type (%s)" msgstr "" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "" msgid "New Group" msgstr "" msgid "Confirm Delete" msgstr "" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "" msgid "Could not get subrepository list" msgstr "" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

    %s" msgstr "" msgid "Could not open some subrepositories" msgstr "" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

    %s

    The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

    %s" msgstr "" msgid "Updating repository registry" msgstr "" #, python-format msgid "Loading repository %s" msgstr "" msgid "Repository Registry updated" msgstr "" msgid "Close tab" msgstr "" msgid "Close other tabs" msgstr "" msgid "Undo close tab" msgstr "" msgid "Reopen last closed tab" msgstr "" msgid "Undo close other tabs" msgstr "" msgid "Reopen last closed tab group" msgstr "" msgid "Failed to open repository" msgstr "" msgid "&Sort" msgstr "" #, python-format msgid "Local Repository %s" msgstr "" #, python-format msgid "" "An exception happened while loading the subrepos of:

    \"%s\"

    " msgstr "" #, python-format msgid "The exception error message was:

    %s

    " msgstr "" msgid "Click OK to continue or Abort to exit." msgstr "" msgid "Error loading subrepos" msgstr "" msgid "Unable to update repository name" msgstr "" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "" msgid "default" msgstr "" msgid "C&hoose Log Columns..." msgstr "" msgid "&Resize Columns" msgstr "" #, python-format msgid "Goto ancestor of %s and %s" msgstr "" #, python-format msgid "Can't find revision '%s'" msgstr "" msgid "Drag to change order" msgstr "" msgid "Workbench Log Columns" msgstr "" msgctxt "tab tooltip" msgid "Revision details" msgstr "" msgctxt "tab tooltip" msgid "Commit" msgstr "" msgctxt "tab tooltip" msgid "Search" msgstr "" msgctxt "tab tooltip" msgid "Console log" msgstr "" msgctxt "tab tooltip" msgid "Synchronize" msgstr "" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "" #, python-format msgid "%s " msgstr "" #, python-format msgid "Found %d incoming changesets" msgstr "" msgid "Pull" msgstr "" msgid "Pull incoming changesets into your repository" msgstr "" msgid "Reject incoming changesets" msgstr "" #, python-format msgid "Push current branch (%s)" msgstr "" #, python-format msgid "Push up to current revision (#%d)" msgstr "" #, python-format msgid "Push up to revision #%d" msgstr "" msgid "Push all" msgstr "" msgid "no outgoing changesets" msgstr "" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets" msgstr "" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "" msgid "Nothing to push" msgstr "" msgid "No revision found" msgstr "" #, python-format msgid "%s - verify repository" msgstr "" #, python-format msgid "%s - recover repository" msgstr "" msgid "No transaction available" msgstr "" msgid "There is no rollback transaction available" msgstr "" msgid "Undo last commit?" msgstr "" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "" msgid "Undo last transaction?" msgstr "" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "" msgid "Unable to determine working copy revision\n" msgstr "" msgid "Remove current working revision?" msgstr "" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" msgid "Tab cannot exit" msgstr "" msgid "Pus&h" msgstr "" msgid "Push to &Here" msgstr "" msgid "Push Selected &Branch" msgstr "" msgid "Push &All" msgstr "" msgid "&Update..." msgstr "" msgid "Bro&wse at Revision" msgstr "" msgid "&Merge with Local..." msgstr "" msgid "&Tag..." msgstr "" msgid "Boo&kmark..." msgstr "" msgid "Top&ic..." msgstr "" msgid "Sig&n..." msgstr "" msgid "&Backout..." msgstr "" msgid "Revert &All Files..." msgstr "" msgid "Copy &Hash" msgstr "" msgid "E&xport" msgstr "" msgid "E&xport Patch..." msgstr "" msgid "&Email Patch..." msgstr "" msgid "&Archive..." msgstr "" msgid "&Bundle Rev and Descendants..." msgstr "" msgid "Change &Phase to" msgstr "" msgid "&Graft to Local..." msgstr "" msgid "Modi&fy History" msgstr "" msgid "&Unapply Patch" msgstr "" msgid "Import to &MQ" msgstr "" msgid "MQ &Options" msgstr "" msgid "&Rebase..." msgstr "" msgid "&Prune..." msgstr "" msgid "&Strip..." msgstr "" msgid "Post to Re&view Board..." msgstr "" msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "" msgid "Write diff file" msgstr "" msgid "Unable to write diff file" msgstr "" msgid "Unable to compress history" msgstr "" msgid "Selected changeset pair not related" msgstr "" msgid "Visual Diff..." msgstr "" msgid "Export Diff..." msgstr "" msgid "Export Selected..." msgstr "" msgid "Email Selected..." msgstr "" msgid "Copy Selected as Patch" msgstr "" msgid "Archive DAG Range..." msgstr "" msgid "Export DAG Range..." msgstr "" msgid "Email DAG Range..." msgstr "" msgid "Bundle DAG Range..." msgstr "" msgid "Bisect - Good, Bad..." msgstr "" msgid "Bisect - Bad, Good..." msgstr "" msgid "Compress History..." msgstr "" msgid "Rebase..." msgstr "" msgid "Goto common ancestor" msgstr "" msgid "Graft Selected to local..." msgstr "" msgid "&Prune Selected..." msgstr "" msgid "Post Selected to Review Board..." msgstr "" msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "" msgid "Apply onto original parent" msgstr "" msgid "Apply only this patch" msgstr "" msgid "Fold patches..." msgstr "" msgid "Delete patches..." msgstr "" msgid "Rename patch..." msgstr "" msgid "Pull to here..." msgstr "" msgid "Visual diff..." msgstr "" msgid "Export patch" msgstr "" msgid "Patch Files (*.patch)" msgstr "" msgid "Cannot export revision" msgstr "" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" msgid "There is already an existing folder with that same name." msgstr "" msgid "Replace" msgstr "" msgid "Append" msgstr "" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" msgid "What do you want to do?\n" msgstr "" msgid "Replace the existing patch files.\n" msgstr "" msgid "Append the changes to the existing patch files.\n" msgstr "" msgid "Abort the export operation.\n" msgstr "" msgid "Patch files already exist" msgstr "" msgid "Patch exported" msgstr "" #, python-format msgid "" "Revision #%d (%s) was exported to:

    %s%s%s" msgstr "" msgid "Patches exported" msgstr "" #, python-format msgid "%d patches were exported to:

    %s" msgstr "" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

    Are you sure you want to use revert?

    (use " "update to checkout another revision)" msgstr "" msgid "Filter b&y" msgstr "" msgid "&Ancestors and Descendants" msgstr "" msgid "A&uthor" msgstr "" msgid "&Branch" msgstr "" msgid "&More Options..." msgstr "" msgid "Unable to merge" msgstr "" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "" msgid "Unable to backout" msgstr "" msgid "Write bundle" msgstr "" msgid "Backwards phase change requested" msgstr "" msgid "Do you really want to make this revision secret?" msgstr "" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" msgid "&Make secret" msgstr "" msgid "&Cancel" msgstr "" msgid "Do you really want to force a backwards phase transition?" msgstr "" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" msgid "&Force" msgstr "" msgid "Cannot import selected revision" msgstr "" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" msgid "Invalid command" msgstr "" msgid "The selected command is empty" msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" msgid "Failed to execute custom TortoiseHg command" msgstr "" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "" msgid "Failed to execute custom command" msgstr "" #, python-format msgid "The command \"%s\" could not be executed." msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" msgid "&Edit Toolbar" msgstr "" msgid "&Refresh" msgstr "" msgid "&Filter Toolbar" msgstr "" #, python-format msgid "TortoiseHg: %s" msgstr "" msgid "S&tatus Bar" msgstr "" #, python-format msgid "Resolve Conflicts - %s" msgstr "" msgid "Local revision information" msgstr "" msgid "Other revision information" msgstr "" msgid "Unresolved conflicts" msgstr "" msgid "Mercurial Re&solve" msgstr "" msgid "Attempt automatic (trivial) merge" msgstr "" msgid "Tool &Resolve" msgstr "" msgid "Merge using selected merge tool" msgstr "" msgid "&Take Local" msgstr "" msgid "Accept the local file version (yours)" msgstr "" msgid "Take &Other" msgstr "" msgid "Accept the other file version (theirs)" msgstr "" msgid "&Mark as Resolved" msgstr "" msgid "Mark this file as resolved" msgstr "" msgid "Diff &Local to Ancestor" msgstr "" msgid "&Diff Other to Ancestor" msgstr "" msgid "Resolved conflicts" msgstr "" msgid "&Edit File" msgstr "" msgid "Edit resolved file" msgstr "" msgid "3-&Way Diff" msgstr "" msgid "Visual three-way diff" msgstr "" msgid "Visual diff between resolved file and first parent" msgstr "" msgid "&Diff to Other" msgstr "" msgid "Visual diff between resolved file and second parent" msgstr "" msgid "Mark as &Unresolved" msgstr "" msgid "Mark this file as unresolved" msgstr "" msgid "Detected merge/diff tools:" msgstr "" msgid "Command output" msgstr "" msgid "Unable to show subrepository files" msgstr "" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" msgid "There are merge conflicts to be resolved" msgstr "" msgid "All conflicts are resolved." msgstr "" msgid "There are no conflicting file merges." msgstr "" msgid "Exit without finishing resolve?" msgstr "" msgid "Unresolved conflicts remain. Are you sure?" msgstr "" msgid "E&xit" msgstr "" msgid "Ext" msgstr "" msgid "Repository" msgstr "" msgid "" msgstr "" msgid "File List Toolbar" msgstr "" msgid "Ma&nifest Mode" msgstr "" msgid "Show all version-controlled files in tree view" msgstr "" msgid "&Flat List" msgstr "" msgid "### filter text ###" msgstr "" msgid "Changed by &This Commit" msgstr "" msgid "Show files changed by this commit" msgstr "" msgid "Compare to &1st Parent" msgstr "" msgid "Compare to &2nd Parent" msgstr "" msgid "Toggle parent to be used as the base revision" msgstr "" msgid "List Optio&ns" msgstr "" #, python-format msgid "%s - Revision Details (%s)" msgstr "" #, python-format msgid "Revert - %s" msgstr "" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "" msgid "Revert all files to this revision" msgstr "" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "" msgid "null revision (i.e. remove file(s))" msgstr "" msgid "Changeset:" msgstr "" msgid "Child:" msgstr "" msgid "Predecessors:" msgstr "" msgid "Successors:" msgstr "" msgid "Head is closed!" msgstr "" msgid "Changesets where username contains string." msgstr "" msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" msgid "Like \"keyword(string)\" but accepts a regex." msgstr "" msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" msgid "The named bookmark or all bookmarks." msgstr "" msgid "The named tag or all tags." msgstr "" msgid "Changeset is tagged." msgstr "" msgid "Changeset is a named branch head." msgstr "" msgid "Changeset is a merge changeset." msgstr "" msgid "Changeset is closed." msgstr "" msgid "" "Changesets within the interval, see help dates" msgstr "" msgid "Greatest common ancestor of the two changesets." msgstr "" msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" msgid "Changesets which modify files matched by pattern." msgstr "" msgid "Changesets which add files matched by pattern." msgstr "" msgid "Changesets which remove files matched by pattern." msgstr "" msgid "Changesets containing files matched by pattern." msgstr "" msgid "All changesets belonging to the branches of changesets in set." msgstr "" msgid "Members of a set with no children in set." msgstr "" msgid "Changesets which are descendants of changesets in set." msgstr "" msgid "Changesets that are ancestors of a changeset in set." msgstr "" msgid "Child changesets of changesets in set." msgstr "" msgid "The set of all parents for all changesets in set." msgstr "" msgid "First parent for all changesets in set, or the working directory." msgstr "" msgid "Second parent for all changesets in set, or the working directory." msgstr "" msgid "Changesets with no parent changeset in set." msgstr "" msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" msgid "Changeset with lowest revision number in set." msgstr "" msgid "Changeset with highest revision number in set." msgstr "" msgid "First n members of a set." msgstr "" msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "" msgid "All changesets, the same as 0:tip." msgstr "" msgid "Revision Set Query" msgstr "" msgid "all revisions converted from subversion" msgstr "" msgid "changeset which represents converted svn revision" msgstr "" msgid "Common sets" msgstr "" msgid "File pattern sets" msgstr "" msgid "Set Ancestry" msgstr "" msgid "Set Logic" msgstr "" msgid "" "help " "revsets" msgstr "" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" #, python-format msgid "thg: unknown command '%s'\n" msgstr "" #, python-format msgid "thg %s: %s\n" msgstr "" #, python-format msgid "thg: %s\n" msgstr "" #, python-format msgid "abort: %s!\n" msgstr "" #, python-format msgid "abort: %s\n" msgstr "" #, python-format msgid "(%s)\n" msgstr "" msgid "option --config may not be abbreviated!" msgstr "" msgid "invalid arguments" msgstr "" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" msgid "repository root directory or symbolic path name" msgstr "" msgid "enable additional output" msgstr "" msgid "suppress output" msgstr "" msgid "display help and exit" msgstr "" msgid "set/override config option (use 'section.name=value')" msgstr "" msgid "enable debugging output" msgstr "" msgid "start debugger" msgstr "" msgid "print command execution profile" msgstr "" msgid "do not fork GUI process" msgstr "" msgid "always fork GUI process" msgstr "" msgid "read file list from file" msgstr "" msgid "read file list from file encoding utf-8" msgstr "" msgid "thg about" msgstr "" msgid "thg add [FILE]..." msgstr "" msgid "revision to annotate" msgstr "" msgid "open to line" msgstr "" msgid "initial search pattern" msgstr "" msgid "thg annotate" msgstr "" #, python-format msgid "invalid line number: %s" msgstr "" msgid "revision to archive" msgstr "" msgid "thg archive" msgstr "" msgid "merge with old dirstate parent after backout" msgstr "" msgid "parent to choose when backing out merge" msgstr "" msgid "revision to backout" msgstr "" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "" msgid "thg bisect" msgstr "" msgid "revision" msgstr "" msgid "thg bookmarks [-r REV] [NAME]" msgstr "" msgid "only one new bookmark name allowed" msgstr "" msgid "the clone will include an empty working copy (only a repository)" msgstr "" msgid "revision, tag or branch to check out" msgstr "" msgid "include the specified changeset" msgstr "" msgid "clone only the specified branch" msgstr "" msgid "use pull protocol to copy metadata" msgstr "" msgid "use uncompressed transfer (fast over LAN)" msgstr "" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "" msgid "record user as committer" msgstr "" msgid "record datecode as commit date" msgstr "" msgid "thg commit [OPTIONS] [FILE]..." msgstr "" msgid "thg debugblockmatcher" msgstr "" msgid "thg debugbugreport [TEXT]" msgstr "" msgid "thg debugconsole" msgstr "" msgid "thg debuglighthg" msgstr "" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "" msgid "no command specified" msgstr "" msgid "thg drag_copy SOURCE... DEST" msgstr "" msgid "thg drag_move SOURCE... DEST" msgstr "" msgid "a revision to send" msgstr "" msgid "thg email [REVS]" msgstr "" msgid "use only one form to specify the revision" msgstr "" msgid "select the specified revision" msgstr "" msgid "side-by-side comparison of revisions" msgstr "" msgid "thg filelog [OPTION]... FILE" msgstr "" msgid "requires a single filename" msgstr "" msgid "thg forget [FILE]..." msgstr "" msgid "revisions to graft" msgstr "" msgid "thg graft [-r] REV..." msgstr "" msgid "You must provide revisions to graft" msgstr "" msgid "ignore case during search" msgstr "" msgid "thg grep" msgstr "" msgid "thg guess" msgstr "" msgid "thg help [COMMAND]" msgstr "" msgid "global options:" msgstr "" msgid "use \"thg help\" for the full list of commands" msgstr "" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "" msgid "" "list of commands:\n" "\n" msgstr "" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" msgid "(no help text available)" msgstr "" msgid "options:\n" msgstr "" msgid "no commands defined\n" msgstr "" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "" msgid "" "basic commands:\n" "\n" msgstr "" #, python-format msgid " (default: %s)" msgstr "" msgid "thg hgignore [FILE]" msgstr "" msgid "import to the patch queue (MQ)" msgstr "" msgid "thg import [OPTION] [SOURCE]..." msgstr "" msgid "thg init [DEST]" msgstr "" msgid "thg lock" msgstr "" msgid "search for a given text or revset" msgstr "" msgid "(DEPRECATED)" msgstr "" msgid "open a new workbench window" msgstr "" msgid "thg log [OPTIONS] [FILE]" msgstr "" msgid "cannot specify both -k/--query and filenames" msgstr "" msgid "revision to display" msgstr "" msgid "thg manifest [-r REV] [FILE]" msgstr "" msgid "revision to merge" msgstr "" msgid "thg merge [[-r] REV]" msgstr "" msgid "Merge revision not specified or not found" msgstr "" msgid "a revision to post" msgstr "" msgid "thg postreview [-r] REV..." msgstr "" msgid "reviewboard extension not enabled" msgstr "" #, python-format msgid "see %(url)s" msgstr "" msgid "no revisions specified" msgstr "" msgid "revisions to prune" msgstr "" msgid "thg prune [-r] REV..." msgstr "" msgid "thg purge" msgstr "" msgid "keep original changesets" msgstr "" msgid "keep original branch names" msgstr "" msgid "rebase from the specified changeset" msgstr "" msgid "rebase onto the specified changeset" msgstr "" msgid "thg rebase -s REV -d REV [--keep]" msgstr "" msgid "Rebase already in progress" msgstr "" msgid "Resuming rebase already in progress" msgstr "" msgid "You must provide source and dest arguments" msgstr "" msgid "thg rejects [FILE]" msgstr "" msgid "You must provide the path to a file" msgstr "" msgid "thg remove [FILE]..." msgstr "" msgid "thg rename [SOURCE] [DEST]" msgstr "" msgid "field to give initial focus" msgstr "" msgid "thg repoconfig" msgstr "" msgid "thg resolve" msgstr "" msgid "the revision to show" msgstr "" msgid "thg revdetails [-r REV]" msgstr "" msgid "thg revert [FILE]..." msgstr "" msgid "revision to update" msgstr "" msgid "thg rupdate [[-r] REV]" msgstr "" msgid "name of the hgweb config file (serve more than one repository)" msgstr "" msgid "name of the hgweb config file (DEPRECATED)" msgstr "" msgid "thg serve [--web-conf FILE]" msgstr "" msgid "thg shellconfig" msgstr "" msgid "thg shelve" msgstr "" msgid "sign even if the sigfile is modified" msgstr "" msgid "make the signature local" msgstr "" msgid "the key id to sign with" msgstr "" msgid "do not commit the sigfile after signing" msgstr "" msgid "use as commit message" msgstr "" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "" msgid "Please enable the Gpg extension first." msgstr "" msgid "show files without changes" msgstr "" msgid "show ignored files" msgstr "" msgid "thg status [OPTIONS] [FILE]" msgstr "" msgid "discard uncommitted changes (no backup)" msgstr "" msgid "do not back up stripped revisions" msgstr "" msgid "do not modify working copy during strip" msgstr "" msgid "revision to strip" msgstr "" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "" msgid "open the bookmark sync window" msgstr "" msgid "thg sync [OPTION]... [PEER]" msgstr "" msgid "replace existing tag" msgstr "" msgid "make the tag local" msgstr "" msgid "revision to tag" msgstr "" msgid "remove a tag" msgstr "" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "" msgid "wait until the second ticks over" msgstr "" msgid "notify the shell for paths given" msgstr "" msgid "remove the status cache" msgstr "" msgid "show the contents of the status cache (no update)" msgstr "" msgid "update all repos in current dir" msgstr "" msgid "thg thgstatus [OPTION]" msgstr "" msgid "thg topics [-r REV] [NAME]" msgstr "" msgid "Please enable the Topic extension first." msgstr "" msgid "only one new topic name allowed" msgstr "" msgid "thg update [-C] [[-r] REV]" msgstr "" msgid "thg userconfig" msgstr "" msgid "changeset to view in diff tool" msgstr "" msgid "revisions to view in diff tool" msgstr "" msgid "bundle file to preview" msgstr "" msgid "launch visual diff tool" msgstr "" msgid "print license" msgstr "" msgid "thg version [OPTION]" msgstr "" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "" msgid "Location:" msgstr "" msgid "Update to:" msgstr "" msgid "Options:" msgstr "" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "" msgid "Perform a push before updating (-p/--push)" msgstr "" msgid "Allow pushing new branches (--new-branch)" msgstr "" msgid "Force push to remote location (-f/--force)" msgstr "" msgid "remove working directory" msgstr "" msgid "unknown revision!" msgstr "" #, python-format msgid "Remote Update - %s" msgstr "" msgid "&Update" msgstr "" msgid "Log" msgstr "" msgid "Repositories" msgstr "" #, python-format msgid "Running at %s" msgstr "" msgid "Stopped" msgstr "" msgid "TortoiseHg Web Server" msgstr "" msgid "Web Server" msgstr "" msgid "Port:" msgstr "" msgid "Status:" msgstr "" msgid "Start" msgstr "" msgid "Settings" msgstr "" msgid "" msgstr "" msgid "&True" msgstr "" msgid "&False" msgstr "" msgid "&Unspecified" msgstr "" #, python-format msgid "%dpt" msgstr "" msgid "Bold" msgstr "" msgid "Italic" msgstr "" msgid "Strike" msgstr "" msgid "Underline" msgstr "" msgid "&Set..." msgstr "" msgid "&Clear" msgstr "" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "" msgid "&Browse..." msgstr "" msgid "UI Language" msgstr "" msgid "Specify your preferred user interface language (restart needed)" msgstr "" msgid "Three-way Merge Tool" msgstr "" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" msgid "Visual Diff Tool" msgstr "" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" msgid "Visual Editor" msgstr "" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" msgid "CLI Editor" msgstr "" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" msgid "Shell" msgstr "" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
    Default, Windows: cmd.exe /" "K title %(reponame)s
    Default, OS X: not set
    Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" msgid "Immediate Operations" msgstr "" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" msgid "Tab Width" msgstr "" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" msgid "Force Repo Tab" msgstr "" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "" msgid "Monitor Repo Changes" msgstr "" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" msgid "Max Diff Size" msgstr "" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" msgid "Fork GUI" msgstr "" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" msgid "Full Path Title" msgstr "" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" msgid "Auto-resolve merges" msgstr "" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" msgid "New Repo Skeleton" msgstr "" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "" msgid "Single Workbench Window" msgstr "" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" msgid "Default widget" msgstr "" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" msgid "" "Open new tabs next\n" "to the current tab" msgstr "" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" msgid "Author Coloring" msgstr "" msgid "Color changesets by author name. Default: False" msgstr "" msgid "Full Authorname" msgstr "" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" msgid "Task Tabs" msgstr "" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" msgid "Task Toolbar Order" msgstr "" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
    Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
    Valid names are: log commit sync grep and " "pbranch.
    Default: log commit grep pbranch | sync" msgstr "" msgid "Long Summary" msgstr "" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" msgid "Log Batch Size" msgstr "" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "" msgid "Dead Branches" msgstr "" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" msgid "Branch Colors" msgstr "" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" msgid "Hide Tags" msgstr "" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" msgid "Activate Bookmarks" msgstr "" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

    • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
    • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
    • never: Never show any prompt to " "activate any bookmarks.

    Default: prompt" msgstr "" msgid "Show Family Line" msgstr "" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

    Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" msgid "Use optimized graph layouter" msgstr "" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

    Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" msgctxt "config item" msgid "Commit" msgstr "" msgid "Username" msgstr "" msgid "" "Name associated with commits. The common format is:
    Full Name <" "email@example.com>" msgstr "" msgid "Ask Username" msgstr "" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" msgid "Summary Line Length" msgstr "" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" msgid "Close After Commit" msgstr "" msgid "Close the commit tool after every successful commit. Default: False" msgstr "" msgid "Push After Commit" msgstr "" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" msgid "Auto Commit List" msgstr "" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" msgid "Auto Exclude List" msgstr "" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" msgid "English Messages" msgstr "" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" msgid "New Commit Phase" msgstr "" msgid "The phase of new commits. Default: draft" msgstr "" msgid "Secret MQ Patches" msgstr "" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "" msgid "Check Subrepo Phase" msgstr "" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" msgid "Monitor working
    directory changes" msgstr "" msgid "" "Select when the working directory status list will be refreshed:
    - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
    TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
    - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
    - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
    Default: auto" msgstr "" msgid "Confirm adding unknown files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Confirm deleting files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Sync" msgstr "" msgid "After Pull Operation" msgstr "" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" msgid "Default Push" msgstr "" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

    • all: The default. Push all changes in all " "branches.
    • branch: Push all changes in the current branch.
    • revision: Push the changes in the current branch up to the current revision.

    Default: all" msgstr "" msgid "Confirm Push" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" msgid "Target Combo" msgstr "" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

    • auto: The default. Show the combo if more than one target " "configured.
    • always: Always show the combo.

    Default: auto" msgstr "" msgid "SSH Command" msgstr "" msgid "" "Command to use for SSH connections.

    Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" msgid "Subrepository Features:" msgstr "" msgid "Allow Hg Subrepos" msgstr "" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" msgid "Allow Git Subrepos" msgstr "" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

    See the security note before enabling Git " "subrepos." msgstr "" msgid "Allow SVN Subrepos" msgstr "" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

    See the security note before enabling " "Subversion subrepos." msgstr "" msgid "Server" msgstr "" msgid "Repository Details:" msgstr "" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" msgid "Encoding" msgstr "" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" msgid "'Publishing' repository" msgstr "" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" msgid "Web Server:" msgstr "" msgid "Textual description of the repository's purpose or contents." msgstr "" msgid "Contact" msgstr "" msgid "Name or email address of the person in charge of the repository." msgstr "" msgid "Style" msgstr "" msgid "Which template map style to use" msgstr "" msgid "Archive Formats" msgstr "" msgid "Comma separated list of archive formats allowed for downloading" msgstr "" msgid "Port" msgstr "" msgid "Port to listen on" msgstr "" msgid "Push Requires SSL" msgstr "" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" msgid "Stripes" msgstr "" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" msgid "Max Files" msgstr "" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "" msgid "Max Changes" msgstr "" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "" msgid "Allow Push" msgstr "" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" msgid "Deny Push" msgstr "" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" msgid "Proxy" msgstr "" msgid "Host" msgstr "" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "" msgid "Bypass List" msgstr "" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "" msgid "Optional. User name to authenticate with at the proxy server" msgstr "" msgid "Password" msgstr "" msgid "Optional. Password to authenticate with at the proxy server" msgstr "" msgid "From" msgstr "" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "" msgid "To" msgstr "" msgid "Comma-separated list of recipient email addresses" msgstr "" msgid "Cc" msgstr "" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "" msgid "Bcc" msgstr "" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "" msgid "method" msgstr "" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" msgid "SMTP Host" msgstr "" msgid "Host name of mail server" msgstr "" msgid "SMTP Port" msgstr "" msgid "Port to connect to on mail server. Default: 25" msgstr "" msgid "SMTP TLS" msgstr "" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "" msgid "SMTP Username" msgstr "" msgid "Username to authenticate to mail server with" msgstr "" msgid "SMTP Password" msgstr "" msgid "Password to authenticate to mail server with" msgstr "" msgid "Local Hostname" msgstr "" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "" msgid "Diff and Annotate" msgstr "" msgid "Patch EOL" msgstr "" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" msgid "Git Format" msgstr "" msgid "Use git extended diff header format. Default: False" msgstr "" msgid "MQ Git Format" msgstr "" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" msgid "No Dates" msgstr "" msgid "Do not include modification dates in diff headers. Default: False" msgstr "" msgid "Show Function" msgstr "" msgid "Show which function each change is in. Default: False" msgstr "" msgid "Ignore White Space" msgstr "" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "" msgid "Ignore WS Amount" msgstr "" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "" msgid "Ignore Blank Lines" msgstr "" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "" msgid "Annotate:" msgstr "" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "" msgid "Fonts" msgstr "" msgid "Message Font" msgstr "" msgid "Font used to display commit messages. Default: monospace 10" msgstr "" msgid "Diff Font" msgstr "" msgid "Font used to display text differences. Default: monospace 10" msgstr "" msgid "ChangeLog Font" msgstr "" msgid "Font used to display changelog data. Default: monospace 10" msgstr "" msgid "Output Font" msgstr "" msgid "Font used to display output messages. Default: sans 8" msgstr "" msgid "Extensions" msgstr "" msgid "Tools" msgstr "" msgid "Hooks" msgstr "" msgid "Issue Tracking" msgstr "" msgid "Issue Regex" msgstr "" msgid "Defines the regex to match when picking up issue numbers." msgstr "" msgid "Issue Link" msgstr "" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" msgid "Inline Tags" msgstr "" msgid "Show tags at start of commit message." msgstr "" msgid "Mandatory Issue Reference" msgstr "" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" msgid "Issue Tracker Plugin" msgstr "" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" msgid "Configure Issue Tracker" msgstr "" msgid "Configure the selected COM Bug Tracker plugin." msgstr "" msgid "Issue Tracker Trigger" msgstr "" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

    • never: Do not update the Issue Tracker " "state automatically.
    • commit: Update the Issue Tracker state after " "a successful commit.

    Default: never" msgstr "" msgid "Changeset Link" msgstr "" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
    The template string " "uses a normal mercurial template syntax, such as:

    • {node|short} : replaced by " "the 12 digit revision id.
    • {rev} : replaced by the revision number." "
    • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
    For example, in order to " "link to bitbucket commit pages you can set this to:
    https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
    You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
    https://github.com/torvalds/" "linux/commit/{gitnode}
    https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
    " msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "" msgid "User name to authenticate with review board" msgstr "" msgid "Password to authenticate with review board" msgstr "" msgid "Server Repository ID" msgstr "" msgid "The default repository id for this repo on the review board server" msgstr "" msgid "Target Groups" msgstr "" msgid "A comma separated list of target groups" msgstr "" msgid "Target People" msgstr "" msgid "A comma separated list of target people" msgstr "" msgid "Kiln Bfiles" msgstr "" msgid "Patterns" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" msgid "Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" msgid "System Cache" msgstr "" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "" msgid "Simplelock" msgstr "" msgid "Lock Clone" msgstr "" msgid "" "Location of local clone of organizational lock repository.

    This repository " "must contain a \"locked\" text file" msgstr "" msgid "Largefiles" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" msgid "Minimum Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" msgid "User Cache" msgstr "" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" msgid "Projrc" msgstr "" msgid "Require confirmation" msgstr "" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

    • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
    • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
    • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
    " msgstr "" msgid "Servers" msgstr "" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" msgid "Include" msgstr "" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" msgid "Exclude" msgstr "" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" msgid "Update on incoming" msgstr "" msgid "" "Let the user update the projrc on incoming:
    • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
    • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
    • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

      Default: never" msgstr "" msgid "GnuPG" msgstr "" msgid "Specify the path to GPG. Default: gpg" msgstr "" msgid "Key ID" msgstr "" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "" msgid "TortoiseHg Settings" msgstr "" msgid "Iniparse package not found" msgstr "" msgid "Can't change settings without iniparse package - view is readonly." msgstr "" #, python-format msgid "%s's global settings" msgstr "" msgid "No repository found" msgstr "" msgid "no repo at " msgstr "" #, python-format msgid "%s project settings (.hg/projrc)" msgstr "" #, python-format msgid "%s repository settings" msgstr "" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "" msgid "Apply changes before exit?" msgstr "" msgid "&No (discard changes)" msgstr "" msgid "Reload" msgstr "" msgid "Settings File:" msgstr "" msgid "Confirm Save" msgstr "" msgid "Save changes before editing?" msgstr "" msgid "&Save" msgstr "" msgid "Confirm Reload" msgstr "" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" msgid "Unable to create a Mercurial.ini file" msgstr "" msgid "Insufficient access rights, reverting to read-only mode." msgstr "" msgid "Context Menu" msgstr "" msgid "Top menu items:" msgstr "" msgid "Sub menu items:" msgstr "" msgid "Menu Behavior" msgstr "" msgid "Hide context menu outside repositories" msgstr "" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" msgid "Icons" msgstr "" msgid "Overlays" msgstr "" msgid "Enabled overlays" msgstr "" msgid "Local disks only" msgstr "" msgid "Enabled Overlay Handlers" msgstr "" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "" msgid "Added" msgstr "" msgid "Locked*" msgstr "" msgid "Ignored*" msgstr "" msgid "Unversioned" msgstr "" msgid "Readonly*" msgstr "" msgid "Deleted*" msgstr "" msgid "*: not used by TortoiseHg" msgstr "" msgid "Taskbar" msgstr "" msgid "Show Icon" msgstr "" msgid "Highlight Icon" msgstr "" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" msgid "Explorer Extension Settings - TortoiseHg" msgstr "" msgid "Clear" msgstr "" msgid "Clear the current shelf file" msgstr "" msgid "Delete the current shelf file" msgstr "" msgid "Left Toolbar" msgstr "" msgid "Delete selected chunks" msgstr "" msgid "Move all files right" msgstr "" msgid "Move selected file right" msgstr "" msgid "Edit file" msgstr "" msgid "Move selected chunks right" msgstr "" msgid "Refresh Toolbar" msgstr "" msgid "Refresh" msgstr "" msgid "New Shelf" msgstr "" msgid "Right Toolbar" msgstr "" msgid "Move selected chunks left" msgstr "" msgid "Move selected file left" msgstr "" msgid "Move all files left" msgstr "" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "" msgid "Delete selected chunks from working copy?" msgstr "" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "" msgid "Are you sure?" msgstr "" msgid "TortoiseHg New Shelf Name" msgstr "" msgid "Specify name of new shelf" msgstr "" msgid "Bad filename" msgstr "" #, python-format msgid "A shelf name cannot contain %s" msgstr "" msgid "File already exists" msgstr "" msgid "A shelf file of that name already exists" msgstr "" msgid "New shelf created" msgstr "" #, python-format msgid "Delete shelf file %s?" msgstr "" msgid "Shelf deleted" msgstr "" msgid "Revert all working copy changes?" msgstr "" #, python-format msgid "Clear contents of shelf file %s?" msgstr "" msgid "Shelf cleared" msgstr "" #, python-format msgid "Shelf: %s" msgstr "" #, python-format msgid "Patch: %s" msgstr "" msgid "Key:" msgstr "" msgid "Local sign" msgstr "" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "" msgid "No commit" msgstr "" msgid "Use custom commit message:" msgstr "" msgid "&Sign" msgstr "" #, python-format msgid "Sign - %s" msgstr "" msgid "Signature has been added" msgstr "" msgid "Repository command still running" msgstr "" msgid "Filter:" msgstr "" msgid "Check all files" msgstr "" msgid "Uncheck all files" msgstr "" msgid "Status File List Toolbar" msgstr "" msgid "Remove filter, show root" msgstr "" #, python-format msgid "%s - status (selection filtered)" msgstr "" #, python-format msgid "%s - status" msgstr "" msgid "Check" msgstr "" msgid "Uncheck" msgstr "" msgid "status" msgstr "" msgid "Failed to refresh" msgstr "" msgid "No appropriate files" msgstr "" msgid "No files found for this operation" msgstr "" msgid "Stat" msgstr "" msgid "M" msgstr "" msgid "Filename" msgstr "" msgid "Size (KB)" msgstr "" #, python-format msgid "Checked count: %d" msgstr "" msgid ", resolved merge" msgstr "" msgid ", unresolved merge" msgstr "" #, python-format msgid "%s is modified" msgstr "" msgid "modified" msgstr "" #, python-format msgid "%s is added" msgstr "" msgid "added" msgstr "" #, python-format msgid "%s is removed" msgstr "" msgid "removed" msgstr "" #, python-format msgid "%s is not tracked (unknown)" msgstr "" msgid "unknown" msgstr "" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "" msgid "missing" msgstr "" #, python-format msgid "%s is ignored" msgstr "" msgid "ignored" msgstr "" #, python-format msgid "%s is not modified (clean)" msgstr "" msgid "clean" msgstr "" #, python-format msgid "%s is a dirty subrepo" msgstr "" msgid "subrepo" msgstr "" msgid "Check for incoming changes from selected URL" msgstr "" msgid "Pull incoming changes from selected URL" msgstr "" msgid "Detect outgoing changes to selected URL" msgstr "" msgid "Push outgoing changes to selected URL" msgstr "" msgid "Sync Bookmarks" msgstr "" msgid "Email outgoing changesets for remote repository" msgstr "" msgid "Manage pending perforce changelists" msgstr "" msgid "Unbundle" msgstr "" msgid "Selected Options:" msgstr "" msgid "Path Edit Toolbar" msgstr "" msgid "Security" msgstr "" msgid "Manage HTTPS connection security and user authentication" msgstr "" msgid "Save" msgstr "" msgid "Save current URL under an alias" msgstr "" msgid "Paths in Repository Settings:" msgstr "" msgid "Related Paths:" msgstr "" msgid "branch: " msgstr "" msgid "bookmark: " msgstr "" #, python-format msgid "rev: %d (%s)" msgstr "" msgid "Post Pull: " msgstr "" msgid "&Edit..." msgstr "" msgid "&Remove..." msgstr "" msgid "Repository not local" msgstr "" msgid "A terminal shell cannot be opened for remote" msgstr "" msgid "Confirm path delete" msgstr "" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "" msgid "Select repository" msgstr "" msgid "No host specified" msgstr "" msgid "Please set a valid URL to continue." msgstr "" msgid "No remote repository URL or path set" msgstr "" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

      Please type and save a remote repository path on the " "Sync widget." msgstr "" msgid "Redundant authentication info" msgstr "" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" msgid "sync command already running" msgstr "" #, python-format msgid "Getting incoming changesets from %s..." msgstr "" #, python-format msgid "Found incoming changesets from %s" msgstr "" #, python-format msgid "No incoming changesets from %s" msgstr "" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "" #, python-format msgid "Pulling from %s..." msgstr "" #, python-format msgid "Pull from %s completed" msgstr "" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "" msgid "Merge caused file conflicts" msgstr "" msgid "File conflicts need to be resolved" msgstr "" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "" #, python-format msgid "%d outgoing changesets to %s" msgstr "" #, python-format msgid "No outgoing changesets to %s" msgstr "" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "" msgid "Perforce pending..." msgstr "" #, python-format msgid "%s (submitted)" msgstr "" #, python-format msgid "%s (pending)" msgstr "" msgid "Unable to parse p4pending output" msgstr "" #, python-format msgid "%d pending changelists found" msgstr "" msgid "No pending Perforce changelists" msgstr "" msgid "Aborted p4pending" msgstr "" msgid "Unable to determine pending changesets" msgstr "" msgid "Confirm Push to remote Repository" msgstr "" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" #, python-format msgid "Push to %s aborted" msgstr "" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" #, python-format msgid "Pushing to %s..." msgstr "" #, python-format msgid "Push to %s completed" msgstr "" #, python-format msgid "Push to %s aborted, ret %d" msgstr "" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" msgid "Determining outgoing changesets to email..." msgstr "" msgid "No outgoing changesets" msgstr "" #, python-format msgid "Outgoing aborted, ret %d" msgstr "" msgid "Select bundle file" msgstr "" msgid "Bundle files (*.hg)" msgstr "" msgid "Unable to remove URL" msgstr "" msgid "Post Pull Behavior" msgstr "" msgid "Select post-pull operation for this repository" msgstr "" msgid "None - simply pull changesets" msgstr "" msgid "Update - pull, then try to update" msgstr "" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "" msgid "Rebase - rebase local commits above pulled changes" msgstr "" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "" msgid "Launch settings tool..." msgstr "" msgid "Unable to save post pull operation" msgstr "" msgid "Save Path" msgstr "" msgid "Alias" msgstr "" msgid "URL" msgstr "" msgid "Remove authentication data from URL" msgstr "" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" msgid "Update subrepo paths" msgstr "" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" msgid "Unable to save an URL" msgstr "" msgid "Confirm URL replace" msgstr "" #, python-format msgid "%s already exists, replace URL?" msgstr "" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

      %s

      Replace it with the " "following URL?:

      %s" msgstr "" msgid "Security: " msgstr "" #, python-format msgid "Host: %s" msgstr "" msgid "Secure HTTPS Connection" msgstr "" msgid "Verify with Certificate Authority certificates (best)" msgstr "" msgid "Verify with stored host fingerprint (good)" msgstr "" msgid "No host validation, but still encrypted (bad)" msgstr "" msgid "### host certificate fingerprint ###" msgstr "" msgid "Query" msgstr "" msgid "TLS 1.0" msgstr "" msgid "TLS 1.1" msgstr "" msgid "TLS 1.2" msgstr "" msgid "Minimum Protocol" msgstr "" msgid "User Authentication" msgstr "" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Key" msgstr "" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Chain" msgstr "" msgid "Certificate Query Error" msgstr "" msgid "Select User Certificate Key File" msgstr "" msgid "PEM files (*.pem *.key)" msgstr "" msgid "Select User Certificate Chain File" msgstr "" msgid "PEM files (*.pem *.crt *.cer)" msgstr "" msgid "Unable to save authentication" msgstr "" #, python-format msgid "%s - sync options" msgstr "" msgid "Allow push of a new branch (--new-branch)" msgstr "" msgid "Force push or pull (override safety checks, --force)" msgstr "" msgid "Temporarily disable configured HTTP proxy" msgstr "" msgid "Emit debugging output (--debug)" msgstr "" msgid "Work on patch queue (--mq)" msgstr "" #, python-format msgid "Tag - %s" msgstr "" msgid "Tag:" msgstr "" msgid "Tagged:" msgstr "" msgid "Local tag" msgstr "" msgid "Replace existing tag (-f/--force)" msgstr "" msgid "Use English commit message" msgstr "" msgid "local" msgstr "" msgid "Move" msgstr "" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "" #, python-format msgid "Added tag %s for changeset %s" msgstr "" #, python-format msgid "Tag '%s' has been moved" msgstr "" #, python-format msgid "Tag '%s' has been added" msgstr "" #, python-format msgid "Removed tag %s" msgstr "" #, python-format msgid "Tag '%s' has been removed" msgstr "" msgid "Patch files (*.diff *.patch)" msgstr "" #, python-format msgid "Import - %s" msgstr "" msgid "Browse Directory..." msgstr "" msgid "Import from Clipboard" msgstr "" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "" msgid "Preview:" msgstr "" msgid "Shelf" msgstr "" msgid "Checking working directory status..." msgstr "" msgid "&Import" msgstr "" msgid "Working directory is not clean! View changes..." msgstr "" msgid "Select patches" msgstr "" msgid "Select Directory containing patches" msgstr "" #, python-format msgid "%s patches" msgstr "" #, python-format msgid "%s will be imported to " msgstr "" msgid "Nothing to import" msgstr "" msgid "Strip:" msgstr "" msgid "Discard local changes, no backup (-f/--force)" msgstr "" msgid "No backup (-n/--nobackup)" msgstr "" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "" msgstr[1] "" msgid "Unknown revision!" msgstr "" msgid "Detected uncommitted local changes." msgstr "" msgid "Do you want to keep them or discard them?" msgstr "" msgid "&Keep (--keep)" msgstr "" msgid "&Discard (--force)" msgstr "" msgid "Confirm Strip" msgstr "" #, python-format msgid "Strip - %s" msgstr "" msgid "&Strip" msgstr "" msgid "Topic:" msgstr "" msgid "&Rename" msgstr "" #, python-format msgid "Topic - %s" msgstr "" #, python-format msgid "A topic named \"%s\" already exists" msgstr "" #, python-format msgid "Topic '%s' has been added" msgstr "" #, python-format msgid "Topic '%s' does not exist" msgstr "" #, python-format msgid "Topic '%s' has been removed" msgstr "" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "" msgid "Parent 1:" msgstr "" msgid "Parent 2:" msgstr "" msgid "Pull subrepos from:" msgstr "" msgid "List updated files (--verbose)" msgstr "" msgid "Discard local changes, no backup (-C/--clean)" msgstr "" msgid "Always merge (when possible)" msgstr "" msgid "(same as parent)" msgstr "" msgid "Activate bookmark?" msgstr "" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

      Do " "you want to activate it?
      You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

      Select " "the bookmark that you want to activate and click OK.

      Click " "Cancel if you don't want to activate any of them.

      You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

      " msgstr "" msgid "Deactivate current bookmark?" msgstr "" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" msgid "Discard - discard local changes, no backup" msgstr "" msgid "&Shelve" msgstr "" msgid "Shelve - move local changes to a patch" msgstr "" msgid "Merge - allow to merge with local changes" msgstr "" msgid "Confirm Update" msgstr "" #, python-format msgid "Update - %s" msgstr "" msgid "[non-existant]" msgstr "" msgid "Tool launch failure" msgstr "" #, python-format msgid "%s : %s" msgstr "" msgid "No diff tool found" msgstr "" msgid "No visual diff tools were detected" msgstr "" msgid "[working copy]" msgstr "" msgid "[original]" msgstr "" msgid "Unable to find changeset" msgstr "" msgid "You likely need to refresh this application" msgstr "" msgid "No file changes" msgstr "" msgid "There are no file changes to view" msgstr "" msgid "working changes" msgstr "" #, python-format msgid "changeset %d:%s" msgstr "" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "" msgid "Visual Diffs - " msgstr "" msgid " filtered" msgstr "" msgid "Temporary files are removed when this dialog is closed" msgstr "" msgid "Select Tool:" msgstr "" msgid "Dir diff to p1" msgstr "" msgid "Dir diff to p2" msgstr "" msgid "3-way dir diff" msgstr "" msgid "Directory diff" msgstr "" msgid "Confirm Discard" msgstr "" msgid "Discard outstanding changes to working directory?" msgstr "" msgid "Config files (*.conf *.config *.ini)" msgstr "" msgid "Open hgweb config" msgstr "" msgid "Save hgweb config" msgstr "" msgid "Path:" msgstr "" msgid "Local Path:" msgstr "" msgid "Select Repository" msgstr "" msgid "Add Path to Serve" msgstr "" msgid "Edit Path to Serve" msgstr "" msgid "Local Path" msgstr "" msgid "Webconf" msgstr "" msgid "Config File:" msgstr "" msgid "Open" msgstr "" msgid "New &Workbench" msgstr "" msgid "&New Repository..." msgstr "" msgid "Clon&e Repository..." msgstr "" msgid "&Open Repository..." msgstr "" msgid "&File" msgstr "" msgid "&View" msgstr "" msgid "&Repository" msgstr "" msgid "&Help" msgstr "" msgid "&Dock Toolbar" msgstr "" msgid "&Task Toolbar" msgstr "" msgid "&Custom Toolbar" msgstr "" msgid "S&ync Toolbar" msgstr "" msgid "&Close Repository" msgstr "" msgid "Sh&ow Repository Registry" msgstr "" msgid "Show &Patch Queue" msgstr "" msgid "Show Conso&le" msgstr "" msgid "Place Console in Doc&k Area" msgstr "" msgid "R&epository Registry Options" msgstr "" msgid "Save Open Repositories on E&xit" msgstr "" msgid "Sa&ve Current Sync Paths on Exit" msgstr "" msgid "Show Tas&k Tab" msgstr "" msgid "&Commit" msgstr "" msgid "&Patch Branch" msgstr "" msgid "Revision &Details" msgstr "" msgid "&Search" msgstr "" msgid "S&ynchronize" msgstr "" msgid "Refresh current repository" msgstr "" msgid "Refresh &Task Tab" msgstr "" msgid "Refresh only the current task tab" msgstr "" msgid "Load &All Revisions" msgstr "" msgid "Load all revisions into graph" msgstr "" msgid "Go to current revision" msgstr "" msgid "&Goto Revision..." msgstr "" msgid "Go to a specific revision" msgstr "" msgid "Filter graph with revision sets or branches" msgstr "" msgid "&Workbench Toolbars" msgstr "" msgid "&Lock File..." msgstr "" msgid "Lock or unlock files" msgstr "" msgid "Update working directory or switch revisions" msgstr "" msgid "&Shelve..." msgstr "" msgid "&Import Patches..." msgstr "" msgid "U&nbundle..." msgstr "" msgid "&Merge..." msgstr "" msgid "Merge with the other head of the current branch" msgstr "" msgid "&Resolve..." msgstr "" msgid "R&ollback/Undo..." msgstr "" msgid "&Purge..." msgstr "" msgid "&Bisect..." msgstr "" msgid "&Verify" msgstr "" msgid "Re&cover" msgstr "" msgid "&Web Server" msgstr "" msgid "E&xplorer Help" msgstr "" msgid "&Readme" msgstr "" msgid "About &Qt" msgstr "" msgid "&About TortoiseHg" msgstr "" msgid "&Incoming" msgstr "" msgid "&Pull" msgstr "" msgid "&Outgoing" msgstr "" msgid "P&ush" msgstr "" msgid "&Sync Bookmarks..." msgstr "" #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" msgid "Check for incoming changes" msgstr "" msgid "Pull incoming changes" msgstr "" msgid "Detect outgoing changes" msgstr "" msgid "Push outgoing changes" msgstr "" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" #, python-format msgid "Execute custom tool '%s'" msgstr "" msgid "Custom Toolbar &Settings" msgstr "" msgid "TortoiseHg Workbench" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "" msgid "Goto revision" msgstr "" msgid "Enter revision identifier" msgstr "" msgid "Select repository directory to open" msgstr "" msgid "README not configured" msgstr "" msgid "" "A README file is not configured for the current repository.

      To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" msgid "Issue Tracker Plugin Error" msgstr "" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "" msgid "This error will not be shown again until you restart the workbench" msgstr "" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "" msgid "Error executing \"commit finished\" trigger" msgstr "" msgid "Cannot open Plugin Options dialog" msgstr "" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "" msgid "[--insecure] [SOURCE]" msgstr "" #, python-format msgid "unsupported URL: %s" msgstr "" #, python-format msgid "%s certificate error: no certificate received" msgstr "" msgid "move after the specified patch" msgstr "" msgid "[--after PATCH] PATCH..." msgstr "" msgid "unknown patch to move specified" msgstr "" msgid "invalid patch position specified" msgstr "" msgid "cannot move applied patches" msgstr "" #, python-format msgid "patch %s not in series" msgstr "" msgid "cannot move into applied patches" msgstr "" msgid "abort: " msgstr "" msgid "hint: " msgstr "" #, python-format msgid "HTTP Error: %d (%s)" msgstr "" #, python-format msgid "URLError: %s" msgstr "" msgid "SSL: Server certificate verify failed" msgstr "" #, python-format msgid "SSL: unknown error %s:%s" msgstr "" #, python-format msgid "SSL error: %s" msgstr "" msgid "hgsubversion packaged with thg" msgstr "" msgid "hggit packaged with thg" msgstr "" msgid "inotify is not supported on this platform" msgstr "" msgid "eol is incompatible with win32text" msgstr "" msgid "win32text is incompatible with eol" msgstr "" msgid "hgsubversion is incompatible with perfarce" msgstr "" msgid "perfarce is incompatible with hgsubversion" msgstr "" msgid "Workbench custom toolbar" msgstr "" msgid "Revision details context menu" msgstr "" msgid "Pair selection context menu" msgstr "" msgid "Multiple selection context menu" msgstr "" msgid "Commit context menu" msgstr "" msgid "File context menu (on manifest and revision details)" msgstr "" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" msgid "in the future" msgstr "" msgid "now" msgstr "" #, python-format msgid "command parse error: %s" msgstr "" #, python-format msgid "no matches found: %s" msgstr "" msgid "Commit..." msgstr "" msgid "Commit changes in repository" msgstr "" msgid "Create Repository Here" msgstr "" msgid "Create a new repository" msgstr "" msgid "Clone..." msgstr "" msgid "Create clone here from source" msgstr "" msgid "File Status" msgstr "" msgid "Repository status & changes" msgstr "" msgid "Add Files..." msgstr "" msgid "Add files to version control" msgstr "" msgid "Revert Files..." msgstr "" msgid "Revert file changes" msgstr "" msgid "Forget Files..." msgstr "" msgid "Remove files from version control" msgstr "" msgid "Remove Files..." msgstr "" msgid "Rename File" msgstr "" msgid "Rename file or directory" msgstr "" msgid "View change history in repository" msgstr "" msgid "File History" msgstr "" msgid "View change history of selected files" msgstr "" msgid "Shelve Changes" msgstr "" msgid "Move changes between working dir and patch" msgstr "" msgid "Synchronize" msgstr "" msgid "Synchronize with remote repository" msgstr "" msgid "Start web server for this repository" msgstr "" msgid "Update..." msgstr "" msgid "Update working directory" msgstr "" msgid "Update Icons" msgstr "" msgid "Update icons for this repository" msgstr "" msgid "Global Settings" msgstr "" msgid "Configure user wide settings" msgstr "" msgid "Repository Settings" msgstr "" msgid "Configure repository settings" msgstr "" msgid "Explorer Extension Settings" msgstr "" msgid "Configure Explorer extension" msgstr "" msgid "About TortoiseHg" msgstr "" msgid "Show About Dialog" msgstr "" msgid "Diff to parent" msgstr "" msgid "View changes using GUI diff tool" msgstr "" msgid "Edit Ignore Filter" msgstr "" msgid "Edit repository ignore filter" msgstr "" msgid "Guess Renames" msgstr "" msgid "Detect renames and copies" msgstr "" msgid "Search History" msgstr "" msgid "Search file revisions for patterns" msgstr "" msgid "DnD Synchronize" msgstr "" msgid "Synchronize with dragged repository" msgstr "" #, python-format msgid "unrecognized response: %s" msgstr "" msgid "password: " msgstr "" #, python-format msgid "repository %s not found" msgstr "" msgid "win32ill: cannot create window for messages" msgstr "" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "" msgid "win32ill: interrupted while stopping message loop\n" msgstr "" #~ msgid "Use uncompressed transfer" #~ msgstr "Използвай некомпресиран трансфер" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/ca.po0000644000000000000000000043631314440352353016223 0ustar00rootroot# Catalan translation for tortoisehg # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the tortoisehg package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2011-03-07 18:36+0000\n" "Last-Translator: David Planella \n" "Language-Team: Catalan \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2019-07-17 05:41+0000\n" "X-Generator: Launchpad (build 19009)\n" msgid "TortoiseHg Overlay Icon Server" msgstr "" msgid "Exit" msgstr "Sortir" msgid "About" msgstr "" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "" msgid "You can visit our site here" msgstr "" msgid "&License" msgstr "" #, python-format msgid "version %s" msgstr "" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "" msgid "License" msgstr "" msgid "= Working Directory Parent =" msgstr "" msgid "Directory of files" msgstr "Directori d'arxius" msgid "Tar archives" msgstr "Arxius tar" msgid "Uncompressed tar archive" msgstr "Arxiu tar descomprimit" msgid "Bzip2 tar archives" msgstr "Arxius tar bzip2" msgid "Tar archive compressed using bzip2" msgstr "Arxiu tar comprimit amb bzip2" msgid "Gzip tar archives" msgstr "Arxius tar gzip" msgid "Tar archive compressed using gzip" msgstr "Arxiu tar comprimit amb gzip" msgid "Zip archives" msgstr "" msgid "Uncompressed zip archive" msgstr "Arxiu zip descomprimit" msgid "Zip archive compressed using deflate" msgstr "Arxiu zip comprimit amb deflate" msgid "Revision:" msgstr "" msgid "All files in this revision" msgstr "" msgid "Only files modified/created in this revision" msgstr "" msgid "Only files modified/created since:" msgstr "" msgid "Archive Content:" msgstr "" msgid "Recurse into subrepositories" msgstr "" msgid "Browse..." msgstr "Explora..." msgid "Destination path:" msgstr "" msgid "Archive types:" msgstr "Tipus d'arxius:" msgid "Hg command:" msgstr "" msgid "Select Destination Folder" msgstr "Seleccioneu una carpeta de destinació" msgid "Select Destination File" msgstr "Seleccioneu fitxer de destinació" msgid "All files (*)" msgstr "" msgid "Duplicate Name" msgstr "" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "" msgid "Confirm Overwrite" msgstr "Confirmeu la sobreeescriptura" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "" #, python-format msgid "Archive - %s" msgstr "Arxiu - %s" msgid "&Archive" msgstr "" msgid "Backout requires a parent revision" msgstr "" msgid "Cannot backout change on a different branch" msgstr "" #, python-format msgid "Backout - %s" msgstr "" msgid "Prepare to backout" msgstr "" msgid "Verify backout revision and ensure your working directory is clean." msgstr "" msgid "Backing out a parent revision is a single step operation" msgstr "" msgid "Backout revision" msgstr "" msgid "Not a head, backout will create a new head!" msgstr "" msgid "Current local revision" msgstr "" msgid "Working directory status" msgstr "" msgid "Checking..." msgstr "" msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Automatically resolve merge conflicts where possible" msgstr "" msgid "Uncommitted local changes are detected" msgstr "" msgid "Clean" msgstr "" msgid "Backing out, then merging..." msgstr "" msgid "All conflicting files will be marked unresolved." msgstr "" msgid "Automatically advance to next page when backout and merge are complete." msgstr "" #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" msgid "No merge conflicts, ready to commit" msgstr "" msgid "Commit backout and merge results" msgstr "" msgid "Parents" msgstr "" msgid "Working Directory" msgstr "" msgid "Working Directory (merged)" msgstr "" msgid "Commit message" msgstr "" msgid "Skip final confirmation page, close after commit." msgstr "" msgid "Backed out changeset: " msgstr "Grup de canvis retirat: " msgid "Confirm Discard Message" msgstr "" msgid "Discard current backout message?" msgstr "" msgid "Use English backout message" msgstr "" msgid "Backing out and committing..." msgstr "" msgid "Please wait while making backout." msgstr "" msgid "Committing..." msgstr "" msgid "Please wait while committing merged files." msgstr "" msgid "Finished" msgstr "" msgid "Backout changeset" msgstr "" #, python-format msgid "Bisect - %s" msgstr "" msgid "Accept" msgstr "" msgid "Known good revision:" msgstr "" msgid "Known bad revision:" msgstr "" msgid "Discard local changes (revert --all)" msgstr "" msgid "Revision is &Good" msgstr "" msgid "Revision is &Bad" msgstr "" msgid "&Skip this Revision" msgstr "" msgid "Close" msgstr "" msgid "Error encountered." msgstr "" msgid "Culprit found." msgstr "" msgid "Revision" msgstr "" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "" #, python-format msgid "%s (hint: %s)" msgstr "" msgid "Bookmark:" msgstr "" msgid "New Name:" msgstr "" msgid "Activate:" msgstr "" msgid "&Add" msgstr "" msgid "Re&name" msgstr "" msgid "&Remove" msgstr "" msgid "&Move" msgstr "" #, python-format msgid "Bookmark - %s" msgstr "" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "" #, python-format msgid "Bookmark '%s' has been added" msgstr "" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "" #, python-format msgid "Bookmark '%s' has been moved" msgstr "" #, python-format msgid "Bookmark '%s' does not exist" msgstr "" #, python-format msgid "Bookmark '%s' has been removed" msgstr "" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "" msgid "TortoiseHg Bookmark Sync" msgstr "" msgid "Outgoing Bookmarks" msgstr "" msgid "&Push Bookmark" msgstr "" msgid "&Remove Bookmark" msgstr "" msgid "Incoming Bookmarks" msgstr "" msgid "P&ull Bookmark" msgstr "" msgid "R&emove Bookmark" msgstr "" #, python-format msgid "Pushed local bookmark: %s" msgstr "" #, python-format msgid "Pulled remote bookmark: %s" msgstr "" #, python-format msgid "Removed remote bookmark: %s" msgstr "" #, python-format msgid "Removed local bookmark: %s" msgstr "" #, python-format msgid "%s - branch operation" msgstr "" msgid "Select branch of merge commit" msgstr "" msgid "Changes take effect on next commit" msgstr "" msgid "No branch changes" msgstr "Sense canvis de branca" msgid "Open a new named branch" msgstr "" msgid "Close current branch" msgstr "" #, python-format msgid "Please report this bug to our bug tracker" msgstr "" msgid "Checking for updates..." msgstr "" msgid "Copy" msgstr "" msgid "Quit" msgstr "" msgid "TortoiseHg Bug Report" msgstr "TortoiseHg: Informe d'error" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "" msgid "Your TortoiseHg is up to date." msgstr "" msgid "Save error report to" msgstr "" msgid "Text files (*.txt)" msgstr "" msgid "Error writing file" msgstr "" msgid "TortoiseHg Error" msgstr "" msgid "" "If you still have trouble, please file a bug report." msgstr "" msgid "Visual Diff" msgstr "" msgid "View file changes in external diff tool" msgstr "" msgid "Edit Local" msgstr "" msgid "Edit current file in working copy" msgstr "" msgid "Revert to Revision" msgstr "" msgid "Revert file(s) to contents at this revision" msgstr "" msgid "Patch failed to apply" msgstr "" msgid "Manually resolve rejected chunks?" msgstr "" msgid "Edit patched file and rejects?" msgstr "" msgid "No deletable chunks" msgstr "" msgid "Completely remove file from patch?" msgstr "" msgid "Revert all file changes?" msgstr "" msgid "No chunks remain" msgstr "" msgid "file has been deleted, refresh" msgstr "" msgid "file has been modified, refresh" msgstr "" msgid "Unable to merge chunks" msgstr "" msgid "Add or remove patches must be merged in the working directory" msgstr "" msgid "Unable to remove" msgstr "" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" msgctxt "files" msgid "All" msgstr "" msgctxt "files" msgid "None" msgstr "" msgid "Toggle display of text search bar" msgstr "" msgid "Diff Toolbar" msgstr "" #, python-format msgid "Chunks selected: %d / %d" msgstr "" msgid "Please wait while the file is opened ..." msgstr "" msgid "Source:" msgstr "" msgid "Destination:" msgstr "" msgid "Options" msgstr "" msgid "Clone to revision:" msgstr "" msgid "A revision identifier, bookmark, tag or branch name" msgstr "" msgid "Do not update the new working directory" msgstr "" msgid "Use pull protocol to copy metadata" msgstr "" msgid "Clone with minimal processing" msgstr "" msgid "Include patch queue" msgstr "" msgid "Use proxy server" msgstr "" msgid "Do not verify host certificate" msgstr "" msgid "Remote command:" msgstr "" msgid "Use largefiles" msgstr "" msgid "Start revision:" msgstr "" msgid "Select source repository" msgstr "" msgid "Select destination repository" msgstr "" msgid "Select patch folder" msgstr "" #, python-format msgid "Clone - %s" msgstr "" msgid "&Clone" msgstr "" msgid "failed to start command\n" msgstr "" msgid "error while running command\n" msgstr "" #, python-format msgid "process exited unexpectedly with code %d" msgstr "" #, python-format msgid "failed to encode command: %s" msgstr "" #, python-format msgid "timed out while reading: %r..." msgstr "" msgid "timed out waiting for message" msgstr "" #, python-format msgid "unexpected response on required channel %r" msgstr "" #, python-format msgid "invalid \"hello\" message: %r" msgstr "" msgid "no \"runcommand\" capability" msgstr "" #, python-format msgid "corrupted command result: %r" msgstr "" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "" msgid "Terminated by user" msgstr "" #, python-format msgid "[command terminated by user %s]" msgstr "" #, python-format msgid "[command interrupted %s]" msgstr "" #, python-format msgid "[command returned code %d %%s]" msgstr "" #, python-format msgid "[command completed successfully %s]" msgstr "" msgid "Running..." msgstr "" msgid "Failed!" msgstr "" msgid "Clea&r Log" msgstr "" msgid "TortoiseHg Prompt" msgstr "" msgid "Show Detail" msgstr "" msgid "Hide Detail" msgstr "" msgid "Confirm Exit" msgstr "" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" msgid "&Run" msgstr "" msgid "TortoiseHg Command Dialog" msgstr "" msgid "Command Error" msgstr "" #, python-format msgid "[Code: %d]" msgstr "" msgid "Merge" msgstr "" #, python-format msgid "Merge with %s" msgstr "" msgid "Patch Name Required" msgstr "" msgid "You must enter a patch name" msgstr "" msgctxt "start progress" msgid "Commit" msgstr "" msgctxt "start progress" msgid "MQ Action" msgstr "" msgctxt "start progress" msgid "Rollback" msgstr "" msgid "Commit Dialog Toolbar" msgstr "" msgid "Branch: " msgstr "" msgid "Copy message" msgstr "" msgid "Copy one of the recent commit messages" msgstr "" msgid "Show Issues" msgstr "" msgid "Please wait..." msgstr "" #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "" msgid "Issue Tracker" msgstr "" msgid "Show Issues..." msgstr "" msgid "Stop" msgstr "" msgid "### patch name ###" msgstr "" msgid "Commit changes" msgstr "" msgid "Commit" msgstr "" msgid "Amend current revision" msgstr "" msgid "Amend" msgstr "" msgid "Create a new patch" msgstr "" msgid "QNew" msgstr "" msgid "Refresh current patch" msgstr "" msgid "QRefresh" msgstr "" msgid "Confirm Branch Change" msgstr "" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "" msgid "Restart &Branch" msgstr "" msgid "&Commit to current branch" msgstr "" msgid "Cancel" msgstr "Cancel·lar" msgid "Confirm New Branch" msgstr "" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "" msgid "Create &Branch" msgstr "" msgid "Close Branch: " msgstr "" msgid "New Branch: " msgstr "" #, python-format msgid "Selected Options: %s" msgstr "" msgid "Parent:" msgstr "" msgid "Patch name:" msgstr "" #, python-format msgid "Close %s branch" msgstr "" #, python-format msgid "Rollback commit to revision %d" msgstr "" msgid "Confirm Undo" msgstr "" msgid "Discard current commit message?" msgstr "" msgid "Message Translation Failure" msgstr "" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" msgid "&Replace" msgstr "" msgid "Nothing Committed" msgstr "" msgid "Please enter commit message" msgstr "" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" msgid "No files checked" msgstr "" msgid "No modified files checkmarked for commit" msgstr "" msgid "Confirm Add" msgstr "" msgid "Add selected untracked files?" msgstr "" msgid "Confirm Remove" msgstr "" msgid "Remove selected deleted files?" msgstr "" msgid "Nothing changed." msgstr "" msgctxt "window title" msgid "Commit" msgstr "" #, python-format msgid "%s - commit options" msgstr "" msgid "Set username:" msgstr "" msgid "Save in Repo" msgstr "" msgid "Save Global" msgstr "" msgid "Set Date:" msgstr "" msgid "Update" msgstr "" msgid "Push After Commit:" msgstr "" msgid "Auto Includes:" msgstr "" msgid "Recurse into subrepositories (--subrepos)" msgstr "" msgid "Unable to save username" msgstr "" msgid "Iniparse must be installed." msgstr "" msgid "Unable to write configuration file" msgstr "" msgid "Unable to save after commit push" msgstr "" msgid "Unable to save auto include list" msgstr "" msgid "Unable to save recurse in subrepos." msgstr "" msgid "Invalid date format" msgstr "" msgid "No username configured" msgstr "" #, python-format msgid "%s - commit" msgstr "" msgid "TortoiseHg Commit" msgstr "" msgid "Are you sure that you want to cancel the commit operation?" msgstr "" msgid "Compress changesets up to and including" msgstr "" msgid "Onto destination" msgstr "" msgid "Compress" msgstr "" #, python-format msgid "Compress - %s" msgstr "" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the compress" msgstr "" msgid "Changes have been moved, you must now commit" msgstr "" msgctxt "action button" msgid "Commit" msgstr "" msgid "Compress is complete, old history untouched" msgstr "" msgid "must be specified repository" msgstr "" msgid "must be specified 'type' in style" msgstr "" msgid "Git Commit:" msgstr "" msgid "Summary:" msgstr "" msgid "User:" msgstr "" msgid "Date:" msgstr "" msgid "Age:" msgstr "" msgid "Branch:" msgstr "" msgid "Close:" msgstr "" msgid "Tags:" msgstr "" msgid "Graft:" msgstr "" msgid "Transplant:" msgstr "" msgid "Obsolete state:" msgstr "" msgid "Perforce:" msgstr "" msgid "Subversion:" msgstr "" msgid "Converted From:" msgstr "" msgid "Original Parent:" msgstr "" msgid "No items to display" msgstr "" msgid "Use compact view" msgstr "" msgid "Patch:" msgstr "" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "" msgid "Select a GUI location to edit:" msgstr "" msgid "Select the toolbar or menu to change" msgstr "" msgid "Tools shown on selected location" msgstr "" msgid "Delete from list" msgstr "" msgid "Add to list" msgstr "" msgid "Add separator" msgstr "" msgid "List of all tools" msgstr "" msgid "New Tool ..." msgstr "" msgid "Edit Tool ..." msgstr "" msgid "Delete Tool" msgstr "" msgid "Type" msgstr "" msgid "Name" msgstr "" msgid "Command" msgstr "" msgid "New hook" msgstr "" msgid "Edit hook" msgstr "" msgid "Delete hook" msgstr "" msgid "Replace existing hook?" msgstr "" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" msgid "OK" msgstr "" msgid "Missing information" msgstr "" msgid "All items" msgstr "" msgid "Working directory" msgstr "" msgid "All revisions" msgstr "" msgid "All contexts" msgstr "" msgid "Fixed revisions" msgstr "" msgid "Applied patches" msgstr "" msgid "Applied patches or qparent" msgstr "" msgid "" msgstr "" msgid "Configure Custom Tool" msgstr "" msgid "Tool name" msgstr "" msgid "The tool name. It cannot contain spaces." msgstr "" #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" msgid "Tool label" msgstr "" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" msgid "Tooltip" msgstr "" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" msgid "Icon" msgstr "" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" msgid "On repowidget, show for" msgstr "" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" msgid "Show Output Log" msgstr "" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" msgid "You must set a tool name." msgstr "" msgid "The tool name cannot have any spaces in it." msgstr "" msgid "You must set a command to run." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" msgid "Configure Hook" msgstr "" msgid "Hook type" msgstr "" msgid "Select when your command will be run" msgstr "" msgid "The hook name. It cannot contain spaces." msgstr "" msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" msgid "You must set a valid hook type." msgstr "" msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "" msgid "Console" msgstr "" msgid "File &History / Annotate" msgstr "" msgid "Show the history of the selected file" msgstr "" msgid "Co&mpare File Revisions" msgstr "" msgid "Compare revisions of the selected file" msgstr "" msgid "Filter Histor&y" msgstr "" msgid "Query about changesets affecting the selected files" msgstr "" msgid "Diff &Changeset to Parent" msgstr "" msgid "Diff Changeset to Loc&al" msgstr "" msgid "&Diff to Parent" msgstr "" msgid "Diff to &Local" msgstr "" msgid "View changes to current in external diff tool" msgstr "" msgid "&View at Revision" msgstr "" msgid "View file as it appeared at this revision" msgstr "" msgid "&Save at Revision..." msgstr "" msgid "Save file as it appeared at this revision" msgstr "" msgid "Save file to" msgstr "Guarda arxiu a" msgid "&Edit Local" msgstr "" msgid "&Open Local" msgstr "" msgid "E&xplore Local" msgstr "" msgid "Open parent folder of current file in the system file manager" msgstr "" msgid "&Copy Patch" msgstr "" msgid "Copy &Path" msgstr "" msgid "Copy full path of file(s) to the clipboard" msgstr "" msgid "&Revert to Revision..." msgstr "" msgid "Open S&ubrepository" msgstr "" msgid "Open the selected subrepository" msgstr "" msgid "E&xplore Folder" msgstr "" msgid "Open the selected folder in the system file manager" msgstr "" msgid "Open &Terminal" msgstr "" msgid "Open a shell terminal in the selected folder" msgstr "" msgid "Custom Tools" msgstr "" msgid "Diff &Local" msgstr "" msgid "&View Missing" msgstr "" msgid "View O&ther" msgstr "" msgid "Add &Largefiles..." msgstr "" msgid "&Forget" msgstr "" msgid "&Delete Unversioned..." msgstr "" msgid "Confirm Delete Unversioned" msgstr "" msgid "Delete the following unversioned files?" msgstr "" msgid "&Delete" msgstr "" msgid "Re&move Versioned" msgstr "" msgid "&Revert..." msgstr "" msgid "Uncommited merge - please select a parent revision" msgstr "" msgid "Revert files to local or other parent?" msgstr "" msgid "&Local" msgstr "" msgid "&Other" msgstr "" msgid "Confirm Revert" msgstr "" msgid "Revert local file changes?" msgstr "" msgid "&Revert with backup" msgstr "" msgid "&Discard changes" msgstr "" msgid "Revert the following files?" msgstr "" msgid "&Revert" msgstr "" msgid "&Copy..." msgstr "" msgid "Re&name..." msgstr "" msgid "&Ignore..." msgstr "" msgid "Edit Re&jects" msgstr "" msgid "Manually resolve rejected patch chunks" msgstr "" msgid "De&tect Renames..." msgstr "" msgid "&Mark Resolved" msgstr "" msgid "&Mark Unresolved" msgstr "" msgid "Restart Mer&ge" msgstr "" msgid "Was renamed from" msgstr "" msgid "Restart Merge &with" msgstr "" msgid "Display the file anyway" msgstr "" msgid "Diff not displayed: " msgstr "" #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid "File is binary" msgstr "" msgid "File may be binary (maximum line length exceeded)" msgstr "" msgid "File or diffs not displayed: " msgstr "" msgid " (was added)" msgstr "" #, python-format msgid " (copied from %s)" msgstr "" #, python-format msgid " (renamed from %s)" msgstr "" msgid " (is a symlink)" msgstr "" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid " (was deleted)" msgstr "" msgid " (was added, now missing)" msgstr "" msgid " (is unversioned)" msgstr "" msgid "exec mode has been set" msgstr "" msgid "exec mode has been unset" msgstr "" #, python-format msgid "changeset: %s" msgstr "" msgid "Initial revision" msgstr "" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" msgid "Subrepo created and set to initial revision." msgstr "" msgid "Subrepo initialized to revision:" msgstr "" msgid "Subrepo removed from repository." msgstr "" msgid "Previously the subrepository was at the following revision:" msgstr "" msgid "Subrepo was not changed." msgstr "" msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "" msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "" msgid "Subrepo state is:" msgstr "" msgid "Revision has changed to:" msgstr "" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "" msgid "From:" msgstr "" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" msgid "Subrepository not found in the working directory." msgstr "" msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" msgid "Not a Mercurial subrepo, not previewable" msgstr "" #, python-format msgid "Error previewing subrepo: %s" msgstr "" msgid "Subrepo may be damaged or inaccessible." msgstr "" msgid "The subrepository is dirty." msgstr "" msgid "File Status:" msgstr "" msgid "(is a changed sub-repository)" msgstr "" msgid "(is an unchanged sub-repository)" msgstr "" msgid "(is a dirty sub-repository)" msgstr "" msgid "(is a new sub-repository)" msgstr "" msgid "(is a removed sub-repository)" msgstr "" msgid "(is a changed and dirty sub-repository)" msgstr "" msgid "(is a new and dirty sub-repository)" msgstr "" msgid "open..." msgstr "" #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "" msgid "File History Log Columns" msgstr "" msgid "Back" msgstr "" msgid "Forward" msgstr "" msgid "Diff Selected &Changesets" msgstr "" msgid "&Diff Selected File Revisions" msgstr "" msgid "Show Revision &Details" msgstr "" msgid "Too many rows selected for menu" msgstr "" msgid "File Differences Log Columns" msgstr "" msgid "Next diff" msgstr "" msgid "Previous diff" msgstr "" msgid "Unicode" msgstr "" msgid "Western Europe" msgstr "" msgid "Unified Chinese" msgstr "" msgid "Traditional Chinese" msgstr "" msgid "Korean" msgstr "" msgid "Japanese" msgstr "" msgid "Thai" msgstr "" msgid "Central and Eastern Europe" msgstr "" msgid "Cyrillic" msgstr "" msgid "Russian" msgstr "" msgid "Ukrainian" msgstr "" msgid "Greek" msgstr "" msgid "Turkish" msgstr "" msgid "Arabic" msgstr "" msgid "Hebrew" msgstr "" msgid "Vietnamese" msgstr "" msgid "Baltic" msgstr "" msgid "Southern Europe" msgstr "" msgid "Nordic" msgstr "" msgid "Celtic" msgstr "" msgid "South-Eastern Europe" msgstr "" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "" msgid "View change as unified diff output" msgstr "" msgid "View change in context of file" msgstr "" msgid "Annotate with revision numbers" msgstr "" msgid "Next Diff" msgstr "" msgid "Previous Diff" msgstr "" msgid "Open shelve tool" msgstr "" msgid "&Auto Detect" msgstr "" msgid "Show changes from first parent" msgstr "" msgid "Show changes from second parent" msgstr "" msgid "E&ncoding" msgstr "" msgid "&Search in Current File" msgstr "" msgid "Search in All &History" msgstr "" msgid "Go to Line" msgstr "" #, python-format msgid "Enter line number (1 - %d)" msgstr "" msgid "Show &Author" msgstr "" msgid "Show &Date" msgstr "" msgid "Show &Revision" msgstr "" msgid "Annotate Op&tions" msgstr "" msgid "Search Selected Text" msgstr "" msgid "In Current &File" msgstr "" msgid "In &Current Revision" msgstr "" msgid "In &Original Revision" msgstr "" msgid "In All &History" msgstr "" msgid "Go to" msgstr "" msgid "View File at" msgstr "" msgid "Diff File to" msgstr "" msgid "&Originating Revision" msgstr "" msgid "&Parent Revision" msgstr "" #, python-format msgid "&Parent Revision (%d)" msgstr "" msgid "&Mark Excluded Changes" msgstr "" msgid "(excluded from the next commit)" msgstr "" msgid "Interrupted graft operation found" msgstr "" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" msgid "Continue or abort interrupted graft operation?" msgstr "" msgid "To graft destination" msgstr "" msgid "Use my user name instead of graft committer user name" msgstr "" msgid "Use current date" msgstr "" msgid "Append graft info to log message" msgstr "" msgid "Graft" msgstr "" msgid "Abort" msgstr "" #, python-format msgid "Graft - %s" msgstr "" msgid "Graft changeset" msgstr "" #, python-format msgid "Graft changeset #%d of %d" msgstr "" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" msgid "You may continue or start the graft" msgstr "" msgid "Graft is complete" msgstr "" msgid "Graft failed" msgstr "" msgid "Graft aborted" msgstr "" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" msgid "You may continue the graft" msgstr "" msgid "Exiting with an unfinished graft is not recommended." msgstr "" msgid "Consider aborting the graft first." msgstr "" msgid "&Exit" msgstr "" msgid "### regular expression search pattern ###" msgstr "" msgid "Regexp:" msgstr "" msgid "Ignore case" msgstr "" msgid "Search" msgstr "" msgid "Working Copy" msgstr "" msgid "All History" msgstr "" msgid "Report only the first match per file" msgstr "" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "" msgid "Includes:" msgstr "" msgid "Excludes:" msgstr "" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" #, python-format msgid "\"%s\" removed from search history" msgstr "" #, python-format msgid "\"%s\" removed from path history" msgstr "" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "" #, python-format msgid "grep: %s\n" msgstr "" #, python-format msgid "%d matches found" msgstr "" msgid "No matches found" msgstr "" msgid "Searching" msgstr "" msgid "history" msgstr "" msgid "Interrupted" msgstr "" msgid "files" msgstr "" #, python-format msgid "Skipping %s, unable to read" msgstr "" msgid "Vi&ew File" msgstr "" msgid "&View Changeset" msgstr "" msgid "Annotate &File" msgstr "" msgid "File" msgstr "" msgid "Line" msgstr "" msgid "Rev" msgstr "" msgid "User" msgstr "" msgid "Match Text" msgstr "" msgid "TortoiseHg Search" msgstr "" #, python-format msgid "Detect Copies/Renames in %s" msgstr "" msgid "Unrevisioned Files" msgstr "" msgid "Refresh file list" msgstr "" #, python-format msgid "Min Similarity: %d%%" msgstr "" msgid "Only consider deleted files" msgstr "" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "" msgid "Find Renames" msgstr "" msgid "Find copy and/or rename sources" msgstr "" msgid "Candidate Matches" msgstr "" msgid "Accept All Matches" msgstr "" msgid "Accept Selected Matches" msgstr "" msgid "Differences from Source to Dest" msgstr "" msgid "Search already in progress" msgstr "" msgid "Cannot start a new search" msgstr "" msgid "No files to find" msgstr "" msgid "There are no files that may have been renamed" msgstr "" msgid "Multiple sources chosen" msgstr "" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" #. i18n: percent format #, python-format msgid "%d%%" msgstr "" msgid "Source" msgstr "" msgid "Dest" msgstr "" msgid "% Match" msgstr "" msgid "Sending Email" msgstr "" msgid "Email" msgstr "" msgid "To:" msgstr "" msgid "Cc:" msgstr "" msgid "In-Reply-To:" msgstr "" msgid "Message identifier to reply to, for threading" msgstr "" msgid "Flag:" msgstr "" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" msgid "Send changesets as Hg patches" msgstr "" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" msgid "Use extended (git) patch format" msgstr "" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" msgid "Plain, do not prepend Hg header" msgstr "" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" msgid "Send single binary bundle, not patches" msgstr "" msgid "send patches as part of the email body" msgstr "" msgid "body" msgstr "" msgid "send patches as attachments" msgstr "" msgid "attach" msgstr "" msgid "send patches as inline attachments" msgstr "" msgid "inline" msgstr "" msgid "add diffstat output to messages" msgstr "" msgid "diffstat" msgstr "" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" msgid "Write patch series (bundle) description" msgstr "" msgid "Subject:" msgstr "" msgid "Changesets" msgstr "" msgid "Select &All" msgstr "" msgid "Select &None" msgstr "" msgid "Edit" msgstr "" msgid "Preview" msgstr "" msgid "&Settings" msgstr "" msgid "Send &Email" msgstr "" msgid "&Close" msgstr "" #, python-format msgid "Ignore filter - %s" msgstr "" msgid "Glob" msgstr "" msgid "Regexp" msgstr "" msgid "Add" msgstr "" msgid "Edit File" msgstr "" msgid "Ignore Filter" msgstr "" msgid "Untracked Files" msgstr "" msgid "Backspace or Del to remove row(s)" msgstr "" msgid "Add ignore filter..." msgstr "" msgid "selected files" msgstr "" msgid "Ignore " msgstr "" msgid "Invalid glob expression" msgstr "" msgid "Invalid regexp expression" msgstr "" msgid "Unable to read repository status" msgstr "" msgid "New file created" msgstr "" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" msgid "Unable to write .hgignore file" msgstr "" msgid "Copy working directory files from skeleton" msgstr "" msgid "Create special files (.hgignore, ...)" msgstr "" msgid "Make repo compatible with Mercurial <1.7" msgstr "" msgid "New Repository" msgstr "" msgid "&Create" msgstr "" msgid "Unable to create a config file" msgstr "" msgid "Insufficient access rights." msgstr "" msgid "Show Log" msgstr "" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" msgid "Add as &Largefiles" msgstr "" msgid "Add as &Normal Files" msgstr "" msgid "Invalid Patterns" msgstr "" msgid "Failed to process largefiles.patterns." msgstr "" msgid "Word docs (*.doc *.docx)" msgstr "" msgid "PDF docs (*.pdf)" msgstr "" msgid "Excel files (*.xls *.xlsx)" msgstr "" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "" msgid "Refresh lock information" msgstr "" msgid "Lock a file not described in .hglocks" msgstr "" msgid "Stop current operation" msgstr "" msgid "Locked And Lockable Files:" msgstr "" msgid "Path" msgstr "" msgid "Locking User" msgstr "" msgid "Purpose" msgstr "" msgid "Simplelock extension not enabled" msgstr "" msgid "Please enable and configure simplelock" msgstr "" msgid "Open a (nonmergable) file you wish to be locked" msgstr "" msgid "File was not within current repository" msgstr "" #, python-format msgid "Locking %s" msgstr "" #, python-format msgid "Unlocking %s" msgstr "" msgid "Refreshing locks..." msgstr "" #, python-format msgid "Lock of %s successful" msgstr "" #, python-format msgid "Lock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s successful" msgstr "" msgid "Ready, double click to lock or unlock" msgstr "" msgid "Ready" msgstr "" msgid "You can only release your own locks" msgstr "" msgid "Find revisions matching fields of:" msgstr "" msgid "Revision to Match:" msgstr "" msgid "Fields to match:" msgstr "" msgid "Summary (first description line)" msgstr "" msgid "Description" msgstr "" msgid "Author" msgstr "" msgid "Date" msgstr "" msgid "Files" msgstr "Fitxers" msgid "Diff contents" msgstr "" msgid "Subrepo states" msgstr "" msgid "Branch" msgstr "" msgid "Phase" msgstr "" msgid "&Match" msgstr "" #, python-format msgid "Find matches - %s" msgstr "" msgid "Revisions to Match:" msgstr "" #, python-format msgid "Match any of %d revisions" msgstr "" msgid "Unknown revision!" msgstr "" msgid "Parse Error!" msgstr "" #, python-format msgid "Merge - %s" msgstr "" msgid "Do you want to exit?" msgstr "" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" msgid "Prepare to merge" msgstr "" msgid "Verify merge targets and ensure your working directory is clean." msgstr "" msgid "Not a head revision!" msgstr "" msgid "Merge from (other revision)" msgstr "" msgid "Merge to (working directory)" msgstr "" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Or use:" msgstr "" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "" msgid "Discard all changes from the other revision" msgstr "" msgid "&Discard" msgstr "" msgid "Confirm Discard Changes" msgstr "" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" msgctxt "working dir state" msgid "Clean" msgstr "" msgid "Merging..." msgstr "" msgid "Automatically advance to next page when merge is complete." msgstr "" #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" msgid "" "No merge conflicts, ready to commit or review" msgstr "" msgid "Commit merge results" msgstr "" msgid "Commit Options" msgstr "" msgid "Commit Now" msgstr "" msgid "Commit Later" msgstr "" msgid "Merge changeset" msgstr "" msgid "Syntax Highlighting" msgstr "" msgid "Paste &Filenames" msgstr "" msgid "App&ly Format" msgstr "" msgid "C&onfigure Format" msgstr "" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "" msgid "&Commit to Queue..." msgstr "" msgid "Create &New Queue..." msgstr "" msgid "&Rename Active Queue..." msgstr "" msgid "&Delete Queue..." msgstr "" msgid "&Purge Queue..." msgstr "" msgid "Create Patch Queue" msgstr "" msgid "New patch queue name" msgstr "" msgid "Create" msgstr "" msgid "Rename Patch Queue" msgstr "" #, python-format msgid "Rename patch queue '%s' to" msgstr "" msgid "Rename" msgstr "" msgid "Delete Patch Queue" msgstr "" msgid "Delete reference to" msgstr "" msgid "Delete" msgstr "" msgid "Purge Patch Queue" msgstr "" msgid "Remove patch directory of" msgstr "" msgid "Purge" msgstr "" msgid "Rename Patch" msgstr "" #, python-format msgid "Rename patch %s to:" msgstr "" msgid "no guards" msgstr "" msgid "Patch Queue" msgstr "" msgctxt "MQ QPush" msgid "Push" msgstr "" msgid "Apply one patch" msgstr "" msgctxt "MQ QPush" msgid "Push all" msgstr "" msgid "Apply all patches" msgstr "" msgid "Pop" msgstr "" msgid "Unapply one patch" msgstr "" msgid "Pop all" msgstr "" msgid "Unapply all patches" msgstr "" msgid "Go &to Patch" msgstr "" msgid "&Apply Only This Patch" msgstr "" msgid "Apply only the selected patch" msgstr "" msgid "&Finish Patch" msgstr "" msgid "Move applied patches into repository history" msgstr "" msgid "&Delete Patches..." msgstr "" msgid "Delete selected patches" msgstr "" msgid "Re&name Patch..." msgstr "" msgid "Set &Guards..." msgstr "" msgid "Configure guards for selected patch" msgstr "" msgid "Patch Queue Actions Toolbar" msgstr "" msgid "Configure guards" msgstr "" #, python-format msgid "Input new guards for %s:" msgstr "" msgid "Confirm patch queue switch" msgstr "" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "" #, python-format msgid "Guards: %d/%d" msgstr "" msgid "MQ options" msgstr "" msgid "Force push or pop (--force)" msgstr "" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "" msgid "Submitting p4 changelist..." msgstr "" msgid "Reverting p4 changelist..." msgstr "" msgid "Patch Branch Toolbar" msgstr "" msgid "Merge all pending dependencies" msgstr "" msgid "Backout current patch branch" msgstr "" msgid "Backport part of a changeset to a dependency" msgstr "" msgid "Start a new patch branch" msgstr "" msgid "Edit patch dependency graph" msgstr "" msgid "will be closed" msgstr "" #, python-format msgid "needs merge of %i heads\n" msgstr "" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "" #, python-format msgid "needs merge with %s\n" msgstr "" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "" msgid "&Goto (update workdir)" msgstr "" msgid "&Merge" msgstr "" msgid "No patch branch selected" msgstr "" msgid "No editor found" msgstr "" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" msgid "Graph" msgstr "" msgid "Status" msgstr "" msgid "Title" msgstr "" msgid "Message" msgstr "" msgid "New Patch Branch" msgstr "" msgid "Patch message:" msgstr "" msgid "Patch date:" msgstr "" msgid "Patch user:" msgstr "" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" msgid "Review Board" msgstr "" msgid "Password:" msgstr "" msgid "Error" msgstr "" #, python-format msgid "Review draft posted to %s\n" msgstr "" #, python-format msgid "Review published to %s\n" msgstr "" msgid "Success" msgstr "" msgid "Repository ID:" msgstr "" msgid "Post Review" msgstr "" msgid "Review ID:" msgstr "" msgid "Update the fields of this existing request" msgstr "" msgid "Update Review" msgstr "" msgid "Create diff with all outgoing changes" msgstr "" msgid "Create diff with all changes on this branch" msgstr "" msgid "Publish request immediately" msgstr "" msgid "%p%" msgstr "" msgid "Connecting to Review Board..." msgstr "" msgid "Target:" msgstr "" msgid "Do not modify working copy (-k/--keep)" msgstr "" #, python-format msgid "Prune - %s" msgstr "" msgid "&Prune" msgstr "" msgid "No unknown files found" msgstr "" msgid "No ignored files found" msgstr "" msgid "No trash files found" msgstr "" msgid "Delete empty folders" msgstr "" msgid "Preserve files beginning with .hg" msgstr "" #, python-format msgid "%s - purge" msgstr "" msgid "Checking" msgstr "" msgid "Ready to purge." msgstr "" #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "" msgstr[1] "" msgid "Confirm file deletions" msgstr "" msgid "Are you sure you want to delete these files and/or folders?" msgstr "" msgid "Deletion failures" msgstr "" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "" msgstr[1] "" msgid "Deleting trash folder..." msgstr "" #, python-format msgid "Deleted %d files" msgstr "" #, python-format msgid "Deleted %d files and %d folders" msgstr "" msgid "Delete Patches" msgstr "" msgid "Remove patches from queue?" msgstr "" msgid "Keep patch files" msgstr "" #, python-format msgid "Patch fold - %s" msgstr "" msgid "New patch message:" msgstr "" msgid "Patches to fold" msgstr "" msgid "&Undo" msgstr "" msgid "&Redo" msgstr "" msgid "Cu&t" msgstr "" msgid "&Copy" msgstr "" msgid "&Paste" msgstr "" msgid "&Editor Options" msgstr "" msgid "&Wrap" msgstr "" msgctxt "wrap mode" msgid "&None" msgstr "" msgid "&Word" msgstr "" msgid "&Character" msgstr "" msgid "White&space" msgstr "" msgid "&Visible" msgstr "" msgid "&Invisible" msgstr "" msgid "&AfterIndent" msgstr "" msgid "&TAB Inserts" msgstr "" msgid "&Auto" msgstr "" msgid "&TAB" msgstr "" msgid "&Spaces" msgstr "" msgid "EOL &Visibility" msgstr "" msgid "EOL &Mode" msgstr "" msgid "&Windows" msgstr "" msgid "&Unix" msgstr "" msgid "&Mac" msgstr "" msgid "&Auto-Complete" msgstr "" msgid "### regular expression ###" msgstr "" msgid "Regular expression search pattern" msgstr "" msgid "Wrap search" msgstr "" msgid "Prev" msgstr "" msgid "Next" msgstr "" msgid "Unable to read file" msgstr "" msgid "Could not open the specified file for reading." msgstr "" msgid "This appears to be a binary file." msgstr "" msgid "An error occurred while reading the file." msgstr "" msgid "Text Translation Failure" msgstr "" msgid "Could not translate the file content from native encoding." msgstr "" msgid "Several characters would be lost." msgstr "" msgid "Unable to write file" msgstr "" msgid "Could not translate the file content to native encoding." msgstr "" msgid "Could not open the specified file for writing." msgstr "" msgid "An error occurred while writing the file." msgstr "" msgid "Try refreshing your repository." msgstr "" #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
      Please edit your config" msgstr "" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
      Please fix your config" msgstr "" #, python-format msgid "Operation aborted:

      %(arg0)s." msgstr "" msgid "Repository is locked" msgstr "" msgid "hint:" msgstr "" msgid "Repository Error" msgstr "" msgid "No visual editor configured" msgstr "" msgid "Please configure a visual editor." msgstr "" msgid "Editor launch failure" msgstr "" msgid "Failed to open path in terminal" msgstr "" #, python-format msgid "\"%s\" is not a valid directory" msgstr "" #, python-format msgid "Invalid configuration: %s" msgstr "" msgid "Unable to start the following command:" msgstr "" msgid "No shell configured" msgstr "" msgid "A terminal shell must be configured" msgstr "" msgid "Please enter a username" msgstr "" msgid "You must identify yourself to Mercurial" msgstr "" msgid "Unable to translate input to local encoding." msgstr "" msgid "Checkmark files to add" msgstr "" msgid "Checkmark files to forget" msgstr "" msgid "Forget" msgstr "" msgid "Checkmark files to revert" msgstr "" msgid "Revert" msgstr "" msgid "Checkmark files to remove" msgstr "" msgid "Remove" msgstr "" #, python-format msgid "%s - hg %s" msgstr "" msgid "Do not save backup files (*.orig)" msgstr "" msgid "Force removal of modified files (--force)" msgstr "" msgid "Add &Largefiles" msgstr "" msgid "No files selected" msgstr "" msgid "No operation to perform" msgstr "" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" msgid "Remove &Unmodified Files" msgstr "" msgid "Remove &All Selected Files" msgstr "" msgid "Rebase changeset and descendants" msgstr "" msgid "To rebase destination" msgstr "" msgid "Swap source and destination" msgstr "" msgid "Keep original changesets (--keep)" msgstr "" msgid "Keep original branch names (--keepbranches)" msgstr "" msgid "Collapse the rebased changesets (--collapse)" msgstr "" msgid "Rebase entire source branch (-b/--base)" msgstr "" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "" msgid "Rebase" msgstr "" #, python-format msgid "Rebase - %s" msgstr "" msgid "" "Before rebase, you must
      commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the rebase" msgstr "" msgid "Rebase is complete" msgstr "" msgid "Rebase failed" msgstr "" msgid "Rebase aborted" msgstr "" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" msgid "Exiting with an unfinished rebase is not recommended." msgstr "" msgid "Consider aborting the rebase first." msgstr "" #, python-format msgid "Merge rejected patch chunks into %s" msgstr "" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "" msgid "Mark this chunk as unresolved" msgstr "" msgid "Reload File" msgstr "" msgid "Are you sure you want to reload this file?" msgstr "" msgid "All unsaved changes will be lost." msgstr "" msgid "Warning" msgstr "" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" msgid "Copy source -> destination" msgstr "" msgid "Copy Error" msgstr "" msgid "Rename Error" msgstr "" msgid "Select Source File" msgstr "" msgid "Select Source Folder" msgstr "Seleccioneu una carpeta d'origen" msgid "Source does not exist." msgstr "" msgid "The source must be within the repository tree." msgstr "" msgid "The destination must be within the repository tree." msgstr "" msgid "Destination file already exists." msgstr "" msgid "Are you sure you want to overwrite it ?" msgstr "" #, python-format msgid "Copy - %s" msgstr "" #, python-format msgid "Rename - %s" msgstr "" msgid "Show all" msgstr "" msgid "### revision set query ###" msgstr "" msgid "Clear current query and query text" msgstr "" msgid "Trigger revision set query" msgstr "" msgid "Open advanced query editor" msgstr "" msgid "Delete selected query from history" msgstr "" msgid "filter" msgstr "" msgid "Toggle filtering of non-matched changesets" msgstr "" msgid "Show/Hide hidden changesets" msgstr "" msgid "Toggle graft relations visibility" msgstr "" msgid "Keyword Search" msgstr "" msgid "Revision Set" msgstr "" msgid "(unsaved)" msgstr "" msgid "Display graph the named branch only" msgstr "" msgid "Display only active branches" msgstr "" msgid "Display closed branches" msgstr "" msgid "Include all ancestors" msgstr "" msgctxt "column header" msgid "Graph" msgstr "" msgctxt "column header" msgid "Rev" msgstr "" msgctxt "column header" msgid "Branch" msgstr "" msgctxt "column header" msgid "Description" msgstr "" msgctxt "column header" msgid "Author" msgstr "" msgctxt "column header" msgid "Tags" msgstr "" msgctxt "column header" msgid "Latest tags" msgstr "" msgctxt "column header" msgid "Node" msgstr "" msgctxt "column header" msgid "Git Commit" msgstr "" msgctxt "column header" msgid "Age" msgstr "" msgctxt "column header" msgid "Local Time" msgstr "" msgctxt "column header" msgid "UTC Time" msgstr "" msgctxt "column header" msgid "Changes" msgstr "" msgctxt "column header" msgid "Converted From" msgstr "" msgctxt "column header" msgid "Phase" msgstr "" msgctxt "column header" msgid "Filename" msgstr "" msgid "Searching..." msgstr "" #, python-format msgid "filling (%d)" msgstr "" msgid "Mercurial User" msgstr "" msgid "Repository Registry" msgstr "" msgid "Show &Paths" msgstr "" msgid "Show S&hort Paths" msgstr "" msgid "&Scan Repositories at Startup" msgstr "" msgid "Scan &Remote Repositories" msgstr "" msgid "&Refresh Repository List" msgstr "" msgid "Refresh the Repository Registry list" msgstr "" msgid "&Open" msgstr "" msgid "Open the repository in a new tab" msgstr "" msgid "&Open All" msgstr "" msgid "Open all repositories in new tabs" msgstr "" msgid "New &Group" msgstr "" msgid "Create a new group" msgstr "" msgid "Rename the entry" msgstr "" msgid "Settin&gs" msgstr "" msgid "View the repository's settings" msgstr "" msgid "Re&move from Registry" msgstr "" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" msgid "Clon&e..." msgstr "" msgid "Clone Repository" msgstr "" msgid "E&xplore" msgstr "" msgid "Open the repository in a file browser" msgstr "" msgid "&Terminal" msgstr "" msgid "Open a shell terminal in the repository root" msgstr "" msgid "&Add Repository..." msgstr "" msgid "Add a repository to this group" msgstr "" msgid "A&dd Subrepository..." msgstr "" msgid "Convert an existing repository into a subrepository" msgstr "" msgid "Remo&ve Subrepository..." msgstr "" msgid "Remove this subrepository from the current revision" msgstr "" msgid "Copy the root path of the repository to the clipboard" msgstr "" msgid "Sort by &Name" msgstr "" msgid "Sort the group by short name" msgstr "" msgid "Sort by &Path" msgstr "" msgid "Sort the group by full path" msgstr "" msgid "&Sort by .hgsub" msgstr "" msgid "Order the subrepos as in .hgsub" msgstr "" msgid "Select repository directory to add" msgstr "" msgid "Select an existing repository to add as a subrepo" msgstr "" msgid "Cannot add subrepository" msgstr "" #, python-format msgid "%s is not a valid repository" msgstr "" #, python-format msgid "\"%s\" is not a folder" msgstr "" msgid "A repository cannot be added as a subrepo of itself" msgstr "" #, python-format msgid "" "The selected folder:

      %s

      is not inside the target repository." "

      This may be allowed but is greatly discouraged.
      If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" msgid "Cannot open repository" msgstr "" #, python-format msgid "The selected repository:

      %s

      cannot be open!" msgstr "" msgid "Subrepository already exists" msgstr "" #, python-format msgid "" "The selected repository:

      %s

      is already a subrepository of:" "

      %s

      as: \"%s\"" msgstr "" msgid "Failed to add subrepository" msgstr "" #, python-format msgid "Cannot open the .hgsub file in:

      %s" msgstr "" msgid "Failed to add repository" msgstr "" #, python-format msgid "The .hgsub file already contains the line:

      %s" msgstr "" msgid "Subrepo added to .hgsub file" msgstr "" #, python-format msgid "" "The selected subrepo:

      %s

      has been added to the .hgsub " "file of the repository:

      %s

      Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" #, python-format msgid "Cannot update the .hgsub file in:

      %s" msgstr "" msgid "Could not open .hgsub file" msgstr "" msgid "Cannot read the .hgsub file.

      Subrepository removal failed." msgstr "" msgid "Subrepository not found" msgstr "" msgid "" "The selected subrepository was not found on the .hgsub file.

      Perhaps it " "has already been removed?" msgstr "" msgid "&Yes" msgstr "" msgid "&No" msgstr "" msgid "Remove the selected repository?" msgstr "" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" msgid "Subrepository removed from .hgsub" msgstr "" msgid "" "The selected subrepository has been removed from the .hgsub file.

      Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" msgid "Could not update .hgsub file" msgstr "" msgid "Cannot update the .hgsub file.

      Subrepository removal failed." msgstr "" #, python-format msgid "Unsupported repository type (%s)" msgstr "" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "" msgid "New Group" msgstr "" msgid "Confirm Delete" msgstr "" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "" msgid "Could not get subrepository list" msgstr "" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

      %s" msgstr "" msgid "Could not open some subrepositories" msgstr "" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

      %s

      The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

      %s" msgstr "" msgid "Updating repository registry" msgstr "" #, python-format msgid "Loading repository %s" msgstr "" msgid "Repository Registry updated" msgstr "" msgid "Close tab" msgstr "" msgid "Close other tabs" msgstr "" msgid "Undo close tab" msgstr "" msgid "Reopen last closed tab" msgstr "" msgid "Undo close other tabs" msgstr "" msgid "Reopen last closed tab group" msgstr "" msgid "Failed to open repository" msgstr "" msgid "&Sort" msgstr "" #, python-format msgid "Local Repository %s" msgstr "" #, python-format msgid "" "An exception happened while loading the subrepos of:

      \"%s\"

      " msgstr "" #, python-format msgid "The exception error message was:

      %s

      " msgstr "" msgid "Click OK to continue or Abort to exit." msgstr "" msgid "Error loading subrepos" msgstr "" msgid "Unable to update repository name" msgstr "" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "" msgid "default" msgstr "" msgid "C&hoose Log Columns..." msgstr "" msgid "&Resize Columns" msgstr "" #, python-format msgid "Goto ancestor of %s and %s" msgstr "" #, python-format msgid "Can't find revision '%s'" msgstr "" msgid "Drag to change order" msgstr "" msgid "Workbench Log Columns" msgstr "" msgctxt "tab tooltip" msgid "Revision details" msgstr "" msgctxt "tab tooltip" msgid "Commit" msgstr "" msgctxt "tab tooltip" msgid "Search" msgstr "" msgctxt "tab tooltip" msgid "Console log" msgstr "" msgctxt "tab tooltip" msgid "Synchronize" msgstr "" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "" #, python-format msgid "%s " msgstr "" #, python-format msgid "Found %d incoming changesets" msgstr "" msgid "Pull" msgstr "" msgid "Pull incoming changesets into your repository" msgstr "" msgid "Reject incoming changesets" msgstr "" #, python-format msgid "Push current branch (%s)" msgstr "" #, python-format msgid "Push up to current revision (#%d)" msgstr "" #, python-format msgid "Push up to revision #%d" msgstr "" msgid "Push all" msgstr "" msgid "no outgoing changesets" msgstr "" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets" msgstr "" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "" msgid "Nothing to push" msgstr "" msgid "No revision found" msgstr "" #, python-format msgid "%s - verify repository" msgstr "" #, python-format msgid "%s - recover repository" msgstr "" msgid "No transaction available" msgstr "" msgid "There is no rollback transaction available" msgstr "" msgid "Undo last commit?" msgstr "" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "" msgid "Undo last transaction?" msgstr "" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "" msgid "Unable to determine working copy revision\n" msgstr "" msgid "Remove current working revision?" msgstr "" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" msgid "Tab cannot exit" msgstr "" msgid "Pus&h" msgstr "" msgid "Push to &Here" msgstr "" msgid "Push Selected &Branch" msgstr "" msgid "Push &All" msgstr "" msgid "&Update..." msgstr "" msgid "Bro&wse at Revision" msgstr "" msgid "&Merge with Local..." msgstr "" msgid "&Tag..." msgstr "" msgid "Boo&kmark..." msgstr "" msgid "Top&ic..." msgstr "" msgid "Sig&n..." msgstr "" msgid "&Backout..." msgstr "" msgid "Revert &All Files..." msgstr "" msgid "Copy &Hash" msgstr "" msgid "E&xport" msgstr "" msgid "E&xport Patch..." msgstr "" msgid "&Email Patch..." msgstr "" msgid "&Archive..." msgstr "" msgid "&Bundle Rev and Descendants..." msgstr "" msgid "Change &Phase to" msgstr "" msgid "&Graft to Local..." msgstr "" msgid "Modi&fy History" msgstr "" msgid "&Unapply Patch" msgstr "" msgid "Import to &MQ" msgstr "" msgid "MQ &Options" msgstr "" msgid "&Rebase..." msgstr "" msgid "&Prune..." msgstr "" msgid "&Strip..." msgstr "" msgid "Post to Re&view Board..." msgstr "" msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "" msgid "Write diff file" msgstr "" msgid "Unable to write diff file" msgstr "" msgid "Unable to compress history" msgstr "" msgid "Selected changeset pair not related" msgstr "" msgid "Visual Diff..." msgstr "" msgid "Export Diff..." msgstr "" msgid "Export Selected..." msgstr "" msgid "Email Selected..." msgstr "" msgid "Copy Selected as Patch" msgstr "" msgid "Archive DAG Range..." msgstr "" msgid "Export DAG Range..." msgstr "" msgid "Email DAG Range..." msgstr "" msgid "Bundle DAG Range..." msgstr "" msgid "Bisect - Good, Bad..." msgstr "" msgid "Bisect - Bad, Good..." msgstr "" msgid "Compress History..." msgstr "" msgid "Rebase..." msgstr "" msgid "Goto common ancestor" msgstr "" msgid "Graft Selected to local..." msgstr "" msgid "&Prune Selected..." msgstr "" msgid "Post Selected to Review Board..." msgstr "" msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "" msgid "Apply onto original parent" msgstr "" msgid "Apply only this patch" msgstr "" msgid "Fold patches..." msgstr "" msgid "Delete patches..." msgstr "" msgid "Rename patch..." msgstr "" msgid "Pull to here..." msgstr "" msgid "Visual diff..." msgstr "" msgid "Export patch" msgstr "" msgid "Patch Files (*.patch)" msgstr "" msgid "Cannot export revision" msgstr "" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" msgid "There is already an existing folder with that same name." msgstr "" msgid "Replace" msgstr "" msgid "Append" msgstr "" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" msgid "What do you want to do?\n" msgstr "" msgid "Replace the existing patch files.\n" msgstr "" msgid "Append the changes to the existing patch files.\n" msgstr "" msgid "Abort the export operation.\n" msgstr "" msgid "Patch files already exist" msgstr "" msgid "Patch exported" msgstr "" #, python-format msgid "" "Revision #%d (%s) was exported to:

      %s%s%s" msgstr "" msgid "Patches exported" msgstr "" #, python-format msgid "%d patches were exported to:

      %s" msgstr "" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

      Are you sure you want to use revert?

      (use " "update to checkout another revision)" msgstr "" msgid "Filter b&y" msgstr "" msgid "&Ancestors and Descendants" msgstr "" msgid "A&uthor" msgstr "" msgid "&Branch" msgstr "" msgid "&More Options..." msgstr "" msgid "Unable to merge" msgstr "" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "" msgid "Unable to backout" msgstr "" msgid "Write bundle" msgstr "" msgid "Backwards phase change requested" msgstr "" msgid "Do you really want to make this revision secret?" msgstr "" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" msgid "&Make secret" msgstr "" msgid "&Cancel" msgstr "" msgid "Do you really want to force a backwards phase transition?" msgstr "" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" msgid "&Force" msgstr "" msgid "Cannot import selected revision" msgstr "" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" msgid "Invalid command" msgstr "" msgid "The selected command is empty" msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" msgid "Failed to execute custom TortoiseHg command" msgstr "" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "" msgid "Failed to execute custom command" msgstr "" #, python-format msgid "The command \"%s\" could not be executed." msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" msgid "&Edit Toolbar" msgstr "" msgid "&Refresh" msgstr "" msgid "&Filter Toolbar" msgstr "" #, python-format msgid "TortoiseHg: %s" msgstr "" msgid "S&tatus Bar" msgstr "" #, python-format msgid "Resolve Conflicts - %s" msgstr "" msgid "Local revision information" msgstr "" msgid "Other revision information" msgstr "" msgid "Unresolved conflicts" msgstr "" msgid "Mercurial Re&solve" msgstr "" msgid "Attempt automatic (trivial) merge" msgstr "" msgid "Tool &Resolve" msgstr "" msgid "Merge using selected merge tool" msgstr "" msgid "&Take Local" msgstr "" msgid "Accept the local file version (yours)" msgstr "" msgid "Take &Other" msgstr "" msgid "Accept the other file version (theirs)" msgstr "" msgid "&Mark as Resolved" msgstr "" msgid "Mark this file as resolved" msgstr "" msgid "Diff &Local to Ancestor" msgstr "" msgid "&Diff Other to Ancestor" msgstr "" msgid "Resolved conflicts" msgstr "" msgid "&Edit File" msgstr "" msgid "Edit resolved file" msgstr "" msgid "3-&Way Diff" msgstr "" msgid "Visual three-way diff" msgstr "" msgid "Visual diff between resolved file and first parent" msgstr "" msgid "&Diff to Other" msgstr "" msgid "Visual diff between resolved file and second parent" msgstr "" msgid "Mark as &Unresolved" msgstr "" msgid "Mark this file as unresolved" msgstr "" msgid "Detected merge/diff tools:" msgstr "" msgid "Command output" msgstr "" msgid "Unable to show subrepository files" msgstr "" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" msgid "There are merge conflicts to be resolved" msgstr "" msgid "All conflicts are resolved." msgstr "" msgid "There are no conflicting file merges." msgstr "" msgid "Exit without finishing resolve?" msgstr "" msgid "Unresolved conflicts remain. Are you sure?" msgstr "" msgid "E&xit" msgstr "" msgid "Ext" msgstr "" msgid "Repository" msgstr "" msgid "" msgstr "" msgid "File List Toolbar" msgstr "" msgid "Ma&nifest Mode" msgstr "" msgid "Show all version-controlled files in tree view" msgstr "" msgid "&Flat List" msgstr "" msgid "### filter text ###" msgstr "" msgid "Changed by &This Commit" msgstr "" msgid "Show files changed by this commit" msgstr "" msgid "Compare to &1st Parent" msgstr "" msgid "Compare to &2nd Parent" msgstr "" msgid "Toggle parent to be used as the base revision" msgstr "" msgid "List Optio&ns" msgstr "" #, python-format msgid "%s - Revision Details (%s)" msgstr "" #, python-format msgid "Revert - %s" msgstr "" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "" msgid "Revert all files to this revision" msgstr "" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "" msgid "null revision (i.e. remove file(s))" msgstr "" msgid "Changeset:" msgstr "" msgid "Child:" msgstr "" msgid "Predecessors:" msgstr "" msgid "Successors:" msgstr "" msgid "Head is closed!" msgstr "" msgid "Changesets where username contains string." msgstr "" msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" msgid "Like \"keyword(string)\" but accepts a regex." msgstr "" msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" msgid "The named bookmark or all bookmarks." msgstr "" msgid "The named tag or all tags." msgstr "" msgid "Changeset is tagged." msgstr "" msgid "Changeset is a named branch head." msgstr "" msgid "Changeset is a merge changeset." msgstr "" msgid "Changeset is closed." msgstr "" msgid "" "Changesets within the interval, see help dates" msgstr "" msgid "Greatest common ancestor of the two changesets." msgstr "" msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" msgid "Changesets which modify files matched by pattern." msgstr "" msgid "Changesets which add files matched by pattern." msgstr "" msgid "Changesets which remove files matched by pattern." msgstr "" msgid "Changesets containing files matched by pattern." msgstr "" msgid "All changesets belonging to the branches of changesets in set." msgstr "" msgid "Members of a set with no children in set." msgstr "" msgid "Changesets which are descendants of changesets in set." msgstr "" msgid "Changesets that are ancestors of a changeset in set." msgstr "" msgid "Child changesets of changesets in set." msgstr "" msgid "The set of all parents for all changesets in set." msgstr "" msgid "First parent for all changesets in set, or the working directory." msgstr "" msgid "Second parent for all changesets in set, or the working directory." msgstr "" msgid "Changesets with no parent changeset in set." msgstr "" msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" msgid "Changeset with lowest revision number in set." msgstr "" msgid "Changeset with highest revision number in set." msgstr "" msgid "First n members of a set." msgstr "" msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "" msgid "All changesets, the same as 0:tip." msgstr "" msgid "Revision Set Query" msgstr "" msgid "all revisions converted from subversion" msgstr "" msgid "changeset which represents converted svn revision" msgstr "" msgid "Common sets" msgstr "" msgid "File pattern sets" msgstr "" msgid "Set Ancestry" msgstr "" msgid "Set Logic" msgstr "" msgid "" "help " "revsets" msgstr "" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" #, python-format msgid "thg: unknown command '%s'\n" msgstr "" #, python-format msgid "thg %s: %s\n" msgstr "" #, python-format msgid "thg: %s\n" msgstr "" #, python-format msgid "abort: %s!\n" msgstr "" #, python-format msgid "abort: %s\n" msgstr "" #, python-format msgid "(%s)\n" msgstr "" msgid "option --config may not be abbreviated!" msgstr "" msgid "invalid arguments" msgstr "" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" msgid "repository root directory or symbolic path name" msgstr "" msgid "enable additional output" msgstr "" msgid "suppress output" msgstr "" msgid "display help and exit" msgstr "" msgid "set/override config option (use 'section.name=value')" msgstr "" msgid "enable debugging output" msgstr "" msgid "start debugger" msgstr "" msgid "print command execution profile" msgstr "" msgid "do not fork GUI process" msgstr "" msgid "always fork GUI process" msgstr "" msgid "read file list from file" msgstr "" msgid "read file list from file encoding utf-8" msgstr "" msgid "thg about" msgstr "" msgid "thg add [FILE]..." msgstr "" msgid "revision to annotate" msgstr "" msgid "open to line" msgstr "" msgid "initial search pattern" msgstr "" msgid "thg annotate" msgstr "" #, python-format msgid "invalid line number: %s" msgstr "" msgid "revision to archive" msgstr "" msgid "thg archive" msgstr "" msgid "merge with old dirstate parent after backout" msgstr "" msgid "parent to choose when backing out merge" msgstr "" msgid "revision to backout" msgstr "" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "" msgid "thg bisect" msgstr "" msgid "revision" msgstr "" msgid "thg bookmarks [-r REV] [NAME]" msgstr "" msgid "only one new bookmark name allowed" msgstr "" msgid "the clone will include an empty working copy (only a repository)" msgstr "" msgid "revision, tag or branch to check out" msgstr "" msgid "include the specified changeset" msgstr "" msgid "clone only the specified branch" msgstr "" msgid "use pull protocol to copy metadata" msgstr "" msgid "use uncompressed transfer (fast over LAN)" msgstr "" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "" msgid "record user as committer" msgstr "" msgid "record datecode as commit date" msgstr "" msgid "thg commit [OPTIONS] [FILE]..." msgstr "" msgid "thg debugblockmatcher" msgstr "" msgid "thg debugbugreport [TEXT]" msgstr "" msgid "thg debugconsole" msgstr "" msgid "thg debuglighthg" msgstr "" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "" msgid "no command specified" msgstr "" msgid "thg drag_copy SOURCE... DEST" msgstr "" msgid "thg drag_move SOURCE... DEST" msgstr "" msgid "a revision to send" msgstr "" msgid "thg email [REVS]" msgstr "" msgid "use only one form to specify the revision" msgstr "" msgid "select the specified revision" msgstr "" msgid "side-by-side comparison of revisions" msgstr "" msgid "thg filelog [OPTION]... FILE" msgstr "" msgid "requires a single filename" msgstr "" msgid "thg forget [FILE]..." msgstr "" msgid "revisions to graft" msgstr "" msgid "thg graft [-r] REV..." msgstr "" msgid "You must provide revisions to graft" msgstr "" msgid "ignore case during search" msgstr "" msgid "thg grep" msgstr "" msgid "thg guess" msgstr "" msgid "thg help [COMMAND]" msgstr "" msgid "global options:" msgstr "" msgid "use \"thg help\" for the full list of commands" msgstr "" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "" msgid "" "list of commands:\n" "\n" msgstr "" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" msgid "(no help text available)" msgstr "" msgid "options:\n" msgstr "" msgid "no commands defined\n" msgstr "" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "" msgid "" "basic commands:\n" "\n" msgstr "" #, python-format msgid " (default: %s)" msgstr "" msgid "thg hgignore [FILE]" msgstr "" msgid "import to the patch queue (MQ)" msgstr "" msgid "thg import [OPTION] [SOURCE]..." msgstr "" msgid "thg init [DEST]" msgstr "" msgid "thg lock" msgstr "" msgid "search for a given text or revset" msgstr "" msgid "(DEPRECATED)" msgstr "" msgid "open a new workbench window" msgstr "" msgid "thg log [OPTIONS] [FILE]" msgstr "" msgid "cannot specify both -k/--query and filenames" msgstr "" msgid "revision to display" msgstr "" msgid "thg manifest [-r REV] [FILE]" msgstr "" msgid "revision to merge" msgstr "" msgid "thg merge [[-r] REV]" msgstr "" msgid "Merge revision not specified or not found" msgstr "" msgid "a revision to post" msgstr "" msgid "thg postreview [-r] REV..." msgstr "" msgid "reviewboard extension not enabled" msgstr "" #, python-format msgid "see %(url)s" msgstr "" msgid "no revisions specified" msgstr "" msgid "revisions to prune" msgstr "" msgid "thg prune [-r] REV..." msgstr "" msgid "thg purge" msgstr "" msgid "keep original changesets" msgstr "" msgid "keep original branch names" msgstr "" msgid "rebase from the specified changeset" msgstr "" msgid "rebase onto the specified changeset" msgstr "" msgid "thg rebase -s REV -d REV [--keep]" msgstr "" msgid "Rebase already in progress" msgstr "" msgid "Resuming rebase already in progress" msgstr "" msgid "You must provide source and dest arguments" msgstr "" msgid "thg rejects [FILE]" msgstr "" msgid "You must provide the path to a file" msgstr "" msgid "thg remove [FILE]..." msgstr "" msgid "thg rename [SOURCE] [DEST]" msgstr "" msgid "field to give initial focus" msgstr "" msgid "thg repoconfig" msgstr "" msgid "thg resolve" msgstr "" msgid "the revision to show" msgstr "" msgid "thg revdetails [-r REV]" msgstr "" msgid "thg revert [FILE]..." msgstr "" msgid "revision to update" msgstr "" msgid "thg rupdate [[-r] REV]" msgstr "" msgid "name of the hgweb config file (serve more than one repository)" msgstr "" msgid "name of the hgweb config file (DEPRECATED)" msgstr "" msgid "thg serve [--web-conf FILE]" msgstr "" msgid "thg shellconfig" msgstr "" msgid "thg shelve" msgstr "" msgid "sign even if the sigfile is modified" msgstr "" msgid "make the signature local" msgstr "" msgid "the key id to sign with" msgstr "" msgid "do not commit the sigfile after signing" msgstr "" msgid "use as commit message" msgstr "" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "" msgid "Please enable the Gpg extension first." msgstr "" msgid "show files without changes" msgstr "" msgid "show ignored files" msgstr "" msgid "thg status [OPTIONS] [FILE]" msgstr "" msgid "discard uncommitted changes (no backup)" msgstr "" msgid "do not back up stripped revisions" msgstr "" msgid "do not modify working copy during strip" msgstr "" msgid "revision to strip" msgstr "" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "" msgid "open the bookmark sync window" msgstr "" msgid "thg sync [OPTION]... [PEER]" msgstr "" msgid "replace existing tag" msgstr "" msgid "make the tag local" msgstr "" msgid "revision to tag" msgstr "" msgid "remove a tag" msgstr "" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "" msgid "wait until the second ticks over" msgstr "" msgid "notify the shell for paths given" msgstr "" msgid "remove the status cache" msgstr "" msgid "show the contents of the status cache (no update)" msgstr "" msgid "update all repos in current dir" msgstr "" msgid "thg thgstatus [OPTION]" msgstr "" msgid "thg topics [-r REV] [NAME]" msgstr "" msgid "Please enable the Topic extension first." msgstr "" msgid "only one new topic name allowed" msgstr "" msgid "thg update [-C] [[-r] REV]" msgstr "" msgid "thg userconfig" msgstr "" msgid "changeset to view in diff tool" msgstr "" msgid "revisions to view in diff tool" msgstr "" msgid "bundle file to preview" msgstr "" msgid "launch visual diff tool" msgstr "" msgid "print license" msgstr "" msgid "thg version [OPTION]" msgstr "" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "" msgid "Location:" msgstr "" msgid "Update to:" msgstr "" msgid "Options:" msgstr "" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "" msgid "Perform a push before updating (-p/--push)" msgstr "" msgid "Allow pushing new branches (--new-branch)" msgstr "" msgid "Force push to remote location (-f/--force)" msgstr "" msgid "remove working directory" msgstr "" msgid "unknown revision!" msgstr "" #, python-format msgid "Remote Update - %s" msgstr "" msgid "&Update" msgstr "" msgid "Log" msgstr "" msgid "Repositories" msgstr "" #, python-format msgid "Running at %s" msgstr "" msgid "Stopped" msgstr "" msgid "TortoiseHg Web Server" msgstr "" msgid "Web Server" msgstr "" msgid "Port:" msgstr "" msgid "Status:" msgstr "" msgid "Start" msgstr "" msgid "Settings" msgstr "" msgid "" msgstr "" msgid "&True" msgstr "" msgid "&False" msgstr "" msgid "&Unspecified" msgstr "" #, python-format msgid "%dpt" msgstr "" msgid "Bold" msgstr "" msgid "Italic" msgstr "" msgid "Strike" msgstr "" msgid "Underline" msgstr "" msgid "&Set..." msgstr "" msgid "&Clear" msgstr "" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "" msgid "&Browse..." msgstr "" msgid "UI Language" msgstr "" msgid "Specify your preferred user interface language (restart needed)" msgstr "" msgid "Three-way Merge Tool" msgstr "" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" msgid "Visual Diff Tool" msgstr "" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" msgid "Visual Editor" msgstr "" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" msgid "CLI Editor" msgstr "" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" msgid "Shell" msgstr "" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
      Default, Windows: cmd.exe /" "K title %(reponame)s
      Default, OS X: not set
      Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" msgid "Immediate Operations" msgstr "" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" msgid "Tab Width" msgstr "" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" msgid "Force Repo Tab" msgstr "" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "" msgid "Monitor Repo Changes" msgstr "" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" msgid "Max Diff Size" msgstr "" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" msgid "Fork GUI" msgstr "" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" msgid "Full Path Title" msgstr "" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" msgid "Auto-resolve merges" msgstr "" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" msgid "New Repo Skeleton" msgstr "" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "" msgid "Single Workbench Window" msgstr "" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" msgid "Default widget" msgstr "" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" msgid "" "Open new tabs next\n" "to the current tab" msgstr "" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" msgid "Author Coloring" msgstr "" msgid "Color changesets by author name. Default: False" msgstr "" msgid "Full Authorname" msgstr "" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" msgid "Task Tabs" msgstr "" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" msgid "Task Toolbar Order" msgstr "" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
      Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
      Valid names are: log commit sync grep and " "pbranch.
      Default: log commit grep pbranch | sync" msgstr "" msgid "Long Summary" msgstr "" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" msgid "Log Batch Size" msgstr "" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "" msgid "Dead Branches" msgstr "" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" msgid "Branch Colors" msgstr "" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" msgid "Hide Tags" msgstr "" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" msgid "Activate Bookmarks" msgstr "" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

      • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
      • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
      • never: Never show any prompt to " "activate any bookmarks.

      Default: prompt" msgstr "" msgid "Show Family Line" msgstr "" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

      Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" msgid "Use optimized graph layouter" msgstr "" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

      Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" msgctxt "config item" msgid "Commit" msgstr "" msgid "Username" msgstr "" msgid "" "Name associated with commits. The common format is:
      Full Name <" "email@example.com>" msgstr "" msgid "Ask Username" msgstr "" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" msgid "Summary Line Length" msgstr "" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" msgid "Close After Commit" msgstr "" msgid "Close the commit tool after every successful commit. Default: False" msgstr "" msgid "Push After Commit" msgstr "" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" msgid "Auto Commit List" msgstr "" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" msgid "Auto Exclude List" msgstr "" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" msgid "English Messages" msgstr "" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" msgid "New Commit Phase" msgstr "" msgid "The phase of new commits. Default: draft" msgstr "" msgid "Secret MQ Patches" msgstr "" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "" msgid "Check Subrepo Phase" msgstr "" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" msgid "Monitor working
      directory changes" msgstr "" msgid "" "Select when the working directory status list will be refreshed:
      - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
      TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
      - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
      - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
      Default: auto" msgstr "" msgid "Confirm adding unknown files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Confirm deleting files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Sync" msgstr "" msgid "After Pull Operation" msgstr "" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" msgid "Default Push" msgstr "" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

      • all: The default. Push all changes in all " "branches.
      • branch: Push all changes in the current branch.
      • revision: Push the changes in the current branch up to the current revision.

      Default: all" msgstr "" msgid "Confirm Push" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" msgid "Target Combo" msgstr "" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

      • auto: The default. Show the combo if more than one target " "configured.
      • always: Always show the combo.

      Default: auto" msgstr "" msgid "SSH Command" msgstr "" msgid "" "Command to use for SSH connections.

      Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" msgid "Subrepository Features:" msgstr "" msgid "Allow Hg Subrepos" msgstr "" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" msgid "Allow Git Subrepos" msgstr "" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

      See the security note before enabling Git " "subrepos." msgstr "" msgid "Allow SVN Subrepos" msgstr "" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

      See the security note before enabling " "Subversion subrepos." msgstr "" msgid "Server" msgstr "" msgid "Repository Details:" msgstr "" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" msgid "Encoding" msgstr "" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" msgid "'Publishing' repository" msgstr "" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" msgid "Web Server:" msgstr "" msgid "Textual description of the repository's purpose or contents." msgstr "" msgid "Contact" msgstr "" msgid "Name or email address of the person in charge of the repository." msgstr "" msgid "Style" msgstr "" msgid "Which template map style to use" msgstr "" msgid "Archive Formats" msgstr "" msgid "Comma separated list of archive formats allowed for downloading" msgstr "" msgid "Port" msgstr "" msgid "Port to listen on" msgstr "" msgid "Push Requires SSL" msgstr "" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" msgid "Stripes" msgstr "" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" msgid "Max Files" msgstr "" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "" msgid "Max Changes" msgstr "" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "" msgid "Allow Push" msgstr "" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" msgid "Deny Push" msgstr "" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" msgid "Proxy" msgstr "" msgid "Host" msgstr "" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "" msgid "Bypass List" msgstr "" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "" msgid "Optional. User name to authenticate with at the proxy server" msgstr "" msgid "Password" msgstr "" msgid "Optional. Password to authenticate with at the proxy server" msgstr "" msgid "From" msgstr "" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "" msgid "To" msgstr "" msgid "Comma-separated list of recipient email addresses" msgstr "" msgid "Cc" msgstr "" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "" msgid "Bcc" msgstr "" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "" msgid "method" msgstr "" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" msgid "SMTP Host" msgstr "" msgid "Host name of mail server" msgstr "" msgid "SMTP Port" msgstr "" msgid "Port to connect to on mail server. Default: 25" msgstr "" msgid "SMTP TLS" msgstr "" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "" msgid "SMTP Username" msgstr "" msgid "Username to authenticate to mail server with" msgstr "" msgid "SMTP Password" msgstr "" msgid "Password to authenticate to mail server with" msgstr "" msgid "Local Hostname" msgstr "" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "" msgid "Diff and Annotate" msgstr "" msgid "Patch EOL" msgstr "" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" msgid "Git Format" msgstr "" msgid "Use git extended diff header format. Default: False" msgstr "" msgid "MQ Git Format" msgstr "" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" msgid "No Dates" msgstr "" msgid "Do not include modification dates in diff headers. Default: False" msgstr "" msgid "Show Function" msgstr "" msgid "Show which function each change is in. Default: False" msgstr "" msgid "Ignore White Space" msgstr "" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "" msgid "Ignore WS Amount" msgstr "" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "" msgid "Ignore Blank Lines" msgstr "" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "" msgid "Annotate:" msgstr "" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "" msgid "Fonts" msgstr "" msgid "Message Font" msgstr "" msgid "Font used to display commit messages. Default: monospace 10" msgstr "" msgid "Diff Font" msgstr "" msgid "Font used to display text differences. Default: monospace 10" msgstr "" msgid "ChangeLog Font" msgstr "" msgid "Font used to display changelog data. Default: monospace 10" msgstr "" msgid "Output Font" msgstr "" msgid "Font used to display output messages. Default: sans 8" msgstr "" msgid "Extensions" msgstr "" msgid "Tools" msgstr "" msgid "Hooks" msgstr "" msgid "Issue Tracking" msgstr "" msgid "Issue Regex" msgstr "" msgid "Defines the regex to match when picking up issue numbers." msgstr "" msgid "Issue Link" msgstr "" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" msgid "Inline Tags" msgstr "" msgid "Show tags at start of commit message." msgstr "" msgid "Mandatory Issue Reference" msgstr "" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" msgid "Issue Tracker Plugin" msgstr "" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" msgid "Configure Issue Tracker" msgstr "" msgid "Configure the selected COM Bug Tracker plugin." msgstr "" msgid "Issue Tracker Trigger" msgstr "" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

      • never: Do not update the Issue Tracker " "state automatically.
      • commit: Update the Issue Tracker state after " "a successful commit.

      Default: never" msgstr "" msgid "Changeset Link" msgstr "" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
      The template string " "uses a normal mercurial template syntax, such as:

      • {node|short} : replaced by " "the 12 digit revision id.
      • {rev} : replaced by the revision number." "
      • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
      For example, in order to " "link to bitbucket commit pages you can set this to:
      https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
      You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
      https://github.com/torvalds/" "linux/commit/{gitnode}
      https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
      " msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "" msgid "User name to authenticate with review board" msgstr "" msgid "Password to authenticate with review board" msgstr "" msgid "Server Repository ID" msgstr "" msgid "The default repository id for this repo on the review board server" msgstr "" msgid "Target Groups" msgstr "" msgid "A comma separated list of target groups" msgstr "" msgid "Target People" msgstr "" msgid "A comma separated list of target people" msgstr "" msgid "Kiln Bfiles" msgstr "" msgid "Patterns" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" msgid "Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" msgid "System Cache" msgstr "" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "" msgid "Simplelock" msgstr "" msgid "Lock Clone" msgstr "" msgid "" "Location of local clone of organizational lock repository.

      This repository " "must contain a \"locked\" text file" msgstr "" msgid "Largefiles" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" msgid "Minimum Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" msgid "User Cache" msgstr "" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" msgid "Projrc" msgstr "" msgid "Require confirmation" msgstr "" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

      • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
      • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
      • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
      " msgstr "" msgid "Servers" msgstr "" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" msgid "Include" msgstr "" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" msgid "Exclude" msgstr "" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" msgid "Update on incoming" msgstr "" msgid "" "Let the user update the projrc on incoming:
      • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
      • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
      • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

        Default: never" msgstr "" msgid "GnuPG" msgstr "" msgid "Specify the path to GPG. Default: gpg" msgstr "" msgid "Key ID" msgstr "" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "" msgid "TortoiseHg Settings" msgstr "" msgid "Iniparse package not found" msgstr "" msgid "Can't change settings without iniparse package - view is readonly." msgstr "" #, python-format msgid "%s's global settings" msgstr "" msgid "No repository found" msgstr "" msgid "no repo at " msgstr "" #, python-format msgid "%s project settings (.hg/projrc)" msgstr "" #, python-format msgid "%s repository settings" msgstr "" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "" msgid "Apply changes before exit?" msgstr "" msgid "&No (discard changes)" msgstr "" msgid "Reload" msgstr "" msgid "Settings File:" msgstr "" msgid "Confirm Save" msgstr "" msgid "Save changes before editing?" msgstr "" msgid "&Save" msgstr "" msgid "Confirm Reload" msgstr "" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" msgid "Unable to create a Mercurial.ini file" msgstr "" msgid "Insufficient access rights, reverting to read-only mode." msgstr "" msgid "Context Menu" msgstr "" msgid "Top menu items:" msgstr "" msgid "Sub menu items:" msgstr "" msgid "Menu Behavior" msgstr "" msgid "Hide context menu outside repositories" msgstr "" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" msgid "Icons" msgstr "" msgid "Overlays" msgstr "" msgid "Enabled overlays" msgstr "" msgid "Local disks only" msgstr "" msgid "Enabled Overlay Handlers" msgstr "" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "" msgid "Added" msgstr "" msgid "Locked*" msgstr "" msgid "Ignored*" msgstr "" msgid "Unversioned" msgstr "" msgid "Readonly*" msgstr "" msgid "Deleted*" msgstr "" msgid "*: not used by TortoiseHg" msgstr "" msgid "Taskbar" msgstr "" msgid "Show Icon" msgstr "" msgid "Highlight Icon" msgstr "" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" msgid "Explorer Extension Settings - TortoiseHg" msgstr "" msgid "Clear" msgstr "" msgid "Clear the current shelf file" msgstr "" msgid "Delete the current shelf file" msgstr "" msgid "Left Toolbar" msgstr "" msgid "Delete selected chunks" msgstr "" msgid "Move all files right" msgstr "" msgid "Move selected file right" msgstr "" msgid "Edit file" msgstr "" msgid "Move selected chunks right" msgstr "" msgid "Refresh Toolbar" msgstr "" msgid "Refresh" msgstr "" msgid "New Shelf" msgstr "" msgid "Right Toolbar" msgstr "" msgid "Move selected chunks left" msgstr "" msgid "Move selected file left" msgstr "" msgid "Move all files left" msgstr "" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "" msgid "Delete selected chunks from working copy?" msgstr "" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "" msgid "Are you sure?" msgstr "" msgid "TortoiseHg New Shelf Name" msgstr "" msgid "Specify name of new shelf" msgstr "" msgid "Bad filename" msgstr "" #, python-format msgid "A shelf name cannot contain %s" msgstr "" msgid "File already exists" msgstr "" msgid "A shelf file of that name already exists" msgstr "" msgid "New shelf created" msgstr "" #, python-format msgid "Delete shelf file %s?" msgstr "" msgid "Shelf deleted" msgstr "" msgid "Revert all working copy changes?" msgstr "" #, python-format msgid "Clear contents of shelf file %s?" msgstr "" msgid "Shelf cleared" msgstr "" #, python-format msgid "Shelf: %s" msgstr "" #, python-format msgid "Patch: %s" msgstr "" msgid "Key:" msgstr "" msgid "Local sign" msgstr "" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "" msgid "No commit" msgstr "" msgid "Use custom commit message:" msgstr "" msgid "&Sign" msgstr "" #, python-format msgid "Sign - %s" msgstr "" msgid "Signature has been added" msgstr "" msgid "Repository command still running" msgstr "" msgid "Filter:" msgstr "" msgid "Check all files" msgstr "" msgid "Uncheck all files" msgstr "" msgid "Status File List Toolbar" msgstr "" msgid "Remove filter, show root" msgstr "" #, python-format msgid "%s - status (selection filtered)" msgstr "" #, python-format msgid "%s - status" msgstr "" msgid "Check" msgstr "" msgid "Uncheck" msgstr "" msgid "status" msgstr "" msgid "Failed to refresh" msgstr "" msgid "No appropriate files" msgstr "" msgid "No files found for this operation" msgstr "" msgid "Stat" msgstr "" msgid "M" msgstr "" msgid "Filename" msgstr "" msgid "Size (KB)" msgstr "" #, python-format msgid "Checked count: %d" msgstr "" msgid ", resolved merge" msgstr "" msgid ", unresolved merge" msgstr "" #, python-format msgid "%s is modified" msgstr "" msgid "modified" msgstr "" #, python-format msgid "%s is added" msgstr "" msgid "added" msgstr "" #, python-format msgid "%s is removed" msgstr "" msgid "removed" msgstr "" #, python-format msgid "%s is not tracked (unknown)" msgstr "" msgid "unknown" msgstr "" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "" msgid "missing" msgstr "" #, python-format msgid "%s is ignored" msgstr "" msgid "ignored" msgstr "" #, python-format msgid "%s is not modified (clean)" msgstr "" msgid "clean" msgstr "" #, python-format msgid "%s is a dirty subrepo" msgstr "" msgid "subrepo" msgstr "" msgid "Check for incoming changes from selected URL" msgstr "" msgid "Pull incoming changes from selected URL" msgstr "" msgid "Detect outgoing changes to selected URL" msgstr "" msgid "Push outgoing changes to selected URL" msgstr "" msgid "Sync Bookmarks" msgstr "" msgid "Email outgoing changesets for remote repository" msgstr "" msgid "Manage pending perforce changelists" msgstr "" msgid "Unbundle" msgstr "" msgid "Selected Options:" msgstr "" msgid "Path Edit Toolbar" msgstr "" msgid "Security" msgstr "" msgid "Manage HTTPS connection security and user authentication" msgstr "" msgid "Save" msgstr "" msgid "Save current URL under an alias" msgstr "" msgid "Paths in Repository Settings:" msgstr "" msgid "Related Paths:" msgstr "" msgid "branch: " msgstr "" msgid "bookmark: " msgstr "" #, python-format msgid "rev: %d (%s)" msgstr "" msgid "Post Pull: " msgstr "" msgid "&Edit..." msgstr "" msgid "&Remove..." msgstr "" msgid "Repository not local" msgstr "" msgid "A terminal shell cannot be opened for remote" msgstr "" msgid "Confirm path delete" msgstr "" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "" msgid "Select repository" msgstr "" msgid "No host specified" msgstr "" msgid "Please set a valid URL to continue." msgstr "" msgid "No remote repository URL or path set" msgstr "" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

        Please type and save a remote repository path on the " "Sync widget." msgstr "" msgid "Redundant authentication info" msgstr "" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" msgid "sync command already running" msgstr "" #, python-format msgid "Getting incoming changesets from %s..." msgstr "" #, python-format msgid "Found incoming changesets from %s" msgstr "" #, python-format msgid "No incoming changesets from %s" msgstr "" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "" #, python-format msgid "Pulling from %s..." msgstr "" #, python-format msgid "Pull from %s completed" msgstr "" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "" msgid "Merge caused file conflicts" msgstr "" msgid "File conflicts need to be resolved" msgstr "" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "" #, python-format msgid "%d outgoing changesets to %s" msgstr "" #, python-format msgid "No outgoing changesets to %s" msgstr "" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "" msgid "Perforce pending..." msgstr "" #, python-format msgid "%s (submitted)" msgstr "" #, python-format msgid "%s (pending)" msgstr "" msgid "Unable to parse p4pending output" msgstr "" #, python-format msgid "%d pending changelists found" msgstr "" msgid "No pending Perforce changelists" msgstr "" msgid "Aborted p4pending" msgstr "" msgid "Unable to determine pending changesets" msgstr "" msgid "Confirm Push to remote Repository" msgstr "" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" #, python-format msgid "Push to %s aborted" msgstr "" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" #, python-format msgid "Pushing to %s..." msgstr "" #, python-format msgid "Push to %s completed" msgstr "" #, python-format msgid "Push to %s aborted, ret %d" msgstr "" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" msgid "Determining outgoing changesets to email..." msgstr "" msgid "No outgoing changesets" msgstr "" #, python-format msgid "Outgoing aborted, ret %d" msgstr "" msgid "Select bundle file" msgstr "" msgid "Bundle files (*.hg)" msgstr "" msgid "Unable to remove URL" msgstr "" msgid "Post Pull Behavior" msgstr "" msgid "Select post-pull operation for this repository" msgstr "" msgid "None - simply pull changesets" msgstr "" msgid "Update - pull, then try to update" msgstr "" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "" msgid "Rebase - rebase local commits above pulled changes" msgstr "" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "" msgid "Launch settings tool..." msgstr "" msgid "Unable to save post pull operation" msgstr "" msgid "Save Path" msgstr "" msgid "Alias" msgstr "" msgid "URL" msgstr "" msgid "Remove authentication data from URL" msgstr "" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" msgid "Update subrepo paths" msgstr "" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" msgid "Unable to save an URL" msgstr "" msgid "Confirm URL replace" msgstr "" #, python-format msgid "%s already exists, replace URL?" msgstr "" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

        %s

        Replace it with the " "following URL?:

        %s" msgstr "" msgid "Security: " msgstr "" #, python-format msgid "Host: %s" msgstr "" msgid "Secure HTTPS Connection" msgstr "" msgid "Verify with Certificate Authority certificates (best)" msgstr "" msgid "Verify with stored host fingerprint (good)" msgstr "" msgid "No host validation, but still encrypted (bad)" msgstr "" msgid "### host certificate fingerprint ###" msgstr "" msgid "Query" msgstr "" msgid "TLS 1.0" msgstr "" msgid "TLS 1.1" msgstr "" msgid "TLS 1.2" msgstr "" msgid "Minimum Protocol" msgstr "" msgid "User Authentication" msgstr "" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Key" msgstr "" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Chain" msgstr "" msgid "Certificate Query Error" msgstr "" msgid "Select User Certificate Key File" msgstr "" msgid "PEM files (*.pem *.key)" msgstr "" msgid "Select User Certificate Chain File" msgstr "" msgid "PEM files (*.pem *.crt *.cer)" msgstr "" msgid "Unable to save authentication" msgstr "" #, python-format msgid "%s - sync options" msgstr "" msgid "Allow push of a new branch (--new-branch)" msgstr "" msgid "Force push or pull (override safety checks, --force)" msgstr "" msgid "Temporarily disable configured HTTP proxy" msgstr "" msgid "Emit debugging output (--debug)" msgstr "" msgid "Work on patch queue (--mq)" msgstr "" #, python-format msgid "Tag - %s" msgstr "" msgid "Tag:" msgstr "" msgid "Tagged:" msgstr "" msgid "Local tag" msgstr "" msgid "Replace existing tag (-f/--force)" msgstr "" msgid "Use English commit message" msgstr "" msgid "local" msgstr "" msgid "Move" msgstr "" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "" #, python-format msgid "Added tag %s for changeset %s" msgstr "" #, python-format msgid "Tag '%s' has been moved" msgstr "" #, python-format msgid "Tag '%s' has been added" msgstr "" #, python-format msgid "Removed tag %s" msgstr "" #, python-format msgid "Tag '%s' has been removed" msgstr "" msgid "Patch files (*.diff *.patch)" msgstr "" #, python-format msgid "Import - %s" msgstr "" msgid "Browse Directory..." msgstr "" msgid "Import from Clipboard" msgstr "" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "" msgid "Preview:" msgstr "" msgid "Shelf" msgstr "" msgid "Checking working directory status..." msgstr "" msgid "&Import" msgstr "" msgid "Working directory is not clean! View changes..." msgstr "" msgid "Select patches" msgstr "" msgid "Select Directory containing patches" msgstr "" #, python-format msgid "%s patches" msgstr "" #, python-format msgid "%s will be imported to " msgstr "" msgid "Nothing to import" msgstr "" msgid "Strip:" msgstr "" msgid "Discard local changes, no backup (-f/--force)" msgstr "" msgid "No backup (-n/--nobackup)" msgstr "" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "" msgstr[1] "" msgid "Unknown revision!" msgstr "" msgid "Detected uncommitted local changes." msgstr "" msgid "Do you want to keep them or discard them?" msgstr "" msgid "&Keep (--keep)" msgstr "" msgid "&Discard (--force)" msgstr "" msgid "Confirm Strip" msgstr "" #, python-format msgid "Strip - %s" msgstr "" msgid "&Strip" msgstr "" msgid "Topic:" msgstr "" msgid "&Rename" msgstr "" #, python-format msgid "Topic - %s" msgstr "" #, python-format msgid "A topic named \"%s\" already exists" msgstr "" #, python-format msgid "Topic '%s' has been added" msgstr "" #, python-format msgid "Topic '%s' does not exist" msgstr "" #, python-format msgid "Topic '%s' has been removed" msgstr "" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "" msgid "Parent 1:" msgstr "" msgid "Parent 2:" msgstr "" msgid "Pull subrepos from:" msgstr "" msgid "List updated files (--verbose)" msgstr "" msgid "Discard local changes, no backup (-C/--clean)" msgstr "" msgid "Always merge (when possible)" msgstr "" msgid "(same as parent)" msgstr "" msgid "Activate bookmark?" msgstr "" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

        Do " "you want to activate it?
        You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

        Select " "the bookmark that you want to activate and click OK.

        Click " "Cancel if you don't want to activate any of them.

        You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

        " msgstr "" msgid "Deactivate current bookmark?" msgstr "" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" msgid "Discard - discard local changes, no backup" msgstr "" msgid "&Shelve" msgstr "" msgid "Shelve - move local changes to a patch" msgstr "" msgid "Merge - allow to merge with local changes" msgstr "" msgid "Confirm Update" msgstr "" #, python-format msgid "Update - %s" msgstr "" msgid "[non-existant]" msgstr "" msgid "Tool launch failure" msgstr "" #, python-format msgid "%s : %s" msgstr "" msgid "No diff tool found" msgstr "" msgid "No visual diff tools were detected" msgstr "" msgid "[working copy]" msgstr "" msgid "[original]" msgstr "" msgid "Unable to find changeset" msgstr "" msgid "You likely need to refresh this application" msgstr "" msgid "No file changes" msgstr "" msgid "There are no file changes to view" msgstr "" msgid "working changes" msgstr "" #, python-format msgid "changeset %d:%s" msgstr "" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "" msgid "Visual Diffs - " msgstr "" msgid " filtered" msgstr "" msgid "Temporary files are removed when this dialog is closed" msgstr "" msgid "Select Tool:" msgstr "" msgid "Dir diff to p1" msgstr "" msgid "Dir diff to p2" msgstr "" msgid "3-way dir diff" msgstr "" msgid "Directory diff" msgstr "" msgid "Confirm Discard" msgstr "" msgid "Discard outstanding changes to working directory?" msgstr "" msgid "Config files (*.conf *.config *.ini)" msgstr "" msgid "Open hgweb config" msgstr "" msgid "Save hgweb config" msgstr "" msgid "Path:" msgstr "" msgid "Local Path:" msgstr "" msgid "Select Repository" msgstr "" msgid "Add Path to Serve" msgstr "" msgid "Edit Path to Serve" msgstr "" msgid "Local Path" msgstr "" msgid "Webconf" msgstr "" msgid "Config File:" msgstr "" msgid "Open" msgstr "" msgid "New &Workbench" msgstr "" msgid "&New Repository..." msgstr "" msgid "Clon&e Repository..." msgstr "" msgid "&Open Repository..." msgstr "" msgid "&File" msgstr "" msgid "&View" msgstr "" msgid "&Repository" msgstr "" msgid "&Help" msgstr "" msgid "&Dock Toolbar" msgstr "" msgid "&Task Toolbar" msgstr "" msgid "&Custom Toolbar" msgstr "" msgid "S&ync Toolbar" msgstr "" msgid "&Close Repository" msgstr "" msgid "Sh&ow Repository Registry" msgstr "" msgid "Show &Patch Queue" msgstr "" msgid "Show Conso&le" msgstr "" msgid "Place Console in Doc&k Area" msgstr "" msgid "R&epository Registry Options" msgstr "" msgid "Save Open Repositories on E&xit" msgstr "" msgid "Sa&ve Current Sync Paths on Exit" msgstr "" msgid "Show Tas&k Tab" msgstr "" msgid "&Commit" msgstr "" msgid "&Patch Branch" msgstr "" msgid "Revision &Details" msgstr "" msgid "&Search" msgstr "" msgid "S&ynchronize" msgstr "" msgid "Refresh current repository" msgstr "" msgid "Refresh &Task Tab" msgstr "" msgid "Refresh only the current task tab" msgstr "" msgid "Load &All Revisions" msgstr "" msgid "Load all revisions into graph" msgstr "" msgid "Go to current revision" msgstr "" msgid "&Goto Revision..." msgstr "" msgid "Go to a specific revision" msgstr "" msgid "Filter graph with revision sets or branches" msgstr "" msgid "&Workbench Toolbars" msgstr "" msgid "&Lock File..." msgstr "" msgid "Lock or unlock files" msgstr "" msgid "Update working directory or switch revisions" msgstr "" msgid "&Shelve..." msgstr "" msgid "&Import Patches..." msgstr "" msgid "U&nbundle..." msgstr "" msgid "&Merge..." msgstr "" msgid "Merge with the other head of the current branch" msgstr "" msgid "&Resolve..." msgstr "" msgid "R&ollback/Undo..." msgstr "" msgid "&Purge..." msgstr "" msgid "&Bisect..." msgstr "" msgid "&Verify" msgstr "" msgid "Re&cover" msgstr "" msgid "&Web Server" msgstr "" msgid "E&xplorer Help" msgstr "" msgid "&Readme" msgstr "" msgid "About &Qt" msgstr "" msgid "&About TortoiseHg" msgstr "" msgid "&Incoming" msgstr "" msgid "&Pull" msgstr "" msgid "&Outgoing" msgstr "" msgid "P&ush" msgstr "" msgid "&Sync Bookmarks..." msgstr "" #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" msgid "Check for incoming changes" msgstr "" msgid "Pull incoming changes" msgstr "" msgid "Detect outgoing changes" msgstr "" msgid "Push outgoing changes" msgstr "" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" #, python-format msgid "Execute custom tool '%s'" msgstr "" msgid "Custom Toolbar &Settings" msgstr "" msgid "TortoiseHg Workbench" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "" msgid "Goto revision" msgstr "" msgid "Enter revision identifier" msgstr "" msgid "Select repository directory to open" msgstr "" msgid "README not configured" msgstr "" msgid "" "A README file is not configured for the current repository.

        To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" msgid "Issue Tracker Plugin Error" msgstr "" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "" msgid "This error will not be shown again until you restart the workbench" msgstr "" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "" msgid "Error executing \"commit finished\" trigger" msgstr "" msgid "Cannot open Plugin Options dialog" msgstr "" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "" msgid "[--insecure] [SOURCE]" msgstr "" #, python-format msgid "unsupported URL: %s" msgstr "" #, python-format msgid "%s certificate error: no certificate received" msgstr "" msgid "move after the specified patch" msgstr "" msgid "[--after PATCH] PATCH..." msgstr "" msgid "unknown patch to move specified" msgstr "" msgid "invalid patch position specified" msgstr "" msgid "cannot move applied patches" msgstr "" #, python-format msgid "patch %s not in series" msgstr "" msgid "cannot move into applied patches" msgstr "" msgid "abort: " msgstr "" msgid "hint: " msgstr "" #, python-format msgid "HTTP Error: %d (%s)" msgstr "" #, python-format msgid "URLError: %s" msgstr "" msgid "SSL: Server certificate verify failed" msgstr "" #, python-format msgid "SSL: unknown error %s:%s" msgstr "" #, python-format msgid "SSL error: %s" msgstr "" msgid "hgsubversion packaged with thg" msgstr "" msgid "hggit packaged with thg" msgstr "" msgid "inotify is not supported on this platform" msgstr "" msgid "eol is incompatible with win32text" msgstr "" msgid "win32text is incompatible with eol" msgstr "" msgid "hgsubversion is incompatible with perfarce" msgstr "" msgid "perfarce is incompatible with hgsubversion" msgstr "" msgid "Workbench custom toolbar" msgstr "" msgid "Revision details context menu" msgstr "" msgid "Pair selection context menu" msgstr "" msgid "Multiple selection context menu" msgstr "" msgid "Commit context menu" msgstr "" msgid "File context menu (on manifest and revision details)" msgstr "" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" msgid "in the future" msgstr "" msgid "now" msgstr "" #, python-format msgid "command parse error: %s" msgstr "" #, python-format msgid "no matches found: %s" msgstr "" msgid "Commit..." msgstr "" msgid "Commit changes in repository" msgstr "" msgid "Create Repository Here" msgstr "" msgid "Create a new repository" msgstr "" msgid "Clone..." msgstr "" msgid "Create clone here from source" msgstr "" msgid "File Status" msgstr "" msgid "Repository status & changes" msgstr "" msgid "Add Files..." msgstr "" msgid "Add files to version control" msgstr "" msgid "Revert Files..." msgstr "" msgid "Revert file changes" msgstr "" msgid "Forget Files..." msgstr "" msgid "Remove files from version control" msgstr "" msgid "Remove Files..." msgstr "" msgid "Rename File" msgstr "" msgid "Rename file or directory" msgstr "" msgid "View change history in repository" msgstr "" msgid "File History" msgstr "" msgid "View change history of selected files" msgstr "" msgid "Shelve Changes" msgstr "" msgid "Move changes between working dir and patch" msgstr "" msgid "Synchronize" msgstr "" msgid "Synchronize with remote repository" msgstr "" msgid "Start web server for this repository" msgstr "" msgid "Update..." msgstr "" msgid "Update working directory" msgstr "" msgid "Update Icons" msgstr "" msgid "Update icons for this repository" msgstr "" msgid "Global Settings" msgstr "" msgid "Configure user wide settings" msgstr "" msgid "Repository Settings" msgstr "" msgid "Configure repository settings" msgstr "" msgid "Explorer Extension Settings" msgstr "" msgid "Configure Explorer extension" msgstr "" msgid "About TortoiseHg" msgstr "" msgid "Show About Dialog" msgstr "" msgid "Diff to parent" msgstr "" msgid "View changes using GUI diff tool" msgstr "" msgid "Edit Ignore Filter" msgstr "" msgid "Edit repository ignore filter" msgstr "" msgid "Guess Renames" msgstr "" msgid "Detect renames and copies" msgstr "" msgid "Search History" msgstr "" msgid "Search file revisions for patterns" msgstr "" msgid "DnD Synchronize" msgstr "" msgid "Synchronize with dragged repository" msgstr "" #, python-format msgid "unrecognized response: %s" msgstr "" msgid "password: " msgstr "" #, python-format msgid "repository %s not found" msgstr "" msgid "win32ill: cannot create window for messages" msgstr "" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "" msgid "win32ill: interrupted while stopping message loop\n" msgstr "" #~ msgid "Backout commit message" #~ msgstr "Missatge per al grup de canvis a retirar" #~ msgid "Backout" #~ msgstr "Retirar" #~ msgid "Changeset Description" #~ msgstr "Descripció de grup de canvis" #~ msgid "Several icons are courtesy of the TortoiseSVN project" #~ msgstr "Algunes icones són cortesia del projecte TortoiseSVN" #~ msgid "[All Files]" #~ msgstr "[Tots Arxius]" #~ msgid " %s is larger than the specified max diff size" #~ msgstr " %s es més gran que el tamany máxim especificat pel al dif" #~ msgid "Revert %s to contents at revision %d?" #~ msgstr "¿Revertir %s al contigut de la versió %d?" #~ msgid "TortoiseHg Clone" #~ msgstr "TortoiseHg: Clonar" #~ msgid "Confirm revert file to old revision" #~ msgstr "Confirma revertir arxiu a alta revisió" #~ msgid "Branch Operations" #~ msgstr "Operacions de branca" #~ msgid "Clone" #~ msgstr "Clonar" #~ msgid "_Undo" #~ msgstr "_Desfer" #~ msgid "Close current named branch" #~ msgstr "Tanca la branca amb nom actual" #~ msgid "(version %s)" #~ msgstr "(versió %s)" #~ msgid "with %s" #~ msgstr "amb %s" #~ msgid "A new version of TortoiseHg is ready for download!" #~ msgstr "Una nova versió de TortoiseHg està llesta per descarregar !" #~ msgid "Copyright 2008-2010 Steve Borho and others" #~ msgstr "Copyright 2008-2010 Steve Borho i altres" #~ msgid "Archive" #~ msgstr "Arxiu" #~ msgid "Archived successfully" #~ msgstr "Arxivat satisfactòriament" #~ msgid "Failed to archive" #~ msgstr "Error a l'arxivar" #~ msgid "" #~ "The destination \"%s\" already exists!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "La destinació \"%s\" ja existeix!\n" #~ "Vol sobreescriure-la ?" #~ msgid "" #~ "The directory \"%s\" isn't empty!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "El directori \"%s\" no està buit!\n" #~ "Vol sobreescriure'l?" #~ msgid "Compressed zip archives" #~ msgstr "Arxius zip comprimits" #~ msgid "All Files (*.*)" #~ msgstr "Tots els fitxers (*.*)" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/cs.po0000644000000000000000000116656114440352353016253 0ustar00rootroot# Czech translation for tortoisehg # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the tortoisehg package. # # FIRST AUTHOR , 2009. # Tovim , 2010. msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2018-12-18 18:40+0000\n" "Last-Translator: Tovim \n" "Language-Team: Czech \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2019-07-17 05:41+0000\n" "X-Generator: Launchpad (build 19009)\n" "Language: cs\n" "X-Poedit-SourceCharset: UTF-8\n" msgid "TortoiseHg Overlay Icon Server" msgstr "Server překryvných ikon TortoiseHg" msgid "Exit" msgstr "Ukončit" msgid "About" msgstr "O programu" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "Některé ikony jsou převzaty z projektů TortoiseSVN a Tango" msgid "You can visit our site here" msgstr "Naše stránky můžete navštívit zde" msgid "&License" msgstr "&Licence" #, python-format msgid "version %s" msgstr "verze %s" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "plus Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "Nová verze TortoiseHg (%s) je připravena ke stažení!" msgid "License" msgstr "Licence" msgid "= Working Directory Parent =" msgstr "= Rodič pracovního adresáře =" msgid "Directory of files" msgstr "Složka souborů" msgid "Tar archives" msgstr "Archivy tar" msgid "Uncompressed tar archive" msgstr "Nekomprimovaný archiv tar" msgid "Bzip2 tar archives" msgstr "Archivy bzip2 tar" msgid "Tar archive compressed using bzip2" msgstr "Archiv tar komprimovaný pomocí bzip2" msgid "Gzip tar archives" msgstr "Archivy gzip tar" msgid "Tar archive compressed using gzip" msgstr "Archiv tar komprimovaný pomocí gzip" msgid "Zip archives" msgstr "Komprimované archivy" msgid "Uncompressed zip archive" msgstr "Nekomprimovaný archiv zip" msgid "Zip archive compressed using deflate" msgstr "Archiv zip komprimovaný pomocí deflate" msgid "Revision:" msgstr "Revize:" msgid "All files in this revision" msgstr "Všechny soubory v této revizi" msgid "Only files modified/created in this revision" msgstr "Pouze soubory upravené či vytvořené v této revizi" msgid "Only files modified/created since:" msgstr "Pouze soubory upravené či vytvořené od:" msgid "Archive Content:" msgstr "Obsah archivu:" msgid "Recurse into subrepositories" msgstr "Zabočit do subrepozitářů" msgid "Browse..." msgstr "Procházet..." msgid "Destination path:" msgstr "Destinace:" msgid "Archive types:" msgstr "Typy archivů:" msgid "Hg command:" msgstr "Příkaz Hg:" msgid "Select Destination Folder" msgstr "Vyberte cílovou složku" msgid "Select Destination File" msgstr "Vyberte cílový soubor" msgid "All files (*)" msgstr "Všechny soubory (*)" msgid "Duplicate Name" msgstr "Duplikátní název" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "Destinace \"%s\" již existuje jako soubor!" msgid "Confirm Overwrite" msgstr "Potvďte přepis" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" "Adresář \"%s\" není prázdný!\n" "\n" "Chcete jej přepsat?" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" "Soubor \"%s\" již existuje!\n" "\n" "Chcete jej přepsat?" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "Destinace \"%s\" již existuje jako složka!" #, python-format msgid "Archive - %s" msgstr "Archiv - %s" msgid "&Archive" msgstr "&Archivovat" msgid "Backout requires a parent revision" msgstr "Backout vyžaduje rodičovskou revizi" msgid "Cannot backout change on a different branch" msgstr "Nelze provést backout na jiné větvi" #, python-format msgid "Backout - %s" msgstr "Backout - %s" msgid "Prepare to backout" msgstr "Připravit pro backout (anulování revize)" msgid "Verify backout revision and ensure your working directory is clean." msgstr "Ověřit revizi backoutu a přesvědčit se, že pracovní adresář je čistý." msgid "Backing out a parent revision is a single step operation" msgstr "Anulovaná revize je negována doplněnou revizí opačnou" msgid "Backout revision" msgstr "Revize backoutu" msgid "Not a head, backout will create a new head!" msgstr "Anulovaná revize není čelem; backout vytvoří nové čelo!" msgid "Current local revision" msgstr "Stávající lokální revize" msgid "Working directory status" msgstr "Status pracovního adresáře" msgid "Checking..." msgstr "Ověřování..." msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" "Před zrušením revize (backout) musíte provéstcommit, shelve do oprávky nebo změny vyřadit (discard)." msgid "Automatically resolve merge conflicts where possible" msgstr "Konflikty při slučování řešit pokud možno automaticky" msgid "Uncommitted local changes are detected" msgstr "Byly nalezeny nekomitované lokální změny" msgid "Clean" msgstr "Čistý" msgid "Backing out, then merging..." msgstr "Anulování, potom sloučení..." msgid "All conflicting files will be marked unresolved." msgstr "Všechny konfliktní soubory budou označeny jako neřešené." msgid "Automatically advance to next page when backout and merge are complete." msgstr "" "Automaticky postoupit k další stránce, je-li backout a merge kompletní." #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" "%d souborů má slučovací problémy, které musí být řešeny" msgid "No merge conflicts, ready to commit" msgstr "Žádné slučovací konflikty, připraveno pro komit" msgid "Commit backout and merge results" msgstr "Komitovat backout a výsledek sloučení" msgid "Parents" msgstr "Rodiče" msgid "Working Directory" msgstr "Pracovní adresář" msgid "Working Directory (merged)" msgstr "Pracovní adresář (sloučený)" msgid "Commit message" msgstr "Zpráva komitu" msgid "Skip final confirmation page, close after commit." msgstr "Přeskočit závěrečnou potvrzovací stránku, po komitu zavřít." msgid "Backed out changeset: " msgstr "Anulovaný changeset: " msgid "Confirm Discard Message" msgstr "Potvrdit zprávu k vyřazení" msgid "Discard current backout message?" msgstr "Vyřadit stávající zprávu backoutu?" msgid "Use English backout message" msgstr "Použít anglický komentář backoutu" msgid "Backing out and committing..." msgstr "Anulování a komitování..." msgid "Please wait while making backout." msgstr "Počkejte prosím na ukončení backoutu." msgid "Committing..." msgstr "Committing..." msgid "Please wait while committing merged files." msgstr "Čekejte prosím, probíhá komitování sloučených souborů." msgid "Finished" msgstr "Ukončeno" msgid "Backout changeset" msgstr "Changeset backoutu" #, python-format msgid "Bisect - %s" msgstr "Bisect - %s" msgid "Accept" msgstr "Přijmout" msgid "Known good revision:" msgstr "Známá dobrá revize:" msgid "Known bad revision:" msgstr "Známá špatná revize:" msgid "Discard local changes (revert --all)" msgstr "Odvrhnout lokální změny (revert --all)" msgid "Revision is &Good" msgstr "Revize je dobrá" msgid "Revision is &Bad" msgstr "Revize je špatná" msgid "&Skip this Revision" msgstr "&Přeskočit tuto revizi" msgid "Close" msgstr "Zavřít" msgid "Error encountered." msgstr "Došlo k chybě." msgid "Culprit found." msgstr "Nalezen viník." msgid "Revision" msgstr "Revize" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "Testovat tuto revizi a hlásit výsledky. (good/bad/skip)" #, python-format msgid "%s (hint: %s)" msgstr "%s (hint: %s)" msgid "Bookmark:" msgstr "Záložka:" msgid "New Name:" msgstr "Nový název:" msgid "Activate:" msgstr "Aktivovat:" msgid "&Add" msgstr "&Přidat" msgid "Re&name" msgstr "Přejmenovat" msgid "&Remove" msgstr "&Odebrat" msgid "&Move" msgstr "&Přemístit" #, python-format msgid "Bookmark - %s" msgstr "Záložka - %s" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "Záložka s jménem \"%s\" již existuje" #, python-format msgid "Bookmark '%s' has been added" msgstr "Záložka '%s' byla přidána" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "Záložka s jménem \"%s\" neexistuje" #, python-format msgid "Bookmark '%s' has been moved" msgstr "Záložka '%s' byla přemístěna" #, python-format msgid "Bookmark '%s' does not exist" msgstr "Záložka \"%s\" neexistuje" #, python-format msgid "Bookmark '%s' has been removed" msgstr "Záložka '%s' byla odstraněna" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "Záložka '%s' byla přejmenována na '%s'" msgid "TortoiseHg Bookmark Sync" msgstr "Synchronizace záložek" msgid "Outgoing Bookmarks" msgstr "Odchozí záložky" msgid "&Push Bookmark" msgstr "Postrčit (push) záložku" msgid "&Remove Bookmark" msgstr "&Odebrat záložku" msgid "Incoming Bookmarks" msgstr "Příchozí záložky" msgid "P&ull Bookmark" msgstr "Přetáhnout (pull) záložku" msgid "R&emove Bookmark" msgstr "O&debrat záložku" #, python-format msgid "Pushed local bookmark: %s" msgstr "Postrčená lokální záložka: %s" #, python-format msgid "Pulled remote bookmark: %s" msgstr "Přetažená vzdálená záložka: %s" #, python-format msgid "Removed remote bookmark: %s" msgstr "Odebraná vzdálená záložka: %s" #, python-format msgid "Removed local bookmark: %s" msgstr "Odebraná lokální záložka: %s" #, python-format msgid "%s - branch operation" msgstr "%s - operace s větví" msgid "Select branch of merge commit" msgstr "Veberte větev slučovacího komitu" msgid "Changes take effect on next commit" msgstr "Změny budou účinné po komitu" msgid "No branch changes" msgstr "Žádné změny větve" msgid "Open a new named branch" msgstr "Otevřít novou pojmenovanou větev" msgid "Close current branch" msgstr "Zavřít aktuální větev" #, python-format msgid "Please report this bug to our bug tracker" msgstr "Ohlašte prosím tuto chybu našemu bug tracker" msgid "Checking for updates..." msgstr "Vyhledání aktualizací..." msgid "Copy" msgstr "Kopírovat" msgid "Quit" msgstr "Quit" msgid "TortoiseHg Bug Report" msgstr "Zpráva o chybě v TortoiseHg" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "Doporučuje se přejít na nejnovější verzi TortoiseHg." msgid "Your TortoiseHg is up to date." msgstr "Vaše verze TortoiseHg je aktuální." msgid "Save error report to" msgstr "Uložit zprávu o chybě do" msgid "Text files (*.txt)" msgstr "Textové soubory (*.txt)" msgid "Error writing file" msgstr "Chyba při zápisu souboru" msgid "TortoiseHg Error" msgstr "TortoiseHg Error" msgid "" "If you still have trouble, please file a bug report." msgstr "" "Máte-li stále potíže, vyplňte prosím hlášení o " "chybě." msgid "Visual Diff" msgstr "Vizuální diff k rodiči" msgid "View file changes in external diff tool" msgstr "Zobrazit změny souboru v externím diffovém prohlížeči" msgid "Edit Local" msgstr "Editovat soubor" msgid "Edit current file in working copy" msgstr "Editovat aktuální soubor v pracovní kopii" msgid "Revert to Revision" msgstr "Navrátit k revizi" msgid "Revert file(s) to contents at this revision" msgstr "Navrátit obsahy souboru(ů) ke stavu při této revizi" msgid "Patch failed to apply" msgstr "Oprávku se nezdařilo aplikovat" msgid "Manually resolve rejected chunks?" msgstr "Odmítnuté porce (chunks) řešit ručně?" msgid "Edit patched file and rejects?" msgstr "Editovat oprávkovaný (patched) soubor a odmítnuté porce (chunks)?" msgid "No deletable chunks" msgstr "No deletable chunks" msgid "Completely remove file from patch?" msgstr "Kompletně odebrat soubor z oprávky?" msgid "Revert all file changes?" msgstr "Navrátit všechny změny souboru?" msgid "No chunks remain" msgstr "No chunks remain" msgid "file has been deleted, refresh" msgstr "soubor byl smazán, (refresh)" msgid "file has been modified, refresh" msgstr "soubor byl změněn, (refresh)" msgid "Unable to merge chunks" msgstr "Nejde sloučit porce (chunks)" msgid "Add or remove patches must be merged in the working directory" msgstr "Přidané nebo odstraněné oprávky musí být sloučené v pracovním adresáři" msgid "Unable to remove" msgstr "Nelze odebrat" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" "Nejde odebrat soubor %s,\n" "souhlas odepřen" msgctxt "files" msgid "All" msgstr "All" msgctxt "files" msgid "None" msgstr "None" msgid "Toggle display of text search bar" msgstr "Zapnout zobrazení vyhledávací lišty textu" msgid "Diff Toolbar" msgstr "Diff Toolbar" #, python-format msgid "Chunks selected: %d / %d" msgstr "Chunks selected: %d / %d" msgid "Please wait while the file is opened ..." msgstr "Prosím počkejte na otevření souboru ..." msgid "Source:" msgstr "Zdroj:" msgid "Destination:" msgstr "Destinace:" msgid "Options" msgstr "Možnosti" msgid "Clone to revision:" msgstr "Klonovat k revizi:" msgid "A revision identifier, bookmark, tag or branch name" msgstr "Označení revize, záložka, tag nebo název větve" msgid "Do not update the new working directory" msgstr "Neaktualizovat nový pracovní adresář" msgid "Use pull protocol to copy metadata" msgstr "Použít protokol přejímky (pull) ke kopírování metadat" msgid "Clone with minimal processing" msgstr "" msgid "Include patch queue" msgstr "Zahrnout frontu oprávek" msgid "Use proxy server" msgstr "Použít server proxy" msgid "Do not verify host certificate" msgstr "Neověřovat certifikát hostitele" msgid "Remote command:" msgstr "Vzdálený příkaz:" msgid "Use largefiles" msgstr "Použít velké soubory" msgid "Start revision:" msgstr "Počáteční revize:" msgid "Select source repository" msgstr "Vyberte zdrojový repozitář" msgid "Select destination repository" msgstr "Vyberte cílový repozitář" msgid "Select patch folder" msgstr "Vyberte složku s oprávkami" #, python-format msgid "Clone - %s" msgstr "Klonovat - %s" msgid "&Clone" msgstr "&Klonovat" msgid "failed to start command\n" msgstr "nepodařilo se spustit příkaz\n" msgid "error while running command\n" msgstr "chyba při provádění příkazu\n" #, python-format msgid "process exited unexpectedly with code %d" msgstr "proces nečekaně ukončen kódem %d" #, python-format msgid "failed to encode command: %s" msgstr "nejde zakódovat příkaz: %s" #, python-format msgid "timed out while reading: %r..." msgstr "čas vypršel při čtení: %r..." msgid "timed out waiting for message" msgstr "čas vypršel při čekání na zprávu" #, python-format msgid "unexpected response on required channel %r" msgstr "nečekaná odezva na požadovaném kanálu %r" #, python-format msgid "invalid \"hello\" message: %r" msgstr "neplatná zpráva \"hello\": %r" msgid "no \"runcommand\" capability" msgstr "" #, python-format msgid "corrupted command result: %r" msgstr "výsledek chybného příkazu: %r" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "nejde zakódovat vstup: %s" msgid "Terminated by user" msgstr "Ukončeno uživatelem" #, python-format msgid "[command terminated by user %s]" msgstr "[příkaz ukončen uživatelem %s]" #, python-format msgid "[command interrupted %s]" msgstr "[příkaz přerušen %s]" #, python-format msgid "[command returned code %d %%s]" msgstr "[příkaz vrátil kód %d %%s]" #, python-format msgid "[command completed successfully %s]" msgstr "[příkaz byl úspěšně proveden %s]" msgid "Running..." msgstr "Probíhá..." msgid "Failed!" msgstr "Nezdařilo se!" msgid "Clea&r Log" msgstr "" msgid "TortoiseHg Prompt" msgstr "Výzva TortoiseHg" msgid "Show Detail" msgstr "" msgid "Hide Detail" msgstr "Skrýt podrobnosti" msgid "Confirm Exit" msgstr "Potvrďte ukončení programu" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" "Příkaz Mercurialu je stále aktivní.\n" "Jste si jist, že jej chcete ukončit?" msgid "&Run" msgstr "" msgid "TortoiseHg Command Dialog" msgstr "TortoiseHg Command Dialog" msgid "Command Error" msgstr "" #, python-format msgid "[Code: %d]" msgstr "" msgid "Merge" msgstr "Sloučit" #, python-format msgid "Merge with %s" msgstr "Sloučit s %s" msgid "Patch Name Required" msgstr "Požadován název oprávky" msgid "You must enter a patch name" msgstr "Musíte uvést název oprávky" msgctxt "start progress" msgid "Commit" msgstr "Commit" msgctxt "start progress" msgid "MQ Action" msgstr "Akce MQ" msgctxt "start progress" msgid "Rollback" msgstr "" msgid "Commit Dialog Toolbar" msgstr "Commit Dialog Toolbar" msgid "Branch: " msgstr "Větev: " msgid "Copy message" msgstr "Kopírovat zprávu" msgid "Copy one of the recent commit messages" msgstr "Kopírovat jednu z posledních komitových zpráv" msgid "Show Issues" msgstr "Ukázat problémy" msgid "Please wait..." msgstr "Prosím čekejte..." #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "Nepodařilo se načíst issue tracker '%s': %s" msgid "Issue Tracker" msgstr "" msgid "Show Issues..." msgstr "Ukázat problémy..." msgid "Stop" msgstr "Zastavit" msgid "### patch name ###" msgstr "### název oprávky ###" msgid "Commit changes" msgstr "Komitovat změny" msgid "Commit" msgstr "Commit" msgid "Amend current revision" msgstr "Upravit aktální revizi" msgid "Amend" msgstr "" msgid "Create a new patch" msgstr "Vytvořit novou oprávku" msgid "QNew" msgstr "QNew" msgid "Refresh current patch" msgstr "Reaktivovat aktuální oprávku" msgid "QRefresh" msgstr "QRefresh" msgid "Confirm Branch Change" msgstr "Potvrďte změnu větve" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "" "Pojmenovaná větev \"%s\" již existuje, naposledy byla použita v revizi %d\n" msgid "Restart &Branch" msgstr "Restart &Branch" msgid "&Commit to current branch" msgstr "&Komitovat do aktuální větve" msgid "Cancel" msgstr "Zrušit" msgid "Confirm New Branch" msgstr "Potvrďte novou větev" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "Vytvořit tímto komitem novou pojmenovanou větev \"%s\"?\n" msgid "Create &Branch" msgstr "Vytvořit &větev" msgid "Close Branch: " msgstr "Zavřít větev " msgid "New Branch: " msgstr "Nová větev: " #, python-format msgid "Selected Options: %s" msgstr "Vybrané možnosti: %s" msgid "Parent:" msgstr "Rodič:" msgid "Patch name:" msgstr "Název oprávky:" #, python-format msgid "Close %s branch" msgstr "Zavřít větev %s" #, python-format msgid "Rollback commit to revision %d" msgstr "Vrátit komit k revizi %d" msgid "Confirm Undo" msgstr "Confirm Undo" msgid "Discard current commit message?" msgstr "Vyřadit stávající zprávu komitu?" msgid "Message Translation Failure" msgstr "Nezdařil se překlad zprávy" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" "Zpráva nejde přeložit do lokálního kódování.\n" "Zkuste nastavit proměnnou prostředí HGENCODING.\n" "\n" "Nepřeložitelné znaky zaměňte za \"?\"?\n" msgid "&Replace" msgstr "&Nahradit" msgid "Nothing Committed" msgstr "Nic nebylo komitováno" msgid "Please enter commit message" msgstr "Zadejte prosím komentář komitu" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" "Ve zprávě komitu nebyl nalezen žádný odkaz na problém. Tento odkaz by zpráva " "komitun měla obsahovat.Konfiguraci provedete v sekci 'Issue Tracking' " "nástroje Nastavení ..." msgid "No files checked" msgstr "Nebyly vybrány žádné soubory" msgid "No modified files checkmarked for commit" msgstr "Žádné upravené soubory nebyly označeny pro komit" msgid "Confirm Add" msgstr "Potvrdit přídání" msgid "Add selected untracked files?" msgstr "Přidat vybrané nesledovné soubory?" msgid "Confirm Remove" msgstr "Potvrdit odebrání" msgid "Remove selected deleted files?" msgstr "Odebrat vybrané smazané soubory?" msgid "Nothing changed." msgstr "Nic se nezměnilo." msgctxt "window title" msgid "Commit" msgstr "Commit" #, python-format msgid "%s - commit options" msgstr "%s - možnosti komitu" msgid "Set username:" msgstr "Zadejte jméno uživatele:" msgid "Save in Repo" msgstr "Uložit v repozitáři" msgid "Save Global" msgstr "Uložit globálně" msgid "Set Date:" msgstr "Zadejte datum:" msgid "Update" msgstr "Aktualizovat (update)" msgid "Push After Commit:" msgstr "Push po komitu:" msgid "Auto Includes:" msgstr "Auto Includes:" msgid "Recurse into subrepositories (--subrepos)" msgstr "Odbočit do subrepozitářů (--subrepos)" msgid "Unable to save username" msgstr "Nejde uložit jméno uživatele" msgid "Iniparse must be installed." msgstr "Iniparse musí být instalován." msgid "Unable to write configuration file" msgstr "Nejde psát konfigurační soubor" msgid "Unable to save after commit push" msgstr "Nejde uložit push po komitu" msgid "Unable to save auto include list" msgstr "Seznam 'auto include' nejde uložit" msgid "Unable to save recurse in subrepos." msgstr "Nejde uložit odbočení do subrepozitáře." msgid "Invalid date format" msgstr "Neplatný datumový formát" msgid "No username configured" msgstr "Nebylo zadáno jméno uživatele" #, python-format msgid "%s - commit" msgstr "%s - commit" msgid "TortoiseHg Commit" msgstr "" msgid "Are you sure that you want to cancel the commit operation?" msgstr "Jste si jist, že chcete zrušit operaci komitu?" msgid "Compress changesets up to and including" msgstr "Komprimovat changesety včetně posledního" msgid "Onto destination" msgstr "K destinaci" msgid "Compress" msgstr "Komprimovat" #, python-format msgid "Compress - %s" msgstr "Komprimovat - %s" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" "Před komprimací nutno provést commit, shelve do oprávky (patch) nebo discard změny." msgid "You may continue the compress" msgstr "Můžete pokračovat v komprimaci" msgid "Changes have been moved, you must now commit" msgstr "Změny byly přesunuty, musíte provést komit" msgctxt "action button" msgid "Commit" msgstr "Commit" msgid "Compress is complete, old history untouched" msgstr "Komprimace je kompletní, stará historie nedotčena" msgid "must be specified repository" msgstr "musí to být určitý repositář" msgid "must be specified 'type' in style" msgstr "musí být určen 'type' ve stylu" msgid "Git Commit:" msgstr "" msgid "Summary:" msgstr "Shrnutí:" msgid "User:" msgstr "Uživatel:" msgid "Date:" msgstr "Datum:" msgid "Age:" msgstr "Stáří:" msgid "Branch:" msgstr "Větev:" msgid "Close:" msgstr "Zavřít:" msgid "Tags:" msgstr "Tagy:" msgid "Graft:" msgstr "" msgid "Transplant:" msgstr "Přesadit:" msgid "Obsolete state:" msgstr "Překonaný stav:" msgid "Perforce:" msgstr "Perforce:" msgid "Subversion:" msgstr "Subversion:" msgid "Converted From:" msgstr "Převedeno z:" msgid "Original Parent:" msgstr "Původní rodič:" msgid "No items to display" msgstr "Není co zobrazit" msgid "Use compact view" msgstr "Použít kompaktní zobrazení" msgid "Patch:" msgstr "Oprávka:" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "Zobrazeno %(count)d z %(total)d položek" msgid "Select a GUI location to edit:" msgstr "Vybrat umístění GUI k editaci:" msgid "Select the toolbar or menu to change" msgstr "Vyberte nástrojovou lištu nebo menu, které má být měněno" msgid "Tools shown on selected location" msgstr "Nástroje, zobrazené ve vybraném místě" msgid "Delete from list" msgstr "Vymazat ze seznamu" msgid "Add to list" msgstr "Přidat do seznamu" msgid "Add separator" msgstr "Přidat oddělovač" msgid "List of all tools" msgstr "Seznam všech nástrojů" msgid "New Tool ..." msgstr "Nový nástroj..." msgid "Edit Tool ..." msgstr "Upravit nástroj..." msgid "Delete Tool" msgstr "Smazat nástroj" msgid "Type" msgstr "Typ" msgid "Name" msgstr "Název" msgid "Command" msgstr "Příkaz" msgid "New hook" msgstr "Nový hook" msgid "Edit hook" msgstr "" msgid "Delete hook" msgstr "" msgid "Replace existing hook?" msgstr "Nahradit stávající hook?" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" "Existuje hook %s.%s.\n" "\n" "Chcete jej nahradit?" msgid "OK" msgstr "OK" msgid "Missing information" msgstr "Chybějící informace" msgid "All items" msgstr "Všechny položky" msgid "Working directory" msgstr "Pracovní adresář" msgid "All revisions" msgstr "Všechny revize" msgid "All contexts" msgstr "Všechny kontexty" msgid "Fixed revisions" msgstr "Opravené revize" msgid "Applied patches" msgstr "Použité oprávky" msgid "Applied patches or qparent" msgstr "Použité oprávky nebo qparent" msgid "" msgstr "" msgid "Configure Custom Tool" msgstr "Nastavení uživatelského nástroje" msgid "Tool name" msgstr "Název nástroje" msgid "The tool name. It cannot contain spaces." msgstr "Název nástroje nesmí obsahovat mezery." #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" "Příkaz jenž bude proeden.\n" "K provedení příkazu Mercurialu použijte \"hg\" (spíše než \"hg.exe\").\n" "K sestavení svého příkazu můžete použít několik {VARIABLES}.\n" "Všeobecné proměnné:\n" "- {ROOT}: Cesta ke kořeni aktuálního repozitáře.\n" "- {REV} / {REVID}:Vybraná čísla revizí / ve stejném pořadí hexadecimální ID " "heše revizí, formátované jako výrazy revset.\n" "- {SELECTEDFILES}: Seznam souborů, vybraných uživatelem ze seznamu souborů s " "podrobnostmi revizí.\n" "- {FILES}: Seznam souborů, dotčených vybranými revizemi.\n" "- {ALLFILES}: Všechny soubory, sledované Mercurialem ve vybraných revizích.\n" "Proměnné pro výběr párů:\n" "- {REV_A} / {REVID_A}: první vybrané číslo revize / hexadecimální ID heše " "revize ve stejném pořadí.\n" "- {REV_B} / {REVID_B}: druhé vybrané číslo revize / hexadecimální ID heše " "revize ve stejném pořadí.\n" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" "Adresář, ve kterém bude příkaz proveden.\n" "Není-li zadáno, použije se kořen aktuálního repozitáře.\n" "Můžete použít tytéž {VARIABLES} jako v nastavení \"Command\".\n" msgid "Tool label" msgstr "Popisek nástroje" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" "Popisek nástroje se zobrazí v kontextovém menu repowidgetu.\n" "Není-li žádný zadán, zobrazí se jako popisek název nástroje.\n" "Není-li zadána nápověda (tooltip), zobrazí se popisek." msgid "Tooltip" msgstr "Nápověda" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" "Nápověda, která se zobrazí u tlačítka nástroje\n" "v případě, že je tlačítko zařazeno v nástrojové liště verpánku." msgid "Icon" msgstr "Ikona" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" "Ikona nástroje.\n" "Můžete použít kteroukoli vestavěnou ikonu TortoiseHg\n" "zapsáním platného názvu ikony\n" "(např. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "Můžete také zapsat absolutní cestu k souboru s ikonou." msgid "On repowidget, show for" msgstr "V repowidgetu ukázat pro" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" "Pro které druhy revizí bude nástroj povolen.\n" "Připadá v úvahu pouze tehdy, je-li nástroj uveden\n" "v kontextovém menu vybrané revize." msgid "Show Output Log" msgstr "Otevřít Output Log" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" "Je-li povoleno, automaticky při spuštění příkazu ukázat Output Log.\n" "Implicitně: False." msgid "You must set a tool name." msgstr "Musíte zadat název nástroje." msgid "The tool name cannot have any spaces in it." msgstr "Název nástroje nesmí obsahovat mezery." msgid "You must set a command to run." msgstr "Musíte zadat příkaz." msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" "Spusťte poté, co byla skupina změn připojena prostřednictvím push, pull nebo " "unbundle. ID prvního nového changesetu je v $HG_NODE a posledního " "v $HG_NODE_LAST. URL, z něhož změny přišly, je v $HG_URL." msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" "Spusťte po vytvoření changesetu v lokálním repozitáři. ID nově vytvořeného " "changesetu je v $HG_NODE. ID rodičovských changesetů jsou v " "$HG_PARENT1a $HG_PARENT2." msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" "Spusťte poté, co byl changset do lokálního repozitáře vtažen, vtlačen nebo " "rozbalen. ID nově přišlých changesetů jsou v $HG_NODE. URL, jenž " "bylo zdrojem přišlých změn, je v $HG_URL." msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" "Spusťte po odeslání změn z lokálního repozitáře do jiného. ID prvního " "odeslaného changesetu je v $HG_NODE. Zdroj operace je v " "$HG_SOURCE." msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" "Spusťte před přidáním skupiny změn prostřednictvím push, pull nebo unbundle. " "Nulový status exitu umožňuje skupině změn pokračovat. Nenulový status " "způsobí selhání push, pull nebo unbundle. URL, ze kterého změny přijdou, je " "v $HG_URL." msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" "Spusťte před započetím lokálního komitu. Nulový status exitu umožňuje komitu " "pokračovat. Nenulový status exitu způsobí selhání komitu. ID rodičovských " "changesetů jsou v $HG_PARENT1a $HG_PARENT2." msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" "Spusťte před výpisem pušklíčů (pushkeys) v repozitáři. Nenulový status " "způsobí selhání. Jmenný prostor klíčů je v $HG_NAMESPACE." msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" "Spusťte před shromážděním odesílaných změn z lokálního repozitáře do " "jiného. Nenulový status způsobí selhání. To vám umožní zabránit provedení " "pull přes HTTP nebo SSH. Rovněž zabrání provedení lokálních příkazů pull, " "push (outbound) nebo bundle - BUT (nejde přeložit) not effective, since you " "can just copy files instead then. Source of operation is in $HG_SOURCE. If \"serve\", operation is happening on behalf of remote SSH or HTTP " "repository. If \"push\", \"pull\" or \"bundle\", operation is happening on " "behalf of repository on same system." msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" "Spusťte před přidáním pushkey (jako bookmark) do repozitáře. Nenulový statux " "způsobí odmítnutí klíče. Jmenný prostor klíče je v $HG_NAMESPACE, " "klíč je v $HG_KEY, jeho stará hodnota (existuje-li) je v " "$HG_OLD a jeho nová hodnota je v $HG_NEW." msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" "Spusťte před vytvořením tagu. Nulový status exitu umožňuje vytvoření tagu. " "Nenulový status způsobí selhání tagu. ID changesetu pro tag je v " "$HG_NODE. Název tagu je v $HG_TAG. Tag je lokální, je-li " "$HG_LOCAL=1, v repozitáři, je-li $HG_LOCAL=0." msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" "Spusťte po přidání skupiny změn via push, pull nebo unbundle ale před " "komitem transakce. Skupina změn (changegroup) je viditelná hookovému " "programu. To vám umožňuje ověřit příchozí změny před jejich přijetím. ID " "prvního předaného changesetu je v $HG_NODE a posledního v " "$HG_NODE_LAST. Nulový status exitu umožňuje komitování transakce. " "Nenulový status způsobí vrácení (roll back) transakce a selhání příkazů " "push, pull nebo unbundle. URL, jež bylo zdrojem změn, je v $HG_URL." msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" "Spusťte poté, co byl changeset vytvořen ale před komitem transakce. " "Changeset je viditelný hookovému programu. To vám umožňuje ověřovat zprávu a " "změny komitu. Nulový status exitu umožňuje pokračování komitem. Nenulový " "status způsobí návrat (rollback) transakce. ID changesetu je v $HG_NODE. Changesety rodičů jsou v $HG_PARENT1 a $HG_PARENT2." msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" "Spusťte před aktualizací pracovního adresáře. Nulový status exitu umožní " "provedení aktualizace. Nenulový status aktualizaci zabrání. ID changesetu " "pro prvního nového rodiče je v $HG_PARENT1. Dojde-li ke sloučení, " "je ID druhého rodiče v $HG_PARENT2." msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" "Spusťte po výpisu push klíčů v repozitáři. Jmenný prostor klíčů je v " "$HG_NAMESPACE. Označení $HG_VALUES je pro slovník, " "obsahující klíče a hodnoty." msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" "Spusťte poté, co byl pushkey (jako bookmark) přidán do repozitáře. Jmenný " "prostor pro klíče je v $HG_NAMESPACE, klíč je v $HG_KEY, " "jeho stará hodnota (existuje-li) je v $HG_OLD a nová hodnota je v " "$HG_NEW." msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" "Spusťte po vytvoření tagu. ID tagem označovaného changesetu je v " "$HG_NODE. Název tagu je v $HG_TAG. Tag je lokální, je-li " "$HG_LOCAL=1 a v repozitáři, je-li $HG_LOCAL=0." msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" "Spusťte po aktualizaci pracovního adresáře. ID changesetu prvního nového " "rodiče je v $HG_PARENT1. Dojde-li ke sloučení, je ID druhého " "nového rodiče v $HG_PARENT2. Byla-li aktualizace úspěšná, je " "$HG_ERROR=0. Jestliže aktualizace selhala (např kvůli nerozřešeným " "konflikům), $HG_ERROR=1." msgid "Configure Hook" msgstr "" msgid "Hook type" msgstr "Typ hooku" msgid "Select when your command will be run" msgstr "Určete, kdy váš příkaz bude spuštěn" msgid "The hook name. It cannot contain spaces." msgstr "Název hooku. Nesmí obsahovat mezery." msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" "Příkaz, který bude proveden.\n" "Příkaz k provedení funkce Pythonu nutno uvést slovem \"python:\".\n" msgid "You must set a valid hook type." msgstr "Nutno zadat platný typ hooku." msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "Název hooku nesmí obsahovat mezery, tabulátory nebo znaky '='." msgid "Console" msgstr "" msgid "File &History / Annotate" msgstr "Historie souboru" msgid "Show the history of the selected file" msgstr "Zobrazit historii vybraného souboru" msgid "Co&mpare File Revisions" msgstr "Porovnat verze souboru" msgid "Compare revisions of the selected file" msgstr "Porovnat revize vybraného souboru" msgid "Filter Histor&y" msgstr "Selektivní výběr" msgid "Query about changesets affecting the selected files" msgstr "Hledání changesetů, ovlivňujících vybrané soubory" msgid "Diff &Changeset to Parent" msgstr "" msgid "Diff Changeset to Loc&al" msgstr "" msgid "&Diff to Parent" msgstr "" msgid "Diff to &Local" msgstr "" msgid "View changes to current in external diff tool" msgstr "" "Zobrazit změny oproti stávající (revizi) v externím diffovém prohlížeči" msgid "&View at Revision" msgstr "&Otevřít verzi souboru" msgid "View file as it appeared at this revision" msgstr "Zobrazit stav souboru při této revizi" msgid "&Save at Revision..." msgstr "&Uložit verzi souboru..." msgid "Save file as it appeared at this revision" msgstr "Uložit soubor ve stavu, odpovídajícím této revizi" msgid "Save file to" msgstr "Uložit soubor do" msgid "&Edit Local" msgstr "" msgid "&Open Local" msgstr "" msgid "E&xplore Local" msgstr "" msgid "Open parent folder of current file in the system file manager" msgstr "" "Otevřít rodičovskou složku stávajícího souboru v systémovém správci souborů" msgid "&Copy Patch" msgstr "" msgid "Copy &Path" msgstr "" msgid "Copy full path of file(s) to the clipboard" msgstr "Kopírovat úplnou cestu k souboru do schránky" msgid "&Revert to Revision..." msgstr "&Navrátit k revizi..." msgid "Open S&ubrepository" msgstr "Otevřít s&ubrepozitář" msgid "Open the selected subrepository" msgstr "Otevřít vybraný subrepozitář" msgid "E&xplore Folder" msgstr "Prozkoumat složku" msgid "Open the selected folder in the system file manager" msgstr "Otevřít vybranou složku v systémovém správci souborů" msgid "Open &Terminal" msgstr "Otevřít konzolu" msgid "Open a shell terminal in the selected folder" msgstr "Otevřít terminál ve vybrané složce" msgid "Custom Tools" msgstr "Uživatelské nástroje" msgid "Diff &Local" msgstr "" msgid "&View Missing" msgstr "&Zobrazit chybějící" msgid "View O&ther" msgstr "Zobrazit o&statní" msgid "Add &Largefiles..." msgstr "" msgid "&Forget" msgstr "&Zapomenout" msgid "&Delete Unversioned..." msgstr "Smazat neverzované..." msgid "Confirm Delete Unversioned" msgstr "Potvrdit smazání neverzovaných" msgid "Delete the following unversioned files?" msgstr "Smazat následující neverzované soubory?" msgid "&Delete" msgstr "&Delete" msgid "Re&move Versioned" msgstr "Odebrat verzovaný soubor" msgid "&Revert..." msgstr "&Navrátit (revert)..." msgid "Uncommited merge - please select a parent revision" msgstr "Nekomitované sloučení - vyberte prosím rodičovskou revizi" msgid "Revert files to local or other parent?" msgstr "Navrátit soubory ke stavu lokálního či jihého rodiče?" msgid "&Local" msgstr "&Lokální" msgid "&Other" msgstr "&Jiný" msgid "Confirm Revert" msgstr "Potvrdit navrácení" msgid "Revert local file changes?" msgstr "Navrátit změny lokálních souborů?" msgid "&Revert with backup" msgstr "&Navrátit se zálohou" msgid "&Discard changes" msgstr "&Vyřadit změny" msgid "Revert the following files?" msgstr "Navrátit následující soubory?" msgid "&Revert" msgstr "" msgid "&Copy..." msgstr "&Kopírovat..." msgid "Re&name..." msgstr "Přejmenovat ..." msgid "&Ignore..." msgstr "&Ignorovat..." msgid "Edit Re&jects" msgstr "" msgid "Manually resolve rejected patch chunks" msgstr "Ručně vyřešit odmítnuté porce (chunks) oprávky (patch)" msgid "De&tect Renames..." msgstr "Změna názvu..." msgid "&Mark Resolved" msgstr "&Vyřešené" msgid "&Mark Unresolved" msgstr "&Nevyřešené" msgid "Restart Mer&ge" msgstr "" msgid "Was renamed from" msgstr "Byl přejmenován z" msgid "Restart Merge &with" msgstr "Opakovat sloučení s" msgid "Display the file anyway" msgstr "Přesto ten soubor zobrazit" msgid "Diff not displayed: " msgstr "Diff nezobrazen: " #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" "Soubor je větší než určená max. velikost.\n" "maxdiff = %s KB" msgid "File is binary" msgstr "Binární soubor" msgid "File may be binary (maximum line length exceeded)" msgstr "Soubor může být binární (překročena max. délka řádku)" msgid "File or diffs not displayed: " msgstr "Nezobrazený soubor či diffy: " msgid " (was added)" msgstr " (přidáno)" #, python-format msgid " (copied from %s)" msgstr " (kopírováno z %s)" #, python-format msgid " (renamed from %s)" msgstr " (přejmenováno z %s)" msgid " (is a symlink)" msgstr " (je symlink)" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" "Soubory či diffy nejsou zobrazeny: Soubor je větší než určená max. " "velikost.\n" "maxdiff = %s KB" msgid " (was deleted)" msgstr " (byl smazán)" msgid " (was added, now missing)" msgstr " (byl přidán, nyní chybí)" msgid " (is unversioned)" msgstr " (je neverzovaný)" msgid "exec mode has been set" msgstr "exec mode je zapnut" msgid "exec mode has been unset" msgstr "exec mode je vypnut" #, python-format msgid "changeset: %s" msgstr "changeset: %s" msgid "Initial revision" msgstr "Počáteční revize" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" "[WARNING] Neplatné ID revize subrepozitáře:\n" "\t%s\n" "\n" msgid "Subrepo created and set to initial revision." msgstr "Subrepozitář byl vytvořen a nastaven k počáteční revizi." msgid "Subrepo initialized to revision:" msgstr "Subrepozitář byl vytvořen k revizi:" msgid "Subrepo removed from repository." msgstr "Subrepozitář byl odebrán z repozitáře." msgid "Previously the subrepository was at the following revision:" msgstr "Subrepozitář byl původně v následující revizi:" msgid "Subrepo was not changed." msgstr "Subrepozitář nebyl změněn." msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "" "[WARNING] Chybějící subrepozitář. Aktualizujte k této revizi za účelem jeho " "klonování." msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "" "[WARNING] Neúplný subrepozitář. Aktualizujte k této revizi za účelem jeho " "znovunačtení (pull)." msgid "Subrepo state is:" msgstr "Stav subrepozitáře je:" msgid "Revision has changed to:" msgstr "Revize se změnila na:" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "changeset: %s (v subrepozitáři nenalezen)" msgid "From:" msgstr "From:" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" "[WARNING] Chybějící změněný subrepozitář. Aktualizujte k této revizi za " "účelem jeho klonování." msgid "Subrepository not found in the working directory." msgstr "Subrepozitář nebyl nalezen v pracovním adresáři." msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" "[WARNING] Neúplný změněný subrepozitář. Aktualizujte k této revizi za účelem " "jeho znovunačtení (pull)." msgid "Not a Mercurial subrepo, not previewable" msgstr "Není subrepozitářem Mercurialu, nelze vytvořit náhled" #, python-format msgid "Error previewing subrepo: %s" msgstr "Chyba náhledu na subrepo: %s" msgid "Subrepo may be damaged or inaccessible." msgstr "Subrepozitář může být poškozený nebo je nepřístupný." msgid "The subrepository is dirty." msgstr "Subrepozitář není čistý." msgid "File Status:" msgstr "Status souboru:" msgid "(is a changed sub-repository)" msgstr "(je změněný subrepozitář)" msgid "(is an unchanged sub-repository)" msgstr "(je nezměněný sub-repozitář)" msgid "(is a dirty sub-repository)" msgstr "(je nečistý subrepozitář)" msgid "(is a new sub-repository)" msgstr "(je nový subrepozitář)" msgid "(is a removed sub-repository)" msgstr "(je odstraněný subrepozitář)" msgid "(is a changed and dirty sub-repository)" msgstr "(je změněný a nečistý subrepozitář)" msgid "(is a new and dirty sub-repository)" msgstr "(je nový a nečistý subrepozitář)" msgid "open..." msgstr "" #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "Historie změn u souboru [%s] - %s" msgid "File History Log Columns" msgstr "Sloupce záznamu o historii souborů" msgid "Back" msgstr "Zpět" msgid "Forward" msgstr "Vpřed" msgid "Diff Selected &Changesets" msgstr "" msgid "&Diff Selected File Revisions" msgstr "" msgid "Show Revision &Details" msgstr "Zobrazit podrobnosti revizí" msgid "Too many rows selected for menu" msgstr "Pro menu bylo vybráno příliš mnoho řádků" msgid "File Differences Log Columns" msgstr "Sloupce záznamu o rozdílech souborů" msgid "Next diff" msgstr "Další diff" msgid "Previous diff" msgstr "Předchozí diff" msgid "Unicode" msgstr "" msgid "Western Europe" msgstr "" msgid "Unified Chinese" msgstr "" msgid "Traditional Chinese" msgstr "" msgid "Korean" msgstr "" msgid "Japanese" msgstr "" msgid "Thai" msgstr "" msgid "Central and Eastern Europe" msgstr "" msgid "Cyrillic" msgstr "" msgid "Russian" msgstr "" msgid "Ukrainian" msgstr "" msgid "Greek" msgstr "" msgid "Turkish" msgstr "" msgid "Arabic" msgstr "" msgid "Hebrew" msgstr "" msgid "Vietnamese" msgstr "" msgid "Baltic" msgstr "" msgid "Southern Europe" msgstr "" msgid "Nordic" msgstr "" msgid "Celtic" msgstr "" msgid "South-Eastern Europe" msgstr "" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "" msgid "View change as unified diff output" msgstr "Zobrazit změnu jako unifikovaný diff" msgid "View change in context of file" msgstr "Zobrazit změnu v kontextu souboru" msgid "Annotate with revision numbers" msgstr "Doplnit čísla revizí" msgid "Next Diff" msgstr "Další diff" msgid "Previous Diff" msgstr "Předchozí diff" msgid "Open shelve tool" msgstr "Otevřít nástroj Shelve" msgid "&Auto Detect" msgstr "" msgid "Show changes from first parent" msgstr "Ukázat změny vůči prvnímu rodiči" msgid "Show changes from second parent" msgstr "Ukázat změny vůči druhému rodiči" msgid "E&ncoding" msgstr "Kó&dování" msgid "&Search in Current File" msgstr "&Hledat v aktuálním souboru" msgid "Search in All &History" msgstr "Hledat v celé historii" msgid "Go to Line" msgstr "Přejít na řádek" #, python-format msgid "Enter line number (1 - %d)" msgstr "Zadejte číslo řádku (1 - %d)" msgid "Show &Author" msgstr "Ukázat &autora" msgid "Show &Date" msgstr "" msgid "Show &Revision" msgstr "" msgid "Annotate Op&tions" msgstr "Možnosti anotace" msgid "Search Selected Text" msgstr "Hledat vybraný text" msgid "In Current &File" msgstr "V aktuálním &souboru" msgid "In &Current Revision" msgstr "V &aktuální revizi" msgid "In &Original Revision" msgstr "V &původní revizi" msgid "In All &History" msgstr "V celé &historii" msgid "Go to" msgstr "Přejít k" msgid "View File at" msgstr "Zobrazit soubor v" msgid "Diff File to" msgstr "" msgid "&Originating Revision" msgstr "" msgid "&Parent Revision" msgstr "" #, python-format msgid "&Parent Revision (%d)" msgstr "" msgid "&Mark Excluded Changes" msgstr "&Označit vyloučené změny" msgid "(excluded from the next commit)" msgstr "(vyloučené z následného komitu)" msgid "Interrupted graft operation found" msgstr "Nalezena přerušená operace gráftu" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" "Byla nalezena přerušená operace gráftu.\n" "\n" "Nemůžete provést další gráft bez předchozího zrušení přerušeného gráftu." msgid "Continue or abort interrupted graft operation?" msgstr "Pokračovat nebo zrušit přerušenou operaci gráftu?" msgid "To graft destination" msgstr "Destinace gráftu" msgid "Use my user name instead of graft committer user name" msgstr "Použít jméno uživatele místo jména komitenta gráftu" msgid "Use current date" msgstr "Použít aktuální datum" msgid "Append graft info to log message" msgstr "Připojit info o gráftu ke zprávě protokolu" msgid "Graft" msgstr "" msgid "Abort" msgstr "Zrušit" #, python-format msgid "Graft - %s" msgstr "" msgid "Graft changeset" msgstr "Changeset gráftu" #, python-format msgid "Graft changeset #%d of %d" msgstr "Changeset gráftu #%d z %d" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" "Před gráftem musíte provést commit, shelve do oprávky nebo discard změny." msgid "You may continue or start the graft" msgstr "Můžete pokračovat nebo začít vytvářet gráft" msgid "Graft is complete" msgstr "Gráft je hotový" msgid "Graft failed" msgstr "Gráft se nezdařil" msgid "Graft aborted" msgstr "Gráft byl zrušen" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" "Gráft generoval konflikty, které musí být řešeny" msgid "You may continue the graft" msgstr "Můžete pokračovat v provádění gráftu" msgid "Exiting with an unfinished graft is not recommended." msgstr "Nedoporučuje se končit s nedokončeným gráftem." msgid "Consider aborting the graft first." msgstr "Zkuste nejprve zrušit gráft." msgid "&Exit" msgstr "&Exit" msgid "### regular expression search pattern ###" msgstr "### vzor vyhledávacího regulárního výrazu ###" msgid "Regexp:" msgstr "Regexp:" msgid "Ignore case" msgstr "Ignorovat velikost písmen" msgid "Search" msgstr "Hledat" msgid "Working Copy" msgstr "Pracovní kopie" msgid "All History" msgstr "Celá historie" msgid "Report only the first match per file" msgstr "Hlásit pouze první shodu v souboru" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "Sledovat kopie a změny jmen" msgid "Includes:" msgstr "Zahrnuje:" msgid "Excludes:" msgstr "Vylučuje:" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" "Seznam čárkou odělených vylučovacích vzorů souboru. Vylučovací vzory jsou " "použity až po včleňovacích vzorech." msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" "Seznam čárkou oddělených včleňovacích vzorů souboru. Implicitně je " "prohledáván celý repozitář." #, python-format msgid "\"%s\" removed from search history" msgstr "\"%s\" odstraněno z historie hledání" #, python-format msgid "\"%s\" removed from path history" msgstr "\"%s\" odstraněno z historie cesty" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "grep: neplatný vzor shody: %s\n" #, python-format msgid "grep: %s\n" msgstr "grep: %s\n" #, python-format msgid "%d matches found" msgstr "nalezeno %d shod" msgid "No matches found" msgstr "Žádné shody nenalezeny" msgid "Searching" msgstr "Searching" msgid "history" msgstr "historie" msgid "Interrupted" msgstr "Přerušeno" msgid "files" msgstr "soubory" #, python-format msgid "Skipping %s, unable to read" msgstr "Přeskakuje se %s, nejde číst" msgid "Vi&ew File" msgstr "" msgid "&View Changeset" msgstr "" msgid "Annotate &File" msgstr "" msgid "File" msgstr "Soubor" msgid "Line" msgstr "Řádek" msgid "Rev" msgstr "Rev" msgid "User" msgstr "Uživatel" msgid "Match Text" msgstr "Match Text" msgid "TortoiseHg Search" msgstr "TortoiseHg Search" #, python-format msgid "Detect Copies/Renames in %s" msgstr "Vypátrat změny názvů v %s" msgid "Unrevisioned Files" msgstr "Neverzované soubory" msgid "Refresh file list" msgstr "Reaktivovat seznam souborů" #, python-format msgid "Min Similarity: %d%%" msgstr "Min podobnost: %d%%" msgid "Only consider deleted files" msgstr "Vzít v úvahu pouze smazané soubory" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "Odznačit a považovat všechny verzované soubory jako zdroje kopií" msgid "Find Renames" msgstr "Nalézt změny jmen" msgid "Find copy and/or rename sources" msgstr "Nalézt kopie a přejmenované zdroje" msgid "Candidate Matches" msgstr "Kandidáti shod" msgid "Accept All Matches" msgstr "Přijmout všechny shody" msgid "Accept Selected Matches" msgstr "Přijmout vybrané shody" msgid "Differences from Source to Dest" msgstr "Rozdíly mezi zdrojem a destinací" msgid "Search already in progress" msgstr "Hledání již probíhá" msgid "Cannot start a new search" msgstr "Nejde spustit nové hledání" msgid "No files to find" msgstr "Žádné soubory nenalezeny" msgid "There are no files that may have been renamed" msgstr "Neexistují soubory, které mohly být přejmenovány" msgid "Multiple sources chosen" msgstr "Vybráno vícero zdrojů" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" "Máte vybráno více změn jmen pro cílový soubor:\n" "%s. Ruší se!" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" "%s a %s mají stejný obsah\n" "\n" #. i18n: percent format #, python-format msgid "%d%%" msgstr "" msgid "Source" msgstr "Zdroj" msgid "Dest" msgstr "Destinace" msgid "% Match" msgstr "% Shoda" msgid "Sending Email" msgstr "Sending Email" msgid "Email" msgstr "Email" msgid "To:" msgstr "To:" msgid "Cc:" msgstr "Cc:" msgid "In-Reply-To:" msgstr "In-Reply-To:" msgid "Message identifier to reply to, for threading" msgstr "Message identifier to reply to, for threading" msgid "Flag:" msgstr "Flag:" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" "Hg oprávky (generované přikazem export) jsou kompatibilní s většinou " "oprávkových programů. Zahrnují záhlaví, které obsahuje nejdůležitější " "metadata changesetu." msgid "Send changesets as Hg patches" msgstr "Poslat changesety jako oprávky Hg" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" "Oprávky git umějí popsat binární soubory, kopie a změny povolenek ale " "příjemci je nemusí umět použít, pokud nepoužívají git nebo Mercurial." msgid "Use extended (git) patch format" msgstr "Použít rozšířený (git) oprávkový formát" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" "Odejmutí záhlaví Mercurialu odstraní jméno uživatele a informaci o rodiči. " "Užitečné jen tehdy, když příjemce nepoužívá Mercurial (a nechce vidět " "záhlaví)." msgid "Plain, do not prepend Hg header" msgstr "Bez záhlaví Mercurialu" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" "Svazky ukládají kompletní changesety v binární formě. Ostatní uživatelé si " "je mohou převzít (pull). Je to nejjistější způsob zaslání změn příjemcům " "užívajícím Mercurial." msgid "Send single binary bundle, not patches" msgstr "Poslat jen binární svazek, ne oprávky" msgid "send patches as part of the email body" msgstr "poslat oprávky jako část těla emailu" msgid "body" msgstr "tělo (body)" msgid "send patches as attachments" msgstr "poslat oprávky jako přílohy" msgid "attach" msgstr "připojit" msgid "send patches as inline attachments" msgstr "poslat oprávky jako vkládané přílohy" msgid "inline" msgstr "inline" msgid "add diffstat output to messages" msgstr "ke zprávám přidat výstup diffstat" msgid "diffstat" msgstr "diffstat" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" "Popis serie oprávek je poslán v souhrnném emailu s předmětem zprávy [PATCH 0 " "of N]. Měl by popsat účinek celé serie oprávek. Při odesílání svazku tvoří " "tato pole předmět a tělo zprávy. 'Flags' je CSV seznam štítků, které jsou " "vloženy do předpony předmětu zprávy." msgid "Write patch series (bundle) description" msgstr "Zapište popis serie oprávek (bundle)" msgid "Subject:" msgstr "Subjekt:" msgid "Changesets" msgstr "Changesety" msgid "Select &All" msgstr "" msgid "Select &None" msgstr "" msgid "Edit" msgstr "Editovat" msgid "Preview" msgstr "Náhled" msgid "&Settings" msgstr "&Settings" msgid "Send &Email" msgstr "Send &Email" msgid "&Close" msgstr "&Zavřít" #, python-format msgid "Ignore filter - %s" msgstr "Seznam ignorovaných souborů - %s" msgid "Glob" msgstr "Glob" msgid "Regexp" msgstr "Regexp" msgid "Add" msgstr "Přidat" msgid "Edit File" msgstr "Editovat soubor" msgid "Ignore Filter" msgstr "Ignore Filter" msgid "Untracked Files" msgstr "Nesledované soubory" msgid "Backspace or Del to remove row(s)" msgstr "Backspace či Del pro odebrání řádku(ů)" msgid "Add ignore filter..." msgstr "Add ignore filter..." msgid "selected files" msgstr "vybrané soubory" msgid "Ignore " msgstr "Ignorovat " msgid "Invalid glob expression" msgstr "Neplatný výraz glob" msgid "Invalid regexp expression" msgstr "Neplatný výraz regexp" msgid "Unable to read repository status" msgstr "Nejde přečíst status repozitáře" msgid "New file created" msgstr "Vytvořený nový soubor" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" "TortoiseHg vytvořil nový soubor .hgignore. Chcete jej zařadit mezi verzované " "soubory?" msgid "Unable to write .hgignore file" msgstr "Nejde zapsat soubor .hgignore" msgid "Copy working directory files from skeleton" msgstr "Kopírovat soubory pracovního adresáře ze skeletu" msgid "Create special files (.hgignore, ...)" msgstr "Vytvořit specielní soubory (.hgignore, ...)" msgid "Make repo compatible with Mercurial <1.7" msgstr "Vytvořit repozitář kompatibilní s Mercurialem <1.7" msgid "New Repository" msgstr "Nový repozitář" msgid "&Create" msgstr "&Vytvořit" msgid "Unable to create a config file" msgstr "Nejde vytvořit konfigurační soubor" msgid "Insufficient access rights." msgstr "Nedostatečná přístupová práva." msgid "Show Log" msgstr "Ukázat záznam" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" "Některé z vybraných souborů jsou větší než 10 MB. Lépe využijete prostor na " "disku, přidáte-li je jako velké soubory, načež se ve vašem lokálním " "repozitáři budou ukládat pouze poslední úpravy každého souboru a starší " "úpravy budou dostupné na serveru. Chcete tyto soubory přidat jako velké " "(largefiles)?" msgid "Add as &Largefiles" msgstr "Přidat jako &Largefiles" msgid "Add as &Normal Files" msgstr "Přidat jako &Normal Files" msgid "Invalid Patterns" msgstr "Neplatné vzory" msgid "Failed to process largefiles.patterns." msgstr "" msgid "Word docs (*.doc *.docx)" msgstr "" msgid "PDF docs (*.pdf)" msgstr "" msgid "Excel files (*.xls *.xlsx)" msgstr "" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "" msgid "Refresh lock information" msgstr "Reaktivovat informaci o zámku" msgid "Lock a file not described in .hglocks" msgstr "Uzamčení souboru není popsáno v .hglocks" msgid "Stop current operation" msgstr "Zastavit probíhající operaci" msgid "Locked And Lockable Files:" msgstr "Zamknuté a zamknutelné soubory:" msgid "Path" msgstr "Cesta" msgid "Locking User" msgstr "" msgid "Purpose" msgstr "Účel" msgid "Simplelock extension not enabled" msgstr "Extenze simplelock není povolena" msgid "Please enable and configure simplelock" msgstr "Povolte prosím a nastavte simplelock" msgid "Open a (nonmergable) file you wish to be locked" msgstr "Otevřít (neslučitelný) soubor, který si přejete zamknout" msgid "File was not within current repository" msgstr "Soubor nebyl v aktuálním repozitáři" #, python-format msgid "Locking %s" msgstr "" #, python-format msgid "Unlocking %s" msgstr "Odemčení %s" msgid "Refreshing locks..." msgstr "Reaktivuje zámky..." #, python-format msgid "Lock of %s successful" msgstr "Uzamčení %s bylo úspěšné" #, python-format msgid "Lock of %s failed, retry" msgstr "Uzamčení %s selhalo, zkuste znovu" #, python-format msgid "Unlock of %s failed, retry" msgstr "Odemčení %s selhalo, zkuste znova" #, python-format msgid "Unlock of %s successful" msgstr "Odemčení %s bylo úspěšné" msgid "Ready, double click to lock or unlock" msgstr "Připraveno, dvojím klikem zamknout nebo odemknout" msgid "Ready" msgstr "" msgid "You can only release your own locks" msgstr "Můžete uvolnit pouze své vlastní zámky" msgid "Find revisions matching fields of:" msgstr "Nalézt shodná pole revizí:" msgid "Revision to Match:" msgstr "Revize pro shodu:" msgid "Fields to match:" msgstr "Pole pro shodu:" msgid "Summary (first description line)" msgstr "Shrnutí (první řádek popisu)" msgid "Description" msgstr "Popis" msgid "Author" msgstr "Autor" msgid "Date" msgstr "Datum" msgid "Files" msgstr "Soubory" msgid "Diff contents" msgstr "Obsah diffů" msgid "Subrepo states" msgstr "Stavy subrepozitáře" msgid "Branch" msgstr "Větev" msgid "Phase" msgstr "Fáze" msgid "&Match" msgstr "" #, python-format msgid "Find matches - %s" msgstr "Najít shody - %s" msgid "Revisions to Match:" msgstr "Účel hledání:" #, python-format msgid "Match any of %d revisions" msgstr "Nalézt shody u libovolných %d revizí" msgid "Unknown revision!" msgstr "Neznámá revize!" msgid "Parse Error!" msgstr "" #, python-format msgid "Merge - %s" msgstr "Sloučit - %s" msgid "Do you want to exit?" msgstr "Chcete skončit?" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" "Slučování ukončíte po komitu pracovního adresáře.\n" "\n" "Sloučení můžete zrušit aktualizací k jedné z rodičovských revizí." msgid "Prepare to merge" msgstr "Připravit ke sloučení" msgid "Verify merge targets and ensure your working directory is clean." msgstr "Ověřte cíle sloučení a ujistěte se, že pracovní adresář je čistý." msgid "Not a head revision!" msgstr "Bez čelní revize!" msgid "Merge from (other revision)" msgstr "Sloučit z (jiné revize)" msgid "Merge to (working directory)" msgstr "Sloučit k (pracovnímu adresáři)" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" "Pracovní adresář je již sloučen. Pokračovat nebo vyřadit existující sloučení." msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" "Před sloučením musíte provést commit, shelve změny do oprávky, nebo je vyřadit (discard)." msgid "Or use:" msgstr "Nebo použít:" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "Vynutit sloučení s nevyřízenými změnami (-f/--force)" msgid "Discard all changes from the other revision" msgstr "Odvrhnout všechny změny z jiné revize" msgid "&Discard" msgstr "&Vyřadit" msgid "Confirm Discard Changes" msgstr "Potvrdit vyřazení změn" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" "Změny z revize %s a všechny nesloučené rodičovské revize budou zavrženy.\n" "\n" "Jste si jist, že toto je to, co chcete?" msgctxt "working dir state" msgid "Clean" msgstr "Clean" msgid "Merging..." msgstr "Merging..." msgid "Automatically advance to next page when merge is complete." msgstr "Automaticky postoupit k další stránce po ukončení sloučení." #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" "%d souborů bylo změněno v obou větvích a musí být řešeny" msgid "" "No merge conflicts, ready to commit or review" msgstr "" "Žádné slučovací konflikty, připraveno ke komitu nebo review" msgid "Commit merge results" msgstr "Komitovat výsledek sloučení" msgid "Commit Options" msgstr "Možnosti komitu" msgid "Commit Now" msgstr "Komitovat nyní" msgid "Commit Later" msgstr "Komitovat později" msgid "Merge changeset" msgstr "Changeset sloučení" msgid "Syntax Highlighting" msgstr "Zvýraznění skladby" msgid "Paste &Filenames" msgstr "Vložit jména souborů" msgid "App&ly Format" msgstr "Použít formát" msgid "C&onfigure Format" msgstr "Nastavit formát" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "" "%s měl odmítnuté porce (chunks), editovat oprávkované (patched) soubory " "společně s odmíntutými?" msgid "&Commit to Queue..." msgstr "&Komitovat do fronty..." msgid "Create &New Queue..." msgstr "" msgid "&Rename Active Queue..." msgstr "" msgid "&Delete Queue..." msgstr "" msgid "&Purge Queue..." msgstr "" msgid "Create Patch Queue" msgstr "" msgid "New patch queue name" msgstr "Název nové fronty oprávek" msgid "Create" msgstr "Vytvořit" msgid "Rename Patch Queue" msgstr "" #, python-format msgid "Rename patch queue '%s' to" msgstr "Přejmenovat frontu oprávek '%s' na" msgid "Rename" msgstr "Přejmenovat" msgid "Delete Patch Queue" msgstr "" msgid "Delete reference to" msgstr "Smazat odkaz na" msgid "Delete" msgstr "Smazat" msgid "Purge Patch Queue" msgstr "" msgid "Remove patch directory of" msgstr "" msgid "Purge" msgstr "Čistit" msgid "Rename Patch" msgstr "" #, python-format msgid "Rename patch %s to:" msgstr "Přejmenovat oprávku %s na:" msgid "no guards" msgstr "no guards" msgid "Patch Queue" msgstr "Fronta oprávek (Patch Queue)" msgctxt "MQ QPush" msgid "Push" msgstr "" msgid "Apply one patch" msgstr "Aplikovat jednu oprávku" msgctxt "MQ QPush" msgid "Push all" msgstr "" msgid "Apply all patches" msgstr "Aplikovat všechny oprávky" msgid "Pop" msgstr "" msgid "Unapply one patch" msgstr "Zrušit aplikaci jedné oprávky" msgid "Pop all" msgstr "" msgid "Unapply all patches" msgstr "Zrušit aplikaci všech oprávek" msgid "Go &to Patch" msgstr "" msgid "&Apply Only This Patch" msgstr "" msgid "Apply only the selected patch" msgstr "" msgid "&Finish Patch" msgstr "" msgid "Move applied patches into repository history" msgstr "Přesunout aplikované oprávky do historie repozitáře" msgid "&Delete Patches..." msgstr "" msgid "Delete selected patches" msgstr "Smazat vybrané oprávky" msgid "Re&name Patch..." msgstr "" msgid "Set &Guards..." msgstr "" msgid "Configure guards for selected patch" msgstr "Nastavit guardy pro vybranou oprávku" msgid "Patch Queue Actions Toolbar" msgstr "" msgid "Configure guards" msgstr "Nastavit guardy" #, python-format msgid "Input new guards for %s:" msgstr "Vložit guard pro %s:" msgid "Confirm patch queue switch" msgstr "Potvrdit změnu fronty oprávek" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "Opravdu chcete aktivovat frontu oprávek '%s' ?" #, python-format msgid "Guards: %d/%d" msgstr "Guards: %d/%d" msgid "MQ options" msgstr "MQ options" msgid "Force push or pop (--force)" msgstr "Vynutit push nebo pop (--force)" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "Tolerovat nekonfliktní lokální změny (--keep-changes)" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "Nevyřízené changelisty Perforce - %s" msgid "Submitting p4 changelist..." msgstr "Submitting p4 changelist..." msgid "Reverting p4 changelist..." msgstr "Reverting p4 changelist..." msgid "Patch Branch Toolbar" msgstr "Patch Branch Toolbar" msgid "Merge all pending dependencies" msgstr "Sloučit všechny nevyřízené závislosti" msgid "Backout current patch branch" msgstr "Anulovat aktuální větev oprávky" msgid "Backport part of a changeset to a dependency" msgstr "Přenést část changesetu zpět k závislosti" msgid "Start a new patch branch" msgstr "Otevřít novou větev oprávky" msgid "Edit patch dependency graph" msgstr "Editovat graf závislosti oprávky" msgid "will be closed" msgstr "bude uzavřeno" #, python-format msgid "needs merge of %i heads\n" msgstr "vyžaduje sloučení %i čel\n" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "vyžaduje sloučení s %s (až %s)\n" #, python-format msgid "needs merge with %s\n" msgstr "vyžaduje sloučení s %s\n" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "vyžaduje aktualizaci diffové báze k tipu %s\n" msgid "&Goto (update workdir)" msgstr "&Goto (update workdir)" msgid "&Merge" msgstr "&Sloučit" msgid "No patch branch selected" msgstr "Nebyla vybrána žádná větev oprávky" msgid "No editor found" msgstr "Editor nenalezen" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" "Mercurial nenalezl žádný editor. Upravte prosím nastavení Mercurialu, aby " "mohl použít váš systémový editor." msgid "Graph" msgstr "Graf" msgid "Status" msgstr "Status" msgid "Title" msgstr "Název" msgid "Message" msgstr "Zpráva" msgid "New Patch Branch" msgstr "Nová větev oprávky" msgid "Patch message:" msgstr "Zpráva oprávky:" msgid "Patch date:" msgstr "Datum oprávky:" msgid "Patch user:" msgstr "Uživatel oprávky:" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "Post &Review" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "Neplatné nastavení - Server ReviewBoard server není nastaven" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "" "Neplatné nastavení - Uveďte prosím své uživatelské jméno pro ReviewBoard" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" "Neplatný plugin pro reviewboard. Stáhněte si prosím plugin pro reviewboard " "Mercurialu verze 3.5 nebo vyšší z níže uvedené webové stránky.\n" "\n" " %s" msgid "Review Board" msgstr "Review Board" msgid "Password:" msgstr "Heslo:" msgid "Error" msgstr "Chyba" #, python-format msgid "Review draft posted to %s\n" msgstr "Review draft posted to %s\n" #, python-format msgid "Review published to %s\n" msgstr "Review published to %s\n" msgid "Success" msgstr "Success" msgid "Repository ID:" msgstr "ID repozitáře:" msgid "Post Review" msgstr "Post Review" msgid "Review ID:" msgstr "Review ID:" msgid "Update the fields of this existing request" msgstr "Aktualizovat pole pro tento existující požadavek" msgid "Update Review" msgstr "Update Review" msgid "Create diff with all outgoing changes" msgstr "Vytvořit diff se všemi odchozími změnami" msgid "Create diff with all changes on this branch" msgstr "Vytvořit diff se všemi změnami v této větvi" msgid "Publish request immediately" msgstr "Požadavek neprodleně publikovat" msgid "%p%" msgstr "%p%" msgid "Connecting to Review Board..." msgstr "Connecting to Review Board..." msgid "Target:" msgstr "Cíl:" msgid "Do not modify working copy (-k/--keep)" msgstr "Neupravovat pracovní kopii (-k/--keep)" #, python-format msgid "Prune - %s" msgstr "" msgid "&Prune" msgstr "" msgid "No unknown files found" msgstr "Žádné neznámé soubory nebyly nalezeny" msgid "No ignored files found" msgstr "Žádné ignorované soubory nebyly nalezeny" msgid "No trash files found" msgstr "Žádné odhozené soubory nebyly nalezeny" msgid "Delete empty folders" msgstr "Smazat prázdné složky" msgid "Preserve files beginning with .hg" msgstr "Zachovat soubory začínající s .hg" #, python-format msgid "%s - purge" msgstr "%s - čistit" msgid "Checking" msgstr "Ověřování" msgid "Ready to purge." msgstr "Připraveno k čištění (purge)" #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "Smazat %d neznámý soubor" msgstr[1] "Smazat %d neznámé soubory" msgstr[2] "Smazat %d neznámých souborů" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "Smazat %d ignorovaný soubor" msgstr[1] "Smazat %d ignorované soubory" msgstr[2] "Smazat %d ignorovaných souborů" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "Smazat %d soubor v .hg/Trashcan" msgstr[1] "Smazat %d soubory v .hg/Trashcan" msgstr[2] "Smazat %d souborů v .hg/Trashcan" msgid "Confirm file deletions" msgstr "Potvrdit smazání souborů" msgid "Are you sure you want to delete these files and/or folders?" msgstr "Jste si jist, že chcete smazat tyto soubory a/nebo složky?" msgid "Deletion failures" msgstr "Nezdary při mazání" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "Nejde smazat %d soubor či složka" msgstr[1] "Nejde smazat %d soubory či složky" msgstr[2] "Nejde smazat %d souborů či složek" msgid "Deleting trash folder..." msgstr "Deleting trash folder..." #, python-format msgid "Deleted %d files" msgstr "Smazáno %d souborů" #, python-format msgid "Deleted %d files and %d folders" msgstr "Smazáno %d souborů a %d složek" msgid "Delete Patches" msgstr "" msgid "Remove patches from queue?" msgstr "Odebrat oprávky z fronty?" msgid "Keep patch files" msgstr "Zachovat oprávkové soubory" #, python-format msgid "Patch fold - %s" msgstr "Patch fold - %s" msgid "New patch message:" msgstr "Nová zpráva oprávky:" msgid "Patches to fold" msgstr "Oprávky ke shrnutí (fold)" msgid "&Undo" msgstr "" msgid "&Redo" msgstr "" msgid "Cu&t" msgstr "" msgid "&Copy" msgstr "&Kopírovat" msgid "&Paste" msgstr "&Vložit" msgid "&Editor Options" msgstr "&Možnosti editoru" msgid "&Wrap" msgstr "" msgctxt "wrap mode" msgid "&None" msgstr "" msgid "&Word" msgstr "" msgid "&Character" msgstr "" msgid "White&space" msgstr "" msgid "&Visible" msgstr "" msgid "&Invisible" msgstr "" msgid "&AfterIndent" msgstr "" msgid "&TAB Inserts" msgstr "" msgid "&Auto" msgstr "" msgid "&TAB" msgstr "" msgid "&Spaces" msgstr "&Mezery" msgid "EOL &Visibility" msgstr "" msgid "EOL &Mode" msgstr "" msgid "&Windows" msgstr "" msgid "&Unix" msgstr "" msgid "&Mac" msgstr "" msgid "&Auto-Complete" msgstr "" msgid "### regular expression ###" msgstr "### regulární výraz ###" msgid "Regular expression search pattern" msgstr "Vyhledávací vzor regulárního výrazu" msgid "Wrap search" msgstr "Na konci znovu od začátku" msgid "Prev" msgstr "" msgid "Next" msgstr "" msgid "Unable to read file" msgstr "Soubor nejde číst" msgid "Could not open the specified file for reading." msgstr "Označený soubor nejde otevřít pro čtení." msgid "This appears to be a binary file." msgstr "Jde patrně o binární soubor." msgid "An error occurred while reading the file." msgstr "Při čtení souboru došlo k chybě." msgid "Text Translation Failure" msgstr "Překlad textu se nezdařil" msgid "Could not translate the file content from native encoding." msgstr "Nešlo přeložit obsah souboru z nativního kódování." msgid "Several characters would be lost." msgstr "Několik znaků by se ztratilo." msgid "Unable to write file" msgstr "Do souboru nejde psát" msgid "Could not translate the file content to native encoding." msgstr "Nešlo přeložit obsah souboru do nativního kódování." msgid "Could not open the specified file for writing." msgstr "Určený soubor nešlo otevřít pro zápis." msgid "An error occurred while writing the file." msgstr "Při zápisu do souboru došlo k chybě." msgid "Try refreshing your repository." msgstr "Zkuste obnovit (refresh) svůj repozitář." #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
        Please edit your config" msgstr "" "Chyba řetězce \"%(arg0)s\" v %(arg1)s
        Prosím, upravte svoji konfiguraci" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
        Please fix your config" msgstr "" "Chyba konfigurace: \"%(arg0)s\",
        Prosím
        upravte svůj konfig. soubor" #, python-format msgid "Operation aborted:

        %(arg0)s." msgstr "Operace zrušena:

        %(arg0)s." msgid "Repository is locked" msgstr "Repozitář je uzamčen" msgid "hint:" msgstr "návod:" msgid "Repository Error" msgstr "Chyba repozitáře" msgid "No visual editor configured" msgstr "Žádný textový editor není nastaven" msgid "Please configure a visual editor." msgstr "Nastavte prosím textový editor." msgid "Editor launch failure" msgstr "Selhalo spuštění editoru" msgid "Failed to open path in terminal" msgstr "Nepodařilo se otevřít cestu v terminálu" #, python-format msgid "\"%s\" is not a valid directory" msgstr "\"%s\" není platný adresář" #, python-format msgid "Invalid configuration: %s" msgstr "Neplatná konfigurace: %s" msgid "Unable to start the following command:" msgstr "Nejde spustit následující příkaz:" msgid "No shell configured" msgstr "Žádné zobrazení není nastaveno" msgid "A terminal shell must be configured" msgstr "Musí být nastaveno zobrazení terminálu" msgid "Please enter a username" msgstr "Zadejte prosím jméno uživatele" msgid "You must identify yourself to Mercurial" msgstr "Musíte Mercurialu prokázat svou identitu" msgid "Unable to translate input to local encoding." msgstr "Vstup nelze přeložit do lokálního kódování." msgid "Checkmark files to add" msgstr "Označit přidávané soubory" msgid "Checkmark files to forget" msgstr "Označit soubory, které mají být zapomenuty" msgid "Forget" msgstr "Zapomenout" msgid "Checkmark files to revert" msgstr "Označit soubory, které mají být nastaveny na zadanou revizi" msgid "Revert" msgstr "Revert (!)" msgid "Checkmark files to remove" msgstr "Označit soubory, které mají být odebrány" msgid "Remove" msgstr "Odebrat" #, python-format msgid "%s - hg %s" msgstr "%s - hg %s" msgid "Do not save backup files (*.orig)" msgstr "Neukládat záložní soubory (*.orig)" msgid "Force removal of modified files (--force)" msgstr "Vynutit odebrání upravených souborů (--force)" msgid "Add &Largefiles" msgstr "" msgid "No files selected" msgstr "Žádné soubory nebyly vybrány" msgid "No operation to perform" msgstr "Žádná operace k provedení" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" "Vybral jste jeden nebo více upravovaných souborů. Implicitně tyto soubory " "nejsou odebírány. Co chcete udělat?" msgid "Remove &Unmodified Files" msgstr "Odebrat &neměněné soubory" msgid "Remove &All Selected Files" msgstr "Odebrat &všechny vybrané soubory" msgid "Rebase changeset and descendants" msgstr "Přeskupit (rebase) changeset a potomky" msgid "To rebase destination" msgstr "K destinaci přeskupení" msgid "Swap source and destination" msgstr "Prohodit zdroj a destinaci" msgid "Keep original changesets (--keep)" msgstr "Zachovat původní changesety (--keep)" msgid "Keep original branch names (--keepbranches)" msgstr "Zachovat původní názvy větví (--keepbranches)" msgid "Collapse the rebased changesets (--collapse)" msgstr "Soustředit přeskupené (rebased) changesety (--collapse)" msgid "Rebase entire source branch (-b/--base)" msgstr "Přeskupit celou výchozí větev (-b/--base)" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "" "Přeskupit (rebase) 'nepublikované' do čela Subversion (override source, " "destination)" msgid "Rebase" msgstr "Přeskupit (rebase)" #, python-format msgid "Rebase - %s" msgstr "Přeskupit - %s" msgid "" "Before rebase, you must commit, shelve to patch, or discard changes." msgstr "" "\"Před rebase musíte provést commit, odložit " "změny shelve do oprávky nebo discard změny." msgid "You may continue the rebase" msgstr "Můžete pokračovat v přeskupování (rebase)" msgid "Rebase is complete" msgstr "Přeskupení je kompletní" msgid "Rebase failed" msgstr "Přeskupení selhalo" msgid "Rebase aborted" msgstr "Přeskupení zrušeno" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" "Rebase generovalo sloučení conflicts které musí být řešeno" msgid "Exiting with an unfinished rebase is not recommended." msgstr "Vystoupit z nedokončeného přeskupování se nedoporučuje." msgid "Consider aborting the rebase first." msgstr "Zkuste nejprve zrušit přeskupení (rebase)." #, python-format msgid "Merge rejected patch chunks into %s" msgstr "Sloučit odmítnuté porce oprávek (patch chunks) s %s" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "Označit tento chunk jako řešený, přejít k dalšímu neřešenému" msgid "Mark this chunk as unresolved" msgstr "Označit tento chunk jako neřešený" msgid "Reload File" msgstr "Opětovně načíst soubor" msgid "Are you sure you want to reload this file?" msgstr "Jste si jist, že tento soubor chcete opětovně načíst?" msgid "All unsaved changes will be lost." msgstr "Všechny neuložené změny budou ztraceny." msgid "Warning" msgstr "Varování" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" "Označil jste všechny odmítnuté porce oprávky (patch chunks) jako vyřešené i " "když jste neprovedl žádnou změnu souboru v editovacím panelu.\n" "\n" "To patrně znamená, že se do souboru nedostal žádný kód z odmítnutých porcí " "oprávky.\n" "\n" "Jste si jist, že chcete ponechat soubor tak jak je a všechny odmítnuté porce " "oprávky považovat za řešené?\n" "\n" "Může se například stát, že se smažou z shelfu, což by znamenalo, že o ně " "navždy přijdete!\n" "\n" "Poklepem Yes přijmete soubor tak jak je, případně poklepem No můžete " "pokračovat v řešení odmítnutých porcí oprávky." msgid "Copy source -> destination" msgstr "Copy source -> destination" msgid "Copy Error" msgstr "Copy Error" msgid "Rename Error" msgstr "Rename Error" msgid "Select Source File" msgstr "Vyberte zdrojový soubor" msgid "Select Source Folder" msgstr "Vyberte zdrojovou složku" msgid "Source does not exist." msgstr "Zdroj neexistuje..." msgid "The source must be within the repository tree." msgstr "Zdroj musí být uvnitř kořenového adresáře repozitáře." msgid "The destination must be within the repository tree." msgstr "Destinace musí být uvnitř kořenového adresáře repozitáře." msgid "Destination file already exists." msgstr "Cílový soubor již existuje." msgid "Are you sure you want to overwrite it ?" msgstr "Jste si jist, že jej chcete přepsat ?" #, python-format msgid "Copy - %s" msgstr "Kopírovat - %s" #, python-format msgid "Rename - %s" msgstr "Přejmenovat - %s" msgid "Show all" msgstr "Ukázat vše" msgid "### revision set query ###" msgstr "###zkoumání sady revizí ###" msgid "Clear current query and query text" msgstr "Smazat stávající průzkum (query) a jeho text" msgid "Trigger revision set query" msgstr "Aktivovat průzkum (query) sady revizí" msgid "Open advanced query editor" msgstr "Otevřít editor průzkumu (query)" msgid "Delete selected query from history" msgstr "Smazat vybrany dotaz (query) z historie" msgid "filter" msgstr "filtr" msgid "Toggle filtering of non-matched changesets" msgstr "Zapnout filtrování neshodujících se changesetů" msgid "Show/Hide hidden changesets" msgstr "Ukázat/Skrýt skryté changesety" msgid "Toggle graft relations visibility" msgstr "Zobrazení gráftového vztahu (přepínač)" msgid "Keyword Search" msgstr "" msgid "Revision Set" msgstr "Sada revizí" msgid "(unsaved)" msgstr "(neuloženo)" msgid "Display graph the named branch only" msgstr "Zobrazit graf pouze pojmenované větve" msgid "Display only active branches" msgstr "Zobrazit jenom aktivní větve" msgid "Display closed branches" msgstr "Zobrazit uzavřené větve" msgid "Include all ancestors" msgstr "Zahrnout všechny předky" msgctxt "column header" msgid "Graph" msgstr "Graf" msgctxt "column header" msgid "Rev" msgstr "Revize" msgctxt "column header" msgid "Branch" msgstr "Větev" msgctxt "column header" msgid "Description" msgstr "Popis" msgctxt "column header" msgid "Author" msgstr "Autor" msgctxt "column header" msgid "Tags" msgstr "Tagy" msgctxt "column header" msgid "Latest tags" msgstr "Poslední tagy" msgctxt "column header" msgid "Node" msgstr "Node" msgctxt "column header" msgid "Git Commit" msgstr "" msgctxt "column header" msgid "Age" msgstr "Stáří" msgctxt "column header" msgid "Local Time" msgstr "Local Time" msgctxt "column header" msgid "UTC Time" msgstr "UTC Time" msgctxt "column header" msgid "Changes" msgstr "Změny" msgctxt "column header" msgid "Converted From" msgstr "Převedeno z" msgctxt "column header" msgid "Phase" msgstr "Fáze" msgctxt "column header" msgid "Filename" msgstr "Název souboru" msgid "Searching..." msgstr "Hledá se..." #, python-format msgid "filling (%d)" msgstr "filling (%d)" msgid "Mercurial User" msgstr "Uživatel Mercurialu" msgid "Repository Registry" msgstr "Seznam repozitářů" msgid "Show &Paths" msgstr "" msgid "Show S&hort Paths" msgstr "" msgid "&Scan Repositories at Startup" msgstr "&Skenovat repozitáře při spuštění" msgid "Scan &Remote Repositories" msgstr "Skenovat &vzdálené repozitáře" msgid "&Refresh Repository List" msgstr "&Reaktivovat seznam repozitářů" msgid "Refresh the Repository Registry list" msgstr "Reaktivovat seznam repozitářů" msgid "&Open" msgstr "Aktivovat repozitář" msgid "Open the repository in a new tab" msgstr "Otevřít repozitář v nové kartě" msgid "&Open All" msgstr "" msgid "Open all repositories in new tabs" msgstr "Otevřít všechny repozitáře v nových kartách" msgid "New &Group" msgstr "Nová &skupina" msgid "Create a new group" msgstr "Vytvořit novou skupinu" msgid "Rename the entry" msgstr "Přejmenovat záznam" msgid "Settin&gs" msgstr "" msgid "View the repository's settings" msgstr "Zobrazit nastavení repozitáře" msgid "Re&move from Registry" msgstr "Odebrat repozitář" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" "Odstranit node a všechny jeho sub-nody. Repozitáře se z disku nesmažou." msgid "Clon&e..." msgstr "Klon&ovat..." msgid "Clone Repository" msgstr "Klonovat repozitář" msgid "E&xplore" msgstr "Otevřít složku" msgid "Open the repository in a file browser" msgstr "Otevřít repozitář v průzkumníku" msgid "&Terminal" msgstr "&Terminál" msgid "Open a shell terminal in the repository root" msgstr "Otevřít terminál v kořeni repozitáře" msgid "&Add Repository..." msgstr "&Přidat repozitář..." msgid "Add a repository to this group" msgstr "Přidat repozitář do této skupiny" msgid "A&dd Subrepository..." msgstr "Přidat subrepozitář..." msgid "Convert an existing repository into a subrepository" msgstr "Přeměnit existující repozitář na subrepozitář" msgid "Remo&ve Subrepository..." msgstr "Odeb&rat subrepozitář..." msgid "Remove this subrepository from the current revision" msgstr "Odebrat tento subrepozitář z aktuální revize" msgid "Copy the root path of the repository to the clipboard" msgstr "Kopírovat cestu ke kořeni repozitáře do schránky" msgid "Sort by &Name" msgstr "Třídit podle &jména" msgid "Sort the group by short name" msgstr "Třídit skupinu podle zkráceného jména" msgid "Sort by &Path" msgstr "Třídit podle &cesty" msgid "Sort the group by full path" msgstr "Třídit skupinu podle úplné cesty" msgid "&Sort by .hgsub" msgstr "&Třídit podle .hgsub" msgid "Order the subrepos as in .hgsub" msgstr "Řadit subrepozitáře jako v .hgsub" msgid "Select repository directory to add" msgstr "Vyberte adresář přidávaného repozitáře" msgid "Select an existing repository to add as a subrepo" msgstr "Vyberte existující repozitář a přidat jej jako subrepozitář" msgid "Cannot add subrepository" msgstr "Subrepozitář nejde přidat" #, python-format msgid "%s is not a valid repository" msgstr "%s není platný repozitář" #, python-format msgid "\"%s\" is not a folder" msgstr "\"%s\" není složka" msgid "A repository cannot be added as a subrepo of itself" msgstr "Repozitář nemůže být přidán jako subrepozitář sama sebe" #, python-format msgid "" "The selected folder:

        %s

        is not inside the target repository." "

        This may be allowed but is greatly discouraged.
        If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" "Vybraná složka:

        %s

        není uvnitř cílového repozitáře.

        Je " "to možné ale vřele se to nedoporučuje.
        Chcete-li přidat netriviální " "'mapping' subrepozitáře, musíte ručně editovat soubor .hgsub" msgid "Cannot open repository" msgstr "Nejde otevřít repozitář" #, python-format msgid "The selected repository:

        %s

        cannot be open!" msgstr "Vybraný repozitář:

        %s

        nejde otevřít!" msgid "Subrepository already exists" msgstr "Subrepozitář již existuje" #, python-format msgid "" "The selected repository:

        %s

        is already a subrepository of:" "

        %s

        as: \"%s\"" msgstr "" "Vybraný repozitář:

        %s

        je již subrepozitářem:

        " "%s

        jako: \"%s\"" msgid "Failed to add subrepository" msgstr "Nepodařilo se přidat subrepozitář" #, python-format msgid "Cannot open the .hgsub file in:

        %s" msgstr "Nejde otevřít soubor .hgsub v:

        %s" msgid "Failed to add repository" msgstr "Nepodařilo se přidat repozitář" #, python-format msgid "The .hgsub file already contains the line:

        %s" msgstr "Soubor .hgsub již obsahuje řádek:

        %s" msgid "Subrepo added to .hgsub file" msgstr "Subrepozitář byl zařazen do souboru .hgsub" #, python-format msgid "" "The selected subrepo:

        %s

        has been added to the .hgsub " "file of the repository:

        %s

        Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" "Vybraný subrepozitář:

        %s

        byl přidán do souboru .hgsub " "repozitáře:

        %s

        Pamatujte, že pro úspěšné přidání " "subrepa musíte ještě komitovat změny souboru .hgsub aby bylo " "přidání subrepozitáře potvrzeno." #, python-format msgid "Cannot update the .hgsub file in:

        %s" msgstr "Nejde aktualizovat soubor .hgsub v:

        %s" msgid "Could not open .hgsub file" msgstr "Nešlo otevřít soubor .hgsub" msgid "Cannot read the .hgsub file.

        Subrepository removal failed." msgstr "Soubor .hgsub nejde číst.

        Odebrání subrepozitáře se nezdařilo." msgid "Subrepository not found" msgstr "Subrepozitář nenalezen" msgid "" "The selected subrepository was not found on the .hgsub file.

        Perhaps it " "has already been removed?" msgstr "" "Vybraný subrepozitář nebyl v souboru .hgsub nalezen.

        Možná byl již odebrán?" msgid "&Yes" msgstr "&Ano" msgid "&No" msgstr "&Ne" msgid "Remove the selected repository?" msgstr "Odebrat vybraný repozitář?" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" "Opravdu chcet odebrat repozitář \"%s\" z jeho rodičovského repozitáře " "\"%s\"" msgid "Subrepository removed from .hgsub" msgstr "Subrepozitář byl odebrán z .hgsub" msgid "" "The selected subrepository has been removed from the .hgsub file.

        Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" "Vybraný subrepozitář byl odebrán ze souboru .hgsub

        Pamatujte si, že musíte " "tuto změnu .hgsub komitovat aby bylo odebrání subrepozitáře úplné!" msgid "Could not update .hgsub file" msgstr "Nešlo aktualizovat soubor .hgsub" msgid "Cannot update the .hgsub file.

        Subrepository removal failed." msgstr "" "Soubor .hgsub nejde aktualizovat.

        Odebrání subrepozitáře se nezdařilo." #, python-format msgid "Unsupported repository type (%s)" msgstr "Nepodporovaný typ repozitáře (%s)" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "Ne-Mercurialové repozitáře či subrepozitáře nejde otevřít" msgid "New Group" msgstr "Nová skupina" msgid "Confirm Delete" msgstr "Potvrdit smazání" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "Smazat skupinu '%s' a všechny její záznamy?" msgid "Could not get subrepository list" msgstr "Nejde získat repozitářový seznam" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

        %s" msgstr "Nešlo získat subrepozitářový seznam pro repozitář v:

        %s" msgid "Could not open some subrepositories" msgstr "Nešlo otevřít některé subrepozitáře" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

        %s

        The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

        %s" msgstr "" "Nebylo možné úplně načíst subrepozitářový seznam pro repozitář v:

        " "%s

        .Následující subrepozitáře mohou chybět, být porušené nebo v " "nekonzistentním stavu a jsou nepřístupné:

        %s" msgid "Updating repository registry" msgstr "Aktualizace seznamu repozitáře" #, python-format msgid "Loading repository %s" msgstr "Načítání repozitáře %s" msgid "Repository Registry updated" msgstr "Seznam repozitářů aktualizován" msgid "Close tab" msgstr "Zavřít kartu" msgid "Close other tabs" msgstr "Zavřít ostatní karty" msgid "Undo close tab" msgstr "Zrušit zavření karty" msgid "Reopen last closed tab" msgstr "Znovu otevřít poslední zavřenou kartu" msgid "Undo close other tabs" msgstr "Zrušit zavření ostatních karet" msgid "Reopen last closed tab group" msgstr "Znovu otevřít poslední skupinu karet" msgid "Failed to open repository" msgstr "Nepodařilo se otevřít repozitář" msgid "&Sort" msgstr "&Sort (třídit)" #, python-format msgid "Local Repository %s" msgstr "Lokální repozitář %s" #, python-format msgid "" "An exception happened while loading the subrepos of:

        \"%s\"

        " msgstr "Vyskytla se výjimka při načítání subrepozitáře:

        \"%s\"

        " #, python-format msgid "The exception error message was:

        %s

        " msgstr "Zpráva chybové výjimky byla:

        %s

        " msgid "Click OK to continue or Abort to exit." msgstr "Zvolte OK pro pokračování nebo Abort pro ukončení." msgid "Error loading subrepos" msgstr "Chyba při načítání subrepozitáře" msgid "Unable to update repository name" msgstr "Nejde aktualizovat název repozitáře" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "Vyskytla se chyba při aktualizaci souboru hgrc (%s) repozitáře" msgid "default" msgstr "default" msgid "C&hoose Log Columns..." msgstr "Vybrat sloupce v Přehledu revizí..." msgid "&Resize Columns" msgstr "" #, python-format msgid "Goto ancestor of %s and %s" msgstr "Přejít k předkovi %s a %s" #, python-format msgid "Can't find revision '%s'" msgstr "Nedaří se nalézt revizi '%s'" msgid "Drag to change order" msgstr "Táhnutím změnit pořadí" msgid "Workbench Log Columns" msgstr "Sloupce přehledu revizí" msgctxt "tab tooltip" msgid "Revision details" msgstr "Podrobnosti revize" msgctxt "tab tooltip" msgid "Commit" msgstr "Commit" msgctxt "tab tooltip" msgid "Search" msgstr "Hledat" msgctxt "tab tooltip" msgid "Console log" msgstr "" msgctxt "tab tooltip" msgid "Synchronize" msgstr "Synchronizovat" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "Větev oprávky" #, python-format msgid "%s " msgstr "%s " #, python-format msgid "Found %d incoming changesets" msgstr "Nalezeno %d příchozích changesetů" msgid "Pull" msgstr "Pull" msgid "Pull incoming changesets into your repository" msgstr "Přetáhnoutt (pull) příchozí changesty do svého repozitáře" msgid "Reject incoming changesets" msgstr "Odmítnout příchozí changesety" #, python-format msgid "Push current branch (%s)" msgstr "Postrčit aktuální větev (%s)" #, python-format msgid "Push up to current revision (#%d)" msgstr "Push až k aktuální revizi(#%d)" #, python-format msgid "Push up to revision #%d" msgstr "Push až k revizi #%d" msgid "Push all" msgstr "Poslat (push) vše" msgid "no outgoing changesets" msgstr "žádné odchozí changesety" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "žádné odchozí changesety v aktuální větvi (%s) / %d celkem" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "žádné odchozí changesety až k aktuální revizi (#%d) / %d celkem" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "žádné odchozí changesety až k revizi #%d / %d celkem" #, python-format msgid "%d outgoing changesets" msgstr "%d odchozí(ch) changesety(ů)" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "%d odchozí(ch) changesety(ů) v aktuální větvi (%s) / %d celkem" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "%d odchozí(ch) changesety(ů) až po aktuální revizi (#%d) / %d celkem" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "%d odchozí(ch) changesety(ů) až k revizi #%d / %d celkem" msgid "Nothing to push" msgstr "Nic k předání (push)" msgid "No revision found" msgstr "Žádná revize nebyla nalezena" #, python-format msgid "%s - verify repository" msgstr "%s - ověřit repozitář" #, python-format msgid "%s - recover repository" msgstr "%s - obnovit repozitář" msgid "No transaction available" msgstr "Žádná transakce není k disposici" msgid "There is no rollback transaction available" msgstr "Žádná návratová (rollback) transakce není k disposici" msgid "Undo last commit?" msgstr "Zrušit poslední komit?" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "Zrušit poslední komit (%d) a zachovat změny souboru?" msgid "Undo last transaction?" msgstr "Zrušit poslední transakci?" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "Návrat k revizi %d (undo %s)?" msgid "Unable to determine working copy revision\n" msgstr "Nejde určit revizi pracovní kopie\n" msgid "Remove current working revision?" msgstr "Odebrat aktuální pracovní revizi?" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" "Vaše stávající pracovní revize (%d) bude tímto krokem zpět (rollback) " "odstraněna a změny nebudou komitovány.\n" " Pokračovat?" msgid "Tab cannot exit" msgstr "" msgid "Pus&h" msgstr "" msgid "Push to &Here" msgstr "" msgid "Push Selected &Branch" msgstr "Push vybranou větev" msgid "Push &All" msgstr "" msgid "&Update..." msgstr "&Aktualizovat..." msgid "Bro&wse at Revision" msgstr "Podrobnosti revize" msgid "&Merge with Local..." msgstr "&Sloučit s lokálním..." msgid "&Tag..." msgstr "" msgid "Boo&kmark..." msgstr "" msgid "Top&ic..." msgstr "" msgid "Sig&n..." msgstr "" msgid "&Backout..." msgstr "" msgid "Revert &All Files..." msgstr "Navrátit &všechny soubory..." msgid "Copy &Hash" msgstr "" msgid "E&xport" msgstr "" msgid "E&xport Patch..." msgstr "" msgid "&Email Patch..." msgstr "" msgid "&Archive..." msgstr "" msgid "&Bundle Rev and Descendants..." msgstr "" msgid "Change &Phase to" msgstr "Změna fáze" msgid "&Graft to Local..." msgstr "" msgid "Modi&fy History" msgstr "Upra&vit historii" msgid "&Unapply Patch" msgstr "" msgid "Import to &MQ" msgstr "" msgid "MQ &Options" msgstr "" msgid "&Rebase..." msgstr "" msgid "&Prune..." msgstr "" msgid "&Strip..." msgstr "" msgid "Post to Re&view Board..." msgstr "Poslat do Re&view Board..." msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "" msgid "Write diff file" msgstr "Zapsat diffový soubor" msgid "Unable to write diff file" msgstr "Nejde psát diffový soubor" msgid "Unable to compress history" msgstr "Nejde komprimovat historii" msgid "Selected changeset pair not related" msgstr "Vybraný pár changesetů není spřízněn" msgid "Visual Diff..." msgstr "Visual Diff..." msgid "Export Diff..." msgstr "Exportovat diff..." msgid "Export Selected..." msgstr "Export Selected..." msgid "Email Selected..." msgstr "Email Selected..." msgid "Copy Selected as Patch" msgstr "" msgid "Archive DAG Range..." msgstr "" msgid "Export DAG Range..." msgstr "Exportovat DAG Range..." msgid "Email DAG Range..." msgstr "Email DAG Range..." msgid "Bundle DAG Range..." msgstr "" msgid "Bisect - Good, Bad..." msgstr "Bisect - Good, Bad..." msgid "Bisect - Bad, Good..." msgstr "Bisect - Bad, Good..." msgid "Compress History..." msgstr "Komprimovat historii..." msgid "Rebase..." msgstr "" msgid "Goto common ancestor" msgstr "Přejít ke společnému předkovi" msgid "Graft Selected to local..." msgstr "Gráftovat výběr k aktuální rev..." msgid "&Prune Selected..." msgstr "" msgid "Post Selected to Review Board..." msgstr "Poslat vybrané do Review Board..." msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "Aplikovat oprávku (patch)" msgid "Apply onto original parent" msgstr "Aplikovat k původnímu rodiči" msgid "Apply only this patch" msgstr "Aplikovat pouze tuto oprávku (patch)" msgid "Fold patches..." msgstr "Složit oprávky..." msgid "Delete patches..." msgstr "Smazat oprávky..." msgid "Rename patch..." msgstr "Přejmenovat oprávku..." msgid "Pull to here..." msgstr "Přetáhnout (pull) sem..." msgid "Visual diff..." msgstr "Zobrazit diff k rodiči..." msgid "Export patch" msgstr "Exportovat oprávku" msgid "Patch Files (*.patch)" msgstr "Oprávkové soubory (*.patch)" msgid "Cannot export revision" msgstr "Revizi nejde exportovat" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" "Nejde exportovat revizi %s do souboru s názvem:\n" "\n" "%s\n" msgid "There is already an existing folder with that same name." msgstr "Nalézá se tam již soubor se stejným názvem." msgid "Replace" msgstr "Nahradit" msgid "Append" msgstr "Připojit" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" "Existují oprávkové soubory pro %d revizí (%s) ve vybraném místě (%s).\n" "\n" msgid "What do you want to do?\n" msgstr "Co chcete učinit?\n" msgid "Replace the existing patch files.\n" msgstr "Vyměnit existující oprávkové soubory\n" msgid "Append the changes to the existing patch files.\n" msgstr "Připojte změny k existujícím oprávkovým souborům.\n" msgid "Abort the export operation.\n" msgstr "Zrušit exportní operaci.\n" msgid "Patch files already exist" msgstr "Oprávkové soubory již existují" msgid "Patch exported" msgstr "Oprávka (patch) byla exportována" #, python-format msgid "" "Revision #%d (%s) was exported to:

        %s%s%s" msgstr "" "Revize #%d (%s) byla exportována do:

        %s%s%s" msgid "Patches exported" msgstr "Oprávky byly exportovány" #, python-format msgid "%d patches were exported to:

        %s" msgstr "%d oprávky byly exportovány do:

        %s" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

        Are you sure you want to use revert?

        (use " "update to checkout another revision)" msgstr "" "Akce \"revert\" u všech souborů vyřadí změny a ponechá soubory v " "modifikovaném stavu.

        Jste si jist, že tuto akci chcete provést?" "

        (použijte aktualizaci pro přechod k jiné revizi)" msgid "Filter b&y" msgstr "Filtrovat podle" msgid "&Ancestors and Descendants" msgstr "&Předci a potomci" msgid "A&uthor" msgstr "A&utor" msgid "&Branch" msgstr "&Větev" msgid "&More Options..." msgstr "&Další možnosti..." msgid "Unable to merge" msgstr "Nelze sloučit" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "Nemůžete sloučit revizi se sebou samou" msgid "Unable to backout" msgstr "Nelze provést backout" msgid "Write bundle" msgstr "Zapsat svazek (bundle)" msgid "Backwards phase change requested" msgstr "Je požadována zpětná změna fáze" msgid "Do you really want to make this revision secret?" msgstr "Opravdu chcet tuto revizi učinit secret?" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" "Vytvoření revize \"draft\" jako \"secret\" je obecně bezpečná " "operace.\n" "\n" "Má to ale několik háčků:\n" "\n" "- \"secret\" revize nelze expedovat (push). To může způsobit potíže při " "odkazování na tajnou revizi subrepozitáře.\n" "\n" "- při opakovaném převzetí (pull) ze stejného nepublikujícího serveru může " "být tato revize přesunuta zpět do formátu \"draft\" .\n" "\n" "Buďte opatrní!" msgid "&Make secret" msgstr "" msgid "&Cancel" msgstr "&Zrušit" msgid "Do you really want to force a backwards phase transition?" msgstr "Opravdu chcete vynutit (force) zpětnou změnu fáze?" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" "Pokoušíte se o zpětný posun fáze v revizi %d,\n" "od \"%s\" k \"%s\".\n" "\n" "Avšak, fáze \"%s\" je nižší úroveň než \"%s\".\n" "\n" "Zpětný posun fáze se nedoporučuje.\n" "Úprava revize, kterou jste již poslal (push) na server\n" "může například vést k vytvoření vícerých čel.\n" "\n" "Buďte prosím opatrný!" msgid "&Force" msgstr "" msgid "Cannot import selected revision" msgstr "Nejde importovat vybranou revizi" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" "Vybraná revize (rev #%d) nemůže být importována, protože není potomkem " "revize qparent (rev #%d)" msgid "Invalid command" msgstr "Neplatný příkaz" msgid "The selected command is empty" msgstr "Vybraný příkaz je prázdný" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" "Byla vrácena následující chybová zpráva:\n" "\n" "%s" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" "\n" "\n" "Ověřte, zda je přjíkaz \"thg\" platný." msgid "Failed to execute custom TortoiseHg command" msgstr "Nezdařilo se provést uživatelský příkaz TortoiseHg" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "Příkaz \"%s\" se nezdařil (code %d)." msgid "Failed to execute custom command" msgstr "Nepodařilo se provést uživatelský příkaz" #, python-format msgid "The command \"%s\" could not be executed." msgstr "Příkaz \"%s\" nemohl být proveden." #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" "Byla vrácena tato chybová zpráva:\n" "\n" "\"%s\"\n" "\n" "Ověřte prosím platnost aplikace a cesty příkazu" msgid "&Edit Toolbar" msgstr "" msgid "&Refresh" msgstr "&Refresh (reaktivovat)" msgid "&Filter Toolbar" msgstr "Lišta filtru" #, python-format msgid "TortoiseHg: %s" msgstr "" msgid "S&tatus Bar" msgstr "" #, python-format msgid "Resolve Conflicts - %s" msgstr "" msgid "Local revision information" msgstr "Informace o lokální revizi" msgid "Other revision information" msgstr "Informace o jiných revizích" msgid "Unresolved conflicts" msgstr "Neřešené konflikty" msgid "Mercurial Re&solve" msgstr "Resolve Mercurialu" msgid "Attempt automatic (trivial) merge" msgstr "Zkusit automatické (triviální) sloučení" msgid "Tool &Resolve" msgstr "" msgid "Merge using selected merge tool" msgstr "Provést sloučení s použitím vybraného nástroje" msgid "&Take Local" msgstr "" msgid "Accept the local file version (yours)" msgstr "Přijmout (vaši) lokální verzi souboru" msgid "Take &Other" msgstr "" msgid "Accept the other file version (theirs)" msgstr "Přijmout jinou (jejich) verzi souboru" msgid "&Mark as Resolved" msgstr "&Označit jako vyřešené" msgid "Mark this file as resolved" msgstr "Označit tento soubor jako vyřešený" msgid "Diff &Local to Ancestor" msgstr "" msgid "&Diff Other to Ancestor" msgstr "" msgid "Resolved conflicts" msgstr "Vyřešené konflikty" msgid "&Edit File" msgstr "" msgid "Edit resolved file" msgstr "Editovat vyřešený soubor" msgid "3-&Way Diff" msgstr "" msgid "Visual three-way diff" msgstr "Trojný diff" msgid "Visual diff between resolved file and first parent" msgstr "Diff mezi řešeným souborem a prvním rodičem" msgid "&Diff to Other" msgstr "" msgid "Visual diff between resolved file and second parent" msgstr "Diff mezi řešeným souborem a druhým rodičem" msgid "Mark as &Unresolved" msgstr "Označit jako &nevyřešené" msgid "Mark this file as unresolved" msgstr "Označit tento soubor jako nevyřešený" msgid "Detected merge/diff tools:" msgstr "Nalezeny nástroje pro merge/diff:" msgid "Command output" msgstr "Výstup příkazu" msgid "Unable to show subrepository files" msgstr "Nejde ukázat soubory subrepozitáře" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" "Zobrazení diffů není podporovány pro soubory v subrepozitářích. Nebudou " "zobrazeny." msgid "There are merge conflicts to be resolved" msgstr "Je zapotřebí řešit konflikty při sloučení" msgid "All conflicts are resolved." msgstr "Všechny konflikty jsou vyřešeny." msgid "There are no conflicting file merges." msgstr "Nevyskytují se konfliktní sloučení souborů." msgid "Exit without finishing resolve?" msgstr "Skončit bez dokončeného řešení konfliktů?" msgid "Unresolved conflicts remain. Are you sure?" msgstr "Nevyřešené konflikty zůstávaji. Jste si jist?" msgid "E&xit" msgstr "E&xit" msgid "Ext" msgstr "Ext" msgid "Repository" msgstr "Repozitář" msgid "" msgstr "<" msgid "File List Toolbar" msgstr "File List Toolbar" msgid "Ma&nifest Mode" msgstr "" msgid "Show all version-controlled files in tree view" msgstr "Zobrazit obsah repoitória, kromě složky .hg" msgid "&Flat List" msgstr "&Prostý seznam" msgid "### filter text ###" msgstr "### text filtru ###" msgid "Changed by &This Commit" msgstr "Změněno &tímto komitem" msgid "Show files changed by this commit" msgstr "Zobrazit soubory změněné tímto komitem" msgid "Compare to &1st Parent" msgstr "Porovnat s 1. rodičem" msgid "Compare to &2nd Parent" msgstr "Porovnat s 2. rodičem" msgid "Toggle parent to be used as the base revision" msgstr "Přepnout na rodiče, který má být použit jako bázová revize" msgid "List Optio&ns" msgstr "Seznam možnos&tí" #, python-format msgid "%s - Revision Details (%s)" msgstr "%s - Podrobnosti revize (%s)" #, python-format msgid "Revert - %s" msgstr "Revert - %s" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "Vrátit (revert) %s k jeho obsahu v následující revizi?" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "" "Vrátit (revert) %d souborů k jejich obsahům v následující revizi?" msgid "Revert all files to this revision" msgstr "Navrátit všechny soubory k této revizi" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "první rodič revize %d (revize %d)" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "druhý rodič revize %d (revize %d)" msgid "null revision (i.e. remove file(s))" msgstr "nulová revize (to jest odebrat soubor(y))" msgid "Changeset:" msgstr "Changeset:" msgid "Child:" msgstr "Dítě:" msgid "Predecessors:" msgstr "" msgid "Successors:" msgstr "Následovníci:" msgid "Head is closed!" msgstr "Čelo je uzavřeno!" msgid "Changesets where username contains string." msgstr "Changesety, kde jméno uživatele obsahuje řetězec." msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" "Hledat zprávu komitu, jméno uživatele a jména změněných souborů podle " "řetězce." msgid "Like \"keyword(string)\" but accepts a regex." msgstr "Jako \"keyword(string)\" ale přijme regex." msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" "Changesety, nenalezené v určeném repozitáři ani v implicitním místě pro " "předávku." msgid "The named bookmark or all bookmarks." msgstr "Pojmenovaná záložka nebo všechny záložky." msgid "The named tag or all tags." msgstr "Pojmenovaný tag nebo všechny tagy." msgid "Changeset is tagged." msgstr "Changeset je označen tagem." msgid "Changeset is a named branch head." msgstr "Changeset je čelo (head) pojmenované větve." msgid "Changeset is a merge changeset." msgstr "Changeset je changeset sloučení." msgid "Changeset is closed." msgstr "Changeset je uzavřen." msgid "" "Changesets within the interval, see help dates" msgstr "" "Changesety uvnitř intervalu, viz help dates" msgid "Greatest common ancestor of the two changesets." msgstr "Největší společný předek dvou changesetů." msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "Nalézt revize, shodující se v jednom či více polích dané sady revizí." msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" "Changesety, působící na soubory shodné se vzorem. Viz help patterns" msgid "Changesets which modify files matched by pattern." msgstr "Changesety, které upravují soubory shodné se vzorem." msgid "Changesets which add files matched by pattern." msgstr "Changesety, které přidávají soubory shodné se vzorem." msgid "Changesets which remove files matched by pattern." msgstr "Changesety, které odstraňují soubory shodné se vzorem." msgid "Changesets containing files matched by pattern." msgstr "Changesety, obsahující soubory shodné se vzorem." msgid "All changesets belonging to the branches of changesets in set." msgstr "Všechny changesety, které patří do větví changesetů v sadě." msgid "Members of a set with no children in set." msgstr "Členové sady bez dětí v sadě." msgid "Changesets which are descendants of changesets in set." msgstr "Changesety, které jsou potomky changesetů v sadě." msgid "Changesets that are ancestors of a changeset in set." msgstr "Changesety, které jsou předky changesetů v sadě." msgid "Child changesets of changesets in set." msgstr "Changesety, které jsou dětmi changesetů v sadě." msgid "The set of all parents for all changesets in set." msgstr "Sada všech rodičů pro všechny changesety v sadě." msgid "First parent for all changesets in set, or the working directory." msgstr "První rodič pro všechny changesety v sadě nebo pracovní adresář." msgid "Second parent for all changesets in set, or the working directory." msgstr "Druhý rodič pro všechny changesety v sadě nebo pracovní adresář." msgid "Changesets with no parent changeset in set." msgstr "Changesety bez rodiče v sadě." msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" "Prázdná sada, není-li v sadě nalezena žádná revize; jinak všechny revize v " "sadě." msgid "Changeset with lowest revision number in set." msgstr "Changeset s nejnižším číslem revize v sadě." msgid "Changeset with highest revision number in set." msgstr "Changeset s nejvyšším číslem revize v sadě." msgid "First n members of a set." msgstr "Prvních n členů sady." msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" "Roztřídit sadu podle klíčů. Implicitní řazení je stoupající; pro sestupné " "řazení zadejte klíč jako \"-key\"." msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "Alias pro \"::.\" (předci prvního rodiče pracovní kopie)." msgid "All changesets, the same as 0:tip." msgstr "Všechny changesety, totéž jako 0:tip." msgid "Revision Set Query" msgstr "Revision Set Query" msgid "all revisions converted from subversion" msgstr "všechny revize konvertované ze subversion" msgid "changeset which represents converted svn revision" msgstr "changeset, který představuje konvertovanou revizi z svn" msgid "Common sets" msgstr "Common sets" msgid "File pattern sets" msgstr "File pattern sets" msgid "Set Ancestry" msgstr "Zadejte předky" msgid "Set Logic" msgstr "Set Logic" msgid "" "help " "revsets" msgstr "" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" "\n" "Zachyceno přerušení klávesnicí, ruší se.\n" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "nelze číst soubor \"%s\". Ignorováno.\n" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" "thg: příkaz '%s' je víceznačný:\n" " %s\n" #, python-format msgid "thg: unknown command '%s'\n" msgstr "thg: neznámý příkaz '%s'\n" #, python-format msgid "thg %s: %s\n" msgstr "thg %s: %s\n" #, python-format msgid "thg: %s\n" msgstr "thg: %s\n" #, python-format msgid "abort: %s!\n" msgstr "zrušit: %s!\n" #, python-format msgid "abort: %s\n" msgstr "zrušit: %s\n" #, python-format msgid "(%s)\n" msgstr "" msgid "option --config may not be abbreviated!" msgstr "volbu --config nelze zkracovat!" msgid "invalid arguments" msgstr "neplatné argumenty" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "nepoznaný profilující formát '%s' - Ignorováno\n" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" "lsprof není dostupné - instalujte z http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgid "repository root directory or symbolic path name" msgstr "kořenový adresář repozitáře nebo symbolický název cesty" msgid "enable additional output" msgstr "umožnit dodatečný výstup" msgid "suppress output" msgstr "potlačit výstup" msgid "display help and exit" msgstr "zobrazit nápovědu a ukončit program" msgid "set/override config option (use 'section.name=value')" msgstr "zadat/přepsat konfigurační nastavení (use 'section.name=value')" msgid "enable debugging output" msgstr "umožnit ladící výstup" msgid "start debugger" msgstr "spustit debugger" msgid "print command execution profile" msgstr "prováděcí profil příkazu print" msgid "do not fork GUI process" msgstr "nedělit (fork) proces GUI" msgid "always fork GUI process" msgstr "vždy dělit proces GUI" msgid "read file list from file" msgstr "číst seznam souborů ze souboru" msgid "read file list from file encoding utf-8" msgstr "načíst seznam souborů ze souboru s kódováním utf-8" msgid "thg about" msgstr "thg about" msgid "thg add [FILE]..." msgstr "thg add [FILE]..." msgid "revision to annotate" msgstr "revize pro anotaci" msgid "open to line" msgstr "otevřít na řádku" msgid "initial search pattern" msgstr "počáteční vyhledávací vzorec" msgid "thg annotate" msgstr "thg annotate" #, python-format msgid "invalid line number: %s" msgstr "neplatné číslo řádku: %s" msgid "revision to archive" msgstr "revize pro archivaci" msgid "thg archive" msgstr "thg archive" msgid "merge with old dirstate parent after backout" msgstr "" "po anulování (backout) sloučit s předchozím stavem pracovního adresáře " "(dirstate)" msgid "parent to choose when backing out merge" msgstr "vybrat rodiče při anulaci sloučení" msgid "revision to backout" msgstr "revize, k níž anulovat (backout)" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "thg backout [OPTION]... [[-r] REV]" msgid "thg bisect" msgstr "thg bisect" msgid "revision" msgstr "revize" msgid "thg bookmarks [-r REV] [NAME]" msgstr "" msgid "only one new bookmark name allowed" msgstr "dovoleno jen jedno jméno nového bookmarku" msgid "the clone will include an empty working copy (only a repository)" msgstr "klon bude obsahovat prázdnou pracovní kopii (pouze repozitář)" msgid "revision, tag or branch to check out" msgstr "vybíraná revize, tag nebo větev" msgid "include the specified changeset" msgstr "zahrnout určený changeset" msgid "clone only the specified branch" msgstr "klonovat jenom určenou větev" msgid "use pull protocol to copy metadata" msgstr "použít protokol 'pull' ke kopírování metadat" msgid "use uncompressed transfer (fast over LAN)" msgstr "použít nekomprimovaný přenos (fast over LAN)" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "" msgid "record user as committer" msgstr "zapsat uživatele jako komitenta" msgid "record datecode as commit date" msgstr "zapsat datumový kód jako datum komitu" msgid "thg commit [OPTIONS] [FILE]..." msgstr "thg commit [OPTIONS] [FILE]..." msgid "thg debugblockmatcher" msgstr "" msgid "thg debugbugreport [TEXT]" msgstr "" msgid "thg debugconsole" msgstr "" msgid "thg debuglighthg" msgstr "" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "" msgid "no command specified" msgstr "žádný příkaz nebyl určen" msgid "thg drag_copy SOURCE... DEST" msgstr "thg drag_copy SOURCE... DEST" msgid "thg drag_move SOURCE... DEST" msgstr "thg drag_move SOURCE... DEST" msgid "a revision to send" msgstr "odesílaná revize" msgid "thg email [REVS]" msgstr "thg email [REVS]" msgid "use only one form to specify the revision" msgstr "pro označení revize použijte jen jeden způsob" msgid "select the specified revision" msgstr "vyberte určenou revizi" msgid "side-by-side comparison of revisions" msgstr "porovnání revize vedle revize" msgid "thg filelog [OPTION]... FILE" msgstr "" msgid "requires a single filename" msgstr "vyžaduje jediné jméno souboru" msgid "thg forget [FILE]..." msgstr "thg forget [FILE]..." msgid "revisions to graft" msgstr "revize pro gráftování" msgid "thg graft [-r] REV..." msgstr "" msgid "You must provide revisions to graft" msgstr "Nutno uvést revize, které mají být gráftovány" msgid "ignore case during search" msgstr "při hledání ignorovat velikost znaků" msgid "thg grep" msgstr "thg grep" msgid "thg guess" msgstr "thg guess" msgid "thg help [COMMAND]" msgstr "thg help [COMMAND]" msgid "global options:" msgstr "globální možnosti:" msgid "use \"thg help\" for the full list of commands" msgstr "použijte \"thg help\" pro úplný seznam příkazů" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "" "použijte \"thg help\" pro úplný seznam příkazů nebo \"thg -v\" pro detaly" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "použijte \"thg -v help%s\" pro zobrazení aliasů a globálních možností" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "použijte \"thg -v help %s\" pro zobrazení globálních možností" msgid "" "list of commands:\n" "\n" msgstr "" "seznam příkazů:\n" "\n" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" "\n" "aliasy: %s\n" msgid "(no help text available)" msgstr "(nápověda není k disposici)" msgid "options:\n" msgstr "možnosti:\n" msgid "no commands defined\n" msgstr "žádné příkazy nebyly určeny\n" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgid "" "basic commands:\n" "\n" msgstr "" "základní příkazy:\n" "\n" #, python-format msgid " (default: %s)" msgstr " (default: %s)" msgid "thg hgignore [FILE]" msgstr "thg hgignore [FILE]" msgid "import to the patch queue (MQ)" msgstr "importovat do fronty oprávek (MQ)" msgid "thg import [OPTION] [SOURCE]..." msgstr "thg import [OPTION] [SOURCE]..." msgid "thg init [DEST]" msgstr "thg init [DEST]" msgid "thg lock" msgstr "" msgid "search for a given text or revset" msgstr "hledání daného textu nebo revsetu" msgid "(DEPRECATED)" msgstr "" msgid "open a new workbench window" msgstr "otevřte nové okno verpánku" msgid "thg log [OPTIONS] [FILE]" msgstr "thg log [OPTIONS] [FILE]" msgid "cannot specify both -k/--query and filenames" msgstr "nelze určit jak -k/--query, tak jména souborů" msgid "revision to display" msgstr "zobrazovaná revize" msgid "thg manifest [-r REV] [FILE]" msgstr "thg manifest [-r REV] [FILE]" msgid "revision to merge" msgstr "slučovaná revize" msgid "thg merge [[-r] REV]" msgstr "thg merge [[-r] REV]" msgid "Merge revision not specified or not found" msgstr "Slučovací revize neurčena nebo nenalezena" msgid "a revision to post" msgstr "revize k odeslání" msgid "thg postreview [-r] REV..." msgstr "" msgid "reviewboard extension not enabled" msgstr "extenze reviewboard není povolena" #, python-format msgid "see %(url)s" msgstr "" msgid "no revisions specified" msgstr "žádná revize nebyla určena" msgid "revisions to prune" msgstr "revize, které mají být redukovány (pruned)" msgid "thg prune [-r] REV..." msgstr "" msgid "thg purge" msgstr "thg purge" msgid "keep original changesets" msgstr "zachovat původní changesety" msgid "keep original branch names" msgstr "zachovat původní názvy větví" msgid "rebase from the specified changeset" msgstr "přeskupit od určeného changesetu" msgid "rebase onto the specified changeset" msgstr "přeskupit k určenému changesetu" msgid "thg rebase -s REV -d REV [--keep]" msgstr "" msgid "Rebase already in progress" msgstr "Přeskupování právě probíhá" msgid "Resuming rebase already in progress" msgstr "Pokračovat v přerušeném přeskupování (rebasing)" msgid "You must provide source and dest arguments" msgstr "Musíte zadat 'source' a 'dest' argumenty" msgid "thg rejects [FILE]" msgstr "thg rejects [FILE]" msgid "You must provide the path to a file" msgstr "Musíte zadat cestu k souboru" msgid "thg remove [FILE]..." msgstr "thg remove [FILE]..." msgid "thg rename [SOURCE] [DEST]" msgstr "" msgid "field to give initial focus" msgstr "pole pro počáteční zaměření" msgid "thg repoconfig" msgstr "thg repoconfig" msgid "thg resolve" msgstr "thg resolve" msgid "the revision to show" msgstr "revize pro zobrazení" msgid "thg revdetails [-r REV]" msgstr "" msgid "thg revert [FILE]..." msgstr "thg revert [FILE]..." msgid "revision to update" msgstr "aktualizovaná revize" msgid "thg rupdate [[-r] REV]" msgstr "" msgid "name of the hgweb config file (serve more than one repository)" msgstr "" "název konfiguračního souboru pro hgweb (obsluhuje více než jeden repozitář)" msgid "name of the hgweb config file (DEPRECATED)" msgstr "název konfiguračního souboru hgweb (DEPRECATED)" msgid "thg serve [--web-conf FILE]" msgstr "thg serve [--web-conf FILE]" msgid "thg shellconfig" msgstr "thg shellconfig" msgid "thg shelve" msgstr "thg shelve" msgid "sign even if the sigfile is modified" msgstr "podepsat, i když je sigfile modifikován" msgid "make the signature local" msgstr "učinit signaturu lokální" msgid "the key id to sign with" msgstr "id podpisového klíče" msgid "do not commit the sigfile after signing" msgstr "" msgid "use as commit message" msgstr "použít jako zprávu komitu" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "" msgid "Please enable the Gpg extension first." msgstr "Povolte prosím nejprve extenzi Gpg." msgid "show files without changes" msgstr "zobrazit soubory bez změn" msgid "show ignored files" msgstr "zobrazit ignorované soubory" msgid "thg status [OPTIONS] [FILE]" msgstr "thg status [OPTIONS] [FILE]" msgid "discard uncommitted changes (no backup)" msgstr "vyřadit nekomitované změny (bez zálohy)" msgid "do not back up stripped revisions" msgstr "nezálohovat odtržené revize" msgid "do not modify working copy during strip" msgstr "při odtrhování (strip) neměnit pracovní kopii" msgid "revision to strip" msgstr "odtrhované revize" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "" msgid "open the bookmark sync window" msgstr "otevřít okno pro synchronizaci bookmarků" msgid "thg sync [OPTION]... [PEER]" msgstr "" msgid "replace existing tag" msgstr "nahradit existující tag" msgid "make the tag local" msgstr "učinit tag lokálním" msgid "revision to tag" msgstr "tagem označovaná revize" msgid "remove a tag" msgstr "odebrat tag" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgid "wait until the second ticks over" msgstr "čekejte jednu vteřinu" msgid "notify the shell for paths given" msgstr "oznámit shell pro dané cesty" msgid "remove the status cache" msgstr "odebrat status cache" msgid "show the contents of the status cache (no update)" msgstr "zobrazit obsah status cache (neaktualizovat)" msgid "update all repos in current dir" msgstr "aktualizovat všechny repozitáře ve stávajícím adresáři" msgid "thg thgstatus [OPTION]" msgstr "" msgid "thg topics [-r REV] [NAME]" msgstr "" msgid "Please enable the Topic extension first." msgstr "" msgid "only one new topic name allowed" msgstr "" msgid "thg update [-C] [[-r] REV]" msgstr "thg update [-C] [[-r] REV]" msgid "thg userconfig" msgstr "thg userconfig" msgid "changeset to view in diff tool" msgstr "changeset který má být zobrazen v diff nástroji" msgid "revisions to view in diff tool" msgstr "revize, které mají být zobrazeny v diff nástroji" msgid "bundle file to preview" msgstr "soubor svazku pro náhled" msgid "launch visual diff tool" msgstr "spustit grafický diff nástroj" msgid "print license" msgstr "vytisknout licenci" msgid "thg version [OPTION]" msgstr "thg version [OPTION]" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "Dialogy TortoiseHg (verze %s), Mercurial (verze %s)\n" msgid "Location:" msgstr "Umístění:" msgid "Update to:" msgstr "Aktualizovat k:" msgid "Options:" msgstr "Možnosti:" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "Vyřadit vzdálené změny, bez zálohy (-C/--clean)" msgid "Perform a push before updating (-p/--push)" msgstr "Provést push před aktualizací (-p/--push)" msgid "Allow pushing new branches (--new-branch)" msgstr "Povolit předání (push) nových větví (--new-branch)" msgid "Force push to remote location (-f/--force)" msgstr "Vynutit push do vzdálené lokace(-f/--force)" msgid "remove working directory" msgstr "odebrat pracovní adresář" msgid "unknown revision!" msgstr "neznámá revize!" #, python-format msgid "Remote Update - %s" msgstr "" msgid "&Update" msgstr "&Aktualizovat" msgid "Log" msgstr "Log" msgid "Repositories" msgstr "Repozitáře" #, python-format msgid "Running at %s" msgstr "Spuštěno na %s" msgid "Stopped" msgstr "Zastaveno" msgid "TortoiseHg Web Server" msgstr "" msgid "Web Server" msgstr "Webový server" msgid "Port:" msgstr "Port:" msgid "Status:" msgstr "Status:" msgid "Start" msgstr "Spustit" msgid "Settings" msgstr "Nastavení" msgid "" msgstr "" msgid "&True" msgstr "" msgid "&False" msgstr "" msgid "&Unspecified" msgstr "&Neurčeno" #, python-format msgid "%dpt" msgstr "" msgid "Bold" msgstr "" msgid "Italic" msgstr "" msgid "Strike" msgstr "Přeškrtnout" msgid "Underline" msgstr "Podtrhnout" msgid "&Set..." msgstr "" msgid "&Clear" msgstr "" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "Nepodařilo se načíst issue tracker: '%s': %s. " msgid "&Browse..." msgstr "&Procházet..." msgid "UI Language" msgstr "Jazyk aplikace" msgid "Specify your preferred user interface language (restart needed)" msgstr "Určit preferovaný jakyk uživatelského rozhraní (protřebný restart)" msgid "Three-way Merge Tool" msgstr "Nástroj pro sloučení" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" "Program pro řešení slučovacích konfliktů. Pokud neurčeno, použije Mercurial " "první použitelný nástroj, který nalezne v systému nebo použije svůj vlastní " "slučovací nástroj, jenž ponechává na místě markery konfliktů. Zvolte " "internal:merge pro vytvoření konfliktových markerů, internal:prompt pro " "lokální či jiný výběr a internal:dump pro ponechání souborů v pracovním " "adresáři k ručnímu slučování" msgid "Visual Diff Tool" msgstr "Nástroj Visual Diff" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" "Určete nástroj pro vizuální diff, tak jak je zapsán v sekci [merge-tools] " "vašich konfiguračních souborů Mercurialu. Pokud nezadáno, použije " "TortoiseHg výše vybraný slučovací nástroj. Pokud tato volba selže, použije " "první použitelný nástroj, který nalezne." msgid "Visual Editor" msgstr "Textový editor" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" "Zadat textový editor, uvedený v sekci [editor-tools] konfiguračního souboru " "Mercurialu. Nebude-li zadáno, použije TortoiseHg první vhodný nástroj, který " "nalezne." msgid "CLI Editor" msgstr "Editor CLI" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" "Textový editor, aktivovaný z příkazového řádku příkazem Mercurialu pro " "zápis víceřádkového vstupu od uživatele; zejména pro zápis komitové zprávy." msgid "Shell" msgstr "Terminál" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
        Default, Windows: cmd.exe /" "K title %(reponame)s
        Default, OS X: not set
        Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" "Zadejte příkaz, který spustí váš oblíbený terminál. Pokud hodnota obsahuje " "řetězec %(reponame)s, bude název repozitáře dosazen za %(reponame)s. Podobně " "bude %(root)s reprezentovat úplnou cestu k repozitáři. (potřebný " "restart)
        Default, Windows: cmd.exe /K title %(reponame)s
        Default, OS " "X: not set
        Default, other: xterm -T \"%(reponame)s\"" msgid "Immediate Operations" msgstr "Následné operace" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" "Seznam mezerami oddělených operací shellu, které si přejete okamžitě použít " "bez součinnosti uživatele. Příkazy jsou \"add remove revert forget\". " "Implicitně: None (ponechte prázdné)" msgid "Tab Width" msgstr "Šířka ouška karty" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" "Určit šířku, vyplněnou oušky karet v různých oknech TortoiseHg. Implicitně: 8" msgid "Force Repo Tab" msgstr "Zobrazit karty" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "" "Vždy zobrazit repozitář v kartě, i pro jediný repozitář. Implicitně: False" msgid "Monitor Repo Changes" msgstr "Sledovat změny repozitáře" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "Určit systém souborů, ve kterém TortoiseHg monitoruje změny" msgid "Max Diff Size" msgstr "Max. velikost diffu" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" "Maximální velikost souboru (v KB) pro zobrazení změn v oknech pro changelog, " "status a commit. Nulová hodnota je pro nastavení bez limitu. Implicitní " "nastavení je 1024 (1MB)" msgid "Fork GUI" msgstr "Rozdělit GUI" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" "Při spuštění z příkazového řádku rozdělit proces na pozadí pro zobrazení " "dialogů v grafickém okně. Toto nastavení je ignovoráno, běží-li TortoiseHg " "jako aplikační svazek OSX. Implicitně: True" msgid "Full Path Title" msgstr "Název úplné cesty" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" "Zobrazit úplnou cestu k repozitáři v titulku dialogového okna místo pouhého " "názvu kořenového adresáře. Implicitně je False" msgid "Auto-resolve merges" msgstr "Automatická sloučení" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" "Určuje, zda se má TortoiseHg pokusit automaticky řešit změny z obou stran " "téhož souboru a při nezdaru oznámit slučovací potíže. Při False jsou " "ohlášeny jako konfliktní všechny soubory se změnami na obou stranách i když " "se tyto změny nacházejí na odlišných místech souborů. Při výskytu konfliktů " "je uživatel vyznán k jejich ručnímu řešení. Implicitně: True." msgid "New Repo Skeleton" msgstr "Nový skelet repozitáře" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" "Pokud je určen, jsou soubory adresáře - např. .hgignore - zkopírovány do " "nově vytvořeného repozitáře." msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "Verpánek" msgid "Single Workbench Window" msgstr "Jediné okno Verpánku" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" "Určete, zda chcete jediné okno Verpánku. Pokud toto nastavení nepovolíte, " "otevře se vám nový Verpánek pokaždé když v kontextovém menu zvolíte \"Hg " "Verpánek\". Implicitní nastavení: True" msgid "Default widget" msgstr "Počáteční widget" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" "Zvolte počáteční widget, který se ukáže při otevření repozitáře. Implicitně: " "Podrobnosti revize (revdetails)" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" "Zvolte nastavenou revizi při otevření verpánku. Můžete vybrat \"current" "\" (to jest rodiče pracovního adresáře), aktuální \"tip\" nebo pracovní " "adresář (\"workingdir\"). Implicitně: current" msgid "" "Open new tabs next\n" "to the current tab" msgstr "" "Otevřít nové karty vedle\n" "stávajících" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" "Mají být nové karty otevřeny vedle stávajících? Při nastavení False se nové " "karty otevřou za poslední kartou. Implicitně: True" msgid "Author Coloring" msgstr "Zabarvení podle autora" msgid "Color changesets by author name. Default: False" msgstr "Zbarvit changesety podle jména autora. Implicitně: False" msgid "Full Authorname" msgstr "Celé jméno autora" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" "Uvádět plné jméno autora v okně protokolu. Není-li povoleno, zobrazí se ve " "zkrácené verzi, obvykle jenom jméno bez emailové adresy. Implicitně: False" msgid "Task Tabs" msgstr "Poloha úkonových karet" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" "Orientace lišty (east, west, off) s oušky úkonových karet. Implicitně: off" msgid "Task Toolbar Order" msgstr "Pořadí úloh úkonové lišty" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
        Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
        Valid names are: log commit sync grep and " "pbranch.
        Default: log commit grep pbranch | sync" msgstr "" "Určit, která úkonová tlačítka se zobrazí v úkonové liště a v jakém pořadí." "
        Zapište seznam názvů tlačítek. Přidejte separátory vložením \"I\" mezi " "názvy tlačítek.
        Platné názvy jsou: log commit sync grep a pbranch. " "
        Implicitně: log commit grep pbranch I sync" msgid "Long Summary" msgstr "Dlouhý souhrn" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" "Pakliže \"true\", přeskupit víceré řádky souhrnného sdělení a případně " "jejich délky omezit na 80 znaků.Implicitně: False" msgid "Log Batch Size" msgstr "Počet načtených revizí" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "" "Počet současně zobrazitelných changesetů v protokolu (changelog). Implicitně " "je 500" msgid "Dead Branches" msgstr "Mrtvé větve" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" "Seznam čárkami oddělených názvů větví, které by měly být ignorovány při " "sestavování seznamu větví pro repozitář. Implicitně. None (nevyplněno)" msgid "Branch Colors" msgstr "Barvy větví" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" "Seznam mezerami oddělených názvů větví a barev ve formátu branch:#XXXXXX. " "Mezery a dvojtečky v názvu větve musí být předznamenány zpětnými lomítky " "(\\). Tímto způsobem lze předznamenat i jiné znaky, např. \\u0040 bude " "dekódováno jako znak @ a \\n jako linefeed. Implicitně: None (nevyplněno)" msgid "Hide Tags" msgstr "Skrýt tagy" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" "Seznam mezerami oddělených tagů, které nebudou zobrazovány. Užitečný " "příklad: Zadání \"qbase qparent qtip\" způsobí skrytí standardních tagů, " "vkládaných extenzí Mercurialu Queues. Implicitně: None (nevyplněno)" msgid "Activate Bookmarks" msgstr "Aktivovat záložky" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

        • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
        • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
        • never: Never show any prompt to " "activate any bookmarks.

        Default: prompt" msgstr "" "Vyberte poté, co TortoiseHg zobrazí výzvu k aktivaci záložky při " "aktualizaci k revizi, která má jednu nebo více záložek.

        • auto: " "Pokusit se záložky aktivovat automaticky při aktualizaci k revizi, která má " "jedinou záložku. Zobrazit výzvu při aktualizaci k revizi, která má více " "záložek.
        • prompt: Implicitní nastavení. Zobrazit výzvu při " "aktualizaci k revizi, která má jednu či více záložek.
        • never: Nikdy " "nezobrazovat žádnou výzvu pro aktivaci záložek.

        Implicitně: prompt" msgid "Show Family Line" msgstr "Zobrazit rodinnou linii" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

        Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" "Zobrazit nepřímou závislost revize na grafu při filtrování revsetem. " "Implicitně: True

        Poznámka: Počítání rodinné linky může být v " "některých případech pomalé. Tato možnost bude zřejmě odstraněna, podaří-li " "se vyřešit problém s výkonem." msgid "Use optimized graph layouter" msgstr "Optimalizované zobrazení grafu" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

        Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" "Použít alternativní zobrazení grafu pro velké repozitáře. Implicitně: " "False

        Poznámka: Toto nastavení způsobí zabarvení spojovacích čar " "(edges) v závislosti na informaci o větvi a nezobrazí spojovací čáry gráftů " "(i když jsou požadovány)." msgctxt "config item" msgid "Commit" msgstr "Commit" msgid "Username" msgstr "Jméno uživatele" msgid "" "Name associated with commits. The common format is:
        Full Name <" "email@example.com>" msgstr "" "Jména spojená s komity. Obvyklý formát je:
        Full Name <email@example." "com>" msgid "Ask Username" msgstr "Požadovat jméno uživatele" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" "Nebylo-li určeno jméno uživatele, vyzvat k zadání jeho jména.Implicitně: " "False" msgid "Summary Line Length" msgstr "Délka souhrnného řádku" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" "Navrhovaná délka řádku zprávy komitu. Tato délka je označena svislou " "červenou čarou. Ctrl-E způsobí přetečení stávajícího odstavce na určenou " "délku řádku. Implicitně: 80" msgid "Close After Commit" msgstr "Po komitu zavřít" msgid "Close the commit tool after every successful commit. Default: False" msgstr "Uzavřít nástroj Commit po každém úspěšném komitu. Implicitně: False" msgid "Push After Commit" msgstr "Push po komitu" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" "Pokusit se o push na určenou adresu URL nebo alias po každém úspěšném " "komitu. Implicitně: No push" msgid "Auto Commit List" msgstr "Seznam auto-include" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" "Seznam čárkami oddělených souborů, které jsou automaticky připojeny ke " "každému komitu. Zamýšleno pouze jako nastavení repozitáře. Implicitně: None " "(nevyplněno)" msgid "Auto Exclude List" msgstr "Seznam auto-exclude" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" "Seznam čárkami oddělených souborů, které jsou automaticky odznačeny při " "otevření dialogů pro commit a status. Implicitně: None (nevyplněno)" msgid "English Messages" msgstr "Průvodní texty anglicky" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" "Generovat anglickou zprávu komitu i když jsou proměnné prostředí LANGUAGE " "nebo LANG nastaveny na neanglický jazyk. Toto nastavení používají dialogy " "Merge, Tag a Backout. Implicitně: False" msgid "New Commit Phase" msgstr "Fáze nových komitů" msgid "The phase of new commits. Default: draft" msgstr "Fáze nových komitů. Implicitně: draft" msgid "Secret MQ Patches" msgstr "Oprávky MQ - secret" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "Učinit fázi oprávek MQ 'secret' (místo 'draft'). Implicitně: False" msgid "Check Subrepo Phase" msgstr "Ověřit fázi subrepozitáře" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" "Ověřit fázi aktuální revize každého subrepozitáře. Pro jiná nastavení než " "\"ignore\" se toto ověření provádí před komitem v rodičovském repozitáři. " "Implicitně: follow" msgid "Monitor working
        directory changes" msgstr "Monitorovat změny pracovního
        adresáře" msgid "" "Select when the working directory status list will be refreshed:
        - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
        TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
        - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
        - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
        Default: auto" msgstr "" "Vyberte, kdy se obnoví (refresh) stavový výpis pracovního adresáře:
        - " "auto: [implicitní] nechť TortoiseHg rozhodne, kdy tento výpis " "obnovit.
        TortoiseHg provede obnovení pokaždé, když provede akci, která by " "mohla změnit pracovní adresář. Při této volbě se můžou přehlédnout " "všechny změny, provedené mimo kontrolu TortoiseHg;
        - always:" "stejně jako u 'default' a navíc se obnovení stavového výpisu provede vždy, " "když uživatel klepne na revizi \"Pracovní adresář\" nebo na ikonu \"Commit\" " "v manipulační či úkonové liště Verpánku;
        - alwayslocal: totéž jako " "\"always\" ale omezí vynucená obnovení na lokální repozitáře." "
        Implicitně: auto" msgid "Confirm adding unknown files" msgstr "Potvrdit přidání neznámých souborů" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" "Určuje, zda má TortoiseHg zobrazit potvrzovací (konfirmační) dialog před " "přidáním nových souborů v komitu. Při True bude konfirmační dialog zobrazen. " "Při False budou vybrané nové soubory zařazeny do komitu bez konfirmačního " "dialogu. Implicitně: True" msgid "Confirm deleting files" msgstr "Potvrdit mazání souborů" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" "Určuje, zda má TortoiseHg zobrazit konfirmační dialog před odebráním souborů " "v komitu. Při True bude konfirmační dialog zobrazen. Při False budou smazané " "soubory zařazeny do komitu bez konfirmačního dialogu. Implicitně: True" msgid "Sync" msgstr "" msgid "After Pull Operation" msgstr "Operace po akci pull" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" "Operace, která se provede bezprostředně po úspěšné akci pull. update " "odpovídá pull --update, fetch odpovídá fetch extension, rebase odpovídá pull " "--rebase, updateorrebase odpovídá pull -u --rebase. Implicitně: none" msgid "Default Push" msgstr "Připojit k push" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

        • all: The default. Push all changes in all " "branches.
        • branch: Push all changes in the current branch.
        • revision: Push the changes in the current branch up to the current revision.

        Default: all" msgstr "" "Vyberte revize, které budou implicitně vybrány pro push při každém poklepu " "na tlačítko Push.

        • all: Implicitní. Vyslat všechny změny ve " "všech větvích.
        • branch: Vyslat všechny změny v aktuální " "větvi.
        • revision: Vyslat změny v aktuální větvi až po " "aktuální revizi.

        Implicitně: all" msgid "Confirm Push" msgstr "Potvrdit push" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" "Určuje, zda má TortoiseHg zobrazit konfirmační dialog před předáním " "changesetů. Nastaveno-li False, provede se předání (push) bez potvrzovacího " "dialogu. Implicitně: True" msgid "Target Combo" msgstr "Výběrové kombo" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

        • auto: The default. Show the combo if more than one target " "configured.
        • always: Always show the combo.

        Default: auto" msgstr "" "Určete, zda TortoiseHg zobrazí výběrové kombo v synchronizační liště." "

        • auto: Zobrazit kombo, je-li zadán více než jeden cíl. " "
        • always: Vždy zobrazit kombo.

        Default: auto" msgid "SSH Command" msgstr "" msgid "" "Command to use for SSH connections.

        Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" "Příkaz pro použití při spojeních SSH.

        Implicitně: \"ssh\" nebo " "\"TortoisePlink.exe -ssh -2\" (Windows)" msgid "Subrepository Features:" msgstr "Vlastnosti subrepozitáře:" msgid "Allow Hg Subrepos" msgstr "Povolit subrepa Mercurialu" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" "Zda jsou v pracovním adresáři povolena subrepa Mercuriálu. Implicitně: True" msgid "Allow Git Subrepos" msgstr "Povolit subrepa Gitu" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

        See the security note before enabling Git " "subrepos." msgstr "" "Zda jsou v pracovním adresáři povolena subrepa Gitu. Implicitně: False

        Viz bezpečností poznámka před povolením subrepozitářů Git." msgid "Allow SVN Subrepos" msgstr "Povolit subrepa SVN" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

        See the security note before enabling " "Subversion subrepos." msgstr "" "Zda jsou v pracovním adresáři povolena subrepa Subversion. Implicitně: " "False

        Viz bezpečností poznámka před povolením " "subrepozitářů Subversion." msgid "Server" msgstr "Server" msgid "Repository Details:" msgstr "Detaily repozitáře:" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" "Název pro repozitář, použitý ve webovém rozhranní a aplikací TortoiseHg jako " "zkratka. Implicitně to je pracovní adresář." msgid "Encoding" msgstr "Kódování" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" "Kódování souborů v repozitáři, použité ve webovém rozhraní a v aplikaci " "TortoiseHg." msgid "'Publishing' repository" msgstr "Publikující repozitář" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" "Řídí chování fáze 'draft' při práci coby server. Nastaveno-li True, jsou " "předané (pushed) changesety zařazeny jako 'public' u klienta i serveru. " "Převzaté (pulled) nebo klonované changesety jsou u klienta zařazeny jako " "'public'. Implicitně: True" msgid "Web Server:" msgstr "Webový server:" msgid "Textual description of the repository's purpose or contents." msgstr "Popis účelu nebo obsahu repozitáře." msgid "Contact" msgstr "Kontakt" msgid "Name or email address of the person in charge of the repository." msgstr "Jméno nebo emailová adresa osoby zodpovědné za repozitář." msgid "Style" msgstr "Styl" msgid "Which template map style to use" msgstr "Který styl mapy šablon použít" msgid "Archive Formats" msgstr "Formáty pro archivaci" msgid "Comma separated list of archive formats allowed for downloading" msgstr "CSV seznam archivovacích formátů povolených při stahování" msgid "Port" msgstr "Port" msgid "Port to listen on" msgstr "Port, kterému má být nasloucháno" msgid "Push Requires SSL" msgstr "Push vyžaduje SSL" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" "Zda požadovat, aby byl příchozí push transportován přes SSL jako prevence " "proti čenichání po heslu." msgid "Stripes" msgstr "Pruhy" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" "Kolik řádků mají zabrat \"pruhy zebry \" ve víceřádkovém výstupu. Implicitně " "je 1; 0 volbu vypne." msgid "Max Files" msgstr "Souborů maximálně" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "" "Maximální počet souborů, uváděných v seznamech changesetů. Implicitně: 10" msgid "Max Changes" msgstr "Změn maximálně" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "" "Maximální počet změn, uváděných v protokolu (changelogu). Implicitně: 10" msgid "Allow Push" msgstr "Povolit push" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" "Zda povolit vzdálený push do repozitáře. Není-li zadáno, push není dovolen. " "Při zadání hodnolty \"*\" může push provést každý vzdálený uživatel, i " "neověřený. Jinak musí být každý vzdálený uživatel uveden v seznamu " "oprávněných osob. Obsah seznamu allow_ push je zkoumán po seznamu deny_push." msgid "Deny Push" msgstr "Odmítnout push" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" "Zda odmítnout push do repozitáře. Není-li zadáno, push není odepřen. Při " "zadání hodnoty \"*\" jsou odmítnuti všichni vzdálení uživatelé. Jinak jsou " "odmítnuti neověření uživatelé a ti ověření, kteří jsou uvedeni v tomto " "seznamu. Obsah seznamu deny_push je zkoumán před seznamem allow_push." msgid "Proxy" msgstr "Proxy" msgid "Host" msgstr "Hostitel" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "Jméno hostitele a případně port proxy serveru, např. \"myproxy:8000\"" msgid "Bypass List" msgstr "Seznam pro bypass" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "Nepovinné. CSV seznam jmen hostitelů, které by měly obejít proxy" msgid "Optional. User name to authenticate with at the proxy server" msgstr "Volitelné. Jméno uživatele pro potvrzení totožnosti u proxy serveru" msgid "Password" msgstr "Heslo" msgid "Optional. Password to authenticate with at the proxy server" msgstr "Volitelné. Heslo pro potvrzení totožnosti u proxy serveru" msgid "From" msgstr "From" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "Emailová adresa pro použití v záhlaví \"From\" a pro obálku SMTP" msgid "To" msgstr "To" msgid "Comma-separated list of recipient email addresses" msgstr "CSV seznam emailových adres" msgid "Cc" msgstr "Cc" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "CSV seznam emailových adres příjemců kopií" msgid "Bcc" msgstr "Bcc" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "CSV seznam emailových adres skrytých příjemců kopií" msgid "method" msgstr "metoda" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" "Nepovinné. Použitá metoda pro odeslání mailové zprávy. Je-li hodnota \"smtp" "\" (default), použije se SMTP. Jinak se použije název programu, který pro " "odesílatele slouží jako sendmail (takes \"-f\" option for sender, list of " "recipients on command line, message on stdin). Normálně pro poslání zpráv s " "použitím sendmail postačí zadat \"sendmail\" nebo \"/usr/sbin/sendmail\"." msgid "SMTP Host" msgstr "Hostitel SMTP" msgid "Host name of mail server" msgstr "Jméno hostitele mailového serveru" msgid "SMTP Port" msgstr "Port SMTP" msgid "Port to connect to on mail server. Default: 25" msgstr "Port pro připojení k mailovému serveru. Výchozí: 25" msgid "SMTP TLS" msgstr "SMTP TLS" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "" "Metoda pro povolení protokolu TLS při připojení k mailovému serveru. " "Implicitně: none" msgid "SMTP Username" msgstr "Uživatel SMTP" msgid "Username to authenticate to mail server with" msgstr "Jméno uživatele pro připojení k mailovému serveru" msgid "SMTP Password" msgstr "Heslo pro SMTP" msgid "Password to authenticate to mail server with" msgstr "Heslo pro připojení k mailovému serveru" msgid "Local Hostname" msgstr "Lokální jméno hostitele" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "" "Jméno hostitele, které může odesílatel použít pro identifikaci u mailovéh " "serveru." msgid "Diff and Annotate" msgstr "Diffy a anotace" msgid "Patch EOL" msgstr "Oprávka EOL" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" "Normalizovat ukončení řádků během oprávky a po oprávce na lf nebo crlf. " "Strict neprovádí žádnou normalizaci. Auto provádí detekci podle souboru a je " "doporučeným nastavením. Implicitně: strict" msgid "Git Format" msgstr "Formát Git" msgid "Use git extended diff header format. Default: False" msgstr "Použít rozšířený git formát záhlaví diffu. Implicitně je False" msgid "MQ Git Format" msgstr "Formát MQ Git" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" "Nastaveno-li na 'auto', použije mq automaticky oprávky git, je-li požadováno " "zabránit ztrátě změn při manipulaci se soubory (file modes, copy records or " "binary files). Nastaveno-li na 'keep', použije mq konfiguraci sekce [diff], " "přičemž při qrefresh zachová existující oprávky (patches). Nastaveno-li " "'yes' nebo 'no', mq potlačí sekci [diff] a vždy generuje gitové nebo " "regulerní oprávky, přičemž je ve druhém případě možná ztráta dat. " "Implicitně: auto" msgid "No Dates" msgstr "Žádná data" msgid "Do not include modification dates in diff headers. Default: False" msgstr "Nezahrnovat datumy modifikací do záhlaví diffů. Implicitně je False" msgid "Show Function" msgstr "Zobrazit funkci" msgid "Show which function each change is in. Default: False" msgstr "Ukázat ve které funkci je jednotlivá změna obsažena. Výchozí: False" msgid "Ignore White Space" msgstr "Ignorovat prázdná místa (WS)" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "" "Ignorovat prázdná místa při porovnávání řádků v zobrazení diffu. Implicitně: " "False" msgid "Ignore WS Amount" msgstr "Množství ignorovaných WS" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "" "Ignorovat změny v počtu prázdných míst v zobrazení diffu. Implicitně: False" msgid "Ignore Blank Lines" msgstr "Ignorovat prázdné řádky" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "" "Ignorovat změny v počtu prázdných řádků v zobrazení diffu. Implicitně: False" msgid "Annotate:" msgstr "Anotace:" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" "Ignorovat prázdná místa při porovnávání řádků v zobrazení anotace. " "Implicitně: False" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" "Ignorovat změny v počtu prázdných míst v zobrazení anotace. Implicitně: False" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "" "Ignorovat změny v počtu prázdných řádků v zobrazení anotace. Implicitně: " "False" msgid "Fonts" msgstr "Fonty" msgid "Message Font" msgstr "Font zprávy" msgid "Font used to display commit messages. Default: monospace 10" msgstr "Font zprávy komitu. Implicitně: monospace 10" msgid "Diff Font" msgstr "Font diffu" msgid "Font used to display text differences. Default: monospace 10" msgstr "Font použitý pro zobrazení rozdílů v textu. Implicitně: monospace 10" msgid "ChangeLog Font" msgstr "Font přehledu revizí" msgid "Font used to display changelog data. Default: monospace 10" msgstr "Font použitý v přehledu revizí. Implicitně: monospace 10" msgid "Output Font" msgstr "Font výstupu" msgid "Font used to display output messages. Default: sans 8" msgstr "Font textu v panelu Output Log. Implicitně: sans 8" msgid "Extensions" msgstr "Extenze" msgid "Tools" msgstr "Nástroje" msgid "Hooks" msgstr "" msgid "Issue Tracking" msgstr "Sledování problémů" msgid "Issue Regex" msgstr "Regex problému" msgid "Defines the regex to match when picking up issue numbers." msgstr "Definuje regex shody pro vyhledávání čísel problémů." msgid "Issue Link" msgstr "Připojení k problému" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" "Definuje příkaz, který se spustí po zjištění čísla problému. Můžete vložit " "skupiny do issue.regex a odpovídající {n} tokenů do issue.link (kde n je " "nezáporné celé číslo). {0} odkazuje na celý řetězec, shodný s issue.regex, " "zatímco {1} odkazuje na první skupinu, atd. Nejsou-li v issue.link nalezeny " "žádné tokeny, je připojen celý řetězec." msgid "Inline Tags" msgstr "Úvodní tagy" msgid "Show tags at start of commit message." msgstr "Zobrazit tagy na počátku zprávy komitu." msgid "Mandatory Issue Reference" msgstr "Povinný odkaz na problém" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" "Při komitování požadovat aby byl určen odkaz na problém (issue). Je-li " "povoleno, musí nastavený regex v 'Issue Regex' nalézt shodu ve zprávě komitu." msgid "Issue Tracker Plugin" msgstr "Plugin pro Issue Tracker" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" "Konfiguruje plugin COM IBugTraqProvider nebo plugin pro sledování problémů " "IBugTraqProvider2." msgid "Configure Issue Tracker" msgstr "Konfigurovat IT" msgid "Configure the selected COM Bug Tracker plugin." msgstr "Konfigurovat vybraný plugin COM Bug Tracker." msgid "Issue Tracker Trigger" msgstr "Aktivovat Issue Tracker" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

        • never: Do not update the Issue Tracker " "state automatically.
        • commit: Update the Issue Tracker state after " "a successful commit.

        Default: never" msgstr "" "Určuje, kdy má být stav Issue Tracker aktualizován aplikací TortoiseHg. " "Platné hodnoty jsou:

        • never: Neaktualizovat stav Issue Tracker " "automaticky.
        • commit: Aktualizovat Issue Tracker po úspěšném komitu." "

        Implicitně: never" msgid "Changeset Link" msgstr "Odkaz na changeset" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
        The template string " "uses a normal mercurial template syntax, such as:

        • {node|short} : replaced by " "the 12 digit revision id.
        • {rev} : replaced by the revision number." "
        • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
        For example, in order to " "link to bitbucket commit pages you can set this to:
        https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
        You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
        https://github.com/torvalds/" "linux/commit/{gitnode}
        https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
        " msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "Cesta k příkladu pro review board \"http://demo.reviewboard.org\"" msgid "User name to authenticate with review board" msgstr "Jméno uživatele pro ověření přístupu na review board" msgid "Password to authenticate with review board" msgstr "Heslo pro ověření přístupu na review board" msgid "Server Repository ID" msgstr "ID repozitáře na serveru" msgid "The default repository id for this repo on the review board server" msgstr "Implicitní ID repozitáře pro toto repo na serveru Review Board" msgid "Target Groups" msgstr "Cílové skupiny" msgid "A comma separated list of target groups" msgstr "Seznam čárkami oddělených cílových skupin" msgid "Target People" msgstr "Cílové osoby" msgid "A comma separated list of target people" msgstr "Seznam čárkami oddělených cílových osob" msgid "Kiln Bfiles" msgstr "" msgid "Patterns" msgstr "Vzory" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" "Soubory, jejichž názvy odpovídají určeným vzorcům, budou automaticky přidány " "jako 'bfiles" msgid "Size" msgstr "Velikost" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "Soubory větší než zadaná velikost (v MB) budou přidány jako 'bfiles" msgid "System Cache" msgstr "" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "Cesta k adresáři, kde bude uložena 'system-wide cache' pro 'bfiles" msgid "Simplelock" msgstr "" msgid "Lock Clone" msgstr "" msgid "" "Location of local clone of organizational lock repository.

        This repository " "must contain a \"locked\" text file" msgstr "" "Umístění lokálního klonu organizačního (lock) repozitáře. Tento repozitář " "musí obsahovat\"locked\" textový soubor" msgid "Largefiles" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" "Soubory, jejichž názvy odpovídají určeným vzorcům, budou automaticky přidány " "jako 'largefiles" msgid "Minimum Size" msgstr "Minimální velkost" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" "Soubory větší než zadaná velikost (v MB) budou přidány jako 'largefiles" msgid "User Cache" msgstr "" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "Cesta k adresáři, kde bude uložena uživatelova 'cache' pro 'largefiles" msgid "Projrc" msgstr "" msgid "Require confirmation" msgstr "Vyžadovat potvrzení" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

        • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
        • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
        • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
        " msgstr "" "Kdy požadovat po uživateli potvrzení aktualizace lokálního \"projrc\" " "konfiguračního souboru, jestliže se vzdálený soubor 'projrc' změní. Možné " "hodnoty jsou:
        • always: [default] Vždy požádat o " "potvrzení před aktualizací lokálního souboru .hg/projrc.
        • first: " "Zobrazit výzvu k potvrzení při klonování repozitáře nebo při prvním výskytu " "vzdáleného souboru 'projrc'.
        • never: Aktualizovat lokální soubor ." "hg/projrc automaticky bez potvrzení uživatelem.
        " msgid "Servers" msgstr "" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" "Seznam serverů, z nichž musí být staženy (pulled) konfigurační soubory " "\"prorc\". Pro stažení ze všech serverů nastavte \"*\". Pro stažení z " "implicitní synchronizační cesty nastavet \"default\". Implicitně je " "nastaveno stahování ze žádného serveru." msgid "Include" msgstr "Zahrnout" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" "Seznam nastavení, která budou stažena z konfiguračního souboru projektu. " "Implicitně je: include NO settings." msgid "Exclude" msgstr "" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" "Seznam nastavení, která nebudou stažena z konfiguračního souboru projektu. " "Implicitně je nevylučovat žádná z připojovaných nastavení." msgid "Update on incoming" msgstr "Aktualizovat příchozí" msgid "" "Let the user update the projrc on incoming:
        • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
        • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
        • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

          Default: never" msgstr "" "Umožňuje uživateli aktualizovat příchozí 'projrc':

          • never: " "[implicitní] Ukázat, zda byl vzdálený soubor 'projrc' změněn, ale " "neaktualizovat lokální soubor 'projrc'.
          • prompt: Vyhledat změny " "souboru projrc. Pokud tyto změny existují, _vždy_ zobrazit konfirmační výzvu " "s dotazem, zda chce uživatel aktualizovat svůj lokální soubor projrc." "
          • auto: Vyhledat změny souboru projrc a použít hodnotu " "konfiguračního klíče \"projrc.confirm\" pro určení, zda či nikoliv zobrazit " "konfirmační dialog před aktualizací lokálního souboru projrc.

            Default: never" msgid "GnuPG" msgstr "" msgid "Specify the path to GPG. Default: gpg" msgstr "Určit cestu k GPG. Implicitně: gpg" msgid "Key ID" msgstr "" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "ID klíče GPG, spojeného s uživatelem. Implicitně: None (nevyplněno)" msgid "TortoiseHg Settings" msgstr "Nastavení TortoiseHg" msgid "Iniparse package not found" msgstr "Balíček iniparse nenalezen" msgid "Can't change settings without iniparse package - view is readonly." msgstr "" "Nelze změnit nastavení bez balíčku iniparse - zobrazení je jen pro čtení." #, python-format msgid "%s's global settings" msgstr "Globální nastavení %s" msgid "No repository found" msgstr "Repozitář nenalezen" msgid "no repo at " msgstr "žádný repozitář v " #, python-format msgid "%s project settings (.hg/projrc)" msgstr "Nastavení projektu %s (.hg/projrc)" #, python-format msgid "%s repository settings" msgstr "Nastavení repozitáře %s" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "" "Restartovat všechny aplikace TortoiseHg pro uplatnění následujících změn:" msgid "Apply changes before exit?" msgstr "Před ukončením aplikovat změny?" msgid "&No (discard changes)" msgstr "&Ne (zavrhnout změny)" msgid "Reload" msgstr "Znovu načíst" msgid "Settings File:" msgstr "Konfigurační soubor:" msgid "Confirm Save" msgstr "Potvrdit uložení" msgid "Save changes before editing?" msgstr "Uložit změny před editcí?" msgid "&Save" msgstr "&Uložit" msgid "Confirm Reload" msgstr "Potvrďte znovunačtení" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" "Neuložené změny budou ztraceny.\n" "Chcete je znovu načíst?" msgid "Unable to create a Mercurial.ini file" msgstr "Nejde vytvořit soubor Mercurial.ini" msgid "Insufficient access rights, reverting to read-only mode." msgstr "Nedostatečná přístupová oprávnění, návrat do režimu pouze pro čtení." msgid "Context Menu" msgstr "Kontextové menu" msgid "Top menu items:" msgstr "Položky hlavního menu:" msgid "Sub menu items:" msgstr "Položky submenu:" msgid "Menu Behavior" msgstr "Chování menu" msgid "Hide context menu outside repositories" msgstr "Skrýt kontextové menu mimo repozitářů" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" "Nezobrazovat položky menu u neverzovaných složek (use shift + click to " "override)" msgid "Icons" msgstr "Ikony" msgid "Overlays" msgstr "Překryvy" msgid "Enabled overlays" msgstr "Překryvy povoleny" msgid "Local disks only" msgstr "Pouze lokální disky" msgid "Enabled Overlay Handlers" msgstr "Povolené ovladače překryvů" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "" "Varování pro všechny aplikace Tortoise: po změně je požadováno odhlášení" msgid "Added" msgstr "Přidáno" msgid "Locked*" msgstr "Uzamčeno*" msgid "Ignored*" msgstr "Ignorováno*" msgid "Unversioned" msgstr "Neverzováno" msgid "Readonly*" msgstr "Jen ke čtení*" msgid "Deleted*" msgstr "Smazáno*" msgid "*: not used by TortoiseHg" msgstr "*: v TortoiseHg nepoužito" msgid "Taskbar" msgstr "Hlavní panel ve Windows" msgid "Show Icon" msgstr "Zobrazit ikonu" msgid "Highlight Icon" msgstr "Zvýraznit ikonu" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "Můžete změnit sadu ikon z TortoiseSVN's Settings" msgid "Explorer Extension Settings - TortoiseHg" msgstr "Nastavení kontext. nabídek - TortoiseHg" msgid "Clear" msgstr "Smazat" msgid "Clear the current shelf file" msgstr "Vyprázdnit aktuální šelfový soubor" msgid "Delete the current shelf file" msgstr "Smazat aktuální šelfový soubor" msgid "Left Toolbar" msgstr "Left Toolbar" msgid "Delete selected chunks" msgstr "Smazat vybrané porce (chunks)" msgid "Move all files right" msgstr "Přesunout všechny soubory vpravo" msgid "Move selected file right" msgstr "Přesunout vybrané soubory vpravo" msgid "Edit file" msgstr "Editovat soubor" msgid "Move selected chunks right" msgstr "Přesunout vybrané porce vpravo" msgid "Refresh Toolbar" msgstr "Refresh Toolbar" msgid "Refresh" msgstr "Reaktivovat (refresh)" msgid "New Shelf" msgstr "New Shelf" msgid "Right Toolbar" msgstr "Right Toolbar" msgid "Move selected chunks left" msgstr "Přesunout vybrané porce vlevo" msgid "Move selected file left" msgstr "Přesunout vybrané soubory vlevo" msgid "Move all files left" msgstr "Přesunout všechny soubory vlevo" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "Záložní kopie upravených souborů lze nalézt v .hg/Trashcan/" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "TortoiseHg Shelve - %s" msgid "Delete selected chunks from working copy?" msgstr "Smazat vybrané porce (chunks) z pracovní kopie?" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "Smazat vybrané porce (chunks) z šelfového souboru %s?" msgid "Are you sure?" msgstr "Jste si jistý?" msgid "TortoiseHg New Shelf Name" msgstr "Nový název šelfu" msgid "Specify name of new shelf" msgstr "Určit název nového šelfu" msgid "Bad filename" msgstr "Nesprávný název souboru" #, python-format msgid "A shelf name cannot contain %s" msgstr "Jméno šelfu nemůže obsahovat %s" msgid "File already exists" msgstr "Soubor již existuje" msgid "A shelf file of that name already exists" msgstr "Šelfový soubor s tímto názvem již existuje" msgid "New shelf created" msgstr "Vytvořen nový šelf" #, python-format msgid "Delete shelf file %s?" msgstr "Smazat šelfový soubor %s?" msgid "Shelf deleted" msgstr "Šelf smazán" msgid "Revert all working copy changes?" msgstr "Navrátit všechny změny pracovní kopie?" #, python-format msgid "Clear contents of shelf file %s?" msgstr "Smazat obsah šelfového souboru %s?" msgid "Shelf cleared" msgstr "Obsah šelfu smazán" #, python-format msgid "Shelf: %s" msgstr "Shelf: %s" #, python-format msgid "Patch: %s" msgstr "Patch: %s" msgid "Key:" msgstr "" msgid "Local sign" msgstr "Lokální označení" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "Podepsat, i když je sigfile modifikován (-f/--force)" msgid "No commit" msgstr "" msgid "Use custom commit message:" msgstr "Použijte vlastní komentář komitu:" msgid "&Sign" msgstr "" #, python-format msgid "Sign - %s" msgstr "" msgid "Signature has been added" msgstr "Signatura byla připojena" msgid "Repository command still running" msgstr "Příkaz pro repozitář stále běží" msgid "Filter:" msgstr "Filtr:" msgid "Check all files" msgstr "Ověřit všechny soubory" msgid "Uncheck all files" msgstr "Zrušit označení všech souborů" msgid "Status File List Toolbar" msgstr "Status File List Toolbar" msgid "Remove filter, show root" msgstr "Odebrat filtr, ukázat root" #, python-format msgid "%s - status (selection filtered)" msgstr "%s - status (výběr filtrován)" #, python-format msgid "%s - status" msgstr "%s - status" msgid "Check" msgstr "Ověřit" msgid "Uncheck" msgstr "Odznačit" msgid "status" msgstr "status" msgid "Failed to refresh" msgstr "" msgid "No appropriate files" msgstr "Žádné vhodné soubory" msgid "No files found for this operation" msgstr "Pro tuto operaci nebyly nalezeny žádné soubory" msgid "Stat" msgstr "Stat" msgid "M" msgstr "M" msgid "Filename" msgstr "Název souboru" msgid "Size (KB)" msgstr "Velikost (KB)" #, python-format msgid "Checked count: %d" msgstr "Ověřený počet: %d" msgid ", resolved merge" msgstr ", řešené sloučení" msgid ", unresolved merge" msgstr ", neřešené sloučení" #, python-format msgid "%s is modified" msgstr "%s je upraven" msgid "modified" msgstr "upravený" #, python-format msgid "%s is added" msgstr "%s je přidaný" msgid "added" msgstr "přidaný" #, python-format msgid "%s is removed" msgstr "%s je odebraný" msgid "removed" msgstr "odebraný" #, python-format msgid "%s is not tracked (unknown)" msgstr "%s není sledovaný (neznámý)" msgid "unknown" msgstr "neznámý" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "%s je smazán nemercuriálovým příkazem, přesto stále sledován" msgid "missing" msgstr "postrádáný" #, python-format msgid "%s is ignored" msgstr "%s je ignorovaný" msgid "ignored" msgstr "ignorovaný" #, python-format msgid "%s is not modified (clean)" msgstr "%s není upravovaný (čistý)" msgid "clean" msgstr "čistý" #, python-format msgid "%s is a dirty subrepo" msgstr "%s je nečistým subrepozitářem" msgid "subrepo" msgstr "" msgid "Check for incoming changes from selected URL" msgstr "Zjistit příchozí změny z vybraného URL" msgid "Pull incoming changes from selected URL" msgstr "Přetáhnout (pull) příchozí změny z vybraného URL" msgid "Detect outgoing changes to selected URL" msgstr "Odchozí změny do vybraného URL" msgid "Push outgoing changes to selected URL" msgstr "Postrčit (push) odchozí změny do vybraného URL" msgid "Sync Bookmarks" msgstr "" msgid "Email outgoing changesets for remote repository" msgstr "Odeslat odchozí changesety emailem" msgid "Manage pending perforce changelists" msgstr "Manage pending perforce changelists" msgid "Unbundle" msgstr "Rozbalit" msgid "Selected Options:" msgstr "Vybrané možnosti:" msgid "Path Edit Toolbar" msgstr "" msgid "Security" msgstr "Bezpečnost" msgid "Manage HTTPS connection security and user authentication" msgstr "Nastavit bezpečné spojení HTTPS a údaje o uživateli" msgid "Save" msgstr "Uložit" msgid "Save current URL under an alias" msgstr "Uložit aktuální URL jako alias" msgid "Paths in Repository Settings:" msgstr "Cesty v nastavení repozitáře:" msgid "Related Paths:" msgstr "Příbuzné cesty:" msgid "branch: " msgstr "větev: " msgid "bookmark: " msgstr "" #, python-format msgid "rev: %d (%s)" msgstr "rev: %d (%s)" msgid "Post Pull: " msgstr "Po akci pull: " msgid "&Edit..." msgstr "" msgid "&Remove..." msgstr "" msgid "Repository not local" msgstr "Repozitář není lokální" msgid "A terminal shell cannot be opened for remote" msgstr "Terminál nelze otevřít pro vzdálené repo" msgid "Confirm path delete" msgstr "Potvrdit smazání cesty" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "Smazat %s z konfiguračního souboru vašeho repozitáře?" msgid "Select repository" msgstr "Vyberte repozitář" msgid "No host specified" msgstr "Žádný hostitel nebyl určen" msgid "Please set a valid URL to continue." msgstr "Zadejte prosím platné URL." msgid "No remote repository URL or path set" msgstr "Žádná adresa URL nebo cesta ke vzdálenému repozitáři nebyla zadána" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

            Please type and save a remote repository path on the " "Sync widget." msgstr "" "Pro tento repozitář nebyla nastavena žádná platná adresa URL nebo přístupová " "cesta.

            Doplňte prosím cestu ke vzdálenému repozitáři v kartě Sync." msgid "Redundant authentication info" msgstr "Nadbytečná autentizační informace" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" "Máte nastavené autentizační info pro tohoto hostitele a uvnitř tohoto URL. " "Odstranit autentizační info z URL?" msgid "sync command already running" msgstr "příkaz 'sync' již probíhá" #, python-format msgid "Getting incoming changesets from %s..." msgstr "Probíhá příjem příchozích changesetů z %s..." #, python-format msgid "Found incoming changesets from %s" msgstr "Nalezeny příchozí changesety z %s" #, python-format msgid "No incoming changesets from %s" msgstr "Žádné příchozí changesety z %s" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "Příjem příchozích changesetů z %s zrušen, ret %d" #, python-format msgid "Pulling from %s..." msgstr "Přetahování (pulling) %s..." #, python-format msgid "Pull from %s completed" msgstr "Přejímka (pull) z %s je dokončena" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "Přetažení (pull) z %s je zrušeno, ret %d" msgid "Merge caused file conflicts" msgstr "Sloučení způsobilo konflikty" msgid "File conflicts need to be resolved" msgstr "Konflikty souborů je zapotřebí vyřešit" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "Nalézány odchozí changesety do %s..." #, python-format msgid "%d outgoing changesets to %s" msgstr "%d odchozích changesetů do %s" #, python-format msgid "No outgoing changesets to %s" msgstr "Žádné odchozí changesety do %s" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "Sestavování odchozích changesetů %s zrušeno, ret %d" msgid "Perforce pending..." msgstr "Perforce pending..." #, python-format msgid "%s (submitted)" msgstr "%s předáno" #, python-format msgid "%s (pending)" msgstr "%s čeká na vyřízení" msgid "Unable to parse p4pending output" msgstr "Nešlo analyzovat nevyřízený výstup p4" #, python-format msgid "%d pending changelists found" msgstr "nalezeno %d nevyřízených changelistů" msgid "No pending Perforce changelists" msgstr "Žádné nevyřízené changelisty Perforce" msgid "Aborted p4pending" msgstr "Zrušeno p4pending" msgid "Unable to determine pending changesets" msgstr "Nelze určit nevyřízené changesety" msgid "Confirm Push to remote Repository" msgstr "Potvrdit push do vzdáleného repozitáře" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" "Push do vzdáleného repozitáře\n" "%s\n" "?" #, python-format msgid "Push to %s aborted" msgstr "Push do %s zrušen" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" "Neplatná revize implicitní předávky: %s. Zkontrolujte prosím nastavení " "Mercurialu (tortoisehg.defaultpush)" #, python-format msgid "Pushing to %s..." msgstr "Probíhá push do %s..." #, python-format msgid "Push to %s completed" msgstr "Push do %s dokončen" #, python-format msgid "Push to %s aborted, ret %d" msgstr "Push do %s zrušen, ret %d" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" "Jeden nebo více changesetů, které se pokoušíte předat (push), obsahují nově " "vytvořenou větev. Chcete vytvořit novou větev ve vzdáleném repozitáři?" msgid "Determining outgoing changesets to email..." msgstr "Určení odchozích changesetů pro odeslání emailem..." msgid "No outgoing changesets" msgstr "Žádné odchozí changesety" #, python-format msgid "Outgoing aborted, ret %d" msgstr "Sestavení odchozích changesetů zrušeno, ret %d" msgid "Select bundle file" msgstr "Vyberte soubor svazku" msgid "Bundle files (*.hg)" msgstr "" msgid "Unable to remove URL" msgstr "Nejde odebrat URL" msgid "Post Pull Behavior" msgstr "Chování po akci Pull" msgid "Select post-pull operation for this repository" msgstr "Vyberte operaci 'post-pull' pro tento repozitář" msgid "None - simply pull changesets" msgstr "None - pouze převzít changesety" msgid "Update - pull, then try to update" msgstr "Update, pull, potom opět update" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "" "Fetch - provést pull, update a merge (automatické sloučení stáhnutých změn)" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "Fetch - použít extenzi fetch (fetch není aktivní)" msgid "Rebase - rebase local commits above pulled changes" msgstr "Rebase - přeskupit lokální komity nad stažené změny" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "UpdateOrRebase - provést pull, potom zkusit update nebo rebase" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "Rebase - použít extenzi rebase (rebase není aktivní)" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "UpdateOrRebase -použít extenzi rebase (rebase není aktivní!)" msgid "Launch settings tool..." msgstr "Spustit nástroj pro nastavení..." msgid "Unable to save post pull operation" msgstr "Nejde uložit post-pull operaci" msgid "Save Path" msgstr "Uložit cestu" msgid "Alias" msgstr "Alias" msgid "URL" msgstr "URL" msgid "Remove authentication data from URL" msgstr "Odebrat autentizační údaje z URL" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" "Autentizační data uživatele by měla být spojena se jménem hostitele s " "použitím bezpečnostního dialogu." msgid "Update subrepo paths" msgstr "Aktualizovat cesty subrepozitářů" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" "Aktualizujte nebo vytvořte alias cesty '%s' pro všechny subrepozitáře s " "použitím tohoto URL, doplněného o jejich lokální relativní cesty" msgid "Unable to save an URL" msgstr "Nejde uložit URL" msgid "Confirm URL replace" msgstr "Potvrďte náhradu URL" #, python-format msgid "%s already exists, replace URL?" msgstr "%s již existuje, nahradit URL jiným?" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

            %s

            Replace it with the " "following URL?:

            %s" msgstr "" "Subrepozitář '%s' má netriviální implicitní sync URL:

            %s

            Nahradit jej " "tímto URL?:

            %s" msgid "Security: " msgstr "Bezpečnost: " #, python-format msgid "Host: %s" msgstr "Hostitel: %s" msgid "Secure HTTPS Connection" msgstr "Bezpečné spojení HTTPS" msgid "Verify with Certificate Authority certificates (best)" msgstr "Ověřit pomocí certifikátů Certificate Authority (nejlepší)" msgid "Verify with stored host fingerprint (good)" msgstr "Ověřit pomocí uloženého 'fingerprintu' hostitele (dobré)" msgid "No host validation, but still encrypted (bad)" msgstr "Bez ověření hostitele, avšak stále se zašifrováním (špatné)" msgid "### host certificate fingerprint ###" msgstr "" msgid "Query" msgstr "Query" msgid "TLS 1.0" msgstr "" msgid "TLS 1.1" msgstr "" msgid "TLS 1.2" msgstr "" msgid "Minimum Protocol" msgstr "Minimální protokol" msgid "User Authentication" msgstr "Ověření uživatele" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" "Nepovinné. Jméno uživatele pro autentizaci. Není-li zadáno a vzdálený\n" "site požaduje základní nebo stručnou autentizaci, je uživatel o něj\n" "požádán. Proměnné prostředí jsou pro jméno uživatele rozšířeny,\n" "aby bylo možné zadat foo.username = $USER." msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" "Nepovinné. Heslo pro autentizaci. Není-li zadáno, a vzdálený\n" "site požaduje základní nebo stručnou autentizaci, je uživatel\n" "o něj požádán." msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" "Extenze keyring Mercurialu je povolena. Hesla budou uložena bezpečnou " "metodou platformy." msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" "Volitelné. Soubor s klientskými certifikačními klíči ve formátu PEM. " "Proměnné prostředí\n" "jsou rozbaleny v názvu souboru." msgid "User Certificate Key" msgstr "" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" "Volitelné. Soubor se zřetězenými klientskými certifikáty ve formátu PEM. " "Proměnné prostředí\n" "jsou rozbaleny v názvu souboru." msgid "User Certificate Chain" msgstr "" msgid "Certificate Query Error" msgstr "Certificate Query Error" msgid "Select User Certificate Key File" msgstr "" msgid "PEM files (*.pem *.key)" msgstr "" msgid "Select User Certificate Chain File" msgstr "" msgid "PEM files (*.pem *.crt *.cer)" msgstr "" msgid "Unable to save authentication" msgstr "Nejde uložit autentizaci" #, python-format msgid "%s - sync options" msgstr "%s - synchronizační možnosti" msgid "Allow push of a new branch (--new-branch)" msgstr "Povolit push nové větve (--new-branch)" msgid "Force push or pull (override safety checks, --force)" msgstr "Vynutit push nebo pull (potlačit bezpečnostní kontroly, --force)" msgid "Temporarily disable configured HTTP proxy" msgstr "Dočasně odpojit nastavené HTTP proxy" msgid "Emit debugging output (--debug)" msgstr "Emitovat výstup ladění (--debug)" msgid "Work on patch queue (--mq)" msgstr "Pracovat s frontou oprávek (--mq)" #, python-format msgid "Tag - %s" msgstr "Tag -%s" msgid "Tag:" msgstr "Tag:" msgid "Tagged:" msgstr "Označeno tagem:" msgid "Local tag" msgstr "Lokální tag" msgid "Replace existing tag (-f/--force)" msgstr "Nahradit stávající tag (-f/--force)" msgid "Use English commit message" msgstr "Použijte anglický komentář komitu" msgid "local" msgstr "lokální" msgid "Move" msgstr "Přesunout" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "Přemístěný tag %s do changesetu %s (z changesetu %s)" #, python-format msgid "Added tag %s for changeset %s" msgstr "Připojený tag %s k revizi %s" #, python-format msgid "Tag '%s' has been moved" msgstr "Tag '%s' byl přemístěn" #, python-format msgid "Tag '%s' has been added" msgstr "Tag '%s' byl přidán" #, python-format msgid "Removed tag %s" msgstr "Odebraný tag %s" #, python-format msgid "Tag '%s' has been removed" msgstr "Tag '%s' byl odebrán" msgid "Patch files (*.diff *.patch)" msgstr "Oprávkové soubory (*.diff *.patch)" #, python-format msgid "Import - %s" msgstr "Import - %s" msgid "Browse Directory..." msgstr "Prohledat adresář..." msgid "Import from Clipboard" msgstr "Importovat ze schránky" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "Neodtrhovat cesty (-p0), požadováno pro oprávky SVN" msgid "Preview:" msgstr "Náhled:" msgid "Shelf" msgstr "Shelf" msgid "Checking working directory status..." msgstr "Ověřování stavu pracovního adresáře..." msgid "&Import" msgstr "&Import" msgid "Working directory is not clean! View changes..." msgstr "Pracovní adresář není čistý! Zobrazit změny..." msgid "Select patches" msgstr "Vyberte oprávky" msgid "Select Directory containing patches" msgstr "Vyberte adresář, obsahující oprávky" #, python-format msgid "%s patches" msgstr "%s oprávky" #, python-format msgid "%s will be imported to " msgstr "%s bude importováno do " msgid "Nothing to import" msgstr "Není co importovat" msgid "Strip:" msgstr "Odtrhnout:" msgid "Discard local changes, no backup (-f/--force)" msgstr "Vyřadit lokální změny, bez zálohování (-f/--force)" msgid "No backup (-n/--nobackup)" msgstr "Bez zálohy (-n/--nobackup)" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "Při odtrhování (strip) neupravujte pracovní kopii (-k/--keep)" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "%d changeset bude odtržen" msgstr[1] "%d poslední changesety budou odtrženy" msgstr[2] "%d posledních changesetů bude odtrženo" msgid "Unknown revision!" msgstr "Neznámá revize!" msgid "Detected uncommitted local changes." msgstr "Nalezeny nekomitované lokální změny." msgid "Do you want to keep them or discard them?" msgstr "Chcete je zachovat nebo vyřadit?" msgid "&Keep (--keep)" msgstr "" msgid "&Discard (--force)" msgstr "" msgid "Confirm Strip" msgstr "Potvrdit odtržení" #, python-format msgid "Strip - %s" msgstr "Odtrhnout -%s" msgid "&Strip" msgstr "&Strip" msgid "Topic:" msgstr "" msgid "&Rename" msgstr "" #, python-format msgid "Topic - %s" msgstr "" #, python-format msgid "A topic named \"%s\" already exists" msgstr "" #, python-format msgid "Topic '%s' has been added" msgstr "" #, python-format msgid "Topic '%s' does not exist" msgstr "" #, python-format msgid "Topic '%s' has been removed" msgstr "" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "" msgid "Parent 1:" msgstr "Rodič 1:" msgid "Parent 2:" msgstr "Rodič 2:" msgid "Pull subrepos from:" msgstr "Přetáhnout (pull) subrepa z:" msgid "List updated files (--verbose)" msgstr "Seznam aktualizovaných souborů (--verbose)" msgid "Discard local changes, no backup (-C/--clean)" msgstr "Vyřadit lokální změny, bez zálohování (-C/--clean)" msgid "Always merge (when possible)" msgstr "Vždy sloučit (je-li možno)" msgid "(same as parent)" msgstr "(totéž jako rodič)" msgid "Activate bookmark?" msgstr "Aktivovat záložku?" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

            Do " "you want to activate it?
            You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" "Vybraná revize (%s) má záložku s názvem \"%s\".

            Chcete ji aktivovat?" "
            Můžete tuto výzvu nepovolit v Settings/Workbench/Activate " "Bookmarks" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

            Select " "the bookmark that you want to activate and click OK.

            Click " "Cancel if you don't want to activate any of them.

            You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

            " msgstr "" "Vybraná revize (%s) má %d záložky (záložek).

            Vyberte tu, " "kterou chcete aktivovat a klepněte OK.

            klepněte Cancel, " "nechcete-li aktivovat žádnou z nich.

            Můžete tuto výzvu nepovolit v " "Settings/Workbench/Activate Bookmarks

            " msgid "Deactivate current bookmark?" msgstr "Deaktivovat stavající záložku?" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "Opravdu chcete deaktivovat záložku %s?" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" "V pracovním stromu byly zjištěny nekomitované změny.\n" "Vyberte způsob pokračování:\n" msgid "Discard - discard local changes, no backup" msgstr "Vyřadit - zavrhnout lokální změny, bez zálohování" msgid "&Shelve" msgstr "&Shelve" msgid "Shelve - move local changes to a patch" msgstr "Shelve - přemístit lokální změny do oprávky" msgid "Merge - allow to merge with local changes" msgstr "Sloučit - povolit sloučení s lokálními změnami" msgid "Confirm Update" msgstr "Potvrdit aktualizaci" #, python-format msgid "Update - %s" msgstr "Aktualizovat - %s" msgid "[non-existant]" msgstr "[neexistující]" msgid "Tool launch failure" msgstr "Selhalo spuštění nástroje" #, python-format msgid "%s : %s" msgstr "%s : %s" msgid "No diff tool found" msgstr "Diffový nástroj nenalezen" msgid "No visual diff tools were detected" msgstr "Žádné vizuální diffové nástroje nebyly nenalezeny" msgid "[working copy]" msgstr "[pracovní kopie]" msgid "[original]" msgstr "[originál]" msgid "Unable to find changeset" msgstr "Nelze nalézt changeset" msgid "You likely need to refresh this application" msgstr "Patrně potřebujete tuto aplikaci obnovit (refresh)" msgid "No file changes" msgstr "Žádné změny souborů" msgid "There are no file changes to view" msgstr "Nejsou žádné změny souborů k zobrazení" msgid "working changes" msgstr "pracovní změny" #, python-format msgid "changeset %d:%s" msgstr "changeset %d:%s" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "revizí %d:%s až %d:%s" msgid "Visual Diffs - " msgstr "Vizuální diffy - " msgid " filtered" msgstr " filtrováno" msgid "Temporary files are removed when this dialog is closed" msgstr "Dočasné soubory se odstraní po ukončení tohoto dialogu" msgid "Select Tool:" msgstr "Vyberte nástroj:" msgid "Dir diff to p1" msgstr "Diff vůči p1" msgid "Dir diff to p2" msgstr "Diff vůči p2" msgid "3-way dir diff" msgstr "Trojný diff" msgid "Directory diff" msgstr "Diff adresářů" msgid "Confirm Discard" msgstr "Potvrdit vyřazení" msgid "Discard outstanding changes to working directory?" msgstr "Vyřadit nevyřízené změny pracovního adresáře?" msgid "Config files (*.conf *.config *.ini)" msgstr "Konfigurační soubory (*.conf *.config *.ini)" msgid "Open hgweb config" msgstr "Otevřít konfig. soubor hgweb" msgid "Save hgweb config" msgstr "Uložit konfig. soubor hgweb" msgid "Path:" msgstr "Cesta:" msgid "Local Path:" msgstr "Lokální cesta:" msgid "Select Repository" msgstr "Vybrat repozitář" msgid "Add Path to Serve" msgstr "Add Path to Serve" msgid "Edit Path to Serve" msgstr "Edit Path to Serve" msgid "Local Path" msgstr "Lokální cesta" msgid "Webconf" msgstr "Webconf" msgid "Config File:" msgstr "Konfigurační soubor:" msgid "Open" msgstr "Otevřít" msgid "New &Workbench" msgstr "Nový Verpánek" msgid "&New Repository..." msgstr "&Nový repozitář..." msgid "Clon&e Repository..." msgstr "Klonovat repozitář..." msgid "&Open Repository..." msgstr "&Otevřít repozitář..." msgid "&File" msgstr "&Soubor" msgid "&View" msgstr "&Zobrazit" msgid "&Repository" msgstr "&Repozitář" msgid "&Help" msgstr "&Help" msgid "&Dock Toolbar" msgstr "" msgid "&Task Toolbar" msgstr "" msgid "&Custom Toolbar" msgstr "" msgid "S&ync Toolbar" msgstr "" msgid "&Close Repository" msgstr "&Zavřít repozitář" msgid "Sh&ow Repository Registry" msgstr "Otevřít seznam repozitářů" msgid "Show &Patch Queue" msgstr "Otevřít frontu oprávek" msgid "Show Conso&le" msgstr "Otevřít konzolu" msgid "Place Console in Doc&k Area" msgstr "Umístit konzolu do úkonové plochy" msgid "R&epository Registry Options" msgstr "Nastavení seznamu repozitářů" msgid "Save Open Repositories on E&xit" msgstr "Při exitu uložit otevřené repozitáře" msgid "Sa&ve Current Sync Paths on Exit" msgstr "Při exitu uložit stávající cesty pro synchronizaci" msgid "Show Tas&k Tab" msgstr "Zobrazit úkonovou plochu" msgid "&Commit" msgstr "&Commit" msgid "&Patch Branch" msgstr "&Patch Branch" msgid "Revision &Details" msgstr "Podrobnosti &revize" msgid "&Search" msgstr "&Hledat" msgid "S&ynchronize" msgstr "S&ynchronizovat" msgid "Refresh current repository" msgstr "Reaktivovat aktuální repozitář" msgid "Refresh &Task Tab" msgstr "Reaktivovat úkonovou plochu" msgid "Refresh only the current task tab" msgstr "Reaktivovat pouze aktuální úkonovou kartu" msgid "Load &All Revisions" msgstr "Načíst všechny revize" msgid "Load all revisions into graph" msgstr "Načíst všechny revize do grafu" msgid "Go to current revision" msgstr "Přejít k aktuální revizi" msgid "&Goto Revision..." msgstr "Přejít k revizi..." msgid "Go to a specific revision" msgstr "Přejít k jiné revizi" msgid "Filter graph with revision sets or branches" msgstr "Lišta filtru se sadami revizí nebo větvemi" msgid "&Workbench Toolbars" msgstr "Nástrojové lišty" msgid "&Lock File..." msgstr "" msgid "Lock or unlock files" msgstr "Zamknout nebo nezamknout soubory" msgid "Update working directory or switch revisions" msgstr "Aktualizovat pracovní adresář k označené revizi" msgid "&Shelve..." msgstr "" msgid "&Import Patches..." msgstr "" msgid "U&nbundle..." msgstr "" msgid "&Merge..." msgstr "Sloučit..." msgid "Merge with the other head of the current branch" msgstr "Sloučit s dalším čelem aktuální větve" msgid "&Resolve..." msgstr "Řešit konflikt..." msgid "R&ollback/Undo..." msgstr "" msgid "&Purge..." msgstr "" msgid "&Bisect..." msgstr "" msgid "&Verify" msgstr "Ověřit repozitář" msgid "Re&cover" msgstr "Obnovit repozitář" msgid "&Web Server" msgstr "Webový server" msgid "E&xplorer Help" msgstr "" msgid "&Readme" msgstr "" msgid "About &Qt" msgstr "" msgid "&About TortoiseHg" msgstr "" msgid "&Incoming" msgstr "&Příchozí" msgid "&Pull" msgstr "" msgid "&Outgoing" msgstr "&Odchozí (outgoing)" msgid "P&ush" msgstr "" msgid "&Sync Bookmarks..." msgstr "Synchronizace záložek..." #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" "Žádne synchronizační cesty nejsou nastaveny.\n" "Jejich nastavení provedete v kartě Synchronize." msgid "Check for incoming changes" msgstr "Zjistit příchozí změny" msgid "Pull incoming changes" msgstr "Přetáhnout (pull) příchozí změny" msgid "Detect outgoing changes" msgstr "Zjistit odchozí změny" msgid "Push outgoing changes" msgstr "Postrčit (push) odchozí změny" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" "Zjistit příchozí změny z\n" "%s" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" "Přetáhnout (pull) příchozí změny změny z\n" "%s" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" "Zjistit odchozí změny do\n" "%s" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" "Postrčit (push) odchozí změny do\n" "%s" #, python-format msgid "Execute custom tool '%s'" msgstr "Spustit uživatelský nástroj '%s'" msgid "Custom Toolbar &Settings" msgstr "Nastavení uživatelské lišty" msgid "TortoiseHg Workbench" msgstr "TortoiseHg Workbench" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "%s - TortoiseHg Workbench - %s" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "%s - TortoiseHg Workbench" msgid "Goto revision" msgstr "Přejít k revizi" msgid "Enter revision identifier" msgstr "Zadat označení revize" msgid "Select repository directory to open" msgstr "Vyberte adresář otevíraného repozitáře" msgid "README not configured" msgstr "README není nastaveno" msgid "" "A README file is not configured for the current repository.

            To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" "Soubor README není pro aktuální repozitář nakonfigurovaný.

            Pro konfiguraci " "souboru README v repozitáři otevřte konfigurační soubor a přidejte klíč " "'readme' v sekci 'tortoisehg' a jako hodnotu uveďte název nebo " "URL souboru README repozitáře." msgid "Issue Tracker Plugin Error" msgstr "Chyba pluginu Issue Tracker" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "Nešlo vytvořit instanci přidaného objektu COM: Issue Tracker" msgid "This error will not be shown again until you restart the workbench" msgstr "Tato chyba se již nezobrazí, pokud nerestartujete Verpánek" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "Chyba při získání chybové zprávy z pluginu Issue Tracker" msgid "Error executing \"commit finished\" trigger" msgstr "Chyba při aktivaci \"commit finished\" události" msgid "Cannot open Plugin Options dialog" msgstr "Nejde otevřít dialog Plugin Options" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "neověřovat certifikát serveru (ignoring web.cacerts config)" msgid "[--insecure] [SOURCE]" msgstr "" #, python-format msgid "unsupported URL: %s" msgstr "nepodporované URL: %s" #, python-format msgid "%s certificate error: no certificate received" msgstr "%s chyba certifikace: žádný certifikát nebyl přijat" msgid "move after the specified patch" msgstr "" msgid "[--after PATCH] PATCH..." msgstr "" msgid "unknown patch to move specified" msgstr "pro přemístění uveden neznámý soupis změn (patch)" msgid "invalid patch position specified" msgstr "neplatné určení pozice oprávky (patch)" msgid "cannot move applied patches" msgstr "aplikované oprávky nelze přemístit" #, python-format msgid "patch %s not in series" msgstr "" msgid "cannot move into applied patches" msgstr "nelze přemístit do aplikovaných oprávek" msgid "abort: " msgstr "zrušit: " msgid "hint: " msgstr "" #, python-format msgid "HTTP Error: %d (%s)" msgstr "HTTP Error: %d (%s)" #, python-format msgid "URLError: %s" msgstr "URLError: %s" msgid "SSL: Server certificate verify failed" msgstr "SSL: Ověření certifikátu serveru se nezdařilo" #, python-format msgid "SSL: unknown error %s:%s" msgstr "SSL: neznámá chyba %s:%s" #, python-format msgid "SSL error: %s" msgstr "Chyba SSL: %s" msgid "hgsubversion packaged with thg" msgstr "hgsubversion v paketu s thg" msgid "hggit packaged with thg" msgstr "hggit v paketu s thg" msgid "inotify is not supported on this platform" msgstr "inotify není v této platformě podporováno" msgid "eol is incompatible with win32text" msgstr "eol je nekompatibilní s win32text" msgid "win32text is incompatible with eol" msgstr "win32text je nekompatibilní s eol" msgid "hgsubversion is incompatible with perfarce" msgstr "hgsubversion je nekompatibilní s perfarce" msgid "perfarce is incompatible with hgsubversion" msgstr "perfarce je nekompatibilní s hgsubversion" msgid "Workbench custom toolbar" msgstr "Nástrojová lišta uživatele" msgid "Revision details context menu" msgstr "Kontextové menu detailů revize" msgid "Pair selection context menu" msgstr "Kontextové menu párového výběru" msgid "Multiple selection context menu" msgstr "Vícevýběrové kontextové menu" msgid "Commit context menu" msgstr "Kontextové menu komitu" msgid "File context menu (on manifest and revision details)" msgstr "Kontextové menu souboru (v detailech manifestu a revize)" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" msgid "in the future" msgstr "v budoucnosti" msgid "now" msgstr "nyní" #, python-format msgid "command parse error: %s" msgstr "command parse error: %s" #, python-format msgid "no matches found: %s" msgstr "žádné shody nenalezeny: %s" msgid "Commit..." msgstr "Commit..." msgid "Commit changes in repository" msgstr "Komitovat změny v repozitáři" msgid "Create Repository Here" msgstr "Vytvořit repozitář" msgid "Create a new repository" msgstr "Vytvořit nový repozitář" msgid "Clone..." msgstr "Klonovat..." msgid "Create clone here from source" msgstr "Vytvořit klon zdroje" msgid "File Status" msgstr "Status souboru" msgid "Repository status & changes" msgstr "Změny stavu repozitáře" msgid "Add Files..." msgstr "Přidat soubory..." msgid "Add files to version control" msgstr "Přidat soubory do správy verzí" msgid "Revert Files..." msgstr "Navrátit soubory..." msgid "Revert file changes" msgstr "Navrátit změny souboru" msgid "Forget Files..." msgstr "Zapomenout soubory..." msgid "Remove files from version control" msgstr "Odebrat soubory ze správy verzí" msgid "Remove Files..." msgstr "Odebrat soubory..." msgid "Rename File" msgstr "Přejmenovat soubor" msgid "Rename file or directory" msgstr "Přejmenovat soubor nebo adresář" msgid "View change history in repository" msgstr "Zobrazit historii změn v repositáři" msgid "File History" msgstr "Historie souboru" msgid "View change history of selected files" msgstr "Zobrazit historii změn vybraných souborů" msgid "Shelve Changes" msgstr "Odložit (shelve) změny" msgid "Move changes between working dir and patch" msgstr "Přesunout změny z pracovního adresáře do oprávky (path)" msgid "Synchronize" msgstr "Synchronizovat" msgid "Synchronize with remote repository" msgstr "Synchronizovat se vzdáleným repozitářem" msgid "Start web server for this repository" msgstr "Spustit webový server pro tento repositář" msgid "Update..." msgstr "Aktualizovat..." msgid "Update working directory" msgstr "Aktualizovat pracovní adresář" msgid "Update Icons" msgstr "Aktualizovat ikony" msgid "Update icons for this repository" msgstr "Aktualizovat ikony pro tento repositář" msgid "Global Settings" msgstr "Globální nastavení" msgid "Configure user wide settings" msgstr "Upravit uživatelské nastavení" msgid "Repository Settings" msgstr "Nastavení repozitáře" msgid "Configure repository settings" msgstr "Upravit nastavení repozitáře" msgid "Explorer Extension Settings" msgstr "Nastavení kontext. nabídek" msgid "Configure Explorer extension" msgstr "Nastavit extenzi Průzkumníka" msgid "About TortoiseHg" msgstr "O TortoiseHg" msgid "Show About Dialog" msgstr "Zobrazit dialog About" msgid "Diff to parent" msgstr "Diff vůči rodiči" msgid "View changes using GUI diff tool" msgstr "Prohlédnout změny nástrojem GUI" msgid "Edit Ignore Filter" msgstr "Ignorované soubory" msgid "Edit repository ignore filter" msgstr "Upravit seznam ignorovaných položek v repozitáři" msgid "Guess Renames" msgstr "Uhodnout změny názvů" msgid "Detect renames and copies" msgstr "Zjistit kopie a změny názvů" msgid "Search History" msgstr "Historie hledání" msgid "Search file revisions for patterns" msgstr "Prohledat revize souborů podle vzorů" msgid "DnD Synchronize" msgstr "Synchronizace DnD" msgid "Synchronize with dragged repository" msgstr "Synchronizovat s přetaženým repozitářem" #, python-format msgid "unrecognized response: %s" msgstr "neuznaná odezva: %s" msgid "password: " msgstr "heslo: " #, python-format msgid "repository %s not found" msgstr "repozitář %s nenalezen" msgid "win32ill: cannot create window for messages" msgstr "win32ill: nejde vytvořit okno pro zprávy" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "win32ill: nepodporovaná platforma: %s\n" msgid "win32ill: interrupted while stopping message loop\n" msgstr "win32ill: přerušeno se zastavením \"message loop\"\n" #~ msgid "limit number of changes displayed" #~ msgstr "omezit počet zobrazených změn" #~ msgid "response expected" #~ msgstr "očekávána odpověď" #~ msgid " [Ynsfdaq?] " #~ msgstr " [Ynsfdaq?] " #~ msgid " and " #~ msgstr " a " #~ msgid "hg shelve [OPTION]... [FILE]..." #~ msgstr "hg shelve [OPTION]... [FILE]..." #~ msgid "hg unshelve [OPTION]... [FILE]..." #~ msgstr "hg unshelve [OPTION]... [FILE]..." #~ msgid "address to use" #~ msgstr "použít adresu" #~ msgid "port to use (default: 8000)" #~ msgstr "použít port (výchozí: 8000)" #~ msgid "SSL certificate file" #~ msgstr "soubor se SSL certifikátem" #~ msgid "hg serve [OPTION]..." #~ msgstr "hg serve [OPTION]..." #~ msgid "use IPv6 in addition to IPv4" #~ msgstr "mimo IPv4 použít také IPv6" #~ msgid "a tag named \"%s\" already exists" #~ msgstr "značka \"%s\" již existuje" #~ msgid "%d selected, %d total" #~ msgstr "%d vybráno, %d celkem" #~ msgid "(version %s)" #~ msgstr "(verze %s)" #~ msgid "with %s" #~ msgstr "s %s" #~ msgid "Save as.." #~ msgstr "Uložit jako.." #~ msgid "[All Files]" #~ msgstr "[Všechny soubory]" #~ msgid "Advanced options" #~ msgstr "Pokročilé možnosti" #~ msgid "Several icons are courtesy of the TortoiseSVN project" #~ msgstr "Některé ikony jsou převzaty z projektu TortoiseSVN" #~ msgid "Archive" #~ msgstr "Archivovat" #~ msgid "Archive revision:" #~ msgstr "Archivovaná revize:" #~ msgid "Confirm Abort" #~ msgstr "Potvrdit zrušení" #~ msgid "Do you want to abort?" #~ msgstr "Chcete provést zrušení?" #~ msgid "unexpected response id: %s" #~ msgstr "neočekávaná odezva id: %s" #~ msgid "All Files (*.*)" #~ msgstr "Všechny soubory (*.*)" #~ msgid "" #~ "The destination \"%s\" already exists!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "Destinace\"%s\" již existuje!\n" #~ "\n" #~ "Chcete ji přepsat?" #~ msgid "" #~ "The directory \"%s\" isn't empty!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "Složka \"%s\" není prázdná!\n" #~ "\n" #~ "Chcete ji přepsat?" #~ msgid "Archived successfully" #~ msgstr "Archivace se zdařila" #~ msgid "Canceled archiving" #~ msgstr "Archivace zrušena" #~ msgid "Failed to archive" #~ msgstr "Archivace se nezdařila" #~ msgid "%s changeset " #~ msgstr "%s changeset " #~ msgid " %s is larger than the specified max diff size" #~ msgstr " %s je větší než určená max velikost diffu" #~ msgid "Repository Error: %s, refresh suggested" #~ msgstr "Chyba repositáře: %s, navrženo obnovení" #~ msgid "Revert %s to contents at revision %d?" #~ msgstr "Vrátit %s k obsahu revize %d?" #~ msgid "TortoiseHg Clone" #~ msgstr "Klon TortoiseHg" #~ msgid "Clone" #~ msgstr "Klonovat" #~ msgid "Source path:" #~ msgstr "Cesta ke zdroji:" #~ msgid "Use uncompressed transfer" #~ msgstr "Použít nekomprimovaný přenos" #~ msgid "Source path is empty" #~ msgstr "Cesta ke zdroji je prázdná" #~ msgid "Please enter a valid source path" #~ msgstr "Zadejte platnou cestu ke zdroji" #~ msgid "Source and destination are the same" #~ msgstr "Zdroj i destinace jsou stejné" #~ msgid "Please specify different paths" #~ msgstr "Určete prosím různé cesty" #~ msgid "Cloned successfully" #~ msgstr "Klonování se zdařilo" #~ msgid "Failed to clone" #~ msgstr "Klonování se nezdařilo" #~ msgid "Close current named branch" #~ msgstr "Zavřít aktuální pojmenovanou větev" #~ msgid " - qnew" #~ msgstr " - qnew" #~ msgid " - qrefresh " #~ msgstr " - qrefresh " #~ msgid " - commit" #~ msgstr " - commit" #~ msgid "Advanced" #~ msgstr "Pokročilé" #~ msgid "_Undo" #~ msgstr "_Zpět" #~ msgid "Re_vert" #~ msgstr "Vrátit" #~ msgid "Committer:" #~ msgstr "Komitent:" #~ msgid "Parent: %(rev)s" #~ msgstr "Rodič: %(rev)s" #~ msgid "Commit Preview" #~ msgstr "Náhled komitu" #~ msgid "create new MQ patch" #~ msgstr "vytvořit novou oprávku MQ" #~ msgid "refresh top MQ patch" #~ msgstr "obnovit top MQ oprávku" #~ msgid "new branch: " #~ msgstr "nová větev: " #~ msgid "close branch: " #~ msgstr "zavřít větev: " #~ msgid "Merge " #~ msgstr "Sloučit " #~ msgid "No committable files selected" #~ msgstr "Nebyly vybrány žádné komitovatelné soubory" #~ msgid "Unable to create " #~ msgstr "Nelze vytvořit " #~ msgid "Unable to apply patch" #~ msgstr "Nešlo použít oprávku" #~ msgid "Confirm Undo Commit" #~ msgstr "Potvrďte zrušení komitu" #~ msgid "Undo Commit" #~ msgstr "Zrušit komit" #~ msgid "Confirm Commit" #~ msgstr "Potvrďte commit" #~ msgid "Commit: Invalid username" #~ msgstr "Commit: Neplatné jméno uživatele" #~ msgid "" #~ "Your username has not been configured.\n" #~ "\n" #~ "Please configure your username and try again" #~ msgstr "" #~ "Nemáte nastavené jméno uživatele.\n" #~ "\n" #~ "Prosím nastavte si jméno uživatele." #~ msgid "App_ly Format" #~ msgstr "Použít formát" #~ msgid "Stop operation on current tab" #~ msgstr "Zastavit operaci ve stávající záložce" #~ msgid "New Search" #~ msgstr "Nové hledání" #~ msgid "Open new search tab" #~ msgstr "Otevřít záložku nového hledání" #~ msgid "Invalid path" #~ msgstr "Neplatná cesta" #~ msgid "Start this search" #~ msgstr "Zahájit hledání" #~ msgid "Show line numbers" #~ msgstr "Zobrazit čísla řádků" #~ msgid "Matches" #~ msgstr "Shody" #~ msgid "Search %d" #~ msgstr "Hledat %d" #~ msgid "No regular expression given" #~ msgstr "Nezadán regulární výraz" #~ msgid "You must provide a search expression" #~ msgstr "Nutno zadat vyhledávací výraz" #~ msgid "Invalid regular expression" #~ msgstr "Neplatný regulární výraz" #~ msgid "Error: %s" #~ msgstr "Chyba: %s" #~ msgid "Abort: %s" #~ msgstr "Zrušit: %s" #~ msgid "Search \"%s\"" #~ msgstr "Hledat \"%s\"" #~ msgid "Loading history..." #~ msgstr "Historie načítání..." #~ msgid "Datamine" #~ msgstr "Datamine" #~ msgid "Shelve" #~ msgstr "Shelve" #~ msgid "Contents" #~ msgstr "Obsah" #~ msgid " Aborted" #~ msgstr " Zrušeno" #~ msgid " Messages and Errors" #~ msgstr " Zprávy a chyby" #~ msgid "making snapshot of %d files from rev %s\n" #~ msgstr "provádí se snímek %d souborů z rev %s\n" #~ msgid "edit failed" #~ msgstr "úprava selhala" #~ msgid "Select" #~ msgstr "Vybrat" #~ msgid "Select Revision" #~ msgstr "Vybrat revizi" #~ msgid "Invalid Revision" #~ msgstr "Neplatná revize" #~ msgid "Save File" #~ msgstr "Uložit soubor" #~ msgid "All files" #~ msgstr "Všechny soubory" #~ msgid "Select Folder" #~ msgstr "Vyberte složku" #~ msgid "Lang \"%s\" can not be set.\n" #~ msgstr "Jazyk \"%s\" nelze nastavit.\n" #~ msgid "Spell Check Language" #~ msgstr "Jazyk pro kontrolu pravopisu" #~ msgid "Minimum Simularity Percentage" #~ msgstr "Procento minimální simularity" #~ msgid "Find Copies" #~ msgstr "Nalézt kopie" #~ msgid "Candidate Matches" #~ msgstr "Kandidáti shod" #~ msgid "Accept Match" #~ msgstr "Přijmout shodu" #~ msgid "finding source of " #~ msgstr "nalezení zdroje " #~ msgid "" #~ "== %s and %s have identical contents ==\n" #~ "\n" #~ msgstr "" #~ "== %s a %s mají stejný obsah ==\n" #~ "\n" #~ msgid "" #~ "\n" #~ "[command interrupted]" #~ msgstr "" #~ "\n" #~ "[příkaz přerušen]" #~ msgid "unknown CmdWidget style: %s" #~ msgstr "neznámý styl CmdWidgetu: %s" #~ msgid "Toggle log window" #~ msgstr "Přepnout logovací okno" #~ msgid "Stop transaction" #~ msgstr "Ukončit transakci" #~ msgid "Close this" #~ msgstr "Toto uzavřít" #~ msgid "invalid state" #~ msgstr "neplatný stav" #~ msgid "Command Log" #~ msgstr "Záznam příkazu" #~ msgid "Send" #~ msgstr "Poslat" #~ msgid "Test" #~ msgstr "Test" #~ msgid "Envelope" #~ msgstr "Obálka" #~ msgid "You must specify a recipient" #~ msgstr "Nutno určit příjemce" #~ msgid "You must specify a sender address" #~ msgstr "Nutno určit adresu odesílatele" #~ msgid "You must configure SMTP" #~ msgstr "Nutno konfigurovat SMTP" #~ msgid "Glob:" #~ msgstr "Glob:" #~ msgid "Apply to:" #~ msgstr "Použít pro:" #~ msgid "Filters" #~ msgstr "Filtry" #~ msgid "Remove Selected" #~ msgstr "Odstranit vybrané" #~ msgid "Unknown Files" #~ msgstr "Neznámé soubory" #~ msgid "Add special files (.hgignore, ...)" #~ msgstr "Přidat specifické soubory (.hgignore, ...)" #~ msgid "Make repo compatible with Mercurial 1.0" #~ msgstr "Učinit repo kompatibilní s Mercurial 1.0" #~ msgid "Please enter the directory path" #~ msgstr "Zadejte cestu k adresáři" #~ msgid "Unable to create new repository" #~ msgstr "Nelze vytvořit nový repositář" #~ msgid "[command returned code %d " #~ msgstr "[příkaz vrátil kód %d " #~ msgid "[command completed successfully " #~ msgstr "[příkaz byl úspěšně proveden " #~ msgid "hgtk %s: %s\n" #~ msgstr "hgtk %s: %s\n" #~ msgid "hgtk: %s\n" #~ msgstr "hgtk: %s\n" #~ msgid "" #~ "hgtk: command '%s' is ambiguous:\n" #~ " %s\n" #~ msgstr "" #~ "hgtk: příkaz '%s' je nejednoznačný:\n" #~ " %s\n" #~ msgid "hgtk: unknown command '%s'\n" #~ msgstr "hgtk: neznámý příkaz '%s'\n" #~ msgid "There is no Mercurial repository here (.hg not found)" #~ msgstr "Zde není žádný repositář (složka .hg nenalezena)." #~ msgid "Rename error" #~ msgstr "Chyba při změně jména" #~ msgid "rename takes one or two path arguments" #~ msgstr "přejmenování přijímá jeden nebo dva argumenty cesty" #~ msgid "use \"hgtk help\" for the full list of commands" #~ msgstr "použijte \"hgtk help\" pro úplný seznam příkazů" #~ msgid "" #~ "use \"hgtk help\" for the full list of commands or \"hgtk -v\" for details" #~ msgstr "" #~ "použijte \"hgtk help\" pro úplný seznam příkazů nebo \"hgtk -v\" pro " #~ "detaily" #~ msgid "use \"hgtk -v help%s\" to show aliases and global options" #~ msgstr "" #~ "použijte \"hgtk -v help%s\" k zobrazení náhradních názvů a globálních " #~ "možností" #~ msgid "use \"hgtk -v help %s\" to show global options" #~ msgstr "použijte \"hgtk -v help %s\" k zobrazení globálních možností" #~ msgid "(No help text available)" #~ msgstr "(Bez nápovědy)" #~ msgid "Hgtk - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" #~ msgstr "Hgtk - GUI nástroje TortoiseHg pro Mercurial SCM (Hg)\n" #~ msgid "hgtk about" #~ msgstr "hgtk about" #~ msgid "hgtk add [FILE]..." #~ msgstr "hgtk add [FILE]..." #~ msgid "hgtk clone SOURCE [DEST]" #~ msgstr "hgtk clone SOURCE [DEST]" #~ msgid "hgtk commit [OPTIONS] [FILE]..." #~ msgstr "hgtk commit [OPTIONS] [FILE]..." #~ msgid "hgtk datamine" #~ msgstr "hgtk datamine" #~ msgid "hgtk hgignore [FILE]" #~ msgstr "hgtk hgignore [FILE]" #~ msgid "hgtk init [DEST]" #~ msgstr "hgtk init [DEST]" #~ msgid "hgtk log [OPTIONS] [FILE]" #~ msgstr "hgtk log [OPTIONS] [FILE]" #~ msgid "hgtk merge" #~ msgstr "hgtk merge" #~ msgid "hgtk recovery" #~ msgstr "hgtk recovery" #~ msgid "hgtk shelve" #~ msgstr "hgtk shelve" #~ msgid "hgtk synch" #~ msgstr "hgtk synch" #~ msgid "revisions to compare" #~ msgstr "revize k porovnání" #~ msgid "hgtk status [FILE]..." #~ msgstr "hgtk status [FILE]..." #~ msgid "hgtk userconfig" #~ msgstr "hgtk userconfig" #~ msgid "hgtk repoconfig" #~ msgstr "hgtk repoconfig" #~ msgid "hgtk guess" #~ msgstr "hgtk guess" #~ msgid "hgtk remove [FILE]..." #~ msgstr "hgtk remove [FILE]..." #~ msgid "hgtk rename SOURCE [DEST]" #~ msgstr "hgtk rename SOURCE [DEST]" #~ msgid "hgtk revert [FILE]..." #~ msgstr "hgtk revert [FILE]..." #~ msgid "hgtk forget [FILE]..." #~ msgstr "hgtk forget [FILE]..." #~ msgid "hgtk serve [OPTION]..." #~ msgstr "hgtk serve [OPTION]..." #~ msgid "hgtk thgstatus [OPTION]" #~ msgstr "hgtk thgstatus [OPTION]" #~ msgid "hgtk version [OPTION]" #~ msgstr "hgtk version [OPTION]" #~ msgid "[-o] CMD" #~ msgstr "[-o] CMD" #~ msgid "hgtk help [COMMAND]" #~ msgstr "hgtk help [COMMAND]" #~ msgid "Log Details" #~ msgstr "Podrobnosti záznamu" #~ msgid "Columns" #~ msgstr "Sloupce" #~ msgid "Move Up" #~ msgstr "Přesunout nahoru" #~ msgid "Move Down" #~ msgstr "Přesunout dolů" #~ msgid "" #~ "New changesets from the preview bundle are still pending.\n" #~ "\n" #~ "Accept or reject the new changesets?" #~ msgstr "" #~ "Nové changesety z předchozího svazku jsou stále nevyřízené.\n" #~ "\n" #~ "Přijmout nebo odmítnout nové changesety?" #~ msgid "Accept new Changesets" #~ msgstr "Přijmout nové changesety" #~ msgid "&Accept" #~ msgstr "&Přijmout" #~ msgid "&Reject" #~ msgstr "&Odmítnout" #~ msgid " (Bundle Preview)" #~ msgstr " (Náhled svazku)" #~ msgid "Re_fresh" #~ msgstr "Obnovit" #~ msgid "Reload revision history" #~ msgstr "Znovu načíst historii revizí" #~ msgid "Sync Bar" #~ msgstr "Synchronizační lišta" #~ msgid "Load more Revisions" #~ msgstr "Načíst více revizí" #~ msgid "Filter Bar" #~ msgstr "Lišta s filtry" #~ msgid "Choose Details..." #~ msgstr "Vybrat podrobnosti..." #~ msgid "Compact Graph" #~ msgstr "Kompaktní graf" #~ msgid "Color by Branch" #~ msgstr "Barva podle větve" #~ msgid "Ignore Max Diff Size" #~ msgstr "Ignorovat max. velikost diffu" #~ msgid "_Navigate" #~ msgstr "_Navigovat" #~ msgid "Tip" #~ msgstr "Tip" #~ msgid "Working Parent" #~ msgstr "Pracovní rodič" #~ msgid "Revision..." #~ msgstr "Revize..." #~ msgid "Incoming" #~ msgstr "Příchozí" #~ msgid "Outgoing" #~ msgstr "Odchozí" #~ msgid "Push" #~ msgstr "Push" #~ msgid "Email..." #~ msgstr "Email..." #~ msgid "Add Bundle..." #~ msgstr "Přidat svazek..." #~ msgid "Accept Bundle" #~ msgstr "Přijmout svazek" #~ msgid "Reject Bundle" #~ msgstr "Odmítnout svazek" #~ msgid "Revision Number" #~ msgstr "Číslo revize" #~ msgid "Changeset ID" #~ msgstr "ID changesetu" #~ msgid "Summary" #~ msgstr "Souhrn" #~ msgid "Local Date" #~ msgstr "Lokální datum" #~ msgid "UTC Date" #~ msgstr "UTC datum" #~ msgid "Age" #~ msgstr "Stáří" #~ msgid "Tags" #~ msgstr "Tagy" #~ msgid "Invalid date specification" #~ msgstr "Neplatné určení datumu" #~ msgid "Filter" #~ msgstr "Filtr" #~ msgid "%s branch" #~ msgstr "%s větev" #~ msgid "Branch '%s'" #~ msgstr "Větev '%s'" #~ msgid "merges" #~ msgstr "sloučení" #~ msgid "only Merges" #~ msgstr "pouze sloučení" #~ msgid "revision ancestry" #~ msgstr "předchůdce revize" #~ msgid "Ancestry of %s" #~ msgstr "Předchůdci %s" #~ msgid "tagged revisions" #~ msgstr "označené revize" #~ msgid "Tagged Revisions" #~ msgstr "Označené revize" #~ msgid "working parents" #~ msgstr "pracovní rodiče" #~ msgid "heads" #~ msgstr "čela" #~ msgid "Heads" #~ msgstr "Čela" #~ msgid "no Merges" #~ msgstr "žádná sloučení" #~ msgid "_Diff with selected" #~ msgstr "_Diff odsud k vybranému" #~ msgid "Visual Diff with selected" #~ msgstr "VDiff odsud k vybranému" #~ msgid "Email from here to selected..." #~ msgstr "Email odsud k vybranému" #~ msgid "Bundle from here to selected..." #~ msgstr "Svazek odsud k vybranému" #~ msgid "Export Patches from here to selected..." #~ msgstr "Exportovat oprávky odsud k vybranému" #~ msgid "Load more" #~ msgstr "Načíst další" #~ msgid "load more revisions" #~ msgstr "načíst další revize" #~ msgid "load all revisions" #~ msgstr "načíst všechny revize" #~ msgid "Download and view incoming changesets" #~ msgstr "Stáhnout a zobrazit příchozí changesety" #~ msgid "Determine and mark outgoing changesets" #~ msgstr "Označit odchozí changesety" #~ msgid "Push outgoing changesets" #~ msgstr "Vyslat (push) odchozí changesety" #~ msgid "Email outgoing changesets" #~ msgstr "Poslat odhozí changesety emailem" #~ msgid "Stop current transaction" #~ msgstr "Zastavit probíhající transakci" #~ msgid "After Pull:" #~ msgstr "Po akci pull:" #~ msgid "Nothing" #~ msgstr "Nic" #~ msgid "Fetch" #~ msgstr "Fetch" #~ msgid "Configure aliases and after pull behavior" #~ msgstr "Nastavit aliasy a chování po akci pull" #~ msgid "Merges" #~ msgstr "Sloučení" #~ msgid "Hide Merges" #~ msgstr "Skrýt sloučení" #~ msgid "Branch Filter" #~ msgstr "Filtr větví" #~ msgid "Branches..." #~ msgstr "Větve..." #~ msgid "Custom Filter" #~ msgstr "Vlastní filtr" #~ msgid "File Patterns" #~ msgstr "Vzory souborů" #~ msgid "Keywords" #~ msgstr "Klíčová slova" #~ msgid "No remote path specified" #~ msgstr "Vzdálená cesta nebyla určena" #~ msgid "Please enter or select a remote path" #~ msgstr "Zadejte či vyberte vzdálenou cestu" #~ msgid "Accept incoming previewed changesets" #~ msgstr "Přijmout zobrazené příchozí changesety" #~ msgid "Reject incoming previewed changesets" #~ msgstr "Odmítnout zobrazené příchozí changesety" #~ msgid "Reject" #~ msgstr "Odmítnout" #~ msgid "Bundle Preview" #~ msgstr "Náhled svazku" #~ msgid "Open Bundle" #~ msgstr "Otevřít svazek" #~ msgid "No repository selected" #~ msgstr "Nevybrán žádný repositář" #~ msgid "Select a peer repository to compare with" #~ msgstr "Vybrat repozitář pro srovnání" #~ msgid "&Push" #~ msgstr "&Push" #~ msgid "Write bundle to" #~ msgstr "Zapsat svazek do" #~ msgid "%(count)d of %(total)d Revisions" #~ msgstr "%(count)d z %(total)d revizí" #~ msgid "Repository is empty" #~ msgstr "Repozitář je prázdný" #~ msgid "ID" #~ msgstr "ID" #~ msgid "Universal Date" #~ msgstr "Univerzální datum" #~ msgid "Merging in %s" #~ msgstr "Sloučení v %s" #~ msgid "Must supply a target revision" #~ msgstr "Nutno zadat cílovou revizi" #~ msgid "Outstanding uncommitted changes" #~ msgstr "Nevyřízené nekomitované změny" #~ msgid "Merge target (other)" #~ msgstr "Sloučit cíl (jiný)" #~ msgid "Current revision (local)" #~ msgstr "Aktuální revize (lokální)" #~ msgid "Undo" #~ msgstr "Zpět" #~ msgid "Merged successfully" #~ msgstr "Úspěšně sloučeno" #~ msgid "Canceled merging" #~ msgstr "Slučování zrušeno" #~ msgid "Failed to merge" #~ msgstr "Sloučení se nezdařilo" #~ msgid "Select files to add" #~ msgstr "Vyberte přidávané soubory" #~ msgid "Select files to remove" #~ msgstr "Vyberte soubory k odstranění" #~ msgid "path" #~ msgstr "cesta" #~ msgid "Toggle all selections" #~ msgstr "Procházet všemi výběry" #~ msgid "Successfully" #~ msgstr "Úspěšně" #~ msgid "Canceled" #~ msgstr "Zrušeno" #~ msgid "Failed" #~ msgstr "Selhalo" #~ msgid "%s - recovery" #~ msgstr "%s - obnova" #~ msgid "Rollback" #~ msgstr "Vrátit zpět" #~ msgid "Rollback (undo) last transaction to repository (pull, commit, etc)" #~ msgstr "" #~ "Vrátit zpět (zrušit) poslední transakci repozitáře (pull, commit, atp)" #~ msgid "Recover" #~ msgstr "Obnovit" #~ msgid "Recover from interrupted operation" #~ msgstr "Obnovit přerušenou operaci" #~ msgid "Validate repository consistency" #~ msgstr "Potvrdit konzistenci repositáře" #~ msgid "Cannot close now" #~ msgstr "Nyní nelze zavřít" #~ msgid "command is running" #~ msgstr "příkaz je prováděn" #~ msgid "Clean repository '%s' ?" #~ msgstr "Čistit repozitář '%s' ?" #~ msgid "Cannot run now" #~ msgstr "Nyní nelze spustit" #~ msgid "Rename " #~ msgstr "Přejmenovat " #~ msgid "rename error" #~ msgstr "chyba při přejmenování" #~ msgid "Start server" #~ msgstr "Spustit server" #~ msgid "Stop server" #~ msgstr "Zastavit server" #~ msgid "Browse" #~ msgstr "Procházet" #~ msgid "HTTP Port:" #~ msgstr "Port HTTP:" #~ msgid "%s - serve" #~ msgstr "%s - serve" #~ msgid "%s serve - %s" #~ msgstr "%s serve - %s" #~ msgid " - serve" #~ msgstr " - serve" #~ msgid "Confirm Really Exit?" #~ msgstr "Skutečně chcete ukončit program?" #~ msgid "" #~ "Server process is still running\n" #~ "Exiting will stop the server." #~ msgstr "" #~ "Server je stále spuštěný\n" #~ "Příkaz exit jej zastaví." #~ msgid "Abort: %s\n" #~ msgstr "Zrušit: %s\n" #~ msgid "Invalid port 2048..65535" #~ msgstr "Neplatný port 2048..65535" #~ msgid "Defaulting to " #~ msgstr "Implicitně k " #~ msgid "cannot start server: " #~ msgstr "nelze spustit server: " #~ msgid "listening at http://%s%s/%s (%s:%d)\n" #~ msgstr "naslouchání na http://%s%s/%s (%s:%d)\n" #~ msgid "run server in background" #~ msgstr "spustit server na pozadí" #~ msgid "used internally by daemon mode" #~ msgstr "použito interně v režimu daemon" #~ msgid "name to show in web pages (default: working dir)" #~ msgstr "zobrazené jméno na webové stránce (implicitně: pracovní adresář)" #~ msgid "for remote clients" #~ msgstr "pro vzdálené klienty" #~ msgid "web templates to use" #~ msgstr "webové šablony" #~ msgid "template style to use" #~ msgstr "styl šablony" #~ msgid "filtered status" #~ msgstr "filtrovaný stav" #~ msgid "Save As" #~ msgstr "Uložit jako" #~ msgid "Save selected changes" #~ msgstr "Uložit vybrané změny" #~ msgid "Revert checked files" #~ msgstr "Zrušit výběr souborů" #~ msgid "Forget checked files on next commit" #~ msgstr "Vybrané soubory při příštím komitu zapomenout" #~ msgid "refresh" #~ msgstr "Obnovit" #~ msgid "st" #~ msgstr "st" #~ msgid "ms" #~ msgstr "ms" #~ msgid "Text Diff" #~ msgstr "Text diffu" #~ msgid "Save Preview" #~ msgstr "Náhled před uložením" #~ msgid "M: modified" #~ msgstr "M: modifikovaný" #~ msgid "I: ignored" #~ msgstr "I: ignorovaný" #~ msgid "!: deleted" #~ msgstr "!: smazaný" #~ msgid "Rename file to:" #~ msgstr "Přejmenovat soubor na" #~ msgid "Copy file to" #~ msgstr "Kopírovat soubor do" #~ msgid "Nothing Removed" #~ msgstr "Nic nebylo odstraněno" #~ msgid "Remove is not enabled when multiple revisions are specified." #~ msgstr "Je-li určeno více revizí nelze odstranit" #~ msgid "Move is not enabled when multiple revisions are specified." #~ msgstr "Je-li určeno více revizí nelze přemisťovat" #~ msgid "Nothing Moved" #~ msgstr "Nic nebylo přemístěno" #~ msgid "Copy is not enabled when multiple revisions are specified." #~ msgstr "Je-li určeno více revizí nelze kopírovat" #~ msgid "Nothing Copied" #~ msgstr "Nic nebylo kopírováno" #~ msgid "File is larger than the specified max size.\n" #~ msgstr "Soubor je větší než zadaná max. velikost\n" #~ msgid "Nothing Diffed" #~ msgstr "Nic nebylo diffováno" #~ msgid "No diffable files selected" #~ msgstr "Žádné diffovatelné soubory nebyly vybrány" #~ msgid "No revertable files selected" #~ msgstr "Žádné vratitelné soubory nebyly vybrány" #~ msgid "Revert not allowed when viewing revision range." #~ msgstr "Při zobrazení rozsahu revizí není navracení dovoleno" #~ msgid "&Yes (backup changes)" #~ msgstr "&Ano (zálohovat změny)" #~ msgid "Yes (&discard changes)" #~ msgstr "Ano (odhodit změny)" #~ msgid "Nothing Added" #~ msgstr "Nic nebylo přidáno" #~ msgid "No addable files selected" #~ msgstr "Žádné přidatelné soubory nebyly vybrány" #~ msgid "No removable files selected" #~ msgstr "Žádné odstranitelné soubory nebyly vybrány" #~ msgid "Move files to directory..." #~ msgstr "Přemístit soubory do adresáře..." #~ msgid "Cannot move outside repo!" #~ msgstr "Nelze přemístit mimo repozitář!" #~ msgid "" #~ "No movable files selected\n" #~ "\n" #~ "Note: only clean files can be moved." #~ msgstr "" #~ "Žádné přemístitelné soubory nebyly vybrány\n" #~ "\n" #~ "Pozn.: pouze čisté soubory mohou být přemístěny" #~ msgid "Nothing Forgotten" #~ msgstr "Nic nebylo zapomenuto" #~ msgid "No clean files selected" #~ msgstr "Nebyly vybrány žádné čisté soubory" #~ msgid "Delete Errors" #~ msgstr "Smazat chyby" #~ msgid "View other" #~ msgstr "Zobrazit další" #~ msgid "Remove versioned" #~ msgstr "Odstranit verzovaný" #~ msgid "_Copy..." #~ msgstr "Kopírovat..." #~ msgid "Rename..." #~ msgstr "Přejmenovat..." #~ msgid "Restart Merge..." #~ msgstr "Spustit slučování..." #~ msgid "Mark unresolved" #~ msgstr "Označit nerozřešené" #~ msgid "Mark resolved" #~ msgstr "Označit rozřešené" #~ msgid "Restart merge with" #~ msgstr "Restartovat sloučení s" #~ msgid "%s - synchronize" #~ msgstr "%s - synchronizovat" #~ msgid " Pull " #~ msgstr " Pull " #~ msgid "Email local outgoing changes to one or more recipients" #~ msgstr "Odeslat odchozí změny emailem jednomu, či více příjemcům" #~ msgid "Repo:" #~ msgstr "Repo:" #~ msgid "Bundle:" #~ msgstr "Svazek:" #~ msgid "Force pull or push" #~ msgstr "Vynutit pull nebo push" #~ msgid "Target revision:" #~ msgstr "Cílová revize:" #~ msgid "A specific revision up to which you would like to push or pull." #~ msgstr "Až ke které revizi chceme provést pull nebo push" #~ msgid "Name of hg executable on remote machine." #~ msgstr "Jméno příkazu hg, proveditelného na vzdáleném stroji" #~ msgid "Incoming/Outgoing" #~ msgstr "Příchozí / Odchozí" #~ msgid "Show patches" #~ msgstr "Zobrazit oprávky" #~ msgid "Show newest first" #~ msgstr "Nejnovější ukázat první" #~ msgid "Show no merges" #~ msgstr "Sloučení nezobrazovat" #~ msgid "Update to branch tip" #~ msgstr "Aktualizovat k tipu větve" #~ msgid "unknown sort key '%s'" #~ msgstr "neznámý třídící klíč '%s'" #~ msgid "Select Bundle" #~ msgstr "Vyberte svazek" #~ msgid "Bundle (*.hg)" #~ msgstr "Svazek (*.hg)" #~ msgid "Bundle (*)" #~ msgstr "Svazek (*)" #~ msgid "Tag is local" #~ msgstr "Tag je lokální" #~ msgid "Replace existing tag" #~ msgstr "Nahradit existující tag" #~ msgid "Tag input is empty" #~ msgstr "Tag nebyl zadán" #~ msgid "Custom commit message is empty" #~ msgstr "Komentář komitu nebyl zadán" #~ msgid "Tagging completed" #~ msgstr "Označení tagem ukončeno" #~ msgid "Tag \"%s\" has been added" #~ msgstr "Byl přidán tag \"%s\"" #~ msgid "Error in tagging" #~ msgstr "Chyba v zadání tagu" #~ msgid "Tag name is empty" #~ msgstr "Jméno tagu nebylo zadáno" #~ msgid "Please select tag name to remove" #~ msgstr "Vyberte jméno tagu, který má být odstraněn" #~ msgid "Tag \"%s\" has been removed" #~ msgstr "Tag \"%s\" byl odstraněn" #~ msgid "Tag '%s' already exist" #~ msgstr "Tag '%s' již existuje" #~ msgid "Apply" #~ msgstr "Použít" #~ msgid "Enable overlays" #~ msgstr "Povolit překryvy" #~ msgid "Highlight the taskbar icon during activity" #~ msgstr "Během aktivity zvýraznit ikonu hlavního panelu" #~ msgid "" #~ "Graphical merge program for resolving merge conflicts. If left " #~ "unspecified, Mercurial will use the first applicable tool it finds on " #~ "your system or use its internal merge tool that leaves conflict markers " #~ "in place. Chose internal:merge to force conflict markers, internal:" #~ "prompt to always select local or other, or internal:dump to leave files " #~ "in the working directory for manual merging" #~ msgstr "" #~ "Grafický program pro řešení konfliktů při slučování. Není-li určen, " #~ "vybere Mercurial první použitelný nástroj, který nalezne v našem systému, " #~ "nebo použije vlastní nástroj, který konflikty jenom označí. Tuto poslední " #~ "možnost lze přikázat výběrem 'internal:merge'. Volba 'internal:prompt' " #~ "vždy vybere lokální nástroj a volba 'internal:dump' ponechá soubory v " #~ "pracovním adresáři pro ruční sloučení." #~ msgid "Bottom Diffs" #~ msgstr "Diff. panel dole" #~ msgid "" #~ "Show the diff panel below the file list in status, shelve, and commit " #~ "dialogs. Default: False (show diffs to right of file list)" #~ msgstr "" #~ "Zobrazit diffový panel pod seznamem souborů v okně pro status, shelve a " #~ "commit. Implicitně je False (zobrazit diffy vpravo od seznamu)" #~ msgid "" #~ "Redirect stderr to a buffer which is parsed at the end of the process for " #~ "runtime errors. Default: True" #~ msgstr "" #~ "Přesměrovat stderr k bufferu, který je vyhodnocen na konci procesu pro " #~ "chyby při běhu programu. Implicitně je True" #~ msgid "Name associated with commits" #~ msgstr "Jméno spojované s komity" #~ msgid "" #~ "Color changesets by author name. If not enabled, the changes are colored " #~ "green for merge, red for non-trivial parents, black for normal. Default: " #~ "False" #~ msgstr "" #~ "Zabarvit changesety podle jména autora. Není-li povoleno, jsou normální " #~ "změny zabarveny černě, změny netriviálních rodičů červeně a změny pro " #~ "sloučení zeleně. Implicitně je False" #~ msgid "Use Expander" #~ msgstr "Použít expandér" #~ msgid "Show changeset details with an expander" #~ msgstr "Zobrazit detaily changesetu pomocí rozbalovací ikony" #~ msgid "Maximum number of files to list per changeset." #~ msgstr "Maximální počet souborů uvedených v jednom changesetu" #~ msgid "Maximum number of changes to list on the changelog." #~ msgstr "Maximální počet změn uvedených v jednom changelogu." #~ msgid "Character encoding name" #~ msgstr "Název kódování znaků" #~ msgid "Connect to mail server using TLS. Default: False" #~ msgstr "Připojení k mailovému serveru pomocí TLS. Výchozí: False" #~ msgid "Ignore white space when comparing lines. Default: False" #~ msgstr "Ignorovat prázdné znaky při porovnávání řádků. Výchozí: False" #~ msgid "Ignore changes in the amount of white space. Default: False" #~ msgstr "Ignorovat změny v počtu prázdných znaků. Výchozí: False" #~ msgid "Ignore changes whose lines are all blank. Default: False" #~ msgstr "Ignorovat změny s prázdnými řádky. Výchozí: False" #~ msgid "http" #~ msgstr "http" #~ msgid "ssh" #~ msgstr "ssh" #~ msgid "https" #~ msgstr "https" #~ msgid "Edit remote repository path" #~ msgstr "Upravte cestu ke vzdálenému repozitáři" #~ msgid "Folder" #~ msgstr "Složka" #~ msgid "URL Details" #~ msgstr "Detaily URL" #~ msgid "Select Local Folder" #~ msgstr "Vyberte lokální složku" #~ msgid "Alias name is empty" #~ msgstr "Náhradní označení není zadáno" #~ msgid "Please enter alias name" #~ msgstr "Prosím, zadejte náhradní označení" #~ msgid "Overwrite existing '%s' path?" #~ msgstr "Přepsat stávající cestu k '%s' ?" #~ msgid "User global settings" #~ msgstr "Globální nastavení uživatele" #~ msgid "" #~ "Default language for spell check. System language is used if not " #~ "specified. Examples: en, en_GB, en_US" #~ msgstr "" #~ "Výchozí jazyk pro kontrolu pravopisu. Použit systémový, není-li jinak " #~ "určeno. Například: en, en_GB, en_US" #~ msgid "Diff" #~ msgstr "Diff" #~ msgid "TortoiseHg Configure Repository - " #~ msgstr "Konfigurace repozitáře " #~ msgid "TortoiseHg Configure User-Global Settings" #~ msgstr "Konfigurace uživatele" #~ msgid "Exit after saving changes?" #~ msgstr "Ukončit program po uložení změn?" #~ msgid "No Repository Found" #~ msgstr "Repozitář nebyl nalezen" #~ msgid "Path testing cannot work without a repository" #~ msgstr "Testování cesty nelze provést bez repozitáře" #~ msgid "Remote repository paths" #~ msgstr "Cesty ke vzdáleným repozitářům" #~ msgid "Repository Path" #~ msgstr "Cesta k repozitáři" #~ msgid "Suggested" #~ msgstr "Navrženo" #~ msgid "History" #~ msgstr "Historie" #~ msgid "Skipped saving path with no alias" #~ msgstr "Uložení cesty bez aliasu přeskočeno" #~ msgid "#" #~ msgstr "#" #~ msgid "Yes (&keep)" #~ msgstr "Ano (&zachovat)" #~ msgid "Confirm Fold" #~ msgstr "Potvrdit sbalení" #~ msgid "" #~ "Do you want to fold un-applied patch '%(target)s' into current patch " #~ "'%(qtip)s'?" #~ msgstr "" #~ "Chcete připojit nepoužitou oprávku '%(target)s' do stávající oprávky " #~ "'%(qtip)s'?" #~ msgid "_rename" #~ msgstr "_přejmenovat" #~ msgid "_delete" #~ msgstr "_smazat" #~ msgid "Show status" #~ msgstr "Zobrazit status" #~ msgid "Show name" #~ msgstr "Zobrazit jméno" #~ msgid "Enable editable cells" #~ msgstr "Povolit editovatelné buňky" #~ msgid "Show 'qparent'" #~ msgstr "Zobrazit 'qparent'" #~ msgid "Succeed" #~ msgstr "Zdar" #~ msgid "set aside selected changes" #~ msgstr "Odložit vybrané změny" #~ msgid "No changes to shelve" #~ msgstr "Žádné změny k odložení" #~ msgid "Backup all (default)" #~ msgstr "Zálohovat vše (výchozí)" #~ msgid "Backup unrelated changesets (-b/--backup)" #~ msgstr "Zálohovat nepříbuzné changesety (-b/--backup)" #~ msgid "" #~ "Detected uncommitted local changes.\n" #~ "Do you want to discard them and continue?" #~ msgstr "" #~ "Zjištěny nekomitované lokální změny.\n" #~ "Chcete je odhodit a pokračovat?" #~ msgid "&Yes (--force)" #~ msgstr "&Ano (--force)" #~ msgid "Open..." #~ msgstr "Otevřít..." #~ msgid "[canceled by user]\n" #~ msgstr "[zrušeno uživatelem]\n" #~ msgid "Updated successfully" #~ msgstr "Úspěšně aktualizováno" #~ msgid "Canceled updating" #~ msgstr "Aktualizace zrušena" #~ msgid "Failed to update" #~ msgstr "Aktualizace se nezdařila" #~ msgid "Visual Diffs" #~ msgstr "Vizuální diffy" #~ msgid "No repository found here" #~ msgstr "Žádný repositář nenalezen" #~ msgid "changeset " #~ msgstr "changeset " #~ msgid "Unable to delete temp files" #~ msgstr "Nelze smazat dočasné soubory" #~ msgid "&Quit" #~ msgstr "&Skončit" #~ msgid "Unsupported line endings type: %s" #~ msgstr "Nepodporovaný typ konce řádku: %s" #~ msgid "this modifies a binary file (all or nothing)\n" #~ msgstr "toto upravuje binární soubor (vše nebo nic)\n" #~ msgid "this is a binary file\n" #~ msgstr "toto je binární soubor\n" #~ msgid "unhandled transition: %s -> %s" #~ msgstr "neošetřená přeměna: %s -> %s" #~ msgid "user quit" #~ msgstr "ukončení uživatelem" #~ msgid "backup %r as %r\n" #~ msgstr "zálohovat %r jako %r\n" #~ msgid "no changes to shelve\n" #~ msgstr "žádné změny k odložení\n" #~ msgid "removing shelve file\n" #~ msgstr "odstraňován odložený soubor\n" #~ msgid "restoring backup files\n" #~ msgstr "obnovovány záložní soubory\n" #~ msgid "inspect shelved changes only" #~ msgstr "prozkoumat jenom odložené změny" #~ msgid "proceed even if patches do not unshelve cleanly" #~ msgstr "pokračovat, i když se nedaří provést čisté 'unshelve' oprávek" #~ msgid "Repository Explorer" #~ msgstr "Průzkumník repozitáře" #~ msgid "Backout changeset - %s" #~ msgstr "Anulovat revizi - %s" #~ msgid "Backout" #~ msgstr "Anulovat" #~ msgid "Changeset Description" #~ msgstr "Popis revize" #~ msgid "Backout commit message" #~ msgstr "Komentář komitu anulované revize" #~ msgid "Canceled backout" #~ msgstr "Zrušené anulování" #~ msgid "Failed to backout" #~ msgstr "Anulování se nezdařilo" #~ msgid "unknown hunk type: %s" #~ msgstr "neznámý typ porce: %s" #~ msgid "[no hunks to display]" #~ msgstr "[žádné porce k zobrazení]" #~ msgid "_Visual Diff" #~ msgstr "_Vizuální Diff" #~ msgid "_Revert File Contents" #~ msgstr "_Vrátit obsah souboru..." #~ msgid "Diff to second Parent" #~ msgstr "Diff ke druhému rodiči" #~ msgid "Confirm revert file to old revision" #~ msgstr "Potvrdit návrat souboru ke staré revizi" #~ msgid "Branch Operations" #~ msgstr "Větvení" #~ msgid "merging " #~ msgstr "slučování " #~ msgid "_Commit" #~ msgstr "_Commit" #~ msgid "commit" #~ msgstr "commit" #~ msgid "Save commit message at exit?" #~ msgstr "Při ukončení programu uložit komentář commitu?" #~ msgid "Patch Preview" #~ msgstr "Náhled oprávky" #~ msgid "commit to merge one head" #~ msgstr "proveďte komit pro sloučení čela" #~ msgid "Nothing Commited" #~ msgstr "Nic nekomitováno" #~ msgid "" #~ "Unable to undo!\n" #~ "\n" #~ "Tip revision differs from last commit." #~ msgstr "" #~ "Nešlo provést undo!\n" #~ "\n" #~ "Revize \"tip\" se liší od posledního komitu." #~ msgid "Errors during rollback!" #~ msgstr "Chyby během návratu zpět!" #~ msgid "" #~ "The summary line length of %i is greater than %i.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "Délka řádku komentáře %i je větší než %i.\n" #~ "\n" #~ "Ignorovat formátovací pravidla a pokračovat v komitu?" #~ msgid "" #~ "The summary line is not followed by a blank line.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "Řádek komentáře není následován prázdným řádkem.\n" #~ "\n" #~ "Ignorovat formátovací pravidla a pokračovat v komitu?" #~ msgid "" #~ "The following lines are over the %i-character limit: %s.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "Následující řádky překračují limit %i znaků: %s.\n" #~ "\n" #~ "Ignorovat formátovací pravidla a pokračovat v komitu?" #~ msgid "Paste _Filenames" #~ msgstr "Vložit jména souborů" #~ msgid "Message format needs to be configured" #~ msgstr "Je zapotřebí nastavit formát komentáře" #~ msgid "The summary line length of %i is greater than %i" #~ msgstr "Délka komentáře %i je větší než %i" #~ msgid "The summary line is not followed by a blank line" #~ msgstr "Komentář není následován prázdným řádkem" #~ msgid "%s - datamine" #~ msgstr "%s - zkoumání dat" #~ msgid "" #~ "Comma separated list of inclusion patterns. By default, the entire " #~ "repository is searched." #~ msgstr "" #~ "CSV seznam inkluzivních vzorů . Implicitně je prohledáván cely repositář." #~ msgid "" #~ "Comma separated list of exclusion patterns. Exclusion patterns are " #~ "applied after inclusion patterns." #~ msgstr "" #~ "CSV seznam exkluzivních vzorů . Exkluzivní vzory jsou použity po " #~ "inkluzivních vzorech." #~ msgid "Show all matching revisions" #~ msgstr "Zobrazit všechny shodné revize" #~ msgid "File is unrevisioned" #~ msgstr "Soubor není evidován" #~ msgid "Unable to annotate " #~ msgstr "Nelze anotovat " #~ msgid "Recovery" #~ msgstr "Obnova" #~ msgid "revision number, changeset ID, branch or tag" #~ msgstr "číslo revize, ID revize, větev nebo tag" #~ msgid "" #~ "Select language for spell checking.\n" #~ "\n" #~ "Empty is for the default language.\n" #~ "When all text is highlited, the dictionary\n" #~ "is probably not installed.\n" #~ "\n" #~ "examples: en, en_GB, en_US" #~ msgstr "" #~ "Vyberte jazyk pro kontrolu pravopisu.\n" #~ "\n" #~ "Prázdné místo značí implicitní jazyk.\n" #~ "Je-li všechen text zvýrazněn, není patrně\n" #~ "nainstalovaný slovník.\n" #~ "\n" #~ "příklady: en, en_GB, en_US" #~ msgid "Unrevisioned Files" #~ msgstr "Nerevizované soubory" #~ msgid "Show emails which would be sent" #~ msgstr "Ukázat odesílané emaily" #~ msgid "Configure" #~ msgstr "Nastavit" #~ msgid "Configure email settings" #~ msgstr "Upravit nastavení emailu" #~ msgid "Email outgoing changes" #~ msgstr "Poslat odchozí změny emailem" #~ msgid "Email revisions " #~ msgstr "Poslat revize emailem " #~ msgid "" #~ "This feature is only available when sending outgoing changesets. It is " #~ "not applicable with revision ranges." #~ msgstr "" #~ "Tato vlastnost je přístupná pouze při posílání odchozích revizí. Nelze ji " #~ "použít pro rozsah revizí." #~ msgid "Flags:" #~ msgstr "Flagy:" #~ msgid "Patch Series (Bundle) Description" #~ msgstr "Popis serie (svazku) oprávek" #~ msgid "TortoiseHg Init" #~ msgstr "TortoiseHg Init" #~ msgid "Destination path is empty" #~ msgstr "Cesta k destinaci je prázdná" #~ msgid "revision to merge with" #~ msgstr "revize pro sloučení" #~ msgid "show the command options" #~ msgstr "zobrazit možnosti příkazu" #~ msgid "Di_splay Change" #~ msgstr "Zobrazit změnu" #~ msgid "_Merge with..." #~ msgstr "_Sloučit s ..." #~ msgid "Strip Revision..." #~ msgstr "Odtrhnout revizi..." #~ msgid "Transplant Revision range to local" #~ msgstr "Přenést rozsah revizí k lokální" #~ msgid "Rebase on top of selected" #~ msgstr "Přeskupit nad vybraný" #~ msgid "Select common ancestor revision" #~ msgstr "Vybrat revizi splečného předka" #~ msgid "Load all" #~ msgstr "Načíst vše" #~ msgid "Accept changes from Bundle preview" #~ msgstr "Přijmout změny z náhledu svazku" #~ msgid "Reject changes from Bundle preview" #~ msgstr "Odmítnout změny z náhledu svazku" #~ msgid "Pull incoming changesets" #~ msgstr "Stáhnout (pull) příchozí changesety" #~ msgid "" #~ "Forced push to remote repository\n" #~ "%s\n" #~ "(creating new heads in remote if needed)?" #~ msgstr "" #~ "Vynucený push do vzdáleného repozitáře\n" #~ "%s\n" #~ "(případně vytvořit nová čela)?" #~ msgid "" #~ "Forced push to repository\n" #~ "%s\n" #~ "(creating new heads if needed)?" #~ msgstr "" #~ "Vynucený push do repozitáře\n" #~ "%s\n" #~ "(případně vytvořit nová čela)?" #~ msgid "Confirm Revert All Files" #~ msgstr "Potvrdit návrat do předchozího stavu u všech souborů" #~ msgid "" #~ "Revert all files to revision %d?\n" #~ "This will overwrite your local changes" #~ msgstr "" #~ "Vrátit všechny soubory k revizi %d?\n" #~ "Lokální změny budou přepsány" #~ msgid "Save patches to" #~ msgstr "Uložit oprávky do" #~ msgid "Confirm Rebase Revision" #~ msgstr "Potvrdit revizi přeskupení" #~ msgid "Rebase revision %d on top of %d?" #~ msgstr "Přeskupit revizi %d nad %d?" #~ msgid "Save patch to" #~ msgstr "Uložit oprávku do" #~ msgid "" #~ "To complete merging, you need to commit merged files in working " #~ "directory.\n" #~ "\n" #~ "Do you want to exit?" #~ msgstr "" #~ "Sloučení lze ukončit až po komitu slučovaných souborů v pracovním " #~ "adresáři.\n" #~ "\n" #~ "Přejete si ukončit akci?" #~ msgid "Confirm undo merge" #~ msgstr "Potvrďte odvolání sloučení" #~ msgid "Clean checkout of original revision?" #~ msgstr "Čisté získání originální revize?" #~ msgid "Undo successfully" #~ msgstr "Úspěšně odvoláno" #~ msgid "Canceled undo" #~ msgstr "Odvolání zrušeno" #~ msgid "Failed to undo" #~ msgstr "Odvolání se nezdařilo" #~ msgid "Select files to forget" #~ msgstr "Vyberte soubory k zapomenutí" #~ msgid "Select files to revert" #~ msgstr "Vyberte soubory pro revert" #~ msgid "Stop the hg operation" #~ msgstr "Zastavit operaci hg" #~ msgid "Clean checkout, undo all changes" #~ msgstr "Čisté získání, vrátit všechny změny" #~ msgid "Confirm clean repository" #~ msgstr "Potvrdit čistý repozitář" #~ msgid "Confirm rollback repository" #~ msgstr "Potvrdit návrat zpět v repozitáři" #~ msgid "Rollback repository '%s' ?" #~ msgstr "Návrat zpět v repozitáři '%s' ?" #~ msgid "[command interrupted]" #~ msgstr "[provádění příkazu přerušeno]" #~ msgid "Launch browser to view repository" #~ msgstr "Spustit prohlížeč k zobrazení repozitáře" #~ msgid "Add checked files" #~ msgstr "Přidat vybrané soubory" #~ msgid "Move checked files to other directory" #~ msgstr "Přemístit vybrané soubory do jiného adresáře" #~ msgid "View" #~ msgstr "Zobrazení" #~ msgid "Hunk Selection" #~ msgstr "Výběr porce" #~ msgid "?: unknown" #~ msgstr "?: neznámý" #~ msgid "A: added" #~ msgstr "A: přidaný" #~ msgid "C: clean" #~ msgstr "C: čistý" #~ msgid "R: removed" #~ msgstr "R: odstraněný" #~ msgid "View '%s'" #~ msgstr "Zobrazení '%s'" #~ msgid "Hunk selection is disabled for this file.\n" #~ msgstr "Výběr porcí není pro tento soubor umožněn.\n" #~ msgid "Nothing Reverted" #~ msgstr "Nic nebylo vráceno k předchozímu stavu" #~ msgid "Confirm Delete Unrevisioned" #~ msgstr "Potvrdit smazání nerevizovaných souborů" #~ msgid "Delete the following unrevisioned files?" #~ msgstr "Smazat následující nerevizované soubory?" #~ msgid "_Guess Rename..." #~ msgstr "_Uhodnout změnu jména..." #~ msgid "" #~ "The parents have changed since the last refresh.\n" #~ "Continue anyway?" #~ msgstr "" #~ "Rodiče se změnili od poslední obnovy.\n" #~ "Přesto pokračovat?" #~ msgid "Display changes that can be pulled from selected repository" #~ msgstr "Zobrazit změny, které mohou být staženy z vybraného repozitáře" #~ msgid "Pull changes from selected repository" #~ msgstr "Stáhnout (pull) změny z vybraného repozitáře" #~ msgid "Push local changes to selected repository" #~ msgstr "Vyslat (push) lokální změny do vybraného repozitáře" #~ msgid "Shelve uncommited changes" #~ msgstr "Odložit nekomitované změny" #~ msgid "Advanced Options" #~ msgstr "Pokročilé možnosti" #~ msgid "Run even when remote repository is unrelated." #~ msgstr "Spustit i když vzdálený repozitář není příbuzný" #~ msgid "Fork hgtk" #~ msgstr "Dělit hgtk" #~ msgid "Unapply last patch" #~ msgstr "Zrušit použití poslední oprávky" #~ msgid "Apply next patch" #~ msgstr "Použít příští oprávku" #~ msgid "restore shelved changes" #~ msgstr "Obnovit odložené změny" #~ msgid "Please select diff chunks to shelve" #~ msgstr "Prosím vyberte porce diffů pro odložení (shelve)" #~ msgid "Shelve file exists!" #~ msgstr "Odložený soubor existuje!" #~ msgid "Unshelve Error" #~ msgstr "Chyba při unshelve" #~ msgid "Strip" #~ msgstr "Odtrhnout" #~ msgid "Stripped successfully" #~ msgstr "Úspěšně odtrženo" #~ msgid "Canceled stripping" #~ msgstr "Odtržení zrušeno" #~ msgid "Failed to strip" #~ msgstr "Otržení selhalo" #~ msgid "Saved at: %s" #~ msgstr "Uloženo v: %s" #~ msgid "" #~ "Detected uncommitted local changes in working tree.\n" #~ "Please select to continue:\n" #~ "\n" #~ msgstr "" #~ "Zjištěny nekomitované lokální změny v pracovním stromu.\n" #~ "Nutno provést jejich výběr:\n" #~ "\n" #~ msgid "Shelve - launch Shelve tool and continue" #~ msgstr "Odložit - spustit nástroj pro shelve a pokračovat" #~ msgid "invalid dialog result: %s" #~ msgstr "neplatný výsledek dialogu: %s" #~ msgid "Close diff tools and try again, or quit to leak files?" #~ msgstr "" #~ "Zavřít nástroje pro diffy a zkusit znova, nebo ukončit a uvolnit soubory?" #~ msgid "unknown patch content: %r" #~ msgstr "neznámý obsah oprávky: %r" #~ msgid "" #~ "total: %d hunks (%d changed lines); selected: %d hunks (%d changed lines)" #~ msgstr "" #~ "celkem: %d porcí (%d změněných řádků), vybráno: %d porcí (%d změněných " #~ "řádků)" #~ msgid "%d hunks, %d lines changed\n" #~ msgstr "%d porcí, %d řádků změněno\n" #~ msgid "shelve changes to %s?" #~ msgstr "odložit změny k %s?" #~ msgid "shelve can only be run interactively" #~ msgstr "odložení lze provést pouze interaktivně" #~ msgid "shelve data already exists" #~ msgstr "odkládaná data již existují" #~ msgid "applying patch\n" #~ msgstr "použití oprávky\n" #~ msgid "saving patch to shelve\n" #~ msgstr "oprávka ukládána k odložení\n" #~ msgid "restoring %r to %r\n" #~ msgstr "%r se obnovuje k %r\n" #~ msgid "applying shelved patch\n" #~ msgstr "použití odložené oprávky\n" #~ msgid "unshelve completed\n" #~ msgstr "unshelve dokončeno\n" #~ msgid "overwrite existing shelve data" #~ msgstr "přepsat stávajícíí odložená data" #~ msgid "append to existing shelve data" #~ msgstr "připojit ke stávajícím odloženým datům" #~ msgid "A new version of TortoiseHg is ready for download!" #~ msgstr "Nová verze TortoiseHg je připravena ke stažení" #~ msgid "Copyright 2008-2010 Steve Borho and others" #~ msgstr "Copyright 2008-2010 Steve Borho a další" #~ msgid "unexpected type: %s" #~ msgstr "neočekávaný typ: %s" #~ msgid "Old name:" #~ msgstr "Starý název" #~ msgid "type" #~ msgstr "typ" #~ msgid "browser" #~ msgstr "prohlížeč" #~ msgid "Diff to _local" #~ msgstr "VDiff k aktuální" #~ msgid "_View at Revision" #~ msgstr "_Zobrazit v revizi" #~ msgid "_Save at Revision..." #~ msgstr "_Uložit v revizi ..." #~ msgid "_Annotate File" #~ msgstr "Anotace souboru" #~ msgid "Enable _Wordwrap" #~ msgstr "Umožnit zalomení řádků" #~ msgid "Bundle..." #~ msgstr "Svazek..." #~ msgid "Select a Mercurial Bundle" #~ msgstr "Veberte svazek Mercurialu" #~ msgid "Mercurial bundles" #~ msgstr "Svazky Mercurialu" #~ msgid "Always Show Output" #~ msgstr "Vždy zobrazit výstup" #~ msgid "_Diff" #~ msgstr "VDiff" #~ msgid "_Remove" #~ msgstr "_Odebrat" #~ msgid "undo recent commit" #~ msgstr "zrušit poslední komit" #~ msgid "Show/Hide Patch Queue" #~ msgstr "Ukázat/skrýt frontu oprávek" #~ msgid "Auto-includes:" #~ msgstr "Automaticky připojeno:" #~ msgid "Not at head" #~ msgstr "Nikoliv v čele" #~ msgid "Patch Contents" #~ msgstr "Obsah oprávky" #~ msgid "Confirm Add/Remove" #~ msgstr "Potvďte Přidat/Odebrat" #~ msgid "Add/Remove the following files?" #~ msgstr "Přidat/Odebrat následující soubory?" #~ msgid "Message format configuration error" #~ msgstr "Chyba v nastavení formátu sdělení" #~ msgid "Aborted committing" #~ msgstr "Komitování zrušeno" #~ msgid "Failed to commit" #~ msgstr "Komit se nezdařil" #~ msgid "Committing changes..." #~ msgstr "Komitování změn..." #~ msgid "C_onfigure Format..." #~ msgstr "Nastavit formát..." #~ msgid "Info Required" #~ msgstr "Požadováno Info" #~ msgid "Updating..." #~ msgstr "Aktualizace..." #~ msgid "Selecting %(sel)d of %(total)d, displaying all items" #~ msgstr "Vybráno %(sel)d z %(total)d, zobrazeno vše" #~ msgid "Selecting %(sel)d, displaying %(count)d of %(total)d items" #~ msgstr "Vybráno %(sel)d, zobrazeno %(count)d z %(total)d položek" #~ msgid "Displaying all items" #~ msgstr "Zobrazeny všechny položky" #~ msgid "_View File at Revision" #~ msgstr "Zobrazit soubor v revizi" #~ msgid "_Zoom to Change" #~ msgstr "Zaměřit na změnu" #~ msgid "_Annotate Parent" #~ msgstr "Anotovat rodiče" #~ msgid "Index" #~ msgstr "Index" #~ msgid "unknown mode name: %s" #~ msgstr "neznámý název režimu: %s" #~ msgid "Ambiguous Revision" #~ msgstr "Nejednoznačná revize" #~ msgid "Differences from Source to Dest" #~ msgstr "Rozdíly mezi zdrojem a destinací" #~ msgid "Send emails" #~ msgstr "Poslat email" #~ msgid "Email Mercurial Patches" #~ msgstr "Poslat emailem oprávky Hg" #~ msgid "Info required" #~ msgstr "Požadováno Info" #~ msgid "mpatch error" #~ msgstr "chyba mpatch" #~ msgid "mpatch expects *.rej file argument\n" #~ msgstr "mpatch očekává argument *.rej\n" #~ msgid "%s does not exist\n" #~ msgstr "%s neexistuje\n" #~ msgid "import to the repository" #~ msgstr "importovat do repozitáře" #~ msgid "hgtk import [OPTION] [SOURCE]..." #~ msgstr "hgtk import [OPCE] [ZDROJ]..." #~ msgid "hgtk shellconfig" #~ msgstr "hgtk shellconfig" #~ msgid "Tagged" #~ msgstr "Značené" #~ msgid "Ancestry" #~ msgstr "Předci" #~ msgid "Reset _Marks" #~ msgstr "Nastavit značky" #~ msgid "Reset revision marks" #~ msgstr "Nastavit značky revizí" #~ msgid "Launch commit tool" #~ msgstr "Spustit nástroj pro komit" #~ msgid "Launch data mining tool" #~ msgstr "Spustit nástroj pro zkoumání dat" #~ msgid "Launch recovery tool" #~ msgstr "Spustit nástroj pro obnovu" #~ msgid "Launch web server" #~ msgstr "Spustit webový server" #~ msgid "Launch shelve tool" #~ msgstr "Spustit nástroj pro shelve" #~ msgid "Branches" #~ msgstr "Větve" #~ msgid "Identify" #~ msgstr "Identifikovat" #~ msgid "Previously Selected" #~ msgstr "Dříve vybraný" #~ msgid "Import..." #~ msgstr "Importovat..." #~ msgid "Configure Paths..." #~ msgstr "Nastavit cesty..." #~ msgid "_Filter" #~ msgstr "_Filtr" #~ msgid "Custom" #~ msgstr "Uživatelský" #~ msgid "Revision Range" #~ msgstr "Rozsah revizí" #~ msgid "Submitted" #~ msgstr "Postoupeno" #~ msgid "Unable to find rev %s" #~ msgstr "Nelze nalézt rev %s" #~ msgid "Revision Number/ID" #~ msgstr "Číslo revize/ID" #~ msgid "Branch Name" #~ msgstr "Název větve" #~ msgid "Changes" #~ msgstr "Změny" #~ msgid "'%s' filter:" #~ msgstr "'%s' filtr:" #~ msgid "Current patch: %s, " #~ msgstr "Aktuální cesta: %s, " #~ msgid "%(count)d of %(total)d applied patches" #~ msgstr "%(count)d z %(total)d použitých oprávek" #~ msgid "Visualize Change" #~ msgstr "Otevřít VDiff" #~ msgid "_Copy Hash" #~ msgstr "Kopírovat hash" #~ msgid "Pull to Here" #~ msgstr "Pull sem" #~ msgid "Push to Here" #~ msgstr "Push sem" #~ msgid "Export" #~ msgstr "Exportovat" #~ msgid "Tag" #~ msgstr "Tag" #~ msgid "Mercurial Queues" #~ msgstr "Fronty Mercurialu" #~ msgid "Transp_lant to Local" #~ msgstr "Přemístit k aktuální" #~ msgid "_Archive..." #~ msgstr "Archivovat revizi..." #~ msgid "Add/Remove _Tag..." #~ msgstr "Přidat/odebrat_tag..." #~ msgid "Add/Move/Remove B_ookmark..." #~ msgstr "Přidat/Přemístit/Odebrat záložku..." #~ msgid "Rename Bookmark..." #~ msgstr "Přejmenovat záložku" #~ msgid "Import Revision to MQ" #~ msgstr "Importovat revizi do MQ" #~ msgid "Reset" #~ msgstr "Vrátit" #~ msgid "Mark as Good" #~ msgstr "Označit jako dobré" #~ msgid "Mark as Bad" #~ msgstr "Označit jako špatné" #~ msgid "Skip Testing" #~ msgstr "Přeskočit testování" #~ msgid "Import from here to selected to MQ" #~ msgstr "Importovat výběr odsud k vybrané do MQ" #~ msgid "Import patches" #~ msgstr "Importovat oprávky" #~ msgid "Applying bundle..." #~ msgstr "Použití svazku..." #~ msgid "Applying bundle" #~ msgstr "Použití svazku" #~ msgid "%d incoming changesets" #~ msgstr "%d příchozích changesetů" #~ msgid "Aborted incoming" #~ msgstr "Zrušené příchozí" #~ msgid "No incoming changesets" #~ msgstr "Žádné příchozí changesety" #~ msgid "Checking incoming changesets..." #~ msgstr "Ověření příchozích changesetů..." #~ msgid "Finished pull with rebase" #~ msgstr "Pull ukončený přeskupením" #~ msgid "Finished pull" #~ msgstr "Ukončený pull" #~ msgid "No changesets to pull" #~ msgstr "Žádné changesety pro pull" #~ msgid "Aborted pull" #~ msgstr "Zrušená akce pull" #~ msgid "Pulling changesets..." #~ msgstr "Stahování changestů..." #~ msgid "Aborted outgoing" #~ msgstr "Zrušené odchozí" #~ msgid "Checking outgoing changesets..." #~ msgstr "Ověření odchozích changesetů..." #~ msgid "Confirm Forced Push to Remote Repository" #~ msgstr "Potvrdit vynucený push do vzdáleného repozitáře" #~ msgid "Forced &Push" #~ msgstr "Vynucený push" #~ msgid "Confirm Forced Push" #~ msgstr "Potvrdit vynucený push" #~ msgid "Finished push" #~ msgstr "Ukončený push" #~ msgid "Aborted push" #~ msgstr "Zrušený push" #~ msgid "Pushing changesets..." #~ msgstr "Odesílání changesetů..." #~ msgid "unknown dnd dest: %s" #~ msgstr "neznámá dnd dest: %s" #~ msgid "Finish importing" #~ msgstr "Ukončit import" #~ msgid "Aborted importing" #~ msgstr "Zrušený import" #~ msgid "Failed to import" #~ msgstr "Import se nezdařil" #~ msgid "Importing" #~ msgstr "Import" #~ msgid "Importing to Patch Queue..." #~ msgstr "Import do fronty oprávek..." #~ msgid "Finished push to revision %s" #~ msgstr "Ukončený push do revize %s" #~ msgid "Pushing changesets to revision %s..." #~ msgstr "Poslání changesetů do revize %s..." #~ msgid "Push to %s" #~ msgstr "Push do %s" #~ msgid "Finished pull to revision %s" #~ msgstr "Ukončený pull do revize %s" #~ msgid "Pulling changesets to revision %s..." #~ msgstr "Stahování changesetů do revize %s..." #~ msgid "Pull to %s" #~ msgstr "Pull do %s" #~ msgid "Rev/ID" #~ msgstr "Rev/ID" #~ msgid "Cannot merge" #~ msgstr "Nelze sloučit" #~ msgid "Uncommitted local changes" #~ msgstr "Nekomitované lokální změny" #~ msgid "Changelist:" #~ msgstr "Seznam změn:" #~ msgid "Submit" #~ msgstr "Postoupit" #~ msgid "Configure web settings" #~ msgstr "Upravit nastavení webu" #~ msgid "name of access log file to write to" #~ msgstr "název přístupového záznamového souboru" #~ msgid "name of error log file to write to" #~ msgstr "název chybového záznamového souboru" #~ msgid "prefix path to serve from (default: server root)" #~ msgstr "lo_prefix path to serve from (default: server root)" #~ msgid "name of file to write process ID to" #~ msgstr "název souboru pro zápis ID procesu" #~ msgid "<- Top" #~ msgstr "<- Top" #~ msgid "Sub ->" #~ msgstr "Sub ->" #~ msgid "Show the taskbar icon (restart needed)" #~ msgstr "Zobrazit ikonu v hlavním panelu (nutný restart)" #~ msgid "Visual diff checked files" #~ msgstr "VDiff vybraných souborů" #~ msgid "Remove or delete checked files" #~ msgstr "Odebrat nebo smazat vybrané soubory" #~ msgid "Shelf Preview" #~ msgstr "Náhled almárky" #~ msgid "S: subrepo" #~ msgstr "S: subrepo" #~ msgid "===== Diff to first parent %d:%s =====\n" #~ msgstr "===== Diff k prvnímu rodiči %d:%s =====\n" #~ msgid "" #~ "\n" #~ "===== Diff to second parent %d:%s =====\n" #~ msgstr "" #~ "\n" #~ "===== Diff ke druhému rodiči %d:%s =====\n" #~ msgid "not up to date" #~ msgstr "zastaralé" #~ msgid "unknown field name: %s" #~ msgstr "neznámý název pole: %s" #~ msgid "invalid alignment value: %s" #~ msgstr "neplatná hodnota přiřazení: %s" #~ msgid "Configure peer repository paths" #~ msgstr "Nastavit cesty k repozitářům" #~ msgid "Toggle _Wordwrap" #~ msgstr "Zalamování _řádků" #~ msgid "Please enter tag name" #~ msgstr "Zadejte prosím název tagu" #~ msgid "Specify the visual editor used to view files, etc" #~ msgstr "Určit grafický editor pro zobrazení souborů, ap" #~ msgid "" #~ "The editor to use during a commit and other instances where Mercurial " #~ "needs multiline input from the user. Used by command line commands, " #~ "including patch import." #~ msgstr "" #~ "Editor, použitý při komitu a v dalších případech, kdy Mercurial vyžaduje " #~ "víceřádkový vstup od uživatele. Používá se pro příkazy z příkazového " #~ "řádku." #~ msgid "" #~ "Specify the number of spaces that tabs expand to in various TortoiseHg " #~ "windows. Default: Not expanded" #~ msgstr "" #~ "Určit počet mezer pro šířku záložky v různých oknech TortoiseHg. " #~ "Implicitně je: Not expanded" #~ msgid "Capture stderr" #~ msgstr "Zachytit stderr" #~ msgid "" #~ "Maximum length of the commit message summary line. If set, TortoiseHg " #~ "will issue a warning if the summary line is too long or not separated by " #~ "a blank line. Default: 0 (unenforced)" #~ msgstr "" #~ "Maximální délka souhrnného řádku komitu. Aplikace vydá varování při " #~ "překročení zadané délky, nebo není-li souhrnný řádek oddělen od " #~ "případného dalšího textu prázdným řádkem. Implicitní nastavení je: 0 " #~ "(nevynuceno)" #~ msgid "Toolbar Style" #~ msgstr "Styl nástrojové lišty" #~ msgid "" #~ "Repository name to use in the web interface. Default is the working " #~ "directory." #~ msgstr "" #~ "Název repozitáře pro webové rozhraní. Implicitně to je pracovní adresář." #~ msgid "Coloring Style" #~ msgstr "Styl zabarvení" #~ msgid "" #~ "Adjust the coloring style of diff lines in the changeset viewer. Default: " #~ "foreground" #~ msgstr "" #~ "Úprava stylu zabarvení diffových řádků v prohlížeči changesetů. " #~ "Implicitně: foreground" #~ msgid "_Edit" #~ msgstr "_Editovat" #~ msgid "_Test" #~ msgstr "_Testovat" #~ msgid "Set as _default" #~ msgstr "Nastavit jako výchozí" #~ msgid "Insufficient access rights, reverting to read-onlymode." #~ msgstr "Nedostatečná přístupová oprávnění, použit režim jen pro čtení" #~ msgid "Unable to parse a config file" #~ msgstr "Nejde analyzovat konfigurační soubor" #~ msgid "" #~ "%s\n" #~ "Reverting to read-only mode." #~ msgstr "" #~ "%s\n" #~ "Omezeno na režim jen pro čtení." #~ msgid "Import" #~ msgstr "Import" #~ msgid "Imported successfully" #~ msgstr "Úspěšně importováno" #~ msgid "Canceled importing" #~ msgstr "Import zrušen" #~ msgid "Confirm Close" #~ msgstr "Potvrďte ukončení" #~ msgid "Do you want to close?" #~ msgstr "Chcete skončit?" #~ msgid "Select Patches" #~ msgstr "Vyberte oprávky" #~ msgid "Select Directory contains patches:" #~ msgstr "Vyberte Adresář obsahuje oprávky:" #~ msgid "%s will be imported to the" #~ msgstr "%s bude importován do" #~ msgid "unexpected destination name: %s" #~ msgstr "nečekaný název destinace: %s" #~ msgid "Patch" #~ msgstr "Oprávka" #~ msgid "Top" #~ msgstr "Nahoře" #~ msgid "Up" #~ msgstr "Nahoru" #~ msgid "Down" #~ msgstr "Dolu" #~ msgid "Bottom" #~ msgstr "Dole" #~ msgid "Unshelve" #~ msgstr "Unshelve" #~ msgid "Shelf Contents" #~ msgstr "Obsah almárky" #~ msgid "_Shelve" #~ msgstr "Shelve" #~ msgid "%s changesets" #~ msgstr "%s changesetů" #~ msgid "%s will be stripped" #~ msgstr "%s bude odtrženo" #~ msgid "Always show log" #~ msgstr "Vždy ukázat záznam" #~ msgid "cleaning up temp directory\n" #~ msgstr "čistí se dočasný adresář\n" #~ msgid "revisions %d to %d" #~ msgstr "revize %d až %d" #~ msgid "Try &Again" #~ msgstr "Zkuste znovu" #~ msgid "removing shelved patches\n" #~ msgstr "odstraňovány odložené oprávky\n" #~ msgid "mark new/missing files as added/removed before shelving" #~ msgstr "označit nové/chybějící soubory jako přidané/odebrané před odložením" #~ msgid "patching file %s\n" #~ msgstr "oprávka souboru %s\n" #~ msgid "bad hunk #%d %s (%d %d %d %d)" #~ msgstr "špatná porce #%d %s (%d %d %d %d)" #~ msgid "file %s already exists\n" #~ msgstr "soubor %s již existuje\n" #~ msgid "Hunk #%d FAILED at %d\n" #~ msgstr "Porce #%d SELHALA při %d\n" #~ msgid "bad hunk #%d" #~ msgstr "špatná porce #%d" #~ msgid "bad hunk #%d old text line %d" #~ msgstr "špatná porce #%d starý řádek textu %d" #~ msgid "could not extract binary patch" #~ msgstr "nelze extrahovat binární oprávku" #~ msgid "binary patch is %d bytes, not %d" #~ msgstr "binární oprávka má %d bytů, nikoli %d" #~ msgid "unable to strip away %d dirs from %s" #~ msgstr "nejde odtrhnout %d adresářů z %s" #~ msgid "unable to find %s or %s for patching" #~ msgstr "nelze nalézt %s ani %s pro oprávku" #~ msgid "malformed patch %s %s" #~ msgstr "špatně vytvořená oprávka %s %s" #~ msgid "No valid hunks found" #~ msgstr "Nenalezeny platné porce" #~ msgid "Unable to save file" #~ msgstr "Soubor nejde uložit" #~ msgid "neither parent is a head, commit to add a new head" #~ msgstr "žádný rodič není čelem, nové čelo přidáte v akci commit" #~ msgid "Failed to preview, a bundle file unrelated to this repository" #~ msgstr "Náhled se nezdařil, soubor se svazkem nesouvisí s tímto repozitářem" #~ msgid "Failed to preview, not a Mercurial bundle file" #~ msgstr "Náhled se nezdařil, nejedná se o soubor se svazkem v Mercurialu" #~ msgid "tag '%s' does not exist" #~ msgstr "tag '%s' neexistuje" #~ msgid "tag '%s' is not a local tag" #~ msgstr "tag '%s' není lokálním tagem" #~ msgid "tag '%s' is not a global tag" #~ msgstr "tag '%s' není globálním tagem" #~ msgid "" #~ "Font used in changeset viewer and commit log text. Default: monospace 10" #~ msgstr "" #~ "Font použitý v prohlížeči changesetů a v zápisech při komitu. Implicitně: " #~ "monospace 10" #~ msgid "Diff Text" #~ msgstr "Text diffu" #~ msgid "" #~ "Font used for diffs in status and commit tools. Default: monospace 10" #~ msgstr "" #~ "Font použitý pro diffy v okně pro status a komit. Implicitně: monospace 10" #~ msgid "File List" #~ msgstr "Seznam souborů" #~ msgid "Font used in file lists in status and commit tools. Default: sans 9" #~ msgstr "" #~ "Font použitý v seznamech souborů v oknech pro status a komit. Implicitně: " #~ "sans 9" #~ msgid "Command Output" #~ msgstr "Výstup příkazu" #~ msgid "Font used in command output window. Default: monospace 10" #~ msgstr "Font použitý v okně s výstupem příkazu. Implicitně: monospace 10" #~ msgid "Japanese on Windows" #~ msgstr "Japonsky ve Windows" #~ msgid "Font" #~ msgstr "Font" #~ msgid "Theme default fonts" #~ msgstr "Implicitní fonty motivu" #~ msgid "Preset fonts:" #~ msgstr "Nastavené fonty:" #~ msgid "Custom fonts:" #~ msgstr "Uživatelské fonty:" #~ msgid " - Select Preset -" #~ msgstr " - Vybrat nastavené -" #~ msgid "Do you want to delete '%(name)s'?" #~ msgstr "Chcete smazat '%(name)s'?" #~ msgid "Do you want to delete these patches?" #~ msgstr "Chcete smazat tyto oprávky?" #~ msgid "" #~ "Do you want to fold following un-applied patches into the current patch " #~ "'%(qtip)s'?" #~ msgstr "" #~ "Chcete zahrnout následující nepoužité oprávky do stávající oprávky " #~ "'%(qtip)s'?" #~ msgid "Hunk #%d succeeded at %d with fuzz %d (offset %d lines).\n" #~ msgstr "Porce #%d úspěšná v %d s nejasnými %d (offset %d řádky).\n" #~ msgid "Hunk #%d succeeded at %d (offset %d lines).\n" #~ msgstr "Porce #%d úspěšná v %d (offset %d řádky).\n" #~ msgid "Compressed zip archives" #~ msgstr "Komprimované archivy zip" #~ msgid "_File History" #~ msgstr "Historie souboru" #~ msgid "_View" #~ msgstr "Zobrazení" #~ msgid "_Operations" #~ msgstr "Operace" #~ msgid "_Add" #~ msgstr "Přidat" #~ msgid "_Forget" #~ msgstr "Zapomenout" #~ msgid "_Commit (+1 head)" #~ msgstr "Commit (+1 head)" #~ msgid "_Commit (-1 head)" #~ msgstr "Commit (-1 head)" #~ msgid "_Tools" #~ msgstr "Nástroje" #~ msgid "Serve" #~ msgstr "Server" #~ msgid "_Help" #~ msgstr "Nápověda" #~ msgid "_Perforce" #~ msgstr "Perforce" #~ msgid "Pending" #~ msgstr "Nevyřízený" #~ msgid "Load all Revisions" #~ msgstr "Načíst všechny" #~ msgid "Reset Marks" #~ msgstr "Obnovit původní značení" #~ msgid "_Synchronize" #~ msgstr "Synchronizovat" #~ msgid "Finding pending Perforce changelists..." #~ msgstr "Nalezeny nevyřízené changelisty Perforce..." #~ msgid "Pending Perforce changelists" #~ msgstr "Nevyřízené changelisty Perforce" #~ msgid "Perforce changelist %s" #~ msgstr "Perforce changelist %s" #~ msgid "Aborted p4identify" #~ msgstr "p4identify zrušeno" #~ msgid "Unable to identify Perforce tip" #~ msgstr "Nelze určit tip Perforce" #~ msgid "Finding tip Perforce changelist..." #~ msgstr "Nalezen tip Perforce changelist..." #~ msgid "Identifying Perforce tip" #~ msgstr "Určení Perforce tip" #~ msgid "_Update..." #~ msgstr "Aktualizovat..." #~ msgid "_Revert" #~ msgstr "Revert (!)" #~ msgid "Bisect" #~ msgstr "Bisect" #~ msgid "_Export Patch..." #~ msgstr "Export oprávky..." #~ msgid "E_mail Patch..." #~ msgstr "Email oprávky..." #~ msgid "_Bundle rev:tip..." #~ msgstr "Svazek rev:tip..." #~ msgid "Bundling from %(base)s to %(rev)s..." #~ msgstr "Svazek od %(base)s k %(rev)s..." #~ msgid "Bundling from %(base)s to tip..." #~ msgstr "Svazek od %(base)s k tipu..." #~ msgid "Finish bundling" #~ msgstr "Konec tvorby svazku" #~ msgid "Aborted bundling" #~ msgstr "Tvorba svazku zrušena" #~ msgid "Failed to bundle" #~ msgstr "Tvorba svazku selhala" #~ msgid "Bundling" #~ msgstr "Tvorba svazku" #~ msgid "_Ignore" #~ msgstr "Ignorovat" #~ msgid "_Delete unversioned" #~ msgstr "Smazat neverzovaný" #~ msgid "invalid pack direction: %s" #~ msgstr "neplatný pokyn pack: %s" #~ msgid "Message Line Length" #~ msgstr "Délka řádku zprávy" #~ msgid "Commit Message" #~ msgstr "Zpráva komitu" #~ msgid "invalid reorder operation: %s" #~ msgstr "neplatná změna pořadí: %s" #~ msgid "_Goto" #~ msgstr "Goto" #~ msgid "_Rename" #~ msgstr "Přejmenovat" #~ msgid "_Finish Applied" #~ msgstr "Použita akce Finish" #~ msgid "_Delete" #~ msgstr "Smazat" #~ msgid "F_old" #~ msgstr "Fold" #~ msgid "Reorder" #~ msgstr "Změnit pořadí" #~ msgid "Bookmark input is empty" #~ msgstr "Zadání označení je prázdné" #~ msgid "Error in bookmarking" #~ msgstr "Chyba při tvorbě označení" #~ msgid "Bookmark \"%s\" has been added" #~ msgstr "Bylo přidáno označení \"%s\"" #~ msgid "Bookmarking completed" #~ msgstr "Tvorba označení je ukončena" #~ msgid "Please enter bookmark name" #~ msgstr "Zadejte prosím název označení" #~ msgid "Bookmark name is empty" #~ msgstr "Název označení není zadán" #~ msgid "Bookmark \"%s\" has been moved" #~ msgstr "Označení \"%s\" bylo přemístěno" #~ msgid "Bookmark \"%s\" has been removed" #~ msgstr "Označení \"%s\" bylo odebráno" #~ msgid "Please select bookmark name to remove" #~ msgstr "Vyberte prosím název odebíraného označení" #~ msgid "Bookmark new name input is empty" #~ msgstr "Nový název označení není zadán" #~ msgid "Bookmark \"%s\" has been renamed to \"%s\"" #~ msgstr "Označení \"%s\" bylo přejmenováno na \"%s\"" #~ msgid "No bookmark named \"%s\" exists" #~ msgstr "Neexistuje označení s názvem \"%s\"" #~ msgid "a bookmark named \"%s\" already exists" #~ msgstr "název označení \"%s\" již existuje" #~ msgid "Please enter new bookmark name" #~ msgstr "Zadejte prosím nový název označení" #~ msgid "File is binary.\n" #~ msgstr "Binární soubor.\n" #~ msgid "Toolbar" #~ msgstr "Lišta nástrojů" #~ msgid "Push after commit" #~ msgstr "Push po komitu" #~ msgid "Recent commit messages..." #~ msgstr "Poslední komentáře komitů" #~ msgid "parent is not a head, commit to add a new head" #~ msgstr "Rodič není čelo, nové čelo se přidá při komitu" #~ msgid "Commit failed" #~ msgstr "Komit se nezdařil" #~ msgid "Bug Traq" #~ msgstr "Bug Traq" #~ msgid "" #~ "No issue link found in the commit message.The commit message should " #~ "contain an issue link. Configure this in the 'Issue' section in the " #~ "settings" #~ msgstr "" #~ "V komentáři nebyl nalezen odkaz na issue (?). Issue Link lze nastavit v " #~ "Konfiguraci uživatele." #~ msgid "" #~ "Create new named branch \"%s\" with this commit?\n" #~ "Yes\t- Start new branch with this commit\n" #~ "No\t- Make commit without branch change\n" #~ "Cancel - Cancel this commit" #~ msgstr "" #~ "Vytvořit novou pojmenovanou větev \"%s\" tímto komitem?\n" #~ "Ano \t - Tímto komitem začít novou větev\n" #~ "Ne \t - Provést komit bez změny větve\n" #~ "Zrušit - Zrušit tento komit." #~ msgid "" #~ "Named branch \"%s\" already exists, last used in revision %d\n" #~ "Yes\t- Make commit restarting this named branch\n" #~ "No\t- Make commit without changing branch\n" #~ "Cancel - Cancel this commit" #~ msgstr "" #~ "Pojmenovaná větev \"%s\" již existuje, naposledy byla použita v revizi " #~ "%d\n" #~ "Ano \t - Proveďte komit po otevření této nové větve\n" #~ "Ne \t - Proveďte komit bez změny větve\n" #~ "Zrušit - Zrušit tento komit." #~ msgid "Finished committing and pushing" #~ msgstr "Provádění akcí commit a push dokončeno" #~ msgid "Finished committing" #~ msgstr "Komit dokončen" #~ msgid "Please try again after the running operation is completed" #~ msgstr "Zkuste znova po ukončení probíhající operace" #~ msgid "Annotate Second Parent" #~ msgstr "Anotovat druhého rodiče" #~ msgid "_Annotate First Parent" #~ msgstr "Anotovat prvního rodiče" #~ msgid "_Diff to Local" #~ msgstr "_Diff k lokálnímu" #~ msgid "Status: %s" #~ msgstr "Status: %s" #~ msgid "Commit backout before merging with current working parent" #~ msgstr "Před sloučením s rodičem aktuální revize komitujte zrušení změny" #~ msgid "Backed out successfully, you must now commit the results" #~ msgstr "Úspěšně zrušeno, nyní komitujte výsledek" #~ msgid "Patch Branch" #~ msgstr "Větev oprávek" #~ msgid "Show/Hide Patch Branch" #~ msgstr "Zobrazit / Skrýt větev oprávek" #~ msgid ", please refresh" #~ msgstr ", prosím aktualizujte" #~ msgid "Run Commit after init" #~ msgstr "Po příkazu init proveďte Commit" #~ msgid "Push this Branch" #~ msgstr "Vyšlete tuto větev" #~ msgid "file patterns \"%s\"" #~ msgstr "vzory souborů \"%s\"" #~ msgid "Invalid revision set" #~ msgstr "Neplatná sada revizí" #~ msgid "Invalid file pattern" #~ msgstr "Neplatný vzor souboru" #~ msgid "Please try again after the previous command has completed" #~ msgstr "Po ukončení předchozího příkazu zkuste znova" #~ msgid "Push new branch" #~ msgstr "Pošlete (push) novou větev" #~ msgid "No matches" #~ msgstr "Žádné shody" #~ msgid "No revisions matched search" #~ msgstr "Shoda revizí nehledána" #~ msgid "" #~ "Push to remote repository\n" #~ "%s\n" #~ "(creating new branches in remote if needed)?" #~ msgstr "" #~ "Vyšlete do vzdáleného repozitáře\n" #~ "%s\n" #~ "(v případě potřeby vytvořit nové větve?)" #~ msgid "Confirm Push of New Branches to Remote Repository" #~ msgstr "Potvrďte vyslání nových větví do vzdáleného repozitáře" #~ msgid "Rollback repository '%s' to %d, undo %s?" #~ msgstr "Vrátit stav repozitáře '%s' k %d, zrušit %s?" #~ msgid "Rollback repository '%s' to %d, undo %s from %s?" #~ msgstr "Vrátit stav repozitáře '%s' k %d, zrušit %s z %s?" #~ msgid "Pushing branch %s..." #~ msgstr "Vyslání větve %s..." #~ msgid "Finished pushing branch %s" #~ msgstr "Vyslání větve %s ukončeno" #~ msgid "Refresh required" #~ msgstr "Je požadována aktualizace" #~ msgid "Unable to determine repository status" #~ msgstr "Nelze určit stav repozitáře" #~ msgid "Null changeset is not viewable" #~ msgstr "Nulový changeset nelze zobrazit" #~ msgid "Changeset not found in current view" #~ msgstr "Changeset nebyl v aktuálním zobrazení nalezen" #~ msgid "Menu Items" #~ msgstr "Položky nabídky" #~ msgid "name of the webdir config file (DEPRECATED)" #~ msgstr "name of the webdir config file (DEPRECATED)" #~ msgid "Revert files?" #~ msgstr "Vrátit změny souborů?" #~ msgid "Allow pushing a new branch" #~ msgstr "Povolte vyslání nové větve" #~ msgid "Show overlay icons in Mercurial repositories" #~ msgstr "Zobrazit překryvné ikony v repozitářích Mercurialu" #~ msgid "Annotate" #~ msgstr "Opatřit poznámkami" #~ msgid "Show overlays on local disks only" #~ msgstr "Zobrazit překryvy jen na lokálních discích" #~ msgid "Revert files to revision %s?" #~ msgstr "Vrátit soubory k revizi %s?" #~ msgid "Default Tab" #~ msgstr "Implicitní záložka (tab)" #~ msgid "" #~ "Defines the command to run when an issue number is recognized. You may " #~ "include groups in issue.regex, and corresponding {n} tokens in issue.link " #~ "(where n is a non-negative integer). {0} refers to the entire string " #~ "matched by issue.regex, while {1} refers to the first group and so on. If " #~ "no {n} tokensare found in issue.link, the entire matched string is " #~ "appended instead." #~ msgstr "" #~ "Definuje příkaz, který má být spuštěn po zjištění čísla problému. Lze " #~ "zařadit skupiny v issue.regex a odpovídající znaky (tokens) {n} v issue." #~ "link (kde n je nezáporné celé číslo). {0} odkazuje na celý řetězec shodný " #~ "s issue.regex, zatímco {1} odkazuje k první skupině a tak dále. Nejsou-li " #~ "žádné znaky {n} v issue.link nalezeny, je připojen celý shodující se " #~ "řetězec." #~ msgid " - Select Issue Tracker -" #~ msgstr " - Vyberte Issue Tracker -" #~ msgid "" #~ "When commiting an issue, force the user to specify a reference to an " #~ "issue. If enabled, the regex configured in 'Issue Regex' must find a " #~ "match in the commit message" #~ msgstr "" #~ "Nutit uživatele, aby při komitu uvedl odkaz na problém. Je-li povoleno, " #~ "musí regex, nastavený v 'Issue Regex' nalézt shodu v průvodní zprávě " #~ "komitu" #~ msgid "Switch after saving changes?" #~ msgstr "Přepnout po uložení změn?" #~ msgid "Confirm Switch" #~ msgstr "Potvrdit přepnutí (switch)" #~ msgid "Configure Plugin" #~ msgstr "Nastavit plugin" #~ msgid "" #~ "Select issue tracker plugin to use. Links to plugins can be found at " #~ "http://tortoisesvn.net/issuetrackerplugins" #~ msgstr "" #~ "Vyberte plugin pro sledování problémů (issue tracker). Pluginy lze nalézt " #~ "na stránce http://tortoisesvn.net/issuetrackerplugins." #~ msgid "series become inconsistent during reorder" #~ msgstr "během přeskupení se řady stávájí nesouvislými" #~ msgid "Force" #~ msgstr "Force" #~ msgid "no pending pmerges" #~ msgstr "žádná nevyřízená sloučení 'pmerge'" #~ msgid "pending pmerges" #~ msgstr "nevyřízená sloučení 'pmerge'" #~ msgid "New Patch Name" #~ msgstr "Nový název oprávky" #~ msgid "St" #~ msgstr "St" #~ msgid "Pending Pmerge" #~ msgstr "Čekající na pmerge" #~ msgid "" #~ "You cannot finish this patch branch unless you pmerge it first.\n" #~ "pmerge will solve the following issues with %(patch)s:\n" #~ "* %(issuelist)s" #~ msgstr "" #~ "Nemůžete ukončit tuto větev oprávky dokud neprovedete pmerge.\n" #~ "pmerge vyřeší následné problémy s %(patch)s:\n" #~ "*%(issuelist)s" #~ msgid "Uncommitted Local Changes" #~ msgstr "Nekomitované lokální změny" #~ msgid "_goto (update workdir)" #~ msgstr "_goto (aktualizovat prac. adresář)" #~ msgid "_new" #~ msgstr "_new" #~ msgid "_edit message" #~ msgstr "_editovat průvodní zprávu" #~ msgid "Applied MQ patch" #~ msgstr "Použita MQ oprávka" #~ msgid "" #~ "pfinish uses your working directory for temporary work.\n" #~ "Please commit your local changes before issuing pfinish." #~ msgstr "" #~ "pfinish používá váš pracovní adresář pro dočasnou práci.\n" #~ "Komitujte prosím své lokální změny před spuštěním pfinish" #~ msgid "Patch branch finished" #~ msgstr "Ukončena větev oprávky" #~ msgid "" #~ "pfinish must be able to commit, but this is not allowed\n" #~ "as long as you have MQ patches applied." #~ msgstr "" #~ "pfinish musí být schopen komitovat, to ale nemůže,\n" #~ "pokud jste použil MQ oprávky." #~ msgid "Delete the shelf contents?" #~ msgstr "Smazat obsah almárky?" #~ msgid "Abandon" #~ msgstr "Opustit" #~ msgid "abandon shelved changes" #~ msgstr "opustit odložené změny" #~ msgid "Show message" #~ msgstr "Zobrazit průvodní zprávu" #~ msgid "Show internal branches" #~ msgstr "Zobrazit vnitřní větve" #~ msgid "_finish" #~ msgstr "_ukončit" #~ msgid "Show title" #~ msgstr "Zobrazit název" #~ msgid "Show graph" #~ msgstr "Zobrazit graf" #~ msgid "file copy of %s failed\n" #~ msgstr "kopírování %s selhalo\n" #~ msgid "removing backup file : %r\n" #~ msgstr "odstraňování záložního souboru: %r\n" #~ msgid "delete of shelve backup failed" #~ msgstr "selhalo smazání zálohy obsahu almárky" #~ msgid "unable to clean temp directory: %s\n" #~ msgstr "nejde smazat obsah dočasného adresáře: %s\n" #~ msgid "abandoning shelved file\n" #~ msgstr "opuštění odloženého souboru\n" #~ msgid "abort: backup restore failed, %s\n" #~ msgstr "zrušit: záloha obnovení selhala, %s\n" #~ msgid "bad shelve backup directory name" #~ msgstr "nesprávný název zálohy adresáře almárky" #~ msgid "nothing to abandon\n" #~ msgstr "nic k opuštění\n" #~ msgid "shelved file abandoned\n" #~ msgstr "odložený soubor opuštěn\n" #~ msgid "abandon failed\n" #~ msgstr "opuštění selhalo\n" #~ msgid "%s will be imported to the repository" #~ msgstr "%s bude importován do repozitáře" #~ msgid "" #~ "Commit message text for new changeset that reverses the effect of the " #~ "change being backed out." #~ msgstr "" #~ "Text komitové zprávy pro nový changeset, který ruší účinek odvolávané " #~ "změny." #~ msgid "" #~ "** Please report this bug to http://bitbucket.org/tortoisehg/stable/" #~ "issues\n" #~ msgstr "" #~ "** Please report this bug to http://bitbucket.org/tortoisehg/stable/" #~ "issues\n" #~ msgid "Starting Revision:" #~ msgstr "Starting Revision:" #~ msgid "Error while reading status" #~ msgstr "Error while reading status" #~ msgctxt "changesets" #~ msgid "All" #~ msgstr "All" #~ msgid "Subversion" #~ msgstr "Subversion" #~ msgid "Use merge tool:" #~ msgstr "Use merge tool:" #~ msgid "Display local changes that will be pushed to selected repository" #~ msgstr "Display local changes that will be pushed to selected repository" #~ msgid "" #~ "The maximum size file (in KB) that TortoiseHg will show changes for in " #~ "the changelog, status, and commit windows. A value of zero implies no " #~ "limit. Default: 1024 (1MB)" #~ msgstr "" #~ "Maximální velikost souboru (v KB) pro zobrazení změn v oknech pro " #~ "changelog, status a commit. Nulová hodnota je pro nastavení bez limitu. " #~ "Implicitní nastavení je 1024 (1MB)" #~ msgid "" #~ "When running hgtk from the command line, fork a background process to run " #~ "graphical dialogs. Default: True" #~ msgstr "" #~ "Rozdělit proces běžící na pozadí pro zobrazení grafických dialogů u " #~ "procedur thg, spuštěných z příkazového řádku. Implicitně: True" #~ msgid "" #~ "Show a full directory path of the repository in the dialog title instead " #~ "of just the root directory name. Default: False" #~ msgstr "" #~ "Zobrazit úplnou cestu k repozitáři v titulku dialogového okna místo " #~ "pouhého názvu kořenového adresáře. Implicitně je False" #~ msgid "" #~ "Word wrap length of the commit message. If set, the popup menu can be " #~ "used to format the message and a warning will be issued if any lines are " #~ "too long at commit. Default: 0 (unenforced)" #~ msgstr "" #~ "Přikázaná délka řádku komitové zprávy. Je-li zadáno, lze použít výsuvné " #~ "menu k formátování zprávy. Jsou-li některé řádky příliš dlouhé, je " #~ "zobrazeno varování. Implicitně: 0 (nevynuceno)" #~ msgid "Close the commit tool after every successful commit. Default: False" #~ msgstr "Po každém úspěšném komitu zavřít nástroj Commit. Implicitně: False" #~ msgid "" #~ "Attempt to push to default push target after every successful commit. " #~ "Default: False" #~ msgstr "" #~ "Pokusit se po každém úspěšném komitu provést push do nastaveného cíle. " #~ "Implicitně: False" #~ msgid "" #~ "Comma separated list of files that are automatically unchecked when the " #~ "status, commit, and shelve dialogs are opened. Default: None (leave blank)" #~ msgstr "" #~ "Seznam čárkami oddělených souborů, které jsou automaticky odznačeny při " #~ "otevření dialogů status, commit a shelve. Implicitně: None (nevyplněno)" #~ msgid "" #~ "The tab on which the status and commit tools will open. 0 - TextDiff, 1 - " #~ "Hunk Selection, 2 - Commit Preview. Default: 0" #~ msgstr "" #~ "Panel, který se zaktivuje při otevření dialogů status a commit. 0 - " #~ "TextDiff, 1 - Hunk Selection, 2 - Commit Preview. Implicitně: 0" #~ msgid "" #~ "Space separated list of branch names and colors of the form branch:" #~ "#XXXXXX. Spaces and colons in the branch name must beescaped using a " #~ "backslash (\\). Likewise some other characters can be escaped in this " #~ "way, e.g. \\u0040 will be decoded to the @ character, and \\n to a " #~ "linefeed. Default: None (leave blank)" #~ msgstr "" #~ "Seznam mezerami oddělených názvů větví a barev ve formátu branch:#XXXXXX. " #~ "Mezery a dvojtečky v názvu větve musí být předznamenány zpětnými lomítky " #~ "(\\). Tímto způsobem lze předznamenat i jiné znaky, např. \\u0040 bude " #~ "dekódováno jako znak @ a \\n jako linefeed. Implicitně: None (nevyplněno)" #~ msgid "" #~ "Adjust the display of the main toolbar in the Repository Explorer. " #~ "Values: small, large, or theme. Default: theme" #~ msgstr "" #~ "Nastavit zobrazení hlavní nástrojové lišty ve Verpánku. Hodnoty: small, " #~ "large nebo theme. Implicitně: theme" #~ msgid "" #~ "Operation which is performed directly after a successful pull. update " #~ "equates to pull --update, fetch equates to the fetch extension, rebase " #~ "equates to pull --rebase. Default: none" #~ msgstr "" #~ "Operace provedená přímo po úspěšné akci pull. update = pull --update, " #~ "fetch = extenze fetch, rebase = pull --rebase. Implicitně: none" #~ msgid "Unshelve Abort" #~ msgstr "Unshelve Abort" #~ msgid "Abandon Error" #~ msgstr "Abandon Error" #~ msgid "View missing" #~ msgstr "Zobrazit chybějící soubor" #~ msgid "shelve this change to %r?" #~ msgstr "provést 'shelve' této změny k %r?" #~ msgid "nothing to unshelve\n" #~ msgstr "nic k 'unshelve'\n" #~ msgid "unshelve backup aborted\n" #~ msgstr "záloha vyjmutých dat z šelfu zrušena\n" #~ msgid "%d out of %d hunks FAILED -- saving rejects to file %s\n" #~ msgstr "" #~ "%d z %d porcí (hunks) SELHALO -- ukládání 'odmítnutých' do souboru %s\n" #~ msgid "hunk %d already applied at line %d (fuzz %d)\n" #~ msgstr "hunk %d byl již použit na řádku %d (fuzz %d)\n" #~ msgid "Diff to Local" #~ msgstr "Diff vůči lokální kopii" #~ msgid "Verify" #~ msgstr "Ověřit repo" #~ msgid "Backout..." #~ msgstr "Backout (anulovat)..." #~ msgid "TortoiseHg Shell Configuration" #~ msgstr "Konfigurace kontextové nabídky Windows" #~ msgid "Error when creating repository" #~ msgstr "Chyba při vytváření repozitáře" #~ msgid "Discard all changes from merge target (other) revision" #~ msgstr "Vyřadit všechny změny z cílové revize sloučení" #~ msgid "udpate all repos in current dir" #~ msgstr "aktualizovat všechny repozitáře ve stávajícím adresáři" #~ msgid "" #~ "If true, concatenate multiple lines of changeset summary until they reach " #~ "80 characters. Default: False" #~ msgstr "" #~ "Je-li zadáno True, jsou řádky sumární zprávy changesetu spojovány až od " #~ "celkové délky 80 znaků. Implicitně je False" #~ msgid "" #~ "A \"template string\" that, when set, turns the revision number and short " #~ "hashes that are shown on the revision panels into links.
            The " #~ "\"template string\" uses a \"mercurial template\"-like syntax that " #~ "currently accepts two template expressions:

            • {node|short} : " #~ "replaced by the 12 digit revision id (note that {node} on its own is " #~ "currently unsupported).
            • {rev} : replaced by the revision number.For example, in order to link to bitbucket commit pages you can set " #~ "this to:
              https://bitbucket.org/tortoisehg/thg/commits/{node|short}" #~ msgstr "" #~ "Zadaný \"retězec šablony\" změní číslo revize a příslušný krátký heš na " #~ "link.
              Řetězec šablony používá syntaxi \"mercuriálové šablony\", která " #~ "aktuálně přijímá dva výrazy:
              • {node|short} : nahrazen 12ti místným " #~ "ID revize ({node} sám o sobě není v současnosti podporován).
              • {rev} : " #~ "nahrazen číslem revize.
              Na příklad, pro připojení ke komitovacím " #~ "stránkám bitbucket můžete zadat toto:
              https://bitbucket.org/" #~ "tortoisehg/thg/commits/{node|short}" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/da.po0000644000000000000000000075416514440352353016234 0ustar00rootroot# Danish translation for tortoisehg # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the tortoisehg package. # Peer sommerlund , 2009. # msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: Peer Sommerlund \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2018-02-22 18:27+0000\n" "Last-Translator: peso \n" "Language-Team: Danish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2019-07-17 05:42+0000\n" "X-Generator: Launchpad (build 19009)\n" msgid "TortoiseHg Overlay Icon Server" msgstr "TortoiseHg overlay-ikon server" msgid "Exit" msgstr "Afslut" msgid "About" msgstr "Om" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "Nogle af ikonerne kan vi takke TortoiseSVN og Tango projekterne for" msgid "You can visit our site here" msgstr "Du kan besøge vores hjemmeside her" msgid "&License" msgstr "&Licens" #, python-format msgid "version %s" msgstr "version %s" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "med Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "En ny version af TortoiseHg (%s) er klar til at blive hentet!" msgid "License" msgstr "Licens" msgid "= Working Directory Parent =" msgstr "= Forælder til arbejdskataloget =" msgid "Directory of files" msgstr "Katalog over filer" msgid "Tar archives" msgstr "Tar-arkiver" msgid "Uncompressed tar archive" msgstr "Ukomprimeret tar-arkiv" msgid "Bzip2 tar archives" msgstr "Bzip2-tar-arkiver" msgid "Tar archive compressed using bzip2" msgstr "Tar-arkiv comprimeret med bzip2" msgid "Gzip tar archives" msgstr "Gzip-tar-arkiver" msgid "Tar archive compressed using gzip" msgstr "Tar-arkiv komprimeret med gzip" msgid "Zip archives" msgstr "Zip-arkiver" msgid "Uncompressed zip archive" msgstr "Ukomprimeret zip-arkiv" msgid "Zip archive compressed using deflate" msgstr "Zip-arkiv komprimeet med deflate" msgid "Revision:" msgstr "Revision:" msgid "All files in this revision" msgstr "Alle filer i denne revision" msgid "Only files modified/created in this revision" msgstr "Kun filer ændret/oprettet i denne revision" msgid "Only files modified/created since:" msgstr "Kun filer ændret/oprettet efter:" msgid "Archive Content:" msgstr "" msgid "Recurse into subrepositories" msgstr "Gentag i alle underdepoter" msgid "Browse..." msgstr "Gennemse..." msgid "Destination path:" msgstr "Mål-sti:" msgid "Archive types:" msgstr "Arkivtyper:" msgid "Hg command:" msgstr "Hg-kommando:" msgid "Select Destination Folder" msgstr "Vælg mål-mappe" msgid "Select Destination File" msgstr "Vælg mål-fil" msgid "All files (*)" msgstr "Alle filer (*)" msgid "Duplicate Name" msgstr "Duplikér navn" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "Destinationen \"%s\" eksisterer allerede som en fil!" msgid "Confirm Overwrite" msgstr "Bekræft overskrivning" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" "Kataloget \"%s\" er ikke tomt!\n" "\n" "Vil du overskrive det?" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" "Filen \"%s\" findes allerede!\n" "\n" "Vil du overskrive den?" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "Destinationen \"%s\" eksisterer allerede som en mappe!" #, python-format msgid "Archive - %s" msgstr "Arkiv - %s" msgid "&Archive" msgstr "&Arkiv" msgid "Backout requires a parent revision" msgstr "" msgid "Cannot backout change on a different branch" msgstr "Kan ikke omgøre en ændring på en anden gren" #, python-format msgid "Backout - %s" msgstr "Omgør - %s" msgid "Prepare to backout" msgstr "Forbered omgør" msgid "Verify backout revision and ensure your working directory is clean." msgstr "" "Kontroller revisionen der skal omgøres og at dit arbejdskatalog er rent." msgid "Backing out a parent revision is a single step operation" msgstr "At omgøre en forælder-revision tager kun et trin" msgid "Backout revision" msgstr "Revision at omgøre" msgid "Not a head, backout will create a new head!" msgstr "Ikke et hoved, omgør vil lave et nyt hoved!" msgid "Current local revision" msgstr "Nuværende lokal revision" msgid "Working directory status" msgstr "Status på arbejdskatalog" msgid "Checking..." msgstr "Tjekker..." msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" "Før omgør, skal du integrere, lægge en lap på hylden eller forkaste " "ændringer." msgid "Automatically resolve merge conflicts where possible" msgstr "Løs flet-konflikter automatisk hvor det er muligt" msgid "Uncommitted local changes are detected" msgstr "" msgid "Clean" msgstr "Ren" msgid "Backing out, then merging..." msgstr "" msgid "All conflicting files will be marked unresolved." msgstr "" msgid "Automatically advance to next page when backout and merge are complete." msgstr "Fortsæt automatisk til næste side når omgør og flet er færdige." #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" "%d filer har flette-konflikter som skal løses" msgid "No merge conflicts, ready to commit" msgstr "Ingen flette-konflikter, klar til integration" msgid "Commit backout and merge results" msgstr "Integrer omgør-og-flet resultat" msgid "Parents" msgstr "Forældre" msgid "Working Directory" msgstr "Arbejdskatalog" msgid "Working Directory (merged)" msgstr "Arbejdskatalog (flettet)" msgid "Commit message" msgstr "Integrationsmeddelelse" msgid "Skip final confirmation page, close after commit." msgstr "Spring over bekræftelsessiden, luk efter intetration." msgid "Backed out changeset: " msgstr "Omgjort ændring: " msgid "Confirm Discard Message" msgstr "Bekræft kasser besked" msgid "Discard current backout message?" msgstr "Kassér nuværende omgørelsesbesked?" msgid "Use English backout message" msgstr "Brug engelsk omgørelsesbesked" msgid "Backing out and committing..." msgstr "Omgør og integrerer..." msgid "Please wait while making backout." msgstr "Vent venligst på omgør ændring." msgid "Committing..." msgstr "Integrerer..." msgid "Please wait while committing merged files." msgstr "Vent venligst på integration af flettede filer." msgid "Finished" msgstr "Afsluttet" msgid "Backout changeset" msgstr "Omgjort ændring" #, python-format msgid "Bisect - %s" msgstr "Bisect - %s" msgid "Accept" msgstr "Godkend" msgid "Known good revision:" msgstr "Kendt god revision:" msgid "Known bad revision:" msgstr "Kendt dårlig revision:" msgid "Discard local changes (revert --all)" msgstr "Forkast lokale ændringer (revert --all)" msgid "Revision is &Good" msgstr "Revision er &God" msgid "Revision is &Bad" msgstr "Revision er &Dårlig" msgid "&Skip this Revision" msgstr "&Spring over denne revision" msgid "Close" msgstr "Luk" msgid "Error encountered." msgstr "Stødte på fejl." msgid "Culprit found." msgstr "Synder fundet." msgid "Revision" msgstr "Revision" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "" "Test denne revision og rapporter det fundne. (godt/dårligt/oversprunget)" #, python-format msgid "%s (hint: %s)" msgstr "%s (hint: %s)" msgid "Bookmark:" msgstr "Bogmærke:" msgid "New Name:" msgstr "Nyt navn:" msgid "Activate:" msgstr "Aktivér:" msgid "&Add" msgstr "&Tilføj" msgid "Re&name" msgstr "Om&døb" msgid "&Remove" msgstr "&Fjern" msgid "&Move" msgstr "&Flyt" #, python-format msgid "Bookmark - %s" msgstr "Bogmærke - %s" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "Et bogmærke navngivet \"%s\" eksisterer allerede" #, python-format msgid "Bookmark '%s' has been added" msgstr "Bogmærket '%s' er blevet tilføjet" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "Bogmærke kaldet \"%s\" eksisterer ikke" #, python-format msgid "Bookmark '%s' has been moved" msgstr "Bogmærke '%s' er blevet flyttet" #, python-format msgid "Bookmark '%s' does not exist" msgstr "Bogmærke '%s' eksisterer ikke" #, python-format msgid "Bookmark '%s' has been removed" msgstr "Bogmærket '%s' er blevet fjernet" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "Bogmærket '%s' er blevet omdøbt til '%s'" msgid "TortoiseHg Bookmark Sync" msgstr "" msgid "Outgoing Bookmarks" msgstr "" msgid "&Push Bookmark" msgstr "" msgid "&Remove Bookmark" msgstr "" msgid "Incoming Bookmarks" msgstr "" msgid "P&ull Bookmark" msgstr "" msgid "R&emove Bookmark" msgstr "" #, python-format msgid "Pushed local bookmark: %s" msgstr "" #, python-format msgid "Pulled remote bookmark: %s" msgstr "" #, python-format msgid "Removed remote bookmark: %s" msgstr "" #, python-format msgid "Removed local bookmark: %s" msgstr "" #, python-format msgid "%s - branch operation" msgstr "%s - gren operation" msgid "Select branch of merge commit" msgstr "Vælg gren til flet-integration" msgid "Changes take effect on next commit" msgstr "Ændringer vil være effektive fra næste integration" msgid "No branch changes" msgstr "Ingen ændringer af gren" msgid "Open a new named branch" msgstr "Åben en ny navngivet gren" msgid "Close current branch" msgstr "Luk aktuel gren" #, python-format msgid "Please report this bug to our bug tracker" msgstr "" "Rapportér venligst denne fejl til vores fejlhåndteringssystem" msgid "Checking for updates..." msgstr "Leder efter opdateringer..." msgid "Copy" msgstr "Kopier" msgid "Quit" msgstr "Afslut" msgid "TortoiseHg Bug Report" msgstr "TortoiseHg fejlrapport" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "Det er anbefalet at opgradere til en nyere version af TortoiseHg." msgid "Your TortoiseHg is up to date." msgstr "Din TortoiseHg er ajour." msgid "Save error report to" msgstr "Gem fejlrapport til" msgid "Text files (*.txt)" msgstr "Tekstfiler (*.txt)" msgid "Error writing file" msgstr "Fejl under skrivning af fil" msgid "TortoiseHg Error" msgstr "TortoiseHg-fejl" msgid "" "If you still have trouble, please file a bug report." msgstr "" "Hvis du stadig har problemer, så indsend venligst en " "fejlrapportering." msgid "Visual Diff" msgstr "Visuel diff." msgid "View file changes in external diff tool" msgstr "Vis filændringer i eksternt diff-værktøj" msgid "Edit Local" msgstr "Redigér lokal" msgid "Edit current file in working copy" msgstr "Redigér nuværende fil i arbejdskopi" msgid "Revert to Revision" msgstr "Rul tilbage til Revision" msgid "Revert file(s) to contents at this revision" msgstr "Rul fil(er) til indholdet for denne revision" msgid "Patch failed to apply" msgstr "Lappen passede ikke" msgid "Manually resolve rejected chunks?" msgstr "" msgid "Edit patched file and rejects?" msgstr "Rediger lappede filer og afvisninger?" msgid "No deletable chunks" msgstr "Ingen sletbare blokke" msgid "Completely remove file from patch?" msgstr "Fjern filen helt fra lappen?" msgid "Revert all file changes?" msgstr "" msgid "No chunks remain" msgstr "Ingen blokke tilkbage" msgid "file has been deleted, refresh" msgstr "fil er blevet slettet, opfrisk" msgid "file has been modified, refresh" msgstr "fil er blevet ændret, opfrisk" msgid "Unable to merge chunks" msgstr "Kan ikke flette blokke" msgid "Add or remove patches must be merged in the working directory" msgstr "Tilføjede eller fjernede lapper skal være flettet i arbejdskkataloget" msgid "Unable to remove" msgstr "" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" "Kan ikke fjerne filen %s,\n" "adgang nægtet" msgctxt "files" msgid "All" msgstr "Alle" msgctxt "files" msgid "None" msgstr "Ingen" msgid "Toggle display of text search bar" msgstr "Vis/skjul tekstsøgningsbjælke" msgid "Diff Toolbar" msgstr "Diff-værktøjsbjælke" #, python-format msgid "Chunks selected: %d / %d" msgstr "Blokke valgt: %d / %d" msgid "Please wait while the file is opened ..." msgstr "" msgid "Source:" msgstr "Kilde:" msgid "Destination:" msgstr "Destination:" msgid "Options" msgstr "Valg" msgid "Clone to revision:" msgstr "Klon til revision:" msgid "A revision identifier, bookmark, tag or branch name" msgstr "" msgid "Do not update the new working directory" msgstr "Unlad at opdatere det nye arbejdskatalog" msgid "Use pull protocol to copy metadata" msgstr "Brug træk-protokollen til at kopiere metadata" msgid "Clone with minimal processing" msgstr "" msgid "Include patch queue" msgstr "Inkludér lap-kø" msgid "Use proxy server" msgstr "Brug proxy server" msgid "Do not verify host certificate" msgstr "Efterprøv ikke værtscertifikat" msgid "Remote command:" msgstr "Fjernkommando:" msgid "Use largefiles" msgstr "Brug largefiles" msgid "Start revision:" msgstr "Start revision:" msgid "Select source repository" msgstr "Vælg kildedepot" msgid "Select destination repository" msgstr "Vælg destinationsdepot" msgid "Select patch folder" msgstr "Vælg lap-folder" #, python-format msgid "Clone - %s" msgstr "Klon - %s" msgid "&Clone" msgstr "&Klon" msgid "failed to start command\n" msgstr "mislykkedes med at starte kommando\n" msgid "error while running command\n" msgstr "fejl under kørsel af kommando\n" #, python-format msgid "process exited unexpectedly with code %d" msgstr "" #, python-format msgid "failed to encode command: %s" msgstr "" #, python-format msgid "timed out while reading: %r..." msgstr "" msgid "timed out waiting for message" msgstr "" #, python-format msgid "unexpected response on required channel %r" msgstr "" #, python-format msgid "invalid \"hello\" message: %r" msgstr "" msgid "no \"runcommand\" capability" msgstr "" #, python-format msgid "corrupted command result: %r" msgstr "" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "" msgid "Terminated by user" msgstr "Termineret af bruger" #, python-format msgid "[command terminated by user %s]" msgstr "[kommando afsluttet af bruger %s]" #, python-format msgid "[command interrupted %s]" msgstr "[kommando afbrudt %s]" #, python-format msgid "[command returned code %d %%s]" msgstr "[kommando returnerede kode %d %%s]" #, python-format msgid "[command completed successfully %s]" msgstr "[kommando udført med succes %s]" msgid "Running..." msgstr "Kører..." msgid "Failed!" msgstr "Fejlede!" msgid "Clea&r Log" msgstr "&Slet log" msgid "TortoiseHg Prompt" msgstr "TortoiseHg prompt" msgid "Show Detail" msgstr "" msgid "Hide Detail" msgstr "" msgid "Confirm Exit" msgstr "Bekræft exit" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" "Mercurial-kommando kører fortsat.\n" "Er du sikker på at du vil terminere?" msgid "&Run" msgstr "&Kør" msgid "TortoiseHg Command Dialog" msgstr "TortoiseHg kommandodialog" msgid "Command Error" msgstr "Kommandofejl" #, python-format msgid "[Code: %d]" msgstr "[Kode: %d]" msgid "Merge" msgstr "Flet" #, python-format msgid "Merge with %s" msgstr "" msgid "Patch Name Required" msgstr "Navn på lap påkrævet" msgid "You must enter a patch name" msgstr "Du skal indtaste et navn på lap" msgctxt "start progress" msgid "Commit" msgstr "Integrér" msgctxt "start progress" msgid "MQ Action" msgstr "" msgctxt "start progress" msgid "Rollback" msgstr "" msgid "Commit Dialog Toolbar" msgstr "" msgid "Branch: " msgstr "Gren: " msgid "Copy message" msgstr "Kopiér besked" msgid "Copy one of the recent commit messages" msgstr "" msgid "Show Issues" msgstr "" msgid "Please wait..." msgstr "" #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "" msgid "Issue Tracker" msgstr "" msgid "Show Issues..." msgstr "" msgid "Stop" msgstr "Stop" msgid "### patch name ###" msgstr "" msgid "Commit changes" msgstr "Integrer ændringer" msgid "Commit" msgstr "Integrér" msgid "Amend current revision" msgstr "" msgid "Amend" msgstr "" msgid "Create a new patch" msgstr "Lav en ny lap" msgid "QNew" msgstr "QNew" msgid "Refresh current patch" msgstr "Opdater aktuel lap" msgid "QRefresh" msgstr "QRefresh" msgid "Confirm Branch Change" msgstr "Bekræft skift af gren" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "" "Navngiven gren \"%s\" eksisterer allerede, sidst anvendt i revision %d\n" msgid "Restart &Branch" msgstr "Genstart &Gren" msgid "&Commit to current branch" msgstr "&Integrer på nuværende gren" msgid "Cancel" msgstr "Annuler" msgid "Confirm New Branch" msgstr "Bekræft ny gren" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "Opret navngiven gren \"%s\" med denne integration?\n" msgid "Create &Branch" msgstr "Opret &Gren" msgid "Close Branch: " msgstr "Luk gren: " msgid "New Branch: " msgstr "Ny gren: " #, python-format msgid "Selected Options: %s" msgstr "" msgid "Parent:" msgstr "Forælder:" msgid "Patch name:" msgstr "Lap navn:" #, python-format msgid "Close %s branch" msgstr "Luk %s gren" #, python-format msgid "Rollback commit to revision %d" msgstr "" msgid "Confirm Undo" msgstr "Bekræft fortryd" msgid "Discard current commit message?" msgstr "Kasser nuværende integrationsbesked?" msgid "Message Translation Failure" msgstr "" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" msgid "&Replace" msgstr "" msgid "Nothing Committed" msgstr "" msgid "Please enter commit message" msgstr "Skriv integrationsbesked" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" msgid "No files checked" msgstr "Ingen filer tjekket" msgid "No modified files checkmarked for commit" msgstr "" msgid "Confirm Add" msgstr "Bekræft tilføj" msgid "Add selected untracked files?" msgstr "Ønsker du at tilføje de ukendte filer der er markeret?" msgid "Confirm Remove" msgstr "Bekræft fjern" msgid "Remove selected deleted files?" msgstr "Fjern markerede slettede filer?" msgid "Nothing changed." msgstr "" msgctxt "window title" msgid "Commit" msgstr "Integrér" #, python-format msgid "%s - commit options" msgstr "" msgid "Set username:" msgstr "Angiv brugernavn:" msgid "Save in Repo" msgstr "Gem i depot" msgid "Save Global" msgstr "Gem global" msgid "Set Date:" msgstr "Angiv dato:" msgid "Update" msgstr "Opdater" msgid "Push After Commit:" msgstr "Skub efter integrer:" msgid "Auto Includes:" msgstr "" msgid "Recurse into subrepositories (--subrepos)" msgstr "" msgid "Unable to save username" msgstr "Kunne ikke gemme brugernavn" msgid "Iniparse must be installed." msgstr "Iniparse skal være installeret." msgid "Unable to write configuration file" msgstr "Kan ikke skrive konfigurationsfilen" msgid "Unable to save after commit push" msgstr "Kan ikke gemme skub-efter-integrér konfiguration" msgid "Unable to save auto include list" msgstr "" msgid "Unable to save recurse in subrepos." msgstr "" msgid "Invalid date format" msgstr "Ugyldigt datoformat" msgid "No username configured" msgstr "Intet brugernavn konfigureret" #, python-format msgid "%s - commit" msgstr "" msgid "TortoiseHg Commit" msgstr "" msgid "Are you sure that you want to cancel the commit operation?" msgstr "" msgid "Compress changesets up to and including" msgstr "Komprimer ændringssæt op til og inklusive" msgid "Onto destination" msgstr "" msgid "Compress" msgstr "Komprimér" #, python-format msgid "Compress - %s" msgstr "Komprimér - %s" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the compress" msgstr "Du kan fortsætte komprimeringen" msgid "Changes have been moved, you must now commit" msgstr "Ændringerne er blevet flyttet, næste trin er at integrere" msgctxt "action button" msgid "Commit" msgstr "Integrér" msgid "Compress is complete, old history untouched" msgstr "Komprimering er fuldført, gammel historik er uberørt" msgid "must be specified repository" msgstr "depot skal være angivet" msgid "must be specified 'type' in style" msgstr "'type' skal angives i stilen" msgid "Git Commit:" msgstr "" msgid "Summary:" msgstr "Uddrag:" msgid "User:" msgstr "Bruger:" msgid "Date:" msgstr "Dato:" msgid "Age:" msgstr "Alder:" msgid "Branch:" msgstr "Gren:" msgid "Close:" msgstr "Luk:" msgid "Tags:" msgstr "Mærker:" msgid "Graft:" msgstr "Podet fra:" msgid "Transplant:" msgstr "Transplanter:" msgid "Obsolete state:" msgstr "" msgid "Perforce:" msgstr "Perforce:" msgid "Subversion:" msgstr "Subversion:" msgid "Converted From:" msgstr "" msgid "Original Parent:" msgstr "" msgid "No items to display" msgstr "Ingen emner at vise" msgid "Use compact view" msgstr "Brug kompakt visning" msgid "Patch:" msgstr "Lap:" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "Viser %(count)d af %(total)d emner" msgid "Select a GUI location to edit:" msgstr "" msgid "Select the toolbar or menu to change" msgstr "" msgid "Tools shown on selected location" msgstr "" msgid "Delete from list" msgstr "" msgid "Add to list" msgstr "" msgid "Add separator" msgstr "" msgid "List of all tools" msgstr "" msgid "New Tool ..." msgstr "" msgid "Edit Tool ..." msgstr "" msgid "Delete Tool" msgstr "" msgid "Type" msgstr "Type" msgid "Name" msgstr "Navn" msgid "Command" msgstr "" msgid "New hook" msgstr "" msgid "Edit hook" msgstr "" msgid "Delete hook" msgstr "" msgid "Replace existing hook?" msgstr "" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" msgid "OK" msgstr "OK" msgid "Missing information" msgstr "" msgid "All items" msgstr "" msgid "Working directory" msgstr "" msgid "All revisions" msgstr "" msgid "All contexts" msgstr "" msgid "Fixed revisions" msgstr "" msgid "Applied patches" msgstr "Anvendte lapper" msgid "Applied patches or qparent" msgstr "Anvendte lapper eller qparent" msgid "" msgstr "" msgid "Configure Custom Tool" msgstr "" msgid "Tool name" msgstr "" msgid "The tool name. It cannot contain spaces." msgstr "" #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" msgid "Tool label" msgstr "" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" msgid "Tooltip" msgstr "" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" msgid "Icon" msgstr "" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" msgid "On repowidget, show for" msgstr "" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" msgid "Show Output Log" msgstr "Vis log for uddata" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" msgid "You must set a tool name." msgstr "" msgid "The tool name cannot have any spaces in it." msgstr "" msgid "You must set a command to run." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" msgid "Configure Hook" msgstr "" msgid "Hook type" msgstr "" msgid "Select when your command will be run" msgstr "" msgid "The hook name. It cannot contain spaces." msgstr "" msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" msgid "You must set a valid hook type." msgstr "" msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "" msgid "Console" msgstr "" msgid "File &History / Annotate" msgstr "" msgid "Show the history of the selected file" msgstr "Vis historikken for den valgte fil" msgid "Co&mpare File Revisions" msgstr "" msgid "Compare revisions of the selected file" msgstr "Sammenlign revisioner for den valgte fil" msgid "Filter Histor&y" msgstr "" msgid "Query about changesets affecting the selected files" msgstr "" msgid "Diff &Changeset to Parent" msgstr "" msgid "Diff Changeset to Loc&al" msgstr "" msgid "&Diff to Parent" msgstr "" msgid "Diff to &Local" msgstr "" msgid "View changes to current in external diff tool" msgstr "Vis ændringer til nuværende i eksternt diff-værktøj" msgid "&View at Revision" msgstr "" msgid "View file as it appeared at this revision" msgstr "Vis fil som den fremstod ved denne revision" msgid "&Save at Revision..." msgstr "" msgid "Save file as it appeared at this revision" msgstr "" msgid "Save file to" msgstr "Gem fil som" msgid "&Edit Local" msgstr "" msgid "&Open Local" msgstr "" msgid "E&xplore Local" msgstr "" msgid "Open parent folder of current file in the system file manager" msgstr "" msgid "&Copy Patch" msgstr "&Kopier lap" msgid "Copy &Path" msgstr "" msgid "Copy full path of file(s) to the clipboard" msgstr "" msgid "&Revert to Revision..." msgstr "" msgid "Open S&ubrepository" msgstr "Åben &underdepot" msgid "Open the selected subrepository" msgstr "Åben det valgte underdepot" msgid "E&xplore Folder" msgstr "" msgid "Open the selected folder in the system file manager" msgstr "" msgid "Open &Terminal" msgstr "" msgid "Open a shell terminal in the selected folder" msgstr "" msgid "Custom Tools" msgstr "" msgid "Diff &Local" msgstr "" msgid "&View Missing" msgstr "" msgid "View O&ther" msgstr "" msgid "Add &Largefiles..." msgstr "" msgid "&Forget" msgstr "" msgid "&Delete Unversioned..." msgstr "" msgid "Confirm Delete Unversioned" msgstr "" msgid "Delete the following unversioned files?" msgstr "" msgid "&Delete" msgstr "" msgid "Re&move Versioned" msgstr "" msgid "&Revert..." msgstr "" msgid "Uncommited merge - please select a parent revision" msgstr "Ikke-integreret flet - vælg en forælderrevision" msgid "Revert files to local or other parent?" msgstr "Tilbagefør filer til lokal eller anden forælder?" msgid "&Local" msgstr "&Lokal" msgid "&Other" msgstr "&Andet" msgid "Confirm Revert" msgstr "Bekræft tilbagefør" msgid "Revert local file changes?" msgstr "" msgid "&Revert with backup" msgstr "" msgid "&Discard changes" msgstr "" msgid "Revert the following files?" msgstr "" msgid "&Revert" msgstr "" msgid "&Copy..." msgstr "" msgid "Re&name..." msgstr "" msgid "&Ignore..." msgstr "" msgid "Edit Re&jects" msgstr "" msgid "Manually resolve rejected patch chunks" msgstr "Løs afviste lap-stumper manuelt" msgid "De&tect Renames..." msgstr "" msgid "&Mark Resolved" msgstr "" msgid "&Mark Unresolved" msgstr "" msgid "Restart Mer&ge" msgstr "" msgid "Was renamed from" msgstr "" msgid "Restart Merge &with" msgstr "" msgid "Display the file anyway" msgstr "" msgid "Diff not displayed: " msgstr "" #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" "Fil er større end den angivne max størrelse.\n" "maxdiff = %s KB" msgid "File is binary" msgstr "Filen er binær" msgid "File may be binary (maximum line length exceeded)" msgstr "" msgid "File or diffs not displayed: " msgstr "Fil eller diff'er som ikke vises: " msgid " (was added)" msgstr " (blev tilføjet)" #, python-format msgid " (copied from %s)" msgstr "" #, python-format msgid " (renamed from %s)" msgstr " (omdøbt fra %s)" msgid " (is a symlink)" msgstr " (er et symlink)" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" "Fil eller diff ikke vist: Filen er større end den anførte maks størrelse.\n" "maxdiff = %s KB" msgid " (was deleted)" msgstr " (blev slettet)" msgid " (was added, now missing)" msgstr " (blev tilføjet, mangler nu)" msgid " (is unversioned)" msgstr " (er uversioneret)" msgid "exec mode has been set" msgstr "" msgid "exec mode has been unset" msgstr "" #, python-format msgid "changeset: %s" msgstr "ændringssæt: %s" msgid "Initial revision" msgstr "Initiel revision" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" msgid "Subrepo created and set to initial revision." msgstr "" msgid "Subrepo initialized to revision:" msgstr "" msgid "Subrepo removed from repository." msgstr "Underdepot fjernet fra depot." msgid "Previously the subrepository was at the following revision:" msgstr "" msgid "Subrepo was not changed." msgstr "" msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "" msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "" msgid "Subrepo state is:" msgstr "" msgid "Revision has changed to:" msgstr "Revision er ændret til:" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "" msgid "From:" msgstr "Fra:" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" msgid "Subrepository not found in the working directory." msgstr "Underdepot ikke fundet i arbejdskataloget" msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" msgid "Not a Mercurial subrepo, not previewable" msgstr "Ikke et Mercurial underdepot, kan ikke forhåndsvises" #, python-format msgid "Error previewing subrepo: %s" msgstr "" msgid "Subrepo may be damaged or inaccessible." msgstr "" msgid "The subrepository is dirty." msgstr "" msgid "File Status:" msgstr "Filstatus:" msgid "(is a changed sub-repository)" msgstr "(er et ændret under-depot)" msgid "(is an unchanged sub-repository)" msgstr "(er et uændret under-depot)" msgid "(is a dirty sub-repository)" msgstr "(er et beskidt under-depot)" msgid "(is a new sub-repository)" msgstr "(er et nyt under-depot)" msgid "(is a removed sub-repository)" msgstr "(er et fjernet under-depot)" msgid "(is a changed and dirty sub-repository)" msgstr "(er et ændret og beskidt under-depot)" msgid "(is a new and dirty sub-repository)" msgstr "(er et nyt og beskidt under-depot)" msgid "open..." msgstr "" #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "" msgid "File History Log Columns" msgstr "" msgid "Back" msgstr "Tilbage" msgid "Forward" msgstr "Frem" msgid "Diff Selected &Changesets" msgstr "" msgid "&Diff Selected File Revisions" msgstr "" msgid "Show Revision &Details" msgstr "" msgid "Too many rows selected for menu" msgstr "" msgid "File Differences Log Columns" msgstr "" msgid "Next diff" msgstr "Næste diff" msgid "Previous diff" msgstr "Forrige diff" msgid "Unicode" msgstr "" msgid "Western Europe" msgstr "" msgid "Unified Chinese" msgstr "" msgid "Traditional Chinese" msgstr "" msgid "Korean" msgstr "" msgid "Japanese" msgstr "" msgid "Thai" msgstr "" msgid "Central and Eastern Europe" msgstr "" msgid "Cyrillic" msgstr "" msgid "Russian" msgstr "" msgid "Ukrainian" msgstr "" msgid "Greek" msgstr "" msgid "Turkish" msgstr "" msgid "Arabic" msgstr "" msgid "Hebrew" msgstr "" msgid "Vietnamese" msgstr "" msgid "Baltic" msgstr "" msgid "Southern Europe" msgstr "" msgid "Nordic" msgstr "" msgid "Celtic" msgstr "" msgid "South-Eastern Europe" msgstr "" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "" msgid "View change as unified diff output" msgstr "" msgid "View change in context of file" msgstr "" msgid "Annotate with revision numbers" msgstr "" msgid "Next Diff" msgstr "" msgid "Previous Diff" msgstr "" msgid "Open shelve tool" msgstr "" msgid "&Auto Detect" msgstr "" msgid "Show changes from first parent" msgstr "" msgid "Show changes from second parent" msgstr "" msgid "E&ncoding" msgstr "" msgid "&Search in Current File" msgstr "" msgid "Search in All &History" msgstr "" msgid "Go to Line" msgstr "" #, python-format msgid "Enter line number (1 - %d)" msgstr "" msgid "Show &Author" msgstr "" msgid "Show &Date" msgstr "" msgid "Show &Revision" msgstr "" msgid "Annotate Op&tions" msgstr "" msgid "Search Selected Text" msgstr "" msgid "In Current &File" msgstr "" msgid "In &Current Revision" msgstr "" msgid "In &Original Revision" msgstr "" msgid "In All &History" msgstr "" msgid "Go to" msgstr "" msgid "View File at" msgstr "" msgid "Diff File to" msgstr "" msgid "&Originating Revision" msgstr "" msgid "&Parent Revision" msgstr "" #, python-format msgid "&Parent Revision (%d)" msgstr "" msgid "&Mark Excluded Changes" msgstr "" msgid "(excluded from the next commit)" msgstr "" msgid "Interrupted graft operation found" msgstr "Afbrudt podning fundet" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" "En afbrudt podning er blevet fundet.\n" "\n" "Du kan ikke lave en anden podning med mindre du annullerer den afbrudte " "podning først." msgid "Continue or abort interrupted graft operation?" msgstr "Fortsæt eller annuler afbrudt podning?" msgid "To graft destination" msgstr "Podningssted" msgid "Use my user name instead of graft committer user name" msgstr "" msgid "Use current date" msgstr "" msgid "Append graft info to log message" msgstr "" msgid "Graft" msgstr "Pod" msgid "Abort" msgstr "Afbryd" #, python-format msgid "Graft - %s" msgstr "Pod - %s" msgid "Graft changeset" msgstr "Podningsændring" #, python-format msgid "Graft changeset #%d of %d" msgstr "Podningsændring #%d af %d" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" "Før du kan pode skal du integrere ændringerne, " "lægge en lap på hylden eller forkaste ændringerne." msgid "You may continue or start the graft" msgstr "Du må fortsætte eller starte podningen" msgid "Graft is complete" msgstr "Podning fuldført" msgid "Graft failed" msgstr "Podning fejlede" msgid "Graft aborted" msgstr "Podning annuleret" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" "Podning genererede flette-konflikter som skal løses" msgid "You may continue the graft" msgstr "Du må fortsætte podningen" msgid "Exiting with an unfinished graft is not recommended." msgstr "Afslut mens en podning er uafsluttet er ikke anbefalet." msgid "Consider aborting the graft first." msgstr "Overvej at annullere podningen først." msgid "&Exit" msgstr "&Afslut" msgid "### regular expression search pattern ###" msgstr "### søgemønster for regulært udtryk ###" msgid "Regexp:" msgstr "Reg. udtryk:" msgid "Ignore case" msgstr "Ignorer versal" msgid "Search" msgstr "Søg" msgid "Working Copy" msgstr "Arbejdskopi" msgid "All History" msgstr "Al historik" msgid "Report only the first match per file" msgstr "Rapportér kun det første match per fil" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "Følg kopiering og omdøbning" msgid "Includes:" msgstr "Inkluderer:" msgid "Excludes:" msgstr "Ekskluderer:" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" "Kommasepareret liste af fil-mønstre som skal udelades. Udeladelsesmønstre " "bliver anvendt efter inkluderingsmønstre." msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" "Kommasepareret liste af fil-mønstre som skal inkluderes. Som udgangspunkt " "bliver hele depotet gennemsøgt." #, python-format msgid "\"%s\" removed from search history" msgstr "\"%s\" er fjernet fra søgehistorik" #, python-format msgid "\"%s\" removed from path history" msgstr "\"%s\" er fjernet fra stiens historik" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "grep: ugyldigt match-mønster: %s\n" #, python-format msgid "grep: %s\n" msgstr "grep: %s\n" #, python-format msgid "%d matches found" msgstr "%d fundne match" msgid "No matches found" msgstr "Ingen sammenfald fundet" msgid "Searching" msgstr "Søger" msgid "history" msgstr "historik" msgid "Interrupted" msgstr "Afbrudt" msgid "files" msgstr "filer" #, python-format msgid "Skipping %s, unable to read" msgstr "Springer over %s, ikke i stand til at læse" msgid "Vi&ew File" msgstr "" msgid "&View Changeset" msgstr "" msgid "Annotate &File" msgstr "" msgid "File" msgstr "Fil" msgid "Line" msgstr "Linje" msgid "Rev" msgstr "Rev" msgid "User" msgstr "Bruger" msgid "Match Text" msgstr "Match tekst" msgid "TortoiseHg Search" msgstr "TortoiseHg Søgning" #, python-format msgid "Detect Copies/Renames in %s" msgstr "Find kopier/omdøbninger i %s" msgid "Unrevisioned Files" msgstr "Urevisionerede filer" msgid "Refresh file list" msgstr "Genindlæs filliste" #, python-format msgid "Min Similarity: %d%%" msgstr "" msgid "Only consider deleted files" msgstr "Tag kun slettede filer i betragtning" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "" msgid "Find Renames" msgstr "Find omdøbninger" msgid "Find copy and/or rename sources" msgstr "Find kopi og/eller omdøb kilder" msgid "Candidate Matches" msgstr "Matchende kandidater" msgid "Accept All Matches" msgstr "Accepter alle match" msgid "Accept Selected Matches" msgstr "Accepter valgte match" msgid "Differences from Source to Dest" msgstr "Forskelle fra Kilde til Dest" msgid "Search already in progress" msgstr "Søgning allerede i gang" msgid "Cannot start a new search" msgstr "Kan ikke starte en ny søgning" msgid "No files to find" msgstr "" msgid "There are no files that may have been renamed" msgstr "" msgid "Multiple sources chosen" msgstr "Adskillige kilder valgt" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" "Du har adskillige omdøbninger valgt for destinationsfil:\n" "%s. Afbryder!" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" "%s og %s har identisk indhold\n" "\n" #. i18n: percent format #, python-format msgid "%d%%" msgstr "" msgid "Source" msgstr "Kilde" msgid "Dest" msgstr "Mål" msgid "% Match" msgstr "% Matchning" msgid "Sending Email" msgstr "Sender e-post" msgid "Email" msgstr "Email" msgid "To:" msgstr "Til:" msgid "Cc:" msgstr "Cc:" msgid "In-Reply-To:" msgstr "Som-svar-på:" msgid "Message identifier to reply to, for threading" msgstr "Besked-identifikation der svares på, for trådning" msgid "Flag:" msgstr "Flag:" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" "Hg lapper (som genereret af export kommandoen) er kompatible med de fleste " "lappe-programmer. De inkluderer en header som indeholder de vigtigste " "metadata til ændringen." msgid "Send changesets as Hg patches" msgstr "Send ændringer som Hg lapper" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" "Git lapper kan indeholde binære filer, kopiering og ændring af rettigheder, " "men modtagerne kan måske ikke bruge dem hvis de ikke anvender Git eller " "Mercurial." msgid "Use extended (git) patch format" msgstr "Brug udviddet (git) lap-format" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" "At fjerne Mercurial indledningen fjerner brugernavn og forælder information. " "Kun brugbart hvis modtageren ikke anvender Mercurial og ikke kan lide at se " "indledningen." msgid "Plain, do not prepend Hg header" msgstr "Simpel, uden Hg header" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" "Bundter gemmer komplette ændringer i binær form. Upstream brugere kan trække " "fra dem. Dette er den sikreste måde at sende ændringer til Mercurial brugere." msgid "Send single binary bundle, not patches" msgstr "Send samlet binært bundt, ingen lapper" msgid "send patches as part of the email body" msgstr "send lapper som en del af mail teksten" msgid "body" msgstr "" msgid "send patches as attachments" msgstr "send lapper som vedhæftede filer" msgid "attach" msgstr "vedhæft" msgid "send patches as inline attachments" msgstr "send lapper som integreret tekst" msgid "inline" msgstr "integreret" msgid "add diffstat output to messages" msgstr "tilføj diffstat resultat til beskeder" msgid "diffstat" msgstr "diffstat" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" "Lap-sekvens beskrivelsen bliver sendt i den indledende sammendragsmail med " "[PATCH 0 of N] som emne. Denne skal beskrive effekten af den samlede lap-" "sekvens. Når man sender et bundt vil disse felter udgøre meddelelsestekst og " "-emne. Flag er en komma-separeret liste af mærkater som bliver indsat først " "i besked-emnet." msgid "Write patch series (bundle) description" msgstr "Skriv lap-sekvens (bundt) beskrivelse" msgid "Subject:" msgstr "Emne:" msgid "Changesets" msgstr "Ændringssæt" msgid "Select &All" msgstr "" msgid "Select &None" msgstr "" msgid "Edit" msgstr "Rediger" msgid "Preview" msgstr "Forhåndsvis" msgid "&Settings" msgstr "&Indstillinger" msgid "Send &Email" msgstr "Send &e-post" msgid "&Close" msgstr "&Luk" #, python-format msgid "Ignore filter - %s" msgstr "Ignoreringsmønster - %s" msgid "Glob" msgstr "Glob" msgid "Regexp" msgstr "Regudtr" msgid "Add" msgstr "Tilføj" msgid "Edit File" msgstr "Rediger fil" msgid "Ignore Filter" msgstr "Ignorér filter" msgid "Untracked Files" msgstr "" msgid "Backspace or Del to remove row(s)" msgstr "" msgid "Add ignore filter..." msgstr "Tilføj ignoreringsfilter..." msgid "selected files" msgstr "valgte filer" msgid "Ignore " msgstr "Ignorér " msgid "Invalid glob expression" msgstr "Ugyldig glob-udtryk" msgid "Invalid regexp expression" msgstr "Ugyldig regexp-udtryk" msgid "Unable to read repository status" msgstr "Kan ikke aflæse depotstatus" msgid "New file created" msgstr "" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" msgid "Unable to write .hgignore file" msgstr "Kan ikke skrive .hgignore filen" msgid "Copy working directory files from skeleton" msgstr "" msgid "Create special files (.hgignore, ...)" msgstr "" msgid "Make repo compatible with Mercurial <1.7" msgstr "Gør depot kompatibelt med Mercurial <1.7" msgid "New Repository" msgstr "Nyt depot" msgid "&Create" msgstr "" msgid "Unable to create a config file" msgstr "Kunne ikke oprette en konfig-fil" msgid "Insufficient access rights." msgstr "Utilstrækkelige adgangsrettigheder" msgid "Show Log" msgstr "" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" msgid "Add as &Largefiles" msgstr "" msgid "Add as &Normal Files" msgstr "" msgid "Invalid Patterns" msgstr "" msgid "Failed to process largefiles.patterns." msgstr "" msgid "Word docs (*.doc *.docx)" msgstr "" msgid "PDF docs (*.pdf)" msgstr "" msgid "Excel files (*.xls *.xlsx)" msgstr "" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "" msgid "Refresh lock information" msgstr "" msgid "Lock a file not described in .hglocks" msgstr "" msgid "Stop current operation" msgstr "" msgid "Locked And Lockable Files:" msgstr "" msgid "Path" msgstr "" msgid "Locking User" msgstr "" msgid "Purpose" msgstr "" msgid "Simplelock extension not enabled" msgstr "" msgid "Please enable and configure simplelock" msgstr "" msgid "Open a (nonmergable) file you wish to be locked" msgstr "" msgid "File was not within current repository" msgstr "" #, python-format msgid "Locking %s" msgstr "" #, python-format msgid "Unlocking %s" msgstr "" msgid "Refreshing locks..." msgstr "" #, python-format msgid "Lock of %s successful" msgstr "" #, python-format msgid "Lock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s successful" msgstr "" msgid "Ready, double click to lock or unlock" msgstr "" msgid "Ready" msgstr "" msgid "You can only release your own locks" msgstr "" msgid "Find revisions matching fields of:" msgstr "" msgid "Revision to Match:" msgstr "" msgid "Fields to match:" msgstr "" msgid "Summary (first description line)" msgstr "" msgid "Description" msgstr "Beskrivelse" msgid "Author" msgstr "" msgid "Date" msgstr "Dato" msgid "Files" msgstr "Filer" msgid "Diff contents" msgstr "" msgid "Subrepo states" msgstr "" msgid "Branch" msgstr "Gren" msgid "Phase" msgstr "Fase" msgid "&Match" msgstr "" #, python-format msgid "Find matches - %s" msgstr "" msgid "Revisions to Match:" msgstr "" #, python-format msgid "Match any of %d revisions" msgstr "" msgid "Unknown revision!" msgstr "" msgid "Parse Error!" msgstr "" #, python-format msgid "Merge - %s" msgstr "Flet - %s" msgid "Do you want to exit?" msgstr "Ønsker du at afslutte?" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" msgid "Prepare to merge" msgstr "Forbered fletning" msgid "Verify merge targets and ensure your working directory is clean." msgstr "" "Kontroller hvilke revisioner der bliver flettet og om arbejdskataloget er " "rent." msgid "Not a head revision!" msgstr "Ikke en hovedrevision!" msgid "Merge from (other revision)" msgstr "Flet fra (anden revision)" msgid "Merge to (working directory)" msgstr "Flet med (arbejdskatalog)" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Or use:" msgstr "Eller benyt:" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "" msgid "Discard all changes from the other revision" msgstr "" msgid "&Discard" msgstr "&Forkast" msgid "Confirm Discard Changes" msgstr "Bekræft kassering af ændringer" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" "Ændringerne fra revision %s og alle ikke-flettede forældre vil blive " "kasseret.\n" "\n" "Er du sikker på du vil gøre dette?" msgctxt "working dir state" msgid "Clean" msgstr "" msgid "Merging..." msgstr "" msgid "Automatically advance to next page when merge is complete." msgstr "Fortsæt automatisk til næste side når flet er færdig." #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" msgid "" "No merge conflicts, ready to commit or review" msgstr "" msgid "Commit merge results" msgstr "" msgid "Commit Options" msgstr "" msgid "Commit Now" msgstr "" msgid "Commit Later" msgstr "" msgid "Merge changeset" msgstr "" msgid "Syntax Highlighting" msgstr "" msgid "Paste &Filenames" msgstr "Indsæt &filnavne" msgid "App&ly Format" msgstr "An&vend format" msgid "C&onfigure Format" msgstr "K&onfigurér format" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "" msgid "&Commit to Queue..." msgstr "" msgid "Create &New Queue..." msgstr "" msgid "&Rename Active Queue..." msgstr "" msgid "&Delete Queue..." msgstr "" msgid "&Purge Queue..." msgstr "" msgid "Create Patch Queue" msgstr "Opret lap-kø" msgid "New patch queue name" msgstr "Navn på ny lap-kø" msgid "Create" msgstr "Opret" msgid "Rename Patch Queue" msgstr "Omdøb lap-kø" #, python-format msgid "Rename patch queue '%s' to" msgstr "Omdøb lap-kø '%s' til" msgid "Rename" msgstr "Omdøb" msgid "Delete Patch Queue" msgstr "" msgid "Delete reference to" msgstr "" msgid "Delete" msgstr "Slet" msgid "Purge Patch Queue" msgstr "" msgid "Remove patch directory of" msgstr "Slet lap-folder" msgid "Purge" msgstr "Ryd" msgid "Rename Patch" msgstr "Omdøb lap" #, python-format msgid "Rename patch %s to:" msgstr "Omdøb lap %s til:" msgid "no guards" msgstr "" msgid "Patch Queue" msgstr "lap-kø" msgctxt "MQ QPush" msgid "Push" msgstr "" msgid "Apply one patch" msgstr "Anvend én lap" msgctxt "MQ QPush" msgid "Push all" msgstr "" msgid "Apply all patches" msgstr "Anvend alle lapper" msgid "Pop" msgstr "" msgid "Unapply one patch" msgstr "Fjern én lap" msgid "Pop all" msgstr "" msgid "Unapply all patches" msgstr "Fjern alle lapper" msgid "Go &to Patch" msgstr "&Gå til lap" msgid "&Apply Only This Patch" msgstr "" msgid "Apply only the selected patch" msgstr "" msgid "&Finish Patch" msgstr "&Afslut lap" msgid "Move applied patches into repository history" msgstr "Flyt anvendte lapper ind i depotet" msgid "&Delete Patches..." msgstr "&Slet lapper..." msgid "Delete selected patches" msgstr "Slet valgte lapper" msgid "Re&name Patch..." msgstr "&Omdøb lap..." msgid "Set &Guards..." msgstr "" msgid "Configure guards for selected patch" msgstr "Konfigurer vagter for valgte lap" msgid "Patch Queue Actions Toolbar" msgstr "Lap kø værktøjslinje" msgid "Configure guards" msgstr "" #, python-format msgid "Input new guards for %s:" msgstr "" msgid "Confirm patch queue switch" msgstr "Bekræft skift af lap-kø" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "Ønsker du at aktivere lap-kø '%s'?" #, python-format msgid "Guards: %d/%d" msgstr "" msgid "MQ options" msgstr "" msgid "Force push or pop (--force)" msgstr "" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "Afventende Perforce ændringslister - %s" msgid "Submitting p4 changelist..." msgstr "Indsender p4-ændringsliste..." msgid "Reverting p4 changelist..." msgstr "" msgid "Patch Branch Toolbar" msgstr "" msgid "Merge all pending dependencies" msgstr "Flet alle afventende afhængigheder" msgid "Backout current patch branch" msgstr "Omgør nuværende gren af lap" msgid "Backport part of a changeset to a dependency" msgstr "Portér bagud for en del af et ændringssæt til en afhængighed" msgid "Start a new patch branch" msgstr "Start en ny gren for lap" msgid "Edit patch dependency graph" msgstr "Redigér graf for lap-afhængighed" msgid "will be closed" msgstr "vil blive lukket" #, python-format msgid "needs merge of %i heads\n" msgstr "kræver flet af %i hoveder\n" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "kræver flet med %s (gennem %s)\n" #, python-format msgid "needs merge with %s\n" msgstr "kræver flet med %s\n" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "kræver opdatering af diff base til spids af %s\n" msgid "&Goto (update workdir)" msgstr "" msgid "&Merge" msgstr "&Flet" msgid "No patch branch selected" msgstr "" msgid "No editor found" msgstr "" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" msgid "Graph" msgstr "Graf" msgid "Status" msgstr "Status" msgid "Title" msgstr "Titel" msgid "Message" msgstr "Besked" msgid "New Patch Branch" msgstr "" msgid "Patch message:" msgstr "" msgid "Patch date:" msgstr "" msgid "Patch user:" msgstr "" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "Send gennemgang" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "Ugyldige indstillinger - ReviewBoard-serveren er ikke opsat" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "" "Ugyldige indstillinger - Du mangler at angive dit ReviewBoard-brugernavn" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" msgid "Review Board" msgstr "" msgid "Password:" msgstr "Adgangskode:" msgid "Error" msgstr "Fejl" #, python-format msgid "Review draft posted to %s\n" msgstr "Gennemgå udkast sendt til %s\n" #, python-format msgid "Review published to %s\n" msgstr "Gennemgå udgivet til %s\n" msgid "Success" msgstr "Succes" msgid "Repository ID:" msgstr "Depot-ID:" msgid "Post Review" msgstr "Indsend gennemgang" msgid "Review ID:" msgstr "Gennemgang-ID:" msgid "Update the fields of this existing request" msgstr "Opdatér felterne for denne eksisterende forespørgsel" msgid "Update Review" msgstr "Opdatér gennemgang" msgid "Create diff with all outgoing changes" msgstr "Opret diff med alle udgående ændringer" msgid "Create diff with all changes on this branch" msgstr "Opret diff med alle ændringer på denne gren" msgid "Publish request immediately" msgstr "Udgiv straks forespørgsel" msgid "%p%" msgstr "%p%" msgid "Connecting to Review Board..." msgstr "" msgid "Target:" msgstr "Mål:" msgid "Do not modify working copy (-k/--keep)" msgstr "" #, python-format msgid "Prune - %s" msgstr "" msgid "&Prune" msgstr "" msgid "No unknown files found" msgstr "Der blev ikke fundet ukendte filer" msgid "No ignored files found" msgstr "Der blev ikke fundet ignorerede filer" msgid "No trash files found" msgstr "" msgid "Delete empty folders" msgstr "Slet tomme mapper" msgid "Preserve files beginning with .hg" msgstr "Bevar filer som begynder med .hg" #, python-format msgid "%s - purge" msgstr "" msgid "Checking" msgstr "Kontrollerer" msgid "Ready to purge." msgstr "" #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "" msgstr[1] "" msgid "Confirm file deletions" msgstr "Bekræft sletning af filer" msgid "Are you sure you want to delete these files and/or folders?" msgstr "Er du sikker på at du vil slette disse filer og/eller mapper?" msgid "Deletion failures" msgstr "Mislykkede sletninger" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "" msgstr[1] "" msgid "Deleting trash folder..." msgstr "Sletter affaldsmappe" #, python-format msgid "Deleted %d files" msgstr "Slettede %d filer" #, python-format msgid "Deleted %d files and %d folders" msgstr "Slettede %d filer og %d mapper" msgid "Delete Patches" msgstr "" msgid "Remove patches from queue?" msgstr "" msgid "Keep patch files" msgstr "" #, python-format msgid "Patch fold - %s" msgstr "" msgid "New patch message:" msgstr "" msgid "Patches to fold" msgstr "" msgid "&Undo" msgstr "" msgid "&Redo" msgstr "" msgid "Cu&t" msgstr "" msgid "&Copy" msgstr "" msgid "&Paste" msgstr "" msgid "&Editor Options" msgstr "" msgid "&Wrap" msgstr "" msgctxt "wrap mode" msgid "&None" msgstr "" msgid "&Word" msgstr "" msgid "&Character" msgstr "" msgid "White&space" msgstr "" msgid "&Visible" msgstr "" msgid "&Invisible" msgstr "" msgid "&AfterIndent" msgstr "" msgid "&TAB Inserts" msgstr "" msgid "&Auto" msgstr "" msgid "&TAB" msgstr "" msgid "&Spaces" msgstr "" msgid "EOL &Visibility" msgstr "" msgid "EOL &Mode" msgstr "" msgid "&Windows" msgstr "" msgid "&Unix" msgstr "" msgid "&Mac" msgstr "" msgid "&Auto-Complete" msgstr "" msgid "### regular expression ###" msgstr "" msgid "Regular expression search pattern" msgstr "Regulært udtryk" msgid "Wrap search" msgstr "" msgid "Prev" msgstr "" msgid "Next" msgstr "" msgid "Unable to read file" msgstr "" msgid "Could not open the specified file for reading." msgstr "" msgid "This appears to be a binary file." msgstr "" msgid "An error occurred while reading the file." msgstr "" msgid "Text Translation Failure" msgstr "" msgid "Could not translate the file content from native encoding." msgstr "" msgid "Several characters would be lost." msgstr "" msgid "Unable to write file" msgstr "" msgid "Could not translate the file content to native encoding." msgstr "" msgid "Could not open the specified file for writing." msgstr "" msgid "An error occurred while writing the file." msgstr "" msgid "Try refreshing your repository." msgstr "" #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
              Please edit your config" msgstr "" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
              Please fix your config" msgstr "" #, python-format msgid "Operation aborted:

              %(arg0)s." msgstr "" msgid "Repository is locked" msgstr "Depot er låst" msgid "hint:" msgstr "" msgid "Repository Error" msgstr "" msgid "No visual editor configured" msgstr "Ingen visuel editor konfigureret" msgid "Please configure a visual editor." msgstr "Vælg en visuel editor." msgid "Editor launch failure" msgstr "" msgid "Failed to open path in terminal" msgstr "" #, python-format msgid "\"%s\" is not a valid directory" msgstr "" #, python-format msgid "Invalid configuration: %s" msgstr "" msgid "Unable to start the following command:" msgstr "" msgid "No shell configured" msgstr "" msgid "A terminal shell must be configured" msgstr "" msgid "Please enter a username" msgstr "Indtast venligst et brugernavn" msgid "You must identify yourself to Mercurial" msgstr "Du er nødt til at identificere dig for Mercurial" msgid "Unable to translate input to local encoding." msgstr "" msgid "Checkmark files to add" msgstr "" msgid "Checkmark files to forget" msgstr "" msgid "Forget" msgstr "Glem" msgid "Checkmark files to revert" msgstr "" msgid "Revert" msgstr "Tilbagefør" msgid "Checkmark files to remove" msgstr "" msgid "Remove" msgstr "Fjern" #, python-format msgid "%s - hg %s" msgstr "" msgid "Do not save backup files (*.orig)" msgstr "Gem ikke sikkerhedskopi-filer (*.orig)" msgid "Force removal of modified files (--force)" msgstr "" msgid "Add &Largefiles" msgstr "" msgid "No files selected" msgstr "Ingen filer markeret" msgid "No operation to perform" msgstr "Ingen operation at udføre" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" msgid "Remove &Unmodified Files" msgstr "" msgid "Remove &All Selected Files" msgstr "" msgid "Rebase changeset and descendants" msgstr "" msgid "To rebase destination" msgstr "" msgid "Swap source and destination" msgstr "" msgid "Keep original changesets (--keep)" msgstr "" msgid "Keep original branch names (--keepbranches)" msgstr "" msgid "Collapse the rebased changesets (--collapse)" msgstr "" msgid "Rebase entire source branch (-b/--base)" msgstr "" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "" msgid "Rebase" msgstr "Rebase" #, python-format msgid "Rebase - %s" msgstr "" msgid "" "Before rebase, you must
              commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the rebase" msgstr "" msgid "Rebase is complete" msgstr "" msgid "Rebase failed" msgstr "" msgid "Rebase aborted" msgstr "" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" msgid "Exiting with an unfinished rebase is not recommended." msgstr "" msgid "Consider aborting the rebase first." msgstr "" #, python-format msgid "Merge rejected patch chunks into %s" msgstr "Flet afviste lap-blokke ind i %s" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "Marker denne blok som løst, gå til næste uløste" msgid "Mark this chunk as unresolved" msgstr "Marker denne blok som uløst" msgid "Reload File" msgstr "" msgid "Are you sure you want to reload this file?" msgstr "" msgid "All unsaved changes will be lost." msgstr "" msgid "Warning" msgstr "Advarsel" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" msgid "Copy source -> destination" msgstr "" msgid "Copy Error" msgstr "" msgid "Rename Error" msgstr "" msgid "Select Source File" msgstr "" msgid "Select Source Folder" msgstr "Vælg kilde-mappe" msgid "Source does not exist." msgstr "" msgid "The source must be within the repository tree." msgstr "" msgid "The destination must be within the repository tree." msgstr "" msgid "Destination file already exists." msgstr "" msgid "Are you sure you want to overwrite it ?" msgstr "" #, python-format msgid "Copy - %s" msgstr "" #, python-format msgid "Rename - %s" msgstr "" msgid "Show all" msgstr "Vis alt" msgid "### revision set query ###" msgstr "" msgid "Clear current query and query text" msgstr "" msgid "Trigger revision set query" msgstr "" msgid "Open advanced query editor" msgstr "" msgid "Delete selected query from history" msgstr "" msgid "filter" msgstr "" msgid "Toggle filtering of non-matched changesets" msgstr "" msgid "Show/Hide hidden changesets" msgstr "" msgid "Toggle graft relations visibility" msgstr "" msgid "Keyword Search" msgstr "" msgid "Revision Set" msgstr "Revisionssæt" msgid "(unsaved)" msgstr "" msgid "Display graph the named branch only" msgstr "" msgid "Display only active branches" msgstr "Vis kun aktive grene" msgid "Display closed branches" msgstr "Vis lukkede grene" msgid "Include all ancestors" msgstr "Inkluder alle forgængere" msgctxt "column header" msgid "Graph" msgstr "" msgctxt "column header" msgid "Rev" msgstr "" msgctxt "column header" msgid "Branch" msgstr "" msgctxt "column header" msgid "Description" msgstr "" msgctxt "column header" msgid "Author" msgstr "Forfatter" msgctxt "column header" msgid "Tags" msgstr "Mærker" msgctxt "column header" msgid "Latest tags" msgstr "Nyeste mærker" msgctxt "column header" msgid "Node" msgstr "" msgctxt "column header" msgid "Git Commit" msgstr "" msgctxt "column header" msgid "Age" msgstr "Alder" msgctxt "column header" msgid "Local Time" msgstr "" msgctxt "column header" msgid "UTC Time" msgstr "" msgctxt "column header" msgid "Changes" msgstr "" msgctxt "column header" msgid "Converted From" msgstr "" msgctxt "column header" msgid "Phase" msgstr "Fase" msgctxt "column header" msgid "Filename" msgstr "Filnavn" msgid "Searching..." msgstr "" #, python-format msgid "filling (%d)" msgstr "" msgid "Mercurial User" msgstr "" msgid "Repository Registry" msgstr "Depotliste" msgid "Show &Paths" msgstr "" msgid "Show S&hort Paths" msgstr "" msgid "&Scan Repositories at Startup" msgstr "" msgid "Scan &Remote Repositories" msgstr "" msgid "&Refresh Repository List" msgstr "&Opdater depotliste" msgid "Refresh the Repository Registry list" msgstr "Opdater depotlisten" msgid "&Open" msgstr "" msgid "Open the repository in a new tab" msgstr "Åben depot på fane" msgid "&Open All" msgstr "" msgid "Open all repositories in new tabs" msgstr "" msgid "New &Group" msgstr "" msgid "Create a new group" msgstr "" msgid "Rename the entry" msgstr "" msgid "Settin&gs" msgstr "" msgid "View the repository's settings" msgstr "Se depotets indstillinger" msgid "Re&move from Registry" msgstr "" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" msgid "Clon&e..." msgstr "" msgid "Clone Repository" msgstr "Klon depot" msgid "E&xplore" msgstr "" msgid "Open the repository in a file browser" msgstr "" msgid "&Terminal" msgstr "" msgid "Open a shell terminal in the repository root" msgstr "" msgid "&Add Repository..." msgstr "" msgid "Add a repository to this group" msgstr "Tilføj et depot til denne gruppe" msgid "A&dd Subrepository..." msgstr "" msgid "Convert an existing repository into a subrepository" msgstr "" msgid "Remo&ve Subrepository..." msgstr "" msgid "Remove this subrepository from the current revision" msgstr "" msgid "Copy the root path of the repository to the clipboard" msgstr "" msgid "Sort by &Name" msgstr "" msgid "Sort the group by short name" msgstr "" msgid "Sort by &Path" msgstr "" msgid "Sort the group by full path" msgstr "" msgid "&Sort by .hgsub" msgstr "" msgid "Order the subrepos as in .hgsub" msgstr "" msgid "Select repository directory to add" msgstr "" msgid "Select an existing repository to add as a subrepo" msgstr "" msgid "Cannot add subrepository" msgstr "" #, python-format msgid "%s is not a valid repository" msgstr "" #, python-format msgid "\"%s\" is not a folder" msgstr "" msgid "A repository cannot be added as a subrepo of itself" msgstr "" #, python-format msgid "" "The selected folder:

              %s

              is not inside the target repository." "

              This may be allowed but is greatly discouraged.
              If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" msgid "Cannot open repository" msgstr "Kan ikke åbne depot" #, python-format msgid "The selected repository:

              %s

              cannot be open!" msgstr "" msgid "Subrepository already exists" msgstr "" #, python-format msgid "" "The selected repository:

              %s

              is already a subrepository of:" "

              %s

              as: \"%s\"" msgstr "" msgid "Failed to add subrepository" msgstr "" #, python-format msgid "Cannot open the .hgsub file in:

              %s" msgstr "" msgid "Failed to add repository" msgstr "" #, python-format msgid "The .hgsub file already contains the line:

              %s" msgstr "" msgid "Subrepo added to .hgsub file" msgstr "" #, python-format msgid "" "The selected subrepo:

              %s

              has been added to the .hgsub " "file of the repository:

              %s

              Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" "Det valgte underdepot:

              %s

              er blevet tilføjet til .hgsub " "filen i depotet:

              %s

              Husk at du skal lave en " "integration af ændringerne i .hgsub for at bekræfte tilføjelsen " "af underdepotet." #, python-format msgid "Cannot update the .hgsub file in:

              %s" msgstr "" msgid "Could not open .hgsub file" msgstr "" msgid "Cannot read the .hgsub file.

              Subrepository removal failed." msgstr "" msgid "Subrepository not found" msgstr "" msgid "" "The selected subrepository was not found on the .hgsub file.

              Perhaps it " "has already been removed?" msgstr "" msgid "&Yes" msgstr "&Ja" msgid "&No" msgstr "&Nej" msgid "Remove the selected repository?" msgstr "" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" msgid "Subrepository removed from .hgsub" msgstr "" msgid "" "The selected subrepository has been removed from the .hgsub file.

              Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" msgid "Could not update .hgsub file" msgstr "" msgid "Cannot update the .hgsub file.

              Subrepository removal failed." msgstr "" #, python-format msgid "Unsupported repository type (%s)" msgstr "" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "" msgid "New Group" msgstr "" msgid "Confirm Delete" msgstr "Bekræft sletning" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "" msgid "Could not get subrepository list" msgstr "" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

              %s" msgstr "" msgid "Could not open some subrepositories" msgstr "" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

              %s

              The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

              %s" msgstr "" msgid "Updating repository registry" msgstr "" #, python-format msgid "Loading repository %s" msgstr "" msgid "Repository Registry updated" msgstr "" msgid "Close tab" msgstr "" msgid "Close other tabs" msgstr "" msgid "Undo close tab" msgstr "" msgid "Reopen last closed tab" msgstr "" msgid "Undo close other tabs" msgstr "" msgid "Reopen last closed tab group" msgstr "" msgid "Failed to open repository" msgstr "Kunne ikke åbne depot" msgid "&Sort" msgstr "" #, python-format msgid "Local Repository %s" msgstr "" #, python-format msgid "" "An exception happened while loading the subrepos of:

              \"%s\"

              " msgstr "" #, python-format msgid "The exception error message was:

              %s

              " msgstr "" msgid "Click OK to continue or Abort to exit." msgstr "" msgid "Error loading subrepos" msgstr "" msgid "Unable to update repository name" msgstr "" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "" msgid "default" msgstr "" msgid "C&hoose Log Columns..." msgstr "" msgid "&Resize Columns" msgstr "" #, python-format msgid "Goto ancestor of %s and %s" msgstr "Gå til forgænger for %s og %s" #, python-format msgid "Can't find revision '%s'" msgstr "" msgid "Drag to change order" msgstr "" msgid "Workbench Log Columns" msgstr "Arbejdsbord log kolonner" msgctxt "tab tooltip" msgid "Revision details" msgstr "" msgctxt "tab tooltip" msgid "Commit" msgstr "" msgctxt "tab tooltip" msgid "Search" msgstr "" msgctxt "tab tooltip" msgid "Console log" msgstr "" msgctxt "tab tooltip" msgid "Synchronize" msgstr "" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "" #, python-format msgid "%s " msgstr "" #, python-format msgid "Found %d incoming changesets" msgstr "" msgid "Pull" msgstr "Træk" msgid "Pull incoming changesets into your repository" msgstr "" msgid "Reject incoming changesets" msgstr "" #, python-format msgid "Push current branch (%s)" msgstr "" #, python-format msgid "Push up to current revision (#%d)" msgstr "" #, python-format msgid "Push up to revision #%d" msgstr "" msgid "Push all" msgstr "" msgid "no outgoing changesets" msgstr "" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets" msgstr "%d udgående ændringer" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "" msgid "Nothing to push" msgstr "" msgid "No revision found" msgstr "" #, python-format msgid "%s - verify repository" msgstr "" #, python-format msgid "%s - recover repository" msgstr "%s - genskab depot" msgid "No transaction available" msgstr "" msgid "There is no rollback transaction available" msgstr "" msgid "Undo last commit?" msgstr "Fortryd sidste integration?" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "" msgid "Undo last transaction?" msgstr "" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "" msgid "Unable to determine working copy revision\n" msgstr "" msgid "Remove current working revision?" msgstr "" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" msgid "Tab cannot exit" msgstr "" msgid "Pus&h" msgstr "" msgid "Push to &Here" msgstr "" msgid "Push Selected &Branch" msgstr "" msgid "Push &All" msgstr "" msgid "&Update..." msgstr "" msgid "Bro&wse at Revision" msgstr "" msgid "&Merge with Local..." msgstr "" msgid "&Tag..." msgstr "" msgid "Boo&kmark..." msgstr "" msgid "Top&ic..." msgstr "" msgid "Sig&n..." msgstr "" msgid "&Backout..." msgstr "" msgid "Revert &All Files..." msgstr "" msgid "Copy &Hash" msgstr "" msgid "E&xport" msgstr "" msgid "E&xport Patch..." msgstr "" msgid "&Email Patch..." msgstr "" msgid "&Archive..." msgstr "" msgid "&Bundle Rev and Descendants..." msgstr "" msgid "Change &Phase to" msgstr "Ret &Fase til" msgid "&Graft to Local..." msgstr "&Pod til Lokal..." msgid "Modi&fy History" msgstr "" msgid "&Unapply Patch" msgstr "&Fjern lap" msgid "Import to &MQ" msgstr "" msgid "MQ &Options" msgstr "" msgid "&Rebase..." msgstr "" msgid "&Prune..." msgstr "" msgid "&Strip..." msgstr "" msgid "Post to Re&view Board..." msgstr "" msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "" msgid "Write diff file" msgstr "" msgid "Unable to write diff file" msgstr "" msgid "Unable to compress history" msgstr "" msgid "Selected changeset pair not related" msgstr "" msgid "Visual Diff..." msgstr "" msgid "Export Diff..." msgstr "" msgid "Export Selected..." msgstr "" msgid "Email Selected..." msgstr "" msgid "Copy Selected as Patch" msgstr "" msgid "Archive DAG Range..." msgstr "" msgid "Export DAG Range..." msgstr "" msgid "Email DAG Range..." msgstr "" msgid "Bundle DAG Range..." msgstr "" msgid "Bisect - Good, Bad..." msgstr "" msgid "Bisect - Bad, Good..." msgstr "" msgid "Compress History..." msgstr "" msgid "Rebase..." msgstr "" msgid "Goto common ancestor" msgstr "Gå tl fælles forgænger" msgid "Graft Selected to local..." msgstr "Pod valgte til lokal..." msgid "&Prune Selected..." msgstr "" msgid "Post Selected to Review Board..." msgstr "" msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "Anvend lap" msgid "Apply onto original parent" msgstr "" msgid "Apply only this patch" msgstr "Anvend denne lap" msgid "Fold patches..." msgstr "" msgid "Delete patches..." msgstr "" msgid "Rename patch..." msgstr "" msgid "Pull to here..." msgstr "" msgid "Visual diff..." msgstr "" msgid "Export patch" msgstr "" msgid "Patch Files (*.patch)" msgstr "" msgid "Cannot export revision" msgstr "" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" msgid "There is already an existing folder with that same name." msgstr "" msgid "Replace" msgstr "Erstat" msgid "Append" msgstr "Tilføj" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" msgid "What do you want to do?\n" msgstr "" msgid "Replace the existing patch files.\n" msgstr "" msgid "Append the changes to the existing patch files.\n" msgstr "" msgid "Abort the export operation.\n" msgstr "" msgid "Patch files already exist" msgstr "" msgid "Patch exported" msgstr "" #, python-format msgid "" "Revision #%d (%s) was exported to:

              %s%s%s" msgstr "" msgid "Patches exported" msgstr "" #, python-format msgid "%d patches were exported to:

              %s" msgstr "" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

              Are you sure you want to use revert?

              (use " "update to checkout another revision)" msgstr "" msgid "Filter b&y" msgstr "" msgid "&Ancestors and Descendants" msgstr "" msgid "A&uthor" msgstr "" msgid "&Branch" msgstr "" msgid "&More Options..." msgstr "" msgid "Unable to merge" msgstr "Ude af stand til at flette" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "" msgid "Unable to backout" msgstr "Kan ikke omgøre" msgid "Write bundle" msgstr "" msgid "Backwards phase change requested" msgstr "Baglæns faseskift" msgid "Do you really want to make this revision secret?" msgstr "" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" msgid "&Make secret" msgstr "" msgid "&Cancel" msgstr "&Annuler" msgid "Do you really want to force a backwards phase transition?" msgstr "Vil du virkelig tvinge et baglæns faseskift igennem?" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" "Du er i gang med at ændre fasen af revision %d,\n" "fra \"%s\" til \"%s\".\n" "\n" "Bemærk, \"%s\" er en tidligere fase end \"%s\".\n" "\n" "Det er ikke anbefalet at gå til tidligere faser.\n" "Hvis du ændrer en revision du allerede har skubbet ud\n" "til en server kan det medføre flere hoveder.\n" "\n" "Vær forsigtig!" msgid "&Force" msgstr "" msgid "Cannot import selected revision" msgstr "" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" msgid "Invalid command" msgstr "" msgid "The selected command is empty" msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" msgid "Failed to execute custom TortoiseHg command" msgstr "" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "" msgid "Failed to execute custom command" msgstr "" #, python-format msgid "The command \"%s\" could not be executed." msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" msgid "&Edit Toolbar" msgstr "" msgid "&Refresh" msgstr "&Opdater" msgid "&Filter Toolbar" msgstr "" #, python-format msgid "TortoiseHg: %s" msgstr "" msgid "S&tatus Bar" msgstr "" #, python-format msgid "Resolve Conflicts - %s" msgstr "" msgid "Local revision information" msgstr "" msgid "Other revision information" msgstr "" msgid "Unresolved conflicts" msgstr "" msgid "Mercurial Re&solve" msgstr "" msgid "Attempt automatic (trivial) merge" msgstr "" msgid "Tool &Resolve" msgstr "" msgid "Merge using selected merge tool" msgstr "" msgid "&Take Local" msgstr "" msgid "Accept the local file version (yours)" msgstr "" msgid "Take &Other" msgstr "" msgid "Accept the other file version (theirs)" msgstr "" msgid "&Mark as Resolved" msgstr "" msgid "Mark this file as resolved" msgstr "" msgid "Diff &Local to Ancestor" msgstr "Diff &Lokal til forgænger" msgid "&Diff Other to Ancestor" msgstr "&Diff Anden til forgænger" msgid "Resolved conflicts" msgstr "" msgid "&Edit File" msgstr "&Redigér fil" msgid "Edit resolved file" msgstr "" msgid "3-&Way Diff" msgstr "" msgid "Visual three-way diff" msgstr "" msgid "Visual diff between resolved file and first parent" msgstr "" msgid "&Diff to Other" msgstr "" msgid "Visual diff between resolved file and second parent" msgstr "" msgid "Mark as &Unresolved" msgstr "" msgid "Mark this file as unresolved" msgstr "" msgid "Detected merge/diff tools:" msgstr "" msgid "Command output" msgstr "" msgid "Unable to show subrepository files" msgstr "" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" msgid "There are merge conflicts to be resolved" msgstr "" msgid "All conflicts are resolved." msgstr "" msgid "There are no conflicting file merges." msgstr "" msgid "Exit without finishing resolve?" msgstr "" msgid "Unresolved conflicts remain. Are you sure?" msgstr "" msgid "E&xit" msgstr "" msgid "Ext" msgstr "" msgid "Repository" msgstr "Depot" msgid "" msgstr "" msgid "File List Toolbar" msgstr "" msgid "Ma&nifest Mode" msgstr "" msgid "Show all version-controlled files in tree view" msgstr "" msgid "&Flat List" msgstr "" msgid "### filter text ###" msgstr "" msgid "Changed by &This Commit" msgstr "" msgid "Show files changed by this commit" msgstr "" msgid "Compare to &1st Parent" msgstr "" msgid "Compare to &2nd Parent" msgstr "" msgid "Toggle parent to be used as the base revision" msgstr "" msgid "List Optio&ns" msgstr "" #, python-format msgid "%s - Revision Details (%s)" msgstr "" #, python-format msgid "Revert - %s" msgstr "" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "" msgid "Revert all files to this revision" msgstr "" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "" msgid "null revision (i.e. remove file(s))" msgstr "" msgid "Changeset:" msgstr "Ændring:" msgid "Child:" msgstr "Barn:" msgid "Predecessors:" msgstr "" msgid "Successors:" msgstr "" msgid "Head is closed!" msgstr "" msgid "Changesets where username contains string." msgstr "" msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" msgid "Like \"keyword(string)\" but accepts a regex." msgstr "" msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" msgid "The named bookmark or all bookmarks." msgstr "" msgid "The named tag or all tags." msgstr "" msgid "Changeset is tagged." msgstr "" msgid "Changeset is a named branch head." msgstr "" msgid "Changeset is a merge changeset." msgstr "" msgid "Changeset is closed." msgstr "" msgid "" "Changesets within the interval, see help dates" msgstr "" msgid "Greatest common ancestor of the two changesets." msgstr "Største fælles forgænger til de to ændringer" msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" msgid "Changesets which modify files matched by pattern." msgstr "" msgid "Changesets which add files matched by pattern." msgstr "" msgid "Changesets which remove files matched by pattern." msgstr "" msgid "Changesets containing files matched by pattern." msgstr "" msgid "All changesets belonging to the branches of changesets in set." msgstr "" msgid "Members of a set with no children in set." msgstr "" msgid "Changesets which are descendants of changesets in set." msgstr "" msgid "Changesets that are ancestors of a changeset in set." msgstr "Ændringer som er forgængere til en ændring i mængden" msgid "Child changesets of changesets in set." msgstr "" msgid "The set of all parents for all changesets in set." msgstr "" msgid "First parent for all changesets in set, or the working directory." msgstr "" msgid "Second parent for all changesets in set, or the working directory." msgstr "" msgid "Changesets with no parent changeset in set." msgstr "" msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" msgid "Changeset with lowest revision number in set." msgstr "" msgid "Changeset with highest revision number in set." msgstr "" msgid "First n members of a set." msgstr "" msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "" msgid "All changesets, the same as 0:tip." msgstr "" msgid "Revision Set Query" msgstr "" msgid "all revisions converted from subversion" msgstr "" msgid "changeset which represents converted svn revision" msgstr "" msgid "Common sets" msgstr "" msgid "File pattern sets" msgstr "" msgid "Set Ancestry" msgstr "" msgid "Set Logic" msgstr "" msgid "" "help " "revsets" msgstr "" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" "\n" "Fangede tastaturafbrydelse, afbryder.\n" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "kan ikke læse filen \"%s\". Ignoreret.\n" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" "thg: Kommando '%s' er tvetydig:\n" " %s\n" #, python-format msgid "thg: unknown command '%s'\n" msgstr "thg: Ukendt kommando '%s'\n" #, python-format msgid "thg %s: %s\n" msgstr "thg %s: %s\n" #, python-format msgid "thg: %s\n" msgstr "thg: %s\n" #, python-format msgid "abort: %s!\n" msgstr "afbrudt: %s!\n" #, python-format msgid "abort: %s\n" msgstr "" #, python-format msgid "(%s)\n" msgstr "" msgid "option --config may not be abbreviated!" msgstr "" msgid "invalid arguments" msgstr "ugyldige parametre" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "ukendt profileringsformat '%s' Ignoreret\n" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" "lsprof ikke tilgængelig - installer fra http://codespeak.net/svn/user/arigo/" "hack/misc/lsprof/" msgid "repository root directory or symbolic path name" msgstr "depotrodfolder eller symbolsk stinavn" msgid "enable additional output" msgstr "aktiver yderlig output" msgid "suppress output" msgstr "undertryk output" msgid "display help and exit" msgstr "vis hjælp og exit" msgid "set/override config option (use 'section.name=value')" msgstr "" msgid "enable debugging output" msgstr "" msgid "start debugger" msgstr "start debugger" msgid "print command execution profile" msgstr "udskriv profil for kørselskommando" msgid "do not fork GUI process" msgstr "undlad at forgrene GUI process" msgid "always fork GUI process" msgstr "forgren altid GUI proces" msgid "read file list from file" msgstr "læs fil-liste fra fil" msgid "read file list from file encoding utf-8" msgstr "læs fil-liste fra fil med utf-8 kodning" msgid "thg about" msgstr "thg about" msgid "thg add [FILE]..." msgstr "thg add [FIL]..." msgid "revision to annotate" msgstr "" msgid "open to line" msgstr "" msgid "initial search pattern" msgstr "" msgid "thg annotate" msgstr "thg annotate" #, python-format msgid "invalid line number: %s" msgstr "" msgid "revision to archive" msgstr "" msgid "thg archive" msgstr "thg archive" msgid "merge with old dirstate parent after backout" msgstr "flet med oprindelig forælder efter omgør" msgid "parent to choose when backing out merge" msgstr "" msgid "revision to backout" msgstr "ændring at omgøre" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "thg backout [FLAG]... [[-r] REV]" msgid "thg bisect" msgstr "thg bisect" msgid "revision" msgstr "" msgid "thg bookmarks [-r REV] [NAME]" msgstr "" msgid "only one new bookmark name allowed" msgstr "" msgid "the clone will include an empty working copy (only a repository)" msgstr "" msgid "revision, tag or branch to check out" msgstr "" msgid "include the specified changeset" msgstr "" msgid "clone only the specified branch" msgstr "" msgid "use pull protocol to copy metadata" msgstr "brug træk-protokol til at kopiere metadata" msgid "use uncompressed transfer (fast over LAN)" msgstr "" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "" msgid "record user as committer" msgstr "noter bruger som integrator" msgid "record datecode as commit date" msgstr "noter dato som integrationsdato" msgid "thg commit [OPTIONS] [FILE]..." msgstr "thg commit [FLAG] [FIL]..." msgid "thg debugblockmatcher" msgstr "" msgid "thg debugbugreport [TEXT]" msgstr "" msgid "thg debugconsole" msgstr "" msgid "thg debuglighthg" msgstr "" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "" msgid "no command specified" msgstr "" msgid "thg drag_copy SOURCE... DEST" msgstr "thg drag_copy KILDE... MÅL" msgid "thg drag_move SOURCE... DEST" msgstr "thg drag_move KILDE... MÅL" msgid "a revision to send" msgstr "" msgid "thg email [REVS]" msgstr "thg email [REVS]" msgid "use only one form to specify the revision" msgstr "brug kun én formular til at angive revisionen" msgid "select the specified revision" msgstr "" msgid "side-by-side comparison of revisions" msgstr "" msgid "thg filelog [OPTION]... FILE" msgstr "" msgid "requires a single filename" msgstr "" msgid "thg forget [FILE]..." msgstr "thg forget [FIL]..." msgid "revisions to graft" msgstr "revisioner at pode" msgid "thg graft [-r] REV..." msgstr "thg graft [-r] REV..." msgid "You must provide revisions to graft" msgstr "Du skal angive revisioner at pode" msgid "ignore case during search" msgstr "ignorer versaler ved søgning" msgid "thg grep" msgstr "thg grep" msgid "thg guess" msgstr "thg guess" msgid "thg help [COMMAND]" msgstr "thg help [KOMMANDO]" msgid "global options:" msgstr "globale indstillinger:" msgid "use \"thg help\" for the full list of commands" msgstr "brug \"thg help\" for den fulde liste af kommandoer" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "" "brug \"thg help\" for den fulde liste af kommandoer eller \"thg -v\" for " "detaljer" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "brug \"thg -v help%s\" for at vise alias og globale flag" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "brug \"thg -v help %s\" for at vise globale flag" msgid "" "list of commands:\n" "\n" msgstr "" "liste af kommandoer:\n" "\n" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" "\n" "aliasser: %s\n" msgid "(no help text available)" msgstr "(ingen hjælpetekst til rådighed)" msgid "options:\n" msgstr "indstillinger:\n" msgid "no commands defined\n" msgstr "ingen kommandoer defineret\n" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "Thg - TortoiseHg's GUI værktøj til Mercurial SCM (Hg)\n" msgid "" "basic commands:\n" "\n" msgstr "" "basale kommandoer:\n" "\n" #, python-format msgid " (default: %s)" msgstr " (standard: %s)" msgid "thg hgignore [FILE]" msgstr "thg hgignore [FIL]" msgid "import to the patch queue (MQ)" msgstr "importer til lappekøen (MQ)" msgid "thg import [OPTION] [SOURCE]..." msgstr "thg import [FLAG] [KILDE]..." msgid "thg init [DEST]" msgstr "thg init [MÅL]" msgid "thg lock" msgstr "" msgid "search for a given text or revset" msgstr "" msgid "(DEPRECATED)" msgstr "" msgid "open a new workbench window" msgstr "åben et nyt arbejdsbordsvindue" msgid "thg log [OPTIONS] [FILE]" msgstr "thg log [FLAG] [FIL]" msgid "cannot specify both -k/--query and filenames" msgstr "" msgid "revision to display" msgstr "" msgid "thg manifest [-r REV] [FILE]" msgstr "thg manifest [-r REV] [FIL]" msgid "revision to merge" msgstr "" msgid "thg merge [[-r] REV]" msgstr "thg merge [[-r] REV]" msgid "Merge revision not specified or not found" msgstr "Flette-revision ikke angivet eller ikke fundet" msgid "a revision to post" msgstr "" msgid "thg postreview [-r] REV..." msgstr "" msgid "reviewboard extension not enabled" msgstr "" #, python-format msgid "see %(url)s" msgstr "" msgid "no revisions specified" msgstr "" msgid "revisions to prune" msgstr "" msgid "thg prune [-r] REV..." msgstr "" msgid "thg purge" msgstr "thg purge" msgid "keep original changesets" msgstr "" msgid "keep original branch names" msgstr "" msgid "rebase from the specified changeset" msgstr "" msgid "rebase onto the specified changeset" msgstr "" msgid "thg rebase -s REV -d REV [--keep]" msgstr "" msgid "Rebase already in progress" msgstr "" msgid "Resuming rebase already in progress" msgstr "" msgid "You must provide source and dest arguments" msgstr "" msgid "thg rejects [FILE]" msgstr "thg rejects [FIL]" msgid "You must provide the path to a file" msgstr "" msgid "thg remove [FILE]..." msgstr "thg remove [FIL]..." msgid "thg rename [SOURCE] [DEST]" msgstr "" msgid "field to give initial focus" msgstr "felt som gives indledende fokus" msgid "thg repoconfig" msgstr "thg repoconfig" msgid "thg resolve" msgstr "thg resolve" msgid "the revision to show" msgstr "" msgid "thg revdetails [-r REV]" msgstr "" msgid "thg revert [FILE]..." msgstr "thg revert [FIL]..." msgid "revision to update" msgstr "valge revision" msgid "thg rupdate [[-r] REV]" msgstr "" msgid "name of the hgweb config file (serve more than one repository)" msgstr "navn på hgweb konfigurationsfilen (bruges af mere end et depot)" msgid "name of the hgweb config file (DEPRECATED)" msgstr "navn på hgweb konfigurationsfilen (FORÆLDET)" msgid "thg serve [--web-conf FILE]" msgstr "" msgid "thg shellconfig" msgstr "thg shellconfig" msgid "thg shelve" msgstr "thg shelve" msgid "sign even if the sigfile is modified" msgstr "" msgid "make the signature local" msgstr "" msgid "the key id to sign with" msgstr "" msgid "do not commit the sigfile after signing" msgstr "" msgid "use as commit message" msgstr "" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "" msgid "Please enable the Gpg extension first." msgstr "" msgid "show files without changes" msgstr "" msgid "show ignored files" msgstr "" msgid "thg status [OPTIONS] [FILE]" msgstr "thg status [FLAG] [FIL]" msgid "discard uncommitted changes (no backup)" msgstr "" msgid "do not back up stripped revisions" msgstr "" msgid "do not modify working copy during strip" msgstr "" msgid "revision to strip" msgstr "" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "" msgid "open the bookmark sync window" msgstr "" msgid "thg sync [OPTION]... [PEER]" msgstr "" msgid "replace existing tag" msgstr "" msgid "make the tag local" msgstr "" msgid "revision to tag" msgstr "" msgid "remove a tag" msgstr "" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "thg tag [-f] [-l] [-m TEKST] [-r REV] [NAVN]" msgid "wait until the second ticks over" msgstr "vent indtil næste sekund" msgid "notify the shell for paths given" msgstr "notificer shell for angivne stier" msgid "remove the status cache" msgstr "fjern status cache" msgid "show the contents of the status cache (no update)" msgstr "vis indholdet af status cache (ingen updatering)" msgid "update all repos in current dir" msgstr "opdater alle depoter i aktuel folder" msgid "thg thgstatus [OPTION]" msgstr "" msgid "thg topics [-r REV] [NAME]" msgstr "" msgid "Please enable the Topic extension first." msgstr "" msgid "only one new topic name allowed" msgstr "" msgid "thg update [-C] [[-r] REV]" msgstr "thg update [-C] [[-r] REV]" msgid "thg userconfig" msgstr "thg userconfig" msgid "changeset to view in diff tool" msgstr "ændring at vise i diff-værktøj" msgid "revisions to view in diff tool" msgstr "revisioner at vise i diff-værktøj" msgid "bundle file to preview" msgstr "bundt-fil som skal forhåndsvises" msgid "launch visual diff tool" msgstr "start visuelt diff-værktøj" msgid "print license" msgstr "udskriv licens" msgid "thg version [OPTION]" msgstr "thg version [FLAG]" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "TortoiseHg Dialoger (version %s), Mercurial (version %s)\n" msgid "Location:" msgstr "" msgid "Update to:" msgstr "Opdater til:" msgid "Options:" msgstr "Indstillinger:" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "" msgid "Perform a push before updating (-p/--push)" msgstr "" msgid "Allow pushing new branches (--new-branch)" msgstr "" msgid "Force push to remote location (-f/--force)" msgstr "" msgid "remove working directory" msgstr "" msgid "unknown revision!" msgstr "ukendt revision!" #, python-format msgid "Remote Update - %s" msgstr "" msgid "&Update" msgstr "&Opdatér" msgid "Log" msgstr "" msgid "Repositories" msgstr "" #, python-format msgid "Running at %s" msgstr "" msgid "Stopped" msgstr "" msgid "TortoiseHg Web Server" msgstr "" msgid "Web Server" msgstr "Web server" msgid "Port:" msgstr "" msgid "Status:" msgstr "" msgid "Start" msgstr "Start" msgid "Settings" msgstr "Indstillinger" msgid "" msgstr "" msgid "&True" msgstr "&Sand" msgid "&False" msgstr "&Falsk" msgid "&Unspecified" msgstr "&Uspecificeret" #, python-format msgid "%dpt" msgstr "" msgid "Bold" msgstr "" msgid "Italic" msgstr "" msgid "Strike" msgstr "" msgid "Underline" msgstr "" msgid "&Set..." msgstr "" msgid "&Clear" msgstr "&Ryd" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "" msgid "&Browse..." msgstr "" msgid "UI Language" msgstr "Brugerflade sprog" msgid "Specify your preferred user interface language (restart needed)" msgstr "Angiv dit foretrukne sprog for brugerflade (genstart påkrævet)" msgid "Three-way Merge Tool" msgstr "3-vejs fletteværktøj" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" msgid "Visual Diff Tool" msgstr "Værktøj til visuel forskel" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" "Angiv værktøj til visuel forskel, som beskrevet i [merge-tools] sektionen af " "din Mercurial konfigurationsfil. Hvis den ikke specificeres, så vil " "TortoiseHg anvende det valgte fletteværktøj. Mislykkes dette vil den anvende " "det første anvendelige værktøj den finder." msgid "Visual Editor" msgstr "Visuel editor" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" msgid "CLI Editor" msgstr "CLI editor" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" msgid "Shell" msgstr "" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
              Default, Windows: cmd.exe /" "K title %(reponame)s
              Default, OS X: not set
              Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" msgid "Immediate Operations" msgstr "" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" msgid "Tab Width" msgstr "Tab størrelse" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" msgid "Force Repo Tab" msgstr "" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "" msgid "Monitor Repo Changes" msgstr "" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" msgid "Max Diff Size" msgstr "Maksimal diff-størrelse" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" "Den maksimale størrelse (i KB) hvor TortoiseHg viser ændringer i changelog-, " "status- og integrér-vinduerne. En værdi på betyder ingen grænse. Standard: " "1024 (1MB)" msgid "Fork GUI" msgstr "" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" msgid "Full Path Title" msgstr "Fuld titel på sti" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" "Vis en fuld mappe-sti for lageret i dialog-titlen i stedet for blot " "rodmappens navn. Standard: Falsk" msgid "Auto-resolve merges" msgstr "" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" msgid "New Repo Skeleton" msgstr "" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "Arbejdsbord" msgid "Single Workbench Window" msgstr "Kun et arbejdsbordsvindue" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" msgid "Default widget" msgstr "" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" msgid "" "Open new tabs next\n" "to the current tab" msgstr "" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" msgid "Author Coloring" msgstr "Forfatterfarver" msgid "Color changesets by author name. Default: False" msgstr "" msgid "Full Authorname" msgstr "" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" msgid "Task Tabs" msgstr "" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" msgid "Task Toolbar Order" msgstr "" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
              Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
              Valid names are: log commit sync grep and " "pbranch.
              Default: log commit grep pbranch | sync" msgstr "" msgid "Long Summary" msgstr "Langt uddrag" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" msgid "Log Batch Size" msgstr "Batchstørrelse for log" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "Antal revisioner der bliver læst og vist ad gangen. Standard: 500" msgid "Dead Branches" msgstr "Døde Grene" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" "Kommasepareret liste af gren-navne som skal skjules når der laves en liste " "af gren-navne for et depot. Standard: Ingen (tom)" msgid "Branch Colors" msgstr "Grenfarver" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" "Blank-separeret liste af gren-navne og farver på formen \"gren:#XXXXXX\". " "Blanktegn og kolon'er i gren-navnet skal skrive med undvigesekvens med " "foranstillet backslash (\\). På samme måde kan andre tegn kodes på denne " "måde, f.eks. \\u0040 for @ tegnet, og \\n for linjeskift. Standard: Ingen " "(tom)" msgid "Hide Tags" msgstr "Skjul mærkater" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" "Blank-separeret liste af mærkater som ikke bliver vist. Brugbart eksempel: " "\"qbase qparent qtip\" vil skjule standard-mærkaterne som bliver indsat af " "Mercurial Queues udviddelsen. Standard: Ingen (tom)" msgid "Activate Bookmarks" msgstr "" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

              • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
              • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
              • never: Never show any prompt to " "activate any bookmarks.

              Default: prompt" msgstr "" msgid "Show Family Line" msgstr "" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

              Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" msgid "Use optimized graph layouter" msgstr "" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

              Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" msgctxt "config item" msgid "Commit" msgstr "" msgid "Username" msgstr "Brugernavn" msgid "" "Name associated with commits. The common format is:
              Full Name <" "email@example.com>" msgstr "" msgid "Ask Username" msgstr "" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" msgid "Summary Line Length" msgstr "Længde af uddragslinje" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" msgid "Close After Commit" msgstr "Luk efter opdatering" msgid "Close the commit tool after every successful commit. Default: False" msgstr "" "Luk opdateringsværktøjet efter hver succesfuld opdatering. Standard: False" msgid "Push After Commit" msgstr "Skub Efter Integration" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" msgid "Auto Commit List" msgstr "Auto Integration Liste" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" msgid "Auto Exclude List" msgstr "Auto Ekskludér Liste" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" msgid "English Messages" msgstr "Engelske beskeder" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" msgid "New Commit Phase" msgstr "Fase på ny integration" msgid "The phase of new commits. Default: draft" msgstr "Fasen der anvendes for nye integrationer. Standard: draft" msgid "Secret MQ Patches" msgstr "" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "" msgid "Check Subrepo Phase" msgstr "" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" msgid "Monitor working
              directory changes" msgstr "" msgid "" "Select when the working directory status list will be refreshed:
              - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
              TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
              - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
              - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
              Default: auto" msgstr "" msgid "Confirm adding unknown files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Confirm deleting files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Sync" msgstr "" msgid "After Pull Operation" msgstr "Efter trækhandling" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" msgid "Default Push" msgstr "" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

              • all: The default. Push all changes in all " "branches.
              • branch: Push all changes in the current branch.
              • revision: Push the changes in the current branch up to the current revision.

              Default: all" msgstr "" msgid "Confirm Push" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" msgid "Target Combo" msgstr "" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

              • auto: The default. Show the combo if more than one target " "configured.
              • always: Always show the combo.

              Default: auto" msgstr "" msgid "SSH Command" msgstr "" msgid "" "Command to use for SSH connections.

              Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" msgid "Subrepository Features:" msgstr "" msgid "Allow Hg Subrepos" msgstr "" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" msgid "Allow Git Subrepos" msgstr "" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

              See the security note before enabling Git " "subrepos." msgstr "" msgid "Allow SVN Subrepos" msgstr "" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

              See the security note before enabling " "Subversion subrepos." msgstr "" msgid "Server" msgstr "" msgid "Repository Details:" msgstr "" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" msgid "Encoding" msgstr "Indkodning" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" msgid "'Publishing' repository" msgstr "" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" "Kontroller draft fase opførsel for server. Når sand, bliver skubbede " "ændringer set til public både hos klient og server og trækkede eller klonede " "ændringer bliver sat til public hos klienten. Standard: sand" msgid "Web Server:" msgstr "" msgid "Textual description of the repository's purpose or contents." msgstr "Tekstuel beskrivelse af depotets anvendelse eller indhold." msgid "Contact" msgstr "Kontakt" msgid "Name or email address of the person in charge of the repository." msgstr "Navn eller email på den ansvarlige for depotet." msgid "Style" msgstr "Stil" msgid "Which template map style to use" msgstr "Hvilke skabelon mapnings-stil skal anvendes" msgid "Archive Formats" msgstr "Arkivformater" msgid "Comma separated list of archive formats allowed for downloading" msgstr "Kommasepareret liste over arkivformater som kan downloades" msgid "Port" msgstr "Port" msgid "Port to listen on" msgstr "Port at lytte på" msgid "Push Requires SSL" msgstr "Skub kræver SSL" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" "Er det obligatorisk at indgående skub-operationer skal anvende SSL for at " "forbindre password-aflytning" msgid "Stripes" msgstr "Striber" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" "Hvor mange linier skal en \"zebrastribe\" være på. Standard er 1; sæt til 0 " "for at deaktivere." msgid "Max Files" msgstr "Maks filer" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "" msgid "Max Changes" msgstr "Maks ændringer" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "" msgid "Allow Push" msgstr "Tillad skub" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" "Er det tilladt at skubbe til depotet. Hvis tom eller ikke sat, så er skub " "ikke tilladt. Værdien \"*\" betyder at alle kan skubbe, også anonyme " "brugere. I alle andre tilfælde skal fjernbrugeren have givet sig til kende " "med et navn i denne liste (adskilt af blanktegn eller \",\"). Indholdet af " "tillad_skub listen bliver undersøgt efter forbyd_skub listen." msgid "Deny Push" msgstr "Forbyd skub" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" "Er det forbudt at skubbe til depotet. Hvis tom eller ikke sat, så er skub " "ikke forbudt. Værdien \"*\" betyder at ingen kan skubbe. I alle andre " "tilfælde bliver anonyme fjernbrugere afvist, og alle autoriserede " "brugerenavne i denne liste (adskilt af blanktegn eller \",\") bliver også " "afvist. Indholdet af tillad_skub listen bliver undersøgt efter forbyd_skub " "listen." msgid "Proxy" msgstr "Proxy" msgid "Host" msgstr "Vært" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "" "Værtsnavn og (valfrigt) port på proxy server, for eksempel \"myproxy:8000\"" msgid "Bypass List" msgstr "bypass-liste" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "Valgfri. Kommasepareret liste af værtsnavne som skal omgå proxyen" msgid "Optional. User name to authenticate with at the proxy server" msgstr "Valgfri. Brugernavn overfor proxyserveren" msgid "Password" msgstr "adgangskode" msgid "Optional. Password to authenticate with at the proxy server" msgstr "Valgfri. Adgangskode overfor proxyserveren" msgid "From" msgstr "Fra" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "E-postadresse for afsender" msgid "To" msgstr "Til" msgid "Comma-separated list of recipient email addresses" msgstr "Kommasepareret liste over e-post adresser på modtagere" msgid "Cc" msgstr "Cc" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "Kommasepareret liste af cc-modtager-adresser" msgid "Bcc" msgstr "Bcc" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "Kommasepareret liste over blindkopi-modtagere" msgid "method" msgstr "metode" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" "Valgfri. Metode til at sende e-post. Hvis værdien er \"smtp\" (standard) " "anvendes SMTP (konfigureret nedenfor). Andre værdier tages som navn på et " "program der virker som sendmail (det tager et \"-f\" flag for afsender, en " "liste af modtagere på kommandolinjen og beskeden via stdin). Normalt vil det " "være nok at sætte værdien til \"sendmail\" eller \"/usr/sbin/sendmail\" for " "at sende beskeder." msgid "SMTP Host" msgstr "SMTP vært" msgid "Host name of mail server" msgstr "Værtsnavn for mailserver" msgid "SMTP Port" msgstr "SMTP port" msgid "Port to connect to on mail server. Default: 25" msgstr "Port til at forbinde til mail server. Standard: 25" msgid "SMTP TLS" msgstr "SMTP TLS" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "" msgid "SMTP Username" msgstr "SMTP brugernavn" msgid "Username to authenticate to mail server with" msgstr "Brugernavn til mailserver" msgid "SMTP Password" msgstr "SMTP kodeord" msgid "Password to authenticate to mail server with" msgstr "Kodeord til mailserver" msgid "Local Hostname" msgstr "Lokalt værtsnavn" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "" "Værtsnavn som afsenderen kan bruge til at identificere sig overfor mail " "serveren." msgid "Diff and Annotate" msgstr "" msgid "Patch EOL" msgstr "Lap EOL" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" "Normalisér fillinje-endelser under og efter lap til lf eller crlf. Strict " "foretager ingen normalisering. Auto foretager detektering per linje, og er " "den anbefalede indstilling. Standard: strict" msgid "Git Format" msgstr "Git format" msgid "Use git extended diff header format. Default: False" msgstr "Brug git udviddet diff-header format. Standard: Falsk" msgid "MQ Git Format" msgstr "" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" msgid "No Dates" msgstr "Ingen datoer" msgid "Do not include modification dates in diff headers. Default: False" msgstr "Inkluder ikke ændringsdato i diff headers. Standard: Falsk" msgid "Show Function" msgstr "Vis funktion" msgid "Show which function each change is in. Default: False" msgstr "Vis hvilken funktion hver ændring tilhører. Standard: Falsk" msgid "Ignore White Space" msgstr "Ignorer blanktegn" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "" msgid "Ignore WS Amount" msgstr "Ignorer mængden af blanktegn" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "" msgid "Ignore Blank Lines" msgstr "Ignorer tomme linier" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "" msgid "Annotate:" msgstr "" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "" msgid "Fonts" msgstr "" msgid "Message Font" msgstr "" msgid "Font used to display commit messages. Default: monospace 10" msgstr "" msgid "Diff Font" msgstr "" msgid "Font used to display text differences. Default: monospace 10" msgstr "" msgid "ChangeLog Font" msgstr "" msgid "Font used to display changelog data. Default: monospace 10" msgstr "" msgid "Output Font" msgstr "" msgid "Font used to display output messages. Default: sans 8" msgstr "" msgid "Extensions" msgstr "Udvidelser" msgid "Tools" msgstr "" msgid "Hooks" msgstr "" msgid "Issue Tracking" msgstr "Issue overvågning" msgid "Issue Regex" msgstr "Issue Regex" msgid "Defines the regex to match when picking up issue numbers." msgstr "Definerer det regex som skal matches ved opsamling af emne-tal." msgid "Issue Link" msgstr "Emne-henvisning" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" msgid "Inline Tags" msgstr "" msgid "Show tags at start of commit message." msgstr "" msgid "Mandatory Issue Reference" msgstr "Obligatorisk Issue-henvisning" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" msgid "Issue Tracker Plugin" msgstr "" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" msgid "Configure Issue Tracker" msgstr "" msgid "Configure the selected COM Bug Tracker plugin." msgstr "" msgid "Issue Tracker Trigger" msgstr "" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

              • never: Do not update the Issue Tracker " "state automatically.
              • commit: Update the Issue Tracker state after " "a successful commit.

              Default: never" msgstr "" msgid "Changeset Link" msgstr "" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
              The template string " "uses a normal mercurial template syntax, such as:

              • {node|short} : replaced by " "the 12 digit revision id.
              • {rev} : replaced by the revision number." "
              • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
              For example, in order to " "link to bitbucket commit pages you can set this to:
              https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
              You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
              https://github.com/torvalds/" "linux/commit/{gitnode}
              https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
              " msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "" msgid "User name to authenticate with review board" msgstr "" msgid "Password to authenticate with review board" msgstr "" msgid "Server Repository ID" msgstr "" msgid "The default repository id for this repo on the review board server" msgstr "" msgid "Target Groups" msgstr "" msgid "A comma separated list of target groups" msgstr "" msgid "Target People" msgstr "" msgid "A comma separated list of target people" msgstr "" msgid "Kiln Bfiles" msgstr "" msgid "Patterns" msgstr "Mønstre" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" msgid "Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" msgid "System Cache" msgstr "" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "" msgid "Simplelock" msgstr "" msgid "Lock Clone" msgstr "" msgid "" "Location of local clone of organizational lock repository.

              This repository " "must contain a \"locked\" text file" msgstr "" msgid "Largefiles" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" msgid "Minimum Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" msgid "User Cache" msgstr "" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" msgid "Projrc" msgstr "" msgid "Require confirmation" msgstr "" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

              • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
              • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
              • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
              " msgstr "" msgid "Servers" msgstr "" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" msgid "Include" msgstr "" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" msgid "Exclude" msgstr "" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" msgid "Update on incoming" msgstr "" msgid "" "Let the user update the projrc on incoming:
              • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
              • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
              • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                Default: never" msgstr "" msgid "GnuPG" msgstr "" msgid "Specify the path to GPG. Default: gpg" msgstr "" msgid "Key ID" msgstr "" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "" msgid "TortoiseHg Settings" msgstr "TortoiseHg indstillinger" msgid "Iniparse package not found" msgstr "Iniparse pakke ikke fundet" msgid "Can't change settings without iniparse package - view is readonly." msgstr "" "Kan ikke ændre opsætning uden iniparse pakken - data er derfor " "skrivebeskyttet" #, python-format msgid "%s's global settings" msgstr "%s's globale indstillinger" msgid "No repository found" msgstr "Intet depot fundet" msgid "no repo at " msgstr "intet depot på " #, python-format msgid "%s project settings (.hg/projrc)" msgstr "%s projekt-indstillinger (.hg/projrc)" #, python-format msgid "%s repository settings" msgstr "%s depot-indstillinger" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "" "Genstart alle TortoiseHg applikationer for at de følgende ændringer kan slå " "igennem:" msgid "Apply changes before exit?" msgstr "" msgid "&No (discard changes)" msgstr "&Nej (kassér ændringer)" msgid "Reload" msgstr "Genindlæs" msgid "Settings File:" msgstr "Indstillingsfilen:" msgid "Confirm Save" msgstr "" msgid "Save changes before editing?" msgstr "" msgid "&Save" msgstr "&Gem" msgid "Confirm Reload" msgstr "Bekræft genindlæsning" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" "Ikke gemte ændringer vil blive tabt.\n" "Ønsker du at genindlæse?" msgid "Unable to create a Mercurial.ini file" msgstr "Ikke i stand til at oprette en Mercurial.ini-fil" msgid "Insufficient access rights, reverting to read-only mode." msgstr "" msgid "Context Menu" msgstr "Kontekstmenu" msgid "Top menu items:" msgstr "Hovedmenupunkter:" msgid "Sub menu items:" msgstr "Undermenupunkter:" msgid "Menu Behavior" msgstr "Menu-opførsel" msgid "Hide context menu outside repositories" msgstr "Skjul kontekst-menu udenfor depoter" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" "Vis ikke menu-linjer på ikke-versionerede foldere (brug shift+klik for at " "tilsidesætte)" msgid "Icons" msgstr "Ikoner" msgid "Overlays" msgstr "Overlays" msgid "Enabled overlays" msgstr "" msgid "Local disks only" msgstr "Kun lokale diske" msgid "Enabled Overlay Handlers" msgstr "Slog overlægningshåndtering til" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "Advarsel: påvirker alle Tortoise'er, logud påkrævet efter ændring" msgid "Added" msgstr "Tilføjet" msgid "Locked*" msgstr "Låst*" msgid "Ignored*" msgstr "Ignoreret*" msgid "Unversioned" msgstr "Ikke versioneret" msgid "Readonly*" msgstr "Læs-alene*" msgid "Deleted*" msgstr "Slettet*" msgid "*: not used by TortoiseHg" msgstr "*: bruges ikke af TortoiseHg" msgid "Taskbar" msgstr "Proceslinjen" msgid "Show Icon" msgstr "Vis ikon" msgid "Highlight Icon" msgstr "Fremhæv ikon" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" msgid "Explorer Extension Settings - TortoiseHg" msgstr "" msgid "Clear" msgstr "Ryd" msgid "Clear the current shelf file" msgstr "Ryd den nuværende hylde-fil" msgid "Delete the current shelf file" msgstr "Slet den nuværende hylde-fil" msgid "Left Toolbar" msgstr "" msgid "Delete selected chunks" msgstr "Slet valgte blokke" msgid "Move all files right" msgstr "Flyt alle filer til højre" msgid "Move selected file right" msgstr "Flyt valgte fil til højre" msgid "Edit file" msgstr "Rediger fil" msgid "Move selected chunks right" msgstr "Flyt valgte blokke til højre" msgid "Refresh Toolbar" msgstr "" msgid "Refresh" msgstr "Opdater" msgid "New Shelf" msgstr "Ny hylde" msgid "Right Toolbar" msgstr "" msgid "Move selected chunks left" msgstr "Flyt valgte blokke til venstre" msgid "Move selected file left" msgstr "Flyt valgte fil til venstre" msgid "Move all files left" msgstr "Flyt alle filer til venstre" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "" msgid "Delete selected chunks from working copy?" msgstr "" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "" msgid "Are you sure?" msgstr "" msgid "TortoiseHg New Shelf Name" msgstr "TortoiseHg Ny Hylde Navn" msgid "Specify name of new shelf" msgstr "Angiv navnet på den nye hylde" msgid "Bad filename" msgstr "" #, python-format msgid "A shelf name cannot contain %s" msgstr "Et hylde-navn kan ikke indeholde %s" msgid "File already exists" msgstr "" msgid "A shelf file of that name already exists" msgstr "Der findes allerede en hylde-fil med det navn" msgid "New shelf created" msgstr "Ny hylde oprettet" #, python-format msgid "Delete shelf file %s?" msgstr "Slet hylde-fil %s?" msgid "Shelf deleted" msgstr "Hylde slettet" msgid "Revert all working copy changes?" msgstr "" #, python-format msgid "Clear contents of shelf file %s?" msgstr "Ryd indholdet af hylde-fil %s?" msgid "Shelf cleared" msgstr "Hylde ryddet" #, python-format msgid "Shelf: %s" msgstr "Hylde: %s" #, python-format msgid "Patch: %s" msgstr "" msgid "Key:" msgstr "" msgid "Local sign" msgstr "" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "" msgid "No commit" msgstr "" msgid "Use custom commit message:" msgstr "Brug tilpasset integreringsbesked" msgid "&Sign" msgstr "" #, python-format msgid "Sign - %s" msgstr "" msgid "Signature has been added" msgstr "" msgid "Repository command still running" msgstr "" msgid "Filter:" msgstr "" msgid "Check all files" msgstr "" msgid "Uncheck all files" msgstr "" msgid "Status File List Toolbar" msgstr "" msgid "Remove filter, show root" msgstr "Fjern filter, vis roden" #, python-format msgid "%s - status (selection filtered)" msgstr "" #, python-format msgid "%s - status" msgstr "" msgid "Check" msgstr "" msgid "Uncheck" msgstr "" msgid "status" msgstr "status" msgid "Failed to refresh" msgstr "" msgid "No appropriate files" msgstr "Ingen passende filer" msgid "No files found for this operation" msgstr "Ingen filer passede til denne operation" msgid "Stat" msgstr "Status" msgid "M" msgstr "" msgid "Filename" msgstr "Filnavn" msgid "Size (KB)" msgstr "" #, python-format msgid "Checked count: %d" msgstr "" msgid ", resolved merge" msgstr "" msgid ", unresolved merge" msgstr "" #, python-format msgid "%s is modified" msgstr "" msgid "modified" msgstr "ændret" #, python-format msgid "%s is added" msgstr "" msgid "added" msgstr "tilføjet" #, python-format msgid "%s is removed" msgstr "" msgid "removed" msgstr "fjernet" #, python-format msgid "%s is not tracked (unknown)" msgstr "" msgid "unknown" msgstr "ukendt" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "" msgid "missing" msgstr "mangler" #, python-format msgid "%s is ignored" msgstr "" msgid "ignored" msgstr "ignoreret" #, python-format msgid "%s is not modified (clean)" msgstr "" msgid "clean" msgstr "ren" #, python-format msgid "%s is a dirty subrepo" msgstr "" msgid "subrepo" msgstr "" msgid "Check for incoming changes from selected URL" msgstr "" msgid "Pull incoming changes from selected URL" msgstr "" msgid "Detect outgoing changes to selected URL" msgstr "" msgid "Push outgoing changes to selected URL" msgstr "" msgid "Sync Bookmarks" msgstr "" msgid "Email outgoing changesets for remote repository" msgstr "" msgid "Manage pending perforce changelists" msgstr "" msgid "Unbundle" msgstr "" msgid "Selected Options:" msgstr "" msgid "Path Edit Toolbar" msgstr "" msgid "Security" msgstr "" msgid "Manage HTTPS connection security and user authentication" msgstr "" msgid "Save" msgstr "" msgid "Save current URL under an alias" msgstr "" msgid "Paths in Repository Settings:" msgstr "Sti'er i depot-indstillinger" msgid "Related Paths:" msgstr "" msgid "branch: " msgstr "gren: " msgid "bookmark: " msgstr "" #, python-format msgid "rev: %d (%s)" msgstr "" msgid "Post Pull: " msgstr "Efter træk: " msgid "&Edit..." msgstr "" msgid "&Remove..." msgstr "" msgid "Repository not local" msgstr "" msgid "A terminal shell cannot be opened for remote" msgstr "" msgid "Confirm path delete" msgstr "" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "" msgid "Select repository" msgstr "" msgid "No host specified" msgstr "" msgid "Please set a valid URL to continue." msgstr "" msgid "No remote repository URL or path set" msgstr "" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

                Please type and save a remote repository path on the " "Sync widget." msgstr "" msgid "Redundant authentication info" msgstr "" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" msgid "sync command already running" msgstr "" #, python-format msgid "Getting incoming changesets from %s..." msgstr "" #, python-format msgid "Found incoming changesets from %s" msgstr "" #, python-format msgid "No incoming changesets from %s" msgstr "" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "" #, python-format msgid "Pulling from %s..." msgstr "Trækker fra %s..." #, python-format msgid "Pull from %s completed" msgstr "Træk fra %s fuldført" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "Træk fra %s afbrudt, returkode %d" msgid "Merge caused file conflicts" msgstr "" msgid "File conflicts need to be resolved" msgstr "" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "" #, python-format msgid "%d outgoing changesets to %s" msgstr "" #, python-format msgid "No outgoing changesets to %s" msgstr "" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "" msgid "Perforce pending..." msgstr "" #, python-format msgid "%s (submitted)" msgstr "%s (indsendt)" #, python-format msgid "%s (pending)" msgstr "%s (afventer)" msgid "Unable to parse p4pending output" msgstr "Kan ikke parse p4pending output" #, python-format msgid "%d pending changelists found" msgstr "%d afventende ændringslister fundne" msgid "No pending Perforce changelists" msgstr "Ingen afventende Perforce ændringslister" msgid "Aborted p4pending" msgstr "Afbrudt p4pending" msgid "Unable to determine pending changesets" msgstr "Ikke i stand til at bestemme afventende ændringssæt" msgid "Confirm Push to remote Repository" msgstr "Bekræft skub til fjern-depot" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" "Skub til fjern-depot\n" "%s\n" "?" #, python-format msgid "Push to %s aborted" msgstr "" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" #, python-format msgid "Pushing to %s..." msgstr "" #, python-format msgid "Push to %s completed" msgstr "" #, python-format msgid "Push to %s aborted, ret %d" msgstr "" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" msgid "Determining outgoing changesets to email..." msgstr "" msgid "No outgoing changesets" msgstr "Ingen udgående ændringssæt" #, python-format msgid "Outgoing aborted, ret %d" msgstr "" msgid "Select bundle file" msgstr "" msgid "Bundle files (*.hg)" msgstr "" msgid "Unable to remove URL" msgstr "" msgid "Post Pull Behavior" msgstr "Handling efter træk" msgid "Select post-pull operation for this repository" msgstr "Vælg efter-træk-handling for dette depot" msgid "None - simply pull changesets" msgstr "Ingen - træk ændringer" msgid "Update - pull, then try to update" msgstr "Opdater - træk, fulgt af opdater" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "" msgid "Rebase - rebase local commits above pulled changes" msgstr "" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "" msgid "Launch settings tool..." msgstr "" msgid "Unable to save post pull operation" msgstr "Kunne ikke gemme efter-træk-handling" msgid "Save Path" msgstr "" msgid "Alias" msgstr "Alias" msgid "URL" msgstr "URL" msgid "Remove authentication data from URL" msgstr "" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" msgid "Update subrepo paths" msgstr "" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" msgid "Unable to save an URL" msgstr "" msgid "Confirm URL replace" msgstr "" #, python-format msgid "%s already exists, replace URL?" msgstr "" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

                %s

                Replace it with the " "following URL?:

                %s" msgstr "" msgid "Security: " msgstr "" #, python-format msgid "Host: %s" msgstr "" msgid "Secure HTTPS Connection" msgstr "" msgid "Verify with Certificate Authority certificates (best)" msgstr "" msgid "Verify with stored host fingerprint (good)" msgstr "" msgid "No host validation, but still encrypted (bad)" msgstr "" msgid "### host certificate fingerprint ###" msgstr "### værtscertifikat fingeraftryk ###" msgid "Query" msgstr "" msgid "TLS 1.0" msgstr "" msgid "TLS 1.1" msgstr "" msgid "TLS 1.2" msgstr "" msgid "Minimum Protocol" msgstr "" msgid "User Authentication" msgstr "" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Key" msgstr "" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Chain" msgstr "" msgid "Certificate Query Error" msgstr "" msgid "Select User Certificate Key File" msgstr "" msgid "PEM files (*.pem *.key)" msgstr "" msgid "Select User Certificate Chain File" msgstr "" msgid "PEM files (*.pem *.crt *.cer)" msgstr "" msgid "Unable to save authentication" msgstr "" #, python-format msgid "%s - sync options" msgstr "" msgid "Allow push of a new branch (--new-branch)" msgstr "" msgid "Force push or pull (override safety checks, --force)" msgstr "" msgid "Temporarily disable configured HTTP proxy" msgstr "" msgid "Emit debugging output (--debug)" msgstr "" msgid "Work on patch queue (--mq)" msgstr "" #, python-format msgid "Tag - %s" msgstr "Mærkat - %s" msgid "Tag:" msgstr "Mærke:" msgid "Tagged:" msgstr "" msgid "Local tag" msgstr "" msgid "Replace existing tag (-f/--force)" msgstr "" msgid "Use English commit message" msgstr "Brug engelsk integreringsbesked" msgid "local" msgstr "lokal" msgid "Move" msgstr "Flyt" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "" #, python-format msgid "Added tag %s for changeset %s" msgstr "Tilføjet mærke %s til ændring %s" #, python-format msgid "Tag '%s' has been moved" msgstr "" #, python-format msgid "Tag '%s' has been added" msgstr "" #, python-format msgid "Removed tag %s" msgstr "Mærke %s er fjernet" #, python-format msgid "Tag '%s' has been removed" msgstr "" msgid "Patch files (*.diff *.patch)" msgstr "" #, python-format msgid "Import - %s" msgstr "Importér - %s" msgid "Browse Directory..." msgstr "Gennemse katalog..." msgid "Import from Clipboard" msgstr "Importér fra udklipsholder" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "Strip ikke stier (-p0), påkrævet for SVN-lapper" msgid "Preview:" msgstr "Forhåndsvisning:" msgid "Shelf" msgstr "Hylde" msgid "Checking working directory status..." msgstr "" msgid "&Import" msgstr "" msgid "Working directory is not clean! View changes..." msgstr "" msgid "Select patches" msgstr "" msgid "Select Directory containing patches" msgstr "" #, python-format msgid "%s patches" msgstr "%s lapper" #, python-format msgid "%s will be imported to " msgstr "" msgid "Nothing to import" msgstr "Intet at importere" msgid "Strip:" msgstr "Fjern:" msgid "Discard local changes, no backup (-f/--force)" msgstr "Kasser lokale ændringer, uden sikkerhedskopi (-f/--force)" msgid "No backup (-n/--nobackup)" msgstr "Ingen sikkerhedskopiering (-n/--nobackup)" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "" msgstr[1] "" msgid "Unknown revision!" msgstr "Ukendt revision!" msgid "Detected uncommitted local changes." msgstr "" msgid "Do you want to keep them or discard them?" msgstr "" msgid "&Keep (--keep)" msgstr "" msgid "&Discard (--force)" msgstr "" msgid "Confirm Strip" msgstr "Bekræft fjern" #, python-format msgid "Strip - %s" msgstr "Fjern - %s" msgid "&Strip" msgstr "" msgid "Topic:" msgstr "" msgid "&Rename" msgstr "" #, python-format msgid "Topic - %s" msgstr "" #, python-format msgid "A topic named \"%s\" already exists" msgstr "" #, python-format msgid "Topic '%s' has been added" msgstr "" #, python-format msgid "Topic '%s' does not exist" msgstr "" #, python-format msgid "Topic '%s' has been removed" msgstr "" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "" msgid "Parent 1:" msgstr "Forælder 1:" msgid "Parent 2:" msgstr "Forælder 2:" msgid "Pull subrepos from:" msgstr "" msgid "List updated files (--verbose)" msgstr "Vis opdaterede filer (--verbose)" msgid "Discard local changes, no backup (-C/--clean)" msgstr "Forkast lokale ændringer, ingen sikkerhedskopi (-C/--clean)" msgid "Always merge (when possible)" msgstr "Flet altid (når det er muligt)" msgid "(same as parent)" msgstr "(samme som forælder)" msgid "Activate bookmark?" msgstr "" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

                Do " "you want to activate it?
                You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

                Select " "the bookmark that you want to activate and click OK.

                Click " "Cancel if you don't want to activate any of them.

                You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                " msgstr "" msgid "Deactivate current bookmark?" msgstr "" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" msgid "Discard - discard local changes, no backup" msgstr "Forkast - forkaster lokale ændringer, uden sikkerhedskopi" msgid "&Shelve" msgstr "&Hylde" msgid "Shelve - move local changes to a patch" msgstr "" msgid "Merge - allow to merge with local changes" msgstr "Flet - for at flette med lokale ændringer" msgid "Confirm Update" msgstr "Bekræft opdater" #, python-format msgid "Update - %s" msgstr "Opdater - %s" msgid "[non-existant]" msgstr "[ikke-eksisterende]" msgid "Tool launch failure" msgstr "Kunne ikke starte værktøj" #, python-format msgid "%s : %s" msgstr "%s : %s" msgid "No diff tool found" msgstr "Intet diff-værktøj fundet" msgid "No visual diff tools were detected" msgstr "Ingen visuelle diff-værktøjer blev registreret" msgid "[working copy]" msgstr "[arbejdskopi]" msgid "[original]" msgstr "[original]" msgid "Unable to find changeset" msgstr "Ikke i stand til at finde ændringssæt" msgid "You likely need to refresh this application" msgstr "Du skal sandsynligvis genopfriske dette program" msgid "No file changes" msgstr "Ingen filer ændret" msgid "There are no file changes to view" msgstr "Der er ingen fil-ændringer at se" msgid "working changes" msgstr "arbejdsændringer" #, python-format msgid "changeset %d:%s" msgstr "" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "" msgid "Visual Diffs - " msgstr "Visuel diff - " msgid " filtered" msgstr " filtrerede" msgid "Temporary files are removed when this dialog is closed" msgstr "Midlertidige filer bliver fjernet når denne dialog lukkes" msgid "Select Tool:" msgstr "" msgid "Dir diff to p1" msgstr "Katalog diff til p1" msgid "Dir diff to p2" msgstr "Katalog diff til p2" msgid "3-way dir diff" msgstr "3-vejs dir katalog diff" msgid "Directory diff" msgstr "Katalog diff" msgid "Confirm Discard" msgstr "Bekræft forkastning" msgid "Discard outstanding changes to working directory?" msgstr "" msgid "Config files (*.conf *.config *.ini)" msgstr "" msgid "Open hgweb config" msgstr "" msgid "Save hgweb config" msgstr "" msgid "Path:" msgstr "" msgid "Local Path:" msgstr "" msgid "Select Repository" msgstr "Vælg depot" msgid "Add Path to Serve" msgstr "" msgid "Edit Path to Serve" msgstr "" msgid "Local Path" msgstr "" msgid "Webconf" msgstr "" msgid "Config File:" msgstr "" msgid "Open" msgstr "" msgid "New &Workbench" msgstr "Nyt &Arbejdsbord" msgid "&New Repository..." msgstr "&Nyt depot..." msgid "Clon&e Repository..." msgstr "&Klon depot..." msgid "&Open Repository..." msgstr "&Åben depot..." msgid "&File" msgstr "&Filer" msgid "&View" msgstr "&Vis" msgid "&Repository" msgstr "&Depot" msgid "&Help" msgstr "&Hjælp" msgid "&Dock Toolbar" msgstr "" msgid "&Task Toolbar" msgstr "" msgid "&Custom Toolbar" msgstr "" msgid "S&ync Toolbar" msgstr "" msgid "&Close Repository" msgstr "&Luk depot" msgid "Sh&ow Repository Registry" msgstr "Vis depot&liste" msgid "Show &Patch Queue" msgstr "" msgid "Show Conso&le" msgstr "" msgid "Place Console in Doc&k Area" msgstr "" msgid "R&epository Registry Options" msgstr "" msgid "Save Open Repositories on E&xit" msgstr "" msgid "Sa&ve Current Sync Paths on Exit" msgstr "" msgid "Show Tas&k Tab" msgstr "" msgid "&Commit" msgstr "" msgid "&Patch Branch" msgstr "" msgid "Revision &Details" msgstr "" msgid "&Search" msgstr "" msgid "S&ynchronize" msgstr "" msgid "Refresh current repository" msgstr "" msgid "Refresh &Task Tab" msgstr "" msgid "Refresh only the current task tab" msgstr "" msgid "Load &All Revisions" msgstr "" msgid "Load all revisions into graph" msgstr "" msgid "Go to current revision" msgstr "" msgid "&Goto Revision..." msgstr "" msgid "Go to a specific revision" msgstr "" msgid "Filter graph with revision sets or branches" msgstr "" msgid "&Workbench Toolbars" msgstr "" msgid "&Lock File..." msgstr "" msgid "Lock or unlock files" msgstr "" msgid "Update working directory or switch revisions" msgstr "" msgid "&Shelve..." msgstr "" msgid "&Import Patches..." msgstr "" msgid "U&nbundle..." msgstr "" msgid "&Merge..." msgstr "" msgid "Merge with the other head of the current branch" msgstr "" msgid "&Resolve..." msgstr "" msgid "R&ollback/Undo..." msgstr "" msgid "&Purge..." msgstr "" msgid "&Bisect..." msgstr "" msgid "&Verify" msgstr "" msgid "Re&cover" msgstr "" msgid "&Web Server" msgstr "" msgid "E&xplorer Help" msgstr "" msgid "&Readme" msgstr "" msgid "About &Qt" msgstr "Om &Qt" msgid "&About TortoiseHg" msgstr "&Om TortoiseHg" msgid "&Incoming" msgstr "" msgid "&Pull" msgstr "" msgid "&Outgoing" msgstr "" msgid "P&ush" msgstr "" msgid "&Sync Bookmarks..." msgstr "" #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" msgid "Check for incoming changes" msgstr "" msgid "Pull incoming changes" msgstr "" msgid "Detect outgoing changes" msgstr "" msgid "Push outgoing changes" msgstr "" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" #, python-format msgid "Execute custom tool '%s'" msgstr "" msgid "Custom Toolbar &Settings" msgstr "" msgid "TortoiseHg Workbench" msgstr "TortoiseHg arbejdsbord" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "%s - TortoiseHg arbejdsbord - %s" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "%s - TortoiseHg arbejdsbord" msgid "Goto revision" msgstr "" msgid "Enter revision identifier" msgstr "" msgid "Select repository directory to open" msgstr "" msgid "README not configured" msgstr "" msgid "" "A README file is not configured for the current repository.

                To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" msgid "Issue Tracker Plugin Error" msgstr "" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "" msgid "This error will not be shown again until you restart the workbench" msgstr "" "Denne fejl vil ikke blive vist igen før du har genstartet arbejdsbordet" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "" msgid "Error executing \"commit finished\" trigger" msgstr "" msgid "Cannot open Plugin Options dialog" msgstr "" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "" msgid "[--insecure] [SOURCE]" msgstr "" #, python-format msgid "unsupported URL: %s" msgstr "" #, python-format msgid "%s certificate error: no certificate received" msgstr "" msgid "move after the specified patch" msgstr "" msgid "[--after PATCH] PATCH..." msgstr "" msgid "unknown patch to move specified" msgstr "" msgid "invalid patch position specified" msgstr "" msgid "cannot move applied patches" msgstr "" #, python-format msgid "patch %s not in series" msgstr "" msgid "cannot move into applied patches" msgstr "" msgid "abort: " msgstr "afbrudt: " msgid "hint: " msgstr "" #, python-format msgid "HTTP Error: %d (%s)" msgstr "" #, python-format msgid "URLError: %s" msgstr "" msgid "SSL: Server certificate verify failed" msgstr "SSL: Kontrol af server certificate fejlede" #, python-format msgid "SSL: unknown error %s:%s" msgstr "SSL: ukendt fejl %s:%s" #, python-format msgid "SSL error: %s" msgstr "SSL fejl: %s" msgid "hgsubversion packaged with thg" msgstr "" msgid "hggit packaged with thg" msgstr "" msgid "inotify is not supported on this platform" msgstr "inotify er ikke supporteret på denne platform" msgid "eol is incompatible with win32text" msgstr "eol er ikke kompatibel med win32text" msgid "win32text is incompatible with eol" msgstr "win32text er ikke kompatibel med eol" msgid "hgsubversion is incompatible with perfarce" msgstr "hgsubversion er ikke kompatibel med perfarce" msgid "perfarce is incompatible with hgsubversion" msgstr "perfarce er ikke kompatibel med hgsubversion" msgid "Workbench custom toolbar" msgstr "" msgid "Revision details context menu" msgstr "" msgid "Pair selection context menu" msgstr "" msgid "Multiple selection context menu" msgstr "" msgid "Commit context menu" msgstr "" msgid "File context menu (on manifest and revision details)" msgstr "" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "%d år" msgstr[1] "%d år" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "%d måned" msgstr[1] "%d måneder" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "%d uge" msgstr[1] "%d uger" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "%d dag" msgstr[1] "%d dage" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "%d time" msgstr[1] "%d timer" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "%d minut" msgstr[1] "%d minutter" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d sekund" msgstr[1] "%d sekunder" msgid "in the future" msgstr "" msgid "now" msgstr "nu" #, python-format msgid "command parse error: %s" msgstr "kommando-fortolkningsfejl: %s" #, python-format msgid "no matches found: %s" msgstr "ingen fundne match: %s" msgid "Commit..." msgstr "Integrér..." msgid "Commit changes in repository" msgstr "Integrér ændringer i depot" msgid "Create Repository Here" msgstr "Lav depot her" msgid "Create a new repository" msgstr "Operet et nyt depot i destinationsfolderen" msgid "Clone..." msgstr "Klon..." msgid "Create clone here from source" msgstr "Lav klon her fra kilden" msgid "File Status" msgstr "Fil status" msgid "Repository status & changes" msgstr "Depotstatus og -ændringer" msgid "Add Files..." msgstr "Tilføj filer..." msgid "Add files to version control" msgstr "Tilføj filer til versionskontrol" msgid "Revert Files..." msgstr "Tilbagefør filer..." msgid "Revert file changes" msgstr "Tilbagefør ændringer" msgid "Forget Files..." msgstr "Glem filer..." msgid "Remove files from version control" msgstr "Fjern filer fra versionskontrol" msgid "Remove Files..." msgstr "Fjern filer..." msgid "Rename File" msgstr "Omdøb fil" msgid "Rename file or directory" msgstr "Omdøb fil eller katalog" msgid "View change history in repository" msgstr "Vis ændringshistorik i depot" msgid "File History" msgstr "Filhistorie" msgid "View change history of selected files" msgstr "Vis ændringshistorik for valgte filer" msgid "Shelve Changes" msgstr "" msgid "Move changes between working dir and patch" msgstr "" msgid "Synchronize" msgstr "Synkroniser" msgid "Synchronize with remote repository" msgstr "Synkroniser med andet depot" msgid "Start web server for this repository" msgstr "Start web-server for dette depot" msgid "Update..." msgstr "Opdater..." msgid "Update working directory" msgstr "Opdater arbejdskatalog" msgid "Update Icons" msgstr "Opdater ikoner" msgid "Update icons for this repository" msgstr "Opdater ikoner for dette depot" msgid "Global Settings" msgstr "Globale indstillinger" msgid "Configure user wide settings" msgstr "Konfigurer brugerinstillinger" msgid "Repository Settings" msgstr "Depot-indstillinger" msgid "Configure repository settings" msgstr "Konfigurer depotinstillinger" msgid "Explorer Extension Settings" msgstr "Indstillinger for Explorer-udvidelse" msgid "Configure Explorer extension" msgstr "Konfigurér Explorer-udvidelse" msgid "About TortoiseHg" msgstr "Om TortoiseHg" msgid "Show About Dialog" msgstr "Vis versionsinformationer om TortoiseHg" msgid "Diff to parent" msgstr "" msgid "View changes using GUI diff tool" msgstr "Se ændringer med et GUI diff-værktøj" msgid "Edit Ignore Filter" msgstr "Rediger generelt ignorerfilter" msgid "Edit repository ignore filter" msgstr "Rediger depotets ignorerfilter" msgid "Guess Renames" msgstr "Gæt omdøbninger" msgid "Detect renames and copies" msgstr "Find omdøbninger og kopieringer" msgid "Search History" msgstr "Søg i historie" msgid "Search file revisions for patterns" msgstr "Søg i fil-revisioner efter mønstre" msgid "DnD Synchronize" msgstr "Træk-og-slip synkroniser" msgid "Synchronize with dragged repository" msgstr "Synkroniser med indtrukket depot" #, python-format msgid "unrecognized response: %s" msgstr "" msgid "password: " msgstr "kodeord: " #, python-format msgid "repository %s not found" msgstr "depot %s ikke fundet" msgid "win32ill: cannot create window for messages" msgstr "" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "" msgid "win32ill: interrupted while stopping message loop\n" msgstr "" #~ msgid "edit failed" #~ msgstr "redigering fejlede" #~ msgid "this is a binary file\n" #~ msgstr "dette er en binær fil\n" #~ msgid "this modifies a binary file (all or nothing)\n" #~ msgstr "dette ændrer en binær fil (alt eller intet)\n" #~ msgid " and " #~ msgstr " og " #~ msgid "cannot start server: " #~ msgstr "kan ikke starte serveren: " #~ msgid "listening at http://%s%s/%s (%s:%d)\n" #~ msgstr "lytter på http://%s%s/%s (%s:%d)\n" #~ msgid "hg shelve [OPTION]... [FILE]..." #~ msgstr "hg shelve [OPTION]... [FILE]..." #~ msgid "hg unshelve [OPTION]... [FILE]..." #~ msgstr "hg unshelve [OPTION]... [FILE]..." #~ msgid "_Undo" #~ msgstr "_Fortryd" #~ msgid "_Remove" #~ msgstr "_Fjern" #~ msgid "_Add" #~ msgstr "_Tilføj" #~ msgid "Re_vert" #~ msgstr "Nulstil" #~ msgid "New Search" #~ msgstr "Ny søgning" #~ msgid "Start this search" #~ msgstr "Start søgning" #~ msgid "Unknown Files" #~ msgstr "Ukendte filer" #~ msgid "Filters" #~ msgstr "Filtre" #~ msgid "hgtk about" #~ msgstr "hgtk about" #~ msgid "Hgtk - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" #~ msgstr "Hgtk - TortoiseHg's GUI værktøj for Mercurial (Hg)\n" #~ msgid "hgtk add [FILE]..." #~ msgstr "hgtk add [FILE]..." #~ msgid "hgtk clone SOURCE [DEST]" #~ msgstr "hgtk clone SOURCE [DEST]" #~ msgid "hgtk hgignore [FILE]" #~ msgstr "hgtk hgignore [FILE]" #~ msgid "hgtk datamine" #~ msgstr "hgtk datamine" #~ msgid "hgtk commit [OPTIONS] [FILE]..." #~ msgstr "hgtk commit [OPTIONS] [FILE]..." #~ msgid "hgtk init [DEST]" #~ msgstr "hgtk init [DEST]" #~ msgid "hgtk repoconfig" #~ msgstr "hgtk repoconfig" #~ msgid "hgtk userconfig" #~ msgstr "hgtk userconfig" #~ msgid "hgtk recovery" #~ msgstr "hgtk recovery" #~ msgid "hgtk merge" #~ msgstr "hgtk merge" #~ msgid "hgtk synch" #~ msgstr "hgtk synch" #~ msgid "hgtk shelve" #~ msgstr "hgtk shelve" #~ msgid "hgtk guess" #~ msgstr "hgtk guess" #~ msgid "hgtk: unknown command '%s'\n" #~ msgstr "hgtk: ukendt kommando '%s'\n" #~ msgid "hgtk: %s\n" #~ msgstr "hgtk: %s\n" #~ msgid "" #~ "hgtk: command '%s' is ambiguous:\n" #~ " %s\n" #~ msgstr "" #~ "hgtk: kommando '%s' er tvetydig:\n" #~ " %s\n" #~ msgid "hgtk %s: %s\n" #~ msgstr "hgtk %s: %s\n" #~ msgid "use \"hgtk help\" for the full list of commands" #~ msgstr "skriv \"hgtk help\" for at få den fulde liste af kommandoer" #~ msgid "" #~ "use \"hgtk help\" for the full list of commands or \"hgtk -v\" for details" #~ msgstr "" #~ "skriv \"hgtk help\" for den fulde liste af kommandoer, eller \"hgtk -v\" " #~ "for detaljer" #~ msgid "use \"hgtk -v help %s\" to show global options" #~ msgstr "skriv \"hgtk -v help %s\" for at vise globale optioner" #~ msgid "use \"hgtk -v help%s\" to show aliases and global options" #~ msgstr "skriv \"hgtk -v help%s\" for at vise aliaser og globale optioner" #~ msgid "(No help text available)" #~ msgstr "(Ingen hjælpetekst)" #~ msgid "Source path is empty" #~ msgstr "Kilde sti er tom" #~ msgid "" #~ "Your username has not been configured.\n" #~ "\n" #~ "Please configure your username and try again" #~ msgstr "" #~ "Dit brugernavn er ikke konfigureret.\n" #~ "\n" #~ "Indstil brugernavn og prøv igen" #~ msgid "Backout" #~ msgstr "Omgør" #~ msgid "Backout commit message" #~ msgstr "Omgør integrationsbesked" #~ msgid "undo recent commit" #~ msgstr "fortryd sidste integration" #~ msgid "Save commit message at exit?" #~ msgstr "Gem integrationsbesked ved afslutning?" #~ msgid "Nothing Commited" #~ msgstr "Intet integreret" #~ msgid "Commit: Invalid username" #~ msgstr "Integrér: Ugyldigt brugernavn" #~ msgid "Custom commit message is empty" #~ msgstr "Selvvalgt integrationsbesked er tom" #~ msgid "[All Files]" #~ msgstr "[Alle Filer]" #~ msgid "Please enter a valid source path" #~ msgstr "Skriv en gyldig kildesti" #~ msgid "Paste _Filenames" #~ msgstr "Indsæt _Filnavne" #~ msgid "Invalid path" #~ msgstr "Ugyldig sti" #~ msgid "Several icons are courtesy of the TortoiseSVN project" #~ msgstr "Adskillige ikoner stammer fra TortoiseSVN projektet" #~ msgid "Changeset Description" #~ msgstr "Ændringsbeskrivelse" #~ msgid " %s is larger than the specified max diff size" #~ msgstr " %s er større end den specificerede max diff size" #~ msgid "Clone" #~ msgstr "Klon" #~ msgid "_Commit" #~ msgstr "_Integrer" #~ msgid "commit" #~ msgstr "integrér" #~ msgid "No committable files selected" #~ msgstr "Ingen integrerbare filer valgt" #~ msgid "Message format configuration error" #~ msgstr "Fejl i konfiguration af beskedformat" #~ msgid "Confirm Commit" #~ msgstr "Bekræft integration" #~ msgid "App_ly Format" #~ msgstr "_Anvend Format" #~ msgid "Info required" #~ msgstr "Info påkrævet" #~ msgid "Message format needs to be configured" #~ msgstr "Beskedformat skal konfigureres" #~ msgid "" #~ "Comma separated list of inclusion patterns. By default, the entire " #~ "repository is searched." #~ msgstr "" #~ "Kommasepareret liste af inkluderingsmønstre. Som udgangspunkt bliver hele " #~ "depotet gennemsøgt." #~ msgid "Make repo compatible with Mercurial 1.0" #~ msgstr "Gør depot kompatibelt med Mercurial 1.0" #~ msgid "Unable to create new repository" #~ msgstr "Ude af stand til at oprette et nyt depot" #~ msgid "Error when creating repository" #~ msgstr "Fejl under depotoprettelse" #~ msgid "There is no Mercurial repository here (.hg not found)" #~ msgstr "Der er intet Mercurial depot her (.hg ikke fundet)" #~ msgid "udpate all repos in current dir" #~ msgstr "opdater alle depoter i aktuel folder" #~ msgid "Validate repository consistency" #~ msgstr "Kontroller konsistens af depot" #~ msgid "Cannot close now" #~ msgstr "Kan ikke lukke nu" #~ msgid "command is running" #~ msgstr "kommando kører" #~ msgid "Confirm clean repository" #~ msgstr "Bekræft tøm depot" #~ msgid "Confirm rollback repository" #~ msgstr "Bekræft tilbageførsel af depot" #~ msgid "Cannot run now" #~ msgstr "Kan ikke køre nu" #~ msgid "[command interrupted]" #~ msgstr "[kommando afbrudt]" #~ msgid "rename error" #~ msgstr "fejl under omdøbning" #~ msgid "Start server" #~ msgstr "Start server" #~ msgid "Stop server" #~ msgstr "Stop server" #~ msgid "Launch browser to view repository" #~ msgstr "Start browser for at se depot" #~ msgid "Configure" #~ msgstr "Konfigurer" #~ msgid "Configure web settings" #~ msgstr "Konfigurer web instillinger" #~ msgid "HTTP Port:" #~ msgstr "HTTP Port:" #~ msgid "Confirm Really Exit?" #~ msgstr "Bekræft exit?" #~ msgid "" #~ "Server process is still running\n" #~ "Exiting will stop the server." #~ msgstr "" #~ "Serverproces kører stadig\n" #~ "Exit vil stoppe serveren." #~ msgid "Invalid port 2048..65535" #~ msgstr "Ugyldig port 2048..65535" #~ msgid "Defaulting to " #~ msgstr "Falder tilbage til " #~ msgid "name of access log file to write to" #~ msgstr "navn på adgangslogfilen der skrives til" #~ msgid "run server in background" #~ msgstr "kører serveren i baggrunden" #~ msgid "used internally by daemon mode" #~ msgstr "brugt internt i daemon mode" #~ msgid "name of error log file to write to" #~ msgstr "navn på fejlllog fil der skrives til" #~ msgid "Cannot move outside repo!" #~ msgstr "Kan ikke flytte udenfor depot!" #~ msgid "" #~ "No movable files selected\n" #~ "\n" #~ "Note: only clean files can be moved." #~ msgstr "" #~ "Ingen flytbare filer valgt\n" #~ "\n" #~ "Bemærk: Kun rene filer kan flyttes." #~ msgid "Confirm Delete Unrevisioned" #~ msgstr "Bekræft slet ikke-versioneret" #~ msgid "Delete the following unrevisioned files?" #~ msgstr "Slet de følgende ikke-versionerede filer?" #~ msgid "Display changes that can be pulled from selected repository" #~ msgstr "Vis ændringer som kan trækkes ind fra valgte depot" #~ msgid " Pull " #~ msgstr " Træk " #~ msgid "Pull changes from selected repository" #~ msgstr "Træk ændringer ind fra valgte depot" #~ msgid "Outgoing" #~ msgstr "Udgående" #~ msgid "Push" #~ msgstr "Skub" #~ msgid "Push local changes to selected repository" #~ msgstr "Skub lokale ændringer til valgte depot" #~ msgid "Email local outgoing changes to one or more recipients" #~ msgstr "Email lokale ændringer til en eller flere modtagere" #~ msgid "Tag is local" #~ msgstr "Mærket er lokalt" #~ msgid "Replace existing tag" #~ msgstr "Erstat eksisterende mærke" #~ msgid "Tag input is empty" #~ msgstr "Mærke-felt er tomt" #~ msgid "Please enter tag name" #~ msgstr "Mærkenavn mangler" #~ msgid "Tagging completed" #~ msgstr "Markering gennemført" #~ msgid "Tag \"%s\" has been added" #~ msgstr "Mærke \"%s\" er blevet tilføjet" #~ msgid "Error in tagging" #~ msgstr "Fejl under mærkning" #~ msgid "Tag name is empty" #~ msgstr "Mærke-navn er ikke udfyldt" #~ msgid "Please select tag name to remove" #~ msgstr "Vælg et mærke der skal fjernes" #~ msgid "Tag \"%s\" has been removed" #~ msgstr "Mærke \"%s\" er blevet fjernet" #~ msgid "a tag named \"%s\" already exists" #~ msgstr "Der findes allerede et mærke med navnet \"%s\"" #~ msgid "Tag '%s' already exist" #~ msgstr "Mærke '%s' findes allerede" #~ msgid "History" #~ msgstr "Historik" #~ msgid "Confirm revert file to old revision" #~ msgstr "Bekræft tilbagefør fil til gammel revision" #~ msgid "Revert %s to contents at revision %d?" #~ msgstr "Tilbagefør %s til indhold i revision %d?" #~ msgid "Toggle _Wordwrap" #~ msgstr "Skifte _tekstombrydning" #~ msgid "TortoiseHg Clone" #~ msgstr "TortoiseHg klon" #~ msgid "Branch Operations" #~ msgstr "Grenoperationer" #~ msgid "Close current named branch" #~ msgstr "Luk nuværende navngivne gren" #~ msgid "new branch: " #~ msgstr "ny gren: " #~ msgid "close branch: " #~ msgstr "luk gren: " #~ msgid "Unable to create " #~ msgstr "Kan ikke oprette " #~ msgid "Unable to apply patch" #~ msgstr "Kan ikke anvende lap" #~ msgid "" #~ "Unable to undo!\n" #~ "\n" #~ "Tip revision differs from last commit." #~ msgstr "" #~ "Kan ikke fortyde!\n" #~ "\n" #~ "Spids-revision er ikke sidste integration." #~ msgid "Errors during rollback!" #~ msgstr "Fejl under tilbageføring!" #~ msgid "Confirm Add/Remove" #~ msgstr "Bekræft tilføj/fjern" #~ msgid "Add/Remove the following files?" #~ msgstr "Tilføj/fjern de følgende filer?" #~ msgid "" #~ "The summary line length of %i is greater than %i.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "Uddragslinjens længde %i er større end %i.\n" #~ "\n" #~ "Ignorer formateringspolitik og fortsæt integration?" #~ msgid "" #~ "The summary line is not followed by a blank line.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "Uddragslinjen er ikke fulgt af en tom linje.\n" #~ "\n" #~ "Ignorer formateringspolitik og fortsæt integration?" #~ msgid "" #~ "The following lines are over the %i-character limit: %s.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "De følgende linjer er over %i-tegnsgrænsen: %s.\n" #~ "\n" #~ "Ignorer formateringspolitik og fortsæt integration?" #~ msgid "The summary line length of %i is greater than %i" #~ msgstr "Uddragslinjens længde %i er større end %i" #~ msgid "The summary line is not followed by a blank line" #~ msgstr "Uddragslinjen bliver ikke fulgt af en tom linje" #~ msgid "Stop operation on current tab" #~ msgstr "Stop aktivitet på aktuelt faneblad" #~ msgid "Open new search tab" #~ msgstr "Åben nyt faneblad til søgning" #~ msgid "" #~ "Comma separated list of exclusion patterns. Exclusion patterns are " #~ "applied after inclusion patterns." #~ msgstr "" #~ "Kommesepareret liste af ekskluderingsmønstre. Disse bliver anvendt efter " #~ "inkluderingsmønstrene." #~ msgid "Show line numbers" #~ msgstr "Vis linjenumre" #~ msgid "Show all matching revisions" #~ msgstr "Vis alle træffende revisioner" #~ msgid "Matches" #~ msgstr "Træffere" #~ msgid "Search %d" #~ msgstr "Søgning %d" #~ msgid "No regular expression given" #~ msgstr "Regulært udtryk mangler" #~ msgid "You must provide a search expression" #~ msgstr "Du skal angive et søgeudtryk" #~ msgid "Search \"%s\"" #~ msgstr "Søg \"%s\"" #~ msgid "File is unrevisioned" #~ msgstr "Fil er ikke kontrolleret" #~ msgid "Unable to annotate " #~ msgstr "Kan ikke annotere " #~ msgid " Aborted" #~ msgstr " Afbrudt" #~ msgid " Messages and Errors" #~ msgstr " Meddelelser og fejl" #~ msgid "making snapshot of %d files from rev %s\n" #~ msgstr "laver øjebliksbillede af %d filer fra rev %s\n" #~ msgid "Save File" #~ msgstr "Gem fil" #~ msgid "All files" #~ msgstr "Alle filer" #~ msgid "Select Folder" #~ msgstr "Vælg mappe" #~ msgid "Minimum Simularity Percentage" #~ msgstr "Mindste sammenfalds-procent" #~ msgid "Find Copies" #~ msgstr "Find kopier" #~ msgid "Unrevisioned Files" #~ msgstr "Ikke-revisionerede filer" #~ msgid "Accept Match" #~ msgstr "Godkend træffere" #~ msgid "Candidate Matches" #~ msgstr "Mulige træffere" #~ msgid "Differences from Source to Dest" #~ msgstr "Forskelle fra kilde til mål" #~ msgid "finding source of " #~ msgstr "finder kilder af " #~ msgid "" #~ "== %s and %s have identical contents ==\n" #~ "\n" #~ msgstr "" #~ "== %s og %s har identisk indhold ==\n" #~ "\n" #~ msgid "" #~ "\n" #~ "[command interrupted]" #~ msgstr "" #~ "\n" #~ "[kommando afbrudt]" #~ msgid "Configure email settings" #~ msgstr "Konfigurer e-post opsætning" #~ msgid "Email outgoing changes" #~ msgstr "E-post udgående ændringer" #~ msgid "Email Mercurial Patches" #~ msgstr "E-post mercurial lapper" #~ msgid "Envelope" #~ msgstr "Konvelut" #~ msgid "Patch Series (Bundle) Description" #~ msgstr "Beskrivelse af lap-serie (bundt)" #~ msgid "You must specify a recipient" #~ msgstr "Du skal angive en modtager" #~ msgid "You must specify a sender address" #~ msgstr "Du skal angive en afsenderadresse" #~ msgid "You must configure SMTP" #~ msgstr "Du skal konfigurere SMTP" #~ msgid "Glob:" #~ msgstr "Glob:" #~ msgid "Remove Selected" #~ msgstr "Fjern valgte" #~ msgid "Add special files (.hgignore, ...)" #~ msgstr "Tilføj specielle filer (.hgignore, ...)" #~ msgid "Destination path is empty" #~ msgstr "Mål-sti er tom" #~ msgid "Please enter the directory path" #~ msgstr "Skriv katalogstien" #~ msgid "unknown patch content: %r" #~ msgstr "ukendt lap-indhold: %r" #~ msgid "" #~ "total: %d hunks (%d changed lines); selected: %d hunks (%d changed lines)" #~ msgstr "" #~ "total: %d stumper (%d ændrede linjer); selected: %d stumper (%d ændrede " #~ "linjer)" #~ msgid "%d hunks, %d lines changed\n" #~ msgstr "%d stumper, %d linjer ændret\n" #~ msgid "unhandled transition: %s -> %s" #~ msgstr "unhandled transition: %s -> %s" #~ msgid " [Ynsfdaq?] " #~ msgstr " [Ynsfdaq?] " #~ msgid "user quit" #~ msgstr "user quit" #~ msgid "backup %r as %r\n" #~ msgstr "sikkerhedskopier %r som %r\n" #~ msgid "applying patch\n" #~ msgstr "tilføjer lap\n" #~ msgid "restoring %r to %r\n" #~ msgstr "gendanner %r som %r\n" #~ msgid "restoring backup files\n" #~ msgstr "gendanner sikkerhedskopi-filer\n" #~ msgid "response expected" #~ msgstr "svar forventet" #~ msgid "rename takes one or two path arguments" #~ msgstr "rename skal have et eller to argumenter" #~ msgid "limit number of changes displayed" #~ msgstr "begræns antaln viste ændringer" #~ msgid "hgtk log [OPTIONS] [FILE]" #~ msgstr "hgtk log [FLAG] [FIL]" #~ msgid "revisions to compare" #~ msgstr "revisioner til sammenligning" #~ msgid "hgtk status [FILE]..." #~ msgstr "hgtk status [FILER]..." #~ msgid "hgtk remove [FILE]..." #~ msgstr "hgtk remove [FILER]..." #~ msgid "hgtk rename SOURCE [DEST]" #~ msgstr "hgtk rename KILDE [MÅL]" #~ msgid "hgtk revert [FILE]..." #~ msgstr "hgtk revert [FILER]..." #~ msgid "hgtk serve [OPTION]..." #~ msgstr "hgtk serve [FLAG]..." #~ msgid "hgtk thgstatus [OPTION]" #~ msgstr "hgtk thgstatus [FLAG]" #~ msgid "hgtk version [OPTION]" #~ msgstr "hgtk version [FLAG]" #~ msgid "show the command options" #~ msgstr "vis kommando-flag" #~ msgid "[-o] CMD" #~ msgstr "[-o] KOMMANDO" #~ msgid "hgtk help [COMMAND]" #~ msgstr "hgtk help [KOMMANDO]" #~ msgid "Re_fresh" #~ msgstr "_Opdater" #~ msgid "Reload revision history" #~ msgstr "Hent revisionshistorien igen" #~ msgid "_Filter" #~ msgstr "_Filtrer" #~ msgid "Custom Filter" #~ msgstr "Tilpasset filter" #~ msgid "" #~ "Revert all files to revision %d?\n" #~ "This will overwrite your local changes" #~ msgstr "" #~ "Tilbagefør alle filer til revision %d?\n" #~ "Dette vil overskrive dine lokale ændringer" #~ msgid "Write bundle to" #~ msgstr "Skriv bundt til" #~ msgid "Save patch to" #~ msgstr "Gem lap som" #~ msgid "Apply" #~ msgstr "Anvend" #~ msgid "Invalid date specification" #~ msgstr "Ugyldig datospecifikation" #~ msgid "ID" #~ msgstr "ID" #~ msgid "Summary" #~ msgstr "Uddrag" #~ msgid "Local Date" #~ msgstr "Lokal dato" #~ msgid "Universal Date" #~ msgstr "Universel dato" #~ msgid "Must supply a target revision" #~ msgstr "Der skal angives en revision at flette med" #~ msgid "Merge target (other)" #~ msgstr "Fletterevision (den der flettes ind)" #~ msgid "Current revision (local)" #~ msgstr "Aktuel revision (lokal)" #~ msgid "Undo" #~ msgstr "Fortryd" #~ msgid "Confirm undo merge" #~ msgstr "Bekræft fortryd flet" #~ msgid "Clean checkout of original revision?" #~ msgstr "Ren opdatering til originalrevision?" #~ msgid "Stop the hg operation" #~ msgstr "Stop hg operationen" #~ msgid "Clean checkout, undo all changes" #~ msgstr "Ren opdatering, fortryd alle ændringer" #~ msgid "Rollback" #~ msgstr "Tilbagefør" #~ msgid "Rollback (undo) last transaction to repository (pull, commit, etc)" #~ msgstr "" #~ "Tilbagefør (fortryd) sidste transaktion til depot (pull, commit, " #~ "osv)Tilbagefør (fortryd) sidste transaktion til depot (pull, commit, osv)" #~ msgid "Recover" #~ msgstr "Genskab" #~ msgid "Recover from interrupted operation" #~ msgstr "Genskab efter afbrudt operation" #~ msgid "Verify" #~ msgstr "Efterprøv" #~ msgid "Clean repository '%s' ?" #~ msgstr "Rens depot '%s' ?" #~ msgid "Rollback repository '%s' ?" #~ msgstr "Tilbagefør depot '%s' ?" #~ msgid "Browse" #~ msgstr "Gennemse" #~ msgid "Abort: %s\n" #~ msgstr "Afbrudt: %s\n" #~ msgid "address to use" #~ msgstr "adresse" #~ msgid "name of file to write process ID to" #~ msgstr "navn på fil at skrive process ID til" #~ msgid "for remote clients" #~ msgstr "for fjernklienter" #~ msgid "web templates to use" #~ msgstr "web-skabelon" #~ msgid "template style to use" #~ msgstr "skabelon-stil" #~ msgid "use IPv6 in addition to IPv4" #~ msgstr "brug IPv6 og IPv4" #~ msgid "SSL certificate file" #~ msgstr "SSL certifikatfil" #~ msgid "hg serve [OPTION]..." #~ msgstr "hg serve [FLAG]..." #~ msgid "_delete" #~ msgstr "_slet" #~ msgid "filtered status" #~ msgstr "filtreret status" #~ msgid "refresh" #~ msgstr "opdater" #~ msgid "Save As" #~ msgstr "Gem som" #~ msgid "Save selected changes" #~ msgstr "Gem valgte ændringer" #~ msgid "st" #~ msgstr "st" #~ msgid "ms" #~ msgstr "ms" #~ msgid "path" #~ msgstr "sti" #~ msgid "M: modified" #~ msgstr "M: ændret" #~ msgid "A: added" #~ msgstr "A: tilføjet" #~ msgid "R: removed" #~ msgstr "R: fjernet" #~ msgid "!: deleted" #~ msgstr "!: mangler" #~ msgid "?: unknown" #~ msgstr "?: ukendt" #~ msgid "C: clean" #~ msgstr "C: ren" #~ msgid "I: ignored" #~ msgstr "I: ignoreret" #~ msgid "%d selected, %d total" #~ msgstr "%d valgte, %d i alt" #~ msgid "Rename file to:" #~ msgstr "Omdøb fil til:" #~ msgid "Copy file to" #~ msgstr "Kopier fil til" #~ msgid "Nothing Removed" #~ msgstr "Intet fjernet" #~ msgid "Remove is not enabled when multiple revisions are specified." #~ msgstr "" #~ "Det er ikke muligt at fjerne filer når der er valgt flere revisioner." #~ msgid "Move is not enabled when multiple revisions are specified." #~ msgstr "" #~ "Det er ikke muligt at flytte filer når der er valgt flere revisioner." #~ msgid "Nothing Moved" #~ msgstr "Intet flyttet" #~ msgid "Copy is not enabled when multiple revisions are specified." #~ msgstr "" #~ "Det er ikke muligt at kopiere filer når der er valgt flere revisioner." #~ msgid "Nothing Copied" #~ msgstr "Intet kopieret" #~ msgid "File is larger than the specified max size.\n" #~ msgstr "Fil er større end den specificerede maksimale størrelse.\n" #~ msgid "Hunk selection is disabled for this file.\n" #~ msgstr "Stump-valg er deaktiveret for denne fil.\n" #~ msgid "Nothing Reverted" #~ msgstr "Intet tilbageført" #~ msgid "No revertable files selected" #~ msgstr "Ingen af de valgte filer kan tilbageføres" #~ msgid "Revert not allowed when viewing revision range." #~ msgstr "Tilbagefør ikke tilladt når man ser på revisionsinterval." #~ msgid "Revert files to revision %s?" #~ msgstr "Tilbagefør filer til revision %s?" #~ msgid "Nothing Added" #~ msgstr "Intet tilføjet" #~ msgid "No addable files selected" #~ msgstr "Ingen af de valgte filer kan tilføjes" #~ msgid "No removable files selected" #~ msgstr "Ingen af de valgte filer kan fjernes" #~ msgid "Delete Errors" #~ msgstr "Kunne ikke slette" #~ msgid "Incoming" #~ msgstr "Indgående" #~ msgid "Configure peer repository paths" #~ msgstr "Konfigurer stier til andre depoter" #~ msgid "Repo:" #~ msgstr "Depot:" #~ msgid "Bundle:" #~ msgstr "Bundt:" #~ msgid "Nothing" #~ msgstr "Ingenting" #~ msgid "Fetch" #~ msgstr "Hent" #~ msgid "Advanced Options" #~ msgstr "Advanceret konfiguration" #~ msgid "Force pull or push" #~ msgstr "Gennemtving træk eller skub" #~ msgid "Run even when remote repository is unrelated." #~ msgstr "Kør selv om fjerndepot er urelateret" #~ msgid "A specific revision up to which you would like to push or pull." #~ msgstr "Skub eller træk alle revisioner til og med denne." #~ msgid "Name of hg executable on remote machine." #~ msgstr "Navn på hg eksekverbar på den anden maskine." #~ msgid "Incoming/Outgoing" #~ msgstr "Indgående/Udgående" #~ msgid "Update to branch tip" #~ msgstr "Opdater til spids af gren" #~ msgid "unknown sort key '%s'" #~ msgstr "ukendt sorteringsnøgle '%s'" #~ msgid "Select Bundle" #~ msgstr "Vælg bundt" #~ msgid "Bundle (*.hg)" #~ msgstr "Bundt (*.hg)" #~ msgid "Bundle (*)" #~ msgstr "Bundt (*)" #~ msgid "No repository selected" #~ msgstr "Intet depot valgt" #~ msgid "Select a peer repository to compare with" #~ msgstr "Vælg et andet depot at sammenligne med" #~ msgid "Enable overlays" #~ msgstr "Aktiver overlays" #~ msgid "Message Line Length" #~ msgstr "Linjelængde for integrationsbesked" #~ msgid "Skipped saving path with no alias" #~ msgstr "Sti uden alias gemmes ikke" #~ msgid "_Edit" #~ msgstr "_Rediger" #~ msgid "Remote repository paths" #~ msgstr "Sti til andet depot" #~ msgid "Path testing cannot work without a repository" #~ msgstr "Afprøvning af sti fungerer ikke uden et depot" #~ msgid "Repository Path" #~ msgstr "Sti til depot" #~ msgid "_Test" #~ msgstr "_Afprøv" #~ msgid "Suggested" #~ msgstr "Foreslået" #~ msgid "set aside selected changes" #~ msgstr "læg udvalgte ændringer til side" #~ msgid "No repository found here" #~ msgstr "Intet depot fundet her" #~ msgid "Visual Diffs" #~ msgstr "Visuel Diff." #~ msgid "changeset " #~ msgstr "ændring " #~ msgid "Highlight the taskbar icon during activity" #~ msgstr "Fremhæv ikonet på proceslinjen ved aktivitet" #~ msgid "Specify the visual editor used to view files, etc" #~ msgstr "Specificer den visuelle editor der skal bruges til at se filer" #~ msgid "Bottom Diffs" #~ msgstr "Diff-panel" #~ msgid "Name associated with commits" #~ msgstr "Navn anvendt ved integrationer" #~ msgid "Maximum number of files to list per changeset." #~ msgstr "Maksimum antal filer at vise pr ændring" #~ msgid "Maximum number of changes to list on the changelog." #~ msgstr "Maksimum antal ændringer at vise i ændringsloggen." #~ msgid "Character encoding name" #~ msgstr "Navn på indkodning af tegn" #~ msgid "Edit remote repository path" #~ msgstr "Rediger sti til fjerndepot" #~ msgid "Folder" #~ msgstr "Folder" #~ msgid "Overwrite existing '%s' path?" #~ msgstr "Overskriv eksisterende sti '%s'?" #~ msgid "User global settings" #~ msgstr "Brugerindstillinger" #~ msgid "Diff" #~ msgstr "Diff" #~ msgid "TortoiseHg Configure Repository - " #~ msgstr "TortoiseHg konfigurer depot - " #~ msgid "TortoiseHg Configure User-Global Settings" #~ msgstr "TortoiseHg konfigurer brugerinstillinger" #~ msgid "No Repository Found" #~ msgstr "Intet depot fundet" #~ msgid "" #~ "Graphical merge program for resolving merge conflicts. If left " #~ "unspecified, Mercurial will use the first applicable tool it finds on " #~ "your system or use its internal merge tool that leaves conflict markers " #~ "in place. Chose internal:merge to force conflict markers, internal:" #~ "prompt to always select local or other, or internal:dump to leave files " #~ "in the working directory for manual merging" #~ msgstr "" #~ "Grafisk flette-program til at løse konflikter ved sammenfletningen. Hvis " #~ "uspecificeret vil Mercurial bruge det første flette-værktøj som kan " #~ "anvendes eller bruge sit interne flette-værktøj der indsætter konflikt-" #~ "markører. Vælg internal:merge for at tvinge konflikt markører, internal:" #~ "prompt for at skulle vælge mellem lokal eller anden, eller internal:dump " #~ "for at efterlade filerne i arbejdskataloget til manuel fletning" #~ msgid "Move files to directory..." #~ msgstr "Flyt filer til katalog..." #~ msgid "Error: %s" #~ msgstr "Fejl: %s" #~ msgid "Abort: %s" #~ msgstr "Afbrudt: %s" #~ msgid "(version %s)" #~ msgstr "(version %s)" #~ msgid "with %s" #~ msgstr "med %s" #~ msgid "Invalid regular expression" #~ msgstr "Ugyldigt regulært udtryk" #~ msgid "Rename error" #~ msgstr "Omdøbningsfejl" #~ msgid "Try &Again" #~ msgstr "Prøv &Igen" #~ msgid "&Quit" #~ msgstr "&Afslut" #~ msgid "Unable to delete temp files" #~ msgstr "Kan ikke slette midlertidige filer" #~ msgid "Close diff tools and try again, or quit to leak files?" #~ msgstr "Luk diff-værktøj og prøv igen, eller stop og efterlad filer?" #~ msgid "Archive" #~ msgstr "Arkiv" #~ msgid "Archive revision:" #~ msgstr "Arkiv revision:" #~ msgid "Compressed zip archives" #~ msgstr "Komprimerede zip-arkiver" #~ msgid "Source path:" #~ msgstr "Kilde-sti:" #~ msgid "Advanced options" #~ msgstr "Avancerede indstillinger" #~ msgid "Use uncompressed transfer" #~ msgstr "Brug ukomprimeret overførsel" #~ msgid "Recent commit messages..." #~ msgstr "Seneste integrationsbeskedder..." #~ msgid "_Commit (+1 head)" #~ msgstr "_Integrer (+1 hoved)" #~ msgid "_Commit (-1 head)" #~ msgstr "_Integrer (-1 hoved)" #~ msgid "parent is not a head, commit to add a new head" #~ msgstr "forælder er ikke et hoved, integrer vil tilføje et nyt hoved" #~ msgid "commit to merge one head" #~ msgstr "integrer for at flette et hoved" #~ msgid "Merge " #~ msgstr "Flet " #~ msgid "Confirm Undo Commit" #~ msgstr "Bekræft fortryd integration" #~ msgid "Undo Commit" #~ msgstr "Fortryd integration" #~ msgid "Info Required" #~ msgstr "Oplysninger mangler" #~ msgid "Select" #~ msgstr "Vælg" #~ msgid "Select Revision" #~ msgstr "Vælg revision" #~ msgid "revision number, changeset ID, branch or tag" #~ msgstr "revisionsnummer, ændrings ID, gren eller mærkat" #~ msgid "Invalid Revision" #~ msgstr "Ugyldig revision" #~ msgid "" #~ "Select language for spell checking.\n" #~ "\n" #~ "Empty is for the default language.\n" #~ "When all text is highlited, the dictionary\n" #~ "is probably not installed.\n" #~ "\n" #~ "examples: en, en_GB, en_US" #~ msgstr "" #~ "Vælg sprog til stavekontrol..\n" #~ "\n" #~ "Tom er standardsproget.\n" #~ "Hvis al tekst er markeret, så er\n" #~ "ordbogen nok ikke installeret.\n" #~ "\n" #~ "eksempler: da, en, en_GB, en_US" #~ msgid "Lang \"%s\" can not be set.\n" #~ msgstr "Sprog \"%s\" kan ikke aktiveres.\n" #~ msgid "Spell Check Language" #~ msgstr "Stavekontrolsprog" #~ msgid "revision to merge with" #~ msgstr "revision at flette med" #~ msgid "hgtk forget [FILE]..." #~ msgstr "hgtk forget [FILER]..." #~ msgid "Color by Branch" #~ msgstr "Farvelæg ud fra gren" #~ msgid "%s branch" #~ msgstr "%s grenen" #~ msgid "merges" #~ msgstr "fletninger" #~ msgid "revision ancestry" #~ msgstr "revision-forfædre" #~ msgid "tagged revisions" #~ msgstr "revisioner med mærkat" #~ msgid "working parents" #~ msgstr "forældre til arbejdskatalog" #~ msgid "heads" #~ msgstr "hoveder" #~ msgid "Load more" #~ msgstr "Indlæs mere" #~ msgid "load more revisions" #~ msgstr "Indlæs flere revisioner" #~ msgid "Load all" #~ msgstr "Indlæs alt" #~ msgid "load all revisions" #~ msgstr "Indlæs alle revisioner" #~ msgid "File Patterns" #~ msgstr "Filmønstre" #~ msgid "Keywords" #~ msgstr "Søgeord" #~ msgid "Confirm Rebase Revision" #~ msgstr "Bekræft rebase revision" #~ msgid "Rebase revision %d on top of %d?" #~ msgstr "Rebase revision %d efter %d?" #~ msgid "_Diff" #~ msgstr "_Forskel" #~ msgid "Add checked files" #~ msgstr "Tilføj valgte filer" #~ msgid "Move checked files to other directory" #~ msgstr "Flyt valgte filer til andet katalog" #~ msgid "Remove or delete checked files" #~ msgstr "Fjern eller slet valgte filer" #~ msgid "port to use (default: 8000)" #~ msgstr "port (standard: 8000)" #~ msgid "prefix path to serve from (default: server root)" #~ msgstr "prefiks sti at udstille fra (standard: server-rod)" #~ msgid "name to show in web pages (default: working dir)" #~ msgstr "navn at vise på websider (standard: arbejdskatalog)" #~ msgid "Visual diff checked files" #~ msgstr "Visuel diff af valgte filer" #~ msgid "Revert checked files" #~ msgstr "Tilbagefør valgte filer" #~ msgid "Text Diff" #~ msgstr "Tekstforskel" #~ msgid "Hunk Selection" #~ msgstr "Valg af stump" #~ msgid "Nothing Diffed" #~ msgstr "Ingenting sammenlignet" #~ msgid "No diffable files selected" #~ msgstr "Der er ikke valgt nogle filer der kan sammenlignes" #~ msgid "Nothing Forgotten" #~ msgstr "Ingenting glemt" #~ msgid "No clean files selected" #~ msgstr "Ingen rene filer valgt" #~ msgid "not up to date" #~ msgstr "ikke ajour" #~ msgid "" #~ "The parents have changed since the last refresh.\n" #~ "Continue anyway?" #~ msgstr "" #~ "Forældrene er ændret siden sidste opdatering.\n" #~ "Fortsæt alligevel?" #~ msgid "Target revision:" #~ msgstr "Mål-revision:" #~ msgid "Show patches" #~ msgstr "Vis lapper" #~ msgid "Show newest first" #~ msgstr "Vis nyeste først" #~ msgid "Show no merges" #~ msgstr "Skjul fletninger" #~ msgid "" #~ "Redirect stderr to a buffer which is parsed at the end of the process for " #~ "runtime errors. Default: True" #~ msgstr "" #~ "Omdiriger stderr til en buffer som bliver gennemgået ved " #~ "processafslutning for kørselsfejl. Standard: Sand" #~ msgid "" #~ "Color changesets by author name. If not enabled, the changes are colored " #~ "green for merge, red for non-trivial parents, black for normal. Default: " #~ "False" #~ msgstr "" #~ "Farvelæg ændringer ud fra forfatternavn. Hvis ikke aktiveret vil " #~ "ændringer blive farvet grøn for flet, rød for ikke-trivielle forældre og " #~ "sort for normal. Standard: Falsk" #~ msgid "" #~ "If true, concatenate multiple lines of changeset summary until they reach " #~ "80 characters. Default: False" #~ msgstr "" #~ "Hvis sand bliver uddraget sammensat af de første 80 tegn af " #~ "integrationsbeskeden. Standard: Falsk" #~ msgid "" #~ "Repository name to use in the web interface. Default is the working " #~ "directory." #~ msgstr "" #~ "Depotnavn der skal anvendes i web grænsefladen. Standard er " #~ "arbejdskataloget." #~ msgid "Connect to mail server using TLS. Default: False" #~ msgstr "Forbind til mail server via TLS. Standard: Falsk" #~ msgid "Ignore white space when comparing lines. Default: False" #~ msgstr "Ignorer blanktegn ved sammenligning af linjer. Standard: Falsk" #~ msgid "Ignore changes in the amount of white space. Default: False" #~ msgstr "Ignorer ændringer i mængden af blanktegn. Standard: Falsk" #~ msgid "Ignore changes whose lines are all blank. Default: False" #~ msgstr "Ignorer ændringer som kun indeholder tomme linier. Standard: Falsk" #~ msgid "" #~ "Default language for spell check. System language is used if not " #~ "specified. Examples: en, en_GB, en_US" #~ msgstr "" #~ "Standardsprog for stavekontrol. Systemsproget bliver anvendt hvis ikke " #~ "anført. Eksempler: da, en, en_GB, en_US" #~ msgid "Set as _default" #~ msgstr "Vælg som _standard" #~ msgid "Backout changeset - %s" #~ msgstr "Omgør ændringssæt - %s" #~ msgid "unknown hunk type: %s" #~ msgstr "ukendt stykke type: %s" #~ msgid "%s changeset " #~ msgstr "%s ændringssæt " #~ msgid "Save as.." #~ msgstr "Gem som..." #~ msgid "Advanced" #~ msgstr "Avanceret" #~ msgid "View" #~ msgstr "Vis" #~ msgid "[no hunks to display]" #~ msgstr "[intet stykke at fremvise]" #~ msgid "Committer:" #~ msgstr "Bidragsyder:" #~ msgid "Datamine" #~ msgstr "Dataminér" #~ msgid "refresh top MQ patch" #~ msgstr "opfrisk øverste MQ lappeløsning" #~ msgid "Patch Contents" #~ msgstr "Indhold af lappeløsning" #~ msgid "create new MQ patch" #~ msgstr "opret ny MQ lappeløsning" #~ msgid "Push after commit" #~ msgstr "Skub efter integrering" #~ msgid "Command Log" #~ msgstr "Kommando Log" #~ msgid "Send" #~ msgstr "Send" #~ msgid "invalid state" #~ msgstr "ugyldig tilstand" #~ msgid "[command returned code %d " #~ msgstr "[kommanden returnerede kode %d " #~ msgid "Test" #~ msgstr "Test" #~ msgid "Flags:" #~ msgstr "Flag:" #~ msgid "Contents" #~ msgstr "Indhold" #~ msgid "unknown CmdWidget style: %s" #~ msgstr "ukendt CmdWidget stil: %s" #~ msgid "Choose Details..." #~ msgstr "Vælg Detaljer..." #~ msgid "[command completed successfully " #~ msgstr "[kommandoen blev afsluttet med succes " #~ msgid "Columns" #~ msgstr "Kolonner" #~ msgid "Log Details" #~ msgstr "Log Detaljer" #~ msgid "UTC Date" #~ msgstr "UTC Dato" #~ msgid "Revision..." #~ msgstr "Revision..." #~ msgid "Revision Number" #~ msgstr "Revisionsnummer" #~ msgid "Changeset ID" #~ msgstr "Ændringssæt ID" #~ msgid "Age" #~ msgstr "Alder" #~ msgid "Compact Graph" #~ msgstr "Kompakt Graf" #~ msgid "Tip" #~ msgstr "Tip" #~ msgid "Tags" #~ msgstr "Mærkater" #~ msgid "_Forget" #~ msgstr "_Glem" #~ msgid "Save patches to" #~ msgstr "Gem lappeløsninger i" #~ msgid "Confirm Revert All Files" #~ msgstr "Bekræft Tilbageføring af Alle Filer" #~ msgid "Rename " #~ msgstr "Omdøb " #~ msgid "&Yes (backup changes)" #~ msgstr "&Ja (sikkerhedskopier ændringer)" #~ msgid "Yes (&discard changes)" #~ msgstr "Ja (&kassér ændringer)" #~ msgid "View '%s'" #~ msgstr "Se '%s'" #~ msgid "Repository Error: %s, refresh suggested" #~ msgstr "Opbevaringslager Fejl: %s, opfrisk foreslåede" #~ msgid "Unsupported line endings type: %s" #~ msgstr "Ikke-understøttede type af linieendelser: %s" #~ msgid "Branch Name" #~ msgstr "Gren Navn" #~ msgid "Working Parent" #~ msgstr "Arbejdende Forælder" #~ msgid "Filter Bar" #~ msgstr "Bjælkefilter" #~ msgid "Auto-includes:" #~ msgstr "Auto-inkludér:" #~ msgid "ssh" #~ msgstr "ssh" #~ msgid "https" #~ msgstr "https" #~ msgid "http" #~ msgstr "http" #~ msgid "Fork hgtk" #~ msgstr "Forgren hgtk" #~ msgid "URL Details" #~ msgstr "URL Detaljer" #~ msgid "Select Local Folder" #~ msgstr "Vælg Lokal Mappe" #~ msgid "Alias name is empty" #~ msgstr "Alias-navn er tomt" #~ msgid "Please enter alias name" #~ msgstr "Indtast venligst alias-navn" #~ msgid "Exit after saving changes?" #~ msgstr "Afslut efter gemning af ændringer?" #~ msgid "#" #~ msgstr "#" #~ msgid "Unapply last patch" #~ msgstr "Undlad at anvende sidste lap" #~ msgid "Apply next patch" #~ msgstr "Anvend næste lap" #~ msgid "Show status" #~ msgstr "Vis status" #~ msgid "Enable editable cells" #~ msgstr "Aktivér redigérbare celler" #~ msgid "Show name" #~ msgstr "Vis navn" #~ msgid "Show 'qparent'" #~ msgstr "Vis 'qforælder'" #~ msgid "unknown mode name: %s" #~ msgstr "ukendt tilstandsnavn: %s" #~ msgid "" #~ "The destination \"%s\" already exists!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "Destinationen \"%s\" eksisterer allerede!" #~ msgid "" #~ "The directory \"%s\" isn't empty!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "Mappen \"%s\" er ikke tom!\n" #~ "\n" #~ "Vil du overskrive den?" #~ msgid "All Files (*.*)" #~ msgstr "Alle filer (*.*)" #~ msgid "unexpected response id: %s" #~ msgstr "unventet svar id: %s" #~ msgid "Do you want to abort?" #~ msgstr "Vil du afbryde?" #~ msgid "Confirm Abort" #~ msgstr "Bekræft Afbrydelse" #~ msgid "Source and destination are the same" #~ msgstr "Kilde og destination er den samme" #~ msgid "Please specify different paths" #~ msgstr "Venligst angiv forskellige stier" #~ msgid "_View" #~ msgstr "_Vis" #~ msgid "_Operations" #~ msgstr "_Operationer" #~ msgid "Patch Preview" #~ msgstr "Lap Forhåndsvisning" #~ msgid "Commit Preview" #~ msgstr "Indsend Forhåndsvisning" #~ msgid "Send emails" #~ msgstr "Send post" #~ msgid "Show emails which would be sent" #~ msgstr "Vis post som ville blive sendt" #~ msgid "_Tools" #~ msgstr "Værk_tøjer" #~ msgid "Loading history..." #~ msgstr "Indlæser historie..." #~ msgid "Toggle log window" #~ msgstr "Slå log-vindue til/fra" #~ msgid "_Help" #~ msgstr "_Hjælp" #~ msgid "Serve" #~ msgstr "Tjene" #~ msgid "Recovery" #~ msgstr "Genskabelse" #~ msgid "Stop current transaction" #~ msgstr "Stop nuværende transaktion" #~ msgid "Email revisions " #~ msgstr "Email revisioner " #~ msgid "" #~ "This feature is only available when sending outgoing changesets. It is " #~ "not applicable with revision ranges." #~ msgstr "" #~ "Denne funktionalitet er kun tilgængelig når man sender udgående " #~ "ændringer. Den kan ikke anvendes på revisionsintervaller." #~ msgid "Determine and mark outgoing changesets" #~ msgstr "Find og marker udgående ændringer" #~ msgid "Pull incoming changesets" #~ msgstr "Træk indgående ændringer" #~ msgid "Email outgoing changesets" #~ msgstr "Email udgående ændringer" #~ msgid "Push outgoing changesets" #~ msgstr "Skub udgående ændringer" #~ msgid "Repository is empty" #~ msgstr "Magasin er tomt" #~ msgid "Canceled backout" #~ msgstr "Omgør annuleret" #~ msgid "Failed to archive" #~ msgstr "Kunne ikke arkivere" #~ msgid "Failed to backout" #~ msgstr "Kunne ikke omgøre" #~ msgid "Canceled archiving" #~ msgstr "Arkivering afbrudt" #~ msgid "Archived successfully" #~ msgstr "Arkivering fuldført" #~ msgid "Failed to clone" #~ msgstr "Kunne ikke klone" #~ msgid "Diff to second Parent" #~ msgstr "Forskel til anden forælder" #~ msgid "Cloned successfully" #~ msgstr "Kloning fuldført" #~ msgid "Close this" #~ msgstr "Luk denne" #~ msgid "Stop transaction" #~ msgstr "Stop transaktion" #~ msgid "%s - datamine" #~ msgstr "%s - datamine" #~ msgid "Apply to:" #~ msgstr "Anvend på:" #~ msgid "Move Up" #~ msgstr "Flyt op" #~ msgid "Move Down" #~ msgstr "Flyt ned" #~ msgid "Ignore Max Diff Size" #~ msgstr "Ignorer maks diff størrelse" #~ msgid "Reset Marks" #~ msgstr "Nulstil mærker" #~ msgid "Toolbar" #~ msgstr "Værktøjslinje" #~ msgid "Load more Revisions" #~ msgstr "Hent flere revisioner" #~ msgid "Load all Revisions" #~ msgstr "Hent alle revisioner" #~ msgid "Show/Hide Patch Queue" #~ msgstr "vis/skjul lap-kø" #~ msgid "only Merges" #~ msgstr "kun fletninger" #~ msgid "Add Bundle..." #~ msgstr "Tilføj bundt..." #~ msgid "Filter" #~ msgstr "Filter" #~ msgid "Branch '%s'" #~ msgstr "Gren '%s'" #~ msgid "Accept Bundle" #~ msgstr "Acepter bundt" #~ msgid "Reject Bundle" #~ msgstr "Afvis bundt" #~ msgid "Ancestry of %s" #~ msgstr "Forfædre til %s" #~ msgid "Email..." #~ msgstr "E-mail..." #~ msgid "Heads" #~ msgstr "Hoveder" #~ msgid "Tagged Revisions" #~ msgstr "Revisioner med mærkater" #~ msgid "no Merges" #~ msgstr "ingen fletninger" #~ msgid "_Revert" #~ msgstr "_Tilbagefør" #~ msgid "Strip Revision..." #~ msgstr "Fjern revision..." #~ msgid "After Pull:" #~ msgstr "Efter træk:" #~ msgid "_View at Revision" #~ msgstr "_Vis revision" #~ msgid "_Visual Diff" #~ msgstr "_Visuel Diff" #~ msgid "_File History" #~ msgstr "_Filhistorie" #~ msgid "Diff to _local" #~ msgstr "Diff til _lokal" #~ msgid "_Annotate File" #~ msgstr "_Annotér fil" #~ msgid " - qnew" #~ msgstr " - qnew" #~ msgid " - qrefresh " #~ msgstr " - qrefresh " #~ msgid "Parent: %(rev)s" #~ msgstr "Forælder: %(rev)s" #~ msgid "&Reject" #~ msgstr "&Afslå" #~ msgid "&Accept" #~ msgstr "&Godkend" #~ msgid " (Bundle Preview)" #~ msgstr " (Bundt forhåndsvisning)" #~ msgid "_Navigate" #~ msgstr "_Navigér" #~ msgid "_Merge with..." #~ msgstr "_Flet med..." #~ msgid "_Bundle rev:tip..." #~ msgstr "_Bundt rev:tip..." #~ msgid "_Export Patch..." #~ msgstr "_Eksporter lap..." #~ msgid "_Update..." #~ msgstr "_Opdater..." #~ msgid "E_mail Patch..." #~ msgstr "E_mail lap..." #~ msgid "_Synchronize" #~ msgstr "_Synkronisér" #~ msgid "Export Patches from here to selected..." #~ msgstr "Eksporter lapper herfra til markerede..." #~ msgid "Bundle from here to selected..." #~ msgstr "Bundt herfra til markerede..." #~ msgid "Email from here to selected..." #~ msgstr "Email herfra til markerede..." #~ msgid "Visual Diff with selected" #~ msgstr "Visuel Diff med markerede" #~ msgid "Download and view incoming changesets" #~ msgstr "Hent og se indkommende ændringer" #~ msgid "Merges" #~ msgstr "Fletninger" #~ msgid "Configure aliases and after pull behavior" #~ msgstr "Konfigurer aliaser og opførsel efter 'hent'" #~ msgid "Ancestry" #~ msgstr "Forfædre" #~ msgid "Tagged" #~ msgstr "Mærket" #~ msgid "Rebase on top of selected" #~ msgstr "Rebase efter markeret" #~ msgid "Transplant Revision range to local" #~ msgstr "Transplanter revisions-interval til lokal" #~ msgid "Accept changes from Bundle preview" #~ msgstr "Godkend ændringer fra forhåndsvisning af bundt" #~ msgid "Reject changes from Bundle preview" #~ msgstr "Afvis ændringer fra forhåndsvisning af bundt" #~ msgid "Branches..." #~ msgstr "Grene..." #~ msgid "Please enter or select a remote path" #~ msgstr "Skriv eller vælg en fjern-sti" #~ msgid "Bundle Preview" #~ msgstr "Forhåndsvisning af bundt" #~ msgid "No remote path specified" #~ msgstr "Ingen fjern-sti specificeret" #~ msgid "Hide Merges" #~ msgstr "Skjul fletninger" #~ msgid "Accept incoming previewed changesets" #~ msgstr "Godkend indgående ændringer som blev forhåndsvist" #~ msgid "Reject incoming previewed changesets" #~ msgstr "Afvis indgående ændringer som blev forhåndsvist" #~ msgid "Reject" #~ msgstr "Afvis" #~ msgid "Branch Filter" #~ msgstr "Gren-filter" #~ msgid "Failed to merge" #~ msgstr "Kunne ikke flette" #~ msgid "%(count)d of %(total)d Revisions" #~ msgstr "%(count)d af %(total)d revisioner" #~ msgid "Outstanding uncommitted changes" #~ msgstr "Der er stadig Ikke-integrerede ændringer" #~ msgid "Undo successfully" #~ msgstr "Tilbageførsel fuldført" #~ msgid "Merged successfully" #~ msgstr "Flet fuldført" #~ msgid "Canceled merging" #~ msgstr "Flet annuleret" #~ msgid "Open Bundle" #~ msgstr "Åben bundt" #~ msgid "Merging in %s" #~ msgstr "Flet i %s" #~ msgid "Shelve" #~ msgstr "Hylden" #~ msgid "Visualize Change" #~ msgstr "Visualiser ændringer" #~ msgid "Di_splay Change" #~ msgstr "_Vis ændring" #~ msgid "Add/Remove _Tag..." #~ msgstr "Tilføj/fjern _Mærkat" #~ msgid "_Archive..." #~ msgstr "_Arkivér..." #~ msgid "_Diff with selected" #~ msgstr "_Diff med markerede" #~ msgid "Canceled undo" #~ msgstr "Tilbageførsel annuleret" #~ msgid "Failed to undo" #~ msgstr "Kunne ikke tilbageføre" #~ msgid "Select files to add" #~ msgstr "Marker filer der skal tilføjes" #~ msgid "Select files to forget" #~ msgstr "Marker filer der skal glemmes" #~ msgid "Select files to revert" #~ msgstr "Marker filer der skal tilbageføres" #~ msgid "Select files to remove" #~ msgstr "Marker filer der skal fjernes" #~ msgid "Toggle all selections" #~ msgstr "Vend markeringer" #~ msgid "Successfully" #~ msgstr "Fuldført" #~ msgid "Canceled" #~ msgstr "Afbrudt" #~ msgid "Failed" #~ msgstr "Fejlet" #~ msgid "%s - recovery" #~ msgstr "%s - genskabelse" #~ msgid "%s - serve" #~ msgstr "%s - tjeneste" #~ msgid "%s serve - %s" #~ msgstr "%s tjeneste - %s" #~ msgid " - serve" #~ msgstr " - tjeneste" #~ msgid "Forget checked files on next commit" #~ msgstr "Glem valgte filer ved næste integration" #~ msgid "Save Preview" #~ msgstr "Gem forhåndsvisning" #~ msgid "Shelf Preview" #~ msgstr "Hylde forhåndsvisning" #~ msgid "View missing" #~ msgstr "Vis manglende" #~ msgid "View other" #~ msgstr "Vis anden" #~ msgid "_Guess Rename..." #~ msgstr "_Gæt omdøbning..." #~ msgid "_Ignore" #~ msgstr "_Ignorer" #~ msgid "Remove versioned" #~ msgstr "Fjern versioneret" #~ msgid "_Delete unversioned" #~ msgstr "_Slet ikkeversioneret" #~ msgid "_Copy..." #~ msgstr "_Kopier..." #~ msgid "Rename..." #~ msgstr "_Omdøb..." #~ msgid "Restart Merge..." #~ msgstr "Genstart flet..." #~ msgid "Mark unresolved" #~ msgstr "Marker som uløst" #~ msgid "Mark resolved" #~ msgstr "Marker som løst" #~ msgid "Restart merge with" #~ msgstr "Genstart flet med" #~ msgid "%s - synchronize" #~ msgstr "%s - synkroniser" #~ msgid "Shelve uncommited changes" #~ msgstr "Læg ikke-integrerede ændringer på hylden" #~ msgid "" #~ "Show the diff panel below the file list in status, shelve, and commit " #~ "dialogs. Default: False (show diffs to right of file list)" #~ msgstr "" #~ "Viser diff-panelet under fil-listen ved status, læg-på-hylden og integrér " #~ "dialogerne. Default: Falsk (vis diff til højre for fil-listen)" #~ msgid "Use Expander" #~ msgstr "Brug udfolder" #~ msgid "Show changeset details with an expander" #~ msgstr "Vis ændringsdetaljer med en udfolder" #~ msgid "Yes (&keep)" #~ msgstr "Ja (&bevar)" #~ msgid "Confirm Fold" #~ msgstr "Bekræft fold" #~ msgid "" #~ "Do you want to fold un-applied patch '%(target)s' into current patch " #~ "'%(qtip)s'?" #~ msgstr "" #~ "Ønsker du at folde den ikke-anvendt lap '%(target)s' ind i aktuelle lap " #~ "'%(qtip)s'?" #~ msgid "_rename" #~ msgstr "_omdøb" #~ msgid "Succeed" #~ msgstr "Fuldført" #~ msgid "Unshelve" #~ msgstr "Tag fra hylden" #~ msgid "restore shelved changes" #~ msgstr "Gendan ændringer fra hylden" #~ msgid "Shelf Contents" #~ msgstr "Hyldens indhold" #~ msgid "No changes to shelve" #~ msgstr "Ingen ændriner til hylde" #~ msgid "Please select diff chunks to shelve" #~ msgstr "Vælg diff-stumper at lægge på hylden" #~ msgid "Shelve file exists!" #~ msgstr "Hylde-fil eksisterer!" #~ msgid "Unshelve Error" #~ msgstr "Tag-fra-hylden fejlede" #~ msgid "Strip" #~ msgstr "Fjern" #~ msgid "Backup all (default)" #~ msgstr "Sikkerhedskopier alt (standard)" #~ msgid "Backup unrelated changesets (-b/--backup)" #~ msgstr "Sikkerhedskopier ikke-relaterede ændringer (-b/--backup)" #~ msgid "" #~ "Detected uncommitted local changes.\n" #~ "Do you want to discard them and continue?" #~ msgstr "" #~ "Fandt ikke-integrerede lokale ændringer.\n" #~ "Ønsker du at forkaste dem og fortsætte?" #~ msgid "&Yes (--force)" #~ msgstr "&Ja (--force)" #~ msgid "Stripped successfully" #~ msgstr "Fjern gennemført" #~ msgid "Canceled stripping" #~ msgstr "Fjern afbrudt" #~ msgid "Failed to strip" #~ msgstr "Kunne ikke fjerne" #~ msgid "Saved at: %s" #~ msgstr "Gemt som: %s" #~ msgid "Open..." #~ msgstr "Åben..." #~ msgid "" #~ "Detected uncommitted local changes in working tree.\n" #~ "Please select to continue:\n" #~ "\n" #~ msgstr "" #~ "Fandt ikke-integrerede lokale ændringer i arbejdskataloget.\n" #~ "Hvordan vil du fortsætte:\n" #~ "\n" #~ msgid "Shelve - launch Shelve tool and continue" #~ msgstr "Hylde - starter hylde-værktøjet og fortsætter" #~ msgid "[canceled by user]\n" #~ msgstr "[afnnuleret af bruger]\n" #~ msgid "invalid dialog result: %s" #~ msgstr "ugyldigt dialog-resultat: %s" #~ msgid "Updated successfully" #~ msgstr "Opdatering fuldført" #~ msgid "Canceled updating" #~ msgstr "Opdatering annuleret" #~ msgid "Failed to update" #~ msgstr "Opdatering fejlede" #~ msgid "shelve changes to %s?" #~ msgstr "læg ændringer til %s på hylden?" #~ msgid "shelve this change to %r?" #~ msgstr "læg denne ændring til %r på hylden?" #~ msgid "shelve can only be run interactively" #~ msgstr "hylden kan kun anvendes interaktivt" #~ msgid "shelve data already exists" #~ msgstr "hylden er allerede i brug" #~ msgid "no changes to shelve\n" #~ msgstr "ingen ændringer til hylden\n" #~ msgid "saving patch to shelve\n" #~ msgstr "læg lap på hylden\n" #~ msgid "removing shelve file\n" #~ msgstr "fjerner hylde-filer\n" #~ msgid "applying shelved patch\n" #~ msgstr "anvender lap fra hylden\n" #~ msgid "removing shelved patches\n" #~ msgstr "fjerner lapper fra hylden\n" #~ msgid "unshelve completed\n" #~ msgstr "hylden er tømt\n" #~ msgid "nothing to unshelve\n" #~ msgstr "intet på hylden\n" #~ msgid "mark new/missing files as added/removed before shelving" #~ msgstr "" #~ "marker nye/manglende filer som tilføjede/fjernede før de lægges på hylden" #~ msgid "overwrite existing shelve data" #~ msgstr "overskriv eksitsterende hylde-data" #~ msgid "append to existing shelve data" #~ msgstr "tilføj til eksisterende hylde-data" #~ msgid "inspect shelved changes only" #~ msgstr "inspicer ændringer på hylden" #~ msgid "proceed even if patches do not unshelve cleanly" #~ msgstr "fortsæt selv om lapper ikke kommer korrekt fra hylden" #~ msgid "Repository Explorer" #~ msgstr "Depot-stifinder" #~ msgid " - commit" #~ msgstr " - integrér" #~ msgid "" #~ "New changesets from the preview bundle are still pending.\n" #~ "\n" #~ "Accept or reject the new changesets?" #~ msgstr "" #~ "Der er stadig nye ændringer i forhåndsvisningsbundtet.\n" #~ "\n" #~ "Godkend eller afvis de nye ændringer?" #~ msgid "Accept new Changesets" #~ msgstr "Godkend nye ændringer" #~ msgid "Confirm Forced Push to Remote Repository" #~ msgstr "Bekræft tvunget skub til fjern-depot" #~ msgid "" #~ "Forced push to remote repository\n" #~ "%s\n" #~ "(creating new heads in remote if needed)?" #~ msgstr "" #~ "Tvunget skub til fjern-depot\n" #~ "%s\n" #~ "(opret nyt hoved i fjerndepot om nødvendigt)?" #~ msgid "Forced &Push" #~ msgstr "Tvunget &skub" #~ msgid "_Save at Revision..." #~ msgstr "_Gem revision..." #~ msgid "_Revert File Contents" #~ msgstr "_Tilbagefør filindhold" #~ msgid "Confirm Forced Push" #~ msgstr "Bekræft tvuget skub" #~ msgid "&Push" #~ msgstr "&Skub" #~ msgid "" #~ "Forced push to repository\n" #~ "%s\n" #~ "(creating new heads if needed)?" #~ msgstr "" #~ "Tvunget skub til depot\n" #~ "%s\n" #~ "(opret nye hoveder om nødvendigt)?" #~ msgid "" #~ "To complete merging, you need to commit merged files in working " #~ "directory.\n" #~ "\n" #~ "Do you want to exit?" #~ msgstr "" #~ "For at gennemføre flet skal du integrere flettede filer i " #~ "arbejdskataloget.\n" #~ "\n" #~ "Vil du afslutte?" #~ msgid "Sync Bar" #~ msgstr "Synk. bjælke" #~ msgid "Ambiguous Revision" #~ msgstr "Tvetydig revision" #~ msgid "Select common ancestor revision" #~ msgstr "Vælg fælles forfader revision" #~ msgid "merging " #~ msgstr "fletter " #~ msgid "TortoiseHg Init" #~ msgstr "TortoiseHg Init" #~ msgid "Old name:" #~ msgstr "Gammelt navn:" #~ msgid "A new version of TortoiseHg is ready for download!" #~ msgstr "En ny version af TortoiseHg er klar til at blive hentet!" #~ msgid "Copyright 2008-2010 Steve Borho and others" #~ msgstr "Copyright 2008-2010 Steve Borho og andre" #~ msgid "unexpected type: %s" #~ msgstr "uventet type: %s" #~ msgid "Error in bookmarking" #~ msgstr "Fej i bogmærkning" #~ msgid "Bookmark \"%s\" has been added" #~ msgstr "Bogmærke \"%s\" er blevet tilføjet" #~ msgid "Bookmarking completed" #~ msgstr "Bogmærkning afsluttet" #~ msgid "Please enter bookmark name" #~ msgstr "Skriv navnet på bogmærket" #~ msgid "Bookmark name is empty" #~ msgstr "Bogmærkenavn er tomt" #~ msgid "Bookmark \"%s\" has been moved" #~ msgstr "Bogmærke \"%s\" er blevet flyttet" #~ msgid "Bookmark \"%s\" has been removed" #~ msgstr "Bogmærke \"%s\" er blevet fjernet" #~ msgid "Please select bookmark name to remove" #~ msgstr "Vælg bogmærkenavnet der skal fjernes" #~ msgid "Mercurial bundles" #~ msgstr "Mercurial bundter" #~ msgid "Bundle..." #~ msgstr "Bundt..." #~ msgid "Select a Mercurial Bundle" #~ msgstr "Vælg et Mercurial bundt" #~ msgid "Updating..." #~ msgstr "Opdaterer..." #~ msgid "hgtk shellconfig" #~ msgstr "hgtk shellconfig" #~ msgid "hgtk import [OPTION] [SOURCE]..." #~ msgstr "hgtk import [FLAG] [KILDE]..." #~ msgid "import to the repository" #~ msgstr "importer til depotet" #~ msgid "_Perforce" #~ msgstr "_Perforce" #~ msgid "Branches" #~ msgstr "Grene" #~ msgid "Aborted p4identify" #~ msgstr "Afbrudt p4identify" #~ msgid "Tag" #~ msgstr "Mærkat" #~ msgid "Reset" #~ msgstr "Nulstil" #~ msgid "Mark as Good" #~ msgstr "Marker god" #~ msgid "Import Revision to MQ" #~ msgstr "Importer revision til MQ" #~ msgid "Mercurial Queues" #~ msgstr "Mercurial Queues" #~ msgid "Mark as Bad" #~ msgstr "Marker dårlig" #~ msgid "Skip Testing" #~ msgstr "Spring over" #~ msgid "Bookmark input is empty" #~ msgstr "Bogmærke indhold er tomt" #~ msgid "No bookmark named \"%s\" exists" #~ msgstr "Intet bogmærke kaldet \"%s\" eksisterer" #~ msgid "a bookmark named \"%s\" already exists" #~ msgstr "et bogmærke med navnet \"%s\" eksisterer allerede" #~ msgid "Please enter new bookmark name" #~ msgstr "Venligst indtast nyt bogmærke navn" #~ msgid "Bookmark new name input is empty" #~ msgstr "Bogmærket nyt navn feltindhold er tomt" #~ msgid "type" #~ msgstr "type" #~ msgid "Always Show Output" #~ msgstr "Vis altid uddata" #~ msgid "browser" #~ msgstr "browser" #~ msgid "Enable _Wordwrap" #~ msgstr "Aktivér _Orddeling" #~ msgid "Not at head" #~ msgstr "Ikke ved hoved" #~ msgid "Aborted committing" #~ msgstr "Integration afbrudt" #~ msgid "Selecting %(sel)d, displaying %(count)d of %(total)d items" #~ msgstr "Vælger %(sel)d, viser %(count)d af %(total)d emner" #~ msgid "Selecting %(sel)d of %(total)d, displaying all items" #~ msgstr "Vælger %(sel)d af %(total)d, viser alle emner" #~ msgid "Committing changes..." #~ msgstr "Integrerer ændringer..." #~ msgid "Failed to commit" #~ msgstr "Kunne ikke integrere" #~ msgid "Index" #~ msgstr "Indeks" #~ msgid "%s does not exist\n" #~ msgstr "%s findes ikke\n" #~ msgid "Changes" #~ msgstr "Ændringer" #~ msgid "%(count)d of %(total)d applied patches" #~ msgstr "%(count)d af %(total)d anvendte lapper" #~ msgid "%d incoming changesets" #~ msgstr "%d indgående ændringer" #~ msgid "Rename Bookmark..." #~ msgstr "Omdøb bogmærke..." #~ msgid "Add/Move/Remove B_ookmark..." #~ msgstr "Tilføj/Flyt/Fjern b_ogmærke" #~ msgid "neither parent is a head, commit to add a new head" #~ msgstr "ingen af forældrene er et hoved, integrér for at lave et nyt hoved" #~ msgid "Displaying all items" #~ msgstr "Viser alle emner" #~ msgid "_View File at Revision" #~ msgstr "_Vis fil ved revision" #~ msgid "_Zoom to Change" #~ msgstr "_Zoom til ændring" #~ msgid "_Annotate Parent" #~ msgstr "_Annoter forælder" #~ msgid "Unable to save file" #~ msgstr "Kunne ikke gemme fil" #~ msgid "C_onfigure Format..." #~ msgstr "K_onfigurer format..." #~ msgid "malformed patch %s %s" #~ msgstr "misformet lap %s %s" #~ msgid "unable to strip away %d dirs from %s" #~ msgstr "kan ikke fjerne %d kataloger fra %s" #~ msgid "unable to find %s or %s for patching" #~ msgstr "kan ikke finde %s eller %s til lapning" #~ msgid "binary patch is %d bytes, not %d" #~ msgstr "binær lap er %d byte, ikke %d" #~ msgid "could not extract binary patch" #~ msgstr "kunne ikke udtrække binær lap" #~ msgid "file %s already exists\n" #~ msgstr "fil %s findes allerede\n" #~ msgid "patching file %s\n" #~ msgstr "lapper filen %s\n" #~ msgid "No valid hunks found" #~ msgstr "Ingen gyldige stumper fundet" #~ msgid "Launch commit tool" #~ msgstr "Start integrationsværktøj" #~ msgid "Launch data mining tool" #~ msgstr "Start data-mining værktøj" #~ msgid "mpatch expects *.rej file argument\n" #~ msgstr "mpatch forventer et *.rej fil-argument\n" #~ msgid "mpatch error" #~ msgstr "mpatch fejl" #~ msgid "Custom" #~ msgstr "Tilpasset" #~ msgid "Identify" #~ msgstr "Identificer" #~ msgid "Launch shelve tool" #~ msgstr "Start sylteværktøj" #~ msgid "Launch web server" #~ msgstr "Start web server" #~ msgid "Submitted" #~ msgstr "Sendt" #~ msgid "" #~ "Create new named branch \"%s\" with this commit?\n" #~ "Yes\t- Start new branch with this commit\n" #~ "No\t- Make commit without branch change\n" #~ "Cancel - Cancel this commit" #~ msgstr "" #~ "Opret navngiven gren \"%s\" med denne integration?\n" #~ "Ja\t- Start ny gren med denne integration\n" #~ "Nej\t- Integrer uden at skifte gren\n" #~ "Annuler\t- Afbryd denne integration" #~ msgid "" #~ "Named branch \"%s\" already exists, last used in revision %d\n" #~ "Yes\t- Make commit restarting this named branch\n" #~ "No\t- Make commit without changing branch\n" #~ "Cancel - Cancel this commit" #~ msgstr "" #~ "Navngiven gren \"%s\" findes allerede, sidst brugt i revision %d\n" #~ "Ja\t- Næste integration vil genstarte denne gren\n" #~ "Nej\t- Næste integration vil ikke skifte gren\n" #~ "Annuler\t- Afbryd denne integration" #~ msgid "Annotate Second Parent" #~ msgstr "Annoter anden forælder" #~ msgid "_Annotate First Parent" #~ msgstr "_Annoter første forælder" #~ msgid "Finished committing and pushing" #~ msgstr "Integration og skub færdig" #~ msgid "Status: %s" #~ msgstr "Status: %s" #~ msgid "Please try again after the running operation is completed" #~ msgstr "Prøv igen efter den kørende operation er afsluttet" #~ msgid "Finished committing" #~ msgstr "Integration færdig" #~ msgid "_Diff to Local" #~ msgstr "_Diff til lokal" #~ msgid ", please refresh" #~ msgstr ", genopfrisk" #~ msgid "Reset _Marks" #~ msgstr "Nulstil _Mærker" #~ msgid "Reset revision marks" #~ msgstr "Nulstil revisionsmærker" #~ msgid "File is binary.\n" #~ msgstr "Filen er binær.\n" #~ msgid "" #~ "No issue link found in the commit message.The commit message should " #~ "contain an issue link. Configure this in the 'Issue' section in the " #~ "settings" #~ msgstr "" #~ "Intet emne-link i integrations-meddelelsen. Integrationsmeddelelsen burde " #~ "indeholde et emne-link. Dette kan indstilles i \"emne\"-sektionen i " #~ "indstillingerne." #~ msgid "Commit failed" #~ msgstr "Integration fejlede" #~ msgid "Bug Traq" #~ msgstr "Bug Traq" #~ msgid "Run Commit after init" #~ msgstr "Kør integrér efter init" #~ msgid "Launch recovery tool" #~ msgstr "Start gendan-værktøjet" #~ msgid "Patch Branch" #~ msgstr "Grenlap" #~ msgid "Show/Hide Patch Branch" #~ msgstr "Vis/skjul grenlap" #~ msgid "Pending" #~ msgstr "Afventer" #~ msgid "Configure Paths..." #~ msgstr "Konfigurér stier..." #~ msgid "Import..." #~ msgstr "Importér..." #~ msgid "Revision Range" #~ msgstr "Revisionsinterval" #~ msgid "Finding tip Perforce changelist..." #~ msgstr "Finder spids Perforce ændringsliste..." #~ msgid "Finding pending Perforce changelists..." #~ msgstr "Finder afventende Perforce ændringslister..." #~ msgid "Pending Perforce changelists" #~ msgstr "Afventende Perforce ændringslister" #~ msgid "Perforce changelist %s" #~ msgstr "Perforce ændringsliste %s" #~ msgid "Identifying Perforce tip" #~ msgstr "Identificerer Perforce spids" #~ msgid "Please try again after the previous command has completed" #~ msgstr "Prøv venligst igen efter at foregående kommando er afsluttet" #~ msgid "Unable to find rev %s" #~ msgstr "Kunne ikke finde rev %s" #~ msgid "Unable to identify Perforce tip" #~ msgstr "Kunne ikke identificere Perforce spids" #~ msgid "_Copy Hash" #~ msgstr "_Kopiér Hash" #~ msgid "Diff to Local" #~ msgstr "Forskel fra Lokal" #~ msgid "Pull to Here" #~ msgstr "Træk Hertil" #~ msgid "'%s' filter:" #~ msgstr "'%s' filter:" #~ msgid "file patterns \"%s\"" #~ msgstr "filmønstre \"%s\"" #~ msgid "Revision Number/ID" #~ msgstr "Revision Nummer/ID" #~ msgid "Current patch: %s, " #~ msgstr "Nuværende lap: %s, " #~ msgid "No matches" #~ msgstr "Ingen match" #~ msgid "No revisions matched search" #~ msgstr "Ingen revisioner matchede søgning" #~ msgid "Invalid revision set" #~ msgstr "Ugyldigt revisionssæt" #~ msgid "Export" #~ msgstr "Eksportér" #~ msgid "Backout..." #~ msgstr "Omgør..." #~ msgid "Push to Here" #~ msgstr "Skub Hertil" #~ msgid "Push this Branch" #~ msgstr "Skub denne gren" #~ msgid "Transp_lant to Local" #~ msgstr "Transp_lantér til Lokal" #~ msgid "Import from here to selected to MQ" #~ msgstr "Import herfra til valgte MQ" #~ msgid "Import patches" #~ msgstr "Importér lapper" #~ msgid "Applying bundle..." #~ msgstr "Anvender bundt..." #~ msgid "Failed to preview, not a Mercurial bundle file" #~ msgstr "Mislykkedes med forhåndsvisning, ikke en Mercurial bundtfil" #~ msgid "Failed to preview, a bundle file unrelated to this repository" #~ msgstr "" #~ "Mislykkedes med forhåndsvisning, en bundtfil uden relation til dette depot" #~ msgid "Finished pull" #~ msgstr "Afsluttede træk" #~ msgid "Aborted pull" #~ msgstr "Afbrød træk" #~ msgid "No changesets to pull" #~ msgstr "Ingen ændringssæt at trække" #~ msgid "No incoming changesets" #~ msgstr "Ingen indkommende ændringssæt" #~ msgid "Checking incoming changesets..." #~ msgstr "Tjeker indkommende ændringssæt..." #~ msgid "Aborted incoming" #~ msgstr "Afbrød indgående" #~ msgid "Applying bundle" #~ msgstr "Anvender bundt" #~ msgid "Aborted push" #~ msgstr "Afbrød skub" #~ msgid "Finished push" #~ msgstr "Afsluttede skub" #~ msgid "Aborted outgoing" #~ msgstr "Afbryder udgående" #~ msgid "Pulling changesets..." #~ msgstr "Trækker ændringssæt..." #~ msgid "Checking outgoing changesets..." #~ msgstr "Tjekker udgående ændringssæt..." #~ msgid "Pushing changesets..." #~ msgstr "Skubber ændringssæt..." #~ msgid "unknown dnd dest: %s" #~ msgstr "ukendt dnd mål: %s" #~ msgid "Bundling from %(base)s to %(rev)s..." #~ msgstr "Laver bundt fra %(base)s til %(rev)s..." #~ msgid "Bundling from %(base)s to tip..." #~ msgstr "Laver bundt fra %(base)s til spids..." #~ msgid "Aborted importing" #~ msgstr "Afbrød import" #~ msgid "Importing to Patch Queue..." #~ msgstr "Importerer til lap-kø..." #~ msgid "Importing" #~ msgstr "Importerer" #~ msgid "Failed to import" #~ msgstr "Import mislykkede" #~ msgid "Confirm Push of New Branches to Remote Repository" #~ msgstr "Bekræft skub af nye grene til fjerndepot" #~ msgid "Finish bundling" #~ msgstr "Afslutter bundtfremstilling" #~ msgid "Aborted bundling" #~ msgstr "Afbrød bundtfremstilling" #~ msgid "Failed to bundle" #~ msgstr "Mislykkede med at lave bundt" #~ msgid "Bundling" #~ msgstr "Laver bundt" #~ msgid "Finish importing" #~ msgstr "Afslutter import" #~ msgid "" #~ "Push to remote repository\n" #~ "%s\n" #~ "(creating new branches in remote if needed)?" #~ msgstr "" #~ "Skub til fjerndepot\n" #~ "%s\n" #~ "(opretter om nødvendigt nye grene i fjerndepot)?" #~ msgid "Pulling changesets to revision %s..." #~ msgstr "Trækker ændringssæt til revision %s..." #~ msgid "Finished pull to revision %s" #~ msgstr "Afsluttede træk til revision %s" #~ msgid "Pushing branch %s..." #~ msgstr "Skubber gren %s..." #~ msgid "Pushing changesets to revision %s..." #~ msgstr "Skubber ændringssæt til revision %s..." #~ msgid "Pull to %s" #~ msgstr "Træk til %s" #~ msgid "Refresh required" #~ msgstr "Genopfriskning påkrævet" #~ msgid "Finished push to revision %s" #~ msgstr "Afsluttede skub til revision %s" #~ msgid "Push to %s" #~ msgstr "Skub til %s" #~ msgid "Finished pushing branch %s" #~ msgstr "Afsluttede skub af gren %s" #~ msgid "Rev/ID" #~ msgstr "Rev/ID" #~ msgid "Cannot merge" #~ msgstr "Kan ikke flette" #~ msgid "Null changeset is not viewable" #~ msgstr "Nul-ændringssæt kan ikke vises" #~ msgid "Changeset not found in current view" #~ msgstr "Ændringssæt ikke fundet i nuværende visning" #~ msgid "Submit" #~ msgstr "Send" #~ msgid "Changelist:" #~ msgstr "Ændringsliste:" #~ msgid "Discard all changes from merge target (other) revision" #~ msgstr "Kassér alle ændringer fra flettemål (en anden) revision" #~ msgid "Uncommitted local changes" #~ msgstr "Ikke-opdaterede lokale ændringer" #~ msgid "Rollback repository '%s' to %d, undo %s?" #~ msgstr "Tilbagerul depot '%s' til %d, genskab %s?" #~ msgid "Rollback repository '%s' to %d, undo %s from %s?" #~ msgstr "Tilbagerul depot '%s' til %d, genskab %s fra %s?" #~ msgid "Menu Items" #~ msgstr "Menu-elementer" #~ msgid "name of the webdir config file (DEPRECATED)" #~ msgstr "navn på webkatalogets konfig-fil (FORÆLDET)" #~ msgid "Unable to determine repository status" #~ msgstr "Ikke i stand til at bestemme status på depot" #~ msgid "TortoiseHg Shell Configuration" #~ msgstr "TortoiseHg Skalkonfiguration" #~ msgid "<- Top" #~ msgstr "<- Top" #~ msgid "Sub ->" #~ msgstr "Sub ->" #~ msgid "Show overlay icons in Mercurial repositories" #~ msgstr "Vis overlægningsikoner i Mercurial-depoter" #~ msgid "" #~ "\n" #~ "===== Diff to second parent %d:%s =====\n" #~ msgstr "" #~ "\n" #~ "===== Forskel fra anden forælder %d:%s =====\n" #~ msgid "Show the taskbar icon (restart needed)" #~ msgstr "Vis opgavebjælke-ikon (genstart påkrævet)" #~ msgid "===== Diff to first parent %d:%s =====\n" #~ msgstr "===== Forskel fra første forælder %d:%s =====\n" #~ msgid "S: subrepo" #~ msgstr "S: subdepot" #~ msgid "Annotate" #~ msgstr "Tilføj note" #~ msgid "Show overlays on local disks only" #~ msgstr "Vis overlægning på lokale diske alene" #~ msgid "Revert files?" #~ msgstr "Forkast filer?" #~ msgid "tag '%s' does not exist" #~ msgstr "mærke '%s' eksisterer ikke" #~ msgid "Allow pushing a new branch" #~ msgstr "Tillad skub af ny gren" #~ msgid "tag '%s' is not a local tag" #~ msgstr "mærke '%s' er ikke et lokalt mærke" #~ msgid "invalid pack direction: %s" #~ msgstr "ugyldig pakkeanvisning: %s" #~ msgid "unknown field name: %s" #~ msgstr "ukendt filnavn: %s" #~ msgid "invalid alignment value: %s" #~ msgstr "ugyldig indrykningsværdi: %s" #~ msgid "" #~ "The editor to use during a commit and other instances where Mercurial " #~ "needs multiline input from the user. Used by command line commands, " #~ "including patch import." #~ msgstr "" #~ "Redigeringsværktøjet som skal anvendes under en opdatering og andre " #~ "tidspunkter hvor Mercurial kræver flere linjers inddata fra brugeren. " #~ "Anvendes af kommandolinje-kommandoer, inklusiv lap-import." #~ msgid "tag '%s' is not a global tag" #~ msgstr "mærke '%s' er ikke et globalt mærke" #~ msgid "Capture stderr" #~ msgstr "Indfang stderr" #~ msgid "Previously Selected" #~ msgstr "Tidligere valgte" #~ msgid "Push new branch" #~ msgstr "Skub ny gren" #~ msgid "" #~ "Specify the number of spaces that tabs expand to in various TortoiseHg " #~ "windows. Default: Not expanded" #~ msgstr "" #~ "Angiv antallet af mellemrum som tabuleringer udfoldes til i forskellige " #~ "TortoiseHg-vinduer. Standard: Ikke udfoldet" #~ msgid "Default Tab" #~ msgstr "Standardfane" #~ msgid "" #~ "Maximum length of the commit message summary line. If set, TortoiseHg " #~ "will issue a warning if the summary line is too long or not separated by " #~ "a blank line. Default: 0 (unenforced)" #~ msgstr "" #~ "Maksimal længde på beskedresuméets linje i opdatering. Hvis sat, så vil " #~ "TortoiseHg give en advarsel hvis resumélinjen er for lang eller ikke er " #~ "separeret med en tom linje. Standard: 0 (gennemtvinges ikke)" #~ msgid "Toolbar Style" #~ msgstr "Værktøjsbjælkestil" #~ msgid "" #~ "Adjust the coloring style of diff lines in the changeset viewer. Default: " #~ "foreground" #~ msgstr "" #~ "Tilpasser farvestilen på linjeforskelle i ændringssæt-fremviseren. " #~ "Standard: foreground." #~ msgid "Font" #~ msgstr "Skrifttype" #~ msgid "File List" #~ msgstr "Filliste" #~ msgid "" #~ "Font used for diffs in status and commit tools. Default: monospace 10" #~ msgstr "" #~ "Skrifttype anvendt på forskelle i status- og opdateringsværktøjer. " #~ "Standard: monospace 10" #~ msgid "Commit Message" #~ msgstr "Opdateringsbesked" #~ msgid "" #~ "Font used in changeset viewer and commit log text. Default: monospace 10" #~ msgstr "" #~ "Skrifttype anvendt i ændringssæt-fremviseren og opdateringslogteksten. " #~ "Standard: monospace 10" #~ msgid "Diff Text" #~ msgstr "Forskelstekst" #~ msgid "Coloring Style" #~ msgstr "Farvestil" #~ msgid "Font used in command output window. Default: monospace 10" #~ msgstr "" #~ "Skrifttype anvendt i vinduet for kommando-uddata. Standard: monospace 10" #~ msgid "Font used in file lists in status and commit tools. Default: sans 9" #~ msgstr "" #~ "Skrifttype anvendt i fillister i status- og opdateringsværktøjer. " #~ "Standard: sans 9" #~ msgid "Command Output" #~ msgstr "Kommando-uddata" #~ msgid "Unable to parse a config file" #~ msgstr "Kan ikke fortolke en konfigurationsfil" #~ msgid "Patch" #~ msgstr "Lap" #~ msgid "_Goto" #~ msgstr "_Gå til" #~ msgid "Do you want to delete these patches?" #~ msgstr "Vil du slette disse lapper?" #~ msgid "Do you want to delete '%(name)s'?" #~ msgstr "Vil du slette '%(name)s'?" #~ msgid "Up" #~ msgstr "Op" #~ msgid "Top" #~ msgstr "Top" #~ msgid "Bottom" #~ msgstr "Bund" #~ msgid "Down" #~ msgstr "Ned" #~ msgid "Bisect" #~ msgstr "Del i to" #~ msgid "Finished pull with rebase" #~ msgstr "Afsluttede træk med rebase" #~ msgid "" #~ "Defines the command to run when an issue number is recognized. You may " #~ "include groups in issue.regex, and corresponding {n} tokens in issue.link " #~ "(where n is a non-negative integer). {0} refers to the entire string " #~ "matched by issue.regex, while {1} refers to the first group and so on. If " #~ "no {n} tokensare found in issue.link, the entire matched string is " #~ "appended instead." #~ msgstr "" #~ "Definerer kommandoen som skal køres når et emne-tal genkendes. Du kan " #~ "inkludere grupper i issue.regex, og tilhørende {n} tokener i issue.link " #~ "(hvor n er et ikke-negativt heltal). {0} refererer til hele strengen som " #~ "matcher med issue.regex, mens {1} refererer til den første gruppe osv.. " #~ "Hvis ingen {n} token bliver fundet i issue.link, så tilføjes hele den " #~ "matchede streng i stedet." #~ msgid "" #~ "When commiting an issue, force the user to specify a reference to an " #~ "issue. If enabled, the regex configured in 'Issue Regex' must find a " #~ "match in the commit message" #~ msgstr "" #~ "Når et emne integreres, tving brugeren til at angive en henvisning til et " #~ "emne. Hvis aktiveret, så skal det regex som er konfigureret i 'Emne " #~ "Regex' finde et match i integrationsbeskeden" #~ msgid "Japanese on Windows" #~ msgstr "Japansk i Windows" #~ msgid "Confirm Switch" #~ msgstr "Bekræft ombytning" #~ msgid "Switch after saving changes?" #~ msgstr "Ombyt efter lagring af ændringer?" #~ msgid "Theme default fonts" #~ msgstr "Standardskrift for tema" #~ msgid "Preset fonts:" #~ msgstr "Forvalgte skrifttyper:" #~ msgid "Custom fonts:" #~ msgstr "Tilpassede skrifttyper:" #~ msgid " - Select Preset -" #~ msgstr " - Vælg Forvalg -" #~ msgid " - Select Issue Tracker -" #~ msgstr " - Vælg Emnehåndteringssystem -" #~ msgid "" #~ "Select issue tracker plugin to use. Links to plugins can be found at " #~ "http://tortoisesvn.net/issuetrackerplugins" #~ msgstr "" #~ "Vælg emnehåndteringssystem-modul som skal anvendes. Henvisninger til " #~ "udvidelsesmoduler kan findes på http://tortoisesvn.net/issuetrackerplugins" #~ msgid "Configure Plugin" #~ msgstr "Konfigurér udvidelsesmodul" #~ msgid "Insufficient access rights, reverting to read-onlymode." #~ msgstr "" #~ "Utilstrækkelige adgangsrettigheder, går tilbage til læs-kun-tilstand" #~ msgid "" #~ "%s\n" #~ "Reverting to read-only mode." #~ msgstr "" #~ "%s\n" #~ "Går tilbage til læs-kun-tilstand." #~ msgid "Import" #~ msgstr "Importér" #~ msgid "Imported successfully" #~ msgstr "Importeret med succes" #~ msgid "Canceled importing" #~ msgstr "Afbrød importering" #~ msgid "Confirm Close" #~ msgstr "Bekræft Luk" #~ msgid "Do you want to close?" #~ msgstr "Ønsker du at lukke?" #~ msgid "Select Patches" #~ msgstr "Vælg lapper" #~ msgid "Select Directory contains patches:" #~ msgstr "Vælg katalog som indeholder lapper:" #~ msgid "%s will be imported to the" #~ msgstr "%s vil blive importeret til" #~ msgid "%s will be imported to the repository" #~ msgstr "%s vil blive importeret til depotet" #~ msgid "unexpected destination name: %s" #~ msgstr "uventet navn på bestemmelsessted: %s" #~ msgid "invalid reorder operation: %s" #~ msgstr "ugyldig rækkefølgeændringshandling: %s" #~ msgid "series become inconsistent during reorder" #~ msgstr "serier bliver inkonsistente under rækkefølgeændring" #~ msgid "_Rename" #~ msgstr "_Omdøb" #~ msgid "_Finish Applied" #~ msgstr "_Afslut anvendt" #~ msgid "_Delete" #~ msgstr "_Slet" #~ msgid "F_old" #~ msgstr "_Fold" #~ msgid "Reorder" #~ msgstr "Ændr rækkefølge" #~ msgid "pending pmerges" #~ msgstr "afventende pmerges" #~ msgid "no pending pmerges" #~ msgstr "ingen afventende pmerges" #~ msgid "New Patch Name" #~ msgstr "Nyt navn på lap" #~ msgid "Pending Pmerge" #~ msgstr "Afventende Pmerge" #~ msgid "" #~ "You cannot finish this patch branch unless you pmerge it first.\n" #~ "pmerge will solve the following issues with %(patch)s:\n" #~ "* %(issuelist)s" #~ msgstr "" #~ "Du kan ikke afslutte denne lap-gren medmindre du foretager en pmerge på " #~ "den først.\n" #~ "pmerge vil løse følgende emner med %(patch)s:\n" #~ "* %(issuelist)s" #~ msgid "Uncommitted Local Changes" #~ msgstr "Ikke-integrerede lokale ændringer" #~ msgid "" #~ "pfinish uses your working directory for temporary work.\n" #~ "Please commit your local changes before issuing pfinish." #~ msgstr "" #~ "pfinish bruger dit arbejdskatalog til midlertidigt arbejde.\n" #~ "Venligst integrér dine lokale ændringer før du anvender pfinish." #~ msgid "Applied MQ patch" #~ msgstr "Anvendt MQ-lap" #~ msgid "" #~ "pfinish must be able to commit, but this is not allowed\n" #~ "as long as you have MQ patches applied." #~ msgstr "" #~ "pfinish skal være i stand til at integrere, men dette er ikke tilladt\n" #~ "så længe du anvender MQ-lapper." #~ msgid "Patch branch finished" #~ msgstr "Lap-gren afsluttet." #~ msgid "_new" #~ msgstr "_ny" #~ msgid "_goto (update workdir)" #~ msgstr "_gå til (opdatér arbejdskatalog)" #~ msgid "_edit message" #~ msgstr "r_ediér besked" #~ msgid "_finish" #~ msgstr "a_fslut" #~ msgid "Show graph" #~ msgstr "Vis graf" #~ msgid "Show title" #~ msgstr "Vis titel" #~ msgid "Show message" #~ msgstr "Vis besked" #~ msgid "Show internal branches" #~ msgstr "Vis interne grene" #~ msgid "Abandon" #~ msgstr "Forlad" #~ msgid "abandon shelved changes" #~ msgstr "forlad" #~ msgid "_Shelve" #~ msgstr "_Læg på hylden" #~ msgid "Unshelve Abort" #~ msgstr "Afbryd nedtagning fra hylde" #~ msgid "Delete the shelf contents?" #~ msgstr "Slet indhold fra hylden?" #~ msgid "Abandon Error" #~ msgstr "Forlad-fejl" #~ msgid "%s changesets" #~ msgstr "%s ændringssæt" #~ msgid "%s will be stripped" #~ msgstr "%s vil blive strippet" #~ msgid "Always show log" #~ msgstr "Vis altid log" #~ msgid "cleaning up temp directory\n" #~ msgstr "rydder op i temp-katalog\n" #~ msgid "unable to clean temp directory: %s\n" #~ msgstr "ikke i stand til at rydde op i temp-katalog: %s\n" #~ msgid "revisions %d to %d" #~ msgstr "revisioner %d til %d" #~ msgid "file copy of %s failed\n" #~ msgstr "Filkopi af %s mislykkedes\n" #~ msgid "removing backup file : %r\n" #~ msgstr "fjerner sikkerhedskopifil: %r\n" #~ msgid "delete of shelve backup failed" #~ msgstr "sletning af hyldesikkerhedskopi mislykkedes" #~ msgid "bad shelve backup directory name" #~ msgstr "dårligt katalognavn på hyldesikkerhedskopi" #~ msgid "abort: backup restore failed, %s\n" #~ msgstr "afbryd: genskabelse af sikkerhedskopi mislykkedes, %s\n" #~ msgid "abandoning shelved file\n" #~ msgstr "forlader fil som er lagt på hylde\n" #~ msgid "shelved file abandoned\n" #~ msgstr "fil som er lagt på hylde er forladt\n" #~ msgid "nothing to abandon\n" #~ msgstr "intet af forlade\n" #~ msgid "abandon failed\n" #~ msgstr "mislykkedes med at forlade\n" #~ msgid "bad hunk #%d %s (%d %d %d %d)" #~ msgstr "dårligt stykke #%d %s (%d %d %d %d)" #~ msgid "Hunk #%d succeeded at %d with fuzz %d (offset %d lines).\n" #~ msgstr "" #~ "Stykke #%d lykkedes ved %d med uklarhed på %d (forskydning %d linjer).\n" #~ msgid "Hunk #%d succeeded at %d (offset %d lines).\n" #~ msgstr "Stykke #%d lykkedes ved %d (forskydning på %d linjer).\n" #~ msgid "Hunk #%d FAILED at %d\n" #~ msgstr "Stykke #%d MISLYKKEDES ved %d\n" #~ msgid "bad hunk #%d" #~ msgstr "dårligt stykke #%d" #~ msgid "bad hunk #%d old text line %d" #~ msgstr "dårligt stykke #%d gammel tekstlinje %d" #~ msgid "Subversion" #~ msgstr "Subversion" #~ msgid "Invalid file pattern" #~ msgstr "Ugyldigt fil-mønster" #~ msgid "Commit backout before merging with current working parent" #~ msgstr "Integrer omgørelse før flet med forælder til arbejdskatalog" #~ msgid "Backed out successfully, you must now commit the results" #~ msgstr "Omgøring fuldført, du skal nu integrere resultatet" #~ msgid "Force" #~ msgstr "Tving" #~ msgid "unshelve backup aborted\n" #~ msgstr "Kunne ikke lave sikkerhedskopier før tag-fra-hylden\n" #~ msgid "St" #~ msgstr "St" #~ msgid "Starting Revision:" #~ msgstr "Startrevision:" #~ msgid "" #~ "** Please report this bug to http://bitbucket.org/tortoisehg/stable/" #~ "issues\n" #~ msgstr "" #~ "** Venligst rapporter denne fejl på http://bitbucket.org/tortoisehg/" #~ "stable/issues\n" #~ "Bemærk at fejlrapporter skal være på engelsk\n" #~ msgid "Use merge tool:" #~ msgstr "Brug flet-værktøj:" #~ msgid "Bookmark \"%s\" has been renamed to \"%s\"" #~ msgstr "Bogmærke \"%s\" er blevet omdøbt til \"%s\"" #~ msgid "" #~ "Do you want to fold following un-applied patches into the current patch " #~ "'%(qtip)s'?" #~ msgstr "" #~ "Ønsker du at folde følgende ikke-anvendte lapper ind i nuværende lap " #~ "'%(qtip)s'?" #~ msgctxt "changesets" #~ msgid "All" #~ msgstr "Alle" #~ msgid "" #~ "Adjust the display of the main toolbar in the Repository Explorer. " #~ "Values: small, large, or theme. Default: theme" #~ msgstr "" #~ "Juster visningen af hovedværktøjslinjen i Depot Stifinderen. Værdier: " #~ "\"small\" (lille), \"large\" (stor), eller \"theme\" (følg tema). " #~ "Standard: theme" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/de.po0000644000000000000000000122004314440352353016220 0ustar00rootroot# German translation for tortoisehg # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the tortoisehg package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2016-02-05 20:19+0000\n" "Last-Translator: Manuel Stumpf \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2019-07-17 05:42+0000\n" "X-Generator: Launchpad (build 19009)\n" msgid "TortoiseHg Overlay Icon Server" msgstr "TortoiseHG-Symbolüberblendungsdienst" msgid "Exit" msgstr "Beenden" msgid "About" msgstr "Über TortoiseHG" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "" "Einige Symbole wurden freundlicherweise von den TortoiseSVN- und Tango-" "Projekten bereitgestellt" msgid "You can visit our site here" msgstr "Zu unserer Webseite gelangen Sie hier" msgid "&License" msgstr "&Lizenz" #, python-format msgid "version %s" msgstr "Version %s" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "enthält Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "Eine neue Version von TortoiseHg (%s) steht zum Download bereit!" msgid "License" msgstr "Lizenz" msgid "= Working Directory Parent =" msgstr "= Wurzel-Arbeitsverzeichnis =" msgid "Directory of files" msgstr "Dateiverzeichnis" msgid "Tar archives" msgstr "TAR-Archive" msgid "Uncompressed tar archive" msgstr "Unkomprimiertes TAR-Archiv" msgid "Bzip2 tar archives" msgstr "TAR-BZIP2-Archive" msgid "Tar archive compressed using bzip2" msgstr "Mit BZIP2 gepacktes TAR-Archiv" msgid "Gzip tar archives" msgstr "TAR-GZIP-Archive" msgid "Tar archive compressed using gzip" msgstr "Mit GZIP gepacktes TAR-Archiv" msgid "Zip archives" msgstr "ZIP-Archive" msgid "Uncompressed zip archive" msgstr "Unkomprimiertes ZIP-Archiv" msgid "Zip archive compressed using deflate" msgstr "Mit Deflate gepacktes ZIP-Archiv" msgid "Revision:" msgstr "Revision:" msgid "All files in this revision" msgstr "" msgid "Only files modified/created in this revision" msgstr "Nur Dateien, die in dieser Revision verändert/erstellt wurden" msgid "Only files modified/created since:" msgstr "" msgid "Archive Content:" msgstr "" msgid "Recurse into subrepositories" msgstr "Unterarchive mit bearbeiten" msgid "Browse..." msgstr "Durchsuchen..." msgid "Destination path:" msgstr "Zielpfad:" msgid "Archive types:" msgstr "Archiv-Arten:" msgid "Hg command:" msgstr "Hg-Anweisung:" msgid "Select Destination Folder" msgstr "Zielordner auswählen" msgid "Select Destination File" msgstr "Zieldatei auswählen" msgid "All files (*)" msgstr "Alle Dateien (*)" msgid "Duplicate Name" msgstr "Bezeichner bereits vergeben" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "Das Ziel \"%s\" ist bereits als Datei vorhanden!" msgid "Confirm Overwrite" msgstr "Überschreiben bestätigen" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" "Das Verzeichnis \"%s\" ist nicht leer!\n" "\n" "Wollen Sie es überschreiben?" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" "Die Datei \"%s\" ist bereits vorhanden!\n" "\n" "Soll sie überschreiben werden?" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "Das Ziel \"%s\" existiert bereits als Verzeichnis!" #, python-format msgid "Archive - %s" msgstr "Archiv - %s" msgid "&Archive" msgstr "&Archivieren" msgid "Backout requires a parent revision" msgstr "Zum Rücksetzen muss eine Vorgängerrevision vorhanden sein" msgid "Cannot backout change on a different branch" msgstr "Kann die Änderung nicht auf einem anderen Zweig rücksetzen" #, python-format msgid "Backout - %s" msgstr "Rücksetzen - %s" msgid "Prepare to backout" msgstr "Rücksetzen vorbereiten" msgid "Verify backout revision and ensure your working directory is clean." msgstr "" "Prüfen Sie die Rücksetz-Revision und stellen Sie sicher, dass Ihr " "Arbeitsverzeichnis sauber ist." msgid "Backing out a parent revision is a single step operation" msgstr "" "Das Rücksetzen einer Vorgängerrevision geschieht in einem einzelnen Schritt" msgid "Backout revision" msgstr "Revision rücksetzen" msgid "Not a head, backout will create a new head!" msgstr "Kein Kopf, das Rücksetzen erstellt eine neue Kopfrevision!" msgid "Current local revision" msgstr "Aktuelle lokale Revision" msgid "Working directory status" msgstr "Zustand des Arbeitsverzeichnisses" msgid "Checking..." msgstr "Überprüfung..." msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" "Vor dem Rücksetzen müssen Sie Ihre Änderungen übernehmen, in einem Patch verstauen oder verwerfen." msgid "Automatically resolve merge conflicts where possible" msgstr "Automatisch Zusammenführungskonflikte auflösen wo möglich" msgid "Uncommitted local changes are detected" msgstr "Es gibt nicht übernommene lokale Änderungen" msgid "Clean" msgstr "Bereinigen" msgid "Backing out, then merging..." msgstr "Setze zurück und verschmelde anschließend..." msgid "All conflicting files will be marked unresolved." msgstr "Alle Dateien mit Konflikten werden als unaufgelöst markiert." msgid "Automatically advance to next page when backout and merge are complete." msgstr "" "Automatisch zur nächsten Seite umblättern, sobald Rücksetzen und " "Zusammenführen abgeschlossen sind." #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" "%d Dateien haben Zusammenführungskonflikte, die aufgelöst werden müssen." msgid "No merge conflicts, ready to commit" msgstr "Keine Zusammenführungskonflikte, Übernahme kann erfolgen" msgid "Commit backout and merge results" msgstr "Rücksetzen übernehmen und Resultate zusammenführen" msgid "Parents" msgstr "Vorgänger" msgid "Working Directory" msgstr "Arbeitsverzeichnis" msgid "Working Directory (merged)" msgstr "Arbeitsverzeichnis (zusammengeführt)" msgid "Commit message" msgstr "Versionsmeldung" msgid "Skip final confirmation page, close after commit." msgstr "" "Schlussendliche Bestätigungsseite überspringen und nach der Übernahme " "schließen." msgid "Backed out changeset: " msgstr "Zurückgezogener Änderungssatz: " msgid "Confirm Discard Message" msgstr "Verwerfen von Kommentar bestätigen" msgid "Discard current backout message?" msgstr "Aktuellen Rücksetz-Kommentar verwerfen?" msgid "Use English backout message" msgstr "Englische Rücksetz-Kommentare verwenden" msgid "Backing out and committing..." msgstr "Setze zurück und übernehme..." msgid "Please wait while making backout." msgstr "Bitte warten Sie, während die Rücksetzung vorgenommen wird." msgid "Committing..." msgstr "Übernehme..." msgid "Please wait while committing merged files." msgstr "" "Bitte warten Sie, während die zusammengeführten Dateien übernommen werden." msgid "Finished" msgstr "Abgeschlossen" msgid "Backout changeset" msgstr "Zurückgezogener Änderungssatz" #, python-format msgid "Bisect - %s" msgstr "Aufspüren - %s" msgid "Accept" msgstr "Genehmigen" msgid "Known good revision:" msgstr "Bekannte korrekte Revision:" msgid "Known bad revision:" msgstr "Bekannte inkorrekte Revision:" msgid "Discard local changes (revert --all)" msgstr "Lokale Änderungen verwerfen (revert --all)" msgid "Revision is &Good" msgstr "Die Revision ist &gut" msgid "Revision is &Bad" msgstr "Die Revision ist &schlecht" msgid "&Skip this Revision" msgstr "Diese Revision ü&berspringen" msgid "Close" msgstr "Schließen" msgid "Error encountered." msgstr "Es sind Fehler aufgetreten." msgid "Culprit found." msgstr "Übeltäter enttarnt." msgid "Revision" msgstr "Revision" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "" "Prüfen Sie diese Revision und berichten Ihre Ergebnisse (korrekt/inkorrekt/" "überspringen)." #, python-format msgid "%s (hint: %s)" msgstr "%s (Tipp: %s)" msgid "Bookmark:" msgstr "Lesezeichen:" msgid "New Name:" msgstr "Neuer Name:" msgid "Activate:" msgstr "Aktivieren:" msgid "&Add" msgstr "&Hinzufügen" msgid "Re&name" msgstr "Umbe&nennen" msgid "&Remove" msgstr "&Entfernen" msgid "&Move" msgstr "&Verschieben" #, python-format msgid "Bookmark - %s" msgstr "Lesezeichen hinzufügen - %s" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "Es gibt schon ein Lesezeichen namens \"%s\"" #, python-format msgid "Bookmark '%s' has been added" msgstr "Das Lesezeichen '%s' wurde hinzugefügt" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "Es gibt kein Lesezeichen namens \"%s\"" #, python-format msgid "Bookmark '%s' has been moved" msgstr "Das Lesezeichen '%s' wurde verschoben" #, python-format msgid "Bookmark '%s' does not exist" msgstr "Das Lesezeichen '%s' existiert nicht" #, python-format msgid "Bookmark '%s' has been removed" msgstr "Das Lesezeichen '%s' wurde entfernt" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "Das Lesezeichen '%s' wurde in '%s' umbenannt" msgid "TortoiseHg Bookmark Sync" msgstr "TortoiseHg Lesezeichen Synchronisierung" msgid "Outgoing Bookmarks" msgstr "Ausgehende Lesezeichen" msgid "&Push Bookmark" msgstr "Lesezeichen &übertragen" msgid "&Remove Bookmark" msgstr "Lesezeichen &löschen" msgid "Incoming Bookmarks" msgstr "Eingehende Lesezeichen" msgid "P&ull Bookmark" msgstr "Lesezeichen &abrufen" msgid "R&emove Bookmark" msgstr "Lesezeichen &löschen" #, python-format msgid "Pushed local bookmark: %s" msgstr "Lokales Lesezeichen übertragen: %s" #, python-format msgid "Pulled remote bookmark: %s" msgstr "Entferntes Lesezeichen abgerufen: %s" #, python-format msgid "Removed remote bookmark: %s" msgstr "Entferntes Lesezeichen gelöscht: %s" #, python-format msgid "Removed local bookmark: %s" msgstr "Lokales Lesezeichen entfernt: %s" #, python-format msgid "%s - branch operation" msgstr "%s - Verzweigung" msgid "Select branch of merge commit" msgstr "" "Wählen Sie einen Zweig, in den die Zusammenführung übernommen werden soll" msgid "Changes take effect on next commit" msgstr "Die Änderungen werden ab der nächsten Übernahme berücksichtigt" msgid "No branch changes" msgstr "Keine Änderungen am Zweig" msgid "Open a new named branch" msgstr "Neuen benannten Zweig erstellen" msgid "Close current branch" msgstr "Aktuellen Zweig schließen" #, python-format msgid "Please report this bug to our bug tracker" msgstr "" "Bitte berichten Sie diesen Fehler auf unserem Bug-Tracker" msgid "Checking for updates..." msgstr "Prüfe auf Aktualisierungen..." msgid "Copy" msgstr "Kopieren" msgid "Quit" msgstr "Beenden" msgid "TortoiseHg Bug Report" msgstr "TortoiseHg-Fehlerbericht" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "Sie sollten auf eine aktuellere Version von TortoiseHg aktualisieren." msgid "Your TortoiseHg is up to date." msgstr "Ihr TortoiseHg ist aktuell." msgid "Save error report to" msgstr "Den Fehlerbericht speichern unter" msgid "Text files (*.txt)" msgstr "Textdateien (*.txt)" msgid "Error writing file" msgstr "Fehler beim Schreiben der Datei" msgid "TortoiseHg Error" msgstr "TortoiseHg-Fehler" msgid "" "If you still have trouble, please file a bug report." msgstr "" "Wenn Sie immer noch Probleme haben, erstellen Sie " "bitte einen Fehlerbericht." msgid "Visual Diff" msgstr "Grafisches Diff" msgid "View file changes in external diff tool" msgstr "Dateiänderungen mit externem Diff-Werkzeug anzeigen" msgid "Edit Local" msgstr "Lokale Version bearbeiten" msgid "Edit current file in working copy" msgstr "Lokale Version in Arbeitskopie bearbeiten" msgid "Revert to Revision" msgstr "Revision wiederherstellen" msgid "Revert file(s) to contents at this revision" msgstr "Den Dateiinhalt dieser Revision wiederherstellen" msgid "Patch failed to apply" msgstr "Der Patch konnte nicht angewandt werden" msgid "Manually resolve rejected chunks?" msgstr "Wollen Sie die zurückgewiesenen Blöcke manuell auflösen?" msgid "Edit patched file and rejects?" msgstr "Gepatchte Datei und Zurückweisungen bearbeiten?" msgid "No deletable chunks" msgstr "Keine löschbaren Blöcke" msgid "Completely remove file from patch?" msgstr "Die Datei unwiederruflich aus dem Patch entfernen?" msgid "Revert all file changes?" msgstr "Alle Dateiänderungen zurückrollen?" msgid "No chunks remain" msgstr "Es gibt keine weiteren Blöcke" msgid "file has been deleted, refresh" msgstr "Datei wurde gelöscht, aktualisieren" msgid "file has been modified, refresh" msgstr "Datei wurde geändert, aktualisieren" msgid "Unable to merge chunks" msgstr "Blöcke konnten nicht zusammengeführt werden" msgid "Add or remove patches must be merged in the working directory" msgstr "" "Patches, welche Dateien hinzufügen oder löschen, müssen im " "Arbeitsverzeichnis zusammengeführt werden" msgid "Unable to remove" msgstr "Entfernen nicht möglich" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" "Die Daten %s konnte nicht gelöscht werden,\n" "keine Berechtigung" msgctxt "files" msgid "All" msgstr "Alle" msgctxt "files" msgid "None" msgstr "Keine" msgid "Toggle display of text search bar" msgstr "Die Anzeige der Textsuch-Werkzeugleiste an-/ausschalten" msgid "Diff Toolbar" msgstr "Diff-Werkzeugleiste" #, python-format msgid "Chunks selected: %d / %d" msgstr "Ausgewählte Blöcke: %d / %d" msgid "Please wait while the file is opened ..." msgstr "Bitte warten Sie, während die Datei geöffnet wird..." msgid "Source:" msgstr "Quelle:" msgid "Destination:" msgstr "Ziel:" msgid "Options" msgstr "Einstellungen" msgid "Clone to revision:" msgstr "Revision klonen:" msgid "A revision identifier, bookmark, tag or branch name" msgstr "Eine Revisions ID, Lesezeichen, Etikett oder Zweigname" msgid "Do not update the new working directory" msgstr "Das neue Arbeitsverzeichnis nicht aktualisieren" msgid "Use pull protocol to copy metadata" msgstr "Die Metadaten mit dem Abruf-Protokoll kopieren" msgid "Clone with minimal processing" msgstr "" msgid "Include patch queue" msgstr "Patch-Warteschlange einschließen" msgid "Use proxy server" msgstr "Proxy-Server verwenden" msgid "Do not verify host certificate" msgstr "Rechnerzertifikat nicht prüfen" msgid "Remote command:" msgstr "Entfernt auszuführende Anweisung:" msgid "Use largefiles" msgstr "" msgid "Start revision:" msgstr "Start-Revision:" msgid "Select source repository" msgstr "Wählen Sie das Quellarchiv" msgid "Select destination repository" msgstr "Wählen Sie das Zielarchiv" msgid "Select patch folder" msgstr "Wählen SIe ein Verzeichnis für den Patch" #, python-format msgid "Clone - %s" msgstr "Klonen - %s" msgid "&Clone" msgstr "&Klonen" msgid "failed to start command\n" msgstr "Befehl konnte nicht ausgeführt werden\n" msgid "error while running command\n" msgstr "Fehler bei der Durchführung des Befehls\n" #, python-format msgid "process exited unexpectedly with code %d" msgstr "Prozess unerwartet beendet mit Code %d" #, python-format msgid "failed to encode command: %s" msgstr "" #, python-format msgid "timed out while reading: %r..." msgstr "Zeitüberschreibung beim Lesen: %r..." msgid "timed out waiting for message" msgstr "Zeitüberschreitung beim Warten auf Nachricht" #, python-format msgid "unexpected response on required channel %r" msgstr "Unerwartete Antwort auf benötigtem Kanal %r" #, python-format msgid "invalid \"hello\" message: %r" msgstr "ungültige \"hello\"-Nachricht: %r" msgid "no \"runcommand\" capability" msgstr "keine \"runcommand\"-Fähigkeit" #, python-format msgid "corrupted command result: %r" msgstr "zerstörtes Anweisungs-Resultat : %s" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "" msgid "Terminated by user" msgstr "Von Ihnen abgebrochen" #, python-format msgid "[command terminated by user %s]" msgstr "[Anweisung vom Benutzer %s beendet]" #, python-format msgid "[command interrupted %s]" msgstr "[Anweisung unterbrochen %s]" #, python-format msgid "[command returned code %d %%s]" msgstr "[Der Befehl gab den Wert %d zurück %%s]" #, python-format msgid "[command completed successfully %s]" msgstr "[Der Befehl wurde erfolgreich abgeschlossen %s]" msgid "Running..." msgstr "Läuft..." msgid "Failed!" msgstr "Gescheitert!" msgid "Clea&r Log" msgstr "Protokoll &löschen" msgid "TortoiseHg Prompt" msgstr "TortoiseHG" msgid "Show Detail" msgstr "Details anzeigen" msgid "Hide Detail" msgstr "Details verbergen" msgid "Confirm Exit" msgstr "Beenden bestätigen" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" "Mercurial läuft noch.\n" "Sind Sie sicher, dass sie es abbrechen wollen?" msgid "&Run" msgstr "Ausfüh&ren" msgid "TortoiseHg Command Dialog" msgstr "TortoiseHg-Befehlsdialog" msgid "Command Error" msgstr "Befehlsfehler" #, python-format msgid "[Code: %d]" msgstr "[Schlüssel: %d]" msgid "Merge" msgstr "Zusammenführen" #, python-format msgid "Merge with %s" msgstr "Mit %s zusammenführen" msgid "Patch Name Required" msgstr "Der Name des Paches fehlt" msgid "You must enter a patch name" msgstr "Sie müssen einen Namen für den Patch eingeben" msgctxt "start progress" msgid "Commit" msgstr "Übernehmen" msgctxt "start progress" msgid "MQ Action" msgstr "Mercurial-Warteschlangen-Aktion" msgctxt "start progress" msgid "Rollback" msgstr "Zurückrollen" msgid "Commit Dialog Toolbar" msgstr "Übernahmedialog-Werkzeugleiste" msgid "Branch: " msgstr "Zweig: " msgid "Copy message" msgstr "Kommentar übernehmen" msgid "Copy one of the recent commit messages" msgstr "Eine der letzten Versionsmeldungen übernehmen" msgid "Show Issues" msgstr "Tickets anzeigen" msgid "Please wait..." msgstr "Warten Sie bitte..." #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "Ticketing-System '%s' kann nicht geladen werden: %s" msgid "Issue Tracker" msgstr "Ticketing-System" msgid "Show Issues..." msgstr "Tickets anzeigen..." msgid "Stop" msgstr "Stopp" msgid "### patch name ###" msgstr "### Patch-Name ###" msgid "Commit changes" msgstr "Änderungen übernehmen" msgid "Commit" msgstr "Übernehmen" msgid "Amend current revision" msgstr "Aktuelle Revision ergänzen" msgid "Amend" msgstr "Ergänzen" msgid "Create a new patch" msgstr "Neuen Patch erstellen" msgid "QNew" msgstr "QNew" msgid "Refresh current patch" msgstr "Aktuellen Patch aktualisieren" msgid "QRefresh" msgstr "QRefresh" msgid "Confirm Branch Change" msgstr "Zweigänderung bestätigen" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "" "Der benannte Zweig \"%s\" existiert bereits, zuletzt geändert in Revision " "%d\n" msgid "Restart &Branch" msgstr "Zweig neu &starten" msgid "&Commit to current branch" msgstr "Ü&bernahme in aktuellen Zweig" msgid "Cancel" msgstr "Abbrechen" msgid "Confirm New Branch" msgstr "Neuen Zweig bestätigen" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "Mit dieser Übernahme einen neuen Zweig \"%s\" erstellen?\n" msgid "Create &Branch" msgstr "&Zweig erstellen" msgid "Close Branch: " msgstr "Zweig abschließen: " msgid "New Branch: " msgstr "Neuer Zweig: " #, python-format msgid "Selected Options: %s" msgstr "Ausgewählte Optionen: %s" msgid "Parent:" msgstr "Vorgänger:" msgid "Patch name:" msgstr "Patch-Name:" #, python-format msgid "Close %s branch" msgstr "Zweig %s schließen" #, python-format msgid "Rollback commit to revision %d" msgstr "Übernahme zurückrollen auf Revision %d" msgid "Confirm Undo" msgstr "Rückgängig bestätigen" msgid "Discard current commit message?" msgstr "Die aktuellen Versionsmeldung verwerfen?" msgid "Message Translation Failure" msgstr "Übersetzung des Kommentars gescheitert" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" msgid "&Replace" msgstr "&Ersetzen" msgid "Nothing Committed" msgstr "Nicht übernommen" msgid "Please enter commit message" msgstr "Bitte geben Sie eine Versionsmeldung ein" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" "Es gibt keinen Verweis auf ein Ticket im Übernahme-Kommentar. Die " "Versionsmeldung sollte einen Verweis auf ein Ticket enthalten. Dies können " "Sie in den Einstellungen im Abschnitt \"Ticketing-System\" konfigurieren." msgid "No files checked" msgstr "Keine Datei ausgewählt" msgid "No modified files checkmarked for commit" msgstr "Keine geänderten Dateien zur Übernahme ausgewählt" msgid "Confirm Add" msgstr "Hinzufügen bestätigen" msgid "Add selected untracked files?" msgstr "Die ausgewählten unversionierten Dateien hinzufügen?" msgid "Confirm Remove" msgstr "Entfernen bestätigen" msgid "Remove selected deleted files?" msgstr "Die zur Löschung ausgewählten Dateien tatsächlich entfernen?" msgid "Nothing changed." msgstr "Keine Änderungen." msgctxt "window title" msgid "Commit" msgstr "Übernehmen" #, python-format msgid "%s - commit options" msgstr "%s - Übernahmeeinstellungen" msgid "Set username:" msgstr "Benutzernamen angeben:" msgid "Save in Repo" msgstr "Im Archiv speichern" msgid "Save Global" msgstr "Alle speichern" msgid "Set Date:" msgstr "Datum festlegen:" msgid "Update" msgstr "Aktualisieren" msgid "Push After Commit:" msgstr "Nach übernahme übertragen" msgid "Auto Includes:" msgstr "Automatische Einschlüsse:" msgid "Recurse into subrepositories (--subrepos)" msgstr "Unterarchive rekursiv einschließen (--subrepos)" msgid "Unable to save username" msgstr "Kann den Benutzernamen nicht speichern" msgid "Iniparse must be installed." msgstr "Installation von iniparse erforderlich." msgid "Unable to write configuration file" msgstr "Kann die Konfigurationsdatei nicht speichern" msgid "Unable to save after commit push" msgstr "Kann nach der Übernahmeübertragung nicht speichern" msgid "Unable to save auto include list" msgstr "Kann Liste der automatischen Einschlüsse nicht speichern" msgid "Unable to save recurse in subrepos." msgstr "Nicht imstande, die Rekursion in Unterarchive zu speichern." msgid "Invalid date format" msgstr "Ungültiges Datumsformat" msgid "No username configured" msgstr "Es ist kein Benutzername festgelegt" #, python-format msgid "%s - commit" msgstr "%s - Übernahme" msgid "TortoiseHg Commit" msgstr "Übernehmen mit TortoiseHg" msgid "Are you sure that you want to cancel the commit operation?" msgstr "Wollen Sie die Übernahme wirklich abbrechen?" msgid "Compress changesets up to and including" msgstr "Änderungssätze komprimieren bis einschließlich" msgid "Onto destination" msgstr "Auf das Ziel" msgid "Compress" msgstr "Komprimieren" #, python-format msgid "Compress - %s" msgstr "Komprimieren - %s" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the compress" msgstr "Sie können die Komprimierung fortsetzen" msgid "Changes have been moved, you must now commit" msgstr "Die Änderungen wurden verschoben, Sie müssen sie jetzt übernehmen" msgctxt "action button" msgid "Commit" msgstr "Übernehmen" msgid "Compress is complete, old history untouched" msgstr "Die Komprimierung ist vollständig, die Historie unverändert" msgid "must be specified repository" msgstr "muss das angegebene Archiv sein" msgid "must be specified 'type' in style" msgstr "muss vom Stil her der angegebene 'type' sein" msgid "Git Commit:" msgstr "" msgid "Summary:" msgstr "Zusammenfassung:" msgid "User:" msgstr "Benutzer:" msgid "Date:" msgstr "Datum:" msgid "Age:" msgstr "Alter:" msgid "Branch:" msgstr "Zweig:" msgid "Close:" msgstr "Schließen:" msgid "Tags:" msgstr "Etiketten:" msgid "Graft:" msgstr "Transplantation:" msgid "Transplant:" msgstr "Transplantation:" msgid "Obsolete state:" msgstr "Obsoleter Zustand:" msgid "Perforce:" msgstr "Perforce:" msgid "Subversion:" msgstr "Subversion:" msgid "Converted From:" msgstr "Umgewandelt aus:" msgid "Original Parent:" msgstr "Ursprünglicher Vorgänger:" msgid "No items to display" msgstr "Es gibt nichts anzuzeigen" msgid "Use compact view" msgstr "Die kompakte Darstellung verwenden" msgid "Patch:" msgstr "Patch:" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "Es werden %(count)d von %(total)d Elementen angezeigt" msgid "Select a GUI location to edit:" msgstr "Ein Oberflächen-Element zur Bearbeitung auswählen:" msgid "Select the toolbar or menu to change" msgstr "Wählen Sie die anzupassende Werkzeugleiste oder das anzupassende Menü" msgid "Tools shown on selected location" msgstr "Werkzeuge, die am ausgewählten Ort angezeigt werden" msgid "Delete from list" msgstr "Aus der Liste entfernen" msgid "Add to list" msgstr "Zur Liste hinzufügen" msgid "Add separator" msgstr "Trennlinie hinzufügen" msgid "List of all tools" msgstr "Liste aller Werkzeuge" msgid "New Tool ..." msgstr "Neues Werkzeug..." msgid "Edit Tool ..." msgstr "Werkzeug bearbeiten..." msgid "Delete Tool" msgstr "Werkzeug löschen" msgid "Type" msgstr "Art" msgid "Name" msgstr "Name" msgid "Command" msgstr "Anweisung" msgid "New hook" msgstr "Neuer Hook" msgid "Edit hook" msgstr "Hook bearbeiten" msgid "Delete hook" msgstr "Hook löschen" msgid "Replace existing hook?" msgstr "Vorhandenen Hook ersetzen?" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" "Es gibt bereits einen %s.%s-Hook.\n" "\n" "Wollen Sie ihn ersetzen?" msgid "OK" msgstr "OK" msgid "Missing information" msgstr "Fehlende Angabe" msgid "All items" msgstr "Alle Elemente" msgid "Working directory" msgstr "Arbeitsverzeichnis" msgid "All revisions" msgstr "Alle Revisionen" msgid "All contexts" msgstr "Alle Kontexte" msgid "Fixed revisions" msgstr "Korrigierte Revisionen" msgid "Applied patches" msgstr "Angewandte Patches" msgid "Applied patches or qparent" msgstr "Angewandte Patches oder QParent" msgid "" msgstr "" msgid "Configure Custom Tool" msgstr "Benutzerdefiniertes Werkzeug konfigurieren" msgid "Tool name" msgstr "Werkzeugname" msgid "The tool name. It cannot contain spaces." msgstr "Der Werkzeugname darf keine Leerzeichen enthalten." #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" "Das Verzeichnis, in dem die Anweisung ausgeführt werden wird.\n" "Wenn nicht angegeben, wird das Wurzelverzeichnis des aktuellen " "Projektarchivs verwendet.\n" "Sie können dieselben {Variablen} wie in der \"Command\"-Einstellung " "verwenden.\n" msgid "Tool label" msgstr "Werkzeug-Beschriftung" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" "Die Werkzeug-Beschriftung, welche im Kontextmenü des Projektbereichs " "angezeigt wird.\n" "Wenn keine Beschriftung angegeben ist, wird der Werkzeugname als " "Beschriftung eingesetzt.\n" "Wenn kein Tooltip festgelegt ist, wird die Beschriftung zudem als Tooltip " "verwendet." msgid "Tooltip" msgstr "Tooltip" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" "Der Tooltip, der auf der Werkzeugschaltfläche angezeigt wird.\n" "Wird nur verwendet, wenn die Werkzeugschaltfläche in der\n" "Werkbank-Werkzeugleiste angezeigt wird." msgid "Icon" msgstr "Symbol" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" "Das Werkzeugsymbol.\n" "Sie können jedes eingebaute TortoiseHg-Symbol nutzen,\n" "indem sie diesen Wert auf einen gültigen Symbolnamen setzen\n" "(beispielsweise clone, add, remove, sync, thg-logo, hg-update, etc).\n" "Sie können diesen Wert auch auf den absoluten Pfad\n" "irgendeines Symbols in Ihrem Dateisystem setzen." msgid "On repowidget, show for" msgstr "Im Projektbereich, anzeigen für" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" "Für welche Arten von Revisionen das Werkzeugs aktiviert wird\n" "Wird nur dann berücksichtigt, wenn das Werkzeug im\n" "ausgewählten Revisionskontextmenü gezeigt wird." msgid "Show Output Log" msgstr "Ausgabeprotokoll zeigen" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" "Zeigt bei Aktivierung automatisch das Ausgabeprotokoll an, wenn die " "Anweisung ausgeführt wurde.\n" "Standard: False." msgid "You must set a tool name." msgstr "Sie müssen einen Werkzeugnamen angeben." msgid "The tool name cannot have any spaces in it." msgstr "Der Werkzeugname kann keine Leerzeichen enthalten." msgid "You must set a command to run." msgstr "Sie müssen eine auszuführende Anweisung angeben." msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" msgid "Configure Hook" msgstr "Haken konfigurieren" msgid "Hook type" msgstr "Haken-Art" msgid "Select when your command will be run" msgstr "Wählen Sie, wie Ihre Anweisung ausgeführt wird." msgid "The hook name. It cannot contain spaces." msgstr "Der Hook-Name. Er darf keine Leerzeichen enthalten." msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" "Die auszuführende Anweisung.\n" "Zur Ausführung einer Python-Funktion hängen Sie \"python:\" vor den Befehl.\n" msgid "You must set a valid hook type." msgstr "Sie müssen einen gültigen Hook-Typ festlegen." msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "" "Der Hook-Name darf weder Leerzeichen noch Tabulatoren oder '='-Zeichen " "enthalten." msgid "Console" msgstr "Konsole" msgid "File &History / Annotate" msgstr "" msgid "Show the history of the selected file" msgstr "Die Historie der ausgewählten Datei anzeigen" msgid "Co&mpare File Revisions" msgstr "Dateirevisionen &vergleichen" msgid "Compare revisions of the selected file" msgstr "Revisionen der ausgewählten Datei vergleichen" msgid "Filter Histor&y" msgstr "Datei&historie" msgid "Query about changesets affecting the selected files" msgstr "" "Anfrage bezüglich Änderungssätzen mit Einfluss auf die ausgewählten Dateien" msgid "Diff &Changeset to Parent" msgstr "Änderungssatz mit Vorgänger &diffen" msgid "Diff Changeset to Loc&al" msgstr "Änderungssatz mit &lokaler Kopie diffen" msgid "&Diff to Parent" msgstr "&Diff mit Vorgänger" msgid "Diff to &Local" msgstr "Diff mit &lokaler Version" msgid "View changes to current in external diff tool" msgstr "Die aktuellen Änderungen in einem externen Diff-Werkzeug anzeigen" msgid "&View at Revision" msgstr "In &Revision ansehen" msgid "View file as it appeared at this revision" msgstr "Datei in dem Zustand dieser Revision anzeigen" msgid "&Save at Revision..." msgstr "In Revision &speichern..." msgid "Save file as it appeared at this revision" msgstr "Die Datei so schreiben, wie sie zu dieser Revision erschien" msgid "Save file to" msgstr "Datei speichern unter" msgid "&Edit Local" msgstr "Lokal &bearbeiten" msgid "&Open Local" msgstr "Lokal &öffnen" msgid "E&xplore Local" msgstr "Lokal &durchsuchen" msgid "Open parent folder of current file in the system file manager" msgstr "Übergeordnetes Verzeichnis der aktuellen Datei im Dateimanager öffnen" msgid "&Copy Patch" msgstr "Patch &kopieren" msgid "Copy &Path" msgstr "&Pfad kopieren" msgid "Copy full path of file(s) to the clipboard" msgstr "Den vollständigen Dateipfad in die Zwischenablage kopieren" msgid "&Revert to Revision..." msgstr "&Wiederherstellen in Revision..." msgid "Open S&ubrepository" msgstr "&Unterarchiv öffnen" msgid "Open the selected subrepository" msgstr "Das ausgewählte Unterarchiv öffnen" msgid "E&xplore Folder" msgstr "Verzeichnis im &Explorer öffnen" msgid "Open the selected folder in the system file manager" msgstr "Öffnet das ausgewählte Verzeichnis im Dateimanager des Systems" msgid "Open &Terminal" msgstr "&Eingabeaufforderung öffnen" msgid "Open a shell terminal in the selected folder" msgstr "Öffnet eine Kommandozeilenkonsole im ausgewählten Verzeichnis" msgid "Custom Tools" msgstr "Benutzerdefinierte Werkzeuge" msgid "Diff &Local" msgstr "Diff mit &lokaler Version" msgid "&View Missing" msgstr "&Fehlende anzeigen" msgid "View O&ther" msgstr "&Andere Version ansehen" msgid "Add &Largefiles..." msgstr "&Binärriesen hinzufügen..." msgid "&Forget" msgstr "&Vergessen" msgid "&Delete Unversioned..." msgstr "unversionierte &löschen" msgid "Confirm Delete Unversioned" msgstr "Löschung der nicht Versionierten bestätigen" msgid "Delete the following unversioned files?" msgstr "Die folgenden nicht versionierten Dateien löschen?" msgid "&Delete" msgstr "&Entfernen" msgid "Re&move Versioned" msgstr "Versionierte &entfernen" msgid "&Revert..." msgstr "&Wiederherstellen..." msgid "Uncommited merge - please select a parent revision" msgstr "" "Nicht übernommene Zusammenführung - bitte wählen Sie eine Vorgängerrevision" msgid "Revert files to local or other parent?" msgstr "" "Dateien entsprechend dem lokalen oder dem anderen Vorgänger wiederherstellen?" msgid "&Local" msgstr "&Lokale Kopie" msgid "&Other" msgstr "&Andere Kopie" msgid "Confirm Revert" msgstr "Wiederherstellen bestätigen" msgid "Revert local file changes?" msgstr "Wiederherstellen und lokale Änderungen verwerfen?" msgid "&Revert with backup" msgstr "Mit Sicherung &wiederherstellen" msgid "&Discard changes" msgstr "Änderungen &vollständig verwerfen" msgid "Revert the following files?" msgstr "Die nachgenannten Dateien wiederherstellen?" msgid "&Revert" msgstr "&Wiederherstellen" msgid "&Copy..." msgstr "&Kopieren ..." msgid "Re&name..." msgstr "&Umbenennen..." msgid "&Ignore..." msgstr "&Ausschließen..." msgid "Edit Re&jects" msgstr "&Zurückweisungen bearbeiten" msgid "Manually resolve rejected patch chunks" msgstr "Manuell zurückgewiesene Patch-Schnipsel auflösen" msgid "De&tect Renames..." msgstr "Umbenennungen &erkennen..." msgid "&Mark Resolved" msgstr "Als &aufgelöst markieren" msgid "&Mark Unresolved" msgstr "Als &nicht aufgelöst markieren" msgid "Restart Mer&ge" msgstr "Verschmelzung &neu starten" msgid "Was renamed from" msgstr "Wurde umbenannt von" msgid "Restart Merge &with" msgstr "Verschmelzung neu starten &mit" msgid "Display the file anyway" msgstr "Die Datei trotzdem anzeigen" msgid "Diff not displayed: " msgstr "Diff nicht angezeigt: " #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" "Die Datei ist größer als die vorgegebene Maximalgröße.\n" "maxdiff = %s KiB" msgid "File is binary" msgstr "Die Datei enthält Binärdaten" msgid "File may be binary (maximum line length exceeded)" msgstr "Die Datei könnte binär sein (maximale Zeilenlänge überschritten)" msgid "File or diffs not displayed: " msgstr "Nicht dargestellte Dateien oder Diffs: " msgid " (was added)" msgstr " (wurde hinzugefügt)" #, python-format msgid " (copied from %s)" msgstr " (kopiert von %s)" #, python-format msgid " (renamed from %s)" msgstr " (wurde umgenannt, hieß zuvor %s)" msgid " (is a symlink)" msgstr " (ein symbolischer Verweis)" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" "Dateien oder Abweichungen nicht angezeigt: Die Datei ist größer als die " "vorgegebene Maximalgröße.\n" "maxdiff = %s KiB" msgid " (was deleted)" msgstr " (wurde gelöscht)" msgid " (was added, now missing)" msgstr " (wurde hinzugefügt und fehlt jetzt)" msgid " (is unversioned)" msgstr " (ist nicht versioniert)" msgid "exec mode has been set" msgstr "Ausführmodus wurde aktiviert" msgid "exec mode has been unset" msgstr "Ausführmodus wurde deaktiviert" #, python-format msgid "changeset: %s" msgstr "Änderungssatz: %s" msgid "Initial revision" msgstr "Erst-Revision" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" "[ACHTUNG] Ungültige ID der Unterarchiv-Revision:\n" "\t%s\n" "\n" msgid "Subrepo created and set to initial revision." msgstr "Unterarchiv angelegt und auf die Erst-Revision eingestellt." msgid "Subrepo initialized to revision:" msgstr "Unter-Revision einstellt auf Revision:" msgid "Subrepo removed from repository." msgstr "Unterarchiv aus dem Projektarchiv entfernt." msgid "Previously the subrepository was at the following revision:" msgstr "Zuvor war das Unterarchiv in folgender Revision:" msgid "Subrepo was not changed." msgstr "Das Unterarchiv wurde nicht verändert." msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "" "[ACHTUNG] Fehlendes Unterarchiv. Aktualisieren Sie bis zu dieser Revision, " "um es zu klonen." msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "" "[ACHTUNG] Unvollständiges Unterarchiv. Aktualisieren Sie bis zu dieser " "Revision, um es zu ziehen." msgid "Subrepo state is:" msgstr "Der Zustand des Unterarchivs ist:" msgid "Revision has changed to:" msgstr "Die Revision hat sich geändert in:" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "Änderungssatz: %s (im Unterarchiv nicht gefunden)" msgid "From:" msgstr "Von:" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" "[ACHTUNG] Fehlendes geändertes Unterarchiv. Aktualisieren Sie bis zu dieser " "Revision, um es zu klonen." msgid "Subrepository not found in the working directory." msgstr "Im Arbeitsverzeichnis gibt es das Unterarchiv nicht." msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" "[ACHTUNG] Unvollständig geändertes Unterarchiv. Aktualisieren Sie bis zu " "dieser Revision, um es zu ziehen." msgid "Not a Mercurial subrepo, not previewable" msgstr "Kein Unterarchiv im Mercurial-Sinn, daher keine Vorschau möglich" #, python-format msgid "Error previewing subrepo: %s" msgstr "Fehler bei der Vorschau des Unterarchivs %s" msgid "Subrepo may be damaged or inaccessible." msgstr "Das Unterarchiv kann beschädigt oder unzugänglich sein." msgid "The subrepository is dirty." msgstr "Das Unterarchiv hat lokale Änderungen." msgid "File Status:" msgstr "Dateizustand:" msgid "(is a changed sub-repository)" msgstr "(ist ein geändertes Unterarchiv)" msgid "(is an unchanged sub-repository)" msgstr "(ist ein unverändertes Unterarchiv)" msgid "(is a dirty sub-repository)" msgstr "(Ist ein Unterarchiv mit lokalen Änderungen)" msgid "(is a new sub-repository)" msgstr "(ist ein neues Unterarchiv)" msgid "(is a removed sub-repository)" msgstr "(ist ein gelöschtes Unterarchiv)" msgid "(is a changed and dirty sub-repository)" msgstr "(ist ein geändertes Unterarchiv mit lokalen Änderungen)" msgid "(is a new and dirty sub-repository)" msgstr "(ist ein neues Unterarchiv mit lokalen Änderungen)" msgid "open..." msgstr "öffnen..." #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "Hg-Dateiprotokollbetrachter [%s] - %s" msgid "File History Log Columns" msgstr "Protokollspalten der Dateihistorie" msgid "Back" msgstr "Zurück" msgid "Forward" msgstr "Weiter" msgid "Diff Selected &Changesets" msgstr "Ausgewählte Ä&nderungssätze diffen" msgid "&Diff Selected File Revisions" msgstr "Ausgewählte Datei&revisionen diffen" msgid "Show Revision &Details" msgstr "Revision-&Details anzeigen" msgid "Too many rows selected for menu" msgstr "Für dieses Menü wurden zu viele Einträge ausgewählt" msgid "File Differences Log Columns" msgstr "Spalten im Dateiunterschiedsprotokoll" msgid "Next diff" msgstr "Nächstes Diff" msgid "Previous diff" msgstr "Vorausgehendes Diff" msgid "Unicode" msgstr "Unicode" msgid "Western Europe" msgstr "Westeuropa" msgid "Unified Chinese" msgstr "Vereinheitlichtes Chinesisch" msgid "Traditional Chinese" msgstr "Traditionelles Chinesisch" msgid "Korean" msgstr "Koreanisch" msgid "Japanese" msgstr "Japanisch" msgid "Thai" msgstr "Thailändisch" msgid "Central and Eastern Europe" msgstr "Mittel- und Osteuropa" msgid "Cyrillic" msgstr "Kyrillisch" msgid "Russian" msgstr "Russisch" msgid "Ukrainian" msgstr "Ukrainisch" msgid "Greek" msgstr "Griechisch" msgid "Turkish" msgstr "Türkisch" msgid "Arabic" msgstr "Arabisch" msgid "Hebrew" msgstr "Hebräisch" msgid "Vietnamese" msgstr "Vietnamesisch" msgid "Baltic" msgstr "Baltisch" msgid "Southern Europe" msgstr "Südeuropa" msgid "Nordic" msgstr "Nordisch" msgid "Celtic" msgstr "Keltisch" msgid "South-Eastern Europe" msgstr "Südosteuropa" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "utf-8,iso-8859-15,iso-8859-1,cp1252" msgid "View change as unified diff output" msgstr "Änderungen als Unified-Diff anzeigen" msgid "View change in context of file" msgstr "Änderungen im Kontext der Datei anzeigen" msgid "Annotate with revision numbers" msgstr "Mit Revisionsnummern kommentieren" msgid "Next Diff" msgstr "Nächstes Diff" msgid "Previous Diff" msgstr "Vorheriges Diff" msgid "Open shelve tool" msgstr "Stauraum öffnen" msgid "&Auto Detect" msgstr "&automatisch erkennen" msgid "Show changes from first parent" msgstr "Änderungen gegenüber dem ersten Vorgänger anzeigen" msgid "Show changes from second parent" msgstr "Änderungen gegenüber dem zweiten Vorgänger anzeigen" msgid "E&ncoding" msgstr "&Kodierung" msgid "&Search in Current File" msgstr "In aktueller Datei &suchen" msgid "Search in All &History" msgstr "In der ganzen &Historie suchen" msgid "Go to Line" msgstr "Springe in Zeile" #, python-format msgid "Enter line number (1 - %d)" msgstr "Zeilennummer eingeben (1 - %d)" msgid "Show &Author" msgstr "&Autor zeigen" msgid "Show &Date" msgstr "&Datum zeigen" msgid "Show &Revision" msgstr "&Revision zeigen" msgid "Annotate Op&tions" msgstr "Annotations-&Optionen" msgid "Search Selected Text" msgstr "Ausgewählten Text suchen" msgid "In Current &File" msgstr "Der der aktuellen &Datei" msgid "In &Current Revision" msgstr "In der aktuellen &Revision" msgid "In &Original Revision" msgstr "In der &Ausgangsrevision" msgid "In All &History" msgstr "In der gesamten &Historie" msgid "Go to" msgstr "Springe zu" msgid "View File at" msgstr "Betrachte Datei in" msgid "Diff File to" msgstr "Datei durch Diff vergleichen mit" msgid "&Originating Revision" msgstr "&Ursprünglicher Revision" msgid "&Parent Revision" msgstr "&Vorgängerrevision" #, python-format msgid "&Parent Revision (%d)" msgstr "&Elternrevision (%d)" msgid "&Mark Excluded Changes" msgstr "Ausgeschlossene Änderungen &markieren" msgid "(excluded from the next commit)" msgstr "(von der nächsten Übernahme ausgeschlossen)" msgid "Interrupted graft operation found" msgstr "Unterbrochener Transplantationsvorgang festgestellt" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" "Es wurde ein unterbrochener Transplantationsvorgang festgestellt.\n" "\n" "Sie können keine andere Transplantationsoperation durchführen, solange sie " "die erste nicht abbrechen." msgid "Continue or abort interrupted graft operation?" msgstr "Die Transplantationsoperation fortsetzen oder unterbrechen?" msgid "To graft destination" msgstr "Transplantationsziel" msgid "Use my user name instead of graft committer user name" msgstr "" "Meinen normalen Benutzernamen anstelle des für graft commit hinterlegten " "verwenden" msgid "Use current date" msgstr "Aktuelles Datum verwenden" msgid "Append graft info to log message" msgstr "Graft-Informationen an Protokoll anhängen" msgid "Graft" msgstr "Transplantieren" msgid "Abort" msgstr "Abbrechen" #, python-format msgid "Graft - %s" msgstr "Transplantieren - %s" msgid "Graft changeset" msgstr "Transplantations-Änderungssatz" #, python-format msgid "Graft changeset #%d of %d" msgstr "Transplantations-Änderungssatz #%d von %d" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" msgid "You may continue or start the graft" msgstr "Sie können die Transplanatation fortsetzen oder starten" msgid "Graft is complete" msgstr "Die Transplantation ist abgeschlossen" msgid "Graft failed" msgstr "Die Transplantation ist gescheitert" msgid "Graft aborted" msgstr "Die Transplantation wurde abgebrochen" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" "Die Transplantation hat zu Verschmelzungskonflikten geführt, die aufgelöst werden müssen." msgid "You may continue the graft" msgstr "Sie können Sie Transplantation fortsetzen" msgid "Exiting with an unfinished graft is not recommended." msgstr "" "Vom Beenden mit einer nicht abgeschlossenen Transplantation raten wir ab." msgid "Consider aborting the graft first." msgstr "Erwägen Sie, die Transplantation zunächst abzubrechen." msgid "&Exit" msgstr "Be&enden" msgid "### regular expression search pattern ###" msgstr "### regulärer Suchausdruck ###" msgid "Regexp:" msgstr "Regulärer Ausdruck:" msgid "Ignore case" msgstr "Groß-/Kleinschreibung ignorieren" msgid "Search" msgstr "Suche" msgid "Working Copy" msgstr "Arbeitskopie" msgid "All History" msgstr "Vollständige Historie" msgid "Report only the first match per file" msgstr "Nur den ersten Treffer je Datei melden" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "Kopien und Umbenennungen nachverfolgen" msgid "Includes:" msgstr "Enthält:" msgid "Excludes:" msgstr "Enthält nicht:" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" "Kommaseparierte Liste von Dateiausschluss-Mustern. Diese werden nach den " "Einschlussmustern berücksichtigt." msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" "Kommaseparierte Liste von Dateieinschluss-Mustern. Standardmäßig wird das " "ganze Projektarchiv durchsucht." #, python-format msgid "\"%s\" removed from search history" msgstr "\"%s\" wurde aus der Suchhistorie entfernt" #, python-format msgid "\"%s\" removed from path history" msgstr "\"%s\" wurde aus der Verzeichnishistorie entfernt" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "Mustersuche: Ungültiges Vergleichsmuster %s\n" #, python-format msgid "grep: %s\n" msgstr "Mustersuche: %s\n" #, python-format msgid "%d matches found" msgstr "%d Treffer" msgid "No matches found" msgstr "Keine Übereinstimmungen gefunden" msgid "Searching" msgstr "Suche..." msgid "history" msgstr "Historie" msgid "Interrupted" msgstr "abgebrochen" msgid "files" msgstr "Dateien" #, python-format msgid "Skipping %s, unable to read" msgstr "Überspringe %s, kann nicht gelesen werden" msgid "Vi&ew File" msgstr "Datei &zeigen" msgid "&View Changeset" msgstr "&Änderungssatz zeigen" msgid "Annotate &File" msgstr "&Datei annotieren" msgid "File" msgstr "Datei" msgid "Line" msgstr "Zeile" msgid "Rev" msgstr "Revision" msgid "User" msgstr "Benutzer" msgid "Match Text" msgstr "Vergleichstext" msgid "TortoiseHg Search" msgstr "TortoiseHg-Suche" #, python-format msgid "Detect Copies/Renames in %s" msgstr "Kopien/Umbenennungen in %s erkennen" msgid "Unrevisioned Files" msgstr "Fremddateien" msgid "Refresh file list" msgstr "Dateiliste aktualisieren" #, python-format msgid "Min Similarity: %d%%" msgstr "Minimale Ähnlichkeit: %d%%" msgid "Only consider deleted files" msgstr "Nur gelöschte Dateien berücksichtigen" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "" "Abwählen, um alle unter Revisionskontrolle befindlichen Dateien für die " "Quellkopie zu berücksichtigen" msgid "Find Renames" msgstr "Umbenennungen finden" msgid "Find copy and/or rename sources" msgstr "Quellen von Kopien und/oder Umbenennungen finden" msgid "Candidate Matches" msgstr "Mögliche Treffer" msgid "Accept All Matches" msgstr "Alle Treffer übernehmen" msgid "Accept Selected Matches" msgstr "Ausgewählte Treffer übernehmen" msgid "Differences from Source to Dest" msgstr "Unterschiede zwischen Quelle und Ziel" msgid "Search already in progress" msgstr "Suche läuft bereits" msgid "Cannot start a new search" msgstr "Neue Suche kann nicht gestartet werden" msgid "No files to find" msgstr "Keine Dateien zu finden" msgid "There are no files that may have been renamed" msgstr "Es gibt keine Dateien, die eventuell umbenannt wurden" msgid "Multiple sources chosen" msgstr "Mehr als eine Quelle ausgewählt" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" "Abbruch! Sie haben mehrfache Umbenennungen ausgewählt für die Zieldatei\n" "%s." #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" "%s und %s sind inhaltlich identisch\n" "\n" #. i18n: percent format #, python-format msgid "%d%%" msgstr "%d%%" msgid "Source" msgstr "Quelle" msgid "Dest" msgstr "Ziel" msgid "% Match" msgstr "% Treffer" msgid "Sending Email" msgstr "Die E-Mails werden versandt" msgid "Email" msgstr "E-Mail" msgid "To:" msgstr "An:" msgid "Cc:" msgstr "Cc:" msgid "In-Reply-To:" msgstr "Antwort auf:" msgid "Message identifier to reply to, for threading" msgstr "" "Kennung des zu beantwortenden Kommentars, zur Gesprächsfadenkennzeichnung" msgid "Flag:" msgstr "Schalter:" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" "Hg-Patch-Dateien (als Ergebnis des Befehls export) sind mit den meisten " "Patch-Programmen (patch etc.) kompatibel. Sie enthalten einen Dateikopf, der " "die wichtigsten Metadaten des Änderungssatzes enthält." msgid "Send changesets as Hg patches" msgstr "Änderungssätze als Hg-Patches versenden" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" "Git-Paches können Binärdateien, Kopien und Berechtigungsänderungen " "enthalten. Möglicherweise können Ihre Empfänger diese nicht verwenden, wenn " "sie ein anderes Werkzeug als git bzw. Mercurial einsetzen." msgid "Use extended (git) patch format" msgstr "Erweitertes Patch-Format (git) verwenden" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" "Das Herauslösen der Kopfdaten von Mercurial entfernt den Benutzernamen und " "die Informationen über die Vorgänger. Nur nützlich, wenn der Empfänger nicht " "Mercurial verwendet (und die Kopfdaten nicht sehen will)." msgid "Plain, do not prepend Hg header" msgstr "Einfach, keinen Hg-Dateikopf erzeugen" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" "Bündel enthalten vollständige Änderungssätze in binärer Form. Entfernte " "Benutzer können diese als Quelle zum Abruf verwenden. Dies ist die sicherste " "Art, um Änderungen an andere Benutzer von Mercurial zu senden." msgid "Send single binary bundle, not patches" msgstr "Einzelnes binäres Bündel senden, keine Patches" msgid "send patches as part of the email body" msgstr "Patches im Text der E-Mail versenden" msgid "body" msgstr "E-Mail-Text" msgid "send patches as attachments" msgstr "Patches als Anhänge senden" msgid "attach" msgstr "Anhängen" msgid "send patches as inline attachments" msgstr "Patches als eingebettete Anhänge senden" msgid "inline" msgstr "eingebettet" msgid "add diffstat output to messages" msgstr "Die Ausgabe von diffstat zu den Kommentaren hinzufügen" msgid "diffstat" msgstr "diffstat" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" "Die Beschreibung der Patch-Reihe wird als Zusammenfassung in einer ersten E-" "Mail versandt, deren Betreff [PATCH 0 of N] lautet. Die Beschreibung sollte " "die Auswirkungen der gesamten Patch-Reihe darstellen. Wenn ein Bündel " "verschickt wird, werden diese Informationen für den Betreff und die " "Nachricht der Mail verwendet. Die Schalter sind eine kommagetrennte Liste " "von Etiketten, welche am Anfang des Betreffs eingefügt werden." msgid "Write patch series (bundle) description" msgstr "Beschreiben Sie die Patch-Reihe (bzw. das Bündel)" msgid "Subject:" msgstr "Betreff:" msgid "Changesets" msgstr "Änderungssätze" msgid "Select &All" msgstr "&Alle Auswählen" msgid "Select &None" msgstr "&Keine Auswählen" msgid "Edit" msgstr "Bearbeiten" msgid "Preview" msgstr "Vorschau" msgid "&Settings" msgstr "Ein&stellungen" msgid "Send &Email" msgstr "&E-Mail versenden" msgid "&Close" msgstr "&Schließen" #, python-format msgid "Ignore filter - %s" msgstr "Ausschlussfilter - %s" msgid "Glob" msgstr "Glob" msgid "Regexp" msgstr "Regulärer Ausdruck" msgid "Add" msgstr "Hinzufügen" msgid "Edit File" msgstr "Datei &bearbeiten" msgid "Ignore Filter" msgstr "Ausschlussfilter" msgid "Untracked Files" msgstr "Unversionierte Dateien" msgid "Backspace or Del to remove row(s)" msgstr "Löschen oder Entfernen beseitigt die markierten Zeilen" msgid "Add ignore filter..." msgstr "Ausschlussfilter hinzufügen..." msgid "selected files" msgstr "Ausgewählte Dateien" msgid "Ignore " msgstr "Ausschließen " msgid "Invalid glob expression" msgstr "Ungültiger Glob-Ausdruck" msgid "Invalid regexp expression" msgstr "Ungültiger regulärer Ausdruck" msgid "Unable to read repository status" msgstr "Der Zustand des Archivs kann nicht ermittelt werden" msgid "New file created" msgstr "Datei neu angelegt" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" "TortoiseHg hat eine neue .hgignore-Datei angelegt. Soll diese Datei zum " "Projektarchiv hinzugefügt werden?" msgid "Unable to write .hgignore file" msgstr "Datei .hgignore kann nicht geschrieben werden" msgid "Copy working directory files from skeleton" msgstr "Kopiere Arbeitsverzeichnis Dateien von Skelett" msgid "Create special files (.hgignore, ...)" msgstr "" msgid "Make repo compatible with Mercurial <1.7" msgstr "Projektarchiv mit Mercurial vor 1.7 kompatibel machen" msgid "New Repository" msgstr "Neues Archiv" msgid "&Create" msgstr "&Erstellen" msgid "Unable to create a config file" msgstr "Die Konfigurationsdatei kann nicht erstellt werden" msgid "Insufficient access rights." msgstr "Fehlende Zugriffsrechte." msgid "Show Log" msgstr "Protokoll anzeigen" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" "Einige der ausgewählten Dateien sind größer als 10 MiB. Durch die " "Kennzeichnung dieser Dateien als Binärriesen können Sie den Platz " "effizienter nutzen, da auf diese Weise nur die jüngste Version dieser " "Dateien in Ihrem lokalen Archiv abgelegt wird, während die älteren " "Revisionen auf dem Server verbleiben. Wollen Sie diese Dateien als " "Binärriesen hinzufügen?" msgid "Add as &Largefiles" msgstr "Als &Binärriesen hinzufügen" msgid "Add as &Normal Files" msgstr "Als &normale Dateien hinzufügen" msgid "Invalid Patterns" msgstr "Ungültige Muster" msgid "Failed to process largefiles.patterns." msgstr "" msgid "Word docs (*.doc *.docx)" msgstr "Word Dateien (*.doc, *.docx)" msgid "PDF docs (*.pdf)" msgstr "PDF Dateien (*.pdf)" msgid "Excel files (*.xls *.xlsx)" msgstr "Excel Dateien (*xls, *.xlsx)" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "TortoiseHg Sperr-Werkzeug - %s" msgid "Refresh lock information" msgstr "Sperr Informationen auffrischen" msgid "Lock a file not described in .hglocks" msgstr "Eine nicht in .hglocks aufgelistete Datei sperren" msgid "Stop current operation" msgstr "Den momentanen Vorgang abbrechen" msgid "Locked And Lockable Files:" msgstr "Gesperrte und sperrbare Dateien:" msgid "Path" msgstr "Verzeichnis" msgid "Locking User" msgstr "Sperrender Benutzer" msgid "Purpose" msgstr "Zweck" msgid "Simplelock extension not enabled" msgstr "Simplelock Erweiterung nicht aktiviert" msgid "Please enable and configure simplelock" msgstr "Bitte aktivieren und konfigurieren Sie Simplelock" msgid "Open a (nonmergable) file you wish to be locked" msgstr "" "Öffnen Sie eine (nicht zusammenführbare) Datei, die Sie sperren möchten" msgid "File was not within current repository" msgstr "Datei befand sich nicht innerhalb des aktuelle Projektarchivs" #, python-format msgid "Locking %s" msgstr "Sperre %s" #, python-format msgid "Unlocking %s" msgstr "Entsperre %s" msgid "Refreshing locks..." msgstr "Aktualisiere Sperren" #, python-format msgid "Lock of %s successful" msgstr "Sperren von %s erfolgreich" #, python-format msgid "Lock of %s failed, retry" msgstr "Sperren von %s fehlgeschlagen, erneut versuchen" #, python-format msgid "Unlock of %s failed, retry" msgstr "Ensperren von %s fehlgeschlagen, erneut versuchen" #, python-format msgid "Unlock of %s successful" msgstr "Entsperren von %s erfolgreich" msgid "Ready, double click to lock or unlock" msgstr "Bereit, Doppelklicken zum Sperren oder Entsperren" msgid "Ready" msgstr "Bereit" msgid "You can only release your own locks" msgstr "Sie können nur ihre eigenen Sperren entsperren." msgid "Find revisions matching fields of:" msgstr "Finde Revisionen mit passenden Feldern zu:" msgid "Revision to Match:" msgstr "Vergleichs-Revision" msgid "Fields to match:" msgstr "Vergleichs-Felder:" msgid "Summary (first description line)" msgstr "Zusammenfassung (erste Zeile des Übernahme-Kommentars)" msgid "Description" msgstr "Beschreibung" msgid "Author" msgstr "Autor" msgid "Date" msgstr "Datum" msgid "Files" msgstr "Dateien" msgid "Diff contents" msgstr "Diff-Inhalt" msgid "Subrepo states" msgstr "Stati der Unterarchive" msgid "Branch" msgstr "Zweig" msgid "Phase" msgstr "Phase" msgid "&Match" msgstr "&Suchen" #, python-format msgid "Find matches - %s" msgstr "Passende finden - %s" msgid "Revisions to Match:" msgstr "Revisionen zum Vergleichen:" #, python-format msgid "Match any of %d revisions" msgstr "kann zu irgend einer der %d Revisionen passen" msgid "Unknown revision!" msgstr "Unbekannte Revision!" msgid "Parse Error!" msgstr "Syntax-Fehler!" #, python-format msgid "Merge - %s" msgstr "Zusammenführen - %s" msgid "Do you want to exit?" msgstr "Wirklich beenden?" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" "Um die Zusammenführung abzuschließen, müssen Sie das Arbeitsverzeichnis " "übernehmen.\n" "\n" "Um die Zusammenführung abzubrechen, können Sie auf eine der " "Vorgängerversionen aktualisieren." msgid "Prepare to merge" msgstr "Zusammenführen vorbereiten" msgid "Verify merge targets and ensure your working directory is clean." msgstr "" "Prüfen Sie Ihre Zusammenführungsziele und stellen Sie sicher, dass Ihr " "Arbeitsverzeichnis sauber ist." msgid "Not a head revision!" msgstr "Keine Kopfrevision!" msgid "Merge from (other revision)" msgstr "Zusammenführen mit (andere Revision)" msgid "Merge to (working directory)" msgstr "Zusammenführen in (Arbeitsverzeichnis)" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" "Das Arbeitsverzeichnis enthält bereits das Ergebnis einer " "Zusammenführung. Wollen Sie die Operation überspringen oder die bestehenden Zusammenführungsdaten verwerfen?" msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" "Vor dem Zusammenführen ist es notwendig, dass Sie alle Änderungen übernehmen, in einem Patch verstauen oder verwerfen." msgid "Or use:" msgstr "Alternativ einzusetzen:" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "" "Eine Zusammenführung mit ausstehenden Änderungen erzwingen (-f/--force)" msgid "Discard all changes from the other revision" msgstr "" msgid "&Discard" msgstr "&Verwerfen" msgid "Confirm Discard Changes" msgstr "Das Verwerfen der Änderungen bestätigen" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" "Die Änderungen seit Revision %s und alle nicht zusammengeführten Vorgänger " "werden verworfen.\n" "\n" "Sind Sie sicher, dass Sie so vorgehen sollen?" msgctxt "working dir state" msgid "Clean" msgstr "Aufräumen" msgid "Merging..." msgstr "Führe zusammen..." msgid "Automatically advance to next page when merge is complete." msgstr "" "Automatisch auf die nächste Seite weiterblättern, sobald die Zusammenführung " "abgeschlossen ist." #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" "%d Dateien wurden in beiden Zweigen geändert und müssen aufgelöst werden." msgid "" "No merge conflicts, ready to commit or review" msgstr "" "Keine Verschmelzungskonflike, bereit zum Übernehmen oder prüfen" msgid "Commit merge results" msgstr "Zusammenführungsergebnisse übernehmen" msgid "Commit Options" msgstr "Übernahmeoptionen" msgid "Commit Now" msgstr "Jetzt übernehmen" msgid "Commit Later" msgstr "Später übernehmen" msgid "Merge changeset" msgstr "Mit Änderungssatz zusammenführen" msgid "Syntax Highlighting" msgstr "Syntax-Hervorhebung" msgid "Paste &Filenames" msgstr "Dateinamen &einfügen" msgid "App&ly Format" msgstr "Formatierung An&wenden" msgid "C&onfigure Format" msgstr "&Formatierung einstellen" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "" "%s enthielt zurückgewiesene Blöcke, soll die gepatchte Datei zusammen mit " "den Zurückweisungen bearbeitet werden?" msgid "&Commit to Queue..." msgstr "Ü&bernehmen in Queue..." msgid "Create &New Queue..." msgstr "&Neue Queue erstellen..." msgid "&Rename Active Queue..." msgstr "Aktive Queue &umbenennen..." msgid "&Delete Queue..." msgstr "Queue &löschen..." msgid "&Purge Queue..." msgstr "Queue be&reinigen" msgid "Create Patch Queue" msgstr "Patch-Queue erstellen" msgid "New patch queue name" msgstr "Name der neuen Patch-Warteschlange?" msgid "Create" msgstr "Anlegen" msgid "Rename Patch Queue" msgstr "Patch-Queue umbenennen" #, python-format msgid "Rename patch queue '%s' to" msgstr "Patch-Warteschlange '%s' umbennen in" msgid "Rename" msgstr "Umbenennen" msgid "Delete Patch Queue" msgstr "Patch-Queue löschen" msgid "Delete reference to" msgstr "Referenz löschen auf" msgid "Delete" msgstr "Entfernen" msgid "Purge Patch Queue" msgstr "Patch-Queue bereinigen" msgid "Remove patch directory of" msgstr "Patch-Verzeichnis bereinigen:" msgid "Purge" msgstr "Bereinigen" msgid "Rename Patch" msgstr "Patch umbenennen" #, python-format msgid "Rename patch %s to:" msgstr "Patch %s umbenennen in:" msgid "no guards" msgstr "Keine Wachen" msgid "Patch Queue" msgstr "Patch-Warteschlange" msgctxt "MQ QPush" msgid "Push" msgstr "Übertragen" msgid "Apply one patch" msgstr "Einen Patch anwenden" msgctxt "MQ QPush" msgid "Push all" msgstr "Alle übertragen" msgid "Apply all patches" msgstr "Alle Patches anwenden" msgid "Pop" msgstr "Ziehen" msgid "Unapply one patch" msgstr "Einen Patch rückwärts anwenden" msgid "Pop all" msgstr "Alle ziehen" msgid "Unapply all patches" msgstr "Alle Patches rückwärts anwenden" msgid "Go &to Patch" msgstr "Gehe zu Pa&tch" msgid "&Apply Only This Patch" msgstr "" msgid "Apply only the selected patch" msgstr "" msgid "&Finish Patch" msgstr "&Patch abschließen" msgid "Move applied patches into repository history" msgstr "Verschiebe angewendete Patches in Repository Historie" msgid "&Delete Patches..." msgstr "Patches &löschen..." msgid "Delete selected patches" msgstr "Die ausgewählten Patches löschen" msgid "Re&name Patch..." msgstr "Patch &umbenennen" msgid "Set &Guards..." msgstr "&Guards setzen..." msgid "Configure guards for selected patch" msgstr "Wachen für den ausgewählten Patch konfigurieren" msgid "Patch Queue Actions Toolbar" msgstr "Patch-Warteschlangen-Werkzeugleiste" msgid "Configure guards" msgstr "Wachen aufstellen" #, python-format msgid "Input new guards for %s:" msgstr "Neue Wachen für %s eingeben:" msgid "Confirm patch queue switch" msgstr "Patch-Warteschlange-Wechsel bestätigen" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "Wollen Sie die Patch-Warteschlange '%s' wirklich aktivieren?" #, python-format msgid "Guards: %d/%d" msgstr "Wachen: %d/%d" msgid "MQ options" msgstr "Mercurial-Warteschlangen-Einstellungen" msgid "Force push or pop (--force)" msgstr "Übertragen oder Entfernen erzwingen (--force)" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "Nicht-konfliktäre lokale Änderungen missachten (--keep-changes)" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "Ausstehende Perforce-Änderungssätze - %s" msgid "Submitting p4 changelist..." msgstr "p4-Änderungsliste wird übertragen..." msgid "Reverting p4 changelist..." msgstr "p4-Änderungsliste wird wiederhergestellt..." msgid "Patch Branch Toolbar" msgstr "Patchzweig-Werkzeugleiste" msgid "Merge all pending dependencies" msgstr "Alle ausstehenden Abhängigkeiten zusammenführen" msgid "Backout current patch branch" msgstr "Den aktuellen Patchzweig rücksetzen" msgid "Backport part of a changeset to a dependency" msgstr "Teile eines Änderungssatzes in ein verwandtes Archiv rückportieren" msgid "Start a new patch branch" msgstr "Einen neuen Patchzweig erstellen" msgid "Edit patch dependency graph" msgstr "Den Patch-Abhängigkeiten-Graphen bearbeiten" msgid "will be closed" msgstr "wird abgeschlossen" #, python-format msgid "needs merge of %i heads\n" msgstr "Benötigt die Zusammenführung von %i Kopfrevisionen\n" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "Benötigt die Zusammenführung mit %s (bis %s)\n" #, python-format msgid "needs merge with %s\n" msgstr "Benötigt die Zusammenführung mit %s\n" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "Dafür muss die Diff-Basis auf die Spitze von %s verschoben werden\n" msgid "&Goto (update workdir)" msgstr "&Wechsle (aktualisiert Arbeitsverzeichnis)" msgid "&Merge" msgstr "&Zusammenführen" msgid "No patch branch selected" msgstr "Kein Patch-Zweig ausgewählt" msgid "No editor found" msgstr "Kein Editor gefunden" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" "Mercurial konnte keinen Editor finden. Bitte hinterlegen Sie einen Editor in " "der Mercurial-Konfiguration." msgid "Graph" msgstr "Graph" msgid "Status" msgstr "Zustand" msgid "Title" msgstr "Betreff" msgid "Message" msgstr "Kommentar" msgid "New Patch Branch" msgstr "Neuer Patch-Zweig" msgid "Patch message:" msgstr "Patch-Kommentar:" msgid "Patch date:" msgstr "Patch-Datum:" msgid "Patch user:" msgstr "Patch-Benutzer:" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "Review Über&mitteln" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "" "Ungültige Konfiguration - der Review-Board-Server ist nicht eingerichtet" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "" "Ungültige Konfiguration - bitte geben Sie Ihren Review-Board-Benutzernamen an" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" "Ungültiges Review-Board-Plugin. Bitte laden Sie die Version 3.5 oder höher " "von der unten angegebenen Web-Site herunter.\n" "\n" "%s" msgid "Review Board" msgstr "ReviewBoard" msgid "Password:" msgstr "Kennwort:" msgid "Error" msgstr "Fehler" #, python-format msgid "Review draft posted to %s\n" msgstr "Review-Entwurf an %s geschickt\n" #, python-format msgid "Review published to %s\n" msgstr "Review auf %s veröffentlicht\n" msgid "Success" msgstr "Erfolg" msgid "Repository ID:" msgstr "Projektarchiv-ID:" msgid "Post Review" msgstr "Review veröffentlichen" msgid "Review ID:" msgstr "Review-ID:" msgid "Update the fields of this existing request" msgstr "Die Felder der vorhandenen Anfrage aktualisieren" msgid "Update Review" msgstr "Review aktualisieren" msgid "Create diff with all outgoing changes" msgstr "Diff auf Basis aller ausgehenden Änderungen zusammenstellen" msgid "Create diff with all changes on this branch" msgstr "Diff auf Basis aller Änderungen in diesem Zweig zusammenstellen" msgid "Publish request immediately" msgstr "Anfrage unmittelbar veröffentlichen" msgid "%p%" msgstr "%p%" msgid "Connecting to Review Board..." msgstr "Verbindung zum Review-Board-Server wird aufgenommen..." msgid "Target:" msgstr "Ziel:" msgid "Do not modify working copy (-k/--keep)" msgstr "" #, python-format msgid "Prune - %s" msgstr "Prune - %s" msgid "&Prune" msgstr "&Kürzen" msgid "No unknown files found" msgstr "Keine Fremddateien gefunden" msgid "No ignored files found" msgstr "Keine ignorierten Dateien gefunden" msgid "No trash files found" msgstr "Keine zur Löschung vorgesehenen Dateien gefunden" msgid "Delete empty folders" msgstr "Lösche leere Ordner" msgid "Preserve files beginning with .hg" msgstr "Mit .hg beginnende Dateien beibehalten" #, python-format msgid "%s - purge" msgstr "%s - bereinigen" msgid "Checking" msgstr "Überprüfung läuft" msgid "Ready to purge." msgstr "Bereit zum Bereinigen." #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "%d unbekannte Datei löschen" msgstr[1] "%d unbekannte Dateien löschen" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "%d ignorierte Datei löschen" msgstr[1] "%d ignorierte Dateien löschen" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "%d Datei aus .hg/Trashcan löschen" msgstr[1] "%d Dateien aus .hg/Trashcan löschen" msgid "Confirm file deletions" msgstr "Löschen der Dateien bestätigen" msgid "Are you sure you want to delete these files and/or folders?" msgstr "" "Sind Sie sicher, dass Sie diese Dateien und/oder Verzeichnisse löschen " "wollen?" msgid "Deletion failures" msgstr "Löschfehler" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "%d Dateien oder Verzeichnisse können nicht gelöscht werden" msgstr[1] "%d Datei oder Verzeichnis kann nicht gelöscht werden" msgid "Deleting trash folder..." msgstr "Leere den Mülleimer..." #, python-format msgid "Deleted %d files" msgstr "%d Dateien gelöscht" #, python-format msgid "Deleted %d files and %d folders" msgstr "%d Dateien und %d Ordner gelöscht" msgid "Delete Patches" msgstr "Patches löschen" msgid "Remove patches from queue?" msgstr "Patches aus der Warteschlange entfernen?" msgid "Keep patch files" msgstr "Patch aufbewahren" #, python-format msgid "Patch fold - %s" msgstr "Patch verschmelzen - %s" msgid "New patch message:" msgstr "Neuer Patch-Kommentar:" msgid "Patches to fold" msgstr "Zu verschmelzende Patches" msgid "&Undo" msgstr "&Rückgängig" msgid "&Redo" msgstr "&Nochmals" msgid "Cu&t" msgstr "&Ausschneiden" msgid "&Copy" msgstr "&Kopieren" msgid "&Paste" msgstr "&Einfügen" msgid "&Editor Options" msgstr "&Editor-Einstellungen" msgid "&Wrap" msgstr "&Umschließen" msgctxt "wrap mode" msgid "&None" msgstr "&Kein" msgid "&Word" msgstr "&Wort" msgid "&Character" msgstr "&Zeichen" msgid "White&space" msgstr "&Leerraum" msgid "&Visible" msgstr "&Sichtbar" msgid "&Invisible" msgstr "&Unsichtbar" msgid "&AfterIndent" msgstr "&Nach Einrückung" msgid "&TAB Inserts" msgstr "&Tab-Einfügungen" msgid "&Auto" msgstr "&Automatisch" msgid "&TAB" msgstr "&Tab" msgid "&Spaces" msgstr "&Leerzeichen" msgid "EOL &Visibility" msgstr "EOL-&Sichtbarkeit" msgid "EOL &Mode" msgstr "EOL-&Modus" msgid "&Windows" msgstr "&Windows" msgid "&Unix" msgstr "&Unix" msgid "&Mac" msgstr "&Mac" msgid "&Auto-Complete" msgstr "&Autovervollständigen" msgid "### regular expression ###" msgstr "### regulärer Ausdruck ###" msgid "Regular expression search pattern" msgstr "Suchmuster (Regulärer Ausdruck)" msgid "Wrap search" msgstr "Zyklisch weitersuchen" msgid "Prev" msgstr "Zurück" msgid "Next" msgstr "Weiter" msgid "Unable to read file" msgstr "Datei nicht lesbar" msgid "Could not open the specified file for reading." msgstr "Konnte die angegebene Datei nicht lesend öffnen." msgid "This appears to be a binary file." msgstr "Dies ist offenbar eine Binärdatei ." msgid "An error occurred while reading the file." msgstr "Ein Fehler trat beim Lesen der Datei auf." msgid "Text Translation Failure" msgstr "Textübersetzungsfehler" msgid "Could not translate the file content from native encoding." msgstr "Konnte den Dateiinhalt nicht aus der nativen Kodierung übertragen." msgid "Several characters would be lost." msgstr "Einige Zeichen würden verlorengehen." msgid "Unable to write file" msgstr "Datei nicht schreibbar" msgid "Could not translate the file content to native encoding." msgstr "Konnte die Datei nicht in ihre native Kodierung übertragen." msgid "Could not open the specified file for writing." msgstr "Konnte die Datei nicht zum Schreiben öffnen." msgid "An error occurred while writing the file." msgstr "Ein Fehler trat beim Schreiben der Datei auf." msgid "Try refreshing your repository." msgstr "Versuchen Sie, Ihr Projektarchiv zu aktualisieren." #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
                Please edit your config" msgstr "" "Fehlertext \"%(arg0)s\" in %(arg1)s
                Bitte bearbeiten Sie Ihre Konfiguration" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
                Please fix your config" msgstr "" "Konfigurationsfehler: \"%(arg0)s\",
                Bitte
                reparieren Sie Ihre Konfiguration" #, python-format msgid "Operation aborted:

                %(arg0)s." msgstr "Vorgang abgebrochen:

                %(arg0)s." msgid "Repository is locked" msgstr "Das Archiv ist gesperrt" msgid "hint:" msgstr "Tip:" msgid "Repository Error" msgstr "Projektarchiv-Fehler" msgid "No visual editor configured" msgstr "kein grafischer Editor konfiguriert" msgid "Please configure a visual editor." msgstr "Bitte konfigurieren Sie einen grafischen Editor" msgid "Editor launch failure" msgstr "Editorstartfehler" msgid "Failed to open path in terminal" msgstr "Das Öffnen des Pfades in einer Konsole ist fehlgeschlagen" #, python-format msgid "\"%s\" is not a valid directory" msgstr "\"%s\" ist kein gültiges Verzeichnis" #, python-format msgid "Invalid configuration: %s" msgstr "Ungültige Konfiguration: %s" msgid "Unable to start the following command:" msgstr "Konnte den folgenden Befehl nicht ausführen:" msgid "No shell configured" msgstr "Keine Shell konfiguriert" msgid "A terminal shell must be configured" msgstr "Eine Kommandozeilenanwendung für die Konsole muss eingestellt werden" msgid "Please enter a username" msgstr "Bitte geben Sie Ihren Benutzernamen ein" msgid "You must identify yourself to Mercurial" msgstr "Sie müssen sich vor Mercurial ausweisen" msgid "Unable to translate input to local encoding." msgstr "Kann die Eingabe nicht in die lokale Codierung übertragen." msgid "Checkmark files to add" msgstr "Dateien zum Hinzufügen ankreuzen" msgid "Checkmark files to forget" msgstr "Dateien zum Vergessen ankreuzen" msgid "Forget" msgstr "Vergessen" msgid "Checkmark files to revert" msgstr "Zum Wiederherstellen Dateien auswählen" msgid "Revert" msgstr "&Wiederherstellen" msgid "Checkmark files to remove" msgstr "Dateien zum Entfernen ankreuzen" msgid "Remove" msgstr "Entfernen" #, python-format msgid "%s - hg %s" msgstr "%s - hg %s" msgid "Do not save backup files (*.orig)" msgstr "Sicherheitskopien (*.orig) nicht speichern" msgid "Force removal of modified files (--force)" msgstr "Entfernen der geänderten Dateien erzwingen (--force)" msgid "Add &Largefiles" msgstr "&Binärriesen hinzufügen" msgid "No files selected" msgstr "Keine Dateien ausgewählt" msgid "No operation to perform" msgstr "Es gibt nichts zu tun" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" "Sie haben mindestens eine veränderte Datei ausgewählt. Standardmäßig werden " "diese Dateien nicht entfernt. Was möchten Sie tun?" msgid "Remove &Unmodified Files" msgstr "&Unveränderte Dateien entfernen" msgid "Remove &All Selected Files" msgstr "&Alle ausgewählten Dateien entfernen" msgid "Rebase changeset and descendants" msgstr "Basis des Änderungssatzes und seiner Nachfahren verschieben" msgid "To rebase destination" msgstr "Ziel der Verschiebung" msgid "Swap source and destination" msgstr "Quelle und Ziel vertauschen" msgid "Keep original changesets (--keep)" msgstr "Ursprüngliche Änderungssätze beibehalten (--keep)" msgid "Keep original branch names (--keepbranches)" msgstr "Ursprüngliche Zweignamen beibehalten (--keepbranches)" msgid "Collapse the rebased changesets (--collapse)" msgstr "" msgid "Rebase entire source branch (-b/--base)" msgstr "" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "" "Nicht Veröffentlichtes auf die Subversion-Kopfrevision verschieben " "(übersteuert Ziel und Quelle)" msgid "Rebase" msgstr "Verschiebung" #, python-format msgid "Rebase - %s" msgstr "Verschiebung - %s" msgid "" "Before rebase, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the rebase" msgstr "Sie können die Verschiebung fortsetzen" msgid "Rebase is complete" msgstr "Dei Verschiebung ist abgeschlossen" msgid "Rebase failed" msgstr "Verschiebung gescheitert" msgid "Rebase aborted" msgstr "Die Verschiebung wurde abgebrochen" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" "Die Verschiebung hat zu Zusammenführungskonflikten gefühlt, die aufgelöst werden müssen." msgid "Exiting with an unfinished rebase is not recommended." msgstr "" "Wir raten davon ab, vor Abschluss der Verschiebung den Dialog zu verlassen." msgid "Consider aborting the rebase first." msgstr "Ziehen Sie in Betracht, die Verschiebung zunächst abzubrechen." #, python-format msgid "Merge rejected patch chunks into %s" msgstr "Die zurückgewiesenen Patch-Blöcke werden mit %s zusammengefügt" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "Diesen Block als erledigt markieren und zum nächsten offenen wechseln" msgid "Mark this chunk as unresolved" msgstr "Diesen Block als nicht erledigt markieren" msgid "Reload File" msgstr "Datei neu laden" msgid "Are you sure you want to reload this file?" msgstr "Sind Sie sicher, dass Sie diese Datei neu laden wollen?" msgid "All unsaved changes will be lost." msgstr "Alle ungespeicherten Änderungen gehen verloren." msgid "Warning" msgstr "Warnung" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" "Sie haben alle zurückgewiesenen Patch-Blöcke als aufgelöst markiert, obwohl " "Sie die angezeigte Datei nicht geändert haben.\n" "\n" "Das könnte darauf hinweisen, dass kein Code aus den zurückgewiesenen Patch-" "Blöcken den Weg in die Datei gefunden hat.\n" "\n" "Sind Sie sicher, dass Sie die Datei unverändert lassen wollen und alle " "zurückgewiesenen Patch-Blöcke als aufgelöst markieren wollen?\n" "\n" "Auf diese Weise können Sie sie beispielsweise aus einem Stauraum löschen, " "was aber bedeutet, dass sie dauerhaft verloren sind!\n" "\n" "Wählen Sie ja, um die Datei so zu akzeptieren oder nein, um die Auflösung " "weiterzuführen." msgid "Copy source -> destination" msgstr "Quelle in Ziel kopieren" msgid "Copy Error" msgstr "Kopierfehler" msgid "Rename Error" msgstr "Fehler beim Umbenennen" msgid "Select Source File" msgstr "Quelldatei auswählen" msgid "Select Source Folder" msgstr "Quellordner auswählen" msgid "Source does not exist." msgstr "Quelle existiert nicht." msgid "The source must be within the repository tree." msgstr "Die Quelle muss im Projektarchiv-Baum liegen." msgid "The destination must be within the repository tree." msgstr "Das Ziel muss im Projektarchiv-Baum liegen." msgid "Destination file already exists." msgstr "Die Zieldatei ist bereits vorhanden." msgid "Are you sure you want to overwrite it ?" msgstr "Sind Sie sicher, dass Sie sie überschreiben wollen?" #, python-format msgid "Copy - %s" msgstr "Kopieren - %s" #, python-format msgid "Rename - %s" msgstr "Umbenennen - %s" msgid "Show all" msgstr "Zeige alle" msgid "### revision set query ###" msgstr "### Revisionsmengen-Anfrage ###" msgid "Clear current query and query text" msgstr "Aktuelle Anfrage löschen und Text anfragen" msgid "Trigger revision set query" msgstr "Revisionsmengen-Anfrage auslösen" msgid "Open advanced query editor" msgstr "Komplexen Anfrage-Editor öffnen" msgid "Delete selected query from history" msgstr "Ausgewählte Anfrage aus der Historie entfernen" msgid "filter" msgstr "Filter" msgid "Toggle filtering of non-matched changesets" msgstr "Anzeigen der unpassenden Änderungssätze ein- oder ausschalten" msgid "Show/Hide hidden changesets" msgstr "Versteckte Änderungssätze zeigen/verstecken" msgid "Toggle graft relations visibility" msgstr "Graft-Verbindungen visuell umschalten" msgid "Keyword Search" msgstr "Schlüsselwort-Suche" msgid "Revision Set" msgstr "Revisionsmenge" msgid "(unsaved)" msgstr "" msgid "Display graph the named branch only" msgstr "Nur den benannten Zweig grafisch darstellen" msgid "Display only active branches" msgstr "Nur aktive Zweige anzeigen" msgid "Display closed branches" msgstr "Die geschlossenen Zweige darstellen" msgid "Include all ancestors" msgstr "Alle Vorgänger einschließen" msgctxt "column header" msgid "Graph" msgstr "Grafische Darstellung" msgctxt "column header" msgid "Rev" msgstr "Revision" msgctxt "column header" msgid "Branch" msgstr "Zweig" msgctxt "column header" msgid "Description" msgstr "Beschreibung" msgctxt "column header" msgid "Author" msgstr "Autor" msgctxt "column header" msgid "Tags" msgstr "Etiketten" msgctxt "column header" msgid "Latest tags" msgstr "Jüngste Etiketten" msgctxt "column header" msgid "Node" msgstr "Knoten" msgctxt "column header" msgid "Git Commit" msgstr "" msgctxt "column header" msgid "Age" msgstr "Alter" msgctxt "column header" msgid "Local Time" msgstr "Lokalzeit" msgctxt "column header" msgid "UTC Time" msgstr "Universalzeit" msgctxt "column header" msgid "Changes" msgstr "Änderungen" msgctxt "column header" msgid "Converted From" msgstr "Umgewandelt aus" msgctxt "column header" msgid "Phase" msgstr "Phase" msgctxt "column header" msgid "Filename" msgstr "Dateiname" msgid "Searching..." msgstr "Suche..." #, python-format msgid "filling (%d)" msgstr "wird aufgefüllt (%d)" msgid "Mercurial User" msgstr "Benutzer von Mercurial" msgid "Repository Registry" msgstr "Archivkatalog" msgid "Show &Paths" msgstr "&Pfade anzeigen" msgid "Show S&hort Paths" msgstr "&Kurze Pfade anzeigen" msgid "&Scan Repositories at Startup" msgstr "Archive zur Startzeit &prüfen" msgid "Scan &Remote Repositories" msgstr "&Entferntes Archiv prüfen" msgid "&Refresh Repository List" msgstr "Archivliste &aktualisiseren" msgid "Refresh the Repository Registry list" msgstr "Archivkatalog aktualisieren" msgid "&Open" msgstr "Ö&ffnen" msgid "Open the repository in a new tab" msgstr "Das Projektarchiv in einem neuen Reiter öffnen" msgid "&Open All" msgstr "&Alle Öffnen" msgid "Open all repositories in new tabs" msgstr "Alle Projektarchive in neuen Reitern öffnen" msgid "New &Group" msgstr "Neue &Gruppe" msgid "Create a new group" msgstr "Neue Gruppe anlegen" msgid "Rename the entry" msgstr "Den Eintrag umbenennen" msgid "Settin&gs" msgstr "&Einstellungen" msgid "View the repository's settings" msgstr "Die Projektarchiv-Einstellungen ansehen" msgid "Re&move from Registry" msgstr "Aus der Registry &entfernen" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" "Den Knoten und alle Unterknoten entfernen. Die Projektarchive werden nicht " "von der Platte gelöscht." msgid "Clon&e..." msgstr "&Klonen..." msgid "Clone Repository" msgstr "Projektarchiv klonen" msgid "E&xplore" msgstr "Im &Explorer öffnen" msgid "Open the repository in a file browser" msgstr "Das Archiv in einem Dateiexplorer öffnen" msgid "&Terminal" msgstr "&Eingabeaufforderung" msgid "Open a shell terminal in the repository root" msgstr "Eine Kommandozeilenkonsole im Wurzelverzeichnis des Archivs öffnen" msgid "&Add Repository..." msgstr "Archiv &hinzufügen..." msgid "Add a repository to this group" msgstr "Projektarchiv zur Gruppe hinzufügen..." msgid "A&dd Subrepository..." msgstr "&Unterarchiv hinzufügen..." msgid "Convert an existing repository into a subrepository" msgstr "Ein bestehendes Archiv in ein Unterarchiv umwandeln" msgid "Remo&ve Subrepository..." msgstr "Unterarchiv &löschen..." msgid "Remove this subrepository from the current revision" msgstr "Dieses Unterarchiv von der aktuellen Revision entfernen" msgid "Copy the root path of the repository to the clipboard" msgstr "Den Wurzelpfad des Archivs in die Zwischenablage kopieren" msgid "Sort by &Name" msgstr "Nach &Namen sortieren" msgid "Sort the group by short name" msgstr "Die Gruppe nach Kurznamen sortieren" msgid "Sort by &Path" msgstr "nach &Pfad sortieren" msgid "Sort the group by full path" msgstr "Die Gruppe nach vollem Pfad sortieren" msgid "&Sort by .hgsub" msgstr "Entsprechend .&hgsub sortieren" msgid "Order the subrepos as in .hgsub" msgstr "Die Unterarchive entsprechend der Reihenfolge in .hgsub sortieren" msgid "Select repository directory to add" msgstr "Wählen Sie ein Projektarchiv-Verzeichnis zum Hinzufügen" msgid "Select an existing repository to add as a subrepo" msgstr "" "Wählen Sie ein bestehendes Archiv, welches als Unterarchiv hinzugefügt " "werden soll" msgid "Cannot add subrepository" msgstr "Kann das Unterarchiv nicht hinzufügen" #, python-format msgid "%s is not a valid repository" msgstr "%s ist kein gültiges Projektarchiv" #, python-format msgid "\"%s\" is not a folder" msgstr "\"%s\" ist kein Verzeichnis" msgid "A repository cannot be added as a subrepo of itself" msgstr "Ein Archiv kann nicht als sein eigenes Unterarchiv hinzugefügt werden" #, python-format msgid "" "The selected folder:

                %s

                is not inside the target repository." "

                This may be allowed but is greatly discouraged.
                If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" "Das ausgewählte Verzeichnis:

                %s

                befindet sich nicht innerhalb " "des Zielarchivs.

                Dies ist zulässig, wir raten aber dringend ab." "
                Wenn Sie eine nicht-triviale Unterarchiv-Abbildung hinzufügen möchten, " "müssen Sie manuell die .hgsub-Datei bearbeiten." msgid "Cannot open repository" msgstr "Kann das Archiv nicht öffnen" #, python-format msgid "The selected repository:

                %s

                cannot be open!" msgstr "Das ausgewählte Archiv:

                %s

                kann nicht geöffnet werden." msgid "Subrepository already exists" msgstr "Ein solches Unterarchiv existiert bereits" #, python-format msgid "" "The selected repository:

                %s

                is already a subrepository of:" "

                %s

                as: \"%s\"" msgstr "" "Das ausgewählte Archiv:

                %s

                ist bereits ein Unterarchiv von: " "

                %s

                unter dem Namen: \"%s\"" msgid "Failed to add subrepository" msgstr "Hinzufügen des Unterarchivs gescheitert" #, python-format msgid "Cannot open the .hgsub file in:

                %s" msgstr "Kann die .hgsub-Datei hier nicht öffnen:

                %s" msgid "Failed to add repository" msgstr "Das Projektarchiv konnte nicht hinzugefügt werden" #, python-format msgid "The .hgsub file already contains the line:

                %s" msgstr "Die .hgsub-Datei enthält bereits die Zeile:

                %s" msgid "Subrepo added to .hgsub file" msgstr "Unterarchiv zur .hgsub-Datei hinzugefügt" #, python-format msgid "" "The selected subrepo:

                %s

                has been added to the .hgsub " "file of the repository:

                %s

                Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" "Das ausgewählte Unterarchiv:

                %s

                wurde zur " "Projektverwaltungsdatei .hgsub hinzugefügt:

                %s

                Zur " "Erinnerung: Zum Abschluss des Prozesses müssen Sie noch die " "Änderungen in der .hgsub-Datei übernehmen, um das Hinzufügen " "zu bestätigen." #, python-format msgid "Cannot update the .hgsub file in:

                %s" msgstr "Kann die .hgsub-Datei hier nicht aktualisieren:

                %s" msgid "Could not open .hgsub file" msgstr "Konnte die Datei .hgsub nicht öffnen" msgid "Cannot read the .hgsub file.

                Subrepository removal failed." msgstr "" "Konnte die Datei .hgsub nicht öffnen.

                Löschen des Unterarchivs " "gescheitert." msgid "Subrepository not found" msgstr "Unterarchiv nicht gefunden." msgid "" "The selected subrepository was not found on the .hgsub file.

                Perhaps it " "has already been removed?" msgstr "" "Das ausgewählte Unterachiv wurde nicht in der .hgsub-Datei gefunden.

                Wurde es eventuell bereits entfernt?" msgid "&Yes" msgstr "&Ja" msgid "&No" msgstr "&Nein" msgid "Remove the selected repository?" msgstr "Das ausgewählte Archiv löschen?" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" "Wollen Sie wirklich das Projektarchiv \"%s\" aus seinem Überarchiv " "\"%s\" löschen" msgid "Subrepository removed from .hgsub" msgstr "Unterarchiv aus .hgsub entfernt" msgid "" "The selected subrepository has been removed from the .hgsub file.

                Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" "Das ausgewählte Unterarchiv wurde von der .hgsub-Datei entfernt.

                Beachten " "Sie, dass Sie die Änderung an der Datei .hgsub übernehmen müssen, um die " "Entfernung des Unterarchivs abzuschließen." msgid "Could not update .hgsub file" msgstr "Konnte die Datei .hgsub nicht aktualisieren" msgid "Cannot update the .hgsub file.

                Subrepository removal failed." msgstr "" "Konnte die Datei .hgsub nicht aktualisieren.

                Löschen des Unterarchivs " "gescheitert." #, python-format msgid "Unsupported repository type (%s)" msgstr "Der Archivtyp (%s) wird nicht unterstützt" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "" "Kann Archive oder Unterarchive, die nicht zu Mercurial gehören, nicht öffnen" msgid "New Group" msgstr "Neue Gruppe" msgid "Confirm Delete" msgstr "Entfernen bestätigen" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "Die Gruppe '%s' mit allen Einträgen entfernen?" msgid "Could not get subrepository list" msgstr "Konnte die Unterarchiv-Liste nicht ermitteln" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

                %s" msgstr "" "Es war nicht möglich, die Unterarchiv-Liste vom Archiv hier zu besorgen:" "

                %s" msgid "Could not open some subrepositories" msgstr "Konnte einige Unterarchive nicht öffnen" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

                %s

                The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

                %s" msgstr "" "Es war nicht möglich, die Unterarchivliste für das Archiv hier zu laden:" "

                %s

                Die folgenden Unterarchive fehlen eventuell, sind " "defekt oder in einem inkonsistenten Zustand und auf sie kann nicht " "zugegriffen werden:

                %s" msgid "Updating repository registry" msgstr "Aktualisiere Archivregistrierung" #, python-format msgid "Loading repository %s" msgstr "Lade Archiv %s" msgid "Repository Registry updated" msgstr "Archivregistrierung aktualisiert" msgid "Close tab" msgstr "Reiter schließen" msgid "Close other tabs" msgstr "Die anderen Reiter schließen" msgid "Undo close tab" msgstr "Reiter wieder öffnen" msgid "Reopen last closed tab" msgstr "Den letzten geschlossenen Reiter wieder öffnen" msgid "Undo close other tabs" msgstr "Andere Reiter wieder öffnen" msgid "Reopen last closed tab group" msgstr "Die letzte geschlossene Reitergruppe wieder öffnen" msgid "Failed to open repository" msgstr "Das Projektarchiv konnte nicht geöffnet werden" msgid "&Sort" msgstr "&Sortieren" #, python-format msgid "Local Repository %s" msgstr "Lokales Projektarchiv %s" #, python-format msgid "" "An exception happened while loading the subrepos of:

                \"%s\"

                " msgstr "" "Eine Ausnahmesituation ist aufgetreten beim Laden des Unterarchivs von:" "

                \"%s\"

                " #, python-format msgid "The exception error message was:

                %s

                " msgstr "Der Fehler-Kommentar lautete :

                %s

                " msgid "Click OK to continue or Abort to exit." msgstr "Wählen Sie OK zum Fortfahren oder Abort zum Beenden." msgid "Error loading subrepos" msgstr "Fehler beim Laden der Unterarchive" msgid "Unable to update repository name" msgstr "Kann den Archivnamen nicht ändern" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "Ein Fehler ist aufgetreten beim Ändern der hgrc-Datei des Archivs (%s)" msgid "default" msgstr "Standard" msgid "C&hoose Log Columns..." msgstr "Protokoll&spalten wählen..." msgid "&Resize Columns" msgstr "&Spaltengröße anpassen" #, python-format msgid "Goto ancestor of %s and %s" msgstr "Zum gemeinsamen Vorgänger von %s und %s wechseln" #, python-format msgid "Can't find revision '%s'" msgstr "Revision '%s' kann nicht gefunden werden" msgid "Drag to change order" msgstr "Zu Änderung der Reihenfolge ziehen" msgid "Workbench Log Columns" msgstr "Spalten des Werkbank-Protokolls" msgctxt "tab tooltip" msgid "Revision details" msgstr "Einzelheiten zur Revision" msgctxt "tab tooltip" msgid "Commit" msgstr "Übernehmen" msgctxt "tab tooltip" msgid "Search" msgstr "Suchen" msgctxt "tab tooltip" msgid "Console log" msgstr "Konsolenprotokoll" msgctxt "tab tooltip" msgid "Synchronize" msgstr "Abgleichen" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "Patch-Zweig" #, python-format msgid "%s " msgstr "%s " #, python-format msgid "Found %d incoming changesets" msgstr "%d eingehende Änderungssätze gefunden" msgid "Pull" msgstr "Abrufen" msgid "Pull incoming changesets into your repository" msgstr "Eingehende Änderungssätze in Ihr Projektarchiv abrufen" msgid "Reject incoming changesets" msgstr "Eingehende Änderungssätze verwerfen" #, python-format msgid "Push current branch (%s)" msgstr "Aktuellen Zweig (%s) übertragen" #, python-format msgid "Push up to current revision (#%d)" msgstr "Bis zur aktuellen Revision (#%d) übertragen" #, python-format msgid "Push up to revision #%d" msgstr "Bis zur Revision #%d übertragen" msgid "Push all" msgstr "Alle übertragen" msgid "no outgoing changesets" msgstr "Keine ausgehenden Änderungssätze" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "Keine ausgehenden Änderungssätze im aktuellen Zweig (%s) / %d gesamt" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "" "Keine ausgehenden Änderungssätze bis zur aktuellen Revision (#%d) / %d gesamt" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "Keine ausgehenden Änderungssätze bis Revision #%d / %d gesamt" #, python-format msgid "%d outgoing changesets" msgstr "%d ausgehende Änderungssätze" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "%d ausgehende Änderungssätze im aktuellen Zweig (%s) / %d gesamt" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "" "%d ausgehende Änderungssätze bis zur aktuellen Revision (#%d) / %d gesamt" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "%d ausgehende Änderungssätze bis Revision #%d / %d gesamt" msgid "Nothing to push" msgstr "Nichts zu übertragn" msgid "No revision found" msgstr "" #, python-format msgid "%s - verify repository" msgstr "%s - Projektarchiv prüfen" #, python-format msgid "%s - recover repository" msgstr "%s - Projektarchiv retten" msgid "No transaction available" msgstr "Keine Transaktion verfügbar" msgid "There is no rollback transaction available" msgstr "Eine Rückrolltransaktion ist nicht verfügbar" msgid "Undo last commit?" msgstr "Letzte Übernahme zurücknehmen?" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "" "Jüngste Übernahme (%d) zurücknehmen unter Beibehaltung der Dateiänderungen?" msgid "Undo last transaction?" msgstr "Letzte Transaktion zurücknehmen?" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "Zur Revision %d zurückrollen (%s zurücknehmen)?" msgid "Unable to determine working copy revision\n" msgstr "Die Revision der Arbeitskopie konnte nicht bestimmt werden\n" msgid "Remove current working revision?" msgstr "Aktuelle Revision entfernen?" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" "Ihre aktuelle Arbeitsrevision (%d) wird durch dieses Rückrollen entfernt, " "wobei nicht übernommene Änderungen zurückbleiben.\n" "Fortsetzen?" msgid "Tab cannot exit" msgstr "" msgid "Pus&h" msgstr "Ü&bertragen" msgid "Push to &Here" msgstr "&Hierhin übertragen" msgid "Push Selected &Branch" msgstr "Ausgewählten &Zweig übertragen" msgid "Push &All" msgstr "&Alle Übertragen" msgid "&Update..." msgstr "&Aktualisieren..." msgid "Bro&wse at Revision" msgstr "&Betrachten in Revision" msgid "&Merge with Local..." msgstr "Mit &lokaler Version verschmelzen..." msgid "&Tag..." msgstr "&Etikettieren..." msgid "Boo&kmark..." msgstr "&Lesezeichen erstellen..." msgid "Top&ic..." msgstr "" msgid "Sig&n..." msgstr "Sig&nieren..." msgid "&Backout..." msgstr "&Rücksetzen..." msgid "Revert &All Files..." msgstr "&Alle Dateien rücksetzen" msgid "Copy &Hash" msgstr "&Hash kopieren" msgid "E&xport" msgstr "E&xportieren" msgid "E&xport Patch..." msgstr "Als &Patch exportieren..." msgid "&Email Patch..." msgstr "Patch als &E-Mail verschicken..." msgid "&Archive..." msgstr "&Archivieren..." msgid "&Bundle Rev and Descendants..." msgstr "Revision und Nachfolger &bündeln..." msgid "Change &Phase to" msgstr "&Phase ändern in" msgid "&Graft to Local..." msgstr "In lokale Version &transplantieren..." msgid "Modi&fy History" msgstr "Historie ä&ndern" msgid "&Unapply Patch" msgstr "Patch &rückwärts anwenden" msgid "Import to &MQ" msgstr "In &MQ importieren" msgid "MQ &Options" msgstr "MQ-&Optionen" msgid "&Rebase..." msgstr "&Verschieben..." msgid "&Prune..." msgstr "&Kürzen..." msgid "&Strip..." msgstr "Be&reinigen..." msgid "Post to Re&view Board..." msgstr "Auf &Review-Board veröffentlichen..." msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "&Entferntes Archiv aktualisieren..." msgid "Write diff file" msgstr "Diff-Datei schreiben" msgid "Unable to write diff file" msgstr "Kann die Diff-Datei nicht schreiben" msgid "Unable to compress history" msgstr "Die Historie konnte nicht komprimiert werden" msgid "Selected changeset pair not related" msgstr "" "Die beiden ausgewählten Änderungssätze stehen in keiner Beziehung zueinander" msgid "Visual Diff..." msgstr "Grafisches Diff..." msgid "Export Diff..." msgstr "Diff exportieren..." msgid "Export Selected..." msgstr "Ausgewählte exportieren..." msgid "Email Selected..." msgstr "Ausgewählte per E-Mail verschicken..." msgid "Copy Selected as Patch" msgstr "Auswahl als Patch kopieren" msgid "Archive DAG Range..." msgstr "" msgid "Export DAG Range..." msgstr "Bereich des Verlauf-DAGs exportieren..." msgid "Email DAG Range..." msgstr "Bereich des Verlauf-DAGs per E-Mail verschicken..." msgid "Bundle DAG Range..." msgstr "Baumbereich bündeln..." msgid "Bisect - Good, Bad..." msgstr "Aufspüren - Gut und Böse..." msgid "Bisect - Bad, Good..." msgstr "Aufspüren - Böse und Gut..." msgid "Compress History..." msgstr "Historie zusammenfassen..." msgid "Rebase..." msgstr "Basisverschiebung..." msgid "Goto common ancestor" msgstr "Zum gemeinsamen Vorfahren wechseln" msgid "Graft Selected to local..." msgstr "Transplantation nach lokal ausgewählt..." msgid "&Prune Selected..." msgstr "Auswahl &Kürzen..." msgid "Post Selected to Review Board..." msgstr "Auswahl auf Review-Board veröffentlichen..." msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "Patch anwenden" msgid "Apply onto original parent" msgstr "Auf ursprünglichen Vorgänger anwenden" msgid "Apply only this patch" msgstr "Nur diesen Patch anwenden" msgid "Fold patches..." msgstr "Patches aneinanderkleben..." msgid "Delete patches..." msgstr "Patches löschen..." msgid "Rename patch..." msgstr "Patch umbenennen..." msgid "Pull to here..." msgstr "Hierher abrufen..." msgid "Visual diff..." msgstr "Grafisches Diff..." msgid "Export patch" msgstr "Patch exportieren" msgid "Patch Files (*.patch)" msgstr "Patch-Dateien (*.patch)" msgid "Cannot export revision" msgstr "Kann die Revision nicht exportieren" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" "Kann die Revision %s nicht in die folgende Datei exportieren:\n" "\n" "%s\n" msgid "There is already an existing folder with that same name." msgstr "Es gibt bereits einen ein Verzeichnis mit genau diesem Namen." msgid "Replace" msgstr "Ersetzen" msgid "Append" msgstr "Anfügen" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" "Es gibt bereits Patch-Dateien für %d Revisionen (%s) an der ausgewählten " "Stelle (%s).\n" "\n" msgid "What do you want to do?\n" msgstr "Was möchten Sie machen?\n" msgid "Replace the existing patch files.\n" msgstr "Die vorhandenen Patch-Dateien ersetzen.\n" msgid "Append the changes to the existing patch files.\n" msgstr "Die Änderungen an die vorhandenen Patch-Dateien anhängen.\n" msgid "Abort the export operation.\n" msgstr "Den Exportvorgang abbrechen.\n" msgid "Patch files already exist" msgstr "Es gibt bereits Patch-Dateien" msgid "Patch exported" msgstr "Der Patch wurde exportiert" #, python-format msgid "" "Revision #%d (%s) was exported to:

                %s%s%s" msgstr "" "Revision #%d (%s) wurde exportiert in:

                %s%s%s" msgid "Patches exported" msgstr "Die Patches wurden exportiert" #, python-format msgid "%d patches were exported to:

                %s" msgstr "%d Patches wurden exportiert in:

                %s" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

                Are you sure you want to use revert?

                (use " "update to checkout another revision)" msgstr "" "Durch das Wiederherstellen aller Dateien werden zwischenzeitliche Änderungen " "verworfen und die betroffenen Dateien als modifiziert gekennzeichnet." "

                Sind Sie sicher, dass Sie sie wiederherstellen wollen?" "

                (Verwenden Sie Aktualisieren, um eine andere Revision abzurufen.)" msgid "Filter b&y" msgstr "&Filtern nach" msgid "&Ancestors and Descendants" msgstr "&Vorgänger und Nachfolger" msgid "A&uthor" msgstr "A&utor" msgid "&Branch" msgstr "&Zweig" msgid "&More Options..." msgstr "Mehr &Einstellungen..." msgid "Unable to merge" msgstr "Das Zusammenführen hat nicht funktioniert" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "Sie können eine Revision nicht mit sich selbst verschmelzen" msgid "Unable to backout" msgstr "Rücksetzen nicht möglich" msgid "Write bundle" msgstr "Bündel schreiben" msgid "Backwards phase change requested" msgstr "Rückwärtige Phasenänderung angefordert" msgid "Do you really want to make this revision secret?" msgstr "Wollen Sie wirklich diese Revision als geheim kennzeichnen?" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" "Eine Revision als geheim zu kennzeichnen ist im Allgemeinen eine " "sichere Maßnahme.\n" "\n" "Es gibt jedoch einige Punkte, die es zu bedenken gilt:\n" "\n" "- \"geheime\" Revisionen werden nicht übertragen. Dies kann Ihnen Schmerzen " "verursachen, wenn Sie sich auf ein \"geheimes\" Unterarchiv beziehen.\n" "\n" "- Wenn Sie diese Revision von einem nicht publizierenden Server abgerufen " "haben, kann die Revision wieder als Entwurf gekennzeichnet werden, " "wenn Sie erneut von diesem spezifischen Server abrufen.\n" "\n" "Seien Sie bitte vorsichtig. Immer." msgid "&Make secret" msgstr "Als &geheim kennzeichnen" msgid "&Cancel" msgstr "&Abbrechen" msgid "Do you really want to force a backwards phase transition?" msgstr "Wollen Sie wirklich eine rückwärtige Phasenänderung erzwingen?" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" "Sie versuchen, die Phase der Revision %d rückwärts zu verschieben,\n" "von \"%s\" zu \"%s\".\n" "\n" "Achtung, \"%s\" ist auf niedrigerem Phasenniveau als \"%s" "\".\n" "\n" "Wir raten davon ab, eine Phase rückwärts zu verschieben.\n" "Es kann beispielsweise dazu führen, dass Sie mehrere Kopfrevisionen\n" "bekommen, falls Sie eine Revision ändern, die Sie bereits auf einen Server\n" "übertragen haben.\n" "\n" "Sein Sie bitte vorsichtig!" msgid "&Force" msgstr "&Erzwingen" msgid "Cannot import selected revision" msgstr "Kann die ausgewählte Revision nicht importieren" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" "Die ausgewählte Revision (#%d) kann nicht importiert werden, da Sie nicht " "von dem qparent (#%d) abstammt" msgid "Invalid command" msgstr "Ungültige Anweisung" msgid "The selected command is empty" msgstr "Die ausgewählte Anweisung ist leer" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" "Die folgende Fehlermeldung wurde zurückgegeben:\n" "\n" "%s" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" "\n" "\n" "Bitte stellen Sie sicher, dass \"thg\" ein gültiger Befehl ist." msgid "Failed to execute custom TortoiseHg command" msgstr "Fehler beim Versuch, einen angepassten TortoiseHg-Befehl auszuführen" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "Der Befehl \"%s\" ist gescheitert (Schlüssel %d)." msgid "Failed to execute custom command" msgstr "Die Ausführung des benutzerdefinierten Befehls ist fehlgeschlagen" #, python-format msgid "The command \"%s\" could not be executed." msgstr "Der Befehl \"%s\" konnte nicht ausgeführt werden." #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" "Die nachgenannte Fehlermeldung würde zurückgegeben:\n" "\n" "\"%s\"\n" "\n" "Bitte stellen Sie sicher, dass der Befehlspfad korrekt ist und es sich um " "eine gültige Anwendung handelt" msgid "&Edit Toolbar" msgstr "Symbolleiste &bearbeiten" msgid "&Refresh" msgstr "&Aktualisieren" msgid "&Filter Toolbar" msgstr "&Filter-Symbolleiste" #, python-format msgid "TortoiseHg: %s" msgstr "" msgid "S&tatus Bar" msgstr "" #, python-format msgid "Resolve Conflicts - %s" msgstr "Konflikte auflösen - %s" msgid "Local revision information" msgstr "Lokale Revisionsinformationen" msgid "Other revision information" msgstr "Andere Revisionsinformationen" msgid "Unresolved conflicts" msgstr "Nicht aufgelöste Konflike" msgid "Mercurial Re&solve" msgstr "Mercurial-&Konflikt auflösen" msgid "Attempt automatic (trivial) merge" msgstr "Automatisches Zusammenführen versuchen (nur triviale Fälle)" msgid "Tool &Resolve" msgstr "&Auflösen-Werkzeug" msgid "Merge using selected merge tool" msgstr "Zusammenführen unter Einsatz des ausgewählten Werkzeugs" msgid "&Take Local" msgstr "&Lokale Version auswählen" msgid "Accept the local file version (yours)" msgstr "Die lokale Dateiversion mit Ihren Änderungen übernehmen" msgid "Take &Other" msgstr "&Andere Version auswählen" msgid "Accept the other file version (theirs)" msgstr "Die andere Dateiversion mit ihren jeweiligen Änderungen übernehmen" msgid "&Mark as Resolved" msgstr "Als a&ufgelöst kennzeichnen" msgid "Mark this file as resolved" msgstr "Datei als aufgelöst kennzeichnen" msgid "Diff &Local to Ancestor" msgstr "&Lokale Version gegen Vorgänger diffen" msgid "&Diff Other to Ancestor" msgstr "&Andere Version gegen Vorgänger diffen" msgid "Resolved conflicts" msgstr "aufgelöste Konflikte" msgid "&Edit File" msgstr "Datei &bearbeiten" msgid "Edit resolved file" msgstr "Datei nach Konfliktauflösung bearbeiten" msgid "3-&Way Diff" msgstr "&Drei-Wege-Diff" msgid "Visual three-way diff" msgstr "Grafisches Drei-Wege-Diff" msgid "Visual diff between resolved file and first parent" msgstr "" "Grafisches Diff zwischen der ermittelten Datei und ihrem unmittelbaren " "Vorgänger" msgid "&Diff to Other" msgstr "Mit anderer Version &Diffen" msgid "Visual diff between resolved file and second parent" msgstr "Grafisches Diff zwischen der ermittelten Datei und ihrem Vorvorgänger" msgid "Mark as &Unresolved" msgstr "Als &nicht aufgelöst kennzeichnen" msgid "Mark this file as unresolved" msgstr "Datei als nicht aufgelöst kennzeichnen" msgid "Detected merge/diff tools:" msgstr "Erkannte Zusammenführungs-/Diff-Werkzeuge:" msgid "Command output" msgstr "Ausgabe des Befehls" msgid "Unable to show subrepository files" msgstr "Die Dateien des Unterarchivs können nicht angezeigt werden" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" "Interaktive Diffs werden für Dateien in Unterarchiven nicht unterstützt. " "Diese werden nicht angezeigt." msgid "There are merge conflicts to be resolved" msgstr "Es gibt aufzulösende Zusammenführungskonflikte" msgid "All conflicts are resolved." msgstr "Alle Konflikte wurden aufgelöst." msgid "There are no conflicting file merges." msgstr "Es gibt keine Zusammenführungen mit Konflikten." msgid "Exit without finishing resolve?" msgstr "Beenden ohne die Konfliktauflösung abzuschließen?" msgid "Unresolved conflicts remain. Are you sure?" msgstr "Es gibt noch unaufgelöste Konflikte. Sind Sie sicher?" msgid "E&xit" msgstr "&Beenden" msgid "Ext" msgstr "Extern" msgid "Repository" msgstr "Projektarchiv" msgid "" msgstr "" msgid "File List Toolbar" msgstr "Dateilisten-Werkzeugleiste" msgid "Ma&nifest Mode" msgstr "Ma&nifest-Modus" msgid "Show all version-controlled files in tree view" msgstr "Alle Dateien unter Versionskontrolle in der Baumansicht anzeigen" msgid "&Flat List" msgstr "&flache Liste" msgid "### filter text ###" msgstr "### Filtertext ###" msgid "Changed by &This Commit" msgstr "Durch &diese Übernahme geändert" msgid "Show files changed by this commit" msgstr "Zeigt Dateien, die von dieser Übernahme geändert wurden" msgid "Compare to &1st Parent" msgstr "Mit dem ersten Vorgänger vergleichen" msgid "Compare to &2nd Parent" msgstr "Mit dem zweiten Vorgänger vergleichen" msgid "Toggle parent to be used as the base revision" msgstr "Vorgänger für die Basisrevision umschalten" msgid "List Optio&ns" msgstr "Optionen auf&listen" #, python-format msgid "%s - Revision Details (%s)" msgstr "%s - Revisionsdetails (%s)" #, python-format msgid "Revert - %s" msgstr "Wiederherstellen - %s" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "

                %s zu seinem Inhalt in der folgenden Revision zurückdrehen?

                " #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "" "

                %d Dateien zu ihrem Inhalt in der folgenden Revision zurückdrehen?

                " msgid "Revert all files to this revision" msgstr "Alle Dateien in dieser Revision wiederherstellen" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "Erster Vorgänger von Revision %d (also Revision %d)" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "Zweiter Vorgänger von Revision %d (also Revision %d)" msgid "null revision (i.e. remove file(s))" msgstr "Nullrevision (das heißt, Datei(en) gelöscht)" msgid "Changeset:" msgstr "Änderungssatz:" msgid "Child:" msgstr "Kind:" msgid "Predecessors:" msgstr "" msgid "Successors:" msgstr "Spätere Änderungslisten:" msgid "Head is closed!" msgstr "Die Kopfrevision ist abgeschlossen!" msgid "Changesets where username contains string." msgstr "Änderungssätze, bei denen der Autor einen bestimmten Text enthält." msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" "Versionsmeldung, Benutzername und Namen geänderter Dateien nach einem Text " "durchsuchen." msgid "Like \"keyword(string)\" but accepts a regex." msgstr "" "Entsprechend \"keyword(zeichenkette)\", aber lässt reguläre Ausdrücke zu." msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" "Einige Änderungssätze wurde weder im angegebenen Zielarchiv noch im Standard-" "Übertragungsziel gefunden." msgid "The named bookmark or all bookmarks." msgstr "Das bezeichnete Lesezeichen oder alle Lesezeichen." msgid "The named tag or all tags." msgstr "Das beschriftete Etikett oder alle Etiketten." msgid "Changeset is tagged." msgstr "Der Änderungssatz ist etikettiert." msgid "Changeset is a named branch head." msgstr "Der Änderungssatz ist Kopf eines benannten Zweigs." msgid "Changeset is a merge changeset." msgstr "Der Änderungssatz dient zum Zusammenführen." msgid "Changeset is closed." msgstr "Der Änderungssatz ist geschlossen." msgid "" "Changesets within the interval, see help dates" msgstr "" msgid "Greatest common ancestor of the two changesets." msgstr "Der größte gemeinsame Vorfahre zweier Änderungssätze" msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" "Finde Revisionen, die zu mindestens einem Feld der angegebenen Revisionen " "passen." msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" msgid "Changesets which modify files matched by pattern." msgstr "" "Änderungssätze, die von einem Dateinamens-Suchmuster gefundene Dateien " "verändern." msgid "Changesets which add files matched by pattern." msgstr "" "Änderungssätze, die von einem Dateinamens-Suchmuster gefundene Dateien " "hinzufügen." msgid "Changesets which remove files matched by pattern." msgstr "" "Änderungssätze, die von einem Dateinamens-Suchmuster gefundene Dateien " "entfernen." msgid "Changesets containing files matched by pattern." msgstr "" "Änderungssätze, die von einem Dateinamens-Suchmuster gefundene Dateien " "enthalten." msgid "All changesets belonging to the branches of changesets in set." msgstr "" "Alle Änderungssätze, die zu dem Zweig von Änderungssätzen in der Auswahl " "gehören." msgid "Members of a set with no children in set." msgstr "Elemente einer Menge ohne Kinder in der Menge." msgid "Changesets which are descendants of changesets in set." msgstr "Änderungssätze, die von Änderungssätzen in der Auswahl abstammen." msgid "Changesets that are ancestors of a changeset in set." msgstr "Änderungssätze, die Vorgänger von Änderungssätzen in der Auswahl sind." msgid "Child changesets of changesets in set." msgstr "Kind-Änderungssätze von Änderungssätzen in der Auswahl." msgid "The set of all parents for all changesets in set." msgstr "" "Die Menge aller direkten Vorgänger-Änderungssätze der ausgewählten " "Änderungssätze." msgid "First parent for all changesets in set, or the working directory." msgstr "" "Der direkte Vorgänger aller ausgewählten Änderungssätze, oder das " "Arbeitsverzeichnis." msgid "Second parent for all changesets in set, or the working directory." msgstr "" "Der Vorvorgänger aller ausgewählten Änderungssätze, oder das " "Arbeitsverzeichnis." msgid "Changesets with no parent changeset in set." msgstr "Änderungssatz ohne Vorgänger-Änderungssatz in der Menge." msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" "Die leere Megen, falls irgendeine Revision in der Menge nicht gefunden wird; " "ansonsten alle Revisionen in der Menge." msgid "Changeset with lowest revision number in set." msgstr "Der Änderungssatz mit der niedrigsten Revisionsnummer in der Auswahl." msgid "Changeset with highest revision number in set." msgstr "Der Änderungssatz mit der höchsten Revisionsnummer in der Auswahl." msgid "First n members of a set." msgstr "Die ersten n Elemente einer Menge." msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" "Menge nach Schlüsseln sortieren. Die Standardsortierrichtung ist " "aufsteigend, geben Sie einen Schlüssel als \"-schluessel\" an, um nach ihm " "absteigend zu sortieren." msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "" "Ein Alias für \"::.\" (Vorgänger des ersten Vorgängers der Arbeitskopie)." msgid "All changesets, the same as 0:tip." msgstr "Alle Änderungssätze, entspricht 0:tip." msgid "Revision Set Query" msgstr "Anfrage auf der Revisionsmenge" msgid "all revisions converted from subversion" msgstr "Alle Revisionen, die aus Subversion übernommen wurden" msgid "changeset which represents converted svn revision" msgstr "Änderungssätze, die der übernommenen Subversion-Revision entsprechen" msgid "Common sets" msgstr "Gemeinsame Mengen" msgid "File pattern sets" msgstr "Dateimustermengen" msgid "Set Ancestry" msgstr "Mengenvorgängerschaft" msgid "Set Logic" msgstr "Mengenlogik" msgid "" "help " "revsets" msgstr "" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" "\n" "Unterbrechungsanforderung gefangen, Abbruch.\n" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "Ausführen des GUI-Prozesses fehlgeschlagen: %s\n" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "kann Datei \"%s\" nicht lesen. Ignoriert.\n" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" "thg: Anweisung '%s' ist mehrdeutig:\n" " %s\n" #, python-format msgid "thg: unknown command '%s'\n" msgstr "thg: unbekannte Anweisung '%s'\n" #, python-format msgid "thg %s: %s\n" msgstr "thg %s: %s\n" #, python-format msgid "thg: %s\n" msgstr "thg: %s\n" #, python-format msgid "abort: %s!\n" msgstr "abgebrochen: %s!\n" #, python-format msgid "abort: %s\n" msgstr "Abbruch: %s\n" #, python-format msgid "(%s)\n" msgstr "(%s)\n" msgid "option --config may not be abbreviated!" msgstr "Die Option --config kann nicht abgekürzt werden!" msgid "invalid arguments" msgstr "ungültige Argumente" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "Nicht bekanntes Profilerformat '%s' ignoriert\n" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" "lsprof nicht verfügbar - Installieren Sie es von http://codespeak.net/svn/" "user/arigo/hack/misc/lsprof/" msgid "repository root directory or symbolic path name" msgstr "Wurzelverzeichnis des Projektarchivs bzw. symbolischer Link darauf" msgid "enable additional output" msgstr "Ausgabe weiterer Informationen" msgid "suppress output" msgstr "Ausgabe unterdrücken" msgid "display help and exit" msgstr "Nur den Hilfetext anzeigen" msgid "set/override config option (use 'section.name=value')" msgstr "" "Ändern/Übersteuern der Konfigurationsoption (verwende 'Abschnitt." "Schlüssel=Wert')" msgid "enable debugging output" msgstr "Ausgabedebugging aktivieren" msgid "start debugger" msgstr "Startet den Debugger" msgid "print command execution profile" msgstr "Befehlsausführungsprofil drucken" msgid "do not fork GUI process" msgstr "Grafische Dialoge im Vordergrund starten" msgid "always fork GUI process" msgstr "Grafische Dialoge immer im Hintergrund starten" msgid "read file list from file" msgstr "Dateiliste aus Datei lesen" msgid "read file list from file encoding utf-8" msgstr "Dateiliste mit Kodierung UTF-8 einlesen" msgid "thg about" msgstr "thg about" msgid "thg add [FILE]..." msgstr "thg add [Datei]..." msgid "revision to annotate" msgstr "Version zum Kommentieren anzeigen" msgid "open to line" msgstr "Öffnen in Zeile" msgid "initial search pattern" msgstr "Anfängliches Suchmuster" msgid "thg annotate" msgstr "thg annotate" #, python-format msgid "invalid line number: %s" msgstr "ungültige Zeilennummer: %s" msgid "revision to archive" msgstr "Zu archivierende Revision" msgid "thg archive" msgstr "thg archive" msgid "merge with old dirstate parent after backout" msgstr "Führt mit Vorgänger im Status vor Rücknahme zusammen" msgid "parent to choose when backing out merge" msgstr "Auszuwählender Vorgänger beim Zurückrollen der Zusammenführung" msgid "revision to backout" msgstr "Rückzusetzende Revision" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "thg backout [Parameter]... [[-r] Revision]" msgid "thg bisect" msgstr "TortoiseHg-Aufspüren" msgid "revision" msgstr "Revision" msgid "thg bookmarks [-r REV] [NAME]" msgstr "thg bookmarks [-r Revision] [Name]" msgid "only one new bookmark name allowed" msgstr "Nur ein neuer Lesezeichen-Name zulässig" msgid "the clone will include an empty working copy (only a repository)" msgstr "Der Klon wird eine leere Arbeitskopie beinhalten (nur ein Archiv)" msgid "revision, tag or branch to check out" msgstr "" "Die abzurufende Revision, das abzurufende Etikett oder der abzurufende Zweig" msgid "include the specified changeset" msgstr "Den angegebenen Änderungssatz einschließen" msgid "clone only the specified branch" msgstr "Nur den ausgewählten Zweig klonen" msgid "use pull protocol to copy metadata" msgstr "Die Metadaten mit dem Abruf-Protokoll kopieren" msgid "use uncompressed transfer (fast over LAN)" msgstr "unkomprimierten Transfer verwenden (im LAN schneller)" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "thg clone [Option]... [Quelle] [Ziel]" msgid "record user as committer" msgstr "Benutzer als Autor verzeichnen" msgid "record datecode as commit date" msgstr "Datumsangabe als Übernahmedatum verzeichnen" msgid "thg commit [OPTIONS] [FILE]..." msgstr "thg commit [Parameter] [Datei]..." msgid "thg debugblockmatcher" msgstr "thg debugblockmatcher" msgid "thg debugbugreport [TEXT]" msgstr "thg debugbugreport [Text]" msgid "thg debugconsole" msgstr "thg debugconsole" msgid "thg debuglighthg" msgstr "thg debuglighthg" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "thg debugruncommand -- Befehl [Argument]..." msgid "no command specified" msgstr "Kein Befehl angegeben" msgid "thg drag_copy SOURCE... DEST" msgstr "thg drag_copy Quelle... Ziel" msgid "thg drag_move SOURCE... DEST" msgstr "thg drag_move Quelle... Ziel" msgid "a revision to send" msgstr "Eine zu sendende Revision" msgid "thg email [REVS]" msgstr "thg email [Revisionen]" msgid "use only one form to specify the revision" msgstr "Verwenden Sie genau eine Form, um die Revision anzugeben" msgid "select the specified revision" msgstr "Die angegebene Revision auswählen" msgid "side-by-side comparison of revisions" msgstr "Revisionen Seite-an-Seite vergleichen" msgid "thg filelog [OPTION]... FILE" msgstr "thg filelog [Option]... Datei" msgid "requires a single filename" msgstr "erfordert einen einzelnen Dateinamen" msgid "thg forget [FILE]..." msgstr "thg forget [Datei]..." msgid "revisions to graft" msgstr "Zu transplantierende Revisionen" msgid "thg graft [-r] REV..." msgstr "thg graft [-r] Revision..." msgid "You must provide revisions to graft" msgstr "Zum Transplantieren müssen Sie Revisionen angeben" msgid "ignore case during search" msgstr "Ohne Berücksichtigung von Groß-/Kleinschreibung suchen" msgid "thg grep" msgstr "thg grep" msgid "thg guess" msgstr "thg guess" msgid "thg help [COMMAND]" msgstr "thg help [COMMAND]" msgid "global options:" msgstr "Übergreifende Einstellungen:" msgid "use \"thg help\" for the full list of commands" msgstr "Benutzen Sie \"thg help\" für eine vollständige Anweisungsliste" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "" "Benutzen Sie \"thg help\" für eine vollständige Anweisungsliste oder \"thg -v" "\" für Detailangaben" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "" "Benutzen Sie \"thg help%s\", um Kurzbezeichnungen und globale Einstellungen " "anzuzeigen" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "Benutzen Sie \"thg -v help %s\", um globale Einstellungen anzuzeigen" msgid "" "list of commands:\n" "\n" msgstr "" "Befehlsliste:\n" "\n" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" "\n" "Aliase: %s\n" msgid "(no help text available)" msgstr "(hier fehlt leider noch der Hilfetext)" msgid "options:\n" msgstr "Einstellungen:\n" msgid "no commands defined\n" msgstr "keine Befehle definiert\n" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "Thg - Die grafischen TortoiseHg-Werkzeuge für das SCM Mercurial (Hg)\n" msgid "" "basic commands:\n" "\n" msgstr "" "Grundlegende Befehle:\n" "\n" #, python-format msgid " (default: %s)" msgstr " (Standard: %s)" msgid "thg hgignore [FILE]" msgstr "thg hgignore [Datei]" msgid "import to the patch queue (MQ)" msgstr "In die Mercurial-Patch-Warteschlange importieren" msgid "thg import [OPTION] [SOURCE]..." msgstr "thg import [Parameter] [Quelle]..." msgid "thg init [DEST]" msgstr "thg init [Ziel]" msgid "thg lock" msgstr "" msgid "search for a given text or revset" msgstr "" msgid "(DEPRECATED)" msgstr "(ÜBERHOLT)" msgid "open a new workbench window" msgstr "Ein neues Werkbank-Fenster öffnen" msgid "thg log [OPTIONS] [FILE]" msgstr "thg log [Parameter] [Datei]" msgid "cannot specify both -k/--query and filenames" msgstr "" msgid "revision to display" msgstr "Die anzuzeigenede Revision" msgid "thg manifest [-r REV] [FILE]" msgstr "thg manifest [-r Revision] [Datei]" msgid "revision to merge" msgstr "Die zusammenzuführende Revision" msgid "thg merge [[-r] REV]" msgstr "thg merge [[-r] Revision]" msgid "Merge revision not specified or not found" msgstr "Version zum Zusammenführen fehlt oder nicht vorhanden" msgid "a revision to post" msgstr "eine Revision zum Abschicken" msgid "thg postreview [-r] REV..." msgstr "thg postreview [-r] Revision..." msgid "reviewboard extension not enabled" msgstr "" #, python-format msgid "see %(url)s" msgstr "" msgid "no revisions specified" msgstr "Keine Revision angegeben" msgid "revisions to prune" msgstr "Zu kürzende Revisionen" msgid "thg prune [-r] REV..." msgstr "thg prune [-r] Revision..." msgid "thg purge" msgstr "TortoiseHg-Bereinigung" msgid "keep original changesets" msgstr "Die ursprünglichen Änderungssätze beibehalten" msgid "keep original branch names" msgstr "Ursprüngliche Zweignamen beibehalten" msgid "rebase from the specified changeset" msgstr "Von den angegebenen Änderungssätzen verschiebenen" msgid "rebase onto the specified changeset" msgstr "Auf den angegebenen Änderungssatz verschieben" msgid "thg rebase -s REV -d REV [--keep]" msgstr "thg rebase -s Revision -d Revision [--keep]" msgid "Rebase already in progress" msgstr "Die Verschiebung läuft bereits" msgid "Resuming rebase already in progress" msgstr "Die Verschiebung wird fortgesetzt" msgid "You must provide source and dest arguments" msgstr "Sie müssen Werte für Quelle und Ziel erfassen" msgid "thg rejects [FILE]" msgstr "thg rejects [Datei]" msgid "You must provide the path to a file" msgstr "Sie müssen das Verzeichnis für die Datei angeben" msgid "thg remove [FILE]..." msgstr "thg remove [Datei]..." msgid "thg rename [SOURCE] [DEST]" msgstr "thg rename [Quelle] [Ziel]" msgid "field to give initial focus" msgstr "Standardfeld für die Eingabemarke" msgid "thg repoconfig" msgstr "thg repoconfig" msgid "thg resolve" msgstr "thg resolve" msgid "the revision to show" msgstr "Die anzuzeigende Revision" msgid "thg revdetails [-r REV]" msgstr "thg revdetails [-r Revision]" msgid "thg revert [FILE]..." msgstr "thg revert [Datei]..." msgid "revision to update" msgstr "Aktualisieren auf Revision" msgid "thg rupdate [[-r] REV]" msgstr "thg rupdate [[-r] Revision]" msgid "name of the hgweb config file (serve more than one repository)" msgstr "" "Name der hgweb-Konfigurationsdatei (um mehr als ein Projektarchiv zu " "betreiben)" msgid "name of the hgweb config file (DEPRECATED)" msgstr "Name der hgweb-Konfigurationsdatei (veraltet)" msgid "thg serve [--web-conf FILE]" msgstr "thg serve [--web-conf Datei]" msgid "thg shellconfig" msgstr "thg shellconfig" msgid "thg shelve" msgstr "thg shelve" msgid "sign even if the sigfile is modified" msgstr "Signieren auch wenn sigfile geändert ist" msgid "make the signature local" msgstr "Die Unterschrift in eine lokale verwandeln" msgid "the key id to sign with" msgstr "Der Schlüssel zum Signieren" msgid "do not commit the sigfile after signing" msgstr "Übernehmen Sie sigfile nicht nach der Signatur" msgid "use as commit message" msgstr "Benutze als Versionsmeldung" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgid "Please enable the Gpg extension first." msgstr "Bitte schalten Sie zunächst die Gpg-Erweiterung an." msgid "show files without changes" msgstr "Datei ohne die Änderungen anzeigen" msgid "show ignored files" msgstr "Ignorierte Dateien anzeigen" msgid "thg status [OPTIONS] [FILE]" msgstr "thg status [Parameter] [Datei]" msgid "discard uncommitted changes (no backup)" msgstr "Nicht übernommene Änderungen (ungesichert) verwerfen" msgid "do not back up stripped revisions" msgstr "Herausgelöste Revisionen nicht sichern" msgid "do not modify working copy during strip" msgstr "Arbeitskopie während der Bereinigung unverändert lassen" msgid "revision to strip" msgstr "Herauszulösende Revision" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "thg strip [-k] [-f] [-n] [[-r] Revision]" msgid "open the bookmark sync window" msgstr "öffne das Lesezeichen Syncronisier-Fenster" msgid "thg sync [OPTION]... [PEER]" msgstr "" msgid "replace existing tag" msgstr "Vorhandenes Etikett ersetzen" msgid "make the tag local" msgstr "Etikett lokal übernehmen" msgid "revision to tag" msgstr "Zu etikettierende Revision" msgid "remove a tag" msgstr "Etikett entfernen" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "thg tag [-f] [-l] [-m Text] [-r Revision] [Name]" msgid "wait until the second ticks over" msgstr "wartet bis die Sekunde wechselt" msgid "notify the shell for paths given" msgstr "Der Shell die angegebenen Verzeichnisse mitgeben" msgid "remove the status cache" msgstr "Zustandscache entfernen" msgid "show the contents of the status cache (no update)" msgstr "Inhalt des Zustandscaches anzeigen (nicht aktualisieren)" msgid "update all repos in current dir" msgstr "Alle Projektverzeichnisse im akutellen Verzeichnis aktualisieren" msgid "thg thgstatus [OPTION]" msgstr "thg thgstatus [Option]" msgid "thg topics [-r REV] [NAME]" msgstr "" msgid "Please enable the Topic extension first." msgstr "" msgid "only one new topic name allowed" msgstr "" msgid "thg update [-C] [[-r] REV]" msgstr "thg update [-C] [[-r] Revision]" msgid "thg userconfig" msgstr "thg userconfig" msgid "changeset to view in diff tool" msgstr "Änderungssatz, der mit dem Diff-Werkzeug angezeigt werden soll" msgid "revisions to view in diff tool" msgstr "Revisionen, die mit dem Diff-Werkzeug angezeigt werden" msgid "bundle file to preview" msgstr "Vorschau für das Bündel" msgid "launch visual diff tool" msgstr "Grafisches Diff-Werkzeug starten" msgid "print license" msgstr "Lizenz anzeigen" msgid "thg version [OPTION]" msgstr "thg version [Parameter]" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "TortoiseHg Dialoge (Version %s). Mercurial (Verision %s)\n" msgid "Location:" msgstr "Ort:" msgid "Update to:" msgstr "Aktualisiere zu:" msgid "Options:" msgstr "Einstellungen:" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "Entfernte Änderungen ungesichert verwerfen (-C/--clean)" msgid "Perform a push before updating (-p/--push)" msgstr "Vor dem Aktualisieren zunächst übertragen (-p/--push)" msgid "Allow pushing new branches (--new-branch)" msgstr "Erlaube, neue Zweige zu übertragen (--new-branch)" msgid "Force push to remote location (-f/--force)" msgstr "Übertragen an den entfernten Ort erzwingen (-f/--force)" msgid "remove working directory" msgstr "Entferntes Arbeitsverzeichnis" msgid "unknown revision!" msgstr "Unbekannte Revision!" #, python-format msgid "Remote Update - %s" msgstr "Entfernte Aktualisierung - %s" msgid "&Update" msgstr "&Aktualisieren" msgid "Log" msgstr "Protokoll" msgid "Repositories" msgstr "Projektarchive" #, python-format msgid "Running at %s" msgstr "Der Web-Server läuft unter %s" msgid "Stopped" msgstr "Angehalten" msgid "TortoiseHg Web Server" msgstr "TortoiseHg Web-Server" msgid "Web Server" msgstr "Web-Server" msgid "Port:" msgstr "Anschluss:" msgid "Status:" msgstr "Zustand:" msgid "Start" msgstr "Starten" msgid "Settings" msgstr "Einstellungen" msgid "" msgstr "" msgid "&True" msgstr "&Wahr" msgid "&False" msgstr "&Falsch" msgid "&Unspecified" msgstr "&Unbekannt" #, python-format msgid "%dpt" msgstr "%dpt" msgid "Bold" msgstr "Fett" msgid "Italic" msgstr "Kursiv" msgid "Strike" msgstr "Durchgestrichen" msgid "Underline" msgstr "Unterstrichen" msgid "&Set..." msgstr "&Setzen..." msgid "&Clear" msgstr "&Löschen" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "Das Laden des Ticketing-Systems '%s' ist fehlgeschlagen: %s. " msgid "&Browse..." msgstr "&Betrachten..." msgid "UI Language" msgstr "Dialog-Sprache" msgid "Specify your preferred user interface language (restart needed)" msgstr "" "Geben Sie die von Ihnen bevorzugte Anzeigesprache an (benötigt " "Anwendungsneustart)." msgid "Three-way Merge Tool" msgstr "Dreiwege-Zusammenführungswerkzeug" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" "Ein grafisches Werkzeug zur Bearbeitung von Zusammenführungskonflikten. " "Geben Sie nichts an, benutzt Mercurial das erste brauchbare Werkzeug, " "welches es auf Ihrem System findet oder ansonsten sein internes " "Zusammenführungswerkzeug, welches die Konfliktanzeiger unverändert lässt. " "Wählen Sie internal:merge, um Konfliktanzeiger zu erzwingen, internal:" "prompt, um grundsätzlich zwischen der eigenen und der fremden Version zu " "wählen und internal:dump, um die jeweiligen Varianten im Arbeitsverzeichnis " "zur manuellen Zusammenführung hinterlegen zu lassen." msgid "Visual Diff Tool" msgstr "Grafisches Diff-Werkzeug" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" "Geben Sie ein grafisches Diff-Werkzeug entsprechend dem Abschnitt [merge-" "tools] in Ihren Mercurial-Konfigurationsdateien ein. Wenn Sie keines " "erfassen, wird TortoiseHg das ausgewählte Zusammenführungswerkzeug " "verwenden. Wenn das nicht funktioniert, ruft es das erste passende Werkzeug " "auf, das es findet." msgid "Visual Editor" msgstr "Grafischer Editor" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" "Geben Sie einen grafischen Editor wie im Abschnitt [editor-tools] Ihrer " "Mercurial-Konfigurationsdateien an. Falls Sie nichts angeben, wird " "TortoiseHg das erstbeste Werkzeug wählen." msgid "CLI Editor" msgstr "CLI Editor" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" "Der von Mercurial Kommandozeilen Befehlen verwendete Editor, um mehrzeilige " "Eingaben vom Benutzer einzulesen. Haupsächlich Übernahme Kommentare." msgid "Shell" msgstr "Shell" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
                Default, Windows: cmd.exe /" "K title %(reponame)s
                Default, OS X: not set
                Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" "Befehl um die bevorzugte Shell Anwendung zu starten. Falls der Befehl die " "Zeichenkette %(reponame)s enthält, wird der name des Projektarchivs an " "Stelle von %(reponame)s eingefügt. Ebenso stellt %(root)s den vollständigen " "Pfad ins Projektarchiv dar. (Neustart erforderlich)
                Standard, Windows: " "cmd.exe /K title %(reponame)s
                Standard, OS X: nicht " "eingestellt
                Standard, andere: xterm -T \"%(reponame)s\"" msgid "Immediate Operations" msgstr "Ohne Nachfrage ausführen" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" "Leerzeichengetrennte Liste von Anweisungen, die unmittelbar und ohne " "Nachfrage ausgeführt werden sollen. Mögliche Anweisungen sind \"add remove " "revert forget\". Standard: keine (leer)" msgid "Tab Width" msgstr "Tabulatorbreite" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" "Wählen Sie die Anzahl von Leerzeichen, auf die sich Tabulatorzeichen in den " "verschiedenen TortoiseHg-Fenstern erweitern. Standard: 8" msgid "Force Repo Tab" msgstr "Archivreiter erzwingen" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "" "Grundsätzlich Archivreiter anzeigen, selbst für ein einzelnes Archiv. " "Standard: Falsch" msgid "Monitor Repo Changes" msgstr "Archivänderungen überwachen" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" "Wählen Sie das Zieldateisystem, in dem TortoiseHg Änderungen verfolgt. " "Standard: localonly" msgid "Max Diff Size" msgstr "Maximale Größe von Diffs" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" "Die maximale Dateigröße (in KiB), für die TortoiseHg die Änderungen im " "Verlaufs-, im Zustands- und im Übernahmedialog anzeigt. Der Wert 0 bedeutet " "unbegrenzt. Standard: 1024 (1 MiB)" msgid "Fork GUI" msgstr "Grafischen Dialog im Hintergrund starten" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" msgid "Full Path Title" msgstr "Vollständigen Pfad in der Titelleiste anzeigen" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" "Zeigt den gesamten Pfad des Projektarchivs in der Titelzeile statt nur den " "Namen des Wurzelverzeichnisses. Standard: Falsch" msgid "Auto-resolve merges" msgstr "Zusammenführungen automatisch auflösen" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" "Gibt an, ob TortoiseHg automatisch versuchen soll, Änderungen an einer Datei " "von beiden Seiten zusammenzufassen, und nur dann Verschmelzungskonflikte " "melden, wenn das nicht möglich ist. False bedeutet, alle Dateien mit " "Änderungen auf beiden Seiten werden als konfliktär dargestellt, auch wenn " "die Bearbeitungen an disjunkten Stellen in den Dateien geschehen sind. In " "beiden Fällen wird der Benutzer im Falle aufgetretener Konflikte eingeladen, " "diese zu prüfen und manuell auszubügeln. Standard: True." msgid "New Repo Skeleton" msgstr "Neues Repo Skelett" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" "Falls angegeben, werden Dateien in dieses Verzeichnisses in neu erstellte " "Projektarchive kopiert, z.B. .hgignore." msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "Werkbank" msgid "Single Workbench Window" msgstr "Einzelnes Werkbank-Fenster" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" "Legen Sie fest, ob nur ein einzelnes Werkbank-Fenster angezeigt werden soll. " "Wenn Sie diese Einstellung ausschalten, öffnet sich jedesmal ein neues " "Fenster, wenn Sie die \"Hg-Werkbank\" aus dem Explorer-Kontextmenü starten. " "Vorgabe: Wahr" msgid "Default widget" msgstr "Standardbereich" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" "Wählen SIe den Bereich, der standardmäßig beim Öffnen eines Projektarchivs " "angezeigt werden soll. Standard: revdetails" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" "Wählen Sie die Revision, die standardmäßig beim Öffnen eines Projektarchivs " "ausgewählt werden soll. Sie können die aktuelle wählen (current, bezeichnet " "den Vorgänger der Arbeitskopie), die Spitze des Archivs (tip) oder die " "Arbeitskopieversion (workingdir). Standard: current" msgid "" "Open new tabs next\n" "to the current tab" msgstr "" "Öffnet neue Reiter neben\n" "dem aktuellen Reiter" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" "Sollen neue Reiter neben dem aktuellen Reiter geöffnet werden? Ansonsten " "werden neue Reiter hinter dem letzten Reiter geöffnet. Standard: Wahr" msgid "Author Coloring" msgstr "Nach Autor einfärben" msgid "Color changesets by author name. Default: False" msgstr "Änderungssätze nach Autor färben. Standard: falsch" msgid "Full Authorname" msgstr "Voller Name des Autors" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" "Den vollen Namen des Autors in der Protokollansicht zeigen. Wenn " "abgeschaltet, wird nur ein kurzer Teil, üblicherweise der Name ohne E-Mail-" "Adresse, angezeigt. Vorgabe: False" msgid "Task Tabs" msgstr "Aufgabenreiter" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" "Zeigt Reiter entlang der Seite der unteren Hälfte jedes Archivbereichs, um " "zwischen verschiedenen Aufgaben ohne Benutzung der Werkzeugleiste " "umzuschalten. Standard: aus" msgid "Task Toolbar Order" msgstr "Werkzeugleisten-Auftrag" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
                Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
                Valid names are: log commit sync grep and " "pbranch.
                Default: log commit grep pbranch | sync" msgstr "" "Geben Sie an, welche Aufgabenschaltflächen Sie in der Aufgabenwerkzeugleiste " "in welcher Ordnung anzeigen wollen.
                Geben Sie eine Liste von " "Aufgabenschaltflächennamen an. Fügen Sie \"|\" zwischen Schaltflächennamen, " "um Trenner hinzuzufügen.
                Gültige Namen sind: log commit sync grep und " "pbranch.
                Standard: log commit grep pbranch | sync" msgid "Long Summary" msgstr "Lange Zusammenfassung" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" "Ob eine mehrzeilige Änderungssatz-Zusammenfassung aneinandergehängt und bei " "Bedarf auf 80 Zeilen beschränkt wird. Standard: falsch" msgid "Log Batch Size" msgstr "Protokoll-Länge" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "" "Die Anzahl Revisionen, die die Historieanzeige in einem Durchgang ermittelt " "und anzeigt. Standard: 500" msgid "Dead Branches" msgstr "Tote Zweige" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" "Kommaseparierte Liste von Zweignamen, die bei der Erstellung der " "Zweignamenliste für ein Projektarchiv ignoriert werden soll. Standard: keine " "(leere Liste)" msgid "Branch Colors" msgstr "Zweigfarben" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" "Leerzeichengetrennte Liste von Zweignamen und Farben im Sinne von Zweig:" "#RRGGBB. Leerzeichen und Doppelpunkte im Zweignamen müssen entsprechend " "durch einen umgekehrten Schrägstrich (\\) gekennzeichnet werden. " "Entsprechend können einige andere Zeichen auf diese Weise gekennzeichnet " "werden, beispielsweise entspricht \\u0040 dem @-Zeichen und \\n einem " "Zeilenvorschub-Zeichen. Standard: kein (leere Liste)" msgid "Hide Tags" msgstr "Etiketten verbergen" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" "Eine leerzeichengetrennte Liste von Etiketten, die nicht angezeigt werden. " "Praktisches Beispiel: Geben Sie \"qbase qparent qtip\" an, um die von der " "Mercurial-Queues-Erweiterung hinzugefügten Standardetiketten auszublenden. " "Vorgabe: keine (leere Liste)" msgid "Activate Bookmarks" msgstr "Aktive Lesezeichen" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.
                • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
                • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
                • never: Never show any prompt to " "activate any bookmarks.

                Default: prompt" msgstr "" "

                Wann TortoiseHg beim Aktualisieren einen Dialog zum Aktivieren der " "Lesezeichen zeigt (Standard: prompt):

                \r\n" "
                • auto: Versuche, Lesezeichen automatisch zu aktivieren. Bei " "einer Aktualisierung zu einer Revision mit einem Lesezeichen wird diese " "automatisch aktiviert. Ein Dialog wird angezeigt wenn die Revision mehr als " "ein Lesezeichen hat.
                • \r\n" "
                • prompt: Voreingestellt. Zeigt einen Dialog an, wenn auf eine " "Revision aktualisiert wird, die ein oder mehrere Lesezeichen enthält.
                • " "\r\n" "
                • never: Nie einen Dialog zum Aktivieren der Lesezeichen anzeigen.
                " msgid "Show Family Line" msgstr "Ahnentafel anzeigen" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

                Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" "

                Indirekte Revisionsabhängigkeiten im Revisionsgraphen anzeigen, wenn ein " "Filter nach Revisionen aktiviert ist. Standard: True

                Achtung:Die Berechnung der Ahnentafel kann in einigen Fällen langsam sein. Diese " "Option wird voraussichtlich entfernt, wenn dieses Performanceproblem gelöst " "ist.

                " msgid "Use optimized graph layouter" msgstr "" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

                Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" msgctxt "config item" msgid "Commit" msgstr "Übernehmen" msgid "Username" msgstr "Benutzername" msgid "" "Name associated with commits. The common format is:
                Full Name <" "email@example.com>" msgstr "" "Der mit Übernahmen verbundene Benutzername. Das übliche Format ist " "
                Vollständiger Name <email@beispiel.de.test>" msgid "Ask Username" msgstr "Benutzername abfragen" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" "Falls kein Benutzername angegeben ist, wird der Benutzer aufgefordert einen " "Benutzernamen einzugeben. Standard: aus" msgid "Summary Line Length" msgstr "Länge Zusammenfassungszeile" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" "Empfohlene Länge der Zeilen in Versionsmeldungen, gekennzeichnet durch eine " "rote senkrechte Linie. Strg-E bricht den aktuellen Absatz auf die angegebene " "Zeilenlänge um. Standard: 80" msgid "Close After Commit" msgstr "Nach der Übernahme schließen" msgid "Close the commit tool after every successful commit. Default: False" msgstr "" "Das Übernahme-Werkzeug nach jeder erfolgreicher Übernahme schließen. " "Standard: nein" msgid "Push After Commit" msgstr "Nach Übernahme übertragen" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" "Nach jeder erfolgreichen Übernahme versuchen, die Änderungen an die " "angegebene URL bzw. Kurzbezeichnung zu übertragen. Standard: keine " "Übertragung" msgid "Auto Commit List" msgstr "Automatische Einschlüsse" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" "Kommagetrennte Liste von Dateien, die üblicherweise in jede Übernahme " "eingeschlossen werden. Dies ist nur als archiv-spezifische Einstellung " "vorgesehen. Standard: keine (leere Liste)" msgid "Auto Exclude List" msgstr "Automatische Ausschlüsse" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" "Kommagetrennte Liste von Dateien, die automatisch abgewählt werden, wenn der " "Zustands- oder Übernahme-Dialog geöffnet werden. Standard: keine (leere " "Liste)" msgid "English Messages" msgstr "Englische Kommentare" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" "Englische Versionsmeldungen selbst dann erstellen, wenn die " "Umgebungsvariablen LANGUAGE oder LANG auf eine andere Sprache als Englisch " "gestellt sind. Diese Einstellung wird von den Dialogen fürs Zusammenführen, " "Etikettieren und Rücksetzen berücksichtigt. Standard: nein" msgid "New Commit Phase" msgstr "Neue Übernahmephase" msgid "The phase of new commits. Default: draft" msgstr "Die Phase neuer Übernahmen. Standard: draft" msgid "Secret MQ Patches" msgstr "Geheime Flicken in der Mercurial-Reihe" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "" "Mercurial-Flicken geheim werden lassen (statt Entwurf). Standard: false" msgid "Check Subrepo Phase" msgstr "Unterarchiv-Phase prüfen" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" "Prüft die Phase der aktuellen Revision von jedem Unterarchiv. Für alle von " "\"ignore\" abweichenden Angaben wird die Phase der aktuellen Revision jedes " "Unterarchivs geprüft, bevor Daten in das Überarchiv übernommen werden. " "Standard: follow" msgid "Monitor working
                directory changes" msgstr "Änderungen im
                Arbeitsverzeichnis überwachen" msgid "" "Select when the working directory status list will be refreshed:
                - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
                TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
                - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
                - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
                Default: auto" msgstr "" "Wählen Sie, wann die Statusliste des Arbeitsverzeichnisses aktualisiert wird:" "
                - auto: [Vorgabe] TortoiseHg entscheidet, wann die " "Arbeitsverzeichnis-Statusliste aktualisiert wird.
                TortoiseHg wird die " "Liste aktualisieren, sobald es Operationen ausführt, die das " "Arbeitsverzeichnis beeinflussen können. Auf diese Weise werden alle " "Änderungen außerhalb der Reichweite von TortoiseHg übersehen;
                - " "always: ergänzend zu den automatischen Aktualisierungen wie oben wird " "die Statusliste auch aktualisiert, wenn der Benutzer auf die " "Arbeitsverzeichnis-Revision oder das Übernahmesymbol in der Werkbank-" "Statuszeile klickt;
                - alwayslocal: so wie \"always\", " "jedoch beschränkt auf die erzwungene Aktualisierung lokaler Archive.
                . Standard: auto" msgid "Confirm adding unknown files" msgstr "Hinzufügen von nicht versionierten Dateien bestätigen" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Confirm deleting files" msgstr "Löschen bestätigen" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Sync" msgstr "Synchronisieren" msgid "After Pull Operation" msgstr "Nach der Abruf-Operation" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" "Der Befehl, der unmittelbar nach einem erfolgreichen Abruf ausgeführt wird. " "update entspricht einem pull --update, fetch entspricht der fetch-" "Erweiterung, rebase entspricht pull --rebase, updateorrebase entspricht pull " "-u --rebase. Standard: keine" msgid "Default Push" msgstr "An Standardziel übertragen" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

                • all: The default. Push all changes in all " "branches.
                • branch: Push all changes in the current branch.
                • revision: Push the changes in the current branch up to the current revision.

                Default: all" msgstr "" "Geben Sie die standardmäßig zu übertragenden Revisionen vor, wann immer Sie " "den Verteilen-Knopf betätigen.

                    all: Die Vorgabe. Alle " "Änderungen in allen Zweigen.
                  • branch: Alle Änderungen " "im aktuellen Zweig.
                  • revision: Alle Änderungen im " "aktuellen Zweig bis zur aktuellen Revision.
                  • Standard: all

                    " msgid "Confirm Push" msgstr "Übertragen bestätigen" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" "Legt fest, ob TortoiseHg einen Bestätigungsdialog anzeigt, bevor es " "Änderungssätze überträgt. Falls nicht, wird die Übertragung ohne jegliche " "Bestätigung ausgeführt. Standard: True" msgid "Target Combo" msgstr "Zielkombo" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "
                    • auto: The default. Show the combo if more than one target " "configured.
                    • always: Always show the combo.

                    Default: auto" msgstr "" "Wählen Sie, ob TortoiseHg eine Zielauswahlliste in der " "Synchronisierungsaufgabenleiste anzeigen soll.

                    • auto: Der " "Standard. Zeige die Auswahlliste, falls mehr als ein Ziel konfiguriert ist.
                    • always: Die Auswahlliste grundsätzlich anzeigen.
                    • Standard: auto

                      " msgid "SSH Command" msgstr "SSH-Befehl" msgid "" "Command to use for SSH connections.

                      Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" "Befehl, der für SSH-Verbindungen eingesetzt wird.

                      Vorgabe: \"ssh\" bzw. " "(unter Windows) \"TortoisePlink.exe -ssh -2\"" msgid "Subrepository Features:" msgstr "" msgid "Allow Hg Subrepos" msgstr "" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" msgid "Allow Git Subrepos" msgstr "" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

                      See the security note before enabling Git " "subrepos." msgstr "" msgid "Allow SVN Subrepos" msgstr "" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

                      See the security note before enabling " "Subversion subrepos." msgstr "" msgid "Server" msgstr "Server" msgid "Repository Details:" msgstr "Archiv-Details:" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" "Der Projektarchiv-Name, der in der Weboberfläche benutzt werden soll, und " "von TortoiseHg ansonsten als Kurzname eingesetzt wird. Standard ist der Name " "des Arbeitsverzeichnisses." msgid "Encoding" msgstr "Zeichensatz" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" "Standard-Kodierung der Dateien im Archiv, vom Webfrontend und TortoiseHg " "eingesetzt." msgid "'Publishing' repository" msgstr "'Veröffentlichungs'-Archiv" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" "Kontrolliert die Entwurfsphase, wenn als Server eingesetzt. Wenn gesetzt, " "werden übertragene Änderungssätze sowohl im Client als auch im Server als " "öffentlich gekennzeichnet und abgerufene oder duplizierte Änderungssätze im " "Client als öffentlich gekennzeichnet. Standard: true" msgid "Web Server:" msgstr "Web-Server:" msgid "Textual description of the repository's purpose or contents." msgstr "" "Eine menschenlesbare Beschreibung der Sinns bzw. der Inhalte des " "Projektarchivs" msgid "Contact" msgstr "Kontakt" msgid "Name or email address of the person in charge of the repository." msgstr "" "Der Name oder die E-Mail-Adresse des Hauptansprechpartners für das " "Projektarchiv." msgid "Style" msgstr "Stil" msgid "Which template map style to use" msgstr "Welche Stilvorlage benutzt werden soll" msgid "Archive Formats" msgstr "Archivformate" msgid "Comma separated list of archive formats allowed for downloading" msgstr "" "Kommagatrennte Liste von Archvformaten, die heruntergeladen werden dürfen" msgid "Port" msgstr "Port" msgid "Port to listen on" msgstr "Port für eingehende Verbindungen" msgid "Push Requires SSL" msgstr "Übertragung benötigt SSL" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" "Ob es nötig ist, dass eingehende Übertragungs-Anfragen zur Vermeidung des " "Ablauschens von Passwörtern SSL-verschlüsselt erfolgen müssen" msgid "Stripes" msgstr "Zeilenschattierung" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" "Wie viele Zeilen die Hintergrundschattierung in der mehrzeiligen Darstellung " "umfassen soll. 0 bedeutet keine Schattierung. Standard: 1" msgid "Max Files" msgstr "Maximale Dateien" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "" "Maximale Dateianzahl, die je Änderungssatz angezeigt wird. Standard: 10" msgid "Max Changes" msgstr "Maximale Änderungen" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "" "Maximale Anzahl von Änderungen, die im Änderungsverlauf darstellt werden. " "Standard: 10" msgid "Allow Push" msgstr "Übertragen erlauben" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" "Ob bzw. wem erlaubt ist, Aktualisierungen von außen in dieses Projektarchiv " "zu übertragen (komma- bzw. leerraumgetrennte Liste). Nicht gesetzt oder leer " "bedeutet nein bzw. keinem. Der Wert \"*\" bedeutet, dass jeder Benutzer dies " "auch ohne Anmeldung darf. Ansonsten muss der Benutzer sich von außen " "anmelden und sein Benutzername muss in der Liste genannt sein. Der Inhalt " "dieser Einschlussliste hat Vorrang vor der Ausschlussliste." msgid "Deny Push" msgstr "Übertragen verbieten" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" "Ob bzw. wem verboten ist, Aktualisierungen von außen in dieses Projektarchiv " "zu übertrageb (komma- bzw. leerraumgetrennte Liste). Nicht gesetzt oder leer " "bedeutet, bedeutet dies kein Verbot. Der Wert \"*\" bedeutet, dass kein " "Benutzer dies darf. Ansonsten werden nicht angemeldete Benutzer " "grundsätzlich abgelehnt und zusätzlich die hier genannten. Der Inhalt dieser " "Ausschlussliste wird gegenüber der Einschlussliste nachrangig behandelt." msgid "Proxy" msgstr "Proxy" msgid "Host" msgstr "Rechner" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "" "Rechnername und wahlweise der Port des Proxyservers, zum Beispiel " "\"meinproxy:8000\"" msgid "Bypass List" msgstr "Umgehen" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "" "Wahlweise: Kommagetrennte liste von Rechnernamen, für die der Proxyserver " "umgangen wird." msgid "Optional. User name to authenticate with at the proxy server" msgstr "Wahlweise. Benutzername für die Anmeldung beim Proxyserver." msgid "Password" msgstr "Passwort" msgid "Optional. Password to authenticate with at the proxy server" msgstr "Wahlweise. Passwort für die Anmeldung beim Proxyserver." msgid "From" msgstr "Von" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "" "Die E-Mail-Adresse, die in der \"From\"-Kopfzeile und für den SMTP-Umschlag " "verwendet wird" msgid "To" msgstr "An" msgid "Comma-separated list of recipient email addresses" msgstr "Kommagetrennte Adressliste der E-Mail-Empfänger" msgid "Cc" msgstr "Kopie" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "Kommagetrennte Adressliste der E-Mail-Kopie-Empfänger (cc)" msgid "Bcc" msgstr "Blindkopie" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "Kommagetrennte Adressliste der E-Mail-Blindkopie-Empfänger (bcc)" msgid "method" msgstr "Methode" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" "Wahlweise. Vorgehensweise beim Versand von E-Mails. Der Standardwert \"smtp" "\" hat die Wahl des SMTP-Protokolls zur Folge (der im Folgenden weiter " "konfiguriert wird). Jeder andere Wert bezeichnet ein Programm, welches wie " "das Sendmail-Programm aufgerufen wird (mit dem Schalter \"-f\" zur Angabe " "des Versenders, der Empfängerliste in der Argumentliste und dem Text über " "die Standardeingabe). In der Regel genügt es, hier \"sendmail\" oder \"/usr/" "sbin/sendmail\" auszuwählen, um E-Mails mit Hilfe von Sendmail zu versenden." msgid "SMTP Host" msgstr "SMTP-Host" msgid "Host name of mail server" msgstr "Name des Mailservers" msgid "SMTP Port" msgstr "SMTP-Port" msgid "Port to connect to on mail server. Default: 25" msgstr "" "Port des Mailservers, zu dem die Verbindung aufgebaut wird. Standard: 25" msgid "SMTP TLS" msgstr "SMTP TLS" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "" "Vorgehen, um TLS einzuschalten bei der Verbindung mit dem Mailserver. " "Standard: none" msgid "SMTP Username" msgstr "SMTP-Benutzername" msgid "Username to authenticate to mail server with" msgstr "Benutzername für die Anmeldung beim Mailserver" msgid "SMTP Password" msgstr "SMTP-Passwort" msgid "Password to authenticate to mail server with" msgstr "Passwort für die Anmeldung beim Mailserver" msgid "Local Hostname" msgstr "Lokaler Rechnername" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "" "Rechnernamen, den der Absender nutzen soll, um sich beim Mailserver " "anzumelden." msgid "Diff and Annotate" msgstr "Diff-Erstellung und Kommentar" msgid "Patch EOL" msgstr "Zeilenendezeichen patchen" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" "Zeilenenden innerhalb des bzw. am Schluss des Patches auf LF oder CRLF " "normalisieren. Strict führt keine Normalisierung aus. Auto betreibt eine " "dateispezifische Erkennung, und ist die empfohlene Einstellung. Standard: " "Strict" msgid "Git Format" msgstr "Git-Format" msgid "Use git extended diff header format. Default: False" msgstr "" "Nutze das erweiterte (git) Format in den Kopfdaten von Diffs. Standard: False" msgid "MQ Git Format" msgstr "Format von MQ-Git" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" "Wenn auf 'auto' gestellt, wird mq automatisch git--Patches verwenden wenn " "nötig um Änderungen an Dateimodi, Kopiermerker oder Binärdateien zu " "verlieren. Wenn auf 'keep' eingestellt, hält sich mq an die Konfiguration im " "Abschnitt [diff], während es bestehende git-Patches beibehält bei einem " "qrefresh. Wenn auf 'yes' oder 'no' eingestellt, übersteuert mq den [diff]-" "Abschnitt grundsätzlich und generiert grundsätzlich git- oder Standard-" "Patches, wobei im zweiten Fall Datenverluste möglich sind. Standard: auto" msgid "No Dates" msgstr "Kein Datum" msgid "Do not include modification dates in diff headers. Default: False" msgstr "" "Modifikationsdatum in den Diff-Kopfdaten nicht angeben. Standard: False" msgid "Show Function" msgstr "Funktion zeigen" msgid "Show which function each change is in. Default: False" msgstr "Zeige zu jeder Änderung die betroffene Funktion. Standard: False" msgid "Ignore White Space" msgstr "Leerzeichenwechsel ignorieren" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "" "Leerraum beim zeilenweisen Vergleich in Diff-Ansichten irgnorieren. " "Standard: False" msgid "Ignore WS Amount" msgstr "ign. Leeränderungen" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "" "Änderungen in der Menge des Leerraums in Diff-Ansichten ignorieren. " "Standard: False" msgid "Ignore Blank Lines" msgstr "Leerzeilen ignorieren" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "" "Änderungen bezogen auf vollständig leere Zeilen in Diff-Ansichten " "ignorieren. Standard: False" msgid "Annotate:" msgstr "Kommentieren:" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" "Leerraum beim zeilenweisen Vergleich in der Kommentaransicht ignorieren. " "Standard: False" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" "Änderungen in der Menge des Leerraums in der Kommentaransicht ignorieren. " "Vorgabe: False" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "" "Änderungen betreffend vollständig leerer Zeilen in der Kommentaransicht " "ignorieren. Vorgabe: false" msgid "Fonts" msgstr "Schriftarten" msgid "Message Font" msgstr "Schriftart für Kommentare" msgid "Font used to display commit messages. Default: monospace 10" msgstr "" "Zeichensatz, in der die Versionsmeldung angezeigt wird. Standard: monospace " "10" msgid "Diff Font" msgstr "Schriftart für Diff" msgid "Font used to display text differences. Default: monospace 10" msgstr "" "Schriftart zur Darstellung von Textunterschieden. Standard: monospace 10" msgid "ChangeLog Font" msgstr "Schriftart für den Änderungsverlauf" msgid "Font used to display changelog data. Default: monospace 10" msgstr "" "Schriftart zur Darstellung von Daten aus dem Änderungsverlauf. Standard: " "monospace 10" msgid "Output Font" msgstr "Schriftart für Ausgaben" msgid "Font used to display output messages. Default: sans 8" msgstr "Schriftart zur Darstellung von Ausgabe-Kommentaren. Standard: sans 8" msgid "Extensions" msgstr "Erweiterungen" msgid "Tools" msgstr "Werkzeuge" msgid "Hooks" msgstr "Hooks" msgid "Issue Tracking" msgstr "Ticketing-System" msgid "Issue Regex" msgstr "Regulärer Ausdruck für Tickets" msgid "Defines the regex to match when picking up issue numbers." msgstr "Bestimmt den regulären Ausdruck bei der Auswahl von Ticket-IDs." msgid "Issue Link" msgstr "Ticket-Link" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" msgid "Inline Tags" msgstr "Etiketten einreihen" msgid "Show tags at start of commit message." msgstr "Zeigt Etiketten am Anfang der Versionsmeldung." msgid "Mandatory Issue Reference" msgstr "Verpflichtend anzugebende Ticket-ID" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" "Bei der Übernahme, verlange dass eine Referenz auf ein Ticket angegeben " "wird. Wenn angegeben, wird die im Abschnitt 'Issue Regex' konfigurierte " "Regex genutzt um die Angabe in der Übernahme-Nachricht zu prüfen." msgid "Issue Tracker Plugin" msgstr "Ticketing-System-Plug-in" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" "Konfiguriert ein Ticketing-System-Plug-in mit einer COM-Schnittstelle, die " "IBugTraqProvider oder IBugTraqProvider2 implementiert." msgid "Configure Issue Tracker" msgstr "Ticketing-System konfigurieren" msgid "Configure the selected COM Bug Tracker plugin." msgstr "Konfiguriert das ausgewählte COM-Plug-in für das Ticketing-System." msgid "Issue Tracker Trigger" msgstr "Auslöser des Ticketing-Systems" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

                      • never: Do not update the Issue Tracker " "state automatically.
                      • commit: Update the Issue Tracker state after " "a successful commit.

                      Default: never" msgstr "" "Bestimmt, wann der Status des Ablaufverfolgers durch TortoiseHg aktualisiert " "wird. Zulässige Auswahlen sind:

                      • never: Den Ablaufverfolger-" "Status nie automatisch aktualisieren.
                      • commit: Den " "Ablaufverfolger-Status nach einer erfolgreichen Übernahme aktualisieren.

                      Standard: never" msgid "Changeset Link" msgstr "Änderungssatz-Verweis" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
                      The template string " "uses a normal mercurial template syntax, such as:

                      • {node|short} : replaced by " "the 12 digit revision id.
                      • {rev} : replaced by the revision number." "
                      • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
                      For example, in order to " "link to bitbucket commit pages you can set this to:
                      https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
                      You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
                      https://github.com/torvalds/" "linux/commit/{gitnode}
                      https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
                      " msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "" "URI des Review-Board-Servers, beispielsweise \"http://demo.reviewboard.org\"" msgid "User name to authenticate with review board" msgstr "Benutzername für die Anmeldung am Review-Board-Server" msgid "Password to authenticate with review board" msgstr "Passwort zur Authentisierung am Review-Board-Server" msgid "Server Repository ID" msgstr "Serverseitige Projektarchiv-ID" msgid "The default repository id for this repo on the review board server" msgstr "" "Die Standard-Projektarchiv-ID für dieses Archiv auf dem Review-Board-Server" msgid "Target Groups" msgstr "Zielgruppen" msgid "A comma separated list of target groups" msgstr "Eine kommagetrennte Liste von Zielgruppen" msgid "Target People" msgstr "Zielpersonen" msgid "A comma separated list of target people" msgstr "Eine kommagetrennte Liste von Zielpersonen" msgid "Kiln Bfiles" msgstr "binär eingebrannt" msgid "Patterns" msgstr "Muster" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" "Dateien mit Namen entsprechend der angegebenen Muster werden automatisch als " "Binärdateien hinzugefügt" msgid "Size" msgstr "Größe" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" "Dateien mit der angegebenen Mindestgröße (in MiB) werden als Binärdateien " "hinzugefügt" msgid "System Cache" msgstr "Sytemcache" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "" "Verzeichnis, in dem ein systemweiter Cache von Binärdateien erstellt wird" msgid "Simplelock" msgstr "Simplelock" msgid "Lock Clone" msgstr "Sperre Klonen" msgid "" "Location of local clone of organizational lock repository.

                      This repository " "must contain a \"locked\" text file" msgstr "" msgid "Largefiles" msgstr "Binärriesen" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" "Dateien mit Namen entsprechend dem angegebenen Muster werden automatisch als " "Binärriesen hinzugefügt" msgid "Minimum Size" msgstr "Mindestgröße" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" "Dateien mit der angegebenen Mindestgröße (in MiB) werden als Binärriesen " "hinzugefügt" msgid "User Cache" msgstr "Benutzerspezifischer Zwischenspeicher" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" "Verzeichnispfad, in dem Ihre Binärriesen benutzerspezifisch " "zwischengespeichert werden" msgid "Projrc" msgstr "Projrc" msgid "Require confirmation" msgstr "Bestätigung verlangen" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

                      • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
                      • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
                      • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
                      " msgstr "" "Wann der Benutzer gebeten werden soll, die Aktualisierung der lokalen " "Projektkonfigurationsdatei \"projrc\" zu bestätigen bei Änderungen an der " "entfernten projrc-Datei. Zulässige Werte sind:
                      • always: " "[Standard] Grundsätzlich eine Bestätigung vor Aktualisierungen der " "lokalen Datei .hg/projrc anfordern.
                      • first: Einen " "Bestätigungsdialog beim erstmaligen Klonen oder erstmaligen entfernten " "Anlegen der .projrc-Datei erfragen.
                      • never: Die lokale Datei ." "hg/projrc file automatisch ohne Benutzerinteraktion aktualisieren.
                      " msgid "Servers" msgstr "Server" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" msgid "Include" msgstr "Einschließen" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" "Liste der Einstellungen, die aus der Projektkonfigurationsdatei abgerufen " "werden. Standardmäßig werden KEINE Einstellungen übernommen." msgid "Exclude" msgstr "Ausschließen" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" "Liste der Einstellungen, die NICHT aus der Projektkonfigurationsdatei " "abgerufen werden. Standardmäßig werden keine der eingeschlossenen " "Einstellungen ausgeschlossen." msgid "Update on incoming" msgstr "Aktualisierung bei Eingang" msgid "" "Let the user update the projrc on incoming:
                      • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
                      • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
                      • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                        Default: never" msgstr "" "Lass den Benutzer die projrc beim Eingang aktualisieren:

                        • never: [Vorgabe] Anzeigen, ob sich die entfernte projrc-Date geändert " "hat, aber die loakle projrc-Datei nicht ändern und auch nicht nachfragen.
                        • prompt: Prüfe auf Änderungen an der projrc-Datei. Wenn es " "Änderungen gibt, grundsätzlich einen Bestätigungsdialog anzeigen mit der " "Frage, ob der Benutzer seine lokale projrc-Datei aktualisieren möchte.
                        • auto: Nach Änderungen in der projrc-Datei suchen. Auf Basis " "des Konfigurationsschlüssels \"projrc.confirm\" entscheiden, ob ein " "Bestägigungdialog vor Aktualisierung der lokalen projrc-Datei angezeigt " "werden solll oder nicht.

                        Standard: never" msgid "GnuPG" msgstr "GnuPG" msgid "Specify the path to GPG. Default: gpg" msgstr "Geben Sie den Pfad von GPG an. Standard: gpg" msgid "Key ID" msgstr "Schlüssel-ID" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "Mit dem Benutzer verbundene GPG-Schlüssel-ID. Standard: keine (leer)" msgid "TortoiseHg Settings" msgstr "TortoiseHg-Einstellungen" msgid "Iniparse package not found" msgstr "Das Paket iniparse wurde nicht gefunden" msgid "Can't change settings without iniparse package - view is readonly." msgstr "" "Ohne das iniparse-Paket können die Einstellungen nicht geändert werden - die " "Ansicht ist schreibgeschützt" #, python-format msgid "%s's global settings" msgstr "Allgemeine Einstellungen für %s" msgid "No repository found" msgstr "Das Projektarchiv existiert nicht" msgid "no repo at " msgstr "Kein Projektverzeichnis bei " #, python-format msgid "%s project settings (.hg/projrc)" msgstr "%s-Projekteinstellungen (.hg/projrc)" #, python-format msgid "%s repository settings" msgstr "Einstellungen für das Projektarchiv %s" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "" "Starten Sie alle TortoiseHg-Anwendungen neu, um die folgenden Änderungen " "inkraftzusetzen:" msgid "Apply changes before exit?" msgstr "Änderungen vor dem Beenden speichern?" msgid "&No (discard changes)" msgstr "&Nein (Änderungen verwerfen)" msgid "Reload" msgstr "Datei &einlesen" msgid "Settings File:" msgstr "Konfigurationsdatei:" msgid "Confirm Save" msgstr "Speichern bestätigen" msgid "Save changes before editing?" msgstr "Änderungen vor dem Bearbeiten speichern?" msgid "&Save" msgstr "&Speichern" msgid "Confirm Reload" msgstr "Neu laden bestätigen" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" "Nicht gespeicherte Änderungen gehen verloren.\n" "Wollen Sie die Einstellungen neu laden?" msgid "Unable to create a Mercurial.ini file" msgstr "Außerstande, die Datei Mercurial.ini zu erzeugen" msgid "Insufficient access rights, reverting to read-only mode." msgstr "Unzureichende Zugriffsrechte, wechsle in den Schreibschutzmodus." msgid "Context Menu" msgstr "Kontextmenü" msgid "Top menu items:" msgstr "Am häufigsten benutzt:" msgid "Sub menu items:" msgstr "Untermenü-Einträge:" msgid "Menu Behavior" msgstr "Menüverhalten" msgid "Hide context menu outside repositories" msgstr "Kontextmenü außerhalb von Projektarchiven ausblenden" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" "In nicht versionierten Verzeichnissen keine Menüeinträge anbieten (Umschalt-" "Klick zeigt sich dennoch an)" msgid "Icons" msgstr "Symbole" msgid "Overlays" msgstr "Überblendungen" msgid "Enabled overlays" msgstr "Überblendungen aktivieren" msgid "Local disks only" msgstr "Nur lokale Festplatten" msgid "Enabled Overlay Handlers" msgstr "Überblendungsunterstützung aktiviert" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "" "Achtung: beeinflusst alle Tortoise-Instanzen, nach der Änderung bitte " "ausloggen" msgid "Added" msgstr "Hinzugefügt" msgid "Locked*" msgstr "Gesperrt*" msgid "Ignored*" msgstr "Ignoriert*" msgid "Unversioned" msgstr "Nicht versioniert" msgid "Readonly*" msgstr "Schreibgeschützt*" msgid "Deleted*" msgstr "Gelöscht*" msgid "*: not used by TortoiseHg" msgstr "*: von TortoiseHg nicht verwenden" msgid "Taskbar" msgstr "Taskleiste" msgid "Show Icon" msgstr "Symbol anzeigen" msgid "Highlight Icon" msgstr "Icon hervorheben" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" msgid "Explorer Extension Settings - TortoiseHg" msgstr "Explorer Erweiterungen Einstellungen - TortoiseHg" msgid "Clear" msgstr "Aufräumen" msgid "Clear the current shelf file" msgstr "Den aktuellen Stauraum aufräumen" msgid "Delete the current shelf file" msgstr "Den aktuellen Stauraum löschen" msgid "Left Toolbar" msgstr "Linke Werkzeugleiste" msgid "Delete selected chunks" msgstr "Die ausgewählten Blöcke löschen" msgid "Move all files right" msgstr "Alle Dateien nach rechts verschieben" msgid "Move selected file right" msgstr "Ausgewählte Datei nach rechts verschieben" msgid "Edit file" msgstr "Datei bearbeiten" msgid "Move selected chunks right" msgstr "Ausgewählte Blöcke nach rechts verschieben" msgid "Refresh Toolbar" msgstr "Werkzeugleiste aktualisieren" msgid "Refresh" msgstr "Aktualisieren" msgid "New Shelf" msgstr "Neuer Stauraum" msgid "Right Toolbar" msgstr "Rechte Werkzeugleiste" msgid "Move selected chunks left" msgstr "Ausgewählte Blöcke nach links verschieben" msgid "Move selected file left" msgstr "Ausgewählte Datei nach links verschieben" msgid "Move all files left" msgstr "Alle Dateien nach links verschieben" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "Sicherheitskopien der geänderten Dateien finden sich in .hg/Trashcan/" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "TortoiseHg-Stauraum - %s" msgid "Delete selected chunks from working copy?" msgstr "Ausgewählte Abschnitte aus der Arbeitskopie löschen?" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "Ausgewählte Abschnitte aus Stauraum %s löschen?" msgid "Are you sure?" msgstr "Sind Sie sicher?" msgid "TortoiseHg New Shelf Name" msgstr "Name des neuen TortoiseHg-Stauraums" msgid "Specify name of new shelf" msgstr "Geben Sie den neuen Stauraum-Namen an" msgid "Bad filename" msgstr "Dateiname ungültig" #, python-format msgid "A shelf name cannot contain %s" msgstr "Ein Stauraum-Name kann kein %s enthalten" msgid "File already exists" msgstr "Die Datei existiert bereits" msgid "A shelf file of that name already exists" msgstr "Eine Stauraum-Datei mit diesem Namen ist bereits vorhanden" msgid "New shelf created" msgstr "Neuen Stauraum angelegt" #, python-format msgid "Delete shelf file %s?" msgstr "Stauraum-Datei %s entfernen?" msgid "Shelf deleted" msgstr "Stauraum entfernt" msgid "Revert all working copy changes?" msgstr "Wiederherstellen und lokale Änderungen verwerfen?" #, python-format msgid "Clear contents of shelf file %s?" msgstr "Den Inhalt der Stauraum-Datei %s leeren?" msgid "Shelf cleared" msgstr "Stauraum geleert" #, python-format msgid "Shelf: %s" msgstr "Stauraum: %s" #, python-format msgid "Patch: %s" msgstr "Patch: %s" msgid "Key:" msgstr "Schlüssel:" msgid "Local sign" msgstr "Lokal signieren" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "Signieren selbst, wenn sigfile geändert ist (-f/--force)" msgid "No commit" msgstr "Nicht übernehmen" msgid "Use custom commit message:" msgstr "Eigens erfasste Versionsmeldung verwenden:" msgid "&Sign" msgstr "&Signieren" #, python-format msgid "Sign - %s" msgstr "Signieren - %s" msgid "Signature has been added" msgstr "Signatur hinzugefügt" msgid "Repository command still running" msgstr "Der Projektarchiv-Befehl ist noch nicht abgeschlossen" msgid "Filter:" msgstr "Filter:" msgid "Check all files" msgstr "Alle Dateien ankreuzen" msgid "Uncheck all files" msgstr "Alle Dateien abwählen" msgid "Status File List Toolbar" msgstr "Zustandsdateilisten-Werkzeugleiste" msgid "Remove filter, show root" msgstr "Filter entfernen und Wurzel zeigen" #, python-format msgid "%s - status (selection filtered)" msgstr "%s - Zustand (Auswahl gefiltert)" #, python-format msgid "%s - status" msgstr "%s - Zustand" msgid "Check" msgstr "Auswählen" msgid "Uncheck" msgstr "Abwählen" msgid "status" msgstr "Zustand" msgid "Failed to refresh" msgstr "Aktualisierung fehlgeschlagen" msgid "No appropriate files" msgstr "Keine passenden Dateien" msgid "No files found for this operation" msgstr "Für diesen Vorgang wurden keine Dateien gefunden" msgid "Stat" msgstr "Stat" msgid "M" msgstr "M" msgid "Filename" msgstr "Dateiname" msgid "Size (KB)" msgstr "Größe (KiB)" #, python-format msgid "Checked count: %d" msgstr "Anzahl Kreuzchen: %d" msgid ", resolved merge" msgstr ", Zusammenführung aufgelöst" msgid ", unresolved merge" msgstr ", Zusammenführung unaufgelöst" #, python-format msgid "%s is modified" msgstr "%s ist geändert" msgid "modified" msgstr "geändert" #, python-format msgid "%s is added" msgstr "%s ist hinzugefügt" msgid "added" msgstr "hinzugefügt" #, python-format msgid "%s is removed" msgstr "%s ist entfernt" msgid "removed" msgstr "entfernt" #, python-format msgid "%s is not tracked (unknown)" msgstr "%s ist unversioniert (unbekannt)" msgid "unknown" msgstr "unbekannt" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "%s wurde außerhalb von hg gelöscht, Datei wird nicht immer verfolgt" msgid "missing" msgstr "fehlend" #, python-format msgid "%s is ignored" msgstr "%s wird ignoriert" msgid "ignored" msgstr "ignoriert" #, python-format msgid "%s is not modified (clean)" msgstr "%s ist unverändert (sauber)" msgid "clean" msgstr "sauber" #, python-format msgid "%s is a dirty subrepo" msgstr "%s ist ein Unterarchiv mit lokalen Änderungen" msgid "subrepo" msgstr "Unterarchiv" msgid "Check for incoming changes from selected URL" msgstr "Bezüglich eingehender Änderungen von der ausgewählten URL prüfen" msgid "Pull incoming changes from selected URL" msgstr "Eingehende Änderungen von der ausgewählten URL abrufen" msgid "Detect outgoing changes to selected URL" msgstr "Ausgehende Änderungen für die ausgewählte URL erkennen" msgid "Push outgoing changes to selected URL" msgstr "Ausgehende Änderungen an die ausgewählte URL übertragen" msgid "Sync Bookmarks" msgstr "Lesezeichen Syncronisieren" msgid "Email outgoing changesets for remote repository" msgstr "" "Ausgehende Änderungssätze für das entfernte Archiv per E-Mail versenden" msgid "Manage pending perforce changelists" msgstr "Ausstehende Perforce-Änderungslisten verwalten" msgid "Unbundle" msgstr "Entbündeln" msgid "Selected Options:" msgstr "Ausgewählte Einstellungen:" msgid "Path Edit Toolbar" msgstr "Pfadbearbeitungs-Werkzeugleiste" msgid "Security" msgstr "Sicherheit" msgid "Manage HTTPS connection security and user authentication" msgstr "HTTPS-Verbindungssicherheit und Benutzerauthentisierung verwalten" msgid "Save" msgstr "Speichern" msgid "Save current URL under an alias" msgstr "Aktuelle URL unter einem Alias speichern" msgid "Paths in Repository Settings:" msgstr "Verzeichnisse in den Archiveinstellungen:" msgid "Related Paths:" msgstr "Verwandte Pfade:" msgid "branch: " msgstr "Zweig: " msgid "bookmark: " msgstr "Lesezeichen: " #, python-format msgid "rev: %d (%s)" msgstr "Revision: %d (%s)" msgid "Post Pull: " msgstr "Nach dem Abrufen: " msgid "&Edit..." msgstr "&Bearbeiten..." msgid "&Remove..." msgstr "&Entfernen..." msgid "Repository not local" msgstr "Das Projektarchiv ist nicht lokal" msgid "A terminal shell cannot be opened for remote" msgstr "Bei entfernten Archive kann keine Konsole gestartet werden" msgid "Confirm path delete" msgstr "Pfadentfernung bestätigen" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "%s aus Ihrer Archivkonfigurationsdatei löschen?" msgid "Select repository" msgstr "Wähle Projektarchiv" msgid "No host specified" msgstr "Kein Rechner angegeben" msgid "Please set a valid URL to continue." msgstr "Bitte geben Sie zum Fortsetzen eine gültige URL an." msgid "No remote repository URL or path set" msgstr "Es ist kein URL bzw. kein Pfad eines entfernten Archivs gesetzt" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

                        Please type and save a remote repository path on the " "Sync widget." msgstr "" "Keine gültige Standardarchiv-URL bzw. -pfad wurde für dieses Archiv " "festgelegt.

                        Bitte geben Sie den entfernten Archivpfad im Syncbereich ein." msgid "Redundant authentication info" msgstr "Redundante Authentisierungsinformationen" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" "Sie haben Authentisierungsinformationen für diesen Rechner und innerhalb " "dieser URL hinterlegt. Die Authentisierungsinformationen aus der URL " "entfernen?" msgid "sync command already running" msgstr "Die Synchronisation läuft bereits" #, python-format msgid "Getting incoming changesets from %s..." msgstr "Rufe eingehende Änderungssätze von %s ab..." #, python-format msgid "Found incoming changesets from %s" msgstr "Es gibt eingehende Änderungssätze von %s" #, python-format msgid "No incoming changesets from %s" msgstr "Es gibt keine eingehenden Änderungssätze von %s" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "Bezug von %s abgebrochen, Rückgabewert %d" #, python-format msgid "Pulling from %s..." msgstr "Rufe ab von %s..." #, python-format msgid "Pull from %s completed" msgstr "Abruf von %s abgeschlossen" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "Abruf von %s abgebrochen, Rückgabewert %d" msgid "Merge caused file conflicts" msgstr "Die Zusammenführung hat Dateikonflikte verursache" msgid "File conflicts need to be resolved" msgstr "Es gibt aufzulösende Dateikonflikte" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "Ausgehende Änderungssätze für %s werden ermittelt..." #, python-format msgid "%d outgoing changesets to %s" msgstr "%d ausgehende Änderungssätze für %s" #, python-format msgid "No outgoing changesets to %s" msgstr "Keine ausgehenden Änderungssätze für %s" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "Versand an %s abgebrochen, Rückgabewert %d" msgid "Perforce pending..." msgstr "Ausstehende Perforce-Änderungslisten..." #, python-format msgid "%s (submitted)" msgstr "%s (versandt)" #, python-format msgid "%s (pending)" msgstr "%s (ausstehend)" msgid "Unable to parse p4pending output" msgstr "Kann die Ausgabe von p4pending nicht verarbeiten" #, python-format msgid "%d pending changelists found" msgstr "Es gibt %d ausstehende Änderungslisten" msgid "No pending Perforce changelists" msgstr "Es gibtkeine ausstehenden Perforce-Änderungslisten" msgid "Aborted p4pending" msgstr "p4pending abgebrochen" msgid "Unable to determine pending changesets" msgstr "Ausstehende Änderungssätze können nicht ermittelt werden" msgid "Confirm Push to remote Repository" msgstr "Übertragung an das entfernte Projektarchiv bestätigen" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" "Übertragung an das entfernte Projektarchiv\n" "%s\n" "?" #, python-format msgid "Push to %s aborted" msgstr "Übertragung nach %s abgebrochen" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" "Ungültige Übertragungsrevision: %s. Bitte prüfen Sie Ihre Mercurial-" "Konfiguration (tortoisehg.defaultpush)" #, python-format msgid "Pushing to %s..." msgstr "Übertrage nach %s..." #, python-format msgid "Push to %s completed" msgstr "Übertragung nach %s abgeschlossen" #, python-format msgid "Push to %s aborted, ret %d" msgstr "Übertragung nach %s abgebrochen. Rückgabewert %d" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" "Mindestens ein Änderungssatz, den Sie zu übertragen versuchen, enthält die " "Erzeugung eines neuen Zweigs. Wollen Sie einen neuen Zweig im entfernten " "Archiv erzeugen?" msgid "Determining outgoing changesets to email..." msgstr "Bestimme ausgehende Änderungssätze für den E-Mail-Versand..." msgid "No outgoing changesets" msgstr "Keine ausgehenden Änderungssätze" #, python-format msgid "Outgoing aborted, ret %d" msgstr "Versand abgebrochen, Rückgabewert %d" msgid "Select bundle file" msgstr "Wählen Sie ein Bündel" msgid "Bundle files (*.hg)" msgstr "Bündeldateien (*.hg)" msgid "Unable to remove URL" msgstr "Kann die URL nicht entfernen" msgid "Post Pull Behavior" msgstr "Vorgehen nach dem Abrufen" msgid "Select post-pull operation for this repository" msgstr "Ausgewählte Folgeoperation nach dem Abrufen in dieses Projektarchiv" msgid "None - simply pull changesets" msgstr "Nichts tun - nur Änderungssätze abrufen" msgid "Update - pull, then try to update" msgstr "Update - abrufen, dann Aktualisierung versuchen" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "" "Fetch - die Einsammeloperation (automatisch abgerufene Änderungen " "zusammenführen)" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "" "Einsammeln - Erweiterung für das Einsammels notwendig (Einsammeln wird nicht " "durchgeführt!)" msgid "Rebase - rebase local commits above pulled changes" msgstr "" "Verschieben - lokale Übernahmen in Nachfolger der abgerufenen Änderungen " "umwandeln" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "" "UpdateOrRebase - abrufen, dann Aktualisierung bzw. Basisverschiebung " "versuchen" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "" "Verschieben - verwenden Sie die rebase-Erweiterung (rebase ist nicht " "aktiviert!)" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "" "UpdateOrRebase - verwenden Sie die rebase-Erweiterung (rebase ist nicht " "aktiv!)" msgid "Launch settings tool..." msgstr "Einstellungen-Werkzeug aufrufen..." msgid "Unable to save post pull operation" msgstr "Kann die Aktion für nach dem Abruf nicht speichern" msgid "Save Path" msgstr "Pfad speichern" msgid "Alias" msgstr "Alias" msgid "URL" msgstr "URL" msgid "Remove authentication data from URL" msgstr "Authentisierungsdaten aus URL entfernen" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" "Die Anmeldedaten des Benutzers im Sicherheitsdialog sollten mit dem " "Rechnernamen verbunden sein." msgid "Update subrepo paths" msgstr "Unterarchiv-Pfade aktualisieren" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" "Einen Pfadalias namens '%s' auf allen Unterarchiven aktualisieren oder " "anlegen, wobei dieser URI als Basis-URI eingesetzt wird unter Anhängung des " "lokalen relativen Unterarchiv-Pfads" msgid "Unable to save an URL" msgstr "URL kann nicht gespeichert werden" msgid "Confirm URL replace" msgstr "URL-Ersetzung bestätigen" #, python-format msgid "%s already exists, replace URL?" msgstr "Es gibt bereits %s, URL ersetzen?" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

                        %s

                        Replace it with the " "following URL?:

                        %s" msgstr "" "Das Unterarchiv '%s' besitzt einen nicht-trivialen Standardsynchronisierungs-" "URI:

                        %s

                        Durch den folgenden URI ersetzen?:

                        %s" msgid "Security: " msgstr "Sicherheit: " #, python-format msgid "Host: %s" msgstr "Rechner: %s" msgid "Secure HTTPS Connection" msgstr "Sichere HTTPS-Verbindung" msgid "Verify with Certificate Authority certificates (best)" msgstr "Gegen Stammzertifikate prüfen (am Besten)" msgid "Verify with stored host fingerprint (good)" msgstr "Gegen gespeicherten Rechner-Fingerabdruck prüfen (gut)" msgid "No host validation, but still encrypted (bad)" msgstr "Keine Rechnerüberprüfung, aber immerhin verschlüsselt (schlecht)" msgid "### host certificate fingerprint ###" msgstr "### Fingerabdruck des Rechnerzertifikats ###" msgid "Query" msgstr "Anfrage" msgid "TLS 1.0" msgstr "" msgid "TLS 1.1" msgstr "" msgid "TLS 1.2" msgstr "" msgid "Minimum Protocol" msgstr "" msgid "User Authentication" msgstr "Benutzerauthentisierung" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" "Wahlweise. Benutzername für die Anmeldung. Wenn nicht erfasst, und die " "entfernte\n" "Seite eine Authentisierung verlangt (basic oder digest), wird der Benutzer " "interaktiv\n" "nach ihm gefragt. Umgebungsvariablen werden bei der Auswertung des " "Benutzernamens\n" "erweitert, so dass Sie dings.username = $USER vorgeben können." msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" "Wahlweise. Passwort für die Anmeldung. Wenn nicht erfasst, und die " "entfernte\n" "Seite eine Authentisierung verlangt (basic oder digest), wird der Benutzer " "interaktiv\n" "nach ihm gefragt." msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" "Die Mercurial Schlüsselbund-Erweiterung ist aktiv. Passwörter werden auf " "eine plattformspezifische sichere Weise gespeichert." msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" "Wahlweise. Eine Datei mit dem Client-Zertifikatschlüssel im PEM-Format. " "Umgebungsvariablen werden\n" "bei der Auswertung des Dateinamens aufgelöst." msgid "User Certificate Key" msgstr "" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" "Wahlweise. Client-Zertifikatsketten-Datei im PEM-Format. Umgebungsvariablen\n" "werden bei Ermittlung des Dateinamens aufgelöst." msgid "User Certificate Chain" msgstr "" msgid "Certificate Query Error" msgstr "Zertifikatsanfrage-Fehler" msgid "Select User Certificate Key File" msgstr "" msgid "PEM files (*.pem *.key)" msgstr "PEM Dateien (*.pem *.key)" msgid "Select User Certificate Chain File" msgstr "" msgid "PEM files (*.pem *.crt *.cer)" msgstr "PEM Dateien (*.pem *.crt *.cer)" msgid "Unable to save authentication" msgstr "Authensierung kann nicht gespeichert werden" #, python-format msgid "%s - sync options" msgstr "%s - Synchronsationseinstellungen" msgid "Allow push of a new branch (--new-branch)" msgstr "Übertragung eines neuen Zweigs erlauben (--new-branch)" msgid "Force push or pull (override safety checks, --force)" msgstr "" "Abrufen oder Übertragen erzwingen (Sicherheitsprüfungen übersteuern, --force)" msgid "Temporarily disable configured HTTP proxy" msgstr "Den hinterlegten HTTP-Proxy vorläufig deaktivieren" msgid "Emit debugging output (--debug)" msgstr "Fehlerinformationsausgaben tätigen (--debug)" msgid "Work on patch queue (--mq)" msgstr "Auf der Patch-Warteschlange arbeiten (--mq)" #, python-format msgid "Tag - %s" msgstr "Etikett - %s" msgid "Tag:" msgstr "Etikett:" msgid "Tagged:" msgstr "Etikettiert:" msgid "Local tag" msgstr "Lokales Etikett" msgid "Replace existing tag (-f/--force)" msgstr "Vorhandenes Etikett ersetzen (-f/--force)" msgid "Use English commit message" msgstr "Englische Versionsmeldung verwenden" msgid "local" msgstr "Lokale Kopie" msgid "Move" msgstr "Verschieben" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "Etikett %s zu Änderungssatz %s verschoben (aus dem Änderungssatz %s)" #, python-format msgid "Added tag %s for changeset %s" msgstr "Etikett %s zum Änderungssatz %s hinzugefügt" #, python-format msgid "Tag '%s' has been moved" msgstr "Das Etikett '%s' wurde entfernt" #, python-format msgid "Tag '%s' has been added" msgstr "Das Etikett '%s' wurde hinzugefügt" #, python-format msgid "Removed tag %s" msgstr "Etikett %s gelöscht" #, python-format msgid "Tag '%s' has been removed" msgstr "Das Etikett '%s' wurde gelöscht" msgid "Patch files (*.diff *.patch)" msgstr "Patch-Dateien (*.diff *.patch)" #, python-format msgid "Import - %s" msgstr "Importieren - %s" msgid "Browse Directory..." msgstr "Verzeichnis durchsuchen..." msgid "Import from Clipboard" msgstr "Aus der Zwischenablage importieren" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "Pfade nicht herauslösen(-p0), für Subversion-Patches erforderlich" msgid "Preview:" msgstr "Vorschau:" msgid "Shelf" msgstr "Stauraum" msgid "Checking working directory status..." msgstr "Prüfe Zustand des Arbeitsverzeichnisses..." msgid "&Import" msgstr "&importieren" msgid "Working directory is not clean! View changes..." msgstr "" "Das Arbeitsverzeichnis ist nicht sauber! Änderungen " "betrachten..." msgid "Select patches" msgstr "Patches auswählen" msgid "Select Directory containing patches" msgstr "Bitte wählen Sie das Verzeichnis mit den Patches aus" #, python-format msgid "%s patches" msgstr "%s Patches" #, python-format msgid "%s will be imported to " msgstr "%s wird importiert nach " msgid "Nothing to import" msgstr "Nichts zu importieren" msgid "Strip:" msgstr "Herauslösen:" msgid "Discard local changes, no backup (-f/--force)" msgstr "Lokale Änderungen ungesichert verwerfen (-f/--force)" msgid "No backup (-n/--nobackup)" msgstr "Keine Sicherung (-n/--nobackup)" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "Arbeitskopie während der Bereinigung unverändert lassen (-k/--keep)" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "%d Änderungssatz wird herausgelöst" msgstr[1] "%d Änderungssätze werden herausgelöst" msgid "Unknown revision!" msgstr "Unbekannte Revision!" msgid "Detected uncommitted local changes." msgstr "Nicht übernommene lokale Änderungen gefunden:" msgid "Do you want to keep them or discard them?" msgstr "Wollen Sie sie behalten oder verwerfen?" msgid "&Keep (--keep)" msgstr "&Behalten (--keep)" msgid "&Discard (--force)" msgstr "&Verwerfen (--force)" msgid "Confirm Strip" msgstr "Herauslösen bestätigen" #, python-format msgid "Strip - %s" msgstr "Herauslösen - %s" msgid "&Strip" msgstr "Heraus&lösen" msgid "Topic:" msgstr "" msgid "&Rename" msgstr "" #, python-format msgid "Topic - %s" msgstr "" #, python-format msgid "A topic named \"%s\" already exists" msgstr "" #, python-format msgid "Topic '%s' has been added" msgstr "" #, python-format msgid "Topic '%s' does not exist" msgstr "" #, python-format msgid "Topic '%s' has been removed" msgstr "" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "" msgid "Parent 1:" msgstr "Vorgänger 1:" msgid "Parent 2:" msgstr "Vorgänger 2:" msgid "Pull subrepos from:" msgstr "Unterarchive ziehen von:" msgid "List updated files (--verbose)" msgstr "Aktualisierte Dateien auflisten (--verbose)" msgid "Discard local changes, no backup (-C/--clean)" msgstr "Lokale Änderungen ungesichert abräumen (-C/--clean)" msgid "Always merge (when possible)" msgstr "Grundsätzlich zusammenführen (so möglich)" msgid "(same as parent)" msgstr "(wie beim Vorgänger)" msgid "Activate bookmark?" msgstr "Lesezeichen aktivieren?" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

                        Do " "you want to activate it?
                        You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" "Die gewählte Revision (%s) hat ein Lesezeichen namens \"%s\". Soll es " "aktiviert werden?\r\n" "

                        \r\n" "Diese Nachfrage kann in den Einstellungen (in \"Einstellungen/Werkbank/" "Aktuelle Lesezeichen\") deaktiviert werden." #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

                        Select " "the bookmark that you want to activate and click OK.

                        Click " "Cancel if you don't want to activate any of them.

                        You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                        " msgstr "" "Die gewählte Revision (%s) hat %d Lesezeichen.

                        \r\n" "Die Lesezeichen, die aktiviert werden sollen, auswählen und auf OK " "klicken.

                        \r\n" "Auf Abbrechen klicken um keines zu aktivieren.

                        \r\n" "Dieser Dialog kann in den Einstellungen (in \"Einstellungen/Werkbank/" "Aktuelle Lesezeichen\") deaktiviert werden.

                        " msgid "Deactivate current bookmark?" msgstr "Aktuelles Lesezeichen deaktivieren?" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "Sollen die %s Lesezeichen wirklich deaktiviert werden?" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" "Nicht übernommene lokale Änderungen in der Arbeitskopie festgestellt.\n" "Zum Fortfahren wählen Sie bitte:\n" msgid "Discard - discard local changes, no backup" msgstr "Verwerfen - lokale Änderungen ungesichert verwerfen" msgid "&Shelve" msgstr "Ver&stauen" msgid "Shelve - move local changes to a patch" msgstr "Stauraum - lokale Änderungen in einen Patch verschieben" msgid "Merge - allow to merge with local changes" msgstr "Zusammenführen - Zusammenführung mit allen lokalen Änderungen erlauben" msgid "Confirm Update" msgstr "Aktualisierung bestätigen" #, python-format msgid "Update - %s" msgstr "Aktualisieren - %s" msgid "[non-existant]" msgstr "[nicht vorhanden]" msgid "Tool launch failure" msgstr "Werkzeug konnte nicht gestartet werden" #, python-format msgid "%s : %s" msgstr "%s : %s" msgid "No diff tool found" msgstr "Kein Diff-Werkzeug gefunden" msgid "No visual diff tools were detected" msgstr "Es wurden keine grafischen Diff-Werkzeuge gefunden" msgid "[working copy]" msgstr "[Arbeitskopie]" msgid "[original]" msgstr "[Original]" msgid "Unable to find changeset" msgstr "Kann Änderungssatz nicht finden" msgid "You likely need to refresh this application" msgstr "Sie müsen wohl diese Anwendung aktualisieren" msgid "No file changes" msgstr "keine Dateiänderungen" msgid "There are no file changes to view" msgstr "keine Dateiänderungen zum Anzeigen" msgid "working changes" msgstr "aktuelle Ändrungen" #, python-format msgid "changeset %d:%s" msgstr "Änderungssatz %d:%s" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "Revisionen %d:%s bis %d:%s" msgid "Visual Diffs - " msgstr "Grafisches Diff - " msgid " filtered" msgstr " gefiltert" msgid "Temporary files are removed when this dialog is closed" msgstr "Temporäre Dateien werden entfernt, wenn dieser Dialog geschlossen wird" msgid "Select Tool:" msgstr "Werkzeug auswählen:" msgid "Dir diff to p1" msgstr "Gerichtetes Diff von Vorgänger 1" msgid "Dir diff to p2" msgstr "Gerichtetes Diff von Vorgänger 2" msgid "3-way dir diff" msgstr "3-Wege-Diffs" msgid "Directory diff" msgstr "Verzeichnis-Diffs" msgid "Confirm Discard" msgstr "Verwerfen bestätigen" msgid "Discard outstanding changes to working directory?" msgstr "" "Sollen die ausstehenden Änderungen im Arbeitsverzeichnis verworfen werden?" msgid "Config files (*.conf *.config *.ini)" msgstr "Konfigurationsdateien (*.conf *.config *.ini)" msgid "Open hgweb config" msgstr "Einstellungen von hgweb öffnen" msgid "Save hgweb config" msgstr "Einstellungen von hgweb speichern" msgid "Path:" msgstr "Verzeichnis:" msgid "Local Path:" msgstr "Lokales Verzeichnis:" msgid "Select Repository" msgstr "Projektarchiv auswählen" msgid "Add Path to Serve" msgstr "Zu veröffentlichenden Pfad hinzufügen" msgid "Edit Path to Serve" msgstr "Zu veröffentlichenden Pfad bearbeiten" msgid "Local Path" msgstr "Lokales Verzeichnis" msgid "Webconf" msgstr "Web-Einstellungen" msgid "Config File:" msgstr "Einstellungsdatei:" msgid "Open" msgstr "Öffnen" msgid "New &Workbench" msgstr "Neue &Werkbank" msgid "&New Repository..." msgstr "&Neues Projektarchiv..." msgid "Clon&e Repository..." msgstr "Archiv &klonen..." msgid "&Open Repository..." msgstr "Projektarchiv ö&ffnen..." msgid "&File" msgstr "&Datei" msgid "&View" msgstr "&Anzeige" msgid "&Repository" msgstr "&Projektarchiv" msgid "&Help" msgstr "&Hilfe" msgid "&Dock Toolbar" msgstr "Symbolleiste &anheften" msgid "&Task Toolbar" msgstr "&Aufgaben-Symbolleiste" msgid "&Custom Toolbar" msgstr "&frei konfigurierbare Symbolleiste" msgid "S&ync Toolbar" msgstr "&Synchronisier-Symbolleiste" msgid "&Close Repository" msgstr "Projektarchiv &schließen" msgid "Sh&ow Repository Registry" msgstr "Archivregistrierung &anzeigen" msgid "Show &Patch Queue" msgstr "&Patch-Warteschlange anzeigen" msgid "Show Conso&le" msgstr "Konsole anzeigen" msgid "Place Console in Doc&k Area" msgstr "Konsole im Dock Bereich platzieren" msgid "R&epository Registry Options" msgstr "Archivregistrierungs-&Einstellungen" msgid "Save Open Repositories on E&xit" msgstr "Offene Archive beim Be&enden speichern" msgid "Sa&ve Current Sync Paths on Exit" msgstr "Speichere aktuelle Synchronisierungs Pfade beim Beenden" msgid "Show Tas&k Tab" msgstr "" msgid "&Commit" msgstr "Ü&bernehmen" msgid "&Patch Branch" msgstr "Patch-&Zweig" msgid "Revision &Details" msgstr "&Einzelheiten zur Revision" msgid "&Search" msgstr "&Suchen" msgid "S&ynchronize" msgstr "S&ynchronisieren" msgid "Refresh current repository" msgstr "Ausgewähltes Archiv aktualisieren" msgid "Refresh &Task Tab" msgstr "Aufgaben&reiter aktualisieren" msgid "Refresh only the current task tab" msgstr "Nur den aktuellen Aufgabenreiter aktualisieren" msgid "Load &All Revisions" msgstr "&Alle Revisionen laden" msgid "Load all revisions into graph" msgstr "Alle Revisionen in die Grafik laden" msgid "Go to current revision" msgstr "Zur aktuellen Revision wechseln" msgid "&Goto Revision..." msgstr "&Springe zu Revision..." msgid "Go to a specific revision" msgstr "Zu einer bestimmten Revision wechseln" msgid "Filter graph with revision sets or branches" msgstr "Grafische Darstellung bezüglich Revisionsmengen oder Zweigen filtern" msgid "&Workbench Toolbars" msgstr "&Werkbank-Symbolleisten" msgid "&Lock File..." msgstr "" msgid "Lock or unlock files" msgstr "" msgid "Update working directory or switch revisions" msgstr "Arbeitsverzeichnis aktualisieren oder Revisionen wechseln" msgid "&Shelve..." msgstr "&Verstauen..." msgid "&Import Patches..." msgstr "Patches %importieren" msgid "U&nbundle..." msgstr "E&ntbündeln..." msgid "&Merge..." msgstr "&Zusammenführen ..." msgid "Merge with the other head of the current branch" msgstr "Mit dem anderen Kopf des aktuellen Zweigs zusammenführen" msgid "&Resolve..." msgstr "&Auflösen..." msgid "R&ollback/Undo..." msgstr "Zurück&rollen/Rückgängig..." msgid "&Purge..." msgstr "&Bereinigen..." msgid "&Bisect..." msgstr "&Aufspüren..." msgid "&Verify" msgstr "Ü&berprüfen" msgid "Re&cover" msgstr "&Wiederherstellen" msgid "&Web Server" msgstr "&Web-Server" msgid "E&xplorer Help" msgstr "E&xplorer-Hilfe" msgid "&Readme" msgstr "&Lies-mich" msgid "About &Qt" msgstr "Über &Qt" msgid "&About TortoiseHg" msgstr "Ü&ber TortoiseHg" msgid "&Incoming" msgstr "E&ingehend" msgid "&Pull" msgstr "&Abrufen" msgid "&Outgoing" msgstr "&Ausgehend" msgid "P&ush" msgstr "Ver&senden" msgid "&Sync Bookmarks..." msgstr "Lesezeichen &synchronisieren" #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" "pull: %s\n" "push: %s" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" "Es gibt keine konfigurierten Synchronisierungspfade.\n" "Öffnen Sie den Synchronisieren-Reiter, um sie festzulegen." msgid "Check for incoming changes" msgstr "Prüfe auf eingehende Änderungen" msgid "Pull incoming changes" msgstr "Eingehende Änderungen abrufen" msgid "Detect outgoing changes" msgstr "Ausgehende Änderungen erkennen" msgid "Push outgoing changes" msgstr "Ausgehende Änderungen versenden" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" "Prüfe auf eingehende Änderungen von\n" "%s" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" "Eingehende Änderungen ziehen von\n" "%s" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" "Prüfe auf ausgehende Änderungen nach\n" "%s" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" "Ausgehende Änderungen versenden nach\n" "%s" #, python-format msgid "Execute custom tool '%s'" msgstr "Benutzerdefiniertes Werkzeug '%s' ausführen" msgid "Custom Toolbar &Settings" msgstr "Angepasste Werkzeugleisten&einstellungen" msgid "TortoiseHg Workbench" msgstr "TortoiseHg-Werkbank" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "%s - TortoiseHg-Werkbank - %s" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "%s - TortoiseHg-Werkbank" msgid "Goto revision" msgstr "Zur Revision springen" msgid "Enter revision identifier" msgstr "Revisionsbezeichner eingeben" msgid "Select repository directory to open" msgstr "Zum Öffnen eines Archivs wählen Sie sein Verzeichnis" msgid "README not configured" msgstr "LIESMICH ist nicht konfiguriert" msgid "" "A README file is not configured for the current repository.

                        To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" "Eine LIESMICH-Datei ist für das aktuelle Archiv nicht konfiguriert.

                        Um " "eine Liesmich-Datei für ein Archiv zu konfigurieren, öffnen Sie die " "Einstellungsdatei des Archivs, fügen den Schlüssel 'readme' dem " "Abschnitt 'tortoisehg' hinzu, und setzen es auf den Dateinamen oder " "die URL der LIESMICH-Datei Ihres Archivs." msgid "Issue Tracker Plugin Error" msgstr "Fehler im Plugin für das Ticketing-System" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "" "Kann das COM-Objekt zum Kommunikation mit dem Ticketing-System nicht " "instantiieren" msgid "This error will not be shown again until you restart the workbench" msgstr "" "Dieser Fehler wird nicht wieder angezeigt, bis Sie die Werkbank erneut " "starten." msgid "Error getting commit message information from Issue Tracker plugin" msgstr "Fehler beim Abruf der Versionsmeldung aus dem Ticketing-System" msgid "Error executing \"commit finished\" trigger" msgstr "Fehler beim Ausführen des Triggers \"Übernahme abgeschlossen\"" msgid "Cannot open Plugin Options dialog" msgstr "Kann den Plugin-Einstellungen-Dialog nicht öffnen" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "" msgid "[--insecure] [SOURCE]" msgstr "" #, python-format msgid "unsupported URL: %s" msgstr "Nicht unterstützte URL: %s" #, python-format msgid "%s certificate error: no certificate received" msgstr "%s Zertifikat Fehler: kein Zertifikat empfangen" msgid "move after the specified patch" msgstr "Hinter den angegebenen Patch verschieben" msgid "[--after PATCH] PATCH..." msgstr "[--after Patch] Patch..." msgid "unknown patch to move specified" msgstr "Unbekannter Patch für die Verschiebung angegeben" msgid "invalid patch position specified" msgstr "Ungültige Patch-Position angegeben" msgid "cannot move applied patches" msgstr "Bereits angewandte Patches können nicht verschoben werden" #, python-format msgid "patch %s not in series" msgstr "Patch %s nicht in der Liste enthalten" msgid "cannot move into applied patches" msgstr "Zwischen die angewandten Patches verschieben unmöglich" msgid "abort: " msgstr "abgebrochen: " msgid "hint: " msgstr "Tipp: " #, python-format msgid "HTTP Error: %d (%s)" msgstr "HTTP-Fehler: %d (%s)" #, python-format msgid "URLError: %s" msgstr "URL-Fehler: %s" msgid "SSL: Server certificate verify failed" msgstr "Verifikation des SSL-Serverzertifikats gescheitert" #, python-format msgid "SSL: unknown error %s:%s" msgstr "Unbekannter SSL-Fehler %s:%s" #, python-format msgid "SSL error: %s" msgstr "SSL-Fehler: %s" msgid "hgsubversion packaged with thg" msgstr "hgsubversion im Paket mit thg" msgid "hggit packaged with thg" msgstr "hggit im Paket mit thg" msgid "inotify is not supported on this platform" msgstr "In dieser Systemumgebung wird inotify nicht unterstützt" msgid "eol is incompatible with win32text" msgstr "Das Zeilenende ist mit Text unter Windows x86 nicht vereinbar" msgid "win32text is incompatible with eol" msgstr "Windows x86 ist mit dem Zeilenende nicht vereinbar" msgid "hgsubversion is incompatible with perfarce" msgstr "hgsubversion ist mit perfarce nicht vereinbar" msgid "perfarce is incompatible with hgsubversion" msgstr "perfarce ist mit hgsubversion nicht vereinbar" msgid "Workbench custom toolbar" msgstr "Selbstdefinierte Werkbank-Symbolleiste" msgid "Revision details context menu" msgstr "Revisions-Details-Kontextmenü" msgid "Pair selection context menu" msgstr "" msgid "Multiple selection context menu" msgstr "" msgid "Commit context menu" msgstr "Übernahme-Kontextmenü" msgid "File context menu (on manifest and revision details)" msgstr "Datei-Kontextmenü (bezüglich Manifest- und Revisionsdetails)" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "%d Jahr" msgstr[1] "%d Jahre" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "%d Monat" msgstr[1] "%d Monate" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "%d Woche" msgstr[1] "%d Wochen" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "%d Tag" msgstr[1] "%d Tage" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "%d Stunde" msgstr[1] "%d Stunden" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "%d Minute" msgstr[1] "%d Minuten" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d Sekunde" msgstr[1] "%d Sekunden" msgid "in the future" msgstr "in der Zukunft" msgid "now" msgstr "jetzt" #, python-format msgid "command parse error: %s" msgstr "Fehler beim Verarbeiten (parse) des Befehls: %s" #, python-format msgid "no matches found: %s" msgstr "Keine Treffer gefunden: %s" msgid "Commit..." msgstr "Übernehmen..." msgid "Commit changes in repository" msgstr "Änderungen in das Archiv übernehmen" msgid "Create Repository Here" msgstr "Hier ein Projektarchiv erstellen" msgid "Create a new repository" msgstr "Ein neues Projektarchiv erstellen" msgid "Clone..." msgstr "Klonen..." msgid "Create clone here from source" msgstr "Hier Klon von Quelle erstellen" msgid "File Status" msgstr "Dateizustand" msgid "Repository status & changes" msgstr "Zustand des Projektarchivs und Änderungen" msgid "Add Files..." msgstr "Dateien hinzufügen..." msgid "Add files to version control" msgstr "Dateien unter Versionskontrolle bringen" msgid "Revert Files..." msgstr "Dateien wiederherstellen..." msgid "Revert file changes" msgstr "Wiederherstellen und Dateiänderungen verwerfen" msgid "Forget Files..." msgstr "Dateien vergessen..." msgid "Remove files from version control" msgstr "Dateien aus der Versionskontrolle entfernen" msgid "Remove Files..." msgstr "Dateien entfernen..." msgid "Rename File" msgstr "Datei umbenennen" msgid "Rename file or directory" msgstr "Datei oder Verzeichnis umbenennen" msgid "View change history in repository" msgstr "Änderungshistorie im Projektarchiv anzeigen" msgid "File History" msgstr "Dateihistorie" msgid "View change history of selected files" msgstr "Änderungshistorie der ausgewählten Dateien ansehen" msgid "Shelve Changes" msgstr "Stauraum-Änderungen" msgid "Move changes between working dir and patch" msgstr "Verschiebt Änderungen zwischen dem Arbeitsverzeichnis und dem Patch" msgid "Synchronize" msgstr "Abgleichen" msgid "Synchronize with remote repository" msgstr "Mit dem entfernten Projektarchiv abgleichen" msgid "Start web server for this repository" msgstr "Web-Server für dieses Projektarchiv starten" msgid "Update..." msgstr "Aktualisieren..." msgid "Update working directory" msgstr "Arbeitsverzeichnis aktualisieren" msgid "Update Icons" msgstr "Symbole aktualisieren" msgid "Update icons for this repository" msgstr "Symbole für dieses Projektarchiv aktualisieren" msgid "Global Settings" msgstr "Allgemeine Einstellungen" msgid "Configure user wide settings" msgstr "Die benutzerweit gültigen Einstellungen bearbeiten" msgid "Repository Settings" msgstr "Archiveinstellungen" msgid "Configure repository settings" msgstr "Archiveinstellungen bearbeiten" msgid "Explorer Extension Settings" msgstr "Einstellungen für die Explorer-Erweiterungen" msgid "Configure Explorer extension" msgstr "Explorer-Erweiterungs-Einstellungen bearbeiten" msgid "About TortoiseHg" msgstr "Über TortoiseHg" msgid "Show About Dialog" msgstr "Dialog \"Über TortoiseHg\" anzeigen" msgid "Diff to parent" msgstr "Diff gegenüber Vorgänger" msgid "View changes using GUI diff tool" msgstr "Änderungen im grafischen Diff-Werkzeug anzeigen" msgid "Edit Ignore Filter" msgstr "Ausschlussfilter bearbeiten" msgid "Edit repository ignore filter" msgstr "Den Ausschlussfilter des Projektarchivs bearbeiten" msgid "Guess Renames" msgstr "Umbenennungen erraten" msgid "Detect renames and copies" msgstr "Umbenennungen und Kopien erkennen" msgid "Search History" msgstr "Historie durchsuchen" msgid "Search file revisions for patterns" msgstr "Dateirevisionen nach Mustern durchsuchen" msgid "DnD Synchronize" msgstr "Ziehen-Ablegen-Abgleich" msgid "Synchronize with dragged repository" msgstr "Mit dem verschobenen Projektarchiv abgleichen" #, python-format msgid "unrecognized response: %s" msgstr "unverstandene Antwort: %s" msgid "password: " msgstr "Passwort: " #, python-format msgid "repository %s not found" msgstr "Das Projektarchiv %s existiert nicht" msgid "win32ill: cannot create window for messages" msgstr "Win-32-Problem: Kann keine Fenster für Hinweise öffnen" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "Win-32-Problem: nicht unterstützte Plattform: %s\n" msgid "win32ill: interrupted while stopping message loop\n" msgstr "win32ill: unterbrochen beim Beenden der Nachrichtenschleife\n" #~ msgid "response expected" #~ msgstr "Antwort erwartet" #~ msgid "this is a binary file\n" #~ msgstr "das ist eine binäre Datei\n" #~ msgid " [Ynsfdaq?] " #~ msgstr " [Ynsfdaq?] " #~ msgid "user quit" #~ msgstr "benutzer beenden" #~ msgid " and " #~ msgstr " und " #~ msgid "cannot start server: " #~ msgstr "server kann nicht gestartet werden: " #~ msgid "listening at http://%s%s/%s (%s:%d)\n" #~ msgstr "hörend auf http://%s%s/%s (%s:%d)\n" #~ msgid "name of access log file to write to" #~ msgstr "name der Zugriff Log-Datei in die geschrieben wird" #~ msgid "run server in background" #~ msgstr "Server im Hintergrund starten" #~ msgid "used internally by daemon mode" #~ msgstr "intern benutzt im Daemon Modus" #~ msgid "name of error log file to write to" #~ msgstr "name der Fehler Log-Datei in die geschrieben wird" #~ msgid "name of file to write process ID to" #~ msgstr "Name der Datei in dem die Prozess ID gespeichert wird" #~ msgid "for remote clients" #~ msgstr "für remote Clients" #~ msgid "use IPv6 in addition to IPv4" #~ msgstr "benutze IPv6 zusätzlich zu IPv4" #~ msgid "SSL certificate file" #~ msgstr "SSL-Zertifikat-Datei" #~ msgid "[All Files]" #~ msgstr "[Alle Dateien]" #~ msgid "Please enter a valid source path" #~ msgstr "Bitte einen gültigen Quellpfad angeben" #~ msgid "_Undo" #~ msgstr "_Rückgängig" #~ msgid "_Remove" #~ msgstr "_Entfernen" #~ msgid "_Add" #~ msgstr "_Hinzufügen" #~ msgid "Confirm Add/Remove" #~ msgstr "Bestätige Hinzufügen/Entfernen" #~ msgid "Info required" #~ msgstr "Information benötigt" #~ msgid "New Search" #~ msgstr "Neue Suche" #~ msgid "Invalid path" #~ msgstr "Ungültiger Pfad" #~ msgid "Start this search" #~ msgstr "Starte diese Suche" #~ msgid "Matches" #~ msgstr "Treffer" #~ msgid "Show all matching revisions" #~ msgstr "Alle passenden Revisionen anzeigen" #~ msgid "Show line numbers" #~ msgstr "Zeilennummern anzeigen" #~ msgid "Search %d" #~ msgstr "Suche %d" #~ msgid "You must provide a search expression" #~ msgstr "Sie müssen einen Suchausdruck angeben" #~ msgid "Search \"%s\"" #~ msgstr "Suche \"%s\"" #~ msgid "edit failed" #~ msgstr "Bearbeitung fehlgeschlagen" #~ msgid " Aborted" #~ msgstr " Abgebrochen" #~ msgid "Differences from Source to Dest" #~ msgstr "Unterschiede zwischen Quelle und Ziel" #~ msgid "Unrevisioned Files" #~ msgstr "Unversionierte Dateien finden" #~ msgid "Save File" #~ msgstr "Datei speichern" #~ msgid "" #~ "== %s and %s have identical contents ==\n" #~ "\n" #~ msgstr "" #~ "== %s und %s haben den selben Inhalt ==\n" #~ "\n" #~ msgid "You must specify a sender address" #~ msgstr "Sie müssen ein Absenderadresse angeben" #~ msgid "You must specify a recipient" #~ msgstr "Sie müssen einen Empfänger angeben" #~ msgid "You must configure SMTP" #~ msgstr "Sie müssen SMTP konfigurieren" #~ msgid "Filters" #~ msgstr "Filter" #~ msgid "Unknown Files" #~ msgstr "Unbekannte Dateien" #~ msgid "Glob:" #~ msgstr "Glob:" #~ msgid "hgtk %s: %s\n" #~ msgstr "hgtk %s: %s\n" #~ msgid "hgtk: %s\n" #~ msgstr "hgtk: %s\n" #~ msgid "Changeset Description" #~ msgstr "Beschreibung des Änderungssatzes" #~ msgid "Toggle _Wordwrap" #~ msgstr "_Zeilenumbruch ein-/ausschalten" #~ msgid "Clone" #~ msgstr "Klonen" #~ msgid "commit" #~ msgstr "übernehmen" #~ msgid "_Commit" #~ msgstr "Ü_bernehmen" #~ msgid "close branch: " #~ msgstr "Zweig schliessen: " #~ msgid "new branch: " #~ msgstr "neuer Zweig: " #~ msgid "Re_vert" #~ msgstr "_Zurücksetzen" #~ msgid "Nothing Commited" #~ msgstr "Nichts übernommen" #~ msgid "Unable to create " #~ msgstr "Nicht erstellbar: " #~ msgid "Add/Remove the following files?" #~ msgstr "Die folgenden Dateien Hinzufügen/Entfernen?" #~ msgid "Confirm Commit" #~ msgstr "Übernahme bestätigen" #~ msgid "Commit: Invalid username" #~ msgstr "Übernahme: Ungültiger Benutzername" #~ msgid "" #~ "Your username has not been configured.\n" #~ "\n" #~ "Please configure your username and try again" #~ msgstr "" #~ "Ihr Benutzername wurde nicht konfiguriert.\n" #~ "\n" #~ "Bitte konfigurieren Sie den Benutzernamen und versuchen Sie es erneut." #~ msgid "Paste _Filenames" #~ msgstr "_Dateinamen einfügen" #~ msgid "The summary line is not followed by a blank line" #~ msgstr "Der Zusammenfassungszeile folgt keine Leerzeile" #~ msgid "App_ly Format" #~ msgstr "_Format anwenden" #~ msgid "The summary line length of %i is greater than %i" #~ msgstr "Die Länge der Zusammenfassungszeile von %i ist größer als %i" #~ msgid "Stop operation on current tab" #~ msgstr "Vorgang auf aktuellem Reiter abbrechen" #~ msgid "" #~ "Comma separated list of exclusion patterns. Exclusion patterns are " #~ "applied after inclusion patterns." #~ msgstr "" #~ "Kommagetrennte Liste mit ausschliessenden Mustern. Diese Muster werden " #~ "nach den Einschliessenden angewendet." #~ msgid "Unable to annotate " #~ msgstr "Annotieren nicht möglich: " #~ msgid "No regular expression given" #~ msgstr "Kein regulärer Ausdruck" #~ msgid "making snapshot of %d files from rev %s\n" #~ msgstr "erstelle Momentaufnahmen von %d Dateien ab Revision %s\n" #~ msgid "Select Folder" #~ msgstr "Ordner auswählen" #~ msgid "All files" #~ msgstr "Alle Dateien" #~ msgid "Accept Match" #~ msgstr "Treffer akzeptieren" #~ msgid "finding source of " #~ msgstr "Suche Original von " #~ msgid "Find Copies" #~ msgstr "Kopien finden" #~ msgid "Candidate Matches" #~ msgstr "Mögliche Treffer" #~ msgid "Remove Selected" #~ msgstr "Gewählte entfernen" #~ msgid "this modifies a binary file (all or nothing)\n" #~ msgstr "Dies verändert eine binäre Datei (alles oder nichts)\n" #~ msgid "restoring %r to %r\n" #~ msgstr "Stelle %r als %r wieder her\n" #~ msgid "rename takes one or two path arguments" #~ msgstr "rename brauht ein oder zwei Argumente" #~ msgid "(No help text available)" #~ msgstr "(kein Hilfetext verfügbar)" #~ msgid "hgtk about" #~ msgstr "hgtk about" #~ msgid "hgtk add [FILE]..." #~ msgstr "hgtk add [Datei]..." #~ msgid "hgtk datamine" #~ msgstr "hgtk datamine" #~ msgid "revisions to compare" #~ msgstr "Revisionen zum Vergleichen" #~ msgid "limit number of changes displayed" #~ msgstr "Begrenzt die Anzahl der angezeigten Änderungen" #~ msgid "hgtk recovery" #~ msgstr "hgtk recovery" #~ msgid "hgtk merge" #~ msgstr "hgtk merge" #~ msgid "hgtk synch" #~ msgstr "hgtk synch" #~ msgid "hgtk shelve" #~ msgstr "hgtk shelve" #~ msgid "hgtk repoconfig" #~ msgstr "hgtk repoconfig" #~ msgid "hgtk guess" #~ msgstr "hgtk guess" #~ msgid "hgtk userconfig" #~ msgstr "hgtk userconfig" #~ msgid "udpate all repos in current dir" #~ msgstr "Alle Projektverzeichnisse im akutellen Verzeichnis aktualisieren" #~ msgid "[-o] CMD" #~ msgstr "[-o] BEF" #~ msgid "_Filter" #~ msgstr "_Filter" #~ msgid "show the command options" #~ msgstr "Zeigt alle Optionen des Befehls" #~ msgid "Reload revision history" #~ msgstr "Revisionshistorie neu laden" #~ msgid "Re_fresh" #~ msgstr "A_ktualisieren" #~ msgid "Custom Filter" #~ msgstr "Benutzerdefinierter Filter" #~ msgid "Write bundle to" #~ msgstr "Schreibe Bündel in" #~ msgid "Apply" #~ msgstr "Anwenden" #~ msgid "Invalid date specification" #~ msgstr "ungültige Datumsangabe" #~ msgid "ID" #~ msgstr "ID" #~ msgid "Universal Date" #~ msgstr "Universelles Datum" #~ msgid "Merge target (other)" #~ msgstr "Ziel zum Zusammenführen (anderes)" #~ msgid "Undo" #~ msgstr "Rückgängig" #~ msgid "Must supply a target revision" #~ msgstr "braucht eine Zielversion" #~ msgid "Summary" #~ msgstr "Zusammenfassung" #~ msgid "Stop the hg operation" #~ msgstr "Vorgang von hg abbrechen" #~ msgid "Confirm undo merge" #~ msgstr "Rückgängig bestätigen" #~ msgid "command is running" #~ msgstr "Befehl wird ausgeführt" #~ msgid "Start server" #~ msgstr "Server starten" #~ msgid "Stop server" #~ msgstr "Server anhalten" #~ msgid "rename error" #~ msgstr "Fehler beim umbenennen" #~ msgid "[command interrupted]" #~ msgstr "[Befehl unterbrochen]" #~ msgid "Cannot run now" #~ msgstr "Auführen jetzt nicht möglich" #~ msgid "Configure" #~ msgstr "Konfigurieren" #~ msgid "HTTP Port:" #~ msgstr "HTTP Port:" #~ msgid "Defaulting to " #~ msgstr "Voreingestellt auf " #~ msgid "Invalid port 2048..65535" #~ msgstr "Unerlaubte Ports 2048..65535" #~ msgid "Confirm Really Exit?" #~ msgstr "Wirklich beenden?" #~ msgid "prefix path to serve from (default: server root)" #~ msgstr "Pfadpräfix von dem ausgeliefert wird (Standard: Serverwurzel '/')" #~ msgid "address to use" #~ msgstr "nutze Adresse" #~ msgid "port to use (default: 8000)" #~ msgstr "nutze Port (Vorgabe: 8000)" #~ msgid "hg serve [OPTION]..." #~ msgstr "hg serve [OPTION]..." #~ msgid "web templates to use" #~ msgstr "Zu nutzende Web-Vorlagen" #~ msgid "_delete" #~ msgstr "_löschen" #~ msgid "refresh" #~ msgstr "Aktualisieren" #~ msgid "path" #~ msgstr "Pfad" #~ msgid "ms" #~ msgstr "ms" #~ msgid "A: added" #~ msgstr "A: hinzugefügt" #~ msgid "R: removed" #~ msgstr "R: entfernt" #~ msgid "!: deleted" #~ msgstr "!: gelöscht" #~ msgid "?: unknown" #~ msgstr "?: unbekannt" #~ msgid "st" #~ msgstr "st" #~ msgid "Remove is not enabled when multiple revisions are specified." #~ msgstr "" #~ "Entfernen ist nicht erlaubt wenn mehrere Revisionen angegeben wurden" #~ msgid "Nothing Removed" #~ msgstr "nichts entfernt" #~ msgid "Nothing Moved" #~ msgstr "nichts verschoben" #~ msgid "Nothing Copied" #~ msgstr "nichts kopiert" #~ msgid "Copy is not enabled when multiple revisions are specified." #~ msgstr "Kopieren ist nicht erlaubt wenn mehrere Revisionen angegeben wurden" #~ msgid "Copy file to" #~ msgstr "Kopiere Datei zu" #~ msgid "I: ignored" #~ msgstr "I: ignoriert" #~ msgid "Move is not enabled when multiple revisions are specified." #~ msgstr "" #~ "Verschieben ist nicht erlaubt wenn mehrere Revisionen angegeben wurden" #~ msgid "Move files to directory..." #~ msgstr "Verschiebe Dateien in das Verzeichnis..." #~ msgid "No addable files selected" #~ msgstr "Keine gewählte Datei kann hinzugefägt werden" #~ msgid "No removable files selected" #~ msgstr "Keine gewählte Datei kann entfernt werden" #~ msgid "Nothing Added" #~ msgstr "Nichts hinzugefügt" #~ msgid "Confirm Delete Unrevisioned" #~ msgstr "Löschen bestätigen" #~ msgid "Cannot move outside repo!" #~ msgstr "Kann nicht aus dem Projektverzeichnis verschieben!" #~ msgid "Delete the following unrevisioned files?" #~ msgstr "Soll die folgende nicht überwachte Datei gelöscht werden?" #~ msgid " Pull " #~ msgstr " Herunterladen " #~ msgid "Delete Errors" #~ msgstr "Fehler beim Löschen" #~ msgid "" #~ "No movable files selected\n" #~ "\n" #~ "Note: only clean files can be moved." #~ msgstr "" #~ "Keine gewählte Datei kann verschoben werden\n" #~ "\n" #~ "Bemerkung: nur unveränderte Dateien können verschoben werden." #~ msgid "Incoming" #~ msgstr "Eingehend" #~ msgid "C: clean" #~ msgstr "C: unverändert" #~ msgid "Outgoing" #~ msgstr "Ausgehend" #~ msgid "Nothing" #~ msgstr "Nichts" #~ msgid "Advanced Options" #~ msgstr "Erweiterte Optionen" #~ msgid "Update to branch tip" #~ msgstr "auf Zweigspitze aktualisieren" #~ msgid "Incoming/Outgoing" #~ msgstr "Eingehend/Ausgehend" #~ msgid "Select Bundle" #~ msgstr "Wählen Sie die Bündeldatei" #~ msgid "unknown sort key '%s'" #~ msgstr "Unbekannter Sortierungsschlüssel '%s'" #~ msgid "Bundle (*.hg)" #~ msgstr "Bündel (*.hg)" #~ msgid "Bundle (*)" #~ msgstr "Bündel (*)" #~ msgid "Tagging completed" #~ msgstr "Etikettieren abgeschlossen" #~ msgid "Error in tagging" #~ msgstr "Fehler beim Etikettieren" #~ msgid "Highlight the taskbar icon during activity" #~ msgstr "Taskleisten-Icon bei aktivität hervorheben" #~ msgid "Bottom Diffs" #~ msgstr "Vergleich unten" #~ msgid "Specify the visual editor used to view files, etc" #~ msgstr "" #~ "Geben sie den visuellen Editor an, mit dem zum Beispiel Dateien angezeigt " #~ "werden" #~ msgid "Maximum number of files to list per changeset." #~ msgstr "Maximale Anzahl Dateien, die pro Änderungssatz aufgeführt wird." #~ msgid "Character encoding name" #~ msgstr "Name des Zeichensatzes" #~ msgid "Folder" #~ msgstr "Ordner" #~ msgid "Overwrite existing '%s' path?" #~ msgstr "Existierenden Pfad '%s' überschreiben?" #~ msgid "_Edit" #~ msgstr "_Bearbeiten" #~ msgid "Skipped saving path with no alias" #~ msgstr "Pfad ohne Alias nicht gespeichert" #~ msgid "Set as _default" #~ msgstr "als _Voreinstellung" #~ msgid "_Test" #~ msgstr "_Test" #~ msgid "Suggested" #~ msgstr "Vorgeschlagen" #~ msgid "set aside selected changes" #~ msgstr "Gewählte Änderungen zur Seite stellen" #~ msgid "changeset " #~ msgstr "Änderungssatz " #~ msgid "History" #~ msgstr "Historie" #~ msgid "Envelope" #~ msgstr "Umschlag" #~ msgid "unhandled transition: %s -> %s" #~ msgstr "Unbehandelter Übergang: %s -> %s" #~ msgid "Bundle:" #~ msgstr "Bündel:" #~ msgid "Maximum number of changes to list on the changelog." #~ msgstr "" #~ "Maximale Anzahl Änderungssätze, die in der Historieanzeige angezeigt " #~ "werden" #~ msgid "Rollback" #~ msgstr "Zurückrollen" #~ msgid "Confirm rollback repository" #~ msgstr "Zurückrollen bestätigen" #~ msgid " %s is larger than the specified max diff size" #~ msgstr " %s ist grösser als die maximal konfigurierte Vergleich-Grösse" #~ msgid "File is unrevisioned" #~ msgstr "Datei wird nicht verwaltet" #~ msgid "mark new/missing files as added/removed before shelving" #~ msgstr "" #~ "Vor dem zwischenlagern neue und fehlende Dateien als hinzugefügt, " #~ "respektive entfernt, markieren" #~ msgid "Repo:" #~ msgstr "Proj.arch.:" #~ msgid "Fetch" #~ msgstr "Abrufen" #~ msgid "Error: %s" #~ msgstr "Fehler: %s" #~ msgid "Abort: %s" #~ msgstr "Abgebrochen: %s" #~ msgid "(version %s)" #~ msgstr "(Version %s)" #~ msgid "with %s" #~ msgstr "mit %s" #~ msgid "Rename error" #~ msgstr "Fehler beim Umbenennen" #~ msgid "Try &Again" #~ msgstr "nochmals &Versuchen" #~ msgid "&Quit" #~ msgstr "&Beenden" #~ msgid "Invalid regular expression" #~ msgstr "Ungültiger regulärer Ausdruck" #~ msgid "Unable to delete temp files" #~ msgstr "Temporäre Dateien konnten nicht gelöscht werden" #~ msgid "Do you want to abort?" #~ msgstr "Möchten Sie abbrechen?" #~ msgid "Confirm Abort" #~ msgstr "Abbrechen bestätigen" #~ msgid "Failed to archive" #~ msgstr "Archivierung fehlgeschlagen" #~ msgid "Canceled archiving" #~ msgstr "Archivierung abgebrochen" #~ msgid "All Files (*.*)" #~ msgstr "Alle Dateien (*.*)" #~ msgid "A new version of TortoiseHg is ready for download!" #~ msgstr "Eine neue Version von TortoiseHg steht zum Download bereit!" #~ msgid "Error when creating repository" #~ msgstr "Fehler beim Erstellen des Projektarchivs" #~ msgid "Archive" #~ msgstr "Archivieren" #~ msgid "Archived successfully" #~ msgstr "Archivierung erfolgreich" #~ msgid "Failed to clone" #~ msgstr "Klonen fehlgeschlagen" #~ msgid "Merging in %s" #~ msgstr "Zusammenführen in %s" #~ msgid "Failed to merge" #~ msgstr "Zusammenführung fehlgeschlagen" #~ msgid "Cannot merge" #~ msgstr "Zusammenführen nicht möglich" #~ msgid "Canceled merging" #~ msgstr "Zusammenführung abgebrochen" #~ msgid "Failed" #~ msgstr "Fehlgeschlagen" #~ msgid "Canceled" #~ msgstr "Abgebrochen" #~ msgid "Successfully" #~ msgstr "Erfolgreich" #~ msgid "Rename " #~ msgstr "Umbenennen " #~ msgid "Configure web settings" #~ msgstr "Web-Einstellungen konfigurieren" #~ msgid "%s - serve" #~ msgstr "%s - Server" #~ msgid "" #~ "Server process is still running\n" #~ "Exiting will stop the server." #~ msgstr "" #~ "Der Server-Prozess läuft noch.\n" #~ "Beenden wird den Server anhalten." #~ msgid "%d selected, %d total" #~ msgstr "%d ausgewählt, %d insgesamt" #~ msgid "View" #~ msgstr "Ansicht" #~ msgid "Save Preview" #~ msgstr "Vorschau speichern" #~ msgid "View '%s'" #~ msgstr "Zeige '%s'" #~ msgid "" #~ "The destination \"%s\" already exists!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "Das Ziel \"%s\" existiert bereits!\n" #~ "\n" #~ "Wollen Sie es überschreiben?" #~ msgid "Old name:" #~ msgstr "Alter Name:" #~ msgid "unexpected type: %s" #~ msgstr "unerwarteter Typ: %s" #~ msgid "Bookmark \"%s\" has been added" #~ msgstr "Das Lesezeichen \"%s\" wurde hinzugefügt" #~ msgid "Bookmarking completed" #~ msgstr "Lesezeichen hinzugefügt" #~ msgid "Please enter bookmark name" #~ msgstr "Bitte geben Sie den Namen des Lesezeichens ein" #~ msgid "Bookmark \"%s\" has been moved" #~ msgstr "Das Lesezeichen \"%s\" wurde verschoben" #~ msgid "Bookmark name is empty" #~ msgstr "Der Name des Lesezeichens ist leer" #~ msgid "Bookmark \"%s\" has been renamed to \"%s\"" #~ msgstr "Das Lesezeichen \"%s\" wurde in \"%s\" umbenannt" #~ msgid "Bookmark \"%s\" has been removed" #~ msgstr "Das Lesezeichen \"%s\" wurde entfernt" #~ msgid "Please enter new bookmark name" #~ msgstr "Bitte geben Sie den Namen des Lesezeichens ein" #~ msgid "browser" #~ msgstr "Browser" #~ msgid "%s changeset " #~ msgstr "%s Änderungssatz " #~ msgid "Save as.." #~ msgstr "Speichern unter..." #~ msgid "type" #~ msgstr "Typ" #~ msgid "Advanced options" #~ msgstr "Erweiterte Einstellungen" #~ msgid "Source path:" #~ msgstr "Quellpfad:" #~ msgid "Unable to save file" #~ msgstr "Datei konnte nicht gespeichert werden" #~ msgid "Cloned successfully" #~ msgstr "Klonen erfolgreich" #~ msgid "Source and destination are the same" #~ msgstr "Quelle und Ziel sind identisch" #~ msgid "Use uncompressed transfer" #~ msgstr "Unkomprimierten Transfer verwenden" #~ msgid "Canceled updating" #~ msgstr "Aktualisierung abgebrochen" #~ msgid "Toolbar" #~ msgstr "Werkzeugleiste" #~ msgid "Advanced" #~ msgstr "Erweitert" #~ msgid "Always Show Output" #~ msgstr "Ausgabe immer anzeigen" #~ msgid "Parent: %(rev)s" #~ msgstr "Übergeordnet: %(rev)s" #~ msgid "Merge " #~ msgstr "Zusammenführen " #~ msgid "Updating..." #~ msgstr "Aktualisiere..." #~ msgid "Contents" #~ msgstr "Inhalt" #~ msgid "Loading history..." #~ msgstr "Lade Verlauf..." #~ msgid "Test" #~ msgstr "Testen" #~ msgid "Stop transaction" #~ msgstr "Transaktion beenden" #~ msgid "Flags:" #~ msgstr "Markierungen:" #~ msgid "Apply to:" #~ msgstr "Anwenden auf:" #~ msgid "" #~ "\n" #~ "[command interrupted]" #~ msgstr "" #~ "\n" #~ "[Befehl unterbrochen]" #~ msgid "Error in bookmarking" #~ msgstr "Fehler beim Setzen des Lesezeichens" #~ msgid "Please select bookmark name to remove" #~ msgstr "Bitte Lesezeichennamen zur Entfernung auswählen" #~ msgid "File is binary.\n" #~ msgstr "Die Datei enthält Binärdaten.\n" #~ msgid "File is larger than the specified max size.\n" #~ msgstr "Die Dateigröße überschreitet den vorgegebenen Maximalwert.\n" #~ msgid "TortoiseHg Clone" #~ msgstr "TortoiseHg-Klon" #~ msgid "Source path is empty" #~ msgstr "Das Quellverzeichnis ist leer." #~ msgid "Add special files (.hgignore, ...)" #~ msgstr "Spezialdaten (.hgignore, etc.) hinzufügen" #~ msgid "Please enter the directory path" #~ msgstr "Bitte geben Sie das Verzeichnis an" #~ msgid "Destination path is empty" #~ msgstr "Das Zielverzeichnis ist leer" #~ msgid "Unable to create new repository" #~ msgstr "Das neue Projektarchiv konnte nicht erstellt werden" #~ msgid "There is no Mercurial repository here (.hg not found)" #~ msgstr "Dies ist kein Mercurial-Archiv (Das Verzeichnis .hg fehlt)" #~ msgid "No repository found here" #~ msgstr "Hier gibt es kein Projektarchiv" #~ msgid "Repository Explorer" #~ msgstr "Archiv-Explorer" #~ msgid "Failed to preview, a bundle file unrelated to this repository" #~ msgstr "" #~ "Die Vorschau ist fehlgeschlagen, es handelt sich um eine Listendatei ohne " #~ "Bezug zu diesem Archiv" #~ msgid "Select a peer repository to compare with" #~ msgstr "Wählen Sie das andere Projektarchiv für den Vergleich" #~ msgid "Make repo compatible with Mercurial 1.0" #~ msgstr "Das Projektarchiv passend zu Mercurial 1.0 machen" #~ msgid "No repository selected" #~ msgstr "Es wurde kein Projektarchiv ausgewähltW" #~ msgid "" #~ "Comma separated list of inclusion patterns. By default, the entire " #~ "repository is searched." #~ msgstr "" #~ "Kommagetrennte List von Einschluss-Mustern. Standardmäßig wird das " #~ "gesamte Archiv durchsucht." #~ msgid "import to the repository" #~ msgstr "In das Projektarchiv importieren" #~ msgid "Repository Error: %s, refresh suggested" #~ msgstr "Projektarchiv-Fehler: %s, Aktualisierung empfohlen" #~ msgid "Rollback repository '%s' to %d, undo %s?" #~ msgstr "Projektarchiv '%s' zurückrollen auf %d, %s zurückrollen?" #~ msgid "Rollback repository '%s' to %d, undo %s from %s?" #~ msgstr "Projektarchiv '%s' zurückrollen auf %d, %s von %s zurückrollen?" #~ msgid "Validate repository consistency" #~ msgstr "Konsistenz des Projektarchivs prüfen" #~ msgid "Clean repository '%s' ?" #~ msgstr "Projektarchiv '%s' reinigen?" #~ msgid "Confirm clean repository" #~ msgstr "Projektarchiv-Reinigung bestätigen" #~ msgid "Launch browser to view repository" #~ msgstr "Einen Browser zur Ansicht des Projektarchivs starten" #~ msgid "Rollback repository '%s' ?" #~ msgstr "Projektarchiv '%s' zurückrollen?" #~ msgid "" #~ "Show a full directory path of the repository in the dialog title instead " #~ "of just the root directory name. Default: False" #~ msgstr "" #~ "Den vollständigen Archivpfad im Dialogkopf anzeigen anstatt des reinen " #~ "Verzeichnisnamens. Vorgabe: nein" #~ msgid "Run even when remote repository is unrelated." #~ msgstr "" #~ "Selbst dann ausführen, wenn das entfernte Projektarchiv keinen Bezug zu " #~ "den Änderungen hat." #~ msgid "Configure peer repository paths" #~ msgstr "Die Pfade der anderen Projektarchive anpassen" #~ msgid "Pull changes from selected repository" #~ msgstr "Änderungen aus dem gewählten Projektarchiv ziehen" #~ msgid "Display changes that can be pulled from selected repository" #~ msgstr "" #~ "Änderungen betrachten, die aus dem gewählten Projektarchiv gezogen werden " #~ "können" #~ msgid "%s will be imported to the repository" #~ msgstr "%s wird in das Archiv importiert" #~ msgid "Repository is empty" #~ msgstr "Das Projektarchiv ist leer" #~ msgid "Path testing cannot work without a repository" #~ msgstr "Die Pfadprüfung kann ohne Projektarchiv nicht funktionieren" #~ msgid "TortoiseHg Configure Repository - " #~ msgstr "TortoiseHG-Projektarchiveinstellungen bearbeiten - " #~ msgid "Repository Path" #~ msgstr "Projektarchivpfad" #~ msgid "" #~ "Repository name to use in the web interface. Default is the working " #~ "directory." #~ msgstr "" #~ "Der Archivname für den Einsatz in der Weboberfläche. Vorgabe ist der Name " #~ "des Arbeitsverzeichnisses." #~ msgid "Edit remote repository path" #~ msgstr "Pfad des entfernten Projektarchivs bearbeiten" #~ msgid "Remote repository paths" #~ msgstr "Entfernte Projektarchivpfade" #~ msgid "No Repository Found" #~ msgstr "Es wurde kein Projektarchiv gefunden" #~ msgid "Annotate" #~ msgstr "Kommentieren" #~ msgid "Discard all changes from merge target (other) revision" #~ msgstr "" #~ "Alle Änderungen durch die Zusammenführung mit der (anderen) Zielrevision " #~ "verwerfen" #~ msgid "tag '%s' is not a local tag" #~ msgstr "Das Etikett '%s' ist nicht lokal" #~ msgid "Minimum Simularity Percentage" #~ msgstr "Minimale Ähnlichkeit (in Prozent)" #~ msgid "revision number, changeset ID, branch or tag" #~ msgstr "Revisionsnummer, Änderungslisten-ID, Zweig oder Etikett" #~ msgid "tag '%s' is not a global tag" #~ msgstr "Das Etikett '%s' ist nicht global" #~ msgid "Tags" #~ msgstr "Etiketten" #~ msgid "Replace existing tag" #~ msgstr "Vorhandenes Etikett ersetzen" #~ msgid "Add/Remove _Tag..." #~ msgstr "_Etikett hinzufügen/entfernen..." #~ msgid "Tag input is empty" #~ msgstr "Das Etikett muss beschriftet werden" #~ msgid "Please enter tag name" #~ msgstr "Bitte das Etikett beschriften" #~ msgid "tagged revisions" #~ msgstr "etikettierte Revisionen" #~ msgid "Tagged" #~ msgstr "Etikettiert" #~ msgid "Tagged Revisions" #~ msgstr "Etikettierte Revisionen" #~ msgid "Tag" #~ msgstr "Etikett" #~ msgid "Tag is local" #~ msgstr "Das Etikett ist lokal" #~ msgid "Please select tag name to remove" #~ msgstr "Bitte wählen Sie zum Löschen ein Etikett" #~ msgid "tag '%s' does not exist" #~ msgstr "Ein Etikett namens \"%s\" gibt es nicht" #~ msgid "Tag \"%s\" has been added" #~ msgstr "Das Etikett \"%s\" wurde hinzugefügt" #~ msgid "a tag named \"%s\" already exists" #~ msgstr "Ein Etikett namens \"%s\" ist schon vorhanden" #~ msgid "Tag name is empty" #~ msgstr "Etikett unbeschriftet" #~ msgid "Reject" #~ msgstr "Verwerfen" #~ msgid "New Patch Name" #~ msgstr "Neuer Flicken-Name" #~ msgid "refresh top MQ patch" #~ msgstr "Obersten MQ-Flicken aktualisieren" #~ msgid "Patch Contents" #~ msgstr "Inhalte flicken" #~ msgid "Patch Preview" #~ msgstr "Flickenvorschau" #~ msgid "Show/Hide Patch Queue" #~ msgstr "Flickenschlange zeigen/verbergen" #~ msgid "create new MQ patch" #~ msgstr "Neuen MQ-Flicken erstellen" #~ msgid "%(count)d of %(total)d applied patches" #~ msgstr "%(count)d von %(total)d angewandte Flicken" #~ msgid "Current patch: %s, " #~ msgstr "Aktueller Flicken: %s, " #~ msgid "_Export Patch..." #~ msgstr "_Exportiere Flicken..." #~ msgid "Unable to apply patch" #~ msgstr "Konnte Flicken nicht anwenden" #~ msgid "Patch Series (Bundle) Description" #~ msgstr "Beschreibung der Beschreibung der Flickenserie bzw. des Bündels" #~ msgid "Patch Branch" #~ msgstr "Flickzweig" #~ msgid "Show/Hide Patch Branch" #~ msgstr "Flickzweig zeigen/verbergen" #~ msgid "mpatch error" #~ msgstr "Fehler beim Anwenden des Flicken" #~ msgid "mpatch expects *.rej file argument\n" #~ msgstr "mpatch erwartet eine *.rej-Datei als Parameter\n" #~ msgid "Email Mercurial Patches" #~ msgstr "Mercurial-Flicken per E-Mail versenden" #~ msgid "Select Patches" #~ msgstr "Flicken auswählen" #~ msgid "Select Directory contains patches:" #~ msgstr "Das ausgewählte Verzeichnis enthält Flicken:" #~ msgid "E_mail Patch..." #~ msgstr "Flicken per E-_Mail verschicken..." #~ msgid "Importing to Patch Queue..." #~ msgstr "Import in die Flickenschlange läuft..." #~ msgid "Save patches to" #~ msgstr "Flicken speichern unter" #~ msgid "Show patches" #~ msgstr "Flicken zeigen" #~ msgid "Export Patches from here to selected..." #~ msgstr "Flicken von hier in die Auswahl exportieren..." #~ msgid "Import patches" #~ msgstr "Flicken importieren" #~ msgid "" #~ "The editor to use during a commit and other instances where Mercurial " #~ "needs multiline input from the user. Used by command line commands, " #~ "including patch import." #~ msgstr "" #~ "Der Editor wird während einer Übernahme und zu anderen Gelegenheiten " #~ "eingesetzt, wenn Mercurial eine mehrzeilige Benutzereingabe benötigt. " #~ "Wird von Konsolenbefehlen eingesetzt einschließlich des Flickenimports." #~ msgid "Save patch to" #~ msgstr "Flicken speichern in" #~ msgid "" #~ "Do you want to fold following un-applied patches into the current patch " #~ "'%(qtip)s'?" #~ msgstr "" #~ "Wollen Sie die nachgenannten nicht angewandten Flickenmit dem " #~ "ausgewählten Flicken '%(qtip)s' zusammenkleben?" #~ msgid "Do you want to delete these patches?" #~ msgstr "Wollen Sie diese Flicken löschen?" #~ msgid "Unapply last patch" #~ msgstr "Letzten Flicken rückwärts anwenden" #~ msgid "Apply next patch" #~ msgstr "Nächsten Flicken anwenden" #~ msgid "" #~ "Do you want to fold un-applied patch '%(target)s' into current patch " #~ "'%(qtip)s'?" #~ msgstr "" #~ "Wollen Sie die nicht angewandten Flicken '%(target)s' mit dem " #~ "ausgewählten Flicken '%(qtip)s' zusammenkleben?" #~ msgid "" #~ "You cannot finish this patch branch unless you pmerge it first.\n" #~ "pmerge will solve the following issues with %(patch)s:\n" #~ "* %(issuelist)s" #~ msgstr "" #~ "Sie können diesen Flickzweig nicht abschließen, ohne ihn zunächst " #~ "zusammenzuführen (pmerge).\n" #~ "pmerge kümmert sich um die folgenden %(patch)s-Probleme:\n" #~ "* %(issuelist)s" #~ msgid "Patch" #~ msgstr "Flicken" #~ msgid "Applied MQ patch" #~ msgstr "Angewandter MQ-Flicken" #~ msgid "Patch branch finished" #~ msgstr "Flickzweig abgeschlossen" #~ msgid "applying patch\n" #~ msgstr "Flicken wird angewendet\n" #~ msgid "unknown patch content: %r" #~ msgstr "Unbekannter Inhalt im Flicken: %r" #~ msgid "Export" #~ msgstr "Exportieren" #~ msgid "_Visual Diff" #~ msgstr "Interaktiver :Vergleich" #~ msgid "Visual Diff with selected" #~ msgstr "Interaktiver Vergleich mit der Auswahl" #~ msgid "Visual Diffs" #~ msgstr "Interaktive Darstellung der Vergleichsergebnisse" #~ msgid "" #~ "** Please report this bug to http://bitbucket.org/tortoisehg/stable/" #~ "issues\n" #~ msgstr "" #~ "** Bitte berichten Sie diesen Fehler (möglichst auf Englisch) unter " #~ "http://bitbucket.org/tortoisehg/stable/issues\n" #~ msgid "No committable files selected" #~ msgstr "Keine übernehmbare Datei ausgewählt" #~ msgid "Open new search tab" #~ msgstr "Neuen Suchreiter öffnen" #~ msgid "Name of hg executable on remote machine." #~ msgstr "Name des hg-Programms auf dem entfernten Rechner." #~ msgid "Default Tab" #~ msgstr "Vorgabereiter" #~ msgid "Enable editable cells" #~ msgstr "Bearbeitbare Zellen aktivieren" #~ msgid "Load all Revisions" #~ msgstr "Alle Revisionen laden" #~ msgid "load all revisions" #~ msgstr "Alle Revisionen laden" #~ msgid "Shelve" #~ msgstr "Verstauen" #~ msgid "Shelve uncommited changes" #~ msgstr "Nicht übernommene Änderungen verstauen" #~ msgid "No changes to shelve" #~ msgstr "Keine verstaubaren Änderungen" #~ msgid "Launch shelve tool" #~ msgstr "Verstau-Werkzeug starten" #~ msgid "abandon shelved changes" #~ msgstr "Verstaute Änderungen verwerfen" #~ msgid "_Shelve" #~ msgstr "_Verstauen" #~ msgid "restore shelved changes" #~ msgstr "Verstaute Änderungen wiederherstellen" #~ msgid "Please select diff chunks to shelve" #~ msgstr "Bitte wählen Sie Änderungsblöcke zum Verstauen" #~ msgid "Unshelve" #~ msgstr "Ausräumen" #~ msgid "Shelve - launch Shelve tool and continue" #~ msgstr "Verstauen - Stauwerkzeug starten und fortsetzen" #~ msgid "shelve changes to %s?" #~ msgstr "Änderungen in %s verstauen?" #~ msgid "Unshelve Abort" #~ msgstr "Ausräumen abgebrochen" #~ msgid "Shelve file exists!" #~ msgstr "Stauraum-Datei bereits vorhanden!" #~ msgid "shelve this change to %r?" #~ msgstr "Diese Änderung in %r verstauen?" #~ msgid "shelve data already exists" #~ msgstr "Der Stauraum ist bereits gefüllt" #~ msgid "shelve can only be run interactively" #~ msgstr "Verstauen kann nur interaktiv durchgeführt werden" #~ msgid "Unshelve Error" #~ msgstr "Ausräum-Fehler" #~ msgid "abandoning shelved file\n" #~ msgstr "Verwerfe gestaute Datei\n" #~ msgid "nothing to unshelve\n" #~ msgstr "Nichts auszuräumen\n" #~ msgid "unshelve completed\n" #~ msgstr "Ausräumen abgeschlossen\n" #~ msgid "removing shelved patches\n" #~ msgstr "Entferne gestaute Flicken\n" #~ msgid "shelved file abandoned\n" #~ msgstr "Gestaute Datei verworfen\n" #~ msgid "applying shelved patch\n" #~ msgstr "Wende gestauten Flicken an\n" #~ msgid "removing shelve file\n" #~ msgstr "Entferne die Stauraum-Datei\n" #~ msgid "saving patch to shelve\n" #~ msgstr "Speichere die Flicken im Stauraum\n" #~ msgid "no changes to shelve\n" #~ msgstr "Keine Änderungen zu verstauen\n" #~ msgid "hg shelve [OPTION]... [FILE]..." #~ msgstr "hg shelve [Parameter]... [Datei]..." #~ msgid "append to existing shelve data" #~ msgstr "Daten im Stauraum ergänzen" #~ msgid "overwrite existing shelve data" #~ msgstr "Daten im Stauraum überschreiben" #~ msgid "inspect shelved changes only" #~ msgstr "Gestaute Änderungen nur prüfen" #~ msgid "hg unshelve [OPTION]... [FILE]..." #~ msgstr "hg unshelve [Parameter]... [Datei]..." #~ msgid "proceed even if patches do not unshelve cleanly" #~ msgstr "" #~ "Fortfahren, selbst wenn die Flicken sich nicht sauber ausräumen lassen" #~ msgid "Toolbar Style" #~ msgstr "Werkzeugleistenstil" #~ msgid "" #~ "Adjust the display of the main toolbar in the Repository Explorer. " #~ "Values: small, large, or theme. Default: theme" #~ msgstr "" #~ "Die Anzeige der Hauptwerkzeugleiste im Projektarchiv-Explorer anpassen. " #~ "Zulässige Werte: small (klein), large (groß), oder theme " #~ "(themenspezifisch.) Vorgabe: theme" #~ msgid "Import..." #~ msgstr "&Importieren..." #~ msgid "Verify" #~ msgstr "Über&prüfen" #~ msgid "Errors during rollback!" #~ msgstr "Fehler beim Zurückrollen!" #~ msgid "Bisect" #~ msgstr "Aufspüren" #~ msgid "_Help" #~ msgstr "_Hilfe" #~ msgid "use \"hgtk help\" for the full list of commands" #~ msgstr "Verwenden Sie \"hgtk help\" für eine vollständige Anweisungsliste" #~ msgid "" #~ "use \"hgtk help\" for the full list of commands or \"hgtk -v\" for details" #~ msgstr "" #~ "Verwenden Sie \"hgtk help\" für eine vollständige Anweisungsliste oder " #~ "\"hgtk -v\" für Detailangaben" #~ msgid "use \"hgtk -v help %s\" to show global options" #~ msgstr "Verwenden Sie \"hgtk -v help %s\", um globale Parameter anzuzeigen" #~ msgid "use \"hgtk -v help%s\" to show aliases and global options" #~ msgstr "" #~ "Verwenden Sie \"hgtk -v help%s\", um Kurzversionen und globale Parameter " #~ "anzuzeigen" #~ msgid "hgtk: unknown command '%s'\n" #~ msgstr "hgtk: unbekannte Anweisung '%s'\n" #~ msgid "" #~ "hgtk: command '%s' is ambiguous:\n" #~ " %s\n" #~ msgstr "" #~ "hgtk: der Befehl '%s' ist uneindeutig:\n" #~ " %s\n" #~ msgid "Hgtk - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" #~ msgstr "" #~ "hgtk - Grafische Oberfläche für das Mercurial-SCM (hg) von TortoiseHg\n" #~ msgid "hgtk clone SOURCE [DEST]" #~ msgstr "hgtk clone Quelle [Ziel]" #~ msgid "hgtk hgignore [FILE]" #~ msgstr "hgtk hgignore [Datei]" #~ msgid "hgtk commit [OPTIONS] [FILE]..." #~ msgstr "hgtk commit [Parameter] [Datei]..." #~ msgid "hgtk log [OPTIONS] [FILE]" #~ msgstr "hgtk log [Parameter] [Datei]" #~ msgid "hgtk init [DEST]" #~ msgstr "hgtk init [Ziel]" #~ msgid "hgtk rename SOURCE [DEST]" #~ msgstr "hgtk rename Quelle [Ziel]" #~ msgid "hgtk serve [OPTION]..." #~ msgstr "hgtk serve [Parameter]..." #~ msgid "hgtk revert [FILE]..." #~ msgstr "hgtk revert [Datei]..." #~ msgid "hgtk remove [FILE]..." #~ msgstr "hgtk remove [Datei]..." #~ msgid "hgtk forget [FILE]..." #~ msgstr "hgtk forget [Datei]..." #~ msgid "hgtk status [FILE]..." #~ msgstr "hgtk status [Datei]..." #~ msgid "hgtk thgstatus [OPTION]" #~ msgstr "hgtk thgstatus [Parameter]" #~ msgid "hgtk shellconfig" #~ msgstr "hgtk shellconfig" #~ msgid "hgtk import [OPTION] [SOURCE]..." #~ msgstr "hgtk import [Parameter] [Quelle]..." #~ msgid "hgtk version [OPTION]" #~ msgstr "hgtk version [Parameter]" #~ msgid "hgtk help [COMMAND]" #~ msgstr "hgtk help [Anweisung]" #~ msgid "" #~ "When running hgtk from the command line, fork a background process to run " #~ "graphical dialogs. Default: True" #~ msgstr "" #~ "Wenn hgtk in der Konsole ausgeführt wird, wird ein Hintergrundprozess " #~ "gestartet, um grafische Dialoge zu verwenden. Vorgabe: ja" #~ msgid "Recover" #~ msgstr "&Retten" #~ msgid "Recover from interrupted operation" #~ msgstr "Nach Operationsunterbrechung retten" #~ msgid "%s - recovery" #~ msgstr "%s - Rettung" #~ msgid "Launch recovery tool" #~ msgstr "Rettungswerkzeug starten" #~ msgid "Recovery" #~ msgstr "Rettung" #~ msgid "User global settings" #~ msgstr "Allgemeine Einstellungen des Benutzers" #~ msgid "TortoiseHg Shell Configuration" #~ msgstr "TortoiseHg Shell-Konfiguration" #~ msgid "Capture stderr" #~ msgstr "Standard-Fehlerausgabe abzweigen" #~ msgid "" #~ "Redirect stderr to a buffer which is parsed at the end of the process for " #~ "runtime errors. Default: True" #~ msgstr "" #~ "Die Standard-Fehlerausgabe in einen Puffer abzweigen, der am Ende der " #~ "Verarbeitung nach Laufzeitfehlern durchsucht wird. Vorgabe: ja" #~ msgid "Fork hgtk" #~ msgstr "hgtk im Hintergrund starten" #~ msgid "" #~ "Detected uncommitted local changes in working tree.\n" #~ "Please select to continue:\n" #~ "\n" #~ msgstr "" #~ "Es gibt nicht übernommene lokale Änderungen im Arbeitsverzeichnis.\n" #~ "Bitte wählen Sie zum Fortsetzen:\n" #~ "\n" #~ msgid " - commit" #~ msgstr " - übernehmen" #~ msgid "Backed out successfully, you must now commit the results" #~ msgstr "Erfolgreich aufgehoben, Sie müssen jetzt die Ergebnisse übernehmen" #~ msgid "Commit Preview" #~ msgstr "Übernahme-Vorschau" #~ msgid "undo recent commit" #~ msgstr "Letzte Übernahme zurücknehmen" #~ msgid "Committer:" #~ msgstr "Revisions-Autor:" #~ msgid "_Commit (+1 head)" #~ msgstr "_Übernahme (Kopfrevision plus eins)" #~ msgid "Push after commit" #~ msgstr "Nach der Übernahme verteilen" #~ msgid "" #~ "Unable to undo!\n" #~ "\n" #~ "Tip revision differs from last commit." #~ msgstr "" #~ "Rückgängig nicht möglich!\n" #~ "\n" #~ "Die Revision an der Spitze weicht entspricht nicht der letzten Übernahme." #~ msgid "neither parent is a head, commit to add a new head" #~ msgstr "" #~ "Kein Vorgänger ist der Kopf, Übernehmen um einen neuen Kopf hinzuzufügen" #~ msgid "Confirm Undo Commit" #~ msgstr "Übernahme rückgängig bestätigen" #~ msgid "Undo Commit" #~ msgstr "Übernahme rückgängig" #~ msgid "Commit failed" #~ msgstr "Übernahme gescheitert" #~ msgid "commit to merge one head" #~ msgstr "Übernahme, um einen Kopf zu verschmelzen" #~ msgid "parent is not a head, commit to add a new head" #~ msgstr "" #~ "Der Vorgänger ist kein Kopf, Übernehmen um einen neuen Kopf hinzuzufügen" #~ msgid "_Commit (-1 head)" #~ msgstr "Ü_bernahme (Kopfversion minus eins)" #~ msgid "" #~ "The following lines are over the %i-character limit: %s.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "Die folgenden Zeilen überschreiben die Längenvorgabe von %i Zeichen: " #~ "%s..\n" #~ "\n" #~ "Die Formatvorgabe ignorieren und mit Übernahme fortfahren?" #~ msgid "" #~ "The summary line is not followed by a blank line.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "Der Zusammenfassungszeile endet nicht mit einem Zeilenumbruch.\n" #~ "\n" #~ "Die Formatvorgabe ignorieren und mit Übernahme fortfahren?" #~ msgid "" #~ "Create new named branch \"%s\" with this commit?\n" #~ "Yes\t- Start new branch with this commit\n" #~ "No\t- Make commit without branch change\n" #~ "Cancel - Cancel this commit" #~ msgstr "" #~ "Einen benannten Zweig \"%s\" mit dieser Übernahme erstellen?\n" #~ "Ja\t\t- Neuen Zweig mit dieser Übernahme eröffnen\n" #~ "Nein\t\t- Übernahme durchführen, ohne den Zweig zu ändern\n" #~ "Abbrechen\t- Übernahme abbrechen" #~ msgid "" #~ "Named branch \"%s\" already exists, last used in revision %d\n" #~ "Yes\t- Make commit restarting this named branch\n" #~ "No\t- Make commit without changing branch\n" #~ "Cancel - Cancel this commit" #~ msgstr "" #~ "Es gibt schon einen benannten Zweig \"%s\" (zuletzt in Revision %d " #~ "geändert)\n" #~ "Ja\t\t- Übernehmen unter Neueröffnung des Zweigs\n" #~ "Nein\t\t- Übernahme durchführen, ohne den Zweig zu ändern\n" #~ "Abbrechen\t- Übernahme abbrechen" #~ msgid "Aborted committing" #~ msgstr "Breche die Übernahme ab" #~ msgid "" #~ "The summary line length of %i is greater than %i.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "Die Länge der Zusammenfassungszeile ist mit %i Zeichen länger als die " #~ "Vorgabe (%i).\n" #~ "\n" #~ "Die Formatvorgabe ignorieren und mit Übernahme fortfahren?" #~ msgid "Finished committing" #~ msgstr "Beende die Übernahme" #~ msgid "Finished committing and pushing" #~ msgstr "Beende die Übernahme und verteile" #~ msgid "Rollback (undo) last transaction to repository (pull, commit, etc)" #~ msgstr "" #~ "Zurückrollen (zurücknehmen) der letzten Änderungen am Archiv (ziehen, " #~ "übernehmen, etc)" #~ msgid "Outstanding uncommitted changes" #~ msgstr "Ausstehende, nicht übernommene Änderungen" #~ msgid "Launch commit tool" #~ msgstr "Übernahmewerkzeug starten" #~ msgid "" #~ "To complete merging, you need to commit merged files in working " #~ "directory.\n" #~ "\n" #~ "Do you want to exit?" #~ msgstr "" #~ "Um die Verschmelzungen zu übernehmen, müssen Sie die verschmolzenden " #~ "Dateien im Arbeitsverzeichnis übernehmen.\n" #~ "\n" #~ "Wollen Sie beenden?" #~ msgid "Committing changes..." #~ msgstr "Änderungen werden übernommen..." #~ msgid "Failed to commit" #~ msgstr "Übernahme gescheitert" #~ msgid "Run Commit after init" #~ msgstr "Übernahme nach der Initialisierung ausführen" #~ msgid "" #~ "Attempt to push to default push target after every successful commit. " #~ "Default: False" #~ msgstr "" #~ "Nach jeder erfolgreichen Übernahme versuchen, an das Vorgabe-Verteilziel " #~ "zu verteilen. Vorgabe: nein" #~ msgid "Name associated with commits" #~ msgstr "Benutzername, der bei der Übernahme verwendet wird" #~ msgid "Close the commit tool after every successful commit. Default: False" #~ msgstr "" #~ "Das Übernahmewerkzeug nach jeder erfolgreichen Übernahme schließen. " #~ "Vorgabe: nein" #~ msgid "Uncommitted Local Changes" #~ msgstr "Nicht übernommene lokale Änderungen" #~ msgid "" #~ "Font used in changeset viewer and commit log text. Default: monospace 10" #~ msgstr "" #~ "Zeichensatz für die Änderungslisten-Ansicht und den " #~ "Übernahmeverlaufstext. Vorgabe: monospace 10" #~ msgid "" #~ "pfinish uses your working directory for temporary work.\n" #~ "Please commit your local changes before issuing pfinish." #~ msgstr "" #~ "pfinish benutzt Ihr Arbeitsverzeichis zur Zwischenspeicherung.\n" #~ "Bitte übernehmen Sie alle lokalen Änderungen, bevor Sie pfinish ausführen." #~ msgid "" #~ "pfinish must be able to commit, but this is not allowed\n" #~ "as long as you have MQ patches applied." #~ msgstr "" #~ "pfinish muss zur Übernahme imstande sein, aber dies ist unzulässig,\n" #~ "so lange Sie MQ-Flicken angewandt haben." #~ msgid "" #~ "Detected uncommitted local changes.\n" #~ "Do you want to discard them and continue?" #~ msgstr "" #~ "Es gibt nicht übernommene lokale Änderungen.\n" #~ "Wollen Sie diese verwerfen und fortsetzen?" #~ msgid "Push to Here" #~ msgstr "Hierhin verteilen" #~ msgid "Force pull or push" #~ msgstr "Ziehen oder Verteilen erzwingen" #~ msgid "Push new branch" #~ msgstr "Neuen Zweig verteilen" #~ msgid "Push outgoing changesets" #~ msgstr "Ausgehende Änderungslisten verteilen" #~ msgid "Aborted push" #~ msgstr "Verteilung abgebrochen" #~ msgid "Finished push" #~ msgstr "Verteilung abgeschlossen" #~ msgid "Push this Branch" #~ msgstr "Diesen Zweig verteilen" #~ msgid "" #~ "Forced push to remote repository\n" #~ "%s\n" #~ "(creating new heads in remote if needed)?" #~ msgstr "" #~ "Erzwungene Verteilung an das entfernte Projektarchiv\n" #~ "%s\n" #~ "(erstellt neue Kopfdaten, falls erforderlich)?" #~ msgid "" #~ "Push to remote repository\n" #~ "%s\n" #~ "(creating new branches in remote if needed)?" #~ msgstr "" #~ "Verteilen an das entfernte Projektarchiv\n" #~ "%s\n" #~ "(erstellt neue Zweige im entfernten Archiv, falls notwendig)?" #~ msgid "Confirm Push of New Branches to Remote Repository" #~ msgstr "" #~ "Verteilung von neuen Zweigen an das entfernte Projektarchiv bestätigen" #~ msgid "Confirm Forced Push to Remote Repository" #~ msgstr "Erzwungene Verteilung an das entfernte Projektarchiv bestätigen" #~ msgid "Forced &Push" #~ msgstr "Erzwungene &Verteilung" #~ msgid "Pushing changesets..." #~ msgstr "Verteile Änderungslisten..." #~ msgid "Confirm Forced Push" #~ msgstr "Erzwungenes Verteilen bestätigen" #~ msgid "&Push" #~ msgstr "&Verteilen" #~ msgid "Finished push to revision %s" #~ msgstr "Verteilung in Revision %s abgeschlossen" #~ msgid "Pushing branch %s..." #~ msgstr "Verteile Zweig %s..." #~ msgid "Finished pushing branch %s" #~ msgstr "Verteilung des Zweigs %s abgeschlossen" #~ msgid "" #~ "Forced push to repository\n" #~ "%s\n" #~ "(creating new heads if needed)?" #~ msgstr "" #~ "Erzwungenes Verteilen an das Projektarchiv\n" #~ "%s\n" #~ "(erstellt dort neue Kopfdaten, falls nötig)?" #~ msgid "Push to %s" #~ msgstr "Verteilung an %s" #~ msgid "Push local changes to selected repository" #~ msgstr "Lokale Änderungen an das ausgewählte Projektarchiv verteilen" #~ msgid "Pushing changesets to revision %s..." #~ msgstr "Verteile Änderungsliste in Revision %s..." #~ msgid "Display local changes that will be pushed to selected repository" #~ msgstr "" #~ "Lokale Änderungen auswählen zur Verteilung an das ausgewählte " #~ "Projektarchiv" #~ msgid "Allow pushing a new branch" #~ msgstr "Verteilung eines neuen Zweigs erlauben" #~ msgid "A specific revision up to which you would like to push or pull." #~ msgstr "" #~ "Eine spezifische Revision, bis zu der Sie ziehen oder verteilen möchten." #~ msgid "&Yes (--force)" #~ msgstr "&Ja (--force)" #~ msgid "cleaning up temp directory\n" #~ msgstr "Räume temporäres Verzeichnis auf\n" #~ msgid "View other" #~ msgstr "Das andere betrachten" #~ msgid "Remove versioned" #~ msgstr "Versionierte entfernen" #~ msgid "Rename..." #~ msgstr "Umbenennen..." #~ msgid "Mark resolved" #~ msgstr "Als aufgelöst kennzeichnen" #~ msgid "Mark unresolved" #~ msgstr "Als nicht aufgelöst kennzeichnen" #~ msgid "Diff to _local" #~ msgstr "Vergleich mit _lokaler Kopie" #~ msgid "_View at Revision" #~ msgstr "_Anzeigen in Revision" #~ msgid "Bookmark input is empty" #~ msgstr "Die Lesezeichen-Eingabe fehlt" #~ msgid "Bookmark new name input is empty" #~ msgstr "Der neue Lesezeichen-Name fehlt" #~ msgid "unknown hunk type: %s" #~ msgstr "Unbekannter Schnipseltyp: %s" #~ msgid "[no hunks to display]" #~ msgstr "[Keine Schnipsel vorhanden]" #~ msgid "_Save at Revision..." #~ msgstr "_Speichern in Revision..." #~ msgid "Diff to second Parent" #~ msgstr "Mit zweitem Vorgänger vergleichen" #~ msgid "_Annotate File" #~ msgstr "_Dateianmerkung erfassen" #~ msgid "Starting Revision:" #~ msgstr "Start-Revision:" #~ msgid "Bundle..." #~ msgstr "Bündeln..." #~ msgid "Select a Mercurial Bundle" #~ msgstr "Wählen Sie ein Mercurial-Bündel" #~ msgid "_File History" #~ msgstr "_Dateiverlauf" #~ msgid "Enable _Wordwrap" #~ msgstr "_Zeilenumbruch aktivieren" #~ msgid "unexpected response id: %s" #~ msgstr "Nicht erwarteter Rückgabewert: %s" #~ msgid "Ignore Max Diff Size" #~ msgstr "Maximale Abweichungsgröße ignorieren" #~ msgid "_Diff" #~ msgstr "_Abweichungen" #~ msgid " - qnew" #~ msgstr " - qnew" #~ msgid " - qrefresh " #~ msgstr " - qrefresh " #~ msgid "_View" #~ msgstr "_Ansicht" #~ msgid "merging " #~ msgstr "verschmelze " #~ msgid "Mercurial bundles" #~ msgstr "Mercurial-Bündel" #~ msgid "_Operations" #~ msgstr "_Anweisungen" #~ msgid "Auto-includes:" #~ msgstr "Auto-Einschlüsse:" #~ msgid "Not at head" #~ msgstr "Nicht am Kopf" #~ msgid "_View File at Revision" #~ msgstr "Datei _betrachten in Revision" #~ msgid "Displaying all items" #~ msgstr "Zeige alle Einträge" #~ msgid "%s - datamine" #~ msgstr "%s - Datensammlung" #~ msgid "Please try again after the running operation is completed" #~ msgstr "" #~ "Bitte versuchen Sie es erneut, nachdem die laufende Operation " #~ "abgeschlossen ist" #~ msgid "Di_splay Change" #~ msgstr "Ä_nderungen anzeigen" #~ msgid "C_onfigure Format..." #~ msgstr "Format_einstellungen..." #~ msgid "Bug Traq" #~ msgstr "Abweichungsverfolgung" #~ msgid "_Annotate First Parent" #~ msgstr "&Anmerkung zum ersten Vorgänger erfassen" #~ msgid "Datamine" #~ msgstr "Datensammlung" #~ msgid "_Zoom to Change" #~ msgstr "Änderung _vergrößern" #~ msgid "_Annotate Parent" #~ msgstr "Anmerkung zum Vorgänger erfassen" #~ msgid "Index" #~ msgstr "Index" #~ msgid "Annotate Second Parent" #~ msgstr "Anmerkung zum zweiten Vorgänger erfassen" #~ msgid "_Diff to Local" #~ msgstr "Mit der lokalen Kopie &vergleichen" #~ msgid "Selecting %(sel)d, displaying %(count)d of %(total)d items" #~ msgstr "Wähle %(sel)d, zeige %(count)d von insgesamt %(total)d Einträgen" #~ msgid "_Tools" #~ msgstr "_Werkzeuge" #~ msgid "unknown CmdWidget style: %s" #~ msgstr "Unbekannter CmdWidget-Stil: %s" #~ msgid "Ambiguous Revision" #~ msgstr "Mehrdeutige Revision" #~ msgid "Select" #~ msgstr "Wählen Sie" #~ msgid "Select Revision" #~ msgstr "Wählen Sie eine Revision" #~ msgid ", please refresh" #~ msgstr ", bitte aktualisieren" #~ msgid "Selecting %(sel)d of %(total)d, displaying all items" #~ msgstr "Wähle %(sel)d von insgesamt %(total)d, zeige alle Einträge" #~ msgid "Invalid Revision" #~ msgstr "Ungültige Revision" #~ msgid "Lang \"%s\" can not be set.\n" #~ msgstr "Sprache \"%s\" kann nicht gewählt werden.\n" #~ msgid "" #~ "Select language for spell checking.\n" #~ "\n" #~ "Empty is for the default language.\n" #~ "When all text is highlited, the dictionary\n" #~ "is probably not installed.\n" #~ "\n" #~ "examples: en, en_GB, en_US" #~ msgstr "" #~ "Wählen Sie eine Sprache für die Rechtschreibprüfung.\n" #~ "\n" #~ "Leer ist die Vorgabesprache.\n" #~ "Wenn der gesamte Text angestrichen wird, ist das Wörterbuch\n" #~ "möglicherweise nicht installiert.\n" #~ "\n" #~ "Beispiele: de, de_DE, de_AT" #~ msgid "Spell Check Language" #~ msgstr "Sprache der Rechtschreibprüfung" #~ msgid "Command Log" #~ msgstr "Anweisungsprotokoll" #~ msgid "Close this" #~ msgstr "Dies schließen" #~ msgid "Email revisions " #~ msgstr "Revisionen per E-Mail verschicken " #~ msgid "" #~ "This feature is only available when sending outgoing changesets. It is " #~ "not applicable with revision ranges." #~ msgstr "" #~ "Diese Möglichkeit ist nur beim Versand ausgehender Änderungslisten " #~ "verfügbar. Es kann auf Revisionsbereiche nicht angewandt werden." #~ msgid "invalid state" #~ msgstr "Ungültiger Zustand" #~ msgid "Toggle log window" #~ msgstr "Protokollfenster umschalten" #~ msgid "TortoiseHg Init" #~ msgstr "TortoiseHg-Vorbereitung" #~ msgid "[command completed successfully " #~ msgstr "[Die Anweisung wurde erfolgreich abgeschlossen " #~ msgid "Move Down" #~ msgstr "Nach unten" #~ msgid "Move Up" #~ msgstr "Nach oben" #~ msgid "Ancestry" #~ msgstr "Vorgänger" #~ msgid "Columns" #~ msgstr "Spalten" #~ msgid "Log Details" #~ msgstr "Protokolleinzelheiten" #~ msgctxt "changesets" #~ msgid "All" #~ msgstr "Alle" #~ msgid "%s does not exist\n" #~ msgstr "%s ist nicht vorhanden\n" #~ msgid "revision to merge with" #~ msgstr "Verschmelzen mit Revision" #~ msgid "Branches..." #~ msgstr "Zweige..." #~ msgid "[command returned code %d " #~ msgstr "[Die Anweisung lieferte den Rückgabewert %d " #~ msgid "Merges" #~ msgstr "Verschmelzungen" #~ msgid "Hide Merges" #~ msgstr "Verschmelzungen verstecken" #~ msgid "File Patterns" #~ msgstr "Dateimuster" #~ msgid "Keywords" #~ msgstr "Stichwörter" #~ msgid "Heads" #~ msgstr "Köpfe" #~ msgid "Branch Filter" #~ msgstr "Zweigfilter" #~ msgid "Reset revision marks" #~ msgstr "Revisionsmarkierungen zurücksetezn" #~ msgid "Launch data mining tool" #~ msgstr "Datenanalysewerkzeug starten" #~ msgid "Reset _Marks" #~ msgstr "_Markierungen Zurücksetzen" #~ msgid "" #~ "New changesets from the preview bundle are still pending.\n" #~ "\n" #~ "Accept or reject the new changesets?" #~ msgstr "" #~ "Einige Änderungen aus dieser Vorschau sind noch offen.\n" #~ "\n" #~ "Die neuen Änderungslisten akzeptieren oder verwerfen?" #~ msgid "Launch web server" #~ msgstr "Web-Server starten" #~ msgid "Accept new Changesets" #~ msgstr "Neue Änderungen annehmen" #~ msgid "&Reject" #~ msgstr "&Verwerfen" #~ msgid "&Accept" #~ msgstr "&Annehmen" #~ msgid " (Bundle Preview)" #~ msgstr " (Bündelvorschau)" #~ msgid "Branches" #~ msgstr "Zweige" #~ msgid "Reset Marks" #~ msgstr "Markierungen zurücksetzen" #~ msgid "Load more Revisions" #~ msgstr "Weitere Revisionen laden" #~ msgid "_Perforce" #~ msgstr "_Perforce" #~ msgid "Color by Branch" #~ msgstr "Nach Zweig färben" #~ msgid "Sync Bar" #~ msgstr "Synchronisationsbalken" #~ msgid "Identify" #~ msgstr "Identifizieren" #~ msgid "Filter Bar" #~ msgstr "Filterbalken" #~ msgid "Choose Details..." #~ msgstr "Einzelheiten wählen..." #~ msgid "Compact Graph" #~ msgstr "Grafische Darstellung zusammenfassen..." #~ msgid "Pending" #~ msgstr "Noch offen" #~ msgid "_Navigate" #~ msgstr "_Navigieren" #~ msgid "Add Bundle..." #~ msgstr "Bündel hinzufügen..." #~ msgid "Working Parent" #~ msgstr "Arbeitskopie-Vorgänger" #~ msgid "Revision..." #~ msgstr "Revision..." #~ msgid "Accept Bundle" #~ msgstr "Bündel annehmen" #~ msgid "Reject Bundle" #~ msgstr "Bündel zurückweisen" #~ msgid "Previously Selected" #~ msgstr "Zuvor ausgewählt" #~ msgid "Tip" #~ msgstr "Hinweis" #~ msgid "Custom" #~ msgstr "Benutzerdefiniert" #~ msgid "Unable to find rev %s" #~ msgstr "Kann Revision %s nicht ermitteln" #~ msgid "Aborted p4identify" #~ msgstr "p4identify abgebrochen" #~ msgid "Finding pending Perforce changelists..." #~ msgstr "Suche offene Perforce-Änderungslisten..." #~ msgid "Pending Perforce changelists" #~ msgstr "Offene Perforce-Änderungslisten" #~ msgid "Perforce changelist %s" #~ msgstr "Perforce-Änderungsliste %s" #~ msgid "Please try again after the previous command has completed" #~ msgstr "" #~ "Bitte versuchen Sie es erneut, sobald die vorangehende Anweisung " #~ "abgeschlossen ist" #~ msgid "Configure Paths..." #~ msgstr "Pfade einrichten..." #~ msgid "Submitted" #~ msgstr "Versandt" #~ msgid "Revision Range" #~ msgstr "Revisionsbereich" #~ msgid "Branch Name" #~ msgstr "Zweigname" #~ msgid "UTC Date" #~ msgstr "Datum (Universalzeit)" #~ msgid "Changes" #~ msgstr "Änderungen" #~ msgid "Revision Number" #~ msgstr "Revisionsnummer" #~ msgid "Changeset ID" #~ msgstr "Änderungslisten-ID" #~ msgid "Unable to identify Perforce tip" #~ msgstr "Kann Perforce-Spitze nicht ermitteln" #~ msgid "Finding tip Perforce changelist..." #~ msgstr "Ermittle Spitze der Perforce-Änderungslisten" #~ msgid "Identifying Perforce tip" #~ msgstr "Perforce-Spitze erkennen" #~ msgid "Revision Number/ID" #~ msgstr "Revisionsnummer/ID" #~ msgid "Email..." #~ msgstr "Per E-Mail versenden..." #~ msgid "Age" #~ msgstr "Alter" #~ msgid "'%s' filter:" #~ msgstr "'%s'-Filter:" #~ msgid "Branch '%s'" #~ msgstr "Zweig '%s'" #~ msgid "Invalid revision set" #~ msgstr "Ungültige Revisionsmenge" #~ msgid "%s branch" #~ msgstr "%s-Zweig" #~ msgid "Invalid file pattern" #~ msgstr "Ungültiges Dateimuster" #~ msgid "Filter" #~ msgstr "Filter" #~ msgid "Subversion" #~ msgstr "Subversion" #~ msgid "No matches" #~ msgstr "Keine Treffer" #~ msgid "No revisions matched search" #~ msgstr "Keine Revisionen entsprechend der Suchkriterien" #~ msgid "only Merges" #~ msgstr "alleine Verschmelzungen" #~ msgid "Ancestry of %s" #~ msgstr "Vorgänger von %s" #~ msgid "file patterns \"%s\"" #~ msgstr "Dateimuster '%s'" #~ msgid "working parents" #~ msgstr "Arbeitskopie-Vorgänger" #~ msgid "merges" #~ msgstr "Verschmelzungen" #~ msgid "revision ancestry" #~ msgstr "Revisionsvorgänger" #~ msgid "Visualize Change" #~ msgstr "Änderungen darstellen" #~ msgid "no Merges" #~ msgstr "Keine Verschmelzungen" #~ msgid "heads" #~ msgstr "Köpfe" #~ msgid "_Copy Hash" #~ msgstr "_Prüfsumme kopieren" #~ msgid "Pull to Here" #~ msgstr "Hierhin ziehen" #~ msgid "_Merge with..." #~ msgstr "_Verschmelzen mit..." #~ msgid "_Archive..." #~ msgstr "_Archivieren..." #~ msgid "_Update..." #~ msgstr "_Aktualisieren..." #~ msgid "Add/Move/Remove B_ookmark..." #~ msgstr "_Lesezeichen hinzufügen/entfernen/verschieben..." #~ msgid "Transp_lant to Local" #~ msgstr "In lokale Kopie _verpflanzen" #~ msgid "Mercurial Queues" #~ msgstr "Mercurial-Warteschlangen" #~ msgid "Remove or delete checked files" #~ msgstr "Angekreuzte Dateien löschen oder entfernen" #~ msgid "Move checked files to other directory" #~ msgstr "Angekreuzte Dateien in ein anderes Verzeichnis verschieben" #~ msgid "Visual diff checked files" #~ msgstr "Interaktiver Vergleich zwischen den angekreuzten Dateien" #~ msgid "Add checked files" #~ msgstr "Angekreuzte Dateien hinzufügen" #~ msgid "Checking outgoing changesets..." #~ msgstr "Prüfe ausgehende Änderungslisten..." #~ msgid "Clean checkout of original revision?" #~ msgstr "Aufräumen und die ursprüngliche Revision abrufen?" #~ msgid "Clean checkout, undo all changes" #~ msgstr "Aufräumen, abrufen, alle Änderungen verwerfen" #~ msgid "Checking incoming changesets..." #~ msgstr "Prüfe eingehende Änderungslisten..." #~ msgid "" #~ "Default language for spell check. System language is used if not " #~ "specified. Examples: en, en_GB, en_US" #~ msgstr "" #~ "Vorgabesprache für die Rechtscheibprüfung. Fehlt die Angabe, wird die " #~ "Systemvorgabe genutzt. Beispiele: de, de_DE, de_AT" #~ msgid "Forget checked files on next commit" #~ msgstr "Angekreuzte Dateien bei der nächsten Übernahme verwerfen" #~ msgid "Tag '%s' already exist" #~ msgstr "Das Etikett \"%s\" ist schon vorhanden" #~ msgid "Tag \"%s\" has been removed" #~ msgstr "Das Etikett \"%s\" wurde entfernt" #~ msgid "_Bundle rev:tip..." #~ msgstr "Von Revision bis Spitze _bündeln..." #~ msgid "Strip Revision..." #~ msgstr "Revision herauslösen..." #~ msgid "Reset" #~ msgstr "Zurücksetzen" #~ msgid "Mark as Good" #~ msgstr "Als gut markieren" #~ msgid "Import Revision to MQ" #~ msgstr "Revision in Mercurial-Warteschlange importieren" #~ msgid "Rename Bookmark..." #~ msgstr "Lesezeichen umbenennen..." #~ msgid "Email from here to selected..." #~ msgstr "Von hier bis zur Auswahl per E-Mail versenden..." #~ msgid "_Diff with selected" #~ msgstr "Mit der Auswahl _vergleichen" #~ msgid "Mark as Bad" #~ msgstr "Als schlecht markieren" #~ msgid "Skip Testing" #~ msgstr "Testdurchführung überspringen" #~ msgid "Strip" #~ msgstr "Herauslösen" #~ msgid "Canceled stripping" #~ msgstr "Herauslösen abbrechen" #~ msgid "Stripped successfully" #~ msgstr "Erfolgreich herausgelöst" #~ msgid "Failed to strip" #~ msgstr "Herauslösen gescheitert" #~ msgid "%s will be stripped" #~ msgstr "%s wird herausgelöst" #~ msgid "unable to strip away %d dirs from %s" #~ msgstr "Kann %d Verzeichnisse aus %s nicht herauslösen" #~ msgid "Select common ancestor revision" #~ msgstr "Gemeinsame Vorgängerrevision auswählen" #~ msgid "Download and view incoming changesets" #~ msgstr "Alle eingehenden Änderungslisten herunterladen und ansehen" #~ msgid "Accept changes from Bundle preview" #~ msgstr "Änderungen von der Bündelvorschau annehmen" #~ msgid "Rebase on top of selected" #~ msgstr "Basiswechsel auf Basis der Auswahl" #~ msgid "Bundle from here to selected..." #~ msgstr "Von hier bis zur Auswahl bündeln..." #~ msgid "Import from here to selected to MQ" #~ msgstr "Von hier bis zur Auswahl in Mercurial-Warteschlange importieren" #~ msgid "Load all" #~ msgstr "Alle laden" #~ msgid "load more revisions" #~ msgstr "Weitere Revisionen laden" #~ msgid "Load more" #~ msgstr "Weitere laden" #~ msgid "Determine and mark outgoing changesets" #~ msgstr "Ausgehende Änderungslisten bestimmen und markieren" #~ msgid "Pull incoming changesets" #~ msgstr "Eingehende Änderungslisten ziehen" #~ msgid "No remote path specified" #~ msgstr "Der entfernte Pfad ist nicht angegeben" #~ msgid "Configure aliases and after pull behavior" #~ msgstr "Aliasnamen und nach-dem-Ziehen-Verhalten einstellen" #~ msgid "After Pull:" #~ msgstr "Nach dem Ziehen:" #~ msgid "Applying bundle" #~ msgstr "Wende Bündel an" #~ msgid "Reject changes from Bundle preview" #~ msgstr "Änderungen von der Bündelvorschau verwerfen" #~ msgid "Applying bundle..." #~ msgstr "Wende Bündel an..." #~ msgid "Stop current transaction" #~ msgstr "Aktuelle Transaktion anhalten" #~ msgid "Failed to preview, not a Mercurial bundle file" #~ msgstr "Vorschau gescheitert, keine Mercurial-Bündeldatei" #~ msgid "Aborted incoming" #~ msgstr "Empfang abgebrochen" #~ msgid "Please enter or select a remote path" #~ msgstr "Bitte geben Sie einen entfernten Pfad ein bzw. wählen ihn aus" #~ msgid "Finished pull with rebase" #~ msgstr "Ziehen und Basiswechsel abgeschlossen" #~ msgid "Accept incoming previewed changesets" #~ msgstr "Eingehende Änderunglisten nach der Vorschau übernehmen" #~ msgid "Reject incoming previewed changesets" #~ msgstr "Eingehende Änderunglisten nach der Vorschau verwerfen" #~ msgid "No incoming changesets" #~ msgstr "Keine eingehende Änderungslisten" #~ msgid "Open Bundle" #~ msgstr "Bündel öffnen" #~ msgid "%d incoming changesets" #~ msgstr "%d eingehende Änderungslisten" #~ msgid "Bundle Preview" #~ msgstr "Bündelvoschau" #~ msgid "Finished pull" #~ msgstr "Ziehen abgeschlossen" #~ msgid "No changesets to pull" #~ msgstr "Keine Änderungslisten zu ziehen" #~ msgid "Aborted outgoing" #~ msgstr "Versand abgebrochen" #~ msgid "Pulling changesets..." #~ msgstr "Ziehe Änderungslisten..." #~ msgid "Finish bundling" #~ msgstr "Bündelung abgeschlossen" #~ msgid "Aborted bundling" #~ msgstr "Bündelung abgebrochen" #~ msgid "unknown dnd dest: %s" #~ msgstr "Unbekanntes dnd-Ziel: %s" #~ msgid "Aborted pull" #~ msgstr "Ziehen abgebrochen" #~ msgid "Importing" #~ msgstr "Importiere" #~ msgid "Confirm Rebase Revision" #~ msgstr "Basiswechsel-Revision bestätigen" #~ msgid "Rebase revision %d on top of %d?" #~ msgstr "Wechsel der Basis von Revision %d auf %d?" #~ msgid "Failed to import" #~ msgstr "Import gescheitert" #~ msgid "Failed to bundle" #~ msgstr "Bündelung gescheitert" #~ msgid "Bundling" #~ msgstr "Bündele" #~ msgid "Bundling from %(base)s to tip..." #~ msgstr "Bündele von %(base)s bis zur Spitze..." #~ msgid "Finish importing" #~ msgstr "Import abschließen" #~ msgid "Aborted importing" #~ msgstr "Import abgebrochen" #~ msgid "Pulling changesets to revision %s..." #~ msgstr "Ziehe Änderungslisten auf Revision %s..." #~ msgid "Finished pull to revision %s" #~ msgstr "Ziehen auf Revision %s abgeschlossen" #~ msgid "Pull to %s" #~ msgstr "Ziehe auf %s" #~ msgid "Refresh required" #~ msgstr "Aktualisierung erforderlich" #~ msgid "Canceled undo" #~ msgstr "Rückgängig abgebrochen" #~ msgid "Failed to undo" #~ msgstr "Rückgängig gescheitert" #~ msgid "Use merge tool:" #~ msgstr "Verschmelzungswerkzeug benutzen:" #~ msgid "Bundling from %(base)s to %(rev)s..." #~ msgstr "Bündele von %(base)s bis %(rev)s..." #~ msgid "Undo successfully" #~ msgstr "Rückgängig erfolgreich" #~ msgid "Merged successfully" #~ msgstr "Verschmelzung erfolgreich" #~ msgid "%s serve - %s" #~ msgstr "%s serve - %s" #~ msgid "Select files to forget" #~ msgstr "Wählen Sie die zu vergessenden Dateien" #~ msgid "Select files to add" #~ msgstr "Wählen Sie die hinzuzufügenden Dateien" #~ msgid "name of the webdir config file (DEPRECATED)" #~ msgstr "Name der Webverzeichnis-Einstellungsdatei (abempfohlen)" #~ msgid "Select files to remove" #~ msgstr "Wählen Sie die zu entfernenden Dateien" #~ msgid " - serve" #~ msgstr " - serve" #~ msgid "Toggle all selections" #~ msgstr "Alle Auswahlen umkehren" #~ msgid "Submit" #~ msgstr "Absenden" #~ msgid "Changelist:" #~ msgstr "Änderungsliste:" #~ msgid "Uncommitted local changes" #~ msgstr "Nicht übernommene lokale Änderungen" #~ msgid "Menu Items" #~ msgstr "Menüeinträge" #~ msgid "Show overlay icons in Mercurial repositories" #~ msgstr "Überblendungssymbole in Mercurialarchiven anzeigen" #~ msgid "Hunk Selection" #~ msgstr "Schnipselauswahl" #~ msgid "Text Diff" #~ msgstr "Textvergleich" #~ msgid "Shelf Preview" #~ msgstr "Stauraum-Voransicht" #~ msgid "Show the taskbar icon (restart needed)" #~ msgstr "Das Aufgabenleisten-Symbol anzeigen (erfordert einen Neustart)" #~ msgid "Show overlays on local disks only" #~ msgstr "Überblendungen nur auf lokalen Platten zeigen" #~ msgid "<- Top" #~ msgstr "<- Nach oben" #~ msgid "Sub ->" #~ msgstr "Nach unten ->" #~ msgid "" #~ "total: %d hunks (%d changed lines); selected: %d hunks (%d changed lines)" #~ msgstr "" #~ "Summe: %d Schnipsel (%d geänderte Zeilen); Auswahl: %d Schnipsel (%d " #~ "geänderte Zeilen)" #~ msgid "Hunk selection is disabled for this file.\n" #~ msgstr "Die Auswahl von Schnipseln aus dieser Datei wird verhindert.\n" #~ msgid "hunk %d already applied at line %d (fuzz %d)\n" #~ msgstr "Schnipsel %d bereits auf Zeile %d (mit Unschärfe %d) angewandt\n" #~ msgid "No valid hunks found" #~ msgstr "Keine gültigen Schnipsel gefunden" #~ msgid "bad hunk #%d" #~ msgstr "Defekter Schnipsel #%d" #~ msgid "bad hunk #%d old text line %d" #~ msgstr "Defekter Schnipsel #%d, alte Textzeile %d" #~ msgid "Hunk #%d FAILED at %d\n" #~ msgstr "Schnipsel #%d gescheitert bei %d\n" #~ msgid "%d hunks, %d lines changed\n" #~ msgstr "%d Schnipsel, %d Zeilen geändert\n" #~ msgid "%d out of %d hunks FAILED -- saving rejects to file %s\n" #~ msgstr "" #~ "%d von %d Schnipseln fehlgeschlagen -- zurückgewiesene werden in %s " #~ "gespeichert\n" #~ msgid "bad hunk #%d %s (%d %d %d %d)" #~ msgstr "Defekter Schnipsel #%d %s (%d %d %d %d)" #~ msgid "Hunk #%d succeeded at %d (offset %d lines).\n" #~ msgstr "Schnipsel #%d erfolgreich %d (%d Zeilen verschoben).\n" #~ msgid "Hunk #%d succeeded at %d with fuzz %d (offset %d lines).\n" #~ msgstr "" #~ "Schnipsel #%d erfolgreich %d mit Unschärfe %d (%d Zeilen verschoben).\n" #~ msgid "_Delete unversioned" #~ msgstr "Nicht versionierte _löschen" #~ msgid "" #~ "\n" #~ "===== Diff to second parent %d:%s =====\n" #~ msgstr "" #~ "\n" #~ "===== Abweichungen vom zweiten Vorgänger %d:%s =====\n" #~ msgid "===== Diff to first parent %d:%s =====\n" #~ msgstr "===== Abweichungen vom ersten Vorgänger %d:%s =====\n" #~ msgid "S: subrepo" #~ msgstr "S: Unterarchiv" #~ msgid "_Guess Rename..." #~ msgstr "Umbenennung _raten..." #~ msgid "Nothing Forgotten" #~ msgstr "Nichts vergessen" #~ msgid "No clean files selected" #~ msgstr "Keine sauberen Dateien gewählt" #~ msgid "_Ignore" #~ msgstr "_Ignorieren" #~ msgid "Nothing Diffed" #~ msgstr "Keine Abweichungen" #~ msgid "No diffable files selected" #~ msgstr "Keine vergleichbaren Dateien ausgewählt" #~ msgid "not up to date" #~ msgstr "Nicht aktuell" #~ msgid "" #~ "The parents have changed since the last refresh.\n" #~ "Continue anyway?" #~ msgstr "" #~ "Die Vorgänger haben sich seit der letzten Aktualisierung geändert.\n" #~ "Trotzdem fortsetzen?" #~ msgid "&Yes (backup changes)" #~ msgstr "&Ja (Änderungen sichern)" #~ msgid "Yes (&discard changes)" #~ msgstr "&Ja (Änderungen verwerfen)" #~ msgid "invalid pack direction: %s" #~ msgstr "Ungültige Packrichtung: %s" #~ msgid "unknown field name: %s" #~ msgstr "Unbekannter Dateiname: %s" #~ msgid "invalid alignment value: %s" #~ msgstr "Ungültiger Ausrichtungswert: %s" #~ msgid "_Copy..." #~ msgstr "_Kopieren..." #~ msgid "" #~ "Adjust the coloring style of diff lines in the changeset viewer. Default: " #~ "foreground" #~ msgstr "" #~ "Passen Sie den Farbstil von Abweichungszeilen in der " #~ "Änderungslistenanzeige an. Vorgabe: Vordergrund" #~ msgid "" #~ "Operation which is performed directly after a successful pull. update " #~ "equates to pull --update, fetch equates to the fetch extension, rebase " #~ "equates to pull --rebase. Default: none" #~ msgstr "" #~ "Die Anweisung, die unmittelbar nach einem erfolgreichen Zielen ausgeführt " #~ "wird. Durch update wird ein pull --update ausgeführt, fetch entspricht " #~ "der Ausführung der fetch-Erweiterung, rebase entspricht einem pull --" #~ "rebase. Vorgabe: keine" #~ msgid "Show no merges" #~ msgstr "Keine Verschmelzungen zeigen" #~ msgid "Show newest first" #~ msgstr "Neueste zuerst zeigen" #~ msgid "Target revision:" #~ msgstr "Zielrevision:" #~ msgid "Use Expander" #~ msgstr "Expander benutzen" #~ msgid "Show changeset details with an expander" #~ msgstr "Änderungslisteneinzelheiten mit einem Expander anzeigen" #~ msgid "" #~ "Specify the number of spaces that tabs expand to in various TortoiseHg " #~ "windows. Default: Not expanded" #~ msgstr "" #~ "Geben Sie die Anzahl von Leerzeichen an, zu den Tabulatorzeichen in den " #~ "verschiedenen TortoiseHg-Fenstern ausgedehnt werden. Vorgabe: keine " #~ "Ausdehnung" #~ msgid "Coloring Style" #~ msgstr "Farbstil" #~ msgid "" #~ "Space separated list of branch names and colors of the form branch:" #~ "#XXXXXX. Spaces and colons in the branch name must beescaped using a " #~ "backslash (\\). Likewise some other characters can be escaped in this " #~ "way, e.g. \\u0040 will be decoded to the @ character, and \\n to a " #~ "linefeed. Default: None (leave blank)" #~ msgstr "" #~ "Leerzeichengetrennte Liste von Zweignamen und -farben in der Art Zweig:" #~ "#RRGGBB. Leerzeichen und Doppelpunkte im Zweignamen müssen mit einem " #~ "Rückstrich (\\) gekennzeichnet werden. Entsprechend können einige andere " #~ "Zeichen gleichfalls gekennzeichnet werden, beispielsweise wird \\u0040 " #~ "auf das @-Zeichen und \\n auf ein Zeilenvorschub-Zeichen abgebildet. " #~ "Vorgabe: kein (leere Liste)" #~ msgid "ssh" #~ msgstr "ssh" #~ msgid "https" #~ msgstr "https" #~ msgid "Font" #~ msgstr "Schriftart" #~ msgid "http" #~ msgstr "http" #~ msgid "Font used in command output window. Default: monospace 10" #~ msgstr "" #~ "Schriftart, die im Konsolenausgabefenster verwendet wird. Vorgabe: " #~ "monospace 10" #~ msgid "Japanese on Windows" #~ msgstr "Japanisch in Windows" #~ msgid "File List" #~ msgstr "Dateiliste" #~ msgid "Command Output" #~ msgstr "Anweisungsausgabe" #~ msgid "Diff Text" #~ msgstr "Abweichungstext" #~ msgid "URL Details" #~ msgstr "URL-Einzelheiten" #~ msgid "Confirm Switch" #~ msgstr "Umschalten bestätigen" #~ msgid "Select Local Folder" #~ msgstr "Lokales Verzeichnis auswählen" #~ msgid "Alias name is empty" #~ msgstr "Alias-Name ist nicht gesetzt" #~ msgid "Please enter alias name" #~ msgstr "Bitte geben Sie einen Alias-Namen ein" #~ msgid "Exit after saving changes?" #~ msgstr "Nach der Speicherung der Änderung beenden?" #~ msgid "Switch after saving changes?" #~ msgstr "Nach der Speicherung der Änderung umschalten?" #~ msgid "Theme default fonts" #~ msgstr "Vorgabeschriftarten des Themas" #~ msgid "Preset fonts:" #~ msgstr "Vorgabeschriftarten:" #~ msgid "Custom fonts:" #~ msgstr "Benutzerdefinierte Schriftarten:" #~ msgid "Do you want to close?" #~ msgstr "Wollen Sie schließen?" #~ msgid "Canceled importing" #~ msgstr "Import abgebrochen" #~ msgid "Confirm Close" #~ msgstr "Schliessen bestätigen" #~ msgid "Configure Plugin" #~ msgstr "Plug-in einrichten" #~ msgid " - Select Issue Tracker -" #~ msgstr " - Wählen Sie einen Abweichungsverfolger -" #~ msgid "" #~ "Select issue tracker plugin to use. Links to plugins can be found at " #~ "http://tortoisesvn.net/issuetrackerplugins" #~ msgstr "" #~ "Wählen Sie das einzusetzende Plug-in für Ihren Abweichungsverfolger. " #~ "Verweise auf Plug-ins sind unter http://tortoisesvn.net/" #~ "issuetrackerplugins verzeichnet" #~ msgid "Imported successfully" #~ msgstr "Import erfolgreich" #~ msgid "Import" #~ msgstr "Importieren" #~ msgid "Unable to parse a config file" #~ msgstr "Konnte die Einstellungsdatei nicht einlesen" #~ msgid " - Select Preset -" #~ msgstr " - Wählen Sie eine Voreinstellung -" #~ msgid "%s will be imported to the" #~ msgstr "%s wird importiert in" #~ msgid "unexpected destination name: %s" #~ msgstr "unerwarteter Zielname: %s" #~ msgid "#" #~ msgstr "Nr." #~ msgid "invalid reorder operation: %s" #~ msgstr "Ungültige neue Reihenfolge: %s" #~ msgid "Do you want to delete '%(name)s'?" #~ msgstr "Wollen Sie '%(name)s' entfernen?" #~ msgid "Confirm Fold" #~ msgstr "Faltung bestätigen" #~ msgid "series become inconsistent during reorder" #~ msgstr "Serie wird durch die Umordnung inkonsistent" #~ msgid "Yes (&keep)" #~ msgstr "Ja (&Beibehalten)" #~ msgid "Up" #~ msgstr "Hoch" #~ msgid "Top" #~ msgstr "Spitze" #~ msgid "Reorder" #~ msgstr "Umsortieren" #~ msgid "_Finish Applied" #~ msgstr "Angewendete _Abschließen" #~ msgid "Force" #~ msgstr "Erzwingen" #~ msgid "_Goto" #~ msgstr "_Wechseln" #~ msgid "_Rename" #~ msgstr "_Umbenennen" #~ msgid "F_old" #~ msgstr "_Falten" #~ msgid "_Delete" #~ msgstr "_Entfernen" #~ msgid "Bottom" #~ msgstr "Unten" #~ msgid "Down" #~ msgstr "Runter" #~ msgid "Show 'qparent'" #~ msgstr "Warteschlangen-Vorgänger anzeigen" #~ msgid "no pending pmerges" #~ msgstr "Keine ausstehenden pmerge-Operationen" #~ msgid "pending pmerges" #~ msgstr "Ausstehende pmerge-Operationen" #~ msgid "Pending Pmerge" #~ msgstr "Ausstehende pmerge-Operation" #~ msgid "_new" #~ msgstr "_neu" #~ msgid "Succeed" #~ msgstr "Erfolg" #~ msgid "St" #~ msgstr "St" #~ msgid "_goto (update workdir)" #~ msgstr "_Wechseln (Arbeitsverzeichnis ändern)" #~ msgid "_rename" #~ msgstr "_umbenennen" #~ msgid "Abandon" #~ msgstr "Verwerfen" #~ msgid "Show internal branches" #~ msgstr "Interne Zweige anzeigen" #~ msgid "Show name" #~ msgstr "Namen anzeigen" #~ msgid "_finish" #~ msgstr "_beenden" #~ msgid "Shelf Contents" #~ msgstr "Staurauminhalt" #~ msgid "Show title" #~ msgstr "Betreff anzeigen" #~ msgid "Show graph" #~ msgstr "Grafisch _darstellen" #~ msgid "Open..." #~ msgstr "Öffnen..." #~ msgid "Abandon Error" #~ msgstr "Fehler beim Verwerfen" #~ msgid "Delete the shelf contents?" #~ msgstr "Den Staurauminhalt entfernen?" #~ msgid "Backup all (default)" #~ msgstr "Alles sichern (Vorgabe)" #~ msgid "Backup unrelated changesets (-b/--backup)" #~ msgstr "Änderungslisten ohne Bezug sichern (-b/--backup)" #~ msgid "Updated successfully" #~ msgstr "Erfolgreich aktualisiert" #~ msgid "Always show log" #~ msgstr "Protokoll immer anzeigen" #~ msgid "%s changesets" #~ msgstr "%s Änderungslisten" #~ msgid "Saved at: %s" #~ msgstr "Gespeichert um: %s" #~ msgid "%(count)d of %(total)d Revisions" #~ msgstr "%(count)d von %(total)d Revisionen" #~ msgid "invalid dialog result: %s" #~ msgstr "Ungültiges Dialogergebnis: %s" #~ msgid "revisions %d to %d" #~ msgstr "Revisionen %d bis %d" #~ msgid "unable to clean temp directory: %s\n" #~ msgstr "Kann temporäres Verzeichnis nicht aufräumen: %s\n" #~ msgid "Changeset not found in current view" #~ msgstr "Änderungsliste in der aktuellen Ansicht nicht gefunden" #~ msgid "Failed to update" #~ msgstr "Aktualisierung gescheitert" #~ msgid "[canceled by user]\n" #~ msgstr "[vom Benutzer abgebrochen]\n" #~ msgid "Null changeset is not viewable" #~ msgstr "Die leere Änderungsliste kann nicht angezeigt werden" #~ msgid "Close diff tools and try again, or quit to leak files?" #~ msgstr "" #~ "Vergleichswerkzeuge schließen und neu versuchen, oder Beenden um die " #~ "Dateien durchsickern zu lassen" #~ msgid "Rev/ID" #~ msgstr "Revision/ID" #~ msgid "file copy of %s failed\n" #~ msgstr "Kopierend er Datei %s gescheitert\n" #~ msgid "abandon failed\n" #~ msgstr "Verwerfen gescheitert\n" #~ msgid "abort: backup restore failed, %s\n" #~ msgstr "Abbruch: Wiederherstellung gescheitert, %s\n" #~ msgid "nothing to abandon\n" #~ msgstr "Nichts zu verwerfen\n" #~ msgid "Unsupported line endings type: %s" #~ msgstr "Nicht unterstützte Zeilenendearaten: %s" #~ msgid "file %s already exists\n" #~ msgstr "Datei %s existiert bereits\n" #~ msgid "Abort: %s\n" #~ msgstr "Abbruch: %s\n" #~ msgid "template style to use" #~ msgstr "Zu verwendender Musterstil" #~ msgid "Save As" #~ msgstr "Speichern unter" #~ msgid "Save selected changes" #~ msgstr "Gewählte Änderungen speichern" #~ msgid "Cannot close now" #~ msgstr "Kann jetzt nicht geschlossen werden" #~ msgid "M: modified" #~ msgstr "M: bearbeitet" #~ msgid "Enable overlays" #~ msgstr "Überblendungsunterstützung aktivieren" #~ msgid "Transplant Revision range to local" #~ msgstr "Revisionsbereich in die lokale Kopie verpflanzen..." #~ msgid "Local Date" #~ msgstr "Lokales Datum" #~ msgid "Current revision (local)" #~ msgstr "aktuelle Revision (lokale Kopie)" #~ msgid "Serve" #~ msgstr "Web-Server" #~ msgid "Rename file to:" #~ msgstr "Datei umbenennen in:" #~ msgid "Several icons are courtesy of the TortoiseSVN project" #~ msgstr "" #~ "Verschiedene Symbole wurden freundlicherweise durch das TortoiseSVN-" #~ "Projekt zur Verfügung gestellt." #~ msgid "_Synchronize" #~ msgstr "_Abgleichen" #~ msgid "%s - synchronize" #~ msgstr "%s - abgleichen" #~ msgid "Error while reading status" #~ msgstr "Fehler bei der Zustandsprüfung" #~ msgid "Status: %s" #~ msgstr "Zustand: %s" #~ msgid "Font used in file lists in status and commit tools. Default: sans 9" #~ msgstr "" #~ "Zeichensatz für Dateilisten in Zustands- und Übernahmewerkzeugen. " #~ "Vorgabe: sans 9" #~ msgid "" #~ "Comma separated list of files that are automatically unchecked when the " #~ "status, commit, and shelve dialogs are opened. Default: None (leave blank)" #~ msgstr "" #~ "Kommagetrennte Liste von Dateien die automatisch abgewählt werden, wenn " #~ "ein Zustands-, Übernehmen- und Verstauen-Dialog geöffnet wird. Vorgabe: " #~ "keine (leer)" #~ msgid "" #~ "Show the diff panel below the file list in status, shelve, and commit " #~ "dialogs. Default: False (show diffs to right of file list)" #~ msgstr "" #~ "Zeigt den Vergleichsbereich unter der Dateiliste in den Zustands- " #~ "Verstauen- und Übernehmen-Dialogen. Vorgabe: nein (zeigt den " #~ "Vergleichsbereich rechts von der Dateiliste an)" #~ msgid "" #~ "Font used for diffs in status and commit tools. Default: monospace 10" #~ msgstr "" #~ "Zeichensatz für Abweichungen in Zustands- und Übernahmewerkzeugen. " #~ "Vorgabe: monospace 10" #~ msgid "Unable to determine repository status" #~ msgstr "Der Zustand des Projektarchivs konnte nicht ermittelt werden" #~ msgid "" #~ "The maximum size file (in KB) that TortoiseHg will show changes for in " #~ "the changelog, status, and commit windows. A value of zero implies no " #~ "limit. Default: 1024 (1MB)" #~ msgstr "" #~ "Die maximale Dateigröße (in KiB) für TortoiseHg, um Änderungen in der " #~ "Verlaufs-, Zustands- oder Übernahmeverzeichnis anzuzeigen. 0 bedeutet " #~ "unbegrennt. Vorgabe: 1024 (1 MiB)" #~ msgid "" #~ "The tab on which the status and commit tools will open. 0 - TextDiff, 1 - " #~ "Hunk Selection, 2 - Commit Preview. Default: 0" #~ msgstr "" #~ "Der Reiter, auf die Zustands- und Übernahmewerkzeuge sich öffnen. 0 - " #~ "Textvergleich, 1 - Schnipselauswahl, 2 - Übernahmevorschau. Vorgabe: 0" #~ msgid "filtered status" #~ msgstr "gefilterter Zustand" #~ msgid "Show status" #~ msgstr "Zustand anzeigen" #~ msgid "TortoiseHg Configure User-Global Settings" #~ msgstr "Allgemeine TortoiseHg-Einstellungen benutzerspezifisch festlegen" #~ msgid "Send emails" #~ msgstr "E-Mails senden" #~ msgid "Show emails which would be sent" #~ msgstr "Die eventuell zu versendenden E-Mails anzeigen" #~ msgid "Email outgoing changesets" #~ msgstr "Ausgehende Änderungslisten per E-Mail versenden" #~ msgid "Configure email settings" #~ msgstr "E-Mail-Einstellungen" #~ msgid "Email outgoing changes" #~ msgstr "Ausgehende Änderungen per E-Mail versenden" #~ msgid "Send" #~ msgstr "Versenden" #~ msgid "" #~ "Graphical merge program for resolving merge conflicts. If left " #~ "unspecified, Mercurial will use the first applicable tool it finds on " #~ "your system or use its internal merge tool that leaves conflict markers " #~ "in place. Chose internal:merge to force conflict markers, internal:" #~ "prompt to always select local or other, or internal:dump to leave files " #~ "in the working directory for manual merging" #~ msgstr "" #~ "Grafisches Zusammenführungsprogramm, mit dem Konflikte bei der " #~ "Zusammenführung gelöst werden. Wenn nichts angegeben wird, verwendet " #~ "Mercurial das erste passende Werkzeug auf Ihrem System. Oder es nutzt " #~ "sein internes Werkzeug, das die Konflikte in der Datei markiert. Wählen " #~ "sie internal:merge, um Markierungen zu erzwingen, internal:prompt, um " #~ "immer zwischen der lokalen und der anderen Version zu wählen, oder " #~ "internal:dump, um mehrere Dateien im Arbeitsverzeichnis zu lassen und " #~ "manuell zusammenzuführen." #~ msgid "Email local outgoing changes to one or more recipients" #~ msgstr "" #~ "Von hier ausgehende Änderungen an einen oder mehrere E-Mail-Empfänger " #~ "versenden" #~ msgid "delete of shelve backup failed" #~ msgstr "Entfernen des Stauraum-Sicherung gescheitert" #~ msgid "unshelve backup aborted\n" #~ msgstr "Sicherung des Stauraums abgebrochen\n" #~ msgid "bad shelve backup directory name" #~ msgstr "Verzeichnisname für die Stauraum-Sicherung ungeeignet" #~ msgid "restoring backup files\n" #~ msgstr "stelle Dateien aus der Sicherung wieder her\n" #~ msgid "Insufficient access rights, reverting to read-onlymode." #~ msgstr "Unzureichende Zugriffsrechte, wechsle in Nur-Lesen-Modus." #~ msgid "" #~ "%s\n" #~ "Reverting to read-only mode." #~ msgstr "" #~ "%s\n" #~ "Wechsle in Nur-Lesen-Modus." #~ msgid "_Forget" #~ msgstr "_Vergessen" #~ msgid "Browse" #~ msgstr "Betrachten" #~ msgid "Backout..." #~ msgstr "Rücksetzen..." #~ msgid "Backout changeset - %s" #~ msgstr "Änderungsliste rücksetzen - %s" #~ msgid "Backout" #~ msgstr "Rücksetzen" #~ msgid "Commit backout before merging with current working parent" #~ msgstr "" #~ "Rücksetzen abschließen vor der Verschmelzung mit dem aktuellen " #~ "Arbeitsvorgänger" #~ msgid "Canceled backout" #~ msgstr "Das Rücksetzen wurde abgebrochen" #~ msgid "Failed to backout" #~ msgstr "Das Rücksetzen ist fehlgeschlagen" #~ msgid "" #~ "The directory \"%s\" isn't empty!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "Das Verzeichnis \"%s\" ist nicht leer!\n" #~ "\n" #~ "Wollen Sie es überschreiben?" #~ msgid "name to show in web pages (default: working dir)" #~ msgstr "" #~ "Bezeichnung, die auf Webseiten angezeigt wird (Vorgabe: " #~ "Arbeitsverzeichnis)" #~ msgid "Compressed zip archives" #~ msgstr "Komprimierte ZIP-Archive" #~ msgid "unknown mode name: %s" #~ msgstr "Unbekannter Zustandsbezeichner: %s" #~ msgid "a bookmark named \"%s\" already exists" #~ msgstr "Es gibt bereits ein Lesezeichen namens \"%s\"" #~ msgid "No bookmark named \"%s\" exists" #~ msgstr "Ein Lesezeichen namens \"%s\" ist nicht vorhanden" #~ msgid "Please specify different paths" #~ msgstr "Bitte geben Sie verschiedene Pfade an" #~ msgid "Info Required" #~ msgstr "Informationen erforderlich" #~ msgid "Branch Operations" #~ msgstr "Verzweigungsoperationen" #~ msgid "Close current named branch" #~ msgstr "Aktuellen benannten Zweig schließen" #~ msgid "Copyright 2008-2010 Steve Borho and others" #~ msgstr "" #~ "Urheberrechtlich geschützt: im Zeitraum 2008 bis 2010 von Steve Borho und " #~ "anderen erstellt" #~ msgid "Archive revision:" #~ msgstr "Archiv-Revision:" #~ msgid "Message format needs to be configured" #~ msgstr "Das Kommentarformat muss konfiguriert werden" #~ msgid "Backout commit message" #~ msgstr "Übernahme-Kommentar rücksetzen" #~ msgid "Custom commit message is empty" #~ msgstr "Der erfasste Übernahme-Kommentar ist leer" #~ msgid "" #~ "Commit message text for new changeset that reverses the effect of the " #~ "change being backed out." #~ msgstr "" #~ "Übernahme-Kommentar für eine neue Änderungsliste, die die Auswirkungen " #~ "der zurückzuziehenden Änderungen aufhebt." #~ msgid "Message format configuration error" #~ msgstr "Falsch konfiguriertes Kommentarformat" #~ msgid " Messages and Errors" #~ msgstr " Kommentare und Fehler" #~ msgid "Save commit message at exit?" #~ msgstr "Übernahme-Kommentar beim Beenden speichern?" #~ msgid "" #~ "No issue link found in the commit message.The commit message should " #~ "contain an issue link. Configure this in the 'Issue' section in the " #~ "settings" #~ msgstr "" #~ "Im Übernahme-Kommentar gibt es keinen Abweichungs-Link, er sollte einen " #~ "solchen jedoch enthalten. Konfigurieren Sie dies im Abschnitt " #~ "'Abweichungsverfolgung' der Einstellungen." #~ msgid "" #~ "Maximum length of the commit message summary line. If set, TortoiseHg " #~ "will issue a warning if the summary line is too long or not separated by " #~ "a blank line. Default: 0 (unenforced)" #~ msgstr "" #~ "Höchstlänge der Zusammenfassungszeile des Übernahme-Kommentars. " #~ "TortoiseHg gibt eine Warnung aus, wenn die Zusammenfassungszeile zu lang " #~ "ist oder nicht mit einer Leerzeile vom Rest des Kommentars getrennt wird. " #~ "Vorgabe: 0 (keine Überprüfung)" #~ msgid "Recent commit messages..." #~ msgstr "Letzte Übernahme-Kommentare..." #~ msgid "" #~ "When commiting an issue, force the user to specify a reference to an " #~ "issue. If enabled, the regex configured in 'Issue Regex' must find a " #~ "match in the commit message" #~ msgstr "" #~ "Bei Übernahme einer Abweichung den Benutzer zwingen, einen Verweis auf " #~ "die Abweichung anzubringen. Ist dies aktiv, so wird der unter 'regulärer " #~ "Ausdruck für Abweichungen' angegebene reguläre Ausdruck genutzt, um den " #~ "Übernahme-Kommentar zu prüfen" #~ msgid "Show message" #~ msgstr "Kommentar anzeigen" #~ msgid "Message Line Length" #~ msgstr "Kommentarzeilen-Länge" #~ msgid "Commit Message" #~ msgstr "Übernahme-Kommentar" #~ msgid "_edit message" #~ msgstr "Kommentar _bearbeiten" #~ msgid "" #~ "Word wrap length of the commit message. If set, the popup menu can be " #~ "used to format the message and a warning will be issued if any lines are " #~ "too long at commit. Default: 0 (unenforced)" #~ msgstr "" #~ "Länge für den Zeilenumbruch des Übernahme-Kommentars. Wird ein Wert " #~ "angegeben, kann das Kontextmenü benutzt werden, um den Kommentar zu " #~ "formatieren. Außerdem wird ein Hinweis ausgegeben, wenn irgendeine Zeile " #~ "länger als gewünscht ist. Vorgabe: 0 (keine Überprüfung, keine " #~ "Formatierungshilfe)" #~ msgid "Revert %s to contents at revision %d?" #~ msgstr "Inhalt von %s wiederherstellen entsprechend Revision %d?" #~ msgid "_Revert File Contents" #~ msgstr "Dateiinhalt _wiederherstellen" #~ msgid "_Revert" #~ msgstr "_Wiederherstellen" #~ msgid "Select files to revert" #~ msgstr "Wählen Sie die wiederherzustellenden Dateien aus" #~ msgid "Confirm revert file to old revision" #~ msgstr "Wiederherstellen der alten Revision bestätigen" #~ msgid "Confirm Revert All Files" #~ msgstr "Wiederherstellen aller Dateien bestätigen" #~ msgid "" #~ "Revert all files to revision %d?\n" #~ "This will overwrite your local changes" #~ msgstr "" #~ "Wollen Sie alle Dateien in Revision %d wiederherstellen?\n" #~ "Sie verlieren auf diese Weise alle lokalen Änderungen." #~ msgid "Revert files?" #~ msgstr "Dateien wiederherstellen?" #~ msgid "Revert not allowed when viewing revision range." #~ msgstr "" #~ "Wiederherstellen ist bei Ansicht eines Revisionsbereichs unzulässig." #~ msgid "Revert checked files" #~ msgstr "Angekreuzte Dateien wiederherstellen" #~ msgid "Nothing Reverted" #~ msgstr "Nichts wiederhergestellt" #~ msgid "No revertable files selected" #~ msgstr "Keine wiederherstellbaren Dateien ausgewählt" #~ msgid "Revert files to revision %s?" #~ msgstr "Dateien in Revision %s wiederherstellen?" #~ msgid "backup %r as %r\n" #~ msgstr "Sicherheitskopie von %r als %r\n" #~ msgid "removing backup file : %r\n" #~ msgstr "Entferne Sicherheitskopie: %r\n" #~ msgid "Push" #~ msgstr "Übertragen" #~ msgid "" #~ "Defines the command to run when an issue number is recognized. You may " #~ "include groups in issue.regex, and corresponding {n} tokens in issue.link " #~ "(where n is a non-negative integer). {0} refers to the entire string " #~ "matched by issue.regex, while {1} refers to the first group and so on. If " #~ "no {n} tokensare found in issue.link, the entire matched string is " #~ "appended instead." #~ msgstr "" #~ "Definiert die auszuführende Anweisung, wenn eine Ticket-ID erkannt wird. " #~ "Sie können Gruppen in issue.regex einschließen, und entsprechende {n} " #~ "Token in issue.link (für eine positive Zahl n). {0} bezieht sich auf den " #~ "gesamten Text, der vom regulären Ausdruck getroffen wird, während {1} " #~ "sich auf die erste Treffergruppe bezieht, und so weiter. Wenn keine {n} " #~ "Token in issue.link gefunden werden, wird stattdessen der gesamte " #~ "getroffene Text angehängt." #~ msgid "Restart Merge..." #~ msgstr "Zusammenführung neu beginnen..." #~ msgid "Restart merge with" #~ msgstr "Zusammenführung neu beginnen mit" #~ msgid "binary patch is %d bytes, not %d" #~ msgstr "Der binäre Patch hat %d Byte, nicht %d" #~ msgid "unable to find %s or %s for patching" #~ msgstr "Kann %s oder %s zum Patchen nicht ausmachen" #~ msgid "could not extract binary patch" #~ msgstr "Konnte binären Patch nicht auspacken" #~ msgid "malformed patch %s %s" #~ msgstr "Verunstalteter Patch %s %s" #~ msgid "patching file %s\n" #~ msgstr "Patche Datei %s\n" #~ msgid "Diff to Local" #~ msgstr "Diff mit der lokalen Version" #~ msgid "Diff" #~ msgstr "Diff" #~ msgid "" #~ "If true, concatenate multiple lines of changeset summary until they reach " #~ "80 characters. Default: False" #~ msgstr "" #~ "Ja bedeutet, dass die ersten Zeilen der Änderungssatz-Zusammenfassung " #~ "zusammengefügt werden, bis 80 Zeichen erreicht sind. Standard: nein" #~ msgid "Connect to mail server using TLS. Default: False" #~ msgstr "Verschlüsselte Verbindung mit dem Mailserver (TLS). Standard: False" #~ msgid "Ignore changes in the amount of white space. Default: False" #~ msgstr "Unterschiede in der Anzahl des Leerraums ignorieren. Standard: nein" #~ msgid "Ignore white space when comparing lines. Default: False" #~ msgstr "" #~ "Leerraum-Unterschiede beim Zeilenvergleich ignorieren. Standard: nein" #~ msgid "Ignore changes whose lines are all blank. Default: False" #~ msgstr "" #~ "Ignoriere Änderungen, die sich nur auf leere Zeilen auswirken. Standard: " #~ "False" #~ msgid "View missing" #~ msgstr "Fehlende Datei ansehen" #~ msgid "" #~ "A \"template string\" that, when set, turns the revision number and short " #~ "hashes that are shown on the revision panels into links.
                        The " #~ "\"template string\" uses a \"mercurial template\"-like syntax that " #~ "currently accepts two template expressions:

                        • {node|short} : " #~ "replaced by the 12 digit revision id (note that {node} on its own is " #~ "currently unsupported).
                        • {rev} : replaced by the revision number.For example, in order to link to bitbucket commit pages you can set " #~ "this to:
                          https://bitbucket.org/tortoisehg/thg/commits/{node|short}" #~ msgstr "" #~ "Eine \"Schablonenzeichenkette\", welche aus Revisionen und Kurz-Hashes, " #~ "welche in Revisionspaneelen dargestellt werden, in Links umwandelt.
                          Die Schablone setzt die Syntax von \"mercurial template\" ein, welche " #~ "zurzeit zwei Schablonenausdrücke erlaubt:
                          • {node|short} : wird " #~ "durch die zwölfstellige Revisions-ID ersetzt (Hinweis: \"node\" alleine " #~ "wird zurzeit nicht unterstützt).
                          • {rev} : ersetzt durch die " #~ "Revisionsnummer.
                          Beispielweise können Sie, um Übernehmen-Seiten " #~ "von Bitbucket zu verlinken, diesen Wert wie folgt einstellen:
                          https://" #~ "bitbucket.org/tortoisehg/thg/commits/{node|short}" #~ msgid "" #~ "Color changesets by author name. If not enabled, the changes are colored " #~ "green for merge, red for non-trivial parents, black for normal. Default: " #~ "False" #~ msgstr "" #~ "Änderungssatz nach Autor einfärben. Im Regelfall werden Änderungen zum " #~ "Zusammenführen grün markiert, Änderungen mit nicht-trivialen Vorgängern " #~ "rot und gewöhnliche schwarz. Standard: Falsch" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/en_AU.po0000644000000000000000000066030314440352353016625 0ustar00rootroot# English (Australia) translation for tortoisehg # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the tortoisehg package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2011-08-24 13:22+0000\n" "Last-Translator: Kyle Simpson \n" "Language-Team: English (Australia) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2019-07-17 05:46+0000\n" "X-Generator: Launchpad (build 19009)\n" msgid "TortoiseHg Overlay Icon Server" msgstr "TortoiseHg Overlay Icon Server" msgid "Exit" msgstr "Exit" msgid "About" msgstr "About" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "" msgid "You can visit our site here" msgstr "You can visit our site here" msgid "&License" msgstr "&License" #, python-format msgid "version %s" msgstr "version %s" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "" msgid "License" msgstr "" msgid "= Working Directory Parent =" msgstr "= Working Directory Parent =" msgid "Directory of files" msgstr "Directory of files" msgid "Tar archives" msgstr "Tar archives" msgid "Uncompressed tar archive" msgstr "Uncompressed tar archive" msgid "Bzip2 tar archives" msgstr "Bzip2 tar archives" msgid "Tar archive compressed using bzip2" msgstr "Tar archive compressed using bzip2" msgid "Gzip tar archives" msgstr "Gzip tar archives" msgid "Tar archive compressed using gzip" msgstr "Tar archive compressed using gzip" msgid "Zip archives" msgstr "Zip archives" msgid "Uncompressed zip archive" msgstr "Uncompressed zip archive" msgid "Zip archive compressed using deflate" msgstr "Zip archive compressed using deflate" msgid "Revision:" msgstr "Revision:" msgid "All files in this revision" msgstr "" msgid "Only files modified/created in this revision" msgstr "Only files modified/created in this revision" msgid "Only files modified/created since:" msgstr "" msgid "Archive Content:" msgstr "" msgid "Recurse into subrepositories" msgstr "Recurse into subrepositories" msgid "Browse..." msgstr "Browse..." msgid "Destination path:" msgstr "Destination path:" msgid "Archive types:" msgstr "Archive types:" msgid "Hg command:" msgstr "Hg command:" msgid "Select Destination Folder" msgstr "Select Destination Folder" msgid "Select Destination File" msgstr "Select Destination File" msgid "All files (*)" msgstr "" msgid "Duplicate Name" msgstr "Duplicate Name" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "The destination \"%s\" already exists as a file!" msgid "Confirm Overwrite" msgstr "Confirm Overwrite" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "The destination \"%s\" already exists as a folder!" #, python-format msgid "Archive - %s" msgstr "Archive - %s" msgid "&Archive" msgstr "&Archive" msgid "Backout requires a parent revision" msgstr "" msgid "Cannot backout change on a different branch" msgstr "Cannot backout change on a different branch" #, python-format msgid "Backout - %s" msgstr "Backout - %s" msgid "Prepare to backout" msgstr "Prepare to backout" msgid "Verify backout revision and ensure your working directory is clean." msgstr "Verify backout revision and ensure your working directory is clean." msgid "Backing out a parent revision is a single step operation" msgstr "Backing out a parent revision is a single step operation" msgid "Backout revision" msgstr "Backout revision" msgid "Not a head, backout will create a new head!" msgstr "Not a head, backout will create a new head!" msgid "Current local revision" msgstr "Current local revision" msgid "Working directory status" msgstr "Working directory status" msgid "Checking..." msgstr "Checking…" msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" "Before backout, you must commit, shelve to patch, or discard changes." msgid "Automatically resolve merge conflicts where possible" msgstr "Automatically resolve merge conflicts where possible" msgid "Uncommitted local changes are detected" msgstr "Uncommitted local changes are detected" msgid "Clean" msgstr "Clean" msgid "Backing out, then merging..." msgstr "Backing out, then merging..." msgid "All conflicting files will be marked unresolved." msgstr "All conflicting files will be marked unresolved." msgid "Automatically advance to next page when backout and merge are complete." msgstr "" "Automatically advance to next page when backout and merge are complete." #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" "%d files have merge conflicts that must be resolved" msgid "No merge conflicts, ready to commit" msgstr "No merge conflicts, ready to commit" msgid "Commit backout and merge results" msgstr "Commit backout and merge results" msgid "Parents" msgstr "Parents" msgid "Working Directory" msgstr "Working Directory" msgid "Working Directory (merged)" msgstr "Working Directory (merged)" msgid "Commit message" msgstr "Commit message" msgid "Skip final confirmation page, close after commit." msgstr "Skip final confirmation page, close after commit." msgid "Backed out changeset: " msgstr "Backed out changeset: " msgid "Confirm Discard Message" msgstr "Confirm Discard Message" msgid "Discard current backout message?" msgstr "Discard current backout message?" msgid "Use English backout message" msgstr "Use English backout message" msgid "Backing out and committing..." msgstr "Backing out and committing..." msgid "Please wait while making backout." msgstr "" msgid "Committing..." msgstr "Committing..." msgid "Please wait while committing merged files." msgstr "Please wait while committing merged files." msgid "Finished" msgstr "Finished" msgid "Backout changeset" msgstr "Backout changeset" #, python-format msgid "Bisect - %s" msgstr "Bisect - %s" msgid "Accept" msgstr "Accept" msgid "Known good revision:" msgstr "Known good revision:" msgid "Known bad revision:" msgstr "Known bad revision:" msgid "Discard local changes (revert --all)" msgstr "" msgid "Revision is &Good" msgstr "" msgid "Revision is &Bad" msgstr "" msgid "&Skip this Revision" msgstr "" msgid "Close" msgstr "Close" msgid "Error encountered." msgstr "Error encountered." msgid "Culprit found." msgstr "Culprit found." msgid "Revision" msgstr "Revision" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "Test this revision and report findings. (good/bad/skip)" #, python-format msgid "%s (hint: %s)" msgstr "%s (hint: %s)" msgid "Bookmark:" msgstr "Bookmark:" msgid "New Name:" msgstr "New Name:" msgid "Activate:" msgstr "" msgid "&Add" msgstr "&Add" msgid "Re&name" msgstr "Re&name" msgid "&Remove" msgstr "&Remove" msgid "&Move" msgstr "&Move" #, python-format msgid "Bookmark - %s" msgstr "Bookmark - %s" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "A bookmark named \"%s\" already exists" #, python-format msgid "Bookmark '%s' has been added" msgstr "Bookmark '%s' has been added" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "Bookmark named \"%s\" does not exist" #, python-format msgid "Bookmark '%s' has been moved" msgstr "Bookmark '%s' has been moved" #, python-format msgid "Bookmark '%s' does not exist" msgstr "Bookmark '%s' does not exist" #, python-format msgid "Bookmark '%s' has been removed" msgstr "Bookmark '%s' has been removed" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "Bookmark '%s' has been renamed to '%s'" msgid "TortoiseHg Bookmark Sync" msgstr "" msgid "Outgoing Bookmarks" msgstr "" msgid "&Push Bookmark" msgstr "" msgid "&Remove Bookmark" msgstr "" msgid "Incoming Bookmarks" msgstr "" msgid "P&ull Bookmark" msgstr "" msgid "R&emove Bookmark" msgstr "" #, python-format msgid "Pushed local bookmark: %s" msgstr "" #, python-format msgid "Pulled remote bookmark: %s" msgstr "" #, python-format msgid "Removed remote bookmark: %s" msgstr "" #, python-format msgid "Removed local bookmark: %s" msgstr "" #, python-format msgid "%s - branch operation" msgstr "%s - branch operation" msgid "Select branch of merge commit" msgstr "Select branch of merge commit" msgid "Changes take effect on next commit" msgstr "Changes take effect on next commit" msgid "No branch changes" msgstr "No branch changes" msgid "Open a new named branch" msgstr "Open a new named branch" msgid "Close current branch" msgstr "Close current branch" #, python-format msgid "Please report this bug to our bug tracker" msgstr "Please report this bug to our bug tracker" msgid "Checking for updates..." msgstr "" msgid "Copy" msgstr "Copy" msgid "Quit" msgstr "Quit" msgid "TortoiseHg Bug Report" msgstr "TortoiseHg Bug Report" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "" msgid "Your TortoiseHg is up to date." msgstr "" msgid "Save error report to" msgstr "Save error report to" msgid "Text files (*.txt)" msgstr "Text files (*.txt)" msgid "Error writing file" msgstr "Error writing file" msgid "TortoiseHg Error" msgstr "TortoiseHg Error" msgid "" "If you still have trouble, please file a bug report." msgstr "" "If you still have trouble, please file a bug report." msgid "Visual Diff" msgstr "Visual Diff" msgid "View file changes in external diff tool" msgstr "View file changes in external diff tool" msgid "Edit Local" msgstr "Edit Local" msgid "Edit current file in working copy" msgstr "Edit current file in working copy" msgid "Revert to Revision" msgstr "Revert to revision" msgid "Revert file(s) to contents at this revision" msgstr "Revert file(s) to contents at this revision" msgid "Patch failed to apply" msgstr "" msgid "Manually resolve rejected chunks?" msgstr "" msgid "Edit patched file and rejects?" msgstr "" msgid "No deletable chunks" msgstr "" msgid "Completely remove file from patch?" msgstr "" msgid "Revert all file changes?" msgstr "" msgid "No chunks remain" msgstr "" msgid "file has been deleted, refresh" msgstr "" msgid "file has been modified, refresh" msgstr "" msgid "Unable to merge chunks" msgstr "" msgid "Add or remove patches must be merged in the working directory" msgstr "" msgid "Unable to remove" msgstr "" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" msgctxt "files" msgid "All" msgstr "" msgctxt "files" msgid "None" msgstr "" msgid "Toggle display of text search bar" msgstr "" msgid "Diff Toolbar" msgstr "" #, python-format msgid "Chunks selected: %d / %d" msgstr "" msgid "Please wait while the file is opened ..." msgstr "" msgid "Source:" msgstr "Source:" msgid "Destination:" msgstr "Destination:" msgid "Options" msgstr "Options" msgid "Clone to revision:" msgstr "Clone to revision:" msgid "A revision identifier, bookmark, tag or branch name" msgstr "" msgid "Do not update the new working directory" msgstr "Do not update the new working directory" msgid "Use pull protocol to copy metadata" msgstr "Use pull protocol to copy metadata" msgid "Clone with minimal processing" msgstr "" msgid "Include patch queue" msgstr "" msgid "Use proxy server" msgstr "Use proxy server" msgid "Do not verify host certificate" msgstr "" msgid "Remote command:" msgstr "Remote command:" msgid "Use largefiles" msgstr "" msgid "Start revision:" msgstr "" msgid "Select source repository" msgstr "" msgid "Select destination repository" msgstr "" msgid "Select patch folder" msgstr "" #, python-format msgid "Clone - %s" msgstr "" msgid "&Clone" msgstr "" msgid "failed to start command\n" msgstr "" msgid "error while running command\n" msgstr "" #, python-format msgid "process exited unexpectedly with code %d" msgstr "" #, python-format msgid "failed to encode command: %s" msgstr "" #, python-format msgid "timed out while reading: %r..." msgstr "" msgid "timed out waiting for message" msgstr "" #, python-format msgid "unexpected response on required channel %r" msgstr "" #, python-format msgid "invalid \"hello\" message: %r" msgstr "" msgid "no \"runcommand\" capability" msgstr "" #, python-format msgid "corrupted command result: %r" msgstr "" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "" msgid "Terminated by user" msgstr "" #, python-format msgid "[command terminated by user %s]" msgstr "" #, python-format msgid "[command interrupted %s]" msgstr "" #, python-format msgid "[command returned code %d %%s]" msgstr "" #, python-format msgid "[command completed successfully %s]" msgstr "" msgid "Running..." msgstr "Running..." msgid "Failed!" msgstr "" msgid "Clea&r Log" msgstr "" msgid "TortoiseHg Prompt" msgstr "TortoiseHg Prompt" msgid "Show Detail" msgstr "" msgid "Hide Detail" msgstr "" msgid "Confirm Exit" msgstr "Confirm Exit" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" msgid "&Run" msgstr "" msgid "TortoiseHg Command Dialog" msgstr "" msgid "Command Error" msgstr "" #, python-format msgid "[Code: %d]" msgstr "" msgid "Merge" msgstr "Merge" #, python-format msgid "Merge with %s" msgstr "" msgid "Patch Name Required" msgstr "" msgid "You must enter a patch name" msgstr "" msgctxt "start progress" msgid "Commit" msgstr "" msgctxt "start progress" msgid "MQ Action" msgstr "" msgctxt "start progress" msgid "Rollback" msgstr "" msgid "Commit Dialog Toolbar" msgstr "" msgid "Branch: " msgstr "" msgid "Copy message" msgstr "" msgid "Copy one of the recent commit messages" msgstr "" msgid "Show Issues" msgstr "" msgid "Please wait..." msgstr "" #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "" msgid "Issue Tracker" msgstr "" msgid "Show Issues..." msgstr "" msgid "Stop" msgstr "Stop" msgid "### patch name ###" msgstr "" msgid "Commit changes" msgstr "" msgid "Commit" msgstr "Commit" msgid "Amend current revision" msgstr "" msgid "Amend" msgstr "" msgid "Create a new patch" msgstr "" msgid "QNew" msgstr "QNew" msgid "Refresh current patch" msgstr "" msgid "QRefresh" msgstr "QRefresh" msgid "Confirm Branch Change" msgstr "" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "" msgid "Restart &Branch" msgstr "" msgid "&Commit to current branch" msgstr "" msgid "Cancel" msgstr "Cancel" msgid "Confirm New Branch" msgstr "Confirm New Branch" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "" msgid "Create &Branch" msgstr "" msgid "Close Branch: " msgstr "" msgid "New Branch: " msgstr "" #, python-format msgid "Selected Options: %s" msgstr "" msgid "Parent:" msgstr "Parent:" msgid "Patch name:" msgstr "" #, python-format msgid "Close %s branch" msgstr "" #, python-format msgid "Rollback commit to revision %d" msgstr "" msgid "Confirm Undo" msgstr "" msgid "Discard current commit message?" msgstr "Discard current commit message?" msgid "Message Translation Failure" msgstr "" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" msgid "&Replace" msgstr "" msgid "Nothing Committed" msgstr "" msgid "Please enter commit message" msgstr "Please enter commit message" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" msgid "No files checked" msgstr "" msgid "No modified files checkmarked for commit" msgstr "" msgid "Confirm Add" msgstr "" msgid "Add selected untracked files?" msgstr "" msgid "Confirm Remove" msgstr "" msgid "Remove selected deleted files?" msgstr "" msgid "Nothing changed." msgstr "" msgctxt "window title" msgid "Commit" msgstr "" #, python-format msgid "%s - commit options" msgstr "" msgid "Set username:" msgstr "" msgid "Save in Repo" msgstr "" msgid "Save Global" msgstr "" msgid "Set Date:" msgstr "" msgid "Update" msgstr "Update" msgid "Push After Commit:" msgstr "" msgid "Auto Includes:" msgstr "" msgid "Recurse into subrepositories (--subrepos)" msgstr "" msgid "Unable to save username" msgstr "" msgid "Iniparse must be installed." msgstr "" msgid "Unable to write configuration file" msgstr "Unable to write configuration file" msgid "Unable to save after commit push" msgstr "" msgid "Unable to save auto include list" msgstr "" msgid "Unable to save recurse in subrepos." msgstr "" msgid "Invalid date format" msgstr "" msgid "No username configured" msgstr "" #, python-format msgid "%s - commit" msgstr "" msgid "TortoiseHg Commit" msgstr "" msgid "Are you sure that you want to cancel the commit operation?" msgstr "" msgid "Compress changesets up to and including" msgstr "" msgid "Onto destination" msgstr "" msgid "Compress" msgstr "" #, python-format msgid "Compress - %s" msgstr "" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the compress" msgstr "" msgid "Changes have been moved, you must now commit" msgstr "" msgctxt "action button" msgid "Commit" msgstr "" msgid "Compress is complete, old history untouched" msgstr "" msgid "must be specified repository" msgstr "must be specified repository" msgid "must be specified 'type' in style" msgstr "must be specified 'type' in style" msgid "Git Commit:" msgstr "" msgid "Summary:" msgstr "Summary:" msgid "User:" msgstr "User:" msgid "Date:" msgstr "Date:" msgid "Age:" msgstr "Age:" msgid "Branch:" msgstr "Branch:" msgid "Close:" msgstr "" msgid "Tags:" msgstr "Tags:" msgid "Graft:" msgstr "" msgid "Transplant:" msgstr "Transplant:" msgid "Obsolete state:" msgstr "" msgid "Perforce:" msgstr "Perforce:" msgid "Subversion:" msgstr "Subversion:" msgid "Converted From:" msgstr "" msgid "Original Parent:" msgstr "" msgid "No items to display" msgstr "No items to display" msgid "Use compact view" msgstr "Use compact view" msgid "Patch:" msgstr "Patch:" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "Displaying %(count)d of %(total)d items" msgid "Select a GUI location to edit:" msgstr "" msgid "Select the toolbar or menu to change" msgstr "" msgid "Tools shown on selected location" msgstr "" msgid "Delete from list" msgstr "" msgid "Add to list" msgstr "" msgid "Add separator" msgstr "" msgid "List of all tools" msgstr "" msgid "New Tool ..." msgstr "" msgid "Edit Tool ..." msgstr "" msgid "Delete Tool" msgstr "" msgid "Type" msgstr "Type" msgid "Name" msgstr "Name" msgid "Command" msgstr "" msgid "New hook" msgstr "" msgid "Edit hook" msgstr "" msgid "Delete hook" msgstr "" msgid "Replace existing hook?" msgstr "" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" msgid "OK" msgstr "OK" msgid "Missing information" msgstr "" msgid "All items" msgstr "" msgid "Working directory" msgstr "" msgid "All revisions" msgstr "" msgid "All contexts" msgstr "" msgid "Fixed revisions" msgstr "" msgid "Applied patches" msgstr "" msgid "Applied patches or qparent" msgstr "" msgid "" msgstr "" msgid "Configure Custom Tool" msgstr "" msgid "Tool name" msgstr "" msgid "The tool name. It cannot contain spaces." msgstr "" #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" msgid "Tool label" msgstr "" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" msgid "Tooltip" msgstr "" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" msgid "Icon" msgstr "" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" msgid "On repowidget, show for" msgstr "" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" msgid "Show Output Log" msgstr "" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" msgid "You must set a tool name." msgstr "" msgid "The tool name cannot have any spaces in it." msgstr "" msgid "You must set a command to run." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" msgid "Configure Hook" msgstr "" msgid "Hook type" msgstr "" msgid "Select when your command will be run" msgstr "" msgid "The hook name. It cannot contain spaces." msgstr "" msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" msgid "You must set a valid hook type." msgstr "" msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "" msgid "Console" msgstr "" msgid "File &History / Annotate" msgstr "" msgid "Show the history of the selected file" msgstr "" msgid "Co&mpare File Revisions" msgstr "" msgid "Compare revisions of the selected file" msgstr "" msgid "Filter Histor&y" msgstr "" msgid "Query about changesets affecting the selected files" msgstr "" msgid "Diff &Changeset to Parent" msgstr "" msgid "Diff Changeset to Loc&al" msgstr "" msgid "&Diff to Parent" msgstr "" msgid "Diff to &Local" msgstr "" msgid "View changes to current in external diff tool" msgstr "" msgid "&View at Revision" msgstr "" msgid "View file as it appeared at this revision" msgstr "" msgid "&Save at Revision..." msgstr "" msgid "Save file as it appeared at this revision" msgstr "" msgid "Save file to" msgstr "Save file to" msgid "&Edit Local" msgstr "" msgid "&Open Local" msgstr "" msgid "E&xplore Local" msgstr "" msgid "Open parent folder of current file in the system file manager" msgstr "" msgid "&Copy Patch" msgstr "" msgid "Copy &Path" msgstr "" msgid "Copy full path of file(s) to the clipboard" msgstr "" msgid "&Revert to Revision..." msgstr "" msgid "Open S&ubrepository" msgstr "" msgid "Open the selected subrepository" msgstr "" msgid "E&xplore Folder" msgstr "" msgid "Open the selected folder in the system file manager" msgstr "" msgid "Open &Terminal" msgstr "" msgid "Open a shell terminal in the selected folder" msgstr "" msgid "Custom Tools" msgstr "" msgid "Diff &Local" msgstr "" msgid "&View Missing" msgstr "" msgid "View O&ther" msgstr "" msgid "Add &Largefiles..." msgstr "" msgid "&Forget" msgstr "" msgid "&Delete Unversioned..." msgstr "" msgid "Confirm Delete Unversioned" msgstr "" msgid "Delete the following unversioned files?" msgstr "" msgid "&Delete" msgstr "" msgid "Re&move Versioned" msgstr "" msgid "&Revert..." msgstr "" msgid "Uncommited merge - please select a parent revision" msgstr "Uncommited merge - please select a parent revision" msgid "Revert files to local or other parent?" msgstr "Revert files to local or other parent?" msgid "&Local" msgstr "&Local" msgid "&Other" msgstr "&Other" msgid "Confirm Revert" msgstr "Confirm Revert" msgid "Revert local file changes?" msgstr "" msgid "&Revert with backup" msgstr "" msgid "&Discard changes" msgstr "" msgid "Revert the following files?" msgstr "" msgid "&Revert" msgstr "" msgid "&Copy..." msgstr "" msgid "Re&name..." msgstr "" msgid "&Ignore..." msgstr "" msgid "Edit Re&jects" msgstr "" msgid "Manually resolve rejected patch chunks" msgstr "" msgid "De&tect Renames..." msgstr "" msgid "&Mark Resolved" msgstr "" msgid "&Mark Unresolved" msgstr "" msgid "Restart Mer&ge" msgstr "" msgid "Was renamed from" msgstr "" msgid "Restart Merge &with" msgstr "" msgid "Display the file anyway" msgstr "" msgid "Diff not displayed: " msgstr "" #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid "File is binary" msgstr "" msgid "File may be binary (maximum line length exceeded)" msgstr "" msgid "File or diffs not displayed: " msgstr "" msgid " (was added)" msgstr "" #, python-format msgid " (copied from %s)" msgstr "" #, python-format msgid " (renamed from %s)" msgstr "" msgid " (is a symlink)" msgstr "" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid " (was deleted)" msgstr "" msgid " (was added, now missing)" msgstr "" msgid " (is unversioned)" msgstr "" msgid "exec mode has been set" msgstr "" msgid "exec mode has been unset" msgstr "" #, python-format msgid "changeset: %s" msgstr "" msgid "Initial revision" msgstr "" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" msgid "Subrepo created and set to initial revision." msgstr "" msgid "Subrepo initialized to revision:" msgstr "" msgid "Subrepo removed from repository." msgstr "" msgid "Previously the subrepository was at the following revision:" msgstr "" msgid "Subrepo was not changed." msgstr "" msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "" msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "" msgid "Subrepo state is:" msgstr "" msgid "Revision has changed to:" msgstr "" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "" msgid "From:" msgstr "From:" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" msgid "Subrepository not found in the working directory." msgstr "" msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" msgid "Not a Mercurial subrepo, not previewable" msgstr "" #, python-format msgid "Error previewing subrepo: %s" msgstr "" msgid "Subrepo may be damaged or inaccessible." msgstr "" msgid "The subrepository is dirty." msgstr "" msgid "File Status:" msgstr "" msgid "(is a changed sub-repository)" msgstr "" msgid "(is an unchanged sub-repository)" msgstr "" msgid "(is a dirty sub-repository)" msgstr "" msgid "(is a new sub-repository)" msgstr "" msgid "(is a removed sub-repository)" msgstr "" msgid "(is a changed and dirty sub-repository)" msgstr "" msgid "(is a new and dirty sub-repository)" msgstr "" msgid "open..." msgstr "" #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "" msgid "File History Log Columns" msgstr "" msgid "Back" msgstr "" msgid "Forward" msgstr "" msgid "Diff Selected &Changesets" msgstr "" msgid "&Diff Selected File Revisions" msgstr "" msgid "Show Revision &Details" msgstr "" msgid "Too many rows selected for menu" msgstr "" msgid "File Differences Log Columns" msgstr "" msgid "Next diff" msgstr "" msgid "Previous diff" msgstr "" msgid "Unicode" msgstr "" msgid "Western Europe" msgstr "" msgid "Unified Chinese" msgstr "" msgid "Traditional Chinese" msgstr "" msgid "Korean" msgstr "" msgid "Japanese" msgstr "" msgid "Thai" msgstr "" msgid "Central and Eastern Europe" msgstr "" msgid "Cyrillic" msgstr "" msgid "Russian" msgstr "" msgid "Ukrainian" msgstr "" msgid "Greek" msgstr "" msgid "Turkish" msgstr "" msgid "Arabic" msgstr "" msgid "Hebrew" msgstr "" msgid "Vietnamese" msgstr "" msgid "Baltic" msgstr "" msgid "Southern Europe" msgstr "" msgid "Nordic" msgstr "" msgid "Celtic" msgstr "" msgid "South-Eastern Europe" msgstr "" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "" msgid "View change as unified diff output" msgstr "" msgid "View change in context of file" msgstr "" msgid "Annotate with revision numbers" msgstr "" msgid "Next Diff" msgstr "" msgid "Previous Diff" msgstr "" msgid "Open shelve tool" msgstr "" msgid "&Auto Detect" msgstr "" msgid "Show changes from first parent" msgstr "" msgid "Show changes from second parent" msgstr "" msgid "E&ncoding" msgstr "" msgid "&Search in Current File" msgstr "" msgid "Search in All &History" msgstr "" msgid "Go to Line" msgstr "" #, python-format msgid "Enter line number (1 - %d)" msgstr "" msgid "Show &Author" msgstr "" msgid "Show &Date" msgstr "" msgid "Show &Revision" msgstr "" msgid "Annotate Op&tions" msgstr "" msgid "Search Selected Text" msgstr "" msgid "In Current &File" msgstr "" msgid "In &Current Revision" msgstr "" msgid "In &Original Revision" msgstr "" msgid "In All &History" msgstr "" msgid "Go to" msgstr "" msgid "View File at" msgstr "" msgid "Diff File to" msgstr "" msgid "&Originating Revision" msgstr "" msgid "&Parent Revision" msgstr "" #, python-format msgid "&Parent Revision (%d)" msgstr "" msgid "&Mark Excluded Changes" msgstr "" msgid "(excluded from the next commit)" msgstr "" msgid "Interrupted graft operation found" msgstr "" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" msgid "Continue or abort interrupted graft operation?" msgstr "" msgid "To graft destination" msgstr "" msgid "Use my user name instead of graft committer user name" msgstr "" msgid "Use current date" msgstr "" msgid "Append graft info to log message" msgstr "" msgid "Graft" msgstr "" msgid "Abort" msgstr "Abort" #, python-format msgid "Graft - %s" msgstr "" msgid "Graft changeset" msgstr "" #, python-format msgid "Graft changeset #%d of %d" msgstr "" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" msgid "You may continue or start the graft" msgstr "" msgid "Graft is complete" msgstr "" msgid "Graft failed" msgstr "" msgid "Graft aborted" msgstr "" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" msgid "You may continue the graft" msgstr "" msgid "Exiting with an unfinished graft is not recommended." msgstr "" msgid "Consider aborting the graft first." msgstr "" msgid "&Exit" msgstr "" msgid "### regular expression search pattern ###" msgstr "" msgid "Regexp:" msgstr "Regexp:" msgid "Ignore case" msgstr "Ignore case" msgid "Search" msgstr "Search" msgid "Working Copy" msgstr "" msgid "All History" msgstr "" msgid "Report only the first match per file" msgstr "" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "Follow copies and renames" msgid "Includes:" msgstr "Includes:" msgid "Excludes:" msgstr "Excludes:" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" #, python-format msgid "\"%s\" removed from search history" msgstr "" #, python-format msgid "\"%s\" removed from path history" msgstr "" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "" #, python-format msgid "grep: %s\n" msgstr "" #, python-format msgid "%d matches found" msgstr "" msgid "No matches found" msgstr "" msgid "Searching" msgstr "" msgid "history" msgstr "" msgid "Interrupted" msgstr "" msgid "files" msgstr "" #, python-format msgid "Skipping %s, unable to read" msgstr "" msgid "Vi&ew File" msgstr "" msgid "&View Changeset" msgstr "" msgid "Annotate &File" msgstr "" msgid "File" msgstr "File" msgid "Line" msgstr "Line" msgid "Rev" msgstr "Rev" msgid "User" msgstr "User" msgid "Match Text" msgstr "" msgid "TortoiseHg Search" msgstr "" #, python-format msgid "Detect Copies/Renames in %s" msgstr "Detect Copies/Renames in %s" msgid "Unrevisioned Files" msgstr "" msgid "Refresh file list" msgstr "" #, python-format msgid "Min Similarity: %d%%" msgstr "" msgid "Only consider deleted files" msgstr "" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "" msgid "Find Renames" msgstr "Find Renames" msgid "Find copy and/or rename sources" msgstr "" msgid "Candidate Matches" msgstr "" msgid "Accept All Matches" msgstr "" msgid "Accept Selected Matches" msgstr "" msgid "Differences from Source to Dest" msgstr "" msgid "Search already in progress" msgstr "" msgid "Cannot start a new search" msgstr "" msgid "No files to find" msgstr "" msgid "There are no files that may have been renamed" msgstr "" msgid "Multiple sources chosen" msgstr "" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" #. i18n: percent format #, python-format msgid "%d%%" msgstr "" msgid "Source" msgstr "Source" msgid "Dest" msgstr "Dest" msgid "% Match" msgstr "" msgid "Sending Email" msgstr "" msgid "Email" msgstr "E-mail" msgid "To:" msgstr "To:" msgid "Cc:" msgstr "Cc:" msgid "In-Reply-To:" msgstr "In-Reply-To:" msgid "Message identifier to reply to, for threading" msgstr "Message identifier to reply to, for threading" msgid "Flag:" msgstr "" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgid "Send changesets as Hg patches" msgstr "Send changesets as Hg patches" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgid "Use extended (git) patch format" msgstr "Use extended (git) patch format" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgid "Plain, do not prepend Hg header" msgstr "Plain, do not prepend Hg header" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgid "Send single binary bundle, not patches" msgstr "Send single binary bundle, not patches" msgid "send patches as part of the email body" msgstr "" msgid "body" msgstr "" msgid "send patches as attachments" msgstr "send patches as attachments" msgid "attach" msgstr "attach" msgid "send patches as inline attachments" msgstr "send patches as inline attachments" msgid "inline" msgstr "inline" msgid "add diffstat output to messages" msgstr "add diffstat output to messages" msgid "diffstat" msgstr "diffstat" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" "Patch series description is sent in initial summary e-mail with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When e-mailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgid "Write patch series (bundle) description" msgstr "" msgid "Subject:" msgstr "Subject:" msgid "Changesets" msgstr "" msgid "Select &All" msgstr "" msgid "Select &None" msgstr "" msgid "Edit" msgstr "Edit" msgid "Preview" msgstr "" msgid "&Settings" msgstr "" msgid "Send &Email" msgstr "" msgid "&Close" msgstr "&Close" #, python-format msgid "Ignore filter - %s" msgstr "Ignore filter - %s" msgid "Glob" msgstr "" msgid "Regexp" msgstr "" msgid "Add" msgstr "Add" msgid "Edit File" msgstr "Edit File" msgid "Ignore Filter" msgstr "" msgid "Untracked Files" msgstr "" msgid "Backspace or Del to remove row(s)" msgstr "" msgid "Add ignore filter..." msgstr "" msgid "selected files" msgstr "" msgid "Ignore " msgstr "" msgid "Invalid glob expression" msgstr "Invalid glob expression" msgid "Invalid regexp expression" msgstr "Invalid regexp expression" msgid "Unable to read repository status" msgstr "" msgid "New file created" msgstr "" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" msgid "Unable to write .hgignore file" msgstr "" msgid "Copy working directory files from skeleton" msgstr "" msgid "Create special files (.hgignore, ...)" msgstr "" msgid "Make repo compatible with Mercurial <1.7" msgstr "" msgid "New Repository" msgstr "" msgid "&Create" msgstr "" msgid "Unable to create a config file" msgstr "" msgid "Insufficient access rights." msgstr "" msgid "Show Log" msgstr "" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" msgid "Add as &Largefiles" msgstr "" msgid "Add as &Normal Files" msgstr "" msgid "Invalid Patterns" msgstr "" msgid "Failed to process largefiles.patterns." msgstr "" msgid "Word docs (*.doc *.docx)" msgstr "" msgid "PDF docs (*.pdf)" msgstr "" msgid "Excel files (*.xls *.xlsx)" msgstr "" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "" msgid "Refresh lock information" msgstr "" msgid "Lock a file not described in .hglocks" msgstr "" msgid "Stop current operation" msgstr "" msgid "Locked And Lockable Files:" msgstr "" msgid "Path" msgstr "" msgid "Locking User" msgstr "" msgid "Purpose" msgstr "" msgid "Simplelock extension not enabled" msgstr "" msgid "Please enable and configure simplelock" msgstr "" msgid "Open a (nonmergable) file you wish to be locked" msgstr "" msgid "File was not within current repository" msgstr "" #, python-format msgid "Locking %s" msgstr "" #, python-format msgid "Unlocking %s" msgstr "" msgid "Refreshing locks..." msgstr "" #, python-format msgid "Lock of %s successful" msgstr "" #, python-format msgid "Lock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s successful" msgstr "" msgid "Ready, double click to lock or unlock" msgstr "" msgid "Ready" msgstr "" msgid "You can only release your own locks" msgstr "" msgid "Find revisions matching fields of:" msgstr "" msgid "Revision to Match:" msgstr "" msgid "Fields to match:" msgstr "" msgid "Summary (first description line)" msgstr "" msgid "Description" msgstr "Description" msgid "Author" msgstr "" msgid "Date" msgstr "Date" msgid "Files" msgstr "Files" msgid "Diff contents" msgstr "" msgid "Subrepo states" msgstr "" msgid "Branch" msgstr "Branch" msgid "Phase" msgstr "" msgid "&Match" msgstr "" #, python-format msgid "Find matches - %s" msgstr "" msgid "Revisions to Match:" msgstr "" #, python-format msgid "Match any of %d revisions" msgstr "" msgid "Unknown revision!" msgstr "" msgid "Parse Error!" msgstr "" #, python-format msgid "Merge - %s" msgstr "" msgid "Do you want to exit?" msgstr "" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" msgid "Prepare to merge" msgstr "" msgid "Verify merge targets and ensure your working directory is clean." msgstr "" msgid "Not a head revision!" msgstr "Not a head revision!" msgid "Merge from (other revision)" msgstr "" msgid "Merge to (working directory)" msgstr "" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Or use:" msgstr "" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "" msgid "Discard all changes from the other revision" msgstr "" msgid "&Discard" msgstr "&Discard" msgid "Confirm Discard Changes" msgstr "" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" msgctxt "working dir state" msgid "Clean" msgstr "" msgid "Merging..." msgstr "" msgid "Automatically advance to next page when merge is complete." msgstr "" #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" msgid "" "No merge conflicts, ready to commit or review" msgstr "" msgid "Commit merge results" msgstr "" msgid "Commit Options" msgstr "" msgid "Commit Now" msgstr "" msgid "Commit Later" msgstr "" msgid "Merge changeset" msgstr "" msgid "Syntax Highlighting" msgstr "" msgid "Paste &Filenames" msgstr "" msgid "App&ly Format" msgstr "" msgid "C&onfigure Format" msgstr "" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "" msgid "&Commit to Queue..." msgstr "" msgid "Create &New Queue..." msgstr "" msgid "&Rename Active Queue..." msgstr "" msgid "&Delete Queue..." msgstr "" msgid "&Purge Queue..." msgstr "" msgid "Create Patch Queue" msgstr "" msgid "New patch queue name" msgstr "" msgid "Create" msgstr "Create" msgid "Rename Patch Queue" msgstr "" #, python-format msgid "Rename patch queue '%s' to" msgstr "" msgid "Rename" msgstr "Rename" msgid "Delete Patch Queue" msgstr "" msgid "Delete reference to" msgstr "" msgid "Delete" msgstr "" msgid "Purge Patch Queue" msgstr "" msgid "Remove patch directory of" msgstr "" msgid "Purge" msgstr "" msgid "Rename Patch" msgstr "" #, python-format msgid "Rename patch %s to:" msgstr "" msgid "no guards" msgstr "" msgid "Patch Queue" msgstr "Patch Queue" msgctxt "MQ QPush" msgid "Push" msgstr "" msgid "Apply one patch" msgstr "" msgctxt "MQ QPush" msgid "Push all" msgstr "" msgid "Apply all patches" msgstr "Apply all patches" msgid "Pop" msgstr "" msgid "Unapply one patch" msgstr "" msgid "Pop all" msgstr "" msgid "Unapply all patches" msgstr "Unapply all patches" msgid "Go &to Patch" msgstr "" msgid "&Apply Only This Patch" msgstr "" msgid "Apply only the selected patch" msgstr "" msgid "&Finish Patch" msgstr "" msgid "Move applied patches into repository history" msgstr "" msgid "&Delete Patches..." msgstr "" msgid "Delete selected patches" msgstr "" msgid "Re&name Patch..." msgstr "" msgid "Set &Guards..." msgstr "" msgid "Configure guards for selected patch" msgstr "" msgid "Patch Queue Actions Toolbar" msgstr "" msgid "Configure guards" msgstr "" #, python-format msgid "Input new guards for %s:" msgstr "" msgid "Confirm patch queue switch" msgstr "" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "" #, python-format msgid "Guards: %d/%d" msgstr "" msgid "MQ options" msgstr "" msgid "Force push or pop (--force)" msgstr "" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "Pending Perforce Changelists - %s" msgid "Submitting p4 changelist..." msgstr "" msgid "Reverting p4 changelist..." msgstr "" msgid "Patch Branch Toolbar" msgstr "" msgid "Merge all pending dependencies" msgstr "" msgid "Backout current patch branch" msgstr "" msgid "Backport part of a changeset to a dependency" msgstr "" msgid "Start a new patch branch" msgstr "" msgid "Edit patch dependency graph" msgstr "" msgid "will be closed" msgstr "" #, python-format msgid "needs merge of %i heads\n" msgstr "" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "" #, python-format msgid "needs merge with %s\n" msgstr "" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "" msgid "&Goto (update workdir)" msgstr "" msgid "&Merge" msgstr "&Merge" msgid "No patch branch selected" msgstr "" msgid "No editor found" msgstr "" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" msgid "Graph" msgstr "Graph" msgid "Status" msgstr "" msgid "Title" msgstr "" msgid "Message" msgstr "" msgid "New Patch Branch" msgstr "" msgid "Patch message:" msgstr "" msgid "Patch date:" msgstr "" msgid "Patch user:" msgstr "" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" msgid "Review Board" msgstr "" msgid "Password:" msgstr "" msgid "Error" msgstr "Error" #, python-format msgid "Review draft posted to %s\n" msgstr "" #, python-format msgid "Review published to %s\n" msgstr "" msgid "Success" msgstr "" msgid "Repository ID:" msgstr "" msgid "Post Review" msgstr "" msgid "Review ID:" msgstr "" msgid "Update the fields of this existing request" msgstr "" msgid "Update Review" msgstr "" msgid "Create diff with all outgoing changes" msgstr "" msgid "Create diff with all changes on this branch" msgstr "" msgid "Publish request immediately" msgstr "" msgid "%p%" msgstr "" msgid "Connecting to Review Board..." msgstr "" msgid "Target:" msgstr "Target:" msgid "Do not modify working copy (-k/--keep)" msgstr "" #, python-format msgid "Prune - %s" msgstr "" msgid "&Prune" msgstr "" msgid "No unknown files found" msgstr "" msgid "No ignored files found" msgstr "" msgid "No trash files found" msgstr "" msgid "Delete empty folders" msgstr "" msgid "Preserve files beginning with .hg" msgstr "" #, python-format msgid "%s - purge" msgstr "" msgid "Checking" msgstr "" msgid "Ready to purge." msgstr "" #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "" msgstr[1] "" msgid "Confirm file deletions" msgstr "" msgid "Are you sure you want to delete these files and/or folders?" msgstr "" msgid "Deletion failures" msgstr "" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "" msgstr[1] "" msgid "Deleting trash folder..." msgstr "" #, python-format msgid "Deleted %d files" msgstr "" #, python-format msgid "Deleted %d files and %d folders" msgstr "" msgid "Delete Patches" msgstr "" msgid "Remove patches from queue?" msgstr "" msgid "Keep patch files" msgstr "" #, python-format msgid "Patch fold - %s" msgstr "" msgid "New patch message:" msgstr "" msgid "Patches to fold" msgstr "" msgid "&Undo" msgstr "" msgid "&Redo" msgstr "" msgid "Cu&t" msgstr "" msgid "&Copy" msgstr "" msgid "&Paste" msgstr "" msgid "&Editor Options" msgstr "" msgid "&Wrap" msgstr "" msgctxt "wrap mode" msgid "&None" msgstr "" msgid "&Word" msgstr "" msgid "&Character" msgstr "" msgid "White&space" msgstr "" msgid "&Visible" msgstr "" msgid "&Invisible" msgstr "" msgid "&AfterIndent" msgstr "" msgid "&TAB Inserts" msgstr "" msgid "&Auto" msgstr "" msgid "&TAB" msgstr "" msgid "&Spaces" msgstr "" msgid "EOL &Visibility" msgstr "" msgid "EOL &Mode" msgstr "" msgid "&Windows" msgstr "" msgid "&Unix" msgstr "" msgid "&Mac" msgstr "" msgid "&Auto-Complete" msgstr "" msgid "### regular expression ###" msgstr "" msgid "Regular expression search pattern" msgstr "Regular expression search pattern" msgid "Wrap search" msgstr "" msgid "Prev" msgstr "" msgid "Next" msgstr "" msgid "Unable to read file" msgstr "" msgid "Could not open the specified file for reading." msgstr "" msgid "This appears to be a binary file." msgstr "" msgid "An error occurred while reading the file." msgstr "" msgid "Text Translation Failure" msgstr "" msgid "Could not translate the file content from native encoding." msgstr "" msgid "Several characters would be lost." msgstr "" msgid "Unable to write file" msgstr "" msgid "Could not translate the file content to native encoding." msgstr "" msgid "Could not open the specified file for writing." msgstr "" msgid "An error occurred while writing the file." msgstr "" msgid "Try refreshing your repository." msgstr "" #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
                          Please edit your config" msgstr "" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
                          Please fix your config" msgstr "" #, python-format msgid "Operation aborted:

                          %(arg0)s." msgstr "" msgid "Repository is locked" msgstr "" msgid "hint:" msgstr "" msgid "Repository Error" msgstr "" msgid "No visual editor configured" msgstr "No visual editor configured" msgid "Please configure a visual editor." msgstr "Please configure a visual editor." msgid "Editor launch failure" msgstr "" msgid "Failed to open path in terminal" msgstr "" #, python-format msgid "\"%s\" is not a valid directory" msgstr "" #, python-format msgid "Invalid configuration: %s" msgstr "" msgid "Unable to start the following command:" msgstr "" msgid "No shell configured" msgstr "" msgid "A terminal shell must be configured" msgstr "" msgid "Please enter a username" msgstr "" msgid "You must identify yourself to Mercurial" msgstr "" msgid "Unable to translate input to local encoding." msgstr "" msgid "Checkmark files to add" msgstr "" msgid "Checkmark files to forget" msgstr "" msgid "Forget" msgstr "Forget" msgid "Checkmark files to revert" msgstr "" msgid "Revert" msgstr "Revert" msgid "Checkmark files to remove" msgstr "" msgid "Remove" msgstr "Remove" #, python-format msgid "%s - hg %s" msgstr "" msgid "Do not save backup files (*.orig)" msgstr "Do not save backup files (*.orig)" msgid "Force removal of modified files (--force)" msgstr "" msgid "Add &Largefiles" msgstr "" msgid "No files selected" msgstr "No files selected" msgid "No operation to perform" msgstr "No operation to perform" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" msgid "Remove &Unmodified Files" msgstr "" msgid "Remove &All Selected Files" msgstr "" msgid "Rebase changeset and descendants" msgstr "" msgid "To rebase destination" msgstr "" msgid "Swap source and destination" msgstr "" msgid "Keep original changesets (--keep)" msgstr "" msgid "Keep original branch names (--keepbranches)" msgstr "" msgid "Collapse the rebased changesets (--collapse)" msgstr "" msgid "Rebase entire source branch (-b/--base)" msgstr "" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "" msgid "Rebase" msgstr "Rebase" #, python-format msgid "Rebase - %s" msgstr "" msgid "" "Before rebase, you must
                          commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the rebase" msgstr "" msgid "Rebase is complete" msgstr "" msgid "Rebase failed" msgstr "" msgid "Rebase aborted" msgstr "" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" msgid "Exiting with an unfinished rebase is not recommended." msgstr "" msgid "Consider aborting the rebase first." msgstr "" #, python-format msgid "Merge rejected patch chunks into %s" msgstr "" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "" msgid "Mark this chunk as unresolved" msgstr "" msgid "Reload File" msgstr "" msgid "Are you sure you want to reload this file?" msgstr "" msgid "All unsaved changes will be lost." msgstr "" msgid "Warning" msgstr "Warning" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" msgid "Copy source -> destination" msgstr "" msgid "Copy Error" msgstr "" msgid "Rename Error" msgstr "" msgid "Select Source File" msgstr "" msgid "Select Source Folder" msgstr "Select Source Folder" msgid "Source does not exist." msgstr "" msgid "The source must be within the repository tree." msgstr "" msgid "The destination must be within the repository tree." msgstr "" msgid "Destination file already exists." msgstr "" msgid "Are you sure you want to overwrite it ?" msgstr "" #, python-format msgid "Copy - %s" msgstr "" #, python-format msgid "Rename - %s" msgstr "" msgid "Show all" msgstr "Show all" msgid "### revision set query ###" msgstr "" msgid "Clear current query and query text" msgstr "" msgid "Trigger revision set query" msgstr "" msgid "Open advanced query editor" msgstr "" msgid "Delete selected query from history" msgstr "" msgid "filter" msgstr "" msgid "Toggle filtering of non-matched changesets" msgstr "" msgid "Show/Hide hidden changesets" msgstr "" msgid "Toggle graft relations visibility" msgstr "" msgid "Keyword Search" msgstr "" msgid "Revision Set" msgstr "" msgid "(unsaved)" msgstr "" msgid "Display graph the named branch only" msgstr "" msgid "Display only active branches" msgstr "" msgid "Display closed branches" msgstr "" msgid "Include all ancestors" msgstr "" msgctxt "column header" msgid "Graph" msgstr "" msgctxt "column header" msgid "Rev" msgstr "" msgctxt "column header" msgid "Branch" msgstr "" msgctxt "column header" msgid "Description" msgstr "" msgctxt "column header" msgid "Author" msgstr "" msgctxt "column header" msgid "Tags" msgstr "" msgctxt "column header" msgid "Latest tags" msgstr "" msgctxt "column header" msgid "Node" msgstr "" msgctxt "column header" msgid "Git Commit" msgstr "" msgctxt "column header" msgid "Age" msgstr "" msgctxt "column header" msgid "Local Time" msgstr "" msgctxt "column header" msgid "UTC Time" msgstr "" msgctxt "column header" msgid "Changes" msgstr "" msgctxt "column header" msgid "Converted From" msgstr "" msgctxt "column header" msgid "Phase" msgstr "" msgctxt "column header" msgid "Filename" msgstr "" msgid "Searching..." msgstr "" #, python-format msgid "filling (%d)" msgstr "" msgid "Mercurial User" msgstr "" msgid "Repository Registry" msgstr "" msgid "Show &Paths" msgstr "" msgid "Show S&hort Paths" msgstr "" msgid "&Scan Repositories at Startup" msgstr "" msgid "Scan &Remote Repositories" msgstr "" msgid "&Refresh Repository List" msgstr "" msgid "Refresh the Repository Registry list" msgstr "" msgid "&Open" msgstr "" msgid "Open the repository in a new tab" msgstr "" msgid "&Open All" msgstr "" msgid "Open all repositories in new tabs" msgstr "" msgid "New &Group" msgstr "" msgid "Create a new group" msgstr "" msgid "Rename the entry" msgstr "" msgid "Settin&gs" msgstr "" msgid "View the repository's settings" msgstr "" msgid "Re&move from Registry" msgstr "" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" msgid "Clon&e..." msgstr "" msgid "Clone Repository" msgstr "" msgid "E&xplore" msgstr "" msgid "Open the repository in a file browser" msgstr "" msgid "&Terminal" msgstr "" msgid "Open a shell terminal in the repository root" msgstr "" msgid "&Add Repository..." msgstr "" msgid "Add a repository to this group" msgstr "" msgid "A&dd Subrepository..." msgstr "" msgid "Convert an existing repository into a subrepository" msgstr "" msgid "Remo&ve Subrepository..." msgstr "" msgid "Remove this subrepository from the current revision" msgstr "" msgid "Copy the root path of the repository to the clipboard" msgstr "" msgid "Sort by &Name" msgstr "" msgid "Sort the group by short name" msgstr "" msgid "Sort by &Path" msgstr "" msgid "Sort the group by full path" msgstr "" msgid "&Sort by .hgsub" msgstr "" msgid "Order the subrepos as in .hgsub" msgstr "" msgid "Select repository directory to add" msgstr "" msgid "Select an existing repository to add as a subrepo" msgstr "" msgid "Cannot add subrepository" msgstr "" #, python-format msgid "%s is not a valid repository" msgstr "" #, python-format msgid "\"%s\" is not a folder" msgstr "" msgid "A repository cannot be added as a subrepo of itself" msgstr "" #, python-format msgid "" "The selected folder:

                          %s

                          is not inside the target repository." "

                          This may be allowed but is greatly discouraged.
                          If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" msgid "Cannot open repository" msgstr "" #, python-format msgid "The selected repository:

                          %s

                          cannot be open!" msgstr "" msgid "Subrepository already exists" msgstr "" #, python-format msgid "" "The selected repository:

                          %s

                          is already a subrepository of:" "

                          %s

                          as: \"%s\"" msgstr "" msgid "Failed to add subrepository" msgstr "" #, python-format msgid "Cannot open the .hgsub file in:

                          %s" msgstr "" msgid "Failed to add repository" msgstr "" #, python-format msgid "The .hgsub file already contains the line:

                          %s" msgstr "" msgid "Subrepo added to .hgsub file" msgstr "" #, python-format msgid "" "The selected subrepo:

                          %s

                          has been added to the .hgsub " "file of the repository:

                          %s

                          Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" #, python-format msgid "Cannot update the .hgsub file in:

                          %s" msgstr "" msgid "Could not open .hgsub file" msgstr "" msgid "Cannot read the .hgsub file.

                          Subrepository removal failed." msgstr "" msgid "Subrepository not found" msgstr "" msgid "" "The selected subrepository was not found on the .hgsub file.

                          Perhaps it " "has already been removed?" msgstr "" msgid "&Yes" msgstr "&Yes" msgid "&No" msgstr "&No" msgid "Remove the selected repository?" msgstr "" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" msgid "Subrepository removed from .hgsub" msgstr "" msgid "" "The selected subrepository has been removed from the .hgsub file.

                          Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" msgid "Could not update .hgsub file" msgstr "" msgid "Cannot update the .hgsub file.

                          Subrepository removal failed." msgstr "" #, python-format msgid "Unsupported repository type (%s)" msgstr "" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "" msgid "New Group" msgstr "" msgid "Confirm Delete" msgstr "Confirm Delete" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "" msgid "Could not get subrepository list" msgstr "" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

                          %s" msgstr "" msgid "Could not open some subrepositories" msgstr "" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

                          %s

                          The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

                          %s" msgstr "" msgid "Updating repository registry" msgstr "" #, python-format msgid "Loading repository %s" msgstr "" msgid "Repository Registry updated" msgstr "" msgid "Close tab" msgstr "" msgid "Close other tabs" msgstr "" msgid "Undo close tab" msgstr "" msgid "Reopen last closed tab" msgstr "" msgid "Undo close other tabs" msgstr "" msgid "Reopen last closed tab group" msgstr "" msgid "Failed to open repository" msgstr "" msgid "&Sort" msgstr "" #, python-format msgid "Local Repository %s" msgstr "" #, python-format msgid "" "An exception happened while loading the subrepos of:

                          \"%s\"

                          " msgstr "" #, python-format msgid "The exception error message was:

                          %s

                          " msgstr "" msgid "Click OK to continue or Abort to exit." msgstr "" msgid "Error loading subrepos" msgstr "" msgid "Unable to update repository name" msgstr "" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "" msgid "default" msgstr "" msgid "C&hoose Log Columns..." msgstr "" msgid "&Resize Columns" msgstr "" #, python-format msgid "Goto ancestor of %s and %s" msgstr "" #, python-format msgid "Can't find revision '%s'" msgstr "" msgid "Drag to change order" msgstr "" msgid "Workbench Log Columns" msgstr "" msgctxt "tab tooltip" msgid "Revision details" msgstr "" msgctxt "tab tooltip" msgid "Commit" msgstr "" msgctxt "tab tooltip" msgid "Search" msgstr "" msgctxt "tab tooltip" msgid "Console log" msgstr "" msgctxt "tab tooltip" msgid "Synchronize" msgstr "" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "" #, python-format msgid "%s " msgstr "" #, python-format msgid "Found %d incoming changesets" msgstr "" msgid "Pull" msgstr "Pull" msgid "Pull incoming changesets into your repository" msgstr "" msgid "Reject incoming changesets" msgstr "" #, python-format msgid "Push current branch (%s)" msgstr "" #, python-format msgid "Push up to current revision (#%d)" msgstr "" #, python-format msgid "Push up to revision #%d" msgstr "" msgid "Push all" msgstr "" msgid "no outgoing changesets" msgstr "" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets" msgstr "%d outgoing changesets" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "" msgid "Nothing to push" msgstr "" msgid "No revision found" msgstr "" #, python-format msgid "%s - verify repository" msgstr "" #, python-format msgid "%s - recover repository" msgstr "" msgid "No transaction available" msgstr "" msgid "There is no rollback transaction available" msgstr "" msgid "Undo last commit?" msgstr "" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "" msgid "Undo last transaction?" msgstr "" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "" msgid "Unable to determine working copy revision\n" msgstr "" msgid "Remove current working revision?" msgstr "" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" msgid "Tab cannot exit" msgstr "" msgid "Pus&h" msgstr "" msgid "Push to &Here" msgstr "" msgid "Push Selected &Branch" msgstr "" msgid "Push &All" msgstr "" msgid "&Update..." msgstr "" msgid "Bro&wse at Revision" msgstr "" msgid "&Merge with Local..." msgstr "" msgid "&Tag..." msgstr "" msgid "Boo&kmark..." msgstr "" msgid "Top&ic..." msgstr "" msgid "Sig&n..." msgstr "" msgid "&Backout..." msgstr "" msgid "Revert &All Files..." msgstr "" msgid "Copy &Hash" msgstr "" msgid "E&xport" msgstr "" msgid "E&xport Patch..." msgstr "" msgid "&Email Patch..." msgstr "" msgid "&Archive..." msgstr "" msgid "&Bundle Rev and Descendants..." msgstr "" msgid "Change &Phase to" msgstr "" msgid "&Graft to Local..." msgstr "" msgid "Modi&fy History" msgstr "" msgid "&Unapply Patch" msgstr "" msgid "Import to &MQ" msgstr "" msgid "MQ &Options" msgstr "" msgid "&Rebase..." msgstr "" msgid "&Prune..." msgstr "" msgid "&Strip..." msgstr "" msgid "Post to Re&view Board..." msgstr "" msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "" msgid "Write diff file" msgstr "" msgid "Unable to write diff file" msgstr "" msgid "Unable to compress history" msgstr "" msgid "Selected changeset pair not related" msgstr "" msgid "Visual Diff..." msgstr "" msgid "Export Diff..." msgstr "" msgid "Export Selected..." msgstr "" msgid "Email Selected..." msgstr "" msgid "Copy Selected as Patch" msgstr "" msgid "Archive DAG Range..." msgstr "" msgid "Export DAG Range..." msgstr "" msgid "Email DAG Range..." msgstr "" msgid "Bundle DAG Range..." msgstr "" msgid "Bisect - Good, Bad..." msgstr "" msgid "Bisect - Bad, Good..." msgstr "" msgid "Compress History..." msgstr "" msgid "Rebase..." msgstr "" msgid "Goto common ancestor" msgstr "" msgid "Graft Selected to local..." msgstr "" msgid "&Prune Selected..." msgstr "" msgid "Post Selected to Review Board..." msgstr "" msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "" msgid "Apply onto original parent" msgstr "" msgid "Apply only this patch" msgstr "" msgid "Fold patches..." msgstr "" msgid "Delete patches..." msgstr "" msgid "Rename patch..." msgstr "" msgid "Pull to here..." msgstr "" msgid "Visual diff..." msgstr "" msgid "Export patch" msgstr "" msgid "Patch Files (*.patch)" msgstr "" msgid "Cannot export revision" msgstr "" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" msgid "There is already an existing folder with that same name." msgstr "" msgid "Replace" msgstr "" msgid "Append" msgstr "Append" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" msgid "What do you want to do?\n" msgstr "" msgid "Replace the existing patch files.\n" msgstr "" msgid "Append the changes to the existing patch files.\n" msgstr "" msgid "Abort the export operation.\n" msgstr "" msgid "Patch files already exist" msgstr "" msgid "Patch exported" msgstr "" #, python-format msgid "" "Revision #%d (%s) was exported to:

                          %s%s%s" msgstr "" msgid "Patches exported" msgstr "" #, python-format msgid "%d patches were exported to:

                          %s" msgstr "" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

                          Are you sure you want to use revert?

                          (use " "update to checkout another revision)" msgstr "" msgid "Filter b&y" msgstr "" msgid "&Ancestors and Descendants" msgstr "" msgid "A&uthor" msgstr "" msgid "&Branch" msgstr "" msgid "&More Options..." msgstr "" msgid "Unable to merge" msgstr "Unable to merge" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "" msgid "Unable to backout" msgstr "Unable to backout" msgid "Write bundle" msgstr "" msgid "Backwards phase change requested" msgstr "" msgid "Do you really want to make this revision secret?" msgstr "" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" msgid "&Make secret" msgstr "" msgid "&Cancel" msgstr "&Cancel" msgid "Do you really want to force a backwards phase transition?" msgstr "" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" msgid "&Force" msgstr "" msgid "Cannot import selected revision" msgstr "" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" msgid "Invalid command" msgstr "" msgid "The selected command is empty" msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" msgid "Failed to execute custom TortoiseHg command" msgstr "" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "" msgid "Failed to execute custom command" msgstr "" #, python-format msgid "The command \"%s\" could not be executed." msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" msgid "&Edit Toolbar" msgstr "" msgid "&Refresh" msgstr "&Refresh" msgid "&Filter Toolbar" msgstr "" #, python-format msgid "TortoiseHg: %s" msgstr "" msgid "S&tatus Bar" msgstr "" #, python-format msgid "Resolve Conflicts - %s" msgstr "" msgid "Local revision information" msgstr "" msgid "Other revision information" msgstr "" msgid "Unresolved conflicts" msgstr "" msgid "Mercurial Re&solve" msgstr "" msgid "Attempt automatic (trivial) merge" msgstr "" msgid "Tool &Resolve" msgstr "" msgid "Merge using selected merge tool" msgstr "" msgid "&Take Local" msgstr "" msgid "Accept the local file version (yours)" msgstr "" msgid "Take &Other" msgstr "" msgid "Accept the other file version (theirs)" msgstr "" msgid "&Mark as Resolved" msgstr "" msgid "Mark this file as resolved" msgstr "" msgid "Diff &Local to Ancestor" msgstr "" msgid "&Diff Other to Ancestor" msgstr "" msgid "Resolved conflicts" msgstr "" msgid "&Edit File" msgstr "" msgid "Edit resolved file" msgstr "" msgid "3-&Way Diff" msgstr "" msgid "Visual three-way diff" msgstr "" msgid "Visual diff between resolved file and first parent" msgstr "" msgid "&Diff to Other" msgstr "" msgid "Visual diff between resolved file and second parent" msgstr "" msgid "Mark as &Unresolved" msgstr "" msgid "Mark this file as unresolved" msgstr "" msgid "Detected merge/diff tools:" msgstr "" msgid "Command output" msgstr "" msgid "Unable to show subrepository files" msgstr "" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" msgid "There are merge conflicts to be resolved" msgstr "" msgid "All conflicts are resolved." msgstr "" msgid "There are no conflicting file merges." msgstr "" msgid "Exit without finishing resolve?" msgstr "" msgid "Unresolved conflicts remain. Are you sure?" msgstr "" msgid "E&xit" msgstr "" msgid "Ext" msgstr "" msgid "Repository" msgstr "Repository" msgid "" msgstr "" msgid "File List Toolbar" msgstr "" msgid "Ma&nifest Mode" msgstr "" msgid "Show all version-controlled files in tree view" msgstr "" msgid "&Flat List" msgstr "" msgid "### filter text ###" msgstr "" msgid "Changed by &This Commit" msgstr "" msgid "Show files changed by this commit" msgstr "" msgid "Compare to &1st Parent" msgstr "" msgid "Compare to &2nd Parent" msgstr "" msgid "Toggle parent to be used as the base revision" msgstr "" msgid "List Optio&ns" msgstr "" #, python-format msgid "%s - Revision Details (%s)" msgstr "" #, python-format msgid "Revert - %s" msgstr "" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "" msgid "Revert all files to this revision" msgstr "" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "" msgid "null revision (i.e. remove file(s))" msgstr "" msgid "Changeset:" msgstr "Changeset:" msgid "Child:" msgstr "Child:" msgid "Predecessors:" msgstr "" msgid "Successors:" msgstr "" msgid "Head is closed!" msgstr "" msgid "Changesets where username contains string." msgstr "" msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" msgid "Like \"keyword(string)\" but accepts a regex." msgstr "" msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" msgid "The named bookmark or all bookmarks." msgstr "" msgid "The named tag or all tags." msgstr "" msgid "Changeset is tagged." msgstr "" msgid "Changeset is a named branch head." msgstr "" msgid "Changeset is a merge changeset." msgstr "" msgid "Changeset is closed." msgstr "" msgid "" "Changesets within the interval, see help dates" msgstr "" msgid "Greatest common ancestor of the two changesets." msgstr "" msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" msgid "Changesets which modify files matched by pattern." msgstr "" msgid "Changesets which add files matched by pattern." msgstr "" msgid "Changesets which remove files matched by pattern." msgstr "" msgid "Changesets containing files matched by pattern." msgstr "" msgid "All changesets belonging to the branches of changesets in set." msgstr "" msgid "Members of a set with no children in set." msgstr "" msgid "Changesets which are descendants of changesets in set." msgstr "" msgid "Changesets that are ancestors of a changeset in set." msgstr "" msgid "Child changesets of changesets in set." msgstr "" msgid "The set of all parents for all changesets in set." msgstr "" msgid "First parent for all changesets in set, or the working directory." msgstr "" msgid "Second parent for all changesets in set, or the working directory." msgstr "" msgid "Changesets with no parent changeset in set." msgstr "" msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" msgid "Changeset with lowest revision number in set." msgstr "" msgid "Changeset with highest revision number in set." msgstr "" msgid "First n members of a set." msgstr "" msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "" msgid "All changesets, the same as 0:tip." msgstr "" msgid "Revision Set Query" msgstr "" msgid "all revisions converted from subversion" msgstr "" msgid "changeset which represents converted svn revision" msgstr "" msgid "Common sets" msgstr "" msgid "File pattern sets" msgstr "" msgid "Set Ancestry" msgstr "" msgid "Set Logic" msgstr "" msgid "" "help " "revsets" msgstr "" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" "\n" "Caught keyboard interrupt, aborting.\n" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "can not read file \"%s\". Ignored.\n" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" #, python-format msgid "thg: unknown command '%s'\n" msgstr "" #, python-format msgid "thg %s: %s\n" msgstr "" #, python-format msgid "thg: %s\n" msgstr "" #, python-format msgid "abort: %s!\n" msgstr "abort: %s!\n" #, python-format msgid "abort: %s\n" msgstr "" #, python-format msgid "(%s)\n" msgstr "" msgid "option --config may not be abbreviated!" msgstr "" msgid "invalid arguments" msgstr "invalid arguments" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "unrecognised profiling format '%s' - Ignored\n" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgid "repository root directory or symbolic path name" msgstr "repository root directory or symbolic path name" msgid "enable additional output" msgstr "enable additional output" msgid "suppress output" msgstr "suppress output" msgid "display help and exit" msgstr "display help and exit" msgid "set/override config option (use 'section.name=value')" msgstr "" msgid "enable debugging output" msgstr "" msgid "start debugger" msgstr "start debugger" msgid "print command execution profile" msgstr "print command execution profile" msgid "do not fork GUI process" msgstr "do not fork GUI process" msgid "always fork GUI process" msgstr "always fork GUI process" msgid "read file list from file" msgstr "read file list from file" msgid "read file list from file encoding utf-8" msgstr "" msgid "thg about" msgstr "" msgid "thg add [FILE]..." msgstr "" msgid "revision to annotate" msgstr "" msgid "open to line" msgstr "" msgid "initial search pattern" msgstr "" msgid "thg annotate" msgstr "" #, python-format msgid "invalid line number: %s" msgstr "" msgid "revision to archive" msgstr "" msgid "thg archive" msgstr "" msgid "merge with old dirstate parent after backout" msgstr "" msgid "parent to choose when backing out merge" msgstr "" msgid "revision to backout" msgstr "" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "" msgid "thg bisect" msgstr "" msgid "revision" msgstr "" msgid "thg bookmarks [-r REV] [NAME]" msgstr "" msgid "only one new bookmark name allowed" msgstr "" msgid "the clone will include an empty working copy (only a repository)" msgstr "" msgid "revision, tag or branch to check out" msgstr "" msgid "include the specified changeset" msgstr "" msgid "clone only the specified branch" msgstr "" msgid "use pull protocol to copy metadata" msgstr "" msgid "use uncompressed transfer (fast over LAN)" msgstr "" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "" msgid "record user as committer" msgstr "record user as committer" msgid "record datecode as commit date" msgstr "record datecode as commit date" msgid "thg commit [OPTIONS] [FILE]..." msgstr "" msgid "thg debugblockmatcher" msgstr "" msgid "thg debugbugreport [TEXT]" msgstr "" msgid "thg debugconsole" msgstr "" msgid "thg debuglighthg" msgstr "" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "" msgid "no command specified" msgstr "" msgid "thg drag_copy SOURCE... DEST" msgstr "" msgid "thg drag_move SOURCE... DEST" msgstr "" msgid "a revision to send" msgstr "" msgid "thg email [REVS]" msgstr "" msgid "use only one form to specify the revision" msgstr "" msgid "select the specified revision" msgstr "" msgid "side-by-side comparison of revisions" msgstr "" msgid "thg filelog [OPTION]... FILE" msgstr "" msgid "requires a single filename" msgstr "" msgid "thg forget [FILE]..." msgstr "" msgid "revisions to graft" msgstr "" msgid "thg graft [-r] REV..." msgstr "" msgid "You must provide revisions to graft" msgstr "" msgid "ignore case during search" msgstr "" msgid "thg grep" msgstr "" msgid "thg guess" msgstr "" msgid "thg help [COMMAND]" msgstr "" msgid "global options:" msgstr "global options:" msgid "use \"thg help\" for the full list of commands" msgstr "" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "" msgid "" "list of commands:\n" "\n" msgstr "" "list of commands:\n" "\n" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" "\n" "aliases: %s\n" msgid "(no help text available)" msgstr "(no help text available)" msgid "options:\n" msgstr "options:\n" msgid "no commands defined\n" msgstr "no commands defined\n" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "" msgid "" "basic commands:\n" "\n" msgstr "" "basic commands:\n" "\n" #, python-format msgid " (default: %s)" msgstr " (default: %s)" msgid "thg hgignore [FILE]" msgstr "" msgid "import to the patch queue (MQ)" msgstr "import to the patch queue (MQ)" msgid "thg import [OPTION] [SOURCE]..." msgstr "" msgid "thg init [DEST]" msgstr "" msgid "thg lock" msgstr "" msgid "search for a given text or revset" msgstr "" msgid "(DEPRECATED)" msgstr "" msgid "open a new workbench window" msgstr "" msgid "thg log [OPTIONS] [FILE]" msgstr "" msgid "cannot specify both -k/--query and filenames" msgstr "" msgid "revision to display" msgstr "" msgid "thg manifest [-r REV] [FILE]" msgstr "" msgid "revision to merge" msgstr "" msgid "thg merge [[-r] REV]" msgstr "" msgid "Merge revision not specified or not found" msgstr "" msgid "a revision to post" msgstr "" msgid "thg postreview [-r] REV..." msgstr "" msgid "reviewboard extension not enabled" msgstr "" #, python-format msgid "see %(url)s" msgstr "" msgid "no revisions specified" msgstr "" msgid "revisions to prune" msgstr "" msgid "thg prune [-r] REV..." msgstr "" msgid "thg purge" msgstr "" msgid "keep original changesets" msgstr "" msgid "keep original branch names" msgstr "" msgid "rebase from the specified changeset" msgstr "" msgid "rebase onto the specified changeset" msgstr "" msgid "thg rebase -s REV -d REV [--keep]" msgstr "" msgid "Rebase already in progress" msgstr "" msgid "Resuming rebase already in progress" msgstr "" msgid "You must provide source and dest arguments" msgstr "" msgid "thg rejects [FILE]" msgstr "" msgid "You must provide the path to a file" msgstr "" msgid "thg remove [FILE]..." msgstr "" msgid "thg rename [SOURCE] [DEST]" msgstr "" msgid "field to give initial focus" msgstr "field to give initial focus" msgid "thg repoconfig" msgstr "" msgid "thg resolve" msgstr "" msgid "the revision to show" msgstr "" msgid "thg revdetails [-r REV]" msgstr "" msgid "thg revert [FILE]..." msgstr "" msgid "revision to update" msgstr "revision to update" msgid "thg rupdate [[-r] REV]" msgstr "" msgid "name of the hgweb config file (serve more than one repository)" msgstr "" msgid "name of the hgweb config file (DEPRECATED)" msgstr "" msgid "thg serve [--web-conf FILE]" msgstr "" msgid "thg shellconfig" msgstr "" msgid "thg shelve" msgstr "" msgid "sign even if the sigfile is modified" msgstr "" msgid "make the signature local" msgstr "" msgid "the key id to sign with" msgstr "" msgid "do not commit the sigfile after signing" msgstr "" msgid "use as commit message" msgstr "" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "" msgid "Please enable the Gpg extension first." msgstr "" msgid "show files without changes" msgstr "" msgid "show ignored files" msgstr "" msgid "thg status [OPTIONS] [FILE]" msgstr "" msgid "discard uncommitted changes (no backup)" msgstr "" msgid "do not back up stripped revisions" msgstr "" msgid "do not modify working copy during strip" msgstr "" msgid "revision to strip" msgstr "" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "" msgid "open the bookmark sync window" msgstr "" msgid "thg sync [OPTION]... [PEER]" msgstr "" msgid "replace existing tag" msgstr "" msgid "make the tag local" msgstr "" msgid "revision to tag" msgstr "" msgid "remove a tag" msgstr "" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "" msgid "wait until the second ticks over" msgstr "wait until the second ticks over" msgid "notify the shell for paths given" msgstr "notify the shell for paths given" msgid "remove the status cache" msgstr "remove the status cache" msgid "show the contents of the status cache (no update)" msgstr "show the contents of the status cache (no update)" msgid "update all repos in current dir" msgstr "" msgid "thg thgstatus [OPTION]" msgstr "" msgid "thg topics [-r REV] [NAME]" msgstr "" msgid "Please enable the Topic extension first." msgstr "" msgid "only one new topic name allowed" msgstr "" msgid "thg update [-C] [[-r] REV]" msgstr "" msgid "thg userconfig" msgstr "" msgid "changeset to view in diff tool" msgstr "changeset to view in diff tool" msgid "revisions to view in diff tool" msgstr "revisions to view in diff tool" msgid "bundle file to preview" msgstr "bundle file to preview" msgid "launch visual diff tool" msgstr "launch visual diff tool" msgid "print license" msgstr "print licence" msgid "thg version [OPTION]" msgstr "" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "TortoiseHg Dialogues (version %s), Mercurial (version %s)\n" msgid "Location:" msgstr "" msgid "Update to:" msgstr "Update to:" msgid "Options:" msgstr "Options:" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "" msgid "Perform a push before updating (-p/--push)" msgstr "" msgid "Allow pushing new branches (--new-branch)" msgstr "" msgid "Force push to remote location (-f/--force)" msgstr "" msgid "remove working directory" msgstr "" msgid "unknown revision!" msgstr "unknown revision!" #, python-format msgid "Remote Update - %s" msgstr "" msgid "&Update" msgstr "" msgid "Log" msgstr "" msgid "Repositories" msgstr "" #, python-format msgid "Running at %s" msgstr "" msgid "Stopped" msgstr "" msgid "TortoiseHg Web Server" msgstr "" msgid "Web Server" msgstr "Web Server" msgid "Port:" msgstr "" msgid "Status:" msgstr "" msgid "Start" msgstr "Start" msgid "Settings" msgstr "Settings" msgid "" msgstr "" msgid "&True" msgstr "" msgid "&False" msgstr "" msgid "&Unspecified" msgstr "" #, python-format msgid "%dpt" msgstr "" msgid "Bold" msgstr "" msgid "Italic" msgstr "" msgid "Strike" msgstr "" msgid "Underline" msgstr "" msgid "&Set..." msgstr "" msgid "&Clear" msgstr "" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "" msgid "&Browse..." msgstr "" msgid "UI Language" msgstr "" msgid "Specify your preferred user interface language (restart needed)" msgstr "" msgid "Three-way Merge Tool" msgstr "Three-way Merge Tool" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" msgid "Visual Diff Tool" msgstr "Visual Diff Tool" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgid "Visual Editor" msgstr "Visual Editor" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" msgid "CLI Editor" msgstr "CLI Editor" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" msgid "Shell" msgstr "" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
                          Default, Windows: cmd.exe /" "K title %(reponame)s
                          Default, OS X: not set
                          Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" msgid "Immediate Operations" msgstr "" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" msgid "Tab Width" msgstr "Tab Width" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" msgid "Force Repo Tab" msgstr "" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "" msgid "Monitor Repo Changes" msgstr "" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" msgid "Max Diff Size" msgstr "Max Diff Size" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgid "Fork GUI" msgstr "" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" msgid "Full Path Title" msgstr "Full Path Title" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" "Show a full directory path of the repository in the dialogue title instead " "of just the root directory name. Default: False" msgid "Auto-resolve merges" msgstr "" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" msgid "New Repo Skeleton" msgstr "" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "" msgid "Single Workbench Window" msgstr "" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" msgid "Default widget" msgstr "" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" msgid "" "Open new tabs next\n" "to the current tab" msgstr "" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" msgid "Author Coloring" msgstr "Author Colouring" msgid "Color changesets by author name. Default: False" msgstr "" msgid "Full Authorname" msgstr "" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" msgid "Task Tabs" msgstr "" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" msgid "Task Toolbar Order" msgstr "" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
                          Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
                          Valid names are: log commit sync grep and " "pbranch.
                          Default: log commit grep pbranch | sync" msgstr "" msgid "Long Summary" msgstr "Long Summary" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" msgid "Log Batch Size" msgstr "Log Batch Size" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgid "Dead Branches" msgstr "Dead Branches" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" msgid "Branch Colors" msgstr "Branch Colours" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" msgid "Hide Tags" msgstr "Hide Tags" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" msgid "Activate Bookmarks" msgstr "" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

                          • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
                          • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
                          • never: Never show any prompt to " "activate any bookmarks.

                          Default: prompt" msgstr "" msgid "Show Family Line" msgstr "" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

                          Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" msgid "Use optimized graph layouter" msgstr "" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

                          Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" msgctxt "config item" msgid "Commit" msgstr "" msgid "Username" msgstr "Username" msgid "" "Name associated with commits. The common format is:
                          Full Name <" "email@example.com>" msgstr "" msgid "Ask Username" msgstr "" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" msgid "Summary Line Length" msgstr "Summary Line Length" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" msgid "Close After Commit" msgstr "" msgid "Close the commit tool after every successful commit. Default: False" msgstr "" msgid "Push After Commit" msgstr "Push After Commit" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" msgid "Auto Commit List" msgstr "Auto Commit List" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" msgid "Auto Exclude List" msgstr "Auto Exclude List" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" msgid "English Messages" msgstr "" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" msgid "New Commit Phase" msgstr "" msgid "The phase of new commits. Default: draft" msgstr "" msgid "Secret MQ Patches" msgstr "" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "" msgid "Check Subrepo Phase" msgstr "" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" msgid "Monitor working
                          directory changes" msgstr "" msgid "" "Select when the working directory status list will be refreshed:
                          - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
                          TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
                          - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
                          - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
                          Default: auto" msgstr "" msgid "Confirm adding unknown files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Confirm deleting files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Sync" msgstr "" msgid "After Pull Operation" msgstr "After Pull Operation" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" msgid "Default Push" msgstr "" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

                          • all: The default. Push all changes in all " "branches.
                          • branch: Push all changes in the current branch.
                          • revision: Push the changes in the current branch up to the current revision.

                          Default: all" msgstr "" msgid "Confirm Push" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" msgid "Target Combo" msgstr "" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

                          • auto: The default. Show the combo if more than one target " "configured.
                          • always: Always show the combo.

                          Default: auto" msgstr "" msgid "SSH Command" msgstr "" msgid "" "Command to use for SSH connections.

                          Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" msgid "Subrepository Features:" msgstr "" msgid "Allow Hg Subrepos" msgstr "" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" msgid "Allow Git Subrepos" msgstr "" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

                          See the security note before enabling Git " "subrepos." msgstr "" msgid "Allow SVN Subrepos" msgstr "" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

                          See the security note before enabling " "Subversion subrepos." msgstr "" msgid "Server" msgstr "" msgid "Repository Details:" msgstr "" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" msgid "Encoding" msgstr "Encoding" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" msgid "'Publishing' repository" msgstr "" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" msgid "Web Server:" msgstr "" msgid "Textual description of the repository's purpose or contents." msgstr "Textual description of the repository's purpose or contents." msgid "Contact" msgstr "Contact" msgid "Name or email address of the person in charge of the repository." msgstr "Name or e-mail address of the person in charge of the repository." msgid "Style" msgstr "Style" msgid "Which template map style to use" msgstr "Which template map style to use" msgid "Archive Formats" msgstr "Archive Formats" msgid "Comma separated list of archive formats allowed for downloading" msgstr "Comma-separated list of archive formats allowed for downloading" msgid "Port" msgstr "Port" msgid "Port to listen on" msgstr "Port to listen on" msgid "Push Requires SSL" msgstr "Push Requires SSL" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgid "Stripes" msgstr "Stripes" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgid "Max Files" msgstr "Max Files" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "" msgid "Max Changes" msgstr "Max Changes" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "" msgid "Allow Push" msgstr "Allow Push" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgid "Deny Push" msgstr "Deny Push" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgid "Proxy" msgstr "Proxy" msgid "Host" msgstr "Host" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgid "Bypass List" msgstr "Bypass List" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "" "Optional. Comma-separated list of host names that should bypass the proxy" msgid "Optional. User name to authenticate with at the proxy server" msgstr "Optional. User name to authenticate with at the proxy server" msgid "Password" msgstr "Password" msgid "Optional. Password to authenticate with at the proxy server" msgstr "Optional. Password to authenticate with at the proxy server" msgid "From" msgstr "From" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "E-mail address to use in the \"From\" header and for the SMTP envelope" msgid "To" msgstr "To" msgid "Comma-separated list of recipient email addresses" msgstr "Comma-separated list of recipient e-mail addresses" msgid "Cc" msgstr "Cc" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "Comma-separated list of carbon copy recipient e-mail addresses" msgid "Bcc" msgstr "Bcc" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "Comma-separated list of blind carbon copy recipient e-mail addresses" msgid "method" msgstr "method" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" "Optional. Method to use to send e-mail messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgid "SMTP Host" msgstr "SMTP Host" msgid "Host name of mail server" msgstr "Host name of mail server" msgid "SMTP Port" msgstr "SMTP Port" msgid "Port to connect to on mail server. Default: 25" msgstr "Port to connect to on mail server. Default: 25" msgid "SMTP TLS" msgstr "SMTP TLS" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "" msgid "SMTP Username" msgstr "SMTP Username" msgid "Username to authenticate to mail server with" msgstr "Username to authenticate to mail server with" msgid "SMTP Password" msgstr "SMTP Password" msgid "Password to authenticate to mail server with" msgstr "Password to authenticate to mail server with" msgid "Local Hostname" msgstr "Local Hostname" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "Hostname the sender can use to identify itself to the mail server." msgid "Diff and Annotate" msgstr "" msgid "Patch EOL" msgstr "Patch EOL" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" msgid "Git Format" msgstr "Git Format" msgid "Use git extended diff header format. Default: False" msgstr "Use git extended diff header format. Default: False" msgid "MQ Git Format" msgstr "" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" msgid "No Dates" msgstr "No Dates" msgid "Do not include modification dates in diff headers. Default: False" msgstr "Do not include modification dates in diff headers. Default: False" msgid "Show Function" msgstr "Show Function" msgid "Show which function each change is in. Default: False" msgstr "Show which function each change is in. Default: False" msgid "Ignore White Space" msgstr "Ignore White Space" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "" msgid "Ignore WS Amount" msgstr "Ignore White Space Amount" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "" msgid "Ignore Blank Lines" msgstr "Ignore Blank Lines" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "" msgid "Annotate:" msgstr "" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "" msgid "Fonts" msgstr "" msgid "Message Font" msgstr "" msgid "Font used to display commit messages. Default: monospace 10" msgstr "" msgid "Diff Font" msgstr "" msgid "Font used to display text differences. Default: monospace 10" msgstr "" msgid "ChangeLog Font" msgstr "" msgid "Font used to display changelog data. Default: monospace 10" msgstr "" msgid "Output Font" msgstr "" msgid "Font used to display output messages. Default: sans 8" msgstr "" msgid "Extensions" msgstr "" msgid "Tools" msgstr "" msgid "Hooks" msgstr "" msgid "Issue Tracking" msgstr "" msgid "Issue Regex" msgstr "" msgid "Defines the regex to match when picking up issue numbers." msgstr "" msgid "Issue Link" msgstr "" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" msgid "Inline Tags" msgstr "" msgid "Show tags at start of commit message." msgstr "" msgid "Mandatory Issue Reference" msgstr "" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" msgid "Issue Tracker Plugin" msgstr "" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" msgid "Configure Issue Tracker" msgstr "" msgid "Configure the selected COM Bug Tracker plugin." msgstr "" msgid "Issue Tracker Trigger" msgstr "" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

                          • never: Do not update the Issue Tracker " "state automatically.
                          • commit: Update the Issue Tracker state after " "a successful commit.

                          Default: never" msgstr "" msgid "Changeset Link" msgstr "" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
                          The template string " "uses a normal mercurial template syntax, such as:

                          • {node|short} : replaced by " "the 12 digit revision id.
                          • {rev} : replaced by the revision number." "
                          • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
                          For example, in order to " "link to bitbucket commit pages you can set this to:
                          https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
                          You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
                          https://github.com/torvalds/" "linux/commit/{gitnode}
                          https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
                          " msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "" msgid "User name to authenticate with review board" msgstr "" msgid "Password to authenticate with review board" msgstr "" msgid "Server Repository ID" msgstr "" msgid "The default repository id for this repo on the review board server" msgstr "" msgid "Target Groups" msgstr "" msgid "A comma separated list of target groups" msgstr "" msgid "Target People" msgstr "" msgid "A comma separated list of target people" msgstr "" msgid "Kiln Bfiles" msgstr "" msgid "Patterns" msgstr "Patterns" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" msgid "Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" msgid "System Cache" msgstr "" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "" msgid "Simplelock" msgstr "" msgid "Lock Clone" msgstr "" msgid "" "Location of local clone of organizational lock repository.

                          This repository " "must contain a \"locked\" text file" msgstr "" msgid "Largefiles" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" msgid "Minimum Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" msgid "User Cache" msgstr "" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" msgid "Projrc" msgstr "" msgid "Require confirmation" msgstr "" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

                          • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
                          • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
                          • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
                          " msgstr "" msgid "Servers" msgstr "" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" msgid "Include" msgstr "" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" msgid "Exclude" msgstr "" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" msgid "Update on incoming" msgstr "" msgid "" "Let the user update the projrc on incoming:
                          • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
                          • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
                          • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                            Default: never" msgstr "" msgid "GnuPG" msgstr "" msgid "Specify the path to GPG. Default: gpg" msgstr "" msgid "Key ID" msgstr "" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "" msgid "TortoiseHg Settings" msgstr "" msgid "Iniparse package not found" msgstr "Iniparse package not found" msgid "Can't change settings without iniparse package - view is readonly." msgstr "Can't change settings without iniparse package - view is readonly." #, python-format msgid "%s's global settings" msgstr "" msgid "No repository found" msgstr "No repository found" msgid "no repo at " msgstr "no repo at " #, python-format msgid "%s project settings (.hg/projrc)" msgstr "" #, python-format msgid "%s repository settings" msgstr "%s repository settings" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "" msgid "Apply changes before exit?" msgstr "" msgid "&No (discard changes)" msgstr "&No (discard changes)" msgid "Reload" msgstr "" msgid "Settings File:" msgstr "" msgid "Confirm Save" msgstr "" msgid "Save changes before editing?" msgstr "" msgid "&Save" msgstr "" msgid "Confirm Reload" msgstr "" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" msgid "Unable to create a Mercurial.ini file" msgstr "Unable to create a Mercurial.ini file" msgid "Insufficient access rights, reverting to read-only mode." msgstr "" msgid "Context Menu" msgstr "Context Menu" msgid "Top menu items:" msgstr "Top menu items:" msgid "Sub menu items:" msgstr "Submenu items:" msgid "Menu Behavior" msgstr "" msgid "Hide context menu outside repositories" msgstr "" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" msgid "Icons" msgstr "" msgid "Overlays" msgstr "Overlays" msgid "Enabled overlays" msgstr "" msgid "Local disks only" msgstr "Local disks only" msgid "Enabled Overlay Handlers" msgstr "" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "" msgid "Added" msgstr "" msgid "Locked*" msgstr "" msgid "Ignored*" msgstr "" msgid "Unversioned" msgstr "" msgid "Readonly*" msgstr "" msgid "Deleted*" msgstr "" msgid "*: not used by TortoiseHg" msgstr "" msgid "Taskbar" msgstr "Taskbar" msgid "Show Icon" msgstr "Show Icon" msgid "Highlight Icon" msgstr "Highlight Icon" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" msgid "Explorer Extension Settings - TortoiseHg" msgstr "" msgid "Clear" msgstr "" msgid "Clear the current shelf file" msgstr "" msgid "Delete the current shelf file" msgstr "" msgid "Left Toolbar" msgstr "" msgid "Delete selected chunks" msgstr "" msgid "Move all files right" msgstr "" msgid "Move selected file right" msgstr "" msgid "Edit file" msgstr "" msgid "Move selected chunks right" msgstr "" msgid "Refresh Toolbar" msgstr "" msgid "Refresh" msgstr "Refresh" msgid "New Shelf" msgstr "" msgid "Right Toolbar" msgstr "" msgid "Move selected chunks left" msgstr "" msgid "Move selected file left" msgstr "" msgid "Move all files left" msgstr "" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "" msgid "Delete selected chunks from working copy?" msgstr "" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "" msgid "Are you sure?" msgstr "" msgid "TortoiseHg New Shelf Name" msgstr "" msgid "Specify name of new shelf" msgstr "" msgid "Bad filename" msgstr "" #, python-format msgid "A shelf name cannot contain %s" msgstr "" msgid "File already exists" msgstr "" msgid "A shelf file of that name already exists" msgstr "" msgid "New shelf created" msgstr "" #, python-format msgid "Delete shelf file %s?" msgstr "" msgid "Shelf deleted" msgstr "" msgid "Revert all working copy changes?" msgstr "" #, python-format msgid "Clear contents of shelf file %s?" msgstr "" msgid "Shelf cleared" msgstr "" #, python-format msgid "Shelf: %s" msgstr "" #, python-format msgid "Patch: %s" msgstr "" msgid "Key:" msgstr "" msgid "Local sign" msgstr "" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "" msgid "No commit" msgstr "" msgid "Use custom commit message:" msgstr "Use custom commit message:" msgid "&Sign" msgstr "" #, python-format msgid "Sign - %s" msgstr "" msgid "Signature has been added" msgstr "" msgid "Repository command still running" msgstr "" msgid "Filter:" msgstr "" msgid "Check all files" msgstr "" msgid "Uncheck all files" msgstr "" msgid "Status File List Toolbar" msgstr "" msgid "Remove filter, show root" msgstr "Remove filter, show root" #, python-format msgid "%s - status (selection filtered)" msgstr "" #, python-format msgid "%s - status" msgstr "" msgid "Check" msgstr "" msgid "Uncheck" msgstr "" msgid "status" msgstr "status" msgid "Failed to refresh" msgstr "" msgid "No appropriate files" msgstr "No appropriate files" msgid "No files found for this operation" msgstr "No files found for this operation" msgid "Stat" msgstr "" msgid "M" msgstr "" msgid "Filename" msgstr "Filename" msgid "Size (KB)" msgstr "" #, python-format msgid "Checked count: %d" msgstr "" msgid ", resolved merge" msgstr "" msgid ", unresolved merge" msgstr "" #, python-format msgid "%s is modified" msgstr "" msgid "modified" msgstr "modified" #, python-format msgid "%s is added" msgstr "" msgid "added" msgstr "added" #, python-format msgid "%s is removed" msgstr "" msgid "removed" msgstr "removed" #, python-format msgid "%s is not tracked (unknown)" msgstr "" msgid "unknown" msgstr "unknown" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "" msgid "missing" msgstr "missing" #, python-format msgid "%s is ignored" msgstr "" msgid "ignored" msgstr "ignored" #, python-format msgid "%s is not modified (clean)" msgstr "" msgid "clean" msgstr "clean" #, python-format msgid "%s is a dirty subrepo" msgstr "" msgid "subrepo" msgstr "" msgid "Check for incoming changes from selected URL" msgstr "" msgid "Pull incoming changes from selected URL" msgstr "" msgid "Detect outgoing changes to selected URL" msgstr "" msgid "Push outgoing changes to selected URL" msgstr "" msgid "Sync Bookmarks" msgstr "" msgid "Email outgoing changesets for remote repository" msgstr "" msgid "Manage pending perforce changelists" msgstr "" msgid "Unbundle" msgstr "" msgid "Selected Options:" msgstr "" msgid "Path Edit Toolbar" msgstr "" msgid "Security" msgstr "" msgid "Manage HTTPS connection security and user authentication" msgstr "" msgid "Save" msgstr "" msgid "Save current URL under an alias" msgstr "" msgid "Paths in Repository Settings:" msgstr "" msgid "Related Paths:" msgstr "" msgid "branch: " msgstr "branch: " msgid "bookmark: " msgstr "" #, python-format msgid "rev: %d (%s)" msgstr "" msgid "Post Pull: " msgstr "Post Pull: " msgid "&Edit..." msgstr "" msgid "&Remove..." msgstr "" msgid "Repository not local" msgstr "" msgid "A terminal shell cannot be opened for remote" msgstr "" msgid "Confirm path delete" msgstr "" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "" msgid "Select repository" msgstr "" msgid "No host specified" msgstr "" msgid "Please set a valid URL to continue." msgstr "" msgid "No remote repository URL or path set" msgstr "" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

                            Please type and save a remote repository path on the " "Sync widget." msgstr "" msgid "Redundant authentication info" msgstr "" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" msgid "sync command already running" msgstr "" #, python-format msgid "Getting incoming changesets from %s..." msgstr "" #, python-format msgid "Found incoming changesets from %s" msgstr "" #, python-format msgid "No incoming changesets from %s" msgstr "" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "" #, python-format msgid "Pulling from %s..." msgstr "" #, python-format msgid "Pull from %s completed" msgstr "" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "" msgid "Merge caused file conflicts" msgstr "" msgid "File conflicts need to be resolved" msgstr "" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "" #, python-format msgid "%d outgoing changesets to %s" msgstr "" #, python-format msgid "No outgoing changesets to %s" msgstr "" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "" msgid "Perforce pending..." msgstr "" #, python-format msgid "%s (submitted)" msgstr "" #, python-format msgid "%s (pending)" msgstr "" msgid "Unable to parse p4pending output" msgstr "Unable to parse p4pending output" #, python-format msgid "%d pending changelists found" msgstr "%d pending changelists found" msgid "No pending Perforce changelists" msgstr "No pending Perforce changelists" msgid "Aborted p4pending" msgstr "Aborted p4pending" msgid "Unable to determine pending changesets" msgstr "Unable to determine pending changesets" msgid "Confirm Push to remote Repository" msgstr "Confirm Push to remote Repository" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" "Push to remote repository\n" "%s\n" "?" #, python-format msgid "Push to %s aborted" msgstr "" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" #, python-format msgid "Pushing to %s..." msgstr "" #, python-format msgid "Push to %s completed" msgstr "" #, python-format msgid "Push to %s aborted, ret %d" msgstr "" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" msgid "Determining outgoing changesets to email..." msgstr "" msgid "No outgoing changesets" msgstr "No outgoing changesets" #, python-format msgid "Outgoing aborted, ret %d" msgstr "" msgid "Select bundle file" msgstr "" msgid "Bundle files (*.hg)" msgstr "" msgid "Unable to remove URL" msgstr "" msgid "Post Pull Behavior" msgstr "" msgid "Select post-pull operation for this repository" msgstr "" msgid "None - simply pull changesets" msgstr "" msgid "Update - pull, then try to update" msgstr "" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "" msgid "Rebase - rebase local commits above pulled changes" msgstr "" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "" msgid "Launch settings tool..." msgstr "" msgid "Unable to save post pull operation" msgstr "" msgid "Save Path" msgstr "" msgid "Alias" msgstr "Alias" msgid "URL" msgstr "URL" msgid "Remove authentication data from URL" msgstr "" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" msgid "Update subrepo paths" msgstr "" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" msgid "Unable to save an URL" msgstr "Unable to save a URL" msgid "Confirm URL replace" msgstr "" #, python-format msgid "%s already exists, replace URL?" msgstr "" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

                            %s

                            Replace it with the " "following URL?:

                            %s" msgstr "" msgid "Security: " msgstr "" #, python-format msgid "Host: %s" msgstr "" msgid "Secure HTTPS Connection" msgstr "" msgid "Verify with Certificate Authority certificates (best)" msgstr "" msgid "Verify with stored host fingerprint (good)" msgstr "" msgid "No host validation, but still encrypted (bad)" msgstr "" msgid "### host certificate fingerprint ###" msgstr "" msgid "Query" msgstr "" msgid "TLS 1.0" msgstr "" msgid "TLS 1.1" msgstr "" msgid "TLS 1.2" msgstr "" msgid "Minimum Protocol" msgstr "" msgid "User Authentication" msgstr "" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Key" msgstr "" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Chain" msgstr "" msgid "Certificate Query Error" msgstr "" msgid "Select User Certificate Key File" msgstr "" msgid "PEM files (*.pem *.key)" msgstr "" msgid "Select User Certificate Chain File" msgstr "" msgid "PEM files (*.pem *.crt *.cer)" msgstr "" msgid "Unable to save authentication" msgstr "" #, python-format msgid "%s - sync options" msgstr "" msgid "Allow push of a new branch (--new-branch)" msgstr "" msgid "Force push or pull (override safety checks, --force)" msgstr "" msgid "Temporarily disable configured HTTP proxy" msgstr "" msgid "Emit debugging output (--debug)" msgstr "" msgid "Work on patch queue (--mq)" msgstr "" #, python-format msgid "Tag - %s" msgstr "Tag - %s" msgid "Tag:" msgstr "Tag:" msgid "Tagged:" msgstr "" msgid "Local tag" msgstr "" msgid "Replace existing tag (-f/--force)" msgstr "" msgid "Use English commit message" msgstr "Use English commit message" msgid "local" msgstr "local" msgid "Move" msgstr "Move" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "" #, python-format msgid "Added tag %s for changeset %s" msgstr "Added tag %s for changeset %s" #, python-format msgid "Tag '%s' has been moved" msgstr "" #, python-format msgid "Tag '%s' has been added" msgstr "" #, python-format msgid "Removed tag %s" msgstr "Removed tag %s" #, python-format msgid "Tag '%s' has been removed" msgstr "" msgid "Patch files (*.diff *.patch)" msgstr "" #, python-format msgid "Import - %s" msgstr "Import - %s" msgid "Browse Directory..." msgstr "Browse Directory..." msgid "Import from Clipboard" msgstr "Import from Clipboard" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "" msgid "Preview:" msgstr "Preview:" msgid "Shelf" msgstr "" msgid "Checking working directory status..." msgstr "" msgid "&Import" msgstr "" msgid "Working directory is not clean! View changes..." msgstr "" msgid "Select patches" msgstr "" msgid "Select Directory containing patches" msgstr "" #, python-format msgid "%s patches" msgstr "%s patches" #, python-format msgid "%s will be imported to " msgstr "" msgid "Nothing to import" msgstr "Nothing to import" msgid "Strip:" msgstr "Strip:" msgid "Discard local changes, no backup (-f/--force)" msgstr "Discard local changes, no backup (-f/--force)" msgid "No backup (-n/--nobackup)" msgstr "No backup (-n/--nobackup)" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "" msgstr[1] "" msgid "Unknown revision!" msgstr "Unknown revision!" msgid "Detected uncommitted local changes." msgstr "" msgid "Do you want to keep them or discard them?" msgstr "" msgid "&Keep (--keep)" msgstr "" msgid "&Discard (--force)" msgstr "" msgid "Confirm Strip" msgstr "Confirm Strip" #, python-format msgid "Strip - %s" msgstr "Strip - %s" msgid "&Strip" msgstr "" msgid "Topic:" msgstr "" msgid "&Rename" msgstr "" #, python-format msgid "Topic - %s" msgstr "" #, python-format msgid "A topic named \"%s\" already exists" msgstr "" #, python-format msgid "Topic '%s' has been added" msgstr "" #, python-format msgid "Topic '%s' does not exist" msgstr "" #, python-format msgid "Topic '%s' has been removed" msgstr "" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "" msgid "Parent 1:" msgstr "Parent 1:" msgid "Parent 2:" msgstr "Parent 2:" msgid "Pull subrepos from:" msgstr "" msgid "List updated files (--verbose)" msgstr "" msgid "Discard local changes, no backup (-C/--clean)" msgstr "Discard local changes, no backup (-C/--clean)" msgid "Always merge (when possible)" msgstr "Always merge (when possible)" msgid "(same as parent)" msgstr "(same as parent)" msgid "Activate bookmark?" msgstr "" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

                            Do " "you want to activate it?
                            You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

                            Select " "the bookmark that you want to activate and click OK.

                            Click " "Cancel if you don't want to activate any of them.

                            You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                            " msgstr "" msgid "Deactivate current bookmark?" msgstr "" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" msgid "Discard - discard local changes, no backup" msgstr "Discard - discard local changes, no backup" msgid "&Shelve" msgstr "&Shelve" msgid "Shelve - move local changes to a patch" msgstr "" msgid "Merge - allow to merge with local changes" msgstr "Merge - allow to merge with local changes" msgid "Confirm Update" msgstr "Confirm Update" #, python-format msgid "Update - %s" msgstr "Update - %s" msgid "[non-existant]" msgstr "[non-existant]" msgid "Tool launch failure" msgstr "Tool launch failure" #, python-format msgid "%s : %s" msgstr "%s : %s" msgid "No diff tool found" msgstr "No diff tool found" msgid "No visual diff tools were detected" msgstr "No visual diff tools were detected" msgid "[working copy]" msgstr "[working copy]" msgid "[original]" msgstr "[original]" msgid "Unable to find changeset" msgstr "Unable to find changeset" msgid "You likely need to refresh this application" msgstr "You likely need to refresh this application" msgid "No file changes" msgstr "No file changes" msgid "There are no file changes to view" msgstr "There are no file changes to view" msgid "working changes" msgstr "working changes" #, python-format msgid "changeset %d:%s" msgstr "" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "" msgid "Visual Diffs - " msgstr "Visual Diffs - " msgid " filtered" msgstr " filtered" msgid "Temporary files are removed when this dialog is closed" msgstr "Temporary files are removed when this dialogue is closed" msgid "Select Tool:" msgstr "" msgid "Dir diff to p1" msgstr "Dir diff to p1" msgid "Dir diff to p2" msgstr "Dir diff to p2" msgid "3-way dir diff" msgstr "3-way dir diff" msgid "Directory diff" msgstr "Directory diff" msgid "Confirm Discard" msgstr "Confirm Discard" msgid "Discard outstanding changes to working directory?" msgstr "Discard outstanding changes to working directory?" msgid "Config files (*.conf *.config *.ini)" msgstr "" msgid "Open hgweb config" msgstr "" msgid "Save hgweb config" msgstr "" msgid "Path:" msgstr "" msgid "Local Path:" msgstr "" msgid "Select Repository" msgstr "Select Repository" msgid "Add Path to Serve" msgstr "" msgid "Edit Path to Serve" msgstr "" msgid "Local Path" msgstr "" msgid "Webconf" msgstr "" msgid "Config File:" msgstr "" msgid "Open" msgstr "" msgid "New &Workbench" msgstr "" msgid "&New Repository..." msgstr "" msgid "Clon&e Repository..." msgstr "" msgid "&Open Repository..." msgstr "" msgid "&File" msgstr "" msgid "&View" msgstr "" msgid "&Repository" msgstr "" msgid "&Help" msgstr "" msgid "&Dock Toolbar" msgstr "" msgid "&Task Toolbar" msgstr "" msgid "&Custom Toolbar" msgstr "" msgid "S&ync Toolbar" msgstr "" msgid "&Close Repository" msgstr "" msgid "Sh&ow Repository Registry" msgstr "" msgid "Show &Patch Queue" msgstr "" msgid "Show Conso&le" msgstr "" msgid "Place Console in Doc&k Area" msgstr "" msgid "R&epository Registry Options" msgstr "" msgid "Save Open Repositories on E&xit" msgstr "" msgid "Sa&ve Current Sync Paths on Exit" msgstr "" msgid "Show Tas&k Tab" msgstr "" msgid "&Commit" msgstr "" msgid "&Patch Branch" msgstr "" msgid "Revision &Details" msgstr "" msgid "&Search" msgstr "" msgid "S&ynchronize" msgstr "" msgid "Refresh current repository" msgstr "" msgid "Refresh &Task Tab" msgstr "" msgid "Refresh only the current task tab" msgstr "" msgid "Load &All Revisions" msgstr "" msgid "Load all revisions into graph" msgstr "" msgid "Go to current revision" msgstr "" msgid "&Goto Revision..." msgstr "" msgid "Go to a specific revision" msgstr "" msgid "Filter graph with revision sets or branches" msgstr "" msgid "&Workbench Toolbars" msgstr "" msgid "&Lock File..." msgstr "" msgid "Lock or unlock files" msgstr "" msgid "Update working directory or switch revisions" msgstr "" msgid "&Shelve..." msgstr "" msgid "&Import Patches..." msgstr "" msgid "U&nbundle..." msgstr "" msgid "&Merge..." msgstr "" msgid "Merge with the other head of the current branch" msgstr "" msgid "&Resolve..." msgstr "" msgid "R&ollback/Undo..." msgstr "" msgid "&Purge..." msgstr "" msgid "&Bisect..." msgstr "" msgid "&Verify" msgstr "" msgid "Re&cover" msgstr "" msgid "&Web Server" msgstr "" msgid "E&xplorer Help" msgstr "" msgid "&Readme" msgstr "" msgid "About &Qt" msgstr "" msgid "&About TortoiseHg" msgstr "" msgid "&Incoming" msgstr "" msgid "&Pull" msgstr "" msgid "&Outgoing" msgstr "" msgid "P&ush" msgstr "" msgid "&Sync Bookmarks..." msgstr "" #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" msgid "Check for incoming changes" msgstr "" msgid "Pull incoming changes" msgstr "" msgid "Detect outgoing changes" msgstr "" msgid "Push outgoing changes" msgstr "" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" #, python-format msgid "Execute custom tool '%s'" msgstr "" msgid "Custom Toolbar &Settings" msgstr "" msgid "TortoiseHg Workbench" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "" msgid "Goto revision" msgstr "" msgid "Enter revision identifier" msgstr "" msgid "Select repository directory to open" msgstr "" msgid "README not configured" msgstr "" msgid "" "A README file is not configured for the current repository.

                            To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" msgid "Issue Tracker Plugin Error" msgstr "" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "" msgid "This error will not be shown again until you restart the workbench" msgstr "" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "" msgid "Error executing \"commit finished\" trigger" msgstr "" msgid "Cannot open Plugin Options dialog" msgstr "" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "" msgid "[--insecure] [SOURCE]" msgstr "" #, python-format msgid "unsupported URL: %s" msgstr "" #, python-format msgid "%s certificate error: no certificate received" msgstr "" msgid "move after the specified patch" msgstr "" msgid "[--after PATCH] PATCH..." msgstr "" msgid "unknown patch to move specified" msgstr "" msgid "invalid patch position specified" msgstr "" msgid "cannot move applied patches" msgstr "" #, python-format msgid "patch %s not in series" msgstr "" msgid "cannot move into applied patches" msgstr "" msgid "abort: " msgstr "abort: " msgid "hint: " msgstr "" #, python-format msgid "HTTP Error: %d (%s)" msgstr "" #, python-format msgid "URLError: %s" msgstr "" msgid "SSL: Server certificate verify failed" msgstr "" #, python-format msgid "SSL: unknown error %s:%s" msgstr "" #, python-format msgid "SSL error: %s" msgstr "" msgid "hgsubversion packaged with thg" msgstr "" msgid "hggit packaged with thg" msgstr "" msgid "inotify is not supported on this platform" msgstr "" msgid "eol is incompatible with win32text" msgstr "" msgid "win32text is incompatible with eol" msgstr "" msgid "hgsubversion is incompatible with perfarce" msgstr "" msgid "perfarce is incompatible with hgsubversion" msgstr "" msgid "Workbench custom toolbar" msgstr "" msgid "Revision details context menu" msgstr "" msgid "Pair selection context menu" msgstr "" msgid "Multiple selection context menu" msgstr "" msgid "Commit context menu" msgstr "" msgid "File context menu (on manifest and revision details)" msgstr "" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" msgid "in the future" msgstr "" msgid "now" msgstr "" #, python-format msgid "command parse error: %s" msgstr "" #, python-format msgid "no matches found: %s" msgstr "" msgid "Commit..." msgstr "Commit..." msgid "Commit changes in repository" msgstr "Commit changes in repository" msgid "Create Repository Here" msgstr "Create Repository Here" msgid "Create a new repository" msgstr "Create a new repository" msgid "Clone..." msgstr "Clone..." msgid "Create clone here from source" msgstr "Create clone here from source" msgid "File Status" msgstr "File Status" msgid "Repository status & changes" msgstr "Repository status and changes" msgid "Add Files..." msgstr "Add Files..." msgid "Add files to version control" msgstr "Add files to version control" msgid "Revert Files..." msgstr "Revert Files..." msgid "Revert file changes" msgstr "Revert file changes" msgid "Forget Files..." msgstr "Forget Files..." msgid "Remove files from version control" msgstr "Remove files from version control" msgid "Remove Files..." msgstr "Remove Files..." msgid "Rename File" msgstr "Rename File" msgid "Rename file or directory" msgstr "Rename file or directory" msgid "View change history in repository" msgstr "View change history in repository" msgid "File History" msgstr "File History" msgid "View change history of selected files" msgstr "View change history of selected files" msgid "Shelve Changes" msgstr "" msgid "Move changes between working dir and patch" msgstr "" msgid "Synchronize" msgstr "Synchronise" msgid "Synchronize with remote repository" msgstr "Synchronise with remote repository" msgid "Start web server for this repository" msgstr "Start web server for this repository" msgid "Update..." msgstr "Update..." msgid "Update working directory" msgstr "Update working directory" msgid "Update Icons" msgstr "Update Icons" msgid "Update icons for this repository" msgstr "Update icons for this repository" msgid "Global Settings" msgstr "Global Settings" msgid "Configure user wide settings" msgstr "Configure user wide settings" msgid "Repository Settings" msgstr "Repository Settings" msgid "Configure repository settings" msgstr "Configure repository settings" msgid "Explorer Extension Settings" msgstr "" msgid "Configure Explorer extension" msgstr "" msgid "About TortoiseHg" msgstr "About TortoiseHg" msgid "Show About Dialog" msgstr "Show About Dialogue" msgid "Diff to parent" msgstr "" msgid "View changes using GUI diff tool" msgstr "View changes using GUI diff tool" msgid "Edit Ignore Filter" msgstr "Edit Ignore Filter" msgid "Edit repository ignore filter" msgstr "Edit repository ignore filter" msgid "Guess Renames" msgstr "Guess Renames" msgid "Detect renames and copies" msgstr "Detect renames and copies" msgid "Search History" msgstr "Search History" msgid "Search file revisions for patterns" msgstr "Search file revisions for patterns" msgid "DnD Synchronize" msgstr "DnD Synchronise" msgid "Synchronize with dragged repository" msgstr "Synchronise with dragged repository" #, python-format msgid "unrecognized response: %s" msgstr "" msgid "password: " msgstr "password: " #, python-format msgid "repository %s not found" msgstr "repository %s not found" msgid "win32ill: cannot create window for messages" msgstr "" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "" msgid "win32ill: interrupted while stopping message loop\n" msgstr "" #~ msgid "Several icons are courtesy of the TortoiseSVN project" #~ msgstr "Several icons are courtesy of the TortoiseSVN project" #~ msgid "A new version of TortoiseHg is ready for download!" #~ msgstr "A new version of TortoiseHg is ready for download!" #~ msgid "(version %s)" #~ msgstr "(version %s)" #~ msgid "Copyright 2008-2010 Steve Borho and others" #~ msgstr "Copyright 2008-2010 Steve Borho and others" #~ msgid "with %s" #~ msgstr "with %s" #~ msgid "Archive revision:" #~ msgstr "Archive revision:" #~ msgid "Archive" #~ msgstr "Archive" #~ msgid "Archived successfully" #~ msgstr "Archived successfully" #~ msgid "Canceled archiving" #~ msgstr "Cancelled archiving" #~ msgid "Failed to archive" #~ msgstr "Failed to archive" #~ msgid "Compressed zip archives" #~ msgstr "Compressed zip archives" #~ msgid "All Files (*.*)" #~ msgstr "All Files (*.*)" #~ msgid "" #~ "The destination \"%s\" already exists!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "The destination \"%s\" already exists!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgid "" #~ "The directory \"%s\" isn't empty!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "The directory \"%s\" isn't empty!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgid "Backout changeset - %s" #~ msgstr "Backout changeset - %s" #~ msgid "Changeset Description" #~ msgstr "Changeset Description" #~ msgid "Backout commit message" #~ msgstr "Backout commit message" #~ msgid "Backout" #~ msgstr "Backout" #~ msgid "Canceled backout" #~ msgstr "Cancelled backout" #~ msgid "Failed to backout" #~ msgstr "Failed to backout" #~ msgid "unexpected type: %s" #~ msgstr "unexpected type: %s" #~ msgid "Old name:" #~ msgstr "Old name:" #~ msgid "unexpected response id: %s" #~ msgstr "unexpected response id: %s" #~ msgid "Bookmark input is empty" #~ msgstr "Bookmark input is empty" #~ msgid "Please enter bookmark name" #~ msgstr "Please enter bookmark name" #~ msgid "Bookmarking completed" #~ msgstr "Bookmarking completed" #~ msgid "Bookmark \"%s\" has been added" #~ msgstr "Bookmark \"%s\" has been added" #~ msgid "Error in bookmarking" #~ msgstr "Error in bookmarking" #~ msgid "Bookmark \"%s\" has been moved" #~ msgstr "Bookmark \"%s\" has been moved" #~ msgid "Bookmark name is empty" #~ msgstr "Bookmark name is empty" #~ msgid "Please select bookmark name to remove" #~ msgstr "Please select bookmark name to remove" #~ msgid "Bookmark \"%s\" has been removed" #~ msgstr "Bookmark \"%s\" has been removed" #~ msgid "Bookmark new name input is empty" #~ msgstr "Bookmark new name input is empty" #~ msgid "Please enter new bookmark name" #~ msgstr "Please enter new bookmark name" #~ msgid "Bookmark \"%s\" has been renamed to \"%s\"" #~ msgstr "Bookmark \"%s\" has been renamed to \"%s\"" #~ msgid "a bookmark named \"%s\" already exists" #~ msgstr "a bookmark named \"%s\" already exists" #~ msgid "No bookmark named \"%s\" exists" #~ msgstr "No bookmark named \"%s\" exists" #~ msgid "type" #~ msgstr "type" #~ msgid "path" #~ msgstr "path" #~ msgid "browser" #~ msgstr "browser" #~ msgid "Save as.." #~ msgstr "Save as.." #~ msgid "%s changeset " #~ msgstr "%s changeset " #~ msgid "[All Files]" #~ msgstr "[All Files]" #~ msgid "unknown hunk type: %s" #~ msgstr "unknown hunk type: %s" #~ msgid " %s is larger than the specified max diff size" #~ msgstr " %s is larger than the specified max diff size" #~ msgid "Repository Error: %s, refresh suggested" #~ msgstr "Repository Error: %s, refresh suggested" #~ msgid "[no hunks to display]" #~ msgstr "[no hunks to display]" #~ msgid "_Visual Diff" #~ msgstr "_Visual Diff" #~ msgid "Diff to _local" #~ msgstr "Diff to _local" #~ msgid "_View at Revision" #~ msgstr "_View at Revision" #~ msgid "_Save at Revision..." #~ msgstr "_Save at Revision..." #~ msgid "_File History" #~ msgstr "_File History" #~ msgid "_Annotate File" #~ msgstr "_Annotate File" #~ msgid "_Revert File Contents" #~ msgstr "_Revert File Contents" #~ msgid "Diff to second Parent" #~ msgstr "Diff to second Parent" #~ msgid "Confirm revert file to old revision" #~ msgstr "Confirm revert file to old revision" #~ msgid "Revert %s to contents at revision %d?" #~ msgstr "Revert %s to contents at revision %d?" #~ msgid "Enable _Wordwrap" #~ msgstr "Enable _Wordwrap" #~ msgid "TortoiseHg Clone" #~ msgstr "TortoiseHg Clone" #~ msgid "Bundle..." #~ msgstr "Bundle..." #~ msgid "Select a Mercurial Bundle" #~ msgstr "Select a Mercurial Bundle" #~ msgid "Source path:" #~ msgstr "Source path:" #~ msgid "Advanced options" #~ msgstr "Advanced options" #~ msgid "Use uncompressed transfer" #~ msgstr "Use uncompressed transfer" #~ msgid "Clone" #~ msgstr "Clone" #~ msgid "Cloned successfully" #~ msgstr "Cloned successfully" #~ msgid "Canceled updating" #~ msgstr "Cancelled updating" #~ msgid "Failed to clone" #~ msgstr "Failed to clone" #~ msgid "Mercurial bundles" #~ msgstr "Mercurial bundles" #~ msgid "Source path is empty" #~ msgstr "Source path is empty" #~ msgid "Please enter a valid source path" #~ msgstr "Please enter a valid source path" #~ msgid "Source and destination are the same" #~ msgstr "Source and destination are the same" #~ msgid "Please specify different paths" #~ msgstr "Please specify different paths" #~ msgid "Branch Operations" #~ msgstr "Branch Operations" #~ msgid "Close current named branch" #~ msgstr "Close current named branch" #~ msgid "merging " #~ msgstr "merging " #~ msgid " - qnew" #~ msgstr " - qnew" #~ msgid " - qrefresh " #~ msgstr " - qrefresh " #~ msgid " - commit" #~ msgstr " - commit" #~ msgid "_View" #~ msgstr "_View" #~ msgid "Toolbar" #~ msgstr "Toolbar" #~ msgid "Advanced" #~ msgstr "Advanced" #~ msgid "Always Show Output" #~ msgstr "Always Show Output" #~ msgid "_Operations" #~ msgstr "_Operations" #~ msgid "_Commit" #~ msgstr "_Commit" #~ msgid "_Undo" #~ msgstr "_Undo" #~ msgid "_Diff" #~ msgstr "_Diff" #~ msgid "Re_vert" #~ msgstr "Re_vert" #~ msgid "_Add" #~ msgstr "_Add" #~ msgid "_Remove" #~ msgstr "_Remove" #~ msgid "_Forget" #~ msgstr "_Forget" #~ msgid "undo recent commit" #~ msgstr "undo recent commit" #~ msgid "commit" #~ msgstr "commit" #~ msgid "Show/Hide Patch Queue" #~ msgstr "Show/Hide Patch Queue" #~ msgid "Save commit message at exit?" #~ msgstr "Save commit message at exit?" #~ msgid "Committer:" #~ msgstr "Committer:" #~ msgid "Auto-includes:" #~ msgstr "Auto-includes:" #~ msgid "Push after commit" #~ msgstr "Push after commit" #~ msgid "Recent commit messages..." #~ msgstr "Recent commit messages..." #~ msgid "Parent: %(rev)s" #~ msgstr "Parent: %(rev)s" #~ msgid "Not at head" #~ msgstr "Not at head" #~ msgid "Patch Preview" #~ msgstr "Patch Preview" #~ msgid "Commit Preview" #~ msgstr "Commit Preview" #~ msgid "create new MQ patch" #~ msgstr "create new MQ patch" #~ msgid "refresh top MQ patch" #~ msgstr "refresh top MQ patch" #~ msgid "_Commit (+1 head)" #~ msgstr "_Commit (+1 head)" #~ msgid "_Commit (-1 head)" #~ msgstr "_Commit (-1 head)" #~ msgid "parent is not a head, commit to add a new head" #~ msgstr "parent is not a head, commit to add a new head" #~ msgid "commit to merge one head" #~ msgstr "commit to merge one head" #~ msgid "new branch: " #~ msgstr "new branch: " #~ msgid "close branch: " #~ msgstr "close branch: " #~ msgid "Merge " #~ msgstr "Merge " #~ msgid "Patch Contents" #~ msgstr "Patch Contents" #~ msgid "Nothing Commited" #~ msgstr "Nothing Committed" #~ msgid "No committable files selected" #~ msgstr "No committable files selected" #~ msgid "Unable to create " #~ msgstr "Unable to create " #~ msgid "Unable to apply patch" #~ msgstr "Unable to apply patch" #~ msgid "Confirm Undo Commit" #~ msgstr "Confirm Undo Commit" #~ msgid "Undo Commit" #~ msgstr "Undo Commit" #~ msgid "" #~ "Unable to undo!\n" #~ "\n" #~ "Tip revision differs from last commit." #~ msgstr "" #~ "Unable to undo!\n" #~ "\n" #~ "Tip revision differs from last commit." #~ msgid "Errors during rollback!" #~ msgstr "Errors during rollback!" #~ msgid "Confirm Add/Remove" #~ msgstr "Confirm Add/Remove" #~ msgid "Add/Remove the following files?" #~ msgstr "Add/Remove the following files?" #~ msgid "Message format configuration error" #~ msgstr "Message format configuration error" #~ msgid "Confirm Commit" #~ msgstr "Confirm Commit" #~ msgid "" #~ "The summary line length of %i is greater than %i.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "The summary line length of %i is greater than %i.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgid "" #~ "The summary line is not followed by a blank line.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "The summary line is not followed by a blank line.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgid "" #~ "The following lines are over the %i-character limit: %s.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "The following lines are over the %i-character limit: %s.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgid "Commit: Invalid username" #~ msgstr "Commit: Invalid username" #~ msgid "" #~ "Your username has not been configured.\n" #~ "\n" #~ "Please configure your username and try again" #~ msgstr "" #~ "Your username has not been configured.\n" #~ "\n" #~ "Please configure your username and try again" #~ msgid "Aborted committing" #~ msgstr "Aborted committing" #~ msgid "Failed to commit" #~ msgstr "Failed to commit" #~ msgid "Committing changes..." #~ msgstr "Committing changes..." #~ msgid "Cannot run now" #~ msgstr "Cannot run now" #~ msgid "Paste _Filenames" #~ msgstr "Paste _Filenames" #~ msgid "App_ly Format" #~ msgstr "App_ly Format" #~ msgid "C_onfigure Format..." #~ msgstr "C_onfigure Format..." #~ msgid "Info Required" #~ msgstr "Info Required" #~ msgid "Message format needs to be configured" #~ msgstr "Message format needs to be configured" #~ msgid "The summary line length of %i is greater than %i" #~ msgstr "The summary line length of %i is greater than %i" #~ msgid "The summary line is not followed by a blank line" #~ msgstr "The summary line is not followed by a blank line" #~ msgid "Updating..." #~ msgstr "Updating..." #~ msgid "Selecting %(sel)d of %(total)d, displaying all items" #~ msgstr "Selecting %(sel)d of %(total)d, displaying all items" #~ msgid "Selecting %(sel)d, displaying %(count)d of %(total)d items" #~ msgstr "Selecting %(sel)d, displaying %(count)d of %(total)d items" #~ msgid "Displaying all items" #~ msgstr "Displaying all items" #~ msgid "%s - datamine" #~ msgstr "%s - datamine" #~ msgid "Stop operation on current tab" #~ msgstr "Stop operation on current tab" #~ msgid "New Search" #~ msgstr "New Search" #~ msgid "Open new search tab" #~ msgstr "Open new search tab" #~ msgid "Invalid path" #~ msgstr "Invalid path" #~ msgid "Di_splay Change" #~ msgstr "Di_splay Change" #~ msgid "_View File at Revision" #~ msgstr "_View File at Revision" #~ msgid "_Zoom to Change" #~ msgstr "_Zoom to Change" #~ msgid "_Annotate Parent" #~ msgstr "_Annotate Parent" #~ msgid "Start this search" #~ msgstr "Start this search" #~ msgid "" #~ "Comma separated list of inclusion patterns. By default, the entire " #~ "repository is searched." #~ msgstr "" #~ "Comma separated list of inclusion patterns. By default, the entire " #~ "repository is searched." #~ msgid "" #~ "Comma separated list of exclusion patterns. Exclusion patterns are " #~ "applied after inclusion patterns." #~ msgstr "" #~ "Comma separated list of exclusion patterns. Exclusion patterns are " #~ "applied after inclusion patterns." #~ msgid "Show line numbers" #~ msgstr "Show line numbers" #~ msgid "Show all matching revisions" #~ msgstr "Show all matching revisions" #~ msgid "Matches" #~ msgstr "Matches" #~ msgid "Search %d" #~ msgstr "Search %d" #~ msgid "No regular expression given" #~ msgstr "No regular expression given" #~ msgid "You must provide a search expression" #~ msgstr "You must provide a search expression" #~ msgid "Invalid regular expression" #~ msgstr "Invalid regular expression" #~ msgid "Error: %s" #~ msgstr "Error: %s" #~ msgid "Abort: %s" #~ msgstr "Abort: %s" #~ msgid "Search \"%s\"" #~ msgstr "Search \"%s\"" #~ msgid "File is unrevisioned" #~ msgstr "File is unrevisioned" #~ msgid "Unable to annotate " #~ msgstr "Unable to annotate " #~ msgid "Loading history..." #~ msgstr "Loading history..." #~ msgid "_Tools" #~ msgstr "_Tools" #~ msgid "Repository Explorer" #~ msgstr "Repository Explorer" #~ msgid "Datamine" #~ msgstr "Datamine" #~ msgid "Recovery" #~ msgstr "Recovery" #~ msgid "Serve" #~ msgstr "Serve" #~ msgid "Shelve" #~ msgstr "Shelve" #~ msgid "_Help" #~ msgstr "_Help" #~ msgid "Contents" #~ msgstr "Contents" #~ msgid "Index" #~ msgstr "Index" #~ msgid " Aborted" #~ msgstr " Aborted" #~ msgid " Messages and Errors" #~ msgstr " Messages and Errors" #~ msgid "making snapshot of %d files from rev %s\n" #~ msgstr "making snapshot of %d files from rev %s\n" #~ msgid "edit failed" #~ msgstr "edit failed" #~ msgid "unknown mode name: %s" #~ msgstr "unknown mode name: %s" #~ msgid "Confirm Abort" #~ msgstr "Confirm Abort" #~ msgid "Do you want to abort?" #~ msgstr "Do you want to abort?" #~ msgid "Select" #~ msgstr "Select" #~ msgid "Select Revision" #~ msgstr "Select Revision" #~ msgid "revision number, changeset ID, branch or tag" #~ msgstr "revision number, changeset ID, branch or tag" #~ msgid "Ambiguous Revision" #~ msgstr "Ambiguous Revision" #~ msgid "Invalid Revision" #~ msgstr "Invalid Revision" #~ msgid "Save File" #~ msgstr "Save File" #~ msgid "All files" #~ msgstr "All files" #~ msgid "Select Folder" #~ msgstr "Select Folder" #~ msgid "" #~ "Select language for spell checking.\n" #~ "\n" #~ "Empty is for the default language.\n" #~ "When all text is highlited, the dictionary\n" #~ "is probably not installed.\n" #~ "\n" #~ "examples: en, en_GB, en_US" #~ msgstr "" #~ "Select language for spell checking.\n" #~ "\n" #~ "Empty is for the default language.\n" #~ "When all text is highlited, the dictionary\n" #~ "is probably not installed.\n" #~ "\n" #~ "examples: en, en_GB, en_US" #~ msgid "Lang \"%s\" can not be set.\n" #~ msgstr "Lang \"%s\" can not be set.\n" #~ msgid "Spell Check Language" #~ msgstr "Spell Check Language" #~ msgid "Minimum Simularity Percentage" #~ msgstr "Minimum Simularity Percentage" #~ msgid "Unrevisioned Files" #~ msgstr "Unrevisioned Files" #~ msgid "Find Copies" #~ msgstr "Find Copies" #~ msgid "Candidate Matches" #~ msgstr "Candidate Matches" #~ msgid "Accept Match" #~ msgstr "Accept Match" #~ msgid "Differences from Source to Dest" #~ msgstr "Differences from Source to Dest" #~ msgid "finding source of " #~ msgstr "finding source of " #~ msgid "" #~ "== %s and %s have identical contents ==\n" #~ "\n" #~ msgstr "" #~ "== %s and %s have identical contents ==\n" #~ "\n" #~ msgid "" #~ "\n" #~ "[command interrupted]" #~ msgstr "" #~ "\n" #~ "[command interrupted]" #~ msgid "unknown CmdWidget style: %s" #~ msgstr "unknown CmdWidget style: %s" #~ msgid "Toggle log window" #~ msgstr "Toggle log window" #~ msgid "Stop transaction" #~ msgstr "Stop transaction" #~ msgid "Close this" #~ msgstr "Close this" #~ msgid "invalid state" #~ msgstr "invalid state" #~ msgid "Command Log" #~ msgstr "Command Log" #~ msgid "Send" #~ msgstr "Send" #~ msgid "Send emails" #~ msgstr "Send e-mails" #~ msgid "Test" #~ msgstr "Test" #~ msgid "Show emails which would be sent" #~ msgstr "Show e-mails which would be sent" #~ msgid "Configure" #~ msgstr "Configure" #~ msgid "Configure email settings" #~ msgstr "Configure e-mail settings" #~ msgid "Email outgoing changes" #~ msgstr "E-mail outgoing changes" #~ msgid "Email revisions " #~ msgstr "E-mail revisions " #~ msgid "Email Mercurial Patches" #~ msgstr "E-mail Mercurial Patches" #~ msgid "Envelope" #~ msgstr "Envelope" #~ msgid "" #~ "This feature is only available when sending outgoing changesets. It is " #~ "not applicable with revision ranges." #~ msgstr "" #~ "This feature is only available when sending outgoing changesets. It is " #~ "not applicable with revision ranges." #~ msgid "Flags:" #~ msgstr "Flags:" #~ msgid "Patch Series (Bundle) Description" #~ msgstr "Patch Series (Bundle) Description" #~ msgid "Info required" #~ msgstr "Info required" #~ msgid "You must specify a recipient" #~ msgstr "You must specify a recipient" #~ msgid "You must specify a sender address" #~ msgstr "You must specify a sender address" #~ msgid "You must configure SMTP" #~ msgstr "You must configure SMTP" #~ msgid "Glob:" #~ msgstr "Glob:" #~ msgid "Apply to:" #~ msgstr "Apply to:" #~ msgid "Filters" #~ msgstr "Filters" #~ msgid "Remove Selected" #~ msgstr "Remove Selected" #~ msgid "Unknown Files" #~ msgstr "Unknown Files" #~ msgid "TortoiseHg Init" #~ msgstr "TortoiseHg Init" #~ msgid "Add special files (.hgignore, ...)" #~ msgstr "Add special files (.hgignore, ...)" #~ msgid "Make repo compatible with Mercurial 1.0" #~ msgstr "Make repo compatible with Mercurial 1.0" #~ msgid "Destination path is empty" #~ msgstr "Destination path is empty" #~ msgid "Please enter the directory path" #~ msgstr "Please enter the directory path" #~ msgid "Unable to create new repository" #~ msgstr "Unable to create new repository" #~ msgid "Error when creating repository" #~ msgstr "Error when creating repository" #~ msgid "response expected" #~ msgstr "response expected" #~ msgid "[command returned code %d " #~ msgstr "[command returned code %d " #~ msgid "[command completed successfully " #~ msgstr "[command completed successfully " #~ msgid "hgtk %s: %s\n" #~ msgstr "hgtk %s: %s\n" #~ msgid "hgtk: %s\n" #~ msgstr "hgtk: %s\n" #~ msgid "" #~ "hgtk: command '%s' is ambiguous:\n" #~ " %s\n" #~ msgstr "" #~ "hgtk: command '%s' is ambiguous:\n" #~ " %s\n" #~ msgid "hgtk: unknown command '%s'\n" #~ msgstr "hgtk: unknown command '%s'\n" #~ msgid "There is no Mercurial repository here (.hg not found)" #~ msgstr "There is no Mercurial repository here (.hg not found)" #~ msgid "Rename error" #~ msgstr "Rename error" #~ msgid "rename takes one or two path arguments" #~ msgstr "rename takes one or two path arguments" #~ msgid "mpatch error" #~ msgstr "mpatch error" #~ msgid "mpatch expects *.rej file argument\n" #~ msgstr "mpatch expects *.rej file argument\n" #~ msgid "%s does not exist\n" #~ msgstr "%s does not exist\n" #~ msgid "use \"hgtk help\" for the full list of commands" #~ msgstr "use \"hgtk help\" for the full list of commands" #~ msgid "" #~ "use \"hgtk help\" for the full list of commands or \"hgtk -v\" for details" #~ msgstr "" #~ "use \"hgtk help\" for the full list of commands or \"hgtk -v\" for details" #~ msgid "use \"hgtk -v help%s\" to show aliases and global options" #~ msgstr "use \"hgtk -v help%s\" to show aliases and global options" #~ msgid "use \"hgtk -v help %s\" to show global options" #~ msgstr "use \"hgtk -v help %s\" to show global options" #~ msgid "(No help text available)" #~ msgstr "(No help text available)" #~ msgid "Hgtk - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" #~ msgstr "Hgtk - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" #~ msgid "hgtk about" #~ msgstr "hgtk about" #~ msgid "hgtk add [FILE]..." #~ msgstr "hgtk add [FILE]..." #~ msgid "hgtk clone SOURCE [DEST]" #~ msgstr "hgtk clone SOURCE [DEST]" #~ msgid "hgtk commit [OPTIONS] [FILE]..." #~ msgstr "hgtk commit [OPTIONS] [FILE]..." #~ msgid "hgtk datamine" #~ msgstr "hgtk datamine" #~ msgid "hgtk hgignore [FILE]" #~ msgstr "hgtk hgignore [FILE]" #~ msgid "hgtk init [DEST]" #~ msgstr "hgtk init [DEST]" #~ msgid "limit number of changes displayed" #~ msgstr "limit number of changes displayed" #~ msgid "hgtk log [OPTIONS] [FILE]" #~ msgstr "hgtk log [OPTIONS] [FILE]" #~ msgid "revision to merge with" #~ msgstr "revision to merge with" #~ msgid "hgtk merge" #~ msgstr "hgtk merge" #~ msgid "hgtk recovery" #~ msgstr "hgtk recovery" #~ msgid "hgtk shelve" #~ msgstr "hgtk shelve" #~ msgid "hgtk synch" #~ msgstr "hgtk sync" #~ msgid "revisions to compare" #~ msgstr "revisions to compare" #~ msgid "hgtk status [FILE]..." #~ msgstr "hgtk status [FILE]..." #~ msgid "hgtk userconfig" #~ msgstr "hgtk userconfig" #~ msgid "hgtk repoconfig" #~ msgstr "hgtk repoconfig" #~ msgid "hgtk guess" #~ msgstr "hgtk guess" #~ msgid "hgtk remove [FILE]..." #~ msgstr "hgtk remove [FILE]..." #~ msgid "hgtk rename SOURCE [DEST]" #~ msgstr "hgtk rename SOURCE [DEST]" #~ msgid "hgtk revert [FILE]..." #~ msgstr "hgtk revert [FILE]..." #~ msgid "hgtk forget [FILE]..." #~ msgstr "hgtk forget [FILE]..." #~ msgid "hgtk serve [OPTION]..." #~ msgstr "hgtk serve [OPTION]..." #~ msgid "udpate all repos in current dir" #~ msgstr "udpate all repos in current dir" #~ msgid "hgtk thgstatus [OPTION]" #~ msgstr "hgtk thgstatus [OPTION]" #~ msgid "hgtk version [OPTION]" #~ msgstr "hgtk version [OPTION]" #~ msgid "show the command options" #~ msgstr "show the command options" #~ msgid "[-o] CMD" #~ msgstr "[-o] CMD" #~ msgid "hgtk help [COMMAND]" #~ msgstr "hgtk help [COMMAND]" #~ msgid "import to the repository" #~ msgstr "import to the repository" #~ msgid "hgtk import [OPTION] [SOURCE]..." #~ msgstr "hgtk import [OPTION] [SOURCE]..." #~ msgid "hgtk shellconfig" #~ msgstr "hgtk shellconfig" #~ msgid "Log Details" #~ msgstr "Log Details" #~ msgid "Columns" #~ msgstr "Columns" #~ msgid "Move Up" #~ msgstr "Move Up" #~ msgid "Move Down" #~ msgstr "Move Down" #~ msgid "Tagged" #~ msgstr "Tagged" #~ msgid "Ancestry" #~ msgstr "Ancestry" #~ msgid "Heads" #~ msgstr "Heads" #~ msgid "Merges" #~ msgstr "Merges" #~ msgid "Hide Merges" #~ msgstr "Hide Merges" #~ msgid "Branch Filter" #~ msgstr "Branch Filter" #~ msgid "Branches..." #~ msgstr "Branches..." #~ msgid "Custom Filter" #~ msgstr "Custom Filter" #~ msgid "File Patterns" #~ msgstr "File Patterns" #~ msgid "Keywords" #~ msgstr "Keywords" #~ msgid "" #~ "New changesets from the preview bundle are still pending.\n" #~ "\n" #~ "Accept or reject the new changesets?" #~ msgstr "" #~ "New changesets from the preview bundle are still pending.\n" #~ "\n" #~ "Accept or reject the new changesets?" #~ msgid "Accept new Changesets" #~ msgstr "Accept new Changesets" #~ msgid "&Accept" #~ msgstr "&Accept" #~ msgid "&Reject" #~ msgstr "&Reject" #~ msgid " (Bundle Preview)" #~ msgstr " (Bundle Preview)" #~ msgid "Re_fresh" #~ msgstr "Re_fresh" #~ msgid "Reload revision history" #~ msgstr "Reload revision history" #~ msgid "Reset _Marks" #~ msgstr "Reset _Marks" #~ msgid "Reset revision marks" #~ msgstr "Reset revision marks" #~ msgid "Launch commit tool" #~ msgstr "Launch commit tool" #~ msgid "Launch data mining tool" #~ msgstr "Launch data mining tool" #~ msgid "Launch recovery tool" #~ msgstr "Launch recovery tool" #~ msgid "Launch web server" #~ msgstr "Launch web server" #~ msgid "Launch shelve tool" #~ msgstr "Launch shelve tool" #~ msgid "Branches" #~ msgstr "Branches" #~ msgid "Tags" #~ msgstr "Tags" #~ msgid "Sync Bar" #~ msgstr "Sync Bar" #~ msgid "_Perforce" #~ msgstr "_Perforce" #~ msgid "Identify" #~ msgstr "Identify" #~ msgid "Pending" #~ msgstr "Pending" #~ msgid "Load more Revisions" #~ msgstr "Load more Revisions" #~ msgid "Load all Revisions" #~ msgstr "Load all Revisions" #~ msgid "Filter Bar" #~ msgstr "Filter Bar" #~ msgid "Reset Marks" #~ msgstr "Reset Marks" #~ msgid "Choose Details..." #~ msgstr "Choose Details..." #~ msgid "Compact Graph" #~ msgstr "Compact Graph" #~ msgid "Color by Branch" #~ msgstr "Colour by Branch" #~ msgid "Ignore Max Diff Size" #~ msgstr "Ignore Max Diff Size" #~ msgid "_Navigate" #~ msgstr "_Navigate" #~ msgid "Tip" #~ msgstr "Tip" #~ msgid "Working Parent" #~ msgstr "Working Parent" #~ msgid "Previously Selected" #~ msgstr "Previously Selected" #~ msgid "Revision..." #~ msgstr "Revision..." #~ msgid "_Synchronize" #~ msgstr "_Synchronise" #~ msgid "Incoming" #~ msgstr "Incoming" #~ msgid "Outgoing" #~ msgstr "Outgoing" #~ msgid "Push" #~ msgstr "Push" #~ msgid "Email..." #~ msgstr "E-mail..." #~ msgid "Accept Bundle" #~ msgstr "Accept Bundle" #~ msgid "Reject Bundle" #~ msgstr "Reject Bundle" #~ msgid "Import..." #~ msgstr "Import..." #~ msgid "Add Bundle..." #~ msgstr "Add Bundle..." #~ msgid "Configure Paths..." #~ msgstr "Configure Paths..." #~ msgid "_Filter" #~ msgstr "_Filter" #~ msgid "Custom" #~ msgstr "Custom" #~ msgid "Revision Range" #~ msgstr "Revision Range" #~ msgid "Submitted" #~ msgstr "Submitted" #~ msgid "Finding pending Perforce changelists..." #~ msgstr "Finding pending Perforce changelists..." #~ msgid "Pending Perforce changelists" #~ msgstr "Pending Perforce changelists" #~ msgid "Perforce changelist %s" #~ msgstr "Perforce changelist %s" #~ msgid "Unable to find rev %s" #~ msgstr "Unable to find rev %s" #~ msgid "Aborted p4identify" #~ msgstr "Aborted p4identify" #~ msgid "Unable to identify Perforce tip" #~ msgstr "Unable to identify Perforce tip" #~ msgid "Finding tip Perforce changelist..." #~ msgstr "Finding tip Perforce changelist..." #~ msgid "Identifying Perforce tip" #~ msgstr "Identifying Perforce tip" #~ msgid "Revision Number" #~ msgstr "Revision Number" #~ msgid "Changeset ID" #~ msgstr "Changeset ID" #~ msgid "Revision Number/ID" #~ msgstr "Revision Number/ID" #~ msgid "Branch Name" #~ msgstr "Branch Name" #~ msgid "Changes" #~ msgstr "Changes" #~ msgid "Summary" #~ msgstr "Summary" #~ msgid "Local Date" #~ msgstr "Local Date" #~ msgid "UTC Date" #~ msgstr "UTC Date" #~ msgid "Age" #~ msgstr "Age" #~ msgid "Invalid date specification" #~ msgstr "Invalid date specification" #~ msgid "'%s' filter:" #~ msgstr "'%s' filter:" #~ msgid "Filter" #~ msgstr "Filter" #~ msgid "%s branch" #~ msgstr "%s branch" #~ msgid "Branch '%s'" #~ msgstr "Branch '%s'" #~ msgid "merges" #~ msgstr "merges" #~ msgid "only Merges" #~ msgstr "only Merges" #~ msgid "revision ancestry" #~ msgstr "revision ancestry" #~ msgid "Ancestry of %s" #~ msgstr "Ancestry of %s" #~ msgid "tagged revisions" #~ msgstr "tagged revisions" #~ msgid "Tagged Revisions" #~ msgstr "Tagged Revisions" #~ msgid "working parents" #~ msgstr "working parents" #~ msgid "heads" #~ msgstr "heads" #~ msgid "no Merges" #~ msgstr "no Merges" #~ msgid "Current patch: %s, " #~ msgstr "Current patch: %s, " #~ msgid "%(count)d of %(total)d applied patches" #~ msgstr "%(count)d of %(total)d applied patches" #~ msgid "Visualize Change" #~ msgstr "Visualise Change" #~ msgid "Diff to Local" #~ msgstr "Diff to Local" #~ msgid "_Copy Hash" #~ msgstr "_Copy Hash" #~ msgid "Pull to Here" #~ msgstr "Pull to Here" #~ msgid "Push to Here" #~ msgstr "Push to Here" #~ msgid "_Update..." #~ msgstr "_Update..." #~ msgid "_Merge with..." #~ msgstr "_Merge with..." #~ msgid "Backout..." #~ msgstr "Backout..." #~ msgid "_Revert" #~ msgstr "_Revert" #~ msgid "Export" #~ msgstr "Export" #~ msgid "Tag" #~ msgstr "Tag" #~ msgid "Mercurial Queues" #~ msgstr "Mercurial Queues" #~ msgid "Transp_lant to Local" #~ msgstr "Transp_lant to Local" #~ msgid "Bisect" #~ msgstr "Bisect" #~ msgid "_Export Patch..." #~ msgstr "_Export Patch..." #~ msgid "E_mail Patch..." #~ msgstr "E_mail Patch..." #~ msgid "_Bundle rev:tip..." #~ msgstr "_Bundle rev:tip..." #~ msgid "_Archive..." #~ msgstr "_Archive..." #~ msgid "Add/Remove _Tag..." #~ msgstr "Add/Remove _Tag..." #~ msgid "Add/Move/Remove B_ookmark..." #~ msgstr "Add/Move/Remove B_ookmark..." #~ msgid "Rename Bookmark..." #~ msgstr "Rename Bookmark..." #~ msgid "Import Revision to MQ" #~ msgstr "Import Revision to MQ" #~ msgid "Strip Revision..." #~ msgstr "Strip Revision..." #~ msgid "Reset" #~ msgstr "Reset" #~ msgid "Mark as Good" #~ msgstr "Mark as Good" #~ msgid "Mark as Bad" #~ msgstr "Mark as Bad" #~ msgid "Skip Testing" #~ msgstr "Skip Testing" #~ msgid "_Diff with selected" #~ msgstr "_Diff with selected" #~ msgid "Visual Diff with selected" #~ msgstr "Visual Diff with selected" #~ msgid "Email from here to selected..." #~ msgstr "E-mail from here to selected..." #~ msgid "Bundle from here to selected..." #~ msgstr "Bundle from here to selected..." #~ msgid "Export Patches from here to selected..." #~ msgstr "Export Patches from here to selected..." #~ msgid "Transplant Revision range to local" #~ msgstr "Transplant Revision range to local" #~ msgid "Rebase on top of selected" #~ msgstr "Rebase on top of selected" #~ msgid "Import from here to selected to MQ" #~ msgstr "Import from here to selected to MQ" #~ msgid "Select common ancestor revision" #~ msgstr "Select common ancestor revision" #~ msgid "Load more" #~ msgstr "Load more" #~ msgid "load more revisions" #~ msgstr "load more revisions" #~ msgid "Load all" #~ msgstr "Load all" #~ msgid "load all revisions" #~ msgstr "load all revisions" #~ msgid "Download and view incoming changesets" #~ msgstr "Download and view incoming changesets" #~ msgid "Accept changes from Bundle preview" #~ msgstr "Accept changes from Bundle preview" #~ msgid "Reject changes from Bundle preview" #~ msgstr "Reject changes from Bundle preview" #~ msgid "Pull incoming changesets" #~ msgstr "Pull incoming changesets" #~ msgid "Import patches" #~ msgstr "Import patches" #~ msgid "Determine and mark outgoing changesets" #~ msgstr "Determine and mark outgoing changesets" #~ msgid "Push outgoing changesets" #~ msgstr "Push outgoing changesets" #~ msgid "Email outgoing changesets" #~ msgstr "E-mail outgoing changesets" #~ msgid "Stop current transaction" #~ msgstr "Stop current transaction" #~ msgid "After Pull:" #~ msgstr "After Pull:" #~ msgid "Nothing" #~ msgstr "Nothing" #~ msgid "Fetch" #~ msgstr "Fetch" #~ msgid "Configure aliases and after pull behavior" #~ msgstr "Configure aliases and after pull behaviour" #~ msgid "Applying bundle..." #~ msgstr "Applying bundle..." #~ msgid "Applying bundle" #~ msgstr "Applying bundle" #~ msgid "No remote path specified" #~ msgstr "No remote path specified" #~ msgid "Please enter or select a remote path" #~ msgstr "Please enter or select a remote path" #~ msgid "%d incoming changesets" #~ msgstr "%d incoming changesets" #~ msgid "Aborted incoming" #~ msgstr "Aborted incoming" #~ msgid "No incoming changesets" #~ msgstr "No incoming changesets" #~ msgid "Checking incoming changesets..." #~ msgstr "Checking incoming changesets..." #~ msgid "Accept incoming previewed changesets" #~ msgstr "Accept incoming previewed changesets" #~ msgid "Reject incoming previewed changesets" #~ msgstr "Reject incoming previewed changesets" #~ msgid "Reject" #~ msgstr "Reject" #~ msgid "Bundle Preview" #~ msgstr "Bundle Preview" #~ msgid "Open Bundle" #~ msgstr "Open Bundle" #~ msgid "Finished pull with rebase" #~ msgstr "Finished pull with rebase" #~ msgid "Finished pull" #~ msgstr "Finished pull" #~ msgid "No changesets to pull" #~ msgstr "No changesets to pull" #~ msgid "Aborted pull" #~ msgstr "Aborted pull" #~ msgid "Pulling changesets..." #~ msgstr "Pulling changesets..." #~ msgid "Aborted outgoing" #~ msgstr "Aborted outgoing" #~ msgid "Checking outgoing changesets..." #~ msgstr "Checking outgoing changesets..." #~ msgid "No repository selected" #~ msgstr "No repository selected" #~ msgid "Select a peer repository to compare with" #~ msgstr "Select a peer repository to compare with" #~ msgid "Confirm Forced Push to Remote Repository" #~ msgstr "Confirm Forced Push to Remote Repository" #~ msgid "" #~ "Forced push to remote repository\n" #~ "%s\n" #~ "(creating new heads in remote if needed)?" #~ msgstr "" #~ "Forced push to remote repository\n" #~ "%s\n" #~ "(creating new heads in remote if needed)?" #~ msgid "Forced &Push" #~ msgstr "Forced &Push" #~ msgid "&Push" #~ msgstr "&Push" #~ msgid "Confirm Forced Push" #~ msgstr "Confirm Forced Push" #~ msgid "" #~ "Forced push to repository\n" #~ "%s\n" #~ "(creating new heads if needed)?" #~ msgstr "" #~ "Forced push to repository\n" #~ "%s\n" #~ "(creating new heads if needed)?" #~ msgid "Finished push" #~ msgstr "Finished push" #~ msgid "Aborted push" #~ msgstr "Aborted push" #~ msgid "Pushing changesets..." #~ msgstr "Pushing changesets..." #~ msgid "unknown dnd dest: %s" #~ msgstr "unknown dnd dest: %s" #~ msgid "Confirm Revert All Files" #~ msgstr "Confirm Revert All Files" #~ msgid "" #~ "Revert all files to revision %d?\n" #~ "This will overwrite your local changes" #~ msgstr "" #~ "Revert all files to revision %d?\n" #~ "This will overwrite your local changes" #~ msgid "Save patches to" #~ msgstr "Save patches to" #~ msgid "Write bundle to" #~ msgstr "Write bundle to" #~ msgid "Bundling from %(base)s to %(rev)s..." #~ msgstr "Bundling from %(base)s to %(rev)s..." #~ msgid "Bundling from %(base)s to tip..." #~ msgstr "Bundling from %(base)s to tip..." #~ msgid "Finish bundling" #~ msgstr "Finish bundling" #~ msgid "Aborted bundling" #~ msgstr "Aborted bundling" #~ msgid "Failed to bundle" #~ msgstr "Failed to bundle" #~ msgid "Bundling" #~ msgstr "Bundling" #~ msgid "Finish importing" #~ msgstr "Finish importing" #~ msgid "Aborted importing" #~ msgstr "Aborted importing" #~ msgid "Failed to import" #~ msgstr "Failed to import" #~ msgid "Importing" #~ msgstr "Importing" #~ msgid "Importing to Patch Queue..." #~ msgstr "Importing to Patch Queue..." #~ msgid "Confirm Rebase Revision" #~ msgstr "Confirm Rebase Revision" #~ msgid "Rebase revision %d on top of %d?" #~ msgstr "Rebase revision %d on top of %d?" #~ msgid "Finished push to revision %s" #~ msgstr "Finished push to revision %s" #~ msgid "Pushing changesets to revision %s..." #~ msgstr "Pushing changesets to revision %s..." #~ msgid "Push to %s" #~ msgstr "Push to %s" #~ msgid "Finished pull to revision %s" #~ msgstr "Finished pull to revision %s" #~ msgid "Pulling changesets to revision %s..." #~ msgstr "Pulling changesets to revision %s..." #~ msgid "Pull to %s" #~ msgstr "Pull to %s" #~ msgid "Save patch to" #~ msgstr "Save patch to" #~ msgid "%(count)d of %(total)d Revisions" #~ msgstr "%(count)d of %(total)d Revisions" #~ msgid "Repository is empty" #~ msgstr "Repository is empty" #~ msgid "ID" #~ msgstr "ID" #~ msgid "Rev/ID" #~ msgstr "Rev/ID" #~ msgid "Universal Date" #~ msgstr "Universal Date" #~ msgid "Merging in %s" #~ msgstr "Merging in %s" #~ msgid "Must supply a target revision" #~ msgstr "Must supply a target revision" #~ msgid "Outstanding uncommitted changes" #~ msgstr "Outstanding uncommitted changes" #~ msgid "Merge target (other)" #~ msgstr "Merge target (other)" #~ msgid "Current revision (local)" #~ msgstr "Current revision (local)" #~ msgid "Discard all changes from merge target (other) revision" #~ msgstr "Discard all changes from merge target (other) revision" #~ msgid "Undo" #~ msgstr "Undo" #~ msgid "Merged successfully" #~ msgstr "Merged successfully" #~ msgid "Canceled merging" #~ msgstr "Cancelled merging" #~ msgid "Failed to merge" #~ msgstr "Failed to merge" #~ msgid "Undo successfully" #~ msgstr "Undo successfully" #~ msgid "Canceled undo" #~ msgstr "Cancelled undo" #~ msgid "Failed to undo" #~ msgstr "Failed to undo" #~ msgid "" #~ "To complete merging, you need to commit merged files in working " #~ "directory.\n" #~ "\n" #~ "Do you want to exit?" #~ msgstr "" #~ "To complete merging you need to commit merged files in working " #~ "directory.\n" #~ "\n" #~ "Do you want to exit?" #~ msgid "Cannot merge" #~ msgstr "Cannot merge" #~ msgid "Uncommitted local changes" #~ msgstr "Uncommitted local changes" #~ msgid "Confirm undo merge" #~ msgstr "Confirm undo merge" #~ msgid "Clean checkout of original revision?" #~ msgstr "Clean checkout of original revision?" #~ msgid "Changelist:" #~ msgstr "Changelist:" #~ msgid "Submit" #~ msgstr "Submit" #~ msgid "Canceled" #~ msgstr "Cancelled" #~ msgid "Failed" #~ msgstr "Failed" #~ msgid "Select files to add" #~ msgstr "Select files to add" #~ msgid "Select files to forget" #~ msgstr "Select files to forget" #~ msgid "Select files to revert" #~ msgstr "Select files to revert" #~ msgid "Select files to remove" #~ msgstr "Select files to remove" #~ msgid "Toggle all selections" #~ msgstr "Toggle all selections" #~ msgid "Successfully" #~ msgstr "Successfully" #~ msgid "%s - recovery" #~ msgstr "%s - recovery" #~ msgid "Stop the hg operation" #~ msgstr "Stop the hg operation" #~ msgid "Clean checkout, undo all changes" #~ msgstr "Clean checkout, undo all changes" #~ msgid "Rollback" #~ msgstr "Rollback" #~ msgid "Rollback (undo) last transaction to repository (pull, commit, etc)" #~ msgstr "Rollback (undo) last transaction to repository (pull, commit, etc)" #~ msgid "Recover" #~ msgstr "Recover" #~ msgid "Recover from interrupted operation" #~ msgstr "Recover from interrupted operation" #~ msgid "Verify" #~ msgstr "Verify" #~ msgid "Validate repository consistency" #~ msgstr "Validate repository consistency" #~ msgid "Cannot close now" #~ msgstr "Cannot close now" #~ msgid "command is running" #~ msgstr "command is running" #~ msgid "Confirm clean repository" #~ msgstr "Confirm clean repository" #~ msgid "Clean repository '%s' ?" #~ msgstr "Clean repository '%s' ?" #~ msgid "Confirm rollback repository" #~ msgstr "Confirm rollback repository" #~ msgid "Rollback repository '%s' ?" #~ msgstr "Rollback repository '%s' ?" #~ msgid "[command interrupted]" #~ msgstr "[command interrupted]" #~ msgid "Rename " #~ msgstr "Rename " #~ msgid "rename error" #~ msgstr "rename error" #~ msgid "Start server" #~ msgstr "Start server" #~ msgid "Stop server" #~ msgstr "Stop server" #~ msgid "Browse" #~ msgstr "Browse" #~ msgid "Launch browser to view repository" #~ msgstr "Launch browser to view repository" #~ msgid "Configure web settings" #~ msgstr "Configure web settings" #~ msgid "HTTP Port:" #~ msgstr "HTTP Port:" #~ msgid "%s - serve" #~ msgstr "%s - serve" #~ msgid "%s serve - %s" #~ msgstr "%s serve - %s" #~ msgid " - serve" #~ msgstr " - serve" #~ msgid "Confirm Really Exit?" #~ msgstr "Confirm Really Exit?" #~ msgid "" #~ "Server process is still running\n" #~ "Exiting will stop the server." #~ msgstr "" #~ "Server process is still running\n" #~ "Exiting will stop the server." #~ msgid "Abort: %s\n" #~ msgstr "Abort: %s\n" #~ msgid "Invalid port 2048..65535" #~ msgstr "Invalid port 2048..65535" #~ msgid "Defaulting to " #~ msgstr "Defaulting to " #~ msgid "cannot start server: " #~ msgstr "cannot start server: " #~ msgid "listening at http://%s%s/%s (%s:%d)\n" #~ msgstr "listening at http://%s%s/%s (%s:%d)\n" #~ msgid "name of access log file to write to" #~ msgstr "name of access log file to write to" #~ msgid "run server in background" #~ msgstr "run server in background" #~ msgid "used internally by daemon mode" #~ msgstr "used internally by daemon mode" #~ msgid "name of error log file to write to" #~ msgstr "name of error log file to write to" #~ msgid "port to use (default: 8000)" #~ msgstr "port to use (default: 8000)" #~ msgid "address to use" #~ msgstr "address to use" #~ msgid "prefix path to serve from (default: server root)" #~ msgstr "prefix path to serve from (default: server root)" #~ msgid "name to show in web pages (default: working dir)" #~ msgstr "name to show in web pages (default: working dir)" #~ msgid "name of file to write process ID to" #~ msgstr "name of file to write process ID to" #~ msgid "for remote clients" #~ msgstr "for remote clients" #~ msgid "web templates to use" #~ msgstr "web templates to use" #~ msgid "template style to use" #~ msgstr "template style to use" #~ msgid "use IPv6 in addition to IPv4" #~ msgstr "use IPv6 in addition to IPv4" #~ msgid "SSL certificate file" #~ msgstr "SSL certificate file" #~ msgid "hg serve [OPTION]..." #~ msgstr "hg serve [OPTION]..." #~ msgid "TortoiseHg Shell Configuration" #~ msgstr "TortoiseHg Shell Configuration" #~ msgid "Apply" #~ msgstr "Apply" #~ msgid "Enable overlays" #~ msgstr "Enable overlays" #~ msgid "<- Top" #~ msgstr "<- Top" #~ msgid "Sub ->" #~ msgstr "Sub ->" #~ msgid "Show the taskbar icon (restart needed)" #~ msgstr "Show the taskbar icon (restart needed)" #~ msgid "Highlight the taskbar icon during activity" #~ msgstr "Highlight the taskbar icon during activity" #~ msgid "filtered status" #~ msgstr "filtered status" #~ msgid "Save As" #~ msgstr "Save As" #~ msgid "Save selected changes" #~ msgstr "Save selected changes" #~ msgid "Visual diff checked files" #~ msgstr "Visual diff checked files" #~ msgid "Revert checked files" #~ msgstr "Revert checked files" #~ msgid "Add checked files" #~ msgstr "Add checked files" #~ msgid "Move checked files to other directory" #~ msgstr "Move checked files to other directory" #~ msgid "Remove or delete checked files" #~ msgstr "Remove or delete checked files" #~ msgid "Forget checked files on next commit" #~ msgstr "Forget checked files on next commit" #~ msgid "refresh" #~ msgstr "refresh" #~ msgid "st" #~ msgstr "st" #~ msgid "ms" #~ msgstr "ms" #~ msgid "View" #~ msgstr "View" #~ msgid "Text Diff" #~ msgstr "Text Diff" #~ msgid "Hunk Selection" #~ msgstr "Hunk Selection" #~ msgid "%d selected, %d total" #~ msgstr "%d selected, %d total" #~ msgid "Save Preview" #~ msgstr "Save Preview" #~ msgid "Shelf Preview" #~ msgstr "Shelf Preview" #~ msgid "?: unknown" #~ msgstr "?: unknown" #~ msgid "M: modified" #~ msgstr "M: modified" #~ msgid "I: ignored" #~ msgstr "I: ignored" #~ msgid "A: added" #~ msgstr "A: added" #~ msgid "C: clean" #~ msgstr "C: clean" #~ msgid "R: removed" #~ msgstr "R: removed" #~ msgid "!: deleted" #~ msgstr "!: deleted" #~ msgid "S: subrepo" #~ msgstr "S: subrepo" #~ msgid "View '%s'" #~ msgstr "View '%s'" #~ msgid "Rename file to:" #~ msgstr "Rename file to:" #~ msgid "Copy file to" #~ msgstr "Copy file to" #~ msgid "Nothing Removed" #~ msgstr "Nothing Removed" #~ msgid "Remove is not enabled when multiple revisions are specified." #~ msgstr "Remove is not enabled when multiple revisions are specified." #~ msgid "Move is not enabled when multiple revisions are specified." #~ msgstr "Move is not enabled when multiple revisions are specified." #~ msgid "Nothing Moved" #~ msgstr "Nothing Moved" #~ msgid "Copy is not enabled when multiple revisions are specified." #~ msgstr "Copy is not enabled when multiple revisions are specified." #~ msgid "Nothing Copied" #~ msgstr "Nothing Copied" #~ msgid "===== Diff to first parent %d:%s =====\n" #~ msgstr "===== Diff to first parent %d:%s =====\n" #~ msgid "" #~ "\n" #~ "===== Diff to second parent %d:%s =====\n" #~ msgstr "" #~ "\n" #~ "===== Diff to second parent %d:%s =====\n" #~ msgid "File is larger than the specified max size.\n" #~ msgstr "File is larger than the specified max size.\n" #~ msgid "Hunk selection is disabled for this file.\n" #~ msgstr "Hunk selection is disabled for this file.\n" #~ msgid "Nothing Diffed" #~ msgstr "Nothing Diffed" #~ msgid "No diffable files selected" #~ msgstr "No diffable files selected" #~ msgid "Nothing Reverted" #~ msgstr "Nothing Reverted" #~ msgid "No revertable files selected" #~ msgstr "No revertable files selected" #~ msgid "Revert not allowed when viewing revision range." #~ msgstr "Revert not allowed when viewing revision range." #~ msgid "&Yes (backup changes)" #~ msgstr "&Yes (backup changes)" #~ msgid "Yes (&discard changes)" #~ msgstr "Yes (&discard changes)" #~ msgid "Nothing Added" #~ msgstr "Nothing Added" #~ msgid "No addable files selected" #~ msgstr "No addable files selected" #~ msgid "No removable files selected" #~ msgstr "No removable files selected" #~ msgid "Move files to directory..." #~ msgstr "Move files to directory..." #~ msgid "Cannot move outside repo!" #~ msgstr "Cannot move outside repo!" #~ msgid "" #~ "No movable files selected\n" #~ "\n" #~ "Note: only clean files can be moved." #~ msgstr "" #~ "No movable files selected\n" #~ "\n" #~ "Note: only clean files can be moved." #~ msgid "Nothing Forgotten" #~ msgstr "Nothing Forgotten" #~ msgid "No clean files selected" #~ msgstr "No clean files selected" #~ msgid "Confirm Delete Unrevisioned" #~ msgstr "Confirm Delete Unrevisioned" #~ msgid "Delete the following unrevisioned files?" #~ msgstr "Delete the following unrevisioned files?" #~ msgid "Delete Errors" #~ msgstr "Delete Errors" #~ msgid "View missing" #~ msgstr "View missing" #~ msgid "View other" #~ msgstr "View other" #~ msgid "_Guess Rename..." #~ msgstr "_Guess Rename..." #~ msgid "_Ignore" #~ msgstr "_Ignore" #~ msgid "Remove versioned" #~ msgstr "Remove versioned" #~ msgid "_Delete unversioned" #~ msgstr "_Delete unversioned" #~ msgid "_Copy..." #~ msgstr "_Copy..." #~ msgid "Rename..." #~ msgstr "Rename..." #~ msgid "Restart Merge..." #~ msgstr "Restart Merge..." #~ msgid "Mark unresolved" #~ msgstr "Mark unresolved" #~ msgid "Mark resolved" #~ msgstr "Mark resolved" #~ msgid "Restart merge with" #~ msgstr "Restart merge with" #~ msgid "not up to date" #~ msgstr "not up to date" #~ msgid "" #~ "The parents have changed since the last refresh.\n" #~ "Continue anyway?" #~ msgstr "" #~ "The parents have changed since the last refresh.\n" #~ "Continue anyway?" #~ msgid "unknown field name: %s" #~ msgstr "unknown field name: %s" #~ msgid "invalid pack direction: %s" #~ msgstr "invalid pack direction: %s" #~ msgid "invalid alignment value: %s" #~ msgstr "invalid alignment value: %s" #~ msgid "%s - synchronize" #~ msgstr "%s - synchronise" #~ msgid "Display changes that can be pulled from selected repository" #~ msgstr "Display changes that can be pulled from selected repository" #~ msgid " Pull " #~ msgstr " Pull " #~ msgid "Pull changes from selected repository" #~ msgstr "Pull changes from selected repository" #~ msgid "Push local changes to selected repository" #~ msgstr "Push local changes to selected repository" #~ msgid "Email local outgoing changes to one or more recipients" #~ msgstr "E-mail local outgoing changes to one or more recipients" #~ msgid "Shelve uncommited changes" #~ msgstr "Shelve uncommited changes" #~ msgid "Configure peer repository paths" #~ msgstr "Configure peer repository paths" #~ msgid "Repo:" #~ msgstr "Repo:" #~ msgid "Bundle:" #~ msgstr "Bundle:" #~ msgid "Advanced Options" #~ msgstr "Advanced Options" #~ msgid "Force pull or push" #~ msgstr "Force pull or push" #~ msgid "Run even when remote repository is unrelated." #~ msgstr "Run even when remote repository is unrelated." #~ msgid "Target revision:" #~ msgstr "Target revision:" #~ msgid "A specific revision up to which you would like to push or pull." #~ msgstr "A specific revision up to which you would like to push or pull." #~ msgid "Name of hg executable on remote machine." #~ msgstr "Name of hg executable on remote machine." #~ msgid "Incoming/Outgoing" #~ msgstr "Incoming/Outgoing" #~ msgid "Show patches" #~ msgstr "Show patches" #~ msgid "Show newest first" #~ msgstr "Show newest first" #~ msgid "Show no merges" #~ msgstr "Show no merges" #~ msgid "Update to branch tip" #~ msgstr "Update to branch tip" #~ msgid "unknown sort key '%s'" #~ msgstr "unknown sort key '%s'" #~ msgid "Select Bundle" #~ msgstr "Select Bundle" #~ msgid "Bundle (*.hg)" #~ msgstr "Bundle (*.hg)" #~ msgid "Bundle (*)" #~ msgstr "Bundle (*)" #~ msgid "Toggle _Wordwrap" #~ msgstr "Toggle _Wordwrap" #~ msgid "Tag is local" #~ msgstr "Tag is local" #~ msgid "Replace existing tag" #~ msgstr "Replace existing tag" #~ msgid "Tag input is empty" #~ msgstr "Tag input is empty" #~ msgid "Please enter tag name" #~ msgstr "Please enter tag name" #~ msgid "Custom commit message is empty" #~ msgstr "Custom commit message is empty" #~ msgid "Tagging completed" #~ msgstr "Tagging completed" #~ msgid "Tag \"%s\" has been added" #~ msgstr "Tag \"%s\" has been added" #~ msgid "Error in tagging" #~ msgstr "Error in tagging" #~ msgid "Tag name is empty" #~ msgstr "Tag name is empty" #~ msgid "Please select tag name to remove" #~ msgstr "Please select tag name to remove" #~ msgid "Tag \"%s\" has been removed" #~ msgstr "Tag \"%s\" has been removed" #~ msgid "a tag named \"%s\" already exists" #~ msgstr "a tag named \"%s\" already exists" #~ msgid "Tag '%s' already exist" #~ msgstr "Tag '%s' already exist" #~ msgid "" #~ "Graphical merge program for resolving merge conflicts. If left " #~ "unspecified, Mercurial will use the first applicable tool it finds on " #~ "your system or use its internal merge tool that leaves conflict markers " #~ "in place. Chose internal:merge to force conflict markers, internal:" #~ "prompt to always select local or other, or internal:dump to leave files " #~ "in the working directory for manual merging" #~ msgstr "" #~ "Graphical merge program for resolving merge conflicts. If left " #~ "unspecified Mercurial will use the first applicable tool it finds on your " #~ "system or use its internal merge tool that leaves conflict markers in " #~ "place. Chose internal:merge to force conflict markers, internal:prompt " #~ "to always select local or other, or internal:dump to leave files in the " #~ "working directory for manual merging" #~ msgid "Specify the visual editor used to view files, etc" #~ msgstr "Specify the visual editor used to view files, etc" #~ msgid "" #~ "The editor to use during a commit and other instances where Mercurial " #~ "needs multiline input from the user. Used by command line commands, " #~ "including patch import." #~ msgstr "" #~ "The editor to use during a commit and other instances where Mercurial " #~ "needs multiline input from the user. Used by command line commands, " #~ "including patch import." #~ msgid "" #~ "Specify the number of spaces that tabs expand to in various TortoiseHg " #~ "windows. Default: Not expanded" #~ msgstr "" #~ "Specify the number of spaces that tabs expand to in various TortoiseHg " #~ "windows. Default: Not expanded" #~ msgid "Bottom Diffs" #~ msgstr "Bottom Diffs" #~ msgid "" #~ "Show the diff panel below the file list in status, shelve, and commit " #~ "dialogs. Default: False (show diffs to right of file list)" #~ msgstr "" #~ "Show the diff panel below the file list in status, shelve, and commit " #~ "dialogues. Default: False (show diffs to right of file list)" #~ msgid "Capture stderr" #~ msgstr "Capture stderr" #~ msgid "" #~ "Redirect stderr to a buffer which is parsed at the end of the process for " #~ "runtime errors. Default: True" #~ msgstr "" #~ "Redirect stderr to a buffer which is parsed at the end of the process for " #~ "runtime errors. Default: True" #~ msgid "Fork hgtk" #~ msgstr "Fork hgtk" #~ msgid "Name associated with commits" #~ msgstr "Name associated with commits" #~ msgid "" #~ "Maximum length of the commit message summary line. If set, TortoiseHg " #~ "will issue a warning if the summary line is too long or not separated by " #~ "a blank line. Default: 0 (unenforced)" #~ msgstr "" #~ "Maximum length of the commit message summary line. If set, TortoiseHg " #~ "will issue a warning if the summary line is too long or not separated by " #~ "a blank line. Default: 0 (unenforced)" #~ msgid "Message Line Length" #~ msgstr "Message Line Length" #~ msgid "" #~ "Color changesets by author name. If not enabled, the changes are colored " #~ "green for merge, red for non-trivial parents, black for normal. Default: " #~ "False" #~ msgstr "" #~ "Colour changesets by author name. If not enabled, the changes are " #~ "coloured green for merge, red for non-trivial parents, black for normal. " #~ "Default: False" #~ msgid "" #~ "If true, concatenate multiple lines of changeset summary until they reach " #~ "80 characters. Default: False" #~ msgstr "" #~ "If true, concatenate multiple lines of changeset summary until they reach " #~ "80 characters. Default: False" #~ msgid "Use Expander" #~ msgstr "Use Expander" #~ msgid "Show changeset details with an expander" #~ msgstr "Show changeset details with an expander" #~ msgid "Toolbar Style" #~ msgstr "Toolbar Style" #~ msgid "" #~ "Repository name to use in the web interface. Default is the working " #~ "directory." #~ msgstr "" #~ "Repository name to use in the web interface. Default is the working " #~ "directory." #~ msgid "Maximum number of files to list per changeset." #~ msgstr "Maximum number of files to list per changeset." #~ msgid "Maximum number of changes to list on the changelog." #~ msgstr "Maximum number of changes to list on the changelog." #~ msgid "Character encoding name" #~ msgstr "Character encoding name" #~ msgid "Connect to mail server using TLS. Default: False" #~ msgstr "Connect to mail server using TLS. Default: False" #~ msgid "Ignore white space when comparing lines. Default: False" #~ msgstr "Ignore white space when comparing lines. Default: False" #~ msgid "Ignore changes in the amount of white space. Default: False" #~ msgstr "Ignore changes in the amount of white space. Default: False" #~ msgid "Ignore changes whose lines are all blank. Default: False" #~ msgstr "Ignore changes whose lines are all blank. Default: False" #~ msgid "Coloring Style" #~ msgstr "Colouring Style" #~ msgid "" #~ "Adjust the coloring style of diff lines in the changeset viewer. Default: " #~ "foreground" #~ msgstr "" #~ "Adjust the colouring style of diff lines in the changeset viewer. " #~ "Default: foreground" #~ msgid "http" #~ msgstr "http" #~ msgid "ssh" #~ msgstr "ssh" #~ msgid "https" #~ msgstr "https" #~ msgid "Edit remote repository path" #~ msgstr "Edit remote repository path" #~ msgid "Folder" #~ msgstr "Folder" #~ msgid "URL Details" #~ msgstr "URL Details" #~ msgid "Select Local Folder" #~ msgstr "Select Local Folder" #~ msgid "Alias name is empty" #~ msgstr "Alias name is empty" #~ msgid "Please enter alias name" #~ msgstr "Please enter alias name" #~ msgid "Overwrite existing '%s' path?" #~ msgstr "Overwrite existing '%s' path?" #~ msgid "User global settings" #~ msgstr "User global settings" #~ msgid "" #~ "Default language for spell check. System language is used if not " #~ "specified. Examples: en, en_GB, en_US" #~ msgstr "" #~ "Default language for spell check. System language is used if not " #~ "specified. Examples: en, en_GB, en_US" #~ msgid "Diff" #~ msgstr "Diff" #~ msgid "TortoiseHg Configure Repository - " #~ msgstr "TortoiseHg Configure Repository - " #~ msgid "TortoiseHg Configure User-Global Settings" #~ msgstr "TortoiseHg Configure User-Global Settings" #~ msgid "Exit after saving changes?" #~ msgstr "Exit after saving changes?" #~ msgid "No Repository Found" #~ msgstr "No Repository Found" #~ msgid "Path testing cannot work without a repository" #~ msgstr "Path testing cannot work without a repository" #~ msgid "Remote repository paths" #~ msgstr "Remote repository paths" #~ msgid "Repository Path" #~ msgstr "Repository Path" #~ msgid "_Edit" #~ msgstr "_Edit" #~ msgid "_Test" #~ msgstr "_Test" #~ msgid "Set as _default" #~ msgstr "Set as _default" #~ msgid "Suggested" #~ msgstr "Suggested" #~ msgid "History" #~ msgstr "History" #~ msgid "Insufficient access rights, reverting to read-onlymode." #~ msgstr "Insufficient access rights, reverting to read-only mode." #~ msgid "Unable to parse a config file" #~ msgstr "Unable to parse a config file" #~ msgid "" #~ "%s\n" #~ "Reverting to read-only mode." #~ msgstr "" #~ "%s\n" #~ "Reverting to read-only mode." #~ msgid "Skipped saving path with no alias" #~ msgstr "Skipped saving path with no alias" #~ msgid "Import" #~ msgstr "Import" #~ msgid "Imported successfully" #~ msgstr "Imported successfully" #~ msgid "Canceled importing" #~ msgstr "Cancelled importing" #~ msgid "Confirm Close" #~ msgstr "Confirm Close" #~ msgid "Do you want to close?" #~ msgstr "Do you want to close?" #~ msgid "Select Patches" #~ msgstr "Select Patches" #~ msgid "Select Directory contains patches:" #~ msgstr "Select Directory contains patches:" #~ msgid "%s will be imported to the" #~ msgstr "%s will be imported to the" #~ msgid "%s will be imported to the repository" #~ msgstr "%s will be imported to the repository" #~ msgid "unexpected destination name: %s" #~ msgstr "unexpected destination name: %s" #~ msgid "Unapply last patch" #~ msgstr "Unapply last patch" #~ msgid "Apply next patch" #~ msgstr "Apply next patch" #~ msgid "#" #~ msgstr "#" #~ msgid "Patch" #~ msgstr "Patch" #~ msgid "Yes (&keep)" #~ msgstr "Yes (&keep)" #~ msgid "Confirm Fold" #~ msgstr "Confirm Fold" #~ msgid "" #~ "Do you want to fold un-applied patch '%(target)s' into current patch " #~ "'%(qtip)s'?" #~ msgstr "" #~ "Do you want to fold un-applied patch '%(target)s' into current patch " #~ "'%(qtip)s'?" #~ msgid "_Goto" #~ msgstr "_Goto" #~ msgid "_Rename" #~ msgstr "_Rename" #~ msgid "_Finish Applied" #~ msgstr "_Finish Applied" #~ msgid "_Delete" #~ msgstr "_Delete" #~ msgid "F_old" #~ msgstr "F_old" #~ msgid "Top" #~ msgstr "Top" #~ msgid "Up" #~ msgstr "Up" #~ msgid "Down" #~ msgstr "Down" #~ msgid "Bottom" #~ msgstr "Bottom" #~ msgid "Enable editable cells" #~ msgstr "Enable editable cells" #~ msgid "Show 'qparent'" #~ msgstr "Show 'qparent'" #~ msgid "Succeed" #~ msgstr "Succeed" #~ msgid "set aside selected changes" #~ msgstr "set aside selected changes" #~ msgid "Unshelve" #~ msgstr "Unshelve" #~ msgid "restore shelved changes" #~ msgstr "restore shelved changes" #~ msgid "Shelf Contents" #~ msgstr "Shelf Contents" #~ msgid "_Shelve" #~ msgstr "_Shelve" #~ msgid "No changes to shelve" #~ msgstr "No changes to shelve" #~ msgid "Please select diff chunks to shelve" #~ msgstr "Please select diff chunks to shelve" #~ msgid "Shelve file exists!" #~ msgstr "Shelve file exists!" #~ msgid "Unshelve Error" #~ msgstr "Unshelve Error" #~ msgid "Backup all (default)" #~ msgstr "Backup all (default)" #~ msgid "Backup unrelated changesets (-b/--backup)" #~ msgstr "Backup unrelated changesets (-b/--backup)" #~ msgid "Strip" #~ msgstr "Strip" #~ msgid "Stripped successfully" #~ msgstr "Stripped successfully" #~ msgid "Canceled stripping" #~ msgstr "Cancelled stripping" #~ msgid "Failed to strip" #~ msgstr "Failed to strip" #~ msgid "%s changesets" #~ msgstr "%s changesets" #~ msgid "%s will be stripped" #~ msgstr "%s will be stripped" #~ msgid "" #~ "Detected uncommitted local changes.\n" #~ "Do you want to discard them and continue?" #~ msgstr "" #~ "Detected uncommitted local changes.\n" #~ "Do you want to discard them and continue?" #~ msgid "&Yes (--force)" #~ msgstr "&Yes (--force)" #~ msgid "Saved at: %s" #~ msgstr "Saved at: %s" #~ msgid "Open..." #~ msgstr "Open..." #~ msgid "Always show log" #~ msgstr "Always show log" #~ msgid "Updated successfully" #~ msgstr "Updated successfully" #~ msgid "Failed to update" #~ msgstr "Failed to update" #~ msgid "" #~ "Detected uncommitted local changes in working tree.\n" #~ "Please select to continue:\n" #~ "\n" #~ msgstr "" #~ "Detected uncommitted local changes in working tree.\n" #~ "Please select to continue:\n" #~ "\n" #~ msgid "Shelve - launch Shelve tool and continue" #~ msgstr "Shelve - launch Shelve tool and continue" #~ msgid "[canceled by user]\n" #~ msgstr "[cancelled by user]\n" #~ msgid "invalid dialog result: %s" #~ msgstr "invalid dialogue result: %s" #~ msgid "cleaning up temp directory\n" #~ msgstr "cleaning up temp directory\n" #~ msgid "Visual Diffs" #~ msgstr "Visual Diffs" #~ msgid "changeset " #~ msgstr "changeset " #~ msgid "revisions %d to %d" #~ msgstr "revisions %d to %d" #~ msgid "Unable to delete temp files" #~ msgstr "Unable to delete temp files" #~ msgid "Close diff tools and try again, or quit to leak files?" #~ msgstr "Close diff tools and try again, or quit to leak files?" #~ msgid "&Quit" #~ msgstr "&Quit" #~ msgid "Try &Again" #~ msgstr "Try &Again" #~ msgid "No repository found here" #~ msgstr "No repository found here" #~ msgid "Unsupported line endings type: %s" #~ msgstr "Unsupported line endings type: %s" #~ msgid "unknown patch content: %r" #~ msgstr "unknown patch content: %r" #~ msgid "this modifies a binary file (all or nothing)\n" #~ msgstr "this modifies a binary file (all or nothing)\n" #~ msgid "this is a binary file\n" #~ msgstr "this is a binary file\n" #~ msgid "" #~ "total: %d hunks (%d changed lines); selected: %d hunks (%d changed lines)" #~ msgstr "" #~ "total: %d hunks (%d changed lines); selected: %d hunks (%d changed lines)" #~ msgid "%d hunks, %d lines changed\n" #~ msgstr "%d hunks, %d lines changed\n" #~ msgid "unhandled transition: %s -> %s" #~ msgstr "unhandled transition: %s -> %s" #~ msgid " [Ynsfdaq?] " #~ msgstr " [Ynsfdaq?] " #~ msgid "user quit" #~ msgstr "user quit" #~ msgid "shelve changes to %s?" #~ msgstr "shelve changes to %s?" #~ msgid " and " #~ msgstr " and " #~ msgid "shelve this change to %r?" #~ msgstr "shelve this change to %r?" #~ msgid "backup %r as %r\n" #~ msgstr "backup %r as %r\n" #~ msgid "shelve can only be run interactively" #~ msgstr "shelve can only be run interactively" #~ msgid "shelve data already exists" #~ msgstr "shelve data already exists" #~ msgid "no changes to shelve\n" #~ msgstr "no changes to shelve\n" #~ msgid "applying patch\n" #~ msgstr "applying patch\n" #~ msgid "saving patch to shelve\n" #~ msgstr "saving patch to shelve\n" #~ msgid "restoring %r to %r\n" #~ msgstr "restoring %r to %r\n" #~ msgid "removing shelve file\n" #~ msgstr "removing shelve file\n" #~ msgid "applying shelved patch\n" #~ msgstr "applying shelved patch\n" #~ msgid "restoring backup files\n" #~ msgstr "restoring backup files\n" #~ msgid "removing shelved patches\n" #~ msgstr "removing shelved patches\n" #~ msgid "unshelve completed\n" #~ msgstr "unshelve completed\n" #~ msgid "nothing to unshelve\n" #~ msgstr "nothing to unshelve\n" #~ msgid "mark new/missing files as added/removed before shelving" #~ msgstr "mark new/missing files as added/removed before shelving" #~ msgid "overwrite existing shelve data" #~ msgstr "overwrite existing shelve data" #~ msgid "append to existing shelve data" #~ msgstr "append to existing shelve data" #~ msgid "hg shelve [OPTION]... [FILE]..." #~ msgstr "hg shelve [OPTION]... [FILE]..." #~ msgid "inspect shelved changes only" #~ msgstr "inspect shelved changes only" #~ msgid "proceed even if patches do not unshelve cleanly" #~ msgstr "proceed even if patches do not unshelve cleanly" #~ msgid "hg unshelve [OPTION]... [FILE]..." #~ msgstr "hg unshelve [OPTION]... [FILE]..." #~ msgid "patching file %s\n" #~ msgstr "patching file %s\n" #~ msgid "bad hunk #%d %s (%d %d %d %d)" #~ msgstr "bad hunk #%d %s (%d %d %d %d)" #~ msgid "file %s already exists\n" #~ msgstr "file %s already exists\n" #~ msgid "Hunk #%d FAILED at %d\n" #~ msgstr "Hunk #%d FAILED at %d\n" #~ msgid "bad hunk #%d" #~ msgstr "bad hunk #%d" #~ msgid "bad hunk #%d old text line %d" #~ msgstr "bad hunk #%d old text line %d" #~ msgid "could not extract binary patch" #~ msgstr "could not extract binary patch" #~ msgid "binary patch is %d bytes, not %d" #~ msgstr "binary patch is %d bytes, not %d" #~ msgid "unable to strip away %d dirs from %s" #~ msgstr "unable to strip away %d dirs from %s" #~ msgid "unable to find %s or %s for patching" #~ msgstr "unable to find %s or %s for patching" #~ msgid "malformed patch %s %s" #~ msgstr "malformed patch %s %s" #~ msgid "No valid hunks found" #~ msgstr "No valid hunks found" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/en_GB.po0000644000000000000000000111330014440352353016577 0ustar00rootroot# English (United Kingdom) translation for tortoisehg # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the tortoisehg package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: English \n" "Language-Team: English (United Kingdom) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2019-07-17 05:45+0000\n" "X-Generator: Launchpad (build 19009)\n" msgid "TortoiseHg Overlay Icon Server" msgstr "TortoiseHg Overlay Icon Server" msgid "Exit" msgstr "Exit" msgid "About" msgstr "About" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "Several icons are courtesy of the TortoiseSVN and Tango projects" msgid "You can visit our site here" msgstr "You can visit our site here" msgid "&License" msgstr "&Licence" #, python-format msgid "version %s" msgstr "version %s" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "A new version of TortoiseHg (%s) is ready for download!" msgid "License" msgstr "Licence" msgid "= Working Directory Parent =" msgstr "= Working Directory Parent =" msgid "Directory of files" msgstr "Directory of files" msgid "Tar archives" msgstr "Tar archives" msgid "Uncompressed tar archive" msgstr "Uncompressed tar archive" msgid "Bzip2 tar archives" msgstr "Bzip2 tar archives" msgid "Tar archive compressed using bzip2" msgstr "Tar archive compressed using bzip2" msgid "Gzip tar archives" msgstr "Gzip tar archives" msgid "Tar archive compressed using gzip" msgstr "Tar archive compressed using gzip" msgid "Zip archives" msgstr "Zip archives" msgid "Uncompressed zip archive" msgstr "Uncompressed zip archive" msgid "Zip archive compressed using deflate" msgstr "Zip archive compressed using deflate" msgid "Revision:" msgstr "Revision:" msgid "All files in this revision" msgstr "All files in this revision" msgid "Only files modified/created in this revision" msgstr "Only files modified/created in this revision" msgid "Only files modified/created since:" msgstr "Only files modified/created since:" msgid "Archive Content:" msgstr "Archive Content:" msgid "Recurse into subrepositories" msgstr "Recurse into subrepositories" msgid "Browse..." msgstr "Browse..." msgid "Destination path:" msgstr "Destination path:" msgid "Archive types:" msgstr "Archive types:" msgid "Hg command:" msgstr "Hg command:" msgid "Select Destination Folder" msgstr "Select Destination Folder" msgid "Select Destination File" msgstr "Select Destination File" msgid "All files (*)" msgstr "All files (*)" msgid "Duplicate Name" msgstr "Duplicate Name" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "The destination \"%s\" already exists as a file!" msgid "Confirm Overwrite" msgstr "Confirm Overwrite" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "The destination \"%s\" already exists as a folder!" #, python-format msgid "Archive - %s" msgstr "Archive - %s" msgid "&Archive" msgstr "&Archive" msgid "Backout requires a parent revision" msgstr "Backout requires a parent revision" msgid "Cannot backout change on a different branch" msgstr "Cannot backout change on a different branch" #, python-format msgid "Backout - %s" msgstr "Backout - %s" msgid "Prepare to backout" msgstr "Prepare to backout" msgid "Verify backout revision and ensure your working directory is clean." msgstr "Verify backout revision and ensure your working directory is clean." msgid "Backing out a parent revision is a single step operation" msgstr "Backing out a parent revision is a single step operation" msgid "Backout revision" msgstr "Backout revision" msgid "Not a head, backout will create a new head!" msgstr "Not a head, backout will create a new head!" msgid "Current local revision" msgstr "Current local revision" msgid "Working directory status" msgstr "Working directory status" msgid "Checking..." msgstr "Checking..." msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" "Before backout, you must commit, shelve to patch, or discard changes." msgid "Automatically resolve merge conflicts where possible" msgstr "Automatically resolve merge conflicts where possible" msgid "Uncommitted local changes are detected" msgstr "Uncommitted local changes are detected" msgid "Clean" msgstr "Clean" msgid "Backing out, then merging..." msgstr "Backing out, then merging..." msgid "All conflicting files will be marked unresolved." msgstr "All conflicting files will be marked unresolved." msgid "Automatically advance to next page when backout and merge are complete." msgstr "" "Automatically advance to next page when backout and merge are complete." #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" "%d files have merge conflicts that must be resolved" msgid "No merge conflicts, ready to commit" msgstr "No merge conflicts, ready to commit" msgid "Commit backout and merge results" msgstr "Commit backout and merge results" msgid "Parents" msgstr "Parents" msgid "Working Directory" msgstr "Working Directory" msgid "Working Directory (merged)" msgstr "Working Directory (merged)" msgid "Commit message" msgstr "Commit message" msgid "Skip final confirmation page, close after commit." msgstr "Skip final confirmation page, close after commit." msgid "Backed out changeset: " msgstr "Backed out changeset: " msgid "Confirm Discard Message" msgstr "Confirm Discard Message" msgid "Discard current backout message?" msgstr "Discard current backout message?" msgid "Use English backout message" msgstr "Use English backout message" msgid "Backing out and committing..." msgstr "Backing out and committing..." msgid "Please wait while making backout." msgstr "Please wait while making backout." msgid "Committing..." msgstr "Committing..." msgid "Please wait while committing merged files." msgstr "Please wait while committing merged files." msgid "Finished" msgstr "Finished" msgid "Backout changeset" msgstr "Backout changeset" #, python-format msgid "Bisect - %s" msgstr "Bisect - %s" msgid "Accept" msgstr "Accept" msgid "Known good revision:" msgstr "Known good revision:" msgid "Known bad revision:" msgstr "Known bad revision:" msgid "Discard local changes (revert --all)" msgstr "Discard local changes (revert --all)" msgid "Revision is &Good" msgstr "Revision is &Good" msgid "Revision is &Bad" msgstr "Revision is &Bad" msgid "&Skip this Revision" msgstr "&Skip this Revision" msgid "Close" msgstr "Close" msgid "Error encountered." msgstr "Error encountered." msgid "Culprit found." msgstr "Culprit found." msgid "Revision" msgstr "Revision" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "Test this revision and report findings. (good/bad/skip)" #, python-format msgid "%s (hint: %s)" msgstr "%s (hint: %s)" msgid "Bookmark:" msgstr "Bookmark:" msgid "New Name:" msgstr "New Name:" msgid "Activate:" msgstr "Activate:" msgid "&Add" msgstr "&Add" msgid "Re&name" msgstr "Re&name" msgid "&Remove" msgstr "&Remove" msgid "&Move" msgstr "&Move" #, python-format msgid "Bookmark - %s" msgstr "Bookmark - %s" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "A bookmark named \"%s\" already exists" #, python-format msgid "Bookmark '%s' has been added" msgstr "Bookmark '%s' has been added" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "Bookmark named \"%s\" does not exist" #, python-format msgid "Bookmark '%s' has been moved" msgstr "Bookmark '%s' has been moved" #, python-format msgid "Bookmark '%s' does not exist" msgstr "Bookmark '%s' does not exist" #, python-format msgid "Bookmark '%s' has been removed" msgstr "Bookmark '%s' has been removed" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "Bookmark '%s' has been renamed to '%s'" msgid "TortoiseHg Bookmark Sync" msgstr "TortoiseHg Bookmark Sync" msgid "Outgoing Bookmarks" msgstr "Outgoing Bookmarks" msgid "&Push Bookmark" msgstr "&Push Bookmark" msgid "&Remove Bookmark" msgstr "&Remove Bookmark" msgid "Incoming Bookmarks" msgstr "Incoming Bookmarks" msgid "P&ull Bookmark" msgstr "P&ull Bookmark" msgid "R&emove Bookmark" msgstr "R&emove Bookmark" #, python-format msgid "Pushed local bookmark: %s" msgstr "Pushed local bookmark: %s" #, python-format msgid "Pulled remote bookmark: %s" msgstr "Pulled remote bookmark: %s" #, python-format msgid "Removed remote bookmark: %s" msgstr "Removed remote bookmark: %s" #, python-format msgid "Removed local bookmark: %s" msgstr "Removed local bookmark: %s" #, python-format msgid "%s - branch operation" msgstr "%s - branch operation" msgid "Select branch of merge commit" msgstr "Select branch of merge commit" msgid "Changes take effect on next commit" msgstr "Changes take effect on next commit" msgid "No branch changes" msgstr "No branch changes" msgid "Open a new named branch" msgstr "Open a new named branch" msgid "Close current branch" msgstr "Close current branch" #, python-format msgid "Please report this bug to our bug tracker" msgstr "Please report this bug to our bug tracker" msgid "Checking for updates..." msgstr "Checking for updates..." msgid "Copy" msgstr "Copy" msgid "Quit" msgstr "Quit" msgid "TortoiseHg Bug Report" msgstr "TortoiseHg Bug Report" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "Upgrading to a more recent TortoiseHg is recommended." msgid "Your TortoiseHg is up to date." msgstr "Your TortoiseHg is up to date." msgid "Save error report to" msgstr "Save error report to" msgid "Text files (*.txt)" msgstr "Text files (*.txt)" msgid "Error writing file" msgstr "Error writing file" msgid "TortoiseHg Error" msgstr "TortoiseHg Error" msgid "" "If you still have trouble, please file a bug report." msgstr "" "If you still have trouble, please file a bug report." msgid "Visual Diff" msgstr "Visual Diff" msgid "View file changes in external diff tool" msgstr "View file changes in external diff tool" msgid "Edit Local" msgstr "Edit Local" msgid "Edit current file in working copy" msgstr "Edit current file in working copy" msgid "Revert to Revision" msgstr "Revert to Revision" msgid "Revert file(s) to contents at this revision" msgstr "Revert file(s) to contents at this revision" msgid "Patch failed to apply" msgstr "Patch failed to apply" msgid "Manually resolve rejected chunks?" msgstr "Manually resolve rejected chunks?" msgid "Edit patched file and rejects?" msgstr "Edit patched file and rejects?" msgid "No deletable chunks" msgstr "No deletable chunks" msgid "Completely remove file from patch?" msgstr "Completely remove file from patch?" msgid "Revert all file changes?" msgstr "Revert all file changes?" msgid "No chunks remain" msgstr "No chunks remain" msgid "file has been deleted, refresh" msgstr "file has been deleted, refresh" msgid "file has been modified, refresh" msgstr "file has been modified, refresh" msgid "Unable to merge chunks" msgstr "Unable to merge chunks" msgid "Add or remove patches must be merged in the working directory" msgstr "Add or remove patches must be merged in the working directory" msgid "Unable to remove" msgstr "Unable to remove" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" "Unable to remove file %s,\n" "permission denied" msgctxt "files" msgid "All" msgstr "All" msgctxt "files" msgid "None" msgstr "None" msgid "Toggle display of text search bar" msgstr "Toggle display of text search bar" msgid "Diff Toolbar" msgstr "Diff Toolbar" #, python-format msgid "Chunks selected: %d / %d" msgstr "Chunks selected: %d / %d" msgid "Please wait while the file is opened ..." msgstr "Please wait while the file is opened ..." msgid "Source:" msgstr "Source:" msgid "Destination:" msgstr "Destination:" msgid "Options" msgstr "Options" msgid "Clone to revision:" msgstr "Clone to revision:" msgid "A revision identifier, bookmark, tag or branch name" msgstr "A revision identifier, bookmark, tag or branch name" msgid "Do not update the new working directory" msgstr "Do not update the new working directory" msgid "Use pull protocol to copy metadata" msgstr "Use pull protocol to copy metadata" msgid "Clone with minimal processing" msgstr "Clone with minimal processing" msgid "Include patch queue" msgstr "Include patch queue" msgid "Use proxy server" msgstr "Use proxy server" msgid "Do not verify host certificate" msgstr "Do not verify host certificate" msgid "Remote command:" msgstr "Remote command:" msgid "Use largefiles" msgstr "Use largefiles" msgid "Start revision:" msgstr "Start revision:" msgid "Select source repository" msgstr "Select source repository" msgid "Select destination repository" msgstr "Select destination repository" msgid "Select patch folder" msgstr "Select patch folder" #, python-format msgid "Clone - %s" msgstr "Clone - %s" msgid "&Clone" msgstr "&Clone" msgid "failed to start command\n" msgstr "failed to start command\n" msgid "error while running command\n" msgstr "error while running command\n" #, python-format msgid "process exited unexpectedly with code %d" msgstr "process exited unexpectedly with code %d" #, python-format msgid "failed to encode command: %s" msgstr "failed to encode command: %s" #, python-format msgid "timed out while reading: %r..." msgstr "timed out while reading: %r..." msgid "timed out waiting for message" msgstr "timed out waiting for message" #, python-format msgid "unexpected response on required channel %r" msgstr "unexpected response on required channel %r" #, python-format msgid "invalid \"hello\" message: %r" msgstr "invalid \"hello\" message: %r" msgid "no \"runcommand\" capability" msgstr "no \"runcommand\" capability" #, python-format msgid "corrupted command result: %r" msgstr "corrupted command result: %r" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "failed to encode input: %s" msgid "Terminated by user" msgstr "Terminated by user" #, python-format msgid "[command terminated by user %s]" msgstr "[command terminated by user %s]" #, python-format msgid "[command interrupted %s]" msgstr "[command interrupted %s]" #, python-format msgid "[command returned code %d %%s]" msgstr "[command returned code %d %%s]" #, python-format msgid "[command completed successfully %s]" msgstr "[command completed successfully %s]" msgid "Running..." msgstr "Running..." msgid "Failed!" msgstr "Failed!" msgid "Clea&r Log" msgstr "Clea&r Log" msgid "TortoiseHg Prompt" msgstr "TortoiseHg Prompt" msgid "Show Detail" msgstr "Show Detail" msgid "Hide Detail" msgstr "Hide Detail" msgid "Confirm Exit" msgstr "Confirm Exit" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgid "&Run" msgstr "&Run" msgid "TortoiseHg Command Dialog" msgstr "TortoiseHg Command Dialog" msgid "Command Error" msgstr "Command Error" #, python-format msgid "[Code: %d]" msgstr "[Code: %d]" msgid "Merge" msgstr "Merge" #, python-format msgid "Merge with %s" msgstr "Merge with %s" msgid "Patch Name Required" msgstr "Patch Name Required" msgid "You must enter a patch name" msgstr "You must enter a patch name" msgctxt "start progress" msgid "Commit" msgstr "Commit" msgctxt "start progress" msgid "MQ Action" msgstr "MQ Action" msgctxt "start progress" msgid "Rollback" msgstr "Rollback" msgid "Commit Dialog Toolbar" msgstr "Commit Dialog Toolbar" msgid "Branch: " msgstr "Branch: " msgid "Copy message" msgstr "Copy message" msgid "Copy one of the recent commit messages" msgstr "Copy one of the recent commit messages" msgid "Show Issues" msgstr "Show Issues" msgid "Please wait..." msgstr "Please wait..." #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "Failed to load issue tracker '%s': %s" msgid "Issue Tracker" msgstr "Issue Tracker" msgid "Show Issues..." msgstr "Show Issues..." msgid "Stop" msgstr "Stop" msgid "### patch name ###" msgstr "### patch name ###" msgid "Commit changes" msgstr "Commit changes" msgid "Commit" msgstr "Commit" msgid "Amend current revision" msgstr "Amend current revision" msgid "Amend" msgstr "Amend" msgid "Create a new patch" msgstr "Create a new patch" msgid "QNew" msgstr "QNew" msgid "Refresh current patch" msgstr "Refresh current patch" msgid "QRefresh" msgstr "QRefresh" msgid "Confirm Branch Change" msgstr "Confirm Branch Change" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "Named branch \"%s\" already exists, last used in revision %d\n" msgid "Restart &Branch" msgstr "Restart &Branch" msgid "&Commit to current branch" msgstr "&Commit to current branch" msgid "Cancel" msgstr "Cancel" msgid "Confirm New Branch" msgstr "Confirm New Branch" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "Create new named branch \"%s\" with this commit?\n" msgid "Create &Branch" msgstr "Create &Branch" msgid "Close Branch: " msgstr "Close Branch: " msgid "New Branch: " msgstr "New Branch: " #, python-format msgid "Selected Options: %s" msgstr "Selected Options: %s" msgid "Parent:" msgstr "Parent:" msgid "Patch name:" msgstr "Patch name:" #, python-format msgid "Close %s branch" msgstr "Close %s branch" #, python-format msgid "Rollback commit to revision %d" msgstr "Rollback commit to revision %d" msgid "Confirm Undo" msgstr "Confirm Undo" msgid "Discard current commit message?" msgstr "Discard current commit message?" msgid "Message Translation Failure" msgstr "Message Translation Failure" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgid "&Replace" msgstr "&Replace" msgid "Nothing Committed" msgstr "Nothing Committed" msgid "Please enter commit message" msgstr "Please enter commit message" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgid "No files checked" msgstr "No files checked" msgid "No modified files checkmarked for commit" msgstr "No modified files checkmarked for commit" msgid "Confirm Add" msgstr "Confirm Add" msgid "Add selected untracked files?" msgstr "Add selected untracked files?" msgid "Confirm Remove" msgstr "Confirm Remove" msgid "Remove selected deleted files?" msgstr "Remove selected deleted files?" msgid "Nothing changed." msgstr "Nothing changed." msgctxt "window title" msgid "Commit" msgstr "Commit" #, python-format msgid "%s - commit options" msgstr "%s - commit options" msgid "Set username:" msgstr "Set username:" msgid "Save in Repo" msgstr "Save in Repo" msgid "Save Global" msgstr "Save Global" msgid "Set Date:" msgstr "Set Date:" msgid "Update" msgstr "Update" msgid "Push After Commit:" msgstr "Push After Commit:" msgid "Auto Includes:" msgstr "Auto Includes:" msgid "Recurse into subrepositories (--subrepos)" msgstr "Recurse into subrepositories (--subrepos)" msgid "Unable to save username" msgstr "Unable to save username" msgid "Iniparse must be installed." msgstr "Iniparse must be installed." msgid "Unable to write configuration file" msgstr "Unable to write configuration file" msgid "Unable to save after commit push" msgstr "Unable to save after commit push" msgid "Unable to save auto include list" msgstr "Unable to save auto include list" msgid "Unable to save recurse in subrepos." msgstr "Unable to save recurse in subrepos." msgid "Invalid date format" msgstr "Invalid date format" msgid "No username configured" msgstr "No username configured" #, python-format msgid "%s - commit" msgstr "%s - commit" msgid "TortoiseHg Commit" msgstr "TortoiseHg Commit" msgid "Are you sure that you want to cancel the commit operation?" msgstr "Are you sure that you want to cancel the commit operation?" msgid "Compress changesets up to and including" msgstr "Compress changesets up to and including" msgid "Onto destination" msgstr "Onto destination" msgid "Compress" msgstr "Compress" #, python-format msgid "Compress - %s" msgstr "Compress - %s" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" "Before compress, you must commit, shelve to patch, or discard changes." msgid "You may continue the compress" msgstr "You may continue the compress" msgid "Changes have been moved, you must now commit" msgstr "Changes have been moved, you must now commit" msgctxt "action button" msgid "Commit" msgstr "Commit" msgid "Compress is complete, old history untouched" msgstr "Compress is complete, old history untouched" msgid "must be specified repository" msgstr "must be specified repository" msgid "must be specified 'type' in style" msgstr "must be specified 'type' in style" msgid "Git Commit:" msgstr "Git Commit:" msgid "Summary:" msgstr "Summary:" msgid "User:" msgstr "User:" msgid "Date:" msgstr "Date:" msgid "Age:" msgstr "Age:" msgid "Branch:" msgstr "Branch:" msgid "Close:" msgstr "Close:" msgid "Tags:" msgstr "Tags:" msgid "Graft:" msgstr "Graft:" msgid "Transplant:" msgstr "Transplant:" msgid "Obsolete state:" msgstr "Obsolete state:" msgid "Perforce:" msgstr "Perforce:" msgid "Subversion:" msgstr "Subversion:" msgid "Converted From:" msgstr "Converted From:" msgid "Original Parent:" msgstr "Original Parent:" msgid "No items to display" msgstr "No items to display" msgid "Use compact view" msgstr "Use compact view" msgid "Patch:" msgstr "Patch:" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "Displaying %(count)d of %(total)d items" msgid "Select a GUI location to edit:" msgstr "Select a GUI location to edit:" msgid "Select the toolbar or menu to change" msgstr "Select the toolbar or menu to change" msgid "Tools shown on selected location" msgstr "Tools shown on selected location" msgid "Delete from list" msgstr "Delete from list" msgid "Add to list" msgstr "Add to list" msgid "Add separator" msgstr "Add separator" msgid "List of all tools" msgstr "List of all tools" msgid "New Tool ..." msgstr "New Tool ..." msgid "Edit Tool ..." msgstr "Edit Tool ..." msgid "Delete Tool" msgstr "Delete Tool" msgid "Type" msgstr "Type" msgid "Name" msgstr "Name" msgid "Command" msgstr "Command" msgid "New hook" msgstr "New hook" msgid "Edit hook" msgstr "Edit hook" msgid "Delete hook" msgstr "Delete hook" msgid "Replace existing hook?" msgstr "Replace existing hook?" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgid "OK" msgstr "OK" msgid "Missing information" msgstr "Missing information" msgid "All items" msgstr "All items" msgid "Working directory" msgstr "Working directory" msgid "All revisions" msgstr "All revisions" msgid "All contexts" msgstr "All contexts" msgid "Fixed revisions" msgstr "Fixed revisions" msgid "Applied patches" msgstr "Applied patches" msgid "Applied patches or qparent" msgstr "Applied patches or qparent" msgid "" msgstr "" msgid "Configure Custom Tool" msgstr "Configure Custom Tool" msgid "Tool name" msgstr "Tool name" msgid "The tool name. It cannot contain spaces." msgstr "The tool name. It cannot contain spaces." #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgid "Tool label" msgstr "Tool label" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgid "Tooltip" msgstr "Tooltip" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgid "Icon" msgstr "Icon" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgid "On repowidget, show for" msgstr "On repowidget, show for" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgid "Show Output Log" msgstr "Show Output Log" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgid "You must set a tool name." msgstr "You must set a tool name." msgid "The tool name cannot have any spaces in it." msgstr "The tool name cannot have any spaces in it." msgid "You must set a command to run." msgstr "You must set a command to run." msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgid "Configure Hook" msgstr "Configure Hook" msgid "Hook type" msgstr "Hook type" msgid "Select when your command will be run" msgstr "Select when your command will be run" msgid "The hook name. It cannot contain spaces." msgstr "The hook name. It cannot contain spaces." msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgid "You must set a valid hook type." msgstr "You must set a valid hook type." msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "The hook name cannot contain any spaces, tabs or '=' characters." msgid "Console" msgstr "Console" msgid "File &History / Annotate" msgstr "File &History / Annotate" msgid "Show the history of the selected file" msgstr "Show the history of the selected file" msgid "Co&mpare File Revisions" msgstr "Co&mpare File Revisions" msgid "Compare revisions of the selected file" msgstr "Compare revisions of the selected file" msgid "Filter Histor&y" msgstr "Filter Histor&y" msgid "Query about changesets affecting the selected files" msgstr "Query about changesets affecting the selected files" msgid "Diff &Changeset to Parent" msgstr "Diff &Changeset to Parent" msgid "Diff Changeset to Loc&al" msgstr "Diff Changeset to Loc&al" msgid "&Diff to Parent" msgstr "&Diff to Parent" msgid "Diff to &Local" msgstr "Diff to &Local" msgid "View changes to current in external diff tool" msgstr "View changes to current in external diff tool" msgid "&View at Revision" msgstr "&View at Revision" msgid "View file as it appeared at this revision" msgstr "View file as it appeared at this revision" msgid "&Save at Revision..." msgstr "&Save at Revision..." msgid "Save file as it appeared at this revision" msgstr "Save file as it appeared at this revision" msgid "Save file to" msgstr "Save file to" msgid "&Edit Local" msgstr "&Edit Local" msgid "&Open Local" msgstr "&Open Local" msgid "E&xplore Local" msgstr "E&xplore Local" msgid "Open parent folder of current file in the system file manager" msgstr "Open parent folder of current file in the system file manager" msgid "&Copy Patch" msgstr "&Copy Patch" msgid "Copy &Path" msgstr "Copy &Path" msgid "Copy full path of file(s) to the clipboard" msgstr "Copy full path of file(s) to the clipboard" msgid "&Revert to Revision..." msgstr "&Revert to Revision..." msgid "Open S&ubrepository" msgstr "Open S&ubrepository" msgid "Open the selected subrepository" msgstr "Open the selected subrepository" msgid "E&xplore Folder" msgstr "E&xplore Folder" msgid "Open the selected folder in the system file manager" msgstr "Open the selected folder in the system file manager" msgid "Open &Terminal" msgstr "Open &Terminal" msgid "Open a shell terminal in the selected folder" msgstr "Open a shell terminal in the selected folder" msgid "Custom Tools" msgstr "Custom Tools" msgid "Diff &Local" msgstr "Diff &Local" msgid "&View Missing" msgstr "&View Missing" msgid "View O&ther" msgstr "View O&ther" msgid "Add &Largefiles..." msgstr "Add &Largefiles..." msgid "&Forget" msgstr "&Forget" msgid "&Delete Unversioned..." msgstr "&Delete Unversioned..." msgid "Confirm Delete Unversioned" msgstr "Confirm Delete Unversioned" msgid "Delete the following unversioned files?" msgstr "Delete the following unversioned files?" msgid "&Delete" msgstr "&Delete" msgid "Re&move Versioned" msgstr "Re&move Versioned" msgid "&Revert..." msgstr "&Revert..." msgid "Uncommited merge - please select a parent revision" msgstr "Uncommitted merge - please select a parent revision" msgid "Revert files to local or other parent?" msgstr "Revert files to local or other parent?" msgid "&Local" msgstr "&Local" msgid "&Other" msgstr "&Other" msgid "Confirm Revert" msgstr "Confirm Revert" msgid "Revert local file changes?" msgstr "Revert local file changes?" msgid "&Revert with backup" msgstr "&Revert with backup" msgid "&Discard changes" msgstr "&Discard changes" msgid "Revert the following files?" msgstr "Revert the following files?" msgid "&Revert" msgstr "&Revert" msgid "&Copy..." msgstr "&Copy..." msgid "Re&name..." msgstr "Re&name..." msgid "&Ignore..." msgstr "&Ignore..." msgid "Edit Re&jects" msgstr "Edit Re&jects" msgid "Manually resolve rejected patch chunks" msgstr "Manually resolve rejected patch chunks" msgid "De&tect Renames..." msgstr "De&tect Renames..." msgid "&Mark Resolved" msgstr "&Mark Resolved" msgid "&Mark Unresolved" msgstr "&Mark Unresolved" msgid "Restart Mer&ge" msgstr "Restart Mer&ge" msgid "Was renamed from" msgstr "Was renamed from" msgid "Restart Merge &with" msgstr "Restart Merge &with" msgid "Display the file anyway" msgstr "Display the file anyway" msgid "Diff not displayed: " msgstr "Diff not displayed: " #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgid "File is binary" msgstr "File is binary" msgid "File may be binary (maximum line length exceeded)" msgstr "File may be binary (maximum line length exceeded)" msgid "File or diffs not displayed: " msgstr "File or diffs not displayed: " msgid " (was added)" msgstr " (was added)" #, python-format msgid " (copied from %s)" msgstr " (copied from %s)" #, python-format msgid " (renamed from %s)" msgstr " (renamed from %s)" msgid " (is a symlink)" msgstr " (is a symlink)" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgid " (was deleted)" msgstr " (was deleted)" msgid " (was added, now missing)" msgstr " (was added, now missing)" msgid " (is unversioned)" msgstr " (is unversioned)" msgid "exec mode has been set" msgstr "exec mode has been set" msgid "exec mode has been unset" msgstr "exec mode has been unset" #, python-format msgid "changeset: %s" msgstr "changeset: %s" msgid "Initial revision" msgstr "Initial revision" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgid "Subrepo created and set to initial revision." msgstr "Subrepo created and set to initial revision." msgid "Subrepo initialized to revision:" msgstr "Subrepo initialised to revision:" msgid "Subrepo removed from repository." msgstr "Subrepo removed from repository." msgid "Previously the subrepository was at the following revision:" msgstr "Previously the subrepository was at the following revision:" msgid "Subrepo was not changed." msgstr "Subrepo was not changed." msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "[WARNING] Missing subrepo. Update to this revision to clone it." msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgid "Subrepo state is:" msgstr "Subrepo state is:" msgid "Revision has changed to:" msgstr "Revision has changed to:" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "changeset: %s (not found on subrepository)" msgid "From:" msgstr "From:" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgid "Subrepository not found in the working directory." msgstr "Subrepository not found in the working directory." msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgid "Not a Mercurial subrepo, not previewable" msgstr "Not a Mercurial subrepo, not previewable" #, python-format msgid "Error previewing subrepo: %s" msgstr "Error previewing subrepo: %s" msgid "Subrepo may be damaged or inaccessible." msgstr "Subrepo may be damaged or inaccessible." msgid "The subrepository is dirty." msgstr "The subrepository is dirty." msgid "File Status:" msgstr "File Status:" msgid "(is a changed sub-repository)" msgstr "(is a changed sub-repository)" msgid "(is an unchanged sub-repository)" msgstr "(is an unchanged sub-repository)" msgid "(is a dirty sub-repository)" msgstr "(is a dirty sub-repository)" msgid "(is a new sub-repository)" msgstr "(is a new sub-repository)" msgid "(is a removed sub-repository)" msgstr "(is a removed sub-repository)" msgid "(is a changed and dirty sub-repository)" msgstr "(is a changed and dirty sub-repository)" msgid "(is a new and dirty sub-repository)" msgstr "(is a new and dirty sub-repository)" msgid "open..." msgstr "open..." #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "Hg file log viewer [%s] - %s" msgid "File History Log Columns" msgstr "File History Log Columns" msgid "Back" msgstr "Back" msgid "Forward" msgstr "Forward" msgid "Diff Selected &Changesets" msgstr "Diff Selected &Changesets" msgid "&Diff Selected File Revisions" msgstr "&Diff Selected File Revisions" msgid "Show Revision &Details" msgstr "Show Revision &Details" msgid "Too many rows selected for menu" msgstr "Too many rows selected for menu" msgid "File Differences Log Columns" msgstr "File Differences Log Columns" msgid "Next diff" msgstr "Next diff" msgid "Previous diff" msgstr "Previous diff" msgid "Unicode" msgstr "Unicode" msgid "Western Europe" msgstr "Western Europe" msgid "Unified Chinese" msgstr "Unified Chinese" msgid "Traditional Chinese" msgstr "Traditional Chinese" msgid "Korean" msgstr "Korean" msgid "Japanese" msgstr "Japanese" msgid "Thai" msgstr "Thai" msgid "Central and Eastern Europe" msgstr "Central and Eastern Europe" msgid "Cyrillic" msgstr "Cyrillic" msgid "Russian" msgstr "Russian" msgid "Ukrainian" msgstr "Ukrainian" msgid "Greek" msgstr "Greek" msgid "Turkish" msgstr "Turkish" msgid "Arabic" msgstr "Arabic" msgid "Hebrew" msgstr "Hebrew" msgid "Vietnamese" msgstr "Vietnamese" msgid "Baltic" msgstr "Baltic" msgid "Southern Europe" msgstr "Southern Europe" msgid "Nordic" msgstr "Nordic" msgid "Celtic" msgstr "Celtic" msgid "South-Eastern Europe" msgstr "South-Eastern Europe" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "$FILE_ENCODINGS" msgid "View change as unified diff output" msgstr "View change as unified diff output" msgid "View change in context of file" msgstr "View change in context of file" msgid "Annotate with revision numbers" msgstr "Annotate with revision numbers" msgid "Next Diff" msgstr "Next Diff" msgid "Previous Diff" msgstr "Previous Diff" msgid "Open shelve tool" msgstr "Open shelve tool" msgid "&Auto Detect" msgstr "&Auto Detect" msgid "Show changes from first parent" msgstr "Show changes from first parent" msgid "Show changes from second parent" msgstr "Show changes from second parent" msgid "E&ncoding" msgstr "E&ncoding" msgid "&Search in Current File" msgstr "&Search in Current File" msgid "Search in All &History" msgstr "Search in All &History" msgid "Go to Line" msgstr "Go to Line" #, python-format msgid "Enter line number (1 - %d)" msgstr "Enter line number (1 - %d)" msgid "Show &Author" msgstr "Show &Author" msgid "Show &Date" msgstr "Show &Date" msgid "Show &Revision" msgstr "Show &Revision" msgid "Annotate Op&tions" msgstr "Annotate Op&tions" msgid "Search Selected Text" msgstr "Search Selected Text" msgid "In Current &File" msgstr "In Current &File" msgid "In &Current Revision" msgstr "In &Current Revision" msgid "In &Original Revision" msgstr "In &Original Revision" msgid "In All &History" msgstr "In All &History" msgid "Go to" msgstr "Go to" msgid "View File at" msgstr "View File at" msgid "Diff File to" msgstr "Diff File to" msgid "&Originating Revision" msgstr "&Originating Revision" msgid "&Parent Revision" msgstr "&Parent Revision" #, python-format msgid "&Parent Revision (%d)" msgstr "&Parent Revision (%d)" msgid "&Mark Excluded Changes" msgstr "&Mark Excluded Changes" msgid "(excluded from the next commit)" msgstr "(excluded from the next commit)" msgid "Interrupted graft operation found" msgstr "Interrupted graft operation found" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgid "Continue or abort interrupted graft operation?" msgstr "Continue or abort interrupted graft operation?" msgid "To graft destination" msgstr "To graft destination" msgid "Use my user name instead of graft committer user name" msgstr "Use my user name instead of graft committer user name" msgid "Use current date" msgstr "Use current date" msgid "Append graft info to log message" msgstr "Append graft info to log message" msgid "Graft" msgstr "Graft" msgid "Abort" msgstr "Abort" #, python-format msgid "Graft - %s" msgstr "Graft - %s" msgid "Graft changeset" msgstr "Graft changeset" #, python-format msgid "Graft changeset #%d of %d" msgstr "Graft changeset #%d of %d" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgid "You may continue or start the graft" msgstr "You may continue or start the graft" msgid "Graft is complete" msgstr "Graft is complete" msgid "Graft failed" msgstr "Graft failed" msgid "Graft aborted" msgstr "Graft aborted" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" "Graft generated merge conflicts that must be resolved" msgid "You may continue the graft" msgstr "You may continue the graft" msgid "Exiting with an unfinished graft is not recommended." msgstr "Exiting with an unfinished graft is not recommended." msgid "Consider aborting the graft first." msgstr "Consider aborting the graft first." msgid "&Exit" msgstr "&Exit" msgid "### regular expression search pattern ###" msgstr "### regular expression search pattern ###" msgid "Regexp:" msgstr "Regexp:" msgid "Ignore case" msgstr "Ignore case" msgid "Search" msgstr "Search" msgid "Working Copy" msgstr "Working Copy" msgid "All History" msgstr "All History" msgid "Report only the first match per file" msgstr "Report only the first match per file" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "Follow copies and renames" msgid "Includes:" msgstr "Includes:" msgid "Excludes:" msgstr "Excludes:" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." #, python-format msgid "\"%s\" removed from search history" msgstr "\"%s\" removed from search history" #, python-format msgid "\"%s\" removed from path history" msgstr "\"%s\" removed from path history" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "grep: invalid match pattern: %s\n" #, python-format msgid "grep: %s\n" msgstr "grep: %s\n" #, python-format msgid "%d matches found" msgstr "%d matches found" msgid "No matches found" msgstr "No matches found" msgid "Searching" msgstr "Searching" msgid "history" msgstr "history" msgid "Interrupted" msgstr "Interrupted" msgid "files" msgstr "files" #, python-format msgid "Skipping %s, unable to read" msgstr "Skipping %s, unable to read" msgid "Vi&ew File" msgstr "Vi&ew File" msgid "&View Changeset" msgstr "&View Changeset" msgid "Annotate &File" msgstr "Annotate &File" msgid "File" msgstr "File" msgid "Line" msgstr "Line" msgid "Rev" msgstr "Rev" msgid "User" msgstr "User" msgid "Match Text" msgstr "Match Text" msgid "TortoiseHg Search" msgstr "TortoiseHg Search" #, python-format msgid "Detect Copies/Renames in %s" msgstr "Detect Copies/Renames in %s" msgid "Unrevisioned Files" msgstr "Unrevisioned Files" msgid "Refresh file list" msgstr "Refresh file list" #, python-format msgid "Min Similarity: %d%%" msgstr "Min Similarity: %d%%" msgid "Only consider deleted files" msgstr "Only consider deleted files" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "Uncheck to consider all revisioned files for copy sources" msgid "Find Renames" msgstr "Find Renames" msgid "Find copy and/or rename sources" msgstr "Find copy and/or rename sources" msgid "Candidate Matches" msgstr "Candidate Matches" msgid "Accept All Matches" msgstr "Accept All Matches" msgid "Accept Selected Matches" msgstr "Accept Selected Matches" msgid "Differences from Source to Dest" msgstr "Differences from Source to Dest" msgid "Search already in progress" msgstr "Search already in progress" msgid "Cannot start a new search" msgstr "Cannot start a new search" msgid "No files to find" msgstr "No files to find" msgid "There are no files that may have been renamed" msgstr "There are no files that may have been renamed" msgid "Multiple sources chosen" msgstr "Multiple sources chosen" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" "%s and %s have identical contents\n" "\n" #. i18n: percent format #, python-format msgid "%d%%" msgstr "%d%%" msgid "Source" msgstr "Source" msgid "Dest" msgstr "Dest" msgid "% Match" msgstr "% Match" msgid "Sending Email" msgstr "Sending Email" msgid "Email" msgstr "E-mail" msgid "To:" msgstr "To:" msgid "Cc:" msgstr "Cc:" msgid "In-Reply-To:" msgstr "In-Reply-To:" msgid "Message identifier to reply to, for threading" msgstr "Message identifier to reply to, for threading" msgid "Flag:" msgstr "Flag:" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgid "Send changesets as Hg patches" msgstr "Send changesets as Hg patches" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgid "Use extended (git) patch format" msgstr "Use extended (git) patch format" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgid "Plain, do not prepend Hg header" msgstr "Plain, do not prepend Hg header" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgid "Send single binary bundle, not patches" msgstr "Send single binary bundle, not patches" msgid "send patches as part of the email body" msgstr "send patches as part of the email body" msgid "body" msgstr "body" msgid "send patches as attachments" msgstr "send patches as attachments" msgid "attach" msgstr "attach" msgid "send patches as inline attachments" msgstr "send patches as inline attachments" msgid "inline" msgstr "inline" msgid "add diffstat output to messages" msgstr "add diffstat output to messages" msgid "diffstat" msgstr "diffstat" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" "Patch series description is sent in initial summary e-mail with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When e-mailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgid "Write patch series (bundle) description" msgstr "Write patch series (bundle) description" msgid "Subject:" msgstr "Subject:" msgid "Changesets" msgstr "Changesets" msgid "Select &All" msgstr "Select &All" msgid "Select &None" msgstr "Select &None" msgid "Edit" msgstr "Edit" msgid "Preview" msgstr "Preview" msgid "&Settings" msgstr "&Settings" msgid "Send &Email" msgstr "Send &Email" msgid "&Close" msgstr "&Close" #, python-format msgid "Ignore filter - %s" msgstr "Ignore filter - %s" msgid "Glob" msgstr "Glob" msgid "Regexp" msgstr "Regexp" msgid "Add" msgstr "Add" msgid "Edit File" msgstr "Edit File" msgid "Ignore Filter" msgstr "Ignore Filter" msgid "Untracked Files" msgstr "Untracked Files" msgid "Backspace or Del to remove row(s)" msgstr "Backspace or Del to remove row(s)" msgid "Add ignore filter..." msgstr "Add ignore filter..." msgid "selected files" msgstr "selected files" msgid "Ignore " msgstr "Ignore " msgid "Invalid glob expression" msgstr "Invalid glob expression" msgid "Invalid regexp expression" msgstr "Invalid regexp expression" msgid "Unable to read repository status" msgstr "Unable to read repository status" msgid "New file created" msgstr "New file created" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgid "Unable to write .hgignore file" msgstr "Unable to write .hgignore file" msgid "Copy working directory files from skeleton" msgstr "Copy working directory files from skeleton" msgid "Create special files (.hgignore, ...)" msgstr "Create special files (.hgignore, ...)" msgid "Make repo compatible with Mercurial <1.7" msgstr "Make repo compatible with Mercurial <1.7" msgid "New Repository" msgstr "New Repository" msgid "&Create" msgstr "&Create" msgid "Unable to create a config file" msgstr "Unable to create a config file" msgid "Insufficient access rights." msgstr "Insufficient access rights." msgid "Show Log" msgstr "Show Log" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgid "Add as &Largefiles" msgstr "Add as &Largefiles" msgid "Add as &Normal Files" msgstr "Add as &Normal Files" msgid "Invalid Patterns" msgstr "Invalid Patterns" msgid "Failed to process largefiles.patterns." msgstr "Failed to process largefiles.patterns." msgid "Word docs (*.doc *.docx)" msgstr "Word docs (*.doc *.docx)" msgid "PDF docs (*.pdf)" msgstr "PDF docs (*.pdf)" msgid "Excel files (*.xls *.xlsx)" msgstr "Excel files (*.xls *.xlsx)" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "TortoiseHg Lock Tool - %s" msgid "Refresh lock information" msgstr "Refresh lock information" msgid "Lock a file not described in .hglocks" msgstr "Lock a file not described in .hglocks" msgid "Stop current operation" msgstr "Stop current operation" msgid "Locked And Lockable Files:" msgstr "Locked And Lockable Files:" msgid "Path" msgstr "Path" msgid "Locking User" msgstr "Locking User" msgid "Purpose" msgstr "Purpose" msgid "Simplelock extension not enabled" msgstr "Simplelock extension not enabled" msgid "Please enable and configure simplelock" msgstr "Please enable and configure simplelock" msgid "Open a (nonmergable) file you wish to be locked" msgstr "Open a (non-mergable) file you wish to be locked" msgid "File was not within current repository" msgstr "File was not within current repository" #, python-format msgid "Locking %s" msgstr "Locking %s" #, python-format msgid "Unlocking %s" msgstr "Unlocking %s" msgid "Refreshing locks..." msgstr "Refreshing locks..." #, python-format msgid "Lock of %s successful" msgstr "Lock of %s successful" #, python-format msgid "Lock of %s failed, retry" msgstr "Lock of %s failed, retry" #, python-format msgid "Unlock of %s failed, retry" msgstr "Unlock of %s failed, retry" #, python-format msgid "Unlock of %s successful" msgstr "Unlock of %s successful" msgid "Ready, double click to lock or unlock" msgstr "Ready, double click to lock or unlock" msgid "Ready" msgstr "Ready" msgid "You can only release your own locks" msgstr "You can only release your own locks" msgid "Find revisions matching fields of:" msgstr "Find revisions matching fields of:" msgid "Revision to Match:" msgstr "Revision to Match:" msgid "Fields to match:" msgstr "Fields to match:" msgid "Summary (first description line)" msgstr "Summary (first description line)" msgid "Description" msgstr "Description" msgid "Author" msgstr "Author" msgid "Date" msgstr "Date" msgid "Files" msgstr "Files" msgid "Diff contents" msgstr "Diff contents" msgid "Subrepo states" msgstr "Subrepo states" msgid "Branch" msgstr "Branch" msgid "Phase" msgstr "Phase" msgid "&Match" msgstr "&Match" #, python-format msgid "Find matches - %s" msgstr "Find matches - %s" msgid "Revisions to Match:" msgstr "Revisions to Match:" #, python-format msgid "Match any of %d revisions" msgstr "Match any of %d revisions" msgid "Unknown revision!" msgstr "Unknown revision!" msgid "Parse Error!" msgstr "Parse Error!" #, python-format msgid "Merge - %s" msgstr "Merge - %s" msgid "Do you want to exit?" msgstr "Do you want to exit?" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgid "Prepare to merge" msgstr "Prepare to merge" msgid "Verify merge targets and ensure your working directory is clean." msgstr "Verify merge targets and ensure your working directory is clean." msgid "Not a head revision!" msgstr "Not a head revision!" msgid "Merge from (other revision)" msgstr "Merge from (other revision)" msgid "Merge to (working directory)" msgstr "Merge to (working directory)" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" "The working directory is already merged. Continue or discard existing " "merge." msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" "Before merging, you must commit, shelve to patch, or discard changes." msgid "Or use:" msgstr "Or use:" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "Force a merge with outstanding changes (-f/--force)" msgid "Discard all changes from the other revision" msgstr "Discard all changes from the other revision" msgid "&Discard" msgstr "&Discard" msgid "Confirm Discard Changes" msgstr "Confirm Discard Changes" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgctxt "working dir state" msgid "Clean" msgstr "Clean" msgid "Merging..." msgstr "Merging..." msgid "Automatically advance to next page when merge is complete." msgstr "Automatically advance to next page when merge is complete." #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" "%d files were modified on both branches and must be resolved" msgid "" "No merge conflicts, ready to commit or review" msgstr "" "No merge conflicts, ready to commit or review" msgid "Commit merge results" msgstr "Commit merge results" msgid "Commit Options" msgstr "Commit Options" msgid "Commit Now" msgstr "Commit Now" msgid "Commit Later" msgstr "Commit Later" msgid "Merge changeset" msgstr "Merge changeset" msgid "Syntax Highlighting" msgstr "Syntax Highlighting" msgid "Paste &Filenames" msgstr "Paste &Filenames" msgid "App&ly Format" msgstr "App&ly Format" msgid "C&onfigure Format" msgstr "C&onfigure Format" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "%s had rejected chunks, edit patched file together with rejects?" msgid "&Commit to Queue..." msgstr "&Commit to Queue..." msgid "Create &New Queue..." msgstr "Create &New Queue..." msgid "&Rename Active Queue..." msgstr "&Rename Active Queue..." msgid "&Delete Queue..." msgstr "&Delete Queue..." msgid "&Purge Queue..." msgstr "&Purge Queue..." msgid "Create Patch Queue" msgstr "Create Patch Queue" msgid "New patch queue name" msgstr "New patch queue name" msgid "Create" msgstr "Create" msgid "Rename Patch Queue" msgstr "Rename Patch Queue" #, python-format msgid "Rename patch queue '%s' to" msgstr "Rename patch queue '%s' to" msgid "Rename" msgstr "Rename" msgid "Delete Patch Queue" msgstr "Delete Patch Queue" msgid "Delete reference to" msgstr "Delete reference to" msgid "Delete" msgstr "Delete" msgid "Purge Patch Queue" msgstr "Purge Patch Queue" msgid "Remove patch directory of" msgstr "Remove patch directory of" msgid "Purge" msgstr "Purge" msgid "Rename Patch" msgstr "Rename Patch" #, python-format msgid "Rename patch %s to:" msgstr "Rename patch %s to:" msgid "no guards" msgstr "no guards" msgid "Patch Queue" msgstr "Patch Queue" msgctxt "MQ QPush" msgid "Push" msgstr "Push" msgid "Apply one patch" msgstr "Apply one patch" msgctxt "MQ QPush" msgid "Push all" msgstr "Push all" msgid "Apply all patches" msgstr "Apply all patches" msgid "Pop" msgstr "Pop" msgid "Unapply one patch" msgstr "Unapply one patch" msgid "Pop all" msgstr "Pop all" msgid "Unapply all patches" msgstr "Unapply all patches" msgid "Go &to Patch" msgstr "Go &to Patch" msgid "&Apply Only This Patch" msgstr "&Apply Only This Patch" msgid "Apply only the selected patch" msgstr "Apply only the selected patch" msgid "&Finish Patch" msgstr "&Finish Patch" msgid "Move applied patches into repository history" msgstr "Move applied patches into repository history" msgid "&Delete Patches..." msgstr "&Delete Patches..." msgid "Delete selected patches" msgstr "Delete selected patches" msgid "Re&name Patch..." msgstr "Re&name Patch..." msgid "Set &Guards..." msgstr "Set &Guards..." msgid "Configure guards for selected patch" msgstr "Configure guards for selected patch" msgid "Patch Queue Actions Toolbar" msgstr "Patch Queue Actions Toolbar" msgid "Configure guards" msgstr "Configure guards" #, python-format msgid "Input new guards for %s:" msgstr "Input new guards for %s:" msgid "Confirm patch queue switch" msgstr "Confirm patch queue switch" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "Do you really want to activate patch queue '%s' ?" #, python-format msgid "Guards: %d/%d" msgstr "Guards: %d/%d" msgid "MQ options" msgstr "MQ options" msgid "Force push or pop (--force)" msgstr "Force push or pop (--force)" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "Tolerate non-conflicting local changes (--keep-changes)" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "Pending Perforce Changelists - %s" msgid "Submitting p4 changelist..." msgstr "Submitting p4 changelist..." msgid "Reverting p4 changelist..." msgstr "Reverting p4 changelist..." msgid "Patch Branch Toolbar" msgstr "Patch Branch Toolbar" msgid "Merge all pending dependencies" msgstr "Merge all pending dependencies" msgid "Backout current patch branch" msgstr "Backout current patch branch" msgid "Backport part of a changeset to a dependency" msgstr "Backport part of a changeset to a dependency" msgid "Start a new patch branch" msgstr "Start a new patch branch" msgid "Edit patch dependency graph" msgstr "Edit patch dependency graph" msgid "will be closed" msgstr "will be closed" #, python-format msgid "needs merge of %i heads\n" msgstr "needs merge of %i heads\n" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "needs merge with %s (through %s)\n" #, python-format msgid "needs merge with %s\n" msgstr "needs merge with %s\n" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "needs update of diff base to tip of %s\n" msgid "&Goto (update workdir)" msgstr "&Goto (update workdir)" msgid "&Merge" msgstr "&Merge" msgid "No patch branch selected" msgstr "No patch branch selected" msgid "No editor found" msgstr "No editor found" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgid "Graph" msgstr "Graph" msgid "Status" msgstr "Status" msgid "Title" msgstr "Title" msgid "Message" msgstr "Message" msgid "New Patch Branch" msgstr "New Patch Branch" msgid "Patch message:" msgstr "Patch message:" msgid "Patch date:" msgstr "Patch date:" msgid "Patch user:" msgstr "Patch user:" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "Post &Review" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "Invalid Settings - The ReviewBoard server is not setup" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "Invalid Settings - Please provide your ReviewBoard username" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" "Invalid ReviewBoard plugin. Please download the Mercurial ReviewBoard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgid "Review Board" msgstr "Review Board" msgid "Password:" msgstr "Password:" msgid "Error" msgstr "Error" #, python-format msgid "Review draft posted to %s\n" msgstr "Review draft posted to %s\n" #, python-format msgid "Review published to %s\n" msgstr "Review published to %s\n" msgid "Success" msgstr "Success" msgid "Repository ID:" msgstr "Repository ID:" msgid "Post Review" msgstr "Post Review" msgid "Review ID:" msgstr "Review ID:" msgid "Update the fields of this existing request" msgstr "Update the fields of this existing request" msgid "Update Review" msgstr "Update Review" msgid "Create diff with all outgoing changes" msgstr "Create diff with all outgoing changes" msgid "Create diff with all changes on this branch" msgstr "Create diff with all changes on this branch" msgid "Publish request immediately" msgstr "Publish request immediately" msgid "%p%" msgstr "%p%" msgid "Connecting to Review Board..." msgstr "Connecting to Review Board..." msgid "Target:" msgstr "Target:" msgid "Do not modify working copy (-k/--keep)" msgstr "Do not modify working copy (-k/--keep)" #, python-format msgid "Prune - %s" msgstr "Prune - %s" msgid "&Prune" msgstr "&Prune" msgid "No unknown files found" msgstr "No unknown files found" msgid "No ignored files found" msgstr "No ignored files found" msgid "No trash files found" msgstr "No trash files found" msgid "Delete empty folders" msgstr "Delete empty folders" msgid "Preserve files beginning with .hg" msgstr "Preserve files beginning with .hg" #, python-format msgid "%s - purge" msgstr "%s - purge" msgid "Checking" msgstr "Checking" msgid "Ready to purge." msgstr "Ready to purge." #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "Delete %d unknown file" msgstr[1] "Delete %d unknown files" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "Delete %d ignored file" msgstr[1] "Delete %d ignored files" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "Delete %d file in .hg/Trashcan" msgstr[1] "Delete %d files in .hg/Trashcan" msgid "Confirm file deletions" msgstr "Confirm file deletions" msgid "Are you sure you want to delete these files and/or folders?" msgstr "Are you sure you want to delete these files and/or folders?" msgid "Deletion failures" msgstr "Deletion failures" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "Unable to delete %d file or folder" msgstr[1] "Unable to delete %d files or folders" msgid "Deleting trash folder..." msgstr "Deleting trash folder..." #, python-format msgid "Deleted %d files" msgstr "Deleted %d files" #, python-format msgid "Deleted %d files and %d folders" msgstr "Deleted %d files and %d folders" msgid "Delete Patches" msgstr "Delete Patches" msgid "Remove patches from queue?" msgstr "Remove patches from queue?" msgid "Keep patch files" msgstr "Keep patch files" #, python-format msgid "Patch fold - %s" msgstr "Patch fold - %s" msgid "New patch message:" msgstr "New patch message:" msgid "Patches to fold" msgstr "Patches to fold" msgid "&Undo" msgstr "&Undo" msgid "&Redo" msgstr "&Redo" msgid "Cu&t" msgstr "Cu&t" msgid "&Copy" msgstr "&Copy" msgid "&Paste" msgstr "&Paste" msgid "&Editor Options" msgstr "&Editor Options" msgid "&Wrap" msgstr "&Wrap" msgctxt "wrap mode" msgid "&None" msgstr "&None" msgid "&Word" msgstr "&Word" msgid "&Character" msgstr "&Character" msgid "White&space" msgstr "White&space" msgid "&Visible" msgstr "&Visible" msgid "&Invisible" msgstr "&Invisible" msgid "&AfterIndent" msgstr "&AfterIndent" msgid "&TAB Inserts" msgstr "&TAB Inserts" msgid "&Auto" msgstr "&Auto" msgid "&TAB" msgstr "&TAB" msgid "&Spaces" msgstr "&Spaces" msgid "EOL &Visibility" msgstr "EOL &Visibility" msgid "EOL &Mode" msgstr "EOL &Mode" msgid "&Windows" msgstr "&Windows" msgid "&Unix" msgstr "&Unix" msgid "&Mac" msgstr "&Mac" msgid "&Auto-Complete" msgstr "&Auto-Complete" msgid "### regular expression ###" msgstr "### regular expression ###" msgid "Regular expression search pattern" msgstr "Regular expression search pattern" msgid "Wrap search" msgstr "Wrap search" msgid "Prev" msgstr "Prev" msgid "Next" msgstr "Next" msgid "Unable to read file" msgstr "Unable to read file" msgid "Could not open the specified file for reading." msgstr "Could not open the specified file for reading." msgid "This appears to be a binary file." msgstr "This appears to be a binary file." msgid "An error occurred while reading the file." msgstr "An error occurred while reading the file." msgid "Text Translation Failure" msgstr "Text Translation Failure" msgid "Could not translate the file content from native encoding." msgstr "Could not translate the file content from native encoding." msgid "Several characters would be lost." msgstr "Several characters would be lost." msgid "Unable to write file" msgstr "Unable to write file" msgid "Could not translate the file content to native encoding." msgstr "Could not translate the file content to native encoding." msgid "Could not open the specified file for writing." msgstr "Could not open the specified file for writing." msgid "An error occurred while writing the file." msgstr "An error occurred while writing the file." msgid "Try refreshing your repository." msgstr "Try refreshing your repository." #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
                            Please edit your config" msgstr "" "Error string \"%(arg0)s\" at %(arg1)s
                            Please edit your config" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
                            Please fix your config" msgstr "" "Configuration Error: \"%(arg0)s\",
                            Please
                            fix your config" #, python-format msgid "Operation aborted:

                            %(arg0)s." msgstr "Operation aborted:

                            %(arg0)s." msgid "Repository is locked" msgstr "Repository is locked" msgid "hint:" msgstr "hint:" msgid "Repository Error" msgstr "Repository Error" msgid "No visual editor configured" msgstr "No visual editor configured" msgid "Please configure a visual editor." msgstr "Please configure a visual editor." msgid "Editor launch failure" msgstr "Editor launch failure" msgid "Failed to open path in terminal" msgstr "Failed to open path in terminal" #, python-format msgid "\"%s\" is not a valid directory" msgstr "\"%s\" is not a valid directory" #, python-format msgid "Invalid configuration: %s" msgstr "Invalid configuration: %s" msgid "Unable to start the following command:" msgstr "Unable to start the following command:" msgid "No shell configured" msgstr "No shell configured" msgid "A terminal shell must be configured" msgstr "A terminal shell must be configured" msgid "Please enter a username" msgstr "Please enter a username" msgid "You must identify yourself to Mercurial" msgstr "You must identify yourself to Mercurial" msgid "Unable to translate input to local encoding." msgstr "Unable to translate input to local encoding." msgid "Checkmark files to add" msgstr "Checkmark files to add" msgid "Checkmark files to forget" msgstr "Checkmark files to forget" msgid "Forget" msgstr "Forget" msgid "Checkmark files to revert" msgstr "Checkmark files to revert" msgid "Revert" msgstr "Revert" msgid "Checkmark files to remove" msgstr "Checkmark files to remove" msgid "Remove" msgstr "Remove" #, python-format msgid "%s - hg %s" msgstr "%s - hg %s" msgid "Do not save backup files (*.orig)" msgstr "Do not save backup files (*.orig)" msgid "Force removal of modified files (--force)" msgstr "Force removal of modified files (--force)" msgid "Add &Largefiles" msgstr "Add &Largefiles" msgid "No files selected" msgstr "No files selected" msgid "No operation to perform" msgstr "No operation to perform" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgid "Remove &Unmodified Files" msgstr "Remove &Unmodified Files" msgid "Remove &All Selected Files" msgstr "Remove &All Selected Files" msgid "Rebase changeset and descendants" msgstr "Rebase changeset and descendants" msgid "To rebase destination" msgstr "To rebase destination" msgid "Swap source and destination" msgstr "Swap source and destination" msgid "Keep original changesets (--keep)" msgstr "Keep original changesets (--keep)" msgid "Keep original branch names (--keepbranches)" msgstr "Keep original branch names (--keepbranches)" msgid "Collapse the rebased changesets (--collapse)" msgstr "Collapse the rebased changesets (--collapse)" msgid "Rebase entire source branch (-b/--base)" msgstr "Rebase entire source branch (-b/--base)" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "Rebase unpublished onto Subversion head (override source, destination)" msgid "Rebase" msgstr "Rebase" #, python-format msgid "Rebase - %s" msgstr "Rebase - %s" msgid "" "Before rebase, you must
                            commit, shelve to patch, or discard changes." msgstr "" "Before rebase, you must commit, shelve to patch, or discard changes." msgid "You may continue the rebase" msgstr "You may continue the rebase" msgid "Rebase is complete" msgstr "Rebase is complete" msgid "Rebase failed" msgstr "Rebase failed" msgid "Rebase aborted" msgstr "Rebase aborted" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" "Rebase generated merge conflicts that must be resolved" msgid "Exiting with an unfinished rebase is not recommended." msgstr "Exiting with an unfinished rebase is not recommended." msgid "Consider aborting the rebase first." msgstr "Consider aborting the rebase first." #, python-format msgid "Merge rejected patch chunks into %s" msgstr "Merge rejected patch chunks into %s" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "Mark this chunk as resolved, goto next unresolved" msgid "Mark this chunk as unresolved" msgstr "Mark this chunk as unresolved" msgid "Reload File" msgstr "Reload File" msgid "Are you sure you want to reload this file?" msgstr "Are you sure you want to reload this file?" msgid "All unsaved changes will be lost." msgstr "All unsaved changes will be lost." msgid "Warning" msgstr "Warning" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgid "Copy source -> destination" msgstr "Copy source -> destination" msgid "Copy Error" msgstr "Copy Error" msgid "Rename Error" msgstr "Rename Error" msgid "Select Source File" msgstr "Select Source File" msgid "Select Source Folder" msgstr "Select Source Folder" msgid "Source does not exist." msgstr "Source does not exist." msgid "The source must be within the repository tree." msgstr "The source must be within the repository tree." msgid "The destination must be within the repository tree." msgstr "The destination must be within the repository tree." msgid "Destination file already exists." msgstr "Destination file already exists." msgid "Are you sure you want to overwrite it ?" msgstr "Are you sure you want to overwrite it ?" #, python-format msgid "Copy - %s" msgstr "Copy - %s" #, python-format msgid "Rename - %s" msgstr "Rename - %s" msgid "Show all" msgstr "Show all" msgid "### revision set query ###" msgstr "### revision set query ###" msgid "Clear current query and query text" msgstr "Clear current query and query text" msgid "Trigger revision set query" msgstr "Trigger revision set query" msgid "Open advanced query editor" msgstr "Open advanced query editor" msgid "Delete selected query from history" msgstr "Delete selected query from history" msgid "filter" msgstr "filter" msgid "Toggle filtering of non-matched changesets" msgstr "Toggle filtering of non-matched changesets" msgid "Show/Hide hidden changesets" msgstr "Show/Hide hidden changesets" msgid "Toggle graft relations visibility" msgstr "Toggle graft relations visibility" msgid "Keyword Search" msgstr "Keyword Search" msgid "Revision Set" msgstr "Revision Set" msgid "(unsaved)" msgstr "(unsaved)" msgid "Display graph the named branch only" msgstr "Display graph the named branch only" msgid "Display only active branches" msgstr "Display only active branches" msgid "Display closed branches" msgstr "Display closed branches" msgid "Include all ancestors" msgstr "Include all ancestors" msgctxt "column header" msgid "Graph" msgstr "Graph" msgctxt "column header" msgid "Rev" msgstr "Rev" msgctxt "column header" msgid "Branch" msgstr "Branch" msgctxt "column header" msgid "Description" msgstr "Description" msgctxt "column header" msgid "Author" msgstr "Author" msgctxt "column header" msgid "Tags" msgstr "Tags" msgctxt "column header" msgid "Latest tags" msgstr "Latest tags" msgctxt "column header" msgid "Node" msgstr "Node" msgctxt "column header" msgid "Git Commit" msgstr "Git Commit" msgctxt "column header" msgid "Age" msgstr "Age" msgctxt "column header" msgid "Local Time" msgstr "Local Time" msgctxt "column header" msgid "UTC Time" msgstr "UTC Time" msgctxt "column header" msgid "Changes" msgstr "Changes" msgctxt "column header" msgid "Converted From" msgstr "Converted From" msgctxt "column header" msgid "Phase" msgstr "Phase" msgctxt "column header" msgid "Filename" msgstr "Filename" msgid "Searching..." msgstr "Searching..." #, python-format msgid "filling (%d)" msgstr "filling (%d)" msgid "Mercurial User" msgstr "Mercurial User" msgid "Repository Registry" msgstr "Repository Registry" msgid "Show &Paths" msgstr "Show &Paths" msgid "Show S&hort Paths" msgstr "Show S&hort Paths" msgid "&Scan Repositories at Startup" msgstr "&Scan Repositories at Startup" msgid "Scan &Remote Repositories" msgstr "Scan &Remote Repositories" msgid "&Refresh Repository List" msgstr "&Refresh Repository List" msgid "Refresh the Repository Registry list" msgstr "Refresh the Repository Registry list" msgid "&Open" msgstr "&Open" msgid "Open the repository in a new tab" msgstr "Open the repository in a new tab" msgid "&Open All" msgstr "&Open All" msgid "Open all repositories in new tabs" msgstr "Open all repositories in new tabs" msgid "New &Group" msgstr "New &Group" msgid "Create a new group" msgstr "Create a new group" msgid "Rename the entry" msgstr "Rename the entry" msgid "Settin&gs" msgstr "Settin&gs" msgid "View the repository's settings" msgstr "View the repository's settings" msgid "Re&move from Registry" msgstr "Re&move from Registry" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgid "Clon&e..." msgstr "Clon&e..." msgid "Clone Repository" msgstr "Clone Repository" msgid "E&xplore" msgstr "E&xplore" msgid "Open the repository in a file browser" msgstr "Open the repository in a file browser" msgid "&Terminal" msgstr "&Terminal" msgid "Open a shell terminal in the repository root" msgstr "Open a shell terminal in the repository root" msgid "&Add Repository..." msgstr "&Add Repository..." msgid "Add a repository to this group" msgstr "Add a repository to this group" msgid "A&dd Subrepository..." msgstr "A&dd Subrepository..." msgid "Convert an existing repository into a subrepository" msgstr "Convert an existing repository into a subrepository" msgid "Remo&ve Subrepository..." msgstr "Remo&ve Subrepository..." msgid "Remove this subrepository from the current revision" msgstr "Remove this subrepository from the current revision" msgid "Copy the root path of the repository to the clipboard" msgstr "Copy the root path of the repository to the clipboard" msgid "Sort by &Name" msgstr "Sort by &Name" msgid "Sort the group by short name" msgstr "Sort the group by short name" msgid "Sort by &Path" msgstr "Sort by &Path" msgid "Sort the group by full path" msgstr "Sort the group by full path" msgid "&Sort by .hgsub" msgstr "&Sort by .hgsub" msgid "Order the subrepos as in .hgsub" msgstr "Order the subrepos as in .hgsub" msgid "Select repository directory to add" msgstr "Select repository directory to add" msgid "Select an existing repository to add as a subrepo" msgstr "Select an existing repository to add as a subrepo" msgid "Cannot add subrepository" msgstr "Cannot add subrepository" #, python-format msgid "%s is not a valid repository" msgstr "%s is not a valid repository" #, python-format msgid "\"%s\" is not a folder" msgstr "\"%s\" is not a folder" msgid "A repository cannot be added as a subrepo of itself" msgstr "A repository cannot be added as a subrepo of itself" #, python-format msgid "" "The selected folder:

                            %s

                            is not inside the target repository." "

                            This may be allowed but is greatly discouraged.
                            If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" "The selected folder:

                            %s

                            is not inside the target repository." "

                            This may be allowed but is greatly discouraged.
                            If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgid "Cannot open repository" msgstr "Cannot open repository" #, python-format msgid "The selected repository:

                            %s

                            cannot be open!" msgstr "The selected repository:

                            %s

                            cannot be open!" msgid "Subrepository already exists" msgstr "Subrepository already exists" #, python-format msgid "" "The selected repository:

                            %s

                            is already a subrepository of:" "

                            %s

                            as: \"%s\"" msgstr "" "The selected repository:

                            %s

                            is already a subrepository of:" "

                            %s

                            as: \"%s\"" msgid "Failed to add subrepository" msgstr "Failed to add subrepository" #, python-format msgid "Cannot open the .hgsub file in:

                            %s" msgstr "Cannot open the .hgsub file in:

                            %s" msgid "Failed to add repository" msgstr "Failed to add repository" #, python-format msgid "The .hgsub file already contains the line:

                            %s" msgstr "The .hgsub file already contains the line:

                            %s" msgid "Subrepo added to .hgsub file" msgstr "Subrepo added to .hgsub file" #, python-format msgid "" "The selected subrepo:

                            %s

                            has been added to the .hgsub " "file of the repository:

                            %s

                            Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" "The selected subrepo:

                            %s

                            has been added to the .hgsub " "file of the repository:

                            %s

                            Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." #, python-format msgid "Cannot update the .hgsub file in:

                            %s" msgstr "Cannot update the .hgsub file in:

                            %s" msgid "Could not open .hgsub file" msgstr "Could not open .hgsub file" msgid "Cannot read the .hgsub file.

                            Subrepository removal failed." msgstr "Cannot read the .hgsub file.

                            Subrepository removal failed." msgid "Subrepository not found" msgstr "Subrepository not found" msgid "" "The selected subrepository was not found on the .hgsub file.

                            Perhaps it " "has already been removed?" msgstr "" "The selected subrepository was not found on the .hgsub file.

                            Perhaps it " "has already been removed?" msgid "&Yes" msgstr "&Yes" msgid "&No" msgstr "&No" msgid "Remove the selected repository?" msgstr "Remove the selected repository?" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgid "Subrepository removed from .hgsub" msgstr "Subrepository removed from .hgsub" msgid "" "The selected subrepository has been removed from the .hgsub file.

                            Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" "The selected subrepository has been removed from the .hgsub file.

                            Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgid "Could not update .hgsub file" msgstr "Could not update .hgsub file" msgid "Cannot update the .hgsub file.

                            Subrepository removal failed." msgstr "Cannot update the .hgsub file.

                            Subrepository removal failed." #, python-format msgid "Unsupported repository type (%s)" msgstr "Unsupported repository type (%s)" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "Cannot open non Mercurial repositories or subrepositories" msgid "New Group" msgstr "New Group" msgid "Confirm Delete" msgstr "Confirm Delete" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "Delete Group '%s' and all its entries?" msgid "Could not get subrepository list" msgstr "Could not get subrepository list" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

                            %s" msgstr "" "It was not possible to get the subrepository list for the repository in:" "

                            %s" msgid "Could not open some subrepositories" msgstr "Could not open some subrepositories" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

                            %s

                            The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

                            %s" msgstr "" "It was not possible to fully load the subrepository list for the repository " "in:

                            %s

                            The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

                            %s" msgid "Updating repository registry" msgstr "Updating repository registry" #, python-format msgid "Loading repository %s" msgstr "Loading repository %s" msgid "Repository Registry updated" msgstr "Repository Registry updated" msgid "Close tab" msgstr "Close tab" msgid "Close other tabs" msgstr "Close other tabs" msgid "Undo close tab" msgstr "Undo close tab" msgid "Reopen last closed tab" msgstr "Reopen last closed tab" msgid "Undo close other tabs" msgstr "Undo close other tabs" msgid "Reopen last closed tab group" msgstr "Reopen last closed tab group" msgid "Failed to open repository" msgstr "Failed to open repository" msgid "&Sort" msgstr "&Sort" #, python-format msgid "Local Repository %s" msgstr "Local Repository %s" #, python-format msgid "" "An exception happened while loading the subrepos of:

                            \"%s\"

                            " msgstr "" "An exception happened while loading the subrepos of:

                            \"%s\"

                            " #, python-format msgid "The exception error message was:

                            %s

                            " msgstr "The exception error message was:

                            %s

                            " msgid "Click OK to continue or Abort to exit." msgstr "Click OK to continue or Abort to exit." msgid "Error loading subrepos" msgstr "Error loading subrepos" msgid "Unable to update repository name" msgstr "Unable to update repository name" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "An error occurred while updating the repository hgrc file (%s)" msgid "default" msgstr "default" msgid "C&hoose Log Columns..." msgstr "C&hoose Log Columns..." msgid "&Resize Columns" msgstr "&Resize Columns" #, python-format msgid "Goto ancestor of %s and %s" msgstr "Goto ancestor of %s and %s" #, python-format msgid "Can't find revision '%s'" msgstr "Can't find revision '%s'" msgid "Drag to change order" msgstr "Drag to change order" msgid "Workbench Log Columns" msgstr "Workbench Log Columns" msgctxt "tab tooltip" msgid "Revision details" msgstr "Revision details" msgctxt "tab tooltip" msgid "Commit" msgstr "Commit" msgctxt "tab tooltip" msgid "Search" msgstr "Search" msgctxt "tab tooltip" msgid "Console log" msgstr "Console log" msgctxt "tab tooltip" msgid "Synchronize" msgstr "Synchronise" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "Patch Branch" #, python-format msgid "%s " msgstr "%s " #, python-format msgid "Found %d incoming changesets" msgstr "Found %d incoming changesets" msgid "Pull" msgstr "Pull" msgid "Pull incoming changesets into your repository" msgstr "Pull incoming changesets into your repository" msgid "Reject incoming changesets" msgstr "Reject incoming changesets" #, python-format msgid "Push current branch (%s)" msgstr "Push current branch (%s)" #, python-format msgid "Push up to current revision (#%d)" msgstr "Push up to current revision (#%d)" #, python-format msgid "Push up to revision #%d" msgstr "Push up to revision #%d" msgid "Push all" msgstr "Push all" msgid "no outgoing changesets" msgstr "no outgoing changesets" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "no outgoing changesets in current branch (%s) / %d in total" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "no outgoing changesets up to current revision (#%d) / %d in total" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "no outgoing changesets up to revision #%d / %d in total" #, python-format msgid "%d outgoing changesets" msgstr "%d outgoing changesets" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "%d outgoing changesets in current branch (%s) / %d in total" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "%d outgoing changesets up to current revision (#%d) / %d in total" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "%d outgoing changesets up to revision #%d / %d in total" msgid "Nothing to push" msgstr "Nothing to push" msgid "No revision found" msgstr "No revision found" #, python-format msgid "%s - verify repository" msgstr "%s - verify repository" #, python-format msgid "%s - recover repository" msgstr "%s - recover repository" msgid "No transaction available" msgstr "No transaction available" msgid "There is no rollback transaction available" msgstr "There is no rollback transaction available" msgid "Undo last commit?" msgstr "Undo last commit?" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "Undo most recent commit (%d), preserving file changes?" msgid "Undo last transaction?" msgstr "Undo last transaction?" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "Rollback to revision %d (undo %s)?" msgid "Unable to determine working copy revision\n" msgstr "Unable to determine working copy revision\n" msgid "Remove current working revision?" msgstr "Remove current working revision?" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgid "Tab cannot exit" msgstr "Tab cannot exit" msgid "Pus&h" msgstr "Pus&h" msgid "Push to &Here" msgstr "Push to &Here" msgid "Push Selected &Branch" msgstr "Push Selected &Branch" msgid "Push &All" msgstr "Push &All" msgid "&Update..." msgstr "&Update..." msgid "Bro&wse at Revision" msgstr "Bro&wse at Revision" msgid "&Merge with Local..." msgstr "&Merge with Local..." msgid "&Tag..." msgstr "&Tag..." msgid "Boo&kmark..." msgstr "Boo&kmark..." msgid "Top&ic..." msgstr "Top&ic..." msgid "Sig&n..." msgstr "Sig&n..." msgid "&Backout..." msgstr "&Backout..." msgid "Revert &All Files..." msgstr "Revert &All Files..." msgid "Copy &Hash" msgstr "Copy &Hash" msgid "E&xport" msgstr "E&xport" msgid "E&xport Patch..." msgstr "E&xport Patch..." msgid "&Email Patch..." msgstr "&Email Patch..." msgid "&Archive..." msgstr "&Archive..." msgid "&Bundle Rev and Descendants..." msgstr "&Bundle Rev and Descendants..." msgid "Change &Phase to" msgstr "Change &Phase to" msgid "&Graft to Local..." msgstr "&Graft to Local..." msgid "Modi&fy History" msgstr "Modi&fy History" msgid "&Unapply Patch" msgstr "&Unapply Patch" msgid "Import to &MQ" msgstr "Import to &MQ" msgid "MQ &Options" msgstr "MQ &Options" msgid "&Rebase..." msgstr "&Rebase..." msgid "&Prune..." msgstr "&Prune..." msgid "&Strip..." msgstr "&Strip..." msgid "Post to Re&view Board..." msgstr "Post to Re&view Board..." msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "&Remote Update..." msgid "Write diff file" msgstr "Write diff file" msgid "Unable to write diff file" msgstr "Unable to write diff file" msgid "Unable to compress history" msgstr "Unable to compress history" msgid "Selected changeset pair not related" msgstr "Selected changeset pair not related" msgid "Visual Diff..." msgstr "Visual Diff..." msgid "Export Diff..." msgstr "Export Diff..." msgid "Export Selected..." msgstr "Export Selected..." msgid "Email Selected..." msgstr "Email Selected..." msgid "Copy Selected as Patch" msgstr "Copy Selected as Patch" msgid "Archive DAG Range..." msgstr "Archive DAG Range..." msgid "Export DAG Range..." msgstr "Export DAG Range..." msgid "Email DAG Range..." msgstr "Email DAG Range..." msgid "Bundle DAG Range..." msgstr "Bundle DAG Range..." msgid "Bisect - Good, Bad..." msgstr "Bisect - Good, Bad..." msgid "Bisect - Bad, Good..." msgstr "Bisect - Bad, Good..." msgid "Compress History..." msgstr "Compress History..." msgid "Rebase..." msgstr "Rebase..." msgid "Goto common ancestor" msgstr "Goto common ancestor" msgid "Graft Selected to local..." msgstr "Graft Selected to local..." msgid "&Prune Selected..." msgstr "&Prune Selected..." msgid "Post Selected to Review Board..." msgstr "Post Selected to Review Board..." msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "Apply patch" msgid "Apply onto original parent" msgstr "Apply onto original parent" msgid "Apply only this patch" msgstr "Apply only this patch" msgid "Fold patches..." msgstr "Fold patches..." msgid "Delete patches..." msgstr "Delete patches..." msgid "Rename patch..." msgstr "Rename patch..." msgid "Pull to here..." msgstr "Pull to here..." msgid "Visual diff..." msgstr "Visual diff..." msgid "Export patch" msgstr "Export patch" msgid "Patch Files (*.patch)" msgstr "Patch Files (*.patch)" msgid "Cannot export revision" msgstr "Cannot export revision" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgid "There is already an existing folder with that same name." msgstr "There is already an existing folder with that same name." msgid "Replace" msgstr "Replace" msgid "Append" msgstr "Append" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgid "What do you want to do?\n" msgstr "What do you want to do?\n" msgid "Replace the existing patch files.\n" msgstr "Replace the existing patch files.\n" msgid "Append the changes to the existing patch files.\n" msgstr "Append the changes to the existing patch files.\n" msgid "Abort the export operation.\n" msgstr "Abort the export operation.\n" msgid "Patch files already exist" msgstr "Patch files already exist" msgid "Patch exported" msgstr "Patch exported" #, python-format msgid "" "Revision #%d (%s) was exported to:

                            %s%s%s" msgstr "" "Revision #%d (%s) was exported to:

                            %s%s%s" msgid "Patches exported" msgstr "Patches exported" #, python-format msgid "%d patches were exported to:

                            %s" msgstr "%d patches were exported to:

                            %s" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

                            Are you sure you want to use revert?

                            (use " "update to checkout another revision)" msgstr "" "Reverting all files will discard changes and leave affected files in a " "modified state.

                            Are you sure you want to use revert?

                            (use " "update to checkout another revision)" msgid "Filter b&y" msgstr "Filter b&y" msgid "&Ancestors and Descendants" msgstr "&Ancestors and Descendants" msgid "A&uthor" msgstr "A&uthor" msgid "&Branch" msgstr "&Branch" msgid "&More Options..." msgstr "&More Options..." msgid "Unable to merge" msgstr "Unable to merge" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "You cannot merge a revision with itself" msgid "Unable to backout" msgstr "Unable to backout" msgid "Write bundle" msgstr "Write bundle" msgid "Backwards phase change requested" msgstr "Backwards phase change requested" msgid "Do you really want to make this revision secret?" msgstr "Do you really want to make this revision secret?" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgid "&Make secret" msgstr "&Make secret" msgid "&Cancel" msgstr "&Cancel" msgid "Do you really want to force a backwards phase transition?" msgstr "Do you really want to force a backwards phase transition?" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgid "&Force" msgstr "&Force" msgid "Cannot import selected revision" msgstr "Cannot import selected revision" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgid "Invalid command" msgstr "Invalid command" msgid "The selected command is empty" msgstr "The selected command is empty" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" "The following error message was returned:\n" "\n" "%s" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" "\n" "\n" "Please check that the \"thg\" command is valid." msgid "Failed to execute custom TortoiseHg command" msgstr "Failed to execute custom TortoiseHg command" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "The command \"%s\" failed (code %d)." msgid "Failed to execute custom command" msgstr "Failed to execute custom command" #, python-format msgid "The command \"%s\" could not be executed." msgstr "The command \"%s\" could not be executed." #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgid "&Edit Toolbar" msgstr "&Edit Toolbar" msgid "&Refresh" msgstr "&Refresh" msgid "&Filter Toolbar" msgstr "&Filter Toolbar" #, python-format msgid "TortoiseHg: %s" msgstr "TortoiseHg: %s" msgid "S&tatus Bar" msgstr "S&tatus Bar" #, python-format msgid "Resolve Conflicts - %s" msgstr "Resolve Conflicts - %s" msgid "Local revision information" msgstr "Local revision information" msgid "Other revision information" msgstr "Other revision information" msgid "Unresolved conflicts" msgstr "Unresolved conflicts" msgid "Mercurial Re&solve" msgstr "Mercurial Re&solve" msgid "Attempt automatic (trivial) merge" msgstr "Attempt automatic (trivial) merge" msgid "Tool &Resolve" msgstr "Tool &Resolve" msgid "Merge using selected merge tool" msgstr "Merge using selected merge tool" msgid "&Take Local" msgstr "&Take Local" msgid "Accept the local file version (yours)" msgstr "Accept the local file version (yours)" msgid "Take &Other" msgstr "Take &Other" msgid "Accept the other file version (theirs)" msgstr "Accept the other file version (theirs)" msgid "&Mark as Resolved" msgstr "&Mark as Resolved" msgid "Mark this file as resolved" msgstr "Mark this file as resolved" msgid "Diff &Local to Ancestor" msgstr "Diff &Local to Ancestor" msgid "&Diff Other to Ancestor" msgstr "&Diff Other to Ancestor" msgid "Resolved conflicts" msgstr "Resolved conflicts" msgid "&Edit File" msgstr "&Edit File" msgid "Edit resolved file" msgstr "Edit resolved file" msgid "3-&Way Diff" msgstr "3-&Way Diff" msgid "Visual three-way diff" msgstr "Visual three-way diff" msgid "Visual diff between resolved file and first parent" msgstr "Visual diff between resolved file and first parent" msgid "&Diff to Other" msgstr "&Diff to Other" msgid "Visual diff between resolved file and second parent" msgstr "Visual diff between resolved file and second parent" msgid "Mark as &Unresolved" msgstr "Mark as &Unresolved" msgid "Mark this file as unresolved" msgstr "Mark this file as unresolved" msgid "Detected merge/diff tools:" msgstr "Detected merge/diff tools:" msgid "Command output" msgstr "Command output" msgid "Unable to show subrepository files" msgstr "Unable to show subrepository files" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgid "There are merge conflicts to be resolved" msgstr "There are merge conflicts to be resolved" msgid "All conflicts are resolved." msgstr "All conflicts are resolved." msgid "There are no conflicting file merges." msgstr "There are no conflicting file merges." msgid "Exit without finishing resolve?" msgstr "Exit without finishing resolve?" msgid "Unresolved conflicts remain. Are you sure?" msgstr "Unresolved conflicts remain. Are you sure?" msgid "E&xit" msgstr "E&xit" msgid "Ext" msgstr "Ext" msgid "Repository" msgstr "Repository" msgid "" msgstr "" msgid "File List Toolbar" msgstr "File List Toolbar" msgid "Ma&nifest Mode" msgstr "Ma&nifest Mode" msgid "Show all version-controlled files in tree view" msgstr "Show all version-controlled files in tree view" msgid "&Flat List" msgstr "&Flat List" msgid "### filter text ###" msgstr "### filter text ###" msgid "Changed by &This Commit" msgstr "Changed by &This Commit" msgid "Show files changed by this commit" msgstr "Show files changed by this commit" msgid "Compare to &1st Parent" msgstr "Compare to &1st Parent" msgid "Compare to &2nd Parent" msgstr "Compare to &2nd Parent" msgid "Toggle parent to be used as the base revision" msgstr "Toggle parent to be used as the base revision" msgid "List Optio&ns" msgstr "List Optio&ns" #, python-format msgid "%s - Revision Details (%s)" msgstr "%s - Revision Details (%s)" #, python-format msgid "Revert - %s" msgstr "Revert - %s" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "Revert %s to its contents at the following revision?" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "Revert %d files to their contents at the following revision?" msgid "Revert all files to this revision" msgstr "Revert all files to this revision" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "revision %d's first parent (i.e. revision %d)" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "revision %d's second parent (i.e. revision %d)" msgid "null revision (i.e. remove file(s))" msgstr "null revision (i.e. remove file(s))" msgid "Changeset:" msgstr "Changeset:" msgid "Child:" msgstr "Child:" msgid "Predecessors:" msgstr "Predecessors:" msgid "Successors:" msgstr "Successors:" msgid "Head is closed!" msgstr "Head is closed!" msgid "Changesets where username contains string." msgstr "Changesets where username contains string." msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" "Search commit message, user name, and names of changed files for string." msgid "Like \"keyword(string)\" but accepts a regex." msgstr "Like \"keyword(string)\" but accepts a regex." msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" "Changesets not found in the specified destination repository, or the default " "push location." msgid "The named bookmark or all bookmarks." msgstr "The named bookmark or all bookmarks." msgid "The named tag or all tags." msgstr "The named tag or all tags." msgid "Changeset is tagged." msgstr "Changeset is tagged." msgid "Changeset is a named branch head." msgstr "Changeset is a named branch head." msgid "Changeset is a merge changeset." msgstr "Changeset is a merge changeset." msgid "Changeset is closed." msgstr "Changeset is closed." msgid "" "Changesets within the interval, see help dates" msgstr "" "Changesets within the interval, see help dates" msgid "Greatest common ancestor of the two changesets." msgstr "Greatest common ancestor of the two changesets." msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" "Changesets affecting files matched by pattern. See help patterns" msgid "Changesets which modify files matched by pattern." msgstr "Changesets which modify files matched by pattern." msgid "Changesets which add files matched by pattern." msgstr "Changesets which add files matched by pattern." msgid "Changesets which remove files matched by pattern." msgstr "Changesets which remove files matched by pattern." msgid "Changesets containing files matched by pattern." msgstr "Changesets containing files matched by pattern." msgid "All changesets belonging to the branches of changesets in set." msgstr "All changesets belonging to the branches of changesets in set." msgid "Members of a set with no children in set." msgstr "Members of a set with no children in set." msgid "Changesets which are descendants of changesets in set." msgstr "Changesets which are descendants of changesets in set." msgid "Changesets that are ancestors of a changeset in set." msgstr "Changesets that are ancestors of a changeset in set." msgid "Child changesets of changesets in set." msgstr "Child changesets of changesets in set." msgid "The set of all parents for all changesets in set." msgstr "The set of all parents for all changesets in set." msgid "First parent for all changesets in set, or the working directory." msgstr "First parent for all changesets in set, or the working directory." msgid "Second parent for all changesets in set, or the working directory." msgstr "Second parent for all changesets in set, or the working directory." msgid "Changesets with no parent changeset in set." msgstr "Changesets with no parent changeset in set." msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgid "Changeset with lowest revision number in set." msgstr "Changeset with lowest revision number in set." msgid "Changeset with highest revision number in set." msgstr "Changeset with highest revision number in set." msgid "First n members of a set." msgstr "First n members of a set." msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "An alias for \"::.\" (ancestors of the working copy's first parent)." msgid "All changesets, the same as 0:tip." msgstr "All changesets, the same as 0:tip." msgid "Revision Set Query" msgstr "Revision Set Query" msgid "all revisions converted from subversion" msgstr "all revisions converted from subversion" msgid "changeset which represents converted svn revision" msgstr "changeset which represents converted svn revision" msgid "Common sets" msgstr "Common sets" msgid "File pattern sets" msgstr "File pattern sets" msgid "Set Ancestry" msgstr "Set Ancestry" msgid "Set Logic" msgstr "Set Logic" msgid "" "help " "revsets" msgstr "" "help " "revsets" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" "\n" "Caught keyboard interrupt, aborting.\n" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "failed to fork GUI process: %s\n" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "can not read file \"%s\". Ignored.\n" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" "thg: command '%s' is ambiguous:\n" " %s\n" #, python-format msgid "thg: unknown command '%s'\n" msgstr "thg: unknown command '%s'\n" #, python-format msgid "thg %s: %s\n" msgstr "thg %s: %s\n" #, python-format msgid "thg: %s\n" msgstr "thg: %s\n" #, python-format msgid "abort: %s!\n" msgstr "abort: %s!\n" #, python-format msgid "abort: %s\n" msgstr "abort: %s\n" #, python-format msgid "(%s)\n" msgstr "(%s)\n" msgid "option --config may not be abbreviated!" msgstr "option --config may not be abbreviated!" msgid "invalid arguments" msgstr "invalid arguments" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "unrecognised profiling format '%s' - Ignored\n" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgid "repository root directory or symbolic path name" msgstr "repository root directory or symbolic path name" msgid "enable additional output" msgstr "enable additional output" msgid "suppress output" msgstr "suppress output" msgid "display help and exit" msgstr "display help and exit" msgid "set/override config option (use 'section.name=value')" msgstr "set/override config option (use 'section.name=value')" msgid "enable debugging output" msgstr "enable debugging output" msgid "start debugger" msgstr "start debugger" msgid "print command execution profile" msgstr "print command execution profile" msgid "do not fork GUI process" msgstr "do not fork GUI process" msgid "always fork GUI process" msgstr "always fork GUI process" msgid "read file list from file" msgstr "read file list from file" msgid "read file list from file encoding utf-8" msgstr "read file list from file encoding utf-8" msgid "thg about" msgstr "thg about" msgid "thg add [FILE]..." msgstr "thg add [FILE]..." msgid "revision to annotate" msgstr "revision to annotate" msgid "open to line" msgstr "open to line" msgid "initial search pattern" msgstr "initial search pattern" msgid "thg annotate" msgstr "thg annotate" #, python-format msgid "invalid line number: %s" msgstr "invalid line number: %s" msgid "revision to archive" msgstr "revision to archive" msgid "thg archive" msgstr "thg archive" msgid "merge with old dirstate parent after backout" msgstr "merge with old dirstate parent after backout" msgid "parent to choose when backing out merge" msgstr "parent to choose when backing out merge" msgid "revision to backout" msgstr "revision to backout" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "thg backout [OPTION]... [[-r] REV]" msgid "thg bisect" msgstr "thg bisect" msgid "revision" msgstr "revision" msgid "thg bookmarks [-r REV] [NAME]" msgstr "thg bookmarks [-r REV] [NAME]" msgid "only one new bookmark name allowed" msgstr "only one new bookmark name allowed" msgid "the clone will include an empty working copy (only a repository)" msgstr "the clone will include an empty working copy (only a repository)" msgid "revision, tag or branch to check out" msgstr "revision, tag or branch to check out" msgid "include the specified changeset" msgstr "include the specified changeset" msgid "clone only the specified branch" msgstr "clone only the specified branch" msgid "use pull protocol to copy metadata" msgstr "use pull protocol to copy metadata" msgid "use uncompressed transfer (fast over LAN)" msgstr "use uncompressed transfer (fast over LAN)" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "thg clone [OPTION]... [SOURCE] [DEST]" msgid "record user as committer" msgstr "record user as committer" msgid "record datecode as commit date" msgstr "record datecode as commit date" msgid "thg commit [OPTIONS] [FILE]..." msgstr "thg commit [OPTIONS] [FILE]..." msgid "thg debugblockmatcher" msgstr "thg debugblockmatcher" msgid "thg debugbugreport [TEXT]" msgstr "thg debugbugreport [TEXT]" msgid "thg debugconsole" msgstr "thg debugconsole" msgid "thg debuglighthg" msgstr "thg debuglighthg" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "thg debugruncommand -- COMMAND [ARGUMENT]..." msgid "no command specified" msgstr "no command specified" msgid "thg drag_copy SOURCE... DEST" msgstr "thg drag_copy SOURCE... DEST" msgid "thg drag_move SOURCE... DEST" msgstr "thg drag_move SOURCE... DEST" msgid "a revision to send" msgstr "a revision to send" msgid "thg email [REVS]" msgstr "thg email [REVS]" msgid "use only one form to specify the revision" msgstr "use only one form to specify the revision" msgid "select the specified revision" msgstr "select the specified revision" msgid "side-by-side comparison of revisions" msgstr "side-by-side comparison of revisions" msgid "thg filelog [OPTION]... FILE" msgstr "thg filelog [OPTION]... FILE" msgid "requires a single filename" msgstr "requires a single filename" msgid "thg forget [FILE]..." msgstr "thg forget [FILE]..." msgid "revisions to graft" msgstr "revisions to graft" msgid "thg graft [-r] REV..." msgstr "thg graft [-r] REV..." msgid "You must provide revisions to graft" msgstr "You must provide revisions to graft" msgid "ignore case during search" msgstr "ignore case during search" msgid "thg grep" msgstr "thg grep" msgid "thg guess" msgstr "thg guess" msgid "thg help [COMMAND]" msgstr "thg help [COMMAND]" msgid "global options:" msgstr "global options:" msgid "use \"thg help\" for the full list of commands" msgstr "use \"thg help\" for the full list of commands" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "use \"thg -v help%s\" to show aliases and global options" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "use \"thg -v help %s\" to show global options" msgid "" "list of commands:\n" "\n" msgstr "" "list of commands:\n" "\n" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" "\n" "aliases: %s\n" msgid "(no help text available)" msgstr "(no help text available)" msgid "options:\n" msgstr "options:\n" msgid "no commands defined\n" msgstr "no commands defined\n" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgid "" "basic commands:\n" "\n" msgstr "" "basic commands:\n" "\n" #, python-format msgid " (default: %s)" msgstr " (default: %s)" msgid "thg hgignore [FILE]" msgstr "thg hgignore [FILE]" msgid "import to the patch queue (MQ)" msgstr "import to the patch queue (MQ)" msgid "thg import [OPTION] [SOURCE]..." msgstr "thg import [OPTION] [SOURCE]..." msgid "thg init [DEST]" msgstr "thg init [DEST]" msgid "thg lock" msgstr "thg lock" msgid "search for a given text or revset" msgstr "search for a given text or revset" msgid "(DEPRECATED)" msgstr "(DEPRECATED)" msgid "open a new workbench window" msgstr "open a new workbench window" msgid "thg log [OPTIONS] [FILE]" msgstr "thg log [OPTIONS] [FILE]" msgid "cannot specify both -k/--query and filenames" msgstr "cannot specify both -k/--query and filenames" msgid "revision to display" msgstr "revision to display" msgid "thg manifest [-r REV] [FILE]" msgstr "thg manifest [-r REV] [FILE]" msgid "revision to merge" msgstr "revision to merge" msgid "thg merge [[-r] REV]" msgstr "thg merge [[-r] REV]" msgid "Merge revision not specified or not found" msgstr "Merge revision not specified or not found" msgid "a revision to post" msgstr "a revision to post" msgid "thg postreview [-r] REV..." msgstr "thg postreview [-r] REV..." msgid "reviewboard extension not enabled" msgstr "reviewboard extension not enabled" #, python-format msgid "see %(url)s" msgstr "see %(url)s" msgid "no revisions specified" msgstr "no revisions specified" msgid "revisions to prune" msgstr "revisions to prune" msgid "thg prune [-r] REV..." msgstr "thg prune [-r] REV..." msgid "thg purge" msgstr "thg purge" msgid "keep original changesets" msgstr "keep original changesets" msgid "keep original branch names" msgstr "keep original branch names" msgid "rebase from the specified changeset" msgstr "rebase from the specified changeset" msgid "rebase onto the specified changeset" msgstr "rebase onto the specified changeset" msgid "thg rebase -s REV -d REV [--keep]" msgstr "thg rebase -s REV -d REV [--keep]" msgid "Rebase already in progress" msgstr "Rebase already in progress" msgid "Resuming rebase already in progress" msgstr "Resuming rebase already in progress" msgid "You must provide source and dest arguments" msgstr "You must provide source and dest arguments" msgid "thg rejects [FILE]" msgstr "thg rejects [FILE]" msgid "You must provide the path to a file" msgstr "You must provide the path to a file" msgid "thg remove [FILE]..." msgstr "thg remove [FILE]..." msgid "thg rename [SOURCE] [DEST]" msgstr "thg rename [SOURCE] [DEST]" msgid "field to give initial focus" msgstr "field to give initial focus" msgid "thg repoconfig" msgstr "thg repoconfig" msgid "thg resolve" msgstr "thg resolve" msgid "the revision to show" msgstr "the revision to show" msgid "thg revdetails [-r REV]" msgstr "thg revdetails [-r REV]" msgid "thg revert [FILE]..." msgstr "thg revert [FILE]..." msgid "revision to update" msgstr "revision to update" msgid "thg rupdate [[-r] REV]" msgstr "thg rupdate [[-r] REV]" msgid "name of the hgweb config file (serve more than one repository)" msgstr "name of the hgweb config file (serve more than one repository)" msgid "name of the hgweb config file (DEPRECATED)" msgstr "name of the hgweb config file (DEPRECATED)" msgid "thg serve [--web-conf FILE]" msgstr "thg serve [--web-conf FILE]" msgid "thg shellconfig" msgstr "thg shellconfig" msgid "thg shelve" msgstr "thg shelve" msgid "sign even if the sigfile is modified" msgstr "sign even if the sigfile is modified" msgid "make the signature local" msgstr "make the signature local" msgid "the key id to sign with" msgstr "the key id to sign with" msgid "do not commit the sigfile after signing" msgstr "do not commit the sigfile after signing" msgid "use as commit message" msgstr "use as commit message" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgid "Please enable the Gpg extension first." msgstr "Please enable the Gpg extension first." msgid "show files without changes" msgstr "show files without changes" msgid "show ignored files" msgstr "show ignored files" msgid "thg status [OPTIONS] [FILE]" msgstr "thg status [OPTIONS] [FILE]" msgid "discard uncommitted changes (no backup)" msgstr "discard uncommitted changes (no backup)" msgid "do not back up stripped revisions" msgstr "do not back up stripped revisions" msgid "do not modify working copy during strip" msgstr "do not modify working copy during strip" msgid "revision to strip" msgstr "revision to strip" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "thg strip [-k] [-f] [-n] [[-r] REV]" msgid "open the bookmark sync window" msgstr "open the bookmark sync window" msgid "thg sync [OPTION]... [PEER]" msgstr "thg sync [OPTION]... [PEER]" msgid "replace existing tag" msgstr "replace existing tag" msgid "make the tag local" msgstr "make the tag local" msgid "revision to tag" msgstr "revision to tag" msgid "remove a tag" msgstr "remove a tag" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgid "wait until the second ticks over" msgstr "wait until the second ticks over" msgid "notify the shell for paths given" msgstr "notify the shell for paths given" msgid "remove the status cache" msgstr "remove the status cache" msgid "show the contents of the status cache (no update)" msgstr "show the contents of the status cache (no update)" msgid "update all repos in current dir" msgstr "update all repos in current dir" msgid "thg thgstatus [OPTION]" msgstr "thg thgstatus [OPTION]" msgid "thg topics [-r REV] [NAME]" msgstr "thg topics [-r REV] [NAME]" msgid "Please enable the Topic extension first." msgstr "Please enable the Topic extension first." msgid "only one new topic name allowed" msgstr "only one new topic name allowed" msgid "thg update [-C] [[-r] REV]" msgstr "thg update [-C] [[-r] REV]" msgid "thg userconfig" msgstr "thg userconfig" msgid "changeset to view in diff tool" msgstr "changeset to view in diff tool" msgid "revisions to view in diff tool" msgstr "revisions to view in diff tool" msgid "bundle file to preview" msgstr "bundle file to preview" msgid "launch visual diff tool" msgstr "launch visual diff tool" msgid "print license" msgstr "print licence" msgid "thg version [OPTION]" msgstr "thg version [OPTION]" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "TortoiseHg Dialogues (version %s), Mercurial (version %s)\n" msgid "Location:" msgstr "Location:" msgid "Update to:" msgstr "Update to:" msgid "Options:" msgstr "Options:" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "Discard remote changes, no backup (-C/--clean)" msgid "Perform a push before updating (-p/--push)" msgstr "Perform a push before updating (-p/--push)" msgid "Allow pushing new branches (--new-branch)" msgstr "Allow pushing new branches (--new-branch)" msgid "Force push to remote location (-f/--force)" msgstr "Force push to remote location (-f/--force)" msgid "remove working directory" msgstr "remove working directory" msgid "unknown revision!" msgstr "unknown revision!" #, python-format msgid "Remote Update - %s" msgstr "Remote Update - %s" msgid "&Update" msgstr "&Update" msgid "Log" msgstr "Log" msgid "Repositories" msgstr "Repositories" #, python-format msgid "Running at %s" msgstr "Running at %s" msgid "Stopped" msgstr "Stopped" msgid "TortoiseHg Web Server" msgstr "TortoiseHg Web Server" msgid "Web Server" msgstr "Web Server" msgid "Port:" msgstr "Port:" msgid "Status:" msgstr "Status:" msgid "Start" msgstr "Start" msgid "Settings" msgstr "Settings" msgid "" msgstr "" msgid "&True" msgstr "&True" msgid "&False" msgstr "&False" msgid "&Unspecified" msgstr "&Unspecified" #, python-format msgid "%dpt" msgstr "%dpt" msgid "Bold" msgstr "Bold" msgid "Italic" msgstr "Italic" msgid "Strike" msgstr "Strike" msgid "Underline" msgstr "Underline" msgid "&Set..." msgstr "&Set..." msgid "&Clear" msgstr "&Clear" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "Failed to load issue tracker: '%s': %s. " msgid "&Browse..." msgstr "&Browse..." msgid "UI Language" msgstr "UI Language" msgid "Specify your preferred user interface language (restart needed)" msgstr "Specify your preferred user interface language (restart needed)" msgid "Three-way Merge Tool" msgstr "Three-way Merge Tool" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgid "Visual Diff Tool" msgstr "Visual Diff Tool" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgid "Visual Editor" msgstr "Visual Editor" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgid "CLI Editor" msgstr "CLI Editor" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgid "Shell" msgstr "Shell" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
                            Default, Windows: cmd.exe /" "K title %(reponame)s
                            Default, OS X: not set
                            Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
                            Default, Windows: cmd.exe /" "K title %(reponame)s
                            Default, OS X: not set
                            Default, other: xterm -T " "\"%(reponame)s\"" msgid "Immediate Operations" msgstr "Immediate Operations" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgid "Tab Width" msgstr "Tab Width" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgid "Force Repo Tab" msgstr "Force Repo Tab" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "Always show repo tabs, even for a single repo. Default: False" msgid "Monitor Repo Changes" msgstr "Monitor Repo Changes" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgid "Max Diff Size" msgstr "Max Diff Size" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgid "Fork GUI" msgstr "Fork GUI" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" "When running from the command line, fork a background process to run " "graphical dialogues. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgid "Full Path Title" msgstr "Full Path Title" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" "Show a full directory path of the repository in the dialogue title instead " "of just the root directory name. Default: False" msgid "Auto-resolve merges" msgstr "Auto-resolve merges" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgid "New Repo Skeleton" msgstr "New Repo Skeleton" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "Workbench" msgid "Single Workbench Window" msgstr "Single Workbench Window" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window every time that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgid "Default widget" msgstr "Default widget" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgid "" "Open new tabs next\n" "to the current tab" msgstr "" "Open new tabs next\n" "to the current tab" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgid "Author Coloring" msgstr "Author Colouring" msgid "Color changesets by author name. Default: False" msgstr "Colour changesets by author name. Default: False" msgid "Full Authorname" msgstr "Full Authorname" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgid "Task Tabs" msgstr "Task Tabs" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgid "Task Toolbar Order" msgstr "Task Toolbar Order" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
                            Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
                            Valid names are: log commit sync grep and " "pbranch.
                            Default: log commit grep pbranch | sync" msgstr "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
                            Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
                            Valid names are: log commit sync grep and " "pbranch.
                            Default: log commit grep pbranch | sync" msgid "Long Summary" msgstr "Long Summary" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgid "Log Batch Size" msgstr "Log Batch Size" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgid "Dead Branches" msgstr "Dead Branches" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgid "Branch Colors" msgstr "Branch Colours" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" "Space separated list of branch names and colours of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgid "Hide Tags" msgstr "Hide Tags" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgid "Activate Bookmarks" msgstr "Activate Bookmarks" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

                            • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
                            • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
                            • never: Never show any prompt to " "activate any bookmarks.

                            Default: prompt" msgstr "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

                            • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
                            • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
                            • never: Never show any prompt to " "activate any bookmarks.

                            Default: prompt" msgid "Show Family Line" msgstr "Show Family Line" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

                            Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

                            Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgid "Use optimized graph layouter" msgstr "Use optimised graph layouter" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

                            Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" "Use alternative graph layouter for large repositories. Default: " "False

                            Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgctxt "config item" msgid "Commit" msgstr "Commit" msgid "Username" msgstr "Username" msgid "" "Name associated with commits. The common format is:
                            Full Name <" "email@example.com>" msgstr "" "Name associated with commits. The common format is:
                            Full Name <" "email@example.com>" msgid "Ask Username" msgstr "Ask Username" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgid "Summary Line Length" msgstr "Summary Line Length" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgid "Close After Commit" msgstr "Close After Commit" msgid "Close the commit tool after every successful commit. Default: False" msgstr "Close the commit tool after every successful commit. Default: False" msgid "Push After Commit" msgstr "Push After Commit" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgid "Auto Commit List" msgstr "Auto Commit List" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgid "Auto Exclude List" msgstr "Auto Exclude List" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgid "English Messages" msgstr "English Messages" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgid "New Commit Phase" msgstr "New Commit Phase" msgid "The phase of new commits. Default: draft" msgstr "The phase of new commits. Default: draft" msgid "Secret MQ Patches" msgstr "Secret MQ Patches" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "Make MQ patches secret (instead of draft). Default: False" msgid "Check Subrepo Phase" msgstr "Check Subrepo Phase" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgid "Monitor working
                            directory changes" msgstr "Monitor working
                            directory changes" msgid "" "Select when the working directory status list will be refreshed:
                            - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
                            TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
                            - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
                            - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
                            Default: auto" msgstr "" "Select when the working directory status list will be refreshed:
                            - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
                            TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
                            - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
                            - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
                            Default: auto" msgid "Confirm adding unknown files" msgstr "Confirm adding unknown files" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" "Determines if TortoiseHg should show a confirmation dialogue before adding " "new files in a commit. If True, a confirmation dialogue will be shown. If " "False, selected new files will be included in the commit with no " "confirmation dialogue. Default: True" msgid "Confirm deleting files" msgstr "Confirm deleting files" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" "Determines if TortoiseHg should show a confirmation dialogue before removing " "files in a commit. If True, a confirmation dialogue will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialogue. Default: True" msgid "Sync" msgstr "Sync" msgid "After Pull Operation" msgstr "After Pull Operation" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgid "Default Push" msgstr "Default Push" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

                            • all: The default. Push all changes in all " "branches.
                            • branch: Push all changes in the current branch.
                            • revision: Push the changes in the current branch up to the current revision.

                            Default: all" msgstr "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

                            • all: The default. Push all changes in all " "branches.
                            • branch: Push all changes in the current branch.
                            • revision: Push the changes in the current branch up to the current revision.

                            Default: all" msgid "Confirm Push" msgstr "Confirm Push" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgid "Target Combo" msgstr "Target Combo" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

                            • auto: The default. Show the combo if more than one target " "configured.
                            • always: Always show the combo.

                            Default: auto" msgstr "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

                            • auto: The default. Show the combo if more than one target " "configured.
                            • always: Always show the combo.

                            Default: auto" msgid "SSH Command" msgstr "SSH Command" msgid "" "Command to use for SSH connections.

                            Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" "Command to use for SSH connections.

                            Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgid "Subrepository Features:" msgstr "Subrepository Features:" msgid "Allow Hg Subrepos" msgstr "Allow Hg Subrepos" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgid "Allow Git Subrepos" msgstr "Allow Git Subrepos" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

                            See the security note before enabling Git " "subrepos." msgstr "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

                            See the security note before enabling Git " "subrepos." msgid "Allow SVN Subrepos" msgstr "Allow SVN Subrepos" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

                            See the security note before enabling " "Subversion subrepos." msgstr "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

                            See the security note before enabling " "Subversion subrepos." msgid "Server" msgstr "Server" msgid "Repository Details:" msgstr "Repository Details:" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgid "Encoding" msgstr "Encoding" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgid "'Publishing' repository" msgstr "'Publishing' repository" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" "Controls draft phase behaviour when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgid "Web Server:" msgstr "Web Server:" msgid "Textual description of the repository's purpose or contents." msgstr "Textual description of the repository's purpose or contents." msgid "Contact" msgstr "Contact" msgid "Name or email address of the person in charge of the repository." msgstr "Name or e-mail address of the person in charge of the repository." msgid "Style" msgstr "Style" msgid "Which template map style to use" msgstr "Which template map style to use" msgid "Archive Formats" msgstr "Archive Formats" msgid "Comma separated list of archive formats allowed for downloading" msgstr "Comma-separated list of archive formats allowed for downloading" msgid "Port" msgstr "Port" msgid "Port to listen on" msgstr "Port to listen on" msgid "Push Requires SSL" msgstr "Push Requires SSL" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgid "Stripes" msgstr "Stripes" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgid "Max Files" msgstr "Max Files" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "Maximum number of files to list per changeset. Default: 10" msgid "Max Changes" msgstr "Max Changes" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "Maximum number of changes to list on the changelog. Default: 10" msgid "Allow Push" msgstr "Allow Push" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgid "Deny Push" msgstr "Deny Push" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgid "Proxy" msgstr "Proxy" msgid "Host" msgstr "Host" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgid "Bypass List" msgstr "Bypass List" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "" "Optional. Comma-separated list of host names that should bypass the proxy" msgid "Optional. User name to authenticate with at the proxy server" msgstr "Optional. User name to authenticate with at the proxy server" msgid "Password" msgstr "Password" msgid "Optional. Password to authenticate with at the proxy server" msgstr "Optional. Password to authenticate with at the proxy server" msgid "From" msgstr "From" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "E-mail address to use in the \"From\" header and for the SMTP envelope" msgid "To" msgstr "To" msgid "Comma-separated list of recipient email addresses" msgstr "Comma-separated list of recipient e-mail addresses" msgid "Cc" msgstr "Cc" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "Comma-separated list of carbon copy recipient e-mail addresses" msgid "Bcc" msgstr "Bcc" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "Comma-separated list of blind carbon copy recipient e-mail addresses" msgid "method" msgstr "method" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" "Optional. Method to use to send e-mail messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgid "SMTP Host" msgstr "SMTP Host" msgid "Host name of mail server" msgstr "Host name of mail server" msgid "SMTP Port" msgstr "SMTP Port" msgid "Port to connect to on mail server. Default: 25" msgstr "Port to connect to on mail server. Default: 25" msgid "SMTP TLS" msgstr "SMTP TLS" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "Method to enable TLS when connecting to mail server. Default: none" msgid "SMTP Username" msgstr "SMTP Username" msgid "Username to authenticate to mail server with" msgstr "Username to authenticate to mail server with" msgid "SMTP Password" msgstr "SMTP Password" msgid "Password to authenticate to mail server with" msgstr "Password to authenticate to mail server with" msgid "Local Hostname" msgstr "Local Hostname" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "Hostname the sender can use to identify itself to the mail server." msgid "Diff and Annotate" msgstr "Diff and Annotate" msgid "Patch EOL" msgstr "Patch EOL" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" "Normalise file line endings during and after patch to lf or crlf. Strict " "does no normalisation. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgid "Git Format" msgstr "Git Format" msgid "Use git extended diff header format. Default: False" msgstr "Use git extended diff header format. Default: False" msgid "MQ Git Format" msgstr "MQ Git Format" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgid "No Dates" msgstr "No Dates" msgid "Do not include modification dates in diff headers. Default: False" msgstr "Do not include modification dates in diff headers. Default: False" msgid "Show Function" msgstr "Show Function" msgid "Show which function each change is in. Default: False" msgstr "Show which function each change is in. Default: False" msgid "Ignore White Space" msgstr "Ignore White Space" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "Ignore white space when comparing lines in diff views. Default: False" msgid "Ignore WS Amount" msgstr "Ignore White Space Amount" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "" "Ignore changes in the amount of white space in diff views. Default: False" msgid "Ignore Blank Lines" msgstr "Ignore Blank Lines" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "Ignore changes whose lines are all blank in diff views. Default: False" msgid "Annotate:" msgstr "Annotate:" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" "Ignore white space when comparing lines in the annotate view. Default: False" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgid "Fonts" msgstr "Fonts" msgid "Message Font" msgstr "Message Font" msgid "Font used to display commit messages. Default: monospace 10" msgstr "Font used to display commit messages. Default: monospace 10" msgid "Diff Font" msgstr "Diff Font" msgid "Font used to display text differences. Default: monospace 10" msgstr "Font used to display text differences. Default: monospace 10" msgid "ChangeLog Font" msgstr "ChangeLog Font" msgid "Font used to display changelog data. Default: monospace 10" msgstr "Font used to display changelog data. Default: monospace 10" msgid "Output Font" msgstr "Output Font" msgid "Font used to display output messages. Default: sans 8" msgstr "Font used to display output messages. Default: sans 8" msgid "Extensions" msgstr "Extensions" msgid "Tools" msgstr "Tools" msgid "Hooks" msgstr "Hooks" msgid "Issue Tracking" msgstr "Issue Tracking" msgid "Issue Regex" msgstr "Issue Regex" msgid "Defines the regex to match when picking up issue numbers." msgstr "Defines the regex to match when picking up issue numbers." msgid "Issue Link" msgstr "Issue Link" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgid "Inline Tags" msgstr "Inline Tags" msgid "Show tags at start of commit message." msgstr "Show tags at start of commit message." msgid "Mandatory Issue Reference" msgstr "Mandatory Issue Reference" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgid "Issue Tracker Plugin" msgstr "Issue Tracker Plugin" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgid "Configure Issue Tracker" msgstr "Configure Issue Tracker" msgid "Configure the selected COM Bug Tracker plugin." msgstr "Configure the selected COM Bug Tracker plugin." msgid "Issue Tracker Trigger" msgstr "Issue Tracker Trigger" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

                            • never: Do not update the Issue Tracker " "state automatically.
                            • commit: Update the Issue Tracker state after " "a successful commit.

                            Default: never" msgstr "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

                            • never: Do not update the Issue Tracker " "state automatically.
                            • commit: Update the Issue Tracker state after " "a successful commit.

                            Default: never" msgid "Changeset Link" msgstr "Changeset Link" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
                            The template string " "uses a normal mercurial template syntax, such as:

                            • {node|short} : replaced by " "the 12 digit revision id.
                            • {rev} : replaced by the revision number." "
                            • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
                            For example, in order to " "link to bitbucket commit pages you can set this to:
                            https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
                            You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
                            https://github.com/torvalds/" "linux/commit/{gitnode}
                            https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
                            " msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "Path to review board example \"http://demo.reviewboard.org\"" msgid "User name to authenticate with review board" msgstr "User name to authenticate with review board" msgid "Password to authenticate with review board" msgstr "Password to authenticate with review board" msgid "Server Repository ID" msgstr "Server Repository ID" msgid "The default repository id for this repo on the review board server" msgstr "The default repository id for this repo on the review board server" msgid "Target Groups" msgstr "Target Groups" msgid "A comma separated list of target groups" msgstr "A comma separated list of target groups" msgid "Target People" msgstr "Target People" msgid "A comma separated list of target people" msgstr "A comma separated list of target people" msgid "Kiln Bfiles" msgstr "Kiln Bfiles" msgid "Patterns" msgstr "Patterns" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgid "Size" msgstr "Size" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgid "System Cache" msgstr "System Cache" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "" "Path to the directory where a system-wide cache of bfiles will be stored" msgid "Simplelock" msgstr "Simplelock" msgid "Lock Clone" msgstr "Lock Clone" msgid "" "Location of local clone of organizational lock repository.

                            This repository " "must contain a \"locked\" text file" msgstr "" "Location of local clone of organisational lock repository.

                            This repository " "must contain a \"locked\" text file" msgid "Largefiles" msgstr "Largefiles" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgid "Minimum Size" msgstr "Minimum Size" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgid "User Cache" msgstr "User Cache" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" "Path to the directory where a user's cache of largefiles will be stored" msgid "Projrc" msgstr "Projrc" msgid "Require confirmation" msgstr "Require confirmation" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

                            • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
                            • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
                            • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
                            " msgstr "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "
                            • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
                            • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
                            • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
                            " msgid "Servers" msgstr "Servers" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgid "Include" msgstr "Include" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgid "Exclude" msgstr "Exclude" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgid "Update on incoming" msgstr "Update on incoming" msgid "" "Let the user update the projrc on incoming:
                            • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
                            • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
                            • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                              Default: never" msgstr "" "Let the user update the projrc on incoming:

                              • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
                              • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
                              • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                                Default: never" msgid "GnuPG" msgstr "GnuPG" msgid "Specify the path to GPG. Default: gpg" msgstr "Specify the path to GPG. Default: gpg" msgid "Key ID" msgstr "Key ID" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "GPG key ID associated with user. Default: None (leave blank)" msgid "TortoiseHg Settings" msgstr "TortoiseHg Settings" msgid "Iniparse package not found" msgstr "Iniparse package not found" msgid "Can't change settings without iniparse package - view is readonly." msgstr "Can't change settings without iniparse package - view is readonly." #, python-format msgid "%s's global settings" msgstr "%s's global settings" msgid "No repository found" msgstr "No repository found" msgid "no repo at " msgstr "no repo at " #, python-format msgid "%s project settings (.hg/projrc)" msgstr "%s project settings (.hg/projrc)" #, python-format msgid "%s repository settings" msgstr "%s repository settings" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "" "Restart all TortoiseHg applications for the following changes to take effect:" msgid "Apply changes before exit?" msgstr "Apply changes before exit?" msgid "&No (discard changes)" msgstr "&No (discard changes)" msgid "Reload" msgstr "Reload" msgid "Settings File:" msgstr "Settings File:" msgid "Confirm Save" msgstr "Confirm Save" msgid "Save changes before editing?" msgstr "Save changes before editing?" msgid "&Save" msgstr "&Save" msgid "Confirm Reload" msgstr "Confirm Reload" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgid "Unable to create a Mercurial.ini file" msgstr "Unable to create a Mercurial.ini file" msgid "Insufficient access rights, reverting to read-only mode." msgstr "Insufficient access rights, reverting to read-only mode." msgid "Context Menu" msgstr "Context Menu" msgid "Top menu items:" msgstr "Top menu items:" msgid "Sub menu items:" msgstr "Submenu items:" msgid "Menu Behavior" msgstr "Menu Behaviour" msgid "Hide context menu outside repositories" msgstr "Hide context menu outside repositories" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" "Do not show menu items on unversioned folders (use shift + click to override)" msgid "Icons" msgstr "Icons" msgid "Overlays" msgstr "Overlays" msgid "Enabled overlays" msgstr "Enabled overlays" msgid "Local disks only" msgstr "Local disks only" msgid "Enabled Overlay Handlers" msgstr "Enabled Overlay Handlers" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "Warning: affects all Tortoises, logoff required after change" msgid "Added" msgstr "Added" msgid "Locked*" msgstr "Locked*" msgid "Ignored*" msgstr "Ignored*" msgid "Unversioned" msgstr "Unversioned" msgid "Readonly*" msgstr "Readonly*" msgid "Deleted*" msgstr "Deleted*" msgid "*: not used by TortoiseHg" msgstr "*: not used by TortoiseHg" msgid "Taskbar" msgstr "Taskbar" msgid "Show Icon" msgstr "Show Icon" msgid "Highlight Icon" msgstr "Highlight Icon" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" "You can change the icon set from TortoiseSVN's Settings" msgid "Explorer Extension Settings - TortoiseHg" msgstr "Explorer Extension Settings - TortoiseHg" msgid "Clear" msgstr "Clear" msgid "Clear the current shelf file" msgstr "Clear the current shelf file" msgid "Delete the current shelf file" msgstr "Delete the current shelf file" msgid "Left Toolbar" msgstr "Left Toolbar" msgid "Delete selected chunks" msgstr "Delete selected chunks" msgid "Move all files right" msgstr "Move all files right" msgid "Move selected file right" msgstr "Move selected file right" msgid "Edit file" msgstr "Edit file" msgid "Move selected chunks right" msgstr "Move selected chunks right" msgid "Refresh Toolbar" msgstr "Refresh Toolbar" msgid "Refresh" msgstr "Refresh" msgid "New Shelf" msgstr "New Shelf" msgid "Right Toolbar" msgstr "Right Toolbar" msgid "Move selected chunks left" msgstr "Move selected chunks left" msgid "Move selected file left" msgstr "Move selected file left" msgid "Move all files left" msgstr "Move all files left" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "Backup copies of modified files can be found in .hg/Trashcan/" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "TortoiseHg Shelve - %s" msgid "Delete selected chunks from working copy?" msgstr "Delete selected chunks from working copy?" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "Delete selected chunks from shelf file %s?" msgid "Are you sure?" msgstr "Are you sure?" msgid "TortoiseHg New Shelf Name" msgstr "TortoiseHg New Shelf Name" msgid "Specify name of new shelf" msgstr "Specify name of new shelf" msgid "Bad filename" msgstr "Bad filename" #, python-format msgid "A shelf name cannot contain %s" msgstr "A shelf name cannot contain %s" msgid "File already exists" msgstr "File already exists" msgid "A shelf file of that name already exists" msgstr "A shelf file of that name already exists" msgid "New shelf created" msgstr "New shelf created" #, python-format msgid "Delete shelf file %s?" msgstr "Delete shelf file %s?" msgid "Shelf deleted" msgstr "Shelf deleted" msgid "Revert all working copy changes?" msgstr "Revert all working copy changes?" #, python-format msgid "Clear contents of shelf file %s?" msgstr "Clear contents of shelf file %s?" msgid "Shelf cleared" msgstr "Shelf cleared" #, python-format msgid "Shelf: %s" msgstr "Shelf: %s" #, python-format msgid "Patch: %s" msgstr "Patch: %s" msgid "Key:" msgstr "Key:" msgid "Local sign" msgstr "Local sign" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "Sign even if the sigfile is modified (-f/--force)" msgid "No commit" msgstr "No commit" msgid "Use custom commit message:" msgstr "Use custom commit message:" msgid "&Sign" msgstr "&Sign" #, python-format msgid "Sign - %s" msgstr "Sign - %s" msgid "Signature has been added" msgstr "Signature has been added" msgid "Repository command still running" msgstr "Repository command still running" msgid "Filter:" msgstr "Filter:" msgid "Check all files" msgstr "Check all files" msgid "Uncheck all files" msgstr "Uncheck all files" msgid "Status File List Toolbar" msgstr "Status File List Toolbar" msgid "Remove filter, show root" msgstr "Remove filter, show root" #, python-format msgid "%s - status (selection filtered)" msgstr "%s - status (selection filtered)" #, python-format msgid "%s - status" msgstr "%s - status" msgid "Check" msgstr "Check" msgid "Uncheck" msgstr "Uncheck" msgid "status" msgstr "status" msgid "Failed to refresh" msgstr "Failed to refresh" msgid "No appropriate files" msgstr "No appropriate files" msgid "No files found for this operation" msgstr "No files found for this operation" msgid "Stat" msgstr "Stat" msgid "M" msgstr "M" msgid "Filename" msgstr "Filename" msgid "Size (KB)" msgstr "Size (KB)" #, python-format msgid "Checked count: %d" msgstr "Checked count: %d" msgid ", resolved merge" msgstr ", resolved merge" msgid ", unresolved merge" msgstr ", unresolved merge" #, python-format msgid "%s is modified" msgstr "%s is modified" msgid "modified" msgstr "modified" #, python-format msgid "%s is added" msgstr "%s is added" msgid "added" msgstr "added" #, python-format msgid "%s is removed" msgstr "%s is removed" msgid "removed" msgstr "removed" #, python-format msgid "%s is not tracked (unknown)" msgstr "%s is not tracked (unknown)" msgid "unknown" msgstr "unknown" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "%s is deleted by non-hg command, but still tracked" msgid "missing" msgstr "missing" #, python-format msgid "%s is ignored" msgstr "%s is ignored" msgid "ignored" msgstr "ignored" #, python-format msgid "%s is not modified (clean)" msgstr "%s is not modified (clean)" msgid "clean" msgstr "clean" #, python-format msgid "%s is a dirty subrepo" msgstr "%s is a dirty subrepo" msgid "subrepo" msgstr "subrepo" msgid "Check for incoming changes from selected URL" msgstr "Check for incoming changes from selected URL" msgid "Pull incoming changes from selected URL" msgstr "Pull incoming changes from selected URL" msgid "Detect outgoing changes to selected URL" msgstr "Detect outgoing changes to selected URL" msgid "Push outgoing changes to selected URL" msgstr "Push outgoing changes to selected URL" msgid "Sync Bookmarks" msgstr "Sync Bookmarks" msgid "Email outgoing changesets for remote repository" msgstr "Email outgoing changesets for remote repository" msgid "Manage pending perforce changelists" msgstr "Manage pending perforce changelists" msgid "Unbundle" msgstr "Unbundle" msgid "Selected Options:" msgstr "Selected Options:" msgid "Path Edit Toolbar" msgstr "Path Edit Toolbar" msgid "Security" msgstr "Security" msgid "Manage HTTPS connection security and user authentication" msgstr "Manage HTTPS connection security and user authentication" msgid "Save" msgstr "Save" msgid "Save current URL under an alias" msgstr "Save current URL under an alias" msgid "Paths in Repository Settings:" msgstr "Paths in Repository Settings:" msgid "Related Paths:" msgstr "Related Paths:" msgid "branch: " msgstr "branch: " msgid "bookmark: " msgstr "bookmark: " #, python-format msgid "rev: %d (%s)" msgstr "rev: %d (%s)" msgid "Post Pull: " msgstr "Post Pull: " msgid "&Edit..." msgstr "&Edit..." msgid "&Remove..." msgstr "&Remove..." msgid "Repository not local" msgstr "Repository not local" msgid "A terminal shell cannot be opened for remote" msgstr "A terminal shell cannot be opened for remote" msgid "Confirm path delete" msgstr "Confirm path delete" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "Delete %s from your repo configuration file?" msgid "Select repository" msgstr "Select repository" msgid "No host specified" msgstr "No host specified" msgid "Please set a valid URL to continue." msgstr "Please set a valid URL to continue." msgid "No remote repository URL or path set" msgstr "No remote repository URL or path set" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

                                Please type and save a remote repository path on the " "Sync widget." msgstr "" "No valid default remote repository URL or path has been configured " "for this repository.

                                Please type and save a remote repository path on the " "Sync widget." msgid "Redundant authentication info" msgstr "Redundant authentication info" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgid "sync command already running" msgstr "sync command already running" #, python-format msgid "Getting incoming changesets from %s..." msgstr "Getting incoming changesets from %s..." #, python-format msgid "Found incoming changesets from %s" msgstr "Found incoming changesets from %s" #, python-format msgid "No incoming changesets from %s" msgstr "No incoming changesets from %s" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "Incoming from %s aborted, ret %d" #, python-format msgid "Pulling from %s..." msgstr "Pulling from %s..." #, python-format msgid "Pull from %s completed" msgstr "Pull from %s completed" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "Pull from %s aborted, ret %d" msgid "Merge caused file conflicts" msgstr "Merge caused file conflicts" msgid "File conflicts need to be resolved" msgstr "File conflicts need to be resolved" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "Finding outgoing changesets to %s..." #, python-format msgid "%d outgoing changesets to %s" msgstr "%d outgoing changesets to %s" #, python-format msgid "No outgoing changesets to %s" msgstr "No outgoing changesets to %s" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "Outgoing to %s aborted, ret %d" msgid "Perforce pending..." msgstr "Perforce pending..." #, python-format msgid "%s (submitted)" msgstr "%s (submitted)" #, python-format msgid "%s (pending)" msgstr "%s (pending)" msgid "Unable to parse p4pending output" msgstr "Unable to parse p4pending output" #, python-format msgid "%d pending changelists found" msgstr "%d pending changelists found" msgid "No pending Perforce changelists" msgstr "No pending Perforce changelists" msgid "Aborted p4pending" msgstr "Aborted p4pending" msgid "Unable to determine pending changesets" msgstr "Unable to determine pending changesets" msgid "Confirm Push to remote Repository" msgstr "Confirm Push to remote Repository" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" "Push to remote repository\n" "%s\n" "?" #, python-format msgid "Push to %s aborted" msgstr "Push to %s aborted" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" #, python-format msgid "Pushing to %s..." msgstr "Pushing to %s..." #, python-format msgid "Push to %s completed" msgstr "Push to %s completed" #, python-format msgid "Push to %s aborted, ret %d" msgstr "Push to %s aborted, ret %d" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgid "Determining outgoing changesets to email..." msgstr "Determining outgoing changesets to email..." msgid "No outgoing changesets" msgstr "No outgoing changesets" #, python-format msgid "Outgoing aborted, ret %d" msgstr "Outgoing aborted, ret %d" msgid "Select bundle file" msgstr "Select bundle file" msgid "Bundle files (*.hg)" msgstr "Bundle files (*.hg)" msgid "Unable to remove URL" msgstr "Unable to remove URL" msgid "Post Pull Behavior" msgstr "Post Pull Behaviour" msgid "Select post-pull operation for this repository" msgstr "Select post-pull operation for this repository" msgid "None - simply pull changesets" msgstr "None - simply pull changesets" msgid "Update - pull, then try to update" msgstr "Update - pull, then try to update" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "Fetch - use fetch (auto merge pulled changes)" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "Fetch - use fetch extension (fetch is not active!)" msgid "Rebase - rebase local commits above pulled changes" msgstr "Rebase - rebase local commits above pulled changes" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "UpdateOrRebase - pull, then try to update or rebase" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "Rebase - use rebase extension (rebase is not active!)" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "UpdateOrRebase - use rebase extension (rebase is not active!)" msgid "Launch settings tool..." msgstr "Launch settings tool..." msgid "Unable to save post pull operation" msgstr "Unable to save post pull operation" msgid "Save Path" msgstr "Save Path" msgid "Alias" msgstr "Alias" msgid "URL" msgstr "URL" msgid "Remove authentication data from URL" msgstr "Remove authentication data from URL" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" "User authentication data should be associated with the hostname using the " "security dialog." msgid "Update subrepo paths" msgstr "Update subrepo paths" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgid "Unable to save an URL" msgstr "Unable to save an URL" msgid "Confirm URL replace" msgstr "Confirm URL replace" #, python-format msgid "%s already exists, replace URL?" msgstr "%s already exists, replace URL?" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

                                %s

                                Replace it with the " "following URL?:

                                %s" msgstr "" "Subrepo '%s' has a non trivial default sync URL:

                                %s

                                Replace it with the " "following URL?:

                                %s" msgid "Security: " msgstr "Security: " #, python-format msgid "Host: %s" msgstr "Host: %s" msgid "Secure HTTPS Connection" msgstr "Secure HTTPS Connection" msgid "Verify with Certificate Authority certificates (best)" msgstr "Verify with Certificate Authority certificates (best)" msgid "Verify with stored host fingerprint (good)" msgstr "Verify with stored host fingerprint (good)" msgid "No host validation, but still encrypted (bad)" msgstr "No host validation, but still encrypted (bad)" msgid "### host certificate fingerprint ###" msgstr "### host certificate fingerprint ###" msgid "Query" msgstr "Query" msgid "TLS 1.0" msgstr "TLS 1.0" msgid "TLS 1.1" msgstr "TLS 1.1" msgid "TLS 1.2" msgstr "TLS 1.2" msgid "Minimum Protocol" msgstr "Minimum Protocol" msgid "User Authentication" msgstr "User Authentication" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgid "User Certificate Key" msgstr "User Certificate Key" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgid "User Certificate Chain" msgstr "User Certificate Chain" msgid "Certificate Query Error" msgstr "Certificate Query Error" msgid "Select User Certificate Key File" msgstr "Select User Certificate Key File" msgid "PEM files (*.pem *.key)" msgstr "PEM files (*.pem *.key)" msgid "Select User Certificate Chain File" msgstr "Select User Certificate Chain File" msgid "PEM files (*.pem *.crt *.cer)" msgstr "PEM files (*.pem *.crt *.cer)" msgid "Unable to save authentication" msgstr "Unable to save authentication" #, python-format msgid "%s - sync options" msgstr "%s - sync options" msgid "Allow push of a new branch (--new-branch)" msgstr "Allow push of a new branch (--new-branch)" msgid "Force push or pull (override safety checks, --force)" msgstr "Force push or pull (override safety checks, --force)" msgid "Temporarily disable configured HTTP proxy" msgstr "Temporarily disable configured HTTP proxy" msgid "Emit debugging output (--debug)" msgstr "Emit debugging output (--debug)" msgid "Work on patch queue (--mq)" msgstr "Work on patch queue (--mq)" #, python-format msgid "Tag - %s" msgstr "Tag - %s" msgid "Tag:" msgstr "Tag:" msgid "Tagged:" msgstr "Tagged:" msgid "Local tag" msgstr "Local tag" msgid "Replace existing tag (-f/--force)" msgstr "Replace existing tag (-f/--force)" msgid "Use English commit message" msgstr "Use English commit message" msgid "local" msgstr "local" msgid "Move" msgstr "Move" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "Moved tag %s to changeset %s (from changeset %s)" #, python-format msgid "Added tag %s for changeset %s" msgstr "Added tag %s for changeset %s" #, python-format msgid "Tag '%s' has been moved" msgstr "Tag '%s' has been moved" #, python-format msgid "Tag '%s' has been added" msgstr "Tag '%s' has been added" #, python-format msgid "Removed tag %s" msgstr "Removed tag %s" #, python-format msgid "Tag '%s' has been removed" msgstr "Tag '%s' has been removed" msgid "Patch files (*.diff *.patch)" msgstr "Patch files (*.diff *.patch)" #, python-format msgid "Import - %s" msgstr "Import - %s" msgid "Browse Directory..." msgstr "Browse Directory..." msgid "Import from Clipboard" msgstr "Import from Clipboard" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "Do not strip paths (-p0), required for SVN patches" msgid "Preview:" msgstr "Preview:" msgid "Shelf" msgstr "Shelf" msgid "Checking working directory status..." msgstr "Checking working directory status..." msgid "&Import" msgstr "&Import" msgid "Working directory is not clean! View changes..." msgstr "Working directory is not clean! View changes..." msgid "Select patches" msgstr "Select patches" msgid "Select Directory containing patches" msgstr "Select Directory containing patches" #, python-format msgid "%s patches" msgstr "%s patches" #, python-format msgid "%s will be imported to " msgstr "%s will be imported to " msgid "Nothing to import" msgstr "Nothing to import" msgid "Strip:" msgstr "Strip:" msgid "Discard local changes, no backup (-f/--force)" msgstr "Discard local changes, no backup (-f/--force)" msgid "No backup (-n/--nobackup)" msgstr "No backup (-n/--nobackup)" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "Do not modify working copy during strip (-k/--keep)" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "%d changeset will be stripped" msgstr[1] "%d changesets will be stripped" msgid "Unknown revision!" msgstr "Unknown revision!" msgid "Detected uncommitted local changes." msgstr "Detected uncommitted local changes." msgid "Do you want to keep them or discard them?" msgstr "Do you want to keep them or discard them?" msgid "&Keep (--keep)" msgstr "&Keep (--keep)" msgid "&Discard (--force)" msgstr "&Discard (--force)" msgid "Confirm Strip" msgstr "Confirm Strip" #, python-format msgid "Strip - %s" msgstr "Strip - %s" msgid "&Strip" msgstr "&Strip" msgid "Topic:" msgstr "Topic:" msgid "&Rename" msgstr "&Rename" #, python-format msgid "Topic - %s" msgstr "Topic - %s" #, python-format msgid "A topic named \"%s\" already exists" msgstr "A topic named \"%s\" already exists" #, python-format msgid "Topic '%s' has been added" msgstr "Topic '%s' has been added" #, python-format msgid "Topic '%s' does not exist" msgstr "Topic '%s' does not exist" #, python-format msgid "Topic '%s' has been removed" msgstr "Topic '%s' has been removed" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "Topic '%s' has been renamed to %s" msgid "Parent 1:" msgstr "Parent 1:" msgid "Parent 2:" msgstr "Parent 2:" msgid "Pull subrepos from:" msgstr "Pull subrepos from:" msgid "List updated files (--verbose)" msgstr "List updated files (--verbose)" msgid "Discard local changes, no backup (-C/--clean)" msgstr "Discard local changes, no backup (-C/--clean)" msgid "Always merge (when possible)" msgstr "Always merge (when possible)" msgid "(same as parent)" msgstr "(same as parent)" msgid "Activate bookmark?" msgstr "Activate bookmark?" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

                                Do " "you want to activate it?
                                You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" "The selected revision (%s) has a bookmark on it called \"%s\".

                                Do " "you want to activate it?
                                You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

                                Select " "the bookmark that you want to activate and click OK.

                                Click " "Cancel if you don't want to activate any of them.

                                You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                " msgstr "" "The selected revision (%s) has %d bookmarks on it.

                                Select " "the bookmark that you want to activate and click OK.

                                Click " "Cancel if you don't want to activate any of them.

                                You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                " msgid "Deactivate current bookmark?" msgstr "Deactivate current bookmark?" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "Do you really want to deactivate the %s bookmark?" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgid "Discard - discard local changes, no backup" msgstr "Discard - discard local changes, no backup" msgid "&Shelve" msgstr "&Shelve" msgid "Shelve - move local changes to a patch" msgstr "Shelve - move local changes to a patch" msgid "Merge - allow to merge with local changes" msgstr "Merge - allow to merge with local changes" msgid "Confirm Update" msgstr "Confirm Update" #, python-format msgid "Update - %s" msgstr "Update - %s" msgid "[non-existant]" msgstr "[non-existant]" msgid "Tool launch failure" msgstr "Tool launch failure" #, python-format msgid "%s : %s" msgstr "%s : %s" msgid "No diff tool found" msgstr "No diff tool found" msgid "No visual diff tools were detected" msgstr "No visual diff tools were detected" msgid "[working copy]" msgstr "[working copy]" msgid "[original]" msgstr "[original]" msgid "Unable to find changeset" msgstr "Unable to find changeset" msgid "You likely need to refresh this application" msgstr "You likely need to refresh this application" msgid "No file changes" msgstr "No file changes" msgid "There are no file changes to view" msgstr "There are no file changes to view" msgid "working changes" msgstr "working changes" #, python-format msgid "changeset %d:%s" msgstr "changeset %d:%s" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "revisions %d:%s to %d:%s" msgid "Visual Diffs - " msgstr "Visual Diffs - " msgid " filtered" msgstr " filtered" msgid "Temporary files are removed when this dialog is closed" msgstr "Temporary files are removed when this dialogue is closed" msgid "Select Tool:" msgstr "Select Tool:" msgid "Dir diff to p1" msgstr "Dir diff to p1" msgid "Dir diff to p2" msgstr "Dir diff to p2" msgid "3-way dir diff" msgstr "3-way dir diff" msgid "Directory diff" msgstr "Directory diff" msgid "Confirm Discard" msgstr "Confirm Discard" msgid "Discard outstanding changes to working directory?" msgstr "Discard outstanding changes to working directory?" msgid "Config files (*.conf *.config *.ini)" msgstr "Config files (*.conf *.config *.ini)" msgid "Open hgweb config" msgstr "Open hgweb config" msgid "Save hgweb config" msgstr "Save hgweb config" msgid "Path:" msgstr "Path:" msgid "Local Path:" msgstr "Local Path:" msgid "Select Repository" msgstr "Select Repository" msgid "Add Path to Serve" msgstr "Add Path to Serve" msgid "Edit Path to Serve" msgstr "Edit Path to Serve" msgid "Local Path" msgstr "Local Path" msgid "Webconf" msgstr "Webconf" msgid "Config File:" msgstr "Config File:" msgid "Open" msgstr "Open" msgid "New &Workbench" msgstr "New &Workbench" msgid "&New Repository..." msgstr "&New Repository..." msgid "Clon&e Repository..." msgstr "Clon&e Repository..." msgid "&Open Repository..." msgstr "&Open Repository..." msgid "&File" msgstr "&File" msgid "&View" msgstr "&View" msgid "&Repository" msgstr "&Repository" msgid "&Help" msgstr "&Help" msgid "&Dock Toolbar" msgstr "&Dock Toolbar" msgid "&Task Toolbar" msgstr "&Task Toolbar" msgid "&Custom Toolbar" msgstr "&Custom Toolbar" msgid "S&ync Toolbar" msgstr "S&ync Toolbar" msgid "&Close Repository" msgstr "&Close Repository" msgid "Sh&ow Repository Registry" msgstr "Sh&ow Repository Registry" msgid "Show &Patch Queue" msgstr "Show &Patch Queue" msgid "Show Conso&le" msgstr "Show Conso&le" msgid "Place Console in Doc&k Area" msgstr "Place Console in Doc&k Area" msgid "R&epository Registry Options" msgstr "R&epository Registry Options" msgid "Save Open Repositories on E&xit" msgstr "Save Open Repositories on E&xit" msgid "Sa&ve Current Sync Paths on Exit" msgstr "Sa&ve Current Sync Paths on Exit" msgid "Show Tas&k Tab" msgstr "Show Tas&k Tab" msgid "&Commit" msgstr "&Commit" msgid "&Patch Branch" msgstr "&Patch Branch" msgid "Revision &Details" msgstr "Revision &Details" msgid "&Search" msgstr "&Search" msgid "S&ynchronize" msgstr "S&ynchronise" msgid "Refresh current repository" msgstr "Refresh current repository" msgid "Refresh &Task Tab" msgstr "Refresh &Task Tab" msgid "Refresh only the current task tab" msgstr "Refresh only the current task tab" msgid "Load &All Revisions" msgstr "Load &All Revisions" msgid "Load all revisions into graph" msgstr "Load all revisions into graph" msgid "Go to current revision" msgstr "Go to current revision" msgid "&Goto Revision..." msgstr "&Goto Revision..." msgid "Go to a specific revision" msgstr "Go to a specific revision" msgid "Filter graph with revision sets or branches" msgstr "Filter graph with revision sets or branches" msgid "&Workbench Toolbars" msgstr "&Workbench Toolbars" msgid "&Lock File..." msgstr "&Lock File..." msgid "Lock or unlock files" msgstr "Lock or unlock files" msgid "Update working directory or switch revisions" msgstr "Update working directory or switch revisions" msgid "&Shelve..." msgstr "&Shelve..." msgid "&Import Patches..." msgstr "&Import Patches..." msgid "U&nbundle..." msgstr "U&nbundle..." msgid "&Merge..." msgstr "&Merge..." msgid "Merge with the other head of the current branch" msgstr "Merge with the other head of the current branch" msgid "&Resolve..." msgstr "&Resolve..." msgid "R&ollback/Undo..." msgstr "R&ollback/Undo..." msgid "&Purge..." msgstr "&Purge..." msgid "&Bisect..." msgstr "&Bisect..." msgid "&Verify" msgstr "&Verify" msgid "Re&cover" msgstr "Re&cover" msgid "&Web Server" msgstr "&Web Server" msgid "E&xplorer Help" msgstr "E&xplorer Help" msgid "&Readme" msgstr "&Readme" msgid "About &Qt" msgstr "About &Qt" msgid "&About TortoiseHg" msgstr "&About TortoiseHg" msgid "&Incoming" msgstr "&Incoming" msgid "&Pull" msgstr "&Pull" msgid "&Outgoing" msgstr "&Outgoing" msgid "P&ush" msgstr "P&ush" msgid "&Sync Bookmarks..." msgstr "&Sync Bookmarks..." #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" "pull: %s\n" "push: %s" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" "There are no configured sync paths.\n" "Open the Synchronise tab to configure them." msgid "Check for incoming changes" msgstr "Check for incoming changes" msgid "Pull incoming changes" msgstr "Pull incoming changes" msgid "Detect outgoing changes" msgstr "Detect outgoing changes" msgid "Push outgoing changes" msgstr "Push outgoing changes" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" "Check for incoming changes from\n" "%s" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" "Pull incoming changes from\n" "%s" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" "Detect outgoing changes to\n" "%s" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" "Push outgoing changes to\n" "%s" #, python-format msgid "Execute custom tool '%s'" msgstr "Execute custom tool '%s'" msgid "Custom Toolbar &Settings" msgstr "Custom Toolbar &Settings" msgid "TortoiseHg Workbench" msgstr "TortoiseHg Workbench" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "%s - TortoiseHg Workbench - %s" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "%s - TortoiseHg Workbench" msgid "Goto revision" msgstr "Goto revision" msgid "Enter revision identifier" msgstr "Enter revision identifier" msgid "Select repository directory to open" msgstr "Select repository directory to open" msgid "README not configured" msgstr "README not configured" msgid "" "A README file is not configured for the current repository.

                                To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" "A README file is not configured for the current repository.

                                To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgid "Issue Tracker Plugin Error" msgstr "Issue Tracker Plugin Error" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "Could not instantiate Issue Tracker plugin COM object" msgid "This error will not be shown again until you restart the workbench" msgstr "This error will not be shown again until you restart the workbench" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "Error getting commit message information from Issue Tracker plugin" msgid "Error executing \"commit finished\" trigger" msgstr "Error executing \"commit finished\" trigger" msgid "Cannot open Plugin Options dialog" msgstr "Cannot open Plugin Options dialog" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "do not verify server certificate (ignoring web.cacerts config)" msgid "[--insecure] [SOURCE]" msgstr "[--insecure] [SOURCE]" #, python-format msgid "unsupported URL: %s" msgstr "unsupported URL: %s" #, python-format msgid "%s certificate error: no certificate received" msgstr "%s certificate error: no certificate received" msgid "move after the specified patch" msgstr "move after the specified patch" msgid "[--after PATCH] PATCH..." msgstr "[--after PATCH] PATCH..." msgid "unknown patch to move specified" msgstr "unknown patch to move specified" msgid "invalid patch position specified" msgstr "invalid patch position specified" msgid "cannot move applied patches" msgstr "cannot move applied patches" #, python-format msgid "patch %s not in series" msgstr "patch %s not in series" msgid "cannot move into applied patches" msgstr "cannot move into applied patches" msgid "abort: " msgstr "abort: " msgid "hint: " msgstr "hint: " #, python-format msgid "HTTP Error: %d (%s)" msgstr "HTTP Error: %d (%s)" #, python-format msgid "URLError: %s" msgstr "URLError: %s" msgid "SSL: Server certificate verify failed" msgstr "SSL: Server certificate verify failed" #, python-format msgid "SSL: unknown error %s:%s" msgstr "SSL: unknown error %s:%s" #, python-format msgid "SSL error: %s" msgstr "SSL error: %s" msgid "hgsubversion packaged with thg" msgstr "hgsubversion packaged with thg" msgid "hggit packaged with thg" msgstr "hggit packaged with thg" msgid "inotify is not supported on this platform" msgstr "inotify is not supported on this platform" msgid "eol is incompatible with win32text" msgstr "eol is incompatible with win32text" msgid "win32text is incompatible with eol" msgstr "win32text is incompatible with eol" msgid "hgsubversion is incompatible with perfarce" msgstr "hgsubversion is incompatible with perfarce" msgid "perfarce is incompatible with hgsubversion" msgstr "perfarce is incompatible with hgsubversion" msgid "Workbench custom toolbar" msgstr "Workbench custom toolbar" msgid "Revision details context menu" msgstr "Revision details context menu" msgid "Pair selection context menu" msgstr "Pair selection context menu" msgid "Multiple selection context menu" msgstr "Multiple selection context menu" msgid "Commit context menu" msgstr "Commit context menu" msgid "File context menu (on manifest and revision details)" msgstr "File context menu (on manifest and revision details)" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "%d year" msgstr[1] "%d years" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "%d month" msgstr[1] "%d months" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "%d week" msgstr[1] "%d weeks" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "%d day" msgstr[1] "%d days" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "%d hour" msgstr[1] "%d hours" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "%d minute" msgstr[1] "%d minutes" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d second" msgstr[1] "%d seconds" msgid "in the future" msgstr "in the future" msgid "now" msgstr "now" #, python-format msgid "command parse error: %s" msgstr "command parse error: %s" #, python-format msgid "no matches found: %s" msgstr "no matches found: %s" msgid "Commit..." msgstr "Commit..." msgid "Commit changes in repository" msgstr "Commit changes in repository" msgid "Create Repository Here" msgstr "Create Repository Here" msgid "Create a new repository" msgstr "Create a new repository" msgid "Clone..." msgstr "Clone..." msgid "Create clone here from source" msgstr "Create clone here from source" msgid "File Status" msgstr "File Status" msgid "Repository status & changes" msgstr "Repository status and changes" msgid "Add Files..." msgstr "Add Files..." msgid "Add files to version control" msgstr "Add files to version control" msgid "Revert Files..." msgstr "Revert Files..." msgid "Revert file changes" msgstr "Revert file changes" msgid "Forget Files..." msgstr "Forget Files..." msgid "Remove files from version control" msgstr "Remove files from version control" msgid "Remove Files..." msgstr "Remove Files..." msgid "Rename File" msgstr "Rename File" msgid "Rename file or directory" msgstr "Rename file or directory" msgid "View change history in repository" msgstr "View change history in repository" msgid "File History" msgstr "File History" msgid "View change history of selected files" msgstr "View change history of selected files" msgid "Shelve Changes" msgstr "Shelve Changes" msgid "Move changes between working dir and patch" msgstr "Move changes between working dir and patch" msgid "Synchronize" msgstr "Synchronise" msgid "Synchronize with remote repository" msgstr "Synchronise with remote repository" msgid "Start web server for this repository" msgstr "Start web server for this repository" msgid "Update..." msgstr "Update..." msgid "Update working directory" msgstr "Update working directory" msgid "Update Icons" msgstr "Update Icons" msgid "Update icons for this repository" msgstr "Update icons for this repository" msgid "Global Settings" msgstr "Global Settings" msgid "Configure user wide settings" msgstr "Configure user wide settings" msgid "Repository Settings" msgstr "Repository Settings" msgid "Configure repository settings" msgstr "Configure repository settings" msgid "Explorer Extension Settings" msgstr "Explorer Extension Settings" msgid "Configure Explorer extension" msgstr "Configure Explorer extension" msgid "About TortoiseHg" msgstr "About TortoiseHg" msgid "Show About Dialog" msgstr "Show About Dialogue" msgid "Diff to parent" msgstr "Diff to parent" msgid "View changes using GUI diff tool" msgstr "View changes using GUI diff tool" msgid "Edit Ignore Filter" msgstr "Edit Ignore Filter" msgid "Edit repository ignore filter" msgstr "Edit repository ignore filter" msgid "Guess Renames" msgstr "Guess Renames" msgid "Detect renames and copies" msgstr "Detect renames and copies" msgid "Search History" msgstr "Search History" msgid "Search file revisions for patterns" msgstr "Search file revisions for patterns" msgid "DnD Synchronize" msgstr "DnD Synchronise" msgid "Synchronize with dragged repository" msgstr "Synchronise with dragged repository" #, python-format msgid "unrecognized response: %s" msgstr "unrecognised response: %s" msgid "password: " msgstr "password: " #, python-format msgid "repository %s not found" msgstr "repository %s not found" msgid "win32ill: cannot create window for messages" msgstr "win32ill: cannot create window for messages" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "win32ill: unsupported platform: %s\n" msgid "win32ill: interrupted while stopping message loop\n" msgstr "win32ill: interrupted while stopping message loop\n" #~ msgid "(version %s)" #~ msgstr "(version %s)" #~ msgid "with %s" #~ msgstr "with %s" #~ msgid "Archive" #~ msgstr "Archive" #~ msgid "Several icons are courtesy of the TortoiseSVN project" #~ msgstr "Several icons are courtesy of the TortoiseSVN project" #~ msgid "A new version of TortoiseHg is ready for download!" #~ msgstr "A new version of TortoiseHg is ready for download!" #~ msgid "Archive revision:" #~ msgstr "Archive revision:" #~ msgid "Copyright 2008-2010 Steve Borho and others" #~ msgstr "Copyright 2008-2010 Steve Borho and others" #~ msgid "Archived successfully" #~ msgstr "Archived successfully" #~ msgid "Canceled archiving" #~ msgstr "Cancelled archiving" #~ msgid "Failed to archive" #~ msgstr "Failed to archive" #~ msgid "Compressed zip archives" #~ msgstr "Compressed zip archives" #~ msgid "All Files (*.*)" #~ msgstr "All Files (*.*)" #~ msgid "" #~ "The destination \"%s\" already exists!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "The destination \"%s\" already exists!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgid "" #~ "The directory \"%s\" isn't empty!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "The directory \"%s\" isn't empty!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgid "Backout changeset - %s" #~ msgstr "Backout changeset - %s" #~ msgid "Changeset Description" #~ msgstr "Changeset Description" #~ msgid "Backout commit message" #~ msgstr "Backout commit message" #~ msgid "Backout" #~ msgstr "Backout" #~ msgid "Canceled backout" #~ msgstr "Cancelled backout" #~ msgid "Failed to backout" #~ msgstr "Failed to backout" #~ msgid "unexpected type: %s" #~ msgstr "unexpected type: %s" #~ msgid "Old name:" #~ msgstr "Old name:" #~ msgid "unexpected response id: %s" #~ msgstr "unexpected response id: %s" #~ msgid "Bookmark input is empty" #~ msgstr "Bookmark input is empty" #~ msgid "Please enter bookmark name" #~ msgstr "Please enter bookmark name" #~ msgid "Bookmarking completed" #~ msgstr "Bookmarking completed" #~ msgid "Bookmark \"%s\" has been added" #~ msgstr "Bookmark \"%s\" has been added" #~ msgid "Error in bookmarking" #~ msgstr "Error in bookmarking" #~ msgid "Bookmark \"%s\" has been moved" #~ msgstr "Bookmark \"%s\" has been moved" #~ msgid "Bookmark name is empty" #~ msgstr "Bookmark name is empty" #~ msgid "Please select bookmark name to remove" #~ msgstr "Please select bookmark name to remove" #~ msgid "Bookmark \"%s\" has been removed" #~ msgstr "Bookmark \"%s\" has been removed" #~ msgid "Bookmark new name input is empty" #~ msgstr "Bookmark new name input is empty" #~ msgid "Please enter new bookmark name" #~ msgstr "Please enter new bookmark name" #~ msgid "Bookmark \"%s\" has been renamed to \"%s\"" #~ msgstr "Bookmark \"%s\" has been renamed to \"%s\"" #~ msgid "a bookmark named \"%s\" already exists" #~ msgstr "a bookmark named \"%s\" already exists" #~ msgid "No bookmark named \"%s\" exists" #~ msgstr "No bookmark named \"%s\" exists" #~ msgid "type" #~ msgstr "type" #~ msgid "path" #~ msgstr "path" #~ msgid "browser" #~ msgstr "browser" #~ msgid "Save as.." #~ msgstr "Save as.." #~ msgid "%s changeset " #~ msgstr "%s changeset " #~ msgid "[All Files]" #~ msgstr "[All Files]" #~ msgid "unknown hunk type: %s" #~ msgstr "unknown hunk type: %s" #~ msgid " %s is larger than the specified max diff size" #~ msgstr " %s is larger than the specified max diff size" #~ msgid "Repository Error: %s, refresh suggested" #~ msgstr "Repository Error: %s, refresh suggested" #~ msgid "[no hunks to display]" #~ msgstr "[no hunks to display]" #~ msgid "_Visual Diff" #~ msgstr "_Visual Diff" #~ msgid "Diff to _local" #~ msgstr "Diff to _local" #~ msgid "_View at Revision" #~ msgstr "_View at Revision" #~ msgid "_Save at Revision..." #~ msgstr "_Save at Revision..." #~ msgid "_File History" #~ msgstr "_File History" #~ msgid "_Annotate File" #~ msgstr "_Annotate File" #~ msgid "_Revert File Contents" #~ msgstr "_Revert File Contents" #~ msgid "Diff to second Parent" #~ msgstr "Diff to second Parent" #~ msgid "Confirm revert file to old revision" #~ msgstr "Confirm revert file to old revision" #~ msgid "Revert %s to contents at revision %d?" #~ msgstr "Revert %s to contents at revision %d?" #~ msgid "Enable _Wordwrap" #~ msgstr "Enable _Wordwrap" #~ msgid "TortoiseHg Clone" #~ msgstr "TortoiseHg Clone" #~ msgid "Bundle..." #~ msgstr "Bundle..." #~ msgid "Select a Mercurial Bundle" #~ msgstr "Select a Mercurial Bundle" #~ msgid "Source path:" #~ msgstr "Source path:" #~ msgid "Advanced options" #~ msgstr "Advanced options" #~ msgid "Use uncompressed transfer" #~ msgstr "Use uncompressed transfer" #~ msgid "Clone" #~ msgstr "Clone" #~ msgid "Cloned successfully" #~ msgstr "Cloned successfully" #~ msgid "Failed to clone" #~ msgstr "Failed to clone" #~ msgid "Mercurial bundles" #~ msgstr "Mercurial bundles" #~ msgid "Source path is empty" #~ msgstr "Source path is empty" #~ msgid "Please enter a valid source path" #~ msgstr "Please enter a valid source path" #~ msgid "Source and destination are the same" #~ msgstr "Source and destination are the same" #~ msgid "Please specify different paths" #~ msgstr "Please specify different paths" #~ msgid "Branch Operations" #~ msgstr "Branch Operations" #~ msgid "Close current named branch" #~ msgstr "Close current named branch" #~ msgid "merging " #~ msgstr "merging " #~ msgid " - qnew" #~ msgstr " - qnew" #~ msgid " - qrefresh " #~ msgstr " - qrefresh " #~ msgid " - commit" #~ msgstr " - commit" #~ msgid "_View" #~ msgstr "_View" #~ msgid "Toolbar" #~ msgstr "Toolbar" #~ msgid "Advanced" #~ msgstr "Advanced" #~ msgid "Always Show Output" #~ msgstr "Always Show Output" #~ msgid "_Operations" #~ msgstr "_Operations" #~ msgid "_Commit" #~ msgstr "_Commit" #~ msgid "_Undo" #~ msgstr "_Undo" #~ msgid "_Diff" #~ msgstr "_Diff" #~ msgid "Re_vert" #~ msgstr "Re_vert" #~ msgid "_Add" #~ msgstr "_Add" #~ msgid "_Remove" #~ msgstr "_Remove" #~ msgid "_Forget" #~ msgstr "_Forget" #~ msgid "undo recent commit" #~ msgstr "undo recent commit" #~ msgid "commit" #~ msgstr "commit" #~ msgid "Show/Hide Patch Queue" #~ msgstr "Show/Hide Patch Queue" #~ msgid "Save commit message at exit?" #~ msgstr "Save commit message at exit?" #~ msgid "Committer:" #~ msgstr "Committer:" #~ msgid "Auto-includes:" #~ msgstr "Auto-includes:" #~ msgid "Push after commit" #~ msgstr "Push after commit" #~ msgid "Recent commit messages..." #~ msgstr "Recent commit messages..." #~ msgid "Parent: %(rev)s" #~ msgstr "Parent: %(rev)s" #~ msgid "Not at head" #~ msgstr "Not at head" #~ msgid "Patch Preview" #~ msgstr "Patch Preview" #~ msgid "Commit Preview" #~ msgstr "Commit Preview" #~ msgid "create new MQ patch" #~ msgstr "create new MQ patch" #~ msgid "refresh top MQ patch" #~ msgstr "refresh top MQ patch" #~ msgid "_Commit (+1 head)" #~ msgstr "_Commit (+1 head)" #~ msgid "_Commit (-1 head)" #~ msgstr "_Commit (-1 head)" #~ msgid "parent is not a head, commit to add a new head" #~ msgstr "parent is not a head, commit to add a new head" #~ msgid "commit to merge one head" #~ msgstr "commit to merge one head" #~ msgid "new branch: " #~ msgstr "new branch: " #~ msgid "close branch: " #~ msgstr "close branch: " #~ msgid "Merge " #~ msgstr "Merge " #~ msgid "Patch Contents" #~ msgstr "Patch Contents" #~ msgid "Nothing Commited" #~ msgstr "Nothing Committed" #~ msgid "No committable files selected" #~ msgstr "No committable files selected" #~ msgid "Unable to create " #~ msgstr "Unable to create " #~ msgid "Unable to apply patch" #~ msgstr "Unable to apply patch" #~ msgid "Confirm Undo Commit" #~ msgstr "Confirm Undo Commit" #~ msgid "Undo Commit" #~ msgstr "Undo Commit" #~ msgid "" #~ "Unable to undo!\n" #~ "\n" #~ "Tip revision differs from last commit." #~ msgstr "" #~ "Unable to undo!\n" #~ "\n" #~ "Tip revision differs from last commit." #~ msgid "Errors during rollback!" #~ msgstr "Errors during rollback!" #~ msgid "Confirm Add/Remove" #~ msgstr "Confirm Add/Remove" #~ msgid "Add/Remove the following files?" #~ msgstr "Add/Remove the following files?" #~ msgid "Message format configuration error" #~ msgstr "Message format configuration error" #~ msgid "Confirm Commit" #~ msgstr "Confirm Commit" #~ msgid "" #~ "The summary line length of %i is greater than %i.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "The summary line length of %i is greater than %i.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgid "" #~ "The summary line is not followed by a blank line.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "The summary line is not followed by a blank line.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgid "" #~ "The following lines are over the %i-character limit: %s.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "The following lines are over the %i-character limit: %s.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgid "Commit: Invalid username" #~ msgstr "Commit: Invalid username" #~ msgid "" #~ "Your username has not been configured.\n" #~ "\n" #~ "Please configure your username and try again" #~ msgstr "" #~ "Your username has not been configured.\n" #~ "\n" #~ "Please configure your username and try again" #~ msgid "Aborted committing" #~ msgstr "Aborted committing" #~ msgid "Failed to commit" #~ msgstr "Failed to commit" #~ msgid "Committing changes..." #~ msgstr "Committing changes..." #~ msgid "Cannot run now" #~ msgstr "Cannot run now" #~ msgid "Paste _Filenames" #~ msgstr "Paste _Filenames" #~ msgid "App_ly Format" #~ msgstr "App_ly Format" #~ msgid "C_onfigure Format..." #~ msgstr "C_onfigure Format..." #~ msgid "Info Required" #~ msgstr "Info Required" #~ msgid "Message format needs to be configured" #~ msgstr "Message format needs to be configured" #~ msgid "The summary line length of %i is greater than %i" #~ msgstr "The summary line length of %i is greater than %i" #~ msgid "The summary line is not followed by a blank line" #~ msgstr "The summary line is not followed by a blank line" #~ msgid "Updating..." #~ msgstr "Updating..." #~ msgid "Selecting %(sel)d of %(total)d, displaying all items" #~ msgstr "Selecting %(sel)d of %(total)d, displaying all items" #~ msgid "Selecting %(sel)d, displaying %(count)d of %(total)d items" #~ msgstr "Selecting %(sel)d, displaying %(count)d of %(total)d items" #~ msgid "Displaying all items" #~ msgstr "Displaying all items" #~ msgid "%s - datamine" #~ msgstr "%s - datamine" #~ msgid "Stop operation on current tab" #~ msgstr "Stop operation on current tab" #~ msgid "New Search" #~ msgstr "New Search" #~ msgid "Open new search tab" #~ msgstr "Open new search tab" #~ msgid "Invalid path" #~ msgstr "Invalid path" #~ msgid "Di_splay Change" #~ msgstr "Di_splay Change" #~ msgid "_View File at Revision" #~ msgstr "_View File at Revision" #~ msgid "_Zoom to Change" #~ msgstr "_Zoom to Change" #~ msgid "_Annotate Parent" #~ msgstr "_Annotate Parent" #~ msgid "Start this search" #~ msgstr "Start this search" #~ msgid "" #~ "Comma separated list of inclusion patterns. By default, the entire " #~ "repository is searched." #~ msgstr "" #~ "Comma separated list of inclusion patterns. By default, the entire " #~ "repository is searched." #~ msgid "" #~ "Comma separated list of exclusion patterns. Exclusion patterns are " #~ "applied after inclusion patterns." #~ msgstr "" #~ "Comma separated list of exclusion patterns. Exclusion patterns are " #~ "applied after inclusion patterns." #~ msgid "Show line numbers" #~ msgstr "Show line numbers" #~ msgid "Show all matching revisions" #~ msgstr "Show all matching revisions" #~ msgid "Matches" #~ msgstr "Matches" #~ msgid "Search %d" #~ msgstr "Search %d" #~ msgid "No regular expression given" #~ msgstr "No regular expression given" #~ msgid "You must provide a search expression" #~ msgstr "You must provide a search expression" #~ msgid "Invalid regular expression" #~ msgstr "Invalid regular expression" #~ msgid "Error: %s" #~ msgstr "Error: %s" #~ msgid "Abort: %s" #~ msgstr "Abort: %s" #~ msgid "Search \"%s\"" #~ msgstr "Search \"%s\"" #~ msgid "File is unrevisioned" #~ msgstr "File is unrevisioned" #~ msgid "Unable to annotate " #~ msgstr "Unable to annotate " #~ msgid "Loading history..." #~ msgstr "Loading history..." #~ msgid "_Tools" #~ msgstr "_Tools" #~ msgid "Repository Explorer" #~ msgstr "Repository Explorer" #~ msgid "Datamine" #~ msgstr "Datamine" #~ msgid "Recovery" #~ msgstr "Recovery" #~ msgid "Serve" #~ msgstr "Serve" #~ msgid "Shelve" #~ msgstr "Shelve" #~ msgid "_Help" #~ msgstr "_Help" #~ msgid "Contents" #~ msgstr "Contents" #~ msgid "Index" #~ msgstr "Index" #~ msgid " Aborted" #~ msgstr " Aborted" #~ msgid " Messages and Errors" #~ msgstr " Messages and Errors" #~ msgid "making snapshot of %d files from rev %s\n" #~ msgstr "making snapshot of %d files from rev %s\n" #~ msgid "edit failed" #~ msgstr "edit failed" #~ msgid "unknown mode name: %s" #~ msgstr "unknown mode name: %s" #~ msgid "Confirm Abort" #~ msgstr "Confirm Abort" #~ msgid "Do you want to abort?" #~ msgstr "Do you want to abort?" #~ msgid "Select" #~ msgstr "Select" #~ msgid "Select Revision" #~ msgstr "Select Revision" #~ msgid "revision number, changeset ID, branch or tag" #~ msgstr "revision number, changeset ID, branch or tag" #~ msgid "Ambiguous Revision" #~ msgstr "Ambiguous Revision" #~ msgid "Invalid Revision" #~ msgstr "Invalid Revision" #~ msgid "Save File" #~ msgstr "Save File" #~ msgid "All files" #~ msgstr "All files" #~ msgid "Select Folder" #~ msgstr "Select Folder" #~ msgid "" #~ "Select language for spell checking.\n" #~ "\n" #~ "Empty is for the default language.\n" #~ "When all text is highlited, the dictionary\n" #~ "is probably not installed.\n" #~ "\n" #~ "examples: en, en_GB, en_US" #~ msgstr "" #~ "Select language for spell checking.\n" #~ "\n" #~ "Empty is for the default language.\n" #~ "When all text is highlited, the dictionary\n" #~ "is probably not installed.\n" #~ "\n" #~ "examples: en, en_GB, en_US" #~ msgid "Lang \"%s\" can not be set.\n" #~ msgstr "Lang \"%s\" can not be set.\n" #~ msgid "Spell Check Language" #~ msgstr "Spell Check Language" #~ msgid "Minimum Simularity Percentage" #~ msgstr "Minimum Simularity Percentage" #~ msgid "Unrevisioned Files" #~ msgstr "Unrevisioned Files" #~ msgid "Find Copies" #~ msgstr "Find Copies" #~ msgid "Candidate Matches" #~ msgstr "Candidate Matches" #~ msgid "Accept Match" #~ msgstr "Accept Match" #~ msgid "Differences from Source to Dest" #~ msgstr "Differences from Source to Dest" #~ msgid "finding source of " #~ msgstr "finding source of " #~ msgid "" #~ "== %s and %s have identical contents ==\n" #~ "\n" #~ msgstr "" #~ "== %s and %s have identical contents ==\n" #~ "\n" #~ msgid "" #~ "\n" #~ "[command interrupted]" #~ msgstr "" #~ "\n" #~ "[command interrupted]" #~ msgid "unknown CmdWidget style: %s" #~ msgstr "unknown CmdWidget style: %s" #~ msgid "Toggle log window" #~ msgstr "Toggle log window" #~ msgid "Stop transaction" #~ msgstr "Stop transaction" #~ msgid "Close this" #~ msgstr "Close this" #~ msgid "invalid state" #~ msgstr "invalid state" #~ msgid "Command Log" #~ msgstr "Command Log" #~ msgid "Send" #~ msgstr "Send" #~ msgid "Test" #~ msgstr "Test" #~ msgid "Configure" #~ msgstr "Configure" #~ msgid "Envelope" #~ msgstr "Envelope" #~ msgid "" #~ "This feature is only available when sending outgoing changesets. It is " #~ "not applicable with revision ranges." #~ msgstr "" #~ "This feature is only available when sending outgoing changesets. It is " #~ "not applicable with revision ranges." #~ msgid "Flags:" #~ msgstr "Flags:" #~ msgid "Patch Series (Bundle) Description" #~ msgstr "Patch Series (Bundle) Description" #~ msgid "Info required" #~ msgstr "Info required" #~ msgid "You must specify a recipient" #~ msgstr "You must specify a recipient" #~ msgid "You must specify a sender address" #~ msgstr "You must specify a sender address" #~ msgid "You must configure SMTP" #~ msgstr "You must configure SMTP" #~ msgid "Glob:" #~ msgstr "Glob:" #~ msgid "Apply to:" #~ msgstr "Apply to:" #~ msgid "Filters" #~ msgstr "Filters" #~ msgid "Remove Selected" #~ msgstr "Remove Selected" #~ msgid "Unknown Files" #~ msgstr "Unknown Files" #~ msgid "Color by Branch" #~ msgstr "Colour by Branch" #~ msgid "_Synchronize" #~ msgstr "_Synchronise" #~ msgid "Visualize Change" #~ msgstr "Visualise Change" #~ msgid "%s - synchronize" #~ msgstr "%s - synchronise" #~ msgid "" #~ "Color changesets by author name. If not enabled, the changes are colored " #~ "green for merge, red for non-trivial parents, black for normal. Default: " #~ "False" #~ msgstr "" #~ "Colour changesets by author name. If not enabled, the changes are " #~ "coloured green for merge, red for non-trivial parents, black for normal. " #~ "Default: False" #~ msgid "Coloring Style" #~ msgstr "Colouring Style" #~ msgid "" #~ "Adjust the coloring style of diff lines in the changeset viewer. Default: " #~ "foreground" #~ msgstr "" #~ "Adjust the colouring style of diff lines in the changeset viewer. " #~ "Default: foreground" #~ msgid "Unable to save file" #~ msgstr "Unable to save file" #~ msgid "Canceled updating" #~ msgstr "Cancelled updating" #~ msgid "Ignore Max Diff Size" #~ msgstr "Ignore Max Diff Size" #~ msgid "neither parent is a head, commit to add a new head" #~ msgstr "neither parent is a head, commit to add a new head" #~ msgid "TortoiseHg Init" #~ msgstr "TortoiseHg Init" #~ msgid "Add special files (.hgignore, ...)" #~ msgstr "Add special files (.hgignore, ...)" #~ msgid "Make repo compatible with Mercurial 1.0" #~ msgstr "Make repo compatible with Mercurial 1.0" #~ msgid "Destination path is empty" #~ msgstr "Destination path is empty" #~ msgid "Please enter the directory path" #~ msgstr "Please enter the directory path" #~ msgid "Unable to create new repository" #~ msgstr "Unable to create new repository" #~ msgid "Error when creating repository" #~ msgstr "Error when creating repository" #~ msgid "response expected" #~ msgstr "response expected" #~ msgid "[command returned code %d " #~ msgstr "[command returned code %d " #~ msgid "[command completed successfully " #~ msgstr "[command completed successfully " #~ msgid "hgtk %s: %s\n" #~ msgstr "hgtk %s: %s\n" #~ msgid "hgtk: %s\n" #~ msgstr "hgtk: %s\n" #~ msgid "" #~ "hgtk: command '%s' is ambiguous:\n" #~ " %s\n" #~ msgstr "" #~ "hgtk: command '%s' is ambiguous:\n" #~ " %s\n" #~ msgid "hgtk: unknown command '%s'\n" #~ msgstr "hgtk: unknown command '%s'\n" #~ msgid "There is no Mercurial repository here (.hg not found)" #~ msgstr "There is no Mercurial repository here (.hg not found)" #~ msgid "Rename error" #~ msgstr "Rename error" #~ msgid "rename takes one or two path arguments" #~ msgstr "rename takes one or two path arguments" #~ msgid "mpatch error" #~ msgstr "mpatch error" #~ msgid "mpatch expects *.rej file argument\n" #~ msgstr "mpatch expects *.rej file argument\n" #~ msgid "%s does not exist\n" #~ msgstr "%s does not exist\n" #~ msgid "use \"hgtk help\" for the full list of commands" #~ msgstr "use \"hgtk help\" for the full list of commands" #~ msgid "" #~ "use \"hgtk help\" for the full list of commands or \"hgtk -v\" for details" #~ msgstr "" #~ "use \"hgtk help\" for the full list of commands or \"hgtk -v\" for details" #~ msgid "use \"hgtk -v help%s\" to show aliases and global options" #~ msgstr "use \"hgtk -v help%s\" to show aliases and global options" #~ msgid "use \"hgtk -v help %s\" to show global options" #~ msgstr "use \"hgtk -v help %s\" to show global options" #~ msgid "(No help text available)" #~ msgstr "(No help text available)" #~ msgid "Hgtk - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" #~ msgstr "Hgtk - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" #~ msgid "hgtk about" #~ msgstr "hgtk about" #~ msgid "hgtk add [FILE]..." #~ msgstr "hgtk add [FILE]..." #~ msgid "hgtk clone SOURCE [DEST]" #~ msgstr "hgtk clone SOURCE [DEST]" #~ msgid "hgtk commit [OPTIONS] [FILE]..." #~ msgstr "hgtk commit [OPTIONS] [FILE]..." #~ msgid "hgtk datamine" #~ msgstr "hgtk datamine" #~ msgid "hgtk hgignore [FILE]" #~ msgstr "hgtk hgignore [FILE]" #~ msgid "hgtk init [DEST]" #~ msgstr "hgtk init [DEST]" #~ msgid "limit number of changes displayed" #~ msgstr "limit number of changes displayed" #~ msgid "hgtk log [OPTIONS] [FILE]" #~ msgstr "hgtk log [OPTIONS] [FILE]" #~ msgid "revision to merge with" #~ msgstr "revision to merge with" #~ msgid "hgtk merge" #~ msgstr "hgtk merge" #~ msgid "hgtk recovery" #~ msgstr "hgtk recovery" #~ msgid "hgtk shelve" #~ msgstr "hgtk shelve" #~ msgid "hgtk synch" #~ msgstr "hgtk sync" #~ msgid "revisions to compare" #~ msgstr "revisions to compare" #~ msgid "hgtk status [FILE]..." #~ msgstr "hgtk status [FILE]..." #~ msgid "hgtk userconfig" #~ msgstr "hgtk userconfig" #~ msgid "hgtk repoconfig" #~ msgstr "hgtk repoconfig" #~ msgid "hgtk guess" #~ msgstr "hgtk guess" #~ msgid "hgtk remove [FILE]..." #~ msgstr "hgtk remove [FILE]..." #~ msgid "hgtk rename SOURCE [DEST]" #~ msgstr "hgtk rename SOURCE [DEST]" #~ msgid "hgtk revert [FILE]..." #~ msgstr "hgtk revert [FILE]..." #~ msgid "hgtk forget [FILE]..." #~ msgstr "hgtk forget [FILE]..." #~ msgid "hgtk serve [OPTION]..." #~ msgstr "hgtk serve [OPTION]..." #~ msgid "udpate all repos in current dir" #~ msgstr "udpate all repos in current dir" #~ msgid "hgtk thgstatus [OPTION]" #~ msgstr "hgtk thgstatus [OPTION]" #~ msgid "hgtk version [OPTION]" #~ msgstr "hgtk version [OPTION]" #~ msgid "show the command options" #~ msgstr "show the command options" #~ msgid "[-o] CMD" #~ msgstr "[-o] CMD" #~ msgid "hgtk help [COMMAND]" #~ msgstr "hgtk help [COMMAND]" #~ msgid "import to the repository" #~ msgstr "import to the repository" #~ msgid "hgtk import [OPTION] [SOURCE]..." #~ msgstr "hgtk import [OPTION] [SOURCE]..." #~ msgid "hgtk shellconfig" #~ msgstr "hgtk shellconfig" #~ msgid "Log Details" #~ msgstr "Log Details" #~ msgid "Columns" #~ msgstr "Columns" #~ msgid "Move Up" #~ msgstr "Move Up" #~ msgid "Move Down" #~ msgstr "Move Down" #~ msgid "Tagged" #~ msgstr "Tagged" #~ msgid "Ancestry" #~ msgstr "Ancestry" #~ msgid "Heads" #~ msgstr "Heads" #~ msgid "Merges" #~ msgstr "Merges" #~ msgid "Hide Merges" #~ msgstr "Hide Merges" #~ msgid "Branch Filter" #~ msgstr "Branch Filter" #~ msgid "Custom Filter" #~ msgstr "Custom Filter" #~ msgid "File Patterns" #~ msgstr "File Patterns" #~ msgid "Keywords" #~ msgstr "Keywords" #~ msgid "Branches..." #~ msgstr "Branches..." #~ msgid "" #~ "New changesets from the preview bundle are still pending.\n" #~ "\n" #~ "Accept or reject the new changesets?" #~ msgstr "" #~ "New changesets from the preview bundle are still pending.\n" #~ "\n" #~ "Accept or reject the new changesets?" #~ msgid "Accept new Changesets" #~ msgstr "Accept new Changesets" #~ msgid "&Accept" #~ msgstr "&Accept" #~ msgid "&Reject" #~ msgstr "&Reject" #~ msgid " (Bundle Preview)" #~ msgstr " (Bundle Preview)" #~ msgid "Re_fresh" #~ msgstr "Re_fresh" #~ msgid "Reload revision history" #~ msgstr "Reload revision history" #~ msgid "Reset _Marks" #~ msgstr "Reset _Marks" #~ msgid "Reset revision marks" #~ msgstr "Reset revision marks" #~ msgid "Launch commit tool" #~ msgstr "Launch commit tool" #~ msgid "Launch data mining tool" #~ msgstr "Launch data mining tool" #~ msgid "Launch recovery tool" #~ msgstr "Launch recovery tool" #~ msgid "Launch web server" #~ msgstr "Launch web server" #~ msgid "Launch shelve tool" #~ msgstr "Launch shelve tool" #~ msgid "Branches" #~ msgstr "Branches" #~ msgid "Tags" #~ msgstr "Tags" #~ msgid "Sync Bar" #~ msgstr "Sync Bar" #~ msgid "_Perforce" #~ msgstr "_Perforce" #~ msgid "Identify" #~ msgstr "Identify" #~ msgid "Pending" #~ msgstr "Pending" #~ msgid "Load more Revisions" #~ msgstr "Load more Revisions" #~ msgid "Load all Revisions" #~ msgstr "Load all Revisions" #~ msgid "Filter Bar" #~ msgstr "Filter Bar" #~ msgid "Reset Marks" #~ msgstr "Reset Marks" #~ msgid "Choose Details..." #~ msgstr "Choose Details..." #~ msgid "Compact Graph" #~ msgstr "Compact Graph" #~ msgid "_Navigate" #~ msgstr "_Navigate" #~ msgid "Tip" #~ msgstr "Tip" #~ msgid "Working Parent" #~ msgstr "Working Parent" #~ msgid "Previously Selected" #~ msgstr "Previously Selected" #~ msgid "Revision..." #~ msgstr "Revision..." #~ msgid "Incoming" #~ msgstr "Incoming" #~ msgid "Outgoing" #~ msgstr "Outgoing" #~ msgid "Push" #~ msgstr "Push" #~ msgid "Accept Bundle" #~ msgstr "Accept Bundle" #~ msgid "Reject Bundle" #~ msgstr "Reject Bundle" #~ msgid "Import..." #~ msgstr "Import..." #~ msgid "Add Bundle..." #~ msgstr "Add Bundle..." #~ msgid "Configure Paths..." #~ msgstr "Configure Paths..." #~ msgid "_Filter" #~ msgstr "_Filter" #~ msgid "Custom" #~ msgstr "Custom" #~ msgid "Revision Range" #~ msgstr "Revision Range" #~ msgid "Submitted" #~ msgstr "Submitted" #~ msgid "Finding pending Perforce changelists..." #~ msgstr "Finding pending Perforce changelists..." #~ msgid "Pending Perforce changelists" #~ msgstr "Pending Perforce changelists" #~ msgid "Perforce changelist %s" #~ msgstr "Perforce changelist %s" #~ msgid "Unable to find rev %s" #~ msgstr "Unable to find rev %s" #~ msgid "Aborted p4identify" #~ msgstr "Aborted p4identify" #~ msgid "Unable to identify Perforce tip" #~ msgstr "Unable to identify Perforce tip" #~ msgid "Finding tip Perforce changelist..." #~ msgstr "Finding tip Perforce changelist..." #~ msgid "Identifying Perforce tip" #~ msgstr "Identifying Perforce tip" #~ msgid "Revision Number" #~ msgstr "Revision Number" #~ msgid "Changeset ID" #~ msgstr "Changeset ID" #~ msgid "Revision Number/ID" #~ msgstr "Revision Number/ID" #~ msgid "Branch Name" #~ msgstr "Branch Name" #~ msgid "Changes" #~ msgstr "Changes" #~ msgid "Summary" #~ msgstr "Summary" #~ msgid "Local Date" #~ msgstr "Local Date" #~ msgid "UTC Date" #~ msgstr "UTC Date" #~ msgid "Age" #~ msgstr "Age" #~ msgid "Invalid date specification" #~ msgstr "Invalid date specification" #~ msgid "'%s' filter:" #~ msgstr "'%s' filter:" #~ msgid "Filter" #~ msgstr "Filter" #~ msgid "%s branch" #~ msgstr "%s branch" #~ msgid "Branch '%s'" #~ msgstr "Branch '%s'" #~ msgid "merges" #~ msgstr "merges" #~ msgid "only Merges" #~ msgstr "only Merges" #~ msgid "revision ancestry" #~ msgstr "revision ancestry" #~ msgid "Ancestry of %s" #~ msgstr "Ancestry of %s" #~ msgid "tagged revisions" #~ msgstr "tagged revisions" #~ msgid "Tagged Revisions" #~ msgstr "Tagged Revisions" #~ msgid "working parents" #~ msgstr "working parents" #~ msgid "heads" #~ msgstr "heads" #~ msgid "no Merges" #~ msgstr "no Merges" #~ msgid "Current patch: %s, " #~ msgstr "Current patch: %s, " #~ msgid "%(count)d of %(total)d applied patches" #~ msgstr "%(count)d of %(total)d applied patches" #~ msgid "Diff to Local" #~ msgstr "Diff to Local" #~ msgid "_Copy Hash" #~ msgstr "_Copy Hash" #~ msgid "Pull to Here" #~ msgstr "Pull to Here" #~ msgid "Push to Here" #~ msgstr "Push to Here" #~ msgid "_Update..." #~ msgstr "_Update..." #~ msgid "_Merge with..." #~ msgstr "_Merge with..." #~ msgid "Backout..." #~ msgstr "Backout..." #~ msgid "_Revert" #~ msgstr "_Revert" #~ msgid "Export" #~ msgstr "Export" #~ msgid "Tag" #~ msgstr "Tag" #~ msgid "Mercurial Queues" #~ msgstr "Mercurial Queues" #~ msgid "Transp_lant to Local" #~ msgstr "Transp_lant to Local" #~ msgid "Bisect" #~ msgstr "Bisect" #~ msgid "_Export Patch..." #~ msgstr "_Export Patch..." #~ msgid "E_mail Patch..." #~ msgstr "E_mail Patch..." #~ msgid "_Bundle rev:tip..." #~ msgstr "_Bundle rev:tip..." #~ msgid "_Archive..." #~ msgstr "_Archive..." #~ msgid "Add/Remove _Tag..." #~ msgstr "Add/Remove _Tag..." #~ msgid "Add/Move/Remove B_ookmark..." #~ msgstr "Add/Move/Remove B_ookmark..." #~ msgid "Rename Bookmark..." #~ msgstr "Rename Bookmark..." #~ msgid "Import Revision to MQ" #~ msgstr "Import Revision to MQ" #~ msgid "Strip Revision..." #~ msgstr "Strip Revision..." #~ msgid "Reset" #~ msgstr "Reset" #~ msgid "Mark as Good" #~ msgstr "Mark as Good" #~ msgid "Mark as Bad" #~ msgstr "Mark as Bad" #~ msgid "Skip Testing" #~ msgstr "Skip Testing" #~ msgid "_Diff with selected" #~ msgstr "_Diff with selected" #~ msgid "Visual Diff with selected" #~ msgstr "Visual Diff with selected" #~ msgid "Bundle from here to selected..." #~ msgstr "Bundle from here to selected..." #~ msgid "Export Patches from here to selected..." #~ msgstr "Export Patches from here to selected..." #~ msgid "Transplant Revision range to local" #~ msgstr "Transplant Revision range to local" #~ msgid "Rebase on top of selected" #~ msgstr "Rebase on top of selected" #~ msgid "Import from here to selected to MQ" #~ msgstr "Import from here to selected to MQ" #~ msgid "Select common ancestor revision" #~ msgstr "Select common ancestor revision" #~ msgid "Load more" #~ msgstr "Load more" #~ msgid "load more revisions" #~ msgstr "load more revisions" #~ msgid "Load all" #~ msgstr "Load all" #~ msgid "load all revisions" #~ msgstr "load all revisions" #~ msgid "Download and view incoming changesets" #~ msgstr "Download and view incoming changesets" #~ msgid "Accept changes from Bundle preview" #~ msgstr "Accept changes from Bundle preview" #~ msgid "Reject changes from Bundle preview" #~ msgstr "Reject changes from Bundle preview" #~ msgid "Pull incoming changesets" #~ msgstr "Pull incoming changesets" #~ msgid "Import patches" #~ msgstr "Import patches" #~ msgid "Determine and mark outgoing changesets" #~ msgstr "Determine and mark outgoing changesets" #~ msgid "Push outgoing changesets" #~ msgstr "Push outgoing changesets" #~ msgid "Stop current transaction" #~ msgstr "Stop current transaction" #~ msgid "After Pull:" #~ msgstr "After Pull:" #~ msgid "Nothing" #~ msgstr "Nothing" #~ msgid "Fetch" #~ msgstr "Fetch" #~ msgid "Applying bundle..." #~ msgstr "Applying bundle..." #~ msgid "Applying bundle" #~ msgstr "Applying bundle" #~ msgid "No remote path specified" #~ msgstr "No remote path specified" #~ msgid "Please enter or select a remote path" #~ msgstr "Please enter or select a remote path" #~ msgid "%d incoming changesets" #~ msgstr "%d incoming changesets" #~ msgid "Aborted incoming" #~ msgstr "Aborted incoming" #~ msgid "No incoming changesets" #~ msgstr "No incoming changesets" #~ msgid "Checking incoming changesets..." #~ msgstr "Checking incoming changesets..." #~ msgid "Accept incoming previewed changesets" #~ msgstr "Accept incoming previewed changesets" #~ msgid "Reject incoming previewed changesets" #~ msgstr "Reject incoming previewed changesets" #~ msgid "Reject" #~ msgstr "Reject" #~ msgid "Bundle Preview" #~ msgstr "Bundle Preview" #~ msgid "Failed to preview, a bundle file unrelated to this repository" #~ msgstr "Failed to preview; bundle file unrelated to this repository" #~ msgid "Failed to preview, not a Mercurial bundle file" #~ msgstr "Failed to preview; not a Mercurial bundle file" #~ msgid "Open Bundle" #~ msgstr "Open Bundle" #~ msgid "Finished pull with rebase" #~ msgstr "Finished pull with rebase" #~ msgid "Finished pull" #~ msgstr "Finished pull" #~ msgid "No changesets to pull" #~ msgstr "No changesets to pull" #~ msgid "Aborted pull" #~ msgstr "Aborted pull" #~ msgid "Pulling changesets..." #~ msgstr "Pulling changesets..." #~ msgid "Aborted outgoing" #~ msgstr "Aborted outgoing" #~ msgid "Checking outgoing changesets..." #~ msgstr "Checking outgoing changesets..." #~ msgid "No repository selected" #~ msgstr "No repository selected" #~ msgid "Select a peer repository to compare with" #~ msgstr "Select a peer repository to compare with" #~ msgid "Finished push" #~ msgstr "Finished push" #~ msgid "Aborted push" #~ msgstr "Aborted push" #~ msgid "Pushing changesets..." #~ msgstr "Pushing changesets..." #~ msgid "unknown dnd dest: %s" #~ msgstr "unknown dnd dest: %s" #~ msgid "Confirm Revert All Files" #~ msgstr "Confirm Revert All Files" #~ msgid "" #~ "Revert all files to revision %d?\n" #~ "This will overwrite your local changes" #~ msgstr "" #~ "Revert all files to revision %d?\n" #~ "This will overwrite your local changes" #~ msgid "Save patches to" #~ msgstr "Save patches to" #~ msgid "Write bundle to" #~ msgstr "Write bundle to" #~ msgid "Bundling from %(base)s to %(rev)s..." #~ msgstr "Bundling from %(base)s to %(rev)s..." #~ msgid "Bundling from %(base)s to tip..." #~ msgstr "Bundling from %(base)s to tip..." #~ msgid "Finish bundling" #~ msgstr "Finish bundling" #~ msgid "Aborted bundling" #~ msgstr "Aborted bundling" #~ msgid "Failed to bundle" #~ msgstr "Failed to bundle" #~ msgid "Bundling" #~ msgstr "Bundling" #~ msgid "Finish importing" #~ msgstr "Finish importing" #~ msgid "Aborted importing" #~ msgstr "Aborted importing" #~ msgid "Failed to import" #~ msgstr "Failed to import" #~ msgid "Importing" #~ msgstr "Importing" #~ msgid "Importing to Patch Queue..." #~ msgstr "Importing to Patch Queue..." #~ msgid "Confirm Rebase Revision" #~ msgstr "Confirm Rebase Revision" #~ msgid "Rebase revision %d on top of %d?" #~ msgstr "Rebase revision %d on top of %d?" #~ msgid "Confirm Forced Push to Remote Repository" #~ msgstr "Confirm Forced Push to Remote Repository" #~ msgid "" #~ "Forced push to remote repository\n" #~ "%s\n" #~ "(creating new heads in remote if needed)?" #~ msgstr "" #~ "Forced push to remote repository\n" #~ "%s\n" #~ "(creating new heads in remote if needed)?" #~ msgid "Forced &Push" #~ msgstr "Forced &Push" #~ msgid "&Push" #~ msgstr "&Push" #~ msgid "Confirm Forced Push" #~ msgstr "Confirm Forced Push" #~ msgid "" #~ "Forced push to repository\n" #~ "%s\n" #~ "(creating new heads if needed)?" #~ msgstr "" #~ "Forced push to repository\n" #~ "%s\n" #~ "(creating new heads if needed)?" #~ msgid "Finished push to revision %s" #~ msgstr "Finished push to revision %s" #~ msgid "Pushing changesets to revision %s..." #~ msgstr "Pushing changesets to revision %s..." #~ msgid "Push to %s" #~ msgstr "Push to %s" #~ msgid "Finished pull to revision %s" #~ msgstr "Finished pull to revision %s" #~ msgid "Pulling changesets to revision %s..." #~ msgstr "Pulling changesets to revision %s..." #~ msgid "Pull to %s" #~ msgstr "Pull to %s" #~ msgid "Save patch to" #~ msgstr "Save patch to" #~ msgid "%(count)d of %(total)d Revisions" #~ msgstr "%(count)d of %(total)d Revisions" #~ msgid "Changeset not found in current view" #~ msgstr "Changeset not found in current view" #~ msgid "Null changeset is not viewable" #~ msgstr "Null changeset is not viewable" #~ msgid "Repository is empty" #~ msgstr "Repository is empty" #~ msgid "ID" #~ msgstr "ID" #~ msgid "Rev/ID" #~ msgstr "Rev/ID" #~ msgid "Universal Date" #~ msgstr "Universal Date" #~ msgid "Merging in %s" #~ msgstr "Merging in %s" #~ msgid "Must supply a target revision" #~ msgstr "Must supply a target revision" #~ msgid "Outstanding uncommitted changes" #~ msgstr "Outstanding uncommitted changes" #~ msgid "Merge target (other)" #~ msgstr "Merge target (other)" #~ msgid "Current revision (local)" #~ msgstr "Current revision (local)" #~ msgid "Discard all changes from merge target (other) revision" #~ msgstr "Discard all changes from merge target (other) revision" #~ msgid "Undo" #~ msgstr "Undo" #~ msgid "Merged successfully" #~ msgstr "Merged successfully" #~ msgid "Canceled merging" #~ msgstr "Cancelled merging" #~ msgid "Failed to merge" #~ msgstr "Failed to merge" #~ msgid "Undo successfully" #~ msgstr "Undo successfully" #~ msgid "Canceled undo" #~ msgstr "Cancelled undo" #~ msgid "Failed to undo" #~ msgstr "Failed to undo" #~ msgid "" #~ "To complete merging, you need to commit merged files in working " #~ "directory.\n" #~ "\n" #~ "Do you want to exit?" #~ msgstr "" #~ "To complete merging you need to commit merged files in working " #~ "directory.\n" #~ "\n" #~ "Do you want to exit?" #~ msgid "Cannot merge" #~ msgstr "Cannot merge" #~ msgid "Uncommitted local changes" #~ msgstr "Uncommitted local changes" #~ msgid "Confirm undo merge" #~ msgstr "Confirm undo merge" #~ msgid "Clean checkout of original revision?" #~ msgstr "Clean checkout of original revision?" #~ msgid "Changelist:" #~ msgstr "Changelist:" #~ msgid "Submit" #~ msgstr "Submit" #~ msgid "Canceled" #~ msgstr "Cancelled" #~ msgid "Failed" #~ msgstr "Failed" #~ msgid "Select files to add" #~ msgstr "Select files to add" #~ msgid "Select files to forget" #~ msgstr "Select files to forget" #~ msgid "Select files to revert" #~ msgstr "Select files to revert" #~ msgid "Select files to remove" #~ msgstr "Select files to remove" #~ msgid "Toggle all selections" #~ msgstr "Toggle all selections" #~ msgid "Unable to determine repository status" #~ msgstr "Unable to determine repository status" #~ msgid "Successfully" #~ msgstr "Successfully" #~ msgid "%s - recovery" #~ msgstr "%s - recovery" #~ msgid "Stop the hg operation" #~ msgstr "Stop the hg operation" #~ msgid "Clean checkout, undo all changes" #~ msgstr "Clean checkout, undo all changes" #~ msgid "Rollback" #~ msgstr "Rollback" #~ msgid "Rollback (undo) last transaction to repository (pull, commit, etc)" #~ msgstr "Rollback (undo) last transaction to repository (pull, commit, etc)" #~ msgid "Recover" #~ msgstr "Recover" #~ msgid "Recover from interrupted operation" #~ msgstr "Recover from interrupted operation" #~ msgid "Verify" #~ msgstr "Verify" #~ msgid "Validate repository consistency" #~ msgstr "Validate repository consistency" #~ msgid "Cannot close now" #~ msgstr "Cannot close now" #~ msgid "command is running" #~ msgstr "command is running" #~ msgid "Confirm clean repository" #~ msgstr "Confirm clean repository" #~ msgid "Clean repository '%s' ?" #~ msgstr "Clean repository '%s' ?" #~ msgid "Confirm rollback repository" #~ msgstr "Confirm rollback repository" #~ msgid "Rollback repository '%s' ?" #~ msgstr "Rollback repository '%s' ?" #~ msgid "[command interrupted]" #~ msgstr "[command interrupted]" #~ msgid "Rename " #~ msgstr "Rename " #~ msgid "rename error" #~ msgstr "rename error" #~ msgid "Start server" #~ msgstr "Start server" #~ msgid "Stop server" #~ msgstr "Stop server" #~ msgid "Browse" #~ msgstr "Browse" #~ msgid "Launch browser to view repository" #~ msgstr "Launch browser to view repository" #~ msgid "Configure web settings" #~ msgstr "Configure web settings" #~ msgid "HTTP Port:" #~ msgstr "HTTP Port:" #~ msgid "%s - serve" #~ msgstr "%s - serve" #~ msgid "%s serve - %s" #~ msgstr "%s serve - %s" #~ msgid " - serve" #~ msgstr " - serve" #~ msgid "Confirm Really Exit?" #~ msgstr "Confirm Really Exit?" #~ msgid "" #~ "Server process is still running\n" #~ "Exiting will stop the server." #~ msgstr "" #~ "Server process is still running\n" #~ "Exiting will stop the server." #~ msgid "Abort: %s\n" #~ msgstr "Abort: %s\n" #~ msgid "Invalid port 2048..65535" #~ msgstr "Invalid port 2048..65535" #~ msgid "Defaulting to " #~ msgstr "Defaulting to " #~ msgid "cannot start server: " #~ msgstr "cannot start server: " #~ msgid "listening at http://%s%s/%s (%s:%d)\n" #~ msgstr "listening at http://%s%s/%s (%s:%d)\n" #~ msgid "name of access log file to write to" #~ msgstr "name of access log file to write to" #~ msgid "run server in background" #~ msgstr "run server in background" #~ msgid "used internally by daemon mode" #~ msgstr "used internally by daemon mode" #~ msgid "name of error log file to write to" #~ msgstr "name of error log file to write to" #~ msgid "port to use (default: 8000)" #~ msgstr "port to use (default: 8000)" #~ msgid "address to use" #~ msgstr "address to use" #~ msgid "prefix path to serve from (default: server root)" #~ msgstr "prefix path to serve from (default: server root)" #~ msgid "name to show in web pages (default: working dir)" #~ msgstr "name to show in web pages (default: working dir)" #~ msgid "name of file to write process ID to" #~ msgstr "name of file to write process ID to" #~ msgid "for remote clients" #~ msgstr "for remote clients" #~ msgid "web templates to use" #~ msgstr "web templates to use" #~ msgid "template style to use" #~ msgstr "template style to use" #~ msgid "use IPv6 in addition to IPv4" #~ msgstr "use IPv6 in addition to IPv4" #~ msgid "SSL certificate file" #~ msgstr "SSL certificate file" #~ msgid "hg serve [OPTION]..." #~ msgstr "hg serve [OPTION]..." #~ msgid "TortoiseHg Shell Configuration" #~ msgstr "TortoiseHg Shell Configuration" #~ msgid "Apply" #~ msgstr "Apply" #~ msgid "Enable overlays" #~ msgstr "Enable overlays" #~ msgid "<- Top" #~ msgstr "<- Top" #~ msgid "Sub ->" #~ msgstr "Sub ->" #~ msgid "Show the taskbar icon (restart needed)" #~ msgstr "Show the taskbar icon (restart needed)" #~ msgid "Highlight the taskbar icon during activity" #~ msgstr "Highlight the taskbar icon during activity" #~ msgid "filtered status" #~ msgstr "filtered status" #~ msgid "Save As" #~ msgstr "Save As" #~ msgid "Save selected changes" #~ msgstr "Save selected changes" #~ msgid "Visual diff checked files" #~ msgstr "Visual diff checked files" #~ msgid "Revert checked files" #~ msgstr "Revert checked files" #~ msgid "Add checked files" #~ msgstr "Add checked files" #~ msgid "Move checked files to other directory" #~ msgstr "Move checked files to other directory" #~ msgid "Remove or delete checked files" #~ msgstr "Remove or delete checked files" #~ msgid "Forget checked files on next commit" #~ msgstr "Forget checked files on next commit" #~ msgid "refresh" #~ msgstr "refresh" #~ msgid "st" #~ msgstr "st" #~ msgid "ms" #~ msgstr "ms" #~ msgid "View" #~ msgstr "View" #~ msgid "Text Diff" #~ msgstr "Text Diff" #~ msgid "Hunk Selection" #~ msgstr "Hunk Selection" #~ msgid "%d selected, %d total" #~ msgstr "%d selected, %d total" #~ msgid "Save Preview" #~ msgstr "Save Preview" #~ msgid "Shelf Preview" #~ msgstr "Shelf Preview" #~ msgid "?: unknown" #~ msgstr "?: unknown" #~ msgid "M: modified" #~ msgstr "M: modified" #~ msgid "I: ignored" #~ msgstr "I: ignored" #~ msgid "A: added" #~ msgstr "A: added" #~ msgid "C: clean" #~ msgstr "C: clean" #~ msgid "R: removed" #~ msgstr "R: removed" #~ msgid "!: deleted" #~ msgstr "!: deleted" #~ msgid "S: subrepo" #~ msgstr "S: subrepo" #~ msgid "View '%s'" #~ msgstr "View '%s'" #~ msgid "Rename file to:" #~ msgstr "Rename file to:" #~ msgid "Copy file to" #~ msgstr "Copy file to" #~ msgid "Nothing Removed" #~ msgstr "Nothing Removed" #~ msgid "Remove is not enabled when multiple revisions are specified." #~ msgstr "Remove is not enabled when multiple revisions are specified." #~ msgid "Move is not enabled when multiple revisions are specified." #~ msgstr "Move is not enabled when multiple revisions are specified." #~ msgid "Nothing Moved" #~ msgstr "Nothing Moved" #~ msgid "Copy is not enabled when multiple revisions are specified." #~ msgstr "Copy is not enabled when multiple revisions are specified." #~ msgid "Nothing Copied" #~ msgstr "Nothing Copied" #~ msgid "===== Diff to first parent %d:%s =====\n" #~ msgstr "===== Diff to first parent %d:%s =====\n" #~ msgid "" #~ "\n" #~ "===== Diff to second parent %d:%s =====\n" #~ msgstr "" #~ "\n" #~ "===== Diff to second parent %d:%s =====\n" #~ msgid "File is larger than the specified max size.\n" #~ msgstr "File is larger than the specified max size.\n" #~ msgid "Hunk selection is disabled for this file.\n" #~ msgstr "Hunk selection is disabled for this file.\n" #~ msgid "Nothing Diffed" #~ msgstr "Nothing Diffed" #~ msgid "No diffable files selected" #~ msgstr "No diffable files selected" #~ msgid "Nothing Reverted" #~ msgstr "Nothing Reverted" #~ msgid "No revertable files selected" #~ msgstr "No revertable files selected" #~ msgid "Revert not allowed when viewing revision range." #~ msgstr "Revert not allowed when viewing revision range." #~ msgid "&Yes (backup changes)" #~ msgstr "&Yes (backup changes)" #~ msgid "Yes (&discard changes)" #~ msgstr "Yes (&discard changes)" #~ msgid "Nothing Added" #~ msgstr "Nothing Added" #~ msgid "No addable files selected" #~ msgstr "No addable files selected" #~ msgid "No removable files selected" #~ msgstr "No removable files selected" #~ msgid "Move files to directory..." #~ msgstr "Move files to directory..." #~ msgid "Cannot move outside repo!" #~ msgstr "Cannot move outside repo!" #~ msgid "" #~ "No movable files selected\n" #~ "\n" #~ "Note: only clean files can be moved." #~ msgstr "" #~ "No movable files selected\n" #~ "\n" #~ "Note: only clean files can be moved." #~ msgid "Nothing Forgotten" #~ msgstr "Nothing Forgotten" #~ msgid "No clean files selected" #~ msgstr "No clean files selected" #~ msgid "Confirm Delete Unrevisioned" #~ msgstr "Confirm Delete Unrevisioned" #~ msgid "Delete the following unrevisioned files?" #~ msgstr "Delete the following unrevisioned files?" #~ msgid "Delete Errors" #~ msgstr "Delete Errors" #~ msgid "View missing" #~ msgstr "View missing" #~ msgid "View other" #~ msgstr "View other" #~ msgid "_Guess Rename..." #~ msgstr "_Guess Rename..." #~ msgid "_Ignore" #~ msgstr "_Ignore" #~ msgid "Remove versioned" #~ msgstr "Remove versioned" #~ msgid "_Delete unversioned" #~ msgstr "_Delete unversioned" #~ msgid "_Copy..." #~ msgstr "_Copy..." #~ msgid "Rename..." #~ msgstr "Rename..." #~ msgid "Restart Merge..." #~ msgstr "Restart Merge..." #~ msgid "Mark unresolved" #~ msgstr "Mark unresolved" #~ msgid "Mark resolved" #~ msgstr "Mark resolved" #~ msgid "Restart merge with" #~ msgstr "Restart merge with" #~ msgid "not up to date" #~ msgstr "not up to date" #~ msgid "" #~ "The parents have changed since the last refresh.\n" #~ "Continue anyway?" #~ msgstr "" #~ "The parents have changed since the last refresh.\n" #~ "Continue anyway?" #~ msgid "unknown field name: %s" #~ msgstr "unknown field name: %s" #~ msgid "invalid pack direction: %s" #~ msgstr "invalid pack direction: %s" #~ msgid "invalid alignment value: %s" #~ msgstr "invalid alignment value: %s" #~ msgid "Display changes that can be pulled from selected repository" #~ msgstr "Display changes that can be pulled from selected repository" #~ msgid " Pull " #~ msgstr " Pull " #~ msgid "Pull changes from selected repository" #~ msgstr "Pull changes from selected repository" #~ msgid "Push local changes to selected repository" #~ msgstr "Push local changes to selected repository" #~ msgid "Shelve uncommited changes" #~ msgstr "Shelve uncommited changes" #~ msgid "Configure peer repository paths" #~ msgstr "Configure peer repository paths" #~ msgid "Repo:" #~ msgstr "Repo:" #~ msgid "Bundle:" #~ msgstr "Bundle:" #~ msgid "Advanced Options" #~ msgstr "Advanced Options" #~ msgid "Force pull or push" #~ msgstr "Force pull or push" #~ msgid "Run even when remote repository is unrelated." #~ msgstr "Run even when remote repository is unrelated." #~ msgid "Target revision:" #~ msgstr "Target revision:" #~ msgid "A specific revision up to which you would like to push or pull." #~ msgstr "A specific revision up to which you would like to push or pull." #~ msgid "Name of hg executable on remote machine." #~ msgstr "Name of hg executable on remote machine." #~ msgid "Incoming/Outgoing" #~ msgstr "Incoming/Outgoing" #~ msgid "Show patches" #~ msgstr "Show patches" #~ msgid "Show newest first" #~ msgstr "Show newest first" #~ msgid "Show no merges" #~ msgstr "Show no merges" #~ msgid "Update to branch tip" #~ msgstr "Update to branch tip" #~ msgid "unknown sort key '%s'" #~ msgstr "unknown sort key '%s'" #~ msgid "Select Bundle" #~ msgstr "Select Bundle" #~ msgid "Bundle (*.hg)" #~ msgstr "Bundle (*.hg)" #~ msgid "Bundle (*)" #~ msgstr "Bundle (*)" #~ msgid "Toggle _Wordwrap" #~ msgstr "Toggle _Wordwrap" #~ msgid "Tag is local" #~ msgstr "Tag is local" #~ msgid "Replace existing tag" #~ msgstr "Replace existing tag" #~ msgid "Tag input is empty" #~ msgstr "Tag input is empty" #~ msgid "Please enter tag name" #~ msgstr "Please enter tag name" #~ msgid "Custom commit message is empty" #~ msgstr "Custom commit message is empty" #~ msgid "Tagging completed" #~ msgstr "Tagging completed" #~ msgid "Tag \"%s\" has been added" #~ msgstr "Tag \"%s\" has been added" #~ msgid "Error in tagging" #~ msgstr "Error in tagging" #~ msgid "Tag name is empty" #~ msgstr "Tag name is empty" #~ msgid "Please select tag name to remove" #~ msgstr "Please select tag name to remove" #~ msgid "Tag \"%s\" has been removed" #~ msgstr "Tag \"%s\" has been removed" #~ msgid "a tag named \"%s\" already exists" #~ msgstr "a tag named \"%s\" already exists" #~ msgid "Tag '%s' already exist" #~ msgstr "Tag '%s' already exist" #~ msgid "tag '%s' does not exist" #~ msgstr "tag '%s' does not exist" #~ msgid "tag '%s' is not a local tag" #~ msgstr "tag '%s' is not a local tag" #~ msgid "tag '%s' is not a global tag" #~ msgstr "tag '%s' is not a global tag" #~ msgid "" #~ "Graphical merge program for resolving merge conflicts. If left " #~ "unspecified, Mercurial will use the first applicable tool it finds on " #~ "your system or use its internal merge tool that leaves conflict markers " #~ "in place. Chose internal:merge to force conflict markers, internal:" #~ "prompt to always select local or other, or internal:dump to leave files " #~ "in the working directory for manual merging" #~ msgstr "" #~ "Graphical merge program for resolving merge conflicts. If left " #~ "unspecified Mercurial will use the first applicable tool it finds on your " #~ "system or use its internal merge tool that leaves conflict markers in " #~ "place. Chose internal:merge to force conflict markers, internal:prompt " #~ "to always select local or other, or internal:dump to leave files in the " #~ "working directory for manual merging" #~ msgid "Specify the visual editor used to view files, etc" #~ msgstr "Specify the visual editor used to view files, etc" #~ msgid "" #~ "The editor to use during a commit and other instances where Mercurial " #~ "needs multiline input from the user. Used by command line commands, " #~ "including patch import." #~ msgstr "" #~ "The editor to use during a commit and other instances where Mercurial " #~ "needs multiline input from the user. Used by command line commands, " #~ "including patch import." #~ msgid "" #~ "Specify the number of spaces that tabs expand to in various TortoiseHg " #~ "windows. Default: Not expanded" #~ msgstr "" #~ "Specify the number of spaces that tabs expand to in various TortoiseHg " #~ "windows. Default: Not expanded" #~ msgid "Bottom Diffs" #~ msgstr "Bottom Diffs" #~ msgid "" #~ "Show the diff panel below the file list in status, shelve, and commit " #~ "dialogs. Default: False (show diffs to right of file list)" #~ msgstr "" #~ "Show the diff panel below the file list in status, shelve, and commit " #~ "dialogues. Default: False (show diffs to right of file list)" #~ msgid "Capture stderr" #~ msgstr "Capture stderr" #~ msgid "" #~ "Redirect stderr to a buffer which is parsed at the end of the process for " #~ "runtime errors. Default: True" #~ msgstr "" #~ "Redirect stderr to a buffer which is parsed at the end of the process for " #~ "runtime errors. Default: True" #~ msgid "Fork hgtk" #~ msgstr "Fork hgtk" #~ msgid "Name associated with commits" #~ msgstr "Name associated with commits" #~ msgid "" #~ "Maximum length of the commit message summary line. If set, TortoiseHg " #~ "will issue a warning if the summary line is too long or not separated by " #~ "a blank line. Default: 0 (unenforced)" #~ msgstr "" #~ "Maximum length of the commit message summary line. If set, TortoiseHg " #~ "will issue a warning if the summary line is too long or not separated by " #~ "a blank line. Default: 0 (unenforced)" #~ msgid "Message Line Length" #~ msgstr "Message Line Length" #~ msgid "" #~ "If true, concatenate multiple lines of changeset summary until they reach " #~ "80 characters. Default: False" #~ msgstr "" #~ "If true, concatenate multiple lines of changeset summary until they reach " #~ "80 characters. Default: False" #~ msgid "Use Expander" #~ msgstr "Use Expander" #~ msgid "Show changeset details with an expander" #~ msgstr "Show changeset details with an expander" #~ msgid "Toolbar Style" #~ msgstr "Toolbar Style" #~ msgid "" #~ "Repository name to use in the web interface. Default is the working " #~ "directory." #~ msgstr "" #~ "Repository name to use in the web interface. Default is the working " #~ "directory." #~ msgid "Maximum number of files to list per changeset." #~ msgstr "Maximum number of files to list per changeset." #~ msgid "Maximum number of changes to list on the changelog." #~ msgstr "Maximum number of changes to list on the changelog." #~ msgid "Character encoding name" #~ msgstr "Character encoding name" #~ msgid "Connect to mail server using TLS. Default: False" #~ msgstr "Connect to mail server using TLS. Default: False" #~ msgid "Ignore white space when comparing lines. Default: False" #~ msgstr "Ignore white space when comparing lines. Default: False" #~ msgid "Ignore changes in the amount of white space. Default: False" #~ msgstr "Ignore changes in the amount of white space. Default: False" #~ msgid "Ignore changes whose lines are all blank. Default: False" #~ msgstr "Ignore changes whose lines are all blank. Default: False" #~ msgid "Commit Message" #~ msgstr "Commit Message" #~ msgid "" #~ "Font used in changeset viewer and commit log text. Default: monospace 10" #~ msgstr "" #~ "Font used in changeset viewer and commit log text. Default: monospace 10" #~ msgid "Diff Text" #~ msgstr "Diff Text" #~ msgid "" #~ "Font used for diffs in status and commit tools. Default: monospace 10" #~ msgstr "" #~ "Font used for diffs in status and commit tools. Default: monospace 10" #~ msgid "File List" #~ msgstr "File List" #~ msgid "Font used in file lists in status and commit tools. Default: sans 9" #~ msgstr "Font used in file lists in status and commit tools. Default: sans 9" #~ msgid "Command Output" #~ msgstr "Command Output" #~ msgid "Font used in command output window. Default: monospace 10" #~ msgstr "Font used in command output window. Default: monospace 10" #~ msgid "Japanese on Windows" #~ msgstr "Japanese on Windows" #~ msgid "http" #~ msgstr "http" #~ msgid "ssh" #~ msgstr "ssh" #~ msgid "https" #~ msgstr "https" #~ msgid "Edit remote repository path" #~ msgstr "Edit remote repository path" #~ msgid "Folder" #~ msgstr "Folder" #~ msgid "URL Details" #~ msgstr "URL Details" #~ msgid "Select Local Folder" #~ msgstr "Select Local Folder" #~ msgid "Alias name is empty" #~ msgstr "Alias name is empty" #~ msgid "Please enter alias name" #~ msgstr "Please enter alias name" #~ msgid "Overwrite existing '%s' path?" #~ msgstr "Overwrite existing '%s' path?" #~ msgid "User global settings" #~ msgstr "User global settings" #~ msgid "" #~ "Default language for spell check. System language is used if not " #~ "specified. Examples: en, en_GB, en_US" #~ msgstr "" #~ "Default language for spell check. System language is used if not " #~ "specified. Examples: en, en_GB, en_US" #~ msgid "Diff" #~ msgstr "Diff" #~ msgid "Font" #~ msgstr "Font" #~ msgid "Confirm Switch" #~ msgstr "Confirm Switch" #~ msgid "Switch after saving changes?" #~ msgstr "Switch after saving changes?" #~ msgid "TortoiseHg Configure Repository - " #~ msgstr "TortoiseHg Configure Repository - " #~ msgid "TortoiseHg Configure User-Global Settings" #~ msgstr "TortoiseHg Configure User-Global Settings" #~ msgid "Exit after saving changes?" #~ msgstr "Exit after saving changes?" #~ msgid "No Repository Found" #~ msgstr "No Repository Found" #~ msgid "Path testing cannot work without a repository" #~ msgstr "Path testing cannot work without a repository" #~ msgid "Remote repository paths" #~ msgstr "Remote repository paths" #~ msgid "Repository Path" #~ msgstr "Repository Path" #~ msgid "_Edit" #~ msgstr "_Edit" #~ msgid "_Test" #~ msgstr "_Test" #~ msgid "Set as _default" #~ msgstr "Set as _default" #~ msgid "Theme default fonts" #~ msgstr "Theme default fonts" #~ msgid "Preset fonts:" #~ msgstr "Preset fonts:" #~ msgid "Custom fonts:" #~ msgstr "Custom fonts:" #~ msgid " - Select Preset -" #~ msgstr " - Select Preset -" #~ msgid "Suggested" #~ msgstr "Suggested" #~ msgid "History" #~ msgstr "History" #~ msgid "Insufficient access rights, reverting to read-onlymode." #~ msgstr "Insufficient access rights, reverting to read-only mode." #~ msgid "Unable to parse a config file" #~ msgstr "Unable to parse a config file" #~ msgid "" #~ "%s\n" #~ "Reverting to read-only mode." #~ msgstr "" #~ "%s\n" #~ "Reverting to read-only mode." #~ msgid "Skipped saving path with no alias" #~ msgstr "Skipped saving path with no alias" #~ msgid "Import" #~ msgstr "Import" #~ msgid "Imported successfully" #~ msgstr "Imported successfully" #~ msgid "Canceled importing" #~ msgstr "Cancelled importing" #~ msgid "Confirm Close" #~ msgstr "Confirm Close" #~ msgid "Do you want to close?" #~ msgstr "Do you want to close?" #~ msgid "Select Patches" #~ msgstr "Select Patches" #~ msgid "Select Directory contains patches:" #~ msgstr "Select Directory contains patches:" #~ msgid "%s will be imported to the" #~ msgstr "%s will be imported to the" #~ msgid "%s will be imported to the repository" #~ msgstr "%s will be imported to the repository" #~ msgid "unexpected destination name: %s" #~ msgstr "unexpected destination name: %s" #~ msgid "Unapply last patch" #~ msgstr "Unapply last patch" #~ msgid "Apply next patch" #~ msgstr "Apply next patch" #~ msgid "#" #~ msgstr "#" #~ msgid "Patch" #~ msgstr "Patch" #~ msgid "Yes (&keep)" #~ msgstr "Yes (&keep)" #~ msgid "Do you want to delete '%(name)s'?" #~ msgstr "Do you want to delete '%(name)s'?" #~ msgid "Do you want to delete these patches?" #~ msgstr "Do you want to delete these patches?" #~ msgid "Confirm Fold" #~ msgstr "Confirm Fold" #~ msgid "" #~ "Do you want to fold un-applied patch '%(target)s' into current patch " #~ "'%(qtip)s'?" #~ msgstr "" #~ "Do you want to fold un-applied patch '%(target)s' into current patch " #~ "'%(qtip)s'?" #~ msgid "" #~ "Do you want to fold following un-applied patches into the current patch " #~ "'%(qtip)s'?" #~ msgstr "" #~ "Do you want to fold following un-applied patches into the current patch " #~ "'%(qtip)s'?" #~ msgid "invalid reorder operation: %s" #~ msgstr "invalid reorder operation: %s" #~ msgid "series become inconsistent during reorder" #~ msgstr "series become inconsistent during reorder" #~ msgid "Top" #~ msgstr "Top" #~ msgid "Up" #~ msgstr "Up" #~ msgid "Down" #~ msgstr "Down" #~ msgid "Bottom" #~ msgstr "Bottom" #~ msgid "_Goto" #~ msgstr "_Goto" #~ msgid "_Rename" #~ msgstr "_Rename" #~ msgid "_Finish Applied" #~ msgstr "_Finish Applied" #~ msgid "_Delete" #~ msgstr "_Delete" #~ msgid "F_old" #~ msgstr "F_old" #~ msgid "Reorder" #~ msgstr "Reorder" #~ msgid "Enable editable cells" #~ msgstr "Enable editable cells" #~ msgid "Show 'qparent'" #~ msgstr "Show 'qparent'" #~ msgid "Succeed" #~ msgstr "Succeed" #~ msgid "set aside selected changes" #~ msgstr "set aside selected changes" #~ msgid "Unshelve" #~ msgstr "Unshelve" #~ msgid "restore shelved changes" #~ msgstr "restore shelved changes" #~ msgid "Shelf Contents" #~ msgstr "Shelf Contents" #~ msgid "_Shelve" #~ msgstr "_Shelve" #~ msgid "No changes to shelve" #~ msgstr "No changes to shelve" #~ msgid "Please select diff chunks to shelve" #~ msgstr "Please select diff chunks to shelve" #~ msgid "Shelve file exists!" #~ msgstr "Shelve file exists!" #~ msgid "Unshelve Error" #~ msgstr "Unshelve Error" #~ msgid "Backup all (default)" #~ msgstr "Backup all (default)" #~ msgid "Backup unrelated changesets (-b/--backup)" #~ msgstr "Backup unrelated changesets (-b/--backup)" #~ msgid "Strip" #~ msgstr "Strip" #~ msgid "Stripped successfully" #~ msgstr "Stripped successfully" #~ msgid "Canceled stripping" #~ msgstr "Cancelled stripping" #~ msgid "Failed to strip" #~ msgstr "Failed to strip" #~ msgid "%s changesets" #~ msgstr "%s changesets" #~ msgid "%s will be stripped" #~ msgstr "%s will be stripped" #~ msgid "" #~ "Detected uncommitted local changes.\n" #~ "Do you want to discard them and continue?" #~ msgstr "" #~ "Detected uncommitted local changes.\n" #~ "Do you want to discard them and continue?" #~ msgid "&Yes (--force)" #~ msgstr "&Yes (--force)" #~ msgid "Saved at: %s" #~ msgstr "Saved at: %s" #~ msgid "Open..." #~ msgstr "Open..." #~ msgid "Always show log" #~ msgstr "Always show log" #~ msgid "Updated successfully" #~ msgstr "Updated successfully" #~ msgid "Failed to update" #~ msgstr "Failed to update" #~ msgid "" #~ "Detected uncommitted local changes in working tree.\n" #~ "Please select to continue:\n" #~ "\n" #~ msgstr "" #~ "Detected uncommitted local changes in working tree.\n" #~ "Please select to continue:\n" #~ "\n" #~ msgid "Shelve - launch Shelve tool and continue" #~ msgstr "Shelve - launch Shelve tool and continue" #~ msgid "[canceled by user]\n" #~ msgstr "[cancelled by user]\n" #~ msgid "invalid dialog result: %s" #~ msgstr "invalid dialogue result: %s" #~ msgid "cleaning up temp directory\n" #~ msgstr "cleaning up temp directory\n" #~ msgid "Visual Diffs" #~ msgstr "Visual Diffs" #~ msgid "changeset " #~ msgstr "changeset " #~ msgid "revisions %d to %d" #~ msgstr "revisions %d to %d" #~ msgid "Unable to delete temp files" #~ msgstr "Unable to delete temp files" #~ msgid "Close diff tools and try again, or quit to leak files?" #~ msgstr "Close diff tools and try again, or quit to leak files?" #~ msgid "&Quit" #~ msgstr "&Quit" #~ msgid "Try &Again" #~ msgstr "Try &Again" #~ msgid "No repository found here" #~ msgstr "No repository found here" #~ msgid "Unsupported line endings type: %s" #~ msgstr "Unsupported line endings type: %s" #~ msgid "unknown patch content: %r" #~ msgstr "unknown patch content: %r" #~ msgid "this modifies a binary file (all or nothing)\n" #~ msgstr "this modifies a binary file (all or nothing)\n" #~ msgid "this is a binary file\n" #~ msgstr "this is a binary file\n" #~ msgid "" #~ "total: %d hunks (%d changed lines); selected: %d hunks (%d changed lines)" #~ msgstr "" #~ "total: %d hunks (%d changed lines); selected: %d hunks (%d changed lines)" #~ msgid "%d hunks, %d lines changed\n" #~ msgstr "%d hunks, %d lines changed\n" #~ msgid "unhandled transition: %s -> %s" #~ msgstr "unhandled transition: %s -> %s" #~ msgid " [Ynsfdaq?] " #~ msgstr " [Ynsfdaq?] " #~ msgid "user quit" #~ msgstr "user quit" #~ msgid "shelve changes to %s?" #~ msgstr "shelve changes to %s?" #~ msgid " and " #~ msgstr " and " #~ msgid "shelve this change to %r?" #~ msgstr "shelve this change to %r?" #~ msgid "backup %r as %r\n" #~ msgstr "backup %r as %r\n" #~ msgid "shelve can only be run interactively" #~ msgstr "shelve can only be run interactively" #~ msgid "shelve data already exists" #~ msgstr "shelve data already exists" #~ msgid "no changes to shelve\n" #~ msgstr "no changes to shelve\n" #~ msgid "applying patch\n" #~ msgstr "applying patch\n" #~ msgid "saving patch to shelve\n" #~ msgstr "saving patch to shelve\n" #~ msgid "restoring %r to %r\n" #~ msgstr "restoring %r to %r\n" #~ msgid "removing shelve file\n" #~ msgstr "removing shelve file\n" #~ msgid "applying shelved patch\n" #~ msgstr "applying shelved patch\n" #~ msgid "restoring backup files\n" #~ msgstr "restoring backup files\n" #~ msgid "removing shelved patches\n" #~ msgstr "removing shelved patches\n" #~ msgid "unshelve completed\n" #~ msgstr "unshelve completed\n" #~ msgid "nothing to unshelve\n" #~ msgstr "nothing to unshelve\n" #~ msgid "mark new/missing files as added/removed before shelving" #~ msgstr "mark new/missing files as added/removed before shelving" #~ msgid "overwrite existing shelve data" #~ msgstr "overwrite existing shelve data" #~ msgid "append to existing shelve data" #~ msgstr "append to existing shelve data" #~ msgid "hg shelve [OPTION]... [FILE]..." #~ msgstr "hg shelve [OPTION]... [FILE]..." #~ msgid "inspect shelved changes only" #~ msgstr "inspect shelved changes only" #~ msgid "proceed even if patches do not unshelve cleanly" #~ msgstr "proceed even if patches do not unshelve cleanly" #~ msgid "hg unshelve [OPTION]... [FILE]..." #~ msgstr "hg unshelve [OPTION]... [FILE]..." #~ msgid "patching file %s\n" #~ msgstr "patching file %s\n" #~ msgid "bad hunk #%d %s (%d %d %d %d)" #~ msgstr "bad hunk #%d %s (%d %d %d %d)" #~ msgid "file %s already exists\n" #~ msgstr "file %s already exists\n" #~ msgid "Hunk #%d succeeded at %d with fuzz %d (offset %d lines).\n" #~ msgstr "Hunk #%d succeeded at %d with fuzz %d (offset %d lines).\n" #~ msgid "Hunk #%d succeeded at %d (offset %d lines).\n" #~ msgstr "Hunk #%d succeeded at %d (offset %d lines).\n" #~ msgid "Hunk #%d FAILED at %d\n" #~ msgstr "Hunk #%d FAILED at %d\n" #~ msgid "bad hunk #%d" #~ msgstr "bad hunk #%d" #~ msgid "bad hunk #%d old text line %d" #~ msgstr "bad hunk #%d old text line %d" #~ msgid "could not extract binary patch" #~ msgstr "could not extract binary patch" #~ msgid "binary patch is %d bytes, not %d" #~ msgstr "binary patch is %d bytes, not %d" #~ msgid "unable to strip away %d dirs from %s" #~ msgstr "unable to strip away %d dirs from %s" #~ msgid "unable to find %s or %s for patching" #~ msgstr "unable to find %s or %s for patching" #~ msgid "malformed patch %s %s" #~ msgstr "malformed patch %s %s" #~ msgid "No valid hunks found" #~ msgstr "No valid hunks found" #~ msgid "Send emails" #~ msgstr "Send e-mails" #~ msgid "Show emails which would be sent" #~ msgstr "Show e-mails which would be sent" #~ msgid "Configure email settings" #~ msgstr "Configure e-mail settings" #~ msgid "Email outgoing changes" #~ msgstr "E-mail outgoing changes" #~ msgid "Email revisions " #~ msgstr "E-mail revisions " #~ msgid "Email Mercurial Patches" #~ msgstr "E-mail Mercurial Patches" #~ msgid "Email..." #~ msgstr "E-mail..." #~ msgid "Email from here to selected..." #~ msgstr "E-mail from here to selected..." #~ msgid "Email outgoing changesets" #~ msgstr "E-mail outgoing changesets" #~ msgid "Configure aliases and after pull behavior" #~ msgstr "Configure aliases and after pull behaviour" #~ msgid "Email local outgoing changes to one or more recipients" #~ msgstr "E-mail local outgoing changes to one or more recipients" #~ msgid "Please try again after the previous command has completed" #~ msgstr "Please try again after the previous command has completed" #~ msgid "unable to clean temp directory: %s\n" #~ msgstr "unable to clean temp directory: %s\n" #~ msgid "Status: %s" #~ msgstr "Status: %s" #~ msgid "Please try again after the running operation is completed" #~ msgstr "Please try again after the running operation is completed" #~ msgid "Finished committing" #~ msgstr "Finished committing" #~ msgid "Finished committing and pushing" #~ msgstr "Finished committing and pushing" #~ msgid "File is binary.\n" #~ msgstr "File is binary.\n" #~ msgid "" #~ "** Please report this bug to http://bitbucket.org/tortoisehg/stable/" #~ "issues\n" #~ msgstr "" #~ "** Please report this bug to http://bitbucket.org/tortoisehg/stable/" #~ "issues\n" #~ msgid "Backed out successfully, you must now commit the results" #~ msgstr "Backed out successfully, you must now commit the results" #~ msgid "" #~ "No issue link found in the commit message.The commit message should " #~ "contain an issue link. Configure this in the 'Issue' section in the " #~ "settings" #~ msgstr "" #~ "No issue link found in the commit message. The commit message should " #~ "contain an issue link. Configure this in the 'Issue' section in the " #~ "settings" #~ msgid "Starting Revision:" #~ msgstr "Starting Revision:" #~ msgid "" #~ "Defines the command to run when an issue number is recognized. You may " #~ "include groups in issue.regex, and corresponding {n} tokens in issue.link " #~ "(where n is a non-negative integer). {0} refers to the entire string " #~ "matched by issue.regex, while {1} refers to the first group and so on. If " #~ "no {n} tokensare found in issue.link, the entire matched string is " #~ "appended instead." #~ msgstr "" #~ "Defines the command to run when an issue number is recognised. You may " #~ "include groups in issue.regex, and corresponding {n} tokens in issue.link " #~ "(where n is a non-negative integer). {0} refers to the entire string " #~ "matched by issue.regex, while {1} refers to the first group and so on. If " #~ "no {n} tokensare found in issue.link, the entire matched string is " #~ "appended instead." #~ msgid "" #~ "A \"template string\" that, when set, turns the revision number and short " #~ "hashes that are shown on the revision panels into links.
                                The " #~ "\"template string\" uses a \"mercurial template\"-like syntax that " #~ "currently accepts two template expressions:

                                • {node|short} : " #~ "replaced by the 12 digit revision id (note that {node} on its own is " #~ "currently unsupported).
                                • {rev} : replaced by the revision number.For example, in order to link to bitbucket commit pages you can set " #~ "this to:
                                  https://bitbucket.org/tortoisehg/thg/commits/{node|short}" #~ msgstr "" #~ "A \"template string\" that, when set, turns the revision number and short " #~ "hashes that are shown on the revision panels into links.
                                  The " #~ "\"template string\" uses a \"mercurial template\"-like syntax that " #~ "currently accepts two template expressions:
                                  • {node|short} : " #~ "replaced by the 12 digit revision id (note that {node} on its own is " #~ "currently unsupported).
                                  • {rev} : replaced by the revision number.For example, in order to link to bitbucket commit pages you can set " #~ "this to:
                                    https://bitbucket.org/tortoisehg/thg/commits/{node|short}" #~ msgid "Copyright 2008-2018 Steve Borho and others" #~ msgstr "Copyright 2008-2018 Steve Borho and others" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/es.po0000644000000000000000000062327114440352353016250 0ustar00rootroot# Spanish translation for tortoisehg # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the tortoisehg package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2015-11-30 22:59+0000\n" "Last-Translator: Mauro Fernández \n" "Language-Team: Spanish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2019-07-17 05:45+0000\n" "X-Generator: Launchpad (build 19009)\n" msgid "TortoiseHg Overlay Icon Server" msgstr "Servidor de Iconos Superpuestos de TortoiseHG" msgid "Exit" msgstr "Salir" msgid "About" msgstr "Acerca de" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "" msgid "You can visit our site here" msgstr "Puede visitar nuestro sitio aquí" msgid "&License" msgstr "&Licencia" #, python-format msgid "version %s" msgstr "versión %s" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "con Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "¡Una nueva versión de TortoiseHg (%s) está lista para descargar!" msgid "License" msgstr "Licencia" msgid "= Working Directory Parent =" msgstr "= Directorio de trabajo de nivel superior =" msgid "Directory of files" msgstr "Directorio de archivos" msgid "Tar archives" msgstr "Archivos tar" msgid "Uncompressed tar archive" msgstr "Archivo tar descomprimido" msgid "Bzip2 tar archives" msgstr "Archivos tar bzip2" msgid "Tar archive compressed using bzip2" msgstr "Archivo tar comprimido con bzip2" msgid "Gzip tar archives" msgstr "Archivos tar gzip" msgid "Tar archive compressed using gzip" msgstr "Archivo tar comprimido con gzip" msgid "Zip archives" msgstr "Archivos zip" msgid "Uncompressed zip archive" msgstr "Archivo zip descomprimido" msgid "Zip archive compressed using deflate" msgstr "Archivo zip comprimido con deflate" msgid "Revision:" msgstr "Revisión:" msgid "All files in this revision" msgstr "" msgid "Only files modified/created in this revision" msgstr "Solo archivos modificados/creados en esta revisión" msgid "Only files modified/created since:" msgstr "" msgid "Archive Content:" msgstr "" msgid "Recurse into subrepositories" msgstr "Recorrer subdirectorios" msgid "Browse..." msgstr "Examinar..." msgid "Destination path:" msgstr "Directorio de destino:" msgid "Archive types:" msgstr "Tipos de archivado:" msgid "Hg command:" msgstr "Comando Hg:" msgid "Select Destination Folder" msgstr "Seleccionar carpeta de destino" msgid "Select Destination File" msgstr "Seleccionar archivo de destino" msgid "All files (*)" msgstr "Todos los archivos (*)" msgid "Duplicate Name" msgstr "Nombre duplicado" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "El destino \"%s\" ya existe como archivo." msgid "Confirm Overwrite" msgstr "Confirmar sobreescritura" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" "¡El directorio \"%s\" no está vacío!\n" "\n" "¿Quiere sobreescribirlo?" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" "¡El archivo \"%s\" ya existe!\n" "\n" "¿Deseas sobrescribirlo?" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "¡El destino \"%s\" ya existe como carpeta!" #, python-format msgid "Archive - %s" msgstr "Archivo - %s" msgid "&Archive" msgstr "&Archivar" msgid "Backout requires a parent revision" msgstr "" msgid "Cannot backout change on a different branch" msgstr "No se puede anular un cambio en una rama diferente" #, python-format msgid "Backout - %s" msgstr "Anular - %s" msgid "Prepare to backout" msgstr "Preparar anulación" msgid "Verify backout revision and ensure your working directory is clean." msgstr "" "Verifica la revision que quieres anular y asegurate de que tu directorio de " "trabajo esta limpio" msgid "Backing out a parent revision is a single step operation" msgstr "Anular una revision padre es una operacion de un solo paso" msgid "Backout revision" msgstr "Anular revision" msgid "Not a head, backout will create a new head!" msgstr "No estas en una cabecera, anular creara una nueva cabecera" msgid "Current local revision" msgstr "Revision local actual" msgid "Working directory status" msgstr "Estado del directorio de trabajo" msgid "Checking..." msgstr "Comprobando..." msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Automatically resolve merge conflicts where possible" msgstr "Resolver automáticamente conflictos de unión donde sea posible" msgid "Uncommitted local changes are detected" msgstr "" msgid "Clean" msgstr "Limpio" msgid "Backing out, then merging..." msgstr "" msgid "All conflicting files will be marked unresolved." msgstr "Todos los archivos conflictivos serán marcados como no resueltos." msgid "Automatically advance to next page when backout and merge are complete." msgstr "" #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" msgid "No merge conflicts, ready to commit" msgstr "" msgid "Commit backout and merge results" msgstr "" msgid "Parents" msgstr "Padres" msgid "Working Directory" msgstr "Directorio de trabajo" msgid "Working Directory (merged)" msgstr "Directorio de trabajo (unido)" msgid "Commit message" msgstr "" msgid "Skip final confirmation page, close after commit." msgstr "" msgid "Backed out changeset: " msgstr "Conjunto de cambios retirado: " msgid "Confirm Discard Message" msgstr "Confirmar mensaje de Descarte" msgid "Discard current backout message?" msgstr "¿Descartar el mensaje actual de anulación de cambios" msgid "Use English backout message" msgstr "Utilizar mensaje de anulación en Inglés" msgid "Backing out and committing..." msgstr "" msgid "Please wait while making backout." msgstr "" msgid "Committing..." msgstr "" msgid "Please wait while committing merged files." msgstr "" msgid "Finished" msgstr "Terminado" msgid "Backout changeset" msgstr "" #, python-format msgid "Bisect - %s" msgstr "" msgid "Accept" msgstr "Aceptar" msgid "Known good revision:" msgstr "" msgid "Known bad revision:" msgstr "" msgid "Discard local changes (revert --all)" msgstr "" msgid "Revision is &Good" msgstr "" msgid "Revision is &Bad" msgstr "" msgid "&Skip this Revision" msgstr "" msgid "Close" msgstr "Cerrar" msgid "Error encountered." msgstr "Error encontrado." msgid "Culprit found." msgstr "" msgid "Revision" msgstr "Revisión" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "" #, python-format msgid "%s (hint: %s)" msgstr "%s (tip: %s)" msgid "Bookmark:" msgstr "Marcador:" msgid "New Name:" msgstr "Nombre nuevo:" msgid "Activate:" msgstr "Activar:" msgid "&Add" msgstr "&Añadir" msgid "Re&name" msgstr "Re&nombrar" msgid "&Remove" msgstr "Elimina&r" msgid "&Move" msgstr "&Mover" #, python-format msgid "Bookmark - %s" msgstr "Marcador - %s" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "Ya existe un marcador llamado «%s»" #, python-format msgid "Bookmark '%s' has been added" msgstr "Se ha añadido el marcador «%s»" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "" #, python-format msgid "Bookmark '%s' has been moved" msgstr "Se movio el marcador '%s'" #, python-format msgid "Bookmark '%s' does not exist" msgstr "marcador '%s' no existe" #, python-format msgid "Bookmark '%s' has been removed" msgstr "Se ha eliminado el marcador «%s»" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "El marcador «%s» se ha renombrado a «%s»" msgid "TortoiseHg Bookmark Sync" msgstr "" msgid "Outgoing Bookmarks" msgstr "" msgid "&Push Bookmark" msgstr "" msgid "&Remove Bookmark" msgstr "" msgid "Incoming Bookmarks" msgstr "" msgid "P&ull Bookmark" msgstr "" msgid "R&emove Bookmark" msgstr "" #, python-format msgid "Pushed local bookmark: %s" msgstr "" #, python-format msgid "Pulled remote bookmark: %s" msgstr "" #, python-format msgid "Removed remote bookmark: %s" msgstr "" #, python-format msgid "Removed local bookmark: %s" msgstr "" #, python-format msgid "%s - branch operation" msgstr "" msgid "Select branch of merge commit" msgstr "Seleccione rama de combinación para almacenar los cambios" msgid "Changes take effect on next commit" msgstr "Los cambios surtiran efecto en la proxima consignación" msgid "No branch changes" msgstr "No cambios en etiqueta" msgid "Open a new named branch" msgstr "Abrir una nueva rama nombrada" msgid "Close current branch" msgstr "Cerrar rama actual" #, python-format msgid "Please report this bug to our bug tracker" msgstr "" msgid "Checking for updates..." msgstr "Buscando actualizaciones…" msgid "Copy" msgstr "Copiar" msgid "Quit" msgstr "Salir" msgid "TortoiseHg Bug Report" msgstr "TortoiseHg: Informe de fallo" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "Se recomienda actualizar a un TortoiseHg más reciente" msgid "Your TortoiseHg is up to date." msgstr "" msgid "Save error report to" msgstr "Almacenar informe de errores a" msgid "Text files (*.txt)" msgstr "Archivos de texto (*.txt)" msgid "Error writing file" msgstr "Error al escribir el archivo" msgid "TortoiseHg Error" msgstr "Error de TortoiseHg" msgid "" "If you still have trouble, please file a bug report." msgstr "" "Si sigues teniendo problemas, por favor documenta un " "reporte de bug." msgid "Visual Diff" msgstr "Diff visual" msgid "View file changes in external diff tool" msgstr "" msgid "Edit Local" msgstr "" msgid "Edit current file in working copy" msgstr "Edita el archivo en la copia actual" msgid "Revert to Revision" msgstr "Revierte para revisión" msgid "Revert file(s) to contents at this revision" msgstr "" msgid "Patch failed to apply" msgstr "Fallo la aplicación del parche" msgid "Manually resolve rejected chunks?" msgstr "¿Resolver manualmente los paquetes rechazados?" msgid "Edit patched file and rejects?" msgstr "" msgid "No deletable chunks" msgstr "" msgid "Completely remove file from patch?" msgstr "" msgid "Revert all file changes?" msgstr "" msgid "No chunks remain" msgstr "No quedan paquetes" msgid "file has been deleted, refresh" msgstr "El archivo ha sido eliminado, refrescar" msgid "file has been modified, refresh" msgstr "El archivo ha sido modificado, refrescar" msgid "Unable to merge chunks" msgstr "" msgid "Add or remove patches must be merged in the working directory" msgstr "" msgid "Unable to remove" msgstr "No es posible eliminar" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" "No es posible eliminar el archivo %s,\n" "permiso denegado" msgctxt "files" msgid "All" msgstr "Todo" msgctxt "files" msgid "None" msgstr "Ninguno" msgid "Toggle display of text search bar" msgstr "" msgid "Diff Toolbar" msgstr "" #, python-format msgid "Chunks selected: %d / %d" msgstr "" msgid "Please wait while the file is opened ..." msgstr "Por favor espera mientras el archivo es abierto" msgid "Source:" msgstr "Fuente:" msgid "Destination:" msgstr "Destino:" msgid "Options" msgstr "Opciones" msgid "Clone to revision:" msgstr "Clonar a revisión:" msgid "A revision identifier, bookmark, tag or branch name" msgstr "" msgid "Do not update the new working directory" msgstr "No actualice el nuevo directorio de trabajo" msgid "Use pull protocol to copy metadata" msgstr "Utilice el protocolo de bajada para copiar los metadatos" msgid "Clone with minimal processing" msgstr "" msgid "Include patch queue" msgstr "Incluir huella del parche" msgid "Use proxy server" msgstr "Usar servidor proxy" msgid "Do not verify host certificate" msgstr "No verificar el certificado del host" msgid "Remote command:" msgstr "Comando remoto:" msgid "Use largefiles" msgstr "" msgid "Start revision:" msgstr "Iniciar revisión" msgid "Select source repository" msgstr "Seleccione un repositorio de origen" msgid "Select destination repository" msgstr "Seleccione un repositorio de destino" msgid "Select patch folder" msgstr "Seleccionar carpeta de origen" #, python-format msgid "Clone - %s" msgstr "Clonar - %s" msgid "&Clone" msgstr "&Clonar" msgid "failed to start command\n" msgstr "error al iniciar el comando\n" msgid "error while running command\n" msgstr "error al ejecutar el comando\n" #, python-format msgid "process exited unexpectedly with code %d" msgstr "proceso terminado inesperadamente con código %d" #, python-format msgid "failed to encode command: %s" msgstr "falló al codificar comando: %s" #, python-format msgid "timed out while reading: %r..." msgstr "" msgid "timed out waiting for message" msgstr "" #, python-format msgid "unexpected response on required channel %r" msgstr "respuesta inesperada en canal requerido %r" #, python-format msgid "invalid \"hello\" message: %r" msgstr "mensaje \"hello\" inválido: %r" msgid "no \"runcommand\" capability" msgstr "" #, python-format msgid "corrupted command result: %r" msgstr "resultado de comando corrupto: %r" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "fallla al codificar entrada: %s" msgid "Terminated by user" msgstr "Finalizado por el usuario" #, python-format msgid "[command terminated by user %s]" msgstr "[comando terminado por el usuario %s]" #, python-format msgid "[command interrupted %s]" msgstr "[comando interrumpido %s]" #, python-format msgid "[command returned code %d %%s]" msgstr "" #, python-format msgid "[command completed successfully %s]" msgstr "[comando completado con éxito %s]" msgid "Running..." msgstr "Ejecutando..." msgid "Failed!" msgstr "¡Falló!" msgid "Clea&r Log" msgstr "" msgid "TortoiseHg Prompt" msgstr "Línea de órdenes de TortoiseHg" msgid "Show Detail" msgstr "Mostrar Detalle" msgid "Hide Detail" msgstr "" msgid "Confirm Exit" msgstr "Confirmar salida" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" "Comando Mercurial aún se está ejecutando.\n" "¿Seguro que quieres cancelar?" msgid "&Run" msgstr "&Ejecutar" msgid "TortoiseHg Command Dialog" msgstr "" msgid "Command Error" msgstr "Error del comando" #, python-format msgid "[Code: %d]" msgstr "[Código: %d]" msgid "Merge" msgstr "Combinar" #, python-format msgid "Merge with %s" msgstr "" msgid "Patch Name Required" msgstr "" msgid "You must enter a patch name" msgstr "" msgctxt "start progress" msgid "Commit" msgstr "" msgctxt "start progress" msgid "MQ Action" msgstr "" msgctxt "start progress" msgid "Rollback" msgstr "" msgid "Commit Dialog Toolbar" msgstr "" msgid "Branch: " msgstr "" msgid "Copy message" msgstr "Copiar mensaje" msgid "Copy one of the recent commit messages" msgstr "" msgid "Show Issues" msgstr "" msgid "Please wait..." msgstr "Espera..." #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "" msgid "Issue Tracker" msgstr "" msgid "Show Issues..." msgstr "" msgid "Stop" msgstr "Detener" msgid "### patch name ###" msgstr "" msgid "Commit changes" msgstr "" msgid "Commit" msgstr "Consignar" msgid "Amend current revision" msgstr "" msgid "Amend" msgstr "" msgid "Create a new patch" msgstr "" msgid "QNew" msgstr "QNuevo" msgid "Refresh current patch" msgstr "" msgid "QRefresh" msgstr "QRefrescar" msgid "Confirm Branch Change" msgstr "Confirmar cambio de rama" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "" msgid "Restart &Branch" msgstr "" msgid "&Commit to current branch" msgstr "" msgid "Cancel" msgstr "Cancelar" msgid "Confirm New Branch" msgstr "Confirmar nueva rama" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "" msgid "Create &Branch" msgstr "" msgid "Close Branch: " msgstr "" msgid "New Branch: " msgstr "" #, python-format msgid "Selected Options: %s" msgstr "" msgid "Parent:" msgstr "Padre:" msgid "Patch name:" msgstr "" #, python-format msgid "Close %s branch" msgstr "" #, python-format msgid "Rollback commit to revision %d" msgstr "" msgid "Confirm Undo" msgstr "" msgid "Discard current commit message?" msgstr "Descartar mensaje actual de consignar" msgid "Message Translation Failure" msgstr "" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" msgid "&Replace" msgstr "" msgid "Nothing Committed" msgstr "" msgid "Please enter commit message" msgstr "Por favor ingrese un mensaje para la consignación" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" msgid "No files checked" msgstr "" msgid "No modified files checkmarked for commit" msgstr "" msgid "Confirm Add" msgstr "" msgid "Add selected untracked files?" msgstr "" msgid "Confirm Remove" msgstr "Confirmar eliminación" msgid "Remove selected deleted files?" msgstr "" msgid "Nothing changed." msgstr "" msgctxt "window title" msgid "Commit" msgstr "" #, python-format msgid "%s - commit options" msgstr "" msgid "Set username:" msgstr "" msgid "Save in Repo" msgstr "Guardar en repo" msgid "Save Global" msgstr "" msgid "Set Date:" msgstr "" msgid "Update" msgstr "Actualizar" msgid "Push After Commit:" msgstr "" msgid "Auto Includes:" msgstr "" msgid "Recurse into subrepositories (--subrepos)" msgstr "" msgid "Unable to save username" msgstr "" msgid "Iniparse must be installed." msgstr "" msgid "Unable to write configuration file" msgstr "No se pudo escribir en el archivo de configuración" msgid "Unable to save after commit push" msgstr "" msgid "Unable to save auto include list" msgstr "" msgid "Unable to save recurse in subrepos." msgstr "" msgid "Invalid date format" msgstr "" msgid "No username configured" msgstr "" #, python-format msgid "%s - commit" msgstr "" msgid "TortoiseHg Commit" msgstr "" msgid "Are you sure that you want to cancel the commit operation?" msgstr "" msgid "Compress changesets up to and including" msgstr "" msgid "Onto destination" msgstr "" msgid "Compress" msgstr "" #, python-format msgid "Compress - %s" msgstr "" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the compress" msgstr "" msgid "Changes have been moved, you must now commit" msgstr "" msgctxt "action button" msgid "Commit" msgstr "Confirmar" msgid "Compress is complete, old history untouched" msgstr "" msgid "must be specified repository" msgstr "" msgid "must be specified 'type' in style" msgstr "" msgid "Git Commit:" msgstr "" msgid "Summary:" msgstr "Sumario:" msgid "User:" msgstr "Usuario:" msgid "Date:" msgstr "Fecha:" msgid "Age:" msgstr "Edad:" msgid "Branch:" msgstr "Rama:" msgid "Close:" msgstr "" msgid "Tags:" msgstr "Etiquetas" msgid "Graft:" msgstr "" msgid "Transplant:" msgstr "" msgid "Obsolete state:" msgstr "" msgid "Perforce:" msgstr "" msgid "Subversion:" msgstr "Subversion:" msgid "Converted From:" msgstr "" msgid "Original Parent:" msgstr "" msgid "No items to display" msgstr "No hay elementos para mostrar" msgid "Use compact view" msgstr "Usar vista compacta" msgid "Patch:" msgstr "Parche:" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "" msgid "Select a GUI location to edit:" msgstr "" msgid "Select the toolbar or menu to change" msgstr "" msgid "Tools shown on selected location" msgstr "" msgid "Delete from list" msgstr "" msgid "Add to list" msgstr "" msgid "Add separator" msgstr "" msgid "List of all tools" msgstr "" msgid "New Tool ..." msgstr "" msgid "Edit Tool ..." msgstr "" msgid "Delete Tool" msgstr "" msgid "Type" msgstr "Tipo" msgid "Name" msgstr "Nombre" msgid "Command" msgstr "" msgid "New hook" msgstr "" msgid "Edit hook" msgstr "" msgid "Delete hook" msgstr "" msgid "Replace existing hook?" msgstr "" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" msgid "OK" msgstr "OK" msgid "Missing information" msgstr "" msgid "All items" msgstr "" msgid "Working directory" msgstr "" msgid "All revisions" msgstr "" msgid "All contexts" msgstr "" msgid "Fixed revisions" msgstr "" msgid "Applied patches" msgstr "" msgid "Applied patches or qparent" msgstr "" msgid "" msgstr "" msgid "Configure Custom Tool" msgstr "" msgid "Tool name" msgstr "" msgid "The tool name. It cannot contain spaces." msgstr "" #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" msgid "Tool label" msgstr "" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" msgid "Tooltip" msgstr "" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" msgid "Icon" msgstr "" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" msgid "On repowidget, show for" msgstr "" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" msgid "Show Output Log" msgstr "" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" msgid "You must set a tool name." msgstr "" msgid "The tool name cannot have any spaces in it." msgstr "" msgid "You must set a command to run." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" msgid "Configure Hook" msgstr "" msgid "Hook type" msgstr "" msgid "Select when your command will be run" msgstr "" msgid "The hook name. It cannot contain spaces." msgstr "" msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" msgid "You must set a valid hook type." msgstr "" msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "" msgid "Console" msgstr "" msgid "File &History / Annotate" msgstr "" msgid "Show the history of the selected file" msgstr "" msgid "Co&mpare File Revisions" msgstr "" msgid "Compare revisions of the selected file" msgstr "" msgid "Filter Histor&y" msgstr "" msgid "Query about changesets affecting the selected files" msgstr "" msgid "Diff &Changeset to Parent" msgstr "" msgid "Diff Changeset to Loc&al" msgstr "" msgid "&Diff to Parent" msgstr "" msgid "Diff to &Local" msgstr "" msgid "View changes to current in external diff tool" msgstr "" msgid "&View at Revision" msgstr "" msgid "View file as it appeared at this revision" msgstr "" msgid "&Save at Revision..." msgstr "" msgid "Save file as it appeared at this revision" msgstr "" msgid "Save file to" msgstr "Guardar archivo en" msgid "&Edit Local" msgstr "" msgid "&Open Local" msgstr "" msgid "E&xplore Local" msgstr "" msgid "Open parent folder of current file in the system file manager" msgstr "" msgid "&Copy Patch" msgstr "" msgid "Copy &Path" msgstr "" msgid "Copy full path of file(s) to the clipboard" msgstr "" msgid "&Revert to Revision..." msgstr "" msgid "Open S&ubrepository" msgstr "" msgid "Open the selected subrepository" msgstr "" msgid "E&xplore Folder" msgstr "" msgid "Open the selected folder in the system file manager" msgstr "" msgid "Open &Terminal" msgstr "" msgid "Open a shell terminal in the selected folder" msgstr "" msgid "Custom Tools" msgstr "" msgid "Diff &Local" msgstr "" msgid "&View Missing" msgstr "" msgid "View O&ther" msgstr "" msgid "Add &Largefiles..." msgstr "" msgid "&Forget" msgstr "" msgid "&Delete Unversioned..." msgstr "" msgid "Confirm Delete Unversioned" msgstr "" msgid "Delete the following unversioned files?" msgstr "" msgid "&Delete" msgstr "" msgid "Re&move Versioned" msgstr "" msgid "&Revert..." msgstr "" msgid "Uncommited merge - please select a parent revision" msgstr "" "Combinación pendiente de consolidar por favor seleccione una revisión padre" msgid "Revert files to local or other parent?" msgstr "" msgid "&Local" msgstr "&Local" msgid "&Other" msgstr "&Otro" msgid "Confirm Revert" msgstr "Confirmar reversión" msgid "Revert local file changes?" msgstr "" msgid "&Revert with backup" msgstr "" msgid "&Discard changes" msgstr "" msgid "Revert the following files?" msgstr "" msgid "&Revert" msgstr "" msgid "&Copy..." msgstr "" msgid "Re&name..." msgstr "" msgid "&Ignore..." msgstr "" msgid "Edit Re&jects" msgstr "" msgid "Manually resolve rejected patch chunks" msgstr "" msgid "De&tect Renames..." msgstr "" msgid "&Mark Resolved" msgstr "" msgid "&Mark Unresolved" msgstr "" msgid "Restart Mer&ge" msgstr "" msgid "Was renamed from" msgstr "" msgid "Restart Merge &with" msgstr "" msgid "Display the file anyway" msgstr "" msgid "Diff not displayed: " msgstr "" #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid "File is binary" msgstr "" msgid "File may be binary (maximum line length exceeded)" msgstr "" msgid "File or diffs not displayed: " msgstr "Archivo o difs no mostrados " msgid " (was added)" msgstr "" #, python-format msgid " (copied from %s)" msgstr "" #, python-format msgid " (renamed from %s)" msgstr "" msgid " (is a symlink)" msgstr "" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid " (was deleted)" msgstr "" msgid " (was added, now missing)" msgstr "" msgid " (is unversioned)" msgstr "" msgid "exec mode has been set" msgstr "" msgid "exec mode has been unset" msgstr "" #, python-format msgid "changeset: %s" msgstr "" msgid "Initial revision" msgstr "" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" msgid "Subrepo created and set to initial revision." msgstr "" msgid "Subrepo initialized to revision:" msgstr "" msgid "Subrepo removed from repository." msgstr "" msgid "Previously the subrepository was at the following revision:" msgstr "" msgid "Subrepo was not changed." msgstr "" msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "" msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "" msgid "Subrepo state is:" msgstr "" msgid "Revision has changed to:" msgstr "" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "" msgid "From:" msgstr "Desde:" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" msgid "Subrepository not found in the working directory." msgstr "" msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" msgid "Not a Mercurial subrepo, not previewable" msgstr "" #, python-format msgid "Error previewing subrepo: %s" msgstr "" msgid "Subrepo may be damaged or inaccessible." msgstr "" msgid "The subrepository is dirty." msgstr "" msgid "File Status:" msgstr "" msgid "(is a changed sub-repository)" msgstr "" msgid "(is an unchanged sub-repository)" msgstr "" msgid "(is a dirty sub-repository)" msgstr "" msgid "(is a new sub-repository)" msgstr "" msgid "(is a removed sub-repository)" msgstr "" msgid "(is a changed and dirty sub-repository)" msgstr "" msgid "(is a new and dirty sub-repository)" msgstr "" msgid "open..." msgstr "" #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "" msgid "File History Log Columns" msgstr "" msgid "Back" msgstr "" msgid "Forward" msgstr "" msgid "Diff Selected &Changesets" msgstr "" msgid "&Diff Selected File Revisions" msgstr "" msgid "Show Revision &Details" msgstr "" msgid "Too many rows selected for menu" msgstr "" msgid "File Differences Log Columns" msgstr "" msgid "Next diff" msgstr "" msgid "Previous diff" msgstr "" msgid "Unicode" msgstr "" msgid "Western Europe" msgstr "" msgid "Unified Chinese" msgstr "" msgid "Traditional Chinese" msgstr "" msgid "Korean" msgstr "" msgid "Japanese" msgstr "" msgid "Thai" msgstr "" msgid "Central and Eastern Europe" msgstr "" msgid "Cyrillic" msgstr "" msgid "Russian" msgstr "" msgid "Ukrainian" msgstr "" msgid "Greek" msgstr "" msgid "Turkish" msgstr "" msgid "Arabic" msgstr "" msgid "Hebrew" msgstr "" msgid "Vietnamese" msgstr "" msgid "Baltic" msgstr "" msgid "Southern Europe" msgstr "" msgid "Nordic" msgstr "" msgid "Celtic" msgstr "" msgid "South-Eastern Europe" msgstr "" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "" msgid "View change as unified diff output" msgstr "" msgid "View change in context of file" msgstr "" msgid "Annotate with revision numbers" msgstr "" msgid "Next Diff" msgstr "" msgid "Previous Diff" msgstr "" msgid "Open shelve tool" msgstr "" msgid "&Auto Detect" msgstr "" msgid "Show changes from first parent" msgstr "" msgid "Show changes from second parent" msgstr "" msgid "E&ncoding" msgstr "" msgid "&Search in Current File" msgstr "" msgid "Search in All &History" msgstr "" msgid "Go to Line" msgstr "" #, python-format msgid "Enter line number (1 - %d)" msgstr "" msgid "Show &Author" msgstr "" msgid "Show &Date" msgstr "" msgid "Show &Revision" msgstr "" msgid "Annotate Op&tions" msgstr "" msgid "Search Selected Text" msgstr "" msgid "In Current &File" msgstr "" msgid "In &Current Revision" msgstr "" msgid "In &Original Revision" msgstr "" msgid "In All &History" msgstr "" msgid "Go to" msgstr "" msgid "View File at" msgstr "" msgid "Diff File to" msgstr "" msgid "&Originating Revision" msgstr "" msgid "&Parent Revision" msgstr "" #, python-format msgid "&Parent Revision (%d)" msgstr "" msgid "&Mark Excluded Changes" msgstr "" msgid "(excluded from the next commit)" msgstr "" msgid "Interrupted graft operation found" msgstr "" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" msgid "Continue or abort interrupted graft operation?" msgstr "" msgid "To graft destination" msgstr "" msgid "Use my user name instead of graft committer user name" msgstr "" msgid "Use current date" msgstr "" msgid "Append graft info to log message" msgstr "" msgid "Graft" msgstr "" msgid "Abort" msgstr "Interrumpir" #, python-format msgid "Graft - %s" msgstr "" msgid "Graft changeset" msgstr "" #, python-format msgid "Graft changeset #%d of %d" msgstr "" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" msgid "You may continue or start the graft" msgstr "" msgid "Graft is complete" msgstr "" msgid "Graft failed" msgstr "" msgid "Graft aborted" msgstr "" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" msgid "You may continue the graft" msgstr "" msgid "Exiting with an unfinished graft is not recommended." msgstr "" msgid "Consider aborting the graft first." msgstr "" msgid "&Exit" msgstr "" msgid "### regular expression search pattern ###" msgstr "" msgid "Regexp:" msgstr "Exp. Regular" msgid "Ignore case" msgstr "Ignorar mayúsculas" msgid "Search" msgstr "Buscar" msgid "Working Copy" msgstr "" msgid "All History" msgstr "" msgid "Report only the first match per file" msgstr "" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "Seguir copias y renombrarlas" msgid "Includes:" msgstr "Incluye:" msgid "Excludes:" msgstr "Excluye:" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" #, python-format msgid "\"%s\" removed from search history" msgstr "" #, python-format msgid "\"%s\" removed from path history" msgstr "" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "" #, python-format msgid "grep: %s\n" msgstr "" #, python-format msgid "%d matches found" msgstr "" msgid "No matches found" msgstr "" msgid "Searching" msgstr "" msgid "history" msgstr "" msgid "Interrupted" msgstr "" msgid "files" msgstr "" #, python-format msgid "Skipping %s, unable to read" msgstr "" msgid "Vi&ew File" msgstr "" msgid "&View Changeset" msgstr "" msgid "Annotate &File" msgstr "" msgid "File" msgstr "Archivo" msgid "Line" msgstr "Linea" msgid "Rev" msgstr "Rev" msgid "User" msgstr "Usuario" msgid "Match Text" msgstr "" msgid "TortoiseHg Search" msgstr "" #, python-format msgid "Detect Copies/Renames in %s" msgstr "Detectar copias/renombrar en %s" msgid "Unrevisioned Files" msgstr "" msgid "Refresh file list" msgstr "" #, python-format msgid "Min Similarity: %d%%" msgstr "" msgid "Only consider deleted files" msgstr "" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "" msgid "Find Renames" msgstr "Buscar Renombrados" msgid "Find copy and/or rename sources" msgstr "" msgid "Candidate Matches" msgstr "" msgid "Accept All Matches" msgstr "" msgid "Accept Selected Matches" msgstr "" msgid "Differences from Source to Dest" msgstr "" msgid "Search already in progress" msgstr "" msgid "Cannot start a new search" msgstr "" msgid "No files to find" msgstr "" msgid "There are no files that may have been renamed" msgstr "" msgid "Multiple sources chosen" msgstr "" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" #. i18n: percent format #, python-format msgid "%d%%" msgstr "" msgid "Source" msgstr "Fuente" msgid "Dest" msgstr "Destino" msgid "% Match" msgstr "" msgid "Sending Email" msgstr "" msgid "Email" msgstr "Email" msgid "To:" msgstr "a:" msgid "Cc:" msgstr "Cc:" msgid "In-Reply-To:" msgstr "Reenviar a:" msgid "Message identifier to reply to, for threading" msgstr "Identificador de mensaje a responder, para conversación múltiple" msgid "Flag:" msgstr "" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" msgid "Send changesets as Hg patches" msgstr "" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" "Los parches git pueden describir archivos binarios, copias y cambios en " "permisos, pero es posible que los receptores no puedan usarlos si no están " "utilizando git o Mercurial" msgid "Use extended (git) patch format" msgstr "Utilizar formato de parche extendido (git)" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" "Dejando de lado las cabeceras de Mercurial quita el nombre de usuario y la " "información sobre los padres. Es sólo útil si el usuario no usa Mercurial (y/" "o no le gusta ver las cabeceras)." msgid "Plain, do not prepend Hg header" msgstr "" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" "Los paquetes de conjuntos de cambios se guardan en forma binaria. Es la " "forma más segura de enviar cambios a usuarios que usan Mercurial." msgid "Send single binary bundle, not patches" msgstr "Enviar un solo paquete binario, en vez de los parches" msgid "send patches as part of the email body" msgstr "" msgid "body" msgstr "" msgid "send patches as attachments" msgstr "enviar parches como archivos adjuntos" msgid "attach" msgstr "adjuntar" msgid "send patches as inline attachments" msgstr "enviar parches embebidos en el mensaje" msgid "inline" msgstr "en línea" msgid "add diffstat output to messages" msgstr "Añadir resultado de diffstat a los mensages" msgid "diffstat" msgstr "diffstat" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" msgid "Write patch series (bundle) description" msgstr "" msgid "Subject:" msgstr "Asunto:" msgid "Changesets" msgstr "" msgid "Select &All" msgstr "" msgid "Select &None" msgstr "" msgid "Edit" msgstr "Editar" msgid "Preview" msgstr "" msgid "&Settings" msgstr "" msgid "Send &Email" msgstr "" msgid "&Close" msgstr "&Cerrar" #, python-format msgid "Ignore filter - %s" msgstr "Ignorar filtro - %s" msgid "Glob" msgstr "" msgid "Regexp" msgstr "" msgid "Add" msgstr "Agregar" msgid "Edit File" msgstr "Editar archivo" msgid "Ignore Filter" msgstr "" msgid "Untracked Files" msgstr "" msgid "Backspace or Del to remove row(s)" msgstr "" msgid "Add ignore filter..." msgstr "" msgid "selected files" msgstr "" msgid "Ignore " msgstr "" msgid "Invalid glob expression" msgstr "Expresión global inválida" msgid "Invalid regexp expression" msgstr "Expresión regular inválida" msgid "Unable to read repository status" msgstr "" msgid "New file created" msgstr "" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" msgid "Unable to write .hgignore file" msgstr "" msgid "Copy working directory files from skeleton" msgstr "" msgid "Create special files (.hgignore, ...)" msgstr "" msgid "Make repo compatible with Mercurial <1.7" msgstr "" msgid "New Repository" msgstr "" msgid "&Create" msgstr "" msgid "Unable to create a config file" msgstr "" msgid "Insufficient access rights." msgstr "" msgid "Show Log" msgstr "" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" msgid "Add as &Largefiles" msgstr "" msgid "Add as &Normal Files" msgstr "" msgid "Invalid Patterns" msgstr "" msgid "Failed to process largefiles.patterns." msgstr "" msgid "Word docs (*.doc *.docx)" msgstr "" msgid "PDF docs (*.pdf)" msgstr "" msgid "Excel files (*.xls *.xlsx)" msgstr "" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "" msgid "Refresh lock information" msgstr "" msgid "Lock a file not described in .hglocks" msgstr "" msgid "Stop current operation" msgstr "" msgid "Locked And Lockable Files:" msgstr "" msgid "Path" msgstr "" msgid "Locking User" msgstr "" msgid "Purpose" msgstr "" msgid "Simplelock extension not enabled" msgstr "" msgid "Please enable and configure simplelock" msgstr "" msgid "Open a (nonmergable) file you wish to be locked" msgstr "" msgid "File was not within current repository" msgstr "" #, python-format msgid "Locking %s" msgstr "" #, python-format msgid "Unlocking %s" msgstr "" msgid "Refreshing locks..." msgstr "" #, python-format msgid "Lock of %s successful" msgstr "" #, python-format msgid "Lock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s successful" msgstr "" msgid "Ready, double click to lock or unlock" msgstr "" msgid "Ready" msgstr "" msgid "You can only release your own locks" msgstr "" msgid "Find revisions matching fields of:" msgstr "" msgid "Revision to Match:" msgstr "" msgid "Fields to match:" msgstr "" msgid "Summary (first description line)" msgstr "" msgid "Description" msgstr "Descripción" msgid "Author" msgstr "" msgid "Date" msgstr "Fecha" msgid "Files" msgstr "Archivos" msgid "Diff contents" msgstr "" msgid "Subrepo states" msgstr "" msgid "Branch" msgstr "Rama" msgid "Phase" msgstr "" msgid "&Match" msgstr "" #, python-format msgid "Find matches - %s" msgstr "" msgid "Revisions to Match:" msgstr "" #, python-format msgid "Match any of %d revisions" msgstr "" msgid "Unknown revision!" msgstr "" msgid "Parse Error!" msgstr "" #, python-format msgid "Merge - %s" msgstr "" msgid "Do you want to exit?" msgstr "" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" msgid "Prepare to merge" msgstr "" msgid "Verify merge targets and ensure your working directory is clean." msgstr "" msgid "Not a head revision!" msgstr "!No es una revisión de cabecera!" msgid "Merge from (other revision)" msgstr "" msgid "Merge to (working directory)" msgstr "" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Or use:" msgstr "" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "" msgid "Discard all changes from the other revision" msgstr "" msgid "&Discard" msgstr "&Descartar" msgid "Confirm Discard Changes" msgstr "" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" msgctxt "working dir state" msgid "Clean" msgstr "" msgid "Merging..." msgstr "" msgid "Automatically advance to next page when merge is complete." msgstr "" #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" msgid "" "No merge conflicts, ready to commit or review" msgstr "" msgid "Commit merge results" msgstr "" msgid "Commit Options" msgstr "" msgid "Commit Now" msgstr "" msgid "Commit Later" msgstr "" msgid "Merge changeset" msgstr "" msgid "Syntax Highlighting" msgstr "" msgid "Paste &Filenames" msgstr "" msgid "App&ly Format" msgstr "Ap&licar formato" msgid "C&onfigure Format" msgstr "" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "" msgid "&Commit to Queue..." msgstr "" msgid "Create &New Queue..." msgstr "" msgid "&Rename Active Queue..." msgstr "" msgid "&Delete Queue..." msgstr "" msgid "&Purge Queue..." msgstr "" msgid "Create Patch Queue" msgstr "" msgid "New patch queue name" msgstr "" msgid "Create" msgstr "Crear" msgid "Rename Patch Queue" msgstr "" #, python-format msgid "Rename patch queue '%s' to" msgstr "" msgid "Rename" msgstr "Cambiar nombre" msgid "Delete Patch Queue" msgstr "" msgid "Delete reference to" msgstr "" msgid "Delete" msgstr "" msgid "Purge Patch Queue" msgstr "" msgid "Remove patch directory of" msgstr "" msgid "Purge" msgstr "" msgid "Rename Patch" msgstr "" #, python-format msgid "Rename patch %s to:" msgstr "" msgid "no guards" msgstr "" msgid "Patch Queue" msgstr "" msgctxt "MQ QPush" msgid "Push" msgstr "" msgid "Apply one patch" msgstr "" msgctxt "MQ QPush" msgid "Push all" msgstr "" msgid "Apply all patches" msgstr "Aplciar todos los parches" msgid "Pop" msgstr "" msgid "Unapply one patch" msgstr "" msgid "Pop all" msgstr "" msgid "Unapply all patches" msgstr "No aplicar todos los parches" msgid "Go &to Patch" msgstr "" msgid "&Apply Only This Patch" msgstr "" msgid "Apply only the selected patch" msgstr "" msgid "&Finish Patch" msgstr "" msgid "Move applied patches into repository history" msgstr "" msgid "&Delete Patches..." msgstr "" msgid "Delete selected patches" msgstr "" msgid "Re&name Patch..." msgstr "" msgid "Set &Guards..." msgstr "" msgid "Configure guards for selected patch" msgstr "" msgid "Patch Queue Actions Toolbar" msgstr "" msgid "Configure guards" msgstr "" #, python-format msgid "Input new guards for %s:" msgstr "" msgid "Confirm patch queue switch" msgstr "" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "" #, python-format msgid "Guards: %d/%d" msgstr "" msgid "MQ options" msgstr "" msgid "Force push or pop (--force)" msgstr "" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "" msgid "Submitting p4 changelist..." msgstr "" msgid "Reverting p4 changelist..." msgstr "" msgid "Patch Branch Toolbar" msgstr "" msgid "Merge all pending dependencies" msgstr "" msgid "Backout current patch branch" msgstr "" msgid "Backport part of a changeset to a dependency" msgstr "" msgid "Start a new patch branch" msgstr "" msgid "Edit patch dependency graph" msgstr "" msgid "will be closed" msgstr "" #, python-format msgid "needs merge of %i heads\n" msgstr "" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "" #, python-format msgid "needs merge with %s\n" msgstr "" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "" msgid "&Goto (update workdir)" msgstr "" msgid "&Merge" msgstr "" msgid "No patch branch selected" msgstr "" msgid "No editor found" msgstr "" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" msgid "Graph" msgstr "Gráfico" msgid "Status" msgstr "Estado" msgid "Title" msgstr "" msgid "Message" msgstr "" msgid "New Patch Branch" msgstr "" msgid "Patch message:" msgstr "" msgid "Patch date:" msgstr "" msgid "Patch user:" msgstr "" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" msgid "Review Board" msgstr "" msgid "Password:" msgstr "" msgid "Error" msgstr "Error" #, python-format msgid "Review draft posted to %s\n" msgstr "" #, python-format msgid "Review published to %s\n" msgstr "" msgid "Success" msgstr "" msgid "Repository ID:" msgstr "" msgid "Post Review" msgstr "" msgid "Review ID:" msgstr "" msgid "Update the fields of this existing request" msgstr "" msgid "Update Review" msgstr "" msgid "Create diff with all outgoing changes" msgstr "" msgid "Create diff with all changes on this branch" msgstr "" msgid "Publish request immediately" msgstr "" msgid "%p%" msgstr "" msgid "Connecting to Review Board..." msgstr "" msgid "Target:" msgstr "Objetivo:" msgid "Do not modify working copy (-k/--keep)" msgstr "" #, python-format msgid "Prune - %s" msgstr "" msgid "&Prune" msgstr "" msgid "No unknown files found" msgstr "" msgid "No ignored files found" msgstr "" msgid "No trash files found" msgstr "" msgid "Delete empty folders" msgstr "" msgid "Preserve files beginning with .hg" msgstr "" #, python-format msgid "%s - purge" msgstr "" msgid "Checking" msgstr "" msgid "Ready to purge." msgstr "" #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "" msgstr[1] "" msgid "Confirm file deletions" msgstr "" msgid "Are you sure you want to delete these files and/or folders?" msgstr "" msgid "Deletion failures" msgstr "" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "" msgstr[1] "" msgid "Deleting trash folder..." msgstr "" #, python-format msgid "Deleted %d files" msgstr "" #, python-format msgid "Deleted %d files and %d folders" msgstr "" msgid "Delete Patches" msgstr "" msgid "Remove patches from queue?" msgstr "" msgid "Keep patch files" msgstr "" #, python-format msgid "Patch fold - %s" msgstr "" msgid "New patch message:" msgstr "" msgid "Patches to fold" msgstr "" msgid "&Undo" msgstr "" msgid "&Redo" msgstr "" msgid "Cu&t" msgstr "" msgid "&Copy" msgstr "" msgid "&Paste" msgstr "" msgid "&Editor Options" msgstr "" msgid "&Wrap" msgstr "" msgctxt "wrap mode" msgid "&None" msgstr "" msgid "&Word" msgstr "" msgid "&Character" msgstr "" msgid "White&space" msgstr "" msgid "&Visible" msgstr "" msgid "&Invisible" msgstr "" msgid "&AfterIndent" msgstr "" msgid "&TAB Inserts" msgstr "" msgid "&Auto" msgstr "" msgid "&TAB" msgstr "" msgid "&Spaces" msgstr "" msgid "EOL &Visibility" msgstr "" msgid "EOL &Mode" msgstr "" msgid "&Windows" msgstr "" msgid "&Unix" msgstr "" msgid "&Mac" msgstr "" msgid "&Auto-Complete" msgstr "" msgid "### regular expression ###" msgstr "" msgid "Regular expression search pattern" msgstr "Patron de busqueda para expresión regular" msgid "Wrap search" msgstr "" msgid "Prev" msgstr "" msgid "Next" msgstr "" msgid "Unable to read file" msgstr "" msgid "Could not open the specified file for reading." msgstr "" msgid "This appears to be a binary file." msgstr "" msgid "An error occurred while reading the file." msgstr "" msgid "Text Translation Failure" msgstr "" msgid "Could not translate the file content from native encoding." msgstr "" msgid "Several characters would be lost." msgstr "" msgid "Unable to write file" msgstr "" msgid "Could not translate the file content to native encoding." msgstr "" msgid "Could not open the specified file for writing." msgstr "" msgid "An error occurred while writing the file." msgstr "" msgid "Try refreshing your repository." msgstr "" #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
                                    Please edit your config" msgstr "" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
                                    Please fix your config" msgstr "" #, python-format msgid "Operation aborted:

                                    %(arg0)s." msgstr "" msgid "Repository is locked" msgstr "" msgid "hint:" msgstr "" msgid "Repository Error" msgstr "" msgid "No visual editor configured" msgstr "Editor visual no configurado" msgid "Please configure a visual editor." msgstr "Por favor configurar un editor visual" msgid "Editor launch failure" msgstr "" msgid "Failed to open path in terminal" msgstr "" #, python-format msgid "\"%s\" is not a valid directory" msgstr "" #, python-format msgid "Invalid configuration: %s" msgstr "" msgid "Unable to start the following command:" msgstr "" msgid "No shell configured" msgstr "" msgid "A terminal shell must be configured" msgstr "" msgid "Please enter a username" msgstr "Introduzca un nombre de usuario" msgid "You must identify yourself to Mercurial" msgstr "" msgid "Unable to translate input to local encoding." msgstr "" msgid "Checkmark files to add" msgstr "" msgid "Checkmark files to forget" msgstr "" msgid "Forget" msgstr "Olvidar" msgid "Checkmark files to revert" msgstr "" msgid "Revert" msgstr "Deshacer" msgid "Checkmark files to remove" msgstr "" msgid "Remove" msgstr "Eliminar" #, python-format msgid "%s - hg %s" msgstr "" msgid "Do not save backup files (*.orig)" msgstr "" msgid "Force removal of modified files (--force)" msgstr "" msgid "Add &Largefiles" msgstr "" msgid "No files selected" msgstr "Ningún archivo seleccionado" msgid "No operation to perform" msgstr "Ninguna operación a realizar" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" msgid "Remove &Unmodified Files" msgstr "" msgid "Remove &All Selected Files" msgstr "" msgid "Rebase changeset and descendants" msgstr "" msgid "To rebase destination" msgstr "" msgid "Swap source and destination" msgstr "" msgid "Keep original changesets (--keep)" msgstr "" msgid "Keep original branch names (--keepbranches)" msgstr "" msgid "Collapse the rebased changesets (--collapse)" msgstr "" msgid "Rebase entire source branch (-b/--base)" msgstr "" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "" msgid "Rebase" msgstr "Remodificar" #, python-format msgid "Rebase - %s" msgstr "" msgid "" "Before rebase, you must
                                    commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the rebase" msgstr "" msgid "Rebase is complete" msgstr "" msgid "Rebase failed" msgstr "" msgid "Rebase aborted" msgstr "" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" msgid "Exiting with an unfinished rebase is not recommended." msgstr "" msgid "Consider aborting the rebase first." msgstr "" #, python-format msgid "Merge rejected patch chunks into %s" msgstr "" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "" msgid "Mark this chunk as unresolved" msgstr "" msgid "Reload File" msgstr "" msgid "Are you sure you want to reload this file?" msgstr "" msgid "All unsaved changes will be lost." msgstr "" msgid "Warning" msgstr "Advertencia" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" msgid "Copy source -> destination" msgstr "" msgid "Copy Error" msgstr "" msgid "Rename Error" msgstr "" msgid "Select Source File" msgstr "" msgid "Select Source Folder" msgstr "Elegir carpeta de origen" msgid "Source does not exist." msgstr "" msgid "The source must be within the repository tree." msgstr "" msgid "The destination must be within the repository tree." msgstr "" msgid "Destination file already exists." msgstr "" msgid "Are you sure you want to overwrite it ?" msgstr "" #, python-format msgid "Copy - %s" msgstr "" #, python-format msgid "Rename - %s" msgstr "" msgid "Show all" msgstr "Mostrar todo" msgid "### revision set query ###" msgstr "" msgid "Clear current query and query text" msgstr "" msgid "Trigger revision set query" msgstr "" msgid "Open advanced query editor" msgstr "" msgid "Delete selected query from history" msgstr "" msgid "filter" msgstr "" msgid "Toggle filtering of non-matched changesets" msgstr "" msgid "Show/Hide hidden changesets" msgstr "" msgid "Toggle graft relations visibility" msgstr "" msgid "Keyword Search" msgstr "" msgid "Revision Set" msgstr "" msgid "(unsaved)" msgstr "" msgid "Display graph the named branch only" msgstr "" msgid "Display only active branches" msgstr "" msgid "Display closed branches" msgstr "" msgid "Include all ancestors" msgstr "" msgctxt "column header" msgid "Graph" msgstr "" msgctxt "column header" msgid "Rev" msgstr "" msgctxt "column header" msgid "Branch" msgstr "" msgctxt "column header" msgid "Description" msgstr "" msgctxt "column header" msgid "Author" msgstr "" msgctxt "column header" msgid "Tags" msgstr "" msgctxt "column header" msgid "Latest tags" msgstr "" msgctxt "column header" msgid "Node" msgstr "" msgctxt "column header" msgid "Git Commit" msgstr "" msgctxt "column header" msgid "Age" msgstr "" msgctxt "column header" msgid "Local Time" msgstr "" msgctxt "column header" msgid "UTC Time" msgstr "" msgctxt "column header" msgid "Changes" msgstr "" msgctxt "column header" msgid "Converted From" msgstr "" msgctxt "column header" msgid "Phase" msgstr "" msgctxt "column header" msgid "Filename" msgstr "" msgid "Searching..." msgstr "" #, python-format msgid "filling (%d)" msgstr "" msgid "Mercurial User" msgstr "" msgid "Repository Registry" msgstr "" msgid "Show &Paths" msgstr "" msgid "Show S&hort Paths" msgstr "" msgid "&Scan Repositories at Startup" msgstr "" msgid "Scan &Remote Repositories" msgstr "" msgid "&Refresh Repository List" msgstr "" msgid "Refresh the Repository Registry list" msgstr "" msgid "&Open" msgstr "" msgid "Open the repository in a new tab" msgstr "" msgid "&Open All" msgstr "" msgid "Open all repositories in new tabs" msgstr "" msgid "New &Group" msgstr "" msgid "Create a new group" msgstr "" msgid "Rename the entry" msgstr "" msgid "Settin&gs" msgstr "" msgid "View the repository's settings" msgstr "" msgid "Re&move from Registry" msgstr "" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" msgid "Clon&e..." msgstr "" msgid "Clone Repository" msgstr "" msgid "E&xplore" msgstr "" msgid "Open the repository in a file browser" msgstr "" msgid "&Terminal" msgstr "" msgid "Open a shell terminal in the repository root" msgstr "" msgid "&Add Repository..." msgstr "" msgid "Add a repository to this group" msgstr "" msgid "A&dd Subrepository..." msgstr "" msgid "Convert an existing repository into a subrepository" msgstr "" msgid "Remo&ve Subrepository..." msgstr "" msgid "Remove this subrepository from the current revision" msgstr "" msgid "Copy the root path of the repository to the clipboard" msgstr "" msgid "Sort by &Name" msgstr "" msgid "Sort the group by short name" msgstr "" msgid "Sort by &Path" msgstr "" msgid "Sort the group by full path" msgstr "" msgid "&Sort by .hgsub" msgstr "" msgid "Order the subrepos as in .hgsub" msgstr "" msgid "Select repository directory to add" msgstr "" msgid "Select an existing repository to add as a subrepo" msgstr "" msgid "Cannot add subrepository" msgstr "" #, python-format msgid "%s is not a valid repository" msgstr "" #, python-format msgid "\"%s\" is not a folder" msgstr "" msgid "A repository cannot be added as a subrepo of itself" msgstr "" #, python-format msgid "" "The selected folder:

                                    %s

                                    is not inside the target repository." "

                                    This may be allowed but is greatly discouraged.
                                    If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" msgid "Cannot open repository" msgstr "" #, python-format msgid "The selected repository:

                                    %s

                                    cannot be open!" msgstr "" msgid "Subrepository already exists" msgstr "" #, python-format msgid "" "The selected repository:

                                    %s

                                    is already a subrepository of:" "

                                    %s

                                    as: \"%s\"" msgstr "" msgid "Failed to add subrepository" msgstr "" #, python-format msgid "Cannot open the .hgsub file in:

                                    %s" msgstr "" msgid "Failed to add repository" msgstr "" #, python-format msgid "The .hgsub file already contains the line:

                                    %s" msgstr "" msgid "Subrepo added to .hgsub file" msgstr "" #, python-format msgid "" "The selected subrepo:

                                    %s

                                    has been added to the .hgsub " "file of the repository:

                                    %s

                                    Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" #, python-format msgid "Cannot update the .hgsub file in:

                                    %s" msgstr "" msgid "Could not open .hgsub file" msgstr "" msgid "Cannot read the .hgsub file.

                                    Subrepository removal failed." msgstr "" msgid "Subrepository not found" msgstr "" msgid "" "The selected subrepository was not found on the .hgsub file.

                                    Perhaps it " "has already been removed?" msgstr "" msgid "&Yes" msgstr "&Sí" msgid "&No" msgstr "&No" msgid "Remove the selected repository?" msgstr "" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" msgid "Subrepository removed from .hgsub" msgstr "" msgid "" "The selected subrepository has been removed from the .hgsub file.

                                    Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" msgid "Could not update .hgsub file" msgstr "" msgid "Cannot update the .hgsub file.

                                    Subrepository removal failed." msgstr "" #, python-format msgid "Unsupported repository type (%s)" msgstr "" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "" msgid "New Group" msgstr "" msgid "Confirm Delete" msgstr "" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "" msgid "Could not get subrepository list" msgstr "" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

                                    %s" msgstr "" msgid "Could not open some subrepositories" msgstr "" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

                                    %s

                                    The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

                                    %s" msgstr "" msgid "Updating repository registry" msgstr "" #, python-format msgid "Loading repository %s" msgstr "" msgid "Repository Registry updated" msgstr "" msgid "Close tab" msgstr "" msgid "Close other tabs" msgstr "" msgid "Undo close tab" msgstr "" msgid "Reopen last closed tab" msgstr "" msgid "Undo close other tabs" msgstr "" msgid "Reopen last closed tab group" msgstr "" msgid "Failed to open repository" msgstr "" msgid "&Sort" msgstr "" #, python-format msgid "Local Repository %s" msgstr "" #, python-format msgid "" "An exception happened while loading the subrepos of:

                                    \"%s\"

                                    " msgstr "" #, python-format msgid "The exception error message was:

                                    %s

                                    " msgstr "" msgid "Click OK to continue or Abort to exit." msgstr "" msgid "Error loading subrepos" msgstr "" msgid "Unable to update repository name" msgstr "" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "" msgid "default" msgstr "" msgid "C&hoose Log Columns..." msgstr "" msgid "&Resize Columns" msgstr "" #, python-format msgid "Goto ancestor of %s and %s" msgstr "" #, python-format msgid "Can't find revision '%s'" msgstr "" msgid "Drag to change order" msgstr "" msgid "Workbench Log Columns" msgstr "" msgctxt "tab tooltip" msgid "Revision details" msgstr "" msgctxt "tab tooltip" msgid "Commit" msgstr "" msgctxt "tab tooltip" msgid "Search" msgstr "" msgctxt "tab tooltip" msgid "Console log" msgstr "" msgctxt "tab tooltip" msgid "Synchronize" msgstr "" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "" #, python-format msgid "%s " msgstr "" #, python-format msgid "Found %d incoming changesets" msgstr "" msgid "Pull" msgstr "" msgid "Pull incoming changesets into your repository" msgstr "" msgid "Reject incoming changesets" msgstr "" #, python-format msgid "Push current branch (%s)" msgstr "" #, python-format msgid "Push up to current revision (#%d)" msgstr "" #, python-format msgid "Push up to revision #%d" msgstr "" msgid "Push all" msgstr "" msgid "no outgoing changesets" msgstr "" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets" msgstr "" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "" msgid "Nothing to push" msgstr "" msgid "No revision found" msgstr "" #, python-format msgid "%s - verify repository" msgstr "" #, python-format msgid "%s - recover repository" msgstr "" msgid "No transaction available" msgstr "" msgid "There is no rollback transaction available" msgstr "" msgid "Undo last commit?" msgstr "¿Deshacer última confirmación?" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "" msgid "Undo last transaction?" msgstr "" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "" msgid "Unable to determine working copy revision\n" msgstr "" msgid "Remove current working revision?" msgstr "" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" msgid "Tab cannot exit" msgstr "" msgid "Pus&h" msgstr "" msgid "Push to &Here" msgstr "" msgid "Push Selected &Branch" msgstr "" msgid "Push &All" msgstr "" msgid "&Update..." msgstr "" msgid "Bro&wse at Revision" msgstr "" msgid "&Merge with Local..." msgstr "" msgid "&Tag..." msgstr "" msgid "Boo&kmark..." msgstr "" msgid "Top&ic..." msgstr "" msgid "Sig&n..." msgstr "" msgid "&Backout..." msgstr "" msgid "Revert &All Files..." msgstr "" msgid "Copy &Hash" msgstr "" msgid "E&xport" msgstr "" msgid "E&xport Patch..." msgstr "" msgid "&Email Patch..." msgstr "" msgid "&Archive..." msgstr "" msgid "&Bundle Rev and Descendants..." msgstr "" msgid "Change &Phase to" msgstr "" msgid "&Graft to Local..." msgstr "" msgid "Modi&fy History" msgstr "" msgid "&Unapply Patch" msgstr "" msgid "Import to &MQ" msgstr "" msgid "MQ &Options" msgstr "" msgid "&Rebase..." msgstr "" msgid "&Prune..." msgstr "" msgid "&Strip..." msgstr "" msgid "Post to Re&view Board..." msgstr "" msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "" msgid "Write diff file" msgstr "" msgid "Unable to write diff file" msgstr "" msgid "Unable to compress history" msgstr "" msgid "Selected changeset pair not related" msgstr "" msgid "Visual Diff..." msgstr "" msgid "Export Diff..." msgstr "" msgid "Export Selected..." msgstr "" msgid "Email Selected..." msgstr "" msgid "Copy Selected as Patch" msgstr "" msgid "Archive DAG Range..." msgstr "" msgid "Export DAG Range..." msgstr "" msgid "Email DAG Range..." msgstr "" msgid "Bundle DAG Range..." msgstr "" msgid "Bisect - Good, Bad..." msgstr "" msgid "Bisect - Bad, Good..." msgstr "" msgid "Compress History..." msgstr "" msgid "Rebase..." msgstr "" msgid "Goto common ancestor" msgstr "" msgid "Graft Selected to local..." msgstr "" msgid "&Prune Selected..." msgstr "" msgid "Post Selected to Review Board..." msgstr "" msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "" msgid "Apply onto original parent" msgstr "" msgid "Apply only this patch" msgstr "" msgid "Fold patches..." msgstr "" msgid "Delete patches..." msgstr "" msgid "Rename patch..." msgstr "" msgid "Pull to here..." msgstr "" msgid "Visual diff..." msgstr "" msgid "Export patch" msgstr "" msgid "Patch Files (*.patch)" msgstr "" msgid "Cannot export revision" msgstr "" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" msgid "There is already an existing folder with that same name." msgstr "" msgid "Replace" msgstr "" msgid "Append" msgstr "Anexar" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" msgid "What do you want to do?\n" msgstr "" msgid "Replace the existing patch files.\n" msgstr "" msgid "Append the changes to the existing patch files.\n" msgstr "" msgid "Abort the export operation.\n" msgstr "" msgid "Patch files already exist" msgstr "" msgid "Patch exported" msgstr "" #, python-format msgid "" "Revision #%d (%s) was exported to:

                                    %s%s%s" msgstr "" msgid "Patches exported" msgstr "" #, python-format msgid "%d patches were exported to:

                                    %s" msgstr "" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

                                    Are you sure you want to use revert?

                                    (use " "update to checkout another revision)" msgstr "" msgid "Filter b&y" msgstr "" msgid "&Ancestors and Descendants" msgstr "" msgid "A&uthor" msgstr "" msgid "&Branch" msgstr "" msgid "&More Options..." msgstr "" msgid "Unable to merge" msgstr "No se ha podido unir" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "" msgid "Unable to backout" msgstr "Incapaz de anular" msgid "Write bundle" msgstr "" msgid "Backwards phase change requested" msgstr "" msgid "Do you really want to make this revision secret?" msgstr "" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" msgid "&Make secret" msgstr "" msgid "&Cancel" msgstr "&Cancelar" msgid "Do you really want to force a backwards phase transition?" msgstr "" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" msgid "&Force" msgstr "" msgid "Cannot import selected revision" msgstr "" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" msgid "Invalid command" msgstr "" msgid "The selected command is empty" msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" msgid "Failed to execute custom TortoiseHg command" msgstr "" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "" msgid "Failed to execute custom command" msgstr "" #, python-format msgid "The command \"%s\" could not be executed." msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" msgid "&Edit Toolbar" msgstr "" msgid "&Refresh" msgstr "&Refrescar" msgid "&Filter Toolbar" msgstr "" #, python-format msgid "TortoiseHg: %s" msgstr "" msgid "S&tatus Bar" msgstr "" #, python-format msgid "Resolve Conflicts - %s" msgstr "" msgid "Local revision information" msgstr "" msgid "Other revision information" msgstr "" msgid "Unresolved conflicts" msgstr "" msgid "Mercurial Re&solve" msgstr "" msgid "Attempt automatic (trivial) merge" msgstr "" msgid "Tool &Resolve" msgstr "" msgid "Merge using selected merge tool" msgstr "" msgid "&Take Local" msgstr "" msgid "Accept the local file version (yours)" msgstr "" msgid "Take &Other" msgstr "" msgid "Accept the other file version (theirs)" msgstr "" msgid "&Mark as Resolved" msgstr "" msgid "Mark this file as resolved" msgstr "" msgid "Diff &Local to Ancestor" msgstr "" msgid "&Diff Other to Ancestor" msgstr "" msgid "Resolved conflicts" msgstr "" msgid "&Edit File" msgstr "" msgid "Edit resolved file" msgstr "" msgid "3-&Way Diff" msgstr "" msgid "Visual three-way diff" msgstr "" msgid "Visual diff between resolved file and first parent" msgstr "" msgid "&Diff to Other" msgstr "" msgid "Visual diff between resolved file and second parent" msgstr "" msgid "Mark as &Unresolved" msgstr "" msgid "Mark this file as unresolved" msgstr "" msgid "Detected merge/diff tools:" msgstr "" msgid "Command output" msgstr "" msgid "Unable to show subrepository files" msgstr "" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" msgid "There are merge conflicts to be resolved" msgstr "" msgid "All conflicts are resolved." msgstr "" msgid "There are no conflicting file merges." msgstr "" msgid "Exit without finishing resolve?" msgstr "" msgid "Unresolved conflicts remain. Are you sure?" msgstr "" msgid "E&xit" msgstr "" msgid "Ext" msgstr "" msgid "Repository" msgstr "Repositorio" msgid "" msgstr "" msgid "File List Toolbar" msgstr "" msgid "Ma&nifest Mode" msgstr "" msgid "Show all version-controlled files in tree view" msgstr "" msgid "&Flat List" msgstr "" msgid "### filter text ###" msgstr "" msgid "Changed by &This Commit" msgstr "" msgid "Show files changed by this commit" msgstr "" msgid "Compare to &1st Parent" msgstr "" msgid "Compare to &2nd Parent" msgstr "" msgid "Toggle parent to be used as the base revision" msgstr "" msgid "List Optio&ns" msgstr "" #, python-format msgid "%s - Revision Details (%s)" msgstr "" #, python-format msgid "Revert - %s" msgstr "" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "" msgid "Revert all files to this revision" msgstr "" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "" msgid "null revision (i.e. remove file(s))" msgstr "" msgid "Changeset:" msgstr "" msgid "Child:" msgstr "Hijo:" msgid "Predecessors:" msgstr "" msgid "Successors:" msgstr "" msgid "Head is closed!" msgstr "" msgid "Changesets where username contains string." msgstr "" msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" msgid "Like \"keyword(string)\" but accepts a regex." msgstr "" msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" msgid "The named bookmark or all bookmarks." msgstr "" msgid "The named tag or all tags." msgstr "" msgid "Changeset is tagged." msgstr "" msgid "Changeset is a named branch head." msgstr "" msgid "Changeset is a merge changeset." msgstr "" msgid "Changeset is closed." msgstr "" msgid "" "Changesets within the interval, see help dates" msgstr "" msgid "Greatest common ancestor of the two changesets." msgstr "" msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" msgid "Changesets which modify files matched by pattern." msgstr "" msgid "Changesets which add files matched by pattern." msgstr "" msgid "Changesets which remove files matched by pattern." msgstr "" msgid "Changesets containing files matched by pattern." msgstr "" msgid "All changesets belonging to the branches of changesets in set." msgstr "" msgid "Members of a set with no children in set." msgstr "" msgid "Changesets which are descendants of changesets in set." msgstr "" msgid "Changesets that are ancestors of a changeset in set." msgstr "" msgid "Child changesets of changesets in set." msgstr "" msgid "The set of all parents for all changesets in set." msgstr "" msgid "First parent for all changesets in set, or the working directory." msgstr "" msgid "Second parent for all changesets in set, or the working directory." msgstr "" msgid "Changesets with no parent changeset in set." msgstr "" msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" msgid "Changeset with lowest revision number in set." msgstr "" msgid "Changeset with highest revision number in set." msgstr "" msgid "First n members of a set." msgstr "" msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "" msgid "All changesets, the same as 0:tip." msgstr "" msgid "Revision Set Query" msgstr "" msgid "all revisions converted from subversion" msgstr "" msgid "changeset which represents converted svn revision" msgstr "" msgid "Common sets" msgstr "" msgid "File pattern sets" msgstr "" msgid "Set Ancestry" msgstr "" msgid "Set Logic" msgstr "" msgid "" "help " "revsets" msgstr "" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" "\n" "Capturada una interrupción a través del teclado, cancelando.\n" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "No se pudo leer archivo \"%s\". Ignorado.\n" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" #, python-format msgid "thg: unknown command '%s'\n" msgstr "" #, python-format msgid "thg %s: %s\n" msgstr "" #, python-format msgid "thg: %s\n" msgstr "" #, python-format msgid "abort: %s!\n" msgstr "cancelar: %s!\n" #, python-format msgid "abort: %s\n" msgstr "" #, python-format msgid "(%s)\n" msgstr "" msgid "option --config may not be abbreviated!" msgstr "" msgid "invalid arguments" msgstr "argumentos inválidos" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" msgid "repository root directory or symbolic path name" msgstr "directorio raiz del repositorio o nombre de ruta simbolica" msgid "enable additional output" msgstr "habilitar salida adicional" msgid "suppress output" msgstr "suprimir salida" msgid "display help and exit" msgstr "mostrar ayuda y salir" msgid "set/override config option (use 'section.name=value')" msgstr "" msgid "enable debugging output" msgstr "" msgid "start debugger" msgstr "iniciar el depurador" msgid "print command execution profile" msgstr "" msgid "do not fork GUI process" msgstr "no bifurcar proceso GUI" msgid "always fork GUI process" msgstr "" msgid "read file list from file" msgstr "leer lista de archivos desde archivo" msgid "read file list from file encoding utf-8" msgstr "" msgid "thg about" msgstr "" msgid "thg add [FILE]..." msgstr "" msgid "revision to annotate" msgstr "" msgid "open to line" msgstr "" msgid "initial search pattern" msgstr "" msgid "thg annotate" msgstr "" #, python-format msgid "invalid line number: %s" msgstr "" msgid "revision to archive" msgstr "" msgid "thg archive" msgstr "" msgid "merge with old dirstate parent after backout" msgstr "" msgid "parent to choose when backing out merge" msgstr "" msgid "revision to backout" msgstr "" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "" msgid "thg bisect" msgstr "" msgid "revision" msgstr "" msgid "thg bookmarks [-r REV] [NAME]" msgstr "" msgid "only one new bookmark name allowed" msgstr "" msgid "the clone will include an empty working copy (only a repository)" msgstr "" msgid "revision, tag or branch to check out" msgstr "" msgid "include the specified changeset" msgstr "" msgid "clone only the specified branch" msgstr "" msgid "use pull protocol to copy metadata" msgstr "use protocolo extraer para copiar metadato" msgid "use uncompressed transfer (fast over LAN)" msgstr "" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "" msgid "record user as committer" msgstr "recordar usuario como creador del cambio" msgid "record datecode as commit date" msgstr "Guardar código de fecha como fecha de envio" msgid "thg commit [OPTIONS] [FILE]..." msgstr "" msgid "thg debugblockmatcher" msgstr "" msgid "thg debugbugreport [TEXT]" msgstr "" msgid "thg debugconsole" msgstr "" msgid "thg debuglighthg" msgstr "" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "" msgid "no command specified" msgstr "" msgid "thg drag_copy SOURCE... DEST" msgstr "" msgid "thg drag_move SOURCE... DEST" msgstr "" msgid "a revision to send" msgstr "" msgid "thg email [REVS]" msgstr "" msgid "use only one form to specify the revision" msgstr "" msgid "select the specified revision" msgstr "" msgid "side-by-side comparison of revisions" msgstr "" msgid "thg filelog [OPTION]... FILE" msgstr "" msgid "requires a single filename" msgstr "" msgid "thg forget [FILE]..." msgstr "" msgid "revisions to graft" msgstr "" msgid "thg graft [-r] REV..." msgstr "" msgid "You must provide revisions to graft" msgstr "" msgid "ignore case during search" msgstr "" msgid "thg grep" msgstr "" msgid "thg guess" msgstr "" msgid "thg help [COMMAND]" msgstr "" msgid "global options:" msgstr "opciones globales:" msgid "use \"thg help\" for the full list of commands" msgstr "" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "" msgid "" "list of commands:\n" "\n" msgstr "" "lista de comandos:\n" "\n" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" "\n" "alias: %s\n" msgid "(no help text available)" msgstr "(ayuda de texto no disponible)" msgid "options:\n" msgstr "opciones:\n" msgid "no commands defined\n" msgstr "no hay comandos definidos\n" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "" msgid "" "basic commands:\n" "\n" msgstr "" "comandos básicos:\n" "\n" #, python-format msgid " (default: %s)" msgstr " (por defecto: %s)" msgid "thg hgignore [FILE]" msgstr "" msgid "import to the patch queue (MQ)" msgstr "" msgid "thg import [OPTION] [SOURCE]..." msgstr "" msgid "thg init [DEST]" msgstr "" msgid "thg lock" msgstr "" msgid "search for a given text or revset" msgstr "" msgid "(DEPRECATED)" msgstr "" msgid "open a new workbench window" msgstr "" msgid "thg log [OPTIONS] [FILE]" msgstr "" msgid "cannot specify both -k/--query and filenames" msgstr "" msgid "revision to display" msgstr "" msgid "thg manifest [-r REV] [FILE]" msgstr "" msgid "revision to merge" msgstr "" msgid "thg merge [[-r] REV]" msgstr "" msgid "Merge revision not specified or not found" msgstr "" msgid "a revision to post" msgstr "" msgid "thg postreview [-r] REV..." msgstr "" msgid "reviewboard extension not enabled" msgstr "" #, python-format msgid "see %(url)s" msgstr "" msgid "no revisions specified" msgstr "" msgid "revisions to prune" msgstr "" msgid "thg prune [-r] REV..." msgstr "" msgid "thg purge" msgstr "" msgid "keep original changesets" msgstr "" msgid "keep original branch names" msgstr "" msgid "rebase from the specified changeset" msgstr "" msgid "rebase onto the specified changeset" msgstr "" msgid "thg rebase -s REV -d REV [--keep]" msgstr "" msgid "Rebase already in progress" msgstr "" msgid "Resuming rebase already in progress" msgstr "" msgid "You must provide source and dest arguments" msgstr "" msgid "thg rejects [FILE]" msgstr "" msgid "You must provide the path to a file" msgstr "" msgid "thg remove [FILE]..." msgstr "" msgid "thg rename [SOURCE] [DEST]" msgstr "" msgid "field to give initial focus" msgstr "" msgid "thg repoconfig" msgstr "" msgid "thg resolve" msgstr "" msgid "the revision to show" msgstr "" msgid "thg revdetails [-r REV]" msgstr "" msgid "thg revert [FILE]..." msgstr "" msgid "revision to update" msgstr "revisión a actualizar" msgid "thg rupdate [[-r] REV]" msgstr "" msgid "name of the hgweb config file (serve more than one repository)" msgstr "" msgid "name of the hgweb config file (DEPRECATED)" msgstr "" msgid "thg serve [--web-conf FILE]" msgstr "" msgid "thg shellconfig" msgstr "" msgid "thg shelve" msgstr "" msgid "sign even if the sigfile is modified" msgstr "" msgid "make the signature local" msgstr "" msgid "the key id to sign with" msgstr "" msgid "do not commit the sigfile after signing" msgstr "" msgid "use as commit message" msgstr "" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "" msgid "Please enable the Gpg extension first." msgstr "" msgid "show files without changes" msgstr "" msgid "show ignored files" msgstr "" msgid "thg status [OPTIONS] [FILE]" msgstr "" msgid "discard uncommitted changes (no backup)" msgstr "" msgid "do not back up stripped revisions" msgstr "" msgid "do not modify working copy during strip" msgstr "" msgid "revision to strip" msgstr "" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "" msgid "open the bookmark sync window" msgstr "" msgid "thg sync [OPTION]... [PEER]" msgstr "" msgid "replace existing tag" msgstr "" msgid "make the tag local" msgstr "" msgid "revision to tag" msgstr "" msgid "remove a tag" msgstr "" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "" msgid "wait until the second ticks over" msgstr "espera hasta que pase un segundo" msgid "notify the shell for paths given" msgstr "" msgid "remove the status cache" msgstr "remover la cache de estado" msgid "show the contents of the status cache (no update)" msgstr "mostrar el contenido de la cache de estado (no actualizar)" msgid "update all repos in current dir" msgstr "actualizar todos los repos en el dir actual" msgid "thg thgstatus [OPTION]" msgstr "" msgid "thg topics [-r REV] [NAME]" msgstr "" msgid "Please enable the Topic extension first." msgstr "" msgid "only one new topic name allowed" msgstr "" msgid "thg update [-C] [[-r] REV]" msgstr "" msgid "thg userconfig" msgstr "" msgid "changeset to view in diff tool" msgstr "conjunto de cambios a ver en la herramienta de diff" msgid "revisions to view in diff tool" msgstr "revisiones a revisar con la herramienta diff" msgid "bundle file to preview" msgstr "" msgid "launch visual diff tool" msgstr "iniciar herramienta visual de diferenciales" msgid "print license" msgstr "imprimir licencia" msgid "thg version [OPTION]" msgstr "" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "Mensajes TortoiseHg (version %s), Mercurial (version %s)\n" msgid "Location:" msgstr "" msgid "Update to:" msgstr "Actualizar a:" msgid "Options:" msgstr "Opciones:" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "" msgid "Perform a push before updating (-p/--push)" msgstr "" msgid "Allow pushing new branches (--new-branch)" msgstr "" msgid "Force push to remote location (-f/--force)" msgstr "" msgid "remove working directory" msgstr "" msgid "unknown revision!" msgstr "¡revisión desconocida!" #, python-format msgid "Remote Update - %s" msgstr "" msgid "&Update" msgstr "" msgid "Log" msgstr "" msgid "Repositories" msgstr "" #, python-format msgid "Running at %s" msgstr "" msgid "Stopped" msgstr "" msgid "TortoiseHg Web Server" msgstr "" msgid "Web Server" msgstr "Servidor Web" msgid "Port:" msgstr "" msgid "Status:" msgstr "" msgid "Start" msgstr "Inicio" msgid "Settings" msgstr "Configuraciones" msgid "" msgstr "" msgid "&True" msgstr "" msgid "&False" msgstr "" msgid "&Unspecified" msgstr "" #, python-format msgid "%dpt" msgstr "" msgid "Bold" msgstr "" msgid "Italic" msgstr "" msgid "Strike" msgstr "" msgid "Underline" msgstr "" msgid "&Set..." msgstr "" msgid "&Clear" msgstr "" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "" msgid "&Browse..." msgstr "" msgid "UI Language" msgstr "" msgid "Specify your preferred user interface language (restart needed)" msgstr "" msgid "Three-way Merge Tool" msgstr "" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" msgid "Visual Diff Tool" msgstr "" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" msgid "Visual Editor" msgstr "Editor visual" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" msgid "CLI Editor" msgstr "Editor CLI" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" msgid "Shell" msgstr "" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
                                    Default, Windows: cmd.exe /" "K title %(reponame)s
                                    Default, OS X: not set
                                    Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" msgid "Immediate Operations" msgstr "" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" msgid "Tab Width" msgstr "Ancho del tabulador" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" msgid "Force Repo Tab" msgstr "" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "" msgid "Monitor Repo Changes" msgstr "" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" msgid "Max Diff Size" msgstr "Tamaño máx. diff" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" "Tamaño de archivo máx. (en kB) para el cual TortoiseHg mostrará cambios.\r\n" "Zero significa sin límite. Por defecto: 1024 kB" msgid "Fork GUI" msgstr "" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" msgid "Full Path Title" msgstr "Nombre completo de la ruta" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" msgid "Auto-resolve merges" msgstr "" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" msgid "New Repo Skeleton" msgstr "" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "" msgid "Single Workbench Window" msgstr "" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" msgid "Default widget" msgstr "" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" msgid "" "Open new tabs next\n" "to the current tab" msgstr "" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" msgid "Author Coloring" msgstr "Coloración de autor" msgid "Color changesets by author name. Default: False" msgstr "" msgid "Full Authorname" msgstr "" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" msgid "Task Tabs" msgstr "" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" msgid "Task Toolbar Order" msgstr "" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
                                    Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
                                    Valid names are: log commit sync grep and " "pbranch.
                                    Default: log commit grep pbranch | sync" msgstr "" msgid "Long Summary" msgstr "Resumen largo" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" msgid "Log Batch Size" msgstr "Número de revisiones" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "" "Número máx. de revisiones a leer y mostrar.\r\n" "\r\n" "Por defecto: 500" msgid "Dead Branches" msgstr "Ramas muertas" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" msgid "Branch Colors" msgstr "Colores de la rama" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" msgid "Hide Tags" msgstr "Ocultar etiquetas" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" msgid "Activate Bookmarks" msgstr "" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

                                    • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
                                    • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
                                    • never: Never show any prompt to " "activate any bookmarks.

                                    Default: prompt" msgstr "" msgid "Show Family Line" msgstr "" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

                                    Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" msgid "Use optimized graph layouter" msgstr "" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

                                    Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" msgctxt "config item" msgid "Commit" msgstr "" msgid "Username" msgstr "Nombre de usuario" msgid "" "Name associated with commits. The common format is:
                                    Full Name <" "email@example.com>" msgstr "" msgid "Ask Username" msgstr "" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" msgid "Summary Line Length" msgstr "Tamaño de línea del resumen" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" msgid "Close After Commit" msgstr "" msgid "Close the commit tool after every successful commit. Default: False" msgstr "" msgid "Push After Commit" msgstr "" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" msgid "Auto Commit List" msgstr "" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" msgid "Auto Exclude List" msgstr "Auto excluir lista" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" msgid "English Messages" msgstr "" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" msgid "New Commit Phase" msgstr "" msgid "The phase of new commits. Default: draft" msgstr "" msgid "Secret MQ Patches" msgstr "" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "" msgid "Check Subrepo Phase" msgstr "" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" msgid "Monitor working
                                    directory changes" msgstr "" msgid "" "Select when the working directory status list will be refreshed:
                                    - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
                                    TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
                                    - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
                                    - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
                                    Default: auto" msgstr "" msgid "Confirm adding unknown files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Confirm deleting files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Sync" msgstr "" msgid "After Pull Operation" msgstr "" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" msgid "Default Push" msgstr "" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

                                    • all: The default. Push all changes in all " "branches.
                                    • branch: Push all changes in the current branch.
                                    • revision: Push the changes in the current branch up to the current revision.

                                    Default: all" msgstr "" msgid "Confirm Push" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" msgid "Target Combo" msgstr "" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

                                    • auto: The default. Show the combo if more than one target " "configured.
                                    • always: Always show the combo.

                                    Default: auto" msgstr "" msgid "SSH Command" msgstr "" msgid "" "Command to use for SSH connections.

                                    Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" msgid "Subrepository Features:" msgstr "" msgid "Allow Hg Subrepos" msgstr "" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" msgid "Allow Git Subrepos" msgstr "" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

                                    See the security note before enabling Git " "subrepos." msgstr "" msgid "Allow SVN Subrepos" msgstr "" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

                                    See the security note before enabling " "Subversion subrepos." msgstr "" msgid "Server" msgstr "" msgid "Repository Details:" msgstr "" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" msgid "Encoding" msgstr "Codificación" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" msgid "'Publishing' repository" msgstr "" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" msgid "Web Server:" msgstr "" msgid "Textual description of the repository's purpose or contents." msgstr "Descripción textual del contenido del repositorio." msgid "Contact" msgstr "Contactar" msgid "Name or email address of the person in charge of the repository." msgstr "" "Nombre o dirección de correo electrónico de la persona a cargo del " "repositorio" msgid "Style" msgstr "Estilo" msgid "Which template map style to use" msgstr "Plantilla de estilo a usar" msgid "Archive Formats" msgstr "Formatos de archivo" msgid "Comma separated list of archive formats allowed for downloading" msgstr "" "Lista de los formatos de archivos permitidos a descargar separado por comas" msgid "Port" msgstr "Puerto" msgid "Port to listen on" msgstr "Puerto a escuchar" msgid "Push Requires SSL" msgstr "Envio Requiere SSL" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" "Para forzar envios locales sobre SSL y así prevenir robo de palabras clave." msgid "Stripes" msgstr "Rayado" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" "Número de líneas usadas para generar el patrón rayado (de tipo zebra) al " "mostrar información multilínea. \r\n" "\r\n" "Por defecto: 1 (0 para desactivar)" msgid "Max Files" msgstr "Archivos máximos" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "" msgid "Max Changes" msgstr "Cambios máximos" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "" msgid "Allow Push" msgstr "Permitir envio" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" "Permiso de envio de cambios al repositorio (push).\r\n" "\r\n" "Opciones:\r\n" "- campo vacio o sin configurar: envio de cambios no esta permitido\r\n" "- \"*\" : envio general esta permitido (incluso usuarios no " "autentificados)\r\n" "- Lista con nombres de usuario (separados por espacio en blanco o \",\"): el " "envio sólo está permitido a usuarios autentificados y presentes en la lista." "\r\n" "\r\n" "La lista de permiso de envio es examinada después de la lista de denegación " "de envio." msgid "Deny Push" msgstr "Denegar envio" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" "Denegación de envio de cambios al repositorio (push).\r\n" "\r\n" "Opciones:\r\n" "- campo vacio o sin configurar: envio de cambios esta permitido (incluso " "usuarios no autentificados)\r\n" "- \"*\" : envio denegado para todos los usuarios remotos\r\n" "- Lista con nombres de usuario (separados por espacio en blanco o \",\"): el " "envio no está permitido a usuarios no autentificados y a los usuarios " "presentes en la lista.\r\n" "\r\n" "La lista de denegación de envio es examinada previamente a la lista de " "permiso de envio." msgid "Proxy" msgstr "Proxy" msgid "Host" msgstr "Host" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "" "Nombre del servidor proxy (número de puerto opcional). Ejemplo: " "\"myproxy:8000\"" msgid "Bypass List" msgstr "Lista de Bypass" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "" "Listado separado por comas de los nombres de host a los que se les permite " "bypassar el servidor proxy.\r\n" "\r\n" "Opcional" msgid "Optional. User name to authenticate with at the proxy server" msgstr "" "Opcional. Nombre de usuario con el que autentificarse en el servidor proxy" msgid "Password" msgstr "Contraseña" msgid "Optional. Password to authenticate with at the proxy server" msgstr "Opcional. Contraseña con la que autentificarse en el servidor proxy" msgid "From" msgstr "Desde" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "" "Dirección de correo a usar en el campo \"De\" y en el recipiente o sobre SMTP" msgid "To" msgstr "Para" msgid "Comma-separated list of recipient email addresses" msgstr "Listado separado por comas de las direcciones de correo" msgid "Cc" msgstr "Cc" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "" "Listado separado por comas de las direcciones de correo (copias carbón)" msgid "Bcc" msgstr "Bcc" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "Listado separado por comas de las direcciones de correo (Cco)." msgid "method" msgstr "método" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" "Método usado para enviar mensajes de correo. Opcional.\r\n" "\r\n" "Por defecto: smtp\r\n" "\r\n" "Introduzca el nombre del programa que actua como \"sendmail\": (tiene una " "opción \"-f\" para especificar quién envia el correo, una lista de " "receptores y el mensaje en \"stdin\"). Normalmente sólo es neccesario poner " "\"sendmail\" o bien la ruta donde este se encuentra para poder enviar correo " "(normalmente en \"/usr/sbin/sendmail\")." msgid "SMTP Host" msgstr "Servidor SMTP" msgid "Host name of mail server" msgstr "El nombre de host del servidor de correo" msgid "SMTP Port" msgstr "Puerto SMTP" msgid "Port to connect to on mail server. Default: 25" msgstr "Puerto del servidor de correo. Por defecto: 25" msgid "SMTP TLS" msgstr "SMTP TLS" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "" msgid "SMTP Username" msgstr "Nombre de usuario SMTP" msgid "Username to authenticate to mail server with" msgstr "Nombre de usuario con el que autentificarse en el servidor de email" msgid "SMTP Password" msgstr "Contraseña SMTP" msgid "Password to authenticate to mail server with" msgstr "Contraseña con la que autentificarse en el servidor de email" msgid "Local Hostname" msgstr "Nombre de la máquina local" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "Nombre usado para identificarse en el servidor de correo." msgid "Diff and Annotate" msgstr "" msgid "Patch EOL" msgstr "Parche EOL" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" msgid "Git Format" msgstr "Formato Git" msgid "Use git extended diff header format. Default: False" msgstr "Usar formato diff de cabecera extendido de git. Por defecto: Falso" msgid "MQ Git Format" msgstr "" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" msgid "No Dates" msgstr "Sin fechas" msgid "Do not include modification dates in diff headers. Default: False" msgstr "" "No incluir fechas de modificación en cabeceras diff. Por defecto: Falso" msgid "Show Function" msgstr "Mostrar función" msgid "Show which function each change is in. Default: False" msgstr "Muestra en que función se ha producido el cambio. Por defecto: No" msgid "Ignore White Space" msgstr "Ignorar espacios en blanco" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "" msgid "Ignore WS Amount" msgstr "Ignorar cantidad de espacios en blanco" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "" msgid "Ignore Blank Lines" msgstr "Ignorar líneas en blanco" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "" msgid "Annotate:" msgstr "" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "" msgid "Fonts" msgstr "" msgid "Message Font" msgstr "" msgid "Font used to display commit messages. Default: monospace 10" msgstr "" msgid "Diff Font" msgstr "" msgid "Font used to display text differences. Default: monospace 10" msgstr "" msgid "ChangeLog Font" msgstr "" msgid "Font used to display changelog data. Default: monospace 10" msgstr "" msgid "Output Font" msgstr "" msgid "Font used to display output messages. Default: sans 8" msgstr "" msgid "Extensions" msgstr "" msgid "Tools" msgstr "" msgid "Hooks" msgstr "" msgid "Issue Tracking" msgstr "" msgid "Issue Regex" msgstr "" msgid "Defines the regex to match when picking up issue numbers." msgstr "" msgid "Issue Link" msgstr "" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" msgid "Inline Tags" msgstr "" msgid "Show tags at start of commit message." msgstr "" msgid "Mandatory Issue Reference" msgstr "" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" msgid "Issue Tracker Plugin" msgstr "" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" msgid "Configure Issue Tracker" msgstr "" msgid "Configure the selected COM Bug Tracker plugin." msgstr "" msgid "Issue Tracker Trigger" msgstr "" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

                                    • never: Do not update the Issue Tracker " "state automatically.
                                    • commit: Update the Issue Tracker state after " "a successful commit.

                                    Default: never" msgstr "" msgid "Changeset Link" msgstr "" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
                                    The template string " "uses a normal mercurial template syntax, such as:

                                    • {node|short} : replaced by " "the 12 digit revision id.
                                    • {rev} : replaced by the revision number." "
                                    • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
                                    For example, in order to " "link to bitbucket commit pages you can set this to:
                                    https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
                                    You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
                                    https://github.com/torvalds/" "linux/commit/{gitnode}
                                    https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
                                    " msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "" msgid "User name to authenticate with review board" msgstr "" msgid "Password to authenticate with review board" msgstr "" msgid "Server Repository ID" msgstr "" msgid "The default repository id for this repo on the review board server" msgstr "" msgid "Target Groups" msgstr "" msgid "A comma separated list of target groups" msgstr "" msgid "Target People" msgstr "" msgid "A comma separated list of target people" msgstr "" msgid "Kiln Bfiles" msgstr "" msgid "Patterns" msgstr "Patrones" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" msgid "Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" msgid "System Cache" msgstr "" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "" msgid "Simplelock" msgstr "" msgid "Lock Clone" msgstr "" msgid "" "Location of local clone of organizational lock repository.

                                    This repository " "must contain a \"locked\" text file" msgstr "" msgid "Largefiles" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" msgid "Minimum Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" msgid "User Cache" msgstr "" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" msgid "Projrc" msgstr "" msgid "Require confirmation" msgstr "" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

                                    • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
                                    • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
                                    • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
                                    " msgstr "" msgid "Servers" msgstr "" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" msgid "Include" msgstr "" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" msgid "Exclude" msgstr "" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" msgid "Update on incoming" msgstr "" msgid "" "Let the user update the projrc on incoming:
                                    • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
                                    • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
                                    • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                                      Default: never" msgstr "" msgid "GnuPG" msgstr "" msgid "Specify the path to GPG. Default: gpg" msgstr "" msgid "Key ID" msgstr "" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "" msgid "TortoiseHg Settings" msgstr "" msgid "Iniparse package not found" msgstr "No se encuentra el paquete iniparse" msgid "Can't change settings without iniparse package - view is readonly." msgstr "" #, python-format msgid "%s's global settings" msgstr "" msgid "No repository found" msgstr "No se ha encontrado ningún repositorio" msgid "no repo at " msgstr "ningún repositorio en " #, python-format msgid "%s project settings (.hg/projrc)" msgstr "" #, python-format msgid "%s repository settings" msgstr "configuraciones de repositorio: %s" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "" msgid "Apply changes before exit?" msgstr "" msgid "&No (discard changes)" msgstr "&No (descartar los cambios)" msgid "Reload" msgstr "Recargar" msgid "Settings File:" msgstr "" msgid "Confirm Save" msgstr "" msgid "Save changes before editing?" msgstr "" msgid "&Save" msgstr "" msgid "Confirm Reload" msgstr "" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" msgid "Unable to create a Mercurial.ini file" msgstr "" msgid "Insufficient access rights, reverting to read-only mode." msgstr "" msgid "Context Menu" msgstr "Menú contextual" msgid "Top menu items:" msgstr "" msgid "Sub menu items:" msgstr "Elemento del submenú:" msgid "Menu Behavior" msgstr "" msgid "Hide context menu outside repositories" msgstr "" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" msgid "Icons" msgstr "" msgid "Overlays" msgstr "Superposición de iconos" msgid "Enabled overlays" msgstr "" msgid "Local disks only" msgstr "Sólo discos locales" msgid "Enabled Overlay Handlers" msgstr "" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "" msgid "Added" msgstr "" msgid "Locked*" msgstr "" msgid "Ignored*" msgstr "" msgid "Unversioned" msgstr "" msgid "Readonly*" msgstr "" msgid "Deleted*" msgstr "" msgid "*: not used by TortoiseHg" msgstr "" msgid "Taskbar" msgstr "Barra de tareas" msgid "Show Icon" msgstr "Mostrar icono" msgid "Highlight Icon" msgstr "Resaltar Icono" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" msgid "Explorer Extension Settings - TortoiseHg" msgstr "" msgid "Clear" msgstr "" msgid "Clear the current shelf file" msgstr "" msgid "Delete the current shelf file" msgstr "" msgid "Left Toolbar" msgstr "" msgid "Delete selected chunks" msgstr "" msgid "Move all files right" msgstr "" msgid "Move selected file right" msgstr "" msgid "Edit file" msgstr "" msgid "Move selected chunks right" msgstr "" msgid "Refresh Toolbar" msgstr "" msgid "Refresh" msgstr "Recargar" msgid "New Shelf" msgstr "" msgid "Right Toolbar" msgstr "" msgid "Move selected chunks left" msgstr "" msgid "Move selected file left" msgstr "" msgid "Move all files left" msgstr "" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "" msgid "Delete selected chunks from working copy?" msgstr "" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "" msgid "Are you sure?" msgstr "" msgid "TortoiseHg New Shelf Name" msgstr "" msgid "Specify name of new shelf" msgstr "" msgid "Bad filename" msgstr "" #, python-format msgid "A shelf name cannot contain %s" msgstr "" msgid "File already exists" msgstr "" msgid "A shelf file of that name already exists" msgstr "" msgid "New shelf created" msgstr "" #, python-format msgid "Delete shelf file %s?" msgstr "" msgid "Shelf deleted" msgstr "" msgid "Revert all working copy changes?" msgstr "" #, python-format msgid "Clear contents of shelf file %s?" msgstr "" msgid "Shelf cleared" msgstr "" #, python-format msgid "Shelf: %s" msgstr "" #, python-format msgid "Patch: %s" msgstr "" msgid "Key:" msgstr "" msgid "Local sign" msgstr "" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "" msgid "No commit" msgstr "" msgid "Use custom commit message:" msgstr "" msgid "&Sign" msgstr "" #, python-format msgid "Sign - %s" msgstr "" msgid "Signature has been added" msgstr "" msgid "Repository command still running" msgstr "" msgid "Filter:" msgstr "" msgid "Check all files" msgstr "" msgid "Uncheck all files" msgstr "" msgid "Status File List Toolbar" msgstr "" msgid "Remove filter, show root" msgstr "Elimine filtro, mostrar raíz" #, python-format msgid "%s - status (selection filtered)" msgstr "" #, python-format msgid "%s - status" msgstr "" msgid "Check" msgstr "" msgid "Uncheck" msgstr "" msgid "status" msgstr "estado" msgid "Failed to refresh" msgstr "" msgid "No appropriate files" msgstr "Archivos no apropiados" msgid "No files found for this operation" msgstr "Ningún archivo encontrado para esta operación" msgid "Stat" msgstr "Estado" msgid "M" msgstr "" msgid "Filename" msgstr "Nombre de archivo" msgid "Size (KB)" msgstr "" #, python-format msgid "Checked count: %d" msgstr "" msgid ", resolved merge" msgstr "" msgid ", unresolved merge" msgstr "" #, python-format msgid "%s is modified" msgstr "" msgid "modified" msgstr "modificado" #, python-format msgid "%s is added" msgstr "" msgid "added" msgstr "añadido" #, python-format msgid "%s is removed" msgstr "" msgid "removed" msgstr "eliminado" #, python-format msgid "%s is not tracked (unknown)" msgstr "" msgid "unknown" msgstr "desconocido" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "" msgid "missing" msgstr "perdido" #, python-format msgid "%s is ignored" msgstr "" msgid "ignored" msgstr "ignorado" #, python-format msgid "%s is not modified (clean)" msgstr "" msgid "clean" msgstr "limpiar" #, python-format msgid "%s is a dirty subrepo" msgstr "" msgid "subrepo" msgstr "" msgid "Check for incoming changes from selected URL" msgstr "" msgid "Pull incoming changes from selected URL" msgstr "" msgid "Detect outgoing changes to selected URL" msgstr "" msgid "Push outgoing changes to selected URL" msgstr "" msgid "Sync Bookmarks" msgstr "" msgid "Email outgoing changesets for remote repository" msgstr "" msgid "Manage pending perforce changelists" msgstr "" msgid "Unbundle" msgstr "" msgid "Selected Options:" msgstr "" msgid "Path Edit Toolbar" msgstr "" msgid "Security" msgstr "" msgid "Manage HTTPS connection security and user authentication" msgstr "" msgid "Save" msgstr "" msgid "Save current URL under an alias" msgstr "" msgid "Paths in Repository Settings:" msgstr "" msgid "Related Paths:" msgstr "" msgid "branch: " msgstr "rama: " msgid "bookmark: " msgstr "" #, python-format msgid "rev: %d (%s)" msgstr "" msgid "Post Pull: " msgstr "" msgid "&Edit..." msgstr "" msgid "&Remove..." msgstr "" msgid "Repository not local" msgstr "" msgid "A terminal shell cannot be opened for remote" msgstr "" msgid "Confirm path delete" msgstr "" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "" msgid "Select repository" msgstr "" msgid "No host specified" msgstr "" msgid "Please set a valid URL to continue." msgstr "" msgid "No remote repository URL or path set" msgstr "" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

                                      Please type and save a remote repository path on the " "Sync widget." msgstr "" msgid "Redundant authentication info" msgstr "" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" msgid "sync command already running" msgstr "" #, python-format msgid "Getting incoming changesets from %s..." msgstr "" #, python-format msgid "Found incoming changesets from %s" msgstr "" #, python-format msgid "No incoming changesets from %s" msgstr "" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "" #, python-format msgid "Pulling from %s..." msgstr "" #, python-format msgid "Pull from %s completed" msgstr "" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "" msgid "Merge caused file conflicts" msgstr "" msgid "File conflicts need to be resolved" msgstr "" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "" #, python-format msgid "%d outgoing changesets to %s" msgstr "" #, python-format msgid "No outgoing changesets to %s" msgstr "" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "" msgid "Perforce pending..." msgstr "" #, python-format msgid "%s (submitted)" msgstr "%s (enviado)" #, python-format msgid "%s (pending)" msgstr "%s (pendiente)" msgid "Unable to parse p4pending output" msgstr "" #, python-format msgid "%d pending changelists found" msgstr "" msgid "No pending Perforce changelists" msgstr "" msgid "Aborted p4pending" msgstr "" msgid "Unable to determine pending changesets" msgstr "" msgid "Confirm Push to remote Repository" msgstr "" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" #, python-format msgid "Push to %s aborted" msgstr "" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" #, python-format msgid "Pushing to %s..." msgstr "" #, python-format msgid "Push to %s completed" msgstr "" #, python-format msgid "Push to %s aborted, ret %d" msgstr "" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" msgid "Determining outgoing changesets to email..." msgstr "" msgid "No outgoing changesets" msgstr "" #, python-format msgid "Outgoing aborted, ret %d" msgstr "" msgid "Select bundle file" msgstr "" msgid "Bundle files (*.hg)" msgstr "" msgid "Unable to remove URL" msgstr "" msgid "Post Pull Behavior" msgstr "" msgid "Select post-pull operation for this repository" msgstr "" msgid "None - simply pull changesets" msgstr "" msgid "Update - pull, then try to update" msgstr "" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "" msgid "Rebase - rebase local commits above pulled changes" msgstr "" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "" msgid "Launch settings tool..." msgstr "" msgid "Unable to save post pull operation" msgstr "" msgid "Save Path" msgstr "" msgid "Alias" msgstr "Alias" msgid "URL" msgstr "URL" msgid "Remove authentication data from URL" msgstr "" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" msgid "Update subrepo paths" msgstr "" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" msgid "Unable to save an URL" msgstr "" msgid "Confirm URL replace" msgstr "" #, python-format msgid "%s already exists, replace URL?" msgstr "" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

                                      %s

                                      Replace it with the " "following URL?:

                                      %s" msgstr "" msgid "Security: " msgstr "" #, python-format msgid "Host: %s" msgstr "" msgid "Secure HTTPS Connection" msgstr "" msgid "Verify with Certificate Authority certificates (best)" msgstr "" msgid "Verify with stored host fingerprint (good)" msgstr "" msgid "No host validation, but still encrypted (bad)" msgstr "" msgid "### host certificate fingerprint ###" msgstr "" msgid "Query" msgstr "" msgid "TLS 1.0" msgstr "" msgid "TLS 1.1" msgstr "" msgid "TLS 1.2" msgstr "" msgid "Minimum Protocol" msgstr "" msgid "User Authentication" msgstr "" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Key" msgstr "" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Chain" msgstr "" msgid "Certificate Query Error" msgstr "" msgid "Select User Certificate Key File" msgstr "" msgid "PEM files (*.pem *.key)" msgstr "" msgid "Select User Certificate Chain File" msgstr "" msgid "PEM files (*.pem *.crt *.cer)" msgstr "" msgid "Unable to save authentication" msgstr "" #, python-format msgid "%s - sync options" msgstr "" msgid "Allow push of a new branch (--new-branch)" msgstr "" msgid "Force push or pull (override safety checks, --force)" msgstr "" msgid "Temporarily disable configured HTTP proxy" msgstr "" msgid "Emit debugging output (--debug)" msgstr "" msgid "Work on patch queue (--mq)" msgstr "" #, python-format msgid "Tag - %s" msgstr "Etiqueta - %s" msgid "Tag:" msgstr "Etiqueta:" msgid "Tagged:" msgstr "" msgid "Local tag" msgstr "" msgid "Replace existing tag (-f/--force)" msgstr "" msgid "Use English commit message" msgstr "" msgid "local" msgstr "local" msgid "Move" msgstr "Mover" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "" #, python-format msgid "Added tag %s for changeset %s" msgstr "Tag %s para conjunto de cambios %s añadido" #, python-format msgid "Tag '%s' has been moved" msgstr "" #, python-format msgid "Tag '%s' has been added" msgstr "" #, python-format msgid "Removed tag %s" msgstr "Eliminada la etiqueta %s" #, python-format msgid "Tag '%s' has been removed" msgstr "" msgid "Patch files (*.diff *.patch)" msgstr "" #, python-format msgid "Import - %s" msgstr "Importar - %s" msgid "Browse Directory..." msgstr "Navegar carpeta..." msgid "Import from Clipboard" msgstr "" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "" msgid "Preview:" msgstr "Vista previa:" msgid "Shelf" msgstr "" msgid "Checking working directory status..." msgstr "" msgid "&Import" msgstr "" msgid "Working directory is not clean! View changes..." msgstr "" msgid "Select patches" msgstr "" msgid "Select Directory containing patches" msgstr "" #, python-format msgid "%s patches" msgstr "%s parches" #, python-format msgid "%s will be imported to " msgstr "" msgid "Nothing to import" msgstr "Nada que importar" msgid "Strip:" msgstr "" msgid "Discard local changes, no backup (-f/--force)" msgstr "" msgid "No backup (-n/--nobackup)" msgstr "No no respaldar (-n/--nobackup)" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "" msgstr[1] "" msgid "Unknown revision!" msgstr "¡Revisión desconocida!" msgid "Detected uncommitted local changes." msgstr "" msgid "Do you want to keep them or discard them?" msgstr "" msgid "&Keep (--keep)" msgstr "" msgid "&Discard (--force)" msgstr "" msgid "Confirm Strip" msgstr "" #, python-format msgid "Strip - %s" msgstr "" msgid "&Strip" msgstr "" msgid "Topic:" msgstr "" msgid "&Rename" msgstr "" #, python-format msgid "Topic - %s" msgstr "" #, python-format msgid "A topic named \"%s\" already exists" msgstr "" #, python-format msgid "Topic '%s' has been added" msgstr "" #, python-format msgid "Topic '%s' does not exist" msgstr "" #, python-format msgid "Topic '%s' has been removed" msgstr "" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "" msgid "Parent 1:" msgstr "" msgid "Parent 2:" msgstr "" msgid "Pull subrepos from:" msgstr "" msgid "List updated files (--verbose)" msgstr "" msgid "Discard local changes, no backup (-C/--clean)" msgstr "Descartar cambios locales, no repaldar (-C/--clean)" msgid "Always merge (when possible)" msgstr "" msgid "(same as parent)" msgstr "" msgid "Activate bookmark?" msgstr "" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

                                      Do " "you want to activate it?
                                      You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

                                      Select " "the bookmark that you want to activate and click OK.

                                      Click " "Cancel if you don't want to activate any of them.

                                      You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                      " msgstr "" msgid "Deactivate current bookmark?" msgstr "" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" msgid "Discard - discard local changes, no backup" msgstr "Descartar - descarte cambios locales, no respaldar" msgid "&Shelve" msgstr "" msgid "Shelve - move local changes to a patch" msgstr "" msgid "Merge - allow to merge with local changes" msgstr "Unir - permite unir a los cambios locales" msgid "Confirm Update" msgstr "Confirmar actualización" #, python-format msgid "Update - %s" msgstr "Actualizar - %s" msgid "[non-existant]" msgstr "" msgid "Tool launch failure" msgstr "Falló la ejecución de la herramienta" #, python-format msgid "%s : %s" msgstr "%s : %s" msgid "No diff tool found" msgstr "" msgid "No visual diff tools were detected" msgstr "" msgid "[working copy]" msgstr "[copia de trabajo]" msgid "[original]" msgstr "[original]" msgid "Unable to find changeset" msgstr "" msgid "You likely need to refresh this application" msgstr "" msgid "No file changes" msgstr "No hay cambios" msgid "There are no file changes to view" msgstr "No hay cambios para ver" msgid "working changes" msgstr "cambios en repositorio de trabajo" #, python-format msgid "changeset %d:%s" msgstr "" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "" msgid "Visual Diffs - " msgstr "Diff visual - " msgid " filtered" msgstr " filtrado" msgid "Temporary files are removed when this dialog is closed" msgstr "Los archivos temporales se borrarán cuando se cierre esta ventana" msgid "Select Tool:" msgstr "" msgid "Dir diff to p1" msgstr "" msgid "Dir diff to p2" msgstr "" msgid "3-way dir diff" msgstr "" msgid "Directory diff" msgstr "Carpeta diff" msgid "Confirm Discard" msgstr "¿Seguro que quiere omitir?" msgid "Discard outstanding changes to working directory?" msgstr "" msgid "Config files (*.conf *.config *.ini)" msgstr "" msgid "Open hgweb config" msgstr "" msgid "Save hgweb config" msgstr "" msgid "Path:" msgstr "" msgid "Local Path:" msgstr "" msgid "Select Repository" msgstr "Seleccionar repositorio" msgid "Add Path to Serve" msgstr "" msgid "Edit Path to Serve" msgstr "" msgid "Local Path" msgstr "" msgid "Webconf" msgstr "" msgid "Config File:" msgstr "" msgid "Open" msgstr "" msgid "New &Workbench" msgstr "" msgid "&New Repository..." msgstr "" msgid "Clon&e Repository..." msgstr "" msgid "&Open Repository..." msgstr "" msgid "&File" msgstr "" msgid "&View" msgstr "" msgid "&Repository" msgstr "" msgid "&Help" msgstr "" msgid "&Dock Toolbar" msgstr "" msgid "&Task Toolbar" msgstr "" msgid "&Custom Toolbar" msgstr "" msgid "S&ync Toolbar" msgstr "" msgid "&Close Repository" msgstr "" msgid "Sh&ow Repository Registry" msgstr "" msgid "Show &Patch Queue" msgstr "" msgid "Show Conso&le" msgstr "" msgid "Place Console in Doc&k Area" msgstr "" msgid "R&epository Registry Options" msgstr "" msgid "Save Open Repositories on E&xit" msgstr "" msgid "Sa&ve Current Sync Paths on Exit" msgstr "" msgid "Show Tas&k Tab" msgstr "" msgid "&Commit" msgstr "" msgid "&Patch Branch" msgstr "" msgid "Revision &Details" msgstr "" msgid "&Search" msgstr "" msgid "S&ynchronize" msgstr "" msgid "Refresh current repository" msgstr "" msgid "Refresh &Task Tab" msgstr "" msgid "Refresh only the current task tab" msgstr "" msgid "Load &All Revisions" msgstr "" msgid "Load all revisions into graph" msgstr "" msgid "Go to current revision" msgstr "" msgid "&Goto Revision..." msgstr "" msgid "Go to a specific revision" msgstr "" msgid "Filter graph with revision sets or branches" msgstr "" msgid "&Workbench Toolbars" msgstr "" msgid "&Lock File..." msgstr "" msgid "Lock or unlock files" msgstr "" msgid "Update working directory or switch revisions" msgstr "" msgid "&Shelve..." msgstr "" msgid "&Import Patches..." msgstr "" msgid "U&nbundle..." msgstr "" msgid "&Merge..." msgstr "" msgid "Merge with the other head of the current branch" msgstr "" msgid "&Resolve..." msgstr "" msgid "R&ollback/Undo..." msgstr "" msgid "&Purge..." msgstr "" msgid "&Bisect..." msgstr "" msgid "&Verify" msgstr "" msgid "Re&cover" msgstr "" msgid "&Web Server" msgstr "" msgid "E&xplorer Help" msgstr "" msgid "&Readme" msgstr "" msgid "About &Qt" msgstr "" msgid "&About TortoiseHg" msgstr "" msgid "&Incoming" msgstr "" msgid "&Pull" msgstr "" msgid "&Outgoing" msgstr "" msgid "P&ush" msgstr "" msgid "&Sync Bookmarks..." msgstr "" #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" msgid "Check for incoming changes" msgstr "" msgid "Pull incoming changes" msgstr "" msgid "Detect outgoing changes" msgstr "" msgid "Push outgoing changes" msgstr "" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" #, python-format msgid "Execute custom tool '%s'" msgstr "" msgid "Custom Toolbar &Settings" msgstr "" msgid "TortoiseHg Workbench" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "" msgid "Goto revision" msgstr "" msgid "Enter revision identifier" msgstr "" msgid "Select repository directory to open" msgstr "" msgid "README not configured" msgstr "" msgid "" "A README file is not configured for the current repository.

                                      To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" msgid "Issue Tracker Plugin Error" msgstr "" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "" msgid "This error will not be shown again until you restart the workbench" msgstr "" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "" msgid "Error executing \"commit finished\" trigger" msgstr "" msgid "Cannot open Plugin Options dialog" msgstr "" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "" msgid "[--insecure] [SOURCE]" msgstr "" #, python-format msgid "unsupported URL: %s" msgstr "" #, python-format msgid "%s certificate error: no certificate received" msgstr "" msgid "move after the specified patch" msgstr "" msgid "[--after PATCH] PATCH..." msgstr "" msgid "unknown patch to move specified" msgstr "" msgid "invalid patch position specified" msgstr "" msgid "cannot move applied patches" msgstr "" #, python-format msgid "patch %s not in series" msgstr "" msgid "cannot move into applied patches" msgstr "" msgid "abort: " msgstr "cancelar: " msgid "hint: " msgstr "" #, python-format msgid "HTTP Error: %d (%s)" msgstr "" #, python-format msgid "URLError: %s" msgstr "" msgid "SSL: Server certificate verify failed" msgstr "" #, python-format msgid "SSL: unknown error %s:%s" msgstr "" #, python-format msgid "SSL error: %s" msgstr "" msgid "hgsubversion packaged with thg" msgstr "" msgid "hggit packaged with thg" msgstr "" msgid "inotify is not supported on this platform" msgstr "" msgid "eol is incompatible with win32text" msgstr "" msgid "win32text is incompatible with eol" msgstr "" msgid "hgsubversion is incompatible with perfarce" msgstr "" msgid "perfarce is incompatible with hgsubversion" msgstr "" msgid "Workbench custom toolbar" msgstr "" msgid "Revision details context menu" msgstr "" msgid "Pair selection context menu" msgstr "" msgid "Multiple selection context menu" msgstr "" msgid "Commit context menu" msgstr "" msgid "File context menu (on manifest and revision details)" msgstr "" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" msgid "in the future" msgstr "" msgid "now" msgstr "ahora" #, python-format msgid "command parse error: %s" msgstr "" #, python-format msgid "no matches found: %s" msgstr "" msgid "Commit..." msgstr "Realizar..." msgid "Commit changes in repository" msgstr "Guardar cambios en el repositorio" msgid "Create Repository Here" msgstr "Crear Repositorio Aquí" msgid "Create a new repository" msgstr "Crear un nuevo repositorio" msgid "Clone..." msgstr "Clonar..." msgid "Create clone here from source" msgstr "Crear clon acá desde la fuente" msgid "File Status" msgstr "Estado del archivo" msgid "Repository status & changes" msgstr "Estado del repositorio y cambios" msgid "Add Files..." msgstr "Añadir archivos" msgid "Add files to version control" msgstr "Añadir archivos a la versión de control" msgid "Revert Files..." msgstr "Revertir archivos..." msgid "Revert file changes" msgstr "Revertir los cambios de los archivos" msgid "Forget Files..." msgstr "Olvidar archivos..." msgid "Remove files from version control" msgstr "Eliminar archivos de la versión de control" msgid "Remove Files..." msgstr "Eliminar archivos..." msgid "Rename File" msgstr "Renombrar archivo" msgid "Rename file or directory" msgstr "Renombrar archivo o directorio" msgid "View change history in repository" msgstr "Ver el historial de cambios del repositorio" msgid "File History" msgstr "Historia del archivo" msgid "View change history of selected files" msgstr "Ver historial de cambios de los archivos seleccionados" msgid "Shelve Changes" msgstr "" msgid "Move changes between working dir and patch" msgstr "" msgid "Synchronize" msgstr "Sincronizar" msgid "Synchronize with remote repository" msgstr "Sincronizar con repositorio remoto" msgid "Start web server for this repository" msgstr "Inicie servidor web para este repositorio" msgid "Update..." msgstr "Actualizar..." msgid "Update working directory" msgstr "Actualización en la carpeta de trabajo" msgid "Update Icons" msgstr "Actualizar iconos" msgid "Update icons for this repository" msgstr "Actualizar inconos para este repositorio" msgid "Global Settings" msgstr "Opciones globales" msgid "Configure user wide settings" msgstr "Configurar opciones de usuario" msgid "Repository Settings" msgstr "Configuración repositorio" msgid "Configure repository settings" msgstr "Configure las opciones del repositorio" msgid "Explorer Extension Settings" msgstr "" msgid "Configure Explorer extension" msgstr "" msgid "About TortoiseHg" msgstr "Acerca de TortoiseHg" msgid "Show About Dialog" msgstr "Mostrar acerca del diálogo" msgid "Diff to parent" msgstr "" msgid "View changes using GUI diff tool" msgstr "Ver cambios con herramienta gráfica diff" msgid "Edit Ignore Filter" msgstr "Editar \"Filtro Ignorar\"" msgid "Edit repository ignore filter" msgstr "Editar \"Filtro Ignorar\" de repositorio" msgid "Guess Renames" msgstr "Adivinar renombramientos" msgid "Detect renames and copies" msgstr "Detectar renombrados y copias" msgid "Search History" msgstr "Historial de búsqueda" msgid "Search file revisions for patterns" msgstr "Busque archivos de revisones por patrones" msgid "DnD Synchronize" msgstr "Sincronizar DnD" msgid "Synchronize with dragged repository" msgstr "Sincronizar con repositorio" #, python-format msgid "unrecognized response: %s" msgstr "" msgid "password: " msgstr "clave: " #, python-format msgid "repository %s not found" msgstr "repositorio %s no encontrado" msgid "win32ill: cannot create window for messages" msgstr "win32ill: No se puede crear la ventana para mensajes" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "win32ill: Plataforma no soportada: %s\n" msgid "win32ill: interrupted while stopping message loop\n" msgstr "" #~ msgid "Backout" #~ msgstr "Retirar" #~ msgid "Revert %s to contents at revision %d?" #~ msgstr "Revertir %s a contenidos de la revision %d?" #~ msgid "TortoiseHg Clone" #~ msgstr "Clon TortoiseHg" #~ msgid "Clone" #~ msgstr "Clonar" #~ msgid "Several icons are courtesy of the TortoiseSVN project" #~ msgstr "Varios iconos son cortesía del proyecto TortoiseSVN" #~ msgid "Confirm revert file to old revision" #~ msgstr "Confirmar reversión del archivo a revisión antigua" #~ msgid "Branch Operations" #~ msgstr "Operaciones de rama" #~ msgid "Please enter a valid source path" #~ msgstr "Por favor ingrese una ruta de fuente valida" #~ msgid "_Undo" #~ msgstr "_Deshacer" #~ msgid "undo recent commit" #~ msgstr "deshacer consignación reciente" #~ msgid "commit" #~ msgstr "consignar" #~ msgid "_Commit" #~ msgstr "-Consignar" #~ msgid "_Remove" #~ msgstr "_Quitar" #~ msgid "close branch: " #~ msgstr "cerrar rama " #~ msgid "new branch: " #~ msgstr "nueva rama: " #~ msgid "_Add" #~ msgstr "_Agregar" #~ msgid "Save commit message at exit?" #~ msgstr "¿Guardar mensaje de consignación al salir?" #~ msgid "Nothing Commited" #~ msgstr "Nada consignado" #~ msgid "backup %r as %r\n" #~ msgstr "Respaldo %r como %r\n" #~ msgid "Unable to apply patch" #~ msgstr "Incapaz de aplicar parche" #~ msgid "restoring %r to %r\n" #~ msgstr "restaurando %r a %r\n" #~ msgid "applying patch\n" #~ msgstr "aplicando parche\n" #~ msgid "Errors during rollback!" #~ msgstr "¡Errores durante la reversión!" #~ msgid "" #~ "Unable to undo!\n" #~ "\n" #~ "Tip revision differs from last commit." #~ msgstr "¡Incapaz de deshacer!" #~ msgid "Confirm Add/Remove" #~ msgstr "Confirmar Agregar/Quitar" #~ msgid "Confirm Commit" #~ msgstr "Confirmar Consignación" #~ msgid "Commit: Invalid username" #~ msgstr "Consignación: Nombre de usuario invalido" #~ msgid "" #~ "The following lines are over the %i-character limit: %s.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "Las siguientes lineas estan sobre el %i-limite del caracter:%s" #~ msgid "" #~ "The summary line is not followed by a blank line.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "La linea del sumario no es continuada por una linea blanca" #~ msgid "" #~ "Your username has not been configured.\n" #~ "\n" #~ "Please configure your username and try again" #~ msgstr "Su nombre de usuario no ha sido configurado todavia" #~ msgid "Paste _Filenames" #~ msgstr "Pegar_Nombres de archivo" #~ msgid "The summary line is not followed by a blank line" #~ msgstr "El resumen de linea no es seguido por una linea blanca" #~ msgid "App_ly Format" #~ msgstr "Ap_licar Formato" #~ msgid "The summary line length of %i is greater than %i" #~ msgstr "El largo del resumen de linea de %i es mas grande que %i" #~ msgid "Info required" #~ msgstr "Información requerida" #~ msgid "Stop operation on current tab" #~ msgstr "Detener operacion sobre ficha actual" #~ msgid "Message format needs to be configured" #~ msgstr "El formato del mensaje necesita ser configurado" #~ msgid "Invalid path" #~ msgstr "Ruta invalida" #~ msgid "New Search" #~ msgstr "Nueva Busqueda" #~ msgid "Open new search tab" #~ msgstr "Abrir nueva busqueda de ficha" #~ msgid "Start this search" #~ msgstr "Comenzar esta busqueda" #~ msgid "Show all matching revisions" #~ msgstr "Mostrar todas las guias de revisiones" #~ msgid "Show line numbers" #~ msgstr "Mostrar numero de linea" #~ msgid "Close current named branch" #~ msgstr "Cerrar rama nombrada actual" #~ msgid "Unable to create " #~ msgstr "No se puede crear " #~ msgid "Message format configuration error" #~ msgstr "Error de configuración en el formato del mensaje" #~ msgid "" #~ "The summary line length of %i is greater than %i.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "El largo del resumen de linea de %i es mas grande que %i." #~ msgid "No committable files selected" #~ msgstr "No consignar archivos seleccionados" #~ msgid "Re_vert" #~ msgstr "Re_vertir" #~ msgid "" #~ "Comma separated list of exclusion patterns. Exclusion patterns are " #~ "applied after inclusion patterns." #~ msgstr "" #~ "Lista separada por comas de los patrones de exclusión. Los patrones de " #~ "exclusión son aplicados despues de la inclusión de los patrones." #~ msgid "Matches" #~ msgstr "Concordancias" #~ msgid "Source path is empty" #~ msgstr "La ruta de origen está vacia" #~ msgid "You must provide a search expression" #~ msgstr "Debes proveer una expresión de busqueda" #~ msgid "Search \"%s\"" #~ msgstr "Buscar \"%s\"" #~ msgid "No regular expression given" #~ msgstr "Expresión regular no entregada" #~ msgid "Search %d" #~ msgstr "Buscar %d" #~ msgid "Save File" #~ msgstr "Guardar Archivo" #~ msgid " Aborted" #~ msgstr " Abortado" #~ msgid " Messages and Errors" #~ msgstr " Mensajes y Errores" #~ msgid "Differences from Source to Dest" #~ msgstr "Diferencias desde Fuente a Destino" #~ msgid "Find Copies" #~ msgstr "Buscar Copias" #~ msgid "" #~ "== %s and %s have identical contents ==\n" #~ "\n" #~ msgstr "" #~ "==%s y %s tienen contenidos identicos ==\n" #~ "\n" #~ msgid "finding source of " #~ msgstr "buscando codigo de " #~ msgid "Configure email settings" #~ msgstr "Configurar ajustes de correo" #~ msgid "Email outgoing changes" #~ msgstr "Cambios de correo saliente" #~ msgid "You must configure SMTP" #~ msgstr "Debes configurar el SMTP" #~ msgid "You must specify a sender address" #~ msgstr "Debes especificar una dirección de remitente" #~ msgid "You must specify a recipient" #~ msgstr "Debes especificar un destinatario" #~ msgid "Remove Selected" #~ msgstr "Remover seleccionados" #~ msgid "Filters" #~ msgstr "Filtros" #~ msgid "Unknown Files" #~ msgstr "Archivos desconocidos" #~ msgid "Glob:" #~ msgstr "Glob:" #~ msgid "Add special files (.hgignore, ...)" #~ msgstr "Agregar archivos especiales(.hgignore,...)" #~ msgid "Make repo compatible with Mercurial 1.0" #~ msgstr "Hacer repositorio compatible con Mercurial 1.0" #~ msgid "Destination path is empty" #~ msgstr "Ruta de destino está vacia" #~ msgid "Please enter the directory path" #~ msgstr "Por favor ingrese la ruta del directorio" #~ msgid "Unable to create new repository" #~ msgstr "Incapaz de crear un nuevo repositorio" #~ msgid "user quit" #~ msgstr "Salir de usuario" #~ msgid "this modifies a binary file (all or nothing)\n" #~ msgstr "Esto modifica un archivo binario (todo o nada)\n" #~ msgid "this is a binary file\n" #~ msgstr "este es un archivo binario\n" #~ msgid " and " #~ msgstr " y " #~ msgid "Changeset Description" #~ msgstr "Descripcion del conjunto de cambios" #~ msgid "[All Files]" #~ msgstr "[Todos los archivos]" #~ msgid "Add/Remove the following files?" #~ msgstr "¿Agregar/Quitar los siguientes archivos?" #~ msgid " %s is larger than the specified max diff size" #~ msgstr " %s es mayor que el maximo tamaño de diferencial especificado" #~ msgid "Toggle _Wordwrap" #~ msgstr "Intercambiar ajuste de línea" #~ msgid "" #~ "Comma separated list of inclusion patterns. By default, the entire " #~ "repository is searched." #~ msgstr "" #~ "Lista separada por comas de los patrones de inclusión. Por defecto, se " #~ "revisa todo el repositorio." #~ msgid "Unable to annotate " #~ msgstr "No se pudo anotar " #~ msgid "File is unrevisioned" #~ msgstr "El archivo no está bajo revisión" #~ msgid "Unrevisioned Files" #~ msgstr "Archivos sin revisión" #~ msgid "making snapshot of %d files from rev %s\n" #~ msgstr "Realizando imagen estática de %d archivos desde la rev %s\n" #~ msgid "edit failed" #~ msgstr "Falló la edición" #~ msgid "Accept Match" #~ msgstr "Aceptar coincidencia" #~ msgid "Candidate Matches" #~ msgstr "Coincidencias posibles" #~ msgid "" #~ "\n" #~ "[command interrupted]" #~ msgstr "" #~ "\n" #~ "[comando interrumpido]" #~ msgid "Error when creating repository" #~ msgstr "Error creando repositorio" #~ msgid "unknown patch content: %r" #~ msgstr "Contenido del parche es desconocido: %r" #~ msgid "restoring backup files\n" #~ msgstr "restaurando archivos de copia\n" #~ msgid "hgtk %s: %s\n" #~ msgstr "hgtk %s: %s\n" #~ msgid "response expected" #~ msgstr "respuesta esperada" #~ msgid "rename takes one or two path arguments" #~ msgstr "el renombrado necesita 1 o 2 argumentos de ruta" #~ msgid "There is no Mercurial repository here (.hg not found)" #~ msgstr "No hay un repositorio Mercurial aquí (directorio .hg no encontrado)" #~ msgid "use \"hgtk help\" for the full list of commands" #~ msgstr "use \"hgtk help\" para ver la lista de comandos" #~ msgid "use \"hgtk -v help %s\" to show global options" #~ msgstr "use \"hgtk -v help %s\" para ver las opciones globales" #~ msgid "" #~ "use \"hgtk help\" for the full list of commands or \"hgtk -v\" for details" #~ msgstr "" #~ "use \"hgtk help\" para ver la lista de comandos o \"hgtk -v\" para ver " #~ "detalles" #~ msgid "(No help text available)" #~ msgstr "(No hay texto de ayuda disponible)" #~ msgid "Hgtk - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" #~ msgstr "" #~ "Hgtk - TortoiseHg's entorno gráfico para el sistema Mercurial (Hg)\n" #~ msgid "No repository found here" #~ msgstr "No se encontró repositorio aquí" #~ msgid "changeset " #~ msgstr "grupo de cambios " #~ msgid "unhandled transition: %s -> %s" #~ msgstr "transicion no manejada: %s -> %s" #~ msgid "limit number of changes displayed" #~ msgstr "limita el número de cambios a mostrar" #~ msgid "revisions to compare" #~ msgstr "revisiones para comparar" #~ msgid "udpate all repos in current dir" #~ msgstr "actualizar todos los repos en el dir actual" #~ msgid "show the command options" #~ msgstr "mostrar opciones del comando" #~ msgid "Reload revision history" #~ msgstr "Recargar historial de revisiones" #~ msgid "Custom Filter" #~ msgstr "Filtro Personalizado" #~ msgid "Envelope" #~ msgstr "Sobre" #~ msgid "Email Mercurial Patches" #~ msgstr "Parches por correo electrónico" #~ msgid "Minimum Simularity Percentage" #~ msgstr "Porcentaje minimo de simulación" #~ msgid "hgtk: unknown command '%s'\n" #~ msgstr "hgtk: orden desconocida «%s»\n" #~ msgid "" #~ "hgtk: command '%s' is ambiguous:\n" #~ " %s\n" #~ msgstr "" #~ "hgtk: orden «%s» es ambigua:\n" #~ " %s\n" #~ msgid "Select Folder" #~ msgstr "Seleccionar carpeta" #~ msgid "All files" #~ msgstr "Todos los archivos" #~ msgid " [Ynsfdaq?] " #~ msgstr " [Ynsfdaq?] " #~ msgid "hg shelve [OPTION]... [FILE]..." #~ msgstr "hg shelve [OPCIÓN]... [ARCHIVO]..." #~ msgid "hgtk about" #~ msgstr "hgtk about" #~ msgid "hgtk add [FILE]..." #~ msgstr "hgtk add [ARCHIVO]..." #~ msgid "hgtk clone SOURCE [DEST]" #~ msgstr "hgtk clone ORIGEN [DESTINO]" #~ msgid "hgtk datamine" #~ msgstr "hgtk datamine" #~ msgid "hgtk commit [OPTIONS] [FILE]..." #~ msgstr "hgtk commit [OPCIONES] [ARCHIVO]..." #~ msgid "hgtk recovery" #~ msgstr "hgtk recovery" #~ msgid "hgtk merge" #~ msgstr "hgtk merge" #~ msgid "hgtk log [OPTIONS] [FILE]" #~ msgstr "hgtk log [OPCIONES] [ARCHIVO]" #~ msgid "hgtk init [DEST]" #~ msgstr "hgtk init [DESTINO]" #~ msgid "hgtk repoconfig" #~ msgstr "hgtk repoconfig" #~ msgid "hgtk guess" #~ msgstr "hgtk guess" #~ msgid "hgtk status [FILE]..." #~ msgstr "hgtk status [ARCHIVO]..." #~ msgid "hgtk userconfig" #~ msgstr "hgtk userconfig" #~ msgid "hgtk revert [FILE]..." #~ msgstr "hgtk revert [ARCHIVO]..." #~ msgid "hgtk remove [FILE]..." #~ msgstr "hgtk remove [ARCHIVO]..." #~ msgid "hgtk rename SOURCE [DEST]" #~ msgstr "hgtk rename ORIGEN [DESTINO]" #~ msgid "hgtk synch" #~ msgstr "hgtk synch" #~ msgid "hgtk shelve" #~ msgstr "hgtk shelve" #~ msgid "hgtk serve [OPTION]..." #~ msgstr "hgtk serve [OPCIÓN]..." #~ msgid "hgtk thgstatus [OPTION]" #~ msgstr "hgtk thgstatus [OPCIÓN]" #~ msgid "hgtk version [OPTION]" #~ msgstr "hgtk version [OPCIÓN]" #~ msgid "hgtk help [COMMAND]" #~ msgstr "hgtk help [COMANDO]" #~ msgid "Re_fresh" #~ msgstr "Actuali_zar" #~ msgid "_Filter" #~ msgstr "_Filtro" #~ msgid "Apply" #~ msgstr "Aplicar" #~ msgid "Save patch to" #~ msgstr "Guardar parche en" #~ msgid "" #~ "Revert all files to revision %d?\n" #~ "This will overwrite your local changes" #~ msgstr "" #~ "¿Desea revertir todos los archivos a la revisión %d?\n" #~ "Esto sobrescribirá tus cambios actuales" #~ msgid "Local Date" #~ msgstr "Fecha local" #~ msgid "Universal Date" #~ msgstr "Fecha universal" #~ msgid "Must supply a target revision" #~ msgstr "Debes aportar una revisión como objetivo" #~ msgid "ID" #~ msgstr "ID" #~ msgid "Summary" #~ msgstr "Resumen" #~ msgid "Current revision (local)" #~ msgstr "Revisión atual (local)" #~ msgid "Undo" #~ msgstr "Deshacer" #~ msgid "Recover" #~ msgstr "Recuperar" #~ msgid "Recover from interrupted operation" #~ msgstr "Recuperar desde una operación interrumpida" #~ msgid "Verify" #~ msgstr "Verificar" #~ msgid "Cannot close now" #~ msgstr "No se puede cerrar ahora" #~ msgid "Configure" #~ msgstr "Configurar" #~ msgid "Browse" #~ msgstr "Examinar" #~ msgid "Launch browser to view repository" #~ msgstr "Lanzar el navegador para ver el repositorio" #~ msgid "Start server" #~ msgstr "Iniciar servidor" #~ msgid "Stop server" #~ msgstr "Parar servidor" #~ msgid "rename error" #~ msgstr "error al renombrar" #~ msgid "[command interrupted]" #~ msgstr "[comando interrumpido]" #~ msgid "Cannot run now" #~ msgstr "No se puede ejecutar ahora" #~ msgid "Abort: %s\n" #~ msgstr "Abortar: %s\n" #~ msgid "HTTP Port:" #~ msgstr "Puerto HTTP:" #~ msgid "cannot start server: " #~ msgstr "no se pudo iniciar el servidor: " #~ msgid "Invalid port 2048..65535" #~ msgstr "Puerto inválido 2048..65535" #~ msgid "Confirm Really Exit?" #~ msgstr "¿Estás segurp de querer salir?" #~ msgid "run server in background" #~ msgstr "lanzar el servidor en segundo plano" #~ msgid "name of error log file to write to" #~ msgstr "nombre del archivo de registro de errores" #~ msgid "name of access log file to write to" #~ msgstr "nombre del archivo de registro de acceso" #~ msgid "listening at http://%s%s/%s (%s:%d)\n" #~ msgstr "escuchando en http://%s%s/%s (%s:%d)\n" #~ msgid "port to use (default: 8000)" #~ msgstr "puerto a usar (por defecto: 8000)" #~ msgid "address to use" #~ msgstr "dirección a usar" #~ msgid "SSL certificate file" #~ msgstr "archivo del certificado SSL" #~ msgid "hg serve [OPTION]..." #~ msgstr "hg serve [OPCIÓN]..." #~ msgid "name of file to write process ID to" #~ msgstr "nombre de archivo en el que escribir el ID de proceso" #~ msgid "for remote clients" #~ msgstr "para clientes remotos" #~ msgid "web templates to use" #~ msgstr "plantillas web a usar" #~ msgid "use IPv6 in addition to IPv4" #~ msgstr "usar IPv6 en conjunto con IPv4" #~ msgid "_delete" #~ msgstr "_borrar" #~ msgid "Save selected changes" #~ msgstr "Guardar cambios seleccionados" #~ msgid "Save As" #~ msgstr "Guardar como" #~ msgid "refresh" #~ msgstr "actualizar" #~ msgid "path" #~ msgstr "ruta" #~ msgid "A: added" #~ msgstr "A: añadido" #~ msgid "R: removed" #~ msgstr "R: eliminado" #~ msgid "M: modified" #~ msgstr "M: modificado" #~ msgid "C: clean" #~ msgstr "C: limpio" #~ msgid "I: ignored" #~ msgstr "I: ignorado" #~ msgid "!: deleted" #~ msgstr "!: borrado" #~ msgid "?: unknown" #~ msgstr "?: desconocido" #~ msgid "Rename file to:" #~ msgstr "Renombrar archivo a:" #~ msgid "Remove is not enabled when multiple revisions are specified." #~ msgstr "" #~ "La opción de eliminar no está disponible cuando hay múltiples revisiones " #~ "especificadas" #~ msgid "Nothing Moved" #~ msgstr "Nada movido" #~ msgid "Nothing Copied" #~ msgstr "Nada copiado" #~ msgid "Copy is not enabled when multiple revisions are specified." #~ msgstr "" #~ "La opción de copiar no está disponible cuando hay múltiples revisiones " #~ "especificadas" #~ msgid "Copy file to" #~ msgstr "Copiar archivo en" #~ msgid "Move is not enabled when multiple revisions are specified." #~ msgstr "" #~ "La opción de mover no está disponible cuando hay múltiples revisiones " #~ "especificadas" #~ msgid "%d selected, %d total" #~ msgstr "%d seleccionado, %d en total" #~ msgid "Nothing Reverted" #~ msgstr "Nada revertido" #~ msgid "No revertable files selected" #~ msgstr "No hay ningún archivo seleccionado que se pueda revertir" #~ msgid "File is larger than the specified max size.\n" #~ msgstr "El archivo es más grande que el tamaño máximo especificado.\n" #~ msgid "Revert files to revision %s?" #~ msgstr "¿Revertir archivos a la revisión %s?" #~ msgid "Cannot move outside repo!" #~ msgstr "¡No se puede mover fuera del repositorio!" #~ msgid "Nothing Added" #~ msgstr "Nada añadido" #~ msgid "No addable files selected" #~ msgstr "No hay ningún archivo que se pueda añadir" #~ msgid "No removable files selected" #~ msgstr "No hay ningún archivo que se pueda eliminar" #~ msgid "Outgoing" #~ msgstr "Saliente" #~ msgid "Delete Errors" #~ msgstr "Borrar errores" #~ msgid "Incoming" #~ msgstr "Entrante" #~ msgid "Nothing" #~ msgstr "Nada" #~ msgid "Repo:" #~ msgstr "Repositorio:" #~ msgid "Advanced Options" #~ msgstr "Opciones avanzadas" #~ msgid "Incoming/Outgoing" #~ msgstr "Entrante/Saliente" #~ msgid "Tag is local" #~ msgstr "La etiqueta es local" #~ msgid "No repository selected" #~ msgstr "Ningún repositorio seleccionado" #~ msgid "Replace existing tag" #~ msgstr "Reemplazar la etiqueta existente" #~ msgid "Tag name is empty" #~ msgstr "El nombre de la etiqueta está vacío" #~ msgid "Please enter tag name" #~ msgstr "Introduce un nombre de etiqueta" #~ msgid "Tag \"%s\" has been added" #~ msgstr "La etiqueta \"%s\" ha sido añadida" #~ msgid "Error in tagging" #~ msgstr "Error al etiquetar" #~ msgid "Tagging completed" #~ msgstr "Etiquetado completo" #~ msgid "Please select tag name to remove" #~ msgstr "Elige el nombre de la etiqueta a eliminar" #~ msgid "a tag named \"%s\" already exists" #~ msgstr "la etiqueta nombrada \"%s\" ya existe" #~ msgid "Tag '%s' already exist" #~ msgstr "La etiqueta '%s' ya existe" #~ msgid "Tag \"%s\" has been removed" #~ msgstr "La etiqueta \"%s\" ha sido eliminada" #~ msgid "" #~ "Repository name to use in the web interface. Default is the working " #~ "directory." #~ msgstr "" #~ "Nombre del repositorio a usar en la interfaz web. Por defecto es el " #~ "directorio de trabajo" #~ msgid "Maximum number of changes to list on the changelog." #~ msgstr "Máximo número de cambios a listar en el registro de cambios." #~ msgid "Maximum number of files to list per changeset." #~ msgstr "El máximo número de archivos a listar por cambio." #~ msgid "Connect to mail server using TLS. Default: False" #~ msgstr "Conectarse al servidor de email usando TLS. Por defecto: No" #~ msgid "Ignore changes in the amount of white space. Default: False" #~ msgstr "" #~ "Ignorar cambios en la cantidad de espacios en blanco. Por defecto: No" #~ msgid "Ignore white space when comparing lines. Default: False" #~ msgstr "" #~ "Ignorar espacios en blanco en la comparación de archivos. Por defecto: No" #~ msgid "User global settings" #~ msgstr "Preferencias de usuario globales" #~ msgid "Ignore changes whose lines are all blank. Default: False" #~ msgstr "Ignorar cambios cuyas líneas están todas en blanco. Por defecto: No" #~ msgid "Overwrite existing '%s' path?" #~ msgstr "¿Sobrescribir la ruta '%s' existente?" #~ msgid "Folder" #~ msgstr "Carpeta" #~ msgid "Edit remote repository path" #~ msgstr "Editar la ruta del repositorio remoto" #~ msgid "Diff" #~ msgstr "Diff" #~ msgid "Repository Path" #~ msgstr "Ruta del repositorio" #~ msgid "_Edit" #~ msgstr "_Editar" #~ msgid "Remote repository paths" #~ msgstr "Rutas de los repositorios remotos" #~ msgid "Set as _default" #~ msgstr "Configurar como pre_determinado" #~ msgid "_Test" #~ msgstr "_Probar" #~ msgid "No Repository Found" #~ msgstr "Ningún repositorio encontrado" #~ msgid "History" #~ msgstr "Historial" #~ msgid "Suggested" #~ msgstr "Sugerido" #~ msgid "use \"hgtk -v help%s\" to show aliases and global options" #~ msgstr "use \"hgtk -v help%s\" para mostrar los alias y opciones globales" #~ msgid "%d hunks, %d lines changed\n" #~ msgstr "%d pedazos, %d lineas cambiadas\n" #~ msgid "shelve this change to %r?" #~ msgstr "arrinconar este cambio en %r?" #~ msgid "Patch Series (Bundle) Description" #~ msgstr "Descripción Serie de parche (Paquete)" #~ msgid "" #~ "total: %d hunks (%d changed lines); selected: %d hunks (%d changed lines)" #~ msgstr "" #~ "total: %d pedazos (%d lineas cambiadas); seleccionados: %d pedazos (%d " #~ "lineas cambiadas)" #~ msgid "shelve data already exists" #~ msgstr "Datos arrinconados ya existen" #~ msgid "shelve changes to %s?" #~ msgstr "arrinconar cambios en %s?" #~ msgid "unshelve completed\n" #~ msgstr "desacer arrinconar completado\n" #~ msgid "removing shelved patches\n" #~ msgstr "quitando revisiones arrinconadas\n" #~ msgid "applying shelved patch\n" #~ msgstr "aplicando revisión arrinconada\n" #~ msgid "saving patch to shelve\n" #~ msgstr "salvando revisión a arrinconar\n" #~ msgid "shelve can only be run interactively" #~ msgstr "arrinconar revisión sólo se puede ejecutar en modo interactivo" #~ msgid "no changes to shelve\n" #~ msgstr "sin cambios a arrinconar\n" #~ msgid "nothing to unshelve\n" #~ msgstr "nada a desacer\n" #~ msgid "append to existing shelve data" #~ msgstr "Anexar a datos existentes" #~ msgid "overwrite existing shelve data" #~ msgstr "sobreescribe datos existentes" #~ msgid "inspect shelved changes only" #~ msgstr "inspeccionar sólo cambios arrinconados" #~ msgid "hg unshelve [OPTION]... [FILE]..." #~ msgstr "hg unshelve [OPCIÓN]... [ARCHIVO]..." #~ msgid "proceed even if patches do not unshelve cleanly" #~ msgstr "proceder aunque las revisiones no de dejen desacer limpiamente" #~ msgid "No changes to shelve" #~ msgstr "Sin cambios a arrinconar" #~ msgid "Shelve file exists!" #~ msgstr "Archivo existe!" #~ msgid "restore shelved changes" #~ msgstr "restaurar cambios arrinconados" #~ msgid "Please select diff chunks to shelve" #~ msgstr "Por favor seleccione los pedazos a arrinconar" #~ msgid "hgtk: %s\n" #~ msgstr "hgtk: %s\n" #~ msgid "removing shelve file\n" #~ msgstr "quitando fichero\n" #~ msgid "mark new/missing files as added/removed before shelving" #~ msgstr "" #~ "macar archivos nuevos/ausentes como añadido/eliminado antes de seguir" #~ msgid "[-o] CMD" #~ msgstr "[-o] COMANDO" #~ msgid "hgtk hgignore [FILE]" #~ msgstr "hgtk hgignore [ARCHIVO]" #~ msgid "Write bundle to" #~ msgstr "Guardar conjunto de cambios en" #~ msgid "Invalid date specification" #~ msgstr "Especificación de fecha inválida" #~ msgid "Confirm undo merge" #~ msgstr "Confirmar deshacer fusión" #~ msgid "Merge target (other)" #~ msgstr "Objectivo de fusión (otro)" #~ msgid "" #~ "Server process is still running\n" #~ "Exiting will stop the server." #~ msgstr "Proceso de servidor activo" #~ msgid "Configure web settings" #~ msgstr "Configurar opciones web" #~ msgid "Rollback (undo) last transaction to repository (pull, commit, etc)" #~ msgstr "Desacer la última transacción al repositorio (pull, commit, etc)" #~ msgid "Rollback repository '%s' ?" #~ msgstr "¿ Desacer la última transacción al repositorio '%s' ?" #~ msgid "Validate repository consistency" #~ msgstr "Validar consistencia de repositorio" #~ msgid "command is running" #~ msgstr "comando activo" #~ msgid "Clean repository '%s' ?" #~ msgstr "¿ Limpiar repositorio '%s' ?" #~ msgid "Confirm clean repository" #~ msgstr "Confirme limpiar repositorio" #~ msgid "Confirm rollback repository" #~ msgstr "Confirme desacer la última transacción al repositorio" #~ msgid "ms" #~ msgstr "ms" #~ msgid "filtered status" #~ msgstr "estado filtrado" #~ msgid "Nothing Removed" #~ msgstr "Nada eliminado" #~ msgid "Move files to directory..." #~ msgstr "Mover archivos a directorio..." #~ msgid "Confirm Delete Unrevisioned" #~ msgstr "Confirmar Borrado Sin Revisión" #~ msgid "Hunk selection is disabled for this file.\n" #~ msgstr "Selección de pedazos deshabilitada para este archivo.\n" #~ msgid "" #~ "No movable files selected\n" #~ "\n" #~ "Note: only clean files can be moved." #~ msgstr "" #~ "Ningún archivo seleccionado\n" #~ "\n" #~ "Nota: sólo archivos limpios pueden ser movidos" #~ msgid "Configure peer repository paths" #~ msgstr "Configura rutas de repositios" #~ msgid "Email local outgoing changes to one or more recipients" #~ msgstr "Envia correo cambios locales a uno o más receptores" #~ msgid "Push local changes to selected repository" #~ msgstr "Enviar cambios locales al repositorio seleccionado" #~ msgid "Pull changes from selected repository" #~ msgstr "Extraer cambios de repositorio seleccionado" #~ msgid " Pull " #~ msgstr " Extraer " #~ msgid "Name of hg executable on remote machine." #~ msgstr "Nombre del ejecutable 'hg' en la máquina remota." #~ msgid "A specific revision up to which you would like to push or pull." #~ msgstr "Una revisión específica hasta la que desea enviar o extraer." #~ msgid "Force pull or push" #~ msgstr "Forzar extracción o envio" #~ msgid "Run even when remote repository is unrelated." #~ msgstr "Ejecutar aunque el repositorio remoto no esté relacionado" #~ msgid "Bundle:" #~ msgstr "Paquete:" #~ msgid "Select a peer repository to compare with" #~ msgstr "Seleccione repositio a comparar" #~ msgid "Update to branch tip" #~ msgstr "Actualizar a rama Tip" #~ msgid "Bundle (*.hg)" #~ msgstr "Paquete (*.hg)" #~ msgid "Bundle (*)" #~ msgstr "Paquete (*)" #~ msgid "Select Bundle" #~ msgstr "Seleccionar paquete" #~ msgid "Tag input is empty" #~ msgstr "Tag vacio" #~ msgid "Custom commit message is empty" #~ msgstr "Mensage de commit vacio" #~ msgid "Enable overlays" #~ msgstr "Activar superposición de iconos" #~ msgid "TortoiseHg Configure Repository - " #~ msgstr "TortoiseHg: Configurar Repositorio - " #~ msgid "TortoiseHg Configure User-Global Settings" #~ msgstr "TortoiseHg: Configurar opciones globales de usuario" #~ msgid "set aside selected changes" #~ msgstr "Ignorar cambios seleccionados" #~ msgid "Visual Diffs" #~ msgstr "Diff visual" #~ msgid "Stop the hg operation" #~ msgstr "Parar comando" #~ msgid "Clean checkout, undo all changes" #~ msgstr "Copia limpia, desacer todos los cambios" #~ msgid "Clean checkout of original revision?" #~ msgstr "¿ Limpiar copia de la revisión original ?" #~ msgid "name to show in web pages (default: working dir)" #~ msgstr "" #~ "nombre a mostrar en páginas web (por defecto: directorio de trabajo)" #~ msgid "template style to use" #~ msgstr "plantilla de estilo a usar" #~ msgid "Defaulting to " #~ msgstr "Por defecto: " #~ msgid "used internally by daemon mode" #~ msgstr "usado internamente en modo demonio" #~ msgid "Fetch" #~ msgstr "Traer" #~ msgid "Delete the following unrevisioned files?" #~ msgstr "¿ Eliminar los siguientes archivos sin revisión ?" #~ msgid "Revert not allowed when viewing revision range." #~ msgstr "" #~ "Operación revertir no permitida mientras se muestra rango de revisión." #~ msgid "unknown sort key '%s'" #~ msgstr "clave de ordenación '%s' desconocida" #~ msgid "Push" #~ msgstr "Enviar" #~ msgid "Display changes that can be pulled from selected repository" #~ msgstr "" #~ "Mostrar cambios que pueden ser extraidos del repositorio seleccionado" #~ msgid "" #~ "Graphical merge program for resolving merge conflicts. If left " #~ "unspecified, Mercurial will use the first applicable tool it finds on " #~ "your system or use its internal merge tool that leaves conflict markers " #~ "in place. Chose internal:merge to force conflict markers, internal:" #~ "prompt to always select local or other, or internal:dump to leave files " #~ "in the working directory for manual merging" #~ msgstr "" #~ "Herramienta gráfica para resolver conflictos de fusión de archivos.\r\n" #~ "- Sin especificar: Mercurial usará la primera herramienta disponible en " #~ "su sistema o usará una herramienta interna (vea internal).\r\n" #~ "- internal merge: fuerza marcadores de conflicto. \r\n" #~ "- internal prompt: pide selección entre local y otro\r\n" #~ "- internal dump: deja los archivos en el directorio de trabajo para " #~ "permitir fusión manual" #~ msgid "Highlight the taskbar icon during activity" #~ msgstr "Resaltar el icono de la barra de tareas durante actividad" #~ msgid "Specify the visual editor used to view files, etc" #~ msgstr "Especifique el editor visual usado para mostras archivos, etc ..." #~ msgid "" #~ "Show the diff panel below the file list in status, shelve, and commit " #~ "dialogs. Default: False (show diffs to right of file list)" #~ msgstr "" #~ "Muestra el panel diff bajo el resto de paneles. Por defecto: No (mostrado " #~ "en la parte derecha)" #~ msgid "Bottom Diffs" #~ msgstr "Diffs en parte inferior" #~ msgid "Name associated with commits" #~ msgstr "Nombre associado a los envios" #~ msgid "Message Line Length" #~ msgstr "Tamaño de línea de mesaje" #~ msgid "" #~ "If true, concatenate multiple lines of changeset summary until they reach " #~ "80 characters. Default: False" #~ msgstr "" #~ "Concatenar múltiples líneas resumen hasta máx. 80 carácteres.\r\n" #~ "\r\n" #~ "Por defecto: No" #~ msgid "" #~ "Color changesets by author name. If not enabled, the changes are colored " #~ "green for merge, red for non-trivial parents, black for normal. Default: " #~ "False" #~ msgstr "" #~ "Coloración de conjunto de cambios por autor.\r\n" #~ "\r\n" #~ "Por defecto: No\r\n" #~ "\r\n" #~ "La coloración por defecto es:\r\n" #~ "- Revisiones de fusión: Verde\r\n" #~ "- Revisiones padre no triviales: Rojo\r\n" #~ "- Revisiones normales: Negro" #~ msgid "Character encoding name" #~ msgstr "Código de carácteres" #~ msgid "Shelve" #~ msgstr "Arrinconar" #~ msgid "Path testing cannot work without a repository" #~ msgstr "Test de ruta no funciona sin un repositorio" #~ msgid "Skipped saving path with no alias" #~ msgstr "Guardar ruta sin alias ignorado" #~ msgid "Unshelve" #~ msgstr "Desacer Arrinconar" #~ msgid "prefix path to serve from (default: server root)" #~ msgstr "" #~ "ruta prefijo para servicio. Por defecto: directorio raíz de servidor" #~ msgid "Rollback" #~ msgstr "Deshacer" #~ msgid "st" #~ msgstr "Estado" #~ msgid "Error: %s" #~ msgstr "Error: %s" #~ msgid "Abort: %s" #~ msgstr "Cancelar: %s" #~ msgid "(version %s)" #~ msgstr "(versión %s)" #~ msgid "with %s" #~ msgstr "con %s" #~ msgid "Invalid regular expression" #~ msgstr "Expresión regular inválida" #~ msgid "Rename error" #~ msgstr "Renombrar error" #~ msgid "" #~ "Redirect stderr to a buffer which is parsed at the end of the process for " #~ "runtime errors. Default: True" #~ msgstr "" #~ "Redireccionar salida de error estándar a un buffer que será post-" #~ "procesado en búsqueda de errores de ejecución. Por defecto: Sí" #~ msgid "Fork hgtk" #~ msgstr "Bifurcar hgtk" #~ msgid "Unable to delete temp files" #~ msgstr "Incapaz de borrar archivos temporales" #~ msgid "Close diff tools and try again, or quit to leak files?" #~ msgstr "" #~ "Cerrar herramientas de diff e intentar de nuevo, o salir para dejar " #~ "archivos?" #~ msgid "Try &Again" #~ msgstr "Reintentar" #~ msgid "&Quit" #~ msgstr "&Salir" #~ msgid "Archive revision:" #~ msgstr "Revisión de archivo" #~ msgid "Archive" #~ msgstr "Archivo" #~ msgid "Compressed zip archives" #~ msgstr "Archivos zip comprimidos" #~ msgid "Merge " #~ msgstr "Combinar " #~ msgid "Repository Error: %s, refresh suggested" #~ msgstr "Error en el repositorio: %s, se sugiere refrescar (refresh)" #~ msgid "Unsupported line endings type: %s" #~ msgstr "Tipo de finales de línea no soportado: %s" #~ msgid "revision to merge with" #~ msgstr "revisión con la que combinar" #~ msgid "Backout changeset - %s" #~ msgstr "Revertir conjunto de cambios - %s" #~ msgid "%s changeset " #~ msgstr "%s conjunto de cambios " #~ msgid "Save as.." #~ msgstr "Guardar como.." #~ msgid "Advanced options" #~ msgstr "Opciones avanzadas" #~ msgid "Source path:" #~ msgstr "Directorio de origen:" #~ msgid "Use uncompressed transfer" #~ msgstr "Utilice transferencia sin comprimir" #~ msgid "Advanced" #~ msgstr "Avanzado" #~ msgid "View" #~ msgstr "Ver" #~ msgid "Committer:" #~ msgstr "Remitente:" #~ msgid "" #~ "The destination \"%s\" already exists!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "El destino \"%s\" ya existe!\n" #~ "¿Desea sobreescribirlo?" #~ msgid "" #~ "The directory \"%s\" isn't empty!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "El directorio \"%s\" no está vacío!\n" #~ "¿Desea sobreescribirlo?" #~ msgid "Archived successfully" #~ msgstr "Archivado correctamente" #~ msgid "All Files (*.*)" #~ msgstr "Todos los archivos (*.*)" #~ msgid "unexpected response id: %s" #~ msgstr "id de respuesta inesperada: %s" #~ msgid "unknown mode name: %s" #~ msgstr "nombre de modo desconocido: %s" #~ msgid "Confirm Abort" #~ msgstr "Confirmar Interupción" #~ msgid "Do you want to abort?" #~ msgstr "¿Quiere Interumpir?" #~ msgid "_Visual Diff" #~ msgstr "Diff _Visual" #~ msgid "Diff to _local" #~ msgstr "Diff a _local" #~ msgid "Failed to archive" #~ msgstr "Fallo al archivar" #~ msgid "Canceled archiving" #~ msgstr "Archivado cancelado" #~ msgid "_File History" #~ msgstr "_Historial de Archivo" #~ msgid "Failed to clone" #~ msgstr "Fallo al clonar" #~ msgid "Cloned successfully" #~ msgstr "Clonado correctamente" #~ msgid "_Diff" #~ msgstr "_Diff" #~ msgid "Source and destination are the same" #~ msgstr "La fuente y el destino son los mismos" #~ msgid "Please specify different paths" #~ msgstr "Por favor especifique caminos diferentes" #~ msgid "_View" #~ msgstr "_Ver" #~ msgid "_Operations" #~ msgstr "_Operaciones" #~ msgid "_Forget" #~ msgstr "_Olvidar" #~ msgid "Info Required" #~ msgstr "Información Requerida" #~ msgid "Auto-includes:" #~ msgstr "Autoincluidos:" #~ msgid "Patch Preview" #~ msgstr "Vista previa del parche" #~ msgid "create new MQ patch" #~ msgstr "crear nyevo parche MQ" #~ msgid "Patch Contents" #~ msgstr "Contenidos del parche" #~ msgid "Loading history..." #~ msgstr "Cargando historial..." #~ msgid "Lang \"%s\" can not be set.\n" #~ msgstr "El idioma «%s» no puede establecerse.\n" #~ msgid "invalid state" #~ msgstr "estado inválido" #~ msgid "Send emails" #~ msgstr "Envie emails" #~ msgid "Show emails which would be sent" #~ msgstr "Mostrar emails enviados" #~ msgid "Stop current transaction" #~ msgstr "Pare la transacción actual" #~ msgid "Sync Bar" #~ msgstr "Sincronizar barra" #~ msgid "Log Details" #~ msgstr "Detalles del informe" #~ msgid "Ignore Max Diff Size" #~ msgstr "Ignorar tamaño máx. de diferencia" #~ msgid "Revision..." #~ msgstr "Revisión..." #~ msgid "Reset Marks" #~ msgstr "Reiniciar marcas" #~ msgid "Filter Bar" #~ msgstr "Filtrar barra" #~ msgid "Choose Details..." #~ msgstr "Elija detalles..." #~ msgid "UTC Date" #~ msgstr "Fecha UTC" #~ msgid "Revision Number" #~ msgstr "Número de revisión" #~ msgid "%s branch" #~ msgstr "rama %s" #~ msgid "merges" #~ msgstr "unidos" #~ msgid "Load all" #~ msgstr "Cargar todo" #~ msgid "load more revisions" #~ msgstr "cargar más revisiones" #~ msgid "Load more" #~ msgstr "Cargar más" #~ msgid "load all revisions" #~ msgstr "cargar todas las revisiones" #~ msgid "Repository is empty" #~ msgstr "El repositorio está vacío" #~ msgid "Save patches to" #~ msgstr "Guardar parches en" #~ msgid "Confirm Revert All Files" #~ msgstr "Confirme revertir todos los archivos" #~ msgid "Merging in %s" #~ msgstr "uniendo en %s" #~ msgid "Remove or delete checked files" #~ msgstr "Remover o eliminar archivos comprobados" #~ msgid "Move checked files to other directory" #~ msgstr "Mover archivos comprobados a otra carpeta" #~ msgid "Add checked files" #~ msgstr "Añadir archivos comprobados" #~ msgid "Revert checked files" #~ msgstr "Revertir archivos comprobados" #~ msgid "Rename " #~ msgstr "Renombrar " #~ msgid "Yes (&discard changes)" #~ msgstr "Sí (&descartar cambios)" #~ msgid "Nothing Forgotten" #~ msgstr "Nada olvidado" #~ msgid "No clean files selected" #~ msgstr "No limpiar archivos seleccionados" #~ msgid "not up to date" #~ msgstr "no poner al día" #~ msgid "Target revision:" #~ msgstr "Revisión objetivo:" #~ msgid "Show patches" #~ msgstr "Mostrar parches" #~ msgid "Show newest first" #~ msgstr "Mostrar los más nuevos primero" #~ msgid "URL Details" #~ msgstr "Detalles de la URL" #~ msgid "Select Local Folder" #~ msgstr "Seleccione carpeta local" #~ msgid "Exit after saving changes?" #~ msgstr "¿Salir después de guardar los cambios?" #~ msgid "Unapply last patch" #~ msgstr "No aplicar el último parche" #~ msgid "Apply next patch" #~ msgstr "Aplicar el parche siguiente" #~ msgid "_rename" #~ msgstr "_renombrar" #~ msgid "Show status" #~ msgstr "Mostrar estado" #~ msgid "invalid dialog result: %s" #~ msgstr "resultado del díalogo inválido: %s" #~ msgid "A new version of TortoiseHg is ready for download!" #~ msgstr "Hay una nueva versión de TortoiseHg lista para descargar." #~ msgid "Copyright 2008-2010 Steve Borho and others" #~ msgstr "Copyright 2008-2010 Steve Borho y otros" #~ msgid "unexpected type: %s" #~ msgstr "tipo no esperado: %s" #~ msgid "Bookmark input is empty" #~ msgstr "La entrada del marcador esta vacia" #~ msgid "Bookmark \"%s\" has been added" #~ msgstr "Marcador \"%s\" ha sido agregado" #~ msgid "Please enter bookmark name" #~ msgstr "Por favor ingresar el nombre del marcador" #~ msgid "Bookmark name is empty" #~ msgstr "nombre del marcador esta vacio" #~ msgid "Bookmark \"%s\" has been moved" #~ msgstr "Marcador \"%s\" ha sido movido" #~ msgid "Bookmark \"%s\" has been removed" #~ msgstr "Marcador \"%s\" ha sido removido" #~ msgid "Please select bookmark name to remove" #~ msgstr "Por favor selecciona el nombre del marcador a remover" #~ msgid "Bookmark new name input is empty" #~ msgstr "Nombre de la entrada del nuevo marcador esta vacia" #~ msgid "Bookmark \"%s\" has been renamed to \"%s\"" #~ msgstr "Marcador \"%s\" ha sido renombrado a \"%s\"" #~ msgid "a bookmark named \"%s\" already exists" #~ msgstr "un marcador nombrado \"%s\" ya existe" #~ msgid "Please enter new bookmark name" #~ msgstr "Por favor ingrese el nombre del nuevo marcador" #~ msgid "_Revert File Contents" #~ msgstr "Revertir contenidos del archivo" #~ msgid "_Annotate File" #~ msgstr "_Anotar archivo" #~ msgid "Old name:" #~ msgstr "Nombre antiguo:" #~ msgid "type" #~ msgstr "tipo" #~ msgid "browser" #~ msgstr "navegador" #~ msgid "Canceled updating" #~ msgstr "Cancelar actualización" #~ msgid "merging " #~ msgstr "fusionar " #~ msgid " - qnew" #~ msgstr " - qnew" #~ msgid " - qrefresh " #~ msgstr " - qrefresh " #~ msgid " - commit" #~ msgstr " - commit" #~ msgid "Toolbar" #~ msgstr "Barra de herramientas" #~ msgid "Always Show Output" #~ msgstr "Siempre mostrar la salida" #~ msgid "Push after commit" #~ msgstr "Publicar después de realizar" #~ msgid "C_onfigure Format..." #~ msgstr "C_onfigurar formato..." #~ msgid "Updating..." #~ msgstr "Actualizando..." #~ msgid "Di_splay Change" #~ msgstr "Mo_strar cambio" #~ msgid "_View File at Revision" #~ msgstr "_Ver archivo de revisión" #~ msgid "Repository Explorer" #~ msgstr "Explorar repositorio" #~ msgid "Contents" #~ msgstr "Contenidos" #~ msgid "Index" #~ msgstr "Índice" #~ msgid "Select" #~ msgstr "Seleccionar" #~ msgid "Select Revision" #~ msgstr "Seleccionar revisión" #~ msgid "Ambiguous Revision" #~ msgstr "Revisión ambigua" #~ msgid "Invalid Revision" #~ msgstr "Revisión inválida" #~ msgid "Stop transaction" #~ msgstr "Parar transacción" #~ msgid "Close this" #~ msgstr "Cerrar esto" #~ msgid "Status: %s" #~ msgstr "Estado: %s" #~ msgid "Send" #~ msgstr "Enviar" #~ msgid "Test" #~ msgstr "Comprobar" #~ msgid "Flags:" #~ msgstr "Banderas:" #~ msgid "Apply to:" #~ msgstr "Aplicar a:" #~ msgid "[command completed successfully " #~ msgstr "[comando completado satisfactoriamente " #~ msgid "%s does not exist\n" #~ msgstr "%s no existe\n" #~ msgid "hgtk forget [FILE]..." #~ msgstr "hgtk forget [ARCHIVO]..." #~ msgid "hgtk import [OPTION] [SOURCE]..." #~ msgstr "hgtk import [OPCIONES] [FUENTE]..." #~ msgid "hgtk shellconfig" #~ msgstr "hgtk shellconfig" #~ msgid "Columns" #~ msgstr "Columnas" #~ msgid "Move Up" #~ msgstr "Mover arriba" #~ msgid "Move Down" #~ msgstr "Mover abajo" #~ msgid "Heads" #~ msgstr "Cabeceras" #~ msgid "Merges" #~ msgstr "Fusiones" #~ msgid "Keywords" #~ msgstr "Palabras clave" #~ msgid "Branches..." #~ msgstr "Ramas..." #~ msgid "&Accept" #~ msgstr "&Aceptar" #~ msgid "&Reject" #~ msgstr "&Rechazar" #~ msgid "Branches" #~ msgstr "Ramas" #~ msgid "Tags" #~ msgstr "Etiquetas" #~ msgid "Identify" #~ msgstr "Identificar" #~ msgid "Pending" #~ msgstr "Pendiente" #~ msgid "Load more Revisions" #~ msgstr "Cargar más revisiones" #~ msgid "Load all Revisions" #~ msgstr "Cargar todas las revisiones" #~ msgid "Compact Graph" #~ msgstr "Gráfica compacta" #~ msgid "Color by Branch" #~ msgstr "Color por rama" #~ msgid "_Navigate" #~ msgstr "_Navegar" #~ msgid "_Synchronize" #~ msgstr "_Sincronizar" #~ msgid "Email..." #~ msgstr "Correo..." #~ msgid "Import..." #~ msgstr "Importar..." #~ msgid "Configure Paths..." #~ msgstr "Configurar rutas..." #~ msgid "Custom" #~ msgstr "Personalizar" #~ msgid "Revision Range" #~ msgstr "Rango de revisión" #~ msgid "Submitted" #~ msgstr "Enviado" #~ msgid "Revision Number/ID" #~ msgstr "Número de revisión/ID" #~ msgid "Branch Name" #~ msgstr "Nombre de la rama" #~ msgid "Changes" #~ msgstr "Cambios" #~ msgid "Age" #~ msgstr "Edad" #~ msgid "'%s' filter:" #~ msgstr "«%s» filtrar:" #~ msgid "Filter" #~ msgstr "Filtro" #~ msgid "Branch '%s'" #~ msgstr "Rama «%s»" #~ msgid "only Merges" #~ msgstr "sólo fusiones" #~ msgid "revision ancestry" #~ msgstr "revisiones antiguas" #~ msgid "Ancestry of %s" #~ msgstr "Antiguas de %s" #~ msgid "tagged revisions" #~ msgstr "revisiones etiquetadas" #~ msgid "Tagged Revisions" #~ msgstr "Revisiones etiquietadas" #~ msgid "heads" #~ msgstr "cabeceras" #~ msgid "no Merges" #~ msgstr "ninguna fusión" #~ msgid "Current patch: %s, " #~ msgstr "Ruta actual: %s, " #~ msgid "Visualize Change" #~ msgstr "Visualizar cambios" #~ msgid "_Copy Hash" #~ msgstr "_Copiar hash" #~ msgid "_Revert" #~ msgstr "_Revertir" #~ msgid "Export" #~ msgstr "Exportar" #~ msgid "Tag" #~ msgstr "Etiquetar" #~ msgid "_Export Patch..." #~ msgstr "_Exportar ruta..." #~ msgid "_Archive..." #~ msgstr "_Archivar..." #~ msgid "Reset" #~ msgstr "Reiniciar" #~ msgid "Mark as Good" #~ msgstr "Marcar como bueno" #~ msgid "Mark as Bad" #~ msgstr "Marcar como malo" #~ msgid "Skip Testing" #~ msgstr "Saltar comprobación" #~ msgid "Import patches" #~ msgstr "Importar parches" #~ msgid "No remote path specified" #~ msgstr "Ninguna ruta remota especificada" #~ msgid "Reject" #~ msgstr "Rechazar" #~ msgid "Finish importing" #~ msgstr "Finalizando importación" #~ msgid "Aborted importing" #~ msgstr "Importación abortada" #~ msgid "Failed to import" #~ msgstr "Error al importar" #~ msgid "Importing" #~ msgstr "Importando" #~ msgid "Rev/ID" #~ msgstr "Rev/ID" #~ msgid "Canceled merging" #~ msgstr "Fusión cancelada" #~ msgid "Failed to merge" #~ msgstr "Error al fusionar" #~ msgid "Undo successfully" #~ msgstr "Deshacer satisfactoriamente" #~ msgid "Submit" #~ msgstr "Enviar" #~ msgid "Canceled" #~ msgstr "Cancelado" #~ msgid "Failed" #~ msgstr "Falló" #~ msgid "Select files to add" #~ msgstr "Seleccione archivos a añadir" #~ msgid "Select files to forget" #~ msgstr "Seleccione archivos a olvidar" #~ msgid "Select files to revert" #~ msgstr "Seleccione archivos a revertir" #~ msgid "Select files to remove" #~ msgstr "Seleccione archivos a eliminar" #~ msgid "Successfully" #~ msgstr "Satisfactoriamente" #~ msgid "S: subrepo" #~ msgstr "S: subrepo" #~ msgid "View '%s'" #~ msgstr "Ver «%s»" #~ msgid "View missing" #~ msgstr "Ver faltante" #~ msgid "View other" #~ msgstr "Ver otro" #~ msgid "_Ignore" #~ msgstr "_Ignorar" #~ msgid "_Copy..." #~ msgstr "_Copiar..." #~ msgid "Rename..." #~ msgstr "Renombrar..." #~ msgid "Restart Merge..." #~ msgstr "Reiniciar fusión..." #~ msgid "Restart merge with" #~ msgstr "Reiniciar fusión como" #~ msgid "%s - synchronize" #~ msgstr "%s - sincronizar" #~ msgid "Show no merges" #~ msgstr "No mostrar fusiones" #~ msgid "tag '%s' does not exist" #~ msgstr "etiqueta «%s» no existe" #~ msgid "tag '%s' is not a local tag" #~ msgstr "etiqueta «%s» no es una etiqueta local" #~ msgid "tag '%s' is not a global tag" #~ msgstr "etiqueta «%s» no es una etiqueta global" #~ msgid "Capture stderr" #~ msgstr "Capturar stderr" #~ msgid "Toolbar Style" #~ msgstr "Estilo de la barra de herramientas" #~ msgid "File List" #~ msgstr "Lista de archivo" #~ msgid "Command Output" #~ msgstr "Salida del comando" #~ msgid "Japanese on Windows" #~ msgstr "Japonés en Windows" #~ msgid "http" #~ msgstr "http" #~ msgid "ssh" #~ msgstr "ssh" #~ msgid "https" #~ msgstr "https" #~ msgid "Font" #~ msgstr "Tipografía" #~ msgid "Custom fonts:" #~ msgstr "Personalizar tipografías:" #~ msgid "Import" #~ msgstr "Importar" #~ msgid "Imported successfully" #~ msgstr "Importado satisfactoriamente" #~ msgid "Canceled importing" #~ msgstr "Importación cancelada" #~ msgid "Do you want to close?" #~ msgstr "¿Quiere cerrar?" #~ msgid "Select Patches" #~ msgstr "Seleccione parches" #~ msgid "Select Directory contains patches:" #~ msgstr "Seleccione carpeta que contenga parches:" #~ msgid "%s will be imported to the" #~ msgstr "%s se importarán a el" #~ msgid "%s will be imported to the repository" #~ msgstr "%s se importarán al repositorio" #~ msgid "unexpected destination name: %s" #~ msgstr "nombre de destino inesperado: %s" #~ msgid "#" #~ msgstr "#" #~ msgid "Patch" #~ msgstr "Parche" #~ msgid "Top" #~ msgstr "Arriba" #~ msgid "Up" #~ msgstr "Arriba" #~ msgid "Down" #~ msgstr "Abajo" #~ msgid "Bottom" #~ msgstr "Abajo" #~ msgid "_Rename" #~ msgstr "_Renombrar" #~ msgid "Reorder" #~ msgstr "Reordenar" #~ msgid "Show 'qparent'" #~ msgstr "Mostrar «qparent»" #~ msgid "Succeed" #~ msgstr "Satisfactorio" #~ msgid "Saved at: %s" #~ msgstr "Guardado en: %s" #~ msgid "Open..." #~ msgstr "Abrir..." #~ msgid "Always show log" #~ msgstr "Siempre mostrar registro" #~ msgid "Updated successfully" #~ msgstr "Actualizado satisfactoriamente" #~ msgid "Failed to update" #~ msgstr "Error al actualizar" #~ msgid "[canceled by user]\n" #~ msgstr "[cancelado pr el usuario]\n" #~ msgid "revisions %d to %d" #~ msgstr "revisiones %d de %d" #~ msgid "patching file %s\n" #~ msgstr "parcheando archivo %s\n" #~ msgid "malformed patch %s %s" #~ msgstr "parche mal formado %s %s" #~ msgid "Commit Preview" #~ msgstr "Vista previa de confirmación" #~ msgid "Recent commit messages..." #~ msgstr "Últimos mensajes de confirmación..." #~ msgid "Undo Commit" #~ msgstr "Deshacer confirmación" #~ msgid "Commit failed" #~ msgstr "Confirmación fallida" #~ msgid "Committing changes..." #~ msgstr "Realizando cambios..." #~ msgid "_Tools" #~ msgstr "_Herramientas" #~ msgid "Displaying all items" #~ msgstr "Mostrando todos los elementos" #~ msgid ", please refresh" #~ msgstr ", actualice por favor" #~ msgid "_Help" #~ msgstr "Ay_uda" #~ msgid "File is binary.\n" #~ msgstr "El archivo es binario.\n" #~ msgid "Backout commit message" #~ msgstr "Anular mensaje de confirmación" #~ msgid "Commit backout before merging with current working parent" #~ msgstr "Confirmar anulación antes de unir con el padre de trabajo actual" #~ msgid "could not extract binary patch" #~ msgstr "no se pudo extraer el parche binario" #~ msgid "binary patch is %d bytes, not %d" #~ msgstr "el parche binario es tiene %d bytes, no %d" #~ msgid "file %s already exists\n" #~ msgstr "El archivo %s ya existe\n" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/et.po0000644000000000000000000044237114440352353016251 0ustar00rootroot# Estonian translation for tortoisehg # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the tortoisehg package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2010-08-24 08:09+0000\n" "Last-Translator: gert7 \n" "Language-Team: Estonian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2019-07-17 05:42+0000\n" "X-Generator: Launchpad (build 19009)\n" msgid "TortoiseHg Overlay Icon Server" msgstr "" msgid "Exit" msgstr "Välju" msgid "About" msgstr "" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "" msgid "You can visit our site here" msgstr "" msgid "&License" msgstr "" #, python-format msgid "version %s" msgstr "" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "" msgid "License" msgstr "" msgid "= Working Directory Parent =" msgstr "" msgid "Directory of files" msgstr "Failide indeks" msgid "Tar archives" msgstr "Tar arhiivid" msgid "Uncompressed tar archive" msgstr "Kompresseerimata tar arhiiv" msgid "Bzip2 tar archives" msgstr "Bzip2 tar arhiivid" msgid "Tar archive compressed using bzip2" msgstr "Tar arhiiv kompresseeritud kasutades bzip2" msgid "Gzip tar archives" msgstr "Gzip tar arhiivid" msgid "Tar archive compressed using gzip" msgstr "Tar arhiiv kompresseeritud kasutades gzip" msgid "Zip archives" msgstr "" msgid "Uncompressed zip archive" msgstr "Kompresseerimata zip arhiiv" msgid "Zip archive compressed using deflate" msgstr "Zip arhiiv kompresseeritud kasutades deflate" msgid "Revision:" msgstr "Redaktsioon:" msgid "All files in this revision" msgstr "" msgid "Only files modified/created in this revision" msgstr "Ainult failid muudetud/loodud selles redaktsioonis" msgid "Only files modified/created since:" msgstr "" msgid "Archive Content:" msgstr "" msgid "Recurse into subrepositories" msgstr "" msgid "Browse..." msgstr "Sirvi..." msgid "Destination path:" msgstr "Sihttee:" msgid "Archive types:" msgstr "Arhiivitüübid:" msgid "Hg command:" msgstr "" msgid "Select Destination Folder" msgstr "Vali sihtkaust" msgid "Select Destination File" msgstr "Vali sihtfail" msgid "All files (*)" msgstr "" msgid "Duplicate Name" msgstr "" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "" msgid "Confirm Overwrite" msgstr "Kinnita ülekirjutamine" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "" #, python-format msgid "Archive - %s" msgstr "Arhiiv - %s" msgid "&Archive" msgstr "" msgid "Backout requires a parent revision" msgstr "" msgid "Cannot backout change on a different branch" msgstr "" #, python-format msgid "Backout - %s" msgstr "" msgid "Prepare to backout" msgstr "" msgid "Verify backout revision and ensure your working directory is clean." msgstr "" msgid "Backing out a parent revision is a single step operation" msgstr "" msgid "Backout revision" msgstr "" msgid "Not a head, backout will create a new head!" msgstr "" msgid "Current local revision" msgstr "" msgid "Working directory status" msgstr "" msgid "Checking..." msgstr "" msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Automatically resolve merge conflicts where possible" msgstr "" msgid "Uncommitted local changes are detected" msgstr "" msgid "Clean" msgstr "" msgid "Backing out, then merging..." msgstr "" msgid "All conflicting files will be marked unresolved." msgstr "" msgid "Automatically advance to next page when backout and merge are complete." msgstr "" #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" msgid "No merge conflicts, ready to commit" msgstr "" msgid "Commit backout and merge results" msgstr "" msgid "Parents" msgstr "" msgid "Working Directory" msgstr "" msgid "Working Directory (merged)" msgstr "" msgid "Commit message" msgstr "" msgid "Skip final confirmation page, close after commit." msgstr "" msgid "Backed out changeset: " msgstr "Taganenud muutused: " msgid "Confirm Discard Message" msgstr "" msgid "Discard current backout message?" msgstr "" msgid "Use English backout message" msgstr "Kasuta inglisekeelset taganemisteadet" msgid "Backing out and committing..." msgstr "" msgid "Please wait while making backout." msgstr "" msgid "Committing..." msgstr "" msgid "Please wait while committing merged files." msgstr "" msgid "Finished" msgstr "" msgid "Backout changeset" msgstr "" #, python-format msgid "Bisect - %s" msgstr "" msgid "Accept" msgstr "" msgid "Known good revision:" msgstr "" msgid "Known bad revision:" msgstr "" msgid "Discard local changes (revert --all)" msgstr "" msgid "Revision is &Good" msgstr "" msgid "Revision is &Bad" msgstr "" msgid "&Skip this Revision" msgstr "" msgid "Close" msgstr "Sulge" msgid "Error encountered." msgstr "" msgid "Culprit found." msgstr "" msgid "Revision" msgstr "" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "" #, python-format msgid "%s (hint: %s)" msgstr "" msgid "Bookmark:" msgstr "Järjehoidja:" msgid "New Name:" msgstr "Uus nimi:" msgid "Activate:" msgstr "" msgid "&Add" msgstr "" msgid "Re&name" msgstr "" msgid "&Remove" msgstr "" msgid "&Move" msgstr "" #, python-format msgid "Bookmark - %s" msgstr "Järjehoidja - %s" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "" #, python-format msgid "Bookmark '%s' has been added" msgstr "" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "" #, python-format msgid "Bookmark '%s' has been moved" msgstr "" #, python-format msgid "Bookmark '%s' does not exist" msgstr "Järjehoidja '%s' pole olemas" #, python-format msgid "Bookmark '%s' has been removed" msgstr "" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "" msgid "TortoiseHg Bookmark Sync" msgstr "" msgid "Outgoing Bookmarks" msgstr "" msgid "&Push Bookmark" msgstr "" msgid "&Remove Bookmark" msgstr "" msgid "Incoming Bookmarks" msgstr "" msgid "P&ull Bookmark" msgstr "" msgid "R&emove Bookmark" msgstr "" #, python-format msgid "Pushed local bookmark: %s" msgstr "" #, python-format msgid "Pulled remote bookmark: %s" msgstr "" #, python-format msgid "Removed remote bookmark: %s" msgstr "" #, python-format msgid "Removed local bookmark: %s" msgstr "" #, python-format msgid "%s - branch operation" msgstr "" msgid "Select branch of merge commit" msgstr "" msgid "Changes take effect on next commit" msgstr "" msgid "No branch changes" msgstr "" msgid "Open a new named branch" msgstr "" msgid "Close current branch" msgstr "" #, python-format msgid "Please report this bug to our bug tracker" msgstr "" msgid "Checking for updates..." msgstr "" msgid "Copy" msgstr "" msgid "Quit" msgstr "" msgid "TortoiseHg Bug Report" msgstr "" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "" msgid "Your TortoiseHg is up to date." msgstr "" msgid "Save error report to" msgstr "Salvesta veateade asukohta" msgid "Text files (*.txt)" msgstr "" msgid "Error writing file" msgstr "" msgid "TortoiseHg Error" msgstr "" msgid "" "If you still have trouble, please file a bug report." msgstr "" msgid "Visual Diff" msgstr "" msgid "View file changes in external diff tool" msgstr "" msgid "Edit Local" msgstr "" msgid "Edit current file in working copy" msgstr "" msgid "Revert to Revision" msgstr "" msgid "Revert file(s) to contents at this revision" msgstr "" msgid "Patch failed to apply" msgstr "" msgid "Manually resolve rejected chunks?" msgstr "" msgid "Edit patched file and rejects?" msgstr "" msgid "No deletable chunks" msgstr "" msgid "Completely remove file from patch?" msgstr "" msgid "Revert all file changes?" msgstr "" msgid "No chunks remain" msgstr "" msgid "file has been deleted, refresh" msgstr "" msgid "file has been modified, refresh" msgstr "" msgid "Unable to merge chunks" msgstr "" msgid "Add or remove patches must be merged in the working directory" msgstr "" msgid "Unable to remove" msgstr "" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" msgctxt "files" msgid "All" msgstr "" msgctxt "files" msgid "None" msgstr "" msgid "Toggle display of text search bar" msgstr "" msgid "Diff Toolbar" msgstr "" #, python-format msgid "Chunks selected: %d / %d" msgstr "" msgid "Please wait while the file is opened ..." msgstr "" msgid "Source:" msgstr "" msgid "Destination:" msgstr "" msgid "Options" msgstr "" msgid "Clone to revision:" msgstr "" msgid "A revision identifier, bookmark, tag or branch name" msgstr "" msgid "Do not update the new working directory" msgstr "" msgid "Use pull protocol to copy metadata" msgstr "" msgid "Clone with minimal processing" msgstr "" msgid "Include patch queue" msgstr "" msgid "Use proxy server" msgstr "Kasuta variserverit" msgid "Do not verify host certificate" msgstr "" msgid "Remote command:" msgstr "Kaugkäsk:" msgid "Use largefiles" msgstr "" msgid "Start revision:" msgstr "" msgid "Select source repository" msgstr "" msgid "Select destination repository" msgstr "" msgid "Select patch folder" msgstr "" #, python-format msgid "Clone - %s" msgstr "" msgid "&Clone" msgstr "" msgid "failed to start command\n" msgstr "" msgid "error while running command\n" msgstr "" #, python-format msgid "process exited unexpectedly with code %d" msgstr "" #, python-format msgid "failed to encode command: %s" msgstr "" #, python-format msgid "timed out while reading: %r..." msgstr "" msgid "timed out waiting for message" msgstr "" #, python-format msgid "unexpected response on required channel %r" msgstr "" #, python-format msgid "invalid \"hello\" message: %r" msgstr "" msgid "no \"runcommand\" capability" msgstr "" #, python-format msgid "corrupted command result: %r" msgstr "" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "" msgid "Terminated by user" msgstr "" #, python-format msgid "[command terminated by user %s]" msgstr "" #, python-format msgid "[command interrupted %s]" msgstr "" #, python-format msgid "[command returned code %d %%s]" msgstr "" #, python-format msgid "[command completed successfully %s]" msgstr "" msgid "Running..." msgstr "" msgid "Failed!" msgstr "" msgid "Clea&r Log" msgstr "" msgid "TortoiseHg Prompt" msgstr "" msgid "Show Detail" msgstr "" msgid "Hide Detail" msgstr "" msgid "Confirm Exit" msgstr "" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" msgid "&Run" msgstr "" msgid "TortoiseHg Command Dialog" msgstr "" msgid "Command Error" msgstr "" #, python-format msgid "[Code: %d]" msgstr "" msgid "Merge" msgstr "" #, python-format msgid "Merge with %s" msgstr "" msgid "Patch Name Required" msgstr "" msgid "You must enter a patch name" msgstr "" msgctxt "start progress" msgid "Commit" msgstr "" msgctxt "start progress" msgid "MQ Action" msgstr "" msgctxt "start progress" msgid "Rollback" msgstr "" msgid "Commit Dialog Toolbar" msgstr "" msgid "Branch: " msgstr "" msgid "Copy message" msgstr "" msgid "Copy one of the recent commit messages" msgstr "" msgid "Show Issues" msgstr "" msgid "Please wait..." msgstr "" #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "" msgid "Issue Tracker" msgstr "" msgid "Show Issues..." msgstr "" msgid "Stop" msgstr "" msgid "### patch name ###" msgstr "" msgid "Commit changes" msgstr "" msgid "Commit" msgstr "" msgid "Amend current revision" msgstr "" msgid "Amend" msgstr "" msgid "Create a new patch" msgstr "" msgid "QNew" msgstr "" msgid "Refresh current patch" msgstr "" msgid "QRefresh" msgstr "" msgid "Confirm Branch Change" msgstr "" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "" msgid "Restart &Branch" msgstr "" msgid "&Commit to current branch" msgstr "" msgid "Cancel" msgstr "" msgid "Confirm New Branch" msgstr "" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "" msgid "Create &Branch" msgstr "" msgid "Close Branch: " msgstr "" msgid "New Branch: " msgstr "" #, python-format msgid "Selected Options: %s" msgstr "" msgid "Parent:" msgstr "" msgid "Patch name:" msgstr "" #, python-format msgid "Close %s branch" msgstr "" #, python-format msgid "Rollback commit to revision %d" msgstr "" msgid "Confirm Undo" msgstr "" msgid "Discard current commit message?" msgstr "" msgid "Message Translation Failure" msgstr "" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" msgid "&Replace" msgstr "" msgid "Nothing Committed" msgstr "" msgid "Please enter commit message" msgstr "" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" msgid "No files checked" msgstr "" msgid "No modified files checkmarked for commit" msgstr "" msgid "Confirm Add" msgstr "" msgid "Add selected untracked files?" msgstr "" msgid "Confirm Remove" msgstr "" msgid "Remove selected deleted files?" msgstr "" msgid "Nothing changed." msgstr "" msgctxt "window title" msgid "Commit" msgstr "" #, python-format msgid "%s - commit options" msgstr "" msgid "Set username:" msgstr "" msgid "Save in Repo" msgstr "" msgid "Save Global" msgstr "" msgid "Set Date:" msgstr "" msgid "Update" msgstr "" msgid "Push After Commit:" msgstr "" msgid "Auto Includes:" msgstr "" msgid "Recurse into subrepositories (--subrepos)" msgstr "" msgid "Unable to save username" msgstr "" msgid "Iniparse must be installed." msgstr "" msgid "Unable to write configuration file" msgstr "" msgid "Unable to save after commit push" msgstr "" msgid "Unable to save auto include list" msgstr "" msgid "Unable to save recurse in subrepos." msgstr "" msgid "Invalid date format" msgstr "" msgid "No username configured" msgstr "" #, python-format msgid "%s - commit" msgstr "" msgid "TortoiseHg Commit" msgstr "" msgid "Are you sure that you want to cancel the commit operation?" msgstr "" msgid "Compress changesets up to and including" msgstr "" msgid "Onto destination" msgstr "" msgid "Compress" msgstr "" #, python-format msgid "Compress - %s" msgstr "" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the compress" msgstr "" msgid "Changes have been moved, you must now commit" msgstr "" msgctxt "action button" msgid "Commit" msgstr "" msgid "Compress is complete, old history untouched" msgstr "" msgid "must be specified repository" msgstr "" msgid "must be specified 'type' in style" msgstr "" msgid "Git Commit:" msgstr "" msgid "Summary:" msgstr "" msgid "User:" msgstr "" msgid "Date:" msgstr "" msgid "Age:" msgstr "" msgid "Branch:" msgstr "" msgid "Close:" msgstr "" msgid "Tags:" msgstr "" msgid "Graft:" msgstr "" msgid "Transplant:" msgstr "" msgid "Obsolete state:" msgstr "" msgid "Perforce:" msgstr "" msgid "Subversion:" msgstr "" msgid "Converted From:" msgstr "" msgid "Original Parent:" msgstr "" msgid "No items to display" msgstr "" msgid "Use compact view" msgstr "" msgid "Patch:" msgstr "" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "" msgid "Select a GUI location to edit:" msgstr "" msgid "Select the toolbar or menu to change" msgstr "" msgid "Tools shown on selected location" msgstr "" msgid "Delete from list" msgstr "" msgid "Add to list" msgstr "" msgid "Add separator" msgstr "" msgid "List of all tools" msgstr "" msgid "New Tool ..." msgstr "" msgid "Edit Tool ..." msgstr "" msgid "Delete Tool" msgstr "" msgid "Type" msgstr "" msgid "Name" msgstr "" msgid "Command" msgstr "" msgid "New hook" msgstr "" msgid "Edit hook" msgstr "" msgid "Delete hook" msgstr "" msgid "Replace existing hook?" msgstr "" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" msgid "OK" msgstr "" msgid "Missing information" msgstr "" msgid "All items" msgstr "" msgid "Working directory" msgstr "" msgid "All revisions" msgstr "" msgid "All contexts" msgstr "" msgid "Fixed revisions" msgstr "" msgid "Applied patches" msgstr "" msgid "Applied patches or qparent" msgstr "" msgid "" msgstr "" msgid "Configure Custom Tool" msgstr "" msgid "Tool name" msgstr "" msgid "The tool name. It cannot contain spaces." msgstr "" #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" msgid "Tool label" msgstr "" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" msgid "Tooltip" msgstr "" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" msgid "Icon" msgstr "" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" msgid "On repowidget, show for" msgstr "" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" msgid "Show Output Log" msgstr "" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" msgid "You must set a tool name." msgstr "" msgid "The tool name cannot have any spaces in it." msgstr "" msgid "You must set a command to run." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" msgid "Configure Hook" msgstr "" msgid "Hook type" msgstr "" msgid "Select when your command will be run" msgstr "" msgid "The hook name. It cannot contain spaces." msgstr "" msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" msgid "You must set a valid hook type." msgstr "" msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "" msgid "Console" msgstr "" msgid "File &History / Annotate" msgstr "" msgid "Show the history of the selected file" msgstr "" msgid "Co&mpare File Revisions" msgstr "" msgid "Compare revisions of the selected file" msgstr "" msgid "Filter Histor&y" msgstr "" msgid "Query about changesets affecting the selected files" msgstr "" msgid "Diff &Changeset to Parent" msgstr "" msgid "Diff Changeset to Loc&al" msgstr "" msgid "&Diff to Parent" msgstr "" msgid "Diff to &Local" msgstr "" msgid "View changes to current in external diff tool" msgstr "" msgid "&View at Revision" msgstr "" msgid "View file as it appeared at this revision" msgstr "" msgid "&Save at Revision..." msgstr "" msgid "Save file as it appeared at this revision" msgstr "" msgid "Save file to" msgstr "Salvesta fail asukohta" msgid "&Edit Local" msgstr "" msgid "&Open Local" msgstr "" msgid "E&xplore Local" msgstr "" msgid "Open parent folder of current file in the system file manager" msgstr "" msgid "&Copy Patch" msgstr "" msgid "Copy &Path" msgstr "" msgid "Copy full path of file(s) to the clipboard" msgstr "" msgid "&Revert to Revision..." msgstr "" msgid "Open S&ubrepository" msgstr "" msgid "Open the selected subrepository" msgstr "" msgid "E&xplore Folder" msgstr "" msgid "Open the selected folder in the system file manager" msgstr "" msgid "Open &Terminal" msgstr "" msgid "Open a shell terminal in the selected folder" msgstr "" msgid "Custom Tools" msgstr "" msgid "Diff &Local" msgstr "" msgid "&View Missing" msgstr "" msgid "View O&ther" msgstr "" msgid "Add &Largefiles..." msgstr "" msgid "&Forget" msgstr "" msgid "&Delete Unversioned..." msgstr "" msgid "Confirm Delete Unversioned" msgstr "" msgid "Delete the following unversioned files?" msgstr "" msgid "&Delete" msgstr "" msgid "Re&move Versioned" msgstr "" msgid "&Revert..." msgstr "" msgid "Uncommited merge - please select a parent revision" msgstr "" msgid "Revert files to local or other parent?" msgstr "" msgid "&Local" msgstr "" msgid "&Other" msgstr "" msgid "Confirm Revert" msgstr "" msgid "Revert local file changes?" msgstr "" msgid "&Revert with backup" msgstr "" msgid "&Discard changes" msgstr "" msgid "Revert the following files?" msgstr "" msgid "&Revert" msgstr "" msgid "&Copy..." msgstr "" msgid "Re&name..." msgstr "" msgid "&Ignore..." msgstr "" msgid "Edit Re&jects" msgstr "" msgid "Manually resolve rejected patch chunks" msgstr "" msgid "De&tect Renames..." msgstr "" msgid "&Mark Resolved" msgstr "" msgid "&Mark Unresolved" msgstr "" msgid "Restart Mer&ge" msgstr "" msgid "Was renamed from" msgstr "" msgid "Restart Merge &with" msgstr "" msgid "Display the file anyway" msgstr "" msgid "Diff not displayed: " msgstr "" #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid "File is binary" msgstr "" msgid "File may be binary (maximum line length exceeded)" msgstr "" msgid "File or diffs not displayed: " msgstr "" msgid " (was added)" msgstr "" #, python-format msgid " (copied from %s)" msgstr "" #, python-format msgid " (renamed from %s)" msgstr "" msgid " (is a symlink)" msgstr "" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid " (was deleted)" msgstr "" msgid " (was added, now missing)" msgstr "" msgid " (is unversioned)" msgstr "" msgid "exec mode has been set" msgstr "" msgid "exec mode has been unset" msgstr "" #, python-format msgid "changeset: %s" msgstr "" msgid "Initial revision" msgstr "" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" msgid "Subrepo created and set to initial revision." msgstr "" msgid "Subrepo initialized to revision:" msgstr "" msgid "Subrepo removed from repository." msgstr "" msgid "Previously the subrepository was at the following revision:" msgstr "" msgid "Subrepo was not changed." msgstr "" msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "" msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "" msgid "Subrepo state is:" msgstr "" msgid "Revision has changed to:" msgstr "" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "" msgid "From:" msgstr "" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" msgid "Subrepository not found in the working directory." msgstr "" msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" msgid "Not a Mercurial subrepo, not previewable" msgstr "" #, python-format msgid "Error previewing subrepo: %s" msgstr "" msgid "Subrepo may be damaged or inaccessible." msgstr "" msgid "The subrepository is dirty." msgstr "" msgid "File Status:" msgstr "" msgid "(is a changed sub-repository)" msgstr "" msgid "(is an unchanged sub-repository)" msgstr "" msgid "(is a dirty sub-repository)" msgstr "" msgid "(is a new sub-repository)" msgstr "" msgid "(is a removed sub-repository)" msgstr "" msgid "(is a changed and dirty sub-repository)" msgstr "" msgid "(is a new and dirty sub-repository)" msgstr "" msgid "open..." msgstr "" #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "" msgid "File History Log Columns" msgstr "" msgid "Back" msgstr "" msgid "Forward" msgstr "" msgid "Diff Selected &Changesets" msgstr "" msgid "&Diff Selected File Revisions" msgstr "" msgid "Show Revision &Details" msgstr "" msgid "Too many rows selected for menu" msgstr "" msgid "File Differences Log Columns" msgstr "" msgid "Next diff" msgstr "" msgid "Previous diff" msgstr "" msgid "Unicode" msgstr "" msgid "Western Europe" msgstr "" msgid "Unified Chinese" msgstr "" msgid "Traditional Chinese" msgstr "" msgid "Korean" msgstr "" msgid "Japanese" msgstr "" msgid "Thai" msgstr "" msgid "Central and Eastern Europe" msgstr "" msgid "Cyrillic" msgstr "" msgid "Russian" msgstr "" msgid "Ukrainian" msgstr "" msgid "Greek" msgstr "" msgid "Turkish" msgstr "" msgid "Arabic" msgstr "" msgid "Hebrew" msgstr "" msgid "Vietnamese" msgstr "" msgid "Baltic" msgstr "" msgid "Southern Europe" msgstr "" msgid "Nordic" msgstr "" msgid "Celtic" msgstr "" msgid "South-Eastern Europe" msgstr "" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "" msgid "View change as unified diff output" msgstr "" msgid "View change in context of file" msgstr "" msgid "Annotate with revision numbers" msgstr "" msgid "Next Diff" msgstr "" msgid "Previous Diff" msgstr "" msgid "Open shelve tool" msgstr "" msgid "&Auto Detect" msgstr "" msgid "Show changes from first parent" msgstr "" msgid "Show changes from second parent" msgstr "" msgid "E&ncoding" msgstr "" msgid "&Search in Current File" msgstr "" msgid "Search in All &History" msgstr "" msgid "Go to Line" msgstr "" #, python-format msgid "Enter line number (1 - %d)" msgstr "" msgid "Show &Author" msgstr "" msgid "Show &Date" msgstr "" msgid "Show &Revision" msgstr "" msgid "Annotate Op&tions" msgstr "" msgid "Search Selected Text" msgstr "" msgid "In Current &File" msgstr "" msgid "In &Current Revision" msgstr "" msgid "In &Original Revision" msgstr "" msgid "In All &History" msgstr "" msgid "Go to" msgstr "" msgid "View File at" msgstr "" msgid "Diff File to" msgstr "" msgid "&Originating Revision" msgstr "" msgid "&Parent Revision" msgstr "" #, python-format msgid "&Parent Revision (%d)" msgstr "" msgid "&Mark Excluded Changes" msgstr "" msgid "(excluded from the next commit)" msgstr "" msgid "Interrupted graft operation found" msgstr "" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" msgid "Continue or abort interrupted graft operation?" msgstr "" msgid "To graft destination" msgstr "" msgid "Use my user name instead of graft committer user name" msgstr "" msgid "Use current date" msgstr "" msgid "Append graft info to log message" msgstr "" msgid "Graft" msgstr "" msgid "Abort" msgstr "" #, python-format msgid "Graft - %s" msgstr "" msgid "Graft changeset" msgstr "" #, python-format msgid "Graft changeset #%d of %d" msgstr "" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" msgid "You may continue or start the graft" msgstr "" msgid "Graft is complete" msgstr "" msgid "Graft failed" msgstr "" msgid "Graft aborted" msgstr "" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" msgid "You may continue the graft" msgstr "" msgid "Exiting with an unfinished graft is not recommended." msgstr "" msgid "Consider aborting the graft first." msgstr "" msgid "&Exit" msgstr "" msgid "### regular expression search pattern ###" msgstr "" msgid "Regexp:" msgstr "" msgid "Ignore case" msgstr "" msgid "Search" msgstr "" msgid "Working Copy" msgstr "" msgid "All History" msgstr "" msgid "Report only the first match per file" msgstr "" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "" msgid "Includes:" msgstr "" msgid "Excludes:" msgstr "" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" #, python-format msgid "\"%s\" removed from search history" msgstr "" #, python-format msgid "\"%s\" removed from path history" msgstr "" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "" #, python-format msgid "grep: %s\n" msgstr "" #, python-format msgid "%d matches found" msgstr "" msgid "No matches found" msgstr "" msgid "Searching" msgstr "" msgid "history" msgstr "" msgid "Interrupted" msgstr "" msgid "files" msgstr "" #, python-format msgid "Skipping %s, unable to read" msgstr "" msgid "Vi&ew File" msgstr "" msgid "&View Changeset" msgstr "" msgid "Annotate &File" msgstr "" msgid "File" msgstr "" msgid "Line" msgstr "" msgid "Rev" msgstr "" msgid "User" msgstr "" msgid "Match Text" msgstr "" msgid "TortoiseHg Search" msgstr "" #, python-format msgid "Detect Copies/Renames in %s" msgstr "" msgid "Unrevisioned Files" msgstr "" msgid "Refresh file list" msgstr "" #, python-format msgid "Min Similarity: %d%%" msgstr "" msgid "Only consider deleted files" msgstr "" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "" msgid "Find Renames" msgstr "" msgid "Find copy and/or rename sources" msgstr "" msgid "Candidate Matches" msgstr "" msgid "Accept All Matches" msgstr "" msgid "Accept Selected Matches" msgstr "" msgid "Differences from Source to Dest" msgstr "" msgid "Search already in progress" msgstr "" msgid "Cannot start a new search" msgstr "" msgid "No files to find" msgstr "" msgid "There are no files that may have been renamed" msgstr "" msgid "Multiple sources chosen" msgstr "" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" #. i18n: percent format #, python-format msgid "%d%%" msgstr "" msgid "Source" msgstr "" msgid "Dest" msgstr "" msgid "% Match" msgstr "" msgid "Sending Email" msgstr "" msgid "Email" msgstr "" msgid "To:" msgstr "" msgid "Cc:" msgstr "" msgid "In-Reply-To:" msgstr "" msgid "Message identifier to reply to, for threading" msgstr "" msgid "Flag:" msgstr "" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" msgid "Send changesets as Hg patches" msgstr "" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" msgid "Use extended (git) patch format" msgstr "" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" msgid "Plain, do not prepend Hg header" msgstr "" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" msgid "Send single binary bundle, not patches" msgstr "" msgid "send patches as part of the email body" msgstr "" msgid "body" msgstr "" msgid "send patches as attachments" msgstr "" msgid "attach" msgstr "" msgid "send patches as inline attachments" msgstr "" msgid "inline" msgstr "" msgid "add diffstat output to messages" msgstr "" msgid "diffstat" msgstr "" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" msgid "Write patch series (bundle) description" msgstr "" msgid "Subject:" msgstr "" msgid "Changesets" msgstr "" msgid "Select &All" msgstr "" msgid "Select &None" msgstr "" msgid "Edit" msgstr "" msgid "Preview" msgstr "" msgid "&Settings" msgstr "" msgid "Send &Email" msgstr "" msgid "&Close" msgstr "" #, python-format msgid "Ignore filter - %s" msgstr "" msgid "Glob" msgstr "" msgid "Regexp" msgstr "" msgid "Add" msgstr "Lisa" msgid "Edit File" msgstr "" msgid "Ignore Filter" msgstr "" msgid "Untracked Files" msgstr "" msgid "Backspace or Del to remove row(s)" msgstr "" msgid "Add ignore filter..." msgstr "" msgid "selected files" msgstr "" msgid "Ignore " msgstr "" msgid "Invalid glob expression" msgstr "" msgid "Invalid regexp expression" msgstr "" msgid "Unable to read repository status" msgstr "" msgid "New file created" msgstr "" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" msgid "Unable to write .hgignore file" msgstr "" msgid "Copy working directory files from skeleton" msgstr "" msgid "Create special files (.hgignore, ...)" msgstr "" msgid "Make repo compatible with Mercurial <1.7" msgstr "" msgid "New Repository" msgstr "" msgid "&Create" msgstr "" msgid "Unable to create a config file" msgstr "" msgid "Insufficient access rights." msgstr "" msgid "Show Log" msgstr "" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" msgid "Add as &Largefiles" msgstr "" msgid "Add as &Normal Files" msgstr "" msgid "Invalid Patterns" msgstr "" msgid "Failed to process largefiles.patterns." msgstr "" msgid "Word docs (*.doc *.docx)" msgstr "" msgid "PDF docs (*.pdf)" msgstr "" msgid "Excel files (*.xls *.xlsx)" msgstr "" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "" msgid "Refresh lock information" msgstr "" msgid "Lock a file not described in .hglocks" msgstr "" msgid "Stop current operation" msgstr "" msgid "Locked And Lockable Files:" msgstr "" msgid "Path" msgstr "" msgid "Locking User" msgstr "" msgid "Purpose" msgstr "" msgid "Simplelock extension not enabled" msgstr "" msgid "Please enable and configure simplelock" msgstr "" msgid "Open a (nonmergable) file you wish to be locked" msgstr "" msgid "File was not within current repository" msgstr "" #, python-format msgid "Locking %s" msgstr "" #, python-format msgid "Unlocking %s" msgstr "" msgid "Refreshing locks..." msgstr "" #, python-format msgid "Lock of %s successful" msgstr "" #, python-format msgid "Lock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s successful" msgstr "" msgid "Ready, double click to lock or unlock" msgstr "" msgid "Ready" msgstr "" msgid "You can only release your own locks" msgstr "" msgid "Find revisions matching fields of:" msgstr "" msgid "Revision to Match:" msgstr "" msgid "Fields to match:" msgstr "" msgid "Summary (first description line)" msgstr "" msgid "Description" msgstr "" msgid "Author" msgstr "" msgid "Date" msgstr "" msgid "Files" msgstr "" msgid "Diff contents" msgstr "" msgid "Subrepo states" msgstr "" msgid "Branch" msgstr "" msgid "Phase" msgstr "" msgid "&Match" msgstr "" #, python-format msgid "Find matches - %s" msgstr "" msgid "Revisions to Match:" msgstr "" #, python-format msgid "Match any of %d revisions" msgstr "" msgid "Unknown revision!" msgstr "" msgid "Parse Error!" msgstr "" #, python-format msgid "Merge - %s" msgstr "" msgid "Do you want to exit?" msgstr "" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" msgid "Prepare to merge" msgstr "" msgid "Verify merge targets and ensure your working directory is clean." msgstr "" msgid "Not a head revision!" msgstr "" msgid "Merge from (other revision)" msgstr "" msgid "Merge to (working directory)" msgstr "" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Or use:" msgstr "" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "" msgid "Discard all changes from the other revision" msgstr "" msgid "&Discard" msgstr "" msgid "Confirm Discard Changes" msgstr "" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" msgctxt "working dir state" msgid "Clean" msgstr "" msgid "Merging..." msgstr "" msgid "Automatically advance to next page when merge is complete." msgstr "" #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" msgid "" "No merge conflicts, ready to commit or review" msgstr "" msgid "Commit merge results" msgstr "" msgid "Commit Options" msgstr "" msgid "Commit Now" msgstr "" msgid "Commit Later" msgstr "" msgid "Merge changeset" msgstr "" msgid "Syntax Highlighting" msgstr "" msgid "Paste &Filenames" msgstr "" msgid "App&ly Format" msgstr "" msgid "C&onfigure Format" msgstr "" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "" msgid "&Commit to Queue..." msgstr "" msgid "Create &New Queue..." msgstr "" msgid "&Rename Active Queue..." msgstr "" msgid "&Delete Queue..." msgstr "" msgid "&Purge Queue..." msgstr "" msgid "Create Patch Queue" msgstr "" msgid "New patch queue name" msgstr "" msgid "Create" msgstr "" msgid "Rename Patch Queue" msgstr "" #, python-format msgid "Rename patch queue '%s' to" msgstr "" msgid "Rename" msgstr "Nimeta ümber" msgid "Delete Patch Queue" msgstr "" msgid "Delete reference to" msgstr "" msgid "Delete" msgstr "" msgid "Purge Patch Queue" msgstr "" msgid "Remove patch directory of" msgstr "" msgid "Purge" msgstr "" msgid "Rename Patch" msgstr "" #, python-format msgid "Rename patch %s to:" msgstr "" msgid "no guards" msgstr "" msgid "Patch Queue" msgstr "" msgctxt "MQ QPush" msgid "Push" msgstr "" msgid "Apply one patch" msgstr "" msgctxt "MQ QPush" msgid "Push all" msgstr "" msgid "Apply all patches" msgstr "" msgid "Pop" msgstr "" msgid "Unapply one patch" msgstr "" msgid "Pop all" msgstr "" msgid "Unapply all patches" msgstr "" msgid "Go &to Patch" msgstr "" msgid "&Apply Only This Patch" msgstr "" msgid "Apply only the selected patch" msgstr "" msgid "&Finish Patch" msgstr "" msgid "Move applied patches into repository history" msgstr "" msgid "&Delete Patches..." msgstr "" msgid "Delete selected patches" msgstr "" msgid "Re&name Patch..." msgstr "" msgid "Set &Guards..." msgstr "" msgid "Configure guards for selected patch" msgstr "" msgid "Patch Queue Actions Toolbar" msgstr "" msgid "Configure guards" msgstr "" #, python-format msgid "Input new guards for %s:" msgstr "" msgid "Confirm patch queue switch" msgstr "" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "" #, python-format msgid "Guards: %d/%d" msgstr "" msgid "MQ options" msgstr "" msgid "Force push or pop (--force)" msgstr "" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "" msgid "Submitting p4 changelist..." msgstr "" msgid "Reverting p4 changelist..." msgstr "" msgid "Patch Branch Toolbar" msgstr "" msgid "Merge all pending dependencies" msgstr "" msgid "Backout current patch branch" msgstr "" msgid "Backport part of a changeset to a dependency" msgstr "" msgid "Start a new patch branch" msgstr "" msgid "Edit patch dependency graph" msgstr "" msgid "will be closed" msgstr "" #, python-format msgid "needs merge of %i heads\n" msgstr "" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "" #, python-format msgid "needs merge with %s\n" msgstr "" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "" msgid "&Goto (update workdir)" msgstr "" msgid "&Merge" msgstr "" msgid "No patch branch selected" msgstr "" msgid "No editor found" msgstr "" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" msgid "Graph" msgstr "" msgid "Status" msgstr "" msgid "Title" msgstr "" msgid "Message" msgstr "" msgid "New Patch Branch" msgstr "" msgid "Patch message:" msgstr "" msgid "Patch date:" msgstr "" msgid "Patch user:" msgstr "" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" msgid "Review Board" msgstr "" msgid "Password:" msgstr "" msgid "Error" msgstr "" #, python-format msgid "Review draft posted to %s\n" msgstr "" #, python-format msgid "Review published to %s\n" msgstr "" msgid "Success" msgstr "" msgid "Repository ID:" msgstr "" msgid "Post Review" msgstr "" msgid "Review ID:" msgstr "" msgid "Update the fields of this existing request" msgstr "" msgid "Update Review" msgstr "" msgid "Create diff with all outgoing changes" msgstr "" msgid "Create diff with all changes on this branch" msgstr "" msgid "Publish request immediately" msgstr "" msgid "%p%" msgstr "" msgid "Connecting to Review Board..." msgstr "" msgid "Target:" msgstr "" msgid "Do not modify working copy (-k/--keep)" msgstr "" #, python-format msgid "Prune - %s" msgstr "" msgid "&Prune" msgstr "" msgid "No unknown files found" msgstr "" msgid "No ignored files found" msgstr "" msgid "No trash files found" msgstr "" msgid "Delete empty folders" msgstr "" msgid "Preserve files beginning with .hg" msgstr "" #, python-format msgid "%s - purge" msgstr "" msgid "Checking" msgstr "" msgid "Ready to purge." msgstr "" #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "" msgstr[1] "" msgid "Confirm file deletions" msgstr "" msgid "Are you sure you want to delete these files and/or folders?" msgstr "" msgid "Deletion failures" msgstr "" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "" msgstr[1] "" msgid "Deleting trash folder..." msgstr "" #, python-format msgid "Deleted %d files" msgstr "" #, python-format msgid "Deleted %d files and %d folders" msgstr "" msgid "Delete Patches" msgstr "" msgid "Remove patches from queue?" msgstr "" msgid "Keep patch files" msgstr "" #, python-format msgid "Patch fold - %s" msgstr "" msgid "New patch message:" msgstr "" msgid "Patches to fold" msgstr "" msgid "&Undo" msgstr "" msgid "&Redo" msgstr "" msgid "Cu&t" msgstr "" msgid "&Copy" msgstr "" msgid "&Paste" msgstr "" msgid "&Editor Options" msgstr "" msgid "&Wrap" msgstr "" msgctxt "wrap mode" msgid "&None" msgstr "" msgid "&Word" msgstr "" msgid "&Character" msgstr "" msgid "White&space" msgstr "" msgid "&Visible" msgstr "" msgid "&Invisible" msgstr "" msgid "&AfterIndent" msgstr "" msgid "&TAB Inserts" msgstr "" msgid "&Auto" msgstr "" msgid "&TAB" msgstr "" msgid "&Spaces" msgstr "" msgid "EOL &Visibility" msgstr "" msgid "EOL &Mode" msgstr "" msgid "&Windows" msgstr "" msgid "&Unix" msgstr "" msgid "&Mac" msgstr "" msgid "&Auto-Complete" msgstr "" msgid "### regular expression ###" msgstr "" msgid "Regular expression search pattern" msgstr "" msgid "Wrap search" msgstr "" msgid "Prev" msgstr "" msgid "Next" msgstr "" msgid "Unable to read file" msgstr "" msgid "Could not open the specified file for reading." msgstr "" msgid "This appears to be a binary file." msgstr "" msgid "An error occurred while reading the file." msgstr "" msgid "Text Translation Failure" msgstr "" msgid "Could not translate the file content from native encoding." msgstr "" msgid "Several characters would be lost." msgstr "" msgid "Unable to write file" msgstr "" msgid "Could not translate the file content to native encoding." msgstr "" msgid "Could not open the specified file for writing." msgstr "" msgid "An error occurred while writing the file." msgstr "" msgid "Try refreshing your repository." msgstr "" #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
                                      Please edit your config" msgstr "" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
                                      Please fix your config" msgstr "" #, python-format msgid "Operation aborted:

                                      %(arg0)s." msgstr "" msgid "Repository is locked" msgstr "" msgid "hint:" msgstr "" msgid "Repository Error" msgstr "" msgid "No visual editor configured" msgstr "" msgid "Please configure a visual editor." msgstr "" msgid "Editor launch failure" msgstr "" msgid "Failed to open path in terminal" msgstr "" #, python-format msgid "\"%s\" is not a valid directory" msgstr "" #, python-format msgid "Invalid configuration: %s" msgstr "" msgid "Unable to start the following command:" msgstr "" msgid "No shell configured" msgstr "" msgid "A terminal shell must be configured" msgstr "" msgid "Please enter a username" msgstr "" msgid "You must identify yourself to Mercurial" msgstr "" msgid "Unable to translate input to local encoding." msgstr "" msgid "Checkmark files to add" msgstr "" msgid "Checkmark files to forget" msgstr "" msgid "Forget" msgstr "" msgid "Checkmark files to revert" msgstr "" msgid "Revert" msgstr "" msgid "Checkmark files to remove" msgstr "" msgid "Remove" msgstr "Eemalda" #, python-format msgid "%s - hg %s" msgstr "" msgid "Do not save backup files (*.orig)" msgstr "" msgid "Force removal of modified files (--force)" msgstr "" msgid "Add &Largefiles" msgstr "" msgid "No files selected" msgstr "" msgid "No operation to perform" msgstr "" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" msgid "Remove &Unmodified Files" msgstr "" msgid "Remove &All Selected Files" msgstr "" msgid "Rebase changeset and descendants" msgstr "" msgid "To rebase destination" msgstr "" msgid "Swap source and destination" msgstr "" msgid "Keep original changesets (--keep)" msgstr "" msgid "Keep original branch names (--keepbranches)" msgstr "" msgid "Collapse the rebased changesets (--collapse)" msgstr "" msgid "Rebase entire source branch (-b/--base)" msgstr "" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "" msgid "Rebase" msgstr "" #, python-format msgid "Rebase - %s" msgstr "" msgid "" "Before rebase, you must
                                      commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the rebase" msgstr "" msgid "Rebase is complete" msgstr "" msgid "Rebase failed" msgstr "" msgid "Rebase aborted" msgstr "" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" msgid "Exiting with an unfinished rebase is not recommended." msgstr "" msgid "Consider aborting the rebase first." msgstr "" #, python-format msgid "Merge rejected patch chunks into %s" msgstr "" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "" msgid "Mark this chunk as unresolved" msgstr "" msgid "Reload File" msgstr "" msgid "Are you sure you want to reload this file?" msgstr "" msgid "All unsaved changes will be lost." msgstr "" msgid "Warning" msgstr "" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" msgid "Copy source -> destination" msgstr "" msgid "Copy Error" msgstr "" msgid "Rename Error" msgstr "" msgid "Select Source File" msgstr "" msgid "Select Source Folder" msgstr "" msgid "Source does not exist." msgstr "" msgid "The source must be within the repository tree." msgstr "" msgid "The destination must be within the repository tree." msgstr "" msgid "Destination file already exists." msgstr "" msgid "Are you sure you want to overwrite it ?" msgstr "" #, python-format msgid "Copy - %s" msgstr "" #, python-format msgid "Rename - %s" msgstr "" msgid "Show all" msgstr "" msgid "### revision set query ###" msgstr "" msgid "Clear current query and query text" msgstr "" msgid "Trigger revision set query" msgstr "" msgid "Open advanced query editor" msgstr "" msgid "Delete selected query from history" msgstr "" msgid "filter" msgstr "" msgid "Toggle filtering of non-matched changesets" msgstr "" msgid "Show/Hide hidden changesets" msgstr "" msgid "Toggle graft relations visibility" msgstr "" msgid "Keyword Search" msgstr "" msgid "Revision Set" msgstr "" msgid "(unsaved)" msgstr "" msgid "Display graph the named branch only" msgstr "" msgid "Display only active branches" msgstr "" msgid "Display closed branches" msgstr "" msgid "Include all ancestors" msgstr "" msgctxt "column header" msgid "Graph" msgstr "" msgctxt "column header" msgid "Rev" msgstr "" msgctxt "column header" msgid "Branch" msgstr "" msgctxt "column header" msgid "Description" msgstr "" msgctxt "column header" msgid "Author" msgstr "" msgctxt "column header" msgid "Tags" msgstr "" msgctxt "column header" msgid "Latest tags" msgstr "" msgctxt "column header" msgid "Node" msgstr "" msgctxt "column header" msgid "Git Commit" msgstr "" msgctxt "column header" msgid "Age" msgstr "" msgctxt "column header" msgid "Local Time" msgstr "" msgctxt "column header" msgid "UTC Time" msgstr "" msgctxt "column header" msgid "Changes" msgstr "" msgctxt "column header" msgid "Converted From" msgstr "" msgctxt "column header" msgid "Phase" msgstr "" msgctxt "column header" msgid "Filename" msgstr "" msgid "Searching..." msgstr "" #, python-format msgid "filling (%d)" msgstr "" msgid "Mercurial User" msgstr "" msgid "Repository Registry" msgstr "" msgid "Show &Paths" msgstr "" msgid "Show S&hort Paths" msgstr "" msgid "&Scan Repositories at Startup" msgstr "" msgid "Scan &Remote Repositories" msgstr "" msgid "&Refresh Repository List" msgstr "" msgid "Refresh the Repository Registry list" msgstr "" msgid "&Open" msgstr "" msgid "Open the repository in a new tab" msgstr "" msgid "&Open All" msgstr "" msgid "Open all repositories in new tabs" msgstr "" msgid "New &Group" msgstr "" msgid "Create a new group" msgstr "" msgid "Rename the entry" msgstr "" msgid "Settin&gs" msgstr "" msgid "View the repository's settings" msgstr "" msgid "Re&move from Registry" msgstr "" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" msgid "Clon&e..." msgstr "" msgid "Clone Repository" msgstr "" msgid "E&xplore" msgstr "" msgid "Open the repository in a file browser" msgstr "" msgid "&Terminal" msgstr "" msgid "Open a shell terminal in the repository root" msgstr "" msgid "&Add Repository..." msgstr "" msgid "Add a repository to this group" msgstr "" msgid "A&dd Subrepository..." msgstr "" msgid "Convert an existing repository into a subrepository" msgstr "" msgid "Remo&ve Subrepository..." msgstr "" msgid "Remove this subrepository from the current revision" msgstr "" msgid "Copy the root path of the repository to the clipboard" msgstr "" msgid "Sort by &Name" msgstr "" msgid "Sort the group by short name" msgstr "" msgid "Sort by &Path" msgstr "" msgid "Sort the group by full path" msgstr "" msgid "&Sort by .hgsub" msgstr "" msgid "Order the subrepos as in .hgsub" msgstr "" msgid "Select repository directory to add" msgstr "" msgid "Select an existing repository to add as a subrepo" msgstr "" msgid "Cannot add subrepository" msgstr "" #, python-format msgid "%s is not a valid repository" msgstr "" #, python-format msgid "\"%s\" is not a folder" msgstr "" msgid "A repository cannot be added as a subrepo of itself" msgstr "" #, python-format msgid "" "The selected folder:

                                      %s

                                      is not inside the target repository." "

                                      This may be allowed but is greatly discouraged.
                                      If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" msgid "Cannot open repository" msgstr "" #, python-format msgid "The selected repository:

                                      %s

                                      cannot be open!" msgstr "" msgid "Subrepository already exists" msgstr "" #, python-format msgid "" "The selected repository:

                                      %s

                                      is already a subrepository of:" "

                                      %s

                                      as: \"%s\"" msgstr "" msgid "Failed to add subrepository" msgstr "" #, python-format msgid "Cannot open the .hgsub file in:

                                      %s" msgstr "" msgid "Failed to add repository" msgstr "" #, python-format msgid "The .hgsub file already contains the line:

                                      %s" msgstr "" msgid "Subrepo added to .hgsub file" msgstr "" #, python-format msgid "" "The selected subrepo:

                                      %s

                                      has been added to the .hgsub " "file of the repository:

                                      %s

                                      Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" #, python-format msgid "Cannot update the .hgsub file in:

                                      %s" msgstr "" msgid "Could not open .hgsub file" msgstr "" msgid "Cannot read the .hgsub file.

                                      Subrepository removal failed." msgstr "" msgid "Subrepository not found" msgstr "" msgid "" "The selected subrepository was not found on the .hgsub file.

                                      Perhaps it " "has already been removed?" msgstr "" msgid "&Yes" msgstr "" msgid "&No" msgstr "" msgid "Remove the selected repository?" msgstr "" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" msgid "Subrepository removed from .hgsub" msgstr "" msgid "" "The selected subrepository has been removed from the .hgsub file.

                                      Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" msgid "Could not update .hgsub file" msgstr "" msgid "Cannot update the .hgsub file.

                                      Subrepository removal failed." msgstr "" #, python-format msgid "Unsupported repository type (%s)" msgstr "" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "" msgid "New Group" msgstr "" msgid "Confirm Delete" msgstr "" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "" msgid "Could not get subrepository list" msgstr "" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

                                      %s" msgstr "" msgid "Could not open some subrepositories" msgstr "" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

                                      %s

                                      The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

                                      %s" msgstr "" msgid "Updating repository registry" msgstr "" #, python-format msgid "Loading repository %s" msgstr "" msgid "Repository Registry updated" msgstr "" msgid "Close tab" msgstr "" msgid "Close other tabs" msgstr "" msgid "Undo close tab" msgstr "" msgid "Reopen last closed tab" msgstr "" msgid "Undo close other tabs" msgstr "" msgid "Reopen last closed tab group" msgstr "" msgid "Failed to open repository" msgstr "" msgid "&Sort" msgstr "" #, python-format msgid "Local Repository %s" msgstr "" #, python-format msgid "" "An exception happened while loading the subrepos of:

                                      \"%s\"

                                      " msgstr "" #, python-format msgid "The exception error message was:

                                      %s

                                      " msgstr "" msgid "Click OK to continue or Abort to exit." msgstr "" msgid "Error loading subrepos" msgstr "" msgid "Unable to update repository name" msgstr "" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "" msgid "default" msgstr "" msgid "C&hoose Log Columns..." msgstr "" msgid "&Resize Columns" msgstr "" #, python-format msgid "Goto ancestor of %s and %s" msgstr "" #, python-format msgid "Can't find revision '%s'" msgstr "" msgid "Drag to change order" msgstr "" msgid "Workbench Log Columns" msgstr "" msgctxt "tab tooltip" msgid "Revision details" msgstr "" msgctxt "tab tooltip" msgid "Commit" msgstr "" msgctxt "tab tooltip" msgid "Search" msgstr "" msgctxt "tab tooltip" msgid "Console log" msgstr "" msgctxt "tab tooltip" msgid "Synchronize" msgstr "" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "" #, python-format msgid "%s " msgstr "" #, python-format msgid "Found %d incoming changesets" msgstr "" msgid "Pull" msgstr "" msgid "Pull incoming changesets into your repository" msgstr "" msgid "Reject incoming changesets" msgstr "" #, python-format msgid "Push current branch (%s)" msgstr "" #, python-format msgid "Push up to current revision (#%d)" msgstr "" #, python-format msgid "Push up to revision #%d" msgstr "" msgid "Push all" msgstr "" msgid "no outgoing changesets" msgstr "" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets" msgstr "" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "" msgid "Nothing to push" msgstr "" msgid "No revision found" msgstr "" #, python-format msgid "%s - verify repository" msgstr "" #, python-format msgid "%s - recover repository" msgstr "" msgid "No transaction available" msgstr "" msgid "There is no rollback transaction available" msgstr "" msgid "Undo last commit?" msgstr "" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "" msgid "Undo last transaction?" msgstr "" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "" msgid "Unable to determine working copy revision\n" msgstr "" msgid "Remove current working revision?" msgstr "" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" msgid "Tab cannot exit" msgstr "" msgid "Pus&h" msgstr "" msgid "Push to &Here" msgstr "" msgid "Push Selected &Branch" msgstr "" msgid "Push &All" msgstr "" msgid "&Update..." msgstr "" msgid "Bro&wse at Revision" msgstr "" msgid "&Merge with Local..." msgstr "" msgid "&Tag..." msgstr "" msgid "Boo&kmark..." msgstr "" msgid "Top&ic..." msgstr "" msgid "Sig&n..." msgstr "" msgid "&Backout..." msgstr "" msgid "Revert &All Files..." msgstr "" msgid "Copy &Hash" msgstr "" msgid "E&xport" msgstr "" msgid "E&xport Patch..." msgstr "" msgid "&Email Patch..." msgstr "" msgid "&Archive..." msgstr "" msgid "&Bundle Rev and Descendants..." msgstr "" msgid "Change &Phase to" msgstr "" msgid "&Graft to Local..." msgstr "" msgid "Modi&fy History" msgstr "" msgid "&Unapply Patch" msgstr "" msgid "Import to &MQ" msgstr "" msgid "MQ &Options" msgstr "" msgid "&Rebase..." msgstr "" msgid "&Prune..." msgstr "" msgid "&Strip..." msgstr "" msgid "Post to Re&view Board..." msgstr "" msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "" msgid "Write diff file" msgstr "" msgid "Unable to write diff file" msgstr "" msgid "Unable to compress history" msgstr "" msgid "Selected changeset pair not related" msgstr "" msgid "Visual Diff..." msgstr "" msgid "Export Diff..." msgstr "" msgid "Export Selected..." msgstr "" msgid "Email Selected..." msgstr "" msgid "Copy Selected as Patch" msgstr "" msgid "Archive DAG Range..." msgstr "" msgid "Export DAG Range..." msgstr "" msgid "Email DAG Range..." msgstr "" msgid "Bundle DAG Range..." msgstr "" msgid "Bisect - Good, Bad..." msgstr "" msgid "Bisect - Bad, Good..." msgstr "" msgid "Compress History..." msgstr "" msgid "Rebase..." msgstr "" msgid "Goto common ancestor" msgstr "" msgid "Graft Selected to local..." msgstr "" msgid "&Prune Selected..." msgstr "" msgid "Post Selected to Review Board..." msgstr "" msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "" msgid "Apply onto original parent" msgstr "" msgid "Apply only this patch" msgstr "" msgid "Fold patches..." msgstr "" msgid "Delete patches..." msgstr "" msgid "Rename patch..." msgstr "" msgid "Pull to here..." msgstr "" msgid "Visual diff..." msgstr "" msgid "Export patch" msgstr "" msgid "Patch Files (*.patch)" msgstr "" msgid "Cannot export revision" msgstr "" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" msgid "There is already an existing folder with that same name." msgstr "" msgid "Replace" msgstr "" msgid "Append" msgstr "" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" msgid "What do you want to do?\n" msgstr "" msgid "Replace the existing patch files.\n" msgstr "" msgid "Append the changes to the existing patch files.\n" msgstr "" msgid "Abort the export operation.\n" msgstr "" msgid "Patch files already exist" msgstr "" msgid "Patch exported" msgstr "" #, python-format msgid "" "Revision #%d (%s) was exported to:

                                      %s%s%s" msgstr "" msgid "Patches exported" msgstr "" #, python-format msgid "%d patches were exported to:

                                      %s" msgstr "" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

                                      Are you sure you want to use revert?

                                      (use " "update to checkout another revision)" msgstr "" msgid "Filter b&y" msgstr "" msgid "&Ancestors and Descendants" msgstr "" msgid "A&uthor" msgstr "" msgid "&Branch" msgstr "" msgid "&More Options..." msgstr "" msgid "Unable to merge" msgstr "" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "" msgid "Unable to backout" msgstr "" msgid "Write bundle" msgstr "" msgid "Backwards phase change requested" msgstr "" msgid "Do you really want to make this revision secret?" msgstr "" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" msgid "&Make secret" msgstr "" msgid "&Cancel" msgstr "" msgid "Do you really want to force a backwards phase transition?" msgstr "" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" msgid "&Force" msgstr "" msgid "Cannot import selected revision" msgstr "" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" msgid "Invalid command" msgstr "" msgid "The selected command is empty" msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" msgid "Failed to execute custom TortoiseHg command" msgstr "" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "" msgid "Failed to execute custom command" msgstr "" #, python-format msgid "The command \"%s\" could not be executed." msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" msgid "&Edit Toolbar" msgstr "" msgid "&Refresh" msgstr "" msgid "&Filter Toolbar" msgstr "" #, python-format msgid "TortoiseHg: %s" msgstr "" msgid "S&tatus Bar" msgstr "" #, python-format msgid "Resolve Conflicts - %s" msgstr "" msgid "Local revision information" msgstr "" msgid "Other revision information" msgstr "" msgid "Unresolved conflicts" msgstr "" msgid "Mercurial Re&solve" msgstr "" msgid "Attempt automatic (trivial) merge" msgstr "" msgid "Tool &Resolve" msgstr "" msgid "Merge using selected merge tool" msgstr "" msgid "&Take Local" msgstr "" msgid "Accept the local file version (yours)" msgstr "" msgid "Take &Other" msgstr "" msgid "Accept the other file version (theirs)" msgstr "" msgid "&Mark as Resolved" msgstr "" msgid "Mark this file as resolved" msgstr "" msgid "Diff &Local to Ancestor" msgstr "" msgid "&Diff Other to Ancestor" msgstr "" msgid "Resolved conflicts" msgstr "" msgid "&Edit File" msgstr "" msgid "Edit resolved file" msgstr "" msgid "3-&Way Diff" msgstr "" msgid "Visual three-way diff" msgstr "" msgid "Visual diff between resolved file and first parent" msgstr "" msgid "&Diff to Other" msgstr "" msgid "Visual diff between resolved file and second parent" msgstr "" msgid "Mark as &Unresolved" msgstr "" msgid "Mark this file as unresolved" msgstr "" msgid "Detected merge/diff tools:" msgstr "" msgid "Command output" msgstr "" msgid "Unable to show subrepository files" msgstr "" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" msgid "There are merge conflicts to be resolved" msgstr "" msgid "All conflicts are resolved." msgstr "" msgid "There are no conflicting file merges." msgstr "" msgid "Exit without finishing resolve?" msgstr "" msgid "Unresolved conflicts remain. Are you sure?" msgstr "" msgid "E&xit" msgstr "" msgid "Ext" msgstr "" msgid "Repository" msgstr "" msgid "" msgstr "" msgid "File List Toolbar" msgstr "" msgid "Ma&nifest Mode" msgstr "" msgid "Show all version-controlled files in tree view" msgstr "" msgid "&Flat List" msgstr "" msgid "### filter text ###" msgstr "" msgid "Changed by &This Commit" msgstr "" msgid "Show files changed by this commit" msgstr "" msgid "Compare to &1st Parent" msgstr "" msgid "Compare to &2nd Parent" msgstr "" msgid "Toggle parent to be used as the base revision" msgstr "" msgid "List Optio&ns" msgstr "" #, python-format msgid "%s - Revision Details (%s)" msgstr "" #, python-format msgid "Revert - %s" msgstr "" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "" msgid "Revert all files to this revision" msgstr "" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "" msgid "null revision (i.e. remove file(s))" msgstr "" msgid "Changeset:" msgstr "" msgid "Child:" msgstr "" msgid "Predecessors:" msgstr "" msgid "Successors:" msgstr "" msgid "Head is closed!" msgstr "" msgid "Changesets where username contains string." msgstr "" msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" msgid "Like \"keyword(string)\" but accepts a regex." msgstr "" msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" msgid "The named bookmark or all bookmarks." msgstr "" msgid "The named tag or all tags." msgstr "" msgid "Changeset is tagged." msgstr "" msgid "Changeset is a named branch head." msgstr "" msgid "Changeset is a merge changeset." msgstr "" msgid "Changeset is closed." msgstr "" msgid "" "Changesets within the interval, see help dates" msgstr "" msgid "Greatest common ancestor of the two changesets." msgstr "" msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" msgid "Changesets which modify files matched by pattern." msgstr "" msgid "Changesets which add files matched by pattern." msgstr "" msgid "Changesets which remove files matched by pattern." msgstr "" msgid "Changesets containing files matched by pattern." msgstr "" msgid "All changesets belonging to the branches of changesets in set." msgstr "" msgid "Members of a set with no children in set." msgstr "" msgid "Changesets which are descendants of changesets in set." msgstr "" msgid "Changesets that are ancestors of a changeset in set." msgstr "" msgid "Child changesets of changesets in set." msgstr "" msgid "The set of all parents for all changesets in set." msgstr "" msgid "First parent for all changesets in set, or the working directory." msgstr "" msgid "Second parent for all changesets in set, or the working directory." msgstr "" msgid "Changesets with no parent changeset in set." msgstr "" msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" msgid "Changeset with lowest revision number in set." msgstr "" msgid "Changeset with highest revision number in set." msgstr "" msgid "First n members of a set." msgstr "" msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "" msgid "All changesets, the same as 0:tip." msgstr "" msgid "Revision Set Query" msgstr "" msgid "all revisions converted from subversion" msgstr "" msgid "changeset which represents converted svn revision" msgstr "" msgid "Common sets" msgstr "" msgid "File pattern sets" msgstr "" msgid "Set Ancestry" msgstr "" msgid "Set Logic" msgstr "" msgid "" "help " "revsets" msgstr "" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" #, python-format msgid "thg: unknown command '%s'\n" msgstr "" #, python-format msgid "thg %s: %s\n" msgstr "" #, python-format msgid "thg: %s\n" msgstr "" #, python-format msgid "abort: %s!\n" msgstr "" #, python-format msgid "abort: %s\n" msgstr "" #, python-format msgid "(%s)\n" msgstr "" msgid "option --config may not be abbreviated!" msgstr "" msgid "invalid arguments" msgstr "" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" msgid "repository root directory or symbolic path name" msgstr "" msgid "enable additional output" msgstr "" msgid "suppress output" msgstr "" msgid "display help and exit" msgstr "" msgid "set/override config option (use 'section.name=value')" msgstr "" msgid "enable debugging output" msgstr "" msgid "start debugger" msgstr "" msgid "print command execution profile" msgstr "" msgid "do not fork GUI process" msgstr "" msgid "always fork GUI process" msgstr "" msgid "read file list from file" msgstr "" msgid "read file list from file encoding utf-8" msgstr "" msgid "thg about" msgstr "" msgid "thg add [FILE]..." msgstr "" msgid "revision to annotate" msgstr "" msgid "open to line" msgstr "" msgid "initial search pattern" msgstr "" msgid "thg annotate" msgstr "" #, python-format msgid "invalid line number: %s" msgstr "" msgid "revision to archive" msgstr "" msgid "thg archive" msgstr "" msgid "merge with old dirstate parent after backout" msgstr "" msgid "parent to choose when backing out merge" msgstr "" msgid "revision to backout" msgstr "" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "" msgid "thg bisect" msgstr "" msgid "revision" msgstr "" msgid "thg bookmarks [-r REV] [NAME]" msgstr "" msgid "only one new bookmark name allowed" msgstr "" msgid "the clone will include an empty working copy (only a repository)" msgstr "" msgid "revision, tag or branch to check out" msgstr "" msgid "include the specified changeset" msgstr "" msgid "clone only the specified branch" msgstr "" msgid "use pull protocol to copy metadata" msgstr "" msgid "use uncompressed transfer (fast over LAN)" msgstr "" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "" msgid "record user as committer" msgstr "" msgid "record datecode as commit date" msgstr "" msgid "thg commit [OPTIONS] [FILE]..." msgstr "" msgid "thg debugblockmatcher" msgstr "" msgid "thg debugbugreport [TEXT]" msgstr "" msgid "thg debugconsole" msgstr "" msgid "thg debuglighthg" msgstr "" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "" msgid "no command specified" msgstr "" msgid "thg drag_copy SOURCE... DEST" msgstr "" msgid "thg drag_move SOURCE... DEST" msgstr "" msgid "a revision to send" msgstr "" msgid "thg email [REVS]" msgstr "" msgid "use only one form to specify the revision" msgstr "" msgid "select the specified revision" msgstr "" msgid "side-by-side comparison of revisions" msgstr "" msgid "thg filelog [OPTION]... FILE" msgstr "" msgid "requires a single filename" msgstr "" msgid "thg forget [FILE]..." msgstr "" msgid "revisions to graft" msgstr "" msgid "thg graft [-r] REV..." msgstr "" msgid "You must provide revisions to graft" msgstr "" msgid "ignore case during search" msgstr "" msgid "thg grep" msgstr "" msgid "thg guess" msgstr "" msgid "thg help [COMMAND]" msgstr "" msgid "global options:" msgstr "" msgid "use \"thg help\" for the full list of commands" msgstr "" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "" msgid "" "list of commands:\n" "\n" msgstr "" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" msgid "(no help text available)" msgstr "" msgid "options:\n" msgstr "" msgid "no commands defined\n" msgstr "" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "" msgid "" "basic commands:\n" "\n" msgstr "" #, python-format msgid " (default: %s)" msgstr "" msgid "thg hgignore [FILE]" msgstr "" msgid "import to the patch queue (MQ)" msgstr "" msgid "thg import [OPTION] [SOURCE]..." msgstr "" msgid "thg init [DEST]" msgstr "" msgid "thg lock" msgstr "" msgid "search for a given text or revset" msgstr "" msgid "(DEPRECATED)" msgstr "" msgid "open a new workbench window" msgstr "" msgid "thg log [OPTIONS] [FILE]" msgstr "" msgid "cannot specify both -k/--query and filenames" msgstr "" msgid "revision to display" msgstr "" msgid "thg manifest [-r REV] [FILE]" msgstr "" msgid "revision to merge" msgstr "" msgid "thg merge [[-r] REV]" msgstr "" msgid "Merge revision not specified or not found" msgstr "" msgid "a revision to post" msgstr "" msgid "thg postreview [-r] REV..." msgstr "" msgid "reviewboard extension not enabled" msgstr "" #, python-format msgid "see %(url)s" msgstr "" msgid "no revisions specified" msgstr "" msgid "revisions to prune" msgstr "" msgid "thg prune [-r] REV..." msgstr "" msgid "thg purge" msgstr "" msgid "keep original changesets" msgstr "" msgid "keep original branch names" msgstr "" msgid "rebase from the specified changeset" msgstr "" msgid "rebase onto the specified changeset" msgstr "" msgid "thg rebase -s REV -d REV [--keep]" msgstr "" msgid "Rebase already in progress" msgstr "" msgid "Resuming rebase already in progress" msgstr "" msgid "You must provide source and dest arguments" msgstr "" msgid "thg rejects [FILE]" msgstr "" msgid "You must provide the path to a file" msgstr "" msgid "thg remove [FILE]..." msgstr "" msgid "thg rename [SOURCE] [DEST]" msgstr "" msgid "field to give initial focus" msgstr "" msgid "thg repoconfig" msgstr "" msgid "thg resolve" msgstr "" msgid "the revision to show" msgstr "" msgid "thg revdetails [-r REV]" msgstr "" msgid "thg revert [FILE]..." msgstr "" msgid "revision to update" msgstr "" msgid "thg rupdate [[-r] REV]" msgstr "" msgid "name of the hgweb config file (serve more than one repository)" msgstr "" msgid "name of the hgweb config file (DEPRECATED)" msgstr "" msgid "thg serve [--web-conf FILE]" msgstr "" msgid "thg shellconfig" msgstr "" msgid "thg shelve" msgstr "" msgid "sign even if the sigfile is modified" msgstr "" msgid "make the signature local" msgstr "" msgid "the key id to sign with" msgstr "" msgid "do not commit the sigfile after signing" msgstr "" msgid "use as commit message" msgstr "" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "" msgid "Please enable the Gpg extension first." msgstr "" msgid "show files without changes" msgstr "" msgid "show ignored files" msgstr "" msgid "thg status [OPTIONS] [FILE]" msgstr "" msgid "discard uncommitted changes (no backup)" msgstr "" msgid "do not back up stripped revisions" msgstr "" msgid "do not modify working copy during strip" msgstr "" msgid "revision to strip" msgstr "" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "" msgid "open the bookmark sync window" msgstr "" msgid "thg sync [OPTION]... [PEER]" msgstr "" msgid "replace existing tag" msgstr "" msgid "make the tag local" msgstr "" msgid "revision to tag" msgstr "" msgid "remove a tag" msgstr "" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "" msgid "wait until the second ticks over" msgstr "" msgid "notify the shell for paths given" msgstr "" msgid "remove the status cache" msgstr "" msgid "show the contents of the status cache (no update)" msgstr "" msgid "update all repos in current dir" msgstr "" msgid "thg thgstatus [OPTION]" msgstr "" msgid "thg topics [-r REV] [NAME]" msgstr "" msgid "Please enable the Topic extension first." msgstr "" msgid "only one new topic name allowed" msgstr "" msgid "thg update [-C] [[-r] REV]" msgstr "" msgid "thg userconfig" msgstr "" msgid "changeset to view in diff tool" msgstr "" msgid "revisions to view in diff tool" msgstr "" msgid "bundle file to preview" msgstr "" msgid "launch visual diff tool" msgstr "" msgid "print license" msgstr "" msgid "thg version [OPTION]" msgstr "" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "" msgid "Location:" msgstr "" msgid "Update to:" msgstr "" msgid "Options:" msgstr "" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "" msgid "Perform a push before updating (-p/--push)" msgstr "" msgid "Allow pushing new branches (--new-branch)" msgstr "" msgid "Force push to remote location (-f/--force)" msgstr "" msgid "remove working directory" msgstr "" msgid "unknown revision!" msgstr "" #, python-format msgid "Remote Update - %s" msgstr "" msgid "&Update" msgstr "" msgid "Log" msgstr "" msgid "Repositories" msgstr "" #, python-format msgid "Running at %s" msgstr "" msgid "Stopped" msgstr "" msgid "TortoiseHg Web Server" msgstr "" msgid "Web Server" msgstr "" msgid "Port:" msgstr "" msgid "Status:" msgstr "" msgid "Start" msgstr "" msgid "Settings" msgstr "" msgid "" msgstr "" msgid "&True" msgstr "" msgid "&False" msgstr "" msgid "&Unspecified" msgstr "" #, python-format msgid "%dpt" msgstr "" msgid "Bold" msgstr "" msgid "Italic" msgstr "" msgid "Strike" msgstr "" msgid "Underline" msgstr "" msgid "&Set..." msgstr "" msgid "&Clear" msgstr "" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "" msgid "&Browse..." msgstr "" msgid "UI Language" msgstr "" msgid "Specify your preferred user interface language (restart needed)" msgstr "" msgid "Three-way Merge Tool" msgstr "" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" msgid "Visual Diff Tool" msgstr "" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" msgid "Visual Editor" msgstr "" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" msgid "CLI Editor" msgstr "" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" msgid "Shell" msgstr "" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
                                      Default, Windows: cmd.exe /" "K title %(reponame)s
                                      Default, OS X: not set
                                      Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" msgid "Immediate Operations" msgstr "" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" msgid "Tab Width" msgstr "" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" msgid "Force Repo Tab" msgstr "" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "" msgid "Monitor Repo Changes" msgstr "" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" msgid "Max Diff Size" msgstr "" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" msgid "Fork GUI" msgstr "" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" msgid "Full Path Title" msgstr "" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" msgid "Auto-resolve merges" msgstr "" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" msgid "New Repo Skeleton" msgstr "" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "" msgid "Single Workbench Window" msgstr "" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" msgid "Default widget" msgstr "" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" msgid "" "Open new tabs next\n" "to the current tab" msgstr "" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" msgid "Author Coloring" msgstr "" msgid "Color changesets by author name. Default: False" msgstr "" msgid "Full Authorname" msgstr "" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" msgid "Task Tabs" msgstr "" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" msgid "Task Toolbar Order" msgstr "" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
                                      Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
                                      Valid names are: log commit sync grep and " "pbranch.
                                      Default: log commit grep pbranch | sync" msgstr "" msgid "Long Summary" msgstr "" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" msgid "Log Batch Size" msgstr "" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "" msgid "Dead Branches" msgstr "" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" msgid "Branch Colors" msgstr "" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" msgid "Hide Tags" msgstr "" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" msgid "Activate Bookmarks" msgstr "" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

                                      • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
                                      • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
                                      • never: Never show any prompt to " "activate any bookmarks.

                                      Default: prompt" msgstr "" msgid "Show Family Line" msgstr "" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

                                      Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" msgid "Use optimized graph layouter" msgstr "" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

                                      Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" msgctxt "config item" msgid "Commit" msgstr "" msgid "Username" msgstr "" msgid "" "Name associated with commits. The common format is:
                                      Full Name <" "email@example.com>" msgstr "" msgid "Ask Username" msgstr "" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" msgid "Summary Line Length" msgstr "" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" msgid "Close After Commit" msgstr "" msgid "Close the commit tool after every successful commit. Default: False" msgstr "" msgid "Push After Commit" msgstr "" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" msgid "Auto Commit List" msgstr "" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" msgid "Auto Exclude List" msgstr "" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" msgid "English Messages" msgstr "" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" msgid "New Commit Phase" msgstr "" msgid "The phase of new commits. Default: draft" msgstr "" msgid "Secret MQ Patches" msgstr "" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "" msgid "Check Subrepo Phase" msgstr "" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" msgid "Monitor working
                                      directory changes" msgstr "" msgid "" "Select when the working directory status list will be refreshed:
                                      - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
                                      TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
                                      - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
                                      - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
                                      Default: auto" msgstr "" msgid "Confirm adding unknown files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Confirm deleting files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Sync" msgstr "" msgid "After Pull Operation" msgstr "" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" msgid "Default Push" msgstr "" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

                                      • all: The default. Push all changes in all " "branches.
                                      • branch: Push all changes in the current branch.
                                      • revision: Push the changes in the current branch up to the current revision.

                                      Default: all" msgstr "" msgid "Confirm Push" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" msgid "Target Combo" msgstr "" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

                                      • auto: The default. Show the combo if more than one target " "configured.
                                      • always: Always show the combo.

                                      Default: auto" msgstr "" msgid "SSH Command" msgstr "" msgid "" "Command to use for SSH connections.

                                      Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" msgid "Subrepository Features:" msgstr "" msgid "Allow Hg Subrepos" msgstr "" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" msgid "Allow Git Subrepos" msgstr "" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

                                      See the security note before enabling Git " "subrepos." msgstr "" msgid "Allow SVN Subrepos" msgstr "" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

                                      See the security note before enabling " "Subversion subrepos." msgstr "" msgid "Server" msgstr "" msgid "Repository Details:" msgstr "" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" msgid "Encoding" msgstr "" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" msgid "'Publishing' repository" msgstr "" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" msgid "Web Server:" msgstr "" msgid "Textual description of the repository's purpose or contents." msgstr "" msgid "Contact" msgstr "" msgid "Name or email address of the person in charge of the repository." msgstr "" msgid "Style" msgstr "" msgid "Which template map style to use" msgstr "" msgid "Archive Formats" msgstr "" msgid "Comma separated list of archive formats allowed for downloading" msgstr "" msgid "Port" msgstr "" msgid "Port to listen on" msgstr "" msgid "Push Requires SSL" msgstr "" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" msgid "Stripes" msgstr "" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" msgid "Max Files" msgstr "" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "" msgid "Max Changes" msgstr "" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "" msgid "Allow Push" msgstr "" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" msgid "Deny Push" msgstr "" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" msgid "Proxy" msgstr "" msgid "Host" msgstr "" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "" msgid "Bypass List" msgstr "" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "" msgid "Optional. User name to authenticate with at the proxy server" msgstr "" msgid "Password" msgstr "" msgid "Optional. Password to authenticate with at the proxy server" msgstr "" msgid "From" msgstr "" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "" msgid "To" msgstr "" msgid "Comma-separated list of recipient email addresses" msgstr "" msgid "Cc" msgstr "" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "" msgid "Bcc" msgstr "" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "" msgid "method" msgstr "" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" msgid "SMTP Host" msgstr "" msgid "Host name of mail server" msgstr "" msgid "SMTP Port" msgstr "" msgid "Port to connect to on mail server. Default: 25" msgstr "" msgid "SMTP TLS" msgstr "" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "" msgid "SMTP Username" msgstr "" msgid "Username to authenticate to mail server with" msgstr "" msgid "SMTP Password" msgstr "" msgid "Password to authenticate to mail server with" msgstr "" msgid "Local Hostname" msgstr "" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "" msgid "Diff and Annotate" msgstr "" msgid "Patch EOL" msgstr "" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" msgid "Git Format" msgstr "" msgid "Use git extended diff header format. Default: False" msgstr "" msgid "MQ Git Format" msgstr "" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" msgid "No Dates" msgstr "" msgid "Do not include modification dates in diff headers. Default: False" msgstr "" msgid "Show Function" msgstr "" msgid "Show which function each change is in. Default: False" msgstr "" msgid "Ignore White Space" msgstr "" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "" msgid "Ignore WS Amount" msgstr "" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "" msgid "Ignore Blank Lines" msgstr "" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "" msgid "Annotate:" msgstr "" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "" msgid "Fonts" msgstr "" msgid "Message Font" msgstr "" msgid "Font used to display commit messages. Default: monospace 10" msgstr "" msgid "Diff Font" msgstr "" msgid "Font used to display text differences. Default: monospace 10" msgstr "" msgid "ChangeLog Font" msgstr "" msgid "Font used to display changelog data. Default: monospace 10" msgstr "" msgid "Output Font" msgstr "" msgid "Font used to display output messages. Default: sans 8" msgstr "" msgid "Extensions" msgstr "" msgid "Tools" msgstr "" msgid "Hooks" msgstr "" msgid "Issue Tracking" msgstr "" msgid "Issue Regex" msgstr "" msgid "Defines the regex to match when picking up issue numbers." msgstr "" msgid "Issue Link" msgstr "" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" msgid "Inline Tags" msgstr "" msgid "Show tags at start of commit message." msgstr "" msgid "Mandatory Issue Reference" msgstr "" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" msgid "Issue Tracker Plugin" msgstr "" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" msgid "Configure Issue Tracker" msgstr "" msgid "Configure the selected COM Bug Tracker plugin." msgstr "" msgid "Issue Tracker Trigger" msgstr "" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

                                      • never: Do not update the Issue Tracker " "state automatically.
                                      • commit: Update the Issue Tracker state after " "a successful commit.

                                      Default: never" msgstr "" msgid "Changeset Link" msgstr "" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
                                      The template string " "uses a normal mercurial template syntax, such as:

                                      • {node|short} : replaced by " "the 12 digit revision id.
                                      • {rev} : replaced by the revision number." "
                                      • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
                                      For example, in order to " "link to bitbucket commit pages you can set this to:
                                      https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
                                      You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
                                      https://github.com/torvalds/" "linux/commit/{gitnode}
                                      https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
                                      " msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "" msgid "User name to authenticate with review board" msgstr "" msgid "Password to authenticate with review board" msgstr "" msgid "Server Repository ID" msgstr "" msgid "The default repository id for this repo on the review board server" msgstr "" msgid "Target Groups" msgstr "" msgid "A comma separated list of target groups" msgstr "" msgid "Target People" msgstr "" msgid "A comma separated list of target people" msgstr "" msgid "Kiln Bfiles" msgstr "" msgid "Patterns" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" msgid "Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" msgid "System Cache" msgstr "" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "" msgid "Simplelock" msgstr "" msgid "Lock Clone" msgstr "" msgid "" "Location of local clone of organizational lock repository.

                                      This repository " "must contain a \"locked\" text file" msgstr "" msgid "Largefiles" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" msgid "Minimum Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" msgid "User Cache" msgstr "" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" msgid "Projrc" msgstr "" msgid "Require confirmation" msgstr "" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

                                      • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
                                      • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
                                      • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
                                      " msgstr "" msgid "Servers" msgstr "" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" msgid "Include" msgstr "" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" msgid "Exclude" msgstr "" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" msgid "Update on incoming" msgstr "" msgid "" "Let the user update the projrc on incoming:
                                      • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
                                      • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
                                      • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                                        Default: never" msgstr "" msgid "GnuPG" msgstr "" msgid "Specify the path to GPG. Default: gpg" msgstr "" msgid "Key ID" msgstr "" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "" msgid "TortoiseHg Settings" msgstr "" msgid "Iniparse package not found" msgstr "" msgid "Can't change settings without iniparse package - view is readonly." msgstr "" #, python-format msgid "%s's global settings" msgstr "" msgid "No repository found" msgstr "" msgid "no repo at " msgstr "" #, python-format msgid "%s project settings (.hg/projrc)" msgstr "" #, python-format msgid "%s repository settings" msgstr "" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "" msgid "Apply changes before exit?" msgstr "" msgid "&No (discard changes)" msgstr "" msgid "Reload" msgstr "" msgid "Settings File:" msgstr "" msgid "Confirm Save" msgstr "" msgid "Save changes before editing?" msgstr "" msgid "&Save" msgstr "" msgid "Confirm Reload" msgstr "" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" msgid "Unable to create a Mercurial.ini file" msgstr "" msgid "Insufficient access rights, reverting to read-only mode." msgstr "" msgid "Context Menu" msgstr "" msgid "Top menu items:" msgstr "" msgid "Sub menu items:" msgstr "" msgid "Menu Behavior" msgstr "" msgid "Hide context menu outside repositories" msgstr "" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" msgid "Icons" msgstr "" msgid "Overlays" msgstr "" msgid "Enabled overlays" msgstr "" msgid "Local disks only" msgstr "" msgid "Enabled Overlay Handlers" msgstr "" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "" msgid "Added" msgstr "" msgid "Locked*" msgstr "" msgid "Ignored*" msgstr "" msgid "Unversioned" msgstr "" msgid "Readonly*" msgstr "" msgid "Deleted*" msgstr "" msgid "*: not used by TortoiseHg" msgstr "" msgid "Taskbar" msgstr "" msgid "Show Icon" msgstr "" msgid "Highlight Icon" msgstr "" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" msgid "Explorer Extension Settings - TortoiseHg" msgstr "" msgid "Clear" msgstr "" msgid "Clear the current shelf file" msgstr "" msgid "Delete the current shelf file" msgstr "" msgid "Left Toolbar" msgstr "" msgid "Delete selected chunks" msgstr "" msgid "Move all files right" msgstr "" msgid "Move selected file right" msgstr "" msgid "Edit file" msgstr "" msgid "Move selected chunks right" msgstr "" msgid "Refresh Toolbar" msgstr "" msgid "Refresh" msgstr "" msgid "New Shelf" msgstr "" msgid "Right Toolbar" msgstr "" msgid "Move selected chunks left" msgstr "" msgid "Move selected file left" msgstr "" msgid "Move all files left" msgstr "" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "" msgid "Delete selected chunks from working copy?" msgstr "" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "" msgid "Are you sure?" msgstr "" msgid "TortoiseHg New Shelf Name" msgstr "" msgid "Specify name of new shelf" msgstr "" msgid "Bad filename" msgstr "" #, python-format msgid "A shelf name cannot contain %s" msgstr "" msgid "File already exists" msgstr "" msgid "A shelf file of that name already exists" msgstr "" msgid "New shelf created" msgstr "" #, python-format msgid "Delete shelf file %s?" msgstr "" msgid "Shelf deleted" msgstr "" msgid "Revert all working copy changes?" msgstr "" #, python-format msgid "Clear contents of shelf file %s?" msgstr "" msgid "Shelf cleared" msgstr "" #, python-format msgid "Shelf: %s" msgstr "" #, python-format msgid "Patch: %s" msgstr "" msgid "Key:" msgstr "" msgid "Local sign" msgstr "" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "" msgid "No commit" msgstr "" msgid "Use custom commit message:" msgstr "" msgid "&Sign" msgstr "" #, python-format msgid "Sign - %s" msgstr "" msgid "Signature has been added" msgstr "" msgid "Repository command still running" msgstr "" msgid "Filter:" msgstr "" msgid "Check all files" msgstr "" msgid "Uncheck all files" msgstr "" msgid "Status File List Toolbar" msgstr "" msgid "Remove filter, show root" msgstr "" #, python-format msgid "%s - status (selection filtered)" msgstr "" #, python-format msgid "%s - status" msgstr "" msgid "Check" msgstr "" msgid "Uncheck" msgstr "" msgid "status" msgstr "olek" msgid "Failed to refresh" msgstr "" msgid "No appropriate files" msgstr "" msgid "No files found for this operation" msgstr "" msgid "Stat" msgstr "" msgid "M" msgstr "" msgid "Filename" msgstr "" msgid "Size (KB)" msgstr "" #, python-format msgid "Checked count: %d" msgstr "" msgid ", resolved merge" msgstr "" msgid ", unresolved merge" msgstr "" #, python-format msgid "%s is modified" msgstr "" msgid "modified" msgstr "" #, python-format msgid "%s is added" msgstr "" msgid "added" msgstr "" #, python-format msgid "%s is removed" msgstr "" msgid "removed" msgstr "" #, python-format msgid "%s is not tracked (unknown)" msgstr "" msgid "unknown" msgstr "" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "" msgid "missing" msgstr "" #, python-format msgid "%s is ignored" msgstr "" msgid "ignored" msgstr "" #, python-format msgid "%s is not modified (clean)" msgstr "" msgid "clean" msgstr "" #, python-format msgid "%s is a dirty subrepo" msgstr "" msgid "subrepo" msgstr "" msgid "Check for incoming changes from selected URL" msgstr "" msgid "Pull incoming changes from selected URL" msgstr "" msgid "Detect outgoing changes to selected URL" msgstr "" msgid "Push outgoing changes to selected URL" msgstr "" msgid "Sync Bookmarks" msgstr "" msgid "Email outgoing changesets for remote repository" msgstr "" msgid "Manage pending perforce changelists" msgstr "" msgid "Unbundle" msgstr "" msgid "Selected Options:" msgstr "" msgid "Path Edit Toolbar" msgstr "" msgid "Security" msgstr "" msgid "Manage HTTPS connection security and user authentication" msgstr "" msgid "Save" msgstr "" msgid "Save current URL under an alias" msgstr "" msgid "Paths in Repository Settings:" msgstr "" msgid "Related Paths:" msgstr "" msgid "branch: " msgstr "" msgid "bookmark: " msgstr "" #, python-format msgid "rev: %d (%s)" msgstr "" msgid "Post Pull: " msgstr "" msgid "&Edit..." msgstr "" msgid "&Remove..." msgstr "" msgid "Repository not local" msgstr "" msgid "A terminal shell cannot be opened for remote" msgstr "" msgid "Confirm path delete" msgstr "" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "" msgid "Select repository" msgstr "" msgid "No host specified" msgstr "" msgid "Please set a valid URL to continue." msgstr "" msgid "No remote repository URL or path set" msgstr "" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

                                        Please type and save a remote repository path on the " "Sync widget." msgstr "" msgid "Redundant authentication info" msgstr "" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" msgid "sync command already running" msgstr "" #, python-format msgid "Getting incoming changesets from %s..." msgstr "" #, python-format msgid "Found incoming changesets from %s" msgstr "" #, python-format msgid "No incoming changesets from %s" msgstr "" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "" #, python-format msgid "Pulling from %s..." msgstr "" #, python-format msgid "Pull from %s completed" msgstr "" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "" msgid "Merge caused file conflicts" msgstr "" msgid "File conflicts need to be resolved" msgstr "" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "" #, python-format msgid "%d outgoing changesets to %s" msgstr "" #, python-format msgid "No outgoing changesets to %s" msgstr "" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "" msgid "Perforce pending..." msgstr "" #, python-format msgid "%s (submitted)" msgstr "" #, python-format msgid "%s (pending)" msgstr "" msgid "Unable to parse p4pending output" msgstr "" #, python-format msgid "%d pending changelists found" msgstr "" msgid "No pending Perforce changelists" msgstr "" msgid "Aborted p4pending" msgstr "" msgid "Unable to determine pending changesets" msgstr "" msgid "Confirm Push to remote Repository" msgstr "" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" #, python-format msgid "Push to %s aborted" msgstr "" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" #, python-format msgid "Pushing to %s..." msgstr "" #, python-format msgid "Push to %s completed" msgstr "" #, python-format msgid "Push to %s aborted, ret %d" msgstr "" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" msgid "Determining outgoing changesets to email..." msgstr "" msgid "No outgoing changesets" msgstr "" #, python-format msgid "Outgoing aborted, ret %d" msgstr "" msgid "Select bundle file" msgstr "" msgid "Bundle files (*.hg)" msgstr "" msgid "Unable to remove URL" msgstr "" msgid "Post Pull Behavior" msgstr "" msgid "Select post-pull operation for this repository" msgstr "" msgid "None - simply pull changesets" msgstr "" msgid "Update - pull, then try to update" msgstr "" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "" msgid "Rebase - rebase local commits above pulled changes" msgstr "" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "" msgid "Launch settings tool..." msgstr "" msgid "Unable to save post pull operation" msgstr "" msgid "Save Path" msgstr "" msgid "Alias" msgstr "" msgid "URL" msgstr "" msgid "Remove authentication data from URL" msgstr "" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" msgid "Update subrepo paths" msgstr "" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" msgid "Unable to save an URL" msgstr "" msgid "Confirm URL replace" msgstr "" #, python-format msgid "%s already exists, replace URL?" msgstr "" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

                                        %s

                                        Replace it with the " "following URL?:

                                        %s" msgstr "" msgid "Security: " msgstr "" #, python-format msgid "Host: %s" msgstr "" msgid "Secure HTTPS Connection" msgstr "" msgid "Verify with Certificate Authority certificates (best)" msgstr "" msgid "Verify with stored host fingerprint (good)" msgstr "" msgid "No host validation, but still encrypted (bad)" msgstr "" msgid "### host certificate fingerprint ###" msgstr "" msgid "Query" msgstr "" msgid "TLS 1.0" msgstr "" msgid "TLS 1.1" msgstr "" msgid "TLS 1.2" msgstr "" msgid "Minimum Protocol" msgstr "" msgid "User Authentication" msgstr "" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Key" msgstr "" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Chain" msgstr "" msgid "Certificate Query Error" msgstr "" msgid "Select User Certificate Key File" msgstr "" msgid "PEM files (*.pem *.key)" msgstr "" msgid "Select User Certificate Chain File" msgstr "" msgid "PEM files (*.pem *.crt *.cer)" msgstr "" msgid "Unable to save authentication" msgstr "" #, python-format msgid "%s - sync options" msgstr "" msgid "Allow push of a new branch (--new-branch)" msgstr "" msgid "Force push or pull (override safety checks, --force)" msgstr "" msgid "Temporarily disable configured HTTP proxy" msgstr "" msgid "Emit debugging output (--debug)" msgstr "" msgid "Work on patch queue (--mq)" msgstr "" #, python-format msgid "Tag - %s" msgstr "" msgid "Tag:" msgstr "" msgid "Tagged:" msgstr "" msgid "Local tag" msgstr "" msgid "Replace existing tag (-f/--force)" msgstr "" msgid "Use English commit message" msgstr "" msgid "local" msgstr "" msgid "Move" msgstr "Liiguta" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "" #, python-format msgid "Added tag %s for changeset %s" msgstr "" #, python-format msgid "Tag '%s' has been moved" msgstr "" #, python-format msgid "Tag '%s' has been added" msgstr "" #, python-format msgid "Removed tag %s" msgstr "" #, python-format msgid "Tag '%s' has been removed" msgstr "" msgid "Patch files (*.diff *.patch)" msgstr "" #, python-format msgid "Import - %s" msgstr "" msgid "Browse Directory..." msgstr "" msgid "Import from Clipboard" msgstr "" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "" msgid "Preview:" msgstr "" msgid "Shelf" msgstr "" msgid "Checking working directory status..." msgstr "" msgid "&Import" msgstr "" msgid "Working directory is not clean! View changes..." msgstr "" msgid "Select patches" msgstr "" msgid "Select Directory containing patches" msgstr "" #, python-format msgid "%s patches" msgstr "" #, python-format msgid "%s will be imported to " msgstr "" msgid "Nothing to import" msgstr "" msgid "Strip:" msgstr "" msgid "Discard local changes, no backup (-f/--force)" msgstr "" msgid "No backup (-n/--nobackup)" msgstr "" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "" msgstr[1] "" msgid "Unknown revision!" msgstr "" msgid "Detected uncommitted local changes." msgstr "" msgid "Do you want to keep them or discard them?" msgstr "" msgid "&Keep (--keep)" msgstr "" msgid "&Discard (--force)" msgstr "" msgid "Confirm Strip" msgstr "" #, python-format msgid "Strip - %s" msgstr "" msgid "&Strip" msgstr "" msgid "Topic:" msgstr "" msgid "&Rename" msgstr "" #, python-format msgid "Topic - %s" msgstr "" #, python-format msgid "A topic named \"%s\" already exists" msgstr "" #, python-format msgid "Topic '%s' has been added" msgstr "" #, python-format msgid "Topic '%s' does not exist" msgstr "" #, python-format msgid "Topic '%s' has been removed" msgstr "" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "" msgid "Parent 1:" msgstr "" msgid "Parent 2:" msgstr "" msgid "Pull subrepos from:" msgstr "" msgid "List updated files (--verbose)" msgstr "" msgid "Discard local changes, no backup (-C/--clean)" msgstr "" msgid "Always merge (when possible)" msgstr "" msgid "(same as parent)" msgstr "" msgid "Activate bookmark?" msgstr "" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

                                        Do " "you want to activate it?
                                        You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

                                        Select " "the bookmark that you want to activate and click OK.

                                        Click " "Cancel if you don't want to activate any of them.

                                        You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                        " msgstr "" msgid "Deactivate current bookmark?" msgstr "" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" msgid "Discard - discard local changes, no backup" msgstr "" msgid "&Shelve" msgstr "" msgid "Shelve - move local changes to a patch" msgstr "" msgid "Merge - allow to merge with local changes" msgstr "" msgid "Confirm Update" msgstr "" #, python-format msgid "Update - %s" msgstr "" msgid "[non-existant]" msgstr "" msgid "Tool launch failure" msgstr "" #, python-format msgid "%s : %s" msgstr "" msgid "No diff tool found" msgstr "" msgid "No visual diff tools were detected" msgstr "" msgid "[working copy]" msgstr "" msgid "[original]" msgstr "" msgid "Unable to find changeset" msgstr "" msgid "You likely need to refresh this application" msgstr "" msgid "No file changes" msgstr "" msgid "There are no file changes to view" msgstr "" msgid "working changes" msgstr "" #, python-format msgid "changeset %d:%s" msgstr "" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "" msgid "Visual Diffs - " msgstr "" msgid " filtered" msgstr "" msgid "Temporary files are removed when this dialog is closed" msgstr "" msgid "Select Tool:" msgstr "" msgid "Dir diff to p1" msgstr "" msgid "Dir diff to p2" msgstr "" msgid "3-way dir diff" msgstr "" msgid "Directory diff" msgstr "" msgid "Confirm Discard" msgstr "" msgid "Discard outstanding changes to working directory?" msgstr "" msgid "Config files (*.conf *.config *.ini)" msgstr "" msgid "Open hgweb config" msgstr "" msgid "Save hgweb config" msgstr "" msgid "Path:" msgstr "" msgid "Local Path:" msgstr "" msgid "Select Repository" msgstr "" msgid "Add Path to Serve" msgstr "" msgid "Edit Path to Serve" msgstr "" msgid "Local Path" msgstr "" msgid "Webconf" msgstr "" msgid "Config File:" msgstr "" msgid "Open" msgstr "" msgid "New &Workbench" msgstr "" msgid "&New Repository..." msgstr "" msgid "Clon&e Repository..." msgstr "" msgid "&Open Repository..." msgstr "" msgid "&File" msgstr "" msgid "&View" msgstr "" msgid "&Repository" msgstr "" msgid "&Help" msgstr "" msgid "&Dock Toolbar" msgstr "" msgid "&Task Toolbar" msgstr "" msgid "&Custom Toolbar" msgstr "" msgid "S&ync Toolbar" msgstr "" msgid "&Close Repository" msgstr "" msgid "Sh&ow Repository Registry" msgstr "" msgid "Show &Patch Queue" msgstr "" msgid "Show Conso&le" msgstr "" msgid "Place Console in Doc&k Area" msgstr "" msgid "R&epository Registry Options" msgstr "" msgid "Save Open Repositories on E&xit" msgstr "" msgid "Sa&ve Current Sync Paths on Exit" msgstr "" msgid "Show Tas&k Tab" msgstr "" msgid "&Commit" msgstr "" msgid "&Patch Branch" msgstr "" msgid "Revision &Details" msgstr "" msgid "&Search" msgstr "" msgid "S&ynchronize" msgstr "" msgid "Refresh current repository" msgstr "" msgid "Refresh &Task Tab" msgstr "" msgid "Refresh only the current task tab" msgstr "" msgid "Load &All Revisions" msgstr "" msgid "Load all revisions into graph" msgstr "" msgid "Go to current revision" msgstr "" msgid "&Goto Revision..." msgstr "" msgid "Go to a specific revision" msgstr "" msgid "Filter graph with revision sets or branches" msgstr "" msgid "&Workbench Toolbars" msgstr "" msgid "&Lock File..." msgstr "" msgid "Lock or unlock files" msgstr "" msgid "Update working directory or switch revisions" msgstr "" msgid "&Shelve..." msgstr "" msgid "&Import Patches..." msgstr "" msgid "U&nbundle..." msgstr "" msgid "&Merge..." msgstr "" msgid "Merge with the other head of the current branch" msgstr "" msgid "&Resolve..." msgstr "" msgid "R&ollback/Undo..." msgstr "" msgid "&Purge..." msgstr "" msgid "&Bisect..." msgstr "" msgid "&Verify" msgstr "" msgid "Re&cover" msgstr "" msgid "&Web Server" msgstr "" msgid "E&xplorer Help" msgstr "" msgid "&Readme" msgstr "" msgid "About &Qt" msgstr "" msgid "&About TortoiseHg" msgstr "" msgid "&Incoming" msgstr "" msgid "&Pull" msgstr "" msgid "&Outgoing" msgstr "" msgid "P&ush" msgstr "" msgid "&Sync Bookmarks..." msgstr "" #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" msgid "Check for incoming changes" msgstr "" msgid "Pull incoming changes" msgstr "" msgid "Detect outgoing changes" msgstr "" msgid "Push outgoing changes" msgstr "" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" #, python-format msgid "Execute custom tool '%s'" msgstr "" msgid "Custom Toolbar &Settings" msgstr "" msgid "TortoiseHg Workbench" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "" msgid "Goto revision" msgstr "" msgid "Enter revision identifier" msgstr "" msgid "Select repository directory to open" msgstr "" msgid "README not configured" msgstr "" msgid "" "A README file is not configured for the current repository.

                                        To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" msgid "Issue Tracker Plugin Error" msgstr "" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "" msgid "This error will not be shown again until you restart the workbench" msgstr "" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "" msgid "Error executing \"commit finished\" trigger" msgstr "" msgid "Cannot open Plugin Options dialog" msgstr "" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "" msgid "[--insecure] [SOURCE]" msgstr "" #, python-format msgid "unsupported URL: %s" msgstr "" #, python-format msgid "%s certificate error: no certificate received" msgstr "" msgid "move after the specified patch" msgstr "" msgid "[--after PATCH] PATCH..." msgstr "" msgid "unknown patch to move specified" msgstr "" msgid "invalid patch position specified" msgstr "" msgid "cannot move applied patches" msgstr "" #, python-format msgid "patch %s not in series" msgstr "" msgid "cannot move into applied patches" msgstr "" msgid "abort: " msgstr "" msgid "hint: " msgstr "" #, python-format msgid "HTTP Error: %d (%s)" msgstr "" #, python-format msgid "URLError: %s" msgstr "" msgid "SSL: Server certificate verify failed" msgstr "" #, python-format msgid "SSL: unknown error %s:%s" msgstr "" #, python-format msgid "SSL error: %s" msgstr "" msgid "hgsubversion packaged with thg" msgstr "" msgid "hggit packaged with thg" msgstr "" msgid "inotify is not supported on this platform" msgstr "" msgid "eol is incompatible with win32text" msgstr "" msgid "win32text is incompatible with eol" msgstr "" msgid "hgsubversion is incompatible with perfarce" msgstr "" msgid "perfarce is incompatible with hgsubversion" msgstr "" msgid "Workbench custom toolbar" msgstr "" msgid "Revision details context menu" msgstr "" msgid "Pair selection context menu" msgstr "" msgid "Multiple selection context menu" msgstr "" msgid "Commit context menu" msgstr "" msgid "File context menu (on manifest and revision details)" msgstr "" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" msgid "in the future" msgstr "" msgid "now" msgstr "" #, python-format msgid "command parse error: %s" msgstr "" #, python-format msgid "no matches found: %s" msgstr "" msgid "Commit..." msgstr "" msgid "Commit changes in repository" msgstr "" msgid "Create Repository Here" msgstr "" msgid "Create a new repository" msgstr "" msgid "Clone..." msgstr "" msgid "Create clone here from source" msgstr "" msgid "File Status" msgstr "" msgid "Repository status & changes" msgstr "" msgid "Add Files..." msgstr "" msgid "Add files to version control" msgstr "" msgid "Revert Files..." msgstr "" msgid "Revert file changes" msgstr "" msgid "Forget Files..." msgstr "" msgid "Remove files from version control" msgstr "" msgid "Remove Files..." msgstr "" msgid "Rename File" msgstr "" msgid "Rename file or directory" msgstr "" msgid "View change history in repository" msgstr "" msgid "File History" msgstr "" msgid "View change history of selected files" msgstr "" msgid "Shelve Changes" msgstr "" msgid "Move changes between working dir and patch" msgstr "" msgid "Synchronize" msgstr "" msgid "Synchronize with remote repository" msgstr "" msgid "Start web server for this repository" msgstr "" msgid "Update..." msgstr "" msgid "Update working directory" msgstr "" msgid "Update Icons" msgstr "" msgid "Update icons for this repository" msgstr "" msgid "Global Settings" msgstr "" msgid "Configure user wide settings" msgstr "" msgid "Repository Settings" msgstr "" msgid "Configure repository settings" msgstr "" msgid "Explorer Extension Settings" msgstr "" msgid "Configure Explorer extension" msgstr "" msgid "About TortoiseHg" msgstr "" msgid "Show About Dialog" msgstr "" msgid "Diff to parent" msgstr "" msgid "View changes using GUI diff tool" msgstr "" msgid "Edit Ignore Filter" msgstr "" msgid "Edit repository ignore filter" msgstr "" msgid "Guess Renames" msgstr "" msgid "Detect renames and copies" msgstr "" msgid "Search History" msgstr "" msgid "Search file revisions for patterns" msgstr "" msgid "DnD Synchronize" msgstr "" msgid "Synchronize with dragged repository" msgstr "" #, python-format msgid "unrecognized response: %s" msgstr "" msgid "password: " msgstr "" #, python-format msgid "repository %s not found" msgstr "" msgid "win32ill: cannot create window for messages" msgstr "" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "" msgid "win32ill: interrupted while stopping message loop\n" msgstr "" #~ msgid "Several icons are courtesy of the TortoiseSVN project" #~ msgstr "Mitmed pildid on TortoiseSVN-i poolt" #~ msgid "(version %s)" #~ msgstr "(versioon %s)" #~ msgid "with %s" #~ msgstr "ning %s" #~ msgid "A new version of TortoiseHg is ready for download!" #~ msgstr "Uus TortoiseHg versioon on valmis allalaadimiseks!" #~ msgid "Copyright 2008-2010 Steve Borho and others" #~ msgstr "Autoriõigus 2008-2010 Steve Borho ja teised" #~ msgid "Failed to archive" #~ msgstr "Ei suutnud arhiveerida" #~ msgid "Archive" #~ msgstr "Arhiiv" #~ msgid "Compressed zip archives" #~ msgstr "Kompresseeritud zip arhiivid" #~ msgid "Canceled archiving" #~ msgstr "Arhiveerimine tühistatud" #~ msgid "Archived successfully" #~ msgstr "Edukalt arhiveeritud" #~ msgid "Backout changeset - %s" #~ msgstr "Taganenud muutused - %s" #~ msgid "" #~ "The destination \"%s\" already exists!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "Siht \"%s\" on juba olemas!\n" #~ "\n" #~ "Kas soovid seda üle kirjutada?" #~ msgid "" #~ "The directory \"%s\" isn't empty!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "Kaust \"%s\" on tühi!\n" #~ "\n" #~ "Kas soovid seda üle kirjutada?" #~ msgid "All Files (*.*)" #~ msgstr "Kõik failid (*.*)" #~ msgid "Canceled backout" #~ msgstr "Tagandamine tühistatud" #~ msgid "Failed to backout" #~ msgstr "Ei suutnud tagandada" #~ msgid "Backout" #~ msgstr "Tagandus" #~ msgid "Old name:" #~ msgstr "Vana nimi:" #~ msgid "unexpected type: %s" #~ msgstr "ootamatu tüüp: %s" #~ msgid "unexpected response id: %s" #~ msgstr "ootamatu vaste id: %s" #~ msgid "Bookmark input is empty" #~ msgstr "Järjehoidja sisestus on tühi" #~ msgid "Error in bookmarking" #~ msgstr "Viga järjehoidja valmimisel" #~ msgid "Bookmark \"%s\" has been added" #~ msgstr "Järjehoidja \"%s\" lisatud" #~ msgid "Bookmarking completed" #~ msgstr "Järjehoidja valmis" #~ msgid "Please enter bookmark name" #~ msgstr "Palun sisestage järjehoidja nimi" #~ msgid "Bookmark name is empty" #~ msgstr "Järjehoidja nimi on tühi" #~ msgid "Bookmark \"%s\" has been moved" #~ msgstr "Järjehoidja \"%s\" on liigutatud" #~ msgid "Bookmark new name input is empty" #~ msgstr "Järjehoidja uue nime vorm on tühi" #~ msgid "Bookmark \"%s\" has been removed" #~ msgstr "Järjehoidja \"%s\" on eemaldatud" #~ msgid "Please select bookmark name to remove" #~ msgstr "Palun valige järjehoidja nimi, mida eemaldada" #~ msgid "Changeset Description" #~ msgstr "Muutuste seletus" #~ msgid "Archive revision:" #~ msgstr "Arhiivi redaktsioon:" #~ msgid "path" #~ msgstr "sihttee" #~ msgid "browser" #~ msgstr "sirvija" #~ msgid "Save as.." #~ msgstr "Salvesta kui.." #~ msgid "No bookmark named \"%s\" exists" #~ msgstr "Järjehoidja nimega \"%s\" pole olemas" #~ msgid "a bookmark named \"%s\" already exists" #~ msgstr "järjehoidja nimega \"%s\" on juba olemas" #~ msgid "type" #~ msgstr "tüüp" #~ msgid "[All Files]" #~ msgstr "[Kõik failid]" #~ msgid "%s changeset " #~ msgstr "%s muutuste nimekiri " #~ msgid "[no hunks to display]" #~ msgstr "[kogumeid näidata pole]" #~ msgid "File is binary.\n" #~ msgstr "Fail on binaarne.\n" #~ msgid "TortoiseHg Clone" #~ msgstr "TortoiseHg kloon" #~ msgid "Confirm revert file to old revision" #~ msgstr "Kinnita redaktsiooni annulleerimine eelmise versioonini" #~ msgid "Bundle..." #~ msgstr "Pakk..." #~ msgid "File is larger than the specified max size.\n" #~ msgstr "Fail on suurem kui suuruspiir.\n" #~ msgid "Unable to save file" #~ msgstr "Faili salvestamine nurjus" #~ msgid "Failed to clone" #~ msgstr "Ei suutnud kloonida" #~ msgid "Cloned successfully" #~ msgstr "Edukalt kloonitud" #~ msgid "Clone" #~ msgstr "Klooni" #~ msgid "Mercurial bundles" #~ msgstr "Mercurial (hägune) kogumid" #~ msgid "Canceled updating" #~ msgstr "Kloonimine tühistatud" #~ msgid "Source path is empty" #~ msgstr "Allika sihttee puudub" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/fa.po0000644000000000000000000043274314440352353016231 0ustar00rootroot# Persian translation for tortoisehg # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the tortoisehg package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: Persian \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2010-04-05 13:42+0000\n" "Last-Translator: Persian \n" "Language-Team: Persian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2019-07-17 05:44+0000\n" "X-Generator: Launchpad (build 19009)\n" msgid "TortoiseHg Overlay Icon Server" msgstr "" msgid "Exit" msgstr "خروج" msgid "About" msgstr "" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "" msgid "You can visit our site here" msgstr "" msgid "&License" msgstr "" #, python-format msgid "version %s" msgstr "" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "" msgid "License" msgstr "" msgid "= Working Directory Parent =" msgstr "" msgid "Directory of files" msgstr "پوشه پرونده ها" msgid "Tar archives" msgstr "" msgid "Uncompressed tar archive" msgstr "" msgid "Bzip2 tar archives" msgstr "" msgid "Tar archive compressed using bzip2" msgstr "" msgid "Gzip tar archives" msgstr "" msgid "Tar archive compressed using gzip" msgstr "" msgid "Zip archives" msgstr "" msgid "Uncompressed zip archive" msgstr "" msgid "Zip archive compressed using deflate" msgstr "" msgid "Revision:" msgstr "" msgid "All files in this revision" msgstr "" msgid "Only files modified/created in this revision" msgstr "" msgid "Only files modified/created since:" msgstr "" msgid "Archive Content:" msgstr "" msgid "Recurse into subrepositories" msgstr "" msgid "Browse..." msgstr "مرور..." msgid "Destination path:" msgstr "مسیر مقصد:" msgid "Archive types:" msgstr "انواع بایگانی:" msgid "Hg command:" msgstr "" msgid "Select Destination Folder" msgstr "انتخاب پوشه‌ی مقصد" msgid "Select Destination File" msgstr "انتخاب پرونده مقصد" msgid "All files (*)" msgstr "" msgid "Duplicate Name" msgstr "" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "" msgid "Confirm Overwrite" msgstr "" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "" #, python-format msgid "Archive - %s" msgstr "بایگانی - %s" msgid "&Archive" msgstr "" msgid "Backout requires a parent revision" msgstr "" msgid "Cannot backout change on a different branch" msgstr "" #, python-format msgid "Backout - %s" msgstr "" msgid "Prepare to backout" msgstr "" msgid "Verify backout revision and ensure your working directory is clean." msgstr "" msgid "Backing out a parent revision is a single step operation" msgstr "" msgid "Backout revision" msgstr "" msgid "Not a head, backout will create a new head!" msgstr "" msgid "Current local revision" msgstr "" msgid "Working directory status" msgstr "" msgid "Checking..." msgstr "" msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Automatically resolve merge conflicts where possible" msgstr "" msgid "Uncommitted local changes are detected" msgstr "" msgid "Clean" msgstr "" msgid "Backing out, then merging..." msgstr "" msgid "All conflicting files will be marked unresolved." msgstr "" msgid "Automatically advance to next page when backout and merge are complete." msgstr "" #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" msgid "No merge conflicts, ready to commit" msgstr "" msgid "Commit backout and merge results" msgstr "" msgid "Parents" msgstr "" msgid "Working Directory" msgstr "" msgid "Working Directory (merged)" msgstr "" msgid "Commit message" msgstr "" msgid "Skip final confirmation page, close after commit." msgstr "" msgid "Backed out changeset: " msgstr "" msgid "Confirm Discard Message" msgstr "" msgid "Discard current backout message?" msgstr "" msgid "Use English backout message" msgstr "" msgid "Backing out and committing..." msgstr "" msgid "Please wait while making backout." msgstr "" msgid "Committing..." msgstr "" msgid "Please wait while committing merged files." msgstr "" msgid "Finished" msgstr "" msgid "Backout changeset" msgstr "" #, python-format msgid "Bisect - %s" msgstr "" msgid "Accept" msgstr "" msgid "Known good revision:" msgstr "" msgid "Known bad revision:" msgstr "" msgid "Discard local changes (revert --all)" msgstr "" msgid "Revision is &Good" msgstr "" msgid "Revision is &Bad" msgstr "" msgid "&Skip this Revision" msgstr "" msgid "Close" msgstr "" msgid "Error encountered." msgstr "" msgid "Culprit found." msgstr "" msgid "Revision" msgstr "" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "" #, python-format msgid "%s (hint: %s)" msgstr "" msgid "Bookmark:" msgstr "" msgid "New Name:" msgstr "" msgid "Activate:" msgstr "" msgid "&Add" msgstr "" msgid "Re&name" msgstr "" msgid "&Remove" msgstr "" msgid "&Move" msgstr "" #, python-format msgid "Bookmark - %s" msgstr "" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "" #, python-format msgid "Bookmark '%s' has been added" msgstr "" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "" #, python-format msgid "Bookmark '%s' has been moved" msgstr "" #, python-format msgid "Bookmark '%s' does not exist" msgstr "" #, python-format msgid "Bookmark '%s' has been removed" msgstr "" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "" msgid "TortoiseHg Bookmark Sync" msgstr "" msgid "Outgoing Bookmarks" msgstr "" msgid "&Push Bookmark" msgstr "" msgid "&Remove Bookmark" msgstr "" msgid "Incoming Bookmarks" msgstr "" msgid "P&ull Bookmark" msgstr "" msgid "R&emove Bookmark" msgstr "" #, python-format msgid "Pushed local bookmark: %s" msgstr "" #, python-format msgid "Pulled remote bookmark: %s" msgstr "" #, python-format msgid "Removed remote bookmark: %s" msgstr "" #, python-format msgid "Removed local bookmark: %s" msgstr "" #, python-format msgid "%s - branch operation" msgstr "" msgid "Select branch of merge commit" msgstr "" msgid "Changes take effect on next commit" msgstr "" msgid "No branch changes" msgstr "" msgid "Open a new named branch" msgstr "" msgid "Close current branch" msgstr "" #, python-format msgid "Please report this bug to our bug tracker" msgstr "" msgid "Checking for updates..." msgstr "" msgid "Copy" msgstr "" msgid "Quit" msgstr "" msgid "TortoiseHg Bug Report" msgstr "" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "" msgid "Your TortoiseHg is up to date." msgstr "" msgid "Save error report to" msgstr "" msgid "Text files (*.txt)" msgstr "" msgid "Error writing file" msgstr "" msgid "TortoiseHg Error" msgstr "" msgid "" "If you still have trouble, please file a bug report." msgstr "" msgid "Visual Diff" msgstr "" msgid "View file changes in external diff tool" msgstr "" msgid "Edit Local" msgstr "" msgid "Edit current file in working copy" msgstr "" msgid "Revert to Revision" msgstr "" msgid "Revert file(s) to contents at this revision" msgstr "" msgid "Patch failed to apply" msgstr "" msgid "Manually resolve rejected chunks?" msgstr "" msgid "Edit patched file and rejects?" msgstr "" msgid "No deletable chunks" msgstr "" msgid "Completely remove file from patch?" msgstr "" msgid "Revert all file changes?" msgstr "" msgid "No chunks remain" msgstr "" msgid "file has been deleted, refresh" msgstr "" msgid "file has been modified, refresh" msgstr "" msgid "Unable to merge chunks" msgstr "" msgid "Add or remove patches must be merged in the working directory" msgstr "" msgid "Unable to remove" msgstr "" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" msgctxt "files" msgid "All" msgstr "" msgctxt "files" msgid "None" msgstr "" msgid "Toggle display of text search bar" msgstr "" msgid "Diff Toolbar" msgstr "" #, python-format msgid "Chunks selected: %d / %d" msgstr "" msgid "Please wait while the file is opened ..." msgstr "" msgid "Source:" msgstr "" msgid "Destination:" msgstr "" msgid "Options" msgstr "" msgid "Clone to revision:" msgstr "" msgid "A revision identifier, bookmark, tag or branch name" msgstr "" msgid "Do not update the new working directory" msgstr "" msgid "Use pull protocol to copy metadata" msgstr "" msgid "Clone with minimal processing" msgstr "" msgid "Include patch queue" msgstr "" msgid "Use proxy server" msgstr "" msgid "Do not verify host certificate" msgstr "" msgid "Remote command:" msgstr "" msgid "Use largefiles" msgstr "" msgid "Start revision:" msgstr "" msgid "Select source repository" msgstr "" msgid "Select destination repository" msgstr "" msgid "Select patch folder" msgstr "" #, python-format msgid "Clone - %s" msgstr "" msgid "&Clone" msgstr "" msgid "failed to start command\n" msgstr "" msgid "error while running command\n" msgstr "" #, python-format msgid "process exited unexpectedly with code %d" msgstr "" #, python-format msgid "failed to encode command: %s" msgstr "" #, python-format msgid "timed out while reading: %r..." msgstr "" msgid "timed out waiting for message" msgstr "" #, python-format msgid "unexpected response on required channel %r" msgstr "" #, python-format msgid "invalid \"hello\" message: %r" msgstr "" msgid "no \"runcommand\" capability" msgstr "" #, python-format msgid "corrupted command result: %r" msgstr "" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "" msgid "Terminated by user" msgstr "" #, python-format msgid "[command terminated by user %s]" msgstr "" #, python-format msgid "[command interrupted %s]" msgstr "" #, python-format msgid "[command returned code %d %%s]" msgstr "" #, python-format msgid "[command completed successfully %s]" msgstr "" msgid "Running..." msgstr "" msgid "Failed!" msgstr "" msgid "Clea&r Log" msgstr "" msgid "TortoiseHg Prompt" msgstr "" msgid "Show Detail" msgstr "" msgid "Hide Detail" msgstr "" msgid "Confirm Exit" msgstr "" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" msgid "&Run" msgstr "" msgid "TortoiseHg Command Dialog" msgstr "" msgid "Command Error" msgstr "" #, python-format msgid "[Code: %d]" msgstr "" msgid "Merge" msgstr "" #, python-format msgid "Merge with %s" msgstr "" msgid "Patch Name Required" msgstr "" msgid "You must enter a patch name" msgstr "" msgctxt "start progress" msgid "Commit" msgstr "" msgctxt "start progress" msgid "MQ Action" msgstr "" msgctxt "start progress" msgid "Rollback" msgstr "" msgid "Commit Dialog Toolbar" msgstr "" msgid "Branch: " msgstr "" msgid "Copy message" msgstr "" msgid "Copy one of the recent commit messages" msgstr "" msgid "Show Issues" msgstr "" msgid "Please wait..." msgstr "" #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "" msgid "Issue Tracker" msgstr "" msgid "Show Issues..." msgstr "" msgid "Stop" msgstr "" msgid "### patch name ###" msgstr "" msgid "Commit changes" msgstr "" msgid "Commit" msgstr "" msgid "Amend current revision" msgstr "" msgid "Amend" msgstr "" msgid "Create a new patch" msgstr "" msgid "QNew" msgstr "" msgid "Refresh current patch" msgstr "" msgid "QRefresh" msgstr "" msgid "Confirm Branch Change" msgstr "" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "" msgid "Restart &Branch" msgstr "" msgid "&Commit to current branch" msgstr "" msgid "Cancel" msgstr "" msgid "Confirm New Branch" msgstr "" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "" msgid "Create &Branch" msgstr "" msgid "Close Branch: " msgstr "" msgid "New Branch: " msgstr "" #, python-format msgid "Selected Options: %s" msgstr "" msgid "Parent:" msgstr "" msgid "Patch name:" msgstr "" #, python-format msgid "Close %s branch" msgstr "" #, python-format msgid "Rollback commit to revision %d" msgstr "" msgid "Confirm Undo" msgstr "" msgid "Discard current commit message?" msgstr "" msgid "Message Translation Failure" msgstr "" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" msgid "&Replace" msgstr "" msgid "Nothing Committed" msgstr "" msgid "Please enter commit message" msgstr "" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" msgid "No files checked" msgstr "" msgid "No modified files checkmarked for commit" msgstr "" msgid "Confirm Add" msgstr "" msgid "Add selected untracked files?" msgstr "" msgid "Confirm Remove" msgstr "" msgid "Remove selected deleted files?" msgstr "" msgid "Nothing changed." msgstr "" msgctxt "window title" msgid "Commit" msgstr "" #, python-format msgid "%s - commit options" msgstr "" msgid "Set username:" msgstr "" msgid "Save in Repo" msgstr "" msgid "Save Global" msgstr "" msgid "Set Date:" msgstr "" msgid "Update" msgstr "" msgid "Push After Commit:" msgstr "" msgid "Auto Includes:" msgstr "" msgid "Recurse into subrepositories (--subrepos)" msgstr "" msgid "Unable to save username" msgstr "" msgid "Iniparse must be installed." msgstr "" msgid "Unable to write configuration file" msgstr "" msgid "Unable to save after commit push" msgstr "" msgid "Unable to save auto include list" msgstr "" msgid "Unable to save recurse in subrepos." msgstr "" msgid "Invalid date format" msgstr "" msgid "No username configured" msgstr "" #, python-format msgid "%s - commit" msgstr "" msgid "TortoiseHg Commit" msgstr "" msgid "Are you sure that you want to cancel the commit operation?" msgstr "" msgid "Compress changesets up to and including" msgstr "" msgid "Onto destination" msgstr "" msgid "Compress" msgstr "" #, python-format msgid "Compress - %s" msgstr "" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the compress" msgstr "" msgid "Changes have been moved, you must now commit" msgstr "" msgctxt "action button" msgid "Commit" msgstr "" msgid "Compress is complete, old history untouched" msgstr "" msgid "must be specified repository" msgstr "" msgid "must be specified 'type' in style" msgstr "" msgid "Git Commit:" msgstr "" msgid "Summary:" msgstr "" msgid "User:" msgstr "" msgid "Date:" msgstr "" msgid "Age:" msgstr "" msgid "Branch:" msgstr "" msgid "Close:" msgstr "" msgid "Tags:" msgstr "" msgid "Graft:" msgstr "" msgid "Transplant:" msgstr "" msgid "Obsolete state:" msgstr "" msgid "Perforce:" msgstr "" msgid "Subversion:" msgstr "" msgid "Converted From:" msgstr "" msgid "Original Parent:" msgstr "" msgid "No items to display" msgstr "" msgid "Use compact view" msgstr "" msgid "Patch:" msgstr "" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "" msgid "Select a GUI location to edit:" msgstr "" msgid "Select the toolbar or menu to change" msgstr "" msgid "Tools shown on selected location" msgstr "" msgid "Delete from list" msgstr "" msgid "Add to list" msgstr "" msgid "Add separator" msgstr "" msgid "List of all tools" msgstr "" msgid "New Tool ..." msgstr "" msgid "Edit Tool ..." msgstr "" msgid "Delete Tool" msgstr "" msgid "Type" msgstr "" msgid "Name" msgstr "" msgid "Command" msgstr "" msgid "New hook" msgstr "" msgid "Edit hook" msgstr "" msgid "Delete hook" msgstr "" msgid "Replace existing hook?" msgstr "" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" msgid "OK" msgstr "" msgid "Missing information" msgstr "" msgid "All items" msgstr "" msgid "Working directory" msgstr "" msgid "All revisions" msgstr "" msgid "All contexts" msgstr "" msgid "Fixed revisions" msgstr "" msgid "Applied patches" msgstr "" msgid "Applied patches or qparent" msgstr "" msgid "" msgstr "" msgid "Configure Custom Tool" msgstr "" msgid "Tool name" msgstr "" msgid "The tool name. It cannot contain spaces." msgstr "" #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" msgid "Tool label" msgstr "" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" msgid "Tooltip" msgstr "" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" msgid "Icon" msgstr "" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" msgid "On repowidget, show for" msgstr "" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" msgid "Show Output Log" msgstr "" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" msgid "You must set a tool name." msgstr "" msgid "The tool name cannot have any spaces in it." msgstr "" msgid "You must set a command to run." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" msgid "Configure Hook" msgstr "" msgid "Hook type" msgstr "" msgid "Select when your command will be run" msgstr "" msgid "The hook name. It cannot contain spaces." msgstr "" msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" msgid "You must set a valid hook type." msgstr "" msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "" msgid "Console" msgstr "" msgid "File &History / Annotate" msgstr "" msgid "Show the history of the selected file" msgstr "" msgid "Co&mpare File Revisions" msgstr "" msgid "Compare revisions of the selected file" msgstr "" msgid "Filter Histor&y" msgstr "" msgid "Query about changesets affecting the selected files" msgstr "" msgid "Diff &Changeset to Parent" msgstr "" msgid "Diff Changeset to Loc&al" msgstr "" msgid "&Diff to Parent" msgstr "" msgid "Diff to &Local" msgstr "" msgid "View changes to current in external diff tool" msgstr "" msgid "&View at Revision" msgstr "" msgid "View file as it appeared at this revision" msgstr "" msgid "&Save at Revision..." msgstr "" msgid "Save file as it appeared at this revision" msgstr "" msgid "Save file to" msgstr "" msgid "&Edit Local" msgstr "" msgid "&Open Local" msgstr "" msgid "E&xplore Local" msgstr "" msgid "Open parent folder of current file in the system file manager" msgstr "" msgid "&Copy Patch" msgstr "" msgid "Copy &Path" msgstr "" msgid "Copy full path of file(s) to the clipboard" msgstr "" msgid "&Revert to Revision..." msgstr "" msgid "Open S&ubrepository" msgstr "" msgid "Open the selected subrepository" msgstr "" msgid "E&xplore Folder" msgstr "" msgid "Open the selected folder in the system file manager" msgstr "" msgid "Open &Terminal" msgstr "" msgid "Open a shell terminal in the selected folder" msgstr "" msgid "Custom Tools" msgstr "" msgid "Diff &Local" msgstr "" msgid "&View Missing" msgstr "" msgid "View O&ther" msgstr "" msgid "Add &Largefiles..." msgstr "" msgid "&Forget" msgstr "" msgid "&Delete Unversioned..." msgstr "" msgid "Confirm Delete Unversioned" msgstr "" msgid "Delete the following unversioned files?" msgstr "" msgid "&Delete" msgstr "" msgid "Re&move Versioned" msgstr "" msgid "&Revert..." msgstr "" msgid "Uncommited merge - please select a parent revision" msgstr "" msgid "Revert files to local or other parent?" msgstr "" msgid "&Local" msgstr "" msgid "&Other" msgstr "" msgid "Confirm Revert" msgstr "" msgid "Revert local file changes?" msgstr "" msgid "&Revert with backup" msgstr "" msgid "&Discard changes" msgstr "" msgid "Revert the following files?" msgstr "" msgid "&Revert" msgstr "" msgid "&Copy..." msgstr "" msgid "Re&name..." msgstr "" msgid "&Ignore..." msgstr "" msgid "Edit Re&jects" msgstr "" msgid "Manually resolve rejected patch chunks" msgstr "" msgid "De&tect Renames..." msgstr "" msgid "&Mark Resolved" msgstr "" msgid "&Mark Unresolved" msgstr "" msgid "Restart Mer&ge" msgstr "" msgid "Was renamed from" msgstr "" msgid "Restart Merge &with" msgstr "" msgid "Display the file anyway" msgstr "" msgid "Diff not displayed: " msgstr "" #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid "File is binary" msgstr "" msgid "File may be binary (maximum line length exceeded)" msgstr "" msgid "File or diffs not displayed: " msgstr "" msgid " (was added)" msgstr "" #, python-format msgid " (copied from %s)" msgstr "" #, python-format msgid " (renamed from %s)" msgstr "" msgid " (is a symlink)" msgstr "" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid " (was deleted)" msgstr "" msgid " (was added, now missing)" msgstr "" msgid " (is unversioned)" msgstr "" msgid "exec mode has been set" msgstr "" msgid "exec mode has been unset" msgstr "" #, python-format msgid "changeset: %s" msgstr "" msgid "Initial revision" msgstr "" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" msgid "Subrepo created and set to initial revision." msgstr "" msgid "Subrepo initialized to revision:" msgstr "" msgid "Subrepo removed from repository." msgstr "" msgid "Previously the subrepository was at the following revision:" msgstr "" msgid "Subrepo was not changed." msgstr "" msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "" msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "" msgid "Subrepo state is:" msgstr "" msgid "Revision has changed to:" msgstr "" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "" msgid "From:" msgstr "" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" msgid "Subrepository not found in the working directory." msgstr "" msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" msgid "Not a Mercurial subrepo, not previewable" msgstr "" #, python-format msgid "Error previewing subrepo: %s" msgstr "" msgid "Subrepo may be damaged or inaccessible." msgstr "" msgid "The subrepository is dirty." msgstr "" msgid "File Status:" msgstr "" msgid "(is a changed sub-repository)" msgstr "" msgid "(is an unchanged sub-repository)" msgstr "" msgid "(is a dirty sub-repository)" msgstr "" msgid "(is a new sub-repository)" msgstr "" msgid "(is a removed sub-repository)" msgstr "" msgid "(is a changed and dirty sub-repository)" msgstr "" msgid "(is a new and dirty sub-repository)" msgstr "" msgid "open..." msgstr "" #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "" msgid "File History Log Columns" msgstr "" msgid "Back" msgstr "" msgid "Forward" msgstr "" msgid "Diff Selected &Changesets" msgstr "" msgid "&Diff Selected File Revisions" msgstr "" msgid "Show Revision &Details" msgstr "" msgid "Too many rows selected for menu" msgstr "" msgid "File Differences Log Columns" msgstr "" msgid "Next diff" msgstr "" msgid "Previous diff" msgstr "" msgid "Unicode" msgstr "" msgid "Western Europe" msgstr "" msgid "Unified Chinese" msgstr "" msgid "Traditional Chinese" msgstr "" msgid "Korean" msgstr "" msgid "Japanese" msgstr "" msgid "Thai" msgstr "" msgid "Central and Eastern Europe" msgstr "" msgid "Cyrillic" msgstr "" msgid "Russian" msgstr "" msgid "Ukrainian" msgstr "" msgid "Greek" msgstr "" msgid "Turkish" msgstr "" msgid "Arabic" msgstr "" msgid "Hebrew" msgstr "" msgid "Vietnamese" msgstr "" msgid "Baltic" msgstr "" msgid "Southern Europe" msgstr "" msgid "Nordic" msgstr "" msgid "Celtic" msgstr "" msgid "South-Eastern Europe" msgstr "" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "" msgid "View change as unified diff output" msgstr "" msgid "View change in context of file" msgstr "" msgid "Annotate with revision numbers" msgstr "" msgid "Next Diff" msgstr "" msgid "Previous Diff" msgstr "" msgid "Open shelve tool" msgstr "" msgid "&Auto Detect" msgstr "" msgid "Show changes from first parent" msgstr "" msgid "Show changes from second parent" msgstr "" msgid "E&ncoding" msgstr "" msgid "&Search in Current File" msgstr "" msgid "Search in All &History" msgstr "" msgid "Go to Line" msgstr "" #, python-format msgid "Enter line number (1 - %d)" msgstr "" msgid "Show &Author" msgstr "" msgid "Show &Date" msgstr "" msgid "Show &Revision" msgstr "" msgid "Annotate Op&tions" msgstr "" msgid "Search Selected Text" msgstr "" msgid "In Current &File" msgstr "" msgid "In &Current Revision" msgstr "" msgid "In &Original Revision" msgstr "" msgid "In All &History" msgstr "" msgid "Go to" msgstr "" msgid "View File at" msgstr "" msgid "Diff File to" msgstr "" msgid "&Originating Revision" msgstr "" msgid "&Parent Revision" msgstr "" #, python-format msgid "&Parent Revision (%d)" msgstr "" msgid "&Mark Excluded Changes" msgstr "" msgid "(excluded from the next commit)" msgstr "" msgid "Interrupted graft operation found" msgstr "" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" msgid "Continue or abort interrupted graft operation?" msgstr "" msgid "To graft destination" msgstr "" msgid "Use my user name instead of graft committer user name" msgstr "" msgid "Use current date" msgstr "" msgid "Append graft info to log message" msgstr "" msgid "Graft" msgstr "" msgid "Abort" msgstr "قطع کردن" #, python-format msgid "Graft - %s" msgstr "" msgid "Graft changeset" msgstr "" #, python-format msgid "Graft changeset #%d of %d" msgstr "" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" msgid "You may continue or start the graft" msgstr "" msgid "Graft is complete" msgstr "" msgid "Graft failed" msgstr "" msgid "Graft aborted" msgstr "" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" msgid "You may continue the graft" msgstr "" msgid "Exiting with an unfinished graft is not recommended." msgstr "" msgid "Consider aborting the graft first." msgstr "" msgid "&Exit" msgstr "" msgid "### regular expression search pattern ###" msgstr "" msgid "Regexp:" msgstr "" msgid "Ignore case" msgstr "" msgid "Search" msgstr "" msgid "Working Copy" msgstr "" msgid "All History" msgstr "" msgid "Report only the first match per file" msgstr "" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "" msgid "Includes:" msgstr "" msgid "Excludes:" msgstr "" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" #, python-format msgid "\"%s\" removed from search history" msgstr "" #, python-format msgid "\"%s\" removed from path history" msgstr "" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "" #, python-format msgid "grep: %s\n" msgstr "" #, python-format msgid "%d matches found" msgstr "" msgid "No matches found" msgstr "" msgid "Searching" msgstr "" msgid "history" msgstr "" msgid "Interrupted" msgstr "" msgid "files" msgstr "" #, python-format msgid "Skipping %s, unable to read" msgstr "" msgid "Vi&ew File" msgstr "" msgid "&View Changeset" msgstr "" msgid "Annotate &File" msgstr "" msgid "File" msgstr "" msgid "Line" msgstr "" msgid "Rev" msgstr "" msgid "User" msgstr "" msgid "Match Text" msgstr "" msgid "TortoiseHg Search" msgstr "" #, python-format msgid "Detect Copies/Renames in %s" msgstr "" msgid "Unrevisioned Files" msgstr "" msgid "Refresh file list" msgstr "" #, python-format msgid "Min Similarity: %d%%" msgstr "" msgid "Only consider deleted files" msgstr "" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "" msgid "Find Renames" msgstr "" msgid "Find copy and/or rename sources" msgstr "" msgid "Candidate Matches" msgstr "" msgid "Accept All Matches" msgstr "" msgid "Accept Selected Matches" msgstr "" msgid "Differences from Source to Dest" msgstr "" msgid "Search already in progress" msgstr "" msgid "Cannot start a new search" msgstr "" msgid "No files to find" msgstr "" msgid "There are no files that may have been renamed" msgstr "" msgid "Multiple sources chosen" msgstr "" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" #. i18n: percent format #, python-format msgid "%d%%" msgstr "" msgid "Source" msgstr "" msgid "Dest" msgstr "" msgid "% Match" msgstr "" msgid "Sending Email" msgstr "" msgid "Email" msgstr "" msgid "To:" msgstr "" msgid "Cc:" msgstr "" msgid "In-Reply-To:" msgstr "" msgid "Message identifier to reply to, for threading" msgstr "" msgid "Flag:" msgstr "" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" msgid "Send changesets as Hg patches" msgstr "" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" msgid "Use extended (git) patch format" msgstr "" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" msgid "Plain, do not prepend Hg header" msgstr "" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" msgid "Send single binary bundle, not patches" msgstr "" msgid "send patches as part of the email body" msgstr "" msgid "body" msgstr "" msgid "send patches as attachments" msgstr "" msgid "attach" msgstr "" msgid "send patches as inline attachments" msgstr "" msgid "inline" msgstr "" msgid "add diffstat output to messages" msgstr "" msgid "diffstat" msgstr "" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" msgid "Write patch series (bundle) description" msgstr "" msgid "Subject:" msgstr "" msgid "Changesets" msgstr "" msgid "Select &All" msgstr "" msgid "Select &None" msgstr "" msgid "Edit" msgstr "" msgid "Preview" msgstr "" msgid "&Settings" msgstr "" msgid "Send &Email" msgstr "" msgid "&Close" msgstr "" #, python-format msgid "Ignore filter - %s" msgstr "" msgid "Glob" msgstr "" msgid "Regexp" msgstr "" msgid "Add" msgstr "" msgid "Edit File" msgstr "" msgid "Ignore Filter" msgstr "" msgid "Untracked Files" msgstr "" msgid "Backspace or Del to remove row(s)" msgstr "" msgid "Add ignore filter..." msgstr "" msgid "selected files" msgstr "" msgid "Ignore " msgstr "" msgid "Invalid glob expression" msgstr "" msgid "Invalid regexp expression" msgstr "" msgid "Unable to read repository status" msgstr "" msgid "New file created" msgstr "" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" msgid "Unable to write .hgignore file" msgstr "" msgid "Copy working directory files from skeleton" msgstr "" msgid "Create special files (.hgignore, ...)" msgstr "" msgid "Make repo compatible with Mercurial <1.7" msgstr "" msgid "New Repository" msgstr "" msgid "&Create" msgstr "" msgid "Unable to create a config file" msgstr "" msgid "Insufficient access rights." msgstr "" msgid "Show Log" msgstr "" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" msgid "Add as &Largefiles" msgstr "" msgid "Add as &Normal Files" msgstr "" msgid "Invalid Patterns" msgstr "" msgid "Failed to process largefiles.patterns." msgstr "" msgid "Word docs (*.doc *.docx)" msgstr "" msgid "PDF docs (*.pdf)" msgstr "" msgid "Excel files (*.xls *.xlsx)" msgstr "" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "" msgid "Refresh lock information" msgstr "" msgid "Lock a file not described in .hglocks" msgstr "" msgid "Stop current operation" msgstr "" msgid "Locked And Lockable Files:" msgstr "" msgid "Path" msgstr "" msgid "Locking User" msgstr "" msgid "Purpose" msgstr "" msgid "Simplelock extension not enabled" msgstr "" msgid "Please enable and configure simplelock" msgstr "" msgid "Open a (nonmergable) file you wish to be locked" msgstr "" msgid "File was not within current repository" msgstr "" #, python-format msgid "Locking %s" msgstr "" #, python-format msgid "Unlocking %s" msgstr "" msgid "Refreshing locks..." msgstr "" #, python-format msgid "Lock of %s successful" msgstr "" #, python-format msgid "Lock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s successful" msgstr "" msgid "Ready, double click to lock or unlock" msgstr "" msgid "Ready" msgstr "" msgid "You can only release your own locks" msgstr "" msgid "Find revisions matching fields of:" msgstr "" msgid "Revision to Match:" msgstr "" msgid "Fields to match:" msgstr "" msgid "Summary (first description line)" msgstr "" msgid "Description" msgstr "" msgid "Author" msgstr "" msgid "Date" msgstr "" msgid "Files" msgstr "" msgid "Diff contents" msgstr "" msgid "Subrepo states" msgstr "" msgid "Branch" msgstr "" msgid "Phase" msgstr "" msgid "&Match" msgstr "" #, python-format msgid "Find matches - %s" msgstr "" msgid "Revisions to Match:" msgstr "" #, python-format msgid "Match any of %d revisions" msgstr "" msgid "Unknown revision!" msgstr "" msgid "Parse Error!" msgstr "" #, python-format msgid "Merge - %s" msgstr "" msgid "Do you want to exit?" msgstr "" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" msgid "Prepare to merge" msgstr "" msgid "Verify merge targets and ensure your working directory is clean." msgstr "" msgid "Not a head revision!" msgstr "" msgid "Merge from (other revision)" msgstr "" msgid "Merge to (working directory)" msgstr "" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Or use:" msgstr "" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "" msgid "Discard all changes from the other revision" msgstr "" msgid "&Discard" msgstr "" msgid "Confirm Discard Changes" msgstr "" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" msgctxt "working dir state" msgid "Clean" msgstr "" msgid "Merging..." msgstr "" msgid "Automatically advance to next page when merge is complete." msgstr "" #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" msgid "" "No merge conflicts, ready to commit or review" msgstr "" msgid "Commit merge results" msgstr "" msgid "Commit Options" msgstr "" msgid "Commit Now" msgstr "" msgid "Commit Later" msgstr "" msgid "Merge changeset" msgstr "" msgid "Syntax Highlighting" msgstr "" msgid "Paste &Filenames" msgstr "" msgid "App&ly Format" msgstr "" msgid "C&onfigure Format" msgstr "" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "" msgid "&Commit to Queue..." msgstr "" msgid "Create &New Queue..." msgstr "" msgid "&Rename Active Queue..." msgstr "" msgid "&Delete Queue..." msgstr "" msgid "&Purge Queue..." msgstr "" msgid "Create Patch Queue" msgstr "" msgid "New patch queue name" msgstr "" msgid "Create" msgstr "" msgid "Rename Patch Queue" msgstr "" #, python-format msgid "Rename patch queue '%s' to" msgstr "" msgid "Rename" msgstr "" msgid "Delete Patch Queue" msgstr "" msgid "Delete reference to" msgstr "" msgid "Delete" msgstr "" msgid "Purge Patch Queue" msgstr "" msgid "Remove patch directory of" msgstr "" msgid "Purge" msgstr "" msgid "Rename Patch" msgstr "" #, python-format msgid "Rename patch %s to:" msgstr "" msgid "no guards" msgstr "" msgid "Patch Queue" msgstr "" msgctxt "MQ QPush" msgid "Push" msgstr "" msgid "Apply one patch" msgstr "" msgctxt "MQ QPush" msgid "Push all" msgstr "" msgid "Apply all patches" msgstr "" msgid "Pop" msgstr "" msgid "Unapply one patch" msgstr "" msgid "Pop all" msgstr "" msgid "Unapply all patches" msgstr "" msgid "Go &to Patch" msgstr "" msgid "&Apply Only This Patch" msgstr "" msgid "Apply only the selected patch" msgstr "" msgid "&Finish Patch" msgstr "" msgid "Move applied patches into repository history" msgstr "" msgid "&Delete Patches..." msgstr "" msgid "Delete selected patches" msgstr "" msgid "Re&name Patch..." msgstr "" msgid "Set &Guards..." msgstr "" msgid "Configure guards for selected patch" msgstr "" msgid "Patch Queue Actions Toolbar" msgstr "" msgid "Configure guards" msgstr "" #, python-format msgid "Input new guards for %s:" msgstr "" msgid "Confirm patch queue switch" msgstr "" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "" #, python-format msgid "Guards: %d/%d" msgstr "" msgid "MQ options" msgstr "" msgid "Force push or pop (--force)" msgstr "" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "" msgid "Submitting p4 changelist..." msgstr "" msgid "Reverting p4 changelist..." msgstr "" msgid "Patch Branch Toolbar" msgstr "" msgid "Merge all pending dependencies" msgstr "" msgid "Backout current patch branch" msgstr "" msgid "Backport part of a changeset to a dependency" msgstr "" msgid "Start a new patch branch" msgstr "" msgid "Edit patch dependency graph" msgstr "" msgid "will be closed" msgstr "" #, python-format msgid "needs merge of %i heads\n" msgstr "" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "" #, python-format msgid "needs merge with %s\n" msgstr "" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "" msgid "&Goto (update workdir)" msgstr "" msgid "&Merge" msgstr "" msgid "No patch branch selected" msgstr "" msgid "No editor found" msgstr "" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" msgid "Graph" msgstr "" msgid "Status" msgstr "" msgid "Title" msgstr "" msgid "Message" msgstr "" msgid "New Patch Branch" msgstr "" msgid "Patch message:" msgstr "" msgid "Patch date:" msgstr "" msgid "Patch user:" msgstr "" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" msgid "Review Board" msgstr "" msgid "Password:" msgstr "" msgid "Error" msgstr "" #, python-format msgid "Review draft posted to %s\n" msgstr "" #, python-format msgid "Review published to %s\n" msgstr "" msgid "Success" msgstr "" msgid "Repository ID:" msgstr "" msgid "Post Review" msgstr "" msgid "Review ID:" msgstr "" msgid "Update the fields of this existing request" msgstr "" msgid "Update Review" msgstr "" msgid "Create diff with all outgoing changes" msgstr "" msgid "Create diff with all changes on this branch" msgstr "" msgid "Publish request immediately" msgstr "" msgid "%p%" msgstr "" msgid "Connecting to Review Board..." msgstr "" msgid "Target:" msgstr "" msgid "Do not modify working copy (-k/--keep)" msgstr "" #, python-format msgid "Prune - %s" msgstr "" msgid "&Prune" msgstr "" msgid "No unknown files found" msgstr "" msgid "No ignored files found" msgstr "" msgid "No trash files found" msgstr "" msgid "Delete empty folders" msgstr "" msgid "Preserve files beginning with .hg" msgstr "" #, python-format msgid "%s - purge" msgstr "" msgid "Checking" msgstr "" msgid "Ready to purge." msgstr "" #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "" msgstr[1] "" msgid "Confirm file deletions" msgstr "" msgid "Are you sure you want to delete these files and/or folders?" msgstr "" msgid "Deletion failures" msgstr "" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "" msgstr[1] "" msgid "Deleting trash folder..." msgstr "" #, python-format msgid "Deleted %d files" msgstr "" #, python-format msgid "Deleted %d files and %d folders" msgstr "" msgid "Delete Patches" msgstr "" msgid "Remove patches from queue?" msgstr "" msgid "Keep patch files" msgstr "" #, python-format msgid "Patch fold - %s" msgstr "" msgid "New patch message:" msgstr "" msgid "Patches to fold" msgstr "" msgid "&Undo" msgstr "" msgid "&Redo" msgstr "" msgid "Cu&t" msgstr "" msgid "&Copy" msgstr "" msgid "&Paste" msgstr "" msgid "&Editor Options" msgstr "" msgid "&Wrap" msgstr "" msgctxt "wrap mode" msgid "&None" msgstr "" msgid "&Word" msgstr "" msgid "&Character" msgstr "" msgid "White&space" msgstr "" msgid "&Visible" msgstr "" msgid "&Invisible" msgstr "" msgid "&AfterIndent" msgstr "" msgid "&TAB Inserts" msgstr "" msgid "&Auto" msgstr "" msgid "&TAB" msgstr "" msgid "&Spaces" msgstr "" msgid "EOL &Visibility" msgstr "" msgid "EOL &Mode" msgstr "" msgid "&Windows" msgstr "" msgid "&Unix" msgstr "" msgid "&Mac" msgstr "" msgid "&Auto-Complete" msgstr "" msgid "### regular expression ###" msgstr "" msgid "Regular expression search pattern" msgstr "" msgid "Wrap search" msgstr "" msgid "Prev" msgstr "" msgid "Next" msgstr "" msgid "Unable to read file" msgstr "" msgid "Could not open the specified file for reading." msgstr "" msgid "This appears to be a binary file." msgstr "" msgid "An error occurred while reading the file." msgstr "" msgid "Text Translation Failure" msgstr "" msgid "Could not translate the file content from native encoding." msgstr "" msgid "Several characters would be lost." msgstr "" msgid "Unable to write file" msgstr "" msgid "Could not translate the file content to native encoding." msgstr "" msgid "Could not open the specified file for writing." msgstr "" msgid "An error occurred while writing the file." msgstr "" msgid "Try refreshing your repository." msgstr "" #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
                                        Please edit your config" msgstr "" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
                                        Please fix your config" msgstr "" #, python-format msgid "Operation aborted:

                                        %(arg0)s." msgstr "" msgid "Repository is locked" msgstr "" msgid "hint:" msgstr "" msgid "Repository Error" msgstr "" msgid "No visual editor configured" msgstr "" msgid "Please configure a visual editor." msgstr "" msgid "Editor launch failure" msgstr "" msgid "Failed to open path in terminal" msgstr "" #, python-format msgid "\"%s\" is not a valid directory" msgstr "" #, python-format msgid "Invalid configuration: %s" msgstr "" msgid "Unable to start the following command:" msgstr "" msgid "No shell configured" msgstr "" msgid "A terminal shell must be configured" msgstr "" msgid "Please enter a username" msgstr "" msgid "You must identify yourself to Mercurial" msgstr "" msgid "Unable to translate input to local encoding." msgstr "" msgid "Checkmark files to add" msgstr "" msgid "Checkmark files to forget" msgstr "" msgid "Forget" msgstr "" msgid "Checkmark files to revert" msgstr "" msgid "Revert" msgstr "" msgid "Checkmark files to remove" msgstr "" msgid "Remove" msgstr "" #, python-format msgid "%s - hg %s" msgstr "" msgid "Do not save backup files (*.orig)" msgstr "" msgid "Force removal of modified files (--force)" msgstr "" msgid "Add &Largefiles" msgstr "" msgid "No files selected" msgstr "" msgid "No operation to perform" msgstr "" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" msgid "Remove &Unmodified Files" msgstr "" msgid "Remove &All Selected Files" msgstr "" msgid "Rebase changeset and descendants" msgstr "" msgid "To rebase destination" msgstr "" msgid "Swap source and destination" msgstr "" msgid "Keep original changesets (--keep)" msgstr "" msgid "Keep original branch names (--keepbranches)" msgstr "" msgid "Collapse the rebased changesets (--collapse)" msgstr "" msgid "Rebase entire source branch (-b/--base)" msgstr "" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "" msgid "Rebase" msgstr "" #, python-format msgid "Rebase - %s" msgstr "" msgid "" "Before rebase, you must
                                        commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the rebase" msgstr "" msgid "Rebase is complete" msgstr "" msgid "Rebase failed" msgstr "" msgid "Rebase aborted" msgstr "" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" msgid "Exiting with an unfinished rebase is not recommended." msgstr "" msgid "Consider aborting the rebase first." msgstr "" #, python-format msgid "Merge rejected patch chunks into %s" msgstr "" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "" msgid "Mark this chunk as unresolved" msgstr "" msgid "Reload File" msgstr "" msgid "Are you sure you want to reload this file?" msgstr "" msgid "All unsaved changes will be lost." msgstr "" msgid "Warning" msgstr "" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" msgid "Copy source -> destination" msgstr "" msgid "Copy Error" msgstr "" msgid "Rename Error" msgstr "" msgid "Select Source File" msgstr "" msgid "Select Source Folder" msgstr "" msgid "Source does not exist." msgstr "" msgid "The source must be within the repository tree." msgstr "" msgid "The destination must be within the repository tree." msgstr "" msgid "Destination file already exists." msgstr "" msgid "Are you sure you want to overwrite it ?" msgstr "" #, python-format msgid "Copy - %s" msgstr "" #, python-format msgid "Rename - %s" msgstr "" msgid "Show all" msgstr "" msgid "### revision set query ###" msgstr "" msgid "Clear current query and query text" msgstr "" msgid "Trigger revision set query" msgstr "" msgid "Open advanced query editor" msgstr "" msgid "Delete selected query from history" msgstr "" msgid "filter" msgstr "" msgid "Toggle filtering of non-matched changesets" msgstr "" msgid "Show/Hide hidden changesets" msgstr "" msgid "Toggle graft relations visibility" msgstr "" msgid "Keyword Search" msgstr "" msgid "Revision Set" msgstr "" msgid "(unsaved)" msgstr "" msgid "Display graph the named branch only" msgstr "" msgid "Display only active branches" msgstr "" msgid "Display closed branches" msgstr "" msgid "Include all ancestors" msgstr "" msgctxt "column header" msgid "Graph" msgstr "" msgctxt "column header" msgid "Rev" msgstr "" msgctxt "column header" msgid "Branch" msgstr "" msgctxt "column header" msgid "Description" msgstr "" msgctxt "column header" msgid "Author" msgstr "" msgctxt "column header" msgid "Tags" msgstr "" msgctxt "column header" msgid "Latest tags" msgstr "" msgctxt "column header" msgid "Node" msgstr "" msgctxt "column header" msgid "Git Commit" msgstr "" msgctxt "column header" msgid "Age" msgstr "" msgctxt "column header" msgid "Local Time" msgstr "" msgctxt "column header" msgid "UTC Time" msgstr "" msgctxt "column header" msgid "Changes" msgstr "" msgctxt "column header" msgid "Converted From" msgstr "" msgctxt "column header" msgid "Phase" msgstr "" msgctxt "column header" msgid "Filename" msgstr "" msgid "Searching..." msgstr "" #, python-format msgid "filling (%d)" msgstr "" msgid "Mercurial User" msgstr "" msgid "Repository Registry" msgstr "" msgid "Show &Paths" msgstr "" msgid "Show S&hort Paths" msgstr "" msgid "&Scan Repositories at Startup" msgstr "" msgid "Scan &Remote Repositories" msgstr "" msgid "&Refresh Repository List" msgstr "" msgid "Refresh the Repository Registry list" msgstr "" msgid "&Open" msgstr "" msgid "Open the repository in a new tab" msgstr "" msgid "&Open All" msgstr "" msgid "Open all repositories in new tabs" msgstr "" msgid "New &Group" msgstr "" msgid "Create a new group" msgstr "" msgid "Rename the entry" msgstr "" msgid "Settin&gs" msgstr "" msgid "View the repository's settings" msgstr "" msgid "Re&move from Registry" msgstr "" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" msgid "Clon&e..." msgstr "" msgid "Clone Repository" msgstr "" msgid "E&xplore" msgstr "" msgid "Open the repository in a file browser" msgstr "" msgid "&Terminal" msgstr "" msgid "Open a shell terminal in the repository root" msgstr "" msgid "&Add Repository..." msgstr "" msgid "Add a repository to this group" msgstr "" msgid "A&dd Subrepository..." msgstr "" msgid "Convert an existing repository into a subrepository" msgstr "" msgid "Remo&ve Subrepository..." msgstr "" msgid "Remove this subrepository from the current revision" msgstr "" msgid "Copy the root path of the repository to the clipboard" msgstr "" msgid "Sort by &Name" msgstr "" msgid "Sort the group by short name" msgstr "" msgid "Sort by &Path" msgstr "" msgid "Sort the group by full path" msgstr "" msgid "&Sort by .hgsub" msgstr "" msgid "Order the subrepos as in .hgsub" msgstr "" msgid "Select repository directory to add" msgstr "" msgid "Select an existing repository to add as a subrepo" msgstr "" msgid "Cannot add subrepository" msgstr "" #, python-format msgid "%s is not a valid repository" msgstr "" #, python-format msgid "\"%s\" is not a folder" msgstr "" msgid "A repository cannot be added as a subrepo of itself" msgstr "" #, python-format msgid "" "The selected folder:

                                        %s

                                        is not inside the target repository." "

                                        This may be allowed but is greatly discouraged.
                                        If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" msgid "Cannot open repository" msgstr "" #, python-format msgid "The selected repository:

                                        %s

                                        cannot be open!" msgstr "" msgid "Subrepository already exists" msgstr "" #, python-format msgid "" "The selected repository:

                                        %s

                                        is already a subrepository of:" "

                                        %s

                                        as: \"%s\"" msgstr "" msgid "Failed to add subrepository" msgstr "" #, python-format msgid "Cannot open the .hgsub file in:

                                        %s" msgstr "" msgid "Failed to add repository" msgstr "" #, python-format msgid "The .hgsub file already contains the line:

                                        %s" msgstr "" msgid "Subrepo added to .hgsub file" msgstr "" #, python-format msgid "" "The selected subrepo:

                                        %s

                                        has been added to the .hgsub " "file of the repository:

                                        %s

                                        Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" #, python-format msgid "Cannot update the .hgsub file in:

                                        %s" msgstr "" msgid "Could not open .hgsub file" msgstr "" msgid "Cannot read the .hgsub file.

                                        Subrepository removal failed." msgstr "" msgid "Subrepository not found" msgstr "" msgid "" "The selected subrepository was not found on the .hgsub file.

                                        Perhaps it " "has already been removed?" msgstr "" msgid "&Yes" msgstr "" msgid "&No" msgstr "" msgid "Remove the selected repository?" msgstr "" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" msgid "Subrepository removed from .hgsub" msgstr "" msgid "" "The selected subrepository has been removed from the .hgsub file.

                                        Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" msgid "Could not update .hgsub file" msgstr "" msgid "Cannot update the .hgsub file.

                                        Subrepository removal failed." msgstr "" #, python-format msgid "Unsupported repository type (%s)" msgstr "" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "" msgid "New Group" msgstr "" msgid "Confirm Delete" msgstr "" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "" msgid "Could not get subrepository list" msgstr "" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

                                        %s" msgstr "" msgid "Could not open some subrepositories" msgstr "" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

                                        %s

                                        The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

                                        %s" msgstr "" msgid "Updating repository registry" msgstr "" #, python-format msgid "Loading repository %s" msgstr "" msgid "Repository Registry updated" msgstr "" msgid "Close tab" msgstr "" msgid "Close other tabs" msgstr "" msgid "Undo close tab" msgstr "" msgid "Reopen last closed tab" msgstr "" msgid "Undo close other tabs" msgstr "" msgid "Reopen last closed tab group" msgstr "" msgid "Failed to open repository" msgstr "" msgid "&Sort" msgstr "" #, python-format msgid "Local Repository %s" msgstr "" #, python-format msgid "" "An exception happened while loading the subrepos of:

                                        \"%s\"

                                        " msgstr "" #, python-format msgid "The exception error message was:

                                        %s

                                        " msgstr "" msgid "Click OK to continue or Abort to exit." msgstr "" msgid "Error loading subrepos" msgstr "" msgid "Unable to update repository name" msgstr "" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "" msgid "default" msgstr "" msgid "C&hoose Log Columns..." msgstr "" msgid "&Resize Columns" msgstr "" #, python-format msgid "Goto ancestor of %s and %s" msgstr "" #, python-format msgid "Can't find revision '%s'" msgstr "" msgid "Drag to change order" msgstr "" msgid "Workbench Log Columns" msgstr "" msgctxt "tab tooltip" msgid "Revision details" msgstr "" msgctxt "tab tooltip" msgid "Commit" msgstr "" msgctxt "tab tooltip" msgid "Search" msgstr "" msgctxt "tab tooltip" msgid "Console log" msgstr "" msgctxt "tab tooltip" msgid "Synchronize" msgstr "" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "" #, python-format msgid "%s " msgstr "" #, python-format msgid "Found %d incoming changesets" msgstr "" msgid "Pull" msgstr "" msgid "Pull incoming changesets into your repository" msgstr "" msgid "Reject incoming changesets" msgstr "" #, python-format msgid "Push current branch (%s)" msgstr "" #, python-format msgid "Push up to current revision (#%d)" msgstr "" #, python-format msgid "Push up to revision #%d" msgstr "" msgid "Push all" msgstr "" msgid "no outgoing changesets" msgstr "" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets" msgstr "" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "" msgid "Nothing to push" msgstr "" msgid "No revision found" msgstr "" #, python-format msgid "%s - verify repository" msgstr "" #, python-format msgid "%s - recover repository" msgstr "" msgid "No transaction available" msgstr "" msgid "There is no rollback transaction available" msgstr "" msgid "Undo last commit?" msgstr "" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "" msgid "Undo last transaction?" msgstr "" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "" msgid "Unable to determine working copy revision\n" msgstr "" msgid "Remove current working revision?" msgstr "" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" msgid "Tab cannot exit" msgstr "" msgid "Pus&h" msgstr "" msgid "Push to &Here" msgstr "" msgid "Push Selected &Branch" msgstr "" msgid "Push &All" msgstr "" msgid "&Update..." msgstr "" msgid "Bro&wse at Revision" msgstr "" msgid "&Merge with Local..." msgstr "" msgid "&Tag..." msgstr "" msgid "Boo&kmark..." msgstr "" msgid "Top&ic..." msgstr "" msgid "Sig&n..." msgstr "" msgid "&Backout..." msgstr "" msgid "Revert &All Files..." msgstr "" msgid "Copy &Hash" msgstr "" msgid "E&xport" msgstr "" msgid "E&xport Patch..." msgstr "" msgid "&Email Patch..." msgstr "" msgid "&Archive..." msgstr "" msgid "&Bundle Rev and Descendants..." msgstr "" msgid "Change &Phase to" msgstr "" msgid "&Graft to Local..." msgstr "" msgid "Modi&fy History" msgstr "" msgid "&Unapply Patch" msgstr "" msgid "Import to &MQ" msgstr "" msgid "MQ &Options" msgstr "" msgid "&Rebase..." msgstr "" msgid "&Prune..." msgstr "" msgid "&Strip..." msgstr "" msgid "Post to Re&view Board..." msgstr "" msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "" msgid "Write diff file" msgstr "" msgid "Unable to write diff file" msgstr "" msgid "Unable to compress history" msgstr "" msgid "Selected changeset pair not related" msgstr "" msgid "Visual Diff..." msgstr "" msgid "Export Diff..." msgstr "" msgid "Export Selected..." msgstr "" msgid "Email Selected..." msgstr "" msgid "Copy Selected as Patch" msgstr "" msgid "Archive DAG Range..." msgstr "" msgid "Export DAG Range..." msgstr "" msgid "Email DAG Range..." msgstr "" msgid "Bundle DAG Range..." msgstr "" msgid "Bisect - Good, Bad..." msgstr "" msgid "Bisect - Bad, Good..." msgstr "" msgid "Compress History..." msgstr "" msgid "Rebase..." msgstr "" msgid "Goto common ancestor" msgstr "" msgid "Graft Selected to local..." msgstr "" msgid "&Prune Selected..." msgstr "" msgid "Post Selected to Review Board..." msgstr "" msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "" msgid "Apply onto original parent" msgstr "" msgid "Apply only this patch" msgstr "" msgid "Fold patches..." msgstr "" msgid "Delete patches..." msgstr "" msgid "Rename patch..." msgstr "" msgid "Pull to here..." msgstr "" msgid "Visual diff..." msgstr "" msgid "Export patch" msgstr "" msgid "Patch Files (*.patch)" msgstr "" msgid "Cannot export revision" msgstr "" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" msgid "There is already an existing folder with that same name." msgstr "" msgid "Replace" msgstr "" msgid "Append" msgstr "" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" msgid "What do you want to do?\n" msgstr "" msgid "Replace the existing patch files.\n" msgstr "" msgid "Append the changes to the existing patch files.\n" msgstr "" msgid "Abort the export operation.\n" msgstr "" msgid "Patch files already exist" msgstr "" msgid "Patch exported" msgstr "" #, python-format msgid "" "Revision #%d (%s) was exported to:

                                        %s%s%s" msgstr "" msgid "Patches exported" msgstr "" #, python-format msgid "%d patches were exported to:

                                        %s" msgstr "" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

                                        Are you sure you want to use revert?

                                        (use " "update to checkout another revision)" msgstr "" msgid "Filter b&y" msgstr "" msgid "&Ancestors and Descendants" msgstr "" msgid "A&uthor" msgstr "" msgid "&Branch" msgstr "" msgid "&More Options..." msgstr "" msgid "Unable to merge" msgstr "" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "" msgid "Unable to backout" msgstr "" msgid "Write bundle" msgstr "" msgid "Backwards phase change requested" msgstr "" msgid "Do you really want to make this revision secret?" msgstr "" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" msgid "&Make secret" msgstr "" msgid "&Cancel" msgstr "" msgid "Do you really want to force a backwards phase transition?" msgstr "" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" msgid "&Force" msgstr "" msgid "Cannot import selected revision" msgstr "" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" msgid "Invalid command" msgstr "" msgid "The selected command is empty" msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" msgid "Failed to execute custom TortoiseHg command" msgstr "" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "" msgid "Failed to execute custom command" msgstr "" #, python-format msgid "The command \"%s\" could not be executed." msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" msgid "&Edit Toolbar" msgstr "" msgid "&Refresh" msgstr "" msgid "&Filter Toolbar" msgstr "" #, python-format msgid "TortoiseHg: %s" msgstr "" msgid "S&tatus Bar" msgstr "" #, python-format msgid "Resolve Conflicts - %s" msgstr "" msgid "Local revision information" msgstr "" msgid "Other revision information" msgstr "" msgid "Unresolved conflicts" msgstr "" msgid "Mercurial Re&solve" msgstr "" msgid "Attempt automatic (trivial) merge" msgstr "" msgid "Tool &Resolve" msgstr "" msgid "Merge using selected merge tool" msgstr "" msgid "&Take Local" msgstr "" msgid "Accept the local file version (yours)" msgstr "" msgid "Take &Other" msgstr "" msgid "Accept the other file version (theirs)" msgstr "" msgid "&Mark as Resolved" msgstr "" msgid "Mark this file as resolved" msgstr "" msgid "Diff &Local to Ancestor" msgstr "" msgid "&Diff Other to Ancestor" msgstr "" msgid "Resolved conflicts" msgstr "" msgid "&Edit File" msgstr "" msgid "Edit resolved file" msgstr "" msgid "3-&Way Diff" msgstr "" msgid "Visual three-way diff" msgstr "" msgid "Visual diff between resolved file and first parent" msgstr "" msgid "&Diff to Other" msgstr "" msgid "Visual diff between resolved file and second parent" msgstr "" msgid "Mark as &Unresolved" msgstr "" msgid "Mark this file as unresolved" msgstr "" msgid "Detected merge/diff tools:" msgstr "" msgid "Command output" msgstr "" msgid "Unable to show subrepository files" msgstr "" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" msgid "There are merge conflicts to be resolved" msgstr "" msgid "All conflicts are resolved." msgstr "" msgid "There are no conflicting file merges." msgstr "" msgid "Exit without finishing resolve?" msgstr "" msgid "Unresolved conflicts remain. Are you sure?" msgstr "" msgid "E&xit" msgstr "" msgid "Ext" msgstr "" msgid "Repository" msgstr "" msgid "" msgstr "" msgid "File List Toolbar" msgstr "" msgid "Ma&nifest Mode" msgstr "" msgid "Show all version-controlled files in tree view" msgstr "" msgid "&Flat List" msgstr "" msgid "### filter text ###" msgstr "" msgid "Changed by &This Commit" msgstr "" msgid "Show files changed by this commit" msgstr "" msgid "Compare to &1st Parent" msgstr "" msgid "Compare to &2nd Parent" msgstr "" msgid "Toggle parent to be used as the base revision" msgstr "" msgid "List Optio&ns" msgstr "" #, python-format msgid "%s - Revision Details (%s)" msgstr "" #, python-format msgid "Revert - %s" msgstr "" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "" msgid "Revert all files to this revision" msgstr "" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "" msgid "null revision (i.e. remove file(s))" msgstr "" msgid "Changeset:" msgstr "" msgid "Child:" msgstr "" msgid "Predecessors:" msgstr "" msgid "Successors:" msgstr "" msgid "Head is closed!" msgstr "" msgid "Changesets where username contains string." msgstr "" msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" msgid "Like \"keyword(string)\" but accepts a regex." msgstr "" msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" msgid "The named bookmark or all bookmarks." msgstr "" msgid "The named tag or all tags." msgstr "" msgid "Changeset is tagged." msgstr "" msgid "Changeset is a named branch head." msgstr "" msgid "Changeset is a merge changeset." msgstr "" msgid "Changeset is closed." msgstr "" msgid "" "Changesets within the interval, see help dates" msgstr "" msgid "Greatest common ancestor of the two changesets." msgstr "" msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" msgid "Changesets which modify files matched by pattern." msgstr "" msgid "Changesets which add files matched by pattern." msgstr "" msgid "Changesets which remove files matched by pattern." msgstr "" msgid "Changesets containing files matched by pattern." msgstr "" msgid "All changesets belonging to the branches of changesets in set." msgstr "" msgid "Members of a set with no children in set." msgstr "" msgid "Changesets which are descendants of changesets in set." msgstr "" msgid "Changesets that are ancestors of a changeset in set." msgstr "" msgid "Child changesets of changesets in set." msgstr "" msgid "The set of all parents for all changesets in set." msgstr "" msgid "First parent for all changesets in set, or the working directory." msgstr "" msgid "Second parent for all changesets in set, or the working directory." msgstr "" msgid "Changesets with no parent changeset in set." msgstr "" msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" msgid "Changeset with lowest revision number in set." msgstr "" msgid "Changeset with highest revision number in set." msgstr "" msgid "First n members of a set." msgstr "" msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "" msgid "All changesets, the same as 0:tip." msgstr "" msgid "Revision Set Query" msgstr "" msgid "all revisions converted from subversion" msgstr "" msgid "changeset which represents converted svn revision" msgstr "" msgid "Common sets" msgstr "" msgid "File pattern sets" msgstr "" msgid "Set Ancestry" msgstr "" msgid "Set Logic" msgstr "" msgid "" "help " "revsets" msgstr "" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" #, python-format msgid "thg: unknown command '%s'\n" msgstr "" #, python-format msgid "thg %s: %s\n" msgstr "" #, python-format msgid "thg: %s\n" msgstr "" #, python-format msgid "abort: %s!\n" msgstr "" #, python-format msgid "abort: %s\n" msgstr "" #, python-format msgid "(%s)\n" msgstr "" msgid "option --config may not be abbreviated!" msgstr "" msgid "invalid arguments" msgstr "" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" msgid "repository root directory or symbolic path name" msgstr "" msgid "enable additional output" msgstr "" msgid "suppress output" msgstr "" msgid "display help and exit" msgstr "" msgid "set/override config option (use 'section.name=value')" msgstr "" msgid "enable debugging output" msgstr "" msgid "start debugger" msgstr "" msgid "print command execution profile" msgstr "" msgid "do not fork GUI process" msgstr "" msgid "always fork GUI process" msgstr "" msgid "read file list from file" msgstr "" msgid "read file list from file encoding utf-8" msgstr "" msgid "thg about" msgstr "" msgid "thg add [FILE]..." msgstr "" msgid "revision to annotate" msgstr "" msgid "open to line" msgstr "" msgid "initial search pattern" msgstr "" msgid "thg annotate" msgstr "" #, python-format msgid "invalid line number: %s" msgstr "" msgid "revision to archive" msgstr "" msgid "thg archive" msgstr "" msgid "merge with old dirstate parent after backout" msgstr "" msgid "parent to choose when backing out merge" msgstr "" msgid "revision to backout" msgstr "" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "" msgid "thg bisect" msgstr "" msgid "revision" msgstr "" msgid "thg bookmarks [-r REV] [NAME]" msgstr "" msgid "only one new bookmark name allowed" msgstr "" msgid "the clone will include an empty working copy (only a repository)" msgstr "" msgid "revision, tag or branch to check out" msgstr "" msgid "include the specified changeset" msgstr "" msgid "clone only the specified branch" msgstr "" msgid "use pull protocol to copy metadata" msgstr "" msgid "use uncompressed transfer (fast over LAN)" msgstr "" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "" msgid "record user as committer" msgstr "" msgid "record datecode as commit date" msgstr "" msgid "thg commit [OPTIONS] [FILE]..." msgstr "" msgid "thg debugblockmatcher" msgstr "" msgid "thg debugbugreport [TEXT]" msgstr "" msgid "thg debugconsole" msgstr "" msgid "thg debuglighthg" msgstr "" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "" msgid "no command specified" msgstr "" msgid "thg drag_copy SOURCE... DEST" msgstr "" msgid "thg drag_move SOURCE... DEST" msgstr "" msgid "a revision to send" msgstr "" msgid "thg email [REVS]" msgstr "" msgid "use only one form to specify the revision" msgstr "" msgid "select the specified revision" msgstr "" msgid "side-by-side comparison of revisions" msgstr "" msgid "thg filelog [OPTION]... FILE" msgstr "" msgid "requires a single filename" msgstr "" msgid "thg forget [FILE]..." msgstr "" msgid "revisions to graft" msgstr "" msgid "thg graft [-r] REV..." msgstr "" msgid "You must provide revisions to graft" msgstr "" msgid "ignore case during search" msgstr "" msgid "thg grep" msgstr "" msgid "thg guess" msgstr "" msgid "thg help [COMMAND]" msgstr "" msgid "global options:" msgstr "" msgid "use \"thg help\" for the full list of commands" msgstr "" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "" msgid "" "list of commands:\n" "\n" msgstr "" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" msgid "(no help text available)" msgstr "" msgid "options:\n" msgstr "" msgid "no commands defined\n" msgstr "" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "" msgid "" "basic commands:\n" "\n" msgstr "" #, python-format msgid " (default: %s)" msgstr "" msgid "thg hgignore [FILE]" msgstr "" msgid "import to the patch queue (MQ)" msgstr "" msgid "thg import [OPTION] [SOURCE]..." msgstr "" msgid "thg init [DEST]" msgstr "" msgid "thg lock" msgstr "" msgid "search for a given text or revset" msgstr "" msgid "(DEPRECATED)" msgstr "" msgid "open a new workbench window" msgstr "" msgid "thg log [OPTIONS] [FILE]" msgstr "" msgid "cannot specify both -k/--query and filenames" msgstr "" msgid "revision to display" msgstr "" msgid "thg manifest [-r REV] [FILE]" msgstr "" msgid "revision to merge" msgstr "" msgid "thg merge [[-r] REV]" msgstr "" msgid "Merge revision not specified or not found" msgstr "" msgid "a revision to post" msgstr "" msgid "thg postreview [-r] REV..." msgstr "" msgid "reviewboard extension not enabled" msgstr "" #, python-format msgid "see %(url)s" msgstr "" msgid "no revisions specified" msgstr "" msgid "revisions to prune" msgstr "" msgid "thg prune [-r] REV..." msgstr "" msgid "thg purge" msgstr "" msgid "keep original changesets" msgstr "" msgid "keep original branch names" msgstr "" msgid "rebase from the specified changeset" msgstr "" msgid "rebase onto the specified changeset" msgstr "" msgid "thg rebase -s REV -d REV [--keep]" msgstr "" msgid "Rebase already in progress" msgstr "" msgid "Resuming rebase already in progress" msgstr "" msgid "You must provide source and dest arguments" msgstr "" msgid "thg rejects [FILE]" msgstr "" msgid "You must provide the path to a file" msgstr "" msgid "thg remove [FILE]..." msgstr "" msgid "thg rename [SOURCE] [DEST]" msgstr "" msgid "field to give initial focus" msgstr "" msgid "thg repoconfig" msgstr "" msgid "thg resolve" msgstr "" msgid "the revision to show" msgstr "" msgid "thg revdetails [-r REV]" msgstr "" msgid "thg revert [FILE]..." msgstr "" msgid "revision to update" msgstr "" msgid "thg rupdate [[-r] REV]" msgstr "" msgid "name of the hgweb config file (serve more than one repository)" msgstr "" msgid "name of the hgweb config file (DEPRECATED)" msgstr "" msgid "thg serve [--web-conf FILE]" msgstr "" msgid "thg shellconfig" msgstr "" msgid "thg shelve" msgstr "" msgid "sign even if the sigfile is modified" msgstr "" msgid "make the signature local" msgstr "" msgid "the key id to sign with" msgstr "" msgid "do not commit the sigfile after signing" msgstr "" msgid "use as commit message" msgstr "" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "" msgid "Please enable the Gpg extension first." msgstr "" msgid "show files without changes" msgstr "" msgid "show ignored files" msgstr "" msgid "thg status [OPTIONS] [FILE]" msgstr "" msgid "discard uncommitted changes (no backup)" msgstr "" msgid "do not back up stripped revisions" msgstr "" msgid "do not modify working copy during strip" msgstr "" msgid "revision to strip" msgstr "" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "" msgid "open the bookmark sync window" msgstr "" msgid "thg sync [OPTION]... [PEER]" msgstr "" msgid "replace existing tag" msgstr "" msgid "make the tag local" msgstr "" msgid "revision to tag" msgstr "" msgid "remove a tag" msgstr "" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "" msgid "wait until the second ticks over" msgstr "" msgid "notify the shell for paths given" msgstr "" msgid "remove the status cache" msgstr "" msgid "show the contents of the status cache (no update)" msgstr "" msgid "update all repos in current dir" msgstr "" msgid "thg thgstatus [OPTION]" msgstr "" msgid "thg topics [-r REV] [NAME]" msgstr "" msgid "Please enable the Topic extension first." msgstr "" msgid "only one new topic name allowed" msgstr "" msgid "thg update [-C] [[-r] REV]" msgstr "" msgid "thg userconfig" msgstr "" msgid "changeset to view in diff tool" msgstr "" msgid "revisions to view in diff tool" msgstr "" msgid "bundle file to preview" msgstr "" msgid "launch visual diff tool" msgstr "" msgid "print license" msgstr "" msgid "thg version [OPTION]" msgstr "" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "" msgid "Location:" msgstr "" msgid "Update to:" msgstr "" msgid "Options:" msgstr "" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "" msgid "Perform a push before updating (-p/--push)" msgstr "" msgid "Allow pushing new branches (--new-branch)" msgstr "" msgid "Force push to remote location (-f/--force)" msgstr "" msgid "remove working directory" msgstr "" msgid "unknown revision!" msgstr "" #, python-format msgid "Remote Update - %s" msgstr "" msgid "&Update" msgstr "" msgid "Log" msgstr "" msgid "Repositories" msgstr "" #, python-format msgid "Running at %s" msgstr "" msgid "Stopped" msgstr "" msgid "TortoiseHg Web Server" msgstr "" msgid "Web Server" msgstr "" msgid "Port:" msgstr "" msgid "Status:" msgstr "" msgid "Start" msgstr "" msgid "Settings" msgstr "" msgid "" msgstr "" msgid "&True" msgstr "" msgid "&False" msgstr "" msgid "&Unspecified" msgstr "" #, python-format msgid "%dpt" msgstr "" msgid "Bold" msgstr "" msgid "Italic" msgstr "" msgid "Strike" msgstr "" msgid "Underline" msgstr "" msgid "&Set..." msgstr "" msgid "&Clear" msgstr "" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "" msgid "&Browse..." msgstr "" msgid "UI Language" msgstr "" msgid "Specify your preferred user interface language (restart needed)" msgstr "" msgid "Three-way Merge Tool" msgstr "" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" msgid "Visual Diff Tool" msgstr "" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" msgid "Visual Editor" msgstr "" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" msgid "CLI Editor" msgstr "" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" msgid "Shell" msgstr "" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
                                        Default, Windows: cmd.exe /" "K title %(reponame)s
                                        Default, OS X: not set
                                        Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" msgid "Immediate Operations" msgstr "" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" msgid "Tab Width" msgstr "" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" msgid "Force Repo Tab" msgstr "" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "" msgid "Monitor Repo Changes" msgstr "" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" msgid "Max Diff Size" msgstr "" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" msgid "Fork GUI" msgstr "" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" msgid "Full Path Title" msgstr "" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" msgid "Auto-resolve merges" msgstr "" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" msgid "New Repo Skeleton" msgstr "" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "" msgid "Single Workbench Window" msgstr "" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" msgid "Default widget" msgstr "" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" msgid "" "Open new tabs next\n" "to the current tab" msgstr "" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" msgid "Author Coloring" msgstr "" msgid "Color changesets by author name. Default: False" msgstr "" msgid "Full Authorname" msgstr "" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" msgid "Task Tabs" msgstr "" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" msgid "Task Toolbar Order" msgstr "" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
                                        Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
                                        Valid names are: log commit sync grep and " "pbranch.
                                        Default: log commit grep pbranch | sync" msgstr "" msgid "Long Summary" msgstr "" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" msgid "Log Batch Size" msgstr "" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "" msgid "Dead Branches" msgstr "" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" msgid "Branch Colors" msgstr "" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" msgid "Hide Tags" msgstr "" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" msgid "Activate Bookmarks" msgstr "" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

                                        • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
                                        • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
                                        • never: Never show any prompt to " "activate any bookmarks.

                                        Default: prompt" msgstr "" msgid "Show Family Line" msgstr "" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

                                        Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" msgid "Use optimized graph layouter" msgstr "" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

                                        Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" msgctxt "config item" msgid "Commit" msgstr "" msgid "Username" msgstr "" msgid "" "Name associated with commits. The common format is:
                                        Full Name <" "email@example.com>" msgstr "" msgid "Ask Username" msgstr "" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" msgid "Summary Line Length" msgstr "" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" msgid "Close After Commit" msgstr "" msgid "Close the commit tool after every successful commit. Default: False" msgstr "" msgid "Push After Commit" msgstr "" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" msgid "Auto Commit List" msgstr "" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" msgid "Auto Exclude List" msgstr "" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" msgid "English Messages" msgstr "" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" msgid "New Commit Phase" msgstr "" msgid "The phase of new commits. Default: draft" msgstr "" msgid "Secret MQ Patches" msgstr "" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "" msgid "Check Subrepo Phase" msgstr "" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" msgid "Monitor working
                                        directory changes" msgstr "" msgid "" "Select when the working directory status list will be refreshed:
                                        - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
                                        TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
                                        - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
                                        - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
                                        Default: auto" msgstr "" msgid "Confirm adding unknown files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Confirm deleting files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Sync" msgstr "" msgid "After Pull Operation" msgstr "" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" msgid "Default Push" msgstr "" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

                                        • all: The default. Push all changes in all " "branches.
                                        • branch: Push all changes in the current branch.
                                        • revision: Push the changes in the current branch up to the current revision.

                                        Default: all" msgstr "" msgid "Confirm Push" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" msgid "Target Combo" msgstr "" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

                                        • auto: The default. Show the combo if more than one target " "configured.
                                        • always: Always show the combo.

                                        Default: auto" msgstr "" msgid "SSH Command" msgstr "" msgid "" "Command to use for SSH connections.

                                        Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" msgid "Subrepository Features:" msgstr "" msgid "Allow Hg Subrepos" msgstr "" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" msgid "Allow Git Subrepos" msgstr "" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

                                        See the security note before enabling Git " "subrepos." msgstr "" msgid "Allow SVN Subrepos" msgstr "" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

                                        See the security note before enabling " "Subversion subrepos." msgstr "" msgid "Server" msgstr "" msgid "Repository Details:" msgstr "" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" msgid "Encoding" msgstr "" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" msgid "'Publishing' repository" msgstr "" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" msgid "Web Server:" msgstr "" msgid "Textual description of the repository's purpose or contents." msgstr "" msgid "Contact" msgstr "" msgid "Name or email address of the person in charge of the repository." msgstr "" msgid "Style" msgstr "" msgid "Which template map style to use" msgstr "" msgid "Archive Formats" msgstr "" msgid "Comma separated list of archive formats allowed for downloading" msgstr "" msgid "Port" msgstr "" msgid "Port to listen on" msgstr "" msgid "Push Requires SSL" msgstr "" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" msgid "Stripes" msgstr "" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" msgid "Max Files" msgstr "" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "" msgid "Max Changes" msgstr "" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "" msgid "Allow Push" msgstr "" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" msgid "Deny Push" msgstr "" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" msgid "Proxy" msgstr "" msgid "Host" msgstr "" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "" msgid "Bypass List" msgstr "" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "" msgid "Optional. User name to authenticate with at the proxy server" msgstr "" msgid "Password" msgstr "" msgid "Optional. Password to authenticate with at the proxy server" msgstr "" msgid "From" msgstr "" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "" msgid "To" msgstr "" msgid "Comma-separated list of recipient email addresses" msgstr "" msgid "Cc" msgstr "" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "" msgid "Bcc" msgstr "" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "" msgid "method" msgstr "" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" msgid "SMTP Host" msgstr "" msgid "Host name of mail server" msgstr "" msgid "SMTP Port" msgstr "" msgid "Port to connect to on mail server. Default: 25" msgstr "" msgid "SMTP TLS" msgstr "" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "" msgid "SMTP Username" msgstr "" msgid "Username to authenticate to mail server with" msgstr "" msgid "SMTP Password" msgstr "" msgid "Password to authenticate to mail server with" msgstr "" msgid "Local Hostname" msgstr "" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "" msgid "Diff and Annotate" msgstr "" msgid "Patch EOL" msgstr "" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" msgid "Git Format" msgstr "" msgid "Use git extended diff header format. Default: False" msgstr "" msgid "MQ Git Format" msgstr "" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" msgid "No Dates" msgstr "" msgid "Do not include modification dates in diff headers. Default: False" msgstr "" msgid "Show Function" msgstr "" msgid "Show which function each change is in. Default: False" msgstr "" msgid "Ignore White Space" msgstr "" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "" msgid "Ignore WS Amount" msgstr "" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "" msgid "Ignore Blank Lines" msgstr "" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "" msgid "Annotate:" msgstr "" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "" msgid "Fonts" msgstr "" msgid "Message Font" msgstr "" msgid "Font used to display commit messages. Default: monospace 10" msgstr "" msgid "Diff Font" msgstr "" msgid "Font used to display text differences. Default: monospace 10" msgstr "" msgid "ChangeLog Font" msgstr "" msgid "Font used to display changelog data. Default: monospace 10" msgstr "" msgid "Output Font" msgstr "" msgid "Font used to display output messages. Default: sans 8" msgstr "" msgid "Extensions" msgstr "" msgid "Tools" msgstr "" msgid "Hooks" msgstr "" msgid "Issue Tracking" msgstr "" msgid "Issue Regex" msgstr "" msgid "Defines the regex to match when picking up issue numbers." msgstr "" msgid "Issue Link" msgstr "" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" msgid "Inline Tags" msgstr "" msgid "Show tags at start of commit message." msgstr "" msgid "Mandatory Issue Reference" msgstr "" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" msgid "Issue Tracker Plugin" msgstr "" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" msgid "Configure Issue Tracker" msgstr "" msgid "Configure the selected COM Bug Tracker plugin." msgstr "" msgid "Issue Tracker Trigger" msgstr "" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

                                        • never: Do not update the Issue Tracker " "state automatically.
                                        • commit: Update the Issue Tracker state after " "a successful commit.

                                        Default: never" msgstr "" msgid "Changeset Link" msgstr "" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
                                        The template string " "uses a normal mercurial template syntax, such as:

                                        • {node|short} : replaced by " "the 12 digit revision id.
                                        • {rev} : replaced by the revision number." "
                                        • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
                                        For example, in order to " "link to bitbucket commit pages you can set this to:
                                        https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
                                        You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
                                        https://github.com/torvalds/" "linux/commit/{gitnode}
                                        https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
                                        " msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "" msgid "User name to authenticate with review board" msgstr "" msgid "Password to authenticate with review board" msgstr "" msgid "Server Repository ID" msgstr "" msgid "The default repository id for this repo on the review board server" msgstr "" msgid "Target Groups" msgstr "" msgid "A comma separated list of target groups" msgstr "" msgid "Target People" msgstr "" msgid "A comma separated list of target people" msgstr "" msgid "Kiln Bfiles" msgstr "" msgid "Patterns" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" msgid "Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" msgid "System Cache" msgstr "" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "" msgid "Simplelock" msgstr "" msgid "Lock Clone" msgstr "" msgid "" "Location of local clone of organizational lock repository.

                                        This repository " "must contain a \"locked\" text file" msgstr "" msgid "Largefiles" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" msgid "Minimum Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" msgid "User Cache" msgstr "" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" msgid "Projrc" msgstr "" msgid "Require confirmation" msgstr "" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

                                        • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
                                        • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
                                        • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
                                        " msgstr "" msgid "Servers" msgstr "" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" msgid "Include" msgstr "" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" msgid "Exclude" msgstr "" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" msgid "Update on incoming" msgstr "" msgid "" "Let the user update the projrc on incoming:
                                        • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
                                        • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
                                        • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                                          Default: never" msgstr "" msgid "GnuPG" msgstr "" msgid "Specify the path to GPG. Default: gpg" msgstr "" msgid "Key ID" msgstr "" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "" msgid "TortoiseHg Settings" msgstr "" msgid "Iniparse package not found" msgstr "" msgid "Can't change settings without iniparse package - view is readonly." msgstr "" #, python-format msgid "%s's global settings" msgstr "" msgid "No repository found" msgstr "" msgid "no repo at " msgstr "" #, python-format msgid "%s project settings (.hg/projrc)" msgstr "" #, python-format msgid "%s repository settings" msgstr "" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "" msgid "Apply changes before exit?" msgstr "" msgid "&No (discard changes)" msgstr "" msgid "Reload" msgstr "" msgid "Settings File:" msgstr "" msgid "Confirm Save" msgstr "" msgid "Save changes before editing?" msgstr "" msgid "&Save" msgstr "" msgid "Confirm Reload" msgstr "" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" msgid "Unable to create a Mercurial.ini file" msgstr "" msgid "Insufficient access rights, reverting to read-only mode." msgstr "" msgid "Context Menu" msgstr "" msgid "Top menu items:" msgstr "" msgid "Sub menu items:" msgstr "" msgid "Menu Behavior" msgstr "" msgid "Hide context menu outside repositories" msgstr "" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" msgid "Icons" msgstr "" msgid "Overlays" msgstr "" msgid "Enabled overlays" msgstr "" msgid "Local disks only" msgstr "" msgid "Enabled Overlay Handlers" msgstr "" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "" msgid "Added" msgstr "" msgid "Locked*" msgstr "" msgid "Ignored*" msgstr "" msgid "Unversioned" msgstr "" msgid "Readonly*" msgstr "" msgid "Deleted*" msgstr "" msgid "*: not used by TortoiseHg" msgstr "" msgid "Taskbar" msgstr "" msgid "Show Icon" msgstr "" msgid "Highlight Icon" msgstr "" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" msgid "Explorer Extension Settings - TortoiseHg" msgstr "" msgid "Clear" msgstr "" msgid "Clear the current shelf file" msgstr "" msgid "Delete the current shelf file" msgstr "" msgid "Left Toolbar" msgstr "" msgid "Delete selected chunks" msgstr "" msgid "Move all files right" msgstr "" msgid "Move selected file right" msgstr "" msgid "Edit file" msgstr "" msgid "Move selected chunks right" msgstr "" msgid "Refresh Toolbar" msgstr "" msgid "Refresh" msgstr "" msgid "New Shelf" msgstr "" msgid "Right Toolbar" msgstr "" msgid "Move selected chunks left" msgstr "" msgid "Move selected file left" msgstr "" msgid "Move all files left" msgstr "" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "" msgid "Delete selected chunks from working copy?" msgstr "" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "" msgid "Are you sure?" msgstr "" msgid "TortoiseHg New Shelf Name" msgstr "" msgid "Specify name of new shelf" msgstr "" msgid "Bad filename" msgstr "" #, python-format msgid "A shelf name cannot contain %s" msgstr "" msgid "File already exists" msgstr "" msgid "A shelf file of that name already exists" msgstr "" msgid "New shelf created" msgstr "" #, python-format msgid "Delete shelf file %s?" msgstr "" msgid "Shelf deleted" msgstr "" msgid "Revert all working copy changes?" msgstr "" #, python-format msgid "Clear contents of shelf file %s?" msgstr "" msgid "Shelf cleared" msgstr "" #, python-format msgid "Shelf: %s" msgstr "" #, python-format msgid "Patch: %s" msgstr "" msgid "Key:" msgstr "" msgid "Local sign" msgstr "" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "" msgid "No commit" msgstr "" msgid "Use custom commit message:" msgstr "" msgid "&Sign" msgstr "" #, python-format msgid "Sign - %s" msgstr "" msgid "Signature has been added" msgstr "" msgid "Repository command still running" msgstr "" msgid "Filter:" msgstr "" msgid "Check all files" msgstr "" msgid "Uncheck all files" msgstr "" msgid "Status File List Toolbar" msgstr "" msgid "Remove filter, show root" msgstr "" #, python-format msgid "%s - status (selection filtered)" msgstr "" #, python-format msgid "%s - status" msgstr "" msgid "Check" msgstr "" msgid "Uncheck" msgstr "" msgid "status" msgstr "" msgid "Failed to refresh" msgstr "" msgid "No appropriate files" msgstr "" msgid "No files found for this operation" msgstr "" msgid "Stat" msgstr "" msgid "M" msgstr "" msgid "Filename" msgstr "" msgid "Size (KB)" msgstr "" #, python-format msgid "Checked count: %d" msgstr "" msgid ", resolved merge" msgstr "" msgid ", unresolved merge" msgstr "" #, python-format msgid "%s is modified" msgstr "" msgid "modified" msgstr "" #, python-format msgid "%s is added" msgstr "" msgid "added" msgstr "" #, python-format msgid "%s is removed" msgstr "" msgid "removed" msgstr "" #, python-format msgid "%s is not tracked (unknown)" msgstr "" msgid "unknown" msgstr "" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "" msgid "missing" msgstr "" #, python-format msgid "%s is ignored" msgstr "" msgid "ignored" msgstr "" #, python-format msgid "%s is not modified (clean)" msgstr "" msgid "clean" msgstr "" #, python-format msgid "%s is a dirty subrepo" msgstr "" msgid "subrepo" msgstr "" msgid "Check for incoming changes from selected URL" msgstr "" msgid "Pull incoming changes from selected URL" msgstr "" msgid "Detect outgoing changes to selected URL" msgstr "" msgid "Push outgoing changes to selected URL" msgstr "" msgid "Sync Bookmarks" msgstr "" msgid "Email outgoing changesets for remote repository" msgstr "" msgid "Manage pending perforce changelists" msgstr "" msgid "Unbundle" msgstr "" msgid "Selected Options:" msgstr "" msgid "Path Edit Toolbar" msgstr "" msgid "Security" msgstr "" msgid "Manage HTTPS connection security and user authentication" msgstr "" msgid "Save" msgstr "" msgid "Save current URL under an alias" msgstr "" msgid "Paths in Repository Settings:" msgstr "" msgid "Related Paths:" msgstr "" msgid "branch: " msgstr "" msgid "bookmark: " msgstr "" #, python-format msgid "rev: %d (%s)" msgstr "" msgid "Post Pull: " msgstr "" msgid "&Edit..." msgstr "" msgid "&Remove..." msgstr "" msgid "Repository not local" msgstr "" msgid "A terminal shell cannot be opened for remote" msgstr "" msgid "Confirm path delete" msgstr "" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "" msgid "Select repository" msgstr "" msgid "No host specified" msgstr "" msgid "Please set a valid URL to continue." msgstr "" msgid "No remote repository URL or path set" msgstr "" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

                                          Please type and save a remote repository path on the " "Sync widget." msgstr "" msgid "Redundant authentication info" msgstr "" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" msgid "sync command already running" msgstr "" #, python-format msgid "Getting incoming changesets from %s..." msgstr "" #, python-format msgid "Found incoming changesets from %s" msgstr "" #, python-format msgid "No incoming changesets from %s" msgstr "" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "" #, python-format msgid "Pulling from %s..." msgstr "" #, python-format msgid "Pull from %s completed" msgstr "" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "" msgid "Merge caused file conflicts" msgstr "" msgid "File conflicts need to be resolved" msgstr "" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "" #, python-format msgid "%d outgoing changesets to %s" msgstr "" #, python-format msgid "No outgoing changesets to %s" msgstr "" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "" msgid "Perforce pending..." msgstr "" #, python-format msgid "%s (submitted)" msgstr "" #, python-format msgid "%s (pending)" msgstr "" msgid "Unable to parse p4pending output" msgstr "" #, python-format msgid "%d pending changelists found" msgstr "" msgid "No pending Perforce changelists" msgstr "" msgid "Aborted p4pending" msgstr "" msgid "Unable to determine pending changesets" msgstr "" msgid "Confirm Push to remote Repository" msgstr "" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" #, python-format msgid "Push to %s aborted" msgstr "" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" #, python-format msgid "Pushing to %s..." msgstr "" #, python-format msgid "Push to %s completed" msgstr "" #, python-format msgid "Push to %s aborted, ret %d" msgstr "" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" msgid "Determining outgoing changesets to email..." msgstr "" msgid "No outgoing changesets" msgstr "" #, python-format msgid "Outgoing aborted, ret %d" msgstr "" msgid "Select bundle file" msgstr "" msgid "Bundle files (*.hg)" msgstr "" msgid "Unable to remove URL" msgstr "" msgid "Post Pull Behavior" msgstr "" msgid "Select post-pull operation for this repository" msgstr "" msgid "None - simply pull changesets" msgstr "" msgid "Update - pull, then try to update" msgstr "" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "" msgid "Rebase - rebase local commits above pulled changes" msgstr "" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "" msgid "Launch settings tool..." msgstr "" msgid "Unable to save post pull operation" msgstr "" msgid "Save Path" msgstr "" msgid "Alias" msgstr "" msgid "URL" msgstr "" msgid "Remove authentication data from URL" msgstr "" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" msgid "Update subrepo paths" msgstr "" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" msgid "Unable to save an URL" msgstr "" msgid "Confirm URL replace" msgstr "" #, python-format msgid "%s already exists, replace URL?" msgstr "" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

                                          %s

                                          Replace it with the " "following URL?:

                                          %s" msgstr "" msgid "Security: " msgstr "" #, python-format msgid "Host: %s" msgstr "" msgid "Secure HTTPS Connection" msgstr "" msgid "Verify with Certificate Authority certificates (best)" msgstr "" msgid "Verify with stored host fingerprint (good)" msgstr "" msgid "No host validation, but still encrypted (bad)" msgstr "" msgid "### host certificate fingerprint ###" msgstr "" msgid "Query" msgstr "" msgid "TLS 1.0" msgstr "" msgid "TLS 1.1" msgstr "" msgid "TLS 1.2" msgstr "" msgid "Minimum Protocol" msgstr "" msgid "User Authentication" msgstr "" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Key" msgstr "" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Chain" msgstr "" msgid "Certificate Query Error" msgstr "" msgid "Select User Certificate Key File" msgstr "" msgid "PEM files (*.pem *.key)" msgstr "" msgid "Select User Certificate Chain File" msgstr "" msgid "PEM files (*.pem *.crt *.cer)" msgstr "" msgid "Unable to save authentication" msgstr "" #, python-format msgid "%s - sync options" msgstr "" msgid "Allow push of a new branch (--new-branch)" msgstr "" msgid "Force push or pull (override safety checks, --force)" msgstr "" msgid "Temporarily disable configured HTTP proxy" msgstr "" msgid "Emit debugging output (--debug)" msgstr "" msgid "Work on patch queue (--mq)" msgstr "" #, python-format msgid "Tag - %s" msgstr "" msgid "Tag:" msgstr "" msgid "Tagged:" msgstr "" msgid "Local tag" msgstr "" msgid "Replace existing tag (-f/--force)" msgstr "" msgid "Use English commit message" msgstr "" msgid "local" msgstr "" msgid "Move" msgstr "" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "" #, python-format msgid "Added tag %s for changeset %s" msgstr "" #, python-format msgid "Tag '%s' has been moved" msgstr "" #, python-format msgid "Tag '%s' has been added" msgstr "" #, python-format msgid "Removed tag %s" msgstr "" #, python-format msgid "Tag '%s' has been removed" msgstr "" msgid "Patch files (*.diff *.patch)" msgstr "" #, python-format msgid "Import - %s" msgstr "" msgid "Browse Directory..." msgstr "" msgid "Import from Clipboard" msgstr "" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "" msgid "Preview:" msgstr "" msgid "Shelf" msgstr "" msgid "Checking working directory status..." msgstr "" msgid "&Import" msgstr "" msgid "Working directory is not clean! View changes..." msgstr "" msgid "Select patches" msgstr "" msgid "Select Directory containing patches" msgstr "" #, python-format msgid "%s patches" msgstr "" #, python-format msgid "%s will be imported to " msgstr "" msgid "Nothing to import" msgstr "" msgid "Strip:" msgstr "" msgid "Discard local changes, no backup (-f/--force)" msgstr "" msgid "No backup (-n/--nobackup)" msgstr "" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "" msgstr[1] "" msgid "Unknown revision!" msgstr "" msgid "Detected uncommitted local changes." msgstr "" msgid "Do you want to keep them or discard them?" msgstr "" msgid "&Keep (--keep)" msgstr "" msgid "&Discard (--force)" msgstr "" msgid "Confirm Strip" msgstr "" #, python-format msgid "Strip - %s" msgstr "" msgid "&Strip" msgstr "" msgid "Topic:" msgstr "" msgid "&Rename" msgstr "" #, python-format msgid "Topic - %s" msgstr "" #, python-format msgid "A topic named \"%s\" already exists" msgstr "" #, python-format msgid "Topic '%s' has been added" msgstr "" #, python-format msgid "Topic '%s' does not exist" msgstr "" #, python-format msgid "Topic '%s' has been removed" msgstr "" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "" msgid "Parent 1:" msgstr "" msgid "Parent 2:" msgstr "" msgid "Pull subrepos from:" msgstr "" msgid "List updated files (--verbose)" msgstr "" msgid "Discard local changes, no backup (-C/--clean)" msgstr "" msgid "Always merge (when possible)" msgstr "" msgid "(same as parent)" msgstr "" msgid "Activate bookmark?" msgstr "" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

                                          Do " "you want to activate it?
                                          You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

                                          Select " "the bookmark that you want to activate and click OK.

                                          Click " "Cancel if you don't want to activate any of them.

                                          You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                          " msgstr "" msgid "Deactivate current bookmark?" msgstr "" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" msgid "Discard - discard local changes, no backup" msgstr "" msgid "&Shelve" msgstr "" msgid "Shelve - move local changes to a patch" msgstr "" msgid "Merge - allow to merge with local changes" msgstr "" msgid "Confirm Update" msgstr "" #, python-format msgid "Update - %s" msgstr "" msgid "[non-existant]" msgstr "" msgid "Tool launch failure" msgstr "" #, python-format msgid "%s : %s" msgstr "" msgid "No diff tool found" msgstr "" msgid "No visual diff tools were detected" msgstr "" msgid "[working copy]" msgstr "" msgid "[original]" msgstr "" msgid "Unable to find changeset" msgstr "" msgid "You likely need to refresh this application" msgstr "" msgid "No file changes" msgstr "" msgid "There are no file changes to view" msgstr "" msgid "working changes" msgstr "" #, python-format msgid "changeset %d:%s" msgstr "" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "" msgid "Visual Diffs - " msgstr "" msgid " filtered" msgstr "" msgid "Temporary files are removed when this dialog is closed" msgstr "" msgid "Select Tool:" msgstr "" msgid "Dir diff to p1" msgstr "" msgid "Dir diff to p2" msgstr "" msgid "3-way dir diff" msgstr "" msgid "Directory diff" msgstr "" msgid "Confirm Discard" msgstr "" msgid "Discard outstanding changes to working directory?" msgstr "" msgid "Config files (*.conf *.config *.ini)" msgstr "" msgid "Open hgweb config" msgstr "" msgid "Save hgweb config" msgstr "" msgid "Path:" msgstr "" msgid "Local Path:" msgstr "" msgid "Select Repository" msgstr "" msgid "Add Path to Serve" msgstr "" msgid "Edit Path to Serve" msgstr "" msgid "Local Path" msgstr "" msgid "Webconf" msgstr "" msgid "Config File:" msgstr "" msgid "Open" msgstr "" msgid "New &Workbench" msgstr "" msgid "&New Repository..." msgstr "" msgid "Clon&e Repository..." msgstr "" msgid "&Open Repository..." msgstr "" msgid "&File" msgstr "" msgid "&View" msgstr "" msgid "&Repository" msgstr "" msgid "&Help" msgstr "" msgid "&Dock Toolbar" msgstr "" msgid "&Task Toolbar" msgstr "" msgid "&Custom Toolbar" msgstr "" msgid "S&ync Toolbar" msgstr "" msgid "&Close Repository" msgstr "" msgid "Sh&ow Repository Registry" msgstr "" msgid "Show &Patch Queue" msgstr "" msgid "Show Conso&le" msgstr "" msgid "Place Console in Doc&k Area" msgstr "" msgid "R&epository Registry Options" msgstr "" msgid "Save Open Repositories on E&xit" msgstr "" msgid "Sa&ve Current Sync Paths on Exit" msgstr "" msgid "Show Tas&k Tab" msgstr "" msgid "&Commit" msgstr "" msgid "&Patch Branch" msgstr "" msgid "Revision &Details" msgstr "" msgid "&Search" msgstr "" msgid "S&ynchronize" msgstr "" msgid "Refresh current repository" msgstr "" msgid "Refresh &Task Tab" msgstr "" msgid "Refresh only the current task tab" msgstr "" msgid "Load &All Revisions" msgstr "" msgid "Load all revisions into graph" msgstr "" msgid "Go to current revision" msgstr "" msgid "&Goto Revision..." msgstr "" msgid "Go to a specific revision" msgstr "" msgid "Filter graph with revision sets or branches" msgstr "" msgid "&Workbench Toolbars" msgstr "" msgid "&Lock File..." msgstr "" msgid "Lock or unlock files" msgstr "" msgid "Update working directory or switch revisions" msgstr "" msgid "&Shelve..." msgstr "" msgid "&Import Patches..." msgstr "" msgid "U&nbundle..." msgstr "" msgid "&Merge..." msgstr "" msgid "Merge with the other head of the current branch" msgstr "" msgid "&Resolve..." msgstr "" msgid "R&ollback/Undo..." msgstr "" msgid "&Purge..." msgstr "" msgid "&Bisect..." msgstr "" msgid "&Verify" msgstr "" msgid "Re&cover" msgstr "" msgid "&Web Server" msgstr "" msgid "E&xplorer Help" msgstr "" msgid "&Readme" msgstr "" msgid "About &Qt" msgstr "" msgid "&About TortoiseHg" msgstr "" msgid "&Incoming" msgstr "" msgid "&Pull" msgstr "" msgid "&Outgoing" msgstr "" msgid "P&ush" msgstr "" msgid "&Sync Bookmarks..." msgstr "" #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" msgid "Check for incoming changes" msgstr "" msgid "Pull incoming changes" msgstr "" msgid "Detect outgoing changes" msgstr "" msgid "Push outgoing changes" msgstr "" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" #, python-format msgid "Execute custom tool '%s'" msgstr "" msgid "Custom Toolbar &Settings" msgstr "" msgid "TortoiseHg Workbench" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "" msgid "Goto revision" msgstr "" msgid "Enter revision identifier" msgstr "" msgid "Select repository directory to open" msgstr "" msgid "README not configured" msgstr "" msgid "" "A README file is not configured for the current repository.

                                          To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" msgid "Issue Tracker Plugin Error" msgstr "" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "" msgid "This error will not be shown again until you restart the workbench" msgstr "" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "" msgid "Error executing \"commit finished\" trigger" msgstr "" msgid "Cannot open Plugin Options dialog" msgstr "" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "" msgid "[--insecure] [SOURCE]" msgstr "" #, python-format msgid "unsupported URL: %s" msgstr "" #, python-format msgid "%s certificate error: no certificate received" msgstr "" msgid "move after the specified patch" msgstr "" msgid "[--after PATCH] PATCH..." msgstr "" msgid "unknown patch to move specified" msgstr "" msgid "invalid patch position specified" msgstr "" msgid "cannot move applied patches" msgstr "" #, python-format msgid "patch %s not in series" msgstr "" msgid "cannot move into applied patches" msgstr "" msgid "abort: " msgstr "" msgid "hint: " msgstr "" #, python-format msgid "HTTP Error: %d (%s)" msgstr "" #, python-format msgid "URLError: %s" msgstr "" msgid "SSL: Server certificate verify failed" msgstr "" #, python-format msgid "SSL: unknown error %s:%s" msgstr "" #, python-format msgid "SSL error: %s" msgstr "" msgid "hgsubversion packaged with thg" msgstr "" msgid "hggit packaged with thg" msgstr "" msgid "inotify is not supported on this platform" msgstr "" msgid "eol is incompatible with win32text" msgstr "" msgid "win32text is incompatible with eol" msgstr "" msgid "hgsubversion is incompatible with perfarce" msgstr "" msgid "perfarce is incompatible with hgsubversion" msgstr "" msgid "Workbench custom toolbar" msgstr "" msgid "Revision details context menu" msgstr "" msgid "Pair selection context menu" msgstr "" msgid "Multiple selection context menu" msgstr "" msgid "Commit context menu" msgstr "" msgid "File context menu (on manifest and revision details)" msgstr "" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" msgid "in the future" msgstr "" msgid "now" msgstr "" #, python-format msgid "command parse error: %s" msgstr "" #, python-format msgid "no matches found: %s" msgstr "" msgid "Commit..." msgstr "" msgid "Commit changes in repository" msgstr "" msgid "Create Repository Here" msgstr "" msgid "Create a new repository" msgstr "" msgid "Clone..." msgstr "" msgid "Create clone here from source" msgstr "" msgid "File Status" msgstr "" msgid "Repository status & changes" msgstr "" msgid "Add Files..." msgstr "" msgid "Add files to version control" msgstr "" msgid "Revert Files..." msgstr "" msgid "Revert file changes" msgstr "" msgid "Forget Files..." msgstr "" msgid "Remove files from version control" msgstr "" msgid "Remove Files..." msgstr "" msgid "Rename File" msgstr "" msgid "Rename file or directory" msgstr "" msgid "View change history in repository" msgstr "" msgid "File History" msgstr "" msgid "View change history of selected files" msgstr "" msgid "Shelve Changes" msgstr "" msgid "Move changes between working dir and patch" msgstr "" msgid "Synchronize" msgstr "" msgid "Synchronize with remote repository" msgstr "" msgid "Start web server for this repository" msgstr "" msgid "Update..." msgstr "" msgid "Update working directory" msgstr "" msgid "Update Icons" msgstr "" msgid "Update icons for this repository" msgstr "" msgid "Global Settings" msgstr "" msgid "Configure user wide settings" msgstr "" msgid "Repository Settings" msgstr "" msgid "Configure repository settings" msgstr "" msgid "Explorer Extension Settings" msgstr "" msgid "Configure Explorer extension" msgstr "" msgid "About TortoiseHg" msgstr "" msgid "Show About Dialog" msgstr "" msgid "Diff to parent" msgstr "" msgid "View changes using GUI diff tool" msgstr "" msgid "Edit Ignore Filter" msgstr "" msgid "Edit repository ignore filter" msgstr "" msgid "Guess Renames" msgstr "" msgid "Detect renames and copies" msgstr "" msgid "Search History" msgstr "" msgid "Search file revisions for patterns" msgstr "" msgid "DnD Synchronize" msgstr "" msgid "Synchronize with dragged repository" msgstr "" #, python-format msgid "unrecognized response: %s" msgstr "" msgid "password: " msgstr "" #, python-format msgid "repository %s not found" msgstr "" msgid "win32ill: cannot create window for messages" msgstr "" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "" msgid "win32ill: interrupted while stopping message loop\n" msgstr "" #~ msgid "(version %s)" #~ msgstr "(نسخه %s)" #~ msgid "with %s" #~ msgstr "با %s" #~ msgid "Archive" #~ msgstr "بایگانی" #~ msgid "Several icons are courtesy of the TortoiseSVN project" #~ msgstr "برخی از نمایه ها توسط پروژه TortoiseSVN ارائه شده اند." #~ msgid "Do you want to abort?" #~ msgstr "آیا از قطع کردن اطمینان دارید؟" #~ msgid "Confirm Abort" #~ msgstr "تایید قطع کردن" #~ msgid "All Files (*.*)" #~ msgstr "همهٔ پرونده‌ها (*,*)" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/fi.po0000644000000000000000000043263214440352353016236 0ustar00rootroot# Finnish translation for tortoisehg # Copyright (c) 2018 Rosetta Contributors and Canonical Ltd 2018 # This file is distributed under the same license as the tortoisehg package. # FIRST AUTHOR , 2018. # msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2018-07-23 21:54+0000\n" "Last-Translator: Nikolay Korotkiy \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2019-07-17 05:42+0000\n" "X-Generator: Launchpad (build 19009)\n" msgid "TortoiseHg Overlay Icon Server" msgstr "" msgid "Exit" msgstr "Lopeta" msgid "About" msgstr "Tietoja" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "" msgid "You can visit our site here" msgstr "" msgid "&License" msgstr "&Lisenssi" #, python-format msgid "version %s" msgstr "versio %s" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "" msgid "License" msgstr "Lisenssi" msgid "= Working Directory Parent =" msgstr "" msgid "Directory of files" msgstr "" msgid "Tar archives" msgstr "" msgid "Uncompressed tar archive" msgstr "" msgid "Bzip2 tar archives" msgstr "" msgid "Tar archive compressed using bzip2" msgstr "" msgid "Gzip tar archives" msgstr "" msgid "Tar archive compressed using gzip" msgstr "" msgid "Zip archives" msgstr "" msgid "Uncompressed zip archive" msgstr "" msgid "Zip archive compressed using deflate" msgstr "" msgid "Revision:" msgstr "" msgid "All files in this revision" msgstr "" msgid "Only files modified/created in this revision" msgstr "" msgid "Only files modified/created since:" msgstr "" msgid "Archive Content:" msgstr "" msgid "Recurse into subrepositories" msgstr "" msgid "Browse..." msgstr "" msgid "Destination path:" msgstr "" msgid "Archive types:" msgstr "" msgid "Hg command:" msgstr "" msgid "Select Destination Folder" msgstr "" msgid "Select Destination File" msgstr "" msgid "All files (*)" msgstr "Kaikki tiedostot (*)" msgid "Duplicate Name" msgstr "" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "" msgid "Confirm Overwrite" msgstr "" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "" #, python-format msgid "Archive - %s" msgstr "" msgid "&Archive" msgstr "" msgid "Backout requires a parent revision" msgstr "" msgid "Cannot backout change on a different branch" msgstr "" #, python-format msgid "Backout - %s" msgstr "" msgid "Prepare to backout" msgstr "" msgid "Verify backout revision and ensure your working directory is clean." msgstr "" msgid "Backing out a parent revision is a single step operation" msgstr "" msgid "Backout revision" msgstr "" msgid "Not a head, backout will create a new head!" msgstr "" msgid "Current local revision" msgstr "" msgid "Working directory status" msgstr "" msgid "Checking..." msgstr "" msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Automatically resolve merge conflicts where possible" msgstr "" msgid "Uncommitted local changes are detected" msgstr "" msgid "Clean" msgstr "" msgid "Backing out, then merging..." msgstr "" msgid "All conflicting files will be marked unresolved." msgstr "" msgid "Automatically advance to next page when backout and merge are complete." msgstr "" #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" msgid "No merge conflicts, ready to commit" msgstr "" msgid "Commit backout and merge results" msgstr "" msgid "Parents" msgstr "" msgid "Working Directory" msgstr "" msgid "Working Directory (merged)" msgstr "" msgid "Commit message" msgstr "" msgid "Skip final confirmation page, close after commit." msgstr "" msgid "Backed out changeset: " msgstr "" msgid "Confirm Discard Message" msgstr "" msgid "Discard current backout message?" msgstr "" msgid "Use English backout message" msgstr "" msgid "Backing out and committing..." msgstr "" msgid "Please wait while making backout." msgstr "" msgid "Committing..." msgstr "" msgid "Please wait while committing merged files." msgstr "" msgid "Finished" msgstr "" msgid "Backout changeset" msgstr "" #, python-format msgid "Bisect - %s" msgstr "" msgid "Accept" msgstr "Hyväksy" msgid "Known good revision:" msgstr "" msgid "Known bad revision:" msgstr "" msgid "Discard local changes (revert --all)" msgstr "" msgid "Revision is &Good" msgstr "" msgid "Revision is &Bad" msgstr "" msgid "&Skip this Revision" msgstr "" msgid "Close" msgstr "Sulje" msgid "Error encountered." msgstr "" msgid "Culprit found." msgstr "" msgid "Revision" msgstr "" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "" #, python-format msgid "%s (hint: %s)" msgstr "%s (vihje: %s)" msgid "Bookmark:" msgstr "" msgid "New Name:" msgstr "Uusi nimi:" msgid "Activate:" msgstr "" msgid "&Add" msgstr "&Lisää" msgid "Re&name" msgstr "" msgid "&Remove" msgstr "&Poista" msgid "&Move" msgstr "&Siirrä" #, python-format msgid "Bookmark - %s" msgstr "" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "" #, python-format msgid "Bookmark '%s' has been added" msgstr "" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "" #, python-format msgid "Bookmark '%s' has been moved" msgstr "" #, python-format msgid "Bookmark '%s' does not exist" msgstr "" #, python-format msgid "Bookmark '%s' has been removed" msgstr "" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "" msgid "TortoiseHg Bookmark Sync" msgstr "" msgid "Outgoing Bookmarks" msgstr "" msgid "&Push Bookmark" msgstr "" msgid "&Remove Bookmark" msgstr "" msgid "Incoming Bookmarks" msgstr "" msgid "P&ull Bookmark" msgstr "" msgid "R&emove Bookmark" msgstr "" #, python-format msgid "Pushed local bookmark: %s" msgstr "" #, python-format msgid "Pulled remote bookmark: %s" msgstr "" #, python-format msgid "Removed remote bookmark: %s" msgstr "" #, python-format msgid "Removed local bookmark: %s" msgstr "" #, python-format msgid "%s - branch operation" msgstr "" msgid "Select branch of merge commit" msgstr "" msgid "Changes take effect on next commit" msgstr "" msgid "No branch changes" msgstr "" msgid "Open a new named branch" msgstr "" msgid "Close current branch" msgstr "" #, python-format msgid "Please report this bug to our bug tracker" msgstr "" msgid "Checking for updates..." msgstr "" msgid "Copy" msgstr "Kopioi" msgid "Quit" msgstr "" msgid "TortoiseHg Bug Report" msgstr "" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "" msgid "Your TortoiseHg is up to date." msgstr "" msgid "Save error report to" msgstr "" msgid "Text files (*.txt)" msgstr "Tekstitiedostot (*.txt)" msgid "Error writing file" msgstr "" msgid "TortoiseHg Error" msgstr "" msgid "" "If you still have trouble, please file a bug report." msgstr "" msgid "Visual Diff" msgstr "" msgid "View file changes in external diff tool" msgstr "" msgid "Edit Local" msgstr "" msgid "Edit current file in working copy" msgstr "" msgid "Revert to Revision" msgstr "" msgid "Revert file(s) to contents at this revision" msgstr "" msgid "Patch failed to apply" msgstr "" msgid "Manually resolve rejected chunks?" msgstr "" msgid "Edit patched file and rejects?" msgstr "" msgid "No deletable chunks" msgstr "" msgid "Completely remove file from patch?" msgstr "" msgid "Revert all file changes?" msgstr "" msgid "No chunks remain" msgstr "" msgid "file has been deleted, refresh" msgstr "" msgid "file has been modified, refresh" msgstr "" msgid "Unable to merge chunks" msgstr "" msgid "Add or remove patches must be merged in the working directory" msgstr "" msgid "Unable to remove" msgstr "" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" msgctxt "files" msgid "All" msgstr "Kaikki" msgctxt "files" msgid "None" msgstr "" msgid "Toggle display of text search bar" msgstr "" msgid "Diff Toolbar" msgstr "" #, python-format msgid "Chunks selected: %d / %d" msgstr "" msgid "Please wait while the file is opened ..." msgstr "" msgid "Source:" msgstr "" msgid "Destination:" msgstr "" msgid "Options" msgstr "" msgid "Clone to revision:" msgstr "" msgid "A revision identifier, bookmark, tag or branch name" msgstr "" msgid "Do not update the new working directory" msgstr "" msgid "Use pull protocol to copy metadata" msgstr "" msgid "Clone with minimal processing" msgstr "" msgid "Include patch queue" msgstr "" msgid "Use proxy server" msgstr "" msgid "Do not verify host certificate" msgstr "" msgid "Remote command:" msgstr "" msgid "Use largefiles" msgstr "" msgid "Start revision:" msgstr "" msgid "Select source repository" msgstr "" msgid "Select destination repository" msgstr "" msgid "Select patch folder" msgstr "" #, python-format msgid "Clone - %s" msgstr "" msgid "&Clone" msgstr "" msgid "failed to start command\n" msgstr "" msgid "error while running command\n" msgstr "" #, python-format msgid "process exited unexpectedly with code %d" msgstr "" #, python-format msgid "failed to encode command: %s" msgstr "" #, python-format msgid "timed out while reading: %r..." msgstr "" msgid "timed out waiting for message" msgstr "" #, python-format msgid "unexpected response on required channel %r" msgstr "" #, python-format msgid "invalid \"hello\" message: %r" msgstr "" msgid "no \"runcommand\" capability" msgstr "" #, python-format msgid "corrupted command result: %r" msgstr "" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "" msgid "Terminated by user" msgstr "" #, python-format msgid "[command terminated by user %s]" msgstr "" #, python-format msgid "[command interrupted %s]" msgstr "" #, python-format msgid "[command returned code %d %%s]" msgstr "" #, python-format msgid "[command completed successfully %s]" msgstr "" msgid "Running..." msgstr "" msgid "Failed!" msgstr "" msgid "Clea&r Log" msgstr "" msgid "TortoiseHg Prompt" msgstr "" msgid "Show Detail" msgstr "" msgid "Hide Detail" msgstr "" msgid "Confirm Exit" msgstr "" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" msgid "&Run" msgstr "" msgid "TortoiseHg Command Dialog" msgstr "" msgid "Command Error" msgstr "" #, python-format msgid "[Code: %d]" msgstr "" msgid "Merge" msgstr "" #, python-format msgid "Merge with %s" msgstr "" msgid "Patch Name Required" msgstr "" msgid "You must enter a patch name" msgstr "" msgctxt "start progress" msgid "Commit" msgstr "" msgctxt "start progress" msgid "MQ Action" msgstr "" msgctxt "start progress" msgid "Rollback" msgstr "" msgid "Commit Dialog Toolbar" msgstr "" msgid "Branch: " msgstr "" msgid "Copy message" msgstr "" msgid "Copy one of the recent commit messages" msgstr "" msgid "Show Issues" msgstr "" msgid "Please wait..." msgstr "" #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "" msgid "Issue Tracker" msgstr "" msgid "Show Issues..." msgstr "" msgid "Stop" msgstr "" msgid "### patch name ###" msgstr "" msgid "Commit changes" msgstr "" msgid "Commit" msgstr "" msgid "Amend current revision" msgstr "" msgid "Amend" msgstr "" msgid "Create a new patch" msgstr "" msgid "QNew" msgstr "" msgid "Refresh current patch" msgstr "" msgid "QRefresh" msgstr "" msgid "Confirm Branch Change" msgstr "" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "" msgid "Restart &Branch" msgstr "" msgid "&Commit to current branch" msgstr "" msgid "Cancel" msgstr "Peru" msgid "Confirm New Branch" msgstr "" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "" msgid "Create &Branch" msgstr "" msgid "Close Branch: " msgstr "" msgid "New Branch: " msgstr "" #, python-format msgid "Selected Options: %s" msgstr "" msgid "Parent:" msgstr "" msgid "Patch name:" msgstr "" #, python-format msgid "Close %s branch" msgstr "" #, python-format msgid "Rollback commit to revision %d" msgstr "" msgid "Confirm Undo" msgstr "" msgid "Discard current commit message?" msgstr "" msgid "Message Translation Failure" msgstr "" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" msgid "&Replace" msgstr "" msgid "Nothing Committed" msgstr "" msgid "Please enter commit message" msgstr "" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" msgid "No files checked" msgstr "" msgid "No modified files checkmarked for commit" msgstr "" msgid "Confirm Add" msgstr "" msgid "Add selected untracked files?" msgstr "" msgid "Confirm Remove" msgstr "" msgid "Remove selected deleted files?" msgstr "" msgid "Nothing changed." msgstr "" msgctxt "window title" msgid "Commit" msgstr "" #, python-format msgid "%s - commit options" msgstr "" msgid "Set username:" msgstr "" msgid "Save in Repo" msgstr "" msgid "Save Global" msgstr "" msgid "Set Date:" msgstr "" msgid "Update" msgstr "" msgid "Push After Commit:" msgstr "" msgid "Auto Includes:" msgstr "" msgid "Recurse into subrepositories (--subrepos)" msgstr "" msgid "Unable to save username" msgstr "" msgid "Iniparse must be installed." msgstr "" msgid "Unable to write configuration file" msgstr "" msgid "Unable to save after commit push" msgstr "" msgid "Unable to save auto include list" msgstr "" msgid "Unable to save recurse in subrepos." msgstr "" msgid "Invalid date format" msgstr "" msgid "No username configured" msgstr "" #, python-format msgid "%s - commit" msgstr "" msgid "TortoiseHg Commit" msgstr "" msgid "Are you sure that you want to cancel the commit operation?" msgstr "" msgid "Compress changesets up to and including" msgstr "" msgid "Onto destination" msgstr "" msgid "Compress" msgstr "" #, python-format msgid "Compress - %s" msgstr "" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the compress" msgstr "" msgid "Changes have been moved, you must now commit" msgstr "" msgctxt "action button" msgid "Commit" msgstr "" msgid "Compress is complete, old history untouched" msgstr "" msgid "must be specified repository" msgstr "" msgid "must be specified 'type' in style" msgstr "" msgid "Git Commit:" msgstr "" msgid "Summary:" msgstr "" msgid "User:" msgstr "" msgid "Date:" msgstr "" msgid "Age:" msgstr "" msgid "Branch:" msgstr "" msgid "Close:" msgstr "" msgid "Tags:" msgstr "Tagit:" msgid "Graft:" msgstr "" msgid "Transplant:" msgstr "" msgid "Obsolete state:" msgstr "" msgid "Perforce:" msgstr "" msgid "Subversion:" msgstr "" msgid "Converted From:" msgstr "" msgid "Original Parent:" msgstr "" msgid "No items to display" msgstr "" msgid "Use compact view" msgstr "" msgid "Patch:" msgstr "" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "" msgid "Select a GUI location to edit:" msgstr "" msgid "Select the toolbar or menu to change" msgstr "" msgid "Tools shown on selected location" msgstr "" msgid "Delete from list" msgstr "" msgid "Add to list" msgstr "" msgid "Add separator" msgstr "" msgid "List of all tools" msgstr "" msgid "New Tool ..." msgstr "" msgid "Edit Tool ..." msgstr "" msgid "Delete Tool" msgstr "" msgid "Type" msgstr "Tyyppi" msgid "Name" msgstr "Nimi" msgid "Command" msgstr "" msgid "New hook" msgstr "" msgid "Edit hook" msgstr "" msgid "Delete hook" msgstr "" msgid "Replace existing hook?" msgstr "" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" msgid "OK" msgstr "" msgid "Missing information" msgstr "" msgid "All items" msgstr "" msgid "Working directory" msgstr "" msgid "All revisions" msgstr "" msgid "All contexts" msgstr "" msgid "Fixed revisions" msgstr "" msgid "Applied patches" msgstr "" msgid "Applied patches or qparent" msgstr "" msgid "" msgstr "" msgid "Configure Custom Tool" msgstr "" msgid "Tool name" msgstr "" msgid "The tool name. It cannot contain spaces." msgstr "" #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" msgid "Tool label" msgstr "" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" msgid "Tooltip" msgstr "" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" msgid "Icon" msgstr "" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" msgid "On repowidget, show for" msgstr "" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" msgid "Show Output Log" msgstr "" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" msgid "You must set a tool name." msgstr "" msgid "The tool name cannot have any spaces in it." msgstr "" msgid "You must set a command to run." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" msgid "Configure Hook" msgstr "" msgid "Hook type" msgstr "" msgid "Select when your command will be run" msgstr "" msgid "The hook name. It cannot contain spaces." msgstr "" msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" msgid "You must set a valid hook type." msgstr "" msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "" msgid "Console" msgstr "" msgid "File &History / Annotate" msgstr "" msgid "Show the history of the selected file" msgstr "" msgid "Co&mpare File Revisions" msgstr "" msgid "Compare revisions of the selected file" msgstr "" msgid "Filter Histor&y" msgstr "" msgid "Query about changesets affecting the selected files" msgstr "" msgid "Diff &Changeset to Parent" msgstr "" msgid "Diff Changeset to Loc&al" msgstr "" msgid "&Diff to Parent" msgstr "" msgid "Diff to &Local" msgstr "" msgid "View changes to current in external diff tool" msgstr "" msgid "&View at Revision" msgstr "" msgid "View file as it appeared at this revision" msgstr "" msgid "&Save at Revision..." msgstr "" msgid "Save file as it appeared at this revision" msgstr "" msgid "Save file to" msgstr "" msgid "&Edit Local" msgstr "" msgid "&Open Local" msgstr "" msgid "E&xplore Local" msgstr "" msgid "Open parent folder of current file in the system file manager" msgstr "" msgid "&Copy Patch" msgstr "" msgid "Copy &Path" msgstr "" msgid "Copy full path of file(s) to the clipboard" msgstr "" msgid "&Revert to Revision..." msgstr "" msgid "Open S&ubrepository" msgstr "" msgid "Open the selected subrepository" msgstr "" msgid "E&xplore Folder" msgstr "" msgid "Open the selected folder in the system file manager" msgstr "" msgid "Open &Terminal" msgstr "" msgid "Open a shell terminal in the selected folder" msgstr "" msgid "Custom Tools" msgstr "" msgid "Diff &Local" msgstr "" msgid "&View Missing" msgstr "" msgid "View O&ther" msgstr "" msgid "Add &Largefiles..." msgstr "" msgid "&Forget" msgstr "" msgid "&Delete Unversioned..." msgstr "" msgid "Confirm Delete Unversioned" msgstr "" msgid "Delete the following unversioned files?" msgstr "" msgid "&Delete" msgstr "" msgid "Re&move Versioned" msgstr "" msgid "&Revert..." msgstr "" msgid "Uncommited merge - please select a parent revision" msgstr "" msgid "Revert files to local or other parent?" msgstr "" msgid "&Local" msgstr "" msgid "&Other" msgstr "" msgid "Confirm Revert" msgstr "" msgid "Revert local file changes?" msgstr "" msgid "&Revert with backup" msgstr "" msgid "&Discard changes" msgstr "" msgid "Revert the following files?" msgstr "" msgid "&Revert" msgstr "" msgid "&Copy..." msgstr "" msgid "Re&name..." msgstr "" msgid "&Ignore..." msgstr "" msgid "Edit Re&jects" msgstr "" msgid "Manually resolve rejected patch chunks" msgstr "" msgid "De&tect Renames..." msgstr "" msgid "&Mark Resolved" msgstr "" msgid "&Mark Unresolved" msgstr "" msgid "Restart Mer&ge" msgstr "" msgid "Was renamed from" msgstr "" msgid "Restart Merge &with" msgstr "" msgid "Display the file anyway" msgstr "" msgid "Diff not displayed: " msgstr "" #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid "File is binary" msgstr "" msgid "File may be binary (maximum line length exceeded)" msgstr "" msgid "File or diffs not displayed: " msgstr "" msgid " (was added)" msgstr "" #, python-format msgid " (copied from %s)" msgstr "" #, python-format msgid " (renamed from %s)" msgstr "" msgid " (is a symlink)" msgstr "" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid " (was deleted)" msgstr "" msgid " (was added, now missing)" msgstr "" msgid " (is unversioned)" msgstr "" msgid "exec mode has been set" msgstr "" msgid "exec mode has been unset" msgstr "" #, python-format msgid "changeset: %s" msgstr "" msgid "Initial revision" msgstr "" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" msgid "Subrepo created and set to initial revision." msgstr "" msgid "Subrepo initialized to revision:" msgstr "" msgid "Subrepo removed from repository." msgstr "" msgid "Previously the subrepository was at the following revision:" msgstr "" msgid "Subrepo was not changed." msgstr "" msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "" msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "" msgid "Subrepo state is:" msgstr "" msgid "Revision has changed to:" msgstr "" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "" msgid "From:" msgstr "" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" msgid "Subrepository not found in the working directory." msgstr "" msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" msgid "Not a Mercurial subrepo, not previewable" msgstr "" #, python-format msgid "Error previewing subrepo: %s" msgstr "" msgid "Subrepo may be damaged or inaccessible." msgstr "" msgid "The subrepository is dirty." msgstr "" msgid "File Status:" msgstr "" msgid "(is a changed sub-repository)" msgstr "" msgid "(is an unchanged sub-repository)" msgstr "" msgid "(is a dirty sub-repository)" msgstr "" msgid "(is a new sub-repository)" msgstr "" msgid "(is a removed sub-repository)" msgstr "" msgid "(is a changed and dirty sub-repository)" msgstr "" msgid "(is a new and dirty sub-repository)" msgstr "" msgid "open..." msgstr "" #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "" msgid "File History Log Columns" msgstr "" msgid "Back" msgstr "" msgid "Forward" msgstr "" msgid "Diff Selected &Changesets" msgstr "" msgid "&Diff Selected File Revisions" msgstr "" msgid "Show Revision &Details" msgstr "" msgid "Too many rows selected for menu" msgstr "" msgid "File Differences Log Columns" msgstr "" msgid "Next diff" msgstr "" msgid "Previous diff" msgstr "" msgid "Unicode" msgstr "" msgid "Western Europe" msgstr "" msgid "Unified Chinese" msgstr "" msgid "Traditional Chinese" msgstr "" msgid "Korean" msgstr "korea" msgid "Japanese" msgstr "japani" msgid "Thai" msgstr "thai" msgid "Central and Eastern Europe" msgstr "" msgid "Cyrillic" msgstr "" msgid "Russian" msgstr "venäjä" msgid "Ukrainian" msgstr "ukraina" msgid "Greek" msgstr "kreikka" msgid "Turkish" msgstr "turkki" msgid "Arabic" msgstr "arabia" msgid "Hebrew" msgstr "heprea" msgid "Vietnamese" msgstr "vietnam" msgid "Baltic" msgstr "" msgid "Southern Europe" msgstr "" msgid "Nordic" msgstr "" msgid "Celtic" msgstr "" msgid "South-Eastern Europe" msgstr "" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "" msgid "View change as unified diff output" msgstr "" msgid "View change in context of file" msgstr "" msgid "Annotate with revision numbers" msgstr "" msgid "Next Diff" msgstr "" msgid "Previous Diff" msgstr "" msgid "Open shelve tool" msgstr "" msgid "&Auto Detect" msgstr "" msgid "Show changes from first parent" msgstr "" msgid "Show changes from second parent" msgstr "" msgid "E&ncoding" msgstr "" msgid "&Search in Current File" msgstr "" msgid "Search in All &History" msgstr "" msgid "Go to Line" msgstr "" #, python-format msgid "Enter line number (1 - %d)" msgstr "" msgid "Show &Author" msgstr "" msgid "Show &Date" msgstr "" msgid "Show &Revision" msgstr "" msgid "Annotate Op&tions" msgstr "" msgid "Search Selected Text" msgstr "" msgid "In Current &File" msgstr "" msgid "In &Current Revision" msgstr "" msgid "In &Original Revision" msgstr "" msgid "In All &History" msgstr "" msgid "Go to" msgstr "" msgid "View File at" msgstr "" msgid "Diff File to" msgstr "" msgid "&Originating Revision" msgstr "" msgid "&Parent Revision" msgstr "" #, python-format msgid "&Parent Revision (%d)" msgstr "" msgid "&Mark Excluded Changes" msgstr "" msgid "(excluded from the next commit)" msgstr "" msgid "Interrupted graft operation found" msgstr "" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" msgid "Continue or abort interrupted graft operation?" msgstr "" msgid "To graft destination" msgstr "" msgid "Use my user name instead of graft committer user name" msgstr "" msgid "Use current date" msgstr "" msgid "Append graft info to log message" msgstr "" msgid "Graft" msgstr "" msgid "Abort" msgstr "" #, python-format msgid "Graft - %s" msgstr "" msgid "Graft changeset" msgstr "" #, python-format msgid "Graft changeset #%d of %d" msgstr "" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" msgid "You may continue or start the graft" msgstr "" msgid "Graft is complete" msgstr "" msgid "Graft failed" msgstr "" msgid "Graft aborted" msgstr "" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" msgid "You may continue the graft" msgstr "" msgid "Exiting with an unfinished graft is not recommended." msgstr "" msgid "Consider aborting the graft first." msgstr "" msgid "&Exit" msgstr "" msgid "### regular expression search pattern ###" msgstr "" msgid "Regexp:" msgstr "" msgid "Ignore case" msgstr "" msgid "Search" msgstr "" msgid "Working Copy" msgstr "" msgid "All History" msgstr "" msgid "Report only the first match per file" msgstr "" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "" msgid "Includes:" msgstr "" msgid "Excludes:" msgstr "" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" #, python-format msgid "\"%s\" removed from search history" msgstr "" #, python-format msgid "\"%s\" removed from path history" msgstr "" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "" #, python-format msgid "grep: %s\n" msgstr "" #, python-format msgid "%d matches found" msgstr "" msgid "No matches found" msgstr "" msgid "Searching" msgstr "" msgid "history" msgstr "" msgid "Interrupted" msgstr "" msgid "files" msgstr "" #, python-format msgid "Skipping %s, unable to read" msgstr "" msgid "Vi&ew File" msgstr "" msgid "&View Changeset" msgstr "" msgid "Annotate &File" msgstr "" msgid "File" msgstr "Tiedosto" msgid "Line" msgstr "" msgid "Rev" msgstr "" msgid "User" msgstr "" msgid "Match Text" msgstr "" msgid "TortoiseHg Search" msgstr "" #, python-format msgid "Detect Copies/Renames in %s" msgstr "" msgid "Unrevisioned Files" msgstr "" msgid "Refresh file list" msgstr "" #, python-format msgid "Min Similarity: %d%%" msgstr "" msgid "Only consider deleted files" msgstr "" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "" msgid "Find Renames" msgstr "" msgid "Find copy and/or rename sources" msgstr "" msgid "Candidate Matches" msgstr "" msgid "Accept All Matches" msgstr "" msgid "Accept Selected Matches" msgstr "" msgid "Differences from Source to Dest" msgstr "" msgid "Search already in progress" msgstr "" msgid "Cannot start a new search" msgstr "" msgid "No files to find" msgstr "" msgid "There are no files that may have been renamed" msgstr "" msgid "Multiple sources chosen" msgstr "" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" #. i18n: percent format #, python-format msgid "%d%%" msgstr "" msgid "Source" msgstr "" msgid "Dest" msgstr "" msgid "% Match" msgstr "" msgid "Sending Email" msgstr "" msgid "Email" msgstr "" msgid "To:" msgstr "" msgid "Cc:" msgstr "" msgid "In-Reply-To:" msgstr "" msgid "Message identifier to reply to, for threading" msgstr "" msgid "Flag:" msgstr "" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" msgid "Send changesets as Hg patches" msgstr "" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" msgid "Use extended (git) patch format" msgstr "" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" msgid "Plain, do not prepend Hg header" msgstr "" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" msgid "Send single binary bundle, not patches" msgstr "" msgid "send patches as part of the email body" msgstr "" msgid "body" msgstr "" msgid "send patches as attachments" msgstr "" msgid "attach" msgstr "" msgid "send patches as inline attachments" msgstr "" msgid "inline" msgstr "" msgid "add diffstat output to messages" msgstr "" msgid "diffstat" msgstr "" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" msgid "Write patch series (bundle) description" msgstr "" msgid "Subject:" msgstr "" msgid "Changesets" msgstr "" msgid "Select &All" msgstr "" msgid "Select &None" msgstr "" msgid "Edit" msgstr "" msgid "Preview" msgstr "" msgid "&Settings" msgstr "A&setukset" msgid "Send &Email" msgstr "" msgid "&Close" msgstr "" #, python-format msgid "Ignore filter - %s" msgstr "" msgid "Glob" msgstr "" msgid "Regexp" msgstr "" msgid "Add" msgstr "" msgid "Edit File" msgstr "" msgid "Ignore Filter" msgstr "" msgid "Untracked Files" msgstr "" msgid "Backspace or Del to remove row(s)" msgstr "" msgid "Add ignore filter..." msgstr "" msgid "selected files" msgstr "" msgid "Ignore " msgstr "" msgid "Invalid glob expression" msgstr "" msgid "Invalid regexp expression" msgstr "" msgid "Unable to read repository status" msgstr "" msgid "New file created" msgstr "" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" msgid "Unable to write .hgignore file" msgstr "" msgid "Copy working directory files from skeleton" msgstr "" msgid "Create special files (.hgignore, ...)" msgstr "" msgid "Make repo compatible with Mercurial <1.7" msgstr "" msgid "New Repository" msgstr "" msgid "&Create" msgstr "" msgid "Unable to create a config file" msgstr "" msgid "Insufficient access rights." msgstr "" msgid "Show Log" msgstr "" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" msgid "Add as &Largefiles" msgstr "" msgid "Add as &Normal Files" msgstr "" msgid "Invalid Patterns" msgstr "" msgid "Failed to process largefiles.patterns." msgstr "" msgid "Word docs (*.doc *.docx)" msgstr "" msgid "PDF docs (*.pdf)" msgstr "" msgid "Excel files (*.xls *.xlsx)" msgstr "" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "" msgid "Refresh lock information" msgstr "" msgid "Lock a file not described in .hglocks" msgstr "" msgid "Stop current operation" msgstr "" msgid "Locked And Lockable Files:" msgstr "" msgid "Path" msgstr "" msgid "Locking User" msgstr "" msgid "Purpose" msgstr "" msgid "Simplelock extension not enabled" msgstr "" msgid "Please enable and configure simplelock" msgstr "" msgid "Open a (nonmergable) file you wish to be locked" msgstr "" msgid "File was not within current repository" msgstr "" #, python-format msgid "Locking %s" msgstr "" #, python-format msgid "Unlocking %s" msgstr "" msgid "Refreshing locks..." msgstr "" #, python-format msgid "Lock of %s successful" msgstr "" #, python-format msgid "Lock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s successful" msgstr "" msgid "Ready, double click to lock or unlock" msgstr "" msgid "Ready" msgstr "" msgid "You can only release your own locks" msgstr "" msgid "Find revisions matching fields of:" msgstr "" msgid "Revision to Match:" msgstr "" msgid "Fields to match:" msgstr "" msgid "Summary (first description line)" msgstr "" msgid "Description" msgstr "Kuvaus" msgid "Author" msgstr "" msgid "Date" msgstr "" msgid "Files" msgstr "Tiedostot" msgid "Diff contents" msgstr "" msgid "Subrepo states" msgstr "" msgid "Branch" msgstr "" msgid "Phase" msgstr "" msgid "&Match" msgstr "" #, python-format msgid "Find matches - %s" msgstr "" msgid "Revisions to Match:" msgstr "" #, python-format msgid "Match any of %d revisions" msgstr "" msgid "Unknown revision!" msgstr "" msgid "Parse Error!" msgstr "" #, python-format msgid "Merge - %s" msgstr "" msgid "Do you want to exit?" msgstr "" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" msgid "Prepare to merge" msgstr "" msgid "Verify merge targets and ensure your working directory is clean." msgstr "" msgid "Not a head revision!" msgstr "" msgid "Merge from (other revision)" msgstr "" msgid "Merge to (working directory)" msgstr "" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Or use:" msgstr "" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "" msgid "Discard all changes from the other revision" msgstr "" msgid "&Discard" msgstr "" msgid "Confirm Discard Changes" msgstr "" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" msgctxt "working dir state" msgid "Clean" msgstr "" msgid "Merging..." msgstr "" msgid "Automatically advance to next page when merge is complete." msgstr "" #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" msgid "" "No merge conflicts, ready to commit or review" msgstr "" msgid "Commit merge results" msgstr "" msgid "Commit Options" msgstr "" msgid "Commit Now" msgstr "" msgid "Commit Later" msgstr "" msgid "Merge changeset" msgstr "" msgid "Syntax Highlighting" msgstr "" msgid "Paste &Filenames" msgstr "" msgid "App&ly Format" msgstr "" msgid "C&onfigure Format" msgstr "" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "" msgid "&Commit to Queue..." msgstr "" msgid "Create &New Queue..." msgstr "" msgid "&Rename Active Queue..." msgstr "" msgid "&Delete Queue..." msgstr "" msgid "&Purge Queue..." msgstr "" msgid "Create Patch Queue" msgstr "" msgid "New patch queue name" msgstr "" msgid "Create" msgstr "" msgid "Rename Patch Queue" msgstr "" #, python-format msgid "Rename patch queue '%s' to" msgstr "" msgid "Rename" msgstr "" msgid "Delete Patch Queue" msgstr "" msgid "Delete reference to" msgstr "" msgid "Delete" msgstr "" msgid "Purge Patch Queue" msgstr "" msgid "Remove patch directory of" msgstr "" msgid "Purge" msgstr "" msgid "Rename Patch" msgstr "" #, python-format msgid "Rename patch %s to:" msgstr "" msgid "no guards" msgstr "" msgid "Patch Queue" msgstr "" msgctxt "MQ QPush" msgid "Push" msgstr "" msgid "Apply one patch" msgstr "" msgctxt "MQ QPush" msgid "Push all" msgstr "" msgid "Apply all patches" msgstr "" msgid "Pop" msgstr "" msgid "Unapply one patch" msgstr "" msgid "Pop all" msgstr "" msgid "Unapply all patches" msgstr "" msgid "Go &to Patch" msgstr "" msgid "&Apply Only This Patch" msgstr "" msgid "Apply only the selected patch" msgstr "" msgid "&Finish Patch" msgstr "" msgid "Move applied patches into repository history" msgstr "" msgid "&Delete Patches..." msgstr "" msgid "Delete selected patches" msgstr "" msgid "Re&name Patch..." msgstr "" msgid "Set &Guards..." msgstr "" msgid "Configure guards for selected patch" msgstr "" msgid "Patch Queue Actions Toolbar" msgstr "" msgid "Configure guards" msgstr "" #, python-format msgid "Input new guards for %s:" msgstr "" msgid "Confirm patch queue switch" msgstr "" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "" #, python-format msgid "Guards: %d/%d" msgstr "" msgid "MQ options" msgstr "" msgid "Force push or pop (--force)" msgstr "" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "" msgid "Submitting p4 changelist..." msgstr "" msgid "Reverting p4 changelist..." msgstr "" msgid "Patch Branch Toolbar" msgstr "" msgid "Merge all pending dependencies" msgstr "" msgid "Backout current patch branch" msgstr "" msgid "Backport part of a changeset to a dependency" msgstr "" msgid "Start a new patch branch" msgstr "" msgid "Edit patch dependency graph" msgstr "" msgid "will be closed" msgstr "" #, python-format msgid "needs merge of %i heads\n" msgstr "" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "" #, python-format msgid "needs merge with %s\n" msgstr "" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "" msgid "&Goto (update workdir)" msgstr "" msgid "&Merge" msgstr "" msgid "No patch branch selected" msgstr "" msgid "No editor found" msgstr "" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" msgid "Graph" msgstr "" msgid "Status" msgstr "" msgid "Title" msgstr "" msgid "Message" msgstr "" msgid "New Patch Branch" msgstr "" msgid "Patch message:" msgstr "" msgid "Patch date:" msgstr "" msgid "Patch user:" msgstr "" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" msgid "Review Board" msgstr "" msgid "Password:" msgstr "Salasana:" msgid "Error" msgstr "Virhe" #, python-format msgid "Review draft posted to %s\n" msgstr "" #, python-format msgid "Review published to %s\n" msgstr "" msgid "Success" msgstr "" msgid "Repository ID:" msgstr "" msgid "Post Review" msgstr "" msgid "Review ID:" msgstr "" msgid "Update the fields of this existing request" msgstr "" msgid "Update Review" msgstr "" msgid "Create diff with all outgoing changes" msgstr "" msgid "Create diff with all changes on this branch" msgstr "" msgid "Publish request immediately" msgstr "" msgid "%p%" msgstr "" msgid "Connecting to Review Board..." msgstr "" msgid "Target:" msgstr "" msgid "Do not modify working copy (-k/--keep)" msgstr "" #, python-format msgid "Prune - %s" msgstr "" msgid "&Prune" msgstr "" msgid "No unknown files found" msgstr "" msgid "No ignored files found" msgstr "" msgid "No trash files found" msgstr "" msgid "Delete empty folders" msgstr "" msgid "Preserve files beginning with .hg" msgstr "" #, python-format msgid "%s - purge" msgstr "" msgid "Checking" msgstr "" msgid "Ready to purge." msgstr "" #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "" msgstr[1] "" msgid "Confirm file deletions" msgstr "" msgid "Are you sure you want to delete these files and/or folders?" msgstr "" msgid "Deletion failures" msgstr "" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "" msgstr[1] "" msgid "Deleting trash folder..." msgstr "" #, python-format msgid "Deleted %d files" msgstr "" #, python-format msgid "Deleted %d files and %d folders" msgstr "" msgid "Delete Patches" msgstr "" msgid "Remove patches from queue?" msgstr "" msgid "Keep patch files" msgstr "" #, python-format msgid "Patch fold - %s" msgstr "" msgid "New patch message:" msgstr "" msgid "Patches to fold" msgstr "" msgid "&Undo" msgstr "" msgid "&Redo" msgstr "" msgid "Cu&t" msgstr "" msgid "&Copy" msgstr "" msgid "&Paste" msgstr "" msgid "&Editor Options" msgstr "" msgid "&Wrap" msgstr "" msgctxt "wrap mode" msgid "&None" msgstr "" msgid "&Word" msgstr "" msgid "&Character" msgstr "" msgid "White&space" msgstr "" msgid "&Visible" msgstr "" msgid "&Invisible" msgstr "" msgid "&AfterIndent" msgstr "" msgid "&TAB Inserts" msgstr "" msgid "&Auto" msgstr "" msgid "&TAB" msgstr "" msgid "&Spaces" msgstr "" msgid "EOL &Visibility" msgstr "" msgid "EOL &Mode" msgstr "" msgid "&Windows" msgstr "&Windows" msgid "&Unix" msgstr "&Unix" msgid "&Mac" msgstr "&Mac" msgid "&Auto-Complete" msgstr "" msgid "### regular expression ###" msgstr "" msgid "Regular expression search pattern" msgstr "" msgid "Wrap search" msgstr "" msgid "Prev" msgstr "" msgid "Next" msgstr "" msgid "Unable to read file" msgstr "" msgid "Could not open the specified file for reading." msgstr "" msgid "This appears to be a binary file." msgstr "" msgid "An error occurred while reading the file." msgstr "" msgid "Text Translation Failure" msgstr "" msgid "Could not translate the file content from native encoding." msgstr "" msgid "Several characters would be lost." msgstr "" msgid "Unable to write file" msgstr "" msgid "Could not translate the file content to native encoding." msgstr "" msgid "Could not open the specified file for writing." msgstr "" msgid "An error occurred while writing the file." msgstr "" msgid "Try refreshing your repository." msgstr "" #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
                                          Please edit your config" msgstr "" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
                                          Please fix your config" msgstr "" #, python-format msgid "Operation aborted:

                                          %(arg0)s." msgstr "" msgid "Repository is locked" msgstr "" msgid "hint:" msgstr "" msgid "Repository Error" msgstr "" msgid "No visual editor configured" msgstr "" msgid "Please configure a visual editor." msgstr "" msgid "Editor launch failure" msgstr "" msgid "Failed to open path in terminal" msgstr "" #, python-format msgid "\"%s\" is not a valid directory" msgstr "" #, python-format msgid "Invalid configuration: %s" msgstr "" msgid "Unable to start the following command:" msgstr "" msgid "No shell configured" msgstr "" msgid "A terminal shell must be configured" msgstr "" msgid "Please enter a username" msgstr "" msgid "You must identify yourself to Mercurial" msgstr "" msgid "Unable to translate input to local encoding." msgstr "" msgid "Checkmark files to add" msgstr "" msgid "Checkmark files to forget" msgstr "" msgid "Forget" msgstr "" msgid "Checkmark files to revert" msgstr "" msgid "Revert" msgstr "" msgid "Checkmark files to remove" msgstr "" msgid "Remove" msgstr "Poista" #, python-format msgid "%s - hg %s" msgstr "%s - hg %s" msgid "Do not save backup files (*.orig)" msgstr "" msgid "Force removal of modified files (--force)" msgstr "" msgid "Add &Largefiles" msgstr "" msgid "No files selected" msgstr "" msgid "No operation to perform" msgstr "" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" msgid "Remove &Unmodified Files" msgstr "" msgid "Remove &All Selected Files" msgstr "" msgid "Rebase changeset and descendants" msgstr "" msgid "To rebase destination" msgstr "" msgid "Swap source and destination" msgstr "" msgid "Keep original changesets (--keep)" msgstr "" msgid "Keep original branch names (--keepbranches)" msgstr "" msgid "Collapse the rebased changesets (--collapse)" msgstr "" msgid "Rebase entire source branch (-b/--base)" msgstr "" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "" msgid "Rebase" msgstr "" #, python-format msgid "Rebase - %s" msgstr "" msgid "" "Before rebase, you must
                                          commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the rebase" msgstr "" msgid "Rebase is complete" msgstr "" msgid "Rebase failed" msgstr "" msgid "Rebase aborted" msgstr "" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" msgid "Exiting with an unfinished rebase is not recommended." msgstr "" msgid "Consider aborting the rebase first." msgstr "" #, python-format msgid "Merge rejected patch chunks into %s" msgstr "" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "" msgid "Mark this chunk as unresolved" msgstr "" msgid "Reload File" msgstr "" msgid "Are you sure you want to reload this file?" msgstr "" msgid "All unsaved changes will be lost." msgstr "" msgid "Warning" msgstr "" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" msgid "Copy source -> destination" msgstr "" msgid "Copy Error" msgstr "" msgid "Rename Error" msgstr "" msgid "Select Source File" msgstr "" msgid "Select Source Folder" msgstr "" msgid "Source does not exist." msgstr "" msgid "The source must be within the repository tree." msgstr "" msgid "The destination must be within the repository tree." msgstr "" msgid "Destination file already exists." msgstr "" msgid "Are you sure you want to overwrite it ?" msgstr "" #, python-format msgid "Copy - %s" msgstr "" #, python-format msgid "Rename - %s" msgstr "" msgid "Show all" msgstr "" msgid "### revision set query ###" msgstr "" msgid "Clear current query and query text" msgstr "" msgid "Trigger revision set query" msgstr "" msgid "Open advanced query editor" msgstr "" msgid "Delete selected query from history" msgstr "" msgid "filter" msgstr "" msgid "Toggle filtering of non-matched changesets" msgstr "" msgid "Show/Hide hidden changesets" msgstr "" msgid "Toggle graft relations visibility" msgstr "" msgid "Keyword Search" msgstr "" msgid "Revision Set" msgstr "" msgid "(unsaved)" msgstr "" msgid "Display graph the named branch only" msgstr "" msgid "Display only active branches" msgstr "" msgid "Display closed branches" msgstr "" msgid "Include all ancestors" msgstr "" msgctxt "column header" msgid "Graph" msgstr "" msgctxt "column header" msgid "Rev" msgstr "" msgctxt "column header" msgid "Branch" msgstr "" msgctxt "column header" msgid "Description" msgstr "Kuvaus" msgctxt "column header" msgid "Author" msgstr "" msgctxt "column header" msgid "Tags" msgstr "Tagit" msgctxt "column header" msgid "Latest tags" msgstr "" msgctxt "column header" msgid "Node" msgstr "" msgctxt "column header" msgid "Git Commit" msgstr "" msgctxt "column header" msgid "Age" msgstr "" msgctxt "column header" msgid "Local Time" msgstr "" msgctxt "column header" msgid "UTC Time" msgstr "" msgctxt "column header" msgid "Changes" msgstr "" msgctxt "column header" msgid "Converted From" msgstr "" msgctxt "column header" msgid "Phase" msgstr "" msgctxt "column header" msgid "Filename" msgstr "" msgid "Searching..." msgstr "" #, python-format msgid "filling (%d)" msgstr "" msgid "Mercurial User" msgstr "" msgid "Repository Registry" msgstr "" msgid "Show &Paths" msgstr "" msgid "Show S&hort Paths" msgstr "" msgid "&Scan Repositories at Startup" msgstr "" msgid "Scan &Remote Repositories" msgstr "" msgid "&Refresh Repository List" msgstr "" msgid "Refresh the Repository Registry list" msgstr "" msgid "&Open" msgstr "" msgid "Open the repository in a new tab" msgstr "" msgid "&Open All" msgstr "" msgid "Open all repositories in new tabs" msgstr "" msgid "New &Group" msgstr "" msgid "Create a new group" msgstr "" msgid "Rename the entry" msgstr "" msgid "Settin&gs" msgstr "" msgid "View the repository's settings" msgstr "" msgid "Re&move from Registry" msgstr "" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" msgid "Clon&e..." msgstr "" msgid "Clone Repository" msgstr "" msgid "E&xplore" msgstr "" msgid "Open the repository in a file browser" msgstr "" msgid "&Terminal" msgstr "" msgid "Open a shell terminal in the repository root" msgstr "" msgid "&Add Repository..." msgstr "" msgid "Add a repository to this group" msgstr "" msgid "A&dd Subrepository..." msgstr "" msgid "Convert an existing repository into a subrepository" msgstr "" msgid "Remo&ve Subrepository..." msgstr "" msgid "Remove this subrepository from the current revision" msgstr "" msgid "Copy the root path of the repository to the clipboard" msgstr "" msgid "Sort by &Name" msgstr "" msgid "Sort the group by short name" msgstr "" msgid "Sort by &Path" msgstr "" msgid "Sort the group by full path" msgstr "" msgid "&Sort by .hgsub" msgstr "" msgid "Order the subrepos as in .hgsub" msgstr "" msgid "Select repository directory to add" msgstr "" msgid "Select an existing repository to add as a subrepo" msgstr "" msgid "Cannot add subrepository" msgstr "" #, python-format msgid "%s is not a valid repository" msgstr "" #, python-format msgid "\"%s\" is not a folder" msgstr "" msgid "A repository cannot be added as a subrepo of itself" msgstr "" #, python-format msgid "" "The selected folder:

                                          %s

                                          is not inside the target repository." "

                                          This may be allowed but is greatly discouraged.
                                          If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" msgid "Cannot open repository" msgstr "" #, python-format msgid "The selected repository:

                                          %s

                                          cannot be open!" msgstr "" msgid "Subrepository already exists" msgstr "" #, python-format msgid "" "The selected repository:

                                          %s

                                          is already a subrepository of:" "

                                          %s

                                          as: \"%s\"" msgstr "" msgid "Failed to add subrepository" msgstr "" #, python-format msgid "Cannot open the .hgsub file in:

                                          %s" msgstr "" msgid "Failed to add repository" msgstr "" #, python-format msgid "The .hgsub file already contains the line:

                                          %s" msgstr "" msgid "Subrepo added to .hgsub file" msgstr "" #, python-format msgid "" "The selected subrepo:

                                          %s

                                          has been added to the .hgsub " "file of the repository:

                                          %s

                                          Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" #, python-format msgid "Cannot update the .hgsub file in:

                                          %s" msgstr "" msgid "Could not open .hgsub file" msgstr "" msgid "Cannot read the .hgsub file.

                                          Subrepository removal failed." msgstr "" msgid "Subrepository not found" msgstr "" msgid "" "The selected subrepository was not found on the .hgsub file.

                                          Perhaps it " "has already been removed?" msgstr "" msgid "&Yes" msgstr "" msgid "&No" msgstr "" msgid "Remove the selected repository?" msgstr "" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" msgid "Subrepository removed from .hgsub" msgstr "" msgid "" "The selected subrepository has been removed from the .hgsub file.

                                          Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" msgid "Could not update .hgsub file" msgstr "" msgid "Cannot update the .hgsub file.

                                          Subrepository removal failed." msgstr "" #, python-format msgid "Unsupported repository type (%s)" msgstr "" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "" msgid "New Group" msgstr "" msgid "Confirm Delete" msgstr "" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "" msgid "Could not get subrepository list" msgstr "" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

                                          %s" msgstr "" msgid "Could not open some subrepositories" msgstr "" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

                                          %s

                                          The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

                                          %s" msgstr "" msgid "Updating repository registry" msgstr "" #, python-format msgid "Loading repository %s" msgstr "" msgid "Repository Registry updated" msgstr "" msgid "Close tab" msgstr "" msgid "Close other tabs" msgstr "" msgid "Undo close tab" msgstr "" msgid "Reopen last closed tab" msgstr "" msgid "Undo close other tabs" msgstr "" msgid "Reopen last closed tab group" msgstr "" msgid "Failed to open repository" msgstr "" msgid "&Sort" msgstr "" #, python-format msgid "Local Repository %s" msgstr "" #, python-format msgid "" "An exception happened while loading the subrepos of:

                                          \"%s\"

                                          " msgstr "" #, python-format msgid "The exception error message was:

                                          %s

                                          " msgstr "" msgid "Click OK to continue or Abort to exit." msgstr "" msgid "Error loading subrepos" msgstr "" msgid "Unable to update repository name" msgstr "" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "" msgid "default" msgstr "" msgid "C&hoose Log Columns..." msgstr "" msgid "&Resize Columns" msgstr "" #, python-format msgid "Goto ancestor of %s and %s" msgstr "" #, python-format msgid "Can't find revision '%s'" msgstr "" msgid "Drag to change order" msgstr "" msgid "Workbench Log Columns" msgstr "" msgctxt "tab tooltip" msgid "Revision details" msgstr "" msgctxt "tab tooltip" msgid "Commit" msgstr "" msgctxt "tab tooltip" msgid "Search" msgstr "" msgctxt "tab tooltip" msgid "Console log" msgstr "" msgctxt "tab tooltip" msgid "Synchronize" msgstr "" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "" #, python-format msgid "%s " msgstr "" #, python-format msgid "Found %d incoming changesets" msgstr "" msgid "Pull" msgstr "" msgid "Pull incoming changesets into your repository" msgstr "" msgid "Reject incoming changesets" msgstr "" #, python-format msgid "Push current branch (%s)" msgstr "" #, python-format msgid "Push up to current revision (#%d)" msgstr "" #, python-format msgid "Push up to revision #%d" msgstr "" msgid "Push all" msgstr "" msgid "no outgoing changesets" msgstr "" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets" msgstr "" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "" msgid "Nothing to push" msgstr "" msgid "No revision found" msgstr "" #, python-format msgid "%s - verify repository" msgstr "" #, python-format msgid "%s - recover repository" msgstr "" msgid "No transaction available" msgstr "" msgid "There is no rollback transaction available" msgstr "" msgid "Undo last commit?" msgstr "" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "" msgid "Undo last transaction?" msgstr "" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "" msgid "Unable to determine working copy revision\n" msgstr "" msgid "Remove current working revision?" msgstr "" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" msgid "Tab cannot exit" msgstr "" msgid "Pus&h" msgstr "" msgid "Push to &Here" msgstr "" msgid "Push Selected &Branch" msgstr "" msgid "Push &All" msgstr "" msgid "&Update..." msgstr "" msgid "Bro&wse at Revision" msgstr "" msgid "&Merge with Local..." msgstr "" msgid "&Tag..." msgstr "" msgid "Boo&kmark..." msgstr "" msgid "Top&ic..." msgstr "" msgid "Sig&n..." msgstr "" msgid "&Backout..." msgstr "" msgid "Revert &All Files..." msgstr "" msgid "Copy &Hash" msgstr "" msgid "E&xport" msgstr "" msgid "E&xport Patch..." msgstr "" msgid "&Email Patch..." msgstr "" msgid "&Archive..." msgstr "" msgid "&Bundle Rev and Descendants..." msgstr "" msgid "Change &Phase to" msgstr "" msgid "&Graft to Local..." msgstr "" msgid "Modi&fy History" msgstr "" msgid "&Unapply Patch" msgstr "" msgid "Import to &MQ" msgstr "" msgid "MQ &Options" msgstr "" msgid "&Rebase..." msgstr "" msgid "&Prune..." msgstr "" msgid "&Strip..." msgstr "" msgid "Post to Re&view Board..." msgstr "" msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "" msgid "Write diff file" msgstr "" msgid "Unable to write diff file" msgstr "" msgid "Unable to compress history" msgstr "" msgid "Selected changeset pair not related" msgstr "" msgid "Visual Diff..." msgstr "" msgid "Export Diff..." msgstr "" msgid "Export Selected..." msgstr "" msgid "Email Selected..." msgstr "" msgid "Copy Selected as Patch" msgstr "" msgid "Archive DAG Range..." msgstr "" msgid "Export DAG Range..." msgstr "" msgid "Email DAG Range..." msgstr "" msgid "Bundle DAG Range..." msgstr "" msgid "Bisect - Good, Bad..." msgstr "" msgid "Bisect - Bad, Good..." msgstr "" msgid "Compress History..." msgstr "" msgid "Rebase..." msgstr "" msgid "Goto common ancestor" msgstr "" msgid "Graft Selected to local..." msgstr "" msgid "&Prune Selected..." msgstr "" msgid "Post Selected to Review Board..." msgstr "" msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "" msgid "Apply onto original parent" msgstr "" msgid "Apply only this patch" msgstr "" msgid "Fold patches..." msgstr "" msgid "Delete patches..." msgstr "" msgid "Rename patch..." msgstr "" msgid "Pull to here..." msgstr "" msgid "Visual diff..." msgstr "" msgid "Export patch" msgstr "" msgid "Patch Files (*.patch)" msgstr "" msgid "Cannot export revision" msgstr "" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" msgid "There is already an existing folder with that same name." msgstr "" msgid "Replace" msgstr "" msgid "Append" msgstr "" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" msgid "What do you want to do?\n" msgstr "" msgid "Replace the existing patch files.\n" msgstr "" msgid "Append the changes to the existing patch files.\n" msgstr "" msgid "Abort the export operation.\n" msgstr "" msgid "Patch files already exist" msgstr "" msgid "Patch exported" msgstr "" #, python-format msgid "" "Revision #%d (%s) was exported to:

                                          %s%s%s" msgstr "" msgid "Patches exported" msgstr "" #, python-format msgid "%d patches were exported to:

                                          %s" msgstr "" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

                                          Are you sure you want to use revert?

                                          (use " "update to checkout another revision)" msgstr "" msgid "Filter b&y" msgstr "" msgid "&Ancestors and Descendants" msgstr "" msgid "A&uthor" msgstr "" msgid "&Branch" msgstr "" msgid "&More Options..." msgstr "" msgid "Unable to merge" msgstr "" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "" msgid "Unable to backout" msgstr "" msgid "Write bundle" msgstr "" msgid "Backwards phase change requested" msgstr "" msgid "Do you really want to make this revision secret?" msgstr "" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" msgid "&Make secret" msgstr "" msgid "&Cancel" msgstr "" msgid "Do you really want to force a backwards phase transition?" msgstr "" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" msgid "&Force" msgstr "" msgid "Cannot import selected revision" msgstr "" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" msgid "Invalid command" msgstr "" msgid "The selected command is empty" msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" msgid "Failed to execute custom TortoiseHg command" msgstr "" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "" msgid "Failed to execute custom command" msgstr "" #, python-format msgid "The command \"%s\" could not be executed." msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" msgid "&Edit Toolbar" msgstr "" msgid "&Refresh" msgstr "" msgid "&Filter Toolbar" msgstr "" #, python-format msgid "TortoiseHg: %s" msgstr "" msgid "S&tatus Bar" msgstr "" #, python-format msgid "Resolve Conflicts - %s" msgstr "" msgid "Local revision information" msgstr "" msgid "Other revision information" msgstr "" msgid "Unresolved conflicts" msgstr "" msgid "Mercurial Re&solve" msgstr "" msgid "Attempt automatic (trivial) merge" msgstr "" msgid "Tool &Resolve" msgstr "" msgid "Merge using selected merge tool" msgstr "" msgid "&Take Local" msgstr "" msgid "Accept the local file version (yours)" msgstr "" msgid "Take &Other" msgstr "" msgid "Accept the other file version (theirs)" msgstr "" msgid "&Mark as Resolved" msgstr "" msgid "Mark this file as resolved" msgstr "" msgid "Diff &Local to Ancestor" msgstr "" msgid "&Diff Other to Ancestor" msgstr "" msgid "Resolved conflicts" msgstr "" msgid "&Edit File" msgstr "" msgid "Edit resolved file" msgstr "" msgid "3-&Way Diff" msgstr "" msgid "Visual three-way diff" msgstr "" msgid "Visual diff between resolved file and first parent" msgstr "" msgid "&Diff to Other" msgstr "" msgid "Visual diff between resolved file and second parent" msgstr "" msgid "Mark as &Unresolved" msgstr "" msgid "Mark this file as unresolved" msgstr "" msgid "Detected merge/diff tools:" msgstr "" msgid "Command output" msgstr "" msgid "Unable to show subrepository files" msgstr "" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" msgid "There are merge conflicts to be resolved" msgstr "" msgid "All conflicts are resolved." msgstr "" msgid "There are no conflicting file merges." msgstr "" msgid "Exit without finishing resolve?" msgstr "" msgid "Unresolved conflicts remain. Are you sure?" msgstr "" msgid "E&xit" msgstr "Lo&peta" msgid "Ext" msgstr "" msgid "Repository" msgstr "" msgid "" msgstr "" msgid "File List Toolbar" msgstr "" msgid "Ma&nifest Mode" msgstr "" msgid "Show all version-controlled files in tree view" msgstr "" msgid "&Flat List" msgstr "" msgid "### filter text ###" msgstr "" msgid "Changed by &This Commit" msgstr "" msgid "Show files changed by this commit" msgstr "" msgid "Compare to &1st Parent" msgstr "" msgid "Compare to &2nd Parent" msgstr "" msgid "Toggle parent to be used as the base revision" msgstr "" msgid "List Optio&ns" msgstr "" #, python-format msgid "%s - Revision Details (%s)" msgstr "" #, python-format msgid "Revert - %s" msgstr "" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "" msgid "Revert all files to this revision" msgstr "" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "" msgid "null revision (i.e. remove file(s))" msgstr "" msgid "Changeset:" msgstr "" msgid "Child:" msgstr "" msgid "Predecessors:" msgstr "" msgid "Successors:" msgstr "" msgid "Head is closed!" msgstr "" msgid "Changesets where username contains string." msgstr "" msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" msgid "Like \"keyword(string)\" but accepts a regex." msgstr "" msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" msgid "The named bookmark or all bookmarks." msgstr "" msgid "The named tag or all tags." msgstr "" msgid "Changeset is tagged." msgstr "" msgid "Changeset is a named branch head." msgstr "" msgid "Changeset is a merge changeset." msgstr "" msgid "Changeset is closed." msgstr "" msgid "" "Changesets within the interval, see help dates" msgstr "" msgid "Greatest common ancestor of the two changesets." msgstr "" msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" msgid "Changesets which modify files matched by pattern." msgstr "" msgid "Changesets which add files matched by pattern." msgstr "" msgid "Changesets which remove files matched by pattern." msgstr "" msgid "Changesets containing files matched by pattern." msgstr "" msgid "All changesets belonging to the branches of changesets in set." msgstr "" msgid "Members of a set with no children in set." msgstr "" msgid "Changesets which are descendants of changesets in set." msgstr "" msgid "Changesets that are ancestors of a changeset in set." msgstr "" msgid "Child changesets of changesets in set." msgstr "" msgid "The set of all parents for all changesets in set." msgstr "" msgid "First parent for all changesets in set, or the working directory." msgstr "" msgid "Second parent for all changesets in set, or the working directory." msgstr "" msgid "Changesets with no parent changeset in set." msgstr "" msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" msgid "Changeset with lowest revision number in set." msgstr "" msgid "Changeset with highest revision number in set." msgstr "" msgid "First n members of a set." msgstr "" msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "" msgid "All changesets, the same as 0:tip." msgstr "" msgid "Revision Set Query" msgstr "" msgid "all revisions converted from subversion" msgstr "" msgid "changeset which represents converted svn revision" msgstr "" msgid "Common sets" msgstr "" msgid "File pattern sets" msgstr "" msgid "Set Ancestry" msgstr "" msgid "Set Logic" msgstr "" msgid "" "help " "revsets" msgstr "" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" #, python-format msgid "thg: unknown command '%s'\n" msgstr "" #, python-format msgid "thg %s: %s\n" msgstr "" #, python-format msgid "thg: %s\n" msgstr "" #, python-format msgid "abort: %s!\n" msgstr "" #, python-format msgid "abort: %s\n" msgstr "" #, python-format msgid "(%s)\n" msgstr "" msgid "option --config may not be abbreviated!" msgstr "" msgid "invalid arguments" msgstr "" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" msgid "repository root directory or symbolic path name" msgstr "" msgid "enable additional output" msgstr "" msgid "suppress output" msgstr "" msgid "display help and exit" msgstr "" msgid "set/override config option (use 'section.name=value')" msgstr "" msgid "enable debugging output" msgstr "" msgid "start debugger" msgstr "" msgid "print command execution profile" msgstr "" msgid "do not fork GUI process" msgstr "" msgid "always fork GUI process" msgstr "" msgid "read file list from file" msgstr "" msgid "read file list from file encoding utf-8" msgstr "" msgid "thg about" msgstr "" msgid "thg add [FILE]..." msgstr "" msgid "revision to annotate" msgstr "" msgid "open to line" msgstr "" msgid "initial search pattern" msgstr "" msgid "thg annotate" msgstr "" #, python-format msgid "invalid line number: %s" msgstr "" msgid "revision to archive" msgstr "" msgid "thg archive" msgstr "" msgid "merge with old dirstate parent after backout" msgstr "" msgid "parent to choose when backing out merge" msgstr "" msgid "revision to backout" msgstr "" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "" msgid "thg bisect" msgstr "" msgid "revision" msgstr "" msgid "thg bookmarks [-r REV] [NAME]" msgstr "" msgid "only one new bookmark name allowed" msgstr "" msgid "the clone will include an empty working copy (only a repository)" msgstr "" msgid "revision, tag or branch to check out" msgstr "" msgid "include the specified changeset" msgstr "" msgid "clone only the specified branch" msgstr "" msgid "use pull protocol to copy metadata" msgstr "" msgid "use uncompressed transfer (fast over LAN)" msgstr "" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "" msgid "record user as committer" msgstr "" msgid "record datecode as commit date" msgstr "" msgid "thg commit [OPTIONS] [FILE]..." msgstr "" msgid "thg debugblockmatcher" msgstr "" msgid "thg debugbugreport [TEXT]" msgstr "" msgid "thg debugconsole" msgstr "" msgid "thg debuglighthg" msgstr "" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "" msgid "no command specified" msgstr "" msgid "thg drag_copy SOURCE... DEST" msgstr "" msgid "thg drag_move SOURCE... DEST" msgstr "" msgid "a revision to send" msgstr "" msgid "thg email [REVS]" msgstr "" msgid "use only one form to specify the revision" msgstr "" msgid "select the specified revision" msgstr "" msgid "side-by-side comparison of revisions" msgstr "" msgid "thg filelog [OPTION]... FILE" msgstr "" msgid "requires a single filename" msgstr "" msgid "thg forget [FILE]..." msgstr "" msgid "revisions to graft" msgstr "" msgid "thg graft [-r] REV..." msgstr "" msgid "You must provide revisions to graft" msgstr "" msgid "ignore case during search" msgstr "" msgid "thg grep" msgstr "" msgid "thg guess" msgstr "" msgid "thg help [COMMAND]" msgstr "" msgid "global options:" msgstr "" msgid "use \"thg help\" for the full list of commands" msgstr "" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "" msgid "" "list of commands:\n" "\n" msgstr "" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" msgid "(no help text available)" msgstr "" msgid "options:\n" msgstr "" msgid "no commands defined\n" msgstr "" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "" msgid "" "basic commands:\n" "\n" msgstr "" #, python-format msgid " (default: %s)" msgstr "" msgid "thg hgignore [FILE]" msgstr "" msgid "import to the patch queue (MQ)" msgstr "" msgid "thg import [OPTION] [SOURCE]..." msgstr "" msgid "thg init [DEST]" msgstr "" msgid "thg lock" msgstr "" msgid "search for a given text or revset" msgstr "" msgid "(DEPRECATED)" msgstr "" msgid "open a new workbench window" msgstr "" msgid "thg log [OPTIONS] [FILE]" msgstr "" msgid "cannot specify both -k/--query and filenames" msgstr "" msgid "revision to display" msgstr "" msgid "thg manifest [-r REV] [FILE]" msgstr "" msgid "revision to merge" msgstr "" msgid "thg merge [[-r] REV]" msgstr "" msgid "Merge revision not specified or not found" msgstr "" msgid "a revision to post" msgstr "" msgid "thg postreview [-r] REV..." msgstr "" msgid "reviewboard extension not enabled" msgstr "" #, python-format msgid "see %(url)s" msgstr "" msgid "no revisions specified" msgstr "" msgid "revisions to prune" msgstr "" msgid "thg prune [-r] REV..." msgstr "" msgid "thg purge" msgstr "" msgid "keep original changesets" msgstr "" msgid "keep original branch names" msgstr "" msgid "rebase from the specified changeset" msgstr "" msgid "rebase onto the specified changeset" msgstr "" msgid "thg rebase -s REV -d REV [--keep]" msgstr "" msgid "Rebase already in progress" msgstr "" msgid "Resuming rebase already in progress" msgstr "" msgid "You must provide source and dest arguments" msgstr "" msgid "thg rejects [FILE]" msgstr "" msgid "You must provide the path to a file" msgstr "" msgid "thg remove [FILE]..." msgstr "" msgid "thg rename [SOURCE] [DEST]" msgstr "" msgid "field to give initial focus" msgstr "" msgid "thg repoconfig" msgstr "" msgid "thg resolve" msgstr "" msgid "the revision to show" msgstr "" msgid "thg revdetails [-r REV]" msgstr "" msgid "thg revert [FILE]..." msgstr "" msgid "revision to update" msgstr "" msgid "thg rupdate [[-r] REV]" msgstr "" msgid "name of the hgweb config file (serve more than one repository)" msgstr "" msgid "name of the hgweb config file (DEPRECATED)" msgstr "" msgid "thg serve [--web-conf FILE]" msgstr "" msgid "thg shellconfig" msgstr "" msgid "thg shelve" msgstr "" msgid "sign even if the sigfile is modified" msgstr "" msgid "make the signature local" msgstr "" msgid "the key id to sign with" msgstr "" msgid "do not commit the sigfile after signing" msgstr "" msgid "use as commit message" msgstr "" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "" msgid "Please enable the Gpg extension first." msgstr "" msgid "show files without changes" msgstr "" msgid "show ignored files" msgstr "" msgid "thg status [OPTIONS] [FILE]" msgstr "" msgid "discard uncommitted changes (no backup)" msgstr "" msgid "do not back up stripped revisions" msgstr "" msgid "do not modify working copy during strip" msgstr "" msgid "revision to strip" msgstr "" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "" msgid "open the bookmark sync window" msgstr "" msgid "thg sync [OPTION]... [PEER]" msgstr "" msgid "replace existing tag" msgstr "" msgid "make the tag local" msgstr "" msgid "revision to tag" msgstr "" msgid "remove a tag" msgstr "" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "" msgid "wait until the second ticks over" msgstr "" msgid "notify the shell for paths given" msgstr "" msgid "remove the status cache" msgstr "" msgid "show the contents of the status cache (no update)" msgstr "" msgid "update all repos in current dir" msgstr "" msgid "thg thgstatus [OPTION]" msgstr "" msgid "thg topics [-r REV] [NAME]" msgstr "" msgid "Please enable the Topic extension first." msgstr "" msgid "only one new topic name allowed" msgstr "" msgid "thg update [-C] [[-r] REV]" msgstr "" msgid "thg userconfig" msgstr "" msgid "changeset to view in diff tool" msgstr "" msgid "revisions to view in diff tool" msgstr "" msgid "bundle file to preview" msgstr "" msgid "launch visual diff tool" msgstr "" msgid "print license" msgstr "" msgid "thg version [OPTION]" msgstr "" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "" msgid "Location:" msgstr "" msgid "Update to:" msgstr "" msgid "Options:" msgstr "" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "" msgid "Perform a push before updating (-p/--push)" msgstr "" msgid "Allow pushing new branches (--new-branch)" msgstr "" msgid "Force push to remote location (-f/--force)" msgstr "" msgid "remove working directory" msgstr "" msgid "unknown revision!" msgstr "" #, python-format msgid "Remote Update - %s" msgstr "" msgid "&Update" msgstr "" msgid "Log" msgstr "" msgid "Repositories" msgstr "" #, python-format msgid "Running at %s" msgstr "" msgid "Stopped" msgstr "" msgid "TortoiseHg Web Server" msgstr "" msgid "Web Server" msgstr "" msgid "Port:" msgstr "" msgid "Status:" msgstr "" msgid "Start" msgstr "" msgid "Settings" msgstr "Asetukset" msgid "" msgstr "" msgid "&True" msgstr "" msgid "&False" msgstr "" msgid "&Unspecified" msgstr "" #, python-format msgid "%dpt" msgstr "" msgid "Bold" msgstr "" msgid "Italic" msgstr "" msgid "Strike" msgstr "" msgid "Underline" msgstr "" msgid "&Set..." msgstr "" msgid "&Clear" msgstr "" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "" msgid "&Browse..." msgstr "" msgid "UI Language" msgstr "" msgid "Specify your preferred user interface language (restart needed)" msgstr "" msgid "Three-way Merge Tool" msgstr "" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" msgid "Visual Diff Tool" msgstr "" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" msgid "Visual Editor" msgstr "" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" msgid "CLI Editor" msgstr "" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" msgid "Shell" msgstr "" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
                                          Default, Windows: cmd.exe /" "K title %(reponame)s
                                          Default, OS X: not set
                                          Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" msgid "Immediate Operations" msgstr "" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" msgid "Tab Width" msgstr "" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" msgid "Force Repo Tab" msgstr "" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "" msgid "Monitor Repo Changes" msgstr "" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" msgid "Max Diff Size" msgstr "" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" msgid "Fork GUI" msgstr "" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" msgid "Full Path Title" msgstr "" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" msgid "Auto-resolve merges" msgstr "" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" msgid "New Repo Skeleton" msgstr "" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "" msgid "Single Workbench Window" msgstr "" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" msgid "Default widget" msgstr "" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" msgid "" "Open new tabs next\n" "to the current tab" msgstr "" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" msgid "Author Coloring" msgstr "" msgid "Color changesets by author name. Default: False" msgstr "" msgid "Full Authorname" msgstr "" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" msgid "Task Tabs" msgstr "" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" msgid "Task Toolbar Order" msgstr "" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
                                          Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
                                          Valid names are: log commit sync grep and " "pbranch.
                                          Default: log commit grep pbranch | sync" msgstr "" msgid "Long Summary" msgstr "" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" msgid "Log Batch Size" msgstr "" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "" msgid "Dead Branches" msgstr "" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" msgid "Branch Colors" msgstr "" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" msgid "Hide Tags" msgstr "" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" msgid "Activate Bookmarks" msgstr "" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

                                          • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
                                          • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
                                          • never: Never show any prompt to " "activate any bookmarks.

                                          Default: prompt" msgstr "" msgid "Show Family Line" msgstr "" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

                                          Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" msgid "Use optimized graph layouter" msgstr "" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

                                          Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" msgctxt "config item" msgid "Commit" msgstr "" msgid "Username" msgstr "" msgid "" "Name associated with commits. The common format is:
                                          Full Name <" "email@example.com>" msgstr "" msgid "Ask Username" msgstr "" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" msgid "Summary Line Length" msgstr "" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" msgid "Close After Commit" msgstr "" msgid "Close the commit tool after every successful commit. Default: False" msgstr "" msgid "Push After Commit" msgstr "" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" msgid "Auto Commit List" msgstr "" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" msgid "Auto Exclude List" msgstr "" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" msgid "English Messages" msgstr "" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" msgid "New Commit Phase" msgstr "" msgid "The phase of new commits. Default: draft" msgstr "" msgid "Secret MQ Patches" msgstr "" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "" msgid "Check Subrepo Phase" msgstr "" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" msgid "Monitor working
                                          directory changes" msgstr "" msgid "" "Select when the working directory status list will be refreshed:
                                          - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
                                          TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
                                          - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
                                          - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
                                          Default: auto" msgstr "" msgid "Confirm adding unknown files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Confirm deleting files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Sync" msgstr "" msgid "After Pull Operation" msgstr "" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" msgid "Default Push" msgstr "" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

                                          • all: The default. Push all changes in all " "branches.
                                          • branch: Push all changes in the current branch.
                                          • revision: Push the changes in the current branch up to the current revision.

                                          Default: all" msgstr "" msgid "Confirm Push" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" msgid "Target Combo" msgstr "" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

                                          • auto: The default. Show the combo if more than one target " "configured.
                                          • always: Always show the combo.

                                          Default: auto" msgstr "" msgid "SSH Command" msgstr "" msgid "" "Command to use for SSH connections.

                                          Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" msgid "Subrepository Features:" msgstr "" msgid "Allow Hg Subrepos" msgstr "" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" msgid "Allow Git Subrepos" msgstr "" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

                                          See the security note before enabling Git " "subrepos." msgstr "" msgid "Allow SVN Subrepos" msgstr "" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

                                          See the security note before enabling " "Subversion subrepos." msgstr "" msgid "Server" msgstr "" msgid "Repository Details:" msgstr "" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" msgid "Encoding" msgstr "" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" msgid "'Publishing' repository" msgstr "" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" msgid "Web Server:" msgstr "" msgid "Textual description of the repository's purpose or contents." msgstr "" msgid "Contact" msgstr "" msgid "Name or email address of the person in charge of the repository." msgstr "" msgid "Style" msgstr "" msgid "Which template map style to use" msgstr "" msgid "Archive Formats" msgstr "" msgid "Comma separated list of archive formats allowed for downloading" msgstr "" msgid "Port" msgstr "" msgid "Port to listen on" msgstr "" msgid "Push Requires SSL" msgstr "" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" msgid "Stripes" msgstr "" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" msgid "Max Files" msgstr "" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "" msgid "Max Changes" msgstr "" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "" msgid "Allow Push" msgstr "" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" msgid "Deny Push" msgstr "" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" msgid "Proxy" msgstr "" msgid "Host" msgstr "" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "" msgid "Bypass List" msgstr "" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "" msgid "Optional. User name to authenticate with at the proxy server" msgstr "" msgid "Password" msgstr "" msgid "Optional. Password to authenticate with at the proxy server" msgstr "" msgid "From" msgstr "" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "" msgid "To" msgstr "" msgid "Comma-separated list of recipient email addresses" msgstr "" msgid "Cc" msgstr "" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "" msgid "Bcc" msgstr "" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "" msgid "method" msgstr "" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" msgid "SMTP Host" msgstr "" msgid "Host name of mail server" msgstr "" msgid "SMTP Port" msgstr "" msgid "Port to connect to on mail server. Default: 25" msgstr "" msgid "SMTP TLS" msgstr "" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "" msgid "SMTP Username" msgstr "" msgid "Username to authenticate to mail server with" msgstr "" msgid "SMTP Password" msgstr "" msgid "Password to authenticate to mail server with" msgstr "" msgid "Local Hostname" msgstr "" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "" msgid "Diff and Annotate" msgstr "" msgid "Patch EOL" msgstr "" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" msgid "Git Format" msgstr "" msgid "Use git extended diff header format. Default: False" msgstr "" msgid "MQ Git Format" msgstr "" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" msgid "No Dates" msgstr "" msgid "Do not include modification dates in diff headers. Default: False" msgstr "" msgid "Show Function" msgstr "" msgid "Show which function each change is in. Default: False" msgstr "" msgid "Ignore White Space" msgstr "" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "" msgid "Ignore WS Amount" msgstr "" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "" msgid "Ignore Blank Lines" msgstr "" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "" msgid "Annotate:" msgstr "" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "" msgid "Fonts" msgstr "" msgid "Message Font" msgstr "" msgid "Font used to display commit messages. Default: monospace 10" msgstr "" msgid "Diff Font" msgstr "" msgid "Font used to display text differences. Default: monospace 10" msgstr "" msgid "ChangeLog Font" msgstr "" msgid "Font used to display changelog data. Default: monospace 10" msgstr "" msgid "Output Font" msgstr "" msgid "Font used to display output messages. Default: sans 8" msgstr "" msgid "Extensions" msgstr "" msgid "Tools" msgstr "" msgid "Hooks" msgstr "" msgid "Issue Tracking" msgstr "" msgid "Issue Regex" msgstr "" msgid "Defines the regex to match when picking up issue numbers." msgstr "" msgid "Issue Link" msgstr "" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" msgid "Inline Tags" msgstr "" msgid "Show tags at start of commit message." msgstr "" msgid "Mandatory Issue Reference" msgstr "" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" msgid "Issue Tracker Plugin" msgstr "" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" msgid "Configure Issue Tracker" msgstr "" msgid "Configure the selected COM Bug Tracker plugin." msgstr "" msgid "Issue Tracker Trigger" msgstr "" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

                                          • never: Do not update the Issue Tracker " "state automatically.
                                          • commit: Update the Issue Tracker state after " "a successful commit.

                                          Default: never" msgstr "" msgid "Changeset Link" msgstr "" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
                                          The template string " "uses a normal mercurial template syntax, such as:

                                          • {node|short} : replaced by " "the 12 digit revision id.
                                          • {rev} : replaced by the revision number." "
                                          • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
                                          For example, in order to " "link to bitbucket commit pages you can set this to:
                                          https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
                                          You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
                                          https://github.com/torvalds/" "linux/commit/{gitnode}
                                          https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
                                          " msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "" msgid "User name to authenticate with review board" msgstr "" msgid "Password to authenticate with review board" msgstr "" msgid "Server Repository ID" msgstr "" msgid "The default repository id for this repo on the review board server" msgstr "" msgid "Target Groups" msgstr "" msgid "A comma separated list of target groups" msgstr "" msgid "Target People" msgstr "" msgid "A comma separated list of target people" msgstr "" msgid "Kiln Bfiles" msgstr "" msgid "Patterns" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" msgid "Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" msgid "System Cache" msgstr "" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "" msgid "Simplelock" msgstr "" msgid "Lock Clone" msgstr "" msgid "" "Location of local clone of organizational lock repository.

                                          This repository " "must contain a \"locked\" text file" msgstr "" msgid "Largefiles" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" msgid "Minimum Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" msgid "User Cache" msgstr "" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" msgid "Projrc" msgstr "" msgid "Require confirmation" msgstr "" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

                                          • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
                                          • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
                                          • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
                                          " msgstr "" msgid "Servers" msgstr "" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" msgid "Include" msgstr "" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" msgid "Exclude" msgstr "" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" msgid "Update on incoming" msgstr "" msgid "" "Let the user update the projrc on incoming:
                                          • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
                                          • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
                                          • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                                            Default: never" msgstr "" msgid "GnuPG" msgstr "" msgid "Specify the path to GPG. Default: gpg" msgstr "" msgid "Key ID" msgstr "" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "" msgid "TortoiseHg Settings" msgstr "" msgid "Iniparse package not found" msgstr "" msgid "Can't change settings without iniparse package - view is readonly." msgstr "" #, python-format msgid "%s's global settings" msgstr "" msgid "No repository found" msgstr "" msgid "no repo at " msgstr "" #, python-format msgid "%s project settings (.hg/projrc)" msgstr "" #, python-format msgid "%s repository settings" msgstr "" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "" msgid "Apply changes before exit?" msgstr "" msgid "&No (discard changes)" msgstr "" msgid "Reload" msgstr "" msgid "Settings File:" msgstr "" msgid "Confirm Save" msgstr "" msgid "Save changes before editing?" msgstr "" msgid "&Save" msgstr "" msgid "Confirm Reload" msgstr "" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" msgid "Unable to create a Mercurial.ini file" msgstr "" msgid "Insufficient access rights, reverting to read-only mode." msgstr "" msgid "Context Menu" msgstr "" msgid "Top menu items:" msgstr "" msgid "Sub menu items:" msgstr "" msgid "Menu Behavior" msgstr "" msgid "Hide context menu outside repositories" msgstr "" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" msgid "Icons" msgstr "" msgid "Overlays" msgstr "" msgid "Enabled overlays" msgstr "" msgid "Local disks only" msgstr "" msgid "Enabled Overlay Handlers" msgstr "" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "" msgid "Added" msgstr "" msgid "Locked*" msgstr "" msgid "Ignored*" msgstr "" msgid "Unversioned" msgstr "" msgid "Readonly*" msgstr "" msgid "Deleted*" msgstr "" msgid "*: not used by TortoiseHg" msgstr "" msgid "Taskbar" msgstr "" msgid "Show Icon" msgstr "" msgid "Highlight Icon" msgstr "" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" msgid "Explorer Extension Settings - TortoiseHg" msgstr "" msgid "Clear" msgstr "" msgid "Clear the current shelf file" msgstr "" msgid "Delete the current shelf file" msgstr "" msgid "Left Toolbar" msgstr "" msgid "Delete selected chunks" msgstr "" msgid "Move all files right" msgstr "" msgid "Move selected file right" msgstr "" msgid "Edit file" msgstr "" msgid "Move selected chunks right" msgstr "" msgid "Refresh Toolbar" msgstr "" msgid "Refresh" msgstr "" msgid "New Shelf" msgstr "" msgid "Right Toolbar" msgstr "" msgid "Move selected chunks left" msgstr "" msgid "Move selected file left" msgstr "" msgid "Move all files left" msgstr "" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "" msgid "Delete selected chunks from working copy?" msgstr "" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "" msgid "Are you sure?" msgstr "" msgid "TortoiseHg New Shelf Name" msgstr "" msgid "Specify name of new shelf" msgstr "" msgid "Bad filename" msgstr "" #, python-format msgid "A shelf name cannot contain %s" msgstr "" msgid "File already exists" msgstr "" msgid "A shelf file of that name already exists" msgstr "" msgid "New shelf created" msgstr "" #, python-format msgid "Delete shelf file %s?" msgstr "" msgid "Shelf deleted" msgstr "" msgid "Revert all working copy changes?" msgstr "" #, python-format msgid "Clear contents of shelf file %s?" msgstr "" msgid "Shelf cleared" msgstr "" #, python-format msgid "Shelf: %s" msgstr "" #, python-format msgid "Patch: %s" msgstr "" msgid "Key:" msgstr "" msgid "Local sign" msgstr "" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "" msgid "No commit" msgstr "" msgid "Use custom commit message:" msgstr "" msgid "&Sign" msgstr "" #, python-format msgid "Sign - %s" msgstr "" msgid "Signature has been added" msgstr "" msgid "Repository command still running" msgstr "" msgid "Filter:" msgstr "" msgid "Check all files" msgstr "" msgid "Uncheck all files" msgstr "" msgid "Status File List Toolbar" msgstr "" msgid "Remove filter, show root" msgstr "" #, python-format msgid "%s - status (selection filtered)" msgstr "" #, python-format msgid "%s - status" msgstr "" msgid "Check" msgstr "" msgid "Uncheck" msgstr "" msgid "status" msgstr "" msgid "Failed to refresh" msgstr "" msgid "No appropriate files" msgstr "" msgid "No files found for this operation" msgstr "" msgid "Stat" msgstr "" msgid "M" msgstr "" msgid "Filename" msgstr "" msgid "Size (KB)" msgstr "" #, python-format msgid "Checked count: %d" msgstr "" msgid ", resolved merge" msgstr "" msgid ", unresolved merge" msgstr "" #, python-format msgid "%s is modified" msgstr "" msgid "modified" msgstr "" #, python-format msgid "%s is added" msgstr "" msgid "added" msgstr "" #, python-format msgid "%s is removed" msgstr "" msgid "removed" msgstr "" #, python-format msgid "%s is not tracked (unknown)" msgstr "" msgid "unknown" msgstr "" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "" msgid "missing" msgstr "" #, python-format msgid "%s is ignored" msgstr "" msgid "ignored" msgstr "" #, python-format msgid "%s is not modified (clean)" msgstr "" msgid "clean" msgstr "" #, python-format msgid "%s is a dirty subrepo" msgstr "" msgid "subrepo" msgstr "" msgid "Check for incoming changes from selected URL" msgstr "" msgid "Pull incoming changes from selected URL" msgstr "" msgid "Detect outgoing changes to selected URL" msgstr "" msgid "Push outgoing changes to selected URL" msgstr "" msgid "Sync Bookmarks" msgstr "" msgid "Email outgoing changesets for remote repository" msgstr "" msgid "Manage pending perforce changelists" msgstr "" msgid "Unbundle" msgstr "" msgid "Selected Options:" msgstr "" msgid "Path Edit Toolbar" msgstr "" msgid "Security" msgstr "" msgid "Manage HTTPS connection security and user authentication" msgstr "" msgid "Save" msgstr "Tallenna" msgid "Save current URL under an alias" msgstr "" msgid "Paths in Repository Settings:" msgstr "" msgid "Related Paths:" msgstr "" msgid "branch: " msgstr "" msgid "bookmark: " msgstr "" #, python-format msgid "rev: %d (%s)" msgstr "" msgid "Post Pull: " msgstr "" msgid "&Edit..." msgstr "" msgid "&Remove..." msgstr "&Poista..." msgid "Repository not local" msgstr "" msgid "A terminal shell cannot be opened for remote" msgstr "" msgid "Confirm path delete" msgstr "" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "" msgid "Select repository" msgstr "" msgid "No host specified" msgstr "" msgid "Please set a valid URL to continue." msgstr "" msgid "No remote repository URL or path set" msgstr "" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

                                            Please type and save a remote repository path on the " "Sync widget." msgstr "" msgid "Redundant authentication info" msgstr "" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" msgid "sync command already running" msgstr "" #, python-format msgid "Getting incoming changesets from %s..." msgstr "" #, python-format msgid "Found incoming changesets from %s" msgstr "" #, python-format msgid "No incoming changesets from %s" msgstr "" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "" #, python-format msgid "Pulling from %s..." msgstr "" #, python-format msgid "Pull from %s completed" msgstr "" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "" msgid "Merge caused file conflicts" msgstr "" msgid "File conflicts need to be resolved" msgstr "" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "" #, python-format msgid "%d outgoing changesets to %s" msgstr "" #, python-format msgid "No outgoing changesets to %s" msgstr "" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "" msgid "Perforce pending..." msgstr "" #, python-format msgid "%s (submitted)" msgstr "" #, python-format msgid "%s (pending)" msgstr "" msgid "Unable to parse p4pending output" msgstr "" #, python-format msgid "%d pending changelists found" msgstr "" msgid "No pending Perforce changelists" msgstr "" msgid "Aborted p4pending" msgstr "" msgid "Unable to determine pending changesets" msgstr "" msgid "Confirm Push to remote Repository" msgstr "" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" #, python-format msgid "Push to %s aborted" msgstr "" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" #, python-format msgid "Pushing to %s..." msgstr "" #, python-format msgid "Push to %s completed" msgstr "" #, python-format msgid "Push to %s aborted, ret %d" msgstr "" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" msgid "Determining outgoing changesets to email..." msgstr "" msgid "No outgoing changesets" msgstr "" #, python-format msgid "Outgoing aborted, ret %d" msgstr "" msgid "Select bundle file" msgstr "" msgid "Bundle files (*.hg)" msgstr "" msgid "Unable to remove URL" msgstr "" msgid "Post Pull Behavior" msgstr "" msgid "Select post-pull operation for this repository" msgstr "" msgid "None - simply pull changesets" msgstr "" msgid "Update - pull, then try to update" msgstr "" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "" msgid "Rebase - rebase local commits above pulled changes" msgstr "" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "" msgid "Launch settings tool..." msgstr "" msgid "Unable to save post pull operation" msgstr "" msgid "Save Path" msgstr "" msgid "Alias" msgstr "" msgid "URL" msgstr "" msgid "Remove authentication data from URL" msgstr "" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" msgid "Update subrepo paths" msgstr "" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" msgid "Unable to save an URL" msgstr "" msgid "Confirm URL replace" msgstr "" #, python-format msgid "%s already exists, replace URL?" msgstr "" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

                                            %s

                                            Replace it with the " "following URL?:

                                            %s" msgstr "" msgid "Security: " msgstr "" #, python-format msgid "Host: %s" msgstr "" msgid "Secure HTTPS Connection" msgstr "" msgid "Verify with Certificate Authority certificates (best)" msgstr "" msgid "Verify with stored host fingerprint (good)" msgstr "" msgid "No host validation, but still encrypted (bad)" msgstr "" msgid "### host certificate fingerprint ###" msgstr "" msgid "Query" msgstr "" msgid "TLS 1.0" msgstr "" msgid "TLS 1.1" msgstr "" msgid "TLS 1.2" msgstr "" msgid "Minimum Protocol" msgstr "" msgid "User Authentication" msgstr "" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Key" msgstr "" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Chain" msgstr "" msgid "Certificate Query Error" msgstr "" msgid "Select User Certificate Key File" msgstr "" msgid "PEM files (*.pem *.key)" msgstr "" msgid "Select User Certificate Chain File" msgstr "" msgid "PEM files (*.pem *.crt *.cer)" msgstr "" msgid "Unable to save authentication" msgstr "" #, python-format msgid "%s - sync options" msgstr "" msgid "Allow push of a new branch (--new-branch)" msgstr "" msgid "Force push or pull (override safety checks, --force)" msgstr "" msgid "Temporarily disable configured HTTP proxy" msgstr "" msgid "Emit debugging output (--debug)" msgstr "" msgid "Work on patch queue (--mq)" msgstr "" #, python-format msgid "Tag - %s" msgstr "" msgid "Tag:" msgstr "" msgid "Tagged:" msgstr "" msgid "Local tag" msgstr "" msgid "Replace existing tag (-f/--force)" msgstr "" msgid "Use English commit message" msgstr "" msgid "local" msgstr "" msgid "Move" msgstr "" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "" #, python-format msgid "Added tag %s for changeset %s" msgstr "" #, python-format msgid "Tag '%s' has been moved" msgstr "" #, python-format msgid "Tag '%s' has been added" msgstr "" #, python-format msgid "Removed tag %s" msgstr "" #, python-format msgid "Tag '%s' has been removed" msgstr "" msgid "Patch files (*.diff *.patch)" msgstr "" #, python-format msgid "Import - %s" msgstr "" msgid "Browse Directory..." msgstr "" msgid "Import from Clipboard" msgstr "" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "" msgid "Preview:" msgstr "" msgid "Shelf" msgstr "" msgid "Checking working directory status..." msgstr "" msgid "&Import" msgstr "" msgid "Working directory is not clean! View changes..." msgstr "" msgid "Select patches" msgstr "" msgid "Select Directory containing patches" msgstr "" #, python-format msgid "%s patches" msgstr "" #, python-format msgid "%s will be imported to " msgstr "" msgid "Nothing to import" msgstr "" msgid "Strip:" msgstr "" msgid "Discard local changes, no backup (-f/--force)" msgstr "" msgid "No backup (-n/--nobackup)" msgstr "" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "" msgstr[1] "" msgid "Unknown revision!" msgstr "" msgid "Detected uncommitted local changes." msgstr "" msgid "Do you want to keep them or discard them?" msgstr "" msgid "&Keep (--keep)" msgstr "" msgid "&Discard (--force)" msgstr "" msgid "Confirm Strip" msgstr "" #, python-format msgid "Strip - %s" msgstr "" msgid "&Strip" msgstr "" msgid "Topic:" msgstr "" msgid "&Rename" msgstr "" #, python-format msgid "Topic - %s" msgstr "" #, python-format msgid "A topic named \"%s\" already exists" msgstr "" #, python-format msgid "Topic '%s' has been added" msgstr "" #, python-format msgid "Topic '%s' does not exist" msgstr "" #, python-format msgid "Topic '%s' has been removed" msgstr "" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "" msgid "Parent 1:" msgstr "" msgid "Parent 2:" msgstr "" msgid "Pull subrepos from:" msgstr "" msgid "List updated files (--verbose)" msgstr "" msgid "Discard local changes, no backup (-C/--clean)" msgstr "" msgid "Always merge (when possible)" msgstr "" msgid "(same as parent)" msgstr "" msgid "Activate bookmark?" msgstr "" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

                                            Do " "you want to activate it?
                                            You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

                                            Select " "the bookmark that you want to activate and click OK.

                                            Click " "Cancel if you don't want to activate any of them.

                                            You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                            " msgstr "" msgid "Deactivate current bookmark?" msgstr "" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" msgid "Discard - discard local changes, no backup" msgstr "" msgid "&Shelve" msgstr "" msgid "Shelve - move local changes to a patch" msgstr "" msgid "Merge - allow to merge with local changes" msgstr "" msgid "Confirm Update" msgstr "" #, python-format msgid "Update - %s" msgstr "" msgid "[non-existant]" msgstr "" msgid "Tool launch failure" msgstr "" #, python-format msgid "%s : %s" msgstr "%s : %s" msgid "No diff tool found" msgstr "" msgid "No visual diff tools were detected" msgstr "" msgid "[working copy]" msgstr "" msgid "[original]" msgstr "" msgid "Unable to find changeset" msgstr "" msgid "You likely need to refresh this application" msgstr "" msgid "No file changes" msgstr "" msgid "There are no file changes to view" msgstr "" msgid "working changes" msgstr "" #, python-format msgid "changeset %d:%s" msgstr "" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "" msgid "Visual Diffs - " msgstr "" msgid " filtered" msgstr "" msgid "Temporary files are removed when this dialog is closed" msgstr "" msgid "Select Tool:" msgstr "" msgid "Dir diff to p1" msgstr "" msgid "Dir diff to p2" msgstr "" msgid "3-way dir diff" msgstr "" msgid "Directory diff" msgstr "" msgid "Confirm Discard" msgstr "" msgid "Discard outstanding changes to working directory?" msgstr "" msgid "Config files (*.conf *.config *.ini)" msgstr "" msgid "Open hgweb config" msgstr "" msgid "Save hgweb config" msgstr "" msgid "Path:" msgstr "" msgid "Local Path:" msgstr "" msgid "Select Repository" msgstr "" msgid "Add Path to Serve" msgstr "" msgid "Edit Path to Serve" msgstr "" msgid "Local Path" msgstr "" msgid "Webconf" msgstr "" msgid "Config File:" msgstr "" msgid "Open" msgstr "Avaa" msgid "New &Workbench" msgstr "" msgid "&New Repository..." msgstr "" msgid "Clon&e Repository..." msgstr "" msgid "&Open Repository..." msgstr "" msgid "&File" msgstr "&Tiedosto" msgid "&View" msgstr "" msgid "&Repository" msgstr "" msgid "&Help" msgstr "&Ohje" msgid "&Dock Toolbar" msgstr "" msgid "&Task Toolbar" msgstr "" msgid "&Custom Toolbar" msgstr "" msgid "S&ync Toolbar" msgstr "" msgid "&Close Repository" msgstr "" msgid "Sh&ow Repository Registry" msgstr "" msgid "Show &Patch Queue" msgstr "" msgid "Show Conso&le" msgstr "" msgid "Place Console in Doc&k Area" msgstr "" msgid "R&epository Registry Options" msgstr "" msgid "Save Open Repositories on E&xit" msgstr "" msgid "Sa&ve Current Sync Paths on Exit" msgstr "" msgid "Show Tas&k Tab" msgstr "" msgid "&Commit" msgstr "" msgid "&Patch Branch" msgstr "" msgid "Revision &Details" msgstr "" msgid "&Search" msgstr "" msgid "S&ynchronize" msgstr "" msgid "Refresh current repository" msgstr "" msgid "Refresh &Task Tab" msgstr "" msgid "Refresh only the current task tab" msgstr "" msgid "Load &All Revisions" msgstr "" msgid "Load all revisions into graph" msgstr "" msgid "Go to current revision" msgstr "" msgid "&Goto Revision..." msgstr "" msgid "Go to a specific revision" msgstr "" msgid "Filter graph with revision sets or branches" msgstr "" msgid "&Workbench Toolbars" msgstr "" msgid "&Lock File..." msgstr "" msgid "Lock or unlock files" msgstr "" msgid "Update working directory or switch revisions" msgstr "" msgid "&Shelve..." msgstr "" msgid "&Import Patches..." msgstr "" msgid "U&nbundle..." msgstr "" msgid "&Merge..." msgstr "" msgid "Merge with the other head of the current branch" msgstr "" msgid "&Resolve..." msgstr "" msgid "R&ollback/Undo..." msgstr "" msgid "&Purge..." msgstr "" msgid "&Bisect..." msgstr "" msgid "&Verify" msgstr "" msgid "Re&cover" msgstr "" msgid "&Web Server" msgstr "" msgid "E&xplorer Help" msgstr "" msgid "&Readme" msgstr "" msgid "About &Qt" msgstr "" msgid "&About TortoiseHg" msgstr "" msgid "&Incoming" msgstr "" msgid "&Pull" msgstr "" msgid "&Outgoing" msgstr "" msgid "P&ush" msgstr "" msgid "&Sync Bookmarks..." msgstr "" #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" msgid "Check for incoming changes" msgstr "" msgid "Pull incoming changes" msgstr "" msgid "Detect outgoing changes" msgstr "" msgid "Push outgoing changes" msgstr "" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" #, python-format msgid "Execute custom tool '%s'" msgstr "" msgid "Custom Toolbar &Settings" msgstr "" msgid "TortoiseHg Workbench" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "" msgid "Goto revision" msgstr "" msgid "Enter revision identifier" msgstr "" msgid "Select repository directory to open" msgstr "" msgid "README not configured" msgstr "" msgid "" "A README file is not configured for the current repository.

                                            To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" msgid "Issue Tracker Plugin Error" msgstr "" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "" msgid "This error will not be shown again until you restart the workbench" msgstr "" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "" msgid "Error executing \"commit finished\" trigger" msgstr "" msgid "Cannot open Plugin Options dialog" msgstr "" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "" msgid "[--insecure] [SOURCE]" msgstr "" #, python-format msgid "unsupported URL: %s" msgstr "" #, python-format msgid "%s certificate error: no certificate received" msgstr "" msgid "move after the specified patch" msgstr "" msgid "[--after PATCH] PATCH..." msgstr "" msgid "unknown patch to move specified" msgstr "" msgid "invalid patch position specified" msgstr "" msgid "cannot move applied patches" msgstr "" #, python-format msgid "patch %s not in series" msgstr "" msgid "cannot move into applied patches" msgstr "" msgid "abort: " msgstr "" msgid "hint: " msgstr "" #, python-format msgid "HTTP Error: %d (%s)" msgstr "HTTP-virhe: %d (%s)" #, python-format msgid "URLError: %s" msgstr "" msgid "SSL: Server certificate verify failed" msgstr "" #, python-format msgid "SSL: unknown error %s:%s" msgstr "SSL: tuntematon virhe %s:%s" #, python-format msgid "SSL error: %s" msgstr "SSL virhe: %s" msgid "hgsubversion packaged with thg" msgstr "" msgid "hggit packaged with thg" msgstr "" msgid "inotify is not supported on this platform" msgstr "" msgid "eol is incompatible with win32text" msgstr "" msgid "win32text is incompatible with eol" msgstr "" msgid "hgsubversion is incompatible with perfarce" msgstr "" msgid "perfarce is incompatible with hgsubversion" msgstr "" msgid "Workbench custom toolbar" msgstr "" msgid "Revision details context menu" msgstr "" msgid "Pair selection context menu" msgstr "" msgid "Multiple selection context menu" msgstr "" msgid "Commit context menu" msgstr "" msgid "File context menu (on manifest and revision details)" msgstr "" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "%d vuosi" msgstr[1] "%d vuotta" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "%d kuukausi" msgstr[1] "%d kuukautta" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "%d viikko" msgstr[1] "%d viikkoa" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "%d päivä" msgstr[1] "%d päivää" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "%d tunti" msgstr[1] "%d tuntia" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "%d minuutti" msgstr[1] "%d minuuttia" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d sekunti" msgstr[1] "%d sekuntia" msgid "in the future" msgstr "" msgid "now" msgstr "nyt" #, python-format msgid "command parse error: %s" msgstr "" #, python-format msgid "no matches found: %s" msgstr "" msgid "Commit..." msgstr "" msgid "Commit changes in repository" msgstr "" msgid "Create Repository Here" msgstr "" msgid "Create a new repository" msgstr "" msgid "Clone..." msgstr "" msgid "Create clone here from source" msgstr "" msgid "File Status" msgstr "" msgid "Repository status & changes" msgstr "" msgid "Add Files..." msgstr "Lisää tiedostoja..." msgid "Add files to version control" msgstr "" msgid "Revert Files..." msgstr "" msgid "Revert file changes" msgstr "" msgid "Forget Files..." msgstr "" msgid "Remove files from version control" msgstr "" msgid "Remove Files..." msgstr "" msgid "Rename File" msgstr "" msgid "Rename file or directory" msgstr "" msgid "View change history in repository" msgstr "" msgid "File History" msgstr "" msgid "View change history of selected files" msgstr "" msgid "Shelve Changes" msgstr "" msgid "Move changes between working dir and patch" msgstr "" msgid "Synchronize" msgstr "" msgid "Synchronize with remote repository" msgstr "" msgid "Start web server for this repository" msgstr "" msgid "Update..." msgstr "Päivitä..." msgid "Update working directory" msgstr "" msgid "Update Icons" msgstr "" msgid "Update icons for this repository" msgstr "" msgid "Global Settings" msgstr "Yleisasetukset" msgid "Configure user wide settings" msgstr "" msgid "Repository Settings" msgstr "" msgid "Configure repository settings" msgstr "" msgid "Explorer Extension Settings" msgstr "" msgid "Configure Explorer extension" msgstr "" msgid "About TortoiseHg" msgstr "" msgid "Show About Dialog" msgstr "" msgid "Diff to parent" msgstr "" msgid "View changes using GUI diff tool" msgstr "" msgid "Edit Ignore Filter" msgstr "" msgid "Edit repository ignore filter" msgstr "" msgid "Guess Renames" msgstr "" msgid "Detect renames and copies" msgstr "" msgid "Search History" msgstr "" msgid "Search file revisions for patterns" msgstr "" msgid "DnD Synchronize" msgstr "" msgid "Synchronize with dragged repository" msgstr "" #, python-format msgid "unrecognized response: %s" msgstr "" msgid "password: " msgstr "" #, python-format msgid "repository %s not found" msgstr "" msgid "win32ill: cannot create window for messages" msgstr "" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "" msgid "win32ill: interrupted while stopping message loop\n" msgstr "" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/fr.po0000644000000000000000000112100714440352353016237 0ustar00rootroot# French translation for tortoisehg # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the tortoisehg package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2019-02-05 20:23+0000\n" "Last-Translator: André Sintzoff \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Launchpad-Export-Date: 2019-07-17 05:42+0000\n" "X-Generator: Launchpad (build 19009)\n" "X-Poedit-Country: FRANCE\n" "X-Poedit-Language: French\n" msgid "TortoiseHg Overlay Icon Server" msgstr "Icône du serveur de TortoiseHg Overlay" msgid "Exit" msgstr "Quitter" msgid "About" msgstr "À propos" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "Plusieurs icônes sont offertes par les projets TortoiseSVN et Tango" msgid "You can visit our site here" msgstr "Vous pouvez aller voir notre site ici" msgid "&License" msgstr "&Licence" #, python-format msgid "version %s" msgstr "version %s" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "avec Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "Une nouvelle version de TortoiseHg (%s) est disponible !" msgid "License" msgstr "Licence" msgid "= Working Directory Parent =" msgstr "= Parent du répertoire de travail =" msgid "Directory of files" msgstr "Répertoire de fichiers" msgid "Tar archives" msgstr "Archives tar" msgid "Uncompressed tar archive" msgstr "Archive tar décompressée" msgid "Bzip2 tar archives" msgstr "Archives tar Bzip2" msgid "Tar archive compressed using bzip2" msgstr "Archive tar compressée en utilisant bzip2" msgid "Gzip tar archives" msgstr "Archives Gzip tar" msgid "Tar archive compressed using gzip" msgstr "Archive tar compressée en utilisant gzip" msgid "Zip archives" msgstr "Archives zip" msgid "Uncompressed zip archive" msgstr "Archive zip décompressée" msgid "Zip archive compressed using deflate" msgstr "Archive zip compressée utilisant deflate" msgid "Revision:" msgstr "Révision :" msgid "All files in this revision" msgstr "Tous les fichiers dans cette révision" msgid "Only files modified/created in this revision" msgstr "Seulement les fichiers modifiés/créés dans cette révision" msgid "Only files modified/created since:" msgstr "Uniquement les fichiers modifiés/créés depuis :" msgid "Archive Content:" msgstr "Contenu de l'archive :" msgid "Recurse into subrepositories" msgstr "Parcourir les sous-dépôts" msgid "Browse..." msgstr "Parcourir..." msgid "Destination path:" msgstr "Chemin de destination :" msgid "Archive types:" msgstr "Types d'archives :" msgid "Hg command:" msgstr "Commande de Hg :" msgid "Select Destination Folder" msgstr "Sélectionnez un dossier de destination" msgid "Select Destination File" msgstr "Sélectionnez un fichier de destination" msgid "All files (*)" msgstr "Tous les fichiers (*)" msgid "Duplicate Name" msgstr "Nom déjà existant" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "\"%s\" existe déjà comme fichier destination." msgid "Confirm Overwrite" msgstr "Confirmer le replacement" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" "Le répertoire \"%s\" n'est pas vide !\n" "\n" "Voulez-vous le remplacer ?" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" "Le fichier \"%s\" existe déjà !\n" "\n" "Voulez-vous le remplacer ?" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "\"%s\" existe déjà comme dossier destination." #, python-format msgid "Archive - %s" msgstr "Archive - %s" msgid "&Archive" msgstr "&Archiver" msgid "Backout requires a parent revision" msgstr "Faire un backout nécessite une révision parente" msgid "Cannot backout change on a different branch" msgstr "Ne peut pas faire de backout sur une branche différente" #, python-format msgid "Backout - %s" msgstr "Backout - %s" msgid "Prepare to backout" msgstr "Préparer à faire un backout" msgid "Verify backout revision and ensure your working directory is clean." msgstr "" "Vérifier la révision de backout et s'assurer que le répertoire de travail " "est propre" msgid "Backing out a parent revision is a single step operation" msgstr "" "Faire un backout d'un révision parente est une opération en une seule étape" msgid "Backout revision" msgstr "Révision de backout" msgid "Not a head, backout will create a new head!" msgstr "Pas une tête, le backout créera une nouvelle tête !" msgid "Current local revision" msgstr "Révision locale actuelle" msgid "Working directory status" msgstr "État du répertoire du travail" msgid "Checking..." msgstr "Vérification..." msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" "Avant le backout, vous devez committer, faire un \"shelve\" ou abandonner les changements." msgid "Automatically resolve merge conflicts where possible" msgstr "" "Résoudre automatiquement les conflits de fusion dans la mesure du possible" msgid "Uncommitted local changes are detected" msgstr "Changements locaux non commités détectés" msgid "Clean" msgstr "Propre" msgid "Backing out, then merging..." msgstr "Faisant le backout, ensuite fusionnant..." msgid "All conflicting files will be marked unresolved." msgstr "Tous les fichiers en conflit seront marqués non résolus." msgid "Automatically advance to next page when backout and merge are complete." msgstr "" "Avancer automatiquement à la page suivante quand le backout et la fusion " "sont terminées." #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" "%d fichiers ont des conflits de fusion qui doivent être résolus" msgid "No merge conflicts, ready to commit" msgstr "Aucun conflit de fusion, prêt à appliquer un commit" msgid "Commit backout and merge results" msgstr "Committer le backout et fusionner les résultats" msgid "Parents" msgstr "Parents" msgid "Working Directory" msgstr "Répertoire de travail" msgid "Working Directory (merged)" msgstr "Espace de travail (fusionné)" msgid "Commit message" msgstr "Message de commit" msgid "Skip final confirmation page, close after commit." msgstr "Sauter la confirmation finale, fermer après commit." msgid "Backed out changeset: " msgstr "Backout sur la révision : " msgid "Confirm Discard Message" msgstr "Confirmer le message d'abandon" msgid "Discard current backout message?" msgstr "Abandonner le message de backout actuel ?" msgid "Use English backout message" msgstr "Utiliser le message de backout en anglais" msgid "Backing out and committing..." msgstr "En cours de back out et de commit..." msgid "Please wait while making backout." msgstr "Veuillez attendre pendant le backout." msgid "Committing..." msgstr "Commit en cours..." msgid "Please wait while committing merged files." msgstr "Attendre pendant le commit des fichiers fusionnés." msgid "Finished" msgstr "Fini" msgid "Backout changeset" msgstr "Révision de backout" #, python-format msgid "Bisect - %s" msgstr "Bisect - %s" msgid "Accept" msgstr "Accepter" msgid "Known good revision:" msgstr "Révision connue comme bonne :" msgid "Known bad revision:" msgstr "Révision connue comme mauvaise :" msgid "Discard local changes (revert --all)" msgstr "Abandonner les changements locaux (revert --all)" msgid "Revision is &Good" msgstr "La révision est b&onne" msgid "Revision is &Bad" msgstr "La révision est &mauvaise" msgid "&Skip this Revision" msgstr "&Sauter cette révision" msgid "Close" msgstr "Fermer" msgid "Error encountered." msgstr "Erreur rencontrée." msgid "Culprit found." msgstr "Coupable trouvé." msgid "Revision" msgstr "Révision" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "Tester cette révision et indiquer le résultat (bonne/mauvaise/sauter)." #, python-format msgid "%s (hint: %s)" msgstr "%s (indice : %s)" msgid "Bookmark:" msgstr "Signet :" msgid "New Name:" msgstr "Nouveau nom :" msgid "Activate:" msgstr "Activer :" msgid "&Add" msgstr "&Ajouter" msgid "Re&name" msgstr "Re&nommer" msgid "&Remove" msgstr "Enleve&r" msgid "&Move" msgstr "Déplacer" #, python-format msgid "Bookmark - %s" msgstr "Signet - %s" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "Un signet nommé \"%s\" existe déjà" #, python-format msgid "Bookmark '%s' has been added" msgstr "Le signet '%s' a été ajouté" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "Le signet nommé \"%s\" n'existe pas" #, python-format msgid "Bookmark '%s' has been moved" msgstr "Le signet '%s' a été déplacé" #, python-format msgid "Bookmark '%s' does not exist" msgstr "Le signet '%s' n'existe pas" #, python-format msgid "Bookmark '%s' has been removed" msgstr "Le signet '%s' a été enlevé" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "Le signet '%s' a été renommé en '%s'" msgid "TortoiseHg Bookmark Sync" msgstr "Synchronisation des signets TortoiseHg" msgid "Outgoing Bookmarks" msgstr "Signets sortants" msgid "&Push Bookmark" msgstr "&Pousser un signet" msgid "&Remove Bookmark" msgstr "Enleve&r un signet" msgid "Incoming Bookmarks" msgstr "Signets entrants" msgid "P&ull Bookmark" msgstr "Tirer un signet" msgid "R&emove Bookmark" msgstr "&Enlever un signet" #, python-format msgid "Pushed local bookmark: %s" msgstr "Signet local tiré : %s" #, python-format msgid "Pulled remote bookmark: %s" msgstr "Signet distant tiré : %s" #, python-format msgid "Removed remote bookmark: %s" msgstr "Signet distant enlevé : %s" #, python-format msgid "Removed local bookmark: %s" msgstr "Signet local enlevé : %s" #, python-format msgid "%s - branch operation" msgstr "%s - opération de branche" msgid "Select branch of merge commit" msgstr "Sélectionner la branche du commit de fusion" msgid "Changes take effect on next commit" msgstr "Les changements prendront effet au prochain commit" msgid "No branch changes" msgstr "Aucun changement de branche" msgid "Open a new named branch" msgstr "Ouvrir une nouvelle branche nommée" msgid "Close current branch" msgstr "Fermer la branche actuelle" #, python-format msgid "Please report this bug to our bug tracker" msgstr "" "Veuillez signaler ce problème sur notre suivi de bug" msgid "Checking for updates..." msgstr "Vérification des mises à jour..." msgid "Copy" msgstr "Copier" msgid "Quit" msgstr "Quitter" msgid "TortoiseHg Bug Report" msgstr "Rapport de bug TortoiseHg" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "" "Une mise à jour vers une version plus récente de TortoiseHg est recommandée." msgid "Your TortoiseHg is up to date." msgstr "Votre TortoiseHg est à jour." msgid "Save error report to" msgstr "Enregistrer le rapport d'erreur sous" msgid "Text files (*.txt)" msgstr "Fichiers texte (*.txt)" msgid "Error writing file" msgstr "Erreur lors de l'écriture du fichier" msgid "TortoiseHg Error" msgstr "Erreur de TortoiseHg" msgid "" "If you still have trouble, please file a bug report." msgstr "" "Si vous avez toujours des problèmes, veuillez remplir " "un rapport d'erreur." msgid "Visual Diff" msgstr "Diff visuel" msgid "View file changes in external diff tool" msgstr "Voir les changements du fichier dans un outil de diff externe" msgid "Edit Local" msgstr "Éditer la révision locale" msgid "Edit current file in working copy" msgstr "Éditer le fichier actuel dans le répertoire de travail" msgid "Revert to Revision" msgstr "Revenir à la révision" msgid "Revert file(s) to contents at this revision" msgstr "Ramener le(s) fichier(s) au contenu de cette révision" msgid "Patch failed to apply" msgstr "L'application du patch a échoué" msgid "Manually resolve rejected chunks?" msgstr "Résoudre manuellement les morceaux rejetés ?" msgid "Edit patched file and rejects?" msgstr "Éditer le fichier patché et les rejets ?" msgid "No deletable chunks" msgstr "Aucun morceau supprimable" msgid "Completely remove file from patch?" msgstr "Supprimer complètement le fichier du patch ?" msgid "Revert all file changes?" msgstr "Rétablir tous les changements de fichier ?" msgid "No chunks remain" msgstr "Aucun morceau restant" msgid "file has been deleted, refresh" msgstr "le fichier a été supprimé, rafraîchir" msgid "file has been modified, refresh" msgstr "le fichier a été modifié, rafraîchir" msgid "Unable to merge chunks" msgstr "Impossible de fusionner les morceaux" msgid "Add or remove patches must be merged in the working directory" msgstr "" "Les patches d'ajout ou de suppression doivent être fusionnés dans le " "répertoire de travail" msgid "Unable to remove" msgstr "Impossible d'enlever" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" "Impossible de supprimer le fichier %s,\n" "permission refusée" msgctxt "files" msgid "All" msgstr "Tous" msgctxt "files" msgid "None" msgstr "Aucun" msgid "Toggle display of text search bar" msgstr "Afficher la barre de recherche" msgid "Diff Toolbar" msgstr "Barre d'outil de diff" #, python-format msgid "Chunks selected: %d / %d" msgstr "Morceaux sélectionnés : %d / %d" msgid "Please wait while the file is opened ..." msgstr "Veuillez attendre l'ouverture du fichier..." msgid "Source:" msgstr "Source :" msgid "Destination:" msgstr "Destination :" msgid "Options" msgstr "Options" msgid "Clone to revision:" msgstr "Cloner jusqu'à la révision :" msgid "A revision identifier, bookmark, tag or branch name" msgstr "Un identifiant de révision, signet, étiquette ou nom de branche" msgid "Do not update the new working directory" msgstr "Ne pas mettre à jour le nouveau répertoire de travail" msgid "Use pull protocol to copy metadata" msgstr "Utiliser le protocole 'pull' pour copier les métadonnées" msgid "Clone with minimal processing" msgstr "Cloner avec traitement minimum" msgid "Include patch queue" msgstr "Inclure la queue de patch" msgid "Use proxy server" msgstr "Utiliser un serveur proxy" msgid "Do not verify host certificate" msgstr "Ne pas vérifier le certificat de l'hôte" msgid "Remote command:" msgstr "Commande distante :" msgid "Use largefiles" msgstr "Utiliser largefiles" msgid "Start revision:" msgstr "Révision de début :" msgid "Select source repository" msgstr "Sélectionner un dépôt d'origine" msgid "Select destination repository" msgstr "Sélectionner un dépôt de destination" msgid "Select patch folder" msgstr "Sélectionner le dossier de patch" #, python-format msgid "Clone - %s" msgstr "Clonage - %s" msgid "&Clone" msgstr "&Cloner" msgid "failed to start command\n" msgstr "impossible de démarrer la commande\n" msgid "error while running command\n" msgstr "erreur lors de l'exécution de la commande\n" #, python-format msgid "process exited unexpectedly with code %d" msgstr "processus terminé à l'improviste avec le code %d" #, python-format msgid "failed to encode command: %s" msgstr "impossible d'encoder la commande : %s" #, python-format msgid "timed out while reading: %r..." msgstr "attente trop longue en lisant : %r..." msgid "timed out waiting for message" msgstr "attente trop longue du message" #, python-format msgid "unexpected response on required channel %r" msgstr "réponse inattendue sur le canal requis %r" #, python-format msgid "invalid \"hello\" message: %r" msgstr "message \"hello\" invalide : %r" msgid "no \"runcommand\" capability" msgstr "pas de capacité \"runcommand\"" #, python-format msgid "corrupted command result: %r" msgstr "résultat de la commande corrompu : %r" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "impossible d'encoder l'entrée : %s" msgid "Terminated by user" msgstr "Terminé par l'utilisateur" #, python-format msgid "[command terminated by user %s]" msgstr "[commande terminée par l'utilisateur %s]" #, python-format msgid "[command interrupted %s]" msgstr "[commande interrompue %s]" #, python-format msgid "[command returned code %d %%s]" msgstr "[la commande a retourné le code %d %%s]" #, python-format msgid "[command completed successfully %s]" msgstr "[la commande s'est terminée avec succès %s]" msgid "Running..." msgstr "En cours d'exécution..." msgid "Failed!" msgstr "Échec !" msgid "Clea&r Log" msgstr "Efface&r le journal de sortie" msgid "TortoiseHg Prompt" msgstr "Ligne de commande TortoiseHg" msgid "Show Detail" msgstr "Afficher le détail" msgid "Hide Detail" msgstr "Masquer le détail" msgid "Confirm Exit" msgstr "Confirmer la fermeture" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" "La commande Mercurial est toujours en cours d'exécution.\n" "Voulez-vous la terminer ?" msgid "&Run" msgstr "Exécute&r" msgid "TortoiseHg Command Dialog" msgstr "Dialogue de commande TortoiseHg" msgid "Command Error" msgstr "Erreur de commande" #, python-format msgid "[Code: %d]" msgstr "[Code : %d]" msgid "Merge" msgstr "Fusion" #, python-format msgid "Merge with %s" msgstr "Fusion avec %s" msgid "Patch Name Required" msgstr "Nom de patch requis" msgid "You must enter a patch name" msgstr "Vous devez entrer un nom de patch" msgctxt "start progress" msgid "Commit" msgstr "Commit" msgctxt "start progress" msgid "MQ Action" msgstr "Action MQ" msgctxt "start progress" msgid "Rollback" msgstr "Rollback" msgid "Commit Dialog Toolbar" msgstr "Barre d'outils du dialogue de commit" msgid "Branch: " msgstr "Branche : " msgid "Copy message" msgstr "Copier un message" msgid "Copy one of the recent commit messages" msgstr "Copier un des messages récents de commit" msgid "Show Issues" msgstr "Afficher les problèmes" msgid "Please wait..." msgstr "Veuillez patienter..." #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "Impossible de charger le suivi de problème '%s' : %s" msgid "Issue Tracker" msgstr "Suivi de problèmes" msgid "Show Issues..." msgstr "Afficher les problèmes..." msgid "Stop" msgstr "Arrêter" msgid "### patch name ###" msgstr "### nom du patch ###" msgid "Commit changes" msgstr "Committer les changements" msgid "Commit" msgstr "Committer" msgid "Amend current revision" msgstr "Amender la révision actuelle" msgid "Amend" msgstr "Amender" msgid "Create a new patch" msgstr "Créer un nouveau patch" msgid "QNew" msgstr "QNew" msgid "Refresh current patch" msgstr "Rafraîchir le patch actuel" msgid "QRefresh" msgstr "QRefresh" msgid "Confirm Branch Change" msgstr "Confirmer le changement de branche" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "" "La branche nommée \"%s\" existe déjà, dernière utilisation à la révision %d\n" msgid "Restart &Branch" msgstr "Redémarrer la &branche" msgid "&Commit to current branch" msgstr "Committer dans la branche actuelle" msgid "Cancel" msgstr "Annuler" msgid "Confirm New Branch" msgstr "Confirmer la création de nouvelle branche" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "Créer une nouvelle branche \"%s\" avec ce commit ?\n" msgid "Create &Branch" msgstr "Créer une &branche" msgid "Close Branch: " msgstr "Fermer la branche : " msgid "New Branch: " msgstr "Nouvelle branche : " #, python-format msgid "Selected Options: %s" msgstr "Options sélectionnées : %s" msgid "Parent:" msgstr "Parent :" msgid "Patch name:" msgstr "Nom du patch :" #, python-format msgid "Close %s branch" msgstr "Fermer la branche %s" #, python-format msgid "Rollback commit to revision %d" msgstr "Défaire le commit et revenir à la révision %d" msgid "Confirm Undo" msgstr "Confirmer l'annulation" msgid "Discard current commit message?" msgstr "Abandonner le message de commit actuel ?" msgid "Message Translation Failure" msgstr "Erreur de transposition de message" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" "Impossible de transposer le message dans l'encodage local.\n" "Envisager de configurer la variable d'environnement HGENCODING.\n" "\n" "Remplacer les caractères non-transposables par \"?\" ?\n" msgid "&Replace" msgstr "&Remplacer" msgid "Nothing Committed" msgstr "Rien n'a été committé" msgid "Please enter commit message" msgstr "Veuillez entrer un message de commit" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" "Aucun lien vers un problème n'a été trouvé dans le message de commit. Le " "message de commit devrait contenir un lien vers un problème. Configurer ceci " "dans la section 'Suivi de problèmes' des préférences." msgid "No files checked" msgstr "Aucun fichier sélectionné" msgid "No modified files checkmarked for commit" msgstr "Aucun fichier modifié marqué pour être committé" msgid "Confirm Add" msgstr "Confirmer l'ajout" msgid "Add selected untracked files?" msgstr "Ajouter les fichiers sélectionnés non suivis ?" msgid "Confirm Remove" msgstr "Confirmer la suppression" msgid "Remove selected deleted files?" msgstr "Enlever les fichiers sélectionnés supprimés ?" msgid "Nothing changed." msgstr "Rien n'a changé." msgctxt "window title" msgid "Commit" msgstr "Commit" #, python-format msgid "%s - commit options" msgstr "%s - options de commit" msgid "Set username:" msgstr "Définir un nom d'utilisateur :" msgid "Save in Repo" msgstr "Enregistrer dans le dépôt" msgid "Save Global" msgstr "Enregistrer globalement" msgid "Set Date:" msgstr "Définir une date :" msgid "Update" msgstr "Mettre à jour" msgid "Push After Commit:" msgstr "Pousser après commit :" msgid "Auto Includes:" msgstr "Inclusion automatique :" msgid "Recurse into subrepositories (--subrepos)" msgstr "Parcourir les sous-dépôts (--subrepos)" msgid "Unable to save username" msgstr "Impossible d'enregistrer le nom d'utilisateur" msgid "Iniparse must be installed." msgstr "Iniparse doit être installé." msgid "Unable to write configuration file" msgstr "Impossible d'enregistrer le fichier de configuration" msgid "Unable to save after commit push" msgstr "Impossible d'enregistrer après avoir poussé le commit" msgid "Unable to save auto include list" msgstr "Impossible d'enregistrer la liste d'inclusion automatique" msgid "Unable to save recurse in subrepos." msgstr "Impossible d'enregistrer l'option de récursion dans des sous-dépôts." msgid "Invalid date format" msgstr "Format de date invalide" msgid "No username configured" msgstr "Aucun nom d'utilisateur configuré" #, python-format msgid "%s - commit" msgstr "%s - commit" msgid "TortoiseHg Commit" msgstr "Commit TortoiseHg" msgid "Are you sure that you want to cancel the commit operation?" msgstr "Êtes-vous sûr de vouloir annuler l'opération de commit ?" msgid "Compress changesets up to and including" msgstr "Compresser les révisions jusqu'à et y compris" msgid "Onto destination" msgstr "Vers la destination" msgid "Compress" msgstr "Compresser" #, python-format msgid "Compress - %s" msgstr "Compresser - %s" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" "Avant de compresser, vous devez committer, faire un \"shelve\" ou abandonner les modifications." msgid "You may continue the compress" msgstr "Vous pouvez continuer la compression" msgid "Changes have been moved, you must now commit" msgstr "Les changements ont été déplacés, vous devez committer maintenant" msgctxt "action button" msgid "Commit" msgstr "Committer" msgid "Compress is complete, old history untouched" msgstr "La compression est terminée, l'ancien historique est intact" msgid "must be specified repository" msgstr "doit être le dépôt spécifié" msgid "must be specified 'type' in style" msgstr "doit être du 'type' spécifié dans le style" msgid "Git Commit:" msgstr "Commit Git :" msgid "Summary:" msgstr "Résumé :" msgid "User:" msgstr "Utilisateur :" msgid "Date:" msgstr "Date :" msgid "Age:" msgstr "Âge :" msgid "Branch:" msgstr "Branche :" msgid "Close:" msgstr "Fermer :" msgid "Tags:" msgstr "Étiquettes :" msgid "Graft:" msgstr "Greffe depuis :" msgid "Transplant:" msgstr "Transplant :" msgid "Obsolete state:" msgstr "État obsolète :" msgid "Perforce:" msgstr "Perforce :" msgid "Subversion:" msgstr "Subversion :" msgid "Converted From:" msgstr "Converti de :" msgid "Original Parent:" msgstr "Parent original :" msgid "No items to display" msgstr "Aucun article à afficher" msgid "Use compact view" msgstr "Utiliser la vue compacte" msgid "Patch:" msgstr "Patch :" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "Affiche %(count)d sur %(total)d éléments" msgid "Select a GUI location to edit:" msgstr "Sélectionner un emplacement à éditer :" msgid "Select the toolbar or menu to change" msgstr "Sélectionner la barre d'outil ou le menu à modifier" msgid "Tools shown on selected location" msgstr "Outils affichés à l'emplacement sélectionné" msgid "Delete from list" msgstr "Supprimer de la liste" msgid "Add to list" msgstr "Ajouter à la liste" msgid "Add separator" msgstr "Ajouter un séparateur" msgid "List of all tools" msgstr "Liste de tous les outils" msgid "New Tool ..." msgstr "Nouvel outil..." msgid "Edit Tool ..." msgstr "Éditer un outil..." msgid "Delete Tool" msgstr "Supprimer un outil" msgid "Type" msgstr "Type" msgid "Name" msgstr "Nom" msgid "Command" msgstr "Commande" msgid "New hook" msgstr "Nouveau hook" msgid "Edit hook" msgstr "Éditer le hook" msgid "Delete hook" msgstr "Supprimer le hook" msgid "Replace existing hook?" msgstr "Remplacer le hook existant ?" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" "Il y a un hook existant %s.%s.\n" "\n" "Voulez-vous le remplacer ?" msgid "OK" msgstr "OK" msgid "Missing information" msgstr "Information manquante" msgid "All items" msgstr "Tous les éléments" msgid "Working directory" msgstr "Répertoire de travail" msgid "All revisions" msgstr "Toutes les révisions" msgid "All contexts" msgstr "Tous les contextes" msgid "Fixed revisions" msgstr "Révisions fixées" msgid "Applied patches" msgstr "Patches appliqués" msgid "Applied patches or qparent" msgstr "Patches appliqués ou qparent" msgid "" msgstr "" msgid "Configure Custom Tool" msgstr "Configurer un outil personnalisé" msgid "Tool name" msgstr "Nom de l'outil" msgid "The tool name. It cannot contain spaces." msgstr "Le nom de l'outil ne peut pas contenir d'espace." #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" "La commande qui sera exécutée.\n" "Pour exécuter une commande Mercurial, utiliser \"hg\" (plutôt que \"hg.exe" "\") comme nom de commande.\n" "Vous pouvez utiliser plusieurs {VARIABLES} pour composer votre commande.\n" "Variables courantes :\n" "- {ROOT} : le chemin de la racine du dépôt actuel.\n" "- {REV} / {REVID} : respectivement, numéros ou identifiants hexadécimaux des " "révisions sélectionnées formatés comme une expression d'un ensemble de " "révisions.\n" "- {SELECTEDFILES} : la liste de fichiers sélectionnés par l'utilisateur dans " "la liste de fichiers de détails de révision.\n" "- {FILES} : la liste des fichiers touchés par les révisions sélectionnées.\n" "- {ALLFILES} : tous les fichiers suivis par Mercurial dans les révisions " "sélectionnées.\n" "Variables disponibles lors de la sélection de deux révisions :\n" "- {REV_A} / {REVID_A} : respectivement, le numéro ou l'identifiant " "hexadécimal de la première révision sélectionnée.\n" "- {REV_B} / {REVID_B} : respectivement, le numéro ou l'identifiant " "hexadécimal de la seconde révision sélectionnée.\n" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" "Le répertoire où la commande sera exécutée.\n" "Si celui-ci n'est pas défini, la racine du dépôt actuel sera utilisé.\n" "Vous pouvez utiliser les mêmes {VARIABLES} que dans la préférence \"Commande" "\".\n" msgid "Tool label" msgstr "Étiquette d'outil" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" "L'étiquette d'outil qui sera affichée dans le menu contextuel.\n" "Si aucune étiquette n'est spécifiée, le nom de l'outil sera utilisé.\n" "Si aucun bulle d'aide n'est spécifiée, l'étiquette sera utilisée." msgid "Tooltip" msgstr "Bulle d'aide" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" "La bulle d'aide qui sera affichée sur le bouton de l'outil.\n" "Celle-ci sera uniquement affichée quand le bouton est sur\n" "la barre d'outil du workbench." msgid "Icon" msgstr "Icône" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" "Icône d'outil.\n" "Vous pouvez utiliser n'importe quelle icone de TortoiseHg\n" "en indiquant un nom d'icône TortoiseHg valide\n" "(par exemple : clone, add, remove, sync, thg-logo, hg-update, etc).\n" "Vous pouvez aussi indiquer le chemin absolu vers\n" "n'importe quelle icône dans votre système de fichiers." msgid "On repowidget, show for" msgstr "Dans le menu contextuel, afficher pour" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" "Pour quels types de révisions l'outil sera activé\n" "Ceci est valable uniquement lorsque l'outil est affiché\n" "dans le menu contextuel de révision." msgid "Show Output Log" msgstr "Afficher le journal de sortie" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" "Quand activé, afficher automatiquement le journal de sortie quand la " "commande est exécutée.\n" "Par défaut : False." msgid "You must set a tool name." msgstr "Vous devez indiquer un nom d'outil." msgid "The tool name cannot have any spaces in it." msgstr "Le nom d'outil ne peut pas contenir d'espace." msgid "You must set a command to run." msgstr "Vous devez indiquer une commande à exécuter." msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" "Exécuter après l'ajout d'un groupe de changements en poussant, tirant ou " "dépaquetant (unbundle). L'ID de la première nouvelle révision est " "$HG_NODE et de la dernière est $HG_NODE_LAST. L'URL d'où vient " "les changements est $HG_URL." msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" "Exécuter après qu'une révision a été créée dans le dépôt local. L'ID de la " "nouvelle révision est $HG_NODE. Les IDs des révisions parentes sont " "$HG_PARENT1 et $HG_PARENT2." msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" "Exécuter après qu'une révision a été poussée, tirée ou dépaquetée (unbundle) " "dans le dépôt local. L'ID de la nouvelle révision est $HG_NODE. " "L'URL d'où vient le changement est $HG_URL." msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" "Exécuter après envoi de changements du dépôt local vers un autre. L'ID de la " "première révision envoyée est $HG_NODE. La source de l'opération " "est $HG_SOURCE." msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" "Exécuter avant l'ajout d'un groupe de changements en poussant, tirant ou " "dépaquetant (unbundle). Le statut de sortie 0 permet de traiter le groupe de " "changement. Un statut différent de 0 arrêtera l'opération de pousse, de " "tirage ou de dépaquetage. L'URL d'où viendront les changements est " "$HG_URL." msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" "Exécuter avant de commencer un commit local. Le statut de sortie 0 permet de " "traiter le commit. Un statut différent de 0 arrêtera le commit. Les IDs des " "révisions parentes sont $HG_PARENT1 et $HG_PARENT2." msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" "Exécuter avant l'énumération des \"pushkeys\" (comme des signets). Un statut " "différent de 0 arrêtera l'opération. L'espace de nommage de la clé est " "$HG_NAMESPACE." msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" "Exécuter avant de rassembler les changements à envoyer depuis le dépôt local " "vers un autre. Un statut différent de 0 arrêtera l'opération. Cela vous " "permet d'éviter de tirer via HTTP ou SSH. Cela empêche également les " "commandes de tirage local, poussage ou paquetage (bundle) mais ce n'est pas " "efficace puisque vous pouvez à la place simplement copier les fichiers. La " "source de l'opération est $HG_SOURCE. Si \"serve\", l'opération se " "passe pour le compte du SSH distant ou du dépôt HTTP. Si \"push\", \"pull\" " "ou \"bundle\", l'opération se passe pour le compte du dépôt sur le même " "système." msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" "Exécuter avant l'ajout d'une \"pushkey\" (comme un signet) au dépôt. Un " "statut différent de 0 arrêtera l'opération. L'espace de nommage de la clé " "est $HG_NAMESPACE, la clé est $HG_KEY, l'ancienne valeur " "(si il y en a une) est $HG_OLD et la nouvelle valeur est " "$HG_NEW." msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" "Exécuter avant la création d'une étiquette. Le statut de sortie 0 permet de " "créer l'étiquette. Un statut différent de 0 arrêtera l'étiquetage. L'ID de " "la révision à étiqueter est $HG_NODE. Le nom de l'étiquette est " "$HG_TAG. L'étiquette est locale si $HG_LOCAL=1, dans le dépôt " "si $HG_LOCAL=0." msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" "Exécuter après l'ajout d'un groupe de changements en poussant, tirant ou " "dépaquetant (unbundle) mais avant que le commit de la transaction. Le groupe " "de changements est visible par le programme de hook. Ceci permet de valider " "les changements entrants avant de les accepter. L'ID de la première nouvelle " "révision est $HG_NODE et de la dernière est $HG_NODE_LAST. " "Le statut de sortie 0 permet de committer la transaction. Un statut " "différent de 0 arrêtera la transaction et l'opération de pousse, de tirage " "ou de dépaquetage échouera. L'URL d'où vient les changements est " "$HG_URL." msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" "Exécuter après la création d'une révision mais avant que le commit de la " "transaction. La révision est visible par le programme de hook. Ceci permet " "de valider le message de commit et les changements. Le statut de sortie 0 " "permet de committer la transaction. Un statut différent de 0 arrêtera la " "transaction. L'ID de la révisions est $HG_NODE. Les IDs des " "révisions parentes sont $HG_PARENT1 et $HG_PARENT2." msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" "Exécuter avant la mise à jour du répertoire de travail. Le statut de sortie " "0 permet la mise à jour. Un statut différent de 0 empêchera la mise à jour. " "L'ID de la première révision parente est $HG_PARENT1. Si fusion, " "l'ID de la seconde révision parente est $HG_PARENT2." msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" "Exécuter après l'énumération des \"pushkeys\" (comme des signets) dans le " "dépôt. L'espace de nommage de la clé est $HG_NAMESPACE. " "$HG_VALUES est un dictionnaire contenant les clés et les valeurs." msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" "Exécuter après l'ajout d'une \"pushkey\" (comme un signet) au dépôt. " "L'espace de nommage de la clé est $HG_NAMESPACE, la clé est " "$HG_KEY, l'ancienne valeur (si il y en a une) est $HG_OLD et " "la nouvelle valeur est $HG_NEW." msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" "Exécuter après la création d'une étiquette. L'ID de la révision à étiqueter " "est $HG_NODE. Le nom de l'étiquette est $HG_TAG. " "L'étiquette est locale si $HG_LOCAL=1, dans le dépôt si " "$HG_LOCAL=0." msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" "Exécuter après la mise à jour du répertoire de travail. L'ID de la première " "révision parente est $HG_PARENT1. Si fusion, l'ID de la seconde " "révision parente est $HG_PARENT2. Si la mise à jour réussi, " "$HG_ERROR=0. Si la mise à jour échoue (par exemple à cause de conflits " "non résolus), $HG_ERROR=1." msgid "Configure Hook" msgstr "Configuration du hook" msgid "Hook type" msgstr "Type de hook" msgid "Select when your command will be run" msgstr "Sélectionner quand la commande sera exécutée" msgid "The hook name. It cannot contain spaces." msgstr "Nom du hook. Il ne peut pas contenir d'espace." msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" "La commande qui sera exécutée.\n" "Pour exécuter une fonction python, préfixer la commande avec \"python:\".\n" msgid "You must set a valid hook type." msgstr "Vous devez indiquer un type de hook valide." msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "" "Le nom du hook ne peut pas contenir d'espace, de tabulation ou de caractère " "'='." msgid "Console" msgstr "Console" msgid "File &History / Annotate" msgstr "&Historique de fichier / Annoter" msgid "Show the history of the selected file" msgstr "Afficher l'historique du fichier sélectionné" msgid "Co&mpare File Revisions" msgstr "Co&mparer les révisions du fichier" msgid "Compare revisions of the selected file" msgstr "Comparer les révisions du fichier sélectionné" msgid "Filter Histor&y" msgstr "Filtrer l'historique" msgid "Query about changesets affecting the selected files" msgstr "Requête des révisions touchant les fichiers sélectionnés" msgid "Diff &Changeset to Parent" msgstr "Diff avec le parent" msgid "Diff Changeset to Loc&al" msgstr "Diff avec la version loc&ale" msgid "&Diff to Parent" msgstr "&Diff avec le parent" msgid "Diff to &Local" msgstr "Diff avec la version &locale" msgid "View changes to current in external diff tool" msgstr "Voir les changements avec l'actuel dans un outil de diff externe" msgid "&View at Revision" msgstr "&Voir à la révision" msgid "View file as it appeared at this revision" msgstr "Voir le fichier tel qu'il apparaît à cette révision" msgid "&Save at Revision..." msgstr "Enregi&strer à la révision..." msgid "Save file as it appeared at this revision" msgstr "Enregistrer le fichier tel qu'il est à cette révision" msgid "Save file to" msgstr "Enregistrer le fichier sous" msgid "&Edit Local" msgstr "Édit&er la révision locale" msgid "&Open Local" msgstr "&Ouvrir la révision locale" msgid "E&xplore Local" msgstr "E&xplorer" msgid "Open parent folder of current file in the system file manager" msgstr "Ouvrir le dossier parent du fichier dans le gestionnaire de fichiers" msgid "&Copy Patch" msgstr "&Copier un patch" msgid "Copy &Path" msgstr "Co&pier le chemin" msgid "Copy full path of file(s) to the clipboard" msgstr "Copier le chemin complet du/des fichier(s) dans le presse-papier" msgid "&Revert to Revision..." msgstr "&Revenir à la révision..." msgid "Open S&ubrepository" msgstr "Ouvrir le so&us-dépôt" msgid "Open the selected subrepository" msgstr "Ouvrir le sous-dépôt sélectionné" msgid "E&xplore Folder" msgstr "E&xplorer le dossier" msgid "Open the selected folder in the system file manager" msgstr "Ouvrir le dossier sélectionné dans le gestionnaire de fichiers" msgid "Open &Terminal" msgstr "Ouvrir un &terminal" msgid "Open a shell terminal in the selected folder" msgstr "Ouvrir un terminal dans le dossier sélectionné" msgid "Custom Tools" msgstr "Outils personnalisés" msgid "Diff &Local" msgstr "Diff avec la version &locale" msgid "&View Missing" msgstr "Afficher les fichiers manquants" msgid "View O&ther" msgstr "Voir l'au&tre" msgid "Add &Largefiles..." msgstr "Ajouter &Largefiles..." msgid "&Forget" msgstr "Oublier" msgid "&Delete Unversioned..." msgstr "Supprimer les non versionnés..." msgid "Confirm Delete Unversioned" msgstr "Confirmer la suppression des non versionnés" msgid "Delete the following unversioned files?" msgstr "Supprimer les fichiers non versionnés suivants ?" msgid "&Delete" msgstr "Supprimer" msgid "Re&move Versioned" msgstr "Suppri&mer les fichiers versionnés" msgid "&Revert..." msgstr "&Rétablir..." msgid "Uncommited merge - please select a parent revision" msgstr "Fusion non committée - veuillez sélectionner une révision parente" msgid "Revert files to local or other parent?" msgstr "Rétablir les fichiers à la révision locale ou à l'autre parent ?" msgid "&Local" msgstr "&Local" msgid "&Other" msgstr "Autre" msgid "Confirm Revert" msgstr "Confirmer le rétablissement" msgid "Revert local file changes?" msgstr "Défaire les changements locaux ?" msgid "&Revert with backup" msgstr "&Rétablir avec sauvegarde" msgid "&Discard changes" msgstr "Abandonner les changements" msgid "Revert the following files?" msgstr "Rétablir les fichiers suivants ?" msgid "&Revert" msgstr "&Rétablir" msgid "&Copy..." msgstr "&Copier..." msgid "Re&name..." msgstr "Re&nommer..." msgid "&Ignore..." msgstr "&Ignorer..." msgid "Edit Re&jects" msgstr "Éditer les re&jets" msgid "Manually resolve rejected patch chunks" msgstr "Résoudre manuellement les morceaux de patch rejetés" msgid "De&tect Renames..." msgstr "Dé&tecter les renommages..." msgid "&Mark Resolved" msgstr "&Marquer comme résolu" msgid "&Mark Unresolved" msgstr "&Marquer comme non résolu" msgid "Restart Mer&ge" msgstr "Redémarrer la fusion..." msgid "Was renamed from" msgstr "A été renommé depuis" msgid "Restart Merge &with" msgstr "Redémarrer la fusion avec" msgid "Display the file anyway" msgstr "Afficher le fichier de toute façon" msgid "Diff not displayed: " msgstr "Différences non affichées : " #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" "Le fichier est plus grand que la taille maximum spécifiée.\n" "maxdiff = %s KB" msgid "File is binary" msgstr "Le fichier est binaire" msgid "File may be binary (maximum line length exceeded)" msgstr "Le fichier peut être binaire (longueur maximale de ligne dépassée)" msgid "File or diffs not displayed: " msgstr "Le fichier ou les différences ne sont pas affichées : " msgid " (was added)" msgstr " (a été ajouté)" #, python-format msgid " (copied from %s)" msgstr " (copié de %s)" #, python-format msgid " (renamed from %s)" msgstr " (renommé depuis %s)" msgid " (is a symlink)" msgstr " (est un lien symbolique)" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" "Fichier ou différences non affiché : le fichier est plus grand que la taille " "maximum spécifiée.\n" "maxdiff = %s KB" msgid " (was deleted)" msgstr " (a été supprimé)" msgid " (was added, now missing)" msgstr " (a été ajouté, maintenant manquant)" msgid " (is unversioned)" msgstr " (n'est pas versionné)" msgid "exec mode has been set" msgstr "mode exécutable a été activé" msgid "exec mode has been unset" msgstr "mode exécutable a été désactivé" #, python-format msgid "changeset: %s" msgstr "révision : %s" msgid "Initial revision" msgstr "Première révision" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" "[ATTENTION] Identifiant de révision de sous-dépôt invalide :\n" "\t%s\n" "\n" msgid "Subrepo created and set to initial revision." msgstr "Sous-dépôt créé et placé à la première révision" msgid "Subrepo initialized to revision:" msgstr "Sous-dépôt initialisé à la révision :" msgid "Subrepo removed from repository." msgstr "Sous-dépôt enlevé du dépôt." msgid "Previously the subrepository was at the following revision:" msgstr "Auparavant, le sous-dépôt était la révision suivante :" msgid "Subrepo was not changed." msgstr "Le sous-dépôt n'a pas été modifié." msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "" "[ATTENTION] Sous-dépôt manquant. Mettre à jour à cette révision pour le " "cloner." msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "" "[ATTENTION] Sous-dépôt incomplet. Mettre à jour à cette révision pour le " "tirer." msgid "Subrepo state is:" msgstr "L'état du sous-dépôt est :" msgid "Revision has changed to:" msgstr "La révision a été changée en :" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "révision :%s (non trouvé dans le sous-dépôt)" msgid "From:" msgstr "De :" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" "[ATTENTION] Sous-dépôt modifié manquant. Mettre à jour à cette révision pour " "le cloner." msgid "Subrepository not found in the working directory." msgstr "Sous-dépôt non trouvé dans le répertoire de travail." msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" "[ATTENTION] Sous-dépôt modifié incomplet. Mettre à jour à cette révision " "pour le tirer." msgid "Not a Mercurial subrepo, not previewable" msgstr "Pas un sous-dépôt Mercurial, pas présentable" #, python-format msgid "Error previewing subrepo: %s" msgstr "Erreur en visualisant le sous-dépôt : %s" msgid "Subrepo may be damaged or inaccessible." msgstr "Le sous-dépôt peut être endommagé ou inaccessible." msgid "The subrepository is dirty." msgstr "Le sous-dépôt est sale." msgid "File Status:" msgstr "Statut de fichier :" msgid "(is a changed sub-repository)" msgstr "(est un sous-dépôt modifié)" msgid "(is an unchanged sub-repository)" msgstr "(est un sous-dépôt non-modifié)" msgid "(is a dirty sub-repository)" msgstr "(est un sous-dépôt sale)" msgid "(is a new sub-repository)" msgstr "(est un nouveau sous-dépôt)" msgid "(is a removed sub-repository)" msgstr "(est un sous-dépôt enlevé)" msgid "(is a changed and dirty sub-repository)" msgstr "(est un sous-dépôt modifié et sale)" msgid "(is a new and dirty sub-repository)" msgstr "(est un sous-dépôt nouveau et sale)" msgid "open..." msgstr "ouvrir..." #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "Affichage d'historique Hg de fichier [%s] - %s" msgid "File History Log Columns" msgstr "Colonnes de log de l'historique de fichier" msgid "Back" msgstr "Précédent" msgid "Forward" msgstr "Suivant" msgid "Diff Selected &Changesets" msgstr "Diff entre les révisions séle&ctionnées" msgid "&Diff Selected File Revisions" msgstr "&Diff entre les révisions des fichiers sélectionnés" msgid "Show Revision &Details" msgstr "Afficher les &détails de révision" msgid "Too many rows selected for menu" msgstr "Trop de lignes sélectionnées pour le menu" msgid "File Differences Log Columns" msgstr "Colonnes de log des différences de fichier" msgid "Next diff" msgstr "Différence suivante" msgid "Previous diff" msgstr "Différence précédente" msgid "Unicode" msgstr "Unicode" msgid "Western Europe" msgstr "Europe de l'Ouest" msgid "Unified Chinese" msgstr "Chinois unifié" msgid "Traditional Chinese" msgstr "Chinois traditionnel" msgid "Korean" msgstr "Coréen" msgid "Japanese" msgstr "Japonais" msgid "Thai" msgstr "Thaï" msgid "Central and Eastern Europe" msgstr "Europe centrale et de l'Est" msgid "Cyrillic" msgstr "Cyrillique" msgid "Russian" msgstr "Russe" msgid "Ukrainian" msgstr "Ukrainien" msgid "Greek" msgstr "Grec" msgid "Turkish" msgstr "Turc" msgid "Arabic" msgstr "Arabe" msgid "Hebrew" msgstr "Hébreu" msgid "Vietnamese" msgstr "Vietnamien" msgid "Baltic" msgstr "Balte" msgid "Southern Europe" msgstr "Europe du Sud" msgid "Nordic" msgstr "Nordique" msgid "Celtic" msgstr "Celtique" msgid "South-Eastern Europe" msgstr "Europe du Sud-Est" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "utf-8, iso8859-1, cp1252" msgid "View change as unified diff output" msgstr "Voir le changement comme sortie unifiée de diff" msgid "View change in context of file" msgstr "Voir le changement dans le contexte du fichier" msgid "Annotate with revision numbers" msgstr "Annoter avec les numéros de révision" msgid "Next Diff" msgstr "Différence suivante" msgid "Previous Diff" msgstr "Différence précédente" msgid "Open shelve tool" msgstr "Ouvrir l'outil de \"shelve\"" msgid "&Auto Detect" msgstr "Détection automatique" msgid "Show changes from first parent" msgstr "Afficher les changements depuis le premier parent" msgid "Show changes from second parent" msgstr "Afficher les changements depuis le deuxième parent" msgid "E&ncoding" msgstr "E&ncodage" msgid "&Search in Current File" msgstr "Rechercher dans le fichier actuel" msgid "Search in All &History" msgstr "Rechercher dans tout l'&historique" msgid "Go to Line" msgstr "Aller à la ligne" #, python-format msgid "Enter line number (1 - %d)" msgstr "Entrer un numéro de ligne (1 - %d)" msgid "Show &Author" msgstr "&Afficher l'auteur" msgid "Show &Date" msgstr "Afficher la &date" msgid "Show &Revision" msgstr "Afficher la &révision" msgid "Annotate Op&tions" msgstr "Op&tions d'annotation" msgid "Search Selected Text" msgstr "Rechercher le texte sélectionné" msgid "In Current &File" msgstr "Dans le &fichier actuel" msgid "In &Current Revision" msgstr "Dans la révision a&ctuelle" msgid "In &Original Revision" msgstr "Dans la révision &originale" msgid "In All &History" msgstr "Dans tout l'&historique" msgid "Go to" msgstr "Aller à" msgid "View File at" msgstr "Voir le fichier à" msgid "Diff File to" msgstr "Diff du fichier avec" msgid "&Originating Revision" msgstr "Révision d'&origine" msgid "&Parent Revision" msgstr "Révision &parente" #, python-format msgid "&Parent Revision (%d)" msgstr "Révision parente (%d)" msgid "&Mark Excluded Changes" msgstr "&Marquer les changements exclus" msgid "(excluded from the next commit)" msgstr "(exclu du prochain commit)" msgid "Interrupted graft operation found" msgstr "Greffe interrompue trouvée" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" "Une greffe interrompue a été trouvée.\n" "\n" "Vous ne pouvez pas réaliser une autre greffe avant d'abandonner la greffe " "interrompue." msgid "Continue or abort interrupted graft operation?" msgstr "Continuer ou abandonner la greffe interrompue ?" msgid "To graft destination" msgstr "Vers la destination de greffe" msgid "Use my user name instead of graft committer user name" msgstr "Utiliser mon nom au lieu de celui du committeur de la greffe" msgid "Use current date" msgstr "Utiliser la date actuelle" msgid "Append graft info to log message" msgstr "Ajouter les infos de greffe au message" msgid "Graft" msgstr "Greffer" msgid "Abort" msgstr "Abandonner" #, python-format msgid "Graft - %s" msgstr "Greffe - %s" msgid "Graft changeset" msgstr "Greffer la révision" #, python-format msgid "Graft changeset #%d of %d" msgstr "Greffer la révision #%d de %d" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" "Avant de greffer, vous devez committer, faire un \"shelve\" ou abandonner les modifications." msgid "You may continue or start the graft" msgstr "Vous pouvez continuer ou démarrer la greffe" msgid "Graft is complete" msgstr "La greffe est terminée" msgid "Graft failed" msgstr "Échec de la greffe" msgid "Graft aborted" msgstr "Greffe abandonnée" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" "La greffe a créé des conflits de fusion qui doivent être résolus" msgid "You may continue the graft" msgstr "Vous pouvez continuer la greffe" msgid "Exiting with an unfinished graft is not recommended." msgstr "Quitter avec une greffe inachevée n'est pas recommandé." msgid "Consider aborting the graft first." msgstr "Envisager de d'abord abandonner la greffe." msgid "&Exit" msgstr "&Quitter" msgid "### regular expression search pattern ###" msgstr "### motif de recherche sous forme d'expression régulière ###" msgid "Regexp:" msgstr "Expression régulière :" msgid "Ignore case" msgstr "Ignorer la casse" msgid "Search" msgstr "Rechercher" msgid "Working Copy" msgstr "Copie de travail" msgid "All History" msgstr "Tout l'historique" msgid "Report only the first match per file" msgstr "Signaler uniquement le premier résultat par fichier" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "Suivre les copies et les changements de noms" msgid "Includes:" msgstr "Inclus :" msgid "Excludes:" msgstr "Exclus :" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" "Liste de motifs de fichier à exclure séparés par une virgule. Les motifs " "d'exclusion sont appliqués après ceux d'inclusion." msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" "Liste de motifs de fichier à inclure séparés par une virgule. Par défaut, " "l'ensemble du dépôt est parcouru." #, python-format msgid "\"%s\" removed from search history" msgstr "\"%s\" est enlevé de l'historique de recherche" #, python-format msgid "\"%s\" removed from path history" msgstr "\"%s\" est enlevé de l'historique de chemin" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "grep : motif invalide : %s\n" #, python-format msgid "grep: %s\n" msgstr "grep : %s\n" #, python-format msgid "%d matches found" msgstr "%d correspondances trouvées" msgid "No matches found" msgstr "Aucune correspondance trouvée" msgid "Searching" msgstr "Recherche" msgid "history" msgstr "historique" msgid "Interrupted" msgstr "Interrompu" msgid "files" msgstr "fichiers" #, python-format msgid "Skipping %s, unable to read" msgstr "Omettant %s, impossible à lire" msgid "Vi&ew File" msgstr "Voir le fichi&er" msgid "&View Changeset" msgstr "&Voir la révision" msgid "Annotate &File" msgstr "Annoter le &fichier" msgid "File" msgstr "Fichier" msgid "Line" msgstr "Ligne" msgid "Rev" msgstr "Rev" msgid "User" msgstr "Utilisateur" msgid "Match Text" msgstr "Correspondance de texte" msgid "TortoiseHg Search" msgstr "Recherche TortoiseHg" #, python-format msgid "Detect Copies/Renames in %s" msgstr "Détecter les copies/renommages dans %s" msgid "Unrevisioned Files" msgstr "Fichiers non versionnés" msgid "Refresh file list" msgstr "Rafraîchir la liste des fichiers" #, python-format msgid "Min Similarity: %d%%" msgstr "Similarité minimum : %d %%" msgid "Only consider deleted files" msgstr "Examiner uniquement les fichiers supprimés" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "" "Décocher pour examiner tous les fichiers versionnés pour les sources de copie" msgid "Find Renames" msgstr "Rechercher les changements de noms" msgid "Find copy and/or rename sources" msgstr "Trouver les sources copiées et/ou renommées" msgid "Candidate Matches" msgstr "Correspondances candidates" msgid "Accept All Matches" msgstr "Accepter toutes les correspondances" msgid "Accept Selected Matches" msgstr "Accepter les correspondances sélectionnées" msgid "Differences from Source to Dest" msgstr "Différences de la source vers la destination" msgid "Search already in progress" msgstr "Recherche déjà en cours" msgid "Cannot start a new search" msgstr "Impossible de démarrer une nouvelle recherche" msgid "No files to find" msgstr "Aucun fichier à trouver" msgid "There are no files that may have been renamed" msgstr "Il n'y a aucun fichier qui peut avoir été renommé" msgid "Multiple sources chosen" msgstr "Plusieurs sources choisies" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" "Vous avez plusieurs renommages sélectionnés pour le fichier destination :\n" "%s. Abandon !" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" "%s et %s ont des contenus identiques\n" "\n" #. i18n: percent format #, python-format msgid "%d%%" msgstr "%d %%" msgid "Source" msgstr "Source" msgid "Dest" msgstr "Dest" msgid "% Match" msgstr "% Corresp" msgid "Sending Email" msgstr "Envoi du courriel" msgid "Email" msgstr "Courriel" msgid "To:" msgstr "À :" msgid "Cc:" msgstr "Copie à :" msgid "In-Reply-To:" msgstr "En réponse à :" msgid "Message identifier to reply to, for threading" msgstr "Identifiant du message auquel répondre - pour le suivi de discussion" msgid "Flag:" msgstr "Flag :" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" "Les patches Hg (comme ceux créés par la commande d'export) sont compatibles " "avec la plupart des programmes de patches. Ils contiennent un en-tête " "comportant les métadonnées de révision les plus importantes." msgid "Send changesets as Hg patches" msgstr "Envoyer les révisions comme patches Hg" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" "Les patches git peuvent décrire des modifications de fichiers binaires, de " "copies et de droits d'accès, mais les destinataires peuvent ne pas pouvoir " "les utiliser s'ils n'utilisent pas git ou Mercurial." msgid "Use extended (git) patch format" msgstr "Utiliser le format de patch étendu (git)" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" "Retirer l'en-tête Mercurial enlève le nom d'utilisateur et les informations " "de parenté. Cela n'est utile que si le destinataire n'utilise pas Mercurial " "(et qu'il n'aime pas voir ces en-têtes)." msgid "Plain, do not prepend Hg header" msgstr "Simple, sans l'entête Hg" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" "Les paquets contiennent toutes les révisions sous forme binaire. Les autres " "utilisateurs peuvent tirer depuis ces fichiers. C'est le moyen le plus sûr " "d'envoyer des modifications à des utilisateurs de Mercurial." msgid "Send single binary bundle, not patches" msgstr "Envoyer un seul paquet binaire, pas de patches." msgid "send patches as part of the email body" msgstr "envoyer des patches dans le corps du courrier" msgid "body" msgstr "corps" msgid "send patches as attachments" msgstr "envoyer les patches comme pièces jointes" msgid "attach" msgstr "joindre" msgid "send patches as inline attachments" msgstr "envoyer les patches directement inclus dans le mail" msgid "inline" msgstr "en ligne" msgid "add diffstat output to messages" msgstr "ajouter les infos diffstat aux messages" msgid "diffstat" msgstr "diffstat" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" "La description de la série de patches est envoyée dans un premier message de " "résumé avec le sujet [PATCH 0 of N]. Elle doit décrire les effets de toute " "la série de patches. Quand on envoie un paquet, ces champs sont dans le " "sujet et le corps du message. Les 'flags' sont une liste d'étiquettes " "séparées par des virgules qui sont insérées en préfixe du sujet du message." msgid "Write patch series (bundle) description" msgstr "Écrire la description de la série (paquet) de patches" msgid "Subject:" msgstr "Objet :" msgid "Changesets" msgstr "Révisions" msgid "Select &All" msgstr "Tout sélectionner" msgid "Select &None" msgstr "Tout désélectionner" msgid "Edit" msgstr "Éditer" msgid "Preview" msgstr "Aperçu" msgid "&Settings" msgstr "Préférences" msgid "Send &Email" msgstr "&Envoyer le courriel" msgid "&Close" msgstr "&Fermer" #, python-format msgid "Ignore filter - %s" msgstr "Filtre des fichiers ignorés - %s" msgid "Glob" msgstr "Glob" msgid "Regexp" msgstr "Expression régulière" msgid "Add" msgstr "Ajouter" msgid "Edit File" msgstr "Éditer le fichier" msgid "Ignore Filter" msgstr "Filtre des fichiers ignorés" msgid "Untracked Files" msgstr "Fichiers non suivis" msgid "Backspace or Del to remove row(s)" msgstr "Retour arrière ou Suppr pour supprimer la (les) colonne(s)" msgid "Add ignore filter..." msgstr "Ajouter un filtre de fichier ignoré..." msgid "selected files" msgstr "fichiers sélectionnés" msgid "Ignore " msgstr "Ignorer " msgid "Invalid glob expression" msgstr "Expression globale invalide" msgid "Invalid regexp expression" msgstr "Expression régulière invalide" msgid "Unable to read repository status" msgstr "Impossible de lire le statut du dépôt" msgid "New file created" msgstr "Nouveau fichier créé" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" "TortoiseHg a créé un nouveau fichier .hgignore. Souhaitez-vous ajouter ce " "fichier dans le dépôt ?" msgid "Unable to write .hgignore file" msgstr "Impossible d'écrire le fichier .hgignore" msgid "Copy working directory files from skeleton" msgstr "Copier des fichiers du répertoire de travail depuis le squelette" msgid "Create special files (.hgignore, ...)" msgstr "Créer les fichiers spéciaux (.hgignore, ...)" msgid "Make repo compatible with Mercurial <1.7" msgstr "Rendre le dépôt compatible avec Mercurial <1.7" msgid "New Repository" msgstr "Nouveau dépôt" msgid "&Create" msgstr "&Créer" msgid "Unable to create a config file" msgstr "Impossible de créer un fichier de configuration" msgid "Insufficient access rights." msgstr "Droits d'accès insuffisants." msgid "Show Log" msgstr "Afficher le journal" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" "Certains fichiers sélectionnés ont une taille supérieure à 10 MB. Vous " "pouvez utiliser plus efficacement l'espace disque en ajoutant ces fichiers " "comme largefiles, qui stockeront uniquement la version la plus récente de " "chaque fichier dans votre dépôt local, en gardant les versions plus " "anciennes disponibles sur le serveur. Voulez-vous ajouter ces fichiers comme " "largefiles ?" msgid "Add as &Largefiles" msgstr "Ajouter comme &Largefiles" msgid "Add as &Normal Files" msgstr "Ajouter comme fichiers &normaux" msgid "Invalid Patterns" msgstr "Motifs invalides" msgid "Failed to process largefiles.patterns." msgstr "Impossible de traiter largefiles.patterns." msgid "Word docs (*.doc *.docx)" msgstr "Documents Word (*.doc *.docx)" msgid "PDF docs (*.pdf)" msgstr "Documents PDF (*.pdf)" msgid "Excel files (*.xls *.xlsx)" msgstr "Fichiers Excel (*.xls *.xlsx)" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "Outil de verrouillage TortoiseHg - %s" msgid "Refresh lock information" msgstr "Rafraîchir l'information de verrouillage" msgid "Lock a file not described in .hglocks" msgstr "Verrouiller un fichier non décrit dans .hglocks" msgid "Stop current operation" msgstr "Arrêter l'opération en cours" msgid "Locked And Lockable Files:" msgstr "Fichiers verrouillés et verrouillables :" msgid "Path" msgstr "Chemin" msgid "Locking User" msgstr "Utilisateur qui verrouille" msgid "Purpose" msgstr "But" msgid "Simplelock extension not enabled" msgstr "Extension simplelock pas activée" msgid "Please enable and configure simplelock" msgstr "Activez et configurez simplelock" msgid "Open a (nonmergable) file you wish to be locked" msgstr "Ouvrir un fichier (non fusionnable) que vous voulez verrouiller" msgid "File was not within current repository" msgstr "Fichier n'était pas dans le dépôt actuel" #, python-format msgid "Locking %s" msgstr "Verrouillage de %s" #, python-format msgid "Unlocking %s" msgstr "Déverrouillage de %s" msgid "Refreshing locks..." msgstr "Rafraîchissement des verrous..." #, python-format msgid "Lock of %s successful" msgstr "Verrouillage réussi de %s" #, python-format msgid "Lock of %s failed, retry" msgstr "Verrouillage raté de %s, réessayez" #, python-format msgid "Unlock of %s failed, retry" msgstr "Déverrouillage raté de %s, réessayez" #, python-format msgid "Unlock of %s successful" msgstr "Déverrouillage réussi de %s" msgid "Ready, double click to lock or unlock" msgstr "Prêt, double cliquer pour verrouiller ou déverrouiller" msgid "Ready" msgstr "Prêt" msgid "You can only release your own locks" msgstr "Vous pouvez relâcher uniquement vos verrous" msgid "Find revisions matching fields of:" msgstr "Trouver les révisions correspondant aux champs de :" msgid "Revision to Match:" msgstr "Révision qui doit correspondre :" msgid "Fields to match:" msgstr "Champs qui doivent correspondre :" msgid "Summary (first description line)" msgstr "Résumé (première ligne de description)" msgid "Description" msgstr "Description" msgid "Author" msgstr "Auteur" msgid "Date" msgstr "Date" msgid "Files" msgstr "Fichiers" msgid "Diff contents" msgstr "Diff du contenu" msgid "Subrepo states" msgstr "États des sous-dépôts" msgid "Branch" msgstr "Branche" msgid "Phase" msgstr "Phase" msgid "&Match" msgstr "Correspondre" #, python-format msgid "Find matches - %s" msgstr "Trouver des correspondances - %s" msgid "Revisions to Match:" msgstr "Révisions qui correspondent :" #, python-format msgid "Match any of %d revisions" msgstr "Correspondance avec %d révisions" msgid "Unknown revision!" msgstr "Révision inconnue !" msgid "Parse Error!" msgstr "Erreur d'analyse !" #, python-format msgid "Merge - %s" msgstr "Fusion - %s" msgid "Do you want to exit?" msgstr "Voulez-vous arrêter ?" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" "Pour terminer la fusion, vous devez committer le répertoire de travail.\n" "\n" "Pour annuler la fusion, vous pouvez mettre à jour vers l'une des révisions " "parentes de la fusion." msgid "Prepare to merge" msgstr "Préparer la fusion" msgid "Verify merge targets and ensure your working directory is clean." msgstr "" "Vérifie la fusion des cibles et s'assure que le répertoire de travail est " "propre." msgid "Not a head revision!" msgstr "Pas une révision de tête !" msgid "Merge from (other revision)" msgstr "Fusion depuis (une autre révision)" msgid "Merge to (working directory)" msgstr "Fusion vers (répertoire de travail)" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" "Le répertoire de travail est déjà fusionné. Continuer ou abandonner la " "fusion existante." msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" "Avant de fusionner, vous devez committer, faire un \"shelve\" ou abandonner les changements." msgid "Or use:" msgstr "Ou utiliser :" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "Forcer une fusion avec les modifications en suspens (-f/--force)" msgid "Discard all changes from the other revision" msgstr "Abandonner tous les changements de l'autre révision" msgid "&Discard" msgstr "Abandonner" msgid "Confirm Discard Changes" msgstr "Confirmer l'abandon des changements" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" "Les changements de la révision %s et tous les parents non fusionnés seront " "abandonnés.\n" "\n" "Êtes-vous sûr ?" msgctxt "working dir state" msgid "Clean" msgstr "Propre" msgid "Merging..." msgstr "Fusion en cours..." msgid "Automatically advance to next page when merge is complete." msgstr "" "Avancer automatiquement à la page suivante lorsque la fusion est terminée." #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" "%d fichiers sont modifiés dans les deux branches et doivent être résolus" msgid "" "No merge conflicts, ready to commit or review" msgstr "" "Aucun conflit de fusion, prêt à appliquer un commit ou à revoir" msgid "Commit merge results" msgstr "Committer les résultats de fusion" msgid "Commit Options" msgstr "Options de commit" msgid "Commit Now" msgstr "Committer maintenant" msgid "Commit Later" msgstr "Committer plus tard" msgid "Merge changeset" msgstr "Révision de fusion" msgid "Syntax Highlighting" msgstr "Coloration syntaxique" msgid "Paste &Filenames" msgstr "Coller les noms de &fichiers" msgid "App&ly Format" msgstr "App&liquer le format" msgid "C&onfigure Format" msgstr "C&onfigurer le format" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "%s a des morceaux rejetés, éditer le fichier patché avec les rejets ?" msgid "&Commit to Queue..." msgstr "&Committer dans la queue..." msgid "Create &New Queue..." msgstr "Créer une &nouvelle queue..." msgid "&Rename Active Queue..." msgstr "&Renommer une queue active..." msgid "&Delete Queue..." msgstr "Supprimer une queue..." msgid "&Purge Queue..." msgstr "&Purger une queue..." msgid "Create Patch Queue" msgstr "Créer une queue de patch" msgid "New patch queue name" msgstr "Nouveau nom de queue de patch" msgid "Create" msgstr "Créer" msgid "Rename Patch Queue" msgstr "Renommer une queue de patch" #, python-format msgid "Rename patch queue '%s' to" msgstr "Renommer la queue de patch '%s' en" msgid "Rename" msgstr "Renommer" msgid "Delete Patch Queue" msgstr "Supprimer la queue de patch" msgid "Delete reference to" msgstr "Supprimer la référence vers" msgid "Delete" msgstr "Supprimer" msgid "Purge Patch Queue" msgstr "Purger la queue de patch" msgid "Remove patch directory of" msgstr "Enlever le répertoire de patch de" msgid "Purge" msgstr "Vider" msgid "Rename Patch" msgstr "Renommer un patch" #, python-format msgid "Rename patch %s to:" msgstr "Renommer le patch %s en :" msgid "no guards" msgstr "aucune garde" msgid "Patch Queue" msgstr "Queue de patch" msgctxt "MQ QPush" msgid "Push" msgstr "Empiler (qpush)" msgid "Apply one patch" msgstr "Appliquer un patch" msgctxt "MQ QPush" msgid "Push all" msgstr "Tout empiler (qpush -a)" msgid "Apply all patches" msgstr "Appliquer tous les patches" msgid "Pop" msgstr "Dépiler" msgid "Unapply one patch" msgstr "Dé-appliquer un patch" msgid "Pop all" msgstr "Tout dépiler" msgid "Unapply all patches" msgstr "Dé-appliquer tous les patches" msgid "Go &to Patch" msgstr "Aller au patch" msgid "&Apply Only This Patch" msgstr "Appliquer uniquement ce patch" msgid "Apply only the selected patch" msgstr "Appliquer uniquement le patch sélectionné" msgid "&Finish Patch" msgstr "&Finir le patch" msgid "Move applied patches into repository history" msgstr "Déplacer les patches appliqués dans l'historique" msgid "&Delete Patches..." msgstr "Supprimer des patches..." msgid "Delete selected patches" msgstr "Supprimer les patches sélectionnés" msgid "Re&name Patch..." msgstr "Re&nommer le patch..." msgid "Set &Guards..." msgstr "Mettre des &gardes..." msgid "Configure guards for selected patch" msgstr "Configurer les gardes pour le patch sélectionné" msgid "Patch Queue Actions Toolbar" msgstr "Barre d'outils d'actions de queue de patch" msgid "Configure guards" msgstr "Configurer les gardes" #, python-format msgid "Input new guards for %s:" msgstr "Entrer de nouvelles gardes pour %s :" msgid "Confirm patch queue switch" msgstr "Confirmer le changement de queue de patch" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "Voulez-vous vraiment activer la queue de patch '%s' ?" #, python-format msgid "Guards: %d/%d" msgstr "Gardes : %d/%d" msgid "MQ options" msgstr "Options MQ" msgid "Force push or pop (--force)" msgstr "Forcer l'empilement ou le dépilement (--force)" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "Tolérer des conflits locaux non-conflictuels (--keep-changes)" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "Changelists de Perforce en cours - %s" msgid "Submitting p4 changelist..." msgstr "Soumettant une changelist p4..." msgid "Reverting p4 changelist..." msgstr "Rétablissant une changelist p4..." msgid "Patch Branch Toolbar" msgstr "Barre d'outil de Patch Branch" msgid "Merge all pending dependencies" msgstr "Fusionner toutes les dépendances en attente" msgid "Backout current patch branch" msgstr "Faire un backout de la branche actuelle de patch" msgid "Backport part of a changeset to a dependency" msgstr "\"Backporter\" une partie de révision vers une dépendance" msgid "Start a new patch branch" msgstr "Commencer une nouvelle branche de patch" msgid "Edit patch dependency graph" msgstr "Éditer un graphe de dépendance de patch" msgid "will be closed" msgstr "va être fermé" #, python-format msgid "needs merge of %i heads\n" msgstr "nécessite la fusion de %i têtes\n" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "nécessite la fusion avec %s (à travers %s)\n" #, python-format msgid "needs merge with %s\n" msgstr "nécessite la fusion avec %s\n" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "nécessite la mise à jour de la base diff vers le tip de %s\n" msgid "&Goto (update workdir)" msgstr "&Aller (mise à jour du répertoire de travail)" msgid "&Merge" msgstr "&Fusionner" msgid "No patch branch selected" msgstr "Aucune branche de patch sélectionnée" msgid "No editor found" msgstr "Aucun éditeur trouvé" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" "Mercurial n'a pas trouvé d'éditeur. Veuillez configurer Mercurial pour " "utiliser un éditeur installé sur votre système." msgid "Graph" msgstr "Graphe" msgid "Status" msgstr "État" msgid "Title" msgstr "Titre" msgid "Message" msgstr "Message" msgid "New Patch Branch" msgstr "Nouvelle branche de patch" msgid "Patch message:" msgstr "Message de patch :" msgid "Patch date:" msgstr "Date de patch :" msgid "Patch user:" msgstr "Utilisateur de patch :" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "Poster une &revue" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "Préférences incorrectes - Le serveur ReviewBoard n'est pas indiqué" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "Préférences incorrectes - Indiquez votre nom d'utilisateur ReviewBoard" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" "Plugin reviewboard invalide. Téléchargez le plugin reviewboard version 3.5 " "ou plus du site ci-dessous.\n" "\n" " %s" msgid "Review Board" msgstr "Review Board" msgid "Password:" msgstr "Mot de passe :" msgid "Error" msgstr "Erreur" #, python-format msgid "Review draft posted to %s\n" msgstr "Brouillon de revue posté sur %s\n" #, python-format msgid "Review published to %s\n" msgstr "Revue publiée sur %s\n" msgid "Success" msgstr "Succès" msgid "Repository ID:" msgstr "Identifiant de dépôt :" msgid "Post Review" msgstr "Post review" msgid "Review ID:" msgstr "Identifiant de revue :" msgid "Update the fields of this existing request" msgstr "Mettre à jour les champs de cette requête" msgid "Update Review" msgstr "Mettre à jour la revue" msgid "Create diff with all outgoing changes" msgstr "Créer un diff avec tous les changements sortants" msgid "Create diff with all changes on this branch" msgstr "Créer un diff avec tous les changements sur cette branche" msgid "Publish request immediately" msgstr "Publier la requête immédiatement" msgid "%p%" msgstr "%p%" msgid "Connecting to Review Board..." msgstr "En cours de connexion à Review Board..." msgid "Target:" msgstr "Cible :" msgid "Do not modify working copy (-k/--keep)" msgstr "Ne pas modifier la copie de travail (-k/--keep)" #, python-format msgid "Prune - %s" msgstr "Élaguer (prune) - %s" msgid "&Prune" msgstr "Élaguer" msgid "No unknown files found" msgstr "Aucun fichier inconnu trouvé" msgid "No ignored files found" msgstr "Aucun fichier ignoré trouvé" msgid "No trash files found" msgstr "Aucun fichier dans .hg/Trashcan" msgid "Delete empty folders" msgstr "Supprimer les dossiers vides" msgid "Preserve files beginning with .hg" msgstr "Conserver les fichiers commençant par .hg" #, python-format msgid "%s - purge" msgstr "%s - purge" msgid "Checking" msgstr "Vérification en cours" msgid "Ready to purge." msgstr "Prêt à purger." #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "Supprimer %d fichier inconnu" msgstr[1] "Supprimer %d fichiers inconnus" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "Supprimer %d fichier ignoré" msgstr[1] "Supprimer %d fichiers ignorés" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "Supprimer %d fichier dans .hg/Trashcan" msgstr[1] "Supprimer %d fichiers dans .hg/Trashcan" msgid "Confirm file deletions" msgstr "Confirmer la suppression de fichiers" msgid "Are you sure you want to delete these files and/or folders?" msgstr "Voulez-vous supprimer ces fichiers et/ou ces dossiers ?" msgid "Deletion failures" msgstr "Échec lors de la suppression" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "Impossible de supprimer le fichier ou dossier %d" msgstr[1] "Impossible de supprimer les fichiers ou dossiers %d" msgid "Deleting trash folder..." msgstr "Supprimer le dossier corbeille..." #, python-format msgid "Deleted %d files" msgstr "%d fichiers supprimés" #, python-format msgid "Deleted %d files and %d folders" msgstr "%d fichiers et %d dossiers supprimés" msgid "Delete Patches" msgstr "Supprimer des patches" msgid "Remove patches from queue?" msgstr "Enlever des patches de la queue ?" msgid "Keep patch files" msgstr "Conserver les fichiers patch" #, python-format msgid "Patch fold - %s" msgstr "Incorporation de patch - %s" msgid "New patch message:" msgstr "Nouveau message de patch :" msgid "Patches to fold" msgstr "Patches à incorporer" msgid "&Undo" msgstr "Ann&uler" msgid "&Redo" msgstr "&Rétablir" msgid "Cu&t" msgstr "Couper" msgid "&Copy" msgstr "&Copier" msgid "&Paste" msgstr "Coller" msgid "&Editor Options" msgstr "Options de l'édit&eur" msgid "&Wrap" msgstr "Retour à la ligne" msgctxt "wrap mode" msgid "&None" msgstr "Aucu&n" msgid "&Word" msgstr "Mot" msgid "&Character" msgstr "&Caractère" msgid "White&space" msgstr "E&space" msgid "&Visible" msgstr "&Visible" msgid "&Invisible" msgstr "&Invisible" msgid "&AfterIndent" msgstr "&Après indentation" msgid "&TAB Inserts" msgstr "Insertion de &TAB" msgid "&Auto" msgstr "&Auto" msgid "&TAB" msgstr "&TAB" msgid "&Spaces" msgstr "E&spaces" msgid "EOL &Visibility" msgstr "&Visibilité des fins de ligne" msgid "EOL &Mode" msgstr "&Mode des fins de ligne" msgid "&Windows" msgstr "&Windows" msgid "&Unix" msgstr "&Unix" msgid "&Mac" msgstr "&Mac" msgid "&Auto-Complete" msgstr "&Auto-complétion" msgid "### regular expression ###" msgstr "### expression régulière ###" msgid "Regular expression search pattern" msgstr "Expression régulière de recherche" msgid "Wrap search" msgstr "Recherche cyclique" msgid "Prev" msgstr "Précédent" msgid "Next" msgstr "Suivant" msgid "Unable to read file" msgstr "Impossible de lire le fichier" msgid "Could not open the specified file for reading." msgstr "Ne peut pas ouvrir le fichier spécifié en lecture." msgid "This appears to be a binary file." msgstr "Cela semble être un fichier binaire." msgid "An error occurred while reading the file." msgstr "Une erreur s'est produite en lisant le fichier." msgid "Text Translation Failure" msgstr "Erreur de transposition de texte" msgid "Could not translate the file content from native encoding." msgstr "Ne peut pas traduire le contenu du fichier depuis l'encodage natif." msgid "Several characters would be lost." msgstr "Plusieurs caractères seront perdus." msgid "Unable to write file" msgstr "Impossible d'écrire le fichier" msgid "Could not translate the file content to native encoding." msgstr "Ne peut pas traduire le contenu du fichier dans l'encodage natif." msgid "Could not open the specified file for writing." msgstr "Ne peut pas ouvrir le fichier spécifié en écriture." msgid "An error occurred while writing the file." msgstr "Une erreur s'est produite en écrivant fichier." msgid "Try refreshing your repository." msgstr "Essayer de rafraîchir votre dépôt." #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
                                            Please edit your config" msgstr "" "Erreur dans la chaîne \"%(arg0)s\" à %(arg1)s
                                            Veuillez éditer votre configuration" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
                                            Please fix your config" msgstr "" "Erreur de configuration : \"%(arg0)s\",
                                            Veuillez
                                            corriger votre configuration" #, python-format msgid "Operation aborted:

                                            %(arg0)s." msgstr "Operation interrompue :

                                            %(arg0)s." msgid "Repository is locked" msgstr "Le dépôt est verrouillé" msgid "hint:" msgstr "indice :" msgid "Repository Error" msgstr "Erreur dans le dépôt" msgid "No visual editor configured" msgstr "Aucun éditeur graphique spécifié" msgid "Please configure a visual editor." msgstr "Veuillez spécifier un éditeur graphique." msgid "Editor launch failure" msgstr "Échec du lancement de l'éditeur" msgid "Failed to open path in terminal" msgstr "Impossible d'ouvrir le chemin dans le terminal" #, python-format msgid "\"%s\" is not a valid directory" msgstr "« %s » n'est pas un répertoire valide" #, python-format msgid "Invalid configuration: %s" msgstr "Configuration invalide : %s" msgid "Unable to start the following command:" msgstr "Impossible de démarrer la commande suivante :" msgid "No shell configured" msgstr "Aucun shell configuré" msgid "A terminal shell must be configured" msgstr "Une console doit être configurée" msgid "Please enter a username" msgstr "Veuillez entrer un nom d'utilisateur" msgid "You must identify yourself to Mercurial" msgstr "Vous devez vous identifier à Mercurial" msgid "Unable to translate input to local encoding." msgstr "Impossible de transposer l'entrée dans l'encodage local." msgid "Checkmark files to add" msgstr "Cocher les fichiers à ajouter" msgid "Checkmark files to forget" msgstr "Cocher les fichiers à oublier" msgid "Forget" msgstr "Oublier" msgid "Checkmark files to revert" msgstr "Cocher les fichiers à rétablir" msgid "Revert" msgstr "Rétablir" msgid "Checkmark files to remove" msgstr "Cocher les fichiers à enlever" msgid "Remove" msgstr "Enlever" #, python-format msgid "%s - hg %s" msgstr "%s - hg %s" msgid "Do not save backup files (*.orig)" msgstr "Ne pas enregistrer de fichiers de sauvegarde (*.orig)" msgid "Force removal of modified files (--force)" msgstr "Forcer la suppression des fichiers modifiés (--force)" msgid "Add &Largefiles" msgstr "Ajouter des &largefiles" msgid "No files selected" msgstr "Aucun fichier sélectionné" msgid "No operation to perform" msgstr "Aucune opération à exécuter" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" "Vous avez sélectionné un ou plusieurs fichiers qui ont été modifiés. Par " "défaut, ces fichiers ne seront pas supprimés. Que souhaitez-vous faire ?" msgid "Remove &Unmodified Files" msgstr "Retirer les fichiers non modifiés" msgid "Remove &All Selected Files" msgstr "Retirer tous les fichiers sélectionnés" msgid "Rebase changeset and descendants" msgstr "\"Rebaser\" une révision et ses descendants" msgid "To rebase destination" msgstr "Vers la destination du \"rebase\"" msgid "Swap source and destination" msgstr "Permuter source et destination" msgid "Keep original changesets (--keep)" msgstr "Garder les révisions d'origine (--keep)" msgid "Keep original branch names (--keepbranches)" msgstr "Garder les noms de branche d'origine (--keepbranches)" msgid "Collapse the rebased changesets (--collapse)" msgstr "Fusionner les révisions \"rebasées\" (--collapse)" msgid "Rebase entire source branch (-b/--base)" msgstr "\"Rebaser\" entièrement la branche source (-b/--base)" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "" "\"Rebaser\" les révisions non publiées sur la tête Subversion (remplacer " "source, destination)" msgid "Rebase" msgstr "\"Rebaser\"" #, python-format msgid "Rebase - %s" msgstr "\"Rebase\" - %s" msgid "" "Before rebase, you must commit, shelve to patch, or discard changes." msgstr "" "Avant de \"rebaser\", vous devez committer, faire un \"shelve\" ou abandonner les modifications." msgid "You may continue the rebase" msgstr "Vous pouvez continuer de \"rebaser\"" msgid "Rebase is complete" msgstr "Le \"rebase\" est fini" msgid "Rebase failed" msgstr "Échec du \"rebase\"" msgid "Rebase aborted" msgstr "\"Rebase\" abandonné" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" "Le \"rebase\" a créé des conflits de fusion qui doivent être résolus" msgid "Exiting with an unfinished rebase is not recommended." msgstr "Sortir avec un \"rebase\" inachevé n'est pas recommandé." msgid "Consider aborting the rebase first." msgstr "Envisager de d'abord abandonner le \"rebase\"." #, python-format msgid "Merge rejected patch chunks into %s" msgstr "Fusionner les morceaux de patch rejetés dans %s" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "Marquer ce morceau comme résolu, aller au non résolu suivant" msgid "Mark this chunk as unresolved" msgstr "Marquer ce morceau comme non résolu" msgid "Reload File" msgstr "Recharger le fichier" msgid "Are you sure you want to reload this file?" msgstr "Voulez-vous recharger ce fichier ?" msgid "All unsaved changes will be lost." msgstr "Tous les changements non enregistrés seront perdus." msgid "Warning" msgstr "Attention" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" "Vous avez marqués tous les morceaux rejetés comme déjà résolus mais vous " "n'avez pas modifié le fichier .\n" "\n" "Ceci signifie probablement qu'aucun code des morceaux rejetés n'a été inclus " "dans le fichier.\n" "\n" "Êtes-vous certain de vouloir laisser le fichier tel quel et considérer tous " "les morceaux rejetés comme résolus ?\n" "\n" "Faire ainsi peut les supprimer d'un 'shelve', par exemple, ce qui signifie " "que vous les perdrez pour toujours !\n" "\n" "Cliquer Oui pour accepter le fichier en l'état ou Non pour continuer la " "résolution des morceaux rejetés." msgid "Copy source -> destination" msgstr "Copier source -> destination" msgid "Copy Error" msgstr "Erreur de copie" msgid "Rename Error" msgstr "Erreur de renommage" msgid "Select Source File" msgstr "Sélectionnez un fichier source" msgid "Select Source Folder" msgstr "Sélectionner un dossier source" msgid "Source does not exist." msgstr "La source n'existe pas." msgid "The source must be within the repository tree." msgstr "La source doit être dans le dépôt." msgid "The destination must be within the repository tree." msgstr "La destination doit être dans le dépôt." msgid "Destination file already exists." msgstr "Le fichier destination existe déjà." msgid "Are you sure you want to overwrite it ?" msgstr "Voulez-vous le remplacer ?" #, python-format msgid "Copy - %s" msgstr "Copie - %s" #, python-format msgid "Rename - %s" msgstr "Renommer - %s" msgid "Show all" msgstr "Tout afficher" msgid "### revision set query ###" msgstr "### requête d'un ensemble de révisions ###" msgid "Clear current query and query text" msgstr "Effacer la requête actuelle et son texte" msgid "Trigger revision set query" msgstr "Déclencher une requête d'un ensemble de révisions" msgid "Open advanced query editor" msgstr "Ouvrir l'éditeur de requête avancé" msgid "Delete selected query from history" msgstr "Supprimer la requête sélectionnée de l'historique" msgid "filter" msgstr "filtrer" msgid "Toggle filtering of non-matched changesets" msgstr "Filtrer les révisions ne correspondant pas au filtre" msgid "Show/Hide hidden changesets" msgstr "Afficher/cacher les révisions cachées" msgid "Toggle graft relations visibility" msgstr "Alterner la visibilité des relations de greffe" msgid "Keyword Search" msgstr "Recherche par mots-clés" msgid "Revision Set" msgstr "Ensemble de révisions" msgid "(unsaved)" msgstr "(non enregistré)" msgid "Display graph the named branch only" msgstr "Afficher uniquement le graphe de la branche nommée" msgid "Display only active branches" msgstr "Afficher seulement les branches actives" msgid "Display closed branches" msgstr "Afficher les branches fermées" msgid "Include all ancestors" msgstr "Inclure tous les ancêtres" msgctxt "column header" msgid "Graph" msgstr "Graphe" msgctxt "column header" msgid "Rev" msgstr "Rev" msgctxt "column header" msgid "Branch" msgstr "Branche" msgctxt "column header" msgid "Description" msgstr "Description" msgctxt "column header" msgid "Author" msgstr "Auteur" msgctxt "column header" msgid "Tags" msgstr "Étiquettes" msgctxt "column header" msgid "Latest tags" msgstr "Dernières étiquettes" msgctxt "column header" msgid "Node" msgstr "Nœud" msgctxt "column header" msgid "Git Commit" msgstr "Commit Git" msgctxt "column header" msgid "Age" msgstr "Âge" msgctxt "column header" msgid "Local Time" msgstr "Heure locale" msgctxt "column header" msgid "UTC Time" msgstr "Heure UTC" msgctxt "column header" msgid "Changes" msgstr "Changements" msgctxt "column header" msgid "Converted From" msgstr "Converti de" msgctxt "column header" msgid "Phase" msgstr "Phase" msgctxt "column header" msgid "Filename" msgstr "Nom de fichier" msgid "Searching..." msgstr "Recherche en cours..." #, python-format msgid "filling (%d)" msgstr "remplissage (%d)" msgid "Mercurial User" msgstr "Utilisateur Mercurial" msgid "Repository Registry" msgstr "Registre des dépôts" msgid "Show &Paths" msgstr "Afficher les chemins" msgid "Show S&hort Paths" msgstr "Afficher les c&hemins courts" msgid "&Scan Repositories at Startup" msgstr "Parcourir le&s dépôts au démarrage" msgid "Scan &Remote Repositories" msgstr "Parcou&rir les dépôts distants" msgid "&Refresh Repository List" msgstr "&Rafraîchir la liste des dépôts" msgid "Refresh the Repository Registry list" msgstr "Rafraîchir la liste du registre des dépôts" msgid "&Open" msgstr "&Ouvrir" msgid "Open the repository in a new tab" msgstr "Ouvrir le dépôt dans un nouvel onglet" msgid "&Open All" msgstr "Tout &ouvrir" msgid "Open all repositories in new tabs" msgstr "Ouvrir tous les dépôts dans de nouveaux onglets" msgid "New &Group" msgstr "Nouveau &groupe" msgid "Create a new group" msgstr "Créer un nouveau groupe" msgid "Rename the entry" msgstr "Renommer l'entrée" msgid "Settin&gs" msgstr "Paramètres" msgid "View the repository's settings" msgstr "Voir les paramètres du dépôt" msgid "Re&move from Registry" msgstr "Enlever du registre" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" "Enlever le nœud et tous ses sous-nœuds. Les dépôts ne sont pas supprimés du " "disque." msgid "Clon&e..." msgstr "Clon&er..." msgid "Clone Repository" msgstr "Cloner le dépôt" msgid "E&xplore" msgstr "E&xplorer" msgid "Open the repository in a file browser" msgstr "Ouvrir le dépôt dans un navigateur de fichiers" msgid "&Terminal" msgstr "&Terminal" msgid "Open a shell terminal in the repository root" msgstr "Ouvrir un terminal à la racine du dépôt" msgid "&Add Repository..." msgstr "&Ajouter un dépôt..." msgid "Add a repository to this group" msgstr "Ajouter un dépôt à ce groupe" msgid "A&dd Subrepository..." msgstr "Ajouter un sous-&dépôt..." msgid "Convert an existing repository into a subrepository" msgstr "Convertir un dépôt existant en sous-dépôt" msgid "Remo&ve Subrepository..." msgstr "Enle&ver le sous-dépôt..." msgid "Remove this subrepository from the current revision" msgstr "Enlever le sous-dépôt de la révision actuelle" msgid "Copy the root path of the repository to the clipboard" msgstr "Copier le chemin racine du dépôt dans le presse-papier" msgid "Sort by &Name" msgstr "Trier par &nom" msgid "Sort the group by short name" msgstr "Trier le groupe par nom court" msgid "Sort by &Path" msgstr "Trier &par chemin" msgid "Sort the group by full path" msgstr "Trier le groupe par nom complet" msgid "&Sort by .hgsub" msgstr "Trier par .hg&sub" msgid "Order the subrepos as in .hgsub" msgstr "Classer les sous-dépôts comme dans .hgsub" msgid "Select repository directory to add" msgstr "Sélectionner un dépôt à ajouter" msgid "Select an existing repository to add as a subrepo" msgstr "Sélectionner un dépôt existant à ajouter comme sous-dépôt" msgid "Cannot add subrepository" msgstr "Impossible d'ajouter le sous-dépôt" #, python-format msgid "%s is not a valid repository" msgstr "%s n'est pas un dépôt valide" #, python-format msgid "\"%s\" is not a folder" msgstr "\"%s\" n'est pas un dossier" msgid "A repository cannot be added as a subrepo of itself" msgstr "Un dépôt ne peut pas être ajouté comme sous-dépôt de lui-même" #, python-format msgid "" "The selected folder:

                                            %s

                                            is not inside the target repository." "

                                            This may be allowed but is greatly discouraged.
                                            If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" "Le dossier sélectionné :
                                            %s

                                            n'est pas dans le dépôt cible." "

                                            Ceci est autorisé mais fortement découragé.
                                            Si vous voulez " "ajouter une organisation de sous-dépôt compliquée, vous devez éditer " "manuellement le fichier .hgsub." msgid "Cannot open repository" msgstr "Ne peut pas ouvrir le dépôt" #, python-format msgid "The selected repository:

                                            %s

                                            cannot be open!" msgstr "Le dépôt sélectionné :
                                            %s

                                            ne peut pas être ouvert !" msgid "Subrepository already exists" msgstr "Le sous-dépôt existe déjà" #, python-format msgid "" "The selected repository:

                                            %s

                                            is already a subrepository of:" "

                                            %s

                                            as: \"%s\"" msgstr "" "Le dépôt sélectionné :

                                            %s

                                            est déjà un sous-dépôt de :

                                            " "%s

                                            comme : \"%s\"" msgid "Failed to add subrepository" msgstr "Impossible d'ajouter le sous-dépôt" #, python-format msgid "Cannot open the .hgsub file in:

                                            %s" msgstr "Ne peut pas ouvrir le fichier .hgsub dans :

                                            %s" msgid "Failed to add repository" msgstr "Impossible d'ajouter le dépôt" #, python-format msgid "The .hgsub file already contains the line:

                                            %s" msgstr "Le fichier .hgsub contient déjà la ligne :

                                            %s" msgid "Subrepo added to .hgsub file" msgstr "Sous-dépôt ajouté au fichier .hgsub" #, python-format msgid "" "The selected subrepo:

                                            %s

                                            has been added to the .hgsub " "file of the repository:

                                            %s

                                            Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" "Le sous-dépôt sélectionné :

                                            %s

                                            a été ajouté au fichier ." "hgsub du dépôt :

                                            %s

                                            Rappelez-vous que pour finir " "d'ajouter le sous-dépôt vous devez aussi \"committer\" les " "changements du fichier .hgsub pour confirmer l'ajout du sous-dépôt." #, python-format msgid "Cannot update the .hgsub file in:

                                            %s" msgstr "Ne peut pas mettre à jour le fichier .hgsub dans :

                                            %s" msgid "Could not open .hgsub file" msgstr "Ne peut pas ouvrir le fichier .hgsub" msgid "Cannot read the .hgsub file.

                                            Subrepository removal failed." msgstr "" "Ne peut pas lire le fichier .hgsub.

                                            La suppression du sous-dépôt a échoué." msgid "Subrepository not found" msgstr "Sous-dépôt non trouvé" msgid "" "The selected subrepository was not found on the .hgsub file.

                                            Perhaps it " "has already been removed?" msgstr "" "Le sous-dépôt sélectionné n'a pas été trouvé dans le fichier .hgsub.

                                            Peut-" "être a-t-il déjà été enlevé ?" msgid "&Yes" msgstr "&Oui" msgid "&No" msgstr "&Non" msgid "Remove the selected repository?" msgstr "Enlever le sous-dépôt sélectionné ?" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" "Voulez-vous vraiment enlever le dépôt \"%s\" de son dépôt parent \"" "%s\"" msgid "Subrepository removed from .hgsub" msgstr "Sous-dépôt enlevé de .hgsub" msgid "" "The selected subrepository has been removed from the .hgsub file.

                                            Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" "Le sous-dépôt sélectionné a été enlevé du fichier .hgsub.

                                            Penser que vous " "devez committer la modification de .hgsub pour terminer la suppression du " "sous-dépôt !" msgid "Could not update .hgsub file" msgstr "Ne peut pas mettre à jour le fichier .hgsub" msgid "Cannot update the .hgsub file.

                                            Subrepository removal failed." msgstr "" "Ne peut pas mettre à jour le fichier .hgsub.

                                            La suppression du sous-dépôt " "a échoué." #, python-format msgid "Unsupported repository type (%s)" msgstr "Type de dépôt non pris en charge (%s)" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "Impossible d'ouvrir des dépôts ou des sous-dépôts non Mercurial" msgid "New Group" msgstr "Nouveau groupe" msgid "Confirm Delete" msgstr "Confirmer la suppression" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "Supprimer le groupe '%s' et toutes ses entrées ?" msgid "Could not get subrepository list" msgstr "Ne peut pas obtenir la liste de sous-dépôts" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

                                            %s" msgstr "" "Il n'est pas possible d'obtenir la liste de sous-dépôts pour le dépôt dans :" "

                                            %s" msgid "Could not open some subrepositories" msgstr "Ne peut pas ouvrir certains sous-dépôts" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

                                            %s

                                            The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

                                            %s" msgstr "" "Il n'est pas possible de charger complètement la liste de sous-dépôts pour " "le dépôt dans :

                                            %s

                                            Les sous-dépôts suivants peuvent " "être manquants, cassés ou dans un état inconsistant et ne peuvent pas être " "atteints :

                                            %s" msgid "Updating repository registry" msgstr "Mise à jour du registre des dépôts" #, python-format msgid "Loading repository %s" msgstr "Chargement du dépôt %s" msgid "Repository Registry updated" msgstr "Registre des dépôts mis à jour" msgid "Close tab" msgstr "Fermer l'onglet" msgid "Close other tabs" msgstr "Fermer les autres onglets" msgid "Undo close tab" msgstr "Annuler la fermeture d'onglet" msgid "Reopen last closed tab" msgstr "Réouvrir le dernier onglet fermé" msgid "Undo close other tabs" msgstr "Annuler la fermeture des autres onglets" msgid "Reopen last closed tab group" msgstr "Réouvrir le dernier groupe d'onglets fermé" msgid "Failed to open repository" msgstr "Impossible d'ouvrir le dépôt" msgid "&Sort" msgstr "Trier" #, python-format msgid "Local Repository %s" msgstr "Dépôt local %s" #, python-format msgid "" "An exception happened while loading the subrepos of:

                                            \"%s\"

                                            " msgstr "" "Une exception s'est produite lors du chargement du sous-dépôt de :

                                            " "\"%s\"

                                            " #, python-format msgid "The exception error message was:

                                            %s

                                            " msgstr "Le message d'erreur de l'exception était :

                                            %s

                                            " msgid "Click OK to continue or Abort to exit." msgstr "Cliquer sur OK pour continuer ou Abandonner pour sortir." msgid "Error loading subrepos" msgstr "Erreur lors du chargement du sous-dépôt" msgid "Unable to update repository name" msgstr "Impossible de mettre à jour le nom du dépôt" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "" "Une erreur s'est produite en mettant à jour le fichier hgrc du dépôt (%s)" msgid "default" msgstr "par défaut" msgid "C&hoose Log Columns..." msgstr "C&hoisir les colonnes de log..." msgid "&Resize Columns" msgstr "&Redimensionner les colonnes" #, python-format msgid "Goto ancestor of %s and %s" msgstr "Aller à l'ancêtre de %s et %s" #, python-format msgid "Can't find revision '%s'" msgstr "Impossible de trouver la révision '%s'" msgid "Drag to change order" msgstr "Glisser pour changer l'ordre" msgid "Workbench Log Columns" msgstr "Colonnes de log du Workbench" msgctxt "tab tooltip" msgid "Revision details" msgstr "Détails de révision" msgctxt "tab tooltip" msgid "Commit" msgstr "Commit" msgctxt "tab tooltip" msgid "Search" msgstr "Rechercher" msgctxt "tab tooltip" msgid "Console log" msgstr "Console" msgctxt "tab tooltip" msgid "Synchronize" msgstr "Synchroniser" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "Branche de patch" #, python-format msgid "%s " msgstr "%s " #, python-format msgid "Found %d incoming changesets" msgstr "%d révisions entrantes trouvées" msgid "Pull" msgstr "Récupérer" msgid "Pull incoming changesets into your repository" msgstr "Tirer les révisions entrantes dans votre dépôt" msgid "Reject incoming changesets" msgstr "Rejeter les révisions entrantes" #, python-format msgid "Push current branch (%s)" msgstr "Pousser la branche actuelle (%s)" #, python-format msgid "Push up to current revision (#%d)" msgstr "Pousser jusqu'à la révision actuelle (#%d)" #, python-format msgid "Push up to revision #%d" msgstr "Pousser jusqu'à la révision #%d" msgid "Push all" msgstr "Tout pousser" msgid "no outgoing changesets" msgstr "aucune révision sortante" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "aucune révision sortante dans la branche actuelle (%s) / %d au total" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "" "aucune révision sortante jusqu'à la révision actuelle (#%d) / %d au total" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "aucune révision sortante jusqu'à la révision #%d / %d au total" #, python-format msgid "%d outgoing changesets" msgstr "%d révisions sortantes" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "%d révisions sortantes dans la branche actuelle (%s) / %d au total" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "" "%d révisions sortantes jusqu'à la révision actuelle (#%d) / %d au total" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "%d révisions sortantes jusqu'à la révision #%d / %d au total" msgid "Nothing to push" msgstr "Rien à pousser" msgid "No revision found" msgstr "Aucune révision trouvée" #, python-format msgid "%s - verify repository" msgstr "%s - vérifier le dépôt" #, python-format msgid "%s - recover repository" msgstr "%s - récupérer le dépôt" msgid "No transaction available" msgstr "Aucune transaction disponible" msgid "There is no rollback transaction available" msgstr "Il n'y a pas de transaction de rollback disponible" msgid "Undo last commit?" msgstr "Défaire le dernier commit ?" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "" "Défaire le commit le plus récent (%d) en gardant les modifications de " "fichier ?" msgid "Undo last transaction?" msgstr "Défaire la dernière transaction ?" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "Revenir à la révision %d (défaire %s) ?" msgid "Unable to determine working copy revision\n" msgstr "Impossible de déterminer la révision de la copie de travail\n" msgid "Remove current working revision?" msgstr "Supprimer la revision de travail actuelle ?" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" "Votre révision de travail actuelle (%d) sera supprimée par cette annulation " "laissant des changements non committés.\n" " Continuer ?" msgid "Tab cannot exit" msgstr "L'onglet ne peut pas fermer" msgid "Pus&h" msgstr "Pousser" msgid "Push to &Here" msgstr "Pousser jusqu'ici" msgid "Push Selected &Branch" msgstr "Pousser la branche sélectionnée" msgid "Push &All" msgstr "Tout pousser" msgid "&Update..." msgstr "Mettre à jour..." msgid "Bro&wse at Revision" msgstr "Parcourir à la révision" msgid "&Merge with Local..." msgstr "Fusionner avec la révision locale..." msgid "&Tag..." msgstr "É&tiquette..." msgid "Boo&kmark..." msgstr "Signet..." msgid "Top&ic..." msgstr "Top&ic..." msgid "Sig&n..." msgstr "Sig&ner..." msgid "&Backout..." msgstr "&Backout..." msgid "Revert &All Files..." msgstr "Rét&ablir tous les fichiers..." msgid "Copy &Hash" msgstr "Copier le &hash" msgid "E&xport" msgstr "E&xporter" msgid "E&xport Patch..." msgstr "E&xporter un patch..." msgid "&Email Patch..." msgstr "&Exporter par courriel..." msgid "&Archive..." msgstr "&Archiver..." msgid "&Bundle Rev and Descendants..." msgstr "Faire un paquet de la révision et descendants..." msgid "Change &Phase to" msgstr "Changer la &phase en" msgid "&Graft to Local..." msgstr "&Greffer vers la révision locale..." msgid "Modi&fy History" msgstr "Modi&fier l'historique" msgid "&Unapply Patch" msgstr "Dé-appliquer un patch" msgid "Import to &MQ" msgstr "Importer dans &MQ" msgid "MQ &Options" msgstr "&Options MQ" msgid "&Rebase..." msgstr "&Rebaser..." msgid "&Prune..." msgstr "Élaguer (&prune)..." msgid "&Strip..." msgstr "&Strip... (supprimer des révisions)" msgid "Post to Re&view Board..." msgstr "Poster dans Re&view Board..." msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "Mett&re à jour à distance..." msgid "Write diff file" msgstr "Écrire le fichier diff" msgid "Unable to write diff file" msgstr "Impossible d'écrire le fichier diff" msgid "Unable to compress history" msgstr "Impossible de compresser l'historique" msgid "Selected changeset pair not related" msgstr "Les révisions sélectionnées ne sont pas liées" msgid "Visual Diff..." msgstr "Diff visuel..." msgid "Export Diff..." msgstr "Exporter le fichier diff..." msgid "Export Selected..." msgstr "Exporter la sélection..." msgid "Email Selected..." msgstr "Envoyer par courriel la sélection..." msgid "Copy Selected as Patch" msgstr "Copier la sélection comme patch" msgid "Archive DAG Range..." msgstr "Archive la plage de DAG..." msgid "Export DAG Range..." msgstr "Exporter la plage de DAG..." msgid "Email DAG Range..." msgstr "Envoyer par courriel la plage de DAG..." msgid "Bundle DAG Range..." msgstr "Faire un paquet d'une plage de DAG" msgid "Bisect - Good, Bad..." msgstr "Bisect - Bon, mauvais..." msgid "Bisect - Bad, Good..." msgstr "Bisect - Mauvais, bon..." msgid "Compress History..." msgstr "Compresser l'historique..." msgid "Rebase..." msgstr "Rebaser..." msgid "Goto common ancestor" msgstr "Aller à l'ancêtre commun" msgid "Graft Selected to local..." msgstr "Greffer la sélection vers la révision locale..." msgid "&Prune Selected..." msgstr "Élaguer la sélection (prune)..." msgid "Post Selected to Review Board..." msgstr "Poster la sélection dans Review Board..." msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "Appliquer un patch" msgid "Apply onto original parent" msgstr "Appliquer sur le parent original" msgid "Apply only this patch" msgstr "Appliquer seulement ce patch" msgid "Fold patches..." msgstr "Incorporer des patches..." msgid "Delete patches..." msgstr "Supprimer des patches..." msgid "Rename patch..." msgstr "Renommer le patch..." msgid "Pull to here..." msgstr "Tirer jusqu'ici" msgid "Visual diff..." msgstr "Diff visuel..." msgid "Export patch" msgstr "Exporter le patch" msgid "Patch Files (*.patch)" msgstr "Fichiers patch (*.patch)" msgid "Cannot export revision" msgstr "Ne peut pas exporter la révision" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" "Ne peut pas exporter la révision %s dans le fichier :\n" "\n" "%s\n" msgid "There is already an existing folder with that same name." msgstr "Il y a déjà un dossier avec le même nom." msgid "Replace" msgstr "Remplacer" msgid "Append" msgstr "Ajouter" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" "Il y a des fichiers patch existants pour %d révisions (%s) à l'endroit " "sélectionné (%s).\n" "\n" msgid "What do you want to do?\n" msgstr "Que voulez-vous faire ?\n" msgid "Replace the existing patch files.\n" msgstr "Remplacer les fichiers patch existants.\n" msgid "Append the changes to the existing patch files.\n" msgstr "Ajouter les changements aux fichiers patch existants.\n" msgid "Abort the export operation.\n" msgstr "Abandonner l'opération d'exportation.\n" msgid "Patch files already exist" msgstr "Les fichiers patch existent déjà" msgid "Patch exported" msgstr "Patch exporté" #, python-format msgid "" "Revision #%d (%s) was exported to:

                                            %s%s%s" msgstr "" "La révision #%d (%s) a été exportée :

                                            %s%s%s" msgid "Patches exported" msgstr "Patches exportés" #, python-format msgid "%d patches were exported to:

                                            %s" msgstr "%d patches ont été exportés vers :

                                            %s" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

                                            Are you sure you want to use revert?

                                            (use " "update to checkout another revision)" msgstr "" "Rétablir tous les fichiers annulera tous les changements et laissera les " "fichiers concernés dans un état modifié.

                                            Êtes-vous sûr de vouloir " "rétablir ?

                                            (utiliser la commande Mettre à jour pour obtenir une autre " "révision)" msgid "Filter b&y" msgstr "Filtrer par" msgid "&Ancestors and Descendants" msgstr "&Ancêtres et descendants" msgid "A&uthor" msgstr "A&uteur" msgid "&Branch" msgstr "&Branche" msgid "&More Options..." msgstr "Plus d'options..." msgid "Unable to merge" msgstr "Impossible de fusionner" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "Vous ne pouvez pas fusionner une révision avec elle-même" msgid "Unable to backout" msgstr "Impossible de faire un backout" msgid "Write bundle" msgstr "Écrire un paquet" msgid "Backwards phase change requested" msgstr "Changement de phase à l'envers demandé" msgid "Do you really want to make this revision secret?" msgstr "Voulez-vous vraiment rendre cette révision secrète ?" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" "Transformer une révision \"draft\" en \"secrète\" est " "généralement une opération sûre.\n" "\n" "Toutefois, voici quelques mises en garde :\n" "\n" "- les révisions \"secrètes\" ne sont pas poussées. Ceci peut causer des " "ennuis\n" "si vous faites référence à une révision secrète d'un sous-dépôt.\n" "\n" "- si vous tirez cette révision d'un serveur non publiant, elle peut " "redevenir\n" "\"draft\" si vous tirez de nouveau de ce serveur particulier.\n" "\n" "Soyez prudent !" msgid "&Make secret" msgstr "Rendre secret" msgid "&Cancel" msgstr "&Annuler" msgid "Do you really want to force a backwards phase transition?" msgstr "" "Voulez-vous vraiment forcer une transition de phase à l'envers ?" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" "Vous essayez de déplacer la phase de la révision %d à l'envers,\n" "de \"%s\" vers \"%s\".\n" "\n" "Pourtant, \"%s\" est un niveau de phase inférieur à \"%s\".\n" "\n" "Déplacer une phase à l'envers n'est pas recommandé.\n" "Par exemple, cela peut avoir pour résultat d'avoir plusieurs\n" "têtes si vous modifiez une révision que vous avez déjà poussée\n" "vers un serveur.\n" "\n" "Soyez prudent !" msgid "&Force" msgstr "&Forcer" msgid "Cannot import selected revision" msgstr "Ne peut pas importer la révision sélectionnée" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" "La révision sélectionnée (rev #%d) ne peut pas être importée car elle n'est " "pas une descendante de qparent (rev #%d)" msgid "Invalid command" msgstr "Commande invalide" msgid "The selected command is empty" msgstr "La commande sélectionnée est vide" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" "Le message d'erreur suivant a été retourné :\n" "\n" "%s" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" "\n" "\n" "Vérifiez que la commande \"thg\" est valide." msgid "Failed to execute custom TortoiseHg command" msgstr "Impossible d'exécuter la commande TortoiseHg personnalisée" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "La commande \"%s\" a échoué (code %d)." msgid "Failed to execute custom command" msgstr "Impossible d'exécuter la commande personnalisée" #, python-format msgid "The command \"%s\" could not be executed." msgstr "La commande \"%s\" ne peut pas être exécutée." #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" "Le message d'erreur suivant a été retourné :\n" "\n" "\"%s\"\n" "\n" "Veuillez vérifier que le chemin de la commande est valide et que c'est une " "application valide." msgid "&Edit Toolbar" msgstr "Barr&e d'outils d'édition" msgid "&Refresh" msgstr "&Rafraîchir" msgid "&Filter Toolbar" msgstr "Barre d'outils de &filtre" #, python-format msgid "TortoiseHg: %s" msgstr "TortoiseHg : %s" msgid "S&tatus Bar" msgstr "Barre de s&tatut" #, python-format msgid "Resolve Conflicts - %s" msgstr "Résoudre les conflits - %s" msgid "Local revision information" msgstr "Révision locale" msgid "Other revision information" msgstr "Autre révision" msgid "Unresolved conflicts" msgstr "Conflits non résolus" msgid "Mercurial Re&solve" msgstr "Ré&soudre par Mercurial" msgid "Attempt automatic (trivial) merge" msgstr "Tenter la fusion automatique" msgid "Tool &Resolve" msgstr "&Résoudre par l'outil" msgid "Merge using selected merge tool" msgstr "Fusionner en utilisant l'outil sélectionné" msgid "&Take Local" msgstr "Prendre la révision locale" msgid "Accept the local file version (yours)" msgstr "Accepter la version locale du fichier (la vôtre)" msgid "Take &Other" msgstr "Prendre l'autre révision" msgid "Accept the other file version (theirs)" msgstr "Accepter l'autre version du fichier (la leur)" msgid "&Mark as Resolved" msgstr "&Marquer comme résolu" msgid "Mark this file as resolved" msgstr "Marquer ce fichier comme résolu" msgid "Diff &Local to Ancestor" msgstr "Diff entre la révision &locale et l'ancêtre" msgid "&Diff Other to Ancestor" msgstr "Diff entre l'autre révision et l'ancêtre" msgid "Resolved conflicts" msgstr "Conflits résolus" msgid "&Edit File" msgstr "Édit&er le fichier" msgid "Edit resolved file" msgstr "Éditer le fichier résolu" msgid "3-&Way Diff" msgstr "Diff 3 voies" msgid "Visual three-way diff" msgstr "Diff visuel 3 voies" msgid "Visual diff between resolved file and first parent" msgstr "Diff visuel entre le fichier résolu et le premier parent" msgid "&Diff to Other" msgstr "&Diff avec l'autre version" msgid "Visual diff between resolved file and second parent" msgstr "Diff visuel entre le fichier résolu et le second parent" msgid "Mark as &Unresolved" msgstr "Marq&uer comme non résolu" msgid "Mark this file as unresolved" msgstr "Marquer ce fichier comme non résolu" msgid "Detected merge/diff tools:" msgstr "Outils de fusion/diff détectés :" msgid "Command output" msgstr "Sortie de la commande" msgid "Unable to show subrepository files" msgstr "Impossible d'affichier les fichiers des sous-dépôts" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" "Les diffs visuels ne sont pas pris en charge pour les fichiers des sous-" "dépôts. Ils ne seront pas affichés." msgid "There are merge conflicts to be resolved" msgstr "Il y a des conflits de fusion à résoudre" msgid "All conflicts are resolved." msgstr "Tous les conflits sont résolus." msgid "There are no conflicting file merges." msgstr "Il n'y a pas de conflits de fusion." msgid "Exit without finishing resolve?" msgstr "Quitter sans finir les résolutions ?" msgid "Unresolved conflicts remain. Are you sure?" msgstr "Conflits non résolus restants. Êtes-vous sûr ?" msgid "E&xit" msgstr "Quitter" msgid "Ext" msgstr "Ext" msgid "Repository" msgstr "Dépôt" msgid "" msgstr "" msgid "File List Toolbar" msgstr "Barre d'outils de liste de fichiers" msgid "Ma&nifest Mode" msgstr "Mode ma&nifeste" msgid "Show all version-controlled files in tree view" msgstr "Afficher tous les fichiers versionnés dans la vue en arbre" msgid "&Flat List" msgstr "Vue à plat" msgid "### filter text ###" msgstr "### texte du filtre ###" msgid "Changed by &This Commit" msgstr "Changés par ce commit" msgid "Show files changed by this commit" msgstr "Afficher les fichiers modifiés dans ce commit" msgid "Compare to &1st Parent" msgstr "Comparé au &1er parent" msgid "Compare to &2nd Parent" msgstr "Comparé au &2e parent" msgid "Toggle parent to be used as the base revision" msgstr "Alterner entre les parents comme révision de base" msgid "List Optio&ns" msgstr "Liste d'options" #, python-format msgid "%s - Revision Details (%s)" msgstr "%s - Détails de révision (%s)" #, python-format msgid "Revert - %s" msgstr "Rétablir - %s" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "Rétablir %s au contenu de la révision suivante ?" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "Rétablir %d fichiers à leur contenu de la révision suivante ?" msgid "Revert all files to this revision" msgstr "Rétablir tous les fichiers à cette révision" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "premier parent de la révision %d (c'est-à-dire révision %d)" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "second parent de la révision %d (c'est-à-dire révision %d)" msgid "null revision (i.e. remove file(s))" msgstr "révision nulle (c'est-à-dire supprimer le(s) fichier(s))" msgid "Changeset:" msgstr "Révision :" msgid "Child:" msgstr "Enfant :" msgid "Predecessors:" msgstr "Prédécesseurs :" msgid "Successors:" msgstr "Successeurs :" msgid "Head is closed!" msgstr "La tête est fermée !" msgid "Changesets where username contains string." msgstr "Révisions où le nom d'utilisateur contient le texte." msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" "Rechercher un message de commit, un nom d'utilisateur ou des noms de " "fichiers modifiés." msgid "Like \"keyword(string)\" but accepts a regex." msgstr "Comme \"keyword(string)\" mais accepte une expression régulière." msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" "Révisions non trouvées dans le dépôt de destination spécifié ou la " "destination de pousse par défaut." msgid "The named bookmark or all bookmarks." msgstr "Le signet nommé ou tous les signets." msgid "The named tag or all tags." msgstr "L'étiquette nommée ou toutes les étiquettes." msgid "Changeset is tagged." msgstr "La révision porte une étiquette." msgid "Changeset is a named branch head." msgstr "La révision est une tête de branche nommée." msgid "Changeset is a merge changeset." msgstr "La révision est une révision de fusion." msgid "Changeset is closed." msgstr "La révision est fermée." msgid "" "Changesets within the interval, see help dates" msgstr "" "Révisions dans l'intervalle, voir help dates" msgid "Greatest common ancestor of the two changesets." msgstr "L'ancêtre commun le plus récent des deux révisions." msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" "Trouver les révisions qui correspondent à un ou plusieurs champs d'un " "ensemble donné de révisions." msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" "Révisions touchant les fichiers correspondants au motif. Voir help patterns" msgid "Changesets which modify files matched by pattern." msgstr "Révisions modifiant les fichiers correspondants au motif." msgid "Changesets which add files matched by pattern." msgstr "Révisions ajoutant les fichiers correspondants au motif." msgid "Changesets which remove files matched by pattern." msgstr "Révisions enlevant les fichiers correspondants au motif." msgid "Changesets containing files matched by pattern." msgstr "Révisions contenant les fichiers correspondants au motif." msgid "All changesets belonging to the branches of changesets in set." msgstr "" "Toutes les révisions appartenant aux branches des révisions dans l'ensemble." msgid "Members of a set with no children in set." msgstr "Membres d'un ensemble avec aucun enfant dans l'ensemble." msgid "Changesets which are descendants of changesets in set." msgstr "Révisions qui sont les descendants de révisions dans l'ensemble." msgid "Changesets that are ancestors of a changeset in set." msgstr "Révisions qui sont des ancêtres d'une révision dans l'ensemble." msgid "Child changesets of changesets in set." msgstr "Révisions qui sont les enfants des révisions dans l'ensemble." msgid "The set of all parents for all changesets in set." msgstr "" "L'ensemble de tous les parents de toutes les révisions dans l'ensemble." msgid "First parent for all changesets in set, or the working directory." msgstr "" "Premier parent de toutes les révisions dans l'ensemble, ou le répertoire de " "travail" msgid "Second parent for all changesets in set, or the working directory." msgstr "" "Second parent de toutes les révisions dans l'ensemble, ou le répertoire de " "travail" msgid "Changesets with no parent changeset in set." msgstr "Révisions avec aucune révision parente dans l'ensemble." msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" "Ensemble vide si aucune révision dans l'ensemble n'est trouvée ; sinon, " "toutes les révisions dans l'ensemble." msgid "Changeset with lowest revision number in set." msgstr "Révision avec le plus petit numéro dans l'ensemble." msgid "Changeset with highest revision number in set." msgstr "Révision avec le plus grand numéro dans l'ensemble." msgid "First n members of a set." msgstr "Les n premiers membres d'un ensemble." msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" "Trier l'ensemble par clé. L'ordre de tri par défaut est ascendant, spécifier " "une clé avec \"-clé\" pour trier dans l'ordre descendant." msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "" "Alias pour \"::.\" (ancêtres du premier parent de la copie de travail)." msgid "All changesets, the same as 0:tip." msgstr "Toutes les révisions, la même chose que 0:tip." msgid "Revision Set Query" msgstr "Requête d'un ensemble de révisions" msgid "all revisions converted from subversion" msgstr "toutes les révisions converties depuis subversion" msgid "changeset which represents converted svn revision" msgstr "révision représentant une révision svn convertie" msgid "Common sets" msgstr "Ensembles courants" msgid "File pattern sets" msgstr "Ensembles de motifs de fichier" msgid "Set Ancestry" msgstr "Ascendance d'ensemble" msgid "Set Logic" msgstr "Logique d'ensemble" msgid "" "help " "revsets" msgstr "" "help " "revsets" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" "\n" "Interruption clavier détectée, abandon.\n" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "impossible de créer un processus pour l'interface graphique :%s\n" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "impossible de lire le fichier \"%s\". Ignoré.\n" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" "thg : la commande '%s' est ambiguë :\n" " %s\n" #, python-format msgid "thg: unknown command '%s'\n" msgstr "thg : command inconnue '%s'\n" #, python-format msgid "thg %s: %s\n" msgstr "thg %s : %s\n" #, python-format msgid "thg: %s\n" msgstr "thg : %s\n" #, python-format msgid "abort: %s!\n" msgstr "abandon : %s !\n" #, python-format msgid "abort: %s\n" msgstr "abandon : %s\n" #, python-format msgid "(%s)\n" msgstr "(%s)\n" msgid "option --config may not be abbreviated!" msgstr "option --config ne peut pas être raccourcie !" msgid "invalid arguments" msgstr "arguments invalides" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "format '%s' de profiling non reconnu - Ignoré\n" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" "lsprof n'est pas disponible - à installer depuis http://codespeak.net/svn/" "user/arigo/hack/misc/lsprof/" msgid "repository root directory or symbolic path name" msgstr "répertoire racine du dépôt ou nom de chemin symbolique" msgid "enable additional output" msgstr "activer la sortie supplémentaire" msgid "suppress output" msgstr "supprimer la sortie" msgid "display help and exit" msgstr "afficher l'aide et quitter" msgid "set/override config option (use 'section.name=value')" msgstr "" "définir/redéfinir l'option de configuration (utiliser 'section.nom=valeur')" msgid "enable debugging output" msgstr "activer la sortie de déboguage" msgid "start debugger" msgstr "démarrer le débogueur" msgid "print command execution profile" msgstr "afficher le profil d'exécution de la commande" msgid "do not fork GUI process" msgstr "ne pas créer de processus pour l'interface graphique" msgid "always fork GUI process" msgstr "toujours créer un processus pour l'interface graphique" msgid "read file list from file" msgstr "lire la liste de fichiers depuis le fichier" msgid "read file list from file encoding utf-8" msgstr "lire la liste de fichiers depuis le fichier encodé en utf-8" msgid "thg about" msgstr "thg about" msgid "thg add [FILE]..." msgstr "thg add [FILE]..." msgid "revision to annotate" msgstr "révision à annoter" msgid "open to line" msgstr "ouvrir à la ligne" msgid "initial search pattern" msgstr "premier motif de recherche" msgid "thg annotate" msgstr "thg annotate" #, python-format msgid "invalid line number: %s" msgstr "numéro de ligne invalide : %s" msgid "revision to archive" msgstr "révision à archiver" msgid "thg archive" msgstr "thg archive" msgid "merge with old dirstate parent after backout" msgstr "fusion avec l'ancien parent du répertoire de travail après backout" msgid "parent to choose when backing out merge" msgstr "parent à choisir lors du back out d'une fusion" msgid "revision to backout" msgstr "backout de la révision" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "thg backout [OPTION]... [[-r] REV]" msgid "thg bisect" msgstr "thg bisect" msgid "revision" msgstr "révision" msgid "thg bookmarks [-r REV] [NAME]" msgstr "thg bookmarks [-r REV] [NAME]" msgid "only one new bookmark name allowed" msgstr "un seul nouveau nom de signet autorisé" msgid "the clone will include an empty working copy (only a repository)" msgstr "le clone aura une copie de travail vide (seulement un dépôt)" msgid "revision, tag or branch to check out" msgstr "révision, étiquette ou branche à obtenir" msgid "include the specified changeset" msgstr "inclure la révision spécifiée" msgid "clone only the specified branch" msgstr "cloner uniquement la branche spécifiée" msgid "use pull protocol to copy metadata" msgstr "utiliser le protocole 'pull' pour copier les métadonnées" msgid "use uncompressed transfer (fast over LAN)" msgstr "utiliser le transfert non compressé (rapide sur réseau local)" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "thg clone [OPTION]... [SOURCE] [DEST]" msgid "record user as committer" msgstr "enregistrer l'utilisateur comme committeur" msgid "record datecode as commit date" msgstr "utiliser la date indiquée comme date de commit" msgid "thg commit [OPTIONS] [FILE]..." msgstr "thg commit [OPTIONS] [FILE]..." msgid "thg debugblockmatcher" msgstr "thg debugblockmatcher" msgid "thg debugbugreport [TEXT]" msgstr "thg debugbugreport [TEXTE]" msgid "thg debugconsole" msgstr "thg debugconsole" msgid "thg debuglighthg" msgstr "thg debuglighthg" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "thg debugruncommand -- COMMANDE [ARGUMENT]..." msgid "no command specified" msgstr "aucune commande spécifiée" msgid "thg drag_copy SOURCE... DEST" msgstr "thg drag_copy SOURCE... DEST" msgid "thg drag_move SOURCE... DEST" msgstr "thg drag_move SOURCE... DEST" msgid "a revision to send" msgstr "une révision à envoyer" msgid "thg email [REVS]" msgstr "thg email [REVS]" msgid "use only one form to specify the revision" msgstr "utiliser une seule forme pour spécifier la révision" msgid "select the specified revision" msgstr "sélectionner la révision spécifiée" msgid "side-by-side comparison of revisions" msgstr "comparaison côte-à-côte de révisions" msgid "thg filelog [OPTION]... FILE" msgstr "thg filelog [OPTION]... FICHIER" msgid "requires a single filename" msgstr "demande un seul nom de fichier" msgid "thg forget [FILE]..." msgstr "thg forget [FILE]..." msgid "revisions to graft" msgstr "révisions à greffer" msgid "thg graft [-r] REV..." msgstr "thg graft [-r] REV..." msgid "You must provide revisions to graft" msgstr "Vous devez fournir des révisions à greffer" msgid "ignore case during search" msgstr "ignorer la casse durant la recherche" msgid "thg grep" msgstr "thg grep" msgid "thg guess" msgstr "thg guess" msgid "thg help [COMMAND]" msgstr "thg help [COMMANDE]" msgid "global options:" msgstr "options globales :" msgid "use \"thg help\" for the full list of commands" msgstr "utiliser \"thg help\" pour la liste complète des commandes" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "" "utiliser \"thg help\" pour la liste complète des commandes ou \"thg -v\" " "pour des détails" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "" "utiliser \"thg -v help%s\" pour montrer les alias et les options globales" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "utiliser \"thg -v help %s\" pour montrer les options globales" msgid "" "list of commands:\n" "\n" msgstr "" "liste des commandes :\n" "\n" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" "\n" "alias : %s\n" msgid "(no help text available)" msgstr "(pas d'aide disponible)" msgid "options:\n" msgstr "options :\n" msgid "no commands defined\n" msgstr "aucune commande définie\n" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "Thg - Outils de l'interface graphique TortoiseHg pour Mercurial (Hg)\n" msgid "" "basic commands:\n" "\n" msgstr "" "commandes de base :\n" "\n" #, python-format msgid " (default: %s)" msgstr " (par défaut : %s)" msgid "thg hgignore [FILE]" msgstr "thg hgignore [FILE]" msgid "import to the patch queue (MQ)" msgstr "importer dans la queue de patch (MQ)" msgid "thg import [OPTION] [SOURCE]..." msgstr "thg import [OPTION] [SOURCE]..." msgid "thg init [DEST]" msgstr "thg init [DEST]" msgid "thg lock" msgstr "thg lock" msgid "search for a given text or revset" msgstr "recherche d'un texte donné ou d'un ensemble de révisions" msgid "(DEPRECATED)" msgstr "(OBSOLÈTE)" msgid "open a new workbench window" msgstr "ouvrir une nouvelle fenêtre workbench" msgid "thg log [OPTIONS] [FILE]" msgstr "thg log [OPTIONS] [FILE]" msgid "cannot specify both -k/--query and filenames" msgstr "ne peut pas spécifier à la fois -k/--query et des noms de fichiers" msgid "revision to display" msgstr "révision à afficher" msgid "thg manifest [-r REV] [FILE]" msgstr "thg manifest [-r REV] [FILE]" msgid "revision to merge" msgstr "révision à fusionner" msgid "thg merge [[-r] REV]" msgstr "thg merge [[-r] REV]" msgid "Merge revision not specified or not found" msgstr "Révision de fusion non spécifiée ou non trouvée" msgid "a revision to post" msgstr "une révision à poster" msgid "thg postreview [-r] REV..." msgstr "thg postreview [-r] REV..." msgid "reviewboard extension not enabled" msgstr "extension reviewboard pas activée" #, python-format msgid "see %(url)s" msgstr "voir %(url)s" msgid "no revisions specified" msgstr "aucune révision spécifiée" msgid "revisions to prune" msgstr "révisions à élaguer" msgid "thg prune [-r] REV..." msgstr "thg prune [-r] REV..." msgid "thg purge" msgstr "thg purge" msgid "keep original changesets" msgstr "garder les révisions d'origine" msgid "keep original branch names" msgstr "garder les nom de branches originaux" msgid "rebase from the specified changeset" msgstr "rebase depuis la révision spécifiée" msgid "rebase onto the specified changeset" msgstr "rebase vers la révision spécifiée" msgid "thg rebase -s REV -d REV [--keep]" msgstr "thg rebase -s REV -d REV [--keep]" msgid "Rebase already in progress" msgstr "\"Rebase\" déjà en cours" msgid "Resuming rebase already in progress" msgstr "Reprise du \"rebase\" déjà en cours" msgid "You must provide source and dest arguments" msgstr "Vous devez fournir une source et une destination" msgid "thg rejects [FILE]" msgstr "thg rejects [FILE]" msgid "You must provide the path to a file" msgstr "Vous devez donner le chemin vers un fichier" msgid "thg remove [FILE]..." msgstr "thg remove [FILE]..." msgid "thg rename [SOURCE] [DEST]" msgstr "thg rename [SOURCE] [DEST]" msgid "field to give initial focus" msgstr "champ prenant la saisie initiale" msgid "thg repoconfig" msgstr "thg repoconfig" msgid "thg resolve" msgstr "thg resolve" msgid "the revision to show" msgstr "la révision à afficher" msgid "thg revdetails [-r REV]" msgstr "thg revdetails [-r REV]" msgid "thg revert [FILE]..." msgstr "thg revert [FILE]..." msgid "revision to update" msgstr "révision à mettre à jour" msgid "thg rupdate [[-r] REV]" msgstr "thg rupdate [[-r] REV]" msgid "name of the hgweb config file (serve more than one repository)" msgstr "" "nom du fichier de configuration pour hgweb (pour servir plus d'un dépôt)" msgid "name of the hgweb config file (DEPRECATED)" msgstr "nom du fichier de configuration pour hgweb (obsolète)" msgid "thg serve [--web-conf FILE]" msgstr "thg serve [--web-conf FILE]" msgid "thg shellconfig" msgstr "thg shellconfig" msgid "thg shelve" msgstr "thg shelve" msgid "sign even if the sigfile is modified" msgstr "signer même si le fichier signature est modifié" msgid "make the signature local" msgstr "rendre la signature locale" msgid "the key id to sign with" msgstr "l'identifiant de clé pour signer" msgid "do not commit the sigfile after signing" msgstr "ne pas committer le fichier signature après avoir signé" msgid "use as commit message" msgstr "utiliser comme message de commit" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgid "Please enable the Gpg extension first." msgstr "Activez d'abord l'extension Gpg." msgid "show files without changes" msgstr "afficher les fichiers sans changements" msgid "show ignored files" msgstr "afficher les fichiers ignorés" msgid "thg status [OPTIONS] [FILE]" msgstr "thg status [OPTIONS] [FILE]" msgid "discard uncommitted changes (no backup)" msgstr "abandonner les changements non committés (pas de sauvegarde)" msgid "do not back up stripped revisions" msgstr "ne pas sauvegarder les révisions supprimées" msgid "do not modify working copy during strip" msgstr "ne pas modifier la copie de travail durant le strip" msgid "revision to strip" msgstr "révision à supprimer" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "thg strip [-k] [-f] [-n] [[-r] REV]" msgid "open the bookmark sync window" msgstr "ouvrir la fenêtre de synchronisation de signet" msgid "thg sync [OPTION]... [PEER]" msgstr "thg sync [OPTION]... [PEER]" msgid "replace existing tag" msgstr "remplacer l'étiquette existante" msgid "make the tag local" msgstr "rendre l'étiquette locale" msgid "revision to tag" msgstr "révision à étiqueter" msgid "remove a tag" msgstr "enlever une étiquette" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgid "wait until the second ticks over" msgstr "attendre la prochaine seconde" msgid "notify the shell for paths given" msgstr "notifie l'explorateur pour les chemins fournis" msgid "remove the status cache" msgstr "vider le cache de statut" msgid "show the contents of the status cache (no update)" msgstr "afficher le contenu du cache de statut (sans mise à jour)" msgid "update all repos in current dir" msgstr "mettre à jour tous les dépôts dans le répertoire courant" msgid "thg thgstatus [OPTION]" msgstr "thg thgstatus [OPTION]" msgid "thg topics [-r REV] [NAME]" msgstr "thg topics [-r REV] [NAME]" msgid "Please enable the Topic extension first." msgstr "Activez d'abord l'extension Topic." msgid "only one new topic name allowed" msgstr "un seul nouveau nom de topic autorisé" msgid "thg update [-C] [[-r] REV]" msgstr "thg update [-C] [[-r] REV]" msgid "thg userconfig" msgstr "thg userconfig" msgid "changeset to view in diff tool" msgstr "révision à afficher dans l'outil de diff" msgid "revisions to view in diff tool" msgstr "révisions à afficher dans l'outil de diff" msgid "bundle file to preview" msgstr "fichier paquet à prévisualiser" msgid "launch visual diff tool" msgstr "lancer l'outil de diff visuel" msgid "print license" msgstr "afficher la licence d'utilisation" msgid "thg version [OPTION]" msgstr "thg version [OPTION]" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "Interface TortoiseHg (version %s), Mercurial (version %s)\n" msgid "Location:" msgstr "Emplacement :" msgid "Update to:" msgstr "Mettre à jour vers :" msgid "Options:" msgstr "Options :" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "Abandonner les changements distants, pas de sauvegarde (-C/--clean)" msgid "Perform a push before updating (-p/--push)" msgstr "Pousser avant de mettre à jour (-p/--push)" msgid "Allow pushing new branches (--new-branch)" msgstr "Autoriser de pousser de nouvelles branches (--new-branch)" msgid "Force push to remote location (-f/--force)" msgstr "Forcer de pousser vers un distant (-f/--force)" msgid "remove working directory" msgstr "supprimer le répertoire de travail" msgid "unknown revision!" msgstr "révision inconnue !" #, python-format msgid "Remote Update - %s" msgstr "Mise à jour distante - %s" msgid "&Update" msgstr "Mettre à jour" msgid "Log" msgstr "Journal" msgid "Repositories" msgstr "Dépôts" #, python-format msgid "Running at %s" msgstr "En cours d'exécution à %s" msgid "Stopped" msgstr "Arrêté" msgid "TortoiseHg Web Server" msgstr "Serveur Web TortoiseHg" msgid "Web Server" msgstr "Serveur Web" msgid "Port:" msgstr "Port :" msgid "Status:" msgstr "État :" msgid "Start" msgstr "Démarrer" msgid "Settings" msgstr "Paramètres" msgid "" msgstr "" msgid "&True" msgstr "Vrai" msgid "&False" msgstr "&Faux" msgid "&Unspecified" msgstr "Non spécifié" #, python-format msgid "%dpt" msgstr "%d pt" msgid "Bold" msgstr "Gras" msgid "Italic" msgstr "Italique" msgid "Strike" msgstr "Barré" msgid "Underline" msgstr "Souligné" msgid "&Set..." msgstr "Définir..." msgid "&Clear" msgstr "Effacer" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "Impossible de charger le suivi de problème : '%s' : %s. " msgid "&Browse..." msgstr "Parcourir..." msgid "UI Language" msgstr "Langue de l'interface" msgid "Specify your preferred user interface language (restart needed)" msgstr "" "Spécifier votre langue préférée pour l'interface (redémarrage nécessaire)" msgid "Three-way Merge Tool" msgstr "Outil de fusion 3 voies" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" "Programme de fusion graphique pour résoudre les conflits de fusion. Si non " "spécifié, Mercurial utilisera le premier outil correct qu'il trouve sur " "votre système ou son outil interne de fusion qui laisse des marqueurs de " "conflits. Choisir internal:merge pour forcer les marqueurs de conflit, " "internal:prompt pour toujours sélectionner local ou autre, ou internal:dump " "pour laisser les fichiers dans le répertoire de travail pour fusion manuelle" msgid "Visual Diff Tool" msgstr "Outil de diff visuel" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" "Spécifier l'outil de diff visuel, comme décrit dans la section [merge-tools] " "de vos fichiers de configuration Mercurial. Si non spécifié, TortoiseHg " "utilisera l'outil de fusion sélectionné. Si cela échoue, il utilise le " "premier outil correct qu'il trouve." msgid "Visual Editor" msgstr "Éditeur visuel" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" "Spécifier l'éditeur graphique comme décrit dans la section [editor-tools] de " "vos fichiers de configuration Mercurial. Si non spécifié, TortoiseHg " "utilisera le premier outil trouvé qui s'applique." msgid "CLI Editor" msgstr "Éditeur en ligne de commande" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" "L'éditeur utilisé par les commandes Mercurial pour récupérer des entrées sur " "plusieurs lignes. Particulièrement, les messages de commit." msgid "Shell" msgstr "Shell" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
                                            Default, Windows: cmd.exe /" "K title %(reponame)s
                                            Default, OS X: not set
                                            Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" "Spécifier la commande pour lancer votre application terminal préférée. Si la " "valeur contient la chaîne %(reponame)s, elle est remplacée par le nom du " "dépôt. De même, %(root)s sera le chemin complet vers le dépôt. (redémarrage " "nécessaire)
                                            Par défaut, Windows : cmd.exe /K title %(reponame)s
                                            Par " "défaut, OS X : non défini
                                            Par défaut, autres plateformes : xterm -T " "\"%(reponame)s\"" msgid "Immediate Operations" msgstr "Opérations immédiates" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" "Liste séparée par des espaces de commandes que vous souhaitez voir exécutées " "immédiatement, sans interaction utilisateur. Les commandes sont \"add remove " "revert forget\". Par défaut : Aucune (laisser vide)" msgid "Tab Width" msgstr "Largeur des tabulations" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" "Spécifier le nombre d'espaces remplaçant une tabulation dans différentes " "fenêtres de TortoiseHg. Par défaut :8" msgid "Force Repo Tab" msgstr "Forcer les onglets de dépôts" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "" "Toujours afficher les onglets de dépôts, même pour un seul dépôt. Par " "défaut : Faux" msgid "Monitor Repo Changes" msgstr "Surveiller les changements du dépôt" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" "Spécifier les systèmes de fichiers dans lesquels TortoiseHg surveille les " "modifications. : always (toujours), localonly (local uniquement à " "l'exclusion des disques sur le réseau), never (jamais). Par défaut : " "localonly" msgid "Max Diff Size" msgstr "Taille max de diff" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" "La taille maximum du fichier (en KB) dont TortoiseHg affichera les " "changements dans les fenêtres de changelog, de statut et de commit. Une " "valeur de zéro signifie aucune limite. Par défaut : 1024 (1 MB)" msgid "Fork GUI" msgstr "Créer un processus pour l'interface graphique" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" "Quand lancé depuis la ligne de commande, créer un processus d'arrière-plan " "pour les dialogues graphiques. Cette préférence est ignorée quand TortoiseHg " "est une application OS X. Par défaut : True" msgid "Full Path Title" msgstr "Chemin complet dans le titre" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" "Afficher le chemin complet du dépôt dans le titre du dialogue au lieu du nom " "du répertoire racine. Par défaut : Faux" msgid "Auto-resolve merges" msgstr "Résoudre automatiquement les fusions" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" "Indique si TortoiseHg doit tenter de résoudre automatiquement les " "changements des deux côtés pour un même fichier et uniquement indiquer les " "conflits de fusion quand ce n'est pas possible. Quand Faux, tous les " "fichiers avec des changements des deux côtés de la fusion seront indiqués en " "conflit même si les modifications sont à des endroits différents du fichier. " "Dans les deux cas, quand un conflit se produit, l'utilisateur sera invité à " "revoir et à résoudre les changements manuellement. Par défaut : Vrai." msgid "New Repo Skeleton" msgstr "Squelette de nouveau dépôt" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" "Si spécifié, les fichiers du répertoire, par exemple .hgignore, sont copiés " "vers le dépôt nouvellement créé." msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "Workbench" msgid "Single Workbench Window" msgstr "Fenêtre unique de Workbench" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" "Sélectionne si vous voulez avoir une seule fenêtre Workbench. Si vous " "désactivez cette préférence, vous aurez une nouvelle fenêtre Workbench " "chaque fois que vous utilisez la commande \"Hg Workbench\" dans le menu " "contextuel de l'explorateur. Par défaut : Vrai" msgid "Default widget" msgstr "Widget par défaut" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" "Sélectionner le widget initial qui sera affiché à l'ouverture d'un dépôt. " "Par défaut : revdetails" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" "Sélectionner la révision qui sera sélectionnée à l'ouverture d'un dépôt. " "Vous pouvez sélectionner \"current\" (le parent du répertoire de travail), " "le \"tip\" actuel or le répertoire de travail (\"workingdir\"). Par défaut : " "current" msgid "" "Open new tabs next\n" "to the current tab" msgstr "" "Ouvrir les nouveaux onglets\n" "à côté de l'actuel" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" "Ouvrir les nouveaux onglets à côté de l'onglet actuel ? Si Faux les nouveaux " "onglets s'ouvriront après le dernier. Par défaut : Vrai" msgid "Author Coloring" msgstr "Coloriage par auteur" msgid "Color changesets by author name. Default: False" msgstr "Colorier les révisions par auteur. Par défaut : Faux" msgid "Full Authorname" msgstr "Nom d'auteur complet" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" "Afficher le nom d'auteur complet dans la vue des révisions. Si non activé, " "une partie raccourcie, habituellement le nom d'utilisateur sans adresse " "électronique, sera affichée. Par défaut : Faux" msgid "Task Tabs" msgstr "Onglets de tâche" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" "Afficher les onglets sur le côté de la moitié inférieure de chaque widget de " "dépôt permettant de changer d'onglet de tâche sans utiliser la barre " "d'outils. Par défaut : off" msgid "Task Toolbar Order" msgstr "Ordre de la barre d'outils de tâches" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
                                            Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
                                            Valid names are: log commit sync grep and " "pbranch.
                                            Default: log commit grep pbranch | sync" msgstr "" "Spécifier les boutons de tâche que vous voulez afficher sur la barre " "d'outils de tâches ainsi que leur ordre.
                                            Taper une liste de noms de " "bouton de tâche. Ajouter des séparateurs avec \"|\" entre les noms de bouton " "de tâche.
                                            Les noms valides sont : log commit sync grep et pbranch.
                                            Par " "défaut : log commit grep pbranch | sync" msgid "Long Summary" msgstr "Long résumé" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" "Si Vrai, concaténer plusieurs lignes de résumé de révision et les tronquer à " "80 caractères si nécessaire. Par défaut : Faux" msgid "Log Batch Size" msgstr "Taille du lot de log" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "" "Le nombre de révisions à lire et à afficher dans le visualisateur en une " "fois. Par défaut : 500" msgid "Dead Branches" msgstr "Branches mortes" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" "Liste séparée par des virgules de noms de branche qui peuvent être ignorés " "lors de la construction d'une liste de branches pour un dépôt. Par défaut : " "Aucune (laisser vide)" msgid "Branch Colors" msgstr "Couleurs de branches" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" "Liste séparée par des espaces de noms de branches et de couleurs sous la " "forme branche:#XXXXXX. Les espaces et les deux points doivent être échappés " "avec \\. De même quelques autres caractères peuvent être échappés de cette " "manière, par exemple \\u0040 sera décodé en @, et \\n en nouvelle ligne. Par " "défaut : Aucune (laisser vide)" msgid "Hide Tags" msgstr "Cacher les étiquettes" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" "Liste séparée par des espaces d'étiquettes qui ne seront pas affichées. " "Exemple: spécifier \"qbase qparent qtip\" pour cacher les étiquettes " "standards insérées par l'extension MQ. Par défaut : Aucune (laisser vide)" msgid "Activate Bookmarks" msgstr "Activer les signets" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

                                            • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
                                            • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
                                            • never: Never show any prompt to " "activate any bookmarks.

                                            Default: prompt" msgstr "" "Sélectionner quand TortoiseHg affichera une invite à activer un signet lors " "de la mise à jour vers une révision qui a un ou plusieurs signets." "

                                            • auto : Essayer d'activer les signets automatiquement. Lors de " "la mise à jour vers une révision qui a un seul signet, il sera activé " "automatiquement. Afficher une invite si il y a plus d'un signet sur la " "révision vers laquelle la mise à jour se fait.
                                            • prompt : Afficher " "une invite lors de la mise à jour vers une révision qui a un ou plusieurs " "signets.
                                            • never : Ne jamais afficher d'invite pour activer des " "signets.

                                            Par défaut : prompt" msgid "Show Family Line" msgstr "Afficher la ligne de famille" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

                                            Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" "Afficher les dépendances indirectes des révisions sur le graphe filtré par " "ensemble de révisions. Par défaut : Vrai

                                            Note : le calcul des " "lignes de famille peut être lent dans certains cas. Cette option sera " "retirée si le problème de performance est résolu." msgid "Use optimized graph layouter" msgstr "Utiliser l'agencement optimisé de graphe" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

                                            Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" "Utiliser l'agencement optimisé de graphe pour les gros dépôts. Par défaut : " "Faux

                                            Note : Cet agencement colorie les arcs en utilisant les " "informations de branche et n'affiche pas les arcs de greffe, indépendamment " "du fait qu'ils soient demandés ou non." msgctxt "config item" msgid "Commit" msgstr "Commit" msgid "Username" msgstr "Nom d'utilisateur" msgid "" "Name associated with commits. The common format is:
                                            Full Name <" "email@example.com>" msgstr "" "Nom associé aux commits. Le format habituel est :
                                            Nom complet <" "email@example.com>" msgid "Ask Username" msgstr "Demander le nom d'utilisateur" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" "Si aucun nom d'utilisateur n'est spécifié, il lui sera demandé. Par défaut : " "Faux" msgid "Summary Line Length" msgstr "Longueur de la ligne de résumé" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" "Longueur suggérée pour les lignes de message de commit. Une ligne rouge " "verticale indiquera cette longueur. CTRL-E arrangera le paragraphe actuel à " "la longueur indiquée. Valeur par défaut : 80" msgid "Close After Commit" msgstr "Fermer après le commit" msgid "Close the commit tool after every successful commit. Default: False" msgstr "Fermer l'outil de commit après chaque commit réussi. Par défaut : Faux" msgid "Push After Commit" msgstr "Pousser après le commit" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" "Essayer de pousser vers l'URL ou l'alias spécifié après chaque commit " "réussi. Par défaut : ne pas pousser" msgid "Auto Commit List" msgstr "Liste de commit automatique" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" "Liste séparée par des virgules de fichiers qui sont inclus automatiquement " "dans chaque commit. Destiné à être utilisé seulement comme paramètres de " "dépôt. Par défaut : Aucune (laisser vide)" msgid "Auto Exclude List" msgstr "Liste d'exclusion automatique" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" "Liste séparée par des virgules de fichiers qui sont décochés automatiquement " "quand les dialogues de statut et de commit sont ouverts. Par défaut : Aucune " "(laisser vide)" msgid "English Messages" msgstr "Messages en anglais" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" "Créer des messages de commit en anglais même si les variables " "d'environnement LANGUAGE ou LANG sont définies à une autre langue. Ce " "paramètre est utilisé par les dialogues de fusion, d'étiquette et de " "backout. Par défaut : Faux" msgid "New Commit Phase" msgstr "Phase des nouvelles révisions" msgid "The phase of new commits. Default: draft" msgstr "La phase des nouvelles révisions. Par défaut : draft" msgid "Secret MQ Patches" msgstr "Patches MQ secrets" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "Rendre les patches MQ secret (au lieu de draft). Par défaut : Faux" msgid "Check Subrepo Phase" msgstr "Vérifier la phase des sous-dépôts" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" "Vérifier la phase de la révision actuelle de chaque sous-dépôt. Si une autre " "valeur que \"ignore\", la phase de la révision actuelle de chaque sous-dépôt " "est vérifiée avant de committer le dépôt parent. Par défaut : follow" msgid "Monitor working
                                            directory changes" msgstr "Surveiller les changements
                                            du répertoire de travail" msgid "" "Select when the working directory status list will be refreshed:
                                            - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
                                            TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
                                            - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
                                            - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
                                            Default: auto" msgstr "" "Sélectionner quand la liste de statut du répertoire de travail est mise à " "jour :
                                            - auto : [par défaut] permet à TortoiseHg de décider " "quand mettre à jour la liste de statut du répertoire de travail." "
                                            TortoiseHg mettra à jour la liste de statut quand il réalise une action " "pouvant potentiellement modifier le répertoire de travail. Des " "changements arrivant en dehors du contrôle de TortoiseHg pourront être " "manqués ;
                                            - always : en plus du mode automatique ci-dessus, " "met aussi à jour la liste de statut quand l'utilisateur clique sur la " "\"révision répertoire de travail\" ou sur l'icône \"Commit\" de la barre " "d'outil du Workbench ;
                                            - alwayslocal : comme \"always\" " "mais se limite aux dépôts locaux.
                                            Par défaut : auto" msgid "Confirm adding unknown files" msgstr "Confirmer l'ajout de fichiers inconnus" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" "Détermine si TortoiseHg doit afficher un dialogue de confirmation avant " "d'ajouter de nouveaux fichiers lors d'un commit. Si Vrai, un dialogue de " "confirmation sera affiché. Si Faux, les nouveaux fichiers sélectionnés " "seront inclus dans le commit sans dialogue de confirmation. Par défaut : Vrai" msgid "Confirm deleting files" msgstr "Confirmer la suppression de fichiers" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" "Détermine si TortoiseHg doit afficher un dialogue de confirmation avant de " "retirer des fichiers lors d'un commit. Si Vrai, un dialogue de confirmation " "sera affiché. Si Faux, les fichiers retirés sélectionnés seront inclus dans " "le commit sans dialogue de confirmation. Par défaut : Vrai" msgid "Sync" msgstr "Sync" msgid "After Pull Operation" msgstr "Opération après avoir tiré" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" "Opération effectuée directement après un opération de tirage réussie. update " "équivaut à pull --update, fetch équivaut à l'extension fetch, rebase " "équivaut à pull --rebase, updateorrebase équivaut à pull -u --rebase. Par " "défaut : none (aucune)" msgid "Default Push" msgstr "Opération de pousse par défaut" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

                                            • all: The default. Push all changes in all " "branches.
                                            • branch: Push all changes in the current branch.
                                            • revision: Push the changes in the current branch up to the current revision.

                                            Default: all" msgstr "" "Sélectionner les révisions qui seront poussées par défaut, lorsque vous " "cliquez le bouton Pousser.

                                            • all : Par défaut. Pousser tous les " "changements de toutes les branches.
                                            • branch : Pousser tous " "les changements dans la branche actuelle.
                                            • revision : " "Pousser tous les changements dans la branche actuelle jusqu'à la " "révision actuelle

                                            Par défaut : all" msgid "Confirm Push" msgstr "Confirmer l'opération de pousse" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" "Déterminer si TortoiseHg doit afficher un dialogue de confirmation avant de " "pousser des révisions. Si Faux, l'opération de pousse sera réalisée sans " "dialogue de confirmation. Par défaut : Vrai" msgid "Target Combo" msgstr "Combo cible" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

                                            • auto: The default. Show the combo if more than one target " "configured.
                                            • always: Always show the combo.

                                            Default: auto" msgstr "" "Sélectionner si TortoiseHg doit montrer le combo cible dans la barre de " "synchro.

                                            • auto : par défaut. Afficher le combo si plus d'une " "cible configurée.
                                            • always : Toujours afficher le combo.

                                            Par " "défaut : auto" msgid "SSH Command" msgstr "Commande SSH" msgid "" "Command to use for SSH connections.

                                            Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" "Commande à utiliser pour les connexions SSH.

                                            Par défaut : \"ssh\" ou " "\"TortoisePlink.exe -ssh -2\" (Windows)" msgid "Subrepository Features:" msgstr "Options de sous-dépôts :" msgid "Allow Hg Subrepos" msgstr "Autoriser les sous-dépôts Hg" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" "Si les sous-dépôts Mercurial sont autorisés dans le répertoire de travail. " "Par défaut : Vrai" msgid "Allow Git Subrepos" msgstr "Autoriser les sous-dépôts Git" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

                                            See the security note before enabling Git " "subrepos." msgstr "" "Si les sous-dépôts Git sont autorisés dans le répertoire de travail. Par " "défaut : Faux

                                            Voir la note de sécurité avant d'activer " "les sous-dépôts Git." msgid "Allow SVN Subrepos" msgstr "Autoriser les sous-dépôts SVN" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

                                            See the security note before enabling " "Subversion subrepos." msgstr "" "Si les sous-dépôts Git sont autorisés dans le répertoire de travail. Par " "défaut : Faux

                                            Voir la note de sécurité avant d'activer " "les sous-dépôts Subversion." msgid "Server" msgstr "Serveur" msgid "Repository Details:" msgstr "Détails de dépôt :" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" "Nom du dépôt à utiliser dans l'interface web et par TortoiseHg comme nom " "raccourci. Par défaut : nom du répertoire de travail" msgid "Encoding" msgstr "Encodage" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" "Encodage de caractère des fichiers dans le dépôt, utilisé par l'interface " "web et TortoiseHg." msgid "'Publishing' repository" msgstr "Dépôt 'publiant'" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" "Contrôle le comportement de la phase 'draft' quand fonctionne comme un " "serveur. Quand vrai, les révisions poussées deviennent publiques à la fois " "sur le client et sur le serveur, les révisions clonées ou tirées deviennent " "publiques sur le client. Par défaut : Vrai" msgid "Web Server:" msgstr "Serveur Web :" msgid "Textual description of the repository's purpose or contents." msgstr "Description du but ou du contenu du dépôt" msgid "Contact" msgstr "Contact" msgid "Name or email address of the person in charge of the repository." msgstr "Nom ou adresse de la personne responsable du dépôt." msgid "Style" msgstr "Style" msgid "Which template map style to use" msgstr "Style de template à utiliser" msgid "Archive Formats" msgstr "Formats d'archive" msgid "Comma separated list of archive formats allowed for downloading" msgstr "" "Liste séparée par des virgules des formats d'archive autorisés pour le " "téléchargement" msgid "Port" msgstr "Port" msgid "Port to listen on" msgstr "Port à écouter" msgid "Push Requires SSL" msgstr "SSL requis pour pousser" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" "Si requis que les opérations de pousse soient transportées sur SSL pour " "éviter l'écoute des mots de passe." msgid "Stripes" msgstr "Bandes" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" "Sur combien de lignes une \"bande zébrée\" doit s'étendre sur l'affichage. " "Par défaut : 1 ; mettre à 0 pour désactiver." msgid "Max Files" msgstr "Nombre max de fichiers" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "Nombre maximum de fichiers à afficher par révision. Par défaut : 10" msgid "Max Changes" msgstr "Nombre max de changements" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "" "Nombre maximum de changements à énumérer dans le changelog. Par défaut :10" msgid "Allow Push" msgstr "Autoriser les opérations de pousse" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" "Si autorisé de pousser vers le dépôt. Si vide ou non défini, pousser n'est " "pas autorisé. Si la valeur spéciale \"*\", n'importe quel utilisateur " "distant peut pousser, y compris les utilisateurs non authentifiés. " "Autrement, l'utilisateur distant doit être authentifié et le nom " "d'utilisateur doit se trouver dans cette liste (séparé par des espaces ou " "\",'). Le contenu de la liste allow_push est examinée après la liste " "deny_push." msgid "Deny Push" msgstr "Refuser les opérations de pousse" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" "Si interdit de pousser vers le dépôt. Si vide ou non défini, pousser n'est " "pas interdit. Si la valeur spéciale \"*\", aucun utilisateur distant ne peut " "pousser. Autrement, les utilisateurs distants non authentifiés sont " "interdits et les utilisateurs authentifiés présents dans cette liste (séparé " "par des espaces ou \",') sont aussi interdits. Le contenu de la liste " "deny_push est examinée avant la liste allow_push." msgid "Proxy" msgstr "Proxy" msgid "Host" msgstr "Hôte" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "" "Nom de l'hôte et port (optionnel) du serveur mandataire, par exemple " "\"monproxy:8000\"" msgid "Bypass List" msgstr "Sans mandataire" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "" "Optionnel. Liste séparée par des virgules de noms de machine accédées " "directement (sans mandataire)" msgid "Optional. User name to authenticate with at the proxy server" msgstr "Optionnel. Nom d'utilisateur pour s'authentifier au serveur mandataire" msgid "Password" msgstr "Mot de passe" msgid "Optional. Password to authenticate with at the proxy server" msgstr "Optionnel. Mot de passe pour s'authentifier au serveur mandataire" msgid "From" msgstr "De" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "" "Adresse électronique à utiliser dans le champ \"From\" et pour l'enveloppe " "SMTP" msgid "To" msgstr "À" msgid "Comma-separated list of recipient email addresses" msgstr "" "Liste séparée par des virgules des adresses électroniques des destinataires" msgid "Cc" msgstr "Copie à (Cc)" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "" "Liste séparée par des virgules des adresses électroniques des destinataires " "en copie" msgid "Bcc" msgstr "Copie cachée à (Bcc)" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "" "Liste séparée par des virgules des adresses électroniques des destinataires " "en copie cachée" msgid "method" msgstr "méthode" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" "Optionnel. Méthode à utiliser pour envoyer les courriels. Si la valeur est " "\"smtp\" (par défaut), utiliser SMTP (configuré en-dessous). Autrement, " "indiquer le nom du programme à utiliser se comportant comme sendmail " "(prendre l'option \"-f\" pour l'émetteur, liste des destinataires sur la " "ligne de commande, message sur stdin). Normalement, mettre \"sendmail\" ou " "\"/usr/sbin/sendmail\" est suffisant pour utiliser sendmail." msgid "SMTP Host" msgstr "Hôte SMTP" msgid "Host name of mail server" msgstr "Nom du serveur de messagerie" msgid "SMTP Port" msgstr "Port SMTP" msgid "Port to connect to on mail server. Default: 25" msgstr "Port du serveur de courriel. Par défaut : 25" msgid "SMTP TLS" msgstr "SMTP TLS" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "" "Méthode pour activer TLS lors d'une connexion à un serveur de courrier. Par " "défaut : aucune" msgid "SMTP Username" msgstr "Nom d'utilisateur SMTP" msgid "Username to authenticate to mail server with" msgstr "Nom d'utilisateur pour s'authentifier au serveur SMTP" msgid "SMTP Password" msgstr "Mot de passe SMTP" msgid "Password to authenticate to mail server with" msgstr "Mot de passe pour s'authentifier au serveur SMTP" msgid "Local Hostname" msgstr "Nom de l'hôte local" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "" "Nom de l'hôte que l'expéditeur peut utiliser pour s'identifier au serveur." msgid "Diff and Annotate" msgstr "Diff et annoter" msgid "Patch EOL" msgstr "Fin de lignes des patches" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" "Normaliser les fins de ligne durant et après patch à lf ou crlf. Strict ne " "fait aucune normalisation. Auto fait une détection automatique et c'est ce " "qui est recommandé. Par défaut : strict" msgid "Git Format" msgstr "Format git" msgid "Use git extended diff header format. Default: False" msgstr "Utiliser le format d'en-tête de diff étendu git. Par défaut : Faux" msgid "MQ Git Format" msgstr "Format git MQ" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" "Quand défini à 'auto', mq utilisera automatiquement des patches git quand " "nécessaire pour éviter de perdre des changements de modes de fichier, des " "enregistrements de copie ou des fichiers binaires. Si défini à 'keep', mq " "suivra la configuration de la section [diff] en préservant les patches git " "lors d'un qrefresh. Si défini à 'yes' ou 'no', mq surchargera la section " "[diff] et créera toujours des patches git ou normaux, en perdant peut-être " "des données dans le second cas. Par défaut : auto" msgid "No Dates" msgstr "Pas de dates" msgid "Do not include modification dates in diff headers. Default: False" msgstr "" "Ne pas inclure les dates de modification dans les en-têtes de diff. Par " "défaut : Faux" msgid "Show Function" msgstr "Afficher la fonction" msgid "Show which function each change is in. Default: False" msgstr "" "Afficher dans quelle fonction chaque changement se trouve. Par défaut : Faux" msgid "Ignore White Space" msgstr "Ignorer les espaces" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "" "Ignorer les espaces lors de la comparaison de lignes dans les vues de diff. " "Par défaut : Faux" msgid "Ignore WS Amount" msgstr "Ignorer le nombre d'espaces" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "" "Ignorer les changements dans le nombre d'espaces dans les vues de diff. Par " "défaut : Faux" msgid "Ignore Blank Lines" msgstr "Ignorer les lignes blanches" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "" "Ignorer les changements des lignes blanches dans les vues de diff. Par " "défaut : Faux" msgid "Annotate:" msgstr "Annoter :" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" "Ignorer les espaces lors de la comparaison de lignes dans la vue " "d'annotation. Par défaut : Faux" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" "Ignorer les changements dans le nombre d'espaces dans la vue d'annotation. " "Par défaut : Faux" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "" "Ignorer les changements des lignes blanches dans la vue d'annotation. Par " "défaut : Faux" msgid "Fonts" msgstr "Polices" msgid "Message Font" msgstr "Police de message" msgid "Font used to display commit messages. Default: monospace 10" msgstr "" "Police utilisée pour afficher les messages de commit. Par défaut : monospace " "10" msgid "Diff Font" msgstr "Police de diff" msgid "Font used to display text differences. Default: monospace 10" msgstr "" "Police utilisée pour afficher les différences de texte. Par défaut : " "monospace 10" msgid "ChangeLog Font" msgstr "Police de changelog" msgid "Font used to display changelog data. Default: monospace 10" msgstr "" "Police utilisée pour afficher les données de changelog. Par défaut : " "monospace 10" msgid "Output Font" msgstr "Police de sortie" msgid "Font used to display output messages. Default: sans 8" msgstr "" "Police utilisée pour afficher les messages de sortie. Par défaut : sans 8" msgid "Extensions" msgstr "Extensions" msgid "Tools" msgstr "Outils" msgid "Hooks" msgstr "Hooks" msgid "Issue Tracking" msgstr "Suivi de problèmes" msgid "Issue Regex" msgstr "Expression régulière de problème" msgid "Defines the regex to match when picking up issue numbers." msgstr "Définit l'expression régulière pour trouver des numéros de problèmes." msgid "Issue Link" msgstr "Lien vers un problème" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" "Définit la commande à exécuter quand un numéro de problème est reconnu. Vous " "pouvez inclure des groupes dans issue.regex et des jetons correspondants à " "{n} dans issue.link (où n est un entier positif). {0} correspond à la chaîne " "entière trouvée par issue.regex, {1} désigne le premier groupe et ainsi de " "suite. Si aucun jeton {n} n'est trouvé dans issue.link, la chaîne complète " "trouvée est ajoutée." msgid "Inline Tags" msgstr "Étiquettes 'inline'" msgid "Show tags at start of commit message." msgstr "Afficher les étiquettes au début du message de commit." msgid "Mandatory Issue Reference" msgstr "Référence à un problème obligatoire" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" "Lors du commit, demande qu'une référence vers un problème soit spécifiée. Si " "activé, l'expression régulière configurée dans 'Expression régulière de " "problème' doit trouver une correspondance dans le message de commit." msgid "Issue Tracker Plugin" msgstr "Plugin de suivi de problème" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" "Configurer un plugin COM IBugTraqProvider ou IBugTraqProvider2 de suivi de " "problème." msgid "Configure Issue Tracker" msgstr "Configurer le suivi de problème" msgid "Configure the selected COM Bug Tracker plugin." msgstr "Configurer le plugin COM sélectionné de suivi de problème" msgid "Issue Tracker Trigger" msgstr "Déclencheur de suivi de problème" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

                                            • never: Do not update the Issue Tracker " "state automatically.
                                            • commit: Update the Issue Tracker state after " "a successful commit.

                                            Default: never" msgstr "" "Détermine quand l'état du suivi de problème sera mis à jour par TortoiseHg. " "Les valeurs valides sont :

                                            • never : Ne pas mettre l'état du " "suivi de problème automatiquement.
                                            • commit : Mettre à jour l'état " "du suivi de problème après un commit réussi.

                                            Par défaut : never" msgid "Changeset Link" msgstr "Lien de révision" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
                                            The template string " "uses a normal mercurial template syntax, such as:

                                            • {node|short} : replaced by " "the 12 digit revision id.
                                            • {rev} : replaced by the revision number." "
                                            • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
                                            For example, in order to " "link to bitbucket commit pages you can set this to:
                                            https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
                                            You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
                                            https://github.com/torvalds/" "linux/commit/{gitnode}
                                            https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
                                            " msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "Chemin vers l'exemple de Review Board \"http://demo.reviewboard.org\"" msgid "User name to authenticate with review board" msgstr "Nom d'utilisateur pour s'authentifier avec Review Board" msgid "Password to authenticate with review board" msgstr "Mot de passe pour s'authentifier avec Review Board" msgid "Server Repository ID" msgstr "Identifiant du dépôt sur le serveur" msgid "The default repository id for this repo on the review board server" msgstr "L'identifiant par défaut pour ce dépôt sur le serveur Review Board" msgid "Target Groups" msgstr "Groupe cible" msgid "A comma separated list of target groups" msgstr "Une liste séparée par des virgules des groupes cibles." msgid "Target People" msgstr "Personnes cibles" msgid "A comma separated list of target people" msgstr "Une liste séparée par des virgules des personnes cibles." msgid "Kiln Bfiles" msgstr "Kiln Bfiles" msgid "Patterns" msgstr "Règles" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" "Les fichiers avec des noms correspondants aux motifs spécifiés seront " "automatiquement ajoutés comme bfiles" msgid "Size" msgstr "Taille" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" "Les fichiers de taille supérieure (en Moctets) seront ajoutés comme bfiles" msgid "System Cache" msgstr "Cache système" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "Chemin vers le répertoire où un cache système de bfiles sera stocké" msgid "Simplelock" msgstr "Simplelock" msgid "Lock Clone" msgstr "Clone de verrouillage" msgid "" "Location of local clone of organizational lock repository.

                                            This repository " "must contain a \"locked\" text file" msgstr "" "Emplacement du clone local du dépôt de verrou de l'organisation.

                                            Ce dépôt " "doit contenir un fichier texte « verrouillé »" msgid "Largefiles" msgstr "Largefiles" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" "Les fichiers avec les noms correspondants aux motifs spécifiés seront " "ajoutés automatiquement comme largefiles" msgid "Minimum Size" msgstr "Taille minimum" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" "Les fichiers avec une taille plus grande que celle spécifiée (en MB) seront " "ajoutés comme largefiles" msgid "User Cache" msgstr "Cache utilisateur" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" "Chemin vers le répertoire où un cache utilisateur de largefiles sera stocké" msgid "Projrc" msgstr "Projrc" msgid "Require confirmation" msgstr "Demander une confirmation" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

                                            • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
                                            • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
                                            • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
                                            " msgstr "" "Quand demander à l'utilisateur de confirmer la mise à jour du fichier de " "configuration \"projrc\" local si le fichier projrc distant change. Les " "valeurs possibles sont :
                                            • always : [par défaut] Toujours " "afficher une demande de confirmation avant de mettre à jour le fichier .hg/" "projrc local.
                                            • first : Afficher une demande de confirmation quand " "le dépôt est cloné ou quand un fichier projrc distant est trouvé pour la " "première fois.
                                            • never : Mettre à jour le fichier .hg/projrc local " "automatiquement, sans demander de confirmation à l'utilisateur.
                                            " msgid "Servers" msgstr "Serveurs" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" "Liste des serveurs desquels les fichiers de configuration \"projrc\" doivent " "être tirés. Définir à \"*\" pour tirer de tous les serveurs. Définir à " "\"default\" pour tirer uniquement du dépôt par défaut. Par défaut, les " "fichiers \"projrc\" ne sont tirés d'aucun serveur." msgid "Include" msgstr "Inclure" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" "Liste des paramètres qui seront tirés du fichier de configuration du projet. " "Par défaut, aucun paramètre." msgid "Exclude" msgstr "Exclure" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" "Liste des paramètres qui NE seront PAS tirés du fichier de configuration du " "projet. Par défaut, exclure aucun des paramètres inclus." msgid "Update on incoming" msgstr "Mettre à jour sur entrant" msgid "" "Let the user update the projrc on incoming:
                                            • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
                                            • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
                                            • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                                              Default: never" msgstr "" "Laisser l'utilisateur mettre à jour projrc sur entrant :

                                              • never : [par défaut] Afficher si le fichier projrc distant a changé, " "mais ne pas mettre à jour le fichier projrc local (ni le demander)." "
                                              • prompt: Chercher les changements dans le fichier projrc. Si il y " "a des changements, _toujours_ demander une confirmation, demandant à " "l'utilisateur si il veut mettre à jour son fichier projrc local.
                                              • auto: Chercher les changements dans le fichier projrc. Utiliser la valeur de " "la clé de configuration \"projrc.confirm\" pour déterminer si il faut " "demander une confirmation ou non avant de mettre à jour le fichier projrc " "local.

                                              Par défault : never" msgid "GnuPG" msgstr "GnuPG" msgid "Specify the path to GPG. Default: gpg" msgstr "Indiquer le chemin vers GPG. Par défaut : gpg" msgid "Key ID" msgstr "ID de clé" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "" "ID de clé GPG associé avec un utilisateur. Par défaut : Aucun (laisser vide)" msgid "TortoiseHg Settings" msgstr "Préférences TortoiseHg" msgid "Iniparse package not found" msgstr "Paquet iniparse non trouvé" msgid "Can't change settings without iniparse package - view is readonly." msgstr "" "Ne peut pas changer les préférences sans le paquet iniparse - la vue est en " "lecture seule." #, python-format msgid "%s's global settings" msgstr "Préférences globales de %s" msgid "No repository found" msgstr "Aucun dépôt trouvé" msgid "no repo at " msgstr "aucun dépôt à " #, python-format msgid "%s project settings (.hg/projrc)" msgstr "Préférences de projet %s (.hg/projrc)" #, python-format msgid "%s repository settings" msgstr "Préférences du dépôt %s" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "" "Redémarrer toutes les applications TortoiseHg pour que les changements " "suivants prennent effet :" msgid "Apply changes before exit?" msgstr "Appliquer les changements avant de sortir ?" msgid "&No (discard changes)" msgstr "&Non (abandonner les changements)" msgid "Reload" msgstr "Recharger" msgid "Settings File:" msgstr "Fichier de préférences :" msgid "Confirm Save" msgstr "Confirmer l'enregistrement" msgid "Save changes before editing?" msgstr "Enregistrer les changements avant d'éditer ?" msgid "&Save" msgstr "Enregi&strer" msgid "Confirm Reload" msgstr "Confirmer le rechargement" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" "Les changements non enregistrés seront perdus.\n" "Voulez-vous recharger ?" msgid "Unable to create a Mercurial.ini file" msgstr "Impossible de créer un fichier Mercurial.ini" msgid "Insufficient access rights, reverting to read-only mode." msgstr "Droits d'accès insuffisants, retour au mode lecture seule." msgid "Context Menu" msgstr "Menu contextuel" msgid "Top menu items:" msgstr "Éléments du menu principal :" msgid "Sub menu items:" msgstr "Éléments de sous-menu :" msgid "Menu Behavior" msgstr "Comportement du menu" msgid "Hide context menu outside repositories" msgstr "Cacher le menu contextuel en dehors des dépôts" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" "Ne pas afficher les menus dans les dossiers non versionnés (utiliser " "Majuscule + clic pour afficher)" msgid "Icons" msgstr "Icônes" msgid "Overlays" msgstr "Superpositions" msgid "Enabled overlays" msgstr "Superpositions activées" msgid "Local disks only" msgstr "Disques locaux uniquement" msgid "Enabled Overlay Handlers" msgstr "Gestionnaires de superposition activés" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "" "Attention : touche tous les clients Tortoise, déconnexion nécessaire après " "changement" msgid "Added" msgstr "Ajouté" msgid "Locked*" msgstr "Verrouillé*" msgid "Ignored*" msgstr "Ignoré*" msgid "Unversioned" msgstr "Non versionné" msgid "Readonly*" msgstr "Lecture seule*" msgid "Deleted*" msgstr "Supprimé*" msgid "*: not used by TortoiseHg" msgstr "* : pas utilisé par TortoiseHg" msgid "Taskbar" msgstr "Barre de tâches" msgid "Show Icon" msgstr "Afficher l'icône" msgid "Highlight Icon" msgstr "Mettre en surbrillance l'icône" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" "Vous pouvez changer le jeu d'icônes des Préférences " "TortoiseSVN" msgid "Explorer Extension Settings - TortoiseHg" msgstr "Préférences de l'extension Explorateur - TortoiseHg" msgid "Clear" msgstr "Effacer" msgid "Clear the current shelf file" msgstr "Effacer le fichier actuel de \"shelf\"" msgid "Delete the current shelf file" msgstr "Supprimer le fichier actuel de \"shelf\"" msgid "Left Toolbar" msgstr "Barre d'outils à gauche" msgid "Delete selected chunks" msgstr "Supprimer les morceaux sélectionnés" msgid "Move all files right" msgstr "Déplacer tous les fichiers à droite" msgid "Move selected file right" msgstr "Déplacer le fichier sélectionné à droite" msgid "Edit file" msgstr "Éditer le fichier" msgid "Move selected chunks right" msgstr "Déplacer les morceaux sélectionnés à droite" msgid "Refresh Toolbar" msgstr "Barre d'outils d'actualisation" msgid "Refresh" msgstr "Rafraîchir" msgid "New Shelf" msgstr "Nouveau \"shelf\"" msgid "Right Toolbar" msgstr "Barre d'outils droite" msgid "Move selected chunks left" msgstr "Déplacer les morceaux sélectionnés à gauche" msgid "Move selected file left" msgstr "Déplacer le fichier sélectionné à gauche" msgid "Move all files left" msgstr "Déplacer tous les fichiers à gauche" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "" "Des copies de sauvegarde des fichiers modifiés se trouvent dans .hg/Trashcan/" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "TortoiseHg Shelve - %s" msgid "Delete selected chunks from working copy?" msgstr "Supprimer les morceaux sélectionnés de la copie de travail ?" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "Supprimer les morceaux sélectionnés du fichier \"shelf\" %s  ?" msgid "Are you sure?" msgstr "Êtes-vous sûr ?" msgid "TortoiseHg New Shelf Name" msgstr "Nouveau nom de \"shelf\" TortoiseHg" msgid "Specify name of new shelf" msgstr "Indiquer le nom du nouveau \"shelf\"" msgid "Bad filename" msgstr "Mauvais nom de fichier" #, python-format msgid "A shelf name cannot contain %s" msgstr "Un nom de \"shelf\" ne peut pas contenir %s" msgid "File already exists" msgstr "Fichier déjà existant" msgid "A shelf file of that name already exists" msgstr "Un fichier \"shelf\" portant ce nom existe déjà" msgid "New shelf created" msgstr "Nouveau \"shelf\" créé" #, python-format msgid "Delete shelf file %s?" msgstr "Supprimer le fichier \"shelf\" %s ?" msgid "Shelf deleted" msgstr "\"Shelf\" supprimé" msgid "Revert all working copy changes?" msgstr "Rétablir tous les changements de la copie de travail ?" #, python-format msgid "Clear contents of shelf file %s?" msgstr "Effacer le contenu du fichier \"shelf\" %s ?" msgid "Shelf cleared" msgstr "\"Shelf\" effacé" #, python-format msgid "Shelf: %s" msgstr "Shelf : %s" #, python-format msgid "Patch: %s" msgstr "Patch : %s" msgid "Key:" msgstr "Clé :" msgid "Local sign" msgstr "Signature locale" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "Signer même si le fichier signature est modifié (-f/--force)" msgid "No commit" msgstr "Aucun commit" msgid "Use custom commit message:" msgstr "Utiliser un message de commit personnalisé :" msgid "&Sign" msgstr "&Signer" #, python-format msgid "Sign - %s" msgstr "Signer - %s" msgid "Signature has been added" msgstr "La signature a été ajoutée" msgid "Repository command still running" msgstr "Une commande est en cours d'exécution" msgid "Filter:" msgstr "Filtre :" msgid "Check all files" msgstr "Cocher tous les fichiers" msgid "Uncheck all files" msgstr "Décocher tous les fichiers" msgid "Status File List Toolbar" msgstr "Barre d'outils de statut des fichiers" msgid "Remove filter, show root" msgstr "Enlever le filtre, afficher la racine" #, python-format msgid "%s - status (selection filtered)" msgstr "%s - statut (sélection filtrée)" #, python-format msgid "%s - status" msgstr "%s - statut" msgid "Check" msgstr "Cocher" msgid "Uncheck" msgstr "Décocher" msgid "status" msgstr "état" msgid "Failed to refresh" msgstr "Impossible de rafraîchir" msgid "No appropriate files" msgstr "Aucun fichier approprié" msgid "No files found for this operation" msgstr "Aucun fichier trouvé pour cette opération" msgid "Stat" msgstr "État" msgid "M" msgstr "M" msgid "Filename" msgstr "Nom de fichier" msgid "Size (KB)" msgstr "Taille (ko)" #, python-format msgid "Checked count: %d" msgstr "Cochés : %d" msgid ", resolved merge" msgstr ", fusion résolue" msgid ", unresolved merge" msgstr ", fusion non résolue" #, python-format msgid "%s is modified" msgstr "%s est modifié" msgid "modified" msgstr "modifié" #, python-format msgid "%s is added" msgstr "%s est ajouté" msgid "added" msgstr "ajouté" #, python-format msgid "%s is removed" msgstr "%s est enlevé" msgid "removed" msgstr "enlevé" #, python-format msgid "%s is not tracked (unknown)" msgstr "%s n'est pas suivi (inconnu)" msgid "unknown" msgstr "inconnu" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "%s a été supprimé en dehors de Mercurial mais est toujours suivi" msgid "missing" msgstr "manquant" #, python-format msgid "%s is ignored" msgstr "%s est ignoré" msgid "ignored" msgstr "ignoré" #, python-format msgid "%s is not modified (clean)" msgstr "%s n'est pas modifié (propre)" msgid "clean" msgstr "propre" #, python-format msgid "%s is a dirty subrepo" msgstr "%s est un sous-dépôt sale" msgid "subrepo" msgstr "sous-dépôt" msgid "Check for incoming changes from selected URL" msgstr "Chercher les révisions entrantes de l'URL sélectionnée" msgid "Pull incoming changes from selected URL" msgstr "Tirer les révisions entrantes depuis l'URL sélectionnée" msgid "Detect outgoing changes to selected URL" msgstr "Détecter les révisions sortantes vers l'URL sélectionnée" msgid "Push outgoing changes to selected URL" msgstr "Pousser les révisions sortantes vers l'URL sélectionnée" msgid "Sync Bookmarks" msgstr "Synchroniser des signets" msgid "Email outgoing changesets for remote repository" msgstr "Envoyer par courriel des révisions sortantes pour un dépôt distant" msgid "Manage pending perforce changelists" msgstr "Gérer les listes de changements Perforce en attente" msgid "Unbundle" msgstr "Dépaqueter (unbundle)" msgid "Selected Options:" msgstr "Options sélectionnées :" msgid "Path Edit Toolbar" msgstr "Barre d'outils d'édition de chemin" msgid "Security" msgstr "Sécurité" msgid "Manage HTTPS connection security and user authentication" msgstr "Gérer la sécurité de la connexion HTTPS et l'authentification" msgid "Save" msgstr "Enregistrer" msgid "Save current URL under an alias" msgstr "Enregistrer l'URL actuelle sous un alias" msgid "Paths in Repository Settings:" msgstr "Chemins dans les préférences du dépôt :" msgid "Related Paths:" msgstr "Chemins liés :" msgid "branch: " msgstr "branche : " msgid "bookmark: " msgstr "signet : " #, python-format msgid "rev: %d (%s)" msgstr "rev: %d (%s)" msgid "Post Pull: " msgstr "Après avoir tiré : " msgid "&Edit..." msgstr "Édit&er..." msgid "&Remove..." msgstr "Enleve&r..." msgid "Repository not local" msgstr "Dépôt non local" msgid "A terminal shell cannot be opened for remote" msgstr "Une console ne peut pas être ouverte à distance" msgid "Confirm path delete" msgstr "Confirmer la suppression du chemin" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "Supprimer %s du fichier de configuration de votre dépôt ?" msgid "Select repository" msgstr "Sélectionner un dépôt" msgid "No host specified" msgstr "Aucun hôte spécifié" msgid "Please set a valid URL to continue." msgstr "Définissez une URL valide pour continuer." msgid "No remote repository URL or path set" msgstr "Aucun URL ou chemin de dépôt distant défini" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

                                              Please type and save a remote repository path on the " "Sync widget." msgstr "" "Aucun URL ou chemin valide par défaut pour le dépôt distant a été " "configuré pour ce dépôt.

                                              Veuillez taper et enregistrer un chemin pour le " "dépôt distant dans le widget de synchronisation." msgid "Redundant authentication info" msgstr "Information d'authentification redondante" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" "Vous avez des informations d'authentification configurées pour cet hôte et " "dans cette URL. Supprimer les informations d'authentification pour cette " "URL ?" msgid "sync command already running" msgstr "une commande de synchronisation est déjà en cours d'exécution" #, python-format msgid "Getting incoming changesets from %s..." msgstr "Obtention des révisions entrantes de %s" #, python-format msgid "Found incoming changesets from %s" msgstr "Révisions entrantes trouvées de %s" #, python-format msgid "No incoming changesets from %s" msgstr "Aucune révision entrante de %s" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "Recherche des révisions entrantes de %s interrompue, ret %d" #, python-format msgid "Pulling from %s..." msgstr "Tirant de %s..." #, python-format msgid "Pull from %s completed" msgstr "\"Pull\" de %s terminé" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "Opération de tirer de %s interrompu, ret %d" msgid "Merge caused file conflicts" msgstr "La fusion a causé des conflits de fichiers" msgid "File conflicts need to be resolved" msgstr "Les conflits de fichiers doivent être résolus" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "Recherche des révisions sortantes vers %s" #, python-format msgid "%d outgoing changesets to %s" msgstr "%d révisions sortantes vers %s" #, python-format msgid "No outgoing changesets to %s" msgstr "Aucune révision sortante vers %s" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "Recherche des révisions sortantes vers %s interrompue, ret %d" msgid "Perforce pending..." msgstr "Perforce en attente..." #, python-format msgid "%s (submitted)" msgstr "%s (soumis)" #, python-format msgid "%s (pending)" msgstr "%s (en attente)" msgid "Unable to parse p4pending output" msgstr "Impossible d'analyser la sortie p4pending" #, python-format msgid "%d pending changelists found" msgstr "%d listes de changement en attente trouvés" msgid "No pending Perforce changelists" msgstr "Aucune liste de changement Perforce en attente" msgid "Aborted p4pending" msgstr "Abandon de p4pending" msgid "Unable to determine pending changesets" msgstr "Impossible de déterminer les révisions en attente" msgid "Confirm Push to remote Repository" msgstr "Confirmer l'opération de pousse vers un dépôt distant" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" "Pousser vers le dépôt distant\n" "%s\n" "?" #, python-format msgid "Push to %s aborted" msgstr "Opération de pousser vers %s abandonnée" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" "Révision de pousse par défaut invalide : %s. Vérifiez votre configuration " "Mercurial (tortoisehg.defaultpush)" #, python-format msgid "Pushing to %s..." msgstr "Poussant vers %s..." #, python-format msgid "Push to %s completed" msgstr "Opération de pousse vers %s terminée" #, python-format msgid "Push to %s aborted, ret %d" msgstr "Opération de pousser vers %s abandonnée, ret %d" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" "Une ou plusieurs révisions que vous tentez de pousser impliquent la création " "d'une nouvelle branche. Voulez-vous créer une nouvelle branche dans le dépôt " "distant ?" msgid "Determining outgoing changesets to email..." msgstr "Recherche des révisions sortantes à envoyer par courriel..." msgid "No outgoing changesets" msgstr "Aucune révision sortante" #, python-format msgid "Outgoing aborted, ret %d" msgstr "Recherche des révisions sortantes interrompue, ret %d" msgid "Select bundle file" msgstr "Sélectionner le fichier paquet" msgid "Bundle files (*.hg)" msgstr "Fichiers paquets (bundle) (*.hg)" msgid "Unable to remove URL" msgstr "Impossible de retirer l'URL" msgid "Post Pull Behavior" msgstr "Opération après avoir tiré" msgid "Select post-pull operation for this repository" msgstr "Sélectionner l'opération après avoir tiré pour ce dépôt" msgid "None - simply pull changesets" msgstr "Aucune - tirer simplement les révisions" msgid "Update - pull, then try to update" msgstr "Mettre à jour - tirer, puis essayer de mettre à jour" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "" "Fetch - utiliser fetch (fusionner automatiquement les changements tirés)" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "Fetch - utiliser l'extension fetch (fetch n'est pas actif !)" msgid "Rebase - rebase local commits above pulled changes" msgstr "Rebase - rebase les révisions locales au-dessus des révisions tirées" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "UpdateOrRebase - tirer puis essayer de mettre à jour ou rebaser" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "Rebase - utiliser l'extension rebase (rebase n'est pas actif !)" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "UpdateOrRebase - utilise l'extension rebase (rebase pas actif !)" msgid "Launch settings tool..." msgstr "Ouvrir l'outil de configuration..." msgid "Unable to save post pull operation" msgstr "Impossible d'enregistrer l'opération d'après tirage" msgid "Save Path" msgstr "Enregistrer le chemin" msgid "Alias" msgstr "Alias" msgid "URL" msgstr "URL" msgid "Remove authentication data from URL" msgstr "Supprimer les informations d'authentification de l'URL" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" "Les données d'authentification de l'utilisateur devraient être associées " "avec le nom d'hôte en utilisant le dialogue de sécurité." msgid "Update subrepo paths" msgstr "Mettre à jour les chemins des sous-dépôts" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" "Mettre à jour ou créer un alias de chemin nommé '%s' sur tous les sous-" "dépôts en utilisant cette URL comme base et en y ajoutant le chemin local " "relatif du sous-dépôt" msgid "Unable to save an URL" msgstr "Impossible d'enregistrer une URL" msgid "Confirm URL replace" msgstr "Confirmer le remplacement de l'URL" #, python-format msgid "%s already exists, replace URL?" msgstr "%s existe déjà, remplacer l'URL ?" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

                                              %s

                                              Replace it with the " "following URL?:

                                              %s" msgstr "" "Le sous-dépôt '%s' a une URL par défaut non trivial :

                                              %s

                                              La remplacer " "avec l'URL suivante ?

                                              %s" msgid "Security: " msgstr "Sécurité : " #, python-format msgid "Host: %s" msgstr "Hôte : %s" msgid "Secure HTTPS Connection" msgstr "Connexion HTTPS sécurisée" msgid "Verify with Certificate Authority certificates (best)" msgstr "" "Vérifier avec des certificats d'Autorités de Certification (le meilleur)" msgid "Verify with stored host fingerprint (good)" msgstr "Vérifier avec l'empreinte stockée de l'hôte (bon)" msgid "No host validation, but still encrypted (bad)" msgstr "Aucune validation de l'hôte mais tout de même chiffré (mauvais)" msgid "### host certificate fingerprint ###" msgstr "### empreinte du certificate du serveur ###" msgid "Query" msgstr "Requête" msgid "TLS 1.0" msgstr "TLS 1.0" msgid "TLS 1.1" msgstr "TLS 1.1" msgid "TLS 1.2" msgstr "TLS 1.2" msgid "Minimum Protocol" msgstr "Protocole minimum" msgid "User Authentication" msgstr "Authentification de l'utilisateur" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" "Optionnel. Nom d'utilisateur pour l'authentification. Si non donné et que " "le\n" "site distant demande une authentification, il lui sera demandé. Les " "variables\n" "d'environnement sont développées dans le nom d'utilisateur de sorte que\n" "vous pouvez utiliser foo.username = $USER." msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" "Optionnel. Mot de passe pour l'authentification. Si non donné et que le\n" "site distant demande une authentification, il lui sera demandé." msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" "L'extension Mercurial keyring est activée. Les mots de passe seront stockés " "par une méthode sûre dépendant de votre plate-forme." msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" "Optionnel. Fichier de clés pour le certificat client au format PEM.\n" "Les variables d'environnement sont développées dans le nom de fichier." msgid "User Certificate Key" msgstr "Clé de certificat utilisateur" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" "Optionnel. Fichier de chaîne de certificat client au format PEM.\n" "Les variables d'environnement sont développées dans le nom de fichier." msgid "User Certificate Chain" msgstr "Chaîne de certificat utilisateur" msgid "Certificate Query Error" msgstr "Erreur de requête de certificat" msgid "Select User Certificate Key File" msgstr "Sélectionner un fichier de clé de certificat utilisateur" msgid "PEM files (*.pem *.key)" msgstr "Fichiers PEM (*.pem *.key)" msgid "Select User Certificate Chain File" msgstr "Sélectionner un fichier de chaîne de certificat utilisateur" msgid "PEM files (*.pem *.crt *.cer)" msgstr "Fichiers PEM (*.pem *.crt *.cer)" msgid "Unable to save authentication" msgstr "Impossible d'enregistrer l'authentification" #, python-format msgid "%s - sync options" msgstr "%s - options de sync" msgid "Allow push of a new branch (--new-branch)" msgstr "Autoriser de pousser une nouvelle branche (--new-branch)" msgid "Force push or pull (override safety checks, --force)" msgstr "" "Forcer de pousser ou tirer (outrepasser les vérifications de sécurité, --" "force)" msgid "Temporarily disable configured HTTP proxy" msgstr "Désactiver temporairement le proxy HTTP configuré" msgid "Emit debugging output (--debug)" msgstr "Afficher la sortie de déboguage (--debug)" msgid "Work on patch queue (--mq)" msgstr "Travailler sur la queue de patch (--mq)" #, python-format msgid "Tag - %s" msgstr "Étiquette - %s" msgid "Tag:" msgstr "Étiquette :" msgid "Tagged:" msgstr "Étiquetée :" msgid "Local tag" msgstr "Étiquette locale" msgid "Replace existing tag (-f/--force)" msgstr "Remplacer une étiquette existante (-f/--force)" msgid "Use English commit message" msgstr "Utiliser un message de commit en anglais" msgid "local" msgstr "local" msgid "Move" msgstr "Déplacer" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "Étiquette %s déplacée à la révision %s (de la révision %s)" #, python-format msgid "Added tag %s for changeset %s" msgstr "Étiquette %s ajoutée à la révision %s" #, python-format msgid "Tag '%s' has been moved" msgstr "L'étiquette '%s' a été déplacée" #, python-format msgid "Tag '%s' has been added" msgstr "L'étiquette '%s' a été ajoutée" #, python-format msgid "Removed tag %s" msgstr "Étiquette %s enlevée" #, python-format msgid "Tag '%s' has been removed" msgstr "l'étiquette '%s' a été enlevée" msgid "Patch files (*.diff *.patch)" msgstr "Fichiers patch (*.diff *.patch)" #, python-format msgid "Import - %s" msgstr "Importation - %s" msgid "Browse Directory..." msgstr "Parcourir le répertoire..." msgid "Import from Clipboard" msgstr "Importer du presse-papiers" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "Ne pas supprimer les chemins (-p0), nécessaire pour les patches SVN" msgid "Preview:" msgstr "Aperçu :" msgid "Shelf" msgstr "Shelf" msgid "Checking working directory status..." msgstr "Vérifiant l'état du répertoire de travail..." msgid "&Import" msgstr "&Importer" msgid "Working directory is not clean! View changes..." msgstr "" "Le répertoire de travail n'est pas propre ! View changes..." "" msgid "Select patches" msgstr "Sélectionner les patchs" msgid "Select Directory containing patches" msgstr "Sélectionner le répertoire contenant les patchs" #, python-format msgid "%s patches" msgstr "%s patchs" #, python-format msgid "%s will be imported to " msgstr "%s sera importé vers " msgid "Nothing to import" msgstr "Rien à importer" msgid "Strip:" msgstr "Strip :" msgid "Discard local changes, no backup (-f/--force)" msgstr "Abandonner les changements locaux, pas de sauvegarde (-f/--force)" msgid "No backup (-n/--nobackup)" msgstr "Pas de sauvegarde (-n/--nobackup)" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "Ne pas modifier la copie de travail durant le strip (-k/--keep)" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "%d révision sera enlevée" msgstr[1] "%d révisions seront enlevées" msgid "Unknown revision!" msgstr "Révision inconnue !" msgid "Detected uncommitted local changes." msgstr "Changements locaux non committés détectés" msgid "Do you want to keep them or discard them?" msgstr "Voulez-vous les garder ou les abandonner ?" msgid "&Keep (--keep)" msgstr "&Garder (--keep)" msgid "&Discard (--force)" msgstr "&Abandonner (--force)" msgid "Confirm Strip" msgstr "Confirmer la suppression des révisions" #, python-format msgid "Strip - %s" msgstr "Strip - %s" msgid "&Strip" msgstr "&Strip" msgid "Topic:" msgstr "Topic :" msgid "&Rename" msgstr "&Renommer" #, python-format msgid "Topic - %s" msgstr "Topic - %s" #, python-format msgid "A topic named \"%s\" already exists" msgstr "Un topic nommé \"%s\" existe déjà" #, python-format msgid "Topic '%s' has been added" msgstr "Topic '%s' a été ajouté" #, python-format msgid "Topic '%s' does not exist" msgstr "Topic '%s' n'existe pas" #, python-format msgid "Topic '%s' has been removed" msgstr "Topic '%s' a été enlevé" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "Topic '%s' a été renommé en %s" msgid "Parent 1:" msgstr "Parent 1 :" msgid "Parent 2:" msgstr "Parent 2 :" msgid "Pull subrepos from:" msgstr "Tirer les sous-dépôts de :" msgid "List updated files (--verbose)" msgstr "Énumérer les fichiers mis à jour (--verbose)" msgid "Discard local changes, no backup (-C/--clean)" msgstr "Abandonner les changements locaux, pas de sauvegarde (-C/--clean)" msgid "Always merge (when possible)" msgstr "Toujours fusionner (si possible)" msgid "(same as parent)" msgstr "(comme le parent)" msgid "Activate bookmark?" msgstr "Activer un signet ?" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

                                              Do " "you want to activate it?
                                              You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" "La révision sélectionnée (%s) a un signet appelé \"%s\".

                                              Voulez-" "vous l'activer ?
                                              Vous pouvez déactiver cette invite en configurant " "Préférences/Workbench/Activer les signets" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

                                              Select " "the bookmark that you want to activate and click OK.

                                              Click " "Cancel if you don't want to activate any of them.

                                              You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                              " msgstr "" "La révision sélectionnée (%s) a %d signets.

                                              Sélectionner le " "signet que vous voulez activer et cliquer sur OK.

                                              Cliquer sur " "Annuler si vous ne voulez pas en activer.

                                              Vous pouvez " "déactiver cette invite en configurant Préférences/Workbench/Activer les " "signets" msgid "Deactivate current bookmark?" msgstr "Désactiver le signet actuel ?" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "Voulez-vous vraiment désactiver le signet %s ?" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" "Changements locaux non committés détectés dans le répertoire de travail.\n" "Veuillez sélectionner pour continuer :\n" msgid "Discard - discard local changes, no backup" msgstr "Abandonner - abandonner les changements locaux, pas de sauvegarde" msgid "&Shelve" msgstr "&Shelve" msgid "Shelve - move local changes to a patch" msgstr "Shelve - déplacer les changements locaux dans un patch" msgid "Merge - allow to merge with local changes" msgstr "Fusionner - permettre la fusion avec les changements locaux" msgid "Confirm Update" msgstr "Confirmer la mise à jour" #, python-format msgid "Update - %s" msgstr "Mise à jour - %s" msgid "[non-existant]" msgstr "[inexistent]" msgid "Tool launch failure" msgstr "Échec de lancement de l'outil" #, python-format msgid "%s : %s" msgstr "%s : %s" msgid "No diff tool found" msgstr "Aucun outil de diff trouvé" msgid "No visual diff tools were detected" msgstr "Aucun outil de diff visuel détecté" msgid "[working copy]" msgstr "[copie de travail]" msgid "[original]" msgstr "[original]" msgid "Unable to find changeset" msgstr "Impossible de trouver la révision" msgid "You likely need to refresh this application" msgstr "Vous devriez rafraîchir cette application" msgid "No file changes" msgstr "Aucun fichier modifié" msgid "There are no file changes to view" msgstr "Pas de changement de fichier à voir" msgid "working changes" msgstr "changements courants" #, python-format msgid "changeset %d:%s" msgstr "révision %d :%s" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "révisions %d:%s à %d:%s" msgid "Visual Diffs - " msgstr "Diffs visuels - " msgid " filtered" msgstr " filtré" msgid "Temporary files are removed when this dialog is closed" msgstr "" "Les fichiers temporaires sont supprimés lorsque vous fermez cette boîte de " "dialogue" msgid "Select Tool:" msgstr "Choisir l'outil :" msgid "Dir diff to p1" msgstr "Diff de répertoires avec p1" msgid "Dir diff to p2" msgstr "Diff de répertoires avec p2" msgid "3-way dir diff" msgstr "Diff de répertoires 3 voies" msgid "Directory diff" msgstr "Diff de répertoire" msgid "Confirm Discard" msgstr "Confirmer l'abandon" msgid "Discard outstanding changes to working directory?" msgstr "Abandonner les changements en suspens dans le répertoire de travail ?" msgid "Config files (*.conf *.config *.ini)" msgstr "Fichiers de configuration (*.conf *.config *.ini)" msgid "Open hgweb config" msgstr "Ouvrir la config hgweb" msgid "Save hgweb config" msgstr "Enregistrer la config hgweb" msgid "Path:" msgstr "Chemin :" msgid "Local Path:" msgstr "Chemin local :" msgid "Select Repository" msgstr "Sélectionner le dépôt" msgid "Add Path to Serve" msgstr "Ajouter le chemin pour Hg serve" msgid "Edit Path to Serve" msgstr "Éditer le chemin pour Hg serve" msgid "Local Path" msgstr "Chemin local" msgid "Webconf" msgstr "Webconf" msgid "Config File:" msgstr "Fichier de configuration :" msgid "Open" msgstr "Ouvrir" msgid "New &Workbench" msgstr "Nouveau &workbench" msgid "&New Repository..." msgstr "&Nouveau dépôt..." msgid "Clon&e Repository..." msgstr "Clon&er un dépôt..." msgid "&Open Repository..." msgstr "&Ouvrir un dépôt..." msgid "&File" msgstr "&Fichier" msgid "&View" msgstr "Affichage" msgid "&Repository" msgstr "Dépôt" msgid "&Help" msgstr "Aide" msgid "&Dock Toolbar" msgstr "Barre d'outils du &Dock" msgid "&Task Toolbar" msgstr "Barre d'outils des &tâches" msgid "&Custom Toolbar" msgstr "Barre d'outils personnalisée" msgid "S&ync Toolbar" msgstr "Barre d'outils de s&ynchronisation" msgid "&Close Repository" msgstr "Fermer un dépôt" msgid "Sh&ow Repository Registry" msgstr "Afficher le registre des dépôts" msgid "Show &Patch Queue" msgstr "Afficher la queue de &patch" msgid "Show Conso&le" msgstr "Afficher la conso&le" msgid "Place Console in Doc&k Area" msgstr "Placer la console dans le doc&k" msgid "R&epository Registry Options" msgstr "Options du r&egistre des dépôts" msgid "Save Open Repositories on E&xit" msgstr "Enregistrer les dépôts ouverts en quittant" msgid "Sa&ve Current Sync Paths on Exit" msgstr "Enregister les chemins de synchro en quittant" msgid "Show Tas&k Tab" msgstr "Afficher l'onglet de tâches" msgid "&Commit" msgstr "&Committer" msgid "&Patch Branch" msgstr "Branche de &patch" msgid "Revision &Details" msgstr "&Détails de révision" msgid "&Search" msgstr "Rechercher" msgid "S&ynchronize" msgstr "S&ynchroniser" msgid "Refresh current repository" msgstr "Rafraîchir le dépôt actuel" msgid "Refresh &Task Tab" msgstr "Rafraîchir l'onglet de &tâche" msgid "Refresh only the current task tab" msgstr "Rafraîchir uniquement l'onglet de tâche actuel" msgid "Load &All Revisions" msgstr "Ch&arger toutes les révisions" msgid "Load all revisions into graph" msgstr "Charger toutes les révisions dans le graphe" msgid "Go to current revision" msgstr "Aller à la révision actuelle" msgid "&Goto Revision..." msgstr "Aller à la révision..." msgid "Go to a specific revision" msgstr "Aller à une révision précise" msgid "Filter graph with revision sets or branches" msgstr "Filtrer le graphe avec des ensembles de révisions ou des branches" msgid "&Workbench Toolbars" msgstr "Barres d'outils du &Workbench" msgid "&Lock File..." msgstr "Verrouiller un fichier..." msgid "Lock or unlock files" msgstr "Verrouiller ou déverrouiller des fichiers" msgid "Update working directory or switch revisions" msgstr "Mettre à jour le répertoire de travail ou changer de révision" msgid "&Shelve..." msgstr "&Shelve..." msgid "&Import Patches..." msgstr "&Importer des patchs..." msgid "U&nbundle..." msgstr "Dépaqueter (u&nbundle)..." msgid "&Merge..." msgstr "Fusionner..." msgid "Merge with the other head of the current branch" msgstr "Fusionner avec l'autre tête de la branche courante" msgid "&Resolve..." msgstr "&Résoudre..." msgid "R&ollback/Undo..." msgstr "R&ollback/Défaire..." msgid "&Purge..." msgstr "&Purger..." msgid "&Bisect..." msgstr "&Bisect..." msgid "&Verify" msgstr "&Vérifier" msgid "Re&cover" msgstr "Ré&cupérer" msgid "&Web Server" msgstr "Serveur &Web" msgid "E&xplorer Help" msgstr "Aide d'E&xplorer" msgid "&Readme" msgstr "Lisez-moi" msgid "About &Qt" msgstr "À propos de &Qt" msgid "&About TortoiseHg" msgstr "À propos de TortoiseHg" msgid "&Incoming" msgstr "Entrant" msgid "&Pull" msgstr "Tirer" msgid "&Outgoing" msgstr "Sortant" msgid "P&ush" msgstr "Pousser" msgid "&Sync Bookmarks..." msgstr "&Synchroniser des signets..." #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" "tirer : %s\n" "pousser : %s" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" "Il n'y a aucun chemin de synchronisation configuré.\n" "Ouvrir l'onglet Synchronisation pour les configurer." msgid "Check for incoming changes" msgstr "Chercher les révisions entrantes" msgid "Pull incoming changes" msgstr "Tirer les révisions entrantes" msgid "Detect outgoing changes" msgstr "Détecter les révisions sortantes" msgid "Push outgoing changes" msgstr "Pousser les révisions sortantes" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" "Chercher les révisions entrantes depuis\n" "%s" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" "Tirer les révisions entrantes depuis\n" "%s" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" "Détecter les révisions sortantes vers\n" "%s" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" "Pousser les révisions sortantes vers\n" "%s" #, python-format msgid "Execute custom tool '%s'" msgstr "Lancer l'outil personnalisé '%s'" msgid "Custom Toolbar &Settings" msgstr "Configuration de la barre d'outils personnalisée" msgid "TortoiseHg Workbench" msgstr "TortoiseHg Workbench" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "%s - Workbench de TortoiseHg - %s" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "%s - TortoiseHg Workbench" msgid "Goto revision" msgstr "Aller à la révision" msgid "Enter revision identifier" msgstr "Entrer l'identifiant de révision" msgid "Select repository directory to open" msgstr "Sélectionner le répertoire de dépôt à ouvrir" msgid "README not configured" msgstr "LISEZ-MOI non configuré" msgid "" "A README file is not configured for the current repository.

                                              To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" "Un fichier LISEZ-MOI n'est pas configuré pour le dépôt actuel.

                                              Pour " "configurer un fichier LISEZ-MOI pour un dépôt, ouvrir le fichier de " "configuration du dépôt, ajouter une clé 'readme' à la section " "'tortoisehg' et indiquer le nom du fichier ou l'URL du fichier LISEZ-" "MOI du dépôt." msgid "Issue Tracker Plugin Error" msgstr "Erreur du plugin de suivi de problème" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "Ne peut pas instancier un objet COM du plugin de suivi de problème" msgid "This error will not be shown again until you restart the workbench" msgstr "" "Cette erreur ne sera plus affichée jusqu'au prochain démarrage du workbench." msgid "Error getting commit message information from Issue Tracker plugin" msgstr "" "Erreur en récupérant le message de commit du plugin de suivi de problème" msgid "Error executing \"commit finished\" trigger" msgstr "Erreur durant le déclencheur \"commit terminé\"" msgid "Cannot open Plugin Options dialog" msgstr "Ne peut pas ouvrir le dialogue des options plugin" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "" "ne pas vérifier le certificat du serveur (ignorant la config web.cacerts)" msgid "[--insecure] [SOURCE]" msgstr "[--insecure] [SOURCE]" #, python-format msgid "unsupported URL: %s" msgstr "URL non supportée : %s" #, python-format msgid "%s certificate error: no certificate received" msgstr "erreur de certificat %s : aucun certificat reçu" msgid "move after the specified patch" msgstr "déplacer après le patch spécifié" msgid "[--after PATCH] PATCH..." msgstr "[--after PATCH] PATCH..." msgid "unknown patch to move specified" msgstr "patch inconnu spécifié à déplacer" msgid "invalid patch position specified" msgstr "position invalide de patch spécifiée" msgid "cannot move applied patches" msgstr "ne peut pas déplacer les patches appliqués" #, python-format msgid "patch %s not in series" msgstr "patch %s pas dans la série" msgid "cannot move into applied patches" msgstr "ne peut pas déplacer dans les patches appliqués" msgid "abort: " msgstr "abandon : " msgid "hint: " msgstr "indice : " #, python-format msgid "HTTP Error: %d (%s)" msgstr "Erreur HTTP : %d (%s)" #, python-format msgid "URLError: %s" msgstr "Erreur d'URL : %s" msgid "SSL: Server certificate verify failed" msgstr "SSL : la vérification du certificat du serveur a échoué" #, python-format msgid "SSL: unknown error %s:%s" msgstr "SSL : erreur inconnue %s:%s" #, python-format msgid "SSL error: %s" msgstr "Erreur SSL : %s" msgid "hgsubversion packaged with thg" msgstr "hgsubversion fourni avec thg" msgid "hggit packaged with thg" msgstr "hggit fourni avec thg" msgid "inotify is not supported on this platform" msgstr "inotify n'est pas supporté sur cette plate-forme" msgid "eol is incompatible with win32text" msgstr "eol est incompatible avec win32text" msgid "win32text is incompatible with eol" msgstr "win32text est incompatible avec eol" msgid "hgsubversion is incompatible with perfarce" msgstr "hgsubversion est incompatible avec perfarce" msgid "perfarce is incompatible with hgsubversion" msgstr "perfarce est incompatible avec hgsubversion" msgid "Workbench custom toolbar" msgstr "Barre d'outils personnalisée" msgid "Revision details context menu" msgstr "Menu contextuel de détails de révision" msgid "Pair selection context menu" msgstr "Menu contextuel lors d'une sélection de paire" msgid "Multiple selection context menu" msgstr "Menu contextuel lors d'une sélection multiple" msgid "Commit context menu" msgstr "Menu contextuel de commit" msgid "File context menu (on manifest and revision details)" msgstr "Menu contextuel de fichier (manifeste et détails de révision)" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "%d an" msgstr[1] "%d ans" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "%d mois" msgstr[1] "%d mois" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "%d semaine" msgstr[1] "%d semaines" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "%d jour" msgstr[1] "%d jours" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "%d heure" msgstr[1] "%d heures" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "%d minute" msgstr[1] "%d minutes" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d seconde" msgstr[1] "%d secondes" msgid "in the future" msgstr "dans le futur" msgid "now" msgstr "maintenant" #, python-format msgid "command parse error: %s" msgstr "erreur d'analyse de la commande : %s" #, python-format msgid "no matches found: %s" msgstr "aucune correspondance trouvée : %s" msgid "Commit..." msgstr "Committer..." msgid "Commit changes in repository" msgstr "Committer les changements du dépôt" msgid "Create Repository Here" msgstr "Créer un dépôt ici" msgid "Create a new repository" msgstr "Créer un nouveau dépôt" msgid "Clone..." msgstr "Cloner..." msgid "Create clone here from source" msgstr "Créer un clone ici depuis la source" msgid "File Status" msgstr "Statut du fichier" msgid "Repository status & changes" msgstr "Status & changements du dépôt" msgid "Add Files..." msgstr "Ajouter des fichiers..." msgid "Add files to version control" msgstr "Ajouter le fichier dans le gestionnaire de version" msgid "Revert Files..." msgstr "Récupérer le fichier antérieur..." msgid "Revert file changes" msgstr "Récupérer les changements antérieurs" msgid "Forget Files..." msgstr "Oublier le fichier..." msgid "Remove files from version control" msgstr "Enlever le fichier du gestionnaire de version" msgid "Remove Files..." msgstr "Effacer les fichiers..." msgid "Rename File" msgstr "Renommer le fichier" msgid "Rename file or directory" msgstr "Renommer le fichier ou le dossier" msgid "View change history in repository" msgstr "Afficher l'historique des changements du dépôt" msgid "File History" msgstr "Historique du fichier" msgid "View change history of selected files" msgstr "Afficher l'historique des changements des fichiers sélectionnés" msgid "Shelve Changes" msgstr "Changements du \"shelf\"" msgid "Move changes between working dir and patch" msgstr "Déplacer les changements entre le répertoire de travail et le patch" msgid "Synchronize" msgstr "Synchroniser" msgid "Synchronize with remote repository" msgstr "Synchroniser avec un dépôt distant" msgid "Start web server for this repository" msgstr "Démarrer le serveur web pour ce dépôt" msgid "Update..." msgstr "Mettre à jour..." msgid "Update working directory" msgstr "Mise à jour du dossier de travail" msgid "Update Icons" msgstr "Mettre à jour les icônes" msgid "Update icons for this repository" msgstr "Mettre à jour les icônes du dépôt" msgid "Global Settings" msgstr "Paramètres généraux" msgid "Configure user wide settings" msgstr "Configuration pour les utilisateurs" msgid "Repository Settings" msgstr "Paramètres du dépôt" msgid "Configure repository settings" msgstr "Configuration du dépôt" msgid "Explorer Extension Settings" msgstr "Préférences de l'extension Explorateur" msgid "Configure Explorer extension" msgstr "Configurer de l'extension de l'Explorateur" msgid "About TortoiseHg" msgstr "À propos de TortoiseHg" msgid "Show About Dialog" msgstr "À propos..." msgid "Diff to parent" msgstr "Diff avec le parent" msgid "View changes using GUI diff tool" msgstr "Afficher les changements avec l'interface graphique de diff" msgid "Edit Ignore Filter" msgstr "Éditer le filtre des ignorés" msgid "Edit repository ignore filter" msgstr "Éditer le filtre des ignorés du dépôt" msgid "Guess Renames" msgstr "Deviner les renommages" msgid "Detect renames and copies" msgstr "Détecter les renommages et les copies" msgid "Search History" msgstr "Rechercher dans l'historique" msgid "Search file revisions for patterns" msgstr "Chercher des motifs dans les révisions du fichier" msgid "DnD Synchronize" msgstr "Synchroniser glissé-déposé" msgid "Synchronize with dragged repository" msgstr "Synchroniser avec le dépôt déplacé" #, python-format msgid "unrecognized response: %s" msgstr "réponse non reconnue : %s" msgid "password: " msgstr "mot de passe : " #, python-format msgid "repository %s not found" msgstr "Dépôt %s non trouvé" msgid "win32ill: cannot create window for messages" msgstr "win32ill: ne peut pas créer une fenêtre pour des messages" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "win32ill: plate-forme non supportée : %s\n" msgid "win32ill: interrupted while stopping message loop\n" msgstr "win32ill: interrompu en arrêtant la boucle de message\n" #~ msgid "applying patch\n" #~ msgstr "application du patch\n" #~ msgid "making snapshot of %d files from rev %s\n" #~ msgstr "création de l'instantané de %d fichiers depuis la revision %s\n" #~ msgid "edit failed" #~ msgstr "erreur d'édition" #~ msgid "restoring %r to %r\n" #~ msgstr "restauration de %r vers %r\n" #~ msgid "limit number of changes displayed" #~ msgstr "limiter le nombre de changements affichés" #~ msgid " [Ynsfdaq?] " #~ msgstr " [Ynsfdaq?] " #~ msgid "this is a binary file\n" #~ msgstr "ceci est un fichier binaire\n" #~ msgid "There is no Mercurial repository here (.hg not found)" #~ msgstr "Il n'y a pas de dépôt Mercurial ici (.hg non trouvé)" #~ msgid " and " #~ msgstr " et " #~ msgid "hg shelve [OPTION]... [FILE]..." #~ msgstr "hg shelve [OPTION]... [FILE]..." #~ msgid "run server in background" #~ msgstr "démarrer le serveur en tache de fond" #~ msgid "listening at http://%s%s/%s (%s:%d)\n" #~ msgstr "écoute sur http://%s%s/%s (%s:%d)\n" #~ msgid "cannot start server: " #~ msgstr "ne peut pas démarrer le serveur " #~ msgid "hg unshelve [OPTION]... [FILE]..." #~ msgstr "hg unshelve [OPTION]... [FILE]..." #~ msgid "name to show in web pages (default: working dir)" #~ msgstr "nom à afficher dans les pages web (défaut : working dir)" #~ msgid "for remote clients" #~ msgstr "pour les clients à distance" #~ msgid "web templates to use" #~ msgstr "thème web à utiliser" #~ msgid "template style to use" #~ msgstr "style à utiliser" #~ msgid "address to use" #~ msgstr "adresse à utiliser" #~ msgid "port to use (default: 8000)" #~ msgstr "port à utiliser (défaut : 8000)" #~ msgid "SSL certificate file" #~ msgstr "fichier de certification SSL" #~ msgid "hg serve [OPTION]..." #~ msgstr "hg serve [OPTION]..." #~ msgid "use IPv6 in addition to IPv4" #~ msgstr "utiliser l'IPv6 en plus de l'IPv4" #~ msgid "%d selected, %d total" #~ msgstr "%d sélectionné(s), %d au total" #~ msgid "prefix path to serve from (default: server root)" #~ msgstr "chemin de base du serveur (défaut : racine du serveur)" #~ msgid "name of file to write process ID to" #~ msgstr "nom du fichier où enregistrer les ID des processus" #~ msgid "name of error log file to write to" #~ msgstr "nom du fichier journal des erreurs à créer" #~ msgid "name of access log file to write to" #~ msgstr "nom du fichier journal des accès à créer" #~ msgid "a tag named \"%s\" already exists" #~ msgstr "une étiquette du nom de \"%s\" existe déjà" #~ msgid "backup %r as %r\n" #~ msgstr "sauvegarder %r vers %r\n" #~ msgid "%d hunks, %d lines changed\n" #~ msgstr "%d morceaux, %d lignes modifiées\n" #~ msgid "user quit" #~ msgstr "l'utilisateur quitte" #~ msgid "this modifies a binary file (all or nothing)\n" #~ msgstr "ceci modifie un fichier binaire\n" #~ msgid "_Add" #~ msgstr "_Ajouter" #~ msgid "" #~ "Your username has not been configured.\n" #~ "\n" #~ "Please configure your username and try again" #~ msgstr "" #~ "votre nom d'utilisateur n'a pas été défini.\n" #~ "\n" #~ "Veuillez le définir et réessayer." #~ msgid "New Search" #~ msgstr "Nouvelle recherche" #~ msgid "Open new search tab" #~ msgstr "Ouvrir un nouvel onglet de recherche" #~ msgid "Unable to create " #~ msgstr "Impossible de créer " #~ msgid "Source path is empty" #~ msgstr "Le chemin source est vide" #~ msgid "_Undo" #~ msgstr "Ann_uler" #~ msgid "Re_vert" #~ msgstr "Re_venir" #~ msgid "Backout" #~ msgstr "Revenir" #~ msgid "Unable to apply patch" #~ msgstr "Impossible d'effectuer la mise à jour." #~ msgid "Errors during rollback!" #~ msgstr "Erreur lors du retour en arrière !" #~ msgid "Stop operation on current tab" #~ msgstr "Annuler les opérations sur l'onglet courant." #~ msgid "" #~ "Comma separated list of exclusion patterns. Exclusion patterns are " #~ "applied after inclusion patterns." #~ msgstr "" #~ "Liste des règles d'exclusion, séparées par des virgules. Par défaut, le " #~ "dépôt entier est parcouru." #~ msgid "Start this search" #~ msgstr "Lancer cette recherche" #~ msgid "" #~ "Comma separated list of inclusion patterns. By default, the entire " #~ "repository is searched." #~ msgstr "" #~ "Liste des règles d'inclusion, séparées par des virgules. Par défaut, le " #~ "dépôt entier est parcouru." #~ msgid "Show all matching revisions" #~ msgstr "Afficher toutes les versions correspondantes" #~ msgid "Show line numbers" #~ msgstr "Afficher les numéros de ligne" #~ msgid "Unable to annotate " #~ msgstr "Impossible d'annoter " #~ msgid "File is unrevisioned" #~ msgstr "Le fichier n'est pas suivi" #~ msgid "You must provide a search expression" #~ msgstr "Vous devez fournir une expression régulière" #~ msgid "Search \"%s\"" #~ msgstr "Recherche \"%s\"" #~ msgid "Search %d" #~ msgstr "Recherche %d" #~ msgid "No regular expression given" #~ msgstr "Aucune expression régulière fournie" #~ msgid "Matches" #~ msgstr "Correspondances" #~ msgid "Invalid path" #~ msgstr "Chemin non valide" #~ msgid " Aborted" #~ msgstr " annulé(e)" #~ msgid " Messages and Errors" #~ msgstr " Messages et Erreurs" #~ msgid "Accept Match" #~ msgstr "Accepte l'occurence" #~ msgid "Minimum Simularity Percentage" #~ msgstr "Pourcentage de similitude minimal" #~ msgid "Unrevisioned Files" #~ msgstr "FIchiers non suivis" #~ msgid "Find Copies" #~ msgstr "Cherche les Copies" #~ msgid "Save File" #~ msgstr "Enregistrer le fichier" #~ msgid "Differences from Source to Dest" #~ msgstr "Différences entre Source et Cible" #~ msgid "Candidate Matches" #~ msgstr "Occurences possibles" #~ msgid "" #~ "== %s and %s have identical contents ==\n" #~ "\n" #~ msgstr "" #~ "== %s et %s ont des contenus identiques ==\n" #~ "\n" #~ msgid "finding source of " #~ msgstr "recherche de la source de " #~ msgid "" #~ "\n" #~ "[command interrupted]" #~ msgstr "" #~ "\n" #~ "[commande interrompue]" #~ msgid "Envelope" #~ msgstr "Enveloppe" #~ msgid "Configure email settings" #~ msgstr "Configure les réglages d'e-mail" #~ msgid "Email outgoing changes" #~ msgstr "Envoie par e-mail les changements à faire" #~ msgid "Email Mercurial Patches" #~ msgstr "Envoyer par e-mail des mises à jour de Mercurial" #~ msgid "You must specify a recipient" #~ msgstr "Vous devez spécifier un destinataire." #~ msgid "Patch Series (Bundle) Description" #~ msgstr "Description du groupe de mises à jour" #~ msgid "Info required" #~ msgstr "Information requise" #~ msgid "You must specify a sender address" #~ msgstr "Vous devez spécifier une adresse d'expédition" #~ msgid "Remove Selected" #~ msgstr "Supprimer la sélection" #~ msgid "Filters" #~ msgstr "Filtres" #~ msgid "Unknown Files" #~ msgstr "Fichiers inconnus" #~ msgid "You must configure SMTP" #~ msgstr "Vous devez configurer le SMTP" #~ msgid "Glob:" #~ msgstr "Glob:" #~ msgid "Add special files (.hgignore, ...)" #~ msgstr "Ajouter les fichiers spéciaux (.hgignore, ...)" #~ msgid "Make repo compatible with Mercurial 1.0" #~ msgstr "Créé un dépôt compatible avec Mercurial 1.0" #~ msgid "Please enter the directory path" #~ msgstr "Veuillez entrer le chemin du répertoire" #~ msgid "Unable to create new repository" #~ msgstr "Impossible de créer le nouveau dépôt" #~ msgid "Error when creating repository" #~ msgstr "Erreur lors de la création du dépôt" #~ msgid "rename takes one or two path arguments" #~ msgstr "renommer nécessite un ou deux chemins comme paramètre." #~ msgid "hgtk: unknown command '%s'\n" #~ msgstr "hgtk : commande inconnue '%s'\n" #~ msgid "hgtk: %s\n" #~ msgstr "hgtk : %s\n" #~ msgid "" #~ "hgtk: command '%s' is ambiguous:\n" #~ " %s\n" #~ msgstr "" #~ "hgtk : la commande '%s' est ambigüe:\n" #~ " %s\n" #~ msgid "hgtk %s: %s\n" #~ msgstr "hgtk %s : %s\n" #~ msgid "use \"hgtk help\" for the full list of commands" #~ msgstr "utiliser \"hgtk help\" pour la liste complète des commandes" #~ msgid "" #~ "use \"hgtk help\" for the full list of commands or \"hgtk -v\" for details" #~ msgstr "" #~ "utiliser \"hgtk help\" pour la liste complète des commandes ou \"hgtk -v" #~ "\" pour les détails" #~ msgid "use \"hgtk -v help %s\" to show global options" #~ msgstr "utiliser \"hgtk -v help %s\" pour afficher les options globales" #~ msgid "use \"hgtk -v help%s\" to show aliases and global options" #~ msgstr "" #~ "utiliser \"hgtk -v help %s\" pour afficher les alias et les options " #~ "globales" #~ msgid "(No help text available)" #~ msgstr "(pas d'aide disponible)" #~ msgid "Hgtk - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" #~ msgstr "" #~ "Hgtk - Interface graphique de TortoiseHg pour le gestionnaire de version " #~ "Mercurial (Hg)\n" #~ msgid "hgtk about" #~ msgstr "hgtk à propos" #~ msgid "hgtk add [FILE]..." #~ msgstr "hgtk add [FICHIER]" #~ msgid "hgtk clone SOURCE [DEST]" #~ msgstr "hgtk clone ORIGINE [CIBLE]" #~ msgid "hgtk hgignore [FILE]" #~ msgstr "hgtk hgignore [FICHIER]" #~ msgid "hgtk datamine" #~ msgstr "hgtk datamine" #~ msgid "hgtk commit [OPTIONS] [FILE]..." #~ msgstr "hgtk commit [OPTIONS] [FICHIER]..." #~ msgid "hgtk merge" #~ msgstr "hgtk merge" #~ msgid "hgtk log [OPTIONS] [FILE]" #~ msgstr "hgtk log [OPTIONS] [FICHIER]" #~ msgid "hgtk init [DEST]" #~ msgstr "hgtk init [CIBLE]" #~ msgid "hgtk repoconfig" #~ msgstr "hgtk repoconfig" #~ msgid "hgtk guess" #~ msgstr "hgtk guess" #~ msgid "hgtk userconfig" #~ msgstr "hgtk userconfig" #~ msgid "hgtk revert [FILE]..." #~ msgstr "hgtk revert [FICHIER]..." #~ msgid "hgtk remove [FILE]..." #~ msgstr "hgtk remove [FICHIER]..." #~ msgid "hgtk rename SOURCE [DEST]" #~ msgstr "hgtk rename ORIGINE [CIBLE]" #~ msgid "hgtk status [FILE]..." #~ msgstr "hgtk status [FICHIER]..." #~ msgid "hgtk recovery" #~ msgstr "hgtk recovery" #~ msgid "hgtk synch" #~ msgstr "hgtk synch" #~ msgid "hgtk shelve" #~ msgstr "hgtk shelve" #~ msgid "[-o] CMD" #~ msgstr "[-o] CMD" #~ msgid "hgtk serve [OPTION]..." #~ msgstr "hgtk serve [OPTION]..." #~ msgid "show the command options" #~ msgstr "affiche les options des commandes" #~ msgid "hgtk version [OPTION]" #~ msgstr "hgtk version [OPTION]" #~ msgid "_Filter" #~ msgstr "_Filtrer" #~ msgid "hgtk help [COMMAND]" #~ msgstr "hgtk help [COMMANDE]" #~ msgid "Reload revision history" #~ msgstr "Recharge l'historique des versions" #~ msgid "Revert %s to contents at revision %d?" #~ msgstr "Faire revenir %s à la version %d ?" #~ msgid "Branch Operations" #~ msgstr "Opérations de branches" #~ msgid "Paste _Filenames" #~ msgstr "Coller Noms de _Fichiers" #~ msgid "" #~ "The following lines are over the %i-character limit: %s.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "Les lignes suivantes dépassent la limit de %i caractères: %s.\n" #~ "\n" #~ "Voulez-vous ignorer les règles de formattage, et continuer l'envoi ?" #~ msgid "" #~ "The summary line is not followed by a blank line.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "La ligne de compte-rendu n'est pas suivie d'une ligne vide.\n" #~ "\n" #~ "Voulez-vous ignorer les règles de formattage, et continuer l'envoi ?" #~ msgid "Message format configuration error" #~ msgstr "Erreur de configuration du format de message" #~ msgid "close branch: " #~ msgstr "fermer une branche : " #~ msgid "new branch: " #~ msgstr "nouvelle branche : " #~ msgid "The summary line is not followed by a blank line" #~ msgstr "La ligne de description n'est pas suivie d'une ligne vide." #~ msgid "App_ly Format" #~ msgstr "App_liquer Format" #~ msgid "The summary line length of %i is greater than %i" #~ msgstr "La longueur de la ligne de description de %i est plus grande que %i" #~ msgid "Message format needs to be configured" #~ msgstr "le format de message doit être configuré" #~ msgid "shelve changes to %s?" #~ msgstr "archiver les modifications vers %s ?" #~ msgid "shelve this change to %r?" #~ msgstr "archiver ce changement vers %r ?" #~ msgid "applying shelved patch\n" #~ msgstr "application du patch archivé\n" #~ msgid "unshelve completed\n" #~ msgstr "désarchivage terminé\n" #~ msgid "removing shelved patches\n" #~ msgstr "suppression des patchs archivés\n" #~ msgid "restoring backup files\n" #~ msgstr "restoration des fichiers de sauvegarde\n" #~ msgid "removing shelve file\n" #~ msgstr "suppression du fichier d'archive\n" #~ msgid "saving patch to shelve\n" #~ msgstr "sauvegarde de patch à archiver\n" #~ msgid "shelve can only be run interactively" #~ msgstr "l'archivage ne peut utilisé qu'interactivement." #~ msgid "no changes to shelve\n" #~ msgstr "aucune modification à archiver\n" #~ msgid "mark new/missing files as added/removed before shelving" #~ msgstr "" #~ "marquer les fichiers nouveaux ou manquants comme ajoutés ou supprimés " #~ "avant l'archivage" #~ msgid "append to existing shelve data" #~ msgstr "ajouter aux données d'archivage existantes" #~ msgid "overwrite existing shelve data" #~ msgstr "écraser les données d'archivage existantes" #~ msgid "inspect shelved changes only" #~ msgstr "inspecter seulement les changements archivés" #~ msgid "proceed even if patches do not unshelve cleanly" #~ msgstr "continuer même si les patches ne se restaurent pas correctement" #~ msgid "revisions to compare" #~ msgstr "versions à comparer" #~ msgid "Custom Filter" #~ msgstr "Filtre utilisateur" #~ msgid "TortoiseHg Clone" #~ msgstr "Clonage TortoiseHg" #~ msgid "Toggle _Wordwrap" #~ msgstr "Activer/déactiver le retour à la ligne" #~ msgid "Confirm revert file to old revision" #~ msgstr "Confirmer le retour à l'ancienne version" #~ msgid "Changeset Description" #~ msgstr "Description de l'ensemble de modifications" #~ msgid "Please enter a valid source path" #~ msgstr "Veuillez entrer un chemin origine valide" #~ msgid "Clone" #~ msgstr "Cloner" #~ msgid "Apply" #~ msgstr "Appliquer" #~ msgid "" #~ "Revert all files to revision %d?\n" #~ "This will overwrite your local changes" #~ msgstr "Rétablir tous les fichiers de la révision %d ?" #~ msgid "Write bundle to" #~ msgstr "Écrire le paquet sous" #~ msgid "Invalid date specification" #~ msgstr "Date spécifiée invalide" #~ msgid "Merge target (other)" #~ msgstr "Destination de fusion (autre)" #~ msgid "Undo" #~ msgstr "Annuler" #~ msgid "Must supply a target revision" #~ msgstr "Vous devez fournir un révision destinataire" #~ msgid "Current revision (local)" #~ msgstr "Révision courante (locale)" #~ msgid "Stop the hg operation" #~ msgstr "Annuler l'opération hg" #~ msgid "Clean checkout, undo all changes" #~ msgstr "Nettoyer, annule toutes les modifications" #~ msgid "Clean checkout of original revision?" #~ msgstr "Rétablir la révision d'origine" #~ msgid "Confirm undo merge" #~ msgstr "Confirmer l'annulation de la fusion" #~ msgid "command is running" #~ msgstr "commande en cours" #~ msgid "Cannot close now" #~ msgstr "Ne peut actuellement pas être fermé" #~ msgid "Confirm clean repository" #~ msgstr "Confirmer le nettoyer du dépôt" #~ msgid "HTTP Port:" #~ msgstr "Port HTTP :" #~ msgid "Configure" #~ msgstr "Configurer" #~ msgid "Configure web settings" #~ msgstr "Configurer les paramètres internet" #~ msgid "Start server" #~ msgstr "Lancer le serveur" #~ msgid "Stop server" #~ msgstr "Arrêter le serveur" #~ msgid "Invalid port 2048..65535" #~ msgstr "Port invalide 2034..65535" #~ msgid "Confirm Really Exit?" #~ msgstr "Réellement confirmer la fermeture ?" #~ msgid "_delete" #~ msgstr "_supprimer" #~ msgid "refresh" #~ msgstr "rafraîchir" #~ msgid "path" #~ msgstr "chemin" #~ msgid "ms" #~ msgstr "ms" #~ msgid "Copy file to" #~ msgstr "Copier le fichier sous" #~ msgid "Rename file to:" #~ msgstr "Renommer le fichier sous :" #~ msgid "Nothing Removed" #~ msgstr "Rien n'a été supprimé" #~ msgid "st" #~ msgstr "ier" #~ msgid "Nothing Moved" #~ msgstr "Rien n'a été déplacé" #~ msgid "Nothing Copied" #~ msgstr "Rien n'a été copié" #~ msgid "Nothing Added" #~ msgstr "Rien n'a été ajouté" #~ msgid "Delete Errors" #~ msgstr "Supprimer les erreurs" #~ msgid "Nothing" #~ msgstr "Rien" #~ msgid "Advanced Options" #~ msgstr "Options avancées" #~ msgid "No repository selected" #~ msgstr "Aucun dépôt sélectionné" #~ msgid "Bundle (*.hg)" #~ msgstr "Paquet (*.hg)" #~ msgid "Bundle (*)" #~ msgstr "Paquet (*)" #~ msgid "Select Bundle" #~ msgstr "Sélectionner le paquet" #~ msgid "[All Files]" #~ msgstr "[Tous les fichiers]" #~ msgid " %s is larger than the specified max diff size" #~ msgstr " %s est plus gros que la taille maximum spécifiée" #~ msgid "Select Folder" #~ msgstr "Sélectionner le répertoire" #~ msgid "All files" #~ msgstr "Tous les fichiers" #~ msgid "(version %s)" #~ msgstr "(version %s)" #~ msgid "with %s" #~ msgstr "avec %s" #~ msgid "Do you want to abort?" #~ msgstr "Voulez-vous annuler?" #~ msgid "Confirm Abort" #~ msgstr "Confirmer l'annulation" #~ msgid "All Files (*.*)" #~ msgstr "Tous les fichiers (*.*)" #~ msgid "Save as.." #~ msgstr "Enregistrer sous..." #~ msgid "Advanced options" #~ msgstr "Options avancées" #~ msgid "Source and destination are the same" #~ msgstr "Source et destination sont les mêmes" #~ msgid "Please specify different paths" #~ msgstr "Veuillez spécifier des chemins différents" #~ msgid "Advanced" #~ msgstr "Avancé" #~ msgid "Archive" #~ msgstr "Archive" #~ msgid "Compressed zip archives" #~ msgstr "Archives zip compressées" #~ msgid "" #~ "The destination \"%s\" already exists!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "La destination \"%s\" existe déjà !\n" #~ "\n" #~ "Voulez-vous l'écraser ?" #~ msgid "" #~ "The directory \"%s\" isn't empty!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "Le répertoire \"%s\" n'est pas vide !\n" #~ "\n" #~ "Voulez-vous l'écraser ?" #~ msgid "_Forget" #~ msgstr "_Oublier" #~ msgid "_Diff" #~ msgstr "_Diff" #~ msgid "_View" #~ msgstr "_Affichage" #~ msgid "_Operations" #~ msgstr "_Opérations" #~ msgid "Use uncompressed transfer" #~ msgstr "Utiliser le transfert non compressé" #~ msgid "Error: %s" #~ msgstr "Erreur : %s" #~ msgid "Add/Remove the following files?" #~ msgstr "Ajouter/Supprimer les fichier suivants ?" #~ msgid "Invalid regular expression" #~ msgstr "Expression régulière invalide" #~ msgid "Info Required" #~ msgstr "Informations Requises" #~ msgid "Contents" #~ msgstr "Contenu" #~ msgid "_Tools" #~ msgstr "_Outils" #~ msgid "Loading history..." #~ msgstr "Chargement de l'historique..." #~ msgid "_Help" #~ msgstr "_Aide" #~ msgid "unknown CmdWidget style: %s" #~ msgstr "style CmdWidget inconnu : %s" #~ msgid "Select" #~ msgstr "Sélection" #~ msgid "Select Revision" #~ msgstr "Sélectionner une révision" #~ msgid "Invalid Revision" #~ msgstr "Révision invalide" #~ msgid "revision number, changeset ID, branch or tag" #~ msgstr "numéro de révision" #~ msgid "Lang \"%s\" can not be set.\n" #~ msgstr "La langue \"%s\" ne peut être paramétrée.\n" #~ msgid "" #~ "Select language for spell checking.\n" #~ "\n" #~ "Empty is for the default language.\n" #~ "When all text is highlited, the dictionary\n" #~ "is probably not installed.\n" #~ "\n" #~ "examples: en, en_GB, en_US" #~ msgstr "" #~ "Sélectionner la langue de correction orthographique\n" #~ "\n" #~ "Blanc correspond à la langue par défaut.\n" #~ "Si tout le texte est surligné, le dictionnaire\n" #~ "est probablement non installé.\n" #~ "\n" #~ "exemples : en, en_GB, en_US" #~ msgid "Spell Check Language" #~ msgstr "Langue de Correction Orthographique" #~ msgid "Command Log" #~ msgstr "Journal des Commandes" #~ msgid "Send" #~ msgstr "Envoyer" #~ msgid "Test" #~ msgstr "Essai" #~ msgid "Send emails" #~ msgstr "Envoyer des emails" #~ msgid "Show emails which would be sent" #~ msgstr "Afficher les emails qui seraient envoyés" #~ msgid "Stop current transaction" #~ msgstr "Arrêter la transaction courrante" #~ msgid "[command returned code %d " #~ msgstr "[la commande a retourné le code %d " #~ msgid "Flags:" #~ msgstr "Fanions :" #~ msgid "[command completed successfully " #~ msgstr "[la commande s'est terminée avec succès " #~ msgid "Apply to:" #~ msgstr "Appliquer à :" #~ msgid "Rename error" #~ msgstr "Erreur de renommage" #~ msgid "Move Up" #~ msgstr "Déplacer vers le haut" #~ msgid "Move Down" #~ msgstr "Déplacer vers le bas" #~ msgid "Columns" #~ msgstr "Colonnes" #~ msgid "Log Details" #~ msgstr "Détails du Journal" #~ msgid "Reset Marks" #~ msgstr "Réinitialiser les Marqueurs" #~ msgid "_Navigate" #~ msgstr "_Naviguer" #~ msgid "Revision..." #~ msgstr "Révision..." #~ msgid "_Synchronize" #~ msgstr "_Synchroniser" #~ msgid "Email..." #~ msgstr "Courrier électronique..." #~ msgid "Outgoing" #~ msgstr "Sortant" #~ msgid "Incoming" #~ msgstr "Entrant" #~ msgid "Local Date" #~ msgstr "Date Locale" #~ msgid "Branch Name" #~ msgstr "Nom de branche" #~ msgid "Age" #~ msgstr "Age" #~ msgid "Revision Number" #~ msgstr "Numéro de Révision" #~ msgid "UTC Date" #~ msgstr "Date UTC" #~ msgid "Summary" #~ msgstr "Récapitulatif" #~ msgid "%s branch" #~ msgstr "branche %s" #~ msgid "merges" #~ msgstr "fusions" #~ msgid "Load all" #~ msgstr "Tout charger" #~ msgid "Fetch" #~ msgstr "Récupérer" #~ msgid "Email outgoing changesets" #~ msgstr "Envoyer par courrier électronique les changements sortants" #~ msgid "Push outgoing changesets" #~ msgstr "Envoyer les changements sortants" #~ msgid "load all revisions" #~ msgstr "charger toutes les révisions" #~ msgid "Keywords" #~ msgstr "Mots-clés" #~ msgid "Reject" #~ msgstr "Rejeter" #~ msgid "Universal Date" #~ msgstr "Date Universelle" #~ msgid "Repository is empty" #~ msgstr "Le répertoire est vide" #~ msgid "ID" #~ msgstr "ID" #~ msgid "Merging in %s" #~ msgstr "Fusion dans %s" #~ msgid "Rollback repository '%s' ?" #~ msgstr "Retour à l'état antérieur du référentiel '%s' ?" #~ msgid "Verify" #~ msgstr "Vérifier" #~ msgid "Rollback" #~ msgstr "Retour à l'état antérieur" #~ msgid "Validate repository consistency" #~ msgstr "Valider la cohérence du référentiel" #~ msgid "Clean repository '%s' ?" #~ msgstr "Nettoyer le référentiel '%s' ?" #~ msgid "Abort: %s\n" #~ msgstr "Abandon : %s\n" #~ msgid "Launch browser to view repository" #~ msgstr "Voir le référentiel dans le navigateur" #~ msgid "rename error" #~ msgstr "erreur de renommage" #~ msgid "[command interrupted]" #~ msgstr "[commande interrompue]" #~ msgid "Rename " #~ msgstr "Renommer " #~ msgid "Bookmark \"%s\" has been added" #~ msgstr "Le marque-page \"%s\" a été ajouté" #~ msgid "Bookmark \"%s\" has been moved" #~ msgstr "Le marque-page \"%s\" a été déplacé" #~ msgid "Bookmark name is empty" #~ msgstr "Le nom du marque-page est vide" #~ msgid "Please enter new bookmark name" #~ msgstr "Veuillez entrer un nouveau nom de marque-page" #~ msgid "Bookmark \"%s\" has been renamed to \"%s\"" #~ msgstr "Le marque-page \"%s\" a été renommé en \"%s\"" #~ msgid "a bookmark named \"%s\" already exists" #~ msgstr "Un marque-page nommé \"%s\" existe déjà" #~ msgid "No bookmark named \"%s\" exists" #~ msgstr "Aucun marque-page nommé \"%s\" n'existe" #~ msgid "browser" #~ msgstr "navigateur" #~ msgid "Copyright 2008-2010 Steve Borho and others" #~ msgstr "Copyright 2008-2010 Steve Borho et d'autres" #~ msgid "Backout changeset - %s" #~ msgstr "Retour arrière sur le changement - %s" #~ msgid "Message Line Length" #~ msgstr "Longueur de ligne de message" #~ msgid "Canceled archiving" #~ msgstr "Archivage annulé" #~ msgid "Archived successfully" #~ msgstr "Archivé avec succès." #~ msgid "Bookmark input is empty" #~ msgstr "la saisie de marque-page est vide" #~ msgid "unexpected response id: %s" #~ msgstr "Id de réponse inattendue:%s" #~ msgid "Error in bookmarking" #~ msgstr "Erreur sur le marquage des pages" #~ msgid "Bookmarking completed" #~ msgstr "Marque-page fait" #~ msgid "Please enter bookmark name" #~ msgstr "Veuullez entrer le nom du marque-page" #~ msgid "Bookmark new name input is empty" #~ msgstr "Le nouveau nom du marque-page est vide" #~ msgid "type" #~ msgstr "type" #~ msgid "_View at Revision" #~ msgstr "_Voir à la Révision" #~ msgid "_Visual Diff" #~ msgstr "Diff _Visuel" #~ msgid "Diff to _local" #~ msgstr "Diff par rapport à la version _locale" #~ msgid "_Revert File Contents" #~ msgstr "_Revenir sur les contenus des fichiers" #~ msgid "_File History" #~ msgstr "Historique du _Fichier" #~ msgid "_Annotate File" #~ msgstr "_Annoter le fichier" #~ msgid "Diff to second Parent" #~ msgstr "Diff par rapport aux deuxième parent" #~ msgid "Enable _Wordwrap" #~ msgstr "Autoriser la _Césure" #~ msgid "Cloned successfully" #~ msgstr "Cloné avec succès" #~ msgid " - qnew" #~ msgstr " - qnew" #~ msgid " - qrefresh " #~ msgstr " - qrefresh " #~ msgid "merging " #~ msgstr "fusion de " #~ msgid "Close current named branch" #~ msgstr "Fermer la branche nommée courante" #~ msgid "Toolbar" #~ msgstr "Barre d'outils" #~ msgid "Always Show Output" #~ msgstr "Toujours montrer le résultat" #~ msgid "_Commit" #~ msgstr "_Valider" #~ msgid "_Remove" #~ msgstr "Supp_rimer" #~ msgid "undo recent commit" #~ msgstr "Défaire la dernière validation" #~ msgid "commit" #~ msgstr "Valider" #~ msgid "Not at head" #~ msgstr "Pas à la tête." #~ msgid "Committer:" #~ msgstr "Valideur" #~ msgid "Push after commit" #~ msgstr "Pousser après la validation" #~ msgid "Recent commit messages..." #~ msgstr "Messages récents de validation.." #~ msgid "refresh top MQ patch" #~ msgstr "Rafraîchir le correctif MQ au sommet" #~ msgid "commit to merge one head" #~ msgstr "vailder pour fusionner une tête" #~ msgid "parent is not a head, commit to add a new head" #~ msgstr "" #~ "le parent n'est pas une tête, vailder pour ajouter une nouvelle tête" #~ msgid "_Commit (-1 head)" #~ msgstr "_Valider (-1 head)" #~ msgid "create new MQ patch" #~ msgstr "Créer un nouveau correctif MQ" #~ msgid "Patch Contents" #~ msgstr "contenu du correctif" #~ msgid "Confirm Undo Commit" #~ msgstr "Confirmer l'annulation de cette validation" #~ msgid "No committable files selected" #~ msgstr "aucun des fichiers sélectionnés n'est validable" #~ msgid "Confirm Add/Remove" #~ msgstr "Confirmer Ajouter/Supprimer" #~ msgid "Undo Commit" #~ msgstr "Défaire la validation" #~ msgid "Confirm Commit" #~ msgstr "Confirmer la validation" #~ msgid "Commit: Invalid username" #~ msgstr "Validation : nom d'utilisateur invalide" #~ msgid "Aborted committing" #~ msgstr "Abandonner la validation" #~ msgid "C_onfigure Format..." #~ msgstr "C_onfigurer le format" #~ msgid "Committing changes..." #~ msgstr "Validation des changements" #~ msgid "Failed to commit" #~ msgstr "Échec de la validation" #~ msgid "Selecting %(sel)d, displaying %(count)d of %(total)d items" #~ msgstr "Selection de %(sel)d, en affichant %(count)d sur %(total)d éléments" #~ msgid "Selecting %(sel)d of %(total)d, displaying all items" #~ msgstr "Selection de %(sel)d of %(total)d, en affichant tous les éléments" #~ msgid "Updating..." #~ msgstr "Mise à jour…" #~ msgid "Displaying all items" #~ msgstr "Affichant tous les éléments" #~ msgid "Canceled backout" #~ msgstr "Retour arrière annulé" #~ msgid "Failed to backout" #~ msgstr "Échec du retour arrière" #~ msgid "Failed to archive" #~ msgstr "Échec de l'archivage" #~ msgid "%s changeset " #~ msgstr "Ensemble de changement %s " #~ msgid "Parent: %(rev)s" #~ msgstr "Parent: %(rev)s" #~ msgid "Patch Preview" #~ msgstr "Prévue de la correction" #~ msgid "Auto-includes:" #~ msgstr "Auto-inclus :" #~ msgid "_View File at Revision" #~ msgstr "_Voir le fichier à la révision" #~ msgid "_Zoom to Change" #~ msgstr "_Zoom sur le changement" #~ msgid "_Annotate Parent" #~ msgstr "Annoter le Parent" #~ msgid "Di_splay Change" #~ msgstr "Afficher le changement" #~ msgid "_Commit (+1 head)" #~ msgstr "Valider" #~ msgid "Repository Explorer" #~ msgstr "Explorateur de dépôt" #~ msgid "Abort: %s" #~ msgstr "Abandon : %s" #~ msgid "Ambiguous Revision" #~ msgstr "Révision ambiguë" #~ msgid "Index" #~ msgstr "Index" #~ msgid "Stop transaction" #~ msgstr "Arrêter la transaction" #~ msgid "Recovery" #~ msgstr "Récupération" #~ msgid "invalid state" #~ msgstr "État non valide" #~ msgid "Close this" #~ msgstr "Fermer" #~ msgid "Email revisions " #~ msgstr "Envoyer par courier les révisions " #~ msgid "" #~ "This feature is only available when sending outgoing changesets. It is " #~ "not applicable with revision ranges." #~ msgstr "" #~ "Cette option n'est disponible qu'à l'envoi des ensembles de changements. " #~ "Elle n'est pas utilisation avec des intervalles de révisions" #~ msgid "mpatch error" #~ msgstr "Erreur mpatch" #~ msgid "%s does not exist\n" #~ msgstr "%s n'existe pas\n" #~ msgid "mpatch expects *.rej file argument\n" #~ msgstr "mpatch s'attend à un paramètre de fichier en '*.rej'\n" #~ msgid "TortoiseHg Init" #~ msgstr "Initialisation de Tortoise HG" #~ msgid "hgtk thgstatus [OPTION]" #~ msgstr "hgtk thgstatus [OPTION]" #~ msgid "hgtk forget [FILE]..." #~ msgstr "hgtk forget [FILE]..." #~ msgid "revision to merge with" #~ msgstr "Révision avec laquelle fusionner" #~ msgid "Merges" #~ msgstr "Fusions" #~ msgid "Ancestry" #~ msgstr "Origines" #~ msgid "Tagged" #~ msgstr "Étiqueté" #~ msgid "Heads" #~ msgstr "Têtes" #~ msgid "hgtk shellconfig" #~ msgstr "hgtk shellconfig" #~ msgid "hgtk import [OPTION] [SOURCE]..." #~ msgstr "hgtk import [OPTION] [SOURCE]..." #~ msgid "import to the repository" #~ msgstr "importer dans le dépôt" #~ msgid "Branches..." #~ msgstr "Branches..." #~ msgid "&Reject" #~ msgstr "&Rejeter" #~ msgid "Hide Merges" #~ msgstr "Cacher les fusions" #~ msgid "" #~ "New changesets from the preview bundle are still pending.\n" #~ "\n" #~ "Accept or reject the new changesets?" #~ msgstr "" #~ "de nouveaux ensembles de changements du paquet précédent sont toujours en " #~ "attente.\n" #~ "\n" #~ "Accepter ou rejeter ces ensembles de changement ?" #~ msgid "Accept new Changesets" #~ msgstr "Accepter ces nouveaux ensembles de changement." #~ msgid "&Accept" #~ msgstr "&Accepter" #~ msgid " (Bundle Preview)" #~ msgstr " ( Prévisualisation du paquet )" #~ msgid "Branch Filter" #~ msgstr "Filtre de branche" #~ msgid "_Perforce" #~ msgstr "_Perforce" #~ msgid "Identify" #~ msgstr "Identifier" #~ msgid "Launch commit tool" #~ msgstr "Lancer l'outil de validation" #~ msgid "Launch data mining tool" #~ msgstr "Lancer l'outil de minage des données" #~ msgid "Reset _Marks" #~ msgstr "Réinitialiser les _Marques" #~ msgid "Reset revision marks" #~ msgstr "Réinitialiser les marques de révisions" #~ msgid "Branches" #~ msgstr "Branches" #~ msgid "Launch recovery tool" #~ msgstr "Lancer l'outil de réparation" #~ msgid "Launch web server" #~ msgstr "Lancer le serveur web" #~ msgid "Ignore Max Diff Size" #~ msgstr "Ignorer la taille max du diff" #~ msgid "Load all Revisions" #~ msgstr "Charger toutes les révisions" #~ msgid "Color by Branch" #~ msgstr "Couleur par branche" #~ msgid "Choose Details..." #~ msgstr "Choisissez les détails" #~ msgid "Compact Graph" #~ msgstr "Graphique compact" #~ msgid "Pending" #~ msgstr "En attente" #~ msgid "Reject Bundle" #~ msgstr "Rejeter le lot" #~ msgid "Custom" #~ msgstr "Personnalisation" #~ msgid "Import..." #~ msgstr "Importer..." #~ msgid "Submitted" #~ msgstr "Envoyé" #~ msgid "Revision Range" #~ msgstr "Intervalle de révision" #~ msgid "Unable to find rev %s" #~ msgstr "Impossible de trouver rev%s" #~ msgid "Aborted p4identify" #~ msgstr "Abandon de p4identify" #~ msgid "Finding pending Perforce changelists..." #~ msgstr "Recherche des listes de changement Perforce en attente..." #~ msgid "Pending Perforce changelists" #~ msgstr "listes de changement Perforce en attente..." #~ msgid "Perforce changelist %s" #~ msgstr "listes de changement Perforce %s" #~ msgid "only Merges" #~ msgstr "seulement les fusions" #~ msgid "'%s' filter:" #~ msgstr "Filtre '%s' :" #~ msgid "Changeset ID" #~ msgstr "ID de l'ensemble de chargement" #~ msgid "Revision Number/ID" #~ msgstr "Nombre/ID de la révision" #~ msgid "Filter" #~ msgstr "Filtrer" #~ msgid "Changes" #~ msgstr "Changements" #~ msgid "Branch '%s'" #~ msgstr "Branche '%s'" #~ msgid "Ancestry of %s" #~ msgstr "Généalogie de %s" #~ msgid "%(count)d of %(total)d applied patches" #~ msgstr "%(count)d correctifs sur %(total)d appliqués" #~ msgid "Current patch: %s, " #~ msgstr "Correctif courant : %s " #~ msgid "revision ancestry" #~ msgstr "généalogie de la révision" #~ msgid "Visualize Change" #~ msgstr "Visualiser le changement" #~ msgid "heads" #~ msgstr "têtes" #~ msgid "Export" #~ msgstr "Exporter" #~ msgid "_Copy Hash" #~ msgstr "_Copier la clé de hashage" #~ msgid "Push to Here" #~ msgstr "Publier ici" #~ msgid "Pull to Here" #~ msgstr "Tirer ici" #~ msgid "_Merge with..." #~ msgstr "_Fusionner avec.." #~ msgid "_Revert" #~ msgstr "_Revenir" #~ msgid "Mercurial Queues" #~ msgstr "Queues Mercurial" #~ msgid "E_mail Patch..." #~ msgstr "E_voyer le correctif par courrier" #~ msgid "_Archive..." #~ msgstr "_Archiver..." #~ msgid "Add/Move/Remove B_ookmark..." #~ msgstr "Ajouter/déplacer/supprimer Marque-Page" #~ msgid "Rename Bookmark..." #~ msgstr "Renommer le maqrque-page" #~ msgid "Skip Testing" #~ msgstr "Sauter le test" #~ msgid "Reset" #~ msgstr "Réinitialiser" #~ msgid "Mark as Good" #~ msgstr "Marquer comme bonne" #~ msgid "Import Revision to MQ" #~ msgstr "Importer la Révision dans les MQ" #~ msgid "Mark as Bad" #~ msgstr "Marquer comme mauvaise" #~ msgid "Failed to clone" #~ msgstr "Échec du clonage" #~ msgid "Canceled updating" #~ msgstr "Mise à jour annulée" #~ msgid "_Export Patch..." #~ msgstr "_Export er correctif" #~ msgid "Determine and mark outgoing changesets" #~ msgstr "Déterminer et marquer les changements sortants" #~ msgid "Pull incoming changesets" #~ msgstr "Récupérer les changements entrants" #~ msgid "File Patterns" #~ msgstr "Schémas de Fichier" #~ msgid " - commit" #~ msgstr " - valider" #~ msgid "Importing" #~ msgstr "Importation" #~ msgid "Please enter or select a remote path" #~ msgstr "Entrez ous sélectionnez s'il vous plait le cheamin" #~ msgid "Hunk selection is disabled for this file.\n" #~ msgstr "Sélection de morceaux est désactivé pour ce fichier.\n" #~ msgid "unknown hunk type: %s" #~ msgstr "morceau type inconnu: %s" #~ msgid "[no hunks to display]" #~ msgstr "[aucun morceau à afficher]" #~ msgid "Annotate Second Parent" #~ msgstr "Annoter Deuxième Parent" #~ msgid "_Diff to Local" #~ msgstr "_Diff par rapport à la version locale" #~ msgid ", please refresh" #~ msgstr ", veuillez rafraîchir" #~ msgid "No matches" #~ msgstr "Rien trouvé" #~ msgid "working parents" #~ msgstr "parents de travail" #~ msgid "no Merges" #~ msgstr "aucun fusionnement" #~ msgid "Invalid revision set" #~ msgstr "Groupe de révisions non valide" #~ msgid "Mercurial bundles" #~ msgstr "Paquets Mercurial" #~ msgid "Bundle..." #~ msgstr "Paquet..." #~ msgid "Select a Mercurial Bundle" #~ msgstr "Sélectionner un Paquet Mercurial" #~ msgid "Show/Hide Patch Queue" #~ msgstr "Montrer/Cacher la liste des patchs" #~ msgid "Cannot run now" #~ msgstr "Ne peut pas fonctionner maintennant" #~ msgid "Add Bundle..." #~ msgstr "Ajouter des paquets..." #~ msgid "Accept Bundle" #~ msgstr "Accepter le Paquet" #~ msgid "_Update..." #~ msgstr "_Mise à jour..." #~ msgid "Visual Diff with selected" #~ msgstr "Diff Visuel par rapport au sélectionné" #~ msgid "_Diff with selected" #~ msgstr "_Diff par rapport au sélectionné" #~ msgid "Datamine" #~ msgstr "Dataminage" #~ msgid "%s - datamine" #~ msgstr "%s - dataminage" #~ msgid "Toggle log window" #~ msgstr "Afficher la fenêtre de log" #~ msgid "_Bundle rev:tip..." #~ msgstr "_Empaqueter rev:tip" #~ msgid "Bisect" #~ msgstr "Dichotomiser" #~ msgid "After Pull:" #~ msgstr "Après la récupération:" #~ msgid "Import patches" #~ msgstr "Importer les correctifs" #~ msgid "Reject changes from Bundle preview" #~ msgstr "Refuser les changements de cet aperçu de paquet" #~ msgid "Accept changes from Bundle preview" #~ msgstr "Accepter les changements de cet aperçu de paquet" #~ msgid "Accept incoming previewed changesets" #~ msgstr "Accepter les ensemble de changement prévisualisé en approche" #~ msgid "No remote path specified" #~ msgstr "Pas de chemin distant spécifié" #~ msgid "Configure aliases and after pull behavior" #~ msgstr "Configurer les alias et le comportement après rapatriement" #~ msgid "No incoming changesets" #~ msgstr "aucun ensemble de chamngement en approche" #~ msgid "%d incoming changesets" #~ msgstr "%d ensemble de modification en approche" #~ msgid "Applying bundle..." #~ msgstr "Application du paquet..." #~ msgid "Applying bundle" #~ msgstr "Application du paquet" #~ msgid "Unable to save file" #~ msgstr "Impossible d'enregistrer le fichier" #~ msgid "A new version of TortoiseHg is ready for download!" #~ msgstr "Une nouvelle version de TortoiseHg est disponible." #~ msgid "Save patches to" #~ msgstr "Enregistrer les patches sous" #~ msgid "Save commit message at exit?" #~ msgstr "Enregistrer le message de validation lors de la sortie ?" #~ msgid "Save patch to" #~ msgstr "Enregistrer le patch sous" #~ msgid "Saved at: %s" #~ msgstr "Enregistré sous : %s" #~ msgid "Save As" #~ msgstr "Enregistrer sous" #~ msgid "Save selected changes" #~ msgstr "Enregistrer les changements sélectionnés" #~ msgid "_Save at Revision..." #~ msgstr "Enregistrer à la révision..." #~ msgid "Save Preview" #~ msgstr "Aperçu de l'enregistrement" #~ msgid "Shelve uncommited changes" #~ msgstr "Mettre de côté les changements non validés" #~ msgid "Shelve" #~ msgstr "Mettre de côté" #~ msgid "Download and view incoming changesets" #~ msgstr "Télécharger et voir les changements entrants" #~ msgid "Load more Revisions" #~ msgstr "Charge plus de révisions" #~ msgid "load more revisions" #~ msgstr "charger plus de révisions" #~ msgid "Sync Bar" #~ msgstr "Barre de synchronisation" #~ msgid "Filter Bar" #~ msgstr "Barre de filtre" #~ msgid "" #~ "Unable to undo!\n" #~ "\n" #~ "Tip revision differs from last commit." #~ msgstr "" #~ "Impossible d'annuler !\n" #~ "La version \"tip\" est différente de celle de la dernière validation." #~ msgid "Unable to identify Perforce tip" #~ msgstr "Impossible d'identifier le \"tip\" de Perforce" #~ msgid "Identifying Perforce tip" #~ msgstr "Identifie le \"tip\" de Perforce" #~ msgid "Tip" #~ msgstr "Tip" #~ msgid "Previously Selected" #~ msgstr "Sélectionné auparavant" #~ msgid "tagged revisions" #~ msgstr "révisions étiquetées" #~ msgid "Tags" #~ msgstr "Étiquettes" #~ msgid "Replace existing tag" #~ msgstr "Remplacer l'étiquette existante" #~ msgid "Tag is local" #~ msgstr "L'étiquette est locale" #~ msgid "Add/Remove _Tag..." #~ msgstr "Ajouter/supprimer une étiquette..." #~ msgid "Please enter tag name" #~ msgstr "Entrez le nom de l'étiquette" #~ msgid "Tagged Revisions" #~ msgstr "Révisions étiquetées" #~ msgid "Tag" #~ msgstr "Étiqueter" #~ msgid "Configure Paths..." #~ msgstr "Configurer les chemins..." #~ msgid "Push this Branch" #~ msgstr "Pousser cette branche" #~ msgid "File is larger than the specified max size.\n" #~ msgstr "Le fichier est plus grand que la limite maximale spécifiée.\n" #~ msgid "malformed patch %s %s" #~ msgstr "patch malformé %s %s" #~ msgid "binary patch is %d bytes, not %d" #~ msgstr "Le patch binaire est de %d octets, pas %d" #~ msgid "could not extract binary patch" #~ msgstr "Impossible d'extraire le patch binaire" #~ msgid "file %s already exists\n" #~ msgstr "le fichier %s existe déjà\n" #~ msgid "patching file %s\n" #~ msgstr "modification du fichier %s\n" #~ msgid "abandoning shelved file\n" #~ msgstr "abandon de l'archivage du fichier\n" #~ msgid "abandon failed\n" #~ msgstr "abandon impossible\n" #~ msgid "nothing to abandon\n" #~ msgstr "rien à abandonner\n" #~ msgid "shelved file abandoned\n" #~ msgstr "archivage du fichier abandonné\n" #~ msgid "unshelve backup aborted\n" #~ msgstr "restauration de la sauvegarde abandonnée\n" #~ msgid "nothing to unshelve\n" #~ msgstr "rien à restaurer\n" #~ msgid "file copy of %s failed\n" #~ msgstr "copie du fichier %s impossible\n" #~ msgid "delete of shelve backup failed" #~ msgstr "Effacement de la sauvegarde archivée impossible" #~ msgid "bad shelve backup directory name" #~ msgstr "mauvais nom de dossier de sauvegarde archivée" #~ msgid "shelve data already exists" #~ msgstr "les données archivées existent déjà" #~ msgid "No repository found here" #~ msgstr "Pas de dépôt ici" #~ msgid "&Quit" #~ msgstr "&Quitter" #~ msgid "Rename..." #~ msgstr "Renommer..." #~ msgid "Import" #~ msgstr "Importer" #~ msgid "Status: %s" #~ msgstr "État : %s" #~ msgid "Submit" #~ msgstr "Envoyer" #~ msgid "?: unknown" #~ msgstr "?: inconnu" #~ msgid "M: modified" #~ msgstr "M: modifié" #~ msgid "I: ignored" #~ msgstr "I: ignoré" #~ msgid "A: added" #~ msgstr "A: ajouté" #~ msgid "_Ignore" #~ msgstr "_Ignorer" #~ msgid "_Copy..." #~ msgstr "_Copier..." #~ msgid "Toolbar Style" #~ msgstr "Style de la barre d'outils" #~ msgid "Font" #~ msgstr "Police" #~ msgid "ssh" #~ msgstr "ssh" #~ msgid "http" #~ msgstr "http" #~ msgid "https" #~ msgstr "https" #~ msgid "Folder" #~ msgstr "Dossier" #~ msgid "_Test" #~ msgstr "_Test" #~ msgid "History" #~ msgstr "Historique" #~ msgid "#" #~ msgstr "#" #~ msgid "_Rename" #~ msgstr "_Renommer" #~ msgid "_Delete" #~ msgstr "_Supprimer" #~ msgid "_new" #~ msgstr "_nouveau" #~ msgid "_rename" #~ msgstr "_renommer" #~ msgid "Show name" #~ msgstr "Montrer le nom" #~ msgid "Show title" #~ msgstr "Montrer le titre" #~ msgid "Show message" #~ msgstr "Montrer le message" #~ msgid "Open..." #~ msgstr "Ouvrir..." #~ msgid "Archive revision:" #~ msgstr "Révision de l'archive :" #~ msgid "Old name:" #~ msgstr "Ancien nom :" #~ msgid "unexpected type: %s" #~ msgstr "Type inattendu : %s" #~ msgid "Source path:" #~ msgstr "Chemin d'accès à la source :" #~ msgid "unhandled transition: %s -> %s" #~ msgstr "transition non gérée : %s -> %s" #~ msgid "removing backup file : %r\n" #~ msgstr "Efface le fichier de sauvegarde : %r\n" #~ msgid "" #~ "total: %d hunks (%d changed lines); selected: %d hunks (%d changed lines)" #~ msgstr "" #~ "total : %d blocs (%d lignes modifiées); sélectionné : %d blocs (%d lignes " #~ "modifiées)" #~ msgid "Unsupported line endings type: %s" #~ msgstr "Type de fin de ligne non supporté : %s" #~ msgid "unknown patch content: %r" #~ msgstr "contenu du patch inconnu : %r" #~ msgid "abort: backup restore failed, %s\n" #~ msgstr "abandon : la restauration de la sauvegarde n'a pas fonctionné, %s\n" #~ msgid "Browse" #~ msgstr "Parcourir" #~ msgid "File is binary.\n" #~ msgstr "Le fichier est binaire.\n" #~ msgid "Destination path is empty" #~ msgstr "Le chemin destination est vide" #~ msgid "Annotate" #~ msgstr "Annoter" #~ msgid "Unapply last patch" #~ msgstr "Dé-appliquer le dernier patch" #~ msgid "tag '%s' is not a local tag" #~ msgstr "l'étiquette '%s' n'est pas une étiquette locale" #~ msgid "tag '%s' is not a global tag" #~ msgstr "l'étiquette '%s' n'est pas une étiquette globale" #~ msgid "response expected" #~ msgstr "réponse attendue" #~ msgid "Please select bookmark name to remove" #~ msgstr "Veuillez sélectionner le nom du signet à enlever" #~ msgid "" #~ "Detected uncommitted local changes in working tree.\n" #~ "Please select to continue:\n" #~ "\n" #~ msgstr "" #~ "Changements locaux non committés détectés dans le répertoire de travail.\n" #~ "Sélectionnez pour continuer :\n" #~ "\n" #~ msgid "Repository Error: %s, refresh suggested" #~ msgstr "Erreur sur le dépôt : %s, actualisation suggérée" #~ msgid "Merge " #~ msgstr "Fusion " #~ msgid "Serve" #~ msgstr "Serveur" #~ msgid "Re_fresh" #~ msgstr "Ra_fraîchir" #~ msgid "Diff to Local" #~ msgstr "Diff avec la révision locale" #~ msgid "Commit Preview" #~ msgstr "Prévisualisation de la validation" #~ msgid "Several icons are courtesy of the TortoiseSVN project" #~ msgstr "Plusieurs icônes sont offertes par le projet TortoiseSVN" #~ msgid "Push" #~ msgstr "Pousser" #~ msgid "Restart merge with" #~ msgstr "Redémarrer la fusion avec" #~ msgid "Restart Merge..." #~ msgstr "Redémarrer la fusion..." #~ msgid "unable to strip away %d dirs from %s" #~ msgstr "impossible de se débarrasser de %d répertoires de %s" #~ msgid "unable to find %s or %s for patching" #~ msgstr "impossible de trouver %s ou %s pour appliquer le patch" #~ msgid "" #~ "If true, concatenate multiple lines of changeset summary until they reach " #~ "80 characters. Default: False" #~ msgstr "" #~ "Si Vrai, concaténer plusieurs lignes de résumé de révision jusqu'à " #~ "atteindre 80 caractères. Par défaut : Faux" #~ msgid "" #~ "Color changesets by author name. If not enabled, the changes are colored " #~ "green for merge, red for non-trivial parents, black for normal. Default: " #~ "False" #~ msgstr "" #~ "Colorier les révisions par auteur. Si Faux, les fusions sont en vert, les " #~ "parents non triviaux en rouge, les révisions normales en noir. Par " #~ "défaut : Faux" #~ msgid "Ignore changes whose lines are all blank. Default: False" #~ msgstr "" #~ "Ignorer les changements des lignes qui sont vierges. Par défaut : Faux" #~ msgid "Connect to mail server using TLS. Default: False" #~ msgstr "" #~ "Connecter au serveur de courrier en utilisant TLS. Par défaut : Faux" #~ msgid "Ignore white space when comparing lines. Default: False" #~ msgstr "Ignorer les espaces lors des comparaisons. Par défaut : Faux" #~ msgid "Ignore changes in the amount of white space. Default: False" #~ msgstr "Ignorer les changements dans le nombre d'espaces. Par défaut : Faux" #~ msgid "Character encoding name" #~ msgstr "Nom de l'encodage des caractères" #~ msgid "Discard all changes from merge target (other) revision" #~ msgstr "" #~ "Abandonner tous les changements de la révision (autre) cible de la fusion" #~ msgid "Recover" #~ msgstr "Récupérer" #~ msgid "Mark resolved" #~ msgstr "Marquer comme résolu" #~ msgid "Mark unresolved" #~ msgstr "Marquer comme non résolu" #~ msgid "Nothing Commited" #~ msgstr "Rien n'a été committé" #~ msgid "Hunk #%d FAILED at %d\n" #~ msgstr "Morceau #%d échoué à %d\n" #~ msgid "%d out of %d hunks FAILED -- saving rejects to file %s\n" #~ msgstr "" #~ "%d de %d morceaux ont échoué -- les rejets sont enregistrés dans le " #~ "fichier %s\n" #~ msgid "bad hunk #%d" #~ msgstr "mauvais morceau %d" #~ msgid "bad hunk #%d old text line %d" #~ msgstr "mauvais morceau #%d ancien texte ligne %d" #~ msgid "bad hunk #%d %s (%d %d %d %d)" #~ msgstr "mauvais morceau #%d %s (%d %d %d %d)" #~ msgid "Hunk #%d succeeded at %d (offset %d lines).\n" #~ msgstr "Morceau #%d réussi à %d (décalage de %d lignes).\n" #~ msgid "Hunk #%d succeeded at %d with fuzz %d (offset %d lines).\n" #~ msgstr "Morceau #%d réussi à %d avec flou %d (décalage de %d lignes).\n" #~ msgid "No valid hunks found" #~ msgstr "Aucun morceau valide trouvé" #~ msgid "hunk %d already applied at line %d (fuzz %d)\n" #~ msgstr "morceau %d déjà appliqué à la ligne %d (flou %d)\n" #~ msgid "View missing" #~ msgstr "Afficher les fichiers manquants" #~ msgid "TortoiseHg Shell Configuration" #~ msgstr "Configuration du Shell de TortoiseHg" #~ msgid "&Yes (--force)" #~ msgstr "Oui (--force)" #~ msgid "View other" #~ msgstr "Voir l'autre" #~ msgid "Remove versioned" #~ msgstr "Supprimer les fichiers versionnés" #~ msgid "Backout..." #~ msgstr "Backout..." #~ msgid "" #~ "Defines the command to run when an issue number is recognized. You may " #~ "include groups in issue.regex, and corresponding {n} tokens in issue.link " #~ "(where n is a non-negative integer). {0} refers to the entire string " #~ "matched by issue.regex, while {1} refers to the first group and so on. If " #~ "no {n} tokensare found in issue.link, the entire matched string is " #~ "appended instead." #~ msgstr "" #~ "Définit la commande à exécuter quand un numéro de problème est reconnu. " #~ "Vous pouvez inclure des groupes dans issue.regex et des jetons " #~ "correspondants à {n} dans issue.link (où n est un entier positif). {0} " #~ "correspond à la chaîne entière trouvée par issue.regex, {1} désigne le " #~ "premier groupe et ainsi de suite. Si aucun jeton {n} n'est trouvé dans " #~ "issue.link, la chaîne complète trouvée est ajoutée." #~ msgid "" #~ "A \"template string\" that, when set, turns the revision number and short " #~ "hashes that are shown on the revision panels into links.
                                              The " #~ "\"template string\" uses a \"mercurial template\"-like syntax that " #~ "currently accepts two template expressions:

                                              • {node|short} : " #~ "replaced by the 12 digit revision id (note that {node} on its own is " #~ "currently unsupported).
                                              • {rev} : replaced by the revision number.For example, in order to link to bitbucket commit pages you can set " #~ "this to:
                                                https://bitbucket.org/tortoisehg/thg/commits/{node|short}" #~ msgstr "" #~ "Un \"modèle de chaîne de caractères\" qui, quand il est mis, transforme " #~ "le numéro de révision et les identifiants courts qui sont affichés dans " #~ "les panneaux de révision en liens.
                                                Le \"modèle de chaîne de caractères" #~ "\" utilise une syntaxe similaire à mercurial qui accepte pour le moment " #~ "deux expressions :
                                                • {node|short} : remplacé par l'identifiant de " #~ "révision à 12 chiffres (noter que {node} en tant que tel n'est pas géré " #~ "actuellement).
                                                • {rev} : remplacé par le numéro de révision.
                                                Par " #~ "exemple, pour lier vers des pages de commit bitbucket, vous pouvez " #~ "mettre :
                                                https://bitbucket.org/tortoisehg/thg/commits/{node|short}" #~ msgid "udpate all repos in current dir" #~ msgstr "mettre à jour tous les dépôts dans le répertoire actuel" #~ msgid "Copyright 2008-2018 Steve Borho and others" #~ msgstr "Copyright 2008-2018 Steve Borho et d'autres" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/he.po0000644000000000000000000043165014440352353016233 0ustar00rootroot# Hebrew translation for tortoisehg # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the tortoisehg package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2009-10-18 09:25+0000\n" "Last-Translator: peso \n" "Language-Team: Hebrew \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2019-07-17 05:42+0000\n" "X-Generator: Launchpad (build 19009)\n" msgid "TortoiseHg Overlay Icon Server" msgstr "" msgid "Exit" msgstr "" msgid "About" msgstr "" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "" msgid "You can visit our site here" msgstr "" msgid "&License" msgstr "" #, python-format msgid "version %s" msgstr "" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "" msgid "License" msgstr "" msgid "= Working Directory Parent =" msgstr "" msgid "Directory of files" msgstr "תיקיית קבצים" msgid "Tar archives" msgstr "" msgid "Uncompressed tar archive" msgstr "" msgid "Bzip2 tar archives" msgstr "" msgid "Tar archive compressed using bzip2" msgstr "" msgid "Gzip tar archives" msgstr "" msgid "Tar archive compressed using gzip" msgstr "" msgid "Zip archives" msgstr "" msgid "Uncompressed zip archive" msgstr "" msgid "Zip archive compressed using deflate" msgstr "" msgid "Revision:" msgstr "" msgid "All files in this revision" msgstr "" msgid "Only files modified/created in this revision" msgstr "" msgid "Only files modified/created since:" msgstr "" msgid "Archive Content:" msgstr "" msgid "Recurse into subrepositories" msgstr "" msgid "Browse..." msgstr "עיין..." msgid "Destination path:" msgstr "נתיב היעד:" msgid "Archive types:" msgstr "" msgid "Hg command:" msgstr "" msgid "Select Destination Folder" msgstr "" msgid "Select Destination File" msgstr "" msgid "All files (*)" msgstr "" msgid "Duplicate Name" msgstr "" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "" msgid "Confirm Overwrite" msgstr "" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "" #, python-format msgid "Archive - %s" msgstr "ארכיון - %s" msgid "&Archive" msgstr "" msgid "Backout requires a parent revision" msgstr "" msgid "Cannot backout change on a different branch" msgstr "" #, python-format msgid "Backout - %s" msgstr "" msgid "Prepare to backout" msgstr "" msgid "Verify backout revision and ensure your working directory is clean." msgstr "" msgid "Backing out a parent revision is a single step operation" msgstr "" msgid "Backout revision" msgstr "" msgid "Not a head, backout will create a new head!" msgstr "" msgid "Current local revision" msgstr "" msgid "Working directory status" msgstr "" msgid "Checking..." msgstr "" msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Automatically resolve merge conflicts where possible" msgstr "" msgid "Uncommitted local changes are detected" msgstr "" msgid "Clean" msgstr "" msgid "Backing out, then merging..." msgstr "" msgid "All conflicting files will be marked unresolved." msgstr "" msgid "Automatically advance to next page when backout and merge are complete." msgstr "" #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" msgid "No merge conflicts, ready to commit" msgstr "" msgid "Commit backout and merge results" msgstr "" msgid "Parents" msgstr "" msgid "Working Directory" msgstr "" msgid "Working Directory (merged)" msgstr "" msgid "Commit message" msgstr "" msgid "Skip final confirmation page, close after commit." msgstr "" msgid "Backed out changeset: " msgstr "" msgid "Confirm Discard Message" msgstr "" msgid "Discard current backout message?" msgstr "" msgid "Use English backout message" msgstr "" msgid "Backing out and committing..." msgstr "" msgid "Please wait while making backout." msgstr "" msgid "Committing..." msgstr "" msgid "Please wait while committing merged files." msgstr "" msgid "Finished" msgstr "" msgid "Backout changeset" msgstr "" #, python-format msgid "Bisect - %s" msgstr "" msgid "Accept" msgstr "" msgid "Known good revision:" msgstr "" msgid "Known bad revision:" msgstr "" msgid "Discard local changes (revert --all)" msgstr "" msgid "Revision is &Good" msgstr "" msgid "Revision is &Bad" msgstr "" msgid "&Skip this Revision" msgstr "" msgid "Close" msgstr "סגור" msgid "Error encountered." msgstr "" msgid "Culprit found." msgstr "" msgid "Revision" msgstr "" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "" #, python-format msgid "%s (hint: %s)" msgstr "" msgid "Bookmark:" msgstr "" msgid "New Name:" msgstr "" msgid "Activate:" msgstr "" msgid "&Add" msgstr "" msgid "Re&name" msgstr "" msgid "&Remove" msgstr "" msgid "&Move" msgstr "" #, python-format msgid "Bookmark - %s" msgstr "" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "" #, python-format msgid "Bookmark '%s' has been added" msgstr "" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "" #, python-format msgid "Bookmark '%s' has been moved" msgstr "" #, python-format msgid "Bookmark '%s' does not exist" msgstr "" #, python-format msgid "Bookmark '%s' has been removed" msgstr "" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "" msgid "TortoiseHg Bookmark Sync" msgstr "" msgid "Outgoing Bookmarks" msgstr "" msgid "&Push Bookmark" msgstr "" msgid "&Remove Bookmark" msgstr "" msgid "Incoming Bookmarks" msgstr "" msgid "P&ull Bookmark" msgstr "" msgid "R&emove Bookmark" msgstr "" #, python-format msgid "Pushed local bookmark: %s" msgstr "" #, python-format msgid "Pulled remote bookmark: %s" msgstr "" #, python-format msgid "Removed remote bookmark: %s" msgstr "" #, python-format msgid "Removed local bookmark: %s" msgstr "" #, python-format msgid "%s - branch operation" msgstr "" msgid "Select branch of merge commit" msgstr "" msgid "Changes take effect on next commit" msgstr "" msgid "No branch changes" msgstr "" msgid "Open a new named branch" msgstr "" msgid "Close current branch" msgstr "" #, python-format msgid "Please report this bug to our bug tracker" msgstr "" msgid "Checking for updates..." msgstr "" msgid "Copy" msgstr "" msgid "Quit" msgstr "" msgid "TortoiseHg Bug Report" msgstr "" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "" msgid "Your TortoiseHg is up to date." msgstr "" msgid "Save error report to" msgstr "" msgid "Text files (*.txt)" msgstr "" msgid "Error writing file" msgstr "" msgid "TortoiseHg Error" msgstr "" msgid "" "If you still have trouble, please file a bug report." msgstr "" msgid "Visual Diff" msgstr "" msgid "View file changes in external diff tool" msgstr "" msgid "Edit Local" msgstr "" msgid "Edit current file in working copy" msgstr "" msgid "Revert to Revision" msgstr "" msgid "Revert file(s) to contents at this revision" msgstr "" msgid "Patch failed to apply" msgstr "" msgid "Manually resolve rejected chunks?" msgstr "" msgid "Edit patched file and rejects?" msgstr "" msgid "No deletable chunks" msgstr "" msgid "Completely remove file from patch?" msgstr "" msgid "Revert all file changes?" msgstr "" msgid "No chunks remain" msgstr "" msgid "file has been deleted, refresh" msgstr "" msgid "file has been modified, refresh" msgstr "" msgid "Unable to merge chunks" msgstr "" msgid "Add or remove patches must be merged in the working directory" msgstr "" msgid "Unable to remove" msgstr "" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" msgctxt "files" msgid "All" msgstr "" msgctxt "files" msgid "None" msgstr "" msgid "Toggle display of text search bar" msgstr "" msgid "Diff Toolbar" msgstr "" #, python-format msgid "Chunks selected: %d / %d" msgstr "" msgid "Please wait while the file is opened ..." msgstr "" msgid "Source:" msgstr "" msgid "Destination:" msgstr "" msgid "Options" msgstr "" msgid "Clone to revision:" msgstr "" msgid "A revision identifier, bookmark, tag or branch name" msgstr "" msgid "Do not update the new working directory" msgstr "" msgid "Use pull protocol to copy metadata" msgstr "" msgid "Clone with minimal processing" msgstr "" msgid "Include patch queue" msgstr "" msgid "Use proxy server" msgstr "" msgid "Do not verify host certificate" msgstr "" msgid "Remote command:" msgstr "" msgid "Use largefiles" msgstr "" msgid "Start revision:" msgstr "" msgid "Select source repository" msgstr "" msgid "Select destination repository" msgstr "" msgid "Select patch folder" msgstr "" #, python-format msgid "Clone - %s" msgstr "" msgid "&Clone" msgstr "" msgid "failed to start command\n" msgstr "" msgid "error while running command\n" msgstr "" #, python-format msgid "process exited unexpectedly with code %d" msgstr "" #, python-format msgid "failed to encode command: %s" msgstr "" #, python-format msgid "timed out while reading: %r..." msgstr "" msgid "timed out waiting for message" msgstr "" #, python-format msgid "unexpected response on required channel %r" msgstr "" #, python-format msgid "invalid \"hello\" message: %r" msgstr "" msgid "no \"runcommand\" capability" msgstr "" #, python-format msgid "corrupted command result: %r" msgstr "" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "" msgid "Terminated by user" msgstr "" #, python-format msgid "[command terminated by user %s]" msgstr "" #, python-format msgid "[command interrupted %s]" msgstr "" #, python-format msgid "[command returned code %d %%s]" msgstr "" #, python-format msgid "[command completed successfully %s]" msgstr "" msgid "Running..." msgstr "" msgid "Failed!" msgstr "" msgid "Clea&r Log" msgstr "" msgid "TortoiseHg Prompt" msgstr "" msgid "Show Detail" msgstr "" msgid "Hide Detail" msgstr "" msgid "Confirm Exit" msgstr "" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" msgid "&Run" msgstr "" msgid "TortoiseHg Command Dialog" msgstr "" msgid "Command Error" msgstr "" #, python-format msgid "[Code: %d]" msgstr "" msgid "Merge" msgstr "" #, python-format msgid "Merge with %s" msgstr "" msgid "Patch Name Required" msgstr "" msgid "You must enter a patch name" msgstr "" msgctxt "start progress" msgid "Commit" msgstr "" msgctxt "start progress" msgid "MQ Action" msgstr "" msgctxt "start progress" msgid "Rollback" msgstr "" msgid "Commit Dialog Toolbar" msgstr "" msgid "Branch: " msgstr "" msgid "Copy message" msgstr "" msgid "Copy one of the recent commit messages" msgstr "" msgid "Show Issues" msgstr "" msgid "Please wait..." msgstr "" #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "" msgid "Issue Tracker" msgstr "" msgid "Show Issues..." msgstr "" msgid "Stop" msgstr "" msgid "### patch name ###" msgstr "" msgid "Commit changes" msgstr "" msgid "Commit" msgstr "" msgid "Amend current revision" msgstr "" msgid "Amend" msgstr "" msgid "Create a new patch" msgstr "" msgid "QNew" msgstr "" msgid "Refresh current patch" msgstr "" msgid "QRefresh" msgstr "" msgid "Confirm Branch Change" msgstr "" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "" msgid "Restart &Branch" msgstr "" msgid "&Commit to current branch" msgstr "" msgid "Cancel" msgstr "" msgid "Confirm New Branch" msgstr "" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "" msgid "Create &Branch" msgstr "" msgid "Close Branch: " msgstr "" msgid "New Branch: " msgstr "" #, python-format msgid "Selected Options: %s" msgstr "" msgid "Parent:" msgstr "" msgid "Patch name:" msgstr "" #, python-format msgid "Close %s branch" msgstr "" #, python-format msgid "Rollback commit to revision %d" msgstr "" msgid "Confirm Undo" msgstr "" msgid "Discard current commit message?" msgstr "" msgid "Message Translation Failure" msgstr "" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" msgid "&Replace" msgstr "" msgid "Nothing Committed" msgstr "" msgid "Please enter commit message" msgstr "" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" msgid "No files checked" msgstr "" msgid "No modified files checkmarked for commit" msgstr "" msgid "Confirm Add" msgstr "" msgid "Add selected untracked files?" msgstr "" msgid "Confirm Remove" msgstr "" msgid "Remove selected deleted files?" msgstr "" msgid "Nothing changed." msgstr "" msgctxt "window title" msgid "Commit" msgstr "" #, python-format msgid "%s - commit options" msgstr "" msgid "Set username:" msgstr "" msgid "Save in Repo" msgstr "" msgid "Save Global" msgstr "" msgid "Set Date:" msgstr "" msgid "Update" msgstr "" msgid "Push After Commit:" msgstr "" msgid "Auto Includes:" msgstr "" msgid "Recurse into subrepositories (--subrepos)" msgstr "" msgid "Unable to save username" msgstr "" msgid "Iniparse must be installed." msgstr "" msgid "Unable to write configuration file" msgstr "" msgid "Unable to save after commit push" msgstr "" msgid "Unable to save auto include list" msgstr "" msgid "Unable to save recurse in subrepos." msgstr "" msgid "Invalid date format" msgstr "" msgid "No username configured" msgstr "" #, python-format msgid "%s - commit" msgstr "" msgid "TortoiseHg Commit" msgstr "" msgid "Are you sure that you want to cancel the commit operation?" msgstr "" msgid "Compress changesets up to and including" msgstr "" msgid "Onto destination" msgstr "" msgid "Compress" msgstr "" #, python-format msgid "Compress - %s" msgstr "" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the compress" msgstr "" msgid "Changes have been moved, you must now commit" msgstr "" msgctxt "action button" msgid "Commit" msgstr "" msgid "Compress is complete, old history untouched" msgstr "" msgid "must be specified repository" msgstr "" msgid "must be specified 'type' in style" msgstr "" msgid "Git Commit:" msgstr "" msgid "Summary:" msgstr "" msgid "User:" msgstr "" msgid "Date:" msgstr "" msgid "Age:" msgstr "" msgid "Branch:" msgstr "" msgid "Close:" msgstr "" msgid "Tags:" msgstr "" msgid "Graft:" msgstr "" msgid "Transplant:" msgstr "" msgid "Obsolete state:" msgstr "" msgid "Perforce:" msgstr "" msgid "Subversion:" msgstr "" msgid "Converted From:" msgstr "" msgid "Original Parent:" msgstr "" msgid "No items to display" msgstr "" msgid "Use compact view" msgstr "" msgid "Patch:" msgstr "" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "" msgid "Select a GUI location to edit:" msgstr "" msgid "Select the toolbar or menu to change" msgstr "" msgid "Tools shown on selected location" msgstr "" msgid "Delete from list" msgstr "" msgid "Add to list" msgstr "" msgid "Add separator" msgstr "" msgid "List of all tools" msgstr "" msgid "New Tool ..." msgstr "" msgid "Edit Tool ..." msgstr "" msgid "Delete Tool" msgstr "" msgid "Type" msgstr "" msgid "Name" msgstr "" msgid "Command" msgstr "" msgid "New hook" msgstr "" msgid "Edit hook" msgstr "" msgid "Delete hook" msgstr "" msgid "Replace existing hook?" msgstr "" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" msgid "OK" msgstr "" msgid "Missing information" msgstr "" msgid "All items" msgstr "" msgid "Working directory" msgstr "" msgid "All revisions" msgstr "" msgid "All contexts" msgstr "" msgid "Fixed revisions" msgstr "" msgid "Applied patches" msgstr "" msgid "Applied patches or qparent" msgstr "" msgid "" msgstr "" msgid "Configure Custom Tool" msgstr "" msgid "Tool name" msgstr "" msgid "The tool name. It cannot contain spaces." msgstr "" #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" msgid "Tool label" msgstr "" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" msgid "Tooltip" msgstr "" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" msgid "Icon" msgstr "" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" msgid "On repowidget, show for" msgstr "" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" msgid "Show Output Log" msgstr "" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" msgid "You must set a tool name." msgstr "" msgid "The tool name cannot have any spaces in it." msgstr "" msgid "You must set a command to run." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" msgid "Configure Hook" msgstr "" msgid "Hook type" msgstr "" msgid "Select when your command will be run" msgstr "" msgid "The hook name. It cannot contain spaces." msgstr "" msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" msgid "You must set a valid hook type." msgstr "" msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "" msgid "Console" msgstr "" msgid "File &History / Annotate" msgstr "" msgid "Show the history of the selected file" msgstr "" msgid "Co&mpare File Revisions" msgstr "" msgid "Compare revisions of the selected file" msgstr "" msgid "Filter Histor&y" msgstr "" msgid "Query about changesets affecting the selected files" msgstr "" msgid "Diff &Changeset to Parent" msgstr "" msgid "Diff Changeset to Loc&al" msgstr "" msgid "&Diff to Parent" msgstr "" msgid "Diff to &Local" msgstr "" msgid "View changes to current in external diff tool" msgstr "" msgid "&View at Revision" msgstr "" msgid "View file as it appeared at this revision" msgstr "" msgid "&Save at Revision..." msgstr "" msgid "Save file as it appeared at this revision" msgstr "" msgid "Save file to" msgstr "" msgid "&Edit Local" msgstr "" msgid "&Open Local" msgstr "" msgid "E&xplore Local" msgstr "" msgid "Open parent folder of current file in the system file manager" msgstr "" msgid "&Copy Patch" msgstr "" msgid "Copy &Path" msgstr "" msgid "Copy full path of file(s) to the clipboard" msgstr "" msgid "&Revert to Revision..." msgstr "" msgid "Open S&ubrepository" msgstr "" msgid "Open the selected subrepository" msgstr "" msgid "E&xplore Folder" msgstr "" msgid "Open the selected folder in the system file manager" msgstr "" msgid "Open &Terminal" msgstr "" msgid "Open a shell terminal in the selected folder" msgstr "" msgid "Custom Tools" msgstr "" msgid "Diff &Local" msgstr "" msgid "&View Missing" msgstr "" msgid "View O&ther" msgstr "" msgid "Add &Largefiles..." msgstr "" msgid "&Forget" msgstr "" msgid "&Delete Unversioned..." msgstr "" msgid "Confirm Delete Unversioned" msgstr "" msgid "Delete the following unversioned files?" msgstr "" msgid "&Delete" msgstr "" msgid "Re&move Versioned" msgstr "" msgid "&Revert..." msgstr "" msgid "Uncommited merge - please select a parent revision" msgstr "" msgid "Revert files to local or other parent?" msgstr "" msgid "&Local" msgstr "" msgid "&Other" msgstr "" msgid "Confirm Revert" msgstr "" msgid "Revert local file changes?" msgstr "" msgid "&Revert with backup" msgstr "" msgid "&Discard changes" msgstr "" msgid "Revert the following files?" msgstr "" msgid "&Revert" msgstr "" msgid "&Copy..." msgstr "" msgid "Re&name..." msgstr "" msgid "&Ignore..." msgstr "" msgid "Edit Re&jects" msgstr "" msgid "Manually resolve rejected patch chunks" msgstr "" msgid "De&tect Renames..." msgstr "" msgid "&Mark Resolved" msgstr "" msgid "&Mark Unresolved" msgstr "" msgid "Restart Mer&ge" msgstr "" msgid "Was renamed from" msgstr "" msgid "Restart Merge &with" msgstr "" msgid "Display the file anyway" msgstr "" msgid "Diff not displayed: " msgstr "" #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid "File is binary" msgstr "" msgid "File may be binary (maximum line length exceeded)" msgstr "" msgid "File or diffs not displayed: " msgstr "" msgid " (was added)" msgstr "" #, python-format msgid " (copied from %s)" msgstr "" #, python-format msgid " (renamed from %s)" msgstr "" msgid " (is a symlink)" msgstr "" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid " (was deleted)" msgstr "" msgid " (was added, now missing)" msgstr "" msgid " (is unversioned)" msgstr "" msgid "exec mode has been set" msgstr "" msgid "exec mode has been unset" msgstr "" #, python-format msgid "changeset: %s" msgstr "" msgid "Initial revision" msgstr "" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" msgid "Subrepo created and set to initial revision." msgstr "" msgid "Subrepo initialized to revision:" msgstr "" msgid "Subrepo removed from repository." msgstr "" msgid "Previously the subrepository was at the following revision:" msgstr "" msgid "Subrepo was not changed." msgstr "" msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "" msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "" msgid "Subrepo state is:" msgstr "" msgid "Revision has changed to:" msgstr "" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "" msgid "From:" msgstr "" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" msgid "Subrepository not found in the working directory." msgstr "" msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" msgid "Not a Mercurial subrepo, not previewable" msgstr "" #, python-format msgid "Error previewing subrepo: %s" msgstr "" msgid "Subrepo may be damaged or inaccessible." msgstr "" msgid "The subrepository is dirty." msgstr "" msgid "File Status:" msgstr "" msgid "(is a changed sub-repository)" msgstr "" msgid "(is an unchanged sub-repository)" msgstr "" msgid "(is a dirty sub-repository)" msgstr "" msgid "(is a new sub-repository)" msgstr "" msgid "(is a removed sub-repository)" msgstr "" msgid "(is a changed and dirty sub-repository)" msgstr "" msgid "(is a new and dirty sub-repository)" msgstr "" msgid "open..." msgstr "" #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "" msgid "File History Log Columns" msgstr "" msgid "Back" msgstr "" msgid "Forward" msgstr "" msgid "Diff Selected &Changesets" msgstr "" msgid "&Diff Selected File Revisions" msgstr "" msgid "Show Revision &Details" msgstr "" msgid "Too many rows selected for menu" msgstr "" msgid "File Differences Log Columns" msgstr "" msgid "Next diff" msgstr "" msgid "Previous diff" msgstr "" msgid "Unicode" msgstr "" msgid "Western Europe" msgstr "" msgid "Unified Chinese" msgstr "" msgid "Traditional Chinese" msgstr "" msgid "Korean" msgstr "" msgid "Japanese" msgstr "" msgid "Thai" msgstr "" msgid "Central and Eastern Europe" msgstr "" msgid "Cyrillic" msgstr "" msgid "Russian" msgstr "" msgid "Ukrainian" msgstr "" msgid "Greek" msgstr "" msgid "Turkish" msgstr "" msgid "Arabic" msgstr "" msgid "Hebrew" msgstr "" msgid "Vietnamese" msgstr "" msgid "Baltic" msgstr "" msgid "Southern Europe" msgstr "" msgid "Nordic" msgstr "" msgid "Celtic" msgstr "" msgid "South-Eastern Europe" msgstr "" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "" msgid "View change as unified diff output" msgstr "" msgid "View change in context of file" msgstr "" msgid "Annotate with revision numbers" msgstr "" msgid "Next Diff" msgstr "" msgid "Previous Diff" msgstr "" msgid "Open shelve tool" msgstr "" msgid "&Auto Detect" msgstr "" msgid "Show changes from first parent" msgstr "" msgid "Show changes from second parent" msgstr "" msgid "E&ncoding" msgstr "" msgid "&Search in Current File" msgstr "" msgid "Search in All &History" msgstr "" msgid "Go to Line" msgstr "" #, python-format msgid "Enter line number (1 - %d)" msgstr "" msgid "Show &Author" msgstr "" msgid "Show &Date" msgstr "" msgid "Show &Revision" msgstr "" msgid "Annotate Op&tions" msgstr "" msgid "Search Selected Text" msgstr "" msgid "In Current &File" msgstr "" msgid "In &Current Revision" msgstr "" msgid "In &Original Revision" msgstr "" msgid "In All &History" msgstr "" msgid "Go to" msgstr "" msgid "View File at" msgstr "" msgid "Diff File to" msgstr "" msgid "&Originating Revision" msgstr "" msgid "&Parent Revision" msgstr "" #, python-format msgid "&Parent Revision (%d)" msgstr "" msgid "&Mark Excluded Changes" msgstr "" msgid "(excluded from the next commit)" msgstr "" msgid "Interrupted graft operation found" msgstr "" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" msgid "Continue or abort interrupted graft operation?" msgstr "" msgid "To graft destination" msgstr "" msgid "Use my user name instead of graft committer user name" msgstr "" msgid "Use current date" msgstr "" msgid "Append graft info to log message" msgstr "" msgid "Graft" msgstr "" msgid "Abort" msgstr "" #, python-format msgid "Graft - %s" msgstr "" msgid "Graft changeset" msgstr "" #, python-format msgid "Graft changeset #%d of %d" msgstr "" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" msgid "You may continue or start the graft" msgstr "" msgid "Graft is complete" msgstr "" msgid "Graft failed" msgstr "" msgid "Graft aborted" msgstr "" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" msgid "You may continue the graft" msgstr "" msgid "Exiting with an unfinished graft is not recommended." msgstr "" msgid "Consider aborting the graft first." msgstr "" msgid "&Exit" msgstr "" msgid "### regular expression search pattern ###" msgstr "" msgid "Regexp:" msgstr "" msgid "Ignore case" msgstr "" msgid "Search" msgstr "" msgid "Working Copy" msgstr "" msgid "All History" msgstr "" msgid "Report only the first match per file" msgstr "" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "" msgid "Includes:" msgstr "" msgid "Excludes:" msgstr "" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" #, python-format msgid "\"%s\" removed from search history" msgstr "" #, python-format msgid "\"%s\" removed from path history" msgstr "" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "" #, python-format msgid "grep: %s\n" msgstr "" #, python-format msgid "%d matches found" msgstr "" msgid "No matches found" msgstr "" msgid "Searching" msgstr "" msgid "history" msgstr "" msgid "Interrupted" msgstr "" msgid "files" msgstr "" #, python-format msgid "Skipping %s, unable to read" msgstr "" msgid "Vi&ew File" msgstr "" msgid "&View Changeset" msgstr "" msgid "Annotate &File" msgstr "" msgid "File" msgstr "" msgid "Line" msgstr "" msgid "Rev" msgstr "" msgid "User" msgstr "" msgid "Match Text" msgstr "" msgid "TortoiseHg Search" msgstr "" #, python-format msgid "Detect Copies/Renames in %s" msgstr "" msgid "Unrevisioned Files" msgstr "" msgid "Refresh file list" msgstr "" #, python-format msgid "Min Similarity: %d%%" msgstr "" msgid "Only consider deleted files" msgstr "" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "" msgid "Find Renames" msgstr "" msgid "Find copy and/or rename sources" msgstr "" msgid "Candidate Matches" msgstr "" msgid "Accept All Matches" msgstr "" msgid "Accept Selected Matches" msgstr "" msgid "Differences from Source to Dest" msgstr "" msgid "Search already in progress" msgstr "" msgid "Cannot start a new search" msgstr "" msgid "No files to find" msgstr "" msgid "There are no files that may have been renamed" msgstr "" msgid "Multiple sources chosen" msgstr "" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" #. i18n: percent format #, python-format msgid "%d%%" msgstr "" msgid "Source" msgstr "" msgid "Dest" msgstr "" msgid "% Match" msgstr "" msgid "Sending Email" msgstr "" msgid "Email" msgstr "" msgid "To:" msgstr "" msgid "Cc:" msgstr "" msgid "In-Reply-To:" msgstr "" msgid "Message identifier to reply to, for threading" msgstr "" msgid "Flag:" msgstr "" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" msgid "Send changesets as Hg patches" msgstr "" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" msgid "Use extended (git) patch format" msgstr "" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" msgid "Plain, do not prepend Hg header" msgstr "" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" msgid "Send single binary bundle, not patches" msgstr "" msgid "send patches as part of the email body" msgstr "" msgid "body" msgstr "" msgid "send patches as attachments" msgstr "" msgid "attach" msgstr "" msgid "send patches as inline attachments" msgstr "" msgid "inline" msgstr "" msgid "add diffstat output to messages" msgstr "" msgid "diffstat" msgstr "" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" msgid "Write patch series (bundle) description" msgstr "" msgid "Subject:" msgstr "" msgid "Changesets" msgstr "" msgid "Select &All" msgstr "" msgid "Select &None" msgstr "" msgid "Edit" msgstr "" msgid "Preview" msgstr "" msgid "&Settings" msgstr "" msgid "Send &Email" msgstr "" msgid "&Close" msgstr "" #, python-format msgid "Ignore filter - %s" msgstr "" msgid "Glob" msgstr "" msgid "Regexp" msgstr "" msgid "Add" msgstr "" msgid "Edit File" msgstr "" msgid "Ignore Filter" msgstr "" msgid "Untracked Files" msgstr "" msgid "Backspace or Del to remove row(s)" msgstr "" msgid "Add ignore filter..." msgstr "" msgid "selected files" msgstr "" msgid "Ignore " msgstr "" msgid "Invalid glob expression" msgstr "" msgid "Invalid regexp expression" msgstr "" msgid "Unable to read repository status" msgstr "" msgid "New file created" msgstr "" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" msgid "Unable to write .hgignore file" msgstr "" msgid "Copy working directory files from skeleton" msgstr "" msgid "Create special files (.hgignore, ...)" msgstr "" msgid "Make repo compatible with Mercurial <1.7" msgstr "" msgid "New Repository" msgstr "" msgid "&Create" msgstr "" msgid "Unable to create a config file" msgstr "" msgid "Insufficient access rights." msgstr "" msgid "Show Log" msgstr "" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" msgid "Add as &Largefiles" msgstr "" msgid "Add as &Normal Files" msgstr "" msgid "Invalid Patterns" msgstr "" msgid "Failed to process largefiles.patterns." msgstr "" msgid "Word docs (*.doc *.docx)" msgstr "" msgid "PDF docs (*.pdf)" msgstr "" msgid "Excel files (*.xls *.xlsx)" msgstr "" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "" msgid "Refresh lock information" msgstr "" msgid "Lock a file not described in .hglocks" msgstr "" msgid "Stop current operation" msgstr "" msgid "Locked And Lockable Files:" msgstr "" msgid "Path" msgstr "" msgid "Locking User" msgstr "" msgid "Purpose" msgstr "" msgid "Simplelock extension not enabled" msgstr "" msgid "Please enable and configure simplelock" msgstr "" msgid "Open a (nonmergable) file you wish to be locked" msgstr "" msgid "File was not within current repository" msgstr "" #, python-format msgid "Locking %s" msgstr "" #, python-format msgid "Unlocking %s" msgstr "" msgid "Refreshing locks..." msgstr "" #, python-format msgid "Lock of %s successful" msgstr "" #, python-format msgid "Lock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s successful" msgstr "" msgid "Ready, double click to lock or unlock" msgstr "" msgid "Ready" msgstr "" msgid "You can only release your own locks" msgstr "" msgid "Find revisions matching fields of:" msgstr "" msgid "Revision to Match:" msgstr "" msgid "Fields to match:" msgstr "" msgid "Summary (first description line)" msgstr "" msgid "Description" msgstr "" msgid "Author" msgstr "" msgid "Date" msgstr "" msgid "Files" msgstr "" msgid "Diff contents" msgstr "" msgid "Subrepo states" msgstr "" msgid "Branch" msgstr "" msgid "Phase" msgstr "" msgid "&Match" msgstr "" #, python-format msgid "Find matches - %s" msgstr "" msgid "Revisions to Match:" msgstr "" #, python-format msgid "Match any of %d revisions" msgstr "" msgid "Unknown revision!" msgstr "" msgid "Parse Error!" msgstr "" #, python-format msgid "Merge - %s" msgstr "" msgid "Do you want to exit?" msgstr "" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" msgid "Prepare to merge" msgstr "" msgid "Verify merge targets and ensure your working directory is clean." msgstr "" msgid "Not a head revision!" msgstr "" msgid "Merge from (other revision)" msgstr "" msgid "Merge to (working directory)" msgstr "" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Or use:" msgstr "" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "" msgid "Discard all changes from the other revision" msgstr "" msgid "&Discard" msgstr "" msgid "Confirm Discard Changes" msgstr "" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" msgctxt "working dir state" msgid "Clean" msgstr "" msgid "Merging..." msgstr "" msgid "Automatically advance to next page when merge is complete." msgstr "" #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" msgid "" "No merge conflicts, ready to commit or review" msgstr "" msgid "Commit merge results" msgstr "" msgid "Commit Options" msgstr "" msgid "Commit Now" msgstr "" msgid "Commit Later" msgstr "" msgid "Merge changeset" msgstr "" msgid "Syntax Highlighting" msgstr "" msgid "Paste &Filenames" msgstr "" msgid "App&ly Format" msgstr "" msgid "C&onfigure Format" msgstr "" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "" msgid "&Commit to Queue..." msgstr "" msgid "Create &New Queue..." msgstr "" msgid "&Rename Active Queue..." msgstr "" msgid "&Delete Queue..." msgstr "" msgid "&Purge Queue..." msgstr "" msgid "Create Patch Queue" msgstr "" msgid "New patch queue name" msgstr "" msgid "Create" msgstr "" msgid "Rename Patch Queue" msgstr "" #, python-format msgid "Rename patch queue '%s' to" msgstr "" msgid "Rename" msgstr "" msgid "Delete Patch Queue" msgstr "" msgid "Delete reference to" msgstr "" msgid "Delete" msgstr "" msgid "Purge Patch Queue" msgstr "" msgid "Remove patch directory of" msgstr "" msgid "Purge" msgstr "" msgid "Rename Patch" msgstr "" #, python-format msgid "Rename patch %s to:" msgstr "" msgid "no guards" msgstr "" msgid "Patch Queue" msgstr "" msgctxt "MQ QPush" msgid "Push" msgstr "" msgid "Apply one patch" msgstr "" msgctxt "MQ QPush" msgid "Push all" msgstr "" msgid "Apply all patches" msgstr "" msgid "Pop" msgstr "" msgid "Unapply one patch" msgstr "" msgid "Pop all" msgstr "" msgid "Unapply all patches" msgstr "" msgid "Go &to Patch" msgstr "" msgid "&Apply Only This Patch" msgstr "" msgid "Apply only the selected patch" msgstr "" msgid "&Finish Patch" msgstr "" msgid "Move applied patches into repository history" msgstr "" msgid "&Delete Patches..." msgstr "" msgid "Delete selected patches" msgstr "" msgid "Re&name Patch..." msgstr "" msgid "Set &Guards..." msgstr "" msgid "Configure guards for selected patch" msgstr "" msgid "Patch Queue Actions Toolbar" msgstr "" msgid "Configure guards" msgstr "" #, python-format msgid "Input new guards for %s:" msgstr "" msgid "Confirm patch queue switch" msgstr "" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "" #, python-format msgid "Guards: %d/%d" msgstr "" msgid "MQ options" msgstr "" msgid "Force push or pop (--force)" msgstr "" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "" msgid "Submitting p4 changelist..." msgstr "" msgid "Reverting p4 changelist..." msgstr "" msgid "Patch Branch Toolbar" msgstr "" msgid "Merge all pending dependencies" msgstr "" msgid "Backout current patch branch" msgstr "" msgid "Backport part of a changeset to a dependency" msgstr "" msgid "Start a new patch branch" msgstr "" msgid "Edit patch dependency graph" msgstr "" msgid "will be closed" msgstr "" #, python-format msgid "needs merge of %i heads\n" msgstr "" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "" #, python-format msgid "needs merge with %s\n" msgstr "" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "" msgid "&Goto (update workdir)" msgstr "" msgid "&Merge" msgstr "" msgid "No patch branch selected" msgstr "" msgid "No editor found" msgstr "" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" msgid "Graph" msgstr "" msgid "Status" msgstr "" msgid "Title" msgstr "" msgid "Message" msgstr "" msgid "New Patch Branch" msgstr "" msgid "Patch message:" msgstr "" msgid "Patch date:" msgstr "" msgid "Patch user:" msgstr "" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" msgid "Review Board" msgstr "" msgid "Password:" msgstr "" msgid "Error" msgstr "" #, python-format msgid "Review draft posted to %s\n" msgstr "" #, python-format msgid "Review published to %s\n" msgstr "" msgid "Success" msgstr "" msgid "Repository ID:" msgstr "" msgid "Post Review" msgstr "" msgid "Review ID:" msgstr "" msgid "Update the fields of this existing request" msgstr "" msgid "Update Review" msgstr "" msgid "Create diff with all outgoing changes" msgstr "" msgid "Create diff with all changes on this branch" msgstr "" msgid "Publish request immediately" msgstr "" msgid "%p%" msgstr "" msgid "Connecting to Review Board..." msgstr "" msgid "Target:" msgstr "" msgid "Do not modify working copy (-k/--keep)" msgstr "" #, python-format msgid "Prune - %s" msgstr "" msgid "&Prune" msgstr "" msgid "No unknown files found" msgstr "" msgid "No ignored files found" msgstr "" msgid "No trash files found" msgstr "" msgid "Delete empty folders" msgstr "" msgid "Preserve files beginning with .hg" msgstr "" #, python-format msgid "%s - purge" msgstr "" msgid "Checking" msgstr "" msgid "Ready to purge." msgstr "" #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "" msgstr[1] "" msgid "Confirm file deletions" msgstr "" msgid "Are you sure you want to delete these files and/or folders?" msgstr "" msgid "Deletion failures" msgstr "" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "" msgstr[1] "" msgid "Deleting trash folder..." msgstr "" #, python-format msgid "Deleted %d files" msgstr "" #, python-format msgid "Deleted %d files and %d folders" msgstr "" msgid "Delete Patches" msgstr "" msgid "Remove patches from queue?" msgstr "" msgid "Keep patch files" msgstr "" #, python-format msgid "Patch fold - %s" msgstr "" msgid "New patch message:" msgstr "" msgid "Patches to fold" msgstr "" msgid "&Undo" msgstr "" msgid "&Redo" msgstr "" msgid "Cu&t" msgstr "" msgid "&Copy" msgstr "" msgid "&Paste" msgstr "" msgid "&Editor Options" msgstr "" msgid "&Wrap" msgstr "" msgctxt "wrap mode" msgid "&None" msgstr "" msgid "&Word" msgstr "" msgid "&Character" msgstr "" msgid "White&space" msgstr "" msgid "&Visible" msgstr "" msgid "&Invisible" msgstr "" msgid "&AfterIndent" msgstr "" msgid "&TAB Inserts" msgstr "" msgid "&Auto" msgstr "" msgid "&TAB" msgstr "" msgid "&Spaces" msgstr "" msgid "EOL &Visibility" msgstr "" msgid "EOL &Mode" msgstr "" msgid "&Windows" msgstr "" msgid "&Unix" msgstr "" msgid "&Mac" msgstr "" msgid "&Auto-Complete" msgstr "" msgid "### regular expression ###" msgstr "" msgid "Regular expression search pattern" msgstr "" msgid "Wrap search" msgstr "" msgid "Prev" msgstr "" msgid "Next" msgstr "" msgid "Unable to read file" msgstr "" msgid "Could not open the specified file for reading." msgstr "" msgid "This appears to be a binary file." msgstr "" msgid "An error occurred while reading the file." msgstr "" msgid "Text Translation Failure" msgstr "" msgid "Could not translate the file content from native encoding." msgstr "" msgid "Several characters would be lost." msgstr "" msgid "Unable to write file" msgstr "" msgid "Could not translate the file content to native encoding." msgstr "" msgid "Could not open the specified file for writing." msgstr "" msgid "An error occurred while writing the file." msgstr "" msgid "Try refreshing your repository." msgstr "" #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
                                                Please edit your config" msgstr "" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
                                                Please fix your config" msgstr "" #, python-format msgid "Operation aborted:

                                                %(arg0)s." msgstr "" msgid "Repository is locked" msgstr "" msgid "hint:" msgstr "" msgid "Repository Error" msgstr "" msgid "No visual editor configured" msgstr "" msgid "Please configure a visual editor." msgstr "" msgid "Editor launch failure" msgstr "" msgid "Failed to open path in terminal" msgstr "" #, python-format msgid "\"%s\" is not a valid directory" msgstr "" #, python-format msgid "Invalid configuration: %s" msgstr "" msgid "Unable to start the following command:" msgstr "" msgid "No shell configured" msgstr "" msgid "A terminal shell must be configured" msgstr "" msgid "Please enter a username" msgstr "" msgid "You must identify yourself to Mercurial" msgstr "" msgid "Unable to translate input to local encoding." msgstr "" msgid "Checkmark files to add" msgstr "" msgid "Checkmark files to forget" msgstr "" msgid "Forget" msgstr "" msgid "Checkmark files to revert" msgstr "" msgid "Revert" msgstr "" msgid "Checkmark files to remove" msgstr "" msgid "Remove" msgstr "" #, python-format msgid "%s - hg %s" msgstr "" msgid "Do not save backup files (*.orig)" msgstr "" msgid "Force removal of modified files (--force)" msgstr "" msgid "Add &Largefiles" msgstr "" msgid "No files selected" msgstr "" msgid "No operation to perform" msgstr "" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" msgid "Remove &Unmodified Files" msgstr "" msgid "Remove &All Selected Files" msgstr "" msgid "Rebase changeset and descendants" msgstr "" msgid "To rebase destination" msgstr "" msgid "Swap source and destination" msgstr "" msgid "Keep original changesets (--keep)" msgstr "" msgid "Keep original branch names (--keepbranches)" msgstr "" msgid "Collapse the rebased changesets (--collapse)" msgstr "" msgid "Rebase entire source branch (-b/--base)" msgstr "" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "" msgid "Rebase" msgstr "" #, python-format msgid "Rebase - %s" msgstr "" msgid "" "Before rebase, you must
                                                commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the rebase" msgstr "" msgid "Rebase is complete" msgstr "" msgid "Rebase failed" msgstr "" msgid "Rebase aborted" msgstr "" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" msgid "Exiting with an unfinished rebase is not recommended." msgstr "" msgid "Consider aborting the rebase first." msgstr "" #, python-format msgid "Merge rejected patch chunks into %s" msgstr "" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "" msgid "Mark this chunk as unresolved" msgstr "" msgid "Reload File" msgstr "" msgid "Are you sure you want to reload this file?" msgstr "" msgid "All unsaved changes will be lost." msgstr "" msgid "Warning" msgstr "" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" msgid "Copy source -> destination" msgstr "" msgid "Copy Error" msgstr "" msgid "Rename Error" msgstr "" msgid "Select Source File" msgstr "" msgid "Select Source Folder" msgstr "" msgid "Source does not exist." msgstr "" msgid "The source must be within the repository tree." msgstr "" msgid "The destination must be within the repository tree." msgstr "" msgid "Destination file already exists." msgstr "" msgid "Are you sure you want to overwrite it ?" msgstr "" #, python-format msgid "Copy - %s" msgstr "" #, python-format msgid "Rename - %s" msgstr "" msgid "Show all" msgstr "" msgid "### revision set query ###" msgstr "" msgid "Clear current query and query text" msgstr "" msgid "Trigger revision set query" msgstr "" msgid "Open advanced query editor" msgstr "" msgid "Delete selected query from history" msgstr "" msgid "filter" msgstr "" msgid "Toggle filtering of non-matched changesets" msgstr "" msgid "Show/Hide hidden changesets" msgstr "" msgid "Toggle graft relations visibility" msgstr "" msgid "Keyword Search" msgstr "" msgid "Revision Set" msgstr "" msgid "(unsaved)" msgstr "" msgid "Display graph the named branch only" msgstr "" msgid "Display only active branches" msgstr "" msgid "Display closed branches" msgstr "" msgid "Include all ancestors" msgstr "" msgctxt "column header" msgid "Graph" msgstr "" msgctxt "column header" msgid "Rev" msgstr "" msgctxt "column header" msgid "Branch" msgstr "" msgctxt "column header" msgid "Description" msgstr "" msgctxt "column header" msgid "Author" msgstr "" msgctxt "column header" msgid "Tags" msgstr "" msgctxt "column header" msgid "Latest tags" msgstr "" msgctxt "column header" msgid "Node" msgstr "" msgctxt "column header" msgid "Git Commit" msgstr "" msgctxt "column header" msgid "Age" msgstr "" msgctxt "column header" msgid "Local Time" msgstr "" msgctxt "column header" msgid "UTC Time" msgstr "" msgctxt "column header" msgid "Changes" msgstr "" msgctxt "column header" msgid "Converted From" msgstr "" msgctxt "column header" msgid "Phase" msgstr "" msgctxt "column header" msgid "Filename" msgstr "" msgid "Searching..." msgstr "" #, python-format msgid "filling (%d)" msgstr "" msgid "Mercurial User" msgstr "" msgid "Repository Registry" msgstr "" msgid "Show &Paths" msgstr "" msgid "Show S&hort Paths" msgstr "" msgid "&Scan Repositories at Startup" msgstr "" msgid "Scan &Remote Repositories" msgstr "" msgid "&Refresh Repository List" msgstr "" msgid "Refresh the Repository Registry list" msgstr "" msgid "&Open" msgstr "" msgid "Open the repository in a new tab" msgstr "" msgid "&Open All" msgstr "" msgid "Open all repositories in new tabs" msgstr "" msgid "New &Group" msgstr "" msgid "Create a new group" msgstr "" msgid "Rename the entry" msgstr "" msgid "Settin&gs" msgstr "" msgid "View the repository's settings" msgstr "" msgid "Re&move from Registry" msgstr "" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" msgid "Clon&e..." msgstr "" msgid "Clone Repository" msgstr "" msgid "E&xplore" msgstr "" msgid "Open the repository in a file browser" msgstr "" msgid "&Terminal" msgstr "" msgid "Open a shell terminal in the repository root" msgstr "" msgid "&Add Repository..." msgstr "" msgid "Add a repository to this group" msgstr "" msgid "A&dd Subrepository..." msgstr "" msgid "Convert an existing repository into a subrepository" msgstr "" msgid "Remo&ve Subrepository..." msgstr "" msgid "Remove this subrepository from the current revision" msgstr "" msgid "Copy the root path of the repository to the clipboard" msgstr "" msgid "Sort by &Name" msgstr "" msgid "Sort the group by short name" msgstr "" msgid "Sort by &Path" msgstr "" msgid "Sort the group by full path" msgstr "" msgid "&Sort by .hgsub" msgstr "" msgid "Order the subrepos as in .hgsub" msgstr "" msgid "Select repository directory to add" msgstr "" msgid "Select an existing repository to add as a subrepo" msgstr "" msgid "Cannot add subrepository" msgstr "" #, python-format msgid "%s is not a valid repository" msgstr "" #, python-format msgid "\"%s\" is not a folder" msgstr "" msgid "A repository cannot be added as a subrepo of itself" msgstr "" #, python-format msgid "" "The selected folder:

                                                %s

                                                is not inside the target repository." "

                                                This may be allowed but is greatly discouraged.
                                                If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" msgid "Cannot open repository" msgstr "" #, python-format msgid "The selected repository:

                                                %s

                                                cannot be open!" msgstr "" msgid "Subrepository already exists" msgstr "" #, python-format msgid "" "The selected repository:

                                                %s

                                                is already a subrepository of:" "

                                                %s

                                                as: \"%s\"" msgstr "" msgid "Failed to add subrepository" msgstr "" #, python-format msgid "Cannot open the .hgsub file in:

                                                %s" msgstr "" msgid "Failed to add repository" msgstr "" #, python-format msgid "The .hgsub file already contains the line:

                                                %s" msgstr "" msgid "Subrepo added to .hgsub file" msgstr "" #, python-format msgid "" "The selected subrepo:

                                                %s

                                                has been added to the .hgsub " "file of the repository:

                                                %s

                                                Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" #, python-format msgid "Cannot update the .hgsub file in:

                                                %s" msgstr "" msgid "Could not open .hgsub file" msgstr "" msgid "Cannot read the .hgsub file.

                                                Subrepository removal failed." msgstr "" msgid "Subrepository not found" msgstr "" msgid "" "The selected subrepository was not found on the .hgsub file.

                                                Perhaps it " "has already been removed?" msgstr "" msgid "&Yes" msgstr "" msgid "&No" msgstr "" msgid "Remove the selected repository?" msgstr "" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" msgid "Subrepository removed from .hgsub" msgstr "" msgid "" "The selected subrepository has been removed from the .hgsub file.

                                                Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" msgid "Could not update .hgsub file" msgstr "" msgid "Cannot update the .hgsub file.

                                                Subrepository removal failed." msgstr "" #, python-format msgid "Unsupported repository type (%s)" msgstr "" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "" msgid "New Group" msgstr "" msgid "Confirm Delete" msgstr "" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "" msgid "Could not get subrepository list" msgstr "" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

                                                %s" msgstr "" msgid "Could not open some subrepositories" msgstr "" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

                                                %s

                                                The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

                                                %s" msgstr "" msgid "Updating repository registry" msgstr "" #, python-format msgid "Loading repository %s" msgstr "" msgid "Repository Registry updated" msgstr "" msgid "Close tab" msgstr "" msgid "Close other tabs" msgstr "" msgid "Undo close tab" msgstr "" msgid "Reopen last closed tab" msgstr "" msgid "Undo close other tabs" msgstr "" msgid "Reopen last closed tab group" msgstr "" msgid "Failed to open repository" msgstr "" msgid "&Sort" msgstr "" #, python-format msgid "Local Repository %s" msgstr "" #, python-format msgid "" "An exception happened while loading the subrepos of:

                                                \"%s\"

                                                " msgstr "" #, python-format msgid "The exception error message was:

                                                %s

                                                " msgstr "" msgid "Click OK to continue or Abort to exit." msgstr "" msgid "Error loading subrepos" msgstr "" msgid "Unable to update repository name" msgstr "" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "" msgid "default" msgstr "" msgid "C&hoose Log Columns..." msgstr "" msgid "&Resize Columns" msgstr "" #, python-format msgid "Goto ancestor of %s and %s" msgstr "" #, python-format msgid "Can't find revision '%s'" msgstr "" msgid "Drag to change order" msgstr "" msgid "Workbench Log Columns" msgstr "" msgctxt "tab tooltip" msgid "Revision details" msgstr "" msgctxt "tab tooltip" msgid "Commit" msgstr "" msgctxt "tab tooltip" msgid "Search" msgstr "" msgctxt "tab tooltip" msgid "Console log" msgstr "" msgctxt "tab tooltip" msgid "Synchronize" msgstr "" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "" #, python-format msgid "%s " msgstr "" #, python-format msgid "Found %d incoming changesets" msgstr "" msgid "Pull" msgstr "" msgid "Pull incoming changesets into your repository" msgstr "" msgid "Reject incoming changesets" msgstr "" #, python-format msgid "Push current branch (%s)" msgstr "" #, python-format msgid "Push up to current revision (#%d)" msgstr "" #, python-format msgid "Push up to revision #%d" msgstr "" msgid "Push all" msgstr "" msgid "no outgoing changesets" msgstr "" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets" msgstr "" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "" msgid "Nothing to push" msgstr "" msgid "No revision found" msgstr "" #, python-format msgid "%s - verify repository" msgstr "" #, python-format msgid "%s - recover repository" msgstr "" msgid "No transaction available" msgstr "" msgid "There is no rollback transaction available" msgstr "" msgid "Undo last commit?" msgstr "" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "" msgid "Undo last transaction?" msgstr "" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "" msgid "Unable to determine working copy revision\n" msgstr "" msgid "Remove current working revision?" msgstr "" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" msgid "Tab cannot exit" msgstr "" msgid "Pus&h" msgstr "" msgid "Push to &Here" msgstr "" msgid "Push Selected &Branch" msgstr "" msgid "Push &All" msgstr "" msgid "&Update..." msgstr "" msgid "Bro&wse at Revision" msgstr "" msgid "&Merge with Local..." msgstr "" msgid "&Tag..." msgstr "" msgid "Boo&kmark..." msgstr "" msgid "Top&ic..." msgstr "" msgid "Sig&n..." msgstr "" msgid "&Backout..." msgstr "" msgid "Revert &All Files..." msgstr "" msgid "Copy &Hash" msgstr "" msgid "E&xport" msgstr "" msgid "E&xport Patch..." msgstr "" msgid "&Email Patch..." msgstr "" msgid "&Archive..." msgstr "" msgid "&Bundle Rev and Descendants..." msgstr "" msgid "Change &Phase to" msgstr "" msgid "&Graft to Local..." msgstr "" msgid "Modi&fy History" msgstr "" msgid "&Unapply Patch" msgstr "" msgid "Import to &MQ" msgstr "" msgid "MQ &Options" msgstr "" msgid "&Rebase..." msgstr "" msgid "&Prune..." msgstr "" msgid "&Strip..." msgstr "" msgid "Post to Re&view Board..." msgstr "" msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "" msgid "Write diff file" msgstr "" msgid "Unable to write diff file" msgstr "" msgid "Unable to compress history" msgstr "" msgid "Selected changeset pair not related" msgstr "" msgid "Visual Diff..." msgstr "" msgid "Export Diff..." msgstr "" msgid "Export Selected..." msgstr "" msgid "Email Selected..." msgstr "" msgid "Copy Selected as Patch" msgstr "" msgid "Archive DAG Range..." msgstr "" msgid "Export DAG Range..." msgstr "" msgid "Email DAG Range..." msgstr "" msgid "Bundle DAG Range..." msgstr "" msgid "Bisect - Good, Bad..." msgstr "" msgid "Bisect - Bad, Good..." msgstr "" msgid "Compress History..." msgstr "" msgid "Rebase..." msgstr "" msgid "Goto common ancestor" msgstr "" msgid "Graft Selected to local..." msgstr "" msgid "&Prune Selected..." msgstr "" msgid "Post Selected to Review Board..." msgstr "" msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "" msgid "Apply onto original parent" msgstr "" msgid "Apply only this patch" msgstr "" msgid "Fold patches..." msgstr "" msgid "Delete patches..." msgstr "" msgid "Rename patch..." msgstr "" msgid "Pull to here..." msgstr "" msgid "Visual diff..." msgstr "" msgid "Export patch" msgstr "" msgid "Patch Files (*.patch)" msgstr "" msgid "Cannot export revision" msgstr "" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" msgid "There is already an existing folder with that same name." msgstr "" msgid "Replace" msgstr "" msgid "Append" msgstr "" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" msgid "What do you want to do?\n" msgstr "" msgid "Replace the existing patch files.\n" msgstr "" msgid "Append the changes to the existing patch files.\n" msgstr "" msgid "Abort the export operation.\n" msgstr "" msgid "Patch files already exist" msgstr "" msgid "Patch exported" msgstr "" #, python-format msgid "" "Revision #%d (%s) was exported to:

                                                %s%s%s" msgstr "" msgid "Patches exported" msgstr "" #, python-format msgid "%d patches were exported to:

                                                %s" msgstr "" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

                                                Are you sure you want to use revert?

                                                (use " "update to checkout another revision)" msgstr "" msgid "Filter b&y" msgstr "" msgid "&Ancestors and Descendants" msgstr "" msgid "A&uthor" msgstr "" msgid "&Branch" msgstr "" msgid "&More Options..." msgstr "" msgid "Unable to merge" msgstr "" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "" msgid "Unable to backout" msgstr "" msgid "Write bundle" msgstr "" msgid "Backwards phase change requested" msgstr "" msgid "Do you really want to make this revision secret?" msgstr "" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" msgid "&Make secret" msgstr "" msgid "&Cancel" msgstr "" msgid "Do you really want to force a backwards phase transition?" msgstr "" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" msgid "&Force" msgstr "" msgid "Cannot import selected revision" msgstr "" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" msgid "Invalid command" msgstr "" msgid "The selected command is empty" msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" msgid "Failed to execute custom TortoiseHg command" msgstr "" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "" msgid "Failed to execute custom command" msgstr "" #, python-format msgid "The command \"%s\" could not be executed." msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" msgid "&Edit Toolbar" msgstr "" msgid "&Refresh" msgstr "" msgid "&Filter Toolbar" msgstr "" #, python-format msgid "TortoiseHg: %s" msgstr "" msgid "S&tatus Bar" msgstr "" #, python-format msgid "Resolve Conflicts - %s" msgstr "" msgid "Local revision information" msgstr "" msgid "Other revision information" msgstr "" msgid "Unresolved conflicts" msgstr "" msgid "Mercurial Re&solve" msgstr "" msgid "Attempt automatic (trivial) merge" msgstr "" msgid "Tool &Resolve" msgstr "" msgid "Merge using selected merge tool" msgstr "" msgid "&Take Local" msgstr "" msgid "Accept the local file version (yours)" msgstr "" msgid "Take &Other" msgstr "" msgid "Accept the other file version (theirs)" msgstr "" msgid "&Mark as Resolved" msgstr "" msgid "Mark this file as resolved" msgstr "" msgid "Diff &Local to Ancestor" msgstr "" msgid "&Diff Other to Ancestor" msgstr "" msgid "Resolved conflicts" msgstr "" msgid "&Edit File" msgstr "" msgid "Edit resolved file" msgstr "" msgid "3-&Way Diff" msgstr "" msgid "Visual three-way diff" msgstr "" msgid "Visual diff between resolved file and first parent" msgstr "" msgid "&Diff to Other" msgstr "" msgid "Visual diff between resolved file and second parent" msgstr "" msgid "Mark as &Unresolved" msgstr "" msgid "Mark this file as unresolved" msgstr "" msgid "Detected merge/diff tools:" msgstr "" msgid "Command output" msgstr "" msgid "Unable to show subrepository files" msgstr "" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" msgid "There are merge conflicts to be resolved" msgstr "" msgid "All conflicts are resolved." msgstr "" msgid "There are no conflicting file merges." msgstr "" msgid "Exit without finishing resolve?" msgstr "" msgid "Unresolved conflicts remain. Are you sure?" msgstr "" msgid "E&xit" msgstr "" msgid "Ext" msgstr "" msgid "Repository" msgstr "" msgid "" msgstr "" msgid "File List Toolbar" msgstr "" msgid "Ma&nifest Mode" msgstr "" msgid "Show all version-controlled files in tree view" msgstr "" msgid "&Flat List" msgstr "" msgid "### filter text ###" msgstr "" msgid "Changed by &This Commit" msgstr "" msgid "Show files changed by this commit" msgstr "" msgid "Compare to &1st Parent" msgstr "" msgid "Compare to &2nd Parent" msgstr "" msgid "Toggle parent to be used as the base revision" msgstr "" msgid "List Optio&ns" msgstr "" #, python-format msgid "%s - Revision Details (%s)" msgstr "" #, python-format msgid "Revert - %s" msgstr "" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "" msgid "Revert all files to this revision" msgstr "" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "" msgid "null revision (i.e. remove file(s))" msgstr "" msgid "Changeset:" msgstr "" msgid "Child:" msgstr "" msgid "Predecessors:" msgstr "" msgid "Successors:" msgstr "" msgid "Head is closed!" msgstr "" msgid "Changesets where username contains string." msgstr "" msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" msgid "Like \"keyword(string)\" but accepts a regex." msgstr "" msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" msgid "The named bookmark or all bookmarks." msgstr "" msgid "The named tag or all tags." msgstr "" msgid "Changeset is tagged." msgstr "" msgid "Changeset is a named branch head." msgstr "" msgid "Changeset is a merge changeset." msgstr "" msgid "Changeset is closed." msgstr "" msgid "" "Changesets within the interval, see help dates" msgstr "" msgid "Greatest common ancestor of the two changesets." msgstr "" msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" msgid "Changesets which modify files matched by pattern." msgstr "" msgid "Changesets which add files matched by pattern." msgstr "" msgid "Changesets which remove files matched by pattern." msgstr "" msgid "Changesets containing files matched by pattern." msgstr "" msgid "All changesets belonging to the branches of changesets in set." msgstr "" msgid "Members of a set with no children in set." msgstr "" msgid "Changesets which are descendants of changesets in set." msgstr "" msgid "Changesets that are ancestors of a changeset in set." msgstr "" msgid "Child changesets of changesets in set." msgstr "" msgid "The set of all parents for all changesets in set." msgstr "" msgid "First parent for all changesets in set, or the working directory." msgstr "" msgid "Second parent for all changesets in set, or the working directory." msgstr "" msgid "Changesets with no parent changeset in set." msgstr "" msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" msgid "Changeset with lowest revision number in set." msgstr "" msgid "Changeset with highest revision number in set." msgstr "" msgid "First n members of a set." msgstr "" msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "" msgid "All changesets, the same as 0:tip." msgstr "" msgid "Revision Set Query" msgstr "" msgid "all revisions converted from subversion" msgstr "" msgid "changeset which represents converted svn revision" msgstr "" msgid "Common sets" msgstr "" msgid "File pattern sets" msgstr "" msgid "Set Ancestry" msgstr "" msgid "Set Logic" msgstr "" msgid "" "help " "revsets" msgstr "" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" #, python-format msgid "thg: unknown command '%s'\n" msgstr "" #, python-format msgid "thg %s: %s\n" msgstr "" #, python-format msgid "thg: %s\n" msgstr "" #, python-format msgid "abort: %s!\n" msgstr "" #, python-format msgid "abort: %s\n" msgstr "" #, python-format msgid "(%s)\n" msgstr "" msgid "option --config may not be abbreviated!" msgstr "" msgid "invalid arguments" msgstr "" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" msgid "repository root directory or symbolic path name" msgstr "" msgid "enable additional output" msgstr "" msgid "suppress output" msgstr "" msgid "display help and exit" msgstr "" msgid "set/override config option (use 'section.name=value')" msgstr "" msgid "enable debugging output" msgstr "" msgid "start debugger" msgstr "" msgid "print command execution profile" msgstr "" msgid "do not fork GUI process" msgstr "" msgid "always fork GUI process" msgstr "" msgid "read file list from file" msgstr "" msgid "read file list from file encoding utf-8" msgstr "" msgid "thg about" msgstr "" msgid "thg add [FILE]..." msgstr "" msgid "revision to annotate" msgstr "" msgid "open to line" msgstr "" msgid "initial search pattern" msgstr "" msgid "thg annotate" msgstr "" #, python-format msgid "invalid line number: %s" msgstr "" msgid "revision to archive" msgstr "" msgid "thg archive" msgstr "" msgid "merge with old dirstate parent after backout" msgstr "" msgid "parent to choose when backing out merge" msgstr "" msgid "revision to backout" msgstr "" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "" msgid "thg bisect" msgstr "" msgid "revision" msgstr "" msgid "thg bookmarks [-r REV] [NAME]" msgstr "" msgid "only one new bookmark name allowed" msgstr "" msgid "the clone will include an empty working copy (only a repository)" msgstr "" msgid "revision, tag or branch to check out" msgstr "" msgid "include the specified changeset" msgstr "" msgid "clone only the specified branch" msgstr "" msgid "use pull protocol to copy metadata" msgstr "" msgid "use uncompressed transfer (fast over LAN)" msgstr "" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "" msgid "record user as committer" msgstr "" msgid "record datecode as commit date" msgstr "" msgid "thg commit [OPTIONS] [FILE]..." msgstr "" msgid "thg debugblockmatcher" msgstr "" msgid "thg debugbugreport [TEXT]" msgstr "" msgid "thg debugconsole" msgstr "" msgid "thg debuglighthg" msgstr "" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "" msgid "no command specified" msgstr "" msgid "thg drag_copy SOURCE... DEST" msgstr "" msgid "thg drag_move SOURCE... DEST" msgstr "" msgid "a revision to send" msgstr "" msgid "thg email [REVS]" msgstr "" msgid "use only one form to specify the revision" msgstr "" msgid "select the specified revision" msgstr "" msgid "side-by-side comparison of revisions" msgstr "" msgid "thg filelog [OPTION]... FILE" msgstr "" msgid "requires a single filename" msgstr "" msgid "thg forget [FILE]..." msgstr "" msgid "revisions to graft" msgstr "" msgid "thg graft [-r] REV..." msgstr "" msgid "You must provide revisions to graft" msgstr "" msgid "ignore case during search" msgstr "" msgid "thg grep" msgstr "" msgid "thg guess" msgstr "" msgid "thg help [COMMAND]" msgstr "" msgid "global options:" msgstr "" msgid "use \"thg help\" for the full list of commands" msgstr "" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "" msgid "" "list of commands:\n" "\n" msgstr "" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" msgid "(no help text available)" msgstr "" msgid "options:\n" msgstr "" msgid "no commands defined\n" msgstr "" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "" msgid "" "basic commands:\n" "\n" msgstr "" #, python-format msgid " (default: %s)" msgstr "" msgid "thg hgignore [FILE]" msgstr "" msgid "import to the patch queue (MQ)" msgstr "" msgid "thg import [OPTION] [SOURCE]..." msgstr "" msgid "thg init [DEST]" msgstr "" msgid "thg lock" msgstr "" msgid "search for a given text or revset" msgstr "" msgid "(DEPRECATED)" msgstr "" msgid "open a new workbench window" msgstr "" msgid "thg log [OPTIONS] [FILE]" msgstr "" msgid "cannot specify both -k/--query and filenames" msgstr "" msgid "revision to display" msgstr "" msgid "thg manifest [-r REV] [FILE]" msgstr "" msgid "revision to merge" msgstr "" msgid "thg merge [[-r] REV]" msgstr "" msgid "Merge revision not specified or not found" msgstr "" msgid "a revision to post" msgstr "" msgid "thg postreview [-r] REV..." msgstr "" msgid "reviewboard extension not enabled" msgstr "" #, python-format msgid "see %(url)s" msgstr "" msgid "no revisions specified" msgstr "" msgid "revisions to prune" msgstr "" msgid "thg prune [-r] REV..." msgstr "" msgid "thg purge" msgstr "" msgid "keep original changesets" msgstr "" msgid "keep original branch names" msgstr "" msgid "rebase from the specified changeset" msgstr "" msgid "rebase onto the specified changeset" msgstr "" msgid "thg rebase -s REV -d REV [--keep]" msgstr "" msgid "Rebase already in progress" msgstr "" msgid "Resuming rebase already in progress" msgstr "" msgid "You must provide source and dest arguments" msgstr "" msgid "thg rejects [FILE]" msgstr "" msgid "You must provide the path to a file" msgstr "" msgid "thg remove [FILE]..." msgstr "" msgid "thg rename [SOURCE] [DEST]" msgstr "" msgid "field to give initial focus" msgstr "" msgid "thg repoconfig" msgstr "" msgid "thg resolve" msgstr "" msgid "the revision to show" msgstr "" msgid "thg revdetails [-r REV]" msgstr "" msgid "thg revert [FILE]..." msgstr "" msgid "revision to update" msgstr "" msgid "thg rupdate [[-r] REV]" msgstr "" msgid "name of the hgweb config file (serve more than one repository)" msgstr "" msgid "name of the hgweb config file (DEPRECATED)" msgstr "" msgid "thg serve [--web-conf FILE]" msgstr "" msgid "thg shellconfig" msgstr "" msgid "thg shelve" msgstr "" msgid "sign even if the sigfile is modified" msgstr "" msgid "make the signature local" msgstr "" msgid "the key id to sign with" msgstr "" msgid "do not commit the sigfile after signing" msgstr "" msgid "use as commit message" msgstr "" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "" msgid "Please enable the Gpg extension first." msgstr "" msgid "show files without changes" msgstr "" msgid "show ignored files" msgstr "" msgid "thg status [OPTIONS] [FILE]" msgstr "" msgid "discard uncommitted changes (no backup)" msgstr "" msgid "do not back up stripped revisions" msgstr "" msgid "do not modify working copy during strip" msgstr "" msgid "revision to strip" msgstr "" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "" msgid "open the bookmark sync window" msgstr "" msgid "thg sync [OPTION]... [PEER]" msgstr "" msgid "replace existing tag" msgstr "" msgid "make the tag local" msgstr "" msgid "revision to tag" msgstr "" msgid "remove a tag" msgstr "" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "" msgid "wait until the second ticks over" msgstr "" msgid "notify the shell for paths given" msgstr "" msgid "remove the status cache" msgstr "" msgid "show the contents of the status cache (no update)" msgstr "" msgid "update all repos in current dir" msgstr "" msgid "thg thgstatus [OPTION]" msgstr "" msgid "thg topics [-r REV] [NAME]" msgstr "" msgid "Please enable the Topic extension first." msgstr "" msgid "only one new topic name allowed" msgstr "" msgid "thg update [-C] [[-r] REV]" msgstr "" msgid "thg userconfig" msgstr "" msgid "changeset to view in diff tool" msgstr "" msgid "revisions to view in diff tool" msgstr "" msgid "bundle file to preview" msgstr "" msgid "launch visual diff tool" msgstr "" msgid "print license" msgstr "" msgid "thg version [OPTION]" msgstr "" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "" msgid "Location:" msgstr "" msgid "Update to:" msgstr "" msgid "Options:" msgstr "" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "" msgid "Perform a push before updating (-p/--push)" msgstr "" msgid "Allow pushing new branches (--new-branch)" msgstr "" msgid "Force push to remote location (-f/--force)" msgstr "" msgid "remove working directory" msgstr "" msgid "unknown revision!" msgstr "" #, python-format msgid "Remote Update - %s" msgstr "" msgid "&Update" msgstr "" msgid "Log" msgstr "" msgid "Repositories" msgstr "" #, python-format msgid "Running at %s" msgstr "" msgid "Stopped" msgstr "" msgid "TortoiseHg Web Server" msgstr "" msgid "Web Server" msgstr "" msgid "Port:" msgstr "" msgid "Status:" msgstr "" msgid "Start" msgstr "" msgid "Settings" msgstr "" msgid "" msgstr "" msgid "&True" msgstr "" msgid "&False" msgstr "" msgid "&Unspecified" msgstr "" #, python-format msgid "%dpt" msgstr "" msgid "Bold" msgstr "" msgid "Italic" msgstr "" msgid "Strike" msgstr "" msgid "Underline" msgstr "" msgid "&Set..." msgstr "" msgid "&Clear" msgstr "" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "" msgid "&Browse..." msgstr "" msgid "UI Language" msgstr "" msgid "Specify your preferred user interface language (restart needed)" msgstr "" msgid "Three-way Merge Tool" msgstr "" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" msgid "Visual Diff Tool" msgstr "" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" msgid "Visual Editor" msgstr "" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" msgid "CLI Editor" msgstr "" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" msgid "Shell" msgstr "" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
                                                Default, Windows: cmd.exe /" "K title %(reponame)s
                                                Default, OS X: not set
                                                Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" msgid "Immediate Operations" msgstr "" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" msgid "Tab Width" msgstr "" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" msgid "Force Repo Tab" msgstr "" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "" msgid "Monitor Repo Changes" msgstr "" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" msgid "Max Diff Size" msgstr "" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" msgid "Fork GUI" msgstr "" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" msgid "Full Path Title" msgstr "" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" msgid "Auto-resolve merges" msgstr "" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" msgid "New Repo Skeleton" msgstr "" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "" msgid "Single Workbench Window" msgstr "" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" msgid "Default widget" msgstr "" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" msgid "" "Open new tabs next\n" "to the current tab" msgstr "" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" msgid "Author Coloring" msgstr "" msgid "Color changesets by author name. Default: False" msgstr "" msgid "Full Authorname" msgstr "" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" msgid "Task Tabs" msgstr "" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" msgid "Task Toolbar Order" msgstr "" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
                                                Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
                                                Valid names are: log commit sync grep and " "pbranch.
                                                Default: log commit grep pbranch | sync" msgstr "" msgid "Long Summary" msgstr "" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" msgid "Log Batch Size" msgstr "" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "" msgid "Dead Branches" msgstr "" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" msgid "Branch Colors" msgstr "" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" msgid "Hide Tags" msgstr "" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" msgid "Activate Bookmarks" msgstr "" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

                                                • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
                                                • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
                                                • never: Never show any prompt to " "activate any bookmarks.

                                                Default: prompt" msgstr "" msgid "Show Family Line" msgstr "" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

                                                Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" msgid "Use optimized graph layouter" msgstr "" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

                                                Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" msgctxt "config item" msgid "Commit" msgstr "" msgid "Username" msgstr "" msgid "" "Name associated with commits. The common format is:
                                                Full Name <" "email@example.com>" msgstr "" msgid "Ask Username" msgstr "" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" msgid "Summary Line Length" msgstr "" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" msgid "Close After Commit" msgstr "" msgid "Close the commit tool after every successful commit. Default: False" msgstr "" msgid "Push After Commit" msgstr "" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" msgid "Auto Commit List" msgstr "" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" msgid "Auto Exclude List" msgstr "" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" msgid "English Messages" msgstr "" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" msgid "New Commit Phase" msgstr "" msgid "The phase of new commits. Default: draft" msgstr "" msgid "Secret MQ Patches" msgstr "" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "" msgid "Check Subrepo Phase" msgstr "" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" msgid "Monitor working
                                                directory changes" msgstr "" msgid "" "Select when the working directory status list will be refreshed:
                                                - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
                                                TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
                                                - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
                                                - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
                                                Default: auto" msgstr "" msgid "Confirm adding unknown files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Confirm deleting files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Sync" msgstr "" msgid "After Pull Operation" msgstr "" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" msgid "Default Push" msgstr "" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

                                                • all: The default. Push all changes in all " "branches.
                                                • branch: Push all changes in the current branch.
                                                • revision: Push the changes in the current branch up to the current revision.

                                                Default: all" msgstr "" msgid "Confirm Push" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" msgid "Target Combo" msgstr "" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

                                                • auto: The default. Show the combo if more than one target " "configured.
                                                • always: Always show the combo.

                                                Default: auto" msgstr "" msgid "SSH Command" msgstr "" msgid "" "Command to use for SSH connections.

                                                Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" msgid "Subrepository Features:" msgstr "" msgid "Allow Hg Subrepos" msgstr "" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" msgid "Allow Git Subrepos" msgstr "" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

                                                See the security note before enabling Git " "subrepos." msgstr "" msgid "Allow SVN Subrepos" msgstr "" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

                                                See the security note before enabling " "Subversion subrepos." msgstr "" msgid "Server" msgstr "" msgid "Repository Details:" msgstr "" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" msgid "Encoding" msgstr "" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" msgid "'Publishing' repository" msgstr "" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" msgid "Web Server:" msgstr "" msgid "Textual description of the repository's purpose or contents." msgstr "" msgid "Contact" msgstr "" msgid "Name or email address of the person in charge of the repository." msgstr "" msgid "Style" msgstr "" msgid "Which template map style to use" msgstr "" msgid "Archive Formats" msgstr "" msgid "Comma separated list of archive formats allowed for downloading" msgstr "" msgid "Port" msgstr "" msgid "Port to listen on" msgstr "" msgid "Push Requires SSL" msgstr "" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" msgid "Stripes" msgstr "" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" msgid "Max Files" msgstr "" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "" msgid "Max Changes" msgstr "" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "" msgid "Allow Push" msgstr "" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" msgid "Deny Push" msgstr "" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" msgid "Proxy" msgstr "" msgid "Host" msgstr "" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "" msgid "Bypass List" msgstr "" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "" msgid "Optional. User name to authenticate with at the proxy server" msgstr "" msgid "Password" msgstr "" msgid "Optional. Password to authenticate with at the proxy server" msgstr "" msgid "From" msgstr "" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "" msgid "To" msgstr "" msgid "Comma-separated list of recipient email addresses" msgstr "" msgid "Cc" msgstr "" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "" msgid "Bcc" msgstr "" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "" msgid "method" msgstr "" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" msgid "SMTP Host" msgstr "" msgid "Host name of mail server" msgstr "" msgid "SMTP Port" msgstr "" msgid "Port to connect to on mail server. Default: 25" msgstr "" msgid "SMTP TLS" msgstr "" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "" msgid "SMTP Username" msgstr "" msgid "Username to authenticate to mail server with" msgstr "" msgid "SMTP Password" msgstr "" msgid "Password to authenticate to mail server with" msgstr "" msgid "Local Hostname" msgstr "" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "" msgid "Diff and Annotate" msgstr "" msgid "Patch EOL" msgstr "" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" msgid "Git Format" msgstr "" msgid "Use git extended diff header format. Default: False" msgstr "" msgid "MQ Git Format" msgstr "" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" msgid "No Dates" msgstr "" msgid "Do not include modification dates in diff headers. Default: False" msgstr "" msgid "Show Function" msgstr "" msgid "Show which function each change is in. Default: False" msgstr "" msgid "Ignore White Space" msgstr "" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "" msgid "Ignore WS Amount" msgstr "" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "" msgid "Ignore Blank Lines" msgstr "" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "" msgid "Annotate:" msgstr "" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "" msgid "Fonts" msgstr "" msgid "Message Font" msgstr "" msgid "Font used to display commit messages. Default: monospace 10" msgstr "" msgid "Diff Font" msgstr "" msgid "Font used to display text differences. Default: monospace 10" msgstr "" msgid "ChangeLog Font" msgstr "" msgid "Font used to display changelog data. Default: monospace 10" msgstr "" msgid "Output Font" msgstr "" msgid "Font used to display output messages. Default: sans 8" msgstr "" msgid "Extensions" msgstr "" msgid "Tools" msgstr "" msgid "Hooks" msgstr "" msgid "Issue Tracking" msgstr "" msgid "Issue Regex" msgstr "" msgid "Defines the regex to match when picking up issue numbers." msgstr "" msgid "Issue Link" msgstr "" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" msgid "Inline Tags" msgstr "" msgid "Show tags at start of commit message." msgstr "" msgid "Mandatory Issue Reference" msgstr "" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" msgid "Issue Tracker Plugin" msgstr "" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" msgid "Configure Issue Tracker" msgstr "" msgid "Configure the selected COM Bug Tracker plugin." msgstr "" msgid "Issue Tracker Trigger" msgstr "" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

                                                • never: Do not update the Issue Tracker " "state automatically.
                                                • commit: Update the Issue Tracker state after " "a successful commit.

                                                Default: never" msgstr "" msgid "Changeset Link" msgstr "" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
                                                The template string " "uses a normal mercurial template syntax, such as:

                                                • {node|short} : replaced by " "the 12 digit revision id.
                                                • {rev} : replaced by the revision number." "
                                                • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
                                                For example, in order to " "link to bitbucket commit pages you can set this to:
                                                https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
                                                You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
                                                https://github.com/torvalds/" "linux/commit/{gitnode}
                                                https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
                                                " msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "" msgid "User name to authenticate with review board" msgstr "" msgid "Password to authenticate with review board" msgstr "" msgid "Server Repository ID" msgstr "" msgid "The default repository id for this repo on the review board server" msgstr "" msgid "Target Groups" msgstr "" msgid "A comma separated list of target groups" msgstr "" msgid "Target People" msgstr "" msgid "A comma separated list of target people" msgstr "" msgid "Kiln Bfiles" msgstr "" msgid "Patterns" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" msgid "Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" msgid "System Cache" msgstr "" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "" msgid "Simplelock" msgstr "" msgid "Lock Clone" msgstr "" msgid "" "Location of local clone of organizational lock repository.

                                                This repository " "must contain a \"locked\" text file" msgstr "" msgid "Largefiles" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" msgid "Minimum Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" msgid "User Cache" msgstr "" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" msgid "Projrc" msgstr "" msgid "Require confirmation" msgstr "" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

                                                • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
                                                • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
                                                • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
                                                " msgstr "" msgid "Servers" msgstr "" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" msgid "Include" msgstr "" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" msgid "Exclude" msgstr "" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" msgid "Update on incoming" msgstr "" msgid "" "Let the user update the projrc on incoming:
                                                • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
                                                • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
                                                • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                                                  Default: never" msgstr "" msgid "GnuPG" msgstr "" msgid "Specify the path to GPG. Default: gpg" msgstr "" msgid "Key ID" msgstr "" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "" msgid "TortoiseHg Settings" msgstr "" msgid "Iniparse package not found" msgstr "" msgid "Can't change settings without iniparse package - view is readonly." msgstr "" #, python-format msgid "%s's global settings" msgstr "" msgid "No repository found" msgstr "" msgid "no repo at " msgstr "" #, python-format msgid "%s project settings (.hg/projrc)" msgstr "" #, python-format msgid "%s repository settings" msgstr "" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "" msgid "Apply changes before exit?" msgstr "" msgid "&No (discard changes)" msgstr "" msgid "Reload" msgstr "" msgid "Settings File:" msgstr "" msgid "Confirm Save" msgstr "" msgid "Save changes before editing?" msgstr "" msgid "&Save" msgstr "" msgid "Confirm Reload" msgstr "" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" msgid "Unable to create a Mercurial.ini file" msgstr "" msgid "Insufficient access rights, reverting to read-only mode." msgstr "" msgid "Context Menu" msgstr "" msgid "Top menu items:" msgstr "" msgid "Sub menu items:" msgstr "" msgid "Menu Behavior" msgstr "" msgid "Hide context menu outside repositories" msgstr "" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" msgid "Icons" msgstr "" msgid "Overlays" msgstr "" msgid "Enabled overlays" msgstr "" msgid "Local disks only" msgstr "" msgid "Enabled Overlay Handlers" msgstr "" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "" msgid "Added" msgstr "" msgid "Locked*" msgstr "" msgid "Ignored*" msgstr "" msgid "Unversioned" msgstr "" msgid "Readonly*" msgstr "" msgid "Deleted*" msgstr "" msgid "*: not used by TortoiseHg" msgstr "" msgid "Taskbar" msgstr "" msgid "Show Icon" msgstr "" msgid "Highlight Icon" msgstr "" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" msgid "Explorer Extension Settings - TortoiseHg" msgstr "" msgid "Clear" msgstr "" msgid "Clear the current shelf file" msgstr "" msgid "Delete the current shelf file" msgstr "" msgid "Left Toolbar" msgstr "" msgid "Delete selected chunks" msgstr "" msgid "Move all files right" msgstr "" msgid "Move selected file right" msgstr "" msgid "Edit file" msgstr "" msgid "Move selected chunks right" msgstr "" msgid "Refresh Toolbar" msgstr "" msgid "Refresh" msgstr "" msgid "New Shelf" msgstr "" msgid "Right Toolbar" msgstr "" msgid "Move selected chunks left" msgstr "" msgid "Move selected file left" msgstr "" msgid "Move all files left" msgstr "" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "" msgid "Delete selected chunks from working copy?" msgstr "" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "" msgid "Are you sure?" msgstr "" msgid "TortoiseHg New Shelf Name" msgstr "" msgid "Specify name of new shelf" msgstr "" msgid "Bad filename" msgstr "" #, python-format msgid "A shelf name cannot contain %s" msgstr "" msgid "File already exists" msgstr "" msgid "A shelf file of that name already exists" msgstr "" msgid "New shelf created" msgstr "" #, python-format msgid "Delete shelf file %s?" msgstr "" msgid "Shelf deleted" msgstr "" msgid "Revert all working copy changes?" msgstr "" #, python-format msgid "Clear contents of shelf file %s?" msgstr "" msgid "Shelf cleared" msgstr "" #, python-format msgid "Shelf: %s" msgstr "" #, python-format msgid "Patch: %s" msgstr "" msgid "Key:" msgstr "" msgid "Local sign" msgstr "" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "" msgid "No commit" msgstr "" msgid "Use custom commit message:" msgstr "" msgid "&Sign" msgstr "" #, python-format msgid "Sign - %s" msgstr "" msgid "Signature has been added" msgstr "" msgid "Repository command still running" msgstr "" msgid "Filter:" msgstr "" msgid "Check all files" msgstr "" msgid "Uncheck all files" msgstr "" msgid "Status File List Toolbar" msgstr "" msgid "Remove filter, show root" msgstr "" #, python-format msgid "%s - status (selection filtered)" msgstr "" #, python-format msgid "%s - status" msgstr "" msgid "Check" msgstr "" msgid "Uncheck" msgstr "" msgid "status" msgstr "" msgid "Failed to refresh" msgstr "" msgid "No appropriate files" msgstr "" msgid "No files found for this operation" msgstr "" msgid "Stat" msgstr "" msgid "M" msgstr "" msgid "Filename" msgstr "" msgid "Size (KB)" msgstr "" #, python-format msgid "Checked count: %d" msgstr "" msgid ", resolved merge" msgstr "" msgid ", unresolved merge" msgstr "" #, python-format msgid "%s is modified" msgstr "" msgid "modified" msgstr "" #, python-format msgid "%s is added" msgstr "" msgid "added" msgstr "" #, python-format msgid "%s is removed" msgstr "" msgid "removed" msgstr "" #, python-format msgid "%s is not tracked (unknown)" msgstr "" msgid "unknown" msgstr "" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "" msgid "missing" msgstr "" #, python-format msgid "%s is ignored" msgstr "" msgid "ignored" msgstr "" #, python-format msgid "%s is not modified (clean)" msgstr "" msgid "clean" msgstr "" #, python-format msgid "%s is a dirty subrepo" msgstr "" msgid "subrepo" msgstr "" msgid "Check for incoming changes from selected URL" msgstr "" msgid "Pull incoming changes from selected URL" msgstr "" msgid "Detect outgoing changes to selected URL" msgstr "" msgid "Push outgoing changes to selected URL" msgstr "" msgid "Sync Bookmarks" msgstr "" msgid "Email outgoing changesets for remote repository" msgstr "" msgid "Manage pending perforce changelists" msgstr "" msgid "Unbundle" msgstr "" msgid "Selected Options:" msgstr "" msgid "Path Edit Toolbar" msgstr "" msgid "Security" msgstr "" msgid "Manage HTTPS connection security and user authentication" msgstr "" msgid "Save" msgstr "" msgid "Save current URL under an alias" msgstr "" msgid "Paths in Repository Settings:" msgstr "" msgid "Related Paths:" msgstr "" msgid "branch: " msgstr "" msgid "bookmark: " msgstr "" #, python-format msgid "rev: %d (%s)" msgstr "" msgid "Post Pull: " msgstr "" msgid "&Edit..." msgstr "" msgid "&Remove..." msgstr "" msgid "Repository not local" msgstr "" msgid "A terminal shell cannot be opened for remote" msgstr "" msgid "Confirm path delete" msgstr "" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "" msgid "Select repository" msgstr "" msgid "No host specified" msgstr "" msgid "Please set a valid URL to continue." msgstr "" msgid "No remote repository URL or path set" msgstr "" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

                                                  Please type and save a remote repository path on the " "Sync widget." msgstr "" msgid "Redundant authentication info" msgstr "" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" msgid "sync command already running" msgstr "" #, python-format msgid "Getting incoming changesets from %s..." msgstr "" #, python-format msgid "Found incoming changesets from %s" msgstr "" #, python-format msgid "No incoming changesets from %s" msgstr "" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "" #, python-format msgid "Pulling from %s..." msgstr "" #, python-format msgid "Pull from %s completed" msgstr "" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "" msgid "Merge caused file conflicts" msgstr "" msgid "File conflicts need to be resolved" msgstr "" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "" #, python-format msgid "%d outgoing changesets to %s" msgstr "" #, python-format msgid "No outgoing changesets to %s" msgstr "" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "" msgid "Perforce pending..." msgstr "" #, python-format msgid "%s (submitted)" msgstr "" #, python-format msgid "%s (pending)" msgstr "" msgid "Unable to parse p4pending output" msgstr "" #, python-format msgid "%d pending changelists found" msgstr "" msgid "No pending Perforce changelists" msgstr "" msgid "Aborted p4pending" msgstr "" msgid "Unable to determine pending changesets" msgstr "" msgid "Confirm Push to remote Repository" msgstr "" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" #, python-format msgid "Push to %s aborted" msgstr "" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" #, python-format msgid "Pushing to %s..." msgstr "" #, python-format msgid "Push to %s completed" msgstr "" #, python-format msgid "Push to %s aborted, ret %d" msgstr "" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" msgid "Determining outgoing changesets to email..." msgstr "" msgid "No outgoing changesets" msgstr "" #, python-format msgid "Outgoing aborted, ret %d" msgstr "" msgid "Select bundle file" msgstr "" msgid "Bundle files (*.hg)" msgstr "" msgid "Unable to remove URL" msgstr "" msgid "Post Pull Behavior" msgstr "" msgid "Select post-pull operation for this repository" msgstr "" msgid "None - simply pull changesets" msgstr "" msgid "Update - pull, then try to update" msgstr "" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "" msgid "Rebase - rebase local commits above pulled changes" msgstr "" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "" msgid "Launch settings tool..." msgstr "" msgid "Unable to save post pull operation" msgstr "" msgid "Save Path" msgstr "" msgid "Alias" msgstr "" msgid "URL" msgstr "" msgid "Remove authentication data from URL" msgstr "" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" msgid "Update subrepo paths" msgstr "" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" msgid "Unable to save an URL" msgstr "" msgid "Confirm URL replace" msgstr "" #, python-format msgid "%s already exists, replace URL?" msgstr "" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

                                                  %s

                                                  Replace it with the " "following URL?:

                                                  %s" msgstr "" msgid "Security: " msgstr "" #, python-format msgid "Host: %s" msgstr "" msgid "Secure HTTPS Connection" msgstr "" msgid "Verify with Certificate Authority certificates (best)" msgstr "" msgid "Verify with stored host fingerprint (good)" msgstr "" msgid "No host validation, but still encrypted (bad)" msgstr "" msgid "### host certificate fingerprint ###" msgstr "" msgid "Query" msgstr "" msgid "TLS 1.0" msgstr "" msgid "TLS 1.1" msgstr "" msgid "TLS 1.2" msgstr "" msgid "Minimum Protocol" msgstr "" msgid "User Authentication" msgstr "" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Key" msgstr "" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Chain" msgstr "" msgid "Certificate Query Error" msgstr "" msgid "Select User Certificate Key File" msgstr "" msgid "PEM files (*.pem *.key)" msgstr "" msgid "Select User Certificate Chain File" msgstr "" msgid "PEM files (*.pem *.crt *.cer)" msgstr "" msgid "Unable to save authentication" msgstr "" #, python-format msgid "%s - sync options" msgstr "" msgid "Allow push of a new branch (--new-branch)" msgstr "" msgid "Force push or pull (override safety checks, --force)" msgstr "" msgid "Temporarily disable configured HTTP proxy" msgstr "" msgid "Emit debugging output (--debug)" msgstr "" msgid "Work on patch queue (--mq)" msgstr "" #, python-format msgid "Tag - %s" msgstr "" msgid "Tag:" msgstr "" msgid "Tagged:" msgstr "" msgid "Local tag" msgstr "" msgid "Replace existing tag (-f/--force)" msgstr "" msgid "Use English commit message" msgstr "" msgid "local" msgstr "" msgid "Move" msgstr "" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "" #, python-format msgid "Added tag %s for changeset %s" msgstr "" #, python-format msgid "Tag '%s' has been moved" msgstr "" #, python-format msgid "Tag '%s' has been added" msgstr "" #, python-format msgid "Removed tag %s" msgstr "" #, python-format msgid "Tag '%s' has been removed" msgstr "" msgid "Patch files (*.diff *.patch)" msgstr "" #, python-format msgid "Import - %s" msgstr "" msgid "Browse Directory..." msgstr "" msgid "Import from Clipboard" msgstr "" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "" msgid "Preview:" msgstr "" msgid "Shelf" msgstr "" msgid "Checking working directory status..." msgstr "" msgid "&Import" msgstr "" msgid "Working directory is not clean! View changes..." msgstr "" msgid "Select patches" msgstr "" msgid "Select Directory containing patches" msgstr "" #, python-format msgid "%s patches" msgstr "" #, python-format msgid "%s will be imported to " msgstr "" msgid "Nothing to import" msgstr "" msgid "Strip:" msgstr "" msgid "Discard local changes, no backup (-f/--force)" msgstr "" msgid "No backup (-n/--nobackup)" msgstr "" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "" msgstr[1] "" msgid "Unknown revision!" msgstr "" msgid "Detected uncommitted local changes." msgstr "" msgid "Do you want to keep them or discard them?" msgstr "" msgid "&Keep (--keep)" msgstr "" msgid "&Discard (--force)" msgstr "" msgid "Confirm Strip" msgstr "" #, python-format msgid "Strip - %s" msgstr "" msgid "&Strip" msgstr "" msgid "Topic:" msgstr "" msgid "&Rename" msgstr "" #, python-format msgid "Topic - %s" msgstr "" #, python-format msgid "A topic named \"%s\" already exists" msgstr "" #, python-format msgid "Topic '%s' has been added" msgstr "" #, python-format msgid "Topic '%s' does not exist" msgstr "" #, python-format msgid "Topic '%s' has been removed" msgstr "" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "" msgid "Parent 1:" msgstr "" msgid "Parent 2:" msgstr "" msgid "Pull subrepos from:" msgstr "" msgid "List updated files (--verbose)" msgstr "" msgid "Discard local changes, no backup (-C/--clean)" msgstr "" msgid "Always merge (when possible)" msgstr "" msgid "(same as parent)" msgstr "" msgid "Activate bookmark?" msgstr "" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

                                                  Do " "you want to activate it?
                                                  You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

                                                  Select " "the bookmark that you want to activate and click OK.

                                                  Click " "Cancel if you don't want to activate any of them.

                                                  You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                  " msgstr "" msgid "Deactivate current bookmark?" msgstr "" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" msgid "Discard - discard local changes, no backup" msgstr "" msgid "&Shelve" msgstr "" msgid "Shelve - move local changes to a patch" msgstr "" msgid "Merge - allow to merge with local changes" msgstr "" msgid "Confirm Update" msgstr "" #, python-format msgid "Update - %s" msgstr "" msgid "[non-existant]" msgstr "" msgid "Tool launch failure" msgstr "" #, python-format msgid "%s : %s" msgstr "" msgid "No diff tool found" msgstr "" msgid "No visual diff tools were detected" msgstr "" msgid "[working copy]" msgstr "" msgid "[original]" msgstr "" msgid "Unable to find changeset" msgstr "" msgid "You likely need to refresh this application" msgstr "" msgid "No file changes" msgstr "" msgid "There are no file changes to view" msgstr "" msgid "working changes" msgstr "" #, python-format msgid "changeset %d:%s" msgstr "" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "" msgid "Visual Diffs - " msgstr "" msgid " filtered" msgstr "" msgid "Temporary files are removed when this dialog is closed" msgstr "" msgid "Select Tool:" msgstr "" msgid "Dir diff to p1" msgstr "" msgid "Dir diff to p2" msgstr "" msgid "3-way dir diff" msgstr "" msgid "Directory diff" msgstr "" msgid "Confirm Discard" msgstr "" msgid "Discard outstanding changes to working directory?" msgstr "" msgid "Config files (*.conf *.config *.ini)" msgstr "" msgid "Open hgweb config" msgstr "" msgid "Save hgweb config" msgstr "" msgid "Path:" msgstr "" msgid "Local Path:" msgstr "" msgid "Select Repository" msgstr "" msgid "Add Path to Serve" msgstr "" msgid "Edit Path to Serve" msgstr "" msgid "Local Path" msgstr "" msgid "Webconf" msgstr "" msgid "Config File:" msgstr "" msgid "Open" msgstr "" msgid "New &Workbench" msgstr "" msgid "&New Repository..." msgstr "" msgid "Clon&e Repository..." msgstr "" msgid "&Open Repository..." msgstr "" msgid "&File" msgstr "" msgid "&View" msgstr "" msgid "&Repository" msgstr "" msgid "&Help" msgstr "" msgid "&Dock Toolbar" msgstr "" msgid "&Task Toolbar" msgstr "" msgid "&Custom Toolbar" msgstr "" msgid "S&ync Toolbar" msgstr "" msgid "&Close Repository" msgstr "" msgid "Sh&ow Repository Registry" msgstr "" msgid "Show &Patch Queue" msgstr "" msgid "Show Conso&le" msgstr "" msgid "Place Console in Doc&k Area" msgstr "" msgid "R&epository Registry Options" msgstr "" msgid "Save Open Repositories on E&xit" msgstr "" msgid "Sa&ve Current Sync Paths on Exit" msgstr "" msgid "Show Tas&k Tab" msgstr "" msgid "&Commit" msgstr "" msgid "&Patch Branch" msgstr "" msgid "Revision &Details" msgstr "" msgid "&Search" msgstr "" msgid "S&ynchronize" msgstr "" msgid "Refresh current repository" msgstr "" msgid "Refresh &Task Tab" msgstr "" msgid "Refresh only the current task tab" msgstr "" msgid "Load &All Revisions" msgstr "" msgid "Load all revisions into graph" msgstr "" msgid "Go to current revision" msgstr "" msgid "&Goto Revision..." msgstr "" msgid "Go to a specific revision" msgstr "" msgid "Filter graph with revision sets or branches" msgstr "" msgid "&Workbench Toolbars" msgstr "" msgid "&Lock File..." msgstr "" msgid "Lock or unlock files" msgstr "" msgid "Update working directory or switch revisions" msgstr "" msgid "&Shelve..." msgstr "" msgid "&Import Patches..." msgstr "" msgid "U&nbundle..." msgstr "" msgid "&Merge..." msgstr "" msgid "Merge with the other head of the current branch" msgstr "" msgid "&Resolve..." msgstr "" msgid "R&ollback/Undo..." msgstr "" msgid "&Purge..." msgstr "" msgid "&Bisect..." msgstr "" msgid "&Verify" msgstr "" msgid "Re&cover" msgstr "" msgid "&Web Server" msgstr "" msgid "E&xplorer Help" msgstr "" msgid "&Readme" msgstr "" msgid "About &Qt" msgstr "" msgid "&About TortoiseHg" msgstr "" msgid "&Incoming" msgstr "" msgid "&Pull" msgstr "" msgid "&Outgoing" msgstr "" msgid "P&ush" msgstr "" msgid "&Sync Bookmarks..." msgstr "" #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" msgid "Check for incoming changes" msgstr "" msgid "Pull incoming changes" msgstr "" msgid "Detect outgoing changes" msgstr "" msgid "Push outgoing changes" msgstr "" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" #, python-format msgid "Execute custom tool '%s'" msgstr "" msgid "Custom Toolbar &Settings" msgstr "" msgid "TortoiseHg Workbench" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "" msgid "Goto revision" msgstr "" msgid "Enter revision identifier" msgstr "" msgid "Select repository directory to open" msgstr "" msgid "README not configured" msgstr "" msgid "" "A README file is not configured for the current repository.

                                                  To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" msgid "Issue Tracker Plugin Error" msgstr "" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "" msgid "This error will not be shown again until you restart the workbench" msgstr "" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "" msgid "Error executing \"commit finished\" trigger" msgstr "" msgid "Cannot open Plugin Options dialog" msgstr "" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "" msgid "[--insecure] [SOURCE]" msgstr "" #, python-format msgid "unsupported URL: %s" msgstr "" #, python-format msgid "%s certificate error: no certificate received" msgstr "" msgid "move after the specified patch" msgstr "" msgid "[--after PATCH] PATCH..." msgstr "" msgid "unknown patch to move specified" msgstr "" msgid "invalid patch position specified" msgstr "" msgid "cannot move applied patches" msgstr "" #, python-format msgid "patch %s not in series" msgstr "" msgid "cannot move into applied patches" msgstr "" msgid "abort: " msgstr "" msgid "hint: " msgstr "" #, python-format msgid "HTTP Error: %d (%s)" msgstr "" #, python-format msgid "URLError: %s" msgstr "" msgid "SSL: Server certificate verify failed" msgstr "" #, python-format msgid "SSL: unknown error %s:%s" msgstr "" #, python-format msgid "SSL error: %s" msgstr "" msgid "hgsubversion packaged with thg" msgstr "" msgid "hggit packaged with thg" msgstr "" msgid "inotify is not supported on this platform" msgstr "" msgid "eol is incompatible with win32text" msgstr "" msgid "win32text is incompatible with eol" msgstr "" msgid "hgsubversion is incompatible with perfarce" msgstr "" msgid "perfarce is incompatible with hgsubversion" msgstr "" msgid "Workbench custom toolbar" msgstr "" msgid "Revision details context menu" msgstr "" msgid "Pair selection context menu" msgstr "" msgid "Multiple selection context menu" msgstr "" msgid "Commit context menu" msgstr "" msgid "File context menu (on manifest and revision details)" msgstr "" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" msgid "in the future" msgstr "" msgid "now" msgstr "" #, python-format msgid "command parse error: %s" msgstr "" #, python-format msgid "no matches found: %s" msgstr "" msgid "Commit..." msgstr "" msgid "Commit changes in repository" msgstr "" msgid "Create Repository Here" msgstr "" msgid "Create a new repository" msgstr "" msgid "Clone..." msgstr "" msgid "Create clone here from source" msgstr "" msgid "File Status" msgstr "" msgid "Repository status & changes" msgstr "" msgid "Add Files..." msgstr "" msgid "Add files to version control" msgstr "" msgid "Revert Files..." msgstr "" msgid "Revert file changes" msgstr "" msgid "Forget Files..." msgstr "" msgid "Remove files from version control" msgstr "" msgid "Remove Files..." msgstr "" msgid "Rename File" msgstr "" msgid "Rename file or directory" msgstr "" msgid "View change history in repository" msgstr "" msgid "File History" msgstr "" msgid "View change history of selected files" msgstr "" msgid "Shelve Changes" msgstr "" msgid "Move changes between working dir and patch" msgstr "" msgid "Synchronize" msgstr "" msgid "Synchronize with remote repository" msgstr "" msgid "Start web server for this repository" msgstr "" msgid "Update..." msgstr "" msgid "Update working directory" msgstr "" msgid "Update Icons" msgstr "" msgid "Update icons for this repository" msgstr "" msgid "Global Settings" msgstr "" msgid "Configure user wide settings" msgstr "" msgid "Repository Settings" msgstr "" msgid "Configure repository settings" msgstr "" msgid "Explorer Extension Settings" msgstr "" msgid "Configure Explorer extension" msgstr "" msgid "About TortoiseHg" msgstr "" msgid "Show About Dialog" msgstr "" msgid "Diff to parent" msgstr "" msgid "View changes using GUI diff tool" msgstr "" msgid "Edit Ignore Filter" msgstr "" msgid "Edit repository ignore filter" msgstr "" msgid "Guess Renames" msgstr "" msgid "Detect renames and copies" msgstr "" msgid "Search History" msgstr "" msgid "Search file revisions for patterns" msgstr "" msgid "DnD Synchronize" msgstr "" msgid "Synchronize with dragged repository" msgstr "" #, python-format msgid "unrecognized response: %s" msgstr "" msgid "password: " msgstr "" #, python-format msgid "repository %s not found" msgstr "" msgid "win32ill: cannot create window for messages" msgstr "" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "" msgid "win32ill: interrupted while stopping message loop\n" msgstr "" #~ msgid "Archive revision:" #~ msgstr "גרסת הארכיון:" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/hr.po0000644000000000000000000044632414440352353016254 0ustar00rootroot# Croatian translation for tortoisehg # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the tortoisehg package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: Croatian \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2013-08-10 15:26+0000\n" "Last-Translator: Mario Šarić \n" "Language-Team: Croatian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2019-07-17 05:44+0000\n" "X-Generator: Launchpad (build 19009)\n" msgid "TortoiseHg Overlay Icon Server" msgstr "TortoiseHg poslužitelj prekrivnih ikona" msgid "Exit" msgstr "Izlazak" msgid "About" msgstr "O programu" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "" msgid "You can visit our site here" msgstr "Možete posjetiti naše stranice ovdje" msgid "&License" msgstr "Licence" #, python-format msgid "version %s" msgstr "inačica %s" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "pomoću Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "" msgid "License" msgstr "" msgid "= Working Directory Parent =" msgstr "= Mapa u kojoj se nalazi radni direktorij =" msgid "Directory of files" msgstr "Imenik/mapa datoteka" msgid "Tar archives" msgstr "Tar arhive" msgid "Uncompressed tar archive" msgstr "Tar - bez sažimanja" msgid "Bzip2 tar archives" msgstr "Bzip2 tar arhive" msgid "Tar archive compressed using bzip2" msgstr "Tar - sažimanje pomoću bzip2" msgid "Gzip tar archives" msgstr "Gzip tar arhive" msgid "Tar archive compressed using gzip" msgstr "Tar - sažimanje pomoću gzipa" msgid "Zip archives" msgstr "ZIP arhive" msgid "Uncompressed zip archive" msgstr "Zip bez sažimanja" msgid "Zip archive compressed using deflate" msgstr "Zip - sažimanje pomoću deflate" msgid "Revision:" msgstr "Revizija:" msgid "All files in this revision" msgstr "" msgid "Only files modified/created in this revision" msgstr "Samo izmijenjene/nove datoteke u ovoj reviziji" msgid "Only files modified/created since:" msgstr "" msgid "Archive Content:" msgstr "" msgid "Recurse into subrepositories" msgstr "Ponirući kroz subrepozitorije" msgid "Browse..." msgstr "Pregled..." msgid "Destination path:" msgstr "Odredišna staza:" msgid "Archive types:" msgstr "Vrste arhive:" msgid "Hg command:" msgstr "Hg naredba:" msgid "Select Destination Folder" msgstr "Odaberi odredišnu mapu" msgid "Select Destination File" msgstr "Odaberi odredišnu datoteku" msgid "All files (*)" msgstr "" msgid "Duplicate Name" msgstr "Dvostruko ime" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "Odredište \"%s\" već postoji kao datoteka!" msgid "Confirm Overwrite" msgstr "Potvrdite prepisivanje" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" "Mapa \"%s\" nije prazna!\n" "\n" "Želite li je prepisati?" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" "Datoteka \"%s\" već postoji!\n" "\n" "Želite li ju prepisati?" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "Odredište \"%s\" već postoji kao mapa!" #, python-format msgid "Archive - %s" msgstr "Arhiva - %s" msgid "&Archive" msgstr "&Arhiva" msgid "Backout requires a parent revision" msgstr "Poništenje zahtjeva prethodnu reviziju" msgid "Cannot backout change on a different branch" msgstr "Ne može se poništiti izmjena u drugoj grani" #, python-format msgid "Backout - %s" msgstr "Poništi - %s" msgid "Prepare to backout" msgstr "Pripremi poništenje (backout)" msgid "Verify backout revision and ensure your working directory is clean." msgstr "" "Provjerite reviziju poništenja i osigurajte da je radni direktorij čist." msgid "Backing out a parent revision is a single step operation" msgstr "Poništenje prethodne revizije je operacija jednog koraka" msgid "Backout revision" msgstr "Revizja poništenja" msgid "Not a head, backout will create a new head!" msgstr "Nije glava, poništenje će otvoriti novu glavu!" msgid "Current local revision" msgstr "Trenutna lokalna revizija" msgid "Working directory status" msgstr "Status radnog direktorija" msgid "Checking..." msgstr "Provjera u tijeku..." msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" "Prije poništavanja, morate pohraniti, odložiti izmjene kao zakrpe, ili odbaciti izmjene." msgid "Automatically resolve merge conflicts where possible" msgstr "Automatski razriješi sukobe stapanja kad je to moguće" msgid "Uncommitted local changes are detected" msgstr "Postoje nepohranjene lokalne izmjene" msgid "Clean" msgstr "Očisti" msgid "Backing out, then merging..." msgstr "Poništavanje i nakon toga stapanje..." msgid "All conflicting files will be marked unresolved." msgstr "Sve datoteke s konfliktom će biti označene neriješenima." msgid "Automatically advance to next page when backout and merge are complete." msgstr "" "Automatski prijeđi na sljedeću stranicu kad završe akcije poništenje i " "stapanje." #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" "%d datoteka imaju sukob stapanja kojeg je potrebno razriješiti" msgid "No merge conflicts, ready to commit" msgstr "Nema sukoba stapanja, spremno za pohranu" msgid "Commit backout and merge results" msgstr "Pohrani poništenje i rezultat stapanja" msgid "Parents" msgstr "Roditelji" msgid "Working Directory" msgstr "Radni direktorij" msgid "Working Directory (merged)" msgstr "Radni direktorij (stopljen)" msgid "Commit message" msgstr "Poruka pohrane" msgid "Skip final confirmation page, close after commit." msgstr "Preskoči dijalog potvrde, zatvori nakon pohrane" msgid "Backed out changeset: " msgstr "Poništena izmjena: " msgid "Confirm Discard Message" msgstr "Potvrdi Odbacivanje Poruke" msgid "Discard current backout message?" msgstr "Odbaci trenutnu poruku poništavanja?" msgid "Use English backout message" msgstr "Koristi englesku poruku za poništavanje" msgid "Backing out and committing..." msgstr "Poništavanje i pohrana..." msgid "Please wait while making backout." msgstr "Molim pričekajte dok se poništavanje ne završi." msgid "Committing..." msgstr "Pohrana..." msgid "Please wait while committing merged files." msgstr "Molim pričekajte da se pohrane stopljene datoteke." msgid "Finished" msgstr "Završeno" msgid "Backout changeset" msgstr "Revizija poništavanja" #, python-format msgid "Bisect - %s" msgstr "Presjek - %s" msgid "Accept" msgstr "Prihvati" msgid "Known good revision:" msgstr "Poznata ispravna revizija:" msgid "Known bad revision:" msgstr "Poznata neispravna revizija:" msgid "Discard local changes (revert --all)" msgstr "" msgid "Revision is &Good" msgstr "" msgid "Revision is &Bad" msgstr "" msgid "&Skip this Revision" msgstr "" msgid "Close" msgstr "Zatvori" msgid "Error encountered." msgstr "Greška prilikom izvršavanja" msgid "Culprit found." msgstr "Pronađena zapreka." msgid "Revision" msgstr "Revizija" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "Testiraj ovu reviziju i izvijesti (ispravna/neispravna/preskoči)" #, python-format msgid "%s (hint: %s)" msgstr "%s (savjet: %s)" msgid "Bookmark:" msgstr "Oznaka:" msgid "New Name:" msgstr "Novo ime:" msgid "Activate:" msgstr "Aktiviraj:" msgid "&Add" msgstr "&Dodaj" msgid "Re&name" msgstr "&Promijeni ime" msgid "&Remove" msgstr "&Ukloni" msgid "&Move" msgstr "&Premjesti" #, python-format msgid "Bookmark - %s" msgstr "Oznake - %s" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "Oznaka s imenom \"%s\" već postoji" #, python-format msgid "Bookmark '%s' has been added" msgstr "Oznaka '%s' je dodana" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "Oznaka \"%s\" ne postoji" #, python-format msgid "Bookmark '%s' has been moved" msgstr "Oznaka '%s' je pomaknuta" #, python-format msgid "Bookmark '%s' does not exist" msgstr "Oznaka '%s' ne postoji" #, python-format msgid "Bookmark '%s' has been removed" msgstr "Oznaka '%s' je uklonjena" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "Oznaka '%s' je promijenila ime u '%s'" msgid "TortoiseHg Bookmark Sync" msgstr "" msgid "Outgoing Bookmarks" msgstr "" msgid "&Push Bookmark" msgstr "" msgid "&Remove Bookmark" msgstr "" msgid "Incoming Bookmarks" msgstr "" msgid "P&ull Bookmark" msgstr "" msgid "R&emove Bookmark" msgstr "" #, python-format msgid "Pushed local bookmark: %s" msgstr "" #, python-format msgid "Pulled remote bookmark: %s" msgstr "" #, python-format msgid "Removed remote bookmark: %s" msgstr "" #, python-format msgid "Removed local bookmark: %s" msgstr "" #, python-format msgid "%s - branch operation" msgstr "%s - operacija nad granom" msgid "Select branch of merge commit" msgstr "Odaberite granu za pohranu stapanja" msgid "Changes take effect on next commit" msgstr "Promjene će biti primjenjene od slijedeće pohrane" msgid "No branch changes" msgstr "Nema promjene grane" msgid "Open a new named branch" msgstr "Otvori novu imenovanu granu" msgid "Close current branch" msgstr "Zatvori trenutnu granu" #, python-format msgid "Please report this bug to our bug tracker" msgstr "Molimo otvorite grešku u našoj evidenciji predmeta" msgid "Checking for updates..." msgstr "Provjera ažuriranja..." msgid "Copy" msgstr "" msgid "Quit" msgstr "" msgid "TortoiseHg Bug Report" msgstr "Izvješće o greškama TortoiseHg-a" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "" msgid "Your TortoiseHg is up to date." msgstr "" msgid "Save error report to" msgstr "Snimi izvješće o greškama u" msgid "Text files (*.txt)" msgstr "" msgid "Error writing file" msgstr "" msgid "TortoiseHg Error" msgstr "" msgid "" "If you still have trouble, please file a bug report." msgstr "" msgid "Visual Diff" msgstr "" msgid "View file changes in external diff tool" msgstr "" msgid "Edit Local" msgstr "" msgid "Edit current file in working copy" msgstr "" msgid "Revert to Revision" msgstr "" msgid "Revert file(s) to contents at this revision" msgstr "" msgid "Patch failed to apply" msgstr "" msgid "Manually resolve rejected chunks?" msgstr "" msgid "Edit patched file and rejects?" msgstr "" msgid "No deletable chunks" msgstr "" msgid "Completely remove file from patch?" msgstr "" msgid "Revert all file changes?" msgstr "" msgid "No chunks remain" msgstr "" msgid "file has been deleted, refresh" msgstr "" msgid "file has been modified, refresh" msgstr "" msgid "Unable to merge chunks" msgstr "" msgid "Add or remove patches must be merged in the working directory" msgstr "" msgid "Unable to remove" msgstr "" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" msgctxt "files" msgid "All" msgstr "" msgctxt "files" msgid "None" msgstr "" msgid "Toggle display of text search bar" msgstr "" msgid "Diff Toolbar" msgstr "" #, python-format msgid "Chunks selected: %d / %d" msgstr "" msgid "Please wait while the file is opened ..." msgstr "" msgid "Source:" msgstr "" msgid "Destination:" msgstr "" msgid "Options" msgstr "" msgid "Clone to revision:" msgstr "Kloniraj reviziju:" msgid "A revision identifier, bookmark, tag or branch name" msgstr "" msgid "Do not update the new working directory" msgstr "Ne osvježavaj novu radnu mapu" msgid "Use pull protocol to copy metadata" msgstr "Koristi protokol pull za kopiranje metapodataka" msgid "Clone with minimal processing" msgstr "" msgid "Include patch queue" msgstr "" msgid "Use proxy server" msgstr "Koristi proxy poslužitelj" msgid "Do not verify host certificate" msgstr "" msgid "Remote command:" msgstr "Udaljena naredba:" msgid "Use largefiles" msgstr "" msgid "Start revision:" msgstr "" msgid "Select source repository" msgstr "" msgid "Select destination repository" msgstr "" msgid "Select patch folder" msgstr "" #, python-format msgid "Clone - %s" msgstr "" msgid "&Clone" msgstr "" msgid "failed to start command\n" msgstr "" msgid "error while running command\n" msgstr "" #, python-format msgid "process exited unexpectedly with code %d" msgstr "" #, python-format msgid "failed to encode command: %s" msgstr "" #, python-format msgid "timed out while reading: %r..." msgstr "" msgid "timed out waiting for message" msgstr "" #, python-format msgid "unexpected response on required channel %r" msgstr "" #, python-format msgid "invalid \"hello\" message: %r" msgstr "" msgid "no \"runcommand\" capability" msgstr "" #, python-format msgid "corrupted command result: %r" msgstr "" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "" msgid "Terminated by user" msgstr "" #, python-format msgid "[command terminated by user %s]" msgstr "" #, python-format msgid "[command interrupted %s]" msgstr "" #, python-format msgid "[command returned code %d %%s]" msgstr "" #, python-format msgid "[command completed successfully %s]" msgstr "" msgid "Running..." msgstr "" msgid "Failed!" msgstr "" msgid "Clea&r Log" msgstr "" msgid "TortoiseHg Prompt" msgstr "" msgid "Show Detail" msgstr "" msgid "Hide Detail" msgstr "" msgid "Confirm Exit" msgstr "" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" msgid "&Run" msgstr "" msgid "TortoiseHg Command Dialog" msgstr "" msgid "Command Error" msgstr "" #, python-format msgid "[Code: %d]" msgstr "" msgid "Merge" msgstr "" #, python-format msgid "Merge with %s" msgstr "" msgid "Patch Name Required" msgstr "" msgid "You must enter a patch name" msgstr "" msgctxt "start progress" msgid "Commit" msgstr "" msgctxt "start progress" msgid "MQ Action" msgstr "" msgctxt "start progress" msgid "Rollback" msgstr "" msgid "Commit Dialog Toolbar" msgstr "" msgid "Branch: " msgstr "" msgid "Copy message" msgstr "" msgid "Copy one of the recent commit messages" msgstr "" msgid "Show Issues" msgstr "" msgid "Please wait..." msgstr "" #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "" msgid "Issue Tracker" msgstr "" msgid "Show Issues..." msgstr "" msgid "Stop" msgstr "" msgid "### patch name ###" msgstr "" msgid "Commit changes" msgstr "" msgid "Commit" msgstr "" msgid "Amend current revision" msgstr "" msgid "Amend" msgstr "" msgid "Create a new patch" msgstr "" msgid "QNew" msgstr "" msgid "Refresh current patch" msgstr "" msgid "QRefresh" msgstr "" msgid "Confirm Branch Change" msgstr "" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "" msgid "Restart &Branch" msgstr "" msgid "&Commit to current branch" msgstr "" msgid "Cancel" msgstr "Prekini" msgid "Confirm New Branch" msgstr "" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "" msgid "Create &Branch" msgstr "" msgid "Close Branch: " msgstr "" msgid "New Branch: " msgstr "" #, python-format msgid "Selected Options: %s" msgstr "" msgid "Parent:" msgstr "" msgid "Patch name:" msgstr "" #, python-format msgid "Close %s branch" msgstr "" #, python-format msgid "Rollback commit to revision %d" msgstr "" msgid "Confirm Undo" msgstr "" msgid "Discard current commit message?" msgstr "" msgid "Message Translation Failure" msgstr "" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" msgid "&Replace" msgstr "" msgid "Nothing Committed" msgstr "" msgid "Please enter commit message" msgstr "" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" msgid "No files checked" msgstr "" msgid "No modified files checkmarked for commit" msgstr "" msgid "Confirm Add" msgstr "" msgid "Add selected untracked files?" msgstr "" msgid "Confirm Remove" msgstr "" msgid "Remove selected deleted files?" msgstr "" msgid "Nothing changed." msgstr "" msgctxt "window title" msgid "Commit" msgstr "" #, python-format msgid "%s - commit options" msgstr "" msgid "Set username:" msgstr "" msgid "Save in Repo" msgstr "" msgid "Save Global" msgstr "" msgid "Set Date:" msgstr "" msgid "Update" msgstr "" msgid "Push After Commit:" msgstr "" msgid "Auto Includes:" msgstr "" msgid "Recurse into subrepositories (--subrepos)" msgstr "" msgid "Unable to save username" msgstr "" msgid "Iniparse must be installed." msgstr "" msgid "Unable to write configuration file" msgstr "" msgid "Unable to save after commit push" msgstr "" msgid "Unable to save auto include list" msgstr "" msgid "Unable to save recurse in subrepos." msgstr "" msgid "Invalid date format" msgstr "" msgid "No username configured" msgstr "" #, python-format msgid "%s - commit" msgstr "" msgid "TortoiseHg Commit" msgstr "" msgid "Are you sure that you want to cancel the commit operation?" msgstr "" msgid "Compress changesets up to and including" msgstr "" msgid "Onto destination" msgstr "" msgid "Compress" msgstr "" #, python-format msgid "Compress - %s" msgstr "" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the compress" msgstr "" msgid "Changes have been moved, you must now commit" msgstr "" msgctxt "action button" msgid "Commit" msgstr "" msgid "Compress is complete, old history untouched" msgstr "" msgid "must be specified repository" msgstr "" msgid "must be specified 'type' in style" msgstr "" msgid "Git Commit:" msgstr "" msgid "Summary:" msgstr "" msgid "User:" msgstr "" msgid "Date:" msgstr "" msgid "Age:" msgstr "" msgid "Branch:" msgstr "" msgid "Close:" msgstr "" msgid "Tags:" msgstr "" msgid "Graft:" msgstr "" msgid "Transplant:" msgstr "" msgid "Obsolete state:" msgstr "" msgid "Perforce:" msgstr "" msgid "Subversion:" msgstr "" msgid "Converted From:" msgstr "" msgid "Original Parent:" msgstr "" msgid "No items to display" msgstr "" msgid "Use compact view" msgstr "" msgid "Patch:" msgstr "" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "" msgid "Select a GUI location to edit:" msgstr "" msgid "Select the toolbar or menu to change" msgstr "" msgid "Tools shown on selected location" msgstr "" msgid "Delete from list" msgstr "" msgid "Add to list" msgstr "" msgid "Add separator" msgstr "" msgid "List of all tools" msgstr "" msgid "New Tool ..." msgstr "" msgid "Edit Tool ..." msgstr "" msgid "Delete Tool" msgstr "" msgid "Type" msgstr "" msgid "Name" msgstr "" msgid "Command" msgstr "" msgid "New hook" msgstr "" msgid "Edit hook" msgstr "" msgid "Delete hook" msgstr "" msgid "Replace existing hook?" msgstr "" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" msgid "OK" msgstr "" msgid "Missing information" msgstr "" msgid "All items" msgstr "" msgid "Working directory" msgstr "" msgid "All revisions" msgstr "" msgid "All contexts" msgstr "" msgid "Fixed revisions" msgstr "" msgid "Applied patches" msgstr "" msgid "Applied patches or qparent" msgstr "" msgid "" msgstr "" msgid "Configure Custom Tool" msgstr "" msgid "Tool name" msgstr "" msgid "The tool name. It cannot contain spaces." msgstr "" #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" msgid "Tool label" msgstr "" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" msgid "Tooltip" msgstr "" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" msgid "Icon" msgstr "" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" msgid "On repowidget, show for" msgstr "" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" msgid "Show Output Log" msgstr "" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" msgid "You must set a tool name." msgstr "" msgid "The tool name cannot have any spaces in it." msgstr "" msgid "You must set a command to run." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" msgid "Configure Hook" msgstr "" msgid "Hook type" msgstr "" msgid "Select when your command will be run" msgstr "" msgid "The hook name. It cannot contain spaces." msgstr "" msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" msgid "You must set a valid hook type." msgstr "" msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "" msgid "Console" msgstr "" msgid "File &History / Annotate" msgstr "" msgid "Show the history of the selected file" msgstr "" msgid "Co&mpare File Revisions" msgstr "" msgid "Compare revisions of the selected file" msgstr "" msgid "Filter Histor&y" msgstr "" msgid "Query about changesets affecting the selected files" msgstr "" msgid "Diff &Changeset to Parent" msgstr "" msgid "Diff Changeset to Loc&al" msgstr "" msgid "&Diff to Parent" msgstr "" msgid "Diff to &Local" msgstr "" msgid "View changes to current in external diff tool" msgstr "" msgid "&View at Revision" msgstr "" msgid "View file as it appeared at this revision" msgstr "" msgid "&Save at Revision..." msgstr "" msgid "Save file as it appeared at this revision" msgstr "" msgid "Save file to" msgstr "Snimi datoteku u" msgid "&Edit Local" msgstr "" msgid "&Open Local" msgstr "" msgid "E&xplore Local" msgstr "" msgid "Open parent folder of current file in the system file manager" msgstr "" msgid "&Copy Patch" msgstr "" msgid "Copy &Path" msgstr "" msgid "Copy full path of file(s) to the clipboard" msgstr "" msgid "&Revert to Revision..." msgstr "" msgid "Open S&ubrepository" msgstr "" msgid "Open the selected subrepository" msgstr "" msgid "E&xplore Folder" msgstr "" msgid "Open the selected folder in the system file manager" msgstr "" msgid "Open &Terminal" msgstr "" msgid "Open a shell terminal in the selected folder" msgstr "" msgid "Custom Tools" msgstr "" msgid "Diff &Local" msgstr "" msgid "&View Missing" msgstr "" msgid "View O&ther" msgstr "" msgid "Add &Largefiles..." msgstr "" msgid "&Forget" msgstr "" msgid "&Delete Unversioned..." msgstr "" msgid "Confirm Delete Unversioned" msgstr "" msgid "Delete the following unversioned files?" msgstr "" msgid "&Delete" msgstr "" msgid "Re&move Versioned" msgstr "" msgid "&Revert..." msgstr "" msgid "Uncommited merge - please select a parent revision" msgstr "" msgid "Revert files to local or other parent?" msgstr "" msgid "&Local" msgstr "" msgid "&Other" msgstr "" msgid "Confirm Revert" msgstr "" msgid "Revert local file changes?" msgstr "" msgid "&Revert with backup" msgstr "" msgid "&Discard changes" msgstr "" msgid "Revert the following files?" msgstr "" msgid "&Revert" msgstr "" msgid "&Copy..." msgstr "" msgid "Re&name..." msgstr "" msgid "&Ignore..." msgstr "" msgid "Edit Re&jects" msgstr "" msgid "Manually resolve rejected patch chunks" msgstr "" msgid "De&tect Renames..." msgstr "" msgid "&Mark Resolved" msgstr "" msgid "&Mark Unresolved" msgstr "" msgid "Restart Mer&ge" msgstr "" msgid "Was renamed from" msgstr "" msgid "Restart Merge &with" msgstr "" msgid "Display the file anyway" msgstr "" msgid "Diff not displayed: " msgstr "" #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid "File is binary" msgstr "" msgid "File may be binary (maximum line length exceeded)" msgstr "" msgid "File or diffs not displayed: " msgstr "" msgid " (was added)" msgstr "" #, python-format msgid " (copied from %s)" msgstr "" #, python-format msgid " (renamed from %s)" msgstr "" msgid " (is a symlink)" msgstr "" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid " (was deleted)" msgstr "" msgid " (was added, now missing)" msgstr "" msgid " (is unversioned)" msgstr "" msgid "exec mode has been set" msgstr "" msgid "exec mode has been unset" msgstr "" #, python-format msgid "changeset: %s" msgstr "" msgid "Initial revision" msgstr "" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" msgid "Subrepo created and set to initial revision." msgstr "" msgid "Subrepo initialized to revision:" msgstr "" msgid "Subrepo removed from repository." msgstr "" msgid "Previously the subrepository was at the following revision:" msgstr "" msgid "Subrepo was not changed." msgstr "" msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "" msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "" msgid "Subrepo state is:" msgstr "" msgid "Revision has changed to:" msgstr "" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "" msgid "From:" msgstr "" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" msgid "Subrepository not found in the working directory." msgstr "" msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" msgid "Not a Mercurial subrepo, not previewable" msgstr "" #, python-format msgid "Error previewing subrepo: %s" msgstr "" msgid "Subrepo may be damaged or inaccessible." msgstr "" msgid "The subrepository is dirty." msgstr "" msgid "File Status:" msgstr "" msgid "(is a changed sub-repository)" msgstr "" msgid "(is an unchanged sub-repository)" msgstr "" msgid "(is a dirty sub-repository)" msgstr "" msgid "(is a new sub-repository)" msgstr "" msgid "(is a removed sub-repository)" msgstr "" msgid "(is a changed and dirty sub-repository)" msgstr "" msgid "(is a new and dirty sub-repository)" msgstr "" msgid "open..." msgstr "" #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "" msgid "File History Log Columns" msgstr "" msgid "Back" msgstr "" msgid "Forward" msgstr "" msgid "Diff Selected &Changesets" msgstr "" msgid "&Diff Selected File Revisions" msgstr "" msgid "Show Revision &Details" msgstr "" msgid "Too many rows selected for menu" msgstr "" msgid "File Differences Log Columns" msgstr "" msgid "Next diff" msgstr "" msgid "Previous diff" msgstr "" msgid "Unicode" msgstr "" msgid "Western Europe" msgstr "" msgid "Unified Chinese" msgstr "" msgid "Traditional Chinese" msgstr "" msgid "Korean" msgstr "" msgid "Japanese" msgstr "" msgid "Thai" msgstr "" msgid "Central and Eastern Europe" msgstr "" msgid "Cyrillic" msgstr "" msgid "Russian" msgstr "" msgid "Ukrainian" msgstr "" msgid "Greek" msgstr "" msgid "Turkish" msgstr "" msgid "Arabic" msgstr "" msgid "Hebrew" msgstr "" msgid "Vietnamese" msgstr "" msgid "Baltic" msgstr "" msgid "Southern Europe" msgstr "" msgid "Nordic" msgstr "" msgid "Celtic" msgstr "" msgid "South-Eastern Europe" msgstr "" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "" msgid "View change as unified diff output" msgstr "" msgid "View change in context of file" msgstr "" msgid "Annotate with revision numbers" msgstr "" msgid "Next Diff" msgstr "" msgid "Previous Diff" msgstr "" msgid "Open shelve tool" msgstr "" msgid "&Auto Detect" msgstr "" msgid "Show changes from first parent" msgstr "" msgid "Show changes from second parent" msgstr "" msgid "E&ncoding" msgstr "" msgid "&Search in Current File" msgstr "" msgid "Search in All &History" msgstr "" msgid "Go to Line" msgstr "" #, python-format msgid "Enter line number (1 - %d)" msgstr "" msgid "Show &Author" msgstr "" msgid "Show &Date" msgstr "" msgid "Show &Revision" msgstr "" msgid "Annotate Op&tions" msgstr "" msgid "Search Selected Text" msgstr "" msgid "In Current &File" msgstr "" msgid "In &Current Revision" msgstr "" msgid "In &Original Revision" msgstr "" msgid "In All &History" msgstr "" msgid "Go to" msgstr "" msgid "View File at" msgstr "" msgid "Diff File to" msgstr "" msgid "&Originating Revision" msgstr "" msgid "&Parent Revision" msgstr "" #, python-format msgid "&Parent Revision (%d)" msgstr "" msgid "&Mark Excluded Changes" msgstr "" msgid "(excluded from the next commit)" msgstr "" msgid "Interrupted graft operation found" msgstr "" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" msgid "Continue or abort interrupted graft operation?" msgstr "" msgid "To graft destination" msgstr "" msgid "Use my user name instead of graft committer user name" msgstr "" msgid "Use current date" msgstr "" msgid "Append graft info to log message" msgstr "" msgid "Graft" msgstr "" msgid "Abort" msgstr "Prekini" #, python-format msgid "Graft - %s" msgstr "" msgid "Graft changeset" msgstr "" #, python-format msgid "Graft changeset #%d of %d" msgstr "" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" msgid "You may continue or start the graft" msgstr "" msgid "Graft is complete" msgstr "" msgid "Graft failed" msgstr "" msgid "Graft aborted" msgstr "" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" msgid "You may continue the graft" msgstr "" msgid "Exiting with an unfinished graft is not recommended." msgstr "" msgid "Consider aborting the graft first." msgstr "" msgid "&Exit" msgstr "" msgid "### regular expression search pattern ###" msgstr "" msgid "Regexp:" msgstr "" msgid "Ignore case" msgstr "" msgid "Search" msgstr "" msgid "Working Copy" msgstr "" msgid "All History" msgstr "" msgid "Report only the first match per file" msgstr "" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "" msgid "Includes:" msgstr "" msgid "Excludes:" msgstr "" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" #, python-format msgid "\"%s\" removed from search history" msgstr "" #, python-format msgid "\"%s\" removed from path history" msgstr "" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "" #, python-format msgid "grep: %s\n" msgstr "" #, python-format msgid "%d matches found" msgstr "" msgid "No matches found" msgstr "" msgid "Searching" msgstr "" msgid "history" msgstr "" msgid "Interrupted" msgstr "" msgid "files" msgstr "" #, python-format msgid "Skipping %s, unable to read" msgstr "" msgid "Vi&ew File" msgstr "" msgid "&View Changeset" msgstr "" msgid "Annotate &File" msgstr "" msgid "File" msgstr "" msgid "Line" msgstr "" msgid "Rev" msgstr "" msgid "User" msgstr "" msgid "Match Text" msgstr "" msgid "TortoiseHg Search" msgstr "" #, python-format msgid "Detect Copies/Renames in %s" msgstr "" msgid "Unrevisioned Files" msgstr "" msgid "Refresh file list" msgstr "" #, python-format msgid "Min Similarity: %d%%" msgstr "" msgid "Only consider deleted files" msgstr "" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "" msgid "Find Renames" msgstr "" msgid "Find copy and/or rename sources" msgstr "" msgid "Candidate Matches" msgstr "" msgid "Accept All Matches" msgstr "" msgid "Accept Selected Matches" msgstr "" msgid "Differences from Source to Dest" msgstr "" msgid "Search already in progress" msgstr "" msgid "Cannot start a new search" msgstr "" msgid "No files to find" msgstr "" msgid "There are no files that may have been renamed" msgstr "" msgid "Multiple sources chosen" msgstr "" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" #. i18n: percent format #, python-format msgid "%d%%" msgstr "" msgid "Source" msgstr "" msgid "Dest" msgstr "" msgid "% Match" msgstr "" msgid "Sending Email" msgstr "" msgid "Email" msgstr "" msgid "To:" msgstr "" msgid "Cc:" msgstr "" msgid "In-Reply-To:" msgstr "" msgid "Message identifier to reply to, for threading" msgstr "" msgid "Flag:" msgstr "" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" msgid "Send changesets as Hg patches" msgstr "" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" msgid "Use extended (git) patch format" msgstr "" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" msgid "Plain, do not prepend Hg header" msgstr "" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" msgid "Send single binary bundle, not patches" msgstr "" msgid "send patches as part of the email body" msgstr "" msgid "body" msgstr "" msgid "send patches as attachments" msgstr "" msgid "attach" msgstr "" msgid "send patches as inline attachments" msgstr "" msgid "inline" msgstr "" msgid "add diffstat output to messages" msgstr "" msgid "diffstat" msgstr "" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" msgid "Write patch series (bundle) description" msgstr "" msgid "Subject:" msgstr "" msgid "Changesets" msgstr "" msgid "Select &All" msgstr "" msgid "Select &None" msgstr "" msgid "Edit" msgstr "" msgid "Preview" msgstr "" msgid "&Settings" msgstr "" msgid "Send &Email" msgstr "" msgid "&Close" msgstr "&Zatvori" #, python-format msgid "Ignore filter - %s" msgstr "" msgid "Glob" msgstr "" msgid "Regexp" msgstr "" msgid "Add" msgstr "Dodaj" msgid "Edit File" msgstr "" msgid "Ignore Filter" msgstr "" msgid "Untracked Files" msgstr "" msgid "Backspace or Del to remove row(s)" msgstr "" msgid "Add ignore filter..." msgstr "" msgid "selected files" msgstr "" msgid "Ignore " msgstr "" msgid "Invalid glob expression" msgstr "" msgid "Invalid regexp expression" msgstr "" msgid "Unable to read repository status" msgstr "" msgid "New file created" msgstr "" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" msgid "Unable to write .hgignore file" msgstr "" msgid "Copy working directory files from skeleton" msgstr "" msgid "Create special files (.hgignore, ...)" msgstr "" msgid "Make repo compatible with Mercurial <1.7" msgstr "" msgid "New Repository" msgstr "" msgid "&Create" msgstr "" msgid "Unable to create a config file" msgstr "" msgid "Insufficient access rights." msgstr "" msgid "Show Log" msgstr "" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" msgid "Add as &Largefiles" msgstr "" msgid "Add as &Normal Files" msgstr "" msgid "Invalid Patterns" msgstr "" msgid "Failed to process largefiles.patterns." msgstr "" msgid "Word docs (*.doc *.docx)" msgstr "" msgid "PDF docs (*.pdf)" msgstr "" msgid "Excel files (*.xls *.xlsx)" msgstr "" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "" msgid "Refresh lock information" msgstr "" msgid "Lock a file not described in .hglocks" msgstr "" msgid "Stop current operation" msgstr "" msgid "Locked And Lockable Files:" msgstr "" msgid "Path" msgstr "" msgid "Locking User" msgstr "" msgid "Purpose" msgstr "" msgid "Simplelock extension not enabled" msgstr "" msgid "Please enable and configure simplelock" msgstr "" msgid "Open a (nonmergable) file you wish to be locked" msgstr "" msgid "File was not within current repository" msgstr "" #, python-format msgid "Locking %s" msgstr "" #, python-format msgid "Unlocking %s" msgstr "" msgid "Refreshing locks..." msgstr "" #, python-format msgid "Lock of %s successful" msgstr "" #, python-format msgid "Lock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s successful" msgstr "" msgid "Ready, double click to lock or unlock" msgstr "" msgid "Ready" msgstr "" msgid "You can only release your own locks" msgstr "" msgid "Find revisions matching fields of:" msgstr "" msgid "Revision to Match:" msgstr "" msgid "Fields to match:" msgstr "" msgid "Summary (first description line)" msgstr "" msgid "Description" msgstr "" msgid "Author" msgstr "" msgid "Date" msgstr "" msgid "Files" msgstr "Datoteke" msgid "Diff contents" msgstr "" msgid "Subrepo states" msgstr "" msgid "Branch" msgstr "" msgid "Phase" msgstr "" msgid "&Match" msgstr "" #, python-format msgid "Find matches - %s" msgstr "" msgid "Revisions to Match:" msgstr "" #, python-format msgid "Match any of %d revisions" msgstr "" msgid "Unknown revision!" msgstr "" msgid "Parse Error!" msgstr "" #, python-format msgid "Merge - %s" msgstr "" msgid "Do you want to exit?" msgstr "" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" msgid "Prepare to merge" msgstr "" msgid "Verify merge targets and ensure your working directory is clean." msgstr "" msgid "Not a head revision!" msgstr "Nije vršna revizija!" msgid "Merge from (other revision)" msgstr "" msgid "Merge to (working directory)" msgstr "" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Or use:" msgstr "" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "" msgid "Discard all changes from the other revision" msgstr "" msgid "&Discard" msgstr "&Odbaci" msgid "Confirm Discard Changes" msgstr "" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" msgctxt "working dir state" msgid "Clean" msgstr "" msgid "Merging..." msgstr "" msgid "Automatically advance to next page when merge is complete." msgstr "" #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" msgid "" "No merge conflicts, ready to commit or review" msgstr "" msgid "Commit merge results" msgstr "" msgid "Commit Options" msgstr "" msgid "Commit Now" msgstr "" msgid "Commit Later" msgstr "" msgid "Merge changeset" msgstr "" msgid "Syntax Highlighting" msgstr "" msgid "Paste &Filenames" msgstr "" msgid "App&ly Format" msgstr "" msgid "C&onfigure Format" msgstr "" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "" msgid "&Commit to Queue..." msgstr "" msgid "Create &New Queue..." msgstr "" msgid "&Rename Active Queue..." msgstr "" msgid "&Delete Queue..." msgstr "" msgid "&Purge Queue..." msgstr "" msgid "Create Patch Queue" msgstr "" msgid "New patch queue name" msgstr "" msgid "Create" msgstr "" msgid "Rename Patch Queue" msgstr "" #, python-format msgid "Rename patch queue '%s' to" msgstr "" msgid "Rename" msgstr "Promijeni ime" msgid "Delete Patch Queue" msgstr "" msgid "Delete reference to" msgstr "" msgid "Delete" msgstr "" msgid "Purge Patch Queue" msgstr "" msgid "Remove patch directory of" msgstr "" msgid "Purge" msgstr "" msgid "Rename Patch" msgstr "" #, python-format msgid "Rename patch %s to:" msgstr "" msgid "no guards" msgstr "" msgid "Patch Queue" msgstr "" msgctxt "MQ QPush" msgid "Push" msgstr "" msgid "Apply one patch" msgstr "" msgctxt "MQ QPush" msgid "Push all" msgstr "" msgid "Apply all patches" msgstr "" msgid "Pop" msgstr "" msgid "Unapply one patch" msgstr "" msgid "Pop all" msgstr "" msgid "Unapply all patches" msgstr "" msgid "Go &to Patch" msgstr "" msgid "&Apply Only This Patch" msgstr "" msgid "Apply only the selected patch" msgstr "" msgid "&Finish Patch" msgstr "" msgid "Move applied patches into repository history" msgstr "" msgid "&Delete Patches..." msgstr "" msgid "Delete selected patches" msgstr "" msgid "Re&name Patch..." msgstr "" msgid "Set &Guards..." msgstr "" msgid "Configure guards for selected patch" msgstr "" msgid "Patch Queue Actions Toolbar" msgstr "" msgid "Configure guards" msgstr "" #, python-format msgid "Input new guards for %s:" msgstr "" msgid "Confirm patch queue switch" msgstr "" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "" #, python-format msgid "Guards: %d/%d" msgstr "" msgid "MQ options" msgstr "" msgid "Force push or pop (--force)" msgstr "" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "" msgid "Submitting p4 changelist..." msgstr "" msgid "Reverting p4 changelist..." msgstr "" msgid "Patch Branch Toolbar" msgstr "" msgid "Merge all pending dependencies" msgstr "" msgid "Backout current patch branch" msgstr "" msgid "Backport part of a changeset to a dependency" msgstr "" msgid "Start a new patch branch" msgstr "" msgid "Edit patch dependency graph" msgstr "" msgid "will be closed" msgstr "" #, python-format msgid "needs merge of %i heads\n" msgstr "" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "" #, python-format msgid "needs merge with %s\n" msgstr "" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "" msgid "&Goto (update workdir)" msgstr "" msgid "&Merge" msgstr "" msgid "No patch branch selected" msgstr "" msgid "No editor found" msgstr "" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" msgid "Graph" msgstr "" msgid "Status" msgstr "" msgid "Title" msgstr "" msgid "Message" msgstr "" msgid "New Patch Branch" msgstr "" msgid "Patch message:" msgstr "" msgid "Patch date:" msgstr "" msgid "Patch user:" msgstr "" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" msgid "Review Board" msgstr "" msgid "Password:" msgstr "" msgid "Error" msgstr "" #, python-format msgid "Review draft posted to %s\n" msgstr "" #, python-format msgid "Review published to %s\n" msgstr "" msgid "Success" msgstr "" msgid "Repository ID:" msgstr "" msgid "Post Review" msgstr "" msgid "Review ID:" msgstr "" msgid "Update the fields of this existing request" msgstr "" msgid "Update Review" msgstr "" msgid "Create diff with all outgoing changes" msgstr "" msgid "Create diff with all changes on this branch" msgstr "" msgid "Publish request immediately" msgstr "" msgid "%p%" msgstr "" msgid "Connecting to Review Board..." msgstr "" msgid "Target:" msgstr "" msgid "Do not modify working copy (-k/--keep)" msgstr "" #, python-format msgid "Prune - %s" msgstr "" msgid "&Prune" msgstr "" msgid "No unknown files found" msgstr "" msgid "No ignored files found" msgstr "" msgid "No trash files found" msgstr "" msgid "Delete empty folders" msgstr "" msgid "Preserve files beginning with .hg" msgstr "" #, python-format msgid "%s - purge" msgstr "" msgid "Checking" msgstr "" msgid "Ready to purge." msgstr "" #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "" msgstr[1] "" msgid "Confirm file deletions" msgstr "" msgid "Are you sure you want to delete these files and/or folders?" msgstr "" msgid "Deletion failures" msgstr "" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "" msgstr[1] "" msgid "Deleting trash folder..." msgstr "" #, python-format msgid "Deleted %d files" msgstr "" #, python-format msgid "Deleted %d files and %d folders" msgstr "" msgid "Delete Patches" msgstr "" msgid "Remove patches from queue?" msgstr "" msgid "Keep patch files" msgstr "" #, python-format msgid "Patch fold - %s" msgstr "" msgid "New patch message:" msgstr "" msgid "Patches to fold" msgstr "" msgid "&Undo" msgstr "" msgid "&Redo" msgstr "" msgid "Cu&t" msgstr "" msgid "&Copy" msgstr "" msgid "&Paste" msgstr "" msgid "&Editor Options" msgstr "" msgid "&Wrap" msgstr "" msgctxt "wrap mode" msgid "&None" msgstr "" msgid "&Word" msgstr "" msgid "&Character" msgstr "" msgid "White&space" msgstr "" msgid "&Visible" msgstr "" msgid "&Invisible" msgstr "" msgid "&AfterIndent" msgstr "" msgid "&TAB Inserts" msgstr "" msgid "&Auto" msgstr "" msgid "&TAB" msgstr "" msgid "&Spaces" msgstr "" msgid "EOL &Visibility" msgstr "" msgid "EOL &Mode" msgstr "" msgid "&Windows" msgstr "" msgid "&Unix" msgstr "" msgid "&Mac" msgstr "" msgid "&Auto-Complete" msgstr "" msgid "### regular expression ###" msgstr "" msgid "Regular expression search pattern" msgstr "" msgid "Wrap search" msgstr "" msgid "Prev" msgstr "" msgid "Next" msgstr "" msgid "Unable to read file" msgstr "" msgid "Could not open the specified file for reading." msgstr "" msgid "This appears to be a binary file." msgstr "" msgid "An error occurred while reading the file." msgstr "" msgid "Text Translation Failure" msgstr "" msgid "Could not translate the file content from native encoding." msgstr "" msgid "Several characters would be lost." msgstr "" msgid "Unable to write file" msgstr "" msgid "Could not translate the file content to native encoding." msgstr "" msgid "Could not open the specified file for writing." msgstr "" msgid "An error occurred while writing the file." msgstr "" msgid "Try refreshing your repository." msgstr "" #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
                                                  Please edit your config" msgstr "" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
                                                  Please fix your config" msgstr "" #, python-format msgid "Operation aborted:

                                                  %(arg0)s." msgstr "" msgid "Repository is locked" msgstr "" msgid "hint:" msgstr "" msgid "Repository Error" msgstr "" msgid "No visual editor configured" msgstr "" msgid "Please configure a visual editor." msgstr "" msgid "Editor launch failure" msgstr "" msgid "Failed to open path in terminal" msgstr "" #, python-format msgid "\"%s\" is not a valid directory" msgstr "" #, python-format msgid "Invalid configuration: %s" msgstr "" msgid "Unable to start the following command:" msgstr "" msgid "No shell configured" msgstr "" msgid "A terminal shell must be configured" msgstr "" msgid "Please enter a username" msgstr "" msgid "You must identify yourself to Mercurial" msgstr "" msgid "Unable to translate input to local encoding." msgstr "" msgid "Checkmark files to add" msgstr "" msgid "Checkmark files to forget" msgstr "" msgid "Forget" msgstr "" msgid "Checkmark files to revert" msgstr "" msgid "Revert" msgstr "" msgid "Checkmark files to remove" msgstr "" msgid "Remove" msgstr "Ukloni" #, python-format msgid "%s - hg %s" msgstr "" msgid "Do not save backup files (*.orig)" msgstr "" msgid "Force removal of modified files (--force)" msgstr "" msgid "Add &Largefiles" msgstr "" msgid "No files selected" msgstr "" msgid "No operation to perform" msgstr "" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" msgid "Remove &Unmodified Files" msgstr "" msgid "Remove &All Selected Files" msgstr "" msgid "Rebase changeset and descendants" msgstr "" msgid "To rebase destination" msgstr "" msgid "Swap source and destination" msgstr "" msgid "Keep original changesets (--keep)" msgstr "" msgid "Keep original branch names (--keepbranches)" msgstr "" msgid "Collapse the rebased changesets (--collapse)" msgstr "" msgid "Rebase entire source branch (-b/--base)" msgstr "" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "" msgid "Rebase" msgstr "" #, python-format msgid "Rebase - %s" msgstr "" msgid "" "Before rebase, you must
                                                  commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the rebase" msgstr "" msgid "Rebase is complete" msgstr "" msgid "Rebase failed" msgstr "" msgid "Rebase aborted" msgstr "" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" msgid "Exiting with an unfinished rebase is not recommended." msgstr "" msgid "Consider aborting the rebase first." msgstr "" #, python-format msgid "Merge rejected patch chunks into %s" msgstr "" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "" msgid "Mark this chunk as unresolved" msgstr "" msgid "Reload File" msgstr "" msgid "Are you sure you want to reload this file?" msgstr "" msgid "All unsaved changes will be lost." msgstr "" msgid "Warning" msgstr "" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" msgid "Copy source -> destination" msgstr "" msgid "Copy Error" msgstr "" msgid "Rename Error" msgstr "" msgid "Select Source File" msgstr "" msgid "Select Source Folder" msgstr "Odaberite izvornu mapu" msgid "Source does not exist." msgstr "" msgid "The source must be within the repository tree." msgstr "" msgid "The destination must be within the repository tree." msgstr "" msgid "Destination file already exists." msgstr "" msgid "Are you sure you want to overwrite it ?" msgstr "" #, python-format msgid "Copy - %s" msgstr "" #, python-format msgid "Rename - %s" msgstr "" msgid "Show all" msgstr "" msgid "### revision set query ###" msgstr "" msgid "Clear current query and query text" msgstr "" msgid "Trigger revision set query" msgstr "" msgid "Open advanced query editor" msgstr "" msgid "Delete selected query from history" msgstr "" msgid "filter" msgstr "" msgid "Toggle filtering of non-matched changesets" msgstr "" msgid "Show/Hide hidden changesets" msgstr "" msgid "Toggle graft relations visibility" msgstr "" msgid "Keyword Search" msgstr "" msgid "Revision Set" msgstr "" msgid "(unsaved)" msgstr "" msgid "Display graph the named branch only" msgstr "" msgid "Display only active branches" msgstr "" msgid "Display closed branches" msgstr "" msgid "Include all ancestors" msgstr "" msgctxt "column header" msgid "Graph" msgstr "" msgctxt "column header" msgid "Rev" msgstr "" msgctxt "column header" msgid "Branch" msgstr "" msgctxt "column header" msgid "Description" msgstr "" msgctxt "column header" msgid "Author" msgstr "" msgctxt "column header" msgid "Tags" msgstr "" msgctxt "column header" msgid "Latest tags" msgstr "" msgctxt "column header" msgid "Node" msgstr "" msgctxt "column header" msgid "Git Commit" msgstr "" msgctxt "column header" msgid "Age" msgstr "" msgctxt "column header" msgid "Local Time" msgstr "" msgctxt "column header" msgid "UTC Time" msgstr "" msgctxt "column header" msgid "Changes" msgstr "" msgctxt "column header" msgid "Converted From" msgstr "" msgctxt "column header" msgid "Phase" msgstr "" msgctxt "column header" msgid "Filename" msgstr "" msgid "Searching..." msgstr "" #, python-format msgid "filling (%d)" msgstr "" msgid "Mercurial User" msgstr "" msgid "Repository Registry" msgstr "" msgid "Show &Paths" msgstr "" msgid "Show S&hort Paths" msgstr "" msgid "&Scan Repositories at Startup" msgstr "" msgid "Scan &Remote Repositories" msgstr "" msgid "&Refresh Repository List" msgstr "" msgid "Refresh the Repository Registry list" msgstr "" msgid "&Open" msgstr "" msgid "Open the repository in a new tab" msgstr "" msgid "&Open All" msgstr "" msgid "Open all repositories in new tabs" msgstr "" msgid "New &Group" msgstr "" msgid "Create a new group" msgstr "" msgid "Rename the entry" msgstr "" msgid "Settin&gs" msgstr "" msgid "View the repository's settings" msgstr "" msgid "Re&move from Registry" msgstr "" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" msgid "Clon&e..." msgstr "" msgid "Clone Repository" msgstr "" msgid "E&xplore" msgstr "" msgid "Open the repository in a file browser" msgstr "" msgid "&Terminal" msgstr "" msgid "Open a shell terminal in the repository root" msgstr "" msgid "&Add Repository..." msgstr "" msgid "Add a repository to this group" msgstr "" msgid "A&dd Subrepository..." msgstr "" msgid "Convert an existing repository into a subrepository" msgstr "" msgid "Remo&ve Subrepository..." msgstr "" msgid "Remove this subrepository from the current revision" msgstr "" msgid "Copy the root path of the repository to the clipboard" msgstr "" msgid "Sort by &Name" msgstr "" msgid "Sort the group by short name" msgstr "" msgid "Sort by &Path" msgstr "" msgid "Sort the group by full path" msgstr "" msgid "&Sort by .hgsub" msgstr "" msgid "Order the subrepos as in .hgsub" msgstr "" msgid "Select repository directory to add" msgstr "" msgid "Select an existing repository to add as a subrepo" msgstr "" msgid "Cannot add subrepository" msgstr "" #, python-format msgid "%s is not a valid repository" msgstr "" #, python-format msgid "\"%s\" is not a folder" msgstr "" msgid "A repository cannot be added as a subrepo of itself" msgstr "" #, python-format msgid "" "The selected folder:

                                                  %s

                                                  is not inside the target repository." "

                                                  This may be allowed but is greatly discouraged.
                                                  If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" msgid "Cannot open repository" msgstr "" #, python-format msgid "The selected repository:

                                                  %s

                                                  cannot be open!" msgstr "" msgid "Subrepository already exists" msgstr "" #, python-format msgid "" "The selected repository:

                                                  %s

                                                  is already a subrepository of:" "

                                                  %s

                                                  as: \"%s\"" msgstr "" msgid "Failed to add subrepository" msgstr "" #, python-format msgid "Cannot open the .hgsub file in:

                                                  %s" msgstr "" msgid "Failed to add repository" msgstr "" #, python-format msgid "The .hgsub file already contains the line:

                                                  %s" msgstr "" msgid "Subrepo added to .hgsub file" msgstr "" #, python-format msgid "" "The selected subrepo:

                                                  %s

                                                  has been added to the .hgsub " "file of the repository:

                                                  %s

                                                  Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" #, python-format msgid "Cannot update the .hgsub file in:

                                                  %s" msgstr "" msgid "Could not open .hgsub file" msgstr "" msgid "Cannot read the .hgsub file.

                                                  Subrepository removal failed." msgstr "" msgid "Subrepository not found" msgstr "" msgid "" "The selected subrepository was not found on the .hgsub file.

                                                  Perhaps it " "has already been removed?" msgstr "" msgid "&Yes" msgstr "" msgid "&No" msgstr "" msgid "Remove the selected repository?" msgstr "" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" msgid "Subrepository removed from .hgsub" msgstr "" msgid "" "The selected subrepository has been removed from the .hgsub file.

                                                  Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" msgid "Could not update .hgsub file" msgstr "" msgid "Cannot update the .hgsub file.

                                                  Subrepository removal failed." msgstr "" #, python-format msgid "Unsupported repository type (%s)" msgstr "" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "" msgid "New Group" msgstr "" msgid "Confirm Delete" msgstr "" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "" msgid "Could not get subrepository list" msgstr "" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

                                                  %s" msgstr "" msgid "Could not open some subrepositories" msgstr "" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

                                                  %s

                                                  The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

                                                  %s" msgstr "" msgid "Updating repository registry" msgstr "" #, python-format msgid "Loading repository %s" msgstr "" msgid "Repository Registry updated" msgstr "" msgid "Close tab" msgstr "" msgid "Close other tabs" msgstr "" msgid "Undo close tab" msgstr "" msgid "Reopen last closed tab" msgstr "" msgid "Undo close other tabs" msgstr "" msgid "Reopen last closed tab group" msgstr "" msgid "Failed to open repository" msgstr "" msgid "&Sort" msgstr "" #, python-format msgid "Local Repository %s" msgstr "" #, python-format msgid "" "An exception happened while loading the subrepos of:

                                                  \"%s\"

                                                  " msgstr "" #, python-format msgid "The exception error message was:

                                                  %s

                                                  " msgstr "" msgid "Click OK to continue or Abort to exit." msgstr "" msgid "Error loading subrepos" msgstr "" msgid "Unable to update repository name" msgstr "" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "" msgid "default" msgstr "" msgid "C&hoose Log Columns..." msgstr "" msgid "&Resize Columns" msgstr "" #, python-format msgid "Goto ancestor of %s and %s" msgstr "" #, python-format msgid "Can't find revision '%s'" msgstr "" msgid "Drag to change order" msgstr "" msgid "Workbench Log Columns" msgstr "" msgctxt "tab tooltip" msgid "Revision details" msgstr "" msgctxt "tab tooltip" msgid "Commit" msgstr "" msgctxt "tab tooltip" msgid "Search" msgstr "" msgctxt "tab tooltip" msgid "Console log" msgstr "" msgctxt "tab tooltip" msgid "Synchronize" msgstr "" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "" #, python-format msgid "%s " msgstr "" #, python-format msgid "Found %d incoming changesets" msgstr "" msgid "Pull" msgstr "" msgid "Pull incoming changesets into your repository" msgstr "" msgid "Reject incoming changesets" msgstr "" #, python-format msgid "Push current branch (%s)" msgstr "" #, python-format msgid "Push up to current revision (#%d)" msgstr "" #, python-format msgid "Push up to revision #%d" msgstr "" msgid "Push all" msgstr "" msgid "no outgoing changesets" msgstr "" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets" msgstr "" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "" msgid "Nothing to push" msgstr "" msgid "No revision found" msgstr "" #, python-format msgid "%s - verify repository" msgstr "" #, python-format msgid "%s - recover repository" msgstr "" msgid "No transaction available" msgstr "" msgid "There is no rollback transaction available" msgstr "" msgid "Undo last commit?" msgstr "" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "" msgid "Undo last transaction?" msgstr "" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "" msgid "Unable to determine working copy revision\n" msgstr "" msgid "Remove current working revision?" msgstr "" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" msgid "Tab cannot exit" msgstr "" msgid "Pus&h" msgstr "" msgid "Push to &Here" msgstr "" msgid "Push Selected &Branch" msgstr "" msgid "Push &All" msgstr "" msgid "&Update..." msgstr "" msgid "Bro&wse at Revision" msgstr "" msgid "&Merge with Local..." msgstr "" msgid "&Tag..." msgstr "" msgid "Boo&kmark..." msgstr "" msgid "Top&ic..." msgstr "" msgid "Sig&n..." msgstr "" msgid "&Backout..." msgstr "" msgid "Revert &All Files..." msgstr "" msgid "Copy &Hash" msgstr "" msgid "E&xport" msgstr "" msgid "E&xport Patch..." msgstr "" msgid "&Email Patch..." msgstr "" msgid "&Archive..." msgstr "" msgid "&Bundle Rev and Descendants..." msgstr "" msgid "Change &Phase to" msgstr "" msgid "&Graft to Local..." msgstr "" msgid "Modi&fy History" msgstr "" msgid "&Unapply Patch" msgstr "" msgid "Import to &MQ" msgstr "" msgid "MQ &Options" msgstr "" msgid "&Rebase..." msgstr "" msgid "&Prune..." msgstr "" msgid "&Strip..." msgstr "" msgid "Post to Re&view Board..." msgstr "" msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "" msgid "Write diff file" msgstr "" msgid "Unable to write diff file" msgstr "" msgid "Unable to compress history" msgstr "" msgid "Selected changeset pair not related" msgstr "" msgid "Visual Diff..." msgstr "" msgid "Export Diff..." msgstr "" msgid "Export Selected..." msgstr "" msgid "Email Selected..." msgstr "" msgid "Copy Selected as Patch" msgstr "" msgid "Archive DAG Range..." msgstr "" msgid "Export DAG Range..." msgstr "" msgid "Email DAG Range..." msgstr "" msgid "Bundle DAG Range..." msgstr "" msgid "Bisect - Good, Bad..." msgstr "" msgid "Bisect - Bad, Good..." msgstr "" msgid "Compress History..." msgstr "" msgid "Rebase..." msgstr "" msgid "Goto common ancestor" msgstr "" msgid "Graft Selected to local..." msgstr "" msgid "&Prune Selected..." msgstr "" msgid "Post Selected to Review Board..." msgstr "" msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "" msgid "Apply onto original parent" msgstr "" msgid "Apply only this patch" msgstr "" msgid "Fold patches..." msgstr "" msgid "Delete patches..." msgstr "" msgid "Rename patch..." msgstr "" msgid "Pull to here..." msgstr "" msgid "Visual diff..." msgstr "" msgid "Export patch" msgstr "" msgid "Patch Files (*.patch)" msgstr "" msgid "Cannot export revision" msgstr "" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" msgid "There is already an existing folder with that same name." msgstr "" msgid "Replace" msgstr "" msgid "Append" msgstr "" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" msgid "What do you want to do?\n" msgstr "" msgid "Replace the existing patch files.\n" msgstr "" msgid "Append the changes to the existing patch files.\n" msgstr "" msgid "Abort the export operation.\n" msgstr "" msgid "Patch files already exist" msgstr "" msgid "Patch exported" msgstr "" #, python-format msgid "" "Revision #%d (%s) was exported to:

                                                  %s%s%s" msgstr "" msgid "Patches exported" msgstr "" #, python-format msgid "%d patches were exported to:

                                                  %s" msgstr "" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

                                                  Are you sure you want to use revert?

                                                  (use " "update to checkout another revision)" msgstr "" msgid "Filter b&y" msgstr "" msgid "&Ancestors and Descendants" msgstr "" msgid "A&uthor" msgstr "" msgid "&Branch" msgstr "" msgid "&More Options..." msgstr "" msgid "Unable to merge" msgstr "" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "" msgid "Unable to backout" msgstr "Nije moguće poništiti" msgid "Write bundle" msgstr "" msgid "Backwards phase change requested" msgstr "" msgid "Do you really want to make this revision secret?" msgstr "" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" msgid "&Make secret" msgstr "" msgid "&Cancel" msgstr "" msgid "Do you really want to force a backwards phase transition?" msgstr "" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" msgid "&Force" msgstr "" msgid "Cannot import selected revision" msgstr "" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" msgid "Invalid command" msgstr "" msgid "The selected command is empty" msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" msgid "Failed to execute custom TortoiseHg command" msgstr "" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "" msgid "Failed to execute custom command" msgstr "" #, python-format msgid "The command \"%s\" could not be executed." msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" msgid "&Edit Toolbar" msgstr "" msgid "&Refresh" msgstr "" msgid "&Filter Toolbar" msgstr "" #, python-format msgid "TortoiseHg: %s" msgstr "" msgid "S&tatus Bar" msgstr "" #, python-format msgid "Resolve Conflicts - %s" msgstr "" msgid "Local revision information" msgstr "" msgid "Other revision information" msgstr "" msgid "Unresolved conflicts" msgstr "" msgid "Mercurial Re&solve" msgstr "" msgid "Attempt automatic (trivial) merge" msgstr "" msgid "Tool &Resolve" msgstr "" msgid "Merge using selected merge tool" msgstr "" msgid "&Take Local" msgstr "" msgid "Accept the local file version (yours)" msgstr "" msgid "Take &Other" msgstr "" msgid "Accept the other file version (theirs)" msgstr "" msgid "&Mark as Resolved" msgstr "" msgid "Mark this file as resolved" msgstr "" msgid "Diff &Local to Ancestor" msgstr "" msgid "&Diff Other to Ancestor" msgstr "" msgid "Resolved conflicts" msgstr "" msgid "&Edit File" msgstr "" msgid "Edit resolved file" msgstr "" msgid "3-&Way Diff" msgstr "" msgid "Visual three-way diff" msgstr "" msgid "Visual diff between resolved file and first parent" msgstr "" msgid "&Diff to Other" msgstr "" msgid "Visual diff between resolved file and second parent" msgstr "" msgid "Mark as &Unresolved" msgstr "" msgid "Mark this file as unresolved" msgstr "" msgid "Detected merge/diff tools:" msgstr "" msgid "Command output" msgstr "" msgid "Unable to show subrepository files" msgstr "" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" msgid "There are merge conflicts to be resolved" msgstr "" msgid "All conflicts are resolved." msgstr "" msgid "There are no conflicting file merges." msgstr "" msgid "Exit without finishing resolve?" msgstr "" msgid "Unresolved conflicts remain. Are you sure?" msgstr "" msgid "E&xit" msgstr "" msgid "Ext" msgstr "" msgid "Repository" msgstr "" msgid "" msgstr "" msgid "File List Toolbar" msgstr "" msgid "Ma&nifest Mode" msgstr "" msgid "Show all version-controlled files in tree view" msgstr "" msgid "&Flat List" msgstr "" msgid "### filter text ###" msgstr "" msgid "Changed by &This Commit" msgstr "" msgid "Show files changed by this commit" msgstr "" msgid "Compare to &1st Parent" msgstr "" msgid "Compare to &2nd Parent" msgstr "" msgid "Toggle parent to be used as the base revision" msgstr "" msgid "List Optio&ns" msgstr "" #, python-format msgid "%s - Revision Details (%s)" msgstr "" #, python-format msgid "Revert - %s" msgstr "" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "" msgid "Revert all files to this revision" msgstr "" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "" msgid "null revision (i.e. remove file(s))" msgstr "" msgid "Changeset:" msgstr "" msgid "Child:" msgstr "" msgid "Predecessors:" msgstr "" msgid "Successors:" msgstr "" msgid "Head is closed!" msgstr "" msgid "Changesets where username contains string." msgstr "" msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" msgid "Like \"keyword(string)\" but accepts a regex." msgstr "" msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" msgid "The named bookmark or all bookmarks." msgstr "" msgid "The named tag or all tags." msgstr "" msgid "Changeset is tagged." msgstr "" msgid "Changeset is a named branch head." msgstr "" msgid "Changeset is a merge changeset." msgstr "" msgid "Changeset is closed." msgstr "" msgid "" "Changesets within the interval, see help dates" msgstr "" msgid "Greatest common ancestor of the two changesets." msgstr "" msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" msgid "Changesets which modify files matched by pattern." msgstr "" msgid "Changesets which add files matched by pattern." msgstr "" msgid "Changesets which remove files matched by pattern." msgstr "" msgid "Changesets containing files matched by pattern." msgstr "" msgid "All changesets belonging to the branches of changesets in set." msgstr "" msgid "Members of a set with no children in set." msgstr "" msgid "Changesets which are descendants of changesets in set." msgstr "" msgid "Changesets that are ancestors of a changeset in set." msgstr "" msgid "Child changesets of changesets in set." msgstr "" msgid "The set of all parents for all changesets in set." msgstr "" msgid "First parent for all changesets in set, or the working directory." msgstr "" msgid "Second parent for all changesets in set, or the working directory." msgstr "" msgid "Changesets with no parent changeset in set." msgstr "" msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" msgid "Changeset with lowest revision number in set." msgstr "" msgid "Changeset with highest revision number in set." msgstr "" msgid "First n members of a set." msgstr "" msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "" msgid "All changesets, the same as 0:tip." msgstr "" msgid "Revision Set Query" msgstr "" msgid "all revisions converted from subversion" msgstr "" msgid "changeset which represents converted svn revision" msgstr "" msgid "Common sets" msgstr "" msgid "File pattern sets" msgstr "" msgid "Set Ancestry" msgstr "" msgid "Set Logic" msgstr "" msgid "" "help " "revsets" msgstr "" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" #, python-format msgid "thg: unknown command '%s'\n" msgstr "" #, python-format msgid "thg %s: %s\n" msgstr "" #, python-format msgid "thg: %s\n" msgstr "" #, python-format msgid "abort: %s!\n" msgstr "" #, python-format msgid "abort: %s\n" msgstr "" #, python-format msgid "(%s)\n" msgstr "" msgid "option --config may not be abbreviated!" msgstr "" msgid "invalid arguments" msgstr "" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" msgid "repository root directory or symbolic path name" msgstr "" msgid "enable additional output" msgstr "" msgid "suppress output" msgstr "" msgid "display help and exit" msgstr "" msgid "set/override config option (use 'section.name=value')" msgstr "" msgid "enable debugging output" msgstr "" msgid "start debugger" msgstr "" msgid "print command execution profile" msgstr "" msgid "do not fork GUI process" msgstr "" msgid "always fork GUI process" msgstr "" msgid "read file list from file" msgstr "" msgid "read file list from file encoding utf-8" msgstr "" msgid "thg about" msgstr "" msgid "thg add [FILE]..." msgstr "" msgid "revision to annotate" msgstr "" msgid "open to line" msgstr "" msgid "initial search pattern" msgstr "" msgid "thg annotate" msgstr "" #, python-format msgid "invalid line number: %s" msgstr "" msgid "revision to archive" msgstr "" msgid "thg archive" msgstr "" msgid "merge with old dirstate parent after backout" msgstr "" msgid "parent to choose when backing out merge" msgstr "" msgid "revision to backout" msgstr "" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "" msgid "thg bisect" msgstr "" msgid "revision" msgstr "" msgid "thg bookmarks [-r REV] [NAME]" msgstr "" msgid "only one new bookmark name allowed" msgstr "" msgid "the clone will include an empty working copy (only a repository)" msgstr "" msgid "revision, tag or branch to check out" msgstr "" msgid "include the specified changeset" msgstr "" msgid "clone only the specified branch" msgstr "" msgid "use pull protocol to copy metadata" msgstr "" msgid "use uncompressed transfer (fast over LAN)" msgstr "" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "" msgid "record user as committer" msgstr "" msgid "record datecode as commit date" msgstr "" msgid "thg commit [OPTIONS] [FILE]..." msgstr "" msgid "thg debugblockmatcher" msgstr "" msgid "thg debugbugreport [TEXT]" msgstr "" msgid "thg debugconsole" msgstr "" msgid "thg debuglighthg" msgstr "" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "" msgid "no command specified" msgstr "" msgid "thg drag_copy SOURCE... DEST" msgstr "" msgid "thg drag_move SOURCE... DEST" msgstr "" msgid "a revision to send" msgstr "" msgid "thg email [REVS]" msgstr "" msgid "use only one form to specify the revision" msgstr "" msgid "select the specified revision" msgstr "" msgid "side-by-side comparison of revisions" msgstr "" msgid "thg filelog [OPTION]... FILE" msgstr "" msgid "requires a single filename" msgstr "" msgid "thg forget [FILE]..." msgstr "" msgid "revisions to graft" msgstr "" msgid "thg graft [-r] REV..." msgstr "" msgid "You must provide revisions to graft" msgstr "" msgid "ignore case during search" msgstr "" msgid "thg grep" msgstr "" msgid "thg guess" msgstr "" msgid "thg help [COMMAND]" msgstr "" msgid "global options:" msgstr "" msgid "use \"thg help\" for the full list of commands" msgstr "" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "" msgid "" "list of commands:\n" "\n" msgstr "" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" msgid "(no help text available)" msgstr "" msgid "options:\n" msgstr "" msgid "no commands defined\n" msgstr "" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "" msgid "" "basic commands:\n" "\n" msgstr "" #, python-format msgid " (default: %s)" msgstr "" msgid "thg hgignore [FILE]" msgstr "" msgid "import to the patch queue (MQ)" msgstr "" msgid "thg import [OPTION] [SOURCE]..." msgstr "" msgid "thg init [DEST]" msgstr "" msgid "thg lock" msgstr "" msgid "search for a given text or revset" msgstr "" msgid "(DEPRECATED)" msgstr "" msgid "open a new workbench window" msgstr "" msgid "thg log [OPTIONS] [FILE]" msgstr "" msgid "cannot specify both -k/--query and filenames" msgstr "" msgid "revision to display" msgstr "" msgid "thg manifest [-r REV] [FILE]" msgstr "" msgid "revision to merge" msgstr "" msgid "thg merge [[-r] REV]" msgstr "" msgid "Merge revision not specified or not found" msgstr "" msgid "a revision to post" msgstr "" msgid "thg postreview [-r] REV..." msgstr "" msgid "reviewboard extension not enabled" msgstr "" #, python-format msgid "see %(url)s" msgstr "" msgid "no revisions specified" msgstr "" msgid "revisions to prune" msgstr "" msgid "thg prune [-r] REV..." msgstr "" msgid "thg purge" msgstr "" msgid "keep original changesets" msgstr "" msgid "keep original branch names" msgstr "" msgid "rebase from the specified changeset" msgstr "" msgid "rebase onto the specified changeset" msgstr "" msgid "thg rebase -s REV -d REV [--keep]" msgstr "" msgid "Rebase already in progress" msgstr "" msgid "Resuming rebase already in progress" msgstr "" msgid "You must provide source and dest arguments" msgstr "" msgid "thg rejects [FILE]" msgstr "" msgid "You must provide the path to a file" msgstr "" msgid "thg remove [FILE]..." msgstr "" msgid "thg rename [SOURCE] [DEST]" msgstr "" msgid "field to give initial focus" msgstr "" msgid "thg repoconfig" msgstr "" msgid "thg resolve" msgstr "" msgid "the revision to show" msgstr "" msgid "thg revdetails [-r REV]" msgstr "" msgid "thg revert [FILE]..." msgstr "" msgid "revision to update" msgstr "" msgid "thg rupdate [[-r] REV]" msgstr "" msgid "name of the hgweb config file (serve more than one repository)" msgstr "" msgid "name of the hgweb config file (DEPRECATED)" msgstr "" msgid "thg serve [--web-conf FILE]" msgstr "" msgid "thg shellconfig" msgstr "" msgid "thg shelve" msgstr "" msgid "sign even if the sigfile is modified" msgstr "" msgid "make the signature local" msgstr "" msgid "the key id to sign with" msgstr "" msgid "do not commit the sigfile after signing" msgstr "" msgid "use as commit message" msgstr "" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "" msgid "Please enable the Gpg extension first." msgstr "" msgid "show files without changes" msgstr "" msgid "show ignored files" msgstr "" msgid "thg status [OPTIONS] [FILE]" msgstr "" msgid "discard uncommitted changes (no backup)" msgstr "" msgid "do not back up stripped revisions" msgstr "" msgid "do not modify working copy during strip" msgstr "" msgid "revision to strip" msgstr "" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "" msgid "open the bookmark sync window" msgstr "" msgid "thg sync [OPTION]... [PEER]" msgstr "" msgid "replace existing tag" msgstr "" msgid "make the tag local" msgstr "" msgid "revision to tag" msgstr "" msgid "remove a tag" msgstr "" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "" msgid "wait until the second ticks over" msgstr "" msgid "notify the shell for paths given" msgstr "" msgid "remove the status cache" msgstr "" msgid "show the contents of the status cache (no update)" msgstr "" msgid "update all repos in current dir" msgstr "" msgid "thg thgstatus [OPTION]" msgstr "" msgid "thg topics [-r REV] [NAME]" msgstr "" msgid "Please enable the Topic extension first." msgstr "" msgid "only one new topic name allowed" msgstr "" msgid "thg update [-C] [[-r] REV]" msgstr "" msgid "thg userconfig" msgstr "" msgid "changeset to view in diff tool" msgstr "" msgid "revisions to view in diff tool" msgstr "" msgid "bundle file to preview" msgstr "" msgid "launch visual diff tool" msgstr "" msgid "print license" msgstr "" msgid "thg version [OPTION]" msgstr "" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "" msgid "Location:" msgstr "" msgid "Update to:" msgstr "" msgid "Options:" msgstr "" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "" msgid "Perform a push before updating (-p/--push)" msgstr "" msgid "Allow pushing new branches (--new-branch)" msgstr "" msgid "Force push to remote location (-f/--force)" msgstr "" msgid "remove working directory" msgstr "" msgid "unknown revision!" msgstr "" #, python-format msgid "Remote Update - %s" msgstr "" msgid "&Update" msgstr "" msgid "Log" msgstr "" msgid "Repositories" msgstr "" #, python-format msgid "Running at %s" msgstr "" msgid "Stopped" msgstr "" msgid "TortoiseHg Web Server" msgstr "" msgid "Web Server" msgstr "" msgid "Port:" msgstr "" msgid "Status:" msgstr "" msgid "Start" msgstr "" msgid "Settings" msgstr "" msgid "" msgstr "" msgid "&True" msgstr "" msgid "&False" msgstr "" msgid "&Unspecified" msgstr "" #, python-format msgid "%dpt" msgstr "" msgid "Bold" msgstr "" msgid "Italic" msgstr "" msgid "Strike" msgstr "" msgid "Underline" msgstr "" msgid "&Set..." msgstr "" msgid "&Clear" msgstr "" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "" msgid "&Browse..." msgstr "" msgid "UI Language" msgstr "" msgid "Specify your preferred user interface language (restart needed)" msgstr "" msgid "Three-way Merge Tool" msgstr "" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" msgid "Visual Diff Tool" msgstr "" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" msgid "Visual Editor" msgstr "" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" msgid "CLI Editor" msgstr "" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" msgid "Shell" msgstr "" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
                                                  Default, Windows: cmd.exe /" "K title %(reponame)s
                                                  Default, OS X: not set
                                                  Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" msgid "Immediate Operations" msgstr "" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" msgid "Tab Width" msgstr "" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" msgid "Force Repo Tab" msgstr "" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "" msgid "Monitor Repo Changes" msgstr "" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" msgid "Max Diff Size" msgstr "" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" msgid "Fork GUI" msgstr "" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" msgid "Full Path Title" msgstr "" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" msgid "Auto-resolve merges" msgstr "" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" msgid "New Repo Skeleton" msgstr "" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "" msgid "Single Workbench Window" msgstr "" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" msgid "Default widget" msgstr "" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" msgid "" "Open new tabs next\n" "to the current tab" msgstr "" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" msgid "Author Coloring" msgstr "" msgid "Color changesets by author name. Default: False" msgstr "" msgid "Full Authorname" msgstr "" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" msgid "Task Tabs" msgstr "" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" msgid "Task Toolbar Order" msgstr "" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
                                                  Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
                                                  Valid names are: log commit sync grep and " "pbranch.
                                                  Default: log commit grep pbranch | sync" msgstr "" msgid "Long Summary" msgstr "" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" msgid "Log Batch Size" msgstr "" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "" msgid "Dead Branches" msgstr "" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" msgid "Branch Colors" msgstr "" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" msgid "Hide Tags" msgstr "" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" msgid "Activate Bookmarks" msgstr "" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

                                                  • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
                                                  • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
                                                  • never: Never show any prompt to " "activate any bookmarks.

                                                  Default: prompt" msgstr "" msgid "Show Family Line" msgstr "" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

                                                  Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" msgid "Use optimized graph layouter" msgstr "" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

                                                  Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" msgctxt "config item" msgid "Commit" msgstr "" msgid "Username" msgstr "" msgid "" "Name associated with commits. The common format is:
                                                  Full Name <" "email@example.com>" msgstr "" msgid "Ask Username" msgstr "" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" msgid "Summary Line Length" msgstr "" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" msgid "Close After Commit" msgstr "" msgid "Close the commit tool after every successful commit. Default: False" msgstr "" msgid "Push After Commit" msgstr "" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" msgid "Auto Commit List" msgstr "" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" msgid "Auto Exclude List" msgstr "" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" msgid "English Messages" msgstr "" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" msgid "New Commit Phase" msgstr "" msgid "The phase of new commits. Default: draft" msgstr "" msgid "Secret MQ Patches" msgstr "" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "" msgid "Check Subrepo Phase" msgstr "" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" msgid "Monitor working
                                                  directory changes" msgstr "" msgid "" "Select when the working directory status list will be refreshed:
                                                  - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
                                                  TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
                                                  - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
                                                  - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
                                                  Default: auto" msgstr "" msgid "Confirm adding unknown files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Confirm deleting files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Sync" msgstr "" msgid "After Pull Operation" msgstr "" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" msgid "Default Push" msgstr "" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

                                                  • all: The default. Push all changes in all " "branches.
                                                  • branch: Push all changes in the current branch.
                                                  • revision: Push the changes in the current branch up to the current revision.

                                                  Default: all" msgstr "" msgid "Confirm Push" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" msgid "Target Combo" msgstr "" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

                                                  • auto: The default. Show the combo if more than one target " "configured.
                                                  • always: Always show the combo.

                                                  Default: auto" msgstr "" msgid "SSH Command" msgstr "" msgid "" "Command to use for SSH connections.

                                                  Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" msgid "Subrepository Features:" msgstr "" msgid "Allow Hg Subrepos" msgstr "" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" msgid "Allow Git Subrepos" msgstr "" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

                                                  See the security note before enabling Git " "subrepos." msgstr "" msgid "Allow SVN Subrepos" msgstr "" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

                                                  See the security note before enabling " "Subversion subrepos." msgstr "" msgid "Server" msgstr "" msgid "Repository Details:" msgstr "" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" msgid "Encoding" msgstr "" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" msgid "'Publishing' repository" msgstr "" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" msgid "Web Server:" msgstr "" msgid "Textual description of the repository's purpose or contents." msgstr "" msgid "Contact" msgstr "" msgid "Name or email address of the person in charge of the repository." msgstr "" msgid "Style" msgstr "" msgid "Which template map style to use" msgstr "" msgid "Archive Formats" msgstr "" msgid "Comma separated list of archive formats allowed for downloading" msgstr "" msgid "Port" msgstr "" msgid "Port to listen on" msgstr "" msgid "Push Requires SSL" msgstr "" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" msgid "Stripes" msgstr "" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" msgid "Max Files" msgstr "" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "" msgid "Max Changes" msgstr "" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "" msgid "Allow Push" msgstr "" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" msgid "Deny Push" msgstr "" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" msgid "Proxy" msgstr "" msgid "Host" msgstr "" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "" msgid "Bypass List" msgstr "" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "" msgid "Optional. User name to authenticate with at the proxy server" msgstr "" msgid "Password" msgstr "" msgid "Optional. Password to authenticate with at the proxy server" msgstr "" msgid "From" msgstr "" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "" msgid "To" msgstr "" msgid "Comma-separated list of recipient email addresses" msgstr "" msgid "Cc" msgstr "" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "" msgid "Bcc" msgstr "" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "" msgid "method" msgstr "" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" msgid "SMTP Host" msgstr "" msgid "Host name of mail server" msgstr "" msgid "SMTP Port" msgstr "" msgid "Port to connect to on mail server. Default: 25" msgstr "" msgid "SMTP TLS" msgstr "" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "" msgid "SMTP Username" msgstr "" msgid "Username to authenticate to mail server with" msgstr "" msgid "SMTP Password" msgstr "" msgid "Password to authenticate to mail server with" msgstr "" msgid "Local Hostname" msgstr "" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "" msgid "Diff and Annotate" msgstr "" msgid "Patch EOL" msgstr "" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" msgid "Git Format" msgstr "" msgid "Use git extended diff header format. Default: False" msgstr "" msgid "MQ Git Format" msgstr "" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" msgid "No Dates" msgstr "" msgid "Do not include modification dates in diff headers. Default: False" msgstr "" msgid "Show Function" msgstr "" msgid "Show which function each change is in. Default: False" msgstr "" msgid "Ignore White Space" msgstr "" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "" msgid "Ignore WS Amount" msgstr "" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "" msgid "Ignore Blank Lines" msgstr "" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "" msgid "Annotate:" msgstr "" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "" msgid "Fonts" msgstr "" msgid "Message Font" msgstr "" msgid "Font used to display commit messages. Default: monospace 10" msgstr "" msgid "Diff Font" msgstr "" msgid "Font used to display text differences. Default: monospace 10" msgstr "" msgid "ChangeLog Font" msgstr "" msgid "Font used to display changelog data. Default: monospace 10" msgstr "" msgid "Output Font" msgstr "" msgid "Font used to display output messages. Default: sans 8" msgstr "" msgid "Extensions" msgstr "" msgid "Tools" msgstr "" msgid "Hooks" msgstr "" msgid "Issue Tracking" msgstr "" msgid "Issue Regex" msgstr "" msgid "Defines the regex to match when picking up issue numbers." msgstr "" msgid "Issue Link" msgstr "" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" msgid "Inline Tags" msgstr "" msgid "Show tags at start of commit message." msgstr "" msgid "Mandatory Issue Reference" msgstr "" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" msgid "Issue Tracker Plugin" msgstr "" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" msgid "Configure Issue Tracker" msgstr "" msgid "Configure the selected COM Bug Tracker plugin." msgstr "" msgid "Issue Tracker Trigger" msgstr "" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

                                                  • never: Do not update the Issue Tracker " "state automatically.
                                                  • commit: Update the Issue Tracker state after " "a successful commit.

                                                  Default: never" msgstr "" msgid "Changeset Link" msgstr "" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
                                                  The template string " "uses a normal mercurial template syntax, such as:

                                                  • {node|short} : replaced by " "the 12 digit revision id.
                                                  • {rev} : replaced by the revision number." "
                                                  • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
                                                  For example, in order to " "link to bitbucket commit pages you can set this to:
                                                  https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
                                                  You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
                                                  https://github.com/torvalds/" "linux/commit/{gitnode}
                                                  https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
                                                  " msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "" msgid "User name to authenticate with review board" msgstr "" msgid "Password to authenticate with review board" msgstr "" msgid "Server Repository ID" msgstr "" msgid "The default repository id for this repo on the review board server" msgstr "" msgid "Target Groups" msgstr "" msgid "A comma separated list of target groups" msgstr "" msgid "Target People" msgstr "" msgid "A comma separated list of target people" msgstr "" msgid "Kiln Bfiles" msgstr "" msgid "Patterns" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" msgid "Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" msgid "System Cache" msgstr "" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "" msgid "Simplelock" msgstr "" msgid "Lock Clone" msgstr "" msgid "" "Location of local clone of organizational lock repository.

                                                  This repository " "must contain a \"locked\" text file" msgstr "" msgid "Largefiles" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" msgid "Minimum Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" msgid "User Cache" msgstr "" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" msgid "Projrc" msgstr "" msgid "Require confirmation" msgstr "" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

                                                  • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
                                                  • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
                                                  • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
                                                  " msgstr "" msgid "Servers" msgstr "" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" msgid "Include" msgstr "" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" msgid "Exclude" msgstr "" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" msgid "Update on incoming" msgstr "" msgid "" "Let the user update the projrc on incoming:
                                                  • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
                                                  • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
                                                  • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                                                    Default: never" msgstr "" msgid "GnuPG" msgstr "" msgid "Specify the path to GPG. Default: gpg" msgstr "" msgid "Key ID" msgstr "" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "" msgid "TortoiseHg Settings" msgstr "" msgid "Iniparse package not found" msgstr "" msgid "Can't change settings without iniparse package - view is readonly." msgstr "" #, python-format msgid "%s's global settings" msgstr "" msgid "No repository found" msgstr "" msgid "no repo at " msgstr "" #, python-format msgid "%s project settings (.hg/projrc)" msgstr "" #, python-format msgid "%s repository settings" msgstr "" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "" msgid "Apply changes before exit?" msgstr "" msgid "&No (discard changes)" msgstr "" msgid "Reload" msgstr "" msgid "Settings File:" msgstr "" msgid "Confirm Save" msgstr "" msgid "Save changes before editing?" msgstr "" msgid "&Save" msgstr "" msgid "Confirm Reload" msgstr "" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" msgid "Unable to create a Mercurial.ini file" msgstr "" msgid "Insufficient access rights, reverting to read-only mode." msgstr "" msgid "Context Menu" msgstr "" msgid "Top menu items:" msgstr "" msgid "Sub menu items:" msgstr "" msgid "Menu Behavior" msgstr "" msgid "Hide context menu outside repositories" msgstr "" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" msgid "Icons" msgstr "" msgid "Overlays" msgstr "" msgid "Enabled overlays" msgstr "" msgid "Local disks only" msgstr "" msgid "Enabled Overlay Handlers" msgstr "" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "" msgid "Added" msgstr "" msgid "Locked*" msgstr "" msgid "Ignored*" msgstr "" msgid "Unversioned" msgstr "" msgid "Readonly*" msgstr "" msgid "Deleted*" msgstr "" msgid "*: not used by TortoiseHg" msgstr "" msgid "Taskbar" msgstr "" msgid "Show Icon" msgstr "" msgid "Highlight Icon" msgstr "" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" msgid "Explorer Extension Settings - TortoiseHg" msgstr "" msgid "Clear" msgstr "" msgid "Clear the current shelf file" msgstr "" msgid "Delete the current shelf file" msgstr "" msgid "Left Toolbar" msgstr "" msgid "Delete selected chunks" msgstr "" msgid "Move all files right" msgstr "" msgid "Move selected file right" msgstr "" msgid "Edit file" msgstr "" msgid "Move selected chunks right" msgstr "" msgid "Refresh Toolbar" msgstr "" msgid "Refresh" msgstr "" msgid "New Shelf" msgstr "" msgid "Right Toolbar" msgstr "" msgid "Move selected chunks left" msgstr "" msgid "Move selected file left" msgstr "" msgid "Move all files left" msgstr "" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "" msgid "Delete selected chunks from working copy?" msgstr "" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "" msgid "Are you sure?" msgstr "" msgid "TortoiseHg New Shelf Name" msgstr "" msgid "Specify name of new shelf" msgstr "" msgid "Bad filename" msgstr "" #, python-format msgid "A shelf name cannot contain %s" msgstr "" msgid "File already exists" msgstr "" msgid "A shelf file of that name already exists" msgstr "" msgid "New shelf created" msgstr "" #, python-format msgid "Delete shelf file %s?" msgstr "" msgid "Shelf deleted" msgstr "" msgid "Revert all working copy changes?" msgstr "" #, python-format msgid "Clear contents of shelf file %s?" msgstr "" msgid "Shelf cleared" msgstr "" #, python-format msgid "Shelf: %s" msgstr "" #, python-format msgid "Patch: %s" msgstr "" msgid "Key:" msgstr "" msgid "Local sign" msgstr "" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "" msgid "No commit" msgstr "" msgid "Use custom commit message:" msgstr "" msgid "&Sign" msgstr "" #, python-format msgid "Sign - %s" msgstr "" msgid "Signature has been added" msgstr "" msgid "Repository command still running" msgstr "" msgid "Filter:" msgstr "" msgid "Check all files" msgstr "" msgid "Uncheck all files" msgstr "" msgid "Status File List Toolbar" msgstr "" msgid "Remove filter, show root" msgstr "" #, python-format msgid "%s - status (selection filtered)" msgstr "" #, python-format msgid "%s - status" msgstr "" msgid "Check" msgstr "" msgid "Uncheck" msgstr "" msgid "status" msgstr "" msgid "Failed to refresh" msgstr "" msgid "No appropriate files" msgstr "" msgid "No files found for this operation" msgstr "" msgid "Stat" msgstr "Stat" msgid "M" msgstr "" msgid "Filename" msgstr "" msgid "Size (KB)" msgstr "" #, python-format msgid "Checked count: %d" msgstr "" msgid ", resolved merge" msgstr "" msgid ", unresolved merge" msgstr "" #, python-format msgid "%s is modified" msgstr "" msgid "modified" msgstr "" #, python-format msgid "%s is added" msgstr "" msgid "added" msgstr "" #, python-format msgid "%s is removed" msgstr "" msgid "removed" msgstr "" #, python-format msgid "%s is not tracked (unknown)" msgstr "" msgid "unknown" msgstr "" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "" msgid "missing" msgstr "" #, python-format msgid "%s is ignored" msgstr "" msgid "ignored" msgstr "" #, python-format msgid "%s is not modified (clean)" msgstr "" msgid "clean" msgstr "" #, python-format msgid "%s is a dirty subrepo" msgstr "" msgid "subrepo" msgstr "" msgid "Check for incoming changes from selected URL" msgstr "" msgid "Pull incoming changes from selected URL" msgstr "" msgid "Detect outgoing changes to selected URL" msgstr "" msgid "Push outgoing changes to selected URL" msgstr "" msgid "Sync Bookmarks" msgstr "" msgid "Email outgoing changesets for remote repository" msgstr "" msgid "Manage pending perforce changelists" msgstr "" msgid "Unbundle" msgstr "" msgid "Selected Options:" msgstr "" msgid "Path Edit Toolbar" msgstr "" msgid "Security" msgstr "" msgid "Manage HTTPS connection security and user authentication" msgstr "" msgid "Save" msgstr "" msgid "Save current URL under an alias" msgstr "" msgid "Paths in Repository Settings:" msgstr "" msgid "Related Paths:" msgstr "" msgid "branch: " msgstr "" msgid "bookmark: " msgstr "" #, python-format msgid "rev: %d (%s)" msgstr "" msgid "Post Pull: " msgstr "" msgid "&Edit..." msgstr "" msgid "&Remove..." msgstr "" msgid "Repository not local" msgstr "" msgid "A terminal shell cannot be opened for remote" msgstr "" msgid "Confirm path delete" msgstr "" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "" msgid "Select repository" msgstr "" msgid "No host specified" msgstr "" msgid "Please set a valid URL to continue." msgstr "" msgid "No remote repository URL or path set" msgstr "" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

                                                    Please type and save a remote repository path on the " "Sync widget." msgstr "" msgid "Redundant authentication info" msgstr "" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" msgid "sync command already running" msgstr "" #, python-format msgid "Getting incoming changesets from %s..." msgstr "" #, python-format msgid "Found incoming changesets from %s" msgstr "" #, python-format msgid "No incoming changesets from %s" msgstr "" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "" #, python-format msgid "Pulling from %s..." msgstr "" #, python-format msgid "Pull from %s completed" msgstr "" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "" msgid "Merge caused file conflicts" msgstr "" msgid "File conflicts need to be resolved" msgstr "" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "" #, python-format msgid "%d outgoing changesets to %s" msgstr "" #, python-format msgid "No outgoing changesets to %s" msgstr "" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "" msgid "Perforce pending..." msgstr "" #, python-format msgid "%s (submitted)" msgstr "" #, python-format msgid "%s (pending)" msgstr "" msgid "Unable to parse p4pending output" msgstr "" #, python-format msgid "%d pending changelists found" msgstr "" msgid "No pending Perforce changelists" msgstr "" msgid "Aborted p4pending" msgstr "" msgid "Unable to determine pending changesets" msgstr "" msgid "Confirm Push to remote Repository" msgstr "" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" #, python-format msgid "Push to %s aborted" msgstr "" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" #, python-format msgid "Pushing to %s..." msgstr "" #, python-format msgid "Push to %s completed" msgstr "" #, python-format msgid "Push to %s aborted, ret %d" msgstr "" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" msgid "Determining outgoing changesets to email..." msgstr "" msgid "No outgoing changesets" msgstr "" #, python-format msgid "Outgoing aborted, ret %d" msgstr "" msgid "Select bundle file" msgstr "" msgid "Bundle files (*.hg)" msgstr "" msgid "Unable to remove URL" msgstr "" msgid "Post Pull Behavior" msgstr "" msgid "Select post-pull operation for this repository" msgstr "" msgid "None - simply pull changesets" msgstr "" msgid "Update - pull, then try to update" msgstr "" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "" msgid "Rebase - rebase local commits above pulled changes" msgstr "" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "" msgid "Launch settings tool..." msgstr "" msgid "Unable to save post pull operation" msgstr "" msgid "Save Path" msgstr "" msgid "Alias" msgstr "" msgid "URL" msgstr "" msgid "Remove authentication data from URL" msgstr "" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" msgid "Update subrepo paths" msgstr "" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" msgid "Unable to save an URL" msgstr "" msgid "Confirm URL replace" msgstr "" #, python-format msgid "%s already exists, replace URL?" msgstr "" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

                                                    %s

                                                    Replace it with the " "following URL?:

                                                    %s" msgstr "" msgid "Security: " msgstr "" #, python-format msgid "Host: %s" msgstr "" msgid "Secure HTTPS Connection" msgstr "" msgid "Verify with Certificate Authority certificates (best)" msgstr "" msgid "Verify with stored host fingerprint (good)" msgstr "" msgid "No host validation, but still encrypted (bad)" msgstr "" msgid "### host certificate fingerprint ###" msgstr "" msgid "Query" msgstr "" msgid "TLS 1.0" msgstr "" msgid "TLS 1.1" msgstr "" msgid "TLS 1.2" msgstr "" msgid "Minimum Protocol" msgstr "" msgid "User Authentication" msgstr "" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Key" msgstr "" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Chain" msgstr "" msgid "Certificate Query Error" msgstr "" msgid "Select User Certificate Key File" msgstr "" msgid "PEM files (*.pem *.key)" msgstr "" msgid "Select User Certificate Chain File" msgstr "" msgid "PEM files (*.pem *.crt *.cer)" msgstr "" msgid "Unable to save authentication" msgstr "" #, python-format msgid "%s - sync options" msgstr "" msgid "Allow push of a new branch (--new-branch)" msgstr "" msgid "Force push or pull (override safety checks, --force)" msgstr "" msgid "Temporarily disable configured HTTP proxy" msgstr "" msgid "Emit debugging output (--debug)" msgstr "" msgid "Work on patch queue (--mq)" msgstr "" #, python-format msgid "Tag - %s" msgstr "" msgid "Tag:" msgstr "" msgid "Tagged:" msgstr "" msgid "Local tag" msgstr "" msgid "Replace existing tag (-f/--force)" msgstr "" msgid "Use English commit message" msgstr "" msgid "local" msgstr "" msgid "Move" msgstr "Premjesti" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "" #, python-format msgid "Added tag %s for changeset %s" msgstr "" #, python-format msgid "Tag '%s' has been moved" msgstr "" #, python-format msgid "Tag '%s' has been added" msgstr "" #, python-format msgid "Removed tag %s" msgstr "" #, python-format msgid "Tag '%s' has been removed" msgstr "" msgid "Patch files (*.diff *.patch)" msgstr "" #, python-format msgid "Import - %s" msgstr "" msgid "Browse Directory..." msgstr "" msgid "Import from Clipboard" msgstr "" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "" msgid "Preview:" msgstr "" msgid "Shelf" msgstr "" msgid "Checking working directory status..." msgstr "" msgid "&Import" msgstr "" msgid "Working directory is not clean! View changes..." msgstr "" msgid "Select patches" msgstr "" msgid "Select Directory containing patches" msgstr "" #, python-format msgid "%s patches" msgstr "" #, python-format msgid "%s will be imported to " msgstr "" msgid "Nothing to import" msgstr "" msgid "Strip:" msgstr "" msgid "Discard local changes, no backup (-f/--force)" msgstr "" msgid "No backup (-n/--nobackup)" msgstr "" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "" msgstr[1] "" msgid "Unknown revision!" msgstr "" msgid "Detected uncommitted local changes." msgstr "" msgid "Do you want to keep them or discard them?" msgstr "" msgid "&Keep (--keep)" msgstr "" msgid "&Discard (--force)" msgstr "" msgid "Confirm Strip" msgstr "" #, python-format msgid "Strip - %s" msgstr "" msgid "&Strip" msgstr "" msgid "Topic:" msgstr "" msgid "&Rename" msgstr "" #, python-format msgid "Topic - %s" msgstr "" #, python-format msgid "A topic named \"%s\" already exists" msgstr "" #, python-format msgid "Topic '%s' has been added" msgstr "" #, python-format msgid "Topic '%s' does not exist" msgstr "" #, python-format msgid "Topic '%s' has been removed" msgstr "" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "" msgid "Parent 1:" msgstr "" msgid "Parent 2:" msgstr "" msgid "Pull subrepos from:" msgstr "" msgid "List updated files (--verbose)" msgstr "" msgid "Discard local changes, no backup (-C/--clean)" msgstr "" msgid "Always merge (when possible)" msgstr "" msgid "(same as parent)" msgstr "" msgid "Activate bookmark?" msgstr "" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

                                                    Do " "you want to activate it?
                                                    You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

                                                    Select " "the bookmark that you want to activate and click OK.

                                                    Click " "Cancel if you don't want to activate any of them.

                                                    You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                    " msgstr "" msgid "Deactivate current bookmark?" msgstr "" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" msgid "Discard - discard local changes, no backup" msgstr "" msgid "&Shelve" msgstr "" msgid "Shelve - move local changes to a patch" msgstr "" msgid "Merge - allow to merge with local changes" msgstr "" msgid "Confirm Update" msgstr "" #, python-format msgid "Update - %s" msgstr "" msgid "[non-existant]" msgstr "" msgid "Tool launch failure" msgstr "" #, python-format msgid "%s : %s" msgstr "" msgid "No diff tool found" msgstr "" msgid "No visual diff tools were detected" msgstr "" msgid "[working copy]" msgstr "" msgid "[original]" msgstr "" msgid "Unable to find changeset" msgstr "" msgid "You likely need to refresh this application" msgstr "" msgid "No file changes" msgstr "" msgid "There are no file changes to view" msgstr "" msgid "working changes" msgstr "" #, python-format msgid "changeset %d:%s" msgstr "" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "" msgid "Visual Diffs - " msgstr "" msgid " filtered" msgstr "" msgid "Temporary files are removed when this dialog is closed" msgstr "" msgid "Select Tool:" msgstr "" msgid "Dir diff to p1" msgstr "" msgid "Dir diff to p2" msgstr "" msgid "3-way dir diff" msgstr "" msgid "Directory diff" msgstr "" msgid "Confirm Discard" msgstr "Potvrdi odbacivanje" msgid "Discard outstanding changes to working directory?" msgstr "Odbaciti lokalne izmjene u radnom direktoriju?" msgid "Config files (*.conf *.config *.ini)" msgstr "" msgid "Open hgweb config" msgstr "" msgid "Save hgweb config" msgstr "" msgid "Path:" msgstr "" msgid "Local Path:" msgstr "" msgid "Select Repository" msgstr "" msgid "Add Path to Serve" msgstr "" msgid "Edit Path to Serve" msgstr "" msgid "Local Path" msgstr "" msgid "Webconf" msgstr "" msgid "Config File:" msgstr "" msgid "Open" msgstr "" msgid "New &Workbench" msgstr "" msgid "&New Repository..." msgstr "" msgid "Clon&e Repository..." msgstr "" msgid "&Open Repository..." msgstr "" msgid "&File" msgstr "" msgid "&View" msgstr "" msgid "&Repository" msgstr "" msgid "&Help" msgstr "" msgid "&Dock Toolbar" msgstr "" msgid "&Task Toolbar" msgstr "" msgid "&Custom Toolbar" msgstr "" msgid "S&ync Toolbar" msgstr "" msgid "&Close Repository" msgstr "" msgid "Sh&ow Repository Registry" msgstr "" msgid "Show &Patch Queue" msgstr "" msgid "Show Conso&le" msgstr "" msgid "Place Console in Doc&k Area" msgstr "" msgid "R&epository Registry Options" msgstr "" msgid "Save Open Repositories on E&xit" msgstr "" msgid "Sa&ve Current Sync Paths on Exit" msgstr "" msgid "Show Tas&k Tab" msgstr "" msgid "&Commit" msgstr "" msgid "&Patch Branch" msgstr "" msgid "Revision &Details" msgstr "" msgid "&Search" msgstr "" msgid "S&ynchronize" msgstr "" msgid "Refresh current repository" msgstr "" msgid "Refresh &Task Tab" msgstr "" msgid "Refresh only the current task tab" msgstr "" msgid "Load &All Revisions" msgstr "" msgid "Load all revisions into graph" msgstr "" msgid "Go to current revision" msgstr "" msgid "&Goto Revision..." msgstr "" msgid "Go to a specific revision" msgstr "" msgid "Filter graph with revision sets or branches" msgstr "" msgid "&Workbench Toolbars" msgstr "" msgid "&Lock File..." msgstr "" msgid "Lock or unlock files" msgstr "" msgid "Update working directory or switch revisions" msgstr "" msgid "&Shelve..." msgstr "" msgid "&Import Patches..." msgstr "" msgid "U&nbundle..." msgstr "" msgid "&Merge..." msgstr "" msgid "Merge with the other head of the current branch" msgstr "" msgid "&Resolve..." msgstr "" msgid "R&ollback/Undo..." msgstr "" msgid "&Purge..." msgstr "" msgid "&Bisect..." msgstr "" msgid "&Verify" msgstr "" msgid "Re&cover" msgstr "" msgid "&Web Server" msgstr "" msgid "E&xplorer Help" msgstr "" msgid "&Readme" msgstr "" msgid "About &Qt" msgstr "" msgid "&About TortoiseHg" msgstr "" msgid "&Incoming" msgstr "" msgid "&Pull" msgstr "" msgid "&Outgoing" msgstr "" msgid "P&ush" msgstr "" msgid "&Sync Bookmarks..." msgstr "" #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" msgid "Check for incoming changes" msgstr "" msgid "Pull incoming changes" msgstr "" msgid "Detect outgoing changes" msgstr "" msgid "Push outgoing changes" msgstr "" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" #, python-format msgid "Execute custom tool '%s'" msgstr "" msgid "Custom Toolbar &Settings" msgstr "" msgid "TortoiseHg Workbench" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "" msgid "Goto revision" msgstr "" msgid "Enter revision identifier" msgstr "" msgid "Select repository directory to open" msgstr "" msgid "README not configured" msgstr "" msgid "" "A README file is not configured for the current repository.

                                                    To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" msgid "Issue Tracker Plugin Error" msgstr "" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "" msgid "This error will not be shown again until you restart the workbench" msgstr "" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "" msgid "Error executing \"commit finished\" trigger" msgstr "" msgid "Cannot open Plugin Options dialog" msgstr "" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "" msgid "[--insecure] [SOURCE]" msgstr "" #, python-format msgid "unsupported URL: %s" msgstr "" #, python-format msgid "%s certificate error: no certificate received" msgstr "" msgid "move after the specified patch" msgstr "" msgid "[--after PATCH] PATCH..." msgstr "" msgid "unknown patch to move specified" msgstr "" msgid "invalid patch position specified" msgstr "" msgid "cannot move applied patches" msgstr "" #, python-format msgid "patch %s not in series" msgstr "" msgid "cannot move into applied patches" msgstr "" msgid "abort: " msgstr "" msgid "hint: " msgstr "" #, python-format msgid "HTTP Error: %d (%s)" msgstr "" #, python-format msgid "URLError: %s" msgstr "" msgid "SSL: Server certificate verify failed" msgstr "" #, python-format msgid "SSL: unknown error %s:%s" msgstr "" #, python-format msgid "SSL error: %s" msgstr "" msgid "hgsubversion packaged with thg" msgstr "" msgid "hggit packaged with thg" msgstr "" msgid "inotify is not supported on this platform" msgstr "" msgid "eol is incompatible with win32text" msgstr "" msgid "win32text is incompatible with eol" msgstr "" msgid "hgsubversion is incompatible with perfarce" msgstr "" msgid "perfarce is incompatible with hgsubversion" msgstr "" msgid "Workbench custom toolbar" msgstr "" msgid "Revision details context menu" msgstr "" msgid "Pair selection context menu" msgstr "" msgid "Multiple selection context menu" msgstr "" msgid "Commit context menu" msgstr "" msgid "File context menu (on manifest and revision details)" msgstr "" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" msgid "in the future" msgstr "" msgid "now" msgstr "" #, python-format msgid "command parse error: %s" msgstr "" #, python-format msgid "no matches found: %s" msgstr "" msgid "Commit..." msgstr "" msgid "Commit changes in repository" msgstr "" msgid "Create Repository Here" msgstr "" msgid "Create a new repository" msgstr "" msgid "Clone..." msgstr "" msgid "Create clone here from source" msgstr "" msgid "File Status" msgstr "" msgid "Repository status & changes" msgstr "" msgid "Add Files..." msgstr "" msgid "Add files to version control" msgstr "" msgid "Revert Files..." msgstr "" msgid "Revert file changes" msgstr "" msgid "Forget Files..." msgstr "" msgid "Remove files from version control" msgstr "" msgid "Remove Files..." msgstr "" msgid "Rename File" msgstr "" msgid "Rename file or directory" msgstr "" msgid "View change history in repository" msgstr "" msgid "File History" msgstr "" msgid "View change history of selected files" msgstr "" msgid "Shelve Changes" msgstr "" msgid "Move changes between working dir and patch" msgstr "" msgid "Synchronize" msgstr "" msgid "Synchronize with remote repository" msgstr "" msgid "Start web server for this repository" msgstr "" msgid "Update..." msgstr "" msgid "Update working directory" msgstr "" msgid "Update Icons" msgstr "" msgid "Update icons for this repository" msgstr "" msgid "Global Settings" msgstr "" msgid "Configure user wide settings" msgstr "" msgid "Repository Settings" msgstr "" msgid "Configure repository settings" msgstr "" msgid "Explorer Extension Settings" msgstr "" msgid "Configure Explorer extension" msgstr "" msgid "About TortoiseHg" msgstr "" msgid "Show About Dialog" msgstr "" msgid "Diff to parent" msgstr "" msgid "View changes using GUI diff tool" msgstr "" msgid "Edit Ignore Filter" msgstr "" msgid "Edit repository ignore filter" msgstr "" msgid "Guess Renames" msgstr "" msgid "Detect renames and copies" msgstr "" msgid "Search History" msgstr "" msgid "Search file revisions for patterns" msgstr "" msgid "DnD Synchronize" msgstr "" msgid "Synchronize with dragged repository" msgstr "" #, python-format msgid "unrecognized response: %s" msgstr "" msgid "password: " msgstr "" #, python-format msgid "repository %s not found" msgstr "" msgid "win32ill: cannot create window for messages" msgstr "" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "" msgid "win32ill: interrupted while stopping message loop\n" msgstr "" #~ msgid "(version %s)" #~ msgstr "(inačica %s)" #~ msgid "with %s" #~ msgstr "sa %s" #~ msgid "Archive" #~ msgstr "Arhiva" #~ msgid "Several icons are courtesy of the TortoiseSVN project" #~ msgstr "TortoiseSVN projekt je ustupio nekolicinu ikona" #~ msgid "Archive revision:" #~ msgstr "Revizija arhive:" #~ msgid "Compressed zip archives" #~ msgstr "Zip arhiva" #~ msgid "unexpected response id: %s" #~ msgstr "neočekivani odgovor: %s" #~ msgid "Do you want to abort?" #~ msgstr "Želite li prekinuti?" #~ msgid "Confirm Abort" #~ msgstr "Potvrdi prekidanje" #~ msgid "" #~ "The destination \"%s\" already exists!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "Odredište \"%s\" već postoji!\n" #~ "\n" #~ "Želite li ga prepisati?" #~ msgid "" #~ "The directory \"%s\" isn't empty!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "Mapa \"%s\" nije prazna!\n" #~ "\n" #~ "Želite li ju prepisati?" #~ msgid "All Files (*.*)" #~ msgstr "Sve datoteke (*.*)" #~ msgid "unknown mode name: %s" #~ msgstr "nepoznati način: %s" #~ msgid "Save as.." #~ msgstr "Snimi kao.." #~ msgid "[All Files]" #~ msgstr "[Sve datoteke]" #~ msgid " %s is larger than the specified max diff size" #~ msgstr " %s je veća od određene max. veličine razlike" #~ msgid "Repository Error: %s, refresh suggested" #~ msgstr "Greška u skladištu: %s, predloženo osvježavanje" #~ msgid "Revert %s to contents at revision %d?" #~ msgstr "Vratiti %s na sadržaj u reviziji %d?" #~ msgid "Confirm revert file to old revision" #~ msgstr "Potvrdite vraćanje datoteke na staru reviziju" #~ msgid "TortoiseHg Clone" #~ msgstr "TortoiseHg kloniraj" #~ msgid "Clone" #~ msgstr "Kloniraj" #~ msgid "Use uncompressed transfer" #~ msgstr "Koristi prijenos bez sažimanja" #~ msgid "Advanced options" #~ msgstr "Napredne mogućnosti" #~ msgid "Source path:" #~ msgstr "Izvorna staza:" #~ msgid "Source path is empty" #~ msgstr "Izvorna staza je prazna" #~ msgid "Branch Operations" #~ msgstr "Operacije grananja" #~ msgid "_View" #~ msgstr "_Prikaz" #~ msgid "Please enter a valid source path" #~ msgstr "Molimo upišite valjanu izvornu stazu" #~ msgid "Source and destination are the same" #~ msgstr "Izvor i odredište su jednaki" #~ msgid "Please specify different paths" #~ msgstr "Molimo odredite različite staze" #~ msgid "Close current named branch" #~ msgstr "Zatvori trenutnu granu" #~ msgid "A new version of TortoiseHg is ready for download!" #~ msgstr "Dostupna je nova inačica TortoiseHg!" #~ msgid "Failed to archive" #~ msgstr "Neuspješna pohrana" #~ msgid "Changeset Description" #~ msgstr "Opis skupa promjena" #~ msgid "Canceled archiving" #~ msgstr "Prekinuta pohrana" #~ msgid "Archived successfully" #~ msgstr "Uspješno pohranjeno" #~ msgid "Copyright 2008-2010 Steve Borho and others" #~ msgstr "Copyright 2008-2010 Steve Borho i ostali" #~ msgid "Old name:" #~ msgstr "Staro ime:" #~ msgid "unexpected type: %s" #~ msgstr "neočekivan tip: %s" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/hu.po0000644000000000000000000053424714440352353016261 0ustar00rootroot# Hungarian translation for tortoisehg # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the tortoisehg package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2018-09-22 13:55+0000\n" "Last-Translator: Zsolt Bölöny \n" "Language-Team: Hungarian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2019-07-17 05:42+0000\n" "X-Generator: Launchpad (build 19009)\n" msgid "TortoiseHg Overlay Icon Server" msgstr "TortoiseHg Overlay Icon Server" msgid "Exit" msgstr "Kilépés" msgid "About" msgstr "Névjegy" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "" msgid "You can visit our site here" msgstr "Itt látogathatja meg honlapunkat" msgid "&License" msgstr "&Licensz" #, python-format msgid "version %s" msgstr "Verzió: %s" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "TortoiseHg új verziója (%s) letölthető!" msgid "License" msgstr "Licensz" msgid "= Working Directory Parent =" msgstr "= Munkakönyvtár szülője =" msgid "Directory of files" msgstr "Fájlok könyvtára" msgid "Tar archives" msgstr "Tar archívumok" msgid "Uncompressed tar archive" msgstr "Tömörítetlen tar archívum" msgid "Bzip2 tar archives" msgstr "Bzip2 tar archívumok" msgid "Tar archive compressed using bzip2" msgstr "Tar archívum bzip2-vel tömörítve" msgid "Gzip tar archives" msgstr "Gzip tar archívumok" msgid "Tar archive compressed using gzip" msgstr "Tar archívum gzip-pel tömörítve" msgid "Zip archives" msgstr "Zip archívumok" msgid "Uncompressed zip archive" msgstr "Tömörítetlen zip archívum" msgid "Zip archive compressed using deflate" msgstr "Zip archívum deflate tömörítéssel" msgid "Revision:" msgstr "Revízió:" msgid "All files in this revision" msgstr "Minden fájl ebben a revízióban" msgid "Only files modified/created in this revision" msgstr "Csak az ezen revízióban módosított/létrehozott fájlok" msgid "Only files modified/created since:" msgstr "Csak az ekkortól módosított/létrehozott fájlok:" msgid "Archive Content:" msgstr "Archívum tartalma:" msgid "Recurse into subrepositories" msgstr "" msgid "Browse..." msgstr "Tallózás…" msgid "Destination path:" msgstr "Cél útvonal:" msgid "Archive types:" msgstr "Archívum típusok:" msgid "Hg command:" msgstr "Hg parancs:" msgid "Select Destination Folder" msgstr "Célkönyvtár kiválasztása" msgid "Select Destination File" msgstr "Célfájl kiválasztása" msgid "All files (*)" msgstr "Minden fájl (*)" msgid "Duplicate Name" msgstr "Duplikált név" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "A cél \"%s\" már létezik fájlként!" msgid "Confirm Overwrite" msgstr "Felülírás megerősítése" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" "A(z) \"%s\" könyvtár nem üres!\n" "\n" "Szeretné felülírni?" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" "A(z) \"%s\" fájl már létezik!\n" "\n" "Szeretné felülírni?" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "A cél \"%s\" már létezik könyvtárként!" #, python-format msgid "Archive - %s" msgstr "Archiválás - %s" msgid "&Archive" msgstr "&Archiválás" msgid "Backout requires a parent revision" msgstr "A visszavonáshoz szükség van egy szülő revízióra" msgid "Cannot backout change on a different branch" msgstr "Más ágon levő változtatást nem lehet visszavonni" #, python-format msgid "Backout - %s" msgstr "Visszavonás - %s" msgid "Prepare to backout" msgstr "Felkészülés visszavonásra" msgid "Verify backout revision and ensure your working directory is clean." msgstr "" "Ellenőrizze a visszavonás revízióját és győződjön meg a munkakönyvtár " "tisztaságáról." msgid "Backing out a parent revision is a single step operation" msgstr "Egy szülő revízió visszavonása egy lépéses művelet" msgid "Backout revision" msgstr "Visszavonás revíziója" msgid "Not a head, backout will create a new head!" msgstr "" msgid "Current local revision" msgstr "Jelenlegi helyi revízió" msgid "Working directory status" msgstr "Munkakönyvtár állapota" msgid "Checking..." msgstr "Ellenőrzés…" msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Automatically resolve merge conflicts where possible" msgstr "Automatikus összefűzés-ütközés feloldás" msgid "Uncommitted local changes are detected" msgstr "" msgid "Clean" msgstr "Tiszta" msgid "Backing out, then merging..." msgstr "Visszavonás, majd összefűzés..." msgid "All conflicting files will be marked unresolved." msgstr "Minden ütköző fájl feloldatlanként lesz megjelölve." msgid "Automatically advance to next page when backout and merge are complete." msgstr "" "Automatikus továbblépés a következő lapra amikor a visszavonás és összefűzés " "elkészül." #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" msgid "No merge conflicts, ready to commit" msgstr "" msgid "Commit backout and merge results" msgstr "" msgid "Parents" msgstr "Szülők" msgid "Working Directory" msgstr "Munkakönyvtár" msgid "Working Directory (merged)" msgstr "Munkakönyvtár (összefűzött)" msgid "Commit message" msgstr "" msgid "Skip final confirmation page, close after commit." msgstr "" msgid "Backed out changeset: " msgstr "" msgid "Confirm Discard Message" msgstr "Elvetési üzenet megerősítése" msgid "Discard current backout message?" msgstr "Elveti a jelenlegi visszavonási üzenetet?" msgid "Use English backout message" msgstr "Angol visszavonási üzenet használata" msgid "Backing out and committing..." msgstr "" msgid "Please wait while making backout." msgstr "Kérjük, várjon a visszavonás elkészültéig." msgid "Committing..." msgstr "" msgid "Please wait while committing merged files." msgstr "" msgid "Finished" msgstr "Kész" msgid "Backout changeset" msgstr "" #, python-format msgid "Bisect - %s" msgstr "Felezés - %s" msgid "Accept" msgstr "Elfogadás" msgid "Known good revision:" msgstr "Ismert jó revízió:" msgid "Known bad revision:" msgstr "Ismert rossz revízió:" msgid "Discard local changes (revert --all)" msgstr "Helyi változtatások elvetése (revert --all)" msgid "Revision is &Good" msgstr "A revízió &jó" msgid "Revision is &Bad" msgstr "A revízió &rossz" msgid "&Skip this Revision" msgstr "&Ezen revízió kihagyása" msgid "Close" msgstr "Bezárás" msgid "Error encountered." msgstr "Hiba történt." msgid "Culprit found." msgstr "Megvan a bűnös." msgid "Revision" msgstr "Revízió" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "Revízió tesztelése és találatok jelentése. (jó/rossz/kihagyás)" #, python-format msgid "%s (hint: %s)" msgstr "%s (tipp: %s)" msgid "Bookmark:" msgstr "Könyvjelző:" msgid "New Name:" msgstr "Új név:" msgid "Activate:" msgstr "Aktiválás:" msgid "&Add" msgstr "&Hozzáadás" msgid "Re&name" msgstr "Át&nevezés" msgid "&Remove" msgstr "&Törlés" msgid "&Move" msgstr "&Áthelyezés" #, python-format msgid "Bookmark - %s" msgstr "Könyvjelző - %s" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "A(z) \"%s\" könyvjelző már létezik" #, python-format msgid "Bookmark '%s' has been added" msgstr "'%s' könyvjelző hozzáadva" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "A(z) \"%s\" könyvjelző nem létezik" #, python-format msgid "Bookmark '%s' has been moved" msgstr "'%s' könyvjelző áthelyezve" #, python-format msgid "Bookmark '%s' does not exist" msgstr "'%s' könyvjelző nem létezik" #, python-format msgid "Bookmark '%s' has been removed" msgstr "'%s' könyvjelző eltávolítva" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "'%s' könyvjelző átnevezve erre: '%s'" msgid "TortoiseHg Bookmark Sync" msgstr "" msgid "Outgoing Bookmarks" msgstr "Kimenő könyvjelzők" msgid "&Push Bookmark" msgstr "" msgid "&Remove Bookmark" msgstr "Könyvjelző &eltávolítása" msgid "Incoming Bookmarks" msgstr "Bejövő könyvjelzők" msgid "P&ull Bookmark" msgstr "" msgid "R&emove Bookmark" msgstr "Könyvjelző &eltávolítása" #, python-format msgid "Pushed local bookmark: %s" msgstr "" #, python-format msgid "Pulled remote bookmark: %s" msgstr "" #, python-format msgid "Removed remote bookmark: %s" msgstr "Távoli könyvjelző eltávolítva: %s" #, python-format msgid "Removed local bookmark: %s" msgstr "Helyi könyvjelző eltávolítva: %s" #, python-format msgid "%s - branch operation" msgstr "%s - ág művelet" msgid "Select branch of merge commit" msgstr "Összeolvasztási ág kiválasztása" msgid "Changes take effect on next commit" msgstr "Változások hatása a következő kommitkor" msgid "No branch changes" msgstr "Nincsenek változtatások az ágon" msgid "Open a new named branch" msgstr "Nyisson meg egy új elnevezett ágat" msgid "Close current branch" msgstr "Jelenlegi ág lezárása" #, python-format msgid "Please report this bug to our bug tracker" msgstr "" "Kérjük, jelentse ezt a hibát a hibakövető rendszerünkben" msgid "Checking for updates..." msgstr "Frissítések keresése..." msgid "Copy" msgstr "Másolás" msgid "Quit" msgstr "Kilépés" msgid "TortoiseHg Bug Report" msgstr "TortoiseHg Hibajelentés" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "Ajánlott egy újabb TortoiseHg verzióra frissíteni." msgid "Your TortoiseHg is up to date." msgstr "A TortoiseHg naprakész." msgid "Save error report to" msgstr "Hibajelentés mentése ide:" msgid "Text files (*.txt)" msgstr "Szövegfájlok (*.txt)" msgid "Error writing file" msgstr "Hiba a fájl íráskor" msgid "TortoiseHg Error" msgstr "TortoiseHg Hiba" msgid "" "If you still have trouble, please file a bug report." msgstr "" "Ha továbbra is gond van, kérjük küldjön egy " "hibajelentést." msgid "Visual Diff" msgstr "Vizuális összehasonlítás" msgid "View file changes in external diff tool" msgstr "Fájlváltozások megtekintése külső összehasonlító eszközzel" msgid "Edit Local" msgstr "Helyi szerkesztése" msgid "Edit current file in working copy" msgstr "" msgid "Revert to Revision" msgstr "Visszaállítás revízióra" msgid "Revert file(s) to contents at this revision" msgstr "Fájl(ok) tartalmának visszaállítása erre a revízióra" msgid "Patch failed to apply" msgstr "Nem sikerült alkalmazni a foltot" msgid "Manually resolve rejected chunks?" msgstr "Szeretné manuálisan feloldani a visszautasított darabokat?" msgid "Edit patched file and rejects?" msgstr "" msgid "No deletable chunks" msgstr "Nincsenek törölhető darabok" msgid "Completely remove file from patch?" msgstr "" msgid "Revert all file changes?" msgstr "Visszavonja az összes fájlváltoztatást?" msgid "No chunks remain" msgstr "Nem maradt több darab" msgid "file has been deleted, refresh" msgstr "fájl törölve, frissítés" msgid "file has been modified, refresh" msgstr "fájl módosítva, frissítés" msgid "Unable to merge chunks" msgstr "Nem lehet összeolvasztani a darabokat" msgid "Add or remove patches must be merged in the working directory" msgstr "" "Foltok hozzáadása vagy törlése előtt, be kell olvasztani őket a " "munkakönyvtárba" msgid "Unable to remove" msgstr "" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" "Nem lehet törölni a(z) %s fájlt,\n" "hozzáférés megtagadva" msgctxt "files" msgid "All" msgstr "Összes" msgctxt "files" msgid "None" msgstr "Egyik sem" msgid "Toggle display of text search bar" msgstr "" msgid "Diff Toolbar" msgstr "" #, python-format msgid "Chunks selected: %d / %d" msgstr "Kiválasztott darabok: %d / %d" msgid "Please wait while the file is opened ..." msgstr "Kérjük várjon, amíg megnyílik a fájl..." msgid "Source:" msgstr "Forrás:" msgid "Destination:" msgstr "Cél:" msgid "Options" msgstr "Opciók" msgid "Clone to revision:" msgstr "Klón a verzióhoz:" msgid "A revision identifier, bookmark, tag or branch name" msgstr "" msgid "Do not update the new working directory" msgstr "Ne frissítse az új munkakönyvtárat" msgid "Use pull protocol to copy metadata" msgstr "Pull protokol alkalmazása a metaadatok másolásához" msgid "Clone with minimal processing" msgstr "Klónozás minimális feldolgozással" msgid "Include patch queue" msgstr "" msgid "Use proxy server" msgstr "Proxy kiszolgáló használata" msgid "Do not verify host certificate" msgstr "" msgid "Remote command:" msgstr "Távoli parancs:" msgid "Use largefiles" msgstr "" msgid "Start revision:" msgstr "Kezdő revízió:" msgid "Select source repository" msgstr "Forrás tároló kiválasztása" msgid "Select destination repository" msgstr "Cél tároló kiválasztása" msgid "Select patch folder" msgstr "Folt könyvtár kiválasztása" #, python-format msgid "Clone - %s" msgstr "Klónozás - %s" msgid "&Clone" msgstr "&Klónozás" msgid "failed to start command\n" msgstr "nem sikerült elindítani a parancsot\n" msgid "error while running command\n" msgstr "hiba a parancs futtatása során\n" #, python-format msgid "process exited unexpectedly with code %d" msgstr "folyamat váratlanul kilépett a(z) %d kóddal" #, python-format msgid "failed to encode command: %s" msgstr "nem sikerült kódolni a parancsot: %s" #, python-format msgid "timed out while reading: %r..." msgstr "időtúllépés olvasáskor: %r..." msgid "timed out waiting for message" msgstr "időtúllépés üzenetre várakozás közben" #, python-format msgid "unexpected response on required channel %r" msgstr "" #, python-format msgid "invalid \"hello\" message: %r" msgstr "érvénytelen \"hello\" üzenet: %r" msgid "no \"runcommand\" capability" msgstr "" #, python-format msgid "corrupted command result: %r" msgstr "" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "" msgid "Terminated by user" msgstr "Felhasználó által megszakítva" #, python-format msgid "[command terminated by user %s]" msgstr "[parancs %s felhasználó által megszakítva]" #, python-format msgid "[command interrupted %s]" msgstr "" #, python-format msgid "[command returned code %d %%s]" msgstr "[a parancs a(z) %d %%s kóddal tért vissza]" #, python-format msgid "[command completed successfully %s]" msgstr "[parancs sikeresen végrehajtva %s]" msgid "Running..." msgstr "Fut..." msgid "Failed!" msgstr "Sikertelen!" msgid "Clea&r Log" msgstr "Napló &törlése" msgid "TortoiseHg Prompt" msgstr "TortoiseHG Parancssor" msgid "Show Detail" msgstr "Részletek megjelenítése" msgid "Hide Detail" msgstr "Részletek elrejtése" msgid "Confirm Exit" msgstr "Kilépés megerősítése" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" "Egy Mercurial parancs még fut.\n" "Biztosan meg akarja szakítani?" msgid "&Run" msgstr "&Futtatás" msgid "TortoiseHg Command Dialog" msgstr "" msgid "Command Error" msgstr "Parancshiba" #, python-format msgid "[Code: %d]" msgstr "[Kód: %d]" msgid "Merge" msgstr "Összefésülés" #, python-format msgid "Merge with %s" msgstr "" msgid "Patch Name Required" msgstr "" msgid "You must enter a patch name" msgstr "" msgctxt "start progress" msgid "Commit" msgstr "" msgctxt "start progress" msgid "MQ Action" msgstr "" msgctxt "start progress" msgid "Rollback" msgstr "" msgid "Commit Dialog Toolbar" msgstr "" msgid "Branch: " msgstr "Ág: " msgid "Copy message" msgstr "Üzenet másolása" msgid "Copy one of the recent commit messages" msgstr "" msgid "Show Issues" msgstr "" msgid "Please wait..." msgstr "Kis türelmet…" #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "" msgid "Issue Tracker" msgstr "" msgid "Show Issues..." msgstr "" msgid "Stop" msgstr "Leállítás" msgid "### patch name ###" msgstr "" msgid "Commit changes" msgstr "" msgid "Commit" msgstr "Eltárolás (commit)" msgid "Amend current revision" msgstr "Jelenlegi revízió módosítása" msgid "Amend" msgstr "Módosítás" msgid "Create a new patch" msgstr "Új folt létrehozása" msgid "QNew" msgstr "QNew" msgid "Refresh current patch" msgstr "Jelenlegi folt frissítése" msgid "QRefresh" msgstr "QRefresh" msgid "Confirm Branch Change" msgstr "" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "" msgid "Restart &Branch" msgstr "&Ág újraindítása" msgid "&Commit to current branch" msgstr "" msgid "Cancel" msgstr "Mégse" msgid "Confirm New Branch" msgstr "Új Ág Jóváhagyása" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "" msgid "Create &Branch" msgstr "&Ág létrehozása" msgid "Close Branch: " msgstr "Ág lezárása: " msgid "New Branch: " msgstr "Új ág: " #, python-format msgid "Selected Options: %s" msgstr "" msgid "Parent:" msgstr "Szülő:" msgid "Patch name:" msgstr "Folt neve:" #, python-format msgid "Close %s branch" msgstr "%s ág lezárása" #, python-format msgid "Rollback commit to revision %d" msgstr "" msgid "Confirm Undo" msgstr "" msgid "Discard current commit message?" msgstr "Elveti az aktuális kommit üzenetet?" msgid "Message Translation Failure" msgstr "" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" msgid "&Replace" msgstr "" msgid "Nothing Committed" msgstr "" msgid "Please enter commit message" msgstr "Kérjük adjun meg kommit üzenetet." msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" msgid "No files checked" msgstr "" msgid "No modified files checkmarked for commit" msgstr "" msgid "Confirm Add" msgstr "" msgid "Add selected untracked files?" msgstr "" msgid "Confirm Remove" msgstr "" msgid "Remove selected deleted files?" msgstr "" msgid "Nothing changed." msgstr "" msgctxt "window title" msgid "Commit" msgstr "" #, python-format msgid "%s - commit options" msgstr "" msgid "Set username:" msgstr "" msgid "Save in Repo" msgstr "" msgid "Save Global" msgstr "" msgid "Set Date:" msgstr "" msgid "Update" msgstr "" msgid "Push After Commit:" msgstr "" msgid "Auto Includes:" msgstr "" msgid "Recurse into subrepositories (--subrepos)" msgstr "" msgid "Unable to save username" msgstr "" msgid "Iniparse must be installed." msgstr "" msgid "Unable to write configuration file" msgstr "" msgid "Unable to save after commit push" msgstr "" msgid "Unable to save auto include list" msgstr "" msgid "Unable to save recurse in subrepos." msgstr "" msgid "Invalid date format" msgstr "" msgid "No username configured" msgstr "" #, python-format msgid "%s - commit" msgstr "" msgid "TortoiseHg Commit" msgstr "" msgid "Are you sure that you want to cancel the commit operation?" msgstr "" msgid "Compress changesets up to and including" msgstr "" msgid "Onto destination" msgstr "" msgid "Compress" msgstr "" #, python-format msgid "Compress - %s" msgstr "" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the compress" msgstr "" msgid "Changes have been moved, you must now commit" msgstr "" msgctxt "action button" msgid "Commit" msgstr "Commit" msgid "Compress is complete, old history untouched" msgstr "" msgid "must be specified repository" msgstr "repository megadása kötelező" msgid "must be specified 'type' in style" msgstr "'típus' megadása kötelező a stílusban" msgid "Git Commit:" msgstr "" msgid "Summary:" msgstr "Összegzés:" msgid "User:" msgstr "Felhasználó:" msgid "Date:" msgstr "Dátum:" msgid "Age:" msgstr "Kor:" msgid "Branch:" msgstr "Ág:" msgid "Close:" msgstr "" msgid "Tags:" msgstr "Címkék:" msgid "Graft:" msgstr "" msgid "Transplant:" msgstr "Átültet:" msgid "Obsolete state:" msgstr "" msgid "Perforce:" msgstr "Szükségképpen:" msgid "Subversion:" msgstr "Subversion:" msgid "Converted From:" msgstr "" msgid "Original Parent:" msgstr "" msgid "No items to display" msgstr "Nincs megjeleníthető elem" msgid "Use compact view" msgstr "Kompakt nézet használata" msgid "Patch:" msgstr "Javítás:" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "Megjelenítve %(count)d a %(total)d-ból" msgid "Select a GUI location to edit:" msgstr "" msgid "Select the toolbar or menu to change" msgstr "" msgid "Tools shown on selected location" msgstr "" msgid "Delete from list" msgstr "" msgid "Add to list" msgstr "" msgid "Add separator" msgstr "" msgid "List of all tools" msgstr "" msgid "New Tool ..." msgstr "" msgid "Edit Tool ..." msgstr "" msgid "Delete Tool" msgstr "" msgid "Type" msgstr "" msgid "Name" msgstr "" msgid "Command" msgstr "" msgid "New hook" msgstr "" msgid "Edit hook" msgstr "" msgid "Delete hook" msgstr "" msgid "Replace existing hook?" msgstr "" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" msgid "OK" msgstr "" msgid "Missing information" msgstr "" msgid "All items" msgstr "" msgid "Working directory" msgstr "" msgid "All revisions" msgstr "" msgid "All contexts" msgstr "" msgid "Fixed revisions" msgstr "" msgid "Applied patches" msgstr "" msgid "Applied patches or qparent" msgstr "" msgid "" msgstr "" msgid "Configure Custom Tool" msgstr "" msgid "Tool name" msgstr "" msgid "The tool name. It cannot contain spaces." msgstr "" #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" msgid "Tool label" msgstr "" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" msgid "Tooltip" msgstr "" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" msgid "Icon" msgstr "" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" msgid "On repowidget, show for" msgstr "" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" msgid "Show Output Log" msgstr "" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" msgid "You must set a tool name." msgstr "" msgid "The tool name cannot have any spaces in it." msgstr "" msgid "You must set a command to run." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" msgid "Configure Hook" msgstr "" msgid "Hook type" msgstr "" msgid "Select when your command will be run" msgstr "" msgid "The hook name. It cannot contain spaces." msgstr "" msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" msgid "You must set a valid hook type." msgstr "" msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "" msgid "Console" msgstr "" msgid "File &History / Annotate" msgstr "" msgid "Show the history of the selected file" msgstr "" msgid "Co&mpare File Revisions" msgstr "" msgid "Compare revisions of the selected file" msgstr "" msgid "Filter Histor&y" msgstr "" msgid "Query about changesets affecting the selected files" msgstr "" msgid "Diff &Changeset to Parent" msgstr "" msgid "Diff Changeset to Loc&al" msgstr "" msgid "&Diff to Parent" msgstr "" msgid "Diff to &Local" msgstr "" msgid "View changes to current in external diff tool" msgstr "" msgid "&View at Revision" msgstr "" msgid "View file as it appeared at this revision" msgstr "" msgid "&Save at Revision..." msgstr "" msgid "Save file as it appeared at this revision" msgstr "" msgid "Save file to" msgstr "Fájlba mentés" msgid "&Edit Local" msgstr "" msgid "&Open Local" msgstr "" msgid "E&xplore Local" msgstr "" msgid "Open parent folder of current file in the system file manager" msgstr "" msgid "&Copy Patch" msgstr "" msgid "Copy &Path" msgstr "" msgid "Copy full path of file(s) to the clipboard" msgstr "" msgid "&Revert to Revision..." msgstr "" msgid "Open S&ubrepository" msgstr "" msgid "Open the selected subrepository" msgstr "" msgid "E&xplore Folder" msgstr "" msgid "Open the selected folder in the system file manager" msgstr "" msgid "Open &Terminal" msgstr "" msgid "Open a shell terminal in the selected folder" msgstr "" msgid "Custom Tools" msgstr "" msgid "Diff &Local" msgstr "" msgid "&View Missing" msgstr "" msgid "View O&ther" msgstr "" msgid "Add &Largefiles..." msgstr "" msgid "&Forget" msgstr "" msgid "&Delete Unversioned..." msgstr "" msgid "Confirm Delete Unversioned" msgstr "" msgid "Delete the following unversioned files?" msgstr "" msgid "&Delete" msgstr "" msgid "Re&move Versioned" msgstr "" msgid "&Revert..." msgstr "" msgid "Uncommited merge - please select a parent revision" msgstr "" msgid "Revert files to local or other parent?" msgstr "" msgid "&Local" msgstr "" msgid "&Other" msgstr "" msgid "Confirm Revert" msgstr "" msgid "Revert local file changes?" msgstr "" msgid "&Revert with backup" msgstr "" msgid "&Discard changes" msgstr "" msgid "Revert the following files?" msgstr "" msgid "&Revert" msgstr "" msgid "&Copy..." msgstr "" msgid "Re&name..." msgstr "" msgid "&Ignore..." msgstr "" msgid "Edit Re&jects" msgstr "" msgid "Manually resolve rejected patch chunks" msgstr "" msgid "De&tect Renames..." msgstr "" msgid "&Mark Resolved" msgstr "" msgid "&Mark Unresolved" msgstr "" msgid "Restart Mer&ge" msgstr "" msgid "Was renamed from" msgstr "" msgid "Restart Merge &with" msgstr "" msgid "Display the file anyway" msgstr "" msgid "Diff not displayed: " msgstr "" #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid "File is binary" msgstr "" msgid "File may be binary (maximum line length exceeded)" msgstr "" msgid "File or diffs not displayed: " msgstr "" msgid " (was added)" msgstr "" #, python-format msgid " (copied from %s)" msgstr "" #, python-format msgid " (renamed from %s)" msgstr "" msgid " (is a symlink)" msgstr "" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid " (was deleted)" msgstr "" msgid " (was added, now missing)" msgstr "" msgid " (is unversioned)" msgstr "" msgid "exec mode has been set" msgstr "" msgid "exec mode has been unset" msgstr "" #, python-format msgid "changeset: %s" msgstr "" msgid "Initial revision" msgstr "" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" msgid "Subrepo created and set to initial revision." msgstr "" msgid "Subrepo initialized to revision:" msgstr "" msgid "Subrepo removed from repository." msgstr "" msgid "Previously the subrepository was at the following revision:" msgstr "" msgid "Subrepo was not changed." msgstr "" msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "" msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "" msgid "Subrepo state is:" msgstr "" msgid "Revision has changed to:" msgstr "" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "" msgid "From:" msgstr "Feladó:" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" msgid "Subrepository not found in the working directory." msgstr "" msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" msgid "Not a Mercurial subrepo, not previewable" msgstr "" #, python-format msgid "Error previewing subrepo: %s" msgstr "" msgid "Subrepo may be damaged or inaccessible." msgstr "" msgid "The subrepository is dirty." msgstr "" msgid "File Status:" msgstr "" msgid "(is a changed sub-repository)" msgstr "" msgid "(is an unchanged sub-repository)" msgstr "" msgid "(is a dirty sub-repository)" msgstr "" msgid "(is a new sub-repository)" msgstr "" msgid "(is a removed sub-repository)" msgstr "" msgid "(is a changed and dirty sub-repository)" msgstr "" msgid "(is a new and dirty sub-repository)" msgstr "" msgid "open..." msgstr "" #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "" msgid "File History Log Columns" msgstr "" msgid "Back" msgstr "" msgid "Forward" msgstr "" msgid "Diff Selected &Changesets" msgstr "" msgid "&Diff Selected File Revisions" msgstr "" msgid "Show Revision &Details" msgstr "" msgid "Too many rows selected for menu" msgstr "" msgid "File Differences Log Columns" msgstr "" msgid "Next diff" msgstr "" msgid "Previous diff" msgstr "" msgid "Unicode" msgstr "" msgid "Western Europe" msgstr "" msgid "Unified Chinese" msgstr "" msgid "Traditional Chinese" msgstr "" msgid "Korean" msgstr "" msgid "Japanese" msgstr "" msgid "Thai" msgstr "" msgid "Central and Eastern Europe" msgstr "" msgid "Cyrillic" msgstr "" msgid "Russian" msgstr "" msgid "Ukrainian" msgstr "" msgid "Greek" msgstr "" msgid "Turkish" msgstr "" msgid "Arabic" msgstr "" msgid "Hebrew" msgstr "" msgid "Vietnamese" msgstr "" msgid "Baltic" msgstr "" msgid "Southern Europe" msgstr "" msgid "Nordic" msgstr "" msgid "Celtic" msgstr "" msgid "South-Eastern Europe" msgstr "" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "" msgid "View change as unified diff output" msgstr "" msgid "View change in context of file" msgstr "" msgid "Annotate with revision numbers" msgstr "" msgid "Next Diff" msgstr "" msgid "Previous Diff" msgstr "" msgid "Open shelve tool" msgstr "" msgid "&Auto Detect" msgstr "" msgid "Show changes from first parent" msgstr "" msgid "Show changes from second parent" msgstr "" msgid "E&ncoding" msgstr "" msgid "&Search in Current File" msgstr "" msgid "Search in All &History" msgstr "" msgid "Go to Line" msgstr "" #, python-format msgid "Enter line number (1 - %d)" msgstr "" msgid "Show &Author" msgstr "" msgid "Show &Date" msgstr "" msgid "Show &Revision" msgstr "" msgid "Annotate Op&tions" msgstr "" msgid "Search Selected Text" msgstr "" msgid "In Current &File" msgstr "" msgid "In &Current Revision" msgstr "" msgid "In &Original Revision" msgstr "" msgid "In All &History" msgstr "" msgid "Go to" msgstr "" msgid "View File at" msgstr "" msgid "Diff File to" msgstr "" msgid "&Originating Revision" msgstr "" msgid "&Parent Revision" msgstr "" #, python-format msgid "&Parent Revision (%d)" msgstr "" msgid "&Mark Excluded Changes" msgstr "" msgid "(excluded from the next commit)" msgstr "" msgid "Interrupted graft operation found" msgstr "" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" msgid "Continue or abort interrupted graft operation?" msgstr "" msgid "To graft destination" msgstr "" msgid "Use my user name instead of graft committer user name" msgstr "" msgid "Use current date" msgstr "" msgid "Append graft info to log message" msgstr "" msgid "Graft" msgstr "" msgid "Abort" msgstr "Megszakít" #, python-format msgid "Graft - %s" msgstr "" msgid "Graft changeset" msgstr "" #, python-format msgid "Graft changeset #%d of %d" msgstr "" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" msgid "You may continue or start the graft" msgstr "" msgid "Graft is complete" msgstr "" msgid "Graft failed" msgstr "" msgid "Graft aborted" msgstr "" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" msgid "You may continue the graft" msgstr "" msgid "Exiting with an unfinished graft is not recommended." msgstr "" msgid "Consider aborting the graft first." msgstr "" msgid "&Exit" msgstr "" msgid "### regular expression search pattern ###" msgstr "" msgid "Regexp:" msgstr "REg. kif.:" msgid "Ignore case" msgstr "Nem nagybetűérzékeny" msgid "Search" msgstr "Keresés" msgid "Working Copy" msgstr "" msgid "All History" msgstr "" msgid "Report only the first match per file" msgstr "" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "Alábbiak másolása és átnevezése" msgid "Includes:" msgstr "Tartalma:" msgid "Excludes:" msgstr "Kizártak:" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" #, python-format msgid "\"%s\" removed from search history" msgstr "" #, python-format msgid "\"%s\" removed from path history" msgstr "" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "" #, python-format msgid "grep: %s\n" msgstr "" #, python-format msgid "%d matches found" msgstr "" msgid "No matches found" msgstr "" msgid "Searching" msgstr "" msgid "history" msgstr "" msgid "Interrupted" msgstr "" msgid "files" msgstr "" #, python-format msgid "Skipping %s, unable to read" msgstr "" msgid "Vi&ew File" msgstr "" msgid "&View Changeset" msgstr "" msgid "Annotate &File" msgstr "" msgid "File" msgstr "Fájl" msgid "Line" msgstr "Sor" msgid "Rev" msgstr "Rev" msgid "User" msgstr "Felhasználó" msgid "Match Text" msgstr "" msgid "TortoiseHg Search" msgstr "" #, python-format msgid "Detect Copies/Renames in %s" msgstr "Másolatok/Átnevezések keresése itt: %s" msgid "Unrevisioned Files" msgstr "" msgid "Refresh file list" msgstr "" #, python-format msgid "Min Similarity: %d%%" msgstr "" msgid "Only consider deleted files" msgstr "" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "" msgid "Find Renames" msgstr "Átnevezések Keresése" msgid "Find copy and/or rename sources" msgstr "" msgid "Candidate Matches" msgstr "" msgid "Accept All Matches" msgstr "" msgid "Accept Selected Matches" msgstr "" msgid "Differences from Source to Dest" msgstr "" msgid "Search already in progress" msgstr "" msgid "Cannot start a new search" msgstr "" msgid "No files to find" msgstr "" msgid "There are no files that may have been renamed" msgstr "" msgid "Multiple sources chosen" msgstr "" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" #. i18n: percent format #, python-format msgid "%d%%" msgstr "" msgid "Source" msgstr "Forrás" msgid "Dest" msgstr "Cél" msgid "% Match" msgstr "" msgid "Sending Email" msgstr "" msgid "Email" msgstr "" msgid "To:" msgstr "Címzett:" msgid "Cc:" msgstr "Másolat:" msgid "In-Reply-To:" msgstr "Eredeti üzenet a válasz üzenetben" msgid "Message identifier to reply to, for threading" msgstr "Üzenet azonosító a válaszban a szálkövetés megtartása miatt" msgid "Flag:" msgstr "" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" "Hg javítások (export parancsal generálva) kompatibilisek a legtöbb javító " "programmal. Tartalmaza a fejlécet, ami magábafoglalja a legfontosabb " "változások metaadatait." msgid "Send changesets as Hg patches" msgstr "Válzotások küldése mint HG javítása" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" "Git javítások bináris fájlokat tartalmazhatnak, teljes másolatokat és " "jogosultság változásokat, előfordulhat, hogy a fogadó nem képes feldolgoznia " "a fájlokat ha nem git-et vagy Mercurial-t használ" msgid "Use extended (git) patch format" msgstr "Kiterjestett (git) javító formátum használata" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" "Egyszerűsített Mercurial header nem tartalmazza a felhasználóinevet és a " "szülő információka. Csak akkor hasznos, ha a fogadó nem használ Mercurial-t " "és nem szereti ha a fejlécinformációk megjelenítődnek." msgid "Plain, do not prepend Hg header" msgstr "Hh fejléc nélkül" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" "A csomag tartalmazza a teljes változás listát bináris formátumban. A " "csővégén lévő felhasználók letudják tölteni azokat. Ez a legbiztonságosabb " "módja a változások küldésének másik Mercurial felhasználónak." msgid "Send single binary bundle, not patches" msgstr "Egy bináris csomag küldése, nem javítás" msgid "send patches as part of the email body" msgstr "" msgid "body" msgstr "" msgid "send patches as attachments" msgstr "javítás küldése mellékletként" msgid "attach" msgstr "csatolás" msgid "send patches as inline attachments" msgstr "javítás küldése beágyazott levélelemként" msgid "inline" msgstr "beágyazott" msgid "add diffstat output to messages" msgstr "különbözeti statistika hozzáadása az üzenetekhez" msgid "diffstat" msgstr "diffstat" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" msgid "Write patch series (bundle) description" msgstr "" msgid "Subject:" msgstr "Tárgy:" msgid "Changesets" msgstr "" msgid "Select &All" msgstr "" msgid "Select &None" msgstr "" msgid "Edit" msgstr "" msgid "Preview" msgstr "" msgid "&Settings" msgstr "" msgid "Send &Email" msgstr "" msgid "&Close" msgstr "&Bezár" #, python-format msgid "Ignore filter - %s" msgstr "Figyelmen kívülhagyott szűrő - %s" msgid "Glob" msgstr "" msgid "Regexp" msgstr "" msgid "Add" msgstr "Hozzáadás" msgid "Edit File" msgstr "Fájl szerkesztése" msgid "Ignore Filter" msgstr "" msgid "Untracked Files" msgstr "" msgid "Backspace or Del to remove row(s)" msgstr "" msgid "Add ignore filter..." msgstr "" msgid "selected files" msgstr "" msgid "Ignore " msgstr "" msgid "Invalid glob expression" msgstr "Hibás glob kifejezés" msgid "Invalid regexp expression" msgstr "Hibás reguláris kifejezés" msgid "Unable to read repository status" msgstr "" msgid "New file created" msgstr "" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" msgid "Unable to write .hgignore file" msgstr "" msgid "Copy working directory files from skeleton" msgstr "" msgid "Create special files (.hgignore, ...)" msgstr "" msgid "Make repo compatible with Mercurial <1.7" msgstr "" msgid "New Repository" msgstr "" msgid "&Create" msgstr "" msgid "Unable to create a config file" msgstr "" msgid "Insufficient access rights." msgstr "" msgid "Show Log" msgstr "" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" msgid "Add as &Largefiles" msgstr "" msgid "Add as &Normal Files" msgstr "" msgid "Invalid Patterns" msgstr "" msgid "Failed to process largefiles.patterns." msgstr "" msgid "Word docs (*.doc *.docx)" msgstr "" msgid "PDF docs (*.pdf)" msgstr "" msgid "Excel files (*.xls *.xlsx)" msgstr "" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "" msgid "Refresh lock information" msgstr "" msgid "Lock a file not described in .hglocks" msgstr "" msgid "Stop current operation" msgstr "" msgid "Locked And Lockable Files:" msgstr "" msgid "Path" msgstr "" msgid "Locking User" msgstr "" msgid "Purpose" msgstr "" msgid "Simplelock extension not enabled" msgstr "" msgid "Please enable and configure simplelock" msgstr "" msgid "Open a (nonmergable) file you wish to be locked" msgstr "" msgid "File was not within current repository" msgstr "" #, python-format msgid "Locking %s" msgstr "" #, python-format msgid "Unlocking %s" msgstr "" msgid "Refreshing locks..." msgstr "" #, python-format msgid "Lock of %s successful" msgstr "" #, python-format msgid "Lock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s successful" msgstr "" msgid "Ready, double click to lock or unlock" msgstr "" msgid "Ready" msgstr "" msgid "You can only release your own locks" msgstr "" msgid "Find revisions matching fields of:" msgstr "" msgid "Revision to Match:" msgstr "" msgid "Fields to match:" msgstr "" msgid "Summary (first description line)" msgstr "" msgid "Description" msgstr "" msgid "Author" msgstr "" msgid "Date" msgstr "Dátum" msgid "Files" msgstr "Fájlok" msgid "Diff contents" msgstr "" msgid "Subrepo states" msgstr "" msgid "Branch" msgstr "" msgid "Phase" msgstr "" msgid "&Match" msgstr "" #, python-format msgid "Find matches - %s" msgstr "" msgid "Revisions to Match:" msgstr "" #, python-format msgid "Match any of %d revisions" msgstr "" msgid "Unknown revision!" msgstr "" msgid "Parse Error!" msgstr "" #, python-format msgid "Merge - %s" msgstr "" msgid "Do you want to exit?" msgstr "" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" msgid "Prepare to merge" msgstr "" msgid "Verify merge targets and ensure your working directory is clean." msgstr "" msgid "Not a head revision!" msgstr "" msgid "Merge from (other revision)" msgstr "" msgid "Merge to (working directory)" msgstr "" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Or use:" msgstr "" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "" msgid "Discard all changes from the other revision" msgstr "" msgid "&Discard" msgstr "" msgid "Confirm Discard Changes" msgstr "" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" msgctxt "working dir state" msgid "Clean" msgstr "" msgid "Merging..." msgstr "" msgid "Automatically advance to next page when merge is complete." msgstr "" #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" msgid "" "No merge conflicts, ready to commit or review" msgstr "" msgid "Commit merge results" msgstr "" msgid "Commit Options" msgstr "" msgid "Commit Now" msgstr "" msgid "Commit Later" msgstr "" msgid "Merge changeset" msgstr "" msgid "Syntax Highlighting" msgstr "" msgid "Paste &Filenames" msgstr "" msgid "App&ly Format" msgstr "" msgid "C&onfigure Format" msgstr "" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "" msgid "&Commit to Queue..." msgstr "" msgid "Create &New Queue..." msgstr "" msgid "&Rename Active Queue..." msgstr "" msgid "&Delete Queue..." msgstr "" msgid "&Purge Queue..." msgstr "" msgid "Create Patch Queue" msgstr "" msgid "New patch queue name" msgstr "" msgid "Create" msgstr "Létrehozás" msgid "Rename Patch Queue" msgstr "" #, python-format msgid "Rename patch queue '%s' to" msgstr "" msgid "Rename" msgstr "Átnevezés" msgid "Delete Patch Queue" msgstr "" msgid "Delete reference to" msgstr "" msgid "Delete" msgstr "" msgid "Purge Patch Queue" msgstr "" msgid "Remove patch directory of" msgstr "" msgid "Purge" msgstr "" msgid "Rename Patch" msgstr "" #, python-format msgid "Rename patch %s to:" msgstr "" msgid "no guards" msgstr "" msgid "Patch Queue" msgstr "Javítási sor" msgctxt "MQ QPush" msgid "Push" msgstr "" msgid "Apply one patch" msgstr "" msgctxt "MQ QPush" msgid "Push all" msgstr "" msgid "Apply all patches" msgstr "" msgid "Pop" msgstr "" msgid "Unapply one patch" msgstr "" msgid "Pop all" msgstr "" msgid "Unapply all patches" msgstr "" msgid "Go &to Patch" msgstr "" msgid "&Apply Only This Patch" msgstr "" msgid "Apply only the selected patch" msgstr "" msgid "&Finish Patch" msgstr "" msgid "Move applied patches into repository history" msgstr "" msgid "&Delete Patches..." msgstr "" msgid "Delete selected patches" msgstr "" msgid "Re&name Patch..." msgstr "" msgid "Set &Guards..." msgstr "" msgid "Configure guards for selected patch" msgstr "" msgid "Patch Queue Actions Toolbar" msgstr "" msgid "Configure guards" msgstr "" #, python-format msgid "Input new guards for %s:" msgstr "" msgid "Confirm patch queue switch" msgstr "" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "" #, python-format msgid "Guards: %d/%d" msgstr "" msgid "MQ options" msgstr "" msgid "Force push or pop (--force)" msgstr "" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "" msgid "Submitting p4 changelist..." msgstr "" msgid "Reverting p4 changelist..." msgstr "" msgid "Patch Branch Toolbar" msgstr "" msgid "Merge all pending dependencies" msgstr "" msgid "Backout current patch branch" msgstr "" msgid "Backport part of a changeset to a dependency" msgstr "" msgid "Start a new patch branch" msgstr "" msgid "Edit patch dependency graph" msgstr "" msgid "will be closed" msgstr "" #, python-format msgid "needs merge of %i heads\n" msgstr "" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "" #, python-format msgid "needs merge with %s\n" msgstr "" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "" msgid "&Goto (update workdir)" msgstr "" msgid "&Merge" msgstr "" msgid "No patch branch selected" msgstr "" msgid "No editor found" msgstr "" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" msgid "Graph" msgstr "" msgid "Status" msgstr "" msgid "Title" msgstr "" msgid "Message" msgstr "" msgid "New Patch Branch" msgstr "" msgid "Patch message:" msgstr "" msgid "Patch date:" msgstr "" msgid "Patch user:" msgstr "" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" msgid "Review Board" msgstr "" msgid "Password:" msgstr "" msgid "Error" msgstr "Hiba" #, python-format msgid "Review draft posted to %s\n" msgstr "" #, python-format msgid "Review published to %s\n" msgstr "" msgid "Success" msgstr "" msgid "Repository ID:" msgstr "" msgid "Post Review" msgstr "" msgid "Review ID:" msgstr "" msgid "Update the fields of this existing request" msgstr "" msgid "Update Review" msgstr "" msgid "Create diff with all outgoing changes" msgstr "" msgid "Create diff with all changes on this branch" msgstr "" msgid "Publish request immediately" msgstr "" msgid "%p%" msgstr "" msgid "Connecting to Review Board..." msgstr "" msgid "Target:" msgstr "" msgid "Do not modify working copy (-k/--keep)" msgstr "" #, python-format msgid "Prune - %s" msgstr "" msgid "&Prune" msgstr "" msgid "No unknown files found" msgstr "" msgid "No ignored files found" msgstr "" msgid "No trash files found" msgstr "" msgid "Delete empty folders" msgstr "" msgid "Preserve files beginning with .hg" msgstr "" #, python-format msgid "%s - purge" msgstr "" msgid "Checking" msgstr "" msgid "Ready to purge." msgstr "" #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "" msgstr[1] "" msgid "Confirm file deletions" msgstr "" msgid "Are you sure you want to delete these files and/or folders?" msgstr "" msgid "Deletion failures" msgstr "" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "" msgstr[1] "" msgid "Deleting trash folder..." msgstr "" #, python-format msgid "Deleted %d files" msgstr "" #, python-format msgid "Deleted %d files and %d folders" msgstr "" msgid "Delete Patches" msgstr "" msgid "Remove patches from queue?" msgstr "" msgid "Keep patch files" msgstr "" #, python-format msgid "Patch fold - %s" msgstr "" msgid "New patch message:" msgstr "" msgid "Patches to fold" msgstr "" msgid "&Undo" msgstr "" msgid "&Redo" msgstr "" msgid "Cu&t" msgstr "" msgid "&Copy" msgstr "" msgid "&Paste" msgstr "" msgid "&Editor Options" msgstr "" msgid "&Wrap" msgstr "" msgctxt "wrap mode" msgid "&None" msgstr "" msgid "&Word" msgstr "" msgid "&Character" msgstr "" msgid "White&space" msgstr "" msgid "&Visible" msgstr "" msgid "&Invisible" msgstr "" msgid "&AfterIndent" msgstr "" msgid "&TAB Inserts" msgstr "" msgid "&Auto" msgstr "" msgid "&TAB" msgstr "" msgid "&Spaces" msgstr "" msgid "EOL &Visibility" msgstr "" msgid "EOL &Mode" msgstr "" msgid "&Windows" msgstr "" msgid "&Unix" msgstr "" msgid "&Mac" msgstr "" msgid "&Auto-Complete" msgstr "" msgid "### regular expression ###" msgstr "" msgid "Regular expression search pattern" msgstr "Reguláris kif. kereső mintája" msgid "Wrap search" msgstr "" msgid "Prev" msgstr "" msgid "Next" msgstr "" msgid "Unable to read file" msgstr "" msgid "Could not open the specified file for reading." msgstr "" msgid "This appears to be a binary file." msgstr "" msgid "An error occurred while reading the file." msgstr "" msgid "Text Translation Failure" msgstr "" msgid "Could not translate the file content from native encoding." msgstr "" msgid "Several characters would be lost." msgstr "" msgid "Unable to write file" msgstr "" msgid "Could not translate the file content to native encoding." msgstr "" msgid "Could not open the specified file for writing." msgstr "" msgid "An error occurred while writing the file." msgstr "" msgid "Try refreshing your repository." msgstr "" #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
                                                    Please edit your config" msgstr "" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
                                                    Please fix your config" msgstr "" #, python-format msgid "Operation aborted:

                                                    %(arg0)s." msgstr "" msgid "Repository is locked" msgstr "" msgid "hint:" msgstr "" msgid "Repository Error" msgstr "" msgid "No visual editor configured" msgstr "Visuális szerkesztő nincs konfigurálva" msgid "Please configure a visual editor." msgstr "Kérjük konfigurálja a vizuális szerkesztőt" msgid "Editor launch failure" msgstr "" msgid "Failed to open path in terminal" msgstr "" #, python-format msgid "\"%s\" is not a valid directory" msgstr "" #, python-format msgid "Invalid configuration: %s" msgstr "" msgid "Unable to start the following command:" msgstr "" msgid "No shell configured" msgstr "" msgid "A terminal shell must be configured" msgstr "" msgid "Please enter a username" msgstr "" msgid "You must identify yourself to Mercurial" msgstr "" msgid "Unable to translate input to local encoding." msgstr "" msgid "Checkmark files to add" msgstr "" msgid "Checkmark files to forget" msgstr "" msgid "Forget" msgstr "" msgid "Checkmark files to revert" msgstr "" msgid "Revert" msgstr "" msgid "Checkmark files to remove" msgstr "" msgid "Remove" msgstr "Eltávolítás" #, python-format msgid "%s - hg %s" msgstr "" msgid "Do not save backup files (*.orig)" msgstr "" msgid "Force removal of modified files (--force)" msgstr "" msgid "Add &Largefiles" msgstr "" msgid "No files selected" msgstr "" msgid "No operation to perform" msgstr "" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" msgid "Remove &Unmodified Files" msgstr "" msgid "Remove &All Selected Files" msgstr "" msgid "Rebase changeset and descendants" msgstr "" msgid "To rebase destination" msgstr "" msgid "Swap source and destination" msgstr "" msgid "Keep original changesets (--keep)" msgstr "" msgid "Keep original branch names (--keepbranches)" msgstr "" msgid "Collapse the rebased changesets (--collapse)" msgstr "" msgid "Rebase entire source branch (-b/--base)" msgstr "" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "" msgid "Rebase" msgstr "" #, python-format msgid "Rebase - %s" msgstr "" msgid "" "Before rebase, you must
                                                    commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the rebase" msgstr "" msgid "Rebase is complete" msgstr "" msgid "Rebase failed" msgstr "" msgid "Rebase aborted" msgstr "" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" msgid "Exiting with an unfinished rebase is not recommended." msgstr "" msgid "Consider aborting the rebase first." msgstr "" #, python-format msgid "Merge rejected patch chunks into %s" msgstr "" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "" msgid "Mark this chunk as unresolved" msgstr "" msgid "Reload File" msgstr "" msgid "Are you sure you want to reload this file?" msgstr "" msgid "All unsaved changes will be lost." msgstr "" msgid "Warning" msgstr "Figyelem" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" msgid "Copy source -> destination" msgstr "" msgid "Copy Error" msgstr "" msgid "Rename Error" msgstr "" msgid "Select Source File" msgstr "" msgid "Select Source Folder" msgstr "Válasszon forrás könyvtárt" msgid "Source does not exist." msgstr "" msgid "The source must be within the repository tree." msgstr "" msgid "The destination must be within the repository tree." msgstr "" msgid "Destination file already exists." msgstr "" msgid "Are you sure you want to overwrite it ?" msgstr "" #, python-format msgid "Copy - %s" msgstr "" #, python-format msgid "Rename - %s" msgstr "" msgid "Show all" msgstr "Összes megjelenítése" msgid "### revision set query ###" msgstr "" msgid "Clear current query and query text" msgstr "" msgid "Trigger revision set query" msgstr "" msgid "Open advanced query editor" msgstr "" msgid "Delete selected query from history" msgstr "" msgid "filter" msgstr "" msgid "Toggle filtering of non-matched changesets" msgstr "" msgid "Show/Hide hidden changesets" msgstr "" msgid "Toggle graft relations visibility" msgstr "" msgid "Keyword Search" msgstr "" msgid "Revision Set" msgstr "" msgid "(unsaved)" msgstr "" msgid "Display graph the named branch only" msgstr "" msgid "Display only active branches" msgstr "" msgid "Display closed branches" msgstr "" msgid "Include all ancestors" msgstr "" msgctxt "column header" msgid "Graph" msgstr "" msgctxt "column header" msgid "Rev" msgstr "" msgctxt "column header" msgid "Branch" msgstr "" msgctxt "column header" msgid "Description" msgstr "" msgctxt "column header" msgid "Author" msgstr "" msgctxt "column header" msgid "Tags" msgstr "" msgctxt "column header" msgid "Latest tags" msgstr "" msgctxt "column header" msgid "Node" msgstr "" msgctxt "column header" msgid "Git Commit" msgstr "" msgctxt "column header" msgid "Age" msgstr "" msgctxt "column header" msgid "Local Time" msgstr "" msgctxt "column header" msgid "UTC Time" msgstr "" msgctxt "column header" msgid "Changes" msgstr "" msgctxt "column header" msgid "Converted From" msgstr "" msgctxt "column header" msgid "Phase" msgstr "" msgctxt "column header" msgid "Filename" msgstr "" msgid "Searching..." msgstr "" #, python-format msgid "filling (%d)" msgstr "" msgid "Mercurial User" msgstr "" msgid "Repository Registry" msgstr "" msgid "Show &Paths" msgstr "" msgid "Show S&hort Paths" msgstr "" msgid "&Scan Repositories at Startup" msgstr "" msgid "Scan &Remote Repositories" msgstr "" msgid "&Refresh Repository List" msgstr "" msgid "Refresh the Repository Registry list" msgstr "" msgid "&Open" msgstr "" msgid "Open the repository in a new tab" msgstr "" msgid "&Open All" msgstr "" msgid "Open all repositories in new tabs" msgstr "" msgid "New &Group" msgstr "" msgid "Create a new group" msgstr "" msgid "Rename the entry" msgstr "" msgid "Settin&gs" msgstr "" msgid "View the repository's settings" msgstr "" msgid "Re&move from Registry" msgstr "" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" msgid "Clon&e..." msgstr "" msgid "Clone Repository" msgstr "" msgid "E&xplore" msgstr "" msgid "Open the repository in a file browser" msgstr "" msgid "&Terminal" msgstr "" msgid "Open a shell terminal in the repository root" msgstr "" msgid "&Add Repository..." msgstr "" msgid "Add a repository to this group" msgstr "" msgid "A&dd Subrepository..." msgstr "" msgid "Convert an existing repository into a subrepository" msgstr "" msgid "Remo&ve Subrepository..." msgstr "" msgid "Remove this subrepository from the current revision" msgstr "" msgid "Copy the root path of the repository to the clipboard" msgstr "" msgid "Sort by &Name" msgstr "" msgid "Sort the group by short name" msgstr "" msgid "Sort by &Path" msgstr "" msgid "Sort the group by full path" msgstr "" msgid "&Sort by .hgsub" msgstr "" msgid "Order the subrepos as in .hgsub" msgstr "" msgid "Select repository directory to add" msgstr "" msgid "Select an existing repository to add as a subrepo" msgstr "" msgid "Cannot add subrepository" msgstr "" #, python-format msgid "%s is not a valid repository" msgstr "" #, python-format msgid "\"%s\" is not a folder" msgstr "" msgid "A repository cannot be added as a subrepo of itself" msgstr "" #, python-format msgid "" "The selected folder:

                                                    %s

                                                    is not inside the target repository." "

                                                    This may be allowed but is greatly discouraged.
                                                    If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" msgid "Cannot open repository" msgstr "" #, python-format msgid "The selected repository:

                                                    %s

                                                    cannot be open!" msgstr "" msgid "Subrepository already exists" msgstr "" #, python-format msgid "" "The selected repository:

                                                    %s

                                                    is already a subrepository of:" "

                                                    %s

                                                    as: \"%s\"" msgstr "" msgid "Failed to add subrepository" msgstr "" #, python-format msgid "Cannot open the .hgsub file in:

                                                    %s" msgstr "" msgid "Failed to add repository" msgstr "" #, python-format msgid "The .hgsub file already contains the line:

                                                    %s" msgstr "" msgid "Subrepo added to .hgsub file" msgstr "" #, python-format msgid "" "The selected subrepo:

                                                    %s

                                                    has been added to the .hgsub " "file of the repository:

                                                    %s

                                                    Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" #, python-format msgid "Cannot update the .hgsub file in:

                                                    %s" msgstr "" msgid "Could not open .hgsub file" msgstr "" msgid "Cannot read the .hgsub file.

                                                    Subrepository removal failed." msgstr "" msgid "Subrepository not found" msgstr "" msgid "" "The selected subrepository was not found on the .hgsub file.

                                                    Perhaps it " "has already been removed?" msgstr "" msgid "&Yes" msgstr "&Igen" msgid "&No" msgstr "&Nem" msgid "Remove the selected repository?" msgstr "" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" msgid "Subrepository removed from .hgsub" msgstr "" msgid "" "The selected subrepository has been removed from the .hgsub file.

                                                    Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" msgid "Could not update .hgsub file" msgstr "" msgid "Cannot update the .hgsub file.

                                                    Subrepository removal failed." msgstr "" #, python-format msgid "Unsupported repository type (%s)" msgstr "" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "" msgid "New Group" msgstr "" msgid "Confirm Delete" msgstr "" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "" msgid "Could not get subrepository list" msgstr "" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

                                                    %s" msgstr "" msgid "Could not open some subrepositories" msgstr "" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

                                                    %s

                                                    The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

                                                    %s" msgstr "" msgid "Updating repository registry" msgstr "" #, python-format msgid "Loading repository %s" msgstr "" msgid "Repository Registry updated" msgstr "" msgid "Close tab" msgstr "" msgid "Close other tabs" msgstr "" msgid "Undo close tab" msgstr "" msgid "Reopen last closed tab" msgstr "" msgid "Undo close other tabs" msgstr "" msgid "Reopen last closed tab group" msgstr "" msgid "Failed to open repository" msgstr "" msgid "&Sort" msgstr "" #, python-format msgid "Local Repository %s" msgstr "" #, python-format msgid "" "An exception happened while loading the subrepos of:

                                                    \"%s\"

                                                    " msgstr "" #, python-format msgid "The exception error message was:

                                                    %s

                                                    " msgstr "" msgid "Click OK to continue or Abort to exit." msgstr "" msgid "Error loading subrepos" msgstr "" msgid "Unable to update repository name" msgstr "" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "" msgid "default" msgstr "" msgid "C&hoose Log Columns..." msgstr "" msgid "&Resize Columns" msgstr "" #, python-format msgid "Goto ancestor of %s and %s" msgstr "" #, python-format msgid "Can't find revision '%s'" msgstr "" msgid "Drag to change order" msgstr "" msgid "Workbench Log Columns" msgstr "" msgctxt "tab tooltip" msgid "Revision details" msgstr "" msgctxt "tab tooltip" msgid "Commit" msgstr "" msgctxt "tab tooltip" msgid "Search" msgstr "" msgctxt "tab tooltip" msgid "Console log" msgstr "" msgctxt "tab tooltip" msgid "Synchronize" msgstr "" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "" #, python-format msgid "%s " msgstr "" #, python-format msgid "Found %d incoming changesets" msgstr "" msgid "Pull" msgstr "Lehúz" msgid "Pull incoming changesets into your repository" msgstr "" msgid "Reject incoming changesets" msgstr "" #, python-format msgid "Push current branch (%s)" msgstr "" #, python-format msgid "Push up to current revision (#%d)" msgstr "" #, python-format msgid "Push up to revision #%d" msgstr "" msgid "Push all" msgstr "" msgid "no outgoing changesets" msgstr "" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets" msgstr "" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "" msgid "Nothing to push" msgstr "" msgid "No revision found" msgstr "" #, python-format msgid "%s - verify repository" msgstr "" #, python-format msgid "%s - recover repository" msgstr "" msgid "No transaction available" msgstr "" msgid "There is no rollback transaction available" msgstr "" msgid "Undo last commit?" msgstr "" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "" msgid "Undo last transaction?" msgstr "" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "" msgid "Unable to determine working copy revision\n" msgstr "" msgid "Remove current working revision?" msgstr "" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" msgid "Tab cannot exit" msgstr "" msgid "Pus&h" msgstr "" msgid "Push to &Here" msgstr "" msgid "Push Selected &Branch" msgstr "" msgid "Push &All" msgstr "" msgid "&Update..." msgstr "" msgid "Bro&wse at Revision" msgstr "" msgid "&Merge with Local..." msgstr "" msgid "&Tag..." msgstr "" msgid "Boo&kmark..." msgstr "" msgid "Top&ic..." msgstr "" msgid "Sig&n..." msgstr "" msgid "&Backout..." msgstr "" msgid "Revert &All Files..." msgstr "" msgid "Copy &Hash" msgstr "" msgid "E&xport" msgstr "" msgid "E&xport Patch..." msgstr "" msgid "&Email Patch..." msgstr "" msgid "&Archive..." msgstr "" msgid "&Bundle Rev and Descendants..." msgstr "" msgid "Change &Phase to" msgstr "" msgid "&Graft to Local..." msgstr "" msgid "Modi&fy History" msgstr "" msgid "&Unapply Patch" msgstr "" msgid "Import to &MQ" msgstr "" msgid "MQ &Options" msgstr "" msgid "&Rebase..." msgstr "" msgid "&Prune..." msgstr "" msgid "&Strip..." msgstr "" msgid "Post to Re&view Board..." msgstr "" msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "" msgid "Write diff file" msgstr "" msgid "Unable to write diff file" msgstr "" msgid "Unable to compress history" msgstr "" msgid "Selected changeset pair not related" msgstr "" msgid "Visual Diff..." msgstr "" msgid "Export Diff..." msgstr "" msgid "Export Selected..." msgstr "" msgid "Email Selected..." msgstr "" msgid "Copy Selected as Patch" msgstr "" msgid "Archive DAG Range..." msgstr "" msgid "Export DAG Range..." msgstr "" msgid "Email DAG Range..." msgstr "" msgid "Bundle DAG Range..." msgstr "" msgid "Bisect - Good, Bad..." msgstr "" msgid "Bisect - Bad, Good..." msgstr "" msgid "Compress History..." msgstr "" msgid "Rebase..." msgstr "" msgid "Goto common ancestor" msgstr "" msgid "Graft Selected to local..." msgstr "" msgid "&Prune Selected..." msgstr "" msgid "Post Selected to Review Board..." msgstr "" msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "" msgid "Apply onto original parent" msgstr "" msgid "Apply only this patch" msgstr "" msgid "Fold patches..." msgstr "" msgid "Delete patches..." msgstr "" msgid "Rename patch..." msgstr "" msgid "Pull to here..." msgstr "" msgid "Visual diff..." msgstr "" msgid "Export patch" msgstr "" msgid "Patch Files (*.patch)" msgstr "" msgid "Cannot export revision" msgstr "" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" msgid "There is already an existing folder with that same name." msgstr "" msgid "Replace" msgstr "" msgid "Append" msgstr "" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" msgid "What do you want to do?\n" msgstr "" msgid "Replace the existing patch files.\n" msgstr "" msgid "Append the changes to the existing patch files.\n" msgstr "" msgid "Abort the export operation.\n" msgstr "" msgid "Patch files already exist" msgstr "" msgid "Patch exported" msgstr "" #, python-format msgid "" "Revision #%d (%s) was exported to:

                                                    %s%s%s" msgstr "" msgid "Patches exported" msgstr "" #, python-format msgid "%d patches were exported to:

                                                    %s" msgstr "" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

                                                    Are you sure you want to use revert?

                                                    (use " "update to checkout another revision)" msgstr "" msgid "Filter b&y" msgstr "" msgid "&Ancestors and Descendants" msgstr "" msgid "A&uthor" msgstr "" msgid "&Branch" msgstr "" msgid "&More Options..." msgstr "" msgid "Unable to merge" msgstr "" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "" msgid "Unable to backout" msgstr "" msgid "Write bundle" msgstr "" msgid "Backwards phase change requested" msgstr "" msgid "Do you really want to make this revision secret?" msgstr "" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" msgid "&Make secret" msgstr "" msgid "&Cancel" msgstr "&Mégsem" msgid "Do you really want to force a backwards phase transition?" msgstr "" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" msgid "&Force" msgstr "" msgid "Cannot import selected revision" msgstr "" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" msgid "Invalid command" msgstr "" msgid "The selected command is empty" msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" msgid "Failed to execute custom TortoiseHg command" msgstr "" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "" msgid "Failed to execute custom command" msgstr "" #, python-format msgid "The command \"%s\" could not be executed." msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" msgid "&Edit Toolbar" msgstr "" msgid "&Refresh" msgstr "" msgid "&Filter Toolbar" msgstr "" #, python-format msgid "TortoiseHg: %s" msgstr "" msgid "S&tatus Bar" msgstr "" #, python-format msgid "Resolve Conflicts - %s" msgstr "" msgid "Local revision information" msgstr "" msgid "Other revision information" msgstr "" msgid "Unresolved conflicts" msgstr "" msgid "Mercurial Re&solve" msgstr "" msgid "Attempt automatic (trivial) merge" msgstr "" msgid "Tool &Resolve" msgstr "" msgid "Merge using selected merge tool" msgstr "" msgid "&Take Local" msgstr "" msgid "Accept the local file version (yours)" msgstr "" msgid "Take &Other" msgstr "" msgid "Accept the other file version (theirs)" msgstr "" msgid "&Mark as Resolved" msgstr "" msgid "Mark this file as resolved" msgstr "" msgid "Diff &Local to Ancestor" msgstr "" msgid "&Diff Other to Ancestor" msgstr "" msgid "Resolved conflicts" msgstr "" msgid "&Edit File" msgstr "" msgid "Edit resolved file" msgstr "" msgid "3-&Way Diff" msgstr "" msgid "Visual three-way diff" msgstr "" msgid "Visual diff between resolved file and first parent" msgstr "" msgid "&Diff to Other" msgstr "" msgid "Visual diff between resolved file and second parent" msgstr "" msgid "Mark as &Unresolved" msgstr "" msgid "Mark this file as unresolved" msgstr "" msgid "Detected merge/diff tools:" msgstr "" msgid "Command output" msgstr "" msgid "Unable to show subrepository files" msgstr "" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" msgid "There are merge conflicts to be resolved" msgstr "" msgid "All conflicts are resolved." msgstr "" msgid "There are no conflicting file merges." msgstr "" msgid "Exit without finishing resolve?" msgstr "" msgid "Unresolved conflicts remain. Are you sure?" msgstr "" msgid "E&xit" msgstr "" msgid "Ext" msgstr "" msgid "Repository" msgstr "" msgid "" msgstr "" msgid "File List Toolbar" msgstr "" msgid "Ma&nifest Mode" msgstr "" msgid "Show all version-controlled files in tree view" msgstr "" msgid "&Flat List" msgstr "" msgid "### filter text ###" msgstr "" msgid "Changed by &This Commit" msgstr "" msgid "Show files changed by this commit" msgstr "" msgid "Compare to &1st Parent" msgstr "" msgid "Compare to &2nd Parent" msgstr "" msgid "Toggle parent to be used as the base revision" msgstr "" msgid "List Optio&ns" msgstr "" #, python-format msgid "%s - Revision Details (%s)" msgstr "" #, python-format msgid "Revert - %s" msgstr "" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "" msgid "Revert all files to this revision" msgstr "" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "" msgid "null revision (i.e. remove file(s))" msgstr "" msgid "Changeset:" msgstr "Változás:" msgid "Child:" msgstr "Gyerek:" msgid "Predecessors:" msgstr "" msgid "Successors:" msgstr "" msgid "Head is closed!" msgstr "" msgid "Changesets where username contains string." msgstr "" msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" msgid "Like \"keyword(string)\" but accepts a regex." msgstr "" msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" msgid "The named bookmark or all bookmarks." msgstr "" msgid "The named tag or all tags." msgstr "" msgid "Changeset is tagged." msgstr "" msgid "Changeset is a named branch head." msgstr "" msgid "Changeset is a merge changeset." msgstr "" msgid "Changeset is closed." msgstr "" msgid "" "Changesets within the interval, see help dates" msgstr "" msgid "Greatest common ancestor of the two changesets." msgstr "" msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" msgid "Changesets which modify files matched by pattern." msgstr "" msgid "Changesets which add files matched by pattern." msgstr "" msgid "Changesets which remove files matched by pattern." msgstr "" msgid "Changesets containing files matched by pattern." msgstr "" msgid "All changesets belonging to the branches of changesets in set." msgstr "" msgid "Members of a set with no children in set." msgstr "" msgid "Changesets which are descendants of changesets in set." msgstr "" msgid "Changesets that are ancestors of a changeset in set." msgstr "" msgid "Child changesets of changesets in set." msgstr "" msgid "The set of all parents for all changesets in set." msgstr "" msgid "First parent for all changesets in set, or the working directory." msgstr "" msgid "Second parent for all changesets in set, or the working directory." msgstr "" msgid "Changesets with no parent changeset in set." msgstr "" msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" msgid "Changeset with lowest revision number in set." msgstr "" msgid "Changeset with highest revision number in set." msgstr "" msgid "First n members of a set." msgstr "" msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "" msgid "All changesets, the same as 0:tip." msgstr "" msgid "Revision Set Query" msgstr "" msgid "all revisions converted from subversion" msgstr "" msgid "changeset which represents converted svn revision" msgstr "" msgid "Common sets" msgstr "" msgid "File pattern sets" msgstr "" msgid "Set Ancestry" msgstr "" msgid "Set Logic" msgstr "" msgid "" "help " "revsets" msgstr "" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" "\n" "Billentyűzet bevitel megszakít, leállít.\n" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "fájl nem olvasható \"%s\". Figyelmen kívül hagyva.\n" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" #, python-format msgid "thg: unknown command '%s'\n" msgstr "" #, python-format msgid "thg %s: %s\n" msgstr "" #, python-format msgid "thg: %s\n" msgstr "" #, python-format msgid "abort: %s!\n" msgstr "megszakít: %s!\n" #, python-format msgid "abort: %s\n" msgstr "" #, python-format msgid "(%s)\n" msgstr "" msgid "option --config may not be abbreviated!" msgstr "" msgid "invalid arguments" msgstr "hibás argomentum" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "nem felismerhető nyomkövetési formátúm '%s' - Figyelmen kívül hagyva\n" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" "lsprof nem elérhető - telepíthető a http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/ címről" msgid "repository root directory or symbolic path name" msgstr "a repository gyökér könyvtára vagy a szimbolikus elérési útvonal neve" msgid "enable additional output" msgstr "kiegészítő kimenet engedélyezése" msgid "suppress output" msgstr "kimenet elrejtése" msgid "display help and exit" msgstr "súgó mutatása és kilépés" msgid "set/override config option (use 'section.name=value')" msgstr "" msgid "enable debugging output" msgstr "" msgid "start debugger" msgstr "debugger indítása" msgid "print command execution profile" msgstr "nyomtatási parancs végrehajtási profílja" msgid "do not fork GUI process" msgstr "" msgid "always fork GUI process" msgstr "" msgid "read file list from file" msgstr "fájl lista olvasása fájlból" msgid "read file list from file encoding utf-8" msgstr "" msgid "thg about" msgstr "" msgid "thg add [FILE]..." msgstr "" msgid "revision to annotate" msgstr "" msgid "open to line" msgstr "" msgid "initial search pattern" msgstr "" msgid "thg annotate" msgstr "" #, python-format msgid "invalid line number: %s" msgstr "" msgid "revision to archive" msgstr "" msgid "thg archive" msgstr "" msgid "merge with old dirstate parent after backout" msgstr "" msgid "parent to choose when backing out merge" msgstr "" msgid "revision to backout" msgstr "" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "" msgid "thg bisect" msgstr "" msgid "revision" msgstr "" msgid "thg bookmarks [-r REV] [NAME]" msgstr "" msgid "only one new bookmark name allowed" msgstr "" msgid "the clone will include an empty working copy (only a repository)" msgstr "" msgid "revision, tag or branch to check out" msgstr "" msgid "include the specified changeset" msgstr "" msgid "clone only the specified branch" msgstr "" msgid "use pull protocol to copy metadata" msgstr "" msgid "use uncompressed transfer (fast over LAN)" msgstr "" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "" msgid "record user as committer" msgstr "felhasználó felvétele mint kommitáló" msgid "record datecode as commit date" msgstr "dátum kd használata mint jóváhagyási dátum" msgid "thg commit [OPTIONS] [FILE]..." msgstr "" msgid "thg debugblockmatcher" msgstr "" msgid "thg debugbugreport [TEXT]" msgstr "" msgid "thg debugconsole" msgstr "" msgid "thg debuglighthg" msgstr "" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "" msgid "no command specified" msgstr "" msgid "thg drag_copy SOURCE... DEST" msgstr "" msgid "thg drag_move SOURCE... DEST" msgstr "" msgid "a revision to send" msgstr "" msgid "thg email [REVS]" msgstr "" msgid "use only one form to specify the revision" msgstr "" msgid "select the specified revision" msgstr "" msgid "side-by-side comparison of revisions" msgstr "" msgid "thg filelog [OPTION]... FILE" msgstr "" msgid "requires a single filename" msgstr "" msgid "thg forget [FILE]..." msgstr "" msgid "revisions to graft" msgstr "" msgid "thg graft [-r] REV..." msgstr "" msgid "You must provide revisions to graft" msgstr "" msgid "ignore case during search" msgstr "" msgid "thg grep" msgstr "" msgid "thg guess" msgstr "" msgid "thg help [COMMAND]" msgstr "" msgid "global options:" msgstr "globális beállítás" msgid "use \"thg help\" for the full list of commands" msgstr "" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "" msgid "" "list of commands:\n" "\n" msgstr "" "parancsok listája:\n" "\n" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" "\n" "aliasok: %s\n" msgid "(no help text available)" msgstr "(súgó nem található)" msgid "options:\n" msgstr "opciók:\n" msgid "no commands defined\n" msgstr "nincs definiált parancs\n" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "" msgid "" "basic commands:\n" "\n" msgstr "" "alap parancsok:\n" "\n" #, python-format msgid " (default: %s)" msgstr " (alapértelmezett: %s)" msgid "thg hgignore [FILE]" msgstr "" msgid "import to the patch queue (MQ)" msgstr "importálás a patch queue-ba (MQ)" msgid "thg import [OPTION] [SOURCE]..." msgstr "" msgid "thg init [DEST]" msgstr "" msgid "thg lock" msgstr "" msgid "search for a given text or revset" msgstr "" msgid "(DEPRECATED)" msgstr "" msgid "open a new workbench window" msgstr "" msgid "thg log [OPTIONS] [FILE]" msgstr "" msgid "cannot specify both -k/--query and filenames" msgstr "" msgid "revision to display" msgstr "" msgid "thg manifest [-r REV] [FILE]" msgstr "" msgid "revision to merge" msgstr "" msgid "thg merge [[-r] REV]" msgstr "" msgid "Merge revision not specified or not found" msgstr "" msgid "a revision to post" msgstr "" msgid "thg postreview [-r] REV..." msgstr "" msgid "reviewboard extension not enabled" msgstr "" #, python-format msgid "see %(url)s" msgstr "" msgid "no revisions specified" msgstr "" msgid "revisions to prune" msgstr "" msgid "thg prune [-r] REV..." msgstr "" msgid "thg purge" msgstr "" msgid "keep original changesets" msgstr "" msgid "keep original branch names" msgstr "" msgid "rebase from the specified changeset" msgstr "" msgid "rebase onto the specified changeset" msgstr "" msgid "thg rebase -s REV -d REV [--keep]" msgstr "" msgid "Rebase already in progress" msgstr "" msgid "Resuming rebase already in progress" msgstr "" msgid "You must provide source and dest arguments" msgstr "" msgid "thg rejects [FILE]" msgstr "" msgid "You must provide the path to a file" msgstr "" msgid "thg remove [FILE]..." msgstr "" msgid "thg rename [SOURCE] [DEST]" msgstr "" msgid "field to give initial focus" msgstr "mező, amelyik megkapja a kezdő fókuszt" msgid "thg repoconfig" msgstr "" msgid "thg resolve" msgstr "" msgid "the revision to show" msgstr "" msgid "thg revdetails [-r REV]" msgstr "" msgid "thg revert [FILE]..." msgstr "" msgid "revision to update" msgstr "revízió frissítése" msgid "thg rupdate [[-r] REV]" msgstr "" msgid "name of the hgweb config file (serve more than one repository)" msgstr "" msgid "name of the hgweb config file (DEPRECATED)" msgstr "" msgid "thg serve [--web-conf FILE]" msgstr "" msgid "thg shellconfig" msgstr "" msgid "thg shelve" msgstr "" msgid "sign even if the sigfile is modified" msgstr "" msgid "make the signature local" msgstr "" msgid "the key id to sign with" msgstr "" msgid "do not commit the sigfile after signing" msgstr "" msgid "use as commit message" msgstr "" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "" msgid "Please enable the Gpg extension first." msgstr "" msgid "show files without changes" msgstr "" msgid "show ignored files" msgstr "" msgid "thg status [OPTIONS] [FILE]" msgstr "" msgid "discard uncommitted changes (no backup)" msgstr "" msgid "do not back up stripped revisions" msgstr "" msgid "do not modify working copy during strip" msgstr "" msgid "revision to strip" msgstr "" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "" msgid "open the bookmark sync window" msgstr "" msgid "thg sync [OPTION]... [PEER]" msgstr "" msgid "replace existing tag" msgstr "" msgid "make the tag local" msgstr "" msgid "revision to tag" msgstr "" msgid "remove a tag" msgstr "" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "" msgid "wait until the second ticks over" msgstr "" msgid "notify the shell for paths given" msgstr "" msgid "remove the status cache" msgstr "állapot cache eltávolítása" msgid "show the contents of the status cache (no update)" msgstr "mutassa az állapot cache tartalmát (nics update)" msgid "update all repos in current dir" msgstr "Összes repo frissítése az aktuális könyvtárban" msgid "thg thgstatus [OPTION]" msgstr "" msgid "thg topics [-r REV] [NAME]" msgstr "" msgid "Please enable the Topic extension first." msgstr "" msgid "only one new topic name allowed" msgstr "" msgid "thg update [-C] [[-r] REV]" msgstr "" msgid "thg userconfig" msgstr "" msgid "changeset to view in diff tool" msgstr "" msgid "revisions to view in diff tool" msgstr "" msgid "bundle file to preview" msgstr "Csomag file előnézet" msgid "launch visual diff tool" msgstr "Vizual diff indítása" msgid "print license" msgstr "license nyomtatása" msgid "thg version [OPTION]" msgstr "" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "TortoiseHg Dialógusok (verzió %s), Mercurial (verzió %s)\n" msgid "Location:" msgstr "" msgid "Update to:" msgstr "" msgid "Options:" msgstr "" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "" msgid "Perform a push before updating (-p/--push)" msgstr "" msgid "Allow pushing new branches (--new-branch)" msgstr "" msgid "Force push to remote location (-f/--force)" msgstr "" msgid "remove working directory" msgstr "" msgid "unknown revision!" msgstr "" #, python-format msgid "Remote Update - %s" msgstr "" msgid "&Update" msgstr "" msgid "Log" msgstr "" msgid "Repositories" msgstr "" #, python-format msgid "Running at %s" msgstr "" msgid "Stopped" msgstr "" msgid "TortoiseHg Web Server" msgstr "" msgid "Web Server" msgstr "" msgid "Port:" msgstr "" msgid "Status:" msgstr "" msgid "Start" msgstr "" msgid "Settings" msgstr "Beállítások" msgid "" msgstr "" msgid "&True" msgstr "" msgid "&False" msgstr "" msgid "&Unspecified" msgstr "" #, python-format msgid "%dpt" msgstr "" msgid "Bold" msgstr "" msgid "Italic" msgstr "" msgid "Strike" msgstr "" msgid "Underline" msgstr "" msgid "&Set..." msgstr "" msgid "&Clear" msgstr "" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "" msgid "&Browse..." msgstr "" msgid "UI Language" msgstr "" msgid "Specify your preferred user interface language (restart needed)" msgstr "" msgid "Three-way Merge Tool" msgstr "" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" msgid "Visual Diff Tool" msgstr "" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" msgid "Visual Editor" msgstr "" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" msgid "CLI Editor" msgstr "" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" msgid "Shell" msgstr "" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
                                                    Default, Windows: cmd.exe /" "K title %(reponame)s
                                                    Default, OS X: not set
                                                    Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" msgid "Immediate Operations" msgstr "" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" msgid "Tab Width" msgstr "" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" msgid "Force Repo Tab" msgstr "" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "" msgid "Monitor Repo Changes" msgstr "" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" msgid "Max Diff Size" msgstr "" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" msgid "Fork GUI" msgstr "" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" msgid "Full Path Title" msgstr "" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" msgid "Auto-resolve merges" msgstr "" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" msgid "New Repo Skeleton" msgstr "" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "" msgid "Single Workbench Window" msgstr "" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" msgid "Default widget" msgstr "" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" msgid "" "Open new tabs next\n" "to the current tab" msgstr "" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" msgid "Author Coloring" msgstr "" msgid "Color changesets by author name. Default: False" msgstr "" msgid "Full Authorname" msgstr "" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" msgid "Task Tabs" msgstr "" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" msgid "Task Toolbar Order" msgstr "" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
                                                    Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
                                                    Valid names are: log commit sync grep and " "pbranch.
                                                    Default: log commit grep pbranch | sync" msgstr "" msgid "Long Summary" msgstr "" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" msgid "Log Batch Size" msgstr "" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "" msgid "Dead Branches" msgstr "" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" msgid "Branch Colors" msgstr "" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" msgid "Hide Tags" msgstr "" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" msgid "Activate Bookmarks" msgstr "" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

                                                    • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
                                                    • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
                                                    • never: Never show any prompt to " "activate any bookmarks.

                                                    Default: prompt" msgstr "" msgid "Show Family Line" msgstr "" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

                                                    Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" msgid "Use optimized graph layouter" msgstr "" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

                                                    Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" msgctxt "config item" msgid "Commit" msgstr "" msgid "Username" msgstr "" msgid "" "Name associated with commits. The common format is:
                                                    Full Name <" "email@example.com>" msgstr "" msgid "Ask Username" msgstr "" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" msgid "Summary Line Length" msgstr "" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" msgid "Close After Commit" msgstr "" msgid "Close the commit tool after every successful commit. Default: False" msgstr "" msgid "Push After Commit" msgstr "" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" msgid "Auto Commit List" msgstr "" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" msgid "Auto Exclude List" msgstr "" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" msgid "English Messages" msgstr "" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" msgid "New Commit Phase" msgstr "" msgid "The phase of new commits. Default: draft" msgstr "" msgid "Secret MQ Patches" msgstr "" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "" msgid "Check Subrepo Phase" msgstr "" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" msgid "Monitor working
                                                    directory changes" msgstr "" msgid "" "Select when the working directory status list will be refreshed:
                                                    - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
                                                    TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
                                                    - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
                                                    - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
                                                    Default: auto" msgstr "" msgid "Confirm adding unknown files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Confirm deleting files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Sync" msgstr "" msgid "After Pull Operation" msgstr "" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" msgid "Default Push" msgstr "" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

                                                    • all: The default. Push all changes in all " "branches.
                                                    • branch: Push all changes in the current branch.
                                                    • revision: Push the changes in the current branch up to the current revision.

                                                    Default: all" msgstr "" msgid "Confirm Push" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" msgid "Target Combo" msgstr "" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

                                                    • auto: The default. Show the combo if more than one target " "configured.
                                                    • always: Always show the combo.

                                                    Default: auto" msgstr "" msgid "SSH Command" msgstr "" msgid "" "Command to use for SSH connections.

                                                    Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" msgid "Subrepository Features:" msgstr "" msgid "Allow Hg Subrepos" msgstr "" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" msgid "Allow Git Subrepos" msgstr "" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

                                                    See the security note before enabling Git " "subrepos." msgstr "" msgid "Allow SVN Subrepos" msgstr "" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

                                                    See the security note before enabling " "Subversion subrepos." msgstr "" msgid "Server" msgstr "" msgid "Repository Details:" msgstr "" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" msgid "Encoding" msgstr "" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" msgid "'Publishing' repository" msgstr "" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" msgid "Web Server:" msgstr "" msgid "Textual description of the repository's purpose or contents." msgstr "" msgid "Contact" msgstr "" msgid "Name or email address of the person in charge of the repository." msgstr "" msgid "Style" msgstr "" msgid "Which template map style to use" msgstr "" msgid "Archive Formats" msgstr "" msgid "Comma separated list of archive formats allowed for downloading" msgstr "" msgid "Port" msgstr "" msgid "Port to listen on" msgstr "" msgid "Push Requires SSL" msgstr "" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" msgid "Stripes" msgstr "" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" msgid "Max Files" msgstr "" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "" msgid "Max Changes" msgstr "" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "" msgid "Allow Push" msgstr "" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" msgid "Deny Push" msgstr "" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" msgid "Proxy" msgstr "" msgid "Host" msgstr "" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "" msgid "Bypass List" msgstr "" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "" msgid "Optional. User name to authenticate with at the proxy server" msgstr "" msgid "Password" msgstr "" msgid "Optional. Password to authenticate with at the proxy server" msgstr "" msgid "From" msgstr "" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "" msgid "To" msgstr "" msgid "Comma-separated list of recipient email addresses" msgstr "" msgid "Cc" msgstr "" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "" msgid "Bcc" msgstr "" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "" msgid "method" msgstr "" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" msgid "SMTP Host" msgstr "" msgid "Host name of mail server" msgstr "" msgid "SMTP Port" msgstr "" msgid "Port to connect to on mail server. Default: 25" msgstr "" msgid "SMTP TLS" msgstr "" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "" msgid "SMTP Username" msgstr "" msgid "Username to authenticate to mail server with" msgstr "" msgid "SMTP Password" msgstr "" msgid "Password to authenticate to mail server with" msgstr "" msgid "Local Hostname" msgstr "" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "" msgid "Diff and Annotate" msgstr "" msgid "Patch EOL" msgstr "" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" msgid "Git Format" msgstr "" msgid "Use git extended diff header format. Default: False" msgstr "" msgid "MQ Git Format" msgstr "" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" msgid "No Dates" msgstr "" msgid "Do not include modification dates in diff headers. Default: False" msgstr "" msgid "Show Function" msgstr "" msgid "Show which function each change is in. Default: False" msgstr "" msgid "Ignore White Space" msgstr "" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "" msgid "Ignore WS Amount" msgstr "" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "" msgid "Ignore Blank Lines" msgstr "" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "" msgid "Annotate:" msgstr "" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "" msgid "Fonts" msgstr "" msgid "Message Font" msgstr "" msgid "Font used to display commit messages. Default: monospace 10" msgstr "" msgid "Diff Font" msgstr "" msgid "Font used to display text differences. Default: monospace 10" msgstr "" msgid "ChangeLog Font" msgstr "" msgid "Font used to display changelog data. Default: monospace 10" msgstr "" msgid "Output Font" msgstr "" msgid "Font used to display output messages. Default: sans 8" msgstr "" msgid "Extensions" msgstr "" msgid "Tools" msgstr "" msgid "Hooks" msgstr "" msgid "Issue Tracking" msgstr "" msgid "Issue Regex" msgstr "" msgid "Defines the regex to match when picking up issue numbers." msgstr "" msgid "Issue Link" msgstr "" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" msgid "Inline Tags" msgstr "" msgid "Show tags at start of commit message." msgstr "" msgid "Mandatory Issue Reference" msgstr "" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" msgid "Issue Tracker Plugin" msgstr "" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" msgid "Configure Issue Tracker" msgstr "" msgid "Configure the selected COM Bug Tracker plugin." msgstr "" msgid "Issue Tracker Trigger" msgstr "" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

                                                    • never: Do not update the Issue Tracker " "state automatically.
                                                    • commit: Update the Issue Tracker state after " "a successful commit.

                                                    Default: never" msgstr "" msgid "Changeset Link" msgstr "" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
                                                    The template string " "uses a normal mercurial template syntax, such as:

                                                    • {node|short} : replaced by " "the 12 digit revision id.
                                                    • {rev} : replaced by the revision number." "
                                                    • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
                                                    For example, in order to " "link to bitbucket commit pages you can set this to:
                                                    https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
                                                    You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
                                                    https://github.com/torvalds/" "linux/commit/{gitnode}
                                                    https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
                                                    " msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "" msgid "User name to authenticate with review board" msgstr "" msgid "Password to authenticate with review board" msgstr "" msgid "Server Repository ID" msgstr "" msgid "The default repository id for this repo on the review board server" msgstr "" msgid "Target Groups" msgstr "" msgid "A comma separated list of target groups" msgstr "" msgid "Target People" msgstr "" msgid "A comma separated list of target people" msgstr "" msgid "Kiln Bfiles" msgstr "" msgid "Patterns" msgstr "Minták" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" msgid "Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" msgid "System Cache" msgstr "" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "" msgid "Simplelock" msgstr "" msgid "Lock Clone" msgstr "" msgid "" "Location of local clone of organizational lock repository.

                                                    This repository " "must contain a \"locked\" text file" msgstr "" msgid "Largefiles" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" msgid "Minimum Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" msgid "User Cache" msgstr "" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" msgid "Projrc" msgstr "" msgid "Require confirmation" msgstr "" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

                                                    • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
                                                    • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
                                                    • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
                                                    " msgstr "" msgid "Servers" msgstr "" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" msgid "Include" msgstr "" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" msgid "Exclude" msgstr "" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" msgid "Update on incoming" msgstr "" msgid "" "Let the user update the projrc on incoming:
                                                    • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
                                                    • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
                                                    • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                                                      Default: never" msgstr "" msgid "GnuPG" msgstr "" msgid "Specify the path to GPG. Default: gpg" msgstr "" msgid "Key ID" msgstr "" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "" msgid "TortoiseHg Settings" msgstr "" msgid "Iniparse package not found" msgstr "" msgid "Can't change settings without iniparse package - view is readonly." msgstr "" #, python-format msgid "%s's global settings" msgstr "" msgid "No repository found" msgstr "" msgid "no repo at " msgstr "" #, python-format msgid "%s project settings (.hg/projrc)" msgstr "" #, python-format msgid "%s repository settings" msgstr "" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "" msgid "Apply changes before exit?" msgstr "" msgid "&No (discard changes)" msgstr "" msgid "Reload" msgstr "" msgid "Settings File:" msgstr "" msgid "Confirm Save" msgstr "" msgid "Save changes before editing?" msgstr "" msgid "&Save" msgstr "" msgid "Confirm Reload" msgstr "" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" msgid "Unable to create a Mercurial.ini file" msgstr "" msgid "Insufficient access rights, reverting to read-only mode." msgstr "" msgid "Context Menu" msgstr "" msgid "Top menu items:" msgstr "" msgid "Sub menu items:" msgstr "" msgid "Menu Behavior" msgstr "" msgid "Hide context menu outside repositories" msgstr "" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" msgid "Icons" msgstr "" msgid "Overlays" msgstr "" msgid "Enabled overlays" msgstr "" msgid "Local disks only" msgstr "" msgid "Enabled Overlay Handlers" msgstr "" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "" msgid "Added" msgstr "" msgid "Locked*" msgstr "" msgid "Ignored*" msgstr "" msgid "Unversioned" msgstr "" msgid "Readonly*" msgstr "" msgid "Deleted*" msgstr "" msgid "*: not used by TortoiseHg" msgstr "" msgid "Taskbar" msgstr "" msgid "Show Icon" msgstr "" msgid "Highlight Icon" msgstr "" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" msgid "Explorer Extension Settings - TortoiseHg" msgstr "" msgid "Clear" msgstr "" msgid "Clear the current shelf file" msgstr "" msgid "Delete the current shelf file" msgstr "" msgid "Left Toolbar" msgstr "" msgid "Delete selected chunks" msgstr "" msgid "Move all files right" msgstr "" msgid "Move selected file right" msgstr "" msgid "Edit file" msgstr "" msgid "Move selected chunks right" msgstr "" msgid "Refresh Toolbar" msgstr "" msgid "Refresh" msgstr "Frissítés" msgid "New Shelf" msgstr "" msgid "Right Toolbar" msgstr "" msgid "Move selected chunks left" msgstr "" msgid "Move selected file left" msgstr "" msgid "Move all files left" msgstr "" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "" msgid "Delete selected chunks from working copy?" msgstr "" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "" msgid "Are you sure?" msgstr "" msgid "TortoiseHg New Shelf Name" msgstr "" msgid "Specify name of new shelf" msgstr "" msgid "Bad filename" msgstr "" #, python-format msgid "A shelf name cannot contain %s" msgstr "" msgid "File already exists" msgstr "" msgid "A shelf file of that name already exists" msgstr "" msgid "New shelf created" msgstr "" #, python-format msgid "Delete shelf file %s?" msgstr "" msgid "Shelf deleted" msgstr "" msgid "Revert all working copy changes?" msgstr "" #, python-format msgid "Clear contents of shelf file %s?" msgstr "" msgid "Shelf cleared" msgstr "" #, python-format msgid "Shelf: %s" msgstr "" #, python-format msgid "Patch: %s" msgstr "" msgid "Key:" msgstr "" msgid "Local sign" msgstr "" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "" msgid "No commit" msgstr "" msgid "Use custom commit message:" msgstr "" msgid "&Sign" msgstr "" #, python-format msgid "Sign - %s" msgstr "" msgid "Signature has been added" msgstr "" msgid "Repository command still running" msgstr "" msgid "Filter:" msgstr "" msgid "Check all files" msgstr "" msgid "Uncheck all files" msgstr "" msgid "Status File List Toolbar" msgstr "" msgid "Remove filter, show root" msgstr "" #, python-format msgid "%s - status (selection filtered)" msgstr "" #, python-format msgid "%s - status" msgstr "" msgid "Check" msgstr "" msgid "Uncheck" msgstr "" msgid "status" msgstr "státusz" msgid "Failed to refresh" msgstr "" msgid "No appropriate files" msgstr "" msgid "No files found for this operation" msgstr "" msgid "Stat" msgstr "" msgid "M" msgstr "" msgid "Filename" msgstr "Fájlnév" msgid "Size (KB)" msgstr "" #, python-format msgid "Checked count: %d" msgstr "" msgid ", resolved merge" msgstr "" msgid ", unresolved merge" msgstr "" #, python-format msgid "%s is modified" msgstr "" msgid "modified" msgstr "" #, python-format msgid "%s is added" msgstr "" msgid "added" msgstr "" #, python-format msgid "%s is removed" msgstr "" msgid "removed" msgstr "" #, python-format msgid "%s is not tracked (unknown)" msgstr "" msgid "unknown" msgstr "" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "" msgid "missing" msgstr "" #, python-format msgid "%s is ignored" msgstr "" msgid "ignored" msgstr "" #, python-format msgid "%s is not modified (clean)" msgstr "" msgid "clean" msgstr "" #, python-format msgid "%s is a dirty subrepo" msgstr "" msgid "subrepo" msgstr "" msgid "Check for incoming changes from selected URL" msgstr "" msgid "Pull incoming changes from selected URL" msgstr "" msgid "Detect outgoing changes to selected URL" msgstr "" msgid "Push outgoing changes to selected URL" msgstr "" msgid "Sync Bookmarks" msgstr "" msgid "Email outgoing changesets for remote repository" msgstr "" msgid "Manage pending perforce changelists" msgstr "" msgid "Unbundle" msgstr "" msgid "Selected Options:" msgstr "" msgid "Path Edit Toolbar" msgstr "" msgid "Security" msgstr "" msgid "Manage HTTPS connection security and user authentication" msgstr "" msgid "Save" msgstr "" msgid "Save current URL under an alias" msgstr "" msgid "Paths in Repository Settings:" msgstr "" msgid "Related Paths:" msgstr "" msgid "branch: " msgstr "ág: " msgid "bookmark: " msgstr "" #, python-format msgid "rev: %d (%s)" msgstr "" msgid "Post Pull: " msgstr "" msgid "&Edit..." msgstr "" msgid "&Remove..." msgstr "" msgid "Repository not local" msgstr "" msgid "A terminal shell cannot be opened for remote" msgstr "" msgid "Confirm path delete" msgstr "" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "" msgid "Select repository" msgstr "" msgid "No host specified" msgstr "" msgid "Please set a valid URL to continue." msgstr "" msgid "No remote repository URL or path set" msgstr "" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

                                                      Please type and save a remote repository path on the " "Sync widget." msgstr "" msgid "Redundant authentication info" msgstr "" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" msgid "sync command already running" msgstr "" #, python-format msgid "Getting incoming changesets from %s..." msgstr "" #, python-format msgid "Found incoming changesets from %s" msgstr "" #, python-format msgid "No incoming changesets from %s" msgstr "" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "" #, python-format msgid "Pulling from %s..." msgstr "" #, python-format msgid "Pull from %s completed" msgstr "" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "" msgid "Merge caused file conflicts" msgstr "" msgid "File conflicts need to be resolved" msgstr "" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "" #, python-format msgid "%d outgoing changesets to %s" msgstr "" #, python-format msgid "No outgoing changesets to %s" msgstr "" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "" msgid "Perforce pending..." msgstr "" #, python-format msgid "%s (submitted)" msgstr "" #, python-format msgid "%s (pending)" msgstr "" msgid "Unable to parse p4pending output" msgstr "" #, python-format msgid "%d pending changelists found" msgstr "" msgid "No pending Perforce changelists" msgstr "" msgid "Aborted p4pending" msgstr "" msgid "Unable to determine pending changesets" msgstr "" msgid "Confirm Push to remote Repository" msgstr "" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" #, python-format msgid "Push to %s aborted" msgstr "" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" #, python-format msgid "Pushing to %s..." msgstr "" #, python-format msgid "Push to %s completed" msgstr "" #, python-format msgid "Push to %s aborted, ret %d" msgstr "" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" msgid "Determining outgoing changesets to email..." msgstr "" msgid "No outgoing changesets" msgstr "" #, python-format msgid "Outgoing aborted, ret %d" msgstr "" msgid "Select bundle file" msgstr "" msgid "Bundle files (*.hg)" msgstr "" msgid "Unable to remove URL" msgstr "" msgid "Post Pull Behavior" msgstr "" msgid "Select post-pull operation for this repository" msgstr "" msgid "None - simply pull changesets" msgstr "" msgid "Update - pull, then try to update" msgstr "" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "" msgid "Rebase - rebase local commits above pulled changes" msgstr "" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "" msgid "Launch settings tool..." msgstr "" msgid "Unable to save post pull operation" msgstr "" msgid "Save Path" msgstr "" msgid "Alias" msgstr "" msgid "URL" msgstr "" msgid "Remove authentication data from URL" msgstr "" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" msgid "Update subrepo paths" msgstr "" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" msgid "Unable to save an URL" msgstr "" msgid "Confirm URL replace" msgstr "" #, python-format msgid "%s already exists, replace URL?" msgstr "" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

                                                      %s

                                                      Replace it with the " "following URL?:

                                                      %s" msgstr "" msgid "Security: " msgstr "" #, python-format msgid "Host: %s" msgstr "" msgid "Secure HTTPS Connection" msgstr "" msgid "Verify with Certificate Authority certificates (best)" msgstr "" msgid "Verify with stored host fingerprint (good)" msgstr "" msgid "No host validation, but still encrypted (bad)" msgstr "" msgid "### host certificate fingerprint ###" msgstr "" msgid "Query" msgstr "" msgid "TLS 1.0" msgstr "" msgid "TLS 1.1" msgstr "" msgid "TLS 1.2" msgstr "" msgid "Minimum Protocol" msgstr "" msgid "User Authentication" msgstr "" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Key" msgstr "" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Chain" msgstr "" msgid "Certificate Query Error" msgstr "" msgid "Select User Certificate Key File" msgstr "" msgid "PEM files (*.pem *.key)" msgstr "" msgid "Select User Certificate Chain File" msgstr "" msgid "PEM files (*.pem *.crt *.cer)" msgstr "" msgid "Unable to save authentication" msgstr "" #, python-format msgid "%s - sync options" msgstr "" msgid "Allow push of a new branch (--new-branch)" msgstr "" msgid "Force push or pull (override safety checks, --force)" msgstr "" msgid "Temporarily disable configured HTTP proxy" msgstr "" msgid "Emit debugging output (--debug)" msgstr "" msgid "Work on patch queue (--mq)" msgstr "" #, python-format msgid "Tag - %s" msgstr "" msgid "Tag:" msgstr "" msgid "Tagged:" msgstr "" msgid "Local tag" msgstr "" msgid "Replace existing tag (-f/--force)" msgstr "" msgid "Use English commit message" msgstr "" msgid "local" msgstr "" msgid "Move" msgstr "Mozgatás" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "" #, python-format msgid "Added tag %s for changeset %s" msgstr "" #, python-format msgid "Tag '%s' has been moved" msgstr "" #, python-format msgid "Tag '%s' has been added" msgstr "" #, python-format msgid "Removed tag %s" msgstr "" #, python-format msgid "Tag '%s' has been removed" msgstr "" msgid "Patch files (*.diff *.patch)" msgstr "" #, python-format msgid "Import - %s" msgstr "" msgid "Browse Directory..." msgstr "" msgid "Import from Clipboard" msgstr "" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "" msgid "Preview:" msgstr "" msgid "Shelf" msgstr "" msgid "Checking working directory status..." msgstr "" msgid "&Import" msgstr "" msgid "Working directory is not clean! View changes..." msgstr "" msgid "Select patches" msgstr "" msgid "Select Directory containing patches" msgstr "" #, python-format msgid "%s patches" msgstr "" #, python-format msgid "%s will be imported to " msgstr "" msgid "Nothing to import" msgstr "" msgid "Strip:" msgstr "" msgid "Discard local changes, no backup (-f/--force)" msgstr "" msgid "No backup (-n/--nobackup)" msgstr "" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "" msgstr[1] "" msgid "Unknown revision!" msgstr "" msgid "Detected uncommitted local changes." msgstr "" msgid "Do you want to keep them or discard them?" msgstr "" msgid "&Keep (--keep)" msgstr "" msgid "&Discard (--force)" msgstr "" msgid "Confirm Strip" msgstr "" #, python-format msgid "Strip - %s" msgstr "" msgid "&Strip" msgstr "" msgid "Topic:" msgstr "" msgid "&Rename" msgstr "" #, python-format msgid "Topic - %s" msgstr "" #, python-format msgid "A topic named \"%s\" already exists" msgstr "" #, python-format msgid "Topic '%s' has been added" msgstr "" #, python-format msgid "Topic '%s' does not exist" msgstr "" #, python-format msgid "Topic '%s' has been removed" msgstr "" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "" msgid "Parent 1:" msgstr "" msgid "Parent 2:" msgstr "" msgid "Pull subrepos from:" msgstr "" msgid "List updated files (--verbose)" msgstr "" msgid "Discard local changes, no backup (-C/--clean)" msgstr "" msgid "Always merge (when possible)" msgstr "" msgid "(same as parent)" msgstr "" msgid "Activate bookmark?" msgstr "" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

                                                      Do " "you want to activate it?
                                                      You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

                                                      Select " "the bookmark that you want to activate and click OK.

                                                      Click " "Cancel if you don't want to activate any of them.

                                                      You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                      " msgstr "" msgid "Deactivate current bookmark?" msgstr "" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" msgid "Discard - discard local changes, no backup" msgstr "" msgid "&Shelve" msgstr "" msgid "Shelve - move local changes to a patch" msgstr "" msgid "Merge - allow to merge with local changes" msgstr "" msgid "Confirm Update" msgstr "" #, python-format msgid "Update - %s" msgstr "" msgid "[non-existant]" msgstr "" msgid "Tool launch failure" msgstr "" #, python-format msgid "%s : %s" msgstr "" msgid "No diff tool found" msgstr "" msgid "No visual diff tools were detected" msgstr "" msgid "[working copy]" msgstr "" msgid "[original]" msgstr "" msgid "Unable to find changeset" msgstr "" msgid "You likely need to refresh this application" msgstr "" msgid "No file changes" msgstr "" msgid "There are no file changes to view" msgstr "" msgid "working changes" msgstr "" #, python-format msgid "changeset %d:%s" msgstr "" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "" msgid "Visual Diffs - " msgstr "" msgid " filtered" msgstr "" msgid "Temporary files are removed when this dialog is closed" msgstr "" msgid "Select Tool:" msgstr "" msgid "Dir diff to p1" msgstr "" msgid "Dir diff to p2" msgstr "" msgid "3-way dir diff" msgstr "" msgid "Directory diff" msgstr "" msgid "Confirm Discard" msgstr "" msgid "Discard outstanding changes to working directory?" msgstr "" msgid "Config files (*.conf *.config *.ini)" msgstr "" msgid "Open hgweb config" msgstr "" msgid "Save hgweb config" msgstr "" msgid "Path:" msgstr "" msgid "Local Path:" msgstr "" msgid "Select Repository" msgstr "" msgid "Add Path to Serve" msgstr "" msgid "Edit Path to Serve" msgstr "" msgid "Local Path" msgstr "" msgid "Webconf" msgstr "" msgid "Config File:" msgstr "" msgid "Open" msgstr "" msgid "New &Workbench" msgstr "" msgid "&New Repository..." msgstr "" msgid "Clon&e Repository..." msgstr "" msgid "&Open Repository..." msgstr "" msgid "&File" msgstr "" msgid "&View" msgstr "" msgid "&Repository" msgstr "" msgid "&Help" msgstr "" msgid "&Dock Toolbar" msgstr "" msgid "&Task Toolbar" msgstr "" msgid "&Custom Toolbar" msgstr "" msgid "S&ync Toolbar" msgstr "" msgid "&Close Repository" msgstr "" msgid "Sh&ow Repository Registry" msgstr "" msgid "Show &Patch Queue" msgstr "" msgid "Show Conso&le" msgstr "" msgid "Place Console in Doc&k Area" msgstr "" msgid "R&epository Registry Options" msgstr "" msgid "Save Open Repositories on E&xit" msgstr "" msgid "Sa&ve Current Sync Paths on Exit" msgstr "" msgid "Show Tas&k Tab" msgstr "" msgid "&Commit" msgstr "" msgid "&Patch Branch" msgstr "" msgid "Revision &Details" msgstr "" msgid "&Search" msgstr "" msgid "S&ynchronize" msgstr "" msgid "Refresh current repository" msgstr "" msgid "Refresh &Task Tab" msgstr "" msgid "Refresh only the current task tab" msgstr "" msgid "Load &All Revisions" msgstr "" msgid "Load all revisions into graph" msgstr "" msgid "Go to current revision" msgstr "" msgid "&Goto Revision..." msgstr "" msgid "Go to a specific revision" msgstr "" msgid "Filter graph with revision sets or branches" msgstr "" msgid "&Workbench Toolbars" msgstr "" msgid "&Lock File..." msgstr "" msgid "Lock or unlock files" msgstr "" msgid "Update working directory or switch revisions" msgstr "" msgid "&Shelve..." msgstr "" msgid "&Import Patches..." msgstr "" msgid "U&nbundle..." msgstr "" msgid "&Merge..." msgstr "" msgid "Merge with the other head of the current branch" msgstr "" msgid "&Resolve..." msgstr "" msgid "R&ollback/Undo..." msgstr "" msgid "&Purge..." msgstr "" msgid "&Bisect..." msgstr "" msgid "&Verify" msgstr "" msgid "Re&cover" msgstr "" msgid "&Web Server" msgstr "" msgid "E&xplorer Help" msgstr "" msgid "&Readme" msgstr "" msgid "About &Qt" msgstr "" msgid "&About TortoiseHg" msgstr "" msgid "&Incoming" msgstr "" msgid "&Pull" msgstr "" msgid "&Outgoing" msgstr "" msgid "P&ush" msgstr "" msgid "&Sync Bookmarks..." msgstr "" #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" msgid "Check for incoming changes" msgstr "" msgid "Pull incoming changes" msgstr "" msgid "Detect outgoing changes" msgstr "" msgid "Push outgoing changes" msgstr "" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" #, python-format msgid "Execute custom tool '%s'" msgstr "" msgid "Custom Toolbar &Settings" msgstr "" msgid "TortoiseHg Workbench" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "" msgid "Goto revision" msgstr "" msgid "Enter revision identifier" msgstr "" msgid "Select repository directory to open" msgstr "" msgid "README not configured" msgstr "" msgid "" "A README file is not configured for the current repository.

                                                      To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" msgid "Issue Tracker Plugin Error" msgstr "" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "" msgid "This error will not be shown again until you restart the workbench" msgstr "" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "" msgid "Error executing \"commit finished\" trigger" msgstr "" msgid "Cannot open Plugin Options dialog" msgstr "" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "" msgid "[--insecure] [SOURCE]" msgstr "" #, python-format msgid "unsupported URL: %s" msgstr "" #, python-format msgid "%s certificate error: no certificate received" msgstr "" msgid "move after the specified patch" msgstr "" msgid "[--after PATCH] PATCH..." msgstr "" msgid "unknown patch to move specified" msgstr "" msgid "invalid patch position specified" msgstr "" msgid "cannot move applied patches" msgstr "" #, python-format msgid "patch %s not in series" msgstr "" msgid "cannot move into applied patches" msgstr "" msgid "abort: " msgstr "megszakadt: " msgid "hint: " msgstr "" #, python-format msgid "HTTP Error: %d (%s)" msgstr "" #, python-format msgid "URLError: %s" msgstr "" msgid "SSL: Server certificate verify failed" msgstr "" #, python-format msgid "SSL: unknown error %s:%s" msgstr "" #, python-format msgid "SSL error: %s" msgstr "" msgid "hgsubversion packaged with thg" msgstr "" msgid "hggit packaged with thg" msgstr "" msgid "inotify is not supported on this platform" msgstr "" msgid "eol is incompatible with win32text" msgstr "" msgid "win32text is incompatible with eol" msgstr "" msgid "hgsubversion is incompatible with perfarce" msgstr "" msgid "perfarce is incompatible with hgsubversion" msgstr "" msgid "Workbench custom toolbar" msgstr "" msgid "Revision details context menu" msgstr "" msgid "Pair selection context menu" msgstr "" msgid "Multiple selection context menu" msgstr "" msgid "Commit context menu" msgstr "" msgid "File context menu (on manifest and revision details)" msgstr "" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" msgid "in the future" msgstr "" msgid "now" msgstr "" #, python-format msgid "command parse error: %s" msgstr "" #, python-format msgid "no matches found: %s" msgstr "" msgid "Commit..." msgstr "" msgid "Commit changes in repository" msgstr "" msgid "Create Repository Here" msgstr "" msgid "Create a new repository" msgstr "" msgid "Clone..." msgstr "" msgid "Create clone here from source" msgstr "" msgid "File Status" msgstr "" msgid "Repository status & changes" msgstr "" msgid "Add Files..." msgstr "" msgid "Add files to version control" msgstr "" msgid "Revert Files..." msgstr "" msgid "Revert file changes" msgstr "" msgid "Forget Files..." msgstr "" msgid "Remove files from version control" msgstr "" msgid "Remove Files..." msgstr "" msgid "Rename File" msgstr "" msgid "Rename file or directory" msgstr "" msgid "View change history in repository" msgstr "" msgid "File History" msgstr "" msgid "View change history of selected files" msgstr "" msgid "Shelve Changes" msgstr "" msgid "Move changes between working dir and patch" msgstr "" msgid "Synchronize" msgstr "Szinkronizál" msgid "Synchronize with remote repository" msgstr "" msgid "Start web server for this repository" msgstr "" msgid "Update..." msgstr "" msgid "Update working directory" msgstr "" msgid "Update Icons" msgstr "" msgid "Update icons for this repository" msgstr "" msgid "Global Settings" msgstr "" msgid "Configure user wide settings" msgstr "" msgid "Repository Settings" msgstr "" msgid "Configure repository settings" msgstr "" msgid "Explorer Extension Settings" msgstr "" msgid "Configure Explorer extension" msgstr "" msgid "About TortoiseHg" msgstr "TortoiseHg névjegye" msgid "Show About Dialog" msgstr "" msgid "Diff to parent" msgstr "" msgid "View changes using GUI diff tool" msgstr "" msgid "Edit Ignore Filter" msgstr "" msgid "Edit repository ignore filter" msgstr "" msgid "Guess Renames" msgstr "" msgid "Detect renames and copies" msgstr "" msgid "Search History" msgstr "Keresés előzményei" msgid "Search file revisions for patterns" msgstr "" msgid "DnD Synchronize" msgstr "" msgid "Synchronize with dragged repository" msgstr "" #, python-format msgid "unrecognized response: %s" msgstr "ismeretlen válasz: %s" msgid "password: " msgstr "jelszó: " #, python-format msgid "repository %s not found" msgstr "" msgid "win32ill: cannot create window for messages" msgstr "" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "" msgid "win32ill: interrupted while stopping message loop\n" msgstr "" #~ msgid "(version %s)" #~ msgstr "verzió %s" #~ msgid "with %s" #~ msgstr "%s -al" #~ msgid "A new version of TortoiseHg is ready for download!" #~ msgstr "A TortoiseHG új verziója letölthető!" #~ msgid "Copyright 2008-2010 Steve Borho and others" #~ msgstr "Szerzői jog 2008-2010 Steve Borho és mások" #~ msgid "Several icons are courtesy of the TortoiseSVN project" #~ msgstr "Néhány ikon a TortoiseSVN projekt jóvoltából" #~ msgid "Archive" #~ msgstr "Archívum" #~ msgid "Canceled archiving" #~ msgstr "Archíválás megszakítva" #~ msgid "Archived successfully" #~ msgstr "Archíválás kész" #~ msgid "Archive revision:" #~ msgstr "Archív revízió:" #~ msgid "Failed to archive" #~ msgstr "Archíválás sikertelen" #~ msgid "Compressed zip archives" #~ msgstr "Tömörített zip arhívum" #~ msgid "All Files (*.*)" #~ msgstr "Az összes fájl (*.*)" #~ msgid "" #~ "The destination \"%s\" already exists!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "A cél \"%s\" létezik!\n" #~ "\n" #~ "Felül írja?" #~ msgid "" #~ "The directory \"%s\" isn't empty!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "A könyvtár \"%s\" nem üres!\n" #~ "\n" #~ "Felül írja?" #~ msgid "Old name:" #~ msgstr "Régi név:" #~ msgid "Bookmark input is empty" #~ msgstr "Könyvjelző bemenet üres" #~ msgid "unexpected type: %s" #~ msgstr "Váratlan típus: %s" #~ msgid "unexpected response id: %s" #~ msgstr "nem várt válasz azonosító: %s" #~ msgid "Error in bookmarking" #~ msgstr "Hiba a könyvjelzés közben" #~ msgid "Bookmark \"%s\" has been added" #~ msgstr "\"%s\" Könyvjelző hozzáadva" #~ msgid "Bookmarking completed" #~ msgstr "Könyvjelzés sikeres" #~ msgid "Please enter bookmark name" #~ msgstr "Kérjük adja meg a könyvjelző nevét" #~ msgid "Bookmark name is empty" #~ msgstr "Könyvjelző név üres" #~ msgid "Bookmark \"%s\" has been moved" #~ msgstr "\"%s\" könyvjelző mozgatva" #~ msgid "Bookmark new name input is empty" #~ msgstr "Új könyvjelző név üres" #~ msgid "Bookmark \"%s\" has been removed" #~ msgstr "\"%s\" könyvjelző eltávolítva" #~ msgid "Please select bookmark name to remove" #~ msgstr "Kérem válassza ki az eltávolítani kívánt könyvjelzőt" #~ msgid "Please enter new bookmark name" #~ msgstr "Kérjük adja meg az új könyvjelző nevét" #~ msgid "path" #~ msgstr "útvonal" #~ msgid "browser" #~ msgstr "böngésző" #~ msgid "Bookmark \"%s\" has been renamed to \"%s\"" #~ msgstr "Könyvjelző \"%s\" átnevezve \"%s\"-re" #~ msgid "No bookmark named \"%s\" exists" #~ msgstr "\"%s\" nevű könyvjelző nem létezik" #~ msgid "a bookmark named \"%s\" already exists" #~ msgstr "\"%s\" könyvjelző már létezik" #~ msgid "type" #~ msgstr "típus" #~ msgid "[All Files]" #~ msgstr "[Minden Fájl]" #~ msgid "Repository Error: %s, refresh suggested" #~ msgstr "Adattár hiba: %s, frissítés javasolt" #~ msgid "unknown hunk type: %s" #~ msgstr "ismeretlen púp: %s" #~ msgid "Save as.." #~ msgstr "Mentés másként..." #~ msgid "[no hunks to display]" #~ msgstr "[nincsenek megjeleníthető púpok]" #~ msgid " %s is larger than the specified max diff size" #~ msgstr " %s nagyobb, mint a megengedett maximális különbség méret" #~ msgid "_Revert File Contents" #~ msgstr "File _Visszaállítása" #~ msgid "_File History" #~ msgstr "_Fájl története" #~ msgid "_Annotate File" #~ msgstr "File _Címkézése" #~ msgid "Revert %s to contents at revision %d?" #~ msgstr "Visszaállított %s tartalom a %d verzióban" #~ msgid "Diff to second Parent" #~ msgstr "Különbség a második szülőhöz képest" #~ msgid "TortoiseHg Clone" #~ msgstr "TortoiseHg Klón" #~ msgid "Bundle..." #~ msgstr "Csomag..." #~ msgid "Enable _Wordwrap" #~ msgstr "_Sortörés engedélyezése" #~ msgid "Select a Mercurial Bundle" #~ msgstr "Válasszon Mercurial csomagot" #~ msgid "Unable to save file" #~ msgstr "A file nem menthető" #~ msgid "Confirm revert file to old revision" #~ msgstr "Visszaállított fájl jóváhagyása a régi verzióhoz" #~ msgid "Use uncompressed transfer" #~ msgstr "Tömörítettlen adatátvitel használata" #~ msgid "Advanced options" #~ msgstr "Speciális beállítások" #~ msgid "Source path:" #~ msgstr "Forrás elérési útvonala:" #~ msgid "Failed to clone" #~ msgstr "Klónozás sikertelen" #~ msgid "Cloned successfully" #~ msgstr "Klónozás sikeres" #~ msgid "Branch Operations" #~ msgstr "Branch műveletek" #~ msgid "Source and destination are the same" #~ msgstr "Forrás és cél azonos" #~ msgid "Canceled updating" #~ msgstr "Frissítés megszakítva" #~ msgid "Please specify different paths" #~ msgstr "Kérjük adjon meg különböző útvonalakat" #~ msgid "Please enter a valid source path" #~ msgstr "Kérjük adjon meg valós elérési útvonalat" #~ msgid "Clone" #~ msgstr "Klón" #~ msgid "Mercurial bundles" #~ msgstr "Mercurial csomagok" #~ msgid "Source path is empty" #~ msgstr "Forrás útvonal üres" #~ msgid "merging " #~ msgstr "összemásolás " #~ msgid "Close current named branch" #~ msgstr "Aktális elnevezésű ág zárása" #~ msgid "Ignore Max Diff Size" #~ msgstr "Maxximális különbözet méret figyelmenkívül hagyása" #~ msgid "Toolbar" #~ msgstr "Eszköztár" #~ msgid "Always Show Output" #~ msgstr "Mindíg mutassa a kimenetet" #~ msgid "_View" #~ msgstr "_Nézet" #~ msgid "_Operations" #~ msgstr "_Műveletek" #~ msgid "_Undo" #~ msgstr "_Visszavonás" #~ msgid "_Commit" #~ msgstr "_Kommit" #~ msgid "Advanced" #~ msgstr "Haladó" #~ msgid "_Forget" #~ msgstr "_Felejtse el" #~ msgid "_Diff" #~ msgstr "_Különbség" #~ msgid "_Remove" #~ msgstr "_Eltávolítás" #~ msgid "undo recent commit" #~ msgstr "Aktuális commit visszavonása" #~ msgid "Show/Hide Patch Queue" #~ msgstr "Mutatása/Elrejtése a Javító Sornak" #~ msgid "_Add" #~ msgstr "_Hozzáadás" #~ msgid "Re_vert" #~ msgstr "Visszaállítás" #~ msgid "Save commit message at exit?" #~ msgstr "Mentse a kommit üzenetet kilépéskor?" #~ msgid "commit" #~ msgstr "kommit" #~ msgid "Not at head" #~ msgstr "Nem a fej" #~ msgid "Patch Preview" #~ msgstr "Javítás Előnézet" #~ msgid "Auto-includes:" #~ msgstr "Automatikusa-magába foglaltak:" #~ msgid "Committer:" #~ msgstr "Kommitáló:" #~ msgid "Push after commit" #~ msgstr "Push a kommit után" #~ msgid "Recent commit messages..." #~ msgstr "Aktuális kommit üzenet" #~ msgid "Commit Preview" #~ msgstr "Kommit Előnézet" #~ msgid "create new MQ patch" #~ msgstr "új MQ patch létrehozása" #~ msgid "neither parent is a head, commit to add a new head" #~ msgstr "egyik szülős sem a fej, kommital új fej létrehozása" #~ msgid "Unable to create " #~ msgstr "Nem lehet létrehozni " #~ msgid "Merge " #~ msgstr "Egyesítés " #~ msgid "Patch Contents" #~ msgstr "Javítás Tartalma" #~ msgid "close branch: " #~ msgstr "ág zárása: " #~ msgid "No committable files selected" #~ msgstr "Nincs kommitálható fájl kiválasztva" #~ msgid "new branch: " #~ msgstr "Új ág: " #~ msgid "parent is not a head, commit to add a new head" #~ msgstr "szülő nem a fej, kommital új fej létrehozása" #~ msgid "Errors during rollback!" #~ msgstr "Hiba a visszagörgetés alatt!" #~ msgid "" #~ "Unable to undo!\n" #~ "\n" #~ "Tip revision differs from last commit." #~ msgstr "" #~ "Nem lehet visszavonni!\n" #~ "\n" #~ "Tipp: Verzió különbség az utolsó érvényesítéskor" #~ msgid "Add/Remove the following files?" #~ msgstr "Hozzáadja/Eltávolítja a következő fájlokat?" #~ msgid "Confirm Add/Remove" #~ msgstr "Hozzáadás/Eltávolítás jóváhagyása" #~ msgid "Unable to apply patch" #~ msgstr "Nem lehet a javítást alkalamzni" #~ msgid "Confirm Undo Commit" #~ msgstr "Visszavonási commit jóváhagyása" #~ msgid "Undo Commit" #~ msgstr "Jóváhagyás visszavonása" #~ msgid "Commit: Invalid username" #~ msgstr "Jóváhagyás: Hibás felhasználóinév" #~ msgid "" #~ "The following lines are over the %i-character limit: %s.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "A %i sorban a karakterek száma nagyobb mint %s.\n" #~ "\n" #~ "Hagyja figyelmenkívül a formázási előírást és folytassa a kommitot?" #~ msgid "" #~ "The summary line is not followed by a blank line.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "Az összefoglaló sort nem üres sor követi.\n" #~ "\n" #~ "Hagyja figyelmenkívül a formázási előírást és folytassa a kommitot?" #~ msgid "" #~ "Your username has not been configured.\n" #~ "\n" #~ "Please configure your username and try again" #~ msgstr "" #~ "Felhasználóinév nincs konfigurálva\n" #~ "\n" #~ "Kérjük konfigurálja és próbálja újra." #~ msgid "Message format configuration error" #~ msgstr "Üzenet formátum konfigurálási hiba" #~ msgid "" #~ "The summary line length of %i is greater than %i.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "Az összegfoglaló sor hossza %i nagyobb mint %i\n" #~ "\n" #~ "Hagyja figyelmenkívül a formázási előírást és folytassa a kommitot?" #~ msgid "Confirm Commit" #~ msgstr "Érvényesítés jóváhagyása" #~ msgid "App_ly Format" #~ msgstr "Formátú Érvényesítése" #~ msgid "Paste _Filenames" #~ msgstr "_Fájlnevek beillesztése" #~ msgid "Aborted committing" #~ msgstr "Megszakított érvényesítés" #~ msgid "Cannot run now" #~ msgstr "Jelenleg nem futtatható" #~ msgid "C_onfigure Format..." #~ msgstr "Formátúm beállítás" #~ msgid "Committing changes..." #~ msgstr "Változások véglegesítése…" #~ msgid "Failed to commit" #~ msgstr "Hibás érvényesítés" #~ msgid "The summary line is not followed by a blank line" #~ msgstr "Az összefoglaló sort nem követi üres sor" #~ msgid "The summary line length of %i is greater than %i" #~ msgstr "Az összefoglaló sor hossza %i nagyobb mint %i" #~ msgid "Message format needs to be configured" #~ msgstr "Üzenet formátúm konfigurálása szükséges" #~ msgid "Info Required" #~ msgstr "Információ Szükséges" #~ msgid "Updating..." #~ msgstr "Frissítés..." #~ msgid "Displaying all items" #~ msgstr "Összes elem megjelenítése" #~ msgid "Stop operation on current tab" #~ msgstr "Művelet leállítása az aktuális tabon" #~ msgid "New Search" #~ msgstr "Új keresés" #~ msgid "Open new search tab" #~ msgstr "Új kereső fül megnyitása" #~ msgid "Invalid path" #~ msgstr "Érvénytelen útvonal" #~ msgid "Selecting %(sel)d, displaying %(count)d of %(total)d items" #~ msgstr "Kiválaszt %(sel)d, megjelenít %(count)d a %(total)d elemből" #~ msgid "Selecting %(sel)d of %(total)d, displaying all items" #~ msgstr "Kiválaszt %(sel)d a %(total)dból, összes elem megjelenítése" #~ msgid "_View File at Revision" #~ msgstr "Fájl Megtekintése a Verzióban" #~ msgid "_Zoom to Change" #~ msgstr "_Nagyitás a változásra" #~ msgid "_Annotate Parent" #~ msgstr "Szülő Megjelölése" #~ msgid "Di_splay Change" #~ msgstr "Változások Megjelenítése" #~ msgid "" #~ "Comma separated list of exclusion patterns. Exclusion patterns are " #~ "applied after inclusion patterns." #~ msgstr "" #~ "Vesszővel elválasztva a kivételi minták. A kivételi minta az alkalmazott " #~ "minták után kerül kiértékelésre." #~ msgid "Start this search" #~ msgstr "Keresés indítása" #~ msgid "" #~ "Comma separated list of inclusion patterns. By default, the entire " #~ "repository is searched." #~ msgstr "" #~ "Vesszővel elválasztva a keresési minták. Alapértelmezésként a teljes " #~ "repository-ban keres" #~ msgid "Show line numbers" #~ msgstr "Sorok számának mutatása" #~ msgid "Error: %s" #~ msgstr "Hiba: %s" #~ msgid "Abort: %s" #~ msgstr "Megszakítás: %s" #~ msgid "Invalid regular expression" #~ msgstr "Érvénytelen reguláris kifejezés" #~ msgid "You must provide a search expression" #~ msgstr "Keresési kifejezés megadása kötelező" #~ msgid "Show all matching revisions" #~ msgstr "Összes egyező verzió megjelenítése" #~ msgid "No regular expression given" #~ msgstr "Nincs megadva reguláris kifejezés" #~ msgid "Matches" #~ msgstr "Találatok" #~ msgid "Repository Explorer" #~ msgstr "Repository Explorer" #~ msgid "Unable to annotate " #~ msgstr "Nem cimkézhető " #~ msgid "File is unrevisioned" #~ msgstr "Fájl nem verziózott" #~ msgid "Search \"%s\"" #~ msgstr "Keresés \"%s\"" #~ msgid "_Tools" #~ msgstr "_Eszközök" #~ msgid "Loading history..." #~ msgstr "Változások betöltése..." #~ msgid "Index" #~ msgstr "Tárgymutató" #~ msgid "Contents" #~ msgstr "Tartalom" #~ msgid " Aborted" #~ msgstr " Megszakítva" #~ msgid "_Help" #~ msgstr "_Súgó" #~ msgid "Serve" #~ msgstr "Szolgáltat" #~ msgid "Recovery" #~ msgstr "Visszaállítás" #~ msgid "Shelve" #~ msgstr "Mellőz" #~ msgid "Do you want to abort?" #~ msgstr "Biztosa megszakítja" #~ msgid "making snapshot of %d files from rev %s\n" #~ msgstr "Pillanat felvétel készítése a %d fájlról a%s verzióban\n" #~ msgid "edit failed" #~ msgstr "szerkestés sikertelen" #~ msgid "Select" #~ msgstr "Kiválaszt" #~ msgid " Messages and Errors" #~ msgstr " Üzenetek és Hibák" #~ msgid "Confirm Abort" #~ msgstr "Megszakítás Jóváhagyása" #~ msgid "unknown mode name: %s" #~ msgstr "ismeretlen mód név: %s" #~ msgid "Ambiguous Revision" #~ msgstr "Azonos nevű revízió" #~ msgid "Select Revision" #~ msgstr "Revízió kiválasztása" #~ msgid "Select Folder" #~ msgstr "Könyvtárválasztás" #~ msgid "All files" #~ msgstr "Minden fájl" #~ msgid "Save File" #~ msgstr "Fájl mentése" #~ msgid "Invalid Revision" #~ msgstr "Érvénytelen Revízió" #~ msgid "revision number, changeset ID, branch or tag" #~ msgstr "revízió szám, változás ID, ág vagy cimke" #~ msgid "Lang \"%s\" can not be set.\n" #~ msgstr "Nyelv \"%s\" nem beállítható.\n" #~ msgid "" #~ "Select language for spell checking.\n" #~ "\n" #~ "Empty is for the default language.\n" #~ "When all text is highlited, the dictionary\n" #~ "is probably not installed.\n" #~ "\n" #~ "examples: en, en_GB, en_US" #~ msgstr "" #~ "Nyelv választása a helyesírásellenörzéshez.\n" #~ "\n" #~ "Ha üres akkor az alapértelemzett nyelv lesz használva.\n" #~ "Ha az össze szöveg hibásnak van megjelölve, akkor lehet\n" #~ "hogy a szótár nincs installálva" #~ msgid "Accept Match" #~ msgstr "Egyezés Elfogadása" #~ msgid "Differences from Source to Dest" #~ msgstr "Kölömbség a Forrás és a Cél között" #~ msgid "Candidate Matches" #~ msgstr "Jelölt Egyeződések" #~ msgid "Minimum Simularity Percentage" #~ msgstr "Minimális hasonlóság Százalékban" #~ msgid "Find Copies" #~ msgstr "Másolatok keresése" #~ msgid "Unrevisioned Files" #~ msgstr "Nem Revíziózott Fájlok" #~ msgid "Spell Check Language" #~ msgstr "Helyesírás Ellenörés Nyelve" #~ msgid "Changeset Description" #~ msgstr "Változás Ismertető" #~ msgid "Backout changeset - %s" #~ msgstr "Megszegett változás halmaz - %s" #~ msgid "Backout commit message" #~ msgstr "Megszegett jóváhagyási üzenet" #~ msgid "Diff to _local" #~ msgstr "Különbség a _helyihez képest" #~ msgid "_Visual Diff" #~ msgstr "_Vizuális különbség" #~ msgid "%s changeset " #~ msgstr "%s változás halmaz " #~ msgid "_View at Revision" #~ msgstr "Revízió Nézése" #~ msgid "_Save at Revision..." #~ msgstr "Revízióhoz Menté_s" #~ msgid "refresh top MQ patch" #~ msgstr "felső MR javítás frissítése" #~ msgid "_Commit (+1 head)" #~ msgstr "_Jóváhagy (+1 fej)" #~ msgid "Nothing Commited" #~ msgstr "Semmi jóváhagyott" #~ msgid "Datamine" #~ msgstr "Adattípus" #~ msgid "" #~ "== %s and %s have identical contents ==\n" #~ "\n" #~ msgstr "" #~ "== %s és %s azonosító tartalomnak kell lennie ==\n" #~ "\n" #~ msgid "finding source of " #~ msgstr "forrás keresése " #~ msgid "%s - datamine" #~ msgstr "%s - adattípus" #~ msgid "commit to merge one head" #~ msgstr "jóváhagyás egy fej összeölvaszáthoz" #~ msgid "_Commit (-1 head)" #~ msgstr "_Jóváhagy (-1 fej)" #~ msgid "Command Log" #~ msgstr "Parancs Log" #~ msgid "Send" #~ msgstr "Küld" #~ msgid "unknown CmdWidget style: %s" #~ msgstr "ismeretlem CmdWidget stílus: %s" #~ msgid "invalid state" #~ msgstr "Nem megfelelő állapot" #~ msgid "Test" #~ msgstr "Teszt" #~ msgid "Close this" #~ msgstr "Elem bezárása" #~ msgid "Stop transaction" #~ msgstr "Tranzakció megállítása" #~ msgid "Send emails" #~ msgstr "Email-ek küldése" #~ msgid "Toggle log window" #~ msgstr "Log ablak kapcsoló" #~ msgid "" #~ "\n" #~ "[command interrupted]" #~ msgstr "" #~ "\n" #~ "[parancs megszakítva]" #~ msgid "Configure" #~ msgstr "Konfigurálás" #~ msgid "Envelope" #~ msgstr "Boríték" #~ msgid "Email revisions " #~ msgstr "Email revízió " #~ msgid "Show emails which would be sent" #~ msgstr "Elküldött email-ek megjelenítése" #~ msgid "Configure email settings" #~ msgstr "Email beállítások" #~ msgid "Email outgoing changes" #~ msgstr "Email a kimenőváltozásokról" #~ msgid "Email Mercurial Patches" #~ msgstr "Mercurial Javítások Email" #~ msgid "Flags:" #~ msgstr "Jelölések:" #~ msgid "" #~ "This feature is only available when sending outgoing changesets. It is " #~ "not applicable with revision ranges." #~ msgstr "" #~ "Ez csak akkor választható, ha kimenő változást küldünk. Nem alkalmazható " #~ "revízió töredékekre." #~ msgid "Patch Series (Bundle) Description" #~ msgstr "Javító Csomag Leírás" #~ msgid "Info required" #~ msgstr "Információ szükséges" #~ msgid "You must specify a sender address" #~ msgstr "A küldő címet kötelező megadni" #~ msgid "You must specify a recipient" #~ msgstr "Fogadó megadása szükséges" #~ msgid "You must configure SMTP" #~ msgstr "Kérjük konfigurálja az SMPT beállításokat" #~ msgid "Apply to:" #~ msgstr "Hatáskör:" #~ msgid "Remove Selected" #~ msgstr "A kijelöltek eltávolítása" #~ msgid "Unknown Files" #~ msgstr "Ismeretlen fájlok" #~ msgid "Filters" #~ msgstr "Szűrők" #~ msgid "TortoiseHg Init" #~ msgstr "TortoiseHg Init" #~ msgid "Add special files (.hgignore, ...)" #~ msgstr "Speciális fájlok hozzáadása (.hgignore, ...)" #~ msgid "Make repo compatible with Mercurial 1.0" #~ msgstr "Repsitory legyen kompatibilis a Mercurial 1.0-val" #~ msgid "Destination path is empty" #~ msgstr "Cél útvonal üres" #~ msgid "Please enter the directory path" #~ msgstr "Kérjük adja meg a könytár útvonalát" #~ msgid "Unable to create new repository" #~ msgstr "Nem lehet új repository-t létrehozni" #~ msgid "Error when creating repository" #~ msgstr "Hiba a repository létrehozása közben" #~ msgid "response expected" #~ msgstr "vár válasz" #~ msgid "[command returned code %d " #~ msgstr "[parancs visszatérési értéke %d " #~ msgid "[command completed successfully " #~ msgstr "[parancs sikeresen végrehajtva " #~ msgid "hgtk: unknown command '%s'\n" #~ msgstr "hgtk: ismeretlen parancs '%s'\n" #~ msgid "hgtk: %s\n" #~ msgstr "hgtk: %s\n" #~ msgid "hgtk %s: %s\n" #~ msgstr "hgtk %s: %s\n" #~ msgid "Rename error" #~ msgstr "Átnevezési hiba" #~ msgid "rename takes one or two path arguments" #~ msgstr "az átnevezéshez egy vagy kettő útvonal argumentum szükséges" #~ msgid "There is no Mercurial repository here (.hg not found)" #~ msgstr "Nem Mercurial repository (.hg nem található)" #~ msgid "mpatch error" #~ msgstr "mpatch hiba" #~ msgid "mpatch expects *.rej file argument\n" #~ msgstr "mpatch *rej argumentumot vár\n" #~ msgid "use \"hgtk help\" for the full list of commands" #~ msgstr "használja a \"hgtk help\" a teljes parancslistához" #~ msgid "" #~ "use \"hgtk help\" for the full list of commands or \"hgtk -v\" for details" #~ msgstr "" #~ "használja \"hgtk help\" teljes parancslistához vagy \"hgtk -v\" a " #~ "részletekért" #~ msgid "use \"hgtk -v help%s\" to show aliases and global options" #~ msgstr "a \"hgtk -v help%s\" megmutatja az aliasokat és a globális opciókat" #~ msgid "Glob:" #~ msgstr "Glob:" #~ msgid "use \"hgtk -v help %s\" to show global options" #~ msgstr "a \"hgtk -v help %s\" használata megmutaja a globális opciókat" #~ msgid "(No help text available)" #~ msgstr "(Súgó nem található)" #~ msgid "Hgtk - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" #~ msgstr "Hgtk - TortoiseHg Grafikus eszköz a Mercurial SCM (Hg)-hoz\n" #~ msgid "hgtk about" #~ msgstr "hgtk-ról" #~ msgid "hgtk add [FILE]..." #~ msgstr "hgtk [FILE] hozzáadása..." #~ msgid "hgtk hgignore [FILE]" #~ msgstr "hgtk hgignore [FILE]" #~ msgid "hgtk datamine" #~ msgstr "hgtk datamine" #~ msgid "hgtk commit [OPTIONS] [FILE]..." #~ msgstr "hgtk commit [OPTIONS] [FILE]..." #~ msgid "hgtk log [OPTIONS] [FILE]" #~ msgstr "hgtk log [OPTIONS] [FILE]" #~ msgid "hgtk init [DEST]" #~ msgstr "hgtk init [DEST]" #~ msgid "revision to merge with" #~ msgstr "revízió összemásolása" #~ msgid "hgtk recovery" #~ msgstr "hgtk recovery" #~ msgid "hgtk merge" #~ msgstr "hgtk merge" #~ msgid "hgtk synch" #~ msgstr "hgtk synch" #~ msgid "hgtk shelve" #~ msgstr "hgtk shelve" #~ msgid "hgtk status [FILE]..." #~ msgstr "hgtk status [FILE]..." #~ msgid " - commit" #~ msgstr " - commit" #~ msgid "limit number of changes displayed" #~ msgstr "megjelenített változások korlátja" #~ msgid "revisions to compare" #~ msgstr "revíziók összehasonlítása" #~ msgid "udpate all repos in current dir" #~ msgstr "Összes repo frissítése az aktuális könyvtárban" #~ msgid "import to the repository" #~ msgstr "importálás a repositoryba" #~ msgid "show the command options" #~ msgstr "parancs opciók mutatása" #~ msgid "Merges" #~ msgstr "Összefésülések" #~ msgid "Hide Merges" #~ msgstr "Összefésülésekk elrejtése" #~ msgid "Move Up" #~ msgstr "Mozgatás felfelé" #~ msgid "Move Down" #~ msgstr "Mozgatás lefelé" #~ msgid "Ancestry" #~ msgstr "Származás" #~ msgid "Tagged" #~ msgstr "Címke:" #~ msgid "Heads" #~ msgstr "Fejek" #~ msgid "Columns" #~ msgstr "Oszlopok" #~ msgid "Log Details" #~ msgstr "Részletes log" #~ msgid "Custom Filter" #~ msgstr "Saját Szűrő" #~ msgid "File Patterns" #~ msgstr "Fájl sablonok" #~ msgid "" #~ "New changesets from the preview bundle are still pending.\n" #~ "\n" #~ "Accept or reject the new changesets?" #~ msgstr "" #~ "Új változások az előnézeti csomagban még mindíg várakoznak.\n" #~ "\n" #~ "Elfogadja vagy elveti a változásokat?" #~ msgid "Keywords" #~ msgstr "Kulcsszavak" #~ msgid "Accept new Changesets" #~ msgstr "Új változások elfogadása" #~ msgid "&Accept" #~ msgstr "El&fogadás" #~ msgid "Branches..." #~ msgstr "Branchek..." #~ msgid "Branch Filter" #~ msgstr "Branch Szűrő" #~ msgid "Launch recovery tool" #~ msgstr "Visszaállító eszköz indítása" #~ msgid "Launch web server" #~ msgstr "Webszerver indítása" #~ msgid "Launch commit tool" #~ msgstr "Kommit eszköz indítása" #~ msgid "Launch data mining tool" #~ msgstr "Adatbányás eszköz indítása" #~ msgid "&Reject" #~ msgstr "El&utasítás" #~ msgid " (Bundle Preview)" #~ msgstr " (Csomag Előnézet)" #~ msgid "Reload revision history" #~ msgstr "Revízió történet újraolvasása" #~ msgid "Re_fresh" #~ msgstr "_Frissítés" #~ msgid "Load more Revisions" #~ msgstr "Többi Revízió betöltése" #~ msgid "Tags" #~ msgstr "Címkék" #~ msgid "Identify" #~ msgstr "Azonosító" #~ msgid "Branches" #~ msgstr "Ágak" #~ msgid "Load all Revisions" #~ msgstr "Összes Revízió Betöltése" #~ msgid "Pending" #~ msgstr "Függőben" #~ msgid "Revision..." #~ msgstr "Revízió..." #~ msgid "_Navigate" #~ msgstr "_Navigálás" #~ msgid "Color by Branch" #~ msgstr "Ágak színezése" #~ msgid "Choose Details..." #~ msgstr "Részletezettség..." #~ msgid "Compact Graph" #~ msgstr "Egyszerűsített Graficon" #~ msgid "_Synchronize" #~ msgstr "_Szinkronizálás" #~ msgid "Previously Selected" #~ msgstr "Korábban Kiválasztott" #~ msgid "Tip" #~ msgstr "Tipp" #~ msgid "Add Bundle..." #~ msgstr "Csomag hozzáadása..." #~ msgid "Accept Bundle" #~ msgstr "Csomag Elfogadás" #~ msgid "Reject Bundle" #~ msgstr "Csomag Visszautasítás" #~ msgid "Import..." #~ msgstr "Importálás…" #~ msgid "Push" #~ msgstr "Feltol" #~ msgid "Email..." #~ msgstr "E-mail..." #~ msgid "Configure Paths..." #~ msgstr "Elérési utak…" #~ msgid "Outgoing" #~ msgstr "Kimenő" #~ msgid "Incoming" #~ msgstr "Bejövő" #~ msgid "Parent: %(rev)s" #~ msgstr "Szülő: %(rev)s" #~ msgid "Search %d" #~ msgstr "Keresés %d" #~ msgid "" #~ "hgtk: command '%s' is ambiguous:\n" #~ " %s\n" #~ msgstr "" #~ "hgtk: parancs '%s' nem egyedi:\n" #~ " %s\n" #~ msgid "%s does not exist\n" #~ msgstr "%s nem létezik\n" #~ msgid "File is binary.\n" #~ msgstr "Az állomány bináris.\n" #~ msgid "File is larger than the specified max size.\n" #~ msgstr "Az állomány nagyobb a megadott maximumnál.\n" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/id.po0000644000000000000000000046065314440352353016240 0ustar00rootroot# Indonesian translation for tortoisehg # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the tortoisehg package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2015-06-28 12:42+0000\n" "Last-Translator: Wagner Bruna \n" "Language-Team: Indonesian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2019-07-17 05:43+0000\n" "X-Generator: Launchpad (build 19009)\n" msgid "TortoiseHg Overlay Icon Server" msgstr "Hamparan Ikon Server TortoiseHg" msgid "Exit" msgstr "Keluar" msgid "About" msgstr "Informasi program" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "" msgid "You can visit our site here" msgstr "Anda bisa mengunjungi situs kami disini" msgid "&License" msgstr "&Lisensi" #, python-format msgid "version %s" msgstr "versi %s" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "dengan Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "" msgid "License" msgstr "" msgid "= Working Directory Parent =" msgstr "= Induk Direktori Kerja =" msgid "Directory of files" msgstr "Direktori berkas-berkas" msgid "Tar archives" msgstr "Arsip-arsip tar" msgid "Uncompressed tar archive" msgstr "" msgid "Bzip2 tar archives" msgstr "Arsip-arsip tar bzip2" msgid "Tar archive compressed using bzip2" msgstr "" msgid "Gzip tar archives" msgstr "Arsip-arsip tar gzip" msgid "Tar archive compressed using gzip" msgstr "" msgid "Zip archives" msgstr "Arsip zip" msgid "Uncompressed zip archive" msgstr "" msgid "Zip archive compressed using deflate" msgstr "" msgid "Revision:" msgstr "Revisi:" msgid "All files in this revision" msgstr "" msgid "Only files modified/created in this revision" msgstr "Hanya berkas yang diubah/dibuat dalam revisi ini" msgid "Only files modified/created since:" msgstr "" msgid "Archive Content:" msgstr "" msgid "Recurse into subrepositories" msgstr "" msgid "Browse..." msgstr "Telusur..." msgid "Destination path:" msgstr "Path tujuan:" msgid "Archive types:" msgstr "Tipe arsip:" msgid "Hg command:" msgstr "Perintah hg:" msgid "Select Destination Folder" msgstr "Pilih Direktori yang dituju" msgid "Select Destination File" msgstr "" msgid "All files (*)" msgstr "" msgid "Duplicate Name" msgstr "Nama Rangkap" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "Yang dituju \"%s\" sudah ada sebagai berkas!" msgid "Confirm Overwrite" msgstr "Konfirmasi untuk ditimpa" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" "Direktori \"%s\" tidak kosong!\n" "\n" "Anda ingin menimpanya?" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" "Berkas \"%s\" sudah ada!\n" "\n" "Anda ingin menimpanya?" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "Yang dituju \"%s\" sudah ada sebagai folder!" #, python-format msgid "Archive - %s" msgstr "Arsip - %s" msgid "&Archive" msgstr "&Arsip" msgid "Backout requires a parent revision" msgstr "" msgid "Cannot backout change on a different branch" msgstr "" #, python-format msgid "Backout - %s" msgstr "" msgid "Prepare to backout" msgstr "" msgid "Verify backout revision and ensure your working directory is clean." msgstr "" msgid "Backing out a parent revision is a single step operation" msgstr "" msgid "Backout revision" msgstr "" msgid "Not a head, backout will create a new head!" msgstr "" msgid "Current local revision" msgstr "Revisi lokal saat ini" msgid "Working directory status" msgstr "Status direktori kerja" msgid "Checking..." msgstr "Memeriksa..." msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Automatically resolve merge conflicts where possible" msgstr "Otomatis menyelesaikan konflik penggabungan bila dimungkinkan" msgid "Uncommitted local changes are detected" msgstr "" msgid "Clean" msgstr "Bersih" msgid "Backing out, then merging..." msgstr "" msgid "All conflicting files will be marked unresolved." msgstr "" "Semua berkas-berkas yang konflik akan ditandai dengan tidak terselesaikan." msgid "Automatically advance to next page when backout and merge are complete." msgstr "" #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" "%d berkas mempunyai konflik penggabungan yang harus diselesaikan" msgid "No merge conflicts, ready to commit" msgstr "" msgid "Commit backout and merge results" msgstr "" msgid "Parents" msgstr "Induk-induk" msgid "Working Directory" msgstr "Direktori Kerja" msgid "Working Directory (merged)" msgstr "Direktori Kerja (digabung)" msgid "Commit message" msgstr "" msgid "Skip final confirmation page, close after commit." msgstr "" msgid "Backed out changeset: " msgstr "" msgid "Confirm Discard Message" msgstr "Pesan Konfirmasi Untuk Dibuang" msgid "Discard current backout message?" msgstr "" msgid "Use English backout message" msgstr "" msgid "Backing out and committing..." msgstr "" msgid "Please wait while making backout." msgstr "" msgid "Committing..." msgstr "" msgid "Please wait while committing merged files." msgstr "" msgid "Finished" msgstr "Diselesaikan" msgid "Backout changeset" msgstr "" #, python-format msgid "Bisect - %s" msgstr "Bisect - %s" msgid "Accept" msgstr "Diterima" msgid "Known good revision:" msgstr "Revisi bagus yang diketahui:" msgid "Known bad revision:" msgstr "Revisi buruk yang diketahui:" msgid "Discard local changes (revert --all)" msgstr "" msgid "Revision is &Good" msgstr "" msgid "Revision is &Bad" msgstr "" msgid "&Skip this Revision" msgstr "" msgid "Close" msgstr "Tutup" msgid "Error encountered." msgstr "Ditemukan kesalahan." msgid "Culprit found." msgstr "Menemukan masalahnya." msgid "Revision" msgstr "Revisi" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "Periksa revisi ini dan laporkan temuan. (baik/buruk/lewat)" #, python-format msgid "%s (hint: %s)" msgstr "%s (tanda: %s)" msgid "Bookmark:" msgstr "Penunjuk:" msgid "New Name:" msgstr "Nama Baru:" msgid "Activate:" msgstr "" msgid "&Add" msgstr "T&ambah" msgid "Re&name" msgstr "Me&namai" msgid "&Remove" msgstr "Singki&rkan" msgid "&Move" msgstr "" #, python-format msgid "Bookmark - %s" msgstr "Penunjuk - %s" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "Penunjuk yang disebut \"%s\" sudah ada" #, python-format msgid "Bookmark '%s' has been added" msgstr "Penunjuk '%s' telah ditambahkan" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "Penunjuk yang disebut \"%s\" tidak ada" #, python-format msgid "Bookmark '%s' has been moved" msgstr "Penunjuk '%s' telah dipindahkan" #, python-format msgid "Bookmark '%s' does not exist" msgstr "Penunjuk '%s' tidak ada" #, python-format msgid "Bookmark '%s' has been removed" msgstr "Penunjuk '%s' telah disingkirkan" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "Penunjuk '%s' telah diberi nama '%s'" msgid "TortoiseHg Bookmark Sync" msgstr "" msgid "Outgoing Bookmarks" msgstr "" msgid "&Push Bookmark" msgstr "" msgid "&Remove Bookmark" msgstr "" msgid "Incoming Bookmarks" msgstr "" msgid "P&ull Bookmark" msgstr "" msgid "R&emove Bookmark" msgstr "" #, python-format msgid "Pushed local bookmark: %s" msgstr "" #, python-format msgid "Pulled remote bookmark: %s" msgstr "" #, python-format msgid "Removed remote bookmark: %s" msgstr "" #, python-format msgid "Removed local bookmark: %s" msgstr "" #, python-format msgid "%s - branch operation" msgstr "" msgid "Select branch of merge commit" msgstr "" msgid "Changes take effect on next commit" msgstr "" msgid "No branch changes" msgstr "" msgid "Open a new named branch" msgstr "" msgid "Close current branch" msgstr "" #, python-format msgid "Please report this bug to our bug tracker" msgstr "" "Silahkan melaporkan bug ini pada kami melalui pelacak bug" msgid "Checking for updates..." msgstr "" msgid "Copy" msgstr "Salin" msgid "Quit" msgstr "Keluar" msgid "TortoiseHg Bug Report" msgstr "Laporan Bug TortoiseHg" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "" msgid "Your TortoiseHg is up to date." msgstr "" msgid "Save error report to" msgstr "Simpan laporan kesalahan ke" msgid "Text files (*.txt)" msgstr "Berkas teks (*.txt)" msgid "Error writing file" msgstr "Kesalahan menulis berkas" msgid "TortoiseHg Error" msgstr "Kesalahan TortoiseHg" msgid "" "If you still have trouble, please file a bug report." msgstr "" "Bila anda mendapatkan masalah, silahkan melaporkan " "berkas bug." msgid "Visual Diff" msgstr "Diff Visual" msgid "View file changes in external diff tool" msgstr "Menampilkan berkas perubahan kedalam sarana diff eksternal" msgid "Edit Local" msgstr "Ubah Lokal" msgid "Edit current file in working copy" msgstr "Ubah berkas ini dalam salinan kerja" msgid "Revert to Revision" msgstr "Kembali ke Revisi" msgid "Revert file(s) to contents at this revision" msgstr "" msgid "Patch failed to apply" msgstr "Patch gagal untuk diterapkan" msgid "Manually resolve rejected chunks?" msgstr "" msgid "Edit patched file and rejects?" msgstr "Ubah berkas patch dan menolaknya?" msgid "No deletable chunks" msgstr "" msgid "Completely remove file from patch?" msgstr "" msgid "Revert all file changes?" msgstr "" msgid "No chunks remain" msgstr "" msgid "file has been deleted, refresh" msgstr "berkas telah dihapus, disegarkan" msgid "file has been modified, refresh" msgstr "berkas telah diubah, disegarkan" msgid "Unable to merge chunks" msgstr "" msgid "Add or remove patches must be merged in the working directory" msgstr "" "Menambah atau menyingkirkan patch yang harus digabungkan dalam direktori " "kerja" msgid "Unable to remove" msgstr "Tidak bisa disingkirkan" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" "Tidak bisa menyingkirkan berkas %s,\n" "perizinan ditolak" msgctxt "files" msgid "All" msgstr "Semua" msgctxt "files" msgid "None" msgstr "Tanpa" msgid "Toggle display of text search bar" msgstr "" msgid "Diff Toolbar" msgstr "" #, python-format msgid "Chunks selected: %d / %d" msgstr "" msgid "Please wait while the file is opened ..." msgstr "" msgid "Source:" msgstr "Sumber:" msgid "Destination:" msgstr "Tujuan:" msgid "Options" msgstr "Opsi-opsi" msgid "Clone to revision:" msgstr "" msgid "A revision identifier, bookmark, tag or branch name" msgstr "" msgid "Do not update the new working directory" msgstr "Jangan update salinan kerja baru" msgid "Use pull protocol to copy metadata" msgstr "" msgid "Clone with minimal processing" msgstr "" msgid "Include patch queue" msgstr "Menyertakan antrian patch" msgid "Use proxy server" msgstr "Gunakan server proxy" msgid "Do not verify host certificate" msgstr "Jangan verifikasikan sertifikat host" msgid "Remote command:" msgstr "" msgid "Use largefiles" msgstr "" msgid "Start revision:" msgstr "Revisi dimulai:" msgid "Select source repository" msgstr "Pilih sumber repositori" msgid "Select destination repository" msgstr "Pilih repositori tujuan" msgid "Select patch folder" msgstr "Pilih folder patch" #, python-format msgid "Clone - %s" msgstr "" msgid "&Clone" msgstr "" msgid "failed to start command\n" msgstr "gagal memulai perintah\n" msgid "error while running command\n" msgstr "gagal saat menjalankan perintah\n" #, python-format msgid "process exited unexpectedly with code %d" msgstr "" #, python-format msgid "failed to encode command: %s" msgstr "" #, python-format msgid "timed out while reading: %r..." msgstr "" msgid "timed out waiting for message" msgstr "" #, python-format msgid "unexpected response on required channel %r" msgstr "" #, python-format msgid "invalid \"hello\" message: %r" msgstr "" msgid "no \"runcommand\" capability" msgstr "" #, python-format msgid "corrupted command result: %r" msgstr "" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "" msgid "Terminated by user" msgstr "Dihentikan oleh pengguna" #, python-format msgid "[command terminated by user %s]" msgstr "" #, python-format msgid "[command interrupted %s]" msgstr "" #, python-format msgid "[command returned code %d %%s]" msgstr "[kode mengembalikan perintah %d %%s]" #, python-format msgid "[command completed successfully %s]" msgstr "[berhasil melengkapi perintah %s]" msgid "Running..." msgstr "Berjalan..." msgid "Failed!" msgstr "Gagal!" msgid "Clea&r Log" msgstr "" msgid "TortoiseHg Prompt" msgstr "" msgid "Show Detail" msgstr "" msgid "Hide Detail" msgstr "" msgid "Confirm Exit" msgstr "Keluar Dikonfirmasi" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" "Perintah pada Mercurial masih berjalan.\n" "Apakah anda yakin ingin menghentikannya?" msgid "&Run" msgstr "" msgid "TortoiseHg Command Dialog" msgstr "Dialog Perintah TortoiseHg" msgid "Command Error" msgstr "" #, python-format msgid "[Code: %d]" msgstr "" msgid "Merge" msgstr "" #, python-format msgid "Merge with %s" msgstr "" msgid "Patch Name Required" msgstr "" msgid "You must enter a patch name" msgstr "" msgctxt "start progress" msgid "Commit" msgstr "" msgctxt "start progress" msgid "MQ Action" msgstr "Aksi MQ" msgctxt "start progress" msgid "Rollback" msgstr "" msgid "Commit Dialog Toolbar" msgstr "" msgid "Branch: " msgstr "" msgid "Copy message" msgstr "Pesan menyalin" msgid "Copy one of the recent commit messages" msgstr "" msgid "Show Issues" msgstr "" msgid "Please wait..." msgstr "" #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "Gagal memuat pelacak isu '%s': %s" msgid "Issue Tracker" msgstr "Pelacak Isu" msgid "Show Issues..." msgstr "" msgid "Stop" msgstr "Berhenti" msgid "### patch name ###" msgstr "" msgid "Commit changes" msgstr "" msgid "Commit" msgstr "" msgid "Amend current revision" msgstr "" msgid "Amend" msgstr "" msgid "Create a new patch" msgstr "Buat patch baru" msgid "QNew" msgstr "QNew" msgid "Refresh current patch" msgstr "Segarkan patch ini" msgid "QRefresh" msgstr "QRefresh" msgid "Confirm Branch Change" msgstr "" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "" msgid "Restart &Branch" msgstr "" msgid "&Commit to current branch" msgstr "" msgid "Cancel" msgstr "Batal" msgid "Confirm New Branch" msgstr "" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "" msgid "Create &Branch" msgstr "" msgid "Close Branch: " msgstr "" msgid "New Branch: " msgstr "" #, python-format msgid "Selected Options: %s" msgstr "" msgid "Parent:" msgstr "Induk:" msgid "Patch name:" msgstr "Nama patch:" #, python-format msgid "Close %s branch" msgstr "" #, python-format msgid "Rollback commit to revision %d" msgstr "" msgid "Confirm Undo" msgstr "" msgid "Discard current commit message?" msgstr "" msgid "Message Translation Failure" msgstr "" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" msgid "&Replace" msgstr "" msgid "Nothing Committed" msgstr "" msgid "Please enter commit message" msgstr "" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" msgid "No files checked" msgstr "Tidak ada berkas yang dicentang" msgid "No modified files checkmarked for commit" msgstr "" msgid "Confirm Add" msgstr "Konfirmasi Penambahan" msgid "Add selected untracked files?" msgstr "Tambahkan berkas-berkas tak terlacak yang telah dipilih?" msgid "Confirm Remove" msgstr "Konfirmasi Penyingkiran" msgid "Remove selected deleted files?" msgstr "Singkirkan berkas-berkas yang dihapus sesuai pilihan?" msgid "Nothing changed." msgstr "" msgctxt "window title" msgid "Commit" msgstr "" #, python-format msgid "%s - commit options" msgstr "" msgid "Set username:" msgstr "Atur nama pengguna:" msgid "Save in Repo" msgstr "Simpan dalam Repo" msgid "Save Global" msgstr "" msgid "Set Date:" msgstr "Atur Tanggal:" msgid "Update" msgstr "Update" msgid "Push After Commit:" msgstr "" msgid "Auto Includes:" msgstr "Otomatis Menyertakan:" msgid "Recurse into subrepositories (--subrepos)" msgstr "" msgid "Unable to save username" msgstr "Tidak bisa menyimpan nama pengguna" msgid "Iniparse must be installed." msgstr "Iniparse harus sudah terpasang." msgid "Unable to write configuration file" msgstr "Tidak bisa menulis berkas konfigurasi" msgid "Unable to save after commit push" msgstr "" msgid "Unable to save auto include list" msgstr "Tidak bisa menyimpan daftar otomatis menyertakan" msgid "Unable to save recurse in subrepos." msgstr "" msgid "Invalid date format" msgstr "Susunan tanggal tidak benar" msgid "No username configured" msgstr "Tidak ada nama pengguna yang dikonfigurasi" #, python-format msgid "%s - commit" msgstr "" msgid "TortoiseHg Commit" msgstr "" msgid "Are you sure that you want to cancel the commit operation?" msgstr "" msgid "Compress changesets up to and including" msgstr "" msgid "Onto destination" msgstr "Pada tujuan" msgid "Compress" msgstr "Kompres" #, python-format msgid "Compress - %s" msgstr "" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the compress" msgstr "" msgid "Changes have been moved, you must now commit" msgstr "" msgctxt "action button" msgid "Commit" msgstr "" msgid "Compress is complete, old history untouched" msgstr "" msgid "must be specified repository" msgstr "harus menentukan repositorinya" msgid "must be specified 'type' in style" msgstr "harus menentukan style 'tipe' -nya" msgid "Git Commit:" msgstr "" msgid "Summary:" msgstr "" msgid "User:" msgstr "Pengguna:" msgid "Date:" msgstr "Tanggal:" msgid "Age:" msgstr "Usia:" msgid "Branch:" msgstr "" msgid "Close:" msgstr "Tutup:" msgid "Tags:" msgstr "Tags:" msgid "Graft:" msgstr "" msgid "Transplant:" msgstr "" msgid "Obsolete state:" msgstr "" msgid "Perforce:" msgstr "" msgid "Subversion:" msgstr "Subversion:" msgid "Converted From:" msgstr "" msgid "Original Parent:" msgstr "" msgid "No items to display" msgstr "" msgid "Use compact view" msgstr "Gunakan tampilan kompak" msgid "Patch:" msgstr "Patch:" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "Menampilkan %(count)d pada %(total)d" msgid "Select a GUI location to edit:" msgstr "" msgid "Select the toolbar or menu to change" msgstr "" msgid "Tools shown on selected location" msgstr "" msgid "Delete from list" msgstr "" msgid "Add to list" msgstr "" msgid "Add separator" msgstr "" msgid "List of all tools" msgstr "" msgid "New Tool ..." msgstr "" msgid "Edit Tool ..." msgstr "" msgid "Delete Tool" msgstr "" msgid "Type" msgstr "" msgid "Name" msgstr "" msgid "Command" msgstr "" msgid "New hook" msgstr "" msgid "Edit hook" msgstr "" msgid "Delete hook" msgstr "" msgid "Replace existing hook?" msgstr "" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" msgid "OK" msgstr "" msgid "Missing information" msgstr "" msgid "All items" msgstr "" msgid "Working directory" msgstr "" msgid "All revisions" msgstr "" msgid "All contexts" msgstr "" msgid "Fixed revisions" msgstr "" msgid "Applied patches" msgstr "" msgid "Applied patches or qparent" msgstr "" msgid "" msgstr "" msgid "Configure Custom Tool" msgstr "" msgid "Tool name" msgstr "" msgid "The tool name. It cannot contain spaces." msgstr "" #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" msgid "Tool label" msgstr "" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" msgid "Tooltip" msgstr "" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" msgid "Icon" msgstr "" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" msgid "On repowidget, show for" msgstr "" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" msgid "Show Output Log" msgstr "" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" msgid "You must set a tool name." msgstr "" msgid "The tool name cannot have any spaces in it." msgstr "" msgid "You must set a command to run." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" msgid "Configure Hook" msgstr "" msgid "Hook type" msgstr "" msgid "Select when your command will be run" msgstr "" msgid "The hook name. It cannot contain spaces." msgstr "" msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" msgid "You must set a valid hook type." msgstr "" msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "" msgid "Console" msgstr "" msgid "File &History / Annotate" msgstr "" msgid "Show the history of the selected file" msgstr "" msgid "Co&mpare File Revisions" msgstr "" msgid "Compare revisions of the selected file" msgstr "" msgid "Filter Histor&y" msgstr "" msgid "Query about changesets affecting the selected files" msgstr "" msgid "Diff &Changeset to Parent" msgstr "" msgid "Diff Changeset to Loc&al" msgstr "" msgid "&Diff to Parent" msgstr "" msgid "Diff to &Local" msgstr "" msgid "View changes to current in external diff tool" msgstr "" msgid "&View at Revision" msgstr "" msgid "View file as it appeared at this revision" msgstr "" msgid "&Save at Revision..." msgstr "" msgid "Save file as it appeared at this revision" msgstr "" msgid "Save file to" msgstr "" msgid "&Edit Local" msgstr "" msgid "&Open Local" msgstr "" msgid "E&xplore Local" msgstr "" msgid "Open parent folder of current file in the system file manager" msgstr "" msgid "&Copy Patch" msgstr "" msgid "Copy &Path" msgstr "" msgid "Copy full path of file(s) to the clipboard" msgstr "" msgid "&Revert to Revision..." msgstr "" msgid "Open S&ubrepository" msgstr "" msgid "Open the selected subrepository" msgstr "" msgid "E&xplore Folder" msgstr "" msgid "Open the selected folder in the system file manager" msgstr "" msgid "Open &Terminal" msgstr "" msgid "Open a shell terminal in the selected folder" msgstr "" msgid "Custom Tools" msgstr "" msgid "Diff &Local" msgstr "" msgid "&View Missing" msgstr "" msgid "View O&ther" msgstr "" msgid "Add &Largefiles..." msgstr "" msgid "&Forget" msgstr "" msgid "&Delete Unversioned..." msgstr "" msgid "Confirm Delete Unversioned" msgstr "" msgid "Delete the following unversioned files?" msgstr "" msgid "&Delete" msgstr "" msgid "Re&move Versioned" msgstr "" msgid "&Revert..." msgstr "" msgid "Uncommited merge - please select a parent revision" msgstr "" msgid "Revert files to local or other parent?" msgstr "" msgid "&Local" msgstr "" msgid "&Other" msgstr "" msgid "Confirm Revert" msgstr "" msgid "Revert local file changes?" msgstr "" msgid "&Revert with backup" msgstr "" msgid "&Discard changes" msgstr "" msgid "Revert the following files?" msgstr "" msgid "&Revert" msgstr "" msgid "&Copy..." msgstr "" msgid "Re&name..." msgstr "" msgid "&Ignore..." msgstr "" msgid "Edit Re&jects" msgstr "" msgid "Manually resolve rejected patch chunks" msgstr "" msgid "De&tect Renames..." msgstr "" msgid "&Mark Resolved" msgstr "" msgid "&Mark Unresolved" msgstr "" msgid "Restart Mer&ge" msgstr "" msgid "Was renamed from" msgstr "" msgid "Restart Merge &with" msgstr "" msgid "Display the file anyway" msgstr "" msgid "Diff not displayed: " msgstr "" #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid "File is binary" msgstr "" msgid "File may be binary (maximum line length exceeded)" msgstr "" msgid "File or diffs not displayed: " msgstr "" msgid " (was added)" msgstr "" #, python-format msgid " (copied from %s)" msgstr "" #, python-format msgid " (renamed from %s)" msgstr "" msgid " (is a symlink)" msgstr "" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid " (was deleted)" msgstr "" msgid " (was added, now missing)" msgstr "" msgid " (is unversioned)" msgstr "" msgid "exec mode has been set" msgstr "" msgid "exec mode has been unset" msgstr "" #, python-format msgid "changeset: %s" msgstr "" msgid "Initial revision" msgstr "" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" msgid "Subrepo created and set to initial revision." msgstr "" msgid "Subrepo initialized to revision:" msgstr "" msgid "Subrepo removed from repository." msgstr "" msgid "Previously the subrepository was at the following revision:" msgstr "" msgid "Subrepo was not changed." msgstr "" msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "" msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "" msgid "Subrepo state is:" msgstr "" msgid "Revision has changed to:" msgstr "" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "" msgid "From:" msgstr "" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" msgid "Subrepository not found in the working directory." msgstr "" msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" msgid "Not a Mercurial subrepo, not previewable" msgstr "" #, python-format msgid "Error previewing subrepo: %s" msgstr "" msgid "Subrepo may be damaged or inaccessible." msgstr "" msgid "The subrepository is dirty." msgstr "" msgid "File Status:" msgstr "" msgid "(is a changed sub-repository)" msgstr "" msgid "(is an unchanged sub-repository)" msgstr "" msgid "(is a dirty sub-repository)" msgstr "" msgid "(is a new sub-repository)" msgstr "" msgid "(is a removed sub-repository)" msgstr "" msgid "(is a changed and dirty sub-repository)" msgstr "" msgid "(is a new and dirty sub-repository)" msgstr "" msgid "open..." msgstr "" #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "" msgid "File History Log Columns" msgstr "" msgid "Back" msgstr "" msgid "Forward" msgstr "" msgid "Diff Selected &Changesets" msgstr "" msgid "&Diff Selected File Revisions" msgstr "" msgid "Show Revision &Details" msgstr "" msgid "Too many rows selected for menu" msgstr "" msgid "File Differences Log Columns" msgstr "" msgid "Next diff" msgstr "" msgid "Previous diff" msgstr "" msgid "Unicode" msgstr "" msgid "Western Europe" msgstr "" msgid "Unified Chinese" msgstr "" msgid "Traditional Chinese" msgstr "" msgid "Korean" msgstr "" msgid "Japanese" msgstr "" msgid "Thai" msgstr "" msgid "Central and Eastern Europe" msgstr "" msgid "Cyrillic" msgstr "" msgid "Russian" msgstr "" msgid "Ukrainian" msgstr "" msgid "Greek" msgstr "" msgid "Turkish" msgstr "" msgid "Arabic" msgstr "" msgid "Hebrew" msgstr "" msgid "Vietnamese" msgstr "" msgid "Baltic" msgstr "" msgid "Southern Europe" msgstr "" msgid "Nordic" msgstr "" msgid "Celtic" msgstr "" msgid "South-Eastern Europe" msgstr "" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "" msgid "View change as unified diff output" msgstr "" msgid "View change in context of file" msgstr "" msgid "Annotate with revision numbers" msgstr "" msgid "Next Diff" msgstr "" msgid "Previous Diff" msgstr "" msgid "Open shelve tool" msgstr "" msgid "&Auto Detect" msgstr "" msgid "Show changes from first parent" msgstr "" msgid "Show changes from second parent" msgstr "" msgid "E&ncoding" msgstr "" msgid "&Search in Current File" msgstr "" msgid "Search in All &History" msgstr "" msgid "Go to Line" msgstr "" #, python-format msgid "Enter line number (1 - %d)" msgstr "" msgid "Show &Author" msgstr "" msgid "Show &Date" msgstr "" msgid "Show &Revision" msgstr "" msgid "Annotate Op&tions" msgstr "" msgid "Search Selected Text" msgstr "" msgid "In Current &File" msgstr "" msgid "In &Current Revision" msgstr "" msgid "In &Original Revision" msgstr "" msgid "In All &History" msgstr "" msgid "Go to" msgstr "" msgid "View File at" msgstr "" msgid "Diff File to" msgstr "" msgid "&Originating Revision" msgstr "" msgid "&Parent Revision" msgstr "" #, python-format msgid "&Parent Revision (%d)" msgstr "" msgid "&Mark Excluded Changes" msgstr "" msgid "(excluded from the next commit)" msgstr "" msgid "Interrupted graft operation found" msgstr "" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" msgid "Continue or abort interrupted graft operation?" msgstr "" msgid "To graft destination" msgstr "" msgid "Use my user name instead of graft committer user name" msgstr "" msgid "Use current date" msgstr "" msgid "Append graft info to log message" msgstr "" msgid "Graft" msgstr "" msgid "Abort" msgstr "Batal" #, python-format msgid "Graft - %s" msgstr "" msgid "Graft changeset" msgstr "" #, python-format msgid "Graft changeset #%d of %d" msgstr "" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" msgid "You may continue or start the graft" msgstr "" msgid "Graft is complete" msgstr "" msgid "Graft failed" msgstr "" msgid "Graft aborted" msgstr "" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" msgid "You may continue the graft" msgstr "" msgid "Exiting with an unfinished graft is not recommended." msgstr "" msgid "Consider aborting the graft first." msgstr "" msgid "&Exit" msgstr "" msgid "### regular expression search pattern ###" msgstr "" msgid "Regexp:" msgstr "" msgid "Ignore case" msgstr "" msgid "Search" msgstr "" msgid "Working Copy" msgstr "" msgid "All History" msgstr "" msgid "Report only the first match per file" msgstr "" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "" msgid "Includes:" msgstr "" msgid "Excludes:" msgstr "" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" #, python-format msgid "\"%s\" removed from search history" msgstr "" #, python-format msgid "\"%s\" removed from path history" msgstr "" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "" #, python-format msgid "grep: %s\n" msgstr "" #, python-format msgid "%d matches found" msgstr "" msgid "No matches found" msgstr "" msgid "Searching" msgstr "" msgid "history" msgstr "" msgid "Interrupted" msgstr "" msgid "files" msgstr "" #, python-format msgid "Skipping %s, unable to read" msgstr "" msgid "Vi&ew File" msgstr "" msgid "&View Changeset" msgstr "" msgid "Annotate &File" msgstr "" msgid "File" msgstr "" msgid "Line" msgstr "" msgid "Rev" msgstr "" msgid "User" msgstr "" msgid "Match Text" msgstr "" msgid "TortoiseHg Search" msgstr "" #, python-format msgid "Detect Copies/Renames in %s" msgstr "" msgid "Unrevisioned Files" msgstr "" msgid "Refresh file list" msgstr "" #, python-format msgid "Min Similarity: %d%%" msgstr "" msgid "Only consider deleted files" msgstr "" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "" msgid "Find Renames" msgstr "" msgid "Find copy and/or rename sources" msgstr "" msgid "Candidate Matches" msgstr "" msgid "Accept All Matches" msgstr "" msgid "Accept Selected Matches" msgstr "" msgid "Differences from Source to Dest" msgstr "" msgid "Search already in progress" msgstr "" msgid "Cannot start a new search" msgstr "" msgid "No files to find" msgstr "" msgid "There are no files that may have been renamed" msgstr "" msgid "Multiple sources chosen" msgstr "" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" #. i18n: percent format #, python-format msgid "%d%%" msgstr "" msgid "Source" msgstr "" msgid "Dest" msgstr "" msgid "% Match" msgstr "" msgid "Sending Email" msgstr "" msgid "Email" msgstr "" msgid "To:" msgstr "" msgid "Cc:" msgstr "" msgid "In-Reply-To:" msgstr "" msgid "Message identifier to reply to, for threading" msgstr "" msgid "Flag:" msgstr "" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" msgid "Send changesets as Hg patches" msgstr "" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" msgid "Use extended (git) patch format" msgstr "" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" msgid "Plain, do not prepend Hg header" msgstr "" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" msgid "Send single binary bundle, not patches" msgstr "" msgid "send patches as part of the email body" msgstr "" msgid "body" msgstr "" msgid "send patches as attachments" msgstr "" msgid "attach" msgstr "" msgid "send patches as inline attachments" msgstr "" msgid "inline" msgstr "" msgid "add diffstat output to messages" msgstr "" msgid "diffstat" msgstr "" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" msgid "Write patch series (bundle) description" msgstr "" msgid "Subject:" msgstr "" msgid "Changesets" msgstr "" msgid "Select &All" msgstr "" msgid "Select &None" msgstr "" msgid "Edit" msgstr "" msgid "Preview" msgstr "" msgid "&Settings" msgstr "" msgid "Send &Email" msgstr "" msgid "&Close" msgstr "" #, python-format msgid "Ignore filter - %s" msgstr "" msgid "Glob" msgstr "" msgid "Regexp" msgstr "" msgid "Add" msgstr "" msgid "Edit File" msgstr "" msgid "Ignore Filter" msgstr "" msgid "Untracked Files" msgstr "" msgid "Backspace or Del to remove row(s)" msgstr "" msgid "Add ignore filter..." msgstr "" msgid "selected files" msgstr "" msgid "Ignore " msgstr "" msgid "Invalid glob expression" msgstr "" msgid "Invalid regexp expression" msgstr "" msgid "Unable to read repository status" msgstr "" msgid "New file created" msgstr "" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" msgid "Unable to write .hgignore file" msgstr "" msgid "Copy working directory files from skeleton" msgstr "" msgid "Create special files (.hgignore, ...)" msgstr "" msgid "Make repo compatible with Mercurial <1.7" msgstr "" msgid "New Repository" msgstr "" msgid "&Create" msgstr "" msgid "Unable to create a config file" msgstr "" msgid "Insufficient access rights." msgstr "" msgid "Show Log" msgstr "" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" msgid "Add as &Largefiles" msgstr "" msgid "Add as &Normal Files" msgstr "" msgid "Invalid Patterns" msgstr "" msgid "Failed to process largefiles.patterns." msgstr "" msgid "Word docs (*.doc *.docx)" msgstr "" msgid "PDF docs (*.pdf)" msgstr "" msgid "Excel files (*.xls *.xlsx)" msgstr "" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "" msgid "Refresh lock information" msgstr "" msgid "Lock a file not described in .hglocks" msgstr "" msgid "Stop current operation" msgstr "" msgid "Locked And Lockable Files:" msgstr "" msgid "Path" msgstr "" msgid "Locking User" msgstr "" msgid "Purpose" msgstr "" msgid "Simplelock extension not enabled" msgstr "" msgid "Please enable and configure simplelock" msgstr "" msgid "Open a (nonmergable) file you wish to be locked" msgstr "" msgid "File was not within current repository" msgstr "" #, python-format msgid "Locking %s" msgstr "" #, python-format msgid "Unlocking %s" msgstr "" msgid "Refreshing locks..." msgstr "" #, python-format msgid "Lock of %s successful" msgstr "" #, python-format msgid "Lock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s successful" msgstr "" msgid "Ready, double click to lock or unlock" msgstr "" msgid "Ready" msgstr "" msgid "You can only release your own locks" msgstr "" msgid "Find revisions matching fields of:" msgstr "" msgid "Revision to Match:" msgstr "" msgid "Fields to match:" msgstr "" msgid "Summary (first description line)" msgstr "" msgid "Description" msgstr "" msgid "Author" msgstr "" msgid "Date" msgstr "Tanggal" msgid "Files" msgstr "" msgid "Diff contents" msgstr "" msgid "Subrepo states" msgstr "" msgid "Branch" msgstr "" msgid "Phase" msgstr "" msgid "&Match" msgstr "" #, python-format msgid "Find matches - %s" msgstr "" msgid "Revisions to Match:" msgstr "" #, python-format msgid "Match any of %d revisions" msgstr "" msgid "Unknown revision!" msgstr "" msgid "Parse Error!" msgstr "" #, python-format msgid "Merge - %s" msgstr "" msgid "Do you want to exit?" msgstr "" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" msgid "Prepare to merge" msgstr "" msgid "Verify merge targets and ensure your working directory is clean." msgstr "" msgid "Not a head revision!" msgstr "" msgid "Merge from (other revision)" msgstr "" msgid "Merge to (working directory)" msgstr "" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Or use:" msgstr "" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "" msgid "Discard all changes from the other revision" msgstr "" msgid "&Discard" msgstr "&Dibuang" msgid "Confirm Discard Changes" msgstr "" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" msgctxt "working dir state" msgid "Clean" msgstr "" msgid "Merging..." msgstr "" msgid "Automatically advance to next page when merge is complete." msgstr "" #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" msgid "" "No merge conflicts, ready to commit or review" msgstr "" msgid "Commit merge results" msgstr "" msgid "Commit Options" msgstr "" msgid "Commit Now" msgstr "" msgid "Commit Later" msgstr "" msgid "Merge changeset" msgstr "" msgid "Syntax Highlighting" msgstr "" msgid "Paste &Filenames" msgstr "" msgid "App&ly Format" msgstr "" msgid "C&onfigure Format" msgstr "" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "" msgid "&Commit to Queue..." msgstr "" msgid "Create &New Queue..." msgstr "" msgid "&Rename Active Queue..." msgstr "" msgid "&Delete Queue..." msgstr "" msgid "&Purge Queue..." msgstr "" msgid "Create Patch Queue" msgstr "" msgid "New patch queue name" msgstr "" msgid "Create" msgstr "" msgid "Rename Patch Queue" msgstr "" #, python-format msgid "Rename patch queue '%s' to" msgstr "" msgid "Rename" msgstr "" msgid "Delete Patch Queue" msgstr "" msgid "Delete reference to" msgstr "" msgid "Delete" msgstr "" msgid "Purge Patch Queue" msgstr "" msgid "Remove patch directory of" msgstr "" msgid "Purge" msgstr "" msgid "Rename Patch" msgstr "" #, python-format msgid "Rename patch %s to:" msgstr "" msgid "no guards" msgstr "" msgid "Patch Queue" msgstr "" msgctxt "MQ QPush" msgid "Push" msgstr "" msgid "Apply one patch" msgstr "" msgctxt "MQ QPush" msgid "Push all" msgstr "" msgid "Apply all patches" msgstr "" msgid "Pop" msgstr "" msgid "Unapply one patch" msgstr "" msgid "Pop all" msgstr "" msgid "Unapply all patches" msgstr "" msgid "Go &to Patch" msgstr "" msgid "&Apply Only This Patch" msgstr "" msgid "Apply only the selected patch" msgstr "" msgid "&Finish Patch" msgstr "" msgid "Move applied patches into repository history" msgstr "" msgid "&Delete Patches..." msgstr "" msgid "Delete selected patches" msgstr "" msgid "Re&name Patch..." msgstr "" msgid "Set &Guards..." msgstr "" msgid "Configure guards for selected patch" msgstr "" msgid "Patch Queue Actions Toolbar" msgstr "" msgid "Configure guards" msgstr "" #, python-format msgid "Input new guards for %s:" msgstr "" msgid "Confirm patch queue switch" msgstr "" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "" #, python-format msgid "Guards: %d/%d" msgstr "" msgid "MQ options" msgstr "" msgid "Force push or pop (--force)" msgstr "" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "" msgid "Submitting p4 changelist..." msgstr "" msgid "Reverting p4 changelist..." msgstr "" msgid "Patch Branch Toolbar" msgstr "" msgid "Merge all pending dependencies" msgstr "" msgid "Backout current patch branch" msgstr "" msgid "Backport part of a changeset to a dependency" msgstr "" msgid "Start a new patch branch" msgstr "" msgid "Edit patch dependency graph" msgstr "" msgid "will be closed" msgstr "" #, python-format msgid "needs merge of %i heads\n" msgstr "" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "" #, python-format msgid "needs merge with %s\n" msgstr "" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "" msgid "&Goto (update workdir)" msgstr "" msgid "&Merge" msgstr "" msgid "No patch branch selected" msgstr "" msgid "No editor found" msgstr "" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" msgid "Graph" msgstr "" msgid "Status" msgstr "" msgid "Title" msgstr "Judul" msgid "Message" msgstr "Pesan" msgid "New Patch Branch" msgstr "" msgid "Patch message:" msgstr "" msgid "Patch date:" msgstr "" msgid "Patch user:" msgstr "" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" msgid "Review Board" msgstr "" msgid "Password:" msgstr "" msgid "Error" msgstr "" #, python-format msgid "Review draft posted to %s\n" msgstr "" #, python-format msgid "Review published to %s\n" msgstr "" msgid "Success" msgstr "" msgid "Repository ID:" msgstr "" msgid "Post Review" msgstr "" msgid "Review ID:" msgstr "" msgid "Update the fields of this existing request" msgstr "" msgid "Update Review" msgstr "" msgid "Create diff with all outgoing changes" msgstr "" msgid "Create diff with all changes on this branch" msgstr "" msgid "Publish request immediately" msgstr "" msgid "%p%" msgstr "" msgid "Connecting to Review Board..." msgstr "" msgid "Target:" msgstr "" msgid "Do not modify working copy (-k/--keep)" msgstr "" #, python-format msgid "Prune - %s" msgstr "" msgid "&Prune" msgstr "" msgid "No unknown files found" msgstr "" msgid "No ignored files found" msgstr "" msgid "No trash files found" msgstr "" msgid "Delete empty folders" msgstr "" msgid "Preserve files beginning with .hg" msgstr "" #, python-format msgid "%s - purge" msgstr "" msgid "Checking" msgstr "" msgid "Ready to purge." msgstr "" #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "" msgstr[1] "" msgid "Confirm file deletions" msgstr "" msgid "Are you sure you want to delete these files and/or folders?" msgstr "" msgid "Deletion failures" msgstr "" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "" msgstr[1] "" msgid "Deleting trash folder..." msgstr "" #, python-format msgid "Deleted %d files" msgstr "" #, python-format msgid "Deleted %d files and %d folders" msgstr "" msgid "Delete Patches" msgstr "" msgid "Remove patches from queue?" msgstr "" msgid "Keep patch files" msgstr "" #, python-format msgid "Patch fold - %s" msgstr "" msgid "New patch message:" msgstr "" msgid "Patches to fold" msgstr "" msgid "&Undo" msgstr "" msgid "&Redo" msgstr "" msgid "Cu&t" msgstr "" msgid "&Copy" msgstr "" msgid "&Paste" msgstr "" msgid "&Editor Options" msgstr "" msgid "&Wrap" msgstr "" msgctxt "wrap mode" msgid "&None" msgstr "" msgid "&Word" msgstr "" msgid "&Character" msgstr "" msgid "White&space" msgstr "" msgid "&Visible" msgstr "" msgid "&Invisible" msgstr "" msgid "&AfterIndent" msgstr "" msgid "&TAB Inserts" msgstr "" msgid "&Auto" msgstr "" msgid "&TAB" msgstr "" msgid "&Spaces" msgstr "" msgid "EOL &Visibility" msgstr "" msgid "EOL &Mode" msgstr "" msgid "&Windows" msgstr "" msgid "&Unix" msgstr "" msgid "&Mac" msgstr "" msgid "&Auto-Complete" msgstr "" msgid "### regular expression ###" msgstr "" msgid "Regular expression search pattern" msgstr "" msgid "Wrap search" msgstr "" msgid "Prev" msgstr "" msgid "Next" msgstr "" msgid "Unable to read file" msgstr "" msgid "Could not open the specified file for reading." msgstr "" msgid "This appears to be a binary file." msgstr "" msgid "An error occurred while reading the file." msgstr "" msgid "Text Translation Failure" msgstr "" msgid "Could not translate the file content from native encoding." msgstr "" msgid "Several characters would be lost." msgstr "" msgid "Unable to write file" msgstr "" msgid "Could not translate the file content to native encoding." msgstr "" msgid "Could not open the specified file for writing." msgstr "" msgid "An error occurred while writing the file." msgstr "" msgid "Try refreshing your repository." msgstr "Coba menyegarkan repositori anda." #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
                                                      Please edit your config" msgstr "" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
                                                      Please fix your config" msgstr "" "Kesalahan Konfigurasi: \"%(arg0)s\".
                                                      Harap
                                                      memperbaiki konfigurasi anda" #, python-format msgid "Operation aborted:

                                                      %(arg0)s." msgstr "Pelaksanaan dibatalkan:

                                                      %(arg0)s." msgid "Repository is locked" msgstr "Repositori dikunci" msgid "hint:" msgstr "" msgid "Repository Error" msgstr "" msgid "No visual editor configured" msgstr "" msgid "Please configure a visual editor." msgstr "" msgid "Editor launch failure" msgstr "" msgid "Failed to open path in terminal" msgstr "" #, python-format msgid "\"%s\" is not a valid directory" msgstr "" #, python-format msgid "Invalid configuration: %s" msgstr "" msgid "Unable to start the following command:" msgstr "" msgid "No shell configured" msgstr "" msgid "A terminal shell must be configured" msgstr "" msgid "Please enter a username" msgstr "" msgid "You must identify yourself to Mercurial" msgstr "" msgid "Unable to translate input to local encoding." msgstr "" msgid "Checkmark files to add" msgstr "" msgid "Checkmark files to forget" msgstr "" msgid "Forget" msgstr "" msgid "Checkmark files to revert" msgstr "" msgid "Revert" msgstr "" msgid "Checkmark files to remove" msgstr "" msgid "Remove" msgstr "" #, python-format msgid "%s - hg %s" msgstr "" msgid "Do not save backup files (*.orig)" msgstr "" msgid "Force removal of modified files (--force)" msgstr "" msgid "Add &Largefiles" msgstr "" msgid "No files selected" msgstr "" msgid "No operation to perform" msgstr "" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" msgid "Remove &Unmodified Files" msgstr "" msgid "Remove &All Selected Files" msgstr "" msgid "Rebase changeset and descendants" msgstr "" msgid "To rebase destination" msgstr "" msgid "Swap source and destination" msgstr "" msgid "Keep original changesets (--keep)" msgstr "" msgid "Keep original branch names (--keepbranches)" msgstr "" msgid "Collapse the rebased changesets (--collapse)" msgstr "" msgid "Rebase entire source branch (-b/--base)" msgstr "" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "" msgid "Rebase" msgstr "" #, python-format msgid "Rebase - %s" msgstr "" msgid "" "Before rebase, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the rebase" msgstr "" msgid "Rebase is complete" msgstr "" msgid "Rebase failed" msgstr "" msgid "Rebase aborted" msgstr "" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" msgid "Exiting with an unfinished rebase is not recommended." msgstr "" msgid "Consider aborting the rebase first." msgstr "" #, python-format msgid "Merge rejected patch chunks into %s" msgstr "" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "" msgid "Mark this chunk as unresolved" msgstr "" msgid "Reload File" msgstr "" msgid "Are you sure you want to reload this file?" msgstr "" msgid "All unsaved changes will be lost." msgstr "" msgid "Warning" msgstr "" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" msgid "Copy source -> destination" msgstr "" msgid "Copy Error" msgstr "" msgid "Rename Error" msgstr "" msgid "Select Source File" msgstr "" msgid "Select Source Folder" msgstr "" msgid "Source does not exist." msgstr "" msgid "The source must be within the repository tree." msgstr "" msgid "The destination must be within the repository tree." msgstr "" msgid "Destination file already exists." msgstr "" msgid "Are you sure you want to overwrite it ?" msgstr "" #, python-format msgid "Copy - %s" msgstr "" #, python-format msgid "Rename - %s" msgstr "" msgid "Show all" msgstr "" msgid "### revision set query ###" msgstr "" msgid "Clear current query and query text" msgstr "" msgid "Trigger revision set query" msgstr "" msgid "Open advanced query editor" msgstr "" msgid "Delete selected query from history" msgstr "" msgid "filter" msgstr "" msgid "Toggle filtering of non-matched changesets" msgstr "" msgid "Show/Hide hidden changesets" msgstr "" msgid "Toggle graft relations visibility" msgstr "" msgid "Keyword Search" msgstr "" msgid "Revision Set" msgstr "Atur Revisi" msgid "(unsaved)" msgstr "" msgid "Display graph the named branch only" msgstr "" msgid "Display only active branches" msgstr "" msgid "Display closed branches" msgstr "" msgid "Include all ancestors" msgstr "" msgctxt "column header" msgid "Graph" msgstr "" msgctxt "column header" msgid "Rev" msgstr "" msgctxt "column header" msgid "Branch" msgstr "" msgctxt "column header" msgid "Description" msgstr "" msgctxt "column header" msgid "Author" msgstr "" msgctxt "column header" msgid "Tags" msgstr "" msgctxt "column header" msgid "Latest tags" msgstr "" msgctxt "column header" msgid "Node" msgstr "" msgctxt "column header" msgid "Git Commit" msgstr "" msgctxt "column header" msgid "Age" msgstr "" msgctxt "column header" msgid "Local Time" msgstr "" msgctxt "column header" msgid "UTC Time" msgstr "" msgctxt "column header" msgid "Changes" msgstr "" msgctxt "column header" msgid "Converted From" msgstr "" msgctxt "column header" msgid "Phase" msgstr "" msgctxt "column header" msgid "Filename" msgstr "" msgid "Searching..." msgstr "Mencari..." #, python-format msgid "filling (%d)" msgstr "" msgid "Mercurial User" msgstr "" msgid "Repository Registry" msgstr "" msgid "Show &Paths" msgstr "" msgid "Show S&hort Paths" msgstr "" msgid "&Scan Repositories at Startup" msgstr "" msgid "Scan &Remote Repositories" msgstr "" msgid "&Refresh Repository List" msgstr "" msgid "Refresh the Repository Registry list" msgstr "" msgid "&Open" msgstr "" msgid "Open the repository in a new tab" msgstr "" msgid "&Open All" msgstr "" msgid "Open all repositories in new tabs" msgstr "" msgid "New &Group" msgstr "" msgid "Create a new group" msgstr "" msgid "Rename the entry" msgstr "" msgid "Settin&gs" msgstr "" msgid "View the repository's settings" msgstr "" msgid "Re&move from Registry" msgstr "" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" msgid "Clon&e..." msgstr "" msgid "Clone Repository" msgstr "" msgid "E&xplore" msgstr "" msgid "Open the repository in a file browser" msgstr "" msgid "&Terminal" msgstr "" msgid "Open a shell terminal in the repository root" msgstr "" msgid "&Add Repository..." msgstr "" msgid "Add a repository to this group" msgstr "" msgid "A&dd Subrepository..." msgstr "" msgid "Convert an existing repository into a subrepository" msgstr "" msgid "Remo&ve Subrepository..." msgstr "" msgid "Remove this subrepository from the current revision" msgstr "" msgid "Copy the root path of the repository to the clipboard" msgstr "" msgid "Sort by &Name" msgstr "" msgid "Sort the group by short name" msgstr "" msgid "Sort by &Path" msgstr "" msgid "Sort the group by full path" msgstr "" msgid "&Sort by .hgsub" msgstr "" msgid "Order the subrepos as in .hgsub" msgstr "" msgid "Select repository directory to add" msgstr "" msgid "Select an existing repository to add as a subrepo" msgstr "" msgid "Cannot add subrepository" msgstr "" #, python-format msgid "%s is not a valid repository" msgstr "" #, python-format msgid "\"%s\" is not a folder" msgstr "" msgid "A repository cannot be added as a subrepo of itself" msgstr "" #, python-format msgid "" "The selected folder:

                                                      %s

                                                      is not inside the target repository." "

                                                      This may be allowed but is greatly discouraged.
                                                      If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" msgid "Cannot open repository" msgstr "" #, python-format msgid "The selected repository:

                                                      %s

                                                      cannot be open!" msgstr "" msgid "Subrepository already exists" msgstr "" #, python-format msgid "" "The selected repository:

                                                      %s

                                                      is already a subrepository of:" "

                                                      %s

                                                      as: \"%s\"" msgstr "" msgid "Failed to add subrepository" msgstr "" #, python-format msgid "Cannot open the .hgsub file in:

                                                      %s" msgstr "" msgid "Failed to add repository" msgstr "" #, python-format msgid "The .hgsub file already contains the line:

                                                      %s" msgstr "" msgid "Subrepo added to .hgsub file" msgstr "" #, python-format msgid "" "The selected subrepo:

                                                      %s

                                                      has been added to the .hgsub " "file of the repository:

                                                      %s

                                                      Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" #, python-format msgid "Cannot update the .hgsub file in:

                                                      %s" msgstr "" msgid "Could not open .hgsub file" msgstr "" msgid "Cannot read the .hgsub file.

                                                      Subrepository removal failed." msgstr "" msgid "Subrepository not found" msgstr "" msgid "" "The selected subrepository was not found on the .hgsub file.

                                                      Perhaps it " "has already been removed?" msgstr "" msgid "&Yes" msgstr "" msgid "&No" msgstr "" msgid "Remove the selected repository?" msgstr "" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" msgid "Subrepository removed from .hgsub" msgstr "" msgid "" "The selected subrepository has been removed from the .hgsub file.

                                                      Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" msgid "Could not update .hgsub file" msgstr "" msgid "Cannot update the .hgsub file.

                                                      Subrepository removal failed." msgstr "" #, python-format msgid "Unsupported repository type (%s)" msgstr "" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "" msgid "New Group" msgstr "" msgid "Confirm Delete" msgstr "" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "" msgid "Could not get subrepository list" msgstr "" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

                                                      %s" msgstr "" msgid "Could not open some subrepositories" msgstr "" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

                                                      %s

                                                      The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

                                                      %s" msgstr "" msgid "Updating repository registry" msgstr "" #, python-format msgid "Loading repository %s" msgstr "" msgid "Repository Registry updated" msgstr "" msgid "Close tab" msgstr "" msgid "Close other tabs" msgstr "" msgid "Undo close tab" msgstr "" msgid "Reopen last closed tab" msgstr "" msgid "Undo close other tabs" msgstr "" msgid "Reopen last closed tab group" msgstr "" msgid "Failed to open repository" msgstr "" msgid "&Sort" msgstr "" #, python-format msgid "Local Repository %s" msgstr "" #, python-format msgid "" "An exception happened while loading the subrepos of:

                                                      \"%s\"

                                                      " msgstr "" #, python-format msgid "The exception error message was:

                                                      %s

                                                      " msgstr "" msgid "Click OK to continue or Abort to exit." msgstr "" msgid "Error loading subrepos" msgstr "" msgid "Unable to update repository name" msgstr "" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "" msgid "default" msgstr "" msgid "C&hoose Log Columns..." msgstr "" msgid "&Resize Columns" msgstr "" #, python-format msgid "Goto ancestor of %s and %s" msgstr "" #, python-format msgid "Can't find revision '%s'" msgstr "" msgid "Drag to change order" msgstr "" msgid "Workbench Log Columns" msgstr "" msgctxt "tab tooltip" msgid "Revision details" msgstr "" msgctxt "tab tooltip" msgid "Commit" msgstr "" msgctxt "tab tooltip" msgid "Search" msgstr "" msgctxt "tab tooltip" msgid "Console log" msgstr "" msgctxt "tab tooltip" msgid "Synchronize" msgstr "" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "" #, python-format msgid "%s " msgstr "" #, python-format msgid "Found %d incoming changesets" msgstr "" msgid "Pull" msgstr "" msgid "Pull incoming changesets into your repository" msgstr "" msgid "Reject incoming changesets" msgstr "" #, python-format msgid "Push current branch (%s)" msgstr "" #, python-format msgid "Push up to current revision (#%d)" msgstr "" #, python-format msgid "Push up to revision #%d" msgstr "" msgid "Push all" msgstr "" msgid "no outgoing changesets" msgstr "" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets" msgstr "" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "" msgid "Nothing to push" msgstr "" msgid "No revision found" msgstr "" #, python-format msgid "%s - verify repository" msgstr "" #, python-format msgid "%s - recover repository" msgstr "" msgid "No transaction available" msgstr "" msgid "There is no rollback transaction available" msgstr "" msgid "Undo last commit?" msgstr "" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "" msgid "Undo last transaction?" msgstr "" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "" msgid "Unable to determine working copy revision\n" msgstr "" msgid "Remove current working revision?" msgstr "" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" msgid "Tab cannot exit" msgstr "" msgid "Pus&h" msgstr "" msgid "Push to &Here" msgstr "" msgid "Push Selected &Branch" msgstr "" msgid "Push &All" msgstr "" msgid "&Update..." msgstr "" msgid "Bro&wse at Revision" msgstr "" msgid "&Merge with Local..." msgstr "" msgid "&Tag..." msgstr "" msgid "Boo&kmark..." msgstr "" msgid "Top&ic..." msgstr "" msgid "Sig&n..." msgstr "" msgid "&Backout..." msgstr "" msgid "Revert &All Files..." msgstr "" msgid "Copy &Hash" msgstr "" msgid "E&xport" msgstr "" msgid "E&xport Patch..." msgstr "" msgid "&Email Patch..." msgstr "" msgid "&Archive..." msgstr "" msgid "&Bundle Rev and Descendants..." msgstr "" msgid "Change &Phase to" msgstr "" msgid "&Graft to Local..." msgstr "" msgid "Modi&fy History" msgstr "" msgid "&Unapply Patch" msgstr "" msgid "Import to &MQ" msgstr "" msgid "MQ &Options" msgstr "" msgid "&Rebase..." msgstr "" msgid "&Prune..." msgstr "" msgid "&Strip..." msgstr "" msgid "Post to Re&view Board..." msgstr "" msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "" msgid "Write diff file" msgstr "" msgid "Unable to write diff file" msgstr "" msgid "Unable to compress history" msgstr "" msgid "Selected changeset pair not related" msgstr "" msgid "Visual Diff..." msgstr "" msgid "Export Diff..." msgstr "" msgid "Export Selected..." msgstr "" msgid "Email Selected..." msgstr "" msgid "Copy Selected as Patch" msgstr "" msgid "Archive DAG Range..." msgstr "" msgid "Export DAG Range..." msgstr "" msgid "Email DAG Range..." msgstr "" msgid "Bundle DAG Range..." msgstr "" msgid "Bisect - Good, Bad..." msgstr "" msgid "Bisect - Bad, Good..." msgstr "" msgid "Compress History..." msgstr "" msgid "Rebase..." msgstr "" msgid "Goto common ancestor" msgstr "" msgid "Graft Selected to local..." msgstr "" msgid "&Prune Selected..." msgstr "" msgid "Post Selected to Review Board..." msgstr "" msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "" msgid "Apply onto original parent" msgstr "" msgid "Apply only this patch" msgstr "" msgid "Fold patches..." msgstr "" msgid "Delete patches..." msgstr "" msgid "Rename patch..." msgstr "" msgid "Pull to here..." msgstr "" msgid "Visual diff..." msgstr "" msgid "Export patch" msgstr "" msgid "Patch Files (*.patch)" msgstr "" msgid "Cannot export revision" msgstr "" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" msgid "There is already an existing folder with that same name." msgstr "" msgid "Replace" msgstr "" msgid "Append" msgstr "" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" msgid "What do you want to do?\n" msgstr "" msgid "Replace the existing patch files.\n" msgstr "" msgid "Append the changes to the existing patch files.\n" msgstr "" msgid "Abort the export operation.\n" msgstr "" msgid "Patch files already exist" msgstr "" msgid "Patch exported" msgstr "" #, python-format msgid "" "Revision #%d (%s) was exported to:

                                                      %s%s%s" msgstr "" msgid "Patches exported" msgstr "" #, python-format msgid "%d patches were exported to:

                                                      %s" msgstr "" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

                                                      Are you sure you want to use revert?

                                                      (use " "update to checkout another revision)" msgstr "" msgid "Filter b&y" msgstr "" msgid "&Ancestors and Descendants" msgstr "" msgid "A&uthor" msgstr "" msgid "&Branch" msgstr "" msgid "&More Options..." msgstr "" msgid "Unable to merge" msgstr "" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "" msgid "Unable to backout" msgstr "" msgid "Write bundle" msgstr "" msgid "Backwards phase change requested" msgstr "" msgid "Do you really want to make this revision secret?" msgstr "" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" msgid "&Make secret" msgstr "" msgid "&Cancel" msgstr "" msgid "Do you really want to force a backwards phase transition?" msgstr "" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" msgid "&Force" msgstr "" msgid "Cannot import selected revision" msgstr "" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" msgid "Invalid command" msgstr "" msgid "The selected command is empty" msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" msgid "Failed to execute custom TortoiseHg command" msgstr "" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "" msgid "Failed to execute custom command" msgstr "" #, python-format msgid "The command \"%s\" could not be executed." msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" msgid "&Edit Toolbar" msgstr "" msgid "&Refresh" msgstr "" msgid "&Filter Toolbar" msgstr "" #, python-format msgid "TortoiseHg: %s" msgstr "" msgid "S&tatus Bar" msgstr "" #, python-format msgid "Resolve Conflicts - %s" msgstr "" msgid "Local revision information" msgstr "" msgid "Other revision information" msgstr "" msgid "Unresolved conflicts" msgstr "" msgid "Mercurial Re&solve" msgstr "" msgid "Attempt automatic (trivial) merge" msgstr "" msgid "Tool &Resolve" msgstr "" msgid "Merge using selected merge tool" msgstr "" msgid "&Take Local" msgstr "" msgid "Accept the local file version (yours)" msgstr "" msgid "Take &Other" msgstr "" msgid "Accept the other file version (theirs)" msgstr "" msgid "&Mark as Resolved" msgstr "" msgid "Mark this file as resolved" msgstr "" msgid "Diff &Local to Ancestor" msgstr "" msgid "&Diff Other to Ancestor" msgstr "" msgid "Resolved conflicts" msgstr "" msgid "&Edit File" msgstr "" msgid "Edit resolved file" msgstr "" msgid "3-&Way Diff" msgstr "" msgid "Visual three-way diff" msgstr "" msgid "Visual diff between resolved file and first parent" msgstr "" msgid "&Diff to Other" msgstr "" msgid "Visual diff between resolved file and second parent" msgstr "" msgid "Mark as &Unresolved" msgstr "" msgid "Mark this file as unresolved" msgstr "" msgid "Detected merge/diff tools:" msgstr "" msgid "Command output" msgstr "" msgid "Unable to show subrepository files" msgstr "" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" msgid "There are merge conflicts to be resolved" msgstr "" msgid "All conflicts are resolved." msgstr "" msgid "There are no conflicting file merges." msgstr "" msgid "Exit without finishing resolve?" msgstr "" msgid "Unresolved conflicts remain. Are you sure?" msgstr "" msgid "E&xit" msgstr "" msgid "Ext" msgstr "" msgid "Repository" msgstr "" msgid "" msgstr "" msgid "File List Toolbar" msgstr "" msgid "Ma&nifest Mode" msgstr "" msgid "Show all version-controlled files in tree view" msgstr "" msgid "&Flat List" msgstr "" msgid "### filter text ###" msgstr "" msgid "Changed by &This Commit" msgstr "" msgid "Show files changed by this commit" msgstr "" msgid "Compare to &1st Parent" msgstr "" msgid "Compare to &2nd Parent" msgstr "" msgid "Toggle parent to be used as the base revision" msgstr "" msgid "List Optio&ns" msgstr "" #, python-format msgid "%s - Revision Details (%s)" msgstr "" #, python-format msgid "Revert - %s" msgstr "" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "" msgid "Revert all files to this revision" msgstr "" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "" msgid "null revision (i.e. remove file(s))" msgstr "" msgid "Changeset:" msgstr "" msgid "Child:" msgstr "" msgid "Predecessors:" msgstr "" msgid "Successors:" msgstr "" msgid "Head is closed!" msgstr "" msgid "Changesets where username contains string." msgstr "" msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" msgid "Like \"keyword(string)\" but accepts a regex." msgstr "" msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" msgid "The named bookmark or all bookmarks." msgstr "" msgid "The named tag or all tags." msgstr "" msgid "Changeset is tagged." msgstr "" msgid "Changeset is a named branch head." msgstr "" msgid "Changeset is a merge changeset." msgstr "" msgid "Changeset is closed." msgstr "" msgid "" "Changesets within the interval, see help dates" msgstr "" msgid "Greatest common ancestor of the two changesets." msgstr "" msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" msgid "Changesets which modify files matched by pattern." msgstr "" msgid "Changesets which add files matched by pattern." msgstr "" msgid "Changesets which remove files matched by pattern." msgstr "" msgid "Changesets containing files matched by pattern." msgstr "" msgid "All changesets belonging to the branches of changesets in set." msgstr "" msgid "Members of a set with no children in set." msgstr "" msgid "Changesets which are descendants of changesets in set." msgstr "" msgid "Changesets that are ancestors of a changeset in set." msgstr "" msgid "Child changesets of changesets in set." msgstr "" msgid "The set of all parents for all changesets in set." msgstr "" msgid "First parent for all changesets in set, or the working directory." msgstr "" msgid "Second parent for all changesets in set, or the working directory." msgstr "" msgid "Changesets with no parent changeset in set." msgstr "" msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" msgid "Changeset with lowest revision number in set." msgstr "" msgid "Changeset with highest revision number in set." msgstr "" msgid "First n members of a set." msgstr "" msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "" msgid "All changesets, the same as 0:tip." msgstr "" msgid "Revision Set Query" msgstr "" msgid "all revisions converted from subversion" msgstr "semua revisi-revisi dikonversi dari subversion" msgid "changeset which represents converted svn revision" msgstr "" msgid "Common sets" msgstr "" msgid "File pattern sets" msgstr "" msgid "Set Ancestry" msgstr "" msgid "Set Logic" msgstr "" msgid "" "help " "revsets" msgstr "" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "tidak bisa membaca berkas \"%s\". Diabaikan.\n" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" #, python-format msgid "thg: unknown command '%s'\n" msgstr "thg: perintah tidak diketahui '%s'\n" #, python-format msgid "thg %s: %s\n" msgstr "" #, python-format msgid "thg: %s\n" msgstr "thg: %s\n" #, python-format msgid "abort: %s!\n" msgstr "batal: %s!\n" #, python-format msgid "abort: %s\n" msgstr "" #, python-format msgid "(%s)\n" msgstr "" msgid "option --config may not be abbreviated!" msgstr "" msgid "invalid arguments" msgstr "argumen-argumen tak valid" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" "lsprof tidak tersedia - pasang dari http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgid "repository root directory or symbolic path name" msgstr "direktori atau nama simbolis path root repositori" msgid "enable additional output" msgstr "aktifkan keluaran tambahan" msgid "suppress output" msgstr "" msgid "display help and exit" msgstr "menampilkan bantuan dan keluar" msgid "set/override config option (use 'section.name=value')" msgstr "" msgid "enable debugging output" msgstr "" msgid "start debugger" msgstr "" msgid "print command execution profile" msgstr "" msgid "do not fork GUI process" msgstr "" msgid "always fork GUI process" msgstr "" msgid "read file list from file" msgstr "baca daftar berkas dari berkas" msgid "read file list from file encoding utf-8" msgstr "" msgid "thg about" msgstr "thg about" msgid "thg add [FILE]..." msgstr "" msgid "revision to annotate" msgstr "" msgid "open to line" msgstr "" msgid "initial search pattern" msgstr "" msgid "thg annotate" msgstr "" #, python-format msgid "invalid line number: %s" msgstr "" msgid "revision to archive" msgstr "" msgid "thg archive" msgstr "" msgid "merge with old dirstate parent after backout" msgstr "" msgid "parent to choose when backing out merge" msgstr "" msgid "revision to backout" msgstr "" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "" msgid "thg bisect" msgstr "" msgid "revision" msgstr "" msgid "thg bookmarks [-r REV] [NAME]" msgstr "" msgid "only one new bookmark name allowed" msgstr "" msgid "the clone will include an empty working copy (only a repository)" msgstr "" msgid "revision, tag or branch to check out" msgstr "" msgid "include the specified changeset" msgstr "" msgid "clone only the specified branch" msgstr "" msgid "use pull protocol to copy metadata" msgstr "" msgid "use uncompressed transfer (fast over LAN)" msgstr "" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "" msgid "record user as committer" msgstr "" msgid "record datecode as commit date" msgstr "" msgid "thg commit [OPTIONS] [FILE]..." msgstr "thg commit [OPTIONS] [FILE]..." msgid "thg debugblockmatcher" msgstr "" msgid "thg debugbugreport [TEXT]" msgstr "" msgid "thg debugconsole" msgstr "" msgid "thg debuglighthg" msgstr "" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "" msgid "no command specified" msgstr "" msgid "thg drag_copy SOURCE... DEST" msgstr "thg drag_copy SOURCE... DEST" msgid "thg drag_move SOURCE... DEST" msgstr "thg drag_move SOURCE... DEST" msgid "a revision to send" msgstr "" msgid "thg email [REVS]" msgstr "thg email [REVS]" msgid "use only one form to specify the revision" msgstr "" msgid "select the specified revision" msgstr "" msgid "side-by-side comparison of revisions" msgstr "" msgid "thg filelog [OPTION]... FILE" msgstr "" msgid "requires a single filename" msgstr "" msgid "thg forget [FILE]..." msgstr "thg forget [FILE]..." msgid "revisions to graft" msgstr "" msgid "thg graft [-r] REV..." msgstr "" msgid "You must provide revisions to graft" msgstr "" msgid "ignore case during search" msgstr "" msgid "thg grep" msgstr "thg grep" msgid "thg guess" msgstr "thg guess" msgid "thg help [COMMAND]" msgstr "" msgid "global options:" msgstr "opsi-opsi global:" msgid "use \"thg help\" for the full list of commands" msgstr "gunakan \"thg help\" untuk seluruh daftar perintah-perintah" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "" "gunakan \"thg help\" untuk seluruh daftar perintah-perintah atau \"thg -v\" " "untuk detilnya" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "gunakan \"thg -v help%s\" untuk menampilkan alias dan opsi-opsi global" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "gunakan \"thg -v help %s\" untuk menampilkan opsi-opsi global" msgid "" "list of commands:\n" "\n" msgstr "" "daftar perintah-perintah:\n" "\n" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" "\n" "alias: %s\n" msgid "(no help text available)" msgstr "(tidak ada teks bantuan yang tersedia)" msgid "options:\n" msgstr "opsi-opsi:\n" msgid "no commands defined\n" msgstr "tidak ada perintah-perintah tertentu\n" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "" msgid "" "basic commands:\n" "\n" msgstr "" "perintah-perintah dasar:\n" "\n" #, python-format msgid " (default: %s)" msgstr " (standar: %s)" msgid "thg hgignore [FILE]" msgstr "thg hgignore [FILE]" msgid "import to the patch queue (MQ)" msgstr "" msgid "thg import [OPTION] [SOURCE]..." msgstr "thg import [OPTION] [SOURCE]..." msgid "thg init [DEST]" msgstr "thg init [DEST]" msgid "thg lock" msgstr "" msgid "search for a given text or revset" msgstr "" msgid "(DEPRECATED)" msgstr "" msgid "open a new workbench window" msgstr "" msgid "thg log [OPTIONS] [FILE]" msgstr "thg log [OPTIONS] [FILE]" msgid "cannot specify both -k/--query and filenames" msgstr "" msgid "revision to display" msgstr "revisi untuk ditampilkan" msgid "thg manifest [-r REV] [FILE]" msgstr "thg manifest [-r REV] [FILE]" msgid "revision to merge" msgstr "revisi untuk digabungkan" msgid "thg merge [[-r] REV]" msgstr "thg merge [[-r] REV]" msgid "Merge revision not specified or not found" msgstr "" msgid "a revision to post" msgstr "" msgid "thg postreview [-r] REV..." msgstr "" msgid "reviewboard extension not enabled" msgstr "" #, python-format msgid "see %(url)s" msgstr "" msgid "no revisions specified" msgstr "" msgid "revisions to prune" msgstr "" msgid "thg prune [-r] REV..." msgstr "" msgid "thg purge" msgstr "" msgid "keep original changesets" msgstr "" msgid "keep original branch names" msgstr "" msgid "rebase from the specified changeset" msgstr "" msgid "rebase onto the specified changeset" msgstr "" msgid "thg rebase -s REV -d REV [--keep]" msgstr "" msgid "Rebase already in progress" msgstr "" msgid "Resuming rebase already in progress" msgstr "" msgid "You must provide source and dest arguments" msgstr "" msgid "thg rejects [FILE]" msgstr "" msgid "You must provide the path to a file" msgstr "" msgid "thg remove [FILE]..." msgstr "thg remove [FILE]..." msgid "thg rename [SOURCE] [DEST]" msgstr "" msgid "field to give initial focus" msgstr "" msgid "thg repoconfig" msgstr "" msgid "thg resolve" msgstr "thg resolve" msgid "the revision to show" msgstr "" msgid "thg revdetails [-r REV]" msgstr "" msgid "thg revert [FILE]..." msgstr "thg revert [FILE]..." msgid "revision to update" msgstr "" msgid "thg rupdate [[-r] REV]" msgstr "" msgid "name of the hgweb config file (serve more than one repository)" msgstr "nama berkas konfigurasi hgweb (melayani lebih dari satu repositori)" msgid "name of the hgweb config file (DEPRECATED)" msgstr "nama berkas konfigurasi hgweb (DEPRECATED)" msgid "thg serve [--web-conf FILE]" msgstr "thg serve [--web-conf FILE]" msgid "thg shellconfig" msgstr "" msgid "thg shelve" msgstr "" msgid "sign even if the sigfile is modified" msgstr "" msgid "make the signature local" msgstr "" msgid "the key id to sign with" msgstr "" msgid "do not commit the sigfile after signing" msgstr "" msgid "use as commit message" msgstr "" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "" msgid "Please enable the Gpg extension first." msgstr "" msgid "show files without changes" msgstr "tampilkan berkas-berkas tanpa merubah" msgid "show ignored files" msgstr "tampilkan berkas yang diabaikan" msgid "thg status [OPTIONS] [FILE]" msgstr "thg status [OPTIONS] [FILE]" msgid "discard uncommitted changes (no backup)" msgstr "" msgid "do not back up stripped revisions" msgstr "" msgid "do not modify working copy during strip" msgstr "" msgid "revision to strip" msgstr "" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "" msgid "open the bookmark sync window" msgstr "" msgid "thg sync [OPTION]... [PEER]" msgstr "" msgid "replace existing tag" msgstr "" msgid "make the tag local" msgstr "" msgid "revision to tag" msgstr "" msgid "remove a tag" msgstr "" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "" msgid "wait until the second ticks over" msgstr "" msgid "notify the shell for paths given" msgstr "" msgid "remove the status cache" msgstr "menyingkirkan cache status" msgid "show the contents of the status cache (no update)" msgstr "memperlihatkan konten pada cache status (tanpa update)" msgid "update all repos in current dir" msgstr "update semua repos dalam direkroti ini" msgid "thg thgstatus [OPTION]" msgstr "" msgid "thg topics [-r REV] [NAME]" msgstr "" msgid "Please enable the Topic extension first." msgstr "" msgid "only one new topic name allowed" msgstr "" msgid "thg update [-C] [[-r] REV]" msgstr "" msgid "thg userconfig" msgstr "" msgid "changeset to view in diff tool" msgstr "" msgid "revisions to view in diff tool" msgstr "" msgid "bundle file to preview" msgstr "" msgid "launch visual diff tool" msgstr "" msgid "print license" msgstr "" msgid "thg version [OPTION]" msgstr "" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "Dialog TortoiseHg (versi %s), Mercurial (versi %s)\n" msgid "Location:" msgstr "" msgid "Update to:" msgstr "" msgid "Options:" msgstr "" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "" msgid "Perform a push before updating (-p/--push)" msgstr "" msgid "Allow pushing new branches (--new-branch)" msgstr "" msgid "Force push to remote location (-f/--force)" msgstr "" msgid "remove working directory" msgstr "" msgid "unknown revision!" msgstr "" #, python-format msgid "Remote Update - %s" msgstr "" msgid "&Update" msgstr "" msgid "Log" msgstr "" msgid "Repositories" msgstr "" #, python-format msgid "Running at %s" msgstr "" msgid "Stopped" msgstr "" msgid "TortoiseHg Web Server" msgstr "" msgid "Web Server" msgstr "" msgid "Port:" msgstr "" msgid "Status:" msgstr "" msgid "Start" msgstr "" msgid "Settings" msgstr "" msgid "" msgstr "" msgid "&True" msgstr "" msgid "&False" msgstr "" msgid "&Unspecified" msgstr "" #, python-format msgid "%dpt" msgstr "" msgid "Bold" msgstr "" msgid "Italic" msgstr "" msgid "Strike" msgstr "" msgid "Underline" msgstr "" msgid "&Set..." msgstr "" msgid "&Clear" msgstr "" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "" msgid "&Browse..." msgstr "" msgid "UI Language" msgstr "" msgid "Specify your preferred user interface language (restart needed)" msgstr "" msgid "Three-way Merge Tool" msgstr "" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" msgid "Visual Diff Tool" msgstr "" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" msgid "Visual Editor" msgstr "" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" msgid "CLI Editor" msgstr "" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" msgid "Shell" msgstr "" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
                                                      Default, Windows: cmd.exe /" "K title %(reponame)s
                                                      Default, OS X: not set
                                                      Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" msgid "Immediate Operations" msgstr "" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" msgid "Tab Width" msgstr "" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" msgid "Force Repo Tab" msgstr "" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "" msgid "Monitor Repo Changes" msgstr "" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" msgid "Max Diff Size" msgstr "" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" msgid "Fork GUI" msgstr "" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" msgid "Full Path Title" msgstr "" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" msgid "Auto-resolve merges" msgstr "" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" msgid "New Repo Skeleton" msgstr "" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "" msgid "Single Workbench Window" msgstr "" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" msgid "Default widget" msgstr "" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" msgid "" "Open new tabs next\n" "to the current tab" msgstr "" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" msgid "Author Coloring" msgstr "" msgid "Color changesets by author name. Default: False" msgstr "" msgid "Full Authorname" msgstr "" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" msgid "Task Tabs" msgstr "" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" msgid "Task Toolbar Order" msgstr "" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
                                                      Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
                                                      Valid names are: log commit sync grep and " "pbranch.
                                                      Default: log commit grep pbranch | sync" msgstr "" msgid "Long Summary" msgstr "" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" msgid "Log Batch Size" msgstr "" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "" msgid "Dead Branches" msgstr "" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" msgid "Branch Colors" msgstr "" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" msgid "Hide Tags" msgstr "" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" msgid "Activate Bookmarks" msgstr "" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

                                                      • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
                                                      • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
                                                      • never: Never show any prompt to " "activate any bookmarks.

                                                      Default: prompt" msgstr "" msgid "Show Family Line" msgstr "" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

                                                      Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" msgid "Use optimized graph layouter" msgstr "" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

                                                      Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" msgctxt "config item" msgid "Commit" msgstr "" msgid "Username" msgstr "" msgid "" "Name associated with commits. The common format is:
                                                      Full Name <" "email@example.com>" msgstr "" msgid "Ask Username" msgstr "" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" msgid "Summary Line Length" msgstr "" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" msgid "Close After Commit" msgstr "" msgid "Close the commit tool after every successful commit. Default: False" msgstr "" msgid "Push After Commit" msgstr "" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" msgid "Auto Commit List" msgstr "" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" msgid "Auto Exclude List" msgstr "" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" msgid "English Messages" msgstr "" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" msgid "New Commit Phase" msgstr "" msgid "The phase of new commits. Default: draft" msgstr "" msgid "Secret MQ Patches" msgstr "" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "" msgid "Check Subrepo Phase" msgstr "" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" msgid "Monitor working
                                                      directory changes" msgstr "" msgid "" "Select when the working directory status list will be refreshed:
                                                      - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
                                                      TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
                                                      - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
                                                      - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
                                                      Default: auto" msgstr "" msgid "Confirm adding unknown files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Confirm deleting files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Sync" msgstr "" msgid "After Pull Operation" msgstr "" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" msgid "Default Push" msgstr "" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

                                                      • all: The default. Push all changes in all " "branches.
                                                      • branch: Push all changes in the current branch.
                                                      • revision: Push the changes in the current branch up to the current revision.

                                                      Default: all" msgstr "" msgid "Confirm Push" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" msgid "Target Combo" msgstr "" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

                                                      • auto: The default. Show the combo if more than one target " "configured.
                                                      • always: Always show the combo.

                                                      Default: auto" msgstr "" msgid "SSH Command" msgstr "" msgid "" "Command to use for SSH connections.

                                                      Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" msgid "Subrepository Features:" msgstr "" msgid "Allow Hg Subrepos" msgstr "" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" msgid "Allow Git Subrepos" msgstr "" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

                                                      See the security note before enabling Git " "subrepos." msgstr "" msgid "Allow SVN Subrepos" msgstr "" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

                                                      See the security note before enabling " "Subversion subrepos." msgstr "" msgid "Server" msgstr "" msgid "Repository Details:" msgstr "" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" msgid "Encoding" msgstr "" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" msgid "'Publishing' repository" msgstr "" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" msgid "Web Server:" msgstr "" msgid "Textual description of the repository's purpose or contents." msgstr "" msgid "Contact" msgstr "" msgid "Name or email address of the person in charge of the repository." msgstr "" msgid "Style" msgstr "" msgid "Which template map style to use" msgstr "" msgid "Archive Formats" msgstr "" msgid "Comma separated list of archive formats allowed for downloading" msgstr "" msgid "Port" msgstr "" msgid "Port to listen on" msgstr "" msgid "Push Requires SSL" msgstr "" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" msgid "Stripes" msgstr "" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" msgid "Max Files" msgstr "" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "" msgid "Max Changes" msgstr "" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "" msgid "Allow Push" msgstr "" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" msgid "Deny Push" msgstr "" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" msgid "Proxy" msgstr "" msgid "Host" msgstr "" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "" msgid "Bypass List" msgstr "" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "" msgid "Optional. User name to authenticate with at the proxy server" msgstr "" msgid "Password" msgstr "" msgid "Optional. Password to authenticate with at the proxy server" msgstr "" msgid "From" msgstr "" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "" msgid "To" msgstr "" msgid "Comma-separated list of recipient email addresses" msgstr "" msgid "Cc" msgstr "" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "" msgid "Bcc" msgstr "" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "" msgid "method" msgstr "" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" msgid "SMTP Host" msgstr "" msgid "Host name of mail server" msgstr "" msgid "SMTP Port" msgstr "" msgid "Port to connect to on mail server. Default: 25" msgstr "" msgid "SMTP TLS" msgstr "" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "" msgid "SMTP Username" msgstr "" msgid "Username to authenticate to mail server with" msgstr "" msgid "SMTP Password" msgstr "" msgid "Password to authenticate to mail server with" msgstr "" msgid "Local Hostname" msgstr "" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "" msgid "Diff and Annotate" msgstr "" msgid "Patch EOL" msgstr "" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" msgid "Git Format" msgstr "" msgid "Use git extended diff header format. Default: False" msgstr "" msgid "MQ Git Format" msgstr "" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" msgid "No Dates" msgstr "" msgid "Do not include modification dates in diff headers. Default: False" msgstr "" msgid "Show Function" msgstr "" msgid "Show which function each change is in. Default: False" msgstr "" msgid "Ignore White Space" msgstr "" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "" msgid "Ignore WS Amount" msgstr "" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "" msgid "Ignore Blank Lines" msgstr "" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "" msgid "Annotate:" msgstr "" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "" msgid "Fonts" msgstr "" msgid "Message Font" msgstr "" msgid "Font used to display commit messages. Default: monospace 10" msgstr "" msgid "Diff Font" msgstr "" msgid "Font used to display text differences. Default: monospace 10" msgstr "" msgid "ChangeLog Font" msgstr "" msgid "Font used to display changelog data. Default: monospace 10" msgstr "" msgid "Output Font" msgstr "" msgid "Font used to display output messages. Default: sans 8" msgstr "" msgid "Extensions" msgstr "" msgid "Tools" msgstr "" msgid "Hooks" msgstr "" msgid "Issue Tracking" msgstr "" msgid "Issue Regex" msgstr "" msgid "Defines the regex to match when picking up issue numbers." msgstr "" msgid "Issue Link" msgstr "" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" msgid "Inline Tags" msgstr "" msgid "Show tags at start of commit message." msgstr "" msgid "Mandatory Issue Reference" msgstr "" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" msgid "Issue Tracker Plugin" msgstr "" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" msgid "Configure Issue Tracker" msgstr "" msgid "Configure the selected COM Bug Tracker plugin." msgstr "" msgid "Issue Tracker Trigger" msgstr "" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

                                                      • never: Do not update the Issue Tracker " "state automatically.
                                                      • commit: Update the Issue Tracker state after " "a successful commit.

                                                      Default: never" msgstr "" msgid "Changeset Link" msgstr "" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
                                                      The template string " "uses a normal mercurial template syntax, such as:

                                                      • {node|short} : replaced by " "the 12 digit revision id.
                                                      • {rev} : replaced by the revision number." "
                                                      • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
                                                      For example, in order to " "link to bitbucket commit pages you can set this to:
                                                      https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
                                                      You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
                                                      https://github.com/torvalds/" "linux/commit/{gitnode}
                                                      https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
                                                      " msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "" msgid "User name to authenticate with review board" msgstr "" msgid "Password to authenticate with review board" msgstr "" msgid "Server Repository ID" msgstr "" msgid "The default repository id for this repo on the review board server" msgstr "" msgid "Target Groups" msgstr "" msgid "A comma separated list of target groups" msgstr "" msgid "Target People" msgstr "" msgid "A comma separated list of target people" msgstr "" msgid "Kiln Bfiles" msgstr "" msgid "Patterns" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" msgid "Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" msgid "System Cache" msgstr "" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "" msgid "Simplelock" msgstr "" msgid "Lock Clone" msgstr "" msgid "" "Location of local clone of organizational lock repository.

                                                      This repository " "must contain a \"locked\" text file" msgstr "" msgid "Largefiles" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" msgid "Minimum Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" msgid "User Cache" msgstr "" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" msgid "Projrc" msgstr "" msgid "Require confirmation" msgstr "" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

                                                      • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
                                                      • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
                                                      • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
                                                      " msgstr "" msgid "Servers" msgstr "" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" msgid "Include" msgstr "" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" msgid "Exclude" msgstr "" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" msgid "Update on incoming" msgstr "" msgid "" "Let the user update the projrc on incoming:
                                                      • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
                                                      • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
                                                      • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                                                        Default: never" msgstr "" msgid "GnuPG" msgstr "" msgid "Specify the path to GPG. Default: gpg" msgstr "" msgid "Key ID" msgstr "" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "" msgid "TortoiseHg Settings" msgstr "" msgid "Iniparse package not found" msgstr "" msgid "Can't change settings without iniparse package - view is readonly." msgstr "" #, python-format msgid "%s's global settings" msgstr "" msgid "No repository found" msgstr "" msgid "no repo at " msgstr "" #, python-format msgid "%s project settings (.hg/projrc)" msgstr "" #, python-format msgid "%s repository settings" msgstr "" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "" msgid "Apply changes before exit?" msgstr "" msgid "&No (discard changes)" msgstr "" msgid "Reload" msgstr "" msgid "Settings File:" msgstr "" msgid "Confirm Save" msgstr "" msgid "Save changes before editing?" msgstr "" msgid "&Save" msgstr "" msgid "Confirm Reload" msgstr "" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" msgid "Unable to create a Mercurial.ini file" msgstr "" msgid "Insufficient access rights, reverting to read-only mode." msgstr "" msgid "Context Menu" msgstr "" msgid "Top menu items:" msgstr "" msgid "Sub menu items:" msgstr "" msgid "Menu Behavior" msgstr "" msgid "Hide context menu outside repositories" msgstr "" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" msgid "Icons" msgstr "" msgid "Overlays" msgstr "" msgid "Enabled overlays" msgstr "" msgid "Local disks only" msgstr "" msgid "Enabled Overlay Handlers" msgstr "" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "" msgid "Added" msgstr "" msgid "Locked*" msgstr "" msgid "Ignored*" msgstr "" msgid "Unversioned" msgstr "" msgid "Readonly*" msgstr "" msgid "Deleted*" msgstr "" msgid "*: not used by TortoiseHg" msgstr "" msgid "Taskbar" msgstr "" msgid "Show Icon" msgstr "" msgid "Highlight Icon" msgstr "" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" msgid "Explorer Extension Settings - TortoiseHg" msgstr "" msgid "Clear" msgstr "" msgid "Clear the current shelf file" msgstr "" msgid "Delete the current shelf file" msgstr "" msgid "Left Toolbar" msgstr "" msgid "Delete selected chunks" msgstr "" msgid "Move all files right" msgstr "" msgid "Move selected file right" msgstr "" msgid "Edit file" msgstr "" msgid "Move selected chunks right" msgstr "" msgid "Refresh Toolbar" msgstr "" msgid "Refresh" msgstr "" msgid "New Shelf" msgstr "" msgid "Right Toolbar" msgstr "" msgid "Move selected chunks left" msgstr "" msgid "Move selected file left" msgstr "" msgid "Move all files left" msgstr "" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "" msgid "Delete selected chunks from working copy?" msgstr "" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "" msgid "Are you sure?" msgstr "" msgid "TortoiseHg New Shelf Name" msgstr "" msgid "Specify name of new shelf" msgstr "" msgid "Bad filename" msgstr "" #, python-format msgid "A shelf name cannot contain %s" msgstr "" msgid "File already exists" msgstr "" msgid "A shelf file of that name already exists" msgstr "" msgid "New shelf created" msgstr "" #, python-format msgid "Delete shelf file %s?" msgstr "" msgid "Shelf deleted" msgstr "" msgid "Revert all working copy changes?" msgstr "" #, python-format msgid "Clear contents of shelf file %s?" msgstr "" msgid "Shelf cleared" msgstr "" #, python-format msgid "Shelf: %s" msgstr "" #, python-format msgid "Patch: %s" msgstr "" msgid "Key:" msgstr "" msgid "Local sign" msgstr "" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "" msgid "No commit" msgstr "" msgid "Use custom commit message:" msgstr "" msgid "&Sign" msgstr "" #, python-format msgid "Sign - %s" msgstr "" msgid "Signature has been added" msgstr "" msgid "Repository command still running" msgstr "" msgid "Filter:" msgstr "" msgid "Check all files" msgstr "" msgid "Uncheck all files" msgstr "" msgid "Status File List Toolbar" msgstr "" msgid "Remove filter, show root" msgstr "" #, python-format msgid "%s - status (selection filtered)" msgstr "" #, python-format msgid "%s - status" msgstr "" msgid "Check" msgstr "" msgid "Uncheck" msgstr "" msgid "status" msgstr "" msgid "Failed to refresh" msgstr "" msgid "No appropriate files" msgstr "" msgid "No files found for this operation" msgstr "" msgid "Stat" msgstr "" msgid "M" msgstr "" msgid "Filename" msgstr "" msgid "Size (KB)" msgstr "" #, python-format msgid "Checked count: %d" msgstr "" msgid ", resolved merge" msgstr "" msgid ", unresolved merge" msgstr "" #, python-format msgid "%s is modified" msgstr "" msgid "modified" msgstr "" #, python-format msgid "%s is added" msgstr "" msgid "added" msgstr "" #, python-format msgid "%s is removed" msgstr "" msgid "removed" msgstr "" #, python-format msgid "%s is not tracked (unknown)" msgstr "" msgid "unknown" msgstr "" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "" msgid "missing" msgstr "" #, python-format msgid "%s is ignored" msgstr "" msgid "ignored" msgstr "" #, python-format msgid "%s is not modified (clean)" msgstr "" msgid "clean" msgstr "" #, python-format msgid "%s is a dirty subrepo" msgstr "" msgid "subrepo" msgstr "" msgid "Check for incoming changes from selected URL" msgstr "" msgid "Pull incoming changes from selected URL" msgstr "" msgid "Detect outgoing changes to selected URL" msgstr "" msgid "Push outgoing changes to selected URL" msgstr "" msgid "Sync Bookmarks" msgstr "" msgid "Email outgoing changesets for remote repository" msgstr "" msgid "Manage pending perforce changelists" msgstr "" msgid "Unbundle" msgstr "" msgid "Selected Options:" msgstr "" msgid "Path Edit Toolbar" msgstr "" msgid "Security" msgstr "" msgid "Manage HTTPS connection security and user authentication" msgstr "" msgid "Save" msgstr "" msgid "Save current URL under an alias" msgstr "" msgid "Paths in Repository Settings:" msgstr "" msgid "Related Paths:" msgstr "" msgid "branch: " msgstr "" msgid "bookmark: " msgstr "" #, python-format msgid "rev: %d (%s)" msgstr "" msgid "Post Pull: " msgstr "" msgid "&Edit..." msgstr "" msgid "&Remove..." msgstr "" msgid "Repository not local" msgstr "" msgid "A terminal shell cannot be opened for remote" msgstr "" msgid "Confirm path delete" msgstr "" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "" msgid "Select repository" msgstr "" msgid "No host specified" msgstr "" msgid "Please set a valid URL to continue." msgstr "" msgid "No remote repository URL or path set" msgstr "" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

                                                        Please type and save a remote repository path on the " "Sync widget." msgstr "" msgid "Redundant authentication info" msgstr "" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" msgid "sync command already running" msgstr "" #, python-format msgid "Getting incoming changesets from %s..." msgstr "" #, python-format msgid "Found incoming changesets from %s" msgstr "" #, python-format msgid "No incoming changesets from %s" msgstr "" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "" #, python-format msgid "Pulling from %s..." msgstr "" #, python-format msgid "Pull from %s completed" msgstr "" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "" msgid "Merge caused file conflicts" msgstr "" msgid "File conflicts need to be resolved" msgstr "" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "" #, python-format msgid "%d outgoing changesets to %s" msgstr "" #, python-format msgid "No outgoing changesets to %s" msgstr "" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "" msgid "Perforce pending..." msgstr "" #, python-format msgid "%s (submitted)" msgstr "" #, python-format msgid "%s (pending)" msgstr "" msgid "Unable to parse p4pending output" msgstr "" #, python-format msgid "%d pending changelists found" msgstr "" msgid "No pending Perforce changelists" msgstr "" msgid "Aborted p4pending" msgstr "" msgid "Unable to determine pending changesets" msgstr "" msgid "Confirm Push to remote Repository" msgstr "" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" #, python-format msgid "Push to %s aborted" msgstr "" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" #, python-format msgid "Pushing to %s..." msgstr "" #, python-format msgid "Push to %s completed" msgstr "" #, python-format msgid "Push to %s aborted, ret %d" msgstr "" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" msgid "Determining outgoing changesets to email..." msgstr "" msgid "No outgoing changesets" msgstr "" #, python-format msgid "Outgoing aborted, ret %d" msgstr "" msgid "Select bundle file" msgstr "" msgid "Bundle files (*.hg)" msgstr "" msgid "Unable to remove URL" msgstr "" msgid "Post Pull Behavior" msgstr "" msgid "Select post-pull operation for this repository" msgstr "" msgid "None - simply pull changesets" msgstr "" msgid "Update - pull, then try to update" msgstr "" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "" msgid "Rebase - rebase local commits above pulled changes" msgstr "" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "" msgid "Launch settings tool..." msgstr "" msgid "Unable to save post pull operation" msgstr "" msgid "Save Path" msgstr "" msgid "Alias" msgstr "" msgid "URL" msgstr "" msgid "Remove authentication data from URL" msgstr "" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" msgid "Update subrepo paths" msgstr "" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" msgid "Unable to save an URL" msgstr "" msgid "Confirm URL replace" msgstr "" #, python-format msgid "%s already exists, replace URL?" msgstr "" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

                                                        %s

                                                        Replace it with the " "following URL?:

                                                        %s" msgstr "" msgid "Security: " msgstr "" #, python-format msgid "Host: %s" msgstr "" msgid "Secure HTTPS Connection" msgstr "" msgid "Verify with Certificate Authority certificates (best)" msgstr "" msgid "Verify with stored host fingerprint (good)" msgstr "" msgid "No host validation, but still encrypted (bad)" msgstr "" msgid "### host certificate fingerprint ###" msgstr "" msgid "Query" msgstr "" msgid "TLS 1.0" msgstr "" msgid "TLS 1.1" msgstr "" msgid "TLS 1.2" msgstr "" msgid "Minimum Protocol" msgstr "" msgid "User Authentication" msgstr "" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Key" msgstr "" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Chain" msgstr "" msgid "Certificate Query Error" msgstr "" msgid "Select User Certificate Key File" msgstr "" msgid "PEM files (*.pem *.key)" msgstr "" msgid "Select User Certificate Chain File" msgstr "" msgid "PEM files (*.pem *.crt *.cer)" msgstr "" msgid "Unable to save authentication" msgstr "" #, python-format msgid "%s - sync options" msgstr "" msgid "Allow push of a new branch (--new-branch)" msgstr "" msgid "Force push or pull (override safety checks, --force)" msgstr "" msgid "Temporarily disable configured HTTP proxy" msgstr "" msgid "Emit debugging output (--debug)" msgstr "" msgid "Work on patch queue (--mq)" msgstr "" #, python-format msgid "Tag - %s" msgstr "" msgid "Tag:" msgstr "" msgid "Tagged:" msgstr "" msgid "Local tag" msgstr "" msgid "Replace existing tag (-f/--force)" msgstr "" msgid "Use English commit message" msgstr "" msgid "local" msgstr "" msgid "Move" msgstr "" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "" #, python-format msgid "Added tag %s for changeset %s" msgstr "" #, python-format msgid "Tag '%s' has been moved" msgstr "" #, python-format msgid "Tag '%s' has been added" msgstr "" #, python-format msgid "Removed tag %s" msgstr "" #, python-format msgid "Tag '%s' has been removed" msgstr "" msgid "Patch files (*.diff *.patch)" msgstr "" #, python-format msgid "Import - %s" msgstr "" msgid "Browse Directory..." msgstr "" msgid "Import from Clipboard" msgstr "" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "" msgid "Preview:" msgstr "" msgid "Shelf" msgstr "" msgid "Checking working directory status..." msgstr "" msgid "&Import" msgstr "" msgid "Working directory is not clean! View changes..." msgstr "" msgid "Select patches" msgstr "" msgid "Select Directory containing patches" msgstr "" #, python-format msgid "%s patches" msgstr "" #, python-format msgid "%s will be imported to " msgstr "" msgid "Nothing to import" msgstr "" msgid "Strip:" msgstr "" msgid "Discard local changes, no backup (-f/--force)" msgstr "" msgid "No backup (-n/--nobackup)" msgstr "" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "" msgstr[1] "" msgid "Unknown revision!" msgstr "" msgid "Detected uncommitted local changes." msgstr "" msgid "Do you want to keep them or discard them?" msgstr "" msgid "&Keep (--keep)" msgstr "" msgid "&Discard (--force)" msgstr "" msgid "Confirm Strip" msgstr "" #, python-format msgid "Strip - %s" msgstr "" msgid "&Strip" msgstr "" msgid "Topic:" msgstr "" msgid "&Rename" msgstr "" #, python-format msgid "Topic - %s" msgstr "" #, python-format msgid "A topic named \"%s\" already exists" msgstr "" #, python-format msgid "Topic '%s' has been added" msgstr "" #, python-format msgid "Topic '%s' does not exist" msgstr "" #, python-format msgid "Topic '%s' has been removed" msgstr "" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "" msgid "Parent 1:" msgstr "" msgid "Parent 2:" msgstr "" msgid "Pull subrepos from:" msgstr "" msgid "List updated files (--verbose)" msgstr "" msgid "Discard local changes, no backup (-C/--clean)" msgstr "" msgid "Always merge (when possible)" msgstr "" msgid "(same as parent)" msgstr "" msgid "Activate bookmark?" msgstr "" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

                                                        Do " "you want to activate it?
                                                        You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

                                                        Select " "the bookmark that you want to activate and click OK.

                                                        Click " "Cancel if you don't want to activate any of them.

                                                        You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                        " msgstr "" msgid "Deactivate current bookmark?" msgstr "" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" msgid "Discard - discard local changes, no backup" msgstr "" msgid "&Shelve" msgstr "" msgid "Shelve - move local changes to a patch" msgstr "" msgid "Merge - allow to merge with local changes" msgstr "" msgid "Confirm Update" msgstr "" #, python-format msgid "Update - %s" msgstr "" msgid "[non-existant]" msgstr "" msgid "Tool launch failure" msgstr "" #, python-format msgid "%s : %s" msgstr "" msgid "No diff tool found" msgstr "" msgid "No visual diff tools were detected" msgstr "" msgid "[working copy]" msgstr "" msgid "[original]" msgstr "" msgid "Unable to find changeset" msgstr "" msgid "You likely need to refresh this application" msgstr "" msgid "No file changes" msgstr "" msgid "There are no file changes to view" msgstr "" msgid "working changes" msgstr "" #, python-format msgid "changeset %d:%s" msgstr "" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "" msgid "Visual Diffs - " msgstr "" msgid " filtered" msgstr "" msgid "Temporary files are removed when this dialog is closed" msgstr "" msgid "Select Tool:" msgstr "" msgid "Dir diff to p1" msgstr "" msgid "Dir diff to p2" msgstr "" msgid "3-way dir diff" msgstr "" msgid "Directory diff" msgstr "" msgid "Confirm Discard" msgstr "Konfirmasi Untuk Dibuang" msgid "Discard outstanding changes to working directory?" msgstr "" msgid "Config files (*.conf *.config *.ini)" msgstr "" msgid "Open hgweb config" msgstr "" msgid "Save hgweb config" msgstr "" msgid "Path:" msgstr "" msgid "Local Path:" msgstr "" msgid "Select Repository" msgstr "" msgid "Add Path to Serve" msgstr "" msgid "Edit Path to Serve" msgstr "" msgid "Local Path" msgstr "" msgid "Webconf" msgstr "" msgid "Config File:" msgstr "" msgid "Open" msgstr "" msgid "New &Workbench" msgstr "" msgid "&New Repository..." msgstr "" msgid "Clon&e Repository..." msgstr "" msgid "&Open Repository..." msgstr "" msgid "&File" msgstr "" msgid "&View" msgstr "" msgid "&Repository" msgstr "" msgid "&Help" msgstr "" msgid "&Dock Toolbar" msgstr "" msgid "&Task Toolbar" msgstr "" msgid "&Custom Toolbar" msgstr "" msgid "S&ync Toolbar" msgstr "" msgid "&Close Repository" msgstr "" msgid "Sh&ow Repository Registry" msgstr "" msgid "Show &Patch Queue" msgstr "" msgid "Show Conso&le" msgstr "" msgid "Place Console in Doc&k Area" msgstr "" msgid "R&epository Registry Options" msgstr "" msgid "Save Open Repositories on E&xit" msgstr "" msgid "Sa&ve Current Sync Paths on Exit" msgstr "" msgid "Show Tas&k Tab" msgstr "" msgid "&Commit" msgstr "" msgid "&Patch Branch" msgstr "" msgid "Revision &Details" msgstr "" msgid "&Search" msgstr "" msgid "S&ynchronize" msgstr "" msgid "Refresh current repository" msgstr "" msgid "Refresh &Task Tab" msgstr "" msgid "Refresh only the current task tab" msgstr "" msgid "Load &All Revisions" msgstr "" msgid "Load all revisions into graph" msgstr "" msgid "Go to current revision" msgstr "" msgid "&Goto Revision..." msgstr "" msgid "Go to a specific revision" msgstr "" msgid "Filter graph with revision sets or branches" msgstr "" msgid "&Workbench Toolbars" msgstr "" msgid "&Lock File..." msgstr "" msgid "Lock or unlock files" msgstr "" msgid "Update working directory or switch revisions" msgstr "" msgid "&Shelve..." msgstr "" msgid "&Import Patches..." msgstr "" msgid "U&nbundle..." msgstr "" msgid "&Merge..." msgstr "" msgid "Merge with the other head of the current branch" msgstr "" msgid "&Resolve..." msgstr "" msgid "R&ollback/Undo..." msgstr "" msgid "&Purge..." msgstr "" msgid "&Bisect..." msgstr "" msgid "&Verify" msgstr "" msgid "Re&cover" msgstr "" msgid "&Web Server" msgstr "" msgid "E&xplorer Help" msgstr "" msgid "&Readme" msgstr "" msgid "About &Qt" msgstr "" msgid "&About TortoiseHg" msgstr "" msgid "&Incoming" msgstr "" msgid "&Pull" msgstr "" msgid "&Outgoing" msgstr "" msgid "P&ush" msgstr "" msgid "&Sync Bookmarks..." msgstr "" #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" msgid "Check for incoming changes" msgstr "" msgid "Pull incoming changes" msgstr "" msgid "Detect outgoing changes" msgstr "" msgid "Push outgoing changes" msgstr "" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" #, python-format msgid "Execute custom tool '%s'" msgstr "" msgid "Custom Toolbar &Settings" msgstr "" msgid "TortoiseHg Workbench" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "" msgid "Goto revision" msgstr "" msgid "Enter revision identifier" msgstr "" msgid "Select repository directory to open" msgstr "" msgid "README not configured" msgstr "" msgid "" "A README file is not configured for the current repository.

                                                        To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" msgid "Issue Tracker Plugin Error" msgstr "" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "" msgid "This error will not be shown again until you restart the workbench" msgstr "" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "" msgid "Error executing \"commit finished\" trigger" msgstr "" msgid "Cannot open Plugin Options dialog" msgstr "" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "" msgid "[--insecure] [SOURCE]" msgstr "" #, python-format msgid "unsupported URL: %s" msgstr "" #, python-format msgid "%s certificate error: no certificate received" msgstr "" msgid "move after the specified patch" msgstr "" msgid "[--after PATCH] PATCH..." msgstr "" msgid "unknown patch to move specified" msgstr "" msgid "invalid patch position specified" msgstr "" msgid "cannot move applied patches" msgstr "" #, python-format msgid "patch %s not in series" msgstr "" msgid "cannot move into applied patches" msgstr "" msgid "abort: " msgstr "" msgid "hint: " msgstr "" #, python-format msgid "HTTP Error: %d (%s)" msgstr "" #, python-format msgid "URLError: %s" msgstr "" msgid "SSL: Server certificate verify failed" msgstr "" #, python-format msgid "SSL: unknown error %s:%s" msgstr "" #, python-format msgid "SSL error: %s" msgstr "" msgid "hgsubversion packaged with thg" msgstr "" msgid "hggit packaged with thg" msgstr "" msgid "inotify is not supported on this platform" msgstr "" msgid "eol is incompatible with win32text" msgstr "eol tidak sesuai dengan win32text" msgid "win32text is incompatible with eol" msgstr "win32text tidak sesuai dengan eol" msgid "hgsubversion is incompatible with perfarce" msgstr "" msgid "perfarce is incompatible with hgsubversion" msgstr "" msgid "Workbench custom toolbar" msgstr "" msgid "Revision details context menu" msgstr "" msgid "Pair selection context menu" msgstr "" msgid "Multiple selection context menu" msgstr "" msgid "Commit context menu" msgstr "" msgid "File context menu (on manifest and revision details)" msgstr "" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" msgid "in the future" msgstr "masa sepan" msgid "now" msgstr "sekarang" #, python-format msgid "command parse error: %s" msgstr "" #, python-format msgid "no matches found: %s" msgstr "tidak ada kesesuaian: %s" msgid "Commit..." msgstr "" msgid "Commit changes in repository" msgstr "" msgid "Create Repository Here" msgstr "Buat repositori di sini" msgid "Create a new repository" msgstr "Membuat repositori baru" msgid "Clone..." msgstr "" msgid "Create clone here from source" msgstr "" msgid "File Status" msgstr "Status Berkas" msgid "Repository status & changes" msgstr "Status & perubahan repositori" msgid "Add Files..." msgstr "Tambah berkas..." msgid "Add files to version control" msgstr "Menambah berkas pada kendali versi" msgid "Revert Files..." msgstr "Kembalikan Berkas..." msgid "Revert file changes" msgstr "Mengembalikan berkas yang telah diubah" msgid "Forget Files..." msgstr "Lupa berkas-berkas..." msgid "Remove files from version control" msgstr "Menyingkirkan berkas-berkas dari kendali versi" msgid "Remove Files..." msgstr "Menyingkirkan Berkas..." msgid "Rename File" msgstr "Menamai Berkas" msgid "Rename file or directory" msgstr "Menamai berkas atau direktori" msgid "View change history in repository" msgstr "Lihat sejarah perubahan dalam repositori" msgid "File History" msgstr "" msgid "View change history of selected files" msgstr "Lihat sejarah perubahan pada berkas-berkas yang dipilih" msgid "Shelve Changes" msgstr "" msgid "Move changes between working dir and patch" msgstr "" msgid "Synchronize" msgstr "" msgid "Synchronize with remote repository" msgstr "" msgid "Start web server for this repository" msgstr "Mulai server web pada repositori ini" msgid "Update..." msgstr "" msgid "Update working directory" msgstr "Update direktori kerja" msgid "Update Icons" msgstr "Update Ikon-ikon" msgid "Update icons for this repository" msgstr "" msgid "Global Settings" msgstr "Pengaturan Global" msgid "Configure user wide settings" msgstr "" msgid "Repository Settings" msgstr "Pengaturan Repositori" msgid "Configure repository settings" msgstr "Mengatur pengaturan repositori" msgid "Explorer Extension Settings" msgstr "Pengaturan Ekstensi Eksplorer" msgid "Configure Explorer extension" msgstr "Mengatur ekstensi Explorer" msgid "About TortoiseHg" msgstr "Informasi Program TortoiseHg" msgid "Show About Dialog" msgstr "Menampilkan Dialog Informasi Program" msgid "Diff to parent" msgstr "" msgid "View changes using GUI diff tool" msgstr "Melihat perubahan menggunakan sarana diff GUI" msgid "Edit Ignore Filter" msgstr "Ubah Penyaring Diabaikan" msgid "Edit repository ignore filter" msgstr "Ubah penyaring yang diabaikan pada repositori" msgid "Guess Renames" msgstr "" msgid "Detect renames and copies" msgstr "Deteksi penamaan dan penyalinan" msgid "Search History" msgstr "Sejarah Pencarian" msgid "Search file revisions for patterns" msgstr "" msgid "DnD Synchronize" msgstr "Sinkronisasi DnD" msgid "Synchronize with dragged repository" msgstr "" #, python-format msgid "unrecognized response: %s" msgstr "" msgid "password: " msgstr "" #, python-format msgid "repository %s not found" msgstr "repositori %s tidak ditemukan" msgid "win32ill: cannot create window for messages" msgstr "" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "" msgid "win32ill: interrupted while stopping message loop\n" msgstr "" #~ msgid "A new version of TortoiseHg is ready for download!" #~ msgstr "Versi baru TortoiseHG sudah ada untuk di unduh!" #~ msgid "Source and destination are the same" #~ msgstr "Sumber dan tujuannya sama" #~ msgid "Source path is empty" #~ msgstr "Path sumber kosong" #~ msgid "binary patch is %d bytes, not %d" #~ msgstr "patch biner adalah %d, bukan %d" #~ msgid "There is no Mercurial repository here (.hg not found)" #~ msgstr "Tidak ada repositori Mercurial disini (.hg tidak ada)" #~ msgid "hgtk about" #~ msgstr "hgtk about" #~ msgid "udpate all repos in current dir" #~ msgstr "update semua repos dalam direkroti ini" #~ msgid "hgtk thgstatus [OPTION]" #~ msgstr "hgtk thgstatus [OPTION]" #~ msgid "hgtk version [OPTION]" #~ msgstr "hgtk version [OPTION]" #~ msgid "show the command options" #~ msgstr "menunjukkan opsi-opsi perintah" #~ msgid "[-o] CMD" #~ msgstr "[-o] CMD" #~ msgid "hgtk help [COMMAND]" #~ msgstr "hgtk help [COMMAND]" #~ msgid "import to the repository" #~ msgstr "impor ke repositori" #~ msgid "hgtk import [OPTION] [SOURCE]..." #~ msgstr "hgtk import [OPTION] [SOURCE]..." #~ msgid "Log Details" #~ msgstr "Detil Log" #~ msgid "Move Up" #~ msgstr "Pindah keatas" #~ msgctxt "changesets" #~ msgid "All" #~ msgstr "Semua" #~ msgid "Heads" #~ msgstr "Kepala" #~ msgid "Keywords" #~ msgstr "Kata-kunci" #~ msgid "Reload revision history" #~ msgstr "Memuat kembali sejarah revisi" #~ msgid "Reset revision marks" #~ msgstr "Reset penanda revisi" #~ msgid "Identify" #~ msgstr "Tunda" #~ msgid "_Navigate" #~ msgstr "_Navigasi" #~ msgid "_Synchronize" #~ msgstr "_Sinkronisasi" #~ msgid "Email..." #~ msgstr "Email..." #~ msgid "Top" #~ msgstr "Atas" #~ msgid "Up" #~ msgstr "Keatas" #~ msgid "Down" #~ msgstr "Kebawah" #~ msgid "Bottom" #~ msgstr "Bawah" #~ msgid "_Rename" #~ msgstr "_Ganti nama" #~ msgid "_Delete" #~ msgstr "_Hapus" #~ msgid "Show 'qparent'" #~ msgstr "Tampilkan 'qparent'" #~ msgid "Force" #~ msgstr "Paksakan" #~ msgid "Succeed" #~ msgstr "Berhasil" #~ msgid "St" #~ msgstr "St" #~ msgid "pending pmerges" #~ msgstr "tunda pmerge" #~ msgid "New Patch Name" #~ msgstr "Nama Patch Baru" #~ msgid "Pending Pmerge" #~ msgstr "Tunda Pmerge" #~ msgid "Applied MQ patch" #~ msgstr "Patch MQ diterapkan" #~ msgid "_new" #~ msgstr "_baru" #~ msgid "_edit message" #~ msgstr "_ubah pesan" #~ msgid "_rename" #~ msgstr "_ganti nama" #~ msgid "_delete" #~ msgstr "_hapus" #~ msgid "_finish" #~ msgstr "_selesai" #~ msgid "Show graph" #~ msgstr "Tampilkan grafik" #~ msgid "Show status" #~ msgstr "Tampilkan status" #~ msgid "Show name" #~ msgstr "Tampilkan nama" #~ msgid "Show title" #~ msgstr "Tampilkan judul" #~ msgid "Show message" #~ msgstr "Tampilkan pesan" #~ msgid "Abandon" #~ msgstr "Tinggalkan" #~ msgid "Abandon Error" #~ msgstr "Tinggalkan Kesalahan" #~ msgid "Strip" #~ msgstr "Potong" #~ msgid "Stripped successfully" #~ msgstr "Pemotongan berhasil" #~ msgid "Canceled stripping" #~ msgstr "Pemotongan dibatalkan" #~ msgid "%s changesets" #~ msgstr "%s perubahan" #~ msgid "%s will be stripped" #~ msgstr "%s akan dipotong" #~ msgid "Saved at: %s" #~ msgstr "Disimpan pada: %s" #~ msgid "Open..." #~ msgstr "Buka..." #~ msgid "Always show log" #~ msgstr "Selalu tampilkan log" #~ msgid "Updated successfully" #~ msgstr "Berhasil di-update" #~ msgid "Failed to update" #~ msgstr "Update gagal" #~ msgid "[canceled by user]\n" #~ msgstr "[dibatalkan oleh pengguna]\n" #~ msgid "invalid dialog result: %s" #~ msgstr "hasil dialog cacat: %s" #~ msgid "unable to clean temp directory: %s\n" #~ msgstr "tidak bisa membersihkan direktori temp: %s\n" #~ msgid "Visual Diffs" #~ msgstr "Diff Visual" #~ msgid "changeset " #~ msgstr "perubahan " #~ msgid "revisions %d to %d" #~ msgstr "revisi %d ke %d" #~ msgid "Unable to delete temp files" #~ msgstr "Tidak bisa menghapus berkas-berkas temp" #~ msgid "Close diff tools and try again, or quit to leak files?" #~ msgstr "Tutup sarana diff dan coba lagi, atau keluar ke berkas yang bocor?" #~ msgid "Try &Again" #~ msgstr "Cob&a Lagi" #~ msgid "Unsupported line endings type: %s" #~ msgstr "Tidak mendukung tipe akhir baris: %s" #~ msgid "this modifies a binary file (all or nothing)\n" #~ msgstr "hal ini memodifikasi berkas biner (semua atau tiak sama sekali)\n" #~ msgid "this is a binary file\n" #~ msgstr "ini adalah berkas biner\n" #~ msgid "unhandled transition: %s -> %s" #~ msgstr "transisi tidak ditertangani: %s -> %s" #~ msgid " [Ynsfdaq?] " #~ msgstr " [Ynsfdaq?] " #~ msgid "user quit" #~ msgstr "pengguna keluar" #~ msgid " and " #~ msgstr " dan " #~ msgid "backup %r as %r\n" #~ msgstr "backup %r sebagai %r\n" #~ msgid "file copy of %s failed\n" #~ msgstr "menyalin berkas %s gagal\n" #~ msgid "removing backup file : %r\n" #~ msgstr "menyingkirkan berkas backup : %r\n" #~ msgid "applying patch\n" #~ msgstr "menerapkan patch\n" #~ msgid "restoring %r to %r\n" #~ msgstr "mengembalikan %r ke %r\n" #~ msgid "abort: backup restore failed, %s\n" #~ msgstr "batal: gagal mengembalikan backup, %s\n" #~ msgid "restoring backup files\n" #~ msgstr "mengembalikan berkas-berkas backup\n" #~ msgid "file %s already exists\n" #~ msgstr "berkas %s sudah ada\n" #~ msgid "Several icons are courtesy of the TortoiseSVN project" #~ msgstr "Beberapa ikon adalah milik proyek TortoiseSVN" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/it.po0000644000000000000000000073473114440352353016261 0ustar00rootroot# Italian translation for tortoisehg # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the tortoisehg package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2015-06-28 12:43+0000\n" "Last-Translator: Wagner Bruna \n" "Language-Team: Italian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2019-07-17 05:43+0000\n" "X-Generator: Launchpad (build 19009)\n" msgid "TortoiseHg Overlay Icon Server" msgstr "Server icone di overlay di TortoiseHg" msgid "Exit" msgstr "Esci" msgid "About" msgstr "Informazioni su..." msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "" msgid "You can visit our site here" msgstr "Puoi visitare il nostro sito qui" msgid "&License" msgstr "&Licenza" #, python-format msgid "version %s" msgstr "versione %s" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "con Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "" msgid "License" msgstr "" msgid "= Working Directory Parent =" msgstr "= Genitore della directory di lavoro =" msgid "Directory of files" msgstr "Directory di file" msgid "Tar archives" msgstr "File tar" msgid "Uncompressed tar archive" msgstr "Archivio tar non compresso" msgid "Bzip2 tar archives" msgstr "File bzip2 tar" msgid "Tar archive compressed using bzip2" msgstr "Archivio tar compresso con bzip2" msgid "Gzip tar archives" msgstr "File gzip tar" msgid "Tar archive compressed using gzip" msgstr "Archivio tar compresso con gzip" msgid "Zip archives" msgstr "Archivio zip" msgid "Uncompressed zip archive" msgstr "Archivio zip non compresso" msgid "Zip archive compressed using deflate" msgstr "Archivio zip compresso con deflate" msgid "Revision:" msgstr "Revisione:" msgid "All files in this revision" msgstr "" msgid "Only files modified/created in this revision" msgstr "Solo i fine modificati/creati in questa revisione" msgid "Only files modified/created since:" msgstr "" msgid "Archive Content:" msgstr "" msgid "Recurse into subrepositories" msgstr "Ricorsivo in subrepository" msgid "Browse..." msgstr "Sfoglia..." msgid "Destination path:" msgstr "Percorso destinazione:" msgid "Archive types:" msgstr "Tipo:" msgid "Hg command:" msgstr "Comando Hg:" msgid "Select Destination Folder" msgstr "Selezionare la cartella destinazione" msgid "Select Destination File" msgstr "Seleziona file destinazione" msgid "All files (*)" msgstr "" msgid "Duplicate Name" msgstr "Nome duplicato" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "La destinazione \"%s\" esiste già come file!" msgid "Confirm Overwrite" msgstr "Conferma sovrascrittura" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" "La directory \"%s\" non è vuota!\n" "\n" "Vuoi sovrascriverla?" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" "Il file \"%s\" esiste già!\n" "\n" "Sovrascrivere?" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "La destinazione \"%s\" esiste già come cartella!" #, python-format msgid "Archive - %s" msgstr "Archivia - %s" msgid "&Archive" msgstr "&Archivia" msgid "Backout requires a parent revision" msgstr "" msgid "Cannot backout change on a different branch" msgstr "" #, python-format msgid "Backout - %s" msgstr "" msgid "Prepare to backout" msgstr "" msgid "Verify backout revision and ensure your working directory is clean." msgstr "" msgid "Backing out a parent revision is a single step operation" msgstr "" msgid "Backout revision" msgstr "" msgid "Not a head, backout will create a new head!" msgstr "" msgid "Current local revision" msgstr "Revisione locale corrente" msgid "Working directory status" msgstr "Status della cartella di lavoro" msgid "Checking..." msgstr "Controllo in corso..." msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Automatically resolve merge conflicts where possible" msgstr "Risolve automaticamente i conflitti di unione, ove possibile" msgid "Uncommitted local changes are detected" msgstr "Sono rilevati cambiamenti locali non confermati" msgid "Clean" msgstr "Ripulisci" msgid "Backing out, then merging..." msgstr "" msgid "All conflicting files will be marked unresolved." msgstr "Tutti i file in conflitto saranno segnati come non risolti." msgid "Automatically advance to next page when backout and merge are complete." msgstr "" #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" msgid "No merge conflicts, ready to commit" msgstr "Nessun conflitto di unione, pronto per la conferma" msgid "Commit backout and merge results" msgstr "" msgid "Parents" msgstr "Genitori" msgid "Working Directory" msgstr "Directory di lavoro" msgid "Working Directory (merged)" msgstr "Cartella di lavoro (unita)" msgid "Commit message" msgstr "Messaggio di deposito" msgid "Skip final confirmation page, close after commit." msgstr "Salta la pagina finale di conferma, chiudi dopo la conferma" msgid "Backed out changeset: " msgstr "Backout eseguito sul changeset: " msgid "Confirm Discard Message" msgstr "Conferma sovrascrittura messaggio" msgid "Discard current backout message?" msgstr "Sovrascrivere messaggio di backout attuale" msgid "Use English backout message" msgstr "Usa messaggio di backout in inglese" msgid "Backing out and committing..." msgstr "" msgid "Please wait while making backout." msgstr "" msgid "Committing..." msgstr "Deposito in corso..." msgid "Please wait while committing merged files." msgstr "" msgid "Finished" msgstr "Completato" msgid "Backout changeset" msgstr "" #, python-format msgid "Bisect - %s" msgstr "" msgid "Accept" msgstr "Accetta" msgid "Known good revision:" msgstr "Revisioni valide, note:" msgid "Known bad revision:" msgstr "Revisioni non valide, note:" msgid "Discard local changes (revert --all)" msgstr "" msgid "Revision is &Good" msgstr "" msgid "Revision is &Bad" msgstr "" msgid "&Skip this Revision" msgstr "" msgid "Close" msgstr "Chiudi" msgid "Error encountered." msgstr "Errore incontrato" msgid "Culprit found." msgstr "" msgid "Revision" msgstr "Revisione" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "" #, python-format msgid "%s (hint: %s)" msgstr "%s (consiglio: %s)" msgid "Bookmark:" msgstr "Segnalibro:" msgid "New Name:" msgstr "Nuovo nome:" msgid "Activate:" msgstr "Attivare:" msgid "&Add" msgstr "&Aggiungi" msgid "Re&name" msgstr "Ri&nomina" msgid "&Remove" msgstr "&Rimuovi" msgid "&Move" msgstr "&Sposta" #, python-format msgid "Bookmark - %s" msgstr "%s - Gestione segnalibri" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "Esiste già un segnalibro denominato \"%s\"" #, python-format msgid "Bookmark '%s' has been added" msgstr "Il segnalibro '%s' è stato aggiunto" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "Non esiste un segnalibro denominato \"%s\"" #, python-format msgid "Bookmark '%s' has been moved" msgstr "Il segnalibro '%s' è stato spostato" #, python-format msgid "Bookmark '%s' does not exist" msgstr "Il segnalibro '%s' non esiste" #, python-format msgid "Bookmark '%s' has been removed" msgstr "Il segnalibro '%s' è stato rimosso" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "Il segnalibro '%s' è stato rinominato in '%s'" msgid "TortoiseHg Bookmark Sync" msgstr "" msgid "Outgoing Bookmarks" msgstr "" msgid "&Push Bookmark" msgstr "" msgid "&Remove Bookmark" msgstr "" msgid "Incoming Bookmarks" msgstr "" msgid "P&ull Bookmark" msgstr "" msgid "R&emove Bookmark" msgstr "" #, python-format msgid "Pushed local bookmark: %s" msgstr "" #, python-format msgid "Pulled remote bookmark: %s" msgstr "" #, python-format msgid "Removed remote bookmark: %s" msgstr "" #, python-format msgid "Removed local bookmark: %s" msgstr "" #, python-format msgid "%s - branch operation" msgstr "%s - operazione sul ramo" msgid "Select branch of merge commit" msgstr "Selezionare il ramo su cui eseguire il commit del merge" msgid "Changes take effect on next commit" msgstr "Le modifiche avranno effetto al prossimo commit" msgid "No branch changes" msgstr "Nessuna operazione sui rami" msgid "Open a new named branch" msgstr "Apre un nuovo ramo" msgid "Close current branch" msgstr "Chiudi il ramo attuale" #, python-format msgid "Please report this bug to our bug tracker" msgstr "" "Si prega di riportare l'anomalia al nostro bug tracker" msgid "Checking for updates..." msgstr "Verifica degli aggiornamenti..." msgid "Copy" msgstr "Copia" msgid "Quit" msgstr "Esci" msgid "TortoiseHg Bug Report" msgstr "TortoiseHg rapporto errori" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "Si raccomanda l'aggiornamento a un TortoiseHg più recente" msgid "Your TortoiseHg is up to date." msgstr "Il vostro TortoiseHg è aggiornato" msgid "Save error report to" msgstr "Salva rapporto errori in" msgid "Text files (*.txt)" msgstr "File di testo (*.txt)" msgid "Error writing file" msgstr "Errore durante la scrittura del file" msgid "TortoiseHg Error" msgstr "Errore di TortoiseHg" msgid "" "If you still have trouble, please file a bug report." msgstr "" "Se avete ancora problemi, compilate un rapporto delle " "anomalie" msgid "Visual Diff" msgstr "Comparazione visuale" msgid "View file changes in external diff tool" msgstr "Visualizza i cambiamenti del file nello strumento differenze esterno" msgid "Edit Local" msgstr "Edita localmente" msgid "Edit current file in working copy" msgstr "Edita una copia di lavoro del file corrente" msgid "Revert to Revision" msgstr "Ripristinare alla revisione" msgid "Revert file(s) to contents at this revision" msgstr "Riporta i file(s) al contenuto di questa revisione" msgid "Patch failed to apply" msgstr "Correzione fallita" msgid "Manually resolve rejected chunks?" msgstr "Risolvere manualmente i frammenti scartati?" msgid "Edit patched file and rejects?" msgstr "" msgid "No deletable chunks" msgstr "" msgid "Completely remove file from patch?" msgstr "" msgid "Revert all file changes?" msgstr "Annullare tutti i cambiamenti al file?" msgid "No chunks remain" msgstr "" msgid "file has been deleted, refresh" msgstr "il file è stato cancellato, aggiorna" msgid "file has been modified, refresh" msgstr "il file è stato modificato, ricarica" msgid "Unable to merge chunks" msgstr "Fusione dei frammenti non possibile" msgid "Add or remove patches must be merged in the working directory" msgstr "" msgid "Unable to remove" msgstr "Impossibile rimuovere" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" "Impossibile rimuovere il file %s, \n" "permesso rifiutato" msgctxt "files" msgid "All" msgstr "Tutti" msgctxt "files" msgid "None" msgstr "Nessuno" msgid "Toggle display of text search bar" msgstr "Commuta la visualiozzazione della barra di ricerca testo" msgid "Diff Toolbar" msgstr "Barra strumenti Differenze" #, python-format msgid "Chunks selected: %d / %d" msgstr "Frammenti selezionati: %d / %d" msgid "Please wait while the file is opened ..." msgstr "Attendere l'apertura del file..." msgid "Source:" msgstr "Sorgente:" msgid "Destination:" msgstr "Destinazione:" msgid "Options" msgstr "Opzioni" msgid "Clone to revision:" msgstr "Clona fino alla revisione:" msgid "A revision identifier, bookmark, tag or branch name" msgstr "" msgid "Do not update the new working directory" msgstr "Non aggiornare la nuova directory di lavoro" msgid "Use pull protocol to copy metadata" msgstr "Usa protocollo di pull per copiare i metadati" msgid "Clone with minimal processing" msgstr "" msgid "Include patch queue" msgstr "" msgid "Use proxy server" msgstr "Usa server proxy" msgid "Do not verify host certificate" msgstr "Non verificare il certificato host" msgid "Remote command:" msgstr "Comando remoto:" msgid "Use largefiles" msgstr "" msgid "Start revision:" msgstr "Avvia revisione:" msgid "Select source repository" msgstr "Scegliere il repository di origine" msgid "Select destination repository" msgstr "Scegliere il repository di destinazione" msgid "Select patch folder" msgstr "" #, python-format msgid "Clone - %s" msgstr "Clona - %s" msgid "&Clone" msgstr "&Clona" msgid "failed to start command\n" msgstr "fallito l'avvio del comando\n" msgid "error while running command\n" msgstr "errore durante l'esecuzione del comando\n" #, python-format msgid "process exited unexpectedly with code %d" msgstr "" #, python-format msgid "failed to encode command: %s" msgstr "" #, python-format msgid "timed out while reading: %r..." msgstr "" msgid "timed out waiting for message" msgstr "" #, python-format msgid "unexpected response on required channel %r" msgstr "" #, python-format msgid "invalid \"hello\" message: %r" msgstr "" msgid "no \"runcommand\" capability" msgstr "" #, python-format msgid "corrupted command result: %r" msgstr "" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "" msgid "Terminated by user" msgstr "Terminato dall'utente" #, python-format msgid "[command terminated by user %s]" msgstr "" #, python-format msgid "[command interrupted %s]" msgstr "" #, python-format msgid "[command returned code %d %%s]" msgstr "[codice di ritorno restituito dal comando %d %%s]" #, python-format msgid "[command completed successfully %s]" msgstr "[comando completato con successo %s]" msgid "Running..." msgstr "In corso..." msgid "Failed!" msgstr "Fallimento!" msgid "Clea&r Log" msgstr "" msgid "TortoiseHg Prompt" msgstr "TortoiseHg Prompt" msgid "Show Detail" msgstr "" msgid "Hide Detail" msgstr "" msgid "Confirm Exit" msgstr "Conferma uscita" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" "Il comando di Mercurial è ancora in esecuzione.\n" "Sei sicuro di volerlo terminare?" msgid "&Run" msgstr "" msgid "TortoiseHg Command Dialog" msgstr "" msgid "Command Error" msgstr "" #, python-format msgid "[Code: %d]" msgstr "" msgid "Merge" msgstr "Merge" #, python-format msgid "Merge with %s" msgstr "" msgid "Patch Name Required" msgstr "" msgid "You must enter a patch name" msgstr "" msgctxt "start progress" msgid "Commit" msgstr "Inserisci" msgctxt "start progress" msgid "MQ Action" msgstr "" msgctxt "start progress" msgid "Rollback" msgstr "Ripristino" msgid "Commit Dialog Toolbar" msgstr "" msgid "Branch: " msgstr "Branch: " msgid "Copy message" msgstr "Copia il messaggio" msgid "Copy one of the recent commit messages" msgstr "Copia uno dei recenti messaggi di conferma" msgid "Show Issues" msgstr "Mostra le segnalazioni" msgid "Please wait..." msgstr "Attendere prego..." #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "" msgid "Issue Tracker" msgstr "Tracciatore segnalazioni" msgid "Show Issues..." msgstr "Mostra segnalazioni..." msgid "Stop" msgstr "Stop" msgid "### patch name ###" msgstr "" msgid "Commit changes" msgstr "Conferma cambiamenti" msgid "Commit" msgstr "Commit" msgid "Amend current revision" msgstr "" msgid "Amend" msgstr "" msgid "Create a new patch" msgstr "" msgid "QNew" msgstr "QNew" msgid "Refresh current patch" msgstr "" msgid "QRefresh" msgstr "QRefresh" msgid "Confirm Branch Change" msgstr "Conferma la modifica al ramo" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "" msgid "Restart &Branch" msgstr "" msgid "&Commit to current branch" msgstr "" msgid "Cancel" msgstr "Annulla" msgid "Confirm New Branch" msgstr "Conferma nuovo ramo" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "" msgid "Create &Branch" msgstr "Crea un &ramo" msgid "Close Branch: " msgstr "Chiudi il ramo: " msgid "New Branch: " msgstr "Nuovo ramo: " #, python-format msgid "Selected Options: %s" msgstr "Opzioni scelte: %s" msgid "Parent:" msgstr "Genitore:" msgid "Patch name:" msgstr "" #, python-format msgid "Close %s branch" msgstr "Chiudi il ramo %s" #, python-format msgid "Rollback commit to revision %d" msgstr "Riporta alla revisione %d" msgid "Confirm Undo" msgstr "Conferma annullamento" msgid "Discard current commit message?" msgstr "Sostituire il messaggio di commit attuale?" msgid "Message Translation Failure" msgstr "Errore di traduzione del messaggio" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" msgid "&Replace" msgstr "&Sostituisci" msgid "Nothing Committed" msgstr "" msgid "Please enter commit message" msgstr "Si prega di inserire un messaggio di commit" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" msgid "No files checked" msgstr "Nessun file controllato" msgid "No modified files checkmarked for commit" msgstr "" msgid "Confirm Add" msgstr "Conferma aggiunta" msgid "Add selected untracked files?" msgstr "" msgid "Confirm Remove" msgstr "Conferma eliminazione" msgid "Remove selected deleted files?" msgstr "Rimuovere i file cancellati, selezionati?" msgid "Nothing changed." msgstr "" msgctxt "window title" msgid "Commit" msgstr "Inserisci" #, python-format msgid "%s - commit options" msgstr "%s - opzioni di conferma" msgid "Set username:" msgstr "Imposta nome utente:" msgid "Save in Repo" msgstr "Salvare nel repository" msgid "Save Global" msgstr "Salva globalmente" msgid "Set Date:" msgstr "Imposta data:" msgid "Update" msgstr "Aggiorna" msgid "Push After Commit:" msgstr "" msgid "Auto Includes:" msgstr "Auto includi:" msgid "Recurse into subrepositories (--subrepos)" msgstr "Ricorsivo in subrepository (--subrepos)" msgid "Unable to save username" msgstr "Impossibile salvare il nome utente" msgid "Iniparse must be installed." msgstr "" msgid "Unable to write configuration file" msgstr "Impossibile scrivere nel file di configurazione" msgid "Unable to save after commit push" msgstr "Impossibile salvare dopo la conferma" msgid "Unable to save auto include list" msgstr "" msgid "Unable to save recurse in subrepos." msgstr "Impossibile salvataggio ricorsivo in subrepos." msgid "Invalid date format" msgstr "Formato data non valido" msgid "No username configured" msgstr "Nessun nome utente configurato" #, python-format msgid "%s - commit" msgstr "%s - conferma" msgid "TortoiseHg Commit" msgstr "Conferma TortoiseHg" msgid "Are you sure that you want to cancel the commit operation?" msgstr "Sei sicuro di voler annullare l'operazione di conferma?" msgid "Compress changesets up to and including" msgstr "" msgid "Onto destination" msgstr "" msgid "Compress" msgstr "Comprimi" #, python-format msgid "Compress - %s" msgstr "" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the compress" msgstr "Puoi continuare la compressione" msgid "Changes have been moved, you must now commit" msgstr "I cambiamenti sono stati spostati, ora devi confermarli" msgctxt "action button" msgid "Commit" msgstr "Inserisci" msgid "Compress is complete, old history untouched" msgstr "La compressione è completa, il vecchio storico è invariato" msgid "must be specified repository" msgstr "deve essere specificato un repository" msgid "must be specified 'type' in style" msgstr "deve essere specificato 'type' nello stile" msgid "Git Commit:" msgstr "" msgid "Summary:" msgstr "Sommario:" msgid "User:" msgstr "Autore:" msgid "Date:" msgstr "Data:" msgid "Age:" msgstr "Età:" msgid "Branch:" msgstr "Ramo:" msgid "Close:" msgstr "Chiudi:" msgid "Tags:" msgstr "Etichette:" msgid "Graft:" msgstr "" msgid "Transplant:" msgstr "Transplant:" msgid "Obsolete state:" msgstr "" msgid "Perforce:" msgstr "Perforce:" msgid "Subversion:" msgstr "Subversion:" msgid "Converted From:" msgstr "Convertito da:" msgid "Original Parent:" msgstr "" msgid "No items to display" msgstr "Nessun elemento da visualizzare" msgid "Use compact view" msgstr "Usa forma compatta" msgid "Patch:" msgstr "Patch:" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "Visualizzati %(count)d elementi su %(total)d" msgid "Select a GUI location to edit:" msgstr "" msgid "Select the toolbar or menu to change" msgstr "Scegli la barra o il menu da modificare" msgid "Tools shown on selected location" msgstr "Strumenti mostrati nella locazione scelta" msgid "Delete from list" msgstr "Cancella dalla lista" msgid "Add to list" msgstr "Aggiungi alla lista" msgid "Add separator" msgstr "Aggiungi separatore" msgid "List of all tools" msgstr "Lista degli strumenti" msgid "New Tool ..." msgstr "Nuovo strumento..." msgid "Edit Tool ..." msgstr "Modifica strumento..." msgid "Delete Tool" msgstr "Elimina strumento" msgid "Type" msgstr "Tipo" msgid "Name" msgstr "Nome" msgid "Command" msgstr "Comando" msgid "New hook" msgstr "" msgid "Edit hook" msgstr "" msgid "Delete hook" msgstr "" msgid "Replace existing hook?" msgstr "" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" msgid "OK" msgstr "OK" msgid "Missing information" msgstr "Informazione mancante" msgid "All items" msgstr "Tutte le voci" msgid "Working directory" msgstr "Cartella di lavoro" msgid "All revisions" msgstr "Tutte le revisioni" msgid "All contexts" msgstr "Tutti i contesti" msgid "Fixed revisions" msgstr "" msgid "Applied patches" msgstr "" msgid "Applied patches or qparent" msgstr "" msgid "" msgstr "" msgid "Configure Custom Tool" msgstr "Configura lo strumento personalizzato" msgid "Tool name" msgstr "Nome strumento" msgid "The tool name. It cannot contain spaces." msgstr "" #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" msgid "Tool label" msgstr "Etichetta dello strumento" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" msgid "Tooltip" msgstr "Suggerimento" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" msgid "Icon" msgstr "Icona" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" msgid "On repowidget, show for" msgstr "" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" msgid "Show Output Log" msgstr "Mostra il log di uscita" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" msgid "You must set a tool name." msgstr "Devi impostare il nome dello strumento" msgid "The tool name cannot have any spaces in it." msgstr "Il nome dello strumento non può avere spazi" msgid "You must set a command to run." msgstr "Devi impostare un comando da esseguire" msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" msgid "Configure Hook" msgstr "" msgid "Hook type" msgstr "" msgid "Select when your command will be run" msgstr "Specificare quando dovrà essere eseguito il comando" msgid "The hook name. It cannot contain spaces." msgstr "" msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" "Il comando che sarà eseguito.\n" "Per eseguire una funzione pyton premetti \"python:\" al comando.\n" msgid "You must set a valid hook type." msgstr "" msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "" msgid "Console" msgstr "" msgid "File &History / Annotate" msgstr "" msgid "Show the history of the selected file" msgstr "Mostra lo storico del file scelto" msgid "Co&mpare File Revisions" msgstr "Co&nfronta le revisioni del file" msgid "Compare revisions of the selected file" msgstr "Confronta le revisioni del file scelto" msgid "Filter Histor&y" msgstr "" msgid "Query about changesets affecting the selected files" msgstr "" msgid "Diff &Changeset to Parent" msgstr "" msgid "Diff Changeset to Loc&al" msgstr "" msgid "&Diff to Parent" msgstr "&Differenze con il padre" msgid "Diff to &Local" msgstr "Differenze con la versione locale" msgid "View changes to current in external diff tool" msgstr "" msgid "&View at Revision" msgstr "" msgid "View file as it appeared at this revision" msgstr "Mostra il file come appare a questa revisione" msgid "&Save at Revision..." msgstr "&Salva alla revisione..." msgid "Save file as it appeared at this revision" msgstr "salva il file come appare a questa revisione" msgid "Save file to" msgstr "Salva con nome" msgid "&Edit Local" msgstr "" msgid "&Open Local" msgstr "" msgid "E&xplore Local" msgstr "" msgid "Open parent folder of current file in the system file manager" msgstr "" msgid "&Copy Patch" msgstr "" msgid "Copy &Path" msgstr "Copia %percorso" msgid "Copy full path of file(s) to the clipboard" msgstr "Copia negli appunti il percorso completo del/i file" msgid "&Revert to Revision..." msgstr "%Riporta alla revisione..." msgid "Open S&ubrepository" msgstr "Apri s&ubrepository" msgid "Open the selected subrepository" msgstr "Apri il subrepository selezionato" msgid "E&xplore Folder" msgstr "E&splora la cartella" msgid "Open the selected folder in the system file manager" msgstr "Apri nel file manager del sistema la cartella scelta" msgid "Open &Terminal" msgstr "Apri &terminale" msgid "Open a shell terminal in the selected folder" msgstr "" msgid "Custom Tools" msgstr "Strumenti personalizzati" msgid "Diff &Local" msgstr "" msgid "&View Missing" msgstr "" msgid "View O&ther" msgstr "" msgid "Add &Largefiles..." msgstr "" msgid "&Forget" msgstr "" msgid "&Delete Unversioned..." msgstr "" msgid "Confirm Delete Unversioned" msgstr "" msgid "Delete the following unversioned files?" msgstr "" msgid "&Delete" msgstr "" msgid "Re&move Versioned" msgstr "" msgid "&Revert..." msgstr "" msgid "Uncommited merge - please select a parent revision" msgstr "" "Merge di cui non si è effettuato il commit - si prega di selezionare una " "revisione genitore" msgid "Revert files to local or other parent?" msgstr "Ripristina i file al genitore locale o l'altro" msgid "&Local" msgstr "&Locale" msgid "&Other" msgstr "&Altro" msgid "Confirm Revert" msgstr "Conferma ripristino" msgid "Revert local file changes?" msgstr "" msgid "&Revert with backup" msgstr "" msgid "&Discard changes" msgstr "" msgid "Revert the following files?" msgstr "" msgid "&Revert" msgstr "" msgid "&Copy..." msgstr "" msgid "Re&name..." msgstr "" msgid "&Ignore..." msgstr "" msgid "Edit Re&jects" msgstr "" msgid "Manually resolve rejected patch chunks" msgstr "" msgid "De&tect Renames..." msgstr "" msgid "&Mark Resolved" msgstr "" msgid "&Mark Unresolved" msgstr "" msgid "Restart Mer&ge" msgstr "" msgid "Was renamed from" msgstr "" msgid "Restart Merge &with" msgstr "" msgid "Display the file anyway" msgstr "" msgid "Diff not displayed: " msgstr "Differenze non visualizzate: " #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" "Il file supera la massima dimensione specificata.\n" "maxdiff = %s KB" msgid "File is binary" msgstr "Il file è binario" msgid "File may be binary (maximum line length exceeded)" msgstr "" msgid "File or diffs not displayed: " msgstr "File o diff non mostrati: " msgid " (was added)" msgstr " (aggiunto)" #, python-format msgid " (copied from %s)" msgstr " (copiato da %s)" #, python-format msgid " (renamed from %s)" msgstr " (rinominato da %s)" msgid " (is a symlink)" msgstr "" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid " (was deleted)" msgstr " (è stato cancellato)" msgid " (was added, now missing)" msgstr "" msgid " (is unversioned)" msgstr "" msgid "exec mode has been set" msgstr "modalità exec è stata attivata" msgid "exec mode has been unset" msgstr "modalità exec è stata disattivata" #, python-format msgid "changeset: %s" msgstr "" msgid "Initial revision" msgstr "Revisione iniziale" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" msgid "Subrepo created and set to initial revision." msgstr "Subrepo creata e impostata alla revisione iniziale." msgid "Subrepo initialized to revision:" msgstr "Subrepo inizializzata alla revisione:" msgid "Subrepo removed from repository." msgstr "Subrepo rimossa dal repository." msgid "Previously the subrepository was at the following revision:" msgstr "" msgid "Subrepo was not changed." msgstr "Subrepo invariata." msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "" msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "" msgid "Subrepo state is:" msgstr "" msgid "Revision has changed to:" msgstr "La revisione è cambiata in:" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "" msgid "From:" msgstr "Da:" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" msgid "Subrepository not found in the working directory." msgstr "" msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" msgid "Not a Mercurial subrepo, not previewable" msgstr "" #, python-format msgid "Error previewing subrepo: %s" msgstr "Errore di anteprima subrepo: %s" msgid "Subrepo may be damaged or inaccessible." msgstr "" msgid "The subrepository is dirty." msgstr "Il subrepository è sporco." msgid "File Status:" msgstr "Stato del file:" msgid "(is a changed sub-repository)" msgstr "(è un sub-repository mnodificato)" msgid "(is an unchanged sub-repository)" msgstr "(è un sub-repository invariato)" msgid "(is a dirty sub-repository)" msgstr "(è un sub-repository sporco)" msgid "(is a new sub-repository)" msgstr "(è un sub-repository nuovo)" msgid "(is a removed sub-repository)" msgstr "(è un sub-repository rimosso)" msgid "(is a changed and dirty sub-repository)" msgstr "(è un sub-repository modificato e sporco)" msgid "(is a new and dirty sub-repository)" msgstr "(è un sub-repository nuovo e sporco)" msgid "open..." msgstr "apri..." #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "" msgid "File History Log Columns" msgstr "" msgid "Back" msgstr "" msgid "Forward" msgstr "" msgid "Diff Selected &Changesets" msgstr "" msgid "&Diff Selected File Revisions" msgstr "" msgid "Show Revision &Details" msgstr "Mostra i &dettagli della revisione" msgid "Too many rows selected for menu" msgstr "Troppe righe selezionate per il menu" msgid "File Differences Log Columns" msgstr "" msgid "Next diff" msgstr "Differenza successiva" msgid "Previous diff" msgstr "Differenza precedente" msgid "Unicode" msgstr "" msgid "Western Europe" msgstr "" msgid "Unified Chinese" msgstr "" msgid "Traditional Chinese" msgstr "" msgid "Korean" msgstr "" msgid "Japanese" msgstr "" msgid "Thai" msgstr "" msgid "Central and Eastern Europe" msgstr "" msgid "Cyrillic" msgstr "" msgid "Russian" msgstr "" msgid "Ukrainian" msgstr "" msgid "Greek" msgstr "" msgid "Turkish" msgstr "" msgid "Arabic" msgstr "" msgid "Hebrew" msgstr "" msgid "Vietnamese" msgstr "" msgid "Baltic" msgstr "" msgid "Southern Europe" msgstr "" msgid "Nordic" msgstr "" msgid "Celtic" msgstr "" msgid "South-Eastern Europe" msgstr "" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "" msgid "View change as unified diff output" msgstr "" msgid "View change in context of file" msgstr "" msgid "Annotate with revision numbers" msgstr "" msgid "Next Diff" msgstr "" msgid "Previous Diff" msgstr "" msgid "Open shelve tool" msgstr "" msgid "&Auto Detect" msgstr "" msgid "Show changes from first parent" msgstr "" msgid "Show changes from second parent" msgstr "" msgid "E&ncoding" msgstr "" msgid "&Search in Current File" msgstr "" msgid "Search in All &History" msgstr "Cerca in tutto lo &storico" msgid "Go to Line" msgstr "" #, python-format msgid "Enter line number (1 - %d)" msgstr "" msgid "Show &Author" msgstr "Mostra &autore" msgid "Show &Date" msgstr "Mostra &data" msgid "Show &Revision" msgstr "Mostra &revisione" msgid "Annotate Op&tions" msgstr "" msgid "Search Selected Text" msgstr "Cerca il testo selezionato" msgid "In Current &File" msgstr "Nel &file corrente" msgid "In &Current Revision" msgstr "Nella revisione &corrente" msgid "In &Original Revision" msgstr "Nella revisione &originale" msgid "In All &History" msgstr "In tutto lo &storico" msgid "Go to" msgstr "Vai a" msgid "View File at" msgstr "" msgid "Diff File to" msgstr "" msgid "&Originating Revision" msgstr "" msgid "&Parent Revision" msgstr "" #, python-format msgid "&Parent Revision (%d)" msgstr "" msgid "&Mark Excluded Changes" msgstr "" msgid "(excluded from the next commit)" msgstr "" msgid "Interrupted graft operation found" msgstr "" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" msgid "Continue or abort interrupted graft operation?" msgstr "" msgid "To graft destination" msgstr "Alla destinazione dell'innesto" msgid "Use my user name instead of graft committer user name" msgstr "Usa il mio nome utente invece del richiedente dell'innesto" msgid "Use current date" msgstr "Usa la data corrente" msgid "Append graft info to log message" msgstr "" msgid "Graft" msgstr "Innesta" msgid "Abort" msgstr "Annulla" #, python-format msgid "Graft - %s" msgstr "Innesta - %s" msgid "Graft changeset" msgstr "" #, python-format msgid "Graft changeset #%d of %d" msgstr "" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" msgid "You may continue or start the graft" msgstr "Puoi continuare o iniziare l'innesto" msgid "Graft is complete" msgstr "L'innesto è completo" msgid "Graft failed" msgstr "Innesto fallito" msgid "Graft aborted" msgstr "Innesto abortito" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" "Conflitto di fusione generato dall'innesto, che deve essere risolto" msgid "You may continue the graft" msgstr "Puoi continuare l'innesto" msgid "Exiting with an unfinished graft is not recommended." msgstr "" msgid "Consider aborting the graft first." msgstr "" msgid "&Exit" msgstr "&Esci" msgid "### regular expression search pattern ###" msgstr "### modello di ricerca per espressioni regolari ###" msgid "Regexp:" msgstr "Espr.reg.:" msgid "Ignore case" msgstr "Ignora maiuscole/minuscole" msgid "Search" msgstr "Cerca" msgid "Working Copy" msgstr "Copia di lavoro" msgid "All History" msgstr "Tutto lo storico" msgid "Report only the first match per file" msgstr "Riporta solo la prima corrispondenza per file" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "Segui copie e rinomine" msgid "Includes:" msgstr "Includi:" msgid "Excludes:" msgstr "Escludi:" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" #, python-format msgid "\"%s\" removed from search history" msgstr "\"%s\" rimosso dallo storico ricerche" #, python-format msgid "\"%s\" removed from path history" msgstr "\"%s\" rimosso dallo storico percorsi" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "grep: modello di ricerca non valido: %s\n" #, python-format msgid "grep: %s\n" msgstr "" #, python-format msgid "%d matches found" msgstr "%d corrispondenze trovate" msgid "No matches found" msgstr "Nessuna corrispondenza trovata" msgid "Searching" msgstr "Ricerca" msgid "history" msgstr "" msgid "Interrupted" msgstr "Interrotto" msgid "files" msgstr "" #, python-format msgid "Skipping %s, unable to read" msgstr "" msgid "Vi&ew File" msgstr "V&isualizza file" msgid "&View Changeset" msgstr "&Visualizza modifiche" msgid "Annotate &File" msgstr "Annota &file" msgid "File" msgstr "File" msgid "Line" msgstr "Linea" msgid "Rev" msgstr "Rev" msgid "User" msgstr "Utente" msgid "Match Text" msgstr "Corrispondenza testo" msgid "TortoiseHg Search" msgstr "Ricerca TortoiseHg" #, python-format msgid "Detect Copies/Renames in %s" msgstr "Scopri copie/rinomine in %s" msgid "Unrevisioned Files" msgstr "File non revisionati" msgid "Refresh file list" msgstr "Aggiorna la lista dei file" #, python-format msgid "Min Similarity: %d%%" msgstr "" msgid "Only consider deleted files" msgstr "Considera solo i file cancellati" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "" msgid "Find Renames" msgstr "Ricerca rinomine" msgid "Find copy and/or rename sources" msgstr "" msgid "Candidate Matches" msgstr "Corrispondenze candidate" msgid "Accept All Matches" msgstr "Accetta tutte le corrispondenze" msgid "Accept Selected Matches" msgstr "Accetta le corrispondenze selezionate" msgid "Differences from Source to Dest" msgstr "Differenze fra l'origine e la destinazione" msgid "Search already in progress" msgstr "Ricerca già in corso" msgid "Cannot start a new search" msgstr "Impossibile iniziare una nuova ricerca" msgid "No files to find" msgstr "Nessun file trovato" msgid "There are no files that may have been renamed" msgstr "Non ci sono file che possono essere rinominati" msgid "Multiple sources chosen" msgstr "Scelta di sorgenti multiple" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" "%s e %s hanno contenuti identici\n" "\n" #. i18n: percent format #, python-format msgid "%d%%" msgstr "" msgid "Source" msgstr "Sorgente" msgid "Dest" msgstr "Dest" msgid "% Match" msgstr "% corrispondenza" msgid "Sending Email" msgstr "" msgid "Email" msgstr "Email" msgid "To:" msgstr "A:" msgid "Cc:" msgstr "Cc:" msgid "In-Reply-To:" msgstr "Rispondi a:" msgid "Message identifier to reply to, for threading" msgstr "Identificativo del messaggio a cui rispondere. Per i thread." msgid "Flag:" msgstr "Flag:" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" "Le patch Hg (così come generate dal comando export) sono compatibili con la " "maggior parte dei programmi di patch. Esse includono un header che contiene " "i più importanti metadati del changeset." msgid "Send changesets as Hg patches" msgstr "Invia i changeset come patch Hg" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" "I patch Git possono descrivere file binari, copie e modifiche ai permessi, " "ma il destinatario può non essere in grado di usarli se non usa Git o " "Mercurial." msgid "Use extended (git) patch format" msgstr "Usa formato esteso (git) per i patch" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" "L'eliminazione dell'header Mercurial rimuove il nome utente e le " "informazioni sui changeset genitori. Utile solo se il destinatario non usa " "Mercurial (e se non vuole vedere gli header)." msgid "Plain, do not prepend Hg header" msgstr "Semplice, senza header Hg" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" "I bundle memorizzano interi changeset in forma binaria. Altri utenti possono " "eseguire il pull dai bundle. Questo è il modo più sicuro per inviare " "modifiche ad altri utenti Mercurial." msgid "Send single binary bundle, not patches" msgstr "Invia un unico bundle binario, nessuna patch" msgid "send patches as part of the email body" msgstr "" msgid "body" msgstr "corpo" msgid "send patches as attachments" msgstr "Invia le patch come allegati" msgid "attach" msgstr "Allega" msgid "send patches as inline attachments" msgstr "Invia le patch come allegati in linea" msgid "inline" msgstr "In linea" msgid "add diffstat output to messages" msgstr "Aggiunge l'output diffstat ai messaggi" msgid "diffstat" msgstr "Diffstat" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" "La descrizione della serie di patch è inviata in una email iniziale di " "riassunto con [PATCH 0 of N] come oggetto. Dovrebbe descrivere gli effetti " "dell'intera serie di patch. Quando viene inviato un bundle, questi campi " "compongono l'oggetto ed il corpo del messaggio. Il campo flag è un elenco " "separato da virgola di etichette che saranno inserite come prefisso al " "soggetto del messaggio." msgid "Write patch series (bundle) description" msgstr "" msgid "Subject:" msgstr "Oggetto:" msgid "Changesets" msgstr "Gruppi di modifiche" msgid "Select &All" msgstr "" msgid "Select &None" msgstr "" msgid "Edit" msgstr "Modifica" msgid "Preview" msgstr "Anteprima" msgid "&Settings" msgstr "Impo&stazioni" msgid "Send &Email" msgstr "Invia &e-mail" msgid "&Close" msgstr "&Chiudi" #, python-format msgid "Ignore filter - %s" msgstr "Filtro file da ignorare - %s" msgid "Glob" msgstr "Glob" msgid "Regexp" msgstr "Espressione regolare" msgid "Add" msgstr "Aggiungi" msgid "Edit File" msgstr "Edita il file" msgid "Ignore Filter" msgstr "Ignora il filtro" msgid "Untracked Files" msgstr "" msgid "Backspace or Del to remove row(s)" msgstr "Backspace o Canc per rimuovere la riga/e" msgid "Add ignore filter..." msgstr "" msgid "selected files" msgstr "file selezionati" msgid "Ignore " msgstr "Ignora " msgid "Invalid glob expression" msgstr "Espressione glob non valida" msgid "Invalid regexp expression" msgstr "Espressione regolare non valida" msgid "Unable to read repository status" msgstr "Impossibile leggere lo stato del repository" msgid "New file created" msgstr "" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" msgid "Unable to write .hgignore file" msgstr "Impossibile scrivere il file .hgignore" msgid "Copy working directory files from skeleton" msgstr "" msgid "Create special files (.hgignore, ...)" msgstr "" msgid "Make repo compatible with Mercurial <1.7" msgstr "" msgid "New Repository" msgstr "" msgid "&Create" msgstr "" msgid "Unable to create a config file" msgstr "" msgid "Insufficient access rights." msgstr "" msgid "Show Log" msgstr "" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" msgid "Add as &Largefiles" msgstr "" msgid "Add as &Normal Files" msgstr "" msgid "Invalid Patterns" msgstr "" msgid "Failed to process largefiles.patterns." msgstr "" msgid "Word docs (*.doc *.docx)" msgstr "" msgid "PDF docs (*.pdf)" msgstr "" msgid "Excel files (*.xls *.xlsx)" msgstr "" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "" msgid "Refresh lock information" msgstr "" msgid "Lock a file not described in .hglocks" msgstr "" msgid "Stop current operation" msgstr "" msgid "Locked And Lockable Files:" msgstr "" msgid "Path" msgstr "" msgid "Locking User" msgstr "" msgid "Purpose" msgstr "" msgid "Simplelock extension not enabled" msgstr "" msgid "Please enable and configure simplelock" msgstr "" msgid "Open a (nonmergable) file you wish to be locked" msgstr "" msgid "File was not within current repository" msgstr "" #, python-format msgid "Locking %s" msgstr "" #, python-format msgid "Unlocking %s" msgstr "" msgid "Refreshing locks..." msgstr "" #, python-format msgid "Lock of %s successful" msgstr "" #, python-format msgid "Lock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s successful" msgstr "" msgid "Ready, double click to lock or unlock" msgstr "" msgid "Ready" msgstr "" msgid "You can only release your own locks" msgstr "" msgid "Find revisions matching fields of:" msgstr "" msgid "Revision to Match:" msgstr "" msgid "Fields to match:" msgstr "" msgid "Summary (first description line)" msgstr "" msgid "Description" msgstr "Descrizione" msgid "Author" msgstr "" msgid "Date" msgstr "Data" msgid "Files" msgstr "File" msgid "Diff contents" msgstr "" msgid "Subrepo states" msgstr "" msgid "Branch" msgstr "Ramo" msgid "Phase" msgstr "" msgid "&Match" msgstr "" #, python-format msgid "Find matches - %s" msgstr "" msgid "Revisions to Match:" msgstr "" #, python-format msgid "Match any of %d revisions" msgstr "" msgid "Unknown revision!" msgstr "" msgid "Parse Error!" msgstr "" #, python-format msgid "Merge - %s" msgstr "" msgid "Do you want to exit?" msgstr "" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" msgid "Prepare to merge" msgstr "" msgid "Verify merge targets and ensure your working directory is clean." msgstr "" msgid "Not a head revision!" msgstr "Non è una revisione di testa" msgid "Merge from (other revision)" msgstr "" msgid "Merge to (working directory)" msgstr "" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Or use:" msgstr "" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "" msgid "Discard all changes from the other revision" msgstr "" msgid "&Discard" msgstr "&Abbandona" msgid "Confirm Discard Changes" msgstr "Conferma i cambiamenti scartati" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" msgctxt "working dir state" msgid "Clean" msgstr "" msgid "Merging..." msgstr "" msgid "Automatically advance to next page when merge is complete." msgstr "" #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" msgid "" "No merge conflicts, ready to commit or review" msgstr "" msgid "Commit merge results" msgstr "" msgid "Commit Options" msgstr "" msgid "Commit Now" msgstr "" msgid "Commit Later" msgstr "" msgid "Merge changeset" msgstr "" msgid "Syntax Highlighting" msgstr "" msgid "Paste &Filenames" msgstr "Incolla i nomi dei &file" msgid "App&ly Format" msgstr "App&lica formato" msgid "C&onfigure Format" msgstr "C&onfigura formato" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "" msgid "&Commit to Queue..." msgstr "" msgid "Create &New Queue..." msgstr "" msgid "&Rename Active Queue..." msgstr "" msgid "&Delete Queue..." msgstr "" msgid "&Purge Queue..." msgstr "" msgid "Create Patch Queue" msgstr "" msgid "New patch queue name" msgstr "" msgid "Create" msgstr "Crea" msgid "Rename Patch Queue" msgstr "" #, python-format msgid "Rename patch queue '%s' to" msgstr "" msgid "Rename" msgstr "Rinomina" msgid "Delete Patch Queue" msgstr "" msgid "Delete reference to" msgstr "" msgid "Delete" msgstr "" msgid "Purge Patch Queue" msgstr "" msgid "Remove patch directory of" msgstr "" msgid "Purge" msgstr "" msgid "Rename Patch" msgstr "" #, python-format msgid "Rename patch %s to:" msgstr "" msgid "no guards" msgstr "" msgid "Patch Queue" msgstr "Coda patch" msgctxt "MQ QPush" msgid "Push" msgstr "" msgid "Apply one patch" msgstr "" msgctxt "MQ QPush" msgid "Push all" msgstr "" msgid "Apply all patches" msgstr "Applica tutte le patch" msgid "Pop" msgstr "" msgid "Unapply one patch" msgstr "" msgid "Pop all" msgstr "" msgid "Unapply all patches" msgstr "Annulla tutte le patch" msgid "Go &to Patch" msgstr "" msgid "&Apply Only This Patch" msgstr "" msgid "Apply only the selected patch" msgstr "" msgid "&Finish Patch" msgstr "" msgid "Move applied patches into repository history" msgstr "" msgid "&Delete Patches..." msgstr "" msgid "Delete selected patches" msgstr "" msgid "Re&name Patch..." msgstr "" msgid "Set &Guards..." msgstr "" msgid "Configure guards for selected patch" msgstr "" msgid "Patch Queue Actions Toolbar" msgstr "" msgid "Configure guards" msgstr "" #, python-format msgid "Input new guards for %s:" msgstr "" msgid "Confirm patch queue switch" msgstr "" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "" #, python-format msgid "Guards: %d/%d" msgstr "" msgid "MQ options" msgstr "" msgid "Force push or pop (--force)" msgstr "" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "Liste modifiche in sospeso di Perforce - %s" msgid "Submitting p4 changelist..." msgstr "" msgid "Reverting p4 changelist..." msgstr "" msgid "Patch Branch Toolbar" msgstr "" msgid "Merge all pending dependencies" msgstr "" msgid "Backout current patch branch" msgstr "" msgid "Backport part of a changeset to a dependency" msgstr "" msgid "Start a new patch branch" msgstr "" msgid "Edit patch dependency graph" msgstr "" msgid "will be closed" msgstr "" #, python-format msgid "needs merge of %i heads\n" msgstr "" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "" #, python-format msgid "needs merge with %s\n" msgstr "" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "" msgid "&Goto (update workdir)" msgstr "" msgid "&Merge" msgstr "&Merge" msgid "No patch branch selected" msgstr "" msgid "No editor found" msgstr "" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" msgid "Graph" msgstr "Grafico" msgid "Status" msgstr "Stato" msgid "Title" msgstr "Titolo" msgid "Message" msgstr "Messaggio" msgid "New Patch Branch" msgstr "" msgid "Patch message:" msgstr "" msgid "Patch date:" msgstr "" msgid "Patch user:" msgstr "" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" msgid "Review Board" msgstr "" msgid "Password:" msgstr "" msgid "Error" msgstr "Errore" #, python-format msgid "Review draft posted to %s\n" msgstr "" #, python-format msgid "Review published to %s\n" msgstr "" msgid "Success" msgstr "" msgid "Repository ID:" msgstr "" msgid "Post Review" msgstr "" msgid "Review ID:" msgstr "" msgid "Update the fields of this existing request" msgstr "" msgid "Update Review" msgstr "" msgid "Create diff with all outgoing changes" msgstr "" msgid "Create diff with all changes on this branch" msgstr "" msgid "Publish request immediately" msgstr "" msgid "%p%" msgstr "" msgid "Connecting to Review Board..." msgstr "" msgid "Target:" msgstr "Revisione:" msgid "Do not modify working copy (-k/--keep)" msgstr "" #, python-format msgid "Prune - %s" msgstr "" msgid "&Prune" msgstr "" msgid "No unknown files found" msgstr "" msgid "No ignored files found" msgstr "" msgid "No trash files found" msgstr "" msgid "Delete empty folders" msgstr "" msgid "Preserve files beginning with .hg" msgstr "" #, python-format msgid "%s - purge" msgstr "" msgid "Checking" msgstr "" msgid "Ready to purge." msgstr "" #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "" msgstr[1] "" msgid "Confirm file deletions" msgstr "" msgid "Are you sure you want to delete these files and/or folders?" msgstr "" msgid "Deletion failures" msgstr "" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "" msgstr[1] "" msgid "Deleting trash folder..." msgstr "" #, python-format msgid "Deleted %d files" msgstr "" #, python-format msgid "Deleted %d files and %d folders" msgstr "" msgid "Delete Patches" msgstr "" msgid "Remove patches from queue?" msgstr "" msgid "Keep patch files" msgstr "" #, python-format msgid "Patch fold - %s" msgstr "" msgid "New patch message:" msgstr "" msgid "Patches to fold" msgstr "" msgid "&Undo" msgstr "" msgid "&Redo" msgstr "" msgid "Cu&t" msgstr "" msgid "&Copy" msgstr "" msgid "&Paste" msgstr "" msgid "&Editor Options" msgstr "" msgid "&Wrap" msgstr "" msgctxt "wrap mode" msgid "&None" msgstr "" msgid "&Word" msgstr "" msgid "&Character" msgstr "" msgid "White&space" msgstr "" msgid "&Visible" msgstr "" msgid "&Invisible" msgstr "" msgid "&AfterIndent" msgstr "" msgid "&TAB Inserts" msgstr "" msgid "&Auto" msgstr "" msgid "&TAB" msgstr "" msgid "&Spaces" msgstr "" msgid "EOL &Visibility" msgstr "" msgid "EOL &Mode" msgstr "" msgid "&Windows" msgstr "" msgid "&Unix" msgstr "" msgid "&Mac" msgstr "" msgid "&Auto-Complete" msgstr "" msgid "### regular expression ###" msgstr "" msgid "Regular expression search pattern" msgstr "Espressione regolare del pattern di ricerca" msgid "Wrap search" msgstr "" msgid "Prev" msgstr "" msgid "Next" msgstr "" msgid "Unable to read file" msgstr "" msgid "Could not open the specified file for reading." msgstr "" msgid "This appears to be a binary file." msgstr "" msgid "An error occurred while reading the file." msgstr "" msgid "Text Translation Failure" msgstr "" msgid "Could not translate the file content from native encoding." msgstr "" msgid "Several characters would be lost." msgstr "" msgid "Unable to write file" msgstr "" msgid "Could not translate the file content to native encoding." msgstr "" msgid "Could not open the specified file for writing." msgstr "" msgid "An error occurred while writing the file." msgstr "" msgid "Try refreshing your repository." msgstr "" #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
                                                        Please edit your config" msgstr "" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
                                                        Please fix your config" msgstr "" #, python-format msgid "Operation aborted:

                                                        %(arg0)s." msgstr "" msgid "Repository is locked" msgstr "" msgid "hint:" msgstr "" msgid "Repository Error" msgstr "" msgid "No visual editor configured" msgstr "Nessun editor configurato" msgid "Please configure a visual editor." msgstr "Si prega di configurare un editor." msgid "Editor launch failure" msgstr "" msgid "Failed to open path in terminal" msgstr "" #, python-format msgid "\"%s\" is not a valid directory" msgstr "" #, python-format msgid "Invalid configuration: %s" msgstr "" msgid "Unable to start the following command:" msgstr "" msgid "No shell configured" msgstr "" msgid "A terminal shell must be configured" msgstr "" msgid "Please enter a username" msgstr "Per piacere inserisci un nome utente" msgid "You must identify yourself to Mercurial" msgstr "" msgid "Unable to translate input to local encoding." msgstr "" msgid "Checkmark files to add" msgstr "" msgid "Checkmark files to forget" msgstr "" msgid "Forget" msgstr "Dimentica" msgid "Checkmark files to revert" msgstr "" msgid "Revert" msgstr "Ripristina" msgid "Checkmark files to remove" msgstr "" msgid "Remove" msgstr "Rimuovi" #, python-format msgid "%s - hg %s" msgstr "" msgid "Do not save backup files (*.orig)" msgstr "Non salvare i file di backup (*.orig)" msgid "Force removal of modified files (--force)" msgstr "" msgid "Add &Largefiles" msgstr "" msgid "No files selected" msgstr "Nessun file selezionato" msgid "No operation to perform" msgstr "Nessuna operazione da eseguire" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" msgid "Remove &Unmodified Files" msgstr "" msgid "Remove &All Selected Files" msgstr "" msgid "Rebase changeset and descendants" msgstr "" msgid "To rebase destination" msgstr "" msgid "Swap source and destination" msgstr "" msgid "Keep original changesets (--keep)" msgstr "" msgid "Keep original branch names (--keepbranches)" msgstr "" msgid "Collapse the rebased changesets (--collapse)" msgstr "" msgid "Rebase entire source branch (-b/--base)" msgstr "" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "" msgid "Rebase" msgstr "Rebase" #, python-format msgid "Rebase - %s" msgstr "" msgid "" "Before rebase, you must
                                                        commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the rebase" msgstr "" msgid "Rebase is complete" msgstr "" msgid "Rebase failed" msgstr "" msgid "Rebase aborted" msgstr "" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" msgid "Exiting with an unfinished rebase is not recommended." msgstr "" msgid "Consider aborting the rebase first." msgstr "" #, python-format msgid "Merge rejected patch chunks into %s" msgstr "" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "" msgid "Mark this chunk as unresolved" msgstr "" msgid "Reload File" msgstr "" msgid "Are you sure you want to reload this file?" msgstr "" msgid "All unsaved changes will be lost." msgstr "" msgid "Warning" msgstr "Avvertenza" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" msgid "Copy source -> destination" msgstr "" msgid "Copy Error" msgstr "" msgid "Rename Error" msgstr "" msgid "Select Source File" msgstr "" msgid "Select Source Folder" msgstr "Selezionare la cartella sorgente" msgid "Source does not exist." msgstr "" msgid "The source must be within the repository tree." msgstr "" msgid "The destination must be within the repository tree." msgstr "" msgid "Destination file already exists." msgstr "" msgid "Are you sure you want to overwrite it ?" msgstr "" #, python-format msgid "Copy - %s" msgstr "" #, python-format msgid "Rename - %s" msgstr "" msgid "Show all" msgstr "Mostra tutti" msgid "### revision set query ###" msgstr "" msgid "Clear current query and query text" msgstr "" msgid "Trigger revision set query" msgstr "" msgid "Open advanced query editor" msgstr "" msgid "Delete selected query from history" msgstr "" msgid "filter" msgstr "" msgid "Toggle filtering of non-matched changesets" msgstr "" msgid "Show/Hide hidden changesets" msgstr "" msgid "Toggle graft relations visibility" msgstr "" msgid "Keyword Search" msgstr "" msgid "Revision Set" msgstr "Insieme di revisioni" msgid "(unsaved)" msgstr "" msgid "Display graph the named branch only" msgstr "" msgid "Display only active branches" msgstr "" msgid "Display closed branches" msgstr "" msgid "Include all ancestors" msgstr "" msgctxt "column header" msgid "Graph" msgstr "" msgctxt "column header" msgid "Rev" msgstr "" msgctxt "column header" msgid "Branch" msgstr "" msgctxt "column header" msgid "Description" msgstr "" msgctxt "column header" msgid "Author" msgstr "" msgctxt "column header" msgid "Tags" msgstr "" msgctxt "column header" msgid "Latest tags" msgstr "" msgctxt "column header" msgid "Node" msgstr "" msgctxt "column header" msgid "Git Commit" msgstr "" msgctxt "column header" msgid "Age" msgstr "" msgctxt "column header" msgid "Local Time" msgstr "" msgctxt "column header" msgid "UTC Time" msgstr "" msgctxt "column header" msgid "Changes" msgstr "" msgctxt "column header" msgid "Converted From" msgstr "" msgctxt "column header" msgid "Phase" msgstr "" msgctxt "column header" msgid "Filename" msgstr "Nome file" msgid "Searching..." msgstr "" #, python-format msgid "filling (%d)" msgstr "" msgid "Mercurial User" msgstr "" msgid "Repository Registry" msgstr "" msgid "Show &Paths" msgstr "" msgid "Show S&hort Paths" msgstr "" msgid "&Scan Repositories at Startup" msgstr "" msgid "Scan &Remote Repositories" msgstr "" msgid "&Refresh Repository List" msgstr "" msgid "Refresh the Repository Registry list" msgstr "" msgid "&Open" msgstr "" msgid "Open the repository in a new tab" msgstr "" msgid "&Open All" msgstr "" msgid "Open all repositories in new tabs" msgstr "" msgid "New &Group" msgstr "" msgid "Create a new group" msgstr "" msgid "Rename the entry" msgstr "" msgid "Settin&gs" msgstr "" msgid "View the repository's settings" msgstr "" msgid "Re&move from Registry" msgstr "" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" msgid "Clon&e..." msgstr "" msgid "Clone Repository" msgstr "" msgid "E&xplore" msgstr "" msgid "Open the repository in a file browser" msgstr "" msgid "&Terminal" msgstr "" msgid "Open a shell terminal in the repository root" msgstr "" msgid "&Add Repository..." msgstr "" msgid "Add a repository to this group" msgstr "" msgid "A&dd Subrepository..." msgstr "" msgid "Convert an existing repository into a subrepository" msgstr "" msgid "Remo&ve Subrepository..." msgstr "" msgid "Remove this subrepository from the current revision" msgstr "" msgid "Copy the root path of the repository to the clipboard" msgstr "" msgid "Sort by &Name" msgstr "" msgid "Sort the group by short name" msgstr "" msgid "Sort by &Path" msgstr "" msgid "Sort the group by full path" msgstr "" msgid "&Sort by .hgsub" msgstr "" msgid "Order the subrepos as in .hgsub" msgstr "" msgid "Select repository directory to add" msgstr "" msgid "Select an existing repository to add as a subrepo" msgstr "" msgid "Cannot add subrepository" msgstr "" #, python-format msgid "%s is not a valid repository" msgstr "" #, python-format msgid "\"%s\" is not a folder" msgstr "" msgid "A repository cannot be added as a subrepo of itself" msgstr "" #, python-format msgid "" "The selected folder:

                                                        %s

                                                        is not inside the target repository." "

                                                        This may be allowed but is greatly discouraged.
                                                        If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" msgid "Cannot open repository" msgstr "" #, python-format msgid "The selected repository:

                                                        %s

                                                        cannot be open!" msgstr "" msgid "Subrepository already exists" msgstr "" #, python-format msgid "" "The selected repository:

                                                        %s

                                                        is already a subrepository of:" "

                                                        %s

                                                        as: \"%s\"" msgstr "" msgid "Failed to add subrepository" msgstr "" #, python-format msgid "Cannot open the .hgsub file in:

                                                        %s" msgstr "" msgid "Failed to add repository" msgstr "" #, python-format msgid "The .hgsub file already contains the line:

                                                        %s" msgstr "" msgid "Subrepo added to .hgsub file" msgstr "" #, python-format msgid "" "The selected subrepo:

                                                        %s

                                                        has been added to the .hgsub " "file of the repository:

                                                        %s

                                                        Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" #, python-format msgid "Cannot update the .hgsub file in:

                                                        %s" msgstr "" msgid "Could not open .hgsub file" msgstr "" msgid "Cannot read the .hgsub file.

                                                        Subrepository removal failed." msgstr "" msgid "Subrepository not found" msgstr "" msgid "" "The selected subrepository was not found on the .hgsub file.

                                                        Perhaps it " "has already been removed?" msgstr "" msgid "&Yes" msgstr "&Si" msgid "&No" msgstr "&No" msgid "Remove the selected repository?" msgstr "" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" msgid "Subrepository removed from .hgsub" msgstr "" msgid "" "The selected subrepository has been removed from the .hgsub file.

                                                        Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" msgid "Could not update .hgsub file" msgstr "" msgid "Cannot update the .hgsub file.

                                                        Subrepository removal failed." msgstr "" #, python-format msgid "Unsupported repository type (%s)" msgstr "" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "" msgid "New Group" msgstr "" msgid "Confirm Delete" msgstr "Conferma cancellazione" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "" msgid "Could not get subrepository list" msgstr "" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

                                                        %s" msgstr "" msgid "Could not open some subrepositories" msgstr "" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

                                                        %s

                                                        The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

                                                        %s" msgstr "" msgid "Updating repository registry" msgstr "" #, python-format msgid "Loading repository %s" msgstr "" msgid "Repository Registry updated" msgstr "" msgid "Close tab" msgstr "" msgid "Close other tabs" msgstr "" msgid "Undo close tab" msgstr "" msgid "Reopen last closed tab" msgstr "" msgid "Undo close other tabs" msgstr "" msgid "Reopen last closed tab group" msgstr "" msgid "Failed to open repository" msgstr "" msgid "&Sort" msgstr "" #, python-format msgid "Local Repository %s" msgstr "" #, python-format msgid "" "An exception happened while loading the subrepos of:

                                                        \"%s\"

                                                        " msgstr "" #, python-format msgid "The exception error message was:

                                                        %s

                                                        " msgstr "" msgid "Click OK to continue or Abort to exit." msgstr "" msgid "Error loading subrepos" msgstr "" msgid "Unable to update repository name" msgstr "" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "" msgid "default" msgstr "" msgid "C&hoose Log Columns..." msgstr "" msgid "&Resize Columns" msgstr "" #, python-format msgid "Goto ancestor of %s and %s" msgstr "" #, python-format msgid "Can't find revision '%s'" msgstr "" msgid "Drag to change order" msgstr "" msgid "Workbench Log Columns" msgstr "" msgctxt "tab tooltip" msgid "Revision details" msgstr "" msgctxt "tab tooltip" msgid "Commit" msgstr "" msgctxt "tab tooltip" msgid "Search" msgstr "" msgctxt "tab tooltip" msgid "Console log" msgstr "" msgctxt "tab tooltip" msgid "Synchronize" msgstr "" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "" #, python-format msgid "%s " msgstr "" #, python-format msgid "Found %d incoming changesets" msgstr "" msgid "Pull" msgstr "Pull" msgid "Pull incoming changesets into your repository" msgstr "" msgid "Reject incoming changesets" msgstr "" #, python-format msgid "Push current branch (%s)" msgstr "" #, python-format msgid "Push up to current revision (#%d)" msgstr "" #, python-format msgid "Push up to revision #%d" msgstr "" msgid "Push all" msgstr "" msgid "no outgoing changesets" msgstr "" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets" msgstr "%d changeset in uscita" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "" msgid "Nothing to push" msgstr "" msgid "No revision found" msgstr "" #, python-format msgid "%s - verify repository" msgstr "" #, python-format msgid "%s - recover repository" msgstr "" msgid "No transaction available" msgstr "" msgid "There is no rollback transaction available" msgstr "" msgid "Undo last commit?" msgstr "Annulla ultimo commit?" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "" msgid "Undo last transaction?" msgstr "" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "" msgid "Unable to determine working copy revision\n" msgstr "" msgid "Remove current working revision?" msgstr "" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" msgid "Tab cannot exit" msgstr "" msgid "Pus&h" msgstr "" msgid "Push to &Here" msgstr "" msgid "Push Selected &Branch" msgstr "" msgid "Push &All" msgstr "" msgid "&Update..." msgstr "" msgid "Bro&wse at Revision" msgstr "" msgid "&Merge with Local..." msgstr "" msgid "&Tag..." msgstr "" msgid "Boo&kmark..." msgstr "" msgid "Top&ic..." msgstr "" msgid "Sig&n..." msgstr "" msgid "&Backout..." msgstr "" msgid "Revert &All Files..." msgstr "" msgid "Copy &Hash" msgstr "" msgid "E&xport" msgstr "" msgid "E&xport Patch..." msgstr "" msgid "&Email Patch..." msgstr "" msgid "&Archive..." msgstr "" msgid "&Bundle Rev and Descendants..." msgstr "" msgid "Change &Phase to" msgstr "" msgid "&Graft to Local..." msgstr "" msgid "Modi&fy History" msgstr "" msgid "&Unapply Patch" msgstr "" msgid "Import to &MQ" msgstr "" msgid "MQ &Options" msgstr "" msgid "&Rebase..." msgstr "" msgid "&Prune..." msgstr "" msgid "&Strip..." msgstr "" msgid "Post to Re&view Board..." msgstr "" msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "" msgid "Write diff file" msgstr "" msgid "Unable to write diff file" msgstr "" msgid "Unable to compress history" msgstr "" msgid "Selected changeset pair not related" msgstr "" msgid "Visual Diff..." msgstr "" msgid "Export Diff..." msgstr "" msgid "Export Selected..." msgstr "" msgid "Email Selected..." msgstr "" msgid "Copy Selected as Patch" msgstr "" msgid "Archive DAG Range..." msgstr "" msgid "Export DAG Range..." msgstr "" msgid "Email DAG Range..." msgstr "" msgid "Bundle DAG Range..." msgstr "" msgid "Bisect - Good, Bad..." msgstr "" msgid "Bisect - Bad, Good..." msgstr "" msgid "Compress History..." msgstr "" msgid "Rebase..." msgstr "" msgid "Goto common ancestor" msgstr "" msgid "Graft Selected to local..." msgstr "" msgid "&Prune Selected..." msgstr "" msgid "Post Selected to Review Board..." msgstr "" msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "" msgid "Apply onto original parent" msgstr "" msgid "Apply only this patch" msgstr "" msgid "Fold patches..." msgstr "" msgid "Delete patches..." msgstr "" msgid "Rename patch..." msgstr "" msgid "Pull to here..." msgstr "" msgid "Visual diff..." msgstr "" msgid "Export patch" msgstr "" msgid "Patch Files (*.patch)" msgstr "" msgid "Cannot export revision" msgstr "" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" msgid "There is already an existing folder with that same name." msgstr "" msgid "Replace" msgstr "Sostituisci" msgid "Append" msgstr "Aggiungi" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" msgid "What do you want to do?\n" msgstr "" msgid "Replace the existing patch files.\n" msgstr "" msgid "Append the changes to the existing patch files.\n" msgstr "" msgid "Abort the export operation.\n" msgstr "" msgid "Patch files already exist" msgstr "" msgid "Patch exported" msgstr "" #, python-format msgid "" "Revision #%d (%s) was exported to:

                                                        %s%s%s" msgstr "" msgid "Patches exported" msgstr "" #, python-format msgid "%d patches were exported to:

                                                        %s" msgstr "" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

                                                        Are you sure you want to use revert?

                                                        (use " "update to checkout another revision)" msgstr "" msgid "Filter b&y" msgstr "" msgid "&Ancestors and Descendants" msgstr "" msgid "A&uthor" msgstr "" msgid "&Branch" msgstr "" msgid "&More Options..." msgstr "" msgid "Unable to merge" msgstr "Impossibile eseguire il merge" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "" msgid "Unable to backout" msgstr "" msgid "Write bundle" msgstr "" msgid "Backwards phase change requested" msgstr "" msgid "Do you really want to make this revision secret?" msgstr "" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" msgid "&Make secret" msgstr "" msgid "&Cancel" msgstr "&Annulla" msgid "Do you really want to force a backwards phase transition?" msgstr "" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" msgid "&Force" msgstr "" msgid "Cannot import selected revision" msgstr "" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" msgid "Invalid command" msgstr "" msgid "The selected command is empty" msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" msgid "Failed to execute custom TortoiseHg command" msgstr "" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "" msgid "Failed to execute custom command" msgstr "" #, python-format msgid "The command \"%s\" could not be executed." msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" msgid "&Edit Toolbar" msgstr "" msgid "&Refresh" msgstr "Aggio&rna" msgid "&Filter Toolbar" msgstr "" #, python-format msgid "TortoiseHg: %s" msgstr "" msgid "S&tatus Bar" msgstr "" #, python-format msgid "Resolve Conflicts - %s" msgstr "" msgid "Local revision information" msgstr "" msgid "Other revision information" msgstr "" msgid "Unresolved conflicts" msgstr "" msgid "Mercurial Re&solve" msgstr "" msgid "Attempt automatic (trivial) merge" msgstr "" msgid "Tool &Resolve" msgstr "" msgid "Merge using selected merge tool" msgstr "" msgid "&Take Local" msgstr "" msgid "Accept the local file version (yours)" msgstr "" msgid "Take &Other" msgstr "" msgid "Accept the other file version (theirs)" msgstr "" msgid "&Mark as Resolved" msgstr "" msgid "Mark this file as resolved" msgstr "" msgid "Diff &Local to Ancestor" msgstr "" msgid "&Diff Other to Ancestor" msgstr "" msgid "Resolved conflicts" msgstr "" msgid "&Edit File" msgstr "" msgid "Edit resolved file" msgstr "" msgid "3-&Way Diff" msgstr "" msgid "Visual three-way diff" msgstr "" msgid "Visual diff between resolved file and first parent" msgstr "" msgid "&Diff to Other" msgstr "" msgid "Visual diff between resolved file and second parent" msgstr "" msgid "Mark as &Unresolved" msgstr "" msgid "Mark this file as unresolved" msgstr "" msgid "Detected merge/diff tools:" msgstr "" msgid "Command output" msgstr "" msgid "Unable to show subrepository files" msgstr "" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" msgid "There are merge conflicts to be resolved" msgstr "" msgid "All conflicts are resolved." msgstr "" msgid "There are no conflicting file merges." msgstr "" msgid "Exit without finishing resolve?" msgstr "" msgid "Unresolved conflicts remain. Are you sure?" msgstr "" msgid "E&xit" msgstr "" msgid "Ext" msgstr "" msgid "Repository" msgstr "Repository" msgid "" msgstr "" msgid "File List Toolbar" msgstr "" msgid "Ma&nifest Mode" msgstr "" msgid "Show all version-controlled files in tree view" msgstr "" msgid "&Flat List" msgstr "" msgid "### filter text ###" msgstr "" msgid "Changed by &This Commit" msgstr "" msgid "Show files changed by this commit" msgstr "" msgid "Compare to &1st Parent" msgstr "" msgid "Compare to &2nd Parent" msgstr "" msgid "Toggle parent to be used as the base revision" msgstr "" msgid "List Optio&ns" msgstr "" #, python-format msgid "%s - Revision Details (%s)" msgstr "" #, python-format msgid "Revert - %s" msgstr "" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "" msgid "Revert all files to this revision" msgstr "" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "" msgid "null revision (i.e. remove file(s))" msgstr "" msgid "Changeset:" msgstr "Changeset:" msgid "Child:" msgstr "Figlio:" msgid "Predecessors:" msgstr "" msgid "Successors:" msgstr "" msgid "Head is closed!" msgstr "" msgid "Changesets where username contains string." msgstr "" msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" msgid "Like \"keyword(string)\" but accepts a regex." msgstr "" msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" msgid "The named bookmark or all bookmarks." msgstr "" msgid "The named tag or all tags." msgstr "" msgid "Changeset is tagged." msgstr "" msgid "Changeset is a named branch head." msgstr "" msgid "Changeset is a merge changeset." msgstr "" msgid "Changeset is closed." msgstr "" msgid "" "Changesets within the interval, see help dates" msgstr "" msgid "Greatest common ancestor of the two changesets." msgstr "" msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" msgid "Changesets which modify files matched by pattern." msgstr "" msgid "Changesets which add files matched by pattern." msgstr "" msgid "Changesets which remove files matched by pattern." msgstr "" msgid "Changesets containing files matched by pattern." msgstr "" msgid "All changesets belonging to the branches of changesets in set." msgstr "" msgid "Members of a set with no children in set." msgstr "" msgid "Changesets which are descendants of changesets in set." msgstr "" msgid "Changesets that are ancestors of a changeset in set." msgstr "" msgid "Child changesets of changesets in set." msgstr "" msgid "The set of all parents for all changesets in set." msgstr "" msgid "First parent for all changesets in set, or the working directory." msgstr "" msgid "Second parent for all changesets in set, or the working directory." msgstr "" msgid "Changesets with no parent changeset in set." msgstr "" msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" msgid "Changeset with lowest revision number in set." msgstr "" msgid "Changeset with highest revision number in set." msgstr "" msgid "First n members of a set." msgstr "" msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "" msgid "All changesets, the same as 0:tip." msgstr "" msgid "Revision Set Query" msgstr "" msgid "all revisions converted from subversion" msgstr "" msgid "changeset which represents converted svn revision" msgstr "" msgid "Common sets" msgstr "" msgid "File pattern sets" msgstr "" msgid "Set Ancestry" msgstr "" msgid "Set Logic" msgstr "" msgid "" "help " "revsets" msgstr "" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" "\n" "Arrivato interrupt da tastiera, annullamento in corso.\n" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "Impossibile leggere il file \"%s\". Ignorato.\n" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" #, python-format msgid "thg: unknown command '%s'\n" msgstr "" #, python-format msgid "thg %s: %s\n" msgstr "" #, python-format msgid "thg: %s\n" msgstr "" #, python-format msgid "abort: %s!\n" msgstr "annullato: %s!\n" #, python-format msgid "abort: %s\n" msgstr "" #, python-format msgid "(%s)\n" msgstr "" msgid "option --config may not be abbreviated!" msgstr "" msgid "invalid arguments" msgstr "argomenti non validi" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "formato di profiling sconosciuto '%s' - Ignorato\n" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" "lsprof non disponibile - installarlo da http://codespeak.net/svn/user/arigo/" "hack/misc/lsprof/" msgid "repository root directory or symbolic path name" msgstr "directory radice del repository o nome del percorso simbolico" msgid "enable additional output" msgstr "fornisce maggiori informazioni in output" msgid "suppress output" msgstr "elimina output" msgid "display help and exit" msgstr "mostra la guida ed esce" msgid "set/override config option (use 'section.name=value')" msgstr "" msgid "enable debugging output" msgstr "" msgid "start debugger" msgstr "avvia debugger" msgid "print command execution profile" msgstr "stampa il profiling di esecuzione del comando" msgid "do not fork GUI process" msgstr "non crea un nuovo processo per l'interfaccia grafica" msgid "always fork GUI process" msgstr "crea sempre un nuovo processo per l'interfaccia grafica" msgid "read file list from file" msgstr "legge la lista dei file da file" msgid "read file list from file encoding utf-8" msgstr "" msgid "thg about" msgstr "" msgid "thg add [FILE]..." msgstr "" msgid "revision to annotate" msgstr "" msgid "open to line" msgstr "" msgid "initial search pattern" msgstr "" msgid "thg annotate" msgstr "" #, python-format msgid "invalid line number: %s" msgstr "" msgid "revision to archive" msgstr "" msgid "thg archive" msgstr "" msgid "merge with old dirstate parent after backout" msgstr "" msgid "parent to choose when backing out merge" msgstr "" msgid "revision to backout" msgstr "" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "" msgid "thg bisect" msgstr "" msgid "revision" msgstr "" msgid "thg bookmarks [-r REV] [NAME]" msgstr "" msgid "only one new bookmark name allowed" msgstr "" msgid "the clone will include an empty working copy (only a repository)" msgstr "" msgid "revision, tag or branch to check out" msgstr "" msgid "include the specified changeset" msgstr "" msgid "clone only the specified branch" msgstr "" msgid "use pull protocol to copy metadata" msgstr "Usa il protocollo di pull per copiare i metadati" msgid "use uncompressed transfer (fast over LAN)" msgstr "" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "" msgid "record user as committer" msgstr "registra l'utente come autore del commit" msgid "record datecode as commit date" msgstr "registra il datecode come data del commit" msgid "thg commit [OPTIONS] [FILE]..." msgstr "" msgid "thg debugblockmatcher" msgstr "" msgid "thg debugbugreport [TEXT]" msgstr "" msgid "thg debugconsole" msgstr "" msgid "thg debuglighthg" msgstr "" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "" msgid "no command specified" msgstr "" msgid "thg drag_copy SOURCE... DEST" msgstr "" msgid "thg drag_move SOURCE... DEST" msgstr "" msgid "a revision to send" msgstr "" msgid "thg email [REVS]" msgstr "" msgid "use only one form to specify the revision" msgstr "" msgid "select the specified revision" msgstr "" msgid "side-by-side comparison of revisions" msgstr "" msgid "thg filelog [OPTION]... FILE" msgstr "" msgid "requires a single filename" msgstr "" msgid "thg forget [FILE]..." msgstr "" msgid "revisions to graft" msgstr "" msgid "thg graft [-r] REV..." msgstr "" msgid "You must provide revisions to graft" msgstr "" msgid "ignore case during search" msgstr "" msgid "thg grep" msgstr "" msgid "thg guess" msgstr "" msgid "thg help [COMMAND]" msgstr "" msgid "global options:" msgstr "opzioni globali:" msgid "use \"thg help\" for the full list of commands" msgstr "" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "" msgid "" "list of commands:\n" "\n" msgstr "" "elenco comandi:\n" "\n" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" "\n" "alias: %s\n" msgid "(no help text available)" msgstr "(nessuna guida disponibile)" msgid "options:\n" msgstr "opzioni:\n" msgid "no commands defined\n" msgstr "nessun comando definito\n" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "" msgid "" "basic commands:\n" "\n" msgstr "" "comandi di base:\n" "\n" #, python-format msgid " (default: %s)" msgstr " (default: %s)" msgid "thg hgignore [FILE]" msgstr "" msgid "import to the patch queue (MQ)" msgstr "importa nella code patch (MQ)" msgid "thg import [OPTION] [SOURCE]..." msgstr "" msgid "thg init [DEST]" msgstr "" msgid "thg lock" msgstr "" msgid "search for a given text or revset" msgstr "" msgid "(DEPRECATED)" msgstr "" msgid "open a new workbench window" msgstr "" msgid "thg log [OPTIONS] [FILE]" msgstr "" msgid "cannot specify both -k/--query and filenames" msgstr "" msgid "revision to display" msgstr "" msgid "thg manifest [-r REV] [FILE]" msgstr "" msgid "revision to merge" msgstr "" msgid "thg merge [[-r] REV]" msgstr "" msgid "Merge revision not specified or not found" msgstr "" msgid "a revision to post" msgstr "" msgid "thg postreview [-r] REV..." msgstr "" msgid "reviewboard extension not enabled" msgstr "" #, python-format msgid "see %(url)s" msgstr "" msgid "no revisions specified" msgstr "" msgid "revisions to prune" msgstr "" msgid "thg prune [-r] REV..." msgstr "" msgid "thg purge" msgstr "" msgid "keep original changesets" msgstr "" msgid "keep original branch names" msgstr "" msgid "rebase from the specified changeset" msgstr "" msgid "rebase onto the specified changeset" msgstr "" msgid "thg rebase -s REV -d REV [--keep]" msgstr "" msgid "Rebase already in progress" msgstr "" msgid "Resuming rebase already in progress" msgstr "" msgid "You must provide source and dest arguments" msgstr "" msgid "thg rejects [FILE]" msgstr "" msgid "You must provide the path to a file" msgstr "" msgid "thg remove [FILE]..." msgstr "" msgid "thg rename [SOURCE] [DEST]" msgstr "" msgid "field to give initial focus" msgstr "campo a cui dare inizialmente il focus" msgid "thg repoconfig" msgstr "" msgid "thg resolve" msgstr "" msgid "the revision to show" msgstr "" msgid "thg revdetails [-r REV]" msgstr "" msgid "thg revert [FILE]..." msgstr "" msgid "revision to update" msgstr "revisione da aggiornare" msgid "thg rupdate [[-r] REV]" msgstr "" msgid "name of the hgweb config file (serve more than one repository)" msgstr "nome del file di configurazione hgweb (serve più di un repository)" msgid "name of the hgweb config file (DEPRECATED)" msgstr "" msgid "thg serve [--web-conf FILE]" msgstr "" msgid "thg shellconfig" msgstr "" msgid "thg shelve" msgstr "" msgid "sign even if the sigfile is modified" msgstr "" msgid "make the signature local" msgstr "" msgid "the key id to sign with" msgstr "" msgid "do not commit the sigfile after signing" msgstr "" msgid "use as commit message" msgstr "" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "" msgid "Please enable the Gpg extension first." msgstr "" msgid "show files without changes" msgstr "" msgid "show ignored files" msgstr "" msgid "thg status [OPTIONS] [FILE]" msgstr "" msgid "discard uncommitted changes (no backup)" msgstr "" msgid "do not back up stripped revisions" msgstr "" msgid "do not modify working copy during strip" msgstr "" msgid "revision to strip" msgstr "" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "" msgid "open the bookmark sync window" msgstr "" msgid "thg sync [OPTION]... [PEER]" msgstr "" msgid "replace existing tag" msgstr "" msgid "make the tag local" msgstr "" msgid "revision to tag" msgstr "" msgid "remove a tag" msgstr "" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "" msgid "wait until the second ticks over" msgstr "attende fino al secondo tick" msgid "notify the shell for paths given" msgstr "notifica la shell per i percorsi specificati" msgid "remove the status cache" msgstr "elimina la cache di stato" msgid "show the contents of the status cache (no update)" msgstr "mostra il contenuto della cache di stato (nessun aggiornamento)" msgid "update all repos in current dir" msgstr "aggiorna tutti i repository nella directory corrente" msgid "thg thgstatus [OPTION]" msgstr "" msgid "thg topics [-r REV] [NAME]" msgstr "" msgid "Please enable the Topic extension first." msgstr "" msgid "only one new topic name allowed" msgstr "" msgid "thg update [-C] [[-r] REV]" msgstr "" msgid "thg userconfig" msgstr "" msgid "changeset to view in diff tool" msgstr "changeset da mostrare nello strumento di comparazione" msgid "revisions to view in diff tool" msgstr "revisioni da mostrare nello strumento di comparazione" msgid "bundle file to preview" msgstr "file bundle da vedere in anteprima" msgid "launch visual diff tool" msgstr "lancia il tool grafico di comparazione" msgid "print license" msgstr "stampa la licenza" msgid "thg version [OPTION]" msgstr "" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "TortoiseHg Dialogs (versione %s), Mercurial (versione %s)\n" msgid "Location:" msgstr "" msgid "Update to:" msgstr "Aggiorna a:" msgid "Options:" msgstr "Opzioni:" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "" msgid "Perform a push before updating (-p/--push)" msgstr "" msgid "Allow pushing new branches (--new-branch)" msgstr "" msgid "Force push to remote location (-f/--force)" msgstr "" msgid "remove working directory" msgstr "" msgid "unknown revision!" msgstr "revisione sconosciuta!" #, python-format msgid "Remote Update - %s" msgstr "" msgid "&Update" msgstr "" msgid "Log" msgstr "" msgid "Repositories" msgstr "" #, python-format msgid "Running at %s" msgstr "" msgid "Stopped" msgstr "" msgid "TortoiseHg Web Server" msgstr "" msgid "Web Server" msgstr "Server Web" msgid "Port:" msgstr "" msgid "Status:" msgstr "" msgid "Start" msgstr "Avvia" msgid "Settings" msgstr "Impostazioni" msgid "" msgstr "" msgid "&True" msgstr "" msgid "&False" msgstr "" msgid "&Unspecified" msgstr "" #, python-format msgid "%dpt" msgstr "" msgid "Bold" msgstr "" msgid "Italic" msgstr "" msgid "Strike" msgstr "" msgid "Underline" msgstr "" msgid "&Set..." msgstr "" msgid "&Clear" msgstr "" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "" msgid "&Browse..." msgstr "" msgid "UI Language" msgstr "Lingua dell'interfaccia" msgid "Specify your preferred user interface language (restart needed)" msgstr "" "Specificare il vostro linguaggio di interfaccia preferito (richiede " "riesecuzione)" msgid "Three-way Merge Tool" msgstr "Strumento di merge a tre vie" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" msgid "Visual Diff Tool" msgstr "Strumento di comparazione visuale" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" "Specifica lo strumento di comparazione visuale, come descritto nella sezione " "[merge-tools] dei propri file di configurazione di Mercurial. Se non " "specificato, TortoiseHg userà lo strumento di merge selezionato. In mancanza " "di questo userà il primo strumento applicabile che troverà." msgid "Visual Editor" msgstr "Editor visuale" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" msgid "CLI Editor" msgstr "Editor da riga di comando" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" msgid "Shell" msgstr "" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
                                                        Default, Windows: cmd.exe /" "K title %(reponame)s
                                                        Default, OS X: not set
                                                        Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" msgid "Immediate Operations" msgstr "" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" msgid "Tab Width" msgstr "Dimensione tab" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" msgid "Force Repo Tab" msgstr "" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "" msgid "Monitor Repo Changes" msgstr "" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" msgid "Max Diff Size" msgstr "Dimensione massima differenze" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" "La dimensione massima del file (in KB) che TortoiseHG mostrerà le modifiche " "nelle finestra di cronologia, stato e commit. Un valore di zero significa " "nessun limite. Default: 1024 (1 MB)" msgid "Fork GUI" msgstr "" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" msgid "Full Path Title" msgstr "Percorso completo nei titoli" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" "Mostra il percorso completo della directory del repository nel titolo delle " "finestre di dialogo al posto del solo nome directory. Default: Falso" msgid "Auto-resolve merges" msgstr "" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" msgid "New Repo Skeleton" msgstr "" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "" msgid "Single Workbench Window" msgstr "" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" msgid "Default widget" msgstr "" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" msgid "" "Open new tabs next\n" "to the current tab" msgstr "" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" msgid "Author Coloring" msgstr "Colora per autore" msgid "Color changesets by author name. Default: False" msgstr "" msgid "Full Authorname" msgstr "" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" msgid "Task Tabs" msgstr "" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" msgid "Task Toolbar Order" msgstr "" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
                                                        Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
                                                        Valid names are: log commit sync grep and " "pbranch.
                                                        Default: log commit grep pbranch | sync" msgstr "" msgid "Long Summary" msgstr "Sommario lungo" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" msgid "Log Batch Size" msgstr "Lunghezza gruppo cronologia" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "" "Il numero di revisioni da leggere e mostrare nella cronologia in una singola " "operazione. Default: 500" msgid "Dead Branches" msgstr "Rami morti" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" msgid "Branch Colors" msgstr "Colori dei rami" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" msgid "Hide Tags" msgstr "Etichette da nascondere" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" msgid "Activate Bookmarks" msgstr "" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

                                                        • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
                                                        • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
                                                        • never: Never show any prompt to " "activate any bookmarks.

                                                        Default: prompt" msgstr "" msgid "Show Family Line" msgstr "" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

                                                        Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" msgid "Use optimized graph layouter" msgstr "" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

                                                        Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" msgctxt "config item" msgid "Commit" msgstr "" msgid "Username" msgstr "Nome utente" msgid "" "Name associated with commits. The common format is:
                                                        Full Name <" "email@example.com>" msgstr "" msgid "Ask Username" msgstr "" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" msgid "Summary Line Length" msgstr "Lunghezza linea sommario" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" msgid "Close After Commit" msgstr "Chiudi dopo il commit" msgid "Close the commit tool after every successful commit. Default: False" msgstr "" "Chiude lo strumento di commit dopo ogni operazione eseguita con successo. " "Default: Falso" msgid "Push After Commit" msgstr "Push dopo il commit" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" msgid "Auto Commit List" msgstr "File automaticamente inclusi" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" msgid "Auto Exclude List" msgstr "File automaticamente esclusi" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" msgid "English Messages" msgstr "Messaggi in inglese" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" "Genera messaggio di conferma in inglese anche se le variabili ambientali " "LANGUAGE o LANG sono impostate a una lingua diversa dall'inglese. Questa " "impostazione è usata dai dialoghi Merge, Tag e Backout dialogs. Predefinita: " "Falsa" msgid "New Commit Phase" msgstr "" msgid "The phase of new commits. Default: draft" msgstr "" msgid "Secret MQ Patches" msgstr "" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "" msgid "Check Subrepo Phase" msgstr "" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" msgid "Monitor working
                                                        directory changes" msgstr "" msgid "" "Select when the working directory status list will be refreshed:
                                                        - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
                                                        TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
                                                        - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
                                                        - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
                                                        Default: auto" msgstr "" msgid "Confirm adding unknown files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Confirm deleting files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Sync" msgstr "" msgid "After Pull Operation" msgstr "Operazione da eseguire dopo il pull" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" msgid "Default Push" msgstr "" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

                                                        • all: The default. Push all changes in all " "branches.
                                                        • branch: Push all changes in the current branch.
                                                        • revision: Push the changes in the current branch up to the current revision.

                                                        Default: all" msgstr "" msgid "Confirm Push" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" msgid "Target Combo" msgstr "" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

                                                        • auto: The default. Show the combo if more than one target " "configured.
                                                        • always: Always show the combo.

                                                        Default: auto" msgstr "" msgid "SSH Command" msgstr "" msgid "" "Command to use for SSH connections.

                                                        Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" msgid "Subrepository Features:" msgstr "" msgid "Allow Hg Subrepos" msgstr "" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" msgid "Allow Git Subrepos" msgstr "" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

                                                        See the security note before enabling Git " "subrepos." msgstr "" msgid "Allow SVN Subrepos" msgstr "" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

                                                        See the security note before enabling " "Subversion subrepos." msgstr "" msgid "Server" msgstr "" msgid "Repository Details:" msgstr "" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" msgid "Encoding" msgstr "Codifica" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" msgid "'Publishing' repository" msgstr "" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" msgid "Web Server:" msgstr "" msgid "Textual description of the repository's purpose or contents." msgstr "Descrizione dello scopo e contenuto del repository" msgid "Contact" msgstr "Contatto" msgid "Name or email address of the person in charge of the repository." msgstr "Nome o indirizzo email della persona responsabile del repository." msgid "Style" msgstr "Stile" msgid "Which template map style to use" msgstr "Quale stile di template da usare" msgid "Archive Formats" msgstr "Formati file compressi" msgid "Comma separated list of archive formats allowed for downloading" msgstr "" "Elenco, separato da virgola, dei formati compressi permessi per il download" msgid "Port" msgstr "Porta" msgid "Port to listen on" msgstr "Porta in ascolto" msgid "Push Requires SSL" msgstr "Push richiede SSL" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" "Se richiedere che i push in entrata usino SSL per prevenire lo sniffing " "delle password." msgid "Stripes" msgstr "Strisce" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" "Il numero di linee a zebra in cui deve essere diviso l'output multiriga. " "Default 1; 0 per disabilitare." msgid "Max Files" msgstr "Numero massimo file" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "" msgid "Max Changes" msgstr "Numero massimo modifiche" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "" msgid "Allow Push" msgstr "Permetti il push" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" "Se permettere il push nel repository. Se vuota o non impostato, il push non " "è permesso. Il valore speciale \"*\" permette a qualsiasi utente remoto di " "eseguire il push, compresi gli utenti non autenticati. Altrimenti, l'utente " "remoto deve essere autenticato, e il nome utente deve essere presente in " "questa lista (elenco separato da spazio o virgola). La lista dei permessi è " "esaminata dopo della lista dei divieti." msgid "Deny Push" msgstr "Vieta il push" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" "Se vietare il push nel repository. Se vuota o non impostata, il push non è " "vietato. Il valore speciale \"*\" vieta il push a tutti gli utenti remoti. " "Altrimenti il push sarà vietato a tutti gli utenti non autenticati, e a " "tutti gli utenti autenticati il cui nome utente appare in questa lista " "(elenco separato da spazio o virgola). La lista dei divieti è esaminata " "prima della lista dei permessi." msgid "Proxy" msgstr "Proxy" msgid "Host" msgstr "Host" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "" "Nome host e (opzionale) numero porta del server proxy, ad esempio " "\"myproxy:8000\"" msgid "Bypass List" msgstr "Elenco bypass" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "" "Opzionale. Elenco separato da virgola di nomi host che dovrebbero bypassare " "il proxy" msgid "Optional. User name to authenticate with at the proxy server" msgstr "Opzionale. Nome utente di autenticazione del server proxy" msgid "Password" msgstr "Password" msgid "Optional. Password to authenticate with at the proxy server" msgstr "Opzionale. Password di autenticazione al server proxy" msgid "From" msgstr "Da" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "Indirizzo email da usare nel campo \"Da\" e negli indirizzi SMTP" msgid "To" msgstr "A" msgid "Comma-separated list of recipient email addresses" msgstr "Elenco separato da virgola di indirizzi email di destinazione" msgid "Cc" msgstr "Cc" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "" "Elenco separato da virgola di indirizzi email di destinazione delle copie " "per conoscenza (CC)" msgid "Bcc" msgstr "CCn" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "" "Elenco separato da virgola di indirizzi email di destinazione delle copie " "per conoscenza nascoste (CCn)" msgid "method" msgstr "Metodo" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" "Opzionale. Metodo usato per spedire i messaggi email. Se vale \"smtp" "\" (default), verrà usato SMTP (configurato sotto). Altrimenti, verrà usato " "come nome del programma che agisce come sendmail (l'opzione \"-f\", da riga " "di comando, specifica il mittente e l'elenco dei destinatari, il messaggio " "sarà in stdin). Normalmente, impostare questo valore a \"sendmail\" o \"/usr/" "sbin/sendmail\" è sufficiente per inviare i messaggi con sendmail." msgid "SMTP Host" msgstr "Server SMTP" msgid "Host name of mail server" msgstr "Nome host del server di posta" msgid "SMTP Port" msgstr "Porta SMTP" msgid "Port to connect to on mail server. Default: 25" msgstr "Numero porta per la connessione al server di posta. Default: 25." msgid "SMTP TLS" msgstr "SMTP TLS" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "" msgid "SMTP Username" msgstr "Utente SMTP" msgid "Username to authenticate to mail server with" msgstr "Nome utente di autenticazione al server di posta" msgid "SMTP Password" msgstr "Password SMTP" msgid "Password to authenticate to mail server with" msgstr "Password di autenticazione al server di posta" msgid "Local Hostname" msgstr "Nome host locale" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "" "Nome host che il mittente usa per identificare se stesso al server di posta." msgid "Diff and Annotate" msgstr "" msgid "Patch EOL" msgstr "EOL nelle patch" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" "Normalizza il fine linea dei file durante e dopo l'applicazione delle patch " "a lf o crlf. Strict non esegue nessuna normalizzazione. Auto esegue una " "rilevazione per file, ed è l'impostazione raccomandata. Default: strict." msgid "Git Format" msgstr "Formato Git" msgid "Use git extended diff header format. Default: False" msgstr "Usa il formato git esteso negli header diff. Default: Falso" msgid "MQ Git Format" msgstr "" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" msgid "No Dates" msgstr "Escludi date" msgid "Do not include modification dates in diff headers. Default: False" msgstr "Non includere le date di modifica negli header diff. Default: Falso" msgid "Show Function" msgstr "Mostra funzione" msgid "Show which function each change is in. Default: False" msgstr "Mostra in quale funzione si trova ogni modifica. Default: Falso" msgid "Ignore White Space" msgstr "Ignora spazi bianchi" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "" msgid "Ignore WS Amount" msgstr "Ignora quantità spazi bianchi" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "" msgid "Ignore Blank Lines" msgstr "Ignora linee vuote" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "" msgid "Annotate:" msgstr "" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "" msgid "Fonts" msgstr "" msgid "Message Font" msgstr "" msgid "Font used to display commit messages. Default: monospace 10" msgstr "" msgid "Diff Font" msgstr "" msgid "Font used to display text differences. Default: monospace 10" msgstr "" msgid "ChangeLog Font" msgstr "" msgid "Font used to display changelog data. Default: monospace 10" msgstr "" msgid "Output Font" msgstr "" msgid "Font used to display output messages. Default: sans 8" msgstr "" msgid "Extensions" msgstr "Estensioni" msgid "Tools" msgstr "" msgid "Hooks" msgstr "" msgid "Issue Tracking" msgstr "Tracciamento delle anomalie" msgid "Issue Regex" msgstr "" msgid "Defines the regex to match when picking up issue numbers." msgstr "" msgid "Issue Link" msgstr "Collegamento all'anomalia" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" msgid "Inline Tags" msgstr "" msgid "Show tags at start of commit message." msgstr "" msgid "Mandatory Issue Reference" msgstr "" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" msgid "Issue Tracker Plugin" msgstr "" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" msgid "Configure Issue Tracker" msgstr "" msgid "Configure the selected COM Bug Tracker plugin." msgstr "" msgid "Issue Tracker Trigger" msgstr "" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

                                                        • never: Do not update the Issue Tracker " "state automatically.
                                                        • commit: Update the Issue Tracker state after " "a successful commit.

                                                        Default: never" msgstr "" msgid "Changeset Link" msgstr "" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
                                                        The template string " "uses a normal mercurial template syntax, such as:

                                                        • {node|short} : replaced by " "the 12 digit revision id.
                                                        • {rev} : replaced by the revision number." "
                                                        • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
                                                        For example, in order to " "link to bitbucket commit pages you can set this to:
                                                        https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
                                                        You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
                                                        https://github.com/torvalds/" "linux/commit/{gitnode}
                                                        https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
                                                        " msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "" msgid "User name to authenticate with review board" msgstr "" msgid "Password to authenticate with review board" msgstr "" msgid "Server Repository ID" msgstr "" msgid "The default repository id for this repo on the review board server" msgstr "" msgid "Target Groups" msgstr "" msgid "A comma separated list of target groups" msgstr "" msgid "Target People" msgstr "" msgid "A comma separated list of target people" msgstr "" msgid "Kiln Bfiles" msgstr "" msgid "Patterns" msgstr "Pattern" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" msgid "Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" msgid "System Cache" msgstr "" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "" msgid "Simplelock" msgstr "" msgid "Lock Clone" msgstr "" msgid "" "Location of local clone of organizational lock repository.

                                                        This repository " "must contain a \"locked\" text file" msgstr "" msgid "Largefiles" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" msgid "Minimum Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" msgid "User Cache" msgstr "" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" msgid "Projrc" msgstr "" msgid "Require confirmation" msgstr "" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

                                                        • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
                                                        • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
                                                        • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
                                                        " msgstr "" msgid "Servers" msgstr "" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" msgid "Include" msgstr "" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" msgid "Exclude" msgstr "" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" msgid "Update on incoming" msgstr "" msgid "" "Let the user update the projrc on incoming:
                                                        • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
                                                        • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
                                                        • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                                                          Default: never" msgstr "" msgid "GnuPG" msgstr "" msgid "Specify the path to GPG. Default: gpg" msgstr "" msgid "Key ID" msgstr "" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "" msgid "TortoiseHg Settings" msgstr "" msgid "Iniparse package not found" msgstr "Pacchetto iniparse non trovato" msgid "Can't change settings without iniparse package - view is readonly." msgstr "" "Le impostazioni non possono essere modificate senza il pacchetto iniparse. " "La finestra è in sola lettura." #, python-format msgid "%s's global settings" msgstr "" msgid "No repository found" msgstr "Nessun repository trovato" msgid "no repo at " msgstr "nessun repository in " #, python-format msgid "%s project settings (.hg/projrc)" msgstr "" #, python-format msgid "%s repository settings" msgstr "Impostazioni repository %s" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "" msgid "Apply changes before exit?" msgstr "" msgid "&No (discard changes)" msgstr "&No (abbandona modifiche)" msgid "Reload" msgstr "Ricarica" msgid "Settings File:" msgstr "" msgid "Confirm Save" msgstr "" msgid "Save changes before editing?" msgstr "" msgid "&Save" msgstr "&Salva" msgid "Confirm Reload" msgstr "Conferma ricaricamento" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" "Le modifiche non salvate verranno perse.\n" "Vuoi ricaricare?" msgid "Unable to create a Mercurial.ini file" msgstr "Impossibile creare il file Mercurial.ini" msgid "Insufficient access rights, reverting to read-only mode." msgstr "" msgid "Context Menu" msgstr "Menu contestuale" msgid "Top menu items:" msgstr "Voci menu primo livello:" msgid "Sub menu items:" msgstr "Voci menu secondo livello:" msgid "Menu Behavior" msgstr "Comportamento del menu" msgid "Hide context menu outside repositories" msgstr "Nascondi i menu di contesto esterni ai repositories" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" msgid "Icons" msgstr "Icone" msgid "Overlays" msgstr "Overlay" msgid "Enabled overlays" msgstr "" msgid "Local disks only" msgstr "Solo su dischi locali" msgid "Enabled Overlay Handlers" msgstr "" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "" msgid "Added" msgstr "Aggiunto" msgid "Locked*" msgstr "Bloccato*" msgid "Ignored*" msgstr "Ignorato*" msgid "Unversioned" msgstr "Non controllato" msgid "Readonly*" msgstr "Sola lettura*" msgid "Deleted*" msgstr "Eliminato*" msgid "*: not used by TortoiseHg" msgstr "*: non usato da TortoiseHg" msgid "Taskbar" msgstr "Taskbar" msgid "Show Icon" msgstr "Mostra icone" msgid "Highlight Icon" msgstr "Evidenzia icona" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" msgid "Explorer Extension Settings - TortoiseHg" msgstr "" msgid "Clear" msgstr "" msgid "Clear the current shelf file" msgstr "" msgid "Delete the current shelf file" msgstr "" msgid "Left Toolbar" msgstr "" msgid "Delete selected chunks" msgstr "" msgid "Move all files right" msgstr "" msgid "Move selected file right" msgstr "" msgid "Edit file" msgstr "" msgid "Move selected chunks right" msgstr "" msgid "Refresh Toolbar" msgstr "" msgid "Refresh" msgstr "Aggiorna" msgid "New Shelf" msgstr "" msgid "Right Toolbar" msgstr "" msgid "Move selected chunks left" msgstr "" msgid "Move selected file left" msgstr "" msgid "Move all files left" msgstr "" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "" msgid "Delete selected chunks from working copy?" msgstr "" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "" msgid "Are you sure?" msgstr "" msgid "TortoiseHg New Shelf Name" msgstr "" msgid "Specify name of new shelf" msgstr "" msgid "Bad filename" msgstr "" #, python-format msgid "A shelf name cannot contain %s" msgstr "" msgid "File already exists" msgstr "" msgid "A shelf file of that name already exists" msgstr "" msgid "New shelf created" msgstr "" #, python-format msgid "Delete shelf file %s?" msgstr "" msgid "Shelf deleted" msgstr "" msgid "Revert all working copy changes?" msgstr "" #, python-format msgid "Clear contents of shelf file %s?" msgstr "" msgid "Shelf cleared" msgstr "" #, python-format msgid "Shelf: %s" msgstr "" #, python-format msgid "Patch: %s" msgstr "" msgid "Key:" msgstr "" msgid "Local sign" msgstr "" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "" msgid "No commit" msgstr "" msgid "Use custom commit message:" msgstr "Usa messaggio di commit personalizzato" msgid "&Sign" msgstr "" #, python-format msgid "Sign - %s" msgstr "" msgid "Signature has been added" msgstr "" msgid "Repository command still running" msgstr "" msgid "Filter:" msgstr "" msgid "Check all files" msgstr "" msgid "Uncheck all files" msgstr "" msgid "Status File List Toolbar" msgstr "" msgid "Remove filter, show root" msgstr "Azzera filtro, mostra tutti i file" #, python-format msgid "%s - status (selection filtered)" msgstr "" #, python-format msgid "%s - status" msgstr "" msgid "Check" msgstr "" msgid "Uncheck" msgstr "" msgid "status" msgstr "stato file" msgid "Failed to refresh" msgstr "" msgid "No appropriate files" msgstr "Nessun file appropriato" msgid "No files found for this operation" msgstr "Nessun file trovato per questa operazione" msgid "Stat" msgstr "Stato" msgid "M" msgstr "" msgid "Filename" msgstr "Nome file" msgid "Size (KB)" msgstr "" #, python-format msgid "Checked count: %d" msgstr "" msgid ", resolved merge" msgstr "" msgid ", unresolved merge" msgstr "" #, python-format msgid "%s is modified" msgstr "" msgid "modified" msgstr "modificato" #, python-format msgid "%s is added" msgstr "" msgid "added" msgstr "aggiunto" #, python-format msgid "%s is removed" msgstr "" msgid "removed" msgstr "rimosso" #, python-format msgid "%s is not tracked (unknown)" msgstr "" msgid "unknown" msgstr "sconosciuto" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "" msgid "missing" msgstr "mancante" #, python-format msgid "%s is ignored" msgstr "" msgid "ignored" msgstr "ignorato" #, python-format msgid "%s is not modified (clean)" msgstr "" msgid "clean" msgstr "pulito" #, python-format msgid "%s is a dirty subrepo" msgstr "" msgid "subrepo" msgstr "" msgid "Check for incoming changes from selected URL" msgstr "" msgid "Pull incoming changes from selected URL" msgstr "" msgid "Detect outgoing changes to selected URL" msgstr "" msgid "Push outgoing changes to selected URL" msgstr "" msgid "Sync Bookmarks" msgstr "" msgid "Email outgoing changesets for remote repository" msgstr "" msgid "Manage pending perforce changelists" msgstr "" msgid "Unbundle" msgstr "" msgid "Selected Options:" msgstr "" msgid "Path Edit Toolbar" msgstr "" msgid "Security" msgstr "" msgid "Manage HTTPS connection security and user authentication" msgstr "" msgid "Save" msgstr "" msgid "Save current URL under an alias" msgstr "" msgid "Paths in Repository Settings:" msgstr "" msgid "Related Paths:" msgstr "" msgid "branch: " msgstr "Ramo: " msgid "bookmark: " msgstr "" #, python-format msgid "rev: %d (%s)" msgstr "" msgid "Post Pull: " msgstr "Dopo pull: " msgid "&Edit..." msgstr "" msgid "&Remove..." msgstr "" msgid "Repository not local" msgstr "" msgid "A terminal shell cannot be opened for remote" msgstr "" msgid "Confirm path delete" msgstr "" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "" msgid "Select repository" msgstr "" msgid "No host specified" msgstr "" msgid "Please set a valid URL to continue." msgstr "" msgid "No remote repository URL or path set" msgstr "" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

                                                          Please type and save a remote repository path on the " "Sync widget." msgstr "" msgid "Redundant authentication info" msgstr "" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" msgid "sync command already running" msgstr "" #, python-format msgid "Getting incoming changesets from %s..." msgstr "" #, python-format msgid "Found incoming changesets from %s" msgstr "" #, python-format msgid "No incoming changesets from %s" msgstr "" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "" #, python-format msgid "Pulling from %s..." msgstr "" #, python-format msgid "Pull from %s completed" msgstr "" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "" msgid "Merge caused file conflicts" msgstr "" msgid "File conflicts need to be resolved" msgstr "" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "" #, python-format msgid "%d outgoing changesets to %s" msgstr "" #, python-format msgid "No outgoing changesets to %s" msgstr "" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "" msgid "Perforce pending..." msgstr "" #, python-format msgid "%s (submitted)" msgstr "%s (inviato)" #, python-format msgid "%s (pending)" msgstr "%s (in attesa)" msgid "Unable to parse p4pending output" msgstr "Impossibile analizzare il risultato di p4pending" #, python-format msgid "%d pending changelists found" msgstr "trovate %d liste modifiche in sospeso" msgid "No pending Perforce changelists" msgstr "Nessuna lista modifiche in sospeso di Perforce" msgid "Aborted p4pending" msgstr "p4pending interrotto" msgid "Unable to determine pending changesets" msgstr "Impossibile determinale le liste modifiche in sospeso" msgid "Confirm Push to remote Repository" msgstr "Coferma push su repository remoto" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" "Eseguire il push verso il repository remoto\n" "%s\n" "?" #, python-format msgid "Push to %s aborted" msgstr "" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" #, python-format msgid "Pushing to %s..." msgstr "" #, python-format msgid "Push to %s completed" msgstr "" #, python-format msgid "Push to %s aborted, ret %d" msgstr "" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" msgid "Determining outgoing changesets to email..." msgstr "" msgid "No outgoing changesets" msgstr "Nessun changeset in uscita..." #, python-format msgid "Outgoing aborted, ret %d" msgstr "" msgid "Select bundle file" msgstr "" msgid "Bundle files (*.hg)" msgstr "" msgid "Unable to remove URL" msgstr "" msgid "Post Pull Behavior" msgstr "" msgid "Select post-pull operation for this repository" msgstr "" msgid "None - simply pull changesets" msgstr "" msgid "Update - pull, then try to update" msgstr "" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "" msgid "Rebase - rebase local commits above pulled changes" msgstr "" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "" msgid "Launch settings tool..." msgstr "" msgid "Unable to save post pull operation" msgstr "" msgid "Save Path" msgstr "" msgid "Alias" msgstr "Alias" msgid "URL" msgstr "URL" msgid "Remove authentication data from URL" msgstr "" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" msgid "Update subrepo paths" msgstr "" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" msgid "Unable to save an URL" msgstr "" msgid "Confirm URL replace" msgstr "" #, python-format msgid "%s already exists, replace URL?" msgstr "" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

                                                          %s

                                                          Replace it with the " "following URL?:

                                                          %s" msgstr "" msgid "Security: " msgstr "" #, python-format msgid "Host: %s" msgstr "" msgid "Secure HTTPS Connection" msgstr "" msgid "Verify with Certificate Authority certificates (best)" msgstr "" msgid "Verify with stored host fingerprint (good)" msgstr "" msgid "No host validation, but still encrypted (bad)" msgstr "" msgid "### host certificate fingerprint ###" msgstr "" msgid "Query" msgstr "" msgid "TLS 1.0" msgstr "" msgid "TLS 1.1" msgstr "" msgid "TLS 1.2" msgstr "" msgid "Minimum Protocol" msgstr "" msgid "User Authentication" msgstr "" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Key" msgstr "" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Chain" msgstr "" msgid "Certificate Query Error" msgstr "" msgid "Select User Certificate Key File" msgstr "" msgid "PEM files (*.pem *.key)" msgstr "" msgid "Select User Certificate Chain File" msgstr "" msgid "PEM files (*.pem *.crt *.cer)" msgstr "" msgid "Unable to save authentication" msgstr "" #, python-format msgid "%s - sync options" msgstr "" msgid "Allow push of a new branch (--new-branch)" msgstr "" msgid "Force push or pull (override safety checks, --force)" msgstr "" msgid "Temporarily disable configured HTTP proxy" msgstr "" msgid "Emit debugging output (--debug)" msgstr "" msgid "Work on patch queue (--mq)" msgstr "" #, python-format msgid "Tag - %s" msgstr "%s - Gestione etichette" msgid "Tag:" msgstr "Etichetta:" msgid "Tagged:" msgstr "" msgid "Local tag" msgstr "" msgid "Replace existing tag (-f/--force)" msgstr "" msgid "Use English commit message" msgstr "Usa messaggio di commit in inglese" msgid "local" msgstr "local" msgid "Move" msgstr "Sposta" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "" #, python-format msgid "Added tag %s for changeset %s" msgstr "Inserita l'etichetta %s per il changeset %s" #, python-format msgid "Tag '%s' has been moved" msgstr "" #, python-format msgid "Tag '%s' has been added" msgstr "" #, python-format msgid "Removed tag %s" msgstr "Rimossa l'etichetta %s" #, python-format msgid "Tag '%s' has been removed" msgstr "" msgid "Patch files (*.diff *.patch)" msgstr "" #, python-format msgid "Import - %s" msgstr "Importazione - %s" msgid "Browse Directory..." msgstr "Sfoglia directory ..." msgid "Import from Clipboard" msgstr "Importa dagli appunti" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "" msgid "Preview:" msgstr "Anteprima:" msgid "Shelf" msgstr "" msgid "Checking working directory status..." msgstr "" msgid "&Import" msgstr "" msgid "Working directory is not clean! View changes..." msgstr "" msgid "Select patches" msgstr "" msgid "Select Directory containing patches" msgstr "" #, python-format msgid "%s patches" msgstr "%s patch" #, python-format msgid "%s will be imported to " msgstr "" msgid "Nothing to import" msgstr "Non c'è nulla da importare" msgid "Strip:" msgstr "Elimina:" msgid "Discard local changes, no backup (-f/--force)" msgstr "Abbandona modifiche locali, nessun backup (-f/--force)" msgid "No backup (-n/--nobackup)" msgstr "Nessun backup (-n/--nobackup)" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "" msgstr[1] "" msgid "Unknown revision!" msgstr "Revisione sconosciuta!" msgid "Detected uncommitted local changes." msgstr "" msgid "Do you want to keep them or discard them?" msgstr "" msgid "&Keep (--keep)" msgstr "" msgid "&Discard (--force)" msgstr "" msgid "Confirm Strip" msgstr "Conferma eliminazione revisioni" #, python-format msgid "Strip - %s" msgstr "Elimina - %s" msgid "&Strip" msgstr "" msgid "Topic:" msgstr "" msgid "&Rename" msgstr "" #, python-format msgid "Topic - %s" msgstr "" #, python-format msgid "A topic named \"%s\" already exists" msgstr "" #, python-format msgid "Topic '%s' has been added" msgstr "" #, python-format msgid "Topic '%s' does not exist" msgstr "" #, python-format msgid "Topic '%s' has been removed" msgstr "" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "" msgid "Parent 1:" msgstr "Genitore 1:" msgid "Parent 2:" msgstr "Genitore 2:" msgid "Pull subrepos from:" msgstr "" msgid "List updated files (--verbose)" msgstr "" msgid "Discard local changes, no backup (-C/--clean)" msgstr "Abbandona modifiche locali, nessun backup (-C/--clean)" msgid "Always merge (when possible)" msgstr "Esegui sempre il merge (quando possibile)" msgid "(same as parent)" msgstr "(stessa del genitore)" msgid "Activate bookmark?" msgstr "" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

                                                          Do " "you want to activate it?
                                                          You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

                                                          Select " "the bookmark that you want to activate and click OK.

                                                          Click " "Cancel if you don't want to activate any of them.

                                                          You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                          " msgstr "" msgid "Deactivate current bookmark?" msgstr "" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" msgid "Discard - discard local changes, no backup" msgstr "Abbandona - abbandona le modifiche, nessun backup" msgid "&Shelve" msgstr "&Shelve" msgid "Shelve - move local changes to a patch" msgstr "" msgid "Merge - allow to merge with local changes" msgstr "Merge - permette il merge con le modifiche locali" msgid "Confirm Update" msgstr "Conferma aggiornamento" #, python-format msgid "Update - %s" msgstr "Aggiorna - %s" msgid "[non-existant]" msgstr "[non esistente]" msgid "Tool launch failure" msgstr "Avvio del tool fallito" #, python-format msgid "%s : %s" msgstr "%s : %s" msgid "No diff tool found" msgstr "Strumento di comparazione non trovato" msgid "No visual diff tools were detected" msgstr "Nessun strumento di comparazione visuale è stato trovato" msgid "[working copy]" msgstr "[copia di lavoro]" msgid "[original]" msgstr "[originale]" msgid "Unable to find changeset" msgstr "Impossibile trovare il changeset" msgid "You likely need to refresh this application" msgstr "Probabilmente devi aggiornare questa applicazione" msgid "No file changes" msgstr "Nessun file modificato" msgid "There are no file changes to view" msgstr "Non ci sono file modificati da vedere" msgid "working changes" msgstr "modifiche in corso" #, python-format msgid "changeset %d:%s" msgstr "" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "" msgid "Visual Diffs - " msgstr "Confronto visuale - " msgid " filtered" msgstr " filtrato" msgid "Temporary files are removed when this dialog is closed" msgstr "I file temporanei verranno rimossi alla chiusura di questa finestra" msgid "Select Tool:" msgstr "" msgid "Dir diff to p1" msgstr "Comparazione directory con p1" msgid "Dir diff to p2" msgstr "Comparazione directory con p2" msgid "3-way dir diff" msgstr "Comparazione directory a 3 vie" msgid "Directory diff" msgstr "Comparazione directory" msgid "Confirm Discard" msgstr "Conferma lo scarto" msgid "Discard outstanding changes to working directory?" msgstr "" msgid "Config files (*.conf *.config *.ini)" msgstr "" msgid "Open hgweb config" msgstr "" msgid "Save hgweb config" msgstr "" msgid "Path:" msgstr "" msgid "Local Path:" msgstr "" msgid "Select Repository" msgstr "Seleziona repository" msgid "Add Path to Serve" msgstr "" msgid "Edit Path to Serve" msgstr "" msgid "Local Path" msgstr "" msgid "Webconf" msgstr "" msgid "Config File:" msgstr "" msgid "Open" msgstr "" msgid "New &Workbench" msgstr "" msgid "&New Repository..." msgstr "" msgid "Clon&e Repository..." msgstr "" msgid "&Open Repository..." msgstr "" msgid "&File" msgstr "" msgid "&View" msgstr "" msgid "&Repository" msgstr "" msgid "&Help" msgstr "" msgid "&Dock Toolbar" msgstr "" msgid "&Task Toolbar" msgstr "" msgid "&Custom Toolbar" msgstr "" msgid "S&ync Toolbar" msgstr "" msgid "&Close Repository" msgstr "" msgid "Sh&ow Repository Registry" msgstr "" msgid "Show &Patch Queue" msgstr "" msgid "Show Conso&le" msgstr "" msgid "Place Console in Doc&k Area" msgstr "" msgid "R&epository Registry Options" msgstr "" msgid "Save Open Repositories on E&xit" msgstr "" msgid "Sa&ve Current Sync Paths on Exit" msgstr "" msgid "Show Tas&k Tab" msgstr "" msgid "&Commit" msgstr "" msgid "&Patch Branch" msgstr "" msgid "Revision &Details" msgstr "" msgid "&Search" msgstr "" msgid "S&ynchronize" msgstr "" msgid "Refresh current repository" msgstr "" msgid "Refresh &Task Tab" msgstr "" msgid "Refresh only the current task tab" msgstr "" msgid "Load &All Revisions" msgstr "" msgid "Load all revisions into graph" msgstr "" msgid "Go to current revision" msgstr "" msgid "&Goto Revision..." msgstr "" msgid "Go to a specific revision" msgstr "" msgid "Filter graph with revision sets or branches" msgstr "" msgid "&Workbench Toolbars" msgstr "" msgid "&Lock File..." msgstr "" msgid "Lock or unlock files" msgstr "" msgid "Update working directory or switch revisions" msgstr "" msgid "&Shelve..." msgstr "" msgid "&Import Patches..." msgstr "" msgid "U&nbundle..." msgstr "" msgid "&Merge..." msgstr "" msgid "Merge with the other head of the current branch" msgstr "" msgid "&Resolve..." msgstr "" msgid "R&ollback/Undo..." msgstr "" msgid "&Purge..." msgstr "" msgid "&Bisect..." msgstr "" msgid "&Verify" msgstr "" msgid "Re&cover" msgstr "" msgid "&Web Server" msgstr "" msgid "E&xplorer Help" msgstr "" msgid "&Readme" msgstr "" msgid "About &Qt" msgstr "" msgid "&About TortoiseHg" msgstr "" msgid "&Incoming" msgstr "" msgid "&Pull" msgstr "" msgid "&Outgoing" msgstr "" msgid "P&ush" msgstr "" msgid "&Sync Bookmarks..." msgstr "" #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" msgid "Check for incoming changes" msgstr "" msgid "Pull incoming changes" msgstr "" msgid "Detect outgoing changes" msgstr "" msgid "Push outgoing changes" msgstr "" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" #, python-format msgid "Execute custom tool '%s'" msgstr "" msgid "Custom Toolbar &Settings" msgstr "" msgid "TortoiseHg Workbench" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "" msgid "Goto revision" msgstr "" msgid "Enter revision identifier" msgstr "" msgid "Select repository directory to open" msgstr "" msgid "README not configured" msgstr "" msgid "" "A README file is not configured for the current repository.

                                                          To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" msgid "Issue Tracker Plugin Error" msgstr "" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "" msgid "This error will not be shown again until you restart the workbench" msgstr "" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "" msgid "Error executing \"commit finished\" trigger" msgstr "" msgid "Cannot open Plugin Options dialog" msgstr "" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "" msgid "[--insecure] [SOURCE]" msgstr "" #, python-format msgid "unsupported URL: %s" msgstr "" #, python-format msgid "%s certificate error: no certificate received" msgstr "" msgid "move after the specified patch" msgstr "" msgid "[--after PATCH] PATCH..." msgstr "" msgid "unknown patch to move specified" msgstr "" msgid "invalid patch position specified" msgstr "" msgid "cannot move applied patches" msgstr "" #, python-format msgid "patch %s not in series" msgstr "" msgid "cannot move into applied patches" msgstr "" msgid "abort: " msgstr "interrotto: " msgid "hint: " msgstr "" #, python-format msgid "HTTP Error: %d (%s)" msgstr "" #, python-format msgid "URLError: %s" msgstr "" msgid "SSL: Server certificate verify failed" msgstr "SSL: Verifica del certificato server fallita" #, python-format msgid "SSL: unknown error %s:%s" msgstr "SSL: errore sconosciuto %s:%s" #, python-format msgid "SSL error: %s" msgstr "errore SSL: %s" msgid "hgsubversion packaged with thg" msgstr "" msgid "hggit packaged with thg" msgstr "" msgid "inotify is not supported on this platform" msgstr "" msgid "eol is incompatible with win32text" msgstr "" msgid "win32text is incompatible with eol" msgstr "" msgid "hgsubversion is incompatible with perfarce" msgstr "" msgid "perfarce is incompatible with hgsubversion" msgstr "" msgid "Workbench custom toolbar" msgstr "" msgid "Revision details context menu" msgstr "" msgid "Pair selection context menu" msgstr "" msgid "Multiple selection context menu" msgstr "" msgid "Commit context menu" msgstr "" msgid "File context menu (on manifest and revision details)" msgstr "" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "%d giorno" msgstr[1] "%d giorni" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" msgid "in the future" msgstr "" msgid "now" msgstr "ora" #, python-format msgid "command parse error: %s" msgstr "" #, python-format msgid "no matches found: %s" msgstr "nessuna corrispondenza trovata: %s" msgid "Commit..." msgstr "Commit..." msgid "Commit changes in repository" msgstr "Commit delle modifiche nel repository" msgid "Create Repository Here" msgstr "Crea qui un repository" msgid "Create a new repository" msgstr "Crea un nuovo repository" msgid "Clone..." msgstr "Clona..." msgid "Create clone here from source" msgstr "Crea un clone qui da un percorso sorgente" msgid "File Status" msgstr "Stato file" msgid "Repository status & changes" msgstr "Mostra lo stato e le modifiche dei file" msgid "Add Files..." msgstr "Aggiungi file..." msgid "Add files to version control" msgstr "Aggiunge file al repository" msgid "Revert Files..." msgstr "Ripristina file..." msgid "Revert file changes" msgstr "Ripristina le modifiche ai file" msgid "Forget Files..." msgstr "Dimentica file..." msgid "Remove files from version control" msgstr "Rimuove file dal repository" msgid "Remove Files..." msgstr "Rimuove file..." msgid "Rename File" msgstr "Rinomina file" msgid "Rename file or directory" msgstr "Rinomina file o directory" msgid "View change history in repository" msgstr "Visualizza la storia delle modifiche" msgid "File History" msgstr "Cronologia file" msgid "View change history of selected files" msgstr "Mostra la cronologia modifiche dei file selezionati" msgid "Shelve Changes" msgstr "" msgid "Move changes between working dir and patch" msgstr "" msgid "Synchronize" msgstr "Sincronizza" msgid "Synchronize with remote repository" msgstr "Sincronizza con un repository remoto" msgid "Start web server for this repository" msgstr "Avvia il web server su questo repository" msgid "Update..." msgstr "Aggiorna..." msgid "Update working directory" msgstr "Aggiorna alla revisione specificata" msgid "Update Icons" msgstr "Aggiorna icone" msgid "Update icons for this repository" msgstr "Aggiorna icone per questo repository" msgid "Global Settings" msgstr "Impostazioni globali" msgid "Configure user wide settings" msgstr "Impostazioni globali utente" msgid "Repository Settings" msgstr "Impostazioni repository" msgid "Configure repository settings" msgstr "Impostazioni specifiche del repository" msgid "Explorer Extension Settings" msgstr "Impostazioni estensione Explorer" msgid "Configure Explorer extension" msgstr "Configurazione estensione Explorer" msgid "About TortoiseHg" msgstr "Informazioni su TortoiseHg" msgid "Show About Dialog" msgstr "Mostra finestra di informazioni" msgid "Diff to parent" msgstr "Differenze rispetto al genitore" msgid "View changes using GUI diff tool" msgstr "Mostra le modifiche usando un tool di comparazione grafico" msgid "Edit Ignore Filter" msgstr "Edita filtro file da ignorare" msgid "Edit repository ignore filter" msgstr "Edita il filtro dei file da ignorare specifico del repository" msgid "Guess Renames" msgstr "Scopri rinomine" msgid "Detect renames and copies" msgstr "Scopre le rinomine e le copie" msgid "Search History" msgstr "Ricerca nel repository" msgid "Search file revisions for patterns" msgstr "Cerca del testo nelle revisioni dei file" msgid "DnD Synchronize" msgstr "Sincronizzazione Drag and Drop" msgid "Synchronize with dragged repository" msgstr "Sincronizza con il repository trascinato" #, python-format msgid "unrecognized response: %s" msgstr "" msgid "password: " msgstr "password: " #, python-format msgid "repository %s not found" msgstr "repository %s non trovato" msgid "win32ill: cannot create window for messages" msgstr "" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "" msgid "win32ill: interrupted while stopping message loop\n" msgstr "" #~ msgid "_Undo" #~ msgstr "_Annulla" #~ msgid "_Remove" #~ msgstr "_Rimuovi" #~ msgid "_Add" #~ msgstr "_Aggiungi" #~ msgid "Save File" #~ msgstr "Salva file" #~ msgid "Filters" #~ msgstr "Filtri" #~ msgid "_Filter" #~ msgstr "_Filtro" #~ msgid "Custom Filter" #~ msgstr "Filtro personalizzato" #~ msgid "Apply" #~ msgstr "Applica" #~ msgid "Configure" #~ msgstr "Configura" #~ msgid "Save As" #~ msgstr "Salva con nome" #~ msgid "Advanced Options" #~ msgstr "Opzioni avanzate" #~ msgid "Unable to create new repository" #~ msgstr "Impossibile creare un nuovo repository" #~ msgid "Error when creating repository" #~ msgstr "Errore durante la creazione repository" #~ msgid "No repository selected" #~ msgstr "Nessun repository selezionato" #~ msgid "No Repository Found" #~ msgstr "Nessun repository trovato" #~ msgid "Backout" #~ msgstr "Backout" #~ msgid "_Commit" #~ msgstr "_Commit" #~ msgid "Unable to create " #~ msgstr "Impossibile creare " #~ msgid "Save commit message at exit?" #~ msgstr "Salva i messaggi di commit all'uscita?" #~ msgid "Errors during rollback!" #~ msgstr "Errori durante il rollback!" #~ msgid "applying patch\n" #~ msgstr "sto applicando il patch\n" #~ msgid "backup %r as %r\n" #~ msgstr "backup %r come %r\n" #~ msgid "restoring %r to %r\n" #~ msgstr "sto ripristinando %r in %r\n" #~ msgid "New Search" #~ msgstr "Nuova ricerca" #~ msgid "Show line numbers" #~ msgstr "Mostra numeri di linea" #~ msgid "You must provide a search expression" #~ msgstr "Devi fornire una espressione di ricerca" #~ msgid "Search \"%s\"" #~ msgstr "Ricerca \"%s\"" #~ msgid "Show all matching revisions" #~ msgstr "Mostra tutte le revisioni corrispondenti" #~ msgid "Search %d" #~ msgstr "Ricerca %d" #~ msgid " Messages and Errors" #~ msgstr " Messaggi ed errori" #~ msgid "Differences from Source to Dest" #~ msgstr "Differenze tra sorgente e destinazione" #~ msgid "" #~ "\n" #~ "[command interrupted]" #~ msgstr "" #~ "\n" #~ "[comando interrotto]" #~ msgid "You must specify a sender address" #~ msgstr "Devi specificare l'indirizzo del mittente" #~ msgid "You must specify a recipient" #~ msgstr "Devi specificare un destinatario" #~ msgid "You must configure SMTP" #~ msgstr "Devi configurare l'SMTP" #~ msgid "Glob:" #~ msgstr "Glob:" #~ msgid "Add special files (.hgignore, ...)" #~ msgstr "Aggiungi file speciali (.hgignore, ...)" #~ msgid "this is a binary file\n" #~ msgstr "questo è un file binario\n" #~ msgid " and " #~ msgstr " e " #~ msgid "restoring backup files\n" #~ msgstr "sto ripristinando i file di backup\n" #~ msgid "hgtk: unknown command '%s'\n" #~ msgstr "hgtk: comando sconosciuto '%s'\n" #~ msgid "hgtk: %s\n" #~ msgstr "hgtk: %s\n" #~ msgid "" #~ "hgtk: command '%s' is ambiguous:\n" #~ " %s\n" #~ msgstr "" #~ "hgtk: il comando '%s' è ambiguo:\n" #~ " %s\n" #~ msgid "hgtk %s: %s\n" #~ msgstr "hgtk %s: %s\n" #~ msgid "[-o] CMD" #~ msgstr "[-o] CMD" #~ msgid "Tip" #~ msgstr "Tip" #~ msgid "[command interrupted]" #~ msgstr "[comando interrotto]" #~ msgid "HTTP Port:" #~ msgstr "Porta HTTP:" #~ msgid "Configure web settings" #~ msgstr "Configura le opzioni web" #~ msgid "Browse" #~ msgstr "Naviga" #~ msgid "Start server" #~ msgstr "Avvia server" #~ msgid "Stop server" #~ msgstr "Ferma server" #~ msgid "run server in background" #~ msgstr "avvia server in background" #~ msgid "listening at http://%s%s/%s (%s:%d)\n" #~ msgstr "in ascolto su http://%s%s/%s (%s:%d)\n" #~ msgid "cannot start server: " #~ msgstr "impossibile avviare il server: " #~ msgid "path" #~ msgstr "percorso" #~ msgid "Copy file to" #~ msgstr "Copia file in" #~ msgid "Rename file to:" #~ msgstr "Rinomina file in:" #~ msgid "Push" #~ msgstr "Push" #~ msgid " Pull " #~ msgstr " Pull " #~ msgid "Bundle:" #~ msgstr "Bundle:" #~ msgid "Force pull or push" #~ msgstr "Forza il pull o il push" #~ msgid "Bundle (*.hg)" #~ msgstr "Bundle (*.hg)" #~ msgid "Bundle (*)" #~ msgstr "Bundle (*)" #~ msgid "_Edit" #~ msgstr "_Modifica" #~ msgid "Repository Path" #~ msgstr "Percorso repository" #~ msgid "History" #~ msgstr "Storia" #~ msgid "Shelve" #~ msgstr "Shelve" #~ msgid "Unshelve" #~ msgstr "Unshelve" #~ msgid "changeset " #~ msgstr "changeset " #~ msgid "Source path is empty" #~ msgstr "Percorso sorgente non specificato" #~ msgid " Aborted" #~ msgstr " Interrotto" #~ msgid "Invalid path" #~ msgstr "Percorso non valido" #~ msgid "Envelope" #~ msgstr "Indirizzi" #~ msgid "Make repo compatible with Mercurial 1.0" #~ msgstr "Crea il repository compatibile con Mercurial 1.0" #~ msgid "Please enter the directory path" #~ msgstr "Si prega di inserire il percorso della directory" #~ msgid "Destination path is empty" #~ msgstr "Percorso destinazione non specificato" #~ msgid "unknown patch content: %r" #~ msgstr "contenuto della patch sconosciuto: %r" #~ msgid "" #~ "== %s and %s have identical contents ==\n" #~ "\n" #~ msgstr "" #~ "== %s e %s hanno lo stesso contenuto ==\n" #~ "\n" #~ msgid "" #~ "use \"hgtk help\" for the full list of commands or \"hgtk -v\" for details" #~ msgstr "" #~ "usa \"hgtk help\" per la lista completa dei comandi o \"hgtk -v\" per i " #~ "dettagli" #~ msgid "Backout commit message" #~ msgstr "Messaggio di commit per il backout" #~ msgid "Configure email settings" #~ msgstr "Configura email" #~ msgid "Patch Series (Bundle) Description" #~ msgstr "Descrizione dell'insieme di patch (Bundle)" #~ msgid "unhandled transition: %s -> %s" #~ msgstr "transizione non gestita: %s -> %s" #~ msgid "use \"hgtk help\" for the full list of commands" #~ msgstr "usa \"hgtk help\" per la lista completa dei comandi" #~ msgid "use \"hgtk -v help %s\" to show global options" #~ msgstr "usa \"hgtk -v help %s\" per vedere le opzioni globali" #~ msgid "use \"hgtk -v help%s\" to show aliases and global options" #~ msgstr "usa \"hgtk -v help %s\" per vedere gli alias e le opzioni globali" #~ msgid "hgtk about" #~ msgstr "hgtk about" #~ msgid "Hgtk - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" #~ msgstr "Hgtk - TortoiseHg's GUI tool per Mercurial SCM (Hg)\n" #~ msgid "hgtk datamine" #~ msgstr "hgtk datamine" #~ msgid "hgtk add [FILE]..." #~ msgstr "hgtk add [FILE]..." #~ msgid "hgtk clone SOURCE [DEST]" #~ msgstr "hgtk clone SORGENTE [DESTINAZIONE]" #~ msgid "hgtk hgignore [FILE]" #~ msgstr "hgtk hgignore [FILE]" #~ msgid "hgtk commit [OPTIONS] [FILE]..." #~ msgstr "hgtk commit [OPZIONI] [FILE]..." #~ msgid "hgtk log [OPTIONS] [FILE]" #~ msgstr "hgtk log [OPZIONI] [FILE]" #~ msgid "hgtk init [DEST]" #~ msgstr "hgtk init [DESTINAZIONE]" #~ msgid "hgtk repoconfig" #~ msgstr "hgtk repoconfig" #~ msgid "hgtk guess" #~ msgstr "hgtk guess" #~ msgid "hgtk status [FILE]..." #~ msgstr "hgtk status [FILE]..." #~ msgid "hgtk userconfig" #~ msgstr "hgtk userconfig" #~ msgid "hgtk remove [FILE]..." #~ msgstr "hgtk remove [FILE]..." #~ msgid "hgtk rename SOURCE [DEST]" #~ msgstr "hgtk rename SORGENTE [DESTINAZIONE]" #~ msgid "hgtk recovery" #~ msgstr "hgtk recovery" #~ msgid "hgtk merge" #~ msgstr "hgtk merge" #~ msgid "hgtk synch" #~ msgstr "hgtk synch" #~ msgid "hgtk shelve" #~ msgstr "hgtk shelve" #~ msgid "hgtk serve [OPTION]..." #~ msgstr "hgtk serve [OPZIONI]..." #~ msgid "hgtk revert [FILE]..." #~ msgstr "hgtk revert [FILE]..." #~ msgid "hgtk version [OPTION]" #~ msgstr "hgtk version [OPZIONI]" #~ msgid "hgtk help [COMMAND]" #~ msgstr "hgtk help [COMANDO]" #~ msgid "Write bundle to" #~ msgstr "Scrivi bundle in" #~ msgid "Save patch to" #~ msgstr "Scrivi patch in" #~ msgid "Stop the hg operation" #~ msgstr "Arresta l'operazione hg" #~ msgid "Launch browser to view repository" #~ msgstr "Avvia il browser sul repository" #~ msgid "Cannot run now" #~ msgstr "Impossibile eseguire ora" #~ msgid "" #~ "Server process is still running\n" #~ "Exiting will stop the server." #~ msgstr "" #~ "Il server sta girando\n" #~ "L'uscita fermerà il server." #~ msgid "Invalid port 2048..65535" #~ msgstr "Numero porta non valido 2048..65535" #~ msgid "port to use (default: 8000)" #~ msgstr "numero porta (default: 8000)" #~ msgid "SSL certificate file" #~ msgstr "file di certificato SSL" #~ msgid "hg serve [OPTION]..." #~ msgstr "hg serve [OPZIONI]..." #~ msgid "name to show in web pages (default: working dir)" #~ msgstr "nome da mostrare sulle pagine web (default: directory di lavoro)" #~ msgid "%d selected, %d total" #~ msgstr "%d selezionati, %d totale" #~ msgid "Custom commit message is empty" #~ msgstr "Messaggio di commit personalizzato non specificato" #~ msgid "Character encoding name" #~ msgstr "Nome codifica caratteri" #~ msgid "Connect to mail server using TLS. Default: False" #~ msgstr "Connetti al server mail usando TLS. Default: Falso" #~ msgid "Enable overlays" #~ msgstr "Abilita icone di overlay" #~ msgid "_Test" #~ msgstr "_Test" #~ msgid "Start this search" #~ msgstr "Avvia questa ricerca" #~ msgid "hg shelve [OPTION]... [FILE]..." #~ msgstr "hg shelve [OPZIONI]... [FILE]..." #~ msgid "hg unshelve [OPTION]... [FILE]..." #~ msgstr "hg unshelve [OPZIONI]... [FILE]..." #~ msgid "show the command options" #~ msgstr "mostra le opzioni del comando" #~ msgid "Invalid date specification" #~ msgstr "Formato data non valido" #~ msgid "" #~ "Unable to undo!\n" #~ "\n" #~ "Tip revision differs from last commit." #~ msgstr "" #~ "Impossibile annullare!\n" #~ "\n" #~ "La revisione tip differisce dall'ultimo commit." #~ msgid "Nothing Commited" #~ msgstr "Commit non eseguito" #~ msgid "No regular expression given" #~ msgstr "Nessuna espressione regolare specificata" #~ msgid "Commit: Invalid username" #~ msgstr "Commit: nome utente non valido" #~ msgid "" #~ "Your username has not been configured.\n" #~ "\n" #~ "Please configure your username and try again" #~ msgstr "" #~ "Nome utente non ancora configurato.\n" #~ "\n" #~ "Si prega di configurare il nome utente e riprovare" #~ msgid "limit number of changes displayed" #~ msgstr "limita il numero di modifiche mostrate" #~ msgid "Cannot close now" #~ msgstr "Impossibile chiudere ora" #~ msgid "name of file to write process ID to" #~ msgstr "nome del file dove scrivere l'ID del processo" #~ msgid "address to use" #~ msgstr "indirizzo da usare" #~ msgid "web templates to use" #~ msgstr "template web da usare" #~ msgid "template style to use" #~ msgstr "template di stile da usare" #~ msgid "use IPv6 in addition to IPv4" #~ msgstr "usa IPv6 in aggiunta a IPv4" #~ msgid "Save selected changes" #~ msgstr "Salva modifiche selezionate" #~ msgid "No addable files selected" #~ msgstr "Nessun file selezionato da aggiungere" #~ msgid "No removable files selected" #~ msgstr "Nessun file selezionato da rimuovere" #~ msgid "Name of hg executable on remote machine." #~ msgstr "Nome dell'eseguibile hg nella macchina remota." #~ msgid "unknown sort key '%s'" #~ msgstr "chiave di ordinamento sconosciuta '%s'" #~ msgid "" #~ "Repository name to use in the web interface. Default is the working " #~ "directory." #~ msgstr "" #~ "Nome del repository da usare nell'interfaccia web. Di default coincide " #~ "con il nome della directory di lavoro." #~ msgid "Remote repository paths" #~ msgstr "Percorso repository remoto" #~ msgid "No repository found here" #~ msgstr "Nessun repository trovato qui" #~ msgid "name of error log file to write to" #~ msgstr "nome del file di log degli errori" #~ msgid "used internally by daemon mode" #~ msgstr "usato internamente dalla modalità demone" #~ msgid "Cannot move outside repo!" #~ msgstr "Impossibile spostare fuori dal repository!" #~ msgid "Name associated with commits" #~ msgstr "Nome associato ai commit" #~ msgid "Maximum number of files to list per changeset." #~ msgstr "Numero massimo di file da mostrare per changeset" #~ msgid "Reload revision history" #~ msgstr "Aggiorna la storia delle revisioni" #~ msgid "Rollback (undo) last transaction to repository (pull, commit, etc)" #~ msgstr "" #~ "Rollback (annulla) l'ultima operazione sul repository (pull, commit, ecc.)" #~ msgid "for remote clients" #~ msgstr "per i client remoti" #~ msgid "name of access log file to write to" #~ msgstr "nome del file di log accessi" #~ msgid "Validate repository consistency" #~ msgstr "Convalida la consistenza del repository" #~ msgid "Bottom Diffs" #~ msgstr "Differenze in basso" #~ msgid "edit failed" #~ msgstr "editazione fallita" #~ msgid "Cannot merge" #~ msgstr "Impossibile eseguire il merge" #~ msgid "" #~ "Revert all files to revision %d?\n" #~ "This will overwrite your local changes" #~ msgstr "" #~ "Ripristina tutti i file alla revisione %d?\n" #~ "Le modifiche locali verranno sovrascritte" #~ msgid "st" #~ msgstr "st" #~ msgid "Run even when remote repository is unrelated." #~ msgstr "Esegui anche se il repository remoto non ha alcuna relazione" #~ msgid "Remove is not enabled when multiple revisions are specified." #~ msgstr "" #~ "La cancellazione non è abilitata quando più revisioni sono specificate." #~ msgid "Nothing Moved" #~ msgstr "Spostamento non eseguito" #~ msgid "Nothing Copied" #~ msgstr "Copia non eseguita" #~ msgid "Copy is not enabled when multiple revisions are specified." #~ msgstr "La copia non è abilitata quando più revisioni sono specificate." #~ msgid "Move is not enabled when multiple revisions are specified." #~ msgstr "" #~ "Lo spostamento non è abilitato quando più revisioni sono specificate." #~ msgid "Info required" #~ msgstr "Informazioni insufficienti" #~ msgid "Nothing Removed" #~ msgstr "Rimozione non eseguita" #~ msgid "Nothing Added" #~ msgstr "Inserimento file non eseguito" #~ msgid "Fetch" #~ msgstr "Fetch" #~ msgid "Diff" #~ msgstr "Confronto" #~ msgid "Unable to annotate " #~ msgstr "Impossibile eseguire l'annotazione " #~ msgid "Accept Match" #~ msgstr "Accetta corrispondenza" #~ msgid "Candidate Matches" #~ msgstr "Corrispondenze candidate" #~ msgid "Email Mercurial Patches" #~ msgstr "Invia email delle patch Mercurial" #~ msgid "response expected" #~ msgstr "risposta attesa" #~ msgid "Recover from interrupted operation" #~ msgstr "Ripristino da un operazione interrotta" #~ msgid "Path testing cannot work without a repository" #~ msgstr "Il test del percorso non può lavorare senza un repository" #~ msgid "File is unrevisioned" #~ msgstr "Il file non è revisionato" #~ msgid "Matches" #~ msgstr "Corrispondenze" #~ msgid "rename error" #~ msgstr "errore nella rinomina" #~ msgid "Pull changes from selected repository" #~ msgstr "Esegue il pull delle modifiche dal repository selezionato" #~ msgid "Push local changes to selected repository" #~ msgstr "Esegue il push delle modifiche locali sul repository selezionato" #~ msgid "Find Copies" #~ msgstr "Ricerca copie" #~ msgid "Display changes that can be pulled from selected repository" #~ msgstr "" #~ "Mostra le modifiche che arriveranno dopo un pull dal repository " #~ "selezionato" #~ msgid "Edit remote repository path" #~ msgstr "Edita percorso repository remoto" #~ msgid "ms" #~ msgstr "ms" #~ msgid "A specific revision up to which you would like to push or pull." #~ msgstr "" #~ "Una specifica revisione fino alla quale verrà eseguito il push o il pull." #~ msgid "prefix path to serve from (default: server root)" #~ msgstr "prefisso del percorso da cui servire (default: radice del server)" #~ msgid "Re_fresh" #~ msgstr "A_ggiorna" #~ msgid "Minimum Simularity Percentage" #~ msgstr "Percentuale minima di similitudine" #~ msgid "Specify the visual editor used to view files, etc" #~ msgstr "Specifica l'editor da usare per vedere i file, ecc." #~ msgid "Several icons are courtesy of the TortoiseSVN project" #~ msgstr "" #~ "Alcune icone sono state cortesemente concesse dal progetto TortoiseSVN" #~ msgid "" #~ "Comma separated list of exclusion patterns. Exclusion patterns are " #~ "applied after inclusion patterns." #~ msgstr "" #~ "Elenco separato da virgola di pattern di esclusione. I pattern di " #~ "esclusione sono applicati dopo i pattern di inclusione." #~ msgid "" #~ "Comma separated list of inclusion patterns. By default, the entire " #~ "repository is searched." #~ msgstr "" #~ "Elenco separato da virgola di pattern di inclusione. Di default, l'intero " #~ "repository viene analizzato." #~ msgid "Email local outgoing changes to one or more recipients" #~ msgstr "Invia una email delle modifiche in uscita a uno o più destinatari" #~ msgid "making snapshot of %d files from rev %s\n" #~ msgstr "sto creando un'istantanea di %d file dalla revisione %s\n" #~ msgid "Suggested" #~ msgstr "Suggerito" #~ msgid "Re_vert" #~ msgstr "Ripristina" #~ msgid "Nothing Reverted" #~ msgstr "Ripristino non eseguito" #~ msgid "Revert not allowed when viewing revision range." #~ msgstr "" #~ "Il ripristino non è permesso durante la visualizzazione di un intervallo " #~ "di revisioni." #~ msgid "No revertable files selected" #~ msgstr "Nessun file selezionato da ripristinare" #~ msgid "Clean checkout, undo all changes" #~ msgstr "Checkout pulito, annulla tutte le modifiche" #~ msgid "this modifies a binary file (all or nothing)\n" #~ msgstr "questo modifica un file binario (tutto o niente)\n" #~ msgid "Email outgoing changes" #~ msgstr "Invia email delle modifiche in uscita" #~ msgid "Incoming" #~ msgstr "In entrata" #~ msgid "" #~ "total: %d hunks (%d changed lines); selected: %d hunks (%d changed lines)" #~ msgstr "" #~ "totale: %d modifiche (%d linee modificate); selezionate: %d modifiche (%d " #~ "linee modificate)" #~ msgid "%d hunks, %d lines changed\n" #~ msgstr "%d modifiche, %d linee modificate\n" #~ msgid "Defaulting to " #~ msgstr "Verrà usata " #~ msgid "" #~ "No movable files selected\n" #~ "\n" #~ "Note: only clean files can be moved." #~ msgstr "" #~ "Nessun file spostabile selezionato\n" #~ "\n" #~ "Nota: solo i file puliti possono essere spostati" #~ msgid "applying shelved patch\n" #~ msgstr "applicazione della patch salvata nei dati di shelve\n" #~ msgid "removing shelve file\n" #~ msgstr "rimozione del file di shelve\n" #~ msgid "saving patch to shelve\n" #~ msgstr "sto salvando il patch sui dati di shelve\n" #~ msgid "shelve data already exists" #~ msgstr "i dati di shelve esistono già" #~ msgid "shelve can only be run interactively" #~ msgstr "shelve può funzionare solo in modo interattivo" #~ msgid "no changes to shelve\n" #~ msgstr "nessun modifica su cui eseguire lo shelve\n" #~ msgid "removing shelved patches\n" #~ msgstr "rimozione delle patch salvate nei dati di shelve\n" #~ msgid "append to existing shelve data" #~ msgstr "aggiunta ai dati di shelve esistenti" #~ msgid "overwrite existing shelve data" #~ msgstr "sovrascrivere i dati di shelve esistenti" #~ msgid "mark new/missing files as added/removed before shelving" #~ msgstr "" #~ "segna i file nuovi/mancanti come aggiunti/rimossi prima di eseguire lo " #~ "shelve" #~ msgid "shelve changes to %s?" #~ msgstr "esegui lo shelve delle modifiche in %s?" #~ msgid "shelve this change to %r?" #~ msgstr "esegui lo shelve di questa modifica %r?" #~ msgid "user quit" #~ msgstr "uscita utente" #~ msgid " [Ynsfdaq?] " #~ msgstr " [Ynsfdaq?] " #~ msgid "inspect shelved changes only" #~ msgstr "controlla solo le modifiche salvate nei dati di shelve" #~ msgid "nothing to unshelve\n" #~ msgstr "nessun dato di shelve da annullare\n" #~ msgid "unshelve completed\n" #~ msgstr "annullamento shelve completato\n" #~ msgid "Select a peer repository to compare with" #~ msgstr "Seleziona un repository remoto da confrontare" #~ msgid "Configure peer repository paths" #~ msgstr "Configurazione percorsi repository remoti" #~ msgid "proceed even if patches do not unshelve cleanly" #~ msgstr "procedi anche se le patch non annullato lo shelve in modo pulito" #~ msgid "Stop operation on current tab" #~ msgstr "Interrompe l'operazione nella scheda attiva" #~ msgid "Open new search tab" #~ msgstr "Apre una nuova scheda di ricerca" #~ msgid "Ignore changes in the amount of white space. Default: False" #~ msgstr "" #~ "Ignora le differenze nella quantità di spazi bianchi. Default: Falso" #~ msgid "Ignore changes whose lines are all blank. Default: False" #~ msgstr "Ignora le modifiche le cui linee sono vuote. Default: Falso" #~ msgid "Revert %s to contents at revision %d?" #~ msgstr "Ripristina %s con il contenuto alla revisione %d?" #~ msgid "Paste _Filenames" #~ msgstr "Incolla nomi _file" #~ msgid "" #~ "The following lines are over the %i-character limit: %s.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "Le seguenti linee sono oltre il limite di %i caratteri: %s.\n" #~ "\n" #~ "Ignora le regole del formato e continua con il commit?" #~ msgid "Message format configuration error" #~ msgstr "Errore nella configurazione del formato del messaggio" #~ msgid "App_ly Format" #~ msgstr "App_lica il formato" #~ msgid "Message format needs to be configured" #~ msgstr "Il formato del messaggio deve essere configurato" #~ msgid "revisions to compare" #~ msgstr "revisioni da comparare" #~ msgid "Message Line Length" #~ msgstr "Lunghezza linea messaggio" #~ msgid "No committable files selected" #~ msgstr "Nessun file selezionato" #~ msgid "Unknown Files" #~ msgstr "File non riconosciuti" #~ msgid "" #~ "Color changesets by author name. If not enabled, the changes are colored " #~ "green for merge, red for non-trivial parents, black for normal. Default: " #~ "False" #~ msgstr "" #~ "Colora i changesets in base al nome autore. Se non abilitato, i changeset " #~ "sono verde per le fusioni, rosso per i non semplici genitori, nero per i " #~ "normali. Default: Falso" #~ msgid "" #~ "Show the diff panel below the file list in status, shelve, and commit " #~ "dialogs. Default: False (show diffs to right of file list)" #~ msgstr "" #~ "Mostra il pannello delle differenze sotto la lista dei file nelle " #~ "finestre di dialogo di stato, shelve e commit. Default: Falso (a destra " #~ "della lista file)" #~ msgid "Ignore white space when comparing lines. Default: False" #~ msgstr "" #~ "Ignora gli spazi bianchi durante il confronto delle linee. Default: Falso" #~ msgid "refresh" #~ msgstr "Aggiorna la visualizzazione" #~ msgid "Remove Selected" #~ msgstr "Rimuovi" #~ msgid "Outgoing" #~ msgstr "In uscita" #~ msgid "Incoming/Outgoing" #~ msgstr "In entrata/In uscita" #~ msgid "Select Bundle" #~ msgstr "Seleziona bundle" #~ msgid "Display local changes that will be pushed to selected repository" #~ msgstr "" #~ "Mostra le modifiche locali che verranno inviate al repository selezionato" #~ msgid "Nothing" #~ msgstr "Nessuna" #~ msgid "TortoiseHg Configure User-Global Settings" #~ msgstr "TortoiseHg Configurazione opzioni globali utente" #~ msgid "TortoiseHg Configure Repository - " #~ msgstr "TortoiseHg Configurazione repository - " #~ msgid "(No help text available)" #~ msgstr "(Nessuna guida disponibile)" #~ msgid "command is running" #~ msgstr "Comando in corso" #~ msgid "undo recent commit" #~ msgstr "Annulla ultimo commit" #~ msgid "commit" #~ msgstr "Esegue il commit dei file selezionati" #~ msgid "Unrevisioned Files" #~ msgstr "File non revisionati" #~ msgid "finding source of " #~ msgstr "ricerca in corso del file sorgente di " #~ msgid "TortoiseHg Clone" #~ msgstr "TortoiseHg Clonazione" #~ msgid "Toggle _Wordwrap" #~ msgstr "Inverti _Wordwrap" #~ msgid "Changeset Description" #~ msgstr "Descrizione changeset" #~ msgid "Please enter a valid source path" #~ msgstr "Si prega di inserire un percorso sorgente valido" #~ msgid "Undo" #~ msgstr "Annulla" #~ msgid "Must supply a target revision" #~ msgstr "Deve essere fornita una revisione" #~ msgid "Current revision (local)" #~ msgstr "Revisione attuale (locale)" #~ msgid "Confirm clean repository" #~ msgstr "Conferma pulizia repository" #~ msgid "Confirm rollback repository" #~ msgstr "Conferma rollback repository" #~ msgid "filtered status" #~ msgstr "stato file selezionati" #~ msgid "Skipped saving path with no alias" #~ msgstr "Nessun alias di percorso specificato" #~ msgid "Visual Diffs" #~ msgstr "Comparazione visuale" #~ msgid "Confirm revert file to old revision" #~ msgstr "Conferma ripristino file alla vecchia revisione" #~ msgid "Merge target (other)" #~ msgstr "Revisione con la quale eseguire il merge" #~ msgid "Clone" #~ msgstr "Clona" #~ msgid "Confirm undo merge" #~ msgstr "Conferma annullamento merge" #~ msgid "Clean checkout of original revision?" #~ msgstr "Eseguire il checkout pulito della revisione originale?" #~ msgid "There is no Mercurial repository here (.hg not found)" #~ msgstr "Non esiste alcun repository Mercurial (.hg non trovato)" #~ msgid "Please select diff chunks to shelve" #~ msgstr "" #~ "Si prega di selezionare le modifiche da mettere da parte con il comando " #~ "shelve" #~ msgid "restore shelved changes" #~ msgstr "Riprende le modifiche messe da parte con il comando shelve" #~ msgid "set aside selected changes" #~ msgstr "Mette da parte le modifiche selezionate" #~ msgid "Shelve file exists!" #~ msgstr "Alcune modifiche sono già state messe da parte" #~ msgid "User global settings" #~ msgstr "Impostazioni globali utente" #~ msgid "Add/Remove the following files?" #~ msgstr "Aggiungi/Rimuovi i seguenti file?" #~ msgid " %s is larger than the specified max diff size" #~ msgstr " %s è più grande della massima dimensione di modifiche specificata" #~ msgid "hgtk thgstatus [OPTION]" #~ msgstr "hgtk thgstatus [OPZIONI]" #~ msgid "File is larger than the specified max size.\n" #~ msgstr "" #~ "La dimensione del file è maggiore della dimensione massima specificata.\n" #~ msgid "Revert files to revision %s?" #~ msgstr "Ripristina i file alla revisione %s?" #~ msgid "Delete the following unrevisioned files?" #~ msgstr "Eliminare i seguenti file non revisionati?" #~ msgid "Overwrite existing '%s' path?" #~ msgstr "Sovrascrivere il path '%s' esistente?" #~ msgid "Folder" #~ msgstr "Cartella" #~ msgid "Set as _default" #~ msgstr "Imposta come _default" #~ msgid "udpate all repos in current dir" #~ msgstr "aggiorna tutti i repository nella directory corrente" #~ msgid "Hunk selection is disabled for this file.\n" #~ msgstr "La selezione dei blocchi è disabilitata per questo file.\n" #~ msgid "Local Date" #~ msgstr "Data locale" #~ msgid "Universal Date" #~ msgstr "Data universale" #~ msgid "Abort: %s\n" #~ msgstr "Interrotto: %s\n" #~ msgid "ID" #~ msgstr "ID" #~ msgid "Summary" #~ msgstr "Sommario" #~ msgid "[All Files]" #~ msgstr "[Tutti]" #~ msgid "Repo:" #~ msgstr "Repository:" #~ msgid "Confirm Add/Remove" #~ msgstr "Conferma aggiunta/rimozione file" #~ msgid "Confirm Commit" #~ msgstr "Conferma commit" #~ msgid "Confirm Delete Unrevisioned" #~ msgstr "Conferma cancellazione file" #~ msgid "Delete Errors" #~ msgstr "Errori di cancellazione" #~ msgid "Unable to apply patch" #~ msgstr "Impossibile applicare la patch" #~ msgid "Rollback" #~ msgstr "Rollback" #~ msgid "Verify" #~ msgstr "Verifica" #~ msgid "Recover" #~ msgstr "Recupera" #~ msgid "Select Folder" #~ msgstr "Selezionare cartella" #~ msgid "All files" #~ msgstr "Tutti i file" #~ msgid "Clean repository '%s' ?" #~ msgstr "Ripulire repository '%s' ?" #~ msgid "A: added" #~ msgstr "A: aggiunti" #~ msgid "R: removed" #~ msgstr "R: rimossi" #~ msgid "Rollback repository '%s' ?" #~ msgstr "Eseguire il rollback del repository '%s' ?" #~ msgid "M: modified" #~ msgstr "M: modificati" #~ msgid "C: clean" #~ msgstr "C: puliti" #~ msgid "!: deleted" #~ msgstr "!: eliminati" #~ msgid "?: unknown" #~ msgstr "?: sconosciuti" #~ msgid "I: ignored" #~ msgstr "I: ignorati" #~ msgid "Highlight the taskbar icon during activity" #~ msgstr "Evidenzia l'icona nella taskbar durante l'attività" #~ msgid "No changes to shelve" #~ msgstr "Nessuna modifica da accantonare" #~ msgid "Confirm Really Exit?" #~ msgstr "Conferma uscita" #~ msgid "" #~ "Graphical merge program for resolving merge conflicts. If left " #~ "unspecified, Mercurial will use the first applicable tool it finds on " #~ "your system or use its internal merge tool that leaves conflict markers " #~ "in place. Chose internal:merge to force conflict markers, internal:" #~ "prompt to always select local or other, or internal:dump to leave files " #~ "in the working directory for manual merging" #~ msgstr "" #~ "Programma grafico di fusione per risolvere i conflitti dopo un merge. Se " #~ "non specificato, Mercurial userà il primo applicativo che troverà nel " #~ "sistema o userà lo strumento interno di fusione il quale lascierà i " #~ "marcatori di conflitto nel file. Scegliere internal:merge per forzare i " #~ "marcatori di conflitto, internal:prompt per scegliere la copia locale o " #~ "l'altra, oppure internal:dump per lasciare i file nella directory di " #~ "lavoro ed eseguire il merge manualmente." #~ msgid "Move files to directory..." #~ msgstr "Sposta i file nella cartella..." #~ msgid "_delete" #~ msgstr "_elimina" #~ msgid "rename takes one or two path arguments" #~ msgstr "la rinomina richiede uno o due argomenti di percorso" #~ msgid "Error: %s" #~ msgstr "Errore: %s" #~ msgid "Abort: %s" #~ msgstr "Interrotto: %s" #~ msgid "(version %s)" #~ msgstr "(versione %s)" #~ msgid "with %s" #~ msgstr "con %s" #~ msgid "Invalid regular expression" #~ msgstr "Espressione regolare non valida" #~ msgid "Rename error" #~ msgstr "Errore durante la rinomina" #~ msgid "Try &Again" #~ msgstr "&Riprova" #~ msgid "Unable to delete temp files" #~ msgstr "Impossible cancellare i file temporanei" #~ msgid "&Quit" #~ msgstr "&Esci" #~ msgid "Close diff tools and try again, or quit to leak files?" #~ msgstr "" #~ "Chiudi lo strumento di comparazione e riprova, oppure esci per perdere i " #~ "file" #~ msgid "Fork hgtk" #~ msgstr "Nuovo processo da hgtk" #~ msgid "" #~ "Redirect stderr to a buffer which is parsed at the end of the process for " #~ "runtime errors. Default: True" #~ msgstr "" #~ "Redirige stderr su un buffer che verrà analizzato alla fine del processo " #~ "per gli errori a runtime. Default: Vero" #~ msgid "Advanced options" #~ msgstr "Opzioni avanzate" #~ msgid "Invalid Revision" #~ msgstr "Revisione non valida" #~ msgid "hgtk forget [FILE]..." #~ msgstr "hgtk forget [FILE]..." #~ msgid "Keywords" #~ msgstr "Parole chiave" #~ msgid "ssh" #~ msgstr "ssh" #~ msgid "http" #~ msgstr "http" #~ msgid "https" #~ msgstr "https" #~ msgid "Archive" #~ msgstr "Archivia" #~ msgid "Archive revision:" #~ msgstr "Revisione da archiviare:" #~ msgid "Compressed zip archives" #~ msgstr "File zip compressi" #~ msgid "Source path:" #~ msgstr "Percorso sorgente:" #~ msgid "Use uncompressed transfer" #~ msgstr "Usa trasferimento non compresso" #~ msgid "Merge " #~ msgstr "Merge " #~ msgid "Recent commit messages..." #~ msgstr "Ultimi messaggi di commit..." #~ msgid "Confirm Undo Commit" #~ msgstr "Conferma annullamento commit" #~ msgid "Undo Commit" #~ msgstr "Annulla commit" #~ msgid "Select Revision" #~ msgstr "Revisione" #~ msgid "working parents" #~ msgstr "genitori directory di lavoro" #~ msgid "merges" #~ msgstr "merge" #~ msgid "revision ancestry" #~ msgstr "revisioni antenate" #~ msgid "Load all" #~ msgstr "Carica tutte" #~ msgid "load more revisions" #~ msgstr "Carica altre revisioni" #~ msgid "Load more" #~ msgstr "Carica altre" #~ msgid "Show newest first" #~ msgstr "Mostra prima le più recenti" #~ msgid "Show patches" #~ msgstr "Mostra le patch" #~ msgid "Target revision:" #~ msgstr "Revisione:" #~ msgid "URL Details" #~ msgstr "Dettagli URL" #~ msgid "Show no merges" #~ msgstr "Nasconde i merge" #~ msgid "load all revisions" #~ msgstr "Carica tutte le revisioni" #~ msgid "Text Diff" #~ msgstr "Differenze" #~ msgid "Hunk Selection" #~ msgstr "Selezione differenze" #~ msgid "Backout changeset - %s" #~ msgstr "Backout changeset - %s" #~ msgid "%s changeset " #~ msgstr "%s changeset " #~ msgid "Save as.." #~ msgstr "Salva con nome" #~ msgid "View" #~ msgstr "Visualizza" #~ msgid "Push after commit" #~ msgstr "Push dopo il commit" #~ msgid "Flags:" #~ msgstr "Flag:" #~ msgid "Columns" #~ msgstr "Colonne" #~ msgid "Revision..." #~ msgstr "Revisione..." #~ msgid "Age" #~ msgstr "Età" #~ msgid "Revision Number" #~ msgstr "Numero revisione" #~ msgid "Changeset ID" #~ msgstr "ID Changeset" #~ msgid "#" #~ msgstr "#" #~ msgid "" #~ "The destination \"%s\" already exists!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "Il file \"%s\" esiste già!\n" #~ "\n" #~ "Sovrascrivere?" #~ msgid "" #~ "The directory \"%s\" isn't empty!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "La directory \"%s\" non è vuota!\n" #~ "\n" #~ "Sovrascrivere?" #~ msgid "All Files (*.*)" #~ msgstr "Tutti i file (*.*)" #~ msgid "_View" #~ msgstr "_Vedi" #~ msgid "_Operations" #~ msgstr "_Operazioni" #~ msgid "Advanced" #~ msgstr "Avanzate" #~ msgid "Commit Preview" #~ msgstr "Anteprima" #~ msgid "_Tools" #~ msgstr "S_trumenti" #~ msgid "Send" #~ msgstr "Invia" #~ msgid "Test" #~ msgstr "Test" #~ msgid "Send emails" #~ msgstr "Invia email" #~ msgid "Show emails which would be sent" #~ msgstr "Mostra le email che sarranno inviate" #~ msgid "Move Down" #~ msgstr "Sposta giù" #~ msgid "Move Up" #~ msgstr "Sposta su" #~ msgid "Filter Bar" #~ msgstr "Barra filtri" #~ msgid "Choose Details..." #~ msgstr "Dettagli..." #~ msgid "Sync Bar" #~ msgstr "Barra sincronizzazione" #~ msgid "Email..." #~ msgstr "Email..." #~ msgid "Source and destination are the same" #~ msgstr "Sorgente e destinazione coincidono" #~ msgid "Please specify different paths" #~ msgstr "Si prega di specificare dei percorsi diversi" #~ msgid "Recovery" #~ msgstr "Recupera" #~ msgid "Committer:" #~ msgstr "Autore:" #~ msgid "Auto-includes:" #~ msgstr "Auto-includi:" #~ msgid "Apply to:" #~ msgstr "Applica a:" #~ msgid "Ignore Max Diff Size" #~ msgstr "Ignora dimensione massima differenze" #~ msgid "_Navigate" #~ msgstr "_Naviga" #~ msgid "_Synchronize" #~ msgstr "_Sincronizza" #~ msgid "Download and view incoming changesets" #~ msgstr "" #~ "Mostra le modifiche che arriveranno dopo un pull dal repository " #~ "selezionato" #~ msgid "Pull incoming changesets" #~ msgstr "Esegue il pull delle modifiche dal repository selezionato" #~ msgid "Determine and mark outgoing changesets" #~ msgstr "" #~ "Determina ed evidenzia i changeset che verranno inviati al repository " #~ "selezionato" #~ msgid "Push outgoing changesets" #~ msgstr "Esegue il push delle modifiche locali sul repository selezionato" #~ msgid "Email outgoing changesets" #~ msgstr "Invia una email delle modifiche in uscita a uno o più destinatari" #~ msgid "Configure aliases and after pull behavior" #~ msgstr "Configurazione alias ed operazioni dopo il pull" #~ msgid "Accept incoming previewed changesets" #~ msgstr "Accetta i changeset in entrata" #~ msgid "Reject incoming previewed changesets" #~ msgstr "Rifiuta i changeset in entrata" #~ msgid "Reject" #~ msgstr "Rifiuta" #~ msgid "Repository is empty" #~ msgstr "Repository vuoto" #~ msgid "Visual diff checked files" #~ msgstr "Comparazione visuale file selezionati" #~ msgid "Revert checked files" #~ msgstr "Ripristina i file selezionati" #~ msgid "Add checked files" #~ msgstr "Aggiunge i file selezionati" #~ msgid "Move checked files to other directory" #~ msgstr "Sposta i file selezionati in un'altra directory" #~ msgid "Remove or delete checked files" #~ msgstr "Rimuove o cancella i file selezionati" #~ msgid "Forget checked files on next commit" #~ msgstr "Dimentica i file selezionati al prossimo commit" #~ msgid "View '%s'" #~ msgstr "Vedi '%s'" #~ msgid "Working Parent" #~ msgstr "Genitore revisione in lavorazione" #~ msgid "Patch Contents" #~ msgstr "Contenuti patch" #~ msgid "Patch Preview" #~ msgstr "Anteprima patch" #~ msgid "unknown CmdWidget style: %s" #~ msgstr "Stile CmdWidget sconosciuto: %s" #~ msgid "UTC Date" #~ msgstr "Data UTC" #~ msgid "Compact Graph" #~ msgstr "Grafico compatto" #~ msgid "Save patches to" #~ msgstr "Salva patch in" #~ msgid "Confirm Revert All Files" #~ msgstr "Conferma ripristino file" #~ msgid "&Yes (backup changes)" #~ msgstr "&Si (backup modifiche)" #~ msgid "Yes (&discard changes)" #~ msgstr "Si (&abbandona modifiche)" #~ msgid "Spell Check Language" #~ msgstr "Lingua controllo ortografico" #~ msgid "" #~ "Default language for spell check. System language is used if not " #~ "specified. Examples: en, en_GB, en_US" #~ msgstr "" #~ "Lingua di default per il controllo ortografico. Se non speficata viene " #~ "usata la lingua di sistema. Esempi: en, en_GB, en_US" #~ msgid "Confirm Abort" #~ msgstr "Conferma annullamento" #~ msgid "Do you want to abort?" #~ msgstr "Annullare?" #~ msgid "unexpected response id: %s" #~ msgstr "id di risposta inatteso: %s" #~ msgid "unknown mode name: %s" #~ msgstr "nome modo sconosciuto: %s" #~ msgid "Repository Error: %s, refresh suggested" #~ msgstr "" #~ "Errore nel repository: %s, suggerito un aggiornamento visualizzazione" #~ msgid "_Diff" #~ msgstr "Compara" #~ msgid "create new MQ patch" #~ msgstr "Crea una nuova patch MQ" #~ msgid "Info Required" #~ msgstr "Informazioni richieste" #~ msgid "Serve" #~ msgstr "Web server" #~ msgid "Contents" #~ msgstr "Contenuti" #~ msgid "Select" #~ msgstr "Seleziona" #~ msgid "refresh top MQ patch" #~ msgstr "Aggiorna la patch MQ corrente" #~ msgid "_Commit (+1 head)" #~ msgstr "_Commit (+1 testa)" #~ msgid "_Commit (-1 head)" #~ msgstr "_Commit (-1 testa)" #~ msgid "parent is not a head, commit to add a new head" #~ msgstr "" #~ "Il genitore non è una testa, eseguire il commit per aggiungere una nuova " #~ "testa" #~ msgid "commit to merge one head" #~ msgstr "Eseguire il commit per eliminare una testa" #~ msgid "Loading history..." #~ msgstr "Lettura in corso" #~ msgid "Lang \"%s\" can not be set.\n" #~ msgstr "La lingua \"%s\" non può essere impostata.\n" #~ msgid "Email revisions " #~ msgstr "Invia email revisione/i " #~ msgid "[command returned code %d " #~ msgstr "[codice ritorno comando %d " #~ msgid "[command completed successfully " #~ msgstr "[comando completato con successo " #~ msgid "heads" #~ msgstr "teste" #~ msgid "Load more Revisions" #~ msgstr "Carica altre revisioni" #~ msgid "Load all Revisions" #~ msgstr "Carica tutte le revisioni" #~ msgid "Toolbar" #~ msgstr "Barra strumenti" #~ msgid "Add Bundle..." #~ msgstr "Inserisci bundle..." #~ msgid "Accept Bundle" #~ msgstr "Accetta bundle" #~ msgid "Reject Bundle" #~ msgstr "Rifiuta bundle" #~ msgid "Tags" #~ msgstr "Etichette" #~ msgid "Heads" #~ msgstr "Teste" #~ msgid "_Update..." #~ msgstr "_Aggiorna..." #~ msgid "_Merge with..." #~ msgstr "Esegui il _merge con..." #~ msgid "_Export Patch..." #~ msgstr "_Esporta patch..." #~ msgid "E_mail Patch..." #~ msgstr "Invia e_mail patch..." #~ msgid "_Bundle rev:tip..." #~ msgstr "Crea _bundle rev:tip..." #~ msgid "_Revert" #~ msgstr "_Ripristina" #~ msgid "_Archive..." #~ msgstr "_Archivia..." #~ msgid "Strip Revision..." #~ msgstr "Elimina revisione..." #~ msgid "_Diff with selected" #~ msgstr "Compara con selezionata" #~ msgid "Visual Diff with selected" #~ msgstr "Comparazione visuale con selezionata" #~ msgid "Email from here to selected..." #~ msgstr "Invia email da qui alla selezionata..." #~ msgid "Bundle from here to selected..." #~ msgstr "Crea bundle da qui alla selezionata" #~ msgid "Export Patches from here to selected..." #~ msgstr "Esporta patch da qui alla selezionata..." #~ msgid "Rebase on top of selected" #~ msgstr "Esegui il rebase in cima alla selezionata" #~ msgid "Tagged" #~ msgstr "Etichette" #~ msgid "Ancestry" #~ msgstr "Antenate" #~ msgid "Merges" #~ msgstr "Merge" #~ msgid "Hide Merges" #~ msgstr "Nascondi merge" #~ msgid "%(count)d of %(total)d Revisions" #~ msgstr "%(count)d di %(total)d revisioni" #~ msgid "Unapply last patch" #~ msgstr "Annulla l'ultima patch" #~ msgid "Apply next patch" #~ msgstr "Applica la prossima patch" #~ msgid "Show status" #~ msgstr "Mostra stato" #~ msgid "Show name" #~ msgstr "Mostra nome" #~ msgid "Enable editable cells" #~ msgstr "Abilita celle modificabili" #~ msgid "Show 'qparent'" #~ msgstr "Mostra 'qparent'" #~ msgid "&Reject" #~ msgstr "&Rifiuta" #~ msgid "&Accept" #~ msgstr "&Accetta" #~ msgid "Filter" #~ msgstr "Filtro" #~ msgid "Toggle all selections" #~ msgstr "Inverte tutte le selezioni" #~ msgid "Rename " #~ msgstr "Rinomina " #~ msgid "_Ignore" #~ msgstr "_Ignora" #~ msgid "_Copy..." #~ msgstr "_Copia..." #~ msgid "Rename..." #~ msgstr "Rinomina..." #~ msgid "Open..." #~ msgstr "Apri..." #~ msgid "Archived successfully" #~ msgstr "Archiviazione eseguita con successo" #~ msgid "Canceled archiving" #~ msgstr "Archiviazione annullata" #~ msgid "Failed to archive" #~ msgstr "Archiviazione fallita" #~ msgid "Canceled backout" #~ msgstr "Backout annullato" #~ msgid "Failed to backout" #~ msgstr "Backout fallito" #~ msgid "_Visual Diff" #~ msgstr "Comparazione _visuale" #~ msgid "Cloned successfully" #~ msgstr "Clonazione eseguita con successo" #~ msgid "Failed to clone" #~ msgstr "Clonazione fallita" #~ msgid "" #~ "Select language for spell checking.\n" #~ "\n" #~ "Empty is for the default language.\n" #~ "When all text is highlited, the dictionary\n" #~ "is probably not installed.\n" #~ "\n" #~ "examples: en, en_GB, en_US" #~ msgstr "" #~ "Selezionare la lingua per il controllo ortografico.\n" #~ "\n" #~ "Lasciare il campo vuoto per la lingua di default.\n" #~ "Se tutti i testi sono evidenziati, il dizionario\n" #~ "probabilmente non è installato.\n" #~ "\n" #~ "Esempi: en, en_GB, en_US" #~ msgid "Strip" #~ msgstr "Elimina" #~ msgid "Backup all (default)" #~ msgstr "Backup completo (default)" #~ msgid "unknown hunk type: %s" #~ msgstr "tipo modifica sconosciuto: %s" #~ msgid "[no hunks to display]" #~ msgstr "[nessuna modifica da visualizzare]" #~ msgid "Diff to _local" #~ msgstr "Compara con copia in lavoro" #~ msgid "_View at Revision" #~ msgstr "_Vedi alla revisione" #~ msgid "_Save at Revision..." #~ msgstr "_Salva alla revisione..." #~ msgid "_Annotate File" #~ msgstr "_Annota file" #~ msgid "_Revert File Contents" #~ msgstr "_Ripristina contenuto file" #~ msgid "Diff to second Parent" #~ msgstr "Differenze con secondo genitore" #~ msgid "%s - datamine" #~ msgstr "%s - Ricerca in repository" #~ msgid "Datamine" #~ msgstr "Ricerca in repository" #~ msgid "" #~ "New changesets from the preview bundle are still pending.\n" #~ "\n" #~ "Accept or reject the new changesets?" #~ msgstr "" #~ "Alcuni changeset di anteprima sono in attesa di accettazione.\n" #~ "\n" #~ "Accettare o rifiutare i nuovi changeset?" #~ msgid "Accept new Changesets" #~ msgstr "Accettazione nuovi changeset" #~ msgid "Stripped successfully" #~ msgstr "Eliminazione revisioni eseguita con successo" #~ msgid "Toggle log window" #~ msgstr "Visualizza/nasconde finestra di log" #~ msgid "Close this" #~ msgstr "Chiudi" #~ msgid "Command Log" #~ msgstr "Log comando" #~ msgid "Reset Marks" #~ msgstr "Cancella contrassegni" #~ msgid "only Merges" #~ msgstr "solo revisioni ottenuta da un merge" #~ msgid "Ancestry of %s" #~ msgstr "Antenate di %s" #~ msgid "tagged revisions" #~ msgstr "revisioni con etichetta" #~ msgid "Tagged Revisions" #~ msgstr "Revisioni con etichetta" #~ msgid "no Merges" #~ msgstr "no merge" #~ msgid "File Patterns" #~ msgstr "Pattern file" #~ msgid "No remote path specified" #~ msgstr "Nessun percorso remoto specificato" #~ msgid "Please enter or select a remote path" #~ msgstr "Si prega di inserire o selezionare un percorso remoto" #~ msgid "Outstanding uncommitted changes" #~ msgstr "Modifiche pendenti nella directory di lavoro" #~ msgid "Merged successfully" #~ msgstr "Merge eseguito con successo" #~ msgid "Canceled merging" #~ msgstr "Merge annullato" #~ msgid "Failed to merge" #~ msgstr "Merge fallito" #~ msgid "%s - serve" #~ msgstr "%s - web server" #~ msgid "%s serve - %s" #~ msgstr "%s web server - %s" #~ msgid " - serve" #~ msgstr " - web server" #~ msgid "_Guess Rename..." #~ msgstr "_Scopri rinomine..." #~ msgid "Remove versioned" #~ msgstr "Rimuove dal controllo versione" #~ msgid "_Delete unversioned" #~ msgstr "Cancella" #~ msgid "%s - synchronize" #~ msgstr "%s - sincronizzazione" #~ msgid "Shelve uncommited changes" #~ msgstr "Accantona le modifiche pendenti" #~ msgid "Tag is local" #~ msgstr "Etichetta locale" #~ msgid "Replace existing tag" #~ msgstr "Sostituisci etichetta esistente" #~ msgid "Tag input is empty" #~ msgstr "Nome etichetta non specificato" #~ msgid "Please enter tag name" #~ msgstr "Si prega di inserire un nome etichetta" #~ msgid "Tagging completed" #~ msgstr "Etichettatura completata" #~ msgid "Tag \"%s\" has been added" #~ msgstr "L'etichetta \"%s\" è stato inserita" #~ msgid "Error in tagging" #~ msgstr "Errore durante l'etichettatura" #~ msgid "Tag name is empty" #~ msgstr "Nome etichetta non specificato" #~ msgid "Please select tag name to remove" #~ msgstr "Si prega di inserire il nome dell'etichetta da rimuovere" #~ msgid "Tag \"%s\" has been removed" #~ msgstr "L'etichetta \"%s\" è stato rimossa" #~ msgid "a tag named \"%s\" already exists" #~ msgstr "l'etichetta \"%s\" esiste già" #~ msgid "Tag '%s' already exist" #~ msgstr "L'etichetta \"%s\" esiste già" #~ msgid "Alias name is empty" #~ msgstr "Nome alias vuoto" #~ msgid "Please enter alias name" #~ msgstr "Si prega di inserire un nome alias" #~ msgid "_Help" #~ msgstr "_Aiuto" #~ msgid "%s - recovery" #~ msgstr "%s - recupero" #~ msgid "Failed to strip" #~ msgstr "Eliminazione revisioni fallita" #~ msgid "Canceled stripping" #~ msgstr "Eliminazione revisioni cancellata" #~ msgid "" #~ "Detected uncommitted local changes.\n" #~ "Do you want to discard them and continue?" #~ msgstr "" #~ "Trovate modifiche locali pendenti.\n" #~ "Vuoi abbandonarle e continuare?" #~ msgid "&Yes (--force)" #~ msgstr "&Si (--force)" #~ msgid "Canceled updating" #~ msgstr "Aggiornamento annullato" #~ msgid "Updated successfully" #~ msgstr "Aggiornamento eseguito con successo" #~ msgid "Failed to update" #~ msgstr "Aggiornamento fallito" #~ msgid " - qnew" #~ msgstr " - qnew" #~ msgid " - qrefresh " #~ msgstr " - qrefresh " #~ msgid "Parent: %(rev)s" #~ msgstr "Genitore: %(rev)s" #~ msgid "Stop transaction" #~ msgstr "Arresta operazione" #~ msgid "invalid state" #~ msgstr "stato non valido" #~ msgid "Select files to add" #~ msgstr "Selezionare file da aggiungere" #~ msgid "Select files to revert" #~ msgstr "Selezionare file da ripristinare" #~ msgid "Select files to remove" #~ msgstr "Selezionare file da rimuovere" #~ msgid "Successfully" #~ msgstr "Eseguito con successo" #~ msgid "Canceled" #~ msgstr "Annullato" #~ msgid "Failed" #~ msgstr "Fallito" #~ msgid "" #~ "Detected uncommitted local changes in working tree.\n" #~ "Please select to continue:\n" #~ "\n" #~ msgstr "" #~ "Trovate modifiche locali pendenti nella directory di lavoro.\n" #~ "Selezionare un'azione per continuare:\n" #~ "\n" #~ msgid "Shelve - launch Shelve tool and continue" #~ msgstr "Shelve - usa shelve per accantonare le modifiche" #~ msgid "[canceled by user]\n" #~ msgstr "[annullato dall'utente]\n" #~ msgid " - commit" #~ msgstr " - commit" #~ msgid "_File History" #~ msgstr "Cronologia _file" #~ msgid "" #~ "The summary line length of %i is greater than %i.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "La lunghezza della linea di sommario (%i caratteri) è maggiore del limite " #~ "di %i caratteri.\n" #~ "\n" #~ "Ignora le regole del formato e continua con il commit?" #~ msgid "" #~ "The summary line is not followed by a blank line.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "La linea di sommario non è seguita da una linea vuota.\n" #~ "\n" #~ "Ignora le regole del formato e continua con il commit?" #~ msgid "The summary line length of %i is greater than %i" #~ msgstr "" #~ "La lunghezza della linea di sommario (%i caratteri) è maggiore del limite " #~ "di %i caratteri" #~ msgid "The summary line is not followed by a blank line" #~ msgstr "La linea di sommario non è seguita da una linea vuota" #~ msgid "Log Details" #~ msgstr "Dettagli cronologia" #~ msgid " (Bundle Preview)" #~ msgstr " (Anteprima bundle)" #~ msgid "Accept changes from Bundle preview" #~ msgstr "Accetta le modifiche dall'anteprima bundle" #~ msgid "Reject changes from Bundle preview" #~ msgstr "Rifiuta le modifiche dall'anteprima bundle" #~ msgid "Bundle Preview" #~ msgstr "Anteprima bundle" #~ msgid "Confirm Forced Push to Remote Repository" #~ msgstr "Conferma push forzato su repository remoto" #~ msgid "" #~ "Forced push to remote repository\n" #~ "%s\n" #~ "(creating new heads in remote if needed)?" #~ msgstr "" #~ "Forza il push verso il repository remoto\n" #~ "%s\n" #~ "(verranno create nuove teste se necessario)?" #~ msgid "Forced &Push" #~ msgstr "&Push forzato" #~ msgid "&Push" #~ msgstr "&Push" #~ msgid "Confirm Forced Push" #~ msgstr "Conferma push forzato" #~ msgid "" #~ "Forced push to repository\n" #~ "%s\n" #~ "(creating new heads if needed)?" #~ msgstr "" #~ "Forza il push verso il repository\n" #~ "%s\n" #~ "(verranno create nuove teste se necessario)?" #~ msgid "Undo successfully" #~ msgstr "Annullamento merge eseguito con successo" #~ msgid "Canceled undo" #~ msgstr "Anullamento merge cancellato" #~ msgid "Failed to undo" #~ msgstr "Annullamento merge fallito" #~ msgid "Select files to forget" #~ msgstr "Selezionare file da dimenticare" #~ msgid "Shelf Preview" #~ msgstr "Anteprima modifiche accantonate" #~ msgid "No clean files selected" #~ msgstr "Nessun file pulito selezionato" #~ msgid "Restart Merge..." #~ msgstr "Riavvia merge..." #~ msgid "Mark unresolved" #~ msgstr "Segna come non risolto" #~ msgid "Mark resolved" #~ msgstr "Segna come risolto" #~ msgid "Restart merge with" #~ msgstr "Riavvia merge con" #~ msgid "not up to date" #~ msgstr "Non aggiornato" #~ msgid "" #~ "The parents have changed since the last refresh.\n" #~ "Continue anyway?" #~ msgstr "" #~ "Il genitore è cambiato dall'ultimo aggiornamento visualizzazione.\n" #~ "Continuare comunque?" #~ msgid "" #~ "If true, concatenate multiple lines of changeset summary until they reach " #~ "80 characters. Default: False" #~ msgstr "" #~ "Se vero, concatena più righe del sommario del changeset fino a " #~ "raggiungere 80 caratteri. Default: Falso" #~ msgid "Maximum number of changes to list on the changelog." #~ msgstr "Numero massimo di modifiche da mostrare nella cronologia" #~ msgid "Select Local Folder" #~ msgstr "Selezionare cartella locale" #~ msgid "Yes (&keep)" #~ msgstr "Si (&mantiene)" #~ msgid "Shelf Contents" #~ msgstr "Modifiche accantonate" #~ msgid "Unshelve Error" #~ msgstr "Errore durante l'unshelve" #~ msgid "Backup unrelated changesets (-b/--backup)" #~ msgstr "Backup changeset non correlati (-b/--backup)" #~ msgid "Saved at: %s" #~ msgstr "Backup in: %s" #~ msgid "invalid dialog result: %s" #~ msgstr "risultato della dialog non valido: %s" #~ msgid "Unsupported line endings type: %s" #~ msgstr "Tipo fine linea non supportato: %s" #~ msgid "Repository Explorer" #~ msgstr "Esplora repository" #~ msgid "Open Bundle" #~ msgstr "Apri bundle" #~ msgid "Save Preview" #~ msgstr "Anteprima salvataggio" #~ msgid "Visualize Change" #~ msgstr "Comparazione visuale con genitore" #~ msgid "Di_splay Change" #~ msgstr "Comparazione con genitore" #~ msgid "" #~ "This feature is only available when sending outgoing changesets. It is " #~ "not applicable with revision ranges." #~ msgstr "" #~ "Questa opzione è disponibile solo quando si spediscono i changeset con la " #~ "sincronizzazione. Non è applicabile con un intervallo di revisioni." #~ msgid "" #~ "To complete merging, you need to commit merged files in working " #~ "directory.\n" #~ "\n" #~ "Do you want to exit?" #~ msgstr "" #~ "Per completare il merge si deve eseguire il commit dei file aggiornati " #~ "nella directory di lavoro.\n" #~ "\n" #~ "Uscire?" #~ msgid "Nothing Diffed" #~ msgstr "Comparazione non eseguita" #~ msgid "No diffable files selected" #~ msgstr "Nessun file comparabile selezionato" #~ msgid "View missing" #~ msgstr "Vedi file mancante" #~ msgid "Merging in %s" #~ msgstr "Merge in %s" #~ msgid "revision to merge with" #~ msgstr "revisione con la quale eseguire il merge" #~ msgid "View other" #~ msgstr "Vedi altro" #~ msgid "Confirm Rebase Revision" #~ msgstr "Conferma rebase revisione" #~ msgid "Rebase revision %d on top of %d?" #~ msgstr "Eseguire il rebase della revisione %d sopra la revisione %d?" #~ msgid "Transplant Revision range to local" #~ msgstr "Transplant intervallo revisioni in locale" #~ msgid "_rename" #~ msgstr "_Rinomina" #~ msgid "" #~ "Do you want to fold un-applied patch '%(target)s' into current patch " #~ "'%(qtip)s'?" #~ msgstr "" #~ "Raggruppare il patch non applicato '%(target)s' nel patch corrente " #~ "'%(qtip)s'?" #~ msgid "Confirm Fold" #~ msgstr "Conferma raggruppamento" #~ msgid "Succeed" #~ msgstr "Successo" #~ msgid "Use Expander" #~ msgstr "Usa Expander" #~ msgid "Show changeset details with an expander" #~ msgstr "Mostra i dettagli del changeset usando un oggetto grafico expander" #~ msgid "Branch Operations" #~ msgstr "Operazioni sui rami" #~ msgid "Close current named branch" #~ msgstr "Chiude il ramo corrente" #~ msgid "new branch: " #~ msgstr "nuovo ramo: " #~ msgid "close branch: " #~ msgstr "chiudi ramo: " #~ msgid "revision number, changeset ID, branch or tag" #~ msgstr "Numero di revisione, ID del changeset, ramo o etichetta" #~ msgid "Color by Branch" #~ msgstr "Colora per ramo" #~ msgid "Branch Name" #~ msgstr "Nome ramo" #~ msgid "%s branch" #~ msgstr "ramo %s" #~ msgid "Branch '%s'" #~ msgstr "Ramo '%s'" #~ msgid "Branch Filter" #~ msgstr "Filtro rami" #~ msgid "Branches..." #~ msgstr "Rami..." #~ msgid "Update to branch tip" #~ msgstr "Aggiorna al tip del ramo" #~ msgid "Stop current transaction" #~ msgstr "Arresta l'operazione in corso" #~ msgid "After Pull:" #~ msgstr "Operazione dopo il pull:" #~ msgid "Show/Hide Patch Queue" #~ msgstr "Visualizza/nasconde la coda delle patch" #~ msgid "Exit after saving changes?" #~ msgstr "Salvare le modifiche prima di uscire?" #~ msgid "_Forget" #~ msgstr "_Dimentica" #~ msgid "Nothing Forgotten" #~ msgstr "Nessun file dimenticato" #~ msgid "Ambiguous Revision" #~ msgstr "Revisione ambigua" #~ msgid "Select common ancestor revision" #~ msgstr "Seleziona genitore comune" #~ msgid "TortoiseHg Init" #~ msgstr "TortoiseHg inizializzazione" #~ msgid "merging " #~ msgstr "merge in corso " #~ msgid "A new version of TortoiseHg is ready for download!" #~ msgstr "Una nuova versione di TortoiseHg è disponibile per il download!" #~ msgid "Copyright 2008-2010 Steve Borho and others" #~ msgstr "Copyright 2008-2010 Steve Borho ed altri" #~ msgid "Old name:" #~ msgstr "Vecchio nome:" #~ msgid "Bookmark input is empty" #~ msgstr "Nome segnalibro mancante" #~ msgid "Please enter bookmark name" #~ msgstr "Si prega di inserire un nome per il segnalibro" #~ msgid "Bookmarking completed" #~ msgstr "Operazione completata" #~ msgid "Bookmark \"%s\" has been added" #~ msgstr "Il segnalibro \"%s\" è stato aggiunto" #~ msgid "Error in bookmarking" #~ msgstr "Operazione fallita" #~ msgid "Bookmark \"%s\" has been moved" #~ msgstr "Il segnalibro \"%s\" è stato spostato" #~ msgid "Bookmark name is empty" #~ msgstr "Nome segnalibro mancante" #~ msgid "Please select bookmark name to remove" #~ msgstr "Si prega di inserire il nome del segnalibro da rimuovere" #~ msgid "Bookmark \"%s\" has been removed" #~ msgstr "Il segnalibro \"%s\" è stato rimosso" #~ msgid "Bookmark new name input is empty" #~ msgstr "Nuovo nome segnalibro mancante" #~ msgid "Please enter new bookmark name" #~ msgstr "Si prega di inserire il nuovo nome del segnalibro" #~ msgid "Bookmark \"%s\" has been renamed to \"%s\"" #~ msgstr "Il segnalibro \"%s\" è stato rinominato in \"%s\"" #~ msgid "a bookmark named \"%s\" already exists" #~ msgstr "esiste già un segnalibro con il nome \"%s\"" #~ msgid "No bookmark named \"%s\" exists" #~ msgstr "Il nome segnalibro \"%s\" non esiste" #~ msgid "Tag" #~ msgstr "Etichette" #~ msgid "Add/Remove _Tag..." #~ msgstr "Aggiungi/Rimuovi e_tichette..." #~ msgid "Add/Move/Remove B_ookmark..." #~ msgstr "Aggiungi/Sposta/Rimuovi _segnalibri..." #~ msgid "Rename Bookmark..." #~ msgstr "Rinomina segnalibro..." #~ msgid "Always Show Output" #~ msgstr "Mostra sempre la finestra di output" #~ msgid "Updating..." #~ msgstr "Aggiornamento..." #~ msgid "hgtk import [OPTION] [SOURCE]..." #~ msgstr "hgtk import [OPZIONI] [SORGENTE]..." #~ msgid "_Perforce" #~ msgstr "_Perforce" #~ msgid "Branches" #~ msgstr "Rami" #~ msgid "Configure Paths..." #~ msgstr "Configura percorsi..." #~ msgid "Import..." #~ msgstr "Importa..." #~ msgid "Export" #~ msgstr "Esporta" #~ msgid "Backout..." #~ msgstr "Backout..." #~ msgid "Toolbar Style" #~ msgstr "Stile barra strumenti" #~ msgid "Imported successfully" #~ msgstr "Importazione completata con successo" #~ msgid "Down" #~ msgstr "Giù" #~ msgid "_Rename" #~ msgstr "_Rinomina" #~ msgid "_Delete" #~ msgstr "_Elimina" #~ msgid "Up" #~ msgstr "Su" #~ msgid "Bundle..." #~ msgstr "Bundle..." #~ msgid "Select a Mercurial Bundle" #~ msgstr "Seleziona bundle" #~ msgid "Mercurial bundles" #~ msgstr "Bundle Mercurial" #~ msgid "Index" #~ msgstr "Indice" #~ msgid "Reset _Marks" #~ msgstr "Cancella _contrassegni" #~ msgid "Reset revision marks" #~ msgstr "Elimina i contrassegni sulle revisioni" #~ msgid "Launch commit tool" #~ msgstr "Avvia lo strumento di commit" #~ msgid "Launch data mining tool" #~ msgstr "Avvia lo strumento di ricerca in repository" #~ msgid "Launch recovery tool" #~ msgstr "Avvia lo strumento di recupero" #~ msgid "Launch web server" #~ msgstr "Avvia il server web" #~ msgid "Launch shelve tool" #~ msgstr "Avvia lo strumento di shelve" #~ msgid "Previously Selected" #~ msgstr "Ultima selezionata" #~ msgid "Custom" #~ msgstr "Personalizzato" #~ msgid "Revision Range" #~ msgstr "Intervallo revisioni" #~ msgid "Diff to Local" #~ msgstr "Comparazione con copia in lavoro" #~ msgid "_Copy Hash" #~ msgstr "_Copia hash" #~ msgid "" #~ "The editor to use during a commit and other instances where Mercurial " #~ "needs multiline input from the user. Used by command line commands, " #~ "including patch import." #~ msgstr "" #~ "L'editor da usare durante il commit e altre operazioni dove Mercurial " #~ "richiede più righe di testo all'utente. Usato solo dall'interfaccia a " #~ "riga di comando e dall'importazione delle patch" #~ msgid "" #~ "Specify the number of spaces that tabs expand to in various TortoiseHg " #~ "windows. Default: Not expanded" #~ msgstr "" #~ "Specifica il numero di spazi in cui il tab viene espanso nelle varie " #~ "finestre di TortoiseHg. Default: Nessuna espansione" #~ msgid "Capture stderr" #~ msgstr "Cattura stderr" #~ msgid "_View File at Revision" #~ msgstr "_Vedi il file alla revisione" #~ msgid "C_onfigure Format..." #~ msgstr "C_onfigura formato..." #~ msgid "'%s' filter:" #~ msgstr "Filtro '%s':" #~ msgid "Changes" #~ msgstr "Modifiche" #~ msgid "Current patch: %s, " #~ msgstr "Patch corrente: %s, " #~ msgid "Revision Number/ID" #~ msgstr "Revisione Numero/ID" #~ msgid "Finished pull" #~ msgstr "Pull completato" #~ msgid "Finished pull with rebase" #~ msgstr "Pull completato con rebase" #~ msgid "No changesets to pull" #~ msgstr "Nessun changeset da eseguire il pull" #~ msgid "Pulling changesets..." #~ msgstr "Pull dei changeset in corso..." #~ msgid "No incoming changesets" #~ msgstr "Nessun changeset in entrata" #~ msgid "Checking incoming changesets..." #~ msgstr "Verifica changeset in entrata..." #~ msgid "Aborted push" #~ msgstr "Push interrotto" #~ msgid "Finished push" #~ msgstr "Push completato" #~ msgid "Aborted pull" #~ msgstr "Pull interrotto" #~ msgid "Checking outgoing changesets..." #~ msgstr "Verifica changeset in uscita in corso..." #~ msgid "Pushing changesets..." #~ msgstr "Push dei changeset in corso..." #~ msgid "Aborted importing" #~ msgstr "Importazione interrotta" #~ msgid "Finished push to revision %s" #~ msgstr "Push alla revisione %s completato" #~ msgid "Importing" #~ msgstr "Importazione in corso" #~ msgid "Failed to import" #~ msgstr "Importazione fallita" #~ msgid "Finished pull to revision %s" #~ msgstr "Pull alla revisione %s completato" #~ msgid "Pushing changesets to revision %s..." #~ msgstr "Push alla revisione %s in corso..." #~ msgid "Importing to Patch Queue..." #~ msgstr "Importazione sulla coda patch in corso..." #~ msgid "Finish importing" #~ msgstr "Importazione completata" #~ msgid "Pulling changesets to revision %s..." #~ msgstr "Pull alla revisione %s in corso..." #~ msgid "Rev/ID" #~ msgstr "Rev/ID" #~ msgid "" #~ "\n" #~ "===== Diff to second parent %d:%s =====\n" #~ msgstr "" #~ "\n" #~ "===== Differenze con il secondo genitore %d:%s =====\n" #~ msgid "Show the taskbar icon (restart needed)" #~ msgstr "Mostra l'icona nella taskbar (è necessario il riavvio)" #~ msgid "===== Diff to first parent %d:%s =====\n" #~ msgstr "===== Differenze con il primo genitore %d:%s =====\n" #~ msgid "Coloring Style" #~ msgstr "Stile di colorazione" #~ msgid "Aborted committing" #~ msgstr "Commit interrotto" #~ msgid "Committing changes..." #~ msgstr "Commit in corso..." #~ msgid "Failed to commit" #~ msgstr "Commit fallito" #~ msgid "%s does not exist\n" #~ msgstr "%s non esiste\n" #~ msgid "Push to Here" #~ msgstr "Push fino a qui" #~ msgid "Pull to Here" #~ msgstr "Pull fino a qui" #~ msgid "Transp_lant to Local" #~ msgstr "Transp_lant in locale" #~ msgid "Mercurial Queues" #~ msgstr "Mercurial Queues" #~ msgid "Finish bundling" #~ msgstr "Creazione bundle completata" #~ msgid "Aborted bundling" #~ msgstr "Creazione bundle interrotta" #~ msgid "Failed to bundle" #~ msgstr "Creazione bundle fallita" #~ msgid "Bundling" #~ msgstr "Creazione bundle in corso" #~ msgid "Push to %s" #~ msgstr "Push in %s" #~ msgid "Pull to %s" #~ msgstr "Pull in %s" #~ msgid "%d incoming changesets" #~ msgstr "%d changeset in entrata" #~ msgid "import to the repository" #~ msgstr "importa nel repository" #~ msgid "Import from here to selected to MQ" #~ msgstr "Importa da qui alla selezione in MQ" #~ msgid "Import patches" #~ msgstr "Importa patch" #~ msgid "<- Top" #~ msgstr "<- Primo" #~ msgid "Sub ->" #~ msgstr "Secondo ->" #~ msgid "" #~ "Maximum length of the commit message summary line. If set, TortoiseHg " #~ "will issue a warning if the summary line is too long or not separated by " #~ "a blank line. Default: 0 (unenforced)" #~ msgstr "" #~ "Massima lunghezza della linea di sommario del messaggio di commit. Se " #~ "impostata, TortoiseHg darà un messaggio di avvertenza se la linea di " #~ "sommario è troppo lunga o non è separata da una linea vuota. Default: 0 " #~ "(nessun controllo)" #~ msgid "Unable to find rev %s" #~ msgstr "Impossibile trovare la revisione %s" #~ msgid "Reset" #~ msgstr "Azzera" #~ msgid "Mark as Good" #~ msgstr "Marca come buona" #~ msgid "Bisect" #~ msgstr "Bisect" #~ msgid "Mark as Bad" #~ msgstr "Marca come errata" #~ msgid "Skip Testing" #~ msgstr "Salta il test" #~ msgid "Unable to parse a config file" #~ msgstr "Impossible analizzare il file di configurazione" #~ msgid "%s will be imported to the" #~ msgstr "%s sarà importata in" #~ msgid "Import" #~ msgstr "Importa" #~ msgid "%s will be imported to the repository" #~ msgstr "%s sarà importata nel repository" #~ msgid "Patch" #~ msgstr "Patch" #~ msgid "%s changesets" #~ msgstr "%s changeset" #~ msgid "Always show log" #~ msgstr "Mostra sempre il log" #~ msgid "Unable to save file" #~ msgstr "Impossibile salvare il file" #~ msgid "Failed to preview, a bundle file unrelated to this repository" #~ msgstr "" #~ "Anteprima fallita, il file di bundle non ha alcuna relazione con questo " #~ "repository" #~ msgid "Failed to preview, not a Mercurial bundle file" #~ msgstr "Anteprima fallita, il file non è un file bundle di Mercurial" #~ msgid "tag '%s' does not exist" #~ msgstr "il tag '%s' non esiste" #~ msgid "tag '%s' is not a local tag" #~ msgstr "il tag '%s' non è un tag locale" #~ msgid "Commit Message" #~ msgstr "Messaggio di commit" #~ msgid "tag '%s' is not a global tag" #~ msgstr "il tag '%s' non è un tag globale" #~ msgid "Font" #~ msgstr "Font" #~ msgid "_Goto" #~ msgstr "V_ai a" #~ msgid "Top" #~ msgstr "In alto" #~ msgid "Bottom" #~ msgstr "In basso" #~ msgid "Enable _Wordwrap" #~ msgstr "Abilita _Wordwrap" #~ msgid "_Zoom to Change" #~ msgstr "_Zoom sulla modifica" #~ msgid "_Annotate Parent" #~ msgstr "_Annota genitore" #~ msgid "mpatch error" #~ msgstr "errore mpatch" #~ msgid "S: subrepo" #~ msgstr "S: subrepo" #~ msgid "neither parent is a head, commit to add a new head" #~ msgstr "" #~ "nessuno dei genitori è una revisione di testa, eseguire il commit per " #~ "creare una nuova testa" #~ msgid "" #~ "Font used in changeset viewer and commit log text. Default: monospace 10" #~ msgstr "" #~ "Font usato nella visualizzazione changeset e nel testo del log di commit. " #~ "Default: monospace 10" #~ msgid "Font used in command output window. Default: monospace 10" #~ msgstr "Font usato nella finestra di output comandi. Default: monospace 10" #~ msgid "revisions %d to %d" #~ msgstr "revisioni da %d a %d" #~ msgid "file %s already exists\n" #~ msgstr "file %s già esistente\n" #~ msgid "%(count)d of %(total)d applied patches" #~ msgstr "%(count)d patch applicate su %(total)d" #~ msgid "Import Revision to MQ" #~ msgstr "Importa revisione in MQ" #~ msgid "" #~ "Font used for diffs in status and commit tools. Default: monospace 10" #~ msgstr "" #~ "Font usato per le differenze negli strumenti di stato file e commit. " #~ "Default: monospace 10" #~ msgid "unexpected type: %s" #~ msgstr "tipo non previsto: %s" #~ msgid "mpatch expects *.rej file argument\n" #~ msgstr "mpatch richiede un file *.rej come argomento\n" #~ msgid "hgtk shellconfig" #~ msgstr "hgtk shellconfig" #~ msgid "Aborted outgoing" #~ msgstr "Verifica changeset in uscita interrotta" #~ msgid "Aborted incoming" #~ msgstr "Verifica changeset in entrata interrotta" #~ msgid "unknown dnd dest: %s" #~ msgstr "destinazione drag & drop sconosciuta: %s" #~ msgid "Applying bundle..." #~ msgstr "Applicazione bundle in corso..." #~ msgid "Applying bundle" #~ msgstr "Applicazione bundle" #~ msgid "" #~ "Adjust the coloring style of diff lines in the changeset viewer. Default: " #~ "foreground" #~ msgstr "" #~ "Imposta lo stile di colorazione delle linee modificate nel visualizzatore " #~ "changeset. Default: foreground" #~ msgid "invalid pack direction: %s" #~ msgstr "direzione impacchettamento sconosciuta: %s" #~ msgid "unknown field name: %s" #~ msgstr "nome campo sconosciuto: %s" #~ msgid "invalid alignment value: %s" #~ msgstr "valore allineamento non valido: %s" #~ msgid "File List" #~ msgstr "Lista File" #~ msgid "Diff Text" #~ msgstr "Testo modificato" #~ msgid "TortoiseHg Shell Configuration" #~ msgstr "TortoiseHg configurazione shell" #~ msgid "Custom fonts:" #~ msgstr "Font personalizzato:" #~ msgid "Select Patches" #~ msgstr "Seleziona le patch" #~ msgid "Select Directory contains patches:" #~ msgstr "Seleziona la directory che contiene le patch:" #~ msgid "Do you want to close?" #~ msgstr "Vuoi chiudere?" #~ msgid "Canceled importing" #~ msgstr "Importazione annullata" #~ msgid "Confirm Close" #~ msgstr "Conferma la chiusura" #~ msgid "unexpected destination name: %s" #~ msgstr "nome destinazione imprevisto: %s" #~ msgid "Do you want to delete these patches?" #~ msgstr "Vuoi cancellare queste patch?" #~ msgid "Do you want to delete '%(name)s'?" #~ msgstr "Vuoi cancellare '%(name)s'?" #~ msgid "cleaning up temp directory\n" #~ msgstr "pulizia directory temporanea\n" #~ msgid "Not at head" #~ msgstr "Non una revisione di testa" #~ msgid "Displaying all items" #~ msgstr "Visualizzati tutti gli elementi" #~ msgid "Selecting %(sel)d, displaying %(count)d of %(total)d items" #~ msgstr "Selezionati %(sel)d elementi, visualizzati %(count)d su %(total)d" #~ msgid "Selecting %(sel)d of %(total)d, displaying all items" #~ msgstr "Selezionati %(sel)d elementi su %(total)d, visualizzati tutti" #~ msgid "type" #~ msgstr "tipo" #~ msgid "Insufficient access rights, reverting to read-onlymode." #~ msgstr "" #~ "Diritti di accesso insufficienti, commutazione in modalità sola lettura." #~ msgid "" #~ "%s\n" #~ "Reverting to read-only mode." #~ msgstr "" #~ "%s\n" #~ "Commutazione in modalità in sola lettura." #~ msgid "Theme default fonts" #~ msgstr "Font di default del tema" #~ msgid "Reorder" #~ msgstr "Riordina" #~ msgid "invalid reorder operation: %s" #~ msgstr "operazione di riordino non valida: %s" #~ msgid "%s will be stripped" #~ msgstr "%s sarà eliminato" #~ msgid "Discard all changes from merge target (other) revision" #~ msgstr "" #~ "Ignora le modifiche della revisione con la quale eseguire il merge (altra)" #~ msgid "Uncommitted local changes" #~ msgstr "Ci sono modifiche locali di cui non si è eseguito il commit" #~ msgid "" #~ "Do you want to fold following un-applied patches into the current patch " #~ "'%(qtip)s'?" #~ msgstr "" #~ "Vuoi collassare le seguenti patch non applicate nella patch corrente " #~ "'%(qtip)s'?" #~ msgid " - Select Preset -" #~ msgstr " - Selezionare la preimpostazione -" #~ msgid "Preset fonts:" #~ msgstr "Font preimpostati:" #~ msgid "Japanese on Windows" #~ msgstr "Giapponese in Windows" #~ msgid "Command Output" #~ msgstr "Output comandi" #~ msgid "_Shelve" #~ msgstr "_Shelve" #~ msgid "bad hunk #%d %s (%d %d %d %d)" #~ msgstr "blocco errato #%d %s (%d %d %d %d)" #~ msgid "patching file %s\n" #~ msgstr "applicazione patch sul file %s\n" #~ msgid "bad hunk #%d" #~ msgstr "blocco errato #%d" #~ msgid "Hunk #%d FAILED at %d\n" #~ msgstr "Blocco #%d FALLITO a %d\n" #~ msgid "unable to find %s or %s for patching" #~ msgstr "impossibile trovare %s o %s per applicare la patch" #~ msgid "could not extract binary patch" #~ msgstr "impossibile estrarre la patch binaria" #~ msgid "binary patch is %d bytes, not %d" #~ msgstr "la pathc binaria è lunga %d byte, non %d" #~ msgid "malformed patch %s %s" #~ msgstr "patch non conforme %s %s" #~ msgid "No valid hunks found" #~ msgstr "Nessun blocco valido trovato" #~ msgid "bad hunk #%d old text line %d" #~ msgstr "blocco #%d errato linea vecchio testo %d" #~ msgid "_Finish Applied" #~ msgstr "_Completa applicazione" #~ msgid "F_old" #~ msgstr "C_ollassa" #~ msgid "Hunk #%d succeeded at %d (offset %d lines).\n" #~ msgstr "Blocco #%d applicato con successo a %d (offset %d linee).\n" #~ msgid "Hunk #%d succeeded at %d with fuzz %d (offset %d lines).\n" #~ msgstr "" #~ "Blocco #%d applicato con successo a %d con fattore di incertezza %d " #~ "(offset %d linee).\n" #~ msgid "unable to strip away %d dirs from %s" #~ msgstr "impossibile eliminare %d directory da %s" #~ msgid "browser" #~ msgstr "browser" #~ msgid "Finding pending Perforce changelists..." #~ msgstr "Ricerca liste modifiche in sospeso di Perforce..." #~ msgid "Aborted p4identify" #~ msgstr "p4identify interrotto" #~ msgid "Unable to identify Perforce tip" #~ msgstr "Impossibile indentificare il tip Perforce" #~ msgid "Pending Perforce changelists" #~ msgstr "Liste modifiche in sospeso di Perforce" #~ msgid "Perforce changelist %s" #~ msgstr "Lista modifiche Perforce %s" #~ msgid "Identifying Perforce tip" #~ msgstr "Identificazione tip Perforce in corso" #~ msgid "Submit" #~ msgstr "Invia" #~ msgid "Changelist:" #~ msgstr "Lista modifiche:" #~ msgid "Submitted" #~ msgstr "Inviato" #~ msgid "Pending" #~ msgstr "In sospeso" #~ msgid "Identify" #~ msgstr "Identifica" #~ msgid "Finding tip Perforce changelist..." #~ msgstr "Ricerca tip della lista modifiche Perforce..." #~ msgid "Font used in file lists in status and commit tools. Default: sans 9" #~ msgstr "" #~ "Font usato nella lista file negli strumenti di stato file e commit. " #~ "Default: sans 9" #~ msgid "Unable to determine repository status" #~ msgstr "Impossibile determinare lo stato del repository" #~ msgid "Null changeset is not viewable" #~ msgstr "Il changeset null non è visualizzabile" #~ msgid "Changeset not found in current view" #~ msgstr "Changeset non trovato nella visualizzazione corrente" #~ msgid "series become inconsistent during reorder" #~ msgstr "la serie di patch diverrà inconsistente durante il riordino" #~ msgid "Confirm Switch" #~ msgstr "Conferma il cambio" #~ msgid "Switch after saving changes?" #~ msgstr "Cambia dopo aver salvato le modifiche?" #~ msgid "Please try again after the previous command has completed" #~ msgstr "Si prega di riprovare dopo il completamento del precedente comando" #~ msgid "unable to clean temp directory: %s\n" #~ msgstr "impossibile ripulire la directory temporanea: %s\n" #~ msgid "Status: %s" #~ msgstr "Stato: %s" #~ msgid "Please try again after the running operation is completed" #~ msgstr "" #~ "Si prega di riprovare dopo il completamento dell'operazione in corso" #~ msgid "Finished committing" #~ msgstr "Commit completato" #~ msgid "Finished committing and pushing" #~ msgstr "Commit e push completato" #~ msgid "Annotate Second Parent" #~ msgstr "Annota secondo genitore" #~ msgid "_Annotate First Parent" #~ msgstr "_Annota primo genitore" #~ msgid "No matches" #~ msgstr "Nessuna corrispondenza" #~ msgid "Show overlay icons in Mercurial repositories" #~ msgstr "Mostra le icone di overlay nei repository Mercurial" #~ msgid "Annotate" #~ msgstr "Annota" #~ msgid "Show overlays on local disks only" #~ msgstr "Mostra le icone di overlay solo sui dischi locali" #~ msgid "Show message" #~ msgstr "Mostra messaggio" #~ msgid "Show title" #~ msgstr "Mostra titolo" #~ msgid "Menu Items" #~ msgstr "Voci del menu" #~ msgid "St" #~ msgstr "St" #~ msgid "_Diff to Local" #~ msgstr "_Confronta con locale" #~ msgid "_goto (update workdir)" #~ msgstr "_Vai a (aggiorna la directory di lavoro)" #~ msgid "_new" #~ msgstr "_Nuovo" #~ msgid "_edit message" #~ msgstr "_Modifica messaggio" #~ msgid "removing backup file : %r\n" #~ msgstr "Rimozione file di backup: %r\n" #~ msgid "file copy of %s failed\n" #~ msgstr "Copia del file %s fallita\n" #~ msgid "Bundling from %(base)s to tip..." #~ msgstr "Creazione bundle da %(base)s al tip in corso..." #~ msgid "Bundling from %(base)s to %(rev)s..." #~ msgstr "Creazione bundle da %(base)s a %(rev)s in corso..." #~ msgid "File is binary.\n" #~ msgstr "Il file è binario.\n" #~ msgid ", please refresh" #~ msgstr ", aggiorna" #~ msgid "Subversion" #~ msgstr "Sottoversione" #~ msgid "Refresh required" #~ msgstr "Richiesto aggiornamento" #~ msgid "Configure Plugin" #~ msgstr "Configura Plugin" #~ msgid "Force" #~ msgstr "Forza" #~ msgid "Abandon" #~ msgstr "Abbandona" #~ msgid "_finish" #~ msgstr "_finito" #~ msgid "Show graph" #~ msgstr "Mostra grafico" #~ msgid "Starting Revision:" #~ msgstr "Revisione iniziale:" #~ msgid "Commit failed" #~ msgstr "Conferma fallita" #~ msgid "" #~ "** Please report this bug to http://bitbucket.org/tortoisehg/stable/" #~ "issues\n" #~ msgstr "" #~ "** Si prega di riportare questo errore a http://bitbucket.org/tortoisehg/" #~ "stable/issues\n" #~ msgctxt "changesets" #~ msgid "All" #~ msgstr "Tutto" #~ msgid "Error while reading status" #~ msgstr "Errore durante la lettura dello stato" #~ msgid "Run Commit after init" #~ msgstr "Esegui conferma dopo l'inizializzazione" #~ msgid "No revisions matched search" #~ msgstr "Nessuna revisione corrisponde alla ricerca" #~ msgid "" #~ "Show a full directory path of the repository in the dialog title instead " #~ "of just the root directory name. Default: False" #~ msgstr "" #~ "Mostra nel titolo del dialogo il percorso completo del repository invece " #~ "del solo nome della radice. Predefinito: Falso" #~ msgid "" #~ "Adjust the display of the main toolbar in the Repository Explorer. " #~ "Values: small, large, or theme. Default: theme" #~ msgstr "" #~ "Regola la visualizzazione della barra principale degli strumenti " #~ "nell'Explorer del Repository. Valori: piccola, grande o tema. " #~ "Predefinito: tema" #~ msgid "Default Tab" #~ msgstr "Scheda predefinita" #~ msgid "Uncommitted Local Changes" #~ msgstr "Modifiche locali non confermate" #~ msgid "Show internal branches" #~ msgstr "Mostra rami interni" #~ msgid "abort: backup restore failed, %s\n" #~ msgstr "abortito: ripristino fallito del backup, %s\n" #~ msgid "abandon failed\n" #~ msgstr "abbandono fallito\n" #~ msgid "nothing to abandon\n" #~ msgstr "nulla da abbandonare\n" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/ja.po0000644000000000000000000113737414440352353016240 0ustar00rootroot# Japanese translation for tortoisehg # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the tortoisehg package. # # # FIRST AUTHOR , 2009. # Yuya Nishihara , 2011. msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2015-09-07 12:25+0000\n" "Last-Translator: Yuya Nishihara \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2019-07-17 05:43+0000\n" "X-Generator: Launchpad (build 19009)\n" msgid "TortoiseHg Overlay Icon Server" msgstr "TortoiseHg オーバーレイアイコンサーバ" msgid "Exit" msgstr "終了" msgid "About" msgstr "バージョン情報" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "いくつかのアイコンは TortoiseSVN と Tango から無料提供されています。" msgid "You can visit our site here" msgstr "最新情報はこちら" msgid "&License" msgstr "ライセンス(&L)" #, python-format msgid "version %s" msgstr "バージョン %s" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "新しいバージョンの TortoiseHg (%s) がダウンロードできます。" msgid "License" msgstr "ライセンス" msgid "= Working Directory Parent =" msgstr "= 作業領域の親リビジョン =" msgid "Directory of files" msgstr "ディレクトリにファイルとして保存" msgid "Tar archives" msgstr "tar アーカイブ" msgid "Uncompressed tar archive" msgstr "無圧縮の tar アーカイブ" msgid "Bzip2 tar archives" msgstr "bzip2 圧縮の tar アーカイブ" msgid "Tar archive compressed using bzip2" msgstr "bzip2 を使用した tar アーカイブ" msgid "Gzip tar archives" msgstr "gzip 圧縮の tar アーカイブ" msgid "Tar archive compressed using gzip" msgstr "gzip を使用した tar アーカイブ" msgid "Zip archives" msgstr "Zip アーカイブ" msgid "Uncompressed zip archive" msgstr "無圧縮の zip アーカイブ" msgid "Zip archive compressed using deflate" msgstr "deflate で圧縮した zip アーカイブ" msgid "Revision:" msgstr "リビジョン:" msgid "All files in this revision" msgstr "" msgid "Only files modified/created in this revision" msgstr "このリビジョンで更新・作成されたファイルのみ" msgid "Only files modified/created since:" msgstr "" msgid "Archive Content:" msgstr "" msgid "Recurse into subrepositories" msgstr "サブリポジトリを含む" msgid "Browse..." msgstr "選択..." msgid "Destination path:" msgstr "保存先:" msgid "Archive types:" msgstr "アーカイブの種類:" msgid "Hg command:" msgstr "Hg コマンド:" msgid "Select Destination Folder" msgstr "保存先フォルダの選択" msgid "Select Destination File" msgstr "保存先ファイルの選択" msgid "All files (*)" msgstr "すべてのファイル (*)" msgid "Duplicate Name" msgstr "名前の重複" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "保存先のファイル「%s」は既に存在します!" msgid "Confirm Overwrite" msgstr "上書きの確認" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" "ディレクトリ「%s」に何かあります!\n" "\n" "上書きしますか?" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" "\"%s\" は既に存在しています!\n" "\n" "このファイルを上書きしますか?" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "保存先のフォルダ「%s」は既に存在します!" #, python-format msgid "Archive - %s" msgstr "アーカイブ - %s" msgid "&Archive" msgstr "アーカイブ(&A)" msgid "Backout requires a parent revision" msgstr "打ち消しには親リビジョンが必要です" msgid "Cannot backout change on a different branch" msgstr "他のブランチの変更は打ち消せません" #, python-format msgid "Backout - %s" msgstr "バックアウト - %s" msgid "Prepare to backout" msgstr "バックアウトの準備" msgid "Verify backout revision and ensure your working directory is clean." msgstr "打ち消し対象のリビジョンと作業領域の状態を確認してください。" msgid "Backing out a parent revision is a single step operation" msgstr "親リビジョンの打ち消しは、単一の操作です" msgid "Backout revision" msgstr "打ち消し対象リビジョン" msgid "Not a head, backout will create a new head!" msgstr "ヘッドに居ないため、バックアウト後に新しいヘッドができます!" msgid "Current local revision" msgstr "現在のローカルリビジョン" msgid "Working directory status" msgstr "作業領域の状態" msgid "Checking..." msgstr "確認中..." msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" "バックアウトする前に、 コミット、パッチへ シェルフ 、または変更を 破" "棄 する必要があります。" msgid "Automatically resolve merge conflicts where possible" msgstr "マージ衝突をできるだけ自動で解消" msgid "Uncommitted local changes are detected" msgstr "コミットしていない変更がローカルにあります" msgid "Clean" msgstr "クリーン" msgid "Backing out, then merging..." msgstr "打ち消し、マージしています..." msgid "All conflicting files will be marked unresolved." msgstr "マージできなかったファイルは全て衝突未解消として記録されます。" msgid "Automatically advance to next page when backout and merge are complete." msgstr "打ち消しとマージが成功すると、自動的に次のページヘと移動します" #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" "%d つのファイルで マージ衝突 - 解消する" msgid "No merge conflicts, ready to commit" msgstr "マージ衝突なし。コミット可能。" msgid "Commit backout and merge results" msgstr "バックアウト・マージ結果をコミット" msgid "Parents" msgstr "親リビジョン" msgid "Working Directory" msgstr "作業領域" msgid "Working Directory (merged)" msgstr "作業領域 (マージ)" msgid "Commit message" msgstr "コミットメッセージ" msgid "Skip final confirmation page, close after commit." msgstr "最後の確認ページをスキップし、コミットの後にウィンドウを閉じます。" msgid "Backed out changeset: " msgstr "バックアウトしたチェンジセット: " msgid "Confirm Discard Message" msgstr "コミットログの破棄" msgid "Discard current backout message?" msgstr "バックアウトメッセージを破棄してもよろしいですか?" msgid "Use English backout message" msgstr "英語メッセージを使用する" msgid "Backing out and committing..." msgstr "打ち消した後、コミットしています..." msgid "Please wait while making backout." msgstr "打ち消しが終わるまでしばらくお待ち下さい" msgid "Committing..." msgstr "コミット中..." msgid "Please wait while committing merged files." msgstr "ファイルをマージしている間しばらくお待ち下さい。" msgid "Finished" msgstr "完了" msgid "Backout changeset" msgstr "打ち消したチェンジセット" #, python-format msgid "Bisect - %s" msgstr "二分探索 - %s" msgid "Accept" msgstr "取り込む" msgid "Known good revision:" msgstr "既知の正常なリビジョン:" msgid "Known bad revision:" msgstr "既知の問題リビジョン:" msgid "Discard local changes (revert --all)" msgstr "作業領域の変更を破棄 (revert --all)" msgid "Revision is &Good" msgstr "リビジョンは問題なし(&G)" msgid "Revision is &Bad" msgstr "リビジョンは問題あり(&B)" msgid "&Skip this Revision" msgstr "リビジョンを飛ばす(&S)" msgid "Close" msgstr "閉じる" msgid "Error encountered." msgstr "問題が起きました。" msgid "Culprit found." msgstr "問題を発生させたリビジョンを発見しました。" msgid "Revision" msgstr "リビジョン" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "このリビジョンをテストし、発見したものを報告する(good/bad/skip)" #, python-format msgid "%s (hint: %s)" msgstr "%s (ヒント: %s)" msgid "Bookmark:" msgstr "ブックマーク:" msgid "New Name:" msgstr "新しいブックマーク名:" msgid "Activate:" msgstr "アクティブ化:" msgid "&Add" msgstr "追加(&A)" msgid "Re&name" msgstr "名前変更(&N)" msgid "&Remove" msgstr "削除(&R)" msgid "&Move" msgstr "移動(&M)" #, python-format msgid "Bookmark - %s" msgstr "ブックマーク - %s" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "「%s」というブックマークは既にあります" #, python-format msgid "Bookmark '%s' has been added" msgstr "ブックマーク「%s」を追加しました" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "「%s」というブックマークはありません" #, python-format msgid "Bookmark '%s' has been moved" msgstr "ブックマーク「%s」を移動しました" #, python-format msgid "Bookmark '%s' does not exist" msgstr "ブックマーク \"%s\" は存在しません" #, python-format msgid "Bookmark '%s' has been removed" msgstr "ブックマーク「%s」を削除しました" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "ブックマーク「%s」を「%s」へ変更しました" msgid "TortoiseHg Bookmark Sync" msgstr "" msgid "Outgoing Bookmarks" msgstr "" msgid "&Push Bookmark" msgstr "" msgid "&Remove Bookmark" msgstr "" msgid "Incoming Bookmarks" msgstr "" msgid "P&ull Bookmark" msgstr "" msgid "R&emove Bookmark" msgstr "" #, python-format msgid "Pushed local bookmark: %s" msgstr "" #, python-format msgid "Pulled remote bookmark: %s" msgstr "" #, python-format msgid "Removed remote bookmark: %s" msgstr "" #, python-format msgid "Removed local bookmark: %s" msgstr "" #, python-format msgid "%s - branch operation" msgstr "%s - ブランチ作業" msgid "Select branch of merge commit" msgstr "マージコミットのブランチを選択" msgid "Changes take effect on next commit" msgstr "変更は次のコミットで反映されます" msgid "No branch changes" msgstr "ブランチを変更しない" msgid "Open a new named branch" msgstr "新しくブランチを開始する" msgid "Close current branch" msgstr "現行ブランチを閉じる" #, python-format msgid "Please report this bug to our bug tracker" msgstr "バグを バグトラッカー へ報告しましょう" msgid "Checking for updates..." msgstr "アップデートを確認しています..." msgid "Copy" msgstr "コピー" msgid "Quit" msgstr "終了" msgid "TortoiseHg Bug Report" msgstr "TortoiseHgバグ報告" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "新しいバージョンの TortoiseHg へアップグレードすることを推奨します。" msgid "Your TortoiseHg is up to date." msgstr "TortoiseHg の最新版をお使いです。" msgid "Save error report to" msgstr "バグ報告の保存" msgid "Text files (*.txt)" msgstr "テキストファイル (*.txt)" msgid "Error writing file" msgstr "ファイル書き込みエラー" msgid "TortoiseHg Error" msgstr "TortoiseHg エラー" msgid "" "If you still have trouble, please file a bug report." msgstr "" "もしまだ問題があれば、バグレポートを作成してください" msgid "Visual Diff" msgstr "GUI 差分の表示" msgid "View file changes in external diff tool" msgstr "外部差分ツールを使ってファイルの変更を見る" msgid "Edit Local" msgstr "ローカルファイルをエディタで開く" msgid "Edit current file in working copy" msgstr "作業領域のファイルを編集" msgid "Revert to Revision" msgstr "このリビジョンへ復旧" msgid "Revert file(s) to contents at this revision" msgstr "このリビジョンの内容にファイルを復旧する" msgid "Patch failed to apply" msgstr "パッチ適用失敗" msgid "Manually resolve rejected chunks?" msgstr "失敗箇所を手修正しますか?" msgid "Edit patched file and rejects?" msgstr "パッチが成功したファイルと失敗したファイルを編集しますか?" msgid "No deletable chunks" msgstr "削除可能なチャンクはありません" msgid "Completely remove file from patch?" msgstr "パッチから完全にファイルを削除しますか?" msgid "Revert all file changes?" msgstr "すべてのファイルの変更を復旧しますか?" msgid "No chunks remain" msgstr "もうチャンクはありません" msgid "file has been deleted, refresh" msgstr "ファイルが削除されました。更新します" msgid "file has been modified, refresh" msgstr "ファイルが変更されました。更新します" msgid "Unable to merge chunks" msgstr "チャンクをマージできません" msgid "Add or remove patches must be merged in the working directory" msgstr "パッチを追加あるいは取り除くには、作業領域にマージする必要があります" msgid "Unable to remove" msgstr "取り除けません" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" "ファイル %s を取り除けません。\n" "権限がありません" msgctxt "files" msgid "All" msgstr "すべて" msgctxt "files" msgid "None" msgstr "解除" msgid "Toggle display of text search bar" msgstr "検索バーを表示/非表示" msgid "Diff Toolbar" msgstr "差分ツールバー" #, python-format msgid "Chunks selected: %d / %d" msgstr "選択したチャンク: %d / %d" msgid "Please wait while the file is opened ..." msgstr "ファイルが開くまでしばらくお待ちください..." msgid "Source:" msgstr "ソース:" msgid "Destination:" msgstr "ターゲット:" msgid "Options" msgstr "オプション" msgid "Clone to revision:" msgstr "このリビジョンまでクローン:" msgid "A revision identifier, bookmark, tag or branch name" msgstr "" msgid "Do not update the new working directory" msgstr "作業領域を更新しない" msgid "Use pull protocol to copy metadata" msgstr "メタデータのコピーにプル操作のプロトコルを使用する" msgid "Clone with minimal processing" msgstr "" msgid "Include patch queue" msgstr "パッチキューも含む" msgid "Use proxy server" msgstr "プロキシサーバーを使用する" msgid "Do not verify host certificate" msgstr "ホスト証明書を検証しない" msgid "Remote command:" msgstr "リモートコマンド:" msgid "Use largefiles" msgstr "" msgid "Start revision:" msgstr "指定リビジョンから:" msgid "Select source repository" msgstr "クローン元リポジトリを選んでください" msgid "Select destination repository" msgstr "クローン先リポジトリを選んでください" msgid "Select patch folder" msgstr "パッチフォルダーを選んでください" #, python-format msgid "Clone - %s" msgstr "クローン - %s" msgid "&Clone" msgstr "クローン(&C)" msgid "failed to start command\n" msgstr "コマンドの開始に失敗しました\n" msgid "error while running command\n" msgstr "コマンド実行中にエラーが起きました\n" #, python-format msgid "process exited unexpectedly with code %d" msgstr "" #, python-format msgid "failed to encode command: %s" msgstr "" #, python-format msgid "timed out while reading: %r..." msgstr "" msgid "timed out waiting for message" msgstr "" #, python-format msgid "unexpected response on required channel %r" msgstr "" #, python-format msgid "invalid \"hello\" message: %r" msgstr "" msgid "no \"runcommand\" capability" msgstr "" #, python-format msgid "corrupted command result: %r" msgstr "" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "" msgid "Terminated by user" msgstr "ユーザーによって中断されました" #, python-format msgid "[command terminated by user %s]" msgstr "[ユーザによって終了されました %s]" #, python-format msgid "[command interrupted %s]" msgstr "[コマンドが中断されました %s]" #, python-format msgid "[command returned code %d %%s]" msgstr "[コマンドの返り値 %d %%s]" #, python-format msgid "[command completed successfully %s]" msgstr "[コマンドが成功しました %s]" msgid "Running..." msgstr "実行中..." msgid "Failed!" msgstr "失敗!" msgid "Clea&r Log" msgstr "ログを削除(&R)" msgid "TortoiseHg Prompt" msgstr "TortoiseHgプロンプト" msgid "Show Detail" msgstr "詳細を表示" msgid "Hide Detail" msgstr "詳細を隠す" msgid "Confirm Exit" msgstr "終了" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" "Mercurialのコマンドがまだ実行中です。\n" "本当に終了しますか?" msgid "&Run" msgstr "実行(&R)" msgid "TortoiseHg Command Dialog" msgstr "TortoiseHg コマンドダイアログ" msgid "Command Error" msgstr "コマンドエラー" #, python-format msgid "[Code: %d]" msgstr "[終了値: %d]" msgid "Merge" msgstr "マージ" #, python-format msgid "Merge with %s" msgstr "%s とマージ" msgid "Patch Name Required" msgstr "パッチ名が必要です" msgid "You must enter a patch name" msgstr "パッチ名を入力して下さい" msgctxt "start progress" msgid "Commit" msgstr "コミット" msgctxt "start progress" msgid "MQ Action" msgstr "MQアクション" msgctxt "start progress" msgid "Rollback" msgstr "巻き戻し" msgid "Commit Dialog Toolbar" msgstr "コミットダイアログツールバー" msgid "Branch: " msgstr "ブランチ: " msgid "Copy message" msgstr "メッセージをコピーする" msgid "Copy one of the recent commit messages" msgstr "最近のコミットメッセージをコピーする" msgid "Show Issues" msgstr "課題を表示" msgid "Please wait..." msgstr "しばらくお待ち下さい…" #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "課題管理の読み込みに失敗しました '%s': %s" msgid "Issue Tracker" msgstr "課題管理" msgid "Show Issues..." msgstr "課題を表示..." msgid "Stop" msgstr "中止" msgid "### patch name ###" msgstr "### パッチ名 ###" msgid "Commit changes" msgstr "変更をコミット" msgid "Commit" msgstr "コミット" msgid "Amend current revision" msgstr "現在のリビジョンを改変" msgid "Amend" msgstr "改変" msgid "Create a new patch" msgstr "パッチを作成" msgid "QNew" msgstr "パッチ作成" msgid "Refresh current patch" msgstr "現行のパッチを更新" msgid "QRefresh" msgstr "パッチ更新" msgid "Confirm Branch Change" msgstr "ブランチ変更確認" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "名前付きブランチ「%s」は既に存在します (最終リビジョンは %d)\n" msgid "Restart &Branch" msgstr "ブランチを切り直し(&B)" msgid "&Commit to current branch" msgstr "現行のブランチへコミット(&C)" msgid "Cancel" msgstr "キャンセル" msgid "Confirm New Branch" msgstr "新規ブランチの作成" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "このコミットで「%s」という名前付きブランチを開始しますか?\n" msgid "Create &Branch" msgstr "ブランチ作成(&B)" msgid "Close Branch: " msgstr "ブランチを閉じる: " msgid "New Branch: " msgstr "新規ブランチ: " #, python-format msgid "Selected Options: %s" msgstr "選択したオプション: %s" msgid "Parent:" msgstr "親リビジョン:" msgid "Patch name:" msgstr "パッチ名:" #, python-format msgid "Close %s branch" msgstr "%s ブランチを閉鎖" #, python-format msgid "Rollback commit to revision %d" msgstr "リビジョン %d にコミットを巻き戻す" msgid "Confirm Undo" msgstr "元に戻す確認" msgid "Discard current commit message?" msgstr "現在のコミットメッセージを破棄してもよろしいですか?" msgid "Message Translation Failure" msgstr "メッセージの翻訳失敗" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" msgid "&Replace" msgstr "置き換え(&R)" msgid "Nothing Committed" msgstr "コミットなし" msgid "Please enter commit message" msgstr "コミットメッセージを入力してください" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" "コミットメッセージの中に課題へのリンクがありません。コミットメッセージに課題" "へのリンクが必要です。これは設定の'課題管理'から変更できます。" msgid "No files checked" msgstr "なにもファイルが選択されていません" msgid "No modified files checkmarked for commit" msgstr "変更されたファイルが選択されていません" msgid "Confirm Add" msgstr "追加の確認" msgid "Add selected untracked files?" msgstr "選択した管理下にないファイルを追加しますか?" msgid "Confirm Remove" msgstr "削除の確認" msgid "Remove selected deleted files?" msgstr "削除されたファイルを登録除外しますか?" msgid "Nothing changed." msgstr "変更はありません。" msgctxt "window title" msgid "Commit" msgstr "コミット" #, python-format msgid "%s - commit options" msgstr "%s - コミットオプション" msgid "Set username:" msgstr "ユーザー名を設定:" msgid "Save in Repo" msgstr "レポに保存" msgid "Save Global" msgstr "全体に保存" msgid "Set Date:" msgstr "日時を設定:" msgid "Update" msgstr "更新" msgid "Push After Commit:" msgstr "コミット後にプッシュ" msgid "Auto Includes:" msgstr "自動的に追加:" msgid "Recurse into subrepositories (--subrepos)" msgstr "サブリポジトリも巡回 (--subrepos)" msgid "Unable to save username" msgstr "ユーザー名を保存できません" msgid "Iniparse must be installed." msgstr "Iniparseをインストールしてください。" msgid "Unable to write configuration file" msgstr "設定ファイルに書き込めません" msgid "Unable to save after commit push" msgstr "コミット後にプッシュの保存失敗" msgid "Unable to save auto include list" msgstr "自動的に追加の保存失敗" msgid "Unable to save recurse in subrepos." msgstr "サブリポジトリも巡回の保存失敗" msgid "Invalid date format" msgstr "日付の形式が不正です" msgid "No username configured" msgstr "ユーザー名が設定されていません" #, python-format msgid "%s - commit" msgstr "%s - コミット" msgid "TortoiseHg Commit" msgstr "TortoiseHg コミット" msgid "Are you sure that you want to cancel the commit operation?" msgstr "コミットを中止して本当によろしいですか?" msgid "Compress changesets up to and including" msgstr "以下のチェンジセットを圧縮します" msgid "Onto destination" msgstr "圧縮後" msgid "Compress" msgstr "圧縮" #, python-format msgid "Compress - %s" msgstr "圧縮 - %s" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the compress" msgstr "圧縮できます" msgid "Changes have been moved, you must now commit" msgstr "変更が移動しました。今すぐコミットしてください" msgctxt "action button" msgid "Commit" msgstr "コミット" msgid "Compress is complete, old history untouched" msgstr "圧縮が完了しました。古い履歴はなにも変更ありません" msgid "must be specified repository" msgstr "リポジトリの指定は必須です" msgid "must be specified 'type' in style" msgstr "スタイルには 'type' が必須です" msgid "Git Commit:" msgstr "" msgid "Summary:" msgstr "要約:" msgid "User:" msgstr "ユーザー:" msgid "Date:" msgstr "日付:" msgid "Age:" msgstr "経過時間:" msgid "Branch:" msgstr "ブランチ:" msgid "Close:" msgstr "閉じる:" msgid "Tags:" msgstr "タグ:" msgid "Graft:" msgstr "移植 (graft):" msgid "Transplant:" msgstr "移植元:" msgid "Obsolete state:" msgstr "廃止状態:" msgid "Perforce:" msgstr "Perforce:" msgid "Subversion:" msgstr "Subversion:" msgid "Converted From:" msgstr "変換元:" msgid "Original Parent:" msgstr "元の親:" msgid "No items to display" msgstr "表示する項目がありません" msgid "Use compact view" msgstr "コンパクト表示" msgid "Patch:" msgstr "パッチ:" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "%(total)d 件中 %(count)d 件を表示中" msgid "Select a GUI location to edit:" msgstr "編集する場所を選択して下さい:" msgid "Select the toolbar or menu to change" msgstr "編集する場所をツールバーかメニューかを選んで下さい" msgid "Tools shown on selected location" msgstr "選択した場所に表示するツール" msgid "Delete from list" msgstr "リストから削除" msgid "Add to list" msgstr "リストに追加" msgid "Add separator" msgstr "区切りを追加" msgid "List of all tools" msgstr "全てのツール" msgid "New Tool ..." msgstr "ツール追加..." msgid "Edit Tool ..." msgstr "ツール編集..." msgid "Delete Tool" msgstr "ツール削除..." msgid "Type" msgstr "タイプ" msgid "Name" msgstr "名前" msgid "Command" msgstr "コマンド" msgid "New hook" msgstr "フック追加" msgid "Edit hook" msgstr "フック編集" msgid "Delete hook" msgstr "フック削除" msgid "Replace existing hook?" msgstr "既存のフックを置き換え?" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" "%s.%s というフックは既にあります。\n" "\n" "置き換えますか?" msgid "OK" msgstr "OK" msgid "Missing information" msgstr "情報が足りません" msgid "All items" msgstr "すべて" msgid "Working directory" msgstr "作業領域" msgid "All revisions" msgstr "すべてのリビジョン" msgid "All contexts" msgstr "すべてのコンテキスト" msgid "Fixed revisions" msgstr "通常のリビジョン" msgid "Applied patches" msgstr "適用済みパッチ" msgid "Applied patches or qparent" msgstr "適用済みパッチかqparent" msgid "" msgstr "" msgid "Configure Custom Tool" msgstr "カスタムツール設定" msgid "Tool name" msgstr "ツール名" msgid "The tool name. It cannot contain spaces." msgstr "ツール名。空白が含まれていてはいけません" #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" msgid "Tool label" msgstr "ラベル" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" "repowidgetのコンテキストメニューに表示されるラベルです。\n" "ラベルが設定されていない場合、ツール名がラベルとして使われます。\n" "tooltipが設定されていない場合、このラベルはtooltipとしても使われます。" msgid "Tooltip" msgstr "Tooltip" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" "ツールボタンの上に表示されるtooltipです。\n" "これはworkbenchツールバーにあるツールボタンでのみ表示されます。" msgid "Icon" msgstr "アイコン" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" "ツールのアイコンです。\n" "正しいTortoiseHgのアイコン名を指定することで、TortoiseHg内蔵のアイコンを使え" "ます (例: clone、add、remove、sync、thg-logo、hg-update等)。\n" "また、ファイルシステム上の絶対パスを入力することで好きなアイコンを表示できま" "す。" msgid "On repowidget, show for" msgstr "repowidgetでの表示" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" "どのリビジョンでこのカスタムツールが有効になるか。\n" "選択したリビジョンのコンテキストメニューでツールが表示されている時にのみ有効" "です。" msgid "Show Output Log" msgstr "出力ログの表示" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" "有効の場合、コマンド実行時に出力ログが自動で表示されます。初期設定は無効で" "す。" msgid "You must set a tool name." msgstr "ツール名を設定して下さい。" msgid "The tool name cannot have any spaces in it." msgstr "ツール名には空白を含めないで下さい。" msgid "You must set a command to run." msgstr "実行するコマンドを設定して下さい。" msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" msgid "Configure Hook" msgstr "フックを設定" msgid "Hook type" msgstr "フックタイプ" msgid "Select when your command will be run" msgstr "" msgid "The hook name. It cannot contain spaces." msgstr "" msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" "実行するコマンド。\n" "Python 関数を実行する場合は「python:」を先頭に追加してください。\n" msgid "You must set a valid hook type." msgstr "正しいフックタイプを指定して下さい。" msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "フック名に空白・タブ・「=」は使えません。" msgid "Console" msgstr "コンソール" msgid "File &History / Annotate" msgstr "ファイルの変更履歴・由来情報(&H)" msgid "Show the history of the selected file" msgstr "選択したファイルの履歴を表示する" msgid "Co&mpare File Revisions" msgstr "ファイルのリビジョンを比較(&M)" msgid "Compare revisions of the selected file" msgstr "選択したファイルのリビジョンを比較する" msgid "Filter Histor&y" msgstr "" msgid "Query about changesets affecting the selected files" msgstr "" msgid "Diff &Changeset to Parent" msgstr "" msgid "Diff Changeset to Loc&al" msgstr "" msgid "&Diff to Parent" msgstr "親リビジョンとの差分 (&diff)" msgid "Diff to &Local" msgstr "ローカルとの差分(&L) (diff)" msgid "View changes to current in external diff tool" msgstr "外部差分ツールで現在のリビジョンに対する差分を表示する" msgid "&View at Revision" msgstr "このリビジョンを開く(&V)" msgid "View file as it appeared at this revision" msgstr "このリビジョン時点でのファイルを開く" msgid "&Save at Revision..." msgstr "このリビジョンを保存(&S)..." msgid "Save file as it appeared at this revision" msgstr "このリビジョン時点でのファイルを保存" msgid "Save file to" msgstr "ファイルに保存" msgid "&Edit Local" msgstr "ローカルファイルを編集(&E)" msgid "&Open Local" msgstr "ローカルファイルを開く(&O)" msgid "E&xplore Local" msgstr "" msgid "Open parent folder of current file in the system file manager" msgstr "" msgid "&Copy Patch" msgstr "パッチをコピー(&C)" msgid "Copy &Path" msgstr "パスをコピー(&P)" msgid "Copy full path of file(s) to the clipboard" msgstr "ファイルのフルパスをクリップボードにコピー" msgid "&Revert to Revision..." msgstr "このリビジョンへ復旧 (&revert)..." msgid "Open S&ubrepository" msgstr "サブリポジトリを開く(&U)" msgid "Open the selected subrepository" msgstr "選択したサブリポジトリを開く" msgid "E&xplore Folder" msgstr "フォルダを開く(&X)" msgid "Open the selected folder in the system file manager" msgstr "選択したフォルダをシステムのファイルマネージャーで表示します" msgid "Open &Terminal" msgstr "端末を開く(&T)" msgid "Open a shell terminal in the selected folder" msgstr "選択したフォルダーで端末を開きます。" msgid "Custom Tools" msgstr "カスタムツール" msgid "Diff &Local" msgstr "" msgid "&View Missing" msgstr "不明ファイルを表示(&V)" msgid "View O&ther" msgstr "他を表示(&T)" msgid "Add &Largefiles..." msgstr "大容量ファイルを追加(&L)..." msgid "&Forget" msgstr "登録除外 (&forget)" msgid "&Delete Unversioned..." msgstr "未バージョン管理を削除(&D)..." msgid "Confirm Delete Unversioned" msgstr "未バージョン管理ファイルの削除確認" msgid "Delete the following unversioned files?" msgstr "未バージョン管理のファイルを削除しますか?" msgid "&Delete" msgstr "削除(&D)" msgid "Re&move Versioned" msgstr "削除(&M)" msgid "&Revert..." msgstr "復旧 (&revert)..." msgid "Uncommited merge - please select a parent revision" msgstr "未コミットマージ - 親リビジョンを選択してください" msgid "Revert files to local or other parent?" msgstr "ファイルをローカルまたは他の親リビジョンの状態に復旧しますか?" msgid "&Local" msgstr "ローカル(&L)" msgid "&Other" msgstr "その他(&O)" msgid "Confirm Revert" msgstr "復旧の確認" msgid "Revert local file changes?" msgstr "ローカルのファイル変更を復旧しますか?" msgid "&Revert with backup" msgstr "変更をバックアップして復旧する (&R)" msgid "&Discard changes" msgstr "変更を破棄 (&D)" msgid "Revert the following files?" msgstr "これらのファイルを復旧しますか?" msgid "&Revert" msgstr "復旧 (&Revert)" msgid "&Copy..." msgstr "コピー (©)..." msgid "Re&name..." msgstr "名前変更 (re&name)..." msgid "&Ignore..." msgstr "無視(&I)..." msgid "Edit Re&jects" msgstr "" msgid "Manually resolve rejected patch chunks" msgstr "" msgid "De&tect Renames..." msgstr "名前の変更を検出(&T)..." msgid "&Mark Resolved" msgstr "" msgid "&Mark Unresolved" msgstr "" msgid "Restart Mer&ge" msgstr "再マージ (mer&ge)" msgid "Was renamed from" msgstr "" msgid "Restart Merge &with" msgstr "指定ツールで再マージ(&W)" msgid "Display the file anyway" msgstr "ファイルを表示させる" msgid "Diff not displayed: " msgstr "差分は表示されません: " #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" "ファイルが指定された最大サイズより大きいです\n" "最大サイズ = %s KB" msgid "File is binary" msgstr "バイナリファイル" msgid "File may be binary (maximum line length exceeded)" msgstr "おそらくバイナリファイルです(最大行数を超えています)" msgid "File or diffs not displayed: " msgstr "ファイルや差分を表示しません: " msgid " (was added)" msgstr " (追加)" #, python-format msgid " (copied from %s)" msgstr " (%s から複製)" #, python-format msgid " (renamed from %s)" msgstr " (改名元: %s)" msgid " (is a symlink)" msgstr " (シンボリックリンク)" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" "ファイルか差分が表示できません。: ファイルは最大サイズ設定より大きいです。\n" "最大差分 = %s KB" msgid " (was deleted)" msgstr " (は削除されました)" msgid " (was added, now missing)" msgstr " (は追加されましたが今はありません)" msgid " (is unversioned)" msgstr " (はまだバージョン管理下にはありません)" msgid "exec mode has been set" msgstr "実行権限を設定" msgid "exec mode has been unset" msgstr "実行権限を解除" #, python-format msgid "changeset: %s" msgstr "チェンジセット: %s" msgid "Initial revision" msgstr "初期リビジョン" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" "[警告] 無効なサブリポジトリのリビジョンID:\n" "\t%s\n" "\n" msgid "Subrepo created and set to initial revision." msgstr "" msgid "Subrepo initialized to revision:" msgstr "" msgid "Subrepo removed from repository." msgstr "リポジトリからサブリポジトリが取り除かれました。" msgid "Previously the subrepository was at the following revision:" msgstr "" msgid "Subrepo was not changed." msgstr "サブリポジトリは変更されていません。" msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "" msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "" msgid "Subrepo state is:" msgstr "サブリポジトリの状態:" msgid "Revision has changed to:" msgstr "リビジョンは以下の変更:" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "" msgid "From:" msgstr "From:" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" msgid "Subrepository not found in the working directory." msgstr "作業領域にサブリポジトリが見つかりません。" msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" msgid "Not a Mercurial subrepo, not previewable" msgstr "Mercurialのサブリポジトリではありません。プレビューできません" #, python-format msgid "Error previewing subrepo: %s" msgstr "サブリポジトリのプレビューでエラー: %s" msgid "Subrepo may be damaged or inaccessible." msgstr "" msgid "The subrepository is dirty." msgstr "サブリポジトリに変更があります。" msgid "File Status:" msgstr "ファイルの状態:" msgid "(is a changed sub-repository)" msgstr "" msgid "(is an unchanged sub-repository)" msgstr "" msgid "(is a dirty sub-repository)" msgstr "" msgid "(is a new sub-repository)" msgstr "" msgid "(is a removed sub-repository)" msgstr "" msgid "(is a changed and dirty sub-repository)" msgstr "" msgid "(is a new and dirty sub-repository)" msgstr "" msgid "open..." msgstr "開く…" #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "Hg ファイルログビューアー [%s] - %s" msgid "File History Log Columns" msgstr "ファイル変更履歴のログ表示列" msgid "Back" msgstr "戻る" msgid "Forward" msgstr "進む" msgid "Diff Selected &Changesets" msgstr "" msgid "&Diff Selected File Revisions" msgstr "" msgid "Show Revision &Details" msgstr "リビジョンの詳細を表示(&D)" msgid "Too many rows selected for menu" msgstr "" msgid "File Differences Log Columns" msgstr "ファイル比較のログ表示列" msgid "Next diff" msgstr "次の差分" msgid "Previous diff" msgstr "前の差分" msgid "Unicode" msgstr "Unicode" msgid "Western Europe" msgstr "西欧" msgid "Unified Chinese" msgstr "簡体中国語" msgid "Traditional Chinese" msgstr "繁体中国語" msgid "Korean" msgstr "韓国語" msgid "Japanese" msgstr "日本語" msgid "Thai" msgstr "タイ語" msgid "Central and Eastern Europe" msgstr "中東欧" msgid "Cyrillic" msgstr "キリル文字" msgid "Russian" msgstr "ロシア語" msgid "Ukrainian" msgstr "ウクライナ語" msgid "Greek" msgstr "ギリシャ語" msgid "Turkish" msgstr "トルコ語" msgid "Arabic" msgstr "アラビア語" msgid "Hebrew" msgstr "ヘブライ語" msgid "Vietnamese" msgstr "ベトナム語" msgid "Baltic" msgstr "バルト語" msgid "Southern Europe" msgstr "南欧" msgid "Nordic" msgstr "北欧" msgid "Celtic" msgstr "ケルト語" msgid "South-Eastern Europe" msgstr "南東欧" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "utf-8,shift_jis,euc_jp,iso2022_jp" msgid "View change as unified diff output" msgstr "unified diff形式で表示" msgid "View change in context of file" msgstr "変更点をファイル内で表示" msgid "Annotate with revision numbers" msgstr "行ごとの由来リビジョンを表示" msgid "Next Diff" msgstr "次の差分" msgid "Previous Diff" msgstr "前の差分" msgid "Open shelve tool" msgstr "シェルフツールを開く" msgid "&Auto Detect" msgstr "" msgid "Show changes from first parent" msgstr "最初の親からの変更を表示" msgid "Show changes from second parent" msgstr "二番目の親からの変更を表示" msgid "E&ncoding" msgstr "エンコーディング(&N)" msgid "&Search in Current File" msgstr "ファイル内を検索(&S)" msgid "Search in All &History" msgstr "全履歴を検索(&H)" msgid "Go to Line" msgstr "指定行へ移動" #, python-format msgid "Enter line number (1 - %d)" msgstr "行番号を入力 (1 〜 %d)" msgid "Show &Author" msgstr "ユーザ名を表示(&A)" msgid "Show &Date" msgstr "日付を表示(&D)" msgid "Show &Revision" msgstr "リビジョン番号を表示(&R)" msgid "Annotate Op&tions" msgstr "由来情報オプション(&T)" msgid "Search Selected Text" msgstr "選択した文字列を検索" msgid "In Current &File" msgstr "ファイル内から(&F)" msgid "In &Current Revision" msgstr "現在のリビジョンから(&C)" msgid "In &Original Revision" msgstr "由来リビジョンから(&O)" msgid "In All &History" msgstr "全履歴から(&H)" msgid "Go to" msgstr "移動" msgid "View File at" msgstr "ファイルを表示" msgid "Diff File to" msgstr "ファイル差分" msgid "&Originating Revision" msgstr "由来リビジョン(&O)" msgid "&Parent Revision" msgstr "親リビジョン(&P)" #, python-format msgid "&Parent Revision (%d)" msgstr "親リビジョン(&P) (%d)" msgid "&Mark Excluded Changes" msgstr "" msgid "(excluded from the next commit)" msgstr "(次のコミットから除外)" msgid "Interrupted graft operation found" msgstr "移植が中断されています。" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" "移植の実行が中断されています。\n" "\n" "この移植の実行を中止するまで新しい移植を実行できません。" msgid "Continue or abort interrupted graft operation?" msgstr "中断された移植を再開しますか?中止しますか?" msgid "To graft destination" msgstr "移植先" msgid "Use my user name instead of graft committer user name" msgstr "" msgid "Use current date" msgstr "現時刻を使う" msgid "Append graft info to log message" msgstr "コミットログへ移植情報を追加" msgid "Graft" msgstr "移植 (graft)" msgid "Abort" msgstr "中止" #, python-format msgid "Graft - %s" msgstr "移植 (graft) - %s" msgid "Graft changeset" msgstr "移植元リビジョン" #, python-format msgid "Graft changeset #%d of %d" msgstr "移植元リビジョン #%d (全 %d)" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" msgid "You may continue or start the graft" msgstr "移植を開始できます" msgid "Graft is complete" msgstr "移植を完了しました" msgid "Graft failed" msgstr "移植が失敗しました" msgid "Graft aborted" msgstr "移植が中止されました" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" "移植でマージ衝突しました。解消してください。" msgid "You may continue the graft" msgstr "移植できます" msgid "Exiting with an unfinished graft is not recommended." msgstr "完了していない移植があるまま終了するのは望ましくありません。" msgid "Consider aborting the graft first." msgstr "まず移植を中止してみて下さい。" msgid "&Exit" msgstr "終了(&E)" msgid "### regular expression search pattern ###" msgstr "### 正規表現での検索パターン ###" msgid "Regexp:" msgstr "正規表現:" msgid "Ignore case" msgstr "大文字小文字を区別しない" msgid "Search" msgstr "検索" msgid "Working Copy" msgstr "作業領域" msgid "All History" msgstr "全履歴" msgid "Report only the first match per file" msgstr "ファイルごとにマッチした最初の行のみ表示" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "コピーと名前変更を追跡" msgid "Includes:" msgstr "次を含む:" msgid "Excludes:" msgstr "次を含まない:" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" "除外ファイルパターンをカンマ区切りで指定します。除外パターンは検索対象パター" "ンの後に適用されます" msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" "検索対象ファイルパターンをカンマ区切りで指定します。デフォルトではリポジトリ" "全体を検索します。" #, python-format msgid "\"%s\" removed from search history" msgstr "検索履歴から\"%s\"を削除しました" #, python-format msgid "\"%s\" removed from path history" msgstr "パス履歴から\"%s\"を削除しました" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "grep: 不正なパターンです: %s\n" #, python-format msgid "grep: %s\n" msgstr "grep: %s\n" #, python-format msgid "%d matches found" msgstr "%d 件見つかりました" msgid "No matches found" msgstr "見つかりませんでした" msgid "Searching" msgstr "検索中" msgid "history" msgstr "履歴" msgid "Interrupted" msgstr "中断されました" msgid "files" msgstr "ファイル" #, python-format msgid "Skipping %s, unable to read" msgstr "読めないため、 %s をスキップします。" msgid "Vi&ew File" msgstr "ファイルを開く(&E)" msgid "&View Changeset" msgstr "チェンジセットを表示(&V)" msgid "Annotate &File" msgstr "由来情報を表示(&F) (annotate)" msgid "File" msgstr "ファイル" msgid "Line" msgstr "行" msgid "Rev" msgstr "リビジョン" msgid "User" msgstr "ユーザー名" msgid "Match Text" msgstr "発見した文字" msgid "TortoiseHg Search" msgstr "TortoiseHg 検索" #, python-format msgid "Detect Copies/Renames in %s" msgstr "コピーまたは名前変更の検出 - %s" msgid "Unrevisioned Files" msgstr "未管理のファイル" msgid "Refresh file list" msgstr "ファイルリストを更新" #, python-format msgid "Min Similarity: %d%%" msgstr "最小類似度: %d%%" msgid "Only consider deleted files" msgstr "削除したファイルのみを想定" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "" msgid "Find Renames" msgstr "名前変更を検索" msgid "Find copy and/or rename sources" msgstr "" msgid "Candidate Matches" msgstr "適合候補" msgid "Accept All Matches" msgstr "" msgid "Accept Selected Matches" msgstr "" msgid "Differences from Source to Dest" msgstr "検出元と検出先との差分" msgid "Search already in progress" msgstr "検出はすでに動作中です" msgid "Cannot start a new search" msgstr "新しい検索を開始できません" msgid "No files to find" msgstr "見つかりませんでした" msgid "There are no files that may have been renamed" msgstr "名前が変更されたファイルはおそらくありません" msgid "Multiple sources chosen" msgstr "" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" "%s と %s の内容が同じです\n" "\n" #. i18n: percent format #, python-format msgid "%d%%" msgstr "%d%%" msgid "Source" msgstr "元ファイル" msgid "Dest" msgstr "変更後" msgid "% Match" msgstr "類似度(%)" msgid "Sending Email" msgstr "メール送信中" msgid "Email" msgstr "メール送信" msgid "To:" msgstr "To:" msgid "Cc:" msgstr "Cc:" msgid "In-Reply-To:" msgstr "In-Reply-To:" msgid "Message identifier to reply to, for threading" msgstr "メーラのスレッド表示で使用されるメッセージID" msgid "Flag:" msgstr "フラグ:" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" "Mercurial パッチ(export コマンドで生成される)は多くのパッチプログラムとの互換" "性があります。それらは最も重要なチェンジセットのメタデータを含みます。" msgid "Send changesets as Hg patches" msgstr "Mercurialのパッチとして送信" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" "git パッチはバイナリファイルに対する様々な変更を取り扱うことが可能な一方で、" "受け取り側が git または Mercurial を使用していない場合はそれを取り扱うことが" "できません。" msgid "Use extended (git) patch format" msgstr "git 拡張形式を使う" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" "ユーザー名や親チェンジセット情報などの Mecurial のヘッダを取り除きます。受取" "人が Mercurial を使用していない場合やヘッダを見る必要がないときに便利です。" msgid "Plain, do not prepend Hg header" msgstr "プレーンテキスト (Mercurial ヘッダなし)" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" "バイナリ形式で完全なチェンジセットを格納します。上流ユーザはそれらをPullでき" "ます。この方法はMercurialユーザの受取人に最も安全に変更を送信する方法です。" msgid "Send single binary bundle, not patches" msgstr "単一のバイナリファイル(パッチではない)" msgid "send patches as part of the email body" msgstr "インラインメッセージとしてパッチを送信" msgid "body" msgstr "本文" msgid "send patches as attachments" msgstr "パッチを添付ファイルとして送信する" msgid "attach" msgstr "添付" msgid "send patches as inline attachments" msgstr "パッチを本文に埋め込んで送信" msgid "inline" msgstr "本文埋め込み" msgid "add diffstat output to messages" msgstr "statusコマンドの出力を本文にする" msgid "diffstat" msgstr "差分情報" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" "一連のパッチに関する説明は [PATCH 0 of N] というタイトルで最初に送信されま" "す。そのため送信するパッチ全体を説明する内容である必要があります。バンドルを" "送信する場合はメールタイトルと本文になります。メッセージヘッダに挿入されるフ" "ラグはカンマ区切りのタグ名で指定します。" msgid "Write patch series (bundle) description" msgstr "一連のパッチ(バンドル)の説明を書く" msgid "Subject:" msgstr "件名:" msgid "Changesets" msgstr "チェンジセット" msgid "Select &All" msgstr "すべてを選択(&A)" msgid "Select &None" msgstr "選択解除(&N)" msgid "Edit" msgstr "編集" msgid "Preview" msgstr "プレビュー" msgid "&Settings" msgstr "設定(&S)" msgid "Send &Email" msgstr "メール送信(&E)" msgid "&Close" msgstr "閉じる(&C)" #, python-format msgid "Ignore filter - %s" msgstr "無視ファイルフィルタ - %s" msgid "Glob" msgstr "グロブ" msgid "Regexp" msgstr "正規表現" msgid "Add" msgstr "追加" msgid "Edit File" msgstr "ファイルを開く" msgid "Ignore Filter" msgstr "無視ファイルフィルタ" msgid "Untracked Files" msgstr "未バージョン管理ファイル" msgid "Backspace or Del to remove row(s)" msgstr "列を削除するにはBackspaceかDelキーを押してください" msgid "Add ignore filter..." msgstr "無視ファイルフィルタを追加..." msgid "selected files" msgstr "選択したファイル" msgid "Ignore " msgstr "無視 " msgid "Invalid glob expression" msgstr "無効な glob です" msgid "Invalid regexp expression" msgstr "無効な正規表現です" msgid "Unable to read repository status" msgstr "リポジトリの状態を読み込めません" msgid "New file created" msgstr "新しいファイルが作成されました" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" "TortoiseHgは新しく .hgignore ファイルを作成しました。このファイルをリポジトリ" "管理下に追加しますか?" msgid "Unable to write .hgignore file" msgstr ".hgignoreファイルに書き込めません" msgid "Copy working directory files from skeleton" msgstr "" msgid "Create special files (.hgignore, ...)" msgstr "" msgid "Make repo compatible with Mercurial <1.7" msgstr "Mercurial 1.7 互換のリポジトリを作成" msgid "New Repository" msgstr "リポジトリを作成" msgid "&Create" msgstr "作成(&C)" msgid "Unable to create a config file" msgstr "設定ファイルを作れません" msgid "Insufficient access rights." msgstr "アクセス権限が足りません" msgid "Show Log" msgstr "ログを見る" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" "選択した中でサイズが10MB以上のファイルがあります。これらのファイルを大容量" "ファイル(largefile)として追加すると、最新のファイルだけをローカルのリポジトリ" "におき、古いリビジョンはサーバに置かれます。これにより、ディスク容量を効率的" "に使えます。これらのファイルを大容量ファイル(largefile)として追加しますか?" msgid "Add as &Largefiles" msgstr "大容量ファイルとして追加 (&L)" msgid "Add as &Normal Files" msgstr "通常ファイルとして追加 (&N)" msgid "Invalid Patterns" msgstr "" msgid "Failed to process largefiles.patterns." msgstr "" msgid "Word docs (*.doc *.docx)" msgstr "" msgid "PDF docs (*.pdf)" msgstr "" msgid "Excel files (*.xls *.xlsx)" msgstr "" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "" msgid "Refresh lock information" msgstr "" msgid "Lock a file not described in .hglocks" msgstr "" msgid "Stop current operation" msgstr "現在の操作を中断する" msgid "Locked And Lockable Files:" msgstr "" msgid "Path" msgstr "パス" msgid "Locking User" msgstr "" msgid "Purpose" msgstr "" msgid "Simplelock extension not enabled" msgstr "" msgid "Please enable and configure simplelock" msgstr "" msgid "Open a (nonmergable) file you wish to be locked" msgstr "" msgid "File was not within current repository" msgstr "" #, python-format msgid "Locking %s" msgstr "" #, python-format msgid "Unlocking %s" msgstr "" msgid "Refreshing locks..." msgstr "" #, python-format msgid "Lock of %s successful" msgstr "" #, python-format msgid "Lock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s successful" msgstr "" msgid "Ready, double click to lock or unlock" msgstr "" msgid "Ready" msgstr "" msgid "You can only release your own locks" msgstr "" msgid "Find revisions matching fields of:" msgstr "フィールド検索元リビジョン:" msgid "Revision to Match:" msgstr "検索元のリビジョン:" msgid "Fields to match:" msgstr "検索対象のフィールド:" msgid "Summary (first description line)" msgstr "サマリー(コミットログの最初の行)" msgid "Description" msgstr "説明" msgid "Author" msgstr "作成者" msgid "Date" msgstr "日付" msgid "Files" msgstr "ファイル" msgid "Diff contents" msgstr "差分の内容" msgid "Subrepo states" msgstr "サブリポジトリの状態" msgid "Branch" msgstr "ブランチ" msgid "Phase" msgstr "フェーズ" msgid "&Match" msgstr "検索(&M)" #, python-format msgid "Find matches - %s" msgstr "検索 - %s" msgid "Revisions to Match:" msgstr "検索元のリビジョン:" #, python-format msgid "Match any of %d revisions" msgstr "%d つのリビジョンのどちらか" msgid "Unknown revision!" msgstr "不明なリビジョンです!" msgid "Parse Error!" msgstr "解釈できません!" #, python-format msgid "Merge - %s" msgstr "マージ - %s" msgid "Do you want to exit?" msgstr "終了しますか?" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" "マージを完了するには作業領域でコミットが必要です。\n" "\n" "マージの親リビジョンのうちのどれかに更新すると、マージをキャンセルできます。" msgid "Prepare to merge" msgstr "マージの準備" msgid "Verify merge targets and ensure your working directory is clean." msgstr "マージ対象を確認し、作業領域がクリーンな状態なことを確実にしてください" msgid "Not a head revision!" msgstr "HEAD リビジョンではありません!" msgid "Merge from (other revision)" msgstr "マージ元 (他のリビジョン)" msgid "Merge to (working directory)" msgstr "マージ先 (作業領域)" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" "作業領域は既にマージされています続けるか" "マージを破棄してください。" msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" "マージするには、まず コミット、 パッチに シェルフ するか、変更を 破" "棄 してください。" msgid "Or use:" msgstr "あるいは:" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "作業領域中の未コミット変更ごとマージを実施(-f/--force)" msgid "Discard all changes from the other revision" msgstr "" msgid "&Discard" msgstr "破棄(&D)" msgid "Confirm Discard Changes" msgstr "本当に変更を破棄しますか" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" "リビジョン %s からの変更と、マージされていないすべての親が破棄されます。\n" "\n" "本当によろしいですか?" msgctxt "working dir state" msgid "Clean" msgstr "クリーン" msgid "Merging..." msgstr "マージ中..." msgid "Automatically advance to next page when merge is complete." msgstr "マージが完了したら自動的に次のページに進む" #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" "%d つのファイルが両方のブランチで変更されています。 解" "消してください。" msgid "" "No merge conflicts, ready to commit or review" msgstr "" msgid "Commit merge results" msgstr "マージ結果をコミット" msgid "Commit Options" msgstr "コミットオプション" msgid "Commit Now" msgstr "すぐにコミット" msgid "Commit Later" msgstr "後でコミット" msgid "Merge changeset" msgstr "マージしたチェンジセット" msgid "Syntax Highlighting" msgstr "構文強調表示" msgid "Paste &Filenames" msgstr "ファイル名を貼り付け(&F)" msgid "App&ly Format" msgstr "フォーマットを適用(&l)" msgid "C&onfigure Format" msgstr "フォーマットを設定(&C)" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "" "%s に失敗したチャンクがあります。パッチが成功したファイルと一緒に失敗したチャ" "ンクも編集しますか?" msgid "&Commit to Queue..." msgstr "キューをコミット(&C)..." msgid "Create &New Queue..." msgstr "キューを作成(&N)..." msgid "&Rename Active Queue..." msgstr "使用中のキュー名を変更(&R)..." msgid "&Delete Queue..." msgstr "キューの参照を削除(&D)..." msgid "&Purge Queue..." msgstr "キューを完全に削除(&P)..." msgid "Create Patch Queue" msgstr "キューを作成" msgid "New patch queue name" msgstr "作成するパッチキューの名前" msgid "Create" msgstr "作成" msgid "Rename Patch Queue" msgstr "キュー名を変更" #, python-format msgid "Rename patch queue '%s' to" msgstr "'%s'の名前を以下に変更" msgid "Rename" msgstr "名前の変更" msgid "Delete Patch Queue" msgstr "キューの参照を削除" msgid "Delete reference to" msgstr "次の参照を削除" msgid "Delete" msgstr "削除" msgid "Purge Patch Queue" msgstr "キューを完全に削除" msgid "Remove patch directory of" msgstr "次のパッチディレクトリを削除" msgid "Purge" msgstr "完全に削除" msgid "Rename Patch" msgstr "パッチ名を変更" #, python-format msgid "Rename patch %s to:" msgstr "パッチ %s の新しい名前:" msgid "no guards" msgstr "ガードはありません" msgid "Patch Queue" msgstr "MQ" msgctxt "MQ QPush" msgid "Push" msgstr "適用" msgid "Apply one patch" msgstr "パッチを一つ適用" msgctxt "MQ QPush" msgid "Push all" msgstr "全て適用" msgid "Apply all patches" msgstr "全てのパッチを適用" msgid "Pop" msgstr "適用解除" msgid "Unapply one patch" msgstr "一つのパッチを適用解除" msgid "Pop all" msgstr "すべてを適用解除" msgid "Unapply all patches" msgstr "全てのパッチを適用解除" msgid "Go &to Patch" msgstr "" msgid "&Apply Only This Patch" msgstr "" msgid "Apply only the selected patch" msgstr "" msgid "&Finish Patch" msgstr "パッチを通常リビジョン化 (q&finish)" msgid "Move applied patches into repository history" msgstr "" msgid "&Delete Patches..." msgstr "パッチを削除(&D)..." msgid "Delete selected patches" msgstr "選択したパッチを削除します" msgid "Re&name Patch..." msgstr "パッチ名を変更 (qre&name)..." msgid "Set &Guards..." msgstr "ガードを設定(&G)..." msgid "Configure guards for selected patch" msgstr "選択したパッチへのガードを設定" msgid "Patch Queue Actions Toolbar" msgstr "パッチキュー アクションツールバー" msgid "Configure guards" msgstr "ガードの設定" #, python-format msgid "Input new guards for %s:" msgstr "%s への新しいガードの設定 :" msgid "Confirm patch queue switch" msgstr "パッチキューの変更確認" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "パッチキュー '%s' を有効化しますか?" #, python-format msgid "Guards: %d/%d" msgstr "ガード: %d/%d" msgid "MQ options" msgstr "MQのオプション" msgid "Force push or pop (--force)" msgstr "作業領域の変更をそのままでパッチを適用 (--force)" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "衝突しない作業領域中の変更を許容 (--keep-changes)" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "保留中の Perforce 変更リスト - %s" msgid "Submitting p4 changelist..." msgstr "p4チェンジリストをサブミット中..." msgid "Reverting p4 changelist..." msgstr "p4チェンジリスト復旧しています..." msgid "Patch Branch Toolbar" msgstr "パッチブランチツールバー" msgid "Merge all pending dependencies" msgstr "" msgid "Backout current patch branch" msgstr "" msgid "Backport part of a changeset to a dependency" msgstr "" msgid "Start a new patch branch" msgstr "新しいパッチブランチを始める" msgid "Edit patch dependency graph" msgstr "" msgid "will be closed" msgstr "" #, python-format msgid "needs merge of %i heads\n" msgstr "" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "" #, python-format msgid "needs merge with %s\n" msgstr "" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "" msgid "&Goto (update workdir)" msgstr "" msgid "&Merge" msgstr "マージ(&M)" msgid "No patch branch selected" msgstr "" msgid "No editor found" msgstr "エディタが見つかりません" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" "Mercurialはエディターを見つけられませんでした。あなたのシステムにインストール" "されているエディターを使うようにMercurialを設定してください。" msgid "Graph" msgstr "グラフ" msgid "Status" msgstr "状態" msgid "Title" msgstr "タイトル" msgid "Message" msgstr "メッセージ" msgid "New Patch Branch" msgstr "" msgid "Patch message:" msgstr "パッチメッセージ:" msgid "Patch date:" msgstr "パッチの日付:" msgid "Patch user:" msgstr "パッチ作成者:" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "レビューを投稿(&R)" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "設定が不正です - レビューボードサーバーが設定されていません" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "設定が不正です - レビューボードのユーザー名を設定して下さい" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" msgid "Review Board" msgstr "レビューボード" msgid "Password:" msgstr "パスワード:" msgid "Error" msgstr "エラー" #, python-format msgid "Review draft posted to %s\n" msgstr "レビューの下書きを %s に投稿しました\n" #, python-format msgid "Review published to %s\n" msgstr "レビューを %s で公開しました\n" msgid "Success" msgstr "成功" msgid "Repository ID:" msgstr "リポジトリ ID:" msgid "Post Review" msgstr "レビューを投稿" msgid "Review ID:" msgstr "レビュー ID:" msgid "Update the fields of this existing request" msgstr "" msgid "Update Review" msgstr "レビューを更新" msgid "Create diff with all outgoing changes" msgstr "すべての送信チェンジセットでの差分を作成" msgid "Create diff with all changes on this branch" msgstr "このブランチのすべての変更の差分を作成" msgid "Publish request immediately" msgstr "今すぐリクエストを公開する" msgid "%p%" msgstr "%p%" msgid "Connecting to Review Board..." msgstr "レビューボードに接続中..." msgid "Target:" msgstr "対象:" msgid "Do not modify working copy (-k/--keep)" msgstr "" #, python-format msgid "Prune - %s" msgstr "" msgid "&Prune" msgstr "" msgid "No unknown files found" msgstr "不明なファイルはありません" msgid "No ignored files found" msgstr "無視対象のファイルはありません" msgid "No trash files found" msgstr "ゴミ箱にファイルはありません" msgid "Delete empty folders" msgstr "空のフォルダを削除する" msgid "Preserve files beginning with .hg" msgstr ".hgで始まるファイルを削除しない" #, python-format msgid "%s - purge" msgstr "%s - 管理対象ではないファイルの削除" msgid "Checking" msgstr "チェックしています" msgid "Ready to purge." msgstr "削除できます" #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "%d つの不明なファイルを削除する" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "%d つの無視ファイルを削除する" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] ".hg/Trashcanにある %d つのファイルを削除する" msgid "Confirm file deletions" msgstr "ファイル削除の確認" msgid "Are you sure you want to delete these files and/or folders?" msgstr "これらのファイルあるいはフォルダーを削除してもよろしいですか?" msgid "Deletion failures" msgstr "削除失敗" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "%d つのファイルかフォルダーを削除できませんでした" msgid "Deleting trash folder..." msgstr "ゴミ箱フォルダーを削除しています..." #, python-format msgid "Deleted %d files" msgstr "%d つのファイルを削除しました" #, python-format msgid "Deleted %d files and %d folders" msgstr "%d つのファイルと %d つのフォルダーを削除しました" msgid "Delete Patches" msgstr "パッチを削除" msgid "Remove patches from queue?" msgstr "キューからパッチを除外しますか?" msgid "Keep patch files" msgstr "パッチファイルを保存する" #, python-format msgid "Patch fold - %s" msgstr "パッチの統合 - %s" msgid "New patch message:" msgstr "新しいパッチメッセージ:" msgid "Patches to fold" msgstr "統合するパッチ" msgid "&Undo" msgstr "取り消し(&U)" msgid "&Redo" msgstr "やり直し(&R)" msgid "Cu&t" msgstr "切り取り(&T)" msgid "&Copy" msgstr "コピー(&C)" msgid "&Paste" msgstr "貼り付け(&P)" msgid "&Editor Options" msgstr "エディタオプション(&E)" msgid "&Wrap" msgstr "行折り返し(&W)" msgctxt "wrap mode" msgid "&None" msgstr "なし(&N)" msgid "&Word" msgstr "単語単位(&W)" msgid "&Character" msgstr "文字単位(&C)" msgid "White&space" msgstr "空白文字(&S)" msgid "&Visible" msgstr "表示(&V)" msgid "&Invisible" msgstr "非表示(&I)" msgid "&AfterIndent" msgstr "インデント以外(&A)" msgid "&TAB Inserts" msgstr "&TAB 入力" msgid "&Auto" msgstr "自動(&A)" msgid "&TAB" msgstr "&TAB" msgid "&Spaces" msgstr "スペース(&S)" msgid "EOL &Visibility" msgstr "改行表示(&V)" msgid "EOL &Mode" msgstr "改行モード(&M)" msgid "&Windows" msgstr "&Windows" msgid "&Unix" msgstr "&Unix" msgid "&Mac" msgstr "&Mac" msgid "&Auto-Complete" msgstr "自動補完(&A)" msgid "### regular expression ###" msgstr "### 正規表現 ###" msgid "Regular expression search pattern" msgstr "正規表現検索パターン" msgid "Wrap search" msgstr "先頭から再検索" msgid "Prev" msgstr "前へ" msgid "Next" msgstr "次へ" msgid "Unable to read file" msgstr "ファイルの読み込みに失敗" msgid "Could not open the specified file for reading." msgstr "指定したファイルを読み込み用に開けませんでした。" msgid "This appears to be a binary file." msgstr "バイナリファイルと思われます。" msgid "An error occurred while reading the file." msgstr "ファイル読み込み中にエラーが起きました。" msgid "Text Translation Failure" msgstr "文字列の翻訳に失敗" msgid "Could not translate the file content from native encoding." msgstr "ファイルの内容を環境依存のエンコーディングから変換できませんでした。" msgid "Several characters would be lost." msgstr "文字列が欠けた可能性があります。" msgid "Unable to write file" msgstr "ファイルの書き込みに失敗" msgid "Could not translate the file content to native encoding." msgstr "ファイルの内容を環境依存のエンコーディングへ変換できませんでした。" msgid "Could not open the specified file for writing." msgstr "指定したファイルを書き込み用に開けませんでした。" msgid "An error occurred while writing the file." msgstr "ファイル書き込み中にエラーが起きました。" msgid "Try refreshing your repository." msgstr "リポジトリを更新してください" #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
                                                          Please edit your config" msgstr "" "エラー文字列 \"%(arg0)s\" at %(arg1)s
                                                          設定を " "編集 してください" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
                                                          Please fix your config" msgstr "" "設定エラー: \"%(arg0)s\"。
                                                          設定を
                                                          修正してく" "ださい" #, python-format msgid "Operation aborted:

                                                          %(arg0)s." msgstr "操作中断:

                                                          %(arg0)s" msgid "Repository is locked" msgstr "リポジトリはロックされています" msgid "hint:" msgstr "ヒント:" msgid "Repository Error" msgstr "リポジトリエラー" msgid "No visual editor configured" msgstr "GUI エディタが設定されていません" msgid "Please configure a visual editor." msgstr "GUI エディタを設定してください" msgid "Editor launch failure" msgstr "GUIエディタの起動に失敗しました" msgid "Failed to open path in terminal" msgstr "ターミナルでパスを開けません" #, python-format msgid "\"%s\" is not a valid directory" msgstr "\"%s\" は正しいディレクトリではありません" #, python-format msgid "Invalid configuration: %s" msgstr "" msgid "Unable to start the following command:" msgstr "以下のコマンドの起動に失敗しました:" msgid "No shell configured" msgstr "シェルが設定されていません" msgid "A terminal shell must be configured" msgstr "ターミナルシェルは設定されている必要があります" msgid "Please enter a username" msgstr "ユーザー名を入力してください" msgid "You must identify yourself to Mercurial" msgstr "Mercurialにあなた自身の情報を入力してください" msgid "Unable to translate input to local encoding." msgstr "入力をローカルのエンコーディングに変換できません" msgid "Checkmark files to add" msgstr "追加するファイルをチェック" msgid "Checkmark files to forget" msgstr "登録除外するファイルをチェック" msgid "Forget" msgstr "登録除外" msgid "Checkmark files to revert" msgstr "復旧するファイルをチェック" msgid "Revert" msgstr "復旧" msgid "Checkmark files to remove" msgstr "削除するファイルをチェック" msgid "Remove" msgstr "削除" #, python-format msgid "%s - hg %s" msgstr "%s - hg %s" msgid "Do not save backup files (*.orig)" msgstr "バックアップファイル (*.orig) を保存しない" msgid "Force removal of modified files (--force)" msgstr "" msgid "Add &Largefiles" msgstr "大容量ファイルを追加(&L)" msgid "No files selected" msgstr "ファイルが選択されていません" msgid "No operation to perform" msgstr "実行可能な操作がありません" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" "選択したファイルのうち一つか複数のファイルが変更済みです。デフォルトでは、こ" "れらのファイルは削除されません。どうしますか?" msgid "Remove &Unmodified Files" msgstr "未変更のファイルを削除(&U)" msgid "Remove &All Selected Files" msgstr "すべての選択したファイルを削除(&A)" msgid "Rebase changeset and descendants" msgstr "リベース対象のリビジョンとその子孫" msgid "To rebase destination" msgstr "リベース先" msgid "Swap source and destination" msgstr "リベース元と先を入れ替え" msgid "Keep original changesets (--keep)" msgstr "" msgid "Keep original branch names (--keepbranches)" msgstr "" msgid "Collapse the rebased changesets (--collapse)" msgstr "" msgid "Rebase entire source branch (-b/--base)" msgstr "" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "" msgid "Rebase" msgstr "リベース" #, python-format msgid "Rebase - %s" msgstr "リベース - %s" msgid "" "Before rebase, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the rebase" msgstr "リベースできます" msgid "Rebase is complete" msgstr "リベースが完了しました" msgid "Rebase failed" msgstr "リベースが失敗しました" msgid "Rebase aborted" msgstr "リベースが中断しました" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" "リベースでマージ衝突しました。 解消してください" "。" msgid "Exiting with an unfinished rebase is not recommended." msgstr "完了していないリベースがある状態で終了するのは望ましくありません。" msgid "Consider aborting the rebase first." msgstr "リベースを中断することをお勧めします。" #, python-format msgid "Merge rejected patch chunks into %s" msgstr "" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "このチャンクを衝突解消済みと印をつけ、次の未解消のチャンクに移動する" msgid "Mark this chunk as unresolved" msgstr "このチャンクを衝突未解消と印を付ける" msgid "Reload File" msgstr "再読み込み" msgid "Are you sure you want to reload this file?" msgstr "本当にファイルを読み込み直しますか?" msgid "All unsaved changes will be lost." msgstr "保存していない変更は全て失われます。" msgid "Warning" msgstr "警告" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" msgid "Copy source -> destination" msgstr "変更元から変更先にコピーする" msgid "Copy Error" msgstr "コピーエラー" msgid "Rename Error" msgstr "名前の変更エラー" msgid "Select Source File" msgstr "元ファイルの選択" msgid "Select Source Folder" msgstr "クローン元" msgid "Source does not exist." msgstr "" msgid "The source must be within the repository tree." msgstr "元ファイルはこのリポジトリツリーの中になくてはいけません" msgid "The destination must be within the repository tree." msgstr "保存先ファイルこのリポジトリツリーの中になくてはいけません" msgid "Destination file already exists." msgstr "保存先ファイルはすでにあります" msgid "Are you sure you want to overwrite it ?" msgstr "本当に上書きしますか?" #, python-format msgid "Copy - %s" msgstr "コピー - %s" #, python-format msgid "Rename - %s" msgstr "名前の変更 - %s" msgid "Show all" msgstr "全て表示" msgid "### revision set query ###" msgstr "### リビジョン指定問い合わせの入力 ###" msgid "Clear current query and query text" msgstr "現在の問い合わせを削除" msgid "Trigger revision set query" msgstr "リビジョン指定問い合わせを実行" msgid "Open advanced query editor" msgstr "問い合わせエディターを開く" msgid "Delete selected query from history" msgstr "履歴からこの問い合わせを削除する" msgid "filter" msgstr "フィルター" msgid "Toggle filtering of non-matched changesets" msgstr "適合しないチェンジセットも表示する/しない の切り替え" msgid "Show/Hide hidden changesets" msgstr "不可視状態のリビジョンを表示・非表示" msgid "Toggle graft relations visibility" msgstr "移植関係の表示を切り替え" msgid "Keyword Search" msgstr "キーワード検索" msgid "Revision Set" msgstr "リビジョンセット" msgid "(unsaved)" msgstr "" msgid "Display graph the named branch only" msgstr "名前付きブランチのみグラフ表示" msgid "Display only active branches" msgstr "アクティブなブランチのみ表示" msgid "Display closed branches" msgstr "閉鎖したブランチも表示" msgid "Include all ancestors" msgstr "親リビジョンまでたどる" msgctxt "column header" msgid "Graph" msgstr "グラフ" msgctxt "column header" msgid "Rev" msgstr "リビジョン" msgctxt "column header" msgid "Branch" msgstr "ブランチ" msgctxt "column header" msgid "Description" msgstr "説明" msgctxt "column header" msgid "Author" msgstr "作成者" msgctxt "column header" msgid "Tags" msgstr "タグ" msgctxt "column header" msgid "Latest tags" msgstr "直近のタグ" msgctxt "column header" msgid "Node" msgstr "ノード" msgctxt "column header" msgid "Git Commit" msgstr "" msgctxt "column header" msgid "Age" msgstr "経過時間" msgctxt "column header" msgid "Local Time" msgstr "現地時間" msgctxt "column header" msgid "UTC Time" msgstr "UTC時間" msgctxt "column header" msgid "Changes" msgstr "変更" msgctxt "column header" msgid "Converted From" msgstr "変換元" msgctxt "column header" msgid "Phase" msgstr "フェーズ" msgctxt "column header" msgid "Filename" msgstr "ファイル名" msgid "Searching..." msgstr "検索中..." #, python-format msgid "filling (%d)" msgstr "読み込み中 (%d)" msgid "Mercurial User" msgstr "Mercurial ユーザ" msgid "Repository Registry" msgstr "リポジトリ一覧" msgid "Show &Paths" msgstr "パスを表示(&P)" msgid "Show S&hort Paths" msgstr "短いパス名で表示(&H)" msgid "&Scan Repositories at Startup" msgstr "起動時にリポジトリをスキャン(&S)" msgid "Scan &Remote Repositories" msgstr "" msgid "&Refresh Repository List" msgstr "リポジトリ一覧を更新(&R)" msgid "Refresh the Repository Registry list" msgstr "リポジトリ一覧を更新します" msgid "&Open" msgstr "開く(&O)" msgid "Open the repository in a new tab" msgstr "新しいタブでリポジトリを開きます" msgid "&Open All" msgstr "すべて開く(&O)" msgid "Open all repositories in new tabs" msgstr "新しいタブで全てのリポジトリを開きます" msgid "New &Group" msgstr "グループを追加(&G)" msgid "Create a new group" msgstr "新しいグループを追加します" msgid "Rename the entry" msgstr "エントリー名を変更" msgid "Settin&gs" msgstr "設定(&G)" msgid "View the repository's settings" msgstr "リポジトリの設定を開きます" msgid "Re&move from Registry" msgstr "一覧から削除(&M)" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" msgid "Clon&e..." msgstr "リポジトリを複製 (clon&e)..." msgid "Clone Repository" msgstr "リポジトリを複製" msgid "E&xplore" msgstr "フォルダを開く(&X)" msgid "Open the repository in a file browser" msgstr "ファイルブラウザでリポジトリを開きます" msgid "&Terminal" msgstr "端末を開く(&T)" msgid "Open a shell terminal in the repository root" msgstr "リポジトリのトップで、シェルターミナルを開きます" msgid "&Add Repository..." msgstr "リポジトリを追加(&A)..." msgid "Add a repository to this group" msgstr "このグループにリポジトリを追加します" msgid "A&dd Subrepository..." msgstr "サブリポジトリを追加(&D)..." msgid "Convert an existing repository into a subrepository" msgstr "今あるリポジトリをサブリポジトリに変換します" msgid "Remo&ve Subrepository..." msgstr "サブリポジトリを削除(&V)..." msgid "Remove this subrepository from the current revision" msgstr "" msgid "Copy the root path of the repository to the clipboard" msgstr "リポジトリのルートパスをクリップボードにコピー" msgid "Sort by &Name" msgstr "名前で並び替え(&N)" msgid "Sort the group by short name" msgstr "短い名前でグループを並び替え" msgid "Sort by &Path" msgstr "パスで並び替え(&P)" msgid "Sort the group by full path" msgstr "フルパスでグループを並び替え" msgid "&Sort by .hgsub" msgstr ".hgsub 順に並び替え(&S)" msgid "Order the subrepos as in .hgsub" msgstr ".hgsubの順にあるサブリポジトリの順" msgid "Select repository directory to add" msgstr "ディレクトリを選択してリポジトリを追加" msgid "Select an existing repository to add as a subrepo" msgstr "サブリポジトリとして追加する、今あるリポジトリを選択してください" msgid "Cannot add subrepository" msgstr "サブリポジトリを追加できませんでした" #, python-format msgid "%s is not a valid repository" msgstr "%s は正しいリポジトリではありません" #, python-format msgid "\"%s\" is not a folder" msgstr "\"%s\" はフォルダーではありません" msgid "A repository cannot be added as a subrepo of itself" msgstr "" #, python-format msgid "" "The selected folder:

                                                          %s

                                                          is not inside the target repository." "

                                                          This may be allowed but is greatly discouraged.
                                                          If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" msgid "Cannot open repository" msgstr "リポジトリを開けません" #, python-format msgid "The selected repository:

                                                          %s

                                                          cannot be open!" msgstr "選択した以下のリポジトリが開けません :

                                                          %s

                                                          " msgid "Subrepository already exists" msgstr "サブリポジトリがすでに存在しています" #, python-format msgid "" "The selected repository:

                                                          %s

                                                          is already a subrepository of:" "

                                                          %s

                                                          as: \"%s\"" msgstr "" msgid "Failed to add subrepository" msgstr "サブリポジトリの追加に失敗" #, python-format msgid "Cannot open the .hgsub file in:

                                                          %s" msgstr "以下の.hgsubファイルを開けません:

                                                          %s" msgid "Failed to add repository" msgstr "リポジトリの追加に失敗しました" #, python-format msgid "The .hgsub file already contains the line:

                                                          %s" msgstr ".hgsubファイルにもう同じ行があります:

                                                          %s" msgid "Subrepo added to .hgsub file" msgstr "サブリポジトリが.hgsubファイルを追加しました" #, python-format msgid "" "The selected subrepo:

                                                          %s

                                                          has been added to the .hgsub " "file of the repository:

                                                          %s

                                                          Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" "選択したサブリポジトリ:

                                                          %s



                                                          %s

                                                          リポジトリの.hgsubファイルに追加されました。サブリポジトリの追加を" "完了するには、 まだコミットが必要です。.hgsubファイルの変更をコ" "ミットしてください。" #, python-format msgid "Cannot update the .hgsub file in:

                                                          %s" msgstr ".hgsubファイルを更新できません。ファイルの場所:

                                                          %s" msgid "Could not open .hgsub file" msgstr "" msgid "Cannot read the .hgsub file.

                                                          Subrepository removal failed." msgstr "" msgid "Subrepository not found" msgstr "" msgid "" "The selected subrepository was not found on the .hgsub file.

                                                          Perhaps it " "has already been removed?" msgstr "" msgid "&Yes" msgstr "はい(&Y)" msgid "&No" msgstr "いいえ(&N)" msgid "Remove the selected repository?" msgstr "" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" msgid "Subrepository removed from .hgsub" msgstr "" msgid "" "The selected subrepository has been removed from the .hgsub file.

                                                          Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" msgid "Could not update .hgsub file" msgstr "" msgid "Cannot update the .hgsub file.

                                                          Subrepository removal failed." msgstr "" #, python-format msgid "Unsupported repository type (%s)" msgstr "未サポートなリポジトリ形式です (%s)" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "" msgid "New Group" msgstr "グループを追加" msgid "Confirm Delete" msgstr "削除の確認" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "グループ '%s' とその中のすべてのエントリを一覧から削除しますか?" msgid "Could not get subrepository list" msgstr "サブリポジトリ一覧を取得できません" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

                                                          %s" msgstr "" "レポジトリ:

                                                          %s 内のサブリポジトリリストを開けませんでした" msgid "Could not open some subrepositories" msgstr "いくつかのサブリポジトリが開けませんでした" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

                                                          %s

                                                          The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

                                                          %s" msgstr "" "以下のリポジトリ内のサブリポジトリを全て開くことはできませんでした。" "

                                                          %s

                                                          以下のサブリポジトリは失われたか、壊れたか、あるい" "は状態がおかしくなっており、アクセスできません。

                                                          %s" msgid "Updating repository registry" msgstr "リポジトリ一覧を更新中" #, python-format msgid "Loading repository %s" msgstr "リポジトリ %s を読み込んでいます" msgid "Repository Registry updated" msgstr "リポジトリ一覧の更新完了" msgid "Close tab" msgstr "タブを閉じる" msgid "Close other tabs" msgstr "他のタブを閉じる" msgid "Undo close tab" msgstr "閉じたタブを開く" msgid "Reopen last closed tab" msgstr "最後に閉じたタブを開く" msgid "Undo close other tabs" msgstr "閉じた他のタブを開く" msgid "Reopen last closed tab group" msgstr "最後に閉じたタブグループを開く" msgid "Failed to open repository" msgstr "リポジトリを開けません" msgid "&Sort" msgstr "並び替え(&S)" #, python-format msgid "Local Repository %s" msgstr "ローカルリポジトリ %s" #, python-format msgid "" "An exception happened while loading the subrepos of:

                                                          \"%s\"

                                                          " msgstr "" "以下のサブレポジトリの読込中に問題が発生しました:

                                                          \"%s\"

                                                          " #, python-format msgid "The exception error message was:

                                                          %s

                                                          " msgstr "例外エラーメッセージは以下のとおりです:

                                                          %s

                                                          " msgid "Click OK to continue or Abort to exit." msgstr "OKボタンを押して続けるか、Abortボタンを押して終了してください" msgid "Error loading subrepos" msgstr "サブリポジトリの読込中にエラー" msgid "Unable to update repository name" msgstr "リポジトリ名を更新できません" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "リポジトリの hgrc ファイル (%s) を更新中にエラーが起きました" msgid "default" msgstr "デフォルト" msgid "C&hoose Log Columns..." msgstr "ログの表示列を選択(&H)..." msgid "&Resize Columns" msgstr "" #, python-format msgid "Goto ancestor of %s and %s" msgstr "" #, python-format msgid "Can't find revision '%s'" msgstr "リビジョン '%s'を見つけられません" msgid "Drag to change order" msgstr "順番を変えるにはドラッグしてください" msgid "Workbench Log Columns" msgstr "ワークベンチのログ" msgctxt "tab tooltip" msgid "Revision details" msgstr "リビジョン詳細" msgctxt "tab tooltip" msgid "Commit" msgstr "コミット" msgctxt "tab tooltip" msgid "Search" msgstr "検索" msgctxt "tab tooltip" msgid "Console log" msgstr "" msgctxt "tab tooltip" msgid "Synchronize" msgstr "同期" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "パッチのブランチ" #, python-format msgid "%s " msgstr "%s <取り込み対象>" #, python-format msgid "Found %d incoming changesets" msgstr "取り込まれる %d 個の履歴が見つかりました" msgid "Pull" msgstr "プル" msgid "Pull incoming changesets into your repository" msgstr "プル (取り込み対象のチェンジセットをあなたのリポジトリに取り込みます)" msgid "Reject incoming changesets" msgstr "取り込み対象のチェンジセットを却下します" #, python-format msgid "Push current branch (%s)" msgstr "現ブランチをプッシュ (%s)" #, python-format msgid "Push up to current revision (#%d)" msgstr "現リビジョンまでプッシュ (#%d)" #, python-format msgid "Push up to revision #%d" msgstr "リビジョン #%d までプッシュ" msgid "Push all" msgstr "全てをプッシュ" msgid "no outgoing changesets" msgstr "反映候補リビジョンがありません" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "現ブランチ(%s)に反映候補リビジョンがありません / 全 %d 件" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "現リビジョン(#%d)までに反映候補リビジョンがありません / 全 %d 件" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "リビジョン #%d までに反映候補リビジョンがありません / 全 %d 件" #, python-format msgid "%d outgoing changesets" msgstr "%d 件の送信チェンジセット" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "%d 件の反映候補リビジョン (現ブランチ %s) / 全 %d 件" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "%d 件の反映候補リビジョン (現リビジョン #%d まで) / 全 %d 件" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "%d 件の反映候補リビジョン (リビジョン #%d まで) / 全 %d 件" msgid "Nothing to push" msgstr "反映対象がありません" msgid "No revision found" msgstr "" #, python-format msgid "%s - verify repository" msgstr "%s - リポジトリを検証" #, python-format msgid "%s - recover repository" msgstr "%s - リポジトリを復元" msgid "No transaction available" msgstr "元に戻せる変更がありません" msgid "There is no rollback transaction available" msgstr "元に戻せる変更がありません" msgid "Undo last commit?" msgstr "直前のコミットを取り消しますか?" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "ファイルの変更はそのままに、直前のコミット(%d)を取り消しますか?" msgid "Undo last transaction?" msgstr "最後の操作を取り消しますか?" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "リビジョン %d に巻き戻しますか? (%sを取り消す)" msgid "Unable to determine working copy revision\n" msgstr "作業領域のリビジョンを特定できません\n" msgid "Remove current working revision?" msgstr "現在作業中のリビジョンを取り除きますか?" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" "現在作業中のリビジョン (%d) はこの巻き戻し操作によって破棄され、コミッ\n" "トしていない変更はそのまま残されます。\n" "続けますか?" msgid "Tab cannot exit" msgstr "" msgid "Pus&h" msgstr "履歴を反映 (pus&h)" msgid "Push to &Here" msgstr "ここまで反映(&H)" msgid "Push Selected &Branch" msgstr "選択したブランチを反映(&B)" msgid "Push &All" msgstr "全て反映(&A)" msgid "&Update..." msgstr "作業領域を更新 (&update)..." msgid "Bro&wse at Revision" msgstr "このリビジョンのファイルを閲覧(&W)" msgid "&Merge with Local..." msgstr "ローカルとマージ (&merge)..." msgid "&Tag..." msgstr "タグ (&tag)..." msgid "Boo&kmark..." msgstr "ブックマーク (boo&kmark)..." msgid "Top&ic..." msgstr "" msgid "Sig&n..." msgstr "署名(&N)..." msgid "&Backout..." msgstr "変更の打ち消し (&backout)..." msgid "Revert &All Files..." msgstr "" msgid "Copy &Hash" msgstr "ハッシュ値をコピー(&H)" msgid "E&xport" msgstr "エクスポート(&X)" msgid "E&xport Patch..." msgstr "パッチとして保存 (e&xport)..." msgid "&Email Patch..." msgstr "パッチをメール送信 (&email)..." msgid "&Archive..." msgstr "アーカイブ (&archive)..." msgid "&Bundle Rev and Descendants..." msgstr "リビジョンと子孫をバンドル生成 (&bundle)..." msgid "Change &Phase to" msgstr "フェーズを変更 (&P)" msgid "&Graft to Local..." msgstr "ローカルへ移植 (&graft)..." msgid "Modi&fy History" msgstr "履歴を修正(&F)" msgid "&Unapply Patch" msgstr "パッチを適用解除(&U)" msgid "Import to &MQ" msgstr "&MQ へインポート (qimport)" msgid "MQ &Options" msgstr "MQ オプション(&O)" msgid "&Rebase..." msgstr "移動 (&rebase)..." msgid "&Prune..." msgstr "" msgid "&Strip..." msgstr "除外 (&strip)..." msgid "Post to Re&view Board..." msgstr "レビューボードに投稿 (postre&view)..." msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "" msgid "Write diff file" msgstr "差分をファイルに書き込む" msgid "Unable to write diff file" msgstr "差分ファイルを書き込めません" msgid "Unable to compress history" msgstr "履歴を圧縮できません" msgid "Selected changeset pair not related" msgstr "選択したチェンジセットのペアは関連がありません" msgid "Visual Diff..." msgstr "GUI 差分表示..." msgid "Export Diff..." msgstr "差分をエクスポート..." msgid "Export Selected..." msgstr "選択した部分をエクスポート..." msgid "Email Selected..." msgstr "選択範囲をメール送信..." msgid "Copy Selected as Patch" msgstr "" msgid "Archive DAG Range..." msgstr "" msgid "Export DAG Range..." msgstr "DAG 範囲をエクスポート..." msgid "Email DAG Range..." msgstr "DAG 範囲をメール送信..." msgid "Bundle DAG Range..." msgstr "DAG 範囲をバンドル..." msgid "Bisect - Good, Bad..." msgstr "二分探索 - Good, Bad ..." msgid "Bisect - Bad, Good..." msgstr "二分探索 - Bad, Good..." msgid "Compress History..." msgstr "履歴を圧縮..." msgid "Rebase..." msgstr "移動 (rebase)..." msgid "Goto common ancestor" msgstr "共通の祖先に移動" msgid "Graft Selected to local..." msgstr "選択リビジョンをローカルへ移植..." msgid "&Prune Selected..." msgstr "" msgid "Post Selected to Review Board..." msgstr "選択した部分をレビューボードに投稿..." msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "パッチを適用" msgid "Apply onto original parent" msgstr "元の親へパッチを適用" msgid "Apply only this patch" msgstr "このパッチだけ適用" msgid "Fold patches..." msgstr "パッチを統合..." msgid "Delete patches..." msgstr "パッチを削除..." msgid "Rename patch..." msgstr "パッチ名を変更..." msgid "Pull to here..." msgstr "ここにプル..." msgid "Visual diff..." msgstr "GUI 差分表示..." msgid "Export patch" msgstr "パッチをエクスポート" msgid "Patch Files (*.patch)" msgstr "パッチファイル (*.patch)" msgid "Cannot export revision" msgstr "リビジョンをエクスポートできません" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" "リビジョン %s を以下のファイルににエキスポートできません:\n" "\n" "%s\n" msgid "There is already an existing folder with that same name." msgstr "同じ名前のフォルダーが既にあります" msgid "Replace" msgstr "置換" msgid "Append" msgstr "追加" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" "リビジョン %d (%s)へのパッチファイルは選択した場所(%s)にすでにあります\n" "\n" msgid "What do you want to do?\n" msgstr "どうしますか?\n" msgid "Replace the existing patch files.\n" msgstr "すでにあるパッチファイルを置き換える\n" msgid "Append the changes to the existing patch files.\n" msgstr "今あるパッチファイルに変更を追加する\n" msgid "Abort the export operation.\n" msgstr "エクスポートを中止する\n" msgid "Patch files already exist" msgstr "パッチファイルがすでに存在しています" msgid "Patch exported" msgstr "パッチをエクスポートしました" #, python-format msgid "" "Revision #%d (%s) was exported to:

                                                          %s%s%s" msgstr "" "リビジョン #%d (%s) を

                                                          %s%s%s

                                                          にエクスポートしました" msgid "Patches exported" msgstr "パッチをエクスポートしました" #, python-format msgid "%d patches were exported to:

                                                          %s" msgstr "" "%d つのパッチを以下にエキスポートしました:

                                                          %s" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

                                                          Are you sure you want to use revert?

                                                          (use " "update to checkout another revision)" msgstr "" "すべてのファイルを復旧すると変更は破棄され、影響があるファイルは変更状態のま" "まになります。

                                                          本当に復旧しますか?

                                                          (別のリビジョンをチェックア" "ウトするには「更新」を使ってください)" msgid "Filter b&y" msgstr "" msgid "&Ancestors and Descendants" msgstr "" msgid "A&uthor" msgstr "" msgid "&Branch" msgstr "" msgid "&More Options..." msgstr "" msgid "Unable to merge" msgstr "マージできませんでした" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "" msgid "Unable to backout" msgstr "バックアウト失敗" msgid "Write bundle" msgstr "バンドルを書く" msgid "Backwards phase change requested" msgstr "フェーズの逆行が要求されました" msgid "Do you really want to make this revision secret?" msgstr "" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" msgid "&Make secret" msgstr "" msgid "&Cancel" msgstr "キャンセル(&C)" msgid "Do you really want to force a backwards phase transition?" msgstr "本当にフェーズを低い方から高い方に逆行させますか?" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" "リビジョン %d のフェーズを \"%s\" から \"%s\" へと変更させよう" "としています。\n" "\n" "しかし、 \"%s\" は \"%s\" よりも低いレベルのフェーズです。\n" "\n" "フェーズを逆行させることはお勧めできません。\n" "例えば、サーバーにすでにプッシュしているリビジョンを変えようとした場合複数の" "ヘッドが作成されます。\n" "\n" "危険性を十分に理解してください!" msgid "&Force" msgstr "強制(&F)" msgid "Cannot import selected revision" msgstr "指定のリビジョンをインポートできません" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" msgid "Invalid command" msgstr "不正なコマンドです" msgid "The selected command is empty" msgstr "選択したコマンドは空です" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" msgid "Failed to execute custom TortoiseHg command" msgstr "" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "" msgid "Failed to execute custom command" msgstr "コマンド実行失敗" #, python-format msgid "The command \"%s\" could not be executed." msgstr "コマンド「%s」が実行できませんでした。" #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" "以下のエラーメッセージが返されました:\n" "\n" "\"%s\"\n" "\n" "コマンドパスが正しいことと、正しいアプリケーションであることを確認してくださ" "い。" msgid "&Edit Toolbar" msgstr "編集ツールバー(&E)" msgid "&Refresh" msgstr "再読み込み (&R)" msgid "&Filter Toolbar" msgstr "フィルターツールバー(&F)" #, python-format msgid "TortoiseHg: %s" msgstr "" msgid "S&tatus Bar" msgstr "" #, python-format msgid "Resolve Conflicts - %s" msgstr "マージ衝突を解消 - %s" msgid "Local revision information" msgstr "ローカルのリビジョン情報" msgid "Other revision information" msgstr "他のリビジョン情報" msgid "Unresolved conflicts" msgstr "衝突未解消" msgid "Mercurial Re&solve" msgstr "Mercurial で解消(&S)" msgid "Attempt automatic (trivial) merge" msgstr "自動マージを試す" msgid "Tool &Resolve" msgstr "ツールで解消(&R)" msgid "Merge using selected merge tool" msgstr "選択したマージツールでのマージ" msgid "&Take Local" msgstr "ローカルを使う(&T)" msgid "Accept the local file version (yours)" msgstr "ローカル(あなたの)ファイルのバージョンを使う" msgid "Take &Other" msgstr "他バージョンを使う(&O)" msgid "Accept the other file version (theirs)" msgstr "他ファイルのバージョンを使う" msgid "&Mark as Resolved" msgstr "衝突解消済みに設定(&M)" msgid "Mark this file as resolved" msgstr "このファイルを衝突解消済み状態に設定" msgid "Diff &Local to Ancestor" msgstr "" msgid "&Diff Other to Ancestor" msgstr "" msgid "Resolved conflicts" msgstr "衝突解消済み" msgid "&Edit File" msgstr "ファイルを開く(&E)" msgid "Edit resolved file" msgstr "解消済みファイルを編集" msgid "3-&Way Diff" msgstr "" msgid "Visual three-way diff" msgstr "GUI 3-way Diff" msgid "Visual diff between resolved file and first parent" msgstr "解消済みファイルと最初の親リビジョンとの差分" msgid "&Diff to Other" msgstr "他との差分(&D)" msgid "Visual diff between resolved file and second parent" msgstr "解消済みファイルと二番目の親との差分" msgid "Mark as &Unresolved" msgstr "衝突未解消に設定(&U)" msgid "Mark this file as unresolved" msgstr "このファイルを衝突未解消状態に設定する" msgid "Detected merge/diff tools:" msgstr "使用可能なマージ/差分ツール:" msgid "Command output" msgstr "コマンド出力" msgid "Unable to show subrepository files" msgstr "サブリポジトリのファイルを表示できません" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" "Visual Diffはサブリポジトリーのファイルには対応していません。これらのファイル" "は表示されません。" msgid "There are merge conflicts to be resolved" msgstr "マージ衝突を解消してください" msgid "All conflicts are resolved." msgstr "衝突を全て解消しました。" msgid "There are no conflicting file merges." msgstr "衝突しているマージはありません" msgid "Exit without finishing resolve?" msgstr "衝突を解消せずに終了しますか?" msgid "Unresolved conflicts remain. Are you sure?" msgstr "未解消の衝突があります。本当に終了しますか?" msgid "E&xit" msgstr "終了(&X)" msgid "Ext" msgstr "拡張子" msgid "Repository" msgstr "リポジトリ" msgid "" msgstr "<デフォルト>" msgid "File List Toolbar" msgstr "ファイルリストツールバー" msgid "Ma&nifest Mode" msgstr "" msgid "Show all version-controlled files in tree view" msgstr "" msgid "&Flat List" msgstr "" msgid "### filter text ###" msgstr "### 抽出する文字列 ###" msgid "Changed by &This Commit" msgstr "" msgid "Show files changed by this commit" msgstr "このリビジョンで変更されたファイルを表示" msgid "Compare to &1st Parent" msgstr "第&1親リビジョンと比較" msgid "Compare to &2nd Parent" msgstr "第&2親リビジョンと比較" msgid "Toggle parent to be used as the base revision" msgstr "比較元の親リビジョンを切り替え" msgid "List Optio&ns" msgstr "" #, python-format msgid "%s - Revision Details (%s)" msgstr "%s - リビジョンの詳細 (%s)" #, python-format msgid "Revert - %s" msgstr "復旧 - %s" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "" msgid "Revert all files to this revision" msgstr "すべてのファイルの変更を取り消して、このリビジョンに復旧する" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "" msgid "null revision (i.e. remove file(s))" msgstr "" msgid "Changeset:" msgstr "チェンジセット:" msgid "Child:" msgstr "子リビジョン:" msgid "Predecessors:" msgstr "" msgid "Successors:" msgstr "" msgid "Head is closed!" msgstr "ヘッドが閉じています!" msgid "Changesets where username contains string." msgstr "ユーザー名に文字列を含むリビジョン群。" msgid "" "Search commit message, user name, and names of changed files for string." msgstr "コミットログ、ユーザ名、修正ファイルの名前を文字列で検索。" msgid "Like \"keyword(string)\" but accepts a regex." msgstr "\"keyword(string)\" と同じ内容を正規表現で検索。" msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "指定連携先ないし無指定時の反映先に、存在しないリビジョン群。" msgid "The named bookmark or all bookmarks." msgstr "指定したブックマーク対象、ないし全ブックマーク対象。" msgid "The named tag or all tags." msgstr "指定タグ対象リビジョン、ないしタグ付け対象の全リビジョン群。" msgid "Changeset is tagged." msgstr "タグ付けられた全リビジョン群" msgid "Changeset is a named branch head." msgstr "名前付きブランチのヘッドリビジョン群。" msgid "Changeset is a merge changeset." msgstr "マージ実施リビジョン群。" msgid "Changeset is closed." msgstr "閉鎖されたリビジョン群。" msgid "" "Changesets within the interval, see help dates" msgstr "" msgid "Greatest common ancestor of the two changesets." msgstr "2つのリビジョンに共通な最新の祖先。" msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "指定リビジョン群とフィールドの値が同じリビジョンの抽出。" msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" msgid "Changesets which modify files matched by pattern." msgstr "パターンに合致するファイルを改変したリビジョン群。" msgid "Changesets which add files matched by pattern." msgstr "パターンに合致する名前のファイルを登録したリビジョン。" msgid "Changesets which remove files matched by pattern." msgstr "パターンに合致する名前のファイルを登録除外したリビジョン群。" msgid "Changesets containing files matched by pattern." msgstr "パターンに合致する名前のファイルが存在するリビジョン群。" msgid "All changesets belonging to the branches of changesets in set." msgstr "指定ブランチないしリビジョン群の属するブランチ群に、属するリビジョン。" msgid "Members of a set with no children in set." msgstr "指定リビジョン中の、子リビジョンを持たないリビジョン群。" msgid "Changesets which are descendants of changesets in set." msgstr "指定リビジョン群の子孫リビジョン群。" msgid "Changesets that are ancestors of a changeset in set." msgstr "set 中のリビジョンに対する祖先リビジョン群。" msgid "Child changesets of changesets in set." msgstr "指定リビジョン群の子リビジョン群。" msgid "The set of all parents for all changesets in set." msgstr "指定リビジョン群ないし作業領域の、 全親リビジョン群。" msgid "First parent for all changesets in set, or the working directory." msgstr "指定リビジョン群ないし作業領域の、第1親リビジョン群。" msgid "Second parent for all changesets in set, or the working directory." msgstr "指定リビジョン群ないし作業領域の、第2親リビジョン群。" msgid "Changesets with no parent changeset in set." msgstr "" msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" "指定リビジョン群に存在しないものがあれば空、でなければ指定リビジョン群。" msgid "Changeset with lowest revision number in set." msgstr "指定リビジョン群中で、 リビジョン番号が最小のもの。" msgid "Changeset with highest revision number in set." msgstr "指定リビジョン群中で、 リビジョン番号が最大のもの。" msgid "First n members of a set." msgstr "指定リビジョン群の冒頭 n 個。 無指定時は 1。" msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "key でソート。デフォルトでは昇順、\"-key\" で降順。" msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "\"::.\" (作業領域の第1親の祖先リビジョン群) 記述の別名。" msgid "All changesets, the same as 0:tip." msgstr "全リビジョン。 \"0:tip\" と等価。" msgid "Revision Set Query" msgstr "リビジョン指定のための問い合わせ言語" msgid "all revisions converted from subversion" msgstr "Subversionから変換された全リビジョン群" msgid "changeset which represents converted svn revision" msgstr "" msgid "Common sets" msgstr "共通指定" msgid "File pattern sets" msgstr "ファイルパターン指定" msgid "Set Ancestry" msgstr "祖先指定" msgid "Set Logic" msgstr "論理式" msgid "" "help " "revsets" msgstr "" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" "\n" "キーボード入力によって中断されました。\n" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "\"%s\" ファイルが読み込めません。\n" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" "thg: コマンド '%s' は曖昧です:\n" " %s\n" #, python-format msgid "thg: unknown command '%s'\n" msgstr "thg: 不明なコマンド '%s'\n" #, python-format msgid "thg %s: %s\n" msgstr "thg: %s: %s\n" #, python-format msgid "thg: %s\n" msgstr "thg: %s\n" #, python-format msgid "abort: %s!\n" msgstr "中止: %s!\n" #, python-format msgid "abort: %s\n" msgstr "中止: %s\n" #, python-format msgid "(%s)\n" msgstr "" msgid "option --config may not be abbreviated!" msgstr "" msgid "invalid arguments" msgstr "引数が正しくありません" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "未知のプロファイル形式 '%s' - 無視されました\n" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" "lsprof がインストールされていません - http://codespeak.net/svn/user/arigo/" "hack/misc/lsprof/" msgid "repository root directory or symbolic path name" msgstr "リポジトリのルートディレクトリまたはシンボリックパス名" msgid "enable additional output" msgstr "追加情報を出力する" msgid "suppress output" msgstr "出力を抑制する" msgid "display help and exit" msgstr "ヘルプを表示して終了する" msgid "set/override config option (use 'section.name=value')" msgstr "" msgid "enable debugging output" msgstr "" msgid "start debugger" msgstr "デバッガを開始" msgid "print command execution profile" msgstr "コマンドの実行時プロファイルを出力" msgid "do not fork GUI process" msgstr "ダイアログプロセスを起動しない" msgid "always fork GUI process" msgstr "常にダイアログプロセスを生成する" msgid "read file list from file" msgstr "ファイルリストをファイルから読み込む" msgid "read file list from file encoding utf-8" msgstr "UTF-8でファイルリストを読み込む" msgid "thg about" msgstr "thgについて" msgid "thg add [FILE]..." msgstr "thg add [ファイル]..." msgid "revision to annotate" msgstr "情報を表示するリビジョン" msgid "open to line" msgstr "" msgid "initial search pattern" msgstr "最初の検索パターン" msgid "thg annotate" msgstr "thg annotate" #, python-format msgid "invalid line number: %s" msgstr "行番号が不正: %s" msgid "revision to archive" msgstr "アーカイブするリビジョン" msgid "thg archive" msgstr "thg archive" msgid "merge with old dirstate parent after backout" msgstr "打ち消しリビジョンを現親リビジョンとマージ" msgid "parent to choose when backing out merge" msgstr "打ち消しリビジョンとのマージ対象 (非推奨)" msgid "revision to backout" msgstr "打ち消すリビジョン" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "thg backout [オプション]... [[-r] リビジョン]" msgid "thg bisect" msgstr "thg bisect" msgid "revision" msgstr "" msgid "thg bookmarks [-r REV] [NAME]" msgstr "thg bookmarks [-r REV] [NAME]" msgid "only one new bookmark name allowed" msgstr "" msgid "the clone will include an empty working copy (only a repository)" msgstr "作業領域の更新無し(管理領域のみの複製)" msgid "revision, tag or branch to check out" msgstr "作業領域更新用リビジョン(タグ名/ブランチ名)" msgid "include the specified changeset" msgstr "複製対象に含めるリビジョン" msgid "clone only the specified branch" msgstr "指定ブランチのみを複製" msgid "use pull protocol to copy metadata" msgstr "メタデータのコピーに Pull を使用する" msgid "use uncompressed transfer (fast over LAN)" msgstr "非圧縮での転送(LAN での高速転送用)" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "thg clone [OPTION]... [SOURCE] [DEST]" msgid "record user as committer" msgstr "ユーザをコミッタとして記録する" msgid "record datecode as commit date" msgstr "日付をコミット日時として記録する" msgid "thg commit [OPTIONS] [FILE]..." msgstr "thg commit [オプション] [ファイル]..." msgid "thg debugblockmatcher" msgstr "" msgid "thg debugbugreport [TEXT]" msgstr "thg debugbugreport [TEXT]" msgid "thg debugconsole" msgstr "" msgid "thg debuglighthg" msgstr "" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "" msgid "no command specified" msgstr "" msgid "thg drag_copy SOURCE... DEST" msgstr "thg drag_copy SOURCE... DEST" msgid "thg drag_move SOURCE... DEST" msgstr "thg drag_move SOURCE... DEST" msgid "a revision to send" msgstr "送信するリビジョン" msgid "thg email [REVS]" msgstr "thg email [リビジョン]" msgid "use only one form to specify the revision" msgstr "このリビジョンを指定するにはフォームを一つだけ使って下さい。" msgid "select the specified revision" msgstr "" msgid "side-by-side comparison of revisions" msgstr "" msgid "thg filelog [OPTION]... FILE" msgstr "" msgid "requires a single filename" msgstr "" msgid "thg forget [FILE]..." msgstr "thg forget [ファイル]..." msgid "revisions to graft" msgstr "移植するリビジョン" msgid "thg graft [-r] REV..." msgstr "thg graft [-r] REV..." msgid "You must provide revisions to graft" msgstr "移植にはリビジョンを指定する必要があります" msgid "ignore case during search" msgstr "検索で大文字小文字を無視する" msgid "thg grep" msgstr "thg grep" msgid "thg guess" msgstr "thg guess" msgid "thg help [COMMAND]" msgstr "thg help [コマンド]" msgid "global options:" msgstr "ユーザ設定:" msgid "use \"thg help\" for the full list of commands" msgstr "コマンド一覧は \"thg help\" を見て下さい" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "" "コマンド一覧を得るには \"thg help\" を、詳細を見るには \"thg -v\" を使ってく" "ださい" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "エイリアスとオプションを見るには \"thg -v help%s\" を使ってください" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "オプションを見るには \"thg -v help %s \" を使ってください" msgid "" "list of commands:\n" "\n" msgstr "" "コマンド一覧:\n" "\n" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" "\n" "エイリアス: %s\n" msgid "(no help text available)" msgstr "(ヘルプテキストがありません)" msgid "options:\n" msgstr "オプション:\n" msgid "no commands defined\n" msgstr "コマンドが定義されていません\n" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "Thg - Mercurial SCM(Hg) のための TortoiseHgによるGUIツール\n" msgid "" "basic commands:\n" "\n" msgstr "" "基本的なコマンド:\n" "\n" #, python-format msgid " (default: %s)" msgstr " (デフォルト値: %s)" msgid "thg hgignore [FILE]" msgstr "thg hgignore [ファイル]" msgid "import to the patch queue (MQ)" msgstr "MQ にインポートする" msgid "thg import [OPTION] [SOURCE]..." msgstr "thg import [オプション] [ソース]..." msgid "thg init [DEST]" msgstr "thg init [作成先ディレクトリ]" msgid "thg lock" msgstr "" msgid "search for a given text or revset" msgstr "" msgid "(DEPRECATED)" msgstr "(非推奨)" msgid "open a new workbench window" msgstr "新しいworkbenchウィンドウを開く" msgid "thg log [OPTIONS] [FILE]" msgstr "thg log [オプション] [ファイル]" msgid "cannot specify both -k/--query and filenames" msgstr "" msgid "revision to display" msgstr "表示するリビジョン" msgid "thg manifest [-r REV] [FILE]" msgstr "thg manifest [-r リビジョン] [ファイル]" msgid "revision to merge" msgstr "マージ対象のリビジョン" msgid "thg merge [[-r] REV]" msgstr "thg merge [[-r] リビジョン]" msgid "Merge revision not specified or not found" msgstr "マージリビジョンが指定されていないか存在しません" msgid "a revision to post" msgstr "" msgid "thg postreview [-r] REV..." msgstr "thg postreview [-r] REV..." msgid "reviewboard extension not enabled" msgstr "" #, python-format msgid "see %(url)s" msgstr "" msgid "no revisions specified" msgstr "" msgid "revisions to prune" msgstr "" msgid "thg prune [-r] REV..." msgstr "" msgid "thg purge" msgstr "thg purge" msgid "keep original changesets" msgstr "元リビジョンを維持" msgid "keep original branch names" msgstr "元ブランチ名を維持" msgid "rebase from the specified changeset" msgstr "指定リビジョンからの移動" msgid "rebase onto the specified changeset" msgstr "移動先リビジョン" msgid "thg rebase -s REV -d REV [--keep]" msgstr "thg rebase -s REV -d REV [--keep]" msgid "Rebase already in progress" msgstr "リベースは既に実行中です。" msgid "Resuming rebase already in progress" msgstr "リベースの再開は既に実行中です。" msgid "You must provide source and dest arguments" msgstr "移動元と移動先を指定する必要があります" msgid "thg rejects [FILE]" msgstr "thg rejects [ファイル]" msgid "You must provide the path to a file" msgstr "ファイルに対するパスを指定する必要があります" msgid "thg remove [FILE]..." msgstr "thg remove [ファイル]..." msgid "thg rename [SOURCE] [DEST]" msgstr "thg rename [SOURCE] [DEST]" msgid "field to give initial focus" msgstr "初期化時にフォーカスを与えるフィールド" msgid "thg repoconfig" msgstr "thg repoconfig" msgid "thg resolve" msgstr "thg resolve" msgid "the revision to show" msgstr "" msgid "thg revdetails [-r REV]" msgstr "thg revdetails [-r REV]" msgid "thg revert [FILE]..." msgstr "thg revert [ファイル]..." msgid "revision to update" msgstr "リビジョンを更新" msgid "thg rupdate [[-r] REV]" msgstr "thg rupdate [[-r] REV]" msgid "name of the hgweb config file (serve more than one repository)" msgstr "hgweb 設定ファイル名 (複数のリポジトリを公開)" msgid "name of the hgweb config file (DEPRECATED)" msgstr "hgweb 設定ファイル名 (非推奨)" msgid "thg serve [--web-conf FILE]" msgstr "thg serve [--web-conf ファイル]" msgid "thg shellconfig" msgstr "thg shellconfig" msgid "thg shelve" msgstr "thg shelve" msgid "sign even if the sigfile is modified" msgstr "" msgid "make the signature local" msgstr "" msgid "the key id to sign with" msgstr "" msgid "do not commit the sigfile after signing" msgstr "" msgid "use as commit message" msgstr "<テキスト>をコミットメッセージとして使う" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgid "Please enable the Gpg extension first." msgstr "" msgid "show files without changes" msgstr "変更の無いファイルを表示" msgid "show ignored files" msgstr "無視対象のファイルを表示" msgid "thg status [OPTIONS] [FILE]" msgstr "thg status [オプション] [ファイル]" msgid "discard uncommitted changes (no backup)" msgstr "リビジョンを強制的に削除し、未コミット変更内容を破棄(保存無し)" msgid "do not back up stripped revisions" msgstr "バックアップ作成の抑止(非推奨)" msgid "do not modify working copy during strip" msgstr "" msgid "revision to strip" msgstr "stripするリビジョン" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "" msgid "open the bookmark sync window" msgstr "" msgid "thg sync [OPTION]... [PEER]" msgstr "" msgid "replace existing tag" msgstr "既存のタグを置換" msgid "make the tag local" msgstr "ローカルタグとして作成" msgid "revision to tag" msgstr "タグ付け対象リビジョン" msgid "remove a tag" msgstr "タグの削除" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "thg tag [-f] [-l] [-m テキスト] [-r リビジョン] [名前]" msgid "wait until the second ticks over" msgstr "2回目のシステムクロック通知まで待機する" msgid "notify the shell for paths given" msgstr "渡されたパスをシェルに通知する" msgid "remove the status cache" msgstr "ステータスキャッシュを削除する" msgid "show the contents of the status cache (no update)" msgstr "ステータスキャッシュの中身を表示する(更新はされない)" msgid "update all repos in current dir" msgstr "このディレクトリにある全てのリポジトリを更新する" msgid "thg thgstatus [OPTION]" msgstr "thg thgstatus [OPTION]" msgid "thg topics [-r REV] [NAME]" msgstr "" msgid "Please enable the Topic extension first." msgstr "" msgid "only one new topic name allowed" msgstr "" msgid "thg update [-C] [[-r] REV]" msgstr "thg update [-C] [[-r] リビジョン]" msgid "thg userconfig" msgstr "thg userconfig" msgid "changeset to view in diff tool" msgstr "差分表示ツールで表示するチェンジセット" msgid "revisions to view in diff tool" msgstr "差分表示ツールで表示するリビジョン" msgid "bundle file to preview" msgstr "プレビューするバンドルファイル" msgid "launch visual diff tool" msgstr "GUI 差分表示ツールを起動する" msgid "print license" msgstr "ライセンス文書を表示" msgid "thg version [OPTION]" msgstr "thg version [オプション]" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "TortoiseHg フロントエンド (バージョン %s), Mercurial (バージョン %s)\n" msgid "Location:" msgstr "場所:" msgid "Update to:" msgstr "更新先:" msgid "Options:" msgstr "オプション:" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "リモートの未コミット変更内容の破棄(保存無し) (-C/--clean)" msgid "Perform a push before updating (-p/--push)" msgstr "更新の前にプッシュする" msgid "Allow pushing new branches (--new-branch)" msgstr "新規ブランチの反映を許可 (--new-branch)" msgid "Force push to remote location (-f/--force)" msgstr "反映先にヘッドが増える場合でも実施 (-f/--force)" msgid "remove working directory" msgstr "作業領域のファイルを削除" msgid "unknown revision!" msgstr "不明なリビジョン" #, python-format msgid "Remote Update - %s" msgstr "" msgid "&Update" msgstr "更新(&U)" msgid "Log" msgstr "ログ" msgid "Repositories" msgstr "リポジトリ" #, python-format msgid "Running at %s" msgstr "%s にて動作中" msgid "Stopped" msgstr "停止" msgid "TortoiseHg Web Server" msgstr "TortoiseHg ウェブサーバー" msgid "Web Server" msgstr "ウェブサーバー" msgid "Port:" msgstr "ポート:" msgid "Status:" msgstr "状態:" msgid "Start" msgstr "起動" msgid "Settings" msgstr "設定" msgid "" msgstr "<未設定>" msgid "&True" msgstr "有効(&T)" msgid "&False" msgstr "無効(&F)" msgid "&Unspecified" msgstr "未設定(&U)" #, python-format msgid "%dpt" msgstr "%dpt" msgid "Bold" msgstr "太字" msgid "Italic" msgstr "斜体" msgid "Strike" msgstr "" msgid "Underline" msgstr "下線" msgid "&Set..." msgstr "設定(&S)" msgid "&Clear" msgstr "デフォルトに戻す(&C)" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "課題管理の読み込みに失敗しました: '%s': %s " msgid "&Browse..." msgstr "ブラウズ(&B)" msgid "UI Language" msgstr "UI 言語" msgid "Specify your preferred user interface language (restart needed)" msgstr "使用する言語を指定します (設定後にWorkbenchの再起動が必要です)" msgid "Three-way Merge Tool" msgstr "3-way マージツール" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" "マージ衝突を解決するためのGUIマージプログラムです。もし指定がない場合、" "Mercurialはシステムで最初に見つけたアプリケーションか衝突マークがある場所にイ" "ンストールされているマージツールを使います。Mercurialの内部ツールを使う場合" "は internal:merge を、ローカルか他のリポジトリの変更かを毎回選びたい場合は " "internal:prompt を、手動でマージするために作業領域にファイルを残しておきたい" "場合は internal:dump を選択してください。" msgid "Visual Diff Tool" msgstr "GUI 差分表示ツール" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" "Mercurial設定ファイルの [merge-tools] セクションに記述されている GUI 差分表示" "ツール名を指定。未設定の場合、TortoiseHg はマージツールを差分表示に使用しま" "す。マージツールも設定されていない場合は最初に見つかったツールが使用されま" "す。" msgid "Visual Editor" msgstr "GUI エディタ" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" msgid "CLI Editor" msgstr "コマンドラインエディタ" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" msgid "Shell" msgstr "シェル" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
                                                          Default, Windows: cmd.exe /" "K title %(reponame)s
                                                          Default, OS X: not set
                                                          Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" msgid "Immediate Operations" msgstr "即時実行コマンド" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" "ユーザーの操作抜きですぐに実行して欲しいシェルのコマンドです。空白で区切られ" "たリストで入力してください。コマンドは \"add remove revert forget\" です。 デ" "フォルトは なし(空白のまま)です" msgid "Tab Width" msgstr "タブ文字の幅" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" "TortoiseHgのさまざまなウィンドウでタブを表示する場合に使う空白の数です。デ" "フォルト値は8です。" msgid "Force Repo Tab" msgstr "リポジトリタブを常に表示" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "" "一つのリポジトリだけであってもリポジトリタブを表示します。デフォルト: 表示し" "ない" msgid "Monitor Repo Changes" msgstr "リポジトリの変更監視" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" msgid "Max Diff Size" msgstr "最大差分サイズ" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" "TortoiseHg がチェンジログビューア、ステータスダイアログ、コミットツールで表示" "する最大ファイルサイズ(KB単位)を指定。0が指定された場合は無制限となります。デ" "フォルトでは1024(1MB)です。" msgid "Fork GUI" msgstr "GUI をフォーク" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" msgid "Full Path Title" msgstr "絶対パス表示" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" "ダイアログタイトルにルートディレクトリ名の代わりに絶対パスを表示します。デ" "フォルトでは無効です。" msgid "Auto-resolve merges" msgstr "マージを自動解消" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" msgid "New Repo Skeleton" msgstr "" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "ワークベンチ" msgid "Single Workbench Window" msgstr "" "Workbenchウィンドウを\n" "一つだけにする" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" msgid "Default widget" msgstr "初期設定ウィジェット" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" "リポジトリを開いた時に最初に表示されるウィジェットを設定します。デフォルトで" "はリビジョン詳細が開きます。" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" "リポジトリを開いた時に選択されるリビジョンを指定します。選択肢は\"current" "\"(作業領域の親)、\"tip\"、\"workingdir\"(作業領域)です。デフォルトは" "\"current\"です。" msgid "" "Open new tabs next\n" "to the current tab" msgstr "" "新規タブを現在の\n" "タブの隣に開く" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" "現在のタブの隣に新しいタブを開きたいですか? もし無効であれば、新しいタブは最" "後のタブの後に開かれます。デフォルトは有効です。" msgid "Author Coloring" msgstr "コミッタの色分け" msgid "Color changesets by author name. Default: False" msgstr "" msgid "Full Authorname" msgstr "" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" msgid "Task Tabs" msgstr "タスクタブ" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" msgid "Task Toolbar Order" msgstr "タスクツールバーの 順番" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
                                                          Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
                                                          Valid names are: log commit sync grep and " "pbranch.
                                                          Default: log commit grep pbranch | sync" msgstr "" msgid "Long Summary" msgstr "長めの要約行" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" msgid "Log Batch Size" msgstr "ログ読み込み件数" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "" "1回の処理で何件のチェンジセットを読み込んで表示するか。デフォルトでは500件。" msgid "Dead Branches" msgstr "削除済みブランチ" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" msgid "Branch Colors" msgstr "ブランチの色" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" msgid "Hide Tags" msgstr "非表示タグ" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" msgid "Activate Bookmarks" msgstr "ブックマークを有効化" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

                                                          • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
                                                          • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
                                                          • never: Never show any prompt to " "activate any bookmarks.

                                                          Default: prompt" msgstr "" msgid "Show Family Line" msgstr "" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

                                                          Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" msgid "Use optimized graph layouter" msgstr "" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

                                                          Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" msgctxt "config item" msgid "Commit" msgstr "コミット" msgid "Username" msgstr "ユーザ名" msgid "" "Name associated with commits. The common format is:
                                                          Full Name <" "email@example.com>" msgstr "" "コミットに結びつける名前です。共通フォーマットは
                                                          Full Name <" "email@example.com>
                                                          です。" msgid "Ask Username" msgstr "" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" msgid "Summary Line Length" msgstr "要約行文字数" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" "コミットメッセージの一行の長さを示します。赤い縦の線がこの長さに表示します。" "CTRL-Eで、現在の段落を指定した長さで折り返します。デフォルトは80です。" msgid "Close After Commit" msgstr "コミット後に閉じる" msgid "Close the commit tool after every successful commit. Default: False" msgstr "" "コミットが成功したらそのコミットツールを閉じます。デフォルトでは無効です。" msgid "Push After Commit" msgstr "コミット後にプッシュ" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" "コミットが成功するたびに指定したURLかエイリアスにプッシュします。デフォルトは" "プッシュしません。" msgid "Auto Commit List" msgstr "自動コミットファイル" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" msgid "Auto Exclude List" msgstr "自動除外ファイル" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" msgid "English Messages" msgstr "英語メッセージ" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" "LANGUAGEやLANG環境変数が英語ではない言語に設定されていたとしても、英語のコ" "ミットメッセージを作成します。この設定はマージ、タグ、バックアウトの各ダイア" "ログで使われます。デフォルト値は無効です。" msgid "New Commit Phase" msgstr "コミットの初期フェーズ" msgid "The phase of new commits. Default: draft" msgstr "新しいコミットの初期フェーズです。デフォルトではdraftです。" msgid "Secret MQ Patches" msgstr "MQパッチをSecretに" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "" "MQパッチを(draftの代わりに)Secretに設定します。デフォルトでは無効です。" msgid "Check Subrepo Phase" msgstr "" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" msgid "Monitor working
                                                          directory changes" msgstr "作業領域の変更を監視" msgid "" "Select when the working directory status list will be refreshed:
                                                          - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
                                                          TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
                                                          - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
                                                          - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
                                                          Default: auto" msgstr "" msgid "Confirm adding unknown files" msgstr "未知のファイルを追加時に確認" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Confirm deleting files" msgstr "ファイルの削除を確認する" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Sync" msgstr "同期" msgid "After Pull Operation" msgstr "プル後の処理" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" msgid "Default Push" msgstr "デフォルトプッシュ" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

                                                          • all: The default. Push all changes in all " "branches.
                                                          • branch: Push all changes in the current branch.
                                                          • revision: Push the changes in the current branch up to the current revision.

                                                          Default: all" msgstr "" "プッシュボタンを押した時にデフォルトでプッシュするリビジョンを選択します。\n" "

                                                          • all: デフォルトです。すべてのブランチの変更をプッ\n" "シュします。
                                                          • branch: 現在のブランチの変更をプッシュし\n" "ます。
                                                          • revision: 現在のブランチの現在のリビジョンまで\n" "をプッシュします。

                                                          デフォルトはallです。" msgid "Confirm Push" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" msgid "Target Combo" msgstr "" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

                                                          • auto: The default. Show the combo if more than one target " "configured.
                                                          • always: Always show the combo.

                                                          Default: auto" msgstr "" msgid "SSH Command" msgstr "SSH コマンド" msgid "" "Command to use for SSH connections.

                                                          Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" "SSH 接続に使用するコマンド。

                                                          デフォルト: \"ssh\" または \"TortoisePlink." "exe -ssh -2\" (Windows)" msgid "Subrepository Features:" msgstr "" msgid "Allow Hg Subrepos" msgstr "" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" msgid "Allow Git Subrepos" msgstr "" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

                                                          See the security note before enabling Git " "subrepos." msgstr "" msgid "Allow SVN Subrepos" msgstr "" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

                                                          See the security note before enabling " "Subversion subrepos." msgstr "" msgid "Server" msgstr "サーバー" msgid "Repository Details:" msgstr "リポジトリの詳細:" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" "このウェブサーバで使うリポジトリ名とTortoiseHgが使う短い名前。初期設定は作業" "領域。" msgid "Encoding" msgstr "文字エンコーディング" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" "リポジトリ内のファイルの文字エンコーディング。 ウェブインターフェースと " "TortoiseHg で利用。" msgid "'Publishing' repository" msgstr "「公開」リポジトリ" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" "サーバとして機能する際の、 draft フェーズに対する挙動の設定。 True の場合、ク" "ライアントから反映されたリビジョンのフェーズは、クライアント / サーバ双方で " "public 化され、クライアントに取り込み、または複製されたリビジョンのフェーズ" "は、クライアント側でのみ public 化されます。 デフォルト: True" msgid "Web Server:" msgstr "Webサーバー:" msgid "Textual description of the repository's purpose or contents." msgstr "リポジトリの目的または内容に関する説明文。" msgid "Contact" msgstr "連絡先" msgid "Name or email address of the person in charge of the repository." msgstr "このリポジトリの管理者の名前もしくはメールアドレス。" msgid "Style" msgstr "テーマ" msgid "Which template map style to use" msgstr "どのテンプレートをテーマとして使用するか。" msgid "Archive Formats" msgstr "アーカイブ形式" msgid "Comma separated list of archive formats allowed for downloading" msgstr "ダウンロード可能なアーカイブ形式をカンマ区切りで指定。" msgid "Port" msgstr "ポート番号" msgid "Port to listen on" msgstr "サーバ待ち受けポート番号" msgid "Push Requires SSL" msgstr "SSL プッシュ" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" "プッシュする際、パスワードの傍受を防ぐために SSL を使った通信を強制する" msgid "Stripes" msgstr "ストライプ表示" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" "複数行の出力の際に何行ごとに異なる色の行を入れるかを指定。デフォルトでは1で、" "0にすると無効になります。" msgid "Max Files" msgstr "最大ファイル数" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "各チェンジセットで表示する最大ファイル数。デフォルト: 10" msgid "Max Changes" msgstr "最大変更数" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "チェンジログで表示する最大チェンジセット数。デフォルト: 10" msgid "Allow Push" msgstr "プッシュを許可する" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" "リポジトリへのプッシュを許可するユーザ名の一覧。空欄または未設定の場合はプッ" "シュは許可されません。\"*\" の場合は認証されてないユーザも含めて誰でもプッ" "シュ可能となります。ユーザ名をカンマ区切り(空白文字でも可)で指定された場合" "は、そのユーザは認証が必要となります。allow_push 一覧は deny_push 一覧の後に" "適用されます。" msgid "Deny Push" msgstr "プッシュを拒否する" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" "リポジトリへのプッシュを拒否するユーザ名の一覧。空欄または未設定の場合はプッ" "シュは拒否されません。\"*\" の場合は全てのユーザがプッシュを拒否されます。そ" "れ以外の場合、未認証ユーザは全て拒否され、認証ユーザについてもここにユーザ名" "をカンマ区切り(空白文字でも可)で指定された場合は拒否されます。deny_push 一覧" "は allow_push 一覧の前に適用されます。" msgid "Proxy" msgstr "プロキシ" msgid "Host" msgstr "ホスト名" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "プロキシサーバのホスト名とポート番号。例: \"myproxy:8000\"" msgid "Bypass List" msgstr "除外ホスト名" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "任意。プロキシサーバを使用しないホスト名をカンマ区切りで指定。" msgid "Optional. User name to authenticate with at the proxy server" msgstr "任意。プロキシサーバの認証に必要なユーザ名。" msgid "Password" msgstr "パスワード" msgid "Optional. Password to authenticate with at the proxy server" msgstr "任意。プロキシサーバの認証に必要なパスワード。" msgid "From" msgstr "From" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "From(送信者)として使用するメールアドレス。" msgid "To" msgstr "To" msgid "Comma-separated list of recipient email addresses" msgstr "送信先のメールアドレスをカンマ区切りで指定。" msgid "Cc" msgstr "Cc" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "CCとして送るメールアドレスをカンマ区切りで指定。" msgid "Bcc" msgstr "Bcc" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "BCCとして送るメールアドレスをカンマ区切りで指定。" msgid "method" msgstr "メール送信方法" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" "任意。メールを送信する方法。設定値が\"smtp\"(デフォルト)の場合はSMTP(下で設定" "可能)が使用されます。もしくはsendmailのようなメール送信プログラムの名前を指定" "することもできます(\"-f\" オプションで送信者と宛先メールアドレスの一覧、本文" "は標準入力)。その場合、通常は \"sendmail\" や \"/usr/sbin/sendmail\" で大丈夫" "なはずです。" msgid "SMTP Host" msgstr "SMTP ホスト名" msgid "Host name of mail server" msgstr "メールサーバのホスト名" msgid "SMTP Port" msgstr "SMTP ポート番号" msgid "Port to connect to on mail server. Default: 25" msgstr "メールサーバに接続するときのポート番号。デフォルトでは25。" msgid "SMTP TLS" msgstr "SMTP TLS 設定" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "メールサーバ接続における TLS 接続の有無 / 方式の指定。" msgid "SMTP Username" msgstr "SMTP ユーザ名" msgid "Username to authenticate to mail server with" msgstr "メールサーバの認証に使用するユーザ名" msgid "SMTP Password" msgstr "SMTP パスワード" msgid "Password to authenticate to mail server with" msgstr "メールサーバの認証に使用するパスワード" msgid "Local Hostname" msgstr "ローカルホスト名" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "送信者自信をメールサーバが識別するために使うホスト名。" msgid "Diff and Annotate" msgstr "差分と由来情報" msgid "Patch EOL" msgstr "パッチ改行文字" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" "改行文字を LF または CRLF に正規化します。\"strict\" は正規化しません。ファイ" "ルごとに改行文字を検出する \"auto\" が推奨設定です。デフォルトは \"strict\" " "です。" msgid "Git Format" msgstr "Git拡張形式" msgid "Use git extended diff header format. Default: False" msgstr "git 拡張差分ヘッダ形式を使用する。デフォルトで無効。" msgid "MQ Git Format" msgstr "MQ Gitフォーマット" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" msgid "No Dates" msgstr "日付を非表示" msgid "Do not include modification dates in diff headers. Default: False" msgstr "差分ヘッダに日付を表示しないようにします。デフォルトでは無効。" msgid "Show Function" msgstr "関数名の表示" msgid "Show which function each change is in. Default: False" msgstr "どの関数が変更されたのかを表示する。デフォルトで無効。" msgid "Ignore White Space" msgstr "空白文字を無視" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "" "差分表示時に、行の差分を比較する時に空白を無視します。デフォルト値は無効で" "す。" msgid "Ignore WS Amount" msgstr "空白文字数の無視" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "差分表示時に、空白スペースの量を無視します。デフォルト値は無効です。" msgid "Ignore Blank Lines" msgstr "空行を無視" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "" "差分表示時に、変更が空白行である場合に無視します。デフォルト値は無効です。" msgid "Annotate:" msgstr "由来情報:" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "" msgid "Fonts" msgstr "フォント" msgid "Message Font" msgstr "メッセージフォント" msgid "Font used to display commit messages. Default: monospace 10" msgstr "" "コミットメッセージの表示に使われるフォントです。デフォルトはmonospaceの10ポイ" "ントです。" msgid "Diff Font" msgstr "差分フォント" msgid "Font used to display text differences. Default: monospace 10" msgstr "" "差分表示に使われるフォントです。デフォルトはmonospaceの10ポイントです。" msgid "ChangeLog Font" msgstr "チェンジログフォント" msgid "Font used to display changelog data. Default: monospace 10" msgstr "" "チェンジログを表示するフォントの設定です。デフォルトは monospace の10ポイント" "です。" msgid "Output Font" msgstr "コマンド出力フォント" msgid "Font used to display output messages. Default: sans 8" msgstr "" "コマンド出力メッセージを表示するフォントの設定です。デフォルトは sans の8ポイ" "ントです。" msgid "Extensions" msgstr "エクステンション" msgid "Tools" msgstr "カスタムツール" msgid "Hooks" msgstr "フック" msgid "Issue Tracking" msgstr "課題管理" msgid "Issue Regex" msgstr "課題の正規表現" msgid "Defines the regex to match when picking up issue numbers." msgstr "課題番号にマッチする正規表現を定義" msgid "Issue Link" msgstr "課題へのリンク" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" msgid "Inline Tags" msgstr "インラインタグ" msgid "Show tags at start of commit message." msgstr "コミットメッセージの最初にタグを表示します。" msgid "Mandatory Issue Reference" msgstr "課題へのリンクを必須にする" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" msgid "Issue Tracker Plugin" msgstr "課題管理プラグイン" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "COM IBugTraqProvider か IBugTraqProvider2 課題管理プラグインの設定" msgid "Configure Issue Tracker" msgstr "課題管理設定" msgid "Configure the selected COM Bug Tracker plugin." msgstr "選択したCOMバグトラックプラグインを設定します" msgid "Issue Tracker Trigger" msgstr "課題管理トリガー" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

                                                          • never: Do not update the Issue Tracker " "state automatically.
                                                          • commit: Update the Issue Tracker state after " "a successful commit.

                                                          Default: never" msgstr "" msgid "Changeset Link" msgstr "リビジョンリンク" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
                                                          The template string " "uses a normal mercurial template syntax, such as:

                                                          • {node|short} : replaced by " "the 12 digit revision id.
                                                          • {rev} : replaced by the revision number." "
                                                          • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
                                                          For example, in order to " "link to bitbucket commit pages you can set this to:
                                                          https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
                                                          You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
                                                          https://github.com/torvalds/" "linux/commit/{gitnode}
                                                          https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
                                                          " msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "レビューボードへのパス (例: \"http://demo.reviewboard.org\")" msgid "User name to authenticate with review board" msgstr "レビューボードの認証に使うユーザー名" msgid "Password to authenticate with review board" msgstr "レビューボードの認証に使うパスワード" msgid "Server Repository ID" msgstr "サーバーリポジトリID" msgid "The default repository id for this repo on the review board server" msgstr "レビューボードサーバーでの、このリポジトリのリポジトリID" msgid "Target Groups" msgstr "ターゲットグループ" msgid "A comma separated list of target groups" msgstr "カンマ区切りのターゲットグループのリスト" msgid "Target People" msgstr "" msgid "A comma separated list of target people" msgstr "" msgid "Kiln Bfiles" msgstr "" msgid "Patterns" msgstr "パターン" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" msgid "Size" msgstr "サイズ" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" msgid "System Cache" msgstr "システムキャッシュ" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "" msgid "Simplelock" msgstr "" msgid "Lock Clone" msgstr "" msgid "" "Location of local clone of organizational lock repository.

                                                          This repository " "must contain a \"locked\" text file" msgstr "" msgid "Largefiles" msgstr "大容量ファイル" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" "このファイルパターンに合致したファイルは自動的に大容量バイナリファイルとして" "追加されます" msgid "Minimum Size" msgstr "最小サイズ" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" "大容量バイナリファイルととして追加する時の個々のファイルの最小サイズ(Mバイト)" msgid "User Cache" msgstr "ユーザーキャッシュ" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" "大容量ファイルのユーザが持つキャッシュを保存するディレクトリへのパスを設定し" "てください。" msgid "Projrc" msgstr "" msgid "Require confirmation" msgstr "" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

                                                          • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
                                                          • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
                                                          • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
                                                          " msgstr "" msgid "Servers" msgstr "サーバー" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" msgid "Include" msgstr "" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" msgid "Exclude" msgstr "" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" msgid "Update on incoming" msgstr "" msgid "" "Let the user update the projrc on incoming:
                                                          • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
                                                          • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
                                                          • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                                                            Default: never" msgstr "" msgid "GnuPG" msgstr "GnuPG" msgid "Specify the path to GPG. Default: gpg" msgstr "" msgid "Key ID" msgstr "鍵 ID" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "" msgid "TortoiseHg Settings" msgstr "TortoiseHg 設定" msgid "Iniparse package not found" msgstr "iniparse パッケージがありません" msgid "Can't change settings without iniparse package - view is readonly." msgstr "iniparse パッケージがないため設定を変更できません - 読み取り専用" #, python-format msgid "%s's global settings" msgstr "%s のユーザ設定" msgid "No repository found" msgstr "リポジトリがありません" msgid "no repo at " msgstr "以下にリポジトリはありません: " #, python-format msgid "%s project settings (.hg/projrc)" msgstr "" #, python-format msgid "%s repository settings" msgstr "%s リポジトリ設定" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "" "以下の変更を有効にするために、すべての TortoiseHg アプリケーションを再起動し" "てください:" msgid "Apply changes before exit?" msgstr "閉じる前に設定を保存しますか?" msgid "&No (discard changes)" msgstr "いいえ (変更を破棄)" msgid "Reload" msgstr "再読み込み" msgid "Settings File:" msgstr "設定ファイル:" msgid "Confirm Save" msgstr "保存確認" msgid "Save changes before editing?" msgstr "編集する前に変更を保存しますか?" msgid "&Save" msgstr "保存(&S)" msgid "Confirm Reload" msgstr "再読み込みの確認" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" "保存されていない変更が破棄されます。\n" "本当に再読み込みしてもよろしいですか?" msgid "Unable to create a Mercurial.ini file" msgstr "Mercurial.ini ファイルを作成できませんでした" msgid "Insufficient access rights, reverting to read-only mode." msgstr "アクセス権限が十分ではありません。読み込み専用モードに戻します" msgid "Context Menu" msgstr "右クリックメニュー" msgid "Top menu items:" msgstr "トップメニューとして表示:" msgid "Sub menu items:" msgstr "サブメニューとして表示:" msgid "Menu Behavior" msgstr "メニューの振る舞い" msgid "Hide context menu outside repositories" msgstr "リポジトリ外のコンテキストメニューを隠す" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" "管理下にないフォルダーの上でメニューを表示しない(上書きするには shift + ク" "リックをしてください)" msgid "Icons" msgstr "アイコン" msgid "Overlays" msgstr "アイコンオーバーレイ" msgid "Enabled overlays" msgstr "オーバーレイを有効化" msgid "Local disks only" msgstr "ローカルのみ" msgid "Enabled Overlay Handlers" msgstr "オーバーレイハンドラーを有効化" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "" "警告: すべての Tortoise に影響します。変更の後ログオフする必要があります。" msgid "Added" msgstr "追加済み" msgid "Locked*" msgstr "ロック中*" msgid "Ignored*" msgstr "無視*" msgid "Unversioned" msgstr "バージョン管理外" msgid "Readonly*" msgstr "読み取り専用*" msgid "Deleted*" msgstr "削除済み*" msgid "*: not used by TortoiseHg" msgstr "*: TortoiseHgでは使われていません" msgid "Taskbar" msgstr "タスクバー" msgid "Show Icon" msgstr "トレイアイコンの表示" msgid "Highlight Icon" msgstr "トレイアイコンの点滅" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" msgid "Explorer Extension Settings - TortoiseHg" msgstr "" msgid "Clear" msgstr "" msgid "Clear the current shelf file" msgstr "" msgid "Delete the current shelf file" msgstr "現在のシェルフファイルを削除します" msgid "Left Toolbar" msgstr "左ツールバー" msgid "Delete selected chunks" msgstr "選択したチャンクを削除します" msgid "Move all files right" msgstr "すべてのファイルを右に移動" msgid "Move selected file right" msgstr "選択したファイルを右に移動" msgid "Edit file" msgstr "ファイルを編集" msgid "Move selected chunks right" msgstr "選択したチャンクを右に移動" msgid "Refresh Toolbar" msgstr "再読み込みツールバー" msgid "Refresh" msgstr "再読み込み" msgid "New Shelf" msgstr "新しいシェルフ" msgid "Right Toolbar" msgstr "右ツールバー" msgid "Move selected chunks left" msgstr "選択したチャンクを左に移動" msgid "Move selected file left" msgstr "選択したファイルを左に移動" msgid "Move all files left" msgstr "すべてのファイルを左に移動" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "変更されたファイルは .hg/Trashcan/ にバックアップされます" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "TortoiseHg シェルフ - %s" msgid "Delete selected chunks from working copy?" msgstr "" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "" msgid "Are you sure?" msgstr "本当に削除しますか?" msgid "TortoiseHg New Shelf Name" msgstr "TortoiseHg 新しいシェルフ名" msgid "Specify name of new shelf" msgstr "新しいシェルフの名前を指定してください" msgid "Bad filename" msgstr "ファイル名が不正です" #, python-format msgid "A shelf name cannot contain %s" msgstr "" msgid "File already exists" msgstr "ファイルがすでに存在しています" msgid "A shelf file of that name already exists" msgstr "その名前のシェルフファイルはすでに存在しています" msgid "New shelf created" msgstr "新しいシェルフを作成しました" #, python-format msgid "Delete shelf file %s?" msgstr "シェルフファイル %s を削除しますか?" msgid "Shelf deleted" msgstr "シェルフを削除しました" msgid "Revert all working copy changes?" msgstr "作業領域での変更をすべて復旧しますか?" #, python-format msgid "Clear contents of shelf file %s?" msgstr "シェルフファイル %s の中身を削除しますか?" msgid "Shelf cleared" msgstr "シェルフを空にしました" #, python-format msgid "Shelf: %s" msgstr "シェルフ: %s" #, python-format msgid "Patch: %s" msgstr "パッチ: %s" msgid "Key:" msgstr "鍵:" msgid "Local sign" msgstr "ローカルな署名" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "署名ファイルが変更されていても署名 (-f/--force)" msgid "No commit" msgstr "コミットしない" msgid "Use custom commit message:" msgstr "カスタムコミットメッセージを使用する:" msgid "&Sign" msgstr "署名(&S)" #, python-format msgid "Sign - %s" msgstr "署名 - %s" msgid "Signature has been added" msgstr "署名しました" msgid "Repository command still running" msgstr "リポジトリのコマンドがまだ動作しています" msgid "Filter:" msgstr "フィルター:" msgid "Check all files" msgstr "すべてのファイルを選択" msgid "Uncheck all files" msgstr "選択をすべて解除" msgid "Status File List Toolbar" msgstr "ステータスファイルリストツールバー" msgid "Remove filter, show root" msgstr "フィルタをクリアしてルートを表示" #, python-format msgid "%s - status (selection filtered)" msgstr "%s - 状態 (選択がフィルター済み)" #, python-format msgid "%s - status" msgstr "%s - 状態" msgid "Check" msgstr "チェック" msgid "Uncheck" msgstr "チェックを外す" msgid "status" msgstr "状態" msgid "Failed to refresh" msgstr "" msgid "No appropriate files" msgstr "適切なファイルがありません" msgid "No files found for this operation" msgstr "この操作が可能なファイルが見つかりません" msgid "Stat" msgstr "状態" msgid "M" msgstr "M" msgid "Filename" msgstr "ファイル名" msgid "Size (KB)" msgstr "サイズ (KB)" #, python-format msgid "Checked count: %d" msgstr "チェック数: %d" msgid ", resolved merge" msgstr "、マージ解消済み" msgid ", unresolved merge" msgstr "、マージ未解消" #, python-format msgid "%s is modified" msgstr "%s は変更されています" msgid "modified" msgstr "変更" #, python-format msgid "%s is added" msgstr "" msgid "added" msgstr "追加" #, python-format msgid "%s is removed" msgstr "" msgid "removed" msgstr "削除" #, python-format msgid "%s is not tracked (unknown)" msgstr "" msgid "unknown" msgstr "不明" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "" msgid "missing" msgstr "紛失" #, python-format msgid "%s is ignored" msgstr "%s は無視されています" msgid "ignored" msgstr "無視" #, python-format msgid "%s is not modified (clean)" msgstr "%s は変更されていません(クリーン)" msgid "clean" msgstr "クリーン" #, python-format msgid "%s is a dirty subrepo" msgstr "%s は変更されているサブリポジトリです" msgid "subrepo" msgstr "サブリポ" msgid "Check for incoming changes from selected URL" msgstr "指定のURLからプルできるか(取り込めるか)確認" msgid "Pull incoming changes from selected URL" msgstr "指定したURLからプルする(取り込む)" msgid "Detect outgoing changes to selected URL" msgstr "指定のURLにプッシュ(送信)する内容があるか確認" msgid "Push outgoing changes to selected URL" msgstr "指定のURLにプッシュ(送信)" msgid "Sync Bookmarks" msgstr "" msgid "Email outgoing changesets for remote repository" msgstr "連携先リポジトリとの差分をメールする" msgid "Manage pending perforce changelists" msgstr "" msgid "Unbundle" msgstr "バンドルファイルの適用" msgid "Selected Options:" msgstr "選択したオプション:" msgid "Path Edit Toolbar" msgstr "パス編集ツールバー" msgid "Security" msgstr "セキュリティ" msgid "Manage HTTPS connection security and user authentication" msgstr "HTTPS接続と認証の設定" msgid "Save" msgstr "保存" msgid "Save current URL under an alias" msgstr "このURLをエイリアスをつけて保存" msgid "Paths in Repository Settings:" msgstr "リポジトリで設定されているパス:" msgid "Related Paths:" msgstr "関連パス:" msgid "branch: " msgstr "ブランチ: " msgid "bookmark: " msgstr "ブックマーク: " #, python-format msgid "rev: %d (%s)" msgstr "リビジョン: %d (%s)" msgid "Post Pull: " msgstr "プル後の処理: " msgid "&Edit..." msgstr "編集(&E)..." msgid "&Remove..." msgstr "削除(&R)..." msgid "Repository not local" msgstr "リポジトリがローカルではありません" msgid "A terminal shell cannot be opened for remote" msgstr "リモートに対して、シェルターミナルを開くことはできません" msgid "Confirm path delete" msgstr "" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "%s をリポジトリの設定ファイルから削除しますか?" msgid "Select repository" msgstr "" msgid "No host specified" msgstr "" msgid "Please set a valid URL to continue." msgstr "続ける前に URL を正しく設定してください。" msgid "No remote repository URL or path set" msgstr "反映先のURLかパスが設定されていません" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

                                                            Please type and save a remote repository path on the " "Sync widget." msgstr "" "このリポジトリには、デフォルトの反映先リポジトリURLかパスが設定されて" "いません。

                                                            同期ウィジェットで反映先リポジトリパスを入力し、保存してくださ" "い。" msgid "Redundant authentication info" msgstr "不必要な認証情報" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" "指定されたURLにはそのホストに対する認証情報(パスワード等)が埋め込まれていま" "す。URLから認証情報を削除しますか?" msgid "sync command already running" msgstr "同期コマンドが既に実行中です" #, python-format msgid "Getting incoming changesets from %s..." msgstr "%s から取り込めるチェンジセットがあるか確認中..." #, python-format msgid "Found incoming changesets from %s" msgstr "%s から取り込めるチェンジセットがあります" #, python-format msgid "No incoming changesets from %s" msgstr "%s から取り込めるチェンジセットはありません" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "%s からの取り込めるチェンジセットの確認が中断されました。 %d" #, python-format msgid "Pulling from %s..." msgstr "%s からプル(取り込み)中..." #, python-format msgid "Pull from %s completed" msgstr "%s からのプル(取り込み)を完了しました" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "%s からのプル(取り込み)が中断されました。 %d" msgid "Merge caused file conflicts" msgstr "マージによるファイルの衝突" msgid "File conflicts need to be resolved" msgstr "変更が衝突しました。解消してください。" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "%s へ送信できるチェンジセットを確認中..." #, python-format msgid "%d outgoing changesets to %s" msgstr "%d 件のチェンジセットを %s に送信できます" #, python-format msgid "No outgoing changesets to %s" msgstr "%s に送信できるチェンジセットはありません" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "%s への送信確認が中断されました: %d" msgid "Perforce pending..." msgstr "" #, python-format msgid "%s (submitted)" msgstr "%s (送信完了)" #, python-format msgid "%s (pending)" msgstr "%s (保留中)" msgid "Unable to parse p4pending output" msgstr "p4pendingの出力結果を解析できませんでした" #, python-format msgid "%d pending changelists found" msgstr "%d 個の保留中の変更リストが見つかりました" msgid "No pending Perforce changelists" msgstr "保留中の Perforce 変更リストはありません" msgid "Aborted p4pending" msgstr "p4pending 中断" msgid "Unable to determine pending changesets" msgstr "保留中の変更リストを決定できません" msgid "Confirm Push to remote Repository" msgstr "プッシュの確認" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" "リモートリポジトリへプッシュしてもよろしいですか?\n" "%s" #, python-format msgid "Push to %s aborted" msgstr "%s への送信が中断されました" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" #, python-format msgid "Pushing to %s..." msgstr "%s に送信中..." #, python-format msgid "Push to %s completed" msgstr "%s への送信が完了しました" #, python-format msgid "Push to %s aborted, ret %d" msgstr "%s への送信が中断されました: %d" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" "これからプッシュするチェンジセットは新しいブランチを作成します。連携先に新し" "いブランチを作成しますか?" msgid "Determining outgoing changesets to email..." msgstr "メール送信するチェンジセットを決定中..." msgid "No outgoing changesets" msgstr "送信確認するチェンジセットがありません" #, python-format msgid "Outgoing aborted, ret %d" msgstr "送信確認を中断しました: %d" msgid "Select bundle file" msgstr "バンドルファイルを指定" msgid "Bundle files (*.hg)" msgstr "バンドルファイル (*.hg)" msgid "Unable to remove URL" msgstr "URLを削除できません" msgid "Post Pull Behavior" msgstr "プル後の処理" msgid "Select post-pull operation for this repository" msgstr "このリポジトリでのプル後の処理を選んでください" msgid "None - simply pull changesets" msgstr "なにもしない - 単にチェンジセットをプルします" msgid "Update - pull, then try to update" msgstr "更新 - プルしてから更新します" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "Fetch - Fetch拡張を使う (プルした変更を自動でマージする)" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "fetch - Fetch拡張を使う (フェッチが有効化されていません!)" msgid "Rebase - rebase local commits above pulled changes" msgstr "リベース - プルした変更の上にローカルコミットをリベースします" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "リベース - リベース拡張を使う (リベース拡張が無効です!)<" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "" msgid "Launch settings tool..." msgstr "設定ツールを開く..." msgid "Unable to save post pull operation" msgstr "プル後の処理を保存できません" msgid "Save Path" msgstr "パスを保存" msgid "Alias" msgstr "エイリアス" msgid "URL" msgstr "URL" msgid "Remove authentication data from URL" msgstr "URLから認証情報(パスワード等)を削除する" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" "ユーザーの認証情報は、セキュリティダイアログでホスト名と結びつける必要があり" "ます" msgid "Update subrepo paths" msgstr "サブリポジトリのパスを更新" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" msgid "Unable to save an URL" msgstr "URLを保存できません" msgid "Confirm URL replace" msgstr "URLの置き換え確認" #, python-format msgid "%s already exists, replace URL?" msgstr "%s はすでにあります。URLを置き換えますか?" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

                                                            %s

                                                            Replace it with the " "following URL?:

                                                            %s" msgstr "" msgid "Security: " msgstr "セキュリティ: " #, python-format msgid "Host: %s" msgstr "ホスト名: %s" msgid "Secure HTTPS Connection" msgstr "安全なHTTPS接続" msgid "Verify with Certificate Authority certificates (best)" msgstr "認証局の証明書を使って有効性を確認(一番良い)" msgid "Verify with stored host fingerprint (good)" msgstr "保存されているホストのフィンガープリントを使って有効性を確認(良い)" msgid "No host validation, but still encrypted (bad)" msgstr "ホストの有効性を確認しないが、暗号化はする(悪い)" msgid "### host certificate fingerprint ###" msgstr "### ホストの証明書フィンガープリント ###" msgid "Query" msgstr "クエリー" msgid "TLS 1.0" msgstr "" msgid "TLS 1.1" msgstr "" msgid "TLS 1.2" msgstr "" msgid "Minimum Protocol" msgstr "" msgid "User Authentication" msgstr "ユーザー認証情報" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" "Mercurialのkeyring拡張が有効です。パスワードはプラットフォームに依存する安全" "な方法で保存されます" msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Key" msgstr "" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Chain" msgstr "" msgid "Certificate Query Error" msgstr "証明書クエリーエラー" msgid "Select User Certificate Key File" msgstr "" msgid "PEM files (*.pem *.key)" msgstr "" msgid "Select User Certificate Chain File" msgstr "" msgid "PEM files (*.pem *.crt *.cer)" msgstr "" msgid "Unable to save authentication" msgstr "証明情報を保存できません" #, python-format msgid "%s - sync options" msgstr "%s - 同期の設定" msgid "Allow push of a new branch (--new-branch)" msgstr "新規ブランチの反映を許可 (--new-branch)" msgid "Force push or pull (override safety checks, --force)" msgstr "push や pull を強制 (安全確認を無効化 --force)" msgid "Temporarily disable configured HTTP proxy" msgstr "HTTP プロキシの設定を一時的に無効化" msgid "Emit debugging output (--debug)" msgstr "デバッグ出力する (--debug)" msgid "Work on patch queue (--mq)" msgstr "パッチキューを使う (--mq)" #, python-format msgid "Tag - %s" msgstr "タグ - %s" msgid "Tag:" msgstr "タグ:" msgid "Tagged:" msgstr "タグリビジョン:" msgid "Local tag" msgstr "ローカルタグ" msgid "Replace existing tag (-f/--force)" msgstr "既存のタグを置換 (-f/--force)" msgid "Use English commit message" msgstr "英語のコミットメッセージを使用する" msgid "local" msgstr "ローカル" msgid "Move" msgstr "移動" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "タグ %s をチェンジセット %s に (チェンジセット%sから) 移動しました" #, python-format msgid "Added tag %s for changeset %s" msgstr "%s タグをチェンジセット %s に追加しました" #, python-format msgid "Tag '%s' has been moved" msgstr "'%s' タグを移動しました" #, python-format msgid "Tag '%s' has been added" msgstr "タグ '%s' を追加しました" #, python-format msgid "Removed tag %s" msgstr "%s タグを削除" #, python-format msgid "Tag '%s' has been removed" msgstr "'%s' タグを削除しました" msgid "Patch files (*.diff *.patch)" msgstr "パッチファイル (*.diff *.patch)" #, python-format msgid "Import - %s" msgstr "インポート - %s" msgid "Browse Directory..." msgstr "ディレクトリの選択..." msgid "Import from Clipboard" msgstr "クリップボードからインポート" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "パス要素を除去しない(-p0)。SVNパッチに必要です" msgid "Preview:" msgstr "プレビュー:" msgid "Shelf" msgstr "シェルフ" msgid "Checking working directory status..." msgstr "作業領域の状態を調べています..." msgid "&Import" msgstr "インポート(&I)" msgid "Working directory is not clean! View changes..." msgstr "作業領域がクリーンでありません! 変更を見る..." msgid "Select patches" msgstr "パッチを指定して下さい" msgid "Select Directory containing patches" msgstr "パッチがあるディレクトリを指定して下さい" #, python-format msgid "%s patches" msgstr "%s パッチ" #, python-format msgid "%s will be imported to " msgstr "%s のインポート先 " msgid "Nothing to import" msgstr "インポートするパッチがありません" msgid "Strip:" msgstr "削除:" msgid "Discard local changes, no backup (-f/--force)" msgstr "ローカルの変更を破棄する (バックアップなし, -f/--force)" msgid "No backup (-n/--nobackup)" msgstr "バックアップなし (-n/--nobackup)" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "%d つのチェンジセットが削除されます" msgid "Unknown revision!" msgstr "不明なリビジョンです" msgid "Detected uncommitted local changes." msgstr "コミットしていない変更があります" msgid "Do you want to keep them or discard them?" msgstr "" msgid "&Keep (--keep)" msgstr "" msgid "&Discard (--force)" msgstr "" msgid "Confirm Strip" msgstr "削除の確認" #, python-format msgid "Strip - %s" msgstr "リビジョンの削除 - %s" msgid "&Strip" msgstr "削除(&S)" msgid "Topic:" msgstr "" msgid "&Rename" msgstr "" #, python-format msgid "Topic - %s" msgstr "" #, python-format msgid "A topic named \"%s\" already exists" msgstr "" #, python-format msgid "Topic '%s' has been added" msgstr "" #, python-format msgid "Topic '%s' does not exist" msgstr "" #, python-format msgid "Topic '%s' has been removed" msgstr "" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "" msgid "Parent 1:" msgstr "親リビジョン1:" msgid "Parent 2:" msgstr "親リビジョン2:" msgid "Pull subrepos from:" msgstr "" msgid "List updated files (--verbose)" msgstr "更新したファイルを表示 (--verbose)" msgid "Discard local changes, no backup (-C/--clean)" msgstr "ローカルの変更を破棄する (バックアップなし, -C/--clean)" msgid "Always merge (when possible)" msgstr "可能なときは常にマージ" msgid "(same as parent)" msgstr "(親リビジョンと同じ)" msgid "Activate bookmark?" msgstr "ブックマークを有効化しますか?" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

                                                            Do " "you want to activate it?
                                                            You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" "選択したリビジョン (%s) には \"%s\" と呼ばれるブックマークがあります" "

                                                            このブックマークを有効化しますか?
                                                            このプロンプトは 設定->ワークベン" "チ->ブックマークを有効化 で無効化できます" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

                                                            Select " "the bookmark that you want to activate and click OK.

                                                            Click " "Cancel if you don't want to activate any of them.

                                                            You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                            " msgstr "" msgid "Deactivate current bookmark?" msgstr "現在のブックマークを無効化しますか?" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "本当に %s ブックマークを無効化しますか?" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" "コミットしていない変更が作業領域にあります。\n" "続けるにはどれかを選んでください。\n" msgid "Discard - discard local changes, no backup" msgstr "破棄 - ローカルの変更をバックアップせずに破棄する" msgid "&Shelve" msgstr "シェルフ(&S)" msgid "Shelve - move local changes to a patch" msgstr "シェルフ - ローカルの変更をパッチに移動します" msgid "Merge - allow to merge with local changes" msgstr "マージ - ローカルの変更とのマージを試みる" msgid "Confirm Update" msgstr "更新の確認" #, python-format msgid "Update - %s" msgstr "更新 - %s" msgid "[non-existant]" msgstr "[存在しません]" msgid "Tool launch failure" msgstr "ツールの起動に失敗しました" #, python-format msgid "%s : %s" msgstr "%s : %s" msgid "No diff tool found" msgstr "差分ツールが見つかりません" msgid "No visual diff tools were detected" msgstr "GUI 差分ツールが見つかりませんでした" msgid "[working copy]" msgstr "[作業領域]" msgid "[original]" msgstr "[オリジナル]" msgid "Unable to find changeset" msgstr "チェンジセットを見つかりません" msgid "You likely need to refresh this application" msgstr "再読み込みする必要があります" msgid "No file changes" msgstr "ローカルとの差分" msgid "There are no file changes to view" msgstr "ローカルとの間に変更点はありませんでした。" msgid "working changes" msgstr "作業領域の変更" #, python-format msgid "changeset %d:%s" msgstr "チェンジセット %d:%s" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "リビジョン %d:%s と %d:%s" msgid "Visual Diffs - " msgstr "GUI 差分表示 - " msgid " filtered" msgstr " フィルタ適用" msgid "Temporary files are removed when this dialog is closed" msgstr "このダイアログを閉じると一時ファイルが削除されます" msgid "Select Tool:" msgstr "ツール選択:" msgid "Dir diff to p1" msgstr "1番目の親へのディレクトリ差分" msgid "Dir diff to p2" msgstr "2番目の親へのディレクトリ差分" msgid "3-way dir diff" msgstr "3-way ディレクトリ差分" msgid "Directory diff" msgstr "ディレクトリ差分" msgid "Confirm Discard" msgstr "破棄の確認" msgid "Discard outstanding changes to working directory?" msgstr "作業領域のコミットしていない変更を破棄しますか?" msgid "Config files (*.conf *.config *.ini)" msgstr "設定ファイル (*.conf *.config *.ini)" msgid "Open hgweb config" msgstr "hgweb設定を開く" msgid "Save hgweb config" msgstr "hgweb設定を保存" msgid "Path:" msgstr "パス:" msgid "Local Path:" msgstr "ローカルパス:" msgid "Select Repository" msgstr "リポジトリを選択" msgid "Add Path to Serve" msgstr "提供するパスを追加" msgid "Edit Path to Serve" msgstr "提供するパスを編集" msgid "Local Path" msgstr "ローカルパス" msgid "Webconf" msgstr "ウェブサーバー設定" msgid "Config File:" msgstr "設定ファイル:" msgid "Open" msgstr "開く" msgid "New &Workbench" msgstr "新しいウィンドウ(&W)" msgid "&New Repository..." msgstr "リポジトリを作成 (i&nit)..." msgid "Clon&e Repository..." msgstr "リポジトリを複製 (clon&e)..." msgid "&Open Repository..." msgstr "リポジトリを開く(&O)..." msgid "&File" msgstr "ファイル(&F)" msgid "&View" msgstr "表示(&V)" msgid "&Repository" msgstr "リポジトリ(&R)" msgid "&Help" msgstr "ヘルプ(&H)" msgid "&Dock Toolbar" msgstr "ドックツールバー(&D)" msgid "&Task Toolbar" msgstr "タスクツールバー(&T)" msgid "&Custom Toolbar" msgstr "カスタムツールバー(&C)" msgid "S&ync Toolbar" msgstr "同期ツールバー(&Y)" msgid "&Close Repository" msgstr "リポジトリを閉じる(&C)" msgid "Sh&ow Repository Registry" msgstr "リポジトリ一覧を表示(&O)" msgid "Show &Patch Queue" msgstr "パッチキューを表示(&P)" msgid "Show Conso&le" msgstr "" msgid "Place Console in Doc&k Area" msgstr "" msgid "R&epository Registry Options" msgstr "リポジトリ一覧のオプション(&E)" msgid "Save Open Repositories on E&xit" msgstr "終了時に開いているリポジトリを保存(&X)" msgid "Sa&ve Current Sync Paths on Exit" msgstr "" msgid "Show Tas&k Tab" msgstr "" msgid "&Commit" msgstr "コミット(&C)" msgid "&Patch Branch" msgstr "パッチブランチ(&P)" msgid "Revision &Details" msgstr "リビジョンの詳細(&D)" msgid "&Search" msgstr "検索(&S)" msgid "S&ynchronize" msgstr "同期(&Y)" msgid "Refresh current repository" msgstr "現在のリポジトリを再読み込み" msgid "Refresh &Task Tab" msgstr "タスクタブを更新(&T)" msgid "Refresh only the current task tab" msgstr "現在のタスクタブのみ更新" msgid "Load &All Revisions" msgstr "すべてのリビジョンを読み込む(&A)" msgid "Load all revisions into graph" msgstr "" msgid "Go to current revision" msgstr "現在のリビジョンへ移動" msgid "&Goto Revision..." msgstr "リビジョンへ移動(&G)..." msgid "Go to a specific revision" msgstr "指定のリビジョンに移動" msgid "Filter graph with revision sets or branches" msgstr "リビジョンセットやブランチで履歴をフィルター" msgid "&Workbench Toolbars" msgstr "&Workbench ツールバー" msgid "&Lock File..." msgstr "" msgid "Lock or unlock files" msgstr "" msgid "Update working directory or switch revisions" msgstr "作業領域の内容更新またはリビジョンの切り替え" msgid "&Shelve..." msgstr "変更点の退避 (&shelve)..." msgid "&Import Patches..." msgstr "" msgid "U&nbundle..." msgstr "" msgid "&Merge..." msgstr "" msgid "Merge with the other head of the current branch" msgstr "" msgid "&Resolve..." msgstr "マージ衝突を解消 (&resolve)..." msgid "R&ollback/Undo..." msgstr "元に戻す (r&ollback)..." msgid "&Purge..." msgstr "対象外ファイルを削除 (&purge)..." msgid "&Bisect..." msgstr "問題の二分探索 (&bisect)..." msgid "&Verify" msgstr "整合性を検証 (&verify)" msgid "Re&cover" msgstr "修復 (re&cover)" msgid "&Web Server" msgstr "ウェブサーバ(&W)" msgid "E&xplorer Help" msgstr "" msgid "&Readme" msgstr "&Readme" msgid "About &Qt" msgstr "&Qt について" msgid "&About TortoiseHg" msgstr "TortoiseHg について(&A)" msgid "&Incoming" msgstr "未取り込みを検索 (&incoming)" msgid "&Pull" msgstr "取り込み (&pull)" msgid "&Outgoing" msgstr "反映候補を検索 (&outgoing)" msgid "P&ush" msgstr "反映 (p&ush)" msgid "&Sync Bookmarks..." msgstr "" #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" "pull: %s\n" "push: %s" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" msgid "Check for incoming changes" msgstr "未取り込みリビジョンを検索" msgid "Pull incoming changes" msgstr "変更を取り込む" msgid "Detect outgoing changes" msgstr "反映可能なリビジョンを検索" msgid "Push outgoing changes" msgstr "変更を反映" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" "%s\n" "から未取り込みリビジョンを検索" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" "%s\n" "から変更を取り込む" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" "%s\n" "へ反映可能なリビジョンを検索" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" "%s\n" "へ変更を反映" #, python-format msgid "Execute custom tool '%s'" msgstr "カスタムツール '%s' を実行" msgid "Custom Toolbar &Settings" msgstr "カスタムツールバーの設定(&S)" msgid "TortoiseHg Workbench" msgstr "TortoiseHg Workbench" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "%s - TortoiseHg Workbench - %s" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "%s - TortoiseHg Workbench" msgid "Goto revision" msgstr "指定のリビジョンに移動" msgid "Enter revision identifier" msgstr "リビジョンIDを入力してください" msgid "Select repository directory to open" msgstr "ディレクトリを選択してリポジトリを開く" msgid "README not configured" msgstr "マニュアルが設定されていません" msgid "" "A README file is not configured for the current repository.

                                                            To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" "このリポジトリではマニュアルファイル(README)が設定されていません。

                                                            マニュア" "ルファイルをリポジトリに設定するには、リポジトリ設定ファイルを開" "き、'readme'キーを'tortoisehg'セクションに加え、マニュアル" "(README)ファイルのファイル名かURLを設定してください。" msgid "Issue Tracker Plugin Error" msgstr "課題管理プラグインのエラー" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "課題管理プラグインのCOMオブジェクトをインスタンス化できません" msgid "This error will not be shown again until you restart the workbench" msgstr "このエラーはワークベンチを再起動するまで再表示されません。" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "" msgid "Error executing \"commit finished\" trigger" msgstr "" msgid "Cannot open Plugin Options dialog" msgstr "プラグインオプションダイアログを開けません" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "" msgid "[--insecure] [SOURCE]" msgstr "" #, python-format msgid "unsupported URL: %s" msgstr "" #, python-format msgid "%s certificate error: no certificate received" msgstr "" msgid "move after the specified patch" msgstr "" msgid "[--after PATCH] PATCH..." msgstr "" msgid "unknown patch to move specified" msgstr "" msgid "invalid patch position specified" msgstr "" msgid "cannot move applied patches" msgstr "" #, python-format msgid "patch %s not in series" msgstr "" msgid "cannot move into applied patches" msgstr "" msgid "abort: " msgstr "中止: " msgid "hint: " msgstr "ヒント: " #, python-format msgid "HTTP Error: %d (%s)" msgstr "HTTPエラー: %d (%s)" #, python-format msgid "URLError: %s" msgstr "URLエラー: %s" msgid "SSL: Server certificate verify failed" msgstr "SSL: サーバー証明書の確認が失敗しました" #, python-format msgid "SSL: unknown error %s:%s" msgstr "SSL: 不明なエラー %s:%s" #, python-format msgid "SSL error: %s" msgstr "SSLエラー: %s" msgid "hgsubversion packaged with thg" msgstr "" msgid "hggit packaged with thg" msgstr "" msgid "inotify is not supported on this platform" msgstr "" "inotify エクステンションはこのプラットフォームではサポートされていません" msgid "eol is incompatible with win32text" msgstr "eol エクステンションは win32text エクステンションと競合します" msgid "win32text is incompatible with eol" msgstr "win32text エクステンションは eol エクステンションと競合します" msgid "hgsubversion is incompatible with perfarce" msgstr "hgsubversion エクステンションは perfarce エクステンションと競合します" msgid "perfarce is incompatible with hgsubversion" msgstr "perfarce エクステンションは hgsubversion エクステンションと競合します" msgid "Workbench custom toolbar" msgstr "" msgid "Revision details context menu" msgstr "" msgid "Pair selection context menu" msgstr "" msgid "Multiple selection context menu" msgstr "" msgid "Commit context menu" msgstr "" msgid "File context menu (on manifest and revision details)" msgstr "" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "%d 年" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "%d ヶ月" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "%d 週" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "%d 日" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "%d 時間" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "%d 分" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d 秒" msgid "in the future" msgstr "未来" msgid "now" msgstr "たった今" #, python-format msgid "command parse error: %s" msgstr "コマンドの解釈時エラー: %s" #, python-format msgid "no matches found: %s" msgstr "見つかりません: %s" msgid "Commit..." msgstr "コミット..." msgid "Commit changes in repository" msgstr "変更点をリポジトリにコミットします" msgid "Create Repository Here" msgstr "ここにリポジトリを作成" msgid "Create a new repository" msgstr "ここに新しいリポジトリを作成します" msgid "Clone..." msgstr "リポジトリのクローン..." msgid "Create clone here from source" msgstr "リポジトリのクローンを作成します" msgid "File Status" msgstr "変更点の確認" msgid "Repository status & changes" msgstr "作業ツリーの状態と変更点を表示します" msgid "Add Files..." msgstr "追加..." msgid "Add files to version control" msgstr "ファイルをバージョン管理に追加します" msgid "Revert Files..." msgstr "ファイルの復旧(revert)..." msgid "Revert file changes" msgstr "変更を元に戻します" msgid "Forget Files..." msgstr "登録除外..." msgid "Remove files from version control" msgstr "ファイルをバージョン管理から削除します" msgid "Remove Files..." msgstr "削除..." msgid "Rename File" msgstr "名前の変更..." msgid "Rename file or directory" msgstr "ファイルまたはフォルダ名の変更" msgid "View change history in repository" msgstr "リポジトリの変更履歴を表示します" msgid "File History" msgstr "ファイルの変更履歴" msgid "View change history of selected files" msgstr "選択中のファイルの変更履歴を表示" msgid "Shelve Changes" msgstr "" msgid "Move changes between working dir and patch" msgstr "" msgid "Synchronize" msgstr "同期ツール" msgid "Synchronize with remote repository" msgstr "他のリポジトリと同期します" msgid "Start web server for this repository" msgstr "リポジトリのウェブサーバを起動します" msgid "Update..." msgstr "特定のリビジョンへ更新..." msgid "Update working directory" msgstr "作業ツリーを指定リビジョンに更新します" msgid "Update Icons" msgstr "アイコンの更新" msgid "Update icons for this repository" msgstr "アイコンオーバーレイを更新します" msgid "Global Settings" msgstr "ユーザ設定" msgid "Configure user wide settings" msgstr "ユーザ設定ダイアログを開きます" msgid "Repository Settings" msgstr "リポジトリ設定" msgid "Configure repository settings" msgstr "リポジトリ設定ダイアログを開きます" msgid "Explorer Extension Settings" msgstr "エクスプローラ設定" msgid "Configure Explorer extension" msgstr "エクスプローラ設定ダイアログを開きます" msgid "About TortoiseHg" msgstr "TortoiseHg について" msgid "Show About Dialog" msgstr "バージョン情報を表示します" msgid "Diff to parent" msgstr "親リビジョンとの差分" msgid "View changes using GUI diff tool" msgstr "変更点を GUI 差分ツールで表示します" msgid "Edit Ignore Filter" msgstr "無視フィルタの編集" msgid "Edit repository ignore filter" msgstr "リポジトリの無視フィルタの編集します" msgid "Guess Renames" msgstr "名前変更の推定" msgid "Detect renames and copies" msgstr "名前変更およびコピーを検出します" msgid "Search History" msgstr "リポジトリ検索" msgid "Search file revisions for patterns" msgstr "正規表現でリポジトリ全体を検索します" msgid "DnD Synchronize" msgstr "同期ツール" msgid "Synchronize with dragged repository" msgstr "ドラッグされたリポジトリと同期します" #, python-format msgid "unrecognized response: %s" msgstr "" msgid "password: " msgstr "パスワード: " #, python-format msgid "repository %s not found" msgstr "リポジトリ %s が見つかりません" msgid "win32ill: cannot create window for messages" msgstr "" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "" msgid "win32ill: interrupted while stopping message loop\n" msgstr "" #~ msgid "applying patch\n" #~ msgstr "パッチを適用中です\n" #~ msgid "edit failed" #~ msgstr "編集に失敗しました" #~ msgid "run server in background" #~ msgstr "サーバをバックグラウンドで実行する" #~ msgid "SSL certificate file" #~ msgstr "SSL証明書のファイル" #~ msgid "limit number of changes displayed" #~ msgstr "表示するチェンジセット数を制限する" #~ msgid " and " #~ msgstr " と " #~ msgid "hg shelve [OPTION]... [FILE]..." #~ msgstr "hg shelve [OPTION]... [FILE]..." #~ msgid "hg unshelve [OPTION]... [FILE]..." #~ msgstr "hg unshelve [OPTION]... [FILE]..." #~ msgid "name to show in web pages (default: working dir)" #~ msgstr "Webページで表示する名前" #~ msgid "template style to use" #~ msgstr "使用するテンプレート" #~ msgid "name of error log file to write to" #~ msgstr "エラーログのファイル名" #~ msgid "address to use" #~ msgstr "使用するアドレス" #~ msgid "port to use (default: 8000)" #~ msgstr "待ち受けポート番号(デフォルト: 8000)" #~ msgid "hg serve [OPTION]..." #~ msgstr "hg serve [OPTION]..." #~ msgid "use IPv6 in addition to IPv4" #~ msgstr "IPv4だけでなくIPv6も使用する" #~ msgid "a tag named \"%s\" already exists" #~ msgstr "\"%s\" タグは既に存在しています" #~ msgid "restoring %r to %r\n" #~ msgstr "%r から %r まで保存中\n" #~ msgid "backup %r as %r\n" #~ msgstr "%r を %r としてバックアップする\n" #~ msgid "making snapshot of %d files from rev %s\n" #~ msgstr "%d 個のファイルのスナップショットをリビジョン %s からマーク\n" #~ msgid "this modifies a binary file (all or nothing)\n" #~ msgstr "バイナリファイルに対する変更です (全体または一部)\n" #~ msgid "shelve changes to %s?" #~ msgstr "%sにシェルフしてもよろしいですか?" #~ msgid "this is a binary file\n" #~ msgstr "これはバイナリファイルです\n" #~ msgid "shelve this change to %r?" #~ msgstr "この変更を%rにシェルフしてもよろしいですか?" #~ msgid "shelve data already exists" #~ msgstr "シェルフデータが既に存在しています" #~ msgid "mark new/missing files as added/removed before shelving" #~ msgstr "シェルフする前に新規または不明なファイルを追加または削除する" #~ msgid "no changes to shelve\n" #~ msgstr "シェルフへの変更はありません\n" #~ msgid "prefix path to serve from (default: server root)" #~ msgstr "サーバURLの接頭辞(デフォルト: サーバのルート)" #~ msgid "name of file to write process ID to" #~ msgstr "プロセスIDを書き込むためのファイル名" #~ msgid "for remote clients" #~ msgstr "リモートクライアント用" #~ msgid "inspect shelved changes only" #~ msgstr "シェルフされた変更のみ調べる" #~ msgid "used internally by daemon mode" #~ msgstr "デーモンモードによって内部的に使用される" #~ msgid "name of access log file to write to" #~ msgstr "アクセスログファイルの名前" #~ msgid "listening at http://%s%s/%s (%s:%d)\n" #~ msgstr "http://%s%s/%s (%s:%d) で待ち受け中\n" #~ msgid "proceed even if patches do not unshelve cleanly" #~ msgstr "パッチがシェルフから完全に戻されなくても処理を続行する" #~ msgid "web templates to use" #~ msgstr "使用するWebテンプレート" #~ msgid "shelve can only be run interactively" #~ msgstr "シェルフは対話的な動作のみ可能です" #~ msgid "response expected" #~ msgstr "応答がありませんでした" #~ msgid "Backout" #~ msgstr "バックアウト" #~ msgid "undo recent commit" #~ msgstr "直前のコミットを取り消す" #~ msgid "commit" #~ msgstr "コミットする" #~ msgid "_Commit" #~ msgstr "コミット(_C)" #~ msgid "_Remove" #~ msgstr "削除(_R)" #~ msgid "Unable to create " #~ msgstr "バックアップディレクトリを作成できませんでした " #~ msgid "_Add" #~ msgstr "追加(_A)" #~ msgid "Save commit message at exit?" #~ msgstr "終了時にコミットメッセージを保存しますか?" #~ msgid "Errors during rollback!" #~ msgstr "ロールバック中にエラーが発生しました!" #~ msgid "Nothing Commited" #~ msgstr "何もコミットされませんでした" #~ msgid "" #~ "Your username has not been configured.\n" #~ "\n" #~ "Please configure your username and try again" #~ msgstr "" #~ "ユーザ名が設定されていません。\n" #~ "\n" #~ "ユーザ名を設定をしてからもう一度試してください。" #~ msgid "Unable to apply patch" #~ msgstr "パッチを適用できませんでした" #~ msgid "Commit: Invalid username" #~ msgstr "コミット: 無効なユーザ名です" #~ msgid "Stop operation on current tab" #~ msgstr "現在のタブの操作を中止する" #~ msgid "New Search" #~ msgstr "新規検索" #~ msgid "Open new search tab" #~ msgstr "新しく検索タブを開く" #~ msgid "Start this search" #~ msgstr "検索を開始する" #~ msgid "" #~ "Comma separated list of exclusion patterns. Exclusion patterns are " #~ "applied after inclusion patterns." #~ msgstr "" #~ "除外パターンのカンマ区切りリスト。除外パターンは包含パターンの後に適用され" #~ "ます。" #~ msgid "" #~ "Comma separated list of inclusion patterns. By default, the entire " #~ "repository is searched." #~ msgstr "" #~ "包含パターンのカンマ区切りリスト。デフォルトではリポジトリ全体が検索されま" #~ "す。" #~ msgid "Matches" #~ msgstr "該当箇所" #~ msgid "File is unrevisioned" #~ msgstr "コミットされていないファイル" #~ msgid "Invalid path" #~ msgstr "無効なパスです" #~ msgid "You must provide a search expression" #~ msgstr "検索するために正規表現が必要です" #~ msgid "No regular expression given" #~ msgstr "無効な正規表現" #~ msgid "Save File" #~ msgstr "ファイルに保存" #~ msgid " Messages and Errors" #~ msgstr " メッセージとエラー" #~ msgid "Accept Match" #~ msgstr "推定結果を確定する" #~ msgid "Candidate Matches" #~ msgstr "推定結果" #~ msgid "Unrevisioned Files" #~ msgstr "コミットされていないファイル" #~ msgid "Find Copies" #~ msgstr "コピーを検索" #~ msgid "Minimum Simularity Percentage" #~ msgstr "相似度のしきい値" #~ msgid "Differences from Source to Dest" #~ msgstr "変更元と変更先の相違" #~ msgid "" #~ "== %s and %s have identical contents ==\n" #~ "\n" #~ msgstr "" #~ "== %s と %s は同じ中身を持っている ==\n" #~ "\n" #~ msgid "finding source of " #~ msgstr "元ファイルを検索中: " #~ msgid "" #~ "\n" #~ "[command interrupted]" #~ msgstr "" #~ "\n" #~ "[コマンド中断]" #~ msgid "Envelope" #~ msgstr "メール設定" #~ msgid "Email Mercurial Patches" #~ msgstr "Mercurialのパッチをメールで送信" #~ msgid "You must specify a sender address" #~ msgstr "差出人を入力してください" #~ msgid "Patch Series (Bundle) Description" #~ msgstr "パッチ内容" #~ msgid "Info required" #~ msgstr "情報不足です" #~ msgid "You must specify a recipient" #~ msgstr "受取人を入力してください" #~ msgid "Glob:" #~ msgstr "Glob:" #~ msgid "Remove Selected" #~ msgstr "選択項目を削除" #~ msgid "Unknown Files" #~ msgstr "不明なファイル" #~ msgid "Filters" #~ msgstr "フィルタ" #~ msgid "Make repo compatible with Mercurial 1.0" #~ msgstr "Mercurial 1.0 互換のリポジトリを作成" #~ msgid "Destination path is empty" #~ msgstr "リポジトリを作成する場所を指定してください" #~ msgid "Please enter the directory path" #~ msgstr "ディレクトリパスを入力してください" #~ msgid "unknown patch content: %r" #~ msgstr "不明なパッチ内容です: %r" #~ msgid "applying shelved patch\n" #~ msgstr "シェルフに保存されているパッチを適用しています\n" #~ msgid " [Ynsfdaq?] " #~ msgstr " [Ynsfdaq?] " #~ msgid "unhandled transition: %s -> %s" #~ msgstr "未処理のトランザクション: %s → %s" #~ msgid "" #~ "total: %d hunks (%d changed lines); selected: %d hunks (%d changed lines)" #~ msgstr "合計: %d ハンク (%d 行の変更); 選択: %d ハンク (%d 行の変更)" #~ msgid "restoring backup files\n" #~ msgstr "バックアップファイルを復元しています\n" #~ msgid "removing shelve file\n" #~ msgstr "シェルフのファイルを削除しています\n" #~ msgid "saving patch to shelve\n" #~ msgstr "パッチをシェルフに保存しています\n" #~ msgid "rename takes one or two path arguments" #~ msgstr "rename は1つまたは2つのパスを引数として受け取ります" #~ msgid "hgtk: unknown command '%s'\n" #~ msgstr "hgtk: 不明なコマンド '%s'\n" #~ msgid "hgtk: %s\n" #~ msgstr "hgtk: %s\n" #~ msgid "" #~ "hgtk: command '%s' is ambiguous:\n" #~ " %s\n" #~ msgstr "" #~ "hgtk: コマンド '%s' があいまいです:\n" #~ " %s\n" #~ msgid "hgtk %s: %s\n" #~ msgstr "hgtk %s: %s\n" #~ msgid "removing shelved patches\n" #~ msgstr "シェルフに保存されたパッチを削除しています\n" #~ msgid "use \"hgtk help\" for the full list of commands" #~ msgstr "完全なコマンド一覧は \"hgtk help\" で見ることができます" #~ msgid "(No help text available)" #~ msgstr "(ヘルプがありません)" #~ msgid "" #~ "use \"hgtk help\" for the full list of commands or \"hgtk -v\" for details" #~ msgstr "" #~ "完全なコマンド一覧は \"hgtk help\"、より詳細なものは\"hgtk -v\" で見ること" #~ "ができます" #~ msgid "Hgtk - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" #~ msgstr "Hgtk - TortoiseHg の Mercurial SCM (Hg) 用 GUI ツール\n" #~ msgid "hgtk about" #~ msgstr "hgtk about" #~ msgid "hgtk add [FILE]..." #~ msgstr "hgtk add [ファイル]..." #~ msgid "hgtk clone SOURCE [DEST]" #~ msgstr "hgtk clone クローン元 [クローン先]" #~ msgid "hgtk hgignore [FILE]" #~ msgstr "hgtk hgignore [ファイル]" #~ msgid "hgtk datamine" #~ msgstr "hgtk datamine" #~ msgid "hgtk commit [OPTIONS] [FILE]..." #~ msgstr "hgtk commit [オプション] [ファイル]..." #~ msgid "hgtk merge" #~ msgstr "hgtk merge" #~ msgid "hgtk log [OPTIONS] [FILE]" #~ msgstr "hgtk log [オプション] [ファイル]" #~ msgid "hgtk init [DEST]" #~ msgstr "hgtk init [リポジトリの場所]" #~ msgid "hgtk repoconfig" #~ msgstr "hgtk repoconfig" #~ msgid "hgtk guess" #~ msgstr "hgtk guess" #~ msgid "hgtk userconfig" #~ msgstr "hgtk userconfig" #~ msgid "hgtk revert [FILE]..." #~ msgstr "hgtk revert [ファイル]..." #~ msgid "hgtk remove [FILE]..." #~ msgstr "hgtk remove [ファイル]..." #~ msgid "hgtk rename SOURCE [DEST]" #~ msgstr "hgtk rename 変更元 [変更先]" #~ msgid "hgtk status [FILE]..." #~ msgstr "hgtk status [ファイル]..." #~ msgid "hgtk recovery" #~ msgstr "hgtk recovery" #~ msgid "hgtk shelve" #~ msgstr "hgtk shelve" #~ msgid "hgtk synch" #~ msgstr "hgtk synch" #~ msgid "hgtk serve [OPTION]..." #~ msgstr "hgtk serve [オプション]..." #~ msgid "[-o] CMD" #~ msgstr "[-o] コマンド" #~ msgid "hgtk version [OPTION]" #~ msgstr "hgtk version [オプション]" #~ msgid "show the command options" #~ msgstr "コマンドのオプションを表示する" #~ msgid "_Filter" #~ msgstr "フィルタ(_F)" #~ msgid "hgtk help [COMMAND]" #~ msgstr "hgtk help [コマンド]" #~ msgid "Reload revision history" #~ msgstr "リビジョン履歴を再読み込みする" #~ msgid "Apply" #~ msgstr "適用" #~ msgid "Invalid date specification" #~ msgstr "無効な日付指定です" #~ msgid "Stop the hg operation" #~ msgstr "Mercurialの操作を中止する" #~ msgid "Cannot merge" #~ msgstr "マージできません" #~ msgid "Validate repository consistency" #~ msgstr "リポジトリの整合性をチェックします" #~ msgid "command is running" #~ msgstr "コマンド実行中" #~ msgid "Cannot close now" #~ msgstr "今閉じることはできません" #~ msgid "rename error" #~ msgstr "名前変更でエラーが発生しました" #~ msgid "[command interrupted]" #~ msgstr "[コマンド中断]" #~ msgid "Configure" #~ msgstr "設定" #~ msgid "" #~ "Server process is still running\n" #~ "Exiting will stop the server." #~ msgstr "" #~ "サーバプロセスがまだ動いています\n" #~ "サーバを停止しています" #~ msgid "Invalid port 2048..65535" #~ msgstr "無効なポート番号 2048~65535" #~ msgid "_delete" #~ msgstr "削除(_D)" #~ msgid "Save As" #~ msgstr "名前を付けて保存" #~ msgid "Save selected changes" #~ msgstr "選択された変更を保存する" #~ msgid "Nothing Removed" #~ msgstr "削除するものがありません" #~ msgid "path" #~ msgstr "パス" #~ msgid "Remove is not enabled when multiple revisions are specified." #~ msgstr "\"削除\"は複数のリビジョンが指定された場合は無効になります" #~ msgid "Nothing Moved" #~ msgstr "移動するものがありません" #~ msgid "Nothing Copied" #~ msgstr "コピーするものがありません" #~ msgid "Copy is not enabled when multiple revisions are specified." #~ msgstr "\"コピー\"は複数のリビジョンが指定された場合は無効になります" #~ msgid "Move is not enabled when multiple revisions are specified." #~ msgstr "\"移動\"は複数のリビジョンが指定された場合は無効になります" #~ msgid "Incoming" #~ msgstr "受信" #~ msgid "Cannot move outside repo!" #~ msgstr "リポジトリの外には移動できません!" #~ msgid "Nothing Added" #~ msgstr "追加するものがありません" #~ msgid "No addable files selected" #~ msgstr "追加するファイルが選択されていません" #~ msgid "No removable files selected" #~ msgstr "削除するファイルが選択されていません" #~ msgid "" #~ "No movable files selected\n" #~ "\n" #~ "Note: only clean files can be moved." #~ msgstr "" #~ "移動可能なファイルが選択されていません\n" #~ "\n" #~ "ヒント: クリーンなファイルしか移動できません" #~ msgid "Delete Errors" #~ msgstr "エラーを削除" #~ msgid "Email local outgoing changes to one or more recipients" #~ msgstr "ローカルの変更をメールで送信する" #~ msgid "Push" #~ msgstr "プッシュ" #~ msgid "Push local changes to selected repository" #~ msgstr "選択されたリポジトリにローカルの変更をプッシュする" #~ msgid "Outgoing" #~ msgstr "送信" #~ msgid "Pull changes from selected repository" #~ msgstr "選択したリポジトリから変更を取り出す" #~ msgid " Pull " #~ msgstr " プル " #~ msgid "Fetch" #~ msgstr "取得" #~ msgid "Nothing" #~ msgstr "なし" #~ msgid "Force pull or push" #~ msgstr "強制的にプル/プッシュする" #~ msgid "Advanced Options" #~ msgstr "詳細設定" #~ msgid "Incoming/Outgoing" #~ msgstr "受信/送信" #~ msgid "No repository selected" #~ msgstr "リポジトリが選択されていません" #~ msgid "Bundle (*.hg)" #~ msgstr "バンドル (*.hg)" #~ msgid "Bundle (*)" #~ msgstr "バンドル (*)" #~ msgid "Select Bundle" #~ msgstr "バンドルを選択" #~ msgid "Replace existing tag" #~ msgstr "既存のタグを置換" #~ msgid "Tag input is empty" #~ msgstr "タグが未入力です" #~ msgid "Please enter tag name" #~ msgstr "タグ名を入力してください" #~ msgid "Custom commit message is empty" #~ msgstr "カスタムコミットメッセージが未入力です" #~ msgid "Tag name is empty" #~ msgstr "タグ名がありません" #~ msgid "Please select tag name to remove" #~ msgstr "削除するタグ名を選択してください" #~ msgid "Tag \"%s\" has been added" #~ msgstr "タグ \"%s\" が追加されました" #~ msgid "Tag '%s' already exist" #~ msgstr "タグ \"%s\" は既に存在しています" #~ msgid "Tag \"%s\" has been removed" #~ msgstr "タグ \"%s\" が削除されました" #~ msgid "Re_vert" #~ msgstr "元に戻す(_V)" #~ msgid "Rollback (undo) last transaction to repository (pull, commit, etc)" #~ msgstr "最後のトランザクションをロールバックする (プル・コミットなど)" #~ msgid "Recover from interrupted operation" #~ msgstr "中断された操作を正常な状態に戻す" #~ msgid "Configure web settings" #~ msgstr "ウェブ設定を編集する" #~ msgid "Defaulting to " #~ msgstr "デフォルトに戻す: " #~ msgid "st" #~ msgstr "状態" #~ msgid "Display changes that can be pulled from selected repository" #~ msgstr "指定されたリポジトリからプル可能な変更を表示する" #~ msgid "Name of hg executable on remote machine." #~ msgstr "リモートPCで実行可能なMercurialの名前" #~ msgid "Select a peer repository to compare with" #~ msgstr "比較対象の2つのリポジトリを選択" #~ msgid "unknown sort key '%s'" #~ msgstr "不明なソート基準:'%s'" #~ msgid "Name associated with commits" #~ msgstr "コミット時に使用する名前" #~ msgid "" #~ "Color changesets by author name. If not enabled, the changes are colored " #~ "green for merge, red for non-trivial parents, black for normal. Default: " #~ "False" #~ msgstr "" #~ "チェンジセットをコミッタごとに色分けします。このオプションが無効の場合、" #~ "マージされたチェンジセットは緑に、子を2つ以上持つチェンジセットは赤、通常" #~ "のチェンジセットは黒です。デフォルトでは無効です。" #~ msgid "" #~ "Repository name to use in the web interface. Default is the working " #~ "directory." #~ msgstr "" #~ "ウェブインタフェースで使用するリポジトリ名。デフォルトでは作業ディレクトリ" #~ "の名前。" #~ msgid "Maximum number of changes to list on the changelog." #~ msgstr "チェンジログに表示する変更の最大数。" #~ msgid "Maximum number of files to list per changeset." #~ msgstr "チェンジセットで表示するファイルの最大数。" #~ msgid "Character encoding name" #~ msgstr "文字エンコーディング名" #~ msgid "Connect to mail server using TLS. Default: False" #~ msgstr "TLSを使ってメールサーバに接続する。デフォルトでは無効。" #~ msgid "Ignore changes whose lines are all blank. Default: False" #~ msgstr "全ての空行の変更を無視する。デフォルトで無効。" #~ msgid "Ignore white space when comparing lines. Default: False" #~ msgstr "行の比較で空白文字を無視する。デフォルトで無効。" #~ msgid "Ignore changes in the amount of white space. Default: False" #~ msgstr "空白文字の個数の変化を無視する。デフォルトで無効。" #~ msgid "Edit remote repository path" #~ msgstr "リモートリポジトリパスの編集" #~ msgid "_Edit" #~ msgstr "編集(_E)" #~ msgid "Remote repository paths" #~ msgstr "リモートリポジトリパス" #~ msgid "Repository Path" #~ msgstr "リポジトリパス" #~ msgid "_Test" #~ msgstr "テスト(_T)" #~ msgid "No Repository Found" #~ msgstr "リポジトリが見つかりません" #~ msgid "History" #~ msgstr "履歴" #~ msgid "Please select diff chunks to shelve" #~ msgstr "シェルフに保管したいチャンクを選択してください" #~ msgid "Shelve file exists!" #~ msgstr "シェルフには既にファイルが存在します!" #~ msgid "set aside selected changes" #~ msgstr "選択された変更を一時的に別のところに置いておく" #~ msgid "Unshelve" #~ msgstr "シェルフから戻す" #~ msgid "Shelve" #~ msgstr "シェルフ" #~ msgid "Path testing cannot work without a repository" #~ msgstr "パステストはリポジトリなしでは動かすことができません" #~ msgid "Suggested" #~ msgstr "推奨" #~ msgid "No repository found here" #~ msgstr "ここにはリポジトリがありません" #~ msgid "changeset " #~ msgstr "チェンジセット " #~ msgid "A specific revision up to which you would like to push or pull." #~ msgstr "指定されたリビジョンをプッシュするかプルするかはあなた次第です。" #~ msgid "Run even when remote repository is unrelated." #~ msgstr "リモートリポジトリが無関係であっても実行する。" #~ msgid "Tag is local" #~ msgstr "ローカルタグ" #~ msgid "Paste _Filenames" #~ msgstr "ファイル名を貼り付け(_F)" #~ msgid "close branch: " #~ msgstr "閉じるブランチ: " #~ msgid "No committable files selected" #~ msgstr "コミット可能なファイルが選択されていません" #~ msgid "revisions to compare" #~ msgstr "比較するリビジョン" #~ msgid "The summary line length of %i is greater than %i" #~ msgstr "要約行の長さ %i は %i より大きいです" #~ msgid "The summary line is not followed by a blank line" #~ msgstr "要約行の最後に空行はありません" #~ msgid "Revert %s to contents at revision %d?" #~ msgstr "%s をリビジョン %d に戻しますか?" #~ msgid "" #~ "The following lines are over the %i-character limit: %s.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "以下の行は文字数制限(%i文字)を超えています: %s\n" #~ "\n" #~ "フォーマットポリシーを無視してコミットを続行しますか?" #~ msgid "" #~ "The summary line is not followed by a blank line.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "要約行は空行が続きません。\n" #~ "\n" #~ "フォーマットポリシーを無視してコミットを続行しますか?" #~ msgid "" #~ "The summary line length of %i is greater than %i.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "要約行数の %i は %i より大きいです。\n" #~ "\n" #~ "フォーマットポリシーを無視してコミットを続行しますか?" #~ msgid "App_ly Format" #~ msgstr "フォーマットポリシーの適用(_L)" #~ msgid "Message format needs to be configured" #~ msgstr "フォーマットポリシーが設定されている必要があります" #~ msgid "Message format configuration error" #~ msgstr "フォーマットポリシー設定エラー" #~ msgid "Toggle _Wordwrap" #~ msgstr "行折り返し切り替え" #~ msgid "Changeset Description" #~ msgstr "チェンジセット情報" #~ msgid "Current revision (local)" #~ msgstr "現在のリビジョン (ローカル)" #~ msgid "Undo" #~ msgstr "取り消し" #~ msgid "Merge target (other)" #~ msgstr "マージ対象 (他のリビジョン)" #~ msgid "filtered status" #~ msgstr "フィルタ状態" #~ msgid "_Undo" #~ msgstr "取り消し(_U)" #~ msgid "Add special files (.hgignore, ...)" #~ msgstr "特殊ファイルを追加する (.hgignoreなど)" #~ msgid "%d hunks, %d lines changed\n" #~ msgstr "%d ハンク, %d 行の変更\n" #~ msgid "Re_fresh" #~ msgstr "再読み込み(_F)" #~ msgid "Custom Filter" #~ msgstr "ユーザ定義フィルタ" #~ msgid "Clean checkout, undo all changes" #~ msgstr "チェックアウトをクリーンして、全ての変更を取り消す" #~ msgid "refresh" #~ msgstr "再読み込み" #~ msgid "ms" #~ msgstr "マージ" #~ msgid "%d selected, %d total" #~ msgstr "%d ファイルを選択, 合計 %d ファイル" #~ msgid "Display local changes that will be pushed to selected repository" #~ msgstr "指定されたリポジトリにプッシュ可能なローカルの変更を表示する" #~ msgid "Configure peer repository paths" #~ msgstr "同期のリポジトリパスを設定する" #~ msgid "" #~ "Show the diff panel below the file list in status, shelve, and commit " #~ "dialogs. Default: False (show diffs to right of file list)" #~ msgstr "" #~ "ステータス・シェルフ・コミットダイアログのファイル一覧の下に差分ウィンドウ" #~ "を表示する。デフォルトでは無効(差分はファイル一覧の右側に表示されます)。" #~ msgid "Diff" #~ msgstr "差分" #~ msgid "Branch Operations" #~ msgstr "ブランチの操作" #~ msgid "Close current named branch" #~ msgstr "現在のブランチを閉じる" #~ msgid "new branch: " #~ msgstr "新規ブランチ: " #~ msgid "Confirm Add/Remove" #~ msgstr "追加/削除" #~ msgid "Confirm Commit" #~ msgstr "コミット" #~ msgid "Must supply a target revision" #~ msgstr "対象となるリビジョンの指定が必要です" #~ msgid "Confirm undo merge" #~ msgstr "マージの取り消し" #~ msgid "Clean checkout of original revision?" #~ msgstr "元のリビジョンを完全な形でチェックアウトしますか?" #~ msgid "Confirm clean repository" #~ msgstr "リポジトリのクリーン" #~ msgid "Confirm rollback repository" #~ msgstr "リポジトリのロールバック" #~ msgid "Confirm Really Exit?" #~ msgstr "終了" #~ msgid "Confirm Delete Unrevisioned" #~ msgstr "未管理ファイルの削除" #~ msgid "Confirm revert file to old revision" #~ msgstr "ファイルを過去のリビジョンに戻す" #~ msgid "Skipped saving path with no alias" #~ msgstr "エイリアスのないパスは保存されません" #~ msgid "Visual Diffs" #~ msgstr "GUI 差分表示" #~ msgid "TortoiseHg Clone" #~ msgstr "TortoiseHg クローンツール" #~ msgid "Clone" #~ msgstr "クローン" #~ msgid "Please enter a valid source path" #~ msgstr "有効なクローン元のパスを入力してください" #~ msgid "Source path is empty" #~ msgstr "クローン元のパスが入力されていません" #~ msgid "Bottom Diffs" #~ msgstr "差分を画面下部に表示" #~ msgid "Enable overlays" #~ msgstr "使用する" #~ msgid "cannot start server: " #~ msgstr "サーバを起動できませんでした: " #~ msgid "Start server" #~ msgstr "ウェブサーバを起動する" #~ msgid "HTTP Port:" #~ msgstr "ポート番号:" #~ msgid "Stop server" #~ msgstr "サーバを停止する" #~ msgid "Write bundle to" #~ msgstr "バンドルの保存" #~ msgid "Save patch to" #~ msgstr "パッチの保存" #~ msgid "Show all matching revisions" #~ msgstr "該当リビジョンを全て表示" #~ msgid "Show line numbers" #~ msgstr "行番号の表示" #~ msgid "Backout commit message" #~ msgstr "バックアウトのコミットメッセージ" #~ msgid "Add/Remove the following files?" #~ msgstr "次のファイルを追加/削除しますか?" #~ msgid "[All Files]" #~ msgstr "[全てのファイル]" #~ msgid "udpate all repos in current dir" #~ msgstr "このディレクトリにある全てのリポジトリを更新する" #~ msgid "hgtk thgstatus [OPTION]" #~ msgstr "hgtk thgstatus [オプション]" #~ msgid "Delete the following unrevisioned files?" #~ msgstr "次の管理されていないファイルを削除しますか?" #~ msgid "Overwrite existing '%s' path?" #~ msgstr "すでに存在するパス '%s' を上書きしますか?" #~ msgid "Folder" #~ msgstr "フォルダ" #~ msgid "Set as _default" #~ msgstr "デフォルトにする(_D)" #~ msgid "Hunk selection is disabled for this file.\n" #~ msgstr "このファイルではハンクの選択が無効化されています。\n" #~ msgid "Revert files to revision %s?" #~ msgstr "リビジョン %s にファイルを戻しますか?" #~ msgid " %s is larger than the specified max diff size" #~ msgstr " %s は設定されている最大差分サイズを超えています" #~ msgid "File is larger than the specified max size.\n" #~ msgstr "設定されている最大ファイルサイズを超えています。\n" #~ msgid "Revert not allowed when viewing revision range." #~ msgstr "リビジョン範囲を表示しているときは元に戻せません" #~ msgid "Nothing Reverted" #~ msgstr "元に戻すものがありません" #~ msgid "No revertable files selected" #~ msgstr "元に戻せるファイルが選択されていません" #~ msgid "nothing to unshelve\n" #~ msgstr "シェルフには何もありません\n" #~ msgid "unshelve completed\n" #~ msgstr "シェルフから戻しました\n" #~ msgid "restore shelved changes" #~ msgstr "シェルフから変更を戻す" #~ msgid "Local Date" #~ msgstr "ローカル時間" #~ msgid "Universal Date" #~ msgstr "UTC時間" #~ msgid "Abort: %s\n" #~ msgstr "中断: %s\n" #~ msgid "ID" #~ msgstr "ID" #~ msgid "Summary" #~ msgstr "要約" #~ msgid "" #~ "Unable to undo!\n" #~ "\n" #~ "Tip revision differs from last commit." #~ msgstr "" #~ "取り消しできません!\n" #~ "\n" #~ "tipリビジョンが直前のコミットとは異なります。" #~ msgid "Verify" #~ msgstr "検証" #~ msgid "Recover" #~ msgstr "復元" #~ msgid "Rollback" #~ msgstr "ロールバック" #~ msgid "Select Folder" #~ msgstr "フォルダの選択" #~ msgid "All files" #~ msgstr "全てのファイル" #~ msgid "A: added" #~ msgstr "A:追加" #~ msgid "R: removed" #~ msgstr "R:削除" #~ msgid "Rollback repository '%s' ?" #~ msgstr "'%s' リポジトリをロールバックしますか?" #~ msgid "M: modified" #~ msgstr "M:変更" #~ msgid "C: clean" #~ msgstr "C:クリーン" #~ msgid "I: ignored" #~ msgstr "I:無視" #~ msgid "!: deleted" #~ msgstr "!:削除" #~ msgid "?: unknown" #~ msgstr "?:不明" #~ msgid "Clean repository '%s' ?" #~ msgstr "'%s' リポジトリをクリーンな状態にしますか?" #~ msgid "Highlight the taskbar icon during activity" #~ msgstr "処理中にトレイアイコンの色を変化させる" #~ msgid "No changes to shelve" #~ msgstr "シェルフ可能な変更がありません" #~ msgid "TortoiseHg Configure Repository - " #~ msgstr "TortoiseHg リポジトリ設定 - " #~ msgid "" #~ "Graphical merge program for resolving merge conflicts. If left " #~ "unspecified, Mercurial will use the first applicable tool it finds on " #~ "your system or use its internal merge tool that leaves conflict markers " #~ "in place. Chose internal:merge to force conflict markers, internal:" #~ "prompt to always select local or other, or internal:dump to leave files " #~ "in the working directory for manual merging" #~ msgstr "" #~ "マージ時の衝突を解決する GUI のマージプログラム。指定されない場合は " #~ "Mercurial はシステムで最初に見つかった内部マージツールを使用します。強制的" #~ "に衝突マーカを表示するには internal:merge、常に local または other を選択" #~ "するには internal:prompt、手作業でマージするため作業ディレクトリにファイル" #~ "を残すには internal:dump を使用してください。" #~ msgid "Move files to directory..." #~ msgstr "ファイルの移動..." #~ msgid "Search \"%s\"" #~ msgstr "検索 \"%s\"" #~ msgid "Search %d" #~ msgstr "検索 %d" #~ msgid "(version %s)" #~ msgstr "(バージョン %s)" #~ msgid "Error: %s" #~ msgstr "エラー: %s" #~ msgid "Abort: %s" #~ msgstr "中止: %s" #~ msgid "Invalid regular expression" #~ msgstr "無効な正規表現です" #~ msgid "Rename error" #~ msgstr "名前変更エラー" #~ msgid "Try &Again" #~ msgstr "リトライ(&A)" #~ msgid "Unable to delete temp files" #~ msgstr "一時ファイルの削除に失敗しました" #~ msgid "&Quit" #~ msgstr "終了(&Q)" #~ msgid "with %s" #~ msgstr "%s" #~ msgid "Close diff tools and try again, or quit to leak files?" #~ msgstr "差分表示ツールを閉じてリトライしますか? それとも終了しますか?" #~ msgid "Fork hgtk" #~ msgstr "ダイアログプロセスの生成" #~ msgid "Browse" #~ msgstr "ブラウザで開く" #~ msgid "Launch browser to view repository" #~ msgstr "ブラウザを起動してリポジトリを表示する" #~ msgid "Archive" #~ msgstr "アーカイブ" #~ msgid "Advanced options" #~ msgstr "詳細設定" #~ msgid "Compressed zip archives" #~ msgstr "zip 圧縮アーカイブ" #~ msgid "Source path:" #~ msgstr "クローン元:" #~ msgid "Use uncompressed transfer" #~ msgstr "無圧縮でデータを転送する" #~ msgid "Recent commit messages..." #~ msgstr "最近のコミットメッセージ..." #~ msgid "Merge " #~ msgstr "マージ " #~ msgid "Confirm Undo Commit" #~ msgstr "コミット取り消しの確認" #~ msgid "Undo Commit" #~ msgstr "コミットを取り消す" #~ msgid "Info Required" #~ msgstr "設定が必要" #~ msgid "Select" #~ msgstr "選択" #~ msgid "Select Revision" #~ msgstr "リビジョンの選択" #~ msgid "Invalid Revision" #~ msgstr "無効なリビジョン" #~ msgid "revision number, changeset ID, branch or tag" #~ msgstr "リビジョン番号、チェンジセット ID、ブランチ名、タグ名" #~ msgid "Lang \"%s\" can not be set.\n" #~ msgstr "言語 \"%s\" は設定できません。\n" #~ msgid "%s branch" #~ msgstr "%s ブランチ" #~ msgid "Color by Branch" #~ msgstr "ブランチで色分け" #~ msgid "hgtk forget [FILE]..." #~ msgstr "hgtk forget [ファイル]..." #~ msgid "Spell Check Language" #~ msgstr "スペルチェック言語" #~ msgid "tagged revisions" #~ msgstr "タグ付きリビジョン" #~ msgid "merges" #~ msgstr "マージ" #~ msgid "revision ancestry" #~ msgstr "祖先のリビジョン" #~ msgid "working parents" #~ msgstr "作業ディレクトリの親リビジョン" #~ msgid "heads" #~ msgstr "ヘッド" #~ msgid "load more revisions" #~ msgstr "さらにリビジョンを読み込んで表示します" #~ msgid "Load all" #~ msgstr "全て表示" #~ msgid "Load more" #~ msgstr "さらに表示" #~ msgid "load all revisions" #~ msgstr "全てのリビジョンを読み込んで表示します" #~ msgid "Visual diff checked files" #~ msgstr "チェックされているファイルの差分表示" #~ msgid "Revert checked files" #~ msgstr "チェックされているファイルを元に戻す" #~ msgid "File Patterns" #~ msgstr "ファイル名パターン" #~ msgid "Keywords" #~ msgstr "キーワード" #~ msgid "Confirm Rebase Revision" #~ msgstr "リベースの確認" #~ msgid "Rebase revision %d on top of %d?" #~ msgstr "リビジョン %d を リビジョン %d の上にリベースしますか?" #~ msgid "Hunk Selection" #~ msgstr "ハンク選択" #~ msgid "Text Diff" #~ msgstr "テキスト差分" #~ msgid "Remove or delete checked files" #~ msgstr "チェックされているファイルを削除" #~ msgid "Move checked files to other directory" #~ msgstr "チェックされているファイルを別ディレクトリに移動" #~ msgid "Add checked files" #~ msgstr "チェックされているファイルを追加" #~ msgid "Nothing Diffed" #~ msgstr "差分がありません" #~ msgid "No diffable files selected" #~ msgstr "差分表示可能なファイルが選択されていません" #~ msgid "Nothing Forgotten" #~ msgstr "破棄するファイルがありません" #~ msgid "No clean files selected" #~ msgstr "クリーンなファイルが選択されていません" #~ msgid "Shelve uncommited changes" #~ msgstr "未コミットの変更をシェルフする" #~ msgid "not up to date" #~ msgstr "最新ではありません" #~ msgid "" #~ "The parents have changed since the last refresh.\n" #~ "Continue anyway?" #~ msgstr "" #~ "親リビジョンが変更されています。\n" #~ "それでも続行しますか?" #~ msgid "Show patches" #~ msgstr "パッチの表示" #~ msgid "Show newest first" #~ msgstr "新しいリビジョンから表示" #~ msgid "Target revision:" #~ msgstr "対象リビジョン:" #~ msgid "ssh" #~ msgstr "SSH" #~ msgid "https" #~ msgstr "HTTPS" #~ msgid "http" #~ msgstr "HTTP" #~ msgid "Show no merges" #~ msgstr "非マージリビジョンのみ表示" #~ msgid "URL Details" #~ msgstr "URL 詳細" #~ msgid "Select Local Folder" #~ msgstr "ローカルディレクトリの選択" #~ msgid "revision to merge with" #~ msgstr "このリビジョンとマージ" #~ msgid "Unable to create new repository" #~ msgstr "新しいリポジトリの作成に失敗しました" #~ msgid "Error when creating repository" #~ msgstr "リポジトリ作成中にエラーが発生しました" #~ msgid "There is no Mercurial repository here (.hg not found)" #~ msgstr "Mercurial リポジトリがありません (.hg ファイルが見つかりません)" #~ msgid "append to existing shelve data" #~ msgstr "既存のシェルフ済みデータに追加する" #~ msgid "overwrite existing shelve data" #~ msgstr "既存のシェルフ済みデータを上書きする" #~ msgid "" #~ "Revert all files to revision %d?\n" #~ "This will overwrite your local changes" #~ msgstr "" #~ "全てのファイルをリビジョン %d に戻しますか?\n" #~ "この操作は作業ディレクトリの内容を上書きします。" #~ msgid "Tagging completed" #~ msgstr "タグ処理が完了しました" #~ msgid "Error in tagging" #~ msgstr "タグ処理中にエラーが発生しました" #~ msgid "unknown hunk type: %s" #~ msgstr "不明なハンクの種類: %s" #~ msgid "%s changeset " #~ msgstr "%s チェンジセット " #~ msgid "Save as.." #~ msgstr "名前を付けて保存..." #~ msgid "Auto-includes:" #~ msgstr "自動的に含む:" #~ msgid "Committer:" #~ msgstr "コミッタ:" #~ msgid "Advanced" #~ msgstr "詳細設定" #~ msgid "View" #~ msgstr "表示" #~ msgid "[no hunks to display]" #~ msgstr "[表示可能なハンクがありません]" #~ msgid "Repository Error: %s, refresh suggested" #~ msgstr "リポジトリエラー: %s, 再読み込みしてください" #~ msgid "Push after commit" #~ msgstr "コミット後にプッシュ" #~ msgid "Datamine" #~ msgstr "リポジトリ検索" #~ msgid "refresh top MQ patch" #~ msgstr "現在の MQ パッチを更新します (qrefresh)" #~ msgid "Patch Contents" #~ msgstr "パッチ内容" #~ msgid "create new MQ patch" #~ msgstr "新しく MQ パッチを作成します (qnew)" #~ msgid "Command Log" #~ msgstr "コマンド出力" #~ msgid "Send" #~ msgstr "送信" #~ msgid "unknown CmdWidget style: %s" #~ msgstr "不明な CmdWidget スタイル: %s" #~ msgid "invalid state" #~ msgstr "無効な状態" #~ msgid "[command returned code %d " #~ msgstr "[コマンド戻り値 %d " #~ msgid "Test" #~ msgstr "テスト送信" #~ msgid "Flags:" #~ msgstr "フラグ:" #~ msgid "[command completed successfully " #~ msgstr "[コマンド正常終了 " #~ msgid "Contents" #~ msgstr "ヘルプ目次" #~ msgid "Compact Graph" #~ msgstr "コンパクトグラフ" #~ msgid "Columns" #~ msgstr "列" #~ msgid "Log Details" #~ msgstr "列表示設定" #~ msgid "Choose Details..." #~ msgstr "列表示の設定..." #~ msgid "Branch Name" #~ msgstr "ブランチ名" #~ msgid "UTC Date" #~ msgstr "UTC 時間" #~ msgid "Age" #~ msgstr "経過時間" #~ msgid "Tags" #~ msgstr "タグ" #~ msgid "Working Parent" #~ msgstr "親リビジョン" #~ msgid "Revision..." #~ msgstr "リビジョン指定..." #~ msgid "Revision Number" #~ msgstr "リビジョン番号" #~ msgid "Changeset ID" #~ msgstr "チェンジセット ID" #~ msgid "View '%s'" #~ msgstr "表示 '%s'" #~ msgid "Save patches to" #~ msgstr "パッチの保存" #~ msgid "Rename " #~ msgstr "名前変更 " #~ msgid "&Yes (backup changes)" #~ msgstr "はい (変更をバックアップ)" #~ msgid "Yes (&discard changes)" #~ msgstr "はい (変更を破棄)" #~ msgid "#" #~ msgstr "#" #~ msgid "Alias name is empty" #~ msgstr "エイリアス名が空欄です" #~ msgid "Please enter alias name" #~ msgstr "パスのエイリアス名を入力してください" #~ msgid "Exit after saving changes?" #~ msgstr "保存して閉じますか?" #~ msgid "Unapply last patch" #~ msgstr "最後のパッチを適用解除" #~ msgid "Apply next patch" #~ msgstr "次のパッチを適用" #~ msgid "_rename" #~ msgstr "名前変更" #~ msgid "Show name" #~ msgstr "パッチ名の表示" #~ msgid "Show status" #~ msgstr "ステータスの表示" #~ msgid "Show 'qparent'" #~ msgstr "'qparent' を表示する" #~ msgid "Enable editable cells" #~ msgstr "セルを編集可能にする" #~ msgid "Shelf Contents" #~ msgstr "変更をシェルフする" #~ msgid "Unshelve Error" #~ msgstr "シェルフ復帰エラー" #~ msgid "Unsupported line endings type: %s" #~ msgstr "未対応の改行記号の種類: %s" #~ msgid "unknown mode name: %s" #~ msgstr "不明なモード名: %s" #~ msgid "Confirm Revert All Files" #~ msgstr "全ファイルの復帰" #~ msgid "Tip" #~ msgstr "tip リビジョン" #~ msgid "Update to branch tip" #~ msgstr "tip リビジョンに更新" #~ msgid "You must configure SMTP" #~ msgstr "SMTP 設定をしてください" #~ msgid "" #~ "The destination \"%s\" already exists!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "保存先の \"%s\" は既に存在しています。\n" #~ "\n" #~ "上書きしてもよろしいですか?" #~ msgid "" #~ "The directory \"%s\" isn't empty!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "ディレクトリ \"%s\" は 空ではありません。\n" #~ "\n" #~ "上書きしてもよろしいですか?" #~ msgid "All Files (*.*)" #~ msgstr "全てのファイル (*.*)" #~ msgid "unexpected response id: %s" #~ msgstr "予期しない応答 ID: %s" #~ msgid "Do you want to abort?" #~ msgstr "中止してもよろしいですか?" #~ msgid "Confirm Abort" #~ msgstr "中止の確認" #~ msgid "Source and destination are the same" #~ msgstr "クローン元とクローン先が同一です" #~ msgid "Please specify different paths" #~ msgstr "異なるパスを指定してください" #~ msgid "_View" #~ msgstr "表示(_V)" #~ msgid "Patch Preview" #~ msgstr "パッチプレビュー" #~ msgid "Commit Preview" #~ msgstr "コミットプレビュー" #~ msgid "_Operations" #~ msgstr "操作(_O)" #~ msgid "_Tools" #~ msgstr "ツール(_T)" #~ msgid "Loading history..." #~ msgstr "履歴読み込み中..." #~ msgid "Send emails" #~ msgstr "メールの送信" #~ msgid "Show emails which would be sent" #~ msgstr "送信されるメールを表示する" #~ msgid "Toggle log window" #~ msgstr "ログウィンドウの表示" #~ msgid "_Help" #~ msgstr "ヘルプ(_H)" #~ msgid "Serve" #~ msgstr "ウェブサーバ" #~ msgid "Recovery" #~ msgstr "リカバリ" #~ msgid "Stop current transaction" #~ msgstr "操作の中止" #~ msgid "Move Up" #~ msgstr "上に移動" #~ msgid "Reset Marks" #~ msgstr "マークをリセット" #~ msgid "Move Down" #~ msgstr "下に移動" #~ msgid "" #~ "This feature is only available when sending outgoing changesets. It is " #~ "not applicable with revision ranges." #~ msgstr "" #~ "この機能はチェンジセットを送信するときにのみ有効になります。リビジョン範囲" #~ "には適用できません。" #~ msgid " (Bundle Preview)" #~ msgstr " (バンドルプレビュー)" #~ msgid "Sync Bar" #~ msgstr "同期バー" #~ msgid "Apply to:" #~ msgstr "適用先:" #~ msgid "Pull incoming changesets" #~ msgstr "チェンジセットをプルする" #~ msgid "Ignore Max Diff Size" #~ msgstr "最大差分サイズ制限を無視" #~ msgid "_Navigate" #~ msgstr "リビジョン(_N)" #~ msgid "_Synchronize" #~ msgstr "同期(_S)" #~ msgid "Email..." #~ msgstr "メール送信..." #~ msgid "Determine and mark outgoing changesets" #~ msgstr "送信するチェンジセットをマークする" #~ msgid "Email outgoing changesets" #~ msgstr "チェンジセットをメールで送信する" #~ msgid "Push outgoing changesets" #~ msgstr "チェンジセットを送信する" #~ msgid "Configure aliases and after pull behavior" #~ msgstr "パスの編集とプル後の動作を設定する" #~ msgid "After Pull:" #~ msgstr "プル後の操作:" #~ msgid "Accept incoming previewed changesets" #~ msgstr "受信したチェンジセットを取り込む" #~ msgid "Reject incoming previewed changesets" #~ msgstr "受信したチェンジセットを破棄する" #~ msgid "Reject" #~ msgstr "破棄する" #~ msgid "Repository is empty" #~ msgstr "リポジトリが空です" #~ msgid "Toggle all selections" #~ msgstr "全選択/解除" #~ msgid "Merging in %s" #~ msgstr "マージ - %s" #~ msgid "Forget checked files on next commit" #~ msgstr "次のコミットでチェックされたファイルを破棄します" #~ msgid "Save Preview" #~ msgstr "保存プレビュー" #~ msgid "" #~ "Detected uncommitted local changes in working tree.\n" #~ "Please select to continue:\n" #~ "\n" #~ msgstr "" #~ "未コミットの変更が作業ディレクトリで検出されました。\n" #~ "以下から操作を選択してください:\n" #~ "\n" #~ msgid "Shelve - launch Shelve tool and continue" #~ msgstr "シェルフ - シェルフツールで変更点を保管する" #~ msgid "invalid dialog result: %s" #~ msgstr "無効なダイアログ戻り値: %s" #~ msgid "Unable to annotate " #~ msgstr "履歴表示できません " #~ msgid "_View at Revision" #~ msgstr "エディタで表示(_V)" #~ msgid "_Visual Diff" #~ msgstr "GUI 差分表示(_V)" #~ msgid "Canceled backout" #~ msgstr "バックアウトが中止されました" #~ msgid "Failed to archive" #~ msgstr "保存に失敗しました" #~ msgid "Failed to backout" #~ msgstr "バックアウトに失敗しました" #~ msgid "Canceled archiving" #~ msgstr "保存が中止されました" #~ msgid "Archived successfully" #~ msgstr "正常に保存されました" #~ msgid "Diff to _local" #~ msgstr "ローカルとの差分(_L)" #~ msgid "Failed to clone" #~ msgstr "クローンに失敗しました" #~ msgid "_Revert File Contents" #~ msgstr "内容を元に戻す(_R)" #~ msgid "Cloned successfully" #~ msgstr "正常にクローンされました" #~ msgid "_File History" #~ msgstr "履歴の表示(_F)" #~ msgid "_Annotate File" #~ msgstr "行ごとの履歴を表示(_A)" #~ msgid "&Reject" #~ msgstr "破棄する(&R)" #~ msgid "Close this" #~ msgstr "閉じる" #~ msgid "Stop transaction" #~ msgstr "処理を中止する" #~ msgid "%s - datamine" #~ msgstr "%s - リポジトリ検索" #~ msgid "&Accept" #~ msgstr "取り込む(&A)" #~ msgid "_Merge with..." #~ msgstr "マージ...(_M)" #~ msgid "_Export Patch..." #~ msgstr "パッチの作成...(_E)" #~ msgid "E_mail Patch..." #~ msgstr "メールで送信...(_M)" #~ msgid "_Bundle rev:tip..." #~ msgstr "バンドルの作成...(_B)" #~ msgid "Add/Remove _Tag..." #~ msgstr "タグの追加/削除...(_T)" #~ msgid "_Revert" #~ msgstr "元に戻す(_R)" #~ msgid "_Update..." #~ msgstr "更新...(_U)" #~ msgid "Custom" #~ msgstr "カスタム" #~ msgid "Merges" #~ msgstr "マージ" #~ msgid "Hide Merges" #~ msgstr "マージを非表示" #~ msgid "Ancestry" #~ msgstr "祖先" #~ msgid "Tagged" #~ msgstr "タグ" #~ msgid "Export Patches from here to selected..." #~ msgstr "この範囲をパッチとして保存..." #~ msgid "Toolbar" #~ msgstr "ツールバー" #~ msgid "Load all Revisions" #~ msgstr "全リビジョンを読み込む" #~ msgid "Load more Revisions" #~ msgstr "さらにリビジョンを読み込む" #~ msgid "only Merges" #~ msgstr "マージリビジョンのみ" #~ msgid "Ancestry of %s" #~ msgstr "%s の祖先" #~ msgid "Add Bundle..." #~ msgstr "バンドルの追加..." #~ msgid "Filter" #~ msgstr "フィルタ" #~ msgid "Branch '%s'" #~ msgstr "ブランチ '%s'" #~ msgid "Accept Bundle" #~ msgstr "バンドルを取り込む" #~ msgid "Tagged Revisions" #~ msgstr "タグのあるリビジョン" #~ msgid "Heads" #~ msgstr "ヘッド" #~ msgid "no Merges" #~ msgstr "マージリビジョン以外" #~ msgid "Reject Bundle" #~ msgstr "バンドルを破棄する" #~ msgid "_Archive..." #~ msgstr "アーカイブに保存...(_A)" #~ msgid "Strip Revision..." #~ msgstr "削除..." #~ msgid "Visualize Change" #~ msgstr "GUI 差分ツールで表示" #~ msgid "Di_splay Change" #~ msgstr "変更点の表示(_S)" #~ msgid "_Diff with selected" #~ msgstr "選択中のリビジョンとの差分(_D)" #~ msgid "Open Bundle" #~ msgstr "バンドルを開く" #~ msgid "%(count)d of %(total)d Revisions" #~ msgstr "%(total)d 中 %(count)d リビジョン" #~ msgid "Please enter or select a remote path" #~ msgstr "同期対象のパスを入力するか選択してください" #~ msgid "Bundle Preview" #~ msgstr "バンドルプレビュー" #~ msgid "No remote path specified" #~ msgstr "リモートパスがありません" #~ msgid "Canceled merging" #~ msgstr "マージが中止されました" #~ msgid "Merged successfully" #~ msgstr "正常にマージされました" #~ msgid "Failed to merge" #~ msgstr "マージに失敗しました" #~ msgid "%s - recovery" #~ msgstr "%s - リカバリ" #~ msgid "%s - serve" #~ msgstr "%s - ウェブサーバ" #~ msgid "Canceled undo" #~ msgstr "取り消しが中止されました" #~ msgid "Undo successfully" #~ msgstr "正常に取り消されました" #~ msgid "Successfully" #~ msgstr "正常に終了しました" #~ msgid "Failed to undo" #~ msgstr "取り消しに失敗しました" #~ msgid "%s - synchronize" #~ msgstr "%s - 同期" #~ msgid "_Copy..." #~ msgstr "コピー...(_C)" #~ msgid "_Delete unversioned" #~ msgstr "削除(未管理)" #~ msgid "Remove versioned" #~ msgstr "削除" #~ msgid "_Ignore" #~ msgstr "無視フィルタ(_I)" #~ msgid "Rename..." #~ msgstr "名前変更..." #~ msgid "Backup all (default)" #~ msgstr "全てバックアップ (デフォルト)" #~ msgid "Backup unrelated changesets (-b/--backup)" #~ msgstr "無関係なチェンジセットのみバックアップ (-b/--backup)" #~ msgid "Open..." #~ msgstr "開く..." #~ msgid "Canceled updating" #~ msgstr "更新が中止されました" #~ msgid "Failed to update" #~ msgstr "更新に失敗しました" #~ msgid "[canceled by user]\n" #~ msgstr "[ユーザによる中断]\n" #~ msgid "Updated successfully" #~ msgstr "正常に更新されました" #~ msgid " - serve" #~ msgstr " - サーバ動作中" #~ msgid "%s serve - %s" #~ msgstr "%s サーバ動作中 - %s" #~ msgid "_Guess Rename..." #~ msgstr "名前変更の推定...(_G)" #~ msgid "Shelf Preview" #~ msgstr "シェルフプレビュー" #~ msgid "View other" #~ msgstr "他を表示" #~ msgid "Strip" #~ msgstr "削除" #~ msgid "Repository Explorer" #~ msgstr "ログの表示" #~ msgid "Failed to strip" #~ msgstr "削除に失敗しました" #~ msgid "Canceled stripping" #~ msgstr "削除が中止されました" #~ msgid "Saved at: %s" #~ msgstr "バックアップ保存先: %s" #~ msgid "Stripped successfully" #~ msgstr "正常に削除されました" #~ msgid "&Yes (--force)" #~ msgstr "はい(--force)(&Y)" #~ msgid "Diff to second Parent" #~ msgstr "もう1つの親との差分" #~ msgid "Succeed" #~ msgstr "成功" #~ msgid "" #~ "Detected uncommitted local changes.\n" #~ "Do you want to discard them and continue?" #~ msgstr "" #~ "未コミットの変更がローカルで検出されました。\n" #~ "これらを破棄して処理を続行しますか?" #~ msgid "Canceled" #~ msgstr "中止" #~ msgid "Failed" #~ msgstr "失敗" #~ msgid "Accept new Changesets" #~ msgstr "新しいチェンジセットの取り込み" #~ msgid "" #~ "To complete merging, you need to commit merged files in working " #~ "directory.\n" #~ "\n" #~ "Do you want to exit?" #~ msgstr "" #~ "マージ作業はマージ結果をコミットするまで完了しません。\n" #~ "コミットせずに閉じてもよろしいですか?" #~ msgid "Outstanding uncommitted changes" #~ msgstr "未コミットの変更があります" #~ msgid "Select files to revert" #~ msgstr "元に戻すファイルの選択" #~ msgid "Select files to forget" #~ msgstr "破棄するファイルの選択" #~ msgid "" #~ "New changesets from the preview bundle are still pending.\n" #~ "\n" #~ "Accept or reject the new changesets?" #~ msgstr "" #~ "プレビュー中のバンドルが保留されています。\n" #~ "\n" #~ "これらの新しいチェンジセットをどうしますか?" #~ msgid "Select files to remove" #~ msgstr "削除するファイルの選択" #~ msgid "Select files to add" #~ msgstr "追加するファイルの選択" #~ msgid "" #~ "Do you want to fold un-applied patch '%(target)s' into current patch " #~ "'%(qtip)s'?" #~ msgstr "" #~ "未適用のパッチ '%(target)s' を 現在のパッチ '%(qtip)s' に統合してもよろし" #~ "いですか?" #~ msgid "Confirm Fold" #~ msgstr "パッチ統合の確認" #~ msgid "Yes (&keep)" #~ msgstr "はい (パッチを残す)" #~ msgid "Branches..." #~ msgstr "ブランチ..." #~ msgid "Parent: %(rev)s" #~ msgstr "親リビジョン: %(rev)s" #~ msgid "Accept changes from Bundle preview" #~ msgstr "プレビュー中のバンドルファイルの変更を取り込む" #~ msgid "Reject changes from Bundle preview" #~ msgstr "プレビュー中のバンドルファイルの変更を破棄する" #~ msgid "Branch Filter" #~ msgstr "ブランチフィルタ" #~ msgid "Use Expander" #~ msgstr "折り畳み" #~ msgid "Show changeset details with an expander" #~ msgstr "チェンジセット詳細を折り畳み可能にする" #~ msgid "Confirm Forced Push" #~ msgstr "強制的なプッシュの確認" #~ msgid "&Push" #~ msgstr "プッシュ(&P)" #~ msgid "Confirm Forced Push to Remote Repository" #~ msgstr "強制的なプッシュの確認" #~ msgid " - commit" #~ msgstr " - コミット" #~ msgid "Forced &Push" #~ msgstr "強制的にプッシュ(&P)" #~ msgid " - qnew" #~ msgstr " - パッチ作成" #~ msgid " - qrefresh " #~ msgstr " - パッチ更新 " #~ msgid "Transplant Revision range to local" #~ msgstr "この範囲をローカルに移植" #~ msgid "_Save at Revision..." #~ msgstr "ファイルに保存...(_S)" #~ msgid "Email from here to selected..." #~ msgstr "この範囲をメールで送信..." #~ msgid "Filter Bar" #~ msgstr "フィルタバー" #~ msgid "Rebase on top of selected" #~ msgstr "選択中のリビジョンの上にリベース" #~ msgid "Ambiguous Revision" #~ msgstr "あいまいなリビジョン" #~ msgid "Select common ancestor revision" #~ msgstr "共通の祖先リビジョンの選択" #~ msgid "TortoiseHg Init" #~ msgstr "TortoiseHg リポジトリ作成" #~ msgid "merging " #~ msgstr "マージ中 " #~ msgid "A new version of TortoiseHg is ready for download!" #~ msgstr "新しいバージョンがダウンロード可能です!" #~ msgid "Old name:" #~ msgstr "古いブックマーク名:" #~ msgid "Copyright 2008-2010 Steve Borho and others" #~ msgstr "Copyright 2008-2010 Steve Borho 他" #~ msgid "unexpected type: %s" #~ msgstr "予期しないタイプ: %s" #~ msgid "Bookmark input is empty" #~ msgstr "ブックマーク名が空欄です" #~ msgid "Error in bookmarking" #~ msgstr "ブックマーク処理中にエラーが発生しました" #~ msgid "Bookmark \"%s\" has been added" #~ msgstr "ブックマーク \"%s\" が追加されました" #~ msgid "Bookmarking completed" #~ msgstr "ブックマーク処理完了" #~ msgid "Please enter bookmark name" #~ msgstr "ブックマーク名を入力してください" #~ msgid "Bookmark \"%s\" has been moved" #~ msgstr "ブックマーク \"%s\" が移動されました" #~ msgid "Bookmark \"%s\" has been removed" #~ msgstr "ブックマーク \"%s\" が削除されました" #~ msgid "Please select bookmark name to remove" #~ msgstr "削除するブックマーク名を選択してください" #~ msgid "Bookmark new name input is empty" #~ msgstr "新しいブックマーク名が空欄です" #~ msgid "Bookmark name is empty" #~ msgstr "ブックマーク名が空欄です" #~ msgid "Bundle..." #~ msgstr "バンドル..." #~ msgid "browser" #~ msgstr "ブラウザ" #~ msgid "Enable _Wordwrap" #~ msgstr "行折り返しをする" #~ msgid "Bookmark \"%s\" has been renamed to \"%s\"" #~ msgstr "ブックマーク \"%s\" は \"%s\" に変更されました" #~ msgid "No bookmark named \"%s\" exists" #~ msgstr "\"%s\" という名前のブックマークは存在しません" #~ msgid "a bookmark named \"%s\" already exists" #~ msgstr "\"%s\" という名前のブックマークは既に存在します" #~ msgid "Please enter new bookmark name" #~ msgstr "新しいブックマーク名を入力してください" #~ msgid "type" #~ msgstr "種類" #~ msgid "Failed to commit" #~ msgstr "コミット失敗" #~ msgid "Always Show Output" #~ msgstr "常にコマンド出力を表示" #~ msgid "Mercurial bundles" #~ msgstr "Mercurial バンドル" #~ msgid "Select a Mercurial Bundle" #~ msgstr "Mercurial のバンドルを選択" #~ msgid "Aborted committing" #~ msgstr "コミット中断" #~ msgid "Committing changes..." #~ msgstr "変更点をコミット中..." #~ msgid "Displaying all items" #~ msgstr "全ての項目を表示中" #~ msgid "Selecting %(sel)d, displaying %(count)d of %(total)d items" #~ msgstr "%(sel)d 件を選択, %(total)d 件中 %(count)d 件を表示中" #~ msgid "Selecting %(sel)d of %(total)d, displaying all items" #~ msgstr "%(total)d 件中 %(sel)d 件を選択, 全ての項目を表示中" #~ msgid "Updating..." #~ msgstr "更新中..." #~ msgid "C_onfigure Format..." #~ msgstr "フォーマットの設定..." #~ msgid "mpatch error" #~ msgstr "mpatch エラー" #~ msgid "mpatch expects *.rej file argument\n" #~ msgstr "mpatch の実行には *.rej ファイルを引数として与える必要があります\n" #~ msgid "Launch commit tool" #~ msgstr "コミットツールを起動します" #~ msgid "Reset _Marks" #~ msgstr "マークをリセット" #~ msgid "Reset revision marks" #~ msgstr "リビジョングラフのマークを消します" #~ msgid "hgtk shellconfig" #~ msgstr "hgtk shellconfig" #~ msgid "hgtk import [OPTION] [SOURCE]..." #~ msgstr "hgtk import [OPTION] [SOURCE]..." #~ msgid "%s does not exist\n" #~ msgstr "%s は存在しません\n" #~ msgid "import to the repository" #~ msgstr "リポジトリにインポートする" #~ msgid "_Perforce" #~ msgstr "_Perforce" #~ msgid "Launch data mining tool" #~ msgstr "リポジトリ検索ツールを起動します" #~ msgid "Launch shelve tool" #~ msgstr "シェルフツールを起動します" #~ msgid "Branches" #~ msgstr "ブランチ" #~ msgid "Launch recovery tool" #~ msgstr "リカバリツールを起動します" #~ msgid "Launch web server" #~ msgstr "ウェブサーバを起動します" #~ msgid "Import..." #~ msgstr "インポート..." #~ msgid "Previously Selected" #~ msgstr "1つ前の選択" #~ msgid "Configure Paths..." #~ msgstr "同期パスの設定..." #~ msgid "Revision Range" #~ msgstr "リビジョン範囲" #~ msgid "'%s' filter:" #~ msgstr "'%s' フィルタ:" #~ msgid "Changes" #~ msgstr "変更" #~ msgid "Current patch: %s, " #~ msgstr "現在のパッチ: %s, " #~ msgid "Aborted p4identify" #~ msgstr "p4identify 中断" #~ msgid "Revision Number/ID" #~ msgstr "リビジョン番号/ID" #~ msgid "Export" #~ msgstr "エクスポート" #~ msgid "Backout..." #~ msgstr "バックアウト..." #~ msgid "Diff to Local" #~ msgstr "ローカルとの差分" #~ msgid "Push to Here" #~ msgstr "ここまでプッシュ" #~ msgid "Pull to Here" #~ msgstr "ここまでプル" #~ msgid "%(count)d of %(total)d applied patches" #~ msgstr "%(total)d 中 %(count)d のパッチを適用中" #~ msgid "Transp_lant to Local" #~ msgstr "ローカルに移植" #~ msgid "Tag" #~ msgstr "タグ" #~ msgid "Mercurial Queues" #~ msgstr "MQ" #~ msgid "Reset" #~ msgstr "リセット" #~ msgid "Add/Move/Remove B_ookmark..." #~ msgstr "ブックマークの追加/移動/削除..." #~ msgid "Rename Bookmark..." #~ msgstr "ブックマークの名前変更..." #~ msgid "Skip Testing" #~ msgstr "テストをスキップ" #~ msgid "Finished pull" #~ msgstr "プル完了" #~ msgid "Finished pull with rebase" #~ msgstr "プル完了 (リベース済)" #~ msgid "No changesets to pull" #~ msgstr "プルするチェンジセットがありません" #~ msgid "No incoming changesets" #~ msgstr "受信チェンジセットはありません" #~ msgid "Checking incoming changesets..." #~ msgstr "受信チェンジセットのチェック中..." #~ msgid "Import patches" #~ msgstr "パッチのインポート" #~ msgid "%d incoming changesets" #~ msgstr "%d 件の受信チェンジセット" #~ msgid "Aborted incoming" #~ msgstr "受信中断" #~ msgid "Applying bundle..." #~ msgstr "バンドルを適用中..." #~ msgid "Applying bundle" #~ msgstr "バンドルを適用中" #~ msgid "Aborted push" #~ msgstr "プッシュ中断" #~ msgid "Finished push" #~ msgstr "プッシュ完了" #~ msgid "Aborted pull" #~ msgstr "プル中断" #~ msgid "Aborted outgoing" #~ msgstr "送信中断" #~ msgid "Pulling changesets..." #~ msgstr "チェンジセットをプル中..." #~ msgid "Checking outgoing changesets..." #~ msgstr "送信チェンジセットのチェック中..." #~ msgid "Pushing changesets..." #~ msgstr "チェンジセットのプッシュ中..." #~ msgid "unknown dnd dest: %s" #~ msgstr "不明なドラッグ&ドロップ先: %s" #~ msgid "Bundling from %(base)s to %(rev)s..." #~ msgstr "%(base)s から %(rev)s をバンドル中..." #~ msgid "Aborted importing" #~ msgstr "インポート中断" #~ msgid "Importing to Patch Queue..." #~ msgstr "MQ にインポート中..." #~ msgid "Importing" #~ msgstr "インポート中" #~ msgid "Failed to import" #~ msgstr "インポート失敗" #~ msgid "Finish bundling" #~ msgstr "バンドル完了" #~ msgid "Aborted bundling" #~ msgstr "バンドル中断" #~ msgid "Failed to bundle" #~ msgstr "バンドル失敗" #~ msgid "Bundling" #~ msgstr "バンドル中" #~ msgid "Bundling from %(base)s to tip..." #~ msgstr "%(base)s から tip までバンドル中..." #~ msgid "Finish importing" #~ msgstr "インポート完了" #~ msgid "Finished push to revision %s" #~ msgstr "リビジョン %s までプッシュ完了" #~ msgid "Pulling changesets to revision %s..." #~ msgstr "リビジョン %s までチェンジセットをプル中..." #~ msgid "Finished pull to revision %s" #~ msgstr "リビジョン %s までプル完了" #~ msgid "Push to %s" #~ msgstr "%s までプッシュ" #~ msgid "Pushing changesets to revision %s..." #~ msgstr "リビジョン %s までチェンジセットをプッシュ中..." #~ msgid "Pull to %s" #~ msgstr "%s までプル" #~ msgid "Rev/ID" #~ msgstr "リビジョン" #~ msgid "TortoiseHg Shell Configuration" #~ msgstr "TortoiseHg シェル拡張設定" #~ msgid "Changelist:" #~ msgstr "変更一覧:" #~ msgid "<- Top" #~ msgstr "← トップへ" #~ msgid "Sub ->" #~ msgstr "サブへ →" #~ msgid "invalid pack direction: %s" #~ msgstr "無効な格納方向: %s" #~ msgid "unknown field name: %s" #~ msgstr "不明なフィールド名: %s" #~ msgid "invalid alignment value: %s" #~ msgstr "無効な整列値: %s" #~ msgid "Toolbar Style" #~ msgstr "ツールバーのスタイル" #~ msgid "Coloring Style" #~ msgstr "色付け方法" #~ msgid "Imported successfully" #~ msgstr "インポート完了" #~ msgid "Import" #~ msgstr "インポート" #~ msgid "Do you want to close?" #~ msgstr "本当に閉じてもよろしいですか?" #~ msgid "Select Patches" #~ msgstr "パッチの選択" #~ msgid "Canceled importing" #~ msgstr "インポート中断" #~ msgid "Confirm Close" #~ msgstr "終了の確認" #~ msgid "Select Directory contains patches:" #~ msgstr "パッチを含むディレクトリの選択:" #~ msgid "unexpected destination name: %s" #~ msgstr "予期しないインポート先: %s" #~ msgid "F_old" #~ msgstr "統合(_F)" #~ msgid "_Goto" #~ msgstr "移動(_G)" #~ msgid "Patch" #~ msgstr "パッチ" #~ msgid "_Rename" #~ msgstr "名前の変更(_R)" #~ msgid "_Delete" #~ msgstr "削除(_D)" #~ msgid "Up" #~ msgstr "上" #~ msgid "Top" #~ msgstr "一番上" #~ msgid "Bottom" #~ msgstr "一番下" #~ msgid "Down" #~ msgstr "下" #~ msgid "_Shelve" #~ msgstr "シェルフ(_S)" #~ msgid "Always show log" #~ msgstr "常にコマンド出力を表示" #~ msgid "%s will be stripped" #~ msgstr "%s チェンジセットが削除されます" #~ msgid "%s changesets" #~ msgstr "%s チェンジセット" #~ msgid "cleaning up temp directory\n" #~ msgstr "一時ディレクトリを削除します\n" #~ msgid "patching file %s\n" #~ msgstr "ファイル %s にパッチを適用中\n" #~ msgid "No valid hunks found" #~ msgstr "有効なハンクがありません" #~ msgid "unable to strip away %d dirs from %s" #~ msgstr "%d ディレクトリを %s から削除できません" #~ msgid "unable to find %s or %s for patching" #~ msgstr "パッチ適用のための %s または %s が見つかりません" #~ msgid "could not extract binary patch" #~ msgstr "バイナリパッチは抽出できません" #~ msgid "binary patch is %d bytes, not %d" #~ msgstr "バイナリパッチは %d バイトです (%d バイトではない)" #~ msgid "_View File at Revision" #~ msgstr "ファイルの表示(_V)" #~ msgid "_Zoom to Change" #~ msgstr "変更点の詳細(_Z)" #~ msgid "_Annotate Parent" #~ msgstr "親リビジョンの履歴を表示(_A)" #~ msgid "Unable to find rev %s" #~ msgstr "リビジョン %s が見つかりません" #~ msgid "Perforce changelist %s" #~ msgstr "Perforce変更リスト %s" #~ msgid "Mark as Good" #~ msgstr "Good としてマーク" #~ msgid "Bisect" #~ msgstr "Bisect" #~ msgid "Mark as Bad" #~ msgstr "Bad としてマーク" #~ msgid "Show the taskbar icon (restart needed)" #~ msgstr "トレイアイコンを表示する (再起動が必要)" #~ msgid "===== Diff to first parent %d:%s =====\n" #~ msgstr "===== 1番目の親との差分 %d:%s =====\n" #~ msgid "S: subrepo" #~ msgstr "S: サブリポジトリ" #~ msgid "" #~ "\n" #~ "===== Diff to second parent %d:%s =====\n" #~ msgstr "" #~ "\n" #~ "===== 2番目の親との差分 %d:%s =====\n" #~ msgid "Discard all changes from merge target (other) revision" #~ msgstr "全ての変更点をマージ対象(other)のリビジョンから破棄する" #~ msgid "Uncommitted local changes" #~ msgstr "未コミットの作業ディレクトリでの変更" #~ msgid "" #~ "Adjust the coloring style of diff lines in the changeset viewer. Default: " #~ "foreground" #~ msgstr "" #~ "差分表示の色付け方法を指定。デフォルトでは foreground で、文字自体に色を付" #~ "ける。" #~ msgid "" #~ "%s\n" #~ "Reverting to read-only mode." #~ msgstr "" #~ "%s\n" #~ "読み取り専用モードに戻す" #~ msgid "Unable to parse a config file" #~ msgstr "設定ファイルを読み込めません" #~ msgid "" #~ "The editor to use during a commit and other instances where Mercurial " #~ "needs multiline input from the user. Used by command line commands, " #~ "including patch import." #~ msgstr "" #~ "コミット時やMercurialが複数行のユーザからの入力を必要とするときに使用する" #~ "エディタ。パッチのインポートなどを含む、CLIコマンドとしてのみ使われます。" #~ msgid "" #~ "Specify the number of spaces that tabs expand to in various TortoiseHg " #~ "windows. Default: Not expanded" #~ msgstr "" #~ "TortoiseHg の各ツールでタブ文字をいくつの空白文字に展開するかを指定。デ" #~ "フォルトでは展開しません。" #~ msgid "" #~ "Maximum length of the commit message summary line. If set, TortoiseHg " #~ "will issue a warning if the summary line is too long or not separated by " #~ "a blank line. Default: 0 (unenforced)" #~ msgstr "" #~ "コミットメッセージの要約行の最大文字数。要約行の文字数がこの設定値を越えて" #~ "いる、または要約行とそれ以降のメッセージが空行でへだてられていない場合に警" #~ "告が表示されます。デフォルトでは0で、一切警告は表示されません。" #~ msgid "malformed patch %s %s" #~ msgstr "不正な形式のパッチ %s %s" #~ msgid "revisions %d to %d" #~ msgstr "リビジョン %d から %d" #~ msgid "bad hunk #%d" #~ msgstr "不良ハンク #%d" #~ msgid "bad hunk #%d old text line %d" #~ msgstr "不良ハンク #%d (想定していた行番号は %d)" #~ msgid "Hunk #%d FAILED at %d\n" #~ msgstr "ハンク #%d が失敗: %d\n" #~ msgid "Identify" #~ msgstr "リビジョンの特定" #~ msgid "Pending" #~ msgstr "保留中の変更リスト" #~ msgid "Submitted" #~ msgstr "送信完了" #~ msgid "Submit" #~ msgstr "送信" #~ msgid "Index" #~ msgstr "目次" #~ msgid "Insufficient access rights, reverting to read-onlymode." #~ msgstr "読み取り専用モードに戻す権限がありません。" #~ msgid "Backout changeset - %s" #~ msgstr "バックアウト - %s" #~ msgid "Email revisions " #~ msgstr "メール送信: リビジョン " #~ msgid "Configure email settings" #~ msgstr "メール送信設定" #~ msgid "Email outgoing changes" #~ msgstr "メール送信" #~ msgid "Download and view incoming changesets" #~ msgstr "チェンジセットを受信してプレビューする" #~ msgid "Import Revision to MQ" #~ msgstr "MQ にインポート" #~ msgid "Archive revision:" #~ msgstr "アーカイブするリビジョン:" #~ msgid "Several icons are courtesy of the TortoiseSVN project" #~ msgstr "一部のアイコンは TortoiseSVN からの提供です" #~ msgid "_Diff" #~ msgstr "差分(_D)" #~ msgid "_Forget" #~ msgstr "破棄(_F)" #~ msgid "Show/Hide Patch Queue" #~ msgstr "MQ パネルの表示/非表示" #~ msgid "Capture stderr" #~ msgstr "標準エラーの補足" #~ msgid "" #~ "Redirect stderr to a buffer which is parsed at the end of the process for " #~ "runtime errors. Default: True" #~ msgstr "" #~ "標準エラー出力をプロセスのバッファに転送します。デフォルトで有効です。" #~ msgid "Cannot run now" #~ msgstr "実行できません" #~ msgid "User global settings" #~ msgstr "ユーザ設定" #~ msgid "use \"hgtk -v help %s\" to show global options" #~ msgstr "共通オプションは \"hgtk -v help %s\" で見ることができます" #~ msgid "use \"hgtk -v help%s\" to show aliases and global options" #~ msgstr "" #~ "エイリアスと共通オプションは \"hgtk -v help%s\" で見ることができます" #~ msgid "TortoiseHg Configure User-Global Settings" #~ msgstr "TortoiseHg ユーザ設定" #~ msgid "" #~ "If true, concatenate multiple lines of changeset summary until they reach " #~ "80 characters. Default: False" #~ msgstr "" #~ "True にするとコミットメッセージの改行を無視して複数の行を1行あたり80文字に" #~ "なるまで連結して表示します。デフォルトでは無効。" #~ msgid "Specify the visual editor used to view files, etc" #~ msgstr "ファイルを表示するための GUI エディタを指定してください。" #~ msgid "Copy file to" #~ msgstr "ファイルをコピー:" #~ msgid "Rename file to:" #~ msgstr "ファイルを名前変更" #~ msgid "View missing" #~ msgstr "不明ファイルを表示" #~ msgid "Repo:" #~ msgstr "リポジトリ:" #~ msgid "Bundle:" #~ msgstr "バンドル:" #~ msgid "" #~ "Default language for spell check. System language is used if not " #~ "specified. Examples: en, en_GB, en_US" #~ msgstr "" #~ "スペルチェックのデフォルト言語。未設定の場合はシステムの言語が使用されま" #~ "す。例: en, en_GB, en_US" #~ msgid "" #~ "Select language for spell checking.\n" #~ "\n" #~ "Empty is for the default language.\n" #~ "When all text is highlited, the dictionary\n" #~ "is probably not installed.\n" #~ "\n" #~ "examples: en, en_GB, en_US" #~ msgstr "" #~ "スペルチェックに使用する言語を選択してください。\n" #~ "\n" #~ "空欄の場合はデフォルトの言語になります。\n" #~ "全てのテキストがハイライトされた場合は辞書が\n" #~ "インストールされていない可能性があります。\n" #~ "\n" #~ "例: en, en_GB, en_US" #~ msgid "Finding tip Perforce changelist..." #~ msgstr "Perforce 変更リストの tip を検索中..." #~ msgid "Finding pending Perforce changelists..." #~ msgstr "保留中の Perforce 変更リストを検索中..." #~ msgid "Pending Perforce changelists" #~ msgstr "保留中の Perforce 変更リスト" #~ msgid "Identifying Perforce tip" #~ msgstr "Perforce の tip を特定中..." #~ msgid "Unable to identify Perforce tip" #~ msgstr "Perforce の tip を特定できません" #~ msgid "Import from here to selected to MQ" #~ msgstr "この範囲を MQ にインポート" #~ msgid "Diff Text" #~ msgstr "差分表示" #~ msgid "Font used in command output window. Default: monospace 10" #~ msgstr "" #~ "コマンド出力ウィンドウで使用されるフォント。デフォルトは monospace 10 で" #~ "す。" #~ msgid "Japanese on Windows" #~ msgstr "日本語 Windows" #~ msgid "" #~ "Font used for diffs in status and commit tools. Default: monospace 10" #~ msgstr "" #~ "チェンジセットの詳細表示およびコミットダイアログの差分表示で使用されるフォ" #~ "ント。デフォルトは monospace 10 です。" #~ msgid "File List" #~ msgstr "ファイル一覧" #~ msgid "Font used in file lists in status and commit tools. Default: sans 9" #~ msgstr "" #~ "コミットダイアログのファイル一覧で使用されるフォント。デフォルトは sans 9 " #~ "です。" #~ msgid "Command Output" #~ msgstr "コマンド出力" #~ msgid "Unable to save file" #~ msgstr "ファイルを保存できません" #~ msgid "Commit Message" #~ msgstr "コミットメッセージ" #~ msgid "" #~ "Font used in changeset viewer and commit log text. Default: monospace 10" #~ msgstr "" #~ "チェンジセットの詳細表示およびコミットダイアログのログ入力エリアで使用され" #~ "るフォント。デフォルトは monospace 10 です。" #~ msgid "Reorder" #~ msgstr "並べ替え" #~ msgid "invalid reorder operation: %s" #~ msgstr "無効な並べ替え操作: %s" #~ msgid "" #~ "Do you want to fold following un-applied patches into the current patch " #~ "'%(qtip)s'?" #~ msgstr "" #~ "以下のすべての未適用パッチを現在のパッチ '%(qtip)s' に統合してもよろしいで" #~ "すか?" #~ msgid "Do you want to delete these patches?" #~ msgstr "これらのパッチを削除してもよろしいですか?" #~ msgid "Do you want to delete '%(name)s'?" #~ msgstr "本当に '%(name)s' を削除してもよろしいですか?" #~ msgid " - Select Preset -" #~ msgstr " -フォント設定の選択 -" #~ msgid "Font" #~ msgstr "フォント設定" #~ msgid "Theme default fonts" #~ msgstr "テーマ標準フォント" #~ msgid "Preset fonts:" #~ msgstr "推奨フォント" #~ msgid "Custom fonts:" #~ msgstr "個別設定フォント" #~ msgid "Visual Diff with selected" #~ msgstr "選択中のリビジョンとの GUI 差分" #~ msgid "_Copy Hash" #~ msgstr "ハッシュ値のコピー(_C)" #~ msgid "%s will be imported to the" #~ msgstr "%s がインポートされます:" #~ msgid "%s will be imported to the repository" #~ msgstr "%s がリポジトリにインポートされます" #~ msgid "Message Line Length" #~ msgstr "コミットログ文字数" #~ msgid "tag '%s' is not a local tag" #~ msgstr "タグ '%s' はローカルタグではありません" #~ msgid "tag '%s' does not exist" #~ msgstr "タグ '%s' は存在しません" #~ msgid "tag '%s' is not a global tag" #~ msgstr "タグ '%s' はローカルタグです" #~ msgid "Bundle from here to selected..." #~ msgstr "この範囲をバンドルファイルに保存..." #~ msgid "Failed to preview, a bundle file unrelated to this repository" #~ msgstr "バンドルプレビューに失敗しました (このリポジトリとは無関係)" #~ msgid "Failed to preview, not a Mercurial bundle file" #~ msgstr "" #~ "バンドルプレビューに失敗しました (無効な Mercurial バンドルファイル)" #~ msgid "neither parent is a head, commit to add a new head" #~ msgstr "" #~ "どちらの親リビジョンも HEAD ではないため、新しく HEAD が追加されます" #~ msgid "Not at head" #~ msgstr "HEAD ではありません" #~ msgid "" #~ "Forced push to repository\n" #~ "%s\n" #~ "(creating new heads if needed)?" #~ msgstr "" #~ "リポジトリに強制的にプッシュしてもよろしいですか?\n" #~ "%s\n" #~ "(必要に応じて新しく HEAD が作成されます)" #~ msgid "" #~ "Forced push to remote repository\n" #~ "%s\n" #~ "(creating new heads in remote if needed)?" #~ msgstr "" #~ "リモートリポジトリへ強制的にプッシュしてもよろしいですか?\n" #~ "%s\n" #~ "(必要に応じてリモートリポジトリに新しく HEAD が作成されます)" #~ msgid "commit to merge one head" #~ msgstr "コミットして HEAD をマージします" #~ msgid "parent is not a head, commit to add a new head" #~ msgstr "親リビジョンが HEAD ではないため、新しく HEAD が追加されます" #~ msgid "_Commit (-1 head)" #~ msgstr "コミット (-1 HEAD)" #~ msgid "_Commit (+1 head)" #~ msgstr "コミット (+1 HEAD)" #~ msgid "Hunk #%d succeeded at %d (offset %d lines).\n" #~ msgstr "%d番目のハンクが%d行目で適用成功 (%d行のずれ)\n" #~ msgid "Hunk #%d succeeded at %d with fuzz %d (offset %d lines).\n" #~ msgstr "%d番目のハンクが%d行目で適用成功、あいまいさは%d文字 (%d行のずれ)\n" #~ msgid "Unable to determine repository status" #~ msgstr "リポジトリの状態を取得できません" #~ msgid "Null changeset is not viewable" #~ msgstr "NULL チェンジセットは表示できません" #~ msgid "Changeset not found in current view" #~ msgstr "表示できるチェンジセットはありません" #~ msgid "Confirm Switch" #~ msgstr "切り替えの確認" #~ msgid "Switch after saving changes?" #~ msgstr "変更を保存したあと切り替えますか?" #~ msgid "series become inconsistent during reorder" #~ msgstr "パッチ並べ替え中に不整合が生じました" #~ msgid "_Finish Applied" #~ msgstr "リビジョン化(_F)" #~ msgid "Starting Revision:" #~ msgstr "開始リビジョン:" #~ msgid "File is binary.\n" #~ msgstr "ファイルはバイナリです。\n" #~ msgid "" #~ "Named branch \"%s\" already exists, last used in revision %d\n" #~ "Yes\t- Make commit restarting this named branch\n" #~ "No\t- Make commit without changing branch\n" #~ "Cancel - Cancel this commit" #~ msgstr "" #~ "「%s」という名前のブランチは、リビジョン %d の時点で既に存在しています\n" #~ "はい\t- この名前のブランチをリスタートしてコミット\n" #~ "いいえ\t- ブランチを変更せずにコミット\n" #~ "キャンセル - コミットをキャンセル" #~ msgid "" #~ "No issue link found in the commit message.The commit message should " #~ "contain an issue link. Configure this in the 'Issue' section in the " #~ "settings" #~ msgstr "" #~ "コミットメッセージにBTSへのリンクがありません。コミットメッセージにはBTSへ" #~ "のリンクが含まれていなければなりません。設定の「問題管理」セクションで設定" #~ "してください。" #~ msgid "Commit failed" #~ msgstr "コミット失敗" #~ msgid "Bug Traq" #~ msgstr "バグトラッキング" #~ msgid "" #~ "Create new named branch \"%s\" with this commit?\n" #~ "Yes\t- Start new branch with this commit\n" #~ "No\t- Make commit without branch change\n" #~ "Cancel - Cancel this commit" #~ msgstr "" #~ "このコミットで「%s」という名前のブランチを新規作成しますか?\n" #~ "はい\t- このコミットで新規ブランチを開始\n" #~ "いいえ\t- ブランチを変更せずにコミット\n" #~ "キャンセル - コミットをキャンセル" #~ msgid "Subversion" #~ msgstr "Subversion" #~ msgid "No matches" #~ msgstr "該当なし" #~ msgid "Commit backout before merging with current working parent" #~ msgstr "現在の親にマージする前にバックアウトをコミット" #~ msgid "Status: %s" #~ msgstr "状態: %s" #~ msgid "Please try again after the running operation is completed" #~ msgstr "実行中の操作が完了してから再実行してください" #~ msgid "_Diff to Local" #~ msgstr "ローカルとの差分(_D)" #~ msgid "Show/Hide Patch Branch" #~ msgstr "パッチブランチの表示/非表示" #~ msgid "Patch Branch" #~ msgstr "パッチブランチ" #~ msgid "Push new branch" #~ msgstr "新規ブランチをプッシュ" #~ msgid "Backed out successfully, you must now commit the results" #~ msgstr "バックアウトしました。結果をコミットしてください。" #~ msgid "Finished committing" #~ msgstr "コミット完了" #~ msgid "Finished committing and pushing" #~ msgstr "コミットとプッシュ完了" #~ msgid "Run Commit after init" #~ msgstr "リポジトリの新規作成後にコミット" #~ msgid "Allow pushing a new branch" #~ msgstr "新規ブランチの反映を許可" #~ msgid "hunk %d already applied at line %d (fuzz %d)\n" #~ msgstr "%d番目のハンクが%d行目で適用済み(あいまいさは%d文字)\n" #~ msgid "abandoning shelved file\n" #~ msgstr "シェルフを破棄します\n" #~ msgid "unshelve backup aborted\n" #~ msgstr "シェルフのバックアップファイル作成に失敗しました\n" #~ msgid "abandon failed\n" #~ msgstr "シェルフの破棄に失敗しました\n" #~ msgid "nothing to abandon\n" #~ msgstr "破棄するシェルフが存在しません\n" #~ msgid "shelved file abandoned\n" #~ msgstr "シェルフを破棄しました\n" #~ msgid "bad shelve backup directory name" #~ msgstr "バックアップファイルの保存先として利用できないディレクトリ名です" #~ msgid "delete of shelve backup failed" #~ msgstr "バックアップファイルを削除できません" #~ msgid " Aborted" #~ msgstr " が中断されました" #~ msgid "abort: backup restore failed, %s\n" #~ msgstr "中断: バックアップの復元に失敗しました %s\n" #~ msgid "file %s already exists\n" #~ msgstr "ファイル %s はすでに存在しています\n" #~ msgid "%d out of %d hunks FAILED -- saving rejects to file %s\n" #~ msgstr "%d 個のハンク(総数 %d)が適用失敗 -- 失敗ハンクは %s に保存\n" #~ msgid "bad hunk #%d %s (%d %d %d %d)" #~ msgstr "不正なハンク #%d %s (%d %d %d %d)" #~ msgid "user quit" #~ msgstr "ユーザーによるキャンセル" #~ msgid "file copy of %s failed\n" #~ msgstr "%s のファイルコピーが失敗しました\n" #~ msgid "removing backup file : %r\n" #~ msgstr "バックアップを除去中: %r\n" #~ msgid "Restart merge with" #~ msgstr "指定ツールで再マージ" #~ msgid "Restart Merge..." #~ msgstr "再マージ..." #~ msgid "Mark resolved" #~ msgstr "衝突解消済み状態に設定" #~ msgid "Mark unresolved" #~ msgstr "衝突未解消状態に設定" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/jv.po0000644000000000000000000043215414440352353016256 0ustar00rootroot# Javanese translation for tortoisehg # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the tortoisehg package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2011-10-17 08:45+0000\n" "Last-Translator: uring \n" "Language-Team: Javanese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 0;\n" "X-Launchpad-Export-Date: 2019-07-17 05:43+0000\n" "X-Generator: Launchpad (build 19009)\n" msgid "TortoiseHg Overlay Icon Server" msgstr "" msgid "Exit" msgstr "Metu" msgid "About" msgstr "Sekitaripun" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "" msgid "You can visit our site here" msgstr "Njenengan saget ndugi situs kulo wonten ngriki" msgid "&License" msgstr "" #, python-format msgid "version %s" msgstr "versi %s" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "kale Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "" msgid "License" msgstr "" msgid "= Working Directory Parent =" msgstr "" msgid "Directory of files" msgstr "" msgid "Tar archives" msgstr "" msgid "Uncompressed tar archive" msgstr "" msgid "Bzip2 tar archives" msgstr "" msgid "Tar archive compressed using bzip2" msgstr "" msgid "Gzip tar archives" msgstr "" msgid "Tar archive compressed using gzip" msgstr "" msgid "Zip archives" msgstr "" msgid "Uncompressed zip archive" msgstr "" msgid "Zip archive compressed using deflate" msgstr "" msgid "Revision:" msgstr "Revisi:" msgid "All files in this revision" msgstr "" msgid "Only files modified/created in this revision" msgstr "Namung berkas sing diubah/digawe dalemipun revisi punika" msgid "Only files modified/created since:" msgstr "" msgid "Archive Content:" msgstr "" msgid "Recurse into subrepositories" msgstr "" msgid "Browse..." msgstr "Nggolek'i" msgid "Destination path:" msgstr "Path sing dituju" msgid "Archive types:" msgstr "Macem-macem simpenan:" msgid "Hg command:" msgstr "" msgid "Select Destination Folder" msgstr "" msgid "Select Destination File" msgstr "" msgid "All files (*)" msgstr "" msgid "Duplicate Name" msgstr "" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "" msgid "Confirm Overwrite" msgstr "" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "" #, python-format msgid "Archive - %s" msgstr "Simpenan - %s" msgid "&Archive" msgstr "" msgid "Backout requires a parent revision" msgstr "" msgid "Cannot backout change on a different branch" msgstr "" #, python-format msgid "Backout - %s" msgstr "" msgid "Prepare to backout" msgstr "" msgid "Verify backout revision and ensure your working directory is clean." msgstr "" msgid "Backing out a parent revision is a single step operation" msgstr "" msgid "Backout revision" msgstr "" msgid "Not a head, backout will create a new head!" msgstr "" msgid "Current local revision" msgstr "" msgid "Working directory status" msgstr "" msgid "Checking..." msgstr "" msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Automatically resolve merge conflicts where possible" msgstr "" msgid "Uncommitted local changes are detected" msgstr "" msgid "Clean" msgstr "" msgid "Backing out, then merging..." msgstr "" msgid "All conflicting files will be marked unresolved." msgstr "" msgid "Automatically advance to next page when backout and merge are complete." msgstr "" #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" msgid "No merge conflicts, ready to commit" msgstr "" msgid "Commit backout and merge results" msgstr "" msgid "Parents" msgstr "" msgid "Working Directory" msgstr "" msgid "Working Directory (merged)" msgstr "" msgid "Commit message" msgstr "" msgid "Skip final confirmation page, close after commit." msgstr "" msgid "Backed out changeset: " msgstr "" msgid "Confirm Discard Message" msgstr "" msgid "Discard current backout message?" msgstr "" msgid "Use English backout message" msgstr "" msgid "Backing out and committing..." msgstr "" msgid "Please wait while making backout." msgstr "" msgid "Committing..." msgstr "" msgid "Please wait while committing merged files." msgstr "" msgid "Finished" msgstr "" msgid "Backout changeset" msgstr "" #, python-format msgid "Bisect - %s" msgstr "" msgid "Accept" msgstr "" msgid "Known good revision:" msgstr "" msgid "Known bad revision:" msgstr "" msgid "Discard local changes (revert --all)" msgstr "" msgid "Revision is &Good" msgstr "" msgid "Revision is &Bad" msgstr "" msgid "&Skip this Revision" msgstr "" msgid "Close" msgstr "" msgid "Error encountered." msgstr "" msgid "Culprit found." msgstr "" msgid "Revision" msgstr "" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "" #, python-format msgid "%s (hint: %s)" msgstr "" msgid "Bookmark:" msgstr "" msgid "New Name:" msgstr "" msgid "Activate:" msgstr "" msgid "&Add" msgstr "" msgid "Re&name" msgstr "" msgid "&Remove" msgstr "" msgid "&Move" msgstr "" #, python-format msgid "Bookmark - %s" msgstr "" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "" #, python-format msgid "Bookmark '%s' has been added" msgstr "" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "" #, python-format msgid "Bookmark '%s' has been moved" msgstr "" #, python-format msgid "Bookmark '%s' does not exist" msgstr "" #, python-format msgid "Bookmark '%s' has been removed" msgstr "" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "" msgid "TortoiseHg Bookmark Sync" msgstr "" msgid "Outgoing Bookmarks" msgstr "" msgid "&Push Bookmark" msgstr "" msgid "&Remove Bookmark" msgstr "" msgid "Incoming Bookmarks" msgstr "" msgid "P&ull Bookmark" msgstr "" msgid "R&emove Bookmark" msgstr "" #, python-format msgid "Pushed local bookmark: %s" msgstr "" #, python-format msgid "Pulled remote bookmark: %s" msgstr "" #, python-format msgid "Removed remote bookmark: %s" msgstr "" #, python-format msgid "Removed local bookmark: %s" msgstr "" #, python-format msgid "%s - branch operation" msgstr "" msgid "Select branch of merge commit" msgstr "" msgid "Changes take effect on next commit" msgstr "" msgid "No branch changes" msgstr "" msgid "Open a new named branch" msgstr "" msgid "Close current branch" msgstr "" #, python-format msgid "Please report this bug to our bug tracker" msgstr "" msgid "Checking for updates..." msgstr "" msgid "Copy" msgstr "" msgid "Quit" msgstr "" msgid "TortoiseHg Bug Report" msgstr "" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "" msgid "Your TortoiseHg is up to date." msgstr "" msgid "Save error report to" msgstr "" msgid "Text files (*.txt)" msgstr "" msgid "Error writing file" msgstr "" msgid "TortoiseHg Error" msgstr "" msgid "" "If you still have trouble, please file a bug report." msgstr "" msgid "Visual Diff" msgstr "" msgid "View file changes in external diff tool" msgstr "" msgid "Edit Local" msgstr "" msgid "Edit current file in working copy" msgstr "" msgid "Revert to Revision" msgstr "" msgid "Revert file(s) to contents at this revision" msgstr "" msgid "Patch failed to apply" msgstr "" msgid "Manually resolve rejected chunks?" msgstr "" msgid "Edit patched file and rejects?" msgstr "" msgid "No deletable chunks" msgstr "" msgid "Completely remove file from patch?" msgstr "" msgid "Revert all file changes?" msgstr "" msgid "No chunks remain" msgstr "" msgid "file has been deleted, refresh" msgstr "" msgid "file has been modified, refresh" msgstr "" msgid "Unable to merge chunks" msgstr "" msgid "Add or remove patches must be merged in the working directory" msgstr "" msgid "Unable to remove" msgstr "" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" msgctxt "files" msgid "All" msgstr "" msgctxt "files" msgid "None" msgstr "" msgid "Toggle display of text search bar" msgstr "" msgid "Diff Toolbar" msgstr "" #, python-format msgid "Chunks selected: %d / %d" msgstr "" msgid "Please wait while the file is opened ..." msgstr "" msgid "Source:" msgstr "" msgid "Destination:" msgstr "" msgid "Options" msgstr "" msgid "Clone to revision:" msgstr "" msgid "A revision identifier, bookmark, tag or branch name" msgstr "" msgid "Do not update the new working directory" msgstr "" msgid "Use pull protocol to copy metadata" msgstr "" msgid "Clone with minimal processing" msgstr "" msgid "Include patch queue" msgstr "" msgid "Use proxy server" msgstr "" msgid "Do not verify host certificate" msgstr "" msgid "Remote command:" msgstr "" msgid "Use largefiles" msgstr "" msgid "Start revision:" msgstr "" msgid "Select source repository" msgstr "" msgid "Select destination repository" msgstr "" msgid "Select patch folder" msgstr "" #, python-format msgid "Clone - %s" msgstr "" msgid "&Clone" msgstr "" msgid "failed to start command\n" msgstr "" msgid "error while running command\n" msgstr "" #, python-format msgid "process exited unexpectedly with code %d" msgstr "" #, python-format msgid "failed to encode command: %s" msgstr "" #, python-format msgid "timed out while reading: %r..." msgstr "" msgid "timed out waiting for message" msgstr "" #, python-format msgid "unexpected response on required channel %r" msgstr "" #, python-format msgid "invalid \"hello\" message: %r" msgstr "" msgid "no \"runcommand\" capability" msgstr "" #, python-format msgid "corrupted command result: %r" msgstr "" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "" msgid "Terminated by user" msgstr "" #, python-format msgid "[command terminated by user %s]" msgstr "" #, python-format msgid "[command interrupted %s]" msgstr "" #, python-format msgid "[command returned code %d %%s]" msgstr "" #, python-format msgid "[command completed successfully %s]" msgstr "" msgid "Running..." msgstr "" msgid "Failed!" msgstr "" msgid "Clea&r Log" msgstr "" msgid "TortoiseHg Prompt" msgstr "" msgid "Show Detail" msgstr "" msgid "Hide Detail" msgstr "" msgid "Confirm Exit" msgstr "" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" msgid "&Run" msgstr "" msgid "TortoiseHg Command Dialog" msgstr "" msgid "Command Error" msgstr "" #, python-format msgid "[Code: %d]" msgstr "" msgid "Merge" msgstr "" #, python-format msgid "Merge with %s" msgstr "" msgid "Patch Name Required" msgstr "" msgid "You must enter a patch name" msgstr "" msgctxt "start progress" msgid "Commit" msgstr "" msgctxt "start progress" msgid "MQ Action" msgstr "" msgctxt "start progress" msgid "Rollback" msgstr "" msgid "Commit Dialog Toolbar" msgstr "" msgid "Branch: " msgstr "" msgid "Copy message" msgstr "" msgid "Copy one of the recent commit messages" msgstr "" msgid "Show Issues" msgstr "" msgid "Please wait..." msgstr "" #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "" msgid "Issue Tracker" msgstr "" msgid "Show Issues..." msgstr "" msgid "Stop" msgstr "" msgid "### patch name ###" msgstr "" msgid "Commit changes" msgstr "" msgid "Commit" msgstr "" msgid "Amend current revision" msgstr "" msgid "Amend" msgstr "" msgid "Create a new patch" msgstr "" msgid "QNew" msgstr "" msgid "Refresh current patch" msgstr "" msgid "QRefresh" msgstr "" msgid "Confirm Branch Change" msgstr "" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "" msgid "Restart &Branch" msgstr "" msgid "&Commit to current branch" msgstr "" msgid "Cancel" msgstr "Wurung" msgid "Confirm New Branch" msgstr "" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "" msgid "Create &Branch" msgstr "" msgid "Close Branch: " msgstr "" msgid "New Branch: " msgstr "" #, python-format msgid "Selected Options: %s" msgstr "" msgid "Parent:" msgstr "" msgid "Patch name:" msgstr "" #, python-format msgid "Close %s branch" msgstr "" #, python-format msgid "Rollback commit to revision %d" msgstr "" msgid "Confirm Undo" msgstr "" msgid "Discard current commit message?" msgstr "" msgid "Message Translation Failure" msgstr "" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" msgid "&Replace" msgstr "" msgid "Nothing Committed" msgstr "" msgid "Please enter commit message" msgstr "" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" msgid "No files checked" msgstr "" msgid "No modified files checkmarked for commit" msgstr "" msgid "Confirm Add" msgstr "" msgid "Add selected untracked files?" msgstr "" msgid "Confirm Remove" msgstr "" msgid "Remove selected deleted files?" msgstr "" msgid "Nothing changed." msgstr "" msgctxt "window title" msgid "Commit" msgstr "" #, python-format msgid "%s - commit options" msgstr "" msgid "Set username:" msgstr "" msgid "Save in Repo" msgstr "" msgid "Save Global" msgstr "" msgid "Set Date:" msgstr "" msgid "Update" msgstr "" msgid "Push After Commit:" msgstr "" msgid "Auto Includes:" msgstr "" msgid "Recurse into subrepositories (--subrepos)" msgstr "" msgid "Unable to save username" msgstr "" msgid "Iniparse must be installed." msgstr "" msgid "Unable to write configuration file" msgstr "" msgid "Unable to save after commit push" msgstr "" msgid "Unable to save auto include list" msgstr "" msgid "Unable to save recurse in subrepos." msgstr "" msgid "Invalid date format" msgstr "" msgid "No username configured" msgstr "" #, python-format msgid "%s - commit" msgstr "" msgid "TortoiseHg Commit" msgstr "" msgid "Are you sure that you want to cancel the commit operation?" msgstr "" msgid "Compress changesets up to and including" msgstr "" msgid "Onto destination" msgstr "" msgid "Compress" msgstr "" #, python-format msgid "Compress - %s" msgstr "" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the compress" msgstr "" msgid "Changes have been moved, you must now commit" msgstr "" msgctxt "action button" msgid "Commit" msgstr "" msgid "Compress is complete, old history untouched" msgstr "" msgid "must be specified repository" msgstr "" msgid "must be specified 'type' in style" msgstr "" msgid "Git Commit:" msgstr "" msgid "Summary:" msgstr "" msgid "User:" msgstr "" msgid "Date:" msgstr "" msgid "Age:" msgstr "" msgid "Branch:" msgstr "" msgid "Close:" msgstr "" msgid "Tags:" msgstr "" msgid "Graft:" msgstr "" msgid "Transplant:" msgstr "" msgid "Obsolete state:" msgstr "" msgid "Perforce:" msgstr "" msgid "Subversion:" msgstr "" msgid "Converted From:" msgstr "" msgid "Original Parent:" msgstr "" msgid "No items to display" msgstr "" msgid "Use compact view" msgstr "" msgid "Patch:" msgstr "" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "" msgid "Select a GUI location to edit:" msgstr "" msgid "Select the toolbar or menu to change" msgstr "" msgid "Tools shown on selected location" msgstr "" msgid "Delete from list" msgstr "" msgid "Add to list" msgstr "" msgid "Add separator" msgstr "" msgid "List of all tools" msgstr "" msgid "New Tool ..." msgstr "" msgid "Edit Tool ..." msgstr "" msgid "Delete Tool" msgstr "" msgid "Type" msgstr "" msgid "Name" msgstr "" msgid "Command" msgstr "" msgid "New hook" msgstr "" msgid "Edit hook" msgstr "" msgid "Delete hook" msgstr "" msgid "Replace existing hook?" msgstr "" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" msgid "OK" msgstr "" msgid "Missing information" msgstr "" msgid "All items" msgstr "" msgid "Working directory" msgstr "" msgid "All revisions" msgstr "" msgid "All contexts" msgstr "" msgid "Fixed revisions" msgstr "" msgid "Applied patches" msgstr "" msgid "Applied patches or qparent" msgstr "" msgid "" msgstr "" msgid "Configure Custom Tool" msgstr "" msgid "Tool name" msgstr "" msgid "The tool name. It cannot contain spaces." msgstr "" #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" msgid "Tool label" msgstr "" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" msgid "Tooltip" msgstr "" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" msgid "Icon" msgstr "" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" msgid "On repowidget, show for" msgstr "" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" msgid "Show Output Log" msgstr "" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" msgid "You must set a tool name." msgstr "" msgid "The tool name cannot have any spaces in it." msgstr "" msgid "You must set a command to run." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" msgid "Configure Hook" msgstr "" msgid "Hook type" msgstr "" msgid "Select when your command will be run" msgstr "" msgid "The hook name. It cannot contain spaces." msgstr "" msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" msgid "You must set a valid hook type." msgstr "" msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "" msgid "Console" msgstr "" msgid "File &History / Annotate" msgstr "" msgid "Show the history of the selected file" msgstr "" msgid "Co&mpare File Revisions" msgstr "" msgid "Compare revisions of the selected file" msgstr "" msgid "Filter Histor&y" msgstr "" msgid "Query about changesets affecting the selected files" msgstr "" msgid "Diff &Changeset to Parent" msgstr "" msgid "Diff Changeset to Loc&al" msgstr "" msgid "&Diff to Parent" msgstr "" msgid "Diff to &Local" msgstr "" msgid "View changes to current in external diff tool" msgstr "" msgid "&View at Revision" msgstr "" msgid "View file as it appeared at this revision" msgstr "" msgid "&Save at Revision..." msgstr "" msgid "Save file as it appeared at this revision" msgstr "" msgid "Save file to" msgstr "" msgid "&Edit Local" msgstr "" msgid "&Open Local" msgstr "" msgid "E&xplore Local" msgstr "" msgid "Open parent folder of current file in the system file manager" msgstr "" msgid "&Copy Patch" msgstr "" msgid "Copy &Path" msgstr "" msgid "Copy full path of file(s) to the clipboard" msgstr "" msgid "&Revert to Revision..." msgstr "" msgid "Open S&ubrepository" msgstr "" msgid "Open the selected subrepository" msgstr "" msgid "E&xplore Folder" msgstr "" msgid "Open the selected folder in the system file manager" msgstr "" msgid "Open &Terminal" msgstr "" msgid "Open a shell terminal in the selected folder" msgstr "" msgid "Custom Tools" msgstr "" msgid "Diff &Local" msgstr "" msgid "&View Missing" msgstr "" msgid "View O&ther" msgstr "" msgid "Add &Largefiles..." msgstr "" msgid "&Forget" msgstr "" msgid "&Delete Unversioned..." msgstr "" msgid "Confirm Delete Unversioned" msgstr "" msgid "Delete the following unversioned files?" msgstr "" msgid "&Delete" msgstr "" msgid "Re&move Versioned" msgstr "" msgid "&Revert..." msgstr "" msgid "Uncommited merge - please select a parent revision" msgstr "" msgid "Revert files to local or other parent?" msgstr "" msgid "&Local" msgstr "" msgid "&Other" msgstr "" msgid "Confirm Revert" msgstr "" msgid "Revert local file changes?" msgstr "" msgid "&Revert with backup" msgstr "" msgid "&Discard changes" msgstr "" msgid "Revert the following files?" msgstr "" msgid "&Revert" msgstr "" msgid "&Copy..." msgstr "" msgid "Re&name..." msgstr "" msgid "&Ignore..." msgstr "" msgid "Edit Re&jects" msgstr "" msgid "Manually resolve rejected patch chunks" msgstr "" msgid "De&tect Renames..." msgstr "" msgid "&Mark Resolved" msgstr "" msgid "&Mark Unresolved" msgstr "" msgid "Restart Mer&ge" msgstr "" msgid "Was renamed from" msgstr "" msgid "Restart Merge &with" msgstr "" msgid "Display the file anyway" msgstr "" msgid "Diff not displayed: " msgstr "" #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid "File is binary" msgstr "" msgid "File may be binary (maximum line length exceeded)" msgstr "" msgid "File or diffs not displayed: " msgstr "" msgid " (was added)" msgstr "" #, python-format msgid " (copied from %s)" msgstr "" #, python-format msgid " (renamed from %s)" msgstr "" msgid " (is a symlink)" msgstr "" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid " (was deleted)" msgstr "" msgid " (was added, now missing)" msgstr "" msgid " (is unversioned)" msgstr "" msgid "exec mode has been set" msgstr "" msgid "exec mode has been unset" msgstr "" #, python-format msgid "changeset: %s" msgstr "" msgid "Initial revision" msgstr "" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" msgid "Subrepo created and set to initial revision." msgstr "" msgid "Subrepo initialized to revision:" msgstr "" msgid "Subrepo removed from repository." msgstr "" msgid "Previously the subrepository was at the following revision:" msgstr "" msgid "Subrepo was not changed." msgstr "" msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "" msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "" msgid "Subrepo state is:" msgstr "" msgid "Revision has changed to:" msgstr "" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "" msgid "From:" msgstr "" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" msgid "Subrepository not found in the working directory." msgstr "" msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" msgid "Not a Mercurial subrepo, not previewable" msgstr "" #, python-format msgid "Error previewing subrepo: %s" msgstr "" msgid "Subrepo may be damaged or inaccessible." msgstr "" msgid "The subrepository is dirty." msgstr "" msgid "File Status:" msgstr "" msgid "(is a changed sub-repository)" msgstr "" msgid "(is an unchanged sub-repository)" msgstr "" msgid "(is a dirty sub-repository)" msgstr "" msgid "(is a new sub-repository)" msgstr "" msgid "(is a removed sub-repository)" msgstr "" msgid "(is a changed and dirty sub-repository)" msgstr "" msgid "(is a new and dirty sub-repository)" msgstr "" msgid "open..." msgstr "" #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "" msgid "File History Log Columns" msgstr "" msgid "Back" msgstr "" msgid "Forward" msgstr "" msgid "Diff Selected &Changesets" msgstr "" msgid "&Diff Selected File Revisions" msgstr "" msgid "Show Revision &Details" msgstr "" msgid "Too many rows selected for menu" msgstr "" msgid "File Differences Log Columns" msgstr "" msgid "Next diff" msgstr "" msgid "Previous diff" msgstr "" msgid "Unicode" msgstr "" msgid "Western Europe" msgstr "" msgid "Unified Chinese" msgstr "" msgid "Traditional Chinese" msgstr "" msgid "Korean" msgstr "" msgid "Japanese" msgstr "" msgid "Thai" msgstr "" msgid "Central and Eastern Europe" msgstr "" msgid "Cyrillic" msgstr "" msgid "Russian" msgstr "" msgid "Ukrainian" msgstr "" msgid "Greek" msgstr "" msgid "Turkish" msgstr "" msgid "Arabic" msgstr "" msgid "Hebrew" msgstr "" msgid "Vietnamese" msgstr "" msgid "Baltic" msgstr "" msgid "Southern Europe" msgstr "" msgid "Nordic" msgstr "" msgid "Celtic" msgstr "" msgid "South-Eastern Europe" msgstr "" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "" msgid "View change as unified diff output" msgstr "" msgid "View change in context of file" msgstr "" msgid "Annotate with revision numbers" msgstr "" msgid "Next Diff" msgstr "" msgid "Previous Diff" msgstr "" msgid "Open shelve tool" msgstr "" msgid "&Auto Detect" msgstr "" msgid "Show changes from first parent" msgstr "" msgid "Show changes from second parent" msgstr "" msgid "E&ncoding" msgstr "" msgid "&Search in Current File" msgstr "" msgid "Search in All &History" msgstr "" msgid "Go to Line" msgstr "" #, python-format msgid "Enter line number (1 - %d)" msgstr "" msgid "Show &Author" msgstr "" msgid "Show &Date" msgstr "" msgid "Show &Revision" msgstr "" msgid "Annotate Op&tions" msgstr "" msgid "Search Selected Text" msgstr "" msgid "In Current &File" msgstr "" msgid "In &Current Revision" msgstr "" msgid "In &Original Revision" msgstr "" msgid "In All &History" msgstr "" msgid "Go to" msgstr "" msgid "View File at" msgstr "" msgid "Diff File to" msgstr "" msgid "&Originating Revision" msgstr "" msgid "&Parent Revision" msgstr "" #, python-format msgid "&Parent Revision (%d)" msgstr "" msgid "&Mark Excluded Changes" msgstr "" msgid "(excluded from the next commit)" msgstr "" msgid "Interrupted graft operation found" msgstr "" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" msgid "Continue or abort interrupted graft operation?" msgstr "" msgid "To graft destination" msgstr "" msgid "Use my user name instead of graft committer user name" msgstr "" msgid "Use current date" msgstr "" msgid "Append graft info to log message" msgstr "" msgid "Graft" msgstr "" msgid "Abort" msgstr "" #, python-format msgid "Graft - %s" msgstr "" msgid "Graft changeset" msgstr "" #, python-format msgid "Graft changeset #%d of %d" msgstr "" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" msgid "You may continue or start the graft" msgstr "" msgid "Graft is complete" msgstr "" msgid "Graft failed" msgstr "" msgid "Graft aborted" msgstr "" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" msgid "You may continue the graft" msgstr "" msgid "Exiting with an unfinished graft is not recommended." msgstr "" msgid "Consider aborting the graft first." msgstr "" msgid "&Exit" msgstr "" msgid "### regular expression search pattern ###" msgstr "" msgid "Regexp:" msgstr "" msgid "Ignore case" msgstr "" msgid "Search" msgstr "" msgid "Working Copy" msgstr "" msgid "All History" msgstr "" msgid "Report only the first match per file" msgstr "" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "" msgid "Includes:" msgstr "" msgid "Excludes:" msgstr "" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" #, python-format msgid "\"%s\" removed from search history" msgstr "" #, python-format msgid "\"%s\" removed from path history" msgstr "" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "" #, python-format msgid "grep: %s\n" msgstr "" #, python-format msgid "%d matches found" msgstr "" msgid "No matches found" msgstr "" msgid "Searching" msgstr "" msgid "history" msgstr "" msgid "Interrupted" msgstr "" msgid "files" msgstr "" #, python-format msgid "Skipping %s, unable to read" msgstr "" msgid "Vi&ew File" msgstr "" msgid "&View Changeset" msgstr "" msgid "Annotate &File" msgstr "" msgid "File" msgstr "" msgid "Line" msgstr "" msgid "Rev" msgstr "" msgid "User" msgstr "" msgid "Match Text" msgstr "" msgid "TortoiseHg Search" msgstr "" #, python-format msgid "Detect Copies/Renames in %s" msgstr "" msgid "Unrevisioned Files" msgstr "" msgid "Refresh file list" msgstr "" #, python-format msgid "Min Similarity: %d%%" msgstr "" msgid "Only consider deleted files" msgstr "" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "" msgid "Find Renames" msgstr "" msgid "Find copy and/or rename sources" msgstr "" msgid "Candidate Matches" msgstr "" msgid "Accept All Matches" msgstr "" msgid "Accept Selected Matches" msgstr "" msgid "Differences from Source to Dest" msgstr "" msgid "Search already in progress" msgstr "" msgid "Cannot start a new search" msgstr "" msgid "No files to find" msgstr "" msgid "There are no files that may have been renamed" msgstr "" msgid "Multiple sources chosen" msgstr "" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" #. i18n: percent format #, python-format msgid "%d%%" msgstr "" msgid "Source" msgstr "" msgid "Dest" msgstr "" msgid "% Match" msgstr "" msgid "Sending Email" msgstr "" msgid "Email" msgstr "" msgid "To:" msgstr "" msgid "Cc:" msgstr "" msgid "In-Reply-To:" msgstr "" msgid "Message identifier to reply to, for threading" msgstr "" msgid "Flag:" msgstr "" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" msgid "Send changesets as Hg patches" msgstr "" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" msgid "Use extended (git) patch format" msgstr "" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" msgid "Plain, do not prepend Hg header" msgstr "" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" msgid "Send single binary bundle, not patches" msgstr "" msgid "send patches as part of the email body" msgstr "" msgid "body" msgstr "" msgid "send patches as attachments" msgstr "" msgid "attach" msgstr "" msgid "send patches as inline attachments" msgstr "" msgid "inline" msgstr "" msgid "add diffstat output to messages" msgstr "" msgid "diffstat" msgstr "" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" msgid "Write patch series (bundle) description" msgstr "" msgid "Subject:" msgstr "" msgid "Changesets" msgstr "" msgid "Select &All" msgstr "" msgid "Select &None" msgstr "" msgid "Edit" msgstr "" msgid "Preview" msgstr "" msgid "&Settings" msgstr "" msgid "Send &Email" msgstr "" msgid "&Close" msgstr "" #, python-format msgid "Ignore filter - %s" msgstr "" msgid "Glob" msgstr "" msgid "Regexp" msgstr "" msgid "Add" msgstr "" msgid "Edit File" msgstr "" msgid "Ignore Filter" msgstr "" msgid "Untracked Files" msgstr "" msgid "Backspace or Del to remove row(s)" msgstr "" msgid "Add ignore filter..." msgstr "" msgid "selected files" msgstr "" msgid "Ignore " msgstr "" msgid "Invalid glob expression" msgstr "" msgid "Invalid regexp expression" msgstr "" msgid "Unable to read repository status" msgstr "" msgid "New file created" msgstr "" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" msgid "Unable to write .hgignore file" msgstr "" msgid "Copy working directory files from skeleton" msgstr "" msgid "Create special files (.hgignore, ...)" msgstr "" msgid "Make repo compatible with Mercurial <1.7" msgstr "" msgid "New Repository" msgstr "" msgid "&Create" msgstr "" msgid "Unable to create a config file" msgstr "" msgid "Insufficient access rights." msgstr "" msgid "Show Log" msgstr "" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" msgid "Add as &Largefiles" msgstr "" msgid "Add as &Normal Files" msgstr "" msgid "Invalid Patterns" msgstr "" msgid "Failed to process largefiles.patterns." msgstr "" msgid "Word docs (*.doc *.docx)" msgstr "" msgid "PDF docs (*.pdf)" msgstr "" msgid "Excel files (*.xls *.xlsx)" msgstr "" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "" msgid "Refresh lock information" msgstr "" msgid "Lock a file not described in .hglocks" msgstr "" msgid "Stop current operation" msgstr "" msgid "Locked And Lockable Files:" msgstr "" msgid "Path" msgstr "" msgid "Locking User" msgstr "" msgid "Purpose" msgstr "" msgid "Simplelock extension not enabled" msgstr "" msgid "Please enable and configure simplelock" msgstr "" msgid "Open a (nonmergable) file you wish to be locked" msgstr "" msgid "File was not within current repository" msgstr "" #, python-format msgid "Locking %s" msgstr "" #, python-format msgid "Unlocking %s" msgstr "" msgid "Refreshing locks..." msgstr "" #, python-format msgid "Lock of %s successful" msgstr "" #, python-format msgid "Lock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s successful" msgstr "" msgid "Ready, double click to lock or unlock" msgstr "" msgid "Ready" msgstr "" msgid "You can only release your own locks" msgstr "" msgid "Find revisions matching fields of:" msgstr "" msgid "Revision to Match:" msgstr "" msgid "Fields to match:" msgstr "" msgid "Summary (first description line)" msgstr "" msgid "Description" msgstr "" msgid "Author" msgstr "" msgid "Date" msgstr "" msgid "Files" msgstr "" msgid "Diff contents" msgstr "" msgid "Subrepo states" msgstr "" msgid "Branch" msgstr "" msgid "Phase" msgstr "" msgid "&Match" msgstr "" #, python-format msgid "Find matches - %s" msgstr "" msgid "Revisions to Match:" msgstr "" #, python-format msgid "Match any of %d revisions" msgstr "" msgid "Unknown revision!" msgstr "" msgid "Parse Error!" msgstr "" #, python-format msgid "Merge - %s" msgstr "" msgid "Do you want to exit?" msgstr "" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" msgid "Prepare to merge" msgstr "" msgid "Verify merge targets and ensure your working directory is clean." msgstr "" msgid "Not a head revision!" msgstr "" msgid "Merge from (other revision)" msgstr "" msgid "Merge to (working directory)" msgstr "" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Or use:" msgstr "" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "" msgid "Discard all changes from the other revision" msgstr "" msgid "&Discard" msgstr "" msgid "Confirm Discard Changes" msgstr "" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" msgctxt "working dir state" msgid "Clean" msgstr "" msgid "Merging..." msgstr "" msgid "Automatically advance to next page when merge is complete." msgstr "" #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" msgid "" "No merge conflicts, ready to commit or review" msgstr "" msgid "Commit merge results" msgstr "" msgid "Commit Options" msgstr "" msgid "Commit Now" msgstr "" msgid "Commit Later" msgstr "" msgid "Merge changeset" msgstr "" msgid "Syntax Highlighting" msgstr "" msgid "Paste &Filenames" msgstr "" msgid "App&ly Format" msgstr "" msgid "C&onfigure Format" msgstr "" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "" msgid "&Commit to Queue..." msgstr "" msgid "Create &New Queue..." msgstr "" msgid "&Rename Active Queue..." msgstr "" msgid "&Delete Queue..." msgstr "" msgid "&Purge Queue..." msgstr "" msgid "Create Patch Queue" msgstr "" msgid "New patch queue name" msgstr "" msgid "Create" msgstr "" msgid "Rename Patch Queue" msgstr "" #, python-format msgid "Rename patch queue '%s' to" msgstr "" msgid "Rename" msgstr "" msgid "Delete Patch Queue" msgstr "" msgid "Delete reference to" msgstr "" msgid "Delete" msgstr "" msgid "Purge Patch Queue" msgstr "" msgid "Remove patch directory of" msgstr "" msgid "Purge" msgstr "" msgid "Rename Patch" msgstr "" #, python-format msgid "Rename patch %s to:" msgstr "" msgid "no guards" msgstr "" msgid "Patch Queue" msgstr "" msgctxt "MQ QPush" msgid "Push" msgstr "" msgid "Apply one patch" msgstr "" msgctxt "MQ QPush" msgid "Push all" msgstr "" msgid "Apply all patches" msgstr "" msgid "Pop" msgstr "" msgid "Unapply one patch" msgstr "" msgid "Pop all" msgstr "" msgid "Unapply all patches" msgstr "" msgid "Go &to Patch" msgstr "" msgid "&Apply Only This Patch" msgstr "" msgid "Apply only the selected patch" msgstr "" msgid "&Finish Patch" msgstr "" msgid "Move applied patches into repository history" msgstr "" msgid "&Delete Patches..." msgstr "" msgid "Delete selected patches" msgstr "" msgid "Re&name Patch..." msgstr "" msgid "Set &Guards..." msgstr "" msgid "Configure guards for selected patch" msgstr "" msgid "Patch Queue Actions Toolbar" msgstr "" msgid "Configure guards" msgstr "" #, python-format msgid "Input new guards for %s:" msgstr "" msgid "Confirm patch queue switch" msgstr "" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "" #, python-format msgid "Guards: %d/%d" msgstr "" msgid "MQ options" msgstr "" msgid "Force push or pop (--force)" msgstr "" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "" msgid "Submitting p4 changelist..." msgstr "" msgid "Reverting p4 changelist..." msgstr "" msgid "Patch Branch Toolbar" msgstr "" msgid "Merge all pending dependencies" msgstr "" msgid "Backout current patch branch" msgstr "" msgid "Backport part of a changeset to a dependency" msgstr "" msgid "Start a new patch branch" msgstr "" msgid "Edit patch dependency graph" msgstr "" msgid "will be closed" msgstr "" #, python-format msgid "needs merge of %i heads\n" msgstr "" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "" #, python-format msgid "needs merge with %s\n" msgstr "" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "" msgid "&Goto (update workdir)" msgstr "" msgid "&Merge" msgstr "" msgid "No patch branch selected" msgstr "" msgid "No editor found" msgstr "" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" msgid "Graph" msgstr "" msgid "Status" msgstr "" msgid "Title" msgstr "" msgid "Message" msgstr "" msgid "New Patch Branch" msgstr "" msgid "Patch message:" msgstr "" msgid "Patch date:" msgstr "" msgid "Patch user:" msgstr "" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" msgid "Review Board" msgstr "" msgid "Password:" msgstr "" msgid "Error" msgstr "" #, python-format msgid "Review draft posted to %s\n" msgstr "" #, python-format msgid "Review published to %s\n" msgstr "" msgid "Success" msgstr "" msgid "Repository ID:" msgstr "" msgid "Post Review" msgstr "" msgid "Review ID:" msgstr "" msgid "Update the fields of this existing request" msgstr "" msgid "Update Review" msgstr "" msgid "Create diff with all outgoing changes" msgstr "" msgid "Create diff with all changes on this branch" msgstr "" msgid "Publish request immediately" msgstr "" msgid "%p%" msgstr "" msgid "Connecting to Review Board..." msgstr "" msgid "Target:" msgstr "" msgid "Do not modify working copy (-k/--keep)" msgstr "" #, python-format msgid "Prune - %s" msgstr "" msgid "&Prune" msgstr "" msgid "No unknown files found" msgstr "" msgid "No ignored files found" msgstr "" msgid "No trash files found" msgstr "" msgid "Delete empty folders" msgstr "" msgid "Preserve files beginning with .hg" msgstr "" #, python-format msgid "%s - purge" msgstr "" msgid "Checking" msgstr "" msgid "Ready to purge." msgstr "" #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "" msgstr[1] "" msgid "Confirm file deletions" msgstr "" msgid "Are you sure you want to delete these files and/or folders?" msgstr "" msgid "Deletion failures" msgstr "" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "" msgstr[1] "" msgid "Deleting trash folder..." msgstr "" #, python-format msgid "Deleted %d files" msgstr "" #, python-format msgid "Deleted %d files and %d folders" msgstr "" msgid "Delete Patches" msgstr "" msgid "Remove patches from queue?" msgstr "" msgid "Keep patch files" msgstr "" #, python-format msgid "Patch fold - %s" msgstr "" msgid "New patch message:" msgstr "" msgid "Patches to fold" msgstr "" msgid "&Undo" msgstr "" msgid "&Redo" msgstr "" msgid "Cu&t" msgstr "" msgid "&Copy" msgstr "" msgid "&Paste" msgstr "" msgid "&Editor Options" msgstr "" msgid "&Wrap" msgstr "" msgctxt "wrap mode" msgid "&None" msgstr "" msgid "&Word" msgstr "" msgid "&Character" msgstr "" msgid "White&space" msgstr "" msgid "&Visible" msgstr "" msgid "&Invisible" msgstr "" msgid "&AfterIndent" msgstr "" msgid "&TAB Inserts" msgstr "" msgid "&Auto" msgstr "" msgid "&TAB" msgstr "" msgid "&Spaces" msgstr "" msgid "EOL &Visibility" msgstr "" msgid "EOL &Mode" msgstr "" msgid "&Windows" msgstr "" msgid "&Unix" msgstr "" msgid "&Mac" msgstr "" msgid "&Auto-Complete" msgstr "" msgid "### regular expression ###" msgstr "" msgid "Regular expression search pattern" msgstr "" msgid "Wrap search" msgstr "" msgid "Prev" msgstr "" msgid "Next" msgstr "" msgid "Unable to read file" msgstr "" msgid "Could not open the specified file for reading." msgstr "" msgid "This appears to be a binary file." msgstr "" msgid "An error occurred while reading the file." msgstr "" msgid "Text Translation Failure" msgstr "" msgid "Could not translate the file content from native encoding." msgstr "" msgid "Several characters would be lost." msgstr "" msgid "Unable to write file" msgstr "" msgid "Could not translate the file content to native encoding." msgstr "" msgid "Could not open the specified file for writing." msgstr "" msgid "An error occurred while writing the file." msgstr "" msgid "Try refreshing your repository." msgstr "" #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
                                                            Please edit your config" msgstr "" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
                                                            Please fix your config" msgstr "" #, python-format msgid "Operation aborted:

                                                            %(arg0)s." msgstr "" msgid "Repository is locked" msgstr "" msgid "hint:" msgstr "" msgid "Repository Error" msgstr "" msgid "No visual editor configured" msgstr "" msgid "Please configure a visual editor." msgstr "" msgid "Editor launch failure" msgstr "" msgid "Failed to open path in terminal" msgstr "" #, python-format msgid "\"%s\" is not a valid directory" msgstr "" #, python-format msgid "Invalid configuration: %s" msgstr "" msgid "Unable to start the following command:" msgstr "" msgid "No shell configured" msgstr "" msgid "A terminal shell must be configured" msgstr "" msgid "Please enter a username" msgstr "" msgid "You must identify yourself to Mercurial" msgstr "" msgid "Unable to translate input to local encoding." msgstr "" msgid "Checkmark files to add" msgstr "" msgid "Checkmark files to forget" msgstr "" msgid "Forget" msgstr "" msgid "Checkmark files to revert" msgstr "" msgid "Revert" msgstr "" msgid "Checkmark files to remove" msgstr "" msgid "Remove" msgstr "" #, python-format msgid "%s - hg %s" msgstr "" msgid "Do not save backup files (*.orig)" msgstr "" msgid "Force removal of modified files (--force)" msgstr "" msgid "Add &Largefiles" msgstr "" msgid "No files selected" msgstr "" msgid "No operation to perform" msgstr "" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" msgid "Remove &Unmodified Files" msgstr "" msgid "Remove &All Selected Files" msgstr "" msgid "Rebase changeset and descendants" msgstr "" msgid "To rebase destination" msgstr "" msgid "Swap source and destination" msgstr "" msgid "Keep original changesets (--keep)" msgstr "" msgid "Keep original branch names (--keepbranches)" msgstr "" msgid "Collapse the rebased changesets (--collapse)" msgstr "" msgid "Rebase entire source branch (-b/--base)" msgstr "" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "" msgid "Rebase" msgstr "" #, python-format msgid "Rebase - %s" msgstr "" msgid "" "Before rebase, you must
                                                            commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the rebase" msgstr "" msgid "Rebase is complete" msgstr "" msgid "Rebase failed" msgstr "" msgid "Rebase aborted" msgstr "" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" msgid "Exiting with an unfinished rebase is not recommended." msgstr "" msgid "Consider aborting the rebase first." msgstr "" #, python-format msgid "Merge rejected patch chunks into %s" msgstr "" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "" msgid "Mark this chunk as unresolved" msgstr "" msgid "Reload File" msgstr "" msgid "Are you sure you want to reload this file?" msgstr "" msgid "All unsaved changes will be lost." msgstr "" msgid "Warning" msgstr "" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" msgid "Copy source -> destination" msgstr "" msgid "Copy Error" msgstr "" msgid "Rename Error" msgstr "" msgid "Select Source File" msgstr "" msgid "Select Source Folder" msgstr "" msgid "Source does not exist." msgstr "" msgid "The source must be within the repository tree." msgstr "" msgid "The destination must be within the repository tree." msgstr "" msgid "Destination file already exists." msgstr "" msgid "Are you sure you want to overwrite it ?" msgstr "" #, python-format msgid "Copy - %s" msgstr "" #, python-format msgid "Rename - %s" msgstr "" msgid "Show all" msgstr "" msgid "### revision set query ###" msgstr "" msgid "Clear current query and query text" msgstr "" msgid "Trigger revision set query" msgstr "" msgid "Open advanced query editor" msgstr "" msgid "Delete selected query from history" msgstr "" msgid "filter" msgstr "" msgid "Toggle filtering of non-matched changesets" msgstr "" msgid "Show/Hide hidden changesets" msgstr "" msgid "Toggle graft relations visibility" msgstr "" msgid "Keyword Search" msgstr "" msgid "Revision Set" msgstr "" msgid "(unsaved)" msgstr "" msgid "Display graph the named branch only" msgstr "" msgid "Display only active branches" msgstr "" msgid "Display closed branches" msgstr "" msgid "Include all ancestors" msgstr "" msgctxt "column header" msgid "Graph" msgstr "" msgctxt "column header" msgid "Rev" msgstr "" msgctxt "column header" msgid "Branch" msgstr "" msgctxt "column header" msgid "Description" msgstr "" msgctxt "column header" msgid "Author" msgstr "" msgctxt "column header" msgid "Tags" msgstr "" msgctxt "column header" msgid "Latest tags" msgstr "" msgctxt "column header" msgid "Node" msgstr "" msgctxt "column header" msgid "Git Commit" msgstr "" msgctxt "column header" msgid "Age" msgstr "" msgctxt "column header" msgid "Local Time" msgstr "" msgctxt "column header" msgid "UTC Time" msgstr "" msgctxt "column header" msgid "Changes" msgstr "" msgctxt "column header" msgid "Converted From" msgstr "" msgctxt "column header" msgid "Phase" msgstr "" msgctxt "column header" msgid "Filename" msgstr "" msgid "Searching..." msgstr "" #, python-format msgid "filling (%d)" msgstr "" msgid "Mercurial User" msgstr "" msgid "Repository Registry" msgstr "" msgid "Show &Paths" msgstr "" msgid "Show S&hort Paths" msgstr "" msgid "&Scan Repositories at Startup" msgstr "" msgid "Scan &Remote Repositories" msgstr "" msgid "&Refresh Repository List" msgstr "" msgid "Refresh the Repository Registry list" msgstr "" msgid "&Open" msgstr "" msgid "Open the repository in a new tab" msgstr "" msgid "&Open All" msgstr "" msgid "Open all repositories in new tabs" msgstr "" msgid "New &Group" msgstr "" msgid "Create a new group" msgstr "" msgid "Rename the entry" msgstr "" msgid "Settin&gs" msgstr "" msgid "View the repository's settings" msgstr "" msgid "Re&move from Registry" msgstr "" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" msgid "Clon&e..." msgstr "" msgid "Clone Repository" msgstr "" msgid "E&xplore" msgstr "" msgid "Open the repository in a file browser" msgstr "" msgid "&Terminal" msgstr "" msgid "Open a shell terminal in the repository root" msgstr "" msgid "&Add Repository..." msgstr "" msgid "Add a repository to this group" msgstr "" msgid "A&dd Subrepository..." msgstr "" msgid "Convert an existing repository into a subrepository" msgstr "" msgid "Remo&ve Subrepository..." msgstr "" msgid "Remove this subrepository from the current revision" msgstr "" msgid "Copy the root path of the repository to the clipboard" msgstr "" msgid "Sort by &Name" msgstr "" msgid "Sort the group by short name" msgstr "" msgid "Sort by &Path" msgstr "" msgid "Sort the group by full path" msgstr "" msgid "&Sort by .hgsub" msgstr "" msgid "Order the subrepos as in .hgsub" msgstr "" msgid "Select repository directory to add" msgstr "" msgid "Select an existing repository to add as a subrepo" msgstr "" msgid "Cannot add subrepository" msgstr "" #, python-format msgid "%s is not a valid repository" msgstr "" #, python-format msgid "\"%s\" is not a folder" msgstr "" msgid "A repository cannot be added as a subrepo of itself" msgstr "" #, python-format msgid "" "The selected folder:

                                                            %s

                                                            is not inside the target repository." "

                                                            This may be allowed but is greatly discouraged.
                                                            If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" msgid "Cannot open repository" msgstr "" #, python-format msgid "The selected repository:

                                                            %s

                                                            cannot be open!" msgstr "" msgid "Subrepository already exists" msgstr "" #, python-format msgid "" "The selected repository:

                                                            %s

                                                            is already a subrepository of:" "

                                                            %s

                                                            as: \"%s\"" msgstr "" msgid "Failed to add subrepository" msgstr "" #, python-format msgid "Cannot open the .hgsub file in:

                                                            %s" msgstr "" msgid "Failed to add repository" msgstr "" #, python-format msgid "The .hgsub file already contains the line:

                                                            %s" msgstr "" msgid "Subrepo added to .hgsub file" msgstr "" #, python-format msgid "" "The selected subrepo:

                                                            %s

                                                            has been added to the .hgsub " "file of the repository:

                                                            %s

                                                            Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" #, python-format msgid "Cannot update the .hgsub file in:

                                                            %s" msgstr "" msgid "Could not open .hgsub file" msgstr "" msgid "Cannot read the .hgsub file.

                                                            Subrepository removal failed." msgstr "" msgid "Subrepository not found" msgstr "" msgid "" "The selected subrepository was not found on the .hgsub file.

                                                            Perhaps it " "has already been removed?" msgstr "" msgid "&Yes" msgstr "" msgid "&No" msgstr "" msgid "Remove the selected repository?" msgstr "" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" msgid "Subrepository removed from .hgsub" msgstr "" msgid "" "The selected subrepository has been removed from the .hgsub file.

                                                            Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" msgid "Could not update .hgsub file" msgstr "" msgid "Cannot update the .hgsub file.

                                                            Subrepository removal failed." msgstr "" #, python-format msgid "Unsupported repository type (%s)" msgstr "" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "" msgid "New Group" msgstr "" msgid "Confirm Delete" msgstr "" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "" msgid "Could not get subrepository list" msgstr "" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

                                                            %s" msgstr "" msgid "Could not open some subrepositories" msgstr "" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

                                                            %s

                                                            The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

                                                            %s" msgstr "" msgid "Updating repository registry" msgstr "" #, python-format msgid "Loading repository %s" msgstr "" msgid "Repository Registry updated" msgstr "" msgid "Close tab" msgstr "" msgid "Close other tabs" msgstr "" msgid "Undo close tab" msgstr "" msgid "Reopen last closed tab" msgstr "" msgid "Undo close other tabs" msgstr "" msgid "Reopen last closed tab group" msgstr "" msgid "Failed to open repository" msgstr "" msgid "&Sort" msgstr "" #, python-format msgid "Local Repository %s" msgstr "" #, python-format msgid "" "An exception happened while loading the subrepos of:

                                                            \"%s\"

                                                            " msgstr "" #, python-format msgid "The exception error message was:

                                                            %s

                                                            " msgstr "" msgid "Click OK to continue or Abort to exit." msgstr "" msgid "Error loading subrepos" msgstr "" msgid "Unable to update repository name" msgstr "" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "" msgid "default" msgstr "" msgid "C&hoose Log Columns..." msgstr "" msgid "&Resize Columns" msgstr "" #, python-format msgid "Goto ancestor of %s and %s" msgstr "" #, python-format msgid "Can't find revision '%s'" msgstr "" msgid "Drag to change order" msgstr "" msgid "Workbench Log Columns" msgstr "" msgctxt "tab tooltip" msgid "Revision details" msgstr "" msgctxt "tab tooltip" msgid "Commit" msgstr "" msgctxt "tab tooltip" msgid "Search" msgstr "" msgctxt "tab tooltip" msgid "Console log" msgstr "" msgctxt "tab tooltip" msgid "Synchronize" msgstr "" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "" #, python-format msgid "%s " msgstr "" #, python-format msgid "Found %d incoming changesets" msgstr "" msgid "Pull" msgstr "" msgid "Pull incoming changesets into your repository" msgstr "" msgid "Reject incoming changesets" msgstr "" #, python-format msgid "Push current branch (%s)" msgstr "" #, python-format msgid "Push up to current revision (#%d)" msgstr "" #, python-format msgid "Push up to revision #%d" msgstr "" msgid "Push all" msgstr "" msgid "no outgoing changesets" msgstr "" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets" msgstr "" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "" msgid "Nothing to push" msgstr "" msgid "No revision found" msgstr "" #, python-format msgid "%s - verify repository" msgstr "" #, python-format msgid "%s - recover repository" msgstr "" msgid "No transaction available" msgstr "" msgid "There is no rollback transaction available" msgstr "" msgid "Undo last commit?" msgstr "" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "" msgid "Undo last transaction?" msgstr "" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "" msgid "Unable to determine working copy revision\n" msgstr "" msgid "Remove current working revision?" msgstr "" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" msgid "Tab cannot exit" msgstr "" msgid "Pus&h" msgstr "" msgid "Push to &Here" msgstr "" msgid "Push Selected &Branch" msgstr "" msgid "Push &All" msgstr "" msgid "&Update..." msgstr "" msgid "Bro&wse at Revision" msgstr "" msgid "&Merge with Local..." msgstr "" msgid "&Tag..." msgstr "" msgid "Boo&kmark..." msgstr "" msgid "Top&ic..." msgstr "" msgid "Sig&n..." msgstr "" msgid "&Backout..." msgstr "" msgid "Revert &All Files..." msgstr "" msgid "Copy &Hash" msgstr "" msgid "E&xport" msgstr "" msgid "E&xport Patch..." msgstr "" msgid "&Email Patch..." msgstr "" msgid "&Archive..." msgstr "" msgid "&Bundle Rev and Descendants..." msgstr "" msgid "Change &Phase to" msgstr "" msgid "&Graft to Local..." msgstr "" msgid "Modi&fy History" msgstr "" msgid "&Unapply Patch" msgstr "" msgid "Import to &MQ" msgstr "" msgid "MQ &Options" msgstr "" msgid "&Rebase..." msgstr "" msgid "&Prune..." msgstr "" msgid "&Strip..." msgstr "" msgid "Post to Re&view Board..." msgstr "" msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "" msgid "Write diff file" msgstr "" msgid "Unable to write diff file" msgstr "" msgid "Unable to compress history" msgstr "" msgid "Selected changeset pair not related" msgstr "" msgid "Visual Diff..." msgstr "" msgid "Export Diff..." msgstr "" msgid "Export Selected..." msgstr "" msgid "Email Selected..." msgstr "" msgid "Copy Selected as Patch" msgstr "" msgid "Archive DAG Range..." msgstr "" msgid "Export DAG Range..." msgstr "" msgid "Email DAG Range..." msgstr "" msgid "Bundle DAG Range..." msgstr "" msgid "Bisect - Good, Bad..." msgstr "" msgid "Bisect - Bad, Good..." msgstr "" msgid "Compress History..." msgstr "" msgid "Rebase..." msgstr "" msgid "Goto common ancestor" msgstr "" msgid "Graft Selected to local..." msgstr "" msgid "&Prune Selected..." msgstr "" msgid "Post Selected to Review Board..." msgstr "" msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "" msgid "Apply onto original parent" msgstr "" msgid "Apply only this patch" msgstr "" msgid "Fold patches..." msgstr "" msgid "Delete patches..." msgstr "" msgid "Rename patch..." msgstr "" msgid "Pull to here..." msgstr "" msgid "Visual diff..." msgstr "" msgid "Export patch" msgstr "" msgid "Patch Files (*.patch)" msgstr "" msgid "Cannot export revision" msgstr "" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" msgid "There is already an existing folder with that same name." msgstr "" msgid "Replace" msgstr "" msgid "Append" msgstr "" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" msgid "What do you want to do?\n" msgstr "" msgid "Replace the existing patch files.\n" msgstr "" msgid "Append the changes to the existing patch files.\n" msgstr "" msgid "Abort the export operation.\n" msgstr "" msgid "Patch files already exist" msgstr "" msgid "Patch exported" msgstr "" #, python-format msgid "" "Revision #%d (%s) was exported to:

                                                            %s%s%s" msgstr "" msgid "Patches exported" msgstr "" #, python-format msgid "%d patches were exported to:

                                                            %s" msgstr "" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

                                                            Are you sure you want to use revert?

                                                            (use " "update to checkout another revision)" msgstr "" msgid "Filter b&y" msgstr "" msgid "&Ancestors and Descendants" msgstr "" msgid "A&uthor" msgstr "" msgid "&Branch" msgstr "" msgid "&More Options..." msgstr "" msgid "Unable to merge" msgstr "" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "" msgid "Unable to backout" msgstr "" msgid "Write bundle" msgstr "" msgid "Backwards phase change requested" msgstr "" msgid "Do you really want to make this revision secret?" msgstr "" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" msgid "&Make secret" msgstr "" msgid "&Cancel" msgstr "" msgid "Do you really want to force a backwards phase transition?" msgstr "" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" msgid "&Force" msgstr "" msgid "Cannot import selected revision" msgstr "" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" msgid "Invalid command" msgstr "" msgid "The selected command is empty" msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" msgid "Failed to execute custom TortoiseHg command" msgstr "" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "" msgid "Failed to execute custom command" msgstr "" #, python-format msgid "The command \"%s\" could not be executed." msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" msgid "&Edit Toolbar" msgstr "" msgid "&Refresh" msgstr "" msgid "&Filter Toolbar" msgstr "" #, python-format msgid "TortoiseHg: %s" msgstr "" msgid "S&tatus Bar" msgstr "" #, python-format msgid "Resolve Conflicts - %s" msgstr "" msgid "Local revision information" msgstr "" msgid "Other revision information" msgstr "" msgid "Unresolved conflicts" msgstr "" msgid "Mercurial Re&solve" msgstr "" msgid "Attempt automatic (trivial) merge" msgstr "" msgid "Tool &Resolve" msgstr "" msgid "Merge using selected merge tool" msgstr "" msgid "&Take Local" msgstr "" msgid "Accept the local file version (yours)" msgstr "" msgid "Take &Other" msgstr "" msgid "Accept the other file version (theirs)" msgstr "" msgid "&Mark as Resolved" msgstr "" msgid "Mark this file as resolved" msgstr "" msgid "Diff &Local to Ancestor" msgstr "" msgid "&Diff Other to Ancestor" msgstr "" msgid "Resolved conflicts" msgstr "" msgid "&Edit File" msgstr "" msgid "Edit resolved file" msgstr "" msgid "3-&Way Diff" msgstr "" msgid "Visual three-way diff" msgstr "" msgid "Visual diff between resolved file and first parent" msgstr "" msgid "&Diff to Other" msgstr "" msgid "Visual diff between resolved file and second parent" msgstr "" msgid "Mark as &Unresolved" msgstr "" msgid "Mark this file as unresolved" msgstr "" msgid "Detected merge/diff tools:" msgstr "" msgid "Command output" msgstr "" msgid "Unable to show subrepository files" msgstr "" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" msgid "There are merge conflicts to be resolved" msgstr "" msgid "All conflicts are resolved." msgstr "" msgid "There are no conflicting file merges." msgstr "" msgid "Exit without finishing resolve?" msgstr "" msgid "Unresolved conflicts remain. Are you sure?" msgstr "" msgid "E&xit" msgstr "" msgid "Ext" msgstr "" msgid "Repository" msgstr "" msgid "" msgstr "" msgid "File List Toolbar" msgstr "" msgid "Ma&nifest Mode" msgstr "" msgid "Show all version-controlled files in tree view" msgstr "" msgid "&Flat List" msgstr "" msgid "### filter text ###" msgstr "" msgid "Changed by &This Commit" msgstr "" msgid "Show files changed by this commit" msgstr "" msgid "Compare to &1st Parent" msgstr "" msgid "Compare to &2nd Parent" msgstr "" msgid "Toggle parent to be used as the base revision" msgstr "" msgid "List Optio&ns" msgstr "" #, python-format msgid "%s - Revision Details (%s)" msgstr "" #, python-format msgid "Revert - %s" msgstr "" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "" msgid "Revert all files to this revision" msgstr "" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "" msgid "null revision (i.e. remove file(s))" msgstr "" msgid "Changeset:" msgstr "" msgid "Child:" msgstr "" msgid "Predecessors:" msgstr "" msgid "Successors:" msgstr "" msgid "Head is closed!" msgstr "" msgid "Changesets where username contains string." msgstr "" msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" msgid "Like \"keyword(string)\" but accepts a regex." msgstr "" msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" msgid "The named bookmark or all bookmarks." msgstr "" msgid "The named tag or all tags." msgstr "" msgid "Changeset is tagged." msgstr "" msgid "Changeset is a named branch head." msgstr "" msgid "Changeset is a merge changeset." msgstr "" msgid "Changeset is closed." msgstr "" msgid "" "Changesets within the interval, see help dates" msgstr "" msgid "Greatest common ancestor of the two changesets." msgstr "" msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" msgid "Changesets which modify files matched by pattern." msgstr "" msgid "Changesets which add files matched by pattern." msgstr "" msgid "Changesets which remove files matched by pattern." msgstr "" msgid "Changesets containing files matched by pattern." msgstr "" msgid "All changesets belonging to the branches of changesets in set." msgstr "" msgid "Members of a set with no children in set." msgstr "" msgid "Changesets which are descendants of changesets in set." msgstr "" msgid "Changesets that are ancestors of a changeset in set." msgstr "" msgid "Child changesets of changesets in set." msgstr "" msgid "The set of all parents for all changesets in set." msgstr "" msgid "First parent for all changesets in set, or the working directory." msgstr "" msgid "Second parent for all changesets in set, or the working directory." msgstr "" msgid "Changesets with no parent changeset in set." msgstr "" msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" msgid "Changeset with lowest revision number in set." msgstr "" msgid "Changeset with highest revision number in set." msgstr "" msgid "First n members of a set." msgstr "" msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "" msgid "All changesets, the same as 0:tip." msgstr "" msgid "Revision Set Query" msgstr "" msgid "all revisions converted from subversion" msgstr "" msgid "changeset which represents converted svn revision" msgstr "" msgid "Common sets" msgstr "" msgid "File pattern sets" msgstr "" msgid "Set Ancestry" msgstr "" msgid "Set Logic" msgstr "" msgid "" "help " "revsets" msgstr "" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" #, python-format msgid "thg: unknown command '%s'\n" msgstr "" #, python-format msgid "thg %s: %s\n" msgstr "" #, python-format msgid "thg: %s\n" msgstr "" #, python-format msgid "abort: %s!\n" msgstr "" #, python-format msgid "abort: %s\n" msgstr "" #, python-format msgid "(%s)\n" msgstr "" msgid "option --config may not be abbreviated!" msgstr "" msgid "invalid arguments" msgstr "" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" msgid "repository root directory or symbolic path name" msgstr "" msgid "enable additional output" msgstr "" msgid "suppress output" msgstr "" msgid "display help and exit" msgstr "" msgid "set/override config option (use 'section.name=value')" msgstr "" msgid "enable debugging output" msgstr "" msgid "start debugger" msgstr "" msgid "print command execution profile" msgstr "" msgid "do not fork GUI process" msgstr "" msgid "always fork GUI process" msgstr "" msgid "read file list from file" msgstr "" msgid "read file list from file encoding utf-8" msgstr "" msgid "thg about" msgstr "" msgid "thg add [FILE]..." msgstr "" msgid "revision to annotate" msgstr "" msgid "open to line" msgstr "" msgid "initial search pattern" msgstr "" msgid "thg annotate" msgstr "" #, python-format msgid "invalid line number: %s" msgstr "" msgid "revision to archive" msgstr "" msgid "thg archive" msgstr "" msgid "merge with old dirstate parent after backout" msgstr "" msgid "parent to choose when backing out merge" msgstr "" msgid "revision to backout" msgstr "" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "" msgid "thg bisect" msgstr "" msgid "revision" msgstr "" msgid "thg bookmarks [-r REV] [NAME]" msgstr "" msgid "only one new bookmark name allowed" msgstr "" msgid "the clone will include an empty working copy (only a repository)" msgstr "" msgid "revision, tag or branch to check out" msgstr "" msgid "include the specified changeset" msgstr "" msgid "clone only the specified branch" msgstr "" msgid "use pull protocol to copy metadata" msgstr "" msgid "use uncompressed transfer (fast over LAN)" msgstr "" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "" msgid "record user as committer" msgstr "" msgid "record datecode as commit date" msgstr "" msgid "thg commit [OPTIONS] [FILE]..." msgstr "" msgid "thg debugblockmatcher" msgstr "" msgid "thg debugbugreport [TEXT]" msgstr "" msgid "thg debugconsole" msgstr "" msgid "thg debuglighthg" msgstr "" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "" msgid "no command specified" msgstr "" msgid "thg drag_copy SOURCE... DEST" msgstr "" msgid "thg drag_move SOURCE... DEST" msgstr "" msgid "a revision to send" msgstr "" msgid "thg email [REVS]" msgstr "" msgid "use only one form to specify the revision" msgstr "" msgid "select the specified revision" msgstr "" msgid "side-by-side comparison of revisions" msgstr "" msgid "thg filelog [OPTION]... FILE" msgstr "" msgid "requires a single filename" msgstr "" msgid "thg forget [FILE]..." msgstr "" msgid "revisions to graft" msgstr "" msgid "thg graft [-r] REV..." msgstr "" msgid "You must provide revisions to graft" msgstr "" msgid "ignore case during search" msgstr "" msgid "thg grep" msgstr "" msgid "thg guess" msgstr "" msgid "thg help [COMMAND]" msgstr "" msgid "global options:" msgstr "" msgid "use \"thg help\" for the full list of commands" msgstr "" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "" msgid "" "list of commands:\n" "\n" msgstr "" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" msgid "(no help text available)" msgstr "" msgid "options:\n" msgstr "" msgid "no commands defined\n" msgstr "" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "" msgid "" "basic commands:\n" "\n" msgstr "" #, python-format msgid " (default: %s)" msgstr "" msgid "thg hgignore [FILE]" msgstr "" msgid "import to the patch queue (MQ)" msgstr "" msgid "thg import [OPTION] [SOURCE]..." msgstr "" msgid "thg init [DEST]" msgstr "" msgid "thg lock" msgstr "" msgid "search for a given text or revset" msgstr "" msgid "(DEPRECATED)" msgstr "" msgid "open a new workbench window" msgstr "" msgid "thg log [OPTIONS] [FILE]" msgstr "" msgid "cannot specify both -k/--query and filenames" msgstr "" msgid "revision to display" msgstr "" msgid "thg manifest [-r REV] [FILE]" msgstr "" msgid "revision to merge" msgstr "" msgid "thg merge [[-r] REV]" msgstr "" msgid "Merge revision not specified or not found" msgstr "" msgid "a revision to post" msgstr "" msgid "thg postreview [-r] REV..." msgstr "" msgid "reviewboard extension not enabled" msgstr "" #, python-format msgid "see %(url)s" msgstr "" msgid "no revisions specified" msgstr "" msgid "revisions to prune" msgstr "" msgid "thg prune [-r] REV..." msgstr "" msgid "thg purge" msgstr "" msgid "keep original changesets" msgstr "" msgid "keep original branch names" msgstr "" msgid "rebase from the specified changeset" msgstr "" msgid "rebase onto the specified changeset" msgstr "" msgid "thg rebase -s REV -d REV [--keep]" msgstr "" msgid "Rebase already in progress" msgstr "" msgid "Resuming rebase already in progress" msgstr "" msgid "You must provide source and dest arguments" msgstr "" msgid "thg rejects [FILE]" msgstr "" msgid "You must provide the path to a file" msgstr "" msgid "thg remove [FILE]..." msgstr "" msgid "thg rename [SOURCE] [DEST]" msgstr "" msgid "field to give initial focus" msgstr "" msgid "thg repoconfig" msgstr "" msgid "thg resolve" msgstr "" msgid "the revision to show" msgstr "" msgid "thg revdetails [-r REV]" msgstr "" msgid "thg revert [FILE]..." msgstr "" msgid "revision to update" msgstr "" msgid "thg rupdate [[-r] REV]" msgstr "" msgid "name of the hgweb config file (serve more than one repository)" msgstr "" msgid "name of the hgweb config file (DEPRECATED)" msgstr "" msgid "thg serve [--web-conf FILE]" msgstr "" msgid "thg shellconfig" msgstr "" msgid "thg shelve" msgstr "" msgid "sign even if the sigfile is modified" msgstr "" msgid "make the signature local" msgstr "" msgid "the key id to sign with" msgstr "" msgid "do not commit the sigfile after signing" msgstr "" msgid "use as commit message" msgstr "" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "" msgid "Please enable the Gpg extension first." msgstr "" msgid "show files without changes" msgstr "" msgid "show ignored files" msgstr "" msgid "thg status [OPTIONS] [FILE]" msgstr "" msgid "discard uncommitted changes (no backup)" msgstr "" msgid "do not back up stripped revisions" msgstr "" msgid "do not modify working copy during strip" msgstr "" msgid "revision to strip" msgstr "" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "" msgid "open the bookmark sync window" msgstr "" msgid "thg sync [OPTION]... [PEER]" msgstr "" msgid "replace existing tag" msgstr "" msgid "make the tag local" msgstr "" msgid "revision to tag" msgstr "" msgid "remove a tag" msgstr "" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "" msgid "wait until the second ticks over" msgstr "" msgid "notify the shell for paths given" msgstr "" msgid "remove the status cache" msgstr "" msgid "show the contents of the status cache (no update)" msgstr "" msgid "update all repos in current dir" msgstr "" msgid "thg thgstatus [OPTION]" msgstr "" msgid "thg topics [-r REV] [NAME]" msgstr "" msgid "Please enable the Topic extension first." msgstr "" msgid "only one new topic name allowed" msgstr "" msgid "thg update [-C] [[-r] REV]" msgstr "" msgid "thg userconfig" msgstr "" msgid "changeset to view in diff tool" msgstr "" msgid "revisions to view in diff tool" msgstr "" msgid "bundle file to preview" msgstr "" msgid "launch visual diff tool" msgstr "" msgid "print license" msgstr "" msgid "thg version [OPTION]" msgstr "" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "" msgid "Location:" msgstr "" msgid "Update to:" msgstr "" msgid "Options:" msgstr "" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "" msgid "Perform a push before updating (-p/--push)" msgstr "" msgid "Allow pushing new branches (--new-branch)" msgstr "" msgid "Force push to remote location (-f/--force)" msgstr "" msgid "remove working directory" msgstr "" msgid "unknown revision!" msgstr "" #, python-format msgid "Remote Update - %s" msgstr "" msgid "&Update" msgstr "" msgid "Log" msgstr "" msgid "Repositories" msgstr "" #, python-format msgid "Running at %s" msgstr "" msgid "Stopped" msgstr "" msgid "TortoiseHg Web Server" msgstr "" msgid "Web Server" msgstr "" msgid "Port:" msgstr "" msgid "Status:" msgstr "" msgid "Start" msgstr "" msgid "Settings" msgstr "" msgid "" msgstr "" msgid "&True" msgstr "" msgid "&False" msgstr "" msgid "&Unspecified" msgstr "" #, python-format msgid "%dpt" msgstr "" msgid "Bold" msgstr "" msgid "Italic" msgstr "" msgid "Strike" msgstr "" msgid "Underline" msgstr "" msgid "&Set..." msgstr "" msgid "&Clear" msgstr "" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "" msgid "&Browse..." msgstr "" msgid "UI Language" msgstr "" msgid "Specify your preferred user interface language (restart needed)" msgstr "" msgid "Three-way Merge Tool" msgstr "" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" msgid "Visual Diff Tool" msgstr "" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" msgid "Visual Editor" msgstr "" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" msgid "CLI Editor" msgstr "" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" msgid "Shell" msgstr "" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
                                                            Default, Windows: cmd.exe /" "K title %(reponame)s
                                                            Default, OS X: not set
                                                            Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" msgid "Immediate Operations" msgstr "" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" msgid "Tab Width" msgstr "" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" msgid "Force Repo Tab" msgstr "" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "" msgid "Monitor Repo Changes" msgstr "" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" msgid "Max Diff Size" msgstr "" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" msgid "Fork GUI" msgstr "" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" msgid "Full Path Title" msgstr "" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" msgid "Auto-resolve merges" msgstr "" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" msgid "New Repo Skeleton" msgstr "" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "" msgid "Single Workbench Window" msgstr "" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" msgid "Default widget" msgstr "" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" msgid "" "Open new tabs next\n" "to the current tab" msgstr "" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" msgid "Author Coloring" msgstr "" msgid "Color changesets by author name. Default: False" msgstr "" msgid "Full Authorname" msgstr "" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" msgid "Task Tabs" msgstr "" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" msgid "Task Toolbar Order" msgstr "" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
                                                            Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
                                                            Valid names are: log commit sync grep and " "pbranch.
                                                            Default: log commit grep pbranch | sync" msgstr "" msgid "Long Summary" msgstr "" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" msgid "Log Batch Size" msgstr "" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "" msgid "Dead Branches" msgstr "" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" msgid "Branch Colors" msgstr "" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" msgid "Hide Tags" msgstr "" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" msgid "Activate Bookmarks" msgstr "" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

                                                            • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
                                                            • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
                                                            • never: Never show any prompt to " "activate any bookmarks.

                                                            Default: prompt" msgstr "" msgid "Show Family Line" msgstr "" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

                                                            Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" msgid "Use optimized graph layouter" msgstr "" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

                                                            Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" msgctxt "config item" msgid "Commit" msgstr "" msgid "Username" msgstr "" msgid "" "Name associated with commits. The common format is:
                                                            Full Name <" "email@example.com>" msgstr "" msgid "Ask Username" msgstr "" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" msgid "Summary Line Length" msgstr "" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" msgid "Close After Commit" msgstr "" msgid "Close the commit tool after every successful commit. Default: False" msgstr "" msgid "Push After Commit" msgstr "" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" msgid "Auto Commit List" msgstr "" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" msgid "Auto Exclude List" msgstr "" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" msgid "English Messages" msgstr "" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" msgid "New Commit Phase" msgstr "" msgid "The phase of new commits. Default: draft" msgstr "" msgid "Secret MQ Patches" msgstr "" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "" msgid "Check Subrepo Phase" msgstr "" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" msgid "Monitor working
                                                            directory changes" msgstr "" msgid "" "Select when the working directory status list will be refreshed:
                                                            - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
                                                            TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
                                                            - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
                                                            - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
                                                            Default: auto" msgstr "" msgid "Confirm adding unknown files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Confirm deleting files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Sync" msgstr "" msgid "After Pull Operation" msgstr "" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" msgid "Default Push" msgstr "" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

                                                            • all: The default. Push all changes in all " "branches.
                                                            • branch: Push all changes in the current branch.
                                                            • revision: Push the changes in the current branch up to the current revision.

                                                            Default: all" msgstr "" msgid "Confirm Push" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" msgid "Target Combo" msgstr "" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

                                                            • auto: The default. Show the combo if more than one target " "configured.
                                                            • always: Always show the combo.

                                                            Default: auto" msgstr "" msgid "SSH Command" msgstr "" msgid "" "Command to use for SSH connections.

                                                            Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" msgid "Subrepository Features:" msgstr "" msgid "Allow Hg Subrepos" msgstr "" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" msgid "Allow Git Subrepos" msgstr "" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

                                                            See the security note before enabling Git " "subrepos." msgstr "" msgid "Allow SVN Subrepos" msgstr "" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

                                                            See the security note before enabling " "Subversion subrepos." msgstr "" msgid "Server" msgstr "" msgid "Repository Details:" msgstr "" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" msgid "Encoding" msgstr "" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" msgid "'Publishing' repository" msgstr "" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" msgid "Web Server:" msgstr "" msgid "Textual description of the repository's purpose or contents." msgstr "" msgid "Contact" msgstr "" msgid "Name or email address of the person in charge of the repository." msgstr "" msgid "Style" msgstr "" msgid "Which template map style to use" msgstr "" msgid "Archive Formats" msgstr "" msgid "Comma separated list of archive formats allowed for downloading" msgstr "" msgid "Port" msgstr "" msgid "Port to listen on" msgstr "" msgid "Push Requires SSL" msgstr "" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" msgid "Stripes" msgstr "" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" msgid "Max Files" msgstr "" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "" msgid "Max Changes" msgstr "" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "" msgid "Allow Push" msgstr "" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" msgid "Deny Push" msgstr "" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" msgid "Proxy" msgstr "" msgid "Host" msgstr "" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "" msgid "Bypass List" msgstr "" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "" msgid "Optional. User name to authenticate with at the proxy server" msgstr "" msgid "Password" msgstr "" msgid "Optional. Password to authenticate with at the proxy server" msgstr "" msgid "From" msgstr "" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "" msgid "To" msgstr "" msgid "Comma-separated list of recipient email addresses" msgstr "" msgid "Cc" msgstr "" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "" msgid "Bcc" msgstr "" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "" msgid "method" msgstr "" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" msgid "SMTP Host" msgstr "" msgid "Host name of mail server" msgstr "" msgid "SMTP Port" msgstr "" msgid "Port to connect to on mail server. Default: 25" msgstr "" msgid "SMTP TLS" msgstr "" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "" msgid "SMTP Username" msgstr "" msgid "Username to authenticate to mail server with" msgstr "" msgid "SMTP Password" msgstr "" msgid "Password to authenticate to mail server with" msgstr "" msgid "Local Hostname" msgstr "" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "" msgid "Diff and Annotate" msgstr "" msgid "Patch EOL" msgstr "" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" msgid "Git Format" msgstr "" msgid "Use git extended diff header format. Default: False" msgstr "" msgid "MQ Git Format" msgstr "" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" msgid "No Dates" msgstr "" msgid "Do not include modification dates in diff headers. Default: False" msgstr "" msgid "Show Function" msgstr "" msgid "Show which function each change is in. Default: False" msgstr "" msgid "Ignore White Space" msgstr "" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "" msgid "Ignore WS Amount" msgstr "" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "" msgid "Ignore Blank Lines" msgstr "" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "" msgid "Annotate:" msgstr "" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "" msgid "Fonts" msgstr "" msgid "Message Font" msgstr "" msgid "Font used to display commit messages. Default: monospace 10" msgstr "" msgid "Diff Font" msgstr "" msgid "Font used to display text differences. Default: monospace 10" msgstr "" msgid "ChangeLog Font" msgstr "" msgid "Font used to display changelog data. Default: monospace 10" msgstr "" msgid "Output Font" msgstr "" msgid "Font used to display output messages. Default: sans 8" msgstr "" msgid "Extensions" msgstr "" msgid "Tools" msgstr "" msgid "Hooks" msgstr "" msgid "Issue Tracking" msgstr "" msgid "Issue Regex" msgstr "" msgid "Defines the regex to match when picking up issue numbers." msgstr "" msgid "Issue Link" msgstr "" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" msgid "Inline Tags" msgstr "" msgid "Show tags at start of commit message." msgstr "" msgid "Mandatory Issue Reference" msgstr "" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" msgid "Issue Tracker Plugin" msgstr "" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" msgid "Configure Issue Tracker" msgstr "" msgid "Configure the selected COM Bug Tracker plugin." msgstr "" msgid "Issue Tracker Trigger" msgstr "" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

                                                            • never: Do not update the Issue Tracker " "state automatically.
                                                            • commit: Update the Issue Tracker state after " "a successful commit.

                                                            Default: never" msgstr "" msgid "Changeset Link" msgstr "" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
                                                            The template string " "uses a normal mercurial template syntax, such as:

                                                            • {node|short} : replaced by " "the 12 digit revision id.
                                                            • {rev} : replaced by the revision number." "
                                                            • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
                                                            For example, in order to " "link to bitbucket commit pages you can set this to:
                                                            https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
                                                            You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
                                                            https://github.com/torvalds/" "linux/commit/{gitnode}
                                                            https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
                                                            " msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "" msgid "User name to authenticate with review board" msgstr "" msgid "Password to authenticate with review board" msgstr "" msgid "Server Repository ID" msgstr "" msgid "The default repository id for this repo on the review board server" msgstr "" msgid "Target Groups" msgstr "" msgid "A comma separated list of target groups" msgstr "" msgid "Target People" msgstr "" msgid "A comma separated list of target people" msgstr "" msgid "Kiln Bfiles" msgstr "" msgid "Patterns" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" msgid "Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" msgid "System Cache" msgstr "" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "" msgid "Simplelock" msgstr "" msgid "Lock Clone" msgstr "" msgid "" "Location of local clone of organizational lock repository.

                                                            This repository " "must contain a \"locked\" text file" msgstr "" msgid "Largefiles" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" msgid "Minimum Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" msgid "User Cache" msgstr "" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" msgid "Projrc" msgstr "" msgid "Require confirmation" msgstr "" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

                                                            • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
                                                            • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
                                                            • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
                                                            " msgstr "" msgid "Servers" msgstr "" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" msgid "Include" msgstr "" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" msgid "Exclude" msgstr "" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" msgid "Update on incoming" msgstr "" msgid "" "Let the user update the projrc on incoming:
                                                            • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
                                                            • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
                                                            • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                                                              Default: never" msgstr "" msgid "GnuPG" msgstr "" msgid "Specify the path to GPG. Default: gpg" msgstr "" msgid "Key ID" msgstr "" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "" msgid "TortoiseHg Settings" msgstr "" msgid "Iniparse package not found" msgstr "" msgid "Can't change settings without iniparse package - view is readonly." msgstr "" #, python-format msgid "%s's global settings" msgstr "" msgid "No repository found" msgstr "" msgid "no repo at " msgstr "" #, python-format msgid "%s project settings (.hg/projrc)" msgstr "" #, python-format msgid "%s repository settings" msgstr "" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "" msgid "Apply changes before exit?" msgstr "" msgid "&No (discard changes)" msgstr "" msgid "Reload" msgstr "" msgid "Settings File:" msgstr "" msgid "Confirm Save" msgstr "" msgid "Save changes before editing?" msgstr "" msgid "&Save" msgstr "" msgid "Confirm Reload" msgstr "" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" msgid "Unable to create a Mercurial.ini file" msgstr "" msgid "Insufficient access rights, reverting to read-only mode." msgstr "" msgid "Context Menu" msgstr "" msgid "Top menu items:" msgstr "" msgid "Sub menu items:" msgstr "" msgid "Menu Behavior" msgstr "" msgid "Hide context menu outside repositories" msgstr "" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" msgid "Icons" msgstr "" msgid "Overlays" msgstr "" msgid "Enabled overlays" msgstr "" msgid "Local disks only" msgstr "" msgid "Enabled Overlay Handlers" msgstr "" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "" msgid "Added" msgstr "" msgid "Locked*" msgstr "" msgid "Ignored*" msgstr "" msgid "Unversioned" msgstr "" msgid "Readonly*" msgstr "" msgid "Deleted*" msgstr "" msgid "*: not used by TortoiseHg" msgstr "" msgid "Taskbar" msgstr "" msgid "Show Icon" msgstr "" msgid "Highlight Icon" msgstr "" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" msgid "Explorer Extension Settings - TortoiseHg" msgstr "" msgid "Clear" msgstr "" msgid "Clear the current shelf file" msgstr "" msgid "Delete the current shelf file" msgstr "" msgid "Left Toolbar" msgstr "" msgid "Delete selected chunks" msgstr "" msgid "Move all files right" msgstr "" msgid "Move selected file right" msgstr "" msgid "Edit file" msgstr "" msgid "Move selected chunks right" msgstr "" msgid "Refresh Toolbar" msgstr "" msgid "Refresh" msgstr "" msgid "New Shelf" msgstr "" msgid "Right Toolbar" msgstr "" msgid "Move selected chunks left" msgstr "" msgid "Move selected file left" msgstr "" msgid "Move all files left" msgstr "" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "" msgid "Delete selected chunks from working copy?" msgstr "" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "" msgid "Are you sure?" msgstr "" msgid "TortoiseHg New Shelf Name" msgstr "" msgid "Specify name of new shelf" msgstr "" msgid "Bad filename" msgstr "" #, python-format msgid "A shelf name cannot contain %s" msgstr "" msgid "File already exists" msgstr "" msgid "A shelf file of that name already exists" msgstr "" msgid "New shelf created" msgstr "" #, python-format msgid "Delete shelf file %s?" msgstr "" msgid "Shelf deleted" msgstr "" msgid "Revert all working copy changes?" msgstr "" #, python-format msgid "Clear contents of shelf file %s?" msgstr "" msgid "Shelf cleared" msgstr "" #, python-format msgid "Shelf: %s" msgstr "" #, python-format msgid "Patch: %s" msgstr "" msgid "Key:" msgstr "" msgid "Local sign" msgstr "" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "" msgid "No commit" msgstr "" msgid "Use custom commit message:" msgstr "" msgid "&Sign" msgstr "" #, python-format msgid "Sign - %s" msgstr "" msgid "Signature has been added" msgstr "" msgid "Repository command still running" msgstr "" msgid "Filter:" msgstr "" msgid "Check all files" msgstr "" msgid "Uncheck all files" msgstr "" msgid "Status File List Toolbar" msgstr "" msgid "Remove filter, show root" msgstr "" #, python-format msgid "%s - status (selection filtered)" msgstr "" #, python-format msgid "%s - status" msgstr "" msgid "Check" msgstr "" msgid "Uncheck" msgstr "" msgid "status" msgstr "" msgid "Failed to refresh" msgstr "" msgid "No appropriate files" msgstr "" msgid "No files found for this operation" msgstr "" msgid "Stat" msgstr "" msgid "M" msgstr "" msgid "Filename" msgstr "" msgid "Size (KB)" msgstr "" #, python-format msgid "Checked count: %d" msgstr "" msgid ", resolved merge" msgstr "" msgid ", unresolved merge" msgstr "" #, python-format msgid "%s is modified" msgstr "" msgid "modified" msgstr "" #, python-format msgid "%s is added" msgstr "" msgid "added" msgstr "" #, python-format msgid "%s is removed" msgstr "" msgid "removed" msgstr "" #, python-format msgid "%s is not tracked (unknown)" msgstr "" msgid "unknown" msgstr "" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "" msgid "missing" msgstr "" #, python-format msgid "%s is ignored" msgstr "" msgid "ignored" msgstr "" #, python-format msgid "%s is not modified (clean)" msgstr "" msgid "clean" msgstr "" #, python-format msgid "%s is a dirty subrepo" msgstr "" msgid "subrepo" msgstr "" msgid "Check for incoming changes from selected URL" msgstr "" msgid "Pull incoming changes from selected URL" msgstr "" msgid "Detect outgoing changes to selected URL" msgstr "" msgid "Push outgoing changes to selected URL" msgstr "" msgid "Sync Bookmarks" msgstr "" msgid "Email outgoing changesets for remote repository" msgstr "" msgid "Manage pending perforce changelists" msgstr "" msgid "Unbundle" msgstr "" msgid "Selected Options:" msgstr "" msgid "Path Edit Toolbar" msgstr "" msgid "Security" msgstr "" msgid "Manage HTTPS connection security and user authentication" msgstr "" msgid "Save" msgstr "" msgid "Save current URL under an alias" msgstr "" msgid "Paths in Repository Settings:" msgstr "" msgid "Related Paths:" msgstr "" msgid "branch: " msgstr "" msgid "bookmark: " msgstr "" #, python-format msgid "rev: %d (%s)" msgstr "" msgid "Post Pull: " msgstr "" msgid "&Edit..." msgstr "" msgid "&Remove..." msgstr "" msgid "Repository not local" msgstr "" msgid "A terminal shell cannot be opened for remote" msgstr "" msgid "Confirm path delete" msgstr "" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "" msgid "Select repository" msgstr "" msgid "No host specified" msgstr "" msgid "Please set a valid URL to continue." msgstr "" msgid "No remote repository URL or path set" msgstr "" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

                                                              Please type and save a remote repository path on the " "Sync widget." msgstr "" msgid "Redundant authentication info" msgstr "" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" msgid "sync command already running" msgstr "" #, python-format msgid "Getting incoming changesets from %s..." msgstr "" #, python-format msgid "Found incoming changesets from %s" msgstr "" #, python-format msgid "No incoming changesets from %s" msgstr "" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "" #, python-format msgid "Pulling from %s..." msgstr "" #, python-format msgid "Pull from %s completed" msgstr "" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "" msgid "Merge caused file conflicts" msgstr "" msgid "File conflicts need to be resolved" msgstr "" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "" #, python-format msgid "%d outgoing changesets to %s" msgstr "" #, python-format msgid "No outgoing changesets to %s" msgstr "" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "" msgid "Perforce pending..." msgstr "" #, python-format msgid "%s (submitted)" msgstr "" #, python-format msgid "%s (pending)" msgstr "" msgid "Unable to parse p4pending output" msgstr "" #, python-format msgid "%d pending changelists found" msgstr "" msgid "No pending Perforce changelists" msgstr "" msgid "Aborted p4pending" msgstr "" msgid "Unable to determine pending changesets" msgstr "" msgid "Confirm Push to remote Repository" msgstr "" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" #, python-format msgid "Push to %s aborted" msgstr "" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" #, python-format msgid "Pushing to %s..." msgstr "" #, python-format msgid "Push to %s completed" msgstr "" #, python-format msgid "Push to %s aborted, ret %d" msgstr "" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" msgid "Determining outgoing changesets to email..." msgstr "" msgid "No outgoing changesets" msgstr "" #, python-format msgid "Outgoing aborted, ret %d" msgstr "" msgid "Select bundle file" msgstr "" msgid "Bundle files (*.hg)" msgstr "" msgid "Unable to remove URL" msgstr "" msgid "Post Pull Behavior" msgstr "" msgid "Select post-pull operation for this repository" msgstr "" msgid "None - simply pull changesets" msgstr "" msgid "Update - pull, then try to update" msgstr "" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "" msgid "Rebase - rebase local commits above pulled changes" msgstr "" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "" msgid "Launch settings tool..." msgstr "" msgid "Unable to save post pull operation" msgstr "" msgid "Save Path" msgstr "" msgid "Alias" msgstr "" msgid "URL" msgstr "" msgid "Remove authentication data from URL" msgstr "" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" msgid "Update subrepo paths" msgstr "" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" msgid "Unable to save an URL" msgstr "" msgid "Confirm URL replace" msgstr "" #, python-format msgid "%s already exists, replace URL?" msgstr "" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

                                                              %s

                                                              Replace it with the " "following URL?:

                                                              %s" msgstr "" msgid "Security: " msgstr "" #, python-format msgid "Host: %s" msgstr "" msgid "Secure HTTPS Connection" msgstr "" msgid "Verify with Certificate Authority certificates (best)" msgstr "" msgid "Verify with stored host fingerprint (good)" msgstr "" msgid "No host validation, but still encrypted (bad)" msgstr "" msgid "### host certificate fingerprint ###" msgstr "" msgid "Query" msgstr "" msgid "TLS 1.0" msgstr "" msgid "TLS 1.1" msgstr "" msgid "TLS 1.2" msgstr "" msgid "Minimum Protocol" msgstr "" msgid "User Authentication" msgstr "" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Key" msgstr "" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Chain" msgstr "" msgid "Certificate Query Error" msgstr "" msgid "Select User Certificate Key File" msgstr "" msgid "PEM files (*.pem *.key)" msgstr "" msgid "Select User Certificate Chain File" msgstr "" msgid "PEM files (*.pem *.crt *.cer)" msgstr "" msgid "Unable to save authentication" msgstr "" #, python-format msgid "%s - sync options" msgstr "" msgid "Allow push of a new branch (--new-branch)" msgstr "" msgid "Force push or pull (override safety checks, --force)" msgstr "" msgid "Temporarily disable configured HTTP proxy" msgstr "" msgid "Emit debugging output (--debug)" msgstr "" msgid "Work on patch queue (--mq)" msgstr "" #, python-format msgid "Tag - %s" msgstr "" msgid "Tag:" msgstr "" msgid "Tagged:" msgstr "" msgid "Local tag" msgstr "" msgid "Replace existing tag (-f/--force)" msgstr "" msgid "Use English commit message" msgstr "" msgid "local" msgstr "" msgid "Move" msgstr "" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "" #, python-format msgid "Added tag %s for changeset %s" msgstr "" #, python-format msgid "Tag '%s' has been moved" msgstr "" #, python-format msgid "Tag '%s' has been added" msgstr "" #, python-format msgid "Removed tag %s" msgstr "" #, python-format msgid "Tag '%s' has been removed" msgstr "" msgid "Patch files (*.diff *.patch)" msgstr "" #, python-format msgid "Import - %s" msgstr "" msgid "Browse Directory..." msgstr "" msgid "Import from Clipboard" msgstr "" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "" msgid "Preview:" msgstr "" msgid "Shelf" msgstr "" msgid "Checking working directory status..." msgstr "" msgid "&Import" msgstr "" msgid "Working directory is not clean! View changes..." msgstr "" msgid "Select patches" msgstr "" msgid "Select Directory containing patches" msgstr "" #, python-format msgid "%s patches" msgstr "" #, python-format msgid "%s will be imported to " msgstr "" msgid "Nothing to import" msgstr "" msgid "Strip:" msgstr "" msgid "Discard local changes, no backup (-f/--force)" msgstr "" msgid "No backup (-n/--nobackup)" msgstr "" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "" msgstr[1] "" msgid "Unknown revision!" msgstr "" msgid "Detected uncommitted local changes." msgstr "" msgid "Do you want to keep them or discard them?" msgstr "" msgid "&Keep (--keep)" msgstr "" msgid "&Discard (--force)" msgstr "" msgid "Confirm Strip" msgstr "" #, python-format msgid "Strip - %s" msgstr "" msgid "&Strip" msgstr "" msgid "Topic:" msgstr "" msgid "&Rename" msgstr "" #, python-format msgid "Topic - %s" msgstr "" #, python-format msgid "A topic named \"%s\" already exists" msgstr "" #, python-format msgid "Topic '%s' has been added" msgstr "" #, python-format msgid "Topic '%s' does not exist" msgstr "" #, python-format msgid "Topic '%s' has been removed" msgstr "" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "" msgid "Parent 1:" msgstr "" msgid "Parent 2:" msgstr "" msgid "Pull subrepos from:" msgstr "" msgid "List updated files (--verbose)" msgstr "" msgid "Discard local changes, no backup (-C/--clean)" msgstr "" msgid "Always merge (when possible)" msgstr "" msgid "(same as parent)" msgstr "" msgid "Activate bookmark?" msgstr "" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

                                                              Do " "you want to activate it?
                                                              You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

                                                              Select " "the bookmark that you want to activate and click OK.

                                                              Click " "Cancel if you don't want to activate any of them.

                                                              You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                              " msgstr "" msgid "Deactivate current bookmark?" msgstr "" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" msgid "Discard - discard local changes, no backup" msgstr "" msgid "&Shelve" msgstr "" msgid "Shelve - move local changes to a patch" msgstr "" msgid "Merge - allow to merge with local changes" msgstr "" msgid "Confirm Update" msgstr "" #, python-format msgid "Update - %s" msgstr "" msgid "[non-existant]" msgstr "" msgid "Tool launch failure" msgstr "" #, python-format msgid "%s : %s" msgstr "" msgid "No diff tool found" msgstr "" msgid "No visual diff tools were detected" msgstr "" msgid "[working copy]" msgstr "" msgid "[original]" msgstr "" msgid "Unable to find changeset" msgstr "" msgid "You likely need to refresh this application" msgstr "" msgid "No file changes" msgstr "" msgid "There are no file changes to view" msgstr "" msgid "working changes" msgstr "" #, python-format msgid "changeset %d:%s" msgstr "" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "" msgid "Visual Diffs - " msgstr "" msgid " filtered" msgstr "" msgid "Temporary files are removed when this dialog is closed" msgstr "" msgid "Select Tool:" msgstr "" msgid "Dir diff to p1" msgstr "" msgid "Dir diff to p2" msgstr "" msgid "3-way dir diff" msgstr "" msgid "Directory diff" msgstr "" msgid "Confirm Discard" msgstr "" msgid "Discard outstanding changes to working directory?" msgstr "" msgid "Config files (*.conf *.config *.ini)" msgstr "" msgid "Open hgweb config" msgstr "" msgid "Save hgweb config" msgstr "" msgid "Path:" msgstr "" msgid "Local Path:" msgstr "" msgid "Select Repository" msgstr "" msgid "Add Path to Serve" msgstr "" msgid "Edit Path to Serve" msgstr "" msgid "Local Path" msgstr "" msgid "Webconf" msgstr "" msgid "Config File:" msgstr "" msgid "Open" msgstr "" msgid "New &Workbench" msgstr "" msgid "&New Repository..." msgstr "" msgid "Clon&e Repository..." msgstr "" msgid "&Open Repository..." msgstr "" msgid "&File" msgstr "" msgid "&View" msgstr "" msgid "&Repository" msgstr "" msgid "&Help" msgstr "" msgid "&Dock Toolbar" msgstr "" msgid "&Task Toolbar" msgstr "" msgid "&Custom Toolbar" msgstr "" msgid "S&ync Toolbar" msgstr "" msgid "&Close Repository" msgstr "" msgid "Sh&ow Repository Registry" msgstr "" msgid "Show &Patch Queue" msgstr "" msgid "Show Conso&le" msgstr "" msgid "Place Console in Doc&k Area" msgstr "" msgid "R&epository Registry Options" msgstr "" msgid "Save Open Repositories on E&xit" msgstr "" msgid "Sa&ve Current Sync Paths on Exit" msgstr "" msgid "Show Tas&k Tab" msgstr "" msgid "&Commit" msgstr "" msgid "&Patch Branch" msgstr "" msgid "Revision &Details" msgstr "" msgid "&Search" msgstr "" msgid "S&ynchronize" msgstr "" msgid "Refresh current repository" msgstr "" msgid "Refresh &Task Tab" msgstr "" msgid "Refresh only the current task tab" msgstr "" msgid "Load &All Revisions" msgstr "" msgid "Load all revisions into graph" msgstr "" msgid "Go to current revision" msgstr "" msgid "&Goto Revision..." msgstr "" msgid "Go to a specific revision" msgstr "" msgid "Filter graph with revision sets or branches" msgstr "" msgid "&Workbench Toolbars" msgstr "" msgid "&Lock File..." msgstr "" msgid "Lock or unlock files" msgstr "" msgid "Update working directory or switch revisions" msgstr "" msgid "&Shelve..." msgstr "" msgid "&Import Patches..." msgstr "" msgid "U&nbundle..." msgstr "" msgid "&Merge..." msgstr "" msgid "Merge with the other head of the current branch" msgstr "" msgid "&Resolve..." msgstr "" msgid "R&ollback/Undo..." msgstr "" msgid "&Purge..." msgstr "" msgid "&Bisect..." msgstr "" msgid "&Verify" msgstr "" msgid "Re&cover" msgstr "" msgid "&Web Server" msgstr "" msgid "E&xplorer Help" msgstr "" msgid "&Readme" msgstr "" msgid "About &Qt" msgstr "" msgid "&About TortoiseHg" msgstr "" msgid "&Incoming" msgstr "" msgid "&Pull" msgstr "" msgid "&Outgoing" msgstr "" msgid "P&ush" msgstr "" msgid "&Sync Bookmarks..." msgstr "" #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" msgid "Check for incoming changes" msgstr "" msgid "Pull incoming changes" msgstr "" msgid "Detect outgoing changes" msgstr "" msgid "Push outgoing changes" msgstr "" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" #, python-format msgid "Execute custom tool '%s'" msgstr "" msgid "Custom Toolbar &Settings" msgstr "" msgid "TortoiseHg Workbench" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "" msgid "Goto revision" msgstr "" msgid "Enter revision identifier" msgstr "" msgid "Select repository directory to open" msgstr "" msgid "README not configured" msgstr "" msgid "" "A README file is not configured for the current repository.

                                                              To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" msgid "Issue Tracker Plugin Error" msgstr "" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "" msgid "This error will not be shown again until you restart the workbench" msgstr "" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "" msgid "Error executing \"commit finished\" trigger" msgstr "" msgid "Cannot open Plugin Options dialog" msgstr "" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "" msgid "[--insecure] [SOURCE]" msgstr "" #, python-format msgid "unsupported URL: %s" msgstr "" #, python-format msgid "%s certificate error: no certificate received" msgstr "" msgid "move after the specified patch" msgstr "" msgid "[--after PATCH] PATCH..." msgstr "" msgid "unknown patch to move specified" msgstr "" msgid "invalid patch position specified" msgstr "" msgid "cannot move applied patches" msgstr "" #, python-format msgid "patch %s not in series" msgstr "" msgid "cannot move into applied patches" msgstr "" msgid "abort: " msgstr "" msgid "hint: " msgstr "" #, python-format msgid "HTTP Error: %d (%s)" msgstr "" #, python-format msgid "URLError: %s" msgstr "" msgid "SSL: Server certificate verify failed" msgstr "" #, python-format msgid "SSL: unknown error %s:%s" msgstr "" #, python-format msgid "SSL error: %s" msgstr "" msgid "hgsubversion packaged with thg" msgstr "" msgid "hggit packaged with thg" msgstr "" msgid "inotify is not supported on this platform" msgstr "" msgid "eol is incompatible with win32text" msgstr "" msgid "win32text is incompatible with eol" msgstr "" msgid "hgsubversion is incompatible with perfarce" msgstr "" msgid "perfarce is incompatible with hgsubversion" msgstr "" msgid "Workbench custom toolbar" msgstr "" msgid "Revision details context menu" msgstr "" msgid "Pair selection context menu" msgstr "" msgid "Multiple selection context menu" msgstr "" msgid "Commit context menu" msgstr "" msgid "File context menu (on manifest and revision details)" msgstr "" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" msgid "in the future" msgstr "" msgid "now" msgstr "" #, python-format msgid "command parse error: %s" msgstr "" #, python-format msgid "no matches found: %s" msgstr "" msgid "Commit..." msgstr "" msgid "Commit changes in repository" msgstr "" msgid "Create Repository Here" msgstr "" msgid "Create a new repository" msgstr "" msgid "Clone..." msgstr "" msgid "Create clone here from source" msgstr "" msgid "File Status" msgstr "" msgid "Repository status & changes" msgstr "" msgid "Add Files..." msgstr "" msgid "Add files to version control" msgstr "" msgid "Revert Files..." msgstr "" msgid "Revert file changes" msgstr "" msgid "Forget Files..." msgstr "" msgid "Remove files from version control" msgstr "" msgid "Remove Files..." msgstr "" msgid "Rename File" msgstr "" msgid "Rename file or directory" msgstr "" msgid "View change history in repository" msgstr "" msgid "File History" msgstr "" msgid "View change history of selected files" msgstr "" msgid "Shelve Changes" msgstr "" msgid "Move changes between working dir and patch" msgstr "" msgid "Synchronize" msgstr "" msgid "Synchronize with remote repository" msgstr "" msgid "Start web server for this repository" msgstr "" msgid "Update..." msgstr "" msgid "Update working directory" msgstr "" msgid "Update Icons" msgstr "" msgid "Update icons for this repository" msgstr "" msgid "Global Settings" msgstr "" msgid "Configure user wide settings" msgstr "" msgid "Repository Settings" msgstr "" msgid "Configure repository settings" msgstr "" msgid "Explorer Extension Settings" msgstr "" msgid "Configure Explorer extension" msgstr "" msgid "About TortoiseHg" msgstr "" msgid "Show About Dialog" msgstr "" msgid "Diff to parent" msgstr "" msgid "View changes using GUI diff tool" msgstr "" msgid "Edit Ignore Filter" msgstr "" msgid "Edit repository ignore filter" msgstr "" msgid "Guess Renames" msgstr "" msgid "Detect renames and copies" msgstr "" msgid "Search History" msgstr "" msgid "Search file revisions for patterns" msgstr "" msgid "DnD Synchronize" msgstr "" msgid "Synchronize with dragged repository" msgstr "" #, python-format msgid "unrecognized response: %s" msgstr "" msgid "password: " msgstr "" #, python-format msgid "repository %s not found" msgstr "" msgid "win32ill: cannot create window for messages" msgstr "" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "" msgid "win32ill: interrupted while stopping message loop\n" msgstr "" #~ msgid "A new version of TortoiseHg is ready for download!" #~ msgstr "Versi anyar TortoiseHg siap di unduh" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/ko.po0000644000000000000000000046206714440352353016256 0ustar00rootroot# Korean translation for tortoisehg # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the tortoisehg package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2019-02-07 05:08+0000\n" "Last-Translator: JK Kim \n" "Language-Team: Korean \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2019-07-17 05:43+0000\n" "X-Generator: Launchpad (build 19009)\n" msgid "TortoiseHg Overlay Icon Server" msgstr "TortoiseHg 오버레이 아이콘 서버" msgid "Exit" msgstr "종료" msgid "About" msgstr "소개" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "일부 아이콘은 TortoiseSVN과 Tango projects에서 무료로 제공했습니다." msgid "You can visit our site here" msgstr "개발자 웹사이트 방문" msgid "&License" msgstr "라이센스(&L)" #, python-format msgid "version %s" msgstr "판번호 %s" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr ", Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "TortoiseHg (%s)의 새로운 버전을 다운로드할 수 있습니다!" msgid "License" msgstr "라이선스" msgid "= Working Directory Parent =" msgstr "= 작업 디렉토리의 상위 =" msgid "Directory of files" msgstr "디렉토리 파일" msgid "Tar archives" msgstr "tar 아카이브" msgid "Uncompressed tar archive" msgstr "압축되지 않은 tar 아카이브" msgid "Bzip2 tar archives" msgstr "bzip2 압축 tar 아카이브" msgid "Tar archive compressed using bzip2" msgstr "bzip2를 사용하여 압축한 tar 아카이브" msgid "Gzip tar archives" msgstr "Gzip 압축 tar 아카이브" msgid "Tar archive compressed using gzip" msgstr "gzip를 사용하여 압축한 아카이브" msgid "Zip archives" msgstr "Zip 아카이브" msgid "Uncompressed zip archive" msgstr "압축되지 않은 zip 아카이브" msgid "Zip archive compressed using deflate" msgstr "deflate로 압축된 zip 아카이브" msgid "Revision:" msgstr "리비전:" msgid "All files in this revision" msgstr "이 리비전의 모든 파일" msgid "Only files modified/created in this revision" msgstr "이 리비전에서 수정/생성된 파일" msgid "Only files modified/created since:" msgstr "" msgid "Archive Content:" msgstr "" msgid "Recurse into subrepositories" msgstr "하위 저장소를 포함" msgid "Browse..." msgstr "찾아보기..." msgid "Destination path:" msgstr "대상 경로" msgid "Archive types:" msgstr "아카이브 유형:" msgid "Hg command:" msgstr "Hg 명령:" msgid "Select Destination Folder" msgstr "대상 폴더 선택" msgid "Select Destination File" msgstr "대상 파일 선택" msgid "All files (*)" msgstr "모든 파일 (*)" msgid "Duplicate Name" msgstr "이름 중복" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "이미 \"%s\"라는 이름의 파일이 있습니다!" msgid "Confirm Overwrite" msgstr "덮어쓰기 확인" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" "\"%s\" 디렉토리가 비어있지 않습니다!\n" "\n" "덮어쓰시겠습니까?" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" "\"%s\" 파일이 이미 존재합니다!\n" "\n" "덮어쓰시겠습니까?" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "\"%s\" 에 이미 폴더가 존재합니다!" #, python-format msgid "Archive - %s" msgstr "아카이브 - %s" msgid "&Archive" msgstr "아카이브(&A)" msgid "Backout requires a parent revision" msgstr "백아웃을 하기 위해선 상위 리비전이 있어야 합니다." msgid "Cannot backout change on a different branch" msgstr "다른 브랜치로는 백아웃할 수 없습니다." #, python-format msgid "Backout - %s" msgstr "백아웃 - %s" msgid "Prepare to backout" msgstr "백아웃 준비" msgid "Verify backout revision and ensure your working directory is clean." msgstr "백아웃할 리비전과 작업 디렉토리의 상태를 확인해주십시오." msgid "Backing out a parent revision is a single step operation" msgstr "부모 리비전을 철회하는 것은 단계별 작업입니다." msgid "Backout revision" msgstr "백아웃 대상 리비전" msgid "Not a head, backout will create a new head!" msgstr "헤드가 아니기 때문에, 백아웃 후에 새로운 헤드가 생성됩니다!" msgid "Current local revision" msgstr "현재 로컬 리비전" msgid "Working directory status" msgstr "작업 디렉터리 상태" msgid "Checking..." msgstr "확인중..." msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" "백아웃 전에, 반드시 커밋, 패치를 위한 임시저장, 혹은 변경사항을 파기할지 선택해주십시오." msgid "Automatically resolve merge conflicts where possible" msgstr "가능한한 자동으로 머지 충돌을 해결합니다." msgid "Uncommitted local changes are detected" msgstr "커밋되지 않은 로컬 변경사항이 있습니다" msgid "Clean" msgstr "정리" msgid "Backing out, then merging..." msgstr "백아웃 후에 머지를 진행합니다..." msgid "All conflicting files will be marked unresolved." msgstr "충돌 상태의 파일들은 해결되지 않은 상태로 표시됩니다." msgid "Automatically advance to next page when backout and merge are complete." msgstr "백아웃과 머지가 끝나면 자동으로 다음 페이지로 넘어갑니다." #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" "%d 파일이 머지 충돌 상태입니다. 반드시 충돌 해" "결이 필요합니다." msgid "No merge conflicts, ready to commit" msgstr "머지 충돌이 없습니다. 커밋할 수 있습니다." msgid "Commit backout and merge results" msgstr "커밋 철회 및 결과 병합" msgid "Parents" msgstr "부모 리비전" msgid "Working Directory" msgstr "작업 디렉토리" msgid "Working Directory (merged)" msgstr "작업 디렉토리(병합)" msgid "Commit message" msgstr "커밋 메시지" msgid "Skip final confirmation page, close after commit." msgstr "최종 확인 페이지를 건너뛰고, 커밋 후에 창을 닫습니다." msgid "Backed out changeset: " msgstr "백아웃한 변경사항: " msgid "Confirm Discard Message" msgstr "삭제 메세지를 확인합니다." msgid "Discard current backout message?" msgstr "현재 백아웃 메시지를 파기하시겠습니까?" msgid "Use English backout message" msgstr "영문 철회 메시지 사용" msgid "Backing out and committing..." msgstr "철회 후 커밋 중..." msgid "Please wait while making backout." msgstr "철회하는 동안 기다려주십시오." msgid "Committing..." msgstr "커밋중..." msgid "Please wait while committing merged files." msgstr "병합된 파일을 커밋하는 동안 기다려주십시오." msgid "Finished" msgstr "완료" msgid "Backout changeset" msgstr "철회된 체인지셋" #, python-format msgid "Bisect - %s" msgstr "이진 탐색 - %s" msgid "Accept" msgstr "수락" msgid "Known good revision:" msgstr "알려진 정상 리비전:" msgid "Known bad revision:" msgstr "알려진 문제 리비전:" msgid "Discard local changes (revert --all)" msgstr "로컬 변경사항을 무시 (revert --all)" msgid "Revision is &Good" msgstr "리비전에 문제 없음(&G)" msgid "Revision is &Bad" msgstr "리비전에 문제 있음(&B)" msgid "&Skip this Revision" msgstr "리비전을 건너뛴다(&S)" msgid "Close" msgstr "닫기" msgid "Error encountered." msgstr "오류가 발생하였습니다." msgid "Culprit found." msgstr "문제를 발생시킨 리비전이 발견됨." msgid "Revision" msgstr "개정 번호" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "이 리비전을 테스트하고 결과를 보고합니다. (정상/문제/건너뜀)" #, python-format msgid "%s (hint: %s)" msgstr "%s (힌트: %s)" msgid "Bookmark:" msgstr "책갈피:" msgid "New Name:" msgstr "새 이름:" msgid "Activate:" msgstr "활성화:" msgid "&Add" msgstr "추가(&A)" msgid "Re&name" msgstr "이름변경(&N)" msgid "&Remove" msgstr "삭제(&R)" msgid "&Move" msgstr "이동(&M)" #, python-format msgid "Bookmark - %s" msgstr "책갈피 - %s" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "이름이 \"%s\"인 책갈피가 이미 있습니다" #, python-format msgid "Bookmark '%s' has been added" msgstr "'%s' 책갈피가 추가되었습니다" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "이름이 \"%s\"인 책갈피가 없습니다" #, python-format msgid "Bookmark '%s' has been moved" msgstr "'%s' 책갈피가 이동되었습니다" #, python-format msgid "Bookmark '%s' does not exist" msgstr "'%s' 책갈피가 없습니다" #, python-format msgid "Bookmark '%s' has been removed" msgstr "'%s' 책갈피가 삭제되었습니다" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "책갈피의 이름을 '%s'에서 '%s'로 변경했습니다" msgid "TortoiseHg Bookmark Sync" msgstr "TortoiseHg 책갈피 동기화" msgid "Outgoing Bookmarks" msgstr "보낼 책갈피" msgid "&Push Bookmark" msgstr "책갈피 발행(&P)" msgid "&Remove Bookmark" msgstr "책갈피 제거(&R)" msgid "Incoming Bookmarks" msgstr "받아올 수 있는 책갈피" msgid "P&ull Bookmark" msgstr "책갈피 갱신(&U)" msgid "R&emove Bookmark" msgstr "책갈피 제거(&E)" #, python-format msgid "Pushed local bookmark: %s" msgstr "발행한 로컬 책갈피: %s" #, python-format msgid "Pulled remote bookmark: %s" msgstr "받아온 원격 책갈피: %s" #, python-format msgid "Removed remote bookmark: %s" msgstr "삭제된 원격 책갈피: %s" #, python-format msgid "Removed local bookmark: %s" msgstr "삭제된 로컬 책갈피: %s" #, python-format msgid "%s - branch operation" msgstr "%s - 분기 작업" msgid "Select branch of merge commit" msgstr "Select branch of merge commit" msgid "Changes take effect on next commit" msgstr "변경한 내용은 다음 커밋에 반영됩니다." msgid "No branch changes" msgstr "분기에 대한 변경이 없음" msgid "Open a new named branch" msgstr "새로운 이름의 분기를 만듭니다." msgid "Close current branch" msgstr "현재의 분기를 종료합니다." #, python-format msgid "Please report this bug to our bug tracker" msgstr "이 버그를 버그 트래커에 제보해 주십시오." msgid "Checking for updates..." msgstr "업데이트 확인 중..." msgid "Copy" msgstr "복사" msgid "Quit" msgstr "종료" msgid "TortoiseHg Bug Report" msgstr "TortoiseHg 버그 리포트" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "최신 버전의 TortoiseHg로 업그레이드하는 것을 권장합니다." msgid "Your TortoiseHg is up to date." msgstr "TortoiseHg가 최신 버전입니다." msgid "Save error report to" msgstr "오류 보고를 저장" msgid "Text files (*.txt)" msgstr "텍스트 파일 (*.txt)" msgid "Error writing file" msgstr "파일 쓰기 오류" msgid "TortoiseHg Error" msgstr "TortoiseHg 오류" msgid "" "If you still have trouble, please file a bug report." msgstr "" "문제가 여전하다면 버그 리포트를 제출해주세요." msgid "Visual Diff" msgstr "시각적 비교" msgid "View file changes in external diff tool" msgstr "외부 비교 도구로 파일 변경점 보기" msgid "Edit Local" msgstr "지역(Local) 수정" msgid "Edit current file in working copy" msgstr "복사본에서 현재 파일을 편집" msgid "Revert to Revision" msgstr "개정판을 되돌리기" msgid "Revert file(s) to contents at this revision" msgstr "파일을 이 리비전의 내용으로 복구" msgid "Patch failed to apply" msgstr "패치 적용 실패" msgid "Manually resolve rejected chunks?" msgstr "실패한 청크를 직접 해결하시겠습니까?" msgid "Edit patched file and rejects?" msgstr "패치가 성공한 파일과 실패한 파일을 편집하겠습니까?" msgid "No deletable chunks" msgstr "삭제할 청크가 없습니다." msgid "Completely remove file from patch?" msgstr "" msgid "Revert all file changes?" msgstr "" msgid "No chunks remain" msgstr "" msgid "file has been deleted, refresh" msgstr "" msgid "file has been modified, refresh" msgstr "" msgid "Unable to merge chunks" msgstr "" msgid "Add or remove patches must be merged in the working directory" msgstr "" msgid "Unable to remove" msgstr "" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" msgctxt "files" msgid "All" msgstr "모두" msgctxt "files" msgid "None" msgstr "없음" msgid "Toggle display of text search bar" msgstr "" msgid "Diff Toolbar" msgstr "" #, python-format msgid "Chunks selected: %d / %d" msgstr "" msgid "Please wait while the file is opened ..." msgstr "" msgid "Source:" msgstr "" msgid "Destination:" msgstr "목적지:" msgid "Options" msgstr "옵션" msgid "Clone to revision:" msgstr "" msgid "A revision identifier, bookmark, tag or branch name" msgstr "" msgid "Do not update the new working directory" msgstr "" msgid "Use pull protocol to copy metadata" msgstr "" msgid "Clone with minimal processing" msgstr "" msgid "Include patch queue" msgstr "" msgid "Use proxy server" msgstr "프록시 서버 사용" msgid "Do not verify host certificate" msgstr "" msgid "Remote command:" msgstr "원격 명령:" msgid "Use largefiles" msgstr "" msgid "Start revision:" msgstr "" msgid "Select source repository" msgstr "" msgid "Select destination repository" msgstr "" msgid "Select patch folder" msgstr "" #, python-format msgid "Clone - %s" msgstr "복제 - %s" msgid "&Clone" msgstr "복제(&C)" msgid "failed to start command\n" msgstr "" msgid "error while running command\n" msgstr "" #, python-format msgid "process exited unexpectedly with code %d" msgstr "" #, python-format msgid "failed to encode command: %s" msgstr "" #, python-format msgid "timed out while reading: %r..." msgstr "" msgid "timed out waiting for message" msgstr "" #, python-format msgid "unexpected response on required channel %r" msgstr "" #, python-format msgid "invalid \"hello\" message: %r" msgstr "" msgid "no \"runcommand\" capability" msgstr "" #, python-format msgid "corrupted command result: %r" msgstr "" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "" msgid "Terminated by user" msgstr "사용자가 중단함" #, python-format msgid "[command terminated by user %s]" msgstr "" #, python-format msgid "[command interrupted %s]" msgstr "" #, python-format msgid "[command returned code %d %%s]" msgstr "" #, python-format msgid "[command completed successfully %s]" msgstr "" msgid "Running..." msgstr "진행중..." msgid "Failed!" msgstr "실패!" msgid "Clea&r Log" msgstr "" msgid "TortoiseHg Prompt" msgstr "" msgid "Show Detail" msgstr "" msgid "Hide Detail" msgstr "" msgid "Confirm Exit" msgstr "종료확인" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" msgid "&Run" msgstr "" msgid "TortoiseHg Command Dialog" msgstr "TortoiseHg 명령 대화창" msgid "Command Error" msgstr "" #, python-format msgid "[Code: %d]" msgstr "" msgid "Merge" msgstr "" #, python-format msgid "Merge with %s" msgstr "" msgid "Patch Name Required" msgstr "" msgid "You must enter a patch name" msgstr "" msgctxt "start progress" msgid "Commit" msgstr "커밋" msgctxt "start progress" msgid "MQ Action" msgstr "" msgctxt "start progress" msgid "Rollback" msgstr "" msgid "Commit Dialog Toolbar" msgstr "" msgid "Branch: " msgstr "" msgid "Copy message" msgstr "" msgid "Copy one of the recent commit messages" msgstr "" msgid "Show Issues" msgstr "" msgid "Please wait..." msgstr "" #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "" msgid "Issue Tracker" msgstr "" msgid "Show Issues..." msgstr "" msgid "Stop" msgstr "정지" msgid "### patch name ###" msgstr "" msgid "Commit changes" msgstr "변경점 커밋" msgid "Commit" msgstr "커밋" msgid "Amend current revision" msgstr "" msgid "Amend" msgstr "" msgid "Create a new patch" msgstr "" msgid "QNew" msgstr "" msgid "Refresh current patch" msgstr "" msgid "QRefresh" msgstr "" msgid "Confirm Branch Change" msgstr "" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "" msgid "Restart &Branch" msgstr "" msgid "&Commit to current branch" msgstr "" msgid "Cancel" msgstr "취소" msgid "Confirm New Branch" msgstr "" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "" msgid "Create &Branch" msgstr "" msgid "Close Branch: " msgstr "" msgid "New Branch: " msgstr "" #, python-format msgid "Selected Options: %s" msgstr "" msgid "Parent:" msgstr "" msgid "Patch name:" msgstr "" #, python-format msgid "Close %s branch" msgstr "" #, python-format msgid "Rollback commit to revision %d" msgstr "" msgid "Confirm Undo" msgstr "" msgid "Discard current commit message?" msgstr "" msgid "Message Translation Failure" msgstr "" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" msgid "&Replace" msgstr "" msgid "Nothing Committed" msgstr "" msgid "Please enter commit message" msgstr "커밋 메시지를 입력하세요" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" msgid "No files checked" msgstr "" msgid "No modified files checkmarked for commit" msgstr "" msgid "Confirm Add" msgstr "" msgid "Add selected untracked files?" msgstr "" msgid "Confirm Remove" msgstr "" msgid "Remove selected deleted files?" msgstr "" msgid "Nothing changed." msgstr "" msgctxt "window title" msgid "Commit" msgstr "커밋" #, python-format msgid "%s - commit options" msgstr "" msgid "Set username:" msgstr "" msgid "Save in Repo" msgstr "" msgid "Save Global" msgstr "" msgid "Set Date:" msgstr "" msgid "Update" msgstr "업데이트" msgid "Push After Commit:" msgstr "" msgid "Auto Includes:" msgstr "" msgid "Recurse into subrepositories (--subrepos)" msgstr "" msgid "Unable to save username" msgstr "" msgid "Iniparse must be installed." msgstr "" msgid "Unable to write configuration file" msgstr "" msgid "Unable to save after commit push" msgstr "" msgid "Unable to save auto include list" msgstr "" msgid "Unable to save recurse in subrepos." msgstr "" msgid "Invalid date format" msgstr "" msgid "No username configured" msgstr "" #, python-format msgid "%s - commit" msgstr "" msgid "TortoiseHg Commit" msgstr "" msgid "Are you sure that you want to cancel the commit operation?" msgstr "" msgid "Compress changesets up to and including" msgstr "" msgid "Onto destination" msgstr "" msgid "Compress" msgstr "압축하기" #, python-format msgid "Compress - %s" msgstr "" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the compress" msgstr "" msgid "Changes have been moved, you must now commit" msgstr "" msgctxt "action button" msgid "Commit" msgstr "커밋" msgid "Compress is complete, old history untouched" msgstr "" msgid "must be specified repository" msgstr "지정된 저장소여야 합니다." msgid "must be specified 'type' in style" msgstr "" msgid "Git Commit:" msgstr "" msgid "Summary:" msgstr "제목:" msgid "User:" msgstr "사용자:" msgid "Date:" msgstr "날짜:" msgid "Age:" msgstr "나이:" msgid "Branch:" msgstr "브랜칭:" msgid "Close:" msgstr "" msgid "Tags:" msgstr "태그:" msgid "Graft:" msgstr "" msgid "Transplant:" msgstr "" msgid "Obsolete state:" msgstr "" msgid "Perforce:" msgstr "" msgid "Subversion:" msgstr "" msgid "Converted From:" msgstr "" msgid "Original Parent:" msgstr "" msgid "No items to display" msgstr "" msgid "Use compact view" msgstr "" msgid "Patch:" msgstr "패치:" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "" msgid "Select a GUI location to edit:" msgstr "" msgid "Select the toolbar or menu to change" msgstr "" msgid "Tools shown on selected location" msgstr "" msgid "Delete from list" msgstr "" msgid "Add to list" msgstr "" msgid "Add separator" msgstr "" msgid "List of all tools" msgstr "" msgid "New Tool ..." msgstr "" msgid "Edit Tool ..." msgstr "" msgid "Delete Tool" msgstr "" msgid "Type" msgstr "" msgid "Name" msgstr "" msgid "Command" msgstr "" msgid "New hook" msgstr "" msgid "Edit hook" msgstr "" msgid "Delete hook" msgstr "" msgid "Replace existing hook?" msgstr "" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" msgid "OK" msgstr "" msgid "Missing information" msgstr "" msgid "All items" msgstr "" msgid "Working directory" msgstr "" msgid "All revisions" msgstr "" msgid "All contexts" msgstr "" msgid "Fixed revisions" msgstr "" msgid "Applied patches" msgstr "" msgid "Applied patches or qparent" msgstr "" msgid "" msgstr "" msgid "Configure Custom Tool" msgstr "" msgid "Tool name" msgstr "" msgid "The tool name. It cannot contain spaces." msgstr "" #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" msgid "Tool label" msgstr "" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" msgid "Tooltip" msgstr "" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" msgid "Icon" msgstr "" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" msgid "On repowidget, show for" msgstr "" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" msgid "Show Output Log" msgstr "" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" msgid "You must set a tool name." msgstr "" msgid "The tool name cannot have any spaces in it." msgstr "" msgid "You must set a command to run." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" msgid "Configure Hook" msgstr "" msgid "Hook type" msgstr "" msgid "Select when your command will be run" msgstr "" msgid "The hook name. It cannot contain spaces." msgstr "" msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" msgid "You must set a valid hook type." msgstr "" msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "" msgid "Console" msgstr "" msgid "File &History / Annotate" msgstr "" msgid "Show the history of the selected file" msgstr "" msgid "Co&mpare File Revisions" msgstr "" msgid "Compare revisions of the selected file" msgstr "" msgid "Filter Histor&y" msgstr "" msgid "Query about changesets affecting the selected files" msgstr "" msgid "Diff &Changeset to Parent" msgstr "" msgid "Diff Changeset to Loc&al" msgstr "" msgid "&Diff to Parent" msgstr "" msgid "Diff to &Local" msgstr "" msgid "View changes to current in external diff tool" msgstr "" msgid "&View at Revision" msgstr "" msgid "View file as it appeared at this revision" msgstr "" msgid "&Save at Revision..." msgstr "" msgid "Save file as it appeared at this revision" msgstr "" msgid "Save file to" msgstr "파일 저장" msgid "&Edit Local" msgstr "" msgid "&Open Local" msgstr "" msgid "E&xplore Local" msgstr "" msgid "Open parent folder of current file in the system file manager" msgstr "" msgid "&Copy Patch" msgstr "" msgid "Copy &Path" msgstr "" msgid "Copy full path of file(s) to the clipboard" msgstr "" msgid "&Revert to Revision..." msgstr "" msgid "Open S&ubrepository" msgstr "" msgid "Open the selected subrepository" msgstr "" msgid "E&xplore Folder" msgstr "" msgid "Open the selected folder in the system file manager" msgstr "" msgid "Open &Terminal" msgstr "" msgid "Open a shell terminal in the selected folder" msgstr "" msgid "Custom Tools" msgstr "" msgid "Diff &Local" msgstr "" msgid "&View Missing" msgstr "" msgid "View O&ther" msgstr "" msgid "Add &Largefiles..." msgstr "" msgid "&Forget" msgstr "" msgid "&Delete Unversioned..." msgstr "" msgid "Confirm Delete Unversioned" msgstr "" msgid "Delete the following unversioned files?" msgstr "" msgid "&Delete" msgstr "" msgid "Re&move Versioned" msgstr "" msgid "&Revert..." msgstr "" msgid "Uncommited merge - please select a parent revision" msgstr "" msgid "Revert files to local or other parent?" msgstr "" msgid "&Local" msgstr "" msgid "&Other" msgstr "" msgid "Confirm Revert" msgstr "" msgid "Revert local file changes?" msgstr "" msgid "&Revert with backup" msgstr "" msgid "&Discard changes" msgstr "" msgid "Revert the following files?" msgstr "" msgid "&Revert" msgstr "" msgid "&Copy..." msgstr "" msgid "Re&name..." msgstr "" msgid "&Ignore..." msgstr "" msgid "Edit Re&jects" msgstr "" msgid "Manually resolve rejected patch chunks" msgstr "" msgid "De&tect Renames..." msgstr "" msgid "&Mark Resolved" msgstr "" msgid "&Mark Unresolved" msgstr "" msgid "Restart Mer&ge" msgstr "" msgid "Was renamed from" msgstr "" msgid "Restart Merge &with" msgstr "" msgid "Display the file anyway" msgstr "" msgid "Diff not displayed: " msgstr "" #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid "File is binary" msgstr "" msgid "File may be binary (maximum line length exceeded)" msgstr "" msgid "File or diffs not displayed: " msgstr "" msgid " (was added)" msgstr "" #, python-format msgid " (copied from %s)" msgstr "" #, python-format msgid " (renamed from %s)" msgstr "" msgid " (is a symlink)" msgstr "" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid " (was deleted)" msgstr "" msgid " (was added, now missing)" msgstr "" msgid " (is unversioned)" msgstr "" msgid "exec mode has been set" msgstr "" msgid "exec mode has been unset" msgstr "" #, python-format msgid "changeset: %s" msgstr "" msgid "Initial revision" msgstr "" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" "[경고] 올바르지 않은 하위 저장소 개정판 ID:\n" "\t%s\n" "\n" msgid "Subrepo created and set to initial revision." msgstr "" msgid "Subrepo initialized to revision:" msgstr "" msgid "Subrepo removed from repository." msgstr "" msgid "Previously the subrepository was at the following revision:" msgstr "" msgid "Subrepo was not changed." msgstr "" msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "" msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "" msgid "Subrepo state is:" msgstr "" msgid "Revision has changed to:" msgstr "" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "" msgid "From:" msgstr "" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" msgid "Subrepository not found in the working directory." msgstr "" msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" msgid "Not a Mercurial subrepo, not previewable" msgstr "" #, python-format msgid "Error previewing subrepo: %s" msgstr "" msgid "Subrepo may be damaged or inaccessible." msgstr "" msgid "The subrepository is dirty." msgstr "" msgid "File Status:" msgstr "" msgid "(is a changed sub-repository)" msgstr "" msgid "(is an unchanged sub-repository)" msgstr "" msgid "(is a dirty sub-repository)" msgstr "" msgid "(is a new sub-repository)" msgstr "" msgid "(is a removed sub-repository)" msgstr "" msgid "(is a changed and dirty sub-repository)" msgstr "" msgid "(is a new and dirty sub-repository)" msgstr "" msgid "open..." msgstr "" #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "" msgid "File History Log Columns" msgstr "" msgid "Back" msgstr "뒤로" msgid "Forward" msgstr "앞으로" msgid "Diff Selected &Changesets" msgstr "" msgid "&Diff Selected File Revisions" msgstr "" msgid "Show Revision &Details" msgstr "" msgid "Too many rows selected for menu" msgstr "" msgid "File Differences Log Columns" msgstr "" msgid "Next diff" msgstr "다름 차이점" msgid "Previous diff" msgstr "이전 차이점" msgid "Unicode" msgstr "" msgid "Western Europe" msgstr "" msgid "Unified Chinese" msgstr "" msgid "Traditional Chinese" msgstr "" msgid "Korean" msgstr "" msgid "Japanese" msgstr "" msgid "Thai" msgstr "" msgid "Central and Eastern Europe" msgstr "" msgid "Cyrillic" msgstr "" msgid "Russian" msgstr "" msgid "Ukrainian" msgstr "" msgid "Greek" msgstr "" msgid "Turkish" msgstr "" msgid "Arabic" msgstr "" msgid "Hebrew" msgstr "" msgid "Vietnamese" msgstr "" msgid "Baltic" msgstr "" msgid "Southern Europe" msgstr "" msgid "Nordic" msgstr "" msgid "Celtic" msgstr "" msgid "South-Eastern Europe" msgstr "" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "" msgid "View change as unified diff output" msgstr "" msgid "View change in context of file" msgstr "" msgid "Annotate with revision numbers" msgstr "" msgid "Next Diff" msgstr "" msgid "Previous Diff" msgstr "" msgid "Open shelve tool" msgstr "" msgid "&Auto Detect" msgstr "" msgid "Show changes from first parent" msgstr "" msgid "Show changes from second parent" msgstr "" msgid "E&ncoding" msgstr "" msgid "&Search in Current File" msgstr "" msgid "Search in All &History" msgstr "" msgid "Go to Line" msgstr "" #, python-format msgid "Enter line number (1 - %d)" msgstr "" msgid "Show &Author" msgstr "" msgid "Show &Date" msgstr "" msgid "Show &Revision" msgstr "" msgid "Annotate Op&tions" msgstr "" msgid "Search Selected Text" msgstr "" msgid "In Current &File" msgstr "" msgid "In &Current Revision" msgstr "" msgid "In &Original Revision" msgstr "" msgid "In All &History" msgstr "" msgid "Go to" msgstr "" msgid "View File at" msgstr "" msgid "Diff File to" msgstr "" msgid "&Originating Revision" msgstr "" msgid "&Parent Revision" msgstr "" #, python-format msgid "&Parent Revision (%d)" msgstr "" msgid "&Mark Excluded Changes" msgstr "" msgid "(excluded from the next commit)" msgstr "" msgid "Interrupted graft operation found" msgstr "" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" msgid "Continue or abort interrupted graft operation?" msgstr "" msgid "To graft destination" msgstr "" msgid "Use my user name instead of graft committer user name" msgstr "" msgid "Use current date" msgstr "" msgid "Append graft info to log message" msgstr "" msgid "Graft" msgstr "" msgid "Abort" msgstr "취소" #, python-format msgid "Graft - %s" msgstr "" msgid "Graft changeset" msgstr "" #, python-format msgid "Graft changeset #%d of %d" msgstr "" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" msgid "You may continue or start the graft" msgstr "" msgid "Graft is complete" msgstr "" msgid "Graft failed" msgstr "" msgid "Graft aborted" msgstr "" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" msgid "You may continue the graft" msgstr "" msgid "Exiting with an unfinished graft is not recommended." msgstr "" msgid "Consider aborting the graft first." msgstr "" msgid "&Exit" msgstr "" msgid "### regular expression search pattern ###" msgstr "" msgid "Regexp:" msgstr "정규표현식:" msgid "Ignore case" msgstr "" msgid "Search" msgstr "검색" msgid "Working Copy" msgstr "작업 복사본" msgid "All History" msgstr "전체 기록" msgid "Report only the first match per file" msgstr "" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "" msgid "Includes:" msgstr "포함:" msgid "Excludes:" msgstr "제외:" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" #, python-format msgid "\"%s\" removed from search history" msgstr "" #, python-format msgid "\"%s\" removed from path history" msgstr "" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "" #, python-format msgid "grep: %s\n" msgstr "" #, python-format msgid "%d matches found" msgstr "" msgid "No matches found" msgstr "일치하는 것 없음" msgid "Searching" msgstr "검색중" msgid "history" msgstr "" msgid "Interrupted" msgstr "방해 받음" msgid "files" msgstr "파일" #, python-format msgid "Skipping %s, unable to read" msgstr "" msgid "Vi&ew File" msgstr "" msgid "&View Changeset" msgstr "" msgid "Annotate &File" msgstr "" msgid "File" msgstr "파일" msgid "Line" msgstr "" msgid "Rev" msgstr "" msgid "User" msgstr "사용자" msgid "Match Text" msgstr "" msgid "TortoiseHg Search" msgstr "" #, python-format msgid "Detect Copies/Renames in %s" msgstr "" msgid "Unrevisioned Files" msgstr "" msgid "Refresh file list" msgstr "" #, python-format msgid "Min Similarity: %d%%" msgstr "" msgid "Only consider deleted files" msgstr "" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "" msgid "Find Renames" msgstr "" msgid "Find copy and/or rename sources" msgstr "" msgid "Candidate Matches" msgstr "" msgid "Accept All Matches" msgstr "" msgid "Accept Selected Matches" msgstr "" msgid "Differences from Source to Dest" msgstr "" msgid "Search already in progress" msgstr "" msgid "Cannot start a new search" msgstr "" msgid "No files to find" msgstr "" msgid "There are no files that may have been renamed" msgstr "" msgid "Multiple sources chosen" msgstr "" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" #. i18n: percent format #, python-format msgid "%d%%" msgstr "" msgid "Source" msgstr "" msgid "Dest" msgstr "" msgid "% Match" msgstr "" msgid "Sending Email" msgstr "" msgid "Email" msgstr "" msgid "To:" msgstr "" msgid "Cc:" msgstr "" msgid "In-Reply-To:" msgstr "" msgid "Message identifier to reply to, for threading" msgstr "" msgid "Flag:" msgstr "" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" msgid "Send changesets as Hg patches" msgstr "" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" msgid "Use extended (git) patch format" msgstr "" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" msgid "Plain, do not prepend Hg header" msgstr "" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" msgid "Send single binary bundle, not patches" msgstr "" msgid "send patches as part of the email body" msgstr "" msgid "body" msgstr "" msgid "send patches as attachments" msgstr "" msgid "attach" msgstr "" msgid "send patches as inline attachments" msgstr "" msgid "inline" msgstr "" msgid "add diffstat output to messages" msgstr "" msgid "diffstat" msgstr "" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" msgid "Write patch series (bundle) description" msgstr "" msgid "Subject:" msgstr "제목:" msgid "Changesets" msgstr "" msgid "Select &All" msgstr "" msgid "Select &None" msgstr "" msgid "Edit" msgstr "편집" msgid "Preview" msgstr "" msgid "&Settings" msgstr "" msgid "Send &Email" msgstr "" msgid "&Close" msgstr "닫기(&C)" #, python-format msgid "Ignore filter - %s" msgstr "" msgid "Glob" msgstr "" msgid "Regexp" msgstr "" msgid "Add" msgstr "추가" msgid "Edit File" msgstr "" msgid "Ignore Filter" msgstr "" msgid "Untracked Files" msgstr "" msgid "Backspace or Del to remove row(s)" msgstr "" msgid "Add ignore filter..." msgstr "" msgid "selected files" msgstr "" msgid "Ignore " msgstr "" msgid "Invalid glob expression" msgstr "" msgid "Invalid regexp expression" msgstr "" msgid "Unable to read repository status" msgstr "" msgid "New file created" msgstr "" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" msgid "Unable to write .hgignore file" msgstr "" msgid "Copy working directory files from skeleton" msgstr "" msgid "Create special files (.hgignore, ...)" msgstr "" msgid "Make repo compatible with Mercurial <1.7" msgstr "" msgid "New Repository" msgstr "" msgid "&Create" msgstr "" msgid "Unable to create a config file" msgstr "" msgid "Insufficient access rights." msgstr "" msgid "Show Log" msgstr "기록 보기" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" msgid "Add as &Largefiles" msgstr "" msgid "Add as &Normal Files" msgstr "" msgid "Invalid Patterns" msgstr "" msgid "Failed to process largefiles.patterns." msgstr "" msgid "Word docs (*.doc *.docx)" msgstr "" msgid "PDF docs (*.pdf)" msgstr "" msgid "Excel files (*.xls *.xlsx)" msgstr "" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "" msgid "Refresh lock information" msgstr "" msgid "Lock a file not described in .hglocks" msgstr "" msgid "Stop current operation" msgstr "" msgid "Locked And Lockable Files:" msgstr "" msgid "Path" msgstr "경로" msgid "Locking User" msgstr "" msgid "Purpose" msgstr "" msgid "Simplelock extension not enabled" msgstr "" msgid "Please enable and configure simplelock" msgstr "" msgid "Open a (nonmergable) file you wish to be locked" msgstr "" msgid "File was not within current repository" msgstr "" #, python-format msgid "Locking %s" msgstr "" #, python-format msgid "Unlocking %s" msgstr "" msgid "Refreshing locks..." msgstr "" #, python-format msgid "Lock of %s successful" msgstr "" #, python-format msgid "Lock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s successful" msgstr "" msgid "Ready, double click to lock or unlock" msgstr "" msgid "Ready" msgstr "" msgid "You can only release your own locks" msgstr "" msgid "Find revisions matching fields of:" msgstr "" msgid "Revision to Match:" msgstr "" msgid "Fields to match:" msgstr "" msgid "Summary (first description line)" msgstr "" msgid "Description" msgstr "" msgid "Author" msgstr "" msgid "Date" msgstr "" msgid "Files" msgstr "파일" msgid "Diff contents" msgstr "" msgid "Subrepo states" msgstr "" msgid "Branch" msgstr "분기" msgid "Phase" msgstr "" msgid "&Match" msgstr "" #, python-format msgid "Find matches - %s" msgstr "" msgid "Revisions to Match:" msgstr "" #, python-format msgid "Match any of %d revisions" msgstr "" msgid "Unknown revision!" msgstr "" msgid "Parse Error!" msgstr "" #, python-format msgid "Merge - %s" msgstr "" msgid "Do you want to exit?" msgstr "" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" msgid "Prepare to merge" msgstr "" msgid "Verify merge targets and ensure your working directory is clean." msgstr "" msgid "Not a head revision!" msgstr "" msgid "Merge from (other revision)" msgstr "" msgid "Merge to (working directory)" msgstr "" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Or use:" msgstr "" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "" msgid "Discard all changes from the other revision" msgstr "" msgid "&Discard" msgstr "파기(&D)" msgid "Confirm Discard Changes" msgstr "" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" msgctxt "working dir state" msgid "Clean" msgstr "" msgid "Merging..." msgstr "" msgid "Automatically advance to next page when merge is complete." msgstr "" #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" msgid "" "No merge conflicts, ready to commit or review" msgstr "" msgid "Commit merge results" msgstr "" msgid "Commit Options" msgstr "" msgid "Commit Now" msgstr "" msgid "Commit Later" msgstr "" msgid "Merge changeset" msgstr "" msgid "Syntax Highlighting" msgstr "" msgid "Paste &Filenames" msgstr "" msgid "App&ly Format" msgstr "" msgid "C&onfigure Format" msgstr "" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "" msgid "&Commit to Queue..." msgstr "" msgid "Create &New Queue..." msgstr "" msgid "&Rename Active Queue..." msgstr "" msgid "&Delete Queue..." msgstr "" msgid "&Purge Queue..." msgstr "" msgid "Create Patch Queue" msgstr "" msgid "New patch queue name" msgstr "" msgid "Create" msgstr "" msgid "Rename Patch Queue" msgstr "" #, python-format msgid "Rename patch queue '%s' to" msgstr "" msgid "Rename" msgstr "이름 바꾸기" msgid "Delete Patch Queue" msgstr "" msgid "Delete reference to" msgstr "" msgid "Delete" msgstr "" msgid "Purge Patch Queue" msgstr "" msgid "Remove patch directory of" msgstr "" msgid "Purge" msgstr "" msgid "Rename Patch" msgstr "" #, python-format msgid "Rename patch %s to:" msgstr "" msgid "no guards" msgstr "" msgid "Patch Queue" msgstr "" msgctxt "MQ QPush" msgid "Push" msgstr "" msgid "Apply one patch" msgstr "" msgctxt "MQ QPush" msgid "Push all" msgstr "" msgid "Apply all patches" msgstr "" msgid "Pop" msgstr "" msgid "Unapply one patch" msgstr "" msgid "Pop all" msgstr "" msgid "Unapply all patches" msgstr "" msgid "Go &to Patch" msgstr "" msgid "&Apply Only This Patch" msgstr "" msgid "Apply only the selected patch" msgstr "" msgid "&Finish Patch" msgstr "" msgid "Move applied patches into repository history" msgstr "" msgid "&Delete Patches..." msgstr "" msgid "Delete selected patches" msgstr "" msgid "Re&name Patch..." msgstr "" msgid "Set &Guards..." msgstr "" msgid "Configure guards for selected patch" msgstr "" msgid "Patch Queue Actions Toolbar" msgstr "" msgid "Configure guards" msgstr "" #, python-format msgid "Input new guards for %s:" msgstr "" msgid "Confirm patch queue switch" msgstr "" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "" #, python-format msgid "Guards: %d/%d" msgstr "" msgid "MQ options" msgstr "" msgid "Force push or pop (--force)" msgstr "" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "" msgid "Submitting p4 changelist..." msgstr "" msgid "Reverting p4 changelist..." msgstr "" msgid "Patch Branch Toolbar" msgstr "" msgid "Merge all pending dependencies" msgstr "" msgid "Backout current patch branch" msgstr "" msgid "Backport part of a changeset to a dependency" msgstr "" msgid "Start a new patch branch" msgstr "" msgid "Edit patch dependency graph" msgstr "" msgid "will be closed" msgstr "" #, python-format msgid "needs merge of %i heads\n" msgstr "" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "" #, python-format msgid "needs merge with %s\n" msgstr "" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "" msgid "&Goto (update workdir)" msgstr "" msgid "&Merge" msgstr "" msgid "No patch branch selected" msgstr "" msgid "No editor found" msgstr "" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" msgid "Graph" msgstr "그래프" msgid "Status" msgstr "" msgid "Title" msgstr "" msgid "Message" msgstr "" msgid "New Patch Branch" msgstr "" msgid "Patch message:" msgstr "" msgid "Patch date:" msgstr "" msgid "Patch user:" msgstr "" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" msgid "Review Board" msgstr "" msgid "Password:" msgstr "" msgid "Error" msgstr "오류" #, python-format msgid "Review draft posted to %s\n" msgstr "" #, python-format msgid "Review published to %s\n" msgstr "" msgid "Success" msgstr "" msgid "Repository ID:" msgstr "" msgid "Post Review" msgstr "" msgid "Review ID:" msgstr "" msgid "Update the fields of this existing request" msgstr "" msgid "Update Review" msgstr "" msgid "Create diff with all outgoing changes" msgstr "" msgid "Create diff with all changes on this branch" msgstr "" msgid "Publish request immediately" msgstr "" msgid "%p%" msgstr "" msgid "Connecting to Review Board..." msgstr "" msgid "Target:" msgstr "" msgid "Do not modify working copy (-k/--keep)" msgstr "" #, python-format msgid "Prune - %s" msgstr "" msgid "&Prune" msgstr "" msgid "No unknown files found" msgstr "" msgid "No ignored files found" msgstr "" msgid "No trash files found" msgstr "" msgid "Delete empty folders" msgstr "" msgid "Preserve files beginning with .hg" msgstr "" #, python-format msgid "%s - purge" msgstr "" msgid "Checking" msgstr "" msgid "Ready to purge." msgstr "" #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "" msgstr[1] "" msgid "Confirm file deletions" msgstr "" msgid "Are you sure you want to delete these files and/or folders?" msgstr "" msgid "Deletion failures" msgstr "" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "" msgstr[1] "" msgid "Deleting trash folder..." msgstr "" #, python-format msgid "Deleted %d files" msgstr "" #, python-format msgid "Deleted %d files and %d folders" msgstr "" msgid "Delete Patches" msgstr "" msgid "Remove patches from queue?" msgstr "" msgid "Keep patch files" msgstr "" #, python-format msgid "Patch fold - %s" msgstr "" msgid "New patch message:" msgstr "" msgid "Patches to fold" msgstr "" msgid "&Undo" msgstr "" msgid "&Redo" msgstr "" msgid "Cu&t" msgstr "" msgid "&Copy" msgstr "" msgid "&Paste" msgstr "" msgid "&Editor Options" msgstr "" msgid "&Wrap" msgstr "" msgctxt "wrap mode" msgid "&None" msgstr "" msgid "&Word" msgstr "" msgid "&Character" msgstr "" msgid "White&space" msgstr "" msgid "&Visible" msgstr "" msgid "&Invisible" msgstr "" msgid "&AfterIndent" msgstr "" msgid "&TAB Inserts" msgstr "" msgid "&Auto" msgstr "" msgid "&TAB" msgstr "" msgid "&Spaces" msgstr "" msgid "EOL &Visibility" msgstr "" msgid "EOL &Mode" msgstr "" msgid "&Windows" msgstr "" msgid "&Unix" msgstr "" msgid "&Mac" msgstr "" msgid "&Auto-Complete" msgstr "" msgid "### regular expression ###" msgstr "" msgid "Regular expression search pattern" msgstr "" msgid "Wrap search" msgstr "" msgid "Prev" msgstr "" msgid "Next" msgstr "" msgid "Unable to read file" msgstr "" msgid "Could not open the specified file for reading." msgstr "" msgid "This appears to be a binary file." msgstr "" msgid "An error occurred while reading the file." msgstr "" msgid "Text Translation Failure" msgstr "" msgid "Could not translate the file content from native encoding." msgstr "" msgid "Several characters would be lost." msgstr "" msgid "Unable to write file" msgstr "" msgid "Could not translate the file content to native encoding." msgstr "" msgid "Could not open the specified file for writing." msgstr "" msgid "An error occurred while writing the file." msgstr "" msgid "Try refreshing your repository." msgstr "" #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
                                                              Please edit your config" msgstr "" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
                                                              Please fix your config" msgstr "" #, python-format msgid "Operation aborted:

                                                              %(arg0)s." msgstr "" msgid "Repository is locked" msgstr "" msgid "hint:" msgstr "" msgid "Repository Error" msgstr "저장소 오류" msgid "No visual editor configured" msgstr "" msgid "Please configure a visual editor." msgstr "" msgid "Editor launch failure" msgstr "" msgid "Failed to open path in terminal" msgstr "" #, python-format msgid "\"%s\" is not a valid directory" msgstr "" #, python-format msgid "Invalid configuration: %s" msgstr "" msgid "Unable to start the following command:" msgstr "" msgid "No shell configured" msgstr "" msgid "A terminal shell must be configured" msgstr "" msgid "Please enter a username" msgstr "" msgid "You must identify yourself to Mercurial" msgstr "" msgid "Unable to translate input to local encoding." msgstr "" msgid "Checkmark files to add" msgstr "" msgid "Checkmark files to forget" msgstr "" msgid "Forget" msgstr "" msgid "Checkmark files to revert" msgstr "" msgid "Revert" msgstr "되돌리기" msgid "Checkmark files to remove" msgstr "" msgid "Remove" msgstr "제거" #, python-format msgid "%s - hg %s" msgstr "" msgid "Do not save backup files (*.orig)" msgstr "" msgid "Force removal of modified files (--force)" msgstr "" msgid "Add &Largefiles" msgstr "" msgid "No files selected" msgstr "파일 선택이 안됨" msgid "No operation to perform" msgstr "" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" msgid "Remove &Unmodified Files" msgstr "" msgid "Remove &All Selected Files" msgstr "" msgid "Rebase changeset and descendants" msgstr "" msgid "To rebase destination" msgstr "" msgid "Swap source and destination" msgstr "" msgid "Keep original changesets (--keep)" msgstr "" msgid "Keep original branch names (--keepbranches)" msgstr "" msgid "Collapse the rebased changesets (--collapse)" msgstr "" msgid "Rebase entire source branch (-b/--base)" msgstr "" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "" msgid "Rebase" msgstr "" #, python-format msgid "Rebase - %s" msgstr "" msgid "" "Before rebase, you must
                                                              commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the rebase" msgstr "" msgid "Rebase is complete" msgstr "" msgid "Rebase failed" msgstr "" msgid "Rebase aborted" msgstr "" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" msgid "Exiting with an unfinished rebase is not recommended." msgstr "" msgid "Consider aborting the rebase first." msgstr "" #, python-format msgid "Merge rejected patch chunks into %s" msgstr "" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "" msgid "Mark this chunk as unresolved" msgstr "" msgid "Reload File" msgstr "" msgid "Are you sure you want to reload this file?" msgstr "" msgid "All unsaved changes will be lost." msgstr "" msgid "Warning" msgstr "경고" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgid "Copy source -> destination" msgstr "" msgid "Copy Error" msgstr "복사 오류" msgid "Rename Error" msgstr "이름변경 오류" msgid "Select Source File" msgstr "원본(Source) 파일 선택" msgid "Select Source Folder" msgstr "원본(Source) 폴더 선택" msgid "Source does not exist." msgstr "" msgid "The source must be within the repository tree." msgstr "" msgid "The destination must be within the repository tree." msgstr "" msgid "Destination file already exists." msgstr "" msgid "Are you sure you want to overwrite it ?" msgstr "" #, python-format msgid "Copy - %s" msgstr "" #, python-format msgid "Rename - %s" msgstr "" msgid "Show all" msgstr "모두보기" msgid "### revision set query ###" msgstr "" msgid "Clear current query and query text" msgstr "" msgid "Trigger revision set query" msgstr "" msgid "Open advanced query editor" msgstr "" msgid "Delete selected query from history" msgstr "" msgid "filter" msgstr "필터" msgid "Toggle filtering of non-matched changesets" msgstr "" msgid "Show/Hide hidden changesets" msgstr "" msgid "Toggle graft relations visibility" msgstr "" msgid "Keyword Search" msgstr "" msgid "Revision Set" msgstr "" msgid "(unsaved)" msgstr "" msgid "Display graph the named branch only" msgstr "" msgid "Display only active branches" msgstr "" msgid "Display closed branches" msgstr "" msgid "Include all ancestors" msgstr "" msgctxt "column header" msgid "Graph" msgstr "그래프" msgctxt "column header" msgid "Rev" msgstr "" msgctxt "column header" msgid "Branch" msgstr "분기" msgctxt "column header" msgid "Description" msgstr "" msgctxt "column header" msgid "Author" msgstr "작성자" msgctxt "column header" msgid "Tags" msgstr "태그" msgctxt "column header" msgid "Latest tags" msgstr "" msgctxt "column header" msgid "Node" msgstr "" msgctxt "column header" msgid "Git Commit" msgstr "" msgctxt "column header" msgid "Age" msgstr "" msgctxt "column header" msgid "Local Time" msgstr "" msgctxt "column header" msgid "UTC Time" msgstr "" msgctxt "column header" msgid "Changes" msgstr "변경점" msgctxt "column header" msgid "Converted From" msgstr "" msgctxt "column header" msgid "Phase" msgstr "" msgctxt "column header" msgid "Filename" msgstr "파일이름" msgid "Searching..." msgstr "" #, python-format msgid "filling (%d)" msgstr "" msgid "Mercurial User" msgstr "" msgid "Repository Registry" msgstr "" msgid "Show &Paths" msgstr "" msgid "Show S&hort Paths" msgstr "" msgid "&Scan Repositories at Startup" msgstr "" msgid "Scan &Remote Repositories" msgstr "" msgid "&Refresh Repository List" msgstr "" msgid "Refresh the Repository Registry list" msgstr "" msgid "&Open" msgstr "" msgid "Open the repository in a new tab" msgstr "" msgid "&Open All" msgstr "" msgid "Open all repositories in new tabs" msgstr "" msgid "New &Group" msgstr "" msgid "Create a new group" msgstr "" msgid "Rename the entry" msgstr "" msgid "Settin&gs" msgstr "" msgid "View the repository's settings" msgstr "" msgid "Re&move from Registry" msgstr "" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" msgid "Clon&e..." msgstr "" msgid "Clone Repository" msgstr "" msgid "E&xplore" msgstr "" msgid "Open the repository in a file browser" msgstr "" msgid "&Terminal" msgstr "" msgid "Open a shell terminal in the repository root" msgstr "" msgid "&Add Repository..." msgstr "" msgid "Add a repository to this group" msgstr "" msgid "A&dd Subrepository..." msgstr "" msgid "Convert an existing repository into a subrepository" msgstr "" msgid "Remo&ve Subrepository..." msgstr "" msgid "Remove this subrepository from the current revision" msgstr "" msgid "Copy the root path of the repository to the clipboard" msgstr "" msgid "Sort by &Name" msgstr "" msgid "Sort the group by short name" msgstr "" msgid "Sort by &Path" msgstr "" msgid "Sort the group by full path" msgstr "" msgid "&Sort by .hgsub" msgstr "" msgid "Order the subrepos as in .hgsub" msgstr "" msgid "Select repository directory to add" msgstr "" msgid "Select an existing repository to add as a subrepo" msgstr "" msgid "Cannot add subrepository" msgstr "" #, python-format msgid "%s is not a valid repository" msgstr "" #, python-format msgid "\"%s\" is not a folder" msgstr "" msgid "A repository cannot be added as a subrepo of itself" msgstr "" #, python-format msgid "" "The selected folder:

                                                              %s

                                                              is not inside the target repository." "

                                                              This may be allowed but is greatly discouraged.
                                                              If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" msgid "Cannot open repository" msgstr "" #, python-format msgid "The selected repository:

                                                              %s

                                                              cannot be open!" msgstr "" msgid "Subrepository already exists" msgstr "" #, python-format msgid "" "The selected repository:

                                                              %s

                                                              is already a subrepository of:" "

                                                              %s

                                                              as: \"%s\"" msgstr "" msgid "Failed to add subrepository" msgstr "" #, python-format msgid "Cannot open the .hgsub file in:

                                                              %s" msgstr "" msgid "Failed to add repository" msgstr "" #, python-format msgid "The .hgsub file already contains the line:

                                                              %s" msgstr "" msgid "Subrepo added to .hgsub file" msgstr "" #, python-format msgid "" "The selected subrepo:

                                                              %s

                                                              has been added to the .hgsub " "file of the repository:

                                                              %s

                                                              Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" #, python-format msgid "Cannot update the .hgsub file in:

                                                              %s" msgstr "" msgid "Could not open .hgsub file" msgstr "" msgid "Cannot read the .hgsub file.

                                                              Subrepository removal failed." msgstr "" msgid "Subrepository not found" msgstr "" msgid "" "The selected subrepository was not found on the .hgsub file.

                                                              Perhaps it " "has already been removed?" msgstr "" msgid "&Yes" msgstr "" msgid "&No" msgstr "" msgid "Remove the selected repository?" msgstr "" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" msgid "Subrepository removed from .hgsub" msgstr "" msgid "" "The selected subrepository has been removed from the .hgsub file.

                                                              Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" msgid "Could not update .hgsub file" msgstr "" msgid "Cannot update the .hgsub file.

                                                              Subrepository removal failed." msgstr "" #, python-format msgid "Unsupported repository type (%s)" msgstr "" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "" msgid "New Group" msgstr "새 그룹" msgid "Confirm Delete" msgstr "삭제 확인" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "" msgid "Could not get subrepository list" msgstr "" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

                                                              %s" msgstr "" msgid "Could not open some subrepositories" msgstr "" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

                                                              %s

                                                              The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

                                                              %s" msgstr "" msgid "Updating repository registry" msgstr "" #, python-format msgid "Loading repository %s" msgstr "" msgid "Repository Registry updated" msgstr "" msgid "Close tab" msgstr "" msgid "Close other tabs" msgstr "" msgid "Undo close tab" msgstr "" msgid "Reopen last closed tab" msgstr "" msgid "Undo close other tabs" msgstr "" msgid "Reopen last closed tab group" msgstr "" msgid "Failed to open repository" msgstr "" msgid "&Sort" msgstr "" #, python-format msgid "Local Repository %s" msgstr "" #, python-format msgid "" "An exception happened while loading the subrepos of:

                                                              \"%s\"

                                                              " msgstr "" #, python-format msgid "The exception error message was:

                                                              %s

                                                              " msgstr "" msgid "Click OK to continue or Abort to exit." msgstr "" msgid "Error loading subrepos" msgstr "" msgid "Unable to update repository name" msgstr "" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "" msgid "default" msgstr "기본" msgid "C&hoose Log Columns..." msgstr "" msgid "&Resize Columns" msgstr "" #, python-format msgid "Goto ancestor of %s and %s" msgstr "" #, python-format msgid "Can't find revision '%s'" msgstr "" msgid "Drag to change order" msgstr "" msgid "Workbench Log Columns" msgstr "" msgctxt "tab tooltip" msgid "Revision details" msgstr "" msgctxt "tab tooltip" msgid "Commit" msgstr "" msgctxt "tab tooltip" msgid "Search" msgstr "찾기" msgctxt "tab tooltip" msgid "Console log" msgstr "" msgctxt "tab tooltip" msgid "Synchronize" msgstr "동기화" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "" #, python-format msgid "%s " msgstr "" #, python-format msgid "Found %d incoming changesets" msgstr "" msgid "Pull" msgstr "" msgid "Pull incoming changesets into your repository" msgstr "" msgid "Reject incoming changesets" msgstr "" #, python-format msgid "Push current branch (%s)" msgstr "" #, python-format msgid "Push up to current revision (#%d)" msgstr "" #, python-format msgid "Push up to revision #%d" msgstr "" msgid "Push all" msgstr "모두 밀어넣기" msgid "no outgoing changesets" msgstr "" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets" msgstr "" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "" msgid "Nothing to push" msgstr "" msgid "No revision found" msgstr "" #, python-format msgid "%s - verify repository" msgstr "" #, python-format msgid "%s - recover repository" msgstr "" msgid "No transaction available" msgstr "" msgid "There is no rollback transaction available" msgstr "" msgid "Undo last commit?" msgstr "" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "" msgid "Undo last transaction?" msgstr "" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "" msgid "Unable to determine working copy revision\n" msgstr "" msgid "Remove current working revision?" msgstr "" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" msgid "Tab cannot exit" msgstr "" msgid "Pus&h" msgstr "" msgid "Push to &Here" msgstr "" msgid "Push Selected &Branch" msgstr "" msgid "Push &All" msgstr "" msgid "&Update..." msgstr "" msgid "Bro&wse at Revision" msgstr "" msgid "&Merge with Local..." msgstr "" msgid "&Tag..." msgstr "" msgid "Boo&kmark..." msgstr "" msgid "Top&ic..." msgstr "" msgid "Sig&n..." msgstr "" msgid "&Backout..." msgstr "" msgid "Revert &All Files..." msgstr "" msgid "Copy &Hash" msgstr "" msgid "E&xport" msgstr "" msgid "E&xport Patch..." msgstr "" msgid "&Email Patch..." msgstr "" msgid "&Archive..." msgstr "" msgid "&Bundle Rev and Descendants..." msgstr "" msgid "Change &Phase to" msgstr "" msgid "&Graft to Local..." msgstr "" msgid "Modi&fy History" msgstr "" msgid "&Unapply Patch" msgstr "" msgid "Import to &MQ" msgstr "" msgid "MQ &Options" msgstr "" msgid "&Rebase..." msgstr "" msgid "&Prune..." msgstr "" msgid "&Strip..." msgstr "" msgid "Post to Re&view Board..." msgstr "" msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "" msgid "Write diff file" msgstr "" msgid "Unable to write diff file" msgstr "" msgid "Unable to compress history" msgstr "" msgid "Selected changeset pair not related" msgstr "" msgid "Visual Diff..." msgstr "" msgid "Export Diff..." msgstr "" msgid "Export Selected..." msgstr "" msgid "Email Selected..." msgstr "" msgid "Copy Selected as Patch" msgstr "" msgid "Archive DAG Range..." msgstr "" msgid "Export DAG Range..." msgstr "" msgid "Email DAG Range..." msgstr "" msgid "Bundle DAG Range..." msgstr "" msgid "Bisect - Good, Bad..." msgstr "" msgid "Bisect - Bad, Good..." msgstr "" msgid "Compress History..." msgstr "" msgid "Rebase..." msgstr "" msgid "Goto common ancestor" msgstr "" msgid "Graft Selected to local..." msgstr "" msgid "&Prune Selected..." msgstr "" msgid "Post Selected to Review Board..." msgstr "" msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "" msgid "Apply onto original parent" msgstr "" msgid "Apply only this patch" msgstr "" msgid "Fold patches..." msgstr "" msgid "Delete patches..." msgstr "" msgid "Rename patch..." msgstr "" msgid "Pull to here..." msgstr "" msgid "Visual diff..." msgstr "시각적 비교..." msgid "Export patch" msgstr "" msgid "Patch Files (*.patch)" msgstr "" msgid "Cannot export revision" msgstr "" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" msgid "There is already an existing folder with that same name." msgstr "" msgid "Replace" msgstr "" msgid "Append" msgstr "" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" msgid "What do you want to do?\n" msgstr "" msgid "Replace the existing patch files.\n" msgstr "" msgid "Append the changes to the existing patch files.\n" msgstr "" msgid "Abort the export operation.\n" msgstr "" msgid "Patch files already exist" msgstr "" msgid "Patch exported" msgstr "" #, python-format msgid "" "Revision #%d (%s) was exported to:

                                                              %s%s%s" msgstr "" msgid "Patches exported" msgstr "" #, python-format msgid "%d patches were exported to:

                                                              %s" msgstr "" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

                                                              Are you sure you want to use revert?

                                                              (use " "update to checkout another revision)" msgstr "" msgid "Filter b&y" msgstr "" msgid "&Ancestors and Descendants" msgstr "" msgid "A&uthor" msgstr "" msgid "&Branch" msgstr "" msgid "&More Options..." msgstr "" msgid "Unable to merge" msgstr "" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "" msgid "Unable to backout" msgstr "백아웃 실패" msgid "Write bundle" msgstr "" msgid "Backwards phase change requested" msgstr "" msgid "Do you really want to make this revision secret?" msgstr "" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" msgid "&Make secret" msgstr "" msgid "&Cancel" msgstr "" msgid "Do you really want to force a backwards phase transition?" msgstr "" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" msgid "&Force" msgstr "" msgid "Cannot import selected revision" msgstr "" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" msgid "Invalid command" msgstr "" msgid "The selected command is empty" msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" msgid "Failed to execute custom TortoiseHg command" msgstr "" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "" msgid "Failed to execute custom command" msgstr "" #, python-format msgid "The command \"%s\" could not be executed." msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" msgid "&Edit Toolbar" msgstr "" msgid "&Refresh" msgstr "" msgid "&Filter Toolbar" msgstr "" #, python-format msgid "TortoiseHg: %s" msgstr "" msgid "S&tatus Bar" msgstr "" #, python-format msgid "Resolve Conflicts - %s" msgstr "" msgid "Local revision information" msgstr "" msgid "Other revision information" msgstr "" msgid "Unresolved conflicts" msgstr "" msgid "Mercurial Re&solve" msgstr "" msgid "Attempt automatic (trivial) merge" msgstr "" msgid "Tool &Resolve" msgstr "" msgid "Merge using selected merge tool" msgstr "" msgid "&Take Local" msgstr "" msgid "Accept the local file version (yours)" msgstr "" msgid "Take &Other" msgstr "" msgid "Accept the other file version (theirs)" msgstr "" msgid "&Mark as Resolved" msgstr "" msgid "Mark this file as resolved" msgstr "" msgid "Diff &Local to Ancestor" msgstr "" msgid "&Diff Other to Ancestor" msgstr "" msgid "Resolved conflicts" msgstr "" msgid "&Edit File" msgstr "" msgid "Edit resolved file" msgstr "" msgid "3-&Way Diff" msgstr "" msgid "Visual three-way diff" msgstr "" msgid "Visual diff between resolved file and first parent" msgstr "" msgid "&Diff to Other" msgstr "" msgid "Visual diff between resolved file and second parent" msgstr "" msgid "Mark as &Unresolved" msgstr "" msgid "Mark this file as unresolved" msgstr "" msgid "Detected merge/diff tools:" msgstr "" msgid "Command output" msgstr "" msgid "Unable to show subrepository files" msgstr "" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" msgid "There are merge conflicts to be resolved" msgstr "" msgid "All conflicts are resolved." msgstr "" msgid "There are no conflicting file merges." msgstr "" msgid "Exit without finishing resolve?" msgstr "" msgid "Unresolved conflicts remain. Are you sure?" msgstr "" msgid "E&xit" msgstr "" msgid "Ext" msgstr "" msgid "Repository" msgstr "저장소" msgid "" msgstr "<기본>" msgid "File List Toolbar" msgstr "" msgid "Ma&nifest Mode" msgstr "" msgid "Show all version-controlled files in tree view" msgstr "" msgid "&Flat List" msgstr "" msgid "### filter text ###" msgstr "" msgid "Changed by &This Commit" msgstr "" msgid "Show files changed by this commit" msgstr "" msgid "Compare to &1st Parent" msgstr "" msgid "Compare to &2nd Parent" msgstr "" msgid "Toggle parent to be used as the base revision" msgstr "" msgid "List Optio&ns" msgstr "" #, python-format msgid "%s - Revision Details (%s)" msgstr "" #, python-format msgid "Revert - %s" msgstr "" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "" msgid "Revert all files to this revision" msgstr "" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "" msgid "null revision (i.e. remove file(s))" msgstr "" msgid "Changeset:" msgstr "" msgid "Child:" msgstr "" msgid "Predecessors:" msgstr "" msgid "Successors:" msgstr "" msgid "Head is closed!" msgstr "" msgid "Changesets where username contains string." msgstr "" msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" msgid "Like \"keyword(string)\" but accepts a regex." msgstr "" msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" msgid "The named bookmark or all bookmarks." msgstr "" msgid "The named tag or all tags." msgstr "" msgid "Changeset is tagged." msgstr "" msgid "Changeset is a named branch head." msgstr "" msgid "Changeset is a merge changeset." msgstr "" msgid "Changeset is closed." msgstr "" msgid "" "Changesets within the interval, see help dates" msgstr "" msgid "Greatest common ancestor of the two changesets." msgstr "" msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" msgid "Changesets which modify files matched by pattern." msgstr "" msgid "Changesets which add files matched by pattern." msgstr "" msgid "Changesets which remove files matched by pattern." msgstr "" msgid "Changesets containing files matched by pattern." msgstr "" msgid "All changesets belonging to the branches of changesets in set." msgstr "" msgid "Members of a set with no children in set." msgstr "" msgid "Changesets which are descendants of changesets in set." msgstr "" msgid "Changesets that are ancestors of a changeset in set." msgstr "" msgid "Child changesets of changesets in set." msgstr "" msgid "The set of all parents for all changesets in set." msgstr "" msgid "First parent for all changesets in set, or the working directory." msgstr "" msgid "Second parent for all changesets in set, or the working directory." msgstr "" msgid "Changesets with no parent changeset in set." msgstr "" msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" msgid "Changeset with lowest revision number in set." msgstr "" msgid "Changeset with highest revision number in set." msgstr "" msgid "First n members of a set." msgstr "" msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "" msgid "All changesets, the same as 0:tip." msgstr "" msgid "Revision Set Query" msgstr "" msgid "all revisions converted from subversion" msgstr "" msgid "changeset which represents converted svn revision" msgstr "" msgid "Common sets" msgstr "" msgid "File pattern sets" msgstr "" msgid "Set Ancestry" msgstr "" msgid "Set Logic" msgstr "" msgid "" "help " "revsets" msgstr "" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" #, python-format msgid "thg: unknown command '%s'\n" msgstr "" #, python-format msgid "thg %s: %s\n" msgstr "" #, python-format msgid "thg: %s\n" msgstr "" #, python-format msgid "abort: %s!\n" msgstr "" #, python-format msgid "abort: %s\n" msgstr "" #, python-format msgid "(%s)\n" msgstr "" msgid "option --config may not be abbreviated!" msgstr "" msgid "invalid arguments" msgstr "" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" msgid "repository root directory or symbolic path name" msgstr "" msgid "enable additional output" msgstr "" msgid "suppress output" msgstr "" msgid "display help and exit" msgstr "" msgid "set/override config option (use 'section.name=value')" msgstr "" msgid "enable debugging output" msgstr "" msgid "start debugger" msgstr "디버거 시작" msgid "print command execution profile" msgstr "" msgid "do not fork GUI process" msgstr "" msgid "always fork GUI process" msgstr "" msgid "read file list from file" msgstr "" msgid "read file list from file encoding utf-8" msgstr "" msgid "thg about" msgstr "" msgid "thg add [FILE]..." msgstr "" msgid "revision to annotate" msgstr "" msgid "open to line" msgstr "" msgid "initial search pattern" msgstr "" msgid "thg annotate" msgstr "" #, python-format msgid "invalid line number: %s" msgstr "" msgid "revision to archive" msgstr "" msgid "thg archive" msgstr "" msgid "merge with old dirstate parent after backout" msgstr "" msgid "parent to choose when backing out merge" msgstr "" msgid "revision to backout" msgstr "" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "" msgid "thg bisect" msgstr "" msgid "revision" msgstr "" msgid "thg bookmarks [-r REV] [NAME]" msgstr "" msgid "only one new bookmark name allowed" msgstr "" msgid "the clone will include an empty working copy (only a repository)" msgstr "" msgid "revision, tag or branch to check out" msgstr "" msgid "include the specified changeset" msgstr "" msgid "clone only the specified branch" msgstr "" msgid "use pull protocol to copy metadata" msgstr "" msgid "use uncompressed transfer (fast over LAN)" msgstr "" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "" msgid "record user as committer" msgstr "" msgid "record datecode as commit date" msgstr "" msgid "thg commit [OPTIONS] [FILE]..." msgstr "" msgid "thg debugblockmatcher" msgstr "" msgid "thg debugbugreport [TEXT]" msgstr "" msgid "thg debugconsole" msgstr "" msgid "thg debuglighthg" msgstr "" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "" msgid "no command specified" msgstr "" msgid "thg drag_copy SOURCE... DEST" msgstr "" msgid "thg drag_move SOURCE... DEST" msgstr "" msgid "a revision to send" msgstr "" msgid "thg email [REVS]" msgstr "" msgid "use only one form to specify the revision" msgstr "" msgid "select the specified revision" msgstr "" msgid "side-by-side comparison of revisions" msgstr "" msgid "thg filelog [OPTION]... FILE" msgstr "" msgid "requires a single filename" msgstr "" msgid "thg forget [FILE]..." msgstr "" msgid "revisions to graft" msgstr "" msgid "thg graft [-r] REV..." msgstr "" msgid "You must provide revisions to graft" msgstr "" msgid "ignore case during search" msgstr "" msgid "thg grep" msgstr "" msgid "thg guess" msgstr "" msgid "thg help [COMMAND]" msgstr "" msgid "global options:" msgstr "" msgid "use \"thg help\" for the full list of commands" msgstr "" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "" msgid "" "list of commands:\n" "\n" msgstr "" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" msgid "(no help text available)" msgstr "" msgid "options:\n" msgstr "" msgid "no commands defined\n" msgstr "" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "" msgid "" "basic commands:\n" "\n" msgstr "" #, python-format msgid " (default: %s)" msgstr "" msgid "thg hgignore [FILE]" msgstr "" msgid "import to the patch queue (MQ)" msgstr "" msgid "thg import [OPTION] [SOURCE]..." msgstr "" msgid "thg init [DEST]" msgstr "" msgid "thg lock" msgstr "" msgid "search for a given text or revset" msgstr "" msgid "(DEPRECATED)" msgstr "" msgid "open a new workbench window" msgstr "" msgid "thg log [OPTIONS] [FILE]" msgstr "" msgid "cannot specify both -k/--query and filenames" msgstr "" msgid "revision to display" msgstr "" msgid "thg manifest [-r REV] [FILE]" msgstr "" msgid "revision to merge" msgstr "" msgid "thg merge [[-r] REV]" msgstr "" msgid "Merge revision not specified or not found" msgstr "" msgid "a revision to post" msgstr "" msgid "thg postreview [-r] REV..." msgstr "" msgid "reviewboard extension not enabled" msgstr "" #, python-format msgid "see %(url)s" msgstr "" msgid "no revisions specified" msgstr "" msgid "revisions to prune" msgstr "" msgid "thg prune [-r] REV..." msgstr "" msgid "thg purge" msgstr "" msgid "keep original changesets" msgstr "" msgid "keep original branch names" msgstr "" msgid "rebase from the specified changeset" msgstr "" msgid "rebase onto the specified changeset" msgstr "" msgid "thg rebase -s REV -d REV [--keep]" msgstr "" msgid "Rebase already in progress" msgstr "" msgid "Resuming rebase already in progress" msgstr "" msgid "You must provide source and dest arguments" msgstr "" msgid "thg rejects [FILE]" msgstr "" msgid "You must provide the path to a file" msgstr "" msgid "thg remove [FILE]..." msgstr "" msgid "thg rename [SOURCE] [DEST]" msgstr "" msgid "field to give initial focus" msgstr "" msgid "thg repoconfig" msgstr "" msgid "thg resolve" msgstr "" msgid "the revision to show" msgstr "" msgid "thg revdetails [-r REV]" msgstr "" msgid "thg revert [FILE]..." msgstr "" msgid "revision to update" msgstr "" msgid "thg rupdate [[-r] REV]" msgstr "" msgid "name of the hgweb config file (serve more than one repository)" msgstr "" msgid "name of the hgweb config file (DEPRECATED)" msgstr "" msgid "thg serve [--web-conf FILE]" msgstr "" msgid "thg shellconfig" msgstr "" msgid "thg shelve" msgstr "" msgid "sign even if the sigfile is modified" msgstr "" msgid "make the signature local" msgstr "" msgid "the key id to sign with" msgstr "" msgid "do not commit the sigfile after signing" msgstr "" msgid "use as commit message" msgstr "" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "" msgid "Please enable the Gpg extension first." msgstr "" msgid "show files without changes" msgstr "" msgid "show ignored files" msgstr "" msgid "thg status [OPTIONS] [FILE]" msgstr "" msgid "discard uncommitted changes (no backup)" msgstr "" msgid "do not back up stripped revisions" msgstr "" msgid "do not modify working copy during strip" msgstr "" msgid "revision to strip" msgstr "" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "" msgid "open the bookmark sync window" msgstr "" msgid "thg sync [OPTION]... [PEER]" msgstr "" msgid "replace existing tag" msgstr "" msgid "make the tag local" msgstr "" msgid "revision to tag" msgstr "" msgid "remove a tag" msgstr "" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "" msgid "wait until the second ticks over" msgstr "" msgid "notify the shell for paths given" msgstr "" msgid "remove the status cache" msgstr "" msgid "show the contents of the status cache (no update)" msgstr "" msgid "update all repos in current dir" msgstr "" msgid "thg thgstatus [OPTION]" msgstr "" msgid "thg topics [-r REV] [NAME]" msgstr "" msgid "Please enable the Topic extension first." msgstr "" msgid "only one new topic name allowed" msgstr "" msgid "thg update [-C] [[-r] REV]" msgstr "" msgid "thg userconfig" msgstr "" msgid "changeset to view in diff tool" msgstr "" msgid "revisions to view in diff tool" msgstr "" msgid "bundle file to preview" msgstr "" msgid "launch visual diff tool" msgstr "" msgid "print license" msgstr "" msgid "thg version [OPTION]" msgstr "" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "" msgid "Location:" msgstr "" msgid "Update to:" msgstr "" msgid "Options:" msgstr "옵션:" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "" msgid "Perform a push before updating (-p/--push)" msgstr "" msgid "Allow pushing new branches (--new-branch)" msgstr "" msgid "Force push to remote location (-f/--force)" msgstr "" msgid "remove working directory" msgstr "" msgid "unknown revision!" msgstr "" #, python-format msgid "Remote Update - %s" msgstr "" msgid "&Update" msgstr "" msgid "Log" msgstr "" msgid "Repositories" msgstr "" #, python-format msgid "Running at %s" msgstr "" msgid "Stopped" msgstr "" msgid "TortoiseHg Web Server" msgstr "" msgid "Web Server" msgstr "" msgid "Port:" msgstr "" msgid "Status:" msgstr "" msgid "Start" msgstr "시작" msgid "Settings" msgstr "" msgid "" msgstr "" msgid "&True" msgstr "" msgid "&False" msgstr "" msgid "&Unspecified" msgstr "" #, python-format msgid "%dpt" msgstr "" msgid "Bold" msgstr "" msgid "Italic" msgstr "" msgid "Strike" msgstr "" msgid "Underline" msgstr "" msgid "&Set..." msgstr "" msgid "&Clear" msgstr "" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "" msgid "&Browse..." msgstr "" msgid "UI Language" msgstr "" msgid "Specify your preferred user interface language (restart needed)" msgstr "" msgid "Three-way Merge Tool" msgstr "" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" msgid "Visual Diff Tool" msgstr "" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" msgid "Visual Editor" msgstr "" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" msgid "CLI Editor" msgstr "" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" msgid "Shell" msgstr "" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
                                                              Default, Windows: cmd.exe /" "K title %(reponame)s
                                                              Default, OS X: not set
                                                              Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" msgid "Immediate Operations" msgstr "" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" msgid "Tab Width" msgstr "" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" msgid "Force Repo Tab" msgstr "" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "" msgid "Monitor Repo Changes" msgstr "" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" msgid "Max Diff Size" msgstr "" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" msgid "Fork GUI" msgstr "" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" msgid "Full Path Title" msgstr "" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" msgid "Auto-resolve merges" msgstr "" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" msgid "New Repo Skeleton" msgstr "" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "" msgid "Single Workbench Window" msgstr "" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" msgid "Default widget" msgstr "" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" msgid "" "Open new tabs next\n" "to the current tab" msgstr "" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" msgid "Author Coloring" msgstr "" msgid "Color changesets by author name. Default: False" msgstr "" msgid "Full Authorname" msgstr "" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" msgid "Task Tabs" msgstr "" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" msgid "Task Toolbar Order" msgstr "" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
                                                              Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
                                                              Valid names are: log commit sync grep and " "pbranch.
                                                              Default: log commit grep pbranch | sync" msgstr "" msgid "Long Summary" msgstr "" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" msgid "Log Batch Size" msgstr "" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "" msgid "Dead Branches" msgstr "" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" msgid "Branch Colors" msgstr "" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" msgid "Hide Tags" msgstr "" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" msgid "Activate Bookmarks" msgstr "" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

                                                              • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
                                                              • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
                                                              • never: Never show any prompt to " "activate any bookmarks.

                                                              Default: prompt" msgstr "" msgid "Show Family Line" msgstr "" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

                                                              Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" msgid "Use optimized graph layouter" msgstr "" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

                                                              Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" msgctxt "config item" msgid "Commit" msgstr "" msgid "Username" msgstr "" msgid "" "Name associated with commits. The common format is:
                                                              Full Name <" "email@example.com>" msgstr "" msgid "Ask Username" msgstr "" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" msgid "Summary Line Length" msgstr "" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" msgid "Close After Commit" msgstr "" msgid "Close the commit tool after every successful commit. Default: False" msgstr "" msgid "Push After Commit" msgstr "" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" msgid "Auto Commit List" msgstr "" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" msgid "Auto Exclude List" msgstr "" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" msgid "English Messages" msgstr "" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" msgid "New Commit Phase" msgstr "" msgid "The phase of new commits. Default: draft" msgstr "" msgid "Secret MQ Patches" msgstr "" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "" msgid "Check Subrepo Phase" msgstr "" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" msgid "Monitor working
                                                              directory changes" msgstr "" msgid "" "Select when the working directory status list will be refreshed:
                                                              - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
                                                              TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
                                                              - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
                                                              - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
                                                              Default: auto" msgstr "" msgid "Confirm adding unknown files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Confirm deleting files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Sync" msgstr "" msgid "After Pull Operation" msgstr "" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" msgid "Default Push" msgstr "" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

                                                              • all: The default. Push all changes in all " "branches.
                                                              • branch: Push all changes in the current branch.
                                                              • revision: Push the changes in the current branch up to the current revision.

                                                              Default: all" msgstr "" msgid "Confirm Push" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" msgid "Target Combo" msgstr "" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

                                                              • auto: The default. Show the combo if more than one target " "configured.
                                                              • always: Always show the combo.

                                                              Default: auto" msgstr "" msgid "SSH Command" msgstr "" msgid "" "Command to use for SSH connections.

                                                              Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" msgid "Subrepository Features:" msgstr "" msgid "Allow Hg Subrepos" msgstr "" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" msgid "Allow Git Subrepos" msgstr "" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

                                                              See the security note before enabling Git " "subrepos." msgstr "" msgid "Allow SVN Subrepos" msgstr "" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

                                                              See the security note before enabling " "Subversion subrepos." msgstr "" msgid "Server" msgstr "" msgid "Repository Details:" msgstr "" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" msgid "Encoding" msgstr "" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" msgid "'Publishing' repository" msgstr "" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" msgid "Web Server:" msgstr "" msgid "Textual description of the repository's purpose or contents." msgstr "" msgid "Contact" msgstr "" msgid "Name or email address of the person in charge of the repository." msgstr "" msgid "Style" msgstr "" msgid "Which template map style to use" msgstr "" msgid "Archive Formats" msgstr "" msgid "Comma separated list of archive formats allowed for downloading" msgstr "" msgid "Port" msgstr "" msgid "Port to listen on" msgstr "" msgid "Push Requires SSL" msgstr "" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" msgid "Stripes" msgstr "" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" msgid "Max Files" msgstr "" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "" msgid "Max Changes" msgstr "" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "" msgid "Allow Push" msgstr "" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" msgid "Deny Push" msgstr "" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" msgid "Proxy" msgstr "" msgid "Host" msgstr "" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "" msgid "Bypass List" msgstr "" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "" msgid "Optional. User name to authenticate with at the proxy server" msgstr "" msgid "Password" msgstr "" msgid "Optional. Password to authenticate with at the proxy server" msgstr "" msgid "From" msgstr "" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "" msgid "To" msgstr "" msgid "Comma-separated list of recipient email addresses" msgstr "" msgid "Cc" msgstr "" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "" msgid "Bcc" msgstr "" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "" msgid "method" msgstr "" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" msgid "SMTP Host" msgstr "" msgid "Host name of mail server" msgstr "" msgid "SMTP Port" msgstr "" msgid "Port to connect to on mail server. Default: 25" msgstr "" msgid "SMTP TLS" msgstr "" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "" msgid "SMTP Username" msgstr "" msgid "Username to authenticate to mail server with" msgstr "" msgid "SMTP Password" msgstr "" msgid "Password to authenticate to mail server with" msgstr "" msgid "Local Hostname" msgstr "" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "" msgid "Diff and Annotate" msgstr "" msgid "Patch EOL" msgstr "" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" msgid "Git Format" msgstr "" msgid "Use git extended diff header format. Default: False" msgstr "" msgid "MQ Git Format" msgstr "" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" msgid "No Dates" msgstr "" msgid "Do not include modification dates in diff headers. Default: False" msgstr "" msgid "Show Function" msgstr "" msgid "Show which function each change is in. Default: False" msgstr "" msgid "Ignore White Space" msgstr "" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "" msgid "Ignore WS Amount" msgstr "" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "" msgid "Ignore Blank Lines" msgstr "" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "" msgid "Annotate:" msgstr "" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "" msgid "Fonts" msgstr "" msgid "Message Font" msgstr "" msgid "Font used to display commit messages. Default: monospace 10" msgstr "" msgid "Diff Font" msgstr "" msgid "Font used to display text differences. Default: monospace 10" msgstr "" msgid "ChangeLog Font" msgstr "" msgid "Font used to display changelog data. Default: monospace 10" msgstr "" msgid "Output Font" msgstr "" msgid "Font used to display output messages. Default: sans 8" msgstr "" msgid "Extensions" msgstr "" msgid "Tools" msgstr "" msgid "Hooks" msgstr "" msgid "Issue Tracking" msgstr "" msgid "Issue Regex" msgstr "" msgid "Defines the regex to match when picking up issue numbers." msgstr "" msgid "Issue Link" msgstr "" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" msgid "Inline Tags" msgstr "" msgid "Show tags at start of commit message." msgstr "" msgid "Mandatory Issue Reference" msgstr "" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" msgid "Issue Tracker Plugin" msgstr "" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" msgid "Configure Issue Tracker" msgstr "" msgid "Configure the selected COM Bug Tracker plugin." msgstr "" msgid "Issue Tracker Trigger" msgstr "" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

                                                              • never: Do not update the Issue Tracker " "state automatically.
                                                              • commit: Update the Issue Tracker state after " "a successful commit.

                                                              Default: never" msgstr "" msgid "Changeset Link" msgstr "" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
                                                              The template string " "uses a normal mercurial template syntax, such as:

                                                              • {node|short} : replaced by " "the 12 digit revision id.
                                                              • {rev} : replaced by the revision number." "
                                                              • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
                                                              For example, in order to " "link to bitbucket commit pages you can set this to:
                                                              https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
                                                              You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
                                                              https://github.com/torvalds/" "linux/commit/{gitnode}
                                                              https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
                                                              " msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "" msgid "User name to authenticate with review board" msgstr "" msgid "Password to authenticate with review board" msgstr "" msgid "Server Repository ID" msgstr "" msgid "The default repository id for this repo on the review board server" msgstr "" msgid "Target Groups" msgstr "" msgid "A comma separated list of target groups" msgstr "" msgid "Target People" msgstr "" msgid "A comma separated list of target people" msgstr "" msgid "Kiln Bfiles" msgstr "" msgid "Patterns" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" msgid "Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" msgid "System Cache" msgstr "" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "" msgid "Simplelock" msgstr "" msgid "Lock Clone" msgstr "" msgid "" "Location of local clone of organizational lock repository.

                                                              This repository " "must contain a \"locked\" text file" msgstr "" msgid "Largefiles" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" msgid "Minimum Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" msgid "User Cache" msgstr "" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" msgid "Projrc" msgstr "" msgid "Require confirmation" msgstr "" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

                                                              • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
                                                              • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
                                                              • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
                                                              " msgstr "" msgid "Servers" msgstr "" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" msgid "Include" msgstr "" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" msgid "Exclude" msgstr "" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" msgid "Update on incoming" msgstr "" msgid "" "Let the user update the projrc on incoming:
                                                              • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
                                                              • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
                                                              • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                                                                Default: never" msgstr "" msgid "GnuPG" msgstr "" msgid "Specify the path to GPG. Default: gpg" msgstr "" msgid "Key ID" msgstr "" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "" msgid "TortoiseHg Settings" msgstr "" msgid "Iniparse package not found" msgstr "" msgid "Can't change settings without iniparse package - view is readonly." msgstr "" #, python-format msgid "%s's global settings" msgstr "" msgid "No repository found" msgstr "" msgid "no repo at " msgstr "" #, python-format msgid "%s project settings (.hg/projrc)" msgstr "" #, python-format msgid "%s repository settings" msgstr "" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "" msgid "Apply changes before exit?" msgstr "" msgid "&No (discard changes)" msgstr "" msgid "Reload" msgstr "" msgid "Settings File:" msgstr "" msgid "Confirm Save" msgstr "" msgid "Save changes before editing?" msgstr "" msgid "&Save" msgstr "" msgid "Confirm Reload" msgstr "" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" msgid "Unable to create a Mercurial.ini file" msgstr "" msgid "Insufficient access rights, reverting to read-only mode." msgstr "" msgid "Context Menu" msgstr "" msgid "Top menu items:" msgstr "" msgid "Sub menu items:" msgstr "" msgid "Menu Behavior" msgstr "" msgid "Hide context menu outside repositories" msgstr "" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" msgid "Icons" msgstr "" msgid "Overlays" msgstr "" msgid "Enabled overlays" msgstr "" msgid "Local disks only" msgstr "" msgid "Enabled Overlay Handlers" msgstr "" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "" msgid "Added" msgstr "" msgid "Locked*" msgstr "" msgid "Ignored*" msgstr "" msgid "Unversioned" msgstr "" msgid "Readonly*" msgstr "" msgid "Deleted*" msgstr "" msgid "*: not used by TortoiseHg" msgstr "" msgid "Taskbar" msgstr "" msgid "Show Icon" msgstr "" msgid "Highlight Icon" msgstr "" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" msgid "Explorer Extension Settings - TortoiseHg" msgstr "" msgid "Clear" msgstr "" msgid "Clear the current shelf file" msgstr "" msgid "Delete the current shelf file" msgstr "" msgid "Left Toolbar" msgstr "" msgid "Delete selected chunks" msgstr "" msgid "Move all files right" msgstr "" msgid "Move selected file right" msgstr "" msgid "Edit file" msgstr "" msgid "Move selected chunks right" msgstr "" msgid "Refresh Toolbar" msgstr "" msgid "Refresh" msgstr "새로고침" msgid "New Shelf" msgstr "새 보관함" msgid "Right Toolbar" msgstr "" msgid "Move selected chunks left" msgstr "" msgid "Move selected file left" msgstr "" msgid "Move all files left" msgstr "" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "TortoiseHg 임시보관함 - %s" msgid "Delete selected chunks from working copy?" msgstr "" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "" msgid "Are you sure?" msgstr "" msgid "TortoiseHg New Shelf Name" msgstr "" msgid "Specify name of new shelf" msgstr "새 보관함의 이름을 지정해주세요" msgid "Bad filename" msgstr "" #, python-format msgid "A shelf name cannot contain %s" msgstr "" msgid "File already exists" msgstr "" msgid "A shelf file of that name already exists" msgstr "지정한 이름의 보관함 파일이 이미 존재합니다" msgid "New shelf created" msgstr "새 보관함이 생성되었습니다" #, python-format msgid "Delete shelf file %s?" msgstr "임시보관한 파일 %s를 지우시겠습니까?" msgid "Shelf deleted" msgstr "보관함이 삭제되었습니다" msgid "Revert all working copy changes?" msgstr "" #, python-format msgid "Clear contents of shelf file %s?" msgstr "보관한 파일 %s의 내용을 지우시겠습니까?" msgid "Shelf cleared" msgstr "" #, python-format msgid "Shelf: %s" msgstr "" #, python-format msgid "Patch: %s" msgstr "" msgid "Key:" msgstr "" msgid "Local sign" msgstr "" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "" msgid "No commit" msgstr "" msgid "Use custom commit message:" msgstr "" msgid "&Sign" msgstr "" #, python-format msgid "Sign - %s" msgstr "" msgid "Signature has been added" msgstr "" msgid "Repository command still running" msgstr "" msgid "Filter:" msgstr "" msgid "Check all files" msgstr "" msgid "Uncheck all files" msgstr "" msgid "Status File List Toolbar" msgstr "" msgid "Remove filter, show root" msgstr "" #, python-format msgid "%s - status (selection filtered)" msgstr "" #, python-format msgid "%s - status" msgstr "" msgid "Check" msgstr "" msgid "Uncheck" msgstr "" msgid "status" msgstr "" msgid "Failed to refresh" msgstr "" msgid "No appropriate files" msgstr "" msgid "No files found for this operation" msgstr "" msgid "Stat" msgstr "" msgid "M" msgstr "" msgid "Filename" msgstr "파일이름" msgid "Size (KB)" msgstr "" #, python-format msgid "Checked count: %d" msgstr "" msgid ", resolved merge" msgstr "" msgid ", unresolved merge" msgstr "" #, python-format msgid "%s is modified" msgstr "" msgid "modified" msgstr "" #, python-format msgid "%s is added" msgstr "" msgid "added" msgstr "" #, python-format msgid "%s is removed" msgstr "" msgid "removed" msgstr "" #, python-format msgid "%s is not tracked (unknown)" msgstr "" msgid "unknown" msgstr "" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "" msgid "missing" msgstr "" #, python-format msgid "%s is ignored" msgstr "" msgid "ignored" msgstr "" #, python-format msgid "%s is not modified (clean)" msgstr "" msgid "clean" msgstr "" #, python-format msgid "%s is a dirty subrepo" msgstr "" msgid "subrepo" msgstr "" msgid "Check for incoming changes from selected URL" msgstr "" msgid "Pull incoming changes from selected URL" msgstr "" msgid "Detect outgoing changes to selected URL" msgstr "" msgid "Push outgoing changes to selected URL" msgstr "" msgid "Sync Bookmarks" msgstr "" msgid "Email outgoing changesets for remote repository" msgstr "" msgid "Manage pending perforce changelists" msgstr "" msgid "Unbundle" msgstr "" msgid "Selected Options:" msgstr "" msgid "Path Edit Toolbar" msgstr "" msgid "Security" msgstr "" msgid "Manage HTTPS connection security and user authentication" msgstr "" msgid "Save" msgstr "" msgid "Save current URL under an alias" msgstr "" msgid "Paths in Repository Settings:" msgstr "" msgid "Related Paths:" msgstr "" msgid "branch: " msgstr "지점: " msgid "bookmark: " msgstr "" #, python-format msgid "rev: %d (%s)" msgstr "" msgid "Post Pull: " msgstr "" msgid "&Edit..." msgstr "" msgid "&Remove..." msgstr "" msgid "Repository not local" msgstr "" msgid "A terminal shell cannot be opened for remote" msgstr "" msgid "Confirm path delete" msgstr "" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "" msgid "Select repository" msgstr "" msgid "No host specified" msgstr "" msgid "Please set a valid URL to continue." msgstr "" msgid "No remote repository URL or path set" msgstr "" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

                                                                Please type and save a remote repository path on the " "Sync widget." msgstr "" msgid "Redundant authentication info" msgstr "" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" msgid "sync command already running" msgstr "" #, python-format msgid "Getting incoming changesets from %s..." msgstr "" #, python-format msgid "Found incoming changesets from %s" msgstr "" #, python-format msgid "No incoming changesets from %s" msgstr "" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "" #, python-format msgid "Pulling from %s..." msgstr "" #, python-format msgid "Pull from %s completed" msgstr "" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "" msgid "Merge caused file conflicts" msgstr "" msgid "File conflicts need to be resolved" msgstr "" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "" #, python-format msgid "%d outgoing changesets to %s" msgstr "" #, python-format msgid "No outgoing changesets to %s" msgstr "" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "" msgid "Perforce pending..." msgstr "" #, python-format msgid "%s (submitted)" msgstr "" #, python-format msgid "%s (pending)" msgstr "" msgid "Unable to parse p4pending output" msgstr "" #, python-format msgid "%d pending changelists found" msgstr "" msgid "No pending Perforce changelists" msgstr "" msgid "Aborted p4pending" msgstr "" msgid "Unable to determine pending changesets" msgstr "" msgid "Confirm Push to remote Repository" msgstr "" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" #, python-format msgid "Push to %s aborted" msgstr "" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" #, python-format msgid "Pushing to %s..." msgstr "" #, python-format msgid "Push to %s completed" msgstr "" #, python-format msgid "Push to %s aborted, ret %d" msgstr "" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" msgid "Determining outgoing changesets to email..." msgstr "" msgid "No outgoing changesets" msgstr "" #, python-format msgid "Outgoing aborted, ret %d" msgstr "" msgid "Select bundle file" msgstr "" msgid "Bundle files (*.hg)" msgstr "" msgid "Unable to remove URL" msgstr "" msgid "Post Pull Behavior" msgstr "" msgid "Select post-pull operation for this repository" msgstr "" msgid "None - simply pull changesets" msgstr "" msgid "Update - pull, then try to update" msgstr "" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "" msgid "Rebase - rebase local commits above pulled changes" msgstr "" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "" msgid "Launch settings tool..." msgstr "" msgid "Unable to save post pull operation" msgstr "" msgid "Save Path" msgstr "" msgid "Alias" msgstr "" msgid "URL" msgstr "" msgid "Remove authentication data from URL" msgstr "" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" msgid "Update subrepo paths" msgstr "" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" msgid "Unable to save an URL" msgstr "" msgid "Confirm URL replace" msgstr "" #, python-format msgid "%s already exists, replace URL?" msgstr "" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

                                                                %s

                                                                Replace it with the " "following URL?:

                                                                %s" msgstr "" msgid "Security: " msgstr "" #, python-format msgid "Host: %s" msgstr "" msgid "Secure HTTPS Connection" msgstr "" msgid "Verify with Certificate Authority certificates (best)" msgstr "" msgid "Verify with stored host fingerprint (good)" msgstr "" msgid "No host validation, but still encrypted (bad)" msgstr "" msgid "### host certificate fingerprint ###" msgstr "" msgid "Query" msgstr "" msgid "TLS 1.0" msgstr "" msgid "TLS 1.1" msgstr "" msgid "TLS 1.2" msgstr "" msgid "Minimum Protocol" msgstr "" msgid "User Authentication" msgstr "" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Key" msgstr "" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Chain" msgstr "" msgid "Certificate Query Error" msgstr "" msgid "Select User Certificate Key File" msgstr "" msgid "PEM files (*.pem *.key)" msgstr "" msgid "Select User Certificate Chain File" msgstr "" msgid "PEM files (*.pem *.crt *.cer)" msgstr "" msgid "Unable to save authentication" msgstr "" #, python-format msgid "%s - sync options" msgstr "" msgid "Allow push of a new branch (--new-branch)" msgstr "" msgid "Force push or pull (override safety checks, --force)" msgstr "" msgid "Temporarily disable configured HTTP proxy" msgstr "" msgid "Emit debugging output (--debug)" msgstr "" msgid "Work on patch queue (--mq)" msgstr "" #, python-format msgid "Tag - %s" msgstr "" msgid "Tag:" msgstr "" msgid "Tagged:" msgstr "" msgid "Local tag" msgstr "" msgid "Replace existing tag (-f/--force)" msgstr "" msgid "Use English commit message" msgstr "" msgid "local" msgstr "" msgid "Move" msgstr "이동" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "" #, python-format msgid "Added tag %s for changeset %s" msgstr "" #, python-format msgid "Tag '%s' has been moved" msgstr "" #, python-format msgid "Tag '%s' has been added" msgstr "" #, python-format msgid "Removed tag %s" msgstr "" #, python-format msgid "Tag '%s' has been removed" msgstr "" msgid "Patch files (*.diff *.patch)" msgstr "" #, python-format msgid "Import - %s" msgstr "" msgid "Browse Directory..." msgstr "" msgid "Import from Clipboard" msgstr "" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "" msgid "Preview:" msgstr "" msgid "Shelf" msgstr "" msgid "Checking working directory status..." msgstr "" msgid "&Import" msgstr "" msgid "Working directory is not clean! View changes..." msgstr "" msgid "Select patches" msgstr "" msgid "Select Directory containing patches" msgstr "" #, python-format msgid "%s patches" msgstr "" #, python-format msgid "%s will be imported to " msgstr "" msgid "Nothing to import" msgstr "" msgid "Strip:" msgstr "" msgid "Discard local changes, no backup (-f/--force)" msgstr "" msgid "No backup (-n/--nobackup)" msgstr "" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "" msgstr[1] "" msgid "Unknown revision!" msgstr "알려지지 않은 개정판입니다!" msgid "Detected uncommitted local changes." msgstr "" msgid "Do you want to keep them or discard them?" msgstr "" msgid "&Keep (--keep)" msgstr "" msgid "&Discard (--force)" msgstr "" msgid "Confirm Strip" msgstr "" #, python-format msgid "Strip - %s" msgstr "" msgid "&Strip" msgstr "" msgid "Topic:" msgstr "" msgid "&Rename" msgstr "" #, python-format msgid "Topic - %s" msgstr "" #, python-format msgid "A topic named \"%s\" already exists" msgstr "" #, python-format msgid "Topic '%s' has been added" msgstr "" #, python-format msgid "Topic '%s' does not exist" msgstr "" #, python-format msgid "Topic '%s' has been removed" msgstr "" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "" msgid "Parent 1:" msgstr "" msgid "Parent 2:" msgstr "" msgid "Pull subrepos from:" msgstr "" msgid "List updated files (--verbose)" msgstr "" msgid "Discard local changes, no backup (-C/--clean)" msgstr "" msgid "Always merge (when possible)" msgstr "" msgid "(same as parent)" msgstr "" msgid "Activate bookmark?" msgstr "" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

                                                                Do " "you want to activate it?
                                                                You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

                                                                Select " "the bookmark that you want to activate and click OK.

                                                                Click " "Cancel if you don't want to activate any of them.

                                                                You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                                " msgstr "" msgid "Deactivate current bookmark?" msgstr "" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" msgid "Discard - discard local changes, no backup" msgstr "" msgid "&Shelve" msgstr "임시보관함(&S)" msgid "Shelve - move local changes to a patch" msgstr "임시보관함 - 로컬 변경 사항을 패치로 내보내기" msgid "Merge - allow to merge with local changes" msgstr "" msgid "Confirm Update" msgstr "" #, python-format msgid "Update - %s" msgstr "" msgid "[non-existant]" msgstr "" msgid "Tool launch failure" msgstr "" #, python-format msgid "%s : %s" msgstr "" msgid "No diff tool found" msgstr "" msgid "No visual diff tools were detected" msgstr "" msgid "[working copy]" msgstr "" msgid "[original]" msgstr "" msgid "Unable to find changeset" msgstr "" msgid "You likely need to refresh this application" msgstr "" msgid "No file changes" msgstr "" msgid "There are no file changes to view" msgstr "" msgid "working changes" msgstr "" #, python-format msgid "changeset %d:%s" msgstr "" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "" msgid "Visual Diffs - " msgstr "" msgid " filtered" msgstr "" msgid "Temporary files are removed when this dialog is closed" msgstr "" msgid "Select Tool:" msgstr "" msgid "Dir diff to p1" msgstr "" msgid "Dir diff to p2" msgstr "" msgid "3-way dir diff" msgstr "" msgid "Directory diff" msgstr "" msgid "Confirm Discard" msgstr "파기 확인" msgid "Discard outstanding changes to working directory?" msgstr "작업 디렉터리의 커밋하지 않은 변경사항을 파기하시겠습니까?" msgid "Config files (*.conf *.config *.ini)" msgstr "" msgid "Open hgweb config" msgstr "" msgid "Save hgweb config" msgstr "" msgid "Path:" msgstr "" msgid "Local Path:" msgstr "" msgid "Select Repository" msgstr "" msgid "Add Path to Serve" msgstr "" msgid "Edit Path to Serve" msgstr "" msgid "Local Path" msgstr "" msgid "Webconf" msgstr "" msgid "Config File:" msgstr "" msgid "Open" msgstr "열기" msgid "New &Workbench" msgstr "" msgid "&New Repository..." msgstr "" msgid "Clon&e Repository..." msgstr "" msgid "&Open Repository..." msgstr "" msgid "&File" msgstr "" msgid "&View" msgstr "" msgid "&Repository" msgstr "" msgid "&Help" msgstr "" msgid "&Dock Toolbar" msgstr "" msgid "&Task Toolbar" msgstr "" msgid "&Custom Toolbar" msgstr "" msgid "S&ync Toolbar" msgstr "" msgid "&Close Repository" msgstr "" msgid "Sh&ow Repository Registry" msgstr "" msgid "Show &Patch Queue" msgstr "" msgid "Show Conso&le" msgstr "" msgid "Place Console in Doc&k Area" msgstr "" msgid "R&epository Registry Options" msgstr "" msgid "Save Open Repositories on E&xit" msgstr "" msgid "Sa&ve Current Sync Paths on Exit" msgstr "" msgid "Show Tas&k Tab" msgstr "" msgid "&Commit" msgstr "" msgid "&Patch Branch" msgstr "" msgid "Revision &Details" msgstr "" msgid "&Search" msgstr "" msgid "S&ynchronize" msgstr "" msgid "Refresh current repository" msgstr "" msgid "Refresh &Task Tab" msgstr "" msgid "Refresh only the current task tab" msgstr "" msgid "Load &All Revisions" msgstr "" msgid "Load all revisions into graph" msgstr "" msgid "Go to current revision" msgstr "" msgid "&Goto Revision..." msgstr "" msgid "Go to a specific revision" msgstr "" msgid "Filter graph with revision sets or branches" msgstr "" msgid "&Workbench Toolbars" msgstr "" msgid "&Lock File..." msgstr "" msgid "Lock or unlock files" msgstr "" msgid "Update working directory or switch revisions" msgstr "" msgid "&Shelve..." msgstr "" msgid "&Import Patches..." msgstr "" msgid "U&nbundle..." msgstr "" msgid "&Merge..." msgstr "" msgid "Merge with the other head of the current branch" msgstr "" msgid "&Resolve..." msgstr "" msgid "R&ollback/Undo..." msgstr "" msgid "&Purge..." msgstr "" msgid "&Bisect..." msgstr "" msgid "&Verify" msgstr "" msgid "Re&cover" msgstr "" msgid "&Web Server" msgstr "" msgid "E&xplorer Help" msgstr "" msgid "&Readme" msgstr "" msgid "About &Qt" msgstr "" msgid "&About TortoiseHg" msgstr "" msgid "&Incoming" msgstr "" msgid "&Pull" msgstr "" msgid "&Outgoing" msgstr "" msgid "P&ush" msgstr "" msgid "&Sync Bookmarks..." msgstr "" #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" msgid "Check for incoming changes" msgstr "" msgid "Pull incoming changes" msgstr "" msgid "Detect outgoing changes" msgstr "" msgid "Push outgoing changes" msgstr "" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" #, python-format msgid "Execute custom tool '%s'" msgstr "" msgid "Custom Toolbar &Settings" msgstr "" msgid "TortoiseHg Workbench" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "" msgid "Goto revision" msgstr "" msgid "Enter revision identifier" msgstr "" msgid "Select repository directory to open" msgstr "" msgid "README not configured" msgstr "" msgid "" "A README file is not configured for the current repository.

                                                                To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" msgid "Issue Tracker Plugin Error" msgstr "" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "" msgid "This error will not be shown again until you restart the workbench" msgstr "" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "" msgid "Error executing \"commit finished\" trigger" msgstr "" msgid "Cannot open Plugin Options dialog" msgstr "" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "" msgid "[--insecure] [SOURCE]" msgstr "" #, python-format msgid "unsupported URL: %s" msgstr "" #, python-format msgid "%s certificate error: no certificate received" msgstr "" msgid "move after the specified patch" msgstr "" msgid "[--after PATCH] PATCH..." msgstr "" msgid "unknown patch to move specified" msgstr "" msgid "invalid patch position specified" msgstr "" msgid "cannot move applied patches" msgstr "" #, python-format msgid "patch %s not in series" msgstr "" msgid "cannot move into applied patches" msgstr "" msgid "abort: " msgstr "" msgid "hint: " msgstr "" #, python-format msgid "HTTP Error: %d (%s)" msgstr "" #, python-format msgid "URLError: %s" msgstr "" msgid "SSL: Server certificate verify failed" msgstr "" #, python-format msgid "SSL: unknown error %s:%s" msgstr "" #, python-format msgid "SSL error: %s" msgstr "" msgid "hgsubversion packaged with thg" msgstr "" msgid "hggit packaged with thg" msgstr "" msgid "inotify is not supported on this platform" msgstr "" msgid "eol is incompatible with win32text" msgstr "" msgid "win32text is incompatible with eol" msgstr "" msgid "hgsubversion is incompatible with perfarce" msgstr "" msgid "perfarce is incompatible with hgsubversion" msgstr "" msgid "Workbench custom toolbar" msgstr "" msgid "Revision details context menu" msgstr "" msgid "Pair selection context menu" msgstr "" msgid "Multiple selection context menu" msgstr "" msgid "Commit context menu" msgstr "" msgid "File context menu (on manifest and revision details)" msgstr "" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" msgid "in the future" msgstr "" msgid "now" msgstr "지금" #, python-format msgid "command parse error: %s" msgstr "" #, python-format msgid "no matches found: %s" msgstr "" msgid "Commit..." msgstr "" msgid "Commit changes in repository" msgstr "" msgid "Create Repository Here" msgstr "" msgid "Create a new repository" msgstr "" msgid "Clone..." msgstr "" msgid "Create clone here from source" msgstr "" msgid "File Status" msgstr "파일 상태" msgid "Repository status & changes" msgstr "" msgid "Add Files..." msgstr "파일을 더합니다..." msgid "Add files to version control" msgstr "" msgid "Revert Files..." msgstr "파일을 되돌립니다..." msgid "Revert file changes" msgstr "" msgid "Forget Files..." msgstr "파일을 지웁니다..." msgid "Remove files from version control" msgstr "" msgid "Remove Files..." msgstr "파일을 지웁니다..." msgid "Rename File" msgstr "파일 이름 변경" msgid "Rename file or directory" msgstr "파일 또는 디렉토리 이름 변경" msgid "View change history in repository" msgstr "" msgid "File History" msgstr "" msgid "View change history of selected files" msgstr "" msgid "Shelve Changes" msgstr "" msgid "Move changes between working dir and patch" msgstr "" msgid "Synchronize" msgstr "" msgid "Synchronize with remote repository" msgstr "" msgid "Start web server for this repository" msgstr "" msgid "Update..." msgstr "업데이트..." msgid "Update working directory" msgstr "작업 디렉토리 업데이트" msgid "Update Icons" msgstr "" msgid "Update icons for this repository" msgstr "" msgid "Global Settings" msgstr "" msgid "Configure user wide settings" msgstr "" msgid "Repository Settings" msgstr "" msgid "Configure repository settings" msgstr "" msgid "Explorer Extension Settings" msgstr "" msgid "Configure Explorer extension" msgstr "" msgid "About TortoiseHg" msgstr "" msgid "Show About Dialog" msgstr "" msgid "Diff to parent" msgstr "" msgid "View changes using GUI diff tool" msgstr "Diff 툴로 변경사항 확인" msgid "Edit Ignore Filter" msgstr "무시할 파일 수정" msgid "Edit repository ignore filter" msgstr "" msgid "Guess Renames" msgstr "" msgid "Detect renames and copies" msgstr "" msgid "Search History" msgstr "기록 검색" msgid "Search file revisions for patterns" msgstr "" msgid "DnD Synchronize" msgstr "" msgid "Synchronize with dragged repository" msgstr "" #, python-format msgid "unrecognized response: %s" msgstr "" msgid "password: " msgstr "비밀번호: " #, python-format msgid "repository %s not found" msgstr "저장소 %s 를 찾지 못함" msgid "win32ill: cannot create window for messages" msgstr "" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "" msgid "win32ill: interrupted while stopping message loop\n" msgstr "" #~ msgid "(version %s)" #~ msgstr "(버전 %s)" #~ msgid "Archive" #~ msgstr "아카이브" #~ msgid "Changeset Description" #~ msgstr "변경셋 설명" #~ msgid "[All Files]" #~ msgstr "[모든 파일]" #~ msgid "with %s" #~ msgstr "%s" #~ msgid "Confirm Abort" #~ msgstr "취소 확인" #~ msgid "Do you want to abort?" #~ msgstr "취소하시겠습니까?" #~ msgid "Backout" #~ msgstr "취소" #~ msgid "Save as.." #~ msgstr "다른 이름으로 저장" #~ msgid "Advanced" #~ msgstr "고급" #~ msgid "Patch Preview" #~ msgstr "패치 미리보기" #~ msgid "Merge " #~ msgstr "병합 " #~ msgid "Info Required" #~ msgstr "필수 정보" #~ msgid "New Search" #~ msgstr "새로운 검색" #~ msgid "Invalid path" #~ msgstr "잘못된 경로" #~ msgid "Show line numbers" #~ msgstr "줄 번호 표시" #~ msgid "Matches" #~ msgstr "일치" #~ msgid "File is unrevisioned" #~ msgstr "파일이 개정되지 않았습니다." #~ msgid "Unable to annotate " #~ msgstr "주석이 없습니다. " #~ msgid "edit failed" #~ msgstr "수정 실패" #~ msgid "Select" #~ msgstr "선택" #~ msgid "Save File" #~ msgstr "파일 저장" #~ msgid "All files" #~ msgstr "모든 파일" #~ msgid "Select Folder" #~ msgstr "폴더 선택" #~ msgid "Send" #~ msgstr "전송" #~ msgid "Send emails" #~ msgstr "이메일 전송" #~ msgid "Test" #~ msgstr "테스트" #~ msgid "Configure" #~ msgstr "구성" #~ msgid "Configure email settings" #~ msgstr "이메일 설정 구성" #~ msgid "Apply to:" #~ msgstr "적용:" #~ msgid "Unknown Files" #~ msgstr "알 수 없는 파일" #~ msgid "Columns" #~ msgstr "열" #~ msgid "Age" #~ msgstr "나이" #~ msgid "Select files to add" #~ msgstr "추가할 파일 선택" #~ msgid "HTTP Port:" #~ msgstr "HTTP 포트:" #~ msgid "Save As" #~ msgstr "다른 이름으로 저장" #~ msgid "Toolbar" #~ msgstr "툴바" #~ msgid "ID" #~ msgstr "ID" #~ msgid "Select files to revert" #~ msgstr "선택한 파일을 되돌립니다." #~ msgid "Select files to remove" #~ msgstr "선택한 파일을 지웁니다." #~ msgid "Failed" #~ msgstr "실패" #~ msgid "refresh" #~ msgstr "새로고침" #~ msgid "_Copy..." #~ msgstr "_복사..." #~ msgid "http" #~ msgstr "http" #~ msgid "ssh" #~ msgstr "ssh" #~ msgid "https" #~ msgstr "https" #~ msgid "Open..." #~ msgstr "열기..." #~ msgid "Updated successfully" #~ msgstr "성공적으로 업데이트했습니다." #~ msgid "Canceled updating" #~ msgstr "업데이트가 취소됐습니다." #~ msgid "Failed to update" #~ msgstr "업데이트를 하지 못했습니다." #~ msgid "Failed to clone" #~ msgstr "복제 실패" #~ msgid " - commit" #~ msgstr " - 커밋" #~ msgid "_Update..." #~ msgstr "_갱신..." #~ msgid "Repository Path" #~ msgstr "저장소 경로" #~ msgid "" #~ "The destination \"%s\" already exists!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "\"%s\" 이 이미 존재 합니다!\n" #~ "\n" #~ "덮어 쓰시겠습니까?" #~ msgid "" #~ "The directory \"%s\" isn't empty!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "\"%s\" 디렉토리가 비어있지 않습니다!\n" #~ "\n" #~ "덮어 쓰시겠습니까?" #~ msgid "Copyright 2008-2010 Steve Borho and others" #~ msgstr "Copyright 2008-2010 Steve Borho 와 그외" #~ msgid "Archive revision:" #~ msgstr "저장소 개정번호:" #~ msgid "Several icons are courtesy of the TortoiseSVN project" #~ msgstr "일부 아이콘은 TortoiseSVN에서 제공합니다" #~ msgid "Failed to archive" #~ msgstr "저장중 실패" #~ msgid "Compressed zip archives" #~ msgstr "zip 압축 아카이브" #~ msgid "Canceled archiving" #~ msgstr "저장중 취소" #~ msgid "Archived successfully" #~ msgstr "성공적으로 저장" #~ msgid "All Files (*.*)" #~ msgstr "모든 파일 (*.*)" #~ msgid "Old name:" #~ msgstr "예전 이름:" #~ msgid "Reject" #~ msgstr "거부" #~ msgid "Push" #~ msgstr "밀어넣기" #~ msgid "Load all" #~ msgstr "모두 불러오기" #~ msgid "Canceled" #~ msgstr "취소됨" #~ msgid "Successfully" #~ msgstr "성공적" #~ msgid "Rename " #~ msgstr "이름변경 " #~ msgid "Apply" #~ msgstr "적용하기" #~ msgid "Toolbar Style" #~ msgstr "도구 모음 스타일" #~ msgid "Font" #~ msgstr "글꼴" #~ msgid "File List" #~ msgstr "파일 목록" #~ msgid "Succeed" #~ msgstr "성공" #~ msgid "Show graph" #~ msgstr "그래프 보기" #~ msgid "Show status" #~ msgstr "상태 보기" #~ msgid "Show name" #~ msgstr "이름 보기" #~ msgid "Show title" #~ msgstr "제목 보기" #~ msgid "Show message" #~ msgstr "메시지 보기" #~ msgid "Visual Diffs" #~ msgstr "시각적 차이점" #~ msgid "A new version of TortoiseHg is ready for download!" #~ msgstr "새로 업데이트된 TortoiseHg를 다운로드 할 수 있습니다!" #~ msgid "Shelve" #~ msgstr "임시보관함" #~ msgid "Copyright 2008-2018 Steve Borho and others" #~ msgstr "Copyright 2008-2018 Steve Borho 외" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/lv.po0000644000000000000000000043152614440352353016262 0ustar00rootroot# Latvian translation for tortoisehg # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the tortoisehg package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2011-12-11 09:07+0000\n" "Last-Translator: Arvis Lācis \n" "Language-Team: Latvian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n" "X-Launchpad-Export-Date: 2019-07-17 05:43+0000\n" "X-Generator: Launchpad (build 19009)\n" msgid "TortoiseHg Overlay Icon Server" msgstr "" msgid "Exit" msgstr "Iziet" msgid "About" msgstr "Par" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "" msgid "You can visit our site here" msgstr "" msgid "&License" msgstr "&Licence" #, python-format msgid "version %s" msgstr "versija %s" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "" msgid "License" msgstr "" msgid "= Working Directory Parent =" msgstr "" msgid "Directory of files" msgstr "" msgid "Tar archives" msgstr "" msgid "Uncompressed tar archive" msgstr "" msgid "Bzip2 tar archives" msgstr "" msgid "Tar archive compressed using bzip2" msgstr "" msgid "Gzip tar archives" msgstr "" msgid "Tar archive compressed using gzip" msgstr "" msgid "Zip archives" msgstr "" msgid "Uncompressed zip archive" msgstr "" msgid "Zip archive compressed using deflate" msgstr "" msgid "Revision:" msgstr "" msgid "All files in this revision" msgstr "" msgid "Only files modified/created in this revision" msgstr "" msgid "Only files modified/created since:" msgstr "" msgid "Archive Content:" msgstr "" msgid "Recurse into subrepositories" msgstr "" msgid "Browse..." msgstr "" msgid "Destination path:" msgstr "" msgid "Archive types:" msgstr "" msgid "Hg command:" msgstr "" msgid "Select Destination Folder" msgstr "" msgid "Select Destination File" msgstr "" msgid "All files (*)" msgstr "" msgid "Duplicate Name" msgstr "" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "" msgid "Confirm Overwrite" msgstr "" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "" #, python-format msgid "Archive - %s" msgstr "" msgid "&Archive" msgstr "" msgid "Backout requires a parent revision" msgstr "" msgid "Cannot backout change on a different branch" msgstr "" #, python-format msgid "Backout - %s" msgstr "" msgid "Prepare to backout" msgstr "" msgid "Verify backout revision and ensure your working directory is clean." msgstr "" msgid "Backing out a parent revision is a single step operation" msgstr "" msgid "Backout revision" msgstr "" msgid "Not a head, backout will create a new head!" msgstr "" msgid "Current local revision" msgstr "" msgid "Working directory status" msgstr "" msgid "Checking..." msgstr "" msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Automatically resolve merge conflicts where possible" msgstr "" msgid "Uncommitted local changes are detected" msgstr "" msgid "Clean" msgstr "" msgid "Backing out, then merging..." msgstr "" msgid "All conflicting files will be marked unresolved." msgstr "" msgid "Automatically advance to next page when backout and merge are complete." msgstr "" #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" msgid "No merge conflicts, ready to commit" msgstr "" msgid "Commit backout and merge results" msgstr "" msgid "Parents" msgstr "" msgid "Working Directory" msgstr "" msgid "Working Directory (merged)" msgstr "" msgid "Commit message" msgstr "" msgid "Skip final confirmation page, close after commit." msgstr "" msgid "Backed out changeset: " msgstr "" msgid "Confirm Discard Message" msgstr "" msgid "Discard current backout message?" msgstr "" msgid "Use English backout message" msgstr "" msgid "Backing out and committing..." msgstr "" msgid "Please wait while making backout." msgstr "" msgid "Committing..." msgstr "" msgid "Please wait while committing merged files." msgstr "" msgid "Finished" msgstr "" msgid "Backout changeset" msgstr "" #, python-format msgid "Bisect - %s" msgstr "" msgid "Accept" msgstr "" msgid "Known good revision:" msgstr "" msgid "Known bad revision:" msgstr "" msgid "Discard local changes (revert --all)" msgstr "" msgid "Revision is &Good" msgstr "" msgid "Revision is &Bad" msgstr "" msgid "&Skip this Revision" msgstr "" msgid "Close" msgstr "" msgid "Error encountered." msgstr "" msgid "Culprit found." msgstr "" msgid "Revision" msgstr "" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "" #, python-format msgid "%s (hint: %s)" msgstr "" msgid "Bookmark:" msgstr "" msgid "New Name:" msgstr "" msgid "Activate:" msgstr "" msgid "&Add" msgstr "" msgid "Re&name" msgstr "" msgid "&Remove" msgstr "" msgid "&Move" msgstr "" #, python-format msgid "Bookmark - %s" msgstr "" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "" #, python-format msgid "Bookmark '%s' has been added" msgstr "" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "" #, python-format msgid "Bookmark '%s' has been moved" msgstr "" #, python-format msgid "Bookmark '%s' does not exist" msgstr "" #, python-format msgid "Bookmark '%s' has been removed" msgstr "" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "" msgid "TortoiseHg Bookmark Sync" msgstr "" msgid "Outgoing Bookmarks" msgstr "" msgid "&Push Bookmark" msgstr "" msgid "&Remove Bookmark" msgstr "" msgid "Incoming Bookmarks" msgstr "" msgid "P&ull Bookmark" msgstr "" msgid "R&emove Bookmark" msgstr "" #, python-format msgid "Pushed local bookmark: %s" msgstr "" #, python-format msgid "Pulled remote bookmark: %s" msgstr "" #, python-format msgid "Removed remote bookmark: %s" msgstr "" #, python-format msgid "Removed local bookmark: %s" msgstr "" #, python-format msgid "%s - branch operation" msgstr "" msgid "Select branch of merge commit" msgstr "" msgid "Changes take effect on next commit" msgstr "" msgid "No branch changes" msgstr "" msgid "Open a new named branch" msgstr "" msgid "Close current branch" msgstr "" #, python-format msgid "Please report this bug to our bug tracker" msgstr "" msgid "Checking for updates..." msgstr "" msgid "Copy" msgstr "" msgid "Quit" msgstr "" msgid "TortoiseHg Bug Report" msgstr "" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "" msgid "Your TortoiseHg is up to date." msgstr "" msgid "Save error report to" msgstr "" msgid "Text files (*.txt)" msgstr "" msgid "Error writing file" msgstr "" msgid "TortoiseHg Error" msgstr "" msgid "" "If you still have trouble, please file a bug report." msgstr "" msgid "Visual Diff" msgstr "" msgid "View file changes in external diff tool" msgstr "" msgid "Edit Local" msgstr "" msgid "Edit current file in working copy" msgstr "" msgid "Revert to Revision" msgstr "" msgid "Revert file(s) to contents at this revision" msgstr "" msgid "Patch failed to apply" msgstr "" msgid "Manually resolve rejected chunks?" msgstr "" msgid "Edit patched file and rejects?" msgstr "" msgid "No deletable chunks" msgstr "" msgid "Completely remove file from patch?" msgstr "" msgid "Revert all file changes?" msgstr "" msgid "No chunks remain" msgstr "" msgid "file has been deleted, refresh" msgstr "" msgid "file has been modified, refresh" msgstr "" msgid "Unable to merge chunks" msgstr "" msgid "Add or remove patches must be merged in the working directory" msgstr "" msgid "Unable to remove" msgstr "" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" msgctxt "files" msgid "All" msgstr "" msgctxt "files" msgid "None" msgstr "" msgid "Toggle display of text search bar" msgstr "" msgid "Diff Toolbar" msgstr "" #, python-format msgid "Chunks selected: %d / %d" msgstr "" msgid "Please wait while the file is opened ..." msgstr "" msgid "Source:" msgstr "" msgid "Destination:" msgstr "" msgid "Options" msgstr "" msgid "Clone to revision:" msgstr "" msgid "A revision identifier, bookmark, tag or branch name" msgstr "" msgid "Do not update the new working directory" msgstr "" msgid "Use pull protocol to copy metadata" msgstr "" msgid "Clone with minimal processing" msgstr "" msgid "Include patch queue" msgstr "" msgid "Use proxy server" msgstr "" msgid "Do not verify host certificate" msgstr "" msgid "Remote command:" msgstr "" msgid "Use largefiles" msgstr "" msgid "Start revision:" msgstr "" msgid "Select source repository" msgstr "" msgid "Select destination repository" msgstr "" msgid "Select patch folder" msgstr "" #, python-format msgid "Clone - %s" msgstr "" msgid "&Clone" msgstr "" msgid "failed to start command\n" msgstr "" msgid "error while running command\n" msgstr "" #, python-format msgid "process exited unexpectedly with code %d" msgstr "" #, python-format msgid "failed to encode command: %s" msgstr "" #, python-format msgid "timed out while reading: %r..." msgstr "" msgid "timed out waiting for message" msgstr "" #, python-format msgid "unexpected response on required channel %r" msgstr "" #, python-format msgid "invalid \"hello\" message: %r" msgstr "" msgid "no \"runcommand\" capability" msgstr "" #, python-format msgid "corrupted command result: %r" msgstr "" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "" msgid "Terminated by user" msgstr "" #, python-format msgid "[command terminated by user %s]" msgstr "" #, python-format msgid "[command interrupted %s]" msgstr "" #, python-format msgid "[command returned code %d %%s]" msgstr "" #, python-format msgid "[command completed successfully %s]" msgstr "" msgid "Running..." msgstr "" msgid "Failed!" msgstr "" msgid "Clea&r Log" msgstr "" msgid "TortoiseHg Prompt" msgstr "" msgid "Show Detail" msgstr "" msgid "Hide Detail" msgstr "" msgid "Confirm Exit" msgstr "" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" msgid "&Run" msgstr "" msgid "TortoiseHg Command Dialog" msgstr "" msgid "Command Error" msgstr "" #, python-format msgid "[Code: %d]" msgstr "" msgid "Merge" msgstr "" #, python-format msgid "Merge with %s" msgstr "" msgid "Patch Name Required" msgstr "" msgid "You must enter a patch name" msgstr "" msgctxt "start progress" msgid "Commit" msgstr "" msgctxt "start progress" msgid "MQ Action" msgstr "" msgctxt "start progress" msgid "Rollback" msgstr "" msgid "Commit Dialog Toolbar" msgstr "" msgid "Branch: " msgstr "" msgid "Copy message" msgstr "" msgid "Copy one of the recent commit messages" msgstr "" msgid "Show Issues" msgstr "" msgid "Please wait..." msgstr "" #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "" msgid "Issue Tracker" msgstr "" msgid "Show Issues..." msgstr "" msgid "Stop" msgstr "" msgid "### patch name ###" msgstr "" msgid "Commit changes" msgstr "" msgid "Commit" msgstr "" msgid "Amend current revision" msgstr "" msgid "Amend" msgstr "" msgid "Create a new patch" msgstr "" msgid "QNew" msgstr "" msgid "Refresh current patch" msgstr "" msgid "QRefresh" msgstr "" msgid "Confirm Branch Change" msgstr "" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "" msgid "Restart &Branch" msgstr "" msgid "&Commit to current branch" msgstr "" msgid "Cancel" msgstr "" msgid "Confirm New Branch" msgstr "" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "" msgid "Create &Branch" msgstr "" msgid "Close Branch: " msgstr "" msgid "New Branch: " msgstr "" #, python-format msgid "Selected Options: %s" msgstr "" msgid "Parent:" msgstr "" msgid "Patch name:" msgstr "" #, python-format msgid "Close %s branch" msgstr "" #, python-format msgid "Rollback commit to revision %d" msgstr "" msgid "Confirm Undo" msgstr "" msgid "Discard current commit message?" msgstr "" msgid "Message Translation Failure" msgstr "" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" msgid "&Replace" msgstr "" msgid "Nothing Committed" msgstr "" msgid "Please enter commit message" msgstr "" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" msgid "No files checked" msgstr "" msgid "No modified files checkmarked for commit" msgstr "" msgid "Confirm Add" msgstr "" msgid "Add selected untracked files?" msgstr "" msgid "Confirm Remove" msgstr "" msgid "Remove selected deleted files?" msgstr "" msgid "Nothing changed." msgstr "" msgctxt "window title" msgid "Commit" msgstr "" #, python-format msgid "%s - commit options" msgstr "" msgid "Set username:" msgstr "" msgid "Save in Repo" msgstr "" msgid "Save Global" msgstr "" msgid "Set Date:" msgstr "" msgid "Update" msgstr "" msgid "Push After Commit:" msgstr "" msgid "Auto Includes:" msgstr "" msgid "Recurse into subrepositories (--subrepos)" msgstr "" msgid "Unable to save username" msgstr "" msgid "Iniparse must be installed." msgstr "" msgid "Unable to write configuration file" msgstr "" msgid "Unable to save after commit push" msgstr "" msgid "Unable to save auto include list" msgstr "" msgid "Unable to save recurse in subrepos." msgstr "" msgid "Invalid date format" msgstr "" msgid "No username configured" msgstr "" #, python-format msgid "%s - commit" msgstr "" msgid "TortoiseHg Commit" msgstr "" msgid "Are you sure that you want to cancel the commit operation?" msgstr "" msgid "Compress changesets up to and including" msgstr "" msgid "Onto destination" msgstr "" msgid "Compress" msgstr "" #, python-format msgid "Compress - %s" msgstr "" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the compress" msgstr "" msgid "Changes have been moved, you must now commit" msgstr "" msgctxt "action button" msgid "Commit" msgstr "" msgid "Compress is complete, old history untouched" msgstr "" msgid "must be specified repository" msgstr "" msgid "must be specified 'type' in style" msgstr "" msgid "Git Commit:" msgstr "" msgid "Summary:" msgstr "" msgid "User:" msgstr "" msgid "Date:" msgstr "" msgid "Age:" msgstr "" msgid "Branch:" msgstr "" msgid "Close:" msgstr "" msgid "Tags:" msgstr "" msgid "Graft:" msgstr "" msgid "Transplant:" msgstr "" msgid "Obsolete state:" msgstr "" msgid "Perforce:" msgstr "" msgid "Subversion:" msgstr "" msgid "Converted From:" msgstr "" msgid "Original Parent:" msgstr "" msgid "No items to display" msgstr "" msgid "Use compact view" msgstr "" msgid "Patch:" msgstr "" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "" msgid "Select a GUI location to edit:" msgstr "" msgid "Select the toolbar or menu to change" msgstr "" msgid "Tools shown on selected location" msgstr "" msgid "Delete from list" msgstr "" msgid "Add to list" msgstr "" msgid "Add separator" msgstr "" msgid "List of all tools" msgstr "" msgid "New Tool ..." msgstr "" msgid "Edit Tool ..." msgstr "" msgid "Delete Tool" msgstr "" msgid "Type" msgstr "" msgid "Name" msgstr "" msgid "Command" msgstr "" msgid "New hook" msgstr "" msgid "Edit hook" msgstr "" msgid "Delete hook" msgstr "" msgid "Replace existing hook?" msgstr "" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" msgid "OK" msgstr "" msgid "Missing information" msgstr "" msgid "All items" msgstr "" msgid "Working directory" msgstr "" msgid "All revisions" msgstr "" msgid "All contexts" msgstr "" msgid "Fixed revisions" msgstr "" msgid "Applied patches" msgstr "" msgid "Applied patches or qparent" msgstr "" msgid "" msgstr "" msgid "Configure Custom Tool" msgstr "" msgid "Tool name" msgstr "" msgid "The tool name. It cannot contain spaces." msgstr "" #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" msgid "Tool label" msgstr "" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" msgid "Tooltip" msgstr "" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" msgid "Icon" msgstr "" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" msgid "On repowidget, show for" msgstr "" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" msgid "Show Output Log" msgstr "" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" msgid "You must set a tool name." msgstr "" msgid "The tool name cannot have any spaces in it." msgstr "" msgid "You must set a command to run." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" msgid "Configure Hook" msgstr "" msgid "Hook type" msgstr "" msgid "Select when your command will be run" msgstr "" msgid "The hook name. It cannot contain spaces." msgstr "" msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" msgid "You must set a valid hook type." msgstr "" msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "" msgid "Console" msgstr "" msgid "File &History / Annotate" msgstr "" msgid "Show the history of the selected file" msgstr "" msgid "Co&mpare File Revisions" msgstr "" msgid "Compare revisions of the selected file" msgstr "" msgid "Filter Histor&y" msgstr "" msgid "Query about changesets affecting the selected files" msgstr "" msgid "Diff &Changeset to Parent" msgstr "" msgid "Diff Changeset to Loc&al" msgstr "" msgid "&Diff to Parent" msgstr "" msgid "Diff to &Local" msgstr "" msgid "View changes to current in external diff tool" msgstr "" msgid "&View at Revision" msgstr "" msgid "View file as it appeared at this revision" msgstr "" msgid "&Save at Revision..." msgstr "" msgid "Save file as it appeared at this revision" msgstr "" msgid "Save file to" msgstr "" msgid "&Edit Local" msgstr "" msgid "&Open Local" msgstr "" msgid "E&xplore Local" msgstr "" msgid "Open parent folder of current file in the system file manager" msgstr "" msgid "&Copy Patch" msgstr "" msgid "Copy &Path" msgstr "" msgid "Copy full path of file(s) to the clipboard" msgstr "" msgid "&Revert to Revision..." msgstr "" msgid "Open S&ubrepository" msgstr "" msgid "Open the selected subrepository" msgstr "" msgid "E&xplore Folder" msgstr "" msgid "Open the selected folder in the system file manager" msgstr "" msgid "Open &Terminal" msgstr "" msgid "Open a shell terminal in the selected folder" msgstr "" msgid "Custom Tools" msgstr "" msgid "Diff &Local" msgstr "" msgid "&View Missing" msgstr "" msgid "View O&ther" msgstr "" msgid "Add &Largefiles..." msgstr "" msgid "&Forget" msgstr "" msgid "&Delete Unversioned..." msgstr "" msgid "Confirm Delete Unversioned" msgstr "" msgid "Delete the following unversioned files?" msgstr "" msgid "&Delete" msgstr "" msgid "Re&move Versioned" msgstr "" msgid "&Revert..." msgstr "" msgid "Uncommited merge - please select a parent revision" msgstr "" msgid "Revert files to local or other parent?" msgstr "" msgid "&Local" msgstr "" msgid "&Other" msgstr "" msgid "Confirm Revert" msgstr "" msgid "Revert local file changes?" msgstr "" msgid "&Revert with backup" msgstr "" msgid "&Discard changes" msgstr "" msgid "Revert the following files?" msgstr "" msgid "&Revert" msgstr "" msgid "&Copy..." msgstr "" msgid "Re&name..." msgstr "" msgid "&Ignore..." msgstr "" msgid "Edit Re&jects" msgstr "" msgid "Manually resolve rejected patch chunks" msgstr "" msgid "De&tect Renames..." msgstr "" msgid "&Mark Resolved" msgstr "" msgid "&Mark Unresolved" msgstr "" msgid "Restart Mer&ge" msgstr "" msgid "Was renamed from" msgstr "" msgid "Restart Merge &with" msgstr "" msgid "Display the file anyway" msgstr "" msgid "Diff not displayed: " msgstr "" #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid "File is binary" msgstr "" msgid "File may be binary (maximum line length exceeded)" msgstr "" msgid "File or diffs not displayed: " msgstr "" msgid " (was added)" msgstr "" #, python-format msgid " (copied from %s)" msgstr "" #, python-format msgid " (renamed from %s)" msgstr "" msgid " (is a symlink)" msgstr "" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid " (was deleted)" msgstr "" msgid " (was added, now missing)" msgstr "" msgid " (is unversioned)" msgstr "" msgid "exec mode has been set" msgstr "" msgid "exec mode has been unset" msgstr "" #, python-format msgid "changeset: %s" msgstr "" msgid "Initial revision" msgstr "" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" msgid "Subrepo created and set to initial revision." msgstr "" msgid "Subrepo initialized to revision:" msgstr "" msgid "Subrepo removed from repository." msgstr "" msgid "Previously the subrepository was at the following revision:" msgstr "" msgid "Subrepo was not changed." msgstr "" msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "" msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "" msgid "Subrepo state is:" msgstr "" msgid "Revision has changed to:" msgstr "" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "" msgid "From:" msgstr "" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" msgid "Subrepository not found in the working directory." msgstr "" msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" msgid "Not a Mercurial subrepo, not previewable" msgstr "" #, python-format msgid "Error previewing subrepo: %s" msgstr "" msgid "Subrepo may be damaged or inaccessible." msgstr "" msgid "The subrepository is dirty." msgstr "" msgid "File Status:" msgstr "" msgid "(is a changed sub-repository)" msgstr "" msgid "(is an unchanged sub-repository)" msgstr "" msgid "(is a dirty sub-repository)" msgstr "" msgid "(is a new sub-repository)" msgstr "" msgid "(is a removed sub-repository)" msgstr "" msgid "(is a changed and dirty sub-repository)" msgstr "" msgid "(is a new and dirty sub-repository)" msgstr "" msgid "open..." msgstr "" #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "" msgid "File History Log Columns" msgstr "" msgid "Back" msgstr "" msgid "Forward" msgstr "" msgid "Diff Selected &Changesets" msgstr "" msgid "&Diff Selected File Revisions" msgstr "" msgid "Show Revision &Details" msgstr "" msgid "Too many rows selected for menu" msgstr "" msgid "File Differences Log Columns" msgstr "" msgid "Next diff" msgstr "" msgid "Previous diff" msgstr "" msgid "Unicode" msgstr "" msgid "Western Europe" msgstr "" msgid "Unified Chinese" msgstr "" msgid "Traditional Chinese" msgstr "" msgid "Korean" msgstr "" msgid "Japanese" msgstr "" msgid "Thai" msgstr "" msgid "Central and Eastern Europe" msgstr "" msgid "Cyrillic" msgstr "" msgid "Russian" msgstr "" msgid "Ukrainian" msgstr "" msgid "Greek" msgstr "" msgid "Turkish" msgstr "" msgid "Arabic" msgstr "" msgid "Hebrew" msgstr "" msgid "Vietnamese" msgstr "" msgid "Baltic" msgstr "" msgid "Southern Europe" msgstr "" msgid "Nordic" msgstr "" msgid "Celtic" msgstr "" msgid "South-Eastern Europe" msgstr "" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "" msgid "View change as unified diff output" msgstr "" msgid "View change in context of file" msgstr "" msgid "Annotate with revision numbers" msgstr "" msgid "Next Diff" msgstr "" msgid "Previous Diff" msgstr "" msgid "Open shelve tool" msgstr "" msgid "&Auto Detect" msgstr "" msgid "Show changes from first parent" msgstr "" msgid "Show changes from second parent" msgstr "" msgid "E&ncoding" msgstr "" msgid "&Search in Current File" msgstr "" msgid "Search in All &History" msgstr "" msgid "Go to Line" msgstr "" #, python-format msgid "Enter line number (1 - %d)" msgstr "" msgid "Show &Author" msgstr "" msgid "Show &Date" msgstr "" msgid "Show &Revision" msgstr "" msgid "Annotate Op&tions" msgstr "" msgid "Search Selected Text" msgstr "" msgid "In Current &File" msgstr "" msgid "In &Current Revision" msgstr "" msgid "In &Original Revision" msgstr "" msgid "In All &History" msgstr "" msgid "Go to" msgstr "" msgid "View File at" msgstr "" msgid "Diff File to" msgstr "" msgid "&Originating Revision" msgstr "" msgid "&Parent Revision" msgstr "" #, python-format msgid "&Parent Revision (%d)" msgstr "" msgid "&Mark Excluded Changes" msgstr "" msgid "(excluded from the next commit)" msgstr "" msgid "Interrupted graft operation found" msgstr "" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" msgid "Continue or abort interrupted graft operation?" msgstr "" msgid "To graft destination" msgstr "" msgid "Use my user name instead of graft committer user name" msgstr "" msgid "Use current date" msgstr "" msgid "Append graft info to log message" msgstr "" msgid "Graft" msgstr "" msgid "Abort" msgstr "" #, python-format msgid "Graft - %s" msgstr "" msgid "Graft changeset" msgstr "" #, python-format msgid "Graft changeset #%d of %d" msgstr "" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" msgid "You may continue or start the graft" msgstr "" msgid "Graft is complete" msgstr "" msgid "Graft failed" msgstr "" msgid "Graft aborted" msgstr "" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" msgid "You may continue the graft" msgstr "" msgid "Exiting with an unfinished graft is not recommended." msgstr "" msgid "Consider aborting the graft first." msgstr "" msgid "&Exit" msgstr "" msgid "### regular expression search pattern ###" msgstr "" msgid "Regexp:" msgstr "" msgid "Ignore case" msgstr "" msgid "Search" msgstr "" msgid "Working Copy" msgstr "" msgid "All History" msgstr "" msgid "Report only the first match per file" msgstr "" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "" msgid "Includes:" msgstr "" msgid "Excludes:" msgstr "" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" #, python-format msgid "\"%s\" removed from search history" msgstr "" #, python-format msgid "\"%s\" removed from path history" msgstr "" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "" #, python-format msgid "grep: %s\n" msgstr "" #, python-format msgid "%d matches found" msgstr "" msgid "No matches found" msgstr "" msgid "Searching" msgstr "" msgid "history" msgstr "" msgid "Interrupted" msgstr "" msgid "files" msgstr "" #, python-format msgid "Skipping %s, unable to read" msgstr "" msgid "Vi&ew File" msgstr "" msgid "&View Changeset" msgstr "" msgid "Annotate &File" msgstr "" msgid "File" msgstr "" msgid "Line" msgstr "" msgid "Rev" msgstr "" msgid "User" msgstr "" msgid "Match Text" msgstr "" msgid "TortoiseHg Search" msgstr "" #, python-format msgid "Detect Copies/Renames in %s" msgstr "" msgid "Unrevisioned Files" msgstr "" msgid "Refresh file list" msgstr "" #, python-format msgid "Min Similarity: %d%%" msgstr "" msgid "Only consider deleted files" msgstr "" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "" msgid "Find Renames" msgstr "" msgid "Find copy and/or rename sources" msgstr "" msgid "Candidate Matches" msgstr "" msgid "Accept All Matches" msgstr "" msgid "Accept Selected Matches" msgstr "" msgid "Differences from Source to Dest" msgstr "" msgid "Search already in progress" msgstr "" msgid "Cannot start a new search" msgstr "" msgid "No files to find" msgstr "" msgid "There are no files that may have been renamed" msgstr "" msgid "Multiple sources chosen" msgstr "" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" #. i18n: percent format #, python-format msgid "%d%%" msgstr "" msgid "Source" msgstr "" msgid "Dest" msgstr "" msgid "% Match" msgstr "" msgid "Sending Email" msgstr "" msgid "Email" msgstr "" msgid "To:" msgstr "" msgid "Cc:" msgstr "" msgid "In-Reply-To:" msgstr "" msgid "Message identifier to reply to, for threading" msgstr "" msgid "Flag:" msgstr "" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" msgid "Send changesets as Hg patches" msgstr "" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" msgid "Use extended (git) patch format" msgstr "" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" msgid "Plain, do not prepend Hg header" msgstr "" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" msgid "Send single binary bundle, not patches" msgstr "" msgid "send patches as part of the email body" msgstr "" msgid "body" msgstr "" msgid "send patches as attachments" msgstr "" msgid "attach" msgstr "" msgid "send patches as inline attachments" msgstr "" msgid "inline" msgstr "" msgid "add diffstat output to messages" msgstr "" msgid "diffstat" msgstr "" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" msgid "Write patch series (bundle) description" msgstr "" msgid "Subject:" msgstr "" msgid "Changesets" msgstr "" msgid "Select &All" msgstr "" msgid "Select &None" msgstr "" msgid "Edit" msgstr "" msgid "Preview" msgstr "" msgid "&Settings" msgstr "" msgid "Send &Email" msgstr "" msgid "&Close" msgstr "&Aizvērt" #, python-format msgid "Ignore filter - %s" msgstr "" msgid "Glob" msgstr "" msgid "Regexp" msgstr "" msgid "Add" msgstr "" msgid "Edit File" msgstr "" msgid "Ignore Filter" msgstr "" msgid "Untracked Files" msgstr "" msgid "Backspace or Del to remove row(s)" msgstr "" msgid "Add ignore filter..." msgstr "" msgid "selected files" msgstr "" msgid "Ignore " msgstr "" msgid "Invalid glob expression" msgstr "" msgid "Invalid regexp expression" msgstr "" msgid "Unable to read repository status" msgstr "" msgid "New file created" msgstr "" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" msgid "Unable to write .hgignore file" msgstr "" msgid "Copy working directory files from skeleton" msgstr "" msgid "Create special files (.hgignore, ...)" msgstr "" msgid "Make repo compatible with Mercurial <1.7" msgstr "" msgid "New Repository" msgstr "" msgid "&Create" msgstr "" msgid "Unable to create a config file" msgstr "" msgid "Insufficient access rights." msgstr "" msgid "Show Log" msgstr "" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" msgid "Add as &Largefiles" msgstr "" msgid "Add as &Normal Files" msgstr "" msgid "Invalid Patterns" msgstr "" msgid "Failed to process largefiles.patterns." msgstr "" msgid "Word docs (*.doc *.docx)" msgstr "" msgid "PDF docs (*.pdf)" msgstr "" msgid "Excel files (*.xls *.xlsx)" msgstr "" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "" msgid "Refresh lock information" msgstr "" msgid "Lock a file not described in .hglocks" msgstr "" msgid "Stop current operation" msgstr "" msgid "Locked And Lockable Files:" msgstr "" msgid "Path" msgstr "" msgid "Locking User" msgstr "" msgid "Purpose" msgstr "" msgid "Simplelock extension not enabled" msgstr "" msgid "Please enable and configure simplelock" msgstr "" msgid "Open a (nonmergable) file you wish to be locked" msgstr "" msgid "File was not within current repository" msgstr "" #, python-format msgid "Locking %s" msgstr "" #, python-format msgid "Unlocking %s" msgstr "" msgid "Refreshing locks..." msgstr "" #, python-format msgid "Lock of %s successful" msgstr "" #, python-format msgid "Lock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s successful" msgstr "" msgid "Ready, double click to lock or unlock" msgstr "" msgid "Ready" msgstr "" msgid "You can only release your own locks" msgstr "" msgid "Find revisions matching fields of:" msgstr "" msgid "Revision to Match:" msgstr "" msgid "Fields to match:" msgstr "" msgid "Summary (first description line)" msgstr "" msgid "Description" msgstr "" msgid "Author" msgstr "" msgid "Date" msgstr "" msgid "Files" msgstr "" msgid "Diff contents" msgstr "" msgid "Subrepo states" msgstr "" msgid "Branch" msgstr "" msgid "Phase" msgstr "" msgid "&Match" msgstr "" #, python-format msgid "Find matches - %s" msgstr "" msgid "Revisions to Match:" msgstr "" #, python-format msgid "Match any of %d revisions" msgstr "" msgid "Unknown revision!" msgstr "" msgid "Parse Error!" msgstr "" #, python-format msgid "Merge - %s" msgstr "" msgid "Do you want to exit?" msgstr "" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" msgid "Prepare to merge" msgstr "" msgid "Verify merge targets and ensure your working directory is clean." msgstr "" msgid "Not a head revision!" msgstr "" msgid "Merge from (other revision)" msgstr "" msgid "Merge to (working directory)" msgstr "" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Or use:" msgstr "" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "" msgid "Discard all changes from the other revision" msgstr "" msgid "&Discard" msgstr "" msgid "Confirm Discard Changes" msgstr "" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" msgctxt "working dir state" msgid "Clean" msgstr "" msgid "Merging..." msgstr "" msgid "Automatically advance to next page when merge is complete." msgstr "" #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" msgid "" "No merge conflicts, ready to commit or review" msgstr "" msgid "Commit merge results" msgstr "" msgid "Commit Options" msgstr "" msgid "Commit Now" msgstr "" msgid "Commit Later" msgstr "" msgid "Merge changeset" msgstr "" msgid "Syntax Highlighting" msgstr "" msgid "Paste &Filenames" msgstr "" msgid "App&ly Format" msgstr "" msgid "C&onfigure Format" msgstr "" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "" msgid "&Commit to Queue..." msgstr "" msgid "Create &New Queue..." msgstr "" msgid "&Rename Active Queue..." msgstr "" msgid "&Delete Queue..." msgstr "" msgid "&Purge Queue..." msgstr "" msgid "Create Patch Queue" msgstr "" msgid "New patch queue name" msgstr "" msgid "Create" msgstr "" msgid "Rename Patch Queue" msgstr "" #, python-format msgid "Rename patch queue '%s' to" msgstr "" msgid "Rename" msgstr "" msgid "Delete Patch Queue" msgstr "" msgid "Delete reference to" msgstr "" msgid "Delete" msgstr "" msgid "Purge Patch Queue" msgstr "" msgid "Remove patch directory of" msgstr "" msgid "Purge" msgstr "" msgid "Rename Patch" msgstr "" #, python-format msgid "Rename patch %s to:" msgstr "" msgid "no guards" msgstr "" msgid "Patch Queue" msgstr "" msgctxt "MQ QPush" msgid "Push" msgstr "" msgid "Apply one patch" msgstr "" msgctxt "MQ QPush" msgid "Push all" msgstr "" msgid "Apply all patches" msgstr "" msgid "Pop" msgstr "" msgid "Unapply one patch" msgstr "" msgid "Pop all" msgstr "" msgid "Unapply all patches" msgstr "" msgid "Go &to Patch" msgstr "" msgid "&Apply Only This Patch" msgstr "" msgid "Apply only the selected patch" msgstr "" msgid "&Finish Patch" msgstr "" msgid "Move applied patches into repository history" msgstr "" msgid "&Delete Patches..." msgstr "" msgid "Delete selected patches" msgstr "" msgid "Re&name Patch..." msgstr "" msgid "Set &Guards..." msgstr "" msgid "Configure guards for selected patch" msgstr "" msgid "Patch Queue Actions Toolbar" msgstr "" msgid "Configure guards" msgstr "" #, python-format msgid "Input new guards for %s:" msgstr "" msgid "Confirm patch queue switch" msgstr "" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "" #, python-format msgid "Guards: %d/%d" msgstr "" msgid "MQ options" msgstr "" msgid "Force push or pop (--force)" msgstr "" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "" msgid "Submitting p4 changelist..." msgstr "" msgid "Reverting p4 changelist..." msgstr "" msgid "Patch Branch Toolbar" msgstr "" msgid "Merge all pending dependencies" msgstr "" msgid "Backout current patch branch" msgstr "" msgid "Backport part of a changeset to a dependency" msgstr "" msgid "Start a new patch branch" msgstr "" msgid "Edit patch dependency graph" msgstr "" msgid "will be closed" msgstr "" #, python-format msgid "needs merge of %i heads\n" msgstr "" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "" #, python-format msgid "needs merge with %s\n" msgstr "" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "" msgid "&Goto (update workdir)" msgstr "" msgid "&Merge" msgstr "" msgid "No patch branch selected" msgstr "" msgid "No editor found" msgstr "" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" msgid "Graph" msgstr "" msgid "Status" msgstr "" msgid "Title" msgstr "" msgid "Message" msgstr "" msgid "New Patch Branch" msgstr "" msgid "Patch message:" msgstr "" msgid "Patch date:" msgstr "" msgid "Patch user:" msgstr "" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" msgid "Review Board" msgstr "" msgid "Password:" msgstr "" msgid "Error" msgstr "" #, python-format msgid "Review draft posted to %s\n" msgstr "" #, python-format msgid "Review published to %s\n" msgstr "" msgid "Success" msgstr "" msgid "Repository ID:" msgstr "" msgid "Post Review" msgstr "" msgid "Review ID:" msgstr "" msgid "Update the fields of this existing request" msgstr "" msgid "Update Review" msgstr "" msgid "Create diff with all outgoing changes" msgstr "" msgid "Create diff with all changes on this branch" msgstr "" msgid "Publish request immediately" msgstr "" msgid "%p%" msgstr "" msgid "Connecting to Review Board..." msgstr "" msgid "Target:" msgstr "" msgid "Do not modify working copy (-k/--keep)" msgstr "" #, python-format msgid "Prune - %s" msgstr "" msgid "&Prune" msgstr "" msgid "No unknown files found" msgstr "" msgid "No ignored files found" msgstr "" msgid "No trash files found" msgstr "" msgid "Delete empty folders" msgstr "" msgid "Preserve files beginning with .hg" msgstr "" #, python-format msgid "%s - purge" msgstr "" msgid "Checking" msgstr "" msgid "Ready to purge." msgstr "" #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "" msgstr[1] "" msgid "Confirm file deletions" msgstr "" msgid "Are you sure you want to delete these files and/or folders?" msgstr "" msgid "Deletion failures" msgstr "" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "" msgstr[1] "" msgid "Deleting trash folder..." msgstr "" #, python-format msgid "Deleted %d files" msgstr "" #, python-format msgid "Deleted %d files and %d folders" msgstr "" msgid "Delete Patches" msgstr "" msgid "Remove patches from queue?" msgstr "" msgid "Keep patch files" msgstr "" #, python-format msgid "Patch fold - %s" msgstr "" msgid "New patch message:" msgstr "" msgid "Patches to fold" msgstr "" msgid "&Undo" msgstr "" msgid "&Redo" msgstr "" msgid "Cu&t" msgstr "" msgid "&Copy" msgstr "" msgid "&Paste" msgstr "" msgid "&Editor Options" msgstr "" msgid "&Wrap" msgstr "" msgctxt "wrap mode" msgid "&None" msgstr "" msgid "&Word" msgstr "" msgid "&Character" msgstr "" msgid "White&space" msgstr "" msgid "&Visible" msgstr "" msgid "&Invisible" msgstr "" msgid "&AfterIndent" msgstr "" msgid "&TAB Inserts" msgstr "" msgid "&Auto" msgstr "" msgid "&TAB" msgstr "" msgid "&Spaces" msgstr "" msgid "EOL &Visibility" msgstr "" msgid "EOL &Mode" msgstr "" msgid "&Windows" msgstr "" msgid "&Unix" msgstr "" msgid "&Mac" msgstr "" msgid "&Auto-Complete" msgstr "" msgid "### regular expression ###" msgstr "" msgid "Regular expression search pattern" msgstr "" msgid "Wrap search" msgstr "" msgid "Prev" msgstr "" msgid "Next" msgstr "" msgid "Unable to read file" msgstr "" msgid "Could not open the specified file for reading." msgstr "" msgid "This appears to be a binary file." msgstr "" msgid "An error occurred while reading the file." msgstr "" msgid "Text Translation Failure" msgstr "" msgid "Could not translate the file content from native encoding." msgstr "" msgid "Several characters would be lost." msgstr "" msgid "Unable to write file" msgstr "" msgid "Could not translate the file content to native encoding." msgstr "" msgid "Could not open the specified file for writing." msgstr "" msgid "An error occurred while writing the file." msgstr "" msgid "Try refreshing your repository." msgstr "" #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
                                                                Please edit your config" msgstr "" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
                                                                Please fix your config" msgstr "" #, python-format msgid "Operation aborted:

                                                                %(arg0)s." msgstr "" msgid "Repository is locked" msgstr "" msgid "hint:" msgstr "" msgid "Repository Error" msgstr "" msgid "No visual editor configured" msgstr "" msgid "Please configure a visual editor." msgstr "" msgid "Editor launch failure" msgstr "" msgid "Failed to open path in terminal" msgstr "" #, python-format msgid "\"%s\" is not a valid directory" msgstr "" #, python-format msgid "Invalid configuration: %s" msgstr "" msgid "Unable to start the following command:" msgstr "" msgid "No shell configured" msgstr "" msgid "A terminal shell must be configured" msgstr "" msgid "Please enter a username" msgstr "" msgid "You must identify yourself to Mercurial" msgstr "" msgid "Unable to translate input to local encoding." msgstr "" msgid "Checkmark files to add" msgstr "" msgid "Checkmark files to forget" msgstr "" msgid "Forget" msgstr "" msgid "Checkmark files to revert" msgstr "" msgid "Revert" msgstr "" msgid "Checkmark files to remove" msgstr "" msgid "Remove" msgstr "" #, python-format msgid "%s - hg %s" msgstr "" msgid "Do not save backup files (*.orig)" msgstr "" msgid "Force removal of modified files (--force)" msgstr "" msgid "Add &Largefiles" msgstr "" msgid "No files selected" msgstr "" msgid "No operation to perform" msgstr "" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" msgid "Remove &Unmodified Files" msgstr "" msgid "Remove &All Selected Files" msgstr "" msgid "Rebase changeset and descendants" msgstr "" msgid "To rebase destination" msgstr "" msgid "Swap source and destination" msgstr "" msgid "Keep original changesets (--keep)" msgstr "" msgid "Keep original branch names (--keepbranches)" msgstr "" msgid "Collapse the rebased changesets (--collapse)" msgstr "" msgid "Rebase entire source branch (-b/--base)" msgstr "" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "" msgid "Rebase" msgstr "" #, python-format msgid "Rebase - %s" msgstr "" msgid "" "Before rebase, you must
                                                                commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the rebase" msgstr "" msgid "Rebase is complete" msgstr "" msgid "Rebase failed" msgstr "" msgid "Rebase aborted" msgstr "" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" msgid "Exiting with an unfinished rebase is not recommended." msgstr "" msgid "Consider aborting the rebase first." msgstr "" #, python-format msgid "Merge rejected patch chunks into %s" msgstr "" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "" msgid "Mark this chunk as unresolved" msgstr "" msgid "Reload File" msgstr "" msgid "Are you sure you want to reload this file?" msgstr "" msgid "All unsaved changes will be lost." msgstr "" msgid "Warning" msgstr "" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" msgid "Copy source -> destination" msgstr "" msgid "Copy Error" msgstr "" msgid "Rename Error" msgstr "" msgid "Select Source File" msgstr "" msgid "Select Source Folder" msgstr "" msgid "Source does not exist." msgstr "" msgid "The source must be within the repository tree." msgstr "" msgid "The destination must be within the repository tree." msgstr "" msgid "Destination file already exists." msgstr "" msgid "Are you sure you want to overwrite it ?" msgstr "" #, python-format msgid "Copy - %s" msgstr "" #, python-format msgid "Rename - %s" msgstr "" msgid "Show all" msgstr "" msgid "### revision set query ###" msgstr "" msgid "Clear current query and query text" msgstr "" msgid "Trigger revision set query" msgstr "" msgid "Open advanced query editor" msgstr "" msgid "Delete selected query from history" msgstr "" msgid "filter" msgstr "" msgid "Toggle filtering of non-matched changesets" msgstr "" msgid "Show/Hide hidden changesets" msgstr "" msgid "Toggle graft relations visibility" msgstr "" msgid "Keyword Search" msgstr "" msgid "Revision Set" msgstr "" msgid "(unsaved)" msgstr "" msgid "Display graph the named branch only" msgstr "" msgid "Display only active branches" msgstr "" msgid "Display closed branches" msgstr "" msgid "Include all ancestors" msgstr "" msgctxt "column header" msgid "Graph" msgstr "" msgctxt "column header" msgid "Rev" msgstr "" msgctxt "column header" msgid "Branch" msgstr "" msgctxt "column header" msgid "Description" msgstr "" msgctxt "column header" msgid "Author" msgstr "" msgctxt "column header" msgid "Tags" msgstr "" msgctxt "column header" msgid "Latest tags" msgstr "" msgctxt "column header" msgid "Node" msgstr "" msgctxt "column header" msgid "Git Commit" msgstr "" msgctxt "column header" msgid "Age" msgstr "" msgctxt "column header" msgid "Local Time" msgstr "" msgctxt "column header" msgid "UTC Time" msgstr "" msgctxt "column header" msgid "Changes" msgstr "" msgctxt "column header" msgid "Converted From" msgstr "" msgctxt "column header" msgid "Phase" msgstr "" msgctxt "column header" msgid "Filename" msgstr "" msgid "Searching..." msgstr "" #, python-format msgid "filling (%d)" msgstr "" msgid "Mercurial User" msgstr "" msgid "Repository Registry" msgstr "" msgid "Show &Paths" msgstr "" msgid "Show S&hort Paths" msgstr "" msgid "&Scan Repositories at Startup" msgstr "" msgid "Scan &Remote Repositories" msgstr "" msgid "&Refresh Repository List" msgstr "" msgid "Refresh the Repository Registry list" msgstr "" msgid "&Open" msgstr "" msgid "Open the repository in a new tab" msgstr "" msgid "&Open All" msgstr "" msgid "Open all repositories in new tabs" msgstr "" msgid "New &Group" msgstr "" msgid "Create a new group" msgstr "" msgid "Rename the entry" msgstr "" msgid "Settin&gs" msgstr "" msgid "View the repository's settings" msgstr "" msgid "Re&move from Registry" msgstr "" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" msgid "Clon&e..." msgstr "" msgid "Clone Repository" msgstr "" msgid "E&xplore" msgstr "" msgid "Open the repository in a file browser" msgstr "" msgid "&Terminal" msgstr "" msgid "Open a shell terminal in the repository root" msgstr "" msgid "&Add Repository..." msgstr "" msgid "Add a repository to this group" msgstr "" msgid "A&dd Subrepository..." msgstr "" msgid "Convert an existing repository into a subrepository" msgstr "" msgid "Remo&ve Subrepository..." msgstr "" msgid "Remove this subrepository from the current revision" msgstr "" msgid "Copy the root path of the repository to the clipboard" msgstr "" msgid "Sort by &Name" msgstr "" msgid "Sort the group by short name" msgstr "" msgid "Sort by &Path" msgstr "" msgid "Sort the group by full path" msgstr "" msgid "&Sort by .hgsub" msgstr "" msgid "Order the subrepos as in .hgsub" msgstr "" msgid "Select repository directory to add" msgstr "" msgid "Select an existing repository to add as a subrepo" msgstr "" msgid "Cannot add subrepository" msgstr "" #, python-format msgid "%s is not a valid repository" msgstr "" #, python-format msgid "\"%s\" is not a folder" msgstr "" msgid "A repository cannot be added as a subrepo of itself" msgstr "" #, python-format msgid "" "The selected folder:

                                                                %s

                                                                is not inside the target repository." "

                                                                This may be allowed but is greatly discouraged.
                                                                If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" msgid "Cannot open repository" msgstr "" #, python-format msgid "The selected repository:

                                                                %s

                                                                cannot be open!" msgstr "" msgid "Subrepository already exists" msgstr "" #, python-format msgid "" "The selected repository:

                                                                %s

                                                                is already a subrepository of:" "

                                                                %s

                                                                as: \"%s\"" msgstr "" msgid "Failed to add subrepository" msgstr "" #, python-format msgid "Cannot open the .hgsub file in:

                                                                %s" msgstr "" msgid "Failed to add repository" msgstr "" #, python-format msgid "The .hgsub file already contains the line:

                                                                %s" msgstr "" msgid "Subrepo added to .hgsub file" msgstr "" #, python-format msgid "" "The selected subrepo:

                                                                %s

                                                                has been added to the .hgsub " "file of the repository:

                                                                %s

                                                                Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" #, python-format msgid "Cannot update the .hgsub file in:

                                                                %s" msgstr "" msgid "Could not open .hgsub file" msgstr "" msgid "Cannot read the .hgsub file.

                                                                Subrepository removal failed." msgstr "" msgid "Subrepository not found" msgstr "" msgid "" "The selected subrepository was not found on the .hgsub file.

                                                                Perhaps it " "has already been removed?" msgstr "" msgid "&Yes" msgstr "" msgid "&No" msgstr "" msgid "Remove the selected repository?" msgstr "" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" msgid "Subrepository removed from .hgsub" msgstr "" msgid "" "The selected subrepository has been removed from the .hgsub file.

                                                                Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" msgid "Could not update .hgsub file" msgstr "" msgid "Cannot update the .hgsub file.

                                                                Subrepository removal failed." msgstr "" #, python-format msgid "Unsupported repository type (%s)" msgstr "" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "" msgid "New Group" msgstr "" msgid "Confirm Delete" msgstr "" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "" msgid "Could not get subrepository list" msgstr "" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

                                                                %s" msgstr "" msgid "Could not open some subrepositories" msgstr "" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

                                                                %s

                                                                The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

                                                                %s" msgstr "" msgid "Updating repository registry" msgstr "" #, python-format msgid "Loading repository %s" msgstr "" msgid "Repository Registry updated" msgstr "" msgid "Close tab" msgstr "" msgid "Close other tabs" msgstr "" msgid "Undo close tab" msgstr "" msgid "Reopen last closed tab" msgstr "" msgid "Undo close other tabs" msgstr "" msgid "Reopen last closed tab group" msgstr "" msgid "Failed to open repository" msgstr "" msgid "&Sort" msgstr "" #, python-format msgid "Local Repository %s" msgstr "" #, python-format msgid "" "An exception happened while loading the subrepos of:

                                                                \"%s\"

                                                                " msgstr "" #, python-format msgid "The exception error message was:

                                                                %s

                                                                " msgstr "" msgid "Click OK to continue or Abort to exit." msgstr "" msgid "Error loading subrepos" msgstr "" msgid "Unable to update repository name" msgstr "" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "" msgid "default" msgstr "" msgid "C&hoose Log Columns..." msgstr "" msgid "&Resize Columns" msgstr "" #, python-format msgid "Goto ancestor of %s and %s" msgstr "" #, python-format msgid "Can't find revision '%s'" msgstr "" msgid "Drag to change order" msgstr "" msgid "Workbench Log Columns" msgstr "" msgctxt "tab tooltip" msgid "Revision details" msgstr "" msgctxt "tab tooltip" msgid "Commit" msgstr "" msgctxt "tab tooltip" msgid "Search" msgstr "" msgctxt "tab tooltip" msgid "Console log" msgstr "" msgctxt "tab tooltip" msgid "Synchronize" msgstr "" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "" #, python-format msgid "%s " msgstr "" #, python-format msgid "Found %d incoming changesets" msgstr "" msgid "Pull" msgstr "" msgid "Pull incoming changesets into your repository" msgstr "" msgid "Reject incoming changesets" msgstr "" #, python-format msgid "Push current branch (%s)" msgstr "" #, python-format msgid "Push up to current revision (#%d)" msgstr "" #, python-format msgid "Push up to revision #%d" msgstr "" msgid "Push all" msgstr "" msgid "no outgoing changesets" msgstr "" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets" msgstr "" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "" msgid "Nothing to push" msgstr "" msgid "No revision found" msgstr "" #, python-format msgid "%s - verify repository" msgstr "" #, python-format msgid "%s - recover repository" msgstr "" msgid "No transaction available" msgstr "" msgid "There is no rollback transaction available" msgstr "" msgid "Undo last commit?" msgstr "" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "" msgid "Undo last transaction?" msgstr "" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "" msgid "Unable to determine working copy revision\n" msgstr "" msgid "Remove current working revision?" msgstr "" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" msgid "Tab cannot exit" msgstr "" msgid "Pus&h" msgstr "" msgid "Push to &Here" msgstr "" msgid "Push Selected &Branch" msgstr "" msgid "Push &All" msgstr "" msgid "&Update..." msgstr "" msgid "Bro&wse at Revision" msgstr "" msgid "&Merge with Local..." msgstr "" msgid "&Tag..." msgstr "" msgid "Boo&kmark..." msgstr "" msgid "Top&ic..." msgstr "" msgid "Sig&n..." msgstr "" msgid "&Backout..." msgstr "" msgid "Revert &All Files..." msgstr "" msgid "Copy &Hash" msgstr "" msgid "E&xport" msgstr "" msgid "E&xport Patch..." msgstr "" msgid "&Email Patch..." msgstr "" msgid "&Archive..." msgstr "" msgid "&Bundle Rev and Descendants..." msgstr "" msgid "Change &Phase to" msgstr "" msgid "&Graft to Local..." msgstr "" msgid "Modi&fy History" msgstr "" msgid "&Unapply Patch" msgstr "" msgid "Import to &MQ" msgstr "" msgid "MQ &Options" msgstr "" msgid "&Rebase..." msgstr "" msgid "&Prune..." msgstr "" msgid "&Strip..." msgstr "" msgid "Post to Re&view Board..." msgstr "" msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "" msgid "Write diff file" msgstr "" msgid "Unable to write diff file" msgstr "" msgid "Unable to compress history" msgstr "" msgid "Selected changeset pair not related" msgstr "" msgid "Visual Diff..." msgstr "" msgid "Export Diff..." msgstr "" msgid "Export Selected..." msgstr "" msgid "Email Selected..." msgstr "" msgid "Copy Selected as Patch" msgstr "" msgid "Archive DAG Range..." msgstr "" msgid "Export DAG Range..." msgstr "" msgid "Email DAG Range..." msgstr "" msgid "Bundle DAG Range..." msgstr "" msgid "Bisect - Good, Bad..." msgstr "" msgid "Bisect - Bad, Good..." msgstr "" msgid "Compress History..." msgstr "" msgid "Rebase..." msgstr "" msgid "Goto common ancestor" msgstr "" msgid "Graft Selected to local..." msgstr "" msgid "&Prune Selected..." msgstr "" msgid "Post Selected to Review Board..." msgstr "" msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "" msgid "Apply onto original parent" msgstr "" msgid "Apply only this patch" msgstr "" msgid "Fold patches..." msgstr "" msgid "Delete patches..." msgstr "" msgid "Rename patch..." msgstr "" msgid "Pull to here..." msgstr "" msgid "Visual diff..." msgstr "" msgid "Export patch" msgstr "" msgid "Patch Files (*.patch)" msgstr "" msgid "Cannot export revision" msgstr "" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" msgid "There is already an existing folder with that same name." msgstr "" msgid "Replace" msgstr "" msgid "Append" msgstr "" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" msgid "What do you want to do?\n" msgstr "" msgid "Replace the existing patch files.\n" msgstr "" msgid "Append the changes to the existing patch files.\n" msgstr "" msgid "Abort the export operation.\n" msgstr "" msgid "Patch files already exist" msgstr "" msgid "Patch exported" msgstr "" #, python-format msgid "" "Revision #%d (%s) was exported to:

                                                                %s%s%s" msgstr "" msgid "Patches exported" msgstr "" #, python-format msgid "%d patches were exported to:

                                                                %s" msgstr "" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

                                                                Are you sure you want to use revert?

                                                                (use " "update to checkout another revision)" msgstr "" msgid "Filter b&y" msgstr "" msgid "&Ancestors and Descendants" msgstr "" msgid "A&uthor" msgstr "" msgid "&Branch" msgstr "" msgid "&More Options..." msgstr "" msgid "Unable to merge" msgstr "" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "" msgid "Unable to backout" msgstr "" msgid "Write bundle" msgstr "" msgid "Backwards phase change requested" msgstr "" msgid "Do you really want to make this revision secret?" msgstr "" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" msgid "&Make secret" msgstr "" msgid "&Cancel" msgstr "" msgid "Do you really want to force a backwards phase transition?" msgstr "" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" msgid "&Force" msgstr "" msgid "Cannot import selected revision" msgstr "" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" msgid "Invalid command" msgstr "" msgid "The selected command is empty" msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" msgid "Failed to execute custom TortoiseHg command" msgstr "" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "" msgid "Failed to execute custom command" msgstr "" #, python-format msgid "The command \"%s\" could not be executed." msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" msgid "&Edit Toolbar" msgstr "" msgid "&Refresh" msgstr "" msgid "&Filter Toolbar" msgstr "" #, python-format msgid "TortoiseHg: %s" msgstr "" msgid "S&tatus Bar" msgstr "" #, python-format msgid "Resolve Conflicts - %s" msgstr "" msgid "Local revision information" msgstr "" msgid "Other revision information" msgstr "" msgid "Unresolved conflicts" msgstr "" msgid "Mercurial Re&solve" msgstr "" msgid "Attempt automatic (trivial) merge" msgstr "" msgid "Tool &Resolve" msgstr "" msgid "Merge using selected merge tool" msgstr "" msgid "&Take Local" msgstr "" msgid "Accept the local file version (yours)" msgstr "" msgid "Take &Other" msgstr "" msgid "Accept the other file version (theirs)" msgstr "" msgid "&Mark as Resolved" msgstr "" msgid "Mark this file as resolved" msgstr "" msgid "Diff &Local to Ancestor" msgstr "" msgid "&Diff Other to Ancestor" msgstr "" msgid "Resolved conflicts" msgstr "" msgid "&Edit File" msgstr "" msgid "Edit resolved file" msgstr "" msgid "3-&Way Diff" msgstr "" msgid "Visual three-way diff" msgstr "" msgid "Visual diff between resolved file and first parent" msgstr "" msgid "&Diff to Other" msgstr "" msgid "Visual diff between resolved file and second parent" msgstr "" msgid "Mark as &Unresolved" msgstr "" msgid "Mark this file as unresolved" msgstr "" msgid "Detected merge/diff tools:" msgstr "" msgid "Command output" msgstr "" msgid "Unable to show subrepository files" msgstr "" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" msgid "There are merge conflicts to be resolved" msgstr "" msgid "All conflicts are resolved." msgstr "" msgid "There are no conflicting file merges." msgstr "" msgid "Exit without finishing resolve?" msgstr "" msgid "Unresolved conflicts remain. Are you sure?" msgstr "" msgid "E&xit" msgstr "" msgid "Ext" msgstr "" msgid "Repository" msgstr "" msgid "" msgstr "" msgid "File List Toolbar" msgstr "" msgid "Ma&nifest Mode" msgstr "" msgid "Show all version-controlled files in tree view" msgstr "" msgid "&Flat List" msgstr "" msgid "### filter text ###" msgstr "" msgid "Changed by &This Commit" msgstr "" msgid "Show files changed by this commit" msgstr "" msgid "Compare to &1st Parent" msgstr "" msgid "Compare to &2nd Parent" msgstr "" msgid "Toggle parent to be used as the base revision" msgstr "" msgid "List Optio&ns" msgstr "" #, python-format msgid "%s - Revision Details (%s)" msgstr "" #, python-format msgid "Revert - %s" msgstr "" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "" msgid "Revert all files to this revision" msgstr "" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "" msgid "null revision (i.e. remove file(s))" msgstr "" msgid "Changeset:" msgstr "" msgid "Child:" msgstr "" msgid "Predecessors:" msgstr "" msgid "Successors:" msgstr "" msgid "Head is closed!" msgstr "" msgid "Changesets where username contains string." msgstr "" msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" msgid "Like \"keyword(string)\" but accepts a regex." msgstr "" msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" msgid "The named bookmark or all bookmarks." msgstr "" msgid "The named tag or all tags." msgstr "" msgid "Changeset is tagged." msgstr "" msgid "Changeset is a named branch head." msgstr "" msgid "Changeset is a merge changeset." msgstr "" msgid "Changeset is closed." msgstr "" msgid "" "Changesets within the interval, see help dates" msgstr "" msgid "Greatest common ancestor of the two changesets." msgstr "" msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" msgid "Changesets which modify files matched by pattern." msgstr "" msgid "Changesets which add files matched by pattern." msgstr "" msgid "Changesets which remove files matched by pattern." msgstr "" msgid "Changesets containing files matched by pattern." msgstr "" msgid "All changesets belonging to the branches of changesets in set." msgstr "" msgid "Members of a set with no children in set." msgstr "" msgid "Changesets which are descendants of changesets in set." msgstr "" msgid "Changesets that are ancestors of a changeset in set." msgstr "" msgid "Child changesets of changesets in set." msgstr "" msgid "The set of all parents for all changesets in set." msgstr "" msgid "First parent for all changesets in set, or the working directory." msgstr "" msgid "Second parent for all changesets in set, or the working directory." msgstr "" msgid "Changesets with no parent changeset in set." msgstr "" msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" msgid "Changeset with lowest revision number in set." msgstr "" msgid "Changeset with highest revision number in set." msgstr "" msgid "First n members of a set." msgstr "" msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "" msgid "All changesets, the same as 0:tip." msgstr "" msgid "Revision Set Query" msgstr "" msgid "all revisions converted from subversion" msgstr "" msgid "changeset which represents converted svn revision" msgstr "" msgid "Common sets" msgstr "" msgid "File pattern sets" msgstr "" msgid "Set Ancestry" msgstr "" msgid "Set Logic" msgstr "" msgid "" "help " "revsets" msgstr "" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" #, python-format msgid "thg: unknown command '%s'\n" msgstr "" #, python-format msgid "thg %s: %s\n" msgstr "" #, python-format msgid "thg: %s\n" msgstr "" #, python-format msgid "abort: %s!\n" msgstr "" #, python-format msgid "abort: %s\n" msgstr "" #, python-format msgid "(%s)\n" msgstr "" msgid "option --config may not be abbreviated!" msgstr "" msgid "invalid arguments" msgstr "" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" msgid "repository root directory or symbolic path name" msgstr "" msgid "enable additional output" msgstr "" msgid "suppress output" msgstr "" msgid "display help and exit" msgstr "" msgid "set/override config option (use 'section.name=value')" msgstr "" msgid "enable debugging output" msgstr "" msgid "start debugger" msgstr "" msgid "print command execution profile" msgstr "" msgid "do not fork GUI process" msgstr "" msgid "always fork GUI process" msgstr "" msgid "read file list from file" msgstr "" msgid "read file list from file encoding utf-8" msgstr "" msgid "thg about" msgstr "" msgid "thg add [FILE]..." msgstr "" msgid "revision to annotate" msgstr "" msgid "open to line" msgstr "" msgid "initial search pattern" msgstr "" msgid "thg annotate" msgstr "" #, python-format msgid "invalid line number: %s" msgstr "" msgid "revision to archive" msgstr "" msgid "thg archive" msgstr "" msgid "merge with old dirstate parent after backout" msgstr "" msgid "parent to choose when backing out merge" msgstr "" msgid "revision to backout" msgstr "" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "" msgid "thg bisect" msgstr "" msgid "revision" msgstr "" msgid "thg bookmarks [-r REV] [NAME]" msgstr "" msgid "only one new bookmark name allowed" msgstr "" msgid "the clone will include an empty working copy (only a repository)" msgstr "" msgid "revision, tag or branch to check out" msgstr "" msgid "include the specified changeset" msgstr "" msgid "clone only the specified branch" msgstr "" msgid "use pull protocol to copy metadata" msgstr "" msgid "use uncompressed transfer (fast over LAN)" msgstr "" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "" msgid "record user as committer" msgstr "" msgid "record datecode as commit date" msgstr "" msgid "thg commit [OPTIONS] [FILE]..." msgstr "" msgid "thg debugblockmatcher" msgstr "" msgid "thg debugbugreport [TEXT]" msgstr "" msgid "thg debugconsole" msgstr "" msgid "thg debuglighthg" msgstr "" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "" msgid "no command specified" msgstr "" msgid "thg drag_copy SOURCE... DEST" msgstr "" msgid "thg drag_move SOURCE... DEST" msgstr "" msgid "a revision to send" msgstr "" msgid "thg email [REVS]" msgstr "" msgid "use only one form to specify the revision" msgstr "" msgid "select the specified revision" msgstr "" msgid "side-by-side comparison of revisions" msgstr "" msgid "thg filelog [OPTION]... FILE" msgstr "" msgid "requires a single filename" msgstr "" msgid "thg forget [FILE]..." msgstr "" msgid "revisions to graft" msgstr "" msgid "thg graft [-r] REV..." msgstr "" msgid "You must provide revisions to graft" msgstr "" msgid "ignore case during search" msgstr "" msgid "thg grep" msgstr "" msgid "thg guess" msgstr "" msgid "thg help [COMMAND]" msgstr "" msgid "global options:" msgstr "" msgid "use \"thg help\" for the full list of commands" msgstr "" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "" msgid "" "list of commands:\n" "\n" msgstr "" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" msgid "(no help text available)" msgstr "" msgid "options:\n" msgstr "" msgid "no commands defined\n" msgstr "" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "" msgid "" "basic commands:\n" "\n" msgstr "" #, python-format msgid " (default: %s)" msgstr "" msgid "thg hgignore [FILE]" msgstr "" msgid "import to the patch queue (MQ)" msgstr "" msgid "thg import [OPTION] [SOURCE]..." msgstr "" msgid "thg init [DEST]" msgstr "" msgid "thg lock" msgstr "" msgid "search for a given text or revset" msgstr "" msgid "(DEPRECATED)" msgstr "" msgid "open a new workbench window" msgstr "" msgid "thg log [OPTIONS] [FILE]" msgstr "" msgid "cannot specify both -k/--query and filenames" msgstr "" msgid "revision to display" msgstr "" msgid "thg manifest [-r REV] [FILE]" msgstr "" msgid "revision to merge" msgstr "" msgid "thg merge [[-r] REV]" msgstr "" msgid "Merge revision not specified or not found" msgstr "" msgid "a revision to post" msgstr "" msgid "thg postreview [-r] REV..." msgstr "" msgid "reviewboard extension not enabled" msgstr "" #, python-format msgid "see %(url)s" msgstr "" msgid "no revisions specified" msgstr "" msgid "revisions to prune" msgstr "" msgid "thg prune [-r] REV..." msgstr "" msgid "thg purge" msgstr "" msgid "keep original changesets" msgstr "" msgid "keep original branch names" msgstr "" msgid "rebase from the specified changeset" msgstr "" msgid "rebase onto the specified changeset" msgstr "" msgid "thg rebase -s REV -d REV [--keep]" msgstr "" msgid "Rebase already in progress" msgstr "" msgid "Resuming rebase already in progress" msgstr "" msgid "You must provide source and dest arguments" msgstr "" msgid "thg rejects [FILE]" msgstr "" msgid "You must provide the path to a file" msgstr "" msgid "thg remove [FILE]..." msgstr "" msgid "thg rename [SOURCE] [DEST]" msgstr "" msgid "field to give initial focus" msgstr "" msgid "thg repoconfig" msgstr "" msgid "thg resolve" msgstr "" msgid "the revision to show" msgstr "" msgid "thg revdetails [-r REV]" msgstr "" msgid "thg revert [FILE]..." msgstr "" msgid "revision to update" msgstr "" msgid "thg rupdate [[-r] REV]" msgstr "" msgid "name of the hgweb config file (serve more than one repository)" msgstr "" msgid "name of the hgweb config file (DEPRECATED)" msgstr "" msgid "thg serve [--web-conf FILE]" msgstr "" msgid "thg shellconfig" msgstr "" msgid "thg shelve" msgstr "" msgid "sign even if the sigfile is modified" msgstr "" msgid "make the signature local" msgstr "" msgid "the key id to sign with" msgstr "" msgid "do not commit the sigfile after signing" msgstr "" msgid "use as commit message" msgstr "" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "" msgid "Please enable the Gpg extension first." msgstr "" msgid "show files without changes" msgstr "" msgid "show ignored files" msgstr "" msgid "thg status [OPTIONS] [FILE]" msgstr "" msgid "discard uncommitted changes (no backup)" msgstr "" msgid "do not back up stripped revisions" msgstr "" msgid "do not modify working copy during strip" msgstr "" msgid "revision to strip" msgstr "" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "" msgid "open the bookmark sync window" msgstr "" msgid "thg sync [OPTION]... [PEER]" msgstr "" msgid "replace existing tag" msgstr "" msgid "make the tag local" msgstr "" msgid "revision to tag" msgstr "" msgid "remove a tag" msgstr "" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "" msgid "wait until the second ticks over" msgstr "" msgid "notify the shell for paths given" msgstr "" msgid "remove the status cache" msgstr "" msgid "show the contents of the status cache (no update)" msgstr "" msgid "update all repos in current dir" msgstr "" msgid "thg thgstatus [OPTION]" msgstr "" msgid "thg topics [-r REV] [NAME]" msgstr "" msgid "Please enable the Topic extension first." msgstr "" msgid "only one new topic name allowed" msgstr "" msgid "thg update [-C] [[-r] REV]" msgstr "" msgid "thg userconfig" msgstr "" msgid "changeset to view in diff tool" msgstr "" msgid "revisions to view in diff tool" msgstr "" msgid "bundle file to preview" msgstr "" msgid "launch visual diff tool" msgstr "" msgid "print license" msgstr "" msgid "thg version [OPTION]" msgstr "" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "" msgid "Location:" msgstr "" msgid "Update to:" msgstr "" msgid "Options:" msgstr "" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "" msgid "Perform a push before updating (-p/--push)" msgstr "" msgid "Allow pushing new branches (--new-branch)" msgstr "" msgid "Force push to remote location (-f/--force)" msgstr "" msgid "remove working directory" msgstr "" msgid "unknown revision!" msgstr "" #, python-format msgid "Remote Update - %s" msgstr "" msgid "&Update" msgstr "" msgid "Log" msgstr "" msgid "Repositories" msgstr "" #, python-format msgid "Running at %s" msgstr "" msgid "Stopped" msgstr "" msgid "TortoiseHg Web Server" msgstr "" msgid "Web Server" msgstr "" msgid "Port:" msgstr "" msgid "Status:" msgstr "" msgid "Start" msgstr "" msgid "Settings" msgstr "" msgid "" msgstr "" msgid "&True" msgstr "" msgid "&False" msgstr "" msgid "&Unspecified" msgstr "" #, python-format msgid "%dpt" msgstr "" msgid "Bold" msgstr "" msgid "Italic" msgstr "" msgid "Strike" msgstr "" msgid "Underline" msgstr "" msgid "&Set..." msgstr "" msgid "&Clear" msgstr "" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "" msgid "&Browse..." msgstr "" msgid "UI Language" msgstr "" msgid "Specify your preferred user interface language (restart needed)" msgstr "" msgid "Three-way Merge Tool" msgstr "" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" msgid "Visual Diff Tool" msgstr "" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" msgid "Visual Editor" msgstr "" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" msgid "CLI Editor" msgstr "" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" msgid "Shell" msgstr "" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
                                                                Default, Windows: cmd.exe /" "K title %(reponame)s
                                                                Default, OS X: not set
                                                                Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" msgid "Immediate Operations" msgstr "" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" msgid "Tab Width" msgstr "" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" msgid "Force Repo Tab" msgstr "" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "" msgid "Monitor Repo Changes" msgstr "" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" msgid "Max Diff Size" msgstr "" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" msgid "Fork GUI" msgstr "" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" msgid "Full Path Title" msgstr "" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" msgid "Auto-resolve merges" msgstr "" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" msgid "New Repo Skeleton" msgstr "" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "" msgid "Single Workbench Window" msgstr "" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" msgid "Default widget" msgstr "" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" msgid "" "Open new tabs next\n" "to the current tab" msgstr "" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" msgid "Author Coloring" msgstr "" msgid "Color changesets by author name. Default: False" msgstr "" msgid "Full Authorname" msgstr "" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" msgid "Task Tabs" msgstr "" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" msgid "Task Toolbar Order" msgstr "" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
                                                                Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
                                                                Valid names are: log commit sync grep and " "pbranch.
                                                                Default: log commit grep pbranch | sync" msgstr "" msgid "Long Summary" msgstr "" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" msgid "Log Batch Size" msgstr "" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "" msgid "Dead Branches" msgstr "" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" msgid "Branch Colors" msgstr "" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" msgid "Hide Tags" msgstr "" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" msgid "Activate Bookmarks" msgstr "" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

                                                                • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
                                                                • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
                                                                • never: Never show any prompt to " "activate any bookmarks.

                                                                Default: prompt" msgstr "" msgid "Show Family Line" msgstr "" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

                                                                Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" msgid "Use optimized graph layouter" msgstr "" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

                                                                Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" msgctxt "config item" msgid "Commit" msgstr "" msgid "Username" msgstr "" msgid "" "Name associated with commits. The common format is:
                                                                Full Name <" "email@example.com>" msgstr "" msgid "Ask Username" msgstr "" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" msgid "Summary Line Length" msgstr "" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" msgid "Close After Commit" msgstr "" msgid "Close the commit tool after every successful commit. Default: False" msgstr "" msgid "Push After Commit" msgstr "" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" msgid "Auto Commit List" msgstr "" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" msgid "Auto Exclude List" msgstr "" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" msgid "English Messages" msgstr "" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" msgid "New Commit Phase" msgstr "" msgid "The phase of new commits. Default: draft" msgstr "" msgid "Secret MQ Patches" msgstr "" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "" msgid "Check Subrepo Phase" msgstr "" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" msgid "Monitor working
                                                                directory changes" msgstr "" msgid "" "Select when the working directory status list will be refreshed:
                                                                - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
                                                                TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
                                                                - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
                                                                - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
                                                                Default: auto" msgstr "" msgid "Confirm adding unknown files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Confirm deleting files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Sync" msgstr "" msgid "After Pull Operation" msgstr "" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" msgid "Default Push" msgstr "" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

                                                                • all: The default. Push all changes in all " "branches.
                                                                • branch: Push all changes in the current branch.
                                                                • revision: Push the changes in the current branch up to the current revision.

                                                                Default: all" msgstr "" msgid "Confirm Push" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" msgid "Target Combo" msgstr "" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

                                                                • auto: The default. Show the combo if more than one target " "configured.
                                                                • always: Always show the combo.

                                                                Default: auto" msgstr "" msgid "SSH Command" msgstr "" msgid "" "Command to use for SSH connections.

                                                                Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" msgid "Subrepository Features:" msgstr "" msgid "Allow Hg Subrepos" msgstr "" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" msgid "Allow Git Subrepos" msgstr "" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

                                                                See the security note before enabling Git " "subrepos." msgstr "" msgid "Allow SVN Subrepos" msgstr "" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

                                                                See the security note before enabling " "Subversion subrepos." msgstr "" msgid "Server" msgstr "" msgid "Repository Details:" msgstr "" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" msgid "Encoding" msgstr "" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" msgid "'Publishing' repository" msgstr "" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" msgid "Web Server:" msgstr "" msgid "Textual description of the repository's purpose or contents." msgstr "" msgid "Contact" msgstr "" msgid "Name or email address of the person in charge of the repository." msgstr "" msgid "Style" msgstr "" msgid "Which template map style to use" msgstr "" msgid "Archive Formats" msgstr "" msgid "Comma separated list of archive formats allowed for downloading" msgstr "" msgid "Port" msgstr "" msgid "Port to listen on" msgstr "" msgid "Push Requires SSL" msgstr "" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" msgid "Stripes" msgstr "" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" msgid "Max Files" msgstr "" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "" msgid "Max Changes" msgstr "" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "" msgid "Allow Push" msgstr "" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" msgid "Deny Push" msgstr "" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" msgid "Proxy" msgstr "" msgid "Host" msgstr "" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "" msgid "Bypass List" msgstr "" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "" msgid "Optional. User name to authenticate with at the proxy server" msgstr "" msgid "Password" msgstr "" msgid "Optional. Password to authenticate with at the proxy server" msgstr "" msgid "From" msgstr "" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "" msgid "To" msgstr "" msgid "Comma-separated list of recipient email addresses" msgstr "" msgid "Cc" msgstr "" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "" msgid "Bcc" msgstr "" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "" msgid "method" msgstr "" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" msgid "SMTP Host" msgstr "" msgid "Host name of mail server" msgstr "" msgid "SMTP Port" msgstr "" msgid "Port to connect to on mail server. Default: 25" msgstr "" msgid "SMTP TLS" msgstr "" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "" msgid "SMTP Username" msgstr "" msgid "Username to authenticate to mail server with" msgstr "" msgid "SMTP Password" msgstr "" msgid "Password to authenticate to mail server with" msgstr "" msgid "Local Hostname" msgstr "" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "" msgid "Diff and Annotate" msgstr "" msgid "Patch EOL" msgstr "" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" msgid "Git Format" msgstr "" msgid "Use git extended diff header format. Default: False" msgstr "" msgid "MQ Git Format" msgstr "" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" msgid "No Dates" msgstr "" msgid "Do not include modification dates in diff headers. Default: False" msgstr "" msgid "Show Function" msgstr "" msgid "Show which function each change is in. Default: False" msgstr "" msgid "Ignore White Space" msgstr "" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "" msgid "Ignore WS Amount" msgstr "" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "" msgid "Ignore Blank Lines" msgstr "" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "" msgid "Annotate:" msgstr "" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "" msgid "Fonts" msgstr "" msgid "Message Font" msgstr "" msgid "Font used to display commit messages. Default: monospace 10" msgstr "" msgid "Diff Font" msgstr "" msgid "Font used to display text differences. Default: monospace 10" msgstr "" msgid "ChangeLog Font" msgstr "" msgid "Font used to display changelog data. Default: monospace 10" msgstr "" msgid "Output Font" msgstr "" msgid "Font used to display output messages. Default: sans 8" msgstr "" msgid "Extensions" msgstr "" msgid "Tools" msgstr "" msgid "Hooks" msgstr "" msgid "Issue Tracking" msgstr "" msgid "Issue Regex" msgstr "" msgid "Defines the regex to match when picking up issue numbers." msgstr "" msgid "Issue Link" msgstr "" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" msgid "Inline Tags" msgstr "" msgid "Show tags at start of commit message." msgstr "" msgid "Mandatory Issue Reference" msgstr "" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" msgid "Issue Tracker Plugin" msgstr "" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" msgid "Configure Issue Tracker" msgstr "" msgid "Configure the selected COM Bug Tracker plugin." msgstr "" msgid "Issue Tracker Trigger" msgstr "" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

                                                                • never: Do not update the Issue Tracker " "state automatically.
                                                                • commit: Update the Issue Tracker state after " "a successful commit.

                                                                Default: never" msgstr "" msgid "Changeset Link" msgstr "" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
                                                                The template string " "uses a normal mercurial template syntax, such as:

                                                                • {node|short} : replaced by " "the 12 digit revision id.
                                                                • {rev} : replaced by the revision number." "
                                                                • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
                                                                For example, in order to " "link to bitbucket commit pages you can set this to:
                                                                https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
                                                                You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
                                                                https://github.com/torvalds/" "linux/commit/{gitnode}
                                                                https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
                                                                " msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "" msgid "User name to authenticate with review board" msgstr "" msgid "Password to authenticate with review board" msgstr "" msgid "Server Repository ID" msgstr "" msgid "The default repository id for this repo on the review board server" msgstr "" msgid "Target Groups" msgstr "" msgid "A comma separated list of target groups" msgstr "" msgid "Target People" msgstr "" msgid "A comma separated list of target people" msgstr "" msgid "Kiln Bfiles" msgstr "" msgid "Patterns" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" msgid "Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" msgid "System Cache" msgstr "" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "" msgid "Simplelock" msgstr "" msgid "Lock Clone" msgstr "" msgid "" "Location of local clone of organizational lock repository.

                                                                This repository " "must contain a \"locked\" text file" msgstr "" msgid "Largefiles" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" msgid "Minimum Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" msgid "User Cache" msgstr "" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" msgid "Projrc" msgstr "" msgid "Require confirmation" msgstr "" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

                                                                • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
                                                                • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
                                                                • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
                                                                " msgstr "" msgid "Servers" msgstr "" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" msgid "Include" msgstr "" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" msgid "Exclude" msgstr "" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" msgid "Update on incoming" msgstr "" msgid "" "Let the user update the projrc on incoming:
                                                                • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
                                                                • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
                                                                • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                                                                  Default: never" msgstr "" msgid "GnuPG" msgstr "" msgid "Specify the path to GPG. Default: gpg" msgstr "" msgid "Key ID" msgstr "" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "" msgid "TortoiseHg Settings" msgstr "" msgid "Iniparse package not found" msgstr "" msgid "Can't change settings without iniparse package - view is readonly." msgstr "" #, python-format msgid "%s's global settings" msgstr "" msgid "No repository found" msgstr "" msgid "no repo at " msgstr "" #, python-format msgid "%s project settings (.hg/projrc)" msgstr "" #, python-format msgid "%s repository settings" msgstr "" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "" msgid "Apply changes before exit?" msgstr "" msgid "&No (discard changes)" msgstr "" msgid "Reload" msgstr "" msgid "Settings File:" msgstr "" msgid "Confirm Save" msgstr "" msgid "Save changes before editing?" msgstr "" msgid "&Save" msgstr "" msgid "Confirm Reload" msgstr "" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" msgid "Unable to create a Mercurial.ini file" msgstr "" msgid "Insufficient access rights, reverting to read-only mode." msgstr "" msgid "Context Menu" msgstr "" msgid "Top menu items:" msgstr "" msgid "Sub menu items:" msgstr "" msgid "Menu Behavior" msgstr "" msgid "Hide context menu outside repositories" msgstr "" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" msgid "Icons" msgstr "" msgid "Overlays" msgstr "" msgid "Enabled overlays" msgstr "" msgid "Local disks only" msgstr "" msgid "Enabled Overlay Handlers" msgstr "" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "" msgid "Added" msgstr "" msgid "Locked*" msgstr "" msgid "Ignored*" msgstr "" msgid "Unversioned" msgstr "" msgid "Readonly*" msgstr "" msgid "Deleted*" msgstr "" msgid "*: not used by TortoiseHg" msgstr "" msgid "Taskbar" msgstr "" msgid "Show Icon" msgstr "" msgid "Highlight Icon" msgstr "" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" msgid "Explorer Extension Settings - TortoiseHg" msgstr "" msgid "Clear" msgstr "" msgid "Clear the current shelf file" msgstr "" msgid "Delete the current shelf file" msgstr "" msgid "Left Toolbar" msgstr "" msgid "Delete selected chunks" msgstr "" msgid "Move all files right" msgstr "" msgid "Move selected file right" msgstr "" msgid "Edit file" msgstr "" msgid "Move selected chunks right" msgstr "" msgid "Refresh Toolbar" msgstr "" msgid "Refresh" msgstr "" msgid "New Shelf" msgstr "" msgid "Right Toolbar" msgstr "" msgid "Move selected chunks left" msgstr "" msgid "Move selected file left" msgstr "" msgid "Move all files left" msgstr "" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "" msgid "Delete selected chunks from working copy?" msgstr "" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "" msgid "Are you sure?" msgstr "" msgid "TortoiseHg New Shelf Name" msgstr "" msgid "Specify name of new shelf" msgstr "" msgid "Bad filename" msgstr "" #, python-format msgid "A shelf name cannot contain %s" msgstr "" msgid "File already exists" msgstr "" msgid "A shelf file of that name already exists" msgstr "" msgid "New shelf created" msgstr "" #, python-format msgid "Delete shelf file %s?" msgstr "" msgid "Shelf deleted" msgstr "" msgid "Revert all working copy changes?" msgstr "" #, python-format msgid "Clear contents of shelf file %s?" msgstr "" msgid "Shelf cleared" msgstr "" #, python-format msgid "Shelf: %s" msgstr "" #, python-format msgid "Patch: %s" msgstr "" msgid "Key:" msgstr "" msgid "Local sign" msgstr "" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "" msgid "No commit" msgstr "" msgid "Use custom commit message:" msgstr "" msgid "&Sign" msgstr "" #, python-format msgid "Sign - %s" msgstr "" msgid "Signature has been added" msgstr "" msgid "Repository command still running" msgstr "" msgid "Filter:" msgstr "" msgid "Check all files" msgstr "" msgid "Uncheck all files" msgstr "" msgid "Status File List Toolbar" msgstr "" msgid "Remove filter, show root" msgstr "" #, python-format msgid "%s - status (selection filtered)" msgstr "" #, python-format msgid "%s - status" msgstr "" msgid "Check" msgstr "" msgid "Uncheck" msgstr "" msgid "status" msgstr "" msgid "Failed to refresh" msgstr "" msgid "No appropriate files" msgstr "" msgid "No files found for this operation" msgstr "" msgid "Stat" msgstr "" msgid "M" msgstr "" msgid "Filename" msgstr "" msgid "Size (KB)" msgstr "" #, python-format msgid "Checked count: %d" msgstr "" msgid ", resolved merge" msgstr "" msgid ", unresolved merge" msgstr "" #, python-format msgid "%s is modified" msgstr "" msgid "modified" msgstr "" #, python-format msgid "%s is added" msgstr "" msgid "added" msgstr "" #, python-format msgid "%s is removed" msgstr "" msgid "removed" msgstr "" #, python-format msgid "%s is not tracked (unknown)" msgstr "" msgid "unknown" msgstr "" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "" msgid "missing" msgstr "" #, python-format msgid "%s is ignored" msgstr "" msgid "ignored" msgstr "" #, python-format msgid "%s is not modified (clean)" msgstr "" msgid "clean" msgstr "" #, python-format msgid "%s is a dirty subrepo" msgstr "" msgid "subrepo" msgstr "" msgid "Check for incoming changes from selected URL" msgstr "" msgid "Pull incoming changes from selected URL" msgstr "" msgid "Detect outgoing changes to selected URL" msgstr "" msgid "Push outgoing changes to selected URL" msgstr "" msgid "Sync Bookmarks" msgstr "" msgid "Email outgoing changesets for remote repository" msgstr "" msgid "Manage pending perforce changelists" msgstr "" msgid "Unbundle" msgstr "" msgid "Selected Options:" msgstr "" msgid "Path Edit Toolbar" msgstr "" msgid "Security" msgstr "" msgid "Manage HTTPS connection security and user authentication" msgstr "" msgid "Save" msgstr "" msgid "Save current URL under an alias" msgstr "" msgid "Paths in Repository Settings:" msgstr "" msgid "Related Paths:" msgstr "" msgid "branch: " msgstr "" msgid "bookmark: " msgstr "" #, python-format msgid "rev: %d (%s)" msgstr "" msgid "Post Pull: " msgstr "" msgid "&Edit..." msgstr "" msgid "&Remove..." msgstr "" msgid "Repository not local" msgstr "" msgid "A terminal shell cannot be opened for remote" msgstr "" msgid "Confirm path delete" msgstr "" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "" msgid "Select repository" msgstr "" msgid "No host specified" msgstr "" msgid "Please set a valid URL to continue." msgstr "" msgid "No remote repository URL or path set" msgstr "" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

                                                                  Please type and save a remote repository path on the " "Sync widget." msgstr "" msgid "Redundant authentication info" msgstr "" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" msgid "sync command already running" msgstr "" #, python-format msgid "Getting incoming changesets from %s..." msgstr "" #, python-format msgid "Found incoming changesets from %s" msgstr "" #, python-format msgid "No incoming changesets from %s" msgstr "" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "" #, python-format msgid "Pulling from %s..." msgstr "" #, python-format msgid "Pull from %s completed" msgstr "" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "" msgid "Merge caused file conflicts" msgstr "" msgid "File conflicts need to be resolved" msgstr "" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "" #, python-format msgid "%d outgoing changesets to %s" msgstr "" #, python-format msgid "No outgoing changesets to %s" msgstr "" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "" msgid "Perforce pending..." msgstr "" #, python-format msgid "%s (submitted)" msgstr "" #, python-format msgid "%s (pending)" msgstr "" msgid "Unable to parse p4pending output" msgstr "" #, python-format msgid "%d pending changelists found" msgstr "" msgid "No pending Perforce changelists" msgstr "" msgid "Aborted p4pending" msgstr "" msgid "Unable to determine pending changesets" msgstr "" msgid "Confirm Push to remote Repository" msgstr "" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" #, python-format msgid "Push to %s aborted" msgstr "" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" #, python-format msgid "Pushing to %s..." msgstr "" #, python-format msgid "Push to %s completed" msgstr "" #, python-format msgid "Push to %s aborted, ret %d" msgstr "" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" msgid "Determining outgoing changesets to email..." msgstr "" msgid "No outgoing changesets" msgstr "" #, python-format msgid "Outgoing aborted, ret %d" msgstr "" msgid "Select bundle file" msgstr "" msgid "Bundle files (*.hg)" msgstr "" msgid "Unable to remove URL" msgstr "" msgid "Post Pull Behavior" msgstr "" msgid "Select post-pull operation for this repository" msgstr "" msgid "None - simply pull changesets" msgstr "" msgid "Update - pull, then try to update" msgstr "" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "" msgid "Rebase - rebase local commits above pulled changes" msgstr "" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "" msgid "Launch settings tool..." msgstr "" msgid "Unable to save post pull operation" msgstr "" msgid "Save Path" msgstr "" msgid "Alias" msgstr "" msgid "URL" msgstr "" msgid "Remove authentication data from URL" msgstr "" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" msgid "Update subrepo paths" msgstr "" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" msgid "Unable to save an URL" msgstr "" msgid "Confirm URL replace" msgstr "" #, python-format msgid "%s already exists, replace URL?" msgstr "" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

                                                                  %s

                                                                  Replace it with the " "following URL?:

                                                                  %s" msgstr "" msgid "Security: " msgstr "" #, python-format msgid "Host: %s" msgstr "" msgid "Secure HTTPS Connection" msgstr "" msgid "Verify with Certificate Authority certificates (best)" msgstr "" msgid "Verify with stored host fingerprint (good)" msgstr "" msgid "No host validation, but still encrypted (bad)" msgstr "" msgid "### host certificate fingerprint ###" msgstr "" msgid "Query" msgstr "" msgid "TLS 1.0" msgstr "" msgid "TLS 1.1" msgstr "" msgid "TLS 1.2" msgstr "" msgid "Minimum Protocol" msgstr "" msgid "User Authentication" msgstr "" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Key" msgstr "" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Chain" msgstr "" msgid "Certificate Query Error" msgstr "" msgid "Select User Certificate Key File" msgstr "" msgid "PEM files (*.pem *.key)" msgstr "" msgid "Select User Certificate Chain File" msgstr "" msgid "PEM files (*.pem *.crt *.cer)" msgstr "" msgid "Unable to save authentication" msgstr "" #, python-format msgid "%s - sync options" msgstr "" msgid "Allow push of a new branch (--new-branch)" msgstr "" msgid "Force push or pull (override safety checks, --force)" msgstr "" msgid "Temporarily disable configured HTTP proxy" msgstr "" msgid "Emit debugging output (--debug)" msgstr "" msgid "Work on patch queue (--mq)" msgstr "" #, python-format msgid "Tag - %s" msgstr "" msgid "Tag:" msgstr "" msgid "Tagged:" msgstr "" msgid "Local tag" msgstr "" msgid "Replace existing tag (-f/--force)" msgstr "" msgid "Use English commit message" msgstr "" msgid "local" msgstr "" msgid "Move" msgstr "" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "" #, python-format msgid "Added tag %s for changeset %s" msgstr "" #, python-format msgid "Tag '%s' has been moved" msgstr "" #, python-format msgid "Tag '%s' has been added" msgstr "" #, python-format msgid "Removed tag %s" msgstr "" #, python-format msgid "Tag '%s' has been removed" msgstr "" msgid "Patch files (*.diff *.patch)" msgstr "" #, python-format msgid "Import - %s" msgstr "" msgid "Browse Directory..." msgstr "" msgid "Import from Clipboard" msgstr "" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "" msgid "Preview:" msgstr "" msgid "Shelf" msgstr "" msgid "Checking working directory status..." msgstr "" msgid "&Import" msgstr "" msgid "Working directory is not clean! View changes..." msgstr "" msgid "Select patches" msgstr "" msgid "Select Directory containing patches" msgstr "" #, python-format msgid "%s patches" msgstr "" #, python-format msgid "%s will be imported to " msgstr "" msgid "Nothing to import" msgstr "" msgid "Strip:" msgstr "" msgid "Discard local changes, no backup (-f/--force)" msgstr "" msgid "No backup (-n/--nobackup)" msgstr "" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "" msgstr[1] "" msgid "Unknown revision!" msgstr "" msgid "Detected uncommitted local changes." msgstr "" msgid "Do you want to keep them or discard them?" msgstr "" msgid "&Keep (--keep)" msgstr "" msgid "&Discard (--force)" msgstr "" msgid "Confirm Strip" msgstr "" #, python-format msgid "Strip - %s" msgstr "" msgid "&Strip" msgstr "" msgid "Topic:" msgstr "" msgid "&Rename" msgstr "" #, python-format msgid "Topic - %s" msgstr "" #, python-format msgid "A topic named \"%s\" already exists" msgstr "" #, python-format msgid "Topic '%s' has been added" msgstr "" #, python-format msgid "Topic '%s' does not exist" msgstr "" #, python-format msgid "Topic '%s' has been removed" msgstr "" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "" msgid "Parent 1:" msgstr "" msgid "Parent 2:" msgstr "" msgid "Pull subrepos from:" msgstr "" msgid "List updated files (--verbose)" msgstr "" msgid "Discard local changes, no backup (-C/--clean)" msgstr "" msgid "Always merge (when possible)" msgstr "" msgid "(same as parent)" msgstr "" msgid "Activate bookmark?" msgstr "" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

                                                                  Do " "you want to activate it?
                                                                  You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

                                                                  Select " "the bookmark that you want to activate and click OK.

                                                                  Click " "Cancel if you don't want to activate any of them.

                                                                  You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                                  " msgstr "" msgid "Deactivate current bookmark?" msgstr "" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" msgid "Discard - discard local changes, no backup" msgstr "" msgid "&Shelve" msgstr "" msgid "Shelve - move local changes to a patch" msgstr "" msgid "Merge - allow to merge with local changes" msgstr "" msgid "Confirm Update" msgstr "" #, python-format msgid "Update - %s" msgstr "" msgid "[non-existant]" msgstr "" msgid "Tool launch failure" msgstr "" #, python-format msgid "%s : %s" msgstr "" msgid "No diff tool found" msgstr "" msgid "No visual diff tools were detected" msgstr "" msgid "[working copy]" msgstr "" msgid "[original]" msgstr "" msgid "Unable to find changeset" msgstr "" msgid "You likely need to refresh this application" msgstr "" msgid "No file changes" msgstr "" msgid "There are no file changes to view" msgstr "" msgid "working changes" msgstr "" #, python-format msgid "changeset %d:%s" msgstr "" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "" msgid "Visual Diffs - " msgstr "" msgid " filtered" msgstr "" msgid "Temporary files are removed when this dialog is closed" msgstr "" msgid "Select Tool:" msgstr "" msgid "Dir diff to p1" msgstr "" msgid "Dir diff to p2" msgstr "" msgid "3-way dir diff" msgstr "" msgid "Directory diff" msgstr "" msgid "Confirm Discard" msgstr "" msgid "Discard outstanding changes to working directory?" msgstr "" msgid "Config files (*.conf *.config *.ini)" msgstr "" msgid "Open hgweb config" msgstr "" msgid "Save hgweb config" msgstr "" msgid "Path:" msgstr "" msgid "Local Path:" msgstr "" msgid "Select Repository" msgstr "" msgid "Add Path to Serve" msgstr "" msgid "Edit Path to Serve" msgstr "" msgid "Local Path" msgstr "" msgid "Webconf" msgstr "" msgid "Config File:" msgstr "" msgid "Open" msgstr "" msgid "New &Workbench" msgstr "" msgid "&New Repository..." msgstr "" msgid "Clon&e Repository..." msgstr "" msgid "&Open Repository..." msgstr "" msgid "&File" msgstr "" msgid "&View" msgstr "" msgid "&Repository" msgstr "" msgid "&Help" msgstr "" msgid "&Dock Toolbar" msgstr "" msgid "&Task Toolbar" msgstr "" msgid "&Custom Toolbar" msgstr "" msgid "S&ync Toolbar" msgstr "" msgid "&Close Repository" msgstr "" msgid "Sh&ow Repository Registry" msgstr "" msgid "Show &Patch Queue" msgstr "" msgid "Show Conso&le" msgstr "" msgid "Place Console in Doc&k Area" msgstr "" msgid "R&epository Registry Options" msgstr "" msgid "Save Open Repositories on E&xit" msgstr "" msgid "Sa&ve Current Sync Paths on Exit" msgstr "" msgid "Show Tas&k Tab" msgstr "" msgid "&Commit" msgstr "" msgid "&Patch Branch" msgstr "" msgid "Revision &Details" msgstr "" msgid "&Search" msgstr "" msgid "S&ynchronize" msgstr "" msgid "Refresh current repository" msgstr "" msgid "Refresh &Task Tab" msgstr "" msgid "Refresh only the current task tab" msgstr "" msgid "Load &All Revisions" msgstr "" msgid "Load all revisions into graph" msgstr "" msgid "Go to current revision" msgstr "" msgid "&Goto Revision..." msgstr "" msgid "Go to a specific revision" msgstr "" msgid "Filter graph with revision sets or branches" msgstr "" msgid "&Workbench Toolbars" msgstr "" msgid "&Lock File..." msgstr "" msgid "Lock or unlock files" msgstr "" msgid "Update working directory or switch revisions" msgstr "" msgid "&Shelve..." msgstr "" msgid "&Import Patches..." msgstr "" msgid "U&nbundle..." msgstr "" msgid "&Merge..." msgstr "" msgid "Merge with the other head of the current branch" msgstr "" msgid "&Resolve..." msgstr "" msgid "R&ollback/Undo..." msgstr "" msgid "&Purge..." msgstr "" msgid "&Bisect..." msgstr "" msgid "&Verify" msgstr "" msgid "Re&cover" msgstr "" msgid "&Web Server" msgstr "" msgid "E&xplorer Help" msgstr "" msgid "&Readme" msgstr "" msgid "About &Qt" msgstr "" msgid "&About TortoiseHg" msgstr "" msgid "&Incoming" msgstr "" msgid "&Pull" msgstr "" msgid "&Outgoing" msgstr "" msgid "P&ush" msgstr "" msgid "&Sync Bookmarks..." msgstr "" #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" msgid "Check for incoming changes" msgstr "" msgid "Pull incoming changes" msgstr "" msgid "Detect outgoing changes" msgstr "" msgid "Push outgoing changes" msgstr "" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" #, python-format msgid "Execute custom tool '%s'" msgstr "" msgid "Custom Toolbar &Settings" msgstr "" msgid "TortoiseHg Workbench" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "" msgid "Goto revision" msgstr "" msgid "Enter revision identifier" msgstr "" msgid "Select repository directory to open" msgstr "" msgid "README not configured" msgstr "" msgid "" "A README file is not configured for the current repository.

                                                                  To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" msgid "Issue Tracker Plugin Error" msgstr "" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "" msgid "This error will not be shown again until you restart the workbench" msgstr "" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "" msgid "Error executing \"commit finished\" trigger" msgstr "" msgid "Cannot open Plugin Options dialog" msgstr "" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "" msgid "[--insecure] [SOURCE]" msgstr "" #, python-format msgid "unsupported URL: %s" msgstr "" #, python-format msgid "%s certificate error: no certificate received" msgstr "" msgid "move after the specified patch" msgstr "" msgid "[--after PATCH] PATCH..." msgstr "" msgid "unknown patch to move specified" msgstr "" msgid "invalid patch position specified" msgstr "" msgid "cannot move applied patches" msgstr "" #, python-format msgid "patch %s not in series" msgstr "" msgid "cannot move into applied patches" msgstr "" msgid "abort: " msgstr "" msgid "hint: " msgstr "" #, python-format msgid "HTTP Error: %d (%s)" msgstr "" #, python-format msgid "URLError: %s" msgstr "" msgid "SSL: Server certificate verify failed" msgstr "" #, python-format msgid "SSL: unknown error %s:%s" msgstr "" #, python-format msgid "SSL error: %s" msgstr "" msgid "hgsubversion packaged with thg" msgstr "" msgid "hggit packaged with thg" msgstr "" msgid "inotify is not supported on this platform" msgstr "" msgid "eol is incompatible with win32text" msgstr "" msgid "win32text is incompatible with eol" msgstr "" msgid "hgsubversion is incompatible with perfarce" msgstr "" msgid "perfarce is incompatible with hgsubversion" msgstr "" msgid "Workbench custom toolbar" msgstr "" msgid "Revision details context menu" msgstr "" msgid "Pair selection context menu" msgstr "" msgid "Multiple selection context menu" msgstr "" msgid "Commit context menu" msgstr "" msgid "File context menu (on manifest and revision details)" msgstr "" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" msgid "in the future" msgstr "" msgid "now" msgstr "" #, python-format msgid "command parse error: %s" msgstr "" #, python-format msgid "no matches found: %s" msgstr "" msgid "Commit..." msgstr "" msgid "Commit changes in repository" msgstr "" msgid "Create Repository Here" msgstr "" msgid "Create a new repository" msgstr "" msgid "Clone..." msgstr "" msgid "Create clone here from source" msgstr "" msgid "File Status" msgstr "" msgid "Repository status & changes" msgstr "" msgid "Add Files..." msgstr "" msgid "Add files to version control" msgstr "" msgid "Revert Files..." msgstr "" msgid "Revert file changes" msgstr "" msgid "Forget Files..." msgstr "" msgid "Remove files from version control" msgstr "" msgid "Remove Files..." msgstr "" msgid "Rename File" msgstr "" msgid "Rename file or directory" msgstr "" msgid "View change history in repository" msgstr "" msgid "File History" msgstr "" msgid "View change history of selected files" msgstr "" msgid "Shelve Changes" msgstr "" msgid "Move changes between working dir and patch" msgstr "" msgid "Synchronize" msgstr "" msgid "Synchronize with remote repository" msgstr "" msgid "Start web server for this repository" msgstr "" msgid "Update..." msgstr "" msgid "Update working directory" msgstr "" msgid "Update Icons" msgstr "" msgid "Update icons for this repository" msgstr "" msgid "Global Settings" msgstr "" msgid "Configure user wide settings" msgstr "" msgid "Repository Settings" msgstr "" msgid "Configure repository settings" msgstr "" msgid "Explorer Extension Settings" msgstr "" msgid "Configure Explorer extension" msgstr "" msgid "About TortoiseHg" msgstr "" msgid "Show About Dialog" msgstr "" msgid "Diff to parent" msgstr "" msgid "View changes using GUI diff tool" msgstr "" msgid "Edit Ignore Filter" msgstr "" msgid "Edit repository ignore filter" msgstr "" msgid "Guess Renames" msgstr "" msgid "Detect renames and copies" msgstr "" msgid "Search History" msgstr "" msgid "Search file revisions for patterns" msgstr "" msgid "DnD Synchronize" msgstr "" msgid "Synchronize with dragged repository" msgstr "" #, python-format msgid "unrecognized response: %s" msgstr "" msgid "password: " msgstr "" #, python-format msgid "repository %s not found" msgstr "" msgid "win32ill: cannot create window for messages" msgstr "" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "" msgid "win32ill: interrupted while stopping message loop\n" msgstr "" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/nb.po0000644000000000000000000043233514440352353016237 0ustar00rootroot# Norwegian Bokmal translation for tortoisehg # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the tortoisehg package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2010-05-25 11:35+0000\n" "Last-Translator: Smart Viking \n" "Language-Team: Norwegian Bokmal \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2019-07-17 05:43+0000\n" "X-Generator: Launchpad (build 19009)\n" msgid "TortoiseHg Overlay Icon Server" msgstr "" msgid "Exit" msgstr "Avslutt" msgid "About" msgstr "" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "" msgid "You can visit our site here" msgstr "" msgid "&License" msgstr "" #, python-format msgid "version %s" msgstr "" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "" msgid "License" msgstr "" msgid "= Working Directory Parent =" msgstr "" msgid "Directory of files" msgstr "" msgid "Tar archives" msgstr "" msgid "Uncompressed tar archive" msgstr "" msgid "Bzip2 tar archives" msgstr "" msgid "Tar archive compressed using bzip2" msgstr "" msgid "Gzip tar archives" msgstr "" msgid "Tar archive compressed using gzip" msgstr "" msgid "Zip archives" msgstr "" msgid "Uncompressed zip archive" msgstr "" msgid "Zip archive compressed using deflate" msgstr "" msgid "Revision:" msgstr "Revisjon:" msgid "All files in this revision" msgstr "" msgid "Only files modified/created in this revision" msgstr "" msgid "Only files modified/created since:" msgstr "" msgid "Archive Content:" msgstr "" msgid "Recurse into subrepositories" msgstr "" msgid "Browse..." msgstr "Bla gjennom..." msgid "Destination path:" msgstr "" msgid "Archive types:" msgstr "" msgid "Hg command:" msgstr "" msgid "Select Destination Folder" msgstr "Velg målmappe" msgid "Select Destination File" msgstr "" msgid "All files (*)" msgstr "" msgid "Duplicate Name" msgstr "" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "" msgid "Confirm Overwrite" msgstr "Bekreft overskriving" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "" #, python-format msgid "Archive - %s" msgstr "" msgid "&Archive" msgstr "" msgid "Backout requires a parent revision" msgstr "" msgid "Cannot backout change on a different branch" msgstr "" #, python-format msgid "Backout - %s" msgstr "" msgid "Prepare to backout" msgstr "" msgid "Verify backout revision and ensure your working directory is clean." msgstr "" msgid "Backing out a parent revision is a single step operation" msgstr "" msgid "Backout revision" msgstr "" msgid "Not a head, backout will create a new head!" msgstr "" msgid "Current local revision" msgstr "" msgid "Working directory status" msgstr "" msgid "Checking..." msgstr "" msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Automatically resolve merge conflicts where possible" msgstr "" msgid "Uncommitted local changes are detected" msgstr "" msgid "Clean" msgstr "" msgid "Backing out, then merging..." msgstr "" msgid "All conflicting files will be marked unresolved." msgstr "" msgid "Automatically advance to next page when backout and merge are complete." msgstr "" #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" msgid "No merge conflicts, ready to commit" msgstr "" msgid "Commit backout and merge results" msgstr "" msgid "Parents" msgstr "" msgid "Working Directory" msgstr "" msgid "Working Directory (merged)" msgstr "" msgid "Commit message" msgstr "" msgid "Skip final confirmation page, close after commit." msgstr "" msgid "Backed out changeset: " msgstr "" msgid "Confirm Discard Message" msgstr "" msgid "Discard current backout message?" msgstr "" msgid "Use English backout message" msgstr "" msgid "Backing out and committing..." msgstr "" msgid "Please wait while making backout." msgstr "" msgid "Committing..." msgstr "" msgid "Please wait while committing merged files." msgstr "" msgid "Finished" msgstr "" msgid "Backout changeset" msgstr "" #, python-format msgid "Bisect - %s" msgstr "" msgid "Accept" msgstr "" msgid "Known good revision:" msgstr "" msgid "Known bad revision:" msgstr "" msgid "Discard local changes (revert --all)" msgstr "" msgid "Revision is &Good" msgstr "" msgid "Revision is &Bad" msgstr "" msgid "&Skip this Revision" msgstr "" msgid "Close" msgstr "" msgid "Error encountered." msgstr "" msgid "Culprit found." msgstr "" msgid "Revision" msgstr "" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "" #, python-format msgid "%s (hint: %s)" msgstr "" msgid "Bookmark:" msgstr "" msgid "New Name:" msgstr "Nytt navn:" msgid "Activate:" msgstr "" msgid "&Add" msgstr "" msgid "Re&name" msgstr "" msgid "&Remove" msgstr "" msgid "&Move" msgstr "" #, python-format msgid "Bookmark - %s" msgstr "" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "" #, python-format msgid "Bookmark '%s' has been added" msgstr "" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "" #, python-format msgid "Bookmark '%s' has been moved" msgstr "" #, python-format msgid "Bookmark '%s' does not exist" msgstr "" #, python-format msgid "Bookmark '%s' has been removed" msgstr "" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "" msgid "TortoiseHg Bookmark Sync" msgstr "" msgid "Outgoing Bookmarks" msgstr "" msgid "&Push Bookmark" msgstr "" msgid "&Remove Bookmark" msgstr "" msgid "Incoming Bookmarks" msgstr "" msgid "P&ull Bookmark" msgstr "" msgid "R&emove Bookmark" msgstr "" #, python-format msgid "Pushed local bookmark: %s" msgstr "" #, python-format msgid "Pulled remote bookmark: %s" msgstr "" #, python-format msgid "Removed remote bookmark: %s" msgstr "" #, python-format msgid "Removed local bookmark: %s" msgstr "" #, python-format msgid "%s - branch operation" msgstr "" msgid "Select branch of merge commit" msgstr "" msgid "Changes take effect on next commit" msgstr "" msgid "No branch changes" msgstr "" msgid "Open a new named branch" msgstr "" msgid "Close current branch" msgstr "" #, python-format msgid "Please report this bug to our bug tracker" msgstr "" msgid "Checking for updates..." msgstr "" msgid "Copy" msgstr "" msgid "Quit" msgstr "" msgid "TortoiseHg Bug Report" msgstr "" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "" msgid "Your TortoiseHg is up to date." msgstr "" msgid "Save error report to" msgstr "" msgid "Text files (*.txt)" msgstr "" msgid "Error writing file" msgstr "" msgid "TortoiseHg Error" msgstr "" msgid "" "If you still have trouble, please file a bug report." msgstr "" msgid "Visual Diff" msgstr "" msgid "View file changes in external diff tool" msgstr "" msgid "Edit Local" msgstr "" msgid "Edit current file in working copy" msgstr "" msgid "Revert to Revision" msgstr "" msgid "Revert file(s) to contents at this revision" msgstr "" msgid "Patch failed to apply" msgstr "" msgid "Manually resolve rejected chunks?" msgstr "" msgid "Edit patched file and rejects?" msgstr "" msgid "No deletable chunks" msgstr "" msgid "Completely remove file from patch?" msgstr "" msgid "Revert all file changes?" msgstr "" msgid "No chunks remain" msgstr "" msgid "file has been deleted, refresh" msgstr "" msgid "file has been modified, refresh" msgstr "" msgid "Unable to merge chunks" msgstr "" msgid "Add or remove patches must be merged in the working directory" msgstr "" msgid "Unable to remove" msgstr "" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" msgctxt "files" msgid "All" msgstr "" msgctxt "files" msgid "None" msgstr "" msgid "Toggle display of text search bar" msgstr "" msgid "Diff Toolbar" msgstr "" #, python-format msgid "Chunks selected: %d / %d" msgstr "" msgid "Please wait while the file is opened ..." msgstr "" msgid "Source:" msgstr "" msgid "Destination:" msgstr "" msgid "Options" msgstr "" msgid "Clone to revision:" msgstr "" msgid "A revision identifier, bookmark, tag or branch name" msgstr "" msgid "Do not update the new working directory" msgstr "" msgid "Use pull protocol to copy metadata" msgstr "" msgid "Clone with minimal processing" msgstr "" msgid "Include patch queue" msgstr "" msgid "Use proxy server" msgstr "" msgid "Do not verify host certificate" msgstr "" msgid "Remote command:" msgstr "" msgid "Use largefiles" msgstr "" msgid "Start revision:" msgstr "" msgid "Select source repository" msgstr "" msgid "Select destination repository" msgstr "" msgid "Select patch folder" msgstr "" #, python-format msgid "Clone - %s" msgstr "" msgid "&Clone" msgstr "" msgid "failed to start command\n" msgstr "" msgid "error while running command\n" msgstr "" #, python-format msgid "process exited unexpectedly with code %d" msgstr "" #, python-format msgid "failed to encode command: %s" msgstr "" #, python-format msgid "timed out while reading: %r..." msgstr "" msgid "timed out waiting for message" msgstr "" #, python-format msgid "unexpected response on required channel %r" msgstr "" #, python-format msgid "invalid \"hello\" message: %r" msgstr "" msgid "no \"runcommand\" capability" msgstr "" #, python-format msgid "corrupted command result: %r" msgstr "" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "" msgid "Terminated by user" msgstr "" #, python-format msgid "[command terminated by user %s]" msgstr "" #, python-format msgid "[command interrupted %s]" msgstr "" #, python-format msgid "[command returned code %d %%s]" msgstr "" #, python-format msgid "[command completed successfully %s]" msgstr "" msgid "Running..." msgstr "" msgid "Failed!" msgstr "" msgid "Clea&r Log" msgstr "" msgid "TortoiseHg Prompt" msgstr "" msgid "Show Detail" msgstr "" msgid "Hide Detail" msgstr "" msgid "Confirm Exit" msgstr "" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" msgid "&Run" msgstr "" msgid "TortoiseHg Command Dialog" msgstr "" msgid "Command Error" msgstr "" #, python-format msgid "[Code: %d]" msgstr "" msgid "Merge" msgstr "" #, python-format msgid "Merge with %s" msgstr "" msgid "Patch Name Required" msgstr "" msgid "You must enter a patch name" msgstr "" msgctxt "start progress" msgid "Commit" msgstr "" msgctxt "start progress" msgid "MQ Action" msgstr "" msgctxt "start progress" msgid "Rollback" msgstr "" msgid "Commit Dialog Toolbar" msgstr "" msgid "Branch: " msgstr "" msgid "Copy message" msgstr "" msgid "Copy one of the recent commit messages" msgstr "" msgid "Show Issues" msgstr "" msgid "Please wait..." msgstr "" #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "" msgid "Issue Tracker" msgstr "" msgid "Show Issues..." msgstr "" msgid "Stop" msgstr "" msgid "### patch name ###" msgstr "" msgid "Commit changes" msgstr "" msgid "Commit" msgstr "" msgid "Amend current revision" msgstr "" msgid "Amend" msgstr "" msgid "Create a new patch" msgstr "" msgid "QNew" msgstr "" msgid "Refresh current patch" msgstr "" msgid "QRefresh" msgstr "" msgid "Confirm Branch Change" msgstr "" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "" msgid "Restart &Branch" msgstr "" msgid "&Commit to current branch" msgstr "" msgid "Cancel" msgstr "" msgid "Confirm New Branch" msgstr "" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "" msgid "Create &Branch" msgstr "" msgid "Close Branch: " msgstr "" msgid "New Branch: " msgstr "" #, python-format msgid "Selected Options: %s" msgstr "" msgid "Parent:" msgstr "" msgid "Patch name:" msgstr "" #, python-format msgid "Close %s branch" msgstr "" #, python-format msgid "Rollback commit to revision %d" msgstr "" msgid "Confirm Undo" msgstr "" msgid "Discard current commit message?" msgstr "" msgid "Message Translation Failure" msgstr "" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" msgid "&Replace" msgstr "" msgid "Nothing Committed" msgstr "" msgid "Please enter commit message" msgstr "" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" msgid "No files checked" msgstr "" msgid "No modified files checkmarked for commit" msgstr "" msgid "Confirm Add" msgstr "" msgid "Add selected untracked files?" msgstr "" msgid "Confirm Remove" msgstr "" msgid "Remove selected deleted files?" msgstr "" msgid "Nothing changed." msgstr "" msgctxt "window title" msgid "Commit" msgstr "" #, python-format msgid "%s - commit options" msgstr "" msgid "Set username:" msgstr "" msgid "Save in Repo" msgstr "" msgid "Save Global" msgstr "" msgid "Set Date:" msgstr "" msgid "Update" msgstr "" msgid "Push After Commit:" msgstr "" msgid "Auto Includes:" msgstr "" msgid "Recurse into subrepositories (--subrepos)" msgstr "" msgid "Unable to save username" msgstr "" msgid "Iniparse must be installed." msgstr "" msgid "Unable to write configuration file" msgstr "" msgid "Unable to save after commit push" msgstr "" msgid "Unable to save auto include list" msgstr "" msgid "Unable to save recurse in subrepos." msgstr "" msgid "Invalid date format" msgstr "" msgid "No username configured" msgstr "" #, python-format msgid "%s - commit" msgstr "" msgid "TortoiseHg Commit" msgstr "" msgid "Are you sure that you want to cancel the commit operation?" msgstr "" msgid "Compress changesets up to and including" msgstr "" msgid "Onto destination" msgstr "" msgid "Compress" msgstr "" #, python-format msgid "Compress - %s" msgstr "" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the compress" msgstr "" msgid "Changes have been moved, you must now commit" msgstr "" msgctxt "action button" msgid "Commit" msgstr "" msgid "Compress is complete, old history untouched" msgstr "" msgid "must be specified repository" msgstr "" msgid "must be specified 'type' in style" msgstr "" msgid "Git Commit:" msgstr "" msgid "Summary:" msgstr "" msgid "User:" msgstr "" msgid "Date:" msgstr "" msgid "Age:" msgstr "" msgid "Branch:" msgstr "" msgid "Close:" msgstr "" msgid "Tags:" msgstr "" msgid "Graft:" msgstr "" msgid "Transplant:" msgstr "" msgid "Obsolete state:" msgstr "" msgid "Perforce:" msgstr "" msgid "Subversion:" msgstr "" msgid "Converted From:" msgstr "" msgid "Original Parent:" msgstr "" msgid "No items to display" msgstr "" msgid "Use compact view" msgstr "" msgid "Patch:" msgstr "" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "" msgid "Select a GUI location to edit:" msgstr "" msgid "Select the toolbar or menu to change" msgstr "" msgid "Tools shown on selected location" msgstr "" msgid "Delete from list" msgstr "" msgid "Add to list" msgstr "" msgid "Add separator" msgstr "" msgid "List of all tools" msgstr "" msgid "New Tool ..." msgstr "" msgid "Edit Tool ..." msgstr "" msgid "Delete Tool" msgstr "" msgid "Type" msgstr "" msgid "Name" msgstr "" msgid "Command" msgstr "" msgid "New hook" msgstr "" msgid "Edit hook" msgstr "" msgid "Delete hook" msgstr "" msgid "Replace existing hook?" msgstr "" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" msgid "OK" msgstr "" msgid "Missing information" msgstr "" msgid "All items" msgstr "" msgid "Working directory" msgstr "" msgid "All revisions" msgstr "" msgid "All contexts" msgstr "" msgid "Fixed revisions" msgstr "" msgid "Applied patches" msgstr "" msgid "Applied patches or qparent" msgstr "" msgid "" msgstr "" msgid "Configure Custom Tool" msgstr "" msgid "Tool name" msgstr "" msgid "The tool name. It cannot contain spaces." msgstr "" #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" msgid "Tool label" msgstr "" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" msgid "Tooltip" msgstr "" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" msgid "Icon" msgstr "" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" msgid "On repowidget, show for" msgstr "" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" msgid "Show Output Log" msgstr "" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" msgid "You must set a tool name." msgstr "" msgid "The tool name cannot have any spaces in it." msgstr "" msgid "You must set a command to run." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" msgid "Configure Hook" msgstr "" msgid "Hook type" msgstr "" msgid "Select when your command will be run" msgstr "" msgid "The hook name. It cannot contain spaces." msgstr "" msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" msgid "You must set a valid hook type." msgstr "" msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "" msgid "Console" msgstr "" msgid "File &History / Annotate" msgstr "" msgid "Show the history of the selected file" msgstr "" msgid "Co&mpare File Revisions" msgstr "" msgid "Compare revisions of the selected file" msgstr "" msgid "Filter Histor&y" msgstr "" msgid "Query about changesets affecting the selected files" msgstr "" msgid "Diff &Changeset to Parent" msgstr "" msgid "Diff Changeset to Loc&al" msgstr "" msgid "&Diff to Parent" msgstr "" msgid "Diff to &Local" msgstr "" msgid "View changes to current in external diff tool" msgstr "" msgid "&View at Revision" msgstr "" msgid "View file as it appeared at this revision" msgstr "" msgid "&Save at Revision..." msgstr "" msgid "Save file as it appeared at this revision" msgstr "" msgid "Save file to" msgstr "" msgid "&Edit Local" msgstr "" msgid "&Open Local" msgstr "" msgid "E&xplore Local" msgstr "" msgid "Open parent folder of current file in the system file manager" msgstr "" msgid "&Copy Patch" msgstr "" msgid "Copy &Path" msgstr "" msgid "Copy full path of file(s) to the clipboard" msgstr "" msgid "&Revert to Revision..." msgstr "" msgid "Open S&ubrepository" msgstr "" msgid "Open the selected subrepository" msgstr "" msgid "E&xplore Folder" msgstr "" msgid "Open the selected folder in the system file manager" msgstr "" msgid "Open &Terminal" msgstr "" msgid "Open a shell terminal in the selected folder" msgstr "" msgid "Custom Tools" msgstr "" msgid "Diff &Local" msgstr "" msgid "&View Missing" msgstr "" msgid "View O&ther" msgstr "" msgid "Add &Largefiles..." msgstr "" msgid "&Forget" msgstr "" msgid "&Delete Unversioned..." msgstr "" msgid "Confirm Delete Unversioned" msgstr "" msgid "Delete the following unversioned files?" msgstr "" msgid "&Delete" msgstr "" msgid "Re&move Versioned" msgstr "" msgid "&Revert..." msgstr "" msgid "Uncommited merge - please select a parent revision" msgstr "" msgid "Revert files to local or other parent?" msgstr "" msgid "&Local" msgstr "" msgid "&Other" msgstr "" msgid "Confirm Revert" msgstr "" msgid "Revert local file changes?" msgstr "" msgid "&Revert with backup" msgstr "" msgid "&Discard changes" msgstr "" msgid "Revert the following files?" msgstr "" msgid "&Revert" msgstr "" msgid "&Copy..." msgstr "" msgid "Re&name..." msgstr "" msgid "&Ignore..." msgstr "" msgid "Edit Re&jects" msgstr "" msgid "Manually resolve rejected patch chunks" msgstr "" msgid "De&tect Renames..." msgstr "" msgid "&Mark Resolved" msgstr "" msgid "&Mark Unresolved" msgstr "" msgid "Restart Mer&ge" msgstr "" msgid "Was renamed from" msgstr "" msgid "Restart Merge &with" msgstr "" msgid "Display the file anyway" msgstr "" msgid "Diff not displayed: " msgstr "" #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid "File is binary" msgstr "" msgid "File may be binary (maximum line length exceeded)" msgstr "" msgid "File or diffs not displayed: " msgstr "" msgid " (was added)" msgstr "" #, python-format msgid " (copied from %s)" msgstr "" #, python-format msgid " (renamed from %s)" msgstr "" msgid " (is a symlink)" msgstr "" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid " (was deleted)" msgstr "" msgid " (was added, now missing)" msgstr "" msgid " (is unversioned)" msgstr "" msgid "exec mode has been set" msgstr "" msgid "exec mode has been unset" msgstr "" #, python-format msgid "changeset: %s" msgstr "" msgid "Initial revision" msgstr "" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" msgid "Subrepo created and set to initial revision." msgstr "" msgid "Subrepo initialized to revision:" msgstr "" msgid "Subrepo removed from repository." msgstr "" msgid "Previously the subrepository was at the following revision:" msgstr "" msgid "Subrepo was not changed." msgstr "" msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "" msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "" msgid "Subrepo state is:" msgstr "" msgid "Revision has changed to:" msgstr "" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "" msgid "From:" msgstr "" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" msgid "Subrepository not found in the working directory." msgstr "" msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" msgid "Not a Mercurial subrepo, not previewable" msgstr "" #, python-format msgid "Error previewing subrepo: %s" msgstr "" msgid "Subrepo may be damaged or inaccessible." msgstr "" msgid "The subrepository is dirty." msgstr "" msgid "File Status:" msgstr "" msgid "(is a changed sub-repository)" msgstr "" msgid "(is an unchanged sub-repository)" msgstr "" msgid "(is a dirty sub-repository)" msgstr "" msgid "(is a new sub-repository)" msgstr "" msgid "(is a removed sub-repository)" msgstr "" msgid "(is a changed and dirty sub-repository)" msgstr "" msgid "(is a new and dirty sub-repository)" msgstr "" msgid "open..." msgstr "" #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "" msgid "File History Log Columns" msgstr "" msgid "Back" msgstr "" msgid "Forward" msgstr "" msgid "Diff Selected &Changesets" msgstr "" msgid "&Diff Selected File Revisions" msgstr "" msgid "Show Revision &Details" msgstr "" msgid "Too many rows selected for menu" msgstr "" msgid "File Differences Log Columns" msgstr "" msgid "Next diff" msgstr "" msgid "Previous diff" msgstr "" msgid "Unicode" msgstr "" msgid "Western Europe" msgstr "" msgid "Unified Chinese" msgstr "" msgid "Traditional Chinese" msgstr "" msgid "Korean" msgstr "" msgid "Japanese" msgstr "" msgid "Thai" msgstr "" msgid "Central and Eastern Europe" msgstr "" msgid "Cyrillic" msgstr "" msgid "Russian" msgstr "" msgid "Ukrainian" msgstr "" msgid "Greek" msgstr "" msgid "Turkish" msgstr "" msgid "Arabic" msgstr "" msgid "Hebrew" msgstr "" msgid "Vietnamese" msgstr "" msgid "Baltic" msgstr "" msgid "Southern Europe" msgstr "" msgid "Nordic" msgstr "" msgid "Celtic" msgstr "" msgid "South-Eastern Europe" msgstr "" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "" msgid "View change as unified diff output" msgstr "" msgid "View change in context of file" msgstr "" msgid "Annotate with revision numbers" msgstr "" msgid "Next Diff" msgstr "" msgid "Previous Diff" msgstr "" msgid "Open shelve tool" msgstr "" msgid "&Auto Detect" msgstr "" msgid "Show changes from first parent" msgstr "" msgid "Show changes from second parent" msgstr "" msgid "E&ncoding" msgstr "" msgid "&Search in Current File" msgstr "" msgid "Search in All &History" msgstr "" msgid "Go to Line" msgstr "" #, python-format msgid "Enter line number (1 - %d)" msgstr "" msgid "Show &Author" msgstr "" msgid "Show &Date" msgstr "" msgid "Show &Revision" msgstr "" msgid "Annotate Op&tions" msgstr "" msgid "Search Selected Text" msgstr "" msgid "In Current &File" msgstr "" msgid "In &Current Revision" msgstr "" msgid "In &Original Revision" msgstr "" msgid "In All &History" msgstr "" msgid "Go to" msgstr "" msgid "View File at" msgstr "" msgid "Diff File to" msgstr "" msgid "&Originating Revision" msgstr "" msgid "&Parent Revision" msgstr "" #, python-format msgid "&Parent Revision (%d)" msgstr "" msgid "&Mark Excluded Changes" msgstr "" msgid "(excluded from the next commit)" msgstr "" msgid "Interrupted graft operation found" msgstr "" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" msgid "Continue or abort interrupted graft operation?" msgstr "" msgid "To graft destination" msgstr "" msgid "Use my user name instead of graft committer user name" msgstr "" msgid "Use current date" msgstr "" msgid "Append graft info to log message" msgstr "" msgid "Graft" msgstr "" msgid "Abort" msgstr "" #, python-format msgid "Graft - %s" msgstr "" msgid "Graft changeset" msgstr "" #, python-format msgid "Graft changeset #%d of %d" msgstr "" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" msgid "You may continue or start the graft" msgstr "" msgid "Graft is complete" msgstr "" msgid "Graft failed" msgstr "" msgid "Graft aborted" msgstr "" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" msgid "You may continue the graft" msgstr "" msgid "Exiting with an unfinished graft is not recommended." msgstr "" msgid "Consider aborting the graft first." msgstr "" msgid "&Exit" msgstr "" msgid "### regular expression search pattern ###" msgstr "" msgid "Regexp:" msgstr "" msgid "Ignore case" msgstr "" msgid "Search" msgstr "" msgid "Working Copy" msgstr "" msgid "All History" msgstr "" msgid "Report only the first match per file" msgstr "" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "" msgid "Includes:" msgstr "" msgid "Excludes:" msgstr "" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" #, python-format msgid "\"%s\" removed from search history" msgstr "" #, python-format msgid "\"%s\" removed from path history" msgstr "" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "" #, python-format msgid "grep: %s\n" msgstr "" #, python-format msgid "%d matches found" msgstr "" msgid "No matches found" msgstr "" msgid "Searching" msgstr "" msgid "history" msgstr "" msgid "Interrupted" msgstr "" msgid "files" msgstr "" #, python-format msgid "Skipping %s, unable to read" msgstr "" msgid "Vi&ew File" msgstr "" msgid "&View Changeset" msgstr "" msgid "Annotate &File" msgstr "" msgid "File" msgstr "" msgid "Line" msgstr "" msgid "Rev" msgstr "" msgid "User" msgstr "" msgid "Match Text" msgstr "" msgid "TortoiseHg Search" msgstr "" #, python-format msgid "Detect Copies/Renames in %s" msgstr "" msgid "Unrevisioned Files" msgstr "" msgid "Refresh file list" msgstr "" #, python-format msgid "Min Similarity: %d%%" msgstr "" msgid "Only consider deleted files" msgstr "" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "" msgid "Find Renames" msgstr "" msgid "Find copy and/or rename sources" msgstr "" msgid "Candidate Matches" msgstr "" msgid "Accept All Matches" msgstr "" msgid "Accept Selected Matches" msgstr "" msgid "Differences from Source to Dest" msgstr "" msgid "Search already in progress" msgstr "" msgid "Cannot start a new search" msgstr "" msgid "No files to find" msgstr "" msgid "There are no files that may have been renamed" msgstr "" msgid "Multiple sources chosen" msgstr "" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" #. i18n: percent format #, python-format msgid "%d%%" msgstr "" msgid "Source" msgstr "" msgid "Dest" msgstr "" msgid "% Match" msgstr "" msgid "Sending Email" msgstr "" msgid "Email" msgstr "" msgid "To:" msgstr "" msgid "Cc:" msgstr "" msgid "In-Reply-To:" msgstr "" msgid "Message identifier to reply to, for threading" msgstr "" msgid "Flag:" msgstr "" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" msgid "Send changesets as Hg patches" msgstr "" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" msgid "Use extended (git) patch format" msgstr "" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" msgid "Plain, do not prepend Hg header" msgstr "" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" msgid "Send single binary bundle, not patches" msgstr "" msgid "send patches as part of the email body" msgstr "" msgid "body" msgstr "" msgid "send patches as attachments" msgstr "" msgid "attach" msgstr "" msgid "send patches as inline attachments" msgstr "" msgid "inline" msgstr "" msgid "add diffstat output to messages" msgstr "" msgid "diffstat" msgstr "" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" msgid "Write patch series (bundle) description" msgstr "" msgid "Subject:" msgstr "" msgid "Changesets" msgstr "" msgid "Select &All" msgstr "" msgid "Select &None" msgstr "" msgid "Edit" msgstr "" msgid "Preview" msgstr "" msgid "&Settings" msgstr "" msgid "Send &Email" msgstr "" msgid "&Close" msgstr "" #, python-format msgid "Ignore filter - %s" msgstr "" msgid "Glob" msgstr "" msgid "Regexp" msgstr "" msgid "Add" msgstr "Legg til" msgid "Edit File" msgstr "" msgid "Ignore Filter" msgstr "" msgid "Untracked Files" msgstr "" msgid "Backspace or Del to remove row(s)" msgstr "" msgid "Add ignore filter..." msgstr "" msgid "selected files" msgstr "" msgid "Ignore " msgstr "" msgid "Invalid glob expression" msgstr "" msgid "Invalid regexp expression" msgstr "" msgid "Unable to read repository status" msgstr "" msgid "New file created" msgstr "" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" msgid "Unable to write .hgignore file" msgstr "" msgid "Copy working directory files from skeleton" msgstr "" msgid "Create special files (.hgignore, ...)" msgstr "" msgid "Make repo compatible with Mercurial <1.7" msgstr "" msgid "New Repository" msgstr "" msgid "&Create" msgstr "" msgid "Unable to create a config file" msgstr "" msgid "Insufficient access rights." msgstr "" msgid "Show Log" msgstr "" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" msgid "Add as &Largefiles" msgstr "" msgid "Add as &Normal Files" msgstr "" msgid "Invalid Patterns" msgstr "" msgid "Failed to process largefiles.patterns." msgstr "" msgid "Word docs (*.doc *.docx)" msgstr "" msgid "PDF docs (*.pdf)" msgstr "" msgid "Excel files (*.xls *.xlsx)" msgstr "" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "" msgid "Refresh lock information" msgstr "" msgid "Lock a file not described in .hglocks" msgstr "" msgid "Stop current operation" msgstr "" msgid "Locked And Lockable Files:" msgstr "" msgid "Path" msgstr "" msgid "Locking User" msgstr "" msgid "Purpose" msgstr "" msgid "Simplelock extension not enabled" msgstr "" msgid "Please enable and configure simplelock" msgstr "" msgid "Open a (nonmergable) file you wish to be locked" msgstr "" msgid "File was not within current repository" msgstr "" #, python-format msgid "Locking %s" msgstr "" #, python-format msgid "Unlocking %s" msgstr "" msgid "Refreshing locks..." msgstr "" #, python-format msgid "Lock of %s successful" msgstr "" #, python-format msgid "Lock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s successful" msgstr "" msgid "Ready, double click to lock or unlock" msgstr "" msgid "Ready" msgstr "" msgid "You can only release your own locks" msgstr "" msgid "Find revisions matching fields of:" msgstr "" msgid "Revision to Match:" msgstr "" msgid "Fields to match:" msgstr "" msgid "Summary (first description line)" msgstr "" msgid "Description" msgstr "" msgid "Author" msgstr "" msgid "Date" msgstr "" msgid "Files" msgstr "" msgid "Diff contents" msgstr "" msgid "Subrepo states" msgstr "" msgid "Branch" msgstr "" msgid "Phase" msgstr "" msgid "&Match" msgstr "" #, python-format msgid "Find matches - %s" msgstr "" msgid "Revisions to Match:" msgstr "" #, python-format msgid "Match any of %d revisions" msgstr "" msgid "Unknown revision!" msgstr "" msgid "Parse Error!" msgstr "" #, python-format msgid "Merge - %s" msgstr "" msgid "Do you want to exit?" msgstr "" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" msgid "Prepare to merge" msgstr "" msgid "Verify merge targets and ensure your working directory is clean." msgstr "" msgid "Not a head revision!" msgstr "" msgid "Merge from (other revision)" msgstr "" msgid "Merge to (working directory)" msgstr "" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Or use:" msgstr "" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "" msgid "Discard all changes from the other revision" msgstr "" msgid "&Discard" msgstr "" msgid "Confirm Discard Changes" msgstr "" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" msgctxt "working dir state" msgid "Clean" msgstr "" msgid "Merging..." msgstr "" msgid "Automatically advance to next page when merge is complete." msgstr "" #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" msgid "" "No merge conflicts, ready to commit or review" msgstr "" msgid "Commit merge results" msgstr "" msgid "Commit Options" msgstr "" msgid "Commit Now" msgstr "" msgid "Commit Later" msgstr "" msgid "Merge changeset" msgstr "" msgid "Syntax Highlighting" msgstr "" msgid "Paste &Filenames" msgstr "" msgid "App&ly Format" msgstr "" msgid "C&onfigure Format" msgstr "" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "" msgid "&Commit to Queue..." msgstr "" msgid "Create &New Queue..." msgstr "" msgid "&Rename Active Queue..." msgstr "" msgid "&Delete Queue..." msgstr "" msgid "&Purge Queue..." msgstr "" msgid "Create Patch Queue" msgstr "" msgid "New patch queue name" msgstr "" msgid "Create" msgstr "" msgid "Rename Patch Queue" msgstr "" #, python-format msgid "Rename patch queue '%s' to" msgstr "" msgid "Rename" msgstr "Endre navn" msgid "Delete Patch Queue" msgstr "" msgid "Delete reference to" msgstr "" msgid "Delete" msgstr "" msgid "Purge Patch Queue" msgstr "" msgid "Remove patch directory of" msgstr "" msgid "Purge" msgstr "" msgid "Rename Patch" msgstr "" #, python-format msgid "Rename patch %s to:" msgstr "" msgid "no guards" msgstr "" msgid "Patch Queue" msgstr "" msgctxt "MQ QPush" msgid "Push" msgstr "" msgid "Apply one patch" msgstr "" msgctxt "MQ QPush" msgid "Push all" msgstr "" msgid "Apply all patches" msgstr "" msgid "Pop" msgstr "" msgid "Unapply one patch" msgstr "" msgid "Pop all" msgstr "" msgid "Unapply all patches" msgstr "" msgid "Go &to Patch" msgstr "" msgid "&Apply Only This Patch" msgstr "" msgid "Apply only the selected patch" msgstr "" msgid "&Finish Patch" msgstr "" msgid "Move applied patches into repository history" msgstr "" msgid "&Delete Patches..." msgstr "" msgid "Delete selected patches" msgstr "" msgid "Re&name Patch..." msgstr "" msgid "Set &Guards..." msgstr "" msgid "Configure guards for selected patch" msgstr "" msgid "Patch Queue Actions Toolbar" msgstr "" msgid "Configure guards" msgstr "" #, python-format msgid "Input new guards for %s:" msgstr "" msgid "Confirm patch queue switch" msgstr "" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "" #, python-format msgid "Guards: %d/%d" msgstr "" msgid "MQ options" msgstr "" msgid "Force push or pop (--force)" msgstr "" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "" msgid "Submitting p4 changelist..." msgstr "" msgid "Reverting p4 changelist..." msgstr "" msgid "Patch Branch Toolbar" msgstr "" msgid "Merge all pending dependencies" msgstr "" msgid "Backout current patch branch" msgstr "" msgid "Backport part of a changeset to a dependency" msgstr "" msgid "Start a new patch branch" msgstr "" msgid "Edit patch dependency graph" msgstr "" msgid "will be closed" msgstr "" #, python-format msgid "needs merge of %i heads\n" msgstr "" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "" #, python-format msgid "needs merge with %s\n" msgstr "" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "" msgid "&Goto (update workdir)" msgstr "" msgid "&Merge" msgstr "" msgid "No patch branch selected" msgstr "" msgid "No editor found" msgstr "" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" msgid "Graph" msgstr "" msgid "Status" msgstr "" msgid "Title" msgstr "" msgid "Message" msgstr "" msgid "New Patch Branch" msgstr "" msgid "Patch message:" msgstr "" msgid "Patch date:" msgstr "" msgid "Patch user:" msgstr "" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" msgid "Review Board" msgstr "" msgid "Password:" msgstr "" msgid "Error" msgstr "" #, python-format msgid "Review draft posted to %s\n" msgstr "" #, python-format msgid "Review published to %s\n" msgstr "" msgid "Success" msgstr "" msgid "Repository ID:" msgstr "" msgid "Post Review" msgstr "" msgid "Review ID:" msgstr "" msgid "Update the fields of this existing request" msgstr "" msgid "Update Review" msgstr "" msgid "Create diff with all outgoing changes" msgstr "" msgid "Create diff with all changes on this branch" msgstr "" msgid "Publish request immediately" msgstr "" msgid "%p%" msgstr "" msgid "Connecting to Review Board..." msgstr "" msgid "Target:" msgstr "" msgid "Do not modify working copy (-k/--keep)" msgstr "" #, python-format msgid "Prune - %s" msgstr "" msgid "&Prune" msgstr "" msgid "No unknown files found" msgstr "" msgid "No ignored files found" msgstr "" msgid "No trash files found" msgstr "" msgid "Delete empty folders" msgstr "" msgid "Preserve files beginning with .hg" msgstr "" #, python-format msgid "%s - purge" msgstr "" msgid "Checking" msgstr "" msgid "Ready to purge." msgstr "" #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "" msgstr[1] "" msgid "Confirm file deletions" msgstr "" msgid "Are you sure you want to delete these files and/or folders?" msgstr "" msgid "Deletion failures" msgstr "" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "" msgstr[1] "" msgid "Deleting trash folder..." msgstr "" #, python-format msgid "Deleted %d files" msgstr "" #, python-format msgid "Deleted %d files and %d folders" msgstr "" msgid "Delete Patches" msgstr "" msgid "Remove patches from queue?" msgstr "" msgid "Keep patch files" msgstr "" #, python-format msgid "Patch fold - %s" msgstr "" msgid "New patch message:" msgstr "" msgid "Patches to fold" msgstr "" msgid "&Undo" msgstr "" msgid "&Redo" msgstr "" msgid "Cu&t" msgstr "" msgid "&Copy" msgstr "" msgid "&Paste" msgstr "" msgid "&Editor Options" msgstr "" msgid "&Wrap" msgstr "" msgctxt "wrap mode" msgid "&None" msgstr "" msgid "&Word" msgstr "" msgid "&Character" msgstr "" msgid "White&space" msgstr "" msgid "&Visible" msgstr "" msgid "&Invisible" msgstr "" msgid "&AfterIndent" msgstr "" msgid "&TAB Inserts" msgstr "" msgid "&Auto" msgstr "" msgid "&TAB" msgstr "" msgid "&Spaces" msgstr "" msgid "EOL &Visibility" msgstr "" msgid "EOL &Mode" msgstr "" msgid "&Windows" msgstr "" msgid "&Unix" msgstr "" msgid "&Mac" msgstr "" msgid "&Auto-Complete" msgstr "" msgid "### regular expression ###" msgstr "" msgid "Regular expression search pattern" msgstr "" msgid "Wrap search" msgstr "" msgid "Prev" msgstr "" msgid "Next" msgstr "" msgid "Unable to read file" msgstr "" msgid "Could not open the specified file for reading." msgstr "" msgid "This appears to be a binary file." msgstr "" msgid "An error occurred while reading the file." msgstr "" msgid "Text Translation Failure" msgstr "" msgid "Could not translate the file content from native encoding." msgstr "" msgid "Several characters would be lost." msgstr "" msgid "Unable to write file" msgstr "" msgid "Could not translate the file content to native encoding." msgstr "" msgid "Could not open the specified file for writing." msgstr "" msgid "An error occurred while writing the file." msgstr "" msgid "Try refreshing your repository." msgstr "" #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
                                                                  Please edit your config" msgstr "" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
                                                                  Please fix your config" msgstr "" #, python-format msgid "Operation aborted:

                                                                  %(arg0)s." msgstr "" msgid "Repository is locked" msgstr "" msgid "hint:" msgstr "" msgid "Repository Error" msgstr "" msgid "No visual editor configured" msgstr "" msgid "Please configure a visual editor." msgstr "" msgid "Editor launch failure" msgstr "" msgid "Failed to open path in terminal" msgstr "" #, python-format msgid "\"%s\" is not a valid directory" msgstr "" #, python-format msgid "Invalid configuration: %s" msgstr "" msgid "Unable to start the following command:" msgstr "" msgid "No shell configured" msgstr "" msgid "A terminal shell must be configured" msgstr "" msgid "Please enter a username" msgstr "" msgid "You must identify yourself to Mercurial" msgstr "" msgid "Unable to translate input to local encoding." msgstr "" msgid "Checkmark files to add" msgstr "" msgid "Checkmark files to forget" msgstr "" msgid "Forget" msgstr "" msgid "Checkmark files to revert" msgstr "" msgid "Revert" msgstr "" msgid "Checkmark files to remove" msgstr "" msgid "Remove" msgstr "Fjern" #, python-format msgid "%s - hg %s" msgstr "" msgid "Do not save backup files (*.orig)" msgstr "" msgid "Force removal of modified files (--force)" msgstr "" msgid "Add &Largefiles" msgstr "" msgid "No files selected" msgstr "" msgid "No operation to perform" msgstr "" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" msgid "Remove &Unmodified Files" msgstr "" msgid "Remove &All Selected Files" msgstr "" msgid "Rebase changeset and descendants" msgstr "" msgid "To rebase destination" msgstr "" msgid "Swap source and destination" msgstr "" msgid "Keep original changesets (--keep)" msgstr "" msgid "Keep original branch names (--keepbranches)" msgstr "" msgid "Collapse the rebased changesets (--collapse)" msgstr "" msgid "Rebase entire source branch (-b/--base)" msgstr "" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "" msgid "Rebase" msgstr "" #, python-format msgid "Rebase - %s" msgstr "" msgid "" "Before rebase, you must
                                                                  commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the rebase" msgstr "" msgid "Rebase is complete" msgstr "" msgid "Rebase failed" msgstr "" msgid "Rebase aborted" msgstr "" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" msgid "Exiting with an unfinished rebase is not recommended." msgstr "" msgid "Consider aborting the rebase first." msgstr "" #, python-format msgid "Merge rejected patch chunks into %s" msgstr "" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "" msgid "Mark this chunk as unresolved" msgstr "" msgid "Reload File" msgstr "" msgid "Are you sure you want to reload this file?" msgstr "" msgid "All unsaved changes will be lost." msgstr "" msgid "Warning" msgstr "" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" msgid "Copy source -> destination" msgstr "" msgid "Copy Error" msgstr "" msgid "Rename Error" msgstr "" msgid "Select Source File" msgstr "" msgid "Select Source Folder" msgstr "" msgid "Source does not exist." msgstr "" msgid "The source must be within the repository tree." msgstr "" msgid "The destination must be within the repository tree." msgstr "" msgid "Destination file already exists." msgstr "" msgid "Are you sure you want to overwrite it ?" msgstr "" #, python-format msgid "Copy - %s" msgstr "" #, python-format msgid "Rename - %s" msgstr "" msgid "Show all" msgstr "" msgid "### revision set query ###" msgstr "" msgid "Clear current query and query text" msgstr "" msgid "Trigger revision set query" msgstr "" msgid "Open advanced query editor" msgstr "" msgid "Delete selected query from history" msgstr "" msgid "filter" msgstr "" msgid "Toggle filtering of non-matched changesets" msgstr "" msgid "Show/Hide hidden changesets" msgstr "" msgid "Toggle graft relations visibility" msgstr "" msgid "Keyword Search" msgstr "" msgid "Revision Set" msgstr "" msgid "(unsaved)" msgstr "" msgid "Display graph the named branch only" msgstr "" msgid "Display only active branches" msgstr "" msgid "Display closed branches" msgstr "" msgid "Include all ancestors" msgstr "" msgctxt "column header" msgid "Graph" msgstr "" msgctxt "column header" msgid "Rev" msgstr "" msgctxt "column header" msgid "Branch" msgstr "" msgctxt "column header" msgid "Description" msgstr "" msgctxt "column header" msgid "Author" msgstr "" msgctxt "column header" msgid "Tags" msgstr "" msgctxt "column header" msgid "Latest tags" msgstr "" msgctxt "column header" msgid "Node" msgstr "" msgctxt "column header" msgid "Git Commit" msgstr "" msgctxt "column header" msgid "Age" msgstr "" msgctxt "column header" msgid "Local Time" msgstr "" msgctxt "column header" msgid "UTC Time" msgstr "" msgctxt "column header" msgid "Changes" msgstr "" msgctxt "column header" msgid "Converted From" msgstr "" msgctxt "column header" msgid "Phase" msgstr "" msgctxt "column header" msgid "Filename" msgstr "" msgid "Searching..." msgstr "" #, python-format msgid "filling (%d)" msgstr "" msgid "Mercurial User" msgstr "" msgid "Repository Registry" msgstr "" msgid "Show &Paths" msgstr "" msgid "Show S&hort Paths" msgstr "" msgid "&Scan Repositories at Startup" msgstr "" msgid "Scan &Remote Repositories" msgstr "" msgid "&Refresh Repository List" msgstr "" msgid "Refresh the Repository Registry list" msgstr "" msgid "&Open" msgstr "" msgid "Open the repository in a new tab" msgstr "" msgid "&Open All" msgstr "" msgid "Open all repositories in new tabs" msgstr "" msgid "New &Group" msgstr "" msgid "Create a new group" msgstr "" msgid "Rename the entry" msgstr "" msgid "Settin&gs" msgstr "" msgid "View the repository's settings" msgstr "" msgid "Re&move from Registry" msgstr "" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" msgid "Clon&e..." msgstr "" msgid "Clone Repository" msgstr "" msgid "E&xplore" msgstr "" msgid "Open the repository in a file browser" msgstr "" msgid "&Terminal" msgstr "" msgid "Open a shell terminal in the repository root" msgstr "" msgid "&Add Repository..." msgstr "" msgid "Add a repository to this group" msgstr "" msgid "A&dd Subrepository..." msgstr "" msgid "Convert an existing repository into a subrepository" msgstr "" msgid "Remo&ve Subrepository..." msgstr "" msgid "Remove this subrepository from the current revision" msgstr "" msgid "Copy the root path of the repository to the clipboard" msgstr "" msgid "Sort by &Name" msgstr "" msgid "Sort the group by short name" msgstr "" msgid "Sort by &Path" msgstr "" msgid "Sort the group by full path" msgstr "" msgid "&Sort by .hgsub" msgstr "" msgid "Order the subrepos as in .hgsub" msgstr "" msgid "Select repository directory to add" msgstr "" msgid "Select an existing repository to add as a subrepo" msgstr "" msgid "Cannot add subrepository" msgstr "" #, python-format msgid "%s is not a valid repository" msgstr "" #, python-format msgid "\"%s\" is not a folder" msgstr "" msgid "A repository cannot be added as a subrepo of itself" msgstr "" #, python-format msgid "" "The selected folder:

                                                                  %s

                                                                  is not inside the target repository." "

                                                                  This may be allowed but is greatly discouraged.
                                                                  If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" msgid "Cannot open repository" msgstr "" #, python-format msgid "The selected repository:

                                                                  %s

                                                                  cannot be open!" msgstr "" msgid "Subrepository already exists" msgstr "" #, python-format msgid "" "The selected repository:

                                                                  %s

                                                                  is already a subrepository of:" "

                                                                  %s

                                                                  as: \"%s\"" msgstr "" msgid "Failed to add subrepository" msgstr "" #, python-format msgid "Cannot open the .hgsub file in:

                                                                  %s" msgstr "" msgid "Failed to add repository" msgstr "" #, python-format msgid "The .hgsub file already contains the line:

                                                                  %s" msgstr "" msgid "Subrepo added to .hgsub file" msgstr "" #, python-format msgid "" "The selected subrepo:

                                                                  %s

                                                                  has been added to the .hgsub " "file of the repository:

                                                                  %s

                                                                  Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" #, python-format msgid "Cannot update the .hgsub file in:

                                                                  %s" msgstr "" msgid "Could not open .hgsub file" msgstr "" msgid "Cannot read the .hgsub file.

                                                                  Subrepository removal failed." msgstr "" msgid "Subrepository not found" msgstr "" msgid "" "The selected subrepository was not found on the .hgsub file.

                                                                  Perhaps it " "has already been removed?" msgstr "" msgid "&Yes" msgstr "" msgid "&No" msgstr "" msgid "Remove the selected repository?" msgstr "" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" msgid "Subrepository removed from .hgsub" msgstr "" msgid "" "The selected subrepository has been removed from the .hgsub file.

                                                                  Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" msgid "Could not update .hgsub file" msgstr "" msgid "Cannot update the .hgsub file.

                                                                  Subrepository removal failed." msgstr "" #, python-format msgid "Unsupported repository type (%s)" msgstr "" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "" msgid "New Group" msgstr "" msgid "Confirm Delete" msgstr "" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "" msgid "Could not get subrepository list" msgstr "" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

                                                                  %s" msgstr "" msgid "Could not open some subrepositories" msgstr "" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

                                                                  %s

                                                                  The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

                                                                  %s" msgstr "" msgid "Updating repository registry" msgstr "" #, python-format msgid "Loading repository %s" msgstr "" msgid "Repository Registry updated" msgstr "" msgid "Close tab" msgstr "" msgid "Close other tabs" msgstr "" msgid "Undo close tab" msgstr "" msgid "Reopen last closed tab" msgstr "" msgid "Undo close other tabs" msgstr "" msgid "Reopen last closed tab group" msgstr "" msgid "Failed to open repository" msgstr "" msgid "&Sort" msgstr "" #, python-format msgid "Local Repository %s" msgstr "" #, python-format msgid "" "An exception happened while loading the subrepos of:

                                                                  \"%s\"

                                                                  " msgstr "" #, python-format msgid "The exception error message was:

                                                                  %s

                                                                  " msgstr "" msgid "Click OK to continue or Abort to exit." msgstr "" msgid "Error loading subrepos" msgstr "" msgid "Unable to update repository name" msgstr "" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "" msgid "default" msgstr "" msgid "C&hoose Log Columns..." msgstr "" msgid "&Resize Columns" msgstr "" #, python-format msgid "Goto ancestor of %s and %s" msgstr "" #, python-format msgid "Can't find revision '%s'" msgstr "" msgid "Drag to change order" msgstr "" msgid "Workbench Log Columns" msgstr "" msgctxt "tab tooltip" msgid "Revision details" msgstr "" msgctxt "tab tooltip" msgid "Commit" msgstr "" msgctxt "tab tooltip" msgid "Search" msgstr "" msgctxt "tab tooltip" msgid "Console log" msgstr "" msgctxt "tab tooltip" msgid "Synchronize" msgstr "" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "" #, python-format msgid "%s " msgstr "" #, python-format msgid "Found %d incoming changesets" msgstr "" msgid "Pull" msgstr "" msgid "Pull incoming changesets into your repository" msgstr "" msgid "Reject incoming changesets" msgstr "" #, python-format msgid "Push current branch (%s)" msgstr "" #, python-format msgid "Push up to current revision (#%d)" msgstr "" #, python-format msgid "Push up to revision #%d" msgstr "" msgid "Push all" msgstr "" msgid "no outgoing changesets" msgstr "" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets" msgstr "" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "" msgid "Nothing to push" msgstr "" msgid "No revision found" msgstr "" #, python-format msgid "%s - verify repository" msgstr "" #, python-format msgid "%s - recover repository" msgstr "" msgid "No transaction available" msgstr "" msgid "There is no rollback transaction available" msgstr "" msgid "Undo last commit?" msgstr "" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "" msgid "Undo last transaction?" msgstr "" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "" msgid "Unable to determine working copy revision\n" msgstr "" msgid "Remove current working revision?" msgstr "" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" msgid "Tab cannot exit" msgstr "" msgid "Pus&h" msgstr "" msgid "Push to &Here" msgstr "" msgid "Push Selected &Branch" msgstr "" msgid "Push &All" msgstr "" msgid "&Update..." msgstr "" msgid "Bro&wse at Revision" msgstr "" msgid "&Merge with Local..." msgstr "" msgid "&Tag..." msgstr "" msgid "Boo&kmark..." msgstr "" msgid "Top&ic..." msgstr "" msgid "Sig&n..." msgstr "" msgid "&Backout..." msgstr "" msgid "Revert &All Files..." msgstr "" msgid "Copy &Hash" msgstr "" msgid "E&xport" msgstr "" msgid "E&xport Patch..." msgstr "" msgid "&Email Patch..." msgstr "" msgid "&Archive..." msgstr "" msgid "&Bundle Rev and Descendants..." msgstr "" msgid "Change &Phase to" msgstr "" msgid "&Graft to Local..." msgstr "" msgid "Modi&fy History" msgstr "" msgid "&Unapply Patch" msgstr "" msgid "Import to &MQ" msgstr "" msgid "MQ &Options" msgstr "" msgid "&Rebase..." msgstr "" msgid "&Prune..." msgstr "" msgid "&Strip..." msgstr "" msgid "Post to Re&view Board..." msgstr "" msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "" msgid "Write diff file" msgstr "" msgid "Unable to write diff file" msgstr "" msgid "Unable to compress history" msgstr "" msgid "Selected changeset pair not related" msgstr "" msgid "Visual Diff..." msgstr "" msgid "Export Diff..." msgstr "" msgid "Export Selected..." msgstr "" msgid "Email Selected..." msgstr "" msgid "Copy Selected as Patch" msgstr "" msgid "Archive DAG Range..." msgstr "" msgid "Export DAG Range..." msgstr "" msgid "Email DAG Range..." msgstr "" msgid "Bundle DAG Range..." msgstr "" msgid "Bisect - Good, Bad..." msgstr "" msgid "Bisect - Bad, Good..." msgstr "" msgid "Compress History..." msgstr "" msgid "Rebase..." msgstr "" msgid "Goto common ancestor" msgstr "" msgid "Graft Selected to local..." msgstr "" msgid "&Prune Selected..." msgstr "" msgid "Post Selected to Review Board..." msgstr "" msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "" msgid "Apply onto original parent" msgstr "" msgid "Apply only this patch" msgstr "" msgid "Fold patches..." msgstr "" msgid "Delete patches..." msgstr "" msgid "Rename patch..." msgstr "" msgid "Pull to here..." msgstr "" msgid "Visual diff..." msgstr "" msgid "Export patch" msgstr "" msgid "Patch Files (*.patch)" msgstr "" msgid "Cannot export revision" msgstr "" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" msgid "There is already an existing folder with that same name." msgstr "" msgid "Replace" msgstr "" msgid "Append" msgstr "" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" msgid "What do you want to do?\n" msgstr "" msgid "Replace the existing patch files.\n" msgstr "" msgid "Append the changes to the existing patch files.\n" msgstr "" msgid "Abort the export operation.\n" msgstr "" msgid "Patch files already exist" msgstr "" msgid "Patch exported" msgstr "" #, python-format msgid "" "Revision #%d (%s) was exported to:

                                                                  %s%s%s" msgstr "" msgid "Patches exported" msgstr "" #, python-format msgid "%d patches were exported to:

                                                                  %s" msgstr "" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

                                                                  Are you sure you want to use revert?

                                                                  (use " "update to checkout another revision)" msgstr "" msgid "Filter b&y" msgstr "" msgid "&Ancestors and Descendants" msgstr "" msgid "A&uthor" msgstr "" msgid "&Branch" msgstr "" msgid "&More Options..." msgstr "" msgid "Unable to merge" msgstr "" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "" msgid "Unable to backout" msgstr "" msgid "Write bundle" msgstr "" msgid "Backwards phase change requested" msgstr "" msgid "Do you really want to make this revision secret?" msgstr "" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" msgid "&Make secret" msgstr "" msgid "&Cancel" msgstr "" msgid "Do you really want to force a backwards phase transition?" msgstr "" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" msgid "&Force" msgstr "" msgid "Cannot import selected revision" msgstr "" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" msgid "Invalid command" msgstr "" msgid "The selected command is empty" msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" msgid "Failed to execute custom TortoiseHg command" msgstr "" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "" msgid "Failed to execute custom command" msgstr "" #, python-format msgid "The command \"%s\" could not be executed." msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" msgid "&Edit Toolbar" msgstr "" msgid "&Refresh" msgstr "" msgid "&Filter Toolbar" msgstr "" #, python-format msgid "TortoiseHg: %s" msgstr "" msgid "S&tatus Bar" msgstr "" #, python-format msgid "Resolve Conflicts - %s" msgstr "" msgid "Local revision information" msgstr "" msgid "Other revision information" msgstr "" msgid "Unresolved conflicts" msgstr "" msgid "Mercurial Re&solve" msgstr "" msgid "Attempt automatic (trivial) merge" msgstr "" msgid "Tool &Resolve" msgstr "" msgid "Merge using selected merge tool" msgstr "" msgid "&Take Local" msgstr "" msgid "Accept the local file version (yours)" msgstr "" msgid "Take &Other" msgstr "" msgid "Accept the other file version (theirs)" msgstr "" msgid "&Mark as Resolved" msgstr "" msgid "Mark this file as resolved" msgstr "" msgid "Diff &Local to Ancestor" msgstr "" msgid "&Diff Other to Ancestor" msgstr "" msgid "Resolved conflicts" msgstr "" msgid "&Edit File" msgstr "" msgid "Edit resolved file" msgstr "" msgid "3-&Way Diff" msgstr "" msgid "Visual three-way diff" msgstr "" msgid "Visual diff between resolved file and first parent" msgstr "" msgid "&Diff to Other" msgstr "" msgid "Visual diff between resolved file and second parent" msgstr "" msgid "Mark as &Unresolved" msgstr "" msgid "Mark this file as unresolved" msgstr "" msgid "Detected merge/diff tools:" msgstr "" msgid "Command output" msgstr "" msgid "Unable to show subrepository files" msgstr "" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" msgid "There are merge conflicts to be resolved" msgstr "" msgid "All conflicts are resolved." msgstr "" msgid "There are no conflicting file merges." msgstr "" msgid "Exit without finishing resolve?" msgstr "" msgid "Unresolved conflicts remain. Are you sure?" msgstr "" msgid "E&xit" msgstr "" msgid "Ext" msgstr "" msgid "Repository" msgstr "" msgid "" msgstr "" msgid "File List Toolbar" msgstr "" msgid "Ma&nifest Mode" msgstr "" msgid "Show all version-controlled files in tree view" msgstr "" msgid "&Flat List" msgstr "" msgid "### filter text ###" msgstr "" msgid "Changed by &This Commit" msgstr "" msgid "Show files changed by this commit" msgstr "" msgid "Compare to &1st Parent" msgstr "" msgid "Compare to &2nd Parent" msgstr "" msgid "Toggle parent to be used as the base revision" msgstr "" msgid "List Optio&ns" msgstr "" #, python-format msgid "%s - Revision Details (%s)" msgstr "" #, python-format msgid "Revert - %s" msgstr "" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "" msgid "Revert all files to this revision" msgstr "" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "" msgid "null revision (i.e. remove file(s))" msgstr "" msgid "Changeset:" msgstr "" msgid "Child:" msgstr "" msgid "Predecessors:" msgstr "" msgid "Successors:" msgstr "" msgid "Head is closed!" msgstr "" msgid "Changesets where username contains string." msgstr "" msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" msgid "Like \"keyword(string)\" but accepts a regex." msgstr "" msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" msgid "The named bookmark or all bookmarks." msgstr "" msgid "The named tag or all tags." msgstr "" msgid "Changeset is tagged." msgstr "" msgid "Changeset is a named branch head." msgstr "" msgid "Changeset is a merge changeset." msgstr "" msgid "Changeset is closed." msgstr "" msgid "" "Changesets within the interval, see help dates" msgstr "" msgid "Greatest common ancestor of the two changesets." msgstr "" msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" msgid "Changesets which modify files matched by pattern." msgstr "" msgid "Changesets which add files matched by pattern." msgstr "" msgid "Changesets which remove files matched by pattern." msgstr "" msgid "Changesets containing files matched by pattern." msgstr "" msgid "All changesets belonging to the branches of changesets in set." msgstr "" msgid "Members of a set with no children in set." msgstr "" msgid "Changesets which are descendants of changesets in set." msgstr "" msgid "Changesets that are ancestors of a changeset in set." msgstr "" msgid "Child changesets of changesets in set." msgstr "" msgid "The set of all parents for all changesets in set." msgstr "" msgid "First parent for all changesets in set, or the working directory." msgstr "" msgid "Second parent for all changesets in set, or the working directory." msgstr "" msgid "Changesets with no parent changeset in set." msgstr "" msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" msgid "Changeset with lowest revision number in set." msgstr "" msgid "Changeset with highest revision number in set." msgstr "" msgid "First n members of a set." msgstr "" msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "" msgid "All changesets, the same as 0:tip." msgstr "" msgid "Revision Set Query" msgstr "" msgid "all revisions converted from subversion" msgstr "" msgid "changeset which represents converted svn revision" msgstr "" msgid "Common sets" msgstr "" msgid "File pattern sets" msgstr "" msgid "Set Ancestry" msgstr "" msgid "Set Logic" msgstr "" msgid "" "help " "revsets" msgstr "" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" #, python-format msgid "thg: unknown command '%s'\n" msgstr "" #, python-format msgid "thg %s: %s\n" msgstr "" #, python-format msgid "thg: %s\n" msgstr "" #, python-format msgid "abort: %s!\n" msgstr "" #, python-format msgid "abort: %s\n" msgstr "" #, python-format msgid "(%s)\n" msgstr "" msgid "option --config may not be abbreviated!" msgstr "" msgid "invalid arguments" msgstr "" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" msgid "repository root directory or symbolic path name" msgstr "" msgid "enable additional output" msgstr "" msgid "suppress output" msgstr "" msgid "display help and exit" msgstr "" msgid "set/override config option (use 'section.name=value')" msgstr "" msgid "enable debugging output" msgstr "" msgid "start debugger" msgstr "" msgid "print command execution profile" msgstr "" msgid "do not fork GUI process" msgstr "" msgid "always fork GUI process" msgstr "" msgid "read file list from file" msgstr "" msgid "read file list from file encoding utf-8" msgstr "" msgid "thg about" msgstr "" msgid "thg add [FILE]..." msgstr "" msgid "revision to annotate" msgstr "" msgid "open to line" msgstr "" msgid "initial search pattern" msgstr "" msgid "thg annotate" msgstr "" #, python-format msgid "invalid line number: %s" msgstr "" msgid "revision to archive" msgstr "" msgid "thg archive" msgstr "" msgid "merge with old dirstate parent after backout" msgstr "" msgid "parent to choose when backing out merge" msgstr "" msgid "revision to backout" msgstr "" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "" msgid "thg bisect" msgstr "" msgid "revision" msgstr "" msgid "thg bookmarks [-r REV] [NAME]" msgstr "" msgid "only one new bookmark name allowed" msgstr "" msgid "the clone will include an empty working copy (only a repository)" msgstr "" msgid "revision, tag or branch to check out" msgstr "" msgid "include the specified changeset" msgstr "" msgid "clone only the specified branch" msgstr "" msgid "use pull protocol to copy metadata" msgstr "" msgid "use uncompressed transfer (fast over LAN)" msgstr "" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "" msgid "record user as committer" msgstr "" msgid "record datecode as commit date" msgstr "" msgid "thg commit [OPTIONS] [FILE]..." msgstr "" msgid "thg debugblockmatcher" msgstr "" msgid "thg debugbugreport [TEXT]" msgstr "" msgid "thg debugconsole" msgstr "" msgid "thg debuglighthg" msgstr "" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "" msgid "no command specified" msgstr "" msgid "thg drag_copy SOURCE... DEST" msgstr "" msgid "thg drag_move SOURCE... DEST" msgstr "" msgid "a revision to send" msgstr "" msgid "thg email [REVS]" msgstr "" msgid "use only one form to specify the revision" msgstr "" msgid "select the specified revision" msgstr "" msgid "side-by-side comparison of revisions" msgstr "" msgid "thg filelog [OPTION]... FILE" msgstr "" msgid "requires a single filename" msgstr "" msgid "thg forget [FILE]..." msgstr "" msgid "revisions to graft" msgstr "" msgid "thg graft [-r] REV..." msgstr "" msgid "You must provide revisions to graft" msgstr "" msgid "ignore case during search" msgstr "" msgid "thg grep" msgstr "" msgid "thg guess" msgstr "" msgid "thg help [COMMAND]" msgstr "" msgid "global options:" msgstr "" msgid "use \"thg help\" for the full list of commands" msgstr "" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "" msgid "" "list of commands:\n" "\n" msgstr "" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" msgid "(no help text available)" msgstr "" msgid "options:\n" msgstr "" msgid "no commands defined\n" msgstr "" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "" msgid "" "basic commands:\n" "\n" msgstr "" #, python-format msgid " (default: %s)" msgstr "" msgid "thg hgignore [FILE]" msgstr "" msgid "import to the patch queue (MQ)" msgstr "" msgid "thg import [OPTION] [SOURCE]..." msgstr "" msgid "thg init [DEST]" msgstr "" msgid "thg lock" msgstr "" msgid "search for a given text or revset" msgstr "" msgid "(DEPRECATED)" msgstr "" msgid "open a new workbench window" msgstr "" msgid "thg log [OPTIONS] [FILE]" msgstr "" msgid "cannot specify both -k/--query and filenames" msgstr "" msgid "revision to display" msgstr "" msgid "thg manifest [-r REV] [FILE]" msgstr "" msgid "revision to merge" msgstr "" msgid "thg merge [[-r] REV]" msgstr "" msgid "Merge revision not specified or not found" msgstr "" msgid "a revision to post" msgstr "" msgid "thg postreview [-r] REV..." msgstr "" msgid "reviewboard extension not enabled" msgstr "" #, python-format msgid "see %(url)s" msgstr "" msgid "no revisions specified" msgstr "" msgid "revisions to prune" msgstr "" msgid "thg prune [-r] REV..." msgstr "" msgid "thg purge" msgstr "" msgid "keep original changesets" msgstr "" msgid "keep original branch names" msgstr "" msgid "rebase from the specified changeset" msgstr "" msgid "rebase onto the specified changeset" msgstr "" msgid "thg rebase -s REV -d REV [--keep]" msgstr "" msgid "Rebase already in progress" msgstr "" msgid "Resuming rebase already in progress" msgstr "" msgid "You must provide source and dest arguments" msgstr "" msgid "thg rejects [FILE]" msgstr "" msgid "You must provide the path to a file" msgstr "" msgid "thg remove [FILE]..." msgstr "" msgid "thg rename [SOURCE] [DEST]" msgstr "" msgid "field to give initial focus" msgstr "" msgid "thg repoconfig" msgstr "" msgid "thg resolve" msgstr "" msgid "the revision to show" msgstr "" msgid "thg revdetails [-r REV]" msgstr "" msgid "thg revert [FILE]..." msgstr "" msgid "revision to update" msgstr "" msgid "thg rupdate [[-r] REV]" msgstr "" msgid "name of the hgweb config file (serve more than one repository)" msgstr "" msgid "name of the hgweb config file (DEPRECATED)" msgstr "" msgid "thg serve [--web-conf FILE]" msgstr "" msgid "thg shellconfig" msgstr "" msgid "thg shelve" msgstr "" msgid "sign even if the sigfile is modified" msgstr "" msgid "make the signature local" msgstr "" msgid "the key id to sign with" msgstr "" msgid "do not commit the sigfile after signing" msgstr "" msgid "use as commit message" msgstr "" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "" msgid "Please enable the Gpg extension first." msgstr "" msgid "show files without changes" msgstr "" msgid "show ignored files" msgstr "" msgid "thg status [OPTIONS] [FILE]" msgstr "" msgid "discard uncommitted changes (no backup)" msgstr "" msgid "do not back up stripped revisions" msgstr "" msgid "do not modify working copy during strip" msgstr "" msgid "revision to strip" msgstr "" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "" msgid "open the bookmark sync window" msgstr "" msgid "thg sync [OPTION]... [PEER]" msgstr "" msgid "replace existing tag" msgstr "" msgid "make the tag local" msgstr "" msgid "revision to tag" msgstr "" msgid "remove a tag" msgstr "" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "" msgid "wait until the second ticks over" msgstr "" msgid "notify the shell for paths given" msgstr "" msgid "remove the status cache" msgstr "" msgid "show the contents of the status cache (no update)" msgstr "" msgid "update all repos in current dir" msgstr "" msgid "thg thgstatus [OPTION]" msgstr "" msgid "thg topics [-r REV] [NAME]" msgstr "" msgid "Please enable the Topic extension first." msgstr "" msgid "only one new topic name allowed" msgstr "" msgid "thg update [-C] [[-r] REV]" msgstr "" msgid "thg userconfig" msgstr "" msgid "changeset to view in diff tool" msgstr "" msgid "revisions to view in diff tool" msgstr "" msgid "bundle file to preview" msgstr "" msgid "launch visual diff tool" msgstr "" msgid "print license" msgstr "" msgid "thg version [OPTION]" msgstr "" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "" msgid "Location:" msgstr "" msgid "Update to:" msgstr "" msgid "Options:" msgstr "" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "" msgid "Perform a push before updating (-p/--push)" msgstr "" msgid "Allow pushing new branches (--new-branch)" msgstr "" msgid "Force push to remote location (-f/--force)" msgstr "" msgid "remove working directory" msgstr "" msgid "unknown revision!" msgstr "" #, python-format msgid "Remote Update - %s" msgstr "" msgid "&Update" msgstr "" msgid "Log" msgstr "" msgid "Repositories" msgstr "" #, python-format msgid "Running at %s" msgstr "" msgid "Stopped" msgstr "" msgid "TortoiseHg Web Server" msgstr "" msgid "Web Server" msgstr "" msgid "Port:" msgstr "" msgid "Status:" msgstr "" msgid "Start" msgstr "" msgid "Settings" msgstr "" msgid "" msgstr "" msgid "&True" msgstr "" msgid "&False" msgstr "" msgid "&Unspecified" msgstr "" #, python-format msgid "%dpt" msgstr "" msgid "Bold" msgstr "" msgid "Italic" msgstr "" msgid "Strike" msgstr "" msgid "Underline" msgstr "" msgid "&Set..." msgstr "" msgid "&Clear" msgstr "" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "" msgid "&Browse..." msgstr "" msgid "UI Language" msgstr "" msgid "Specify your preferred user interface language (restart needed)" msgstr "" msgid "Three-way Merge Tool" msgstr "" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" msgid "Visual Diff Tool" msgstr "" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" msgid "Visual Editor" msgstr "" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" msgid "CLI Editor" msgstr "" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" msgid "Shell" msgstr "" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
                                                                  Default, Windows: cmd.exe /" "K title %(reponame)s
                                                                  Default, OS X: not set
                                                                  Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" msgid "Immediate Operations" msgstr "" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" msgid "Tab Width" msgstr "" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" msgid "Force Repo Tab" msgstr "" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "" msgid "Monitor Repo Changes" msgstr "" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" msgid "Max Diff Size" msgstr "" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" msgid "Fork GUI" msgstr "" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" msgid "Full Path Title" msgstr "" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" msgid "Auto-resolve merges" msgstr "" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" msgid "New Repo Skeleton" msgstr "" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "" msgid "Single Workbench Window" msgstr "" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" msgid "Default widget" msgstr "" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" msgid "" "Open new tabs next\n" "to the current tab" msgstr "" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" msgid "Author Coloring" msgstr "" msgid "Color changesets by author name. Default: False" msgstr "" msgid "Full Authorname" msgstr "" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" msgid "Task Tabs" msgstr "" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" msgid "Task Toolbar Order" msgstr "" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
                                                                  Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
                                                                  Valid names are: log commit sync grep and " "pbranch.
                                                                  Default: log commit grep pbranch | sync" msgstr "" msgid "Long Summary" msgstr "" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" msgid "Log Batch Size" msgstr "" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "" msgid "Dead Branches" msgstr "" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" msgid "Branch Colors" msgstr "" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" msgid "Hide Tags" msgstr "" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" msgid "Activate Bookmarks" msgstr "" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

                                                                  • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
                                                                  • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
                                                                  • never: Never show any prompt to " "activate any bookmarks.

                                                                  Default: prompt" msgstr "" msgid "Show Family Line" msgstr "" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

                                                                  Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" msgid "Use optimized graph layouter" msgstr "" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

                                                                  Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" msgctxt "config item" msgid "Commit" msgstr "" msgid "Username" msgstr "" msgid "" "Name associated with commits. The common format is:
                                                                  Full Name <" "email@example.com>" msgstr "" msgid "Ask Username" msgstr "" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" msgid "Summary Line Length" msgstr "" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" msgid "Close After Commit" msgstr "" msgid "Close the commit tool after every successful commit. Default: False" msgstr "" msgid "Push After Commit" msgstr "" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" msgid "Auto Commit List" msgstr "" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" msgid "Auto Exclude List" msgstr "" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" msgid "English Messages" msgstr "" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" msgid "New Commit Phase" msgstr "" msgid "The phase of new commits. Default: draft" msgstr "" msgid "Secret MQ Patches" msgstr "" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "" msgid "Check Subrepo Phase" msgstr "" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" msgid "Monitor working
                                                                  directory changes" msgstr "" msgid "" "Select when the working directory status list will be refreshed:
                                                                  - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
                                                                  TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
                                                                  - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
                                                                  - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
                                                                  Default: auto" msgstr "" msgid "Confirm adding unknown files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Confirm deleting files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Sync" msgstr "" msgid "After Pull Operation" msgstr "" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" msgid "Default Push" msgstr "" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

                                                                  • all: The default. Push all changes in all " "branches.
                                                                  • branch: Push all changes in the current branch.
                                                                  • revision: Push the changes in the current branch up to the current revision.

                                                                  Default: all" msgstr "" msgid "Confirm Push" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" msgid "Target Combo" msgstr "" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

                                                                  • auto: The default. Show the combo if more than one target " "configured.
                                                                  • always: Always show the combo.

                                                                  Default: auto" msgstr "" msgid "SSH Command" msgstr "" msgid "" "Command to use for SSH connections.

                                                                  Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" msgid "Subrepository Features:" msgstr "" msgid "Allow Hg Subrepos" msgstr "" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" msgid "Allow Git Subrepos" msgstr "" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

                                                                  See the security note before enabling Git " "subrepos." msgstr "" msgid "Allow SVN Subrepos" msgstr "" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

                                                                  See the security note before enabling " "Subversion subrepos." msgstr "" msgid "Server" msgstr "" msgid "Repository Details:" msgstr "" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" msgid "Encoding" msgstr "" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" msgid "'Publishing' repository" msgstr "" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" msgid "Web Server:" msgstr "" msgid "Textual description of the repository's purpose or contents." msgstr "" msgid "Contact" msgstr "" msgid "Name or email address of the person in charge of the repository." msgstr "" msgid "Style" msgstr "" msgid "Which template map style to use" msgstr "" msgid "Archive Formats" msgstr "" msgid "Comma separated list of archive formats allowed for downloading" msgstr "" msgid "Port" msgstr "" msgid "Port to listen on" msgstr "" msgid "Push Requires SSL" msgstr "" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" msgid "Stripes" msgstr "" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" msgid "Max Files" msgstr "" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "" msgid "Max Changes" msgstr "" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "" msgid "Allow Push" msgstr "" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" msgid "Deny Push" msgstr "" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" msgid "Proxy" msgstr "" msgid "Host" msgstr "" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "" msgid "Bypass List" msgstr "" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "" msgid "Optional. User name to authenticate with at the proxy server" msgstr "" msgid "Password" msgstr "" msgid "Optional. Password to authenticate with at the proxy server" msgstr "" msgid "From" msgstr "" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "" msgid "To" msgstr "" msgid "Comma-separated list of recipient email addresses" msgstr "" msgid "Cc" msgstr "" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "" msgid "Bcc" msgstr "" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "" msgid "method" msgstr "" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" msgid "SMTP Host" msgstr "" msgid "Host name of mail server" msgstr "" msgid "SMTP Port" msgstr "" msgid "Port to connect to on mail server. Default: 25" msgstr "" msgid "SMTP TLS" msgstr "" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "" msgid "SMTP Username" msgstr "" msgid "Username to authenticate to mail server with" msgstr "" msgid "SMTP Password" msgstr "" msgid "Password to authenticate to mail server with" msgstr "" msgid "Local Hostname" msgstr "" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "" msgid "Diff and Annotate" msgstr "" msgid "Patch EOL" msgstr "" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" msgid "Git Format" msgstr "" msgid "Use git extended diff header format. Default: False" msgstr "" msgid "MQ Git Format" msgstr "" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" msgid "No Dates" msgstr "" msgid "Do not include modification dates in diff headers. Default: False" msgstr "" msgid "Show Function" msgstr "" msgid "Show which function each change is in. Default: False" msgstr "" msgid "Ignore White Space" msgstr "" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "" msgid "Ignore WS Amount" msgstr "" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "" msgid "Ignore Blank Lines" msgstr "" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "" msgid "Annotate:" msgstr "" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "" msgid "Fonts" msgstr "" msgid "Message Font" msgstr "" msgid "Font used to display commit messages. Default: monospace 10" msgstr "" msgid "Diff Font" msgstr "" msgid "Font used to display text differences. Default: monospace 10" msgstr "" msgid "ChangeLog Font" msgstr "" msgid "Font used to display changelog data. Default: monospace 10" msgstr "" msgid "Output Font" msgstr "" msgid "Font used to display output messages. Default: sans 8" msgstr "" msgid "Extensions" msgstr "" msgid "Tools" msgstr "" msgid "Hooks" msgstr "" msgid "Issue Tracking" msgstr "" msgid "Issue Regex" msgstr "" msgid "Defines the regex to match when picking up issue numbers." msgstr "" msgid "Issue Link" msgstr "" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" msgid "Inline Tags" msgstr "" msgid "Show tags at start of commit message." msgstr "" msgid "Mandatory Issue Reference" msgstr "" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" msgid "Issue Tracker Plugin" msgstr "" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" msgid "Configure Issue Tracker" msgstr "" msgid "Configure the selected COM Bug Tracker plugin." msgstr "" msgid "Issue Tracker Trigger" msgstr "" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

                                                                  • never: Do not update the Issue Tracker " "state automatically.
                                                                  • commit: Update the Issue Tracker state after " "a successful commit.

                                                                  Default: never" msgstr "" msgid "Changeset Link" msgstr "" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
                                                                  The template string " "uses a normal mercurial template syntax, such as:

                                                                  • {node|short} : replaced by " "the 12 digit revision id.
                                                                  • {rev} : replaced by the revision number." "
                                                                  • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
                                                                  For example, in order to " "link to bitbucket commit pages you can set this to:
                                                                  https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
                                                                  You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
                                                                  https://github.com/torvalds/" "linux/commit/{gitnode}
                                                                  https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
                                                                  " msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "" msgid "User name to authenticate with review board" msgstr "" msgid "Password to authenticate with review board" msgstr "" msgid "Server Repository ID" msgstr "" msgid "The default repository id for this repo on the review board server" msgstr "" msgid "Target Groups" msgstr "" msgid "A comma separated list of target groups" msgstr "" msgid "Target People" msgstr "" msgid "A comma separated list of target people" msgstr "" msgid "Kiln Bfiles" msgstr "" msgid "Patterns" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" msgid "Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" msgid "System Cache" msgstr "" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "" msgid "Simplelock" msgstr "" msgid "Lock Clone" msgstr "" msgid "" "Location of local clone of organizational lock repository.

                                                                  This repository " "must contain a \"locked\" text file" msgstr "" msgid "Largefiles" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" msgid "Minimum Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" msgid "User Cache" msgstr "" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" msgid "Projrc" msgstr "" msgid "Require confirmation" msgstr "" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

                                                                  • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
                                                                  • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
                                                                  • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
                                                                  " msgstr "" msgid "Servers" msgstr "" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" msgid "Include" msgstr "" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" msgid "Exclude" msgstr "" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" msgid "Update on incoming" msgstr "" msgid "" "Let the user update the projrc on incoming:
                                                                  • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
                                                                  • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
                                                                  • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                                                                    Default: never" msgstr "" msgid "GnuPG" msgstr "" msgid "Specify the path to GPG. Default: gpg" msgstr "" msgid "Key ID" msgstr "" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "" msgid "TortoiseHg Settings" msgstr "" msgid "Iniparse package not found" msgstr "" msgid "Can't change settings without iniparse package - view is readonly." msgstr "" #, python-format msgid "%s's global settings" msgstr "" msgid "No repository found" msgstr "" msgid "no repo at " msgstr "" #, python-format msgid "%s project settings (.hg/projrc)" msgstr "" #, python-format msgid "%s repository settings" msgstr "" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "" msgid "Apply changes before exit?" msgstr "" msgid "&No (discard changes)" msgstr "" msgid "Reload" msgstr "" msgid "Settings File:" msgstr "" msgid "Confirm Save" msgstr "" msgid "Save changes before editing?" msgstr "" msgid "&Save" msgstr "" msgid "Confirm Reload" msgstr "" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" msgid "Unable to create a Mercurial.ini file" msgstr "" msgid "Insufficient access rights, reverting to read-only mode." msgstr "" msgid "Context Menu" msgstr "" msgid "Top menu items:" msgstr "" msgid "Sub menu items:" msgstr "" msgid "Menu Behavior" msgstr "" msgid "Hide context menu outside repositories" msgstr "" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" msgid "Icons" msgstr "" msgid "Overlays" msgstr "" msgid "Enabled overlays" msgstr "" msgid "Local disks only" msgstr "" msgid "Enabled Overlay Handlers" msgstr "" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "" msgid "Added" msgstr "" msgid "Locked*" msgstr "" msgid "Ignored*" msgstr "" msgid "Unversioned" msgstr "" msgid "Readonly*" msgstr "" msgid "Deleted*" msgstr "" msgid "*: not used by TortoiseHg" msgstr "" msgid "Taskbar" msgstr "" msgid "Show Icon" msgstr "" msgid "Highlight Icon" msgstr "" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" msgid "Explorer Extension Settings - TortoiseHg" msgstr "" msgid "Clear" msgstr "" msgid "Clear the current shelf file" msgstr "" msgid "Delete the current shelf file" msgstr "" msgid "Left Toolbar" msgstr "" msgid "Delete selected chunks" msgstr "" msgid "Move all files right" msgstr "" msgid "Move selected file right" msgstr "" msgid "Edit file" msgstr "" msgid "Move selected chunks right" msgstr "" msgid "Refresh Toolbar" msgstr "" msgid "Refresh" msgstr "" msgid "New Shelf" msgstr "" msgid "Right Toolbar" msgstr "" msgid "Move selected chunks left" msgstr "" msgid "Move selected file left" msgstr "" msgid "Move all files left" msgstr "" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "" msgid "Delete selected chunks from working copy?" msgstr "" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "" msgid "Are you sure?" msgstr "" msgid "TortoiseHg New Shelf Name" msgstr "" msgid "Specify name of new shelf" msgstr "" msgid "Bad filename" msgstr "" #, python-format msgid "A shelf name cannot contain %s" msgstr "" msgid "File already exists" msgstr "" msgid "A shelf file of that name already exists" msgstr "" msgid "New shelf created" msgstr "" #, python-format msgid "Delete shelf file %s?" msgstr "" msgid "Shelf deleted" msgstr "" msgid "Revert all working copy changes?" msgstr "" #, python-format msgid "Clear contents of shelf file %s?" msgstr "" msgid "Shelf cleared" msgstr "" #, python-format msgid "Shelf: %s" msgstr "" #, python-format msgid "Patch: %s" msgstr "" msgid "Key:" msgstr "" msgid "Local sign" msgstr "" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "" msgid "No commit" msgstr "" msgid "Use custom commit message:" msgstr "" msgid "&Sign" msgstr "" #, python-format msgid "Sign - %s" msgstr "" msgid "Signature has been added" msgstr "" msgid "Repository command still running" msgstr "" msgid "Filter:" msgstr "" msgid "Check all files" msgstr "" msgid "Uncheck all files" msgstr "" msgid "Status File List Toolbar" msgstr "" msgid "Remove filter, show root" msgstr "" #, python-format msgid "%s - status (selection filtered)" msgstr "" #, python-format msgid "%s - status" msgstr "" msgid "Check" msgstr "" msgid "Uncheck" msgstr "" msgid "status" msgstr "" msgid "Failed to refresh" msgstr "" msgid "No appropriate files" msgstr "" msgid "No files found for this operation" msgstr "" msgid "Stat" msgstr "" msgid "M" msgstr "" msgid "Filename" msgstr "" msgid "Size (KB)" msgstr "" #, python-format msgid "Checked count: %d" msgstr "" msgid ", resolved merge" msgstr "" msgid ", unresolved merge" msgstr "" #, python-format msgid "%s is modified" msgstr "" msgid "modified" msgstr "" #, python-format msgid "%s is added" msgstr "" msgid "added" msgstr "" #, python-format msgid "%s is removed" msgstr "" msgid "removed" msgstr "" #, python-format msgid "%s is not tracked (unknown)" msgstr "" msgid "unknown" msgstr "" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "" msgid "missing" msgstr "" #, python-format msgid "%s is ignored" msgstr "" msgid "ignored" msgstr "" #, python-format msgid "%s is not modified (clean)" msgstr "" msgid "clean" msgstr "" #, python-format msgid "%s is a dirty subrepo" msgstr "" msgid "subrepo" msgstr "" msgid "Check for incoming changes from selected URL" msgstr "" msgid "Pull incoming changes from selected URL" msgstr "" msgid "Detect outgoing changes to selected URL" msgstr "" msgid "Push outgoing changes to selected URL" msgstr "" msgid "Sync Bookmarks" msgstr "" msgid "Email outgoing changesets for remote repository" msgstr "" msgid "Manage pending perforce changelists" msgstr "" msgid "Unbundle" msgstr "" msgid "Selected Options:" msgstr "" msgid "Path Edit Toolbar" msgstr "" msgid "Security" msgstr "" msgid "Manage HTTPS connection security and user authentication" msgstr "" msgid "Save" msgstr "" msgid "Save current URL under an alias" msgstr "" msgid "Paths in Repository Settings:" msgstr "" msgid "Related Paths:" msgstr "" msgid "branch: " msgstr "" msgid "bookmark: " msgstr "" #, python-format msgid "rev: %d (%s)" msgstr "" msgid "Post Pull: " msgstr "" msgid "&Edit..." msgstr "" msgid "&Remove..." msgstr "" msgid "Repository not local" msgstr "" msgid "A terminal shell cannot be opened for remote" msgstr "" msgid "Confirm path delete" msgstr "" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "" msgid "Select repository" msgstr "" msgid "No host specified" msgstr "" msgid "Please set a valid URL to continue." msgstr "" msgid "No remote repository URL or path set" msgstr "" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

                                                                    Please type and save a remote repository path on the " "Sync widget." msgstr "" msgid "Redundant authentication info" msgstr "" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" msgid "sync command already running" msgstr "" #, python-format msgid "Getting incoming changesets from %s..." msgstr "" #, python-format msgid "Found incoming changesets from %s" msgstr "" #, python-format msgid "No incoming changesets from %s" msgstr "" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "" #, python-format msgid "Pulling from %s..." msgstr "" #, python-format msgid "Pull from %s completed" msgstr "" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "" msgid "Merge caused file conflicts" msgstr "" msgid "File conflicts need to be resolved" msgstr "" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "" #, python-format msgid "%d outgoing changesets to %s" msgstr "" #, python-format msgid "No outgoing changesets to %s" msgstr "" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "" msgid "Perforce pending..." msgstr "" #, python-format msgid "%s (submitted)" msgstr "" #, python-format msgid "%s (pending)" msgstr "" msgid "Unable to parse p4pending output" msgstr "" #, python-format msgid "%d pending changelists found" msgstr "" msgid "No pending Perforce changelists" msgstr "" msgid "Aborted p4pending" msgstr "" msgid "Unable to determine pending changesets" msgstr "" msgid "Confirm Push to remote Repository" msgstr "" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" #, python-format msgid "Push to %s aborted" msgstr "" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" #, python-format msgid "Pushing to %s..." msgstr "" #, python-format msgid "Push to %s completed" msgstr "" #, python-format msgid "Push to %s aborted, ret %d" msgstr "" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" msgid "Determining outgoing changesets to email..." msgstr "" msgid "No outgoing changesets" msgstr "" #, python-format msgid "Outgoing aborted, ret %d" msgstr "" msgid "Select bundle file" msgstr "" msgid "Bundle files (*.hg)" msgstr "" msgid "Unable to remove URL" msgstr "" msgid "Post Pull Behavior" msgstr "" msgid "Select post-pull operation for this repository" msgstr "" msgid "None - simply pull changesets" msgstr "" msgid "Update - pull, then try to update" msgstr "" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "" msgid "Rebase - rebase local commits above pulled changes" msgstr "" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "" msgid "Launch settings tool..." msgstr "" msgid "Unable to save post pull operation" msgstr "" msgid "Save Path" msgstr "" msgid "Alias" msgstr "" msgid "URL" msgstr "" msgid "Remove authentication data from URL" msgstr "" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" msgid "Update subrepo paths" msgstr "" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" msgid "Unable to save an URL" msgstr "" msgid "Confirm URL replace" msgstr "" #, python-format msgid "%s already exists, replace URL?" msgstr "" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

                                                                    %s

                                                                    Replace it with the " "following URL?:

                                                                    %s" msgstr "" msgid "Security: " msgstr "" #, python-format msgid "Host: %s" msgstr "" msgid "Secure HTTPS Connection" msgstr "" msgid "Verify with Certificate Authority certificates (best)" msgstr "" msgid "Verify with stored host fingerprint (good)" msgstr "" msgid "No host validation, but still encrypted (bad)" msgstr "" msgid "### host certificate fingerprint ###" msgstr "" msgid "Query" msgstr "" msgid "TLS 1.0" msgstr "" msgid "TLS 1.1" msgstr "" msgid "TLS 1.2" msgstr "" msgid "Minimum Protocol" msgstr "" msgid "User Authentication" msgstr "" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Key" msgstr "" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Chain" msgstr "" msgid "Certificate Query Error" msgstr "" msgid "Select User Certificate Key File" msgstr "" msgid "PEM files (*.pem *.key)" msgstr "" msgid "Select User Certificate Chain File" msgstr "" msgid "PEM files (*.pem *.crt *.cer)" msgstr "" msgid "Unable to save authentication" msgstr "" #, python-format msgid "%s - sync options" msgstr "" msgid "Allow push of a new branch (--new-branch)" msgstr "" msgid "Force push or pull (override safety checks, --force)" msgstr "" msgid "Temporarily disable configured HTTP proxy" msgstr "" msgid "Emit debugging output (--debug)" msgstr "" msgid "Work on patch queue (--mq)" msgstr "" #, python-format msgid "Tag - %s" msgstr "" msgid "Tag:" msgstr "" msgid "Tagged:" msgstr "" msgid "Local tag" msgstr "" msgid "Replace existing tag (-f/--force)" msgstr "" msgid "Use English commit message" msgstr "" msgid "local" msgstr "" msgid "Move" msgstr "Flytt" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "" #, python-format msgid "Added tag %s for changeset %s" msgstr "" #, python-format msgid "Tag '%s' has been moved" msgstr "" #, python-format msgid "Tag '%s' has been added" msgstr "" #, python-format msgid "Removed tag %s" msgstr "" #, python-format msgid "Tag '%s' has been removed" msgstr "" msgid "Patch files (*.diff *.patch)" msgstr "" #, python-format msgid "Import - %s" msgstr "" msgid "Browse Directory..." msgstr "" msgid "Import from Clipboard" msgstr "" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "" msgid "Preview:" msgstr "" msgid "Shelf" msgstr "" msgid "Checking working directory status..." msgstr "" msgid "&Import" msgstr "" msgid "Working directory is not clean! View changes..." msgstr "" msgid "Select patches" msgstr "" msgid "Select Directory containing patches" msgstr "" #, python-format msgid "%s patches" msgstr "" #, python-format msgid "%s will be imported to " msgstr "" msgid "Nothing to import" msgstr "" msgid "Strip:" msgstr "" msgid "Discard local changes, no backup (-f/--force)" msgstr "" msgid "No backup (-n/--nobackup)" msgstr "" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "" msgstr[1] "" msgid "Unknown revision!" msgstr "" msgid "Detected uncommitted local changes." msgstr "" msgid "Do you want to keep them or discard them?" msgstr "" msgid "&Keep (--keep)" msgstr "" msgid "&Discard (--force)" msgstr "" msgid "Confirm Strip" msgstr "" #, python-format msgid "Strip - %s" msgstr "" msgid "&Strip" msgstr "" msgid "Topic:" msgstr "" msgid "&Rename" msgstr "" #, python-format msgid "Topic - %s" msgstr "" #, python-format msgid "A topic named \"%s\" already exists" msgstr "" #, python-format msgid "Topic '%s' has been added" msgstr "" #, python-format msgid "Topic '%s' does not exist" msgstr "" #, python-format msgid "Topic '%s' has been removed" msgstr "" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "" msgid "Parent 1:" msgstr "" msgid "Parent 2:" msgstr "" msgid "Pull subrepos from:" msgstr "" msgid "List updated files (--verbose)" msgstr "" msgid "Discard local changes, no backup (-C/--clean)" msgstr "" msgid "Always merge (when possible)" msgstr "" msgid "(same as parent)" msgstr "" msgid "Activate bookmark?" msgstr "" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

                                                                    Do " "you want to activate it?
                                                                    You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

                                                                    Select " "the bookmark that you want to activate and click OK.

                                                                    Click " "Cancel if you don't want to activate any of them.

                                                                    You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                                    " msgstr "" msgid "Deactivate current bookmark?" msgstr "" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" msgid "Discard - discard local changes, no backup" msgstr "" msgid "&Shelve" msgstr "" msgid "Shelve - move local changes to a patch" msgstr "" msgid "Merge - allow to merge with local changes" msgstr "" msgid "Confirm Update" msgstr "" #, python-format msgid "Update - %s" msgstr "" msgid "[non-existant]" msgstr "" msgid "Tool launch failure" msgstr "" #, python-format msgid "%s : %s" msgstr "" msgid "No diff tool found" msgstr "" msgid "No visual diff tools were detected" msgstr "" msgid "[working copy]" msgstr "" msgid "[original]" msgstr "" msgid "Unable to find changeset" msgstr "" msgid "You likely need to refresh this application" msgstr "" msgid "No file changes" msgstr "" msgid "There are no file changes to view" msgstr "" msgid "working changes" msgstr "" #, python-format msgid "changeset %d:%s" msgstr "" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "" msgid "Visual Diffs - " msgstr "" msgid " filtered" msgstr "" msgid "Temporary files are removed when this dialog is closed" msgstr "" msgid "Select Tool:" msgstr "" msgid "Dir diff to p1" msgstr "" msgid "Dir diff to p2" msgstr "" msgid "3-way dir diff" msgstr "" msgid "Directory diff" msgstr "" msgid "Confirm Discard" msgstr "" msgid "Discard outstanding changes to working directory?" msgstr "" msgid "Config files (*.conf *.config *.ini)" msgstr "" msgid "Open hgweb config" msgstr "" msgid "Save hgweb config" msgstr "" msgid "Path:" msgstr "" msgid "Local Path:" msgstr "" msgid "Select Repository" msgstr "" msgid "Add Path to Serve" msgstr "" msgid "Edit Path to Serve" msgstr "" msgid "Local Path" msgstr "" msgid "Webconf" msgstr "" msgid "Config File:" msgstr "" msgid "Open" msgstr "" msgid "New &Workbench" msgstr "" msgid "&New Repository..." msgstr "" msgid "Clon&e Repository..." msgstr "" msgid "&Open Repository..." msgstr "" msgid "&File" msgstr "" msgid "&View" msgstr "" msgid "&Repository" msgstr "" msgid "&Help" msgstr "" msgid "&Dock Toolbar" msgstr "" msgid "&Task Toolbar" msgstr "" msgid "&Custom Toolbar" msgstr "" msgid "S&ync Toolbar" msgstr "" msgid "&Close Repository" msgstr "" msgid "Sh&ow Repository Registry" msgstr "" msgid "Show &Patch Queue" msgstr "" msgid "Show Conso&le" msgstr "" msgid "Place Console in Doc&k Area" msgstr "" msgid "R&epository Registry Options" msgstr "" msgid "Save Open Repositories on E&xit" msgstr "" msgid "Sa&ve Current Sync Paths on Exit" msgstr "" msgid "Show Tas&k Tab" msgstr "" msgid "&Commit" msgstr "" msgid "&Patch Branch" msgstr "" msgid "Revision &Details" msgstr "" msgid "&Search" msgstr "" msgid "S&ynchronize" msgstr "" msgid "Refresh current repository" msgstr "" msgid "Refresh &Task Tab" msgstr "" msgid "Refresh only the current task tab" msgstr "" msgid "Load &All Revisions" msgstr "" msgid "Load all revisions into graph" msgstr "" msgid "Go to current revision" msgstr "" msgid "&Goto Revision..." msgstr "" msgid "Go to a specific revision" msgstr "" msgid "Filter graph with revision sets or branches" msgstr "" msgid "&Workbench Toolbars" msgstr "" msgid "&Lock File..." msgstr "" msgid "Lock or unlock files" msgstr "" msgid "Update working directory or switch revisions" msgstr "" msgid "&Shelve..." msgstr "" msgid "&Import Patches..." msgstr "" msgid "U&nbundle..." msgstr "" msgid "&Merge..." msgstr "" msgid "Merge with the other head of the current branch" msgstr "" msgid "&Resolve..." msgstr "" msgid "R&ollback/Undo..." msgstr "" msgid "&Purge..." msgstr "" msgid "&Bisect..." msgstr "" msgid "&Verify" msgstr "" msgid "Re&cover" msgstr "" msgid "&Web Server" msgstr "" msgid "E&xplorer Help" msgstr "" msgid "&Readme" msgstr "" msgid "About &Qt" msgstr "" msgid "&About TortoiseHg" msgstr "" msgid "&Incoming" msgstr "" msgid "&Pull" msgstr "" msgid "&Outgoing" msgstr "" msgid "P&ush" msgstr "" msgid "&Sync Bookmarks..." msgstr "" #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" msgid "Check for incoming changes" msgstr "" msgid "Pull incoming changes" msgstr "" msgid "Detect outgoing changes" msgstr "" msgid "Push outgoing changes" msgstr "" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" #, python-format msgid "Execute custom tool '%s'" msgstr "" msgid "Custom Toolbar &Settings" msgstr "" msgid "TortoiseHg Workbench" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "" msgid "Goto revision" msgstr "" msgid "Enter revision identifier" msgstr "" msgid "Select repository directory to open" msgstr "" msgid "README not configured" msgstr "" msgid "" "A README file is not configured for the current repository.

                                                                    To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" msgid "Issue Tracker Plugin Error" msgstr "" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "" msgid "This error will not be shown again until you restart the workbench" msgstr "" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "" msgid "Error executing \"commit finished\" trigger" msgstr "" msgid "Cannot open Plugin Options dialog" msgstr "" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "" msgid "[--insecure] [SOURCE]" msgstr "" #, python-format msgid "unsupported URL: %s" msgstr "" #, python-format msgid "%s certificate error: no certificate received" msgstr "" msgid "move after the specified patch" msgstr "" msgid "[--after PATCH] PATCH..." msgstr "" msgid "unknown patch to move specified" msgstr "" msgid "invalid patch position specified" msgstr "" msgid "cannot move applied patches" msgstr "" #, python-format msgid "patch %s not in series" msgstr "" msgid "cannot move into applied patches" msgstr "" msgid "abort: " msgstr "" msgid "hint: " msgstr "" #, python-format msgid "HTTP Error: %d (%s)" msgstr "" #, python-format msgid "URLError: %s" msgstr "" msgid "SSL: Server certificate verify failed" msgstr "" #, python-format msgid "SSL: unknown error %s:%s" msgstr "" #, python-format msgid "SSL error: %s" msgstr "" msgid "hgsubversion packaged with thg" msgstr "" msgid "hggit packaged with thg" msgstr "" msgid "inotify is not supported on this platform" msgstr "" msgid "eol is incompatible with win32text" msgstr "" msgid "win32text is incompatible with eol" msgstr "" msgid "hgsubversion is incompatible with perfarce" msgstr "" msgid "perfarce is incompatible with hgsubversion" msgstr "" msgid "Workbench custom toolbar" msgstr "" msgid "Revision details context menu" msgstr "" msgid "Pair selection context menu" msgstr "" msgid "Multiple selection context menu" msgstr "" msgid "Commit context menu" msgstr "" msgid "File context menu (on manifest and revision details)" msgstr "" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" msgid "in the future" msgstr "" msgid "now" msgstr "" #, python-format msgid "command parse error: %s" msgstr "" #, python-format msgid "no matches found: %s" msgstr "" msgid "Commit..." msgstr "" msgid "Commit changes in repository" msgstr "" msgid "Create Repository Here" msgstr "" msgid "Create a new repository" msgstr "" msgid "Clone..." msgstr "" msgid "Create clone here from source" msgstr "" msgid "File Status" msgstr "" msgid "Repository status & changes" msgstr "" msgid "Add Files..." msgstr "" msgid "Add files to version control" msgstr "" msgid "Revert Files..." msgstr "" msgid "Revert file changes" msgstr "" msgid "Forget Files..." msgstr "" msgid "Remove files from version control" msgstr "" msgid "Remove Files..." msgstr "" msgid "Rename File" msgstr "" msgid "Rename file or directory" msgstr "" msgid "View change history in repository" msgstr "" msgid "File History" msgstr "" msgid "View change history of selected files" msgstr "" msgid "Shelve Changes" msgstr "" msgid "Move changes between working dir and patch" msgstr "" msgid "Synchronize" msgstr "" msgid "Synchronize with remote repository" msgstr "" msgid "Start web server for this repository" msgstr "" msgid "Update..." msgstr "" msgid "Update working directory" msgstr "" msgid "Update Icons" msgstr "" msgid "Update icons for this repository" msgstr "" msgid "Global Settings" msgstr "" msgid "Configure user wide settings" msgstr "" msgid "Repository Settings" msgstr "" msgid "Configure repository settings" msgstr "" msgid "Explorer Extension Settings" msgstr "" msgid "Configure Explorer extension" msgstr "" msgid "About TortoiseHg" msgstr "" msgid "Show About Dialog" msgstr "" msgid "Diff to parent" msgstr "" msgid "View changes using GUI diff tool" msgstr "" msgid "Edit Ignore Filter" msgstr "" msgid "Edit repository ignore filter" msgstr "" msgid "Guess Renames" msgstr "" msgid "Detect renames and copies" msgstr "" msgid "Search History" msgstr "" msgid "Search file revisions for patterns" msgstr "" msgid "DnD Synchronize" msgstr "" msgid "Synchronize with dragged repository" msgstr "" #, python-format msgid "unrecognized response: %s" msgstr "" msgid "password: " msgstr "" #, python-format msgid "repository %s not found" msgstr "" msgid "win32ill: cannot create window for messages" msgstr "" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "" msgid "win32ill: interrupted while stopping message loop\n" msgstr "" #~ msgid "A new version of TortoiseHg is ready for download!" #~ msgstr "En ny version av TortoiseHg er klar til å lastes ned!" #~ msgid "Copyright 2008-2010 Steve Borho and others" #~ msgstr "Copyright 2008-2010 Steve Borho og andre" #~ msgid "Archive" #~ msgstr "Arkiv" #~ msgid "Old name:" #~ msgstr "Gammelt navn:" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/nl.po0000644000000000000000000076675014440352353016264 0ustar00rootroot# Dutch translation for tortoisehg # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the tortoisehg package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2016-02-13 18:28+0000\n" "Last-Translator: Aldwoni \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2019-07-17 05:42+0000\n" "X-Generator: Launchpad (build 19009)\n" msgid "TortoiseHg Overlay Icon Server" msgstr "TortoiseHg Overlay Icon Server" msgid "Exit" msgstr "Afsluiten" msgid "About" msgstr "Info" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "" "Enkele iconen zijn welwillend ter beschikking gesteld door TortoiseSVN en " "Tango projects" msgid "You can visit our site here" msgstr "Bezoek onze website hier" msgid "&License" msgstr "&Licentie" #, python-format msgid "version %s" msgstr "versie %s" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "met Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "Een nieuwe versie van TortoiseHg (%s) is klaar om te downloaden!" msgid "License" msgstr "Licentie" msgid "= Working Directory Parent =" msgstr "= Werkmap Ouder =" msgid "Directory of files" msgstr "Map met bestanden" msgid "Tar archives" msgstr "Tar archieven" msgid "Uncompressed tar archive" msgstr "Ongecomprimeerd tar archief" msgid "Bzip2 tar archives" msgstr "Bzip2 archieven" msgid "Tar archive compressed using bzip2" msgstr "Tar archief gecomprimeerd met bzip2" msgid "Gzip tar archives" msgstr "Gzip tar archieven" msgid "Tar archive compressed using gzip" msgstr "Tar archief gecomprimeerd met gzip" msgid "Zip archives" msgstr "Zip archieven" msgid "Uncompressed zip archive" msgstr "Ongecomprimeerd zip archief" msgid "Zip archive compressed using deflate" msgstr "Zip archief gecomprimeerd met deflate" msgid "Revision:" msgstr "Revisie:" msgid "All files in this revision" msgstr "" msgid "Only files modified/created in this revision" msgstr "Enkel bestanden gewijzigd/aangemaakt in deze revisie" msgid "Only files modified/created since:" msgstr "" msgid "Archive Content:" msgstr "" msgid "Recurse into subrepositories" msgstr "Subrepositories doorlopen" msgid "Browse..." msgstr "Bladeren..." msgid "Destination path:" msgstr "Doelpad:" msgid "Archive types:" msgstr "Archieftypes:" msgid "Hg command:" msgstr "Hg opdracht:" msgid "Select Destination Folder" msgstr "Kies Doelmap" msgid "Select Destination File" msgstr "Selecteer Doelbestand" msgid "All files (*)" msgstr "Alle bestanden (*)" msgid "Duplicate Name" msgstr "Dubbele naam" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "Het doelbestand \"%s\" bestaat al!" msgid "Confirm Overwrite" msgstr "Bevestig Overschrijven" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" "De map \"%s\" is niet leeg!\n" "\n" "Wilt u ze overschrijven?" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" "Bestand \"%s\" bestaat al!\n" "\n" "Wilt u het overschrijven?" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "Het doel \"%s\" bestaat al als map!" #, python-format msgid "Archive - %s" msgstr "Archieveren - %s" msgid "&Archive" msgstr "&Archiveren" msgid "Backout requires a parent revision" msgstr "Backout heeft een ouder-revisie nodig" msgid "Cannot backout change on a different branch" msgstr "Kan backout in een andere tak niet uitvoeren" #, python-format msgid "Backout - %s" msgstr "Backout - %s" msgid "Prepare to backout" msgstr "Voorbereiden op backout" msgid "Verify backout revision and ensure your working directory is clean." msgstr "" "Kontroleer de backout revisie en zorg ervoor dat de werkmap geen wijzigingen " "bevat." msgid "Backing out a parent revision is a single step operation" msgstr "Backout van een ouder revisie is een bewerking in één stap" msgid "Backout revision" msgstr "Backout revisie" msgid "Not a head, backout will create a new head!" msgstr "Geen hoofd, backout zal een nieuw hoofd aanmaken!" msgid "Current local revision" msgstr "Huidige lokale revisie" msgid "Working directory status" msgstr "Werkmap status" msgid "Checking..." msgstr "Bezig met kontroleren..." msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" "Vooraleer een backout te doen, moet u committen, een shelve maken naar een patch, of " "wijzigingen verwerpen> kiezen." msgid "Automatically resolve merge conflicts where possible" msgstr "Samenvoegconflicten automatisch oplossen waar mogelijk" msgid "Uncommitted local changes are detected" msgstr "Lokale wijzigingen gevonden die nog niet gecommit zijn" msgid "Clean" msgstr "Ongewijzigd" msgid "Backing out, then merging..." msgstr "Bezig met backout, dan samenvoegen..." msgid "All conflicting files will be marked unresolved." msgstr "Alle bestanden met conflicten zullen als onopgelost gemarkeerd worden." msgid "Automatically advance to next page when backout and merge are complete." msgstr "" "Ga automatisch naar de volgende pagina als backout en samenvoegen voltooid " "zijn." #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" "%d bestanden hebben samenvoegconflicten die moeten opgelost worden" msgid "No merge conflicts, ready to commit" msgstr "Geen samenvoegconflicten, klaar voor commit" msgid "Commit backout and merge results" msgstr "Backout committen en de resultaten samenvoegen" msgid "Parents" msgstr "Ouders" msgid "Working Directory" msgstr "Werkmap" msgid "Working Directory (merged)" msgstr "Werkmap (samengevoegd)" msgid "Commit message" msgstr "Commitbericht" msgid "Skip final confirmation page, close after commit." msgstr "Sla afsluitende bevestingspagina over, sluit na commit" msgid "Backed out changeset: " msgstr "Changeset waarvan backout gedaan is: " msgid "Confirm Discard Message" msgstr "\"Confirm Discard Message" msgid "Discard current backout message?" msgstr "Huidig backout bericht verwerpen?" msgid "Use English backout message" msgstr "Gebruik engels backout bericht" msgid "Backing out and committing..." msgstr "Bezig met backout en commit..." msgid "Please wait while making backout." msgstr "Even geduld aub terwijl de backout bezig is." msgid "Committing..." msgstr "Commit bezig..." msgid "Please wait while committing merged files." msgstr "" "Even geduld aub terwijl de commit van de samengevoegde bestanden bezig is." msgid "Finished" msgstr "Klaar" msgid "Backout changeset" msgstr "Backout changeset" #, python-format msgid "Bisect - %s" msgstr "Bisect - %s" msgid "Accept" msgstr "Aanvaarden" msgid "Known good revision:" msgstr "Gekende goede revisie:" msgid "Known bad revision:" msgstr "Gekende slechte revisie:" msgid "Discard local changes (revert --all)" msgstr "Verwijder lokale veranderingen (revert --all)" msgid "Revision is &Good" msgstr "Revisie is &Goed" msgid "Revision is &Bad" msgstr "Revisie is &Slecht" msgid "&Skip this Revision" msgstr "&Sla deze herziening over" msgid "Close" msgstr "Sluiten" msgid "Error encountered." msgstr "Er heeft zich een fout voorgedaan." msgid "Culprit found." msgstr "Schuldige gevonden." msgid "Revision" msgstr "Revisie" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "" "Test deze revisie en rapporteer uw bevindingen. (goed/slecht/overslaan)" #, python-format msgid "%s (hint: %s)" msgstr "%s (hint: %s)" msgid "Bookmark:" msgstr "Bladwijzer:" msgid "New Name:" msgstr "Nieuwe naam:" msgid "Activate:" msgstr "Activeren:" msgid "&Add" msgstr "&Toevoegen" msgid "Re&name" msgstr "Her&noemen" msgid "&Remove" msgstr "&Verwijderen" msgid "&Move" msgstr "&Verplaatsen" #, python-format msgid "Bookmark - %s" msgstr "Bladwijzer maken - %s" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "Er bestaat al een bladwijzer met de naam \"%s\"" #, python-format msgid "Bookmark '%s' has been added" msgstr "Bladwijzer '%s' werd toegevoegd" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "Er bestaat geen bladwijzer met de naam \"%s\"" #, python-format msgid "Bookmark '%s' has been moved" msgstr "Bladwijzer '%s' werd verplaatst" #, python-format msgid "Bookmark '%s' does not exist" msgstr "Bladwijzer '%s' bestaat niet" #, python-format msgid "Bookmark '%s' has been removed" msgstr "Bladwijzer '%s' werd verwijderd" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "Bladwijzer '%s' werd hernoemd naar '%s'" msgid "TortoiseHg Bookmark Sync" msgstr "TortoiseHg Bookmark Sync" msgid "Outgoing Bookmarks" msgstr "Uitgaande Bladwijzers" msgid "&Push Bookmark" msgstr "" msgid "&Remove Bookmark" msgstr "" msgid "Incoming Bookmarks" msgstr "Binnenkomende Bladwijzers" msgid "P&ull Bookmark" msgstr "" msgid "R&emove Bookmark" msgstr "" #, python-format msgid "Pushed local bookmark: %s" msgstr "" #, python-format msgid "Pulled remote bookmark: %s" msgstr "" #, python-format msgid "Removed remote bookmark: %s" msgstr "" #, python-format msgid "Removed local bookmark: %s" msgstr "" #, python-format msgid "%s - branch operation" msgstr "%s - tak bewerking" msgid "Select branch of merge commit" msgstr "Kies de tak voor de samenvoeg commit" msgid "Changes take effect on next commit" msgstr "Wijzigingen worden effectief na de volgende commit" msgid "No branch changes" msgstr "Geen tak wijzigingen" msgid "Open a new named branch" msgstr "Open nieuwe benoemde tak" msgid "Close current branch" msgstr "Huidige tak sluiten" #, python-format msgid "Please report this bug to our bug tracker" msgstr "Wil deze fout aub rapporteren in onze bug tracker" msgid "Checking for updates..." msgstr "Bezig met zoeken naar updates..." msgid "Copy" msgstr "Kopiëren" msgid "Quit" msgstr "Afsluiten" msgid "TortoiseHg Bug Report" msgstr "TortoiseHg Bug Rapport" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "" "Het is aangeraden om over te gaan naar een meer recente versie van " "TortoiseHg." msgid "Your TortoiseHg is up to date." msgstr "Uw TortoiesHg is up-to-date." msgid "Save error report to" msgstr "Foutrapport opslaan als" msgid "Text files (*.txt)" msgstr "Tekstbestanden (*.txt)" msgid "Error writing file" msgstr "Fout bij schrijven van bestand" msgid "TortoiseHg Error" msgstr "TortoiseHg Fout" msgid "" "If you still have trouble, please file a bug report." msgstr "" "Als u nog altijd moeilijkheden ondervindt, registreer " "dan een foutrapport aub" msgid "Visual Diff" msgstr "Verschillen Visualiseren" msgid "View file changes in external diff tool" msgstr "Bestandsverschillen bekijken in externe vergelijkingstool" msgid "Edit Local" msgstr "Lokale versie Bewerken" msgid "Edit current file in working copy" msgstr "Editeer huidig bestand in werkmap" msgid "Revert to Revision" msgstr "Revert naar Revisie" msgid "Revert file(s) to contents at this revision" msgstr "Revert bestand(en) naar inhoud van deze revisie" msgid "Patch failed to apply" msgstr "Toepassen patch is mislukt" msgid "Manually resolve rejected chunks?" msgstr "Verworpen blokken manueel oplossen?" msgid "Edit patched file and rejects?" msgstr "Gepatcht bestand en verworpen wijzigingen aanpassen?" msgid "No deletable chunks" msgstr "Geen verwijderbare blokken" msgid "Completely remove file from patch?" msgstr "Bestand helemaal uit de patch verwijderen ?" msgid "Revert all file changes?" msgstr "Alle bestandswijzigingen omkeren?" msgid "No chunks remain" msgstr "Er zijn geen blokken meer" msgid "file has been deleted, refresh" msgstr "bestand werd verwijderd, vernieuwen" msgid "file has been modified, refresh" msgstr "bestand is gewijzigd, vernieuwen" msgid "Unable to merge chunks" msgstr "Kan de blokken niet samenvoegen" msgid "Add or remove patches must be merged in the working directory" msgstr "" "Toegevoegen of verwijderen van patches moet samengevoegd worden in de werkmap" msgid "Unable to remove" msgstr "Kan niet verwijderen" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" "Kan bestand %s niet verwijderen,\n" "geen toelating" msgctxt "files" msgid "All" msgstr "Alle" msgctxt "files" msgid "None" msgstr "Geen" msgid "Toggle display of text search bar" msgstr "Aan/af zetten tonen van de tekst zoekbalk" msgid "Diff Toolbar" msgstr "VergelijkingsToolbar" #, python-format msgid "Chunks selected: %d / %d" msgstr "Geselecteerde blokken: %d / %d" msgid "Please wait while the file is opened ..." msgstr "Even geduld aub terwijl het bestand geopend wordt ..." msgid "Source:" msgstr "Bron:" msgid "Destination:" msgstr "Doel:" msgid "Options" msgstr "Opties" msgid "Clone to revision:" msgstr "Kloon tot revisie:" msgid "A revision identifier, bookmark, tag or branch name" msgstr "" msgid "Do not update the new working directory" msgstr "De nieuwe werkmap niet bijwerken" msgid "Use pull protocol to copy metadata" msgstr "Gebruik pull protocol om metadata te kopiëren" msgid "Clone with minimal processing" msgstr "" msgid "Include patch queue" msgstr "Patch wachtrij insluiten" msgid "Use proxy server" msgstr "Gebruik proxy server" msgid "Do not verify host certificate" msgstr "Host certificaat niet kontroleren" msgid "Remote command:" msgstr "Externe opdracht:" msgid "Use largefiles" msgstr "" msgid "Start revision:" msgstr "Begin revisie:" msgid "Select source repository" msgstr "Kies bronmap" msgid "Select destination repository" msgstr "Kies doelmap" msgid "Select patch folder" msgstr "Kies patchmap" #, python-format msgid "Clone - %s" msgstr "Klonen - %s" msgid "&Clone" msgstr "&Klonen" msgid "failed to start command\n" msgstr "Kon opdracht niet starten\n" msgid "error while running command\n" msgstr "fout bij uitvoeren opdracht\n" #, python-format msgid "process exited unexpectedly with code %d" msgstr "" #, python-format msgid "failed to encode command: %s" msgstr "" #, python-format msgid "timed out while reading: %r..." msgstr "" msgid "timed out waiting for message" msgstr "" #, python-format msgid "unexpected response on required channel %r" msgstr "" #, python-format msgid "invalid \"hello\" message: %r" msgstr "ongeldig \"hallo\" bericht: %r" msgid "no \"runcommand\" capability" msgstr "" #, python-format msgid "corrupted command result: %r" msgstr "" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "" msgid "Terminated by user" msgstr "Beëindigd door gebruiker" #, python-format msgid "[command terminated by user %s]" msgstr "[opdracht beëindigd door gebruiker %s]" #, python-format msgid "[command interrupted %s]" msgstr "[opdarcht onderbroken %s]" #, python-format msgid "[command returned code %d %%s]" msgstr "[opdracht resultaat code %d %%s]" #, python-format msgid "[command completed successfully %s]" msgstr "[opdracht succesvol voltooid %s]" msgid "Running..." msgstr "Bezig..." msgid "Failed!" msgstr "Mislukt!" msgid "Clea&r Log" msgstr "" msgid "TortoiseHg Prompt" msgstr "TortoiseHg Opdrachtregel" msgid "Show Detail" msgstr "Detail weergeven" msgid "Hide Detail" msgstr "Detail verbergen" msgid "Confirm Exit" msgstr "Afsluiten bevestigen" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" "Mercurial opdracht is nog bezig.\n" "Bent u zeker dat u die wilt afbreken?" msgid "&Run" msgstr "&Uitvoeren" msgid "TortoiseHg Command Dialog" msgstr "TortoiseHg Opdrachtscherm" msgid "Command Error" msgstr "" #, python-format msgid "[Code: %d]" msgstr "" msgid "Merge" msgstr "Samenvoegen" #, python-format msgid "Merge with %s" msgstr "Voeg samen met %s" msgid "Patch Name Required" msgstr "Patchnaam Vereist" msgid "You must enter a patch name" msgstr "U moet een patchnaam ingeven" msgctxt "start progress" msgid "Commit" msgstr "Commit" msgctxt "start progress" msgid "MQ Action" msgstr "MQ Actie" msgctxt "start progress" msgid "Rollback" msgstr "Rollback" msgid "Commit Dialog Toolbar" msgstr "Commitscherm Toolbar" msgid "Branch: " msgstr "Tak: " msgid "Copy message" msgstr "Kopiëer bericht" msgid "Copy one of the recent commit messages" msgstr "Kopiëer een van de recente commit berichten" msgid "Show Issues" msgstr "Toon problemen" msgid "Please wait..." msgstr "Even geduld aub..." #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "Laden van probleem opvolger '%s' mislukt: %s" msgid "Issue Tracker" msgstr "Probleem Opvolger" msgid "Show Issues..." msgstr "Toon Problemen..." msgid "Stop" msgstr "Stoppen" msgid "### patch name ###" msgstr "### patchnaam ###" msgid "Commit changes" msgstr "Wijzigingen Committen" msgid "Commit" msgstr "Committen" msgid "Amend current revision" msgstr "Huidige revisie Verbeteren" msgid "Amend" msgstr "Verbeteren" msgid "Create a new patch" msgstr "Maak een nieuwe patch" msgid "QNew" msgstr "QNew" msgid "Refresh current patch" msgstr "Vernieuw huidige patch" msgid "QRefresh" msgstr "QRefresh" msgid "Confirm Branch Change" msgstr "Bevestig Veranderen van Tak" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "Er bestaat al een tak met naam \"%s\", laatst gebruikt in revisie %d\n" msgid "Restart &Branch" msgstr "Her&begin Tak" msgid "&Commit to current branch" msgstr "&Commit naar huidige tak" msgid "Cancel" msgstr "Annuleren" msgid "Confirm New Branch" msgstr "Bevestig Nieuwe Tak" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "Nieuwe benoemde tak \"%s\" maken met deze commit?\n" msgid "Create &Branch" msgstr "Tak Maken" msgid "Close Branch: " msgstr "Sluit Tak: " msgid "New Branch: " msgstr "Nieuwe Tak: " #, python-format msgid "Selected Options: %s" msgstr "Gekozen Opties: %s" msgid "Parent:" msgstr "Ouder:" msgid "Patch name:" msgstr "Patchnaam:" #, python-format msgid "Close %s branch" msgstr "Tak %s afsluiten" #, python-format msgid "Rollback commit to revision %d" msgstr "Rollback commit naar revisie %d" msgid "Confirm Undo" msgstr "Bevestig Undo" msgid "Discard current commit message?" msgstr "Huidig commit bericht verwerpen?" msgid "Message Translation Failure" msgstr "Bericht Vertalen gefaald" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" msgid "&Replace" msgstr "Vervangen" msgid "Nothing Committed" msgstr "Niets Gecommit" msgid "Please enter commit message" msgstr "Geef commit bericht in aub" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" "Er werd geen probleemverwijzing gevonden in het commit bericht. Het commit " "bericht dient een verwijzing naar een probleem te bevatten. U kunt dit " "instellen in de 'Probleem Opvolging' sectie van de instellingen." msgid "No files checked" msgstr "Geen bestanden aangevinkt" msgid "No modified files checkmarked for commit" msgstr "Geen gewijzigde bestanden aangevinkt voor commit" msgid "Confirm Add" msgstr "Toevoegen Bevestigen" msgid "Add selected untracked files?" msgstr "Gekozen ongetraceerde bestanden toevoegen?" msgid "Confirm Remove" msgstr "Verwijderen Bevestigen" msgid "Remove selected deleted files?" msgstr "Gekozen geschrapte bestanden verwijderen?" msgid "Nothing changed." msgstr "Niets veranderd." msgctxt "window title" msgid "Commit" msgstr "Commit" #, python-format msgid "%s - commit options" msgstr "%s - commit opties" msgid "Set username:" msgstr "Stel gebruikersnaam in" msgid "Save in Repo" msgstr "Opslaan in Repo" msgid "Save Global" msgstr "Globaal Opslaan" msgid "Set Date:" msgstr "Stel Datum in:" msgid "Update" msgstr "Bijwerken" msgid "Push After Commit:" msgstr "Push Na Commit:" msgid "Auto Includes:" msgstr "Automatisch inbegrepen:" msgid "Recurse into subrepositories (--subrepos)" msgstr "Submappen doorlopen (--subrepos)" msgid "Unable to save username" msgstr "Kan gebruikersnaam niet opslaan" msgid "Iniparse must be installed." msgstr "Iniparse moet geïnstalleerd zijn." msgid "Unable to write configuration file" msgstr "Kan niet schrijven naar instellingenbestand" msgid "Unable to save after commit push" msgstr "Kan na commit push niet opslaan" msgid "Unable to save auto include list" msgstr "Kan automatisch inbegrepen lijst niet opslaan" msgid "Unable to save recurse in subrepos." msgstr "Kan submappen doorlopen niet opslaan." msgid "Invalid date format" msgstr "Ongeldig datumformaat" msgid "No username configured" msgstr "Geen gebruikersnaam ingesteld" #, python-format msgid "%s - commit" msgstr "%s - commit" msgid "TortoiseHg Commit" msgstr "TortoiseHg Commit" msgid "Are you sure that you want to cancel the commit operation?" msgstr "Bent u zeker dat u de commit operatie wilt annuleren?" msgid "Compress changesets up to and including" msgstr "Comprimeer changesets tot en met" msgid "Onto destination" msgstr "Naar bestemming" msgid "Compress" msgstr "Comprimeren" #, python-format msgid "Compress - %s" msgstr "Comprimeren -%s" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the compress" msgstr "U mag verder gaan met comprimeren" msgid "Changes have been moved, you must now commit" msgstr "Wijzigingen zijn verplaatst, u moet nu een commit doen" msgctxt "action button" msgid "Commit" msgstr "Commit" msgid "Compress is complete, old history untouched" msgstr "Comprimeren is voltooid, oude historiek is ongewijzigd" msgid "must be specified repository" msgstr "moet de opgegeven repository zijn" msgid "must be specified 'type' in style" msgstr "moet het opgegeven 'type' in de stijl zijn" msgid "Git Commit:" msgstr "" msgid "Summary:" msgstr "Samenvatting:" msgid "User:" msgstr "Gebruiker:" msgid "Date:" msgstr "Datum:" msgid "Age:" msgstr "Leeftijd:" msgid "Branch:" msgstr "Tak:" msgid "Close:" msgstr "Sluiten:" msgid "Tags:" msgstr "Etiketten:" msgid "Graft:" msgstr "Graft:" msgid "Transplant:" msgstr "Transplant:" msgid "Obsolete state:" msgstr "" msgid "Perforce:" msgstr "Perforce:" msgid "Subversion:" msgstr "Subversion:" msgid "Converted From:" msgstr "Omgezet Vanaf:" msgid "Original Parent:" msgstr "" msgid "No items to display" msgstr "Geen onderwerpen om te tonen" msgid "Use compact view" msgstr "Gebruik compacte weergave" msgid "Patch:" msgstr "Patch:" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "Tonen van %(count)d van %(total)d onderwerpen" msgid "Select a GUI location to edit:" msgstr "Kies een plaats in de GUI om te wijzigen:" msgid "Select the toolbar or menu to change" msgstr "Kies een menu of toolbar om te wijzigen:" msgid "Tools shown on selected location" msgstr "Gereedschappen getoond op de gekozen plaats" msgid "Delete from list" msgstr "Verwijderen uit de lijst" msgid "Add to list" msgstr "Aan de lijst toevoegen" msgid "Add separator" msgstr "Scheidingslijn toevoegen" msgid "List of all tools" msgstr "Lijst van alle gereedschappen" msgid "New Tool ..." msgstr "Nieuw Gereedschap ..." msgid "Edit Tool ..." msgstr "Gereedschap Wijzigen ..." msgid "Delete Tool" msgstr "Gereedschap Verwijderen" msgid "Type" msgstr "Type" msgid "Name" msgstr "Naam" msgid "Command" msgstr "Opdracht" msgid "New hook" msgstr "Nieuwe hook" msgid "Edit hook" msgstr "Hook editeren" msgid "Delete hook" msgstr "Hook schrappen" msgid "Replace existing hook?" msgstr "Bestaande hook vervangen ?" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" "Er bestaat al een %s.%s hook.\n" "\n" "Wilt u die vervangen ?" msgid "OK" msgstr "OK" msgid "Missing information" msgstr "Ontbrekende informatie" msgid "All items" msgstr "Alle onderwerpen" msgid "Working directory" msgstr "Werkmap" msgid "All revisions" msgstr "Alle revisies" msgid "All contexts" msgstr "Alle contexten" msgid "Fixed revisions" msgstr "Gefixeerde revisies" msgid "Applied patches" msgstr "Toegepaste patches" msgid "Applied patches or qparent" msgstr "Toegepaste patches of qparent" msgid "" msgstr "" msgid "Configure Custom Tool" msgstr "Aangepast Gereedschap Instellen" msgid "Tool name" msgstr "Naam gereedschap" msgid "The tool name. It cannot contain spaces." msgstr "De naam van het gereedschap. Mag geen spaties bevatten." #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" "Het pad waar de opdracht zal uitgevoerd worden.\n" "Indien niet ingesteld dan zal de wortel van de huidige repository gebruikt " "worden.\n" " U kunt dezelfde {VRAIABELEN} gebruiken als voor de \"Opdracht\" " "instelling.\n" msgid "Tool label" msgstr "Gereedschap schermtekst" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" "De schermtekst voor het gereedschap, die zal getoond worden in het " "repowidget context menu.\n" "Als geen schermtekst ingesteld wordt zal de naam van het gereedschap als " "gebruikt worden.\n" "Als geen infotekst ingesteld is, dan zal de schermtekst ook als infotekst " "gebruikt worden." msgid "Tooltip" msgstr "Infotekst" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" "De infotekst die getoond zal worden op de gereedschapsknop.\n" "Die wordt enkel getoond als de gereedschapsknop getoond wordt\n" "op de werkbank toolbar." msgid "Icon" msgstr "Ikoon" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" "Het ikoon voor het gereedschap.\n" "U kunt om het even welk ingebouwd TortoiseHg ikoon gebruiken\n" "door deze waarde in te stellen op de naam van een geldig TortoiseHg ikoon\n" "(vb. clone, add, remove, sync, thg-logo, hg-update, enz.).\n" "U kunt deze waarde ook instellen op een absoluut pad naar\n" "om het even welk ikoon in uw bestandssysteem." msgid "On repowidget, show for" msgstr "Op repowidget, toon voor" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" "Voor welke soort revisies dit gereedschap zal geaktiveerd worden.\n" "Er wordt enkel rekening mee gehouden als het gereedschap getoond wordt\n" "in het context menu van de gekozen revisie." msgid "Show Output Log" msgstr "Toon Resultaat Log" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" "Indien geaktiveerd, toon de Resultaat Log automatisch als de opdracht " "uitgevoerd is.\n" "Standaard: Nee." msgid "You must set a tool name." msgstr "U moet een naam voor het gereedschap instellen." msgid "The tool name cannot have any spaces in it." msgstr "Geen spaties toegelaten in de naam voor het gereedschap." msgid "You must set a command to run." msgstr "U moet een opdracht kiezen om uit te voeren." msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" msgid "Configure Hook" msgstr "Hook configureren" msgid "Hook type" msgstr "Hook type" msgid "Select when your command will be run" msgstr "Kies wanneer uw opdracht zal uitgevoerd worden" msgid "The hook name. It cannot contain spaces." msgstr "De naam van de hook. Mag geen spaties bevatten." msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" "De opdracht die uitgevoerd zal worden.\n" "Om een python functie uit te voeren moet u de opdracht laten voorafgaan met " "\"python:\".\n" msgid "You must set a valid hook type." msgstr "U moet een geldig hook type instellen." msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "De hook naam mag geen spaties, tabs of '=' tekens bevatten." msgid "Console" msgstr "" msgid "File &History / Annotate" msgstr "" msgid "Show the history of the selected file" msgstr "Geef de geschiedenis van het geselecteerd bestand weer" msgid "Co&mpare File Revisions" msgstr "Vergelijk bestandsrevisies" msgid "Compare revisions of the selected file" msgstr "Vergelijk revisies van het geselecteerde bestand" msgid "Filter Histor&y" msgstr "" msgid "Query about changesets affecting the selected files" msgstr "" msgid "Diff &Changeset to Parent" msgstr "" msgid "Diff Changeset to Loc&al" msgstr "" msgid "&Diff to Parent" msgstr "Vergelijk met Ouder" msgid "Diff to &Local" msgstr "Vergelijk met &Lokale versie" msgid "View changes to current in external diff tool" msgstr "" "Bekijk wijzigingen ten opzichte van huidige revisie met extern " "vergelijkingsprogramma" msgid "&View at Revision" msgstr "Bekijk volgens Revisie" msgid "View file as it appeared at this revision" msgstr "Bekijk bestand zoals het was in deze revisie" msgid "&Save at Revision..." msgstr "Opslaan volgens Revisie..." msgid "Save file as it appeared at this revision" msgstr "Bestand opslaan zoals het was in deze revisie" msgid "Save file to" msgstr "Bestand opslaan naar" msgid "&Edit Local" msgstr "&Editeer Lokale versie" msgid "&Open Local" msgstr "&Open Lokale versie" msgid "E&xplore Local" msgstr "" msgid "Open parent folder of current file in the system file manager" msgstr "" msgid "&Copy Patch" msgstr "Patch Kopiëren" msgid "Copy &Path" msgstr "&Pad Kopiëren" msgid "Copy full path of file(s) to the clipboard" msgstr "Kopiëer het volledige pad van het(de) bestand(en) naar het klembord" msgid "&Revert to Revision..." msgstr "Omkeren naar Revisie..." msgid "Open S&ubrepository" msgstr "S&ubrepository Openen" msgid "Open the selected subrepository" msgstr "Open de gekozen subrepository" msgid "E&xplore Folder" msgstr "Map verkennen" msgid "Open the selected folder in the system file manager" msgstr "Open de gekozen map in de systeembestandsbeheerder" msgid "Open &Terminal" msgstr "&Terminal openen" msgid "Open a shell terminal in the selected folder" msgstr "Open een shell terminal in de gekozen map" msgid "Custom Tools" msgstr "Maatwerk Gereedschappen" msgid "Diff &Local" msgstr "" msgid "&View Missing" msgstr "Onbrekende bekijken" msgid "View O&ther" msgstr "Ander Bekijken..." msgid "Add &Largefiles..." msgstr "&Largefiles Toevoegen..." msgid "&Forget" msgstr "Vergeten" msgid "&Delete Unversioned..." msgstr "Niet-getraceer&de schrappen..." msgid "Confirm Delete Unversioned" msgstr "Bevestig Schrappen van Ongetraceerde" msgid "Delete the following unversioned files?" msgstr "Volgende ongetraceerde bestanden schrappen?" msgid "&Delete" msgstr "Verwij&deren" msgid "Re&move Versioned" msgstr "Getraceerde Verwijderen" msgid "&Revert..." msgstr "Omkeren..." msgid "Uncommited merge - please select a parent revision" msgstr "Niet-gecommitte samenvoeging - kies aub een ouder revisie" msgid "Revert files to local or other parent?" msgstr "Bestanden omkeren naar lokale versie of andere ouder?" msgid "&Local" msgstr "&Lokaal" msgid "&Other" msgstr "&Andere" msgid "Confirm Revert" msgstr "Omkeren bevestigen" msgid "Revert local file changes?" msgstr "Lokale bestandswijzigingen omkeren?" msgid "&Revert with backup" msgstr "Omkeren met backup" msgid "&Discard changes" msgstr "Wijgingen verwerpen" msgid "Revert the following files?" msgstr "Volgende bestanden omkeren?" msgid "&Revert" msgstr "Omkeren" msgid "&Copy..." msgstr "Kopiëren..." msgid "Re&name..." msgstr "Her&noemen..." msgid "&Ignore..." msgstr "Negeren..." msgid "Edit Re&jects" msgstr "" msgid "Manually resolve rejected patch chunks" msgstr "" msgid "De&tect Renames..." msgstr "Hernoemingen De&tecteren..." msgid "&Mark Resolved" msgstr "&Markeer als opgelost" msgid "&Mark Unresolved" msgstr "&Markeer als niet-opgelost" msgid "Restart Mer&ge" msgstr "Herstart Samenvoe&gen" msgid "Was renamed from" msgstr "Was hernoemd vanaf" msgid "Restart Merge &with" msgstr "Herstart Samenvoegen met" msgid "Display the file anyway" msgstr "Toon het bestand hoedanook" msgid "Diff not displayed: " msgstr "Vergelijking niet getoond: " #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" "Bestand is groter dan het opgegeven maximum.\n" "maxdiff = %s KB" msgid "File is binary" msgstr "Bestand is binair" msgid "File may be binary (maximum line length exceeded)" msgstr "Bestand is wellicht binair (maximum lijnlengte overschreden)" msgid "File or diffs not displayed: " msgstr "Bestand of vergelijkingen niet getoond: " msgid " (was added)" msgstr " (was toegevoegd)" #, python-format msgid " (copied from %s)" msgstr " (gecopiëerd van %s)" #, python-format msgid " (renamed from %s)" msgstr " (hernoemd vanaf %s)" msgid " (is a symlink)" msgstr " (is een symlink)" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" "Bestand of vergelijkingen niet getoond: Bestand is groter dan het opgegeven " "maximum.\n" "maxdiff = %s KB" msgid " (was deleted)" msgstr " (werd verwijderd)" msgid " (was added, now missing)" msgstr " (werd verwijderd, wordt nu gemist)" msgid " (is unversioned)" msgstr " (heeft geen versies)" msgid "exec mode has been set" msgstr "exec mode werd aangezet" msgid "exec mode has been unset" msgstr "exec mode werd afgezet" #, python-format msgid "changeset: %s" msgstr "changeset: %s" msgid "Initial revision" msgstr "Initiële revisie" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" "[WAARSCHUWING] Ongeldige subrepo revisie ID:\n" "\t%s\n" "\n" msgid "Subrepo created and set to initial revision." msgstr "Subrepo aangemaakt en op beginrevisie ingesteld." msgid "Subrepo initialized to revision:" msgstr "Subrepo geïnitialiseerd op revisie:" msgid "Subrepo removed from repository." msgstr "Subrepo verwijderd uit de repository." msgid "Previously the subrepository was at the following revision:" msgstr "" msgid "Subrepo was not changed." msgstr "Subrepo was niet gewijzigd." msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "" msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "" msgid "Subrepo state is:" msgstr "Subrepo status is:" msgid "Revision has changed to:" msgstr "Revisie is gewijzigd naar:" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "" msgid "From:" msgstr "Vanaf:" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" msgid "Subrepository not found in the working directory." msgstr "Subrepository niet gevonden in de werkmap." msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" msgid "Not a Mercurial subrepo, not previewable" msgstr "Is geen Mercurial subrepo, kan niet bekeken worden" #, python-format msgid "Error previewing subrepo: %s" msgstr "Fout tijdens bekijken subrepo: %s" msgid "Subrepo may be damaged or inaccessible." msgstr "" msgid "The subrepository is dirty." msgstr "De subrepository is onzuiver." msgid "File Status:" msgstr "Status van Bestand:" msgid "(is a changed sub-repository)" msgstr "(is een gewijzigde subrepository)" msgid "(is an unchanged sub-repository)" msgstr "(is een ongewijzigde subrepository)" msgid "(is a dirty sub-repository)" msgstr "(is een onzuivere subrepository)" msgid "(is a new sub-repository)" msgstr "(is een nieuwe subrepository)" msgid "(is a removed sub-repository)" msgstr "(is een verwijderde subrepository)" msgid "(is a changed and dirty sub-repository)" msgstr "(is een gewijzigde en onzuivere subrepository)" msgid "(is a new and dirty sub-repository)" msgstr "(is een nieuwe en onzuivere subrepository)" msgid "open..." msgstr "openen..." #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "Hg bestandshistoriek overzicht [%s] - %s" msgid "File History Log Columns" msgstr "BestandsHistoriek Log Kolommen" msgid "Back" msgstr "Terug" msgid "Forward" msgstr "Vooruit" msgid "Diff Selected &Changesets" msgstr "" msgid "&Diff Selected File Revisions" msgstr "" msgid "Show Revision &Details" msgstr "Toon Revisie &Details" msgid "Too many rows selected for menu" msgstr "Teveel rijen gekozen voor menu" msgid "File Differences Log Columns" msgstr "BestandsVerschillen Log Kolommen" msgid "Next diff" msgstr "Volgende verschil" msgid "Previous diff" msgstr "Vorig verschil" msgid "Unicode" msgstr "Unicode" msgid "Western Europe" msgstr "West-Europa" msgid "Unified Chinese" msgstr "" msgid "Traditional Chinese" msgstr "Traditioneel Chinees" msgid "Korean" msgstr "Koreaans" msgid "Japanese" msgstr "Japans" msgid "Thai" msgstr "Thais" msgid "Central and Eastern Europe" msgstr "Centraal en Oost Europa" msgid "Cyrillic" msgstr "Cyrillisch" msgid "Russian" msgstr "Russisch" msgid "Ukrainian" msgstr "Oekraïens" msgid "Greek" msgstr "Grieks" msgid "Turkish" msgstr "Turks" msgid "Arabic" msgstr "Arabisch" msgid "Hebrew" msgstr "Hebreeuws" msgid "Vietnamese" msgstr "Vietnamees" msgid "Baltic" msgstr "Baltisch" msgid "Southern Europe" msgstr "Zuid Europees" msgid "Nordic" msgstr "Scandinavisch" msgid "Celtic" msgstr "Keltisch" msgid "South-Eastern Europe" msgstr "Zuidoost Europees" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "" msgid "View change as unified diff output" msgstr "Bekijk wijzigingen als unified diff resultaat" msgid "View change in context of file" msgstr "Bekijk wijzigingen in de bestandcontext" msgid "Annotate with revision numbers" msgstr "" msgid "Next Diff" msgstr "Volgende Diff" msgid "Previous Diff" msgstr "Vorige Diff" msgid "Open shelve tool" msgstr "Open shelve gereedschap" msgid "&Auto Detect" msgstr "" msgid "Show changes from first parent" msgstr "Toon wijzigingen uit de eerste ouder" msgid "Show changes from second parent" msgstr "Toon wijzigingen uit de tweede ouder" msgid "E&ncoding" msgstr "Cod&ering" msgid "&Search in Current File" msgstr "Zoek in Huidig Bestand" msgid "Search in All &History" msgstr "Zoek in Alle &Historie" msgid "Go to Line" msgstr "Ga naar regel" #, python-format msgid "Enter line number (1 - %d)" msgstr "Enter regel nummer(1 -%d)" msgid "Show &Author" msgstr "Toon &Auteur" msgid "Show &Date" msgstr "Toon &Datum" msgid "Show &Revision" msgstr "Toon &Revisie" msgid "Annotate Op&tions" msgstr "Op&ties voor Annoteren" msgid "Search Selected Text" msgstr "Zoek Gekozen Tekst" msgid "In Current &File" msgstr "In Huidig Bestand" msgid "In &Current Revision" msgstr "In Huidige Revisie" msgid "In &Original Revision" msgstr "In &Originele Revisie" msgid "In All &History" msgstr "In Alle &Historie" msgid "Go to" msgstr "Ga naar" msgid "View File at" msgstr "Bestand Bekijken volgens" msgid "Diff File to" msgstr "" msgid "&Originating Revision" msgstr "&OorsprongsRevisie" msgid "&Parent Revision" msgstr "" #, python-format msgid "&Parent Revision (%d)" msgstr "Ouder revisie (%d)" msgid "&Mark Excluded Changes" msgstr "" msgid "(excluded from the next commit)" msgstr "" msgid "Interrupted graft operation found" msgstr "Onderbroken graft operatie gevonden" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" "Er is een onderbroken graft operatie gvonden.\n" "\n" "U kunt geen andere graft operatie uitvoeren tgenzij u de onderbroken graft " "operatie eerst afbreekt." msgid "Continue or abort interrupted graft operation?" msgstr "Onderbroken graft operatie voortzetten of afbreken ?" msgid "To graft destination" msgstr "Naar graft bestemming" msgid "Use my user name instead of graft committer user name" msgstr "" "Gebruik mijn gebruikersnaam in plaats van graft committer gebruikersnaam" msgid "Use current date" msgstr "Gebruik huidige datum" msgid "Append graft info to log message" msgstr "Voeg graft ingo aan log bericht" msgid "Graft" msgstr "Graft" msgid "Abort" msgstr "Afbreken" #, python-format msgid "Graft - %s" msgstr "Graft - %s" msgid "Graft changeset" msgstr "Graft changeset" #, python-format msgid "Graft changeset #%d of %d" msgstr "Graft changeset #%d of %d" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" msgid "You may continue or start the graft" msgstr "U mag de graft verderzetten of starten" msgid "Graft is complete" msgstr "Graft is compleet" msgid "Graft failed" msgstr "Graft mislukt" msgid "Graft aborted" msgstr "Graft afgebroken" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" "Graft heeft samenvoegingsconflicten gegenereeerd die moeten opgelost worden" msgid "You may continue the graft" msgstr "U mag de graft verderzetten" msgid "Exiting with an unfinished graft is not recommended." msgstr "Het is niet aangeraden om te eindigen met een onvoltooide graft." msgid "Consider aborting the graft first." msgstr "Overweeg om de graft eerst af te breken." msgid "&Exit" msgstr "V&erlaten" msgid "### regular expression search pattern ###" msgstr "### reguliere expressie zoekpatroon ###" msgid "Regexp:" msgstr "Regexp:" msgid "Ignore case" msgstr "Hoofd/kleine letters negeren" msgid "Search" msgstr "Zoek" msgid "Working Copy" msgstr "Werkmap" msgid "All History" msgstr "Alle historie" msgid "Report only the first match per file" msgstr "Rapporteer enkel de eerste vondst per bestand" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "Volg copiën en naamsveranderingen" msgid "Includes:" msgstr "Inbegrepen:" msgid "Excludes:" msgstr "Uitgesloten:" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" "Komma-gescheiden lijst van bestandspatronen voor uitsluiting. Patronen voor " "uitsluiting worden toegepast na insluit-patronen." msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" "Komma-gescheiden lijst van in te sluiten bestandpatronen. Standaard wordt de " "hele repository doorzocht." #, python-format msgid "\"%s\" removed from search history" msgstr "\"%s\" verwijderd uit de zoekhistoriek" #, python-format msgid "\"%s\" removed from path history" msgstr "\"%s\" verwijderd uit de pad historiek" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "grep: ongeldig overeenkomstenpatroon: %s\n" #, python-format msgid "grep: %s\n" msgstr "grep: %s\n" #, python-format msgid "%d matches found" msgstr "%d overeenkomsten gevonden" msgid "No matches found" msgstr "Geen overeenkomsten gevonden" msgid "Searching" msgstr "Bezig met zoeken" msgid "history" msgstr "geschiedenis" msgid "Interrupted" msgstr "Onderbroken" msgid "files" msgstr "bestanden" #, python-format msgid "Skipping %s, unable to read" msgstr "%s wordt overgeslagen, kan het niet lezen" msgid "Vi&ew File" msgstr "B&ekijk Bestand" msgid "&View Changeset" msgstr "Bekijk Changeset" msgid "Annotate &File" msgstr "Bestand Annoteren" msgid "File" msgstr "Bestand" msgid "Line" msgstr "Regel" msgid "Rev" msgstr "Rev" msgid "User" msgstr "Gebruiker" msgid "Match Text" msgstr "Overeenkomst Tekst" msgid "TortoiseHg Search" msgstr "TortoiseHg Zoek" #, python-format msgid "Detect Copies/Renames in %s" msgstr "Ontdek Copiën/Hernoemingen in %s" msgid "Unrevisioned Files" msgstr "Bestanden zonder Revisies" msgid "Refresh file list" msgstr "Bestandslijst verversen" #, python-format msgid "Min Similarity: %d%%" msgstr "Min. Gelijkheid: %d%%" msgid "Only consider deleted files" msgstr "Neem enkel verwijderde bestanden in overweging" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "Vink af om alle revisies als bronnen voor een kopie te beschouwen" msgid "Find Renames" msgstr "Vind Hernoemingen" msgid "Find copy and/or rename sources" msgstr "Vindt kopie en/of hernoem bronnen" msgid "Candidate Matches" msgstr "Kandidaat overeenkomsten" msgid "Accept All Matches" msgstr "Aanvaardt alle overeenkomsten" msgid "Accept Selected Matches" msgstr "Aanvaardt gekozen overeenkomsten" msgid "Differences from Source to Dest" msgstr "Verschillen tussen Bron en Doel" msgid "Search already in progress" msgstr "Zoek is al bezig" msgid "Cannot start a new search" msgstr "Kan geen nieuwe zoek starten" msgid "No files to find" msgstr "Geen bestanden om te vinden" msgid "There are no files that may have been renamed" msgstr "Er zijn bestanden die mogelijks hernoemd zijn" msgid "Multiple sources chosen" msgstr "Meerdere bronnen gekozen" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" "U hebt meerdere hernoemingen gekozen voor het doelbestand:\n" "%s. Wordt afgebroken!" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" "%s en %s hebben identieke inhoud\n" "\n" #. i18n: percent format #, python-format msgid "%d%%" msgstr "%d%%" msgid "Source" msgstr "Bron" msgid "Dest" msgstr "Doel" msgid "% Match" msgstr "% Overeenkomst" msgid "Sending Email" msgstr "Bezig met Email versturen" msgid "Email" msgstr "Email" msgid "To:" msgstr "Naar:" msgid "Cc:" msgstr "Cc:" msgid "In-Reply-To:" msgstr "In-Reply-To:" msgid "Message identifier to reply to, for threading" msgstr "Bericht identificatie om naar te antwoorden, voor conversaties" msgid "Flag:" msgstr "Vlag:" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" "Hg patches (zoals gegenereerd door de export opdracht) zijn compatibel met " "de meeste patch programma's. Ze bevatten een hoofding met de belangrijkste " "changeset metadata." msgid "Send changesets as Hg patches" msgstr "Verzend changesets als Hg patches" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" "Git patches kunnen binaire bestanden beschrijven, kopies, en " "permissiewijzigingen, maar ontvangers kunnen ze mogelijks niet gebruiken als " "ze niet met git of Mercurial werken." msgid "Use extended (git) patch format" msgstr "Gebruik uitgebreid (git) patch formaat" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" "Mercurial hoofdingen wissen verwijdert gebruikersnamen en ouder informatie. " "Enkel nuttig als de ontvanger Mercurial niet gebruikt (en de hoofdingen niet " "wil zien)." msgid "Plain, do not prepend Hg header" msgstr "Gewoon, zet er geen Hg hoofding voor" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" "Bundels slaan volledige changesets op in binaire vorm. Upstream gebruikers " "kunnen een pull doen ervan. Dit is de veiligste manier om changesets uit te " "wisselen tussen Mercurial gebruikers." msgid "Send single binary bundle, not patches" msgstr "Zend één enkele binaire bundel, geen patches" msgid "send patches as part of the email body" msgstr "zendt patches als onderdeel van de email tekst" msgid "body" msgstr "email tekst" msgid "send patches as attachments" msgstr "zend patches als aanhangsels" msgid "attach" msgstr "maak bijlage" msgid "send patches as inline attachments" msgstr "Verzend patches als inline bijvoegsels" msgid "inline" msgstr "ingebed" msgid "add diffstat output to messages" msgstr "voeg diffstat resultaten toe aan berichten" msgid "diffstat" msgstr "diffstat" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" "De beschrijving van de patchreeks wordt als een samenvatting verzonden in " "het eerste bericht met [PATCH 0 van N] als onderwerp. Daarin zouden de " "effecten moeten beschreven worden van de gehele patchreeks. Als u een " "bundel verstuurt dan vormen deze velden het onderwerp van het bericht en de " "berichttekst zelf. Vlaggen is een komma-gescheiden lijst van etiketten die " "als voorvoegsel in het onderwerp van de berichten gezet worden." msgid "Write patch series (bundle) description" msgstr "Schrijf een patch reeks (bundel) beschrijving" msgid "Subject:" msgstr "Onderwerp:" msgid "Changesets" msgstr "Changesets" msgid "Select &All" msgstr "Kies &Alle" msgid "Select &None" msgstr "Kies Gee&n enkele" msgid "Edit" msgstr "Aanpassen" msgid "Preview" msgstr "Op voorhand bekijken" msgid "&Settings" msgstr "In&stellingen" msgid "Send &Email" msgstr "Verzend &Email" msgid "&Close" msgstr "Sluiten" #, python-format msgid "Ignore filter - %s" msgstr "Negatie filter - %s" msgid "Glob" msgstr "Glob" msgid "Regexp" msgstr "Regexp" msgid "Add" msgstr "Toevoegen" msgid "Edit File" msgstr "Bestand aanpassen" msgid "Ignore Filter" msgstr "Negatiefilter" msgid "Untracked Files" msgstr "Niet-opgevolgde Bestanden" msgid "Backspace or Del to remove row(s)" msgstr "Backspace of Del om rij(en) te verwijderen" msgid "Add ignore filter..." msgstr "Voeg negatiefilter toe..." msgid "selected files" msgstr "gekozen bestanden" msgid "Ignore " msgstr "Negeren " msgid "Invalid glob expression" msgstr "Ongeldige glob expressie" msgid "Invalid regexp expression" msgstr "Ongeldige regexp expressie" msgid "Unable to read repository status" msgstr "Kan repository status niet lezen" msgid "New file created" msgstr "\"Nieuw bestand aangemaakt" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" "TortoiseHg heeft een nieuw .hgignore bestand aangemaakt. Wilt u dit bestand " "toevoegen aan de broncode repository?" msgid "Unable to write .hgignore file" msgstr "Kan .hgignore bestand niet wegschrijven" msgid "Copy working directory files from skeleton" msgstr "" msgid "Create special files (.hgignore, ...)" msgstr "" msgid "Make repo compatible with Mercurial <1.7" msgstr "Maak de repo compatibel met Mercurial <1.7" msgid "New Repository" msgstr "Nieuwe Repository" msgid "&Create" msgstr "" msgid "Unable to create a config file" msgstr "Kan instellingenbestand niet aanmaken" msgid "Insufficient access rights." msgstr "Onvoldoende toegangsrechten." msgid "Show Log" msgstr "Toon Resultaten" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" "Sommige van de gekozen bestanden zijn groter dan 10 MB. U zou uw " "schijfruimte misschien efficiënter kunnen gebruiken door ze als " "grotebestanden toe te voegen, die enkel de recentste revisie van elk bestand " "in uw lokale repository opslaan, en de oudere revisies beschikbaar houdt op " "de server. Wilt u deze bestanden toevoegen als grotebestanden?" msgid "Add as &Largefiles" msgstr "Voeg toe als Grote Bestanden" msgid "Add as &Normal Files" msgstr "Voeg toe als Normale Bestanden" msgid "Invalid Patterns" msgstr "" msgid "Failed to process largefiles.patterns." msgstr "" msgid "Word docs (*.doc *.docx)" msgstr "" msgid "PDF docs (*.pdf)" msgstr "" msgid "Excel files (*.xls *.xlsx)" msgstr "" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "" msgid "Refresh lock information" msgstr "" msgid "Lock a file not described in .hglocks" msgstr "" msgid "Stop current operation" msgstr "Stop huidige bewerking" msgid "Locked And Lockable Files:" msgstr "" msgid "Path" msgstr "Pad" msgid "Locking User" msgstr "" msgid "Purpose" msgstr "" msgid "Simplelock extension not enabled" msgstr "" msgid "Please enable and configure simplelock" msgstr "" msgid "Open a (nonmergable) file you wish to be locked" msgstr "" msgid "File was not within current repository" msgstr "" #, python-format msgid "Locking %s" msgstr "" #, python-format msgid "Unlocking %s" msgstr "" msgid "Refreshing locks..." msgstr "" #, python-format msgid "Lock of %s successful" msgstr "" #, python-format msgid "Lock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s successful" msgstr "" msgid "Ready, double click to lock or unlock" msgstr "" msgid "Ready" msgstr "" msgid "You can only release your own locks" msgstr "" msgid "Find revisions matching fields of:" msgstr "Zoek revisies die overeenkomen met velden van:" msgid "Revision to Match:" msgstr "Revisies om mee overeen te komen:" msgid "Fields to match:" msgstr "Velden om mee overeen te komen:" msgid "Summary (first description line)" msgstr "Samenvatting (eerste regel omschrijving)" msgid "Description" msgstr "Omschrijving" msgid "Author" msgstr "Auteur" msgid "Date" msgstr "Datum" msgid "Files" msgstr "Bestanden" msgid "Diff contents" msgstr "Inhoud van de vergelijking" msgid "Subrepo states" msgstr "Status van de subrepo" msgid "Branch" msgstr "Tak" msgid "Phase" msgstr "Fase" msgid "&Match" msgstr "Doe overeenkomen" #, python-format msgid "Find matches - %s" msgstr "Vind overeenkomsten - %s" msgid "Revisions to Match:" msgstr "Revisies om mee overeen te komen:" #, python-format msgid "Match any of %d revisions" msgstr "Doe overeenkomen met om het even welke van %d revisies" msgid "Unknown revision!" msgstr "Onbekende revisie !" msgid "Parse Error!" msgstr "Fout bij het ontleden!" #, python-format msgid "Merge - %s" msgstr "Samenvoegen - %s" msgid "Do you want to exit?" msgstr "Wilt u het programma verlaten?" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" "Om de samenvoeging af te werken moet u de werkmap committen.\n" "\n" "Om de samenvoeging te annuleren kunt u bijwerken naar een van de samenvoeg " "ouder revisies." msgid "Prepare to merge" msgstr "Klaarmaken om samen te voegen" msgid "Verify merge targets and ensure your working directory is clean." msgstr "" "Bekijk samenvoegdoelen en verzeker u ervan dat uw werkmap geen wijzigingen " "bevat." msgid "Not a head revision!" msgstr "Geen hoofd revisie!" msgid "Merge from (other revision)" msgstr "Samenvoegen vanaf (andere revisie)" msgid "Merge to (working directory)" msgstr "Voeg samen naar (werkmap)" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" "De werkmap is al samengevoegd. Ga door of " "verwerp de bestaande samenvoeging." msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" "Vooraleer samen te voegen moet u een commit " "doen, of shelve naar een patch, of de " "wijzigingen verwerpen." msgid "Or use:" msgstr "Of gebruik:" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "Forceer samenvoeging met uitstaande wijzigingen (-f/--force)" msgid "Discard all changes from the other revision" msgstr "" msgid "&Discard" msgstr "&Verwerpen" msgid "Confirm Discard Changes" msgstr "Bevestig Wijzigingen Verwerpen" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" "De wijzigingen van revisie %s en alle niet-samengevoegde ouders zulen " "verworpen worden.\n" "\n" "Weet u zeker dat dat is wat u wilt?" msgctxt "working dir state" msgid "Clean" msgstr "Ongewijzigd" msgid "Merging..." msgstr "Bezig met samenvoegen..." msgid "Automatically advance to next page when merge is complete." msgstr "" "Ga automatisch verder naar de volgende pagina als het samenvoegen voltooid " "is." #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" "%d bestanden gewijzigd in beide takken moeten opgelost worden" msgid "" "No merge conflicts, ready to commit or review" msgstr "" msgid "Commit merge results" msgstr "Commit resultaten van het samenvoegen" msgid "Commit Options" msgstr "Commit Opties" msgid "Commit Now" msgstr "Commit Nu" msgid "Commit Later" msgstr "Commit Later" msgid "Merge changeset" msgstr "Samenvoeg-changeset" msgid "Syntax Highlighting" msgstr "Syntax Highlighting" msgid "Paste &Filenames" msgstr "Plak Bestandsnamen" msgid "App&ly Format" msgstr "Formaat Toepassen" msgid "C&onfigure Format" msgstr "C&onfigureer formaat" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "" "Er werden %s blokken verworpen, patchbestand aanpassen samen met de " "verwerpingen?" msgid "&Commit to Queue..." msgstr "" msgid "Create &New Queue..." msgstr "" msgid "&Rename Active Queue..." msgstr "" msgid "&Delete Queue..." msgstr "" msgid "&Purge Queue..." msgstr "" msgid "Create Patch Queue" msgstr "" msgid "New patch queue name" msgstr "Nieuwe patch wachtrij naam" msgid "Create" msgstr "Aanmaken" msgid "Rename Patch Queue" msgstr "" #, python-format msgid "Rename patch queue '%s' to" msgstr "Patch wachtrij '%s' hernoemen naar" msgid "Rename" msgstr "Hernoemen" msgid "Delete Patch Queue" msgstr "" msgid "Delete reference to" msgstr "Verwijder referentie naar" msgid "Delete" msgstr "Verwijderen" msgid "Purge Patch Queue" msgstr "" msgid "Remove patch directory of" msgstr "" msgid "Purge" msgstr "Uitwissen" msgid "Rename Patch" msgstr "" #, python-format msgid "Rename patch %s to:" msgstr "Hernoem patch %s naar:" msgid "no guards" msgstr "geen guards" msgid "Patch Queue" msgstr "Patch Queue" msgctxt "MQ QPush" msgid "Push" msgstr "Push" msgid "Apply one patch" msgstr "Eén patch toepassen" msgctxt "MQ QPush" msgid "Push all" msgstr "Push alles" msgid "Apply all patches" msgstr "Alle patches toepassen" msgid "Pop" msgstr "Pop" msgid "Unapply one patch" msgstr "Eén patch wegnemen" msgid "Pop all" msgstr "Pop alle patches" msgid "Unapply all patches" msgstr "Alle patches wegnemen" msgid "Go &to Patch" msgstr "" msgid "&Apply Only This Patch" msgstr "" msgid "Apply only the selected patch" msgstr "" msgid "&Finish Patch" msgstr "Patch Afwerken" msgid "Move applied patches into repository history" msgstr "" msgid "&Delete Patches..." msgstr "" msgid "Delete selected patches" msgstr "Verwijder gekozen patches" msgid "Re&name Patch..." msgstr "Patch Her&noemen..." msgid "Set &Guards..." msgstr "" msgid "Configure guards for selected patch" msgstr "Guards instellen voor de gekozen patch" msgid "Patch Queue Actions Toolbar" msgstr "Patch Wachtrij Acties Toolbar" msgid "Configure guards" msgstr "Guards Instellen" #, python-format msgid "Input new guards for %s:" msgstr "Geef nieuwe guard in voor %s:" msgid "Confirm patch queue switch" msgstr "Patch wachtrij wissel bevestigen" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "Wilt u echt de patch wachtrij '%s' activeren?" #, python-format msgid "Guards: %d/%d" msgstr "Guards: %d/%d" msgid "MQ options" msgstr "MQ opties" msgid "Force push or pop (--force)" msgstr "Forceer push of pop (--force)" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "Te doen Perforce Changelists - %s" msgid "Submitting p4 changelist..." msgstr "Bezig met voorleggen van een p4 changelist..." msgid "Reverting p4 changelist..." msgstr "Bezig met samenvoegen van een p4 changelist..." msgid "Patch Branch Toolbar" msgstr "Patch Tak Toolbar" msgid "Merge all pending dependencies" msgstr "Alle te doen afhankelijkheden samenvoegen" msgid "Backout current patch branch" msgstr "Backout huidige patch tak" msgid "Backport part of a changeset to a dependency" msgstr "Backport deel van een changeset naar een afhankelijkheid" msgid "Start a new patch branch" msgstr "Start een nieuwe patch tak" msgid "Edit patch dependency graph" msgstr "Graaf van patch afhankelijkheden aanpassen" msgid "will be closed" msgstr "zal gesloten worden" #, python-format msgid "needs merge of %i heads\n" msgstr "moet samengevoegd worden met %i hoofden\n" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "moet samengevoegd worden met %s (via %s)\n" #, python-format msgid "needs merge with %s\n" msgstr "moet samengevoegd worden met %s\n" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "vergelijkingsbasis moet bijgewerkt worden naar tip %s\n" msgid "&Goto (update workdir)" msgstr "&Ga naar (bijwerken werkmap)" msgid "&Merge" msgstr "Sa&menvoegen" msgid "No patch branch selected" msgstr "Geen patch tak gekozen" msgid "No editor found" msgstr "Geen editeerprogramma gevonden" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" "Mercurial kon geen editeerprogramma vinden. Stel Mercurial aub in om een op " "uw systeem geïnstalleerd editeerprogramma te gebruiken." msgid "Graph" msgstr "Graaf" msgid "Status" msgstr "Status" msgid "Title" msgstr "Titel" msgid "Message" msgstr "Bericht" msgid "New Patch Branch" msgstr "Nieuwe Patch Tak" msgid "Patch message:" msgstr "Patch bericht:" msgid "Patch date:" msgstr "Patch datum:" msgid "Patch user:" msgstr "Patch gebruiker:" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "&Review Versturen" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "Ongeldige Instellingen - De ReviewBoard server is niet ingesteld" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "Ongeldige instellingen - Geef aub een ReviewBoard gebruikersnaam op" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" "Ongekdige reviewboard plugin. Download aub de Mercurial reviewboard plugin " "versie 3.5 of hoger van de website hieronder.\n" "\n" "%s" msgid "Review Board" msgstr "Review Board" msgid "Password:" msgstr "Voer wachtwoord in" msgid "Error" msgstr "Fout" #, python-format msgid "Review draft posted to %s\n" msgstr "Review ontwerp verstuurd naar %s\n" #, python-format msgid "Review published to %s\n" msgstr "Review gepubliceerd naar %s\n" msgid "Success" msgstr "Succes" msgid "Repository ID:" msgstr "Repository ID:" msgid "Post Review" msgstr "Review Versturen" msgid "Review ID:" msgstr "Review ID:" msgid "Update the fields of this existing request" msgstr "Velden bijwerken van dit bestaand verzoek" msgid "Update Review" msgstr "Review Bijwerken" msgid "Create diff with all outgoing changes" msgstr "Vergelijking aanmaken met alle uitgaande wijzigingen" msgid "Create diff with all changes on this branch" msgstr "Vergelijking aanmaken met alle wijzigingen in deze tak" msgid "Publish request immediately" msgstr "Verzoek onmiddellijk publiceren" msgid "%p%" msgstr "%p%" msgid "Connecting to Review Board..." msgstr "Bezig met verbinden met Review Board..." msgid "Target:" msgstr "Doel:" msgid "Do not modify working copy (-k/--keep)" msgstr "" #, python-format msgid "Prune - %s" msgstr "" msgid "&Prune" msgstr "" msgid "No unknown files found" msgstr "Geen onbekende bestanden gevonden" msgid "No ignored files found" msgstr "Geen genegeerde bestanden gevonden" msgid "No trash files found" msgstr "Geen restbestanden gevonden" msgid "Delete empty folders" msgstr "Lege mappen verwijderen" msgid "Preserve files beginning with .hg" msgstr "Bestanden behouden die beginnend met .hg" #, python-format msgid "%s - purge" msgstr "%s - wegzuiveren" msgid "Checking" msgstr "Bezig met kontroleren" msgid "Ready to purge." msgstr "Klaar om weg te zuiveren." #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "Verwijderen %d onbekend bestand" msgstr[1] "Verwijderen %d onbekende bestanden" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "Verwijderen %d genegeerd bestand" msgstr[1] "Verwijderen %d genegeerde bestanden" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "Verwijderen %d bestand in .hg/Trashcan" msgstr[1] "Verwijderen %d bestanden in .hg/Trashcan" msgid "Confirm file deletions" msgstr "Schrappen bestanden bevestigen" msgid "Are you sure you want to delete these files and/or folders?" msgstr "Weet u zeker dat u deze bestanden en/of mappen wilt verwijderen?" msgid "Deletion failures" msgstr "Fouten tijdens verwijderen" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "Kan %d bestand of map niet verwijderen" msgstr[1] "Kan %d bestanden of mappen niet verwijderen" msgid "Deleting trash folder..." msgstr "Bezig met verwijderen afval map..." #, python-format msgid "Deleted %d files" msgstr "%d Bestanden verwijderd" #, python-format msgid "Deleted %d files and %d folders" msgstr "%d Bestanden en %d mappen verwijderd" msgid "Delete Patches" msgstr "" msgid "Remove patches from queue?" msgstr "Patches uit de wachtrij verwijderen?" msgid "Keep patch files" msgstr "Patch bestanden behouden" #, python-format msgid "Patch fold - %s" msgstr "Patch samenvouwen - %s" msgid "New patch message:" msgstr "Nieuw patch bericht:" msgid "Patches to fold" msgstr "Patches om samen te vouwen" msgid "&Undo" msgstr "Ongedaan Maken" msgid "&Redo" msgstr "Opnieuw doen" msgid "Cu&t" msgstr "Knippen" msgid "&Copy" msgstr "Kopiëren" msgid "&Paste" msgstr "Plakken" msgid "&Editor Options" msgstr "&Editor Opties" msgid "&Wrap" msgstr "Tekst omlopen" msgctxt "wrap mode" msgid "&None" msgstr "Geen" msgid "&Word" msgstr "&Woord" msgid "&Character" msgstr "Letterteken" msgid "White&space" msgstr "Witruimte" msgid "&Visible" msgstr "Zichtbaar" msgid "&Invisible" msgstr "Onzichtbaar" msgid "&AfterIndent" msgstr "Na Indentie" msgid "&TAB Inserts" msgstr "&Tabulaties" msgid "&Auto" msgstr "&Auto" msgid "&TAB" msgstr "&TAB" msgid "&Spaces" msgstr "Spaties" msgid "EOL &Visibility" msgstr "EOL zichtbaarheid" msgid "EOL &Mode" msgstr "EOL &Modus" msgid "&Windows" msgstr "&Windows" msgid "&Unix" msgstr "&Unix" msgid "&Mac" msgstr "&Mac" msgid "&Auto-Complete" msgstr "&Auto-Vervolledigen" msgid "### regular expression ###" msgstr "### reguliere expressie ###" msgid "Regular expression search pattern" msgstr "Reguliere expressie zoekpatroon" msgid "Wrap search" msgstr "Zoeken vanaf het begin" msgid "Prev" msgstr "Vorige" msgid "Next" msgstr "Volgende" msgid "Unable to read file" msgstr "Niet mogelijk om bestand te lezen" msgid "Could not open the specified file for reading." msgstr "Kan het specifieke bestand niet openen om te lezen." msgid "This appears to be a binary file." msgstr "Dit blijkt een binary bestand te zijn." msgid "An error occurred while reading the file." msgstr "" msgid "Text Translation Failure" msgstr "Vertalen tekst gefaald" msgid "Could not translate the file content from native encoding." msgstr "" msgid "Several characters would be lost." msgstr "" msgid "Unable to write file" msgstr "" msgid "Could not translate the file content to native encoding." msgstr "" msgid "Could not open the specified file for writing." msgstr "" msgid "An error occurred while writing the file." msgstr "" msgid "Try refreshing your repository." msgstr "Probeer uw repository te verversen." #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
                                                                    Please edit your config" msgstr "" "Fout tekst \"%(arg0)s\" in %(arg1)s
                                                                    Wil aub uw instellingen " #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
                                                                    Please
                                                                    fix your config" msgstr "" "Fout in Instellingen: \"%(arg0)s\",
                                                                    uw instellingen aub" #, python-format msgid "Operation aborted:

                                                                    %(arg0)s." msgstr "Operatie afgebroken:

                                                                    %(arg0)s." msgid "Repository is locked" msgstr "De repository is gelockt" msgid "hint:" msgstr "hint:" msgid "Repository Error" msgstr "Repository Fout" msgid "No visual editor configured" msgstr "Er is geen visual editor ingesteld" msgid "Please configure a visual editor." msgstr "Stel een visual editor in aub." msgid "Editor launch failure" msgstr "Lanceren van de editor is mislukt." msgid "Failed to open path in terminal" msgstr "Kon pad niet openen in een terminal" #, python-format msgid "\"%s\" is not a valid directory" msgstr "\"%s\" is geen geldige map" #, python-format msgid "Invalid configuration: %s" msgstr "" msgid "Unable to start the following command:" msgstr "Kon het volgende commando niet starten:" msgid "No shell configured" msgstr "Geen shell ingesteld" msgid "A terminal shell must be configured" msgstr "Er moet een terminal shell ingesteld zijn" msgid "Please enter a username" msgstr "Gelieve een gebruikersnaam in te voeren" msgid "You must identify yourself to Mercurial" msgstr "U moet zich identificeren voor Mercurial" msgid "Unable to translate input to local encoding." msgstr "Kan ingave niet vertalen naar lokale codering" msgid "Checkmark files to add" msgstr "Vink bestanden aan om toe te voegen" msgid "Checkmark files to forget" msgstr "Vink bestanden aan om te vergeten" msgid "Forget" msgstr "Vergeet" msgid "Checkmark files to revert" msgstr "Vink bestanden aan om te reverten" msgid "Revert" msgstr "Revert" msgid "Checkmark files to remove" msgstr "Vink bestanden aan om te verwijderen" msgid "Remove" msgstr "Verwijderen" #, python-format msgid "%s - hg %s" msgstr "%s - hg %s" msgid "Do not save backup files (*.orig)" msgstr "Backup bestanden niet opslaan (*.orig)" msgid "Force removal of modified files (--force)" msgstr "Forceer verwijderen van gewijzigde bestanden (--force)" msgid "Add &Largefiles" msgstr "Voeg G&rotebestanden toe" msgid "No files selected" msgstr "Geen bestanden gekozen" msgid "No operation to perform" msgstr "Geen operatie op uit te voeren" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" "U heeft een of meer bestanden gekozen die gewijzigd werden. Standaard " "zullen die bestanden niet verwijderd worden. Wat wilt u doen?" msgid "Remove &Unmodified Files" msgstr "Verwijderen &Alle Ongewijzigde Bestanden" msgid "Remove &All Selected Files" msgstr "Verwijderen &Alle Gekozen Bestanden" msgid "Rebase changeset and descendants" msgstr "Rebase changeset en nakomelingen" msgid "To rebase destination" msgstr "Doel om te rebasen" msgid "Swap source and destination" msgstr "" msgid "Keep original changesets (--keep)" msgstr "" msgid "Keep original branch names (--keepbranches)" msgstr "" msgid "Collapse the rebased changesets (--collapse)" msgstr "" msgid "Rebase entire source branch (-b/--base)" msgstr "" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "" "Rebase ongepubliceerde bovenop Subversion hoofd (overschrijf bron, doel)" msgid "Rebase" msgstr "Rebase" #, python-format msgid "Rebase - %s" msgstr "Rebase - %s" msgid "" "Before rebase, you must
                                                                    commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the rebase" msgstr "U mag de rebase verderzetten" msgid "Rebase is complete" msgstr "Rebase is voltooid" msgid "Rebase failed" msgstr "Rebase is mislukt" msgid "Rebase aborted" msgstr "Rebase afgebroken" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" "Rebase veroorzaakte samenvoeg-conflicten die moeten opgelost worden" msgid "Exiting with an unfinished rebase is not recommended." msgstr "Eindigen met een onvoltooide rebase is niet aangeraden." msgid "Consider aborting the rebase first." msgstr "Overweeg om eerst de rebase af te breken." #, python-format msgid "Merge rejected patch chunks into %s" msgstr "Voeg verworpen patch blokken samen in %s" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "Markeer dit blok als opgelost, ga naar volgende onopgelost blok" msgid "Mark this chunk as unresolved" msgstr "Merkeer dit blok als onopgelost" msgid "Reload File" msgstr "" msgid "Are you sure you want to reload this file?" msgstr "" msgid "All unsaved changes will be lost." msgstr "Alle niet-opgeslagen wijzigingen zullen verloren gaan." msgid "Warning" msgstr "Waarschuwing" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" "U heeft alle verworpen patch blokken as opgelost gemarkeerd en toch heeft u " "het bestand niet gewijzigd in het paneel voor aanpassen.\n" "\n" "Dit betekent waarschijnlijk dat er geen enkele code van de verworpen patch " "blokken in het bestand terechtgekomen zijn.\n" "\n" "Bent u zeker dat u het bestand wilt laten zoals het is en beschouwt u alle " "verworpen patch blokken als opgelost?\n" "\n" "Als u dit doet kunnen ze bijvoorbeeld uit het rek gewist worden, wat zou " "betekenen dat u ze voor altijd kwijt zou zijn!\n" "\n" "Klik Ja om het bestand te aanvaarden zoals het is of Nee om verder te gaan " "met het oplossen van de verworpen patch blokken." msgid "Copy source -> destination" msgstr "Kopiëer bron -> doel" msgid "Copy Error" msgstr "Fout bij Kopiëren" msgid "Rename Error" msgstr "Fout bij Hernoemen" msgid "Select Source File" msgstr "Kies Bron bestand" msgid "Select Source Folder" msgstr "Bronmap selecteren" msgid "Source does not exist." msgstr "" msgid "The source must be within the repository tree." msgstr "De bron moet zich binnen de repository structuur bevinden." msgid "The destination must be within the repository tree." msgstr "Het doel moet zich binnen de repository structuur bevinden." msgid "Destination file already exists." msgstr "Het doelbestand bestaat al." msgid "Are you sure you want to overwrite it ?" msgstr "Weet u zeker dat u het wilt overschrijven ?" #, python-format msgid "Copy - %s" msgstr "Kopiëren - %s" #, python-format msgid "Rename - %s" msgstr "Hernoemen - %s" msgid "Show all" msgstr "Alles tonen" msgid "### revision set query ###" msgstr "### revisie set query ###" msgid "Clear current query and query text" msgstr "Veeg de huidige query en de query tekst uit" msgid "Trigger revision set query" msgstr "Switch het filteren van niet-overeenkomende changesets" msgid "Open advanced query editor" msgstr "Open geavanceerde query editor" msgid "Delete selected query from history" msgstr "Verwijder gekozen query uit de historiek" msgid "filter" msgstr "filter" msgid "Toggle filtering of non-matched changesets" msgstr "Wissel filteren van niet-overeenkomende changesets" msgid "Show/Hide hidden changesets" msgstr "Toon/Verberg verborgen changesets" msgid "Toggle graft relations visibility" msgstr "" msgid "Keyword Search" msgstr "Zoek op Sleutelwoord" msgid "Revision Set" msgstr "Revisie Set" msgid "(unsaved)" msgstr "" msgid "Display graph the named branch only" msgstr "Toon enkel de graaf van de benoemde tak" msgid "Display only active branches" msgstr "Toon enkel aktieve takken" msgid "Display closed branches" msgstr "Toon gesloten takken" msgid "Include all ancestors" msgstr "Alle voorouders meenemen" msgctxt "column header" msgid "Graph" msgstr "Graaf" msgctxt "column header" msgid "Rev" msgstr "Rev" msgctxt "column header" msgid "Branch" msgstr "Tak" msgctxt "column header" msgid "Description" msgstr "Omschrijving" msgctxt "column header" msgid "Author" msgstr "Auteur" msgctxt "column header" msgid "Tags" msgstr "Etiketten" msgctxt "column header" msgid "Latest tags" msgstr "Laatste etiketten" msgctxt "column header" msgid "Node" msgstr "Knooppunt" msgctxt "column header" msgid "Git Commit" msgstr "" msgctxt "column header" msgid "Age" msgstr "Leeftijd" msgctxt "column header" msgid "Local Time" msgstr "Lokale Tijd" msgctxt "column header" msgid "UTC Time" msgstr "UTC Tijd" msgctxt "column header" msgid "Changes" msgstr "Wijzigingen" msgctxt "column header" msgid "Converted From" msgstr "Omgezet Vanuit" msgctxt "column header" msgid "Phase" msgstr "Fase" msgctxt "column header" msgid "Filename" msgstr "Bestandsnaam" msgid "Searching..." msgstr "Bezig met zoeken ..." #, python-format msgid "filling (%d)" msgstr "bezig met opvullen (%d)" msgid "Mercurial User" msgstr "Mercurial Gebruiker" msgid "Repository Registry" msgstr "Repository Register" msgid "Show &Paths" msgstr "Toon &Paden" msgid "Show S&hort Paths" msgstr "Toon Korte Paden" msgid "&Scan Repositories at Startup" msgstr "&Scan Repositories tijdens Opstarten" msgid "Scan &Remote Repositories" msgstr "Scan Exte&rne Repositories" msgid "&Refresh Repository List" msgstr "&Repository Lijst Verversen" msgid "Refresh the Repository Registry list" msgstr "Ververs de lijst van het Repository-register" msgid "&Open" msgstr "&Openen" msgid "Open the repository in a new tab" msgstr "Open de repository in een nieuw tabblad" msgid "&Open All" msgstr "Alles &Openen" msgid "Open all repositories in new tabs" msgstr "Open alle repositories in een nieuw tabblad" msgid "New &Group" msgstr "Nieuwe &Groep" msgid "Create a new group" msgstr "Maak een nieuwe groep aan" msgid "Rename the entry" msgstr "Hernoem het element" msgid "Settin&gs" msgstr "In&stellingen" msgid "View the repository's settings" msgstr "Bekijk de repository instellingen" msgid "Re&move from Registry" msgstr "Verwijder uit het Register" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" "Verwijder het knooppunt en al zijn subknooppunten. Repositories worden niet " "gewist van de schijf." msgid "Clon&e..." msgstr "Kloon" msgid "Clone Repository" msgstr "Repository Klonen" msgid "E&xplore" msgstr "Verkennen" msgid "Open the repository in a file browser" msgstr "Open de repository in de bestandverkenner" msgid "&Terminal" msgstr "&Terminal" msgid "Open a shell terminal in the repository root" msgstr "Open de shell terminal in de basismap van de repository" msgid "&Add Repository..." msgstr "Repository Toevoegen..." msgid "Add a repository to this group" msgstr "Voeg een repository toe in deze groep" msgid "A&dd Subrepository..." msgstr "Subrepository Toevoegen..." msgid "Convert an existing repository into a subrepository" msgstr "Een bestaande repository omzetten in een subrepository" msgid "Remo&ve Subrepository..." msgstr "" msgid "Remove this subrepository from the current revision" msgstr "" msgid "Copy the root path of the repository to the clipboard" msgstr "Kopiëer het basispad van de repository naar het klembord" msgid "Sort by &Name" msgstr "Sorteer op Naam" msgid "Sort the group by short name" msgstr "Sorteer de groep op korte naam" msgid "Sort by &Path" msgstr "Sorteer op Pad" msgid "Sort the group by full path" msgstr "Sorteer de groep op de volle naam" msgid "&Sort by .hgsub" msgstr "Sorteer op .hgsub" msgid "Order the subrepos as in .hgsub" msgstr "Sorteer de subrepos zoals in .hgsub" msgid "Select repository directory to add" msgstr "Kies een repository map om toe te voegen" msgid "Select an existing repository to add as a subrepo" msgstr "Kies een bestaande repository om als subrepo toe te voegen" msgid "Cannot add subrepository" msgstr "Kan subrepository niet toevoegen" #, python-format msgid "%s is not a valid repository" msgstr "%s is geen geldige repository" #, python-format msgid "\"%s\" is not a folder" msgstr "\"%s\" is geen map" msgid "A repository cannot be added as a subrepo of itself" msgstr "U kunt een repository niet toevoegen als subrepo van zichzelf" #, python-format msgid "" "The selected folder:

                                                                    %s

                                                                    is not inside the target repository." "

                                                                    This may be allowed but is greatly discouraged.
                                                                    If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" "De gekozen map:

                                                                    %s

                                                                    is niet binnen de doel repository." "

                                                                    Dit kan toegelaten zijn maar wordt ten zeerste afgeraden.
                                                                    Als u " "een niet-triviale subrepository mapping wilt uitvoeren dan moet u het ." "hgsub bestand manueel aanpassen." msgid "Cannot open repository" msgstr "Kan repository niet openen" #, python-format msgid "The selected repository:

                                                                    %s

                                                                    cannot be open!" msgstr "Kan de gekozen repository

                                                                    %s

                                                                    niet openen!" msgid "Subrepository already exists" msgstr "Subrepository bestaat al" #, python-format msgid "" "The selected repository:

                                                                    %s

                                                                    is already a subrepository of:" "

                                                                    %s

                                                                    as: \"%s\"" msgstr "" "De gekozen repository

                                                                    %s

                                                                    is al een subrepository van

                                                                    " "%s

                                                                    als \"%s\"" msgid "Failed to add subrepository" msgstr "Toevoegen subrepository is mislukt" #, python-format msgid "Cannot open the .hgsub file in:

                                                                    %s" msgstr "Kan bestand .hgsub niet openen in:

                                                                    %s" msgid "Failed to add repository" msgstr "Toevoegen repository is mislukt" #, python-format msgid "The .hgsub file already contains the line:

                                                                    %s" msgstr "Bestand .hgsub bevat al een lijn met:

                                                                    %s" msgid "Subrepo added to .hgsub file" msgstr "Subrepo toegevoegd in bestand .hgsub" #, python-format msgid "" "The selected subrepo:

                                                                    %s

                                                                    has been added to the .hgsub " "file of the repository:

                                                                    %s

                                                                    Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" "De gekozen subrepo:

                                                                    %s

                                                                    werd toegevoegd aan het .hgsub " "bestand van de repository:

                                                                    %s

                                                                    Denk eraan dat u om het " "toevoegen van de subrepo af te werken u nog steeds een commit moet " "doen van de wijzigingen in het .hgsub bestand om het toevoegen van de " "subrepo te bevestigen." #, python-format msgid "Cannot update the .hgsub file in:

                                                                    %s" msgstr "Kan bestand .hgsub niet bijwerken in:

                                                                    %s" msgid "Could not open .hgsub file" msgstr "Kan het .hgsub bestand niet openen" msgid "Cannot read the .hgsub file.

                                                                    Subrepository removal failed." msgstr "" msgid "Subrepository not found" msgstr "" msgid "" "The selected subrepository was not found on the .hgsub file.

                                                                    Perhaps it " "has already been removed?" msgstr "" msgid "&Yes" msgstr "&Ja" msgid "&No" msgstr "&Nee" msgid "Remove the selected repository?" msgstr "" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" msgid "Subrepository removed from .hgsub" msgstr "" msgid "" "The selected subrepository has been removed from the .hgsub file.

                                                                    Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" msgid "Could not update .hgsub file" msgstr "" msgid "Cannot update the .hgsub file.

                                                                    Subrepository removal failed." msgstr "" #, python-format msgid "Unsupported repository type (%s)" msgstr "Repository type (%s) wordt niet ondersteund" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "Kan geen niet-Mercurial repositories of subrepositories openen" msgid "New Group" msgstr "Nieuwe Groep" msgid "Confirm Delete" msgstr "Bevestig Verwijderen" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "Groep '%s' en al zijn elementen Verwijderen?" msgid "Could not get subrepository list" msgstr "Kon repository lijst niet bekomen" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

                                                                    %s" msgstr "" "Kon geen lijst bekomen van de subrepositories voor de repository in: " "

                                                                    %s" msgid "Could not open some subrepositories" msgstr "Kon sommige repositories niet openen" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

                                                                    %s

                                                                    The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

                                                                    %s" msgstr "" "Kon de lijst van subrepositories voor de repository in:

                                                                    %s

                                                                    niet laden. De volgende subrepositories kunnen ontbreken, corrupt " "zijn of in een inconsistente toestand en kunnen niet benaderd worden: " "

                                                                    %s" msgid "Updating repository registry" msgstr "Repository register wordt bijgewerkt" #, python-format msgid "Loading repository %s" msgstr "Repository %s wordt geladen" msgid "Repository Registry updated" msgstr "Repository register bijgewerkt" msgid "Close tab" msgstr "Tabblad sluiten" msgid "Close other tabs" msgstr "Andere tabbladen sluiten" msgid "Undo close tab" msgstr "Tabblad sluiten ongedaan maken" msgid "Reopen last closed tab" msgstr "Laatste gesloten tabblad heropenen" msgid "Undo close other tabs" msgstr "Sluiten andere tabbladen ongedaan maken" msgid "Reopen last closed tab group" msgstr "Laatste gesloten tabbladgroep heropenen" msgid "Failed to open repository" msgstr "Openen van de repository mislukt" msgid "&Sort" msgstr "&Sorteren" #, python-format msgid "Local Repository %s" msgstr "Lokale Repository %s" #, python-format msgid "" "An exception happened while loading the subrepos of:

                                                                    \"%s\"

                                                                    " msgstr "" "Een uitzondering deed zich voor tijdens het laden van de subrepos van: " "

                                                                    \"%s\"

                                                                    " #, python-format msgid "The exception error message was:

                                                                    %s

                                                                    " msgstr "De foutmelding van de uitzondering was:

                                                                    %s

                                                                    " msgid "Click OK to continue or Abort to exit." msgstr "Klik OK om verder te gaan of Afbreken om af te sluiten." msgid "Error loading subrepos" msgstr "Fout bij het laden van de subrepos" msgid "Unable to update repository name" msgstr "Kan repository naam niet bijwerken" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "" "Er deed zich een fout voor tijdens het bijwerken van het hgrc bestand van de " "repository (%s)" msgid "default" msgstr "standaard" msgid "C&hoose Log Columns..." msgstr "Kies Log Kolommen..." msgid "&Resize Columns" msgstr "" #, python-format msgid "Goto ancestor of %s and %s" msgstr "Ga naar voorouder van %s en %s" #, python-format msgid "Can't find revision '%s'" msgstr "Kan revisie '%s' niet vinden" msgid "Drag to change order" msgstr "Sleep om volgorde te wijzigen" msgid "Workbench Log Columns" msgstr "Werkbank Log Kolommen" msgctxt "tab tooltip" msgid "Revision details" msgstr "Revisie details" msgctxt "tab tooltip" msgid "Commit" msgstr "Commit" msgctxt "tab tooltip" msgid "Search" msgstr "Zoeken" msgctxt "tab tooltip" msgid "Console log" msgstr "" msgctxt "tab tooltip" msgid "Synchronize" msgstr "Synchroniseren" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "Patch Tak" #, python-format msgid "%s " msgstr "%s " #, python-format msgid "Found %d incoming changesets" msgstr "%d Inkomende changesets gevonden" msgid "Pull" msgstr "Pull" msgid "Pull incoming changesets into your repository" msgstr "Pull inkomende changesets in de repository" msgid "Reject incoming changesets" msgstr "Verwerp inkomende changesets" #, python-format msgid "Push current branch (%s)" msgstr "Push huidige tak (%s)" #, python-format msgid "Push up to current revision (#%d)" msgstr "Push tot en met huidige revisie (#%d)" #, python-format msgid "Push up to revision #%d" msgstr "Push tot en met revisie #%d" msgid "Push all" msgstr "Push alles" msgid "no outgoing changesets" msgstr "geen uitgaande changesets" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "geen uitgaande changesets in huidige tak (%s) / %d in totaal" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "" "geen uitgaande changesets tot en met de huidige revisie (#%d) / %d in totaal" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "geen uitgaande changesets tot en met revisie #%d / %d in totaal" #, python-format msgid "%d outgoing changesets" msgstr "%d uitgaande changesets" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "%d uitgaande changesets in huidige tak (%s) / %d in totaal" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "" "%d uitgaande changesets tot en met huidige revisie (#%d) / %d in totaal" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "%d uitgaande changesetst tot en met revisie #%d / %d in totaal" msgid "Nothing to push" msgstr "Er is niets om te pushen" msgid "No revision found" msgstr "" #, python-format msgid "%s - verify repository" msgstr "%s - verify repository" #, python-format msgid "%s - recover repository" msgstr "%s - herstel repository" msgid "No transaction available" msgstr "Geen vertaling beschikbaar" msgid "There is no rollback transaction available" msgstr "Er is geen rollback transactie beschikbaar" msgid "Undo last commit?" msgstr "Laatste commit ongedaan maken?" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "" "Recentste commit (%d) ongedaan maken, en wijzigingen in bestand behouden?" msgid "Undo last transaction?" msgstr "Laatste transactie ongedaan maken?" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "Rollback doen naar revisie %d (%s ongedaan maken)?" msgid "Unable to determine working copy revision\n" msgstr "Kan de revisie van de werkmap niet bepalen\n" msgid "Remove current working revision?" msgstr "Huidige werkmap revisie verwijderen?" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" "Uw huidige werkmap revisie (%d) zal verwijderd worden door deze rollback, " "waarbij niet-gecommitte wijzigingen achterblijven.\n" " Doorgaan?" msgid "Tab cannot exit" msgstr "" msgid "Pus&h" msgstr "Pus&h" msgid "Push to &Here" msgstr "Push naar &Hier" msgid "Push Selected &Branch" msgstr "Push Gekozen Tak" msgid "Push &All" msgstr "Push &Alles" msgid "&Update..." msgstr "Bijwerken..." msgid "Bro&wse at Revision" msgstr "Bladeren in Revisie" msgid "&Merge with Local..." msgstr "Samenvoegen met Lokale revisie" msgid "&Tag..." msgstr "E&tiketteren..." msgid "Boo&kmark..." msgstr "Bladwijzer maken..." msgid "Top&ic..." msgstr "" msgid "Sig&n..." msgstr "" msgid "&Backout..." msgstr "&Backout..." msgid "Revert &All Files..." msgstr "" msgid "Copy &Hash" msgstr "&Hash Kopiëren" msgid "E&xport" msgstr "E&xporteren" msgid "E&xport Patch..." msgstr "Patch E&xporteren..." msgid "&Email Patch..." msgstr "Patch V&ersturen..." msgid "&Archive..." msgstr "&Archiveren..." msgid "&Bundle Rev and Descendants..." msgstr "&Bundle Rev en Nakomelingen..." msgid "Change &Phase to" msgstr "Wijzig Fase naar" msgid "&Graft to Local..." msgstr "&Graft naar Lokaal..." msgid "Modi&fy History" msgstr "Historiek Wijzigen" msgid "&Unapply Patch" msgstr "" msgid "Import to &MQ" msgstr "Importeer in MQ" msgid "MQ &Options" msgstr "" msgid "&Rebase..." msgstr "&Rebase..." msgid "&Prune..." msgstr "" msgid "&Strip..." msgstr "&Strip..." msgid "Post to Re&view Board..." msgstr "Zend naar Re&view Board..." msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "Exte&rn Bijwerken..." msgid "Write diff file" msgstr "Vergelijkingsbestand wegschrijven..." msgid "Unable to write diff file" msgstr "Kan vergelijkingsbestand niet wegschrijven" msgid "Unable to compress history" msgstr "Kan historie niet comprimeren" msgid "Selected changeset pair not related" msgstr "Gekozen paar changesets is niet gerelateerd" msgid "Visual Diff..." msgstr "Visuele Vergelijking..." msgid "Export Diff..." msgstr "Vergelijking Exporteren..." msgid "Export Selected..." msgstr "Exporteren Gekozen..." msgid "Email Selected..." msgstr "Email Gekozen..." msgid "Copy Selected as Patch" msgstr "Kopiëer Gekozene als Patch" msgid "Archive DAG Range..." msgstr "" msgid "Export DAG Range..." msgstr "DAG Bereik Exporteren..." msgid "Email DAG Range..." msgstr "DAG Bereik via email versturen..." msgid "Bundle DAG Range..." msgstr "DAG Bereik bundelen..." msgid "Bisect - Good, Bad..." msgstr "Bisect - Goed, Slecht..." msgid "Bisect - Bad, Good..." msgstr "Bisect - Slecht, Goed..." msgid "Compress History..." msgstr "Historie Comprimeren" msgid "Rebase..." msgstr "" msgid "Goto common ancestor" msgstr "Ga naar gemeenschappelijke voorouder" msgid "Graft Selected to local..." msgstr "Graft keuze naar loakel rev..." msgid "&Prune Selected..." msgstr "" msgid "Post Selected to Review Board..." msgstr "Verstuur keuzes naar Review Board" msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "" msgid "Apply onto original parent" msgstr "" msgid "Apply only this patch" msgstr "" msgid "Fold patches..." msgstr "Patches samenvouwen..." msgid "Delete patches..." msgstr "Patches verwijderen..." msgid "Rename patch..." msgstr "Patch hernoemen..." msgid "Pull to here..." msgstr "Pull naar hier..." msgid "Visual diff..." msgstr "Visuele vergelijking..." msgid "Export patch" msgstr "Patch exporteren" msgid "Patch Files (*.patch)" msgstr "Patch Bestanden (*.patch)" msgid "Cannot export revision" msgstr "Kan revisie niet exporteren" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" "Kan revisie %s niet exporteren naar bestand: \n" "\n" "%s\n" msgid "There is already an existing folder with that same name." msgstr "Er bestaat al een map met dezelfde naam." msgid "Replace" msgstr "Vervangen" msgid "Append" msgstr "Achteraan toevoegen" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" "Er bestaan al patchbestanden voor %d revisies (%s) op de gekozen plaats " "(%s).\n" "\n" msgid "What do you want to do?\n" msgstr "Wat wilt u doen?\n" msgid "Replace the existing patch files.\n" msgstr "Vervang de bestaande patchbestanden\n" msgid "Append the changes to the existing patch files.\n" msgstr "Voeg de wijzigingen toe achteraan aan de bestaande patchbestanden.\n" msgid "Abort the export operation.\n" msgstr "De export operatie afbreken.\n" msgid "Patch files already exist" msgstr "De patchbestanden bestaan al" msgid "Patch exported" msgstr "Patch is geëxporteerd" #, python-format msgid "" "Revision #%d (%s) was exported to:

                                                                    %s%s%s" msgstr "" "Revisie #%d (%s) werd geëxporteerd naar:

                                                                    %s%s%s" msgid "Patches exported" msgstr "De patches zijn geëxporteerd" #, python-format msgid "%d patches were exported to:

                                                                    %s" msgstr "%d patches werden geëxporteerd naar:

                                                                    %s" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

                                                                    Are you sure you want to use revert?

                                                                    (use " "update to checkout another revision)" msgstr "" "Alle bestanden omkeren zal de wijzigingen teniet doen en de betrokken " "bestanden in een gewijzigde staat achterlaten.

                                                                    Bent u zeker dat u " "omkeren wilt gebruiken ?

                                                                    (gebruik bijwerken (update) om een andere " "revisie uit te lezen)" msgid "Filter b&y" msgstr "" msgid "&Ancestors and Descendants" msgstr "" msgid "A&uthor" msgstr "" msgid "&Branch" msgstr "" msgid "&More Options..." msgstr "" msgid "Unable to merge" msgstr "Kan niet samenvoegen" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "U kunt een revisie niet met zichzelf samenvoegen" msgid "Unable to backout" msgstr "Kan backout niet uitvoeren" msgid "Write bundle" msgstr "Bundel wegschrijven" msgid "Backwards phase change requested" msgstr "Achterwaartse fase-wijziging verzocht" msgid "Do you really want to make this revision secret?" msgstr "Wilt u deze revisie echt secret maken?" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" "Een \"draft\" revisie \"secret\" maken is over het algemeen " "een veilige operatie.\n" "\n" "Hoewel er enkele zaken zijn om op te letten:\n" "\n" "- van \"secret\" revisies wordt geen push gedaan. Dit kan moeilijkheden " "veroorzaken als u\n" "naar een secret subrepo revisie verwijst.\n" "\n" "- Als u deze revisie gepullt hebt vanaf een niet-publicerende server kan het " "zijn dat die\n" "teruggebracht wordt naar \"draft\" als u opnieuw een pull doet van " "die bepaalde server.\n" "\n" "Wees aub voorzichtig!" msgid "&Make secret" msgstr "&Maak secret" msgid "&Cancel" msgstr "Annuleren" msgid "Do you really want to force a backwards phase transition?" msgstr "Wilt u echt een achterwaartse fase overgang forceren?" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" "U probeert een achterwaartse fase aanpassing te doen voor revisie %d,\n" "van \"%s\" naar \"%s\".\n" "\n" "Echter, \"%s\" is een fase van een lager nivuea dan \"%s\".\n" "\n" "De fase achterwaarts aanpassen is niet aangeraden.\n" "Het kan bijvoorbeeld als resultaat hebben dat u meer dan\n" "één hoofd heeft als u een revisie wijzigt die u al naar de\n" "server gepushed heeft.\n" "\n" "Wees voorzichtig aub!" msgid "&Force" msgstr "&Forceren" msgid "Cannot import selected revision" msgstr "Kan de gekozen revisie niet importeren" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" "De gekozen revisie (rev #%d) kan niet geïmporteerd worden omdat ze geen " "afstammeling is van qparent (rev #%d)" msgid "Invalid command" msgstr "Ongeldig commando" msgid "The selected command is empty" msgstr "Het geselecteerde commando is leeg" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" msgid "Failed to execute custom TortoiseHg command" msgstr "" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "" msgid "Failed to execute custom command" msgstr "Uitvoeren maatwerk opdracht gefaald" #, python-format msgid "The command \"%s\" could not be executed." msgstr "De opdracht \"%s\" kon niet uitgevoerd worden." #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" "De volgende fout werd teruggegeven:\n" "\n" "\"%s\"\n" "\n" "Kontroleer aub of het pad van de de opdracht geldig is en dat het een " "geldige toepassing is." msgid "&Edit Toolbar" msgstr "Werkbalk be&werken" msgid "&Refresh" msgstr "Ve&rversen" msgid "&Filter Toolbar" msgstr "&Filter Toolbar" #, python-format msgid "TortoiseHg: %s" msgstr "" msgid "S&tatus Bar" msgstr "" #, python-format msgid "Resolve Conflicts - %s" msgstr "Conflicten Oplossen - %s" msgid "Local revision information" msgstr "Informatie over lokale revisie" msgid "Other revision information" msgstr "Informatie over andere revisie" msgid "Unresolved conflicts" msgstr "Onopgeloste conflicten" msgid "Mercurial Re&solve" msgstr "Mercurial Re&solve" msgid "Attempt automatic (trivial) merge" msgstr "Automatisch (triviale) samenvoegingen proberen" msgid "Tool &Resolve" msgstr "Tool &Resolve" msgid "Merge using selected merge tool" msgstr "Samenvoegen met gekozen samenvoeg-programma" msgid "&Take Local" msgstr "Kies Lokale revisie" msgid "Accept the local file version (yours)" msgstr "Aanvaardt de lokale versie van het bestand (yours)" msgid "Take &Other" msgstr "Kies Andere revisie" msgid "Accept the other file version (theirs)" msgstr "Aanvaardt het andere bestand (theirs)" msgid "&Mark as Resolved" msgstr "&Markeer als Opgelost" msgid "Mark this file as resolved" msgstr "Markeer dit bestand als opgelost" msgid "Diff &Local to Ancestor" msgstr "Vergelijk &Lokaal met Voorouder" msgid "&Diff Other to Ancestor" msgstr "Vergelijk Ander met Voorouder" msgid "Resolved conflicts" msgstr "Opgeloste conflicten" msgid "&Edit File" msgstr "Bewerk Bestand" msgid "Edit resolved file" msgstr "Opgelost bestand aanpassen" msgid "3-&Way Diff" msgstr "3-&Wegs Vergelijking" msgid "Visual three-way diff" msgstr "Visuele drie-wegs Vergelijking" msgid "Visual diff between resolved file and first parent" msgstr "\"Visuele vergelijking tussen opgelost bestand en eerste ouder" msgid "&Diff to Other" msgstr "Vergelijk met Ander" msgid "Visual diff between resolved file and second parent" msgstr "Visuele vergelijking tussen opgelost bestand en tweede ouder" msgid "Mark as &Unresolved" msgstr "Markeer als Onopgelost" msgid "Mark this file as unresolved" msgstr "Markeer dit bestand al onopgelost" msgid "Detected merge/diff tools:" msgstr "Gevonden samenvoeg/vergelijkingsprogramma's:" msgid "Command output" msgstr "Resultaat van de opdracht" msgid "Unable to show subrepository files" msgstr "Kan bestanden van subrepository niet tonen" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" "Visuele vergelijkingen voor bestanden in subrepositories zijn niet " "ondersteund. Ze zullen niet getoond worden." msgid "There are merge conflicts to be resolved" msgstr "Er zijn samenvoegconflicten die moeten opgelost worden" msgid "All conflicts are resolved." msgstr "Alle conflicten zijn opgelost." msgid "There are no conflicting file merges." msgstr "Er zijn geen bestandssamenvoegingen met conflicten." msgid "Exit without finishing resolve?" msgstr "Verlaten zonder de opslossingen af te werken?" msgid "Unresolved conflicts remain. Are you sure?" msgstr "Er blijven onopgeloste conflicten over. Bent u zeker?" msgid "E&xit" msgstr "Verlaten" msgid "Ext" msgstr "Ext" msgid "Repository" msgstr "Repository" msgid "" msgstr "" msgid "File List Toolbar" msgstr "Bestandslijst Toolbar" msgid "Ma&nifest Mode" msgstr "" msgid "Show all version-controlled files in tree view" msgstr "" msgid "&Flat List" msgstr "" msgid "### filter text ###" msgstr "### filter tekst ###" msgid "Changed by &This Commit" msgstr "" msgid "Show files changed by this commit" msgstr "" msgid "Compare to &1st Parent" msgstr "" msgid "Compare to &2nd Parent" msgstr "" msgid "Toggle parent to be used as the base revision" msgstr "" msgid "List Optio&ns" msgstr "" #, python-format msgid "%s - Revision Details (%s)" msgstr "%s - Revisie Details (%s)" #, python-format msgid "Revert - %s" msgstr "Omkeren - %s" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "" msgid "Revert all files to this revision" msgstr "Alle bestanden omkeren naar deze revisie" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "" msgid "null revision (i.e. remove file(s))" msgstr "" msgid "Changeset:" msgstr "Changeset:" msgid "Child:" msgstr "Kind:" msgid "Predecessors:" msgstr "" msgid "Successors:" msgstr "" msgid "Head is closed!" msgstr "Hoofd is gesloten!" msgid "Changesets where username contains string." msgstr "Changeset waarin de gebruikersnaam de tekenreeks bevat." msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" "Zoek in het commmit bericht, de gebruikersnaam, an de namen van gewijzigde " "bestanden af naar tekenreeks." msgid "Like \"keyword(string)\" but accepts a regex." msgstr "Zoals \"keyword(tekenreeks)\" maar aanvaardt een reguliere expressie." msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" "Geen changesets gevonden in de opgegeven repository of in de standaard push " "lokatie." msgid "The named bookmark or all bookmarks." msgstr "De genoemde bladwijzer of alle bladwijzers." msgid "The named tag or all tags." msgstr "Het opgegeven etiket of alle etiketten." msgid "Changeset is tagged." msgstr "Changeset heeft een etiket gekregen." msgid "Changeset is a named branch head." msgstr "Changeset is een benoemde tak." msgid "Changeset is a merge changeset." msgstr "Changeset is een samenvoeg changeset." msgid "Changeset is closed." msgstr "Changeset is gesloten." msgid "" "Changesets within the interval, see help dates" msgstr "" msgid "Greatest common ancestor of the two changesets." msgstr "Grootste gezamenlijke voorouder van de twee changesets." msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" "Vindt revisies die \"overeenkomen\" met een of meer bestanden uit de gegeven " "set revisies." msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" msgid "Changesets which modify files matched by pattern." msgstr "Changesets die bestanden wijzigen die overeenkomen met het patroon." msgid "Changesets which add files matched by pattern." msgstr "Changesets die bestanden toevoegen die overeenkomen met het patroon." msgid "Changesets which remove files matched by pattern." msgstr "Changesets die bestanden verwijderen die overeenkomen met het patroon." msgid "Changesets containing files matched by pattern." msgstr "Changesets die bestanden bevatten die overeenkomen met het patroon." msgid "All changesets belonging to the branches of changesets in set." msgstr "Alle changesets die behoren tot de takken van changesets in de set." msgid "Members of a set with no children in set." msgstr "Leden van een set die geen kinderen in de set hebben." msgid "Changesets which are descendants of changesets in set." msgstr "Changesets die afstammelingen zijn van changesets in de set." msgid "Changesets that are ancestors of a changeset in set." msgstr "Changesets die voorouders zijn van een changeset in de set." msgid "Child changesets of changesets in set." msgstr "Changesets die kinderen zijn van changesets in de set." msgid "The set of all parents for all changesets in set." msgstr "De set van alle ouders van alle changesets in de set." msgid "First parent for all changesets in set, or the working directory." msgstr "Eerste ouder voor alle changesets in de set of in de werkmap." msgid "Second parent for all changesets in set, or the working directory." msgstr "Tweede ouder voor alle changesets in de set of in de werkmap." msgid "Changesets with no parent changeset in set." msgstr "Changesets zonder ouder changeset in de set." msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" "Een lege set, als er geen enkele revisie in de set gevonden is; anders alle " "revisies in de set." msgid "Changeset with lowest revision number in set." msgstr "Changeset met het laagste revisienummer in de set." msgid "Changeset with highest revision number in set." msgstr "Changeset met het hoogste revisienummer in de set." msgid "First n members of a set." msgstr "Eerste n leden van een set." msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" "Sorteer de set volgens sleutels. De standaard sorteervolgorde is oplopend, " "geef een sleutel als \"-sleutel\" op voor dalende volgorde." msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "" "Een alias voor \"::.\" (voorouders van de eerste ouder van de werkmap)." msgid "All changesets, the same as 0:tip." msgstr "Alle changesets, hetzelfde als 0:tip." msgid "Revision Set Query" msgstr "Revisie Set Query" msgid "all revisions converted from subversion" msgstr "alle revisies geconverteerd vanuit Subversion" msgid "changeset which represents converted svn revision" msgstr "changeset die een geconverteerde Subversion revisie voorstelt" msgid "Common sets" msgstr "Gemeenschappelijke sets" msgid "File pattern sets" msgstr "Bestandspatroon sets" msgid "Set Ancestry" msgstr "Set Voorouders" msgid "Set Logic" msgstr "Set Logica" msgid "" "help " "revsets" msgstr "" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" "\n" "Onderbreken met klavier, wordt afgebroken.\n" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "kan bestand \"%s\" niet lezen. Genegeerd.\n" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" "thg: opdracht '%s' is dubbelzinnig:\n" " %s\n" #, python-format msgid "thg: unknown command '%s'\n" msgstr "thg: onbekende opdracht '%s'\n" #, python-format msgid "thg %s: %s\n" msgstr "thg %s: %s\n" #, python-format msgid "thg: %s\n" msgstr "thg: %s\n" #, python-format msgid "abort: %s!\n" msgstr "afbreken: %s\n" #, python-format msgid "abort: %s\n" msgstr "afgebroken: %s\n" #, python-format msgid "(%s)\n" msgstr "" msgid "option --config may not be abbreviated!" msgstr "" msgid "invalid arguments" msgstr "ongeldige argumenten" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "niet-herkend profileringsformaat '%s' - Genegeerd\n" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" "lsprof niet beschikbaar - installeer vanaf http://codespeak.net/svn/user/" "arigo/hack/misc/lsprof/" msgid "repository root directory or symbolic path name" msgstr "repository basis map of symbolische padnaam" msgid "enable additional output" msgstr "extra resultaten activeren" msgid "suppress output" msgstr "resultaten onderdrukken" msgid "display help and exit" msgstr "toon hulp en sluit af" msgid "set/override config option (use 'section.name=value')" msgstr "" msgid "enable debugging output" msgstr "" msgid "start debugger" msgstr "start de debugger" msgid "print command execution profile" msgstr "afdrukken uitvoeringsprofiel van opdracht" msgid "do not fork GUI process" msgstr "GUI proces niet afsplitsen" msgid "always fork GUI process" msgstr "GUI proces altijd afsplitsen" msgid "read file list from file" msgstr "bestandslijst uitlezen bestand" msgid "read file list from file encoding utf-8" msgstr "bestandslijst uitlezen uit utf-8 gecodeerd bestand" msgid "thg about" msgstr "thg about" msgid "thg add [FILE]..." msgstr "thg add [BESTAND]..." msgid "revision to annotate" msgstr "revisie om te annoteren" msgid "open to line" msgstr "openen op regel" msgid "initial search pattern" msgstr "initiëel zoekpatroon" msgid "thg annotate" msgstr "thg annotate" #, python-format msgid "invalid line number: %s" msgstr "" msgid "revision to archive" msgstr "revisie om te archiveren" msgid "thg archive" msgstr "thg archive" msgid "merge with old dirstate parent after backout" msgstr "samenvoeging met oude dirstate ouder na backout" msgid "parent to choose when backing out merge" msgstr "ouder om te kiezen bij backout van de samenvoeging" msgid "revision to backout" msgstr "revisie om backout van te doen" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "thg backout [OPTIE]... [[-r] REV]" msgid "thg bisect" msgstr "thg bisect" msgid "revision" msgstr "revisie" msgid "thg bookmarks [-r REV] [NAME]" msgstr "" msgid "only one new bookmark name allowed" msgstr "" msgid "the clone will include an empty working copy (only a repository)" msgstr "de kloon zal een lege werkmap hebben (enkel een repository)" msgid "revision, tag or branch to check out" msgstr "revisie, etiket of tak om checkout van te doen" msgid "include the specified changeset" msgstr "de opgegeven changeset insluiten" msgid "clone only the specified branch" msgstr "enkel de opgegeven tak klonen" msgid "use pull protocol to copy metadata" msgstr "gebruik pull protocol om gegevens te kopiëren" msgid "use uncompressed transfer (fast over LAN)" msgstr "gebruik ongecomprimeerde overdracht (snel over LAN)" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "" msgid "record user as committer" msgstr "registreer de gebruiker als de committer" msgid "record datecode as commit date" msgstr "registreer de datumcode als de commit datum" msgid "thg commit [OPTIONS] [FILE]..." msgstr "thg commit [OPTIES] [BESTAND]..." msgid "thg debugblockmatcher" msgstr "" msgid "thg debugbugreport [TEXT]" msgstr "thg debugbugreport [TEXT]" msgid "thg debugconsole" msgstr "" msgid "thg debuglighthg" msgstr "" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "" msgid "no command specified" msgstr "" msgid "thg drag_copy SOURCE... DEST" msgstr "thg drag_copy BRON... DOEL" msgid "thg drag_move SOURCE... DEST" msgstr "thg drag_move BRON... DOEL" msgid "a revision to send" msgstr "een revisie om te verzenden" msgid "thg email [REVS]" msgstr "thg email [REVS]" msgid "use only one form to specify the revision" msgstr "gebruik slechts één vorm om een revisie op te geven" msgid "select the specified revision" msgstr "" msgid "side-by-side comparison of revisions" msgstr "" msgid "thg filelog [OPTION]... FILE" msgstr "" msgid "requires a single filename" msgstr "" msgid "thg forget [FILE]..." msgstr "thg forget [BESTAND]..." msgid "revisions to graft" msgstr "revisie voor graft" msgid "thg graft [-r] REV..." msgstr "thg graft [-r] REV..." msgid "You must provide revisions to graft" msgstr "U moet revisies aanleveren voor graft" msgid "ignore case during search" msgstr "negeer grote/kleine letters tijdens zoeken" msgid "thg grep" msgstr "thg grep" msgid "thg guess" msgstr "thg guess" msgid "thg help [COMMAND]" msgstr "thg help [OPDRACHT]" msgid "global options:" msgstr "globale opties:" msgid "use \"thg help\" for the full list of commands" msgstr "gebruik \"thg help\" om de volledige lijst met opdrachten te zien" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "" "gebruik \"thg help\" om de volledige lijst met opdrachten te zien of \"thg -v" "\" voor details" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "gebruik \"thg -v help%s\" om aliases en algemene opties te zien" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "gebruik \"thg -v help %s\" om algemene opties te zien" msgid "" "list of commands:\n" "\n" msgstr "" "lijst met opdrachten:\n" "\n" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" "\n" "aliases: %s\n" msgid "(no help text available)" msgstr "(geen help tekst beschikbaar)" msgid "options:\n" msgstr "opties:\n" msgid "no commands defined\n" msgstr "geen opdrachten gedefiniëerd\n" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "Thg - TortoiseHg's GUI programma's voor Mercurial SCM (Hg)\n" msgid "" "basic commands:\n" "\n" msgstr "" "basis opdrachten:\n" "\n" #, python-format msgid " (default: %s)" msgstr " (standaard: %s)" msgid "thg hgignore [FILE]" msgstr "thg hgignore [BESTAND]" msgid "import to the patch queue (MQ)" msgstr "importeren in de patch queue (MQ)" msgid "thg import [OPTION] [SOURCE]..." msgstr "thg import [OPTIES] [DOEL]..." msgid "thg init [DEST]" msgstr "thg init [DOEL]" msgid "thg lock" msgstr "" msgid "search for a given text or revset" msgstr "" msgid "(DEPRECATED)" msgstr "(AFGEKEURD)" msgid "open a new workbench window" msgstr "open een nieuw werkbank venster" msgid "thg log [OPTIONS] [FILE]" msgstr "thg log [OPTIES] [BESTAND]" msgid "cannot specify both -k/--query and filenames" msgstr "" msgid "revision to display" msgstr "revisie om te tonen" msgid "thg manifest [-r REV] [FILE]" msgstr "thg manifest [-r REV] [BESTAND]" msgid "revision to merge" msgstr "revisie om samen te voegen" msgid "thg merge [[-r] REV]" msgstr "thg merge [[-r] REV]" msgid "Merge revision not specified or not found" msgstr "Revisie om samen te voegen niet opgegeven of niet gevonden" msgid "a revision to post" msgstr "" msgid "thg postreview [-r] REV..." msgstr "" msgid "reviewboard extension not enabled" msgstr "" #, python-format msgid "see %(url)s" msgstr "" msgid "no revisions specified" msgstr "" msgid "revisions to prune" msgstr "" msgid "thg prune [-r] REV..." msgstr "" msgid "thg purge" msgstr "thg purge" msgid "keep original changesets" msgstr "behoudt de originele changesets" msgid "keep original branch names" msgstr "behoudt de originele taknamen" msgid "rebase from the specified changeset" msgstr "rebase vanaf de opgegeven changeset" msgid "rebase onto the specified changeset" msgstr "rebase naar de ogegeven changeset" msgid "thg rebase -s REV -d REV [--keep]" msgstr "thg rebase -s REV -s REV [--keep]" msgid "Rebase already in progress" msgstr "Rebase is al bezig" msgid "Resuming rebase already in progress" msgstr "Hervatten van de lopende rebase" msgid "You must provide source and dest arguments" msgstr "U moet bron en doel argumenten opgeven" msgid "thg rejects [FILE]" msgstr "thg rejects [BESTAND]" msgid "You must provide the path to a file" msgstr "U moet het pad naar een bestand opgeven" msgid "thg remove [FILE]..." msgstr "thg remove [BESTAND]..." msgid "thg rename [SOURCE] [DEST]" msgstr "" msgid "field to give initial focus" msgstr "veld om initiële focus te geven" msgid "thg repoconfig" msgstr "thg repoconfig" msgid "thg resolve" msgstr "thg resolve" msgid "the revision to show" msgstr "de revisie om te tonen" msgid "thg revdetails [-r REV]" msgstr "thg revdetails [-r REV]" msgid "thg revert [FILE]..." msgstr "thg revert [BESTAND]..." msgid "revision to update" msgstr "revisie om bij te werken" msgid "thg rupdate [[-r] REV]" msgstr "" msgid "name of the hgweb config file (serve more than one repository)" msgstr "naam van het hgweb instellingenbestand (serve meer dan een repository)" msgid "name of the hgweb config file (DEPRECATED)" msgstr "naam van het hgweb instellingenbestand (AFGERADEN)" msgid "thg serve [--web-conf FILE]" msgstr "thg serve [--web-conf BESTAND]" msgid "thg shellconfig" msgstr "thg shellconfig" msgid "thg shelve" msgstr "thg shelve" msgid "sign even if the sigfile is modified" msgstr "" msgid "make the signature local" msgstr "" msgid "the key id to sign with" msgstr "" msgid "do not commit the sigfile after signing" msgstr "" msgid "use as commit message" msgstr "gebruik als commit bericht" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "" msgid "Please enable the Gpg extension first." msgstr "" msgid "show files without changes" msgstr "toon bestanden zonder wijzigingen" msgid "show ignored files" msgstr "toon genegeerde bestanden" msgid "thg status [OPTIONS] [FILE]" msgstr "thg status [OPTIES] [BESTAND]" msgid "discard uncommitted changes (no backup)" msgstr "verwerp niet-gecommitte wijzigingen (geen backup)" msgid "do not back up stripped revisions" msgstr "maak geen backup van de gestripte revisies" msgid "do not modify working copy during strip" msgstr "" msgid "revision to strip" msgstr "revisie om te strippen" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "" msgid "open the bookmark sync window" msgstr "" msgid "thg sync [OPTION]... [PEER]" msgstr "" msgid "replace existing tag" msgstr "vervang bestaand etiket" msgid "make the tag local" msgstr "maak het etiket lokaal" msgid "revision to tag" msgstr "revisie om te etiketteren" msgid "remove a tag" msgstr "verwijder een etiket" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "thg tag [-f] [-l] [-m TEKST] [-r REV] [NAAM]" msgid "wait until the second ticks over" msgstr "wacht tot de tweede overgaat" msgid "notify the shell for paths given" msgstr "meldt de shell de gegeven paden" msgid "remove the status cache" msgstr "verwijder de status cache" msgid "show the contents of the status cache (no update)" msgstr "toon de inhoud van de status cache (niet bijwerken)" msgid "update all repos in current dir" msgstr "alle repos in de huidige map bijwerken" msgid "thg thgstatus [OPTION]" msgstr "thg thgstatus [OPTION]" msgid "thg topics [-r REV] [NAME]" msgstr "" msgid "Please enable the Topic extension first." msgstr "" msgid "only one new topic name allowed" msgstr "" msgid "thg update [-C] [[-r] REV]" msgstr "thg update [-C] [[-r] REV]" msgid "thg userconfig" msgstr "thg userconfig" msgid "changeset to view in diff tool" msgstr "changeset om te bekijken in vergelijkingsprogramma" msgid "revisions to view in diff tool" msgstr "revisies om te bekijken in vergelijkingsprogramma" msgid "bundle file to preview" msgstr "bundel bestand om vooraf te bekijken" msgid "launch visual diff tool" msgstr "lanceer visueel vergelijkingsprogramma" msgid "print license" msgstr "afdrukken licentie" msgid "thg version [OPTION]" msgstr "thg versie [OPTIES]" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "TortoiseHg Schermen (versie %s), Mercurial (versie %s)\n" msgid "Location:" msgstr "Lokatie:" msgid "Update to:" msgstr "Bijwerken naar:" msgid "Options:" msgstr "Opties:" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "Verwerp externe wijzigingen, geen backup (-C/--clean)" msgid "Perform a push before updating (-p/--push)" msgstr "Voer een push uit vooraleer bij te werken (-p/--push)" msgid "Allow pushing new branches (--new-branch)" msgstr "Laat toe om nieuwe takken te pushen (--new-branch)" msgid "Force push to remote location (-f/--force)" msgstr "Forceer een push naar de externe lokatie (-f/--force)" msgid "remove working directory" msgstr "werkmap verwijderen" msgid "unknown revision!" msgstr "onbekende revisie!" #, python-format msgid "Remote Update - %s" msgstr "" msgid "&Update" msgstr "Bijwerken" msgid "Log" msgstr "Resultaten" msgid "Repositories" msgstr "Repositories" #, python-format msgid "Running at %s" msgstr "Bezig met lopen op %s" msgid "Stopped" msgstr "Gestopt" msgid "TortoiseHg Web Server" msgstr "TortoiseHg Web Server" msgid "Web Server" msgstr "Web Server" msgid "Port:" msgstr "Poort:" msgid "Status:" msgstr "Status:" msgid "Start" msgstr "Begin" msgid "Settings" msgstr "Instellingen" msgid "" msgstr "" msgid "&True" msgstr "Ja" msgid "&False" msgstr "Nee" msgid "&Unspecified" msgstr "Onbepaald" #, python-format msgid "%dpt" msgstr "" msgid "Bold" msgstr "Vet" msgid "Italic" msgstr "Cursief" msgid "Strike" msgstr "Doorhalen" msgid "Underline" msgstr "Onderstrepen" msgid "&Set..." msgstr "Instellen..." msgid "&Clear" msgstr "Wissen" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "Laden van probleem opvolger is mislukt: '%s': %s. " msgid "&Browse..." msgstr "&Bladeren..." msgid "UI Language" msgstr "UI Taal" msgid "Specify your preferred user interface language (restart needed)" msgstr "Geef uw verkozen gebruikersinterface taal op (herstart nodig)" msgid "Three-way Merge Tool" msgstr "Drie-weg Samenvoeg Programma" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" "Grafisch samenvoeg programma om samenvoegingsconflicten op te lossen. Indien " "niet opgegeven dan zal Mercurial het eerste bruikbare gereedschap gebruiken " "dat het kan vinden op uw systeem, of het zal zijn intern samenvoeg " "gereedschap gebruiken dat conflict markeringen ter plaatse achterlaat. Kies " "internal:merge om conflict markeringen te forceren, internal:prompt om " "altijd de lokale of de andere versie te kunnen kiezen, of internal-dump om " "bestanden in de werkmap achter te laten voor manueel samenvoegen." msgid "Visual Diff Tool" msgstr "Visueel VergelijkingsProgramma" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" "Geef visueel vergelijkingsprogramma op, zoals beschreven in de [merge-tools] " "sectie van uw Mercurial instellingenbestand. Indien onbepaald, dan zal " "TortoiseHg het gekozen samenvoegprogramma gebruiken. Als dat mislukt dan " "zal TortoiseHg het eerste passende programma gebruiken dat het kan vinden." msgid "Visual Editor" msgstr "Visuele Editor" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" "Geef de Visuele Editor op, zoals beschreven in de [editor-tools] sectie van " "uw Mercurial configuratiebestanden. Indien dit niet gespecifiëerd wordt zal " "TortoiseHg de eerste toepasbare tool gebruiken die het kan vinden." msgid "CLI Editor" msgstr "CLI Editor" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" msgid "Shell" msgstr "Shell" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
                                                                    Default, Windows: cmd.exe /" "K title %(reponame)s
                                                                    Default, OS X: not set
                                                                    Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" msgid "Immediate Operations" msgstr "Directe Operaties" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" "Spatie-gescheiden lijst van shell operaties die u onmiddellijk wilt " "uitgevoerd hebben, zonder tussenkomst van de gebruiker. Opdrachten zijn " "\"add remove revert forget\". Standaard: Geen (blank laten)" msgid "Tab Width" msgstr "Tab Breedte" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" "Geef het aantal spaties op dat in de plaats komt van een tab in diverse " "TortoiseHg vensters. Standaard: 8" msgid "Force Repo Tab" msgstr "Forceer Tabblad voor Repo" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "Toon altijd repo tabbladen, zelfs voor één enkele repo. Standaard: Nee" msgid "Monitor Repo Changes" msgstr "Opvolgen Wijzigingen in de Repo" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" msgid "Max Diff Size" msgstr "Max VergelijkingsGrootte" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" "De maximale bestandsgrootte (in KB) waarvoor TortoiseHg wijzigingen zal " "tonen in de changelog, status, en commit vensters. De waarde nul " "veronderstelt geen limiet. Standaard: 1024 (1MB)" msgid "Fork GUI" msgstr "Fork de GUI" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" msgid "Full Path Title" msgstr "Titel met Volledig Pad" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" "Het volledige pad van de repository in de venstertitel tonen in plaats van " "enkel de naam van de basismap. Standaard: Nee" msgid "Auto-resolve merges" msgstr "Samenvoegingen automatisch oplossen" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" msgid "New Repo Skeleton" msgstr "" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "Werkbank" msgid "Single Workbench Window" msgstr "Eén-venster Werkbank" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" "Kies of u één enkel Werkbank venster wilt. Als u deze instelling uit zet " "krijgt u elke keer een n ieuw Werkbank venster als u \"Hg Workbench\" kiest " "in het contextmenu van Verkenner. Standaard: Ja" msgid "Default widget" msgstr "Standaard schermelement" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" "Kies het initiële schermelement dat zal getoond worden bij het openen van de " "repository. Standaard: revisiedetails" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" "Kies de initiële revisie die gekozen zal worden bij het openen van de " "repository. U kunt \"huidige\" kiezen (d.i. de ouder van de werkmap), de " "huidige \"tip\" of de werkmap (\"werkmap\"). Standaard: huidige" msgid "" "Open new tabs next\n" "to the current tab" msgstr "" "Open nieuwe tabbladen naast \n" "het huidige tabblad" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" "Dienen nieuwe tabbladen geopend te worden naast de huidige? Indien Nee dan " "zullen nieuwe tabbladen geopend worden na het laatste tabblad. Standaard: Ja" msgid "Author Coloring" msgstr "Auteur Kleuren" msgid "Color changesets by author name. Default: False" msgstr "" msgid "Full Authorname" msgstr "Volledige Auteursnaam" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" "Toon de volledige naam van de auteur in Logview. Indien niet aangezet dan " "zal enkel een klein deel van de naam getoond worden, gewoonlijk de naam " "zonder het emailadres. Standaard: Nee" msgid "Task Tabs" msgstr "Taak Tabbladen" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" "Tabbladen tonen langs de zijkant van de onderste helft van elk repo " "schermelement, wat iemand toelaat om van tabblad te wisselen zonder de " "toolbar te gebruiken. Standaard: af" msgid "Task Toolbar Order" msgstr "Taak Toolbar volgorde" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
                                                                    Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
                                                                    Valid names are: log commit sync grep and " "pbranch.
                                                                    Default: log commit grep pbranch | sync" msgstr "" msgid "Long Summary" msgstr "Lange samenvatting" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" msgid "Log Batch Size" msgstr "Probleem Opvolger Trigger" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "" "Het aantal revisies dat in één keer gelezen en getoond moet worden in de " "historiek verkenner. Standaard: 500" msgid "Dead Branches" msgstr "Dode Takken" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" "Komma-gescheiden lijst van taknamen die genegeerd moeten worden als een " "lijst met taknamen opgebouwd wordt voor een repository. Standaard: Geen " "(blank laten)" msgid "Branch Colors" msgstr "Tak Kleuren" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" "Spatie-gescheiden lijst van taknamen en kleuren in het formaat branch:" "#XXXXX. Spaties en dubbele punten in de taknaam moeten opgevangen worden met " "een backslash (\\). Evenzo kunnen sommige andere tekens op die manier " "opgevangen worden, bvb. \\u0040 zal ontcijferd worden als het @ teken, en " "\\n als een nieuweregel. Standaard: Geen (blank laten)" msgid "Hide Tags" msgstr "Etiketten Verbergen" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" "Spatie-gescheiden lijst van etiketten die niet getoond mogen worden. " "Bruikbaar voorbeeld: \"qbase parent qtip\" om de standaard etiketten te " "verbergen voor de Mmercurial Queues extensie. Standaard: Geen (blanko laten)" msgid "Activate Bookmarks" msgstr "Aktieve Bladwijzers" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

                                                                    • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
                                                                    • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
                                                                    • never: Never show any prompt to " "activate any bookmarks.

                                                                    Default: prompt" msgstr "" "Kies wanneer TortoiseHg een prompt zal tonen om een bladwijzer te aktiveren " "tijdens het bijwerken naar een revisie die één of meer bladwijzers heeft." "

                                                                    • auto: Probeer bladwijzers automatisch te aktiveren. Bij het " "bijwerken naar een revisie die één enkele bladwijzer heeft zal die " "automatisch geaktiveerd worden. Toon een prompt als er meer dan één " "bladwijzer is voor de revisie waar naar bijgewerkt wordt.
                                                                    • prompt: " "De standaard. Toon een prompt bij het bijwerken naar een revisie die één of " "meer bladwijzers heeft.
                                                                    • nooit: Toon nooit enige prompt om eender " "welke bladwijzer te aktiveren.

                                                                    Standaard: prompt" msgid "Show Family Line" msgstr "" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

                                                                    Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" msgid "Use optimized graph layouter" msgstr "" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

                                                                    Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" msgctxt "config item" msgid "Commit" msgstr "Commit" msgid "Username" msgstr "Gebruikersnaam" msgid "" "Name associated with commits. The common format is:
                                                                    Full Name <" "email@example.com>" msgstr "" "Naam verbonden met commits. Het gebruikelijke formaat is:
                                                                    Volledige " "Naam <email.adres@voorbeeld.com>" msgid "Ask Username" msgstr "" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" msgid "Summary Line Length" msgstr "Regellengte van de Samenvatting" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" "Voorgestelde lengte voor regels van commit berichten. Een verticale rode " "lijn zal deze lengte aangeven. Ctrl-E zal de huidige paragraaf herzetten " "volgens de opgegeven lengte. Standaard: 80" msgid "Close After Commit" msgstr "Afsluiten Na Commit" msgid "Close the commit tool after every successful commit. Default: False" msgstr "Commit programma afsluiten na elke succesvolle commit. Standaard: Nee" msgid "Push After Commit" msgstr "Push Na Commit" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" "Probeer een push uit te voeren naar de opgegeven URL of alias na elke " "succesvolle commit. Standaard: Geen push" msgid "Auto Commit List" msgstr "Auto Commit Lijst" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" "Komma-gescheiden lijst van bestanden die automatisch in elke commit " "inbegrepen worden. Enkel bedoeld voor gebruik als repository instelling. " "Standaard: Geen (blank laten)" msgid "Auto Exclude List" msgstr "Auto Uitsluit Lijst" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" "Komma-gescheiden lijst van bestanden die automatisch afgevinkt worden als de " "status en commit schermen geopend worden. Standaard: Geen (blank laten)" msgid "English Messages" msgstr "Engelse Berichten" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" "Genereer engelse commit berichten zelfs als de LANGUAGE of LANG " "omgevingsvariabelen ingesteld zijn op een niet-engelse taal. Deze instelling " "wordt gebruikt door de Samenvoegen, Etiketteren en Backout schermen. " "Standaard: Nee" msgid "New Commit Phase" msgstr "Nieuwe Commit Fase" msgid "The phase of new commits. Default: draft" msgstr "De fase voor nieuwe commits. Standaard: draft" msgid "Secret MQ Patches" msgstr "Geheime MQ Patches" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "Maak MQ patches aan als geheim (in plaats van draft). Standaard: Nee" msgid "Check Subrepo Phase" msgstr "" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" msgid "Monitor working
                                                                    directory changes" msgstr "Opvolgen wijzigingen
                                                                    in de werkmap" msgid "" "Select when the working directory status list will be refreshed:
                                                                    - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
                                                                    TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
                                                                    - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
                                                                    - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
                                                                    Default: auto" msgstr "" "Kies wanneer de werkmap statuslijst zal ververst worden:
                                                                    - auto: " "[standaard] laat TortoiseHg beslissen wanneer de statuslijst van de " "werkmap moet ververst worden.
                                                                    TortoiseHg zal de statuslijst verversen " "telkens het een actie uitvoert die mogelijks de werkmap wijzigt. Deze " "keuze kan eventueel wijzigingen missen die gebeuren buiten TortoiseHg's " "kontrole;
                                                                    - altijd: bovenop de automatische bijwerkingen van " "hierboven, de statuslijst ook verversen telkens de gebruiker klikt op de " "\"werkmap revisie\" of op het \"Commit ikoon\" in de Werkbank taakbalk;
                                                                    - " "altijdlokaal: hetzelfde als \"altijd\" maar beperkt " "geforceerde verversingen tot lokale repos.
                                                                    Standaard: auto" msgid "Confirm adding unknown files" msgstr "Bevestig het toevoegen van onbekende bestanden" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Confirm deleting files" msgstr "Bevestig het verwijderen van bestanden" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Sync" msgstr "Sync" msgid "After Pull Operation" msgstr "Operatie Na Pull" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" msgid "Default Push" msgstr "Standaard Push" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

                                                                    • all: The default. Push all changes in all " "branches.
                                                                    • branch: Push all changes in the current branch.
                                                                    • revision: Push the changes in the current branch up to the current revision.

                                                                    Default: all" msgstr "" "Kies de revisie die standaard zal gepusht worden, telkens als u de Push knop " "aanklikt.

                                                                    • alles: De standaard. Push alle wijzigingen in " "alle takken.
                                                                    • tak: Push alle wijzigingen in the huidige " "tak.
                                                                    • revisie: Push de wijzigingen in the huidige tak tot " "en met de huidige revisie.

                                                                    Standaard: alles" msgid "Confirm Push" msgstr "Bevestig Push" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" "Bepaalt of TortoiseHg een bevestiging moet vragen vooraleer changesets te " "pushen. Indien niet, dan zal de push uitgevoerd worden zonder enige " "bevestiging. Standaard: Ja" msgid "Target Combo" msgstr "" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

                                                                    • auto: The default. Show the combo if more than one target " "configured.
                                                                    • always: Always show the combo.

                                                                    Default: auto" msgstr "" msgid "SSH Command" msgstr "" msgid "" "Command to use for SSH connections.

                                                                    Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" msgid "Subrepository Features:" msgstr "" msgid "Allow Hg Subrepos" msgstr "" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" msgid "Allow Git Subrepos" msgstr "" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

                                                                    See the security note before enabling Git " "subrepos." msgstr "" msgid "Allow SVN Subrepos" msgstr "" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

                                                                    See the security note before enabling " "Subversion subrepos." msgstr "" msgid "Server" msgstr "Server" msgid "Repository Details:" msgstr "Repository Details:" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" "De naam van de repository om te gebruiken in the webinterface, en door " "TortoiseHg als een verkorte naam. Standaard is dit de werkmap." msgid "Encoding" msgstr "Codering" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" msgid "'Publishing' repository" msgstr "'Publicerende' repository" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" "Kontroleert draft fase gedrag bij het draaien als server. Indien true dan " "zullen gepushte changesets public gezet worden in zowel de client als de " "server, en gepullde of gekloonde changesets zullen public gezet worden in de " "client. Standaard: Ja" msgid "Web Server:" msgstr "Web Server" msgid "Textual description of the repository's purpose or contents." msgstr "Tekst die de bedoeling of de inhoud van de repository omschrijft." msgid "Contact" msgstr "Contactpersoon" msgid "Name or email address of the person in charge of the repository." msgstr "" "Naam of emailadres van de persoon die verantwoordelijk is voor de repository." msgid "Style" msgstr "Stijl" msgid "Which template map style to use" msgstr "Welke template stijl gebruiken" msgid "Archive Formats" msgstr "Archief formaten" msgid "Comma separated list of archive formats allowed for downloading" msgstr "" "Komma-gescheiden lijst van archief formaten die toegelaten zijn om te " "downloaden." msgid "Port" msgstr "Poort" msgid "Port to listen on" msgstr "Poort om naar te luisteren" msgid "Push Requires SSL" msgstr "Push Vereist SSL" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" "Of het vereist is dat inkomende pushes over SSL getransporteerd moeten " "worden om paswoord snuffelen te vermijden." msgid "Stripes" msgstr "Zebrastrepen" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" "Hoeveel regels moet een \"zebrastreep\" overspannen in resultaten met " "meerdere lijnen. Standaard is 1; zet op 0 om uit te schakelen." msgid "Max Files" msgstr "Max Bestanden" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "Maximum aantal bestanden om op te lijsten per changeset. Standaard: 10" msgid "Max Changes" msgstr "Max Wijzigingen" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "" "Maximum aantal wijzigingen om op te lijsten voor de changeset. Standaard: 10" msgid "Allow Push" msgstr "Push Toelaten" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" "Of pushen naar de repository toegelaten moet worden. Indien leeg of niet " "ingesteld, dan is pushen niet toegelaten. Als de speciale waarde \"*\" " "ingesteld is, dan kan elke externe gebruiker pushen, niet-geauthenticeerde " "gebruikers inbegrepen. Anders zullen externe gebruikers zich moeten " "authenticeren, en de geauthenticeerde gebruikersnaam zal moeten aanwezig " "zijn in deze lijst (gescheiden door witruimte of \",\"). De inhoud van de " "push_toelaten lijst zal gekontroleerd worden nadat de push_weigeren lijst " "gekontroleerd werd." msgid "Deny Push" msgstr "Push Weigeren" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" "Of pushen naar de repository geweigerd moet worden. Indien leeg of niet " "ingesteld, dan is push niet geweigerd. Als de speciale waarde \"*\" " "ingesteld is, dan zal push geweigerd worden voor alle externe gebruikers. " "Anders worden alle niet-geauthentieerde gebruikers geweigerd, en alle " "geauthenticeerde gebruikers waarvan de gebruikersnaam in deze lijst aanwezig " "is (gescheiden door witruimte of \",\") worden ook geweigerd. De inhoud van " "de deny_push lijst wordt gekontroleerd voordat de lijst allow_push " "gekontroleerd wordt." msgid "Proxy" msgstr "Proxy" msgid "Host" msgstr "Host" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "" "Host naam en (optionele) poort van de proxy server, bijvoorbeeld " "\"mijnproxy:8000\"" msgid "Bypass List" msgstr "Lijst om Over te slaan" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "" "Optioneel. Komme-gescheiden lijst van host namen die door de proxy zouden " "moeten overgeslagen worden." msgid "Optional. User name to authenticate with at the proxy server" msgstr "Optioneel. Gebruikersnaam voor authenticatie met de proxy server." msgid "Password" msgstr "Wachtwoord" msgid "Optional. Password to authenticate with at the proxy server" msgstr "Optioneel. Wachtwoord voor authenticatie met de proxy-server" msgid "From" msgstr "Van" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "" "Email adres om te gebruiken in de \"Van\" hoofding en voor de SMTP enveloppe" msgid "To" msgstr "Aan" msgid "Comma-separated list of recipient email addresses" msgstr "Komme-gescheiden lijst van email adressen van ontvangers" msgid "Cc" msgstr "Cc" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "Komma-gescheiden lijst van email adressen van Cc ontvangers" msgid "Bcc" msgstr "Bcc" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "Komma-gescheiden lijst van email adressen van Bcc ontvangers" msgid "method" msgstr "methode" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" "Optioneel. Te gebruiken methode om emails te versturen. Als de waarde \"smtp" "\" is (standaard), gebruik SMTP (hieronder ingesteld). Anders gebruik deze " "waarde als de naam van het programma dat moet gedraaid worden dat handelt " "als sendmail (gebruikt de \"-f\" optie voor de afzender, een lijst van " "ontvangers op de opdrachtregel, berichttekst op stdin). Normaal is het " "voldoende om dit op \"sendmail\" of \"/usr/sbin/sendmail\" in te stellen om " "sendmail te gebruiken om berichten te versturen." msgid "SMTP Host" msgstr "SMTP Host" msgid "Host name of mail server" msgstr "Host naam van de mail server" msgid "SMTP Port" msgstr "SMTP Port" msgid "Port to connect to on mail server. Default: 25" msgstr "Poort om naar te conneceteren op de mail server. Standaard: 25" msgid "SMTP TLS" msgstr "SMTP TLS" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "" msgid "SMTP Username" msgstr "SMTP Gebruikersnaam" msgid "Username to authenticate to mail server with" msgstr "Gebruikersnaam voor authenticatie op de mail server" msgid "SMTP Password" msgstr "SMTP Wachtwoord" msgid "Password to authenticate to mail server with" msgstr "Wachtwoord voor authenticatie op de mail server" msgid "Local Hostname" msgstr "Lokale Hostnaam" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "" "Hostnaam die de afzender kan gebruiken om zichzelf te identificeren op de " "mail server" msgid "Diff and Annotate" msgstr "Vergelijken en Annoteren" msgid "Patch EOL" msgstr "Patch EOL" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" "Normalizeer einde regel van bestanden tijdens en na patch naar lf of crlf. " "Strict voert geen normalisatie uit. Auto doet per-bestand detectie, en is de " "aangeraden instelling. Standaard: strikt" msgid "Git Format" msgstr "Git Formaat" msgid "Use git extended diff header format. Default: False" msgstr "Gebruik git uitgebreid vergelijking hoofdingsformaat. Standaard: Nee" msgid "MQ Git Format" msgstr "MQ Git Formaat" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" msgid "No Dates" msgstr "Geen Datums" msgid "Do not include modification dates in diff headers. Default: False" msgstr "" "Wijzigingsdatums niet insluiten in de vergelijkingshoofdingen. Standaard: Nee" msgid "Show Function" msgstr "Toon Functie" msgid "Show which function each change is in. Default: False" msgstr "Toon in welke functie elke wijziging zich bevindt. Standaard: Nee" msgid "Ignore White Space" msgstr "Negeer witruimte" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "Negeer witruimte bij het vergelijken van lijnen. Standaard: Nee" msgid "Ignore WS Amount" msgstr "Negeer lengte van witruimte" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "" "Negeer wijzigingen in de lengte van witruimte in vergelijkingen. Standaard: " "Nee" msgid "Ignore Blank Lines" msgstr "Negeer lege regels" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "" "Negeer wijzigingen met enkel lege regels in vergelijkingen. Standaard: Nee" msgid "Annotate:" msgstr "Annoteren:" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" "Negeer witruimte bij het vergelijken van lijnen in annotate. Standaard: Nee" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" "Negeer wijzigingen in de lengte van witruimte in annotate. Standaard: Nee" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "Negeer wijzigingen met enkel lege regels in annotate. Standaard: Nee" msgid "Fonts" msgstr "Lettertypes" msgid "Message Font" msgstr "Bericht Lettertype" msgid "Font used to display commit messages. Default: monospace 10" msgstr "Lettertype om commit berichten te tonen. Standaard: monospace 10" msgid "Diff Font" msgstr "VergelijkingsLettertype" msgid "Font used to display text differences. Default: monospace 10" msgstr "Lettertype om tekstverschillen te tonen. Standaard: monospace 10" msgid "ChangeLog Font" msgstr "Historiek Lettertype" msgid "Font used to display changelog data. Default: monospace 10" msgstr "Lettertype om changelog gegevens te tonen. Standaard: monospace 10" msgid "Output Font" msgstr "Resultaten Lettertype" msgid "Font used to display output messages. Default: sans 8" msgstr "Lettertype om resultaatberichten te tonen. Standaard: sans 8" msgid "Extensions" msgstr "Uitbreidingen" msgid "Tools" msgstr "Gereedschap" msgid "Hooks" msgstr "Hooks" msgid "Issue Tracking" msgstr "Opvolgen van Bugs" msgid "Issue Regex" msgstr "Bug Reguliere Expressie" msgid "Defines the regex to match when picking up issue numbers." msgstr "Definiëert de regex om te matchen bij het opnemen van bugnummers" msgid "Issue Link" msgstr "Probleem Link" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" msgid "Inline Tags" msgstr "Etiketten Invoegen" msgid "Show tags at start of commit message." msgstr "Etiketten tonen aan het begin van een commit bericht." msgid "Mandatory Issue Reference" msgstr "Verplichte Probleemreferentie" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" msgid "Issue Tracker Plugin" msgstr "Probleem Opvolger Plugin" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" "Configureert een COM IBugTraqProvider of IBugTraqProvider2 " "probleemopvolgingsplugin." msgid "Configure Issue Tracker" msgstr "Configureer Probleemovolger" msgid "Configure the selected COM Bug Tracker plugin." msgstr "Configureer de gekozen COM Bug Probleem plugin." msgid "Issue Tracker Trigger" msgstr "Probleem Opvolger Trigger" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

                                                                    • never: Do not update the Issue Tracker " "state automatically.
                                                                    • commit: Update the Issue Tracker state after " "a successful commit.

                                                                    Default: never" msgstr "" "Bepaalt wanneer de status van de probleemopvolger zal bijgewerkt worden door " "TortoiseHg. Geldige instellingen zijn:

                                                                    • never (=nooit): Werk de " "Probleem Opvolger status niet automatisch bij.
                                                                    • commit: Werk de " "Probleem Opvolger status bij na een succesvolle commit/

                                                                    Standaard: " "nooit" msgid "Changeset Link" msgstr "" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
                                                                    The template string " "uses a normal mercurial template syntax, such as:

                                                                    • {node|short} : replaced by " "the 12 digit revision id.
                                                                    • {rev} : replaced by the revision number." "
                                                                    • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
                                                                    For example, in order to " "link to bitbucket commit pages you can set this to:
                                                                    https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
                                                                    You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
                                                                    https://github.com/torvalds/" "linux/commit/{gitnode}
                                                                    https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
                                                                    " msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "Pad naar Review Board voorbeeld \"http://demo:reviewboard.org\"" msgid "User name to authenticate with review board" msgstr "Gebruikersnaam voor authenticatie met review board" msgid "Password to authenticate with review board" msgstr "Wachtwoord voor authenticatie met review board" msgid "Server Repository ID" msgstr "Server Repository ID" msgid "The default repository id for this repo on the review board server" msgstr "De standaard repository id voor deze repo op de review board server" msgid "Target Groups" msgstr "Doelgroepen" msgid "A comma separated list of target groups" msgstr "Een komma-gescheiden lijst van doelgroepen" msgid "Target People" msgstr "Doelpersonen" msgid "A comma separated list of target people" msgstr "Een komma-gescheiden lijst van doelpersonen" msgid "Kiln Bfiles" msgstr "Kiln Bfiles" msgid "Patterns" msgstr "Patronen" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" "Bestanden waarvan de namen overeenkomen met de opgegeven patronen zullen " "automatisch toegevoegd worden als bfiles." msgid "Size" msgstr "Grootte" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" "Bestanden die minstens de opgegeven grootte hebben (in megabytes) zullen " "toegevoegd worden als bfiles." msgid "System Cache" msgstr "Systeem Cache" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "" "Pad naar de map waar een systeemwijde cache van bfiles zal opgeslagen worden" msgid "Simplelock" msgstr "" msgid "Lock Clone" msgstr "" msgid "" "Location of local clone of organizational lock repository.

                                                                    This repository " "must contain a \"locked\" text file" msgstr "" msgid "Largefiles" msgstr "Largefiles" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" "Bestanden waarvan de namen overeenkomen met de opgegeven patronen zullen " "automatisch toegevoegd worden als largefiles" msgid "Minimum Size" msgstr "Minimum Grootte" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" "Bestanden die minstens de opgegeven grootte hebben (in megabytes) zullen " "toegevoegd worden als largefiles" msgid "User Cache" msgstr "Gebruikerscache" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" "Pad naar de map waar de gebruikerscache voor largefiles zal opgeslagen worden" msgid "Projrc" msgstr "Projrc" msgid "Require confirmation" msgstr "Bevestiging vereisen" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

                                                                    • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
                                                                    • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
                                                                    • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
                                                                    " msgstr "" "Geeft aan wanneer de gebruiker moet gevraagd worden het bijwerken te " "bevestigen van het lokale \"projrc\" instellingsbestand als het externe " "projrc bestand wijzigt. Mogelijke waardes zijn:
                                                                    • always: " "[standaard] Toon altijd een bevestigingsprompt vooraleer het lokale ." "hg/projrc bestand bijgewerkt wordt.
                                                                    • first: Toon een " "bevestigingsdialoog als de reporitory gekloond wordt of als een extern " "projrc bestand voor het eerst gevonden wordt.
                                                                    • never: Werk het " "lokale .hg/projrc bestand automatisch bij, zonder enige bevestiging van de " "gebruiker.
                                                                    " msgid "Servers" msgstr "Servers" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" msgid "Include" msgstr "Insluiten" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" "Lijst van instellingen die gepulled zullen worden uit het " "projectinstellingsbestand. Standaard is GEEN instellingen insluiten." msgid "Exclude" msgstr "Uitsluiten" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" "Lijst van instellingen die NIET zullen gepulled worden uit het " "projectinstellingenbestand. Standaard is geen enkele van de ingesloten " "instellingen uitsluiten." msgid "Update on incoming" msgstr "Bijwerken bij het binnenkomen" msgid "" "Let the user update the projrc on incoming:
                                                                    • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
                                                                    • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
                                                                    • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                                                                      Default: never" msgstr "" "Laat de gebruiker de projrc bijwerken bij inkomen:

                                                                      • never (=nooit): [standaard] Toon of het extern projrc bestand gewijzigd werd, " "maar werk de lokale projrc niet bij (en vraag ook niet om bij te werken)." "
                                                                      • prompt: Kijk uit naar wijzigingen voor het projrc bestand. Als er " "wijzigingen zijn toon dan _altijd_ een bevestigingsvraag die de gebruiker " "vraagt of hij het lokale projrc bestand wil bijwerken.
                                                                      • auto: Kijk " "uit naar wijzigingen voor het projrc bestand. Gebruik de instelling van de " "\"projrc.confirm\" configuratiesleutel om te bepalen of er al of niet een " "bevestigingsvenster moet getoond worden vooraleer het lokale projrc bestand " "bijgeerkt wordt.

                                                                      Standaard: nooit" msgid "GnuPG" msgstr "GnuPG" msgid "Specify the path to GPG. Default: gpg" msgstr "" msgid "Key ID" msgstr "" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "" msgid "TortoiseHg Settings" msgstr "TortoiseHg Instellingen" msgid "Iniparse package not found" msgstr "Iniparse package niet gevonden" msgid "Can't change settings without iniparse package - view is readonly." msgstr "" "Kan instellingen niet wijzigen zonder het 'iniparse' package - overzicht is " "alleen-lezen" #, python-format msgid "%s's global settings" msgstr "%s's globale instellingen" msgid "No repository found" msgstr "Geen repository gevonden" msgid "no repo at " msgstr "geen repo in " #, python-format msgid "%s project settings (.hg/projrc)" msgstr "%s project instellingen (.hg/projrc)" #, python-format msgid "%s repository settings" msgstr "%s repository instellingen" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "" "Herstart alle TortoiseHg toepassingen om de volgende wijzigingen te " "activeren:" msgid "Apply changes before exit?" msgstr "Wijzigingen toepassen vooraleer te verlaten?" msgid "&No (discard changes)" msgstr "&Nee (verwerp wijzigingen)" msgid "Reload" msgstr "Herladen" msgid "Settings File:" msgstr "Instellingen Bestand:" msgid "Confirm Save" msgstr "Bevestig Opslaan" msgid "Save changes before editing?" msgstr "Wijzigingen opslaan vooraleer aan te passen?" msgid "&Save" msgstr "Opslaan" msgid "Confirm Reload" msgstr "Bevestig Herladen" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" "Niet opgeslagen wijzigingen zullen verloren gaan.\n" "Wilt u herladen?" msgid "Unable to create a Mercurial.ini file" msgstr "Kan geen Mercurial.ini bestand aanmaken" msgid "Insufficient access rights, reverting to read-only mode." msgstr "" "Onvoldoende toegangsrechten, bezig met omkeren naar alleen-lezen modus." msgid "Context Menu" msgstr "Contextmenu" msgid "Top menu items:" msgstr "Top menu onderwerpen:" msgid "Sub menu items:" msgstr "Submenu onderwerpen:" msgid "Menu Behavior" msgstr "Menugedrag" msgid "Hide context menu outside repositories" msgstr "Verberg contextmenu buiten repositories" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" "Toon geen menupunten voor niet-versie bestanden (gebruik shift + click om te " "overschrijven)" msgid "Icons" msgstr "Pictogrammen" msgid "Overlays" msgstr "Overlays" msgid "Enabled overlays" msgstr "Ingeschakelde overlays" msgid "Local disks only" msgstr "hetAlleen lokale schijven" msgid "Enabled Overlay Handlers" msgstr "Ingeschakelde Overlay Handlers" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "" "Waarschuwing: heeft invloed op alle Tortoises, afmelden vereist na wijziging." msgid "Added" msgstr "Toegevoegd" msgid "Locked*" msgstr "Locked*" msgid "Ignored*" msgstr "Genegeerd*" msgid "Unversioned" msgstr "Niet-getraceerd" msgid "Readonly*" msgstr "Alleen-lezen*" msgid "Deleted*" msgstr "Verwijderd*" msgid "*: not used by TortoiseHg" msgstr "*: niet gebruikt door TortoiseHg" msgid "Taskbar" msgstr "Taakbalk" msgid "Show Icon" msgstr "Ikoon tonen" msgid "Highlight Icon" msgstr "Ikoon in de verf zetten" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" msgid "Explorer Extension Settings - TortoiseHg" msgstr "" msgid "Clear" msgstr "Wissen" msgid "Clear the current shelf file" msgstr "Wis het huidige shelf bestand" msgid "Delete the current shelf file" msgstr "Schrap het huidige shelf bestand" msgid "Left Toolbar" msgstr "Linker Toolbar" msgid "Delete selected chunks" msgstr "Schrap de gekozen blokken" msgid "Move all files right" msgstr "Verplaats alle bestanden naar rechts" msgid "Move selected file right" msgstr "Verplaats gekozen bestand naar rechts" msgid "Edit file" msgstr "Bewerk bestand" msgid "Move selected chunks right" msgstr "Verplaats gekozen blokken naar rechts" msgid "Refresh Toolbar" msgstr "Ververs Toolbar" msgid "Refresh" msgstr "Verversen" msgid "New Shelf" msgstr "Nieuwe shelf" msgid "Right Toolbar" msgstr "Rechter Toolbar" msgid "Move selected chunks left" msgstr "Verplaats gekozen blokken naar links" msgid "Move selected file left" msgstr "Verplaats gekozen bestand naar links" msgid "Move all files left" msgstr "Verplaats alle bestanden naar links" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "Backup kopiën van gewijzigde bestanden zijn te vinden in .hg/Trashcan/" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "TortoiseHg Shelve - %s" msgid "Delete selected chunks from working copy?" msgstr "" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "" msgid "Are you sure?" msgstr "Weet u het zeker ?" msgid "TortoiseHg New Shelf Name" msgstr "TortoiseHg Nieuwe Shelf Naam" msgid "Specify name of new shelf" msgstr "Geef de naam op voor de nieuwe shelf" msgid "Bad filename" msgstr "Ongeldige bestandsnaam" #, python-format msgid "A shelf name cannot contain %s" msgstr "" msgid "File already exists" msgstr "Bestand bestaat reeds" msgid "A shelf file of that name already exists" msgstr "Er bestaat al een shelf met die naam" msgid "New shelf created" msgstr "Nieuwe shelf aangemaakt" #, python-format msgid "Delete shelf file %s?" msgstr "Shelf bestand %s schrappen ?" msgid "Shelf deleted" msgstr "Shelf geschrapt" msgid "Revert all working copy changes?" msgstr "Alle wijzigingen in de werkmap omkeren ?" #, python-format msgid "Clear contents of shelf file %s?" msgstr "Inhoud van shelf bestand %s uitwissen ?" msgid "Shelf cleared" msgstr "Shelf uitgeblankt" #, python-format msgid "Shelf: %s" msgstr "Shelf: %s" #, python-format msgid "Patch: %s" msgstr "Patch: %s" msgid "Key:" msgstr "" msgid "Local sign" msgstr "" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "" msgid "No commit" msgstr "" msgid "Use custom commit message:" msgstr "Gebruik eigen commitbericht:" msgid "&Sign" msgstr "" #, python-format msgid "Sign - %s" msgstr "" msgid "Signature has been added" msgstr "" msgid "Repository command still running" msgstr "Er loopt nog steeds een repository opdracht" msgid "Filter:" msgstr "Filter:" msgid "Check all files" msgstr "Alle bestanden aanvinken" msgid "Uncheck all files" msgstr "Alle bestanden afvinken\"" msgid "Status File List Toolbar" msgstr "Status Bestandslijst Toolbar" msgid "Remove filter, show root" msgstr "Filter wegnemen, wortel tonen" #, python-format msgid "%s - status (selection filtered)" msgstr "%s - status (gefilterde selectie)" #, python-format msgid "%s - status" msgstr "%s - status" msgid "Check" msgstr "Aanvinken" msgid "Uncheck" msgstr "Afvinken" msgid "status" msgstr "status" msgid "Failed to refresh" msgstr "" msgid "No appropriate files" msgstr "Geen passende bestanden" msgid "No files found for this operation" msgstr "Geen bestanden gevonden voor deze bewerking" msgid "Stat" msgstr "Status" msgid "M" msgstr "M" msgid "Filename" msgstr "Bestandsnaam" msgid "Size (KB)" msgstr "Grootte (KB)" #, python-format msgid "Checked count: %d" msgstr "Aantal aangevinkt: %d" msgid ", resolved merge" msgstr ", opgeloste samenvoeging" msgid ", unresolved merge" msgstr ", onopgeloste samenvoeging" #, python-format msgid "%s is modified" msgstr "%s is gewijzigd" msgid "modified" msgstr "gewijzigd" #, python-format msgid "%s is added" msgstr "%s is toegevoegd" msgid "added" msgstr "toegevoegd" #, python-format msgid "%s is removed" msgstr "%s is verwijderd" msgid "removed" msgstr "verwijderd" #, python-format msgid "%s is not tracked (unknown)" msgstr "%s wordt niet getraceerd (onbekend)" msgid "unknown" msgstr "onbekend" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "" msgid "missing" msgstr "ontbrekend" #, python-format msgid "%s is ignored" msgstr "%s wordt genegeerd" msgid "ignored" msgstr "genegeerd" #, python-format msgid "%s is not modified (clean)" msgstr "%s is niet gewijzigd (zuiver)" msgid "clean" msgstr "ongewijzigd" #, python-format msgid "%s is a dirty subrepo" msgstr "%s is een subrepo met wijzigingen" msgid "subrepo" msgstr "subrepo" msgid "Check for incoming changes from selected URL" msgstr "Kontroleer op inkomende wijzigingen vanaf de gekozen URL" msgid "Pull incoming changes from selected URL" msgstr "Pull inkomende wijzigingen vanaf de gekozen URL" msgid "Detect outgoing changes to selected URL" msgstr "Detecteer uitgaande wijzigingen naar de gekozen URL" msgid "Push outgoing changes to selected URL" msgstr "Push uitgaande wijzigingen naar de gekozen URL" msgid "Sync Bookmarks" msgstr "" msgid "Email outgoing changesets for remote repository" msgstr "Email uitgaande changesets voor de externe repository" msgid "Manage pending perforce changelists" msgstr "Beheer hangende perforce changelists" msgid "Unbundle" msgstr "Ontbundelen" msgid "Selected Options:" msgstr "Gekozen Opties:" msgid "Path Edit Toolbar" msgstr "Pad Editeer Toolbar" msgid "Security" msgstr "Beveiliging" msgid "Manage HTTPS connection security and user authentication" msgstr "Beheer HTTPS verbindingsbeveiliging and gebruikers authenticatie" msgid "Save" msgstr "Opslaan" msgid "Save current URL under an alias" msgstr "Sla huidige URL op onder een alias" msgid "Paths in Repository Settings:" msgstr "Paden in Repository Instellingen" msgid "Related Paths:" msgstr "Gerelateerde Paden:" msgid "branch: " msgstr "tak: " msgid "bookmark: " msgstr "bladwijzer: " #, python-format msgid "rev: %d (%s)" msgstr "rev: %d (%s)" msgid "Post Pull: " msgstr "Na-Pull: " msgid "&Edit..." msgstr "B&ewerken..." msgid "&Remove..." msgstr "Wegnemen..." msgid "Repository not local" msgstr "Repository is niet lokaal" msgid "A terminal shell cannot be opened for remote" msgstr "Er kan geen terminal shell geopend worden voor extern" msgid "Confirm path delete" msgstr "Bevestig schrappen van pad" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "%s schrappen uit het repository instellingenbestand ?" msgid "Select repository" msgstr "" msgid "No host specified" msgstr "" msgid "Please set a valid URL to continue." msgstr "" msgid "No remote repository URL or path set" msgstr "Er is geen externe repository of pad ingesteld" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

                                                                      Please type and save a remote repository path on the " "Sync widget." msgstr "" "Er is geen geldige default externe repository URL of pad ingesteld " "voor deze repository.

                                                                      Tik aub een pad in van een externe repository in het " "Sync scherm en sla het op." msgid "Redundant authentication info" msgstr "Overtollige authenticatie info" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" "Je hebt authenticatie info geconfigureerd voor de host in deze url. " "Authenticatie info verwijderen uit deze url?" msgid "sync command already running" msgstr "er loopt al een sync opdracht" #, python-format msgid "Getting incoming changesets from %s..." msgstr "Bezig met ophalen inkomende changesets van %s..." #, python-format msgid "Found incoming changesets from %s" msgstr "Changesets inkomend van %s gevonden" #, python-format msgid "No incoming changesets from %s" msgstr "Geen inkomende changesets vanaf %s" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "Inkomend van %s afgebroken, ret %d" #, python-format msgid "Pulling from %s..." msgstr "Bezig met pull vanaf %s..." #, python-format msgid "Pull from %s completed" msgstr "Pull vanaf %s voltooid" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "Pull van %s afgebroken, ret %d" msgid "Merge caused file conflicts" msgstr "Samenvoegen veroorzaakte bestandsconflicten" msgid "File conflicts need to be resolved" msgstr "Er moeten bestandsconflicten opgelost worden" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "Bezig met zoeken van uitgaande changesets naar %s..." #, python-format msgid "%d outgoing changesets to %s" msgstr "%d uitgaande changesets naar %s" #, python-format msgid "No outgoing changesets to %s" msgstr "Geen uitgaande changesets naar %s" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "Zoeken uitgaande naar %s afgebroken, ret %d" msgid "Perforce pending..." msgstr "Perforce pending..." #, python-format msgid "%s (submitted)" msgstr "%s (aangeboden)" #, python-format msgid "%s (pending)" msgstr "%s (hangend)" msgid "Unable to parse p4pending output" msgstr "Kan p4pending resultaat niet ontleden" #, python-format msgid "%d pending changelists found" msgstr "%d pending changelists gevonden" msgid "No pending Perforce changelists" msgstr "Geen pending Perforce changelists" msgid "Aborted p4pending" msgstr "p4pending afgebroken" msgid "Unable to determine pending changesets" msgstr "Kan pending changesets niet bepalen" msgid "Confirm Push to remote Repository" msgstr "Bevestig Push naar Externe Repository" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" "Push naar externe repository\n" "%s\n" "?" #, python-format msgid "Push to %s aborted" msgstr "Push naar %s afgebroken" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" "Ongeldige standaard push revisie: %s. Kontroleer aub uw Mercurial " "instellingen (tortoisehg.defaultpush)" #, python-format msgid "Pushing to %s..." msgstr "Bezig met push naar %s..." #, python-format msgid "Push to %s completed" msgstr "Push naar %s is voltooid" #, python-format msgid "Push to %s aborted, ret %d" msgstr "Push naar %s afgebroken, ret %d" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" "Een of meer van de changesets die u probeert te pushen vergen de aanmaak van " "een nieuwe tak. Wilt u een nieuwe tak aanmaken in de externe repository?" msgid "Determining outgoing changesets to email..." msgstr "Bepaal uitgaande changesets om te emailen..." msgid "No outgoing changesets" msgstr "Geen uitgaande changesets" #, python-format msgid "Outgoing aborted, ret %d" msgstr "Zoeken uitgaande afgebroken, ret %d" msgid "Select bundle file" msgstr "Kies bundelbestand" msgid "Bundle files (*.hg)" msgstr "Bundelbestanden (*.hg)" msgid "Unable to remove URL" msgstr "Kan URL niet verwijderen" msgid "Post Pull Behavior" msgstr "Na-Pull Gedrag" msgid "Select post-pull operation for this repository" msgstr "Kies de na-pull operatie voor deze repository" msgid "None - simply pull changesets" msgstr "Geen - enkel pull van changesets" msgid "Update - pull, then try to update" msgstr "Bijwerken - pull, en probeer dan bij te werken" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "Fetch - gebruik fetch (auto-samenvoegen van gepullde wijzigingen)" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "Fetch - gebruik fetch uitbreiding (fetch is niet aktief!)" msgid "Rebase - rebase local commits above pulled changes" msgstr "Rebase - rebase lolake commits bovenop de gepullde wijzigingen" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "Rebase - gebruik de rebase uitbreiding (rebase is niet aktief!)" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "" msgid "Launch settings tool..." msgstr "Lanceer instellingen gereedschap..." msgid "Unable to save post pull operation" msgstr "Kan na-pull operatie niet opslaan" msgid "Save Path" msgstr "Pad Opslaan" msgid "Alias" msgstr "Alias" msgid "URL" msgstr "URL" msgid "Remove authentication data from URL" msgstr "Authenticatiegegevens verwijderen uit de URL" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" "Gebruikersauthenticatiegegevens zouden geassociëerd moeten worden met de " "hostnaam via het beveiligingsscherm." msgid "Update subrepo paths" msgstr "" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" msgid "Unable to save an URL" msgstr "Kan geen URL opslaan" msgid "Confirm URL replace" msgstr "Bevestig vervangen van de URL" #, python-format msgid "%s already exists, replace URL?" msgstr "%s bestaat al, URL vervangen ?" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

                                                                      %s

                                                                      Replace it with the " "following URL?:

                                                                      %s" msgstr "" msgid "Security: " msgstr "Beveiliging: " #, python-format msgid "Host: %s" msgstr "Host: %s" msgid "Secure HTTPS Connection" msgstr "Veilige HTTPS Verbinding" msgid "Verify with Certificate Authority certificates (best)" msgstr "Kontroleer met Certificaatauthoriteit certificates (best)" msgid "Verify with stored host fingerprint (good)" msgstr "Kontroleer met opgeslagen vingerafdruk (good)" msgid "No host validation, but still encrypted (bad)" msgstr "Geen host bevestiging, maar toch versleuteld (bad)" msgid "### host certificate fingerprint ###" msgstr "### host certificaat vingerafdruk ###" msgid "Query" msgstr "Query" msgid "TLS 1.0" msgstr "" msgid "TLS 1.1" msgstr "" msgid "TLS 1.2" msgstr "" msgid "Minimum Protocol" msgstr "" msgid "User Authentication" msgstr "Gebruikersauthenticatie" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" "Optioneel. Gebruikersnaam om mee te authenticeren. Indien niet gegeven, en " "de externe\n" "site vereist basis or digest athenticatie, dan zal de gebruiker er om " "gevraagd worden.\n" "Omgevingsvariabelen worden geëxpandeerd in de gebruikersnaam om u toe te " "laten\n" "om foo.username = $USER te gebruiken." msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" "Optioneel. Wachtwoord om mee te authenticeren. Indien niet gegeven,\n" "en de externe site vereist basis of digest authenticatie,\n" "dan zal de gebruiker er om gevraagd worden." msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" "De Mercurial keyring uitbreiding is geactiveerd. Wachtwoorden zullen " "opgeslagen worden met een platform-onafhankelijke beveiligingsmethode." msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" "Optioneel. PEM geëncodeerd client certificaat sleutelbestand. " "Omgevingsvariabelen\n" " worden geëxpandeerd in de bestandsnaam." msgid "User Certificate Key" msgstr "" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" "Optioneel. PEM geëncodeerd klantcertificaat kettingbestand. " "Omgevingsvariabelen\n" "worden geëxpandeerd in de bestandsnaam." msgid "User Certificate Chain" msgstr "" msgid "Certificate Query Error" msgstr "Certificate Query Fout" msgid "Select User Certificate Key File" msgstr "" msgid "PEM files (*.pem *.key)" msgstr "" msgid "Select User Certificate Chain File" msgstr "" msgid "PEM files (*.pem *.crt *.cer)" msgstr "" msgid "Unable to save authentication" msgstr "Kan authenticatie niet opslaan" #, python-format msgid "%s - sync options" msgstr "%s - sync opties" msgid "Allow push of a new branch (--new-branch)" msgstr "Push van een nieuwe tak toestaan (--new-branch)" msgid "Force push or pull (override safety checks, --force)" msgstr "Push of pull forceren (negeer beveiligingskontroles, --force)" msgid "Temporarily disable configured HTTP proxy" msgstr "Geconfigureerde HTTP proxy tijdelijk uitgeschakeld" msgid "Emit debugging output (--debug)" msgstr "Stuur debugging resulaten uit (--debug)" msgid "Work on patch queue (--mq)" msgstr "Werk op de patch queue (--mq)" #, python-format msgid "Tag - %s" msgstr "Etiketteren - %s" msgid "Tag:" msgstr "Etiket:" msgid "Tagged:" msgstr "Geëtiketteerd:" msgid "Local tag" msgstr "Lokaal etiket" msgid "Replace existing tag (-f/--force)" msgstr "Vervang bestaand etiket (-f/--force)" msgid "Use English commit message" msgstr "Gebruik engels commitbericht" msgid "local" msgstr "lokaal" msgid "Move" msgstr "Verplaatsen" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "Etiket %s verplaatst naar changeset %s (vanaf changeset %s)" #, python-format msgid "Added tag %s for changeset %s" msgstr "Etiket %s toegevoegd voor changeset %s" #, python-format msgid "Tag '%s' has been moved" msgstr "Etiket '%s' werd verplaatst" #, python-format msgid "Tag '%s' has been added" msgstr "Etiket '%s' werd toegevoegd" #, python-format msgid "Removed tag %s" msgstr "Etiket %s is verwijderd" #, python-format msgid "Tag '%s' has been removed" msgstr "Etiket '%s' werd verwijderd" msgid "Patch files (*.diff *.patch)" msgstr "Patchbestanden (*.diff *.patch)" #, python-format msgid "Import - %s" msgstr "Importeer - %s" msgid "Browse Directory..." msgstr "Bladeren door map..." msgid "Import from Clipboard" msgstr "Importeer van Klembord" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "Paden niet strippen (-p0), vereist voor SVN patches" msgid "Preview:" msgstr "Vooraf bekijken:" msgid "Shelf" msgstr "Shelf" msgid "Checking working directory status..." msgstr "Bezig met kontroleren van de status van de werkmap..." msgid "&Import" msgstr "&Importeren" msgid "Working directory is not clean! View changes..." msgstr "Werkmap bevat wijzigingen ! Bekijken..." msgid "Select patches" msgstr "Kies patches" msgid "Select Directory containing patches" msgstr "Kies map met patches" #, python-format msgid "%s patches" msgstr "%s patches" #, python-format msgid "%s will be imported to " msgstr "%s zal geïmporteerd worden naar " msgid "Nothing to import" msgstr "Niets om te importeren" msgid "Strip:" msgstr "Strip:" msgid "Discard local changes, no backup (-f/--force)" msgstr "Lokale wijzigingen verwerpen, geen backup (-f/--force)" msgid "No backup (-n/--nobackup)" msgstr "Geen backup (-n/--nobackup)" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "%d changeset zal gestripped worden" msgstr[1] "%d changesets zullen gestripped worden" msgid "Unknown revision!" msgstr "Onbekende revisie!" msgid "Detected uncommitted local changes." msgstr "Detecteer niet gecommitte lokale wizigingen" msgid "Do you want to keep them or discard them?" msgstr "" msgid "&Keep (--keep)" msgstr "" msgid "&Discard (--force)" msgstr "" msgid "Confirm Strip" msgstr "Bevestig Strip" #, python-format msgid "Strip - %s" msgstr "Strip - %s" msgid "&Strip" msgstr "&Strip" msgid "Topic:" msgstr "" msgid "&Rename" msgstr "" #, python-format msgid "Topic - %s" msgstr "" #, python-format msgid "A topic named \"%s\" already exists" msgstr "" #, python-format msgid "Topic '%s' has been added" msgstr "" #, python-format msgid "Topic '%s' does not exist" msgstr "" #, python-format msgid "Topic '%s' has been removed" msgstr "" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "" msgid "Parent 1:" msgstr "Ouder 1:" msgid "Parent 2:" msgstr "Ouder 2:" msgid "Pull subrepos from:" msgstr "" msgid "List updated files (--verbose)" msgstr "Geef lijst van bijgewerkte bestanden (--verbose)" msgid "Discard local changes, no backup (-C/--clean)" msgstr "Verwerp lokale wijzigingen, geen backup (-C/--clean)" msgid "Always merge (when possible)" msgstr "Altijd samenvoegen (indien mogelijk)" msgid "(same as parent)" msgstr "(zelfde als ouder)" msgid "Activate bookmark?" msgstr "Aktieve bladwijzer?" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

                                                                      Do " "you want to activate it?
                                                                      You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" "De gekozen revisie (%s) heeft een bladwijzer met de naam \"%s\"." "

                                                                      Wilt u die aktiveren?
                                                                      U kunt deze prompt uitschakelen door " "Instellingen/Werkbank/Aktieve Bladwijzers in te stellen" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

                                                                      Select " "the bookmark that you want to activate and click OK.

                                                                      Click " "Cancel if you don't want to activate any of them.

                                                                      You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                                      " msgstr "" "De gekozen revisie (%s) heeft %d bladwijzers.

                                                                      Kies de " "bladwijzer die u wilt aktiveren en klik OK.

                                                                      Klik Annuleren " "als u geen enkele ervan wilt aktiveren.

                                                                      U kunt deze prompt " "uitschakelen door Instellingen/Werkbank/Aktieve Bladwijzers in te stellen

                                                                      " msgid "Deactivate current bookmark?" msgstr "Huidige bladwijzer uitschakelen?" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "Wilt u echt bladwijzer %s uitschakelen?" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" "Detecteer niet-gecommitte likale wijzigingen in de werkmap.\n" "Selecteer aub om verder te gaan:\n" msgid "Discard - discard local changes, no backup" msgstr "Verwerpen - vererp lolake wijzigingen, geen backup" msgid "&Shelve" msgstr "&Shelve" msgid "Shelve - move local changes to a patch" msgstr "Shelve - verplaats lokale wijzigingen naar een patch" msgid "Merge - allow to merge with local changes" msgstr "Samenvoegen - laat toe om samen te voegen met lokale wijzigingen" msgid "Confirm Update" msgstr "Bevestig Bijwerken" #, python-format msgid "Update - %s" msgstr "Bijwerken - %s" msgid "[non-existant]" msgstr "[niet-bestaand]" msgid "Tool launch failure" msgstr "Lanceren Tool gefaald" #, python-format msgid "%s : %s" msgstr "%s: %s" msgid "No diff tool found" msgstr "Geen vergelijkingsprogramma gevonden" msgid "No visual diff tools were detected" msgstr "Er zijn geen vergelijkingsprogramma's ontdekt" msgid "[working copy]" msgstr "[werkmap]" msgid "[original]" msgstr "[origineel]" msgid "Unable to find changeset" msgstr "Kan changeset niet vinden" msgid "You likely need to refresh this application" msgstr "U moet deze toepassing waarschijnlijk verversen" msgid "No file changes" msgstr "Geen gewijzigde bestanden" msgid "There are no file changes to view" msgstr "Er zijn geen gewijzigde bestanden om te bekijken" msgid "working changes" msgstr "wijzigingen in werkmap" #, python-format msgid "changeset %d:%s" msgstr "changeset %d:%s" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "revisies %d:%s tot %d:%s" msgid "Visual Diffs - " msgstr "Visuele Vergelijkingen - " msgid " filtered" msgstr " gefilterd" msgid "Temporary files are removed when this dialog is closed" msgstr "Tijdelijke bestanden worden verwijderd als dit scherm gesloten wordt." msgid "Select Tool:" msgstr "Kies Programma:" msgid "Dir diff to p1" msgstr "Map vergelijking met p1" msgid "Dir diff to p2" msgstr "Map vergelijking met p2" msgid "3-way dir diff" msgstr "3-wegs mapvergelijking" msgid "Directory diff" msgstr "Map vergelijking" msgid "Confirm Discard" msgstr "Bevestig Verwerpen" msgid "Discard outstanding changes to working directory?" msgstr "Openstaande wijzigingen in de werkmap verwerpen?" msgid "Config files (*.conf *.config *.ini)" msgstr "" msgid "Open hgweb config" msgstr "Open hgweb instellingen" msgid "Save hgweb config" msgstr "Sla hgweb instellingen op" msgid "Path:" msgstr "Pad:" msgid "Local Path:" msgstr "Lokaal pad:" msgid "Select Repository" msgstr "Selecteer Rpository" msgid "Add Path to Serve" msgstr "Voeg Pad toe om te Serveren" msgid "Edit Path to Serve" msgstr "Editeer Pad om te Serveren" msgid "Local Path" msgstr "Lokaal pad" msgid "Webconf" msgstr "Webconf" msgid "Config File:" msgstr "Instellingenbestand:" msgid "Open" msgstr "Openen" msgid "New &Workbench" msgstr "Nieuwe &Werkbank" msgid "&New Repository..." msgstr "&Nieuwe Repository..." msgid "Clon&e Repository..." msgstr "Repository Klonen..." msgid "&Open Repository..." msgstr "Repository Openen..." msgid "&File" msgstr "Bestand" msgid "&View" msgstr "Bekijken" msgid "&Repository" msgstr "&Repository" msgid "&Help" msgstr "&Help" msgid "&Dock Toolbar" msgstr "&Docking toolbar" msgid "&Task Toolbar" msgstr "&Taak Toolbar" msgid "&Custom Toolbar" msgstr "Maatwerk Toolbar" msgid "S&ync Toolbar" msgstr "S&ync Toolbar" msgid "&Close Repository" msgstr "Repository Sluiten" msgid "Sh&ow Repository Registry" msgstr "Repository Register Tonen" msgid "Show &Patch Queue" msgstr "Toon &Patch Queue" msgid "Show Conso&le" msgstr "" msgid "Place Console in Doc&k Area" msgstr "" msgid "R&epository Registry Options" msgstr "R&epository Register Opties" msgid "Save Open Repositories on E&xit" msgstr "Open Repositories Opslaan bij Afsluiten" msgid "Sa&ve Current Sync Paths on Exit" msgstr "" msgid "Show Tas&k Tab" msgstr "" msgid "&Commit" msgstr "&Commit" msgid "&Patch Branch" msgstr "&Patch Tak" msgid "Revision &Details" msgstr "Revisie &Details" msgid "&Search" msgstr "Zoeken" msgid "S&ynchronize" msgstr "S&ynchroniseren" msgid "Refresh current repository" msgstr "Huidige repository verversen" msgid "Refresh &Task Tab" msgstr "&Taaktab Verversen" msgid "Refresh only the current task tab" msgstr "Enkel de huidihe taaktab verversen" msgid "Load &All Revisions" msgstr "&Alle Revisies Laden" msgid "Load all revisions into graph" msgstr "Alle revisies in de graaf laden" msgid "Go to current revision" msgstr "Ga naar huidige revisie" msgid "&Goto Revision..." msgstr "&Ga naar Revisie..." msgid "Go to a specific revision" msgstr "Naar een specifieke revisie gaan" msgid "Filter graph with revision sets or branches" msgstr "Filter graaf met revisie sets of met takken" msgid "&Workbench Toolbars" msgstr "&Werkbank Werkbalken" msgid "&Lock File..." msgstr "" msgid "Lock or unlock files" msgstr "" msgid "Update working directory or switch revisions" msgstr "" msgid "&Shelve..." msgstr "&Shelve..." msgid "&Import Patches..." msgstr "" msgid "U&nbundle..." msgstr "" msgid "&Merge..." msgstr "" msgid "Merge with the other head of the current branch" msgstr "" msgid "&Resolve..." msgstr "Oplossen..." msgid "R&ollback/Undo..." msgstr "" msgid "&Purge..." msgstr "Uitzuiveren..." msgid "&Bisect..." msgstr "&Bisect..." msgid "&Verify" msgstr "&Verifiëren" msgid "Re&cover" msgstr "Herstellen" msgid "&Web Server" msgstr "" msgid "E&xplorer Help" msgstr "E&xplorer Help" msgid "&Readme" msgstr "Leesmij" msgid "About &Qt" msgstr "Over &Qt" msgid "&About TortoiseHg" msgstr "Over TortoiseHg" msgid "&Incoming" msgstr "" msgid "&Pull" msgstr "" msgid "&Outgoing" msgstr "" msgid "P&ush" msgstr "" msgid "&Sync Bookmarks..." msgstr "" #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" msgid "Check for incoming changes" msgstr "" msgid "Pull incoming changes" msgstr "" msgid "Detect outgoing changes" msgstr "" msgid "Push outgoing changes" msgstr "" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" #, python-format msgid "Execute custom tool '%s'" msgstr "Voer eigen tool '%s' uit" msgid "Custom Toolbar &Settings" msgstr "" msgid "TortoiseHg Workbench" msgstr "TortoiseHg Werkbank" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "%s - TortoiseHg Werkbank - %s" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "%s - TortoiseHg Werkbank" msgid "Goto revision" msgstr "Ga naar revisie" msgid "Enter revision identifier" msgstr "Revisie idantificatie ingeven" msgid "Select repository directory to open" msgstr "Selecteer de repository map om te openen" msgid "README not configured" msgstr "LEESMIJ niet ingesteld" msgid "" "A README file is not configured for the current repository.

                                                                      To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" "Er is geen LEESMIJ bestand ingesteld voor de huidige repository.

                                                                      Om een " "LEESMIJ bestand in te stellen voor een repository dient u het repository " "instellingenbestand te openen, een sleutel 'readme toe te voegen aan " "de sectie 'tortoisehg', en moet u een bestandsnaam of URL van uw " "repository's LEESMIJ bestand instellen." msgid "Issue Tracker Plugin Error" msgstr "Probleem Opvolger Plugin Fout" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "Kon het Probleem Opvolger plugin COM object niet instantiëren" msgid "This error will not be shown again until you restart the workbench" msgstr "" "Deze fout zal niet opnieuw getoond worden tot u de werkbank opnieuw opstart" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "" "Fout bij ophalen Commit bericht informatie van de Probleem Opvolger plugin" msgid "Error executing \"commit finished\" trigger" msgstr "Fout bij uitvoeren van de \"commit beëindigd\" trigger" msgid "Cannot open Plugin Options dialog" msgstr "Kan de Plugin Opties dialoog niet openen" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "" msgid "[--insecure] [SOURCE]" msgstr "" #, python-format msgid "unsupported URL: %s" msgstr "" #, python-format msgid "%s certificate error: no certificate received" msgstr "" msgid "move after the specified patch" msgstr "" msgid "[--after PATCH] PATCH..." msgstr "" msgid "unknown patch to move specified" msgstr "" msgid "invalid patch position specified" msgstr "" msgid "cannot move applied patches" msgstr "" #, python-format msgid "patch %s not in series" msgstr "" msgid "cannot move into applied patches" msgstr "" msgid "abort: " msgstr "afgebroken: " msgid "hint: " msgstr "hint: " #, python-format msgid "HTTP Error: %d (%s)" msgstr "HTTP fout: %d (%s)" #, python-format msgid "URLError: %s" msgstr "URLFout: %s" msgid "SSL: Server certificate verify failed" msgstr "SSL: kontrole van Server certificaat gefaald" #, python-format msgid "SSL: unknown error %s:%s" msgstr "SSL: onbekende fout %s: %s" #, python-format msgid "SSL error: %s" msgstr "SSL fout = %s" msgid "hgsubversion packaged with thg" msgstr "" msgid "hggit packaged with thg" msgstr "" msgid "inotify is not supported on this platform" msgstr "inotify is niet ondersteund op dit platform" msgid "eol is incompatible with win32text" msgstr "eol is niet compatibel met win32text" msgid "win32text is incompatible with eol" msgstr "win32text is niet compatibel met eol" msgid "hgsubversion is incompatible with perfarce" msgstr "hgsubversion is niet compatibel met perfarce" msgid "perfarce is incompatible with hgsubversion" msgstr "perfarce is niet compatibel met hgsubversion" msgid "Workbench custom toolbar" msgstr "Werkbank maatwerk toolbar" msgid "Revision details context menu" msgstr "Revisie details contextmenu" msgid "Pair selection context menu" msgstr "" msgid "Multiple selection context menu" msgstr "" msgid "Commit context menu" msgstr "Commit contextmenu" msgid "File context menu (on manifest and revision details)" msgstr "" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "%d jaar" msgstr[1] "%d jaren" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "%d maand" msgstr[1] "%d maanden" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "%d week" msgstr[1] "%d weken" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "%d dag" msgstr[1] "%d dagen" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "%d uur" msgstr[1] "%d uren" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "%d minuut" msgstr[1] "%d minuten" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d seconde" msgstr[1] "%d seconden" msgid "in the future" msgstr "in de toekomst" msgid "now" msgstr "nu" #, python-format msgid "command parse error: %s" msgstr "fout bij ontleden opdracht: %s" #, python-format msgid "no matches found: %s" msgstr "geen overeenkomsten gevonden: %s" msgid "Commit..." msgstr "Commit..." msgid "Commit changes in repository" msgstr "Commit de wijzigingen in de repository" msgid "Create Repository Here" msgstr "Maak hier een nieuwe repository" msgid "Create a new repository" msgstr "Maak een nieuwe repository aan" msgid "Clone..." msgstr "Klonen..." msgid "Create clone here from source" msgstr "Maak kloon aan vanaf bron" msgid "File Status" msgstr "Bestand Status" msgid "Repository status & changes" msgstr "Repository status & wijzigingen" msgid "Add Files..." msgstr "Bestanden Toevoegen..." msgid "Add files to version control" msgstr "Bestanden toevoegen voor versie kontrole" msgid "Revert Files..." msgstr "Bestanden Omkeren..." msgid "Revert file changes" msgstr "Wijzigingen in bestand omkeren" msgid "Forget Files..." msgstr "Bestanden Vergeten..." msgid "Remove files from version control" msgstr "Bestanden verwijderen uit versie kontrole" msgid "Remove Files..." msgstr "Bestanden Verwijderen..." msgid "Rename File" msgstr "Bestand Hernoemen" msgid "Rename file or directory" msgstr "Bestand of map hernoemen" msgid "View change history in repository" msgstr "Bekijk historiek van wijzigingen in repository" msgid "File History" msgstr "Bestandshistorie" msgid "View change history of selected files" msgstr "Bekijk historiek van wijzigingen van de gekozen bestanden" msgid "Shelve Changes" msgstr "Shalve Wijzigingen" msgid "Move changes between working dir and patch" msgstr "Verplaats wijzigingen van werkmap naar patch" msgid "Synchronize" msgstr "Synchroniseren" msgid "Synchronize with remote repository" msgstr "Synchroniseer met externe repository" msgid "Start web server for this repository" msgstr "Start de web server voor deze repository" msgid "Update..." msgstr "Bijwerken..." msgid "Update working directory" msgstr "Werkmap bijwerken" msgid "Update Icons" msgstr "Ikonen Bijwerken" msgid "Update icons for this repository" msgstr "Ikonen bijwerken voor deze repository" msgid "Global Settings" msgstr "Globale instellingen" msgid "Configure user wide settings" msgstr "Stel gebruikersinstellingen in" msgid "Repository Settings" msgstr "Repository Instellingen" msgid "Configure repository settings" msgstr "Stel instellingen voor repository in" msgid "Explorer Extension Settings" msgstr "Instgellingen voor de Verkenner Uitbreiding" msgid "Configure Explorer extension" msgstr "Stel instellingen in voor de Verkenner uitbreiding" msgid "About TortoiseHg" msgstr "TortoiseHg Info" msgid "Show About Dialog" msgstr "Toon het Info scherm" msgid "Diff to parent" msgstr "Vergelijk met ouder" msgid "View changes using GUI diff tool" msgstr "Bekijk wijzigingen met het GUI vergelijkingsprogramma" msgid "Edit Ignore Filter" msgstr "NegeerFilter Aanpassen" msgid "Edit repository ignore filter" msgstr "Repository negeer-filter aanpassen" msgid "Guess Renames" msgstr "Hernoemingen raden" msgid "Detect renames and copies" msgstr "Hernoemingen en kopies opsporen" msgid "Search History" msgstr "Historiek Doorzoeken" msgid "Search file revisions for patterns" msgstr "Bestandsrevisies zoeken voor patronen" msgid "DnD Synchronize" msgstr "DnD Synchronisatie" msgid "Synchronize with dragged repository" msgstr "Synchroniseer met gesleepte repository" #, python-format msgid "unrecognized response: %s" msgstr "" msgid "password: " msgstr "wachtwoord: " #, python-format msgid "repository %s not found" msgstr "repository %s niet gevonden" msgid "win32ill: cannot create window for messages" msgstr "" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "" msgid "win32ill: interrupted while stopping message loop\n" msgstr "" #~ msgid "(version %s)" #~ msgstr "(versie %s)" #~ msgid "with %s" #~ msgstr "met %s" #~ msgid "Confirm revert file to old revision" #~ msgstr "Bevestig terugzetten naar oude revisie" #~ msgid "Revert %s to contents at revision %d?" #~ msgstr "Terugzetten van %s naar inhoud bij revisie %d?" #~ msgid "_Undo" #~ msgstr "_Ongedaan maken" #~ msgid "Archive revision:" #~ msgstr "Archief revisie:" #~ msgid "Copyright 2008-2010 Steve Borho and others" #~ msgstr "Copyright 2008-2010 Steve Borho en anderen" #~ msgid "All Files (*.*)" #~ msgstr "Alle bestanden (*.*)" #~ msgid "Archive" #~ msgstr "Archiveren" #~ msgid "Canceled archiving" #~ msgstr "Archivering geannuleerd" #~ msgid "Archived successfully" #~ msgstr "Archiveren successvol" #~ msgid "unexpected type: %s" #~ msgstr "onverwacht type: %s" #~ msgid "Bookmark input is empty" #~ msgstr "Bladwijzer input is leeg" #~ msgid "Error in bookmarking" #~ msgstr "Fout tijdens bladwijzer indexering" #~ msgid "Bookmark \"%s\" has been added" #~ msgstr "Bladwijzer \"%s\" is toegevoegd" #~ msgid "Bookmarking completed" #~ msgstr "Bladwijzer indexering afgerond" #~ msgid "Please enter bookmark name" #~ msgstr "Gelieve een bladwijzernaam in te geven" #~ msgid "Bookmark name is empty" #~ msgstr "Bladwijzernaam is leeg" #~ msgid "Bookmark \"%s\" has been moved" #~ msgstr "Bladwijzer \"%s\" is verplaatst" #~ msgid "Bookmark \"%s\" has been removed" #~ msgstr "Bladwijzer \"%s\" is verwijderd" #~ msgid "Please select bookmark name to remove" #~ msgstr "Gelieve een bladwijzernaam te kiezen om te verwijderen" #~ msgid "Bookmark new name input is empty" #~ msgstr "Nieuwe bladwijzernaam is leeg" #~ msgid "path" #~ msgstr "pad" #~ msgid "Bookmark \"%s\" has been renamed to \"%s\"" #~ msgstr "Bladwijzer \"%s\" is hernoemd naar \"%s\"" #~ msgid "No bookmark named \"%s\" exists" #~ msgstr "Geen bladwijzer met naam \"%s\" gevonden" #~ msgid "a bookmark named \"%s\" already exists" #~ msgstr "een bladwijzernaam \"%s\" bestaat reeds" #~ msgid "Please enter new bookmark name" #~ msgstr "Gelieve een nieuwe bladwijzernaam in te geven" #~ msgid "type" #~ msgstr "type" #~ msgid "Backout commit message" #~ msgstr "Backout commit bericht" #~ msgid "" #~ "The directory \"%s\" isn't empty!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "De map \"%s\" is niet leeg!\n" #~ "\n" #~ "Wilt u ze overschrijven?" #~ msgid "A new version of TortoiseHg is ready for download!" #~ msgstr "Een nieuwe versie van TortoiseHg is klaar om te downloaden!" #~ msgid "Compressed zip archives" #~ msgstr "Gecomprimeerde zip archieven" #~ msgid "Commit backout before merging with current working parent" #~ msgstr "Commit backout alvorens te mergen met huidige werkmap parent" #~ msgid "unable to find %s or %s for patching" #~ msgstr "kan %s of %s niet vinden voor patching" #~ msgid "Use uncompressed transfer" #~ msgstr "Gebruik ongecomprimeerde overdracht" #~ msgid "Recent commit messages..." #~ msgstr "Recente commit berichten..." #~ msgid "Source and destination are the same" #~ msgstr "Bron en doel zijn gelijk" #~ msgid "Nothing Commited" #~ msgstr "Niets gecommit" #~ msgid "Save as.." #~ msgstr "Opslaan als..." #~ msgid "Add special files (.hgignore, ...)" #~ msgstr "Voeg speciale bestanden toe (.hgignore, ...)" #~ msgid "Destination path is empty" #~ msgstr "Doelpad is niet ingevuld" #~ msgid "Please enter the directory path" #~ msgstr "Geef aub het pad op voor de map" #~ msgid "Error when creating repository" #~ msgstr "Fout tijdens aanmaken repository" #~ msgid "Discard all changes from merge target (other) revision" #~ msgstr "Verwerp alle wijzigingen van de samenvoeg-doelrevisie (andere)" #~ msgid "Undo" #~ msgstr "Ongedaan maken" #~ msgid "Reject" #~ msgstr "Verwerpen" #~ msgid "Push" #~ msgstr "Push" #~ msgid "could not extract binary patch" #~ msgstr "kon binaire patch niet extraheren" #~ msgid "binary patch is %d bytes, not %d" #~ msgstr "binaire patch is %d bytes, niet %d" #~ msgid "unable to strip away %d dirs from %s" #~ msgstr "kan %d mappen niet wegstrepen van %s" #~ msgid "malformed patch %s %s" #~ msgstr "misvormde patch %s %s" #~ msgid "No valid hunks found" #~ msgstr "Geen geldige blokken gevonden" #~ msgid "hunk %d already applied at line %d (fuzz %d)\n" #~ msgstr "blok %d al toegepast op regel %d (fuzz %d)\n" #~ msgid "Message Line Length" #~ msgstr "Lengte van de Berichtlijnen" #~ msgid "Use Expander" #~ msgstr "Gebruik Uitbreider" #~ msgid "Toolbar Style" #~ msgstr "Toolbar Stijl" #~ msgid "" #~ "Repository name to use in the web interface. Default is the working " #~ "directory." #~ msgstr "" #~ "Repository naam om te gebruiken in de web interface. Standaard is de " #~ "werkmap." #~ msgid "Maximum number of files to list per changeset." #~ msgstr "Maximum aantal bestanden om te tonen per changeset." #~ msgid "Coloring Style" #~ msgstr "Kleurstijl" #~ msgid "Font" #~ msgstr "Lettertype" #~ msgid "Commit Message" #~ msgstr "Commit Bericht" #~ msgid "Diff Text" #~ msgstr "Diff Tekst" #~ msgid "File List" #~ msgstr "Bestandslijst" #~ msgid "Command Output" #~ msgstr "Opdracht Resultaten" #~ msgid "" #~ "When commiting an issue, force the user to specify a reference to an " #~ "issue. If enabled, the regex configured in 'Issue Regex' must find a " #~ "match in the commit message" #~ msgstr "" #~ "Forceer de gebruiker om een referentie op te geven bij de commit van een " #~ "probleem. Indien ingeschakeld dan moet de regex ingesteld in 'Probleem " #~ "Regex' een overeenkomst vinden in het commit bericht" #~ msgid "Japanese on Windows" #~ msgstr "Japans onder Windows" #~ msgid "ssh" #~ msgstr "ssh" #~ msgid "http" #~ msgstr "http" #~ msgid "https" #~ msgstr "https" #~ msgid "Edit remote repository path" #~ msgstr "Remote repository pad aanpassen" #~ msgid "Folder" #~ msgstr "Map" #~ msgid "URL Details" #~ msgstr "URL Details" #~ msgid "Select Local Folder" #~ msgstr "Kies Lokale Map" #~ msgid "Alias name is empty" #~ msgstr "Alias naam is leeg" #~ msgid "Please enter alias name" #~ msgstr "Geef aub een alias naam in" #~ msgid "User global settings" #~ msgstr "Gebruikersglobale instellingen" #~ msgid "Confirm Switch" #~ msgstr "Bevestig Omschakelen" #~ msgid "TortoiseHg Configure Repository - " #~ msgstr "TortoiseHg Instellen Repository - " #~ msgid "TortoiseHg Configure User-Global Settings" #~ msgstr "TortoiseHg Instellen User-Globale Instellingen" #~ msgid "Remote repository paths" #~ msgstr "Remote repository paden" #~ msgid "Repository Path" #~ msgstr "Repository Pad" #~ msgid "_Edit" #~ msgstr "Aanpass_en" #~ msgid "_Test" #~ msgstr "_Test" #~ msgid "Set as _default" #~ msgstr "Stel in als stan_daard" #~ msgid "No Repository Found" #~ msgstr "Geen Repository Gevonden" #~ msgid "Path testing cannot work without a repository" #~ msgstr "Kan pad niet testen zonder repository" #~ msgid " - Select Preset -" #~ msgstr " - Kies Voorinstelling -" #~ msgid " - Select Issue Tracker -" #~ msgstr " - Kies Probleem-Traceerder -" #~ msgid "" #~ "Select issue tracker plugin to use. Links to plugins can be found at " #~ "http://tortoisesvn.net/issuetrackerplugins" #~ msgstr "" #~ "Kies de probleem-traceer plugin. Verwijzingen naar plugins zijn te vinden " #~ "op http://tortoissvn.net/issuetrackerplugins" #~ msgid "Configure Plugin" #~ msgstr "Plugin instellen" #~ msgid "Suggested" #~ msgstr "Voorgesteld" #~ msgid "History" #~ msgstr "Historiek" #~ msgid "Insufficient access rights, reverting to read-onlymode." #~ msgstr "" #~ "Onvoldoende toegangsrechten, wordt omgekeerd naar alleen-lezen modus." #~ msgid "Unable to parse a config file" #~ msgstr "Kan instellingenbestand niet ontleden" #~ msgid "" #~ "%s\n" #~ "Reverting to read-only mode." #~ msgstr "" #~ "%s\n" #~ "Bezig met omkeren naar alleen-lezen modus." #~ msgid "Skipped saving path with no alias" #~ msgstr "Bewaren van pad zonder alias wordt overgeslagen" #~ msgid "Import" #~ msgstr "Importeren" #~ msgid "Imported successfully" #~ msgstr "Succesvol geïmporteerd" #~ msgid "Canceled importing" #~ msgstr "Importeren geannuleerd" #~ msgid "Confirm Close" #~ msgstr "Bevestig Afsluiten" #~ msgid "Select Patches" #~ msgstr "Kies Patches" #~ msgid "%s will be imported to the" #~ msgstr "%s zal geïmporteerd worden in de" #~ msgid "%s will be imported to the repository" #~ msgstr "%s zal geïmporteerd worden in de repository" #~ msgid "Unapply last patch" #~ msgstr "Laatste patch wegnemen" #~ msgid "Apply next patch" #~ msgstr "Volgende patch toepassen" #~ msgid "#" #~ msgstr "#" #~ msgid "Patch" #~ msgstr "Patch" #~ msgid "Yes (&keep)" #~ msgstr "Ja (behoud)" #~ msgid "Confirm Fold" #~ msgstr "Samenvouwen bevestigen" #~ msgid "series become inconsistent during reorder" #~ msgstr "series wordt inconsistent tijdens herschikken" #~ msgid "Top" #~ msgstr "Bovenaan" #~ msgid "Up" #~ msgstr "Omhoog" #~ msgid "Down" #~ msgstr "Naar beneden" #~ msgid "Bottom" #~ msgstr "Onderaan" #~ msgid "_Goto" #~ msgstr "_Ga naar" #~ msgid "_Rename" #~ msgstr "He_rnoemen" #~ msgid "_Finish Applied" #~ msgstr "Toegepaste A_fwerken" #~ msgid "_Delete" #~ msgstr "Verwij_deren" #~ msgid "F_old" #~ msgstr "Samenv_ouwen" #~ msgid "Reorder" #~ msgstr "Herschikken" #~ msgid "Enable editable cells" #~ msgstr "Aanpasbaer cellen activeren" #~ msgid "Force" #~ msgstr "Forceer" #~ msgid "Succeed" #~ msgstr "Slaag" #~ msgid "St" #~ msgstr "St" #~ msgid "pending pmerges" #~ msgstr "te doen pmerges" #~ msgid "no pending pmerges" #~ msgstr "geen te doen pmerges" #~ msgid "New Patch Name" #~ msgstr "Nieuwe Patch Naam" #~ msgid "Pending Pmerge" #~ msgstr "Te doen pmerges" #~ msgid "Uncommitted Local Changes" #~ msgstr "Openstaande Lokale Wijzigingen" #~ msgid "" #~ "pfinish uses your working directory for temporary work.\n" #~ "Please commit your local changes before issuing pfinish." #~ msgstr "" #~ "pfinish gebruikt uw werkmap voor tijdelijk werk.\n" #~ "Commit aub uw lokale wijzigingen vooraleer the pfinish uit te voeren." #~ msgid "Applied MQ patch" #~ msgstr "MQ Patch Toegepast" #~ msgid "" #~ "pfinish must be able to commit, but this is not allowed\n" #~ "as long as you have MQ patches applied." #~ msgstr "" #~ "pfinish moet een commit kunnen doen, maar dit is niet toegestaan\n" #~ "zolang u MQ patches aktief heeft." #~ msgid "Patch branch finished" #~ msgstr "Patch branch afgewerkt" #~ msgid "_new" #~ msgstr "_nieuw" #~ msgid "_edit message" #~ msgstr "b_ericht aanpassen" #~ msgid "_rename" #~ msgstr "he_rnoemen" #~ msgid "_delete" #~ msgstr "verwij_deren" #~ msgid "_finish" #~ msgstr "a_fwerken" #~ msgid "Show graph" #~ msgstr "Toon graph" #~ msgid "Show status" #~ msgstr "Toon status" #~ msgid "Show name" #~ msgstr "Toon naam" #~ msgid "Show title" #~ msgstr "Toon titel" #~ msgid "Show message" #~ msgstr "Toon bericht" #~ msgid "Show internal branches" #~ msgstr "Toon interne branches" #~ msgid "set aside selected changes" #~ msgstr "zet de gekozen wijzigingen apart" #~ msgid "Unshelve" #~ msgstr "Uit het rek halen" #~ msgid "restore shelved changes" #~ msgstr "wijzigingen vanaf het rek herstellen" #~ msgid "Abandon" #~ msgstr "Prijsgeven" #~ msgid "abandon shelved changes" #~ msgstr "geef de wijzigingen van het rek prijs" #~ msgid "Shelf Contents" #~ msgstr "Inhoud van het Rek" #~ msgid "_Shelve" #~ msgstr "Zet op het rek" #~ msgid "No changes to shelve" #~ msgstr "Geen wijzigingen aan het rek" #~ msgid "Please select diff chunks to shelve" #~ msgstr "Kies aub diff blokken om op het rek te plaatsen" #~ msgid "Unshelve Abort" #~ msgstr "Van het rek halen Afbreken" #~ msgid "Unshelve Error" #~ msgstr "Fout bij van het rek halen" #~ msgid "Abandon Error" #~ msgstr "Fout bij Prijsgeven" #~ msgid "Backup all (default)" #~ msgstr "Backup alles (standaard)" #~ msgid "Backup unrelated changesets (-b/--backup)" #~ msgstr "Maak backup van niet-gerateerde changesets (-b/--backup)" #~ msgid "Strip" #~ msgstr "Schrappen" #~ msgid "Stripped successfully" #~ msgstr "Succesvol geschrapt" #~ msgid "Canceled stripping" #~ msgstr "Schrappen geannuleerd" #~ msgid "Failed to strip" #~ msgstr "Schrappen gefaald" #~ msgid "%s changesets" #~ msgstr "%s changesets" #~ msgid "%s will be stripped" #~ msgstr "%s zal geschrapt worden" #~ msgid "Always show log" #~ msgstr "Altijd resultaat tonen" #~ msgid "Updated successfully" #~ msgstr "Succesvol bijgewerkt" #~ msgid "Failed to update" #~ msgstr "Bijwerken gefaald" #~ msgid "Shelve - launch Shelve tool and continue" #~ msgstr "Rek - lanceer de Rek tool en ga door" #~ msgid "[canceled by user]\n" #~ msgstr "[geannuleerd door gebruiker]\n" #~ msgid "cleaning up temp directory\n" #~ msgstr "bezig met opruimen tijdelijke map\n" #~ msgid "Visual Diffs" #~ msgstr "Visuele Diffs" #~ msgid "changeset " #~ msgstr "changeset " #~ msgid "revisions %d to %d" #~ msgstr "revisies %d tot %d" #~ msgid "Unable to delete temp files" #~ msgstr "Kan tijdelijke bestanden niet verwijderen" #~ msgid "Try &Again" #~ msgstr "Probeer Opnieuw" #~ msgid "&Quit" #~ msgstr "Verlaten" #~ msgid "this modifies a binary file (all or nothing)\n" #~ msgstr "dit wijzigt een binair bestand (alles of niets)\n" #~ msgid "this is a binary file\n" #~ msgstr "dit is een binair bestand\n" #~ msgid "%d hunks, %d lines changed\n" #~ msgstr "%d blokken, %d regels gewijzigd\n" #~ msgid " [Ynsfdaq?] " #~ msgstr " [Ynsfdaq?] " #~ msgid "user quit" #~ msgstr "gebrukker heeft verlaten" #~ msgid " and " #~ msgstr " en " #~ msgid "backup %r as %r\n" #~ msgstr "backup %r als %r\n" #~ msgid "file copy of %s failed\n" #~ msgstr "kopiëren van bestand %s gefaald\n" #~ msgid "delete of shelve backup failed" #~ msgstr "verwijderen van de rek backup gefaald" #~ msgid "bad shelve backup directory name" #~ msgstr "slechte rek backup mapnaam" #~ msgid "shelve can only be run interactively" #~ msgstr "in het rek zetetn kan enkel interactief gebeuren" #~ msgid "shelve data already exists" #~ msgstr "er bestaan al gegevens in het rek" #~ msgid "no changes to shelve\n" #~ msgstr "er is niets om in het rek te zetten\n" #~ msgid "applying patch\n" #~ msgstr "patches toepassen\n" #~ msgid "saving patch to shelve\n" #~ msgstr "bezig met patches naar het rek te bewaren\n" #~ msgid "restoring %r to %r\n" #~ msgstr "bezig met %r naar %r te herstellen\n" #~ msgid "removing shelve file\n" #~ msgstr "bezig met rekbestand te verwijderen\n" #~ msgid "nothing to unshelve\n" #~ msgstr "er zit niets in het rek\n" #~ msgid "unshelve backup aborted\n" #~ msgstr "backup van uit-het-rek-halen opgegeven\n" #~ msgid "applying shelved patch\n" #~ msgstr "patch uit het rek wordt toegepast\n" #~ msgid "restoring backup files\n" #~ msgstr "bezig met backup bestanden te herstellen\n" #~ msgid "removing shelved patches\n" #~ msgstr "bezig met patches uit het rek te verwijderen\n" #~ msgid "unshelve completed\n" #~ msgstr "uit het rek halen afgewerkt\n" #~ msgid "abandoning shelved file\n" #~ msgstr "bezig met bestand in het rek op te geven\n" #~ msgid "shelved file abandoned\n" #~ msgstr "bestand in het rek opgegeven\n" #~ msgid "nothing to abandon\n" #~ msgstr "niets op te geven\n" #~ msgid "abandon failed\n" #~ msgstr "opgeven is gefaald\n" #~ msgid "mark new/missing files as added/removed before shelving" #~ msgstr "" #~ "markeer nieuwe/ontbrekende bestanden als toegevoegd/verwijderd vooraleer " #~ "in het rek te zetten" #~ msgid "overwrite existing shelve data" #~ msgstr "overschrijf bestaande gegevens in het rek" #~ msgid "append to existing shelve data" #~ msgstr "voeg toe aan bestaande gegevens in het rek" #~ msgid "hg shelve [OPTION]... [FILE]..." #~ msgstr "hg shelve [OPTIE]... [BESTAND]..." #~ msgid "inspect shelved changes only" #~ msgstr "inspecteer enkel wijzigingen uit het rek" #~ msgid "hg unshelve [OPTION]... [FILE]..." #~ msgstr "hg unshelve [OPTIE]... [BESTAND]..." #~ msgid "patching file %s\n" #~ msgstr "bezig met bestand %s te patchen\n" #~ msgid "%d out of %d hunks FAILED -- saving rejects to file %s\n" #~ msgstr "" #~ "%d van %d blokken GEFAALD -- bezig met verwerpingen in bestand %s te " #~ "bewaren\n" #~ msgid "bad hunk #%d %s (%d %d %d %d)" #~ msgstr "slecht blok #%d %s (%d %d %d %d)" #~ msgid "file %s already exists\n" #~ msgstr "bestand %s bestaat al\n" #~ msgid "Hunk #%d succeeded at %d with fuzz %d (offset %d lines).\n" #~ msgstr "Blok #%d geslaagd op regel %d met fuzz %d (offset %d lines).\n" #~ msgid "Hunk #%d succeeded at %d (offset %d lines).\n" #~ msgstr "Blok #%d geslaagd op regel %d (offset %d lines).\n" #~ msgid "Hunk #%d FAILED at %d\n" #~ msgstr "Blok #%d GEFAALD op regel %d\n" #~ msgid "bad hunk #%d" #~ msgstr "slecht blok #%d" #~ msgid "bad hunk #%d old text line %d" #~ msgstr "slecht blok #%d oude tekst regel %d" #~ msgid "Backout..." #~ msgstr "Backout..." #~ msgid "Export" #~ msgstr "Exporteren" #~ msgid "Diff to Local" #~ msgstr "Diff met Lokale versie" #~ msgid "Serve" #~ msgstr "Serve" #~ msgid "" #~ "Color changesets by author name. If not enabled, the changes are colored " #~ "green for merge, red for non-trivial parents, black for normal. Default: " #~ "False" #~ msgstr "" #~ "De revisies een kleur geven per auteur. Indien niet aangezet dan worden " #~ "wijzigingen groen gekleurd voor samenvoegingen, rood voor niet-triviale " #~ "voorouders, zwart voor normale. Standaard: Nee" #~ msgid "" #~ "If true, concatenate multiple lines of changeset summary until they reach " #~ "80 characters. Default: False" #~ msgstr "" #~ "Indien Ja, dan moeten meerdere lijnen van de revisie samenvatting " #~ "samengevoegd worden tot ze 80 tekens bereiken. Standaard: Nee" #~ msgid "&Yes (--force)" #~ msgstr "&Ja (--force)" #~ msgid "Failed to archive" #~ msgstr "Archiveren is mislukt" #~ msgid "" #~ "The destination \"%s\" already exists!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "Het doelpad \"%s\" bestaat reeds!\\nWilt u het overschrijven?" #~ msgid "Old name:" #~ msgstr "Oude naam:" #~ msgid "[All Files]" #~ msgstr "[Alle Bestanden]" #~ msgid "unknown hunk type: %s" #~ msgstr "onbekend blok type: %s" #~ msgid "Bundle..." #~ msgstr "Bundelen..." #~ msgid "Source path:" #~ msgstr "Bron pad:" #~ msgid "Advanced options" #~ msgstr "Geavanceerde opties" #~ msgid "Starting Revision:" #~ msgstr "Beginrevisie:" #~ msgid "Clone" #~ msgstr "Klonen" #~ msgid "Cloned successfully" #~ msgstr "Met succes gekloond" #~ msgid "Canceled updating" #~ msgstr "Bijwerken geannuleerd" #~ msgid "Failed to clone" #~ msgstr "Klonen is mislukt" #~ msgid "Mercurial bundles" #~ msgstr "Mercurial bundels" #~ msgid "Please enter a valid source path" #~ msgstr "Geef aub een geldig bronpad op" #~ msgid "Please specify different paths" #~ msgstr "Geef aub verschillende paden op" #~ msgid "Branch Operations" #~ msgstr "Branch Operaties" #~ msgid "Close current named branch" #~ msgstr "Sluit huidige benoemde branch" #~ msgid " - qnew" #~ msgstr " - qnew" #~ msgid " - qrefresh " #~ msgstr " - qrefresh " #~ msgid " - commit" #~ msgstr " - commit" #~ msgid "_View" #~ msgstr "Bekijken" #~ msgid "Toolbar" #~ msgstr "Toolbar" #~ msgid "Advanced" #~ msgstr "Geavanceerd" #~ msgid "Ignore Max Diff Size" #~ msgstr "Negeer max Diff Grootte" #~ msgid "Always Show Output" #~ msgstr "Altijd Resultaten Tonen" #~ msgid "_Operations" #~ msgstr "_Operaties" #~ msgid "_Commit" #~ msgstr "_Commit" #~ msgid "_Diff" #~ msgstr "_Diff" #~ msgid "_Add" #~ msgstr "Toevoegen" #~ msgid "_Remove" #~ msgstr "Ve_rwijderen" #~ msgid "_Forget" #~ msgstr "Vergeten" #~ msgid "undo recent commit" #~ msgstr "recente commit ongedaan maken" #~ msgid "commit" #~ msgstr "commit" #~ msgid "Show/Hide Patch Queue" #~ msgstr "Toon/Verberg Patch Queue" #~ msgid "Save commit message at exit?" #~ msgstr "Bewaar commit bericht bij afsluiten?" #~ msgid "Push after commit" #~ msgstr "Push na commit" #~ msgid "Parent: %(rev)s" #~ msgstr "Parent: %(rev)s" #~ msgid "Commit Preview" #~ msgstr "Commit Vooraf Bekijken" #~ msgid "create new MQ patch" #~ msgstr "nieuwe MQ patch aanmaken" #~ msgid "refresh top MQ patch" #~ msgstr "bovenste MQ patch verversesn" #~ msgid "_Commit (+1 head)" #~ msgstr "_Commit (+1 hoofd)" #~ msgid "_Commit (-1 head)" #~ msgstr "_Commit (-1 hoofd)" #~ msgid "commit to merge one head" #~ msgstr "commit om een hoofd samen te voegen" #~ msgid "new branch: " #~ msgstr "nieuwe branch: " #~ msgid "close branch: " #~ msgstr "sluit branch: " #~ msgid "Merge " #~ msgstr "Samenvoegen " #~ msgid "Patch Contents" #~ msgstr "Patch Inhoud" #~ msgid "Bug Traq" #~ msgstr "Bug Traq" #~ msgid "Commit failed" #~ msgstr "Commit is mislukt" #~ msgid "Undo Commit" #~ msgstr "Commit Ongedaan Maken" #~ msgid "Toggle log window" #~ msgstr "Aan/af zetten resultaatvenster" #~ msgid "Toggle all selections" #~ msgstr "Aan/af zetten van alle keuzes" #~ msgid "hg serve [OPTION]..." #~ msgstr "hg serve [OPTIES]..." #~ msgid "Apply" #~ msgstr "Toepassen" #~ msgid "<- Top" #~ msgstr "<- Top" #~ msgid "Sub ->" #~ msgstr "Sub ->" #~ msgid "Enable overlays" #~ msgstr "Overlays inschakelen" #~ msgid "Show overlay icons in Mercurial repositories" #~ msgstr "Toon overlay ikonen in Mercurial repositories" #~ msgid "st" #~ msgstr "st" #~ msgid "" #~ "The parents have changed since the last refresh.\n" #~ "Continue anyway?" #~ msgstr "" #~ "De parent revisies zijn gewijzigd sedert de laatste verversing.\n" #~ "Toch doorgaan?" #~ msgid "Delete the following unrevisioned files?" #~ msgstr "Volgende bestanden niet onder versiebeheer verwijderen?" #~ msgid "Delete Errors" #~ msgstr "Fouten tijdens het Verwijderen" #~ msgid "unknown field name: %s" #~ msgstr "onbekende veldnaam: %s" #~ msgid "%s - synchronize" #~ msgstr "%s - synchroniseren" #~ msgid "Display changes that can be pulled from selected repository" #~ msgstr "" #~ "Toon wijzigingen die gepulld kunnen worden vanaf de gekozen repository" #~ msgid "Pull changes from selected repository" #~ msgstr "Pull wijzigingen vanaf de gekozen repository" #~ msgid "Display local changes that will be pushed to selected repository" #~ msgstr "" #~ "Toon de lokale wijzigingen die naar de gekozen repository zullen gepusht " #~ "worden" #~ msgid "Push local changes to selected repository" #~ msgstr "Push de lokale wijzigingen naar de gekozen repository" #~ msgid "Email local outgoing changes to one or more recipients" #~ msgstr "Email lokale uitgaande wijzigingen naar een of meer ontvangers" #~ msgid "Shelve uncommited changes" #~ msgstr "Zet niet-gecommitte wijzigingen in het rek" #~ msgid "Configure peer repository paths" #~ msgstr "Stel peer repository paden in" #~ msgid "Repo:" #~ msgstr "Repo:" #~ msgid "Bundle:" #~ msgstr "Bundel:" #~ msgid "Advanced Options" #~ msgstr "Geavanceerde Opties" #~ msgid "Run even when remote repository is unrelated." #~ msgstr "Laat lopen zelfs als de remote repository niet-gerelateerd is." #~ msgid "Allow pushing a new branch" #~ msgstr "Laat push naar nieuwe branch toe" #~ msgid "Target revision:" #~ msgstr "Doelrevisie:" #~ msgid "A specific revision up to which you would like to push or pull." #~ msgstr "Een welbepaalde revisie waar u naar zou willen pushen of pullen." #~ msgid "Name of hg executable on remote machine." #~ msgstr "Naam van het hg uitvoerbaar programma op de remote machine." #~ msgid "Incoming/Outgoing" #~ msgstr "Inkomend/Uitgaand" #~ msgid "Show patches" #~ msgstr "Toon patches" #~ msgid "Show newest first" #~ msgstr "Toon nieuwste eerst" #~ msgid "Show no merges" #~ msgstr "Toon geen samenvoegingen" #~ msgid "Update to branch tip" #~ msgstr "Bijwerken naar branch tip" #~ msgid "unknown sort key '%s'" #~ msgstr "onbekende sorteersleutel '%s'" #~ msgid "Select Bundle" #~ msgstr "Bundel Kiezen" #~ msgid "Bundle (*.hg)" #~ msgstr "Bundel (*.hg)" #~ msgid "Bundle (*)" #~ msgstr "Bundel (*)" #~ msgid "Toggle _Wordwrap" #~ msgstr "Aan/af zetten _Wordwrap" #~ msgid "Tag is local" #~ msgstr "Tag is lokaal" #~ msgid "Replace existing tag" #~ msgstr "Vervangen bestaande tag" #~ msgid "Tag input is empty" #~ msgstr "Tag ingave is leeg" #~ msgid "Please enter tag name" #~ msgstr "Geef de tag naam in aub" #~ msgid "Custom commit message is empty" #~ msgstr "Aangepast commit bericht is leeg" #~ msgid "Tagging completed" #~ msgstr "Toepassen tag is afgewerkt" #~ msgid "Tag \"%s\" has been added" #~ msgstr "Tag \"%s\" is toegevoegd" #~ msgid "Error in tagging" #~ msgstr "Fout tijdens toepassen tag" #~ msgid "Tag name is empty" #~ msgstr "Tag naam is leeg" #~ msgid "Please select tag name to remove" #~ msgstr "Kies aub de naam van de tag die moet verwijderd worden" #~ msgid "Tag \"%s\" has been removed" #~ msgstr "Tag \"%s\" is verwijderd" #~ msgid "a tag named \"%s\" already exists" #~ msgstr "er bestaat al een tag met de naam \"%s\"" #~ msgid "Tag '%s' already exist" #~ msgstr "Tag '%s' bestaat al" #~ msgid "tag '%s' does not exist" #~ msgstr "tag '%s' bestaat niet" #~ msgid "" #~ "Graphical merge program for resolving merge conflicts. If left " #~ "unspecified, Mercurial will use the first applicable tool it finds on " #~ "your system or use its internal merge tool that leaves conflict markers " #~ "in place. Chose internal:merge to force conflict markers, internal:" #~ "prompt to always select local or other, or internal:dump to leave files " #~ "in the working directory for manual merging" #~ msgstr "" #~ "Grafisch samenvoegprogramma op samenvoegconflicten op te lossen. Indien " #~ "niet opgegeven dan zal Mercurial het eerste bruikbare programma gebruiken " #~ "dat gevonden kan worden op uw systeem, of zal het interne " #~ "samenvoegprogramma gebruiken dat conflictmarkeringen zal achterlaten. " #~ "Kies internal:merge om conflictmarkeringen te forceren, internal:prompt " #~ "om altijd lokaal of ander te kiezen, of internal:dump om bestanden in de " #~ "werkmap achter te laten voor manueel samenvoegen." #~ msgid "Specify the visual editor used to view files, etc" #~ msgstr "Geef de visuele editor op om bestanden te bekijken, enz" #~ msgid "" #~ "The editor to use during a commit and other instances where Mercurial " #~ "needs multiline input from the user. Used by command line commands, " #~ "including patch import." #~ msgstr "" #~ "De editor die gebruikt zal worden zijdens commit en andere gevallen waar " #~ "Mercurial meerdere lijnen ingave van de gebruiker nodig heeft. Gebruikt " #~ "voor opdrachtregel opdrachten, inbegrepen het imprteren van patches." #~ msgid "" #~ "Specify the number of spaces that tabs expand to in various TortoiseHg " #~ "windows. Default: Not expanded" #~ msgstr "" #~ "Geef het aantal spaties op dat de tab toets uitbreidt in verschillende " #~ "TortoiseHg vensters. Standaard: Niet uitbreiden." #~ msgid "" #~ "The maximum size file (in KB) that TortoiseHg will show changes for in " #~ "the changelog, status, and commit windows. A value of zero implies no " #~ "limit. Default: 1024 (1MB)" #~ msgstr "" #~ "De maximale grootte van een bestand (in KB) waarvoor TortoiseHg " #~ "wijzigingen zal tonen in de changelog, status, en commit vensters. De " #~ "waarde nul veronderstelt geen limit. Standaard: 1024 (1MB)." #~ msgid "Bottom Diffs" #~ msgstr "Diffs Onderaan" #~ msgid "" #~ "Show the diff panel below the file list in status, shelve, and commit " #~ "dialogs. Default: False (show diffs to right of file list)" #~ msgstr "" #~ "Toon het diff paneel onder de bestandslijst in de status, shelve, en " #~ "commit vensters. Standaard: False (toon diffs rechts van de lijst)." #~ msgid "Capture stderr" #~ msgstr "stderr Opvangen" #~ msgid "" #~ "Redirect stderr to a buffer which is parsed at the end of the process for " #~ "runtime errors. Default: True" #~ msgstr "" #~ "Omleiden van stderr naar een buffer die ontleed wordt op runtime fouten " #~ "op het einde van het proces. Standaard: True" #~ msgid "Fork hgtk" #~ msgstr "Fork hgtk" #~ msgid "" #~ "When running hgtk from the command line, fork a background process to run " #~ "graphical dialogs. Default: True" #~ msgstr "" #~ "Als hgtk vanaf de opdrachtregel gestart wordt, splits een achtergrond " #~ "proces af om de grafische schermen te draaien. Standaard: True" #~ msgid "Default Tab" #~ msgstr "Standaard Tabblad" #~ msgid "" #~ "The tab on which the status and commit tools will open. 0 - TextDiff, 1 - " #~ "Hunk Selection, 2 - Commit Preview. Default: 0" #~ msgstr "" #~ "Het tabblad waarop het status en commit programma zullen geopend worden. " #~ "0 - TekstDiff, 1 - Blok keuze, 2 - Commit vooraf bekijken. Standaard: 0" #~ msgid "" #~ "Space separated list of branch names and colors of the form branch:" #~ "#XXXXXX. Spaces and colons in the branch name must beescaped using a " #~ "backslash (\\). Likewise some other characters can be escaped in this " #~ "way, e.g. \\u0040 will be decoded to the @ character, and \\n to a " #~ "linefeed. Default: None (leave blank)" #~ msgstr "" #~ "Spatie-gescheiden lijst van branchnamen en kleuren in het formaat branch:" #~ "#XXXXXX. Spaties en dubbele punten in de branchnaam moeten opgevangen " #~ "worden met backslaches (\\). Zo kunnen ook sommige andere tekens op die " #~ "manier opgevangen worden, bvb. \\u0040 zal ontcijferd worden als het @ " #~ "teken, en \\n als een nieuweregel teken. Standaard : None (blank laten)" #~ msgid "Show changeset details with an expander" #~ msgstr "Toon changeset details met een uitbreider" #~ msgid "" #~ "Operation which is performed directly after a successful pull. update " #~ "equates to pull --update, fetch equates to the fetch extension, rebase " #~ "equates to pull --rebase. Default: none" #~ msgstr "" #~ "Operatie die uitgevoerd wordt onmiddellijk na een succesvolle pull. " #~ "update komt overeen met pull --update, fetch komt overeen met de fetch " #~ "extensie, rebase komt overeen met pull --rebase. Standaard: geen" #~ msgid "Maximum number of changes to list on the changelog." #~ msgstr "Maximum aantal wijzigingen om te tonen in de historiek." #~ msgid "" #~ "Adjust the coloring style of diff lines in the changeset viewer. Default: " #~ "foreground" #~ msgstr "" #~ "Pas de kleurstijl aan van difflijnen in het changeset scherm. Standaard: " #~ "foreground" #~ msgid "" #~ "Font used in changeset viewer and commit log text. Default: monospace 10" #~ msgstr "" #~ "Letterype gebruikt in het changeset scherl en in de commit log tekst. " #~ "Standaard: monospace 10" #~ msgid "" #~ "Font used for diffs in status and commit tools. Default: monospace 10" #~ msgstr "" #~ "Lettertype voor diffs in de status en commit schermen. Standaard: " #~ "monospace 10" #~ msgid "Font used in file lists in status and commit tools. Default: sans 9" #~ msgstr "" #~ "Lettertype gebruikt in bestandslijsten in de status en commit schermen. " #~ "Standaard: sans 9" #~ msgid "Font used in command output window. Default: monospace 10" #~ msgstr "" #~ "Lettertype gebruikt in het opdrachtresultaat scherm. Standaard: monospace " #~ "10" #~ msgid "Overwrite existing '%s' path?" #~ msgstr "Bestaand pad '%s' overschrijven?" #~ msgid "Switch after saving changes?" #~ msgstr "Omschakelen nadat de wijzigingen bewaard zijn?" #~ msgid "Exit after saving changes?" #~ msgstr "Verlaten nadat de wijzigingen bewaard zijn?" #~ msgid "Theme default fonts" #~ msgstr "Thema standaard lettertypes" #~ msgid "Preset fonts:" #~ msgstr "Vooringestelde lettertypes:" #~ msgid "Custom fonts:" #~ msgstr "Aangepaste lettertypes:" #~ msgid "Do you want to close?" #~ msgstr "Wilt u afsluiten?" #~ msgid "Select Directory contains patches:" #~ msgstr "Gekozen Map bevat patches:" #~ msgid "unexpected destination name: %s" #~ msgstr "onverwachte doel naam: %s" #~ msgid "Do you want to delete '%(name)s'?" #~ msgstr "Wilt u '%(name)s' verwijderen?" #~ msgid "Do you want to delete these patches?" #~ msgstr "Wilt u deze patches verwijderen?" #~ msgid "" #~ "Do you want to fold un-applied patch '%(target)s' into current patch " #~ "'%(qtip)s'?" #~ msgstr "" #~ "Wilt u de niet-toegepaste patch '%(target)s' samenvouwen in de huidige " #~ "patch '%(qtip)s'?" #~ msgid "" #~ "Do you want to fold following un-applied patches into the current patch " #~ "'%(qtip)s'?" #~ msgstr "" #~ "Wilt u de volgende niet-toegepaste patch samenvouwen in de huidige patch " #~ "'%(qtip)s'?" #~ msgid "invalid reorder operation: %s" #~ msgstr "ongeldige herschik operatie: %s" #~ msgid "Show 'qparent'" #~ msgstr "Toon 'qparent'" #~ msgid "" #~ "You cannot finish this patch branch unless you pmerge it first.\n" #~ "pmerge will solve the following issues with %(patch)s:\n" #~ "* %(issuelist)s" #~ msgstr "" #~ "U kan deze patch branch niet afwerken tenzij u eerst een pmerge " #~ "uitvoert.\n" #~ "De pmerge zal de volgende problemen oplossen met %(patch)s:\n" #~ "* %(issuelist)s" #~ msgid "_goto (update workdir)" #~ msgstr "_ga naar (werkmap bijwerken)" #~ msgid "Shelve file exists!" #~ msgstr "Er bestaat een rek bestand!" #~ msgid "Delete the shelf contents?" #~ msgstr "De inhoud van het rek verwijderen?" #~ msgid "" #~ "Detected uncommitted local changes.\n" #~ "Do you want to discard them and continue?" #~ msgstr "" #~ "Niet-gecommitte lokale wijzigingen vastgesteld.\n" #~ "Wilt u ze verwerpen en doorgaan?" #~ msgid "Saved at: %s" #~ msgstr "Bewaard in: %s" #~ msgid "Open..." #~ msgstr "Openen..." #~ msgid "" #~ "Detected uncommitted local changes in working tree.\n" #~ "Please select to continue:\n" #~ "\n" #~ msgstr "" #~ "Stel niet-gecommitte lokale wijzigingen vast in de werkmap.\n" #~ "Kies aub om door te gaan:\n" #~ "\n" #~ msgid "invalid dialog result: %s" #~ msgstr "ongeldig scherm resultaat: %s" #~ msgid "unable to clean temp directory: %s\n" #~ msgstr "kan tijdelijke map niet opruimen: %s\n" #~ msgid "unknown patch content: %r" #~ msgstr "onbekende patch inhoud: %r" #~ msgid "" #~ "total: %d hunks (%d changed lines); selected: %d hunks (%d changed lines)" #~ msgstr "" #~ "totaal: %d blokken (%d gewijzigde lijnen); gekozen: %d blokken (%d " #~ "gewijzigde regels)" #~ msgid "unhandled transition: %s -> %s" #~ msgstr "onbehandelde transactie: %s -> %s" #~ msgid "shelve changes to %s?" #~ msgstr "wijzigingen in het rek zetten naar %s?" #~ msgid "shelve this change to %r?" #~ msgstr "deze wijzigingen in rek %r zetten?" #~ msgid "removing backup file : %r\n" #~ msgstr "bezig met verwijderen backup bestand: %r\n" #~ msgid "proceed even if patches do not unshelve cleanly" #~ msgstr "voer uit zelfs als patches niet correct uit het rek te halen zijn" #~ msgid "" #~ "Adjust the display of the main toolbar in the Repository Explorer. " #~ "Values: small, large, or theme. Default: theme" #~ msgstr "" #~ "Aanpassen hoe de hoofdtoolbar moet getoond worden in de Repository " #~ "Verkenner. Waardes: klein, groot, of thema. Standaard: thema" #~ msgid "Close diff tools and try again, or quit to leak files?" #~ msgstr "" #~ "Sluit diff programma en probeer opnieuw, of verlaat om bestanden achter " #~ "te laten?" #~ msgid "Unsupported line endings type: %s" #~ msgstr "Niet ondersteunde einderegel types: %s" #~ msgid "abort: backup restore failed, %s\n" #~ msgstr "afbreken: herstellen van backup is mislukt, %s\n" #~ msgid "There is no Mercurial repository here (.hg not found)" #~ msgstr "Er is hier geen Mercurial repository (.hg niet gevonden)" #~ msgid "limit number of changes displayed" #~ msgstr "beperk aantal getoonde wijzigingen" #~ msgid "Connect to mail server using TLS. Default: False" #~ msgstr "Connecteer naar de mail server met TLS. Standaard: Nee" #~ msgid "Diff" #~ msgstr "Diff" #~ msgid "Ignore white space when comparing lines. Default: False" #~ msgstr "Negeer witruimte bij het vergelijken van regels. Standaard: Uit" #~ msgid "TortoiseHg Shell Configuration" #~ msgstr "TortoiseHg Shell Instellingen" #~ msgid "" #~ "Defines the command to run when an issue number is recognized. You may " #~ "include groups in issue.regex, and corresponding {n} tokens in issue.link " #~ "(where n is a non-negative integer). {0} refers to the entire string " #~ "matched by issue.regex, while {1} refers to the first group and so on. If " #~ "no {n} tokensare found in issue.link, the entire matched string is " #~ "appended instead." #~ msgstr "" #~ "Definiëert de uit te voeren opdracht als een probleemnummer herkend " #~ "wordt. U kunt groepen invoegen in issue.regex, en de overeenkomende {n} " #~ "markeringen in issue.link (waar n een niet-negatief geheel getal is). {0} " #~ "verwijst naar de gehele tekenreeks die overeenkomt met issue.regex, " #~ "tgerwijl {1} verwijst naar de eerste groep en zo verder. Als geen {n} " #~ "markeringen gevonden worden in issue.link dan wordt in plaats daarvan de " #~ "hele overeenkomende tekenreeks toegevoegd." #~ msgid "response expected" #~ msgstr "antwoord verwacht" #~ msgid "No repository found here" #~ msgstr "her is geen repository gevonden" #~ msgid " Aborted" #~ msgstr " Afgebroken" #~ msgid "Outgoing" #~ msgstr "Uitgaand" #~ msgid "Incoming" #~ msgstr "Inkomend" #~ msgid "TortoiseHg Clone" #~ msgstr "TortoiseHg Klonen" #~ msgid "Unable to create new repository" #~ msgstr "Kan nieuwe repository niet aanmaken" #~ msgid "Character encoding name" #~ msgstr "Naam karakter encodering" #~ msgid "tag '%s' is not a local tag" #~ msgstr "etiket '%s' is geen lokaal etiket" #~ msgid "tag '%s' is not a global tag" #~ msgstr "etiket '%s' is geen globaal etiket" #~ msgid "udpate all repos in current dir" #~ msgstr "alle repos in de huidige map bijwerken" #~ msgid "Several icons are courtesy of the TortoiseSVN project" #~ msgstr "" #~ "Verscheidene iconen zijn een vriendendienst van het TortoiseSVN project" #~ msgid "Source path is empty" #~ msgstr "Doelpad is leeg" #~ msgid "Unable to save file" #~ msgstr "Kan bestand niet opslaan" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/nn.po0000644000000000000000000043145714440352353016257 0ustar00rootroot# Norwegian Nynorsk translation for tortoisehg # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the tortoisehg package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: Norwegian Nynorsk \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2009-11-23 16:59+0000\n" "Last-Translator: Norwegian Nynorsk \n" "Language-Team: Norwegian Nynorsk \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2019-07-17 05:43+0000\n" "X-Generator: Launchpad (build 19009)\n" msgid "TortoiseHg Overlay Icon Server" msgstr "" msgid "Exit" msgstr "" msgid "About" msgstr "" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "" msgid "You can visit our site here" msgstr "" msgid "&License" msgstr "" #, python-format msgid "version %s" msgstr "" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "" msgid "License" msgstr "" msgid "= Working Directory Parent =" msgstr "" msgid "Directory of files" msgstr "" msgid "Tar archives" msgstr "" msgid "Uncompressed tar archive" msgstr "" msgid "Bzip2 tar archives" msgstr "" msgid "Tar archive compressed using bzip2" msgstr "" msgid "Gzip tar archives" msgstr "" msgid "Tar archive compressed using gzip" msgstr "" msgid "Zip archives" msgstr "" msgid "Uncompressed zip archive" msgstr "" msgid "Zip archive compressed using deflate" msgstr "" msgid "Revision:" msgstr "" msgid "All files in this revision" msgstr "" msgid "Only files modified/created in this revision" msgstr "" msgid "Only files modified/created since:" msgstr "" msgid "Archive Content:" msgstr "" msgid "Recurse into subrepositories" msgstr "" msgid "Browse..." msgstr "" msgid "Destination path:" msgstr "" msgid "Archive types:" msgstr "" msgid "Hg command:" msgstr "" msgid "Select Destination Folder" msgstr "" msgid "Select Destination File" msgstr "" msgid "All files (*)" msgstr "" msgid "Duplicate Name" msgstr "" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "" msgid "Confirm Overwrite" msgstr "" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "" #, python-format msgid "Archive - %s" msgstr "" msgid "&Archive" msgstr "" msgid "Backout requires a parent revision" msgstr "" msgid "Cannot backout change on a different branch" msgstr "" #, python-format msgid "Backout - %s" msgstr "" msgid "Prepare to backout" msgstr "" msgid "Verify backout revision and ensure your working directory is clean." msgstr "" msgid "Backing out a parent revision is a single step operation" msgstr "" msgid "Backout revision" msgstr "" msgid "Not a head, backout will create a new head!" msgstr "" msgid "Current local revision" msgstr "" msgid "Working directory status" msgstr "" msgid "Checking..." msgstr "" msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Automatically resolve merge conflicts where possible" msgstr "" msgid "Uncommitted local changes are detected" msgstr "" msgid "Clean" msgstr "" msgid "Backing out, then merging..." msgstr "" msgid "All conflicting files will be marked unresolved." msgstr "" msgid "Automatically advance to next page when backout and merge are complete." msgstr "" #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" msgid "No merge conflicts, ready to commit" msgstr "" msgid "Commit backout and merge results" msgstr "" msgid "Parents" msgstr "" msgid "Working Directory" msgstr "" msgid "Working Directory (merged)" msgstr "" msgid "Commit message" msgstr "" msgid "Skip final confirmation page, close after commit." msgstr "" msgid "Backed out changeset: " msgstr "" msgid "Confirm Discard Message" msgstr "" msgid "Discard current backout message?" msgstr "" msgid "Use English backout message" msgstr "" msgid "Backing out and committing..." msgstr "" msgid "Please wait while making backout." msgstr "" msgid "Committing..." msgstr "" msgid "Please wait while committing merged files." msgstr "" msgid "Finished" msgstr "" msgid "Backout changeset" msgstr "" #, python-format msgid "Bisect - %s" msgstr "" msgid "Accept" msgstr "" msgid "Known good revision:" msgstr "" msgid "Known bad revision:" msgstr "" msgid "Discard local changes (revert --all)" msgstr "" msgid "Revision is &Good" msgstr "" msgid "Revision is &Bad" msgstr "" msgid "&Skip this Revision" msgstr "" msgid "Close" msgstr "" msgid "Error encountered." msgstr "" msgid "Culprit found." msgstr "" msgid "Revision" msgstr "" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "" #, python-format msgid "%s (hint: %s)" msgstr "" msgid "Bookmark:" msgstr "" msgid "New Name:" msgstr "" msgid "Activate:" msgstr "" msgid "&Add" msgstr "" msgid "Re&name" msgstr "" msgid "&Remove" msgstr "" msgid "&Move" msgstr "" #, python-format msgid "Bookmark - %s" msgstr "" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "" #, python-format msgid "Bookmark '%s' has been added" msgstr "" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "" #, python-format msgid "Bookmark '%s' has been moved" msgstr "" #, python-format msgid "Bookmark '%s' does not exist" msgstr "" #, python-format msgid "Bookmark '%s' has been removed" msgstr "" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "" msgid "TortoiseHg Bookmark Sync" msgstr "" msgid "Outgoing Bookmarks" msgstr "" msgid "&Push Bookmark" msgstr "" msgid "&Remove Bookmark" msgstr "" msgid "Incoming Bookmarks" msgstr "" msgid "P&ull Bookmark" msgstr "" msgid "R&emove Bookmark" msgstr "" #, python-format msgid "Pushed local bookmark: %s" msgstr "" #, python-format msgid "Pulled remote bookmark: %s" msgstr "" #, python-format msgid "Removed remote bookmark: %s" msgstr "" #, python-format msgid "Removed local bookmark: %s" msgstr "" #, python-format msgid "%s - branch operation" msgstr "" msgid "Select branch of merge commit" msgstr "" msgid "Changes take effect on next commit" msgstr "" msgid "No branch changes" msgstr "" msgid "Open a new named branch" msgstr "" msgid "Close current branch" msgstr "" #, python-format msgid "Please report this bug to our bug tracker" msgstr "" msgid "Checking for updates..." msgstr "" msgid "Copy" msgstr "" msgid "Quit" msgstr "" msgid "TortoiseHg Bug Report" msgstr "" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "" msgid "Your TortoiseHg is up to date." msgstr "" msgid "Save error report to" msgstr "" msgid "Text files (*.txt)" msgstr "" msgid "Error writing file" msgstr "" msgid "TortoiseHg Error" msgstr "" msgid "" "If you still have trouble, please file a bug report." msgstr "" msgid "Visual Diff" msgstr "" msgid "View file changes in external diff tool" msgstr "" msgid "Edit Local" msgstr "" msgid "Edit current file in working copy" msgstr "" msgid "Revert to Revision" msgstr "" msgid "Revert file(s) to contents at this revision" msgstr "" msgid "Patch failed to apply" msgstr "" msgid "Manually resolve rejected chunks?" msgstr "" msgid "Edit patched file and rejects?" msgstr "" msgid "No deletable chunks" msgstr "" msgid "Completely remove file from patch?" msgstr "" msgid "Revert all file changes?" msgstr "" msgid "No chunks remain" msgstr "" msgid "file has been deleted, refresh" msgstr "" msgid "file has been modified, refresh" msgstr "" msgid "Unable to merge chunks" msgstr "" msgid "Add or remove patches must be merged in the working directory" msgstr "" msgid "Unable to remove" msgstr "" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" msgctxt "files" msgid "All" msgstr "" msgctxt "files" msgid "None" msgstr "" msgid "Toggle display of text search bar" msgstr "" msgid "Diff Toolbar" msgstr "" #, python-format msgid "Chunks selected: %d / %d" msgstr "" msgid "Please wait while the file is opened ..." msgstr "" msgid "Source:" msgstr "" msgid "Destination:" msgstr "" msgid "Options" msgstr "" msgid "Clone to revision:" msgstr "" msgid "A revision identifier, bookmark, tag or branch name" msgstr "" msgid "Do not update the new working directory" msgstr "" msgid "Use pull protocol to copy metadata" msgstr "" msgid "Clone with minimal processing" msgstr "" msgid "Include patch queue" msgstr "" msgid "Use proxy server" msgstr "" msgid "Do not verify host certificate" msgstr "" msgid "Remote command:" msgstr "" msgid "Use largefiles" msgstr "" msgid "Start revision:" msgstr "" msgid "Select source repository" msgstr "" msgid "Select destination repository" msgstr "" msgid "Select patch folder" msgstr "" #, python-format msgid "Clone - %s" msgstr "" msgid "&Clone" msgstr "" msgid "failed to start command\n" msgstr "" msgid "error while running command\n" msgstr "" #, python-format msgid "process exited unexpectedly with code %d" msgstr "" #, python-format msgid "failed to encode command: %s" msgstr "" #, python-format msgid "timed out while reading: %r..." msgstr "" msgid "timed out waiting for message" msgstr "" #, python-format msgid "unexpected response on required channel %r" msgstr "" #, python-format msgid "invalid \"hello\" message: %r" msgstr "" msgid "no \"runcommand\" capability" msgstr "" #, python-format msgid "corrupted command result: %r" msgstr "" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "" msgid "Terminated by user" msgstr "" #, python-format msgid "[command terminated by user %s]" msgstr "" #, python-format msgid "[command interrupted %s]" msgstr "" #, python-format msgid "[command returned code %d %%s]" msgstr "" #, python-format msgid "[command completed successfully %s]" msgstr "" msgid "Running..." msgstr "" msgid "Failed!" msgstr "" msgid "Clea&r Log" msgstr "" msgid "TortoiseHg Prompt" msgstr "" msgid "Show Detail" msgstr "" msgid "Hide Detail" msgstr "" msgid "Confirm Exit" msgstr "" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" msgid "&Run" msgstr "" msgid "TortoiseHg Command Dialog" msgstr "" msgid "Command Error" msgstr "" #, python-format msgid "[Code: %d]" msgstr "" msgid "Merge" msgstr "" #, python-format msgid "Merge with %s" msgstr "" msgid "Patch Name Required" msgstr "" msgid "You must enter a patch name" msgstr "" msgctxt "start progress" msgid "Commit" msgstr "" msgctxt "start progress" msgid "MQ Action" msgstr "" msgctxt "start progress" msgid "Rollback" msgstr "" msgid "Commit Dialog Toolbar" msgstr "" msgid "Branch: " msgstr "" msgid "Copy message" msgstr "" msgid "Copy one of the recent commit messages" msgstr "" msgid "Show Issues" msgstr "" msgid "Please wait..." msgstr "" #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "" msgid "Issue Tracker" msgstr "" msgid "Show Issues..." msgstr "" msgid "Stop" msgstr "" msgid "### patch name ###" msgstr "" msgid "Commit changes" msgstr "" msgid "Commit" msgstr "" msgid "Amend current revision" msgstr "" msgid "Amend" msgstr "" msgid "Create a new patch" msgstr "" msgid "QNew" msgstr "" msgid "Refresh current patch" msgstr "" msgid "QRefresh" msgstr "" msgid "Confirm Branch Change" msgstr "" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "" msgid "Restart &Branch" msgstr "" msgid "&Commit to current branch" msgstr "" msgid "Cancel" msgstr "" msgid "Confirm New Branch" msgstr "" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "" msgid "Create &Branch" msgstr "" msgid "Close Branch: " msgstr "" msgid "New Branch: " msgstr "" #, python-format msgid "Selected Options: %s" msgstr "" msgid "Parent:" msgstr "" msgid "Patch name:" msgstr "" #, python-format msgid "Close %s branch" msgstr "" #, python-format msgid "Rollback commit to revision %d" msgstr "" msgid "Confirm Undo" msgstr "" msgid "Discard current commit message?" msgstr "" msgid "Message Translation Failure" msgstr "" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" msgid "&Replace" msgstr "" msgid "Nothing Committed" msgstr "" msgid "Please enter commit message" msgstr "" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" msgid "No files checked" msgstr "" msgid "No modified files checkmarked for commit" msgstr "" msgid "Confirm Add" msgstr "" msgid "Add selected untracked files?" msgstr "" msgid "Confirm Remove" msgstr "" msgid "Remove selected deleted files?" msgstr "" msgid "Nothing changed." msgstr "" msgctxt "window title" msgid "Commit" msgstr "" #, python-format msgid "%s - commit options" msgstr "" msgid "Set username:" msgstr "" msgid "Save in Repo" msgstr "" msgid "Save Global" msgstr "" msgid "Set Date:" msgstr "" msgid "Update" msgstr "" msgid "Push After Commit:" msgstr "" msgid "Auto Includes:" msgstr "" msgid "Recurse into subrepositories (--subrepos)" msgstr "" msgid "Unable to save username" msgstr "" msgid "Iniparse must be installed." msgstr "" msgid "Unable to write configuration file" msgstr "" msgid "Unable to save after commit push" msgstr "" msgid "Unable to save auto include list" msgstr "" msgid "Unable to save recurse in subrepos." msgstr "" msgid "Invalid date format" msgstr "" msgid "No username configured" msgstr "" #, python-format msgid "%s - commit" msgstr "" msgid "TortoiseHg Commit" msgstr "" msgid "Are you sure that you want to cancel the commit operation?" msgstr "" msgid "Compress changesets up to and including" msgstr "" msgid "Onto destination" msgstr "" msgid "Compress" msgstr "" #, python-format msgid "Compress - %s" msgstr "" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the compress" msgstr "" msgid "Changes have been moved, you must now commit" msgstr "" msgctxt "action button" msgid "Commit" msgstr "" msgid "Compress is complete, old history untouched" msgstr "" msgid "must be specified repository" msgstr "" msgid "must be specified 'type' in style" msgstr "" msgid "Git Commit:" msgstr "" msgid "Summary:" msgstr "" msgid "User:" msgstr "" msgid "Date:" msgstr "" msgid "Age:" msgstr "" msgid "Branch:" msgstr "" msgid "Close:" msgstr "" msgid "Tags:" msgstr "" msgid "Graft:" msgstr "" msgid "Transplant:" msgstr "" msgid "Obsolete state:" msgstr "" msgid "Perforce:" msgstr "" msgid "Subversion:" msgstr "" msgid "Converted From:" msgstr "" msgid "Original Parent:" msgstr "" msgid "No items to display" msgstr "" msgid "Use compact view" msgstr "" msgid "Patch:" msgstr "" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "" msgid "Select a GUI location to edit:" msgstr "" msgid "Select the toolbar or menu to change" msgstr "" msgid "Tools shown on selected location" msgstr "" msgid "Delete from list" msgstr "" msgid "Add to list" msgstr "" msgid "Add separator" msgstr "" msgid "List of all tools" msgstr "" msgid "New Tool ..." msgstr "" msgid "Edit Tool ..." msgstr "" msgid "Delete Tool" msgstr "" msgid "Type" msgstr "" msgid "Name" msgstr "" msgid "Command" msgstr "" msgid "New hook" msgstr "" msgid "Edit hook" msgstr "" msgid "Delete hook" msgstr "" msgid "Replace existing hook?" msgstr "" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" msgid "OK" msgstr "" msgid "Missing information" msgstr "" msgid "All items" msgstr "" msgid "Working directory" msgstr "" msgid "All revisions" msgstr "" msgid "All contexts" msgstr "" msgid "Fixed revisions" msgstr "" msgid "Applied patches" msgstr "" msgid "Applied patches or qparent" msgstr "" msgid "" msgstr "" msgid "Configure Custom Tool" msgstr "" msgid "Tool name" msgstr "" msgid "The tool name. It cannot contain spaces." msgstr "" #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" msgid "Tool label" msgstr "" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" msgid "Tooltip" msgstr "" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" msgid "Icon" msgstr "" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" msgid "On repowidget, show for" msgstr "" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" msgid "Show Output Log" msgstr "" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" msgid "You must set a tool name." msgstr "" msgid "The tool name cannot have any spaces in it." msgstr "" msgid "You must set a command to run." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" msgid "Configure Hook" msgstr "" msgid "Hook type" msgstr "" msgid "Select when your command will be run" msgstr "" msgid "The hook name. It cannot contain spaces." msgstr "" msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" msgid "You must set a valid hook type." msgstr "" msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "" msgid "Console" msgstr "" msgid "File &History / Annotate" msgstr "" msgid "Show the history of the selected file" msgstr "" msgid "Co&mpare File Revisions" msgstr "" msgid "Compare revisions of the selected file" msgstr "" msgid "Filter Histor&y" msgstr "" msgid "Query about changesets affecting the selected files" msgstr "" msgid "Diff &Changeset to Parent" msgstr "" msgid "Diff Changeset to Loc&al" msgstr "" msgid "&Diff to Parent" msgstr "" msgid "Diff to &Local" msgstr "" msgid "View changes to current in external diff tool" msgstr "" msgid "&View at Revision" msgstr "" msgid "View file as it appeared at this revision" msgstr "" msgid "&Save at Revision..." msgstr "" msgid "Save file as it appeared at this revision" msgstr "" msgid "Save file to" msgstr "" msgid "&Edit Local" msgstr "" msgid "&Open Local" msgstr "" msgid "E&xplore Local" msgstr "" msgid "Open parent folder of current file in the system file manager" msgstr "" msgid "&Copy Patch" msgstr "" msgid "Copy &Path" msgstr "" msgid "Copy full path of file(s) to the clipboard" msgstr "" msgid "&Revert to Revision..." msgstr "" msgid "Open S&ubrepository" msgstr "" msgid "Open the selected subrepository" msgstr "" msgid "E&xplore Folder" msgstr "" msgid "Open the selected folder in the system file manager" msgstr "" msgid "Open &Terminal" msgstr "" msgid "Open a shell terminal in the selected folder" msgstr "" msgid "Custom Tools" msgstr "" msgid "Diff &Local" msgstr "" msgid "&View Missing" msgstr "" msgid "View O&ther" msgstr "" msgid "Add &Largefiles..." msgstr "" msgid "&Forget" msgstr "" msgid "&Delete Unversioned..." msgstr "" msgid "Confirm Delete Unversioned" msgstr "" msgid "Delete the following unversioned files?" msgstr "" msgid "&Delete" msgstr "" msgid "Re&move Versioned" msgstr "" msgid "&Revert..." msgstr "" msgid "Uncommited merge - please select a parent revision" msgstr "" msgid "Revert files to local or other parent?" msgstr "" msgid "&Local" msgstr "" msgid "&Other" msgstr "" msgid "Confirm Revert" msgstr "" msgid "Revert local file changes?" msgstr "" msgid "&Revert with backup" msgstr "" msgid "&Discard changes" msgstr "" msgid "Revert the following files?" msgstr "" msgid "&Revert" msgstr "" msgid "&Copy..." msgstr "" msgid "Re&name..." msgstr "" msgid "&Ignore..." msgstr "" msgid "Edit Re&jects" msgstr "" msgid "Manually resolve rejected patch chunks" msgstr "" msgid "De&tect Renames..." msgstr "" msgid "&Mark Resolved" msgstr "" msgid "&Mark Unresolved" msgstr "" msgid "Restart Mer&ge" msgstr "" msgid "Was renamed from" msgstr "" msgid "Restart Merge &with" msgstr "" msgid "Display the file anyway" msgstr "" msgid "Diff not displayed: " msgstr "" #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid "File is binary" msgstr "" msgid "File may be binary (maximum line length exceeded)" msgstr "" msgid "File or diffs not displayed: " msgstr "" msgid " (was added)" msgstr "" #, python-format msgid " (copied from %s)" msgstr "" #, python-format msgid " (renamed from %s)" msgstr "" msgid " (is a symlink)" msgstr "" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid " (was deleted)" msgstr "" msgid " (was added, now missing)" msgstr "" msgid " (is unversioned)" msgstr "" msgid "exec mode has been set" msgstr "" msgid "exec mode has been unset" msgstr "" #, python-format msgid "changeset: %s" msgstr "" msgid "Initial revision" msgstr "" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" msgid "Subrepo created and set to initial revision." msgstr "" msgid "Subrepo initialized to revision:" msgstr "" msgid "Subrepo removed from repository." msgstr "" msgid "Previously the subrepository was at the following revision:" msgstr "" msgid "Subrepo was not changed." msgstr "" msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "" msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "" msgid "Subrepo state is:" msgstr "" msgid "Revision has changed to:" msgstr "" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "" msgid "From:" msgstr "" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" msgid "Subrepository not found in the working directory." msgstr "" msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" msgid "Not a Mercurial subrepo, not previewable" msgstr "" #, python-format msgid "Error previewing subrepo: %s" msgstr "" msgid "Subrepo may be damaged or inaccessible." msgstr "" msgid "The subrepository is dirty." msgstr "" msgid "File Status:" msgstr "" msgid "(is a changed sub-repository)" msgstr "" msgid "(is an unchanged sub-repository)" msgstr "" msgid "(is a dirty sub-repository)" msgstr "" msgid "(is a new sub-repository)" msgstr "" msgid "(is a removed sub-repository)" msgstr "" msgid "(is a changed and dirty sub-repository)" msgstr "" msgid "(is a new and dirty sub-repository)" msgstr "" msgid "open..." msgstr "" #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "" msgid "File History Log Columns" msgstr "" msgid "Back" msgstr "" msgid "Forward" msgstr "" msgid "Diff Selected &Changesets" msgstr "" msgid "&Diff Selected File Revisions" msgstr "" msgid "Show Revision &Details" msgstr "" msgid "Too many rows selected for menu" msgstr "" msgid "File Differences Log Columns" msgstr "" msgid "Next diff" msgstr "" msgid "Previous diff" msgstr "" msgid "Unicode" msgstr "" msgid "Western Europe" msgstr "" msgid "Unified Chinese" msgstr "" msgid "Traditional Chinese" msgstr "" msgid "Korean" msgstr "" msgid "Japanese" msgstr "" msgid "Thai" msgstr "" msgid "Central and Eastern Europe" msgstr "" msgid "Cyrillic" msgstr "" msgid "Russian" msgstr "" msgid "Ukrainian" msgstr "" msgid "Greek" msgstr "" msgid "Turkish" msgstr "" msgid "Arabic" msgstr "" msgid "Hebrew" msgstr "" msgid "Vietnamese" msgstr "" msgid "Baltic" msgstr "" msgid "Southern Europe" msgstr "" msgid "Nordic" msgstr "" msgid "Celtic" msgstr "" msgid "South-Eastern Europe" msgstr "" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "" msgid "View change as unified diff output" msgstr "" msgid "View change in context of file" msgstr "" msgid "Annotate with revision numbers" msgstr "" msgid "Next Diff" msgstr "" msgid "Previous Diff" msgstr "" msgid "Open shelve tool" msgstr "" msgid "&Auto Detect" msgstr "" msgid "Show changes from first parent" msgstr "" msgid "Show changes from second parent" msgstr "" msgid "E&ncoding" msgstr "" msgid "&Search in Current File" msgstr "" msgid "Search in All &History" msgstr "" msgid "Go to Line" msgstr "" #, python-format msgid "Enter line number (1 - %d)" msgstr "" msgid "Show &Author" msgstr "" msgid "Show &Date" msgstr "" msgid "Show &Revision" msgstr "" msgid "Annotate Op&tions" msgstr "" msgid "Search Selected Text" msgstr "" msgid "In Current &File" msgstr "" msgid "In &Current Revision" msgstr "" msgid "In &Original Revision" msgstr "" msgid "In All &History" msgstr "" msgid "Go to" msgstr "" msgid "View File at" msgstr "" msgid "Diff File to" msgstr "" msgid "&Originating Revision" msgstr "" msgid "&Parent Revision" msgstr "" #, python-format msgid "&Parent Revision (%d)" msgstr "" msgid "&Mark Excluded Changes" msgstr "" msgid "(excluded from the next commit)" msgstr "" msgid "Interrupted graft operation found" msgstr "" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" msgid "Continue or abort interrupted graft operation?" msgstr "" msgid "To graft destination" msgstr "" msgid "Use my user name instead of graft committer user name" msgstr "" msgid "Use current date" msgstr "" msgid "Append graft info to log message" msgstr "" msgid "Graft" msgstr "" msgid "Abort" msgstr "" #, python-format msgid "Graft - %s" msgstr "" msgid "Graft changeset" msgstr "" #, python-format msgid "Graft changeset #%d of %d" msgstr "" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" msgid "You may continue or start the graft" msgstr "" msgid "Graft is complete" msgstr "" msgid "Graft failed" msgstr "" msgid "Graft aborted" msgstr "" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" msgid "You may continue the graft" msgstr "" msgid "Exiting with an unfinished graft is not recommended." msgstr "" msgid "Consider aborting the graft first." msgstr "" msgid "&Exit" msgstr "" msgid "### regular expression search pattern ###" msgstr "" msgid "Regexp:" msgstr "" msgid "Ignore case" msgstr "" msgid "Search" msgstr "" msgid "Working Copy" msgstr "" msgid "All History" msgstr "" msgid "Report only the first match per file" msgstr "" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "" msgid "Includes:" msgstr "" msgid "Excludes:" msgstr "" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" #, python-format msgid "\"%s\" removed from search history" msgstr "" #, python-format msgid "\"%s\" removed from path history" msgstr "" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "" #, python-format msgid "grep: %s\n" msgstr "" #, python-format msgid "%d matches found" msgstr "" msgid "No matches found" msgstr "" msgid "Searching" msgstr "" msgid "history" msgstr "" msgid "Interrupted" msgstr "" msgid "files" msgstr "" #, python-format msgid "Skipping %s, unable to read" msgstr "" msgid "Vi&ew File" msgstr "" msgid "&View Changeset" msgstr "" msgid "Annotate &File" msgstr "" msgid "File" msgstr "" msgid "Line" msgstr "" msgid "Rev" msgstr "" msgid "User" msgstr "" msgid "Match Text" msgstr "" msgid "TortoiseHg Search" msgstr "" #, python-format msgid "Detect Copies/Renames in %s" msgstr "" msgid "Unrevisioned Files" msgstr "" msgid "Refresh file list" msgstr "" #, python-format msgid "Min Similarity: %d%%" msgstr "" msgid "Only consider deleted files" msgstr "" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "" msgid "Find Renames" msgstr "" msgid "Find copy and/or rename sources" msgstr "" msgid "Candidate Matches" msgstr "" msgid "Accept All Matches" msgstr "" msgid "Accept Selected Matches" msgstr "" msgid "Differences from Source to Dest" msgstr "" msgid "Search already in progress" msgstr "" msgid "Cannot start a new search" msgstr "" msgid "No files to find" msgstr "" msgid "There are no files that may have been renamed" msgstr "" msgid "Multiple sources chosen" msgstr "" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" #. i18n: percent format #, python-format msgid "%d%%" msgstr "" msgid "Source" msgstr "" msgid "Dest" msgstr "" msgid "% Match" msgstr "" msgid "Sending Email" msgstr "" msgid "Email" msgstr "" msgid "To:" msgstr "" msgid "Cc:" msgstr "" msgid "In-Reply-To:" msgstr "" msgid "Message identifier to reply to, for threading" msgstr "" msgid "Flag:" msgstr "" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" msgid "Send changesets as Hg patches" msgstr "" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" msgid "Use extended (git) patch format" msgstr "" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" msgid "Plain, do not prepend Hg header" msgstr "" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" msgid "Send single binary bundle, not patches" msgstr "" msgid "send patches as part of the email body" msgstr "" msgid "body" msgstr "" msgid "send patches as attachments" msgstr "" msgid "attach" msgstr "" msgid "send patches as inline attachments" msgstr "" msgid "inline" msgstr "" msgid "add diffstat output to messages" msgstr "" msgid "diffstat" msgstr "" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" msgid "Write patch series (bundle) description" msgstr "" msgid "Subject:" msgstr "" msgid "Changesets" msgstr "" msgid "Select &All" msgstr "" msgid "Select &None" msgstr "" msgid "Edit" msgstr "" msgid "Preview" msgstr "" msgid "&Settings" msgstr "" msgid "Send &Email" msgstr "" msgid "&Close" msgstr "" #, python-format msgid "Ignore filter - %s" msgstr "" msgid "Glob" msgstr "" msgid "Regexp" msgstr "" msgid "Add" msgstr "" msgid "Edit File" msgstr "" msgid "Ignore Filter" msgstr "" msgid "Untracked Files" msgstr "" msgid "Backspace or Del to remove row(s)" msgstr "" msgid "Add ignore filter..." msgstr "" msgid "selected files" msgstr "" msgid "Ignore " msgstr "" msgid "Invalid glob expression" msgstr "" msgid "Invalid regexp expression" msgstr "" msgid "Unable to read repository status" msgstr "" msgid "New file created" msgstr "" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" msgid "Unable to write .hgignore file" msgstr "" msgid "Copy working directory files from skeleton" msgstr "" msgid "Create special files (.hgignore, ...)" msgstr "" msgid "Make repo compatible with Mercurial <1.7" msgstr "" msgid "New Repository" msgstr "" msgid "&Create" msgstr "" msgid "Unable to create a config file" msgstr "" msgid "Insufficient access rights." msgstr "" msgid "Show Log" msgstr "" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" msgid "Add as &Largefiles" msgstr "" msgid "Add as &Normal Files" msgstr "" msgid "Invalid Patterns" msgstr "" msgid "Failed to process largefiles.patterns." msgstr "" msgid "Word docs (*.doc *.docx)" msgstr "" msgid "PDF docs (*.pdf)" msgstr "" msgid "Excel files (*.xls *.xlsx)" msgstr "" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "" msgid "Refresh lock information" msgstr "" msgid "Lock a file not described in .hglocks" msgstr "" msgid "Stop current operation" msgstr "" msgid "Locked And Lockable Files:" msgstr "" msgid "Path" msgstr "" msgid "Locking User" msgstr "" msgid "Purpose" msgstr "" msgid "Simplelock extension not enabled" msgstr "" msgid "Please enable and configure simplelock" msgstr "" msgid "Open a (nonmergable) file you wish to be locked" msgstr "" msgid "File was not within current repository" msgstr "" #, python-format msgid "Locking %s" msgstr "" #, python-format msgid "Unlocking %s" msgstr "" msgid "Refreshing locks..." msgstr "" #, python-format msgid "Lock of %s successful" msgstr "" #, python-format msgid "Lock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s successful" msgstr "" msgid "Ready, double click to lock or unlock" msgstr "" msgid "Ready" msgstr "" msgid "You can only release your own locks" msgstr "" msgid "Find revisions matching fields of:" msgstr "" msgid "Revision to Match:" msgstr "" msgid "Fields to match:" msgstr "" msgid "Summary (first description line)" msgstr "" msgid "Description" msgstr "" msgid "Author" msgstr "" msgid "Date" msgstr "" msgid "Files" msgstr "" msgid "Diff contents" msgstr "" msgid "Subrepo states" msgstr "" msgid "Branch" msgstr "" msgid "Phase" msgstr "" msgid "&Match" msgstr "" #, python-format msgid "Find matches - %s" msgstr "" msgid "Revisions to Match:" msgstr "" #, python-format msgid "Match any of %d revisions" msgstr "" msgid "Unknown revision!" msgstr "" msgid "Parse Error!" msgstr "" #, python-format msgid "Merge - %s" msgstr "" msgid "Do you want to exit?" msgstr "" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" msgid "Prepare to merge" msgstr "" msgid "Verify merge targets and ensure your working directory is clean." msgstr "" msgid "Not a head revision!" msgstr "" msgid "Merge from (other revision)" msgstr "" msgid "Merge to (working directory)" msgstr "" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Or use:" msgstr "" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "" msgid "Discard all changes from the other revision" msgstr "" msgid "&Discard" msgstr "" msgid "Confirm Discard Changes" msgstr "" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" msgctxt "working dir state" msgid "Clean" msgstr "" msgid "Merging..." msgstr "" msgid "Automatically advance to next page when merge is complete." msgstr "" #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" msgid "" "No merge conflicts, ready to commit or review" msgstr "" msgid "Commit merge results" msgstr "" msgid "Commit Options" msgstr "" msgid "Commit Now" msgstr "" msgid "Commit Later" msgstr "" msgid "Merge changeset" msgstr "" msgid "Syntax Highlighting" msgstr "" msgid "Paste &Filenames" msgstr "" msgid "App&ly Format" msgstr "" msgid "C&onfigure Format" msgstr "" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "" msgid "&Commit to Queue..." msgstr "" msgid "Create &New Queue..." msgstr "" msgid "&Rename Active Queue..." msgstr "" msgid "&Delete Queue..." msgstr "" msgid "&Purge Queue..." msgstr "" msgid "Create Patch Queue" msgstr "" msgid "New patch queue name" msgstr "" msgid "Create" msgstr "" msgid "Rename Patch Queue" msgstr "" #, python-format msgid "Rename patch queue '%s' to" msgstr "" msgid "Rename" msgstr "" msgid "Delete Patch Queue" msgstr "" msgid "Delete reference to" msgstr "" msgid "Delete" msgstr "" msgid "Purge Patch Queue" msgstr "" msgid "Remove patch directory of" msgstr "" msgid "Purge" msgstr "" msgid "Rename Patch" msgstr "" #, python-format msgid "Rename patch %s to:" msgstr "" msgid "no guards" msgstr "" msgid "Patch Queue" msgstr "" msgctxt "MQ QPush" msgid "Push" msgstr "" msgid "Apply one patch" msgstr "" msgctxt "MQ QPush" msgid "Push all" msgstr "" msgid "Apply all patches" msgstr "" msgid "Pop" msgstr "" msgid "Unapply one patch" msgstr "" msgid "Pop all" msgstr "" msgid "Unapply all patches" msgstr "" msgid "Go &to Patch" msgstr "" msgid "&Apply Only This Patch" msgstr "" msgid "Apply only the selected patch" msgstr "" msgid "&Finish Patch" msgstr "" msgid "Move applied patches into repository history" msgstr "" msgid "&Delete Patches..." msgstr "" msgid "Delete selected patches" msgstr "" msgid "Re&name Patch..." msgstr "" msgid "Set &Guards..." msgstr "" msgid "Configure guards for selected patch" msgstr "" msgid "Patch Queue Actions Toolbar" msgstr "" msgid "Configure guards" msgstr "" #, python-format msgid "Input new guards for %s:" msgstr "" msgid "Confirm patch queue switch" msgstr "" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "" #, python-format msgid "Guards: %d/%d" msgstr "" msgid "MQ options" msgstr "" msgid "Force push or pop (--force)" msgstr "" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "" msgid "Submitting p4 changelist..." msgstr "" msgid "Reverting p4 changelist..." msgstr "" msgid "Patch Branch Toolbar" msgstr "" msgid "Merge all pending dependencies" msgstr "" msgid "Backout current patch branch" msgstr "" msgid "Backport part of a changeset to a dependency" msgstr "" msgid "Start a new patch branch" msgstr "" msgid "Edit patch dependency graph" msgstr "" msgid "will be closed" msgstr "" #, python-format msgid "needs merge of %i heads\n" msgstr "" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "" #, python-format msgid "needs merge with %s\n" msgstr "" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "" msgid "&Goto (update workdir)" msgstr "" msgid "&Merge" msgstr "" msgid "No patch branch selected" msgstr "" msgid "No editor found" msgstr "" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" msgid "Graph" msgstr "" msgid "Status" msgstr "" msgid "Title" msgstr "" msgid "Message" msgstr "" msgid "New Patch Branch" msgstr "" msgid "Patch message:" msgstr "" msgid "Patch date:" msgstr "" msgid "Patch user:" msgstr "" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" msgid "Review Board" msgstr "" msgid "Password:" msgstr "" msgid "Error" msgstr "" #, python-format msgid "Review draft posted to %s\n" msgstr "" #, python-format msgid "Review published to %s\n" msgstr "" msgid "Success" msgstr "" msgid "Repository ID:" msgstr "" msgid "Post Review" msgstr "" msgid "Review ID:" msgstr "" msgid "Update the fields of this existing request" msgstr "" msgid "Update Review" msgstr "" msgid "Create diff with all outgoing changes" msgstr "" msgid "Create diff with all changes on this branch" msgstr "" msgid "Publish request immediately" msgstr "" msgid "%p%" msgstr "" msgid "Connecting to Review Board..." msgstr "" msgid "Target:" msgstr "" msgid "Do not modify working copy (-k/--keep)" msgstr "" #, python-format msgid "Prune - %s" msgstr "" msgid "&Prune" msgstr "" msgid "No unknown files found" msgstr "" msgid "No ignored files found" msgstr "" msgid "No trash files found" msgstr "" msgid "Delete empty folders" msgstr "" msgid "Preserve files beginning with .hg" msgstr "" #, python-format msgid "%s - purge" msgstr "" msgid "Checking" msgstr "" msgid "Ready to purge." msgstr "" #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "" msgstr[1] "" msgid "Confirm file deletions" msgstr "" msgid "Are you sure you want to delete these files and/or folders?" msgstr "" msgid "Deletion failures" msgstr "" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "" msgstr[1] "" msgid "Deleting trash folder..." msgstr "" #, python-format msgid "Deleted %d files" msgstr "" #, python-format msgid "Deleted %d files and %d folders" msgstr "" msgid "Delete Patches" msgstr "" msgid "Remove patches from queue?" msgstr "" msgid "Keep patch files" msgstr "" #, python-format msgid "Patch fold - %s" msgstr "" msgid "New patch message:" msgstr "" msgid "Patches to fold" msgstr "" msgid "&Undo" msgstr "" msgid "&Redo" msgstr "" msgid "Cu&t" msgstr "" msgid "&Copy" msgstr "" msgid "&Paste" msgstr "" msgid "&Editor Options" msgstr "" msgid "&Wrap" msgstr "" msgctxt "wrap mode" msgid "&None" msgstr "" msgid "&Word" msgstr "" msgid "&Character" msgstr "" msgid "White&space" msgstr "" msgid "&Visible" msgstr "" msgid "&Invisible" msgstr "" msgid "&AfterIndent" msgstr "" msgid "&TAB Inserts" msgstr "" msgid "&Auto" msgstr "" msgid "&TAB" msgstr "" msgid "&Spaces" msgstr "" msgid "EOL &Visibility" msgstr "" msgid "EOL &Mode" msgstr "" msgid "&Windows" msgstr "" msgid "&Unix" msgstr "" msgid "&Mac" msgstr "" msgid "&Auto-Complete" msgstr "" msgid "### regular expression ###" msgstr "" msgid "Regular expression search pattern" msgstr "" msgid "Wrap search" msgstr "" msgid "Prev" msgstr "" msgid "Next" msgstr "" msgid "Unable to read file" msgstr "" msgid "Could not open the specified file for reading." msgstr "" msgid "This appears to be a binary file." msgstr "" msgid "An error occurred while reading the file." msgstr "" msgid "Text Translation Failure" msgstr "" msgid "Could not translate the file content from native encoding." msgstr "" msgid "Several characters would be lost." msgstr "" msgid "Unable to write file" msgstr "" msgid "Could not translate the file content to native encoding." msgstr "" msgid "Could not open the specified file for writing." msgstr "" msgid "An error occurred while writing the file." msgstr "" msgid "Try refreshing your repository." msgstr "" #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
                                                                      Please edit your config" msgstr "" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
                                                                      Please fix your config" msgstr "" #, python-format msgid "Operation aborted:

                                                                      %(arg0)s." msgstr "" msgid "Repository is locked" msgstr "" msgid "hint:" msgstr "" msgid "Repository Error" msgstr "" msgid "No visual editor configured" msgstr "" msgid "Please configure a visual editor." msgstr "" msgid "Editor launch failure" msgstr "" msgid "Failed to open path in terminal" msgstr "" #, python-format msgid "\"%s\" is not a valid directory" msgstr "" #, python-format msgid "Invalid configuration: %s" msgstr "" msgid "Unable to start the following command:" msgstr "" msgid "No shell configured" msgstr "" msgid "A terminal shell must be configured" msgstr "" msgid "Please enter a username" msgstr "" msgid "You must identify yourself to Mercurial" msgstr "" msgid "Unable to translate input to local encoding." msgstr "" msgid "Checkmark files to add" msgstr "" msgid "Checkmark files to forget" msgstr "" msgid "Forget" msgstr "" msgid "Checkmark files to revert" msgstr "" msgid "Revert" msgstr "" msgid "Checkmark files to remove" msgstr "" msgid "Remove" msgstr "" #, python-format msgid "%s - hg %s" msgstr "" msgid "Do not save backup files (*.orig)" msgstr "" msgid "Force removal of modified files (--force)" msgstr "" msgid "Add &Largefiles" msgstr "" msgid "No files selected" msgstr "" msgid "No operation to perform" msgstr "" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" msgid "Remove &Unmodified Files" msgstr "" msgid "Remove &All Selected Files" msgstr "" msgid "Rebase changeset and descendants" msgstr "" msgid "To rebase destination" msgstr "" msgid "Swap source and destination" msgstr "" msgid "Keep original changesets (--keep)" msgstr "" msgid "Keep original branch names (--keepbranches)" msgstr "" msgid "Collapse the rebased changesets (--collapse)" msgstr "" msgid "Rebase entire source branch (-b/--base)" msgstr "" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "" msgid "Rebase" msgstr "" #, python-format msgid "Rebase - %s" msgstr "" msgid "" "Before rebase, you must
                                                                      commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the rebase" msgstr "" msgid "Rebase is complete" msgstr "" msgid "Rebase failed" msgstr "" msgid "Rebase aborted" msgstr "" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" msgid "Exiting with an unfinished rebase is not recommended." msgstr "" msgid "Consider aborting the rebase first." msgstr "" #, python-format msgid "Merge rejected patch chunks into %s" msgstr "" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "" msgid "Mark this chunk as unresolved" msgstr "" msgid "Reload File" msgstr "" msgid "Are you sure you want to reload this file?" msgstr "" msgid "All unsaved changes will be lost." msgstr "" msgid "Warning" msgstr "" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" msgid "Copy source -> destination" msgstr "" msgid "Copy Error" msgstr "" msgid "Rename Error" msgstr "" msgid "Select Source File" msgstr "" msgid "Select Source Folder" msgstr "" msgid "Source does not exist." msgstr "" msgid "The source must be within the repository tree." msgstr "" msgid "The destination must be within the repository tree." msgstr "" msgid "Destination file already exists." msgstr "" msgid "Are you sure you want to overwrite it ?" msgstr "" #, python-format msgid "Copy - %s" msgstr "" #, python-format msgid "Rename - %s" msgstr "" msgid "Show all" msgstr "" msgid "### revision set query ###" msgstr "" msgid "Clear current query and query text" msgstr "" msgid "Trigger revision set query" msgstr "" msgid "Open advanced query editor" msgstr "" msgid "Delete selected query from history" msgstr "" msgid "filter" msgstr "" msgid "Toggle filtering of non-matched changesets" msgstr "" msgid "Show/Hide hidden changesets" msgstr "" msgid "Toggle graft relations visibility" msgstr "" msgid "Keyword Search" msgstr "" msgid "Revision Set" msgstr "" msgid "(unsaved)" msgstr "" msgid "Display graph the named branch only" msgstr "" msgid "Display only active branches" msgstr "" msgid "Display closed branches" msgstr "" msgid "Include all ancestors" msgstr "" msgctxt "column header" msgid "Graph" msgstr "" msgctxt "column header" msgid "Rev" msgstr "" msgctxt "column header" msgid "Branch" msgstr "" msgctxt "column header" msgid "Description" msgstr "" msgctxt "column header" msgid "Author" msgstr "" msgctxt "column header" msgid "Tags" msgstr "" msgctxt "column header" msgid "Latest tags" msgstr "" msgctxt "column header" msgid "Node" msgstr "" msgctxt "column header" msgid "Git Commit" msgstr "" msgctxt "column header" msgid "Age" msgstr "" msgctxt "column header" msgid "Local Time" msgstr "" msgctxt "column header" msgid "UTC Time" msgstr "" msgctxt "column header" msgid "Changes" msgstr "" msgctxt "column header" msgid "Converted From" msgstr "" msgctxt "column header" msgid "Phase" msgstr "" msgctxt "column header" msgid "Filename" msgstr "" msgid "Searching..." msgstr "" #, python-format msgid "filling (%d)" msgstr "" msgid "Mercurial User" msgstr "" msgid "Repository Registry" msgstr "" msgid "Show &Paths" msgstr "" msgid "Show S&hort Paths" msgstr "" msgid "&Scan Repositories at Startup" msgstr "" msgid "Scan &Remote Repositories" msgstr "" msgid "&Refresh Repository List" msgstr "" msgid "Refresh the Repository Registry list" msgstr "" msgid "&Open" msgstr "" msgid "Open the repository in a new tab" msgstr "" msgid "&Open All" msgstr "" msgid "Open all repositories in new tabs" msgstr "" msgid "New &Group" msgstr "" msgid "Create a new group" msgstr "" msgid "Rename the entry" msgstr "" msgid "Settin&gs" msgstr "" msgid "View the repository's settings" msgstr "" msgid "Re&move from Registry" msgstr "" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" msgid "Clon&e..." msgstr "" msgid "Clone Repository" msgstr "" msgid "E&xplore" msgstr "" msgid "Open the repository in a file browser" msgstr "" msgid "&Terminal" msgstr "" msgid "Open a shell terminal in the repository root" msgstr "" msgid "&Add Repository..." msgstr "" msgid "Add a repository to this group" msgstr "" msgid "A&dd Subrepository..." msgstr "" msgid "Convert an existing repository into a subrepository" msgstr "" msgid "Remo&ve Subrepository..." msgstr "" msgid "Remove this subrepository from the current revision" msgstr "" msgid "Copy the root path of the repository to the clipboard" msgstr "" msgid "Sort by &Name" msgstr "" msgid "Sort the group by short name" msgstr "" msgid "Sort by &Path" msgstr "" msgid "Sort the group by full path" msgstr "" msgid "&Sort by .hgsub" msgstr "" msgid "Order the subrepos as in .hgsub" msgstr "" msgid "Select repository directory to add" msgstr "" msgid "Select an existing repository to add as a subrepo" msgstr "" msgid "Cannot add subrepository" msgstr "" #, python-format msgid "%s is not a valid repository" msgstr "" #, python-format msgid "\"%s\" is not a folder" msgstr "" msgid "A repository cannot be added as a subrepo of itself" msgstr "" #, python-format msgid "" "The selected folder:

                                                                      %s

                                                                      is not inside the target repository." "

                                                                      This may be allowed but is greatly discouraged.
                                                                      If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" msgid "Cannot open repository" msgstr "" #, python-format msgid "The selected repository:

                                                                      %s

                                                                      cannot be open!" msgstr "" msgid "Subrepository already exists" msgstr "" #, python-format msgid "" "The selected repository:

                                                                      %s

                                                                      is already a subrepository of:" "

                                                                      %s

                                                                      as: \"%s\"" msgstr "" msgid "Failed to add subrepository" msgstr "" #, python-format msgid "Cannot open the .hgsub file in:

                                                                      %s" msgstr "" msgid "Failed to add repository" msgstr "" #, python-format msgid "The .hgsub file already contains the line:

                                                                      %s" msgstr "" msgid "Subrepo added to .hgsub file" msgstr "" #, python-format msgid "" "The selected subrepo:

                                                                      %s

                                                                      has been added to the .hgsub " "file of the repository:

                                                                      %s

                                                                      Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" #, python-format msgid "Cannot update the .hgsub file in:

                                                                      %s" msgstr "" msgid "Could not open .hgsub file" msgstr "" msgid "Cannot read the .hgsub file.

                                                                      Subrepository removal failed." msgstr "" msgid "Subrepository not found" msgstr "" msgid "" "The selected subrepository was not found on the .hgsub file.

                                                                      Perhaps it " "has already been removed?" msgstr "" msgid "&Yes" msgstr "" msgid "&No" msgstr "" msgid "Remove the selected repository?" msgstr "" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" msgid "Subrepository removed from .hgsub" msgstr "" msgid "" "The selected subrepository has been removed from the .hgsub file.

                                                                      Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" msgid "Could not update .hgsub file" msgstr "" msgid "Cannot update the .hgsub file.

                                                                      Subrepository removal failed." msgstr "" #, python-format msgid "Unsupported repository type (%s)" msgstr "" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "" msgid "New Group" msgstr "" msgid "Confirm Delete" msgstr "" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "" msgid "Could not get subrepository list" msgstr "" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

                                                                      %s" msgstr "" msgid "Could not open some subrepositories" msgstr "" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

                                                                      %s

                                                                      The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

                                                                      %s" msgstr "" msgid "Updating repository registry" msgstr "" #, python-format msgid "Loading repository %s" msgstr "" msgid "Repository Registry updated" msgstr "" msgid "Close tab" msgstr "" msgid "Close other tabs" msgstr "" msgid "Undo close tab" msgstr "" msgid "Reopen last closed tab" msgstr "" msgid "Undo close other tabs" msgstr "" msgid "Reopen last closed tab group" msgstr "" msgid "Failed to open repository" msgstr "" msgid "&Sort" msgstr "" #, python-format msgid "Local Repository %s" msgstr "" #, python-format msgid "" "An exception happened while loading the subrepos of:

                                                                      \"%s\"

                                                                      " msgstr "" #, python-format msgid "The exception error message was:

                                                                      %s

                                                                      " msgstr "" msgid "Click OK to continue or Abort to exit." msgstr "" msgid "Error loading subrepos" msgstr "" msgid "Unable to update repository name" msgstr "" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "" msgid "default" msgstr "" msgid "C&hoose Log Columns..." msgstr "" msgid "&Resize Columns" msgstr "" #, python-format msgid "Goto ancestor of %s and %s" msgstr "" #, python-format msgid "Can't find revision '%s'" msgstr "" msgid "Drag to change order" msgstr "" msgid "Workbench Log Columns" msgstr "" msgctxt "tab tooltip" msgid "Revision details" msgstr "" msgctxt "tab tooltip" msgid "Commit" msgstr "" msgctxt "tab tooltip" msgid "Search" msgstr "" msgctxt "tab tooltip" msgid "Console log" msgstr "" msgctxt "tab tooltip" msgid "Synchronize" msgstr "" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "" #, python-format msgid "%s " msgstr "" #, python-format msgid "Found %d incoming changesets" msgstr "" msgid "Pull" msgstr "" msgid "Pull incoming changesets into your repository" msgstr "" msgid "Reject incoming changesets" msgstr "" #, python-format msgid "Push current branch (%s)" msgstr "" #, python-format msgid "Push up to current revision (#%d)" msgstr "" #, python-format msgid "Push up to revision #%d" msgstr "" msgid "Push all" msgstr "" msgid "no outgoing changesets" msgstr "" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets" msgstr "" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "" msgid "Nothing to push" msgstr "" msgid "No revision found" msgstr "" #, python-format msgid "%s - verify repository" msgstr "" #, python-format msgid "%s - recover repository" msgstr "" msgid "No transaction available" msgstr "" msgid "There is no rollback transaction available" msgstr "" msgid "Undo last commit?" msgstr "" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "" msgid "Undo last transaction?" msgstr "" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "" msgid "Unable to determine working copy revision\n" msgstr "" msgid "Remove current working revision?" msgstr "" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" msgid "Tab cannot exit" msgstr "" msgid "Pus&h" msgstr "" msgid "Push to &Here" msgstr "" msgid "Push Selected &Branch" msgstr "" msgid "Push &All" msgstr "" msgid "&Update..." msgstr "" msgid "Bro&wse at Revision" msgstr "" msgid "&Merge with Local..." msgstr "" msgid "&Tag..." msgstr "" msgid "Boo&kmark..." msgstr "" msgid "Top&ic..." msgstr "" msgid "Sig&n..." msgstr "" msgid "&Backout..." msgstr "" msgid "Revert &All Files..." msgstr "" msgid "Copy &Hash" msgstr "" msgid "E&xport" msgstr "" msgid "E&xport Patch..." msgstr "" msgid "&Email Patch..." msgstr "" msgid "&Archive..." msgstr "" msgid "&Bundle Rev and Descendants..." msgstr "" msgid "Change &Phase to" msgstr "" msgid "&Graft to Local..." msgstr "" msgid "Modi&fy History" msgstr "" msgid "&Unapply Patch" msgstr "" msgid "Import to &MQ" msgstr "" msgid "MQ &Options" msgstr "" msgid "&Rebase..." msgstr "" msgid "&Prune..." msgstr "" msgid "&Strip..." msgstr "" msgid "Post to Re&view Board..." msgstr "" msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "" msgid "Write diff file" msgstr "" msgid "Unable to write diff file" msgstr "" msgid "Unable to compress history" msgstr "" msgid "Selected changeset pair not related" msgstr "" msgid "Visual Diff..." msgstr "" msgid "Export Diff..." msgstr "" msgid "Export Selected..." msgstr "" msgid "Email Selected..." msgstr "" msgid "Copy Selected as Patch" msgstr "" msgid "Archive DAG Range..." msgstr "" msgid "Export DAG Range..." msgstr "" msgid "Email DAG Range..." msgstr "" msgid "Bundle DAG Range..." msgstr "" msgid "Bisect - Good, Bad..." msgstr "" msgid "Bisect - Bad, Good..." msgstr "" msgid "Compress History..." msgstr "" msgid "Rebase..." msgstr "" msgid "Goto common ancestor" msgstr "" msgid "Graft Selected to local..." msgstr "" msgid "&Prune Selected..." msgstr "" msgid "Post Selected to Review Board..." msgstr "" msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "" msgid "Apply onto original parent" msgstr "" msgid "Apply only this patch" msgstr "" msgid "Fold patches..." msgstr "" msgid "Delete patches..." msgstr "" msgid "Rename patch..." msgstr "" msgid "Pull to here..." msgstr "" msgid "Visual diff..." msgstr "" msgid "Export patch" msgstr "" msgid "Patch Files (*.patch)" msgstr "" msgid "Cannot export revision" msgstr "" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" msgid "There is already an existing folder with that same name." msgstr "" msgid "Replace" msgstr "" msgid "Append" msgstr "" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" msgid "What do you want to do?\n" msgstr "" msgid "Replace the existing patch files.\n" msgstr "" msgid "Append the changes to the existing patch files.\n" msgstr "" msgid "Abort the export operation.\n" msgstr "" msgid "Patch files already exist" msgstr "" msgid "Patch exported" msgstr "" #, python-format msgid "" "Revision #%d (%s) was exported to:

                                                                      %s%s%s" msgstr "" msgid "Patches exported" msgstr "" #, python-format msgid "%d patches were exported to:

                                                                      %s" msgstr "" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

                                                                      Are you sure you want to use revert?

                                                                      (use " "update to checkout another revision)" msgstr "" msgid "Filter b&y" msgstr "" msgid "&Ancestors and Descendants" msgstr "" msgid "A&uthor" msgstr "" msgid "&Branch" msgstr "" msgid "&More Options..." msgstr "" msgid "Unable to merge" msgstr "" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "" msgid "Unable to backout" msgstr "" msgid "Write bundle" msgstr "" msgid "Backwards phase change requested" msgstr "" msgid "Do you really want to make this revision secret?" msgstr "" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" msgid "&Make secret" msgstr "" msgid "&Cancel" msgstr "" msgid "Do you really want to force a backwards phase transition?" msgstr "" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" msgid "&Force" msgstr "" msgid "Cannot import selected revision" msgstr "" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" msgid "Invalid command" msgstr "" msgid "The selected command is empty" msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" msgid "Failed to execute custom TortoiseHg command" msgstr "" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "" msgid "Failed to execute custom command" msgstr "" #, python-format msgid "The command \"%s\" could not be executed." msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" msgid "&Edit Toolbar" msgstr "" msgid "&Refresh" msgstr "" msgid "&Filter Toolbar" msgstr "" #, python-format msgid "TortoiseHg: %s" msgstr "" msgid "S&tatus Bar" msgstr "" #, python-format msgid "Resolve Conflicts - %s" msgstr "" msgid "Local revision information" msgstr "" msgid "Other revision information" msgstr "" msgid "Unresolved conflicts" msgstr "" msgid "Mercurial Re&solve" msgstr "" msgid "Attempt automatic (trivial) merge" msgstr "" msgid "Tool &Resolve" msgstr "" msgid "Merge using selected merge tool" msgstr "" msgid "&Take Local" msgstr "" msgid "Accept the local file version (yours)" msgstr "" msgid "Take &Other" msgstr "" msgid "Accept the other file version (theirs)" msgstr "" msgid "&Mark as Resolved" msgstr "" msgid "Mark this file as resolved" msgstr "" msgid "Diff &Local to Ancestor" msgstr "" msgid "&Diff Other to Ancestor" msgstr "" msgid "Resolved conflicts" msgstr "" msgid "&Edit File" msgstr "" msgid "Edit resolved file" msgstr "" msgid "3-&Way Diff" msgstr "" msgid "Visual three-way diff" msgstr "" msgid "Visual diff between resolved file and first parent" msgstr "" msgid "&Diff to Other" msgstr "" msgid "Visual diff between resolved file and second parent" msgstr "" msgid "Mark as &Unresolved" msgstr "" msgid "Mark this file as unresolved" msgstr "" msgid "Detected merge/diff tools:" msgstr "" msgid "Command output" msgstr "" msgid "Unable to show subrepository files" msgstr "" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" msgid "There are merge conflicts to be resolved" msgstr "" msgid "All conflicts are resolved." msgstr "" msgid "There are no conflicting file merges." msgstr "" msgid "Exit without finishing resolve?" msgstr "" msgid "Unresolved conflicts remain. Are you sure?" msgstr "" msgid "E&xit" msgstr "" msgid "Ext" msgstr "" msgid "Repository" msgstr "" msgid "" msgstr "" msgid "File List Toolbar" msgstr "" msgid "Ma&nifest Mode" msgstr "" msgid "Show all version-controlled files in tree view" msgstr "" msgid "&Flat List" msgstr "" msgid "### filter text ###" msgstr "" msgid "Changed by &This Commit" msgstr "" msgid "Show files changed by this commit" msgstr "" msgid "Compare to &1st Parent" msgstr "" msgid "Compare to &2nd Parent" msgstr "" msgid "Toggle parent to be used as the base revision" msgstr "" msgid "List Optio&ns" msgstr "" #, python-format msgid "%s - Revision Details (%s)" msgstr "" #, python-format msgid "Revert - %s" msgstr "" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "" msgid "Revert all files to this revision" msgstr "" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "" msgid "null revision (i.e. remove file(s))" msgstr "" msgid "Changeset:" msgstr "" msgid "Child:" msgstr "" msgid "Predecessors:" msgstr "" msgid "Successors:" msgstr "" msgid "Head is closed!" msgstr "" msgid "Changesets where username contains string." msgstr "" msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" msgid "Like \"keyword(string)\" but accepts a regex." msgstr "" msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" msgid "The named bookmark or all bookmarks." msgstr "" msgid "The named tag or all tags." msgstr "" msgid "Changeset is tagged." msgstr "" msgid "Changeset is a named branch head." msgstr "" msgid "Changeset is a merge changeset." msgstr "" msgid "Changeset is closed." msgstr "" msgid "" "Changesets within the interval, see help dates" msgstr "" msgid "Greatest common ancestor of the two changesets." msgstr "" msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" msgid "Changesets which modify files matched by pattern." msgstr "" msgid "Changesets which add files matched by pattern." msgstr "" msgid "Changesets which remove files matched by pattern." msgstr "" msgid "Changesets containing files matched by pattern." msgstr "" msgid "All changesets belonging to the branches of changesets in set." msgstr "" msgid "Members of a set with no children in set." msgstr "" msgid "Changesets which are descendants of changesets in set." msgstr "" msgid "Changesets that are ancestors of a changeset in set." msgstr "" msgid "Child changesets of changesets in set." msgstr "" msgid "The set of all parents for all changesets in set." msgstr "" msgid "First parent for all changesets in set, or the working directory." msgstr "" msgid "Second parent for all changesets in set, or the working directory." msgstr "" msgid "Changesets with no parent changeset in set." msgstr "" msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" msgid "Changeset with lowest revision number in set." msgstr "" msgid "Changeset with highest revision number in set." msgstr "" msgid "First n members of a set." msgstr "" msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "" msgid "All changesets, the same as 0:tip." msgstr "" msgid "Revision Set Query" msgstr "" msgid "all revisions converted from subversion" msgstr "" msgid "changeset which represents converted svn revision" msgstr "" msgid "Common sets" msgstr "" msgid "File pattern sets" msgstr "" msgid "Set Ancestry" msgstr "" msgid "Set Logic" msgstr "" msgid "" "help " "revsets" msgstr "" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" #, python-format msgid "thg: unknown command '%s'\n" msgstr "" #, python-format msgid "thg %s: %s\n" msgstr "" #, python-format msgid "thg: %s\n" msgstr "" #, python-format msgid "abort: %s!\n" msgstr "" #, python-format msgid "abort: %s\n" msgstr "" #, python-format msgid "(%s)\n" msgstr "" msgid "option --config may not be abbreviated!" msgstr "" msgid "invalid arguments" msgstr "" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" msgid "repository root directory or symbolic path name" msgstr "" msgid "enable additional output" msgstr "" msgid "suppress output" msgstr "" msgid "display help and exit" msgstr "" msgid "set/override config option (use 'section.name=value')" msgstr "" msgid "enable debugging output" msgstr "" msgid "start debugger" msgstr "" msgid "print command execution profile" msgstr "" msgid "do not fork GUI process" msgstr "" msgid "always fork GUI process" msgstr "" msgid "read file list from file" msgstr "" msgid "read file list from file encoding utf-8" msgstr "" msgid "thg about" msgstr "" msgid "thg add [FILE]..." msgstr "" msgid "revision to annotate" msgstr "" msgid "open to line" msgstr "" msgid "initial search pattern" msgstr "" msgid "thg annotate" msgstr "" #, python-format msgid "invalid line number: %s" msgstr "" msgid "revision to archive" msgstr "" msgid "thg archive" msgstr "" msgid "merge with old dirstate parent after backout" msgstr "" msgid "parent to choose when backing out merge" msgstr "" msgid "revision to backout" msgstr "" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "" msgid "thg bisect" msgstr "" msgid "revision" msgstr "" msgid "thg bookmarks [-r REV] [NAME]" msgstr "" msgid "only one new bookmark name allowed" msgstr "" msgid "the clone will include an empty working copy (only a repository)" msgstr "" msgid "revision, tag or branch to check out" msgstr "" msgid "include the specified changeset" msgstr "" msgid "clone only the specified branch" msgstr "" msgid "use pull protocol to copy metadata" msgstr "" msgid "use uncompressed transfer (fast over LAN)" msgstr "" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "" msgid "record user as committer" msgstr "" msgid "record datecode as commit date" msgstr "" msgid "thg commit [OPTIONS] [FILE]..." msgstr "" msgid "thg debugblockmatcher" msgstr "" msgid "thg debugbugreport [TEXT]" msgstr "" msgid "thg debugconsole" msgstr "" msgid "thg debuglighthg" msgstr "" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "" msgid "no command specified" msgstr "" msgid "thg drag_copy SOURCE... DEST" msgstr "" msgid "thg drag_move SOURCE... DEST" msgstr "" msgid "a revision to send" msgstr "" msgid "thg email [REVS]" msgstr "" msgid "use only one form to specify the revision" msgstr "" msgid "select the specified revision" msgstr "" msgid "side-by-side comparison of revisions" msgstr "" msgid "thg filelog [OPTION]... FILE" msgstr "" msgid "requires a single filename" msgstr "" msgid "thg forget [FILE]..." msgstr "" msgid "revisions to graft" msgstr "" msgid "thg graft [-r] REV..." msgstr "" msgid "You must provide revisions to graft" msgstr "" msgid "ignore case during search" msgstr "" msgid "thg grep" msgstr "" msgid "thg guess" msgstr "" msgid "thg help [COMMAND]" msgstr "" msgid "global options:" msgstr "" msgid "use \"thg help\" for the full list of commands" msgstr "" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "" msgid "" "list of commands:\n" "\n" msgstr "" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" msgid "(no help text available)" msgstr "" msgid "options:\n" msgstr "" msgid "no commands defined\n" msgstr "" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "" msgid "" "basic commands:\n" "\n" msgstr "" #, python-format msgid " (default: %s)" msgstr "" msgid "thg hgignore [FILE]" msgstr "" msgid "import to the patch queue (MQ)" msgstr "" msgid "thg import [OPTION] [SOURCE]..." msgstr "" msgid "thg init [DEST]" msgstr "" msgid "thg lock" msgstr "" msgid "search for a given text or revset" msgstr "" msgid "(DEPRECATED)" msgstr "" msgid "open a new workbench window" msgstr "" msgid "thg log [OPTIONS] [FILE]" msgstr "" msgid "cannot specify both -k/--query and filenames" msgstr "" msgid "revision to display" msgstr "" msgid "thg manifest [-r REV] [FILE]" msgstr "" msgid "revision to merge" msgstr "" msgid "thg merge [[-r] REV]" msgstr "" msgid "Merge revision not specified or not found" msgstr "" msgid "a revision to post" msgstr "" msgid "thg postreview [-r] REV..." msgstr "" msgid "reviewboard extension not enabled" msgstr "" #, python-format msgid "see %(url)s" msgstr "" msgid "no revisions specified" msgstr "" msgid "revisions to prune" msgstr "" msgid "thg prune [-r] REV..." msgstr "" msgid "thg purge" msgstr "" msgid "keep original changesets" msgstr "" msgid "keep original branch names" msgstr "" msgid "rebase from the specified changeset" msgstr "" msgid "rebase onto the specified changeset" msgstr "" msgid "thg rebase -s REV -d REV [--keep]" msgstr "" msgid "Rebase already in progress" msgstr "" msgid "Resuming rebase already in progress" msgstr "" msgid "You must provide source and dest arguments" msgstr "" msgid "thg rejects [FILE]" msgstr "" msgid "You must provide the path to a file" msgstr "" msgid "thg remove [FILE]..." msgstr "" msgid "thg rename [SOURCE] [DEST]" msgstr "" msgid "field to give initial focus" msgstr "" msgid "thg repoconfig" msgstr "" msgid "thg resolve" msgstr "" msgid "the revision to show" msgstr "" msgid "thg revdetails [-r REV]" msgstr "" msgid "thg revert [FILE]..." msgstr "" msgid "revision to update" msgstr "" msgid "thg rupdate [[-r] REV]" msgstr "" msgid "name of the hgweb config file (serve more than one repository)" msgstr "" msgid "name of the hgweb config file (DEPRECATED)" msgstr "" msgid "thg serve [--web-conf FILE]" msgstr "" msgid "thg shellconfig" msgstr "" msgid "thg shelve" msgstr "" msgid "sign even if the sigfile is modified" msgstr "" msgid "make the signature local" msgstr "" msgid "the key id to sign with" msgstr "" msgid "do not commit the sigfile after signing" msgstr "" msgid "use as commit message" msgstr "" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "" msgid "Please enable the Gpg extension first." msgstr "" msgid "show files without changes" msgstr "" msgid "show ignored files" msgstr "" msgid "thg status [OPTIONS] [FILE]" msgstr "" msgid "discard uncommitted changes (no backup)" msgstr "" msgid "do not back up stripped revisions" msgstr "" msgid "do not modify working copy during strip" msgstr "" msgid "revision to strip" msgstr "" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "" msgid "open the bookmark sync window" msgstr "" msgid "thg sync [OPTION]... [PEER]" msgstr "" msgid "replace existing tag" msgstr "" msgid "make the tag local" msgstr "" msgid "revision to tag" msgstr "" msgid "remove a tag" msgstr "" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "" msgid "wait until the second ticks over" msgstr "" msgid "notify the shell for paths given" msgstr "" msgid "remove the status cache" msgstr "" msgid "show the contents of the status cache (no update)" msgstr "" msgid "update all repos in current dir" msgstr "" msgid "thg thgstatus [OPTION]" msgstr "" msgid "thg topics [-r REV] [NAME]" msgstr "" msgid "Please enable the Topic extension first." msgstr "" msgid "only one new topic name allowed" msgstr "" msgid "thg update [-C] [[-r] REV]" msgstr "" msgid "thg userconfig" msgstr "" msgid "changeset to view in diff tool" msgstr "" msgid "revisions to view in diff tool" msgstr "" msgid "bundle file to preview" msgstr "" msgid "launch visual diff tool" msgstr "" msgid "print license" msgstr "" msgid "thg version [OPTION]" msgstr "" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "" msgid "Location:" msgstr "" msgid "Update to:" msgstr "" msgid "Options:" msgstr "" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "" msgid "Perform a push before updating (-p/--push)" msgstr "" msgid "Allow pushing new branches (--new-branch)" msgstr "" msgid "Force push to remote location (-f/--force)" msgstr "" msgid "remove working directory" msgstr "" msgid "unknown revision!" msgstr "" #, python-format msgid "Remote Update - %s" msgstr "" msgid "&Update" msgstr "" msgid "Log" msgstr "" msgid "Repositories" msgstr "" #, python-format msgid "Running at %s" msgstr "" msgid "Stopped" msgstr "" msgid "TortoiseHg Web Server" msgstr "" msgid "Web Server" msgstr "" msgid "Port:" msgstr "" msgid "Status:" msgstr "" msgid "Start" msgstr "" msgid "Settings" msgstr "" msgid "" msgstr "" msgid "&True" msgstr "" msgid "&False" msgstr "" msgid "&Unspecified" msgstr "" #, python-format msgid "%dpt" msgstr "" msgid "Bold" msgstr "" msgid "Italic" msgstr "" msgid "Strike" msgstr "" msgid "Underline" msgstr "" msgid "&Set..." msgstr "" msgid "&Clear" msgstr "" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "" msgid "&Browse..." msgstr "" msgid "UI Language" msgstr "" msgid "Specify your preferred user interface language (restart needed)" msgstr "" msgid "Three-way Merge Tool" msgstr "" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" msgid "Visual Diff Tool" msgstr "" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" msgid "Visual Editor" msgstr "" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" msgid "CLI Editor" msgstr "" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" msgid "Shell" msgstr "" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
                                                                      Default, Windows: cmd.exe /" "K title %(reponame)s
                                                                      Default, OS X: not set
                                                                      Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" msgid "Immediate Operations" msgstr "" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" msgid "Tab Width" msgstr "" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" msgid "Force Repo Tab" msgstr "" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "" msgid "Monitor Repo Changes" msgstr "" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" msgid "Max Diff Size" msgstr "" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" msgid "Fork GUI" msgstr "" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" msgid "Full Path Title" msgstr "" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" msgid "Auto-resolve merges" msgstr "" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" msgid "New Repo Skeleton" msgstr "" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "" msgid "Single Workbench Window" msgstr "" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" msgid "Default widget" msgstr "" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" msgid "" "Open new tabs next\n" "to the current tab" msgstr "" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" msgid "Author Coloring" msgstr "" msgid "Color changesets by author name. Default: False" msgstr "" msgid "Full Authorname" msgstr "" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" msgid "Task Tabs" msgstr "" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" msgid "Task Toolbar Order" msgstr "" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
                                                                      Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
                                                                      Valid names are: log commit sync grep and " "pbranch.
                                                                      Default: log commit grep pbranch | sync" msgstr "" msgid "Long Summary" msgstr "" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" msgid "Log Batch Size" msgstr "" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "" msgid "Dead Branches" msgstr "" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" msgid "Branch Colors" msgstr "" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" msgid "Hide Tags" msgstr "" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" msgid "Activate Bookmarks" msgstr "" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

                                                                      • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
                                                                      • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
                                                                      • never: Never show any prompt to " "activate any bookmarks.

                                                                      Default: prompt" msgstr "" msgid "Show Family Line" msgstr "" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

                                                                      Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" msgid "Use optimized graph layouter" msgstr "" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

                                                                      Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" msgctxt "config item" msgid "Commit" msgstr "" msgid "Username" msgstr "" msgid "" "Name associated with commits. The common format is:
                                                                      Full Name <" "email@example.com>" msgstr "" msgid "Ask Username" msgstr "" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" msgid "Summary Line Length" msgstr "" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" msgid "Close After Commit" msgstr "" msgid "Close the commit tool after every successful commit. Default: False" msgstr "" msgid "Push After Commit" msgstr "" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" msgid "Auto Commit List" msgstr "" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" msgid "Auto Exclude List" msgstr "" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" msgid "English Messages" msgstr "" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" msgid "New Commit Phase" msgstr "" msgid "The phase of new commits. Default: draft" msgstr "" msgid "Secret MQ Patches" msgstr "" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "" msgid "Check Subrepo Phase" msgstr "" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" msgid "Monitor working
                                                                      directory changes" msgstr "" msgid "" "Select when the working directory status list will be refreshed:
                                                                      - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
                                                                      TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
                                                                      - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
                                                                      - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
                                                                      Default: auto" msgstr "" msgid "Confirm adding unknown files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Confirm deleting files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Sync" msgstr "" msgid "After Pull Operation" msgstr "" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" msgid "Default Push" msgstr "" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

                                                                      • all: The default. Push all changes in all " "branches.
                                                                      • branch: Push all changes in the current branch.
                                                                      • revision: Push the changes in the current branch up to the current revision.

                                                                      Default: all" msgstr "" msgid "Confirm Push" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" msgid "Target Combo" msgstr "" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

                                                                      • auto: The default. Show the combo if more than one target " "configured.
                                                                      • always: Always show the combo.

                                                                      Default: auto" msgstr "" msgid "SSH Command" msgstr "" msgid "" "Command to use for SSH connections.

                                                                      Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" msgid "Subrepository Features:" msgstr "" msgid "Allow Hg Subrepos" msgstr "" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" msgid "Allow Git Subrepos" msgstr "" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

                                                                      See the security note before enabling Git " "subrepos." msgstr "" msgid "Allow SVN Subrepos" msgstr "" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

                                                                      See the security note before enabling " "Subversion subrepos." msgstr "" msgid "Server" msgstr "" msgid "Repository Details:" msgstr "" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" msgid "Encoding" msgstr "" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" msgid "'Publishing' repository" msgstr "" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" msgid "Web Server:" msgstr "" msgid "Textual description of the repository's purpose or contents." msgstr "" msgid "Contact" msgstr "" msgid "Name or email address of the person in charge of the repository." msgstr "" msgid "Style" msgstr "" msgid "Which template map style to use" msgstr "" msgid "Archive Formats" msgstr "" msgid "Comma separated list of archive formats allowed for downloading" msgstr "" msgid "Port" msgstr "" msgid "Port to listen on" msgstr "" msgid "Push Requires SSL" msgstr "" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" msgid "Stripes" msgstr "" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" msgid "Max Files" msgstr "" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "" msgid "Max Changes" msgstr "" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "" msgid "Allow Push" msgstr "" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" msgid "Deny Push" msgstr "" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" msgid "Proxy" msgstr "" msgid "Host" msgstr "" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "" msgid "Bypass List" msgstr "" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "" msgid "Optional. User name to authenticate with at the proxy server" msgstr "" msgid "Password" msgstr "" msgid "Optional. Password to authenticate with at the proxy server" msgstr "" msgid "From" msgstr "" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "" msgid "To" msgstr "" msgid "Comma-separated list of recipient email addresses" msgstr "" msgid "Cc" msgstr "" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "" msgid "Bcc" msgstr "" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "" msgid "method" msgstr "" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" msgid "SMTP Host" msgstr "" msgid "Host name of mail server" msgstr "" msgid "SMTP Port" msgstr "" msgid "Port to connect to on mail server. Default: 25" msgstr "" msgid "SMTP TLS" msgstr "" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "" msgid "SMTP Username" msgstr "" msgid "Username to authenticate to mail server with" msgstr "" msgid "SMTP Password" msgstr "" msgid "Password to authenticate to mail server with" msgstr "" msgid "Local Hostname" msgstr "" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "" msgid "Diff and Annotate" msgstr "" msgid "Patch EOL" msgstr "" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" msgid "Git Format" msgstr "" msgid "Use git extended diff header format. Default: False" msgstr "" msgid "MQ Git Format" msgstr "" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" msgid "No Dates" msgstr "" msgid "Do not include modification dates in diff headers. Default: False" msgstr "" msgid "Show Function" msgstr "" msgid "Show which function each change is in. Default: False" msgstr "" msgid "Ignore White Space" msgstr "" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "" msgid "Ignore WS Amount" msgstr "" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "" msgid "Ignore Blank Lines" msgstr "" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "" msgid "Annotate:" msgstr "" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "" msgid "Fonts" msgstr "" msgid "Message Font" msgstr "" msgid "Font used to display commit messages. Default: monospace 10" msgstr "" msgid "Diff Font" msgstr "" msgid "Font used to display text differences. Default: monospace 10" msgstr "" msgid "ChangeLog Font" msgstr "" msgid "Font used to display changelog data. Default: monospace 10" msgstr "" msgid "Output Font" msgstr "" msgid "Font used to display output messages. Default: sans 8" msgstr "" msgid "Extensions" msgstr "" msgid "Tools" msgstr "" msgid "Hooks" msgstr "" msgid "Issue Tracking" msgstr "" msgid "Issue Regex" msgstr "" msgid "Defines the regex to match when picking up issue numbers." msgstr "" msgid "Issue Link" msgstr "" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" msgid "Inline Tags" msgstr "" msgid "Show tags at start of commit message." msgstr "" msgid "Mandatory Issue Reference" msgstr "" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" msgid "Issue Tracker Plugin" msgstr "" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" msgid "Configure Issue Tracker" msgstr "" msgid "Configure the selected COM Bug Tracker plugin." msgstr "" msgid "Issue Tracker Trigger" msgstr "" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

                                                                      • never: Do not update the Issue Tracker " "state automatically.
                                                                      • commit: Update the Issue Tracker state after " "a successful commit.

                                                                      Default: never" msgstr "" msgid "Changeset Link" msgstr "" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
                                                                      The template string " "uses a normal mercurial template syntax, such as:

                                                                      • {node|short} : replaced by " "the 12 digit revision id.
                                                                      • {rev} : replaced by the revision number." "
                                                                      • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
                                                                      For example, in order to " "link to bitbucket commit pages you can set this to:
                                                                      https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
                                                                      You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
                                                                      https://github.com/torvalds/" "linux/commit/{gitnode}
                                                                      https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
                                                                      " msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "" msgid "User name to authenticate with review board" msgstr "" msgid "Password to authenticate with review board" msgstr "" msgid "Server Repository ID" msgstr "" msgid "The default repository id for this repo on the review board server" msgstr "" msgid "Target Groups" msgstr "" msgid "A comma separated list of target groups" msgstr "" msgid "Target People" msgstr "" msgid "A comma separated list of target people" msgstr "" msgid "Kiln Bfiles" msgstr "" msgid "Patterns" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" msgid "Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" msgid "System Cache" msgstr "" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "" msgid "Simplelock" msgstr "" msgid "Lock Clone" msgstr "" msgid "" "Location of local clone of organizational lock repository.

                                                                      This repository " "must contain a \"locked\" text file" msgstr "" msgid "Largefiles" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" msgid "Minimum Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" msgid "User Cache" msgstr "" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" msgid "Projrc" msgstr "" msgid "Require confirmation" msgstr "" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

                                                                      • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
                                                                      • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
                                                                      • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
                                                                      " msgstr "" msgid "Servers" msgstr "" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" msgid "Include" msgstr "" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" msgid "Exclude" msgstr "" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" msgid "Update on incoming" msgstr "" msgid "" "Let the user update the projrc on incoming:
                                                                      • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
                                                                      • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
                                                                      • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                                                                        Default: never" msgstr "" msgid "GnuPG" msgstr "" msgid "Specify the path to GPG. Default: gpg" msgstr "" msgid "Key ID" msgstr "" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "" msgid "TortoiseHg Settings" msgstr "" msgid "Iniparse package not found" msgstr "" msgid "Can't change settings without iniparse package - view is readonly." msgstr "" #, python-format msgid "%s's global settings" msgstr "" msgid "No repository found" msgstr "" msgid "no repo at " msgstr "" #, python-format msgid "%s project settings (.hg/projrc)" msgstr "" #, python-format msgid "%s repository settings" msgstr "" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "" msgid "Apply changes before exit?" msgstr "" msgid "&No (discard changes)" msgstr "" msgid "Reload" msgstr "" msgid "Settings File:" msgstr "" msgid "Confirm Save" msgstr "" msgid "Save changes before editing?" msgstr "" msgid "&Save" msgstr "" msgid "Confirm Reload" msgstr "" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" msgid "Unable to create a Mercurial.ini file" msgstr "" msgid "Insufficient access rights, reverting to read-only mode." msgstr "" msgid "Context Menu" msgstr "" msgid "Top menu items:" msgstr "" msgid "Sub menu items:" msgstr "" msgid "Menu Behavior" msgstr "" msgid "Hide context menu outside repositories" msgstr "" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" msgid "Icons" msgstr "" msgid "Overlays" msgstr "" msgid "Enabled overlays" msgstr "" msgid "Local disks only" msgstr "" msgid "Enabled Overlay Handlers" msgstr "" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "" msgid "Added" msgstr "" msgid "Locked*" msgstr "" msgid "Ignored*" msgstr "" msgid "Unversioned" msgstr "" msgid "Readonly*" msgstr "" msgid "Deleted*" msgstr "" msgid "*: not used by TortoiseHg" msgstr "" msgid "Taskbar" msgstr "" msgid "Show Icon" msgstr "" msgid "Highlight Icon" msgstr "" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" msgid "Explorer Extension Settings - TortoiseHg" msgstr "" msgid "Clear" msgstr "" msgid "Clear the current shelf file" msgstr "" msgid "Delete the current shelf file" msgstr "" msgid "Left Toolbar" msgstr "" msgid "Delete selected chunks" msgstr "" msgid "Move all files right" msgstr "" msgid "Move selected file right" msgstr "" msgid "Edit file" msgstr "" msgid "Move selected chunks right" msgstr "" msgid "Refresh Toolbar" msgstr "" msgid "Refresh" msgstr "" msgid "New Shelf" msgstr "" msgid "Right Toolbar" msgstr "" msgid "Move selected chunks left" msgstr "" msgid "Move selected file left" msgstr "" msgid "Move all files left" msgstr "" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "" msgid "Delete selected chunks from working copy?" msgstr "" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "" msgid "Are you sure?" msgstr "" msgid "TortoiseHg New Shelf Name" msgstr "" msgid "Specify name of new shelf" msgstr "" msgid "Bad filename" msgstr "" #, python-format msgid "A shelf name cannot contain %s" msgstr "" msgid "File already exists" msgstr "" msgid "A shelf file of that name already exists" msgstr "" msgid "New shelf created" msgstr "" #, python-format msgid "Delete shelf file %s?" msgstr "" msgid "Shelf deleted" msgstr "" msgid "Revert all working copy changes?" msgstr "" #, python-format msgid "Clear contents of shelf file %s?" msgstr "" msgid "Shelf cleared" msgstr "" #, python-format msgid "Shelf: %s" msgstr "" #, python-format msgid "Patch: %s" msgstr "" msgid "Key:" msgstr "" msgid "Local sign" msgstr "" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "" msgid "No commit" msgstr "" msgid "Use custom commit message:" msgstr "" msgid "&Sign" msgstr "" #, python-format msgid "Sign - %s" msgstr "" msgid "Signature has been added" msgstr "" msgid "Repository command still running" msgstr "" msgid "Filter:" msgstr "" msgid "Check all files" msgstr "" msgid "Uncheck all files" msgstr "" msgid "Status File List Toolbar" msgstr "" msgid "Remove filter, show root" msgstr "" #, python-format msgid "%s - status (selection filtered)" msgstr "" #, python-format msgid "%s - status" msgstr "" msgid "Check" msgstr "" msgid "Uncheck" msgstr "" msgid "status" msgstr "" msgid "Failed to refresh" msgstr "" msgid "No appropriate files" msgstr "" msgid "No files found for this operation" msgstr "" msgid "Stat" msgstr "" msgid "M" msgstr "" msgid "Filename" msgstr "" msgid "Size (KB)" msgstr "" #, python-format msgid "Checked count: %d" msgstr "" msgid ", resolved merge" msgstr "" msgid ", unresolved merge" msgstr "" #, python-format msgid "%s is modified" msgstr "" msgid "modified" msgstr "" #, python-format msgid "%s is added" msgstr "" msgid "added" msgstr "" #, python-format msgid "%s is removed" msgstr "" msgid "removed" msgstr "" #, python-format msgid "%s is not tracked (unknown)" msgstr "" msgid "unknown" msgstr "" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "" msgid "missing" msgstr "" #, python-format msgid "%s is ignored" msgstr "" msgid "ignored" msgstr "" #, python-format msgid "%s is not modified (clean)" msgstr "" msgid "clean" msgstr "" #, python-format msgid "%s is a dirty subrepo" msgstr "" msgid "subrepo" msgstr "" msgid "Check for incoming changes from selected URL" msgstr "" msgid "Pull incoming changes from selected URL" msgstr "" msgid "Detect outgoing changes to selected URL" msgstr "" msgid "Push outgoing changes to selected URL" msgstr "" msgid "Sync Bookmarks" msgstr "" msgid "Email outgoing changesets for remote repository" msgstr "" msgid "Manage pending perforce changelists" msgstr "" msgid "Unbundle" msgstr "" msgid "Selected Options:" msgstr "" msgid "Path Edit Toolbar" msgstr "" msgid "Security" msgstr "" msgid "Manage HTTPS connection security and user authentication" msgstr "" msgid "Save" msgstr "" msgid "Save current URL under an alias" msgstr "" msgid "Paths in Repository Settings:" msgstr "" msgid "Related Paths:" msgstr "" msgid "branch: " msgstr "" msgid "bookmark: " msgstr "" #, python-format msgid "rev: %d (%s)" msgstr "" msgid "Post Pull: " msgstr "" msgid "&Edit..." msgstr "" msgid "&Remove..." msgstr "" msgid "Repository not local" msgstr "" msgid "A terminal shell cannot be opened for remote" msgstr "" msgid "Confirm path delete" msgstr "" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "" msgid "Select repository" msgstr "" msgid "No host specified" msgstr "" msgid "Please set a valid URL to continue." msgstr "" msgid "No remote repository URL or path set" msgstr "" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

                                                                        Please type and save a remote repository path on the " "Sync widget." msgstr "" msgid "Redundant authentication info" msgstr "" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" msgid "sync command already running" msgstr "" #, python-format msgid "Getting incoming changesets from %s..." msgstr "" #, python-format msgid "Found incoming changesets from %s" msgstr "" #, python-format msgid "No incoming changesets from %s" msgstr "" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "" #, python-format msgid "Pulling from %s..." msgstr "" #, python-format msgid "Pull from %s completed" msgstr "" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "" msgid "Merge caused file conflicts" msgstr "" msgid "File conflicts need to be resolved" msgstr "" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "" #, python-format msgid "%d outgoing changesets to %s" msgstr "" #, python-format msgid "No outgoing changesets to %s" msgstr "" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "" msgid "Perforce pending..." msgstr "" #, python-format msgid "%s (submitted)" msgstr "" #, python-format msgid "%s (pending)" msgstr "" msgid "Unable to parse p4pending output" msgstr "" #, python-format msgid "%d pending changelists found" msgstr "" msgid "No pending Perforce changelists" msgstr "" msgid "Aborted p4pending" msgstr "" msgid "Unable to determine pending changesets" msgstr "" msgid "Confirm Push to remote Repository" msgstr "" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" #, python-format msgid "Push to %s aborted" msgstr "" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" #, python-format msgid "Pushing to %s..." msgstr "" #, python-format msgid "Push to %s completed" msgstr "" #, python-format msgid "Push to %s aborted, ret %d" msgstr "" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" msgid "Determining outgoing changesets to email..." msgstr "" msgid "No outgoing changesets" msgstr "" #, python-format msgid "Outgoing aborted, ret %d" msgstr "" msgid "Select bundle file" msgstr "" msgid "Bundle files (*.hg)" msgstr "" msgid "Unable to remove URL" msgstr "" msgid "Post Pull Behavior" msgstr "" msgid "Select post-pull operation for this repository" msgstr "" msgid "None - simply pull changesets" msgstr "" msgid "Update - pull, then try to update" msgstr "" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "" msgid "Rebase - rebase local commits above pulled changes" msgstr "" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "" msgid "Launch settings tool..." msgstr "" msgid "Unable to save post pull operation" msgstr "" msgid "Save Path" msgstr "" msgid "Alias" msgstr "" msgid "URL" msgstr "" msgid "Remove authentication data from URL" msgstr "" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" msgid "Update subrepo paths" msgstr "" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" msgid "Unable to save an URL" msgstr "" msgid "Confirm URL replace" msgstr "" #, python-format msgid "%s already exists, replace URL?" msgstr "" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

                                                                        %s

                                                                        Replace it with the " "following URL?:

                                                                        %s" msgstr "" msgid "Security: " msgstr "" #, python-format msgid "Host: %s" msgstr "" msgid "Secure HTTPS Connection" msgstr "" msgid "Verify with Certificate Authority certificates (best)" msgstr "" msgid "Verify with stored host fingerprint (good)" msgstr "" msgid "No host validation, but still encrypted (bad)" msgstr "" msgid "### host certificate fingerprint ###" msgstr "" msgid "Query" msgstr "" msgid "TLS 1.0" msgstr "" msgid "TLS 1.1" msgstr "" msgid "TLS 1.2" msgstr "" msgid "Minimum Protocol" msgstr "" msgid "User Authentication" msgstr "" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Key" msgstr "" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Chain" msgstr "" msgid "Certificate Query Error" msgstr "" msgid "Select User Certificate Key File" msgstr "" msgid "PEM files (*.pem *.key)" msgstr "" msgid "Select User Certificate Chain File" msgstr "" msgid "PEM files (*.pem *.crt *.cer)" msgstr "" msgid "Unable to save authentication" msgstr "" #, python-format msgid "%s - sync options" msgstr "" msgid "Allow push of a new branch (--new-branch)" msgstr "" msgid "Force push or pull (override safety checks, --force)" msgstr "" msgid "Temporarily disable configured HTTP proxy" msgstr "" msgid "Emit debugging output (--debug)" msgstr "" msgid "Work on patch queue (--mq)" msgstr "" #, python-format msgid "Tag - %s" msgstr "" msgid "Tag:" msgstr "" msgid "Tagged:" msgstr "" msgid "Local tag" msgstr "" msgid "Replace existing tag (-f/--force)" msgstr "" msgid "Use English commit message" msgstr "" msgid "local" msgstr "" msgid "Move" msgstr "" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "" #, python-format msgid "Added tag %s for changeset %s" msgstr "" #, python-format msgid "Tag '%s' has been moved" msgstr "" #, python-format msgid "Tag '%s' has been added" msgstr "" #, python-format msgid "Removed tag %s" msgstr "" #, python-format msgid "Tag '%s' has been removed" msgstr "" msgid "Patch files (*.diff *.patch)" msgstr "" #, python-format msgid "Import - %s" msgstr "" msgid "Browse Directory..." msgstr "" msgid "Import from Clipboard" msgstr "" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "" msgid "Preview:" msgstr "" msgid "Shelf" msgstr "" msgid "Checking working directory status..." msgstr "" msgid "&Import" msgstr "" msgid "Working directory is not clean! View changes..." msgstr "" msgid "Select patches" msgstr "" msgid "Select Directory containing patches" msgstr "" #, python-format msgid "%s patches" msgstr "" #, python-format msgid "%s will be imported to " msgstr "" msgid "Nothing to import" msgstr "" msgid "Strip:" msgstr "" msgid "Discard local changes, no backup (-f/--force)" msgstr "" msgid "No backup (-n/--nobackup)" msgstr "" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "" msgstr[1] "" msgid "Unknown revision!" msgstr "" msgid "Detected uncommitted local changes." msgstr "" msgid "Do you want to keep them or discard them?" msgstr "" msgid "&Keep (--keep)" msgstr "" msgid "&Discard (--force)" msgstr "" msgid "Confirm Strip" msgstr "" #, python-format msgid "Strip - %s" msgstr "" msgid "&Strip" msgstr "" msgid "Topic:" msgstr "" msgid "&Rename" msgstr "" #, python-format msgid "Topic - %s" msgstr "" #, python-format msgid "A topic named \"%s\" already exists" msgstr "" #, python-format msgid "Topic '%s' has been added" msgstr "" #, python-format msgid "Topic '%s' does not exist" msgstr "" #, python-format msgid "Topic '%s' has been removed" msgstr "" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "" msgid "Parent 1:" msgstr "" msgid "Parent 2:" msgstr "" msgid "Pull subrepos from:" msgstr "" msgid "List updated files (--verbose)" msgstr "" msgid "Discard local changes, no backup (-C/--clean)" msgstr "" msgid "Always merge (when possible)" msgstr "" msgid "(same as parent)" msgstr "" msgid "Activate bookmark?" msgstr "" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

                                                                        Do " "you want to activate it?
                                                                        You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

                                                                        Select " "the bookmark that you want to activate and click OK.

                                                                        Click " "Cancel if you don't want to activate any of them.

                                                                        You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                                        " msgstr "" msgid "Deactivate current bookmark?" msgstr "" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" msgid "Discard - discard local changes, no backup" msgstr "" msgid "&Shelve" msgstr "" msgid "Shelve - move local changes to a patch" msgstr "" msgid "Merge - allow to merge with local changes" msgstr "" msgid "Confirm Update" msgstr "" #, python-format msgid "Update - %s" msgstr "" msgid "[non-existant]" msgstr "" msgid "Tool launch failure" msgstr "" #, python-format msgid "%s : %s" msgstr "" msgid "No diff tool found" msgstr "" msgid "No visual diff tools were detected" msgstr "" msgid "[working copy]" msgstr "" msgid "[original]" msgstr "" msgid "Unable to find changeset" msgstr "" msgid "You likely need to refresh this application" msgstr "" msgid "No file changes" msgstr "" msgid "There are no file changes to view" msgstr "" msgid "working changes" msgstr "" #, python-format msgid "changeset %d:%s" msgstr "" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "" msgid "Visual Diffs - " msgstr "" msgid " filtered" msgstr "" msgid "Temporary files are removed when this dialog is closed" msgstr "" msgid "Select Tool:" msgstr "" msgid "Dir diff to p1" msgstr "" msgid "Dir diff to p2" msgstr "" msgid "3-way dir diff" msgstr "" msgid "Directory diff" msgstr "" msgid "Confirm Discard" msgstr "" msgid "Discard outstanding changes to working directory?" msgstr "" msgid "Config files (*.conf *.config *.ini)" msgstr "" msgid "Open hgweb config" msgstr "" msgid "Save hgweb config" msgstr "" msgid "Path:" msgstr "" msgid "Local Path:" msgstr "" msgid "Select Repository" msgstr "" msgid "Add Path to Serve" msgstr "" msgid "Edit Path to Serve" msgstr "" msgid "Local Path" msgstr "" msgid "Webconf" msgstr "" msgid "Config File:" msgstr "" msgid "Open" msgstr "" msgid "New &Workbench" msgstr "" msgid "&New Repository..." msgstr "" msgid "Clon&e Repository..." msgstr "" msgid "&Open Repository..." msgstr "" msgid "&File" msgstr "" msgid "&View" msgstr "" msgid "&Repository" msgstr "" msgid "&Help" msgstr "" msgid "&Dock Toolbar" msgstr "" msgid "&Task Toolbar" msgstr "" msgid "&Custom Toolbar" msgstr "" msgid "S&ync Toolbar" msgstr "" msgid "&Close Repository" msgstr "" msgid "Sh&ow Repository Registry" msgstr "" msgid "Show &Patch Queue" msgstr "" msgid "Show Conso&le" msgstr "" msgid "Place Console in Doc&k Area" msgstr "" msgid "R&epository Registry Options" msgstr "" msgid "Save Open Repositories on E&xit" msgstr "" msgid "Sa&ve Current Sync Paths on Exit" msgstr "" msgid "Show Tas&k Tab" msgstr "" msgid "&Commit" msgstr "" msgid "&Patch Branch" msgstr "" msgid "Revision &Details" msgstr "" msgid "&Search" msgstr "" msgid "S&ynchronize" msgstr "" msgid "Refresh current repository" msgstr "" msgid "Refresh &Task Tab" msgstr "" msgid "Refresh only the current task tab" msgstr "" msgid "Load &All Revisions" msgstr "" msgid "Load all revisions into graph" msgstr "" msgid "Go to current revision" msgstr "" msgid "&Goto Revision..." msgstr "" msgid "Go to a specific revision" msgstr "" msgid "Filter graph with revision sets or branches" msgstr "" msgid "&Workbench Toolbars" msgstr "" msgid "&Lock File..." msgstr "" msgid "Lock or unlock files" msgstr "" msgid "Update working directory or switch revisions" msgstr "" msgid "&Shelve..." msgstr "" msgid "&Import Patches..." msgstr "" msgid "U&nbundle..." msgstr "" msgid "&Merge..." msgstr "" msgid "Merge with the other head of the current branch" msgstr "" msgid "&Resolve..." msgstr "" msgid "R&ollback/Undo..." msgstr "" msgid "&Purge..." msgstr "" msgid "&Bisect..." msgstr "" msgid "&Verify" msgstr "" msgid "Re&cover" msgstr "" msgid "&Web Server" msgstr "" msgid "E&xplorer Help" msgstr "" msgid "&Readme" msgstr "" msgid "About &Qt" msgstr "" msgid "&About TortoiseHg" msgstr "" msgid "&Incoming" msgstr "" msgid "&Pull" msgstr "" msgid "&Outgoing" msgstr "" msgid "P&ush" msgstr "" msgid "&Sync Bookmarks..." msgstr "" #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" msgid "Check for incoming changes" msgstr "" msgid "Pull incoming changes" msgstr "" msgid "Detect outgoing changes" msgstr "" msgid "Push outgoing changes" msgstr "" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" #, python-format msgid "Execute custom tool '%s'" msgstr "" msgid "Custom Toolbar &Settings" msgstr "" msgid "TortoiseHg Workbench" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "" msgid "Goto revision" msgstr "" msgid "Enter revision identifier" msgstr "" msgid "Select repository directory to open" msgstr "" msgid "README not configured" msgstr "" msgid "" "A README file is not configured for the current repository.

                                                                        To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" msgid "Issue Tracker Plugin Error" msgstr "" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "" msgid "This error will not be shown again until you restart the workbench" msgstr "" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "" msgid "Error executing \"commit finished\" trigger" msgstr "" msgid "Cannot open Plugin Options dialog" msgstr "" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "" msgid "[--insecure] [SOURCE]" msgstr "" #, python-format msgid "unsupported URL: %s" msgstr "" #, python-format msgid "%s certificate error: no certificate received" msgstr "" msgid "move after the specified patch" msgstr "" msgid "[--after PATCH] PATCH..." msgstr "" msgid "unknown patch to move specified" msgstr "" msgid "invalid patch position specified" msgstr "" msgid "cannot move applied patches" msgstr "" #, python-format msgid "patch %s not in series" msgstr "" msgid "cannot move into applied patches" msgstr "" msgid "abort: " msgstr "" msgid "hint: " msgstr "" #, python-format msgid "HTTP Error: %d (%s)" msgstr "" #, python-format msgid "URLError: %s" msgstr "" msgid "SSL: Server certificate verify failed" msgstr "" #, python-format msgid "SSL: unknown error %s:%s" msgstr "" #, python-format msgid "SSL error: %s" msgstr "" msgid "hgsubversion packaged with thg" msgstr "" msgid "hggit packaged with thg" msgstr "" msgid "inotify is not supported on this platform" msgstr "" msgid "eol is incompatible with win32text" msgstr "" msgid "win32text is incompatible with eol" msgstr "" msgid "hgsubversion is incompatible with perfarce" msgstr "" msgid "perfarce is incompatible with hgsubversion" msgstr "" msgid "Workbench custom toolbar" msgstr "" msgid "Revision details context menu" msgstr "" msgid "Pair selection context menu" msgstr "" msgid "Multiple selection context menu" msgstr "" msgid "Commit context menu" msgstr "" msgid "File context menu (on manifest and revision details)" msgstr "" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" msgid "in the future" msgstr "" msgid "now" msgstr "" #, python-format msgid "command parse error: %s" msgstr "" #, python-format msgid "no matches found: %s" msgstr "" msgid "Commit..." msgstr "" msgid "Commit changes in repository" msgstr "" msgid "Create Repository Here" msgstr "" msgid "Create a new repository" msgstr "" msgid "Clone..." msgstr "" msgid "Create clone here from source" msgstr "" msgid "File Status" msgstr "" msgid "Repository status & changes" msgstr "" msgid "Add Files..." msgstr "" msgid "Add files to version control" msgstr "" msgid "Revert Files..." msgstr "" msgid "Revert file changes" msgstr "" msgid "Forget Files..." msgstr "" msgid "Remove files from version control" msgstr "" msgid "Remove Files..." msgstr "" msgid "Rename File" msgstr "" msgid "Rename file or directory" msgstr "" msgid "View change history in repository" msgstr "" msgid "File History" msgstr "" msgid "View change history of selected files" msgstr "" msgid "Shelve Changes" msgstr "" msgid "Move changes between working dir and patch" msgstr "" msgid "Synchronize" msgstr "" msgid "Synchronize with remote repository" msgstr "" msgid "Start web server for this repository" msgstr "" msgid "Update..." msgstr "" msgid "Update working directory" msgstr "" msgid "Update Icons" msgstr "" msgid "Update icons for this repository" msgstr "" msgid "Global Settings" msgstr "" msgid "Configure user wide settings" msgstr "" msgid "Repository Settings" msgstr "" msgid "Configure repository settings" msgstr "" msgid "Explorer Extension Settings" msgstr "" msgid "Configure Explorer extension" msgstr "" msgid "About TortoiseHg" msgstr "" msgid "Show About Dialog" msgstr "" msgid "Diff to parent" msgstr "" msgid "View changes using GUI diff tool" msgstr "" msgid "Edit Ignore Filter" msgstr "" msgid "Edit repository ignore filter" msgstr "" msgid "Guess Renames" msgstr "" msgid "Detect renames and copies" msgstr "" msgid "Search History" msgstr "" msgid "Search file revisions for patterns" msgstr "" msgid "DnD Synchronize" msgstr "" msgid "Synchronize with dragged repository" msgstr "" #, python-format msgid "unrecognized response: %s" msgstr "" msgid "password: " msgstr "" #, python-format msgid "repository %s not found" msgstr "" msgid "win32ill: cannot create window for messages" msgstr "" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "" msgid "win32ill: interrupted while stopping message loop\n" msgstr "" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/oc.po0000644000000000000000000044712614440352353016245 0ustar00rootroot# Occitan (post 1500) translation for tortoisehg # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the tortoisehg package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2010-04-05 13:19+0000\n" "Last-Translator: Cédric VALMARY (Tot en òc) \n" "Language-Team: Occitan (post 1500) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Launchpad-Export-Date: 2019-07-17 05:44+0000\n" "X-Generator: Launchpad (build 19009)\n" msgid "TortoiseHg Overlay Icon Server" msgstr "" msgid "Exit" msgstr "Quitar" msgid "About" msgstr "A prepaus" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "" msgid "You can visit our site here" msgstr "" msgid "&License" msgstr "" #, python-format msgid "version %s" msgstr "" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "" msgid "License" msgstr "" msgid "= Working Directory Parent =" msgstr "" msgid "Directory of files" msgstr "" msgid "Tar archives" msgstr "" msgid "Uncompressed tar archive" msgstr "" msgid "Bzip2 tar archives" msgstr "" msgid "Tar archive compressed using bzip2" msgstr "" msgid "Gzip tar archives" msgstr "" msgid "Tar archive compressed using gzip" msgstr "" msgid "Zip archives" msgstr "" msgid "Uncompressed zip archive" msgstr "" msgid "Zip archive compressed using deflate" msgstr "" msgid "Revision:" msgstr "Revision :" msgid "All files in this revision" msgstr "" msgid "Only files modified/created in this revision" msgstr "" msgid "Only files modified/created since:" msgstr "" msgid "Archive Content:" msgstr "" msgid "Recurse into subrepositories" msgstr "" msgid "Browse..." msgstr "Percórrer..." msgid "Destination path:" msgstr "" msgid "Archive types:" msgstr "" msgid "Hg command:" msgstr "" msgid "Select Destination Folder" msgstr "" msgid "Select Destination File" msgstr "" msgid "All files (*)" msgstr "" msgid "Duplicate Name" msgstr "" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "" msgid "Confirm Overwrite" msgstr "" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "" #, python-format msgid "Archive - %s" msgstr "" msgid "&Archive" msgstr "" msgid "Backout requires a parent revision" msgstr "" msgid "Cannot backout change on a different branch" msgstr "" #, python-format msgid "Backout - %s" msgstr "" msgid "Prepare to backout" msgstr "" msgid "Verify backout revision and ensure your working directory is clean." msgstr "" msgid "Backing out a parent revision is a single step operation" msgstr "" msgid "Backout revision" msgstr "" msgid "Not a head, backout will create a new head!" msgstr "" msgid "Current local revision" msgstr "" msgid "Working directory status" msgstr "" msgid "Checking..." msgstr "" msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Automatically resolve merge conflicts where possible" msgstr "" msgid "Uncommitted local changes are detected" msgstr "" msgid "Clean" msgstr "Netejar" msgid "Backing out, then merging..." msgstr "" msgid "All conflicting files will be marked unresolved." msgstr "" msgid "Automatically advance to next page when backout and merge are complete." msgstr "" #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" msgid "No merge conflicts, ready to commit" msgstr "" msgid "Commit backout and merge results" msgstr "" msgid "Parents" msgstr "Parents" msgid "Working Directory" msgstr "" msgid "Working Directory (merged)" msgstr "" msgid "Commit message" msgstr "" msgid "Skip final confirmation page, close after commit." msgstr "" msgid "Backed out changeset: " msgstr "" msgid "Confirm Discard Message" msgstr "" msgid "Discard current backout message?" msgstr "" msgid "Use English backout message" msgstr "" msgid "Backing out and committing..." msgstr "" msgid "Please wait while making backout." msgstr "" msgid "Committing..." msgstr "" msgid "Please wait while committing merged files." msgstr "" msgid "Finished" msgstr "Acabat" msgid "Backout changeset" msgstr "" #, python-format msgid "Bisect - %s" msgstr "" msgid "Accept" msgstr "Acceptar" msgid "Known good revision:" msgstr "" msgid "Known bad revision:" msgstr "" msgid "Discard local changes (revert --all)" msgstr "" msgid "Revision is &Good" msgstr "" msgid "Revision is &Bad" msgstr "" msgid "&Skip this Revision" msgstr "" msgid "Close" msgstr "Tampar" msgid "Error encountered." msgstr "" msgid "Culprit found." msgstr "" msgid "Revision" msgstr "" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "" #, python-format msgid "%s (hint: %s)" msgstr "" msgid "Bookmark:" msgstr "" msgid "New Name:" msgstr "Nom novèl :" msgid "Activate:" msgstr "" msgid "&Add" msgstr "" msgid "Re&name" msgstr "" msgid "&Remove" msgstr "" msgid "&Move" msgstr "" #, python-format msgid "Bookmark - %s" msgstr "" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "" #, python-format msgid "Bookmark '%s' has been added" msgstr "" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "" #, python-format msgid "Bookmark '%s' has been moved" msgstr "" #, python-format msgid "Bookmark '%s' does not exist" msgstr "" #, python-format msgid "Bookmark '%s' has been removed" msgstr "" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "" msgid "TortoiseHg Bookmark Sync" msgstr "" msgid "Outgoing Bookmarks" msgstr "" msgid "&Push Bookmark" msgstr "" msgid "&Remove Bookmark" msgstr "" msgid "Incoming Bookmarks" msgstr "" msgid "P&ull Bookmark" msgstr "" msgid "R&emove Bookmark" msgstr "" #, python-format msgid "Pushed local bookmark: %s" msgstr "" #, python-format msgid "Pulled remote bookmark: %s" msgstr "" #, python-format msgid "Removed remote bookmark: %s" msgstr "" #, python-format msgid "Removed local bookmark: %s" msgstr "" #, python-format msgid "%s - branch operation" msgstr "" msgid "Select branch of merge commit" msgstr "" msgid "Changes take effect on next commit" msgstr "" msgid "No branch changes" msgstr "" msgid "Open a new named branch" msgstr "" msgid "Close current branch" msgstr "" #, python-format msgid "Please report this bug to our bug tracker" msgstr "" msgid "Checking for updates..." msgstr "" msgid "Copy" msgstr "" msgid "Quit" msgstr "" msgid "TortoiseHg Bug Report" msgstr "" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "" msgid "Your TortoiseHg is up to date." msgstr "" msgid "Save error report to" msgstr "" msgid "Text files (*.txt)" msgstr "" msgid "Error writing file" msgstr "" msgid "TortoiseHg Error" msgstr "" msgid "" "If you still have trouble, please file a bug report." msgstr "" msgid "Visual Diff" msgstr "" msgid "View file changes in external diff tool" msgstr "" msgid "Edit Local" msgstr "" msgid "Edit current file in working copy" msgstr "" msgid "Revert to Revision" msgstr "" msgid "Revert file(s) to contents at this revision" msgstr "" msgid "Patch failed to apply" msgstr "" msgid "Manually resolve rejected chunks?" msgstr "" msgid "Edit patched file and rejects?" msgstr "" msgid "No deletable chunks" msgstr "" msgid "Completely remove file from patch?" msgstr "" msgid "Revert all file changes?" msgstr "" msgid "No chunks remain" msgstr "" msgid "file has been deleted, refresh" msgstr "" msgid "file has been modified, refresh" msgstr "" msgid "Unable to merge chunks" msgstr "" msgid "Add or remove patches must be merged in the working directory" msgstr "" msgid "Unable to remove" msgstr "" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" msgctxt "files" msgid "All" msgstr "" msgctxt "files" msgid "None" msgstr "" msgid "Toggle display of text search bar" msgstr "" msgid "Diff Toolbar" msgstr "" #, python-format msgid "Chunks selected: %d / %d" msgstr "" msgid "Please wait while the file is opened ..." msgstr "" msgid "Source:" msgstr "Font :" msgid "Destination:" msgstr "Destinacion :" msgid "Options" msgstr "Opcions" msgid "Clone to revision:" msgstr "" msgid "A revision identifier, bookmark, tag or branch name" msgstr "" msgid "Do not update the new working directory" msgstr "" msgid "Use pull protocol to copy metadata" msgstr "" msgid "Clone with minimal processing" msgstr "" msgid "Include patch queue" msgstr "" msgid "Use proxy server" msgstr "" msgid "Do not verify host certificate" msgstr "" msgid "Remote command:" msgstr "" msgid "Use largefiles" msgstr "" msgid "Start revision:" msgstr "" msgid "Select source repository" msgstr "" msgid "Select destination repository" msgstr "" msgid "Select patch folder" msgstr "" #, python-format msgid "Clone - %s" msgstr "" msgid "&Clone" msgstr "" msgid "failed to start command\n" msgstr "" msgid "error while running command\n" msgstr "" #, python-format msgid "process exited unexpectedly with code %d" msgstr "" #, python-format msgid "failed to encode command: %s" msgstr "" #, python-format msgid "timed out while reading: %r..." msgstr "" msgid "timed out waiting for message" msgstr "" #, python-format msgid "unexpected response on required channel %r" msgstr "" #, python-format msgid "invalid \"hello\" message: %r" msgstr "" msgid "no \"runcommand\" capability" msgstr "" #, python-format msgid "corrupted command result: %r" msgstr "" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "" msgid "Terminated by user" msgstr "" #, python-format msgid "[command terminated by user %s]" msgstr "" #, python-format msgid "[command interrupted %s]" msgstr "" #, python-format msgid "[command returned code %d %%s]" msgstr "" #, python-format msgid "[command completed successfully %s]" msgstr "" msgid "Running..." msgstr "En cors d'execucion" msgid "Failed!" msgstr "" msgid "Clea&r Log" msgstr "" msgid "TortoiseHg Prompt" msgstr "" msgid "Show Detail" msgstr "" msgid "Hide Detail" msgstr "" msgid "Confirm Exit" msgstr "" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" msgid "&Run" msgstr "" msgid "TortoiseHg Command Dialog" msgstr "" msgid "Command Error" msgstr "" #, python-format msgid "[Code: %d]" msgstr "" msgid "Merge" msgstr "Fusionar" #, python-format msgid "Merge with %s" msgstr "" msgid "Patch Name Required" msgstr "" msgid "You must enter a patch name" msgstr "" msgctxt "start progress" msgid "Commit" msgstr "" msgctxt "start progress" msgid "MQ Action" msgstr "" msgctxt "start progress" msgid "Rollback" msgstr "" msgid "Commit Dialog Toolbar" msgstr "" msgid "Branch: " msgstr "" msgid "Copy message" msgstr "" msgid "Copy one of the recent commit messages" msgstr "" msgid "Show Issues" msgstr "" msgid "Please wait..." msgstr "" #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "" msgid "Issue Tracker" msgstr "" msgid "Show Issues..." msgstr "" msgid "Stop" msgstr "Arrestar" msgid "### patch name ###" msgstr "" msgid "Commit changes" msgstr "" msgid "Commit" msgstr "Validar" msgid "Amend current revision" msgstr "" msgid "Amend" msgstr "" msgid "Create a new patch" msgstr "" msgid "QNew" msgstr "" msgid "Refresh current patch" msgstr "" msgid "QRefresh" msgstr "" msgid "Confirm Branch Change" msgstr "" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "" msgid "Restart &Branch" msgstr "" msgid "&Commit to current branch" msgstr "" msgid "Cancel" msgstr "Anullar" msgid "Confirm New Branch" msgstr "" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "" msgid "Create &Branch" msgstr "" msgid "Close Branch: " msgstr "" msgid "New Branch: " msgstr "" #, python-format msgid "Selected Options: %s" msgstr "" msgid "Parent:" msgstr "" msgid "Patch name:" msgstr "" #, python-format msgid "Close %s branch" msgstr "" #, python-format msgid "Rollback commit to revision %d" msgstr "" msgid "Confirm Undo" msgstr "" msgid "Discard current commit message?" msgstr "" msgid "Message Translation Failure" msgstr "" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" msgid "&Replace" msgstr "" msgid "Nothing Committed" msgstr "" msgid "Please enter commit message" msgstr "" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" msgid "No files checked" msgstr "" msgid "No modified files checkmarked for commit" msgstr "" msgid "Confirm Add" msgstr "" msgid "Add selected untracked files?" msgstr "" msgid "Confirm Remove" msgstr "" msgid "Remove selected deleted files?" msgstr "" msgid "Nothing changed." msgstr "" msgctxt "window title" msgid "Commit" msgstr "" #, python-format msgid "%s - commit options" msgstr "" msgid "Set username:" msgstr "" msgid "Save in Repo" msgstr "" msgid "Save Global" msgstr "" msgid "Set Date:" msgstr "" msgid "Update" msgstr "Mesa a jorn" msgid "Push After Commit:" msgstr "" msgid "Auto Includes:" msgstr "" msgid "Recurse into subrepositories (--subrepos)" msgstr "" msgid "Unable to save username" msgstr "" msgid "Iniparse must be installed." msgstr "" msgid "Unable to write configuration file" msgstr "" msgid "Unable to save after commit push" msgstr "" msgid "Unable to save auto include list" msgstr "" msgid "Unable to save recurse in subrepos." msgstr "" msgid "Invalid date format" msgstr "" msgid "No username configured" msgstr "" #, python-format msgid "%s - commit" msgstr "" msgid "TortoiseHg Commit" msgstr "" msgid "Are you sure that you want to cancel the commit operation?" msgstr "" msgid "Compress changesets up to and including" msgstr "" msgid "Onto destination" msgstr "" msgid "Compress" msgstr "" #, python-format msgid "Compress - %s" msgstr "" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the compress" msgstr "" msgid "Changes have been moved, you must now commit" msgstr "" msgctxt "action button" msgid "Commit" msgstr "" msgid "Compress is complete, old history untouched" msgstr "" msgid "must be specified repository" msgstr "" msgid "must be specified 'type' in style" msgstr "" msgid "Git Commit:" msgstr "" msgid "Summary:" msgstr "Resumit :" msgid "User:" msgstr "Utilizaire :" msgid "Date:" msgstr "Data :" msgid "Age:" msgstr "Atge :" msgid "Branch:" msgstr "Branca :" msgid "Close:" msgstr "" msgid "Tags:" msgstr "Etiquetas :" msgid "Graft:" msgstr "" msgid "Transplant:" msgstr "" msgid "Obsolete state:" msgstr "" msgid "Perforce:" msgstr "" msgid "Subversion:" msgstr "" msgid "Converted From:" msgstr "" msgid "Original Parent:" msgstr "" msgid "No items to display" msgstr "" msgid "Use compact view" msgstr "" msgid "Patch:" msgstr "" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "" msgid "Select a GUI location to edit:" msgstr "" msgid "Select the toolbar or menu to change" msgstr "" msgid "Tools shown on selected location" msgstr "" msgid "Delete from list" msgstr "" msgid "Add to list" msgstr "" msgid "Add separator" msgstr "" msgid "List of all tools" msgstr "" msgid "New Tool ..." msgstr "" msgid "Edit Tool ..." msgstr "" msgid "Delete Tool" msgstr "" msgid "Type" msgstr "Tipe" msgid "Name" msgstr "Nom" msgid "Command" msgstr "" msgid "New hook" msgstr "" msgid "Edit hook" msgstr "" msgid "Delete hook" msgstr "" msgid "Replace existing hook?" msgstr "" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" msgid "OK" msgstr "D'acòrdi" msgid "Missing information" msgstr "" msgid "All items" msgstr "" msgid "Working directory" msgstr "" msgid "All revisions" msgstr "" msgid "All contexts" msgstr "" msgid "Fixed revisions" msgstr "" msgid "Applied patches" msgstr "" msgid "Applied patches or qparent" msgstr "" msgid "" msgstr "" msgid "Configure Custom Tool" msgstr "" msgid "Tool name" msgstr "" msgid "The tool name. It cannot contain spaces." msgstr "" #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" msgid "Tool label" msgstr "" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" msgid "Tooltip" msgstr "" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" msgid "Icon" msgstr "" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" msgid "On repowidget, show for" msgstr "" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" msgid "Show Output Log" msgstr "" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" msgid "You must set a tool name." msgstr "" msgid "The tool name cannot have any spaces in it." msgstr "" msgid "You must set a command to run." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" msgid "Configure Hook" msgstr "" msgid "Hook type" msgstr "" msgid "Select when your command will be run" msgstr "" msgid "The hook name. It cannot contain spaces." msgstr "" msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" msgid "You must set a valid hook type." msgstr "" msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "" msgid "Console" msgstr "" msgid "File &History / Annotate" msgstr "" msgid "Show the history of the selected file" msgstr "" msgid "Co&mpare File Revisions" msgstr "" msgid "Compare revisions of the selected file" msgstr "" msgid "Filter Histor&y" msgstr "" msgid "Query about changesets affecting the selected files" msgstr "" msgid "Diff &Changeset to Parent" msgstr "" msgid "Diff Changeset to Loc&al" msgstr "" msgid "&Diff to Parent" msgstr "" msgid "Diff to &Local" msgstr "" msgid "View changes to current in external diff tool" msgstr "" msgid "&View at Revision" msgstr "" msgid "View file as it appeared at this revision" msgstr "" msgid "&Save at Revision..." msgstr "" msgid "Save file as it appeared at this revision" msgstr "" msgid "Save file to" msgstr "" msgid "&Edit Local" msgstr "" msgid "&Open Local" msgstr "" msgid "E&xplore Local" msgstr "" msgid "Open parent folder of current file in the system file manager" msgstr "" msgid "&Copy Patch" msgstr "" msgid "Copy &Path" msgstr "" msgid "Copy full path of file(s) to the clipboard" msgstr "" msgid "&Revert to Revision..." msgstr "" msgid "Open S&ubrepository" msgstr "" msgid "Open the selected subrepository" msgstr "" msgid "E&xplore Folder" msgstr "" msgid "Open the selected folder in the system file manager" msgstr "" msgid "Open &Terminal" msgstr "" msgid "Open a shell terminal in the selected folder" msgstr "" msgid "Custom Tools" msgstr "" msgid "Diff &Local" msgstr "" msgid "&View Missing" msgstr "" msgid "View O&ther" msgstr "" msgid "Add &Largefiles..." msgstr "" msgid "&Forget" msgstr "" msgid "&Delete Unversioned..." msgstr "" msgid "Confirm Delete Unversioned" msgstr "" msgid "Delete the following unversioned files?" msgstr "" msgid "&Delete" msgstr "" msgid "Re&move Versioned" msgstr "" msgid "&Revert..." msgstr "" msgid "Uncommited merge - please select a parent revision" msgstr "" msgid "Revert files to local or other parent?" msgstr "" msgid "&Local" msgstr "&Local" msgid "&Other" msgstr "&Autre" msgid "Confirm Revert" msgstr "" msgid "Revert local file changes?" msgstr "" msgid "&Revert with backup" msgstr "" msgid "&Discard changes" msgstr "" msgid "Revert the following files?" msgstr "" msgid "&Revert" msgstr "" msgid "&Copy..." msgstr "" msgid "Re&name..." msgstr "" msgid "&Ignore..." msgstr "" msgid "Edit Re&jects" msgstr "" msgid "Manually resolve rejected patch chunks" msgstr "" msgid "De&tect Renames..." msgstr "" msgid "&Mark Resolved" msgstr "" msgid "&Mark Unresolved" msgstr "" msgid "Restart Mer&ge" msgstr "" msgid "Was renamed from" msgstr "" msgid "Restart Merge &with" msgstr "" msgid "Display the file anyway" msgstr "" msgid "Diff not displayed: " msgstr "" #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid "File is binary" msgstr "" msgid "File may be binary (maximum line length exceeded)" msgstr "" msgid "File or diffs not displayed: " msgstr "" msgid " (was added)" msgstr "" #, python-format msgid " (copied from %s)" msgstr "" #, python-format msgid " (renamed from %s)" msgstr "" msgid " (is a symlink)" msgstr "" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid " (was deleted)" msgstr "" msgid " (was added, now missing)" msgstr "" msgid " (is unversioned)" msgstr "" msgid "exec mode has been set" msgstr "" msgid "exec mode has been unset" msgstr "" #, python-format msgid "changeset: %s" msgstr "" msgid "Initial revision" msgstr "" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" msgid "Subrepo created and set to initial revision." msgstr "" msgid "Subrepo initialized to revision:" msgstr "" msgid "Subrepo removed from repository." msgstr "" msgid "Previously the subrepository was at the following revision:" msgstr "" msgid "Subrepo was not changed." msgstr "" msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "" msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "" msgid "Subrepo state is:" msgstr "" msgid "Revision has changed to:" msgstr "" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "" msgid "From:" msgstr "De :" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" msgid "Subrepository not found in the working directory." msgstr "" msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" msgid "Not a Mercurial subrepo, not previewable" msgstr "" #, python-format msgid "Error previewing subrepo: %s" msgstr "" msgid "Subrepo may be damaged or inaccessible." msgstr "" msgid "The subrepository is dirty." msgstr "" msgid "File Status:" msgstr "" msgid "(is a changed sub-repository)" msgstr "" msgid "(is an unchanged sub-repository)" msgstr "" msgid "(is a dirty sub-repository)" msgstr "" msgid "(is a new sub-repository)" msgstr "" msgid "(is a removed sub-repository)" msgstr "" msgid "(is a changed and dirty sub-repository)" msgstr "" msgid "(is a new and dirty sub-repository)" msgstr "" msgid "open..." msgstr "" #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "" msgid "File History Log Columns" msgstr "" msgid "Back" msgstr "" msgid "Forward" msgstr "" msgid "Diff Selected &Changesets" msgstr "" msgid "&Diff Selected File Revisions" msgstr "" msgid "Show Revision &Details" msgstr "" msgid "Too many rows selected for menu" msgstr "" msgid "File Differences Log Columns" msgstr "" msgid "Next diff" msgstr "" msgid "Previous diff" msgstr "" msgid "Unicode" msgstr "" msgid "Western Europe" msgstr "" msgid "Unified Chinese" msgstr "" msgid "Traditional Chinese" msgstr "" msgid "Korean" msgstr "" msgid "Japanese" msgstr "" msgid "Thai" msgstr "" msgid "Central and Eastern Europe" msgstr "" msgid "Cyrillic" msgstr "" msgid "Russian" msgstr "" msgid "Ukrainian" msgstr "" msgid "Greek" msgstr "" msgid "Turkish" msgstr "" msgid "Arabic" msgstr "" msgid "Hebrew" msgstr "" msgid "Vietnamese" msgstr "" msgid "Baltic" msgstr "" msgid "Southern Europe" msgstr "" msgid "Nordic" msgstr "" msgid "Celtic" msgstr "" msgid "South-Eastern Europe" msgstr "" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "" msgid "View change as unified diff output" msgstr "" msgid "View change in context of file" msgstr "" msgid "Annotate with revision numbers" msgstr "" msgid "Next Diff" msgstr "" msgid "Previous Diff" msgstr "" msgid "Open shelve tool" msgstr "" msgid "&Auto Detect" msgstr "" msgid "Show changes from first parent" msgstr "" msgid "Show changes from second parent" msgstr "" msgid "E&ncoding" msgstr "" msgid "&Search in Current File" msgstr "" msgid "Search in All &History" msgstr "" msgid "Go to Line" msgstr "" #, python-format msgid "Enter line number (1 - %d)" msgstr "" msgid "Show &Author" msgstr "" msgid "Show &Date" msgstr "" msgid "Show &Revision" msgstr "" msgid "Annotate Op&tions" msgstr "" msgid "Search Selected Text" msgstr "" msgid "In Current &File" msgstr "" msgid "In &Current Revision" msgstr "" msgid "In &Original Revision" msgstr "" msgid "In All &History" msgstr "" msgid "Go to" msgstr "" msgid "View File at" msgstr "" msgid "Diff File to" msgstr "" msgid "&Originating Revision" msgstr "" msgid "&Parent Revision" msgstr "" #, python-format msgid "&Parent Revision (%d)" msgstr "" msgid "&Mark Excluded Changes" msgstr "" msgid "(excluded from the next commit)" msgstr "" msgid "Interrupted graft operation found" msgstr "" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" msgid "Continue or abort interrupted graft operation?" msgstr "" msgid "To graft destination" msgstr "" msgid "Use my user name instead of graft committer user name" msgstr "" msgid "Use current date" msgstr "" msgid "Append graft info to log message" msgstr "" msgid "Graft" msgstr "" msgid "Abort" msgstr "Abandonar" #, python-format msgid "Graft - %s" msgstr "" msgid "Graft changeset" msgstr "" #, python-format msgid "Graft changeset #%d of %d" msgstr "" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" msgid "You may continue or start the graft" msgstr "" msgid "Graft is complete" msgstr "" msgid "Graft failed" msgstr "" msgid "Graft aborted" msgstr "" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" msgid "You may continue the graft" msgstr "" msgid "Exiting with an unfinished graft is not recommended." msgstr "" msgid "Consider aborting the graft first." msgstr "" msgid "&Exit" msgstr "" msgid "### regular expression search pattern ###" msgstr "" msgid "Regexp:" msgstr "" msgid "Ignore case" msgstr "" msgid "Search" msgstr "Recercar" msgid "Working Copy" msgstr "" msgid "All History" msgstr "" msgid "Report only the first match per file" msgstr "" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "" msgid "Includes:" msgstr "" msgid "Excludes:" msgstr "" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" #, python-format msgid "\"%s\" removed from search history" msgstr "" #, python-format msgid "\"%s\" removed from path history" msgstr "" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "" #, python-format msgid "grep: %s\n" msgstr "" #, python-format msgid "%d matches found" msgstr "" msgid "No matches found" msgstr "" msgid "Searching" msgstr "" msgid "history" msgstr "" msgid "Interrupted" msgstr "" msgid "files" msgstr "" #, python-format msgid "Skipping %s, unable to read" msgstr "" msgid "Vi&ew File" msgstr "" msgid "&View Changeset" msgstr "" msgid "Annotate &File" msgstr "" msgid "File" msgstr "Fichièr" msgid "Line" msgstr "" msgid "Rev" msgstr "Rev" msgid "User" msgstr "Utilizaire" msgid "Match Text" msgstr "" msgid "TortoiseHg Search" msgstr "" #, python-format msgid "Detect Copies/Renames in %s" msgstr "" msgid "Unrevisioned Files" msgstr "" msgid "Refresh file list" msgstr "" #, python-format msgid "Min Similarity: %d%%" msgstr "" msgid "Only consider deleted files" msgstr "" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "" msgid "Find Renames" msgstr "" msgid "Find copy and/or rename sources" msgstr "" msgid "Candidate Matches" msgstr "" msgid "Accept All Matches" msgstr "" msgid "Accept Selected Matches" msgstr "" msgid "Differences from Source to Dest" msgstr "" msgid "Search already in progress" msgstr "" msgid "Cannot start a new search" msgstr "" msgid "No files to find" msgstr "" msgid "There are no files that may have been renamed" msgstr "" msgid "Multiple sources chosen" msgstr "" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" #. i18n: percent format #, python-format msgid "%d%%" msgstr "" msgid "Source" msgstr "Font" msgid "Dest" msgstr "Cibl" msgid "% Match" msgstr "" msgid "Sending Email" msgstr "" msgid "Email" msgstr "Adreça electronica" msgid "To:" msgstr "Destinatari :" msgid "Cc:" msgstr "Còpia a :" msgid "In-Reply-To:" msgstr "" msgid "Message identifier to reply to, for threading" msgstr "" msgid "Flag:" msgstr "" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" msgid "Send changesets as Hg patches" msgstr "" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" msgid "Use extended (git) patch format" msgstr "" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" msgid "Plain, do not prepend Hg header" msgstr "" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" msgid "Send single binary bundle, not patches" msgstr "" msgid "send patches as part of the email body" msgstr "" msgid "body" msgstr "" msgid "send patches as attachments" msgstr "" msgid "attach" msgstr "" msgid "send patches as inline attachments" msgstr "" msgid "inline" msgstr "" msgid "add diffstat output to messages" msgstr "" msgid "diffstat" msgstr "" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" msgid "Write patch series (bundle) description" msgstr "" msgid "Subject:" msgstr "Subjècte :" msgid "Changesets" msgstr "" msgid "Select &All" msgstr "" msgid "Select &None" msgstr "" msgid "Edit" msgstr "Editar" msgid "Preview" msgstr "" msgid "&Settings" msgstr "" msgid "Send &Email" msgstr "" msgid "&Close" msgstr "" #, python-format msgid "Ignore filter - %s" msgstr "" msgid "Glob" msgstr "" msgid "Regexp" msgstr "" msgid "Add" msgstr "Apondre" msgid "Edit File" msgstr "Editar lo fichièr" msgid "Ignore Filter" msgstr "" msgid "Untracked Files" msgstr "" msgid "Backspace or Del to remove row(s)" msgstr "" msgid "Add ignore filter..." msgstr "" msgid "selected files" msgstr "" msgid "Ignore " msgstr "" msgid "Invalid glob expression" msgstr "" msgid "Invalid regexp expression" msgstr "" msgid "Unable to read repository status" msgstr "" msgid "New file created" msgstr "" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" msgid "Unable to write .hgignore file" msgstr "" msgid "Copy working directory files from skeleton" msgstr "" msgid "Create special files (.hgignore, ...)" msgstr "" msgid "Make repo compatible with Mercurial <1.7" msgstr "" msgid "New Repository" msgstr "" msgid "&Create" msgstr "" msgid "Unable to create a config file" msgstr "" msgid "Insufficient access rights." msgstr "" msgid "Show Log" msgstr "" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" msgid "Add as &Largefiles" msgstr "" msgid "Add as &Normal Files" msgstr "" msgid "Invalid Patterns" msgstr "" msgid "Failed to process largefiles.patterns." msgstr "" msgid "Word docs (*.doc *.docx)" msgstr "" msgid "PDF docs (*.pdf)" msgstr "" msgid "Excel files (*.xls *.xlsx)" msgstr "" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "" msgid "Refresh lock information" msgstr "" msgid "Lock a file not described in .hglocks" msgstr "" msgid "Stop current operation" msgstr "" msgid "Locked And Lockable Files:" msgstr "" msgid "Path" msgstr "" msgid "Locking User" msgstr "" msgid "Purpose" msgstr "" msgid "Simplelock extension not enabled" msgstr "" msgid "Please enable and configure simplelock" msgstr "" msgid "Open a (nonmergable) file you wish to be locked" msgstr "" msgid "File was not within current repository" msgstr "" #, python-format msgid "Locking %s" msgstr "" #, python-format msgid "Unlocking %s" msgstr "" msgid "Refreshing locks..." msgstr "" #, python-format msgid "Lock of %s successful" msgstr "" #, python-format msgid "Lock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s successful" msgstr "" msgid "Ready, double click to lock or unlock" msgstr "" msgid "Ready" msgstr "" msgid "You can only release your own locks" msgstr "" msgid "Find revisions matching fields of:" msgstr "" msgid "Revision to Match:" msgstr "" msgid "Fields to match:" msgstr "" msgid "Summary (first description line)" msgstr "" msgid "Description" msgstr "Descripcion" msgid "Author" msgstr "" msgid "Date" msgstr "Data" msgid "Files" msgstr "Fichièrs" msgid "Diff contents" msgstr "" msgid "Subrepo states" msgstr "" msgid "Branch" msgstr "Branca" msgid "Phase" msgstr "" msgid "&Match" msgstr "" #, python-format msgid "Find matches - %s" msgstr "" msgid "Revisions to Match:" msgstr "" #, python-format msgid "Match any of %d revisions" msgstr "" msgid "Unknown revision!" msgstr "" msgid "Parse Error!" msgstr "" #, python-format msgid "Merge - %s" msgstr "" msgid "Do you want to exit?" msgstr "" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" msgid "Prepare to merge" msgstr "" msgid "Verify merge targets and ensure your working directory is clean." msgstr "" msgid "Not a head revision!" msgstr "" msgid "Merge from (other revision)" msgstr "" msgid "Merge to (working directory)" msgstr "" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Or use:" msgstr "" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "" msgid "Discard all changes from the other revision" msgstr "" msgid "&Discard" msgstr "&Abandonar" msgid "Confirm Discard Changes" msgstr "" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" msgctxt "working dir state" msgid "Clean" msgstr "" msgid "Merging..." msgstr "" msgid "Automatically advance to next page when merge is complete." msgstr "" #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" msgid "" "No merge conflicts, ready to commit or review" msgstr "" msgid "Commit merge results" msgstr "" msgid "Commit Options" msgstr "" msgid "Commit Now" msgstr "" msgid "Commit Later" msgstr "" msgid "Merge changeset" msgstr "" msgid "Syntax Highlighting" msgstr "" msgid "Paste &Filenames" msgstr "" msgid "App&ly Format" msgstr "" msgid "C&onfigure Format" msgstr "" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "" msgid "&Commit to Queue..." msgstr "" msgid "Create &New Queue..." msgstr "" msgid "&Rename Active Queue..." msgstr "" msgid "&Delete Queue..." msgstr "" msgid "&Purge Queue..." msgstr "" msgid "Create Patch Queue" msgstr "" msgid "New patch queue name" msgstr "" msgid "Create" msgstr "Crear" msgid "Rename Patch Queue" msgstr "" #, python-format msgid "Rename patch queue '%s' to" msgstr "" msgid "Rename" msgstr "Tornar nomenar" msgid "Delete Patch Queue" msgstr "" msgid "Delete reference to" msgstr "" msgid "Delete" msgstr "" msgid "Purge Patch Queue" msgstr "" msgid "Remove patch directory of" msgstr "" msgid "Purge" msgstr "" msgid "Rename Patch" msgstr "" #, python-format msgid "Rename patch %s to:" msgstr "" msgid "no guards" msgstr "" msgid "Patch Queue" msgstr "" msgctxt "MQ QPush" msgid "Push" msgstr "" msgid "Apply one patch" msgstr "" msgctxt "MQ QPush" msgid "Push all" msgstr "" msgid "Apply all patches" msgstr "" msgid "Pop" msgstr "" msgid "Unapply one patch" msgstr "" msgid "Pop all" msgstr "" msgid "Unapply all patches" msgstr "" msgid "Go &to Patch" msgstr "" msgid "&Apply Only This Patch" msgstr "" msgid "Apply only the selected patch" msgstr "" msgid "&Finish Patch" msgstr "" msgid "Move applied patches into repository history" msgstr "" msgid "&Delete Patches..." msgstr "" msgid "Delete selected patches" msgstr "" msgid "Re&name Patch..." msgstr "" msgid "Set &Guards..." msgstr "" msgid "Configure guards for selected patch" msgstr "" msgid "Patch Queue Actions Toolbar" msgstr "" msgid "Configure guards" msgstr "" #, python-format msgid "Input new guards for %s:" msgstr "" msgid "Confirm patch queue switch" msgstr "" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "" #, python-format msgid "Guards: %d/%d" msgstr "" msgid "MQ options" msgstr "" msgid "Force push or pop (--force)" msgstr "" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "" msgid "Submitting p4 changelist..." msgstr "" msgid "Reverting p4 changelist..." msgstr "" msgid "Patch Branch Toolbar" msgstr "" msgid "Merge all pending dependencies" msgstr "" msgid "Backout current patch branch" msgstr "" msgid "Backport part of a changeset to a dependency" msgstr "" msgid "Start a new patch branch" msgstr "" msgid "Edit patch dependency graph" msgstr "" msgid "will be closed" msgstr "" #, python-format msgid "needs merge of %i heads\n" msgstr "" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "" #, python-format msgid "needs merge with %s\n" msgstr "" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "" msgid "&Goto (update workdir)" msgstr "" msgid "&Merge" msgstr "&Fusionar" msgid "No patch branch selected" msgstr "" msgid "No editor found" msgstr "" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" msgid "Graph" msgstr "Graf" msgid "Status" msgstr "" msgid "Title" msgstr "" msgid "Message" msgstr "" msgid "New Patch Branch" msgstr "" msgid "Patch message:" msgstr "" msgid "Patch date:" msgstr "" msgid "Patch user:" msgstr "" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" msgid "Review Board" msgstr "" msgid "Password:" msgstr "" msgid "Error" msgstr "Error" #, python-format msgid "Review draft posted to %s\n" msgstr "" #, python-format msgid "Review published to %s\n" msgstr "" msgid "Success" msgstr "" msgid "Repository ID:" msgstr "" msgid "Post Review" msgstr "" msgid "Review ID:" msgstr "" msgid "Update the fields of this existing request" msgstr "" msgid "Update Review" msgstr "" msgid "Create diff with all outgoing changes" msgstr "" msgid "Create diff with all changes on this branch" msgstr "" msgid "Publish request immediately" msgstr "" msgid "%p%" msgstr "" msgid "Connecting to Review Board..." msgstr "" msgid "Target:" msgstr "Cibla :" msgid "Do not modify working copy (-k/--keep)" msgstr "" #, python-format msgid "Prune - %s" msgstr "" msgid "&Prune" msgstr "" msgid "No unknown files found" msgstr "" msgid "No ignored files found" msgstr "" msgid "No trash files found" msgstr "" msgid "Delete empty folders" msgstr "" msgid "Preserve files beginning with .hg" msgstr "" #, python-format msgid "%s - purge" msgstr "" msgid "Checking" msgstr "" msgid "Ready to purge." msgstr "" #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "" msgstr[1] "" msgid "Confirm file deletions" msgstr "" msgid "Are you sure you want to delete these files and/or folders?" msgstr "" msgid "Deletion failures" msgstr "" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "" msgstr[1] "" msgid "Deleting trash folder..." msgstr "" #, python-format msgid "Deleted %d files" msgstr "" #, python-format msgid "Deleted %d files and %d folders" msgstr "" msgid "Delete Patches" msgstr "" msgid "Remove patches from queue?" msgstr "" msgid "Keep patch files" msgstr "" #, python-format msgid "Patch fold - %s" msgstr "" msgid "New patch message:" msgstr "" msgid "Patches to fold" msgstr "" msgid "&Undo" msgstr "" msgid "&Redo" msgstr "" msgid "Cu&t" msgstr "" msgid "&Copy" msgstr "" msgid "&Paste" msgstr "" msgid "&Editor Options" msgstr "" msgid "&Wrap" msgstr "" msgctxt "wrap mode" msgid "&None" msgstr "" msgid "&Word" msgstr "" msgid "&Character" msgstr "" msgid "White&space" msgstr "" msgid "&Visible" msgstr "" msgid "&Invisible" msgstr "" msgid "&AfterIndent" msgstr "" msgid "&TAB Inserts" msgstr "" msgid "&Auto" msgstr "" msgid "&TAB" msgstr "" msgid "&Spaces" msgstr "" msgid "EOL &Visibility" msgstr "" msgid "EOL &Mode" msgstr "" msgid "&Windows" msgstr "" msgid "&Unix" msgstr "" msgid "&Mac" msgstr "" msgid "&Auto-Complete" msgstr "" msgid "### regular expression ###" msgstr "" msgid "Regular expression search pattern" msgstr "" msgid "Wrap search" msgstr "" msgid "Prev" msgstr "" msgid "Next" msgstr "" msgid "Unable to read file" msgstr "" msgid "Could not open the specified file for reading." msgstr "" msgid "This appears to be a binary file." msgstr "" msgid "An error occurred while reading the file." msgstr "" msgid "Text Translation Failure" msgstr "" msgid "Could not translate the file content from native encoding." msgstr "" msgid "Several characters would be lost." msgstr "" msgid "Unable to write file" msgstr "" msgid "Could not translate the file content to native encoding." msgstr "" msgid "Could not open the specified file for writing." msgstr "" msgid "An error occurred while writing the file." msgstr "" msgid "Try refreshing your repository." msgstr "" #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
                                                                        Please edit your config" msgstr "" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
                                                                        Please fix your config" msgstr "" #, python-format msgid "Operation aborted:

                                                                        %(arg0)s." msgstr "" msgid "Repository is locked" msgstr "" msgid "hint:" msgstr "" msgid "Repository Error" msgstr "" msgid "No visual editor configured" msgstr "" msgid "Please configure a visual editor." msgstr "" msgid "Editor launch failure" msgstr "" msgid "Failed to open path in terminal" msgstr "" #, python-format msgid "\"%s\" is not a valid directory" msgstr "" #, python-format msgid "Invalid configuration: %s" msgstr "" msgid "Unable to start the following command:" msgstr "" msgid "No shell configured" msgstr "" msgid "A terminal shell must be configured" msgstr "" msgid "Please enter a username" msgstr "" msgid "You must identify yourself to Mercurial" msgstr "" msgid "Unable to translate input to local encoding." msgstr "" msgid "Checkmark files to add" msgstr "" msgid "Checkmark files to forget" msgstr "" msgid "Forget" msgstr "Doblidar" msgid "Checkmark files to revert" msgstr "" msgid "Revert" msgstr "Restablir" msgid "Checkmark files to remove" msgstr "" msgid "Remove" msgstr "Suprimir" #, python-format msgid "%s - hg %s" msgstr "" msgid "Do not save backup files (*.orig)" msgstr "" msgid "Force removal of modified files (--force)" msgstr "" msgid "Add &Largefiles" msgstr "" msgid "No files selected" msgstr "" msgid "No operation to perform" msgstr "" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" msgid "Remove &Unmodified Files" msgstr "" msgid "Remove &All Selected Files" msgstr "" msgid "Rebase changeset and descendants" msgstr "" msgid "To rebase destination" msgstr "" msgid "Swap source and destination" msgstr "" msgid "Keep original changesets (--keep)" msgstr "" msgid "Keep original branch names (--keepbranches)" msgstr "" msgid "Collapse the rebased changesets (--collapse)" msgstr "" msgid "Rebase entire source branch (-b/--base)" msgstr "" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "" msgid "Rebase" msgstr "" #, python-format msgid "Rebase - %s" msgstr "" msgid "" "Before rebase, you must
                                                                        commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the rebase" msgstr "" msgid "Rebase is complete" msgstr "" msgid "Rebase failed" msgstr "" msgid "Rebase aborted" msgstr "" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" msgid "Exiting with an unfinished rebase is not recommended." msgstr "" msgid "Consider aborting the rebase first." msgstr "" #, python-format msgid "Merge rejected patch chunks into %s" msgstr "" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "" msgid "Mark this chunk as unresolved" msgstr "" msgid "Reload File" msgstr "" msgid "Are you sure you want to reload this file?" msgstr "" msgid "All unsaved changes will be lost." msgstr "" msgid "Warning" msgstr "Avertiment" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" msgid "Copy source -> destination" msgstr "" msgid "Copy Error" msgstr "" msgid "Rename Error" msgstr "" msgid "Select Source File" msgstr "" msgid "Select Source Folder" msgstr "" msgid "Source does not exist." msgstr "" msgid "The source must be within the repository tree." msgstr "" msgid "The destination must be within the repository tree." msgstr "" msgid "Destination file already exists." msgstr "" msgid "Are you sure you want to overwrite it ?" msgstr "" #, python-format msgid "Copy - %s" msgstr "" #, python-format msgid "Rename - %s" msgstr "" msgid "Show all" msgstr "Afichar tot" msgid "### revision set query ###" msgstr "" msgid "Clear current query and query text" msgstr "" msgid "Trigger revision set query" msgstr "" msgid "Open advanced query editor" msgstr "" msgid "Delete selected query from history" msgstr "" msgid "filter" msgstr "" msgid "Toggle filtering of non-matched changesets" msgstr "" msgid "Show/Hide hidden changesets" msgstr "" msgid "Toggle graft relations visibility" msgstr "" msgid "Keyword Search" msgstr "" msgid "Revision Set" msgstr "" msgid "(unsaved)" msgstr "" msgid "Display graph the named branch only" msgstr "" msgid "Display only active branches" msgstr "" msgid "Display closed branches" msgstr "" msgid "Include all ancestors" msgstr "" msgctxt "column header" msgid "Graph" msgstr "" msgctxt "column header" msgid "Rev" msgstr "" msgctxt "column header" msgid "Branch" msgstr "" msgctxt "column header" msgid "Description" msgstr "" msgctxt "column header" msgid "Author" msgstr "" msgctxt "column header" msgid "Tags" msgstr "" msgctxt "column header" msgid "Latest tags" msgstr "" msgctxt "column header" msgid "Node" msgstr "" msgctxt "column header" msgid "Git Commit" msgstr "" msgctxt "column header" msgid "Age" msgstr "" msgctxt "column header" msgid "Local Time" msgstr "" msgctxt "column header" msgid "UTC Time" msgstr "" msgctxt "column header" msgid "Changes" msgstr "" msgctxt "column header" msgid "Converted From" msgstr "" msgctxt "column header" msgid "Phase" msgstr "" msgctxt "column header" msgid "Filename" msgstr "" msgid "Searching..." msgstr "" #, python-format msgid "filling (%d)" msgstr "" msgid "Mercurial User" msgstr "" msgid "Repository Registry" msgstr "" msgid "Show &Paths" msgstr "" msgid "Show S&hort Paths" msgstr "" msgid "&Scan Repositories at Startup" msgstr "" msgid "Scan &Remote Repositories" msgstr "" msgid "&Refresh Repository List" msgstr "" msgid "Refresh the Repository Registry list" msgstr "" msgid "&Open" msgstr "" msgid "Open the repository in a new tab" msgstr "" msgid "&Open All" msgstr "" msgid "Open all repositories in new tabs" msgstr "" msgid "New &Group" msgstr "" msgid "Create a new group" msgstr "" msgid "Rename the entry" msgstr "" msgid "Settin&gs" msgstr "" msgid "View the repository's settings" msgstr "" msgid "Re&move from Registry" msgstr "" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" msgid "Clon&e..." msgstr "" msgid "Clone Repository" msgstr "" msgid "E&xplore" msgstr "" msgid "Open the repository in a file browser" msgstr "" msgid "&Terminal" msgstr "" msgid "Open a shell terminal in the repository root" msgstr "" msgid "&Add Repository..." msgstr "" msgid "Add a repository to this group" msgstr "" msgid "A&dd Subrepository..." msgstr "" msgid "Convert an existing repository into a subrepository" msgstr "" msgid "Remo&ve Subrepository..." msgstr "" msgid "Remove this subrepository from the current revision" msgstr "" msgid "Copy the root path of the repository to the clipboard" msgstr "" msgid "Sort by &Name" msgstr "" msgid "Sort the group by short name" msgstr "" msgid "Sort by &Path" msgstr "" msgid "Sort the group by full path" msgstr "" msgid "&Sort by .hgsub" msgstr "" msgid "Order the subrepos as in .hgsub" msgstr "" msgid "Select repository directory to add" msgstr "" msgid "Select an existing repository to add as a subrepo" msgstr "" msgid "Cannot add subrepository" msgstr "" #, python-format msgid "%s is not a valid repository" msgstr "" #, python-format msgid "\"%s\" is not a folder" msgstr "" msgid "A repository cannot be added as a subrepo of itself" msgstr "" #, python-format msgid "" "The selected folder:

                                                                        %s

                                                                        is not inside the target repository." "

                                                                        This may be allowed but is greatly discouraged.
                                                                        If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" msgid "Cannot open repository" msgstr "" #, python-format msgid "The selected repository:

                                                                        %s

                                                                        cannot be open!" msgstr "" msgid "Subrepository already exists" msgstr "" #, python-format msgid "" "The selected repository:

                                                                        %s

                                                                        is already a subrepository of:" "

                                                                        %s

                                                                        as: \"%s\"" msgstr "" msgid "Failed to add subrepository" msgstr "" #, python-format msgid "Cannot open the .hgsub file in:

                                                                        %s" msgstr "" msgid "Failed to add repository" msgstr "" #, python-format msgid "The .hgsub file already contains the line:

                                                                        %s" msgstr "" msgid "Subrepo added to .hgsub file" msgstr "" #, python-format msgid "" "The selected subrepo:

                                                                        %s

                                                                        has been added to the .hgsub " "file of the repository:

                                                                        %s

                                                                        Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" #, python-format msgid "Cannot update the .hgsub file in:

                                                                        %s" msgstr "" msgid "Could not open .hgsub file" msgstr "" msgid "Cannot read the .hgsub file.

                                                                        Subrepository removal failed." msgstr "" msgid "Subrepository not found" msgstr "" msgid "" "The selected subrepository was not found on the .hgsub file.

                                                                        Perhaps it " "has already been removed?" msgstr "" msgid "&Yes" msgstr "&Òc" msgid "&No" msgstr "&Non" msgid "Remove the selected repository?" msgstr "" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" msgid "Subrepository removed from .hgsub" msgstr "" msgid "" "The selected subrepository has been removed from the .hgsub file.

                                                                        Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" msgid "Could not update .hgsub file" msgstr "" msgid "Cannot update the .hgsub file.

                                                                        Subrepository removal failed." msgstr "" #, python-format msgid "Unsupported repository type (%s)" msgstr "" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "" msgid "New Group" msgstr "" msgid "Confirm Delete" msgstr "Confirmar la supression" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "" msgid "Could not get subrepository list" msgstr "" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

                                                                        %s" msgstr "" msgid "Could not open some subrepositories" msgstr "" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

                                                                        %s

                                                                        The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

                                                                        %s" msgstr "" msgid "Updating repository registry" msgstr "" #, python-format msgid "Loading repository %s" msgstr "" msgid "Repository Registry updated" msgstr "" msgid "Close tab" msgstr "" msgid "Close other tabs" msgstr "" msgid "Undo close tab" msgstr "" msgid "Reopen last closed tab" msgstr "" msgid "Undo close other tabs" msgstr "" msgid "Reopen last closed tab group" msgstr "" msgid "Failed to open repository" msgstr "" msgid "&Sort" msgstr "" #, python-format msgid "Local Repository %s" msgstr "" #, python-format msgid "" "An exception happened while loading the subrepos of:

                                                                        \"%s\"

                                                                        " msgstr "" #, python-format msgid "The exception error message was:

                                                                        %s

                                                                        " msgstr "" msgid "Click OK to continue or Abort to exit." msgstr "" msgid "Error loading subrepos" msgstr "" msgid "Unable to update repository name" msgstr "" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "" msgid "default" msgstr "" msgid "C&hoose Log Columns..." msgstr "" msgid "&Resize Columns" msgstr "" #, python-format msgid "Goto ancestor of %s and %s" msgstr "" #, python-format msgid "Can't find revision '%s'" msgstr "" msgid "Drag to change order" msgstr "" msgid "Workbench Log Columns" msgstr "" msgctxt "tab tooltip" msgid "Revision details" msgstr "" msgctxt "tab tooltip" msgid "Commit" msgstr "" msgctxt "tab tooltip" msgid "Search" msgstr "" msgctxt "tab tooltip" msgid "Console log" msgstr "" msgctxt "tab tooltip" msgid "Synchronize" msgstr "" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "" #, python-format msgid "%s " msgstr "" #, python-format msgid "Found %d incoming changesets" msgstr "" msgid "Pull" msgstr "" msgid "Pull incoming changesets into your repository" msgstr "" msgid "Reject incoming changesets" msgstr "" #, python-format msgid "Push current branch (%s)" msgstr "" #, python-format msgid "Push up to current revision (#%d)" msgstr "" #, python-format msgid "Push up to revision #%d" msgstr "" msgid "Push all" msgstr "" msgid "no outgoing changesets" msgstr "" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets" msgstr "" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "" msgid "Nothing to push" msgstr "" msgid "No revision found" msgstr "" #, python-format msgid "%s - verify repository" msgstr "" #, python-format msgid "%s - recover repository" msgstr "" msgid "No transaction available" msgstr "" msgid "There is no rollback transaction available" msgstr "" msgid "Undo last commit?" msgstr "" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "" msgid "Undo last transaction?" msgstr "" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "" msgid "Unable to determine working copy revision\n" msgstr "" msgid "Remove current working revision?" msgstr "" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" msgid "Tab cannot exit" msgstr "" msgid "Pus&h" msgstr "" msgid "Push to &Here" msgstr "" msgid "Push Selected &Branch" msgstr "" msgid "Push &All" msgstr "" msgid "&Update..." msgstr "" msgid "Bro&wse at Revision" msgstr "" msgid "&Merge with Local..." msgstr "" msgid "&Tag..." msgstr "" msgid "Boo&kmark..." msgstr "" msgid "Top&ic..." msgstr "" msgid "Sig&n..." msgstr "" msgid "&Backout..." msgstr "" msgid "Revert &All Files..." msgstr "" msgid "Copy &Hash" msgstr "" msgid "E&xport" msgstr "" msgid "E&xport Patch..." msgstr "" msgid "&Email Patch..." msgstr "" msgid "&Archive..." msgstr "" msgid "&Bundle Rev and Descendants..." msgstr "" msgid "Change &Phase to" msgstr "" msgid "&Graft to Local..." msgstr "" msgid "Modi&fy History" msgstr "" msgid "&Unapply Patch" msgstr "" msgid "Import to &MQ" msgstr "" msgid "MQ &Options" msgstr "" msgid "&Rebase..." msgstr "" msgid "&Prune..." msgstr "" msgid "&Strip..." msgstr "" msgid "Post to Re&view Board..." msgstr "" msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "" msgid "Write diff file" msgstr "" msgid "Unable to write diff file" msgstr "" msgid "Unable to compress history" msgstr "" msgid "Selected changeset pair not related" msgstr "" msgid "Visual Diff..." msgstr "" msgid "Export Diff..." msgstr "" msgid "Export Selected..." msgstr "" msgid "Email Selected..." msgstr "" msgid "Copy Selected as Patch" msgstr "" msgid "Archive DAG Range..." msgstr "" msgid "Export DAG Range..." msgstr "" msgid "Email DAG Range..." msgstr "" msgid "Bundle DAG Range..." msgstr "" msgid "Bisect - Good, Bad..." msgstr "" msgid "Bisect - Bad, Good..." msgstr "" msgid "Compress History..." msgstr "" msgid "Rebase..." msgstr "" msgid "Goto common ancestor" msgstr "" msgid "Graft Selected to local..." msgstr "" msgid "&Prune Selected..." msgstr "" msgid "Post Selected to Review Board..." msgstr "" msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "" msgid "Apply onto original parent" msgstr "" msgid "Apply only this patch" msgstr "" msgid "Fold patches..." msgstr "" msgid "Delete patches..." msgstr "" msgid "Rename patch..." msgstr "" msgid "Pull to here..." msgstr "" msgid "Visual diff..." msgstr "" msgid "Export patch" msgstr "" msgid "Patch Files (*.patch)" msgstr "" msgid "Cannot export revision" msgstr "" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" msgid "There is already an existing folder with that same name." msgstr "" msgid "Replace" msgstr "" msgid "Append" msgstr "Apondre" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" msgid "What do you want to do?\n" msgstr "" msgid "Replace the existing patch files.\n" msgstr "" msgid "Append the changes to the existing patch files.\n" msgstr "" msgid "Abort the export operation.\n" msgstr "" msgid "Patch files already exist" msgstr "" msgid "Patch exported" msgstr "" #, python-format msgid "" "Revision #%d (%s) was exported to:

                                                                        %s%s%s" msgstr "" msgid "Patches exported" msgstr "" #, python-format msgid "%d patches were exported to:

                                                                        %s" msgstr "" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

                                                                        Are you sure you want to use revert?

                                                                        (use " "update to checkout another revision)" msgstr "" msgid "Filter b&y" msgstr "" msgid "&Ancestors and Descendants" msgstr "" msgid "A&uthor" msgstr "" msgid "&Branch" msgstr "" msgid "&More Options..." msgstr "" msgid "Unable to merge" msgstr "" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "" msgid "Unable to backout" msgstr "" msgid "Write bundle" msgstr "" msgid "Backwards phase change requested" msgstr "" msgid "Do you really want to make this revision secret?" msgstr "" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" msgid "&Make secret" msgstr "" msgid "&Cancel" msgstr "&Anullar" msgid "Do you really want to force a backwards phase transition?" msgstr "" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" msgid "&Force" msgstr "" msgid "Cannot import selected revision" msgstr "" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" msgid "Invalid command" msgstr "" msgid "The selected command is empty" msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" msgid "Failed to execute custom TortoiseHg command" msgstr "" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "" msgid "Failed to execute custom command" msgstr "" #, python-format msgid "The command \"%s\" could not be executed." msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" msgid "&Edit Toolbar" msgstr "" msgid "&Refresh" msgstr "&Refrescar" msgid "&Filter Toolbar" msgstr "" #, python-format msgid "TortoiseHg: %s" msgstr "" msgid "S&tatus Bar" msgstr "" #, python-format msgid "Resolve Conflicts - %s" msgstr "" msgid "Local revision information" msgstr "" msgid "Other revision information" msgstr "" msgid "Unresolved conflicts" msgstr "" msgid "Mercurial Re&solve" msgstr "" msgid "Attempt automatic (trivial) merge" msgstr "" msgid "Tool &Resolve" msgstr "" msgid "Merge using selected merge tool" msgstr "" msgid "&Take Local" msgstr "" msgid "Accept the local file version (yours)" msgstr "" msgid "Take &Other" msgstr "" msgid "Accept the other file version (theirs)" msgstr "" msgid "&Mark as Resolved" msgstr "" msgid "Mark this file as resolved" msgstr "" msgid "Diff &Local to Ancestor" msgstr "" msgid "&Diff Other to Ancestor" msgstr "" msgid "Resolved conflicts" msgstr "" msgid "&Edit File" msgstr "" msgid "Edit resolved file" msgstr "" msgid "3-&Way Diff" msgstr "" msgid "Visual three-way diff" msgstr "" msgid "Visual diff between resolved file and first parent" msgstr "" msgid "&Diff to Other" msgstr "" msgid "Visual diff between resolved file and second parent" msgstr "" msgid "Mark as &Unresolved" msgstr "" msgid "Mark this file as unresolved" msgstr "" msgid "Detected merge/diff tools:" msgstr "" msgid "Command output" msgstr "" msgid "Unable to show subrepository files" msgstr "" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" msgid "There are merge conflicts to be resolved" msgstr "" msgid "All conflicts are resolved." msgstr "" msgid "There are no conflicting file merges." msgstr "" msgid "Exit without finishing resolve?" msgstr "" msgid "Unresolved conflicts remain. Are you sure?" msgstr "" msgid "E&xit" msgstr "" msgid "Ext" msgstr "" msgid "Repository" msgstr "Depaus" msgid "" msgstr "" msgid "File List Toolbar" msgstr "" msgid "Ma&nifest Mode" msgstr "" msgid "Show all version-controlled files in tree view" msgstr "" msgid "&Flat List" msgstr "" msgid "### filter text ###" msgstr "" msgid "Changed by &This Commit" msgstr "" msgid "Show files changed by this commit" msgstr "" msgid "Compare to &1st Parent" msgstr "" msgid "Compare to &2nd Parent" msgstr "" msgid "Toggle parent to be used as the base revision" msgstr "" msgid "List Optio&ns" msgstr "" #, python-format msgid "%s - Revision Details (%s)" msgstr "" #, python-format msgid "Revert - %s" msgstr "" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "" msgid "Revert all files to this revision" msgstr "" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "" msgid "null revision (i.e. remove file(s))" msgstr "" msgid "Changeset:" msgstr "" msgid "Child:" msgstr "" msgid "Predecessors:" msgstr "" msgid "Successors:" msgstr "" msgid "Head is closed!" msgstr "" msgid "Changesets where username contains string." msgstr "" msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" msgid "Like \"keyword(string)\" but accepts a regex." msgstr "" msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" msgid "The named bookmark or all bookmarks." msgstr "" msgid "The named tag or all tags." msgstr "" msgid "Changeset is tagged." msgstr "" msgid "Changeset is a named branch head." msgstr "" msgid "Changeset is a merge changeset." msgstr "" msgid "Changeset is closed." msgstr "" msgid "" "Changesets within the interval, see help dates" msgstr "" msgid "Greatest common ancestor of the two changesets." msgstr "" msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" msgid "Changesets which modify files matched by pattern." msgstr "" msgid "Changesets which add files matched by pattern." msgstr "" msgid "Changesets which remove files matched by pattern." msgstr "" msgid "Changesets containing files matched by pattern." msgstr "" msgid "All changesets belonging to the branches of changesets in set." msgstr "" msgid "Members of a set with no children in set." msgstr "" msgid "Changesets which are descendants of changesets in set." msgstr "" msgid "Changesets that are ancestors of a changeset in set." msgstr "" msgid "Child changesets of changesets in set." msgstr "" msgid "The set of all parents for all changesets in set." msgstr "" msgid "First parent for all changesets in set, or the working directory." msgstr "" msgid "Second parent for all changesets in set, or the working directory." msgstr "" msgid "Changesets with no parent changeset in set." msgstr "" msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" msgid "Changeset with lowest revision number in set." msgstr "" msgid "Changeset with highest revision number in set." msgstr "" msgid "First n members of a set." msgstr "" msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "" msgid "All changesets, the same as 0:tip." msgstr "" msgid "Revision Set Query" msgstr "" msgid "all revisions converted from subversion" msgstr "" msgid "changeset which represents converted svn revision" msgstr "" msgid "Common sets" msgstr "" msgid "File pattern sets" msgstr "" msgid "Set Ancestry" msgstr "" msgid "Set Logic" msgstr "" msgid "" "help " "revsets" msgstr "" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" #, python-format msgid "thg: unknown command '%s'\n" msgstr "" #, python-format msgid "thg %s: %s\n" msgstr "" #, python-format msgid "thg: %s\n" msgstr "" #, python-format msgid "abort: %s!\n" msgstr "" #, python-format msgid "abort: %s\n" msgstr "" #, python-format msgid "(%s)\n" msgstr "" msgid "option --config may not be abbreviated!" msgstr "" msgid "invalid arguments" msgstr "arguments invalids" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" msgid "repository root directory or symbolic path name" msgstr "" msgid "enable additional output" msgstr "" msgid "suppress output" msgstr "" msgid "display help and exit" msgstr "" msgid "set/override config option (use 'section.name=value')" msgstr "" msgid "enable debugging output" msgstr "" msgid "start debugger" msgstr "" msgid "print command execution profile" msgstr "" msgid "do not fork GUI process" msgstr "" msgid "always fork GUI process" msgstr "" msgid "read file list from file" msgstr "" msgid "read file list from file encoding utf-8" msgstr "" msgid "thg about" msgstr "" msgid "thg add [FILE]..." msgstr "" msgid "revision to annotate" msgstr "" msgid "open to line" msgstr "" msgid "initial search pattern" msgstr "" msgid "thg annotate" msgstr "" #, python-format msgid "invalid line number: %s" msgstr "" msgid "revision to archive" msgstr "" msgid "thg archive" msgstr "" msgid "merge with old dirstate parent after backout" msgstr "" msgid "parent to choose when backing out merge" msgstr "" msgid "revision to backout" msgstr "" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "" msgid "thg bisect" msgstr "" msgid "revision" msgstr "" msgid "thg bookmarks [-r REV] [NAME]" msgstr "" msgid "only one new bookmark name allowed" msgstr "" msgid "the clone will include an empty working copy (only a repository)" msgstr "" msgid "revision, tag or branch to check out" msgstr "" msgid "include the specified changeset" msgstr "" msgid "clone only the specified branch" msgstr "" msgid "use pull protocol to copy metadata" msgstr "" msgid "use uncompressed transfer (fast over LAN)" msgstr "" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "" msgid "record user as committer" msgstr "" msgid "record datecode as commit date" msgstr "" msgid "thg commit [OPTIONS] [FILE]..." msgstr "" msgid "thg debugblockmatcher" msgstr "" msgid "thg debugbugreport [TEXT]" msgstr "" msgid "thg debugconsole" msgstr "" msgid "thg debuglighthg" msgstr "" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "" msgid "no command specified" msgstr "" msgid "thg drag_copy SOURCE... DEST" msgstr "" msgid "thg drag_move SOURCE... DEST" msgstr "" msgid "a revision to send" msgstr "" msgid "thg email [REVS]" msgstr "" msgid "use only one form to specify the revision" msgstr "" msgid "select the specified revision" msgstr "" msgid "side-by-side comparison of revisions" msgstr "" msgid "thg filelog [OPTION]... FILE" msgstr "" msgid "requires a single filename" msgstr "" msgid "thg forget [FILE]..." msgstr "" msgid "revisions to graft" msgstr "" msgid "thg graft [-r] REV..." msgstr "" msgid "You must provide revisions to graft" msgstr "" msgid "ignore case during search" msgstr "" msgid "thg grep" msgstr "" msgid "thg guess" msgstr "" msgid "thg help [COMMAND]" msgstr "" msgid "global options:" msgstr "opcions globalas :" msgid "use \"thg help\" for the full list of commands" msgstr "" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "" msgid "" "list of commands:\n" "\n" msgstr "" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" "\n" "aliàs : %s\n" msgid "(no help text available)" msgstr "" msgid "options:\n" msgstr "opcions :\n" msgid "no commands defined\n" msgstr "" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "" msgid "" "basic commands:\n" "\n" msgstr "" #, python-format msgid " (default: %s)" msgstr "" msgid "thg hgignore [FILE]" msgstr "" msgid "import to the patch queue (MQ)" msgstr "" msgid "thg import [OPTION] [SOURCE]..." msgstr "" msgid "thg init [DEST]" msgstr "" msgid "thg lock" msgstr "" msgid "search for a given text or revset" msgstr "" msgid "(DEPRECATED)" msgstr "" msgid "open a new workbench window" msgstr "" msgid "thg log [OPTIONS] [FILE]" msgstr "" msgid "cannot specify both -k/--query and filenames" msgstr "" msgid "revision to display" msgstr "" msgid "thg manifest [-r REV] [FILE]" msgstr "" msgid "revision to merge" msgstr "" msgid "thg merge [[-r] REV]" msgstr "" msgid "Merge revision not specified or not found" msgstr "" msgid "a revision to post" msgstr "" msgid "thg postreview [-r] REV..." msgstr "" msgid "reviewboard extension not enabled" msgstr "" #, python-format msgid "see %(url)s" msgstr "" msgid "no revisions specified" msgstr "" msgid "revisions to prune" msgstr "" msgid "thg prune [-r] REV..." msgstr "" msgid "thg purge" msgstr "" msgid "keep original changesets" msgstr "" msgid "keep original branch names" msgstr "" msgid "rebase from the specified changeset" msgstr "" msgid "rebase onto the specified changeset" msgstr "" msgid "thg rebase -s REV -d REV [--keep]" msgstr "" msgid "Rebase already in progress" msgstr "" msgid "Resuming rebase already in progress" msgstr "" msgid "You must provide source and dest arguments" msgstr "" msgid "thg rejects [FILE]" msgstr "" msgid "You must provide the path to a file" msgstr "" msgid "thg remove [FILE]..." msgstr "" msgid "thg rename [SOURCE] [DEST]" msgstr "" msgid "field to give initial focus" msgstr "" msgid "thg repoconfig" msgstr "" msgid "thg resolve" msgstr "" msgid "the revision to show" msgstr "" msgid "thg revdetails [-r REV]" msgstr "" msgid "thg revert [FILE]..." msgstr "" msgid "revision to update" msgstr "" msgid "thg rupdate [[-r] REV]" msgstr "" msgid "name of the hgweb config file (serve more than one repository)" msgstr "" msgid "name of the hgweb config file (DEPRECATED)" msgstr "" msgid "thg serve [--web-conf FILE]" msgstr "" msgid "thg shellconfig" msgstr "" msgid "thg shelve" msgstr "" msgid "sign even if the sigfile is modified" msgstr "" msgid "make the signature local" msgstr "" msgid "the key id to sign with" msgstr "" msgid "do not commit the sigfile after signing" msgstr "" msgid "use as commit message" msgstr "" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "" msgid "Please enable the Gpg extension first." msgstr "" msgid "show files without changes" msgstr "" msgid "show ignored files" msgstr "" msgid "thg status [OPTIONS] [FILE]" msgstr "" msgid "discard uncommitted changes (no backup)" msgstr "" msgid "do not back up stripped revisions" msgstr "" msgid "do not modify working copy during strip" msgstr "" msgid "revision to strip" msgstr "" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "" msgid "open the bookmark sync window" msgstr "" msgid "thg sync [OPTION]... [PEER]" msgstr "" msgid "replace existing tag" msgstr "" msgid "make the tag local" msgstr "" msgid "revision to tag" msgstr "" msgid "remove a tag" msgstr "" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "" msgid "wait until the second ticks over" msgstr "" msgid "notify the shell for paths given" msgstr "" msgid "remove the status cache" msgstr "" msgid "show the contents of the status cache (no update)" msgstr "" msgid "update all repos in current dir" msgstr "" msgid "thg thgstatus [OPTION]" msgstr "" msgid "thg topics [-r REV] [NAME]" msgstr "" msgid "Please enable the Topic extension first." msgstr "" msgid "only one new topic name allowed" msgstr "" msgid "thg update [-C] [[-r] REV]" msgstr "" msgid "thg userconfig" msgstr "" msgid "changeset to view in diff tool" msgstr "" msgid "revisions to view in diff tool" msgstr "" msgid "bundle file to preview" msgstr "" msgid "launch visual diff tool" msgstr "" msgid "print license" msgstr "" msgid "thg version [OPTION]" msgstr "" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "" msgid "Location:" msgstr "" msgid "Update to:" msgstr "" msgid "Options:" msgstr "Opcions :" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "" msgid "Perform a push before updating (-p/--push)" msgstr "" msgid "Allow pushing new branches (--new-branch)" msgstr "" msgid "Force push to remote location (-f/--force)" msgstr "" msgid "remove working directory" msgstr "" msgid "unknown revision!" msgstr "" #, python-format msgid "Remote Update - %s" msgstr "" msgid "&Update" msgstr "" msgid "Log" msgstr "" msgid "Repositories" msgstr "" #, python-format msgid "Running at %s" msgstr "" msgid "Stopped" msgstr "" msgid "TortoiseHg Web Server" msgstr "" msgid "Web Server" msgstr "Servidor Web" msgid "Port:" msgstr "" msgid "Status:" msgstr "" msgid "Start" msgstr "Aviar" msgid "Settings" msgstr "Paramètres" msgid "" msgstr "" msgid "&True" msgstr "" msgid "&False" msgstr "" msgid "&Unspecified" msgstr "" #, python-format msgid "%dpt" msgstr "" msgid "Bold" msgstr "" msgid "Italic" msgstr "" msgid "Strike" msgstr "" msgid "Underline" msgstr "" msgid "&Set..." msgstr "" msgid "&Clear" msgstr "" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "" msgid "&Browse..." msgstr "" msgid "UI Language" msgstr "" msgid "Specify your preferred user interface language (restart needed)" msgstr "" msgid "Three-way Merge Tool" msgstr "" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" msgid "Visual Diff Tool" msgstr "" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" msgid "Visual Editor" msgstr "" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" msgid "CLI Editor" msgstr "" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" msgid "Shell" msgstr "" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
                                                                        Default, Windows: cmd.exe /" "K title %(reponame)s
                                                                        Default, OS X: not set
                                                                        Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" msgid "Immediate Operations" msgstr "" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" msgid "Tab Width" msgstr "Largor de las tabulacions" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" msgid "Force Repo Tab" msgstr "" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "" msgid "Monitor Repo Changes" msgstr "" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" msgid "Max Diff Size" msgstr "" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" msgid "Fork GUI" msgstr "" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" msgid "Full Path Title" msgstr "" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" msgid "Auto-resolve merges" msgstr "" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" msgid "New Repo Skeleton" msgstr "" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "" msgid "Single Workbench Window" msgstr "" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" msgid "Default widget" msgstr "" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" msgid "" "Open new tabs next\n" "to the current tab" msgstr "" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" msgid "Author Coloring" msgstr "" msgid "Color changesets by author name. Default: False" msgstr "" msgid "Full Authorname" msgstr "" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" msgid "Task Tabs" msgstr "" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" msgid "Task Toolbar Order" msgstr "" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
                                                                        Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
                                                                        Valid names are: log commit sync grep and " "pbranch.
                                                                        Default: log commit grep pbranch | sync" msgstr "" msgid "Long Summary" msgstr "" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" msgid "Log Batch Size" msgstr "" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "" msgid "Dead Branches" msgstr "" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" msgid "Branch Colors" msgstr "" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" msgid "Hide Tags" msgstr "" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" msgid "Activate Bookmarks" msgstr "" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

                                                                        • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
                                                                        • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
                                                                        • never: Never show any prompt to " "activate any bookmarks.

                                                                        Default: prompt" msgstr "" msgid "Show Family Line" msgstr "" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

                                                                        Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" msgid "Use optimized graph layouter" msgstr "" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

                                                                        Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" msgctxt "config item" msgid "Commit" msgstr "" msgid "Username" msgstr "Nom d'utilizaire" msgid "" "Name associated with commits. The common format is:
                                                                        Full Name <" "email@example.com>" msgstr "" msgid "Ask Username" msgstr "" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" msgid "Summary Line Length" msgstr "" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" msgid "Close After Commit" msgstr "" msgid "Close the commit tool after every successful commit. Default: False" msgstr "" msgid "Push After Commit" msgstr "" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" msgid "Auto Commit List" msgstr "" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" msgid "Auto Exclude List" msgstr "" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" msgid "English Messages" msgstr "" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" msgid "New Commit Phase" msgstr "" msgid "The phase of new commits. Default: draft" msgstr "" msgid "Secret MQ Patches" msgstr "" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "" msgid "Check Subrepo Phase" msgstr "" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" msgid "Monitor working
                                                                        directory changes" msgstr "" msgid "" "Select when the working directory status list will be refreshed:
                                                                        - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
                                                                        TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
                                                                        - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
                                                                        - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
                                                                        Default: auto" msgstr "" msgid "Confirm adding unknown files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Confirm deleting files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Sync" msgstr "" msgid "After Pull Operation" msgstr "" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" msgid "Default Push" msgstr "" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

                                                                        • all: The default. Push all changes in all " "branches.
                                                                        • branch: Push all changes in the current branch.
                                                                        • revision: Push the changes in the current branch up to the current revision.

                                                                        Default: all" msgstr "" msgid "Confirm Push" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" msgid "Target Combo" msgstr "" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

                                                                        • auto: The default. Show the combo if more than one target " "configured.
                                                                        • always: Always show the combo.

                                                                        Default: auto" msgstr "" msgid "SSH Command" msgstr "" msgid "" "Command to use for SSH connections.

                                                                        Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" msgid "Subrepository Features:" msgstr "" msgid "Allow Hg Subrepos" msgstr "" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" msgid "Allow Git Subrepos" msgstr "" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

                                                                        See the security note before enabling Git " "subrepos." msgstr "" msgid "Allow SVN Subrepos" msgstr "" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

                                                                        See the security note before enabling " "Subversion subrepos." msgstr "" msgid "Server" msgstr "" msgid "Repository Details:" msgstr "" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" msgid "Encoding" msgstr "Encodatge" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" msgid "'Publishing' repository" msgstr "" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" msgid "Web Server:" msgstr "" msgid "Textual description of the repository's purpose or contents." msgstr "" msgid "Contact" msgstr "Contacte" msgid "Name or email address of the person in charge of the repository." msgstr "" msgid "Style" msgstr "Estil" msgid "Which template map style to use" msgstr "" msgid "Archive Formats" msgstr "" msgid "Comma separated list of archive formats allowed for downloading" msgstr "" msgid "Port" msgstr "Pòrt" msgid "Port to listen on" msgstr "" msgid "Push Requires SSL" msgstr "" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" msgid "Stripes" msgstr "" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" msgid "Max Files" msgstr "" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "" msgid "Max Changes" msgstr "" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "" msgid "Allow Push" msgstr "" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" msgid "Deny Push" msgstr "" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" msgid "Proxy" msgstr "Servidor mandatari (proxy)" msgid "Host" msgstr "Òste" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "" msgid "Bypass List" msgstr "" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "" msgid "Optional. User name to authenticate with at the proxy server" msgstr "" msgid "Password" msgstr "Senhal" msgid "Optional. Password to authenticate with at the proxy server" msgstr "" msgid "From" msgstr "De" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "" msgid "To" msgstr "A" msgid "Comma-separated list of recipient email addresses" msgstr "" msgid "Cc" msgstr "Cc" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "" msgid "Bcc" msgstr "Cci" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "" msgid "method" msgstr "metòde" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" msgid "SMTP Host" msgstr "" msgid "Host name of mail server" msgstr "" msgid "SMTP Port" msgstr "" msgid "Port to connect to on mail server. Default: 25" msgstr "" msgid "SMTP TLS" msgstr "" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "" msgid "SMTP Username" msgstr "" msgid "Username to authenticate to mail server with" msgstr "" msgid "SMTP Password" msgstr "Senhal SMTP" msgid "Password to authenticate to mail server with" msgstr "" msgid "Local Hostname" msgstr "" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "" msgid "Diff and Annotate" msgstr "" msgid "Patch EOL" msgstr "" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" msgid "Git Format" msgstr "" msgid "Use git extended diff header format. Default: False" msgstr "" msgid "MQ Git Format" msgstr "" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" msgid "No Dates" msgstr "Pas de datas" msgid "Do not include modification dates in diff headers. Default: False" msgstr "" msgid "Show Function" msgstr "" msgid "Show which function each change is in. Default: False" msgstr "" msgid "Ignore White Space" msgstr "" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "" msgid "Ignore WS Amount" msgstr "" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "" msgid "Ignore Blank Lines" msgstr "" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "" msgid "Annotate:" msgstr "" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "" msgid "Fonts" msgstr "" msgid "Message Font" msgstr "" msgid "Font used to display commit messages. Default: monospace 10" msgstr "" msgid "Diff Font" msgstr "" msgid "Font used to display text differences. Default: monospace 10" msgstr "" msgid "ChangeLog Font" msgstr "" msgid "Font used to display changelog data. Default: monospace 10" msgstr "" msgid "Output Font" msgstr "" msgid "Font used to display output messages. Default: sans 8" msgstr "" msgid "Extensions" msgstr "" msgid "Tools" msgstr "" msgid "Hooks" msgstr "" msgid "Issue Tracking" msgstr "" msgid "Issue Regex" msgstr "" msgid "Defines the regex to match when picking up issue numbers." msgstr "" msgid "Issue Link" msgstr "" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" msgid "Inline Tags" msgstr "" msgid "Show tags at start of commit message." msgstr "" msgid "Mandatory Issue Reference" msgstr "" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" msgid "Issue Tracker Plugin" msgstr "" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" msgid "Configure Issue Tracker" msgstr "" msgid "Configure the selected COM Bug Tracker plugin." msgstr "" msgid "Issue Tracker Trigger" msgstr "" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

                                                                        • never: Do not update the Issue Tracker " "state automatically.
                                                                        • commit: Update the Issue Tracker state after " "a successful commit.

                                                                        Default: never" msgstr "" msgid "Changeset Link" msgstr "" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
                                                                        The template string " "uses a normal mercurial template syntax, such as:

                                                                        • {node|short} : replaced by " "the 12 digit revision id.
                                                                        • {rev} : replaced by the revision number." "
                                                                        • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
                                                                        For example, in order to " "link to bitbucket commit pages you can set this to:
                                                                        https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
                                                                        You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
                                                                        https://github.com/torvalds/" "linux/commit/{gitnode}
                                                                        https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
                                                                        " msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "" msgid "User name to authenticate with review board" msgstr "" msgid "Password to authenticate with review board" msgstr "" msgid "Server Repository ID" msgstr "" msgid "The default repository id for this repo on the review board server" msgstr "" msgid "Target Groups" msgstr "" msgid "A comma separated list of target groups" msgstr "" msgid "Target People" msgstr "" msgid "A comma separated list of target people" msgstr "" msgid "Kiln Bfiles" msgstr "" msgid "Patterns" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" msgid "Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" msgid "System Cache" msgstr "" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "" msgid "Simplelock" msgstr "" msgid "Lock Clone" msgstr "" msgid "" "Location of local clone of organizational lock repository.

                                                                        This repository " "must contain a \"locked\" text file" msgstr "" msgid "Largefiles" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" msgid "Minimum Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" msgid "User Cache" msgstr "" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" msgid "Projrc" msgstr "" msgid "Require confirmation" msgstr "" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

                                                                        • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
                                                                        • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
                                                                        • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
                                                                        " msgstr "" msgid "Servers" msgstr "" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" msgid "Include" msgstr "" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" msgid "Exclude" msgstr "" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" msgid "Update on incoming" msgstr "" msgid "" "Let the user update the projrc on incoming:
                                                                        • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
                                                                        • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
                                                                        • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                                                                          Default: never" msgstr "" msgid "GnuPG" msgstr "" msgid "Specify the path to GPG. Default: gpg" msgstr "" msgid "Key ID" msgstr "" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "" msgid "TortoiseHg Settings" msgstr "" msgid "Iniparse package not found" msgstr "" msgid "Can't change settings without iniparse package - view is readonly." msgstr "" #, python-format msgid "%s's global settings" msgstr "" msgid "No repository found" msgstr "" msgid "no repo at " msgstr "" #, python-format msgid "%s project settings (.hg/projrc)" msgstr "" #, python-format msgid "%s repository settings" msgstr "" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "" msgid "Apply changes before exit?" msgstr "" msgid "&No (discard changes)" msgstr "" msgid "Reload" msgstr "" msgid "Settings File:" msgstr "" msgid "Confirm Save" msgstr "" msgid "Save changes before editing?" msgstr "" msgid "&Save" msgstr "" msgid "Confirm Reload" msgstr "" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" msgid "Unable to create a Mercurial.ini file" msgstr "" msgid "Insufficient access rights, reverting to read-only mode." msgstr "" msgid "Context Menu" msgstr "Menut contextual" msgid "Top menu items:" msgstr "" msgid "Sub menu items:" msgstr "" msgid "Menu Behavior" msgstr "" msgid "Hide context menu outside repositories" msgstr "" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" msgid "Icons" msgstr "" msgid "Overlays" msgstr "" msgid "Enabled overlays" msgstr "" msgid "Local disks only" msgstr "" msgid "Enabled Overlay Handlers" msgstr "" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "" msgid "Added" msgstr "" msgid "Locked*" msgstr "" msgid "Ignored*" msgstr "" msgid "Unversioned" msgstr "" msgid "Readonly*" msgstr "" msgid "Deleted*" msgstr "" msgid "*: not used by TortoiseHg" msgstr "" msgid "Taskbar" msgstr "Barra dels prètzfaches" msgid "Show Icon" msgstr "Afichar una icòna" msgid "Highlight Icon" msgstr "" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" msgid "Explorer Extension Settings - TortoiseHg" msgstr "" msgid "Clear" msgstr "" msgid "Clear the current shelf file" msgstr "" msgid "Delete the current shelf file" msgstr "" msgid "Left Toolbar" msgstr "" msgid "Delete selected chunks" msgstr "" msgid "Move all files right" msgstr "" msgid "Move selected file right" msgstr "" msgid "Edit file" msgstr "" msgid "Move selected chunks right" msgstr "" msgid "Refresh Toolbar" msgstr "" msgid "Refresh" msgstr "Refrescar" msgid "New Shelf" msgstr "" msgid "Right Toolbar" msgstr "" msgid "Move selected chunks left" msgstr "" msgid "Move selected file left" msgstr "" msgid "Move all files left" msgstr "" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "" msgid "Delete selected chunks from working copy?" msgstr "" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "" msgid "Are you sure?" msgstr "" msgid "TortoiseHg New Shelf Name" msgstr "" msgid "Specify name of new shelf" msgstr "" msgid "Bad filename" msgstr "" #, python-format msgid "A shelf name cannot contain %s" msgstr "" msgid "File already exists" msgstr "" msgid "A shelf file of that name already exists" msgstr "" msgid "New shelf created" msgstr "" #, python-format msgid "Delete shelf file %s?" msgstr "" msgid "Shelf deleted" msgstr "" msgid "Revert all working copy changes?" msgstr "" #, python-format msgid "Clear contents of shelf file %s?" msgstr "" msgid "Shelf cleared" msgstr "" #, python-format msgid "Shelf: %s" msgstr "" #, python-format msgid "Patch: %s" msgstr "" msgid "Key:" msgstr "" msgid "Local sign" msgstr "" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "" msgid "No commit" msgstr "" msgid "Use custom commit message:" msgstr "" msgid "&Sign" msgstr "" #, python-format msgid "Sign - %s" msgstr "" msgid "Signature has been added" msgstr "" msgid "Repository command still running" msgstr "" msgid "Filter:" msgstr "" msgid "Check all files" msgstr "" msgid "Uncheck all files" msgstr "" msgid "Status File List Toolbar" msgstr "" msgid "Remove filter, show root" msgstr "" #, python-format msgid "%s - status (selection filtered)" msgstr "" #, python-format msgid "%s - status" msgstr "" msgid "Check" msgstr "" msgid "Uncheck" msgstr "" msgid "status" msgstr "estat" msgid "Failed to refresh" msgstr "" msgid "No appropriate files" msgstr "" msgid "No files found for this operation" msgstr "" msgid "Stat" msgstr "" msgid "M" msgstr "" msgid "Filename" msgstr "Nom del fichièr" msgid "Size (KB)" msgstr "" #, python-format msgid "Checked count: %d" msgstr "" msgid ", resolved merge" msgstr "" msgid ", unresolved merge" msgstr "" #, python-format msgid "%s is modified" msgstr "" msgid "modified" msgstr "modificat" #, python-format msgid "%s is added" msgstr "" msgid "added" msgstr "apondut" #, python-format msgid "%s is removed" msgstr "" msgid "removed" msgstr "suprimit" #, python-format msgid "%s is not tracked (unknown)" msgstr "" msgid "unknown" msgstr "desconegut" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "" msgid "missing" msgstr "" #, python-format msgid "%s is ignored" msgstr "" msgid "ignored" msgstr "ignorat" #, python-format msgid "%s is not modified (clean)" msgstr "" msgid "clean" msgstr "" #, python-format msgid "%s is a dirty subrepo" msgstr "" msgid "subrepo" msgstr "" msgid "Check for incoming changes from selected URL" msgstr "" msgid "Pull incoming changes from selected URL" msgstr "" msgid "Detect outgoing changes to selected URL" msgstr "" msgid "Push outgoing changes to selected URL" msgstr "" msgid "Sync Bookmarks" msgstr "" msgid "Email outgoing changesets for remote repository" msgstr "" msgid "Manage pending perforce changelists" msgstr "" msgid "Unbundle" msgstr "" msgid "Selected Options:" msgstr "" msgid "Path Edit Toolbar" msgstr "" msgid "Security" msgstr "" msgid "Manage HTTPS connection security and user authentication" msgstr "" msgid "Save" msgstr "" msgid "Save current URL under an alias" msgstr "" msgid "Paths in Repository Settings:" msgstr "" msgid "Related Paths:" msgstr "" msgid "branch: " msgstr "" msgid "bookmark: " msgstr "" #, python-format msgid "rev: %d (%s)" msgstr "" msgid "Post Pull: " msgstr "" msgid "&Edit..." msgstr "" msgid "&Remove..." msgstr "" msgid "Repository not local" msgstr "" msgid "A terminal shell cannot be opened for remote" msgstr "" msgid "Confirm path delete" msgstr "" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "" msgid "Select repository" msgstr "" msgid "No host specified" msgstr "" msgid "Please set a valid URL to continue." msgstr "" msgid "No remote repository URL or path set" msgstr "" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

                                                                          Please type and save a remote repository path on the " "Sync widget." msgstr "" msgid "Redundant authentication info" msgstr "" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" msgid "sync command already running" msgstr "" #, python-format msgid "Getting incoming changesets from %s..." msgstr "" #, python-format msgid "Found incoming changesets from %s" msgstr "" #, python-format msgid "No incoming changesets from %s" msgstr "" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "" #, python-format msgid "Pulling from %s..." msgstr "" #, python-format msgid "Pull from %s completed" msgstr "" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "" msgid "Merge caused file conflicts" msgstr "" msgid "File conflicts need to be resolved" msgstr "" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "" #, python-format msgid "%d outgoing changesets to %s" msgstr "" #, python-format msgid "No outgoing changesets to %s" msgstr "" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "" msgid "Perforce pending..." msgstr "" #, python-format msgid "%s (submitted)" msgstr "" #, python-format msgid "%s (pending)" msgstr "" msgid "Unable to parse p4pending output" msgstr "" #, python-format msgid "%d pending changelists found" msgstr "" msgid "No pending Perforce changelists" msgstr "" msgid "Aborted p4pending" msgstr "" msgid "Unable to determine pending changesets" msgstr "" msgid "Confirm Push to remote Repository" msgstr "" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" #, python-format msgid "Push to %s aborted" msgstr "" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" #, python-format msgid "Pushing to %s..." msgstr "" #, python-format msgid "Push to %s completed" msgstr "" #, python-format msgid "Push to %s aborted, ret %d" msgstr "" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" msgid "Determining outgoing changesets to email..." msgstr "" msgid "No outgoing changesets" msgstr "" #, python-format msgid "Outgoing aborted, ret %d" msgstr "" msgid "Select bundle file" msgstr "" msgid "Bundle files (*.hg)" msgstr "" msgid "Unable to remove URL" msgstr "" msgid "Post Pull Behavior" msgstr "" msgid "Select post-pull operation for this repository" msgstr "" msgid "None - simply pull changesets" msgstr "" msgid "Update - pull, then try to update" msgstr "" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "" msgid "Rebase - rebase local commits above pulled changes" msgstr "" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "" msgid "Launch settings tool..." msgstr "" msgid "Unable to save post pull operation" msgstr "" msgid "Save Path" msgstr "" msgid "Alias" msgstr "Aliàs" msgid "URL" msgstr "Adreça Internet" msgid "Remove authentication data from URL" msgstr "" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" msgid "Update subrepo paths" msgstr "" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" msgid "Unable to save an URL" msgstr "" msgid "Confirm URL replace" msgstr "" #, python-format msgid "%s already exists, replace URL?" msgstr "" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

                                                                          %s

                                                                          Replace it with the " "following URL?:

                                                                          %s" msgstr "" msgid "Security: " msgstr "" #, python-format msgid "Host: %s" msgstr "" msgid "Secure HTTPS Connection" msgstr "" msgid "Verify with Certificate Authority certificates (best)" msgstr "" msgid "Verify with stored host fingerprint (good)" msgstr "" msgid "No host validation, but still encrypted (bad)" msgstr "" msgid "### host certificate fingerprint ###" msgstr "" msgid "Query" msgstr "" msgid "TLS 1.0" msgstr "" msgid "TLS 1.1" msgstr "" msgid "TLS 1.2" msgstr "" msgid "Minimum Protocol" msgstr "" msgid "User Authentication" msgstr "" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Key" msgstr "" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Chain" msgstr "" msgid "Certificate Query Error" msgstr "" msgid "Select User Certificate Key File" msgstr "" msgid "PEM files (*.pem *.key)" msgstr "" msgid "Select User Certificate Chain File" msgstr "" msgid "PEM files (*.pem *.crt *.cer)" msgstr "" msgid "Unable to save authentication" msgstr "" #, python-format msgid "%s - sync options" msgstr "" msgid "Allow push of a new branch (--new-branch)" msgstr "" msgid "Force push or pull (override safety checks, --force)" msgstr "" msgid "Temporarily disable configured HTTP proxy" msgstr "" msgid "Emit debugging output (--debug)" msgstr "" msgid "Work on patch queue (--mq)" msgstr "" #, python-format msgid "Tag - %s" msgstr "" msgid "Tag:" msgstr "Etiqueta :" msgid "Tagged:" msgstr "" msgid "Local tag" msgstr "" msgid "Replace existing tag (-f/--force)" msgstr "" msgid "Use English commit message" msgstr "" msgid "local" msgstr "locala" msgid "Move" msgstr "Desplaçar" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "" #, python-format msgid "Added tag %s for changeset %s" msgstr "" #, python-format msgid "Tag '%s' has been moved" msgstr "" #, python-format msgid "Tag '%s' has been added" msgstr "" #, python-format msgid "Removed tag %s" msgstr "" #, python-format msgid "Tag '%s' has been removed" msgstr "" msgid "Patch files (*.diff *.patch)" msgstr "" #, python-format msgid "Import - %s" msgstr "Importacion - %s" msgid "Browse Directory..." msgstr "" msgid "Import from Clipboard" msgstr "" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "" msgid "Preview:" msgstr "Apercebut :" msgid "Shelf" msgstr "" msgid "Checking working directory status..." msgstr "" msgid "&Import" msgstr "" msgid "Working directory is not clean! View changes..." msgstr "" msgid "Select patches" msgstr "" msgid "Select Directory containing patches" msgstr "" #, python-format msgid "%s patches" msgstr "" #, python-format msgid "%s will be imported to " msgstr "" msgid "Nothing to import" msgstr "" msgid "Strip:" msgstr "" msgid "Discard local changes, no backup (-f/--force)" msgstr "" msgid "No backup (-n/--nobackup)" msgstr "" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "" msgstr[1] "" msgid "Unknown revision!" msgstr "" msgid "Detected uncommitted local changes." msgstr "" msgid "Do you want to keep them or discard them?" msgstr "" msgid "&Keep (--keep)" msgstr "" msgid "&Discard (--force)" msgstr "" msgid "Confirm Strip" msgstr "" #, python-format msgid "Strip - %s" msgstr "" msgid "&Strip" msgstr "" msgid "Topic:" msgstr "" msgid "&Rename" msgstr "" #, python-format msgid "Topic - %s" msgstr "" #, python-format msgid "A topic named \"%s\" already exists" msgstr "" #, python-format msgid "Topic '%s' has been added" msgstr "" #, python-format msgid "Topic '%s' does not exist" msgstr "" #, python-format msgid "Topic '%s' has been removed" msgstr "" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "" msgid "Parent 1:" msgstr "Parent 1 :" msgid "Parent 2:" msgstr "Parent 2 :" msgid "Pull subrepos from:" msgstr "" msgid "List updated files (--verbose)" msgstr "" msgid "Discard local changes, no backup (-C/--clean)" msgstr "" msgid "Always merge (when possible)" msgstr "" msgid "(same as parent)" msgstr "" msgid "Activate bookmark?" msgstr "" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

                                                                          Do " "you want to activate it?
                                                                          You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

                                                                          Select " "the bookmark that you want to activate and click OK.

                                                                          Click " "Cancel if you don't want to activate any of them.

                                                                          You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                                          " msgstr "" msgid "Deactivate current bookmark?" msgstr "" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" msgid "Discard - discard local changes, no backup" msgstr "" msgid "&Shelve" msgstr "" msgid "Shelve - move local changes to a patch" msgstr "" msgid "Merge - allow to merge with local changes" msgstr "" msgid "Confirm Update" msgstr "" #, python-format msgid "Update - %s" msgstr "" msgid "[non-existant]" msgstr "" msgid "Tool launch failure" msgstr "" #, python-format msgid "%s : %s" msgstr "%s : %s" msgid "No diff tool found" msgstr "" msgid "No visual diff tools were detected" msgstr "" msgid "[working copy]" msgstr "" msgid "[original]" msgstr "[original]" msgid "Unable to find changeset" msgstr "" msgid "You likely need to refresh this application" msgstr "" msgid "No file changes" msgstr "" msgid "There are no file changes to view" msgstr "" msgid "working changes" msgstr "" #, python-format msgid "changeset %d:%s" msgstr "" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "" msgid "Visual Diffs - " msgstr "" msgid " filtered" msgstr "" msgid "Temporary files are removed when this dialog is closed" msgstr "" msgid "Select Tool:" msgstr "" msgid "Dir diff to p1" msgstr "" msgid "Dir diff to p2" msgstr "" msgid "3-way dir diff" msgstr "" msgid "Directory diff" msgstr "" msgid "Confirm Discard" msgstr "" msgid "Discard outstanding changes to working directory?" msgstr "" msgid "Config files (*.conf *.config *.ini)" msgstr "" msgid "Open hgweb config" msgstr "" msgid "Save hgweb config" msgstr "" msgid "Path:" msgstr "" msgid "Local Path:" msgstr "" msgid "Select Repository" msgstr "" msgid "Add Path to Serve" msgstr "" msgid "Edit Path to Serve" msgstr "" msgid "Local Path" msgstr "" msgid "Webconf" msgstr "" msgid "Config File:" msgstr "" msgid "Open" msgstr "" msgid "New &Workbench" msgstr "" msgid "&New Repository..." msgstr "" msgid "Clon&e Repository..." msgstr "" msgid "&Open Repository..." msgstr "" msgid "&File" msgstr "" msgid "&View" msgstr "" msgid "&Repository" msgstr "" msgid "&Help" msgstr "" msgid "&Dock Toolbar" msgstr "" msgid "&Task Toolbar" msgstr "" msgid "&Custom Toolbar" msgstr "" msgid "S&ync Toolbar" msgstr "" msgid "&Close Repository" msgstr "" msgid "Sh&ow Repository Registry" msgstr "" msgid "Show &Patch Queue" msgstr "" msgid "Show Conso&le" msgstr "" msgid "Place Console in Doc&k Area" msgstr "" msgid "R&epository Registry Options" msgstr "" msgid "Save Open Repositories on E&xit" msgstr "" msgid "Sa&ve Current Sync Paths on Exit" msgstr "" msgid "Show Tas&k Tab" msgstr "" msgid "&Commit" msgstr "" msgid "&Patch Branch" msgstr "" msgid "Revision &Details" msgstr "" msgid "&Search" msgstr "" msgid "S&ynchronize" msgstr "" msgid "Refresh current repository" msgstr "" msgid "Refresh &Task Tab" msgstr "" msgid "Refresh only the current task tab" msgstr "" msgid "Load &All Revisions" msgstr "" msgid "Load all revisions into graph" msgstr "" msgid "Go to current revision" msgstr "" msgid "&Goto Revision..." msgstr "" msgid "Go to a specific revision" msgstr "" msgid "Filter graph with revision sets or branches" msgstr "" msgid "&Workbench Toolbars" msgstr "" msgid "&Lock File..." msgstr "" msgid "Lock or unlock files" msgstr "" msgid "Update working directory or switch revisions" msgstr "" msgid "&Shelve..." msgstr "" msgid "&Import Patches..." msgstr "" msgid "U&nbundle..." msgstr "" msgid "&Merge..." msgstr "" msgid "Merge with the other head of the current branch" msgstr "" msgid "&Resolve..." msgstr "" msgid "R&ollback/Undo..." msgstr "" msgid "&Purge..." msgstr "" msgid "&Bisect..." msgstr "" msgid "&Verify" msgstr "" msgid "Re&cover" msgstr "" msgid "&Web Server" msgstr "" msgid "E&xplorer Help" msgstr "" msgid "&Readme" msgstr "" msgid "About &Qt" msgstr "" msgid "&About TortoiseHg" msgstr "" msgid "&Incoming" msgstr "" msgid "&Pull" msgstr "" msgid "&Outgoing" msgstr "" msgid "P&ush" msgstr "" msgid "&Sync Bookmarks..." msgstr "" #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" msgid "Check for incoming changes" msgstr "" msgid "Pull incoming changes" msgstr "" msgid "Detect outgoing changes" msgstr "" msgid "Push outgoing changes" msgstr "" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" #, python-format msgid "Execute custom tool '%s'" msgstr "" msgid "Custom Toolbar &Settings" msgstr "" msgid "TortoiseHg Workbench" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "" msgid "Goto revision" msgstr "" msgid "Enter revision identifier" msgstr "" msgid "Select repository directory to open" msgstr "" msgid "README not configured" msgstr "" msgid "" "A README file is not configured for the current repository.

                                                                          To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" msgid "Issue Tracker Plugin Error" msgstr "" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "" msgid "This error will not be shown again until you restart the workbench" msgstr "" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "" msgid "Error executing \"commit finished\" trigger" msgstr "" msgid "Cannot open Plugin Options dialog" msgstr "" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "" msgid "[--insecure] [SOURCE]" msgstr "" #, python-format msgid "unsupported URL: %s" msgstr "" #, python-format msgid "%s certificate error: no certificate received" msgstr "" msgid "move after the specified patch" msgstr "" msgid "[--after PATCH] PATCH..." msgstr "" msgid "unknown patch to move specified" msgstr "" msgid "invalid patch position specified" msgstr "" msgid "cannot move applied patches" msgstr "" #, python-format msgid "patch %s not in series" msgstr "" msgid "cannot move into applied patches" msgstr "" msgid "abort: " msgstr "abandon : " msgid "hint: " msgstr "" #, python-format msgid "HTTP Error: %d (%s)" msgstr "" #, python-format msgid "URLError: %s" msgstr "" msgid "SSL: Server certificate verify failed" msgstr "" #, python-format msgid "SSL: unknown error %s:%s" msgstr "" #, python-format msgid "SSL error: %s" msgstr "" msgid "hgsubversion packaged with thg" msgstr "" msgid "hggit packaged with thg" msgstr "" msgid "inotify is not supported on this platform" msgstr "" msgid "eol is incompatible with win32text" msgstr "" msgid "win32text is incompatible with eol" msgstr "" msgid "hgsubversion is incompatible with perfarce" msgstr "" msgid "perfarce is incompatible with hgsubversion" msgstr "" msgid "Workbench custom toolbar" msgstr "" msgid "Revision details context menu" msgstr "" msgid "Pair selection context menu" msgstr "" msgid "Multiple selection context menu" msgstr "" msgid "Commit context menu" msgstr "" msgid "File context menu (on manifest and revision details)" msgstr "" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" msgid "in the future" msgstr "" msgid "now" msgstr "" #, python-format msgid "command parse error: %s" msgstr "" #, python-format msgid "no matches found: %s" msgstr "" msgid "Commit..." msgstr "" msgid "Commit changes in repository" msgstr "" msgid "Create Repository Here" msgstr "" msgid "Create a new repository" msgstr "" msgid "Clone..." msgstr "" msgid "Create clone here from source" msgstr "" msgid "File Status" msgstr "" msgid "Repository status & changes" msgstr "" msgid "Add Files..." msgstr "" msgid "Add files to version control" msgstr "" msgid "Revert Files..." msgstr "" msgid "Revert file changes" msgstr "" msgid "Forget Files..." msgstr "" msgid "Remove files from version control" msgstr "" msgid "Remove Files..." msgstr "" msgid "Rename File" msgstr "Tornar nomenar lo fichièr" msgid "Rename file or directory" msgstr "" msgid "View change history in repository" msgstr "" msgid "File History" msgstr "" msgid "View change history of selected files" msgstr "" msgid "Shelve Changes" msgstr "" msgid "Move changes between working dir and patch" msgstr "" msgid "Synchronize" msgstr "Sincronizar" msgid "Synchronize with remote repository" msgstr "" msgid "Start web server for this repository" msgstr "" msgid "Update..." msgstr "" msgid "Update working directory" msgstr "" msgid "Update Icons" msgstr "" msgid "Update icons for this repository" msgstr "" msgid "Global Settings" msgstr "Configuracion generala" msgid "Configure user wide settings" msgstr "" msgid "Repository Settings" msgstr "" msgid "Configure repository settings" msgstr "" msgid "Explorer Extension Settings" msgstr "" msgid "Configure Explorer extension" msgstr "" msgid "About TortoiseHg" msgstr "" msgid "Show About Dialog" msgstr "" msgid "Diff to parent" msgstr "" msgid "View changes using GUI diff tool" msgstr "" msgid "Edit Ignore Filter" msgstr "" msgid "Edit repository ignore filter" msgstr "" msgid "Guess Renames" msgstr "" msgid "Detect renames and copies" msgstr "" msgid "Search History" msgstr "Istoric de recèrcas" msgid "Search file revisions for patterns" msgstr "" msgid "DnD Synchronize" msgstr "" msgid "Synchronize with dragged repository" msgstr "" #, python-format msgid "unrecognized response: %s" msgstr "" msgid "password: " msgstr "senhal : " #, python-format msgid "repository %s not found" msgstr "" msgid "win32ill: cannot create window for messages" msgstr "" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "" msgid "win32ill: interrupted while stopping message loop\n" msgstr "" #~ msgid "Archive" #~ msgstr "Archiu" #~ msgid "All Files (*.*)" #~ msgstr "Totes los fichièrs (*.*)" #~ msgid "Old name:" #~ msgstr "Nom ancian :" #~ msgid "path" #~ msgstr "camin" #~ msgid "type" #~ msgstr "tipe" #~ msgid "Clone" #~ msgstr "Clonar" #~ msgid "Advanced options" #~ msgstr "Opcions avançadas" #~ msgid "_View" #~ msgstr "_Afichatge" #~ msgid "Toolbar" #~ msgstr "Barra d'espleches" #~ msgid "_Operations" #~ msgstr "_Operacions" #~ msgid "_Undo" #~ msgstr "An_ullar" #~ msgid "Advanced" #~ msgstr "Avançat" #~ msgid "_Forget" #~ msgstr "_Doblidar" #~ msgid "_Remove" #~ msgstr "_Suprimir" #~ msgid "_Add" #~ msgstr "_Apondre" #~ msgid "Paste _Filenames" #~ msgstr "Empegar los noms de _fichièrs" #~ msgid "Committing changes..." #~ msgstr "Mandadís dels cambiaments..." #~ msgid "Updating..." #~ msgstr "En cors de mesa a jorn..." #~ msgid "New Search" #~ msgstr "Recèrca novèla" #~ msgid "Invalid path" #~ msgstr "Camin invalid" #~ msgid "Error: %s" #~ msgstr "Error : %s" #~ msgid "Invalid regular expression" #~ msgstr "L'expression regulara es invalida." #~ msgid "Search \"%s\"" #~ msgstr "Recèrca \"%s\"" #~ msgid "Search %d" #~ msgstr "Recèrca %d" #~ msgid "Matches" #~ msgstr "Occurréncias" #~ msgid "_Tools" #~ msgstr "_Espleches" #~ msgid "Index" #~ msgstr "Indèx" #~ msgid "Contents" #~ msgstr "Contengut" #~ msgid "_Help" #~ msgstr "_Ajuda" #~ msgid "Select Folder" #~ msgstr "Seleccionar un dorsièr" #~ msgid "All files" #~ msgstr "Totes los fichièrs" #~ msgid "Save File" #~ msgstr "Enregistrar lo fichièr" #~ msgid "Send" #~ msgstr "Mandar" #~ msgid "Test" #~ msgstr "Tèst" #~ msgid "Configure" #~ msgstr "Configurar" #~ msgid "Envelope" #~ msgstr "Envolopa" #~ msgid "Glob:" #~ msgstr "Glob :" #~ msgid "Apply to:" #~ msgstr "Aplicar a :" #~ msgid "Filters" #~ msgstr "Filtratge" #~ msgid "hgtk: %s\n" #~ msgstr "hgtk : %s\n" #~ msgid "hgtk datamine" #~ msgstr "hgtk datamine" #~ msgid "hgtk shelve" #~ msgstr "hgtk shelve" #~ msgid "hgtk recovery" #~ msgstr "hgtk recovery" #~ msgid "hgtk merge" #~ msgstr "hgtk merge" #~ msgid "hgtk synch" #~ msgstr "hgtk synch" #~ msgid "hgtk repoconfig" #~ msgstr "hgtk repoconfig" #~ msgid "hgtk guess" #~ msgstr "hgtk guess" #~ msgid "hgtk userconfig" #~ msgstr "hgtk userconfig" #~ msgid "[-o] CMD" #~ msgstr "[-o] CMD" #~ msgid "Move Up" #~ msgstr "Desplaçar cap amont" #~ msgid "Move Down" #~ msgstr "Desplaçar cap aval" #~ msgid "Columns" #~ msgstr "Colomnas" #~ msgid "hgtk shellconfig" #~ msgstr "hgtk shellconfig" #~ msgid "Keywords" #~ msgstr "Mots clau" #~ msgid "&Reject" #~ msgstr "&Refusar" #~ msgid "&Accept" #~ msgstr "&Acceptar" #~ msgid "Re_fresh" #~ msgstr "Ac_tualizar" #~ msgid "Tags" #~ msgstr "Marcadors" #~ msgid "Identify" #~ msgstr "Identificar" #~ msgid "Branches" #~ msgstr "Brancas" #~ msgid "Pending" #~ msgstr "En espèra" #~ msgid "_Navigate" #~ msgstr "_Navigar" #~ msgid "Filter Bar" #~ msgstr "Barra de Filtre" #~ msgid "Tip" #~ msgstr "Astúcia" #~ msgid "Revision..." #~ msgstr "Revision..." #~ msgid "Push" #~ msgstr "Publicar" #~ msgid "Import..." #~ msgstr "Importar..." #~ msgid "Outgoing" #~ msgstr "Sortent" #~ msgid "Incoming" #~ msgstr "Entrant" #~ msgid "Custom" #~ msgstr "Personalizar" #~ msgid "Configure Paths..." #~ msgstr "Configurar los emplaçaments..." #~ msgid "_Filter" #~ msgstr "_Filtrar" #~ msgid "Submitted" #~ msgstr "Somés(esa)" #~ msgid "Local Date" #~ msgstr "Data Locala" #~ msgid "Branch Name" #~ msgstr "Nom de branca" #~ msgid "UTC Date" #~ msgstr "Data UTC" #~ msgid "Changes" #~ msgstr "Cambiaments" #~ msgid "Summary" #~ msgstr "Resumit" #~ msgid "Age" #~ msgstr "Atge" #~ msgid "merges" #~ msgstr "fusions" #~ msgid "Filter" #~ msgstr "Filtre" #~ msgid "Export" #~ msgstr "Exportar" #~ msgid "_Revert" #~ msgstr "_Restablir" #~ msgid "Tag" #~ msgstr "Marcador" #~ msgid "Reset" #~ msgstr "Reïnicializar" #~ msgid "Fetch" #~ msgstr "Recuperar" #~ msgid "Nothing" #~ msgstr "Pas res" #~ msgid "Reject" #~ msgstr "Refusar" #~ msgid "Importing" #~ msgstr "Importacion" #~ msgid "ID" #~ msgstr "Identificant (ID)" #~ msgid "Undo" #~ msgstr "Anullar" #~ msgid "Failed" #~ msgstr "Fracassat" #~ msgid "Canceled" #~ msgstr "Anullat" #~ msgid "Submit" #~ msgstr "Sometre" #~ msgid "Successfully" #~ msgstr "Succès" #~ msgid "Verify" #~ msgstr "Verificar" #~ msgid "Browse" #~ msgstr "Percórrer..." #~ msgid "Abort: %s\n" #~ msgstr "Abandon : %s\n" #~ msgid "Apply" #~ msgstr "Aplicar" #~ msgid "Save As" #~ msgstr "Enregistrar jos" #~ msgid "View" #~ msgstr "Afichatge" #~ msgid "_Copy..." #~ msgstr "_Copiar..." #~ msgid "_Ignore" #~ msgstr "_Ignorar" #~ msgid "Rename..." #~ msgstr "Tornar nomenar..." #~ msgid "Advanced Options" #~ msgstr "Opcions avançadas" #~ msgid "Bundle (*.hg)" #~ msgstr "Paquet (*.hg)" #~ msgid "Bundle (*)" #~ msgstr "Paquet (*)" #~ msgid "Toolbar Style" #~ msgstr "Estil de la barra d'espleches" #~ msgid "http" #~ msgstr "http" #~ msgid "ssh" #~ msgstr "ssh" #~ msgid "https" #~ msgstr "https" #~ msgid "Folder" #~ msgstr "Dorsièr" #~ msgid "Diff" #~ msgstr "Dif" #~ msgid "_Edit" #~ msgstr "_Edicion" #~ msgid "_Test" #~ msgstr "_Tèst" #~ msgid "History" #~ msgstr "Istoric" #~ msgid "Import" #~ msgstr "Importar" #~ msgid "#" #~ msgstr "#" #~ msgid "Patch" #~ msgstr "Mesa a jorn de : %s" #~ msgid "_Goto" #~ msgstr "_Anar al glife" #~ msgid "_Rename" #~ msgstr "_Tornar nomenar" #~ msgid "_Delete" #~ msgstr "_Suprimir" #~ msgid "Open..." #~ msgstr "Dobrir..." #~ msgid "&Quit" #~ msgstr "&Quitar" #~ msgid " [Ynsfdaq?] " #~ msgstr " [Ynsfdaq?] " #~ msgid " and " #~ msgstr " e " #~ msgid "Select" #~ msgstr "Seleccion" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/pl.po0000644000000000000000000062672314440352353016261 0ustar00rootroot# Polish translation for tortoisehg # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the tortoisehg package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2013-02-27 15:09+0000\n" "Last-Translator: Wagner Bruna \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2019-07-17 05:44+0000\n" "X-Generator: Launchpad (build 19009)\n" msgid "TortoiseHg Overlay Icon Server" msgstr "Serwer nakładek na ikony TortoiseHg" msgid "Exit" msgstr "Zakończ" msgid "About" msgstr "O TortoiseHg" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "" msgid "You can visit our site here" msgstr "Tu możesz odwiedzić naszą stronę" msgid "&License" msgstr "&Licencja" #, python-format msgid "version %s" msgstr "wersja %s" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "z Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "" msgid "License" msgstr "Licencja" msgid "= Working Directory Parent =" msgstr "= Nadzędny Katalog Roboczy =" msgid "Directory of files" msgstr "Folder plików" msgid "Tar archives" msgstr "Archiwa tar" msgid "Uncompressed tar archive" msgstr "Nieskompresowane archiwum tar" msgid "Bzip2 tar archives" msgstr "Archiwa tar bzip2" msgid "Tar archive compressed using bzip2" msgstr "Archiwum tar skompresowane za pomocą bzip2" msgid "Gzip tar archives" msgstr "Archiwa tar gzip" msgid "Tar archive compressed using gzip" msgstr "Archiwum tar skompresowane za pomocą gzip" msgid "Zip archives" msgstr "Zipuj archiwa" msgid "Uncompressed zip archive" msgstr "Nieskompresowane archiwum zip" msgid "Zip archive compressed using deflate" msgstr "Archiwum zip skompresowane za pomocą deflate" msgid "Revision:" msgstr "Rewizja:" msgid "All files in this revision" msgstr "" msgid "Only files modified/created in this revision" msgstr "Tylko pliki zmodyfikowane/utworzone podczas tej rewizji" msgid "Only files modified/created since:" msgstr "" msgid "Archive Content:" msgstr "" msgid "Recurse into subrepositories" msgstr "Rekursywnie w subrepozytoriach" msgid "Browse..." msgstr "Przeglądaj..." msgid "Destination path:" msgstr "Ścieżka docelowa:" msgid "Archive types:" msgstr "Typy archiwów:" msgid "Hg command:" msgstr "Komenda Hg:" msgid "Select Destination Folder" msgstr "Wybierz katalog docelowy" msgid "Select Destination File" msgstr "Wybierz plik docelowy" msgid "All files (*)" msgstr "Wszystkie pliki (*)" msgid "Duplicate Name" msgstr "Powiel nazwę" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "Obiekt docelowy \"%s\" już istnieje jako plik!" msgid "Confirm Overwrite" msgstr "Potwierdź nadpisanie" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" "Katalog \"%s\" nie jest pusty!\n" "\n" "Chcesz go nadpisać?" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" "Plik \"%s\" już istnieje!\n" "\n" "Chcesz go nadpisać?" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "Obiekt docelowy \"%s\" już istnieje jako folder!" #, python-format msgid "Archive - %s" msgstr "Archiwum - %s" msgid "&Archive" msgstr "&Archiwizuj" msgid "Backout requires a parent revision" msgstr "" msgid "Cannot backout change on a different branch" msgstr "Nie można wycofać zmian pochodzących z innej gałęzi" #, python-format msgid "Backout - %s" msgstr "Wycofaj - %s" msgid "Prepare to backout" msgstr "Przygotowanie do wycofania" msgid "Verify backout revision and ensure your working directory is clean." msgstr "" "Weryfikuj wycofywaną rewizję aby upewnić się, że Twój katalog roboczy jest " "czysty." msgid "Backing out a parent revision is a single step operation" msgstr "Wycofywanie nadrzędnej rewizji jest operacją jedno-krokową" msgid "Backout revision" msgstr "Wycofywana rewizja" msgid "Not a head, backout will create a new head!" msgstr "To nie jest head, wycofanie stworzy nowy head!" msgid "Current local revision" msgstr "Aktualne lokalne rewizje" msgid "Working directory status" msgstr "Status kopii roboczej" msgid "Checking..." msgstr "Sprawdzanie..." msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" "Przed wycofaniem, musisz wcommitować, odłożyć do patcha lub odrzucić zmiany." msgid "Automatically resolve merge conflicts where possible" msgstr "Automatycznie rozwiązuj konflikty gdzie to tylko możliwe" msgid "Uncommitted local changes are detected" msgstr "Wykryto niewcommitowane lokalne zmiany" msgid "Clean" msgstr "Gotowa" msgid "Backing out, then merging..." msgstr "Wycofywanie i scalanie..." msgid "All conflicting files will be marked unresolved." msgstr "Wszystkie konfliktowe pliki zostaną oznaczone jako nierozwiązane." msgid "Automatically advance to next page when backout and merge are complete." msgstr "" "Automatycznie przechodź do następnej strony kiedy wycofywanie i scalanie " "zakończone sukcesem." #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" "%d plików z konfliktami scaleń, które muszą być rozwiązane" msgid "No merge conflicts, ready to commit" msgstr "Brak konfliktów scalania, gotowy do wcommitowania" msgid "Commit backout and merge results" msgstr "Wcommituj wycofanie i scal rezultat" msgid "Parents" msgstr "Rodzice" msgid "Working Directory" msgstr "Kopia robocza" msgid "Working Directory (merged)" msgstr "Kopia robocza (scalona)" msgid "Commit message" msgstr "Wcommituj wiadomość" msgid "Skip final confirmation page, close after commit." msgstr "Pomiń ostatnią stronę potwierdzenia, zamknij po commicie." msgid "Backed out changeset: " msgstr "Wycofano pakiet zmian: " msgid "Confirm Discard Message" msgstr "Wiadomość potwierdzenia usunięcia" msgid "Discard current backout message?" msgstr "Usunąć obecną wiadomość wycofania?" msgid "Use English backout message" msgstr "Użyj angielskiej wiadomości dotyczącej wycofania" msgid "Backing out and committing..." msgstr "Wycofywanie i commitowanie..." msgid "Please wait while making backout." msgstr "Proszę poczekać podczas wykonywania wycofania." msgid "Committing..." msgstr "Commitowanie..." msgid "Please wait while committing merged files." msgstr "Proszę poczekać podczas commitowania scalonych plików." msgid "Finished" msgstr "Zakończono" msgid "Backout changeset" msgstr "Wycofaj zestaw zmian" #, python-format msgid "Bisect - %s" msgstr "Bisekcja - %s" msgid "Accept" msgstr "Akceptuj" msgid "Known good revision:" msgstr "Znana dobra rewizja:" msgid "Known bad revision:" msgstr "Znana zła rewizja:" msgid "Discard local changes (revert --all)" msgstr "" msgid "Revision is &Good" msgstr "" msgid "Revision is &Bad" msgstr "" msgid "&Skip this Revision" msgstr "" msgid "Close" msgstr "Zamknij" msgid "Error encountered." msgstr "Napotkano błędy" msgid "Culprit found." msgstr "Winowajca znaleziony" msgid "Revision" msgstr "Rewizja" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "Przetestuj tę rewizję i oznacz jej status (dobra/zła/pomiń)" #, python-format msgid "%s (hint: %s)" msgstr "%s (podpowiedź: %s)" msgid "Bookmark:" msgstr "Zakładka:" msgid "New Name:" msgstr "Nowa nazwa:" msgid "Activate:" msgstr "" msgid "&Add" msgstr "&Dodaj" msgid "Re&name" msgstr "Zmień nazwę" msgid "&Remove" msgstr "Usuń" msgid "&Move" msgstr "Przenieś" #, python-format msgid "Bookmark - %s" msgstr "Zakładka - %s" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "Zakładka o nazwie \"%s\" już istnieje" #, python-format msgid "Bookmark '%s' has been added" msgstr "Zakładka '%s' została dodania" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "Zakładka \"%s\" nie istnieje" #, python-format msgid "Bookmark '%s' has been moved" msgstr "Zakładka '%s' została przeniesiona" #, python-format msgid "Bookmark '%s' does not exist" msgstr "Zakładka '%s' nie istnieje" #, python-format msgid "Bookmark '%s' has been removed" msgstr "Zakładka '%s' została usunięta" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "Zakładka '%s' została nazwana '%s'" msgid "TortoiseHg Bookmark Sync" msgstr "" msgid "Outgoing Bookmarks" msgstr "" msgid "&Push Bookmark" msgstr "" msgid "&Remove Bookmark" msgstr "" msgid "Incoming Bookmarks" msgstr "" msgid "P&ull Bookmark" msgstr "" msgid "R&emove Bookmark" msgstr "" #, python-format msgid "Pushed local bookmark: %s" msgstr "" #, python-format msgid "Pulled remote bookmark: %s" msgstr "" #, python-format msgid "Removed remote bookmark: %s" msgstr "" #, python-format msgid "Removed local bookmark: %s" msgstr "" #, python-format msgid "%s - branch operation" msgstr "%s - operacja na gałęzi" msgid "Select branch of merge commit" msgstr "Wybierz gałąź do scalenia" msgid "Changes take effect on next commit" msgstr "Zmiany odniosą skutek przy następnym commicie" msgid "No branch changes" msgstr "Brak zmian w gałęzi" msgid "Open a new named branch" msgstr "Otwórz nową nazwaną gałąź" msgid "Close current branch" msgstr "Zamknij wybraną gałąź" #, python-format msgid "Please report this bug to our bug tracker" msgstr "" "Proszę zaraportować ten błąd do naszego trackera błędów" msgid "Checking for updates..." msgstr "" msgid "Copy" msgstr "Kopiuj" msgid "Quit" msgstr "Zakończ" msgid "TortoiseHg Bug Report" msgstr "Raport błędu TortoiseHg" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "" msgid "Your TortoiseHg is up to date." msgstr "" msgid "Save error report to" msgstr "Zapisz raport błędu do" msgid "Text files (*.txt)" msgstr "Pliki tekstowe (*.txt)" msgid "Error writing file" msgstr "Błąd przy zapisie pliku" msgid "TortoiseHg Error" msgstr "Błąd TortoiseHg" msgid "" "If you still have trouble, please file a bug report." msgstr "" "Jeśli ciągle masz problem, wyślij nam raport o " "błędzie." msgid "Visual Diff" msgstr "Wizualny Diff" msgid "View file changes in external diff tool" msgstr "Zobacz zmiany w pliku w zewnętrznym narzędziu do diffa" msgid "Edit Local" msgstr "Edytuj lokalny" msgid "Edit current file in working copy" msgstr "Edytuj wybrany plik w kopii roboczej" msgid "Revert to Revision" msgstr "Przywróć do Rewizji" msgid "Revert file(s) to contents at this revision" msgstr "Przywróc zawartość pliku(ów) do tej rewizji" msgid "Patch failed to apply" msgstr "Nieudana próba spatchowania" msgid "Manually resolve rejected chunks?" msgstr "Ręcznie rozwiązać konflikty odrzuconych zmian?" msgid "Edit patched file and rejects?" msgstr "" msgid "No deletable chunks" msgstr "Brak usuwalnych zmian" msgid "Completely remove file from patch?" msgstr "" msgid "Revert all file changes?" msgstr "" msgid "No chunks remain" msgstr "" msgid "file has been deleted, refresh" msgstr "plik został usunięty, odświeżanie" msgid "file has been modified, refresh" msgstr "plik został zmodyfikowany, odświeżanie" msgid "Unable to merge chunks" msgstr "Nie można było scalić zian" msgid "Add or remove patches must be merged in the working directory" msgstr "" msgid "Unable to remove" msgstr "Nie można usunąć" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" "Nie można było usunąć pliku %s,\n" "odmowa dostępu" msgctxt "files" msgid "All" msgstr "Wszystkie" msgctxt "files" msgid "None" msgstr "Żadne" msgid "Toggle display of text search bar" msgstr "Pokazuj pasek wyszukiwania" msgid "Diff Toolbar" msgstr "Pasek Diffa" #, python-format msgid "Chunks selected: %d / %d" msgstr "Wybrane zmiany: %d / %d" msgid "Please wait while the file is opened ..." msgstr "" msgid "Source:" msgstr "Źródło:" msgid "Destination:" msgstr "Cel:" msgid "Options" msgstr "Preferencje" msgid "Clone to revision:" msgstr "Klonuj do rewizji:" msgid "A revision identifier, bookmark, tag or branch name" msgstr "" msgid "Do not update the new working directory" msgstr "Nie aktualizuj nowego katalogu roboczego" msgid "Use pull protocol to copy metadata" msgstr "Użyj protokołu ściągnij do skopiowania danych meta" msgid "Clone with minimal processing" msgstr "" msgid "Include patch queue" msgstr "Załącz kolejkę patchy" msgid "Use proxy server" msgstr "Użyj serwera proxy" msgid "Do not verify host certificate" msgstr "Nie weryfikuj certyfikatów hosta" msgid "Remote command:" msgstr "Komenda zdalna:" msgid "Use largefiles" msgstr "" msgid "Start revision:" msgstr "Początkowa rewizja:" msgid "Select source repository" msgstr "Wybierz repozytorium źródłowe" msgid "Select destination repository" msgstr "Wybierz repozytorium docelowe" msgid "Select patch folder" msgstr "Wybierz folder patcha" #, python-format msgid "Clone - %s" msgstr "Klonowanie - %s" msgid "&Clone" msgstr "Klonuj" msgid "failed to start command\n" msgstr "nie udało się rozpocząć wykonywania komendy\n" msgid "error while running command\n" msgstr "błąd przy wykonywaniu komendy\n" #, python-format msgid "process exited unexpectedly with code %d" msgstr "" #, python-format msgid "failed to encode command: %s" msgstr "" #, python-format msgid "timed out while reading: %r..." msgstr "" msgid "timed out waiting for message" msgstr "" #, python-format msgid "unexpected response on required channel %r" msgstr "" #, python-format msgid "invalid \"hello\" message: %r" msgstr "" msgid "no \"runcommand\" capability" msgstr "" #, python-format msgid "corrupted command result: %r" msgstr "" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "" msgid "Terminated by user" msgstr "Przerwane przez użytkownika" #, python-format msgid "[command terminated by user %s]" msgstr "[komenda przerwana przez użytkownika %s]" #, python-format msgid "[command interrupted %s]" msgstr "[komenda przerwana %s]" #, python-format msgid "[command returned code %d %%s]" msgstr "[komenda zwróciła kod %d %%s]" #, python-format msgid "[command completed successfully %s]" msgstr "[komenda zakończyła się poprawnie %s]" msgid "Running..." msgstr "Wykonywanie..." msgid "Failed!" msgstr "Niepowodzenie!" msgid "Clea&r Log" msgstr "" msgid "TortoiseHg Prompt" msgstr "" msgid "Show Detail" msgstr "" msgid "Hide Detail" msgstr "" msgid "Confirm Exit" msgstr "Potwierdź Wyjście" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" "Polecenie Mercuriala ciągle działa.\n" "Czy na pewno chcesz je przerwać?" msgid "&Run" msgstr "" msgid "TortoiseHg Command Dialog" msgstr "Okno komend TortoiseHg" msgid "Command Error" msgstr "" #, python-format msgid "[Code: %d]" msgstr "" msgid "Merge" msgstr "Scal" #, python-format msgid "Merge with %s" msgstr "Scal z %s" msgid "Patch Name Required" msgstr "Nazwa dla patcha jest wymagana" msgid "You must enter a patch name" msgstr "Musisz podać nazwę patcha" msgctxt "start progress" msgid "Commit" msgstr "Commit" msgctxt "start progress" msgid "MQ Action" msgstr "Akcja MQ" msgctxt "start progress" msgid "Rollback" msgstr "" msgid "Commit Dialog Toolbar" msgstr "" msgid "Branch: " msgstr "Gałąź: " msgid "Copy message" msgstr "Kopiuj wiadomość" msgid "Copy one of the recent commit messages" msgstr "" msgid "Show Issues" msgstr "" msgid "Please wait..." msgstr "Proszę czekać..." #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "Nie można było załadować issue trackera '%s': %s" msgid "Issue Tracker" msgstr "Issue Tracker" msgid "Show Issues..." msgstr "" msgid "Stop" msgstr "Stop" msgid "### patch name ###" msgstr "### nazwa patcha ###" msgid "Commit changes" msgstr "Commituj zmiany" msgid "Commit" msgstr "Commituj" msgid "Amend current revision" msgstr "Koryguj aktualną rewizję" msgid "Amend" msgstr "Koryguj" msgid "Create a new patch" msgstr "Stwórz nowy patch" msgid "QNew" msgstr "QNowy" msgid "Refresh current patch" msgstr "Odśwież wybrany patch" msgid "QRefresh" msgstr "QOdśwież" msgid "Confirm Branch Change" msgstr "Potwierdź zmianę gałęzi" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "Gałąź nazwa \"%s\" już istnieje, ostatnio używana w rewizji %d\n" msgid "Restart &Branch" msgstr "Restartuj gałąź" msgid "&Commit to current branch" msgstr "&Commituj do wybranej gałęzi" msgid "Cancel" msgstr "Anuluj" msgid "Confirm New Branch" msgstr "Potwierdź nową gałąź" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "Utworzyć nową gałąź nazwaną \"%s\" wraz z commitem?\n" msgid "Create &Branch" msgstr "Utwórz gałąź" msgid "Close Branch: " msgstr "Zamknij gałąź: " msgid "New Branch: " msgstr "Nowa gałąź: " #, python-format msgid "Selected Options: %s" msgstr "Wybrane opcje: %s" msgid "Parent:" msgstr "Nadrzędna:" msgid "Patch name:" msgstr "Nazwa patcha:" #, python-format msgid "Close %s branch" msgstr "Zamknij gałąź %s" #, python-format msgid "Rollback commit to revision %d" msgstr "Wycofaj commit do rewizji %d" msgid "Confirm Undo" msgstr "Potwierdź cofnięcie" msgid "Discard current commit message?" msgstr "Odrzucić aktualną treść komunikatu wcommitowania" msgid "Message Translation Failure" msgstr "" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" msgid "&Replace" msgstr "" msgid "Nothing Committed" msgstr "" msgid "Please enter commit message" msgstr "Proszę wprowadzić komunikat" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" msgid "No files checked" msgstr "Nie wybrano plików" msgid "No modified files checkmarked for commit" msgstr "Brak zmodyfikowanych lub zaznaczonych plików do wcommitowania" msgid "Confirm Add" msgstr "Potwierdź dodanie" msgid "Add selected untracked files?" msgstr "Dodać wybrane nieśledzone pliki?" msgid "Confirm Remove" msgstr "Potwierdź usunięcie" msgid "Remove selected deleted files?" msgstr "Usunąć wybrane usunięte pliki?" msgid "Nothing changed." msgstr "" msgctxt "window title" msgid "Commit" msgstr "Commituj" #, python-format msgid "%s - commit options" msgstr "%s - opcje commitowania" msgid "Set username:" msgstr "Ustaw użytkownika:" msgid "Save in Repo" msgstr "Zapisz w Repo" msgid "Save Global" msgstr "Zapisz globalnie" msgid "Set Date:" msgstr "Ustaw datę:" msgid "Update" msgstr "Aktualizuj" msgid "Push After Commit:" msgstr "Wyślij po commicie:" msgid "Auto Includes:" msgstr "Autozałączane:" msgid "Recurse into subrepositories (--subrepos)" msgstr "Rekursywnie w subrepozytoriach (--subrepos)" msgid "Unable to save username" msgstr "Nie można zapisać nazwy użytkownika" msgid "Iniparse must be installed." msgstr "Iniparse musi być zainstalowane." msgid "Unable to write configuration file" msgstr "Nie można zapisać pliku konfiguracyjnego" msgid "Unable to save after commit push" msgstr "Nie można było zapisać po wysłaniu zmian" msgid "Unable to save auto include list" msgstr "Nie można było zapisać listy automatycznie dołączanych plików" msgid "Unable to save recurse in subrepos." msgstr "" msgid "Invalid date format" msgstr "Niepoprawny format daty" msgid "No username configured" msgstr "Nie ustawiono nazwy użytkownika" #, python-format msgid "%s - commit" msgstr "%s - commit" msgid "TortoiseHg Commit" msgstr "" msgid "Are you sure that you want to cancel the commit operation?" msgstr "" msgid "Compress changesets up to and including" msgstr "" msgid "Onto destination" msgstr "Do celu" msgid "Compress" msgstr "Kompresuj" #, python-format msgid "Compress - %s" msgstr "Kompresuj - %s" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the compress" msgstr "Możesz kontynuować kompresowanie" msgid "Changes have been moved, you must now commit" msgstr "Zmiany zostały przeniesione, teraz musisz wcommitować zmiany" msgctxt "action button" msgid "Commit" msgstr "Commit" msgid "Compress is complete, old history untouched" msgstr "Kompresja zakończona, stara historia została nietknięta" msgid "must be specified repository" msgstr "musi być wybrane repozytorium" msgid "must be specified 'type' in style" msgstr "musi być wskazany 'typ' w stylu" msgid "Git Commit:" msgstr "" msgid "Summary:" msgstr "Podsumowanie:" msgid "User:" msgstr "Użytkownik:" msgid "Date:" msgstr "Data:" msgid "Age:" msgstr "Wiek:" msgid "Branch:" msgstr "Gałąź:" msgid "Close:" msgstr "Zamknij:" msgid "Tags:" msgstr "Tagi:" msgid "Graft:" msgstr "" msgid "Transplant:" msgstr "" msgid "Obsolete state:" msgstr "" msgid "Perforce:" msgstr "" msgid "Subversion:" msgstr "Subversion:" msgid "Converted From:" msgstr "Konwert. z:" msgid "Original Parent:" msgstr "" msgid "No items to display" msgstr "Brak elementów do wyświetlenia" msgid "Use compact view" msgstr "Widok kompaktowy" msgid "Patch:" msgstr "Ścieżka" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "Pokazywanie %(count)d z %(total)d elementów" msgid "Select a GUI location to edit:" msgstr "" msgid "Select the toolbar or menu to change" msgstr "" msgid "Tools shown on selected location" msgstr "" msgid "Delete from list" msgstr "" msgid "Add to list" msgstr "Dodaj do listy" msgid "Add separator" msgstr "Dodaj separator" msgid "List of all tools" msgstr "Lista wszystkich narzędzi" msgid "New Tool ..." msgstr "" msgid "Edit Tool ..." msgstr "" msgid "Delete Tool" msgstr "" msgid "Type" msgstr "Typ" msgid "Name" msgstr "Nazwa" msgid "Command" msgstr "Komenda" msgid "New hook" msgstr "" msgid "Edit hook" msgstr "" msgid "Delete hook" msgstr "" msgid "Replace existing hook?" msgstr "" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" msgid "OK" msgstr "OK" msgid "Missing information" msgstr "Brakująca informacja" msgid "All items" msgstr "" msgid "Working directory" msgstr "" msgid "All revisions" msgstr "" msgid "All contexts" msgstr "" msgid "Fixed revisions" msgstr "" msgid "Applied patches" msgstr "" msgid "Applied patches or qparent" msgstr "" msgid "" msgstr "" msgid "Configure Custom Tool" msgstr "" msgid "Tool name" msgstr "" msgid "The tool name. It cannot contain spaces." msgstr "" #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" msgid "Tool label" msgstr "" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" msgid "Tooltip" msgstr "" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" msgid "Icon" msgstr "Ikona" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" msgid "On repowidget, show for" msgstr "" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" msgid "Show Output Log" msgstr "Pokaż log wynikowy" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" msgid "You must set a tool name." msgstr "" msgid "The tool name cannot have any spaces in it." msgstr "" msgid "You must set a command to run." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" msgid "Configure Hook" msgstr "" msgid "Hook type" msgstr "" msgid "Select when your command will be run" msgstr "" msgid "The hook name. It cannot contain spaces." msgstr "" msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" msgid "You must set a valid hook type." msgstr "" msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "" msgid "Console" msgstr "" msgid "File &History / Annotate" msgstr "" msgid "Show the history of the selected file" msgstr "Pokaż historię wybranego pliku" msgid "Co&mpare File Revisions" msgstr "" msgid "Compare revisions of the selected file" msgstr "Porównaj rewizje dla wybranego pliku" msgid "Filter Histor&y" msgstr "" msgid "Query about changesets affecting the selected files" msgstr "" msgid "Diff &Changeset to Parent" msgstr "" msgid "Diff Changeset to Loc&al" msgstr "" msgid "&Diff to Parent" msgstr "" msgid "Diff to &Local" msgstr "" msgid "View changes to current in external diff tool" msgstr "Pokaż zmiany do bieżącego w zewn. narzędziu diff" msgid "&View at Revision" msgstr "" msgid "View file as it appeared at this revision" msgstr "Zobacz plik tak jak wyglądał w tej rewizji" msgid "&Save at Revision..." msgstr "" msgid "Save file as it appeared at this revision" msgstr "Zapisz plik tak jak w tej rewizji" msgid "Save file to" msgstr "Zapisz plik do" msgid "&Edit Local" msgstr "" msgid "&Open Local" msgstr "" msgid "E&xplore Local" msgstr "" msgid "Open parent folder of current file in the system file manager" msgstr "" msgid "&Copy Patch" msgstr "" msgid "Copy &Path" msgstr "" msgid "Copy full path of file(s) to the clipboard" msgstr "Kopiuj pełną ścieżkę pliku(ów) do schowka" msgid "&Revert to Revision..." msgstr "" msgid "Open S&ubrepository" msgstr "" msgid "Open the selected subrepository" msgstr "Otwórz wybrane subrepo" msgid "E&xplore Folder" msgstr "" msgid "Open the selected folder in the system file manager" msgstr "Otwiera wybrany katalog przy pomocy eksploratora plików" msgid "Open &Terminal" msgstr "" msgid "Open a shell terminal in the selected folder" msgstr "Otwórz powłokę syst. w wybranym katalogu" msgid "Custom Tools" msgstr "" msgid "Diff &Local" msgstr "" msgid "&View Missing" msgstr "" msgid "View O&ther" msgstr "" msgid "Add &Largefiles..." msgstr "" msgid "&Forget" msgstr "Zapomnij" msgid "&Delete Unversioned..." msgstr "" msgid "Confirm Delete Unversioned" msgstr "Potwierdź usunięcie nieśledzonych plików" msgid "Delete the following unversioned files?" msgstr "Usunąć poniższe pliki spoza syst. kontroli wersji?" msgid "&Delete" msgstr "Usuń" msgid "Re&move Versioned" msgstr "" msgid "&Revert..." msgstr "Odrzuć..." msgid "Uncommited merge - please select a parent revision" msgstr "" msgid "Revert files to local or other parent?" msgstr "" msgid "&Local" msgstr "&Lokalny" msgid "&Other" msgstr "&Inny" msgid "Confirm Revert" msgstr "Potwierdź przywrócenie" msgid "Revert local file changes?" msgstr "Odrzucić lokalne zmiany?" msgid "&Revert with backup" msgstr "P&rzywróć z backupem" msgid "&Discard changes" msgstr "O&drzuć zmiany" msgid "Revert the following files?" msgstr "" msgid "&Revert" msgstr "" msgid "&Copy..." msgstr "Kopiuj..." msgid "Re&name..." msgstr "" msgid "&Ignore..." msgstr "&Ignoruj..." msgid "Edit Re&jects" msgstr "" msgid "Manually resolve rejected patch chunks" msgstr "" msgid "De&tect Renames..." msgstr "" msgid "&Mark Resolved" msgstr "" msgid "&Mark Unresolved" msgstr "" msgid "Restart Mer&ge" msgstr "" msgid "Was renamed from" msgstr "" msgid "Restart Merge &with" msgstr "" msgid "Display the file anyway" msgstr "" msgid "Diff not displayed: " msgstr "" #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" "Ten plik jest większy niż ustalone maksimum.\n" "maxdiff = %s KB" msgid "File is binary" msgstr "Ten plik jest binarny" msgid "File may be binary (maximum line length exceeded)" msgstr "" msgid "File or diffs not displayed: " msgstr "Plik lub różnice niewyświetlane: " msgid " (was added)" msgstr " (dodany)" #, python-format msgid " (copied from %s)" msgstr "" #, python-format msgid " (renamed from %s)" msgstr " (przezwany z: %s)" msgid " (is a symlink)" msgstr " (jest symlinkiem)" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" "Plik lub różnica nie została wyświetlona, gdyż wielkość pliku przekracza " "dopuszczalne maksimum.\n" "maxdiff = %s KB" msgid " (was deleted)" msgstr " (usunięty)" msgid " (was added, now missing)" msgstr " (dodany, teraz brakujący)" msgid " (is unversioned)" msgstr " (poza kontrolą wersji)" msgid "exec mode has been set" msgstr "" msgid "exec mode has been unset" msgstr "" #, python-format msgid "changeset: %s" msgstr "zestaw zmian: %s" msgid "Initial revision" msgstr "Wstępna rewizja" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" "[UWAGA] Niepoprawne ID rewizji w subrepo:\n" "\t%s\n" "\n" msgid "Subrepo created and set to initial revision." msgstr "Subrepo utworzone i ustawione na wstępną rewizję." msgid "Subrepo initialized to revision:" msgstr "Subrepo zainicjalizowane do rewizji:" msgid "Subrepo removed from repository." msgstr "Subrepo usunięte z repozytorium." msgid "Previously the subrepository was at the following revision:" msgstr "" msgid "Subrepo was not changed." msgstr "Subrepo nie zostało zmienione." msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "" msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "" msgid "Subrepo state is:" msgstr "Stan subrepo:" msgid "Revision has changed to:" msgstr "Rewizja zmieniła się na:" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "" msgid "From:" msgstr "Od:" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" msgid "Subrepository not found in the working directory." msgstr "Subrepo nie zostało znalezione w folderze roboczym." msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" msgid "Not a Mercurial subrepo, not previewable" msgstr "To nie jest subrepo Mercuriala, nie można podejrzeć" #, python-format msgid "Error previewing subrepo: %s" msgstr "Błąd przy przeglądaniu subrepo: %s" msgid "Subrepo may be damaged or inaccessible." msgstr "" msgid "The subrepository is dirty." msgstr "" msgid "File Status:" msgstr "Status pliku:" msgid "(is a changed sub-repository)" msgstr "(jest zmieniony subrepozytorium)" msgid "(is an unchanged sub-repository)" msgstr "(jest niezmienionym subrepozytorium)" msgid "(is a dirty sub-repository)" msgstr "(jest brudnym subrepozytorium)" msgid "(is a new sub-repository)" msgstr "(jest nowym subrepozytorium)" msgid "(is a removed sub-repository)" msgstr "(jest usuniętym subrepozytorium)" msgid "(is a changed and dirty sub-repository)" msgstr "(jest zmienionym i brudnym subrepozytorium)" msgid "(is a new and dirty sub-repository)" msgstr "(jest nowym i brudnym subrepozytorium)" msgid "open..." msgstr "" #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "" msgid "File History Log Columns" msgstr "Kolumny historii pliku" msgid "Back" msgstr "Cofnij" msgid "Forward" msgstr "Naprzód" msgid "Diff Selected &Changesets" msgstr "" msgid "&Diff Selected File Revisions" msgstr "" msgid "Show Revision &Details" msgstr "" msgid "Too many rows selected for menu" msgstr "" msgid "File Differences Log Columns" msgstr "" msgid "Next diff" msgstr "Następna różnica" msgid "Previous diff" msgstr "Poprzednia różnica" msgid "Unicode" msgstr "" msgid "Western Europe" msgstr "" msgid "Unified Chinese" msgstr "" msgid "Traditional Chinese" msgstr "" msgid "Korean" msgstr "" msgid "Japanese" msgstr "" msgid "Thai" msgstr "" msgid "Central and Eastern Europe" msgstr "" msgid "Cyrillic" msgstr "" msgid "Russian" msgstr "" msgid "Ukrainian" msgstr "" msgid "Greek" msgstr "" msgid "Turkish" msgstr "" msgid "Arabic" msgstr "" msgid "Hebrew" msgstr "" msgid "Vietnamese" msgstr "" msgid "Baltic" msgstr "" msgid "Southern Europe" msgstr "" msgid "Nordic" msgstr "" msgid "Celtic" msgstr "" msgid "South-Eastern Europe" msgstr "" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "" msgid "View change as unified diff output" msgstr "Zobacz zmiany jako zunifikowany diff" msgid "View change in context of file" msgstr "Zobacz zmiany w kontekście pliku" msgid "Annotate with revision numbers" msgstr "" msgid "Next Diff" msgstr "" msgid "Previous Diff" msgstr "" msgid "Open shelve tool" msgstr "Otwórz narzędzie Shelve" msgid "&Auto Detect" msgstr "" msgid "Show changes from first parent" msgstr "Pokaż zmiany od pierwszego rodzica" msgid "Show changes from second parent" msgstr "Pokaż zmiany od drugiego rodzica" msgid "E&ncoding" msgstr "" msgid "&Search in Current File" msgstr "" msgid "Search in All &History" msgstr "" msgid "Go to Line" msgstr "" #, python-format msgid "Enter line number (1 - %d)" msgstr "" msgid "Show &Author" msgstr "" msgid "Show &Date" msgstr "" msgid "Show &Revision" msgstr "" msgid "Annotate Op&tions" msgstr "" msgid "Search Selected Text" msgstr "" msgid "In Current &File" msgstr "" msgid "In &Current Revision" msgstr "" msgid "In &Original Revision" msgstr "" msgid "In All &History" msgstr "" msgid "Go to" msgstr "" msgid "View File at" msgstr "" msgid "Diff File to" msgstr "" msgid "&Originating Revision" msgstr "" msgid "&Parent Revision" msgstr "" #, python-format msgid "&Parent Revision (%d)" msgstr "" msgid "&Mark Excluded Changes" msgstr "" msgid "(excluded from the next commit)" msgstr "" msgid "Interrupted graft operation found" msgstr "" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" msgid "Continue or abort interrupted graft operation?" msgstr "" msgid "To graft destination" msgstr "" msgid "Use my user name instead of graft committer user name" msgstr "" msgid "Use current date" msgstr "" msgid "Append graft info to log message" msgstr "" msgid "Graft" msgstr "" msgid "Abort" msgstr "Przerwij" #, python-format msgid "Graft - %s" msgstr "" msgid "Graft changeset" msgstr "" #, python-format msgid "Graft changeset #%d of %d" msgstr "" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" msgid "You may continue or start the graft" msgstr "" msgid "Graft is complete" msgstr "" msgid "Graft failed" msgstr "" msgid "Graft aborted" msgstr "" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" msgid "You may continue the graft" msgstr "" msgid "Exiting with an unfinished graft is not recommended." msgstr "" msgid "Consider aborting the graft first." msgstr "" msgid "&Exit" msgstr "Zakończ" msgid "### regular expression search pattern ###" msgstr "### wzorzec wyszukiwania wyrażeń regularnych ###" msgid "Regexp:" msgstr "Regexp:" msgid "Ignore case" msgstr "Ignoruj wielkość liter" msgid "Search" msgstr "Szukaj" msgid "Working Copy" msgstr "Kopia robocza" msgid "All History" msgstr "Cała historia" msgid "Report only the first match per file" msgstr "Wskaż tylko pierwsze wpasowanie w pliku" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "" msgid "Includes:" msgstr "Załączone:" msgid "Excludes:" msgstr "Wyłączone:" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" "Lista wzorców plików do wykluczenia. Wzorce wykluczające są aplikowane po " "wzorcach załączających." msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" "Lista wzorców plików do załączenia. Domyślnie przeszukiwane jest całe " "repozytorium." #, python-format msgid "\"%s\" removed from search history" msgstr "\"%s\" usunięte z historii wyszukiwań" #, python-format msgid "\"%s\" removed from path history" msgstr "\"%s\" usunięte z historii ścieżek" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "grep: Niepoprawny wzorzec: %s\n" #, python-format msgid "grep: %s\n" msgstr "grep: %s\n" #, python-format msgid "%d matches found" msgstr "znaleziono %d wyników" msgid "No matches found" msgstr "Nic nie znaleziono" msgid "Searching" msgstr "Szukanie" msgid "history" msgstr "historia" msgid "Interrupted" msgstr "Przerwane" msgid "files" msgstr "plików" #, python-format msgid "Skipping %s, unable to read" msgstr "Pomijanie %s, nie można odczytać" msgid "Vi&ew File" msgstr "" msgid "&View Changeset" msgstr "" msgid "Annotate &File" msgstr "" msgid "File" msgstr "Plik" msgid "Line" msgstr "Linia" msgid "Rev" msgstr "Rew" msgid "User" msgstr "Użytkownik" msgid "Match Text" msgstr "Pasujący tekst" msgid "TortoiseHg Search" msgstr "Wyszukiwarka TortoiseHg" #, python-format msgid "Detect Copies/Renames in %s" msgstr "Wykryj kopie i zmiany nazw w %s" msgid "Unrevisioned Files" msgstr "Pliki poza kontrolą wersji" msgid "Refresh file list" msgstr "Odśwież listę plików" #, python-format msgid "Min Similarity: %d%%" msgstr "Min Podobieństwo: %d%%" msgid "Only consider deleted files" msgstr "Uwzględniaj tylko usunięte pliki" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "" "Odznacz by rozważać wszystkie wersjonowane pliki pod względem kopii źródeł" msgid "Find Renames" msgstr "Szukaj zmian nazw plików" msgid "Find copy and/or rename sources" msgstr "Szukaj kopii oraz zmian nazw źródeł" msgid "Candidate Matches" msgstr "Kandydujące wpasowania" msgid "Accept All Matches" msgstr "Akceptuj wszystkie wpasowania" msgid "Accept Selected Matches" msgstr "Akceptuj wybrane wpasowania" msgid "Differences from Source to Dest" msgstr "Różnice ze Źródła do Celu" msgid "Search already in progress" msgstr "Przeszukiwanie już jest w trakcie" msgid "Cannot start a new search" msgstr "Nie można rozpocząć nowego wyszukiwania" msgid "No files to find" msgstr "Nie ma plików do znalezienia" msgid "There are no files that may have been renamed" msgstr "Nie ma plików, które mogły mieć zmienione nazwy" msgid "Multiple sources chosen" msgstr "Wybrano wiele źródeł" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" "%s i %s mają taką samą zawartość\n" "\n" #. i18n: percent format #, python-format msgid "%d%%" msgstr "" msgid "Source" msgstr "Źródło" msgid "Dest" msgstr "Cel" msgid "% Match" msgstr "% Wpasowania" msgid "Sending Email" msgstr "Wysyłanie emaila" msgid "Email" msgstr "Email" msgid "To:" msgstr "Do:" msgid "Cc:" msgstr "Cc:" msgid "In-Reply-To:" msgstr "W-Odpowiedzi-Na:" msgid "Message identifier to reply to, for threading" msgstr "Identyfikator wiadomości do odpowiedzi na (do wątków)" msgid "Flag:" msgstr "Flaga:" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" "Patche hg (t.j. generowane przez komendę export) są kompatybilne z " "większością programów patchujących. Załączany jest nagłówek, który zaiwera " "większość najważniejszych informacji meta." msgid "Send changesets as Hg patches" msgstr "Wyślij zmiany jako patche Hg" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" "Patche gita mogą opisywać pliki binarne, kopie i zmiany dostępowe, ale " "odbiorcy mogą nie być w stanie ich użyć jeśli nie używają Mercuriala lub " "Gita." msgid "Use extended (git) patch format" msgstr "Użyj rozszerzonego formatu patcha (git)" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" msgid "Plain, do not prepend Hg header" msgstr "Płaski, nie załączaj nagłówek Hg" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" msgid "Send single binary bundle, not patches" msgstr "" msgid "send patches as part of the email body" msgstr "" msgid "body" msgstr "" msgid "send patches as attachments" msgstr "" msgid "attach" msgstr "załącz" msgid "send patches as inline attachments" msgstr "" msgid "inline" msgstr "" msgid "add diffstat output to messages" msgstr "" msgid "diffstat" msgstr "" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" msgid "Write patch series (bundle) description" msgstr "" msgid "Subject:" msgstr "Temat:" msgid "Changesets" msgstr "Zestawy zmian" msgid "Select &All" msgstr "Wybierz Wszystko" msgid "Select &None" msgstr "Odznacz wszystko" msgid "Edit" msgstr "Edytuj" msgid "Preview" msgstr "Podgląd" msgid "&Settings" msgstr "Ustawienia" msgid "Send &Email" msgstr "Wyślij maila" msgid "&Close" msgstr "&Zamknij" #, python-format msgid "Ignore filter - %s" msgstr "Filtr ignorowania - %s" msgid "Glob" msgstr "Glob" msgid "Regexp" msgstr "Regexp" msgid "Add" msgstr "Dodaj" msgid "Edit File" msgstr "Edytuj plik" msgid "Ignore Filter" msgstr "Filtr ignorowania" msgid "Untracked Files" msgstr "Pliki poza kontrolą wersji" msgid "Backspace or Del to remove row(s)" msgstr "Backspace lub Del aby usunąć wiersz(e)" msgid "Add ignore filter..." msgstr "Dodaj filtr ignorowania..." msgid "selected files" msgstr "wybrane pliki" msgid "Ignore " msgstr "Ignoruj " msgid "Invalid glob expression" msgstr "Niepoprawne wyrażenie glob" msgid "Invalid regexp expression" msgstr "Niepoprawne wyrażenie regexp" msgid "Unable to read repository status" msgstr "Nie można odczytać statusu repozytorium" msgid "New file created" msgstr "" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" msgid "Unable to write .hgignore file" msgstr "Nie można zapisać pliku .hgignore" msgid "Copy working directory files from skeleton" msgstr "" msgid "Create special files (.hgignore, ...)" msgstr "" msgid "Make repo compatible with Mercurial <1.7" msgstr "Zgodność z Mercurial <1.7" msgid "New Repository" msgstr "" msgid "&Create" msgstr "" msgid "Unable to create a config file" msgstr "Nie można utworzyć pliku konfiguracyjnego" msgid "Insufficient access rights." msgstr "Niewystarczające uprawnienia" msgid "Show Log" msgstr "Pokaż log" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" msgid "Add as &Largefiles" msgstr "" msgid "Add as &Normal Files" msgstr "" msgid "Invalid Patterns" msgstr "" msgid "Failed to process largefiles.patterns." msgstr "" msgid "Word docs (*.doc *.docx)" msgstr "" msgid "PDF docs (*.pdf)" msgstr "" msgid "Excel files (*.xls *.xlsx)" msgstr "" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "" msgid "Refresh lock information" msgstr "" msgid "Lock a file not described in .hglocks" msgstr "" msgid "Stop current operation" msgstr "Zatrzymaj bieżącą operację" msgid "Locked And Lockable Files:" msgstr "" msgid "Path" msgstr "Ścieżka" msgid "Locking User" msgstr "" msgid "Purpose" msgstr "" msgid "Simplelock extension not enabled" msgstr "" msgid "Please enable and configure simplelock" msgstr "" msgid "Open a (nonmergable) file you wish to be locked" msgstr "" msgid "File was not within current repository" msgstr "" #, python-format msgid "Locking %s" msgstr "" #, python-format msgid "Unlocking %s" msgstr "" msgid "Refreshing locks..." msgstr "" #, python-format msgid "Lock of %s successful" msgstr "" #, python-format msgid "Lock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s successful" msgstr "" msgid "Ready, double click to lock or unlock" msgstr "" msgid "Ready" msgstr "" msgid "You can only release your own locks" msgstr "" msgid "Find revisions matching fields of:" msgstr "" msgid "Revision to Match:" msgstr "" msgid "Fields to match:" msgstr "" msgid "Summary (first description line)" msgstr "" msgid "Description" msgstr "Opis" msgid "Author" msgstr "Autor" msgid "Date" msgstr "Data" msgid "Files" msgstr "Pliki" msgid "Diff contents" msgstr "" msgid "Subrepo states" msgstr "" msgid "Branch" msgstr "Gałąź" msgid "Phase" msgstr "Faza" msgid "&Match" msgstr "" #, python-format msgid "Find matches - %s" msgstr "" msgid "Revisions to Match:" msgstr "" #, python-format msgid "Match any of %d revisions" msgstr "" msgid "Unknown revision!" msgstr "Nieznana rewizja!" msgid "Parse Error!" msgstr "Błąd parsowania!" #, python-format msgid "Merge - %s" msgstr "Scal - %s" msgid "Do you want to exit?" msgstr "Czy chcesz wyjść?" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" msgid "Prepare to merge" msgstr "Przygotowanie do scalania" msgid "Verify merge targets and ensure your working directory is clean." msgstr "" "Weryfikuj cele scalania aby upewnić się, że katalog roboczy jest czysty." msgid "Not a head revision!" msgstr "To nie jest główna rewizja" msgid "Merge from (other revision)" msgstr "Scal z (inna rewizja)" msgid "Merge to (working directory)" msgstr "Scal z (katalog roboczy)" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" "Katalog roboczy już jest scalony. Kontynuuj lub " "odrzuć istniejące scalenie." msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" "Przed scalaniem musisz wcommitować, odłożyć jako patch lub odrzucić zmiany." msgid "Or use:" msgstr "Albo użyj:" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "Wymuś scalenie z niewcommitowanymi zmianami (-f/--force)" msgid "Discard all changes from the other revision" msgstr "" msgid "&Discard" msgstr "Odrzuć" msgid "Confirm Discard Changes" msgstr "Potwierdź Odrzucenie Zmian" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" "Zmiany od rewizji %s i wszyscy niescaleni rodzice będą odrzucone.\n" "\n" "Czy jesteś pewien, że na pewno chcesz to zrobić?" msgctxt "working dir state" msgid "Clean" msgstr "Gotowy" msgid "Merging..." msgstr "Scalanie..." msgid "Automatically advance to next page when merge is complete." msgstr "" "Automatycznie przechodź na następną stronę, gdy scalenie zakończy się " "sukcesem." #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" "%d plików zostało zmodyfikowanych w obydwu gałęziach i wynikłe konflikty " "muszą być rozwiązane" msgid "" "No merge conflicts, ready to commit or review" msgstr "" msgid "Commit merge results" msgstr "Commitowanie rezultatu scalenia" msgid "Commit Options" msgstr "" msgid "Commit Now" msgstr "" msgid "Commit Later" msgstr "" msgid "Merge changeset" msgstr "Scal zestaw zmian" msgid "Syntax Highlighting" msgstr "" msgid "Paste &Filenames" msgstr "Wklej &Nazwy plików" msgid "App&ly Format" msgstr "Zastosuj &format" msgid "C&onfigure Format" msgstr "K&onfiguruj format" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "" msgid "&Commit to Queue..." msgstr "" msgid "Create &New Queue..." msgstr "" msgid "&Rename Active Queue..." msgstr "" msgid "&Delete Queue..." msgstr "" msgid "&Purge Queue..." msgstr "" msgid "Create Patch Queue" msgstr "" msgid "New patch queue name" msgstr "" msgid "Create" msgstr "Utwórz" msgid "Rename Patch Queue" msgstr "" #, python-format msgid "Rename patch queue '%s' to" msgstr "" msgid "Rename" msgstr "Zmień nazwę" msgid "Delete Patch Queue" msgstr "" msgid "Delete reference to" msgstr "" msgid "Delete" msgstr "Usuń" msgid "Purge Patch Queue" msgstr "" msgid "Remove patch directory of" msgstr "" msgid "Purge" msgstr "Przeczyść" msgid "Rename Patch" msgstr "" #, python-format msgid "Rename patch %s to:" msgstr "" msgid "no guards" msgstr "brak stróżów" msgid "Patch Queue" msgstr "Kolejka Patchy" msgctxt "MQ QPush" msgid "Push" msgstr "Wyślij" msgid "Apply one patch" msgstr "Aplikuj jeden patch" msgctxt "MQ QPush" msgid "Push all" msgstr "Wyślij wszystko" msgid "Apply all patches" msgstr "Aplikuj wszystkie patche" msgid "Pop" msgstr "" msgid "Unapply one patch" msgstr "Odstosuj jednego patcha" msgid "Pop all" msgstr "" msgid "Unapply all patches" msgstr "Odstosuj wszystkie patche" msgid "Go &to Patch" msgstr "" msgid "&Apply Only This Patch" msgstr "" msgid "Apply only the selected patch" msgstr "" msgid "&Finish Patch" msgstr "" msgid "Move applied patches into repository history" msgstr "" msgid "&Delete Patches..." msgstr "" msgid "Delete selected patches" msgstr "Usuń wybrane patche" msgid "Re&name Patch..." msgstr "" msgid "Set &Guards..." msgstr "" msgid "Configure guards for selected patch" msgstr "" msgid "Patch Queue Actions Toolbar" msgstr "" msgid "Configure guards" msgstr "" #, python-format msgid "Input new guards for %s:" msgstr "" msgid "Confirm patch queue switch" msgstr "" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "" #, python-format msgid "Guards: %d/%d" msgstr "Stróże: %d/%d" msgid "MQ options" msgstr "Opcje MQ" msgid "Force push or pop (--force)" msgstr "" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "" msgid "Submitting p4 changelist..." msgstr "" msgid "Reverting p4 changelist..." msgstr "" msgid "Patch Branch Toolbar" msgstr "" msgid "Merge all pending dependencies" msgstr "" msgid "Backout current patch branch" msgstr "" msgid "Backport part of a changeset to a dependency" msgstr "" msgid "Start a new patch branch" msgstr "Stwórz nową gałąź patcha" msgid "Edit patch dependency graph" msgstr "" msgid "will be closed" msgstr "będzie zamknięty" #, python-format msgid "needs merge of %i heads\n" msgstr "wymaga scalenia %i głów\n" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "" #, python-format msgid "needs merge with %s\n" msgstr "wymaga scalenia z %s\n" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "" msgid "&Goto (update workdir)" msgstr "" msgid "&Merge" msgstr "&Scal" msgid "No patch branch selected" msgstr "Nie wybrano gałęzi patcha" msgid "No editor found" msgstr "Nie znaleziono edytora" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" "Mercurial nie był w stanie znaleźć edytora. Skonfiguruj Mercuriala by używał " "edytora dostępnego w Twoim systemie." msgid "Graph" msgstr "Graf" msgid "Status" msgstr "Status" msgid "Title" msgstr "Tytuł" msgid "Message" msgstr "Wiadomość" msgid "New Patch Branch" msgstr "Nowa gałąź patcha" msgid "Patch message:" msgstr "Wiadomość patcha:" msgid "Patch date:" msgstr "Data patcha:" msgid "Patch user:" msgstr "Użytkownik patcha:" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "Niepoprawne ustawienia - serwer ReviewBoard jest niezainstalowany" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "" "Niepoprawne ustawienia - proszę podać nazwę użytkownika dla ReviewBoard" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" msgid "Review Board" msgstr "Review Board" msgid "Password:" msgstr "Hasło:" msgid "Error" msgstr "Błąd" #, python-format msgid "Review draft posted to %s\n" msgstr "" #, python-format msgid "Review published to %s\n" msgstr "" msgid "Success" msgstr "Sukces" msgid "Repository ID:" msgstr "ID repozytorium:" msgid "Post Review" msgstr "" msgid "Review ID:" msgstr "ID rewizji:" msgid "Update the fields of this existing request" msgstr "" msgid "Update Review" msgstr "" msgid "Create diff with all outgoing changes" msgstr "" msgid "Create diff with all changes on this branch" msgstr "" msgid "Publish request immediately" msgstr "" msgid "%p%" msgstr "%p%" msgid "Connecting to Review Board..." msgstr "" msgid "Target:" msgstr "Cel:" msgid "Do not modify working copy (-k/--keep)" msgstr "" #, python-format msgid "Prune - %s" msgstr "" msgid "&Prune" msgstr "" msgid "No unknown files found" msgstr "Brak nieznanych plików" msgid "No ignored files found" msgstr "Brak ignorowanych plików" msgid "No trash files found" msgstr "Brak plików w śmietniku" msgid "Delete empty folders" msgstr "Usuń puste katalogi" msgid "Preserve files beginning with .hg" msgstr "" #, python-format msgid "%s - purge" msgstr "" msgid "Checking" msgstr "Sprawdzanie" msgid "Ready to purge." msgstr "" #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "Usunąć %d nieznany plik" msgstr[1] "Usunąć %d nieznane pliki" msgstr[2] "Usunąć %d nieznanych plików" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "Usunąć %d ignorowany plik" msgstr[1] "Usunąć %d ignorowane pliki" msgstr[2] "Usunąć %d ignorowanych plików" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "Usuwanie %d pliku z .hg/Trashcan" msgstr[1] "Usuwanie %d plików z .hg/Trashcan" msgstr[2] "Usuwanie %d plików z .hg/Trashcan" msgid "Confirm file deletions" msgstr "Potwierdź wszystkie usunięcia" msgid "Are you sure you want to delete these files and/or folders?" msgstr "Jesteś pewien, że chcesz usunąć te pliki i/lub foldery?" msgid "Deletion failures" msgstr "Błędy usuwania" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "" msgstr[1] "" msgid "Deleting trash folder..." msgstr "Usuwanie kosza..." #, python-format msgid "Deleted %d files" msgstr "Usunięto %d plików" #, python-format msgid "Deleted %d files and %d folders" msgstr "Usunięto %d plików i %d folderów" msgid "Delete Patches" msgstr "" msgid "Remove patches from queue?" msgstr "Usunąć patche z kolejki?" msgid "Keep patch files" msgstr "Zatrzymaj pliki patchy" #, python-format msgid "Patch fold - %s" msgstr "" msgid "New patch message:" msgstr "" msgid "Patches to fold" msgstr "" msgid "&Undo" msgstr "" msgid "&Redo" msgstr "" msgid "Cu&t" msgstr "" msgid "&Copy" msgstr "" msgid "&Paste" msgstr "" msgid "&Editor Options" msgstr "" msgid "&Wrap" msgstr "" msgctxt "wrap mode" msgid "&None" msgstr "" msgid "&Word" msgstr "" msgid "&Character" msgstr "" msgid "White&space" msgstr "" msgid "&Visible" msgstr "" msgid "&Invisible" msgstr "" msgid "&AfterIndent" msgstr "" msgid "&TAB Inserts" msgstr "" msgid "&Auto" msgstr "" msgid "&TAB" msgstr "" msgid "&Spaces" msgstr "" msgid "EOL &Visibility" msgstr "" msgid "EOL &Mode" msgstr "" msgid "&Windows" msgstr "" msgid "&Unix" msgstr "" msgid "&Mac" msgstr "" msgid "&Auto-Complete" msgstr "" msgid "### regular expression ###" msgstr "### wyrażenie regularne ###" msgid "Regular expression search pattern" msgstr "Wzorzec wyszukiwania wyrażeń regularnych" msgid "Wrap search" msgstr "Zawijaj wyszukiwanie" msgid "Prev" msgstr "Cofnij" msgid "Next" msgstr "Dalej" msgid "Unable to read file" msgstr "" msgid "Could not open the specified file for reading." msgstr "" msgid "This appears to be a binary file." msgstr "" msgid "An error occurred while reading the file." msgstr "" msgid "Text Translation Failure" msgstr "" msgid "Could not translate the file content from native encoding." msgstr "" msgid "Several characters would be lost." msgstr "" msgid "Unable to write file" msgstr "" msgid "Could not translate the file content to native encoding." msgstr "" msgid "Could not open the specified file for writing." msgstr "" msgid "An error occurred while writing the file." msgstr "" msgid "Try refreshing your repository." msgstr "Spróbuj odświeżyć Twoje repozytorium." #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
                                                                          Please edit your config" msgstr "" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
                                                                          Please fix your config" msgstr "" "Błąd konfiguracji: \"%(arg0)s\",
                                                                          Proszę
                                                                          naprawić swoją konfigurację" #, python-format msgid "Operation aborted:

                                                                          %(arg0)s." msgstr "Operacja przerwana:

                                                                          %(arg0)s." msgid "Repository is locked" msgstr "Repozytorium jest zablokowane" msgid "hint:" msgstr "podp:" msgid "Repository Error" msgstr "Błąd repozytorium" msgid "No visual editor configured" msgstr "Brak skonfigurowanego edytora" msgid "Please configure a visual editor." msgstr "Proszę skonfigurować edytor." msgid "Editor launch failure" msgstr "Błąd uruchamiania edytora" msgid "Failed to open path in terminal" msgstr "Nie można było otworzyć ścieżki w terminalu" #, python-format msgid "\"%s\" is not a valid directory" msgstr "\"%s\" nie jest poprawnym katalogiem" #, python-format msgid "Invalid configuration: %s" msgstr "" msgid "Unable to start the following command:" msgstr "" msgid "No shell configured" msgstr "Brak skonfigurowanej powłoki" msgid "A terminal shell must be configured" msgstr "Powłoka terminala musi być skonfigurowana" msgid "Please enter a username" msgstr "Proszę wprowadzić nazwę użytkownika" msgid "You must identify yourself to Mercurial" msgstr "Musisz autoryzować się do Mercuriala" msgid "Unable to translate input to local encoding." msgstr "" msgid "Checkmark files to add" msgstr "Zaznacz pliki do dodania" msgid "Checkmark files to forget" msgstr "Zaznacz pliki do zapomnienia" msgid "Forget" msgstr "Zapomnij" msgid "Checkmark files to revert" msgstr "Zaznacz pliki do odrzucenia" msgid "Revert" msgstr "Przywróć" msgid "Checkmark files to remove" msgstr "Zaznacz pliki do usunięcia" msgid "Remove" msgstr "Usuń" #, python-format msgid "%s - hg %s" msgstr "%s - hg %s" msgid "Do not save backup files (*.orig)" msgstr "Nie zapisuj plików backupu (*.orig)" msgid "Force removal of modified files (--force)" msgstr "Wymuś usuwanie zmodyfikowanych plików (--force)" msgid "Add &Largefiles" msgstr "" msgid "No files selected" msgstr "Brak zaznaczonych plików" msgid "No operation to perform" msgstr "Brak operacji do wykonania" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" "Zaznaczyłeś jeden lub więcej plików, które były zmodyfikowane. Domyśle pliki " "te zostaną usunięte. Co chcesz zrobić?" msgid "Remove &Unmodified Files" msgstr "Usuń niemodyfikowane pliki" msgid "Remove &All Selected Files" msgstr "Usuń wszystkie zaznaczone pliki" msgid "Rebase changeset and descendants" msgstr "" msgid "To rebase destination" msgstr "" msgid "Swap source and destination" msgstr "" msgid "Keep original changesets (--keep)" msgstr "" msgid "Keep original branch names (--keepbranches)" msgstr "" msgid "Collapse the rebased changesets (--collapse)" msgstr "" msgid "Rebase entire source branch (-b/--base)" msgstr "" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "" msgid "Rebase" msgstr "Przebazuj" #, python-format msgid "Rebase - %s" msgstr "Przebazuj - %s" msgid "" "Before rebase, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the rebase" msgstr "Możesz kontynuować przebazowanie" msgid "Rebase is complete" msgstr "Przebazowanie zostało zakończone" msgid "Rebase failed" msgstr "" msgid "Rebase aborted" msgstr "Przebazowanie zaniechane" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" msgid "Exiting with an unfinished rebase is not recommended." msgstr "" msgid "Consider aborting the rebase first." msgstr "" #, python-format msgid "Merge rejected patch chunks into %s" msgstr "" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "Oznacz tę zmianę za rozwiązaną, idź do kolejnej" msgid "Mark this chunk as unresolved" msgstr "" msgid "Reload File" msgstr "" msgid "Are you sure you want to reload this file?" msgstr "" msgid "All unsaved changes will be lost." msgstr "" msgid "Warning" msgstr "Ostrzeżenie" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" msgid "Copy source -> destination" msgstr "Kopiuj źródło -> cel" msgid "Copy Error" msgstr "Błąd kopiowania" msgid "Rename Error" msgstr "Błąd zmiany nazwy" msgid "Select Source File" msgstr "Wybierz plik źródłowy" msgid "Select Source Folder" msgstr "Wybierz folder źródłowy" msgid "Source does not exist." msgstr "" msgid "The source must be within the repository tree." msgstr "Źródło musi się znajdować w repozytorium." msgid "The destination must be within the repository tree." msgstr "Cel musi się znajdować w repozytorium." msgid "Destination file already exists." msgstr "Plik docelowy już istnieje." msgid "Are you sure you want to overwrite it ?" msgstr "Czy na pewno chcesz nadpisać?" #, python-format msgid "Copy - %s" msgstr "Kopiuj - %s" #, python-format msgid "Rename - %s" msgstr "Zmień nazwę - %s" msgid "Show all" msgstr "Pokaż wszystkie" msgid "### revision set query ###" msgstr "" msgid "Clear current query and query text" msgstr "Wyczyść zapytanie" msgid "Trigger revision set query" msgstr "" msgid "Open advanced query editor" msgstr "" msgid "Delete selected query from history" msgstr "" msgid "filter" msgstr "filtr" msgid "Toggle filtering of non-matched changesets" msgstr "" msgid "Show/Hide hidden changesets" msgstr "" msgid "Toggle graft relations visibility" msgstr "" msgid "Keyword Search" msgstr "" msgid "Revision Set" msgstr "Zestaw rewizji" msgid "(unsaved)" msgstr "" msgid "Display graph the named branch only" msgstr "Wyświetl graf tylko nazwanych gałęzi" msgid "Display only active branches" msgstr "Pokazuj tylko aktywne gałęzie" msgid "Display closed branches" msgstr "Pokazuj zamknięte gałęzie" msgid "Include all ancestors" msgstr "Załącz wszystkich przodków" msgctxt "column header" msgid "Graph" msgstr "Graf" msgctxt "column header" msgid "Rev" msgstr "Rew" msgctxt "column header" msgid "Branch" msgstr "Gałąź" msgctxt "column header" msgid "Description" msgstr "Opis" msgctxt "column header" msgid "Author" msgstr "Autor" msgctxt "column header" msgid "Tags" msgstr "Tagi" msgctxt "column header" msgid "Latest tags" msgstr "" msgctxt "column header" msgid "Node" msgstr "Węzeł" msgctxt "column header" msgid "Git Commit" msgstr "" msgctxt "column header" msgid "Age" msgstr "Wiek" msgctxt "column header" msgid "Local Time" msgstr "Lokalny czas" msgctxt "column header" msgid "UTC Time" msgstr "Czas UTC" msgctxt "column header" msgid "Changes" msgstr "Zmiany" msgctxt "column header" msgid "Converted From" msgstr "" msgctxt "column header" msgid "Phase" msgstr "Faza" msgctxt "column header" msgid "Filename" msgstr "Nazwa pliku" msgid "Searching..." msgstr "Wyszukiwanie..." #, python-format msgid "filling (%d)" msgstr "wypełnianie (%d)" msgid "Mercurial User" msgstr "Użytkownik Mercuriala" msgid "Repository Registry" msgstr "Rejestr repozytorium" msgid "Show &Paths" msgstr "" msgid "Show S&hort Paths" msgstr "" msgid "&Scan Repositories at Startup" msgstr "" msgid "Scan &Remote Repositories" msgstr "" msgid "&Refresh Repository List" msgstr "" msgid "Refresh the Repository Registry list" msgstr "Odśwież listę repozytoriów" msgid "&Open" msgstr "" msgid "Open the repository in a new tab" msgstr "Otwórz repozytorium w nowym tabie" msgid "&Open All" msgstr "" msgid "Open all repositories in new tabs" msgstr "Otwórz wszystkie repozytoria w nowych tabach" msgid "New &Group" msgstr "" msgid "Create a new group" msgstr "Stwórz nową grupę" msgid "Rename the entry" msgstr "Zmień nazwę wpisu" msgid "Settin&gs" msgstr "" msgid "View the repository's settings" msgstr "Zobacz ustawienia repozytorium" msgid "Re&move from Registry" msgstr "" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" msgid "Clon&e..." msgstr "" msgid "Clone Repository" msgstr "Klonuj repozytorium" msgid "E&xplore" msgstr "" msgid "Open the repository in a file browser" msgstr "Otwórz repozytorium w managerze plików" msgid "&Terminal" msgstr "" msgid "Open a shell terminal in the repository root" msgstr "" msgid "&Add Repository..." msgstr "" msgid "Add a repository to this group" msgstr "Dodaj repozytorium do tej grupy" msgid "A&dd Subrepository..." msgstr "" msgid "Convert an existing repository into a subrepository" msgstr "" msgid "Remo&ve Subrepository..." msgstr "" msgid "Remove this subrepository from the current revision" msgstr "" msgid "Copy the root path of the repository to the clipboard" msgstr "" msgid "Sort by &Name" msgstr "" msgid "Sort the group by short name" msgstr "Sortuj grupę po krótkiej nazwie" msgid "Sort by &Path" msgstr "" msgid "Sort the group by full path" msgstr "Sortuj grupę po pełnej ścieżce" msgid "&Sort by .hgsub" msgstr "" msgid "Order the subrepos as in .hgsub" msgstr "" msgid "Select repository directory to add" msgstr "Wybierz katalog repozytorium do dodania" msgid "Select an existing repository to add as a subrepo" msgstr "Wybierz istniejące repozytorium do dodania jako subrepo" msgid "Cannot add subrepository" msgstr "Nie można dodać subrepozytorium" #, python-format msgid "%s is not a valid repository" msgstr "%s nie jest poprawnym repozytorium" #, python-format msgid "\"%s\" is not a folder" msgstr "\"%s\" nie jest katalogiem" msgid "A repository cannot be added as a subrepo of itself" msgstr "" #, python-format msgid "" "The selected folder:

                                                                          %s

                                                                          is not inside the target repository." "

                                                                          This may be allowed but is greatly discouraged.
                                                                          If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" msgid "Cannot open repository" msgstr "Nie można otworzyć repozytorium" #, python-format msgid "The selected repository:

                                                                          %s

                                                                          cannot be open!" msgstr "" msgid "Subrepository already exists" msgstr "Subrepozytorium już istnieje" #, python-format msgid "" "The selected repository:

                                                                          %s

                                                                          is already a subrepository of:" "

                                                                          %s

                                                                          as: \"%s\"" msgstr "" msgid "Failed to add subrepository" msgstr "" #, python-format msgid "Cannot open the .hgsub file in:

                                                                          %s" msgstr "Nie można otworzyć pliku .hgsub w:

                                                                          %s" msgid "Failed to add repository" msgstr "Nie udało się dodać repozytorium" #, python-format msgid "The .hgsub file already contains the line:

                                                                          %s" msgstr "Plik .hgsub już zawiera linijkę:

                                                                          %s" msgid "Subrepo added to .hgsub file" msgstr "Subrepo dodane do pliku .hgsub" #, python-format msgid "" "The selected subrepo:

                                                                          %s

                                                                          has been added to the .hgsub " "file of the repository:

                                                                          %s

                                                                          Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" #, python-format msgid "Cannot update the .hgsub file in:

                                                                          %s" msgstr "Nie można zaktualizować pliku .hgsub w:

                                                                          %s" msgid "Could not open .hgsub file" msgstr "" msgid "Cannot read the .hgsub file.

                                                                          Subrepository removal failed." msgstr "" msgid "Subrepository not found" msgstr "" msgid "" "The selected subrepository was not found on the .hgsub file.

                                                                          Perhaps it " "has already been removed?" msgstr "" msgid "&Yes" msgstr "Tak" msgid "&No" msgstr "&Nie" msgid "Remove the selected repository?" msgstr "" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" msgid "Subrepository removed from .hgsub" msgstr "" msgid "" "The selected subrepository has been removed from the .hgsub file.

                                                                          Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" msgid "Could not update .hgsub file" msgstr "" msgid "Cannot update the .hgsub file.

                                                                          Subrepository removal failed." msgstr "" #, python-format msgid "Unsupported repository type (%s)" msgstr "Nieobsługiwany typ repozytorium (%s)" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "" msgid "New Group" msgstr "Nowa Grupa" msgid "Confirm Delete" msgstr "Potwierdź usunięcie" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "" msgid "Could not get subrepository list" msgstr "" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

                                                                          %s" msgstr "" msgid "Could not open some subrepositories" msgstr "" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

                                                                          %s

                                                                          The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

                                                                          %s" msgstr "" msgid "Updating repository registry" msgstr "" #, python-format msgid "Loading repository %s" msgstr "" msgid "Repository Registry updated" msgstr "" msgid "Close tab" msgstr "Zamknij tab" msgid "Close other tabs" msgstr "Zamknij inne taby" msgid "Undo close tab" msgstr "" msgid "Reopen last closed tab" msgstr "" msgid "Undo close other tabs" msgstr "" msgid "Reopen last closed tab group" msgstr "" msgid "Failed to open repository" msgstr "Nie można było otworzyć repozytorium" msgid "&Sort" msgstr "" #, python-format msgid "Local Repository %s" msgstr "Lokalne repozytorium %s" #, python-format msgid "" "An exception happened while loading the subrepos of:

                                                                          \"%s\"

                                                                          " msgstr "" #, python-format msgid "The exception error message was:

                                                                          %s

                                                                          " msgstr "" msgid "Click OK to continue or Abort to exit." msgstr "Kliknij OK aby kontynuować lub Przerwij aby zakończyć." msgid "Error loading subrepos" msgstr "Błąd podczas ładowania subrepozytoriów" msgid "Unable to update repository name" msgstr "Nie można było zaktualizować nazwy repozytorium" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "" msgid "default" msgstr "domyślny" msgid "C&hoose Log Columns..." msgstr "" msgid "&Resize Columns" msgstr "" #, python-format msgid "Goto ancestor of %s and %s" msgstr "Idź do przodka %s i %s" #, python-format msgid "Can't find revision '%s'" msgstr "Nie można znaleźć rewizji '%s'" msgid "Drag to change order" msgstr "Przeciągnij by zmienić kolejność" msgid "Workbench Log Columns" msgstr "Kolumny" msgctxt "tab tooltip" msgid "Revision details" msgstr "Szczegóły rewizji" msgctxt "tab tooltip" msgid "Commit" msgstr "Commit" msgctxt "tab tooltip" msgid "Search" msgstr "Szukaj" msgctxt "tab tooltip" msgid "Console log" msgstr "" msgctxt "tab tooltip" msgid "Synchronize" msgstr "Synchronizuj" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "Gałąź patcha" #, python-format msgid "%s " msgstr "%s " #, python-format msgid "Found %d incoming changesets" msgstr "Znaleziono %d przychodzących zmian" msgid "Pull" msgstr "Pociągnj" msgid "Pull incoming changesets into your repository" msgstr "Pobierz przychodzące zmiany do Twojego repozytorium" msgid "Reject incoming changesets" msgstr "Odrzuć przychodzące zestawy zmian" #, python-format msgid "Push current branch (%s)" msgstr "Wyślij aktualną gałąź (%s)" #, python-format msgid "Push up to current revision (#%d)" msgstr "" #, python-format msgid "Push up to revision #%d" msgstr "" msgid "Push all" msgstr "Wyślij wszystko" msgid "no outgoing changesets" msgstr "" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets" msgstr "%d wychodzących zestawów zmian" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "" msgid "Nothing to push" msgstr "" msgid "No revision found" msgstr "" #, python-format msgid "%s - verify repository" msgstr "%s - Weryfikacja Repozytorium" #, python-format msgid "%s - recover repository" msgstr "%s - odzyskaj repozytorium" msgid "No transaction available" msgstr "Brak dostępnej transakcji" msgid "There is no rollback transaction available" msgstr "" msgid "Undo last commit?" msgstr "Odrzucić ostatni commit?" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "" msgid "Undo last transaction?" msgstr "Cofnąć ostatnią transakcję?" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "Przywrócić do rewizji %d (cofnąć %s)?" msgid "Unable to determine working copy revision\n" msgstr "" msgid "Remove current working revision?" msgstr "Usunąć aktualny katalog roboczy?" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" "Twój aktualna rewizja robocza (%d) będzie usunięta po tym wycofaniu, " "pozostawiając niewcommitowane zmiany.\n" " Kontynuować?" msgid "Tab cannot exit" msgstr "" msgid "Pus&h" msgstr "" msgid "Push to &Here" msgstr "" msgid "Push Selected &Branch" msgstr "" msgid "Push &All" msgstr "" msgid "&Update..." msgstr "" msgid "Bro&wse at Revision" msgstr "" msgid "&Merge with Local..." msgstr "" msgid "&Tag..." msgstr "" msgid "Boo&kmark..." msgstr "" msgid "Top&ic..." msgstr "" msgid "Sig&n..." msgstr "" msgid "&Backout..." msgstr "" msgid "Revert &All Files..." msgstr "" msgid "Copy &Hash" msgstr "" msgid "E&xport" msgstr "" msgid "E&xport Patch..." msgstr "" msgid "&Email Patch..." msgstr "" msgid "&Archive..." msgstr "" msgid "&Bundle Rev and Descendants..." msgstr "" msgid "Change &Phase to" msgstr "" msgid "&Graft to Local..." msgstr "" msgid "Modi&fy History" msgstr "" msgid "&Unapply Patch" msgstr "" msgid "Import to &MQ" msgstr "" msgid "MQ &Options" msgstr "" msgid "&Rebase..." msgstr "" msgid "&Prune..." msgstr "" msgid "&Strip..." msgstr "" msgid "Post to Re&view Board..." msgstr "" msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "" msgid "Write diff file" msgstr "Zapisz plik diffa" msgid "Unable to write diff file" msgstr "Nie można zapisać pliku diffa" msgid "Unable to compress history" msgstr "Nie można skompresować historii" msgid "Selected changeset pair not related" msgstr "" msgid "Visual Diff..." msgstr "Wizualny Diff..." msgid "Export Diff..." msgstr "Eksportuj diffa..." msgid "Export Selected..." msgstr "Eksportuj wybrane..." msgid "Email Selected..." msgstr "Wybrane emailem..." msgid "Copy Selected as Patch" msgstr "" msgid "Archive DAG Range..." msgstr "" msgid "Export DAG Range..." msgstr "" msgid "Email DAG Range..." msgstr "" msgid "Bundle DAG Range..." msgstr "" msgid "Bisect - Good, Bad..." msgstr "Bisekcja - Dobra, Zła..." msgid "Bisect - Bad, Good..." msgstr "Bisekcja - Zła, Dobra..." msgid "Compress History..." msgstr "Kompresuj historię..." msgid "Rebase..." msgstr "" msgid "Goto common ancestor" msgstr "" msgid "Graft Selected to local..." msgstr "" msgid "&Prune Selected..." msgstr "" msgid "Post Selected to Review Board..." msgstr "" msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "" msgid "Apply onto original parent" msgstr "" msgid "Apply only this patch" msgstr "" msgid "Fold patches..." msgstr "" msgid "Delete patches..." msgstr "Usuń patche..." msgid "Rename patch..." msgstr "" msgid "Pull to here..." msgstr "Pobierz tutaj..." msgid "Visual diff..." msgstr "Wizualny diff..." msgid "Export patch" msgstr "Eksportuj patch" msgid "Patch Files (*.patch)" msgstr "Patchuj pliki (*.patch)" msgid "Cannot export revision" msgstr "Nie można wyeksportować rewizji" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" "Nie można eksportować rewizji %s do pliku o nazwie:\n" "\n" "%s\n" msgid "There is already an existing folder with that same name." msgstr "Już jest katalog o tej samej nazwie." msgid "Replace" msgstr "Zastąp" msgid "Append" msgstr "Dodaj" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" msgid "What do you want to do?\n" msgstr "Co chcesz zrobić?\n" msgid "Replace the existing patch files.\n" msgstr "" msgid "Append the changes to the existing patch files.\n" msgstr "" msgid "Abort the export operation.\n" msgstr "Przerwij operację eksportu.\n" msgid "Patch files already exist" msgstr "Pliki patcha już istnieją" msgid "Patch exported" msgstr "Patch wyeksportowany" #, python-format msgid "" "Revision #%d (%s) was exported to:

                                                                          %s%s%s" msgstr "" "Rewizja #%d (%s) została wyeksportowana do:

                                                                          %s" "%s%s" msgid "Patches exported" msgstr "Patche wyeksportowane" #, python-format msgid "%d patches were exported to:

                                                                          %s" msgstr "" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

                                                                          Are you sure you want to use revert?

                                                                          (use " "update to checkout another revision)" msgstr "" "Przywracanie wszystkich plików odrzuci zmiany i zmodyfikuje dotknięte pliki." "

                                                                          Czy na pewno chcesz użyć przywrócenia?

                                                                          (użyj Aktualizacji do " "pobrania innej rewizji)" msgid "Filter b&y" msgstr "" msgid "&Ancestors and Descendants" msgstr "" msgid "A&uthor" msgstr "" msgid "&Branch" msgstr "" msgid "&More Options..." msgstr "" msgid "Unable to merge" msgstr "Nie można było scalić" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "" msgid "Unable to backout" msgstr "Nie można wycofać" msgid "Write bundle" msgstr "" msgid "Backwards phase change requested" msgstr "" msgid "Do you really want to make this revision secret?" msgstr "" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" msgid "&Make secret" msgstr "" msgid "&Cancel" msgstr "Anuluj" msgid "Do you really want to force a backwards phase transition?" msgstr "" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" msgid "&Force" msgstr "&Wymuś" msgid "Cannot import selected revision" msgstr "Nie można zaimportować wybranej rewizji" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" msgid "Invalid command" msgstr "" msgid "The selected command is empty" msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" msgid "Failed to execute custom TortoiseHg command" msgstr "" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "" msgid "Failed to execute custom command" msgstr "" #, python-format msgid "The command \"%s\" could not be executed." msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" msgid "&Edit Toolbar" msgstr "" msgid "&Refresh" msgstr "&Odśwież" msgid "&Filter Toolbar" msgstr "" #, python-format msgid "TortoiseHg: %s" msgstr "" msgid "S&tatus Bar" msgstr "" #, python-format msgid "Resolve Conflicts - %s" msgstr "" msgid "Local revision information" msgstr "" msgid "Other revision information" msgstr "" msgid "Unresolved conflicts" msgstr "Nierozwiązane konflikty" msgid "Mercurial Re&solve" msgstr "" msgid "Attempt automatic (trivial) merge" msgstr "Przystąp do automatycznego (prostego) scalania" msgid "Tool &Resolve" msgstr "" msgid "Merge using selected merge tool" msgstr "" msgid "&Take Local" msgstr "" msgid "Accept the local file version (yours)" msgstr "Akceptuj twoją wersję pliku" msgid "Take &Other" msgstr "" msgid "Accept the other file version (theirs)" msgstr "Akceptuj ichnią wersję pliku" msgid "&Mark as Resolved" msgstr "" msgid "Mark this file as resolved" msgstr "Oznacz ten plik jako rozwiązany" msgid "Diff &Local to Ancestor" msgstr "" msgid "&Diff Other to Ancestor" msgstr "" msgid "Resolved conflicts" msgstr "Rozwiązane konflikty" msgid "&Edit File" msgstr "" msgid "Edit resolved file" msgstr "Edytuj poprawione pliki" msgid "3-&Way Diff" msgstr "" msgid "Visual three-way diff" msgstr "Wizualny 3-Way Diff" msgid "Visual diff between resolved file and first parent" msgstr "Wizualny diff pomiędzy rozwiązanym plikiem, a pierwszym rodzicem" msgid "&Diff to Other" msgstr "" msgid "Visual diff between resolved file and second parent" msgstr "Wizualny diff pomiędzy rozwiązanym plikiem, a drugim rodzicem" msgid "Mark as &Unresolved" msgstr "" msgid "Mark this file as unresolved" msgstr "Oznacz ten plik jako nierozwiązany" msgid "Detected merge/diff tools:" msgstr "Wykryte narzędzia do diff/scalania:" msgid "Command output" msgstr "Wyjście konsoli" msgid "Unable to show subrepository files" msgstr "Nie można pokazać plików z subrepozytorium" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" msgid "There are merge conflicts to be resolved" msgstr "Są konflikty scalania, które muszą być rozwiązane" msgid "All conflicts are resolved." msgstr "Wszystkie konflikty są rozwiązane" msgid "There are no conflicting file merges." msgstr "Nie mo konfliktowych scaleń." msgid "Exit without finishing resolve?" msgstr "Wyjść bez rozwiązywania wszystkich konfliktów?" msgid "Unresolved conflicts remain. Are you sure?" msgstr "Konflikty pozostają nierozwiązane. Jesteś pewien?" msgid "E&xit" msgstr "Wyjście" msgid "Ext" msgstr "Ext" msgid "Repository" msgstr "Repozytorium" msgid "" msgstr "" msgid "File List Toolbar" msgstr "" msgid "Ma&nifest Mode" msgstr "" msgid "Show all version-controlled files in tree view" msgstr "" msgid "&Flat List" msgstr "" msgid "### filter text ###" msgstr "### tekst filtru ###" msgid "Changed by &This Commit" msgstr "" msgid "Show files changed by this commit" msgstr "" msgid "Compare to &1st Parent" msgstr "" msgid "Compare to &2nd Parent" msgstr "" msgid "Toggle parent to be used as the base revision" msgstr "" msgid "List Optio&ns" msgstr "" #, python-format msgid "%s - Revision Details (%s)" msgstr "" #, python-format msgid "Revert - %s" msgstr "Przywróć - %s" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "" msgid "Revert all files to this revision" msgstr "Przywróć wszystkie pliki do tej rewizji" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "" msgid "null revision (i.e. remove file(s))" msgstr "" msgid "Changeset:" msgstr "Pakiet zmian:" msgid "Child:" msgstr "Podrzędna:" msgid "Predecessors:" msgstr "" msgid "Successors:" msgstr "" msgid "Head is closed!" msgstr "Głowa jest zamknięta!" msgid "Changesets where username contains string." msgstr "" msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" msgid "Like \"keyword(string)\" but accepts a regex." msgstr "" msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" msgid "The named bookmark or all bookmarks." msgstr "" msgid "The named tag or all tags." msgstr "" msgid "Changeset is tagged." msgstr "Zestaw zmian jest otagowany." msgid "Changeset is a named branch head." msgstr "" msgid "Changeset is a merge changeset." msgstr "" msgid "Changeset is closed." msgstr "Zestaw zmian jest zamknięty." msgid "" "Changesets within the interval, see help dates" msgstr "" msgid "Greatest common ancestor of the two changesets." msgstr "" msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" msgid "Changesets which modify files matched by pattern." msgstr "" msgid "Changesets which add files matched by pattern." msgstr "" msgid "Changesets which remove files matched by pattern." msgstr "" msgid "Changesets containing files matched by pattern." msgstr "" msgid "All changesets belonging to the branches of changesets in set." msgstr "" msgid "Members of a set with no children in set." msgstr "" msgid "Changesets which are descendants of changesets in set." msgstr "" msgid "Changesets that are ancestors of a changeset in set." msgstr "" msgid "Child changesets of changesets in set." msgstr "" msgid "The set of all parents for all changesets in set." msgstr "" msgid "First parent for all changesets in set, or the working directory." msgstr "" msgid "Second parent for all changesets in set, or the working directory." msgstr "" msgid "Changesets with no parent changeset in set." msgstr "" msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" msgid "Changeset with lowest revision number in set." msgstr "" msgid "Changeset with highest revision number in set." msgstr "" msgid "First n members of a set." msgstr "" msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "" msgid "All changesets, the same as 0:tip." msgstr "" msgid "Revision Set Query" msgstr "" msgid "all revisions converted from subversion" msgstr "" msgid "changeset which represents converted svn revision" msgstr "" msgid "Common sets" msgstr "Standardowe zestawy" msgid "File pattern sets" msgstr "" msgid "Set Ancestry" msgstr "" msgid "Set Logic" msgstr "" msgid "" "help " "revsets" msgstr "" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" #, python-format msgid "thg: unknown command '%s'\n" msgstr "nieznana komenda: '%s'\n" #, python-format msgid "thg %s: %s\n" msgstr "thg %s: %s\n" #, python-format msgid "thg: %s\n" msgstr "thg: %s\n" #, python-format msgid "abort: %s!\n" msgstr "anulowano: %s!\n" #, python-format msgid "abort: %s\n" msgstr "anulowane: %s\n" #, python-format msgid "(%s)\n" msgstr "" msgid "option --config may not be abbreviated!" msgstr "" msgid "invalid arguments" msgstr "niepoprawne argumenty" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" msgid "repository root directory or symbolic path name" msgstr "" msgid "enable additional output" msgstr "" msgid "suppress output" msgstr "" msgid "display help and exit" msgstr "pokaż pomoc i zamknij" msgid "set/override config option (use 'section.name=value')" msgstr "" msgid "enable debugging output" msgstr "" msgid "start debugger" msgstr "uruchom debuggera" msgid "print command execution profile" msgstr "" msgid "do not fork GUI process" msgstr "" msgid "always fork GUI process" msgstr "" msgid "read file list from file" msgstr "czytaj listę plików z pliku" msgid "read file list from file encoding utf-8" msgstr "czytaj listę plików z pliku o kodowaniu utf-8" msgid "thg about" msgstr "thg about" msgid "thg add [FILE]..." msgstr "thg add [FILE]..." msgid "revision to annotate" msgstr "" msgid "open to line" msgstr "otwórz na linii" msgid "initial search pattern" msgstr "" msgid "thg annotate" msgstr "thg annotate" #, python-format msgid "invalid line number: %s" msgstr "" msgid "revision to archive" msgstr "rewizja do zarchiwizowania" msgid "thg archive" msgstr "thg archive" msgid "merge with old dirstate parent after backout" msgstr "" msgid "parent to choose when backing out merge" msgstr "" msgid "revision to backout" msgstr "rewizja do wycofania" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "thg backout [OPTION]... [[-r] REV]" msgid "thg bisect" msgstr "thg bisect" msgid "revision" msgstr "" msgid "thg bookmarks [-r REV] [NAME]" msgstr "" msgid "only one new bookmark name allowed" msgstr "" msgid "the clone will include an empty working copy (only a repository)" msgstr "" msgid "revision, tag or branch to check out" msgstr "rewizja, tag lub gałąź do check outa" msgid "include the specified changeset" msgstr "załącz wskazany zestaw zmian" msgid "clone only the specified branch" msgstr "" msgid "use pull protocol to copy metadata" msgstr "" msgid "use uncompressed transfer (fast over LAN)" msgstr "" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "" msgid "record user as committer" msgstr "" msgid "record datecode as commit date" msgstr "" msgid "thg commit [OPTIONS] [FILE]..." msgstr "thg commit [OPTIONS] [FILE]..." msgid "thg debugblockmatcher" msgstr "" msgid "thg debugbugreport [TEXT]" msgstr "" msgid "thg debugconsole" msgstr "" msgid "thg debuglighthg" msgstr "" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "" msgid "no command specified" msgstr "" msgid "thg drag_copy SOURCE... DEST" msgstr "thg drag_copy SOURCE... DEST" msgid "thg drag_move SOURCE... DEST" msgstr "thg drag_move SOURCE... DEST" msgid "a revision to send" msgstr "rewizja do wysłania" msgid "thg email [REVS]" msgstr "thg email [REVS]" msgid "use only one form to specify the revision" msgstr "" msgid "select the specified revision" msgstr "" msgid "side-by-side comparison of revisions" msgstr "" msgid "thg filelog [OPTION]... FILE" msgstr "" msgid "requires a single filename" msgstr "" msgid "thg forget [FILE]..." msgstr "thg forget [FILE]..." msgid "revisions to graft" msgstr "" msgid "thg graft [-r] REV..." msgstr "" msgid "You must provide revisions to graft" msgstr "" msgid "ignore case during search" msgstr "" msgid "thg grep" msgstr "thg grep" msgid "thg guess" msgstr "thg guess" msgid "thg help [COMMAND]" msgstr "thg help [COMMAND]" msgid "global options:" msgstr "globalne opcje:" msgid "use \"thg help\" for the full list of commands" msgstr "" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "" msgid "" "list of commands:\n" "\n" msgstr "" "lista komend:\n" "\n" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" "\n" "aliasy: %s\n" msgid "(no help text available)" msgstr "(nie ma dostępnego tekstu pomocy)" msgid "options:\n" msgstr "opcje:\n" msgid "no commands defined\n" msgstr "" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "" msgid "" "basic commands:\n" "\n" msgstr "" "bazowe komendy:\n" "\n" #, python-format msgid " (default: %s)" msgstr " (domyślnie: %s)" msgid "thg hgignore [FILE]" msgstr "thg hgignore [FILE]" msgid "import to the patch queue (MQ)" msgstr "" msgid "thg import [OPTION] [SOURCE]..." msgstr "thg import [OPTION] [SOURCE]..." msgid "thg init [DEST]" msgstr "thg init [DEST]" msgid "thg lock" msgstr "" msgid "search for a given text or revset" msgstr "" msgid "(DEPRECATED)" msgstr "" msgid "open a new workbench window" msgstr "" msgid "thg log [OPTIONS] [FILE]" msgstr "thg log [OPTIONS] [FILE]" msgid "cannot specify both -k/--query and filenames" msgstr "" msgid "revision to display" msgstr "rewizja do pokazania" msgid "thg manifest [-r REV] [FILE]" msgstr "thg manifest [-r REV] [FILE]" msgid "revision to merge" msgstr "rewizja do scalenia" msgid "thg merge [[-r] REV]" msgstr "thg merge [[-r] REV]" msgid "Merge revision not specified or not found" msgstr "" msgid "a revision to post" msgstr "" msgid "thg postreview [-r] REV..." msgstr "" msgid "reviewboard extension not enabled" msgstr "" #, python-format msgid "see %(url)s" msgstr "" msgid "no revisions specified" msgstr "" msgid "revisions to prune" msgstr "" msgid "thg prune [-r] REV..." msgstr "" msgid "thg purge" msgstr "thg purge" msgid "keep original changesets" msgstr "" msgid "keep original branch names" msgstr "" msgid "rebase from the specified changeset" msgstr "" msgid "rebase onto the specified changeset" msgstr "" msgid "thg rebase -s REV -d REV [--keep]" msgstr "" msgid "Rebase already in progress" msgstr "Przebazowanie już jest w trakcie wykonywania" msgid "Resuming rebase already in progress" msgstr "" msgid "You must provide source and dest arguments" msgstr "" msgid "thg rejects [FILE]" msgstr "thg rejects [FILE]" msgid "You must provide the path to a file" msgstr "Musisz podać ścieżkę do pliku" msgid "thg remove [FILE]..." msgstr "thg remove [FILE]..." msgid "thg rename [SOURCE] [DEST]" msgstr "" msgid "field to give initial focus" msgstr "" msgid "thg repoconfig" msgstr "thg repoconfig" msgid "thg resolve" msgstr "thg resolve" msgid "the revision to show" msgstr "" msgid "thg revdetails [-r REV]" msgstr "" msgid "thg revert [FILE]..." msgstr "thg revert [FILE]..." msgid "revision to update" msgstr "rewizje do zaktualizowania" msgid "thg rupdate [[-r] REV]" msgstr "" msgid "name of the hgweb config file (serve more than one repository)" msgstr "" msgid "name of the hgweb config file (DEPRECATED)" msgstr "" msgid "thg serve [--web-conf FILE]" msgstr "thg serve [--web-conf FILE]" msgid "thg shellconfig" msgstr "thg shellconfig" msgid "thg shelve" msgstr "thg shelve" msgid "sign even if the sigfile is modified" msgstr "" msgid "make the signature local" msgstr "" msgid "the key id to sign with" msgstr "" msgid "do not commit the sigfile after signing" msgstr "" msgid "use as commit message" msgstr "użyj jako komunikat commita" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "" msgid "Please enable the Gpg extension first." msgstr "" msgid "show files without changes" msgstr "pokaż pliki bez zmian" msgid "show ignored files" msgstr "pokazuj ignorowane pliki" msgid "thg status [OPTIONS] [FILE]" msgstr "thg status [OPTIONS] [FILE]" msgid "discard uncommitted changes (no backup)" msgstr "" msgid "do not back up stripped revisions" msgstr "" msgid "do not modify working copy during strip" msgstr "" msgid "revision to strip" msgstr "" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "" msgid "open the bookmark sync window" msgstr "" msgid "thg sync [OPTION]... [PEER]" msgstr "" msgid "replace existing tag" msgstr "" msgid "make the tag local" msgstr "" msgid "revision to tag" msgstr "rewizja do otagowania" msgid "remove a tag" msgstr "usuń tag" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgid "wait until the second ticks over" msgstr "" msgid "notify the shell for paths given" msgstr "" msgid "remove the status cache" msgstr "usuń cache statusów" msgid "show the contents of the status cache (no update)" msgstr "" msgid "update all repos in current dir" msgstr "" msgid "thg thgstatus [OPTION]" msgstr "" msgid "thg topics [-r REV] [NAME]" msgstr "" msgid "Please enable the Topic extension first." msgstr "" msgid "only one new topic name allowed" msgstr "" msgid "thg update [-C] [[-r] REV]" msgstr "thg update [-C] [[-r] REV]" msgid "thg userconfig" msgstr "thg userconfig" msgid "changeset to view in diff tool" msgstr "" msgid "revisions to view in diff tool" msgstr "" msgid "bundle file to preview" msgstr "" msgid "launch visual diff tool" msgstr "uruchom narzędzie wizualnego diffa" msgid "print license" msgstr "wydrukuj licencję" msgid "thg version [OPTION]" msgstr "thg version [OPTION]" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "" msgid "Location:" msgstr "Lokalizacja:" msgid "Update to:" msgstr "Aktualizuj do:" msgid "Options:" msgstr "Opcje:" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "Odrzuć zdalne zmiany, bez backupu (-C/--clean)" msgid "Perform a push before updating (-p/--push)" msgstr "Wyślij zmiany przed aktualizowaniem (-p/--push)" msgid "Allow pushing new branches (--new-branch)" msgstr "Zezwól na popychanie nowych gałęzi (--new-branch)" msgid "Force push to remote location (-f/--force)" msgstr "Wymuś wysłanie dla zdalnej lokalizacji (-f/--force)" msgid "remove working directory" msgstr "usuń katalog roboczy" msgid "unknown revision!" msgstr "nieznana rewizja!" #, python-format msgid "Remote Update - %s" msgstr "" msgid "&Update" msgstr "Aktualizuj" msgid "Log" msgstr "Log" msgid "Repositories" msgstr "Repozytoria" #, python-format msgid "Running at %s" msgstr "Działa na %s" msgid "Stopped" msgstr "Zatrzymane" msgid "TortoiseHg Web Server" msgstr "" msgid "Web Server" msgstr "Web Serwer" msgid "Port:" msgstr "Port:" msgid "Status:" msgstr "Status:" msgid "Start" msgstr "Start" msgid "Settings" msgstr "Ustawienia" msgid "" msgstr "" msgid "&True" msgstr "&Prawda" msgid "&False" msgstr "&Fałsz" msgid "&Unspecified" msgstr "&Nieistotne" #, python-format msgid "%dpt" msgstr "" msgid "Bold" msgstr "" msgid "Italic" msgstr "" msgid "Strike" msgstr "" msgid "Underline" msgstr "" msgid "&Set..." msgstr "Ustaw" msgid "&Clear" msgstr "Wyczyść" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "" msgid "&Browse..." msgstr "&Przeglądaj" msgid "UI Language" msgstr "Język interfejsu" msgid "Specify your preferred user interface language (restart needed)" msgstr "" "Wskaż swój preferowany język interfejsu (restart aplikacji będzie wymagany)" msgid "Three-way Merge Tool" msgstr "Narzędzie do scalania 3-Way" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" "Program do graficznego scalania i rozwiązywania konfliktów. Jeśli to pole " "będzie puste, Mercurial użyje pierwszego dostępnego w systemie narzędzia w " "tym celu albo użyje wewnętrznej aplikacji do wsp. scalania, które pozostawia " "markery konfliktów w miejscach wystąpienia.
                                                                          Wybierz internal:merge aby wymusić używanie markerów konfliktów,
                                                                          internal:prompt aby " "zawsze mieć możliwość wyboru,
                                                                          internal:dump aby zostawić pliki w " "katalogu roboczym w celu ich ręcznego scalenia" msgid "Visual Diff Tool" msgstr "Narzędzie do wizualizacji Diffa" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" "Wskaż narzędzie do wizualizacji diffa. Tak jak w dokumentacji plików " "konfiguracyjnych Mercuriala w sekcji [merge-tools], jeśli pole " "pozostanie puste, TortoiseHg użyje tego samego narzędzia co w przypadku " "narz. do scalania. Gdyby się to jednak nie udało, uruchomiona zostanie " "pierwsza odpowiadająca aplikacja w tym celu w systemie." msgid "Visual Editor" msgstr "Edytor wizualny" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" msgid "CLI Editor" msgstr "" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" msgid "Shell" msgstr "Powłoka" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
                                                                          Default, Windows: cmd.exe /" "K title %(reponame)s
                                                                          Default, OS X: not set
                                                                          Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" msgid "Immediate Operations" msgstr "Czynności automatyczne" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" msgid "Tab Width" msgstr "Szerokość Taba" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" msgid "Force Repo Tab" msgstr "Zawsze widoczna zakł.
                                                                          z repozytoriami" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "" "Zawsze pokazuj panel z repozytoriami, nawet gdy jest tylko jedno do " "pokazania. Domyślnie: False" msgid "Monitor Repo Changes" msgstr "Śledź zmiany w repo" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" msgid "Max Diff Size" msgstr "Maks. wielk. pliku do diff" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" msgid "Fork GUI" msgstr "" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" msgid "Full Path Title" msgstr "Pełna ścieżka w tytule" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" "Pokazuje pełną ścieżkę do repozytorium w tytule okna zamiast standardowej " "nazwy katalogu rodzica. Domyślnie: False" msgid "Auto-resolve merges" msgstr "Auto-rozwiązywanie konfliktów" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" msgid "New Repo Skeleton" msgstr "" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "Warsztat" msgid "Single Workbench Window" msgstr "Tylko jedno okno Warsztatu" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" msgid "Default widget" msgstr "Domyślny widget" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" msgid "" "Open new tabs next\n" "to the current tab" msgstr "Nowe zakł. zaraz po aktywnej" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" msgid "Author Coloring" msgstr "Kolorowanie wg autorów" msgid "Color changesets by author name. Default: False" msgstr "" msgid "Full Authorname" msgstr "" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" msgid "Task Tabs" msgstr "Taby Zadań" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" msgid "Task Toolbar Order" msgstr "" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
                                                                          Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
                                                                          Valid names are: log commit sync grep and " "pbranch.
                                                                          Default: log commit grep pbranch | sync" msgstr "" msgid "Long Summary" msgstr "Długie podsumowanie" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" msgid "Log Batch Size" msgstr "" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "" msgid "Dead Branches" msgstr "Martwe gałęzie" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" msgid "Branch Colors" msgstr "Kolory gałęzi" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" msgid "Hide Tags" msgstr "Ukryj tagi" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" msgid "Activate Bookmarks" msgstr "Aktywuj zakładki" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

                                                                          • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
                                                                          • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
                                                                          • never: Never show any prompt to " "activate any bookmarks.

                                                                          Default: prompt" msgstr "" msgid "Show Family Line" msgstr "" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

                                                                          Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" msgid "Use optimized graph layouter" msgstr "" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

                                                                          Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" msgctxt "config item" msgid "Commit" msgstr "Commit" msgid "Username" msgstr "Nazwa użytkownika" msgid "" "Name associated with commits. The common format is:
                                                                          Full Name <" "email@example.com>" msgstr "" "Nazwa powiązana z commitami. Zwykły format to:
                                                                          Imię Nazwisko <" "email@example.com>" msgid "Ask Username" msgstr "" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" msgid "Summary Line Length" msgstr "Długość linii podsumowania" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" msgid "Close After Commit" msgstr "Zamknij po Commicie" msgid "Close the commit tool after every successful commit. Default: False" msgstr "" msgid "Push After Commit" msgstr "Wyślij po Commicie" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" "Próbuje wysłać zmiany pod wskazany URL lub alias po każdym udanym commicie. " "Domyślnie: No push" msgid "Auto Commit List" msgstr "Automatycznie zaznaczane pliki" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" "Oddzielona przecinkiem lista typów plików, które są automatycznie zaznaczane " "przy każdym commicie. Zaleca się używać tego tylko w ustawieniach samego " "repozytorium. Domyślnie: None (zostaw puste)" msgid "Auto Exclude List" msgstr "Automatycznie odznaczane pliki" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" "Oddzielona przecinkiem lista typów plików, które automatycznie będą " "odznaczane w oknie commitowania. Domyślnie: None (zostaw puste)" msgid "English Messages" msgstr "Angielskie komunikaty" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" msgid "New Commit Phase" msgstr "Faza dla nowych commitów" msgid "The phase of new commits. Default: draft" msgstr "Faza dla nowych commitów. Domyślnie: draft" msgid "Secret MQ Patches" msgstr "" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "" msgid "Check Subrepo Phase" msgstr "" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" msgid "Monitor working
                                                                          directory changes" msgstr "Śledź zmiany w
                                                                          katalogu roboczym" msgid "" "Select when the working directory status list will be refreshed:
                                                                          - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
                                                                          TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
                                                                          - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
                                                                          - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
                                                                          Default: auto" msgstr "" msgid "Confirm adding unknown files" msgstr "Potw. usuwanie niezn. plików" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Confirm deleting files" msgstr "Potw. usuwanie plików" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Sync" msgstr "" msgid "After Pull Operation" msgstr "Operacja po pobraniu" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" msgid "Default Push" msgstr "Domyślne wysyłanie" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

                                                                          • all: The default. Push all changes in all " "branches.
                                                                          • branch: Push all changes in the current branch.
                                                                          • revision: Push the changes in the current branch up to the current revision.

                                                                          Default: all" msgstr "" msgid "Confirm Push" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" msgid "Target Combo" msgstr "" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

                                                                          • auto: The default. Show the combo if more than one target " "configured.
                                                                          • always: Always show the combo.

                                                                          Default: auto" msgstr "" msgid "SSH Command" msgstr "" msgid "" "Command to use for SSH connections.

                                                                          Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" msgid "Subrepository Features:" msgstr "" msgid "Allow Hg Subrepos" msgstr "" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" msgid "Allow Git Subrepos" msgstr "" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

                                                                          See the security note before enabling Git " "subrepos." msgstr "" msgid "Allow SVN Subrepos" msgstr "" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

                                                                          See the security note before enabling " "Subversion subrepos." msgstr "" msgid "Server" msgstr "Serwer" msgid "Repository Details:" msgstr "" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" msgid "Encoding" msgstr "Kodowanie" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" msgid "'Publishing' repository" msgstr "" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" msgid "Web Server:" msgstr "" msgid "Textual description of the repository's purpose or contents." msgstr "" msgid "Contact" msgstr "Kontakt" msgid "Name or email address of the person in charge of the repository." msgstr "" msgid "Style" msgstr "Styl" msgid "Which template map style to use" msgstr "" msgid "Archive Formats" msgstr "Formaty archiwów" msgid "Comma separated list of archive formats allowed for downloading" msgstr "" msgid "Port" msgstr "Port" msgid "Port to listen on" msgstr "Port do nasłuchiwania" msgid "Push Requires SSL" msgstr "Wysłanie wymaga SSL" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" msgid "Stripes" msgstr "" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" msgid "Max Files" msgstr "Max plików" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "" msgid "Max Changes" msgstr "Max zmian" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "" msgid "Allow Push" msgstr "Zezwól na wysłanie" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" msgid "Deny Push" msgstr "Nie zezwalaj na wysłanie" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" msgid "Proxy" msgstr "Proxy" msgid "Host" msgstr "Host" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "" msgid "Bypass List" msgstr "" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "" msgid "Optional. User name to authenticate with at the proxy server" msgstr "" msgid "Password" msgstr "Hasło" msgid "Optional. Password to authenticate with at the proxy server" msgstr "" msgid "From" msgstr "Od" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "" msgid "To" msgstr "Do" msgid "Comma-separated list of recipient email addresses" msgstr "" msgid "Cc" msgstr "Cc" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "" msgid "Bcc" msgstr "Bcc" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "" msgid "method" msgstr "Metoda" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" msgid "SMTP Host" msgstr "Host SMTP" msgid "Host name of mail server" msgstr "" msgid "SMTP Port" msgstr "Port SMTP" msgid "Port to connect to on mail server. Default: 25" msgstr "" msgid "SMTP TLS" msgstr "SMTP TLS" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "" msgid "SMTP Username" msgstr "Nazwa użytkownika SMTP" msgid "Username to authenticate to mail server with" msgstr "" msgid "SMTP Password" msgstr "Hasło SMTP" msgid "Password to authenticate to mail server with" msgstr "" msgid "Local Hostname" msgstr "Lokalna nazwa komputera" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "" msgid "Diff and Annotate" msgstr "Diff i Adnotacje" msgid "Patch EOL" msgstr "EOL Patchy" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" msgid "Git Format" msgstr "Format Gita" msgid "Use git extended diff header format. Default: False" msgstr "" msgid "MQ Git Format" msgstr "Format MQ Git" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" msgid "No Dates" msgstr "Bez dat" msgid "Do not include modification dates in diff headers. Default: False" msgstr "" msgid "Show Function" msgstr "Pokaż funkcję" msgid "Show which function each change is in. Default: False" msgstr "" msgid "Ignore White Space" msgstr "Ignoruj białe znaki" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "" msgid "Ignore WS Amount" msgstr "Ignoruj ilość BZ" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "" msgid "Ignore Blank Lines" msgstr "Ignoruj puste linie" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "" msgid "Annotate:" msgstr "Adnotacje:" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "" msgid "Fonts" msgstr "Czcionki" msgid "Message Font" msgstr "Czcionka komunikatów" msgid "Font used to display commit messages. Default: monospace 10" msgstr "" msgid "Diff Font" msgstr "Czcionka diffa" msgid "Font used to display text differences. Default: monospace 10" msgstr "" msgid "ChangeLog Font" msgstr "Czcionka listy zmian" msgid "Font used to display changelog data. Default: monospace 10" msgstr "" msgid "Output Font" msgstr "Czcionka wyników" msgid "Font used to display output messages. Default: sans 8" msgstr "" msgid "Extensions" msgstr "Wtyczki" msgid "Tools" msgstr "Narzędzia" msgid "Hooks" msgstr "" msgid "Issue Tracking" msgstr "Issue Tracking" msgid "Issue Regex" msgstr "" msgid "Defines the regex to match when picking up issue numbers." msgstr "" msgid "Issue Link" msgstr "" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" msgid "Inline Tags" msgstr "" msgid "Show tags at start of commit message." msgstr "" msgid "Mandatory Issue Reference" msgstr "" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" msgid "Issue Tracker Plugin" msgstr "Plugin do Issue Trackera" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" msgid "Configure Issue Tracker" msgstr "Konfiguruj Issue Trackera" msgid "Configure the selected COM Bug Tracker plugin." msgstr "" msgid "Issue Tracker Trigger" msgstr "" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

                                                                          • never: Do not update the Issue Tracker " "state automatically.
                                                                          • commit: Update the Issue Tracker state after " "a successful commit.

                                                                          Default: never" msgstr "" msgid "Changeset Link" msgstr "" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
                                                                          The template string " "uses a normal mercurial template syntax, such as:

                                                                          • {node|short} : replaced by " "the 12 digit revision id.
                                                                          • {rev} : replaced by the revision number." "
                                                                          • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
                                                                          For example, in order to " "link to bitbucket commit pages you can set this to:
                                                                          https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
                                                                          You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
                                                                          https://github.com/torvalds/" "linux/commit/{gitnode}
                                                                          https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
                                                                          " msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "" msgid "User name to authenticate with review board" msgstr "" msgid "Password to authenticate with review board" msgstr "" msgid "Server Repository ID" msgstr "ID Serwera Repozytorium" msgid "The default repository id for this repo on the review board server" msgstr "" msgid "Target Groups" msgstr "Grupy docelowe" msgid "A comma separated list of target groups" msgstr "" msgid "Target People" msgstr "Docelowi ludzie" msgid "A comma separated list of target people" msgstr "" msgid "Kiln Bfiles" msgstr "" msgid "Patterns" msgstr "Wzorce" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" msgid "Size" msgstr "Rozmiar" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" msgid "System Cache" msgstr "" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "" msgid "Simplelock" msgstr "" msgid "Lock Clone" msgstr "" msgid "" "Location of local clone of organizational lock repository.

                                                                          This repository " "must contain a \"locked\" text file" msgstr "" msgid "Largefiles" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" msgid "Minimum Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" msgid "User Cache" msgstr "" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" msgid "Projrc" msgstr "" msgid "Require confirmation" msgstr "" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

                                                                          • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
                                                                          • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
                                                                          • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
                                                                          " msgstr "" msgid "Servers" msgstr "" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" msgid "Include" msgstr "" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" msgid "Exclude" msgstr "" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" msgid "Update on incoming" msgstr "" msgid "" "Let the user update the projrc on incoming:
                                                                          • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
                                                                          • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
                                                                          • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                                                                            Default: never" msgstr "" msgid "GnuPG" msgstr "" msgid "Specify the path to GPG. Default: gpg" msgstr "" msgid "Key ID" msgstr "" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "" msgid "TortoiseHg Settings" msgstr "Ustawienia TortoiseHg" msgid "Iniparse package not found" msgstr "" msgid "Can't change settings without iniparse package - view is readonly." msgstr "" #, python-format msgid "%s's global settings" msgstr "%s - Ustawienia Globalne" msgid "No repository found" msgstr "Nie znalezionio repozytorium" msgid "no repo at " msgstr "brak repo w " #, python-format msgid "%s project settings (.hg/projrc)" msgstr "" #, python-format msgid "%s repository settings" msgstr "%s - Ustawienia Repozytorium" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "Zrestartuj TortoiseHg aby poniższe zmiany zostały wprowadzone:" msgid "Apply changes before exit?" msgstr "Zastosować zmiany przed wyjściem?" msgid "&No (discard changes)" msgstr "Nie (odrzuć zmiany)" msgid "Reload" msgstr "Przeładuj" msgid "Settings File:" msgstr "Plik ustawień:" msgid "Confirm Save" msgstr "Potwierdź zapis" msgid "Save changes before editing?" msgstr "Zapisać zmiany przed edycją?" msgid "&Save" msgstr "Zapisz" msgid "Confirm Reload" msgstr "Potwierdź przeładowanie" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" "Niezapisane zmiany będą utracone.\n" "Czy ciągle chcesz przeładować?" msgid "Unable to create a Mercurial.ini file" msgstr "Nie można było utworzyć pliku mercurial.ini" msgid "Insufficient access rights, reverting to read-only mode." msgstr "" msgid "Context Menu" msgstr "Menu kontekstowe" msgid "Top menu items:" msgstr "Elementy głównego menu:" msgid "Sub menu items:" msgstr "Elementy podrz. menu:" msgid "Menu Behavior" msgstr "Zachowanie Menu" msgid "Hide context menu outside repositories" msgstr "Ukryj menu kontekstowe poza repozytoriami" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" msgid "Icons" msgstr "Ikony" msgid "Overlays" msgstr "Nakładki" msgid "Enabled overlays" msgstr "Nakładki włączone" msgid "Local disks only" msgstr "Tylko lokalne dyski" msgid "Enabled Overlay Handlers" msgstr "" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "" msgid "Added" msgstr "Dodane" msgid "Locked*" msgstr "Zablokowane*" msgid "Ignored*" msgstr "Ignorowane*" msgid "Unversioned" msgstr "Nieśledzone" msgid "Readonly*" msgstr "Tylko do odczytu*" msgid "Deleted*" msgstr "Usunięte*" msgid "*: not used by TortoiseHg" msgstr "*: nieużywane przez TortoiseHg" msgid "Taskbar" msgstr "" msgid "Show Icon" msgstr "Pokaż ikonę" msgid "Highlight Icon" msgstr "Poświetl ikonę" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" msgid "Explorer Extension Settings - TortoiseHg" msgstr "" msgid "Clear" msgstr "Wyczyść" msgid "Clear the current shelf file" msgstr "" msgid "Delete the current shelf file" msgstr "" msgid "Left Toolbar" msgstr "Lewy panel" msgid "Delete selected chunks" msgstr "Usuń wybrane zmiany" msgid "Move all files right" msgstr "Przenieś wszystkie pliki na prawo" msgid "Move selected file right" msgstr "Przenieś wybrany plik na prawo" msgid "Edit file" msgstr "Edytuj plik" msgid "Move selected chunks right" msgstr "Przenieś wybrane zmiany na prawo" msgid "Refresh Toolbar" msgstr "Odśwież panel" msgid "Refresh" msgstr "Odśwież" msgid "New Shelf" msgstr "" msgid "Right Toolbar" msgstr "Prawy panel" msgid "Move selected chunks left" msgstr "Przenieś wybrane zmiany na lewo" msgid "Move selected file left" msgstr "Przenieś wybrany plik na lewo" msgid "Move all files left" msgstr "Przenieś wszystkie pliki na lewo" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "Kopie zapasowe zmodyfikowanych plików można znaleźć w .hg/Trashcan/" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "" msgid "Delete selected chunks from working copy?" msgstr "" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "" msgid "Are you sure?" msgstr "Jesteś pewien?" msgid "TortoiseHg New Shelf Name" msgstr "" msgid "Specify name of new shelf" msgstr "" msgid "Bad filename" msgstr "" #, python-format msgid "A shelf name cannot contain %s" msgstr "" msgid "File already exists" msgstr "Plik już istnieje" msgid "A shelf file of that name already exists" msgstr "" msgid "New shelf created" msgstr "" #, python-format msgid "Delete shelf file %s?" msgstr "" msgid "Shelf deleted" msgstr "" msgid "Revert all working copy changes?" msgstr "" #, python-format msgid "Clear contents of shelf file %s?" msgstr "" msgid "Shelf cleared" msgstr "" #, python-format msgid "Shelf: %s" msgstr "" #, python-format msgid "Patch: %s" msgstr "Patch: %s" msgid "Key:" msgstr "" msgid "Local sign" msgstr "" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "" msgid "No commit" msgstr "" msgid "Use custom commit message:" msgstr "" msgid "&Sign" msgstr "" #, python-format msgid "Sign - %s" msgstr "" msgid "Signature has been added" msgstr "" msgid "Repository command still running" msgstr "Komenda repozytorium ciągle działa" msgid "Filter:" msgstr "Filtr:" msgid "Check all files" msgstr "Zaznacz wszystkie pliki" msgid "Uncheck all files" msgstr "Odznacz wszystkie pliki" msgid "Status File List Toolbar" msgstr "" msgid "Remove filter, show root" msgstr "" #, python-format msgid "%s - status (selection filtered)" msgstr "" #, python-format msgid "%s - status" msgstr "%s - status" msgid "Check" msgstr "Zaznacz" msgid "Uncheck" msgstr "Odznacz" msgid "status" msgstr "status" msgid "Failed to refresh" msgstr "" msgid "No appropriate files" msgstr "Brak odpowiednich plików" msgid "No files found for this operation" msgstr "" msgid "Stat" msgstr "Stat" msgid "M" msgstr "M" msgid "Filename" msgstr "Nazwa pliku" msgid "Size (KB)" msgstr "Wielkość (KB)" #, python-format msgid "Checked count: %d" msgstr "Zaznaczona ilość: %d" msgid ", resolved merge" msgstr ", rozwiązane scalenie" msgid ", unresolved merge" msgstr ", nierozwiązane scalenie" #, python-format msgid "%s is modified" msgstr "%s jest zmodyfikowany" msgid "modified" msgstr "zmodyfikowany" #, python-format msgid "%s is added" msgstr "%s jest dodany" msgid "added" msgstr "dodany" #, python-format msgid "%s is removed" msgstr "%s jest usunięty" msgid "removed" msgstr "usunięty" #, python-format msgid "%s is not tracked (unknown)" msgstr "%s jest poza kontrolą wersji" msgid "unknown" msgstr "nieznany" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "" msgid "missing" msgstr "brakujący" #, python-format msgid "%s is ignored" msgstr "%s jest ignorowany" msgid "ignored" msgstr "ignorowany" #, python-format msgid "%s is not modified (clean)" msgstr "%s jest niezmodyfikowany (czysty)" msgid "clean" msgstr "czysty" #, python-format msgid "%s is a dirty subrepo" msgstr "%s jest brudnym subrepo" msgid "subrepo" msgstr "subrepo" msgid "Check for incoming changes from selected URL" msgstr "Sprawdź przychodzące zmiany z wybranego URL" msgid "Pull incoming changes from selected URL" msgstr "Pobierz zmiany ze wskazanego URLa" msgid "Detect outgoing changes to selected URL" msgstr "Wykryj wychodzące zmiany do wskazanego URLa" msgid "Push outgoing changes to selected URL" msgstr "Wyślij wychodzące zmiany do wybranego URL" msgid "Sync Bookmarks" msgstr "" msgid "Email outgoing changesets for remote repository" msgstr "Wyślij wychodzące zmiany emailem do zdalnego repozytorium" msgid "Manage pending perforce changelists" msgstr "" msgid "Unbundle" msgstr "" msgid "Selected Options:" msgstr "Wybrane opcje:" msgid "Path Edit Toolbar" msgstr "" msgid "Security" msgstr "Zabezpieczenia" msgid "Manage HTTPS connection security and user authentication" msgstr "" msgid "Save" msgstr "Zapisz" msgid "Save current URL under an alias" msgstr "" msgid "Paths in Repository Settings:" msgstr "" msgid "Related Paths:" msgstr "Powiązane ściezki:" msgid "branch: " msgstr "gałąź: " msgid "bookmark: " msgstr "zakładka: " #, python-format msgid "rev: %d (%s)" msgstr "rew: %d (%s)" msgid "Post Pull: " msgstr "Po pobraniu: " msgid "&Edit..." msgstr "" msgid "&Remove..." msgstr "" msgid "Repository not local" msgstr "Repozytorium nie jest lokalne" msgid "A terminal shell cannot be opened for remote" msgstr "" msgid "Confirm path delete" msgstr "Potwierdź usunięcie ściezki" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "" msgid "Select repository" msgstr "" msgid "No host specified" msgstr "" msgid "Please set a valid URL to continue." msgstr "" msgid "No remote repository URL or path set" msgstr "" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

                                                                            Please type and save a remote repository path on the " "Sync widget." msgstr "" msgid "Redundant authentication info" msgstr "" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" msgid "sync command already running" msgstr "" #, python-format msgid "Getting incoming changesets from %s..." msgstr "Pobieranie przychodzących zmian z %s..." #, python-format msgid "Found incoming changesets from %s" msgstr "Znaleziono przychodzące zmiany z %s" #, python-format msgid "No incoming changesets from %s" msgstr "Brak przychodzących zmian z %s" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "Pobieranie z %s anulowane, ret %d" #, python-format msgid "Pulling from %s..." msgstr "Ściąganie z %s..." #, python-format msgid "Pull from %s completed" msgstr "Pobieranie z %s zostało zakończone" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "Pobieranie z %s zostało przerwane, ret %d" msgid "Merge caused file conflicts" msgstr "Scalenie spowodowało konflikty plików" msgid "File conflicts need to be resolved" msgstr "Konflikty plików muszą zostać rozwiązane" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "Sprawdzanie wychodzących zmian do %s..." #, python-format msgid "%d outgoing changesets to %s" msgstr "%d wychodzących zmian do %s" #, python-format msgid "No outgoing changesets to %s" msgstr "Brak wychodzących zmian do %s" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "Wysyłanie zmian do %s przerwane, ret %d" msgid "Perforce pending..." msgstr "" #, python-format msgid "%s (submitted)" msgstr "%s (przekazany)" #, python-format msgid "%s (pending)" msgstr "%s (w trakcie)" msgid "Unable to parse p4pending output" msgstr "" #, python-format msgid "%d pending changelists found" msgstr "" msgid "No pending Perforce changelists" msgstr "" msgid "Aborted p4pending" msgstr "" msgid "Unable to determine pending changesets" msgstr "" msgid "Confirm Push to remote Repository" msgstr "Potwierdź wysłanie zmian do zdalnego repo" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" "Wysłać do zdalnego repozytorium\n" "%s\n" "?" #, python-format msgid "Push to %s aborted" msgstr "Wysyłanie %s zostało przerwane" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" #, python-format msgid "Pushing to %s..." msgstr "Popychanie do %s..." #, python-format msgid "Push to %s completed" msgstr "Wysyłanie do %s zostało zakończone" #, python-format msgid "Push to %s aborted, ret %d" msgstr "Wysyłanie do %s nie powiodło się. ret %d" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" msgid "Determining outgoing changesets to email..." msgstr "" msgid "No outgoing changesets" msgstr "Brak wychodzących zmian" #, python-format msgid "Outgoing aborted, ret %d" msgstr "" msgid "Select bundle file" msgstr "" msgid "Bundle files (*.hg)" msgstr "" msgid "Unable to remove URL" msgstr "Nie można usunąć URL" msgid "Post Pull Behavior" msgstr "Zachowanie po Pobraniu" msgid "Select post-pull operation for this repository" msgstr "Wybierz co ma się dziać po udanym pobraniu zmian do tego repozytorium" msgid "None - simply pull changesets" msgstr "Nic - po prostu pobierz zmiany" msgid "Update - pull, then try to update" msgstr "Aktualizuj - pobierz i spróbuj zaktualizować do najnowszej rewizji" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "" "Fetch - użyj narzędzia fetch (automatycznie scala i aktualizuje zmiany)" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "Fetch - włącz wtyczkę fetch (obecnie jest wyłączona!)" msgid "Rebase - rebase local commits above pulled changes" msgstr "" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "" msgid "Launch settings tool..." msgstr "Uruchom narzędzie ustawień..." msgid "Unable to save post pull operation" msgstr "" msgid "Save Path" msgstr "Zapisz ścieżkę" msgid "Alias" msgstr "Alias" msgid "URL" msgstr "URL" msgid "Remove authentication data from URL" msgstr "Usuń dane autentyfikacji z tego URL" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" msgid "Update subrepo paths" msgstr "" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" msgid "Unable to save an URL" msgstr "Nie można zapisać ścieżki URL" msgid "Confirm URL replace" msgstr "Potwierdź nadpisanie URL" #, python-format msgid "%s already exists, replace URL?" msgstr "%s już istnieje. Chcesz nadpisać URL?" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

                                                                            %s

                                                                            Replace it with the " "following URL?:

                                                                            %s" msgstr "" msgid "Security: " msgstr "Bezpieczeństwo: " #, python-format msgid "Host: %s" msgstr "Host: %s" msgid "Secure HTTPS Connection" msgstr "Bezpieczne połączenie HTTPS" msgid "Verify with Certificate Authority certificates (best)" msgstr "Weryfikuj certyfikat przez Urząd certyfikacji (najlepsze)" msgid "Verify with stored host fingerprint (good)" msgstr "Weryfikuj przez odcisk certyfikatu (dobre)" msgid "No host validation, but still encrypted (bad)" msgstr "Brak weryfikacji hosta, ale ciągle kodowane (złe)" msgid "### host certificate fingerprint ###" msgstr "### odcisk certyfikatu hosta ###" msgid "Query" msgstr "Generuj" msgid "TLS 1.0" msgstr "" msgid "TLS 1.1" msgstr "" msgid "TLS 1.2" msgstr "" msgid "Minimum Protocol" msgstr "" msgid "User Authentication" msgstr "Autentyfikacja użytkownika" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" "Opcjonalne. Nazwa użytkownika do autentyfikacji. Jeśli nie wprowadzisz,\n" "a zdalny komputer wymaga autentyfikacji będziesz poproszony o wprowadzenie.\n" "Zmienne środowiskowe dostępne w tym miejscu i można zrobić np. coś takiego:\n" "foo.username = $USER." msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" "Opcjonalne. Hasło do autentyfikacji. Jeśli nie podasz, a host zdalny\n" "będzie wymagał autentyfikowania się przez hasło, będziesz poproszony o jego " "podanie." msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Key" msgstr "" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Chain" msgstr "" msgid "Certificate Query Error" msgstr "" msgid "Select User Certificate Key File" msgstr "" msgid "PEM files (*.pem *.key)" msgstr "" msgid "Select User Certificate Chain File" msgstr "" msgid "PEM files (*.pem *.crt *.cer)" msgstr "" msgid "Unable to save authentication" msgstr "Nie można zapisać danych autentyfikacji" #, python-format msgid "%s - sync options" msgstr "%s - Opcje Synchronizacji" msgid "Allow push of a new branch (--new-branch)" msgstr "Pozwalaj na wysyłanie nowych gałęzi (--new-branch)" msgid "Force push or pull (override safety checks, --force)" msgstr "Wymusza wysłanie lub pobranie (nadpisuje spr. bezp., --force)" msgid "Temporarily disable configured HTTP proxy" msgstr "Chwilowo zablokuj proxy HTTP" msgid "Emit debugging output (--debug)" msgstr "Pokazuj szczegółowe rezultaty (--debug)" msgid "Work on patch queue (--mq)" msgstr "" #, python-format msgid "Tag - %s" msgstr "Tag - %s" msgid "Tag:" msgstr "Tag:" msgid "Tagged:" msgstr "Otagowany:" msgid "Local tag" msgstr "Tag lokalny" msgid "Replace existing tag (-f/--force)" msgstr "Nadpisz istniejący tag (-f/--force)" msgid "Use English commit message" msgstr "" msgid "local" msgstr "lokalny" msgid "Move" msgstr "Przenieś" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "" #, python-format msgid "Added tag %s for changeset %s" msgstr "" #, python-format msgid "Tag '%s' has been moved" msgstr "" #, python-format msgid "Tag '%s' has been added" msgstr "" #, python-format msgid "Removed tag %s" msgstr "Usunięto tag %s" #, python-format msgid "Tag '%s' has been removed" msgstr "" msgid "Patch files (*.diff *.patch)" msgstr "" #, python-format msgid "Import - %s" msgstr "Importowanie - %s" msgid "Browse Directory..." msgstr "Przeglądaj katalog..." msgid "Import from Clipboard" msgstr "Importuj ze Schowka" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "" msgid "Preview:" msgstr "Podgląd:" msgid "Shelf" msgstr "" msgid "Checking working directory status..." msgstr "Sprawdzanie stanu katalogu roboczego..." msgid "&Import" msgstr "&Importuj" msgid "Working directory is not clean! View changes..." msgstr "Katalog roboczy nie jest czysty! Zobacz zmiany..." msgid "Select patches" msgstr "Wybierz ścieżki" msgid "Select Directory containing patches" msgstr "" #, python-format msgid "%s patches" msgstr "" #, python-format msgid "%s will be imported to " msgstr "" msgid "Nothing to import" msgstr "Nic do zaimportowania" msgid "Strip:" msgstr "" msgid "Discard local changes, no backup (-f/--force)" msgstr "Odrzuć lokalne zmiany, bez backupu (-f/--force)" msgid "No backup (-n/--nobackup)" msgstr "Bez backupu (-n/--nobackup)" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "" msgstr[1] "" msgid "Unknown revision!" msgstr "Nieznana rewizja!" msgid "Detected uncommitted local changes." msgstr "Wykryto niewcommitowane lokalne zmiany." msgid "Do you want to keep them or discard them?" msgstr "" msgid "&Keep (--keep)" msgstr "" msgid "&Discard (--force)" msgstr "" msgid "Confirm Strip" msgstr "" #, python-format msgid "Strip - %s" msgstr "" msgid "&Strip" msgstr "" msgid "Topic:" msgstr "" msgid "&Rename" msgstr "" #, python-format msgid "Topic - %s" msgstr "" #, python-format msgid "A topic named \"%s\" already exists" msgstr "" #, python-format msgid "Topic '%s' has been added" msgstr "" #, python-format msgid "Topic '%s' does not exist" msgstr "" #, python-format msgid "Topic '%s' has been removed" msgstr "" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "" msgid "Parent 1:" msgstr "Rodzic 1:" msgid "Parent 2:" msgstr "Rodzic 2:" msgid "Pull subrepos from:" msgstr "" msgid "List updated files (--verbose)" msgstr "Listuj zmienione pliki (--verbose)" msgid "Discard local changes, no backup (-C/--clean)" msgstr "Odrzuć lokalne zmiany, bez backupu (-C/--clean)" msgid "Always merge (when possible)" msgstr "Zawsze scalaj (gdy to tylko możliwe)" msgid "(same as parent)" msgstr "(taki sam jak rodzic)" msgid "Activate bookmark?" msgstr "Aktywować zakładkę?" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

                                                                            Do " "you want to activate it?
                                                                            You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

                                                                            Select " "the bookmark that you want to activate and click OK.

                                                                            Click " "Cancel if you don't want to activate any of them.

                                                                            You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                                            " msgstr "" msgid "Deactivate current bookmark?" msgstr "" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" "Wykryto niewcommitowane zmiany w drzewie.\n" "Wybierz opcję by kontynuować:\n" msgid "Discard - discard local changes, no backup" msgstr "Odrzuć - odrzuć lokalne zmiany bez backupu" msgid "&Shelve" msgstr "" msgid "Shelve - move local changes to a patch" msgstr "Odłóż - przenieś lokalne zmiany do patcha" msgid "Merge - allow to merge with local changes" msgstr "Scal - zezwól na scalenie z lokalnymi zmianami" msgid "Confirm Update" msgstr "Potwierdź aktualizację" #, python-format msgid "Update - %s" msgstr "Aktualizuj - %s" msgid "[non-existant]" msgstr "" msgid "Tool launch failure" msgstr "" #, python-format msgid "%s : %s" msgstr "%s : %s" msgid "No diff tool found" msgstr "" msgid "No visual diff tools were detected" msgstr "" msgid "[working copy]" msgstr "[kopia robocza]" msgid "[original]" msgstr "[oryginał]" msgid "Unable to find changeset" msgstr "Nie można znaleźć zestawu zmian" msgid "You likely need to refresh this application" msgstr "Przydałoby ci się odświeżyć aplikację" msgid "No file changes" msgstr "Brak zmian w pliku" msgid "There are no file changes to view" msgstr "" msgid "working changes" msgstr "" #, python-format msgid "changeset %d:%s" msgstr "zestaw zmian %d:%s" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "rewizje %d:%s do %d:%s" msgid "Visual Diffs - " msgstr "" msgid " filtered" msgstr "" msgid "Temporary files are removed when this dialog is closed" msgstr "" msgid "Select Tool:" msgstr "Wybierz narzędzie:" msgid "Dir diff to p1" msgstr "" msgid "Dir diff to p2" msgstr "" msgid "3-way dir diff" msgstr "" msgid "Directory diff" msgstr "" msgid "Confirm Discard" msgstr "Potwierdź odrzucenie" msgid "Discard outstanding changes to working directory?" msgstr "Odrzucić odstające zmiany do kopii roboczej?" msgid "Config files (*.conf *.config *.ini)" msgstr "" msgid "Open hgweb config" msgstr "" msgid "Save hgweb config" msgstr "" msgid "Path:" msgstr "Ścieżka:" msgid "Local Path:" msgstr "Lokalna ścieżka:" msgid "Select Repository" msgstr "Wybierz repozytorium" msgid "Add Path to Serve" msgstr "" msgid "Edit Path to Serve" msgstr "" msgid "Local Path" msgstr "Lokalna ścieżka" msgid "Webconf" msgstr "" msgid "Config File:" msgstr "Plik konfiguracyjny:" msgid "Open" msgstr "Otwórz" msgid "New &Workbench" msgstr "" msgid "&New Repository..." msgstr "&Nowe repozytorium..." msgid "Clon&e Repository..." msgstr "" msgid "&Open Repository..." msgstr "&Otwórz repozytorium..." msgid "&File" msgstr "&Plik" msgid "&View" msgstr "&Widok" msgid "&Repository" msgstr "&Repozytorium" msgid "&Help" msgstr "Pomoc" msgid "&Dock Toolbar" msgstr "" msgid "&Task Toolbar" msgstr "" msgid "&Custom Toolbar" msgstr "" msgid "S&ync Toolbar" msgstr "" msgid "&Close Repository" msgstr "&Zamknij repozytorium" msgid "Sh&ow Repository Registry" msgstr "" msgid "Show &Patch Queue" msgstr "" msgid "Show Conso&le" msgstr "" msgid "Place Console in Doc&k Area" msgstr "" msgid "R&epository Registry Options" msgstr "" msgid "Save Open Repositories on E&xit" msgstr "" msgid "Sa&ve Current Sync Paths on Exit" msgstr "" msgid "Show Tas&k Tab" msgstr "" msgid "&Commit" msgstr "&Commit" msgid "&Patch Branch" msgstr "" msgid "Revision &Details" msgstr "Szczegóły &rewizji" msgid "&Search" msgstr "&Szukaj" msgid "S&ynchronize" msgstr "Synchronizacja" msgid "Refresh current repository" msgstr "Odśwież aktualne repozytorium" msgid "Refresh &Task Tab" msgstr "Odśwież &Tab Zadań" msgid "Refresh only the current task tab" msgstr "" msgid "Load &All Revisions" msgstr "" msgid "Load all revisions into graph" msgstr "Załaduj wszystkie rewizje do grafu" msgid "Go to current revision" msgstr "Idź do aktualnej rewizji" msgid "&Goto Revision..." msgstr "" msgid "Go to a specific revision" msgstr "" msgid "Filter graph with revision sets or branches" msgstr "Filtruj graf numerami rew lub gałęziami" msgid "&Workbench Toolbars" msgstr "" msgid "&Lock File..." msgstr "" msgid "Lock or unlock files" msgstr "" msgid "Update working directory or switch revisions" msgstr "" msgid "&Shelve..." msgstr "" msgid "&Import Patches..." msgstr "" msgid "U&nbundle..." msgstr "" msgid "&Merge..." msgstr "" msgid "Merge with the other head of the current branch" msgstr "" msgid "&Resolve..." msgstr "" msgid "R&ollback/Undo..." msgstr "" msgid "&Purge..." msgstr "" msgid "&Bisect..." msgstr "" msgid "&Verify" msgstr "" msgid "Re&cover" msgstr "" msgid "&Web Server" msgstr "" msgid "E&xplorer Help" msgstr "" msgid "&Readme" msgstr "" msgid "About &Qt" msgstr "" msgid "&About TortoiseHg" msgstr "" msgid "&Incoming" msgstr "" msgid "&Pull" msgstr "" msgid "&Outgoing" msgstr "" msgid "P&ush" msgstr "" msgid "&Sync Bookmarks..." msgstr "" #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" msgid "Check for incoming changes" msgstr "" msgid "Pull incoming changes" msgstr "" msgid "Detect outgoing changes" msgstr "" msgid "Push outgoing changes" msgstr "" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" #, python-format msgid "Execute custom tool '%s'" msgstr "" msgid "Custom Toolbar &Settings" msgstr "" msgid "TortoiseHg Workbench" msgstr "Warsztat TortoiseHg" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "" msgid "Goto revision" msgstr "Idź do rewizji" msgid "Enter revision identifier" msgstr "Wprowadź identyfikator rewizji" msgid "Select repository directory to open" msgstr "Wybierz repozytorium do otwarcia" msgid "README not configured" msgstr "README nie jest skonfigurowany" msgid "" "A README file is not configured for the current repository.

                                                                            To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" "Plik README nie jest skonfigurowany dla wybranego repozytorium.

                                                                            Aby " "skonfigurować plik README dla repozytorium, otwórz ustawienia repozytorium i " "dodaj klucz 'readme' do sekcji 'tortoisehg' i tam wskaż nazwę " "pliku lub ścieżkę URL do wybranego przez ciebie pliku README." msgid "Issue Tracker Plugin Error" msgstr "" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "" msgid "This error will not be shown again until you restart the workbench" msgstr "" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "" msgid "Error executing \"commit finished\" trigger" msgstr "" msgid "Cannot open Plugin Options dialog" msgstr "" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "" msgid "[--insecure] [SOURCE]" msgstr "" #, python-format msgid "unsupported URL: %s" msgstr "" #, python-format msgid "%s certificate error: no certificate received" msgstr "" msgid "move after the specified patch" msgstr "" msgid "[--after PATCH] PATCH..." msgstr "" msgid "unknown patch to move specified" msgstr "" msgid "invalid patch position specified" msgstr "" msgid "cannot move applied patches" msgstr "" #, python-format msgid "patch %s not in series" msgstr "" msgid "cannot move into applied patches" msgstr "" msgid "abort: " msgstr "anulowane: " msgid "hint: " msgstr "podp: " #, python-format msgid "HTTP Error: %d (%s)" msgstr "Błąd HTTP: %d (%s)" #, python-format msgid "URLError: %s" msgstr "Błąd HTTP: %s" msgid "SSL: Server certificate verify failed" msgstr "SSL: Weryfikacja certyfikatu serwera nie powiodła się" #, python-format msgid "SSL: unknown error %s:%s" msgstr "SSL: nieznany błąd %s:%s" #, python-format msgid "SSL error: %s" msgstr "Błąd SSL: %s" msgid "hgsubversion packaged with thg" msgstr "" msgid "hggit packaged with thg" msgstr "" msgid "inotify is not supported on this platform" msgstr "inotify jest nieobsługiwane na tej platformie" msgid "eol is incompatible with win32text" msgstr "eol jest niezgodne z win32text" msgid "win32text is incompatible with eol" msgstr "win32text jest niezgodne z eol" msgid "hgsubversion is incompatible with perfarce" msgstr "" msgid "perfarce is incompatible with hgsubversion" msgstr "" msgid "Workbench custom toolbar" msgstr "" msgid "Revision details context menu" msgstr "" msgid "Pair selection context menu" msgstr "" msgid "Multiple selection context menu" msgstr "" msgid "Commit context menu" msgstr "" msgid "File context menu (on manifest and revision details)" msgstr "" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "%d rok" msgstr[1] "%d lata" msgstr[2] "%d lat" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "%d miesiąc" msgstr[1] "%d miesiące" msgstr[2] "%d miesięcy" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "%d tydzień" msgstr[1] "%d tygodnie" msgstr[2] "%d tygodni" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "%d dzień" msgstr[1] "%d dni" msgstr[2] "%d dni" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "%d godzina" msgstr[1] "%d godziny" msgstr[2] "%d godzin" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "%d minuta" msgstr[1] "%d minuty" msgstr[2] "%d minut" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d sekunda" msgstr[1] "%d sekundy" msgstr[2] "%d sekund" msgid "in the future" msgstr "w przyszłości" msgid "now" msgstr "teraz" #, python-format msgid "command parse error: %s" msgstr "błąd parsowania komendy: %s" #, python-format msgid "no matches found: %s" msgstr "nie znaleziono odpowiadających elementów: %s" msgid "Commit..." msgstr "Commituj..." msgid "Commit changes in repository" msgstr "" msgid "Create Repository Here" msgstr "Utwórz repozytorium tutaj" msgid "Create a new repository" msgstr "Utwórz nowe repozytorium" msgid "Clone..." msgstr "Klonuj..." msgid "Create clone here from source" msgstr "Stwórz tutaj klon ze źródła" msgid "File Status" msgstr "Status pliku" msgid "Repository status & changes" msgstr "Status repozytorium i zmian" msgid "Add Files..." msgstr "Dodaj pliki..." msgid "Add files to version control" msgstr "Dodaj pliki do systemu kontroli wersji" msgid "Revert Files..." msgstr "Odrzuć zmiany w plikach..." msgid "Revert file changes" msgstr "Odrzuć zmiany w pliku" msgid "Forget Files..." msgstr "Zapomnij o plikach..." msgid "Remove files from version control" msgstr "Usuń pliki z systemu kontroli wersji" msgid "Remove Files..." msgstr "Usuń pliki..." msgid "Rename File" msgstr "Zmień nazwę" msgid "Rename file or directory" msgstr "Zmień nazwę pliku lub katalogu" msgid "View change history in repository" msgstr "" msgid "File History" msgstr "Historia pliku" msgid "View change history of selected files" msgstr "" msgid "Shelve Changes" msgstr "" msgid "Move changes between working dir and patch" msgstr "" msgid "Synchronize" msgstr "Synchronizacja" msgid "Synchronize with remote repository" msgstr "Synchronizuj ze zdalnym repozytorium" msgid "Start web server for this repository" msgstr "Uruchom serwer dla tego repozytorium" msgid "Update..." msgstr "Aktualizuj..." msgid "Update working directory" msgstr "Aktualizuj katalog roboczy" msgid "Update Icons" msgstr "Odśwież ikony" msgid "Update icons for this repository" msgstr "Odśwież ikony dla tego repozytorium" msgid "Global Settings" msgstr "Globalne Ustawienia" msgid "Configure user wide settings" msgstr "Konfiguruj ustawienia użytkownika" msgid "Repository Settings" msgstr "Ustawienia repozytorium" msgid "Configure repository settings" msgstr "Konfiguruj ustawienia repozytorium" msgid "Explorer Extension Settings" msgstr "Ustawienia rozszerzenia powłoki" msgid "Configure Explorer extension" msgstr "Konfiguruj rozszerzenie powłoki" msgid "About TortoiseHg" msgstr "O TortoiseHG" msgid "Show About Dialog" msgstr "Pokaż O TortoiseHg" msgid "Diff to parent" msgstr "Diff z rodzicem" msgid "View changes using GUI diff tool" msgstr "Zobacz zmiany przy użyciu narzędzia GUI diff" msgid "Edit Ignore Filter" msgstr "Zobacz filtr ignorowanych plików" msgid "Edit repository ignore filter" msgstr "Edytuj ignorowane pliki w repozytorium" msgid "Guess Renames" msgstr "Zgaduj zmiany nazw" msgid "Detect renames and copies" msgstr "Wykryj zmiany nazw plików oraz kopie" msgid "Search History" msgstr "Przeszukaj historię" msgid "Search file revisions for patterns" msgstr "Szukaj wzorców w rewizjach" msgid "DnD Synchronize" msgstr "Synchronizacja DnD" msgid "Synchronize with dragged repository" msgstr "Synchronizuj z przeciągniętym repozytorium" #, python-format msgid "unrecognized response: %s" msgstr "" msgid "password: " msgstr "hasło: " #, python-format msgid "repository %s not found" msgstr "Repozytorium %s nie zostało znalezione" msgid "win32ill: cannot create window for messages" msgstr "" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "" msgid "win32ill: interrupted while stopping message loop\n" msgstr "" #~ msgid "this is a binary file\n" #~ msgstr "to jest plik binarny\n" #~ msgid " and " #~ msgstr " i " #~ msgid "run server in background" #~ msgstr "uruchom serwer w tle" #~ msgid "listening at http://%s%s/%s (%s:%d)\n" #~ msgstr "nasłuchiwanie na http://%s%s/%s (%s:%d)\n" #~ msgid "cannot start server: " #~ msgstr "nie można wystartować serwera: " #~ msgid "SSL certificate file" #~ msgstr "plik certyfikatu SSL" #~ msgid "(version %s)" #~ msgstr "(wersja %s)" #~ msgid "Do you want to abort?" #~ msgstr "Czy chcesz przewać?" #~ msgid "Confirm Abort" #~ msgstr "Potwierdź przerwanie" #~ msgid "with %s" #~ msgstr "z %s" #~ msgid "A new version of TortoiseHg is ready for download!" #~ msgstr "Nowa wersja TortoiseHG jest dostępna do pobrania!" #~ msgid "Archive revision:" #~ msgstr "Wersje archiwalne:" #~ msgid "Archive" #~ msgstr "Archiwum" #~ msgid "Failed to archive" #~ msgstr "Nie udało się zarchiwizować" #~ msgid "Compressed zip archives" #~ msgstr "Skompresowane archiwa zip" #~ msgid "Canceled archiving" #~ msgstr "Archiwizacja anulowana" #~ msgid "Archived successfully" #~ msgstr "Pomyślnie zarchiwizowano" #~ msgid "All Files (*.*)" #~ msgstr "Wszystkie pliki (*.*)" #~ msgid "Several icons are courtesy of the TortoiseSVN project" #~ msgstr "Niektóre ikony zostały pobrane z projektu TortoiseSVN" #~ msgid "Copyright 2008-2010 Steve Borho and others" #~ msgstr "Prawa autorskie 2008-2010 Steve Borho i inni" #~ msgid "Backout changeset - %s" #~ msgstr "Wycofaj pakiet zmian - %s" #~ msgid "Changeset Description" #~ msgstr "Opis pakietu zmian" #~ msgid "Backout commit message" #~ msgstr "Wiadomość dotycząca wycofania" #~ msgid "Backout" #~ msgstr "Wycofanie" #~ msgid "Canceled backout" #~ msgstr "Anulowano wycofanie" #~ msgid "Failed to backout" #~ msgstr "Nie udało się wycofać" #~ msgid "unexpected type: %s" #~ msgstr "niespodziewany typ: %s" #~ msgid "Old name:" #~ msgstr "Stara nazwa" #~ msgid "unexpected response id: %s" #~ msgstr "niespodziewany identyfikator odpowiedzi: %s" #~ msgid "Bookmark input is empty" #~ msgstr "Wpis zakładki jest pusty" #~ msgid "Please enter bookmark name" #~ msgstr "Wprowadź nazwę zakładki" #~ msgid "Bookmarking completed" #~ msgstr "Tworzenie zakładki zakończone pomyślnie" #~ msgid "Bookmark \"%s\" has been added" #~ msgstr "Zakładka \"%s\" została dodana" #~ msgid "Error in bookmarking" #~ msgstr "Błąd podczas tworzenia zakładki" #~ msgid "Bookmark \"%s\" has been moved" #~ msgstr "Zakładka \"%s\" została przesunięta" #~ msgid "Bookmark name is empty" #~ msgstr "Nazwa zakładki jest pusta" #~ msgid "Please select bookmark name to remove" #~ msgstr "Wybierz nazwę zakładki, którą chcesz usunąć" #~ msgid "Bookmark \"%s\" has been removed" #~ msgstr "Zakładka \"%s\" została usunięta" #~ msgid "Bookmark new name input is empty" #~ msgstr "Pole nowej nazwy zakładki jest puste" #~ msgid "Please enter new bookmark name" #~ msgstr "Wprowadź nową nazwę zakładki" #~ msgid "Bookmark \"%s\" has been renamed to \"%s\"" #~ msgstr "Nazwa zakładki \"%s\" została zmieniona na \"%s\"" #~ msgid "a bookmark named \"%s\" already exists" #~ msgstr "zakładka o nazwie \"%s\" już istnieje" #~ msgid "No bookmark named \"%s\" exists" #~ msgstr "Nie istnieje zakładka o nazwie \"%s\"" #~ msgid "type" #~ msgstr "typ" #~ msgid "path" #~ msgstr "ścieżka" #~ msgid "browser" #~ msgstr "przeglądarka" #~ msgid "Save as.." #~ msgstr "Zapisz jako..." #~ msgid "%s changeset " #~ msgstr "Pakiet zmian %s " #~ msgid "[All Files]" #~ msgstr "[Wszystkie pliki]" #~ msgid "Repository Error: %s, refresh suggested" #~ msgstr "Błąd repozytorium: %s, sugeruje się odświeżenie" #~ msgid "TortoiseHg Clone" #~ msgstr "Klon TortoiseHg" #~ msgid "Source path:" #~ msgstr "Ścieżka źródłowa:" #~ msgid "Advanced options" #~ msgstr "Opcje zaawansowane" #~ msgid "Use uncompressed transfer" #~ msgstr "Użyj transferu nieskompresowanego" #~ msgid "Clone" #~ msgstr "Klonuj" #~ msgid "Cloned successfully" #~ msgstr "Klonowanie zakończone pomyślnie" #~ msgid "Canceled updating" #~ msgstr "Anulowano aktualizację" #~ msgid "Failed to clone" #~ msgstr "Nie udało się sklonować" #~ msgid "Source path is empty" #~ msgstr "Ścieżka źródłowa jest pusta" #~ msgid "Please enter a valid source path" #~ msgstr "Wprowadź poprawną ścieżkę źródłową" #~ msgid "Source and destination are the same" #~ msgstr "Źródło i miejsce docelowe są identyczne" #~ msgid "Please specify different paths" #~ msgstr "Wybierz różne ścieżki" #~ msgid "Branch Operations" #~ msgstr "Operacje na gałęziach" #~ msgid "" #~ "The directory \"%s\" isn't empty!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "Katalog \"%s\" nie jest pusty!\n" #~ "Czy chcesz go zastąpić?" #~ msgid "" #~ "The destination \"%s\" already exists!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "Ścieżka docelowa \"%s\" już istnieje!\n" #~ "Czy chcesz ją zastąpić?" #~ msgid "_File History" #~ msgstr "Hi_storia plików" #~ msgid " %s is larger than the specified max diff size" #~ msgstr " %s jest większe niż ustalony maksymalny rozmiar różnicy" #~ msgid "Nothing Commited" #~ msgstr "Nic nie wcommitowano" #~ msgid "File is binary.\n" #~ msgstr "Plik jest binarny.\n" #~ msgid "Add special files (.hgignore, ...)" #~ msgstr "Dodaj specjalne pliki (.hgignore, ...)" #~ msgid "Destination path is empty" #~ msgstr "Ścieżka docelowa jest pusta" #~ msgid "Please enter the directory path" #~ msgstr "Proszę wskazać ścieżkę katalogu" #~ msgid "Unable to create new repository" #~ msgstr "Nie można utworzyć nowego repozytorium" #~ msgid "Error when creating repository" #~ msgstr "Błąd podczas tworzenia repozytorium" #~ msgid "Undo" #~ msgstr "Cofnij" #~ msgid "Reject" #~ msgstr "Odrzuć" #~ msgid "Backout..." #~ msgstr "Wycofaj..." #~ msgid "Export" #~ msgstr "Eksport" #~ msgid "Diff to Local" #~ msgstr "Diff z lokalną wersją" #~ msgid "Unable to save file" #~ msgstr "Nie można zapisać pliku" #~ msgid "Character encoding name" #~ msgstr "Nazwa kodowania znaków" #~ msgid "Diff" #~ msgstr "Diff" #~ msgid "&Yes (--force)" #~ msgstr "&Tak (--force)" #~ msgid "View missing" #~ msgstr "Zobacz brakujące" #~ msgid "Remove versioned" #~ msgstr "Usuń wersjonowane" #~ msgid "Mark unresolved" #~ msgstr "Oznacz jako nierozwiązane" #~ msgid "Mark resolved" #~ msgstr "Oznacz jako rozwiązane" #~ msgid "View other" #~ msgstr "Zobacz inne" #~ msgid "Rename..." #~ msgstr "Zmień nazwę..." #~ msgid " Aborted" #~ msgstr " Przerwane" #~ msgid "Verify" #~ msgstr "Weryfikuj" #~ msgid "Incoming" #~ msgstr "Przychodzące" #~ msgid "Outgoing" #~ msgstr "Wychodzące" #~ msgid "merging " #~ msgstr "scalanie " #~ msgid "Advanced" #~ msgstr "Zaawansowane" #~ msgid "Status: %s" #~ msgstr "Status: %s" #~ msgid "Send" #~ msgstr "Wyślij" #~ msgid "Send emails" #~ msgstr "Wyślij emaile" #~ msgid "Test" #~ msgstr "Testuj" #~ msgid "Configure" #~ msgstr "Konfiguruj" #~ msgid "Configure email settings" #~ msgstr "Konfiguruj ustawienia emaila" #~ msgid "Flags:" #~ msgstr "Flagi:" #~ msgid "Filters" #~ msgstr "Filtry" #~ msgid "Unknown Files" #~ msgstr "Nieznane pliki" #~ msgid "Move Up" #~ msgstr "Do góry" #~ msgid "Move Down" #~ msgstr "Do dołu" #~ msgid "Keywords" #~ msgstr "Słowa kluczowe" #~ msgid "Branches..." #~ msgstr "Gałęzie..." #~ msgid "&Accept" #~ msgstr "&Akceptuj" #~ msgid "&Reject" #~ msgstr "Od&rzuć" #~ msgid "Revision..." #~ msgstr "Rewizja..." #~ msgid "Changes" #~ msgstr "Zmiany" #~ msgid "Summary" #~ msgstr "Podsumowanie" #~ msgid "Local Date" #~ msgstr "Lokalny czas" #~ msgid "UTC Date" #~ msgstr "Czas UTC" #~ msgid "Age" #~ msgstr "Wiek" #~ msgid "Bisect" #~ msgstr "Bisekcja" #~ msgid "After Pull:" #~ msgstr "Po pociągnięciu:" #~ msgid "Push to %s" #~ msgstr "Popchnij do %s" #~ msgid "Pull to %s" #~ msgstr "Pociągnij z %s" #~ msgid "Repository is empty" #~ msgstr "Repozytorium jes puste" #~ msgid "ID" #~ msgstr "ID" #~ msgid "Rev/ID" #~ msgstr "Rev/ID" #~ msgid "Universal Date" #~ msgstr "Uniwersalna data" #~ msgid "Merge target (other)" #~ msgstr "Scal cel (inne)" #~ msgid "Use merge tool:" #~ msgstr "Użyj toola do scalania:" #~ msgid "Merged successfully" #~ msgstr "Pomyślnie scalono" #~ msgid "Canceled merging" #~ msgstr "Anulowano scalanie" #~ msgid "Cannot merge" #~ msgstr "Nie można scalić" #~ msgid "Invalid path" #~ msgstr "Zła ścieżka" #~ msgid "Start server" #~ msgstr "Uruchom serwer" #~ msgid "Stop server" #~ msgstr "Zatrzymaj serwer" #~ msgid "Browse" #~ msgstr "Przeglądaj" #~ msgid "HTTP Port:" #~ msgstr "Port HTTP:" #~ msgid "Invalid port 2048..65535" #~ msgstr "Zły port 2048...65535" #~ msgid "port to use (default: 8000)" #~ msgstr "port do użycia (domyślnie: 8000)" #~ msgid "Apply" #~ msgstr "Zastosuj" #~ msgid "Save As" #~ msgstr "Zapisz jako" #~ msgid "Save selected changes" #~ msgstr "Zapisz wybrane zmiany" #~ msgid "View" #~ msgstr "Zobacz" #~ msgid "?: unknown" #~ msgstr "?: nieznane" #~ msgid "M: modified" #~ msgstr "M: zmodyfikowane" #~ msgid "I: ignored" #~ msgstr "I: ignorowane" #~ msgid "A: added" #~ msgstr "A: dodane" #~ msgid "C: clean" #~ msgstr "C: czyste" #~ msgid "R: removed" #~ msgstr "R: usunięte" #~ msgid "!: deleted" #~ msgstr "!: usunięte" #~ msgid "S: subrepo" #~ msgstr "S: subrepo" #~ msgid "View '%s'" #~ msgstr "Zobacz '%s'" #~ msgid "===== Diff to first parent %d:%s =====\n" #~ msgstr "===== Diff do pierwszego rodzica %d:%s =====\n" #~ msgid "" #~ "\n" #~ "===== Diff to second parent %d:%s =====\n" #~ msgstr "" #~ "\n" #~ "===== Diff do drugiego rodzica %d:%s =====\n" #~ msgid "Nothing Diffed" #~ msgstr "Żadnych różnic" #~ msgid "Nothing Reverted" #~ msgstr "Nic nie przywrócono" #~ msgid "Nothing Added" #~ msgstr "Nie nie dodano" #~ msgid "Nothing Removed" #~ msgstr "Nic nie usunięto" #~ msgid "Revert files?" #~ msgstr "Odrzucić pliki?" #~ msgid "&Yes (backup changes)" #~ msgstr "Tak (backup zmian)" #~ msgid "Yes (&discard changes)" #~ msgstr "Tak (odrzuć zmiany)" #~ msgid "Confirm Delete Unrevisioned" #~ msgstr "Potwierdź Usuwanie Nieśledzonych plików" #~ msgid "Delete the following unrevisioned files?" #~ msgstr "Usunąć poniższe nieśledzone pliki?" #~ msgid "Delete Errors" #~ msgstr "Błędy usuwania" #~ msgid "unknown field name: %s" #~ msgstr "nieznana nazwa pola: %s" #~ msgid " Pull " #~ msgstr " Pociągnij " #~ msgid "Pull changes from selected repository" #~ msgstr "Pociągnij zmiany z wybranego repozytorium" #~ msgid "Display local changes that will be pushed to selected repository" #~ msgstr "" #~ "Pokaż lokalne zmiany, które mają być popchnięte do wybranego repozytorium" #~ msgid "Push local changes to selected repository" #~ msgstr "Popchnij zmiany do wybranego repozytorium" #~ msgid "Advanced Options" #~ msgstr "Opcje zaawansowane" #~ msgid "Target revision:" #~ msgstr "Docelowa rewizja:" #~ msgid "Incoming/Outgoing" #~ msgstr "Przychodzące/Wychodzące" #~ msgid "Coloring Style" #~ msgstr "Styl kolorowania" #~ msgid "Font" #~ msgstr "Czcionka" #~ msgid "File List" #~ msgstr "Lista plików" #~ msgid "Japanese on Windows" #~ msgstr "Japoński na Windowsie" #~ msgid "Edit remote repository path" #~ msgstr "Edytuj ścieżkę zdalnego repozytorium" #~ msgid "Folder" #~ msgstr "Katalog" #~ msgid "URL Details" #~ msgstr "Szczegóły URL" #~ msgid "Select Local Folder" #~ msgstr "Wybierz lokalny katalog" #~ msgid "Alias name is empty" #~ msgstr "Alias jest pusty" #~ msgid "Please enter alias name" #~ msgstr "Proszę wprowadzić nazwę aliasa" #~ msgid "Overwrite existing '%s' path?" #~ msgstr "Nadpisać istniejącą '%s' ścieżkę?" #~ msgid "User global settings" #~ msgstr "Użyj ustawień globalnych" #~ msgid "Confirm Switch" #~ msgstr "Potwierdź zamianę" #~ msgid "Switch after saving changes?" #~ msgstr "Zamienić po zapisie zmian?" #~ msgid "TortoiseHg Configure Repository - " #~ msgstr "TortoiseHg Konfiguracja Repozytorium - " #~ msgid "TortoiseHg Configure User-Global Settings" #~ msgstr "TortoiseHg Konfiguracja Użytkownika - Globalne Ustawienia" #~ msgid "Exit after saving changes?" #~ msgstr "Zamknąć po zapisaniu zmian?" #~ msgid "Remote repository paths" #~ msgstr "Ścieżki zdalnych repozytoriów" #~ msgid "Repository Path" #~ msgstr "Ścieżki repozytoriów" #~ msgid "Set as _default" #~ msgstr "Ustaw jako _domyślny" #~ msgid "No Repository Found" #~ msgstr "Nie znaleziono żadnego repozytorium" #~ msgid "Theme default fonts" #~ msgstr "Domyślne czcionki motywu" #~ msgid "Preset fonts:" #~ msgstr "Obecne czcionki:" #~ msgid "Custom fonts:" #~ msgstr "Czcionki użytkownika:" #~ msgid " - Select Preset -" #~ msgstr " - Wybierz zestaw -" #~ msgid " - Select Issue Tracker -" #~ msgstr " - Wybierz Issue Tracker -" #~ msgid "" #~ "Select issue tracker plugin to use. Links to plugins can be found at " #~ "http://tortoisesvn.net/issuetrackerplugins" #~ msgstr "" #~ "Wybierz wtyczkę do Issue Trackera. Linki do pluginów mogą być znalezione " #~ "pod adresem: http://tortoisesvn.net/issuetrackerplugins" #~ msgid "Configure Plugin" #~ msgstr "Konfiguracja wtyczki" #~ msgid "Suggested" #~ msgstr "Sugerowane" #~ msgid "History" #~ msgstr "Historia" #~ msgid "Unable to parse a config file" #~ msgstr "Nie można przeczytać pliku konfiguracyjnego" #~ msgid "" #~ "%s\n" #~ "Reverting to read-only mode." #~ msgstr "" #~ "%s\n" #~ "Wracanie do trybu tylko do odczytu" #~ msgid "Skipped saving path with no alias" #~ msgstr "Pominięto zapisywanie ścieżki bez aliasu" #~ msgid "Import" #~ msgstr "Import" #~ msgid "Imported successfully" #~ msgstr "Importowanie pomyślnie zakończone" #~ msgid "Canceled importing" #~ msgstr "Importowanie anulowane" #~ msgid "Confirm Close" #~ msgstr "Potwierdź zamknięcie" #~ msgid "Do you want to close?" #~ msgstr "Na pewno chcesz zamknąć?" #~ msgid "Select Patches" #~ msgstr "Wybierz ścieżki" #~ msgid "%s will be imported to the" #~ msgstr "%s będzie zaimportowany do" #~ msgid "%s will be imported to the repository" #~ msgstr "%s będzie zapimportowany do repozytorium" #~ msgid "unexpected destination name: %s" #~ msgstr "nieoczekiwana nazwa docelowa: %s" #~ msgid "Unapply last patch" #~ msgstr "Wycofaj ostatni patch" #~ msgid "Apply next patch" #~ msgstr "Zastosuj następny patch" #~ msgid "Patch" #~ msgstr "Patch" #~ msgid "Yes (&keep)" #~ msgstr "Tak(&zatrzymaj)" #~ msgid "Do you want to delete '%(name)s'?" #~ msgstr "Czy chcesz usunąć '%(name)s'?" #~ msgid "Do you want to delete these patches?" #~ msgstr "Czy chcesz usunąć te patche?" #~ msgid "Top" #~ msgstr "Góra" #~ msgid "Up" #~ msgstr "Góra" #~ msgid "Down" #~ msgstr "Dół" #~ msgid "Bottom" #~ msgstr "Dół" #~ msgid "Reorder" #~ msgstr "Przesortuj" #~ msgid "Force" #~ msgstr "Wymuś" #~ msgid "Succeed" #~ msgstr "Sukces" #~ msgid "New Patch Name" #~ msgstr "Nowa nazwa patcha" #~ msgid "Uncommitted Local Changes" #~ msgstr "Niewcommitowane lokalne zmiany" #~ msgid "Show graph" #~ msgstr "Pokaż graf" #~ msgid "Show status" #~ msgstr "Pokaż status" #~ msgid "Show name" #~ msgstr "Pokaż nazwę" #~ msgid "Show title" #~ msgstr "Pokaż tytuł" #~ msgid "Show message" #~ msgstr "Pokaż wiadomość" #~ msgid "Show internal branches" #~ msgstr "Pokaż wewnętrzne gałęzie" #~ msgid "Abandon" #~ msgstr "Odrzuć" #~ msgid "Abandon Error" #~ msgstr "Błąd odrzucania" #~ msgid "Backup all (default)" #~ msgstr "Backup wszystkiego (domyślnie)" #~ msgid "Backup unrelated changesets (-b/--backup)" #~ msgstr "Backup niezwiązanych zestawów zmian" #~ msgid "%s changesets" #~ msgstr "%s zestawów zmian" #~ msgid "" #~ "Detected uncommitted local changes.\n" #~ "Do you want to discard them and continue?" #~ msgstr "" #~ "Wykryto niewcommitowane lokalne zmiany.\n" #~ "Czy chcesz je odrzucić i kontynuować?" #~ msgid "Saved at: %s" #~ msgstr "Zapisano w: %s" #~ msgid "Open..." #~ msgstr "Otwórz..." #~ msgid "Always show log" #~ msgstr "Zawsze pokazuj log" #~ msgid "Updated successfully" #~ msgstr "Update zakończony sukcesem" #~ msgid "Failed to update" #~ msgstr "Update zakończony niepowodzeniem" #~ msgid "" #~ "Detected uncommitted local changes in working tree.\n" #~ "Please select to continue:\n" #~ "\n" #~ msgstr "" #~ "Wykryto niewcommitowane lokalne zmiany w aktywnym drzewie.\n" #~ "Wybierz by kontynuować:\n" #~ "\n" #~ msgid "[canceled by user]\n" #~ msgstr "[przerwane przez użytkownika]\n" #~ msgid "changeset " #~ msgstr "zestaw zmian " #~ msgid "revisions %d to %d" #~ msgstr "rewizje %d do %d" #~ msgid "Unable to delete temp files" #~ msgstr "Nie można usunąć plików tymczasowych" #~ msgid "Try &Again" #~ msgstr "Spróbuj ponownie" #~ msgid "&Quit" #~ msgstr "&Zakończ" #~ msgid "Unsupported line endings type: %s" #~ msgstr "Nieobsługiwany typ znacznika końca pliku: %s" #~ msgid "this modifies a binary file (all or nothing)\n" #~ msgstr "to modyfikuje plik binarny (wszystko albo nic)\n" #~ msgid "file copy of %s failed\n" #~ msgstr "kopiowanie pliku %s się nie powiodło\n" #~ msgid "removing backup file : %r\n" #~ msgstr "usuwanie pliku backupu : %r\n" #~ msgid "applying patch\n" #~ msgstr "stosowanie patcha\n" #~ msgid "restoring %r to %r\n" #~ msgstr "przywracanie %r do %r\n" #~ msgid "nothing to abandon\n" #~ msgstr "nie ma nic do odrzucenia\n" #~ msgid "abandon failed\n" #~ msgstr "odrzucanie się nie powiodło\n" #~ msgid "file %s already exists\n" #~ msgstr "plik %s już istnieje\n" #~ msgid "There is no Mercurial repository here (.hg not found)" #~ msgstr "Nie ma tutaj repozytorium Mercuriala (.hg nie zostało znalezione)" #~ msgid "Import..." #~ msgstr "Importuj..." #~ msgid "Merge " #~ msgstr "Scal " #~ msgid "New Search" #~ msgstr "Nowe wyszukiwanie" #~ msgid "Error: %s" #~ msgstr "Błąd: %s" #~ msgid "Repository Explorer" #~ msgstr "Eksplorer repozytorium" #~ msgid "Contents" #~ msgstr "Zawartość" #~ msgid "Index" #~ msgstr "Indeks" #~ msgid ", please refresh" #~ msgstr ", proszę odśwież" #~ msgid " Messages and Errors" #~ msgstr " Wiadomości i błędy" #~ msgid "Select" #~ msgstr "Wybierz" #~ msgid "Glob:" #~ msgstr "Glob:" #~ msgid "Remove Selected" #~ msgstr "Usuń wybrane" #~ msgid "TortoiseHg Init" #~ msgstr "TortoiseHg Init" #~ msgid "Make repo compatible with Mercurial 1.0" #~ msgstr "Uczyń repozytorium zgodne z Mercurial 1.0" #~ msgid "hgtk %s: %s\n" #~ msgstr "hgtk %s: %s\n" #~ msgid "hgtk: %s\n" #~ msgstr "hgtk: %s\n" #~ msgid "hgtk add [FILE]..." #~ msgstr "hgtk add [FILE]..." #~ msgid "hgtk clone SOURCE [DEST]" #~ msgstr "hgtk clone SOURCE [DEST]" #~ msgid "hgtk commit [OPTIONS] [FILE]..." #~ msgstr "hgtk commit [OPTIONS] [FILE]..." #~ msgid "hgtk datamine" #~ msgstr "hgtk datamine" #~ msgid "hgtk hgignore [FILE]" #~ msgstr "hgtk hgignore [FILE]" #~ msgid "hgtk init [DEST]" #~ msgstr "hgtk init [DEST]" #~ msgid "hgtk log [OPTIONS] [FILE]" #~ msgstr "hgtk log [OPTIONS] [FILE]" #~ msgid "revision to merge with" #~ msgstr "rewizje do scalenia z" #~ msgid "hgtk merge" #~ msgstr "hgtk merge" #~ msgid "hgtk recovery" #~ msgstr "hgtk recovery" #~ msgid "hgtk shelve" #~ msgstr "hgtk shelve" #~ msgid "hgtk synch" #~ msgstr "hgtk synch" #~ msgid "revisions to compare" #~ msgstr "rewizje do porównania" #~ msgid "hgtk status [FILE]..." #~ msgstr "hgtk status [FILE]..." #~ msgid "hgtk userconfig" #~ msgstr "hgtk userconfig" #~ msgid "hgtk repoconfig" #~ msgstr "hgtk repoconfig" #~ msgid "hgtk guess" #~ msgstr "hgtk guess" #~ msgid "hgtk remove [FILE]..." #~ msgstr "hgtk remove [FILE]..." #~ msgid "hgtk rename SOURCE [DEST]" #~ msgstr "hgtk rename SOURCE [DEST]" #~ msgid "hgtk revert [FILE]..." #~ msgstr "hgtk revert [FILE]..." #~ msgid "hgtk forget [FILE]..." #~ msgstr "hgtk forget [FILE]..." #~ msgid "hgtk serve [OPTION]..." #~ msgstr "hgtk serve [OPTION]..." #~ msgid "hgtk thgstatus [OPTION]" #~ msgstr "hgtk thgstatus [OPTION]" #~ msgid "hgtk version [OPTION]" #~ msgstr "hgtk version [OPTION]" #~ msgid "show the command options" #~ msgstr "pokaż opcję polecenia" #~ msgid "[-o] CMD" #~ msgstr "[-o] CMD" #~ msgid "hgtk help [COMMAND]" #~ msgstr "hgtk help [COMMAND]" #~ msgid "import to the repository" #~ msgstr "importuj do repozytorium" #~ msgid "hgtk import [OPTION] [SOURCE]..." #~ msgstr "hgtk import [OPTION] [SOURCE]..." #~ msgid "hgtk shellconfig" #~ msgstr "hgtk shellconfig" #~ msgid "Log Details" #~ msgstr "Szczegóły logu" #~ msgid "Columns" #~ msgstr "Kolumny" #~ msgctxt "changesets" #~ msgid "All" #~ msgstr "Wszystkie" #~ msgid "Tagged" #~ msgstr "Otagowane" #~ msgid "Merges" #~ msgstr "Scalenia" #~ msgid "Hide Merges" #~ msgstr "Ukryj scalenia" #~ msgid "Branch Filter" #~ msgstr "Filtr gałęzi" #~ msgid "Custom Filter" #~ msgstr "Filtr użytkownika" #~ msgid "Re_fresh" #~ msgstr "Odśwież" #~ msgid "Reload revision history" #~ msgstr "Przeładuj historię rewizji" #~ msgid "Branches" #~ msgstr "Gałęzie" #~ msgid "Tags" #~ msgstr "Tagi" #~ msgid "Sync Bar" #~ msgstr "Pasek synchronizacji" #~ msgid "Pending" #~ msgstr "Oczekujące" #~ msgid "Load more Revisions" #~ msgstr "Załaduj więcej rewizji" #~ msgid "Load all Revisions" #~ msgstr "Załaduj wszystkie rewizje" #~ msgid "Filter Bar" #~ msgstr "Pasek filtrów" #~ msgid "Reset Marks" #~ msgstr "Resetuj oceny" #~ msgid "Choose Details..." #~ msgstr "Wybierz szczegóły..." #~ msgid "Compact Graph" #~ msgstr "Graf kompaktowy" #~ msgid "Color by Branch" #~ msgstr "Kolor od gałęzi" #~ msgid "Load more" #~ msgstr "Załaduj więcej" #~ msgid "load more revisions" #~ msgstr "załaduj więcej rewizji" #~ msgid "Load all" #~ msgstr "Ładuj wszystko" #~ msgid "load all revisions" #~ msgstr "ładuj wszystkie rewizje" #~ msgid "Download and view incoming changesets" #~ msgstr "Pobierz i pokaż przychodzące zmiany" #~ msgid "Pull incoming changesets" #~ msgstr "Ściągnij przychodzące zmiany" #~ msgid "Import patches" #~ msgstr "Importuj patche" #~ msgid "Stop current transaction" #~ msgstr "Zatrzymaj bieżącą transakcję" #~ msgid "Nothing" #~ msgstr "Nic" #~ msgid "Pulling changesets..." #~ msgstr "Ściąganie zestawów zmian..." #~ msgid "Aborted outgoing" #~ msgstr "Anulowane wychodzące" #~ msgid "No repository selected" #~ msgstr "Nie wybrano repozytorium" #~ msgid "Finished push" #~ msgstr "Pchnięcie zakończone" #~ msgid "Aborted push" #~ msgstr "Pchnięcie przerwane" #~ msgid "Save patches to" #~ msgstr "Zapisz patche do" #~ msgid "Importing" #~ msgstr "Importowanie" #~ msgid "Forced &Push" #~ msgstr "Wymuszone &pchnięcie" #~ msgid "&Push" #~ msgstr "&Pchnij" #~ msgid "Finished push to revision %s" #~ msgstr "Ściągnięcie do rewizji %s zakończone sukcesem" #~ msgid "Finished pushing branch %s" #~ msgstr "Pchnięcie gałęzi %s zakończone sukcesem" #~ msgid "Pushing branch %s..." #~ msgstr "Pchanie gałęzi %s..." #~ msgid "Finished pull to revision %s" #~ msgstr "Zakończono ściąganie do rewizji %s" #~ msgid "Pulling changesets to revision %s..." #~ msgstr "Pociąganie zmian do rewizji %s..." #~ msgid "Save patch to" #~ msgstr "Zapisz patch do" #~ msgid "Refresh required" #~ msgstr "Wymagane odświeżenie" #~ msgid "Merging in %s" #~ msgstr "Scalanie w %s" #~ msgid "Current revision (local)" #~ msgstr "Aktualna rewizja (lokalna)" #~ msgid "Failed to merge" #~ msgstr "Scalenie nie powiodło się" #~ msgid "Undo successfully" #~ msgstr "Cofnięcie zakończone sukcesem" #~ msgid "Canceled undo" #~ msgstr "Anulowane cofnięcie" #~ msgid "Failed to undo" #~ msgstr "Nieudane cofnięcie" #~ msgid "Changelist:" #~ msgstr "Lista zmian:" #~ msgid "Submit" #~ msgstr "Potwierdź" #~ msgid "Canceled" #~ msgstr "Anulowany" #~ msgid "Failed" #~ msgstr "Nieudany" #~ msgid "Select files to add" #~ msgstr "Wybierz pliki do dodania" #~ msgid "Select files to forget" #~ msgstr "Wybierz pliki do zapomnienia" #~ msgid "Select files to revert" #~ msgstr "Wybierz pliki do przywrócenia" #~ msgid "Select files to remove" #~ msgstr "Wybierz pliki do usunięcia" #~ msgid "Unable to determine repository status" #~ msgstr "Nie można ustalić stanu repozytorium" #~ msgid "Successfully" #~ msgstr "Z powodzeniem" #~ msgid "Stop the hg operation" #~ msgstr "Zatrzymaj operację hg" #~ msgid "Clean checkout, undo all changes" #~ msgstr "Oczyść" #~ msgid "Rollback" #~ msgstr "Przywróć" #~ msgid "Rollback (undo) last transaction to repository (pull, commit, etc)" #~ msgstr "" #~ "Odzyskaj (cofnij) ostatnią transakcję do repozytorium (pchnięcie, commit, " #~ "itd.)" #~ msgid "Recover from interrupted operation" #~ msgstr "Odzyskaj dane po przerwanej operacji" #~ msgid "Validate repository consistency" #~ msgstr "Sprawdź repozytorium" #~ msgid "Cannot close now" #~ msgstr "Nie można teraz zamknąć" #~ msgid "command is running" #~ msgstr "polecenie ciągle działa" #~ msgid "Confirm clean repository" #~ msgstr "Potwierdź oczyszczenie repozytorium" #~ msgid "Clean repository '%s' ?" #~ msgstr "Oczyścić repozytorium '%s' ?" #~ msgid "Rollback repository '%s' to %d, undo %s from %s?" #~ msgstr "Przywrócić repozytorium '%s' do %d, cofnąć %s z %s ?" #~ msgid "Rollback repository '%s' to %d, undo %s?" #~ msgstr "Przywrócić repozytorium '%s' do %d, cofnąć %s ?" #~ msgid "Rollback repository '%s' ?" #~ msgstr "Przywrócić repozytorium '%s' ?" #~ msgid "Confirm rollback repository" #~ msgstr "Potwierdź przywrócenie repozytorium" #~ msgid "[command interrupted]" #~ msgstr "[polecenie brzydko przerwane]" #~ msgid "Rename " #~ msgstr "Zmień nazwę " #~ msgid "rename error" #~ msgstr "błąd zmiany nazwy" #~ msgid "Launch browser to view repository" #~ msgstr "Uruchom przeglądarkę do oglądania repozytorium" #~ msgid "" #~ "Server process is still running\n" #~ "Exiting will stop the server." #~ msgstr "" #~ "Proces serwera dalej działa\n" #~ "Wyjście zatrzyma pracę serwera." #~ msgid "Abort: %s\n" #~ msgstr "Przerwij: %s\n" #~ msgid "name of access log file to write to" #~ msgstr "nazwa pliku logu dostępowego do zapisu" #~ msgid "used internally by daemon mode" #~ msgstr "używaj wewnętrznie w trybie daemon" #~ msgid "address to use" #~ msgstr "adres do użycia" #~ msgid "for remote clients" #~ msgstr "dla klientów zdalnych" #~ msgid "web templates to use" #~ msgstr "schematy web do użycia" #~ msgid "use IPv6 in addition to IPv4" #~ msgstr "używaj IPv6 jako dodatku do IPv4" #~ msgid "hg serve [OPTION]..." #~ msgstr "hg server [OPTION]..." #~ msgid "Menu Items" #~ msgstr "Elementy menu" #~ msgid "filtered status" #~ msgstr "przefiltrowany status" #~ msgid "Visual diff checked files" #~ msgstr "Wizualny diff zaznaczonych plików" #~ msgid "Revert checked files" #~ msgstr "Przywróć zaznaczone pliki" #~ msgid "Add checked files" #~ msgstr "Dodaj zaznaczone pliki" #~ msgid "Move checked files to other directory" #~ msgstr "Przenieć zaznaczone pliki do innego katalogu" #~ msgid "Remove or delete checked files" #~ msgstr "Usuń lub skasuj zaznaczone pliki" #~ msgid "Forget checked files on next commit" #~ msgstr "Zapomnij o zaznaczonych plikach przy następnym commicie" #~ msgid "refresh" #~ msgstr "odśwież" #~ msgid "Text Diff" #~ msgstr "Diff tekstowy" #~ msgid "Show patches" #~ msgstr "Pokaż patche" #~ msgid "Show newest first" #~ msgstr "Pokaż najpierw najnowsze" #~ msgid "ssh" #~ msgstr "ssh" #~ msgid "http" #~ msgstr "http" #~ msgid "https" #~ msgstr "https" #~ msgid "#" #~ msgstr "#" #~ msgid "Copy file to" #~ msgstr "Kopiuj plik do" #~ msgid "Recover" #~ msgstr "Odzyskaj" #~ msgid "Search %d" #~ msgstr "Wyszukaj %d" #~ msgid "Loading history..." #~ msgstr "Ładowanie historii..." #~ msgid "_Help" #~ msgstr "_Pomoc" #~ msgid "Select Revision" #~ msgstr "Wybierz rewizję" #~ msgid "Save File" #~ msgstr "Zapisz plik" #~ msgid "All files" #~ msgstr "Wszystkie pliki" #~ msgid "Select Folder" #~ msgstr "Wybierz folder" #~ msgid "invalid state" #~ msgstr "zły stan" #~ msgid "Info required" #~ msgstr "Wymagane info" #~ msgid "_Synchronize" #~ msgstr "_Synchronizacja" #~ msgid "Revision Number" #~ msgstr "Numer rewizji" #~ msgid "Changeset ID" #~ msgstr "ID zestawu zmian" #~ msgid "Branch Name" #~ msgstr "Nazwa gałęzi" #~ msgid "Filter" #~ msgstr "Filtr" #~ msgid "%s branch" #~ msgstr "%s gałąź" #~ msgid "Branch '%s'" #~ msgstr "Gałąź '%s'" #~ msgid "merges" #~ msgstr "scalenia" #~ msgid "Tag" #~ msgstr "Tag" #~ msgid "Reset" #~ msgstr "Resety" #~ msgid "Mark as Good" #~ msgstr "Oznacz jako dobre" #~ msgid "Mark as Bad" #~ msgstr "Oznacz jako złe" #~ msgid "Push outgoing changesets" #~ msgstr "Pchnij wychodzące zmiany" #~ msgid "Annotate" #~ msgstr "Adnotuj" #~ msgid "Repo:" #~ msgstr "Repo:" #~ msgid "Tag '%s' already exist" #~ msgstr "Tag '%s' już istnieje" #~ msgid "tag '%s' does not exist" #~ msgstr "tag '%s' nie istnieje" #~ msgid "St" #~ msgstr "St" #~ msgid " [Ynsfdaq?] " #~ msgstr " [Ynsfdaq?] " #~ msgid "hg shelve [OPTION]... [FILE]..." #~ msgstr "hg shelve [OPTION]... [FILE]..." #~ msgid "hg unshelve [OPTION]... [FILE]..." #~ msgstr "hg unshelve [OPTION]... [FILE]..." #~ msgid "tag '%s' is not a local tag" #~ msgstr "tag '%s' nie jest tagiem lokalnym" #~ msgid "tag '%s' is not a global tag" #~ msgstr "tag '%s' nie jest tagiem globalnym" #~ msgid "response expected" #~ msgstr "oczekiwano odpowiedzi" #~ msgid "_Visual Diff" #~ msgstr "Wizualny Diff" #~ msgid "edit failed" #~ msgstr "edycja nie udała się" #~ msgid "Invalid Revision" #~ msgstr "Niepoprawna rewizja" #~ msgid "Spell Check Language" #~ msgstr "Język sprawdzania pisowni" #~ msgid "Unrevisioned Files" #~ msgstr "Pliki poza kontrolą Mercuriala" #~ msgid "Find Copies" #~ msgstr "Szukaj kopii" #~ msgid "(No help text available)" #~ msgstr "(Brak treści pomocy)" #~ msgid "File Patterns" #~ msgstr "Wzorce plików" #~ msgid "Identify" #~ msgstr "Identyfikuj" #~ msgid "no Merges" #~ msgstr "brak Scanelń" #~ msgid "Finished pull" #~ msgstr "Pociągnięcie zakończone" #~ msgid "st" #~ msgstr "st" #~ msgid "ms" #~ msgstr "ms" #~ msgid "_Test" #~ msgstr "_Test" #~ msgid "Serve" #~ msgstr "Web Server" #~ msgid "No incoming changesets" #~ msgstr "Brak przychodzących zestawów zmian" #~ msgid "Checking incoming changesets..." #~ msgstr "Sprawdzanie przychodzących zestawów zmian..." #~ msgid "Accept incoming previewed changesets" #~ msgstr "Akceptuj przychodzące zestawy zmian" #~ msgid "Reject incoming previewed changesets" #~ msgstr "Odrzuć przychodzące zestawy zmian" #~ msgid "Checking outgoing changesets..." #~ msgstr "Sprawdzanie wychodzących zestawów zmian..." #~ msgid "Discard all changes from merge target (other) revision" #~ msgstr "Odrzuć wszystkie zmiany z rewizji będącej celem scalenia" #~ msgid "Push" #~ msgstr "Wyślij" #~ msgid "No repository found here" #~ msgstr "Nie znaleziono tu żadnego repozytorium" #~ msgid "" #~ "** Please report this bug to http://bitbucket.org/tortoisehg/stable/" #~ "issues\n" #~ msgstr "" #~ "**Prosimy o zgłoszenie tego błedu na http://bitbucket.org/tortoisehg/" #~ "stable/issues\n" #~ msgid "File is larger than the specified max size.\n" #~ msgstr "Plik jest większy niż określony maksymalny rozmiar.\n" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/pt.po0000644000000000000000000074613514440352353016271 0ustar00rootroot# Portuguese translation for tortoisehg # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the tortoisehg package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2015-06-28 13:04+0000\n" "Last-Translator: lloco73 \n" "Language-Team: Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2019-07-17 05:44+0000\n" "X-Generator: Launchpad (build 19009)\n" msgid "TortoiseHg Overlay Icon Server" msgstr "Servisor de ícones de sobreposição do TortoiseHg" msgid "Exit" msgstr "Saír" msgid "About" msgstr "Sobre" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "" msgid "You can visit our site here" msgstr "Pode visitar o nosso sítio aqui" msgid "&License" msgstr "&Licença" #, python-format msgid "version %s" msgstr "versão %s" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "com Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "" msgid "License" msgstr "Licença" msgid "= Working Directory Parent =" msgstr "= Parente da directoria de trabalho =" msgid "Directory of files" msgstr "Directoria de todos os ficheiros" msgid "Tar archives" msgstr "Ficheiros tar" msgid "Uncompressed tar archive" msgstr "Ficheiro tar não comprimido" msgid "Bzip2 tar archives" msgstr "Ficheiros Bzip2 tar" msgid "Tar archive compressed using bzip2" msgstr "Ficheiro tar comprimido usando bzip2" msgid "Gzip tar archives" msgstr "Ficheiros gzip tar" msgid "Tar archive compressed using gzip" msgstr "Ficheiro tar comprimido usando gzip" msgid "Zip archives" msgstr "Arquivos Zip" msgid "Uncompressed zip archive" msgstr "Ficheiro zip não comprimido" msgid "Zip archive compressed using deflate" msgstr "Ficheiro zip comprimido usando deflate" msgid "Revision:" msgstr "Revisão:" msgid "All files in this revision" msgstr "" msgid "Only files modified/created in this revision" msgstr "Apenas ficheiros modificados/criados nesta revisão" msgid "Only files modified/created since:" msgstr "" msgid "Archive Content:" msgstr "" msgid "Recurse into subrepositories" msgstr "recurse entre sub-repositórios" msgid "Browse..." msgstr "Navegar..." msgid "Destination path:" msgstr "Caminho de destino:" msgid "Archive types:" msgstr "Tipos de ficheiros:" msgid "Hg command:" msgstr "Comando Hg:" msgid "Select Destination Folder" msgstr "Seleccione a pasta de destino" msgid "Select Destination File" msgstr "Seleccione destino do ficheiro" msgid "All files (*)" msgstr "" msgid "Duplicate Name" msgstr "Nome duplicado" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "O destino \"%s\" já existe como um ficheiro!" msgid "Confirm Overwrite" msgstr "Confirmar sobrescrita" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" "A directoria \"%s\" não está vazia!\n" "\n" "Deseja substituí-la?" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" "O ficheiro \"%s\" já existe!\n" "\n" "Deseja sobrescreve-lo?" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "O destino \"%s\" já existe como uma pasta!" #, python-format msgid "Archive - %s" msgstr "Ficheiro - %s" msgid "&Archive" msgstr "&Arquivo" msgid "Backout requires a parent revision" msgstr "" msgid "Cannot backout change on a different branch" msgstr "" #, python-format msgid "Backout - %s" msgstr "Backout - %s" msgid "Prepare to backout" msgstr "Preparar para backout" msgid "Verify backout revision and ensure your working directory is clean." msgstr "" msgid "Backing out a parent revision is a single step operation" msgstr "" msgid "Backout revision" msgstr "" msgid "Not a head, backout will create a new head!" msgstr "" msgid "Current local revision" msgstr "Revisão local ctual" msgid "Working directory status" msgstr "Estado da directoria de trabalho" msgid "Checking..." msgstr "A verificar..." msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Automatically resolve merge conflicts where possible" msgstr "Resolver automáticamente conflitos de uniões sempre que possível" msgid "Uncommitted local changes are detected" msgstr "Foram detectadas alterações locais não submetidas" msgid "Clean" msgstr "Limpar" msgid "Backing out, then merging..." msgstr "" msgid "All conflicting files will be marked unresolved." msgstr "" msgid "Automatically advance to next page when backout and merge are complete." msgstr "" #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" msgid "No merge conflicts, ready to commit" msgstr "Sem conflitos de união, pornto para submeter" msgid "Commit backout and merge results" msgstr "Reverter submissão e unir resultados" msgid "Parents" msgstr "Pais" msgid "Working Directory" msgstr "Directoria de trabalho" msgid "Working Directory (merged)" msgstr "Directoria de trabalho (unida)" msgid "Commit message" msgstr "Mensagem de envio" msgid "Skip final confirmation page, close after commit." msgstr "Saltar página de confirmação final e fechar após submeter." msgid "Backed out changeset: " msgstr "Changeset revertido: " msgid "Confirm Discard Message" msgstr "Confirmar rejeição da mensagem" msgid "Discard current backout message?" msgstr "Ignorar a mensagem de reversão actual?" msgid "Use English backout message" msgstr "Usar a mensagem de backout em inglês" msgid "Backing out and committing..." msgstr "" msgid "Please wait while making backout." msgstr "" msgid "Committing..." msgstr "A enviar..." msgid "Please wait while committing merged files." msgstr "Por favor aguarde enquanto se submetem os ficheiros unidos." msgid "Finished" msgstr "Terminado" msgid "Backout changeset" msgstr "Backout changeset" #, python-format msgid "Bisect - %s" msgstr "Bisect - %s" msgid "Accept" msgstr "Aceitar" msgid "Known good revision:" msgstr "Revisão boa conhecida:" msgid "Known bad revision:" msgstr "Revisão má conhecida:" msgid "Discard local changes (revert --all)" msgstr "" msgid "Revision is &Good" msgstr "" msgid "Revision is &Bad" msgstr "" msgid "&Skip this Revision" msgstr "" msgid "Close" msgstr "Fechar" msgid "Error encountered." msgstr "Erro encontrado." msgid "Culprit found." msgstr "Culprit encontrado." msgid "Revision" msgstr "Revisão" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "Teste esta revisão e reporte os resultados. (boa/má/ignorada)" #, python-format msgid "%s (hint: %s)" msgstr "%s (dica: %s)" msgid "Bookmark:" msgstr "Marcador:" msgid "New Name:" msgstr "Novo nome:" msgid "Activate:" msgstr "" msgid "&Add" msgstr "&Adicionar" msgid "Re&name" msgstr "Re&nomear" msgid "&Remove" msgstr "&Remover" msgid "&Move" msgstr "&Mover" #, python-format msgid "Bookmark - %s" msgstr "Marcador - %s" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "Já existe um marcador com o nome \"%s\"" #, python-format msgid "Bookmark '%s' has been added" msgstr "O marcador \"%s\" foi adicionado" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "O marcador com o nome \"%s\" não existe" #, python-format msgid "Bookmark '%s' has been moved" msgstr "O marcadro \"%s\" foi movido" #, python-format msgid "Bookmark '%s' does not exist" msgstr "O marcador \"%s\" não existe" #, python-format msgid "Bookmark '%s' has been removed" msgstr "O marcador \"%s\" foi removido" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "O nome do marcador \"%s\" foi mudado para \"%s\"" msgid "TortoiseHg Bookmark Sync" msgstr "" msgid "Outgoing Bookmarks" msgstr "" msgid "&Push Bookmark" msgstr "" msgid "&Remove Bookmark" msgstr "" msgid "Incoming Bookmarks" msgstr "" msgid "P&ull Bookmark" msgstr "" msgid "R&emove Bookmark" msgstr "" #, python-format msgid "Pushed local bookmark: %s" msgstr "" #, python-format msgid "Pulled remote bookmark: %s" msgstr "" #, python-format msgid "Removed remote bookmark: %s" msgstr "" #, python-format msgid "Removed local bookmark: %s" msgstr "" #, python-format msgid "%s - branch operation" msgstr "%s - operação do ramo" msgid "Select branch of merge commit" msgstr "Seleccione o ramo para juntar no envio" msgid "Changes take effect on next commit" msgstr "As alterações terão efeito no próximo envio" msgid "No branch changes" msgstr "Sem alterações no ramo" msgid "Open a new named branch" msgstr "Abrir um novo ramo" msgid "Close current branch" msgstr "Fechar ramo actual" #, python-format msgid "Please report this bug to our bug tracker" msgstr "Por favor reporte este bug para o nosso bug tracker" msgid "Checking for updates..." msgstr "" msgid "Copy" msgstr "Copiar" msgid "Quit" msgstr "Sair." msgid "TortoiseHg Bug Report" msgstr "Relatório de erro do TortoiseHg" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "" msgid "Your TortoiseHg is up to date." msgstr "" msgid "Save error report to" msgstr "Guardar relatório do erro em" msgid "Text files (*.txt)" msgstr "Ficheiros de texto (*.txt)" msgid "Error writing file" msgstr "Erro ao gravar o ficheiro" msgid "TortoiseHg Error" msgstr "Erro do TortoiseHg" msgid "" "If you still have trouble, please file a bug report." msgstr "" "Se ainda tiver problemas, a href=\"#bugreport\">por favor, reporte o bug." msgid "Visual Diff" msgstr "Diff visual" msgid "View file changes in external diff tool" msgstr "Ver modificação do ficheiro na ferramenta externa de diff" msgid "Edit Local" msgstr "Editar Local" msgid "Edit current file in working copy" msgstr "Editar o ficheiro actual na cópia de trabalho" msgid "Revert to Revision" msgstr "Reverter para a revisão" msgid "Revert file(s) to contents at this revision" msgstr "Revertr ficheiro(s) para o conteúdo nesta revisão" msgid "Patch failed to apply" msgstr "A aplicação do patch falhou" msgid "Manually resolve rejected chunks?" msgstr "Resolver manualmente chunks rejeitados?" msgid "Edit patched file and rejects?" msgstr "Editar ficheiro com patch e rejeitar?" msgid "No deletable chunks" msgstr "Sem chunks elimináveis" msgid "Completely remove file from patch?" msgstr "" msgid "Revert all file changes?" msgstr "" msgid "No chunks remain" msgstr "Não restam chunks" msgid "file has been deleted, refresh" msgstr "o ficheiro foi eliminado, actualizar" msgid "file has been modified, refresh" msgstr "o ficheiro foi modificado, actualizar" msgid "Unable to merge chunks" msgstr "Não é possível unir chinks" msgid "Add or remove patches must be merged in the working directory" msgstr "" "Adicionar ou remover patches tem de ser unido na directoria de trabalho" msgid "Unable to remove" msgstr "Não é possível remover" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" "Não é possível remover o ficheiro %s,\n" "permissão negada" msgctxt "files" msgid "All" msgstr "Todos" msgctxt "files" msgid "None" msgstr "Nenhuns" msgid "Toggle display of text search bar" msgstr "Mudar apresentação da barraa de pesquisa de texto" msgid "Diff Toolbar" msgstr "Barra de ferramentas Diff" #, python-format msgid "Chunks selected: %d / %d" msgstr "Chunks seleccionados: %d / %d" msgid "Please wait while the file is opened ..." msgstr "" msgid "Source:" msgstr "Origem:" msgid "Destination:" msgstr "Destino:" msgid "Options" msgstr "Opções" msgid "Clone to revision:" msgstr "clonar para a revisão" msgid "A revision identifier, bookmark, tag or branch name" msgstr "" msgid "Do not update the new working directory" msgstr "Não actualizar a nova directoria de trabalho" msgid "Use pull protocol to copy metadata" msgstr "Usar o protocolo receber para copiar metadados" msgid "Clone with minimal processing" msgstr "" msgid "Include patch queue" msgstr "Incluir patch na fila" msgid "Use proxy server" msgstr "Usar servidor de proxy" msgid "Do not verify host certificate" msgstr "Não verificar o certificado do servidor" msgid "Remote command:" msgstr "Comando remoto:" msgid "Use largefiles" msgstr "" msgid "Start revision:" msgstr "Iniciar revisão:" msgid "Select source repository" msgstr "Seleccionar repositório de origem" msgid "Select destination repository" msgstr "Seleccione o repositório de destino" msgid "Select patch folder" msgstr "Seleccione a pasta de patch" #, python-format msgid "Clone - %s" msgstr "Clonar - %s" msgid "&Clone" msgstr "&Clonar" msgid "failed to start command\n" msgstr "falha ao iniciar comando\n" msgid "error while running command\n" msgstr "erro ao executar o comando\n" #, python-format msgid "process exited unexpectedly with code %d" msgstr "" #, python-format msgid "failed to encode command: %s" msgstr "" #, python-format msgid "timed out while reading: %r..." msgstr "" msgid "timed out waiting for message" msgstr "" #, python-format msgid "unexpected response on required channel %r" msgstr "" #, python-format msgid "invalid \"hello\" message: %r" msgstr "" msgid "no \"runcommand\" capability" msgstr "" #, python-format msgid "corrupted command result: %r" msgstr "" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "" msgid "Terminated by user" msgstr "Terminado pelo utilizador" #, python-format msgid "[command terminated by user %s]" msgstr "[comando terminado pelo utilizador %s]" #, python-format msgid "[command interrupted %s]" msgstr "" #, python-format msgid "[command returned code %d %%s]" msgstr "[o comando retornou o código %d %%s]" #, python-format msgid "[command completed successfully %s]" msgstr "[comando efectuado com sucesso %s]" msgid "Running..." msgstr "Em execução..." msgid "Failed!" msgstr "Falhou!" msgid "Clea&r Log" msgstr "" msgid "TortoiseHg Prompt" msgstr "Prompt do TortoiseHg" msgid "Show Detail" msgstr "" msgid "Hide Detail" msgstr "" msgid "Confirm Exit" msgstr "Confirmar saída" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" "O comando Mercurial ainda está em execução.\n" "Tem a certeza que deseja terminar?" msgid "&Run" msgstr "" msgid "TortoiseHg Command Dialog" msgstr "Diálogo de comando do TortoiseHg" msgid "Command Error" msgstr "" #, python-format msgid "[Code: %d]" msgstr "" msgid "Merge" msgstr "Juntar" #, python-format msgid "Merge with %s" msgstr "Unir com %s" msgid "Patch Name Required" msgstr "Necessário nome do patch" msgid "You must enter a patch name" msgstr "tem de escrever um nome para o patch" msgctxt "start progress" msgid "Commit" msgstr "Submeter" msgctxt "start progress" msgid "MQ Action" msgstr "MQ Action" msgctxt "start progress" msgid "Rollback" msgstr "Voltar atrás" msgid "Commit Dialog Toolbar" msgstr "Diálogo da barra de ferramentas de envio" msgid "Branch: " msgstr "Branch: " msgid "Copy message" msgstr "Copiar mensagem" msgid "Copy one of the recent commit messages" msgstr "Copiar uma das mensagens de envio recentes" msgid "Show Issues" msgstr "Mostrar problemas" msgid "Please wait..." msgstr "Por favor aguarde..." #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "Falha ao carregar o acompanhamento de problema'%s': %s" msgid "Issue Tracker" msgstr "Acompanhamento de problema" msgid "Show Issues..." msgstr "Mostrar problemas..." msgid "Stop" msgstr "Parar" msgid "### patch name ###" msgstr "### nome do patch ###" msgid "Commit changes" msgstr "Submeter alterações" msgid "Commit" msgstr "Enviar" msgid "Amend current revision" msgstr "" msgid "Amend" msgstr "" msgid "Create a new patch" msgstr "Criar um novo patch" msgid "QNew" msgstr "QNew" msgid "Refresh current patch" msgstr "Atualizar o patch atual" msgid "QRefresh" msgstr "QRefresh" msgid "Confirm Branch Change" msgstr "Configurar alteração do ramo" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "O ramo com o nome \"%s\" já existe, usado na revisão %d\n" msgid "Restart &Branch" msgstr "Reiniciar &ramo" msgid "&Commit to current branch" msgstr "E&nviar para o ramo actual" msgid "Cancel" msgstr "Cancelar" msgid "Confirm New Branch" msgstr "Confirmar novo Ramo" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "Criar novo ramo \"%s\" com este envio?\n" msgid "Create &Branch" msgstr "Criar &ramo" msgid "Close Branch: " msgstr "Fechar ramo: " msgid "New Branch: " msgstr "Novo ramo: " #, python-format msgid "Selected Options: %s" msgstr "Opções selecionadas: %s" msgid "Parent:" msgstr "Pai:" msgid "Patch name:" msgstr "Nome do patch:" #, python-format msgid "Close %s branch" msgstr "Fechar o ramo %s" #, python-format msgid "Rollback commit to revision %d" msgstr "Reverter envio para a revisão %d" msgid "Confirm Undo" msgstr "Confirmar anular" msgid "Discard current commit message?" msgstr "Ignorar a mensagem de envio actual?" msgid "Message Translation Failure" msgstr "" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" msgid "&Replace" msgstr "Substitui&r" msgid "Nothing Committed" msgstr "" msgid "Please enter commit message" msgstr "Escreva a mensagem de envio" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" msgid "No files checked" msgstr "Não há ficheiros verificcados" msgid "No modified files checkmarked for commit" msgstr "Não há ficheiros modificados marcados para envio" msgid "Confirm Add" msgstr "Confirmar adicionar" msgid "Add selected untracked files?" msgstr "Adicionar os ficheiros seleccionados não controlados?" msgid "Confirm Remove" msgstr "Confirmar remoção" msgid "Remove selected deleted files?" msgstr "Remover os ficheiros eliminados seleccionados?" msgid "Nothing changed." msgstr "" msgctxt "window title" msgid "Commit" msgstr "Enviar" #, python-format msgid "%s - commit options" msgstr "%s - opções de envio" msgid "Set username:" msgstr "Definir nome de utilizador:" msgid "Save in Repo" msgstr "Guardar no repo" msgid "Save Global" msgstr "Guardar global" msgid "Set Date:" msgstr "Definir data:" msgid "Update" msgstr "Atualizar" msgid "Push After Commit:" msgstr "Enviar após submeter:" msgid "Auto Includes:" msgstr "Auto incluir:" msgid "Recurse into subrepositories (--subrepos)" msgstr "" msgid "Unable to save username" msgstr "Não foi possível guardar o nome de utilizador" msgid "Iniparse must be installed." msgstr "Iniparse tem de ser instalado." msgid "Unable to write configuration file" msgstr "Não foi possível escrever o ficheiro de configuração" msgid "Unable to save after commit push" msgstr "Não foi possível guardar depois de submeter o envio" msgid "Unable to save auto include list" msgstr "Não foi possível guardar a lista de auto-inclusão" msgid "Unable to save recurse in subrepos." msgstr "" msgid "Invalid date format" msgstr "Formato de data inválido" msgid "No username configured" msgstr "Nenhum nome de utilizador configurado" #, python-format msgid "%s - commit" msgstr "%s - submeter" msgid "TortoiseHg Commit" msgstr "TortoiseHg Commit" msgid "Are you sure that you want to cancel the commit operation?" msgstr "" msgid "Compress changesets up to and including" msgstr "Comprimir changesets e incluir" msgid "Onto destination" msgstr "Para o destino" msgid "Compress" msgstr "Comprimir" #, python-format msgid "Compress - %s" msgstr "Comprimir- %s" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the compress" msgstr "Pode continuar a comprimir" msgid "Changes have been moved, you must now commit" msgstr "As alterações foram movidas, tem de submeter" msgctxt "action button" msgid "Commit" msgstr "Submeter" msgid "Compress is complete, old history untouched" msgstr "A compressão está terminada, o histórico antigo não foi modificado" msgid "must be specified repository" msgstr "tem de especificar um repositório" msgid "must be specified 'type' in style" msgstr "tem de ser um 'tipo' especificado no estilo" msgid "Git Commit:" msgstr "" msgid "Summary:" msgstr "Sumário:" msgid "User:" msgstr "Utilizador:" msgid "Date:" msgstr "Data:" msgid "Age:" msgstr "Idade:" msgid "Branch:" msgstr "Ramo:" msgid "Close:" msgstr "Fechar:" msgid "Tags:" msgstr "Etiquetas:" msgid "Graft:" msgstr "Graft:" msgid "Transplant:" msgstr "Transplantar:" msgid "Obsolete state:" msgstr "" msgid "Perforce:" msgstr "Forçosamente" msgid "Subversion:" msgstr "Subversion:" msgid "Converted From:" msgstr "Convertido de:" msgid "Original Parent:" msgstr "" msgid "No items to display" msgstr "Nenhum item para mostrar" msgid "Use compact view" msgstr "Usar vista compacta" msgid "Patch:" msgstr "Patch:" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "A mostrar %(count)d de %(total)d itens" msgid "Select a GUI location to edit:" msgstr "" msgid "Select the toolbar or menu to change" msgstr "" msgid "Tools shown on selected location" msgstr "Ferramentas mostradas na localização selecionada" msgid "Delete from list" msgstr "Eliminar da lista:" msgid "Add to list" msgstr "Adicionar à lista" msgid "Add separator" msgstr "Adicionar separador" msgid "List of all tools" msgstr "Lista de todas as ferramentas" msgid "New Tool ..." msgstr "Nova ferramenta..." msgid "Edit Tool ..." msgstr "Editar ferramenta..." msgid "Delete Tool" msgstr "Eliminar ferramenta" msgid "Type" msgstr "Tipo" msgid "Name" msgstr "Nome" msgid "Command" msgstr "Comando" msgid "New hook" msgstr "" msgid "Edit hook" msgstr "" msgid "Delete hook" msgstr "" msgid "Replace existing hook?" msgstr "" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" msgid "OK" msgstr "Ok" msgid "Missing information" msgstr "Informação em falta" msgid "All items" msgstr "Todos os itens" msgid "Working directory" msgstr "Diretoria de trabalho" msgid "All revisions" msgstr "Todas as revisões" msgid "All contexts" msgstr "Todos os contextos" msgid "Fixed revisions" msgstr "Revisões reparadas" msgid "Applied patches" msgstr "Patches aplicados" msgid "Applied patches or qparent" msgstr "" msgid "" msgstr "" msgid "Configure Custom Tool" msgstr "Configurar a ferramenta personalizada" msgid "Tool name" msgstr "Nome da ferramenta" msgid "The tool name. It cannot contain spaces." msgstr "O nome da ferramenta não pode ter espaços." #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" msgid "Tool label" msgstr "Etiqueta da ferramenta" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" msgid "Tooltip" msgstr "Dica" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" msgid "Icon" msgstr "Ícone" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" "O ícone da ferramenta.\n" "Você pode usar qualquer ícone do TortoiseHg\n" "ajustando este valor para um nome válido de um ícone do TortoiseHg\n" "(por exemplo, clone, adicionar, remover, sync, thg-logo, hg-update, etc).\n" "Você também pode definir este valor para o caminho absoluto de\n" "qualquer ícone no seu sistema de ficheiros" msgid "On repowidget, show for" msgstr "" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" msgid "Show Output Log" msgstr "" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" msgid "You must set a tool name." msgstr "" msgid "The tool name cannot have any spaces in it." msgstr "" msgid "You must set a command to run." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" msgid "Configure Hook" msgstr "" msgid "Hook type" msgstr "" msgid "Select when your command will be run" msgstr "" msgid "The hook name. It cannot contain spaces." msgstr "" msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" msgid "You must set a valid hook type." msgstr "" msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "" msgid "Console" msgstr "" msgid "File &History / Annotate" msgstr "" msgid "Show the history of the selected file" msgstr "Mostrar o histórico do ficheiro seleccionado" msgid "Co&mpare File Revisions" msgstr "" msgid "Compare revisions of the selected file" msgstr "Comparar revisões do ficheiro seleccionado" msgid "Filter Histor&y" msgstr "" msgid "Query about changesets affecting the selected files" msgstr "" msgid "Diff &Changeset to Parent" msgstr "" msgid "Diff Changeset to Loc&al" msgstr "" msgid "&Diff to Parent" msgstr "" msgid "Diff to &Local" msgstr "" msgid "View changes to current in external diff tool" msgstr "Ver as alterações actuais na ferramenta de diff externa" msgid "&View at Revision" msgstr "" msgid "View file as it appeared at this revision" msgstr "Ver o ficheiro tal como apareceu nesta revisão" msgid "&Save at Revision..." msgstr "&Guardar na revisão..." msgid "Save file as it appeared at this revision" msgstr "" msgid "Save file to" msgstr "Guardar ficheiro em" msgid "&Edit Local" msgstr "&Editar Local" msgid "&Open Local" msgstr "Abrir l&ocal" msgid "E&xplore Local" msgstr "" msgid "Open parent folder of current file in the system file manager" msgstr "" msgid "&Copy Patch" msgstr "&Copiar Patch" msgid "Copy &Path" msgstr "" msgid "Copy full path of file(s) to the clipboard" msgstr "" msgid "&Revert to Revision..." msgstr "" msgid "Open S&ubrepository" msgstr "" msgid "Open the selected subrepository" msgstr "Abrir o sub-repositório seleccionado" msgid "E&xplore Folder" msgstr "" msgid "Open the selected folder in the system file manager" msgstr "" msgid "Open &Terminal" msgstr "" msgid "Open a shell terminal in the selected folder" msgstr "" msgid "Custom Tools" msgstr "Ferramentas personalizadas" msgid "Diff &Local" msgstr "" msgid "&View Missing" msgstr "" msgid "View O&ther" msgstr "" msgid "Add &Largefiles..." msgstr "" msgid "&Forget" msgstr "" msgid "&Delete Unversioned..." msgstr "" msgid "Confirm Delete Unversioned" msgstr "" msgid "Delete the following unversioned files?" msgstr "" msgid "&Delete" msgstr "E&liminar" msgid "Re&move Versioned" msgstr "" msgid "&Revert..." msgstr "" msgid "Uncommited merge - please select a parent revision" msgstr "União não enviada - seleccione o parente da revisão" msgid "Revert files to local or other parent?" msgstr "Reverter os ficheiros para local ou outros parentes?" msgid "&Local" msgstr "&Local" msgid "&Other" msgstr "&Outro" msgid "Confirm Revert" msgstr "Confirmar reversão" msgid "Revert local file changes?" msgstr "" msgid "&Revert with backup" msgstr "" msgid "&Discard changes" msgstr "" msgid "Revert the following files?" msgstr "" msgid "&Revert" msgstr "" msgid "&Copy..." msgstr "" msgid "Re&name..." msgstr "" msgid "&Ignore..." msgstr "" msgid "Edit Re&jects" msgstr "" msgid "Manually resolve rejected patch chunks" msgstr "" msgid "De&tect Renames..." msgstr "" msgid "&Mark Resolved" msgstr "" msgid "&Mark Unresolved" msgstr "" msgid "Restart Mer&ge" msgstr "" msgid "Was renamed from" msgstr "" msgid "Restart Merge &with" msgstr "" msgid "Display the file anyway" msgstr "" msgid "Diff not displayed: " msgstr "Diff não apresentado: " #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid "File is binary" msgstr "O ficheiro é binário" msgid "File may be binary (maximum line length exceeded)" msgstr "O ficheiro pode ser binário (máximo de linhas excedido)" msgid "File or diffs not displayed: " msgstr "Ficheiro ou diffs não apresentados: " msgid " (was added)" msgstr " (foi adicionado)" #, python-format msgid " (copied from %s)" msgstr "" #, python-format msgid " (renamed from %s)" msgstr " (renomeado para %s)" msgid " (is a symlink)" msgstr " (é um symlink)" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid " (was deleted)" msgstr " (foi eliminado)" msgid " (was added, now missing)" msgstr " (foi adicionado, mas está perdido)" msgid " (is unversioned)" msgstr " (não tem versão)" msgid "exec mode has been set" msgstr "" msgid "exec mode has been unset" msgstr "" #, python-format msgid "changeset: %s" msgstr "changeset: %s" msgid "Initial revision" msgstr "revisão inicial" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" msgid "Subrepo created and set to initial revision." msgstr "Sub-repo criado e definido como versão inicial." msgid "Subrepo initialized to revision:" msgstr "Sub-repo inicializado para a revisão:" msgid "Subrepo removed from repository." msgstr "Sub-repo removido do repositório." msgid "Previously the subrepository was at the following revision:" msgstr "" msgid "Subrepo was not changed." msgstr "Subrepo não foi alterado." msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "" msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "" msgid "Subrepo state is:" msgstr "" msgid "Revision has changed to:" msgstr "" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "" msgid "From:" msgstr "De:" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" msgid "Subrepository not found in the working directory." msgstr "" msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" msgid "Not a Mercurial subrepo, not previewable" msgstr "Não é um sub-repo do Mercurial, não é pré-visualizável" #, python-format msgid "Error previewing subrepo: %s" msgstr "Erro ao pré-visualizar sub-repo: %s" msgid "Subrepo may be damaged or inaccessible." msgstr "" msgid "The subrepository is dirty." msgstr "" msgid "File Status:" msgstr "Estado do ficheiro:" msgid "(is a changed sub-repository)" msgstr "(é um sub-repositório modificado)" msgid "(is an unchanged sub-repository)" msgstr "" msgid "(is a dirty sub-repository)" msgstr "(é um sub-repositório sujo)" msgid "(is a new sub-repository)" msgstr "(é um novo sub-repositório)" msgid "(is a removed sub-repository)" msgstr "(é um sub-repositório removido)" msgid "(is a changed and dirty sub-repository)" msgstr "(é um sub-repositório modificado e sujo)" msgid "(is a new and dirty sub-repository)" msgstr "(é um sub-repositório novo e sujo)" msgid "open..." msgstr "abrir..." #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "Visualizador do ficheiro de registo Hg [%s] - %s" msgid "File History Log Columns" msgstr "" msgid "Back" msgstr "Retroceder" msgid "Forward" msgstr "Avançar" msgid "Diff Selected &Changesets" msgstr "" msgid "&Diff Selected File Revisions" msgstr "" msgid "Show Revision &Details" msgstr "" msgid "Too many rows selected for menu" msgstr "" msgid "File Differences Log Columns" msgstr "" msgid "Next diff" msgstr "Diff seguinte" msgid "Previous diff" msgstr "Diff anterior" msgid "Unicode" msgstr "" msgid "Western Europe" msgstr "" msgid "Unified Chinese" msgstr "" msgid "Traditional Chinese" msgstr "" msgid "Korean" msgstr "" msgid "Japanese" msgstr "" msgid "Thai" msgstr "" msgid "Central and Eastern Europe" msgstr "" msgid "Cyrillic" msgstr "" msgid "Russian" msgstr "" msgid "Ukrainian" msgstr "" msgid "Greek" msgstr "" msgid "Turkish" msgstr "" msgid "Arabic" msgstr "" msgid "Hebrew" msgstr "" msgid "Vietnamese" msgstr "" msgid "Baltic" msgstr "" msgid "Southern Europe" msgstr "" msgid "Nordic" msgstr "" msgid "Celtic" msgstr "" msgid "South-Eastern Europe" msgstr "" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "" msgid "View change as unified diff output" msgstr "Ver alteração como diff de saída unificado" msgid "View change in context of file" msgstr "ver alteração no contexto do ficheiro" msgid "Annotate with revision numbers" msgstr "" msgid "Next Diff" msgstr "" msgid "Previous Diff" msgstr "" msgid "Open shelve tool" msgstr "Abrir ferramenta shelve" msgid "&Auto Detect" msgstr "" msgid "Show changes from first parent" msgstr "" msgid "Show changes from second parent" msgstr "" msgid "E&ncoding" msgstr "" msgid "&Search in Current File" msgstr "" msgid "Search in All &History" msgstr "" msgid "Go to Line" msgstr "" #, python-format msgid "Enter line number (1 - %d)" msgstr "" msgid "Show &Author" msgstr "Mostrar &Autor" msgid "Show &Date" msgstr "Mostrar &Data" msgid "Show &Revision" msgstr "Mostrar &Revisão" msgid "Annotate Op&tions" msgstr "Op&ções de anotação" msgid "Search Selected Text" msgstr "" msgid "In Current &File" msgstr "" msgid "In &Current Revision" msgstr "" msgid "In &Original Revision" msgstr "" msgid "In All &History" msgstr "" msgid "Go to" msgstr "" msgid "View File at" msgstr "" msgid "Diff File to" msgstr "" msgid "&Originating Revision" msgstr "" msgid "&Parent Revision" msgstr "" #, python-format msgid "&Parent Revision (%d)" msgstr "" msgid "&Mark Excluded Changes" msgstr "" msgid "(excluded from the next commit)" msgstr "" msgid "Interrupted graft operation found" msgstr "" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" msgid "Continue or abort interrupted graft operation?" msgstr "" msgid "To graft destination" msgstr "" msgid "Use my user name instead of graft committer user name" msgstr "" msgid "Use current date" msgstr "" msgid "Append graft info to log message" msgstr "" msgid "Graft" msgstr "" msgid "Abort" msgstr "Abortar" #, python-format msgid "Graft - %s" msgstr "" msgid "Graft changeset" msgstr "" #, python-format msgid "Graft changeset #%d of %d" msgstr "" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" msgid "You may continue or start the graft" msgstr "" msgid "Graft is complete" msgstr "" msgid "Graft failed" msgstr "" msgid "Graft aborted" msgstr "" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" msgid "You may continue the graft" msgstr "" msgid "Exiting with an unfinished graft is not recommended." msgstr "" msgid "Consider aborting the graft first." msgstr "" msgid "&Exit" msgstr "&Sair" msgid "### regular expression search pattern ###" msgstr "### padrão de pesquisa de expressão regular ###" msgid "Regexp:" msgstr "Expressão regular:" msgid "Ignore case" msgstr "Ignorar a capitalização" msgid "Search" msgstr "Pesquisar" msgid "Working Copy" msgstr "Cópia de Trabalho" msgid "All History" msgstr "Todo o histórico" msgid "Report only the first match per file" msgstr "Reportar apenas a primeira correspondência por ficheiro" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "Seguir cópias e renomeações" msgid "Includes:" msgstr "Inclui:" msgid "Excludes:" msgstr "Exclui:" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" #, python-format msgid "\"%s\" removed from search history" msgstr "\"%s\" removido do histórico de pesquisa" #, python-format msgid "\"%s\" removed from path history" msgstr "\"%s\" removido do histórico do caminho" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "grep: padrão de correspondência inválido: %s\n" #, python-format msgid "grep: %s\n" msgstr "grep: %s\n" #, python-format msgid "%d matches found" msgstr "encontradas %d correspondências" msgid "No matches found" msgstr "Não foram encontradas correspondências" msgid "Searching" msgstr "A pesquisar" msgid "history" msgstr "histórico" msgid "Interrupted" msgstr "Interrompido" msgid "files" msgstr "ficheiros" #, python-format msgid "Skipping %s, unable to read" msgstr "A ignorar %s, não é possível ler" msgid "Vi&ew File" msgstr "V&er ficheiro" msgid "&View Changeset" msgstr "" msgid "Annotate &File" msgstr "Anotar &ficheiro" msgid "File" msgstr "Ficheiro" msgid "Line" msgstr "Linha" msgid "Rev" msgstr "Rev" msgid "User" msgstr "Utilizador" msgid "Match Text" msgstr "Texto correspondente" msgid "TortoiseHg Search" msgstr "Pesquisa do TortoiseHg" #, python-format msgid "Detect Copies/Renames in %s" msgstr "Detectar cópias/renomeação em %s" msgid "Unrevisioned Files" msgstr "Ficheiros sem revisão" msgid "Refresh file list" msgstr "Atualizar lista de ficheiros" #, python-format msgid "Min Similarity: %d%%" msgstr "Mín similaridades: %d%%" msgid "Only consider deleted files" msgstr "Apenas considerar ficheiros eliminados" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "" "Des-seleccionar para considerar todos os ficheiros da revisão para copiar a " "origem" msgid "Find Renames" msgstr "Pesquisar renomeações" msgid "Find copy and/or rename sources" msgstr "Procurar cópia e/ou renomear origem" msgid "Candidate Matches" msgstr "Correspondências do candidato" msgid "Accept All Matches" msgstr "Aceitar todas as correspondências" msgid "Accept Selected Matches" msgstr "Aceitar as correspondências seleccionadas" msgid "Differences from Source to Dest" msgstr "Diferenças da origem para o destino" msgid "Search already in progress" msgstr "Pesquisa já em curso" msgid "Cannot start a new search" msgstr "Não é possível iniciar uma nova pesquisa" msgid "No files to find" msgstr "Sem ficheiros para procurar" msgid "There are no files that may have been renamed" msgstr "" msgid "Multiple sources chosen" msgstr "Escolhidas múltiplas origens" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" "Tem múltiplas renomeações seleccionadas para o ficheiro de destino:\n" "%s. A abortar!" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" "%s e %s têm conteúdos iguais\n" "\n" #. i18n: percent format #, python-format msgid "%d%%" msgstr "%d%%" msgid "Source" msgstr "Fonte" msgid "Dest" msgstr "Dest" msgid "% Match" msgstr "% correspondência" msgid "Sending Email" msgstr "A enviar mensagens" msgid "Email" msgstr "Correio electrónico" msgid "To:" msgstr "Para:" msgid "Cc:" msgstr "Cc:" msgid "In-Reply-To:" msgstr "Em- resposta-a:" msgid "Message identifier to reply to, for threading" msgstr "Identificador de mensagem para resposta, para tópico" msgid "Flag:" msgstr "Etiqueta:" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" "Patches Hg (como gerado pelo comando exportar) são compatíveis com a maioria " "dos programas de patch. Eles incluem um cabeçalho que contém os metadados " "mais importantes do changeset." msgid "Send changesets as Hg patches" msgstr "Enviar changesets como patches Hg" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" "Patches git podem descrever ficheiros binários, cópias e alterações nas " "permissões, mas o destinatário poderá não conseguir usá-los se não estiver a " "usar o git ou o Mercurial." msgid "Use extended (git) patch format" msgstr "Usar formato de patch extendido (git)" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" "Tirar o cabeçalho Mercurial retira o nome de utilizador e a informação " "parental. Apenas de utilidade se o destinatário não estiver a usar o " "Mercurial (e não gosta de ver os cabeçalhos)" msgid "Plain, do not prepend Hg header" msgstr "Simples, não preceder o cabeçalho Hg" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" "Os pacote guardam todos os changesets num formato binário. Os utilizadores " "podem aplicar a partir delas. Esta é a maneira mais segura de enviar " "alterações aos utilizadores do mercurial." msgid "Send single binary bundle, not patches" msgstr "Enviar um bundle binário único" msgid "send patches as part of the email body" msgstr "" msgid "body" msgstr "corpo" msgid "send patches as attachments" msgstr "enviar patches como anexos" msgid "attach" msgstr "anexar" msgid "send patches as inline attachments" msgstr "enviar patches como anexos em linha" msgid "inline" msgstr "em linha" msgid "add diffstat output to messages" msgstr "adicionar saída diffstat ás mensagens" msgid "diffstat" msgstr "diffstat" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" "A descrição das séries de patch é enviada numa mensagem de correio com um " "resumo inicial [PATCH 0 de N] no assunto. Deve descrever os efeitos da série " "inteira do patch. Ao enviar um pacote, estes campos constituem o assunto e o " "corpo da mensagem .As etiquetas são uma lista separada por vírgula de tags " "que são inseridas no assunto da mensagem." msgid "Write patch series (bundle) description" msgstr "Escrever séries de descrição de patch (pacote)" msgid "Subject:" msgstr "Assunto:" msgid "Changesets" msgstr "Changesets" msgid "Select &All" msgstr "Selecionar t&udo" msgid "Select &None" msgstr "" msgid "Edit" msgstr "Editar" msgid "Preview" msgstr "Pré-visualizar" msgid "&Settings" msgstr "&Definições" msgid "Send &Email" msgstr "&Enviar mesagem de correio" msgid "&Close" msgstr "Fe&char" #, python-format msgid "Ignore filter - %s" msgstr "Ignorar filtro - %s" msgid "Glob" msgstr "Glob" msgid "Regexp" msgstr "Regexp" msgid "Add" msgstr "Adicionar" msgid "Edit File" msgstr "Editar ficheiro" msgid "Ignore Filter" msgstr "Ignorar filtro" msgid "Untracked Files" msgstr "Ficheiros não acompanhados" msgid "Backspace or Del to remove row(s)" msgstr "" msgid "Add ignore filter..." msgstr "Adicionar filtro de ignorar..." msgid "selected files" msgstr "ficheiros seleccionados" msgid "Ignore " msgstr "Ignorar " msgid "Invalid glob expression" msgstr "Expressão glob inválida" msgid "Invalid regexp expression" msgstr "Expressão regexp inválida" msgid "Unable to read repository status" msgstr "Não é possível ler o estado do repositório" msgid "New file created" msgstr "Nenhum ficheiro criado" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" msgid "Unable to write .hgignore file" msgstr "Não é possível escrever o ficheiro .hgignore" msgid "Copy working directory files from skeleton" msgstr "" msgid "Create special files (.hgignore, ...)" msgstr "" msgid "Make repo compatible with Mercurial <1.7" msgstr "Tornar o repo compatível com o Mercurial <1.7" msgid "New Repository" msgstr "Novo repositório" msgid "&Create" msgstr "" msgid "Unable to create a config file" msgstr "Não foi possível criar um ficheiro de configuração" msgid "Insufficient access rights." msgstr "Direitos de acesso insuficientes" msgid "Show Log" msgstr "Mostrar registo" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" msgid "Add as &Largefiles" msgstr "" msgid "Add as &Normal Files" msgstr "" msgid "Invalid Patterns" msgstr "" msgid "Failed to process largefiles.patterns." msgstr "" msgid "Word docs (*.doc *.docx)" msgstr "" msgid "PDF docs (*.pdf)" msgstr "" msgid "Excel files (*.xls *.xlsx)" msgstr "" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "" msgid "Refresh lock information" msgstr "" msgid "Lock a file not described in .hglocks" msgstr "" msgid "Stop current operation" msgstr "Parar a operação atual" msgid "Locked And Lockable Files:" msgstr "" msgid "Path" msgstr "Caminho" msgid "Locking User" msgstr "" msgid "Purpose" msgstr "" msgid "Simplelock extension not enabled" msgstr "" msgid "Please enable and configure simplelock" msgstr "" msgid "Open a (nonmergable) file you wish to be locked" msgstr "" msgid "File was not within current repository" msgstr "" #, python-format msgid "Locking %s" msgstr "" #, python-format msgid "Unlocking %s" msgstr "" msgid "Refreshing locks..." msgstr "" #, python-format msgid "Lock of %s successful" msgstr "" #, python-format msgid "Lock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s successful" msgstr "" msgid "Ready, double click to lock or unlock" msgstr "" msgid "Ready" msgstr "" msgid "You can only release your own locks" msgstr "" msgid "Find revisions matching fields of:" msgstr "" msgid "Revision to Match:" msgstr "" msgid "Fields to match:" msgstr "" msgid "Summary (first description line)" msgstr "" msgid "Description" msgstr "Descrição" msgid "Author" msgstr "Autor" msgid "Date" msgstr "Data" msgid "Files" msgstr "Ficheiros" msgid "Diff contents" msgstr "" msgid "Subrepo states" msgstr "" msgid "Branch" msgstr "Ramificação" msgid "Phase" msgstr "Fase" msgid "&Match" msgstr "" #, python-format msgid "Find matches - %s" msgstr "" msgid "Revisions to Match:" msgstr "" #, python-format msgid "Match any of %d revisions" msgstr "" msgid "Unknown revision!" msgstr "Revisão desconhecida!" msgid "Parse Error!" msgstr "" #, python-format msgid "Merge - %s" msgstr "Unir - %s" msgid "Do you want to exit?" msgstr "Deseja sair?" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" msgid "Prepare to merge" msgstr "" msgid "Verify merge targets and ensure your working directory is clean." msgstr "" msgid "Not a head revision!" msgstr "Não é uma revisão head!" msgid "Merge from (other revision)" msgstr "Unir de (outra revisão)" msgid "Merge to (working directory)" msgstr "Unir para (directoria de trabalho)" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Or use:" msgstr "Ou use:" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "" msgid "Discard all changes from the other revision" msgstr "" msgid "&Discard" msgstr "R&ejeitar" msgid "Confirm Discard Changes" msgstr "Confirmar ignorar alterações" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" "As alterações da revisão %s e todos os parentes não unidos serão ignorados.\n" "\n" "tem a certeza que é isto que quer fazer?" msgctxt "working dir state" msgid "Clean" msgstr "Limpar" msgid "Merging..." msgstr "A unir..." msgid "Automatically advance to next page when merge is complete." msgstr "" #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" msgid "" "No merge conflicts, ready to commit or review" msgstr "" msgid "Commit merge results" msgstr "Submeter resultados da união" msgid "Commit Options" msgstr "Opções de submissão" msgid "Commit Now" msgstr "Submeter agora" msgid "Commit Later" msgstr "Submeter mais tarde" msgid "Merge changeset" msgstr "Unir changeset" msgid "Syntax Highlighting" msgstr "" msgid "Paste &Filenames" msgstr "Colar nomesdos&ficheiros" msgid "App&ly Format" msgstr "Ap&licar formato" msgid "C&onfigure Format" msgstr "C&onfigurar formato" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "%s rejeitou os chunks, editar o ficheiro patch com as rejeições?" msgid "&Commit to Queue..." msgstr "" msgid "Create &New Queue..." msgstr "" msgid "&Rename Active Queue..." msgstr "" msgid "&Delete Queue..." msgstr "" msgid "&Purge Queue..." msgstr "" msgid "Create Patch Queue" msgstr "" msgid "New patch queue name" msgstr "" msgid "Create" msgstr "Criar" msgid "Rename Patch Queue" msgstr "" #, python-format msgid "Rename patch queue '%s' to" msgstr "" msgid "Rename" msgstr "Mudar o Nome" msgid "Delete Patch Queue" msgstr "" msgid "Delete reference to" msgstr "" msgid "Delete" msgstr "Eliminar" msgid "Purge Patch Queue" msgstr "" msgid "Remove patch directory of" msgstr "" msgid "Purge" msgstr "Purgar" msgid "Rename Patch" msgstr "" #, python-format msgid "Rename patch %s to:" msgstr "Renomear patch %s para:" msgid "no guards" msgstr "sem guardas" msgid "Patch Queue" msgstr "Patch em espera" msgctxt "MQ QPush" msgid "Push" msgstr "" msgid "Apply one patch" msgstr "Aplicar um patch" msgctxt "MQ QPush" msgid "Push all" msgstr "" msgid "Apply all patches" msgstr "Aplicar todos os patches" msgid "Pop" msgstr "Pop" msgid "Unapply one patch" msgstr "Desaplicar um patch" msgid "Pop all" msgstr "Pop a todos" msgid "Unapply all patches" msgstr "Não aplicar todos os patches" msgid "Go &to Patch" msgstr "" msgid "&Apply Only This Patch" msgstr "" msgid "Apply only the selected patch" msgstr "" msgid "&Finish Patch" msgstr "" msgid "Move applied patches into repository history" msgstr "" msgid "&Delete Patches..." msgstr "" msgid "Delete selected patches" msgstr "Eliminar pastches seleccionados" msgid "Re&name Patch..." msgstr "" msgid "Set &Guards..." msgstr "" msgid "Configure guards for selected patch" msgstr "Configurar guardas para o patch seleccionado" msgid "Patch Queue Actions Toolbar" msgstr "" msgid "Configure guards" msgstr "Configurar guardas" #, python-format msgid "Input new guards for %s:" msgstr "Escrever novo guarda para %s:" msgid "Confirm patch queue switch" msgstr "Confirmar troca na fila de patches" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "Deseja activar a fila de patches '%s' ?" #, python-format msgid "Guards: %d/%d" msgstr "Guardas: %d/%d" msgid "MQ options" msgstr "Opções MQ" msgid "Force push or pop (--force)" msgstr "Forçar envio ou pop (--force)" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "Changelist Perforce pendentes - %s" msgid "Submitting p4 changelist..." msgstr "A submeter changelist p4..." msgid "Reverting p4 changelist..." msgstr "A reverter changelist p4..." msgid "Patch Branch Toolbar" msgstr "Barra de ferramentas de patch do ramo" msgid "Merge all pending dependencies" msgstr "Unir todas as dependências pendentes" msgid "Backout current patch branch" msgstr "Tirar para fora o patch do ramo actual" msgid "Backport part of a changeset to a dependency" msgstr "" msgid "Start a new patch branch" msgstr "Iniciar um novo patch do ramo" msgid "Edit patch dependency graph" msgstr "Edição do gráfico de dependência de patch" msgid "will be closed" msgstr "será encerrado" #, python-format msgid "needs merge of %i heads\n" msgstr "necessita da união de %i cabeçalhos\n" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "necessita da união com %s (through %s)\n" #, python-format msgid "needs merge with %s\n" msgstr "necessita da união com %s\n" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "Necessita de actualizar o diff base par tip de %s\n" msgid "&Goto (update workdir)" msgstr "&Ir para (actualizar directoria de trabalho)" msgid "&Merge" msgstr "&Unir" msgid "No patch branch selected" msgstr "" msgid "No editor found" msgstr "nenhum editor encontrado" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" "O Mercurial não encontrou um editor. Por favor configure o Mercurial para " "utilizar um editor instalado no seu sistema." msgid "Graph" msgstr "Gráfico" msgid "Status" msgstr "Estado" msgid "Title" msgstr "Título" msgid "Message" msgstr "Mensagem" msgid "New Patch Branch" msgstr "Novo ramo de patch" msgid "Patch message:" msgstr "" msgid "Patch date:" msgstr "" msgid "Patch user:" msgstr "" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "Publicar &revisão" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "" "Definições inválidas. O servidor do quadro de revisão não está configurado" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "" "Definições inválidas - Por favor forneça um nome de utilizador para o quadro " "de revisões" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" msgid "Review Board" msgstr "Quadro de reviões" msgid "Password:" msgstr "Senha :" msgid "Error" msgstr "Erro" #, python-format msgid "Review draft posted to %s\n" msgstr "Rever rascunho publicado em %s\n" #, python-format msgid "Review published to %s\n" msgstr "Revisão publicada em %s\n" msgid "Success" msgstr "Sucesso" msgid "Repository ID:" msgstr "ID do repositório:" msgid "Post Review" msgstr "Publicar revisão" msgid "Review ID:" msgstr "ID da revisão:" msgid "Update the fields of this existing request" msgstr "Actualizar os campos do pedido existente" msgid "Update Review" msgstr "Actualizar revisão" msgid "Create diff with all outgoing changes" msgstr "Criar diff com todas as alterações de envio" msgid "Create diff with all changes on this branch" msgstr "Criar diff com todas as alterações deste ramo" msgid "Publish request immediately" msgstr "Publicar imediatamente o pedido" msgid "%p%" msgstr "%p%" msgid "Connecting to Review Board..." msgstr "A ligar ao quadro de revisões..." msgid "Target:" msgstr "Destino:" msgid "Do not modify working copy (-k/--keep)" msgstr "" #, python-format msgid "Prune - %s" msgstr "" msgid "&Prune" msgstr "" msgid "No unknown files found" msgstr "Não foram encontrados ficheiros desconhecidos" msgid "No ignored files found" msgstr "Não foram encontrados ficheiros ignorados" msgid "No trash files found" msgstr "Não foram encontrados ficheiros de lixo" msgid "Delete empty folders" msgstr "Eliminar pastas vazias" msgid "Preserve files beginning with .hg" msgstr "Preservar ficheiros que começam por .hg" #, python-format msgid "%s - purge" msgstr "%s - purgar" msgid "Checking" msgstr "A verificar" msgid "Ready to purge." msgstr "Pronto para purgar" #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "Eliminar %d ficheiro desconhecido" msgstr[1] "Eliminar %d ficheiros desconhecidos" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "Eliminar %d ficheiro ignorado" msgstr[1] "Eliminar %d ficheiros ignorados" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "Eliminar %d ficheiro no .hg/Trashcan" msgstr[1] "Eliminar %d ficheiros no .hg/Trashcan" msgid "Confirm file deletions" msgstr "Confirmar eliminação de ficheiros" msgid "Are you sure you want to delete these files and/or folders?" msgstr "Tem a certeza que deseja eliminar estes ficheiros e/ou pastas?" msgid "Deletion failures" msgstr "A eliminação falhou" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "Não é possível eliminar %d ficheiro ou pasta" msgstr[1] "Não é possível eliminar %d ficheiros ou pastas" msgid "Deleting trash folder..." msgstr "A eliminar apsta de lixo..." #, python-format msgid "Deleted %d files" msgstr "Eliminados %d ficheiros" #, python-format msgid "Deleted %d files and %d folders" msgstr "iminados %d ficheiros e %d pastas" msgid "Delete Patches" msgstr "" msgid "Remove patches from queue?" msgstr "Remover patches da fila de espera?" msgid "Keep patch files" msgstr "Manter ficheiros de patch" #, python-format msgid "Patch fold - %s" msgstr "Arquivar patch - %s" msgid "New patch message:" msgstr "Nova mensagem de patch:" msgid "Patches to fold" msgstr "Patches para arquivar" msgid "&Undo" msgstr "An&ular" msgid "&Redo" msgstr "" msgid "Cu&t" msgstr "Cor&tar" msgid "&Copy" msgstr "&Copiar" msgid "&Paste" msgstr "Co&lar" msgid "&Editor Options" msgstr "" msgid "&Wrap" msgstr "" msgctxt "wrap mode" msgid "&None" msgstr "" msgid "&Word" msgstr "" msgid "&Character" msgstr "" msgid "White&space" msgstr "" msgid "&Visible" msgstr "" msgid "&Invisible" msgstr "" msgid "&AfterIndent" msgstr "" msgid "&TAB Inserts" msgstr "" msgid "&Auto" msgstr "&Auto" msgid "&TAB" msgstr "&TAB" msgid "&Spaces" msgstr "" msgid "EOL &Visibility" msgstr "" msgid "EOL &Mode" msgstr "" msgid "&Windows" msgstr "" msgid "&Unix" msgstr "&Unix" msgid "&Mac" msgstr "&Mac" msgid "&Auto-Complete" msgstr "" msgid "### regular expression ###" msgstr "### expressão regular ###" msgid "Regular expression search pattern" msgstr "Padrão de pesquisa de padrão regular" msgid "Wrap search" msgstr "Procura geral" msgid "Prev" msgstr "Anterior" msgid "Next" msgstr "Seguinte" msgid "Unable to read file" msgstr "" msgid "Could not open the specified file for reading." msgstr "" msgid "This appears to be a binary file." msgstr "" msgid "An error occurred while reading the file." msgstr "" msgid "Text Translation Failure" msgstr "" msgid "Could not translate the file content from native encoding." msgstr "" msgid "Several characters would be lost." msgstr "" msgid "Unable to write file" msgstr "" msgid "Could not translate the file content to native encoding." msgstr "" msgid "Could not open the specified file for writing." msgstr "" msgid "An error occurred while writing the file." msgstr "" msgid "Try refreshing your repository." msgstr "" #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
                                                                            Please edit your config" msgstr "" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
                                                                            Please fix your config" msgstr "" #, python-format msgid "Operation aborted:

                                                                            %(arg0)s." msgstr "" msgid "Repository is locked" msgstr "" msgid "hint:" msgstr "dica:" msgid "Repository Error" msgstr "" msgid "No visual editor configured" msgstr "Nenhum editor visual configurado" msgid "Please configure a visual editor." msgstr "Por favor configure um editor visual" msgid "Editor launch failure" msgstr "" msgid "Failed to open path in terminal" msgstr "" #, python-format msgid "\"%s\" is not a valid directory" msgstr "" #, python-format msgid "Invalid configuration: %s" msgstr "" msgid "Unable to start the following command:" msgstr "" msgid "No shell configured" msgstr "" msgid "A terminal shell must be configured" msgstr "" msgid "Please enter a username" msgstr "Por favor escreva um nome de utilizador" msgid "You must identify yourself to Mercurial" msgstr "tem de se identificar ao Mercurial" msgid "Unable to translate input to local encoding." msgstr "" msgid "Checkmark files to add" msgstr "" msgid "Checkmark files to forget" msgstr "" msgid "Forget" msgstr "Esquecer" msgid "Checkmark files to revert" msgstr "" msgid "Revert" msgstr "Reverter" msgid "Checkmark files to remove" msgstr "" msgid "Remove" msgstr "Remover" #, python-format msgid "%s - hg %s" msgstr "%s - hg %s" msgid "Do not save backup files (*.orig)" msgstr "Não guardar ficheiros de backup (*.orig)" msgid "Force removal of modified files (--force)" msgstr "" msgid "Add &Largefiles" msgstr "" msgid "No files selected" msgstr "Sem ficheiros seleccionados" msgid "No operation to perform" msgstr "nenhuma operação para efectuar" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" msgid "Remove &Unmodified Files" msgstr "" msgid "Remove &All Selected Files" msgstr "" msgid "Rebase changeset and descendants" msgstr "" msgid "To rebase destination" msgstr "" msgid "Swap source and destination" msgstr "" msgid "Keep original changesets (--keep)" msgstr "" msgid "Keep original branch names (--keepbranches)" msgstr "" msgid "Collapse the rebased changesets (--collapse)" msgstr "" msgid "Rebase entire source branch (-b/--base)" msgstr "" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "" msgid "Rebase" msgstr "Rebase" #, python-format msgid "Rebase - %s" msgstr "Rebase - %s" msgid "" "Before rebase, you must
                                                                            commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the rebase" msgstr "Pode continuar a fazer rebase" msgid "Rebase is complete" msgstr "Rebase está terminado" msgid "Rebase failed" msgstr "" msgid "Rebase aborted" msgstr "Rebase abortado" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" msgid "Exiting with an unfinished rebase is not recommended." msgstr "" msgid "Consider aborting the rebase first." msgstr "" #, python-format msgid "Merge rejected patch chunks into %s" msgstr "" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "" msgid "Mark this chunk as unresolved" msgstr "" msgid "Reload File" msgstr "" msgid "Are you sure you want to reload this file?" msgstr "" msgid "All unsaved changes will be lost." msgstr "" msgid "Warning" msgstr "Aviso" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" msgid "Copy source -> destination" msgstr "" msgid "Copy Error" msgstr "Erro ao copiar" msgid "Rename Error" msgstr "Erro ao renomear" msgid "Select Source File" msgstr "" msgid "Select Source Folder" msgstr "seleccione a pasta de origem" msgid "Source does not exist." msgstr "" msgid "The source must be within the repository tree." msgstr "" msgid "The destination must be within the repository tree." msgstr "" msgid "Destination file already exists." msgstr "" msgid "Are you sure you want to overwrite it ?" msgstr "" #, python-format msgid "Copy - %s" msgstr "Copiar - %s" #, python-format msgid "Rename - %s" msgstr "Renomear - %s" msgid "Show all" msgstr "Mostrar tudo" msgid "### revision set query ###" msgstr "" msgid "Clear current query and query text" msgstr "" msgid "Trigger revision set query" msgstr "" msgid "Open advanced query editor" msgstr "" msgid "Delete selected query from history" msgstr "" msgid "filter" msgstr "filtrar" msgid "Toggle filtering of non-matched changesets" msgstr "" msgid "Show/Hide hidden changesets" msgstr "" msgid "Toggle graft relations visibility" msgstr "" msgid "Keyword Search" msgstr "" msgid "Revision Set" msgstr "Conjunto de revisão" msgid "(unsaved)" msgstr "" msgid "Display graph the named branch only" msgstr "" msgid "Display only active branches" msgstr "" msgid "Display closed branches" msgstr "" msgid "Include all ancestors" msgstr "" msgctxt "column header" msgid "Graph" msgstr "" msgctxt "column header" msgid "Rev" msgstr "" msgctxt "column header" msgid "Branch" msgstr "" msgctxt "column header" msgid "Description" msgstr "" msgctxt "column header" msgid "Author" msgstr "" msgctxt "column header" msgid "Tags" msgstr "" msgctxt "column header" msgid "Latest tags" msgstr "" msgctxt "column header" msgid "Node" msgstr "" msgctxt "column header" msgid "Git Commit" msgstr "" msgctxt "column header" msgid "Age" msgstr "" msgctxt "column header" msgid "Local Time" msgstr "" msgctxt "column header" msgid "UTC Time" msgstr "" msgctxt "column header" msgid "Changes" msgstr "" msgctxt "column header" msgid "Converted From" msgstr "" msgctxt "column header" msgid "Phase" msgstr "" msgctxt "column header" msgid "Filename" msgstr "Nome do ficheiro" msgid "Searching..." msgstr "" #, python-format msgid "filling (%d)" msgstr "" msgid "Mercurial User" msgstr "Utilizador do Mercurial" msgid "Repository Registry" msgstr "Registo do repositório" msgid "Show &Paths" msgstr "" msgid "Show S&hort Paths" msgstr "" msgid "&Scan Repositories at Startup" msgstr "" msgid "Scan &Remote Repositories" msgstr "" msgid "&Refresh Repository List" msgstr "" msgid "Refresh the Repository Registry list" msgstr "Atualizar a lista do registo do repositório" msgid "&Open" msgstr "&Abrir" msgid "Open the repository in a new tab" msgstr "" msgid "&Open All" msgstr "&Abrir tudo" msgid "Open all repositories in new tabs" msgstr "" msgid "New &Group" msgstr "Novo &grupo" msgid "Create a new group" msgstr "Criar um novo grupo" msgid "Rename the entry" msgstr "" msgid "Settin&gs" msgstr "" msgid "View the repository's settings" msgstr "" msgid "Re&move from Registry" msgstr "" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" msgid "Clon&e..." msgstr "Clon&ar..." msgid "Clone Repository" msgstr "Clonar repositório" msgid "E&xplore" msgstr "E&xplorar" msgid "Open the repository in a file browser" msgstr "Abrir repositório num ficheiro do navegador" msgid "&Terminal" msgstr "&Terminal" msgid "Open a shell terminal in the repository root" msgstr "" msgid "&Add Repository..." msgstr "" msgid "Add a repository to this group" msgstr "" msgid "A&dd Subrepository..." msgstr "" msgid "Convert an existing repository into a subrepository" msgstr "" msgid "Remo&ve Subrepository..." msgstr "" msgid "Remove this subrepository from the current revision" msgstr "" msgid "Copy the root path of the repository to the clipboard" msgstr "" msgid "Sort by &Name" msgstr "" msgid "Sort the group by short name" msgstr "" msgid "Sort by &Path" msgstr "" msgid "Sort the group by full path" msgstr "" msgid "&Sort by .hgsub" msgstr "" msgid "Order the subrepos as in .hgsub" msgstr "" msgid "Select repository directory to add" msgstr "" msgid "Select an existing repository to add as a subrepo" msgstr "" msgid "Cannot add subrepository" msgstr "" #, python-format msgid "%s is not a valid repository" msgstr "" #, python-format msgid "\"%s\" is not a folder" msgstr "" msgid "A repository cannot be added as a subrepo of itself" msgstr "" #, python-format msgid "" "The selected folder:

                                                                            %s

                                                                            is not inside the target repository." "

                                                                            This may be allowed but is greatly discouraged.
                                                                            If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" msgid "Cannot open repository" msgstr "" #, python-format msgid "The selected repository:

                                                                            %s

                                                                            cannot be open!" msgstr "" msgid "Subrepository already exists" msgstr "" #, python-format msgid "" "The selected repository:

                                                                            %s

                                                                            is already a subrepository of:" "

                                                                            %s

                                                                            as: \"%s\"" msgstr "" msgid "Failed to add subrepository" msgstr "" #, python-format msgid "Cannot open the .hgsub file in:

                                                                            %s" msgstr "" msgid "Failed to add repository" msgstr "" #, python-format msgid "The .hgsub file already contains the line:

                                                                            %s" msgstr "" msgid "Subrepo added to .hgsub file" msgstr "" #, python-format msgid "" "The selected subrepo:

                                                                            %s

                                                                            has been added to the .hgsub " "file of the repository:

                                                                            %s

                                                                            Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" #, python-format msgid "Cannot update the .hgsub file in:

                                                                            %s" msgstr "Não é possível atualizar o ficheiro .hgsub no:

                                                                            %s" msgid "Could not open .hgsub file" msgstr "" msgid "Cannot read the .hgsub file.

                                                                            Subrepository removal failed." msgstr "" msgid "Subrepository not found" msgstr "" msgid "" "The selected subrepository was not found on the .hgsub file.

                                                                            Perhaps it " "has already been removed?" msgstr "" msgid "&Yes" msgstr "&Sim" msgid "&No" msgstr "&Não" msgid "Remove the selected repository?" msgstr "" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" msgid "Subrepository removed from .hgsub" msgstr "" msgid "" "The selected subrepository has been removed from the .hgsub file.

                                                                            Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" msgid "Could not update .hgsub file" msgstr "" msgid "Cannot update the .hgsub file.

                                                                            Subrepository removal failed." msgstr "" #, python-format msgid "Unsupported repository type (%s)" msgstr "" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "" msgid "New Group" msgstr "Novo grupo" msgid "Confirm Delete" msgstr "Confirmar Remoção" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "" msgid "Could not get subrepository list" msgstr "" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

                                                                            %s" msgstr "" msgid "Could not open some subrepositories" msgstr "" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

                                                                            %s

                                                                            The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

                                                                            %s" msgstr "" msgid "Updating repository registry" msgstr "A atualizar o registo do repositório" #, python-format msgid "Loading repository %s" msgstr "" msgid "Repository Registry updated" msgstr "Atualizado o registo do repositório" msgid "Close tab" msgstr "Fechar separador" msgid "Close other tabs" msgstr "Fechar outros separadores" msgid "Undo close tab" msgstr "" msgid "Reopen last closed tab" msgstr "" msgid "Undo close other tabs" msgstr "" msgid "Reopen last closed tab group" msgstr "" msgid "Failed to open repository" msgstr "" msgid "&Sort" msgstr "" #, python-format msgid "Local Repository %s" msgstr "" #, python-format msgid "" "An exception happened while loading the subrepos of:

                                                                            \"%s\"

                                                                            " msgstr "" #, python-format msgid "The exception error message was:

                                                                            %s

                                                                            " msgstr "" msgid "Click OK to continue or Abort to exit." msgstr "" msgid "Error loading subrepos" msgstr "" msgid "Unable to update repository name" msgstr "" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "" msgid "default" msgstr "pré-definido" msgid "C&hoose Log Columns..." msgstr "" msgid "&Resize Columns" msgstr "" #, python-format msgid "Goto ancestor of %s and %s" msgstr "" #, python-format msgid "Can't find revision '%s'" msgstr "" msgid "Drag to change order" msgstr "Arraste para alterar a ordem" msgid "Workbench Log Columns" msgstr "" msgctxt "tab tooltip" msgid "Revision details" msgstr "" msgctxt "tab tooltip" msgid "Commit" msgstr "Submeter" msgctxt "tab tooltip" msgid "Search" msgstr "" msgctxt "tab tooltip" msgid "Console log" msgstr "" msgctxt "tab tooltip" msgid "Synchronize" msgstr "" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "" #, python-format msgid "%s " msgstr "" #, python-format msgid "Found %d incoming changesets" msgstr "" msgid "Pull" msgstr "Receber" msgid "Pull incoming changesets into your repository" msgstr "" msgid "Reject incoming changesets" msgstr "" #, python-format msgid "Push current branch (%s)" msgstr "" #, python-format msgid "Push up to current revision (#%d)" msgstr "" #, python-format msgid "Push up to revision #%d" msgstr "" msgid "Push all" msgstr "" msgid "no outgoing changesets" msgstr "" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets" msgstr "%d changesets para enviar" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "" msgid "Nothing to push" msgstr "" msgid "No revision found" msgstr "" #, python-format msgid "%s - verify repository" msgstr "" #, python-format msgid "%s - recover repository" msgstr "" msgid "No transaction available" msgstr "" msgid "There is no rollback transaction available" msgstr "" msgid "Undo last commit?" msgstr "Anular último envio?" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "" "Anular a submissão mais recente (%d), preservando as alterações do ficheiro?" msgid "Undo last transaction?" msgstr "" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "" msgid "Unable to determine working copy revision\n" msgstr "" msgid "Remove current working revision?" msgstr "" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" msgid "Tab cannot exit" msgstr "" msgid "Pus&h" msgstr "" msgid "Push to &Here" msgstr "" msgid "Push Selected &Branch" msgstr "" msgid "Push &All" msgstr "" msgid "&Update..." msgstr "At&ualizar..." msgid "Bro&wse at Revision" msgstr "" msgid "&Merge with Local..." msgstr "" msgid "&Tag..." msgstr "" msgid "Boo&kmark..." msgstr "" msgid "Top&ic..." msgstr "" msgid "Sig&n..." msgstr "" msgid "&Backout..." msgstr "" msgid "Revert &All Files..." msgstr "" msgid "Copy &Hash" msgstr "" msgid "E&xport" msgstr "E&xportar" msgid "E&xport Patch..." msgstr "E&xportar Patch..." msgid "&Email Patch..." msgstr "" msgid "&Archive..." msgstr "" msgid "&Bundle Rev and Descendants..." msgstr "" msgid "Change &Phase to" msgstr "" msgid "&Graft to Local..." msgstr "" msgid "Modi&fy History" msgstr "Modi&ficar histórico" msgid "&Unapply Patch" msgstr "" msgid "Import to &MQ" msgstr "" msgid "MQ &Options" msgstr "" msgid "&Rebase..." msgstr "" msgid "&Prune..." msgstr "" msgid "&Strip..." msgstr "" msgid "Post to Re&view Board..." msgstr "" msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "Atualização &remota..." msgid "Write diff file" msgstr "" msgid "Unable to write diff file" msgstr "" msgid "Unable to compress history" msgstr "" msgid "Selected changeset pair not related" msgstr "" msgid "Visual Diff..." msgstr "" msgid "Export Diff..." msgstr "" msgid "Export Selected..." msgstr "" msgid "Email Selected..." msgstr "" msgid "Copy Selected as Patch" msgstr "" msgid "Archive DAG Range..." msgstr "" msgid "Export DAG Range..." msgstr "" msgid "Email DAG Range..." msgstr "" msgid "Bundle DAG Range..." msgstr "" msgid "Bisect - Good, Bad..." msgstr "" msgid "Bisect - Bad, Good..." msgstr "" msgid "Compress History..." msgstr "" msgid "Rebase..." msgstr "" msgid "Goto common ancestor" msgstr "" msgid "Graft Selected to local..." msgstr "" msgid "&Prune Selected..." msgstr "" msgid "Post Selected to Review Board..." msgstr "" msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "" msgid "Apply onto original parent" msgstr "" msgid "Apply only this patch" msgstr "" msgid "Fold patches..." msgstr "" msgid "Delete patches..." msgstr "" msgid "Rename patch..." msgstr "" msgid "Pull to here..." msgstr "" msgid "Visual diff..." msgstr "" msgid "Export patch" msgstr "" msgid "Patch Files (*.patch)" msgstr "" msgid "Cannot export revision" msgstr "" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" msgid "There is already an existing folder with that same name." msgstr "" msgid "Replace" msgstr "Substituir" msgid "Append" msgstr "Anexar" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" msgid "What do you want to do?\n" msgstr "" msgid "Replace the existing patch files.\n" msgstr "" msgid "Append the changes to the existing patch files.\n" msgstr "" msgid "Abort the export operation.\n" msgstr "" msgid "Patch files already exist" msgstr "" msgid "Patch exported" msgstr "" #, python-format msgid "" "Revision #%d (%s) was exported to:

                                                                            %s%s%s" msgstr "" msgid "Patches exported" msgstr "" #, python-format msgid "%d patches were exported to:

                                                                            %s" msgstr "" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

                                                                            Are you sure you want to use revert?

                                                                            (use " "update to checkout another revision)" msgstr "" msgid "Filter b&y" msgstr "" msgid "&Ancestors and Descendants" msgstr "" msgid "A&uthor" msgstr "" msgid "&Branch" msgstr "" msgid "&More Options..." msgstr "" msgid "Unable to merge" msgstr "Não é possível fundir" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "" msgid "Unable to backout" msgstr "não é possível fazer backout" msgid "Write bundle" msgstr "" msgid "Backwards phase change requested" msgstr "" msgid "Do you really want to make this revision secret?" msgstr "" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" msgid "&Make secret" msgstr "" msgid "&Cancel" msgstr "&Cancelar" msgid "Do you really want to force a backwards phase transition?" msgstr "" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" msgid "&Force" msgstr "&Forçar" msgid "Cannot import selected revision" msgstr "" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" msgid "Invalid command" msgstr "" msgid "The selected command is empty" msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" msgid "Failed to execute custom TortoiseHg command" msgstr "" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "" msgid "Failed to execute custom command" msgstr "" #, python-format msgid "The command \"%s\" could not be executed." msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" msgid "&Edit Toolbar" msgstr "" msgid "&Refresh" msgstr "Actualiza&r" msgid "&Filter Toolbar" msgstr "" #, python-format msgid "TortoiseHg: %s" msgstr "" msgid "S&tatus Bar" msgstr "" #, python-format msgid "Resolve Conflicts - %s" msgstr "" msgid "Local revision information" msgstr "" msgid "Other revision information" msgstr "" msgid "Unresolved conflicts" msgstr "" msgid "Mercurial Re&solve" msgstr "" msgid "Attempt automatic (trivial) merge" msgstr "" msgid "Tool &Resolve" msgstr "" msgid "Merge using selected merge tool" msgstr "" msgid "&Take Local" msgstr "" msgid "Accept the local file version (yours)" msgstr "" msgid "Take &Other" msgstr "" msgid "Accept the other file version (theirs)" msgstr "" msgid "&Mark as Resolved" msgstr "" msgid "Mark this file as resolved" msgstr "" msgid "Diff &Local to Ancestor" msgstr "" msgid "&Diff Other to Ancestor" msgstr "" msgid "Resolved conflicts" msgstr "" msgid "&Edit File" msgstr "&Editar ficheiro" msgid "Edit resolved file" msgstr "" msgid "3-&Way Diff" msgstr "3-&Way Diff" msgid "Visual three-way diff" msgstr "" msgid "Visual diff between resolved file and first parent" msgstr "" msgid "&Diff to Other" msgstr "&Diff para outro" msgid "Visual diff between resolved file and second parent" msgstr "" msgid "Mark as &Unresolved" msgstr "" msgid "Mark this file as unresolved" msgstr "" msgid "Detected merge/diff tools:" msgstr "Ferramentas de unir/diff detetadas:" msgid "Command output" msgstr "" msgid "Unable to show subrepository files" msgstr "" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" msgid "There are merge conflicts to be resolved" msgstr "" msgid "All conflicts are resolved." msgstr "" msgid "There are no conflicting file merges." msgstr "" msgid "Exit without finishing resolve?" msgstr "" msgid "Unresolved conflicts remain. Are you sure?" msgstr "" msgid "E&xit" msgstr "&Saír" msgid "Ext" msgstr "Ext" msgid "Repository" msgstr "Repositório" msgid "" msgstr "" msgid "File List Toolbar" msgstr "" msgid "Ma&nifest Mode" msgstr "" msgid "Show all version-controlled files in tree view" msgstr "" msgid "&Flat List" msgstr "" msgid "### filter text ###" msgstr "### filtrar texto ###" msgid "Changed by &This Commit" msgstr "" msgid "Show files changed by this commit" msgstr "" msgid "Compare to &1st Parent" msgstr "" msgid "Compare to &2nd Parent" msgstr "" msgid "Toggle parent to be used as the base revision" msgstr "" msgid "List Optio&ns" msgstr "" #, python-format msgid "%s - Revision Details (%s)" msgstr "" #, python-format msgid "Revert - %s" msgstr "Reverter - %s" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "" msgid "Revert all files to this revision" msgstr "" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "" msgid "null revision (i.e. remove file(s))" msgstr "" msgid "Changeset:" msgstr "Changeset:" msgid "Child:" msgstr "Filho:" msgid "Predecessors:" msgstr "" msgid "Successors:" msgstr "" msgid "Head is closed!" msgstr "" msgid "Changesets where username contains string." msgstr "" msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" msgid "Like \"keyword(string)\" but accepts a regex." msgstr "" msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" msgid "The named bookmark or all bookmarks." msgstr "" msgid "The named tag or all tags." msgstr "" msgid "Changeset is tagged." msgstr "" msgid "Changeset is a named branch head." msgstr "" msgid "Changeset is a merge changeset." msgstr "" msgid "Changeset is closed." msgstr "O changeset está fechado." msgid "" "Changesets within the interval, see help dates" msgstr "" msgid "Greatest common ancestor of the two changesets." msgstr "" msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" msgid "Changesets which modify files matched by pattern." msgstr "" msgid "Changesets which add files matched by pattern." msgstr "" msgid "Changesets which remove files matched by pattern." msgstr "" msgid "Changesets containing files matched by pattern." msgstr "" msgid "All changesets belonging to the branches of changesets in set." msgstr "" msgid "Members of a set with no children in set." msgstr "" msgid "Changesets which are descendants of changesets in set." msgstr "" msgid "Changesets that are ancestors of a changeset in set." msgstr "" msgid "Child changesets of changesets in set." msgstr "" msgid "The set of all parents for all changesets in set." msgstr "" msgid "First parent for all changesets in set, or the working directory." msgstr "" msgid "Second parent for all changesets in set, or the working directory." msgstr "" msgid "Changesets with no parent changeset in set." msgstr "" msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" msgid "Changeset with lowest revision number in set." msgstr "" msgid "Changeset with highest revision number in set." msgstr "" msgid "First n members of a set." msgstr "" msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "" msgid "All changesets, the same as 0:tip." msgstr "" msgid "Revision Set Query" msgstr "" msgid "all revisions converted from subversion" msgstr "" msgid "changeset which represents converted svn revision" msgstr "" msgid "Common sets" msgstr "" msgid "File pattern sets" msgstr "" msgid "Set Ancestry" msgstr "" msgid "Set Logic" msgstr "" msgid "" "help " "revsets" msgstr "" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" "\n" "Caught keyboard interrupt, a abortar.\n" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "não é possível ler o ficheiro\"%s\". Ignorado.\n" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" #, python-format msgid "thg: unknown command '%s'\n" msgstr "" #, python-format msgid "thg %s: %s\n" msgstr "thg %s: %s\n" #, python-format msgid "thg: %s\n" msgstr "thg: %s\n" #, python-format msgid "abort: %s!\n" msgstr "abortar: %s!\n" #, python-format msgid "abort: %s\n" msgstr "" #, python-format msgid "(%s)\n" msgstr "" msgid "option --config may not be abbreviated!" msgstr "" msgid "invalid arguments" msgstr "argumentos inválidos" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "Formato de perfil não reconhecido '%s' - Ignorado\n" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" "lsprof não disponível - instale a partir de http://codespeak.net/svn/user/" "arigo/hack/misc/lsprof/" msgid "repository root directory or symbolic path name" msgstr "directoria principal do repositório ou nome do caminho" msgid "enable additional output" msgstr "activar saída adicional" msgid "suppress output" msgstr "suprimir saída" msgid "display help and exit" msgstr "mostrar ajuda e sair" msgid "set/override config option (use 'section.name=value')" msgstr "" msgid "enable debugging output" msgstr "" msgid "start debugger" msgstr "iniciar debugger" msgid "print command execution profile" msgstr "imprimir comando de execução do perfil" msgid "do not fork GUI process" msgstr "não deslocar o processo GUI" msgid "always fork GUI process" msgstr "Deslocar sempre o processo GUI" msgid "read file list from file" msgstr "ler lista do ficheiro apartir do ficheiro" msgid "read file list from file encoding utf-8" msgstr "" msgid "thg about" msgstr "" msgid "thg add [FILE]..." msgstr "" msgid "revision to annotate" msgstr "revisões a anotar" msgid "open to line" msgstr "" msgid "initial search pattern" msgstr "" msgid "thg annotate" msgstr "thg annotate" #, python-format msgid "invalid line number: %s" msgstr "" msgid "revision to archive" msgstr "" msgid "thg archive" msgstr "" msgid "merge with old dirstate parent after backout" msgstr "" msgid "parent to choose when backing out merge" msgstr "" msgid "revision to backout" msgstr "" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "" msgid "thg bisect" msgstr "" msgid "revision" msgstr "" msgid "thg bookmarks [-r REV] [NAME]" msgstr "" msgid "only one new bookmark name allowed" msgstr "" msgid "the clone will include an empty working copy (only a repository)" msgstr "" msgid "revision, tag or branch to check out" msgstr "" msgid "include the specified changeset" msgstr "" msgid "clone only the specified branch" msgstr "" msgid "use pull protocol to copy metadata" msgstr "usar o protocolo pull para copiar metadados" msgid "use uncompressed transfer (fast over LAN)" msgstr "" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "" msgid "record user as committer" msgstr "guardar utilizador como remetente" msgid "record datecode as commit date" msgstr "guardar datecode como data de envio" msgid "thg commit [OPTIONS] [FILE]..." msgstr "thg commit [OPÇÕES] [FICHEIRO]..." msgid "thg debugblockmatcher" msgstr "" msgid "thg debugbugreport [TEXT]" msgstr "" msgid "thg debugconsole" msgstr "" msgid "thg debuglighthg" msgstr "" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "" msgid "no command specified" msgstr "" msgid "thg drag_copy SOURCE... DEST" msgstr "" msgid "thg drag_move SOURCE... DEST" msgstr "" msgid "a revision to send" msgstr "" msgid "thg email [REVS]" msgstr "" msgid "use only one form to specify the revision" msgstr "usar apenas um formulário para especificar a revisão" msgid "select the specified revision" msgstr "" msgid "side-by-side comparison of revisions" msgstr "" msgid "thg filelog [OPTION]... FILE" msgstr "" msgid "requires a single filename" msgstr "" msgid "thg forget [FILE]..." msgstr "" msgid "revisions to graft" msgstr "" msgid "thg graft [-r] REV..." msgstr "" msgid "You must provide revisions to graft" msgstr "" msgid "ignore case during search" msgstr "" msgid "thg grep" msgstr "" msgid "thg guess" msgstr "" msgid "thg help [COMMAND]" msgstr "thg help [COMMAND]" msgid "global options:" msgstr "opções globais:" msgid "use \"thg help\" for the full list of commands" msgstr "use \"thg help\" para a lista completa de comandos" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "use \"thg -v help%s\" para mostrar alcunhas ou opções globais" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "use \"thg -v help %s\" para mostrar opções globais" msgid "" "list of commands:\n" "\n" msgstr "" "lista de comandos:\n" "\n" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" "\n" "alcunhas: %s\n" msgid "(no help text available)" msgstr "(sem texto de ajuda disponível)" msgid "options:\n" msgstr "opções:\n" msgid "no commands defined\n" msgstr "sem comandos definidos\n" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "Thg - GUI de ferramentas do TortoiseHg para Mercurial SCM (Hg)\n" msgid "" "basic commands:\n" "\n" msgstr "" "comandos básicos:\n" "\n" #, python-format msgid " (default: %s)" msgstr " (pré-definição: %s)" msgid "thg hgignore [FILE]" msgstr "" msgid "import to the patch queue (MQ)" msgstr "importar para a espera do patch (MQ)" msgid "thg import [OPTION] [SOURCE]..." msgstr "" msgid "thg init [DEST]" msgstr "" msgid "thg lock" msgstr "" msgid "search for a given text or revset" msgstr "" msgid "(DEPRECATED)" msgstr "" msgid "open a new workbench window" msgstr "" msgid "thg log [OPTIONS] [FILE]" msgstr "" msgid "cannot specify both -k/--query and filenames" msgstr "" msgid "revision to display" msgstr "" msgid "thg manifest [-r REV] [FILE]" msgstr "" msgid "revision to merge" msgstr "" msgid "thg merge [[-r] REV]" msgstr "" msgid "Merge revision not specified or not found" msgstr "Revisão a unir não especificada ou não encontrada" msgid "a revision to post" msgstr "" msgid "thg postreview [-r] REV..." msgstr "" msgid "reviewboard extension not enabled" msgstr "" #, python-format msgid "see %(url)s" msgstr "" msgid "no revisions specified" msgstr "" msgid "revisions to prune" msgstr "" msgid "thg prune [-r] REV..." msgstr "" msgid "thg purge" msgstr "" msgid "keep original changesets" msgstr "" msgid "keep original branch names" msgstr "" msgid "rebase from the specified changeset" msgstr "" msgid "rebase onto the specified changeset" msgstr "" msgid "thg rebase -s REV -d REV [--keep]" msgstr "" msgid "Rebase already in progress" msgstr "" msgid "Resuming rebase already in progress" msgstr "" msgid "You must provide source and dest arguments" msgstr "" msgid "thg rejects [FILE]" msgstr "" msgid "You must provide the path to a file" msgstr "Tem de fornecer o caminho para o ficheiro" msgid "thg remove [FILE]..." msgstr "" msgid "thg rename [SOURCE] [DEST]" msgstr "" msgid "field to give initial focus" msgstr "campo para dar realce inicial" msgid "thg repoconfig" msgstr "" msgid "thg resolve" msgstr "" msgid "the revision to show" msgstr "" msgid "thg revdetails [-r REV]" msgstr "" msgid "thg revert [FILE]..." msgstr "" msgid "revision to update" msgstr "revisão para actualizar" msgid "thg rupdate [[-r] REV]" msgstr "" msgid "name of the hgweb config file (serve more than one repository)" msgstr "" "nome do ficheiro de configuração hgweb (serve para mais que um repositório)" msgid "name of the hgweb config file (DEPRECATED)" msgstr "nome do ficheiro de configuração hgweb (depreciativo)" msgid "thg serve [--web-conf FILE]" msgstr "" msgid "thg shellconfig" msgstr "" msgid "thg shelve" msgstr "" msgid "sign even if the sigfile is modified" msgstr "" msgid "make the signature local" msgstr "" msgid "the key id to sign with" msgstr "" msgid "do not commit the sigfile after signing" msgstr "" msgid "use as commit message" msgstr "" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "" msgid "Please enable the Gpg extension first." msgstr "" msgid "show files without changes" msgstr "" msgid "show ignored files" msgstr "" msgid "thg status [OPTIONS] [FILE]" msgstr "" msgid "discard uncommitted changes (no backup)" msgstr "" msgid "do not back up stripped revisions" msgstr "" msgid "do not modify working copy during strip" msgstr "" msgid "revision to strip" msgstr "" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "" msgid "open the bookmark sync window" msgstr "" msgid "thg sync [OPTION]... [PEER]" msgstr "" msgid "replace existing tag" msgstr "" msgid "make the tag local" msgstr "" msgid "revision to tag" msgstr "" msgid "remove a tag" msgstr "" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "" msgid "wait until the second ticks over" msgstr "aguarde até o segundo passar" msgid "notify the shell for paths given" msgstr "notificar a shell para os caminhos dados" msgid "remove the status cache" msgstr "remover a cache de estado" msgid "show the contents of the status cache (no update)" msgstr "mostrar o conteúdo do estado da cache (sem actualizar)" msgid "update all repos in current dir" msgstr "actualizar todos os repos no dir actual" msgid "thg thgstatus [OPTION]" msgstr "" msgid "thg topics [-r REV] [NAME]" msgstr "" msgid "Please enable the Topic extension first." msgstr "" msgid "only one new topic name allowed" msgstr "" msgid "thg update [-C] [[-r] REV]" msgstr "atualizar thg [-C] [[-r] REV]" msgid "thg userconfig" msgstr "" msgid "changeset to view in diff tool" msgstr "changeset para ver na ferramenta de diff" msgid "revisions to view in diff tool" msgstr "revisões para ver na ferramenta de diff" msgid "bundle file to preview" msgstr "ficheiro do pacote para pré-visualizar" msgid "launch visual diff tool" msgstr "iniciar a ferramenta de diff visual" msgid "print license" msgstr "imprimir licença" msgid "thg version [OPTION]" msgstr "" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "Diálogos do TortoiseHg (versão %s), Mercurial (versão %s)\n" msgid "Location:" msgstr "Localização:" msgid "Update to:" msgstr "Actualizar para:" msgid "Options:" msgstr "Opções:" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "" msgid "Perform a push before updating (-p/--push)" msgstr "" msgid "Allow pushing new branches (--new-branch)" msgstr "" msgid "Force push to remote location (-f/--force)" msgstr "" msgid "remove working directory" msgstr "" msgid "unknown revision!" msgstr "revisão desconhecida!" #, python-format msgid "Remote Update - %s" msgstr "" msgid "&Update" msgstr "At&ualizar" msgid "Log" msgstr "" msgid "Repositories" msgstr "" #, python-format msgid "Running at %s" msgstr "" msgid "Stopped" msgstr "" msgid "TortoiseHg Web Server" msgstr "" msgid "Web Server" msgstr "Servidor Web" msgid "Port:" msgstr "Porta:" msgid "Status:" msgstr "Estado:" msgid "Start" msgstr "Iniciar" msgid "Settings" msgstr "Definições" msgid "" msgstr "" msgid "&True" msgstr "&Verdadeiro" msgid "&False" msgstr "&Falso" msgid "&Unspecified" msgstr "Não e&specificado" #, python-format msgid "%dpt" msgstr "" msgid "Bold" msgstr "" msgid "Italic" msgstr "" msgid "Strike" msgstr "" msgid "Underline" msgstr "" msgid "&Set..." msgstr "&Definir..." msgid "&Clear" msgstr "&Limpar" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "" msgid "&Browse..." msgstr "" msgid "UI Language" msgstr "Idioma da IU" msgid "Specify your preferred user interface language (restart needed)" msgstr "" "Especifique o idioma preferido para a interface (é necessário reiniciar)" msgid "Three-way Merge Tool" msgstr "Three-way Merge Tool" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" msgid "Visual Diff Tool" msgstr "Ferramenta de diff visual" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" "Especifique a ferramenta de comparação visual, conforme descrito na secção " "[fundir-tools] do ficheiros de configuração Mercurial. Se não for " "especificado, o TortoiseHg irá usar a ferramenta de união seleccionada. Se " "falhar utiliza a primeira ferramenta aplicável que encontrar." msgid "Visual Editor" msgstr "Editor visual" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" msgid "CLI Editor" msgstr "Editor CLI" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" msgid "Shell" msgstr "" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
                                                                            Default, Windows: cmd.exe /" "K title %(reponame)s
                                                                            Default, OS X: not set
                                                                            Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" msgid "Immediate Operations" msgstr "" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" msgid "Tab Width" msgstr "Largura do Separador" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" msgid "Force Repo Tab" msgstr "" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "" msgid "Monitor Repo Changes" msgstr "" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" msgid "Max Diff Size" msgstr "Tamanho máx, do diff" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" "O tamanho máximo do ficheiro (em KB) que o TortoiseHg irá mostrar as " "alterações no registo de alterações, estado e janelas de envio. Um valor de " "zero implica nenhum limite. Pré-definição: 1024 (1MB)" msgid "Fork GUI" msgstr "" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" msgid "Full Path Title" msgstr "Caminho completo do titúlo" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" msgid "Auto-resolve merges" msgstr "" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" msgid "New Repo Skeleton" msgstr "" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "Workbench" msgid "Single Workbench Window" msgstr "" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" msgid "Default widget" msgstr "" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" msgid "" "Open new tabs next\n" "to the current tab" msgstr "" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" msgid "Author Coloring" msgstr "Coloração do autor" msgid "Color changesets by author name. Default: False" msgstr "" msgid "Full Authorname" msgstr "" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" msgid "Task Tabs" msgstr "Separadores de tarefas" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" msgid "Task Toolbar Order" msgstr "" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
                                                                            Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
                                                                            Valid names are: log commit sync grep and " "pbranch.
                                                                            Default: log commit grep pbranch | sync" msgstr "" msgid "Long Summary" msgstr "Sumário longo" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" msgid "Log Batch Size" msgstr "Tamanho do registo Batch" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "" "O número de revisões para ler e mostrar no visionador de alteração de " "registo de uma única vez. Pré-definição: 500" msgid "Dead Branches" msgstr "Ramos mortos" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" msgid "Branch Colors" msgstr "Cores do ramo" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" msgid "Hide Tags" msgstr "Ocultar etiquetas" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" msgid "Activate Bookmarks" msgstr "" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

                                                                            • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
                                                                            • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
                                                                            • never: Never show any prompt to " "activate any bookmarks.

                                                                            Default: prompt" msgstr "" msgid "Show Family Line" msgstr "" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

                                                                            Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" msgid "Use optimized graph layouter" msgstr "" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

                                                                            Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" msgctxt "config item" msgid "Commit" msgstr "Submeter" msgid "Username" msgstr "Nome de utilizador" msgid "" "Name associated with commits. The common format is:
                                                                            Full Name <" "email@example.com>" msgstr "" msgid "Ask Username" msgstr "" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" msgid "Summary Line Length" msgstr "Tamanho da linha do sumário" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" msgid "Close After Commit" msgstr "Fechar após enviar" msgid "Close the commit tool after every successful commit. Default: False" msgstr "" "Fechar a ferramenta de envio depois de cada envio bem sucedido. Pré-" "definição: Falso" msgid "Push After Commit" msgstr "Enviar após submeter" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" msgid "Auto Commit List" msgstr "Lista de envio auto" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" msgid "Auto Exclude List" msgstr "Auto excluir lista" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" msgid "English Messages" msgstr "Mensagens em inglês" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" msgid "New Commit Phase" msgstr "" msgid "The phase of new commits. Default: draft" msgstr "" msgid "Secret MQ Patches" msgstr "" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "" msgid "Check Subrepo Phase" msgstr "" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" msgid "Monitor working
                                                                            directory changes" msgstr "" msgid "" "Select when the working directory status list will be refreshed:
                                                                            - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
                                                                            TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
                                                                            - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
                                                                            - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
                                                                            Default: auto" msgstr "" msgid "Confirm adding unknown files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Confirm deleting files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Sync" msgstr "" msgid "After Pull Operation" msgstr "Após a operação de recepção" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" msgid "Default Push" msgstr "" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

                                                                            • all: The default. Push all changes in all " "branches.
                                                                            • branch: Push all changes in the current branch.
                                                                            • revision: Push the changes in the current branch up to the current revision.

                                                                            Default: all" msgstr "" msgid "Confirm Push" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" msgid "Target Combo" msgstr "" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

                                                                            • auto: The default. Show the combo if more than one target " "configured.
                                                                            • always: Always show the combo.

                                                                            Default: auto" msgstr "" msgid "SSH Command" msgstr "" msgid "" "Command to use for SSH connections.

                                                                            Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" msgid "Subrepository Features:" msgstr "" msgid "Allow Hg Subrepos" msgstr "" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" msgid "Allow Git Subrepos" msgstr "" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

                                                                            See the security note before enabling Git " "subrepos." msgstr "" msgid "Allow SVN Subrepos" msgstr "" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

                                                                            See the security note before enabling " "Subversion subrepos." msgstr "" msgid "Server" msgstr "Servidor" msgid "Repository Details:" msgstr "" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" msgid "Encoding" msgstr "Codificação" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" msgid "'Publishing' repository" msgstr "" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" msgid "Web Server:" msgstr "" msgid "Textual description of the repository's purpose or contents." msgstr "Descrição visual do destino ou conteúdo do repositório." msgid "Contact" msgstr "Contacto" msgid "Name or email address of the person in charge of the repository." msgstr "Nome ou endereço de correio da pessoa responsável pelo repositório." msgid "Style" msgstr "Estilo" msgid "Which template map style to use" msgstr "Que estilo de mapa usar" msgid "Archive Formats" msgstr "Formatos de ficheiros" msgid "Comma separated list of archive formats allowed for downloading" msgstr "" "Lista de formatos de arquivos separados por vírgulas permitidos para " "transferir" msgid "Port" msgstr "Porta" msgid "Port to listen on" msgstr "Porta em escuta" msgid "Push Requires SSL" msgstr "O envio necessita de SSL" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" msgid "Stripes" msgstr "Riscas" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" "Quantas linhas tem uma \"tira de uma zebra\" deve alcançar uma saída de " "multilinhas. Pré-definição é 1; 0 para desactivar." msgid "Max Files" msgstr "Máx. de ficheiros" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "" msgid "Max Changes" msgstr "Máx. de alterações" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "" msgid "Allow Push" msgstr "Permitir envio" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" msgid "Deny Push" msgstr "Negar envio" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" msgid "Proxy" msgstr "Proxy" msgid "Host" msgstr "Servidor" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "Nome do servidor e porta do servidor proxy (opcional) \"myproxy:8000\"" msgid "Bypass List" msgstr "Lista de bypass" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "" "Opcional. Lista de nomes de servidores separados por vírgulas que podem " "fazer bypass ao proxy" msgid "Optional. User name to authenticate with at the proxy server" msgstr "Opcional. Nome de utilizador para autenticação no servidor proxy" msgid "Password" msgstr "Senha" msgid "Optional. Password to authenticate with at the proxy server" msgstr "Opcional. Senha de autenticação no servidor proxy" msgid "From" msgstr "De" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "Endereço de correio a usar no cabeçalho \"De\" e envelope SMTP" msgid "To" msgstr "Para" msgid "Comma-separated list of recipient email addresses" msgstr "Lista de destinatários de correio electrónico separados por vírgulas" msgid "Cc" msgstr "Cc" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "" "Lista de destinatários Cc de correio electrónico separados por vírgulas" msgid "Bcc" msgstr "Bcc" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "" "Lista de destinatários Bcc de correio electrónico separados por vírgulas" msgid "method" msgstr "método" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" msgid "SMTP Host" msgstr "Servidor SMTP" msgid "Host name of mail server" msgstr "Nome do servidor de correio" msgid "SMTP Port" msgstr "SMTP Port" msgid "Port to connect to on mail server. Default: 25" msgstr "Porta de ligação ao servidor de correio. Pré-definido: 25" msgid "SMTP TLS" msgstr "SMTP TLS" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "" msgid "SMTP Username" msgstr "Nome de utilizador SMTP" msgid "Username to authenticate to mail server with" msgstr "Nome de utilizador para autenticar no servidor de correio" msgid "SMTP Password" msgstr "Senha SMTP" msgid "Password to authenticate to mail server with" msgstr "Senha para autenticar no servidor de correio" msgid "Local Hostname" msgstr "Servidor local" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "" "Nome do servidor que o remetente pode usar para se identificar a si mesmo no " "servidor de correio." msgid "Diff and Annotate" msgstr "Diff e anotar" msgid "Patch EOL" msgstr "Patch EOL" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" msgid "Git Format" msgstr "Formato Git" msgid "Use git extended diff header format. Default: False" msgstr "Usar formato git extended diff header. Pré-definição: False" msgid "MQ Git Format" msgstr "" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" msgid "No Dates" msgstr "Sem datas" msgid "Do not include modification dates in diff headers. Default: False" msgstr "" "Não incluir as datas de modificação nos cabeçalhos diff. Pré-definição: False" msgid "Show Function" msgstr "Mostrar função" msgid "Show which function each change is in. Default: False" msgstr "Mostrar que função cada alteração tem. Pré-definido: False" msgid "Ignore White Space" msgstr "Ignorar espaço em branco" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "" msgid "Ignore WS Amount" msgstr "Ignorar quantidade WS" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "" msgid "Ignore Blank Lines" msgstr "Ignorar linhas em branco" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "" msgid "Annotate:" msgstr "Anotar:" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "" msgid "Fonts" msgstr "" msgid "Message Font" msgstr "" msgid "Font used to display commit messages. Default: monospace 10" msgstr "" msgid "Diff Font" msgstr "" msgid "Font used to display text differences. Default: monospace 10" msgstr "" msgid "ChangeLog Font" msgstr "" msgid "Font used to display changelog data. Default: monospace 10" msgstr "" msgid "Output Font" msgstr "" msgid "Font used to display output messages. Default: sans 8" msgstr "" msgid "Extensions" msgstr "Extensões" msgid "Tools" msgstr "Ferramentas" msgid "Hooks" msgstr "" msgid "Issue Tracking" msgstr "Issue Tracking" msgid "Issue Regex" msgstr "Issue Regex" msgid "Defines the regex to match when picking up issue numbers." msgstr "" msgid "Issue Link" msgstr "Issue Link" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" msgid "Inline Tags" msgstr "" msgid "Show tags at start of commit message." msgstr "" msgid "Mandatory Issue Reference" msgstr "Obrigatória edição da referência" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" msgid "Issue Tracker Plugin" msgstr "" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" msgid "Configure Issue Tracker" msgstr "" msgid "Configure the selected COM Bug Tracker plugin." msgstr "" msgid "Issue Tracker Trigger" msgstr "" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

                                                                            • never: Do not update the Issue Tracker " "state automatically.
                                                                            • commit: Update the Issue Tracker state after " "a successful commit.

                                                                            Default: never" msgstr "" msgid "Changeset Link" msgstr "" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
                                                                            The template string " "uses a normal mercurial template syntax, such as:

                                                                            • {node|short} : replaced by " "the 12 digit revision id.
                                                                            • {rev} : replaced by the revision number." "
                                                                            • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
                                                                            For example, in order to " "link to bitbucket commit pages you can set this to:
                                                                            https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
                                                                            You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
                                                                            https://github.com/torvalds/" "linux/commit/{gitnode}
                                                                            https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
                                                                            " msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "" msgid "User name to authenticate with review board" msgstr "" msgid "Password to authenticate with review board" msgstr "" msgid "Server Repository ID" msgstr "" msgid "The default repository id for this repo on the review board server" msgstr "" msgid "Target Groups" msgstr "Grupos de destino" msgid "A comma separated list of target groups" msgstr "Uma lista de grupos separados por vírgulas" msgid "Target People" msgstr "Pessoas de destino" msgid "A comma separated list of target people" msgstr "Lista de pessoas separadas por vírgulas" msgid "Kiln Bfiles" msgstr "Kiln Bfiles" msgid "Patterns" msgstr "Padrões" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" msgid "Size" msgstr "Tamanho" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" msgid "System Cache" msgstr "Cache do sistema" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "" msgid "Simplelock" msgstr "" msgid "Lock Clone" msgstr "" msgid "" "Location of local clone of organizational lock repository.

                                                                            This repository " "must contain a \"locked\" text file" msgstr "" msgid "Largefiles" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" msgid "Minimum Size" msgstr "Tamanho mínimo" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" msgid "User Cache" msgstr "Cache do utilizador" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" msgid "Projrc" msgstr "Projrc" msgid "Require confirmation" msgstr "Necessita confirmação" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

                                                                            • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
                                                                            • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
                                                                            • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
                                                                            " msgstr "" msgid "Servers" msgstr "Servidores" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" msgid "Include" msgstr "Incluir" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" msgid "Exclude" msgstr "Excluir" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" msgid "Update on incoming" msgstr "Atualizar ao receber" msgid "" "Let the user update the projrc on incoming:
                                                                            • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
                                                                            • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
                                                                            • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                                                                              Default: never" msgstr "" msgid "GnuPG" msgstr "" msgid "Specify the path to GPG. Default: gpg" msgstr "" msgid "Key ID" msgstr "" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "" msgid "TortoiseHg Settings" msgstr "Definições do TortoiseHg" msgid "Iniparse package not found" msgstr "Pacore Iniparse não encontrado" msgid "Can't change settings without iniparse package - view is readonly." msgstr "" "Não é possível alterar as definições sem o pacote iniparse - a vista e de " "leitura apenas" #, python-format msgid "%s's global settings" msgstr "%s's definições globais" msgid "No repository found" msgstr "Nenhum repositório encontrado" msgid "no repo at " msgstr "nenhum repo em " #, python-format msgid "%s project settings (.hg/projrc)" msgstr "" #, python-format msgid "%s repository settings" msgstr "definições do repositório %s" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "" msgid "Apply changes before exit?" msgstr "" msgid "&No (discard changes)" msgstr "&Não (ignorar alterações)" msgid "Reload" msgstr "Atualizar" msgid "Settings File:" msgstr "Ficheiros de definições:" msgid "Confirm Save" msgstr "Confirmar guardar" msgid "Save changes before editing?" msgstr "" msgid "&Save" msgstr "Guar&dar" msgid "Confirm Reload" msgstr "Confirmar recarregamento" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" msgid "Unable to create a Mercurial.ini file" msgstr "Não é possível criar um ficheiro Mercurial.ini" msgid "Insufficient access rights, reverting to read-only mode." msgstr "" msgid "Context Menu" msgstr "Menu de contexto" msgid "Top menu items:" msgstr "Top menu items:" msgid "Sub menu items:" msgstr "Sub menu items:" msgid "Menu Behavior" msgstr "Menu comportamento" msgid "Hide context menu outside repositories" msgstr "Ocultar o menu de contexto fora dos repositórios" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" msgid "Icons" msgstr "Ícones" msgid "Overlays" msgstr "Sobreposições" msgid "Enabled overlays" msgstr "" msgid "Local disks only" msgstr "Apenas discos locais" msgid "Enabled Overlay Handlers" msgstr "" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "" "Aviso: afecta todos os Tortoises, após alterar é necessário terminar a sessão" msgid "Added" msgstr "Adicionado" msgid "Locked*" msgstr "Bloqueado*" msgid "Ignored*" msgstr "Ignorado*" msgid "Unversioned" msgstr "Sem versão" msgid "Readonly*" msgstr "Apenas de leitura*" msgid "Deleted*" msgstr "Eliminado*" msgid "*: not used by TortoiseHg" msgstr "*; não usado pelo TortoiseHg" msgid "Taskbar" msgstr "Barra de tarefas" msgid "Show Icon" msgstr "Mostrar ícone" msgid "Highlight Icon" msgstr "Destacar ícone" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" msgid "Explorer Extension Settings - TortoiseHg" msgstr "" msgid "Clear" msgstr "Limpar" msgid "Clear the current shelf file" msgstr "" msgid "Delete the current shelf file" msgstr "" msgid "Left Toolbar" msgstr "Barra de ferramentas esquerda" msgid "Delete selected chunks" msgstr "" msgid "Move all files right" msgstr "" msgid "Move selected file right" msgstr "" msgid "Edit file" msgstr "Editar ficheiro" msgid "Move selected chunks right" msgstr "" msgid "Refresh Toolbar" msgstr "Atualizar barra de ferramentas" msgid "Refresh" msgstr "Actualizar" msgid "New Shelf" msgstr "" msgid "Right Toolbar" msgstr "Barra de ferramentas direita" msgid "Move selected chunks left" msgstr "" msgid "Move selected file left" msgstr "" msgid "Move all files left" msgstr "" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "" msgid "Delete selected chunks from working copy?" msgstr "" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "" msgid "Are you sure?" msgstr "" msgid "TortoiseHg New Shelf Name" msgstr "" msgid "Specify name of new shelf" msgstr "" msgid "Bad filename" msgstr "" #, python-format msgid "A shelf name cannot contain %s" msgstr "" msgid "File already exists" msgstr "" msgid "A shelf file of that name already exists" msgstr "" msgid "New shelf created" msgstr "" #, python-format msgid "Delete shelf file %s?" msgstr "" msgid "Shelf deleted" msgstr "" msgid "Revert all working copy changes?" msgstr "" #, python-format msgid "Clear contents of shelf file %s?" msgstr "" msgid "Shelf cleared" msgstr "" #, python-format msgid "Shelf: %s" msgstr "" #, python-format msgid "Patch: %s" msgstr "" msgid "Key:" msgstr "" msgid "Local sign" msgstr "" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "" msgid "No commit" msgstr "" msgid "Use custom commit message:" msgstr "Usar a mensagem de commit personalizada:" msgid "&Sign" msgstr "" #, python-format msgid "Sign - %s" msgstr "" msgid "Signature has been added" msgstr "" msgid "Repository command still running" msgstr "" msgid "Filter:" msgstr "Filtro:" msgid "Check all files" msgstr "" msgid "Uncheck all files" msgstr "" msgid "Status File List Toolbar" msgstr "" msgid "Remove filter, show root" msgstr "Remover filtro, mostrar raíz" #, python-format msgid "%s - status (selection filtered)" msgstr "" #, python-format msgid "%s - status" msgstr "" msgid "Check" msgstr "" msgid "Uncheck" msgstr "" msgid "status" msgstr "estado" msgid "Failed to refresh" msgstr "" msgid "No appropriate files" msgstr "Sem ficheiros apropriados" msgid "No files found for this operation" msgstr "Nenhuns ficheiros encontrados para esta operação" msgid "Stat" msgstr "Estat" msgid "M" msgstr "" msgid "Filename" msgstr "Nome do ficheiro" msgid "Size (KB)" msgstr "" #, python-format msgid "Checked count: %d" msgstr "" msgid ", resolved merge" msgstr "" msgid ", unresolved merge" msgstr "" #, python-format msgid "%s is modified" msgstr "" msgid "modified" msgstr "modificado" #, python-format msgid "%s is added" msgstr "" msgid "added" msgstr "adicionado" #, python-format msgid "%s is removed" msgstr "" msgid "removed" msgstr "removido" #, python-format msgid "%s is not tracked (unknown)" msgstr "" msgid "unknown" msgstr "desconhecido" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "" msgid "missing" msgstr "em falta" #, python-format msgid "%s is ignored" msgstr "" msgid "ignored" msgstr "ignorado" #, python-format msgid "%s is not modified (clean)" msgstr "" msgid "clean" msgstr "limpar" #, python-format msgid "%s is a dirty subrepo" msgstr "" msgid "subrepo" msgstr "" msgid "Check for incoming changes from selected URL" msgstr "" msgid "Pull incoming changes from selected URL" msgstr "" msgid "Detect outgoing changes to selected URL" msgstr "" msgid "Push outgoing changes to selected URL" msgstr "" msgid "Sync Bookmarks" msgstr "" msgid "Email outgoing changesets for remote repository" msgstr "" msgid "Manage pending perforce changelists" msgstr "" msgid "Unbundle" msgstr "" msgid "Selected Options:" msgstr "" msgid "Path Edit Toolbar" msgstr "" msgid "Security" msgstr "" msgid "Manage HTTPS connection security and user authentication" msgstr "" msgid "Save" msgstr "Guardar" msgid "Save current URL under an alias" msgstr "Guardar o url atual com uma alcunha" msgid "Paths in Repository Settings:" msgstr "Caminhos nas definições do repositório:" msgid "Related Paths:" msgstr "Caminhos relacionados:" msgid "branch: " msgstr "ramo: " msgid "bookmark: " msgstr "" #, python-format msgid "rev: %d (%s)" msgstr "" msgid "Post Pull: " msgstr "Após receber: " msgid "&Edit..." msgstr "" msgid "&Remove..." msgstr "" msgid "Repository not local" msgstr "" msgid "A terminal shell cannot be opened for remote" msgstr "" msgid "Confirm path delete" msgstr "" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "" msgid "Select repository" msgstr "" msgid "No host specified" msgstr "" msgid "Please set a valid URL to continue." msgstr "" msgid "No remote repository URL or path set" msgstr "Nenhum URL de repositório remoto ou definição do caminho" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

                                                                              Please type and save a remote repository path on the " "Sync widget." msgstr "" msgid "Redundant authentication info" msgstr "" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" msgid "sync command already running" msgstr "" #, python-format msgid "Getting incoming changesets from %s..." msgstr "" #, python-format msgid "Found incoming changesets from %s" msgstr "" #, python-format msgid "No incoming changesets from %s" msgstr "" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "" #, python-format msgid "Pulling from %s..." msgstr "" #, python-format msgid "Pull from %s completed" msgstr "" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "" msgid "Merge caused file conflicts" msgstr "" msgid "File conflicts need to be resolved" msgstr "" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "" #, python-format msgid "%d outgoing changesets to %s" msgstr "" #, python-format msgid "No outgoing changesets to %s" msgstr "" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "" msgid "Perforce pending..." msgstr "" #, python-format msgid "%s (submitted)" msgstr "%s (submetido)" #, python-format msgid "%s (pending)" msgstr "%s (em espera)" msgid "Unable to parse p4pending output" msgstr "Não é possível analisar a saída p4pending" #, python-format msgid "%d pending changelists found" msgstr "%d changelists pendentes encontradas" msgid "No pending Perforce changelists" msgstr "Nenhumas changelist Perforce pendentes" msgid "Aborted p4pending" msgstr "P4pending abortado" msgid "Unable to determine pending changesets" msgstr "Não é possível determinar os changesets pendentes" msgid "Confirm Push to remote Repository" msgstr "Confirmar envio para o repositório remoto" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" "Puxar para o repositório remoto\n" "%s\n" "?" #, python-format msgid "Push to %s aborted" msgstr "" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" #, python-format msgid "Pushing to %s..." msgstr "" #, python-format msgid "Push to %s completed" msgstr "" #, python-format msgid "Push to %s aborted, ret %d" msgstr "" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" msgid "Determining outgoing changesets to email..." msgstr "" msgid "No outgoing changesets" msgstr "Nenhum changesets para enviar" #, python-format msgid "Outgoing aborted, ret %d" msgstr "" msgid "Select bundle file" msgstr "" msgid "Bundle files (*.hg)" msgstr "" msgid "Unable to remove URL" msgstr "" msgid "Post Pull Behavior" msgstr "" msgid "Select post-pull operation for this repository" msgstr "Selecione a operação deste repositório depois de puxar" msgid "None - simply pull changesets" msgstr "Nada - simplesmente puxar os changesets" msgid "Update - pull, then try to update" msgstr "Atualizar - puxar e depois tentar atualizar" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "" msgid "Rebase - rebase local commits above pulled changes" msgstr "" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "" msgid "Launch settings tool..." msgstr "Lançar ferramenta de configuração..." msgid "Unable to save post pull operation" msgstr "" msgid "Save Path" msgstr "Guardar caminho" msgid "Alias" msgstr "Alcunha" msgid "URL" msgstr "URL" msgid "Remove authentication data from URL" msgstr "" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" msgid "Update subrepo paths" msgstr "" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" msgid "Unable to save an URL" msgstr "Não é possível guardar num url" msgid "Confirm URL replace" msgstr "" #, python-format msgid "%s already exists, replace URL?" msgstr "" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

                                                                              %s

                                                                              Replace it with the " "following URL?:

                                                                              %s" msgstr "" msgid "Security: " msgstr "" #, python-format msgid "Host: %s" msgstr "" msgid "Secure HTTPS Connection" msgstr "" msgid "Verify with Certificate Authority certificates (best)" msgstr "" msgid "Verify with stored host fingerprint (good)" msgstr "" msgid "No host validation, but still encrypted (bad)" msgstr "" msgid "### host certificate fingerprint ###" msgstr "" msgid "Query" msgstr "" msgid "TLS 1.0" msgstr "" msgid "TLS 1.1" msgstr "" msgid "TLS 1.2" msgstr "" msgid "Minimum Protocol" msgstr "" msgid "User Authentication" msgstr "" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Key" msgstr "" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Chain" msgstr "" msgid "Certificate Query Error" msgstr "" msgid "Select User Certificate Key File" msgstr "" msgid "PEM files (*.pem *.key)" msgstr "" msgid "Select User Certificate Chain File" msgstr "" msgid "PEM files (*.pem *.crt *.cer)" msgstr "" msgid "Unable to save authentication" msgstr "Não é possível guardar a autenticação" #, python-format msgid "%s - sync options" msgstr "" msgid "Allow push of a new branch (--new-branch)" msgstr "" msgid "Force push or pull (override safety checks, --force)" msgstr "" msgid "Temporarily disable configured HTTP proxy" msgstr "" msgid "Emit debugging output (--debug)" msgstr "" msgid "Work on patch queue (--mq)" msgstr "" #, python-format msgid "Tag - %s" msgstr "Etiqueta - %s" msgid "Tag:" msgstr "Etiqueta:" msgid "Tagged:" msgstr "" msgid "Local tag" msgstr "" msgid "Replace existing tag (-f/--force)" msgstr "" msgid "Use English commit message" msgstr "Usar a mensagem de commit em inglês" msgid "local" msgstr "local" msgid "Move" msgstr "Mover" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "" #, python-format msgid "Added tag %s for changeset %s" msgstr "Eiqueta %s adicionada para o changeset %s" #, python-format msgid "Tag '%s' has been moved" msgstr "" #, python-format msgid "Tag '%s' has been added" msgstr "" #, python-format msgid "Removed tag %s" msgstr "Etiqueta %s removida" #, python-format msgid "Tag '%s' has been removed" msgstr "" msgid "Patch files (*.diff *.patch)" msgstr "" #, python-format msgid "Import - %s" msgstr "Importar - %s" msgid "Browse Directory..." msgstr "Navegar na directoria..." msgid "Import from Clipboard" msgstr "Importar do clipboard" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "" msgid "Preview:" msgstr "Pré-visualizar:" msgid "Shelf" msgstr "" msgid "Checking working directory status..." msgstr "" msgid "&Import" msgstr "" msgid "Working directory is not clean! View changes..." msgstr "" msgid "Select patches" msgstr "" msgid "Select Directory containing patches" msgstr "" #, python-format msgid "%s patches" msgstr "%s patches" #, python-format msgid "%s will be imported to " msgstr "" msgid "Nothing to import" msgstr "Nada para importar" msgid "Strip:" msgstr "Remover:" msgid "Discard local changes, no backup (-f/--force)" msgstr "Ignorar alterações locais, sem backup (-f/--force)" msgid "No backup (-n/--nobackup)" msgstr "Sem backup (-n/--nobackup)" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "" msgstr[1] "" msgid "Unknown revision!" msgstr "Revisão desconhecida!" msgid "Detected uncommitted local changes." msgstr "" msgid "Do you want to keep them or discard them?" msgstr "" msgid "&Keep (--keep)" msgstr "" msgid "&Discard (--force)" msgstr "" msgid "Confirm Strip" msgstr "Confirmar remoção" #, python-format msgid "Strip - %s" msgstr "Remover - %s" msgid "&Strip" msgstr "" msgid "Topic:" msgstr "" msgid "&Rename" msgstr "" #, python-format msgid "Topic - %s" msgstr "" #, python-format msgid "A topic named \"%s\" already exists" msgstr "" #, python-format msgid "Topic '%s' has been added" msgstr "" #, python-format msgid "Topic '%s' does not exist" msgstr "" #, python-format msgid "Topic '%s' has been removed" msgstr "" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "" msgid "Parent 1:" msgstr "Parente 1:" msgid "Parent 2:" msgstr "Parente 2:" msgid "Pull subrepos from:" msgstr "" msgid "List updated files (--verbose)" msgstr "Listar ficheiros atualizados (--verbose)" msgid "Discard local changes, no backup (-C/--clean)" msgstr "Ignorar alterações locais, sem guardar (-C/--clean)" msgid "Always merge (when possible)" msgstr "Unir sempre (quando possível)" msgid "(same as parent)" msgstr "(como o parente)" msgid "Activate bookmark?" msgstr "" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

                                                                              Do " "you want to activate it?
                                                                              You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

                                                                              Select " "the bookmark that you want to activate and click OK.

                                                                              Click " "Cancel if you don't want to activate any of them.

                                                                              You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                                              " msgstr "" msgid "Deactivate current bookmark?" msgstr "" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" msgid "Discard - discard local changes, no backup" msgstr "Rejeitar - ignora alterações locais, sem guardar" msgid "&Shelve" msgstr "&Arquivar" msgid "Shelve - move local changes to a patch" msgstr "" msgid "Merge - allow to merge with local changes" msgstr "Unir - permitir união com as alterações locais" msgid "Confirm Update" msgstr "Confirmar actualização" #, python-format msgid "Update - %s" msgstr "Actualizar - %s" msgid "[non-existant]" msgstr "[não existente]" msgid "Tool launch failure" msgstr "Falha ao lançar a ferramenta" #, python-format msgid "%s : %s" msgstr "%s : %s" msgid "No diff tool found" msgstr "Nenhuma ferramenta diff encontrada" msgid "No visual diff tools were detected" msgstr "Nenhuma ferramenta de diff visual detectada" msgid "[working copy]" msgstr "[cópia de trabalho]" msgid "[original]" msgstr "[original]" msgid "Unable to find changeset" msgstr "Não é possível encontrar changesets" msgid "You likely need to refresh this application" msgstr "Tem de actualizar esta aplicação" msgid "No file changes" msgstr "Ficheiros sem alteração" msgid "There are no file changes to view" msgstr "Não existem alterações de ficheiros para ver" msgid "working changes" msgstr "alterações em funcionamento" #, python-format msgid "changeset %d:%s" msgstr "" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "" msgid "Visual Diffs - " msgstr "Diffs visuais - " msgid " filtered" msgstr " filtrado" msgid "Temporary files are removed when this dialog is closed" msgstr "Ficheiros temporários são removidos ao fechar este diálogo" msgid "Select Tool:" msgstr "" msgid "Dir diff to p1" msgstr "Dir diff para p1" msgid "Dir diff to p2" msgstr "Dir diff para p2" msgid "3-way dir diff" msgstr "3-way dir diff" msgid "Directory diff" msgstr "Pasta diff" msgid "Confirm Discard" msgstr "Confirmar ignorar" msgid "Discard outstanding changes to working directory?" msgstr "Descartar as alterações pendentes para a diretoria de trabalho?" msgid "Config files (*.conf *.config *.ini)" msgstr "" msgid "Open hgweb config" msgstr "" msgid "Save hgweb config" msgstr "Guardar config hgweb" msgid "Path:" msgstr "" msgid "Local Path:" msgstr "" msgid "Select Repository" msgstr "Seleccione repositório" msgid "Add Path to Serve" msgstr "" msgid "Edit Path to Serve" msgstr "" msgid "Local Path" msgstr "" msgid "Webconf" msgstr "" msgid "Config File:" msgstr "" msgid "Open" msgstr "" msgid "New &Workbench" msgstr "" msgid "&New Repository..." msgstr "&Novo Repositório..." msgid "Clon&e Repository..." msgstr "" msgid "&Open Repository..." msgstr "Abrir rep&ositório..." msgid "&File" msgstr "" msgid "&View" msgstr "" msgid "&Repository" msgstr "" msgid "&Help" msgstr "&Ajuda" msgid "&Dock Toolbar" msgstr "" msgid "&Task Toolbar" msgstr "" msgid "&Custom Toolbar" msgstr "" msgid "S&ync Toolbar" msgstr "" msgid "&Close Repository" msgstr "Fe&char repositório" msgid "Sh&ow Repository Registry" msgstr "M&ostrar o registo do repositório" msgid "Show &Patch Queue" msgstr "" msgid "Show Conso&le" msgstr "" msgid "Place Console in Doc&k Area" msgstr "" msgid "R&epository Registry Options" msgstr "Opções do registo do r&epositório" msgid "Save Open Repositories on E&xit" msgstr "" msgid "Sa&ve Current Sync Paths on Exit" msgstr "" msgid "Show Tas&k Tab" msgstr "" msgid "&Commit" msgstr "Su&bmeter" msgid "&Patch Branch" msgstr "" msgid "Revision &Details" msgstr "" msgid "&Search" msgstr "Pe&squisar" msgid "S&ynchronize" msgstr "S&incronizar" msgid "Refresh current repository" msgstr "" msgid "Refresh &Task Tab" msgstr "" msgid "Refresh only the current task tab" msgstr "" msgid "Load &All Revisions" msgstr "" msgid "Load all revisions into graph" msgstr "" msgid "Go to current revision" msgstr "" msgid "&Goto Revision..." msgstr "" msgid "Go to a specific revision" msgstr "Ir para uma revisão específica" msgid "Filter graph with revision sets or branches" msgstr "" msgid "&Workbench Toolbars" msgstr "" msgid "&Lock File..." msgstr "" msgid "Lock or unlock files" msgstr "" msgid "Update working directory or switch revisions" msgstr "" msgid "&Shelve..." msgstr "" msgid "&Import Patches..." msgstr "" msgid "U&nbundle..." msgstr "" msgid "&Merge..." msgstr "" msgid "Merge with the other head of the current branch" msgstr "" msgid "&Resolve..." msgstr "&Resolver..." msgid "R&ollback/Undo..." msgstr "" msgid "&Purge..." msgstr "&Purgar..." msgid "&Bisect..." msgstr "" msgid "&Verify" msgstr "&Verificar" msgid "Re&cover" msgstr "Re&cuperar" msgid "&Web Server" msgstr "" msgid "E&xplorer Help" msgstr "Ajuda do e&xplorador" msgid "&Readme" msgstr "&Leia-me" msgid "About &Qt" msgstr "Sobre &Qt" msgid "&About TortoiseHg" msgstr "" msgid "&Incoming" msgstr "" msgid "&Pull" msgstr "" msgid "&Outgoing" msgstr "" msgid "P&ush" msgstr "" msgid "&Sync Bookmarks..." msgstr "" #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" msgid "Check for incoming changes" msgstr "" msgid "Pull incoming changes" msgstr "" msgid "Detect outgoing changes" msgstr "" msgid "Push outgoing changes" msgstr "" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" #, python-format msgid "Execute custom tool '%s'" msgstr "" msgid "Custom Toolbar &Settings" msgstr "" msgid "TortoiseHg Workbench" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "" msgid "Goto revision" msgstr "" msgid "Enter revision identifier" msgstr "" msgid "Select repository directory to open" msgstr "" msgid "README not configured" msgstr "LEIA_ME não configurado" msgid "" "A README file is not configured for the current repository.

                                                                              To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" msgid "Issue Tracker Plugin Error" msgstr "" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "" msgid "This error will not be shown again until you restart the workbench" msgstr "" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "" msgid "Error executing \"commit finished\" trigger" msgstr "" msgid "Cannot open Plugin Options dialog" msgstr "" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "" msgid "[--insecure] [SOURCE]" msgstr "" #, python-format msgid "unsupported URL: %s" msgstr "" #, python-format msgid "%s certificate error: no certificate received" msgstr "" msgid "move after the specified patch" msgstr "" msgid "[--after PATCH] PATCH..." msgstr "" msgid "unknown patch to move specified" msgstr "" msgid "invalid patch position specified" msgstr "" msgid "cannot move applied patches" msgstr "" #, python-format msgid "patch %s not in series" msgstr "" msgid "cannot move into applied patches" msgstr "" msgid "abort: " msgstr "abortar: " msgid "hint: " msgstr "" #, python-format msgid "HTTP Error: %d (%s)" msgstr "" #, python-format msgid "URLError: %s" msgstr "" msgid "SSL: Server certificate verify failed" msgstr "SSL: Verificação do ceertificado do servidor falhou" #, python-format msgid "SSL: unknown error %s:%s" msgstr "SSL: erro desconhecido %s:%s" #, python-format msgid "SSL error: %s" msgstr "erro SSL: %s" msgid "hgsubversion packaged with thg" msgstr "" msgid "hggit packaged with thg" msgstr "" msgid "inotify is not supported on this platform" msgstr "inotify não é suportado nesta plataforma" msgid "eol is incompatible with win32text" msgstr "eol não é compatível com win32text" msgid "win32text is incompatible with eol" msgstr "win32text não é compatível com eol" msgid "hgsubversion is incompatible with perfarce" msgstr "hgsubversionnão é compatível com perfarce" msgid "perfarce is incompatible with hgsubversion" msgstr "perfarce não é compatível com hgsubversion" msgid "Workbench custom toolbar" msgstr "" msgid "Revision details context menu" msgstr "" msgid "Pair selection context menu" msgstr "" msgid "Multiple selection context menu" msgstr "" msgid "Commit context menu" msgstr "" msgid "File context menu (on manifest and revision details)" msgstr "" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "%d ano" msgstr[1] "%d anos" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "%d mês" msgstr[1] "%d meses" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "%d semana" msgstr[1] "%d semanas" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "%d dia" msgstr[1] "%d dias" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "%d hora" msgstr[1] "%d horas" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "%d minuto" msgstr[1] "%d minutos" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d segundo" msgstr[1] "%d segundos" msgid "in the future" msgstr "no futuro" msgid "now" msgstr "agora" #, python-format msgid "command parse error: %s" msgstr "érro de análise do comando: %s" #, python-format msgid "no matches found: %s" msgstr "nenhuma correspondência encontrada: %s" msgid "Commit..." msgstr "Enviar..." msgid "Commit changes in repository" msgstr "Enviar alterações no repositório" msgid "Create Repository Here" msgstr "Criar um repositório aqui" msgid "Create a new repository" msgstr "Criar novo repositório" msgid "Clone..." msgstr "Clonar..." msgid "Create clone here from source" msgstr "Criar clone aqui a partir da fonte" msgid "File Status" msgstr "Estado do ficheiro" msgid "Repository status & changes" msgstr "Estado do repositório & alterações" msgid "Add Files..." msgstr "Adicionar Ficheiros..." msgid "Add files to version control" msgstr "Adicionar ficheiros à versão de controlo" msgid "Revert Files..." msgstr "Reverter ficheiros..." msgid "Revert file changes" msgstr "Reverter alterações dos ficheiros" msgid "Forget Files..." msgstr "Esquecer ficheiros..." msgid "Remove files from version control" msgstr "Remover ficheiros do controlo da versão" msgid "Remove Files..." msgstr "Remover ficheiros..." msgid "Rename File" msgstr "Renomear ficheiro" msgid "Rename file or directory" msgstr "Renomear ficheiro ou directoria" msgid "View change history in repository" msgstr "Ver histórico de alterações no repositório" msgid "File History" msgstr "Histórico do ficheiro" msgid "View change history of selected files" msgstr "Ver histórico dos ficheiros seleccionados" msgid "Shelve Changes" msgstr "" msgid "Move changes between working dir and patch" msgstr "" msgid "Synchronize" msgstr "Sincronizar" msgid "Synchronize with remote repository" msgstr "Sincronizar com o repositório remoto" msgid "Start web server for this repository" msgstr "Iniciar servidor web para este repositório" msgid "Update..." msgstr "Actualizar..." msgid "Update working directory" msgstr "Actualizar directoria de trabalho" msgid "Update Icons" msgstr "Actualizar ícones" msgid "Update icons for this repository" msgstr "Actualizar ícones para este repositório" msgid "Global Settings" msgstr "Definições Globais" msgid "Configure user wide settings" msgstr "Configurar definições expandidas do utilizador" msgid "Repository Settings" msgstr "Configuração do Repositório" msgid "Configure repository settings" msgstr "Configurar definições do repositório" msgid "Explorer Extension Settings" msgstr "Definições da extensão do explorador" msgid "Configure Explorer extension" msgstr "Configurar extensão explorer" msgid "About TortoiseHg" msgstr "Sobre o TortoiseHg" msgid "Show About Dialog" msgstr "Mostrar o diálogo sobre" msgid "Diff to parent" msgstr "Diff para o parente" msgid "View changes using GUI diff tool" msgstr "Ver alterações usando a ferramente GUI diff" msgid "Edit Ignore Filter" msgstr "Editar filtro de ignorar" msgid "Edit repository ignore filter" msgstr "Editar filtro de ignorar do repositório" msgid "Guess Renames" msgstr "Adivinhar renomeações" msgid "Detect renames and copies" msgstr "detectar renomeações e cópias" msgid "Search History" msgstr "Histórico de Pesquisa" msgid "Search file revisions for patterns" msgstr "Procurar revisões dos ficheiros por padrões" msgid "DnD Synchronize" msgstr "Sincronizar DnD" msgid "Synchronize with dragged repository" msgstr "Sincronizar com o repositório arrastado" #, python-format msgid "unrecognized response: %s" msgstr "" msgid "password: " msgstr "senha: " #, python-format msgid "repository %s not found" msgstr "repositório %s não encontrado" msgid "win32ill: cannot create window for messages" msgstr "" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "" msgid "win32ill: interrupted while stopping message loop\n" msgstr "" #~ msgid "Several icons are courtesy of the TortoiseSVN project" #~ msgstr "Alguns ícones são da cortesia do projecto TortoiseSVN" #~ msgid "Source path is empty" #~ msgstr "O caminho original está vazio" #~ msgid "_Undo" #~ msgstr "An_ular" #~ msgid "_Remove" #~ msgstr "_Remover" #~ msgid "Unable to create " #~ msgstr "Impossível criar " #~ msgid "_Add" #~ msgstr "_Adicionar" #~ msgid "Re_vert" #~ msgstr "Re_verter" #~ msgid "Errors during rollback!" #~ msgstr "Erro durante rollback!" #~ msgid "applying patch\n" #~ msgstr "a aplicar patch\n" #~ msgid "backup %r as %r\n" #~ msgstr "backup %r como %r\n" #~ msgid "Unable to apply patch" #~ msgstr "Impossível aplicar patch" #~ msgid "restoring %r to %r\n" #~ msgstr "a restaurar %r para %r\n" #~ msgid "Nothing Commited" #~ msgstr "Nada enviado" #~ msgid "" #~ "Your username has not been configured.\n" #~ "\n" #~ "Please configure your username and try again" #~ msgstr "" #~ "O seu nome de utilizador não foi configurado.\n" #~ "\n" #~ "Configure o seu nome de utilizador e tente novamente" #~ msgid "Stop operation on current tab" #~ msgstr "Parar operação no separador actual" #~ msgid "New Search" #~ msgstr "Nova pesquisa" #~ msgid "Open new search tab" #~ msgstr "Abrir novo separador de pesquisa" #~ msgid "" #~ "Comma separated list of exclusion patterns. Exclusion patterns are " #~ "applied after inclusion patterns." #~ msgstr "" #~ "Lista separada por vírgulas de padrões excluídos. Padrões de exclusão são " #~ "aplicados após os padrões de inclusão." #~ msgid "Start this search" #~ msgstr "Iniciar esta pesquisa" #~ msgid "" #~ "Comma separated list of inclusion patterns. By default, the entire " #~ "repository is searched." #~ msgstr "" #~ "Lista separada por vírgulas de padrões incluídos. Por pré-definição, a " #~ "totalidade do repositório é pesquisada." #~ msgid "Show line numbers" #~ msgstr "Mostrar o número das linhas" #~ msgid "Unable to annotate " #~ msgstr "Impossível anotar " #~ msgid "You must provide a search expression" #~ msgstr "Tem de fornecer uma expressão para pesquisar" #~ msgid "Search \"%s\"" #~ msgstr "Pesquisar \"%s\"" #~ msgid "Show all matching revisions" #~ msgstr "Mostra todas as revisões que correspondem" #~ msgid "Search %d" #~ msgstr "Pesquisar %d" #~ msgid "No regular expression given" #~ msgstr "Nenhuma expressão regular dada" #~ msgid "Matches" #~ msgstr "Correspondências" #~ msgid "File is unrevisioned" #~ msgstr "O ficheiro não tem revisão" #~ msgid " Messages and Errors" #~ msgstr " Mensagens e erros" #~ msgid "Invalid path" #~ msgstr "Caminho inválido" #~ msgid " Aborted" #~ msgstr " Abortado" #~ msgid "edit failed" #~ msgstr "editar falhou" #~ msgid "Save File" #~ msgstr "Guardar o Ficheiro" #~ msgid "Accept Match" #~ msgstr "Aceitar correspondência" #~ msgid "Differences from Source to Dest" #~ msgstr "Diferenças entre a fonte e o destino" #~ msgid "Candidate Matches" #~ msgstr "Correspondências candidatas" #~ msgid "Envelope" #~ msgstr "Envelope" #~ msgid "Configure email settings" #~ msgstr "Configurar definições de correio" #~ msgid "Filters" #~ msgstr "Filtros" #~ msgid "Info required" #~ msgstr "Info necessária" #~ msgid "Remove Selected" #~ msgstr "Remover selecção" #~ msgid "Unknown Files" #~ msgstr "Ficheiros desconhecidos" #~ msgid "Add special files (.hgignore, ...)" #~ msgstr "Adicionar ficheiros especiais (.hgignore, ...)" #~ msgid "Make repo compatible with Mercurial 1.0" #~ msgstr "Tornar o repo compatível com oMercurial 1.0" #~ msgid "Destination path is empty" #~ msgstr "O caminho de destino está vazio" #~ msgid "Error when creating repository" #~ msgstr "Erro ao criar o repositório" #~ msgid "response expected" #~ msgstr "resposta esperada" #~ msgid "" #~ "\n" #~ "[command interrupted]" #~ msgstr "" #~ "\n" #~ "[comando interrompido]" #~ msgid "You must specify a recipient" #~ msgstr "Tem de indicar um destinatário" #~ msgid "You must configure SMTP" #~ msgstr "Tem de configurar o SMTP" #~ msgid "Glob:" #~ msgstr "Glob:" #~ msgid " [Ynsfdaq?] " #~ msgstr " [Ynsfdaq?] " #~ msgid "this is a binary file\n" #~ msgstr "isto é um ficheiro binário\n" #~ msgid "There is no Mercurial repository here (.hg not found)" #~ msgstr "Não existe nenhum repositório Mercurial aqui (.hg não encontrado)" #~ msgid "unknown patch content: %r" #~ msgstr "Conteúdo do patch desconhecido: %r" #~ msgid " and " #~ msgstr " e " #~ msgid "restoring backup files\n" #~ msgstr "a restaurar ficheiros de backup\n" #~ msgid "Minimum Simularity Percentage" #~ msgstr "Percentagem mínima de similaridade" #~ msgid "Unrevisioned Files" #~ msgstr "Ficheiros sem revisão" #~ msgid "finding source of " #~ msgstr "a pesquisar a fonte de " #~ msgid "Find Copies" #~ msgstr "Pesquisar cópias" #~ msgid "" #~ "== %s and %s have identical contents ==\n" #~ "\n" #~ msgstr "" #~ "== %s e %s Têm conteúdos idênticos ==\n" #~ "\n" #~ msgid "Please enter the directory path" #~ msgstr "Escreva o caminho da directoria" #~ msgid "You must specify a sender address" #~ msgstr "Tem de indicar um endereço do remetente" #~ msgid "Unable to create new repository" #~ msgstr "Não foi possível criar o novo repositório" #~ msgid "this modifies a binary file (all or nothing)\n" #~ msgstr "isto modifica um ficheiro binário (tudo ou nada)\n" #~ msgid "Save commit message at exit?" #~ msgstr "Guardar mensagem de envio ao sair?" #~ msgid "commit" #~ msgstr "enviar" #~ msgid "_Commit" #~ msgstr "_Enviar" #~ msgid "Email Mercurial Patches" #~ msgstr "Correio electrónico das Patches do Mercurial" #~ msgid "shelve data already exists" #~ msgstr "o arquivo de dados já existe" #~ msgid "shelve changes to %s?" #~ msgstr "arquivar alterações para %s?" #~ msgid "user quit" #~ msgstr "desistência do utilizador" #~ msgid "%d hunks, %d lines changed\n" #~ msgstr "%d hunks, %d linhas alteradas\n" #~ msgid "unhandled transition: %s -> %s" #~ msgstr "transição não manuseada: %s -> %s" #~ msgid "shelve this change to %r?" #~ msgstr "arquivar esta alteração para %r?" #~ msgid "shelve can only be run interactively" #~ msgstr "o arquivamento apenas pode ser executado interactivamente" #~ msgid "nothing to unshelve\n" #~ msgstr "nada para desarquivar\n" #~ msgid "unshelve completed\n" #~ msgstr "desarquivar finalizado\n" #~ msgid "removing shelved patches\n" #~ msgstr "a remover patches arquivadas\n" #~ msgid "applying shelved patch\n" #~ msgstr "a aplicar patch arquivada\n" #~ msgid "removing shelve file\n" #~ msgstr "a remover o ficheiro de arquivo\n" #~ msgid "saving patch to shelve\n" #~ msgstr "a guardar patch no arquivo\n" #~ msgid "mark new/missing files as added/removed before shelving" #~ msgstr "" #~ "marcar ficheiros novos/perdidos como adicionados/removidos antes de " #~ "arquivar" #~ msgid "no changes to shelve\n" #~ msgstr "nenhuma alteração para arquivar\n" #~ msgid "hgtk: unknown command '%s'\n" #~ msgstr "hgtk: comando desconhecido '%s'\n" #~ msgid "hgtk: %s\n" #~ msgstr "hgtk: %s\n" #~ msgid "" #~ "hgtk: command '%s' is ambiguous:\n" #~ " %s\n" #~ msgstr "" #~ "hgtk: o comando '%s' é ambíguo:\n" #~ " %s\n" #~ msgid "hgtk %s: %s\n" #~ msgstr "hgtk %s: %s\n" #~ msgid "inspect shelved changes only" #~ msgstr "inpeccionar apenas as alterações do arquivo" #~ msgid "use \"hgtk -v help%s\" to show aliases and global options" #~ msgstr "use \"hgtk -v help%s\" para mostrar alcunhas e opções globais" #~ msgid "(No help text available)" #~ msgstr "(sem texto de ajuda disponível)" #~ msgid "Hgtk - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" #~ msgstr "Hgtk - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" #~ msgid "hgtk datamine" #~ msgstr "hgtk datamine" #~ msgid "hgtk about" #~ msgstr "sobre o hgtk" #~ msgid "hgtk add [FILE]..." #~ msgstr "hgtk adicionar [FILE]..." #~ msgid "hgtk clone SOURCE [DEST]" #~ msgstr "hgtk clone FONTE [DEST]" #~ msgid "hgtk init [DEST]" #~ msgstr "hgtk init [DEST]" #~ msgid "hgtk hgignore [FILE]" #~ msgstr "hgtk hgignore [FICHEIRO]" #~ msgid "" #~ "total: %d hunks (%d changed lines); selected: %d hunks (%d changed lines)" #~ msgstr "" #~ "total: %d hunks (%d linhas alteradas); seleccionado: %d hunks (%d linhas " #~ "alteradas)" #~ msgid "limit number of changes displayed" #~ msgstr "limitar números de alterações a mostrar" #~ msgid "use \"hgtk help\" for the full list of commands" #~ msgstr "use \"hgtk help\" para obter a lista completa de comandos" #~ msgid "hgtk repoconfig" #~ msgstr "hgtk repoconfig" #~ msgid "hgtk guess" #~ msgstr "hgtk guess" #~ msgid "hgtk userconfig" #~ msgstr "hgtk userconfig" #~ msgid "hgtk remove [FILE]..." #~ msgstr "hgtk remover [FILE]..." #~ msgid "hgtk status [FILE]..." #~ msgstr "hgtk estado [FILE]..." #~ msgid "hgtk recovery" #~ msgstr "hgtk recuperar" #~ msgid "hgtk merge" #~ msgstr "hgtk merge" #~ msgid "hgtk synch" #~ msgstr "hgtk sincro" #~ msgid "hgtk shelve" #~ msgstr "hgtk arquivar" #~ msgid "hgtk version [OPTION]" #~ msgstr "hgtk versão [OPTION]" #~ msgid "[-o] CMD" #~ msgstr "[-o] CMD" #~ msgid "_Filter" #~ msgstr "_Filtro" #~ msgid "hgtk help [COMMAND]" #~ msgstr "hgtk help [COMMAND]" #~ msgid "Reload revision history" #~ msgstr "Recarregar histórico da revisão" #~ msgid "Re_fresh" #~ msgstr "Ac_tualizar" #~ msgid "Custom Filter" #~ msgstr "Filtro Personalizado" #~ msgid "Apply" #~ msgstr "Aplicar" #~ msgid "Tip" #~ msgstr "Dica" #~ msgid "Save patch to" #~ msgstr "Guardar patch em" #~ msgid "Stop the hg operation" #~ msgstr "Parar a operação do hg" #~ msgid "rename error" #~ msgstr "erro ao renomear" #~ msgid "[command interrupted]" #~ msgstr "[comando interrompido]" #~ msgid "Cannot run now" #~ msgstr "Não é possível executar agora" #~ msgid "command is running" #~ msgstr "o comando está em execução" #~ msgid "Cannot close now" #~ msgstr "Não é possível fechar agora" #~ msgid "Validate repository consistency" #~ msgstr "Validar consistência do repositório" #~ msgid "Configure" #~ msgstr "Configurar" #~ msgid "Browse" #~ msgstr "Navegar" #~ msgid "HTTP Port:" #~ msgstr "Porta HTTP:" #~ msgid "cannot start server: " #~ msgstr "Não é possível iniciar o servidor: " #~ msgid "Invalid port 2048..65535" #~ msgstr "porta inválida 2048..65535" #~ msgid "hgtk rename SOURCE [DEST]" #~ msgstr "hgtk renomear SOURCE [DEST]" #~ msgid "hgtk serve [OPTION]..." #~ msgstr "hgtk serve [OPTION]..." #~ msgid "hgtk revert [FILE]..." #~ msgstr "hgtk reverter [FILE]..." #~ msgid "hgtk log [OPTIONS] [FILE]" #~ msgstr "hgtk registo [OPTIONS] [FILE]" #~ msgid "show the command options" #~ msgstr "mostrar as opções dos comandos" #~ msgid "Invalid date specification" #~ msgstr "especificação da data inválida" #~ msgid "Configure web settings" #~ msgstr "Configurar definições da web" #~ msgid "Launch browser to view repository" #~ msgstr "Iniciar navegador para ver o repositório" #~ msgid "Start server" #~ msgstr "Iniciar servidor" #~ msgid "Stop server" #~ msgstr "parar servidor" #~ msgid "" #~ "Server process is still running\n" #~ "Exiting will stop the server." #~ msgstr "" #~ "O processo do servidor ainda está em execução\n" #~ "Sair irá para o servidor." #~ msgid "used internally by daemon mode" #~ msgstr "usado internamente pelo modo daemon" #~ msgid "run server in background" #~ msgstr "executar servidor em pano de fundo" #~ msgid "address to use" #~ msgstr "endereço a usar" #~ msgid "port to use (default: 8000)" #~ msgstr "porta a usar (pré-definição:8000)" #~ msgid "SSL certificate file" #~ msgstr "ficheiro de certificado SSL" #~ msgid "hg serve [OPTION]..." #~ msgstr "hg serve [OPTION]..." #~ msgid "for remote clients" #~ msgstr "para clientes remotos" #~ msgid "use IPv6 in addition to IPv4" #~ msgstr "usar IPv6 em complemento do IPv4" #~ msgid "_delete" #~ msgstr "eli_minar" #~ msgid "No repository found here" #~ msgstr "Nenhum repositório encontrado aqui" #~ msgid "changeset " #~ msgstr "changeset " #~ msgid "Revert %s to contents at revision %d?" #~ msgstr "Reverter %s para o conteúdo da revisão %d?" #~ msgid "Branch Operations" #~ msgstr "Operações Branch" #~ msgid "App_ly Format" #~ msgstr "Formato App_ly" #~ msgid "Paste _Filenames" #~ msgstr "Colar _Filenames" #~ msgid "Message format needs to be configured" #~ msgstr "A mensagem de formato necessita ser configurada" #~ msgid "The summary line is not followed by a blank line" #~ msgstr "A linha do sumário não é seguida por uma linha em branco" #~ msgid "The summary line length of %i is greater than %i" #~ msgstr "O comprimento da linha de sumário de %i é maior que %i" #~ msgid "Message format configuration error" #~ msgstr "Erro de configuração do formato da mensagem" #~ msgid "use \"hgtk -v help %s\" to show global options" #~ msgstr "use \"hgtk -v help %s\" para mostrar as opções globais" #~ msgid "revisions to compare" #~ msgstr "revisões para comparar" #~ msgid "" #~ "Revert all files to revision %d?\n" #~ "This will overwrite your local changes" #~ msgstr "" #~ "Reverter todos os ficheiros para a revisão %d?\n" #~ "Isto irá sobrescrever as suas alterações locais" #~ msgid "Write bundle to" #~ msgstr "Escrever bundle para" #~ msgid "Defaulting to " #~ msgstr "A pré-definir para " #~ msgid "refresh" #~ msgstr "actualizar" #~ msgid "Save As" #~ msgstr "Gardar como" #~ msgid "Save selected changes" #~ msgstr "Guardar alterações seleccionadas" #~ msgid "st" #~ msgstr "st" #~ msgid "ms" #~ msgstr "ms" #~ msgid "path" #~ msgstr "caminho" #~ msgid "Copy file to" #~ msgstr "Copiar ficheiro para" #~ msgid "Nothing Added" #~ msgstr "Nada adicionado" #~ msgid "Delete Errors" #~ msgstr "Eliminar erros" #~ msgid "Repo:" #~ msgstr "Repo:" #~ msgid "Fetch" #~ msgstr "Fetch" #~ msgid "Tag is local" #~ msgstr "A etiqueta é local" #~ msgid "Replace existing tag" #~ msgstr "Substituir etiqueta existente" #~ msgid "Nothing Moved" #~ msgstr "Nada movido" #~ msgid "Nothing Reverted" #~ msgstr "Nada revertido" #~ msgid "Revert not allowed when viewing revision range." #~ msgstr "Reversão não permitida quando visiona o intervalo da revisão." #~ msgid "Incoming" #~ msgstr "A receber" #~ msgid "Advanced Options" #~ msgstr "Opções avançadas" #~ msgid "Name of hg executable on remote machine." #~ msgstr "Nome do executável hg na máquina remota." #~ msgid "Tagging completed" #~ msgstr "Etiquetagem terminada" #~ msgid "Tag \"%s\" has been added" #~ msgstr "A etiqueta \"%s\" foi adicionada" #~ msgid "Error in tagging" #~ msgstr "Erro ao etiquetar" #~ msgid "Tag name is empty" #~ msgstr "O nome da etiqueta está vazio" #~ msgid "Please select tag name to remove" #~ msgstr "Seleccione o nome da etiqueta a remover" #~ msgid "Tag '%s' already exist" #~ msgstr "A etiqueta '%s' já existe" #~ msgid "Specify the visual editor used to view files, etc" #~ msgstr "Especifique o editor visual para ver ficheiros, etc" #~ msgid "Message Line Length" #~ msgstr "Tamanho da linha da mensagem" #~ msgid "Maximum number of files to list per changeset." #~ msgstr "Número máximo de ficheiros a mostrar por changeset." #~ msgid "Maximum number of changes to list on the changelog." #~ msgstr "Número máximo de alterações a mostrar por changelog." #~ msgid "Character encoding name" #~ msgstr "nome da codificação de caracteres" #~ msgid "Edit remote repository path" #~ msgstr "Editar caminho do repositório remoto" #~ msgid "TortoiseHg Configure Repository - " #~ msgstr "Configuração de repositório TortoiseHg - " #~ msgid "TortoiseHg Configure User-Global Settings" #~ msgstr "Configuração do utilizador TortoiseHg - Definições globais" #~ msgid "Diff" #~ msgstr "Diff" #~ msgid "No Repository Found" #~ msgstr "Nenhum repositório encontrado" #~ msgid "Remote repository paths" #~ msgstr "Caminho do repositório remoto" #~ msgid "Repository Path" #~ msgstr "Caminho do repositório" #~ msgid "_Edit" #~ msgstr "_Editar" #~ msgid "_Test" #~ msgstr "_Testar" #~ msgid "Enable overlays" #~ msgstr "Activar overlays" #~ msgid "Suggested" #~ msgstr "Sugerido" #~ msgid "History" #~ msgstr "Histórico" #~ msgid "set aside selected changes" #~ msgstr "colocar de parte alterações seleccionadas" #~ msgid "%d selected, %d total" #~ msgstr "%d seleccionado, %d total" #~ msgid "Rename file to:" #~ msgstr "Renomear ficheiro para:" #~ msgid "Nothing Removed" #~ msgstr "Nada removido" #~ msgid "Remove is not enabled when multiple revisions are specified." #~ msgstr "" #~ "A remoção não está activada quando estão especificadas múltiplas revisões." #~ msgid "Nothing Copied" #~ msgstr "Nada copiado" #~ msgid "Cannot move outside repo!" #~ msgstr "Não é possível mover para fora do repo!" #~ msgid "Tag input is empty" #~ msgstr "A entrada da etiqueta está vazia" #~ msgid "a tag named \"%s\" already exists" #~ msgstr "Já existe uma etiqueta com o nome \"%s\"" #~ msgid "" #~ "Repository name to use in the web interface. Default is the working " #~ "directory." #~ msgstr "" #~ "Nome do repositório a usar na interface web. A pré-definição é a " #~ "directoria de trabalho." #~ msgid "Connect to mail server using TLS. Default: False" #~ msgstr "Ligar ao servidor de correio usando TLS. Pré-definido: Falso" #~ msgid "Patch Series (Bundle) Description" #~ msgstr "Descrição Patch Series (Bundle)" #~ msgid "rename takes one or two path arguments" #~ msgstr "renomear tira um ou dois argumentos do caminho" #~ msgid "" #~ "use \"hgtk help\" for the full list of commands or \"hgtk -v\" for details" #~ msgstr "" #~ "use \"hgtk help\" para a lista completa de comandos ou \"hgtk -v\" para " #~ "detalhes" #~ msgid "Must supply a target revision" #~ msgstr "Tem de fornecer uma revisão de destino" #~ msgid "Clean checkout, undo all changes" #~ msgstr "Checkout limpo, anular todas as alterações" #~ msgid "Confirm clean repository" #~ msgstr "Confirmar repositório limpo" #~ msgid "name to show in web pages (default: working dir)" #~ msgstr "nome a mostrar nas páginas web (pré-definido: dir de trabalho)" #~ msgid "Visual Diffs" #~ msgstr "Diffs visuais" #~ msgid "User global settings" #~ msgstr "Definições de utilizador globais" #~ msgid "Tag \"%s\" has been removed" #~ msgstr "A etiqueta\"%s\" foi removida" #~ msgid "Please enter tag name" #~ msgstr "Escreva o nome da etiqueta" #~ msgid "No repository selected" #~ msgstr "Nenhum repositório seleccionado" #~ msgid "Bundle (*.hg)" #~ msgstr "Bundle (*.hg)" #~ msgid "Bundle (*)" #~ msgstr "Bundle (*)" #~ msgid "Select Bundle" #~ msgstr "Seleccione bundle" #~ msgid "Confirm Delete Unrevisioned" #~ msgstr "Confirmar eliminação sem revisão" #~ msgid "No addable files selected" #~ msgstr "Nenhum ficheiro para adicionar seleccionado" #~ msgid "No removable files selected" #~ msgstr "Nenhum ficheiro para remover seleccionado" #~ msgid "No revertable files selected" #~ msgstr "Nenhum ficheiro reversível seleccionado" #~ msgid "filtered status" #~ msgstr "estado filtrado" #~ msgid "Clean checkout of original revision?" #~ msgstr "Checkout limpo da revisão original?" #~ msgid "listening at http://%s%s/%s (%s:%d)\n" #~ msgstr "À escuta em http://%s%s/%s (%s:%d)\n" #~ msgid "Confirm Really Exit?" #~ msgstr "Confirmar sair mesmo?" #~ msgid "[All Files]" #~ msgstr "[Todos os Ficheiros]" #~ msgid "Folder" #~ msgstr "Pasta" #~ msgid "Local Date" #~ msgstr "Data local" #~ msgid "Universal Date" #~ msgstr "Data universal" #~ msgid "Current revision (local)" #~ msgstr "Versão actual (local)" #~ msgid "Undo" #~ msgstr "Anular" #~ msgid "ID" #~ msgstr "ID" #~ msgid "Summary" #~ msgstr "Sumário" #~ msgid "Abort: %s\n" #~ msgstr "Abortar: %s\n" #~ msgid "Verify" #~ msgstr "Verificar" #~ msgid "File is larger than the specified max size.\n" #~ msgstr "O ficheiro é maior que o tamanho máximo especificado.\n" #~ msgid "" #~ "No movable files selected\n" #~ "\n" #~ "Note: only clean files can be moved." #~ msgstr "" #~ "Nenhuns ficheiros seleccionados para mover\n" #~ "\n" #~ "Nota: apenas ficheiros limpos podem ser movidos." #~ msgid "making snapshot of %d files from rev %s\n" #~ msgstr "a fazer instantâneo de %d ficheiros da rev %s\n" #~ msgid "Select Folder" #~ msgstr "Seleccione pasta" #~ msgid "All files" #~ msgstr "Todos os ficheiros" #~ msgid "udpate all repos in current dir" #~ msgstr "actualizar todos os repos no dir actual" #~ msgid "hgtk thgstatus [OPTION]" #~ msgstr "hgtk thgstatus [OPTION]" #~ msgid "Merge target (other)" #~ msgstr "Fundir destino (outro)" #~ msgid "Recover from interrupted operation" #~ msgstr "recuperar de uma operação interrrompida" #~ msgid "Recover" #~ msgstr "Recuperar" #~ msgid "Clean repository '%s' ?" #~ msgstr "Limpar o repositório '%s' ?" #~ msgid "Changeset Description" #~ msgstr "Descrição do changeset" #~ msgid " %s is larger than the specified max diff size" #~ msgstr " %s é maior que o tamanho máx. de diff especificado" #~ msgid "Confirm revert file to old revision" #~ msgstr "Confirmar reversão do ficheiro para a revisão anterior" #~ msgid "Toggle _Wordwrap" #~ msgstr "Trocar _Wordwrap" #~ msgid "TortoiseHg Clone" #~ msgstr "TortoiseHg Clone" #~ msgid "Clone" #~ msgstr "Clonar" #~ msgid "Please enter a valid source path" #~ msgstr "Escreva um caminho válido" #~ msgid "Close current named branch" #~ msgstr "Fechar o ramo actual" #~ msgid "new branch: " #~ msgstr "novo ramo: " #~ msgid "close branch: " #~ msgstr "fechar ramo: " #~ msgid "Confirm Add/Remove" #~ msgstr "Confirmar Adicionar/Remover" #~ msgid "Add/Remove the following files?" #~ msgstr "Adicionar/Remover os seguintes ficheiros?" #~ msgid "Confirm Commit" #~ msgstr "Confirmar envio" #~ msgid "Rollback" #~ msgstr "Voltar atrás" #~ msgid "Confirm rollback repository" #~ msgstr "Confirmar volta atrás do repositório" #~ msgid "Rollback repository '%s' ?" #~ msgstr "Voltar atrás com o repositório '%s' ?" #~ msgid "name of file to write process ID to" #~ msgstr "nome do ficheiro para onde escrever o ID do processo" #~ msgid "web templates to use" #~ msgstr "modelos web a usar" #~ msgid "template style to use" #~ msgstr "estilo do modelo a usar" #~ msgid "M: modified" #~ msgstr "M: modificado" #~ msgid "A: added" #~ msgstr "A: adicionado" #~ msgid "R: removed" #~ msgstr "R: removido" #~ msgid "!: deleted" #~ msgstr "!: eliminado" #~ msgid "?: unknown" #~ msgstr "?: desconhecido" #~ msgid "C: clean" #~ msgstr "C: limpar" #~ msgid "I: ignored" #~ msgstr "I: ignorado" #~ msgid "Move is not enabled when multiple revisions are specified." #~ msgstr "" #~ "Mover não está activado quando são especificadas múltiplas revisões." #~ msgid "Copy is not enabled when multiple revisions are specified." #~ msgstr "" #~ "Copiar não está activado quando são especificadas múltiplas revisões." #~ msgid "Revert files to revision %s?" #~ msgstr "Reverter ficheiros para a revisão %s?" #~ msgid "Delete the following unrevisioned files?" #~ msgstr "Eliminar os seguintes ficheiros sem revisão?" #~ msgid "Configure peer repository paths" #~ msgstr "Configure os caminhos do repositório dos pares" #~ msgid "Update to branch tip" #~ msgstr "Actualizar para ramo tip" #~ msgid "unknown sort key '%s'" #~ msgstr "ordenar chave '%s' desconhecida" #~ msgid "Select a peer repository to compare with" #~ msgstr "Seleccione um repositório do par para poder comparar com" #~ msgid "Highlight the taskbar icon during activity" #~ msgstr "Destacar o ícone da barra de tarefas durante a actividade" #~ msgid "Bottom Diffs" #~ msgstr "Diffs do fundo" #~ msgid "Ignore white space when comparing lines. Default: False" #~ msgstr "Ignorar espaços em branco ao comparar linhas. Pré-definido: False" #~ msgid "Ignore changes whose lines are all blank. Default: False" #~ msgstr "" #~ "Ignorar alterações em que as linhas estão todas vazias. Pré-definido: " #~ "False" #~ msgid "Overwrite existing '%s' path?" #~ msgstr "Sobrescrever o caminho '%s' existente?" #~ msgid "Path testing cannot work without a repository" #~ msgstr "O teste do caminho não funciona sem um repositório" #~ msgid "Set as _default" #~ msgstr "Aplicar como pré-_definido" #~ msgid "Please select diff chunks to shelve" #~ msgstr "Seleccione os chunks diff para arquivar" #~ msgid "" #~ "If true, concatenate multiple lines of changeset summary until they reach " #~ "80 characters. Default: False" #~ msgstr "" #~ "Se verdadeiro, concatenar múltiplas linhas do sumário do changeset até " #~ "atingir 80 caracteres. Pré-definição: False" #~ msgid "Skipped saving path with no alias" #~ msgstr "Saltar a guarda do caminho sem nenhuma alcunha" #~ msgid "name of access log file to write to" #~ msgstr "nome do ficheiro de registo de acesso para onde escrever" #~ msgid "name of error log file to write to" #~ msgstr "nome do ficheiro de registo de erro para onde escrever" #~ msgid "prefix path to serve from (default: server root)" #~ msgstr "prefixo do caminho para servir de (pré-definido: servidor root)" #~ msgid "Run even when remote repository is unrelated." #~ msgstr "Correr mesmo quando o repositório remoto não está relacionado." #~ msgid "Hunk selection is disabled for this file.\n" #~ msgstr "A selecção dos pedaços está desactivada para este ficheiro.\n" #~ msgid "Move files to directory..." #~ msgstr "Mover ficheiros para a directoria..." #~ msgid "(version %s)" #~ msgstr "(versão %s)" #~ msgid "with %s" #~ msgstr "com %s" #~ msgid "Unable to delete temp files" #~ msgstr "Não é possível eliminar os ficheiros temporários" #~ msgid "Close diff tools and try again, or quit to leak files?" #~ msgstr "Fechar as ferramentas diff e tentar novamente ou sair?" #~ msgid "Source path:" #~ msgstr "Caminho fonte:" #~ msgid "Use uncompressed transfer" #~ msgstr "Usar transferência não comprimida" #~ msgid "Advanced options" #~ msgstr "Opções avançadas" #~ msgid "Invalid regular expression" #~ msgstr "Expressão regular inválida" #~ msgid "Info Required" #~ msgstr "Info necessária" #~ msgid "Error: %s" #~ msgstr "Erro: %s" #~ msgid "Abort: %s" #~ msgstr "Abortar: %s" #~ msgid "Select" #~ msgstr "Seleccionar" #~ msgid "Select Revision" #~ msgstr "Seleccionar revisão" #~ msgid "Invalid Revision" #~ msgstr "Revisão inválida" #~ msgid "Spell Check Language" #~ msgstr "Verificação de escrita" #~ msgid "Rename error" #~ msgstr "Erro ao renomear" #~ msgid "hgtk forget [FILE]..." #~ msgstr "hgtk forget [FILE]..." #~ msgid "tagged revisions" #~ msgstr "revisões etiquetadas" #~ msgid "working parents" #~ msgstr "parentes funcionais" #~ msgid "%s branch" #~ msgstr "%s ramo" #~ msgid "Color by Branch" #~ msgstr "Cor por ramo" #~ msgid "revision ancestry" #~ msgstr "revisão anterior" #~ msgid "heads" #~ msgstr "cabeças" #~ msgid "Load all" #~ msgstr "Carregar tudo" #~ msgid "load more revisions" #~ msgstr "carregar mais revisões" #~ msgid "load all revisions" #~ msgstr "carregar todas as revisões" #~ msgid "Keywords" #~ msgstr "Palavras-chave" #~ msgid "File Patterns" #~ msgstr "Padrão do ficheiro" #~ msgid "Remove or delete checked files" #~ msgstr "Remover ou eliminar ficheiros verificados" #~ msgid "Move checked files to other directory" #~ msgstr "Mover ficheiros verificados para outra directoria" #~ msgid "_Forget" #~ msgstr "_Esquecer" #~ msgid "_Diff" #~ msgstr "_Diff" #~ msgid "Add checked files" #~ msgstr "Adicionar ficheiros verificados" #~ msgid "Revert checked files" #~ msgstr "Reverter ficheiros verificados" #~ msgid "Hunk Selection" #~ msgstr "Selecção Hunk" #~ msgid "Text Diff" #~ msgstr "Diff do texto" #~ msgid "Visual diff checked files" #~ msgstr "Diff visual dos ficheiros verificados" #~ msgid "Nothing Forgotten" #~ msgstr "Nada esquecido" #~ msgid "Nothing Diffed" #~ msgstr "Nada Diffed" #~ msgid "No diffable files selected" #~ msgstr "Nenhum ficheiros diff seleccionado" #~ msgid "not up to date" #~ msgstr "não actualizado" #~ msgid "" #~ "The parents have changed since the last refresh.\n" #~ "Continue anyway?" #~ msgstr "" #~ "Os parentes foram alterados desde a última actualização.\n" #~ "Continuar?" #~ msgid "No clean files selected" #~ msgstr "Nenhuns ficheiros limpos seleccionados" #~ msgid "Show newest first" #~ msgstr "Mostrar primeiro os mais recentes" #~ msgid "Show patches" #~ msgstr "Mostrar patches" #~ msgid "Target revision:" #~ msgstr "Revisão de destino:" #~ msgid "Fork hgtk" #~ msgstr "Fork hgtk" #~ msgid "http" #~ msgstr "http" #~ msgid "URL Details" #~ msgstr "Detalhes do url" #~ msgid "ssh" #~ msgstr "ssh" #~ msgid "https" #~ msgstr "https" #~ msgid "Select Local Folder" #~ msgstr "Seleccione pasta local" #~ msgid "Confirm Rebase Revision" #~ msgstr "Confirmar revisão do Rebase" #~ msgid "Rebase revision %d on top of %d?" #~ msgstr "Revisão do Rebase %d no topo de %d?" #~ msgid "revision to merge with" #~ msgstr "revisão para juntar com" #~ msgid "revision number, changeset ID, branch or tag" #~ msgstr "número da revisão, ID do conjunto de alterações, ramo ou etiqueta" #~ msgid "Lang \"%s\" can not be set.\n" #~ msgstr "O idioma \"%s\" não pode ser aplicado.\n" #~ msgid "" #~ "Select language for spell checking.\n" #~ "\n" #~ "Empty is for the default language.\n" #~ "When all text is highlited, the dictionary\n" #~ "is probably not installed.\n" #~ "\n" #~ "examples: en, en_GB, en_US" #~ msgstr "" #~ "Seleccione o idioma para o corrector.\n" #~ "\n" #~ "Vazio é para o idioma pré-definido.\n" #~ "Quando todo o texto está destacado, provavelmente\n" #~ "o dicionário não está instalado.\n" #~ "\n" #~ "exemplos: pt, pt_PT, pt_BR" #~ msgid "" #~ "Color changesets by author name. If not enabled, the changes are colored " #~ "green for merge, red for non-trivial parents, black for normal. Default: " #~ "False" #~ msgstr "" #~ "Colorir os conjuntos de alterações pelo nome do autor. Se não estiver " #~ "activado, as alterações são verdes para juntar, vermelhas para parentes " #~ "não-triviais, preto para normal. Pré-definido: True" #~ msgid "Ignore changes in the amount of white space. Default: False" #~ msgstr "" #~ "Ignorar alterações pelo tamanho de espaços em branco. Pré-definido: False" #~ msgid "Try &Again" #~ msgstr "Tentar nov&amente" #~ msgid "&Quit" #~ msgstr "&Sair" #~ msgid "" #~ "The destination \"%s\" already exists!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "O destino \"%s\" já existe!\n" #~ "\n" #~ "Deseja sobrescreve-lo?" #~ msgid "" #~ "The directory \"%s\" isn't empty!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "A directoria \"%s\" não está vazia!\n" #~ "\n" #~ "Deseja sobrescreve-la?" #~ msgid "Archived successfully" #~ msgstr "Arquivado com sucesso" #~ msgid "All Files (*.*)" #~ msgstr "Todos os ficheiros (*.*)" #~ msgid "unknown mode name: %s" #~ msgstr "modo de nome desconhecido: %s" #~ msgid "Do you want to abort?" #~ msgstr "Deseja abortar?" #~ msgid "Confirm Abort" #~ msgstr "Confirmar abortar" #~ msgid "Failed to archive" #~ msgstr "Falha ao arquivar" #~ msgid "Canceled archiving" #~ msgstr "Arquivamento cancelado" #~ msgid "_Visual Diff" #~ msgstr "_Visual Diff" #~ msgid "Diff to _local" #~ msgstr "Diff to _local" #~ msgid "%s changeset " #~ msgstr "%s changeset " #~ msgid "Save as.." #~ msgstr "Guardar como.." #~ msgid "Failed to clone" #~ msgstr "Falha a clonar" #~ msgid "Cloned successfully" #~ msgstr "Clonado com sucesso" #~ msgid " - qnew" #~ msgstr " - qnew" #~ msgid " - qrefresh " #~ msgstr " - qrefresh " #~ msgid "_View" #~ msgstr "_View" #~ msgid "_Operations" #~ msgstr "_Operações" #~ msgid "Advanced" #~ msgstr "Avançado" #~ msgid "Parent: %(rev)s" #~ msgstr "Pai: %(rev)s" #~ msgid "refresh top MQ patch" #~ msgstr "actualizar patch MQ de topo" #~ msgid "Patch Contents" #~ msgstr "Conteúdo do Patch" #~ msgid "Auto-includes:" #~ msgstr "Auto-incluir:" #~ msgid "create new MQ patch" #~ msgstr "Criar novo patch MQ" #~ msgid "%s - datamine" #~ msgstr "%s - datamine" #~ msgid "Datamine" #~ msgstr "Datamine" #~ msgid "Contents" #~ msgstr "Conteúdo" #~ msgid "_Tools" #~ msgstr "_Ferramentas" #~ msgid "Loading history..." #~ msgstr "A carregar histórico..." #~ msgid "_Help" #~ msgstr "_Ajuda" #~ msgid "Serve" #~ msgstr "Serve" #~ msgid "Recovery" #~ msgstr "Recuperação" #~ msgid "Command Log" #~ msgstr "Comando de registo" #~ msgid "Send" #~ msgstr "Enviar" #~ msgid "invalid state" #~ msgstr "estado inválido" #~ msgid "Test" #~ msgstr "Teste" #~ msgid "Show emails which would be sent" #~ msgstr "Mostrar correio que vai ser enviado" #~ msgid "Close this" #~ msgstr "Fechar isto" #~ msgid "Stop transaction" #~ msgstr "Parar transacção" #~ msgid "Send emails" #~ msgstr "Enviar correios" #~ msgid "[command returned code %d " #~ msgstr "[o comando retornou o código %d " #~ msgid "Flags:" #~ msgstr "Etiquetas:" #~ msgid "[command completed successfully " #~ msgstr "[comando efectuado com sucesso " #~ msgid "Email revisions " #~ msgstr "Revisões do correio " #~ msgid "Apply to:" #~ msgstr "Aplicar a:" #~ msgid "Move Up" #~ msgstr "Mover Cima" #~ msgid "Columns" #~ msgstr "Colunas" #~ msgid "Log Details" #~ msgstr "Detalhes do registo" #~ msgid "Move Down" #~ msgstr "Mover Baixo" #~ msgid "&Reject" #~ msgstr "&Rejeitar" #~ msgid "&Accept" #~ msgstr "&Aceitar" #~ msgid "Show/Hide Patch Queue" #~ msgstr "Mostrar/Ocultar Patch em espera" #~ msgid " (Bundle Preview)" #~ msgstr " (Bundle Preview)" #~ msgid "Sync Bar" #~ msgstr "Sync Bar" #~ msgid "Ignore Max Diff Size" #~ msgstr "Ignorar Máx Diff Size" #~ msgid "Reset Marks" #~ msgstr "Reiniciar marcas" #~ msgid "Toolbar" #~ msgstr "Barra de Ferramentas" #~ msgid "Load more Revisions" #~ msgstr "Carregar mais revisões" #~ msgid "Load all Revisions" #~ msgstr "Carregar todas as revisões" #~ msgid "Working Parent" #~ msgstr "Pai de trabalho" #~ msgid "_Navigate" #~ msgstr "_Navegar" #~ msgid "Filter Bar" #~ msgstr "Filtrar barra" #~ msgid "Choose Details..." #~ msgstr "Escolher detalhes..." #~ msgid "Compact Graph" #~ msgstr "Compact Graph" #~ msgid "Add Bundle..." #~ msgstr "Adicionar Bundle..." #~ msgid "Revision..." #~ msgstr "Revisão..." #~ msgid "Accept Bundle" #~ msgstr "Aceitar Bundle" #~ msgid "Reject Bundle" #~ msgstr "Rejeitar Bundle" #~ msgid "Revision Number" #~ msgstr "Número da revisão" #~ msgid "_Synchronize" #~ msgstr "_Sincronizar" #~ msgid "Changeset ID" #~ msgstr "Changeset ID" #~ msgid "Email..." #~ msgstr "Correio electrónico..." #~ msgid "Branch Name" #~ msgstr "Nome do Ramo" #~ msgid "UTC Date" #~ msgstr "Data UTC" #~ msgid "Age" #~ msgstr "Idade" #~ msgid "Tags" #~ msgstr "Etiquetas" #~ msgid "Filter" #~ msgstr "Filtro" #~ msgid "Branch '%s'" #~ msgstr "Ramo '%s'" #~ msgid "Ancestry of %s" #~ msgstr "Anterior do %s" #~ msgid "Tagged Revisions" #~ msgstr "Revisões etiquetadas" #~ msgid "_Merge with..." #~ msgstr "U_nir com..." #~ msgid "_Update..." #~ msgstr "Act_ualizar..." #~ msgid "Visualize Change" #~ msgstr "Visualizar alteração" #~ msgid "no Merges" #~ msgstr "Sem uniões" #~ msgid "_Export Patch..." #~ msgstr "_Exportar Patch..." #~ msgid "_Bundle rev:tip..." #~ msgstr "_Bundle rev:tip..." #~ msgid "Add/Remove _Tag..." #~ msgstr "Adicionar/Remover_etiqueta..." #~ msgid "_Revert" #~ msgstr "_Reverter" #~ msgid "_Archive..." #~ msgstr "_Arquivar..." #~ msgid "E_mail Patch..." #~ msgstr "Enviar correio com o Patch..." #~ msgid "unexpected response id: %s" #~ msgstr "id de resposta inesperado: %s" #~ msgid "_View at Revision" #~ msgstr "_Ver na revisão" #~ msgid "_Save at Revision..." #~ msgstr "_Guardar na revisão..." #~ msgid "_Revert File Contents" #~ msgstr "_Reverter conteúdo do ficheiro" #~ msgid "_File History" #~ msgstr "Histórico do _ficheiro" #~ msgid "_Annotate File" #~ msgstr "_Anotar ficheiro" #~ msgid "Source and destination are the same" #~ msgstr "A fonte e o destino são os mesmos" #~ msgid "unknown hunk type: %s" #~ msgstr "tipo de hunk desconhecido: %s" #~ msgid "[no hunks to display]" #~ msgstr "[nenhum hunk para mostrar]" #~ msgid "Repository Error: %s, refresh suggested" #~ msgstr "Erro de repositório: %s, sugerida actualização" #~ msgid "Please specify different paths" #~ msgstr "Por favor especifique caminhos diferentes" #~ msgid "Ambiguous Revision" #~ msgstr "Revisão ambígua" #~ msgid " - commit" #~ msgstr " - commit" #~ msgid "unknown CmdWidget style: %s" #~ msgstr "estilo CmdWidget desconhecido: %s" #~ msgid "Toggle log window" #~ msgstr "Trocar janela de registo" #~ msgid "Strip Revision..." #~ msgstr "Tirar a revisão..." #~ msgid "Accept new Changesets" #~ msgstr "Aceitar novos changesets" #~ msgid "Email from here to selected..." #~ msgstr "Enviar correio daqui para o seleccionado..." #~ msgid "Visual Diff with selected" #~ msgstr "Diff visual com o seleccionado" #~ msgid "_Diff with selected" #~ msgstr "_Diff com o seleccionado" #~ msgid "Download and view incoming changesets" #~ msgstr "Transferir e ver os changesets que chegam" #~ msgid "Determine and mark outgoing changesets" #~ msgstr "Determinar e marcar changesets de saída" #~ msgid "Export Patches from here to selected..." #~ msgstr "Exportar patches daqui para o seleccionado..." #~ msgid "Bundle from here to selected..." #~ msgstr "Bundle daqui para o seleccionado..." #~ msgid "Merges" #~ msgstr "Uniões" #~ msgid "Hide Merges" #~ msgstr "Ocultar uniões" #~ msgid "Configure aliases and after pull behavior" #~ msgstr "Configurar alcunhas e depois enviar o comportamento" #~ msgid "Ancestry" #~ msgstr "Anterior" #~ msgid "Tagged" #~ msgstr "Com Marca" #~ msgid "Stop current transaction" #~ msgstr "Parar a transacção actual" #~ msgid "Branches..." #~ msgstr "Ramos..." #~ msgid "Please enter or select a remote path" #~ msgstr "Escreva ou seleccione um caminho remoto" #~ msgid "No remote path specified" #~ msgstr "Nenhum caminho remoto especificado" #~ msgid "Reject" #~ msgstr "Rejeitar" #~ msgid "Branch Filter" #~ msgstr "Filtro do ramo" #~ msgid "Failed to merge" #~ msgstr "A união falhou" #~ msgid "%(count)d of %(total)d Revisions" #~ msgstr "%(count)d de %(total)d Revisões" #~ msgid "Save patches to" #~ msgstr "Guardar parches em" #~ msgid "Repository is empty" #~ msgstr "o repositório está vazio" #~ msgid "Merged successfully" #~ msgstr "Unido com sucesso" #~ msgid "Canceled merging" #~ msgstr "Cancelar união" #~ msgid "Merging in %s" #~ msgstr "A unir em %s" #~ msgid "Select files to add" #~ msgstr "Seleccione os ficheiros a adicionar" #~ msgid "Select files to revert" #~ msgstr "Seleccione ficheiros para reverter" #~ msgid "Select files to forget" #~ msgstr "Seleccione ficheiros para esquecer" #~ msgid "Select files to remove" #~ msgstr "Seleccione ficheiros para remover" #~ msgid "Canceled undo" #~ msgstr "Anular cancelado" #~ msgid "Failed to undo" #~ msgstr "Anular falhou" #~ msgid "Toggle all selections" #~ msgstr "Trocar todas as selecções" #~ msgid "%s - recovery" #~ msgstr "%s - recuperação" #~ msgid "Rename " #~ msgstr "Renomear " #~ msgid "Successfully" #~ msgstr "Com sucesso." #~ msgid "Failed" #~ msgstr "Falhou" #~ msgid "Canceled" #~ msgstr "Cancelado" #~ msgid "View '%s'" #~ msgstr "Ver '%s'" #~ msgid "Shelf Preview" #~ msgstr "Pré-visualizar Shelf" #~ msgid "%s - serve" #~ msgstr "%s - serve" #~ msgid "%s serve - %s" #~ msgstr "%s serve - %s" #~ msgid " - serve" #~ msgstr " - serve" #~ msgid "View" #~ msgstr "Ver" #~ msgid "Save Preview" #~ msgstr "Guardar pré-visualização" #~ msgid "View missing" #~ msgstr "Ver em falta" #~ msgid "View other" #~ msgstr "ver outro" #~ msgid "_Ignore" #~ msgstr "_Ignorar" #~ msgid "%s - synchronize" #~ msgstr "%s - sincronizar" #~ msgid "Restart merge with" #~ msgstr "Reiniciar união com" #~ msgid "_Copy..." #~ msgstr "_Copiar..." #~ msgid "Mark resolved" #~ msgstr "Marcar como resolvido" #~ msgid "Mark unresolved" #~ msgstr "Marcar como não resolvido" #~ msgid "Restart Merge..." #~ msgstr "Reiniciar união..." #~ msgid "Rename..." #~ msgstr "Mudar o Nome..." #~ msgid "Show changeset details with an expander" #~ msgstr "Mostrar detalhes do changeset com um expander" #~ msgid "Use Expander" #~ msgstr "Usar Expander" #~ msgid "Alias name is empty" #~ msgstr "O nome da alcunha está vazio" #~ msgid "Please enter alias name" #~ msgstr "Escreva o nome da alcunha" #~ msgid "Exit after saving changes?" #~ msgstr "Sair após guardar alterações?" #~ msgid "Unapply last patch" #~ msgstr "Não aplicar o último patch" #~ msgid "Apply next patch" #~ msgstr "Aplicar o patch seguinte" #~ msgid "Yes (&keep)" #~ msgstr "Sim (&keep)" #~ msgid "#" #~ msgstr "nº" #~ msgid "_rename" #~ msgstr "_renomear" #~ msgid "Strip" #~ msgstr "Remover" #~ msgid "Succeed" #~ msgstr "Com sucesso" #~ msgid "Show name" #~ msgstr "Mostrar nome" #~ msgid "Show status" #~ msgstr "Mostrar estado" #~ msgid "Show 'qparent'" #~ msgstr "Mostrar 'qparent'" #~ msgid "Enable editable cells" #~ msgstr "Activar células editáveis" #~ msgid "Shelf Contents" #~ msgstr "Conteúdo da Bandeja" #~ msgid "Canceled stripping" #~ msgstr "Remoção cancelada" #~ msgid "Stripped successfully" #~ msgstr "Remoção bem sucedida" #~ msgid "&Yes (--force)" #~ msgstr "&Sim (--force)" #~ msgid "Failed to strip" #~ msgstr "Remoção falhou" #~ msgid "Open..." #~ msgstr "Abrir..." #~ msgid "Saved at: %s" #~ msgstr "Guardado em: %s" #~ msgid "[canceled by user]\n" #~ msgstr "[cancelado pelo utilizador]\n" #~ msgid "Canceled updating" #~ msgstr "Actualização cancelada" #~ msgid "Updated successfully" #~ msgstr "Actualizado com sucesso" #~ msgid "Repository Explorer" #~ msgstr "Explorador do repositório" #~ msgid "Email outgoing changesets" #~ msgstr "Enviar changesets de saída por correio" #~ msgid "&Yes (backup changes)" #~ msgstr "&Yes (guardar alterações)" #~ msgid "Yes (&discard changes)" #~ msgstr "Yes (&ignorar alterações)" #~ msgid "Confirm Revert All Files" #~ msgstr "Confirmar Reverter todos os ficheiros" #~ msgid "Confirm Fold" #~ msgstr "Confirmar Fold" #~ msgid "Backup all (default)" #~ msgstr "Guardar tudo (pré-definido)" #~ msgid "Backup unrelated changesets (-b/--backup)" #~ msgstr "Guardar changesets não relacionados (-b/--backup)" #~ msgid "invalid dialog result: %s" #~ msgstr "resultado do diálogo inválido: %s" #~ msgid "Failed to update" #~ msgstr "A actualização falhou" #~ msgid "Unsupported line endings type: %s" #~ msgstr "Tip de fim de linha não suportado: %s" #~ msgid "TortoiseHg Init" #~ msgstr "TortoiseHg Init" #~ msgid "Open Bundle" #~ msgstr "Abrir Bundle" #~ msgid "merging " #~ msgstr "a unir " #~ msgid "Bundle Preview" #~ msgstr "Pré-visualizar Bundle" #~ msgid "" #~ "Default language for spell check. System language is used if not " #~ "specified. Examples: en, en_GB, en_US" #~ msgstr "" #~ "Idioma por defeito para a verificação de escrita. O idioma do sistema é " #~ "usado se não for especificado. Exemplos: en, pt_PT, en_US" #~ msgid "Old name:" #~ msgstr "Nome antigo:" #~ msgid "Copyright 2008-2010 Steve Borho and others" #~ msgstr "Copyright 2008-2010 Steve Borho e outros" #~ msgid "unexpected type: %s" #~ msgstr "tipo inesperado: %s" #~ msgid "Bookmark \"%s\" has been moved" #~ msgstr "O marcador \"%s\" foi movido" #~ msgid "Bookmark input is empty" #~ msgstr "A entrada do marcador está vazia" #~ msgid "Error in bookmarking" #~ msgstr "Erro no marcador" #~ msgid "Bookmark \"%s\" has been added" #~ msgstr "O marcador \"%s\" foi adicionado" #~ msgid "Bookmarking completed" #~ msgstr "Marcador terminado" #~ msgid "Please enter bookmark name" #~ msgstr "Escreva o nome do marcador" #~ msgid "Bookmark name is empty" #~ msgstr "O nome do marcador está vazio" #~ msgid "Bookmark \"%s\" has been removed" #~ msgstr "O marcador \"%s\" foi removido" #~ msgid "Please select bookmark name to remove" #~ msgstr "Seleccione o nome do marcador para mover" #~ msgid "Bookmark new name input is empty" #~ msgstr "O nome do novo marcador está vazio" #~ msgid "browser" #~ msgstr "navegador" #~ msgid "Enable _Wordwrap" #~ msgstr "Activar _Wordwrap" #~ msgid "Bookmark \"%s\" has been renamed to \"%s\"" #~ msgstr "O nome do marcador \"%s\" foi mudado para \"%s\"" #~ msgid "No bookmark named \"%s\" exists" #~ msgstr "Não existe nenhum marcador com o nome \"%s\"" #~ msgid "a bookmark named \"%s\" already exists" #~ msgstr "Já existe um marcador com o nome \"%s\"" #~ msgid "Please enter new bookmark name" #~ msgstr "Escreva o novo nome do marcador" #~ msgid "type" #~ msgstr "tipo" #~ msgid "Always Show Output" #~ msgstr "Mostrar sempre saída" #~ msgid "Displaying all items" #~ msgstr "A mostrar todos os itens" #~ msgid "_View File at Revision" #~ msgstr "_Ver ficheiro na revisão" #~ msgid "Selecting %(sel)d, displaying %(count)d of %(total)d items" #~ msgstr "A seleccionar %(sel)d, a mostrar %(count)d de %(total)d itens" #~ msgid "Selecting %(sel)d of %(total)d, displaying all items" #~ msgstr "A seleccionar %(sel)d de %(total)d, a mostrar todos os itens" #~ msgid "Updating..." #~ msgstr "A actualizar..." #~ msgid "C_onfigure Format..." #~ msgstr "C_onfigurar formato..." #~ msgid "_Zoom to Change" #~ msgstr "_Aumentar para alterar" #~ msgid "_Annotate Parent" #~ msgstr "_Anotar parente" #~ msgid "Index" #~ msgstr "Índice" #~ msgid "hgtk import [OPTION] [SOURCE]..." #~ msgstr "importar hgtk [OPTION] [SOURCE]..." #~ msgid "mpatch error" #~ msgstr "erro mpatch" #~ msgid "%s does not exist\n" #~ msgstr "%s não existe\n" #~ msgid "import to the repository" #~ msgstr "importar para o repositório" #~ msgid "Reset revision marks" #~ msgstr "Reiniciar marcas da revisão" #~ msgid "Launch data mining tool" #~ msgstr "Iniciar ferramenta de dados mining" #~ msgid "Reset _Marks" #~ msgstr "Reiniciar _marcas" #~ msgid "Branches" #~ msgstr "Ramos" #~ msgid "Launch recovery tool" #~ msgstr "Iniciar ferramenta de recuperação" #~ msgid "Launch web server" #~ msgstr "Iniciar servidor web" #~ msgid "hgtk shellconfig" #~ msgstr "hgtk shellconfig" #~ msgid "Custom" #~ msgstr "Personalizado" #~ msgid "_Perforce" #~ msgstr "_Perforce" #~ msgid "Identify" #~ msgstr "Identificar" #~ msgid "Import..." #~ msgstr "Importar..." #~ msgid "Configure Paths..." #~ msgstr "Configurar locais..." #~ msgid "Previously Selected" #~ msgstr "Seleccionado anteriormente" #~ msgid "Pending" #~ msgstr "Em aberto" #~ msgid "Submitted" #~ msgstr "Enviado" #~ msgid "malformed patch %s %s" #~ msgstr "patch mal formado %s %s" #~ msgid "No valid hunks found" #~ msgstr "Não foram encontrados hunks válidos" #~ msgid "bad hunk #%d" #~ msgstr "mau hunk #%d" #~ msgid "bad hunk #%d old text line %d" #~ msgstr "mau hunk #%d linha de texto antiga %d" #~ msgid "Hunk #%d FAILED at %d\n" #~ msgstr "Hunk #%d FALHOU em %d\n" #~ msgid "could not extract binary patch" #~ msgstr "não foi possível extra o patch binário" #~ msgid "binary patch is %d bytes, not %d" #~ msgstr "o patch binário tem %d bytes, não %d" #~ msgid "Export" #~ msgstr "Exportar" #~ msgid "_Copy Hash" #~ msgstr "_Copiar Hash" #~ msgid "Current patch: %s, " #~ msgstr "Patch actual: %s, " #~ msgid "Tag" #~ msgstr "Etiqueta" #~ msgid "Mark as Good" #~ msgstr "Marcar como bom" #~ msgid "Reset" #~ msgstr "Reiniciar" #~ msgid "Import Revision to MQ" #~ msgstr "Import ar revisão para o MQ" #~ msgid "Add/Move/Remove B_ookmark..." #~ msgstr "Adicionar/Mover/Remover Marcad_or" #~ msgid "Rename Bookmark..." #~ msgstr "Mudar nome ao marcador..." #~ msgid "Bisect" #~ msgstr "Bisect" #~ msgid "Mark as Bad" #~ msgstr "Marcar como mau" #~ msgid "Skip Testing" #~ msgstr "Saltar teste" #~ msgid "Import patches" #~ msgstr "Importar patches" #~ msgid "Aborted importing" #~ msgstr "Importação importada" #~ msgid "unknown dnd dest: %s" #~ msgstr "dnd dest desconhecido: %s" #~ msgid "Importing" #~ msgstr "A importar" #~ msgid "Failed to import" #~ msgstr "Importação falhada" #~ msgid "Rev/ID" #~ msgstr "Rev/ID" #~ msgid "TortoiseHg Shell Configuration" #~ msgstr "Configuração da shell do TortoiseHg" #~ msgid "Submit" #~ msgstr "Enviar" #~ msgid "<- Top" #~ msgstr "<- Topo" #~ msgid "S: subrepo" #~ msgstr "S: subrepo" #~ msgid "Sub ->" #~ msgstr "Sub ->" #~ msgid "Capture stderr" #~ msgstr "Capturar stderr" #~ msgid "unknown field name: %s" #~ msgstr "nome do campo desconhecido: %s" #~ msgid "invalid pack direction: %s" #~ msgstr "direcção do pacote inválido: %s" #~ msgid "invalid alignment value: %s" #~ msgstr "valor do alinhamento inválido: %s" #~ msgid "" #~ "Adjust the coloring style of diff lines in the changeset viewer. Default: " #~ "foreground" #~ msgstr "" #~ "Ajustar o estilo de coloração das linhas diff no visualizador de " #~ "changeset. Pré-definido: pano de fundo" #~ msgid "Coloring Style" #~ msgstr "Estilo de coloração" #~ msgid "Insufficient access rights, reverting to read-onlymode." #~ msgstr "" #~ "Direitos de acesso insuficientes, a reverter para o modo de leitura." #~ msgid "" #~ "%s\n" #~ "Reverting to read-only mode." #~ msgstr "" #~ "%s\n" #~ "A reverter para o modo apenas de leitura." #~ msgid "Canceled importing" #~ msgstr "Cancelar importação" #~ msgid "Imported successfully" #~ msgstr "Importado com sucesso" #~ msgid "Import" #~ msgstr "Importar" #~ msgid "Do you want to close?" #~ msgstr "Deseja fechar?" #~ msgid "Select Patches" #~ msgstr "Seleccionar patches" #~ msgid "%s will be imported to the" #~ msgstr "%s será importado para o" #~ msgid "Select Directory contains patches:" #~ msgstr "Seleccione a pasta que contém os patches:" #~ msgid "Confirm Close" #~ msgstr "Confirmar o fecho" #~ msgid "%s will be imported to the repository" #~ msgstr "%s será importado para o repositório" #~ msgid "_Rename" #~ msgstr "_Mudar o nome" #~ msgid "_Goto" #~ msgstr "_Ir Para" #~ msgid "Patch" #~ msgstr "Patch" #~ msgid "unexpected destination name: %s" #~ msgstr "nome de destino inesperado: %s" #~ msgid "_Delete" #~ msgstr "_Remover" #~ msgid "Up" #~ msgstr "Cima" #~ msgid "Top" #~ msgstr "Topo" #~ msgid "Bottom" #~ msgstr "Fundo" #~ msgid "Down" #~ msgstr "Para baixo" #~ msgid "%s changesets" #~ msgstr "%s changesets" #~ msgid "Always show log" #~ msgstr "Mostrar sempre o registo" #~ msgid "cleaning up temp directory\n" #~ msgstr "a limpar a pasta temporária\n" #~ msgid "revisions %d to %d" #~ msgstr "revisões %d até %d" #~ msgid "Not at head" #~ msgstr "Não está no cabeçalho" #~ msgid "Mercurial bundles" #~ msgstr "Pacotes do mercurial" #~ msgid "Bundle..." #~ msgstr "Pacote..." #~ msgid "Select a Mercurial Bundle" #~ msgstr "Seleccione um pacote do mercurial" #~ msgid "" #~ "New changesets from the preview bundle are still pending.\n" #~ "\n" #~ "Accept or reject the new changesets?" #~ msgstr "" #~ "Os novos changesets do pacote anterior ainda estão pendentes.\n" #~ "\n" #~ "Aceitar ou rejeitar os novos changesets?" #~ msgid "Revision Range" #~ msgstr "Alcance da revisão" #~ msgid "'%s' filter:" #~ msgstr "filtro '%s':" #~ msgid "Changes" #~ msgstr "Alterações" #~ msgid "%(count)d of %(total)d applied patches" #~ msgstr "%(count)d de %(total)d de patches aplicadas" #~ msgid "Unable to find rev %s" #~ msgstr "Não é possível encontrar a rev %s" #~ msgid "Aborted p4identify" #~ msgstr "P4identify abortado" #~ msgid "Revision Number/ID" #~ msgstr "Número/ID da revisão" #~ msgid "No changes to shelve" #~ msgstr "Sem alterações no arquivamento" #~ msgid "Launch shelve tool" #~ msgstr "Iniciar ferramenta de arquivamento" #~ msgid "_Shelve" #~ msgstr "_Arquivar" #~ msgid "Unshelve" #~ msgstr "Não arquivar" #~ msgid "Shelve" #~ msgstr "Arquivar" #~ msgid "Shelve file exists!" #~ msgstr "O ficheiro de arquivo existe!" #~ msgid "Shelve - launch Shelve tool and continue" #~ msgstr "Arquivar - lançar a ferramenta de arquivar e continuar" #~ msgid "Unshelve Error" #~ msgstr "Erro ao desarquivar" #~ msgid "hg shelve [OPTION]... [FILE]..." #~ msgstr "hg arquivar [OPTION]... [FILE]..." #~ msgid "hg unshelve [OPTION]... [FILE]..." #~ msgstr "hg desarquivar [OPTION]... [FILE]..." #~ msgid "proceed even if patches do not unshelve cleanly" #~ msgstr "continuar mesmo que os patches não façam um desarquivamento limpo" #~ msgid "mpatch expects *.rej file argument\n" #~ msgstr "mpatch expera um ficheiro de argumento *.rej\n" #~ msgid "Select common ancestor revision" #~ msgstr "Seleccione a revisão comum anterior" #~ msgid "Import from here to selected to MQ" #~ msgstr "Importar daqui para o MQ seleccionado" #~ msgid "No incoming changesets" #~ msgstr "Sem changesets para receber" #~ msgid "Checking incoming changesets..." #~ msgstr "A verificar changesets para receber..." #~ msgid "Aborted incoming" #~ msgstr "Receber abortado" #~ msgid "Finished pull" #~ msgstr "Recepção terminada" #~ msgid "Aborted pull" #~ msgstr "Recepção abortada" #~ msgid "" #~ "Forced push to remote repository\n" #~ "%s\n" #~ "(creating new heads in remote if needed)?" #~ msgstr "" #~ "Forçar envio para o repositório remoto\n" #~ "%s\n" #~ "(criar novos cabeçalhos remotos se necessário?)" #~ msgid "Email outgoing changes" #~ msgstr "Enviar correio com as altrações do envio" #~ msgid "Outgoing" #~ msgstr "Para enviar" #~ msgid "Backout commit message" #~ msgstr "Reverter a mensagem de envio" #~ msgid "undo recent commit" #~ msgstr "anularenvio recente" #~ msgid "Committer:" #~ msgstr "Enviado por:" #~ msgid "Commit Preview" #~ msgstr "Pré-visualização do envio" #~ msgid "parent is not a head, commit to add a new head" #~ msgstr "" #~ "o parente não é um cabeçalho, enviar para adicionar um novo cabeçalho" #~ msgid "Push after commit" #~ msgstr "Receber depois de enviar" #~ msgid "Recent commit messages..." #~ msgstr "Mensagens de envio recentes..." #~ msgid "" #~ "Unable to undo!\n" #~ "\n" #~ "Tip revision differs from last commit." #~ msgstr "" #~ "Impossível anular!\n" #~ "\n" #~ "A revisão Tip é diferente do último envio!" #~ msgid "" #~ "The summary line is not followed by a blank line.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "A linha do sumário não é seguido por uma linha em branco.\n" #~ "\n" #~ "Ignorar o formato da política e continuar o envio?" #~ msgid "" #~ "The summary line length of %i is greater than %i.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "O tamanho da linha do sumário de %i é maior que %i.\n" #~ "\n" #~ "Ignorar o formato da política e continuar o envio?" #~ msgid "Confirm Undo Commit" #~ msgstr "Confirmar anulação do envio" #~ msgid "Undo Commit" #~ msgstr "Anular envio" #~ msgid "No committable files selected" #~ msgstr "Nenhum ficheiro seleccionado para enviar" #~ msgid "Commit: Invalid username" #~ msgstr "Enviar: nome de utilizador inválido" #~ msgid "" #~ "The following lines are over the %i-character limit: %s.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "As seguintes linhas estão acima do %i- limite de caracteres: %s.\n" #~ "\n" #~ "Ignorar o formato da política e continuar o envio?" #~ msgid "Launch commit tool" #~ msgstr "Iniciar ferramenta de envio" #~ msgid "Aborted committing" #~ msgstr "Envio abortado" #~ msgid "Committing changes..." #~ msgstr "A enviar as alterações..." #~ msgid "Failed to commit" #~ msgstr "Falha ao enviar" #~ msgid "Rollback (undo) last transaction to repository (pull, commit, etc)" #~ msgstr "" #~ "Anular a última transacção para o repositório (receber, enviar, etc)" #~ msgid "Uncommitted local changes" #~ msgstr "Alterações locais não enviadas" #~ msgid "Forget checked files on next commit" #~ msgstr "Esquecer ficheiros verificados no próximo envio" #~ msgid "" #~ "To complete merging, you need to commit merged files in working " #~ "directory.\n" #~ "\n" #~ "Do you want to exit?" #~ msgstr "" #~ "Para completar a união, tem de enviar os ficheiros unidos na directoria " #~ "de trabalho.\n" #~ "\n" #~ "Deseja sair?" #~ msgid "" #~ "Show the diff panel below the file list in status, shelve, and commit " #~ "dialogs. Default: False (show diffs to right of file list)" #~ msgstr "" #~ "Mostra o painel de diff abaixo da lista de ficheiros no estado, shelve e " #~ "diálogos de envio.. Pré-definição: False (mostra os diffs à direita da " #~ "lista de ficheiros)" #~ msgid "" #~ "Maximum length of the commit message summary line. If set, TortoiseHg " #~ "will issue a warning if the summary line is too long or not separated by " #~ "a blank line. Default: 0 (unenforced)" #~ msgstr "" #~ "Tamanho máximo da linha do sumário da mensagem de envio. Se aplicado o " #~ "TortoiseHg mostra um aviso se a linha do sumário for demasiado comprido " #~ "ou não estiver separada por uma linha em branco. Pré-definição: 0 (não " #~ "forçado)" #~ msgid "" #~ "Detected uncommitted local changes.\n" #~ "Do you want to discard them and continue?" #~ msgstr "" #~ "Detectadas alterações locais não enviadas.\n" #~ "Deseja descartá-las e continuar?" #~ msgid "" #~ "Detected uncommitted local changes in working tree.\n" #~ "Please select to continue:\n" #~ "\n" #~ msgstr "" #~ "Detectadas alterações locais não enviadas na árvore de trabalho.\n" #~ "Seleccione para continuar:\n" #~ "\n" #~ msgid "Unable to identify Perforce tip" #~ msgstr "Não é possível identificar Perforce tip" #~ msgid "Finding pending Perforce changelists..." #~ msgstr "A procurar changelist Perforce pendentes..." #~ msgid "Pending Perforce changelists" #~ msgstr "Changelist Perforce pendentes" #~ msgid "Perforce changelist %s" #~ msgstr "Perforce changelist %s" #~ msgid "Finding tip Perforce changelist..." #~ msgstr "A procurar changelist Perforce tip..." #~ msgid "Identifying Perforce tip" #~ msgstr "A identificar Perforce tip" #~ msgid "Rebase on top of selected" #~ msgstr "Rebase em cima do selecionado" #~ msgid "Transplant Revision range to local" #~ msgstr "Transplantar intervalo da revisão para local" #~ msgid "Aborted outgoing" #~ msgstr "Envio abortado" #~ msgid "Checking outgoing changesets..." #~ msgstr "A verificar changesets para enviar..." #~ msgid "Accept incoming previewed changesets" #~ msgstr "Aceitar changesets pré-visualizados para receber" #~ msgid "Reject incoming previewed changesets" #~ msgstr "Rejeitar changesets pré-visualizados para receber" #~ msgid "%d incoming changesets" #~ msgstr "%d changesets para receber" #~ msgid "Finish bundling" #~ msgstr "A terminar criação de pacote" #~ msgid "Aborted bundling" #~ msgstr "Pacote abortado" #~ msgid "Failed to bundle" #~ msgstr "Falha ao criar pacote" #~ msgid "Bundling" #~ msgstr "A criar pacote" #~ msgid "Bundling from %(base)s to tip..." #~ msgstr "A criar pacote de %(base)s para tip..." #~ msgid "Finish importing" #~ msgstr "A terminar importação" #~ msgid "Show the taskbar icon (restart needed)" #~ msgstr "Mostrar o ícone da barra de tarefas (necessita reinício)" #~ msgid "Discard all changes from merge target (other) revision" #~ msgstr "Rejeitar todas as alterações de união alvo (outra) revisão" #~ msgid "" #~ "Graphical merge program for resolving merge conflicts. If left " #~ "unspecified, Mercurial will use the first applicable tool it finds on " #~ "your system or use its internal merge tool that leaves conflict markers " #~ "in place. Chose internal:merge to force conflict markers, internal:" #~ "prompt to always select local or other, or internal:dump to leave files " #~ "in the working directory for manual merging" #~ msgstr "" #~ "Programa de união gráfico para resolver conflitos de união. Se não " #~ "especificado, o Mercurial irá usar a primeira ferramenta aplicável, " #~ "encontrada no seu sistema ou usar a sua ferramenta de união interna que " #~ "deixa marcas de conflito no local. Escolha interno: unir à força " #~ "marcadores em conflito interno: solicitação para seleccionar sempre local " #~ "ou outro, ou internos: despejar para deixar os ficheiros na pasta para " #~ "união manual" #~ msgid "===== Diff to first parent %d:%s =====\n" #~ msgstr "===== Diff para o primeiro parente %d:%s =====\n" #~ msgid "_Delete unversioned" #~ msgstr "_Eliminar não versionado" #~ msgid "Remove versioned" #~ msgstr "Remover versionado" #~ msgid "" #~ "\n" #~ "===== Diff to second parent %d:%s =====\n" #~ msgstr "" #~ "\n" #~ "===== Diff para o segundo parente %d:%s =====\n" #~ msgid "Archive revision:" #~ msgstr "Revisão do ficheiro:" #~ msgid "Archive" #~ msgstr "Ficheiro" #~ msgid "Compressed zip archives" #~ msgstr "Ficheiros zip comprimidos" #~ msgid "Backout changeset - %s" #~ msgstr "Reverter changeset - %s" #~ msgid "Backout" #~ msgstr "Reverter" #~ msgid "Canceled backout" #~ msgstr "Reversão cancelada" #~ msgid "Failed to backout" #~ msgstr "A reversão falhou" #~ msgid "Diff to second Parent" #~ msgstr "Diff para o segundo parente" #~ msgid "_Commit (+1 head)" #~ msgstr "_Enviar (+1 cabeçalho)" #~ msgid "_Commit (-1 head)" #~ msgstr "_Enviar (-1 cabeçalho)" #~ msgid "commit to merge one head" #~ msgstr "enviar para unir um cabeçalho" #~ msgid "Di_splay Change" #~ msgstr "Alteração da apre_sentação" #~ msgid "hgtk commit [OPTIONS] [FILE]..." #~ msgstr "hgtk enviar [OPTIONS] [FILE]..." #~ msgid "Heads" #~ msgstr "Cabeçalhos" #~ msgid "Push" #~ msgstr "Enviar" #~ msgid "merges" #~ msgstr "uniões" #~ msgid "only Merges" #~ msgstr "apenas uniões" #~ msgid "Diff to Local" #~ msgstr "Diff para local" #~ msgid "Pull to Here" #~ msgstr "Receber para aqui" #~ msgid "Push to Here" #~ msgstr "Enviar para aqui" #~ msgid "Backout..." #~ msgstr "Reverter..." #~ msgid "Mercurial Queues" #~ msgstr "Em espera do Mercurial" #~ msgid "Transp_lant to Local" #~ msgstr "Transp_lantar para local" #~ msgid "Load more" #~ msgstr "Carregar mais" #~ msgid "Accept changes from Bundle preview" #~ msgstr "Aceitar alterações do pacote de pré-visualização" #~ msgid "Reject changes from Bundle preview" #~ msgstr "Rejeitar alterações do pacote de pré-visualização" #~ msgid "Pull incoming changesets" #~ msgstr "Receber changesets" #~ msgid "Push outgoing changesets" #~ msgstr "Enviar changesets de saída" #~ msgid "After Pull:" #~ msgstr "Após receber:" #~ msgid "Nothing" #~ msgstr "Fazer nada" #~ msgid "Applying bundle..." #~ msgstr "A aplicar pacote..." #~ msgid "Applying bundle" #~ msgstr "A aplicar pacote" #~ msgid "Finished pull with rebase" #~ msgstr "Recepção terminada com rebase" #~ msgid "No changesets to pull" #~ msgstr "Sem changesets para receber" #~ msgid "Pulling changesets..." #~ msgstr "A receber changesets..." #~ msgid "Forced &Push" #~ msgstr "&Envio forçado" #~ msgid "&Push" #~ msgstr "&Enviar" #~ msgid "Confirm Forced Push" #~ msgstr "Confirmar envio forçado" #~ msgid "" #~ "Forced push to repository\n" #~ "%s\n" #~ "(creating new heads if needed)?" #~ msgstr "" #~ "Envio forçado para o repositório\n" #~ "%s\n" #~ "(criar novos cabeçalhos se necessário)?" #~ msgid "Undo successfully" #~ msgstr "Anulado com sucesso" #~ msgid "Confirm undo merge" #~ msgstr "Confirmar anular unir" #~ msgid "Changelist:" #~ msgstr "Changelist" #~ msgid " Pull " #~ msgstr " Receber " #~ msgid "A specific revision up to which you would like to push or pull." #~ msgstr "Uma revisão específica para a qual deseja receber ou enviar." #~ msgid "Custom commit message is empty" #~ msgstr "A mensagem de envio personalizada está vazia" #~ msgid "" #~ "Specify the number of spaces that tabs expand to in various TortoiseHg " #~ "windows. Default: Not expanded" #~ msgstr "" #~ "Especificar o número de espaços que o tab expande em várias janelas do " #~ "TortoiseHG. Pré-definido: Não expandido" #~ msgid "Name associated with commits" #~ msgstr "Nome associado aos envios" #~ msgid "Toolbar Style" #~ msgstr "Estilo da Barra de ferramentas" #~ msgid "overwrite existing shelve data" #~ msgstr "sobrescrever os dados do ficheiro existentes" #~ msgid "append to existing shelve data" #~ msgstr "anexar ao ficheiro de dados existente" #~ msgid "Push to %s" #~ msgstr "Enviar para %s" #~ msgid "Confirm Forced Push to Remote Repository" #~ msgstr "Confirmar envio forçado para o repositório remoto" #~ msgid "Pull to %s" #~ msgstr "Receber para %s" #~ msgid "Outstanding uncommitted changes" #~ msgstr "Alterações não enviadas em falta" #~ msgid "Pulling changesets to revision %s..." #~ msgstr "A receber changeset para a revisão %s..." #~ msgid "Finished push to revision %s" #~ msgstr "Envio para a revisão %s terminado" #~ msgid "Importing to Patch Queue..." #~ msgstr "A importar para a espera do patch..." #~ msgid "_Finish Applied" #~ msgstr "Aplicação t_erminada" #~ msgid "" #~ "Do you want to fold un-applied patch '%(target)s' into current patch " #~ "'%(qtip)s'?" #~ msgstr "" #~ "Deseja incluir o patch não aplicado '%(target)s' no patch actual " #~ "'%(qtip)s'?" #~ msgid "F_old" #~ msgstr "Incl_uir" #~ msgid "bad hunk #%d %s (%d %d %d %d)" #~ msgstr "mau hunk#%d %s (%d %d %d %d)" #~ msgid "patching file %s\n" #~ msgstr "a aplicar patch ao ficheiro %s\n" #~ msgid "Patch Preview" #~ msgstr "Pré-visualizar patch" #~ msgid "Merge " #~ msgstr "Unir " #~ msgid "" #~ "This feature is only available when sending outgoing changesets. It is " #~ "not applicable with revision ranges." #~ msgstr "" #~ "Esta funcionalidade apenas está disponível ao enviar changesets de saída. " #~ "Não se aplica a colecções de revisões." #~ msgid "Finished push" #~ msgstr "Envio terminado" #~ msgid "Aborted push" #~ msgstr "Envio abortado" #~ msgid "Pushing changesets..." #~ msgstr "A enviar changesets..." #~ msgid "Bundling from %(base)s to %(rev)s..." #~ msgstr "A empacotar de %(base)s para %(rev)s..." #~ msgid "Finished pull to revision %s" #~ msgstr "Concluída a recepção da revisão %s" #~ msgid "Cannot merge" #~ msgstr "Não é possível unir" #~ msgid "Display changes that can be pulled from selected repository" #~ msgstr "" #~ "Mostra alterações que podem ser recebidas do repositório seleccionado" #~ msgid "Pull changes from selected repository" #~ msgstr "Recebe alterações do repositório seleccionado" #~ msgid "Push local changes to selected repository" #~ msgstr "Envia as alterações locais para o repositório seleccionado" #~ msgid "Email local outgoing changes to one or more recipients" #~ msgstr "Envia correio electrónico com as alterações a vários destinatários" #~ msgid "Shelve uncommited changes" #~ msgstr "Arquiva alterações não enviadas" #~ msgid "Bundle:" #~ msgstr "Pacote:" #~ msgid "Force pull or push" #~ msgstr "Forçar recepção/envio" #~ msgid "Incoming/Outgoing" #~ msgstr "Ao receber/enviar" #~ msgid "Show no merges" #~ msgstr "Mostrar sem uniões" #~ msgid "Unable to parse a config file" #~ msgstr "Não é possível analizar o arquivo de configuração" #~ msgid "restore shelved changes" #~ msgstr "restaurar alterações de arquivamento" #~ msgid "unable to find %s or %s for patching" #~ msgstr "não é possível encontrar %s ou %s para fazer patch" #~ msgid "file %s already exists\n" #~ msgstr "o ficheiro %s já existe\n" #~ msgid "File is binary.\n" #~ msgstr "O ficheiro é binário.\n" #~ msgid "Unable to save file" #~ msgstr "Não é possível guardar o ficheiro" #~ msgid "Commit failed" #~ msgstr "Envio falhou" #~ msgid ", please refresh" #~ msgstr ", por favor actualize" #~ msgid "Status: %s" #~ msgstr "Estado: %s" #~ msgid "Patch Branch" #~ msgstr "Patch do ramo" #~ msgid "Show/Hide Patch Branch" #~ msgstr "Mostrar/Ocultar patch do ramo" #~ msgid "Invalid revision set" #~ msgstr "Conjunto de revisão inválido" #~ msgid "Invalid file pattern" #~ msgstr "Padrão do ficheiro inválido" #~ msgid "file patterns \"%s\"" #~ msgstr "Padrões do ficheiro \"%s\"" #~ msgid "No matches" #~ msgstr "Sem correspondências" #~ msgid "Refresh required" #~ msgstr "Actualização necessária" #~ msgid "Unable to determine repository status" #~ msgstr "Não é possível determinar o estado do repositório" #~ msgid "Menu Items" #~ msgstr "Menu Items" #~ msgid "Revert files?" #~ msgstr "Reverter ficheiros?" #~ msgid "Annotate" #~ msgstr "Anotar" #~ msgid "Allow pushing a new branch" #~ msgstr "Permitir envio de um novo ramo" #~ msgid "tag '%s' is not a local tag" #~ msgstr "a etiqueta '%s' não é uma etiqueta local" #~ msgid "tag '%s' does not exist" #~ msgstr "a etiqueta '%s' não existe" #~ msgid "tag '%s' is not a global tag" #~ msgstr "a etiqueta '%s' não é uma etiqueta global" #~ msgid "Commit Message" #~ msgstr "Mensagem de envio" #~ msgid "Diff Text" #~ msgstr "Diff Text" #~ msgid "File List" #~ msgstr "Lista de ficheiros" #~ msgid "Command Output" #~ msgstr "Comando de saída" #~ msgid "Font used in command output window. Default: monospace 10" #~ msgstr "" #~ "Tipo de letra usado no comando de saída. Pré-definido: mono espaçada 10" #~ msgid "Switch after saving changes?" #~ msgstr "Mudar depois de guardar alterações?" #~ msgid "Theme default fonts" #~ msgstr "Tipos de letra pré-definidos do tema" #~ msgid "Preset fonts:" #~ msgstr "Tipos de letra definidos:" #~ msgid "Custom fonts:" #~ msgstr "Tipos de letra personalizados:" #~ msgid "Japanese on Windows" #~ msgstr "Japonês no Windows" #~ msgid "Confirm Switch" #~ msgstr "Confirmar mudança" #~ msgid "Do you want to delete '%(name)s'?" #~ msgstr "Deseja eliminar '%(name)s'?" #~ msgid "Do you want to delete these patches?" #~ msgstr "Deseja eliminar estes patches?" #~ msgid "Configure Plugin" #~ msgstr "Configurar Plugin" #~ msgid "Reorder" #~ msgstr "Reordenar" #~ msgid "Force" #~ msgstr "Forçar" #~ msgid "St" #~ msgstr "St" #~ msgid "no pending pmerges" #~ msgstr "sem pmerges em espera" #~ msgid "pending pmerges" #~ msgstr "pmerges em espera" #~ msgid "New Patch Name" #~ msgstr "Novo nome do patch" #~ msgid "Pending Pmerge" #~ msgstr "Pmerge em espera" #~ msgid "Applied MQ patch" #~ msgstr "MQ patch aplicado" #~ msgid "_new" #~ msgstr "_novo" #~ msgid "_finish" #~ msgstr "_terminar" #~ msgid "_edit message" #~ msgstr "_ediart mensagem" #~ msgid "Show graph" #~ msgstr "Mostrar gráfico" #~ msgid "Abandon Error" #~ msgstr "Erro de abandono" #~ msgid "Unshelve Abort" #~ msgstr "Aboratar unshelve" #~ msgid "Delete the shelf contents?" #~ msgstr "Eliminar os conteúdos shelf?" #~ msgid "Abandon" #~ msgstr "Abandonar" #~ msgid "abandon shelved changes" #~ msgstr "Abandonar alterações shelve" #~ msgid "Show message" #~ msgstr "Mostrar mensagem" #~ msgid "Show internal branches" #~ msgstr "Mostrar ramos internos" #~ msgid "Show title" #~ msgstr "Mostrar título" #~ msgid "abandon failed\n" #~ msgstr "o abandono falhou\n" #~ msgid "nothing to abandon\n" #~ msgstr "nada para abandonar\n" #~ msgid "Hunk #%d succeeded at %d (offset %d lines).\n" #~ msgstr "Hunk #%d sucedeu a %d (offset %d lines).\n" #~ msgid "Hunk #%d succeeded at %d with fuzz %d (offset %d lines).\n" #~ msgstr "Hunk #%d sucedeu a %d com fuzz %d (offset %d lines).\n" #~ msgid "neither parent is a head, commit to add a new head" #~ msgstr "nenhum parente é cabeçalho, enviar para adicionar um novo cabeçalho" #~ msgid "" #~ "Named branch \"%s\" already exists, last used in revision %d\n" #~ "Yes\t- Make commit restarting this named branch\n" #~ "No\t- Make commit without changing branch\n" #~ "Cancel - Cancel this commit" #~ msgstr "" #~ "Ramo com o nome \"%s\" já existe e foi usado na revisão %d\n" #~ "Sim\t- Fazer commit reiniciando o nome deste ramo\n" #~ "Não\t- Fazer commit sem modificar o ramo\n" #~ "Cancelar - Cancelar este commit" #~ msgid "Finished committing" #~ msgstr "Commit terminado" #~ msgid "Finished committing and pushing" #~ msgstr "Commit e envio terminados" #~ msgid "Bug Traq" #~ msgstr "Bug Traq" #~ msgid "Annotate Second Parent" #~ msgstr "Anotar segundo parente" #~ msgid "_Diff to Local" #~ msgstr "_Diff para Local" #~ msgid "Run Commit after init" #~ msgstr "Executar commit depois de init" #~ msgid "%s will be stripped" #~ msgstr "%s serão removidos" #~ msgid "Pushing changesets to revision %s..." #~ msgstr "A enviar changesets até a revisão %s..." #~ msgid "unable to strip away %d dirs from %s" #~ msgstr "não é possível descartar %d dirs de %s" #~ msgid "Subversion" #~ msgstr "Subversão" #~ msgid "No revisions matched search" #~ msgstr "Nenhuma revisão corresponde à sua pesquisa" #~ msgid "Changeset not found in current view" #~ msgstr "Changeset não encontrado na vista actual" #~ msgid "file copy of %s failed\n" #~ msgstr "cópia do ficheiro %s falhou\n" #~ msgid "removing backup file : %r\n" #~ msgstr "a remover ficheiro de backup: %r\n" #~ msgid "unable to clean temp directory: %s\n" #~ msgstr "não é possível limpar a psta temp: %s\n" #~ msgid "Patch branch finished" #~ msgstr "patch ao ramo terminado" #~ msgid "" #~ "Push to remote repository\n" #~ "%s\n" #~ "(creating new branches in remote if needed)?" #~ msgstr "" #~ "Enviar para repositório remoto\n" #~ "%s\n" #~ "(criar novos ramos se necessário)?" #~ msgid "Push new branch" #~ msgstr "Enviar novo ramo" #~ msgid "Pushing branch %s..." #~ msgstr "A enviar ramo %s..." #~ msgid "Finished pushing branch %s" #~ msgstr "Envio do ramo %s terminado" #~ msgid "Default Tab" #~ msgstr "Separador pré-definido" #~ msgid "Font" #~ msgstr "Tipo de letra" #~ msgid "" #~ "Create new named branch \"%s\" with this commit?\n" #~ "Yes\t- Start new branch with this commit\n" #~ "No\t- Make commit without branch change\n" #~ "Cancel - Cancel this commit" #~ msgstr "" #~ "Criar novo ramo com o nome \"%s\" com este commit?\n" #~ "Sim \t- Iniciar novo ramo com este commit\n" #~ "Não \t- Fazer o commit sem alteração do ramo\n" #~ "Cancelar - Cancelar este commit" #~ msgid "Starting Revision:" #~ msgstr "Revisão inicial:" #~ msgid "_Annotate First Parent" #~ msgstr "_Anotar o primeiro parente" #~ msgid "" #~ "** Please report this bug to http://bitbucket.org/tortoisehg/stable/" #~ "issues\n" #~ msgstr "" #~ "** Por favor envie este bug para http://bitbucket.org/tortoisehg/stable/" #~ "issues\n" #~ msgid "Please try again after the running operation is completed" #~ msgstr "Por favor, volte a tentar depois da operação em execução terminar" #~ msgid "Failed to preview, a bundle file unrelated to this repository" #~ msgstr "" #~ "Falha da pré-visualização de um pacote de ficheiro não relacionado com " #~ "este repositório" #~ msgid "Failed to preview, not a Mercurial bundle file" #~ msgstr "" #~ "Falha da pré-visualização, não é um pacote de ficheiro do Mercurial" #~ msgid "Push this Branch" #~ msgstr "Enviar este ramo" #~ msgid "Null changeset is not viewable" #~ msgstr "comjunto de alterações nulo, não é visível" #~ msgid "_Guess Rename..." #~ msgstr "_Adivinhar renomeação..." #~ msgid "Commit backout before merging with current working parent" #~ msgstr "Submeter backout antes de unir com o parente actual" #~ msgid "hunk %d already applied at line %d (fuzz %d)\n" #~ msgstr "hunk %d já aplicado na linha %d (fuzz %d)\n" #~ msgid "%d out of %d hunks FAILED -- saving rejects to file %s\n" #~ msgstr "%d de %d hunks FALHARAM -- a guardar rejeições para o ficheiro %s\n" #~ msgid "shelved file abandoned\n" #~ msgstr "Abandonado ficheiro arquivado\n" #~ msgid "delete of shelve backup failed" #~ msgstr "a eliminação do backup do arquivo falhou" #~ msgid "abandoning shelved file\n" #~ msgstr "A abandonar o ficheiro de arquivo\n" #~ msgid "bad shelve backup directory name" #~ msgstr "nome da directoria de arquivo errado" #~ msgid "_goto (update workdir)" #~ msgstr "_goto (actualizar workdir)" #~ msgid "invalid reorder operation: %s" #~ msgstr "operação de reordenamento inválida: %s" #~ msgid "series become inconsistent during reorder" #~ msgstr "a série ficou inconsistente durante a reordenação" #~ msgid "Uncommitted Local Changes" #~ msgstr "Alterações locais não submetidas" #~ msgid " - Select Preset -" #~ msgstr " - Seleccione destino -" #~ msgid "A new version of TortoiseHg is ready for download!" #~ msgstr "Nova versão do tortoiseHg pronta a transferir!" #~ msgid "abort: backup restore failed, %s\n" #~ msgstr "abortar: restauro do backup falhou, %s\n" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/pt_BR.po0000644000000000000000000123261514440352353016646 0ustar00rootroot# Portuguese translation for tortoisehg # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the tortoisehg package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2019-07-17 15:08+0000\n" "Last-Translator: Wagner Bruna \n" "Language-Team: Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Launchpad-Export-Date: 2019-07-18 05:41+0000\n" "X-Generator: Launchpad (build 19009)\n" msgid "TortoiseHg Overlay Icon Server" msgstr "Servidor de Ícones Sobrepostos do TortoiseHg" msgid "Exit" msgstr "Sair" msgid "About" msgstr "Sobre" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "Copyright 2008-2019 Steve Borho e outros" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "Vários ícones são cortesia dos projetos TortoiseSVN e Tango" msgid "You can visit our site here" msgstr "Você pode visitar nossa página aqui" msgid "&License" msgstr "&Licença" #, python-format msgid "version %s" msgstr "versão %s" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "com Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "Uma nova versão do TortoiseHg (%s) está disponível para download!" msgid "License" msgstr "Licença" msgid "= Working Directory Parent =" msgstr "= Pai do Diretório de Trabalho =" msgid "Directory of files" msgstr "Diretório de arquivos" msgid "Tar archives" msgstr "Arquivos tar" msgid "Uncompressed tar archive" msgstr "Arquivo tar não comprimido" msgid "Bzip2 tar archives" msgstr "Arquivos tar bzip2" msgid "Tar archive compressed using bzip2" msgstr "Arquivo tar comprimido com bzip2" msgid "Gzip tar archives" msgstr "Arquivos tar gzip" msgid "Tar archive compressed using gzip" msgstr "Arquivo tar comprimido com gzip" msgid "Zip archives" msgstr "Arquivos zip" msgid "Uncompressed zip archive" msgstr "Arquivo zip não comprimido" msgid "Zip archive compressed using deflate" msgstr "Arquivo zip comprimido usando deflate" msgid "Revision:" msgstr "Revisão:" msgid "All files in this revision" msgstr "Todos os arquivos nesta revisão" msgid "Only files modified/created in this revision" msgstr "Apenas arquivos criados ou modificados nesta revisão" msgid "Only files modified/created since:" msgstr "Apenas arquivos modificados/criados desde:" msgid "Archive Content:" msgstr "Conteúdo dos Arquivos:" msgid "Recurse into subrepositories" msgstr "Executa recursivamente em sub-repositórios" msgid "Browse..." msgstr "Procurar..." msgid "Destination path:" msgstr "Caminho de destino:" msgid "Archive types:" msgstr "Tipos de pacote:" msgid "Hg command:" msgstr "Comando hg:" msgid "Select Destination Folder" msgstr "Selecão da Pasta de Destino" msgid "Select Destination File" msgstr "Selecione Arquivo de Destino" msgid "All files (*)" msgstr "Todos os arquivos (*)" msgid "Duplicate Name" msgstr "Nome Duplicado" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "O destino \"%s\" é um arquivo existente!" msgid "Confirm Overwrite" msgstr "Confirmar sobrescrita" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" "O diretório \"%s\" não está vazio!\n" "\n" "Você deseja sobrescrevê-lo?" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" "O arquivo \"%s\" já existe!\n" "\n" "Deseja sobrescrevê-lo?" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "O destino \"%s\" é um diretório existente!" #, python-format msgid "Archive - %s" msgstr "Criar Pacote - %s" msgid "&Archive" msgstr "Empacot&ar" msgid "Backout requires a parent revision" msgstr "Backout exige uma revisão pai" msgid "Cannot backout change on a different branch" msgstr "Não é possível anular uma mudança em um ramo diferente" #, python-format msgid "Backout - %s" msgstr "Backout - %s" msgid "Prepare to backout" msgstr "Preparação para o backout" msgid "Verify backout revision and ensure your working directory is clean." msgstr "" "Verifique a revisão a ser anulada e garanta que seu diretório de trabalho " "esteja limpo." msgid "Backing out a parent revision is a single step operation" msgstr "Anular uma revisão pai é uma operação de um único passo" msgid "Backout revision" msgstr "Revisão a ser anulada" msgid "Not a head, backout will create a new head!" msgstr "Não é uma cabeça, o backout criará uma nova cabeça!" msgid "Current local revision" msgstr "Revisão local atual" msgid "Working directory status" msgstr "Status do diretório de trabalho" msgid "Checking..." msgstr "Verificando..." msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" "Antes de fazer o backout, você deve consolidar, adiar para um patch, ou descartar as mudanças locais." msgid "Automatically resolve merge conflicts where possible" msgstr "Resolver conflitos de mesclagem automaticamente, se possível" msgid "Uncommitted local changes are detected" msgstr "Detectadas mudanças locais não consolidadas" msgid "Clean" msgstr "Limpo" msgid "Backing out, then merging..." msgstr "Anulando, e em seguida mesclando..." msgid "All conflicting files will be marked unresolved." msgstr "Todos os arquivos conflitantes serão marcados como não-resolvidos." msgid "Automatically advance to next page when backout and merge are complete." msgstr "" "Avançar automaticamente para a próxima página ao completar o backout e o " "merge." #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" "%d arquivos têm conflitos de mesclagem que devem ser resolvidos" msgid "No merge conflicts, ready to commit" msgstr "Nenhum conflito de mesclagem, pronto para consolidar" msgid "Commit backout and merge results" msgstr "Consolide a anulação e mescle os resultados" msgid "Parents" msgstr "Pais" msgid "Working Directory" msgstr "Diretório de Trabalho" msgid "Working Directory (merged)" msgstr "Diretório de Trabalho (mesclado)" msgid "Commit message" msgstr "Mensagem de consolidação" msgid "Skip final confirmation page, close after commit." msgstr "Omite a página de confirmação final, fecha após o commit." msgid "Backed out changeset: " msgstr "Revisão anulada: " msgid "Confirm Discard Message" msgstr "Confirmar Descarte da Mensagem" msgid "Discard current backout message?" msgstr "Descartar mensagem de anulação atual?" msgid "Use English backout message" msgstr "Use mensagem em inglês para a anulação" msgid "Backing out and committing..." msgstr "Anulando e consolidando..." msgid "Please wait while making backout." msgstr "Por favor aguarde enquanto o backout é realizado." msgid "Committing..." msgstr "Consolidando..." msgid "Please wait while committing merged files." msgstr "Por favor aguarde enquanto os arquivos mesclados são consolidados." msgid "Finished" msgstr "Finalizado" msgid "Backout changeset" msgstr "Revisão a ser anulada" #, python-format msgid "Bisect - %s" msgstr "Bissecção - %s" msgid "Accept" msgstr "Aceitar" msgid "Known good revision:" msgstr "Revisão que se sabe ser boa:" msgid "Known bad revision:" msgstr "Revisão que se sabe ser ruim:" msgid "Discard local changes (revert --all)" msgstr "Descarta mudanças locais (revert --all)" msgid "Revision is &Good" msgstr "Revisão é B&oa" msgid "Revision is &Bad" msgstr "Revisão é &Ruim" msgid "&Skip this Revision" msgstr "O&mite esta Revisão" msgid "Close" msgstr "Fechar" msgid "Error encountered." msgstr "Erro encontrado." msgid "Culprit found." msgstr "Culpado encontrado." msgid "Revision" msgstr "Revisão" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "Teste esta revisão e informe o resultado. (boa/ruim/desconsiderada)" #, python-format msgid "%s (hint: %s)" msgstr "%s (dica: %s)" msgid "Bookmark:" msgstr "Marcador:" msgid "New Name:" msgstr "Novo Nome:" msgid "Activate:" msgstr "Ativar:" msgid "&Add" msgstr "&Adicionar" msgid "Re&name" msgstr "Re&nomear" msgid "&Remove" msgstr "&Remover" msgid "&Move" msgstr "&Mover" #, python-format msgid "Bookmark - %s" msgstr "Marcador - %s" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "Já existe um marcador com o nome '%s'" #, python-format msgid "Bookmark '%s' has been added" msgstr "O marcador '%s' foi adicionado" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "Não existe um marcador de nome \"%s\"" #, python-format msgid "Bookmark '%s' has been moved" msgstr "O marcador \"%s\" foi movido" #, python-format msgid "Bookmark '%s' does not exist" msgstr "O marcador '%s' não existe" #, python-format msgid "Bookmark '%s' has been removed" msgstr "O marcador '%s' foi removido" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "O marcador '%s' foi renomeado para '%s'" msgid "TortoiseHg Bookmark Sync" msgstr "TortoiseHg Sincronização de Marcadores" msgid "Outgoing Bookmarks" msgstr "Marcadores a Serem Enviados" msgid "&Push Bookmark" msgstr "&Enviar Marcador" msgid "&Remove Bookmark" msgstr "&Remove Marcador" msgid "Incoming Bookmarks" msgstr "Marcadores a Serem Recebidos" msgid "P&ull Bookmark" msgstr "Re&ceber Marcador" msgid "R&emove Bookmark" msgstr "R&emover Marcador" #, python-format msgid "Pushed local bookmark: %s" msgstr "Marcador local enviado: %s" #, python-format msgid "Pulled remote bookmark: %s" msgstr "Marcador remoto recebido: %s" #, python-format msgid "Removed remote bookmark: %s" msgstr "Marcador remoto removido: %s" #, python-format msgid "Removed local bookmark: %s" msgstr "Marcador local removido: %s" #, python-format msgid "%s - branch operation" msgstr "%s - mudança de ramo nomeado" msgid "Select branch of merge commit" msgstr "Selecione o ramo para consolidação da mesclagem" msgid "Changes take effect on next commit" msgstr "As alterações terão efeito na próxima consolidação" msgid "No branch changes" msgstr "Sem alterações no ramo" msgid "Open a new named branch" msgstr "Abrir um novo ramo nomeado" msgid "Close current branch" msgstr "Fecha o ramo atual" #, python-format msgid "Please report this bug to our bug tracker" msgstr "" "Por favor informe sobre este problema em nosso bug tracker" msgid "Checking for updates..." msgstr "Verificando atualizações..." msgid "Copy" msgstr "Copiar" msgid "Quit" msgstr "Fechar" msgid "TortoiseHg Bug Report" msgstr "Relatório de defeitos do TortoiseHg" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "Recomenda-se atualizar para uma versão mais recente do TortoiseHg." msgid "Your TortoiseHg is up to date." msgstr "Esta versão do TortoiseHg está atualizada." msgid "Save error report to" msgstr "Salvar relatório de erros em" msgid "Text files (*.txt)" msgstr "Arquivos de texto (*.txt)" msgid "Error writing file" msgstr "Erro ao gravar o arquivo" msgid "TortoiseHg Error" msgstr "Erro do TortoiseHg" msgid "" "If you still have trouble, please file a bug report." msgstr "" "se você ainda tiver problemas, por favor envie um bug " "report." msgid "Visual Diff" msgstr "Diferença visual" msgid "View file changes in external diff tool" msgstr "Visualiza mudanças de arquivo em uma ferramenta de diff externa" msgid "Edit Local" msgstr "Editar Arquivo Local" msgid "Edit current file in working copy" msgstr "Edita o arquivo atual na cópia de trabalho" msgid "Revert to Revision" msgstr "Reverte para Revisão" msgid "Revert file(s) to contents at this revision" msgstr "Reverte os arquivos para seus conteúdos nesta revisão" msgid "Patch failed to apply" msgstr "A aplicação do patch falhou" msgid "Manually resolve rejected chunks?" msgstr "Resolver manualmente os trechos rejeitados?" msgid "Edit patched file and rejects?" msgstr "Editar o arquivo de patch e rejeitados?" msgid "No deletable chunks" msgstr "Nenhum trecho removível" msgid "Completely remove file from patch?" msgstr "Remover completamente o arquivo do patch?" msgid "Revert all file changes?" msgstr "Reverter todas as mudanças do arquivo?" msgid "No chunks remain" msgstr "Não restou nenhum trecho" msgid "file has been deleted, refresh" msgstr "o arquivo foi apagado, releia" msgid "file has been modified, refresh" msgstr "o arquivo foi modificado, releia" msgid "Unable to merge chunks" msgstr "Incapaz de mesclar trechos" msgid "Add or remove patches must be merged in the working directory" msgstr "" "Patches adicionados ou removidos devem ser mesclados no diretório de trabalho" msgid "Unable to remove" msgstr "Incapaz de remover" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" "Incapaz de remover o arquivo %s,\n" "permissão negada" msgctxt "files" msgid "All" msgstr "Todos" msgctxt "files" msgid "None" msgstr "Nenhum" msgid "Toggle display of text search bar" msgstr "Alternar exibição da barra de busca de texto" msgid "Diff Toolbar" msgstr "Barra de Diff" #, python-format msgid "Chunks selected: %d / %d" msgstr "Trechos selecionados: %d / %d" msgid "Please wait while the file is opened ..." msgstr "Por favor aguarde enquanto o arquivo é aberto ..." msgid "Source:" msgstr "Origem:" msgid "Destination:" msgstr "Destino:" msgid "Options" msgstr "Opções" msgid "Clone to revision:" msgstr "Clonar até a revisão:" msgid "A revision identifier, bookmark, tag or branch name" msgstr "Um identificador de revisão ou nome de marcador, etiqueta ou ramo" msgid "Do not update the new working directory" msgstr "Não atualizar o novo diretório de trabalho" msgid "Use pull protocol to copy metadata" msgstr "Usar o protocolo pull para copiar metadados" msgid "Clone with minimal processing" msgstr "Clona com processamento mínimo" msgid "Include patch queue" msgstr "Incluir fila de patches" msgid "Use proxy server" msgstr "Usar servidor proxy" msgid "Do not verify host certificate" msgstr "Não verificar o certificado do host" msgid "Remote command:" msgstr "Comando remoto:" msgid "Use largefiles" msgstr "Usar largefiles" msgid "Start revision:" msgstr "Revisão inicial:" msgid "Select source repository" msgstr "Selecione repositório de origem" msgid "Select destination repository" msgstr "Selecione repositório de destino" msgid "Select patch folder" msgstr "Selecionar pasta de patches" #, python-format msgid "Clone - %s" msgstr "Clonar - %s" msgid "&Clone" msgstr "&Clonar" msgid "failed to start command\n" msgstr "falha ao iniciar comando\n" msgid "error while running command\n" msgstr "erro ao executar comando\n" #, python-format msgid "process exited unexpectedly with code %d" msgstr "o processo terminou inesperadamente com código %d" #, python-format msgid "failed to encode command: %s" msgstr "falha ao codificar comando: %s" #, python-format msgid "timed out while reading: %r..." msgstr "tempo expirado ao ler: %r..." msgid "timed out waiting for message" msgstr "tempo expirado esperando por mensagem" #, python-format msgid "unexpected response on required channel %r" msgstr "resposta inesperada no canal exigido %r" #, python-format msgid "invalid \"hello\" message: %r" msgstr "mensagem \"hello\" inválida: %r" msgid "no \"runcommand\" capability" msgstr "não há funcionalidade \"runcommand\"" #, python-format msgid "corrupted command result: %r" msgstr "resultado de comando corrompido: %r" msgid "error while reading from data input" msgstr "erro ao ler da entrada de dados" msgid "asynchronous read is not implement yet" msgstr "a leitura assíncrona ainda não está implementada" #, python-format msgid "failed to encode input: %s" msgstr "falha ao codificar entrada: %s" msgid "Terminated by user" msgstr "Terminado pelo usuário" #, python-format msgid "[command terminated by user %s]" msgstr "[comando terminado pelo usuário %s]" #, python-format msgid "[command interrupted %s]" msgstr "[comando interrompido %s]" #, python-format msgid "[command returned code %d %%s]" msgstr "[o comando devolveu o código %d %%s]" #, python-format msgid "[command completed successfully %s]" msgstr "[o comando completou com sucesso %s]" msgid "Running..." msgstr "Executando..." msgid "Failed!" msgstr "Falhou!" msgid "Clea&r Log" msgstr "Limpa&r Log" msgid "TortoiseHg Prompt" msgstr "Prompt do TortoiseHg" msgid "Show Detail" msgstr "Mostrar Detalhes" msgid "Hide Detail" msgstr "Ocultar Detalhes" msgid "Confirm Exit" msgstr "Confirmar Saída" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" "Um comando do Mercurial ainda está em execução.\n" "Tem certeza de que deseja encerrar?" msgid "&Run" msgstr "Executa&r" msgid "TortoiseHg Command Dialog" msgstr "Janela de Comandos do TortoiseHg" msgid "Command Error" msgstr "Erro no Comando" #, python-format msgid "[Code: %d]" msgstr "[Código: %d]" msgid "Merge" msgstr "Mesclar" #, python-format msgid "Merge with %s" msgstr "Mesclagem com %s" msgid "Patch Name Required" msgstr "Exigido Nome de Patch" msgid "You must enter a patch name" msgstr "Você deve colocar um nome de patch" msgctxt "start progress" msgid "Commit" msgstr "Commit" msgctxt "start progress" msgid "MQ Action" msgstr "Ação MQ" msgctxt "start progress" msgid "Rollback" msgstr "Rollback" msgid "Commit Dialog Toolbar" msgstr "Barra de Diálogo de Commit" msgid "Branch: " msgstr "Ramo: " msgid "Copy message" msgstr "Copiar mensagem" msgid "Copy one of the recent commit messages" msgstr "Copia uma das mensagens de consolidação recentes" msgid "Show Issues" msgstr "Mostrar Tíquetes" msgid "Please wait..." msgstr "Por favor aguarde..." #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "Falha ao carregar rastreador de tíquetes '%s': %s" msgid "Issue Tracker" msgstr "Rastreador de Tíquetes" msgid "Show Issues..." msgstr "Mostrar Tíquetes..." msgid "Stop" msgstr "Parar" msgid "### patch name ###" msgstr "### nome do patch ###" msgid "Commit changes" msgstr "Consolidar mudanças" msgid "Commit" msgstr "Commit (consolidar)" msgid "Amend current revision" msgstr "Emenda revisão atual" msgid "Amend" msgstr "Emendar" msgid "Create a new patch" msgstr "Cria um novo patch" msgid "QNew" msgstr "QNew" msgid "Refresh current patch" msgstr "Renova o patch atual" msgid "QRefresh" msgstr "QRefresh" msgid "Confirm Branch Change" msgstr "Confirmação de Mudança de Ramo" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "" "O ramo nomeado \"%s\" já existe, e foi usado pela última vez na revisão %d\n" msgid "Restart &Branch" msgstr "Reiniciar &Ramo" msgid "&Commit to current branch" msgstr "&Consolida no ramo atual" msgid "Cancel" msgstr "Cancelar" msgid "Confirm New Branch" msgstr "Confirmar Novo Ramo" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "Criar novo ramo nomeado \"%s\" nesta revisão?\n" msgid "Create &Branch" msgstr "Criar &Ramo" msgid "Close Branch: " msgstr "Fechar Ramo: " msgid "New Branch: " msgstr "Novo Ramo: " #, python-format msgid "Selected Options: %s" msgstr "Opções Selecionadas: %s" msgid "Parent:" msgstr "Pai:" msgid "Patch name:" msgstr "Nome do patch:" #, python-format msgid "Close %s branch" msgstr "Fecha o ramo %s" #, python-format msgid "Rollback commit to revision %d" msgstr "Desfaz último commit e volta à revisão %d" msgid "Confirm Undo" msgstr "Confirmar Desfazimento" msgid "Discard current commit message?" msgstr "Descartar mensagem de consolidação atual?" msgid "Message Translation Failure" msgstr "Falha em Tradução de Mensagem" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" "Incapaz de traduzir uma mensagem para a codificação local.\n" "Considere ajustar a variável de ambiente HGENCODING.\n" "\n" "Substituir caracteres não traduzíveis por \"?\"?\n" msgid "&Replace" msgstr "Substitui&r" msgid "Nothing Committed" msgstr "Nada Consolidado" msgid "Please enter commit message" msgstr "Por favor forneça a mensagem de consolidação" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" "Nenhum link para um tíquete foi encontrado na mensagem de consolidação. A " "mensagem deve conter um link para um tíquete. Configure isto na seção de " "configuração 'Rastreamento de Tíquetes'." msgid "No files checked" msgstr "Nenhum arquivo marcado" msgid "No modified files checkmarked for commit" msgstr "Nenhum arquivo modificado marcado para ser consolidado" msgid "Confirm Add" msgstr "Confirmar Adição" msgid "Add selected untracked files?" msgstr "Adicionar os arquivos não-rastreados marcados?" msgid "Confirm Remove" msgstr "Confirmar Remoção" msgid "Remove selected deleted files?" msgstr "Remover os arquivos apagados marcados?" msgid "Nothing changed." msgstr "Nada alterado." msgctxt "window title" msgid "Commit" msgstr "Consolidação" #, python-format msgid "%s - commit options" msgstr "%s - opções de consolidação" msgid "Set username:" msgstr "Nome de usuário" msgid "Save in Repo" msgstr "Salva (Repositório)" msgid "Save Global" msgstr "Salva (Global)" msgid "Set Date:" msgstr "Definir Data:" msgid "Update" msgstr "Atualizar" msgid "Push After Commit:" msgstr "Push Após Commit:" msgid "Auto Includes:" msgstr "Auto Incluir:" msgid "Recurse into subrepositories (--subrepos)" msgstr "Executar recursivamente em sub-repositórios (--subrepos)" msgid "Unable to save username" msgstr "Incapaz de salvar nome de usuário" msgid "Iniparse must be installed." msgstr "O pacote iniparse deve estar instalado." msgid "Unable to write configuration file" msgstr "Não foi possível escrever o arquivo de configuração" msgid "Unable to save after commit push" msgstr "Incapaz de salvar ação de push após commit" msgid "Unable to save auto include list" msgstr "Incapaz de salvar lista de auto inclusão" msgid "Unable to save recurse in subrepos." msgstr "Incapaz de salvar opção de recursão nos sub-repositórios." msgid "Invalid date format" msgstr "Formato de data inválido" msgid "No username configured" msgstr "Nenhum nome de usuário configurado" #, python-format msgid "%s - commit" msgstr "%s - consolidação" msgid "TortoiseHg Commit" msgstr "Consolidação do TortoiseHg" msgid "Are you sure that you want to cancel the commit operation?" msgstr "Você tem certeza de que deseja cancelar a operação de commit?" msgid "Compress changesets up to and including" msgstr "Comprime revisões até (e inclusive)" msgid "Onto destination" msgstr "Para o destino" msgid "Compress" msgstr "Comprimir" #, python-format msgid "Compress - %s" msgstr "Compressão - %s" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" "Antes da compressão, você deve consolidar, " "armazenar na shelve ou descartar as mudanças." msgid "You may continue the compress" msgstr "Você pode continuar a compressão" msgid "Changes have been moved, you must now commit" msgstr "As mudanças foram movidas, você deve consolidá-las" msgctxt "action button" msgid "Commit" msgstr "Commit (consolidar)" msgid "Compress is complete, old history untouched" msgstr "A compressão foi completada; o histórico antigo foi preservado" msgid "must be specified repository" msgstr "o repositório deve ser especificado" msgid "must be specified 'type' in style" msgstr "'type' deve ser especificado no estilo" msgid "Git Commit:" msgstr "Commit Git:" msgid "Summary:" msgstr "Sumário:" msgid "User:" msgstr "Usuário:" msgid "Date:" msgstr "Data:" msgid "Age:" msgstr "Idade:" msgid "Branch:" msgstr "Ramo:" msgid "Close:" msgstr "Fechar:" msgid "Tags:" msgstr "Etiquetas:" msgid "Graft:" msgstr "Enxerto:" msgid "Transplant:" msgstr "Transplante:" msgid "Obsolete state:" msgstr "Estado obsoleto:" msgid "Perforce:" msgstr "Perforce:" msgid "Subversion:" msgstr "Subversion:" msgid "Converted From:" msgstr "Convertida De:" msgid "Original Parent:" msgstr "Pai Original:" msgid "No items to display" msgstr "Nenhum item para mostrar" msgid "Use compact view" msgstr "Exibir em modo compacto" msgid "Patch:" msgstr "Patch:" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "Mostrando %(count)d de %(total)d itens" msgid "Select a GUI location to edit:" msgstr "Selecione um local da GUI para editar:" msgid "Select the toolbar or menu to change" msgstr "Selecione a barra de ferramentas ou menu a ser modificado" msgid "Tools shown on selected location" msgstr "Ferramentas exibidas no local selecionado" msgid "Delete from list" msgstr "Remover da lista" msgid "Add to list" msgstr "Adicionar à lista" msgid "Add separator" msgstr "Adicionar separador" msgid "List of all tools" msgstr "Lista de todas as ferramentas" msgid "New Tool ..." msgstr "Nova Ferramenta..." msgid "Edit Tool ..." msgstr "Editar Ferramenta..." msgid "Delete Tool" msgstr "Remover Ferramenta" msgid "Type" msgstr "Tipo" msgid "Name" msgstr "Nome" msgid "Command" msgstr "Comando" msgid "New hook" msgstr "Novo gancho" msgid "Edit hook" msgstr "Editar gancho" msgid "Delete hook" msgstr "Apagar gancho" msgid "Replace existing hook?" msgstr "Substituir gancho existente?" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" "Já existe um gancho %s.%s .\n" "\n" "Você deseja substituí-lo?" msgid "OK" msgstr "OK" msgid "Missing information" msgstr "Faltam informações" msgid "All items" msgstr "Todos os itens" msgid "Working directory" msgstr "Diretório de trabalho" msgid "All revisions" msgstr "Todas as revisões" msgid "All contexts" msgstr "Todos os contextos" msgid "Fixed revisions" msgstr "Revisões fixas" msgid "Applied patches" msgstr "Patches aplicados" msgid "Applied patches or qparent" msgstr "Patches aplicados ou qparent" msgid "" msgstr "<ícone padrão>" msgid "Configure Custom Tool" msgstr "Configurar Ferramenta Personalizada" msgid "Tool name" msgstr "Nome da ferramenta" msgid "The tool name. It cannot contain spaces." msgstr "O nome da ferramenta. Não pode conter espaços." #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" "O comando que será executado.\n" "Para executar um comando do Mercurial use \"hg\" (e não \"hg.exe\") como " "executável.\n" "Você pode usar diversas {VARIABLES} para compor seu comando.\n" "Variáveis comuns:\n" "- {ROOT}: O caminho para o raiz do repositório atual.\n" "- {REV} / {REVID}: Respectivamente, o número ou o ID hexadecimal da revisão " "selecionada.\n" "- {SELECTEDFILES}: Os arquivos selecionados pelo usuário na lista de " "arquivos dos detalhes de revisão.\n" "- {FILES}: A lista de arquivos modificados pelas revisões selecionadas.\n" "- {ALLFILES}: Todos os arquivos rastreados pelo Mercurial nas revisões " "selecionadas.\n" "Variáveis disponíveis ao selecionar um par de revisões:\n" "- {REV_A} / {REVID_A}: O número / id hexadecimal da primeira revisão " "selecionada, respectivamente.\n" "- {REV_B} / {REVID_B}: O número / id hexadecimal da segunda revisão " "selecionada, respectivamente.\n" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" "O diretório no qual o comando será executado.\n" "Se não estiver definido, será usado o raiz do repositório atual.\n" "Você pode usar as mesmas {VARIÁVEIS} da configuração \\\"Command\\\".\n" msgid "Tool label" msgstr "Rótulo da ferramenta" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" "O rótulo da ferramenta, que será mostrado no menu de contexto de revisões.\n" "Se nenhum rótulo estiver definido, o nome da ferramenta será usado.\n" "Se nenhuma tooltip estiver definida, o rótulo será usado como tooltip." msgid "Tooltip" msgstr "Tooltip" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" "A tooltip que será mostrada no botão da ferramenta.\n" "Ela só será exibida se o próprio botão da ferramenta for exibido\n" "na barra de ferramentas da workbench." msgid "Icon" msgstr "Ícone" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" "O ícone da ferramenta.\n" "Você pode usar o nome de qualquer ícone do TortoiseHg\n" "(como clone, add, remove, sync, thg-logo, hg-update, etc)\n" "ou o caminho absoluto para um arquivo de ícone no sistema\n" "de arquivos." msgid "On repowidget, show for" msgstr "No repowidget, mostrar para" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" "Para quais tipos de revisão a ferramenta será habilitada\n" "Só é levado em conta quando a ferramenta for mostrada no\n" "menu de contexto da revisão selecionada." msgid "Show Output Log" msgstr "Mostrar Log de Saída" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" "Se habilitado, mostra automaticamente o log de saída ao executar o comando.\n" "Padrão: False." msgid "You must set a tool name." msgstr "Você deve definir um nome de ferramenta." msgid "The tool name cannot have any spaces in it." msgstr "O nome da ferramenta não pode conter espaços." msgid "You must set a command to run." msgstr "Você deve definir um comando a ser executado." msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" "Executado após um changegroup ser adicionado em operações push, pull ou " "unbundle. O ID da primeira revisão nova é passado em $HG_NODE, e o " "da última em $HG_NODE_LAST. A URL de origem das mudanças é passada " "em $HG_URL." msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" "Executado após uma revisão ser criada no repositório local. O ID da nova " "revisão é passado em $HG_NODE. Os IDs das revisões pais são " "passados em $HG_PARENT1 e $HG_PARENT2." msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" "Executado após uma revisão ser trazida para o repositório local em uma " "operação pull, push ou unbundle. O ID da nova revisão é passado em " "$HG_NODE. A URL de origem da revisão é passada em $HG_URL." msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" "Executado após o envio de mudanças do repositório local para algum outro. O " "ID da primeira revisão enviada é passado em $HG_NODE. A origem da " "operação é passada em $HG_SOURCE." msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" "Executado antes de um changegroup ser adicionado em operações push, pull ou " "unbundle. O status de saída 0 permite que o changegroup seja processado. " "Status diferentes de zero farão com que a operação push, pull ou unbundle " "falhe. A URL de origem das mudanças é passada em $HG_URL." msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" "Executado antes de iniciar um commit local. O status de saída 0 permite que " "o commit seja realizado. Status diferentes de zero fazem com que o commit " "falhe. Os IDs das revisões pais são passados em $HG_PARENT1 e " "$HG_PARENT2." msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" "Executado antes de listar pushkeys (como marcadores) do repositório. Status " "de saída diferente de zero causará uma falha. O espaço de nomes de chave é " "passado em $HG_NAMESPACE." msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" "Executado antes da coleta de mudanças a serem enviadas do repositório local " "para algum outro. Status de saída diferentes de zero causarão uma falha. " "Desta forma, você pode impedir operações pull por HTTP ou SSH. Também " "previne comandos pull, push (de saída) ou bundle locais, embora esta " "prevenção não seja efetiva, já que os arquivos locais ainda poderão ser " "copiados. A operação de origem é passada em $HG_SOURCE. Se esta " "tiver o valor \"serve\", a operação ocorre através de SSH ou HTTP envolvendo " "um repositório remoto. Se tiver os valores \"push\", \"pull\" ou \"bundle\", " "a operação lida com um outro repositório no mesmo sistema." msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" "Executado antes de uma pushkey (como um marcador) ser adicionada ao " "repositório. Status de saída diferentes de zero farão com que a chave seja " "rejeitada. O espaço de nomes de chave é passado em $HG_NAMESPACE, a " "chave é passada em $HG_KEY, o valor antigo (se houver) é passado em " "$HG_OLD, e o novo valor é passado em $HG_NEW." msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" "Executado antes da criação de uma etiqueta. O status de saída 0 permite que " "a etiqueta seja criada. Status de saída diferentes de 0 causarão uma falha " "do comando. O ID da revisão a ser etiquetada é passado em $HG_NODE. " "O nome da etiqueta é passado em $HG_TAG. Uma etiqueta local é " "indicada por $HG_LOCAL=1; uma global, por $HG_LOCAL=0." msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" "Executado após um changegroup ser adicionado em uma operação push, pull ou " "unbundle, mas antes da transação ser completada. O changegroup é visível " "para o programa do gancho. Isto permite que as novas mudanças sejam " "validadas antes de serem aceitas. O ID da primeira nova revisão é passado em " "$HG_NODE e o da última em $HG_NODE_LAST. O status de saída " "0 permite que a transação seja completada. Status de saída diferentes de 0 " "farão com que a transação seja desfeita, e a operação push, pull ou unbundle " "falhará. A URL de origem das revisões é passada em $HG_URL." msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" "Executado após uma revisão ser criada mas antes da transação ser completada. " "A revisão é visível para o programa do gancho. Isto permite que as novas " "mudanças e a mensagem de consolidação sejam validadas. O status de saída 0 " "permite que a transação seja completada. Status de saída diferentes de 0 " "farão com que a transação seja desfeita. O ID da revisão é passado em " "$HG_NODE. Os IDs das revisões pais são passados em $HG_PARENT1 " "e $HG_PARENT2." msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" "Executado antes de uma atualização do diretório de trabalho. O status de " "saída 0 permitirá a atualização. Status de saída diferentes de 0 impedirão a " "atualização. O ID de revisão do novo primeiro pai é passado em " "$HG_PARENT1. No caso de uma mesclagem, o ID do novo segundo pai será " "passado em $HG_PARENT2." msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" "Executado após listar pushkeys (como marcadores) no repositório. O espaço de " "nomes de chave é passado em $HG_NAMESPACE. $HG_VALUES é um " "dicionário contendo as chaves e valores." msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" "Executado após uma pushkey (como um marcador) ser adicionado ao repositório. " "O espaço de nomes de chave é passado em $HG_NAMESPACE, a chave é " "passada em $HG_KEY, o valor antigo (se houver) é passado em " "$HG_OLD, e o novo valor é passado em $HG_NEW." msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" "Executado após a criação de uma etiqueta. O ID da revisão etiquetada é " "passado em $HG_NODE. O nome da etiqueta é passado em $HG_TAG. Uma etiqueta local é indicada por $HG_LOCAL=1; uma global, por " "$HG_LOCAL=0." msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" "Executado após uma atualização do diretório de trabalho. O ID de revisão do " "novo primeiro pai é passado em $HG_PARENT1. No caso de uma " "mesclagem, o ID do novo segundo pai será passado em $HG_PARENT2. Se " "a atualização tiver sucesso, $HG_ERROR=0. Se a atualização falhar " "(por exemplo, por apresentar conflitos não resolvidos), $HG_ERROR=1." msgid "Configure Hook" msgstr "Configurar Gancho" msgid "Hook type" msgstr "Tipo de gancho" msgid "Select when your command will be run" msgstr "Selecione em que momento seu comando será executado" msgid "The hook name. It cannot contain spaces." msgstr "O nome do gancho (não pode conter espaços)" msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" "O comando que será executado.\n" "Para executar uma função python coloque \"python:\" antes do comando.\n" msgid "You must set a valid hook type." msgstr "Você deve selecionar um tipo de gancho válido." msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "" "O nome do gancho não pode conter espaços, tabulações ou caracteres '='." msgid "Console" msgstr "Console" msgid "File &History / Annotate" msgstr "&Histórico do Arquivo / Annotate" msgid "Show the history of the selected file" msgstr "Exibe o histórico do arquivo selecionado" msgid "Co&mpare File Revisions" msgstr "Co&mparar Revisões de Arquivo" msgid "Compare revisions of the selected file" msgstr "Compara revisões do arquivo selecionado" msgid "Filter Histor&y" msgstr "Filtrar &Histórico" msgid "Query about changesets affecting the selected files" msgstr "Consulta revisões que afetam os arquivos selecionados" msgid "Diff &Changeset to Parent" msgstr "Diff da &Revisão com Pai" msgid "Diff Changeset to Loc&al" msgstr "Diff da Revisão com &Local" msgid "&Diff to Parent" msgstr "&Diff com o Pai" msgid "Diff to &Local" msgstr "Diff com &Local" msgid "View changes to current in external diff tool" msgstr "" "Visualiza diferenças com o estado atual em uma ferramenta de diff externa" msgid "&View at Revision" msgstr "&Ver na Revisão" msgid "View file as it appeared at this revision" msgstr "Visualiza o conteúdo do arquivo correspondente a esta revisão" msgid "&Save at Revision..." msgstr "&Salvar na Revisão..." msgid "Save file as it appeared at this revision" msgstr "Salva o arquivo com o conteúdo que possuía na revisão" msgid "Save file to" msgstr "Salvar arquivo em" msgid "&Edit Local" msgstr "&Editar Local" msgid "&Open Local" msgstr "Abrir L&ocal" msgid "E&xplore Local" msgstr "E&xplorar Local" msgid "Open parent folder of current file in the system file manager" msgstr "" "Abre o diretório pai do arquivo atual no gerenciador de arquivos do sistema" msgid "&Copy Patch" msgstr "&Copiar Patch" msgid "Copy &Path" msgstr "Co&piar Caminho" msgid "Copy full path of file(s) to the clipboard" msgstr "Copia para a área de transferência o caminho completo dos arquivos" msgid "&Revert to Revision..." msgstr "&Reverter para Revisão..." msgid "Open S&ubrepository" msgstr "Abrir S&ub-Repositório" msgid "Open the selected subrepository" msgstr "Abre o sub-repositório selecionado" msgid "E&xplore Folder" msgstr "E&xplorar Pasta" msgid "Open the selected folder in the system file manager" msgstr "Abre a pasta selecionada no gerenciador de arquivos do sistema" msgid "Open &Terminal" msgstr "Abrir &Terminal" msgid "Open a shell terminal in the selected folder" msgstr "Abre um terminal de shell na pasta selecionada" msgid "Custom Tools" msgstr "Ferramentas Personalizadas" msgid "Diff &Local" msgstr "Diff &Local" msgid "&View Missing" msgstr "&Ver Faltando" msgid "View O&ther" msgstr "Ver Ou&tro" msgid "Add &Largefiles..." msgstr "Adiciona &Largefiles..." msgid "&Forget" msgstr "&Esquecer" msgid "&Delete Unversioned..." msgstr "&Apagar Não Versionados..." msgid "Confirm Delete Unversioned" msgstr "Confirmar Remoção de Não-Versionados" msgid "Delete the following unversioned files?" msgstr "Remover os seguintes arquivos não-versionados?" msgid "&Delete" msgstr "E&xcluir" msgid "Re&move Versioned" msgstr "Re&mover Versionado" msgid "&Revert..." msgstr "&Reverter..." msgid "Uncommited merge - please select a parent revision" msgstr "Mesclagem não consolidada - por favor selecione uma revisão pai" msgid "Revert files to local or other parent?" msgstr "Reverter arquivos para a revisão local ou para o outro pai?" msgid "&Local" msgstr "&Local" msgid "&Other" msgstr "&Outro" msgid "Confirm Revert" msgstr "Confirmar Reversão" msgid "Revert local file changes?" msgstr "Reverter mudanças locais dos arquivos?" msgid "&Revert with backup" msgstr "&Reverter com backup" msgid "&Discard changes" msgstr "&Descartar mudanças" msgid "Revert the following files?" msgstr "Reverter os seguintes arquivos?" msgid "&Revert" msgstr "&Reverter" msgid "&Copy..." msgstr "&Copiar..." msgid "Re&name..." msgstr "Re&nomear..." msgid "&Ignore..." msgstr "&Ignorar..." msgid "Edit Re&jects" msgstr "Editar Re&jeitados" msgid "Manually resolve rejected patch chunks" msgstr "Resolve manualmente trechos de patches rejeitados" msgid "De&tect Renames..." msgstr "De&tectar Renomeações..." msgid "&Mark Resolved" msgstr "Marcar como &Resolvido" msgid "&Mark Unresolved" msgstr "Marcar como &Não Resolvido" msgid "Restart Mer&ge" msgstr "Reiniciar Mescla&gem" msgid "Was renamed from" msgstr "Foi renomeado de" msgid "Restart Merge &with" msgstr "Reiniciar Mesclagem &Com" msgid "Display the file anyway" msgstr "Mostrar o arquivo de qualquer maneira" msgid "Diff not displayed: " msgstr "Diff não exibido: " #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" "O arquivo é maior que o tamanho máximo especificado.\n" "maxdiff = %s KB" msgid "File is binary" msgstr "O arquivo é binário" msgid "File may be binary (maximum line length exceeded)" msgstr "O arquivo pode ser binário (uma linha excedeu o comprimento máximo)" msgid "File or diffs not displayed: " msgstr "Arquivo ou diffs não mostrados: " msgid " (was added)" msgstr " (foi adicionado)" #, python-format msgid " (copied from %s)" msgstr " (copiado de %s)" #, python-format msgid " (renamed from %s)" msgstr " (renomeado de %s)" msgid " (is a symlink)" msgstr " (é um link simbólico)" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" "Arquivo ou diffs não mostrados: o arquivo é maior que o tamanho máximo " "especificado.\n" "maxdiff = %s KB" msgid " (was deleted)" msgstr " (foi apagado)" msgid " (was added, now missing)" msgstr " (foi adicionado, atualmente ausente)" msgid " (is unversioned)" msgstr " (não versionado)" msgid "exec mode has been set" msgstr "modo executável foi ativado" msgid "exec mode has been unset" msgstr "modo executável foi desativado" #, python-format msgid "changeset: %s" msgstr "revisão: %s" msgid "Initial revision" msgstr "Revisão inicial" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" "[AVISO] ID de revisão de sub-repositório inválida:\n" "\t%s\n" "\n" msgid "Subrepo created and set to initial revision." msgstr "Sub-repositório criado e posicionado na revisão inicial." msgid "Subrepo initialized to revision:" msgstr "Sub-repositório atualizado para a revisão:" msgid "Subrepo removed from repository." msgstr "Sub-repositório removido do repositório." msgid "Previously the subrepository was at the following revision:" msgstr "Anteriormente o sub-repositório estava na seguinte revisão:" msgid "Subrepo was not changed." msgstr "O sub-repositório não foi modificado." msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "" "[AVISO] O sub-repositório está faltando. Para cloná-lo, atualize para esta " "revisão." msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "" "[AVISO] O sub-repositório está incompleto. Para completá-lo, atualize para " "esta revisão." msgid "Subrepo state is:" msgstr "O estado do sub-repositório é:" msgid "Revision has changed to:" msgstr "A revisão mudou para:" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "revisão: %s (não encontrada no sub-repositório)" msgid "From:" msgstr "De:" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" "[AVISO] O sub-repositório modificado está faltando. Para cloná-lo, atualize " "para esta revisão." msgid "Subrepository not found in the working directory." msgstr "Sub-repositório não encontrado no diretório de trabalho" msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" "[AVISO] O sub-repositório modificado está incompleto. Para completá-lo, " "atualize para esta revisão." msgid "Not a Mercurial subrepo, not previewable" msgstr "Não é um sub-repositório do Mercurial, não pode ser pré-visualizado" #, python-format msgid "Error previewing subrepo: %s" msgstr "Erro ao pré-visualizar sub-repositório: %s" msgid "Subrepo may be damaged or inaccessible." msgstr "O sub-repositório pode estar danificado ou inacessível." msgid "The subrepository is dirty." msgstr "O sub-repositório está sujo." msgid "File Status:" msgstr "Status de Arquivo:" msgid "(is a changed sub-repository)" msgstr "(é um sub-repositório modificado)" msgid "(is an unchanged sub-repository)" msgstr "(é um subŕepositório não modificado)" msgid "(is a dirty sub-repository)" msgstr "(é um sub-repositório sujo)" msgid "(is a new sub-repository)" msgstr "(é um novo sub-repositório)" msgid "(is a removed sub-repository)" msgstr "(é um sub-repositório removido)" msgid "(is a changed and dirty sub-repository)" msgstr "(é um sub-repositório modificado e sujo)" msgid "(is a new and dirty sub-repository)" msgstr "(é um sub-repositório novo e sujo)" msgid "open..." msgstr "abrir..." #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "Visualizador de log de arquivos do hg [%s] - %s" msgid "File History Log Columns" msgstr "Colunas de Log de Histórico de Arquivos" msgid "Back" msgstr "Voltar" msgid "Forward" msgstr "Avançar" msgid "Diff Selected &Changesets" msgstr "Diff das Revisões Sele&cionadas" msgid "&Diff Selected File Revisions" msgstr "&Diff das Revisões de Arquivo Selecionadas" msgid "Show Revision &Details" msgstr "Mostra &Detalhes da Revisão" msgid "Too many rows selected for menu" msgstr "Número excessivo de linhas selecionadas para o menu" msgid "File Differences Log Columns" msgstr "Colunas de Log de Diferenças de Arquivo" msgid "Next diff" msgstr "Diff seguinte" msgid "Previous diff" msgstr "Diff anterior" msgid "Unicode" msgstr "Unicode" msgid "Western Europe" msgstr "Europa Ocidental" msgid "Unified Chinese" msgstr "Chinês Unificado" msgid "Traditional Chinese" msgstr "Chinês Tradicional" msgid "Korean" msgstr "Coreano" msgid "Japanese" msgstr "Japonês" msgid "Thai" msgstr "Tailandês" msgid "Central and Eastern Europe" msgstr "Europa Central e Ocidental" msgid "Cyrillic" msgstr "Cirílico" msgid "Russian" msgstr "Russo" msgid "Ukrainian" msgstr "Ucraniano" msgid "Greek" msgstr "Grego" msgid "Turkish" msgstr "Turco" msgid "Arabic" msgstr "Árabe" msgid "Hebrew" msgstr "Hebraico" msgid "Vietnamese" msgstr "Vietnamita" msgid "Baltic" msgstr "Báltico" msgid "Southern Europe" msgstr "Sul Europeu" msgid "Nordic" msgstr "Nórdico" msgid "Celtic" msgstr "Céltico" msgid "South-Eastern Europe" msgstr "Sudeste Europeu" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "utf-8,iso8859-1,cp1252" msgid "View change as unified diff output" msgstr "Ver mudança como diff unificado" msgid "View change in context of file" msgstr "Ver mudança no contexto do arquivo" msgid "Annotate with revision numbers" msgstr "Anotar com números de revisão" msgid "Next Diff" msgstr "Próximo Diff" msgid "Previous Diff" msgstr "Diff Anterior" msgid "Open shelve tool" msgstr "Abre ferramenta de adiamento (shelve)" msgid "&Auto Detect" msgstr "&Auto Detectar" msgid "Show changes from first parent" msgstr "Mostra mudanças a partir do primeiro pai" msgid "Show changes from second parent" msgstr "Mostra mudanças a partir do segundo pai" msgid "E&ncoding" msgstr "&Codificação" msgid "&Search in Current File" msgstr "&Procurar no Arquivo Atual" msgid "Search in All &History" msgstr "Procura em Todo o &Histórico" msgid "Go to Line" msgstr "Ir para Linha" #, python-format msgid "Enter line number (1 - %d)" msgstr "Forneça o número da linha (1 - %d)" msgid "Show &Author" msgstr "Mostrar &Autor" msgid "Show &Date" msgstr "Mostrar &Data" msgid "Show &Revision" msgstr "Mostrar &Revisão" msgid "Annotate Op&tions" msgstr "Opções de Anno&tate" msgid "Search Selected Text" msgstr "Procura o Texto Selecionado" msgid "In Current &File" msgstr "No &Arquivo Atual" msgid "In &Current Revision" msgstr "Na &Revisão Atual" msgid "In &Original Revision" msgstr "Na Revisão &Original" msgid "In All &History" msgstr "Em Todo o &Histórico" msgid "Go to" msgstr "Ir para" msgid "View File at" msgstr "Ver Arquivo na" msgid "Diff File to" msgstr "Diff do Arquivo com" msgid "&Originating Revision" msgstr "Revisão de &Origem" msgid "&Parent Revision" msgstr "Revisão &Pai" #, python-format msgid "&Parent Revision (%d)" msgstr "Revisão &Pai (%d)" msgid "&Mark Excluded Changes" msgstr "&Marcar Mudanças Excluídas" msgid "(excluded from the next commit)" msgstr "(excluída da próxima consolidação)" msgid "Interrupted graft operation found" msgstr "Operação graft interrompida encontrada" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" "Foi encontrada uma operação de enxerto (graft) interrompida.\n" "\n" "Você não poderá fazer uma nova operação de enxerto até que a operação " "interrompida seja concluída ou abortada." msgid "Continue or abort interrupted graft operation?" msgstr "Continuar ou abortar a operação de enxerto interrompida?" msgid "To graft destination" msgstr "Para o destino do enxerto" msgid "Use my user name instead of graft committer user name" msgstr "" "Usar o nome de usuário atual ao invés do autor da revisão original enxertada" msgid "Use current date" msgstr "Usar a data atual" msgid "Append graft info to log message" msgstr "Anexar informações do enxerto à mensagem de log" msgid "Graft" msgstr "Enxertar" msgid "Abort" msgstr "Cancelar" #, python-format msgid "Graft - %s" msgstr "Enxertar - %s" msgid "Graft changeset" msgstr "Enxertar revisão" #, python-format msgid "Graft changeset #%d of %d" msgstr "Enxertar revisão #%d de %d" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" "Antes de enxertar, você deve consolidar, " "armazenar na shelve ou descartar as mudanças." msgid "You may continue or start the graft" msgstr "Você pode começar ou continuar o enxerto" msgid "Graft is complete" msgstr "Enxerto concluído" msgid "Graft failed" msgstr "Enxerto falhou" msgid "Graft aborted" msgstr "Enxerto abortado" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" "O enxerto gerou conflitos de mesclagem que devem ser resolvidos" msgid "You may continue the graft" msgstr "Você pode continuar o enxerto" msgid "Exiting with an unfinished graft is not recommended." msgstr "Não é recomendado sair durante uma operação de enxerto." msgid "Consider aborting the graft first." msgstr "Considere primeiro abortar o enxerto." msgid "&Exit" msgstr "&Sair" msgid "### regular expression search pattern ###" msgstr "### padrão de busca com expressões regulares ###" msgid "Regexp:" msgstr "Expressão regular:" msgid "Ignore case" msgstr "Ignorar maiúsculas / minúsculas" msgid "Search" msgstr "Pesquisar" msgid "Working Copy" msgstr "Cópia de Trabalho" msgid "All History" msgstr "Histórico Completo" msgid "Report only the first match per file" msgstr "Informa apenas a primeira ocorrência por arquivo" msgid "Match whole words only" msgstr "Corresponde apenas a palavras inteiras" msgid "Follow copies and renames" msgstr "Seguir cópias e renomeações" msgid "Includes:" msgstr "Inclui:" msgid "Excludes:" msgstr "Exclui:" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" "Lista separada por vírgulas de padrões de exclusão de arquivos. Padrões de " "exclusão são aplicados após padrões de inclusão." msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" "Lista separada por vírgulas de padrões de inclusão de arquivos. Por padrão, " "a busca é feita em todo o repositório." #, python-format msgid "\"%s\" removed from search history" msgstr "\"%s\" removido do histórico de busca" #, python-format msgid "\"%s\" removed from path history" msgstr "\"%s\" removido do histórico do caminho" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "grep: padrão de correspondência inválido: %s\n" #, python-format msgid "grep: %s\n" msgstr "grep: %s\n" #, python-format msgid "%d matches found" msgstr "%d ocorrências encontradas" msgid "No matches found" msgstr "Nenhuma ocorrência encontrada" msgid "Searching" msgstr "Procurando" msgid "history" msgstr "histórico" msgid "Interrupted" msgstr "Interrompido" msgid "files" msgstr "arquivos" #, python-format msgid "Skipping %s, unable to read" msgstr "Omitindo %s, incapaz de ler" msgid "Vi&ew File" msgstr "V&er Arquivo" msgid "&View Changeset" msgstr "&Ver Revisão" msgid "Annotate &File" msgstr "Anotar Ar&quivo" msgid "File" msgstr "Arquivo" msgid "Line" msgstr "Linha" msgid "Rev" msgstr "Rev" msgid "User" msgstr "Usuário" msgid "Match Text" msgstr "Texto Correspondente" msgid "TortoiseHg Search" msgstr "Busca do TortoiseHg" #, python-format msgid "Detect Copies/Renames in %s" msgstr "Detecta Cópias/Renomeações em %s" msgid "Unrevisioned Files" msgstr "Arquivos Não Versionados" msgid "Refresh file list" msgstr "Atualizar lista de arquivos" #, python-format msgid "Min Similarity: %d%%" msgstr "Similaridade Mínima: %d%%" msgid "Only consider deleted files" msgstr "Considerar apenas arquivos apagados" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "" "Desmarque para considerar todos os arquivos versionados como possíveis " "origens de cópias" msgid "Find Renames" msgstr "Pesquisar renomeações" msgid "Find copy and/or rename sources" msgstr "Encontrar origens de cópia ou renomeação" msgid "Candidate Matches" msgstr "Candidatos a Ocorrências" msgid "Accept All Matches" msgstr "Aceitar Todas as Ocorrências" msgid "Accept Selected Matches" msgstr "Aceitar Ocorrências Selecionadas" msgid "Differences from Source to Dest" msgstr "Diferenças da Origem para o Destino" msgid "Search already in progress" msgstr "Busca já em andamento" msgid "Cannot start a new search" msgstr "Não é possível iniciar uma nova busca" msgid "No files to find" msgstr "Nenhum arquivo a ser encontrado" msgid "There are no files that may have been renamed" msgstr "Não há arquivos que possam ter sido renomeados" msgid "Multiple sources chosen" msgstr "Múltiplas origens escolhidas" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" "Existem múltiplas renomeações selecionadas para o arquivo de destino:\n" "%s. Abortando!" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" "%s e %s têm conteúdos idênticos\n" "\n" #. i18n: percent format #, python-format msgid "%d%%" msgstr "%d%%" msgid "Source" msgstr "Fonte" msgid "Dest" msgstr "Dest" msgid "% Match" msgstr "% Similaridade" msgid "Sending Email" msgstr "Enviando E-mail" msgid "Email" msgstr "Email" msgid "To:" msgstr "Para:" msgid "Cc:" msgstr "Cc:" msgid "In-Reply-To:" msgstr "In-Reply-To:" msgid "Message identifier to reply to, for threading" msgstr "Identificador de mensagem a responder, para organização em tópicos" msgid "Flag:" msgstr "Flag:" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" "Os patches do Mercurial (como gerados pelo comando export) são compatíveis " "com a maioria dos programas de patch. Incluem um cabeçalho que contém os " "metadados mais importantes da revisão." msgid "Send changesets as Hg patches" msgstr "Enviar revisões como patches Hg" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" "Patches git podem descrever arquivos binários, cópias e alterações nas " "permissões, mas o destinatário pode não conseguir usá-los se não estiver " "usando o git ou o Mercurial." msgid "Use extended (git) patch format" msgstr "Usar formato de patch estendido (git)" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" "A remoção de cabeçalhos do Mercurial remove nomes de usuário e informações " "de ancestrais. Só é útil se o destinatário não estiver usando o Mercurial (e " "não gostar de ver esses cabeçalhos)." msgid "Plain, do not prepend Hg header" msgstr "Simples, não coloca o cabeçalho Hg" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" "Bundles são arquivos que armazenam revisões completas em formato binário. " "Outros usuários podem usar o comando pull a partir deles para obter " "revisões. Este é o jeito mais seguro de enviar mudanças para destinatários " "usuários do Mercurial." msgid "Send single binary bundle, not patches" msgstr "Envia um bundle binário único ao invés de patches" msgid "send patches as part of the email body" msgstr "envia patches como parte do corpo do email" msgid "body" msgstr "corpo" msgid "send patches as attachments" msgstr "enviar patches como anexos" msgid "attach" msgstr "anexar" msgid "send patches as inline attachments" msgstr "enviar patches como anexos em linha" msgid "inline" msgstr "em linha" msgid "add diffstat output to messages" msgstr "adicionar saída do diffstat às mensagens" msgid "diffstat" msgstr "diffstat" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" "A descrição da série de patches é enviada no email de sumário inicial com " "assunto [PATCH 0 of N] . Ela deve descrever os efeitos da série toda de " "patches. Ao enviar um bundle, estes campos compõem o assunto e corpo da " "mensagem. Flags é uma lista separada por vírgulas de indicadores inseridos " "no prefixo do assunto da mensagem.\"" msgid "Write patch series (bundle) description" msgstr "Escrever descrição da série de patches (bundle)" msgid "Subject:" msgstr "Assunto:" msgid "Changesets" msgstr "Revisões" msgid "Select &All" msgstr "Selecionar &Todos" msgid "Select &None" msgstr "&Desmarcar Todos" msgid "Edit" msgstr "Editar" msgid "Preview" msgstr "Pré-visualização" msgid "&Settings" msgstr "Configuraçõe&s" msgid "Send &Email" msgstr "Enviar &E-mail" msgid "&Close" msgstr "&Fechar" #, python-format msgid "Ignore filter - %s" msgstr "Filtro de arquivos ignorados - %s" msgid "Glob" msgstr "Glob" msgid "Regexp" msgstr "Expressão Regular" msgid "Add" msgstr "Adicionar" msgid "Edit File" msgstr "Editar Arquivo" msgid "Ignore Filter" msgstr "Filtro de Arquivos Ignorados" msgid "Untracked Files" msgstr "Arquivos Não Rastreados" msgid "Backspace or Del to remove row(s)" msgstr "Backspace ou Del para remover linha(s)" msgid "Add ignore filter..." msgstr "Adicionar filtro hgignore..." msgid "selected files" msgstr "arquivos selecionados" msgid "Ignore " msgstr "Ignorar " msgid "Invalid glob expression" msgstr "Expressão de glob inválida" msgid "Invalid regexp expression" msgstr "Expressão regular inválida" msgid "Unable to read repository status" msgstr "Não é possível ler o status do repositório" msgid "New file created" msgstr "Novo arquivo criado" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" "O TortoiseHg criou um novo arquivo .hgignore . Você gostaria de adicionar " "esse arquivo ao repositório?" msgid "Unable to write .hgignore file" msgstr "Incapaz de escrever arquivo .hgignore" msgid "Copy working directory files from skeleton" msgstr "Copia para o diretório de trabalho arquivos do skeleton" msgid "Create special files (.hgignore, ...)" msgstr "Criar arquivos especiais (.hgignore, ...)" msgid "Make repo compatible with Mercurial <1.7" msgstr "Tornar o repositório compatível com Mercurial <1.7" msgid "New Repository" msgstr "Novo Repositório" msgid "&Create" msgstr "&Criar" msgid "Unable to create a config file" msgstr "Não é possível criar um arquivo de configurações" msgid "Insufficient access rights." msgstr "Permissões de acesso insuficientes." msgid "Show Log" msgstr "Mostrar Log" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" "Alguns dos arquivos selecionados ocupam mais de 10 MB. Você pode fazer um " "uso mais eficiente do espaço em disco adicionando esses arquivos como " "largefiles, o que armazenará apenas a versão mais recente de cada arquivo em " "seu repositório local, mantendo revisões mais antigas disponíveis no " "servidor. Você deseja adicionar estes arquivos como largefiles?" msgid "Add as &Largefiles" msgstr "Adiciona como &Largefiles" msgid "Add as &Normal Files" msgstr "Adiciona como Arquivos &Normais" msgid "Invalid Patterns" msgstr "Padrões Inválidos" msgid "Failed to process largefiles.patterns." msgstr "Erro ao processar largefiles.patterns." msgid "Word docs (*.doc *.docx)" msgstr "Documentos do Word (*.doc *.docx)" msgid "PDF docs (*.pdf)" msgstr "Documentos PDF (*.pdf)" msgid "Excel files (*.xls *.xlsx)" msgstr "Arquivos Excel (*.xls *.xlsx)" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "Ferramenta de Bloqueio do TortoiseHg - %s" msgid "Refresh lock information" msgstr "Atualiza informação de bloqueio" msgid "Lock a file not described in .hglocks" msgstr "Bloqueia um arquivo não descrito em .hglocks" msgid "Stop current operation" msgstr "Interrompe a operação atual" msgid "Locked And Lockable Files:" msgstr "Arquivos Bloqueados e Bloqueáveis:" msgid "Path" msgstr "Caminho" msgid "Locking User" msgstr "Bloqueando Usuário" msgid "Purpose" msgstr "Propósito" msgid "Simplelock extension not enabled" msgstr "Extensão simplelock não habilitada" msgid "Please enable and configure simplelock" msgstr "Por favor habilite e configure a extensão simplelock" msgid "Open a (nonmergable) file you wish to be locked" msgstr "Abra um arquivo (não mesclável) que você deseja bloquear" msgid "File was not within current repository" msgstr "O arquivo não estava dentro do repositório atual" #, python-format msgid "Locking %s" msgstr "Bloqueando %s" #, python-format msgid "Unlocking %s" msgstr "Desbloqueando %s" msgid "Refreshing locks..." msgstr "Atualizando bloqueios..." #, python-format msgid "Lock of %s successful" msgstr "Bloqueio de %s realizado com sucesso" #, python-format msgid "Lock of %s failed, retry" msgstr "O bloqueio de %s falhou, tente novamente" #, python-format msgid "Unlock of %s failed, retry" msgstr "O desbloqueio de %s falhou, tente novamente" #, python-format msgid "Unlock of %s successful" msgstr "Desbloqueio de %s realizado com sucesso" msgid "Ready, double click to lock or unlock" msgstr "Pronto, duplo clique para bloquear ou desbloquear" msgid "Ready" msgstr "Pronto" msgid "You can only release your own locks" msgstr "Você só pode liberar seus próprios bloqueios" msgid "Find revisions matching fields of:" msgstr "Encontrar revisões com campos correspondentes a:" msgid "Revision to Match:" msgstr "Revisão com a qual comparar:" msgid "Fields to match:" msgstr "Campos a serem comparados:" msgid "Summary (first description line)" msgstr "Sumário (primeira linha da descrição)" msgid "Description" msgstr "Descrição" msgid "Author" msgstr "Autor" msgid "Date" msgstr "Data" msgid "Files" msgstr "Arquivos" msgid "Diff contents" msgstr "Conteúdo do diff" msgid "Subrepo states" msgstr "Estados de sub-repositórios" msgid "Branch" msgstr "Ramo" msgid "Phase" msgstr "Fase" msgid "&Match" msgstr "Co&mparar" #, python-format msgid "Find matches - %s" msgstr "Encontrar correspondentes - %s" msgid "Revisions to Match:" msgstr "Revisões com as quais comparar:" #, python-format msgid "Match any of %d revisions" msgstr "Comparar com qualquer das %d revisões" msgid "Unknown revision!" msgstr "Revisão desconhecida!" msgid "Parse Error!" msgstr "Erro de Decodificação!" #, python-format msgid "Merge - %s" msgstr "Mesclar - %s" msgid "Do you want to exit?" msgstr "Deseja sair?" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" "Para terminar a mesclagem, você deve consolidar o diretório de trabalho.\n" "\n" "Para cancelar a mesclagem, você pode atualizar para um dos pais da revisão " "de mesclagem." msgid "Prepare to merge" msgstr "Prepare-se para mesclar" msgid "Verify merge targets and ensure your working directory is clean." msgstr "" "Verifique os alvos da mesclagem e garanta que o diretório de trabalho esteja " "limpo" msgid "Not a head revision!" msgstr "Não é uma revisão de cabeça!" msgid "Merge from (other revision)" msgstr "Mesclar com (a outra revisão; segundo pai)" msgid "Merge to (working directory)" msgstr "Mesclar em (o diretório de trabalho; primeiro pai)" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" "O diretório de trabalho já foi mesclado. Continue ou descarte a " "mesclagem atual." msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" "Antes de mesclar, você deve consolidar, adiar para um patch, ou descartar as mudanças." msgid "Or use:" msgstr "Ou use:" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "Forçar mesclagem com mudanças pendentes (-f/--force)" msgid "Discard all changes from the other revision" msgstr "Descarta todas as mudanças da outra revisão" msgid "&Discard" msgstr "&Descartar" msgid "Confirm Discard Changes" msgstr "Confirma o Descarte de Mudanças" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" "As mudanças da revisão %s e todos os seus ancestrais não mesclados serão " "descartadas.\n" "\n" "Você tem certeza de que é isso o que você deseja fazer?" msgctxt "working dir state" msgid "Clean" msgstr "Limpo" msgid "Merging..." msgstr "Mesclando..." msgid "Automatically advance to next page when merge is complete." msgstr "" "Avançar automaticamente para a próxima página assim que a mesclagem estiver " "terminada." #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" "%d arquivos foram modificados em ambos os ramos, e devem ser resolvidos" msgid "" "No merge conflicts, ready to commit or review" msgstr "" "Nenhum conflito de mesclagem, pronto para consolidar ou revisar" msgid "Commit merge results" msgstr "Consolide o resultado da mesclagem" msgid "Commit Options" msgstr "Opções de Consolidação" msgid "Commit Now" msgstr "Consolidar Agora" msgid "Commit Later" msgstr "Consolidar Depois" msgid "Merge changeset" msgstr "Revisão de mesclagem" msgid "Syntax Highlighting" msgstr "Realce de Sintaxe" msgid "Paste &Filenames" msgstr "Colar Nomes de &Arquivo" msgid "App&ly Format" msgstr "Ap&licar Formato" msgid "C&onfigure Format" msgstr "C&onfigurar Formato" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "" "%s tem trechos rejeitados, editar o arquivo alterado junto com os rejeitos?" msgid "&Commit to Queue..." msgstr "&Consolida para a Fila..." msgid "Create &New Queue..." msgstr "Cria &Nova Fila..." msgid "&Rename Active Queue..." msgstr "&Renomeia Fila Ativa..." msgid "&Delete Queue..." msgstr "Apa&ga Fila..." msgid "&Purge Queue..." msgstr "Ex&purga Fila..." msgid "Create Patch Queue" msgstr "Criar Fila de Patches" msgid "New patch queue name" msgstr "Nome da nova fila de patches" msgid "Create" msgstr "Criar" msgid "Rename Patch Queue" msgstr "Renomear Fila de Patches" #, python-format msgid "Rename patch queue '%s' to" msgstr "Renomear fila de patches '%s' para" msgid "Rename" msgstr "Renomear" msgid "Delete Patch Queue" msgstr "Apagar Fila de Patches" msgid "Delete reference to" msgstr "Apagar a referência para" msgid "Delete" msgstr "Apagar" msgid "Purge Patch Queue" msgstr "Expurgar Fila de Patches" msgid "Remove patch directory of" msgstr "Remover diretório de patches de" msgid "Purge" msgstr "Remover Completamente" msgid "Rename Patch" msgstr "Renomear Patch" #, python-format msgid "Rename patch %s to:" msgstr "Renomear patch %s para:" msgid "no guards" msgstr "nenhuma guarda" msgid "Patch Queue" msgstr "Fila de Patches" msgctxt "MQ QPush" msgid "Push" msgstr "Empilhar (qpush)" msgid "Apply one patch" msgstr "Aplicar um patch" msgctxt "MQ QPush" msgid "Push all" msgstr "Empilhar todos (qpush -a)" msgid "Apply all patches" msgstr "Aplica todos os patches" msgid "Pop" msgstr "Desempilhar" msgid "Unapply one patch" msgstr "Desaplicar um patch" msgid "Pop all" msgstr "Desempilhar todos" msgid "Unapply all patches" msgstr "Desaplica todos os patches" msgid "Go &to Patch" msgstr "Ir para o Pa&tch" msgid "&Apply Only This Patch" msgstr "&Aplica Apenas Este Patch" msgid "Apply only the selected patch" msgstr "Aplica apenas o patch selecionado" msgid "&Finish Patch" msgstr "&Finalizar Patch (qfinish)" msgid "Move applied patches into repository history" msgstr "Move patches aplicados para o histórico do repositório" msgid "&Delete Patches..." msgstr "Apa&gar Patches..." msgid "Delete selected patches" msgstr "Apagar patches selecionados" msgid "Re&name Patch..." msgstr "Re&nomear Patch..." msgid "Set &Guards..." msgstr "Definir &Guardas..." msgid "Configure guards for selected patch" msgstr "Configura guardas para o patch selecionado" msgid "Patch Queue Actions Toolbar" msgstr "Barra de Ações da Fila de Patches" msgid "Configure guards" msgstr "Configurar guardas" #, python-format msgid "Input new guards for %s:" msgstr "Entre com novas guardas para %s:" msgid "Confirm patch queue switch" msgstr "Confirmar troca de fila de patches" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "Você realmente deseja ativar a fila de patches '%s'?" #, python-format msgid "Guards: %d/%d" msgstr "Guardas: %d/%d" msgid "MQ options" msgstr "Opções MQ" msgid "Force push or pop (--force)" msgstr "Força push ou pop (--force)" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "Tolerar mudanças locais não conflitantes (--keep-changes)" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "Changelists do Perforce Pendentes - %s" msgid "Submitting p4 changelist..." msgstr "Submetendo changelist p4..." msgid "Reverting p4 changelist..." msgstr "Revertendo changelist p4..." msgid "Patch Branch Toolbar" msgstr "Barra do Patch Branch" msgid "Merge all pending dependencies" msgstr "Mescla todas as dependências pendentes" msgid "Backout current patch branch" msgstr "Faz o backout do ramo de patches atual" msgid "Backport part of a changeset to a dependency" msgstr "Faz o backout de parte de uma revisão para uma dependência" msgid "Start a new patch branch" msgstr "Inicia um novo ramo de patches" msgid "Edit patch dependency graph" msgstr "Edita o grafo de dependências do patch" msgid "will be closed" msgstr "será fechado" #, python-format msgid "needs merge of %i heads\n" msgstr "é necessário mesclar %i cabeças\n" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "é necessário mesclar com %s (através de %s)\n" #, python-format msgid "needs merge with %s\n" msgstr "é necessário mesclar com %s\n" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "é necessário atualizar a base do diff com a tip de %s\n" msgid "&Goto (update workdir)" msgstr "&Ir Para (atualiza diretório de trabalho)" msgid "&Merge" msgstr "&Mesclar" msgid "No patch branch selected" msgstr "Nenhum ramo de patches selecionado" msgid "No editor found" msgstr "Nenhum editor encontrado" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" "O Mercurial não conseguiu encontrar um editor. Por favor configure o " "Mercurial para usar um editor instalado no seu sistema." msgid "Graph" msgstr "Grafo" msgid "Status" msgstr "Status" msgid "Title" msgstr "Título" msgid "Message" msgstr "Mensagem" msgid "New Patch Branch" msgstr "Novo Ramo de Patches" msgid "Patch message:" msgstr "Mensagem do patch:" msgid "Patch date:" msgstr "Data do patch:" msgid "Patch user:" msgstr "Usuário do patch:" msgid "Posting Review" msgstr "Enviando para Análise" msgid "Phabricator" msgstr "Phabricator" msgid "Reviewers" msgstr "Revisores" msgid "Available" msgstr "Disponível" msgid "Fetch the reviewer list from the server" msgstr "Obtém do servidor a lista de revisores" msgid "Rescan" msgstr "Reexaminar" msgid "Filter the available reviewers" msgstr "Filtra os revisores disponíveis" msgid "Reviewer Filter" msgstr "Filtro de Revisor" msgid "Reviewers available on the server" msgstr "Revisores disponíveis no servidor" msgid "Chose the selected available reviewers" msgstr "Escolhe os revisores selecionados disponíveis" msgid ">" msgstr ">" msgid "Remove the selected reviewers" msgstr "Remove os revisores selecionados" msgid "<" msgstr "<" msgid "Selected" msgstr "Selecionados" msgid "These users will be notified of the review" msgstr "Estes usuários serão notificados sobre a revisão" msgid "Post &Review" msgstr "Posta&r Análise" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "Configurações Inválidas - O servidor ReviewBoard não está configurado" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "" "Configurações Inválidas - Por favor forneça seu nome de usuário do " "ReviewBoard" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" "O plugin do Mercurial para o reviewboard não é válido. Por favor baixe e " "instale o plugin reviewboard 3.5 ou superior do website abaixo.\n" "\n" " %s" msgid "Review Board" msgstr "Review Board" msgid "Password:" msgstr "Senha:" msgid "Error" msgstr "Erro" #, python-format msgid "Review draft posted to %s\n" msgstr "Rascunho da análise postado em %s\n" #, python-format msgid "Review published to %s\n" msgstr "Análise publicada em %s\n" msgid "Success" msgstr "Sucesso" msgid "Repository ID:" msgstr "ID do Repositório:" msgid "Post Review" msgstr "Postar Análise" msgid "Review ID:" msgstr "ID da Análise:" msgid "Update the fields of this existing request" msgstr "Atualizar os campos deste pedido existente" msgid "Update Review" msgstr "Atualizar Análise" msgid "Create diff with all outgoing changes" msgstr "Criar diff com todas as mudanças a serem enviadas" msgid "Create diff with all changes on this branch" msgstr "Criar diff com todas as mudanças neste ramo" msgid "Publish request immediately" msgstr "Publicar o pedido imediatamente" msgid "%p%" msgstr "%p%" msgid "Connecting to Review Board..." msgstr "Conectando à Review Board..." msgid "Target:" msgstr "Alvo:" msgid "Do not modify working copy (-k/--keep)" msgstr "Não modifica a cópia de trabalho (-k/--keep)" #, python-format msgid "Prune - %s" msgstr "Prune - %s" msgid "&Prune" msgstr "&Podar" msgid "No unknown files found" msgstr "Nenhum arquivo desconhecido encontrado" msgid "No ignored files found" msgstr "Nenhum arquivo ignorado encontrado" msgid "No trash files found" msgstr "Nenhum arquivo encontrado na lixeira" msgid "Delete empty folders" msgstr "Apagar pastas vazias" msgid "Preserve files beginning with .hg" msgstr "Preservar arquivos iniciados por .hg" #, python-format msgid "%s - purge" msgstr "%s - purge" msgid "Checking" msgstr "Checando" msgid "Ready to purge." msgstr "Pronto para remover arquivos." #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "Apagar %d arquivo desconhecido" msgstr[1] "Apagar %d arquivos desconhecidos" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "Apagar %d arquivo ignorado" msgstr[1] "Apagar %d arquivos ignorados" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "Apagar %d arquivo em .hg/Trashcan (lixeira)" msgstr[1] "Apagar %d arquivos em .hg/Trashcan (lixeira)" msgid "Confirm file deletions" msgstr "Confirmar remoção de arquivos" msgid "Are you sure you want to delete these files and/or folders?" msgstr "Tem certeza de que deseja apagar estes arquivos e/ou pastas?" msgid "Deletion failures" msgstr "Falhas ao apagar" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "Incapaz de remover %d arquivo ou pasta" msgstr[1] "Incapaz de remover %d arquivos ou pastas" msgid "Deleting trash folder..." msgstr "Apagando lixeira..." #, python-format msgid "Deleted %d files" msgstr "Apagados %d arquivos" #, python-format msgid "Deleted %d files and %d folders" msgstr "Apagados %d arquivos e %d pastas" msgid "Delete Patches" msgstr "Apagar Patches" msgid "Remove patches from queue?" msgstr "Remover patches da fila?" msgid "Keep patch files" msgstr "Manter arquivos de patch" #, python-format msgid "Patch fold - %s" msgstr "Combinação de patch - %s" msgid "New patch message:" msgstr "Nova mensagem de patch:" msgid "Patches to fold" msgstr "Patches a combinar" msgid "&Undo" msgstr "&Desfazer" msgid "&Redo" msgstr "&Refazer" msgid "Cu&t" msgstr "Recor&tar" msgid "&Copy" msgstr "&Copiar" msgid "&Paste" msgstr "Co&lar" msgid "&Editor Options" msgstr "Opções do &Editor" msgid "&Wrap" msgstr "&Separação de Linhas" msgctxt "wrap mode" msgid "&None" msgstr "&Nenhuma" msgid "&Word" msgstr "&Palavra" msgid "&Character" msgstr "&Caractere" msgid "White&space" msgstr "E&spaço em Branco" msgid "&Visible" msgstr "&Visível" msgid "&Invisible" msgstr "&Invisível" msgid "&AfterIndent" msgstr "&Após Indentação" msgid "&TAB Inserts" msgstr "&TAB Insere" msgid "&Auto" msgstr "&Auto" msgid "&TAB" msgstr "&TAB" msgid "&Spaces" msgstr "E&spaços" msgid "EOL &Visibility" msgstr "&Visibilidade de Quebras de Linha" msgid "EOL &Mode" msgstr "&Modo de Quebras de Linha" msgid "&Windows" msgstr "&Windows" msgid "&Unix" msgstr "&Unix" msgid "&Mac" msgstr "&Mac" msgid "&Auto-Complete" msgstr "&Auto-Completação" msgid "### regular expression ###" msgstr "### expressão regular ###" msgid "Regular expression search pattern" msgstr "Padrão de busca de expressão regular" msgid "Wrap search" msgstr "Dar a volta na busca" msgid "Prev" msgstr "Anterior" msgid "Next" msgstr "Seguinte" msgid "Unable to read file" msgstr "Incapaz de ler o arquivo" msgid "Could not open the specified file for reading." msgstr "Não foi possível abrir para leitura o arquivo especificado" msgid "This appears to be a binary file." msgstr "Isto parece ser um arquivo binário." msgid "An error occurred while reading the file." msgstr "Ocorreu um erro ao ler o arquivo." msgid "Text Translation Failure" msgstr "Falha na Tradução do Texto" msgid "Could not translate the file content from native encoding." msgstr "" "Não foi possível traduzir o conteúdo do arquivo a partir da codificação " "nativa." msgid "Several characters would be lost." msgstr "Vários caracteres seriam perdidos." msgid "Unable to write file" msgstr "Incapaz de escrever no arquivo" msgid "Could not translate the file content to native encoding." msgstr "" "Não foi possível converter o conteúdo do arquivo para a codificação nativa." msgid "Could not open the specified file for writing." msgstr "Não foi possível abrir para escrita o arquivo especificado." msgid "An error occurred while writing the file." msgstr "Ocorreu um erro ao gravar o arquivo." msgid "Try refreshing your repository." msgstr "Tente reler seu repositório." #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
                                                                              Please edit your config" msgstr "" "Erro na string \"%(arg0)s\" em %(arg1)s
                                                                              Por favor edite sua configuração" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
                                                                              Please fix your config" msgstr "" "Erro de Configuração: \"%(arg0)s\",
                                                                              Por favor
                                                                              corrija sua configuração" #, python-format msgid "Operation aborted:

                                                                              %(arg0)s." msgstr "Operação abortada:

                                                                              %(arg0)s." msgid "Repository is locked" msgstr "O repositório está bloqueado" msgid "hint:" msgstr "dica:" msgid "Repository Error" msgstr "Erro de Repositório" msgid "No visual editor configured" msgstr "Nenhum editor visual configurado" msgid "Please configure a visual editor." msgstr "Por favor configure um editor visual" msgid "Editor launch failure" msgstr "Falha de execução do editor" msgid "Failed to open path in terminal" msgstr "Falha ao abrir caminho no terminal" #, python-format msgid "\"%s\" is not a valid directory" msgstr "\"%s\" não é um diretório válido" #, python-format msgid "Invalid configuration: %s" msgstr "Configuração inválida: %s" msgid "Unable to start the following command:" msgstr "Incapaz de iniciar o seguinte comando:" msgid "No shell configured" msgstr "Nenhum shell configurado" msgid "A terminal shell must be configured" msgstr "Um shell de terminal deve estar configurado" msgid "Please enter a username" msgstr "Por favor entre com um nome de usuário" msgid "You must identify yourself to Mercurial" msgstr "Você precisa identificar-se para o Mercurial" msgid "Unable to translate input to local encoding." msgstr "Incapaz de traduzir a entrada para a codificação local." msgid "Checkmark files to add" msgstr "Marque arquivos para adicionar" msgid "Checkmark files to forget" msgstr "Marque arquivos para esquecer" msgid "Forget" msgstr "Esquecer" msgid "Checkmark files to revert" msgstr "Marque arquivos para reverter" msgid "Revert" msgstr "Reverter" msgid "Checkmark files to remove" msgstr "Marque arquivos para remover" msgid "Remove" msgstr "Remover" #, python-format msgid "%s - hg %s" msgstr "%s - hg %s" msgid "Do not save backup files (*.orig)" msgstr "Não salvar cópias de segurança (*.orig)" msgid "Force removal of modified files (--force)" msgstr "Força a remoção de arquivos modificados (--force)" msgid "Add &Largefiles" msgstr "Adiciona &Largefiles" msgid "No files selected" msgstr "Nenhum arquivo selecionado" msgid "No operation to perform" msgstr "Nenhuma operação a realizar" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" "Você selecionou um ou mais arquivos modificados. Por padrão, tais arquivos " "não seriam removidos. O que você gostaria de fazer?" msgid "Remove &Unmodified Files" msgstr "Remover Apenas Arquivos &Não Modificados" msgid "Remove &All Selected Files" msgstr "Remover &Todos os Arquivos Selecionados" msgid "Rebase changeset and descendants" msgstr "Rebasear revisão e seus descendentes" msgid "To rebase destination" msgstr "Para o destino do rebaseamento" msgid "Swap source and destination" msgstr "Trocar origem com destino" msgid "Keep original changesets (--keep)" msgstr "Mantém as revisões originais (--keep)" msgid "Keep original branch names (--keepbranches)" msgstr "Mantém os nomes de ramo originais (--keepbranches)" msgid "Collapse the rebased changesets (--collapse)" msgstr "Colapsa as revisões rebaseadas (--collapse)" msgid "Rebase entire source branch (-b/--base)" msgstr "Rebaseia todo o ramo de origem (-b/--base)" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "" "Rebaseia revisões não publicadas para a cabeça do Subversion (sobrepõe " "origem e destino)" msgid "Rebase" msgstr "Rebasear (--rebase)" #, python-format msgid "Rebase - %s" msgstr "Rebase - %s" msgid "" "Before rebase, you must commit, shelve to patch, or discard changes." msgstr "" "Antes de rebasear, você deve consolidar, " "armazenar na shelve ou descartar as mudanças." msgid "You may continue the rebase" msgstr "Você pode continuar o rebaseamento" msgid "Rebase is complete" msgstr "Rebaseamento completado" msgid "Rebase failed" msgstr "Rebase falhou" msgid "Rebase aborted" msgstr "Rebase abortado" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" "O rebaseamento gerou conflitos de mesclagem que devem ser resolvidos" msgid "Exiting with an unfinished rebase is not recommended." msgstr "Não é recomendado sair durante um rebase não terminado." msgid "Consider aborting the rebase first." msgstr "Considere abortar o rebase antes de sair." #, python-format msgid "Merge rejected patch chunks into %s" msgstr "A mesclagem rejeitou trechos de patch em %s" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "Marcar este trecho como resolvido, ir para o próximo não-resolvido" msgid "Mark this chunk as unresolved" msgstr "Marcar este trecho como não-resolvido" msgid "Reload File" msgstr "Reler Arquivo" msgid "Are you sure you want to reload this file?" msgstr "Você tem certeza que deseja reler este arquivo?" msgid "All unsaved changes will be lost." msgstr "Todas as alterações não salvas serão perdidas." msgid "Warning" msgstr "Aviso" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" "Você marcou todos os trechos rejeitados do patch como resolvidos, mas não " "modificou o arquivo no painel de edição.\n" "\n" "Isto provavelmente significa que nenhum código presente nos trechos " "rejeitados do patch foi incorporado ao arquivo.\n" "\n" "Você tem certeza que deseja deixar o arquivo como está e considerar todos os " "trechos do patch como resolvidos?\n" "\n" "Fazer isso poderia por exemplo apagá-los de um adiamento, o que faria com " "que fossem perdidos definitivamente!\n" "\n" "Você tem certeza que deseja aceitar o arquivo como está, descartando todos " "os trechos do patch?" msgid "Copy source -> destination" msgstr "Copia origem -> destino" msgid "Copy Error" msgstr "Erro de Cópia" msgid "Rename Error" msgstr "Erro de Renomeação" msgid "Select Source File" msgstr "Selecionar Arquivo de Origem" msgid "Select Source Folder" msgstr "Selecão da Pasta de Origem" msgid "Source does not exist." msgstr "A origem não existe." msgid "The source must be within the repository tree." msgstr "A origem deve estar dentro da árvore do repositório." msgid "The destination must be within the repository tree." msgstr "O destino deve estar dentro da árvore do repositório." msgid "Destination file already exists." msgstr "Arquivo de destino já existe." msgid "Are you sure you want to overwrite it ?" msgstr "Tem certeza de que deseja sobrescrevê-lo?" #, python-format msgid "Copy - %s" msgstr "Cópia - %s" #, python-format msgid "Rename - %s" msgstr "Renomeação - %s" msgid "Show all" msgstr "Mostrar Todos" msgid "### revision set query ###" msgstr "### consulta por conjunto de revisões ###" msgid "Clear current query and query text" msgstr "Limpa consulta atual e o texto da consulta" msgid "Trigger revision set query" msgstr "Executa consulta pelo conjunto de revisões" msgid "Open advanced query editor" msgstr "Abre editor avançado de consultas" msgid "Delete selected query from history" msgstr "Remove do histórico a consulta selecionada" msgid "filter" msgstr "filtro" msgid "Toggle filtering of non-matched changesets" msgstr "Alterna a filtragem de revisões não correspondentes" msgid "Show/Hide hidden changesets" msgstr "Mostra/Oculta revisões ocultas" msgid "Toggle graft relations visibility" msgstr "Alterna visibilidade de relações de enxerto" msgid "Keyword Search" msgstr "Busca por Palavra Chave" msgid "Revision Set" msgstr "Conjunto de Revisões" msgid "(unsaved)" msgstr "(não salvo)" msgid "Display graph the named branch only" msgstr "Exibe no grafo apenas o ramo nomeado" msgid "Display only active branches" msgstr "Mostrar apenas ramos ativos" msgid "Display closed branches" msgstr "Mostrar ramos fechados" msgid "Include all ancestors" msgstr "Incluir todos os ancestrais" msgctxt "column header" msgid "Graph" msgstr "Grafo" msgctxt "column header" msgid "Rev" msgstr "Rev" msgctxt "column header" msgid "Branch" msgstr "Ramo" msgctxt "column header" msgid "Description" msgstr "Descrição" msgctxt "column header" msgid "Author" msgstr "Autor" msgctxt "column header" msgid "Tags" msgstr "Etiquetas" msgctxt "column header" msgid "Latest tags" msgstr "Últimas etiquetas" msgctxt "column header" msgid "Node" msgstr "Nó" msgctxt "column header" msgid "Git Commit" msgstr "Commit Git" msgctxt "column header" msgid "Age" msgstr "Idade" msgctxt "column header" msgid "Local Time" msgstr "Hora Local" msgctxt "column header" msgid "UTC Time" msgstr "Hora UTC" msgctxt "column header" msgid "Changes" msgstr "Mudanças" msgctxt "column header" msgid "Converted From" msgstr "Convertida De" msgctxt "column header" msgid "Phase" msgstr "Fase" msgctxt "column header" msgid "Filename" msgstr "Nome de Arquivo" msgid "Searching..." msgstr "Procurando..." #, python-format msgid "filling (%d)" msgstr "preenchendo (%d)" msgid "Mercurial User" msgstr "Usuário do Mercurial" msgid "Repository Registry" msgstr "Registro de Repositórios" msgid "Show &Paths" msgstr "Mostrar &Caminhos" msgid "Show S&hort Paths" msgstr "Mostrar Caminhos &Curtos" msgid "&Scan Repositories at Startup" msgstr "&Varrer Repositórios ao Iniciar" msgid "Scan &Remote Repositories" msgstr "Varrer Repositórios &Remotos" msgid "&Refresh Repository List" msgstr "&Reler Lista de Repositórios" msgid "Refresh the Repository Registry list" msgstr "Relê a lista de registros de repositório" msgid "&Open" msgstr "&Abrir" msgid "Open the repository in a new tab" msgstr "Abre o repositório em uma nova aba" msgid "&Open All" msgstr "&Abrir Todos" msgid "Open all repositories in new tabs" msgstr "Abre todos os repositórios em novas abas" msgid "New &Group" msgstr "Novo &Grupo" msgid "Create a new group" msgstr "Cria um novo grupo" msgid "Rename the entry" msgstr "Renomear a entrada" msgid "Settin&gs" msgstr "Confi&gurações" msgid "View the repository's settings" msgstr "Visualiza as configurações do repositório" msgid "Re&move from Registry" msgstr "Re&mover do Registro" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" "Remove o nó e todos os seus sub-nós. Os repositórios não são apagados do " "disco." msgid "Clon&e..." msgstr "Clo&nar..." msgid "Clone Repository" msgstr "Clonar repositório" msgid "E&xplore" msgstr "E&xplorar" msgid "Open the repository in a file browser" msgstr "Abre o repositório em um visualizador de arquivos" msgid "&Terminal" msgstr "&Terminal" msgid "Open a shell terminal in the repository root" msgstr "Abre um terminal de shell no raiz do repositório" msgid "&Add Repository..." msgstr "&Adicionar Repositório..." msgid "Add a repository to this group" msgstr "Adiciona um repositório a este grupo" msgid "A&dd Subrepository..." msgstr "A&dicionar Sub-Repositório..." msgid "Convert an existing repository into a subrepository" msgstr "Converte um repositório existente em um sub-repositório" msgid "Remo&ve Subrepository..." msgstr "Remo&ver Sub-repositório..." msgid "Remove this subrepository from the current revision" msgstr "Remove este sub-repositório da revisão atual" msgid "Copy the root path of the repository to the clipboard" msgstr "Copia o caminho raiz do repositório para a área de transferência" msgid "Sort by &Name" msgstr "Ordenar pelo &Nome" msgid "Sort the group by short name" msgstr "Ordenar o grupo pelo nome curto" msgid "Sort by &Path" msgstr "Ordenar pelo &Caminho" msgid "Sort the group by full path" msgstr "Ordenar o grupo pelo caminho completo" msgid "&Sort by .hgsub" msgstr "&Ordenar pelo .hgsub" msgid "Order the subrepos as in .hgsub" msgstr "Ordena os sub-repositórios como aparecem no arquivo .hgsub" msgid "Select repository directory to add" msgstr "Selecione o diretório do repositório a ser adicionado" msgid "Select an existing repository to add as a subrepo" msgstr "" "Selecione um repositório existente a ser adicionado como sub-repositório" msgid "Cannot add subrepository" msgstr "Não é possível adicionar o sub-repositório" #, python-format msgid "%s is not a valid repository" msgstr "%s não é um repositório válido" #, python-format msgid "\"%s\" is not a folder" msgstr "\"%s\" não é uma pasta" msgid "A repository cannot be added as a subrepo of itself" msgstr "" "Um repositório não pode ser adicionado como seu próprio sub-repositório" #, python-format msgid "" "The selected folder:

                                                                              %s

                                                                              is not inside the target repository." "

                                                                              This may be allowed but is greatly discouraged.
                                                                              If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" "A pasta selecionada:

                                                                              %s

                                                                              não está dentro do repositório de " "destino.

                                                                              Ist é permitido, mas fortemente desencorajado.
                                                                              Se você " "quiser adicionar um mapeamento não trivial de sub-repositório, você deve " "editar o arquivo .hgsub manualmente." msgid "Cannot open repository" msgstr "Não é possível abrir o repositório" #, python-format msgid "The selected repository:

                                                                              %s

                                                                              cannot be open!" msgstr "O repositório selecionado:

                                                                              %s

                                                                              não pôde ser aberto!" msgid "Subrepository already exists" msgstr "O sub-repositório já existe" #, python-format msgid "" "The selected repository:

                                                                              %s

                                                                              is already a subrepository of:" "

                                                                              %s

                                                                              as: \"%s\"" msgstr "" "O repositório selecionado:

                                                                              %s

                                                                              já é um sub-repositório de:" "

                                                                              %s

                                                                              as: \"%s\"" msgid "Failed to add subrepository" msgstr "Falha ao adicionar sub-repositório" #, python-format msgid "Cannot open the .hgsub file in:

                                                                              %s" msgstr "Não é possível abrir o arquivo .hgsub em:

                                                                              %s" msgid "Failed to add repository" msgstr "Falha ao adicionar repositório" #, python-format msgid "The .hgsub file already contains the line:

                                                                              %s" msgstr "O arquivo .hgsub já contém a linha:

                                                                              %s" msgid "Subrepo added to .hgsub file" msgstr "Sub-repositório adicionado ao arquivo .hgsub" #, python-format msgid "" "The selected subrepo:

                                                                              %s

                                                                              has been added to the .hgsub " "file of the repository:

                                                                              %s

                                                                              Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" "O sub-repositório selecionado:

                                                                              %s

                                                                              foi adicionado ao " "arquivo .hgsub do repositório:

                                                                              %s

                                                                              Para concluir a " "adição do sub-repositório você ainda precisa consolidar as " "mudanças do arquivo .hgsub." #, python-format msgid "Cannot update the .hgsub file in:

                                                                              %s" msgstr "Não é possível atualizar o arquivo .hgsub em:

                                                                              %s" msgid "Could not open .hgsub file" msgstr "Não foi possível abrir arquivo .hgsub" msgid "Cannot read the .hgsub file.

                                                                              Subrepository removal failed." msgstr "" "Não foi possível ler o arquivo .hgsub.

                                                                              A remoção do sub-repositório falhou." msgid "Subrepository not found" msgstr "Sub-repositório não encontrado" msgid "" "The selected subrepository was not found on the .hgsub file.

                                                                              Perhaps it " "has already been removed?" msgstr "" "O sub-repositório selecionado não foi encontrado no arquivo .hgsub.

                                                                              Talvez " "ele já tenha sido removido?" msgid "&Yes" msgstr "&Sim" msgid "&No" msgstr "&Não" msgid "Remove the selected repository?" msgstr "Remover o sub-repositório selecionado?" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" "Você realmente deseja remover o sub-repositório \"%s\" de seu " "repositório pai \"%s\"" msgid "Subrepository removed from .hgsub" msgstr "Sub-repositório removido do .hgsub" msgid "" "The selected subrepository has been removed from the .hgsub file.

                                                                              Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" "O sub-repositório selecionado foi removido do arquivo .hgsub.

                                                                              Lembre-se de " "consolidar esta mudança no .hgsub para completar a remoção do sub-" "repositório!" msgid "Could not update .hgsub file" msgstr "Não foi possível atualizar o arquivo .hgsub" msgid "Cannot update the .hgsub file.

                                                                              Subrepository removal failed." msgstr "" "Não foi possível atualizar o arquivo .hgsub.

                                                                              A remoção do sub-repositório " "falhou." #, python-format msgid "Unsupported repository type (%s)" msgstr "Tipo de repositório não suportado (%s)" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "Não é possível abrir sub-repositórios que não sejam do Mercurial" msgid "New Group" msgstr "Novo Grupo" msgid "Confirm Delete" msgstr "Confirmar Remoção" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "Apagar Grupo '%s' e todas as suas entradas?" msgid "Could not get subrepository list" msgstr "Não foi possível obter lista de sub-repositórios" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

                                                                              %s" msgstr "" "Não foi possível obter a lista de sub-repositórios para o repositório em:" "

                                                                              %s" msgid "Could not open some subrepositories" msgstr "Não foi possível abrir alguns sub-repositórios" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

                                                                              %s

                                                                              The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

                                                                              %s" msgstr "" "Não foi possível carregar completamente a lista de sub-repositórios do " "repositório pai em:

                                                                              %s

                                                                              Os seguintes sub-repositórios " "podem estar faltando, quebrados ou em um estado inconsistente, e não podem " "ser acessados:

                                                                              %s" msgid "Updating repository registry" msgstr "Atualizando registro de repositórios" #, python-format msgid "Loading repository %s" msgstr "Carregando repositório %s" msgid "Repository Registry updated" msgstr "Registro de repositórios atualizado" msgid "Close tab" msgstr "Fechar aba" msgid "Close other tabs" msgstr "Fechar outras abas" msgid "Undo close tab" msgstr "Reabrir aba" msgid "Reopen last closed tab" msgstr "Reabre a última aba fechada" msgid "Undo close other tabs" msgstr "Reabrir outras abas" msgid "Reopen last closed tab group" msgstr "Reabre o último grupo de abas fechado" msgid "Failed to open repository" msgstr "Falha ao abrir o repositório" msgid "&Sort" msgstr "&Ordenar" #, python-format msgid "Local Repository %s" msgstr "Repositório Local %s" #, python-format msgid "" "An exception happened while loading the subrepos of:

                                                                              \"%s\"

                                                                              " msgstr "" "Uma exceção ocorreu ao carregar os sub-repositórios de:

                                                                              \"%s\"

                                                                              " #, python-format msgid "The exception error message was:

                                                                              %s

                                                                              " msgstr "A mensagem de erro da exceção foi:

                                                                              %s

                                                                              " msgid "Click OK to continue or Abort to exit." msgstr "Clique OK para continuar ou Abortar para sair." msgid "Error loading subrepos" msgstr "Erro ao carregar sub-repositórios" msgid "Unable to update repository name" msgstr "Incapaz de atualizar nome do repositório" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "Ocorreu um erro ao atualizar o arquivo hgrc do repositório (%s)" msgid "default" msgstr "padrão" msgid "C&hoose Log Columns..." msgstr "Escol&her Colunas do Log..." msgid "&Resize Columns" msgstr "&Redimensionar Colunas" #, python-format msgid "Goto ancestor of %s and %s" msgstr "Ir para o ancestral de %s e %s" #, python-format msgid "Can't find revision '%s'" msgstr "A revisão '%s' não foi encontrada" msgid "Drag to change order" msgstr "Arraste para mudar a ordem" msgid "Workbench Log Columns" msgstr "Colunas de Log da Workbench" msgctxt "tab tooltip" msgid "Revision details" msgstr "Detalhes da revisão" msgctxt "tab tooltip" msgid "Commit" msgstr "Consolidação" msgctxt "tab tooltip" msgid "Search" msgstr "Pesquisa" msgctxt "tab tooltip" msgid "Console log" msgstr "Log do console" msgctxt "tab tooltip" msgid "Synchronize" msgstr "Sincronização" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "Ramo de Patches" #, python-format msgid "%s " msgstr "%s " #, python-format msgid "Found %d incoming changesets" msgstr "Encontradas %d revisões remotas" msgid "Pull" msgstr "Pull" msgid "Pull incoming changesets into your repository" msgstr "Traz revisões de entrada para o seu repositório (pull)" msgid "Reject incoming changesets" msgstr "Rejeita revisões de entrada" #, python-format msgid "Push current branch (%s)" msgstr "Faz o push do ramo atual (%s)" #, python-format msgid "Push up to current revision (#%d)" msgstr "Push até a revisão atual (#%d)" #, python-format msgid "Push up to revision #%d" msgstr "Push até a revisão #%d" msgid "Push all" msgstr "Enviar todas" msgid "no outgoing changesets" msgstr "nenhuma revisão a ser enviada" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "nenhuma revisão a ser enviada no ramo atual (%s) / %d no total" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "nenhuma revisão a ser enviada até a revisão atual (#%d) / %d no total" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "nenhuma revisão a ser enviada até a revisão (#%d) / %d no total" #, python-format msgid "%d outgoing changesets" msgstr "%d revisões a serem enviadas" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "%d reviisões a serem enviadas no ramo atual (%s) / %d no total" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "%d revisões a serem enviadas até a revisão atual (#%d) / %d no total" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "%d revisões a serem enviadas até a revisão (#%d) / %d no total" msgid "Nothing to push" msgstr "Nenhuma revisão a ser enviada" msgid "No revision found" msgstr "Nenhuma revisão encontrada" #, python-format msgid "%s - verify repository" msgstr "%s - verificar repositório" #, python-format msgid "%s - recover repository" msgstr "%s - recuperar repositório" msgid "No transaction available" msgstr "Nenhuma transação disponível" msgid "There is no rollback transaction available" msgstr "Não há registro de transação disponível para o rollback" msgid "Undo last commit?" msgstr "Desfazer a última consolidação?" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "" "Desfazer a consolidação mais recente (%d), preservando mudanças nos arquivos?" msgid "Undo last transaction?" msgstr "Desfazer a última transação?" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "Executar rollback para revisão %d (desfazendo o comando %s)?" msgid "Unable to determine working copy revision\n" msgstr "Não é possível determinar a cópia de trabalho da revisão\n" msgid "Remove current working revision?" msgstr "Remover a revisão de trabalho atual?" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" "Sua revisão de trabalho atual (%d) será removida por este rollback, deixando " "mudanças não consolidadas.\n" " Continuar?" msgid "Tab cannot exit" msgstr "Aba não pode existir" msgid "Pus&h" msgstr "Pus&h" msgid "Push to &Here" msgstr "Push Até &Aqui" msgid "Push Selected &Branch" msgstr "Push do &Ramo Selecionado" msgid "Push &All" msgstr "Push de &Todas" msgid "&Update..." msgstr "&Update... (Obter Revisão)" msgid "Bro&wse at Revision" msgstr "Ver na &Revisão" msgid "&Merge with Local..." msgstr "&Mesclar com Local..." msgid "&Tag..." msgstr "&Tag... (Etiqueta)" msgid "Boo&kmark..." msgstr "Boo&kmark... (Marcador)" msgid "Top&ic..." msgstr "Tóp&ico..." msgid "Sig&n..." msgstr "Assi&nar..." msgid "&Backout..." msgstr "&Backout... (Anular)" msgid "Revert &All Files..." msgstr "Reverter Todos os &Arquivos..." msgid "Copy &Hash" msgstr "Copiar &Hash" msgid "E&xport" msgstr "E&xportar" msgid "E&xport Patch..." msgstr "E&xportar Patch..." msgid "&Email Patch..." msgstr "Enviar Patch Por &Email..." msgid "&Archive..." msgstr "&Archive... (Empacotar)" msgid "&Bundle Rev and Descendants..." msgstr "Criar &Bundle de Rev e Descendentes..." msgid "Change &Phase to" msgstr "Mudar Fa&se para" msgid "&Graft to Local..." msgstr "En&xertar na Local..." msgid "Modi&fy History" msgstr "Modi&ficar Histórico" msgid "&Unapply Patch" msgstr "&Desaplicar Patch" msgid "Import to &MQ" msgstr "Importar para &MQ" msgid "MQ &Options" msgstr "&Opções da MQ" msgid "&Rebase..." msgstr "&Rebasear..." msgid "&Prune..." msgstr "&Podar..." msgid "&Strip..." msgstr "&Strip... (remover revisões)" msgid "Post to Re&view Board..." msgstr "Postar na Re&view Board..." msgid "Post to Phabricator..." msgstr "Envia para o Phabricator..." msgid "&Remote Update..." msgstr "Atualização &Remota..." msgid "Write diff file" msgstr "Escrever arquivo diff" msgid "Unable to write diff file" msgstr "Incapaz de escrever arquivo diff" msgid "Unable to compress history" msgstr "Não é possível comprimir o histórico" msgid "Selected changeset pair not related" msgstr "O par de revisões selecionado não é relacionado" msgid "Visual Diff..." msgstr "Diff Visual..." msgid "Export Diff..." msgstr "Exportar Diff..." msgid "Export Selected..." msgstr "Exportar Selecionado..." msgid "Email Selected..." msgstr "Enviar Selecionados por E-mail..." msgid "Copy Selected as Patch" msgstr "Copia a Selecionada como um Patch" msgid "Archive DAG Range..." msgstr "Faixa do DAG dos Arquivos..." msgid "Export DAG Range..." msgstr "Exportar Faixa do DAG..." msgid "Email DAG Range..." msgstr "Enviar por E-mail Intervalo do DAG..." msgid "Bundle DAG Range..." msgstr "Criar Bundle de Faixa DAG..." msgid "Bisect - Good, Bad..." msgstr "Biseccionar - Boa, Ruim..." msgid "Bisect - Bad, Good..." msgstr "Biseccionar - Ruim, Boa..." msgid "Compress History..." msgstr "Comprimir Histórico..." msgid "Rebase..." msgstr "Rebasear..." msgid "Goto common ancestor" msgstr "Ir para ancestral comum" msgid "Graft Selected to local..." msgstr "Enxertar Selecionadas na revisão local..." msgid "&Prune Selected..." msgstr "&Podar Selecionadas..." msgid "Post Selected to Review Board..." msgstr "Postar Selecionados para a Review Board..." msgid "Post Selected to Phabricator..." msgstr "Envia Selecionados para o Phabricator..." msgid "Apply patch" msgstr "Aplicar patch" msgid "Apply onto original parent" msgstr "Aplicar no pai original" msgid "Apply only this patch" msgstr "Aplicar somente este patch" msgid "Fold patches..." msgstr "Combinar patches..." msgid "Delete patches..." msgstr "Apagar patches..." msgid "Rename patch..." msgstr "Renomear patch..." msgid "Pull to here..." msgstr "Pull até aqui..." msgid "Visual diff..." msgstr "Diff visual..." msgid "Export patch" msgstr "Exportar patch" msgid "Patch Files (*.patch)" msgstr "Arquivos de patch (*.patch)" msgid "Cannot export revision" msgstr "Não é possível exportar revisão" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" "Não é possível exportar a revisão %s para o arquivo chamado:\n" "\n" "%s\n" msgid "There is already an existing folder with that same name." msgstr "Já existe uma pasta com o mesmo nome." msgid "Replace" msgstr "Substituir" msgid "Append" msgstr "Anexar" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" "Existem arquivos de patch para %d revisões (%s) no local selecionado (%s).\n" "\n" msgid "What do you want to do?\n" msgstr "O que você gostaria de fazer?\n" msgid "Replace the existing patch files.\n" msgstr "Substituir os arquivos de patch existentes.\n" msgid "Append the changes to the existing patch files.\n" msgstr "Anexar as mudanças aos arquivos de patch existentes.\n" msgid "Abort the export operation.\n" msgstr "Abortar esta operação export.\n" msgid "Patch files already exist" msgstr "Arquivos de patch já existem" msgid "Patch exported" msgstr "Patch exportado" #, python-format msgid "" "Revision #%d (%s) was exported to:

                                                                              %s%s%s" msgstr "" "A revisão #%d (%s) foi exportada para:

                                                                              %s%s%s" msgid "Patches exported" msgstr "Patches exportados" #, python-format msgid "%d patches were exported to:

                                                                              %s" msgstr "%d patches foram exportados para:

                                                                              %s" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

                                                                              Are you sure you want to use revert?

                                                                              (use " "update to checkout another revision)" msgstr "" "Reverter todos os arquivos irá descartar mudanças e deixar os arquivos " "afetados em estado modificado.

                                                                              Tem certeza de que deseja reverter?" "

                                                                              (use o comando update para obter outra revisão)" msgid "Filter b&y" msgstr "Filtrar &por" msgid "&Ancestors and Descendants" msgstr "&Ancestrais e Descendentes" msgid "A&uthor" msgstr "A&utor" msgid "&Branch" msgstr "&Ramo" msgid "&More Options..." msgstr "&Mais Opções..." msgid "Unable to merge" msgstr "Não é possível mesclar" msgid "Please select a revision to merge." msgstr "Por favor seleciona uma revisão para mesclar." #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "Não é possível mesclar com uma pseudo-revisão %r." msgid "You cannot merge a revision with itself" msgstr "Não é possível mesclar uma revisão com ela mesma" msgid "Unable to backout" msgstr "Incapaz de fazer o backout" msgid "Write bundle" msgstr "Escrever bundle" msgid "Backwards phase change requested" msgstr "Foi solicitada uma mudança de fase para trás" msgid "Do you really want to make this revision secret?" msgstr "Você realmente deseja tornar esta revisão secreta?" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" "Em geral é seguro mudar uma revisão da fase \"draft\" para a fase " "\"secret\".\n" "\n" "Mas há alguns detalhes a serem avaliados:\n" "\n" "- revisões na fase \"secret\" não são enviadas em uma operação push.\n" "Isso pode causar problemas se você se referir a uma revisão secreta\n" "de um sub-repositório.\n" "\n" "- Se esta revisão foi trazida de um servidor não-público, ela pode ser\n" "movida de volta para a fase \"draft\" se você trouxer novamente\n" "revisões desse servidor.\n" "\n" "Seja cuidadoso!" msgid "&Make secret" msgstr "&Torne secreta" msgid "&Cancel" msgstr "&Cancelar" msgid "Do you really want to force a backwards phase transition?" msgstr "Você realmente deseja forçar uma transição de fase para trás?" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" "Você está tentando mover a fase da revisão %d para trás,\n" "de \"%s\" para \"%s\".\n" "\n" "No entanto, \"%s\" é um nível de fase menor que \"%s\".\n" "\n" "Mover a fase para trás não é recomendado. Por exemplo,\n" "modificar uma revisão que já foi enviada para um servidor\n" "pode resultar na criação de múltiplas cabeças.\n" "\n" "Seja cuidadoso!" msgid "&Force" msgstr "&Forçar" msgid "Cannot import selected revision" msgstr "Não é possível importar a revisão selecionada" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" "A revisão selecionada (rev #%d) não pode ser importada porque não é uma " "descendente de qparent (rev #%d)" msgid "Invalid command" msgstr "Comando inválido" msgid "The selected command is empty" msgstr "O comando selecionado é vazio" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" "A seguinte mensagem de erro foi devolvida:\n" "\n" "%s" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" "\n" "\n" "Por favor verifique se o comando \"thg\" é válido." msgid "Failed to execute custom TortoiseHg command" msgstr "Falha ao executar comando personalizado do TortoiseHg" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "O comando \"%s\" falhou (código %d)." msgid "Failed to execute custom command" msgstr "Falha ao executar comando personalizado" #, python-format msgid "The command \"%s\" could not be executed." msgstr "O comando \"%s\" não pôde ser executado" #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" "Foi devolvida a seguinte mensagem de erro:\n" "\n" "\"%s\"\n" "\n" "Por favor certifique-se de que o caminho para o comando seja válido e que " "seja uma aplicação válida" msgid "&Edit Toolbar" msgstr "Barra de &Edição" msgid "&Refresh" msgstr "&Reler" msgid "&Filter Toolbar" msgstr "Barra de &Filtragem" #, python-format msgid "TortoiseHg: %s" msgstr "TortoiseHg: %s" msgid "S&tatus Bar" msgstr "Barra de S&tatus" #, python-format msgid "Resolve Conflicts - %s" msgstr "Resolução de Conflitos - %s" msgid "Local revision information" msgstr "Informações da revisão local" msgid "Other revision information" msgstr "Informações da outra revisão" msgid "Unresolved conflicts" msgstr "Conflitos não resolvidos" msgid "Mercurial Re&solve" msgstr "Re&solver com o Mercurial" msgid "Attempt automatic (trivial) merge" msgstr "Tenta fazer uma mesclagem automática (trivial)" msgid "Tool &Resolve" msgstr "&Resolver com a Ferramenta" msgid "Merge using selected merge tool" msgstr "Mescla usando a ferramenta de mesclagem selecionada" msgid "&Take Local" msgstr "Usar a &Local" msgid "Accept the local file version (yours)" msgstr "Aceita a versão local do arquivo (a sua versão)" msgid "Take &Other" msgstr "Usar a &Outra" msgid "Accept the other file version (theirs)" msgstr "Aceita a outra versão do arquivo (versão alheia)" msgid "&Mark as Resolved" msgstr "&Marcar como Resolvido" msgid "Mark this file as resolved" msgstr "Marca este arquivo como resolvido" msgid "Diff &Local to Ancestor" msgstr "Diff da &Local com Ancestral" msgid "&Diff Other to Ancestor" msgstr "Diff da &Outra com Ancestral" msgid "Resolved conflicts" msgstr "Conflitos resolvidos" msgid "&Edit File" msgstr "&Editar Arquivo" msgid "Edit resolved file" msgstr "Editar arquivo resolvido" msgid "3-&Way Diff" msgstr "Diff de 3 &Vias" msgid "Visual three-way diff" msgstr "Diff visual de três vias" msgid "Visual diff between resolved file and first parent" msgstr "Diff visual entre arquivo resolvido e primeiro pai" msgid "&Diff to Other" msgstr "Diff com &Outra" msgid "Visual diff between resolved file and second parent" msgstr "Diff visual entre arquivo resolvido e segundo pai" msgid "Mark as &Unresolved" msgstr "Marcar como &Não Resolvido" msgid "Mark this file as unresolved" msgstr "Marca este arquivo como não-resolvido" msgid "Detected merge/diff tools:" msgstr "Ferramentas de mesclagem/diff detectadas:" msgid "Command output" msgstr "Saída do comando" msgid "Unable to show subrepository files" msgstr "Não é possível mostrar arquivos do sub-repositório" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" "Diffs visuais de arquivos em sub-repositórios não são suportados. Eles não " "serão exibidos." msgid "There are merge conflicts to be resolved" msgstr "Há conflitos de mesclagem que devem ser resolvidos" msgid "All conflicts are resolved." msgstr "Todos os conflitos estão resolvidos." msgid "There are no conflicting file merges." msgstr "Não há mesclagens de arquivos conflitantes." msgid "Exit without finishing resolve?" msgstr "Sair sem terminar o resolve?" msgid "Unresolved conflicts remain. Are you sure?" msgstr "Os conflitos permanecem não-resolvidos. Tem certeza?" msgid "E&xit" msgstr "&Sair" msgid "Ext" msgstr "Ext" msgid "Repository" msgstr "Repositório" msgid "" msgstr "" msgid "File List Toolbar" msgstr "Barra de Lista de Arquivos" msgid "Ma&nifest Mode" msgstr "Modo do Ma&nifesto" msgid "Show all version-controlled files in tree view" msgstr "Mostra a árvore de todos os arquivos sob controle de versão" msgid "&Flat List" msgstr "Lista Não &Hierárquica" msgid "### filter text ###" msgstr "### texto do filtro ###" msgid "Changed by &This Commit" msgstr "Alterados por Es&ta Revisão" msgid "Show files changed by this commit" msgstr "Mostra os arquivos modificados por esta consolidação" msgid "Compare to &1st Parent" msgstr "Compare Com &1o. Pai" msgid "Compare to &2nd Parent" msgstr "Compare Com &2o. Pai" msgid "Toggle parent to be used as the base revision" msgstr "Alterna o pai a ser usado como revisão base" msgid "List Optio&ns" msgstr "&Opções de Lista" #, python-format msgid "%s - Revision Details (%s)" msgstr "%s - Detalhes da Revisão (%s)" #, python-format msgid "Revert - %s" msgstr "Reverter - %s" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "Reverter %s para seu conteúdo na seguinte revisão?" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "Reverter %d arquivos para seus conteúdos na seguinte revisão?" msgid "Revert all files to this revision" msgstr "Reverter todos os arquivos para esta revisão" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "primeiro pai da revisão %d (ou seja, a revisão %d)" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "segundo pai da revisão %d (ou seja, a revisão %d)" msgid "null revision (i.e. remove file(s))" msgstr "revisão nula (ou seja, remove os arquivos)" msgid "Changeset:" msgstr "Revisão:" msgid "Child:" msgstr "Filha:" msgid "Predecessors:" msgstr "Predecessores:" msgid "Successors:" msgstr "Sucessores:" msgid "Head is closed!" msgstr "A cabeça está fechada!" msgid "Changesets where username contains string." msgstr "Revisões em que o nome de usuário contém o texto." msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" "Busca o texto em mensagem de consolidação, nome de usuário e nomes de " "arquivos modificados." msgid "Like \"keyword(string)\" but accepts a regex." msgstr "Como \"keyword(texto)\" mas aceita expressões regulares." msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" "Revisões não encontradas no repositório de destino especificado, ou na " "localização de push padrão." msgid "The named bookmark or all bookmarks." msgstr "O marcador pedido ou todos os marcadores." msgid "The named tag or all tags." msgstr "A etiqueta pedida ou todas as etiquetas." msgid "Changeset is tagged." msgstr "Revisão é etiquetada." msgid "Changeset is a named branch head." msgstr "A revisão é uma cabeça de ramo nomeado." msgid "Changeset is a merge changeset." msgstr "A revisão é uma revisão de mesclagem." msgid "Changeset is closed." msgstr "A revisão está fechada." msgid "" "Changesets within the interval, see help dates" msgstr "" "Revisões dentro do intervalo, veja help dates" msgid "Greatest common ancestor of the two changesets." msgstr "Ancestral comum mais recente de duas revisões." msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" "Localiza revisões cujos campos correspondem aos campos das revisões dadas" msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" "Revisões que afetam arquivos que correspondem ao padrão. Veja help patterns" msgid "Changesets which modify files matched by pattern." msgstr "Revisões que modificam arquivos correspondentes ao padrão." msgid "Changesets which add files matched by pattern." msgstr "Revisões que adicionam arquivos correspondentes ao padrão." msgid "Changesets which remove files matched by pattern." msgstr "Revisões que removem arquivos correspondentes ao padrão." msgid "Changesets containing files matched by pattern." msgstr "Revisões que contêm arquivos correspondentes ao padrão." msgid "All changesets belonging to the branches of changesets in set." msgstr "" "Todas as revisões pertencentes aos ramos nomeados das revisões no conjunto." msgid "Members of a set with no children in set." msgstr "Membros do conjunto que não possuem revisões filhas." msgid "Changesets which are descendants of changesets in set." msgstr "Revisões descendentes de revisões no conjunto." msgid "Changesets that are ancestors of a changeset in set." msgstr "Revisões ancestrais de revisões no conjunto." msgid "Child changesets of changesets in set." msgstr "Revisões filhas das revisões no conjunto." msgid "The set of all parents for all changesets in set." msgstr "O conjunto de todos os pais para todas as revisões no conjunto." msgid "First parent for all changesets in set, or the working directory." msgstr "" "O primeiro pai de todas as revisões no conjunto, ou do diretório de trabalho." msgid "Second parent for all changesets in set, or the working directory." msgstr "" "O segundo pai de todas as revisões do conjunto, ou do diretório de trabalho." msgid "Changesets with no parent changeset in set." msgstr "Revisões sem pais contidos no conjunto." msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" "Um conjunto vazio, se qualquer revisão no conjunto pedido não for " "encontrada; caso contrário, todas as revisões no conjunto pedido." msgid "Changeset with lowest revision number in set." msgstr "Revisão com o menor número de revisão no conjunto." msgid "Changeset with highest revision number in set." msgstr "Revisão com o maior número de revisão no conjunto." msgid "First n members of a set." msgstr "Os primeiros n membros do conjunto." msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" "Ordena conjunto de acordo com as chaves. A ordem padrão é ascendente, " "especifique uma chave como \"-chave\" para ordem descendente." msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "" "Um apelido para \"::.\" (ancestrais do primeiro pai da cópia de trabalho)." msgid "All changesets, the same as 0:tip." msgstr "Todas as revisões, o mesmo que 0:tip." msgid "Revision Set Query" msgstr "Consulta de Conjunto de Revisões" msgid "all revisions converted from subversion" msgstr "todas as revisões convertidas do subversion" msgid "changeset which represents converted svn revision" msgstr "revisão que representa uma revisão convertida do subversion" msgid "Common sets" msgstr "Conjuntos comuns" msgid "File pattern sets" msgstr "Conjuntos por Padrões de Arquivo" msgid "Set Ancestry" msgstr "Ancestralidade de Conjuntos" msgid "Set Logic" msgstr "Lógica de Conjuntos" msgid "" "help " "revsets" msgstr "" "help " "revsets" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" "\n" "Recebida interrupção de teclado, abortando.\n" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "falha ao criar novo processo GUI: %s\n" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "não é possível ler o arquivo \"%s\". Ignorado.\n" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" "thg: o comando '%s' é ambíguo:\n" " %s\n" #, python-format msgid "thg: unknown command '%s'\n" msgstr "thg: comando desconhecido '%s'\n" #, python-format msgid "thg %s: %s\n" msgstr "thg %s: %s\n" #, python-format msgid "thg: %s\n" msgstr "thg: %s\n" #, python-format msgid "abort: %s!\n" msgstr "abortado: %s!\n" #, python-format msgid "abort: %s\n" msgstr "abortado: %s\n" #, python-format msgid "(%s)\n" msgstr "(%s)\n" msgid "option --config may not be abbreviated!" msgstr "a opção --config não pode ser abreviada!" msgid "invalid arguments" msgstr "argumentos inválidos" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "formato de profiling '%s' não reconhecido - Ignorado\n" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" "lsprof não disponível - instale a partir de http://codespeak.net/svn/user/" "arigo/hack/misc/lsprof/" msgid "repository root directory or symbolic path name" msgstr "diretório raiz do repositório ou nome de caminho simbólico" msgid "enable additional output" msgstr "ativar saída adicional" msgid "suppress output" msgstr "suprimir saída" msgid "display help and exit" msgstr "mostrar ajuda e sair" msgid "set/override config option (use 'section.name=value')" msgstr "define/redefine opção de configuração (use 'seção.nome=valor')" msgid "enable debugging output" msgstr "habilita saída de depuração" msgid "start debugger" msgstr "iniciar depurador" msgid "print command execution profile" msgstr "imprime perfil de execução do comando" msgid "do not fork GUI process" msgstr "não faz fork do processo GUI" msgid "always fork GUI process" msgstr "sempre desconecta processos GUI do terminal" msgid "read file list from file" msgstr "ler lista de arquivos a partir do arquivo" msgid "read file list from file encoding utf-8" msgstr "lê lista de arquivos usando codificação utf-8" msgid "thg about" msgstr "thg about" msgid "thg add [FILE]..." msgstr "thg add [ARQUIVO]..." msgid "revision to annotate" msgstr "revisão a ser anotada" msgid "open to line" msgstr "abrir na linha" msgid "initial search pattern" msgstr "padrão de busca inicial" msgid "thg annotate" msgstr "thg annotate" #, python-format msgid "invalid line number: %s" msgstr "número de linha inválido: %s" msgid "revision to archive" msgstr "revisão a ser empacotada" msgid "thg archive" msgstr "thg archive" msgid "merge with old dirstate parent after backout" msgstr "mescla com pai do diretório de trabalho original após o backout" msgid "parent to choose when backing out merge" msgstr "escolhe o pai a ser usado ao anular uma mesclagem" msgid "revision to backout" msgstr "revisão a ser anulada" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "thg backout [OPÇÃO]... [[-r] REV]" msgid "thg bisect" msgstr "thg bisect" msgid "revision" msgstr "revisão" msgid "thg bookmarks [-r REV] [NAME]" msgstr "thg bookmarks [-r REV] [NOME]" msgid "only one new bookmark name allowed" msgstr "apenas um novo marcador permitido" msgid "the clone will include an empty working copy (only a repository)" msgstr "o clone incluirá uma cópia de trabalho vazia (apenas um repositório)" msgid "revision, tag or branch to check out" msgstr "revisão, etiqueta ou ramo a ser obtido" msgid "include the specified changeset" msgstr "inclui a revisão especificada" msgid "clone only the specified branch" msgstr "clona apenas o ramo especificado" msgid "use pull protocol to copy metadata" msgstr "usar o protocolo pull para copiar metadados" msgid "use uncompressed transfer (fast over LAN)" msgstr "usa transferência não comprimida (mais rápida em uma rede local)" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "thg clone [OPÇÃO]... [ORIGEM] [DEST]" msgid "record user as committer" msgstr "gravar o usuário como autor da consolidação" msgid "record datecode as commit date" msgstr "gravar código de data como data de consolidação" msgid "thg commit [OPTIONS] [FILE]..." msgstr "thg commit [OPÇÕES] [ARQUIVO]..." msgid "thg debugblockmatcher" msgstr "thg debugblockmatcher" msgid "thg debugbugreport [TEXT]" msgstr "thg debugbugreport [TEXTO]" msgid "thg debugconsole" msgstr "thg debugconsole" msgid "thg debuglighthg" msgstr "thg debuglighthg" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "thg debugruncommand -- COMANDO [ARGUMENTO]..." msgid "no command specified" msgstr "nenhum comando especificado" msgid "thg drag_copy SOURCE... DEST" msgstr "thg drag_copy ORIGEM... DEST" msgid "thg drag_move SOURCE... DEST" msgstr "thg drag_move ORIGEM... DEST" msgid "a revision to send" msgstr "uma revisão a ser enviada" msgid "thg email [REVS]" msgstr "thg email [REVISÕES]" msgid "use only one form to specify the revision" msgstr "use apenas uma forma para especificar a revisão" msgid "select the specified revision" msgstr "seleciona a revisão especificada" msgid "side-by-side comparison of revisions" msgstr "comparação lado a lado de revisões" msgid "thg filelog [OPTION]... FILE" msgstr "thg filelog [OPÇÃO]... ARQUIVO" msgid "requires a single filename" msgstr "requer um único nome de arquivo" msgid "thg forget [FILE]..." msgstr "thg forget [ARQUIVO]..." msgid "revisions to graft" msgstr "revisões a serem enxertadas" msgid "thg graft [-r] REV..." msgstr "thg graft [-r] REV..." msgid "You must provide revisions to graft" msgstr "Você deve fornecer revisões a serem enxertadas" msgid "ignore case during search" msgstr "ignora maiúsculas e minúsculas durante a busca" msgid "thg grep" msgstr "thg grep" msgid "thg guess" msgstr "thg guess" msgid "thg help [COMMAND]" msgstr "thg help [COMANDO]" msgid "global options:" msgstr "opções globais:" msgid "use \"thg help\" for the full list of commands" msgstr "use \"thg help\" para a lista completa de comandos" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "" "use \"thg help\" para a lista completa de comandos ou \"thg -v\" para " "detalhes" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "use \"thg -v help%s\" para mostrar apelidos e opções globais" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "use \"thg -v help%s\" para mostrar opções globais" msgid "" "list of commands:\n" "\n" msgstr "" "lista de comandos:\n" "\n" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" "\n" "apelidos: %s\n" msgid "(no help text available)" msgstr "(nenhum texto de ajuda disponível)" msgid "options:\n" msgstr "opções:\n" msgid "no commands defined\n" msgstr "sem comandos definidos\n" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "" "Thg - Ferramentas de Interface Gráfica do TortoiseHg para o Mercurial (Hg)\n" msgid "" "basic commands:\n" "\n" msgstr "" "comandos básicos:\n" "\n" #, python-format msgid " (default: %s)" msgstr " (padrão: %s)" msgid "thg hgignore [FILE]" msgstr "thg hgignore [ARQUIVO]" msgid "import to the patch queue (MQ)" msgstr "importar para a fila de patches (MQ)" msgid "thg import [OPTION] [SOURCE]..." msgstr "thg import [OPÇÃO] [ORIGEM]..." msgid "thg init [DEST]" msgstr "thg init [DEST]" msgid "thg lock" msgstr "thg lock" msgid "search for a given text or revset" msgstr "procura por um texto ou revset" msgid "(DEPRECATED)" msgstr "(OBSOLETO)" msgid "open a new workbench window" msgstr "abre uma nova janela workbench" msgid "thg log [OPTIONS] [FILE]" msgstr "thg log [OPÇÕES] [ARQUIVO]" msgid "cannot specify both -k/--query and filenames" msgstr "não se pode especificar simultaneamente -k/--query e nomes de arquivo" msgid "revision to display" msgstr "revisão a ser exibida" msgid "thg manifest [-r REV] [FILE]" msgstr "thg manifest [-r REV] [ARQUIVO]" msgid "revision to merge" msgstr "revisão a ser mesclada" msgid "thg merge [[-r] REV]" msgstr "thg merge [[-r] REV]" msgid "Merge revision not specified or not found" msgstr "Revisão de mesclagem não especificada ou não encontrada" msgid "a revision to post" msgstr "uma revisão a ser postada" msgid "thg postreview [-r] REV..." msgstr "thg postreview [-r] REV..." msgid "reviewboard extension not enabled" msgstr "extensão reviewboard não habilitada" #, python-format msgid "see %(url)s" msgstr "veja %(url)s" msgid "no revisions specified" msgstr "nenhuma revisão especificada" msgid "revisions to prune" msgstr "revisões a serem podadas (com prune)" msgid "thg prune [-r] REV..." msgstr "thg prune [-r] REV..." msgid "thg purge" msgstr "thg purge" msgid "keep original changesets" msgstr "mantém revisões originais" msgid "keep original branch names" msgstr "mantém nomes de ramo originais" msgid "rebase from the specified changeset" msgstr "rebaseia a partir da revisão especificada" msgid "rebase onto the specified changeset" msgstr "rebaseia para a revisão especificada" msgid "thg rebase -s REV -d REV [--keep]" msgstr "thg rebase -s REV -d REV [--keep]" msgid "Rebase already in progress" msgstr "O rebaseamento já está em progresso" msgid "Resuming rebase already in progress" msgstr "A retomada do rebaseamento já está em progresso" msgid "You must provide source and dest arguments" msgstr "Você deve passar os parâmetros origem e destino" msgid "thg rejects [FILE]" msgstr "thg rejects [ARQUIVO]" msgid "You must provide the path to a file" msgstr "Você deve passar o caminho de um arquivo" msgid "thg remove [FILE]..." msgstr "thg remove [ARQUIVO]..." msgid "thg rename [SOURCE] [DEST]" msgstr "thg rename [ORIGEM] [DEST]" msgid "field to give initial focus" msgstr "campo a receber o foco inicial" msgid "thg repoconfig" msgstr "thg repoconfig" msgid "thg resolve" msgstr "thg resolve" msgid "the revision to show" msgstr "a revisão a ser exibida" msgid "thg revdetails [-r REV]" msgstr "thg revdetails [-r REV]" msgid "thg revert [FILE]..." msgstr "thg revert [ARQUIVO]..." msgid "revision to update" msgstr "revisão para atualizar" msgid "thg rupdate [[-r] REV]" msgstr "thg rupdate [[-r] REV]" msgid "name of the hgweb config file (serve more than one repository)" msgstr "" "nome do arquivo de configuração do hgweb (para servir mais de um repositório)" msgid "name of the hgweb config file (DEPRECATED)" msgstr "nome do arquivo de configuração do hgweb (OBSOLETO)" msgid "thg serve [--web-conf FILE]" msgstr "thg serve [--web-conf ARQUIVO]" msgid "thg shellconfig" msgstr "thg shellconfig" msgid "thg shelve" msgstr "thg shelve" msgid "sign even if the sigfile is modified" msgstr "assina mesmo se o arquivo sigfile estiver modificado" msgid "make the signature local" msgstr "faz uma assinatura local" msgid "the key id to sign with" msgstr "o id da chave com a qual assinar" msgid "do not commit the sigfile after signing" msgstr "não consolidar o arquivo sigfile após assinar" msgid "use as commit message" msgstr "usa como mensagem de consolidação" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "thg sign [-f] [-l] [-k CHAVE] [-m TEXTO] [REV]" msgid "Please enable the Gpg extension first." msgstr "Por favor habilite a extensão Gpg." msgid "show files without changes" msgstr "mostra arquivos sem mudanças" msgid "show ignored files" msgstr "mostra arquivos ignorados" msgid "thg status [OPTIONS] [FILE]" msgstr "thg status [OPÇÕES] [ARQUIVO]" msgid "discard uncommitted changes (no backup)" msgstr "descarta mudanças não consolidadas (sem backup)" msgid "do not back up stripped revisions" msgstr "não faz backup das revisões removidas" msgid "do not modify working copy during strip" msgstr "não modificar a cópia de trabalho durante o strip" msgid "revision to strip" msgstr "revisão a ser removida" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "thg strip [-k] [-f] [-n] [[-r] REV]" msgid "open the bookmark sync window" msgstr "abre a janela de sincronização de marcadores" msgid "thg sync [OPTION]... [PEER]" msgstr "thg sync [OPÇÃO]... [REMOTO]" msgid "replace existing tag" msgstr "substitui etiqueta existente" msgid "make the tag local" msgstr "usa uma etiqueta local" msgid "revision to tag" msgstr "revisão a ser etiquetada" msgid "remove a tag" msgstr "remove uma etiqueta" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "thg tag [-f] [-l] [-m TEXTO] [-r REV] [NOME]" msgid "wait until the second ticks over" msgstr "aguarde até o segundo passar" msgid "notify the shell for paths given" msgstr "notifica o shell para os caminhos dados" msgid "remove the status cache" msgstr "remover o cache de estado" msgid "show the contents of the status cache (no update)" msgstr "mostrar o conteúdo do estado do cache (sem atualizar)" msgid "update all repos in current dir" msgstr "atualizar todos os repos no dir atual" msgid "thg thgstatus [OPTION]" msgstr "thg thgstatus [OPÇÃO]" msgid "thg topics [-r REV] [NAME]" msgstr "thg topics [-r REV] [NOME]" msgid "Please enable the Topic extension first." msgstr "Por favor primeiro habilite a extensão Topic." msgid "only one new topic name allowed" msgstr "só é permitido um novo nome de tópico" msgid "thg update [-C] [[-r] REV]" msgstr "thg update [-C] [[-r] REV]" msgid "thg userconfig" msgstr "thg userconfig" msgid "changeset to view in diff tool" msgstr "visualiza o conteúdo dessa revisão na ferramenta de diferenças" msgid "revisions to view in diff tool" msgstr "compara essas revisões na ferramenta de diferenças" msgid "bundle file to preview" msgstr "arquivo bundle para pré-visualizar" msgid "launch visual diff tool" msgstr "iniciar a ferramenta de diff visual" msgid "print license" msgstr "imprimir licença" msgid "thg version [OPTION]" msgstr "thg version [OPÇÃO]" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "Diálogos do TortoiseHg (versão %s), Mercurial (versão %s)\n" msgid "Location:" msgstr "Localização:" msgid "Update to:" msgstr "Atualizar para:" msgid "Options:" msgstr "Opções:" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "Descarta mudanças remotas, sem backup (-C/--clean)" msgid "Perform a push before updating (-p/--push)" msgstr "Executa um push antes de atualizar (-p/--push)" msgid "Allow pushing new branches (--new-branch)" msgstr "Permite o envio de novos ramos (--new-branch)" msgid "Force push to remote location (-f/--force)" msgstr "Força um push para um local remoto (-f/--force)" msgid "remove working directory" msgstr "remove a cópia de trabalho" msgid "unknown revision!" msgstr "revisão desconhecida!" #, python-format msgid "Remote Update - %s" msgstr "Atualização Remota - %s" msgid "&Update" msgstr "At&ualizar" msgid "Log" msgstr "Log" msgid "Repositories" msgstr "Repositórios" #, python-format msgid "Running at %s" msgstr "Executando em %s" msgid "Stopped" msgstr "Parado" msgid "TortoiseHg Web Server" msgstr "Servidor Web do TortoiseHg" msgid "Web Server" msgstr "Servidor Web" msgid "Port:" msgstr "Porta:" msgid "Status:" msgstr "Estado:" msgid "Start" msgstr "Iniciar" msgid "Settings" msgstr "Configurações" msgid "" msgstr "" msgid "&True" msgstr "&Verdadeiro" msgid "&False" msgstr "&Falso" msgid "&Unspecified" msgstr "&Não especificado" #, python-format msgid "%dpt" msgstr "%dpt" msgid "Bold" msgstr "Negrito" msgid "Italic" msgstr "Itálico" msgid "Strike" msgstr "Riscado" msgid "Underline" msgstr "Sublinhado" msgid "&Set..." msgstr "&Definir..." msgid "&Clear" msgstr "&Limpar" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "Falha ao carregar rastreador de tíquetes: '%s': %s. " msgid "&Browse..." msgstr "&Navegar..." msgid "UI Language" msgstr "Idioma da Interface" msgid "Specify your preferred user interface language (restart needed)" msgstr "" "Especifique seu idioma preferido para a interface (é necessário reiniciar)" msgid "Three-way Merge Tool" msgstr "Utilitário de Merge de 3 Vias" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" "Programa gráfico para resolver conflitos de mesclagem. Se não especificado, " "o Mercurial usará a primeira ferramenta aplicável que encontrar em seu " "sistema ou seu utilitário interno de mesclagem (que coloca marcações de " "conflito nos arquivos). Escolha internal:merge para forçar o uso de " "marcações de conflito, internal:prompt para sempre selecionar ou a versão " "local ou a outra, ou internal:dump para colocar as versões dos arquivos no " "diretório de trabalho para mesclagem manual" msgid "Visual Diff Tool" msgstr "Ferramenta de Diff Visual" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" "Especifica a ferramenta de diff visual, como descrito na seção [merge-tools] " "dos seus arquivos de configuração do Mercurial. Se deixada em branco, o " "TortoiseHg usará a ferramenta de mesclagem selecionada. Se isso não " "funcionar, ele usará a primeira ferramenta adequada que encontrar." msgid "Visual Editor" msgstr "Editor visual" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" "Especifica o editor visual, como descrito na seção [editor-tools] dos " "arquivos de configuração do Mercurial. Se não for especificado, o " "TortoiseHg usará a primeira ferramenta adequada que encontrar." msgid "CLI Editor" msgstr "Editor CLI" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" "O editor usado pelos comandos do Mercurial para receber do usuário entradas " "de múltiplas linhas. Mais notavelmente, mensagens de consolidação." msgid "Shell" msgstr "Shell" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
                                                                              Default, Windows: cmd.exe /" "K title %(reponame)s
                                                                              Default, OS X: not set
                                                                              Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" "Especifique o comando a ser executado para abrir sua aplicação de terminal " "de shell preferida. Se o valor incluir a string %(reponame)s, ela será " "substituída pelo nome do repositório; similarmente, %(root)s será o caminho " "completo para o repositório. É necessário reiniciar a aplicação para aplicar " "mudanças nesta configuração.
                                                                              O padrão no Windows é: cmd.exe /K title " "%(reponame)s
                                                                              O padrão no OS X é: indefinido
                                                                              O padrão em outras " "plataformas é: xterm -T \"%(reponame)s\"" msgid "Immediate Operations" msgstr "Operações Imediatas" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" "Lista separada por espaços de operações de shell que você gostaria que " "fossem executadas imediatamente, sem interação com o usuário. Os comandos " "são \"add remove revert forget\". Padrão: None (deixe em branco)" msgid "Tab Width" msgstr "Largura de Tabulações" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" "Especifica o número de espaços para os quais uma tabulação deve expandir em " "diversas janelas do TortoiseHg. Padrão: 8" msgid "Force Repo Tab" msgstr "Força Aba de Repositórios" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "" "Sempre mostrar a aba de repositórios, mesmo que apenas um esteja aberto. O " "padrão é False." msgid "Monitor Repo Changes" msgstr "Monitoração de Mudanças
                                                                              em Repositórios" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" "Especifica os tipos de sistemas de arquivo nos quais o TortoiseHg deve " "monitorar mudanças em repositórios: 'always' (todos) ou 'localonly' (apenas " "locais, excluindo unidades de rede). Padrão: localonly" msgid "Max Diff Size" msgstr "Tamanho Max Do Diff" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" "O tamanho máximo do arquivo (em KB) para o qual o TortoiseHg irá mostrar " "alterações nas janelas de changelog, status e consolidação. O valor zero " "implica nenhum limite. O valor padrão é 1024 (1MB)" msgid "Fork GUI" msgstr "Bifurcar GUI" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" "Ao executar pela linha de comando, cria um processo em segundo plano para " "executar janelas gráficas. Esta configuração é ignorada ao executar o " "TortoiseHg como um pacote de aplicativo do OSX. Valor padrão: True" msgid "Full Path Title" msgstr "Título com Caminho Completo" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" "Mostra o caminho completo do repositório no título da janela ao invés de " "apenas o nome do diretório raiz. Padrão: False" msgid "Auto-resolve merges" msgstr "Resolver mesclagens
                                                                              automaticamente" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" "Indica se o TortoiseHg deve tentar resolver automaticamente mudanças de " "ambos os lados do mesmo arquivo, e apenas reportar conflito de mesclagem " "quando isso não for possível. Quando Falso, todos os arquivos com mudanças " "em ambos os lados da mesclagem irão reportar conflito, mesmo que as mudanças " "sejam em diferentes partes do arquivo. Em qualquer dos casos, quando houver " "conflitos, o usuário será convidado a resolvê-los manualmente. Padrão: " "Verdadeiro." msgid "New Repo Skeleton" msgstr "Novo Skeleton de Repositório" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" "Se especificado, arquivos nesse diretório, por exemplo .hgignore, são " "copiados para o repositório recém criado." msgid "Default Clone Destination" msgstr "Destino Padrão do Clone" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" "Se especificado, o campo de destino na janela de clonagem será pré-" "preenchido com este caminho. Caso contrário, será pré-preenchido com o " "diretório de trabalho atual." msgid "Workbench" msgstr "Workbench" msgid "Single Workbench Window" msgstr "Janela Workbench Única" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" "Especifica se deve ser usada uma única janela Workbench. Se esta opção for " "desabilitada, uma nova janela do TortoiseHg será aberta a cada vez que o " "comando \"Hg Workbench\" do menu de contexto do Windows Explorer for " "ativado. Padrão: True" msgid "Default widget" msgstr "Widget padrão" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" "Seleciona o widget inicial que será mostrado ao abrir um repositório. O " "padrão é: revdetails." msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" "Seleciona a revisão inicial que será selecionada ao abrir um repositório. " "Você pode selecionar \"current\" (o pai do diretório de trabalho), a \"tip\" " "atual ou \"workingdir\" (o conteúdo do diretório de trabalho). O padrão é " "\"current\"." msgid "" "Open new tabs next\n" "to the current tab" msgstr "" "Abre novas abas\n" "após a aba atual" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" "Determina se novas abas devem ser abertas após a aba atual. Se False, novas " "abas serão abertas após a última aba. Padrão: True" msgid "Author Coloring" msgstr "Coloração por Autor" msgid "Color changesets by author name. Default: False" msgstr "Colore revisões de acordo com o nome do autor. Valor padrão: Falso" msgid "Full Authorname" msgstr "Nome de Autor Completo" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" "Mostra o nome completo do autor na visualização de log. Se não for " "habilitado, mostra apenas uma parte curta, geralmente o nome sem o endereço " "de email. Padrão: False" msgid "Task Tabs" msgstr "Abas de Tarefas" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" "Mostra abas na lateral da metade inferior de cada widget de repositório, " "permitindo a troca de abas de tarefas sem usar a barra de ferramentas. " "Padrão: off (desligado)" msgid "Task Toolbar Order" msgstr "Ordem na Barra de Tarefas" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
                                                                              Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
                                                                              Valid names are: log commit sync grep and " "pbranch.
                                                                              Default: log commit grep pbranch | sync" msgstr "" "Especifica quais botões de tarefas serão exibidos na barra de ferramentas de " "tarefas, e em qual ordem.
                                                                              Digite uma lista de nomes de botões de tarefas. " "Separadores podem ser adicionados usando o caractere \"|\".
                                                                              Os nomes " "válidos são: log, commit, sync, manifest, grep e pbranch.
                                                                              Valor padrão: " "log commit manifest grep pbranch | sync" msgid "Long Summary" msgstr "Sumário longo" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" "Se True, concatena múltiplas linhas do sumário da revisão, truncando-as em " "80 caracteres conforme necessário. Padrão: False" msgid "Log Batch Size" msgstr "Tamanho do Lote de Registros" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "" "O número de revisões para ler e mostrar no visualizador de changelog de uma " "única vez. Valor padrão: 500" msgid "Dead Branches" msgstr "Ramos Mortos" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" "Lista separada por vírgulas de nomes de ramo que devem ser ignorados ao " "construir uma lista de nomes de ramo para um repositório. Padrão: nenhum (em " "branco)" msgid "Branch Colors" msgstr "Cores de Ramos" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" "Lista separada por espaços de nomes de ramos e cores, com a forma: \"nome:" "#XXXXXX\". Espaços e dois pontos no nome do ramo devem ser prefixados com " "uma barra invertida (\\). Outros caracteres podem ser codificados da mesma " "maneira; por exemplo \\u0040 será decodificado como o caractere @, e \\n " "como uma mudança de linha. Padrão: nenhum (em branco)" msgid "Hide Tags" msgstr "Ocultar Etiquetas" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" "Lista separada por espaços de etiquetas que não serão exibidas. Um exemplo " "útil: especifique \"qbase qparent qtip\" para ocultar as etiquetas " "padronizadas inseridas pela extensão Mercurial Queues (MQ). Padrão: nenhuma " "(em branco)" msgid "Activate Bookmarks" msgstr "Ativar Marcadores" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

                                                                              • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
                                                                              • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
                                                                              • never: Never show any prompt to " "activate any bookmarks.

                                                                              Default: prompt" msgstr "" "Determina quando o TortoiseHg mostrará uma janela de seleção para ativar um " "marcador ao atualizar para uma revisão que contenha um ou mais marcadores." "

                                                                              • auto: Ao atualizar para uma revisão que contenha apenas um " "marcador, este será ativado automaticamente. Mostra a janela de seleção " "apenas se houver mais de um marcador na revisão de destino.
                                                                              • prompt: O padrão. Mostra a janela de seleção ao atualizar para uma revisão que " "contenha um ou mais marcadores.
                                                                              • never: Nunca exibe a janela de " "seleção para ativar marcadores.

                                                                              Padrão: prompt" msgid "Show Family Line" msgstr "Mostra Linha de Família" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

                                                                              Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" "Mostra dependências indiretas entre revisões do grafo filtrado por revset. " "Padrão: True

                                                                              Nota: O cálculo de linhas de família pode ser lento em " "alguns casos. Esta opção deve ser removida se esse problema de desempenho " "for resolvido." msgid "Use optimized graph layouter" msgstr "Usar disposição otimizada no grafo" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

                                                                              Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" "Usa um algoritmo alternativo para disposição do grafo para repositórios " "grandes. Padrão: False (desativado)

                                                                              Nota: Isto colore arestas " "usando informações de ramo e não mostra arestas de enxerto, mesmo que sejam " "pedidas." msgctxt "config item" msgid "Commit" msgstr "Consolidação" msgid "Username" msgstr "Nome de Usuário" msgid "" "Name associated with commits. The common format is:
                                                                              Full Name <" "email@example.com>" msgstr "" "Nome de autor registrado em revisões. O formato mais comum é:
                                                                              Nome " "Completo <enderecodeemail@exemplo.com>" msgid "Ask Username" msgstr "Solicita Nome de Usuário" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" "Se um nome de usuário não for fornecido, ele será solicitado " "interativamente. Padrão: False" msgid "Summary Line Length" msgstr "Tamanho da linha do sumário" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" "Comprimento sugerido das linhas de mensagens de consolidação. Uma linha " "vertical vermelha marcará este comprimento. CTRL-E irá ajustar o parágrafo " "atual ao comprimento de linha especificado. Padrão: 80" msgid "Close After Commit" msgstr "Fechar Após Consolidação" msgid "Close the commit tool after every successful commit. Default: False" msgstr "" "Fecha a ferramenta de consolidação após consolidar com sucesso. Padrão: False" msgid "Push After Commit" msgstr "Push Após Commit" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" "Tenta fazer o push para a URL especificada ou um apelido após cada " "consolidação feita com sucesso. Padrão: não faz push" msgid "Auto Commit List" msgstr "Lista de Consolidação Automática" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" "Lista separada por vírgulas de arquivos que são automaticamente incluídos em " "toda consolidação. Para uso apenas em configurações de repositório. Padrão: " "nenhum (em branco)" msgid "Auto Exclude List" msgstr "Lista de Exclusão Automática" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" "Lista separada por vírgulas de arquivos que serão automaticamente " "desmarcados quando as janelas de status e de consolidação forem abertas. " "Padrão: Nenhuma (deixar em branco)" msgid "English Messages" msgstr "Mensagens em Inglês" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" "Gera mensagens de consolidação em inglês mesmo que as variáveis de ambiente " "LANGUAGE ou LANG estejam definidas para um outro idioma. Esta configuração é " "usada pelas janelas de Merge, Tag e Backout. Padrão: False" msgid "New Commit Phase" msgstr "Fase de Novos Commits" msgid "The phase of new commits. Default: draft" msgstr "A fase de novos commits. Padrão: draft" msgid "Secret MQ Patches" msgstr "Patches MQ Secretos" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "" "Faz com que patches MQ permaneçam na fase secreta (ao invés de rascunho). " "Padrão: False" msgid "Check Subrepo Phase" msgstr "Verificar Fase de Sub-Repositório" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" "Verifica a fase da revisão atual de cada sub-repositório. Para valores " "diferentes de \"ignore\", as fases das revisões atuais de cada sub-" "repositório são verificadas antes da consolidação no repositório principal. " "Padrão: \"follow\"" msgid "Monitor working
                                                                              directory changes" msgstr "Monitora mudanças no
                                                                              diretório de trabalho" msgid "" "Select when the working directory status list will be refreshed:
                                                                              - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
                                                                              TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
                                                                              - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
                                                                              - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
                                                                              Default: auto" msgstr "" "Seleciona quando serão relidas mudanças na lista de status do diretório de " "trabalho:
                                                                              - auto: [padrão] o TortoiseHg irá decidir quando " "reler a lista de status do diretório de trabalho.
                                                                              O TortoiseHg irá " "atualizar a lista de status sempre que realizar uma ção que possa " "potencialmente modificar o diretório de trabalho. Isso pode não incluir " "mudanças que acontecerem fora do controle do TortoiseHg;
                                                                              - sempre: em adição às atualizações automáticas acima, também relê a lista de " "status sempre que o usuário clicar na \"revisão do diretório de trabalho\" " "ou no \"ícone de Commit\" na barra de tarefas da workbench;
                                                                              - " "alwayslocal: como em \"always\" mas restringe releituras " "forçadas a repositórios locais.
                                                                              Padrão: auto" msgid "Confirm adding unknown files" msgstr "Confirmar adição de
                                                                              arquivos desconhecidos" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" "Determina se o TortoiseHg deve mostrar uma caixa de diálogo de confirmação " "antes de adicionar novos arquivos em uma consolidação. Se True, a janela de " "confirmação será exibida. Se False, arquivos novos selecionados serão " "incluídos na consolidação sem confirmação. O padrão é True." msgid "Confirm deleting files" msgstr "Confirmar remoção de arquivos" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" "Determina se o TortoiseHg deve mostrar uma caixa de diálogo de confirmação " "antes de remover arquivos em uma consolidação. Se True, a janela de " "confirmação será exibida. Se False, arquivos apagados selecionados serão " "removidos na consolidação sem confirmação. O padrão é True." msgid "Sync" msgstr "Sync" msgid "After Pull Operation" msgstr "Após a Operação Pull" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" "Operação realizada diretamente após um pull realizado com sucesso. update " "equivale a pull --update, fetch equivale à extensão fetch, rebase equivale a " "pull --rebase, updateorrebase equivale a pull -u --rebase. Padrão: nenhuma" msgid "Default Push" msgstr "Push Default" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

                                                                              • all: The default. Push all changes in all " "branches.
                                                                              • branch: Push all changes in the current branch.
                                                                              • revision: Push the changes in the current branch up to the current revision.

                                                                              Default: all" msgstr "" "Selecione as revisões que serão por default enviadas em um push, sempre que " "você clicar no botão Push.

                                                                              • all: O padrão. Envia todas as " "mudanças em todos os ramos.
                                                                              • branch: Envia todas as mudanças " "no ramo atual.
                                                                              • revision: Envia as mudanças no ramo atual, " "até a revisão atual.

                                                                              Padrão: all" msgid "Confirm Push" msgstr "Confirmação de Push" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" "Determina se o TortoiseHg deve mostrar uma caixa de diálogo de confirmação " "antes de enviar revisões em uma operação push. Se False, o push será " "realizado sem qualquer diálogo de confirmação. O padrão é True" msgid "Target Combo" msgstr "Combo de Alvos" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

                                                                              • auto: The default. Show the combo if more than one target " "configured.
                                                                              • always: Always show the combo.

                                                                              Default: auto" msgstr "" "Determina se o TortoiseHg mostrará uma combo de alvo na barra de " "sincronização.

                                                                              • auto: O padrão. Mostra a combo se mais de um " "alvo estiver configurado.
                                                                              • always: Sempre mostra a combo.

                                                                                Padrão: auto" msgid "SSH Command" msgstr "Comando SSH" msgid "" "Command to use for SSH connections.

                                                                                Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" "Comando a ser usado em conexões SSH.

                                                                                Padrão: \"ssh\" ou \"TortoisePlink." "exe -ssh -2\" (Windows)" msgid "Subrepository Features:" msgstr "Funcionalidades de Sub-Repositórios:" msgid "Allow Hg Subrepos" msgstr "Permite Sub-Repositórios Hg" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" "Determina se sub-repositórios do Mercurial são permitidos no diretório de " "trabalho. Padrão: True" msgid "Allow Git Subrepos" msgstr "Permite Sub-Repositórios Git" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

                                                                                See the security note before enabling Git " "subrepos." msgstr "" "Determina se sub-repositórios do Git são permitidos no diretório de " "trabalho. Padrão: False

                                                                                Veja a nota de segurança antes " "de habilitar sub-repositórios do Git." msgid "Allow SVN Subrepos" msgstr "Permite Sub-Repositórios SVN" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

                                                                                See the security note before enabling " "Subversion subrepos." msgstr "" "Determina se sub-repositórios do Subversion são permitidos no diretório de " "trabalho. Padrão: False

                                                                                Veja a nota de segurança antes " "de habilitar sub-repositórios do Subversion." msgid "Server" msgstr "Servidor" msgid "Repository Details:" msgstr "Detalhes do Repositório:" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" "Nome do repositório a ser usado na interface web e pelo TortoiseHg como " "abreviação. O padrão é o diretório de trabalho." msgid "Encoding" msgstr "Codificação" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" "Codificação dos arquivos no repositório, usada pela interface web e pelo " "TortoiseHg." msgid "'Publishing' repository" msgstr "Repositório 'Publishing'" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" "Controla o comportamento da fase rascunho ao servir um repositório. Se for " "True, revisões enviadas usando push se tornam públicas tanto no cliente como " "no servidor, e revisões recebidas usando pull ou clone se tornam públicas no " "cliente. O padrão é True." msgid "Web Server:" msgstr "Servidor Web:" msgid "Textual description of the repository's purpose or contents." msgstr "Descrição visual do destino ou conteúdo do repositório." msgid "Contact" msgstr "Contato" msgid "Name or email address of the person in charge of the repository." msgstr "Nome ou endereço de email da pessoa responsável pelo repositório." msgid "Style" msgstr "Estilo" msgid "Which template map style to use" msgstr "Que mapa de estilos usar" msgid "Archive Formats" msgstr "Formatos de Arquivo" msgid "Comma separated list of archive formats allowed for downloading" msgstr "" "Lista de formatos de arquivos separados por vírgulas permitidos para download" msgid "Port" msgstr "Porta" msgid "Port to listen on" msgstr "Porta onde escutar" msgid "Push Requires SSL" msgstr "Push exige SSL" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" "Se SSL deve ser exigido para revisões de entrada para prevenir vazamento de " "senhas." msgid "Stripes" msgstr "Listras" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" "Quantas linhas uma \"listra de zebra\" deve abranger em saídas com múltiplas " "linhas. O padrão é 1; coloque 0 para desabilitar." msgid "Max Files" msgstr "Máx. de Arquivos" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "Número máximo de arquivos listados por revisão. Padrão: 10" msgid "Max Changes" msgstr "Máx. de Alterações" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "Número máximo de mudanças listadas no changelog. Padrão: 10" msgid "Allow Push" msgstr "Permitir Push" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" "Especifica se o repositório deve aceitar push para os usuários. Se vazio ou " "não definido, push não é permitido. O valor especial \"*\" faz com que " "qualquer usuário remoto possa enviar revisões, incluindo usuários não " "autenticados. De outro modo, apenas operações push de usuários autenticados " "presentes nessa lista (separada por espaços ou \",\") serão aceitas. O " "conteúdo dessa lista de aceitação é examinado após o conteúdo da lista de " "restrição." msgid "Deny Push" msgstr "Recusar Push" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" "Especifica se o repositório deve recusar push para os usuários. Se vazio ou " "não definido, push não é negado. O valor especial \"*\" faz com que o push " "não seja aceito para nenhum usuário remoto. De outro modo, operações push de " "usuários presentes nessa lista (separada por espaços ou \",\"), além de " "usuários não autenticados, serão recusadas. O conteúdo dessa lista de " "restrição é examinado antes do conteúdo da lista de aceitação." msgid "Proxy" msgstr "Proxy" msgid "Host" msgstr "Servidor" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "" "Nome e porta (opcional) do servidor proxy, por exemplo \"meuproxy:8000\"" msgid "Bypass List" msgstr "Sem Proxy" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "" "Opcional. Lista separada por vírgulas de nomes de servidores para os quais " "não usar o proxy" msgid "Optional. User name to authenticate with at the proxy server" msgstr "Opcional. Nome de usuário para autenticação no servidor proxy" msgid "Password" msgstr "Senha" msgid "Optional. Password to authenticate with at the proxy server" msgstr "Opcional. Senha de autenticação no servidor proxy" msgid "From" msgstr "De" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "Endereço de correio a usar no cabeçalho \"De\" e envelope SMTP" msgid "To" msgstr "Para" msgid "Comma-separated list of recipient email addresses" msgstr "Lista de destinatários de correio electrónico separados por vírgulas" msgid "Cc" msgstr "Cc" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "Lista de destinatários Cc de email separados por vírgulas" msgid "Bcc" msgstr "Bcc" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "Lista de destinatários Bcc de email separados por vírgulas" msgid "method" msgstr "método" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" "Opcional. Método de envio de mensagens de email. Se o valor for \"smtp" "\" (padrão), use SMTP (configurado abaixo). De outro modo, use como nome de " "um programa a ser executado que atue como o sendmail (recebe a opção \"-f\" " "para remetente, lista de destinatários na linha de comando, mensagem na " "entrada padrão). Normalmente, definir como \"sendmail\" ou \"/usr/sbin/" "sendmail\" basta para usar o sendmail para enviar mensagens." msgid "SMTP Host" msgstr "Servidor SMTP" msgid "Host name of mail server" msgstr "Nome do servidor de correio" msgid "SMTP Port" msgstr "Porta SMTP" msgid "Port to connect to on mail server. Default: 25" msgstr "Porta usada pelo servidor de email. Valor padrão: 25" msgid "SMTP TLS" msgstr "SMTP TLS" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "" "Método para habilitar TLS ao conectar com o servidor de e-mail. Padrão: none " "(nenhum)" msgid "SMTP Username" msgstr "Nome de usuário SMTP" msgid "Username to authenticate to mail server with" msgstr "Nome de usuário para autenticar no servidor de email" msgid "SMTP Password" msgstr "Senha SMTP" msgid "Password to authenticate to mail server with" msgstr "Senha para autenticar no servidor de email" msgid "Local Hostname" msgstr "Servidor local" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "" "Nome de servidor que o remetente pode usar para se identificar para o " "servidor de email." msgid "Diff and Annotate" msgstr "Diff e Annotate" msgid "Patch EOL" msgstr "Fim de Linha de Patches" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" "Normaliza terminações de linha durante e após a aplicação do patch para lf " "ou crlf. \"Strict\" não faz normalização; \"Auto\" faz detecção por arquivo, " "e é o valor recomendado. Padrão: strict" msgid "Git Format" msgstr "Formato Git" msgid "Use git extended diff header format. Default: False" msgstr "Usa o formato estendido de diff do git. Padrão: Falso" msgid "MQ Git Format" msgstr "Formato Git na MQ" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" "Se definida como 'auto', a mq automaticamente usará patches no formato git " "se for necessário para evitar perda de mudanças de modos de execução dos " "arquivos, registros de cópia ou arquivos binários. Se definida como 'keep', " "a mq obedecerá a seção de configuração [diff] ao preservar patches git " "existentes durante um qrefresh. Se definida como 'yes' ou 'no', mq ignorará " "a seção [diff] e sempre gerará patches git ou comuns, com possível perda de " "dados no segundo caso. Padrão: auto" msgid "No Dates" msgstr "Sem datas" msgid "Do not include modification dates in diff headers. Default: False" msgstr "" "Não incluir as datas de modificação nos cabeçalhos diff. Valor padrão: Falso" msgid "Show Function" msgstr "Mostrar Função" msgid "Show which function each change is in. Default: False" msgstr "Mostra em qual função cada mudança ocorre. Padrão: Falso" msgid "Ignore White Space" msgstr "Ignorar Espaço em Branco" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "" "Ignora espaços em branco ao comparar linhas em visualizações de diff. " "Padrão: False" msgid "Ignore WS Amount" msgstr "Quantidade de Espaços Ignorada" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "" "Ignora mudanças na quantidade de espaços em branco em visualizações de diff. " "Padrão: False" msgid "Ignore Blank Lines" msgstr "Ignorar linhas em branco" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "" "Ignora mudanças compostas apenas por linhas em branco em visualizações de " "diff. Padrão: False" msgid "Annotate:" msgstr "Annotate:" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" "Ignora espaços em branco ao comparar linhas na visualização annotate. " "Padrão: False" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" "Ignora mudanças na quantidade de espaços em branco na visualização annotate. " "Padrão: False" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "" "Ignora mudanças compostas apenas por linhas em branco na visualização " "annotate. Padrão: False" msgid "Fonts" msgstr "Fontes" msgid "Message Font" msgstr "Fonte da Mensagem" msgid "Font used to display commit messages. Default: monospace 10" msgstr "" "Fonte usada para mostrar mensagens de consolidação. Padrão: monospace 10" msgid "Diff Font" msgstr "Fonte do Diff" msgid "Font used to display text differences. Default: monospace 10" msgstr "Fonte usada para mostrar diferenças de texto. Padrão: monospace 10" msgid "ChangeLog Font" msgstr "Fonte do ChangeLog" msgid "Font used to display changelog data. Default: monospace 10" msgstr "Fonte usada para mostrar os dados do changelog. Padrão: monospace 10" msgid "Output Font" msgstr "Fonte de Saída" msgid "Font used to display output messages. Default: sans 8" msgstr "Fonte usada para mostrar mensagens de saída. Padrão: sans 8" msgid "Extensions" msgstr "Extensões" msgid "Tools" msgstr "Ferramentas" msgid "Hooks" msgstr "Ganchos" msgid "Issue Tracking" msgstr "Rastreamento de Tíquetes" msgid "Issue Regex" msgstr "Expressão Regular do Tíquete" msgid "Defines the regex to match when picking up issue numbers." msgstr "Define a expressão regular usada para encontrar números de tíquete." msgid "Issue Link" msgstr "Link para Tíquete" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" "Define o comando a ser executado se um número de tíquete for reconhecido. " "Você pode incluir grupos em issue.regex, e tokens {n} correspondentes em " "issue.link (onde n é um inteiro não negativo). {0} se refere à string " "inteira encontrada por issue.regex, {1} se refere ao primeiro grupo, e assim " "por diante. Se nenhum token {n} for encontrado em issue.link, a string " "completa encontrada será anexada." msgid "Inline Tags" msgstr "Etiquetas Inline" msgid "Show tags at start of commit message." msgstr "Mostra etiquetas no começo da mensagem de consolidação." msgid "Mandatory Issue Reference" msgstr "Referência Obrigatória para Tíquete" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" "Ao consolidar, exige que uma referência para um tíquete seja especificada. " "Se habilitada, a expressão regular configurada em 'Issue Regex' deve " "encontrar uma correspondência na mensagem de consolidação." msgid "Issue Tracker Plugin" msgstr "Plugin de Rastreaamento de Tíquetes" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" "Configura um plugin COM IBugTraqProvider ou IBugTraqProvider2 de " "rastreamento de tíquetes." msgid "Configure Issue Tracker" msgstr "Configurar Rastreador de Tíquetes" msgid "Configure the selected COM Bug Tracker plugin." msgstr "Configura o plugin COM de rastreador de tíquetes selecionado." msgid "Issue Tracker Trigger" msgstr "Gatilho do Rastreador de Tíquetes" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

                                                                                • never: Do not update the Issue Tracker " "state automatically.
                                                                                • commit: Update the Issue Tracker state after " "a successful commit.

                                                                                Default: never" msgstr "" "Determina quando o rastreador de tíquetes será atualizado pelo TortoiseHg. " "As configurações possíveis são:

                                                                                • never: Não atualiza o " "rastreador de tíquetes automaticamente.
                                                                                • commit: Atualiza o " "rastreador de tíquetes após um commit realizado com sucesso.

                                                                                Padrão: " "never" msgid "Changeset Link" msgstr "Link para Revisão" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
                                                                                The template string " "uses a normal mercurial template syntax, such as:

                                                                                • {node|short} : replaced by " "the 12 digit revision id.
                                                                                • {rev} : replaced by the revision number." "
                                                                                • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
                                                                                For example, in order to " "link to bitbucket commit pages you can set this to:
                                                                                https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
                                                                                You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
                                                                                https://github.com/torvalds/" "linux/commit/{gitnode}
                                                                                https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
                                                                                " msgstr "" "Uma string de modelo que, se definida, transforma em links o número de " "revisão e hashes curtos mostrados nos painéis de revisão.
                                                                                A string de " "modelo usa a sintaxe de modelos do Mercurial, como em:
                                                                                • {node|short} : será " "substituída pelo identificador de revisão de 12 dígitos hexadecimais." "
                                                                                • {rev} : será substituída pelo número da revisão.
                                                                                • {gitnode} : se a " "extensão hg-git estiver habilitada, e o repositório for um clone do git, " "será substituída pelo hash de revisão do git.
                                                                                Por exemplo, para criar " "links para páginas no Bitbucket, você pode definir o modelo como:
                                                                                https://" "bitbucket.org/tortoisehg/thg/commits/{node|short}
                                                                                Para criar um link para " "um repositório GitHub/GitLab (se hg-git estiver instalada):
                                                                                https://" "github.com/torvalds/linux/commit/{gitnode}
                                                                                https://gitlab.com/tortoisegit/" "tortoisegit/commit/{gitnode}
                                                                                " msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "Caminho para exemplo da review board \"http://demo.reviewboard.org\"" msgid "User name to authenticate with review board" msgstr "Nome de usuário para autenticar com a review board" msgid "Password to authenticate with review board" msgstr "Senha para autenticar com a review board" msgid "Server Repository ID" msgstr "ID do Servidor de Repositórios" msgid "The default repository id for this repo on the review board server" msgstr "O id padrão para este repositório no servidor de review board" msgid "Target Groups" msgstr "Grupos Alvo" msgid "A comma separated list of target groups" msgstr "Uma lista separada por vírgula de grupos alvo" msgid "Target People" msgstr "Pessoas Alvo" msgid "A comma separated list of target people" msgstr "Uma lista separada por vírgulas de pessoas alvo" msgid "Kiln Bfiles" msgstr "Kiln Bfiles" msgid "Patterns" msgstr "Padrões" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" "Arquivos com nomes que combinarem com os padrões especificados serão " "adicionados como bfiles automaticamente" msgid "Size" msgstr "Tamanho" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" "Arquivos que tiverem ao menos o tamanho especificado (em megabytes) serão " "adicionados como bfiles" msgid "System Cache" msgstr "Cache de Sistema" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "" "Caminho para o diretório onde será armazenado um cache de sistema de bfiles" msgid "Simplelock" msgstr "Simplelock" msgid "Lock Clone" msgstr "Clone de Bloqueio" msgid "" "Location of local clone of organizational lock repository.

                                                                                This repository " "must contain a \"locked\" text file" msgstr "" "Clone local do repositório de organização de bloqueio.

                                                                                Este repositório " "deve conter um arquivo texto \"locked\"" msgid "Largefiles" msgstr "Largefiles" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" "Arquivos com nomes que combinarem com os padrões especificados serão " "adicionados como largefiles automaticamente" msgid "Minimum Size" msgstr "Tamanho Mínimo" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" "Arquivos que tiverem ao menos o tamanho especificado (em megabytes) serão " "adicionados como largefiles" msgid "User Cache" msgstr "Cache do Usuário" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" "Caminho para o diretório onde será armazenado o cache de largefiles do " "usuário" msgid "Projrc" msgstr "Projrc" msgid "Require confirmation" msgstr "Exige confirmação" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

                                                                                • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
                                                                                • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
                                                                                • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
                                                                                " msgstr "" "Determina se confirmações do usuário serão solicitadas para a atualização do " "arquivo de configuração \"projrc\" local quando o arquivo projrc remoto " "mudar. Os valores possíveis são:
                                                                                • always: [padrão] " "Sempre solicita confirmação antes de atualizar o arquivo .hg/projrc local." "
                                                                                • first: Abre uma janela de confirmação quando o repositório for " "clonado ou quando um arquivo projrc remoto for encontrado pela primeira vez." "
                                                                                • never: Atualiza o arquivo .hg/projrc local automaticamente, sem " "pedir confirmação.
                                                                                " msgid "Servers" msgstr "Servidores" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" "Lista de servidores dos quais arquivos de configuração \"projrc\" devem ser " "trazidos. Use \"*\" para sincronizar com todos os servidores. Use \"default" "\" para trazer do caminho de sincronização padrão. O padrão é: não trazer de " "nenhum servidor." msgid "Include" msgstr "Incluir" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" "Lista de configurações que serão trazidas do arquivo de configuração do " "projeto. O padrão é não trazer nenhuma configuração." msgid "Exclude" msgstr "Excluir" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" "Lista de configurações que não serão trazidas do arquivo de configuração do " "projeto. O padrão é não excluir nenhuma das configurações incluídas." msgid "Update on incoming" msgstr "Atualiza em incoming" msgid "" "Let the user update the projrc on incoming:
                                                                                • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
                                                                                • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
                                                                                • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                                                                                  Default: never" msgstr "" "Permite que o usuário atualize o projrc na operação incoming:" "

                                                                                  • never: [padrão] Mostra se o arquivo projrc remoto " "mudou, mas não atualiza (nem pergunta se deve atualizar) o arquivo projrc " "local.
                                                                                  • prompt: Se houver mudanças no arquivo projrc, _sempre_ " "exibe uma janela de confirmação, perguntando ao usuário se ele deseja " "atualizar o arquivo projrc local.
                                                                                  • auto: Se houver mudanças no " "arquivo projrc, usa o valor da chave de configuração \"projrc.confirm\" para " "determinar se uma janela de confirmação deve ser exibida antes de atualizar " "o arquivo projrc local.

                                                                                  Padrão: never" msgid "GnuPG" msgstr "GnuPG" msgid "Specify the path to GPG. Default: gpg" msgstr "Especifica o caminho para GPG. Padrão: gpg" msgid "Key ID" msgstr "ID da chave" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "ID da chave GPG associado ao usuário. Padrão: Nenhum (deixe em branco)" msgid "TortoiseHg Settings" msgstr "Configurações do TortoiseHg" msgid "Iniparse package not found" msgstr "Pacote iniparse não encontrado" msgid "Can't change settings without iniparse package - view is readonly." msgstr "" "Não se pode mudar configurações sem o pacote iniparse - executando em modo " "somente leitura" #, python-format msgid "%s's global settings" msgstr "Configurações globais de %s" msgid "No repository found" msgstr "Nenhum repositório encontrado" msgid "no repo at " msgstr "nenhum repo em " #, python-format msgid "%s project settings (.hg/projrc)" msgstr "configurações do projeto %s (.hg/projrc)" #, python-format msgid "%s repository settings" msgstr "definições do repositório %s" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "" "Reinicie todas as aplicações do TortoiseHg para que as seguintes mudanças " "façam efeito:" msgid "Apply changes before exit?" msgstr "Aplicar mudanças antes de sair?" msgid "&No (discard changes)" msgstr "&Não (descartar mudanças)" msgid "Reload" msgstr "Reler" msgid "Settings File:" msgstr "Arquivo de Configurações:" msgid "Confirm Save" msgstr "Confirmar Gravação" msgid "Save changes before editing?" msgstr "Salvar mudanças antes de editar?" msgid "&Save" msgstr "&Salvar" msgid "Confirm Reload" msgstr "Confirmação de Releitura" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" "Mudanças não gravadas serão perdidas.\n" "Você deseja reler?" msgid "Unable to create a Mercurial.ini file" msgstr "Incapaz de criar um arquivo .ini do Mercurial" msgid "Insufficient access rights, reverting to read-only mode." msgstr "Direitos de acesso insuficientes, revertendo ao modo somente leitura." msgid "Context Menu" msgstr "Menu de contexto" msgid "Top menu items:" msgstr "Itens no menu principal:" msgid "Sub menu items:" msgstr "Itens no submenu:" msgid "Menu Behavior" msgstr "Comportamento do Menu" msgid "Hide context menu outside repositories" msgstr "Ocultar o menu de contexto fora de repositórios" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" "Não exibe os itens de menu em pastas não versionadas (pressione a tecla " "shift ao clicar para exibir os itens)" msgid "Icons" msgstr "Ícones" msgid "Overlays" msgstr "Sobreposições" msgid "Enabled overlays" msgstr "Ícones de sobreposição habilitados" msgid "Local disks only" msgstr "Apenas discos locais" msgid "Enabled Overlay Handlers" msgstr "Gerenciadores de Ícones Sobrepostos Ativados" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "" "Aviso: isso afeta todos os clientes Tortoise, e é necessário deslogar após a " "mudança" msgid "Added" msgstr "Adicionado" msgid "Locked*" msgstr "Travado*" msgid "Ignored*" msgstr "Ignorado*" msgid "Unversioned" msgstr "Não Versionado" msgid "Readonly*" msgstr "Somente Leitura*" msgid "Deleted*" msgstr "Apagado*" msgid "*: not used by TortoiseHg" msgstr "*: não utilizados pelo TortoiseHg" msgid "Taskbar" msgstr "Barra de tarefas" msgid "Show Icon" msgstr "Mostrar Ícone" msgid "Highlight Icon" msgstr "Destacar ícone" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" "Você pode mudar o conjunto de ícones nas configurações do " "TortoiseSVN" msgid "Explorer Extension Settings - TortoiseHg" msgstr "Configurações da Extensão do Explorer - TortoiseHg" msgid "Clear" msgstr "Limpar" msgid "Clear the current shelf file" msgstr "Limpa o arquivo de adiamento atual" msgid "Delete the current shelf file" msgstr "Apaga o arquivo de adiamento atual" msgid "Left Toolbar" msgstr "Barra de Ferramentas Esquerda" msgid "Delete selected chunks" msgstr "Apaga trechos selecionados" msgid "Move all files right" msgstr "Mover todos os arquivos para a direita" msgid "Move selected file right" msgstr "Mover o arquivo selecionado para a direita" msgid "Edit file" msgstr "Editar arquivo" msgid "Move selected chunks right" msgstr "Mover trechos selecionados para a direita" msgid "Refresh Toolbar" msgstr "Atualizar Barra de Ferramentas" msgid "Refresh" msgstr "Reler" msgid "New Shelf" msgstr "Novo Adiamento" msgid "Right Toolbar" msgstr "Barra de Ferramentas Direita" msgid "Move selected chunks left" msgstr "Mover trechos selecionados para a esquerda" msgid "Move selected file left" msgstr "Mover o arquivo selecionado para a esquerda" msgid "Move all files left" msgstr "Mover todos os arquivos para a esquerda" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "" "Cópias de segurança dos arquivos alterados podem ser encontradas em .hg/" "Trashcan/" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "TortoiseHg Shelve (Adiamento) - %s" msgid "Delete selected chunks from working copy?" msgstr "Remover da cópia de trabalho os trechos selecionados?" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "Remover do arquivo de adiamento %s os trechos selecionados?" msgid "Are you sure?" msgstr "Você tem certeza?" msgid "TortoiseHg New Shelf Name" msgstr "TortoiseHg: Novo Nome de Adiamento" msgid "Specify name of new shelf" msgstr "Especifique o nome do novo adiamento" msgid "Bad filename" msgstr "Nome de arquivo ruim" #, python-format msgid "A shelf name cannot contain %s" msgstr "Um nome de arquivo de adiamento não pode conter %s" msgid "File already exists" msgstr "O arquivo já existe" msgid "A shelf file of that name already exists" msgstr "Um arquivo de adiamento com tal nome já existe" msgid "New shelf created" msgstr "Novo adiamento criado" #, python-format msgid "Delete shelf file %s?" msgstr "Apagar o arquivo de adiamento %s?" msgid "Shelf deleted" msgstr "Adiamento removida" msgid "Revert all working copy changes?" msgstr "Reverter todas as mudanças da cópia de trabalho?" #, python-format msgid "Clear contents of shelf file %s?" msgstr "Limpar o conteúdo do arquivo de adiamento %s?" msgid "Shelf cleared" msgstr "Adiamento sem conteúdo" #, python-format msgid "Shelf: %s" msgstr "Adiamento: %s" #, python-format msgid "Patch: %s" msgstr "Patch: %s" msgid "Key:" msgstr "Chave:" msgid "Local sign" msgstr "Torna a assinatura local" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "" "Assine mesmo que o arquivo de assinatura esteja modificado (-f/--force)" msgid "No commit" msgstr "Não consolida o arquivo de assinaturas após assinar" msgid "Use custom commit message:" msgstr "Usar mensagem de consolidação personalizada:" msgid "&Sign" msgstr "&Assinar" #, python-format msgid "Sign - %s" msgstr "Assinatura - %s" msgid "Signature has been added" msgstr "A assinatura foi adicionada" msgid "Repository command still running" msgstr "Um comando do repositório ainda está em execução" msgid "Filter:" msgstr "Filtro:" msgid "Check all files" msgstr "Marcar todos os arquivos" msgid "Uncheck all files" msgstr "Desmarcar todos os arquivos" msgid "Status File List Toolbar" msgstr "Barra de Status de Arquivos" msgid "Remove filter, show root" msgstr "Remover filtro, exibir raiz" #, python-format msgid "%s - status (selection filtered)" msgstr "%s - status (selecão filtrada)" #, python-format msgid "%s - status" msgstr "%s - status" msgid "Check" msgstr "Marcar" msgid "Uncheck" msgstr "Desmarcar" msgid "status" msgstr "status" msgid "Failed to refresh" msgstr "Erro ao reler arquivos" msgid "No appropriate files" msgstr "Nenhum arquivo apropriado" msgid "No files found for this operation" msgstr "Nenhum arquivo encontrado para esta operação" msgid "Stat" msgstr "Stat" msgid "M" msgstr "M" msgid "Filename" msgstr "Nome do arquivo" msgid "Size (KB)" msgstr "Tamanho (KB)" #, python-format msgid "Checked count: %d" msgstr "Marcados: %d" msgid ", resolved merge" msgstr ", mesclagem resolvida" msgid ", unresolved merge" msgstr ", mesclagem não resolvida" #, python-format msgid "%s is modified" msgstr "%s é modificado" msgid "modified" msgstr "modificado" #, python-format msgid "%s is added" msgstr "%s é adicionado" msgid "added" msgstr "adicionado" #, python-format msgid "%s is removed" msgstr "%s é removido" msgid "removed" msgstr "removido" #, python-format msgid "%s is not tracked (unknown)" msgstr "%s é não-rastreado (desconhecido)" msgid "unknown" msgstr "desconhecido" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "%s foi apagado fora do hg, mas ainda está rastreado" msgid "missing" msgstr "faltando" #, python-format msgid "%s is ignored" msgstr "%s é ignorado" msgid "ignored" msgstr "ignorado" #, python-format msgid "%s is not modified (clean)" msgstr "%s é não-modificado (limpo)" msgid "clean" msgstr "limpo" #, python-format msgid "%s is a dirty subrepo" msgstr "%s é um sub-repositório sujo" msgid "subrepo" msgstr "sub-repositório" msgid "Check for incoming changes from selected URL" msgstr "Incoming: lista mudanças da URL selecionada não presentes no local" msgid "Pull incoming changes from selected URL" msgstr "Pull: traz mudanças da URL selecionada" msgid "Detect outgoing changes to selected URL" msgstr "Outgoing: detecta mudanças não presentes na URL selecionada" msgid "Push outgoing changes to selected URL" msgstr "Push: envia mudanças para a URL selecionada" msgid "Sync Bookmarks" msgstr "Sincronizar Marcadores" msgid "Email outgoing changesets for remote repository" msgstr "Enviar por e-mail revisões destinadas ao repositório remoto" msgid "Manage pending perforce changelists" msgstr "Gerenciar changelists pendentes do perforce" msgid "Unbundle" msgstr "Unbundle" msgid "Selected Options:" msgstr "Opções Selecionadas:" msgid "Path Edit Toolbar" msgstr "Barra de Edição de Caminhos" msgid "Security" msgstr "Segurança" msgid "Manage HTTPS connection security and user authentication" msgstr "Gerencia segurança da conexão HTTPS e autenticação de usuário" msgid "Save" msgstr "Gravar" msgid "Save current URL under an alias" msgstr "Salva a URL atual sob um apelido" msgid "Paths in Repository Settings:" msgstr "Caminhos nas Configurações do Repositório:" msgid "Related Paths:" msgstr "Caminhos Relacionados:" msgid "branch: " msgstr "ramo: " msgid "bookmark: " msgstr "marcador: " #, python-format msgid "rev: %d (%s)" msgstr "rev: %d (%s)" msgid "Post Pull: " msgstr "Após Pull: " msgid "&Edit..." msgstr "&Editar..." msgid "&Remove..." msgstr "&Remover..." msgid "Repository not local" msgstr "O repositório não é local" msgid "A terminal shell cannot be opened for remote" msgstr "Um shell de terminal não pode ser aberto para um repositório remoto" msgid "Confirm path delete" msgstr "Confirmação de remoção de caminho" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "Remover %s de seu arquivo de configuração de repositório?" msgid "Select repository" msgstr "Selecione o repositório" msgid "No host specified" msgstr "Servidor não especificado" msgid "Please set a valid URL to continue." msgstr "Por favor selecione uma URL válida para continuar." msgid "No remote repository URL or path set" msgstr "Nenhum caminho ou URL de repositório remoto definidos" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

                                                                                  Please type and save a remote repository path on the " "Sync widget." msgstr "" "Não foi configurado nenhum caminho ou URL de repositório remoto default válido para este repositório.

                                                                                  Por favor digite e salve um caminho para " "um repositório remoto no widget de sincronização." msgid "Redundant authentication info" msgstr "Informações de autenticação redundantes" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" "Você possui informações de autenticação configuradas para este servidor e " "passadas dentro da URL. Retirar informações de autenticação desta URL?" msgid "sync command already running" msgstr "comando sync já está em execução" #, python-format msgid "Getting incoming changesets from %s..." msgstr "Recebendo revisões de %s..." #, python-format msgid "Found incoming changesets from %s" msgstr "Encontradas revisões provenientes de %s" #, python-format msgid "No incoming changesets from %s" msgstr "Nenhuma revisão proveniente de %s" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "Incoming de %s abortado, retornou %d" #, python-format msgid "Pulling from %s..." msgstr "Fazendo pull de %s..." #, python-format msgid "Pull from %s completed" msgstr "Pull de %s completado" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "Pull de %s abortado, retornou %d" msgid "Merge caused file conflicts" msgstr "A mesclagem causou conflitos de arquivos" msgid "File conflicts need to be resolved" msgstr "Conflitos de arquivos precisam ser resolvidos" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "Localizando revisões a serem enviadas para %s..." #, python-format msgid "%d outgoing changesets to %s" msgstr "%d revisões a serem enviadas para %s" #, python-format msgid "No outgoing changesets to %s" msgstr "Nenhuma revisão a ser enviada para %s" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "Comando outgoing para %s abortado, retornou %d" msgid "Perforce pending..." msgstr "Perforce pendente..." #, python-format msgid "%s (submitted)" msgstr "%s (enviada)" #, python-format msgid "%s (pending)" msgstr "%s (pendente)" msgid "Unable to parse p4pending output" msgstr "Incapaz de decodificar a saída de p4pending" #, python-format msgid "%d pending changelists found" msgstr "%d changelists pendentes encontradas" msgid "No pending Perforce changelists" msgstr "Nenhuma changelist do Perforce pendente" msgid "Aborted p4pending" msgstr "p4pending abortado" msgid "Unable to determine pending changesets" msgstr "Incapaz de determinar revisões pendentes" msgid "Confirm Push to remote Repository" msgstr "Confirmação de Push para o Repositório Remoto" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" "Fazer o push para o repositório remoto\n" "%s\n" "?" #, python-format msgid "Push to %s aborted" msgstr "Push para %s abortado" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" "Revisão padrão de push inválida: %s. Por favor verifique sua configuração do " "Mercurial (entrada tortoisehg.defaultpush)" #, python-format msgid "Pushing to %s..." msgstr "Fazendo push para %s..." #, python-format msgid "Push to %s completed" msgstr "Push para %s completado" #, python-format msgid "Push to %s aborted, ret %d" msgstr "Push para %s abortado, retornou %d" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" "Uma ou mais revisões que você está tentando enviar adicionarão novos ramos " "nomeados no repositório remoto. Você tem certeza que deseja criar novos " "ramos nomeados no repositório remoto?" msgid "Determining outgoing changesets to email..." msgstr "Determinando revisões a serem enviadas por e-mail..." msgid "No outgoing changesets" msgstr "Nenhuma revisão a ser enviada" #, python-format msgid "Outgoing aborted, ret %d" msgstr "Outgoing abortado, retornou %d" msgid "Select bundle file" msgstr "Selecione arquivo bundle" msgid "Bundle files (*.hg)" msgstr "Arquivos bundle (*.hg)" msgid "Unable to remove URL" msgstr "Incapaz de remover URL" msgid "Post Pull Behavior" msgstr "Ação Após Pull" msgid "Select post-pull operation for this repository" msgstr "" "Selecione a operação a ser feita automaticamente após um pull para este " "repositório" msgid "None - simply pull changesets" msgstr "Nenhuma - apenas traz as revisões" msgid "Update - pull, then try to update" msgstr "Atualizar - traz as revisões, e atualiza em seguida" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "" "Fetch - usa a extensão fetch (mesclagem automática das revisões trazidas)" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "Fetch - usa a extensão fetch (fetch não está ativa!)" msgid "Rebase - rebase local commits above pulled changes" msgstr "Rebase - rebaseia revisões locais sobre as revisões trazidas" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "UpdateOrRebase - faz pull, e em seguida tenta update ou rebase" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "Rebase - usa a extensão rebase (rebase não está ativa!)" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "UpdateOrRebase - use a extensão rebase (rebase não está ativa!)" msgid "Launch settings tool..." msgstr "Executa ferramenta de configuração..." msgid "Unable to save post pull operation" msgstr "Incapaz de salvar operação a ser feita após o pull" msgid "Save Path" msgstr "Salvar Caminho" msgid "Alias" msgstr "Apelido" msgid "URL" msgstr "URL" msgid "Remove authentication data from URL" msgstr "Remover dados de autenticação desta URL" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" "Dados de autenticação de usuário devem ser associados a este nome de " "servidor usando a caixa de diálogo de segurança." msgid "Update subrepo paths" msgstr "Atualizar caminhos de sub-repositórios" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" "Cria ou atualiza um apelido de caminho '%s' em todos os sub-repositórios, " "usando esta URL como base e anexando a ela o caminho relativo do sub-" "repositório." msgid "Unable to save an URL" msgstr "Incapaz de salvar uma URL" msgid "Confirm URL replace" msgstr "Confirmar substituição de URL" #, python-format msgid "%s already exists, replace URL?" msgstr "%s já existe, substituir URL?" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

                                                                                  %s

                                                                                  Replace it with the " "following URL?:

                                                                                  %s" msgstr "" "O sub-repositório '%s' possui uma URL defaul não-trivial:

                                                                                  %s

                                                                                  Substituir " "esta URL pela seguinte? :

                                                                                  %s" msgid "Security: " msgstr "Segurança: " #, python-format msgid "Host: %s" msgstr "Servidor: %s" msgid "Secure HTTPS Connection" msgstr "Conexão HTTPS Segura" msgid "Verify with Certificate Authority certificates (best)" msgstr "Verifica usando uma Autoridade Certificadora (melhor)" msgid "Verify with stored host fingerprint (good)" msgstr "Verifica usando uma impressão digital armazenada (boa)" msgid "No host validation, but still encrypted (bad)" msgstr "Conexão encriptada, mas sem validação de servidor (ruim)" msgid "### host certificate fingerprint ###" msgstr "### impressão digital do certificado do servidor ###" msgid "Query" msgstr "Consultar" msgid "TLS 1.0" msgstr "TLS 1.0" msgid "TLS 1.1" msgstr "TLS 1.1" msgid "TLS 1.2" msgstr "TLS 1.2" msgid "Minimum Protocol" msgstr "Protocolo Mínimo" msgid "User Authentication" msgstr "Autenticação de Usuário" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" "Opcional. Nome de usuário com o qual autenticar. Se não for dado, e o\n" "servidor remoto exigir autenticação básica ou por digest, o usuário\n" "será consultado para fornecer os dados de autenticação. Variáveis de\n" "ambiente são expandidas no nome de usuário, para que você possa usar\n" "foo.username = $USER." msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" "Opcional. Senha de autenticação. Se não for dada, e o servidor remoto\n" "exigir autenticação básica ou por digest, o usuário será consultado\n" "para fornecê-la." msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" "A extensão Mercurial keyring está habilitada. Senhas serão gravadas usando " "um método seguro nativo da plataforma." msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" "Opcional. Arquivo de chaves de certificado de cliente, em formato PEM.\n" "Variáveis de ambiente no nome do arquivo serão expandidas." msgid "User Certificate Key" msgstr "Chave do Certificado de Usuário" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" "Opcional. Arquivo de cadeia de certificados de cliente, em formato PEM.\n" "Variáveis de ambiente no nome do arquivo serão expandidas." msgid "User Certificate Chain" msgstr "Cadeia do Certificado de Usuário" msgid "Certificate Query Error" msgstr "Erro de Consulta de Certificado" msgid "Select User Certificate Key File" msgstr "Selecione o Arquivo da Chave do Certificado de Usuário" msgid "PEM files (*.pem *.key)" msgstr "Arquivos PEM (*.pem *.key)" msgid "Select User Certificate Chain File" msgstr "Selecione o Arquivo de Cadeia do Certificado de Usuário" msgid "PEM files (*.pem *.crt *.cer)" msgstr "Arquivos PEM (*.pem *.crt *.cer)" msgid "Unable to save authentication" msgstr "Não é possível gravar a autenticação" #, python-format msgid "%s - sync options" msgstr "%s - opções de sincronização" msgid "Allow push of a new branch (--new-branch)" msgstr "Permite que um novo ramo nomeado seja enviado (--new-branch)" msgid "Force push or pull (override safety checks, --force)" msgstr "Força push ou pull (sobrepõe checagens de segurança, --force)" msgid "Temporarily disable configured HTTP proxy" msgstr "Desabilitar temporariamente o proxy HTTP configurado" msgid "Emit debugging output (--debug)" msgstr "Emitir saída de depuração (--debug)" msgid "Work on patch queue (--mq)" msgstr "Operar na fila de patches (--mq)" #, python-format msgid "Tag - %s" msgstr "Etiqueta - %s" msgid "Tag:" msgstr "Etiqueta:" msgid "Tagged:" msgstr "Etiquetada:" msgid "Local tag" msgstr "Etiqueta local" msgid "Replace existing tag (-f/--force)" msgstr "Substituir a etiqueta existente (-f/--force)" msgid "Use English commit message" msgstr "Usar mensagem de consolidação em inglês" msgid "local" msgstr "local" msgid "Move" msgstr "Mover" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "Etiqueta %s movida para a revisão %s (estava na revisão %s)" #, python-format msgid "Added tag %s for changeset %s" msgstr "Etiqueta %s adicionada para a revisão %s" #, python-format msgid "Tag '%s' has been moved" msgstr "A etiqueta '%s' foi movida" #, python-format msgid "Tag '%s' has been added" msgstr "A etiqueta '%s' foi adicionada" #, python-format msgid "Removed tag %s" msgstr "Etiqueta %s removida" #, python-format msgid "Tag '%s' has been removed" msgstr "A etiqueta '%s' foi removida" msgid "Patch files (*.diff *.patch)" msgstr "Arquivos de patch (*.diff *.patch)" #, python-format msgid "Import - %s" msgstr "Importação - %s" msgid "Browse Directory..." msgstr "Escolher Diretório..." msgid "Import from Clipboard" msgstr "Importar da Área de Transferência" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "Não remove caminhos (-p0), necessária para patches SVN" msgid "Preview:" msgstr "Pré-Visualização:" msgid "Shelf" msgstr "Adiamento" msgid "Checking working directory status..." msgstr "Checando status do diretório de trabalho..." msgid "&Import" msgstr "&Importar" msgid "Working directory is not clean! View changes..." msgstr "" "O diretório de trabalho não está limpo! Visualizar " "mudanças..." msgid "Select patches" msgstr "Selecionar patches" msgid "Select Directory containing patches" msgstr "Selecionar diretório contendo patches" #, python-format msgid "%s patches" msgstr "%s patches" #, python-format msgid "%s will be imported to " msgstr "%s será importado para " msgid "Nothing to import" msgstr "Nada para importar" msgid "Strip:" msgstr "Strip:" msgid "Discard local changes, no backup (-f/--force)" msgstr "Descartar mudanças locais, sem backup (-f/--force)" msgid "No backup (-n/--nobackup)" msgstr "Sem backup (-n/--nobackup)" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "Não modificar a cópia de trabalho durante o strip (-k/--keep)" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "%d revisão será removida" msgstr[1] "%d revisões serão removidas" msgid "Unknown revision!" msgstr "Revisão desconhecida!" msgid "Detected uncommitted local changes." msgstr "Mudanças locais não-consolidadas detectadas." msgid "Do you want to keep them or discard them?" msgstr "Você deseja mantê-las ou descartá-las?" msgid "&Keep (--keep)" msgstr "&Manter (--keep)" msgid "&Discard (--force)" msgstr "&Descartar (--force)" msgid "Confirm Strip" msgstr "Confirma Remoção de Revisões" #, python-format msgid "Strip - %s" msgstr "Strip - %s" msgid "&Strip" msgstr "&Strip" msgid "Topic:" msgstr "Tópico:" msgid "&Rename" msgstr "&Renomeia" #, python-format msgid "Topic - %s" msgstr "Tópico - %s" #, python-format msgid "A topic named \"%s\" already exists" msgstr "Já existe um tópico de nome \"%s\"" #, python-format msgid "Topic '%s' has been added" msgstr "O tópico '%s' foi adicionado" #, python-format msgid "Topic '%s' does not exist" msgstr "O tópico '%s' não existe" #, python-format msgid "Topic '%s' has been removed" msgstr "O tópico '%s' foi removido" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "O tópico '%s' foi renomeado para '%s'" msgid "Parent 1:" msgstr "Pai 1:" msgid "Parent 2:" msgstr "Pai 2:" msgid "Pull subrepos from:" msgstr "Trazer sub-repositórios de:" msgid "List updated files (--verbose)" msgstr "Lista arquivos atualizados (--verbose)" msgid "Discard local changes, no backup (-C/--clean)" msgstr "Descartar mudanças locais, sem backup (-C/--clean)" msgid "Always merge (when possible)" msgstr "Sempre mesclar (quando possível)" msgid "(same as parent)" msgstr "(mesma que a pai)" msgid "Activate bookmark?" msgstr "Ativar marcador?" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

                                                                                  Do " "you want to activate it?
                                                                                  You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" "A revisão selecionada (%s) contém um marcador chamado \"%s\".

                                                                                  Você " "deseja ativá-lo?
                                                                                  Você pode desabilitar esta janela na seção de " "configuração Workbench / Ativar Marcadores" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

                                                                                  Select " "the bookmark that you want to activate and click OK.

                                                                                  Click " "Cancel if you don't want to activate any of them.

                                                                                  You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                                                  " msgstr "" "A revisão selecionada (%s) contém %d marcadores.

                                                                                  Selecione o " "marcador que você deseja ativar e clique OK.

                                                                                  Cancele se você não " "deseja ativar nenhum marcador.

                                                                                  Você pode desabilitar esta janela de " "seleção através da configuração Workbench / Ativar Marcadores

                                                                                  " msgid "Deactivate current bookmark?" msgstr "Desativar marcador atual?" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "Você realmente deseja desativar o marcador %s?" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" "Mudanças não consolidadas foram detectadas no diretório de trabalho.\n" "Para continuar, por favor selecione:\n" msgid "Discard - discard local changes, no backup" msgstr "Descartar - descartas mudanças locais, sem backup" msgid "&Shelve" msgstr "&Adiar" msgid "Shelve - move local changes to a patch" msgstr "Shelve - adia mudanças locais para um patch" msgid "Merge - allow to merge with local changes" msgstr "Mesclar - mescla a revisão com as mudanças locais" msgid "Confirm Update" msgstr "Confirma Atualização" #, python-format msgid "Update - %s" msgstr "Atualizar - %s" msgid "[non-existant]" msgstr "[inexistente]" msgid "Tool launch failure" msgstr "Falha ao lançar a ferramenta" #, python-format msgid "%s : %s" msgstr "%s : %s" msgid "No diff tool found" msgstr "Nenhuma ferramenta de diff encontrada" msgid "No visual diff tools were detected" msgstr "Nenhuma ferramenta de diff visual foi detectada" msgid "[working copy]" msgstr "[cópia de trabalho]" msgid "[original]" msgstr "[original]" msgid "Unable to find changeset" msgstr "Incapaz de localizar revisão" msgid "You likely need to refresh this application" msgstr "Você provavelmente precisa reler os dados" msgid "No file changes" msgstr "Arquivos sem alteração" msgid "There are no file changes to view" msgstr "Não existem alterações de arquivos para ver" msgid "working changes" msgstr "diferenças de trabalho" #, python-format msgid "changeset %d:%s" msgstr "revisão %d:%s" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "revisões %d:%s a %d:%s" msgid "Visual Diffs - " msgstr "Visual Diffs - " msgid " filtered" msgstr " filtradas" msgid "Temporary files are removed when this dialog is closed" msgstr "Arquivos temporários são removidos ao fechar este diálogo" msgid "Select Tool:" msgstr "Selecionar Ferramenta:" msgid "Dir diff to p1" msgstr "Diff do diretório com pai 1" msgid "Dir diff to p2" msgstr "Diff do diretório com pai 2" msgid "3-way dir diff" msgstr "Diff de diretório de 3 vias" msgid "Directory diff" msgstr "Diff de diretório" msgid "Confirm Discard" msgstr "Confirmação de Descarte" msgid "Discard outstanding changes to working directory?" msgstr "Descartar mudanças pendentes do diretório de trabalho?" msgid "Config files (*.conf *.config *.ini)" msgstr "Arquivos de configuração (*.conf *.config *.ini)" msgid "Open hgweb config" msgstr "Abrir configuração hgweb" msgid "Save hgweb config" msgstr "Gravar configuração hgweb" msgid "Path:" msgstr "Caminho:" msgid "Local Path:" msgstr "Caminho Local:" msgid "Select Repository" msgstr "Selecionar Repositório" msgid "Add Path to Serve" msgstr "Adicionar Caminho para Hg Serve" msgid "Edit Path to Serve" msgstr "Editar Caminho para Hg Serve" msgid "Local Path" msgstr "Caminho Local" msgid "Webconf" msgstr "Configuração Web" msgid "Config File:" msgstr "Arquivo de Configuração:" msgid "Open" msgstr "Abrir" msgid "New &Workbench" msgstr "Nova &Workbench" msgid "&New Repository..." msgstr "&Novo Repositório..." msgid "Clon&e Repository..." msgstr "&Clonar Repositório..." msgid "&Open Repository..." msgstr "Abrir Rep&ositório..." msgid "&File" msgstr "&Arquivo" msgid "&View" msgstr "&Visualizar" msgid "&Repository" msgstr "&Repositório" msgid "&Help" msgstr "Aj&uda" msgid "&Dock Toolbar" msgstr "Barra de &Painéis" msgid "&Task Toolbar" msgstr "Barra de &Tarefas" msgid "&Custom Toolbar" msgstr "Barra &Personalizada" msgid "S&ync Toolbar" msgstr "Barra de S&incronização" msgid "&Close Repository" msgstr "Fe&char Repositório" msgid "Sh&ow Repository Registry" msgstr "M&ostrar Registro de Repositórios" msgid "Show &Patch Queue" msgstr "Mostrar Fila de &Patches" msgid "Show Conso&le" msgstr "Mostrar Conso&le" msgid "Place Console in Doc&k Area" msgstr "Colocar Console na Área Doc&k" msgid "R&epository Registry Options" msgstr "Opções do Registro de R&epositórios" msgid "Save Open Repositories on E&xit" msgstr "&Gravar Repositórios Abertos ao Sair" msgid "Sa&ve Current Sync Paths on Exit" msgstr "Sal&var Caminhos de Sincronização Atuais ao Sair" msgid "Show Tas&k Tab" msgstr "Mostra Aba de Ta&refas" msgid "&Commit" msgstr "&Commit (consolidar)" msgid "&Patch Branch" msgstr "Ramo de &Patches" msgid "Revision &Details" msgstr "&Detalhes da Revisão" msgid "&Search" msgstr "Pe&squisar" msgid "S&ynchronize" msgstr "S&incronizar" msgid "Refresh current repository" msgstr "Atualizar o repositório atual" msgid "Refresh &Task Tab" msgstr "Atualizar Aba de &Tarefas" msgid "Refresh only the current task tab" msgstr "Atualiza apenas a aba de tarefas atual" msgid "Load &All Revisions" msgstr "Carregar Tod&as as Revisões" msgid "Load all revisions into graph" msgstr "Carrega todas as revisões para o grafo" msgid "Go to current revision" msgstr "Ir para revisão atual" msgid "&Goto Revision..." msgstr "&Ir para Revisão..." msgid "Go to a specific revision" msgstr "Vai para uma revisão específica" msgid "Filter graph with revision sets or branches" msgstr "Filtra o grafo por conjunto de revisões ou ramo" msgid "&Workbench Toolbars" msgstr "Barras de Ferramentas da &Workbench" msgid "&Lock File..." msgstr "B&loquear Arquivo..." msgid "Lock or unlock files" msgstr "Bloqueia ou desbloqueia arquivos" msgid "Update working directory or switch revisions" msgstr "Atualiza o diretório de trabalho ou muda de revisão" msgid "&Shelve..." msgstr "&Shelve... (Adiar Mudanças)" msgid "&Import Patches..." msgstr "&Importar Patches..." msgid "U&nbundle..." msgstr "U&nbundle..." msgid "&Merge..." msgstr "&Mesclar..." msgid "Merge with the other head of the current branch" msgstr "Mesclar com a outra cabeça do ramo atual" msgid "&Resolve..." msgstr "&Resolve..." msgid "R&ollback/Undo..." msgstr "R&ollback/Undo..." msgid "&Purge..." msgstr "&Purge... (Limpar Repositório)" msgid "&Bisect..." msgstr "&Bisseccionar..." msgid "&Verify" msgstr "&Verificar" msgid "Re&cover" msgstr "Re&cuperar" msgid "&Web Server" msgstr "Servidor &Web" msgid "E&xplorer Help" msgstr "Ajuda do E&xplorer" msgid "&Readme" msgstr "&Readme" msgid "About &Qt" msgstr "Sobre o &Qt" msgid "&About TortoiseHg" msgstr "Sobre o &TortoiseHg" msgid "&Incoming" msgstr "&Incoming" msgid "&Pull" msgstr "&Pull" msgid "&Outgoing" msgstr "&Outgoing" msgid "P&ush" msgstr "P&ush" msgid "&Sync Bookmarks..." msgstr "&Sincronizar Marcadores..." #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" "pull: %s\n" "push: %s" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" "Não há caminhos de sincronização configurados.\n" "Use a Aba de Sincronização para configurá-los." msgid "Check for incoming changes" msgstr "Verifica revisões a serem recebidas" msgid "Pull incoming changes" msgstr "Traz revisões do repositório remoto" msgid "Detect outgoing changes" msgstr "Detecta revisões a serem enviadas" msgid "Push outgoing changes" msgstr "Envia revisões para o repositório remoto" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" "Verifica revisões a serem recebidas de\n" "%s" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" "Traz revisões do repositório remoto\n" "%s" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" "Detecta revisões a serem enviadas para\n" "%s" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" "Envia revisões para\n" "%s" #, python-format msgid "Execute custom tool '%s'" msgstr "Executa ferramenta personalizada '%s'" msgid "Custom Toolbar &Settings" msgstr "Configurações da Barra &Personalizada" msgid "TortoiseHg Workbench" msgstr "Workbench do TortoiseHg" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "%s - Workbench do TortoiseHg - %s" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "%s - TortoiseHg Workbench" msgid "Goto revision" msgstr "Ir para revisão" msgid "Enter revision identifier" msgstr "Forneça o identificador da revisão" msgid "Select repository directory to open" msgstr "Selecionar diretório do repositório a ser aberto" msgid "README not configured" msgstr "README não configurado" msgid "" "A README file is not configured for the current repository.

                                                                                  To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" "Um arquivo README não foi configurado para o repositório atual.

                                                                                  Para " "configurar um arquivo README para um repositório, abra o arquivo de " "configurações do repositório e adicione uma chave 'readme' na seção " "'tortoisehg' contendo o nome de arquivo ou URL do arquivo README do " "repositório." msgid "Issue Tracker Plugin Error" msgstr "Erro do Plugin de Rastreamento de Tíquetes" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "" "Não foi possível instanciar o objeto COM do plugin de rastreamento de " "tíquetes" msgid "This error will not be shown again until you restart the workbench" msgstr "" "Este erro não será mostrado novamente até que a workbench seja reiniciada" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "" "Erro ao obter informações de mensagem de consolidação do plugin de " "rastreamento de tíquetes" msgid "Error executing \"commit finished\" trigger" msgstr "Erro ao executar gatilho \"commit finished\"" msgid "Cannot open Plugin Options dialog" msgstr "Não é possível abrir diálogo de Opções de Plugin" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "" "não verifica o certificado do servidor (ignorando a configuração web.cacerts)" msgid "[--insecure] [SOURCE]" msgstr "[--insecure] [ORIGEM]" #, python-format msgid "unsupported URL: %s" msgstr "URL não suportada: %s" #, python-format msgid "%s certificate error: no certificate received" msgstr "erro de certificado de %s: certificado não recebido" msgid "move after the specified patch" msgstr "move para depois do patch especificado" msgid "[--after PATCH] PATCH..." msgstr "[--after PATCH] PATCH..." msgid "unknown patch to move specified" msgstr "o patch a ser movido não foi encontrado" msgid "invalid patch position specified" msgstr "foi especificada uma posição de patch inválida" msgid "cannot move applied patches" msgstr "não se pode mover patches aplicados" #, python-format msgid "patch %s not in series" msgstr "o patch %s não está no arquivo series" msgid "cannot move into applied patches" msgstr "não é possível mover para patches aplicados" msgid "abort: " msgstr "abortado: " msgid "hint: " msgstr "dica: " #, python-format msgid "HTTP Error: %d (%s)" msgstr "Erro de HTTP: %d (%s)" #, python-format msgid "URLError: %s" msgstr "Erro URL: %s" msgid "SSL: Server certificate verify failed" msgstr "SSL: A verificação do certificado do servidor falhou" #, python-format msgid "SSL: unknown error %s:%s" msgstr "SSL: erro desconhecido %s:%s" #, python-format msgid "SSL error: %s" msgstr "Erro SSL: %s" msgid "hgsubversion packaged with thg" msgstr "hgsubversion distribuído com o thg" msgid "hggit packaged with thg" msgstr "hggit distribuído com o thg" msgid "inotify is not supported on this platform" msgstr "inotify não é suportado nesta plataforma" msgid "eol is incompatible with win32text" msgstr "eol é incompatível com win32text" msgid "win32text is incompatible with eol" msgstr "win32text é incompatível com eol" msgid "hgsubversion is incompatible with perfarce" msgstr "hgsuberversion é incompatível com perfarce" msgid "perfarce is incompatible with hgsubversion" msgstr "perfarce é incompatível com hgsubversion" msgid "Workbench custom toolbar" msgstr "Barra de ferramentas personalizada da workbench" msgid "Revision details context menu" msgstr "Menu de contexto de detalhes da revisão" msgid "Pair selection context menu" msgstr "Menu de contexto com par selecionado" msgid "Multiple selection context menu" msgstr "Menu de contexto com seleção múltipla" msgid "Commit context menu" msgstr "Menu de contexto da consolidação" msgid "File context menu (on manifest and revision details)" msgstr "Menu de contexto de arquivo (no manifesto e detalhes de revisão)" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "%d ano" msgstr[1] "%d anos" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "%d mês" msgstr[1] "%d meses" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "%d semana" msgstr[1] "%d semanas" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "%d dia" msgstr[1] "%d dias" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "%d hora" msgstr[1] "%d horas" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "%d minuto" msgstr[1] "%d minutos" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d segundo" msgstr[1] "%d segundos" msgid "in the future" msgstr "no futuro" msgid "now" msgstr "agora" #, python-format msgid "command parse error: %s" msgstr "erro de análise de comando: %s" #, python-format msgid "no matches found: %s" msgstr "nenhuma ocorrência encontrada: %s" msgid "Commit..." msgstr "Commit (consolidar)..." msgid "Commit changes in repository" msgstr "Consolida alterações no repositório" msgid "Create Repository Here" msgstr "Criar Repositório Aqui" msgid "Create a new repository" msgstr "Criar novo repositório" msgid "Clone..." msgstr "Clonar..." msgid "Create clone here from source" msgstr "Criar clone aqui a partir da origem" msgid "File Status" msgstr "Status de Arquivos" msgid "Repository status & changes" msgstr "Estado dos arquivos no repositório" msgid "Add Files..." msgstr "Adicionar Arquivos..." msgid "Add files to version control" msgstr "Adiciona arquivos ao controle de versão" msgid "Revert Files..." msgstr "Reverter Arquivos..." msgid "Revert file changes" msgstr "Reverte mudanças dos arquivos" msgid "Forget Files..." msgstr "Esquecer Arquivos (forget)" msgid "Remove files from version control" msgstr "Deixa de versionar os arquivos" msgid "Remove Files..." msgstr "Remover Arquivos..." msgid "Rename File" msgstr "Renomear Arquivo" msgid "Rename file or directory" msgstr "Renomeia arquivo ou diretório" msgid "View change history in repository" msgstr "Exibe o histórico de mudanças do repositório" msgid "File History" msgstr "Histórico de Arquivo" msgid "View change history of selected files" msgstr "Exibe histórico de mudanças dos arquivos selecionados" msgid "Shelve Changes" msgstr "Armazenar Mudanças na Shelve" msgid "Move changes between working dir and patch" msgstr "Move mudanças entre o diretório de trabalho e patches" msgid "Synchronize" msgstr "Sincronizar" msgid "Synchronize with remote repository" msgstr "Sincroniza com repositórios remotos" msgid "Start web server for this repository" msgstr "Inicia um servidor web para esse repositório" msgid "Update..." msgstr "Update... (obter revisão)" msgid "Update working directory" msgstr "Atualiza o diretório de trabalho para uma revisão" msgid "Update Icons" msgstr "Atualizar Ícones" msgid "Update icons for this repository" msgstr "Atualiza os ícones do repositório" msgid "Global Settings" msgstr "Definições Globais" msgid "Configure user wide settings" msgstr "Configura definições gerais de usuário" msgid "Repository Settings" msgstr "Configurações do Repositório" msgid "Configure repository settings" msgstr "Configura definições específicas deste repositório" msgid "Explorer Extension Settings" msgstr "Configurações da Extensão do Explorer" msgid "Configure Explorer extension" msgstr "Configurar extensão do Explorer" msgid "About TortoiseHg" msgstr "Sobre o TortoiseHg" msgid "Show About Dialog" msgstr "Mostra a janela About" msgid "Diff to parent" msgstr "Diff com pai" msgid "View changes using GUI diff tool" msgstr "Exibe alterações usando uma ferramenta gráfica de diferenças" msgid "Edit Ignore Filter" msgstr "Editar filtro de ignorar" msgid "Edit repository ignore filter" msgstr "Editar filtro de ignorar do repositório" msgid "Guess Renames" msgstr "Inferir Renomeações" msgid "Detect renames and copies" msgstr "Detecta renomeações e cópias" msgid "Search History" msgstr "Histórico de Pesquisa" msgid "Search file revisions for patterns" msgstr "Busca por padrões em revisões do arquivo" msgid "DnD Synchronize" msgstr "Sincronização Arrastar-E-Soltar" msgid "Synchronize with dragged repository" msgstr "Sincronizar com o repositório arrastado" #, python-format msgid "unrecognized response: %s" msgstr "resposta não reconhecida: %s" msgid "password: " msgstr "senha: " #, python-format msgid "repository %s not found" msgstr "repositório %s não encontrado" msgid "win32ill: cannot create window for messages" msgstr "win32ill: não foi possível criar janela para mensagens" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "win32ill: plataforma não suportada: %s\n" msgid "win32ill: interrupted while stopping message loop\n" msgstr "win32ill: interrompido enquanto parava loop de mensagens\n" #~ msgid "Several icons are courtesy of the TortoiseSVN project" #~ msgstr "Vários ícones são cortesia do projeto TortoiseSVN" #~ msgid "Backout" #~ msgstr "Backout" #~ msgid "Source path is empty" #~ msgstr "O caminho original está vazio" #~ msgid "undo recent commit" #~ msgstr "desfazer uma consolidação recente" #~ msgid "_Commit" #~ msgstr "_Consolidar" #~ msgid "commit" #~ msgstr "consolidar" #~ msgid "Save commit message at exit?" #~ msgstr "Guardar mensagem de consolidação ao sair?" #~ msgid "Re_vert" #~ msgstr "Re_verter" #~ msgid "_Add" #~ msgstr "_Adicionar" #~ msgid "_Remove" #~ msgstr "_Remover" #~ msgid "Nothing Commited" #~ msgstr "Nada foi consolidado" #~ msgid "Unable to create " #~ msgstr "Impossível criar " #~ msgid "Unable to apply patch" #~ msgstr "Impossível aplicar patch" #~ msgid "" #~ "Unable to undo!\n" #~ "\n" #~ "Tip revision differs from last commit." #~ msgstr "" #~ "Impossível anular!\n" #~ "\n" #~ "A revisão tip é diferente da última consolidação." #~ msgid "Commit: Invalid username" #~ msgstr "Consolidação: nome de usuário inválido" #~ msgid "" #~ "Your username has not been configured.\n" #~ "\n" #~ "Please configure your username and try again" #~ msgstr "" #~ "O seu nome de usuário não foi configurado.\n" #~ "\n" #~ "Por favor configure o seu nome de usuário e tente novamente" #~ msgid "Info required" #~ msgstr "Info necessária" #~ msgid "Stop operation on current tab" #~ msgstr "Parar operação na aba atual" #~ msgid "New Search" #~ msgstr "Nova Pesquisa" #~ msgid "Open new search tab" #~ msgstr "Abrir nova aba de pesquisa" #~ msgid "Invalid path" #~ msgstr "Caminho inválido" #~ msgid "Start this search" #~ msgstr "Iniciar esta pesquisa" #~ msgid "" #~ "Comma separated list of inclusion patterns. By default, the entire " #~ "repository is searched." #~ msgstr "" #~ "Lista separada por vírgulas de padrões de inclusão. Por padrão, o " #~ "repositório todo é pesquisado." #~ msgid "" #~ "Comma separated list of exclusion patterns. Exclusion patterns are " #~ "applied after inclusion patterns." #~ msgstr "" #~ "Lista separada por vírgulas de padrões de exclusão. Padrões de exclusão " #~ "são aplicados após os padrões de inclusão." #~ msgid "Show line numbers" #~ msgstr "Mostrar o número das linhas" #~ msgid "Show all matching revisions" #~ msgstr "Mostrar todas as revisões que correspondem" #~ msgid "Matches" #~ msgstr "Correspondências" #~ msgid "Search %d" #~ msgstr "Pesquisar %d" #~ msgid "No regular expression given" #~ msgstr "Nenhuma expressão regular dada" #~ msgid "You must provide a search expression" #~ msgstr "Você deve fornecer uma expressão de busca" #~ msgid "Search \"%s\"" #~ msgstr "Pesquisar \"%s\"" #~ msgid "File is unrevisioned" #~ msgstr "O arquivo não é versionado" #~ msgid " Aborted" #~ msgstr " Abortado" #~ msgid " Messages and Errors" #~ msgstr " Mensagens e Erros" #~ msgid "edit failed" #~ msgstr "edição falhou" #~ msgid "Save File" #~ msgstr "Salvar o Arquivo" #~ msgid "Minimum Simularity Percentage" #~ msgstr "Percentagem mínima de similaridade" #~ msgid "Find Copies" #~ msgstr "Pesquisar Cópias" #~ msgid "Unrevisioned Files" #~ msgstr "Arquivos Não Versionados" #~ msgid "Accept Match" #~ msgstr "Aceitar Correspondência" #~ msgid "Candidate Matches" #~ msgstr "Correspondências Candidatas" #~ msgid "Differences from Source to Dest" #~ msgstr "Diferenças da Origem para o Destino" #~ msgid "finding source of " #~ msgstr "procurando origem de " #~ msgid "" #~ "== %s and %s have identical contents ==\n" #~ "\n" #~ msgstr "" #~ "== %s e %s têm conteúdos idênticos ==\n" #~ "\n" #~ msgid "" #~ "\n" #~ "[command interrupted]" #~ msgstr "" #~ "\n" #~ "[comando interrompido]" #~ msgid "Configure email settings" #~ msgstr "Configurar opções de email" #~ msgid "Email outgoing changes" #~ msgstr "Enviar por email mudanças de saída" #~ msgid "Email Mercurial Patches" #~ msgstr "Enviar email com Patches do Mercurial" #~ msgid "Envelope" #~ msgstr "Envelope" #~ msgid "You must specify a recipient" #~ msgstr "Você deve especificar um destinatário" #~ msgid "You must specify a sender address" #~ msgstr "Você deve especificar um endereço de remetente" #~ msgid "You must configure SMTP" #~ msgstr "Você deve configurar o SMTP" #~ msgid "Glob:" #~ msgstr "Glob:" #~ msgid "Filters" #~ msgstr "Filtros" #~ msgid "Remove Selected" #~ msgstr "Remover selecão" #~ msgid "Unknown Files" #~ msgstr "Arquivos desconhecidos" #~ msgid "Add special files (.hgignore, ...)" #~ msgstr "Adicionar arquivos especiais (.hgignore, ...)" #~ msgid "Make repo compatible with Mercurial 1.0" #~ msgstr "Tornar o repo compatível com o Mercurial 1.0" #~ msgid "Destination path is empty" #~ msgstr "O caminho de destino está vazio" #~ msgid "Please enter the directory path" #~ msgstr "Por favor forneça o caminho do diretório" #~ msgid "Unable to create new repository" #~ msgstr "Não foi possível criar o novo repositório" #~ msgid "Error when creating repository" #~ msgstr "Erro ao criar o repositório" #~ msgid "unknown patch content: %r" #~ msgstr "Conteúdo do patch desconhecido: %r" #~ msgid "this modifies a binary file (all or nothing)\n" #~ msgstr "isto modifica um arquivo binário (tudo ou nada)\n" #~ msgid "this is a binary file\n" #~ msgstr "isto é um arquivo binário\n" #~ msgid "" #~ "total: %d hunks (%d changed lines); selected: %d hunks (%d changed lines)" #~ msgstr "" #~ "total: %d trechos (%d linhas alteradas); selecionados: %d trechos (%d " #~ "linhas alteradas)" #~ msgid "%d hunks, %d lines changed\n" #~ msgstr "%d trechos, %d linhas alteradas\n" #~ msgid "unhandled transition: %s -> %s" #~ msgstr "transição não manuseada: %s -> %s" #~ msgid " [Ynsfdaq?] " #~ msgstr " [Ynsfdaq?] " #~ msgid "user quit" #~ msgstr "usuário desistiu" #~ msgid " and " #~ msgstr " e " #~ msgid "backup %r as %r\n" #~ msgstr "gravando backup de %r como %r\n" #~ msgid "applying patch\n" #~ msgstr "aplicando patch\n" #~ msgid "restoring %r to %r\n" #~ msgstr "restaurando %r para %r\n" #~ msgid "restoring backup files\n" #~ msgstr "restaurando arquivos de backup\n" #~ msgid "hg shelve [OPTION]... [FILE]..." #~ msgstr "hg shelve [OPÇÃO]... [ARQUIVO]..." #~ msgid "hg unshelve [OPTION]... [FILE]..." #~ msgstr "hg unshelve [OPÇÃO]... [ARQUIVO]..." #~ msgid "response expected" #~ msgstr "resposta esperada" #~ msgid "hgtk %s: %s\n" #~ msgstr "hgtk %s: %s\n" #~ msgid "hgtk: %s\n" #~ msgstr "hgtk: %s\n" #~ msgid "" #~ "hgtk: command '%s' is ambiguous:\n" #~ " %s\n" #~ msgstr "" #~ "hgtk: o comando '%s' é ambíguo:\n" #~ " %s\n" #~ msgid "hgtk: unknown command '%s'\n" #~ msgstr "hgtk: comando desconhecido '%s'\n" #~ msgid "There is no Mercurial repository here (.hg not found)" #~ msgstr "Não existe nenhum repositório Mercurial aqui (.hg não encontrado)" #~ msgid "use \"hgtk help\" for the full list of commands" #~ msgstr "use \"hgtk help\" para obter a lista completa de comandos" #~ msgid "use \"hgtk -v help%s\" to show aliases and global options" #~ msgstr "use \"hgtk -v help%s\" para mostrar apelidos e opções globais" #~ msgid "(No help text available)" #~ msgstr "(sem texto de ajuda disponível)" #~ msgid "Hgtk - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" #~ msgstr "Hgtk - utilitários GUI do TortoiseHg para o SCM Mercurial (Hg)\n" #~ msgid "hgtk about" #~ msgstr "sobre o hgtk" #~ msgid "hgtk add [FILE]..." #~ msgstr "hgtk add [ARQUIVO]..." #~ msgid "hgtk clone SOURCE [DEST]" #~ msgstr "hgtk clone ORIGEM [DEST]" #~ msgid "hgtk commit [OPTIONS] [FILE]..." #~ msgstr "hgtk commit [OPÇÕES] [ARQUIVO]..." #~ msgid "hgtk datamine" #~ msgstr "hgtk datamine" #~ msgid "hgtk hgignore [FILE]" #~ msgstr "hgtk hgignore [ARQUIVO]" #~ msgid "hgtk init [DEST]" #~ msgstr "hgtk init [DEST]" #~ msgid "limit number of changes displayed" #~ msgstr "limitar números de alterações a mostrar" #~ msgid "hgtk log [OPTIONS] [FILE]" #~ msgstr "hgtk log [OPÇÕES] [ARQUIVO]" #~ msgid "hgtk merge" #~ msgstr "hgtk merge" #~ msgid "hgtk recovery" #~ msgstr "hgtk recovery" #~ msgid "hgtk shelve" #~ msgstr "hgtk shelve" #~ msgid "hgtk synch" #~ msgstr "hgtk synch" #~ msgid "hgtk status [FILE]..." #~ msgstr "hgtk status [ARQUIVO]..." #~ msgid "hgtk userconfig" #~ msgstr "hgtk userconfig" #~ msgid "hgtk repoconfig" #~ msgstr "hgtk repoconfig" #~ msgid "hgtk guess" #~ msgstr "hgtk guess" #~ msgid "hgtk remove [FILE]..." #~ msgstr "hgtk remove [ARQUIVO]..." #~ msgid "hgtk rename SOURCE [DEST]" #~ msgstr "hgtk rename ORIGEM [DEST]" #~ msgid "hgtk revert [FILE]..." #~ msgstr "hgtk revert [ARQUIVO]..." #~ msgid "hgtk serve [OPTION]..." #~ msgstr "hgtk serve [OPÇÃO]..." #~ msgid "hgtk version [OPTION]" #~ msgstr "hgtk version [OPÇÃO]" #~ msgid "show the command options" #~ msgstr "mostrar as opções dos comandos" #~ msgid "[-o] CMD" #~ msgstr "[-o] CMD" #~ msgid "hgtk help [COMMAND]" #~ msgstr "hgtk help [COMANDO]" #~ msgid "Reload revision history" #~ msgstr "Recarrega histórico de revisões" #~ msgid "_Filter" #~ msgstr "_Filtrar" #~ msgid "Custom Filter" #~ msgstr "Filtro Personalizado" #~ msgid "Save patch to" #~ msgstr "Salvar patch em" #~ msgid "Apply" #~ msgstr "Aplicar" #~ msgid "Invalid date specification" #~ msgstr "especificação da data inválida" #~ msgid "Stop the hg operation" #~ msgstr "Parar a operação do hg" #~ msgid "Validate repository consistency" #~ msgstr "Validar consistência do repositório" #~ msgid "Cannot close now" #~ msgstr "Não é possível fechar agora" #~ msgid "command is running" #~ msgstr "o comando está em execução" #~ msgid "Cannot run now" #~ msgstr "Não é possível executar agora" #~ msgid "[command interrupted]" #~ msgstr "[comando interrompido]" #~ msgid "rename error" #~ msgstr "erro ao renomear" #~ msgid "Start server" #~ msgstr "Iniciar servidor" #~ msgid "Stop server" #~ msgstr "Parar servidor" #~ msgid "Browse" #~ msgstr "Navegar" #~ msgid "Launch browser to view repository" #~ msgstr "Iniciar navegador para ver o repositório" #~ msgid "Configure" #~ msgstr "Configurar" #~ msgid "Configure web settings" #~ msgstr "Configurar definições da web" #~ msgid "HTTP Port:" #~ msgstr "Porta HTTP:" #~ msgid "" #~ "Server process is still running\n" #~ "Exiting will stop the server." #~ msgstr "" #~ "O processo do servidor ainda está em execução\n" #~ "Sair irá parar o servidor." #~ msgid "Invalid port 2048..65535" #~ msgstr "porta inválida 2048..65535" #~ msgid "cannot start server: " #~ msgstr "Não é possível iniciar o servidor: " #~ msgid "run server in background" #~ msgstr "executar servidor em segundo plano" #~ msgid "used internally by daemon mode" #~ msgstr "usado internamente pelo modo daemon" #~ msgid "port to use (default: 8000)" #~ msgstr "porta a usar (padrão: 8000)" #~ msgid "address to use" #~ msgstr "endereço a usar" #~ msgid "for remote clients" #~ msgstr "para clientes remotos" #~ msgid "use IPv6 in addition to IPv4" #~ msgstr "usar IPv6 além de IPv4" #~ msgid "SSL certificate file" #~ msgstr "arquivo de certificado SSL" #~ msgid "hg serve [OPTION]..." #~ msgstr "hg serve [OPCÃO]..." #~ msgid "_delete" #~ msgstr "apa_gar" #~ msgid "No repository found here" #~ msgstr "Nenhum repositório encontrado aqui" #~ msgid "Backout commit message" #~ msgstr "Mensagem de consolidação da anulação" #~ msgid "[All Files]" #~ msgstr "[Todos os Arquivos]" #~ msgid " %s is larger than the specified max diff size" #~ msgstr " %s é maior que o tamanho máx. de diff especificado" #~ msgid "Confirm revert file to old revision" #~ msgstr "Confirma a reversão do arquivo para a revisão anterior" #~ msgid "Revert %s to contents at revision %d?" #~ msgstr "Reverter %s para o conteúdo na revisão %d?" #~ msgid "Toggle _Wordwrap" #~ msgstr "Trocar _Wordwrap" #~ msgid "TortoiseHg Clone" #~ msgstr "TortoiseHg Clone" #~ msgid "Clone" #~ msgstr "Clonar" #~ msgid "Please enter a valid source path" #~ msgstr "Por favor forneça um caminho válido de origem" #~ msgid "Branch Operations" #~ msgstr "Operações de Ramos" #~ msgid "Close current named branch" #~ msgstr "Fechar o ramo nomeado atual" #~ msgid "new branch: " #~ msgstr "novo ramo: " #~ msgid "close branch: " #~ msgstr "fechar ramo: " #~ msgid "No committable files selected" #~ msgstr "Nenhum arquivo consolidável selecionado" #~ msgid "Confirm Add/Remove" #~ msgstr "Confirmar Adicão/Remoção" #~ msgid "Add/Remove the following files?" #~ msgstr "Adicionar/Remover os seguintes arquivos?" #~ msgid "Message format configuration error" #~ msgstr "Erro de configuração do formato da mensagem" #~ msgid "Confirm Commit" #~ msgstr "Confirmar Consolidação" #~ msgid "" #~ "The summary line is not followed by a blank line.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "A linha do sumário não é seguido por uma linha em branco.\n" #~ "\n" #~ "Ignorar a política de formato e continuar a consolidação?" #~ msgid "" #~ "The following lines are over the %i-character limit: %s.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "As seguintes linhas estão acima do limite de %i caracteres: %s.\n" #~ "\n" #~ "Ignorar a política de formato e continuar a consolidação?" #~ msgid "Paste _Filenames" #~ msgstr "Colar _Arquivos" #~ msgid "App_ly Format" #~ msgstr "Ap_licar Formato" #~ msgid "Message format needs to be configured" #~ msgstr "A mensagem de formato precisa ser configurada" #~ msgid "The summary line is not followed by a blank line" #~ msgstr "A linha do sumário não é seguida por uma linha em branco" #~ msgid "making snapshot of %d files from rev %s\n" #~ msgstr "fazendo cópia instantânea de %d arquivos da rev %s\n" #~ msgid "Select Folder" #~ msgstr "Selecione Pasta" #~ msgid "Patch Series (Bundle) Description" #~ msgstr "Descrição Série de Patches (Bundle)" #~ msgid "rename takes one or two path arguments" #~ msgstr "renomear exige um ou dois argumentos de caminho" #~ msgid "" #~ "use \"hgtk help\" for the full list of commands or \"hgtk -v\" for details" #~ msgstr "" #~ "use \"hgtk help\" para a lista completa de comandos ou \"hgtk -v\" para " #~ "detalhes" #~ msgid "use \"hgtk -v help %s\" to show global options" #~ msgstr "use \"hgtk -v help %s\" para mostrar as opções globais" #~ msgid "revisions to compare" #~ msgstr "revisões para comparar" #~ msgid "udpate all repos in current dir" #~ msgstr "atualizar todos os repos no dir atual" #~ msgid "hgtk thgstatus [OPTION]" #~ msgstr "hgtk thgstatus [OPÇÃO]" #~ msgid "" #~ "Revert all files to revision %d?\n" #~ "This will overwrite your local changes" #~ msgstr "" #~ "Reverter todos os arquivos para a revisão %d?\n" #~ "Isto irá sobrescrever as suas alterações locais" #~ msgid "Write bundle to" #~ msgstr "Escrever bundle para" #~ msgid "ID" #~ msgstr "ID" #~ msgid "Summary" #~ msgstr "Sumário" #~ msgid "Local Date" #~ msgstr "Data local" #~ msgid "Universal Date" #~ msgstr "Data Universal" #~ msgid "Current revision (local)" #~ msgstr "Versão atual (local)" #~ msgid "Confirm undo merge" #~ msgstr "Confirmar desfazimento da mesclagem" #~ msgid "Clean checkout of original revision?" #~ msgstr "Obter revisão original limpa?" #~ msgid "Clean checkout, undo all changes" #~ msgstr "Obtenção limpa, anula todas as alterações" #~ msgid "Rollback" #~ msgstr "Rollback" #~ msgid "Rollback (undo) last transaction to repository (pull, commit, etc)" #~ msgstr "" #~ "Rollback (desfazimento) da úlitma transação do repositório (pull, commit, " #~ "etc)" #~ msgid "Recover" #~ msgstr "Recuperar" #~ msgid "Recover from interrupted operation" #~ msgstr "Recuperar de uma operação interrompida" #~ msgid "Verify" #~ msgstr "Verificar" #~ msgid "Confirm clean repository" #~ msgstr "Confirmar limpeza de repositório" #~ msgid "Clean repository '%s' ?" #~ msgstr "Limpar o repositório '%s' ?" #~ msgid "Confirm rollback repository" #~ msgstr "Confirma rollback do repositório" #~ msgid "Rollback repository '%s' ?" #~ msgstr "Rollback no repositório '%s' ?" #~ msgid "Confirm Really Exit?" #~ msgstr "Confirma Saída?" #~ msgid "Abort: %s\n" #~ msgstr "Abortar: %s\n" #~ msgid "Defaulting to " #~ msgstr "Usando valor pré-definido para " #~ msgid "listening at http://%s%s/%s (%s:%d)\n" #~ msgstr "Escutando em http://%s%s/%s (%s:%d)\n" #~ msgid "name of access log file to write to" #~ msgstr "nome do arquivo de log de acesso no qual escrever" #~ msgid "name of error log file to write to" #~ msgstr "nome do arquivo de log de erro no qual escrever" #~ msgid "prefix path to serve from (default: server root)" #~ msgstr "prefixo do caminho para servir (padrão: raiz do servidor)" #~ msgid "name to show in web pages (default: working dir)" #~ msgstr "nome a mostrar nas páginas web (padrão: dir de trabalho)" #~ msgid "name of file to write process ID to" #~ msgstr "nome do arquivo no qual escrever o ID do processo" #~ msgid "web templates to use" #~ msgstr "modelos web a usar" #~ msgid "template style to use" #~ msgstr "estilo do modelo a usar" #~ msgid "filtered status" #~ msgstr "status filtrado" #~ msgid "Save As" #~ msgstr "Salvar Como" #~ msgid "Save selected changes" #~ msgstr "Salvar alterações selecionadas" #~ msgid "st" #~ msgstr "st" #~ msgid "ms" #~ msgstr "ms" #~ msgid "path" #~ msgstr "caminho" #~ msgid "M: modified" #~ msgstr "M: modificado" #~ msgid "A: added" #~ msgstr "A: adicionado" #~ msgid "R: removed" #~ msgstr "R: removido" #~ msgid "!: deleted" #~ msgstr "!: apagado" #~ msgid "?: unknown" #~ msgstr "?: desconhecido" #~ msgid "C: clean" #~ msgstr "C: limpo" #~ msgid "I: ignored" #~ msgstr "I: ignorado" #~ msgid "%d selected, %d total" #~ msgstr "%d selecionados, %d totais" #~ msgid "Rename file to:" #~ msgstr "Renomear arquivo para:" #~ msgid "Copy file to" #~ msgstr "Copiar arquivo para" #~ msgid "Nothing Removed" #~ msgstr "Nada Removido" #~ msgid "Remove is not enabled when multiple revisions are specified." #~ msgstr "A remoção não é ativada ao especificar múltiplas revisões." #~ msgid "Move is not enabled when multiple revisions are specified." #~ msgstr "Mover não é ativado ao especificar múltiplas revisões." #~ msgid "Nothing Moved" #~ msgstr "Nada Movido" #~ msgid "Copy is not enabled when multiple revisions are specified." #~ msgstr "A cópia não é ativada ao especificar múltiplas revisões." #~ msgid "Nothing Copied" #~ msgstr "Nada Copiado" #~ msgid "File is larger than the specified max size.\n" #~ msgstr "O arquivo é maior que o tamanho máximo especificado.\n" #~ msgid "Hunk selection is disabled for this file.\n" #~ msgstr "A seleção dos trechos está desativada para este arquivo.\n" #~ msgid "Nothing Reverted" #~ msgstr "Nada Revertido" #~ msgid "No revertable files selected" #~ msgstr "Nenhum arquivo reversível selecionado" #~ msgid "Revert not allowed when viewing revision range." #~ msgstr "Reversão não permitida ao visualizar faixa de revisões." #~ msgid "Revert files to revision %s?" #~ msgstr "Reverter arquivos para a revisão %s?" #~ msgid "Nothing Added" #~ msgstr "Nada Adicionado" #~ msgid "No addable files selected" #~ msgstr "Nenhum arquivo selecionado que se possa adicionar" #~ msgid "No removable files selected" #~ msgstr "Nenhum arquivo selecionado que se possa remover" #~ msgid "Cannot move outside repo!" #~ msgstr "Não é possível mover fora do repo!" #~ msgid "" #~ "No movable files selected\n" #~ "\n" #~ "Note: only clean files can be moved." #~ msgstr "" #~ "Nenhum arquivo selecionado que se possa mover\n" #~ "\n" #~ "Nota: apenas arquivos limpos podem ser movidos." #~ msgid "Confirm Delete Unrevisioned" #~ msgstr "Confirmar Remoção de Arquivo Não Versionado" #~ msgid "Delete the following unrevisioned files?" #~ msgstr "Eliminar os seguintes arquivos não versionados?" #~ msgid "Delete Errors" #~ msgstr "Eliminar Erros" #~ msgid "Incoming" #~ msgstr "Incoming" #~ msgid "Display changes that can be pulled from selected repository" #~ msgstr "Mostra alterações que podem ser trazidas do repositório selecionado" #~ msgid " Pull " #~ msgstr " Pull " #~ msgid "Pull changes from selected repository" #~ msgstr "Traz alterações do repositório selecionado" #~ msgid "Outgoing" #~ msgstr "Outgoing" #~ msgid "Push" #~ msgstr "Push" #~ msgid "Push local changes to selected repository" #~ msgstr "Envia alterações locais para o repositório selecionado" #~ msgid "Email local outgoing changes to one or more recipients" #~ msgstr "Envia por email mudanças locais para um ou mais destinatários" #~ msgid "Configure peer repository paths" #~ msgstr "Configura caminhos de repositórios" #~ msgid "Repo:" #~ msgstr "Repo:" #~ msgid "Bundle:" #~ msgstr "Bundle:" #~ msgid "Fetch" #~ msgstr "Fetch" #~ msgid "Advanced Options" #~ msgstr "Opções Avançadas" #~ msgid "Force pull or push" #~ msgstr "Força pull ou push" #~ msgid "Run even when remote repository is unrelated." #~ msgstr "Executar mesmo se o repositório remoto não for relacionado." #~ msgid "A specific revision up to which you would like to push or pull." #~ msgstr "Uma revisão específica até a qual se deseja enviar ou trazer." #~ msgid "Name of hg executable on remote machine." #~ msgstr "Nome do executável hg na máquina remota." #~ msgid "Incoming/Outgoing" #~ msgstr "Incoming/Outgoing" #~ msgid "Update to branch tip" #~ msgstr "Atualizar para tip do ramo" #~ msgid "unknown sort key '%s'" #~ msgstr "chave de ordenação '%s' desconhecida" #~ msgid "Select Bundle" #~ msgstr "Selecionar Bundle" #~ msgid "Bundle (*.hg)" #~ msgstr "Bundle (*.hg)" #~ msgid "Bundle (*)" #~ msgstr "Bundle (*)" #~ msgid "No repository selected" #~ msgstr "Nenhum repositório selecionado" #~ msgid "Select a peer repository to compare with" #~ msgstr "Selecione um repositório relacionado com o qual comparar" #~ msgid "Tag is local" #~ msgstr "A etiqueta é local" #~ msgid "Replace existing tag" #~ msgstr "Substituir etiqueta existente" #~ msgid "Tag input is empty" #~ msgstr "A entrada da etiqueta está vazia" #~ msgid "Please enter tag name" #~ msgstr "Por favor escreva o nome da etiqueta" #~ msgid "Custom commit message is empty" #~ msgstr "A mensagem personalizada está vazia" #~ msgid "Tagging completed" #~ msgstr "Criação da etiqueta terminada" #~ msgid "Tag \"%s\" has been added" #~ msgstr "A etiqueta \"%s\" foi adicionada" #~ msgid "Error in tagging" #~ msgstr "Erro ao etiquetar" #~ msgid "Tag name is empty" #~ msgstr "O nome da etiqueta está vazio" #~ msgid "Please select tag name to remove" #~ msgstr "Selecione o nome da etiqueta a remover" #~ msgid "Tag \"%s\" has been removed" #~ msgstr "A etiqueta\"%s\" foi removida" #~ msgid "a tag named \"%s\" already exists" #~ msgstr "Já existe uma etiqueta com o nome \"%s\"" #~ msgid "Tag '%s' already exist" #~ msgstr "A etiqueta '%s' já existe" #~ msgid "Enable overlays" #~ msgstr "Ativar sobreposições" #~ msgid "Highlight the taskbar icon during activity" #~ msgstr "Destacar o ícone da barra de tarefas durante atividade" #~ msgid "Specify the visual editor used to view files, etc" #~ msgstr "Especifique o editor visual para ver arquivos, etc" #~ msgid "Bottom Diffs" #~ msgstr "Diffs Embaixo" #~ msgid "" #~ "Show the diff panel below the file list in status, shelve, and commit " #~ "dialogs. Default: False (show diffs to right of file list)" #~ msgstr "" #~ "Mostra o painel de diff abaixo da lista de arquivos nas janelas de " #~ "status, shelve e consolidação. O valor padrão é Falso (mostra os diffs à " #~ "direita da lista de arquivos)" #~ msgid "Name associated with commits" #~ msgstr "Nome usado como autor de consolidações" #~ msgid "Message Line Length" #~ msgstr "Tamanho da linha da mensagem" #~ msgid "" #~ "Repository name to use in the web interface. Default is the working " #~ "directory." #~ msgstr "" #~ "Nome do repositório a usar na interface web. O valor pré-definido é o " #~ "diretório de trabalho." #~ msgid "Maximum number of changes to list on the changelog." #~ msgstr "Número máximo de alterações a mostrar por changelog." #~ msgid "Character encoding name" #~ msgstr "nome da codificação de caracteres" #~ msgid "Connect to mail server using TLS. Default: False" #~ msgstr "Conectar com o servidor de email usando TLS. Valor padrão: Falso" #~ msgid "Ignore white space when comparing lines. Default: False" #~ msgstr "Ignorar espaços em branco ao comparar linhas. Valor padrão: Falso" #~ msgid "Ignore changes whose lines are all blank. Default: False" #~ msgstr "" #~ "Ignorar alterações em que as linhas estão todas vazias. Valor padrão: " #~ "Falso" #~ msgid "Edit remote repository path" #~ msgstr "Editar caminho do repositório remoto" #~ msgid "Folder" #~ msgstr "Pasta" #~ msgid "Overwrite existing '%s' path?" #~ msgstr "Sobrescrever o caminho '%s' existente?" #~ msgid "User global settings" #~ msgstr "Definições gerais de usuário" #~ msgid "Diff" #~ msgstr "Diff" #~ msgid "TortoiseHg Configure Repository - " #~ msgstr "TortoiseHg Configuração de repositório - " #~ msgid "TortoiseHg Configure User-Global Settings" #~ msgstr "TortoiseHg Configuração de usuário - Definições globais" #~ msgid "No Repository Found" #~ msgstr "Nenhum repositório encontrado" #~ msgid "Path testing cannot work without a repository" #~ msgstr "O teste do caminho não funciona sem um repositório" #~ msgid "Remote repository paths" #~ msgstr "Caminho do repositório remoto" #~ msgid "Repository Path" #~ msgstr "Caminho do repositório" #~ msgid "_Edit" #~ msgstr "_Editar" #~ msgid "_Test" #~ msgstr "_Testar" #~ msgid "Set as _default" #~ msgstr "Definir como valor pa_drão" #~ msgid "Suggested" #~ msgstr "Sugerido" #~ msgid "History" #~ msgstr "Histórico" #~ msgid "set aside selected changes" #~ msgstr "colocar à parte alterações selecionadas" #~ msgid "Unshelve" #~ msgstr "Unshelve" #~ msgid "restore shelved changes" #~ msgstr "restaurar alterações na shelve" #~ msgid "Please select diff chunks to shelve" #~ msgstr "Selecione os trechos de diff para colocar na shelve" #~ msgid "Shelve file exists!" #~ msgstr "O arquivo shelve existe!" #~ msgid "Visual Diffs" #~ msgstr "Diffs Visuais" #~ msgid "shelve changes to %s?" #~ msgstr "adiar mudanças em %s?" #~ msgid "shelve this change to %r?" #~ msgstr "adiar esta mudança em %r?" #~ msgid "shelve data already exists" #~ msgstr "dados de adiamento já existem" #~ msgid "shelve can only be run interactively" #~ msgstr "adiamento só pode executar interativamente" #~ msgid "mark new/missing files as added/removed before shelving" #~ msgstr "" #~ "marca arquivos novos/faltando como adicionados/removidos antes do " #~ "adiamento" #~ msgid "nothing to unshelve\n" #~ msgstr "nada para tirar do adiamento\n" #~ msgid "unshelve completed\n" #~ msgstr "retirada do adiamento completada\n" #~ msgid "removing shelved patches\n" #~ msgstr "removendo patches adiados\n" #~ msgid "applying shelved patch\n" #~ msgstr "aplicando patch adiado\n" #~ msgid "removing shelve file\n" #~ msgstr "removendo arquivo de adiamento\n" #~ msgid "saving patch to shelve\n" #~ msgstr "salvando patch no adiamento\n" #~ msgid "overwrite existing shelve data" #~ msgstr "sobrescreve dados de adiamento existentes" #~ msgid "no changes to shelve\n" #~ msgstr "nenhuma mudança para adiar\n" #~ msgid "Move files to directory..." #~ msgstr "Mover arquivos para o diretório..." #~ msgid "append to existing shelve data" #~ msgstr "anexa aos dados de adiamento existentes" #~ msgid "inspect shelved changes only" #~ msgstr "inspeciona apenas mudanças adiadas" #~ msgid "proceed even if patches do not unshelve cleanly" #~ msgstr "proceder mesmo que os patches não saiam do adiamento de modo limpo" #~ msgid "No changes to shelve" #~ msgstr "Nenhuma mudança para adiar" #~ msgid "Ignore changes in the amount of white space. Default: False" #~ msgstr "Ignora mudanças na quantidade de espaços em branco. Padrão: Falso" #~ msgid "_Undo" #~ msgstr "_Desfazer" #~ msgid "Skipped saving path with no alias" #~ msgstr "Não salvou caminho sem apelido" #~ msgid "Error: %s" #~ msgstr "Erro: %s" #~ msgid "Abort: %s" #~ msgstr "Abortado: %s" #~ msgid "(version %s)" #~ msgstr "(versão %s)" #~ msgid "with %s" #~ msgstr "com %s" #~ msgid "Invalid regular expression" #~ msgstr "Expressão regular inválida" #~ msgid "Unable to delete temp files" #~ msgstr "Incapaz de remover arquivos temporários" #~ msgid "Fork hgtk" #~ msgstr "Executar hgtk em segundo plano" #~ msgid "" #~ "Redirect stderr to a buffer which is parsed at the end of the process for " #~ "runtime errors. Default: True" #~ msgstr "" #~ "Redireciona a saída de erros (stderr) para um buffer que ao término do " #~ "processo é verificado em busca de erros de execução. Valor padrão: True" #~ msgid "Rename error" #~ msgstr "Erro de renomeação" #~ msgid "Try &Again" #~ msgstr "Tentar Nov&amente" #~ msgid "&Quit" #~ msgstr "Sa&ir" #~ msgid "Close diff tools and try again, or quit to leak files?" #~ msgstr "" #~ "Fechar o utilitário de diff e tentar novamente, ou sair e deixar os " #~ "arquivos?" #~ msgid "" #~ "Graphical merge program for resolving merge conflicts. If left " #~ "unspecified, Mercurial will use the first applicable tool it finds on " #~ "your system or use its internal merge tool that leaves conflict markers " #~ "in place. Chose internal:merge to force conflict markers, internal:" #~ "prompt to always select local or other, or internal:dump to leave files " #~ "in the working directory for manual merging" #~ msgstr "" #~ "Programa gráfico para resolver conflitos de mesclagem. Se não " #~ "especificado, o Mercurial usará a primeira ferramenta aplicável que " #~ "encontrar em seu sistema ou seu utilitário interno de mesclagem (que " #~ "coloca marcações de conflito nos arquivos). Escolha internal:merge para " #~ "forçar o uso de marcações de conflito, internal:prompt para sempre " #~ "selecionar ou a versão local ou a outra, ou internal:dump para colocar as " #~ "versões dos arquivos no diretório de trabalho para mesclagem manual" #~ msgid "Advanced options" #~ msgstr "Opções avançadas" #~ msgid "Compressed zip archives" #~ msgstr "Arquivos zip comprimidos" #~ msgid "Source path:" #~ msgstr "Caminho de origem:" #~ msgid "Use uncompressed transfer" #~ msgstr "Usar transferência não comprimida" #~ msgid "Recent commit messages..." #~ msgstr "Mensagens de consolidação recentes..." #~ msgid "commit to merge one head" #~ msgstr "consolide para mesclar uma cabeça" #~ msgid "parent is not a head, commit to add a new head" #~ msgstr "o pai não é uma cabeça, consolide para adicionar uma nova" #~ msgid "Confirm Undo Commit" #~ msgstr "Confirmar Desfazimento de Consolidação" #~ msgid "Undo Commit" #~ msgstr "Desfazer Consolidação" #~ msgid "Info Required" #~ msgstr "Informação Requerida" #~ msgid "Select" #~ msgstr "Selecionar" #~ msgid "Select Revision" #~ msgstr "Selecionar Revisão" #~ msgid "Invalid Revision" #~ msgstr "Revisão Inválida" #~ msgid "%s branch" #~ msgstr "ramo %s" #~ msgid "Color by Branch" #~ msgstr "Colorir por Ramo" #~ msgid "hgtk forget [FILE]..." #~ msgstr "hgtk forget [ARQUIVO]..." #~ msgid "Spell Check Language" #~ msgstr "Idioma para Verificação Ortográfica" #~ msgid "revision to merge with" #~ msgstr "revisão com a qual mesclar" #~ msgid "tagged revisions" #~ msgstr "revisões etiquetadas" #~ msgid "working parents" #~ msgstr "pais de trabalho" #~ msgid "merges" #~ msgstr "mesclagens" #~ msgid "revision ancestry" #~ msgstr "ancestralidade de revisões" #~ msgid "heads" #~ msgstr "cabeças" #~ msgid "Load all" #~ msgstr "Carregar todas" #~ msgid "load more revisions" #~ msgstr "carrega mais revisões" #~ msgid "Load more" #~ msgstr "Carregar mais" #~ msgid "load all revisions" #~ msgstr "carrega todas as revisões" #~ msgid "_Diff" #~ msgstr "_Diff" #~ msgid "Confirm Rebase Revision" #~ msgstr "Confirmar Rebaseamento de Revisões" #~ msgid "Rebase revision %d on top of %d?" #~ msgstr "Rebasear revisão %d no topo de %d?" #~ msgid "Archive" #~ msgstr "Criar Pacote" #~ msgid "" #~ "The destination \"%s\" already exists!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "O destino \"%s\" já existe!\n" #~ "\n" #~ "Você deseja sobrescrevê-lo?" #~ msgid "" #~ "The directory \"%s\" isn't empty!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "O diretório \"%s\" não está vazio!\n" #~ "\n" #~ "Você deseja sobrescrevê-lo?" #~ msgid "All Files (*.*)" #~ msgstr "Todos os Arquivos (*.*)" #~ msgid "unexpected response id: %s" #~ msgstr "id de resposta inesperado: %s" #~ msgid "Do you want to abort?" #~ msgstr "Você deseja cancelar?" #~ msgid "unknown mode name: %s" #~ msgstr "nome de modo desconhecido: %s" #~ msgid "Confirm Abort" #~ msgstr "Confirmar Cancelamento" #~ msgid "unknown hunk type: %s" #~ msgstr "tipo de trecho desconhecido: %s" #~ msgid "%s changeset " #~ msgstr "%s revisão " #~ msgid "Save as.." #~ msgstr "Salvar como..." #~ msgid "_Forget" #~ msgstr "_Esquecer" #~ msgid "Source and destination are the same" #~ msgstr "Origem e destino são iguais" #~ msgid "Please specify different paths" #~ msgstr "Por favor especifique caminhos diferentes" #~ msgid "Repository Error: %s, refresh suggested" #~ msgstr "Erro de Repositório: %s, é sugerido atualizar" #~ msgid "_View" #~ msgstr "E_xibir" #~ msgid "_Operations" #~ msgstr "_Operações" #~ msgid "Advanced" #~ msgstr "Avançado" #~ msgid "[no hunks to display]" #~ msgstr "[nenhum trecho para exibir]" #~ msgid "Patch Contents" #~ msgstr "Conteúdo do Patch" #~ msgid "Patch Preview" #~ msgstr "Preview do Patch" #~ msgid "create new MQ patch" #~ msgstr "criar novo patch MQ" #~ msgid "Loading history..." #~ msgstr "Carregando histórico..." #~ msgid "Command Log" #~ msgstr "Log de Comandos" #~ msgid "" #~ "Select language for spell checking.\n" #~ "\n" #~ "Empty is for the default language.\n" #~ "When all text is highlited, the dictionary\n" #~ "is probably not installed.\n" #~ "\n" #~ "examples: en, en_GB, en_US" #~ msgstr "" #~ "Selecione uma língua para correção ortográfica.\n" #~ "\n" #~ "Deixe em branco para utilizar a língua padrão.\n" #~ "Quando todo o texto está destacado, o dicionário\n" #~ "provavelmente não está instalado.\n" #~ "\n" #~ "exemplos: en, en_US, pt, pt_BR" #~ msgid "Send emails" #~ msgstr "Enviar e-mails" #~ msgid "Log Details" #~ msgstr "Detalhes do Log" #~ msgid "Choose Details..." #~ msgstr "Escolher Detalhes..." #~ msgid "Archive revision:" #~ msgstr "Criar pacote com a revisão:" #~ msgid "Archived successfully" #~ msgstr "Pacote criado com sucesso" #~ msgid "Canceled archiving" #~ msgstr "Criação de pacote cancelada" #~ msgid "Failed to archive" #~ msgstr "Falha ao criar pacote" #~ msgid "Backout changeset - %s" #~ msgstr "Anular revisão (backout) - %s" #~ msgid "Changeset Description" #~ msgstr "Descrição da Revisão" #~ msgid "Canceled backout" #~ msgstr "Anulação cancelada" #~ msgid "Failed to backout" #~ msgstr "Falha ao anular" #~ msgid "_Visual Diff" #~ msgstr "Diferença _Visual" #~ msgid "Diff to _local" #~ msgstr "Diff com versão _local" #~ msgid "_Save at Revision..." #~ msgstr "_Salvar Conteúdo Como..." #~ msgid "_File History" #~ msgstr "Histórico do _Arquivo" #~ msgid "_Annotate File" #~ msgstr "Revisões por Linha do Arquivo (annotate)" #~ msgid "_Revert File Contents" #~ msgstr "_Reverter Conteúdo do Arquivo" #~ msgid "Diff to second Parent" #~ msgstr "Diff com segundo Pai" #~ msgid "Cloned successfully" #~ msgstr "Clonado com sucesso" #~ msgid "Failed to clone" #~ msgstr "Falha ao clonar" #~ msgid "Committer:" #~ msgstr "Autor:" #~ msgid "Auto-includes:" #~ msgstr "Auto-inclusão:" #~ msgid "Push after commit" #~ msgstr "Push após commit" #~ msgid "Commit Preview" #~ msgstr "Pré-Visualização da Consolidação" #~ msgid "refresh top MQ patch" #~ msgstr "atualiza o patch do topo da MQ" #~ msgid "%s - datamine" #~ msgstr "%s - datamine" #~ msgid "_Tools" #~ msgstr "_Ferramentas" #~ msgid "Datamine" #~ msgstr "Datamine" #~ msgid "_Help" #~ msgstr "_Ajuda" #~ msgid "Contents" #~ msgstr "Conteúdo" #~ msgid "revision number, changeset ID, branch or tag" #~ msgstr "número de ordem de revisão, ID de revisão, ramo ou etiqueta" #~ msgid "Lang \"%s\" can not be set.\n" #~ msgstr "Idioma \"%s\" não pode ser definido.\n" #~ msgid "unknown CmdWidget style: %s" #~ msgstr "estilo de CmdWidget desconhecido: %s" #~ msgid "Toggle log window" #~ msgstr "Alterna janela de log" #~ msgid "Stop transaction" #~ msgstr "Interromper transação" #~ msgid "Close this" #~ msgstr "Fechar esta janela" #~ msgid "invalid state" #~ msgstr "estado inválido" #~ msgid "Send" #~ msgstr "Enviar" #~ msgid "Test" #~ msgstr "Testar" #~ msgid "Email revisions " #~ msgstr "Enviar revisões por email " #~ msgid "" #~ "This feature is only available when sending outgoing changesets. It is " #~ "not applicable with revision ranges." #~ msgstr "" #~ "Esta funcionalidade está disponível apenas ao enviar revisões não " #~ "disponíveis no remoto. Ela não se aplica a faixas de revisões." #~ msgid "Flags:" #~ msgstr "Flags:" #~ msgid "Apply to:" #~ msgstr "Aplicar em:" #~ msgid "[command returned code %d " #~ msgstr "[comando devolveu código %d " #~ msgid "[command completed successfully " #~ msgstr "[comando completou com sucesso " #~ msgid "Columns" #~ msgstr "Colunas" #~ msgid "Move Up" #~ msgstr "Mover Para Cima" #~ msgid "Move Down" #~ msgstr "Mover Para Baixo" #~ msgid "Accept new Changesets" #~ msgstr "Aceitar novas Revisões" #~ msgid "&Accept" #~ msgstr "&Aceitar" #~ msgid "&Reject" #~ msgstr "&Rejeitar" #~ msgid " (Bundle Preview)" #~ msgstr " (Pré-Visualização de Bundle)" #~ msgid "Re_fresh" #~ msgstr "Re_ler" #~ msgid "Show/Hide Patch Queue" #~ msgstr "Mostra/Oculta Fila de Patches" #~ msgid "Sync Bar" #~ msgstr "Barra de Sincronização" #~ msgid "Load more Revisions" #~ msgstr "Carrega mais Revisões" #~ msgid "Load all Revisions" #~ msgstr "Carrega todas as Revisões" #~ msgid "Toolbar" #~ msgstr "Barra de Tarefas" #~ msgid "Filter Bar" #~ msgstr "Barra de Filtragem" #~ msgid "Reset Marks" #~ msgstr "Remover Marcações" #~ msgid "Ignore Max Diff Size" #~ msgstr "Ignorar Tamanho Máximo de Diff" #~ msgid "_Navigate" #~ msgstr "_Navegar" #~ msgid "Tip" #~ msgstr "Tip" #~ msgid "Working Parent" #~ msgstr "Pai do Diretório de Trabalho" #~ msgid "Revision..." #~ msgstr "Revisão..." #~ msgid "_Synchronize" #~ msgstr "_Sincronizar" #~ msgid "Email..." #~ msgstr "Email..." #~ msgid "Add Bundle..." #~ msgstr "Adicionar Bundle..." #~ msgid "Accept Bundle" #~ msgstr "Aceitar Bundle" #~ msgid "Reject Bundle" #~ msgstr "Rejeitar Bundle" #~ msgid "Revision Number" #~ msgstr "Número de Ordem da Revisão" #~ msgid "Changeset ID" #~ msgstr "ID da Revisão" #~ msgid "Branch Name" #~ msgstr "Nome do Ramo" #~ msgid "UTC Date" #~ msgstr "Data UTC" #~ msgid "Age" #~ msgstr "Idade" #~ msgid "Tags" #~ msgstr "Etiquetas" #~ msgid "Filter" #~ msgstr "Filtro" #~ msgid "Branch '%s'" #~ msgstr "Ramo '%s'" #~ msgid "only Merges" #~ msgstr "apenas Mesclagens" #~ msgid "Ancestry of %s" #~ msgstr "Ancestralidade de %s" #~ msgid "Tagged Revisions" #~ msgstr "Revisões Etiquetadas" #~ msgid "Heads" #~ msgstr "Cabeças" #~ msgid "no Merges" #~ msgstr "não mostrar Mesclagens" #~ msgid "Visualize Change" #~ msgstr "Visualizar Mudança (externo)" #~ msgid "Di_splay Change" #~ msgstr "E_xibir Mudança (interno)" #~ msgid "_Update..." #~ msgstr "At_ualizar..." #~ msgid "_Merge with..." #~ msgstr "_Mesclar com..." #~ msgid "_Export Patch..." #~ msgstr "_Exportar Patch..." #~ msgid "E_mail Patch..." #~ msgstr "Enviar Patch por E_mail..." #~ msgid "_Bundle rev:tip..." #~ msgstr "Criar _Bundle rev:tip..." #~ msgid "_Revert" #~ msgstr "_Reverter" #~ msgid "_Archive..." #~ msgstr "Criar P_acote..." #~ msgid "Strip Revision..." #~ msgstr "Remover revisão..." #~ msgid "_Diff with selected" #~ msgstr "_Diff com selecionada (interno)" #~ msgid "Visual Diff with selected" #~ msgstr "Diferença Visual com selecionada (externo)" #~ msgid "Email from here to selected..." #~ msgstr "Enviar por Email daqui até selecionada..." #~ msgid "Bundle from here to selected..." #~ msgstr "Criar Bundle daqui até selecionada..." #~ msgid "Export Patches from here to selected..." #~ msgstr "Exportar Patches daqui até selecionada..." #~ msgid "Transplant Revision range to local" #~ msgstr "Transplantar faixa de Revisões sobre a local" #~ msgid "Rebase on top of selected" #~ msgstr "Rebasear no topo da selecionada" #~ msgid "Download and view incoming changesets" #~ msgstr "Baixa e visualiza revisões novas remotas" #~ msgid "Pull incoming changesets" #~ msgstr "Traz revisões novas remotas (pull)" #~ msgid "Determine and mark outgoing changesets" #~ msgstr "Determina e marca revisões locais não presentes no remoto" #~ msgid "Push outgoing changesets" #~ msgstr "Envia revisões locais não presentes no remoto (push)" #~ msgid "Email outgoing changesets" #~ msgstr "Envia por email revisões locais não presentes no remoto" #~ msgid "Configure aliases and after pull behavior" #~ msgstr "Configura apelidos de repositórios e ações após o pull" #~ msgid "Stop current transaction" #~ msgstr "Interrompe a transação atual" #~ msgid "After Pull:" #~ msgstr "Após o Pull:" #~ msgid "Nothing" #~ msgstr "Nenhuma Ação" #~ msgid "Tagged" #~ msgstr "Etiquetadas" #~ msgid "Ancestry" #~ msgstr "Ancestrais" #~ msgid "Merges" #~ msgstr "Mesclagens" #~ msgid "Custom" #~ msgstr "Personalizado" #~ msgid "File Patterns" #~ msgstr "Padrões de Arquivo" #~ msgid "Keywords" #~ msgstr "Palavras Chave" #~ msgid "No remote path specified" #~ msgstr "Nenhum caminho remoto especificado" #~ msgid "Please enter or select a remote path" #~ msgstr "Por favor digite ou selecione um caminho remoto" #~ msgid "Accept incoming previewed changesets" #~ msgstr "Aceita revisões remotas da pré-visualização" #~ msgid "Reject incoming previewed changesets" #~ msgstr "Rejeita revisões remotas da pré-visualização" #~ msgid "Reject" #~ msgstr "Rejeitar" #~ msgid "Bundle Preview" #~ msgstr "Pré-Visualização de Bundle" #~ msgid "Open Bundle" #~ msgstr "Abrir Bundle" #~ msgid "Confirm Revert All Files" #~ msgstr "Confirmar Reversão de Todos os Arquivos" #~ msgid "Save patches to" #~ msgstr "Salvar patches em" #~ msgid "%(count)d of %(total)d Revisions" #~ msgstr "%(count)d de %(total)d Revisões" #~ msgid "Repository is empty" #~ msgstr "Repositório está vazio" #~ msgid "Merging in %s" #~ msgstr "Mesclando em %s" #~ msgid "Outstanding uncommitted changes" #~ msgstr "Alterações não consolidadas pendentes" #~ msgid "" #~ "To complete merging, you need to commit merged files in working " #~ "directory.\n" #~ "\n" #~ "Do you want to exit?" #~ msgstr "" #~ "Para completar a mesclagem, você precisa consolidar os arquivos mesclados " #~ "no diretório de trabalho.\n" #~ "\n" #~ "Você deseja mesmo sair?" #~ msgid "Merged successfully" #~ msgstr "Mesclado com sucesso" #~ msgid "Canceled merging" #~ msgstr "Mesclagem cancelada" #~ msgid "Failed to merge" #~ msgstr "Falha ao mesclar" #~ msgid "Undo successfully" #~ msgstr "Desfazimento com sucesso" #~ msgid "Canceled undo" #~ msgstr "Desfazimento cancelado" #~ msgid "Failed to undo" #~ msgstr "Falha ao desfazer" #~ msgid "Successfully" #~ msgstr "Sucesso" #~ msgid "Canceled" #~ msgstr "Cancelado" #~ msgid "Failed" #~ msgstr "Falha" #~ msgid "%s - recovery" #~ msgstr "%s - recuperação" #~ msgid "Rename " #~ msgstr "Renomear " #~ msgid "%s - serve" #~ msgstr "%s - servidor web" #~ msgid "%s serve - %s" #~ msgstr "%s - servidor web - %s" #~ msgid " - serve" #~ msgstr " - servidor web" #~ msgid "Visual diff checked files" #~ msgstr "Diferença visual dos arquivos marcados" #~ msgid "Revert checked files" #~ msgstr "Reverter arquivos marcados" #~ msgid "Add checked files" #~ msgstr "Adicionar arquivos marcados" #~ msgid "Move checked files to other directory" #~ msgstr "Mover arquivos marcados para outro diretório" #~ msgid "Remove or delete checked files" #~ msgstr "Remover ou apagar arquivos marcados" #~ msgid "Forget checked files on next commit" #~ msgstr "Esquecer arquivos marcados na próxima consolidação" #~ msgid "refresh" #~ msgstr "reler" #~ msgid "View" #~ msgstr "Ver" #~ msgid "Text Diff" #~ msgstr "Diff de Texto" #~ msgid "Hunk Selection" #~ msgstr "Seleção de Trecho" #~ msgid "Save Preview" #~ msgstr "Salvar Pré-Visualização" #~ msgid "View '%s'" #~ msgstr "Ver '%s'" #~ msgid "Nothing Diffed" #~ msgstr "Nada Diferente" #~ msgid "No diffable files selected" #~ msgstr "Nenhum arquivo a ser comparado" #~ msgid "&Yes (backup changes)" #~ msgstr "&Sim (faz backup das mudanças)" #~ msgid "Nothing Forgotten" #~ msgstr "Nada Esquecido" #~ msgid "No clean files selected" #~ msgstr "Nenhum arquivo limpo selecionado" #~ msgid "View missing" #~ msgstr "Ver faltando" #~ msgid "View other" #~ msgstr "Ver outro" #~ msgid "_Guess Rename..." #~ msgstr "In_ferir Renomeação..." #~ msgid "_Ignore" #~ msgstr "_Ignorar" #~ msgid "Remove versioned" #~ msgstr "Remover versionado" #~ msgid "_Delete unversioned" #~ msgstr "_Apagar não versionado" #~ msgid "_Copy..." #~ msgstr "_Copiar..." #~ msgid "Rename..." #~ msgstr "Renomear..." #~ msgid "Restart Merge..." #~ msgstr "Reiniciar Mesclagem..." #~ msgid "Mark unresolved" #~ msgstr "Marcar como não resolvido" #~ msgid "Mark resolved" #~ msgstr "Marcar como resolvido" #~ msgid "Restart merge with" #~ msgstr "Reiniciar mesclagem com" #~ msgid "not up to date" #~ msgstr "não atualizado" #~ msgid "" #~ "The parents have changed since the last refresh.\n" #~ "Continue anyway?" #~ msgstr "" #~ "Os pais mudaram desde a última leitura.\n" #~ "Continue de qualquer forma?" #~ msgid "%s - synchronize" #~ msgstr "%s - sincronizar" #~ msgid "Shelve uncommited changes" #~ msgstr "Adia mudanças não consolidadas" #~ msgid "Target revision:" #~ msgstr "Revisão alvo:" #~ msgid "Show patches" #~ msgstr "Mostrar patches" #~ msgid "Show newest first" #~ msgstr "Mostrar mais novos primeiro" #~ msgid "Show no merges" #~ msgstr "Não mostrar mesclagens" #~ msgid "" #~ "Color changesets by author name. If not enabled, the changes are colored " #~ "green for merge, red for non-trivial parents, black for normal. Default: " #~ "False" #~ msgstr "" #~ "Colore revisões por nome de autor. Se desabilitado, as mudanças são " #~ "coloridas em verde para mesclagens, vermelho para pais não-triviais e " #~ "preto para as outras revisões. Valor padrão: Falso" #~ msgid "" #~ "If true, concatenate multiple lines of changeset summary until they reach " #~ "80 characters. Default: False" #~ msgstr "" #~ "Se verdadeiro, concatenar múltiplas linhas do sumário da revisão até " #~ "atingir 80 caracteres. Valor padrão: False" #~ msgid "Maximum number of files to list per changeset." #~ msgstr "Número máximo de arquivos a mostrar por revisão." #~ msgid "http" #~ msgstr "http" #~ msgid "ssh" #~ msgstr "ssh" #~ msgid "https" #~ msgstr "https" #~ msgid "URL Details" #~ msgstr "Detalhes da URL" #~ msgid "Select Local Folder" #~ msgstr "Selecione Pasta Local" #~ msgid "Alias name is empty" #~ msgstr "Apelido do caminho está vazio" #~ msgid "Please enter alias name" #~ msgstr "Por favor entre com um apelido" #~ msgid "" #~ "Default language for spell check. System language is used if not " #~ "specified. Examples: en, en_GB, en_US" #~ msgstr "" #~ "Idioma padrão para verificação ortográfica. Se não for especificado, o " #~ "idioma do sistema será usado. Exemplos: pt_BR, en, en_US" #~ msgid "Exit after saving changes?" #~ msgstr "Sair após salvar as mudanças?" #~ msgid "Unapply last patch" #~ msgstr "Desaplica o último patch" #~ msgid "Apply next patch" #~ msgstr "Aplica o próximo patch" #~ msgid "_rename" #~ msgstr "_renomear" #~ msgid "Show status" #~ msgstr "Mostrar status" #~ msgid "Show name" #~ msgstr "Mostrar nome" #~ msgid "Enable editable cells" #~ msgstr "Habilitar células editáveis" #~ msgid "Show 'qparent'" #~ msgstr "Mostrar 'qparent'" #~ msgid "Succeed" #~ msgstr "Sucesso" #~ msgid "Strip" #~ msgstr "Strip (remover revisão)" #~ msgid "Backup all (default)" #~ msgstr "Fazer backup de todas (default)" #~ msgid "Backup unrelated changesets (-b/--backup)" #~ msgstr "Fazer backup de revisões não relacionadas (-b/--backup)" #~ msgid "" #~ "Detected uncommitted local changes.\n" #~ "Do you want to discard them and continue?" #~ msgstr "" #~ "Mudanças locais não consolidadas detectadas.\n" #~ "Você deseja descartá-las e continuar?" #~ msgid "&Yes (--force)" #~ msgstr "&Sim (--force)" #~ msgid "Stripped successfully" #~ msgstr "Revisões removidas com sucesso" #~ msgid "Canceled stripping" #~ msgstr "Remoção de revisões cancelada" #~ msgid "Failed to strip" #~ msgstr "Falha ao remover revisões" #~ msgid "Saved at: %s" #~ msgstr "Salva em: %s" #~ msgid "Open..." #~ msgstr "Abrir..." #~ msgid "" #~ "Detected uncommitted local changes in working tree.\n" #~ "Please select to continue:\n" #~ "\n" #~ msgstr "" #~ "Mudanças locais não consolidadas detectadas na cópia de trabalho.\n" #~ "Por favor selecione para continuar:\n" #~ "\n" #~ msgid "Shelve - launch Shelve tool and continue" #~ msgstr "Shelve - invoca a ferramenta shelve e continua" #~ msgid "[canceled by user]\n" #~ msgstr "[cancelada pelo usuário]\n" #~ msgid "invalid dialog result: %s" #~ msgstr "resultado inválido da caixa de diálogo: %s" #~ msgid "Updated successfully" #~ msgstr "Atualizado com sucesso" #~ msgid "Canceled updating" #~ msgstr "Atualização cancelada" #~ msgid "Failed to update" #~ msgstr "Falha ao atualizar" #~ msgid "changeset " #~ msgstr "revisão " #~ msgid "Unsupported line endings type: %s" #~ msgstr "Tipo de quebra de linha não suportado: %s" #~ msgid "Repository Explorer" #~ msgstr "Explorador de Repositório" #~ msgid "Select files to revert" #~ msgstr "Selecione arquivos para reverter" #~ msgid "Select files to forget" #~ msgstr "Selecione arquivos para esquecer" #~ msgid "Select files to add" #~ msgstr "Selecione arquivos para adicionar" #~ msgid "" #~ "New changesets from the preview bundle are still pending.\n" #~ "\n" #~ "Accept or reject the new changesets?" #~ msgstr "" #~ "Novas revisões da pré-visualização do bundle ainda estão pendentes.\n" #~ "\n" #~ "Aceitar ou rejeitar as novas revisões?" #~ msgid "Select files to remove" #~ msgstr "Selecione arquivos para remover" #~ msgid "Yes (&keep)" #~ msgstr "Sim (mantém &cópia)" #~ msgid "" #~ "Do you want to fold un-applied patch '%(target)s' into current patch " #~ "'%(qtip)s'?" #~ msgstr "" #~ "Você deseja combinar o patch não aplicado '%(target)s' com o patch atual " #~ "'%(qtip)s'?" #~ msgid "Confirm Fold" #~ msgstr "Confirmar Combinação de Patch" #~ msgid "Unshelve Error" #~ msgstr "Erro ao Retirar do Adiamento (Unshelve)" #~ msgid "#" #~ msgstr "Nº" #~ msgid "Toggle all selections" #~ msgstr "Inverter todas as seleções" #~ msgid "Hide Merges" #~ msgstr "Ocultar Mesclagens" #~ msgid "Parent: %(rev)s" #~ msgstr "Pai: %(rev)s" #~ msgid " - qnew" #~ msgstr " - qnew (novo patch MQ)" #~ msgid " - qrefresh " #~ msgstr " - qrefresh (atualiza patch MQ) " #~ msgid "Branches..." #~ msgstr "Ramos..." #~ msgid "Compact Graph" #~ msgstr "Grafo Compacto" #~ msgid "Accept changes from Bundle preview" #~ msgstr "Aceita mudanças da pré-visualização do bundle" #~ msgid "Branch Filter" #~ msgstr "Filtro de Ramos" #~ msgid "Reject changes from Bundle preview" #~ msgstr "Rejeita mudanças da pré-visualização do bundle" #~ msgid "Use Expander" #~ msgstr "Use Expansor" #~ msgid "Show changeset details with an expander" #~ msgstr "Mostra detalhes de revisão usando um expansor" #~ msgid "Undo" #~ msgstr "Desfazer" #~ msgid "Confirm Forced Push" #~ msgstr "Confirmação de Push Forçado" #~ msgid "&Push" #~ msgstr "&Push" #~ msgid "" #~ "Forced push to repository\n" #~ "%s\n" #~ "(creating new heads if needed)?" #~ msgstr "" #~ "Forçar o push para o repositório\n" #~ "%s\n" #~ "(criando novas cabeças se necessário)?" #~ msgid "Confirm Forced Push to Remote Repository" #~ msgstr "Confirmação de Push Forçado para o Repositório Remoto" #~ msgid " - commit" #~ msgstr " - commit (nova revisão)" #~ msgid "" #~ "Forced push to remote repository\n" #~ "%s\n" #~ "(creating new heads in remote if needed)?" #~ msgstr "" #~ "Forçar o push para o repositório remoto\n" #~ "%s\n" #~ "(criando novas cabeças no remoto se necessário)?" #~ msgid "Forced &Push" #~ msgstr "&Push Forçado" #~ msgid "_View at Revision" #~ msgstr "_Ver na Revisão" #~ msgid "Errors during rollback!" #~ msgstr "Erros durante o rollback!" #~ msgid "" #~ "The summary line length of %i is greater than %i.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "O tamanho %i da linha do sumário é maior que %i.\n" #~ "\n" #~ "Ignorar a política de formato e continuar a consolidação?" #~ msgid "The summary line length of %i is greater than %i" #~ msgstr "O comprimento %i da linha de sumário é maior que %i" #~ msgid "Unable to annotate " #~ msgstr "Incapaz de fazer anotação de " #~ msgid "Serve" #~ msgstr "Servidor web" #~ msgid "Recovery" #~ msgstr "Recuperação" #~ msgid "All files" #~ msgstr "Todos os arquivos" #~ msgid "Show emails which would be sent" #~ msgstr "Exibe os e-mails que seriam enviados" #~ msgid "Add/Remove _Tag..." #~ msgstr "Adicionar/Remover E_tiqueta..." #~ msgid "Ambiguous Revision" #~ msgstr "Revisão Ambígua" #~ msgid "Select common ancestor revision" #~ msgstr "Selecionar revisão ancestral comum" #~ msgid "merging " #~ msgstr "mesclando " #~ msgid "TortoiseHg Init" #~ msgstr "TortoiseHg - Criação de Repositório" #~ msgid "A new version of TortoiseHg is ready for download!" #~ msgstr "Uma nova versão do TortoiseHg está disponível para download!" #~ msgid "Copyright 2008-2010 Steve Borho and others" #~ msgstr "Copyright 2008-2010 Steve Borho e outros" #~ msgid "Not at head" #~ msgstr "Não está em uma cabeça" #~ msgid "Always Show Output" #~ msgstr "Mostrar Saída Sempre" #~ msgid "Mercurial bundles" #~ msgstr "Arquivos bundle do Mercurial" #~ msgid "Bundle..." #~ msgstr "Arquivo Bundle..." #~ msgid "Select a Mercurial Bundle" #~ msgstr "Selecione um Arquivo Bundle do Mercurial" #~ msgid "Committing changes..." #~ msgstr "Consolidando mudanças..." #~ msgid "Updating..." #~ msgstr "Atualizando..." #~ msgid "C_onfigure Format..." #~ msgstr "C_onfigurar Formato..." #~ msgid "_View File at Revision" #~ msgstr "_Ver Arquivo Nessa Revisão" #~ msgid "Index" #~ msgstr "Índice" #~ msgid "Old name:" #~ msgstr "Nome antigo:" #~ msgid "Bookmark input is empty" #~ msgstr "Entrada do marcador é vazia" #~ msgid "Please enter bookmark name" #~ msgstr "Por favor forneça o nome do marcador" #~ msgid "unexpected type: %s" #~ msgstr "tipo inesperado: %s" #~ msgid "Error in bookmarking" #~ msgstr "Erro ao atualizar marcador" #~ msgid "Bookmark \"%s\" has been added" #~ msgstr "O marcador \"%s\" foi adicionado" #~ msgid "Bookmarking completed" #~ msgstr "Atualização de marcador completada" #~ msgid "Bookmark \"%s\" has been renamed to \"%s\"" #~ msgstr "O marcador \"%s\" foi renomeado para \"%s\"" #~ msgid "Bookmark name is empty" #~ msgstr "O nome do marcador está vazio" #~ msgid "Bookmark \"%s\" has been moved" #~ msgstr "O marcador \"%s\" foi movido" #~ msgid "Bookmark \"%s\" has been removed" #~ msgstr "O marcador \"%s\" foi removido" #~ msgid "Please select bookmark name to remove" #~ msgstr "Por favor selecione um nome de marcador a ser removido" #~ msgid "Please enter new bookmark name" #~ msgstr "Por favor forneça um novo nome para o marcador" #~ msgid "Bookmark new name input is empty" #~ msgstr "Entrada do novo nome do marcador está vazia" #~ msgid "No bookmark named \"%s\" exists" #~ msgstr "Não existe nenhum marcador chamado \"%s\"" #~ msgid "browser" #~ msgstr "navegador" #~ msgid "Enable _Wordwrap" #~ msgstr "Habilita _Quebra Automática em Palavras" #~ msgid "Aborted committing" #~ msgstr "Consolidação abortada" #~ msgid "a bookmark named \"%s\" already exists" #~ msgstr "já existe um marcador chamado \"%s\"" #~ msgid "type" #~ msgstr "tipo" #~ msgid "Failed to commit" #~ msgstr "Falha ao consolidar" #~ msgid "Launch commit tool" #~ msgstr "Executa ferramenta de consolidação" #~ msgid "Launch data mining tool" #~ msgstr "Executa ferramenta de datamining" #~ msgid "Reset revision marks" #~ msgstr "Remove marcações das revisões" #~ msgid "Launch recovery tool" #~ msgstr "Executa ferramenta de recuperação" #~ msgid "Launch web server" #~ msgstr "Executa servidor web" #~ msgid "hgtk shellconfig" #~ msgstr "hgtk shellconfig" #~ msgid "hgtk import [OPTION] [SOURCE]..." #~ msgstr "hgtk import [OPÇÃO] [ORIGEM]..." #~ msgid "import to the repository" #~ msgstr "importar para o repositório" #~ msgid "Reset _Marks" #~ msgstr "Remover _Marcações" #~ msgid "_Perforce" #~ msgstr "_Perforce" #~ msgid "Identify" #~ msgstr "Identificar" #~ msgid "Branches" #~ msgstr "Ramos" #~ msgid "Configure Paths..." #~ msgstr "Configurar Caminhos..." #~ msgid "Import..." #~ msgstr "Importar..." #~ msgid "Previously Selected" #~ msgstr "Selecionada Previamente" #~ msgid "Pending" #~ msgstr "Pendente" #~ msgid "Submitted" #~ msgstr "Submetida" #~ msgid "Revision Range" #~ msgstr "Faixa de Revisões" #~ msgid "Unable to find rev %s" #~ msgstr "Incapaz de localizar revisão %s" #~ msgid "Aborted p4identify" #~ msgstr "p4identify abortado" #~ msgid "Finding pending Perforce changelists..." #~ msgstr "Procurando changelists pendentes do Perforce..." #~ msgid "Pending Perforce changelists" #~ msgstr "Changelists pendentes do Perforce" #~ msgid "Perforce changelist %s" #~ msgstr "Changelist do Perforce %s" #~ msgid "_Copy Hash" #~ msgstr "_Copiar Hash (ID)" #~ msgid "'%s' filter:" #~ msgstr "filtro '%s':" #~ msgid "Changes" #~ msgstr "Mudanças" #~ msgid "%(count)d of %(total)d applied patches" #~ msgstr "%(count)d de %(total)d patches aplicados" #~ msgid "Unable to identify Perforce tip" #~ msgstr "Incapaz de identificar tip do Perforce" #~ msgid "Finding tip Perforce changelist..." #~ msgstr "Procurando changelist tip do Perforce..." #~ msgid "Identifying Perforce tip" #~ msgstr "Identificando tip do Perforce" #~ msgid "Revision Number/ID" #~ msgstr "Número de Revisão/ID" #~ msgid "Current patch: %s, " #~ msgstr "Patch atual: %s, " #~ msgid "Export" #~ msgstr "Exportar" #~ msgid "Push to Here" #~ msgstr "Push até Aqui" #~ msgid "Pull to Here" #~ msgstr "Pull até Aqui" #~ msgid "Add/Move/Remove B_ookmark..." #~ msgstr "Adicionar/Mover/Remover Marcad_or..." #~ msgid "Rename Bookmark..." #~ msgstr "Renomear Marcador..." #~ msgid "Transp_lant to Local" #~ msgstr "Transp_lantar para a Local" #~ msgid "Bisect" #~ msgstr "Bisseccionar" #~ msgid "Tag" #~ msgstr "Etiqueta" #~ msgid "Mercurial Queues" #~ msgstr "Mercurial Queues" #~ msgid "Applying bundle" #~ msgstr "Aplicando bundle" #~ msgid "Reset" #~ msgstr "Reiniciar" #~ msgid "Mark as Good" #~ msgstr "Marcar como Boa" #~ msgid "Import Revision to MQ" #~ msgstr "Importar Revisão para a MQ" #~ msgid "Import from here to selected to MQ" #~ msgstr "Importar daqui até a selecionada para a MQ" #~ msgid "Import patches" #~ msgstr "Importar patches" #~ msgid "Mark as Bad" #~ msgstr "Marcar como Ruim" #~ msgid "Skip Testing" #~ msgstr "Excluir do Teste" #~ msgid "Applying bundle..." #~ msgstr "Aplicando bundle..." #~ msgid "Aborted incoming" #~ msgstr "Comando incoming abortado" #~ msgid "Finished pull" #~ msgstr "Pull finalizado" #~ msgid "Aborted pull" #~ msgstr "Comando pull abortado" #~ msgid "No changesets to pull" #~ msgstr "Nenhuma revisão a ser trazida" #~ msgid "Aborted outgoing" #~ msgstr "Comando outgoing abortado" #~ msgid "Pulling changesets..." #~ msgstr "Trazendo revisões..." #~ msgid "No incoming changesets" #~ msgstr "Nenhuma revisão de entrada" #~ msgid "Checking incoming changesets..." #~ msgstr "Verificando revisões de entrada..." #~ msgid "%d incoming changesets" #~ msgstr "%d revisões de entrada" #~ msgid "Finished pull with rebase" #~ msgstr "Pull com rebase finalizado" #~ msgid "Aborted push" #~ msgstr "Comando push abortado" #~ msgid "Finished push" #~ msgstr "Comando push finalizado" #~ msgid "Finish bundling" #~ msgstr "Criação de bundle finalizada" #~ msgid "Aborted bundling" #~ msgstr "Criação de bundle abortada" #~ msgid "unknown dnd dest: %s" #~ msgstr "destino de arrastar-e-soltar desconhecido: %s" #~ msgid "Bundling from %(base)s to tip..." #~ msgstr "Criando bundle de %(base)s até tip..." #~ msgid "Bundling from %(base)s to %(rev)s..." #~ msgstr "Criando bundle de %(base)s até %(rev)s..." #~ msgid "Aborted importing" #~ msgstr "Importação abortada" #~ msgid "Failed to import" #~ msgstr "Falha na importação" #~ msgid "Failed to bundle" #~ msgstr "Falha ao criar o bundle" #~ msgid "Bundling" #~ msgstr "Criando Bundle" #~ msgid "Finish importing" #~ msgstr "Importação finalizada" #~ msgid "_Annotate Parent" #~ msgstr "_Anotar Pai" #~ msgid "mpatch error" #~ msgstr "erro no comando mpatch" #~ msgid "%s does not exist\n" #~ msgstr "%s não existe\n" #~ msgid "mpatch expects *.rej file argument\n" #~ msgstr "o comando mpatch espera como parâmetro um arquivo *.rej\n" #~ msgid "_Zoom to Change" #~ msgstr "_Focalizar na Alteração" #~ msgid "Finished push to revision %s" #~ msgstr "Finalizado o push de revisões até a %s" #~ msgid "Importing to Patch Queue..." #~ msgstr "Importando para Fila de Patches..." #~ msgid "Importing" #~ msgstr "Importando" #~ msgid "Pulling changesets to revision %s..." #~ msgstr "Fazendo o pull até a revisão %s..." #~ msgid "Finished pull to revision %s" #~ msgstr "Finalizado o pull até a revisão %s" #~ msgid "Push to %s" #~ msgstr "Push até %s" #~ msgid "Pushing changesets to revision %s..." #~ msgstr "Fazendo o push de revisões até a %s..." #~ msgid "Rev/ID" #~ msgstr "Rev/ID" #~ msgid "Pull to %s" #~ msgstr "Pull até %s" #~ msgid "Submit" #~ msgstr "Submeter" #~ msgid "Cannot merge" #~ msgstr "Não é possível mesclar" #~ msgid "TortoiseHg Shell Configuration" #~ msgstr "Configuração de Shell do TortoiseHg" #~ msgid "Changelist:" #~ msgstr "Changelist:" #~ msgid "Uncommitted local changes" #~ msgstr "Mudanças locais não consolidadas" #~ msgid "<- Top" #~ msgstr "<- Topo" #~ msgid "" #~ "\n" #~ "===== Diff to second parent %d:%s =====\n" #~ msgstr "" #~ "\n" #~ "===== Diff com segundo pai %d:%s =====\n" #~ msgid "invalid pack direction: %s" #~ msgstr "direção de empacotamento inválida: %s" #~ msgid "unknown field name: %s" #~ msgstr "nome de campo desconhecido: %s" #~ msgid "Show the taskbar icon (restart needed)" #~ msgstr "Mostra o ícone da barra de tarefas (é necessário reiniciar)" #~ msgid "===== Diff to first parent %d:%s =====\n" #~ msgstr "===== Diff com primeiro pai %d:%s =====\n" #~ msgid "S: subrepo" #~ msgstr "S: subrepositório" #~ msgid "invalid alignment value: %s" #~ msgstr "valor de alinhamento inválido: %s" #~ msgid "Sub ->" #~ msgstr "Sub ->" #~ msgid "Capture stderr" #~ msgstr "Captura stderr" #~ msgid "" #~ "The editor to use during a commit and other instances where Mercurial " #~ "needs multiline input from the user. Used by command line commands, " #~ "including patch import." #~ msgstr "" #~ "O editor a ser usado durante uma consolidação e outras ocasiões onde o " #~ "Mercurial necessite de entrada em múltiplas linhas. Usado por comandos de " #~ "linha de comando, inclusive importação de patches." #~ msgid "" #~ "Specify the number of spaces that tabs expand to in various TortoiseHg " #~ "windows. Default: Not expanded" #~ msgstr "" #~ "Especifica o número de espaços que serão usados para expandir tabulações " #~ "em várias janelas do TortoiseHg. Padrão: não expandir" #~ msgid "Toolbar Style" #~ msgstr "Estilo da Barra de Ferramentas" #~ msgid "" #~ "Maximum length of the commit message summary line. If set, TortoiseHg " #~ "will issue a warning if the summary line is too long or not separated by " #~ "a blank line. Default: 0 (unenforced)" #~ msgstr "" #~ "Máximo comprimento da linha de sumário (primeira linha) da mensagem de " #~ "consolidação. Se definido, o TortoiseHg emitirá um aviso se a linha de " #~ "sumário for comprida demais ou se não for separada por uma linha em " #~ "branco. O valor padrão é 0 (não faz essa verificação)" #~ msgid "" #~ "Adjust the coloring style of diff lines in the changeset viewer. Default: " #~ "foreground" #~ msgstr "" #~ "Ajusta o estilo de coloração de linhas de diff no visualizador de " #~ "revisões (use \"foreground\" para primeiro plano, \"background\" para " #~ "fundo, e \"none\" para nenhum). Padrão: foreground" #~ msgid "" #~ "%s\n" #~ "Reverting to read-only mode." #~ msgstr "" #~ "%s\n" #~ "Revertendo para modo somente leitura." #~ msgid "Unable to parse a config file" #~ msgstr "Incapaz de decodificar um arquivo de configuração" #~ msgid "Insufficient access rights, reverting to read-onlymode." #~ msgstr "" #~ "Permissões de acesso insuficientes, revertendo para modo somente leitura" #~ msgid "Coloring Style" #~ msgstr "Estilo de Coloração" #~ msgid "Do you want to close?" #~ msgstr "Você deseja fechar?" #~ msgid "Canceled importing" #~ msgstr "Importação cancelada" #~ msgid "Confirm Close" #~ msgstr "Confirmação de Saída" #~ msgid "Select Directory contains patches:" #~ msgstr "Selecione um Diretório Contendo Patches:" #~ msgid "Imported successfully" #~ msgstr "Importado com sucesso" #~ msgid "Import" #~ msgstr "Importar" #~ msgid "Select Patches" #~ msgstr "Selecionar Patches" #~ msgid "%s will be imported to the" #~ msgstr "%s serão importados para" #~ msgid "%s will be imported to the repository" #~ msgstr "%s serão importados para o repositório" #~ msgid "unexpected destination name: %s" #~ msgstr "Nome de destino inesperado: %s" #~ msgid "invalid reorder operation: %s" #~ msgstr "operação de reordenação inválida: %s" #~ msgid "" #~ "Do you want to fold following un-applied patches into the current patch " #~ "'%(qtip)s'?" #~ msgstr "" #~ "Você deseja combinar os seguintes patches não aplicados com o patch atual " #~ "'%(qtip)s'?" #~ msgid "Do you want to delete these patches?" #~ msgstr "Você deseja remover estes patches?" #~ msgid "Do you want to delete '%(name)s'?" #~ msgstr "Você deseja remover '%(name)s'?" #~ msgid "Patch" #~ msgstr "Patch" #~ msgid "Top" #~ msgstr "Topo" #~ msgid "Reorder" #~ msgstr "Reordenar" #~ msgid "_Goto" #~ msgstr "_Ir para" #~ msgid "_Finish Applied" #~ msgstr "_Finalizar Aplicados" #~ msgid "_Rename" #~ msgstr "_Renomear" #~ msgid "F_old" #~ msgstr "C_ombinar" #~ msgid "_Delete" #~ msgstr "E_xcluir" #~ msgid "Up" #~ msgstr "Acima" #~ msgid "Bottom" #~ msgstr "Fundo" #~ msgid "Down" #~ msgstr "Abaixo" #~ msgid "_Shelve" #~ msgstr "_Shelve" #~ msgid "Always show log" #~ msgstr "Sempre mostrar log" #~ msgid "%s will be stripped" #~ msgstr "%s será removida" #~ msgid "%s changesets" #~ msgstr "%s revisões" #~ msgid "cleaning up temp directory\n" #~ msgstr "limpando diretório temporário\n" #~ msgid "revisions %d to %d" #~ msgstr "revisões %d a %d" #~ msgid "bad hunk #%d" #~ msgstr "trecho ruim #%d" #~ msgid "Hunk #%d FAILED at %d\n" #~ msgstr "Trecho #%d FALHOU em %d\\n\n" #~ msgid "file %s already exists\n" #~ msgstr "arquivo %s já existe\n" #~ msgid "bad hunk #%d %s (%d %d %d %d)" #~ msgstr "trecho ruim #%d %s (%d %d %d %d)" #~ msgid "patching file %s\n" #~ msgstr "aplicando patch no arquivo %s\n" #~ msgid "malformed patch %s %s" #~ msgstr "patch malformado %s %s" #~ msgid "No valid hunks found" #~ msgstr "Nenhum trecho válido encontrado" #~ msgid "bad hunk #%d old text line %d" #~ msgstr "trecho ruim #%d linha de texto antiga %d" #~ msgid "unable to strip away %d dirs from %s" #~ msgstr "incapaz de remover %d diretórios de %s" #~ msgid "unable to find %s or %s for patching" #~ msgstr "incapaz de localizar %s ou %s para aplicar o patch" #~ msgid "could not extract binary patch" #~ msgstr "não foi possível extrair patch binário" #~ msgid "binary patch is %d bytes, not %d" #~ msgstr "patch binário tem %d bytes, e não %d" #~ msgid "Unable to save file" #~ msgstr "Incapaz de salvar o arquivo" #~ msgid "Font used in command output window. Default: monospace 10" #~ msgstr "Fonte usada na janela de saída de comandos. O padão é: monospace 10" #~ msgid "" #~ "Font used for diffs in status and commit tools. Default: monospace 10" #~ msgstr "" #~ "Fonte usada em diffs nas ferramentas de status e consolidação. O padão é: " #~ "monospace 10" #~ msgid "File List" #~ msgstr "Lista de Arquivos" #~ msgid "Font used in file lists in status and commit tools. Default: sans 9" #~ msgstr "" #~ "Fonte usada nas listas de arquivos nas ferramentas de status e " #~ "consolidação. O padão é: sans 9" #~ msgid "Command Output" #~ msgstr "Saída de Comandos" #~ msgid "Commit Message" #~ msgstr "Mensagem de Consolidação" #~ msgid "" #~ "Font used in changeset viewer and commit log text. Default: monospace 10" #~ msgstr "" #~ "Fonte usada no visualizador de revisões e texto de log de consolidação. O " #~ "padão é: monospace 10" #~ msgid "Diff Text" #~ msgstr "Texto de Diff" #~ msgid " - Select Preset -" #~ msgstr " - Seleção de Pré-Definidos -" #~ msgid "Font" #~ msgstr "Fonte" #~ msgid "Theme default fonts" #~ msgstr "Fontes padrão do tema" #~ msgid "Preset fonts:" #~ msgstr "Fontes pré-definidas:" #~ msgid "Custom fonts:" #~ msgstr "Fontes personalizadas:" #~ msgid "Must supply a target revision" #~ msgstr "Você deve fornecer uma revisão de destino" #~ msgid "Japanese on Windows" #~ msgstr "Japonês no Windows" #~ msgid "Failed to preview, a bundle file unrelated to this repository" #~ msgstr "" #~ "Falha na pré-visualização: o arquivo de bundle não é relacionado a esse " #~ "repositório" #~ msgid "Failed to preview, not a Mercurial bundle file" #~ msgstr "Falha na pré-visualização: não é um arquivo de bundle do Mercurial" #~ msgid "neither parent is a head, commit to add a new head" #~ msgstr "nenhum pai é uma cabeça, consolide para adicionar uma nova cabeça" #~ msgid "tag '%s' does not exist" #~ msgstr "a etiqueta '%s' não existe" #~ msgid "tag '%s' is not a local tag" #~ msgstr "a etiqueta '%s' não é uma etiqueta local" #~ msgid "tag '%s' is not a global tag" #~ msgstr "a etiqueta '%s' não é uma etiqueta global" #~ msgid "Hunk #%d succeeded at %d (offset %d lines).\n" #~ msgstr "Trecho #%d aplicado com sucesso em %d (distância %d linhas).\\n\n" #~ msgid "Hunk #%d succeeded at %d with fuzz %d (offset %d lines).\n" #~ msgstr "" #~ "Trecho #%d aplicado com sucesso em %d com indistinção %d (distância %d " #~ "linhas).\\n\n" #~ msgid "Pushing changesets..." #~ msgstr "Enviando revisões..." #~ msgid "Null changeset is not viewable" #~ msgstr "Revisão null não pode ser visualizada" #~ msgid "Changeset not found in current view" #~ msgstr "Revisão não encontrada na visualização atual" #~ msgid "Confirm Switch" #~ msgstr "Confirmar mudança" #~ msgid "Switch after saving changes?" #~ msgstr "Alternar após salvar mudanças?" #~ msgid "Unable to determine repository status" #~ msgstr "Incapaz de determinar estado do repositório" #~ msgid "series become inconsistent during reorder" #~ msgstr "a série se tornou inconsistente durante a reordenação" #~ msgid "Merge target (other)" #~ msgstr "Alvo da mesclagem (outra)" #~ msgid "unable to clean temp directory: %s\n" #~ msgstr "incapaz de limpar diretório temporário: %s\n" #~ msgid "Status: %s" #~ msgstr "Status: %s" #~ msgid "Please try again after the running operation is completed" #~ msgstr "Por favor tente novamente após o término da operação em execução" #~ msgid "Finished committing" #~ msgstr "Consolidação encerrada" #~ msgid "Finished committing and pushing" #~ msgstr "Consolidação e envio encerrados" #~ msgid "Please try again after the previous command has completed" #~ msgstr "Por favor tente novamente após o término da operação em execução" #~ msgid "" #~ "Create new named branch \"%s\" with this commit?\n" #~ "Yes\t- Start new branch with this commit\n" #~ "No\t- Make commit without branch change\n" #~ "Cancel - Cancel this commit" #~ msgstr "" #~ "Criar um novo ramo nomeado \"%s\" com esta consolidação?\n" #~ "Sim\t- Inicia um novo ramo nomeado nesta nova revisão\n" #~ "Não\t- Consolida sem mudar o nome de ramo original\n" #~ "Cancelar - Cancela esta consolidação" #~ msgid "" #~ "Named branch \"%s\" already exists, last used in revision %d\n" #~ "Yes\t- Make commit restarting this named branch\n" #~ "No\t- Make commit without changing branch\n" #~ "Cancel - Cancel this commit" #~ msgstr "" #~ "O ramo nomeado \"%s\" já existe, usado pela última vez na revisão %d\n" #~ "Sim\t- Consolida reiniciando este ramo nomeado\n" #~ "Não\t- Consolida sem mudar o nome de ramo original\n" #~ "Cancelar - Cancela esta consolidação" #~ msgid "_Diff to Local" #~ msgstr "_Diff com Local" #~ msgid "Invalid revision set" #~ msgstr "Conjunto de revisões inválido" #~ msgid "" #~ "Push to remote repository\n" #~ "%s\n" #~ "(creating new branches in remote if needed)?" #~ msgstr "" #~ "Envia para o repositório remoto\n" #~ "%s\n" #~ "(criando novos ramos nomeados no remoto, se necessário)?" #~ msgid "Confirm Push of New Branches to Remote Repository" #~ msgstr "" #~ "Confirmação de Envio de Novos Ramos Nomeados para o Repositório Remoto" #~ msgid "file patterns \"%s\"" #~ msgstr "padrões de arquivo \"%s\"" #~ msgid "Finished pushing branch %s" #~ msgstr "Envio do ramo %s encerrado" #~ msgid "Push this Branch" #~ msgstr "Envia este Ramo" #~ msgid "No matches" #~ msgstr "Nenhum resultado" #~ msgid "No revisions matched search" #~ msgstr "Nenhuma revisão combinou com a busca" #~ msgid "Rollback repository '%s' to %d, undo %s?" #~ msgstr "" #~ "Fazer o rollback do repositório '%s' para a revisão %d, desfazendo " #~ "operação '%s'?" #~ msgid "Rollback repository '%s' to %d, undo %s from %s?" #~ msgstr "" #~ "Fazer o rollback do repositório '%s' para a revisão %d, desfazendo " #~ "operação '%s %s'?" #~ msgid "Pushing branch %s..." #~ msgstr "Enviando ramo %s..." #~ msgid "Menu Items" #~ msgstr "Ítens de Menu" #~ msgid "Show overlay icons in Mercurial repositories" #~ msgstr "Mostra ícones sobrepostos indicando repositórios do Mercurial" #~ msgid "Annotate" #~ msgstr "Anotar" #~ msgid "Show overlays on local disks only" #~ msgstr "Mostra ícones sobrepostos apenas em discos locais" #~ msgid "Default Tab" #~ msgstr "Aba Padrão" #~ msgid "_new" #~ msgstr "_novo" #~ msgid "Abandon" #~ msgstr "Abandonar" #~ msgid "Show message" #~ msgstr "Exibir a mensagem" #~ msgid "Show internal branches" #~ msgstr "Exibir ramos internos" #~ msgid "_goto (update workdir)" #~ msgstr "_ir para (atualiza diretório de trabalho)" #~ msgid "_finish" #~ msgstr "_finalizar" #~ msgid "_edit message" #~ msgstr "_editar mensagem" #~ msgid "Show graph" #~ msgstr "Exibir o grafo" #~ msgid "Annotate Second Parent" #~ msgstr "Anotar Segundo Pai" #~ msgid "_Annotate First Parent" #~ msgstr "_Anotar Primeiro Pai" #~ msgid "Patch Branch" #~ msgstr "Ramo de Patches" #~ msgid "Show/Hide Patch Branch" #~ msgstr "Mostrar/Ocultar Ramo de Patches" #~ msgid "Push new branch" #~ msgstr "Push de novo ramo" #~ msgid "no pending pmerges" #~ msgstr "sem pmerges pendentes" #~ msgid "pending pmerges" #~ msgstr "pmerges pendentes" #~ msgid "New Patch Name" #~ msgstr "Novo Nome de Patch" #~ msgid "Pending Pmerge" #~ msgstr "Pmerge Pendente" #~ msgid "" #~ "You cannot finish this patch branch unless you pmerge it first.\n" #~ "pmerge will solve the following issues with %(patch)s:\n" #~ "* %(issuelist)s" #~ msgstr "" #~ "Você não pode encerrar este ramo de patch sem antes executar pmerge.\n" #~ "pmerge resolverá as seguintes pendências com %(patch)s:\n" #~ "* %(issuelist)s" #~ msgid "St" #~ msgstr "St" #~ msgid "Unshelve Abort" #~ msgstr "Abortar Unshelve" #~ msgid "abandon shelved changes" #~ msgstr "abandona mudanças na shelve" #~ msgid "Uncommitted Local Changes" #~ msgstr "Mudanças Locais Não Consolidadas" #~ msgid "Applied MQ patch" #~ msgstr "Patch MQ Aplicado" #~ msgid "" #~ "pfinish uses your working directory for temporary work.\n" #~ "Please commit your local changes before issuing pfinish." #~ msgstr "" #~ "pfinish usa seu diretório de trabalho como área de temporários.\n" #~ "Por favor consolide suas mudanças locais antes de executar pfinish." #~ msgid "Patch branch finished" #~ msgstr "Ramo de patches encerrado" #~ msgid "" #~ "pfinish must be able to commit, but this is not allowed\n" #~ "as long as you have MQ patches applied." #~ msgstr "" #~ "pfinish deve ser capaz de fazer um commit, mas isso não é permitido\n" #~ "enquanto houver patches MQ aplicados." #~ msgid "Show title" #~ msgstr "Mostra título" #~ msgid "file copy of %s failed\n" #~ msgstr "cópia de arquivo de %s falhou\n" #~ msgid "removing backup file : %r\n" #~ msgstr "removendo arquivo de cópia de segurança : %r\n" #~ msgid "delete of shelve backup failed" #~ msgstr "remoção da cópia de segurança da shelve falhou" #~ msgid ", please refresh" #~ msgstr ", por favor releia o repositório" #~ msgid "abandon failed\n" #~ msgstr "o abandono falhou\n" #~ msgid "nothing to abandon\n" #~ msgstr "nada para abandonar\n" #~ msgid "shelved file abandoned\n" #~ msgstr "arquivo armazenado na shelve abandonado\n" #~ msgid "abandoning shelved file\n" #~ msgstr "abandonando arquivo armazenado na shelve\n" #~ msgid "unshelve backup aborted\n" #~ msgstr "criação do backup de remoção da shelve abortada\n" #~ msgid "abort: backup restore failed, %s\n" #~ msgstr "abortado: restauração do backup falhou, %s\n" #~ msgid "bad shelve backup directory name" #~ msgstr "nome ruim do diretório de backup da shelve" #~ msgid "Abandon Error" #~ msgstr "Erro no Abandono" #~ msgid "File is binary.\n" #~ msgstr "O arquivo é binário.\n" #~ msgid "Allow pushing a new branch" #~ msgstr "Permite que um novo ramo nomeado seja enviado" #~ msgid "Revert files?" #~ msgstr "Reverter arquivos?" #~ msgid "name of the webdir config file (DEPRECATED)" #~ msgstr "nome do arquivo de configuração webdir (OBSOLETO)" #~ msgid "Refresh required" #~ msgstr "É necessário reler" #~ msgid "Commit failed" #~ msgstr "A consolidação falhou" #~ msgid "Run Commit after init" #~ msgstr "Executar commit após init" #~ msgid "Configure Plugin" #~ msgstr "Configurar Plugin" #~ msgid "Invalid file pattern" #~ msgstr "Padrão de nome de arquivo inválido" #~ msgid "Commit backout before merging with current working parent" #~ msgstr "" #~ "Consolidar anulação antes de mesclar com pai do diretório de trabalho " #~ "atual" #~ msgid "Backed out successfully, you must now commit the results" #~ msgstr "" #~ "Anulação realizada com sucesso, você deve agora consolidar os resultados" #~ msgid "Force" #~ msgstr "Forçar" #~ msgid "Subversion" #~ msgstr "Subversion" #~ msgid "Starting Revision:" #~ msgstr "Revisão Inicial:" #~ msgid "Selecting %(sel)d, displaying %(count)d of %(total)d items" #~ msgstr "Selecionando %(sel)d, mostrando %(count)d de %(total)d itens" #~ msgid "Selecting %(sel)d of %(total)d, displaying all items" #~ msgstr "Selecionando %(sel)d de %(total)d, mostrando todos os itens" #~ msgid "Displaying all items" #~ msgstr "Mostrando todos os itens" #~ msgid "" #~ "** Please report this bug to http://bitbucket.org/tortoisehg/stable/" #~ "issues\n" #~ msgstr "" #~ "** Por favor informe sobre este bug em http://bitbucket.org/tortoisehg/" #~ "stable/issues\n" #~ msgid "Use merge tool:" #~ msgstr "Usar a ferramenta de mesclagem:" #~ msgid "Yes (&discard changes)" #~ msgstr "Sim (&descartar mudanças)" #~ msgid "Discard all changes from merge target (other) revision" #~ msgstr "Descartar todas as mudanças da revisão alvo da mesclagem (outra)" #~ msgid "Merge " #~ msgstr "Mesclagem " #~ msgid "hunk %d already applied at line %d (fuzz %d)\n" #~ msgstr "trecho %d já aplicado na linha %d (indistinção %d)\n" #~ msgid "_Commit (-1 head)" #~ msgstr "_Commit (consolidar) (-1 cabeça)" #~ msgid "_Commit (+1 head)" #~ msgstr "_Commit (consolidar) (+1 cabeça)" #~ msgctxt "changesets" #~ msgid "All" #~ msgstr "Todas" #~ msgid "Diff to Local" #~ msgstr "Diff com Local" #~ msgid "Shelf Preview" #~ msgstr "Visualização de Adiamento" #~ msgid "Delete the shelf contents?" #~ msgstr "Remover o conteúdo do adiamento?" #~ msgid "Shelf Contents" #~ msgstr "Conteúdo do Adiamento" #~ msgid "Launch shelve tool" #~ msgstr "Executa ferramenta Shelve (adiamento)" #~ msgid "Shelve" #~ msgstr "Adiar" #~ msgid "Backout..." #~ msgstr "Backout... (anular)" #~ msgid "Display local changes that will be pushed to selected repository" #~ msgstr "" #~ "Mostra revisões locais que serão enviadas para o repositório selecionado" #~ msgid "" #~ "Commit message text for new changeset that reverses the effect of the " #~ "change being backed out." #~ msgstr "" #~ "Mensagem de consolidação para a nova revisão que anula o efeito da " #~ "revisão sendo anulada." #~ msgid "" #~ "The maximum size file (in KB) that TortoiseHg will show changes for in " #~ "the changelog, status, and commit windows. A value of zero implies no " #~ "limit. Default: 1024 (1MB)" #~ msgstr "" #~ "O tamanho máximo do arquivo (em KB) para o qual o TortoiseHg irá mostrar " #~ "alterações nas janelas de changelog, status e consolidação. O valor zero " #~ "implica nenhum limite. O valor padrão é 1024 (1MB)" #~ msgid "" #~ "When running hgtk from the command line, fork a background process to run " #~ "graphical dialogs. Default: True" #~ msgstr "" #~ "Ao executar pela linha de comando, cria um processo em segundo plano para " #~ "executar janelas gráficas. Valor padrão: True" #~ msgid "Error while reading status" #~ msgstr "Erro ao ler o status" #~ msgid "" #~ "Adjust the display of the main toolbar in the Repository Explorer. " #~ "Values: small, large, or theme. Default: theme" #~ msgstr "" #~ "Ajusta a exibição da barra de ferramentas principal no Explorador do " #~ "Repositório. Valores: small (pequena), large (grande), ou theme (tema). " #~ "Valor padrão: theme" #~ msgid "" #~ "Operation which is performed directly after a successful pull. update " #~ "equates to pull --update, fetch equates to the fetch extension, rebase " #~ "equates to pull --rebase. Default: none" #~ msgstr "" #~ "Operação realizada automaticamente logo após um pull feito com sucesso. " #~ "\"update\" equivale a \"pull --update\", \"fetch\" equivale à extensão " #~ "\"fetch\", \"rebase\" equivale a \"pull --rebase\". Padrão: \"none" #~ "\" (nenhuma)" #~ msgid "" #~ "Show a full directory path of the repository in the dialog title instead " #~ "of just the root directory name. Default: False" #~ msgstr "" #~ "Mostra o caminho completo do repositório no título da janela ao invés de " #~ "apenas o nome do diretório raiz. Padrão: False" #~ msgid "" #~ "Comma separated list of files that are automatically unchecked when the " #~ "status, commit, and shelve dialogs are opened. Default: None (leave blank)" #~ msgstr "" #~ "Lista separada por vírgulas de arquivos que serão automaticamente " #~ "desmarcados quando as janelas de status e de consolidação forem abertas. " #~ "Padrão: Nenhuma (deixar em branco)" #~ msgid "" #~ "Attempt to push to default push target after every successful commit. " #~ "Default: False" #~ msgstr "" #~ "Tenta fazer o push para a URL especificada ou um apelido após cada " #~ "consolidação feita com sucesso. Padrão: False" #~ msgid "Close the commit tool after every successful commit. Default: False" #~ msgstr "" #~ "Fecha a ferramenta de consolidação após consolidar com sucesso. Padrão: " #~ "False" #~ msgid "" #~ "Word wrap length of the commit message. If set, the popup menu can be " #~ "used to format the message and a warning will be issued if any lines are " #~ "too long at commit. Default: 0 (unenforced)" #~ msgstr "" #~ "Comprimento máximo das linhas da mensagem de consolidação. Se definido, o " #~ "menu popup poderá ser usado para formatar a mensagem e um aviso será " #~ "emitido se qualquer linha for comprida demais. O padrão é 0 (desativado)" #~ msgid "" #~ "Space separated list of branch names and colors of the form branch:" #~ "#XXXXXX. Spaces and colons in the branch name must beescaped using a " #~ "backslash (\\). Likewise some other characters can be escaped in this " #~ "way, e.g. \\u0040 will be decoded to the @ character, and \\n to a " #~ "linefeed. Default: None (leave blank)" #~ msgstr "" #~ "Lista separada por espaços de nomes de ramos e cores, com a forma: " #~ "nomedoramo:#XXXXXX. Espaços e dois pontos no nome do ramo devem ser " #~ "prefixados com uma barra invertida (\\). Outros caracteres podem ser " #~ "codificados da mesma maneira; por exemplo \\u0040 será decodificado como " #~ "o caractere @, e \\n como uma mudança de linha. Padrão: nenhum (em branco)" #~ msgid "" #~ "The tab on which the status and commit tools will open. 0 - TextDiff, 1 - " #~ "Hunk Selection, 2 - Commit Preview. Default: 0" #~ msgstr "" #~ "A aba na qual as ferramentas de status e commit abrirão. 0 - Diff de " #~ "Texto, 1 - Seleção de Trecho, 2 - Pré-visualização da Consolidação. " #~ "Padrão: 0" #~ msgid "%d out of %d hunks FAILED -- saving rejects to file %s\n" #~ msgstr "%d de %d trechos FALHARAM -- gravando rejeitos no arquivo %s\n" #~ msgid "Checking outgoing changesets..." #~ msgstr "Verificando revisões a serem enviadas..." #~ msgid "" #~ "Defines the command to run when an issue number is recognized. You may " #~ "include groups in issue.regex, and corresponding {n} tokens in issue.link " #~ "(where n is a non-negative integer). {0} refers to the entire string " #~ "matched by issue.regex, while {1} refers to the first group and so on. If " #~ "no {n} tokensare found in issue.link, the entire matched string is " #~ "appended instead." #~ msgstr "" #~ "Define o comando a ser executado se um número de tíquete for reconhecido. " #~ "Você pode incluir grupos em issue.regex, e um token {n} correspondente em " #~ "issue.link (onde n é um inteiro não negativo). {0} se refere à string " #~ "inteira encontrada por issue.regex, {1} se refere ao primeiro grupo, e " #~ "assim por diante. Se nenhum token {n} for encontrado em issue.link, a " #~ "string completa encontrada será anexada." #~ msgid "Bug Traq" #~ msgstr "Rastreador de Tíquetes" #~ msgid "" #~ "Select issue tracker plugin to use. Links to plugins can be found at " #~ "http://tortoisesvn.net/issuetrackerplugins" #~ msgstr "" #~ "Seleciona o plugin de rastreamento de tíquetes a ser usado. Links para " #~ "plugins podem ser encontrados em http://tortoisesvn.net/" #~ "issuetrackerplugins" #~ msgid "" #~ "When commiting an issue, force the user to specify a reference to an " #~ "issue. If enabled, the regex configured in 'Issue Regex' must find a " #~ "match in the commit message" #~ msgstr "" #~ "Ao consolidar, força o usuário a especificar uma referência para um " #~ "tíquete. Se habilitado, a expressão regular configurada em 'Issue Regex' " #~ "deve encontrar uma referência na mensagem de configuração." #~ msgid " - Select Issue Tracker -" #~ msgstr " - Selecione Rastreador de Tíquetes -" #~ msgid "" #~ "No issue link found in the commit message.The commit message should " #~ "contain an issue link. Configure this in the 'Issue' section in the " #~ "settings" #~ msgstr "" #~ "Nenhum link para um tíquete foi encontrado na mensagem de consolidação. A " #~ "mensagem deve conter um link para um tíquete. Configure isto na seção de " #~ "configuração 'Issue'." #~ msgid "" #~ "A \"template string\" that, when set, turns the revision number and short " #~ "hashes that are shown on the revision panels into links.
                                                                                  The " #~ "\"template string\" uses a \"mercurial template\"-like syntax that " #~ "currently accepts two template expressions:

                                                                                  • {node|short} : " #~ "replaced by the 12 digit revision id (note that {node} on its own is " #~ "currently unsupported).
                                                                                  • {rev} : replaced by the revision number.For example, in order to link to bitbucket commit pages you can set " #~ "this to:
                                                                                    https://bitbucket.org/tortoisehg/thg/commits/{node|short}" #~ msgstr "" #~ "Uma \"string modelo\" que, se definida, transforma em links os números de " #~ "revisão e hashes curtos mostrados em painéis de revisão.
                                                                                    A \"string " #~ "modelo\" usa uma sintaxe semelhante à de modelos de saída de log do " #~ "Mercurial, e no momento aceita duas expressões de modelo:
                                                                                    • {node|" #~ "short} : substituída pelo id de revisão de 12 dígitos (note que {node} " #~ "apenas não é suportado no momento).
                                                                                    • {rev} : substituída pelo número de " #~ "revisão.
                                                                                    Por exemplo, para criar um link para páginas do TortoiseHg " #~ "no Bitbucket você poderia usar:
                                                                                    https://bitbucket.org/tortoisehg/thg/" #~ "commits/{node|short}" #~ msgid "Copyright 2008-2018 Steve Borho and others" #~ msgstr "Copyright 2008-2018 Steve Borho e outros" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/ru.po0000644000000000000000000153335614440352353016274 0ustar00rootroot# Russian translation for tortoisehg # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the tortoisehg package. # Alil Adamov , 2009. # Andrei Polushin , 2011, 2012. # Olesya Gerasimenko , 2019. msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-05-08 19:54+0300\n" "PO-Revision-Date: 2019-05-13 18:28MSK\n" "Last-Translator: Olesya Gerasimenko \n" "Language-Team: Basealt Translation Team\n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2018-05-04 05:28+0000\n" "X-Generator: Lokalize 2.0\n" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "не проверять сертификат сервера (игнорировать настройки web.cacerts)" msgid "[--insecure] [SOURCE]" msgstr "[--insecure] [ИСТОЧНИК]" #, python-format msgid "unsupported URL: %s" msgstr "неподдерживаемый URL: %s" #, python-format msgid "%s certificate error: no certificate received" msgstr "%s ошибка сертификата: сертификат не получен" msgid "move after the specified patch" msgstr "переместить после указанной заплатки" msgid "[--after PATCH] PATCH..." msgstr "[--after ЗАПЛАТКА] ЗАПЛАТКА..." msgid "unknown patch to move specified" msgstr "указана неизвестная заплатка для перемещения" msgid "invalid patch position specified" msgstr "указано неверное положение заплатки" msgid "cannot move applied patches" msgstr "невозможно переместить применённые заплатки" #, python-format msgid "patch %s not in series" msgstr "заплатка %s не в серии" msgid "cannot move into applied patches" msgstr "невозможно переместить в применённые заплатки" msgid "abort: " msgstr "прервано: " msgid "hint: " msgstr "подсказка: " #, python-format msgid "HTTP Error: %d (%s)" msgstr "Ошибка HTTP: %d (%s)" #, python-format msgid "URLError: %s" msgstr "Ошибка URL: %s" msgid "SSL: Server certificate verify failed" msgstr "SSL: проверка сертификата сервера не удалась" #, python-format msgid "SSL: unknown error %s:%s" msgstr "SSL: неизвестная ошибка %s:%s" #, python-format msgid "SSL error: %s" msgstr "SSL ошибка: %s" msgid "win32ill: cannot create window for messages" msgstr "win32ill: не удалось создать окно для сообщений" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "win32ill: неподдерживаемая платформа: %s\n" msgid "win32ill: interrupted while stopping message loop\n" msgstr "win32ill: прервано при остановке цикла обработки сообщений\n" msgid "Commit..." msgstr "Фиксировать..." msgid "Commit changes in repository" msgstr "Фиксировать изменения в хранилище" msgid "Create Repository Here" msgstr "Создать здесь хранилище" msgid "Create a new repository" msgstr "Создать новое хранилище" msgid "Clone..." msgstr "Клонировать..." msgid "Create clone here from source" msgstr "Создать здесь клон из источника" msgid "File Status" msgstr "Состояние файлов" msgid "Repository status & changes" msgstr "Состояние хранилища и изменения" msgid "Add Files..." msgstr "Добавить файлы..." msgid "Add files to version control" msgstr "Добавить файлы под контроль версий" msgid "Revert Files..." msgstr "Вернуть файлы..." msgid "Revert file changes" msgstr "Откатить изменения файлов" msgid "Forget Files..." msgstr "Забыть файлы..." msgid "Remove files from version control" msgstr "Удалить файлы из-под контроля версий" msgid "Remove Files..." msgstr "Удалить файлы..." msgid "Rename File" msgstr "Переименовать файл" msgid "Rename file or directory" msgstr "Переименовать файл или каталог" msgid "Workbench" msgstr "Рабочая среда" msgid "View change history in repository" msgstr "Показать историю изменений в хранилище" msgid "File History" msgstr "История файлов" msgid "View change history of selected files" msgstr "Просмотреть историю изменений выбранных файлов" msgid "Shelve Changes" msgstr "Отложить изменения" msgid "Move changes between working dir and patch" msgstr "Переместить изменения между рабочей директорией и заплаткой" msgid "Synchronize" msgstr "Синхронизация" msgid "Synchronize with remote repository" msgstr "Синхронизировать с удалённым хранилищем" msgid "Web Server" msgstr "Веб-сервер" msgid "Start web server for this repository" msgstr "Запустить веб-сервер для данного хранилища" msgid "Update..." msgstr "Обновить..." msgid "Update working directory" msgstr "Обновить рабочий каталог" msgid "Update Icons" msgstr "Обновить значки" msgid "Update icons for this repository" msgstr "Обновить значки для текущего хранилища" msgid "Global Settings" msgstr "Глобальные настройки" msgid "Configure user wide settings" msgstr "Конфигурировать пользовательские настройки" msgid "Repository Settings" msgstr "Настройки хранилища" msgid "Configure repository settings" msgstr "Настроить параметры хранилища" msgid "Explorer Extension Settings" msgstr "Настройки расширения Проводника" msgid "Configure Explorer extension" msgstr "Конфигурировать расширение Проводника" msgid "About TortoiseHg" msgstr "О TortoiseHg" msgid "Show About Dialog" msgstr "Показать диалог о программе" msgid "Diff to parent" msgstr "Сравнить с родителем" msgid "View changes using GUI diff tool" msgstr "Отобразить изменения в графическом средстве сравнения" msgid "Edit Ignore Filter" msgstr "Править фильтр игнорирования" msgid "Edit repository ignore filter" msgstr "Править фильтр игнорирования хранилища" msgid "Guess Renames" msgstr "Угадать переименования" msgid "Detect renames and copies" msgstr "Выявить переименования и копии" msgid "Search History" msgstr "Поиск по истории" msgid "Search file revisions for patterns" msgstr "Поиск ревизий файлов по шаблонам" msgid "DnD Synchronize" msgstr "Синхронизировать с привнесённым" msgid "Synchronize with dragged repository" msgstr "Синхронизировать с привнесённым хранилищем" msgid "Issue Tracker Plugin Error" msgstr "Ошибка плагина для отслеживания ошибок" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "" "Не удалось создать экземпляр COM объекта плагина системы отслеживания проблем" msgid "This error will not be shown again until you restart the workbench" msgstr "Эта ошибка будет показана снова только после перезапуска рабочей среды" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "" "Ошибка получения информации о сообщении фиксации из плагина системы " "отслеживания проблем" msgid "Error executing \"commit finished\" trigger" msgstr "Ошибка выполнения триггера «commit finished»" msgid "Cannot open Plugin Options dialog" msgstr "Невозможно открыть диалог настройки плагина" #, python-format msgid "unrecognized response: %s" msgstr "нераспознанный ответ: %s" msgid "password: " msgstr "пароль: " msgid "hgsubversion packaged with thg" msgstr "hgsubversion packaged with thg" msgid "hggit packaged with thg" msgstr "hggit packaged with thg" msgid "inotify is not supported on this platform" msgstr "inotify не поддерживается на этой платформе" msgid "eol is incompatible with win32text" msgstr "eol несовместимо с win32text" msgid "win32text is incompatible with eol" msgstr "win32text несовместимо с eol" msgid "hgsubversion is incompatible with perfarce" msgstr "hgsubversion несовместимо с perfarce" msgid "perfarce is incompatible with hgsubversion" msgstr "perfarce несовместимо с hgsubversion" msgid "Workbench custom toolbar" msgstr "Панель инструментов рабочей среды" msgid "Revision details context menu" msgstr "Контекстное меню подробностей ревизии" msgid "Pair selection context menu" msgstr "Контекстное меню выбора двух наборов" msgid "Multiple selection context menu" msgstr "Контекстное меню множественного выбора" msgid "Commit context menu" msgstr "Контекстное меню фиксации" msgid "File context menu (on manifest and revision details)" msgstr "Контекстное меню файла (в обзоре изменений и подробностях ревизии)" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "%d год" msgstr[1] "%d года" msgstr[2] "%d лет" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "%d месяц" msgstr[1] "%d месяца" msgstr[2] "%d месяцев" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "%d неделя" msgstr[1] "%d недели" msgstr[2] "%d недель" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "%d день" msgstr[1] "%d дня" msgstr[2] "%d дней" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "%d час" msgstr[1] "%d часа" msgstr[2] "%d часов" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "%d минута" msgstr[1] "%d минуты" msgstr[2] "%d минут" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d секунда" msgstr[1] "%d секунды" msgstr[2] "%d секунд" msgid "in the future" msgstr "в будущем" msgid "now" msgstr "сейчас" #, python-format msgid "command parse error: %s" msgstr "ошибка разбора команды: %s" #, python-format msgid "no matches found: %s" msgstr "не найдено совпадений: %s" #, python-format msgid "repository %s not found" msgstr "хранилище %s не найдено" msgid "unknown" msgstr "неизвестные" msgid "File List Toolbar" msgstr "Панель списка файлов" msgid "Ma&nifest Mode" msgstr "&Обзор изменений" msgid "Show all version-controlled files in tree view" msgstr "Показать все файлы под контролем версии в виде дерева" msgid "&Flat List" msgstr "&Плоский список" msgid "### filter text ###" msgstr "### текст фильтра ###" msgid "Changed by &This Commit" msgstr "&Изменённые в этой фиксации" msgid "Show files changed by this commit" msgstr "Показать файлы, изменённые в этой фиксации" msgid "Compare to &1st Parent" msgstr "Сравнить с &первым родителем" msgid "Show changes from first parent" msgstr "Показать изменения от первого родителя" msgid "Compare to &2nd Parent" msgstr "Сравнить со &вторым родителем" msgid "Show changes from second parent" msgstr "Показать изменения от второго родителя" msgid "Toggle parent to be used as the base revision" msgstr "" "Переключить родителя, который будет использоваться в качестве базовой ревизии" msgid "List Optio&ns" msgstr "&Параметры списка" msgid "Working Directory" msgstr "Рабочий каталог" #, python-format msgid "%s - Revision Details (%s)" msgstr "%s — подробности ревизии (%s)" #, python-format msgid "%s - branch operation" msgstr "%s — операция с веткой" msgid "Select branch of merge commit" msgstr "Выберите ветку для фиксации слияния" msgid "Changes take effect on next commit" msgstr "Изменения вступят в силу при следующей фиксации" msgid "No branch changes" msgstr "Без смены ветки" msgid "Open a new named branch" msgstr "Открыть новую именованную ветку" msgid "Close current branch" msgstr "Закрыть текущую ветку" msgid "C&hoose Log Columns..." msgstr "&Выбрать колонки журнала..." msgid "&Resize Columns" msgstr "&Подобрать размеры колонок" #, python-format msgid "Goto ancestor of %s and %s" msgstr "Перейти к предку для %s и %s" #, python-format msgid "Can't find revision '%s'" msgstr "Не удалось найти ревизию «%s»" msgid "Drag to change order" msgstr "Перетащите, чтобы изменить порядок" msgid "Check for incoming changes from selected URL" msgstr "Проверить наличие входящих изменений с выбранного URL" msgid "Pull incoming changes from selected URL" msgstr "Затянуть входящие изменения с выбранного URL" msgid "Detect outgoing changes to selected URL" msgstr "Определить исходящие изменения, предназначенные для выбранного URL" msgid "Push outgoing changes to selected URL" msgstr "Протолкнуть исходящие изменения на выбранный URL" msgid "Sync Bookmarks" msgstr "Синхронизация закладок" msgid "Email outgoing changesets for remote repository" msgstr "Отправить исходящие наборы изменений в удалённое хранилище по почте" msgid "Manage pending perforce changelists" msgstr "Управлять ожидающими наборами изменений perforce" msgid "Unbundle" msgstr "Разукомплектовать" msgid "Stop current operation" msgstr "Остановить текущую операцию" msgid "Options" msgstr "Настройки" msgid "Target:" msgstr "Приемник:" msgid "Selected Options:" msgstr "Выбранные параметры:" msgid "Path Edit Toolbar" msgstr "Панель правки пути" msgid "Security" msgstr "Безопасность" msgid "Manage HTTPS connection security and user authentication" msgstr "" "Управление безопасностью HTTPS соединения и аутентификацией пользователя." msgid "Save" msgstr "Сохранить" msgid "Save current URL under an alias" msgstr "Сохранить текущий URL под псевдонимом" msgid "Browse..." msgstr "Обзор..." msgid "Paths in Repository Settings:" msgstr "Пути в настройках хранилища:" msgid "Related Paths:" msgstr "Связанные пути:" msgid "branch: " msgstr "ветка: " msgid "bookmark: " msgstr "закладка: " #, python-format msgid "rev: %d (%s)" msgstr "рев: %d (%s)" msgid "Post Pull: " msgstr "После затягивания: " msgid "E&xplore" msgstr "П&росмотр" msgid "&Terminal" msgstr "&Терминал" msgid "Copy &Path" msgstr "Копировать &путь" msgid "&Edit..." msgstr "&Изменить..." msgid "&Remove..." msgstr "&Удалить..." msgid "Repository not local" msgstr "Хранилище не локально" msgid "A terminal shell cannot be opened for remote" msgstr "" "Нельзя открыть окно терминала с оболочкой для удалённого местоположения" msgid "Confirm path delete" msgstr "Подтвердите уничтожение пути" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "Удалить %s из файла конфигурации вашего хранилища?" msgid "Select repository" msgstr "Выберите хранилище" msgid "No host specified" msgstr "Хост не указан" msgid "Please set a valid URL to continue." msgstr "Пожалуйста, установите допустимый URL для продолжения." msgid "No remote repository URL or path set" msgstr "Не установлен путь или URL внешнего хранилища" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

                                                                                    Please type and save a remote repository path on the " "Sync widget." msgstr "" "Для данного хранилища не настроен путь или URL внешнего хранилища по " "умолчанию.

                                                                                    Наберите и сохраните путь к внешнему хранилищу в виджете " "Sync." msgid "Redundant authentication info" msgstr "Излишняя аутентификационная информация" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" "Ваши настройки содержат аутентификационную информацию для хоста, а вы ещё " "указали её для этого URL. Удалить аутентификационную информацию из этого " "URL?" msgid "sync command already running" msgstr "Команда синхронизации уже выполняется" #, python-format msgid "Getting incoming changesets from %s..." msgstr "Получение входящих наборов изменений из %s..." #, python-format msgid "Found incoming changesets from %s" msgstr "Найдены входящие наборы изменений из %s..." #, python-format msgid "No incoming changesets from %s" msgstr "Нет входящих наборов изменений из %s..." #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "Определение входящих из %s прервано, возвращён код %d" #, python-format msgid "Pulling from %s..." msgstr "Затягиваем из %s..." #, python-format msgid "Pull from %s completed" msgstr "Затягивание из %s завершено" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "Затягивание из %s прервано, возвращён код %d" msgid "Merge caused file conflicts" msgstr "Слияние вызвало конфликты файлов" msgid "File conflicts need to be resolved" msgstr "Конфликты файлов должны быть улажены" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "Определяем исходящие наборы изменений для %s..." #, python-format msgid "%d outgoing changesets to %s" msgstr "%d исходящих наборов изменений для %s" #, python-format msgid "No outgoing changesets to %s" msgstr "Нет исходящих наборов изменений для %s" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "Определение исходящих для %s прервано, возвращён код %d" msgid "Perforce pending..." msgstr "Perforce — ожидание..." #, python-format msgid "%s (submitted)" msgstr "%s (предоставлена)" #, python-format msgid "%s (pending)" msgstr "%s (осталась)" msgid "Unable to parse p4pending output" msgstr "Невозможно разобрать вывод p4pending" #, python-format msgid "%d pending changelists found" msgstr "Найдено %d ожидающих списков изменений" msgid "No pending Perforce changelists" msgstr "Нет ожидающих списков изменений Perforce" msgid "Aborted p4pending" msgstr "Прервано p4pending" msgid "Unable to determine pending changesets" msgstr "Невозможно определить ожидающие наборы изменений" msgid "Confirm Push to remote Repository" msgstr "Подтвердите проталкивание в удалённое хранилище" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" "Протолкнуть в удалённое хранилище\n" "%s\n" "?" #, python-format msgid "Push to %s aborted" msgstr "Проталкивание в %s прервано" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" "Неверная ревизия для проталкивания по умолчанию: %s. Пожалуйста, проверьте " "вашу конфигурацию Mercurial (tortoisehg.defaultpush)" #, python-format msgid "Pushing to %s..." msgstr "Проталкивание в %s..." #, python-format msgid "Push to %s completed" msgstr "Проталкивание в %s завершено" #, python-format msgid "Push to %s aborted, ret %d" msgstr "Проталкивание в %s прервано, возвращён код %d" msgid "Confirm New Branch" msgstr "Подтвердить новую ветку" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" "Некоторые наборы изменений из тех, что вы пытаетесь протолкнуть, вызовут " "создание новой ветки. Создать новую ветку в удалённом хранилище?" msgid "Determining outgoing changesets to email..." msgstr "Определяем исходящие наборы изменений для отправки..." #, python-format msgid "%d outgoing changesets" msgstr "%d исходящих наборов изменений" msgid "No outgoing changesets" msgstr "Нет исходящих наборов изменений" #, python-format msgid "Outgoing aborted, ret %d" msgstr "Определение исходящих прервано, возвращён код %d" msgid "Select bundle file" msgstr "Выберите файл комплекта" msgid "Bundle files (*.hg)" msgstr "Файлы комплектов (*.hg)" msgid "All files (*)" msgstr "Все файлы (*)" msgid "Unable to remove URL" msgstr "Не удаётся изъять URL" msgid "Iniparse must be installed." msgstr "Iniparse должен быть установлен." msgid "Unable to write configuration file" msgstr "Запись в файл конфигурации невозможна" msgid "Post Pull Behavior" msgstr "Поведение после затягивания" msgid "Select post-pull operation for this repository" msgstr "Выберите операцию после затягивания для этого хранилища" msgid "None - simply pull changesets" msgstr "Ничего — просто затянуть наборы изменений" msgid "Update - pull, then try to update" msgstr "Обновить — затянуть, а потом попробовать обновиться" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "" "Залить — использовать заливку (автоматически сливать затянутые изменения)" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "Залить — использовать расширение fetch (fetch не активировано!)" msgid "Rebase - rebase local commits above pulled changes" msgstr "" "Перебазировать — перебазировать локальные фиксации поверх затянутых изменений" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "" "Обновить или перебазировать — затянуть, а потом попробовать обновиться или " "перебазировать" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "" "Перебазировать — использовать расширение rebase (rebase не активировано!)" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "" "UpdateOrRebase — использовать расширение rebase (rebase не активировано!)" msgid "Automatically resolve merge conflicts where possible" msgstr "Автоматически улаживать конфликты слияния, по возможности" msgid "Launch settings tool..." msgstr "Запустить средство настройки..." msgid "Unable to save post pull operation" msgstr "Не удалось сохранить после операции затягивания" msgid "Save Path" msgstr "Сохранить путь" msgid "Alias" msgstr "Псевдоним" msgid "URL" msgstr "URL" msgid "Remove authentication data from URL" msgstr "Изъять аутентификационные данные из URL" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" "Данные аутентификации пользователя должны быть сопоставлены с именем хоста в " "диалоге безопасности." msgid "Update subrepo paths" msgstr "Обновить пути подхранилищ" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" "Обновить или создать псевдоним пути с названием «%s» во всех подхранилищах, " "используя этот URL в качестве базового URL, добавляя локальный относительный " "путь до подхранилища" msgid "Unable to save an URL" msgstr "Не удаётся сохранить URL" msgid "Confirm URL replace" msgstr "Подтвердите замену URL" #, python-format msgid "%s already exists, replace URL?" msgstr "%s уже существует, заменить URL?" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

                                                                                    %s

                                                                                    Replace it with the " "following URL?:

                                                                                    %s" msgstr "" "Подхранилище «%s» имеет не тривиальный URL для синхронизации по умолчанию:

                                                                                    " "%s

                                                                                    Заменить его следующим URL?

                                                                                    %s" msgid "Security: " msgstr "Безопасность: " #, python-format msgid "Host: %s" msgstr "Хост: %s" msgid "Secure HTTPS Connection" msgstr "Безопасное HTTPS соединение" msgid "Verify with Certificate Authority certificates (best)" msgstr "Сверять с сертификатами Центра сертификации (лучше всего)" msgid "Verify with stored host fingerprint (good)" msgstr "Сверять с сохранёнными отпечатками хоста (хорошо)" msgid "No host validation, but still encrypted (bad)" msgstr "Использовать шифрование, но не проверять хост (плохо)" msgid "### host certificate fingerprint ###" msgstr "### отпечаток сертификата хоста ###" msgid "Query" msgstr "Запрос" msgid "" msgstr "<не указано>" msgid "TLS 1.0" msgstr "TLS 1.0" msgid "TLS 1.1" msgstr "TLS 1.1" msgid "TLS 1.2" msgstr "TLS 1.2" msgid "Minimum Protocol" msgstr "Минимальный протокол" msgid "User Authentication" msgstr "Аутентификация пользователя" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" "Необязательно. Имя пользователя для аутентификации. Если не указано,\n" "а удалённый сайт требует базовой или дайджест-аутентификации,\n" "пользователю будет предложено ввести имя пользователя.\n" "В имени пользователя можно использовать переменные среды." msgid "Username" msgstr "Имя пользователя:" msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" "Необязательно. Пароль аутентификации. Если не указан, а удалённый\n" "сайт требует базовой или дайджест-аутентификации, пользователю\n" "будет предложено ввести пароль." msgid "Password" msgstr "Пароль" msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" "Включено расширение Mercurial keyring. Пароли будут сохраняться безопасным " "методом, зависящим от платформы." msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" "Необязательно. Файл ключа сертификата пользователя, в кодировке PEM.\n" "В имени файла можно использовать переменные среды." msgid "User Certificate Key" msgstr "Ключ сертификата пользователя" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" "Необязательно. Файл цепочки сертификатов пользователя, в кодировке PEM.\n" "В имени файла можно использовать переменные среды." msgid "User Certificate Chain" msgstr "Цепочка сертификатов пользователя" msgid "Certificate Query Error" msgstr "Ошибка запроса сертификата" msgid "Select User Certificate Key File" msgstr "Выбрать файл ключа сертификата пользователя" msgid "PEM files (*.pem *.key)" msgstr "PEM файлы (*.pem *.key)" msgid "Select User Certificate Chain File" msgstr "Выбрать файл цепочки сертификатов пользователя" msgid "PEM files (*.pem *.crt *.cer)" msgstr "PEM файлы (*.pem *.crt *.cer)" msgid "Unable to save authentication" msgstr "Не удаётся сохранить аутентификацию" #, python-format msgid "%s - sync options" msgstr "%s — параметры синхронизации" msgid "Allow push of a new branch (--new-branch)" msgstr "Разрешить проталкивание в новую ветку (--new-branch)" msgid "Force push or pull (override safety checks, --force)" msgstr "" "Проталкивать или затягивать принудительно, переопределить настройки " "безопасности (--force)" msgid "Temporarily disable configured HTTP proxy" msgstr "Временно отключить сконфигурированный HTTP прокси" msgid "Emit debugging output (--debug)" msgstr "Выдавать отладочную информацию (--debug)" msgid "Work on patch queue (--mq)" msgstr "Работать с очередью заплаток (--mq)" msgid "Remote command:" msgstr "Удалённо выполняемая команда:" msgid "Branch:" msgstr "Ветка:" msgid "Patch:" msgstr "Заплатка:" msgid "Changeset:" msgstr "Набор изменений:" msgid "Parent:" msgstr "Родитель:" msgid "Child:" msgstr "Дочерняя:" msgid "Predecessors:" msgstr "Предшествующие:" msgid "Successors:" msgstr "Последующие:" msgid "Not a head revision!" msgstr "Это не головная ревизия!" msgid "Head is closed!" msgstr "Головная ревизия закрыта!" msgid "Repository Registry" msgstr "Реестр хранилищ" msgid "Show &Paths" msgstr "Показать &пути" msgid "Show S&hort Paths" msgstr "Показать ко&роткие пути" msgid "&Scan Repositories at Startup" msgstr "&Сканировать хранилища при запуске" msgid "Scan &Remote Repositories" msgstr "Сканировать &удалённые хранилища" msgid "&Refresh Repository List" msgstr "Обновить список хранилищ" msgid "Refresh the Repository Registry list" msgstr "Обновить изображение списка в реестре хранилищ" msgid "&Open" msgstr "&Открыть" msgid "Open the repository in a new tab" msgstr "Открыть хранилище в новой вкладке" msgid "&Open All" msgstr "&Открыть всё" msgid "Open all repositories in new tabs" msgstr "Открыть все хранилища в новых вкладках" msgid "New &Group" msgstr "Создать &группу" msgid "Create a new group" msgstr "Создать новую группу" msgid "Re&name" msgstr "Пере&именовать" msgid "Rename the entry" msgstr "Переименовать элемент" msgid "Settin&gs" msgstr "Настрой&ки" msgid "View the repository's settings" msgstr "Посмотреть настройки хранилища" msgid "Re&move from Registry" msgstr "&Удалить из реестра" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" "Удалить этот узел и все нижележащие узлы. Хранилища не удаляются с диска." msgid "Clon&e..." msgstr "Кло&нировать..." msgid "Clone Repository" msgstr "Клонировать хранилище" msgid "Open the repository in a file browser" msgstr "Открыть хранилище в обозревателе файлов" msgid "Open a shell terminal in the repository root" msgstr "Открыть терминал на корневом каталоге хранилища" msgid "&Add Repository..." msgstr "&Добавить хранилище..." msgid "Add a repository to this group" msgstr "Добавить хранилище в эту группу" msgid "A&dd Subrepository..." msgstr "Д&обавить подхранилище..." msgid "Convert an existing repository into a subrepository" msgstr "Преобразовать существующее хранилище в подхранилище" msgid "Remo&ve Subrepository..." msgstr "&Удалить подхранилище..." msgid "Remove this subrepository from the current revision" msgstr "Удалить это подхранилище из текущей ревизии" msgid "Copy the root path of the repository to the clipboard" msgstr "Копировать корневой путь к хранилищу в буфер обмена" msgid "Sort by &Name" msgstr "Сортировать по &имени" msgid "Sort the group by short name" msgstr "Упорядочить группу по короткому имени" msgid "Sort by &Path" msgstr "Сортировать по &пути" msgid "Sort the group by full path" msgstr "Упорядочить группу по полному пути" msgid "&Sort by .hgsub" msgstr "&Сортировать по .hgsub" msgid "Order the subrepos as in .hgsub" msgstr "Упорядочить подхранилища как в .hgsub" msgid "Select repository directory to add" msgstr "Выберите каталог хранилища для добавления" msgid "Select an existing repository to add as a subrepo" msgstr "Выберите существующее хранилище для добавления в качестве подхранилища" msgid "Cannot add subrepository" msgstr "Невозможно добавить подхранилище" #, python-format msgid "%s is not a valid repository" msgstr "%s не является допустимым хранилищем" #, python-format msgid "\"%s\" is not a folder" msgstr "%s не является папкой" msgid "A repository cannot be added as a subrepo of itself" msgstr "" "Хранилище не может быть добавлено в качестве подхранилища к самому себе" #, python-format msgid "" "The selected folder:

                                                                                    %s

                                                                                    is not inside the target repository." "

                                                                                    This may be allowed but is greatly discouraged.
                                                                                    If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" "Указанная папка:

                                                                                    %s

                                                                                    не находится внутри целевого хранилища." "

                                                                                    Так делать можно, но крайне нежелательно.
                                                                                    Если требуется добавить " "нетривиальную ссылку на подхранилище, вам следует исправить файл .hgsub вручную" msgid "Cannot open repository" msgstr "Невозможно открыть хранилище" #, python-format msgid "The selected repository:

                                                                                    %s

                                                                                    cannot be open!" msgstr "Выбранное хранилище:

                                                                                    %s

                                                                                    не удаётся открыть!" msgid "Subrepository already exists" msgstr "Подхранилище уже существует" #, python-format msgid "" "The selected repository:

                                                                                    %s

                                                                                    is already a subrepository of:" "

                                                                                    %s

                                                                                    as: \"%s\"" msgstr "" "Выбранное хранилище:

                                                                                    %s

                                                                                    уже является подхранилище для:

                                                                                    " "%s

                                                                                    как: «%s»" msgid "Failed to add subrepository" msgstr "Не удалось добавить подхранилище" #, python-format msgid "Cannot open the .hgsub file in:

                                                                                    %s" msgstr "Не удаётся открыть файл .hgsub из:

                                                                                    %s" msgid "Failed to add repository" msgstr "Не удалось добавить хранилище" #, python-format msgid "The .hgsub file already contains the line:

                                                                                    %s" msgstr "Файл .hgsub уже содержит строку:

                                                                                    %s" msgid "Subrepo added to .hgsub file" msgstr "Подхранилище добавлено в файл .hgsub" #, python-format msgid "" "The selected subrepo:

                                                                                    %s

                                                                                    has been added to the .hgsub " "file of the repository:

                                                                                    %s

                                                                                    Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" "Выбранное подхранилище:

                                                                                    %s

                                                                                    было добавлено к файлу ." "hgsub хранилища:

                                                                                    %s

                                                                                    Помните, что для того, чтобы " "завершить добавление подхранилища, вы всё равно должны зафиксировать изменения в файле .hgsub, подтверждая таким образом добавление " "подхранилища." #, python-format msgid "Cannot update the .hgsub file in:

                                                                                    %s" msgstr "Не удаётся обновить файл .hgsub из:

                                                                                    %s" msgid "Could not open .hgsub file" msgstr "Не удалось открыть файл .hgsub" msgid "Cannot read the .hgsub file.

                                                                                    Subrepository removal failed." msgstr "" "Невозможно прочитать файл .hgsub.

                                                                                    Удаление подхранилища закончилось " "неудачей." msgid "Subrepository not found" msgstr "Подхранилище не найдено" msgid "" "The selected subrepository was not found on the .hgsub file.

                                                                                    Perhaps it " "has already been removed?" msgstr "" "Выбранное подхранилище не найдено в файле .hgsub.

                                                                                    Возможно, оно уже было " "удалено?" msgid "&Yes" msgstr "&Да" msgid "&No" msgstr "&Нет" msgid "Remove the selected repository?" msgstr "Изъять выбранное хранилище?" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" "Удалить хранилище «%s» из его родительского хранилища «%s»?" msgid "Subrepository removed from .hgsub" msgstr "Подхранилище удалено из .hgsub" msgid "" "The selected subrepository has been removed from the .hgsub file.

                                                                                    Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" "Выбранное подхранилище было удалено из файла .hgsub file.

                                                                                    Помните, что вы " "должны зафиксировать изменения в файле .hgsub, подтверждая таким образом " "удаление подхранилища!" msgid "Could not update .hgsub file" msgstr "Не удалось обновить файл .hgsub" msgid "Cannot update the .hgsub file.

                                                                                    Subrepository removal failed." msgstr "" "Невозможно обновить файл .hgsub.

                                                                                    Удаление подхранилища закончилось " "неудачей." #, python-format msgid "Unsupported repository type (%s)" msgstr "Неподдерживаемый тип хранилища (%s)" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "Нельзя открыть хранилища или подхранилища, не принадлежащие Mercurial" msgid "New Group" msgstr "Новая группа" msgid "&Delete" msgstr "&Удалить" msgid "Cancel" msgstr "Отмена" msgid "Confirm Delete" msgstr "Подтвердите удаление" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "Удалить группу «%s» и все её элементы?" msgid "Could not get subrepository list" msgstr "Не удалось получить список подхранилищ" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

                                                                                    %s" msgstr "" "Невозможно было получить список подхранилищ для хранилища из:

                                                                                    %s" msgid "Could not open some subrepositories" msgstr "Не удалось открыть некоторые подхранилища" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

                                                                                    %s

                                                                                    The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

                                                                                    %s" msgstr "" "Невозможно было полностью загрузить список подхранилищ для хранилища из:" "

                                                                                    %s

                                                                                    Следующие подхранилища могли быть потеряны, " "повреждены или находятся в нехорошем состоянии, поэтому к ним нет доступа:" "

                                                                                    %s" msgid "Updating repository registry" msgstr "Обновляем реестр хранилищ" #, python-format msgid "Loading repository %s" msgstr "Загружаем хранилище %s" msgid "Repository Registry updated" msgstr "Реестр хранилищ обновлён" #, python-format msgid "Detect Copies/Renames in %s" msgstr "Выявление Копий/Переименований в %s" msgid "Unrevisioned Files" msgstr "Файлы, не входящие в ревизии" msgid "Refresh file list" msgstr "Обновить изображение списка файлов" #, python-format msgid "Min Similarity: %d%%" msgstr "Мин. схожесть: %d%%" msgid "Only consider deleted files" msgstr "Рассматривать только уничтоженные файлы" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "" "Снимите отметку, чтобы рассматривать все подконтрольные файлы в качестве " "возможных источников для копирования" msgid "Find Renames" msgstr "Найти переименования" msgid "Find copy and/or rename sources" msgstr "Найти копии и/или переименования исходников" msgid "Candidate Matches" msgstr "Кандидаты на совпадение" msgid "Accept All Matches" msgstr "Принять все совпадения" msgid "Accept Selected Matches" msgstr "Принять выделенные совпадения" msgid "Differences from Source to Dest" msgstr "Различия между источником и назначением" msgid "Search already in progress" msgstr "Поиск уже запущен" msgid "Cannot start a new search" msgstr "Невозможно запустить новый поиск" msgid "No files to find" msgstr "Нет файлов для поиска" msgid "There are no files that may have been renamed" msgstr "Нет файлов, которые могли бы стать результатом переименования" msgid "Multiple sources chosen" msgstr "Выбрано несколько источников" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" "У вас выбрано несколько переименований для файла назначения:\n" "%s. Прекращаем операцию!" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" "%s и %s имеют одинаковое содержимое\n" "\n" #, python-format msgid "%d%%" msgstr "%d%%" msgid "Source" msgstr "Источник" msgid "Dest" msgstr "Приемник" msgid "% Match" msgstr "% совпадения" msgid "Changesets where username contains string." msgstr "Наборы изменений, в которых имя пользователя содержит строку." msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" "Искать строку в сообщениях фиксации, именах пользователей, именах файлов." msgid "Like \"keyword(string)\" but accepts a regex." msgstr "То же, что «keyword(string)», но принимает регулярное выражение." msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" "Наборы изменений, отсутствующие в указанном целевом хранилище, или в месте " "для проталкивания по умолчанию." msgid "The named bookmark or all bookmarks." msgstr "Именованная закладка или все закладки." msgid "The named tag or all tags." msgstr "Именованная метка или все метки." msgid "Changeset is tagged." msgstr "Набор изменений, который помечен меткой." msgid "Changeset is a named branch head." msgstr "Набор изменений, являющийся головой именованной ветки." msgid "Changeset is a merge changeset." msgstr "Набор изменений, являющийся набором слияния." msgid "Changeset is closed." msgstr "Набор изменений, который закрыт." msgid "" "Changesets within the interval, see help dates" msgstr "" "Наборы изменений в указанном интервале, см. справка по датам" msgid "Greatest common ancestor of the two changesets." msgstr "Наибольший общий предок двух наборов изменений." msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" "Найти ревизии, у которых «совпадают» одно или несколько полей с заданным " "набором ревизий." msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" "Наборы изменений, которые затрагивают файлы, соответствующие шаблону. См. " "справка по " "шаблонам" msgid "Changesets which modify files matched by pattern." msgstr "Наборы изменений, изменяющие файлы, совпадающие с шаблоном." msgid "Changesets which add files matched by pattern." msgstr "Наборы изменений, добавляющие файлы, совпадающие с шаблоном." msgid "Changesets which remove files matched by pattern." msgstr "Наборы изменений, удаляющие файлы, совпадающие с шаблоном." msgid "Changesets containing files matched by pattern." msgstr "Наборы изменений, содержащие файлы, совпадающие с шаблоном." msgid "All changesets belonging to the branches of changesets in set." msgstr "" "Все наборы изменений, принадлежащие веткам выбранных наборов изменений." msgid "Members of a set with no children in set." msgstr "Члены множества, у которых в этом множестве нет детей." msgid "Changesets which are descendants of changesets in set." msgstr "Наборы изменений, являющиеся потомками наборов из множества." msgid "Changesets that are ancestors of a changeset in set." msgstr "Наборы изменений, являющиеся предками наборов из множества." msgid "Child changesets of changesets in set." msgstr "Наборы изменений, являющиеся детьми наборов из множества." msgid "The set of all parents for all changesets in set." msgstr "Множество всех родителей всех наборов изменений из множества." msgid "First parent for all changesets in set, or the working directory." msgstr "Первый родитель всех наборов из множества, или рабочий каталог." msgid "Second parent for all changesets in set, or the working directory." msgstr "Второй родитель всех наборов из множества, или рабочий каталог." msgid "Changesets with no parent changeset in set." msgstr "Наборы изменений из набора, не имеющие родителя." msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" "Пустое множество, если какая-либо ревизия из множества не найдена. Иначе, " "все ревизии из множества." msgid "Changeset with lowest revision number in set." msgstr "Набор изменений с наименьшим номером ревизии из множества." msgid "Changeset with highest revision number in set." msgstr "Набор изменений с наибольшим номером ревизии из множества." msgid "First n members of a set." msgstr "Первые n элементов множества." msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" "Сортировать по ключам. Порядок по умолчанию — возрастающий, укажите «-ключ», " "чтобы отсортировать в убывающем порядке." msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "Псевдоним для «::.» (предки первого родителя рабочей копии)." msgid "All changesets, the same as 0:tip." msgstr "Все наборы изменений, то же что 0:tip." msgid "Revision Set Query" msgstr "Запрос на получение набора ревизий" msgid "all revisions converted from subversion" msgstr "Все ревизии, преобразованные из Subversion." msgid "changeset which represents converted svn revision" msgstr "Набор изменений, являющийся преобразованной ревизией Subversion." msgid "Common sets" msgstr "Обычные выборки" msgid "File pattern sets" msgstr "Выборки по шаблону имени файла" msgid "Set Ancestry" msgstr "Иерархия множеств" msgid "Set Logic" msgstr "Логика множеств" msgid "" "help " "revsets" msgstr "" "справка по " "наборам ревизий" msgid "Show all" msgstr "Отобразить все" msgid "### revision set query ###" msgstr "### запрос на получение набора ревизий ###" msgid "Clear current query and query text" msgstr "Очистить текущий запрос и текст запроса" msgid "Trigger revision set query" msgstr "Включить/выключить панель запроса на получение набора ревизий" msgid "Open advanced query editor" msgstr "Открыть расширенный редактор запроса" msgid "Delete selected query from history" msgstr "Удалить выбранный запрос из истории" msgid "filter" msgstr "фильтр" msgid "Toggle filtering of non-matched changesets" msgstr "Включить/выключить фильтрацию исключённых наборов изменений" msgid "Show/Hide hidden changesets" msgstr "Показать/скрыть скрытые наборы изменений" msgid "Toggle graft relations visibility" msgstr "Включить/выключить видимость наращенных связей" msgid "Keyword Search" msgstr "Поиск по ключевым словам" msgid "Revision Set" msgstr "Пакет ревизий" msgid "(unsaved)" msgstr "(не сохранено)" msgid "Branch" msgstr "Ветка" msgid "Display graph the named branch only" msgstr "Показать граф только именованной ветки" msgid "Display only active branches" msgstr "Отображать только активные ветки" msgid "Display closed branches" msgstr "Показать закрытые ветки" msgid "Include all ancestors" msgstr "Включая всех предков" msgid "No unknown files found" msgstr "Неизвестных файлов не найдено" msgid "No ignored files found" msgstr "Игнорируемых файлов не найдено" msgid "No trash files found" msgstr "Файлов в корзине не найдено" msgid "Delete empty folders" msgstr "Уничтожить пустые папки" msgid "Preserve files beginning with .hg" msgstr "Сохранить файлы, начинающиеся с .hg" #, python-format msgid "%s - purge" msgstr "%s — зачистка" msgid "Checking" msgstr "Проверяем" msgid "Ready to purge." msgstr "Всё готово к зачистке." #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "Уничтожить %d неизвестный файл" msgstr[1] "Уничтожить %d неизвестных файла" msgstr[2] "Уничтожить %d неизвестных файлов" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "Уничтожить %d игнорируемый файл" msgstr[1] "Уничтожить %d игнорируемых файла" msgstr[2] "Уничтожить %d игнорируемых файлов" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "Уничтожить %d файл в каталоге .hg/Trashcan" msgstr[1] "Уничтожить %d файла в каталоге .hg/Trashcan" msgstr[2] "Уничтожить %d файлов в каталоге .hg/Trashcan" msgid "Confirm file deletions" msgstr "Подтвердите уничтожение файлов" msgid "Are you sure you want to delete these files and/or folders?" msgstr "Уничтожить эти файлы и папки?" msgid "Deletion failures" msgstr "Неудачные уничтожения" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "Не удаётся уничтожить %d файл или папку" msgstr[1] "Не удаётся уничтожить %d файла или папки" msgstr[2] "Не удаётся уничтожить %d файлов или папок" msgid "Deleting trash folder..." msgstr "Уничтожаем папку корзины..." #, python-format msgid "Deleted %d files" msgstr "Уничтожено файлов: %d" #, python-format msgid "Deleted %d files and %d folders" msgstr "Уничтожено файлов: %d, папок: %d" msgid "Find revisions matching fields of:" msgstr "Найти ревизии, совпадающие по полям с:" msgid "Revision to Match:" msgstr "Ревизия для совпадения:" msgid "Fields to match:" msgstr "Поля для совпадения:" msgid "Summary (first description line)" msgstr "Сводка (первая строка описания)" msgid "Description" msgstr "Описание" msgid "Author" msgstr "Автор" msgid "Date" msgstr "Дата" msgid "Files" msgstr "Файлы" msgid "Diff contents" msgstr "Сравнить содержимое" msgid "Subrepo states" msgstr "Состояние подхранилищ" msgid "Parents" msgstr "Родители" msgid "Phase" msgstr "Фаза" msgid "&Match" msgstr "&Совпадение" #, python-format msgid "Find matches - %s" msgstr "Поиск совпадений — %s" msgid "Revisions to Match:" msgstr "Ревизии для совпадения:" #, python-format msgid "Match any of %d revisions" msgstr "Любая из %d ревизий" msgid "Unknown revision!" msgstr "Неизвестная ревизия!" msgid "Parse Error!" msgstr "Синтаксическая ошибка!" msgid "Close tab" msgstr "Закрыть вкладку" msgid "Close other tabs" msgstr "Закрыть другие вкладки" msgid "Undo close tab" msgstr "Отменить закрытие вкладки" msgid "Reopen last closed tab" msgstr "Переоткрыть последнюю закрытую вкладку" msgid "Undo close other tabs" msgstr "Отменить закрытие других вкладок" msgid "Reopen last closed tab group" msgstr "Переоткрыть последнюю закрытую группу вкладок" msgid "Failed to open repository" msgstr "Не удалось открыть хранилище" msgid "Rebase changeset and descendants" msgstr "Перебазировать набор изменений и его потомков" msgid "To rebase destination" msgstr "Перебазировать поверх места назначения" msgid "Swap source and destination" msgstr "Поменять местами источник и назначение" msgid "Keep original changesets (--keep)" msgstr "Сохранять исходные наборы изменений (--keep)" msgid "Keep original branch names (--keepbranches)" msgstr "Сохранять исходные имена веток (--keepbranches)" msgid "Collapse the rebased changesets (--collapse)" msgstr "Свернуть перебазируемые наборы изменений (--collapse)" msgid "Rebase entire source branch (-b/--base)" msgstr "Перебазировать всю ветвь источника (-b/--base)" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "" "Перебазировать неопубликованное на головную ревизию Subversion " "(переопределить источник и назначение)" msgid "Rebase" msgstr "Перебазировать" msgid "Abort" msgstr "Прервать" msgid "Checking..." msgstr "Проверяем..." #, python-format msgid "Rebase - %s" msgstr "Перебазирование — %s" msgid "" "Before rebase, you must commit, shelve to patch, or discard changes." msgstr "" "Перед перебазированием необходимо зафиксировать, " "отложить в заплатку или " "отбросить изменения." msgid "You may continue the rebase" msgstr "Вы можете произвести перебазирование" msgid "Rebase is complete" msgstr "Перебазирование завершено" msgid "Rebase failed" msgstr "Перебазирование не удалось" msgid "Rebase aborted" msgstr "Перебазирование прервано" msgid "Close" msgstr "Закрыть" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" "При перебазировании возникли конфликты, которые должны быть улажены" msgid "Exiting with an unfinished rebase is not recommended." msgstr "Не рекомендуется выходить, не завершив перебазирование." msgid "Consider aborting the rebase first." msgstr "Подумайте, может лучше прервать перебазирование." msgid "&Exit" msgstr "В&ыход" msgid "Confirm Exit" msgstr "Подтвердите выход" msgid "Try refreshing your repository." msgstr "Попробуйте обновить ваше хранилище." #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
                                                                                    Please edit your config" msgstr "" "Ошибочная строка «%(arg0)s» в %(arg1)s
                                                                                    Пожалуйста, исправьте ваш файл конфигурации" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
                                                                                    Please fix your config" msgstr "" "Ошибка конфигурации: «%(arg0)s»,
                                                                                    Пожалуйста,
                                                                                    исправьте ваш файл конфигурации" #, python-format msgid "Operation aborted:

                                                                                    %(arg0)s." msgstr "Операция прервана:

                                                                                    %(arg0)s." msgid "Repository is locked" msgstr "Хранилище заблокировано" msgid "hint:" msgstr "подсказка:" msgid "Repository Error" msgstr "Ошибка хранилища" msgid "Patch files (*.diff *.patch)" msgstr "Файлы заплаток (*.diff *.patch)" #, python-format msgid "Import - %s" msgstr "Импорт — %s" msgid "Browse Directory..." msgstr "Обзор каталогов..." msgid "Import from Clipboard" msgstr "Импорт из буфера обмена" msgid "Source:" msgstr "Источник:" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "Не срезать полные пути (-p0), необходимо для заплаток SVN" msgid "Preview:" msgstr "Просмотр:" msgid "Repository" msgstr "Хранилище" msgid "Shelf" msgstr "Долгий ящик" msgid "Checking working directory status..." msgstr "Проверяем состояние рабочего каталога..." msgid "&Import" msgstr "&Импорт" msgid "Working directory is not clean! View changes..." msgstr "" "Рабочий каталог не является «чистой» копией! Просмотр " "изменений..." msgid "Select patches" msgstr "Выберите заплатки" msgid "Select Directory containing patches" msgstr "Выберите каталог, содержащий заплатки" #, python-format msgid "%s patches" msgstr "%s заплаток" #, python-format msgid "%s will be imported to " msgstr "%s будет импортирован в " msgid "Nothing to import" msgstr "Нечего импортировать" msgid "Review Board" msgstr "Рецензионная коллегия" msgid "Repository ID:" msgstr "ID хранилища:" msgid "Summary:" msgstr "Сводка:" msgid "Post Review" msgstr "Отправить рецензию" msgid "Review ID:" msgstr "ID рецензии:" msgid "Update the fields of this existing request" msgstr "Обновить поля этого существующего запроса" msgid "Update Review" msgstr "Обновить рецензию" msgid "Create diff with all outgoing changes" msgstr "Создать список различий со всеми исходящими изменениями" msgid "Create diff with all changes on this branch" msgstr "Создать список различий со всеми изменениями из этой ветки" msgid "Publish request immediately" msgstr "Опубликовать запрос немедленно" msgid "Changesets" msgstr "Наборы изменений" msgid "&Settings" msgstr "На&стройки" msgid "%p%" msgstr "%p%" msgid "Connecting to Review Board..." msgstr "Соединение с рецензионной коллегией..." msgid "Post &Review" msgstr "Отправить &рецензию" msgid "&Close" msgstr "Закр&ыть" msgid "&Discard" msgstr "&Отбросить" msgid "Confirm Discard" msgstr "Подтвердите отбрасывание" msgid "Discard outstanding changes to working directory?" msgstr "Отбросить имеющиеся изменения в рабочем каталоге?" msgid "Unable to create a config file" msgstr "Не получается создать файл конфигурации" msgid "Insufficient access rights." msgstr "Недостаточно прав доступа." msgid "Port:" msgstr "Порт:" msgid "Status:" msgstr "Состояние:" msgid "Start" msgstr "Запуск" msgid "Stop" msgstr "Остановить" msgid "Settings" msgstr "Настройки" msgid "Patch Branch Toolbar" msgstr "Панель ветки заплаток" msgid "Merge all pending dependencies" msgstr "Слить все ожидающие зависимости" msgid "Backout current patch branch" msgstr "Обращение изменений текущей ветки заплаток" msgid "Backport part of a changeset to a dependency" msgstr "Обратный перенос части набора изменений на зависимость" msgid "Start a new patch branch" msgstr "Начать новую ветку заплаток" msgid "Edit patch dependency graph" msgstr "Редактировать граф зависимостей заплаток" msgid "will be closed" msgstr "будет закрыта" #, python-format msgid "needs merge of %i heads\n" msgstr "требует слияния %i голов\n" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "требует слияния с %s (через %s)\n" #, python-format msgid "needs merge with %s\n" msgstr "требует слияния с %s\n" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "требует обновления различий от базовой до оконечной из %s\n" msgid "&Goto (update workdir)" msgstr "&Перейти (обновить рабочий каталог)" msgid "&Merge" msgstr "&Слияние" msgid "No patch branch selected" msgstr "Не выбрана ветка заплаток" msgid "No editor found" msgstr "Редактор не найден" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" "Mercurial не может найти редактор. Пожалуйста, настройте Mercurial на " "использование редактора, установленного в вашей системе." msgid "Graph" msgstr "Граф" msgid "Name" msgstr "Наименование" msgid "Status" msgstr "Состояние" msgid "Title" msgstr "Заголовок" msgid "Message" msgstr "Сообщение" msgid "New Patch Branch" msgstr "Новая ветка заплаток" msgid "Commit" msgstr "Фиксировать" msgid "Patch name:" msgstr "Имя заплатки:" msgid "Patch message:" msgstr "Сообщение заплатки:" msgid "Patch date:" msgstr "Дата заплатки:" msgid "Patch user:" msgstr "Пользователь заплатки:" msgid "Revision:" msgstr "Ревизия:" msgid "Key:" msgstr "Ключ:" msgid "Local sign" msgstr "Подписать локально" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "Подписать даже sigfile был изменен (-f/--force)" msgid "No commit" msgstr "Нет фиксации" msgid "Use custom commit message:" msgstr "Использовать следующее сообщение фиксации:" msgid "&Sign" msgstr "&Подписать" #, python-format msgid "Sign - %s" msgstr "Подписание — %s" msgid "Signature has been added" msgstr "Подпись была успешно добавлена" msgid "Repository command still running" msgstr "Команда хранилища всё ещё выполняется" #, python-format msgid "Please report this bug to our bug tracker" msgstr "" "Пожалуйста, сообщите об ошибке в нашу систему отслеживания " "ошибок" msgid "Checking for updates..." msgstr "Проверка обновлений..." msgid "Copy" msgstr "Копировать" msgid "Quit" msgstr "Выйти" msgid "TortoiseHg Bug Report" msgstr "Сообщить об ошибке в TortoiseHg" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "Рекомендуется обновление до новейшего TortoiseHg." msgid "Your TortoiseHg is up to date." msgstr "Ваш TortoiseHg обновлён." msgid "Save error report to" msgstr "Сохранить отчет об ошибке в" msgid "Text files (*.txt)" msgstr "Текстовые файлы (*.txt)" msgid "Error writing file" msgstr "Ошибка при записи файла" msgid "TortoiseHg Error" msgstr "Ошибка TortoiseHg" msgid "" "If you still have trouble, please file a bug report." msgstr "" "Если проблема всё ещё существует, пожалуйста, " "отправьте отчёт об ошибке." msgid "Select a GUI location to edit:" msgstr "Выберете область для редактирования:" msgid "Select the toolbar or menu to change" msgstr "Выберете панель инструментов или меню для изменения" msgid "Tools shown on selected location" msgstr "Инструменты, показанные на выбранной области" msgid "Delete from list" msgstr "Удалить из списка" msgid "Add to list" msgstr "Добавить в список" msgid "Add separator" msgstr "Добавить разделитель" msgid "List of all tools" msgstr "Список всех инструментов" msgid "New Tool ..." msgstr "Новый инструмент ..." msgid "Edit Tool ..." msgstr "Изменить инструмент ..." msgid "Delete Tool" msgstr "Удалить инструмент" msgid "Type" msgstr "Тип" msgid "Command" msgstr "Команда" msgid "New hook" msgstr "Новая ловушка" msgid "Edit hook" msgstr "Изменить ловушку" msgid "Delete hook" msgstr "Удалить ловушку" msgid "Replace existing hook?" msgstr "Заменить существующую ловушку?" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" "Есть ловушка %s.%s.\n" "\n" "Заменить её?" msgid "OK" msgstr "OK" msgid "Missing information" msgstr "Информация отсутствует" msgid "All items" msgstr "Все элементы" msgid "Working directory" msgstr "Рабочая директория" msgid "All revisions" msgstr "Все ревизии" msgid "All contexts" msgstr "Все контексты" msgid "Fixed revisions" msgstr "Зафиксированные ревизии" msgid "Applied patches" msgstr "Применённые заплатки" msgid "Applied patches or qparent" msgstr "Применённые заплатки или qparent" msgid "" msgstr "<значок по умолчанию>" msgid "Configure Custom Tool" msgstr "Настроить дополнительный инструмент" msgid "Tool name" msgstr "Имя инструмента" msgid "The tool name. It cannot contain spaces." msgstr "Имя инструмента. Не может содержать пробелы." #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" "Команда, которая будет выполнена.\n" "Чтобы выполнить команду Mercurial, используйте «hg» (а не «hg.exe») как " "исполняемую команду.\n" "В команде можно использовать несколько {ПЕРЕМЕННЫХ}.\n" "Стандартные переменные:\n" "- {КОРЕНЬ}: путь к текущему корневому каталогу репозитория.\n" "- {РЕВИЗИЯ} / {ИДЕНТИФИКАТОР РЕВИЗИИ}: выбранные номера ревизий / " "шестнадцатеричные хэши идентификаторов ревизий, отформатированные как " "выражение набора ревизий.\n" "- {ВЫБРАННЫЕ ФАЙЛЫ}: список файлов, выбранных пользователем, в списке файлов " "подробностей ревизии.\n" "- {ФАЙЛЫ}: список файлов, которые были изменены выбранными ревизиями.\n" "- {ВСЕ ФАЙЛЫ}: все отслеживаемые Mercurial файлы в выбранных ревизиях.\n" "Переменные выбора пар:\n" "- {РЕВИЗИЯ_A} / {ИДЕНТИФИКАТОР РЕВИЗИИ_A}: номер первой выбранной ревизии / " "шестнадцатеричный хэш идентификатора ревизии.\n" "- {РЕВИЗИЯ_B} / {ИДЕНТИФИКАТОР РЕВИЗИИ_B}: номер второй выбранной ревизии / " "шестнадцатеричный хэш идентификатора ревизии.\n" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" "Директория, в которой будет выполнена команда.\n" "Если её не установить, то вместо неё будет использован корень текущего " "репозитория.\n" "Вы можете использовать те же самые {ПЕРЕМЕННЫЕ}, что и в установке " "«Команды».\n" msgid "Tool label" msgstr "Метка инструмента" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" "Метка инструмента, которая будет показана в контекстном меню.\n" "Если метка не установлена, то имя инструмента будет использоваться в " "качестве метки инструмента.\n" "Если подсказка не установлена, то метка будет также использоваться в " "качестве подсказки." msgid "Tooltip" msgstr "Подсказка" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" "Подсказка, которая будет показана на кнопке инструмента.\n" "Она показывается только когда кнопка инструмента видна на \n" "панели инструментов рабочей среды." msgid "Icon" msgstr "Значок" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" "Значок инструмента.\n" "Вы можете использовать любой встроенный значок TortoiseHg,\n" "присвоив этому значению корректное имя значка TortoiseHg\n" "(например, clone, add, remove, sync, thg-logo, hg-update и т. д.).\n" "Вы можете также присвоить этому значению абсолютный путь\n" "к любому значку в вашей файловой системе." msgid "On repowidget, show for" msgstr "Отображать для" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" "Для каких видов ревизий этот инструмент будет задействован\n" "В расчёт берётся только инструмент, видимый в\n" "контекстном меню выбранной ревизии." msgid "Show Output Log" msgstr "Показать журнал вывода" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" "Когда задействовано, то автоматически показывать журнал вывода, при запуске " "команды.\n" "По умолчанию: Нет." msgid "You must set a tool name." msgstr "Необходимо установить имя инструмента." msgid "The tool name cannot have any spaces in it." msgstr "Имя инструмента не может содержать пробелы." msgid "You must set a command to run." msgstr "Необходимо установить команду для выполнения." msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" "Выполнить после того, как группа изменений была добавлена через вытягивание, " "проталкивание или разгруппировку. ID первого набора изменений в " "$HG_NODE и последнего в $HG_NODE_LAST. URL-адрес, из которого " "пришли изменения, находится в $HG_URL." msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" "Выполнить после того, как набор изменений был создан в локальном хранилище. " "ID недавно созданного набора изменений находится в $HG_NODE. ID " "родительских наборов изменений находятся в $HG_PARENT1 и " "$HG_PARENT2." msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" "Выполнить после того, как набор изменений был вытянут, протолкнут или " "разгруппирован в локальном хранилище. ID недавно полученного набора " "изменений находится $HG_NODE. URL-адрес, который был источником, из " "которого пришли изменения, находится в $HG_URL." msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" "Выполнить после отправки изменений из локального хранилище в другое. ID " "первого отправленного набора изменений находится в $HG_NODE. " "Источник операции находится в $HG_SOURCE." msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" "Выполнить до того, как группа изменений будет добавлена с помощью " "вытягивания, проталкивания или разгруппировки. Завершение с 0 кодом возврата " "разрешает продолжить операцию. Ненулевой код возврата приведет к сбою " "вытягивания, проталкивания или разгруппировки. URL-адрес, из которого будут " "внесены изменения, находится в $HG_URL." msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" "Выполнить до начала локальной фиксации. Завершение с 0 кодом возврата " "разрешает продолжить операцию. Ненулевой код возврата приведет к сбою " "фиксации. ID родительских наборов изменений находятся в $HG_PARENT1 " "и $HG_PARENT2." msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" "Выполнить до перечисления push-ключей (например, закладок) в хранилище. " "Ненулевой код возврата приведет к неудаче. Пространство имен ключей " "находится в $HG_NAMESPACE." msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" "Выполнить до сбора изменений для отсылки из локального хранилища в другое. " "Ненулевой код возврата приведёт к неудаче. Это позволяет предотвратить " "проталкивание по протоколу HTTP или SSH. Также предотвращает локальные " "команды вытягивания, проталкивания (исходящие) или комплекта, но не " "эффективно, поскольку вместо этого можно просто копировать файлы. Источник " "операции находится в $HG_SOURCE. Если операция «serve», происходит " "от имени удалённого хранилища SSH или HTTP. Если операции «push», «pull» или " "«bundle», происходят от имени хранилища в той же системе." msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" "Выполнить до того, как push-ключ (например, закладка) будет добавлен в " "хранилище. Ненулевой код возврата приведет к отклонению ключа. Пространство " "имен ключа находится в $HG_NAMESPACE, ключ в $HG_KEY, " "старое значение (если есть) в $HG_OLD, а новое в $HG_NEW." msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" "Выполнить перед созданием тега. Завершение с 0 кодом возврата разрешает " "создать тег. Ненулевой код возврата приведет к сбою создания тега. ID набора " "изменений находится в $HG_NODE. Имя тега находится в $HG_TAG. Тег является локальным, если $HG_LOCAL=1, в хранилище, если " "$HG_LOCAL=0." msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" "Выполнить после того, как группа изменений была добавлена с помощью " "вытягивания, проталкивания или разгруппировки, но до фиксации транзакции. " "Группа изменений видна для программы ловушки. Это позволяет проверять " "входящие изменения перед их принятием. Передается ID первого нового набора " "изменений в $HG_NODE и последнего в $HG_NODE_LAST. " "Завершение с 0 кодом возврата разрешает фиксировать транзакцию. Ненулевой " "код возврата приведет к откату транзакции, а вытягивание, проталкивание или " "разгруппировка завершится ошибкой. URL-адрес, являющийся источником " "изменений, находится в $HG_URL." msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" "Выполнить после того, как набор изменений был создан, но до фиксации " "транзакции. Набор изменений виден для программы ловушки. Это позволяет " "проверять сообщение и изменения фиксации. Завершение с 0 кодом возврата " "разрешает фиксацию. Ненулевой код возврата приведет к откату транзакции. ID " "набора изменений в $HG_NODE. ID родительских наборов изменений " "находятся в $HG_PARENT1 и $HG_PARENT2." msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" "Выполнить перед обновлением рабочего каталога. Завершение с 0 кодом возврата " "разрешает продолжить обновление. Ненулевой код возврата предотвращает " "обновление. ID набора изменений первого нового родителя находится в " "$HG_PARENT1. При слиянии, ID второго нового родителя находится в " "$HG_PARENT2." msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" "Выполнить после перечисления push-ключей (например, закладок) в хранилище. " "Пространство имен ключей находится в $HG_NAMESPACE, в " "$HG_VALUES находится словарь, содержащий ключи и значения." msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" "Выполнить после того, как push-ключ (например, закладка) был добавлен в " "хранилище. Пространство имен ключа находится в $HG_NAMESPACE, ключ " "в $HG_KEY, старое значение (если есть) в $HG_OLD, а новое " "в $HG_NEW." msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" "Выполнить после создания тега. ID набора изменений находится в $HG_NODE. Имя тега находится в $HG_TAG. Тег является локальным, если " "$HG_LOCAL=1, в хранилище, если $HG_LOCAL=0." msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" "Выполнить после обновления рабочего каталога. ID набора изменений первого " "нового родителя находится в $HG_PARENT1. При слиянии, ID второго " "нового родителя находится в $HG_PARENT2. Если обновление прошло " "успешно, то $HG_ERROR=0. Если обновление выполнить не удалось " "(например потому, что конфликты не разрешены), то $HG_ERROR=1." msgid "Configure Hook" msgstr "Настроить ловушку" msgid "Hook type" msgstr "Тип ловушки" msgid "Select when your command will be run" msgstr "Выберите, когда ваша команда будет запущена" msgid "The hook name. It cannot contain spaces." msgstr "Имя ловушки. Не может содержать пробелы." msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" "Команда, которая будет выполнена.\n" "Чтобы выполнить python-функцию, добавьте в начало команды «python:».\n" msgid "You must set a valid hook type." msgstr "Необходимо установить корректный тип ловушки." msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "Имя ловушки не может содержать пробелы, табуляторы или символы «=»." #, python-format msgid "Ignore filter - %s" msgstr "Фильтр игнорирования — %s" msgid "Glob" msgstr "Маска файла (glob)" msgid "Regexp" msgstr "Регулярное выражение" msgid "Add" msgstr "Добавить" msgid "Edit File" msgstr "Править файл" msgid "Ignore Filter" msgstr "Фильтр игнорирования" msgid "Untracked Files" msgstr "Неотслеживаемые файлы" msgid "Backspace or Del to remove row(s)" msgstr "Backspace или Del удаляет строку" msgid "Add ignore filter..." msgstr "Добавить фильтр игнорирования..." msgid "selected files" msgstr "выбранных файлов" msgid "Ignore " msgstr "Игнорировать " msgid "Invalid glob expression" msgstr "Неверная маска" msgid "Invalid regexp expression" msgstr "Неверное регулярное выражение" msgid "Unable to read repository status" msgstr "Не удаётся прочесть состояние хранилища" #, python-format msgid "%s (hint: %s)" msgstr "%s (подсказка: %s)" msgid "New file created" msgstr "Создан новый файл" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" "TortoiseHg создал новый файл .hgignore — хотите добавить этот файл в " "хранилище, под контроль версий?" msgid "Unable to write .hgignore file" msgstr "Не удалось записать файл .hgignore" msgid "Destination:" msgstr "Назначение:" msgid "Clone to revision:" msgstr "Клонировать до ревизии:" msgid "A revision identifier, bookmark, tag or branch name" msgstr "Идентификатор ревизии, закладка, метка или имя ветки" msgid "Do not update the new working directory" msgstr "Не обновлять создаваемый рабочий каталог" msgid "Use pull protocol to copy metadata" msgstr "Использовать протокол затягивания для копирования метаданных" msgid "Clone with minimal processing" msgstr "Клонировать с минимальной обработкой" msgid "Include patch queue" msgstr "Включая очередь заплаток" msgid "Use proxy server" msgstr "Использовать прокси-сервер" msgid "Do not verify host certificate" msgstr "Не проверять сертификат хоста" msgid "Use largefiles" msgstr "Использовать большие-файлы" msgid "Start revision:" msgstr "Начальная ревизия:" msgid "Hg command:" msgstr "Команда hg:" msgid "Select source repository" msgstr "Выберите исходное хранилище" msgid "Select destination repository" msgstr "Выберите хранилище назначения" msgid "Select patch folder" msgstr "Выберите папку заплатки" #, python-format msgid "Clone - %s" msgstr "Клонирование — %s" msgid "&Clone" msgstr "&Клонировать" msgid "Console" msgstr "Консоль" msgid "Email" msgstr "Электронная почта" msgid "To:" msgstr "Кому:" msgid "Cc:" msgstr "Копия:" msgid "From:" msgstr "От:" msgid "In-Reply-To:" msgstr "В ответ на:" msgid "Message identifier to reply to, for threading" msgstr "" "Идентификатор сообщения для ответа, используется для формирования нити " "обсуждения" msgid "Flag:" msgstr "Флаг:" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" "Заплатки Hg (сгенерированные командой экспорт) совместимы с большинством " "программ заплаток. Они включают заголовок, содержащий наиболее важные " "метаданные." msgid "Send changesets as Hg patches" msgstr "Отправить наборы изменений как заплатки Hg" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" "Git заплатки могут описывать двоичные файлы, копии, и изменения прав, но " "получатели не смогут использовать их не иначе чем с git или Mercurial." msgid "Use extended (git) patch format" msgstr "Использовать формат Git для заплатки" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" "Срезание заголовка Mercurial подразумевает удаление информации об имени " "пользователя и о родительской ревизии. Это имеет смысл только в том случае, " "если получатель не использует Mercurial (и поэтому не желает видеть эти " "заголовки)." msgid "Plain, do not prepend Hg header" msgstr "Простой, без заголовка Hg" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" "Комплекты содержат наборы изменений целиком в двоичном виде. Вышестоящие " "пользователи могут вытягивать из них. Это самый безопасный путь для отправки " "изменений получателям, использующим Mercurial." msgid "Send single binary bundle, not patches" msgstr "Отправить одним двоичным комплектом, а не заплатками" msgid "send patches as part of the email body" msgstr "отослать заплатки по электронной почте" msgid "body" msgstr "тело" msgid "send patches as attachments" msgstr "отправить заплатки как вложения" msgid "attach" msgstr "вложить" msgid "send patches as inline attachments" msgstr "отправить заплатки как вложения в тексте" msgid "inline" msgstr "в тексте" msgid "add diffstat output to messages" msgstr "добавить статистику различий к сообщениям" msgid "diffstat" msgstr "статистика различий" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" "Описание последовательности заплаток отправляется в первом сопроводительном " "письме с темой [PATCH 0 of N]. Оно должно обобщённо описывать всю " "последовательность заплаток. Если отправляется двоичный комплект, эти поля " "образуют тему сообщения и его текст. Флаги — это разделяемый запятыми список " "меток, которые помещаются в префиксе темы письма." msgid "Write patch series (bundle) description" msgstr "Написать описание серии заплаток (комплекта)" msgid "Subject:" msgstr "Тема:" msgid "Select &All" msgstr "Выделить всё" msgid "Select &None" msgstr "Снять выделение" msgid "Edit" msgstr "Править" msgid "Preview" msgstr "Предпросмотр" msgid "Send &Email" msgstr "&Отправить письмо" msgid "About" msgstr "О программе" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "© Steve Borho и другие, 2008-2019" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "Некоторые значки предоставлены проектами TortoiseSVN и Tango" msgid "You can visit our site here" msgstr "Посетите наш сайт" msgid "&License" msgstr "&Лицензия" #, python-format msgid "version %s" msgstr "версия %s" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "включает Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "Новая версия TortoiseHg (%s) готова для загрузки!" msgid "License" msgstr "Лицензионное соглашение" msgid "= Working Directory Parent =" msgstr "= Родитель для рабочего каталога =" msgid "Directory of files" msgstr "Каталог файлов" msgid "Tar archives" msgstr "Tar архивы" msgid "Uncompressed tar archive" msgstr "Архив tar, без сжатия" msgid "Bzip2 tar archives" msgstr "Bzip2 tar архивы" msgid "Tar archive compressed using bzip2" msgstr "Архив tar, сжатие bzip2" msgid "Gzip tar archives" msgstr "Gzip tar архивы" msgid "Tar archive compressed using gzip" msgstr "Архив tar, сжатие gzip" msgid "Zip archives" msgstr "Zip архивы" msgid "Uncompressed zip archive" msgstr "Архив zip, без сжатия" msgid "Zip archive compressed using deflate" msgstr "Архив zip, сжатие deflate" msgid "All files in this revision" msgstr "Все файлы в этой ревизии" msgid "Only files modified/created in this revision" msgstr "Только файлы, измененные/созданные в этой ревизии" msgid "Only files modified/created since:" msgstr "Только файлы, измененные/созданные начиная с:" msgid "Archive Content:" msgstr "Содержимое архива:" msgid "Recurse into subrepositories" msgstr "C подхранилищами" msgid "Destination path:" msgstr "Путь назначения:" msgid "Archive types:" msgstr "Типы архивов:" msgid "Select Destination Folder" msgstr "Выберите папку назначения" msgid "Select Destination File" msgstr "Выберите файл назначения" msgid "Duplicate Name" msgstr "Дублирование имени" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "Назначение «%s» уже существует и является файлом!" msgid "Confirm Overwrite" msgstr "Подтверждение перезаписи" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" "Каталог «%s» не пуст!\n" "\n" "Перезаписать его?" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" "Файл «%s» уже существует!\n" "\n" "Записать поверх него?" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "Назначение «%s» уже существует и является папкой!" #, python-format msgid "Archive - %s" msgstr "Архивация — %s" msgid "&Archive" msgstr "&Архивировать" msgid "Syntax Highlighting" msgstr "Подсветка синтаксиса" msgid "Paste &Filenames" msgstr "Вставить имена &файлов" msgid "App&ly Format" msgstr "Пр&именить формат" msgid "C&onfigure Format" msgstr "К&онфигурировать формат" msgid "must be specified repository" msgstr "необходимо указать хранилище" msgid "must be specified 'type' in style" msgstr "необходимо указать «тип» в стиле" msgid "Git Commit:" msgstr "Фиксация Git:" msgid "User:" msgstr "Пользователь:" msgid "Date:" msgstr "Дата:" msgid "Age:" msgstr "Возраст:" msgid "Close:" msgstr "Закрыть:" msgid "Tags:" msgstr "Метки:" msgid "Graft:" msgstr "Наращение ветви:" msgid "Transplant:" msgstr "Трансплантация:" msgid "Obsolete state:" msgstr "Устаревшее состояние:" msgid "Perforce:" msgstr "Perforce:" msgid "Subversion:" msgstr "Subversion:" msgid "Converted From:" msgstr "Преобразовано из:" msgid "Original Parent:" msgstr "Исходный родитель:" msgid "Log" msgstr "Журнал" msgid "Repositories" msgstr "Хранилища" #, python-format msgid "Running at %s" msgstr "Запущен на %s" msgid "Stopped" msgstr "Остановлен" msgid "TortoiseHg Web Server" msgstr "Веб-сервер TortoiseHg" msgid "### regular expression search pattern ###" msgstr "### регулярное выражение для поиска ###" msgid "Regexp:" msgstr "Регулярное выражение:" msgid "Ignore case" msgstr "Без учёта регистра" msgid "Search" msgstr "Поиск" msgid "Working Copy" msgstr "Рабочая копия" msgid "Revision" msgstr "Ревизия" msgid "All History" msgstr "Вся история" msgid "Report only the first match per file" msgstr "Только первые совпадения" msgid "Match whole words only" msgstr "Только слова целиком" msgid "Follow copies and renames" msgstr "С копированиями и переименованиями" msgid "Includes:" msgstr "Включая:" msgid "Excludes:" msgstr "Исключая:" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" "Разделяемый запятыми список шаблонов исключаемых файлов. Исключающие шаблоны " "применяются после включающих." msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" "Разделяемый запятыми список шаблонов включаемых файлов. По умолчанию поиск " "происходит во всём хранилище." #, python-format msgid "\"%s\" removed from search history" msgstr "«%s» изъято из истории поиска" #, python-format msgid "\"%s\" removed from path history" msgstr "«%s» изъято из истории путей" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "grep: неверный шаблон поиска: %s\n" #, python-format msgid "grep: %s\n" msgstr "grep: %s\n" #, python-format msgid "%d matches found" msgstr "Найдено совпадений: %d" msgid "No matches found" msgstr "Совпадения не найдены" msgid "Searching" msgstr "Поиск" msgid "history" msgstr "в истории" msgid "Interrupted" msgstr "Прервано" msgid "files" msgstr "файлов." #, python-format msgid "Skipping %s, unable to read" msgstr "Пропущен %s, не удалось прочитать" msgid "Vi&ew File" msgstr "Просмотр&еть файл" msgid "&View Changeset" msgstr "&Просмотреть набор изменений" msgid "&Diff to Parent" msgstr "&Сравнить с родителем" msgid "Annotate &File" msgstr "&Аннотировать файл" msgid "File" msgstr "Файл" msgid "Line" msgstr "Строка" msgid "Rev" msgstr "Ревизия" msgid "User" msgstr "Пользователь" msgid "Match Text" msgstr "Текст совпадения" msgid "TortoiseHg Search" msgstr "Поиск TortoiseHg" msgid "&Sort" msgstr "&Сортировать" #, python-format msgid "Local Repository %s" msgstr "Локальное хранилище %s" #, python-format msgid "" "An exception happened while loading the subrepos of:

                                                                                    \"%s\"

                                                                                    " msgstr "Произошло исключение при загрузке подхранилищ для:

                                                                                    «%s»

                                                                                    " #, python-format msgid "The exception error message was:

                                                                                    %s

                                                                                    " msgstr "Сообщение об ошибке исключения было:

                                                                                    %s

                                                                                    " msgid "Click OK to continue or Abort to exit." msgstr "Нажмите OK для продолжения или Прервать для выхода." msgid "Error loading subrepos" msgstr "Ошибка загрузки подхранилищ" msgid "Unable to update repository name" msgstr "Не удаётся обновить имя хранилища" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "Ошибка при обновлении файла hgrc хранилища (%s)" msgid "default" msgstr "по умолчанию" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" "\n" "Прерывание с клавиатуры, останавливается.\n" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "не удалось запустить GUI в отдельном процессе: %s\n" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "невозможно прочитать файл «%s». Проигнорировано.\n" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" "thg: команда «%s» неоднозначна:\n" " %s\n" #, python-format msgid "thg: unknown command '%s'\n" msgstr "thg: неизвестная команда «%s»\n" #, python-format msgid "thg %s: %s\n" msgstr "thg %s: %s\n" #, python-format msgid "thg: %s\n" msgstr "thg: %s\n" #, python-format msgid "abort: %s!\n" msgstr "прервано: %s!\n" #, python-format msgid "abort: %s\n" msgstr "прервано: %s\n" #, python-format msgid "(%s)\n" msgstr "(%s)\n" msgid "option --config may not be abbreviated!" msgstr "параметр --config не может быть сокращенным!" msgid "invalid arguments" msgstr "неверные параметры" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "неопознанный формат профилирования «%s» — проигнорировано\n" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" "lsprof не доступен — установите с http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgid "repository root directory or symbolic path name" msgstr "корневой каталог или имя символического пути хранилища" msgid "enable additional output" msgstr "включить дополнительный вывод" msgid "suppress output" msgstr "подавить вывод" msgid "display help and exit" msgstr "показать справку и выйти" msgid "set/override config option (use 'section.name=value')" msgstr "" "установить/переопределить параметр конфигурации (используйте 'раздел." "имя=значение')" msgid "enable debugging output" msgstr "включить отладочный вывод" msgid "start debugger" msgstr "запустить отладчик" msgid "print command execution profile" msgstr "вывести профиль запуска команды" msgid "do not fork GUI process" msgstr "не запускать GUI в отдельном процессе" msgid "always fork GUI process" msgstr "всегда запускать GUI в отдельном процессе" msgid "read file list from file" msgstr "прочитать список файлов из файла" msgid "read file list from file encoding utf-8" msgstr "прочитать список файлов из файла в кодировке UTF-8" msgid "thg about" msgstr "thg about" msgid "thg add [FILE]..." msgstr "thg add [ФАЙЛ]..." msgid "revision to annotate" msgstr "ревизия для аннотирования" msgid "open to line" msgstr "открыть на строке" msgid "initial search pattern" msgstr "начальный шаблон поиска" msgid "thg annotate" msgstr "thg annotate" #, python-format msgid "invalid line number: %s" msgstr "неверный номер строки: %s" msgid "revision to archive" msgstr "ревизия для архивирования" msgid "thg archive" msgstr "thg archive" msgid "merge with old dirstate parent after backout" msgstr "слить со старым родителем каталога после обращения изменений" msgid "parent to choose when backing out merge" msgstr "родитель, к которому произойдёт обращение изменений" msgid "revision to backout" msgstr "ревизия, изменения которой нужно обратить" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "thg backout [ПАРАМЕТР]... [[-r] РЕВИЗИЯ]" msgid "thg bisect" msgstr "thg bisect" msgid "revision" msgstr "ревизия" msgid "thg bookmarks [-r REV] [NAME]" msgstr "thg bookmarks [-r РЕВИЗИЯ] [ИМЯ]" msgid "only one new bookmark name allowed" msgstr "разрешено только одно новое имя закладки" msgid "the clone will include an empty working copy (only a repository)" msgstr "клон будет иметь пустую рабочую копию (только хранилище)" msgid "revision, tag or branch to check out" msgstr "ревизия, метка или ветка которую нужно извлечь" msgid "include the specified changeset" msgstr "включить указанный набор изменений" msgid "clone only the specified branch" msgstr "клонировать только указанную ветку" msgid "use pull protocol to copy metadata" msgstr "использовать протокол затягивания для копирования метаданных" msgid "use uncompressed transfer (fast over LAN)" msgstr "использовать передачу данных без сжатия (быстрее в локальной сети)" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "thg clone [ПАРАМЕТР]... [ИСТОЧНИК] [НАЗНАЧЕНИЕ]" msgid "record user as committer" msgstr "записать пользователя как фиксирующего" msgid "record datecode as commit date" msgstr "записать дату фиксации" msgid "thg commit [OPTIONS] [FILE]..." msgstr "thg commit [ПАРАМЕТРЫ] [ФАЙЛ]..." msgid "thg debugblockmatcher" msgstr "thg debugblockmatcher" msgid "thg debugbugreport [TEXT]" msgstr "thg debugbugreport [ТЕКСТ]" msgid "thg debugconsole" msgstr "thg debugconsole" msgid "thg debuglighthg" msgstr "thg debuglighthg" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "thg debugruncommand -- КОМАНДА [АРГУМЕНТ]..." msgid "no command specified" msgstr "команда, не указана" msgid "thg drag_copy SOURCE... DEST" msgstr "thg drag_copy ИСТОЧНИК... НАЗНАЧЕНИЕ" msgid "thg drag_move SOURCE... DEST" msgstr "thg drag_move ИСТОЧНИК... НАЗНАЧЕНИЕ" msgid "a revision to send" msgstr "ревизия, которую нужно отправить" msgid "thg email [REVS]" msgstr "thg email [РЕВИЗИИ]" msgid "use only one form to specify the revision" msgstr "используйте только один способ для указания ревизии" msgid "select the specified revision" msgstr "выбор указанной ревизии" msgid "side-by-side comparison of revisions" msgstr "сравнение ревизий бок о бок" msgid "thg filelog [OPTION]... FILE" msgstr "thg filelog [ПАРАМЕТРЫ]... ФАЙЛ" msgid "requires a single filename" msgstr "требуется одно имя файла" msgid "thg forget [FILE]..." msgstr "thg forget [ФАЙЛ]..." msgid "revisions to graft" msgstr "ревизии для наращивания" msgid "thg graft [-r] REV..." msgstr "thg graft [-r] РЕВИЗИЯ..." msgid "You must provide revisions to graft" msgstr "Необходимо предоставить ревизии для наращивания" msgid "ignore case during search" msgstr "не учитывать регистр при поиске" msgid "thg grep" msgstr "thg grep" msgid "thg guess" msgstr "thg guess" msgid "thg help [COMMAND]" msgstr "thg help [КОМАНДА]" msgid "global options:" msgstr "глобальные настройки:" msgid "use \"thg help\" for the full list of commands" msgstr "«thg help» выдаёт полный список команд" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "«thg help» выдаёт полный список команд, «thg -v» — с подробностями" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "«thg -v help%s» показывает псевдонимы команды и глобальные параметры" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "«thg -v help %s» показывает глобальные параметры" msgid "" "list of commands:\n" "\n" msgstr "" "список команд:\n" "\n" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" "\n" "псевдонимы: %s\n" msgid "(no help text available)" msgstr "(текст справки не доступен)" msgid "options:\n" msgstr "настройки:\n" msgid "no commands defined\n" msgstr "команды не определены\n" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "" "Thg — графические средства TortoiseHg для системы контроля версий Mercurial\n" msgid "" "basic commands:\n" "\n" msgstr "" "основные команды:\n" "\n" #, python-format msgid " (default: %s)" msgstr " (по умолчанию: %s)" msgid "thg hgignore [FILE]" msgstr "thg hgignore [ФАЙЛ]" msgid "import to the patch queue (MQ)" msgstr "импорт в очередь заплаток (MQ)" msgid "thg import [OPTION] [SOURCE]..." msgstr "thg import [ПАРАМЕТРЫ] [ИСТОЧНИК]..." msgid "thg init [DEST]" msgstr "thg init [НАЗНАЧЕНИЕ]" msgid "thg lock" msgstr "thg lock" msgid "search for a given text or revset" msgstr "поиск по заданному тексту или набору ревизий" msgid "(DEPRECATED)" msgstr "(УСТАРЕЛО)" msgid "open a new workbench window" msgstr "открыть новое окно рабочей среды" msgid "thg log [OPTIONS] [FILE]" msgstr "thg log [ПАРАМЕТРЫ] [ФАЙЛ]" msgid "cannot specify both -k/--query and filenames" msgstr "нельзя задавать одновременно -k/--query и имена файлов" msgid "revision to display" msgstr "ревизия, которую нужно показать" msgid "thg manifest [-r REV] [FILE]" msgstr "thg manifest [-r РЕВИЗИЯ] [ФАЙЛ]" msgid "revision to merge" msgstr "ревизия, которую нужно слить" msgid "thg merge [[-r] REV]" msgstr "thg merge [[-r] РЕВИЗИЯ]" msgid "Merge revision not specified or not found" msgstr "Ревизия слияния не указана или не найдена" msgid "a revision to post" msgstr "ревизия для отправки" msgid "thg postreview [-r] REV..." msgstr "thg postreview [-r] РЕВИЗИЯ..." msgid "reviewboard extension not enabled" msgstr "расширение reviewboard не включено" #, python-format msgid "see %(url)s" msgstr "см. %(url)s" msgid "no revisions specified" msgstr "ревизии не указанны" msgid "revisions to prune" msgstr "ревизии для отсечения" msgid "thg prune [-r] REV..." msgstr "thg prune [-r] РЕВИЗИЯ..." msgid "thg purge" msgstr "thg purge" msgid "keep original changesets" msgstr "сохранять исходные наборы изменений" msgid "keep original branch names" msgstr "сохранять исходные имена веток" msgid "rebase from the specified changeset" msgstr "набор изменений, начиная с которого перебазировать" msgid "rebase onto the specified changeset" msgstr "набор изменений, на который перебазировать" msgid "thg rebase -s REV -d REV [--keep]" msgstr "thg rebase -s РЕВИЗИЯ -d РЕВИЗИЯ [--keep]" msgid "Rebase already in progress" msgstr "Перебазирование уже выполняется" msgid "Resuming rebase already in progress" msgstr "Возобновление перебазирования уже выполняется" msgid "You must provide source and dest arguments" msgstr "Нужно указать источник и место назначения" msgid "thg rejects [FILE]" msgstr "thg rejects [ФАЙЛ]" msgid "You must provide the path to a file" msgstr "Нужно указать путь к файлу" msgid "thg remove [FILE]..." msgstr "thg remove [ФАЙЛ]..." msgid "thg rename [SOURCE] [DEST]" msgstr "thg rename [ИСТОЧНИК] [НАЗНАЧЕНИЕ]" msgid "field to give initial focus" msgstr "поле для начальной установки фокуса" msgid "thg repoconfig" msgstr "thg repoconfig" msgid "thg resolve" msgstr "thg resolve" msgid "the revision to show" msgstr "ревизия, которую нужно показать" msgid "thg revdetails [-r REV]" msgstr "thg revdetails [-r РЕВИЗИЯ]" msgid "thg revert [FILE]..." msgstr "thg revert [ФАЙЛ]..." msgid "revision to update" msgstr "ревизия для обновления" msgid "thg rupdate [[-r] REV]" msgstr "thg rupdate [[-r] РЕВИЗИЯ]" msgid "name of the hgweb config file (serve more than one repository)" msgstr "" "имя конфигурационного файла hgweb (где можно задать несколько хранилищ)" msgid "name of the hgweb config file (DEPRECATED)" msgstr "имя конфигурационного файла hgweb (УСТАРЕЛО)" msgid "thg serve [--web-conf FILE]" msgstr "thg serve [--web-conf ФАЙЛ]" msgid "thg shellconfig" msgstr "thg shellconfig" msgid "thg shelve" msgstr "thg shelve" msgid "sign even if the sigfile is modified" msgstr "подписать даже если sigfile изменен" msgid "make the signature local" msgstr "создать локальную подпись" msgid "the key id to sign with" msgstr "идентификатор ключа для подписи" msgid "do not commit the sigfile after signing" msgstr "не фиксировать sigfile после подписания" msgid "use as commit message" msgstr "Использовать <текст> в качестве сообщения фиксации" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "thg sign [-f] [-l] [-k КЛЮЧ] [-m ТЕКСТ] [РЕВИЗИЯ]" msgid "Please enable the Gpg extension first." msgstr "Пожалуйста, сначала включите расширение Gpg." msgid "show files without changes" msgstr "показать файлы без изменений" msgid "show ignored files" msgstr "показать игнорируемые файлы" msgid "thg status [OPTIONS] [FILE]" msgstr "thg status [ПАРАМЕТРЫ] [ФАЙЛ]" msgid "discard uncommitted changes (no backup)" msgstr "отбросить незафиксированные изменения (без резервной копии)" msgid "do not back up stripped revisions" msgstr "не создавать резервные копии срезанных ревизий" msgid "do not modify working copy during strip" msgstr "не изменять рабочую копию во время срезания" msgid "revision to strip" msgstr "ревизия для срезания" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "thg strip [-k] [-f] [-n] [[-r] РЕВИЗИЯ]" msgid "open the bookmark sync window" msgstr "открыть окно синхронизации закладок" msgid "thg sync [OPTION]... [PEER]" msgstr "thg sync [ПАРАМЕТР]... [ПУТЬ]" msgid "replace existing tag" msgstr "заменить существующую метку" msgid "make the tag local" msgstr "сделать метку локальной" msgid "revision to tag" msgstr "ревизия, которую нужно отметить" msgid "remove a tag" msgstr "удалить метку" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "thg tag [-f] [-l] [-m ТЕКСТ] [-r РЕВИЗИЯ] [ИМЯ]" msgid "wait until the second ticks over" msgstr "подождать секунду" msgid "notify the shell for paths given" msgstr "уведомлять оболочку для указанных путей" msgid "remove the status cache" msgstr "удалить кэш статуса" msgid "show the contents of the status cache (no update)" msgstr "показать содержимое кэша статуса (без обновления)" msgid "update all repos in current dir" msgstr "обновить все хранилища в текущем каталоге" msgid "thg thgstatus [OPTION]" msgstr "thg thgstatus [ПАРАМЕТР]" msgid "thg topics [-r REV] [NAME]" msgstr "тематические ветки thg [-r REV] [NAME]" msgid "Please enable the Topic extension first." msgstr "Пожалуйста, сначала включите расширение Topic." msgid "only one new topic name allowed" msgstr "допускается только одно имя тематической ветки" msgid "thg update [-C] [[-r] REV]" msgstr "thg update [-C] [[-r] РЕВИЗИЯ]" msgid "thg userconfig" msgstr "thg userconfig" msgid "changeset to view in diff tool" msgstr "набор изменений для отображения в средстве сравнения" msgid "revisions to view in diff tool" msgstr "ревизии для отображения в средстве сравнения" msgid "bundle file to preview" msgstr "файл комплекта для просмотра" msgid "launch visual diff tool" msgstr "запустить средство визуального сравнения" msgid "print license" msgstr "напечатать лицензию" msgid "thg version [OPTION]" msgstr "thg version [ПАРАМЕТР]" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "Диалоговые окна TortoiseHg (версия %s), Mercurial (версия %s)\n" msgid "Copy working directory files from skeleton" msgstr "Копировать рабочие файлы каталога из скелета" msgid "Create special files (.hgignore, ...)" msgstr "Создать файлы особого назначения (.hgignore, ...)" msgid "Make repo compatible with Mercurial <1.7" msgstr "Сделать хранилище совместимым с Mercurial <1.7" msgid "New Repository" msgstr "Новое хранилище" msgid "&Create" msgstr "&Создать" #, python-format msgid "Merge - %s" msgstr "Слияние — %s" msgid "Do you want to exit?" msgstr "Выйти?" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" "Чтобы завершить слияние, вам следует зафиксировать рабочую директорию.\n" "\n" "Чтобы отменить слияние, вы можете обновить до одной из сливаемых " "родительских ревизий." msgid "Prepare to merge" msgstr "Подготовка к слиянию" msgid "Verify merge targets and ensure your working directory is clean." msgstr "" "Проверьте направления слияния и убедитесь, что ваш рабочий каталог чист." msgid "Merge from (other revision)" msgstr "Слить из (другая ревизия)" msgid "Merge to (working directory)" msgstr "Слить в (рабочий каталог)" msgid "Working directory status" msgstr "Состояние рабочего каталога" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" "Рабочий каталог уже слит. Продолжить или " "отказаться от существующего слияния." msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" "Перед слиянием необходимо зафиксировать, отложить в заплатку или отбросить изменения." msgid "Or use:" msgstr "Или используйте:" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "Принудительно слить с ожидающими изменениями (-f/--force)" msgid "Discard all changes from the other revision" msgstr "Отбросить все изменения из другой ревизии" msgid "Confirm Discard Changes" msgstr "Подтвердите отбрасывание изменений" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" "Изменения из ревизии %s и всех её неслитых родителей будут отброшены.\n" "\n" "Продолжить?" msgid "Uncommitted local changes are detected" msgstr "Обнаружены незафиксированные локальные изменения" msgid "Clean" msgstr "Чистый" msgid "Merging..." msgstr "Сливаем..." msgid "All conflicting files will be marked unresolved." msgstr "Все конфликтующие файлы будут помечены как улаженные." msgid "Automatically advance to next page when merge is complete." msgstr "Автоматически перейти к следующей странице, когда слияние завершится." #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" "%d файлов содержат конфликты слияния, которые должны быть улажены" #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" "%d файлов было изменено на обеих ветках, различия должны быть улажены" msgid "" "No merge conflicts, ready to commit or review" msgstr "" "Нет конфликтов слияния, всё готово к фиксации или рецензированию" msgid "No merge conflicts, ready to commit" msgstr "Нет конфликтов слияния, всё готово к фиксации" msgid "Commit merge results" msgstr "Фиксировать результаты слияния" msgid "Working Directory (merged)" msgstr "Рабочий каталог (слито)" msgid "Commit message" msgstr "Сообщение фиксации" msgid "Skip final confirmation page, close after commit." msgstr "Пропустить последнюю страницу подтверждения, закрыть после фиксации." msgid "Commit Options" msgstr "Настройки фиксации" #, python-format msgid "Selected Options: %s" msgstr "Выбранные параметры: %s" msgid "Commit Now" msgstr "Зафиксировать сейчас" msgid "Commit Later" msgstr "Зафиксировать позже" msgid "Committing..." msgstr "Фиксируем..." msgid "Please wait while committing merged files." msgstr "Пожалуйста, подождите окончания фиксации слитых файлов." msgid "Finished" msgstr "Завершено" msgid "Merge changeset" msgstr "Слить набор изменений" msgid "Sending Email" msgstr "Отправка почты" msgid "Merge" msgstr "Слияние" #, python-format msgid "Merge with %s" msgstr "Слияние с %s" msgid "Patch Name Required" msgstr "Требуется имя заплатки" msgid "You must enter a patch name" msgstr "Необходимо указать имя заплатки" msgid "MQ Action" msgstr "Действие MQ" msgid "Rollback" msgstr "Откат" msgid "Commit Dialog Toolbar" msgstr "Панель диалога фиксации" msgid "Branch: " msgstr "Ветка: " msgid "Copy message" msgstr "Копировать сообщение" msgid "Copy one of the recent commit messages" msgstr "Копировать одно из недавних сообщений фиксации" msgid "Show Issues" msgstr "Показать проблемы" msgid "Please wait..." msgstr "Пожалуйста, подождите..." #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "Не удалось загрузить систему отслеживания ошибок «%s»: %s" msgid "Issue Tracker" msgstr "Система отслеживания ошибок" msgid "Show Issues..." msgstr "Показать проблемы..." msgid "### patch name ###" msgstr "### имя заплатки ###" msgid "Commit changes" msgstr "Фиксировать изменения" msgid "Amend current revision" msgstr "Исправить текущую ревизию" msgid "Amend" msgstr "Исправить" msgid "Create a new patch" msgstr "Создать новую заплатку" msgid "QNew" msgstr "Новая заплатка MQ" msgid "Refresh current patch" msgstr "Освежить текущую заплатку" msgid "QRefresh" msgstr "Освежить заплатку" msgid "Confirm Branch Change" msgstr "Подтвердите изменение ветки" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "Именованная ветка «%s» уже существует, использовалась в ревизии %d\n" msgid "Restart &Branch" msgstr "Начать &ветку заново" msgid "&Commit to current branch" msgstr "&Фиксировать в текущую ветку" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "Создать новую ветку «%s» с этой фиксацией?\n" msgid "Create &Branch" msgstr "Создать &ветку" msgid "Close Branch: " msgstr "Закрыть ветку: " msgid "New Branch: " msgstr "Новая ветка: " #, python-format msgid "Close %s branch" msgstr "Закрыть ветку %s" #, python-format msgid "Rollback commit to revision %d" msgstr "Откатить фиксацию к ревизии %d" msgid "Confirm Undo" msgstr "Подтвердите отмену" msgid "Confirm Discard Message" msgstr "Подтверждение отказа от сообщения" msgid "Discard current commit message?" msgstr "Отказаться от текущего сообщения фиксации?" msgid "Message Translation Failure" msgstr "Не удалось перевести сообщение." msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" "Не удаётся перевести сообщение в локальную кодировку.\n" "Попробуйте установить переменную среды HGENCODING.\n" "\n" "Заменить непереводимые символы знаком «?»?\n" msgid "&Replace" msgstr "&Заменить" msgid "Nothing Committed" msgstr "Нечего фиксировать" msgid "Please enter commit message" msgstr "Пожалуйста, введите сообщение фиксации" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" "В сообщение фиксации не найдена ссылка на проблему. Требуется указывать " "ссылку на проблему, как указано в настройках в разделе «Система отслеживания " "проблем»." msgid "No files checked" msgstr "Нет отмеченных файлов" msgid "No modified files checkmarked for commit" msgstr "Нет изменённых файлов, отмеченных для фиксации" msgid "Confirm Add" msgstr "Подтвердите добавление" msgid "Add selected untracked files?" msgstr "Добавить выбранные файлы под контроль версий?" msgid "&Add" msgstr "&Добавить" msgid "Confirm Remove" msgstr "Подтвердите изъятие" msgid "Remove selected deleted files?" msgstr "Изъять указанные уничтоженные файлы из-под контроля версий?" msgid "&Remove" msgstr "&Изъять" msgid "Nothing changed." msgstr "Ничего не изменилось." #, python-format msgid "%s - commit options" msgstr "%s — параметры фиксации" msgid "Set username:" msgstr "Установить имя пользователя:" msgid "Save in Repo" msgstr "Сохранить в хранилище" msgid "Save Global" msgstr "Сохранить глобально" msgid "Set Date:" msgstr "Установить дату:" msgid "Update" msgstr "Обновить" msgid "Push After Commit:" msgstr "Протолкнуть после фиксации:" msgid "Auto Includes:" msgstr "Автоматически включаемые файлы:" msgid "Recurse into subrepositories (--subrepos)" msgstr "Рекурсивно обрабатывать подхранилища (--subrepos)" msgid "Unable to save username" msgstr "Невозможно сохранить имя пользователя" msgid "Unable to save after commit push" msgstr "Не удалось сохранить после проталкивания фиксации" msgid "Unable to save auto include list" msgstr "Не удалось сохранить список автоматически включаемых файлов" msgid "Unable to save recurse in subrepos." msgstr "Не удаётся сохранить признак рекурсивной обработки подхранилищ." msgid "Invalid date format" msgstr "Неверный формат даты" msgid "No username configured" msgstr "Имя пользователя не сконфигурировано" #, python-format msgid "%s - commit" msgstr "%s — фиксация" msgid "TortoiseHg Commit" msgstr "Фиксация TortoiseHg" msgid "Are you sure that you want to cancel the commit operation?" msgstr "Отменить операцию фиксации?" msgid "Diff Toolbar" msgstr "Панель сравнения" msgid "View change as unified diff output" msgstr "Просмотр изменений в унифицированном формате сравнения" msgid "View change in context of file" msgstr "Просмотр изменений в контексте файла" msgid "Annotate with revision numbers" msgstr "Аннотировать номерами ревизий" msgid "Next Diff" msgstr "Следующее различие" msgid "Previous Diff" msgstr "Предыдущее различие" msgid "Toggle display of text search bar" msgstr "Включить/выключить панель текстового поиска" msgid "Open shelve tool" msgstr "Открыть средство откладывания изменений" msgid "&Auto Detect" msgstr "&Автоопределение" msgid "E&ncoding" msgstr "&Кодировка" msgid "&Search in Current File" msgstr "&Поиск в текущем файле" msgid "Search in All &History" msgstr "Поиск по всей &истории" msgid "Go to Line" msgstr "Перейти к строке" #, python-format msgid "Enter line number (1 - %d)" msgstr "Укажите номер строки (1 — %d)" msgid "Please wait while the file is opened ..." msgstr "Пожалуйста, подождите, пока файл открывается..." msgid "Show &Author" msgstr "Показать &автора" msgid "Show &Date" msgstr "Показать &дату" msgid "Show &Revision" msgstr "Показать &ревизию" msgid "Annotate Op&tions" msgstr "&Настройки аннотирования" msgid "Search Selected Text" msgstr "Поиск выделенного текста" msgid "In Current &File" msgstr "В текущем &файле" msgid "In &Current Revision" msgstr "В &текущей ревизии" msgid "In &Original Revision" msgstr "В &исходной ревизии" msgid "In All &History" msgstr "По всей &истории" msgid "Go to" msgstr "Перейти к" msgid "View File at" msgstr "Посмотреть файл в" msgid "Diff File to" msgstr "Сравнить файл с" msgid "&Originating Revision" msgstr "&Исходной ревизией" msgid "&Local" msgstr "&Локальной копией" msgid "&Parent Revision" msgstr "&Родительской ревизией" #, python-format msgid "&Parent Revision (%d)" msgstr "&Родительской ревизией (%d)" msgid "&Mark Excluded Changes" msgstr "&Отметить исключённые изменения" msgid "(excluded from the next commit)" msgstr "(исключено из следующей фиксации)" msgid "Running..." msgstr "Выполняется..." msgid "Terminated by user" msgstr "Прервано пользователем" msgid "Failed!" msgstr "Неудача!" msgid "Clea&r Log" msgstr "Очистить журнал" msgid "TortoiseHg Prompt" msgstr "Приглашение TortoiseHg" msgid "Show Detail" msgstr "Показать подробности" msgid "Hide Detail" msgstr "Скрыть подробности" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" "Команда Mercurial всё ещё выполняется.\n" "Завершить её?" msgid "&Run" msgstr "&Выполнить" msgid "TortoiseHg Command Dialog" msgstr "Диалог команды TortoiseHg" msgid "Command Error" msgstr "Ошибка выполнения команды" #, python-format msgid "[Code: %d]" msgstr "[Код: %d]" msgid "Clear" msgstr "Очистить" msgid "Clear the current shelf file" msgstr "Очистить текущий файл долгого ящика" msgid "Delete" msgstr "Уничтожить" msgid "Delete the current shelf file" msgstr "Уничтожить текущий файл долгого ящика" msgid "Left Toolbar" msgstr "Левая панель инструментов" msgid "Delete selected chunks" msgstr "Уничтожить выбранные лоскуты" msgid "Move all files right" msgstr "Переместить все файлы направо" msgid "Move selected file right" msgstr "Переместить выделенный файл направо" msgid "Edit file" msgstr "Править файл" msgid "Move selected chunks right" msgstr "Переместить выделенные лоскуты направо" msgid "Refresh Toolbar" msgstr "Обновить панель инструментов" msgid "Refresh" msgstr "Обновить" msgid "New Shelf" msgstr "Новый долгий ящик" msgid "Right Toolbar" msgstr "Правая панель инструментов" msgid "Move selected chunks left" msgstr "Переместить выделенные лоскуты налево" msgid "Move selected file left" msgstr "Переместить выделенный файл налево" msgid "Move all files left" msgstr "Переместить все файлы налево" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "" "Резервные копии изменённых файлов можно будет найти в корзине .hg/Trashcan/" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "Откладывание TortoiseHg — %s" msgid "Delete selected chunks from working copy?" msgstr "Удалить выбранные лоскуты из рабочей копии?" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "Удалить выбранные лоскуты из долгого ящика %s?" msgid "Are you sure?" msgstr "Вы уверены?" msgid "TortoiseHg New Shelf Name" msgstr "Имя нового долгого ящика TortoiseHg" msgid "Specify name of new shelf" msgstr "Укажите имя нового долгого ящика" msgid "Bad filename" msgstr "Плохое имя файла" #, python-format msgid "A shelf name cannot contain %s" msgstr "Имя долгого ящика не может содержать %s" msgid "File already exists" msgstr "Файл уже существует" msgid "A shelf file of that name already exists" msgstr "Файл долгого ящика с таким именем уже существует" msgid "New shelf created" msgstr "Создан новый долгий ящик" #, python-format msgid "Delete shelf file %s?" msgstr "Уничтожить файл долгого ящика %s?" msgid "Shelf deleted" msgstr "Долгий ящик уничтожен" msgid "Revert all working copy changes?" msgstr "Откатить все изменения в рабочей копии?" #, python-format msgid "Clear contents of shelf file %s?" msgstr "Очистить содержимое файла долгого ящика %s?" msgid "Shelf cleared" msgstr "Долгий ящик очищен" #, python-format msgid "Shelf: %s" msgstr "Долгий ящик: %s" #, python-format msgid "Patch: %s" msgstr "Заплатка: %s" msgid "Do not modify working copy (-k/--keep)" msgstr "Не изменять рабочую копию (-k/--keep)" #, python-format msgid "Prune - %s" msgstr "Отсечение — %s" msgid "&Prune" msgstr "&Отсечь" msgid "&True" msgstr "&Да" msgid "&False" msgstr "&Нет" msgid "&Unspecified" msgstr "&Не указано" #, python-format msgid "%dpt" msgstr "%dтч" msgid "Bold" msgstr "Полужирный" msgid "Italic" msgstr "Курсив" msgid "Strike" msgstr "Зачеркнутый" msgid "Underline" msgstr "Подчеркнутый" msgid "&Set..." msgstr "&Установить..." msgid "&Clear" msgstr "&Очистить" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "Не удалось загрузить систему отслеживания ошибок: «%s»: %s. " msgid "&Browse..." msgstr "&Обзор..." msgid "UI Language" msgstr "Язык интерфейса" msgid "Specify your preferred user interface language (restart needed)" msgstr "" "Укажите предпочтительный язык интерфейса пользователя (требуется перезапуск)" msgid "Three-way Merge Tool" msgstr "Средство трёхстороннего слияния" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" "Средство слияния, используемое для улаживания конфликтов слияния. Если не " "указано, Mercurial будет использовать первую подходящую программу, " "обнаруженную в вашей системе. Если такой программы не обнаружено, внутреннее " "средство слияния вставит маркеры конфликтов непосредственно в файл. " "Выберите: internal:merge — будут вставляться маркеры конфликтов, internal:" "prompt — будет запрашиваться выбор между двумя версиями файла, internal:dump " "— файлы будут оставляться в рабочем каталоге для ручного слияния." msgid "Visual Diff Tool" msgstr "Средство сравнения" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" "Укажите средство визуального сравнения, из числа описанных в секции [merge-" "tools] ваших файлов настройки Mercurial. Если ничего не указано, то " "TortoiseHg будет использовать то же средство, что и для слияния. При неудаче " "будет использована первая подходящая программа, обнаруженная в вашей системе." msgid "Visual Editor" msgstr "Текстовый редактор" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" "Укажите визуальный редактор, как описано в разделе [editor-tools] ваших " "конфигурационных файлов Mercurial. Если не указан, то TortoiseHg будет " "использовать первую подходящую программу, обнаруженную в вашей системе." msgid "CLI Editor" msgstr "Редактор командной строки" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" "Редактор используемый Mercurial в командах командной строки, чтобы собрать " "многострочный ввод от пользователя. В частности, сообщения фиксации." msgid "Shell" msgstr "Оболочка" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
                                                                                    Default, Windows: cmd.exe /" "K title %(reponame)s
                                                                                    Default, OS X: not set
                                                                                    Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" "Укажите команду, которая запускает вашу программу терминала. Если значение " "включает строку %(reponame)s, то вместо неё будет подставлено имя хранилища. " "Аналогично, вместо %(root)s будет подставлен полный путь к хранилищу. " "(требуется перезапуск)
                                                                                    По умолчанию на Windows: cmd.exe /K title " "%(reponame)s
                                                                                    По умолчанию на OS X: не установлено
                                                                                    По умолчанию на " "других системах: xterm -T \"%(reponame)s\"" msgid "Immediate Operations" msgstr "Операции без подтверждения" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" "Разделяемый пробелами список операций, выполняемых немедленно, без запросов " "к пользователю. Возможные команды: «add remove revert forget». По умолчанию: " "Пусто." msgid "Tab Width" msgstr "Ширина табуляции" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" "Укажите число пробелов для замены табуляции в различных окнах TortoiseHg. По " "умолчанию: 8" msgid "Force Repo Tab" msgstr "Всегда показывать вкладки" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "" "Всегда показывать вкладки хранилищ, даже если хранилище всего одно. По " "умолчанию: Нет" msgid "Monitor Repo Changes" msgstr "Отслеживать хранилище" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" "Укажите, на какой файловой системе TortoiseHg будет следить за изменениями. " "По умолчанию: localonly (только локальные)" msgid "Max Diff Size" msgstr "Максимальный размер различий" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" "Максимальный размер файла (в КБ), для которого TortoiseHg будет показывать " "различия в окнах журнала изменений, состояния и фиксации. Нулевое значение " "означает — без ограничения. По умолчанию: 1024 (1МБ)" msgid "Fork GUI" msgstr "GUI в отдельном процессе" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" "При запуске из командной строки запускать фоновый процесс для графического " "интерфейса пользователя. Этот параметр игнорируется, когда TortoiseHg " "запущен как приложение OS X. По умолчанию: Да" msgid "Full Path Title" msgstr "Полный путь в заголовке" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" "Отображать полный путь до каталога хранилища в заголовке окон вместо " "названия корневого каталога. По умолчанию: Нет" msgid "Auto-resolve merges" msgstr "Автоматически улаживать конфликты" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" "Определяет, будет ли TortoiseHg улаживать конфликты сторон автоматически, и " "сообщать о конфликтах лишь тогда, когда их улаживание невозможно. Если " "«Нет», то все файлы с обеих сторон слияния будут объявлены конфликтующими, " "даже если в них исправлены несовпадающие части файла. В любом случае, " "пользователь получит приглашение просмотреть и уладить изменения вручную. По " "умолчанию: Да" msgid "New Repo Skeleton" msgstr "Новый скелет репозитория" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" "Если указано, файлы в каталоге, например, .hgignore, копируются во вновь " "созданное хранилище." msgid "Default Clone Destination" msgstr "Расположение клонирования по умолчанию" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" "Если указано, поле назначения в виджете клонирования будет предварительно " "заполнено этим путём. В ином случае это поле будет предварительно заполнено " "путём к текущему рабочему каталогу." msgid "Single Workbench Window" msgstr "Одиночное окно рабочей среды" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" "Выберите, следует ли показывать единственное окно рабочей среды. Если " "отключить этот параметр, вы будете получать новое окно рабочей среды при " "каждом использовании команды «Hg Workbench» в контекстном меню Проводника. " "По умолчанию: Да" msgid "Default widget" msgstr "Вид по умолчанию" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" "Выберите начальный вид служебного окна, который будет показан при открытии " "хранилища. По умолчанию: revdetails (просмотр ревизии)" msgid "Initial revision" msgstr "Начальная ревизия" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" "Укажите начальную ревизию, выбираемую при открытии хранилища. Вы можете " "выбрать «current» (текущая — т.е. родитель рабочей копии), текущий " "«tip» (наконечник, оконечная ревизия) или «workingdir» (текущий рабочий " "каталог). По умолчанию: current" msgid "" "Open new tabs next\n" "to the current tab" msgstr "" "Отрывать новые вкладки\n" "сразу после текущей" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" "Должны ли новые вкладки открываться сразу после текущей вкладки? Если «Нет», " "то новые вкладки будут открываться за последней вкладкой. По умолчанию: Да" msgid "Author Coloring" msgstr "Расцвечивание авторов" msgid "Color changesets by author name. Default: False" msgstr "Расцвечивать наборы изменений по авторам. По умолчанию: Нет" msgid "Full Authorname" msgstr "Полное имя автора" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" "Показывать полное имя автора в журнале. Если не включено, будет показана " "только короткая часть, обычно это имя без электронной почты. По умолчанию: " "Нет" msgid "Task Tabs" msgstr "Вкладки задач" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" "Показывать вкладки вдоль одной из сторон нижней части хранилища, чтобы можно " "было переключаться между задачами без участия панели инструментов. По " "умолчанию: off" msgid "Task Toolbar Order" msgstr "Порядок задач в панели" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
                                                                                    Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
                                                                                    Valid names are: log commit sync grep and " "pbranch.
                                                                                    Default: log commit grep pbranch | sync" msgstr "" "Укажите те кнопки задач, которые следует показать на панели инструментов " "задач, и их порядок.
                                                                                    Введите список имён кнопок задач. Добавить " "разделители можно, поставив \\«|\\» между именами кнопок задач." "
                                                                                    Допустимые имена: log commit sync grep и pbranch.
                                                                                    По умолчанию: log " "commit grep pbranch | sync" msgid "Long Summary" msgstr "Длинная сводка" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" "Если «Да», то объединяет многострочные сводки наборов изменений в одну и при " "необходимости обрезает её до 80 символов . По умолчанию: Нет" msgid "Log Batch Size" msgstr "Размер порции журнала" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "" "Количество ревизий прочитываемых и отображаемых в журнале изменений за один " "раз. По умолчанию: 500" msgid "Dead Branches" msgstr "Убитые ветки" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" "Разделяемый запятыми список имён веток, которые следует проигнорировать при " "построении списка веток хранилища. По умолчанию: Пусто" msgid "Branch Colors" msgstr "Цвета веток" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" "Разделяемый пробелами список имён веток в виде branch:#XXXXXX. Пробелы и " "двоеточия в именах веток предваряются обратной косой чертой (\\). Тем же " "способом можно добавить некоторые специальные символы, например \\u0040 " "будет означать символ @, а \\n — перевод строки. По умолчанию: Пусто" msgid "Hide Tags" msgstr "Скрывать метки" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" "Разделяемый пробелами список меток, которые не будут отображаться. Полезный " "пример: укажите «qbase qparent qtip», чтобы скрыть стандартные метки, " "вставляемые расширением MQ. По умолчанию: Пусто" msgid "Activate Bookmarks" msgstr "Включить закладки" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

                                                                                    • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
                                                                                    • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
                                                                                    • never: Never show any prompt to " "activate any bookmarks.

                                                                                    Default: prompt" msgstr "" "Выберите, когда TortoiseHg будет запрашивать, активацию закладки при " "обновлении до ревизии, которая имеет одну или несколько закладок." "

                                                                                    • auto: Стараться активировать закладки автоматически. При " "обновлении до ревизии, имеющей одну закладку она будет активирована " "автоматически. Показывать запрос, если в ревизии есть больше чем одна " "закладка.
                                                                                    • prompt: По умолчанию. Показывать запрос при обновлении " "до ревизии, которая имеет одну или несколько закладок.
                                                                                    • never: " "Никогда не показывать запрос для активации закладок.

                                                                                    По умолчанию: " "prompt" msgid "Show Family Line" msgstr "Показывать линии родства" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

                                                                                    Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" "Показывать не прямые зависимости в графе ревизий, когда он отфильтрован по " "наборам ревизий. По умолчанию: Да

                                                                                    Примечание: Вычисление линий " "родства может быть медленным в некоторых случаях. Эта опция будет удалена, " "если как ожидается проблема производительности будет решена." msgid "Use optimized graph layouter" msgstr "Использовать оптимизированную компоновку графа" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

                                                                                    Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" "Использовать альтернативную компоновку графа для больших хранилищ. По " "умолчанию: Нет

                                                                                    Примечание: Эта компоновка устанавливает цвета линий " "с использованием информации о ветках и не отображает наращения, независимо " "от того, являются ли они запрашиваемыми или нет." msgid "" "Name associated with commits. The common format is:
                                                                                    Full Name <" "email@example.com>" msgstr "" "Имя, записываемое при фиксациях. Общеупотребительный формат таков:
                                                                                    Имя " "Фамилия <email@example.com>" msgid "Ask Username" msgstr "Спрашивать имя пользователя" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" "Если имя пользователя не было указано, пользователю будет предложено ввести " "имя пользователя. По умолчанию: Нет" msgid "Summary Line Length" msgstr "Длина строки сводки" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" "Рекомендуемая длина строки в сообщениях фиксации. Будет отмечена красной " "вертикальная чертой. Сочетание CTRL-E переформатирует текст текущего " "параграфа под указанную длину строки. По умолчанию: 80" msgid "Close After Commit" msgstr "Закрыть после фиксации" msgid "Close the commit tool after every successful commit. Default: False" msgstr "" "Закрывать средство фиксации после успешного выполнения. По умолчанию: Нет" msgid "Push After Commit" msgstr "Проталкивать после фиксации" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" "Пытаться протолкнуть на указанный URL или псевдоним пути сразу после удачной " "фиксации. По умолчанию: Без проталкивания" msgid "Auto Commit List" msgstr "Список автоматической фиксации" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" "Разделяемый запятыми список файлов, которые автоматически включаются в " "каждую фиксацию. Предназначено для использования только в настройках " "хранилищах. По умолчанию: Пусто" msgid "Auto Exclude List" msgstr "Список автоматического исключения" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" "Разделяемый запятыми список файлов, отметка с которых снимается " "автоматически при каждом открытии диалогов состояния и фиксации. По " "умолчанию: Пусто" msgid "English Messages" msgstr "Сообщения на английском" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" "Создавать сообщения фиксации на английском языке, даже если переменные среды " "LANGUAGE или LANG установлены на не-английский язык. Эта настройка " "используется в диалогах слияния, установки меток и обращения изменений. По " "умолчанию: Нет" msgid "New Commit Phase" msgstr "Фаза новой фиксации" msgid "The phase of new commits. Default: draft" msgstr "Фаза новых фиксаций. По умолчанию: draft" msgid "Secret MQ Patches" msgstr "Секретные заплатки MQ" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "Делать заплатки MQ секретными (а не черновыми). По умолчанию: Нет" msgid "Check Subrepo Phase" msgstr "Проверять фазу подхранилищ" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" "Проверять фазу текущей ревизии каждого подхранилища. Для значений, отличных " "от «ignore», фаза текущей ревизии каждого подхранилища проверяется перед " "фиксацией родительского хранилища. По умолчанию: follow" msgid "Monitor working
                                                                                    directory changes" msgstr "Отслеживать изменения
                                                                                    рабочего каталога" msgid "" "Select when the working directory status list will be refreshed:
                                                                                    - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
                                                                                    TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
                                                                                    - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
                                                                                    - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
                                                                                    Default: auto" msgstr "" "Выберите, как обновлять информацию о состоянии рабочего каталога:
                                                                                    - " "auto: [по умолчанию] разрешить TortoiseHg самостоятельно " "определять, когда обновлять список состояний рабочего каталога." "
                                                                                    TortoiseHg будет обновлять список состояний при каждом действии, которое " "может изменить рабочий каталог. При этом могут потеряться изменения, " "случившиеся помимо контроля TortoiseHg;
                                                                                    - always: в дополнение " "к автоматическому обновлению, как описано выше, обновлять список состояний " "каждый раз, когда пользователь щёлкает на «ревизии рабочего каталога» или на " "«значке фиксации» на панели задач рабочей среды;
                                                                                    - alwayslocal: то " "же, что «always» но ограничивает обновления локальными " "хранилищами.
                                                                                    По умолчанию: auto" msgid "Confirm adding unknown files" msgstr "Подтверждать добавление неизвестных файлов" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" "Определяет, следует ли TortoiseHg показать диалог подтверждения перед " "добавлением новых файлов в фиксацию. «Да»: будет показан диалог " "подтверждения. «Нет»: выбранные новые файлы будут добавлены в фиксацию без " "диалога подтверждения. По умолчанию: Да" msgid "Confirm deleting files" msgstr "Подтверждать удаление файлов" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" "Определяет, следует ли TortoiseHg показать диалог подтверждения перед " "удалением файлов из фиксации. «Да»: будет показан диалог подтверждения. " "«Нет»: выбранные файлы будут удалены из фиксации без диалога подтверждения. " "По умолчанию: Да" msgid "Sync" msgstr "Синхронизация" msgid "After Pull Operation" msgstr "Операция после затягивания" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" "Операция, которая выполняется непосредственно после успешного затягивания. " "update эквивалентно pull --update, fetch эквивалентно расширению fetch, " "rebase эквивалентно pull --rebase, updateorrebase эквивалентно pull -u --" "rebase. По умолчанию: none" msgid "Default Push" msgstr "По умолчанию проталкивать" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

                                                                                    • all: The default. Push all changes in all " "branches.
                                                                                    • branch: Push all changes in the current branch.
                                                                                    • revision: Push the changes in the current branch up to the current revision.

                                                                                    Default: all" msgstr "" "Выберите ревизии, которые будут проталкиваться по умолчанию, когда вы " "нажимаете кнопку «Протолкнуть».

                                                                                    • all: По умолчанию. " "Проталкивать все изменения из всех веток.
                                                                                    • branch: " "Проталкивать все изменения из текущей ветки.
                                                                                    • revision: " "Проталкивать все изменения из текущей ветки вплоть до текущей " "ревизии.

                                                                                    По умолчанию: all" msgid "Confirm Push" msgstr "Подтверждение проталкивания" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" "Определяет, должен ли TortoiseHg показать диалог подтверждения перед " "проталкиванием наборов изменений.Если, Нет, проталкивание будет произведено " "без диалога подтверждения. По умолчанию: Да" msgid "Target Combo" msgstr "Выпадающий список целей" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

                                                                                    • auto: The default. Show the combo if more than one target " "configured.
                                                                                    • always: Always show the combo.

                                                                                    Default: auto" msgstr "" "Выберете должен ли TortoiseHg показывать выпадающий список целей в панели " "инструментов синхронизации.

                                                                                    • auto: По умолчанию. Показывать " "выпадающий список, если настроено более одной цели.
                                                                                    • always: Всегда " "показывать выпадающий список.

                                                                                    По умолчанию: auto" msgid "SSH Command" msgstr "Команда SSH" msgid "" "Command to use for SSH connections.

                                                                                    Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" "Команда используемая для SSH подключения.

                                                                                    По умолчанию: «ssh» или " "«TortoisePlink.exe -ssh -2» (Windows)" msgid "Subrepository Features:" msgstr "Возможности подхранилищ:" msgid "Allow Hg Subrepos" msgstr "Разрешать подхранилища Hg" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" "Разрешены ли подхранилища Mercurial в рабочем каталоге. По умолчанию: Да" msgid "Allow Git Subrepos" msgstr "Разрешать подхранилища Git" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

                                                                                    See the security note before enabling Git " "subrepos." msgstr "" "Разрешены ли подхранилища Git в рабочем каталоге. По умолчанию: Нет

                                                                                    Ознакомьтесь с примечанием по безопасности, прежде чем " "включить подхранилища Git." msgid "Allow SVN Subrepos" msgstr "Разрешать подхранилища SVN" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

                                                                                    See the security note before enabling " "Subversion subrepos." msgstr "" "Разрешены ли подхранилища Subversion в рабочем каталоге. По умолчанию: " "Нет

                                                                                    Ознакомьтесь с примечанием по безопасности, прежде " "чем включить подхранилища Subversion." msgid "Server" msgstr "Сервер" msgid "Repository Details:" msgstr "Подробности хранилища:" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" "Имя хранилища для веб-интерфейса, будет использовано также как короткое имя " "в TortoiseHg. По умолчанию используется название рабочего каталога." msgid "Encoding" msgstr "Кодировка" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" "Кодировка файлов в хранилище, используемая в веб-интерфейсе и TortoiseHg." msgid "'Publishing' repository" msgstr "«Публичное» хранилище" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" "Управляет поведением черновой фазы (draft), при работе в качестве сервера. " "Когда, Да, в проталкиваемых наборах изменений фаза становится публичной " "(public) и на клиенте и на сервере, а при затягивании или клонировании " "наборов изменений становится публичной (public) на клиенте. По умолчанию: Да" msgid "Web Server:" msgstr "Веб-сервер:" msgid "Textual description of the repository's purpose or contents." msgstr "Текстовое описание назначения или содержимого хранилища" msgid "Contact" msgstr "Контакт" msgid "Name or email address of the person in charge of the repository." msgstr "Имя или почтовый адрес отвечающего за хранилище." msgid "Style" msgstr "Оформление" msgid "Which template map style to use" msgstr "Какой шаблон оформления использовать" msgid "Archive Formats" msgstr "Форматы архивов" msgid "Comma separated list of archive formats allowed for downloading" msgstr "" "Разделяемый запятыми список форматов архивов, разрешенных для скачивания" msgid "Port" msgstr "Порт" msgid "Port to listen on" msgstr "Порт который слушать" msgid "Push Requires SSL" msgstr "Проталкивание требует SSL" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" "Требуется ли для входящих проталкиваний использовать SSL для предотвращения " "перехвата пароля." msgid "Stripes" msgstr "Строчные полоски" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" "Через сколько строк должны появляться «полоски зебры» при многострочном " "выводе. По умолчанию 1; установите в 0 для отключения." msgid "Max Files" msgstr "Максимум файлов" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "" "Максимальное число файлов, перечисляемых для набора изменений. По умолчанию: " "10" msgid "Max Changes" msgstr "Максимум изменений" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "" "Максимальное число изменений, перечисляемых в журнале изменений. По " "умолчанию: 10" msgid "Allow Push" msgstr "Разрешать проталкивание" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" "Разрешено ли проталкивать в хранилище. Если пусто или не указано, то " "проталкивание не разрешено. При специальном значении «*» — любой удалённый " "пользователь может проталкивать, включая непрошедших аутентификацию. В ином " "случае — удалённый пользователь должен пройти аутентификацию и его имя " "должно присутствовать в этом списке (разделяемом пробелами или «,»). Список " "разрешений на проталкивание рассматривается после списка запрещений на " "проталкивание." msgid "Deny Push" msgstr "Запрещать проталкивание" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" "Запрещено ли проталкивать в хранилище. Если пусто или не указано, то " "проталкивание не запрещено. При специальном значении «*» — всем удалённым " "пользователям запрещено проталкивать. В ином случае — проталкивание " "запрещено пользователям, не прошедшим аутентификацию, а также тем, кто " "прошел аутентификацию и присутствует в данном списке (разделяемом пробелами " "или «,»). Список запрещений на проталкивание рассматривается до списка " "разрешений на проталкивание." msgid "Proxy" msgstr "Прокси" msgid "Host" msgstr "Хост" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "" "Имя хоста и (необязательно) порт прокси сервера, например «myproxy:8000»" msgid "Bypass List" msgstr "Список исключений" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "" "Необязателен. Разделяемый запятыми список имён хостов, для которых не нужен " "прокси" msgid "Optional. User name to authenticate with at the proxy server" msgstr "Необязательно. Имя пользователя для аутентификации на прокси сервере" msgid "Optional. Password to authenticate with at the proxy server" msgstr "Необязателен. Пароль для аутентификации на прокси сервере" msgid "From" msgstr "Отправитель" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "" "Почтовый адрес, который будет использоваться в заголовке «From» для SMTP " "конверта" msgid "To" msgstr "Получатель" msgid "Comma-separated list of recipient email addresses" msgstr "Разделяемый запятыми список почтовых адресов получателей" msgid "Cc" msgstr "Копии" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "Разделяемый запятыми список почтовых адресов получателей копий" msgid "Bcc" msgstr "Скрытые копии" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "Разделяемый запятыми список почтовых адресов получателей скрытых копий" msgid "method" msgstr "Метод" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" "Необязателен. Метод используемый для отправки почтового сообщения. Если " "значение равно «smtp», то используется SMTP (настроенный ниже). Иначе, " "используйте имя запускаемой программы, которая действует как sendmail " "(принимает параметр «-f» для отправителя, список получателей в командной " "строке, сообщение в stdin). Обычно достаточно установить это в «sendmail» " "или «/usr/sbin/sendmail» для использования sendmail для отправки сообщений." msgid "SMTP Host" msgstr "SMTP хост" msgid "Host name of mail server" msgstr "Имя хоста или почтового сервера" msgid "SMTP Port" msgstr "SMTP порт" msgid "Port to connect to on mail server. Default: 25" msgstr "Порт для соединения с почтовым сервером. По умолчанию: 25" msgid "SMTP TLS" msgstr "SMTP TLS" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "" "Метод для включения TLS при подключении к почтовому серверу. По умолчанию: " "none" msgid "SMTP Username" msgstr "SMTP имя пользователя" msgid "Username to authenticate to mail server with" msgstr "Имя пользователя для аутентификации на почтовом сервере" msgid "SMTP Password" msgstr "SMTP пароль" msgid "Password to authenticate to mail server with" msgstr "Пароль для аутентификации на почтовом сервере" msgid "Local Hostname" msgstr "Имя локального хоста" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "" "Имя хоста, используемого отправителем для идентификации себя на почтовом " "сервере" msgid "Diff and Annotate" msgstr "Сравнение и аннотирование" msgid "Patch EOL" msgstr "Концы строк в заплатках" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" "Стандартизировать переносы строк к LF или CRLF при применении заплатки. " "Strict — без стандартизации. Auto — автоопределение для каждого файла " "(рекомендуется). По умолчанию: strict" msgid "Git Format" msgstr "Формат Git" msgid "Use git extended diff header format. Default: False" msgstr "" "Использовать расширенный git формат для заголовков различий. По умолчанию: " "Нет" msgid "MQ Git Format" msgstr "Формат MQ Git" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" "Если выбрано «auto», то mq автоматически использует git заплатки, когда " "требуется не потерять изменения в правах файла, записях о копиях или " "бинарных файлах. Если выбрано «keep», то mq будет соблюдать секцию [diff] " "при сохранении существующих git заплаток при qrefresh. Если выбрано «yes» " "или «no», то mq перезаписывает секцию [diff] и всегда создаёт git заплатки " "или обычные заплатки, что может привести к потере данных во втором случае. " "По умолчанию: auto" msgid "No Dates" msgstr "Без дат" msgid "Do not include modification dates in diff headers. Default: False" msgstr "Не включать дату изменения в заголовок различий. По умолчанию: Нет" msgid "Show Function" msgstr "Отображать функцию" msgid "Show which function each change is in. Default: False" msgstr "" "Отображать, в какой функции находится каждое изменение. По умолчанию: Нет" msgid "Ignore White Space" msgstr "Игнорировать пробелы" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "" "Игнорировать пробелы при сравнении строк при просмотре сравнений. По " "умолчанию: Нет" msgid "Ignore WS Amount" msgstr "Игнорировать изменение
                                                                                    количества пробелов" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "" "Игнорировать изменения в количестве пробелов при просмотре сравнений. По " "умолчанию: Нет" msgid "Ignore Blank Lines" msgstr "Игнорировать пустые строки" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "" "Игнорировать изменения, все строки которых, являются пустыми в сравнении. По " "умолчанию: Нет" msgid "Annotate:" msgstr "Аннотирование:" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" "Игнорировать пробелы при сравнении строк при просмотре аннотирования. По " "умолчанию: Нет" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" "Игнорировать изменения в количестве пробелов при просмотре аннотирования. По " "умолчанию: Нет" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "" "Игнорировать изменения, все строки которых, являются пустыми при просмотре " "аннотирования. По умолчанию: Нет" msgid "Fonts" msgstr "Шрифты" msgid "Message Font" msgstr "Шрифт сообщений" msgid "Font used to display commit messages. Default: monospace 10" msgstr "Шрифт для отображения сообщений фиксации. По умолчанию: monospace 10" msgid "Diff Font" msgstr "Шрифт различий" msgid "Font used to display text differences. Default: monospace 10" msgstr "Шрифт для отображения текстовых различий. По умолчанию: monospace 10" msgid "ChangeLog Font" msgstr "Шрифт журнала изменений" msgid "Font used to display changelog data. Default: monospace 10" msgstr "Шрифт для отображения журнала изменений. По умолчанию: monospace 10" msgid "Output Font" msgstr "Шрифт вывода" msgid "Font used to display output messages. Default: sans 8" msgstr "Шрифт для отображения сообщений вывода. По умолчанию: sans 8" msgid "Extensions" msgstr "Расширения" msgid "Tools" msgstr "Инструменты" msgid "Hooks" msgstr "Ловушки" msgid "Issue Tracking" msgstr "Отслеживание проблем" msgid "Issue Regex" msgstr "Регулярное выражение для проблемы" msgid "Defines the regex to match when picking up issue numbers." msgstr "" "Задаёт регулярное выражение, по совпадению с которым в тексте выявляются " "номера проблем." msgid "Issue Link" msgstr "Ссылка на проблему" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" "Задаёт команду, выполняемую при обнаружении номера проблемы. Регулярное " "выражение, обнаруживающее номер проблемы, может содержать группы, на которые " "можно ссылаться при помощи лексем {n} (где n — неотрицательное целое). {0} " "ссылается на всю строку, совпавшую с регулярным выражением, {1} ссылается на " "первую группу и т.д. Если в ссылке на проблему не будет никаких лексем {n}, " "то вся совпавшая строка будет добавлена в конец ссылки." msgid "Inline Tags" msgstr "Внутристрочные метки" msgid "Show tags at start of commit message." msgstr "Показывать метки в начале сообщения фиксации" msgid "Mandatory Issue Reference" msgstr "Требовать указания ссылки на проблему" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" "При фиксации требовать, чтобы ссылка на проблему была указана. Если " "включено, то регулярное выражение, настроенное в «Регулярное выражение для " "проблемы», должно найти соответствие в сообщении фиксации." msgid "Issue Tracker Plugin" msgstr "Плагин системы отслеживания проблем" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" "Настроить плагин доступа к системе отслеживания проблем, COM-объект с " "интерфейсом IBugTraqProvider или IBugTraqProvider2." msgid "Configure Issue Tracker" msgstr "Настроить систему отслеживания проблем" msgid "Configure the selected COM Bug Tracker plugin." msgstr "Настроить выбранный плагин доступа к системе отслеживания проблем" msgid "Issue Tracker Trigger" msgstr "Триггер системы отслеживания ошибок" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

                                                                                    • never: Do not update the Issue Tracker " "state automatically.
                                                                                    • commit: Update the Issue Tracker state after " "a successful commit.

                                                                                    Default: never" msgstr "" "Определяет, когда состояние системы отслеживания проблем будет обновляться в " "TortoiseHg. Допустимые значения параметров:

                                                                                    • never (никогда): " "Не обновлять состояние системы отслеживания проблем автоматически." "
                                                                                    • commit (фиксация): Обновлять состояние системы отслеживания " "проблем после успешной фиксации.

                                                                                    По умолчанию: never" msgid "Changeset Link" msgstr "Ссылка на набор изменений" msgid "" "A \"template string\" that, when set, turns the revision number and short " "hashes that are shown on the revision panels into links.
                                                                                    The \"template " "string\" uses a \"mercurial template\"-like syntax that currently accepts " "two template expressions:

                                                                                    • {node|short} : replaced by the 12 digit " "revision id (note that {node} on its own is currently unsupported)." "
                                                                                    • {rev} : replaced by the revision number.
                                                                                    For example, in order to " "link to bitbucket commit pages you can set this to:
                                                                                    https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}" msgstr "" "«Шаблон строки», в который, когда он установлен, в виде ссылок подставляются " "номер ревизии и короткий хэш, которые показаны на панелях ревизии." "
                                                                                    «Шаблон строки» использует синтаксис, подобный «Mercurial шаблонам», " "который в настоящее время понимает два шаблонных выражения:
                                                                                    • {node|" "short} : заменяется на 12 цифр идентификатора ревизии (обратите внимание, " "что сам по себе {node} в настоящее время не поддерживается).
                                                                                    • {rev} : " "заменяется на номер ревизии.
                                                                                    Например, для того, чтобы сослаться на " "страницы фиксации BitBucket, можете задать:
                                                                                    https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "" "Путь к примерам работы рецензионной коллегии «http://demo.reviewboard.org»" msgid "User name to authenticate with review board" msgstr "Имя пользователя для аутентификации в рецензионной коллегии" msgid "Password to authenticate with review board" msgstr "Пароль для аутентификации в рецензионной коллегии" msgid "Server Repository ID" msgstr "ID серверного хранилища" msgid "The default repository id for this repo on the review board server" msgstr "" "Идентификатор хранилища, используемый этим хранилищем по умолчанию на " "сервере рецензионной коллегии" msgid "Target Groups" msgstr "Целевые группы" msgid "A comma separated list of target groups" msgstr "Разделяемый запятыми список целевых групп" msgid "Target People" msgstr "Целевые личности" msgid "A comma separated list of target people" msgstr "Разделяемый запятыми список целевых личностей" msgid "Kiln Bfiles" msgstr "Kiln Б-файлы" msgid "Patterns" msgstr "Шаблоны" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" "Файлы с именами, совпадающими с указанными шаблонами, будут автоматически " "добавляться как Б-файлы" msgid "Size" msgstr "Размер" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" "Файлы указанного и большего размера (в мегабайтах) будут автоматически " "добавляться как Б-файлы" msgid "System Cache" msgstr "Системный кэш" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "Путь к каталогу, где будет находиться общесистемный кэш Б-файлов" msgid "Simplelock" msgstr "Simplelock" msgid "Lock Clone" msgstr "Клон хранилища блокировок" msgid "" "Location of local clone of organizational lock repository.

                                                                                    This repository " "must contain a \"locked\" text file" msgstr "" "Местоположение локального клона хранилища для организации блокировок.

                                                                                    Это " "хранилище должно содержать текстовый файл «locked»" msgid "Largefiles" msgstr "Большие-файлы" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" "Файлы с именами, совпадающими с указанными шаблонами, будут автоматически " "добавляться как большие-файлы" msgid "Minimum Size" msgstr "Минимальный размер" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" "Файлы указанного и большего размера (в мегабайтах) будут автоматически " "добавляться как большие-файлы" msgid "User Cache" msgstr "Кэш пользователя" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" "Путь к каталогу, в котором будет сохраняться пользовательский кэш больших " "файлов" msgid "Projrc" msgstr "Projrc" msgid "Require confirmation" msgstr "Требовать подтверждения" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

                                                                                    • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
                                                                                    • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
                                                                                    • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
                                                                                    " msgstr "" "В каких случаях спрашивать пользователя об обновлении локального файла " "конфигурации «projrc» при изменении удалённого файла projrc. Возможные " "значения:
                                                                                    • always: [по умолчанию] Всегда показывать " "диалог подтверждения перед обновлением локального файла .hg/projrc." "
                                                                                    • first: Показывать диалог подтверждения при клонировании хранилища " "или при первом обнаружении удалённого файла projrc.
                                                                                    • never: " "Обновлять локальный файл .hg/projrc автоматически, без диалога подтверждения." "
                                                                                    " msgid "Servers" msgstr "Серверы" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" "Список серверов, с которых нужно затягивать файлы конфигурации «projrc». " "Установите значение «*», чтобы затягивать со всех серверов. Установите " "значение «default», чтобы затягивать из пути синхронизации по умолчанию. По " "умолчанию — не затягивать ни с каких серверов." msgid "Include" msgstr "Включить" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" "Список настроек, которые проталкивать из файла конфигурации проекта. По " "умолчанию — ни включать никакие настройки." msgid "Exclude" msgstr "Исключить" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" "Список настроек, которые НЕ проталкивать из файла конфигурации проекта. По " "умолчанию — не исключать никакие из включаемых настроек." msgid "Update on incoming" msgstr "Обновление из входящих" msgid "" "Let the user update the projrc on incoming:
                                                                                    • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
                                                                                    • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
                                                                                    • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                                                                                      Default: never" msgstr "" "Разрешить пользователю обновлять projrc из входящих:

                                                                                      • never: " "[по умолчанию] Показывать, изменился ли удалённый файл projrc, но не " "обновлять (и не выводить запрос на обновление) локальный файл projrc." "
                                                                                      • prompt: Наблюдать за изменениями в файле projrc. Если есть " "изменения, _всегда_ показывать запрос на подтверждение, спрашивая " "пользователя, хочет ли он обновить свой локальный файл projrc.
                                                                                      • auto: Наблюдать за изменениями в файле projrc. Использовать значение ключа " "конфигурации «projrc.confirm», чтобы определить, требуется ли показывать " "диалоговое окно подтверждения или нет перед обновлением локального файла " "projrc.

                                                                                      По умолчанию: never" msgid "GnuPG" msgstr "GnuPG" msgid "Specify the path to GPG. Default: gpg" msgstr "Задайте путь к GPG. По умолчанию: gpg" msgid "Key ID" msgstr "ID ключа" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "ID ключа GPG связанный с пользователем. По умолчанию: Пусто" msgid "TortoiseHg Settings" msgstr "Настройки TortoiseHg" msgid "Iniparse package not found" msgstr "Пакет iniparse не найден" msgid "Can't change settings without iniparse package - view is readonly." msgstr "" "Невозможно изменить настройки без пакета iniparse — просмотр только для " "чтения" #, python-format msgid "%s's global settings" msgstr "Глобальные настройки для %s" msgid "No repository found" msgstr "Хранилище не найдено" msgid "no repo at " msgstr "хранилища нет в " #, python-format msgid "%s project settings (.hg/projrc)" msgstr "параметры проекта %s (.hg/projrc)" #, python-format msgid "%s repository settings" msgstr "Настройки хранилища %s" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "" "Перезапустите все приложения TortoiseHg, чтобы следующие настройки вступили " "в действие:" msgid "Apply changes before exit?" msgstr "Применить изменения перед выходом?" msgid "&No (discard changes)" msgstr "&Нет (отбросить изменения)" msgid "Reload" msgstr "Загрузить заново" msgid "Settings File:" msgstr "Файл настроек:" msgid "Confirm Save" msgstr "Подтвердите сохранение" msgid "Save changes before editing?" msgstr "Сохранить изменения перед редактированием?" msgid "&Save" msgstr "Сохранить" msgid "Confirm Reload" msgstr "Подтвердить загрузку заново" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" "Несохранённые изменения будут потеряны.\n" "Загрузить заново?" msgid "Unable to create a Mercurial.ini file" msgstr "Не удалось создать файл Mercurial.ini" msgid "Insufficient access rights, reverting to read-only mode." msgstr "Недостаточно прав доступа, возвращение к режиму только для чтения." msgid "Workbench Log Columns" msgstr "Колонки журнала рабочей среды" msgid "Revision details" msgstr "Подробности ревизии" msgid "Console log" msgstr "Журнал консоли" msgid "Patch Branch" msgstr "Ветка заплатки" #, python-format msgid "%s " msgstr "%s <входящий>" #, python-format msgid "Found %d incoming changesets" msgstr "Найдено %d входящих наборов изменений" msgid "Pull" msgstr "Затянуть" msgid "Pull incoming changesets into your repository" msgstr "Затянуть входящие наборы изменений в ваше хранилище" msgid "Reject incoming changesets" msgstr "Отклонить входящие наборы изменений" #, python-format msgid "Push current branch (%s)" msgstr "Протолкнуть текущую ветку (%s)" #, python-format msgid "Push up to current revision (#%d)" msgstr "Протолкнуть до текущей ревизии (#%d)" #, python-format msgid "Push up to revision #%d" msgstr "Протолкнуть до ревизии #%d" msgid "Push all" msgstr "Протолкнуть все" msgid "no outgoing changesets" msgstr "нет исходящих наборов изменений" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "нет исходящих наборов изменений в текущей ветке (%s) / всего %d" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "нет исходящих наборов изменений до текущей ревизии (#%d) / всего %d" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "нет исходящих наборов изменений до ревизии #%d / всего %d" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "%d исходящих наборов изменений в текущей ветке (%s) / всего %d" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "%d исходящих наборов изменений до текущей ревизии (#%d) / всего %d" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "%d исходящих наборов изменений до ревизии #%d / всего %d" msgid "Nothing to push" msgstr "Нечего проталкивать" msgid "No revision found" msgstr "Ревизия не найдена" #, python-format msgid "%s - verify repository" msgstr "%s — проверка хранилища" #, python-format msgid "%s - recover repository" msgstr "%s — восстановление хранилища" msgid "No transaction available" msgstr "Нет транзакции" msgid "There is no rollback transaction available" msgstr "Нет транзакции, которую можно откатить" msgid "Undo last commit?" msgstr "Отменить последнюю фиксацию?" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "Отменить последнюю фиксацию (%d), сохранив изменения в файлах?" msgid "Undo last transaction?" msgstr "Отменить последнюю транзакцию?" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "Откатить к ревизии %d (отменив %s)?" msgid "Unable to determine working copy revision\n" msgstr "Не могу определить ревизию рабочей копии\n" msgid "Remove current working revision?" msgstr "Изъять текущую рабочую ревизию?" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" "Ваша текущая рабочая ревизия (%d) будет удалена этим откатом, оставив " "незафиксированные изменения.\n" " Продолжить?" msgid "Tab cannot exit" msgstr "Вкладка не может быть закрыта" msgid "Custom Tools" msgstr "Дополнительные инструменты" msgid "Pus&h" msgstr "&Протолкнуть" msgid "Push to &Here" msgstr "Протолкнуть до &сюда" msgid "Push Selected &Branch" msgstr "Протолкнуть выбранную &ветку" msgid "Push &All" msgstr "Протолкнуть в&се" msgid "&Update..." msgstr "&Обновить..." msgid "Diff to &Local" msgstr "Сравнить с &локальным" msgid "Bro&wse at Revision" msgstr "&Обзор в ревизии" msgid "&Merge with Local..." msgstr "&Слить с локальной копией" msgid "&Tag..." msgstr "&Метка..." msgid "Boo&kmark..." msgstr "&Закладка..." msgid "Top&ic..." msgstr "Темат&ическая ветка" msgid "Sig&n..." msgstr "&Подписать&..." msgid "&Backout..." msgstr "&Обратить изменения..." msgid "Revert &All Files..." msgstr "Отменить изменения во &всех файлах..." msgid "Copy &Hash" msgstr "Копировать &хэш" msgid "E&xport" msgstr "&Экспорт" msgid "E&xport Patch..." msgstr "&Экспорт заплатки..." msgid "&Email Patch..." msgstr "&Отправить заплатку..." msgid "&Archive..." msgstr "&Архивировать..." msgid "&Bundle Rev and Descendants..." msgstr "&Комплект ревизии и ее потомков..." msgid "&Copy Patch" msgstr "&Копировать заплатку" msgid "Change &Phase to" msgstr "Изменить &фазу на" msgid "&Graft to Local..." msgstr "&Нарастить к локальной копии" msgid "Modi&fy History" msgstr "&Изменить историю" msgid "&Unapply Patch" msgstr "&Отпороть заплатку" msgid "Import to &MQ" msgstr "Импортировать в MQ" msgid "&Finish Patch" msgstr "&Завершить заплатку" msgid "Re&name Patch..." msgstr "Пере&именовать заплатку..." msgid "MQ &Options" msgstr "&Настройки MQ" msgid "&Rebase..." msgstr "&Перебазировать..." msgid "&Prune..." msgstr "&Отсечь..." msgid "&Strip..." msgstr "&Урезать..." msgid "Post to Re&view Board..." msgstr "Отправить в рецензионную коллегию..." msgid "Post to Phabricator..." msgstr "Отправить в Phabricator..." msgid "&Remote Update..." msgstr "&Обновить удалённо..." msgid "Write diff file" msgstr "Записать список различий" msgid "Unable to write diff file" msgstr "Не удаётся записать список различий" msgid "Unable to compress history" msgstr "Невозможно сжать историю" msgid "Selected changeset pair not related" msgstr "Два выбранных набора изменений не связаны" msgid "Visual Diff..." msgstr "Визуальное сравнение..." msgid "Export Diff..." msgstr "Экспортировать список различий..." msgid "Export Selected..." msgstr "Экспортировать выбранное..." msgid "Email Selected..." msgstr "Отправить выбранное..." msgid "Copy Selected as Patch" msgstr "Копировать выбранное как заплатку" msgid "Archive DAG Range..." msgstr "Архивировать часть графа..." msgid "Export DAG Range..." msgstr "Экспортировать часть графа..." msgid "Email DAG Range..." msgstr "Отправить часть графа..." msgid "Bundle DAG Range..." msgstr "Укомплектовать часть графа..." msgid "Bisect - Good, Bad..." msgstr "Бисекция — хорошая, плохая..." msgid "Bisect - Bad, Good..." msgstr "Бисекция — плохая, хорошая..." msgid "Compress History..." msgstr "Сжать историю..." msgid "Rebase..." msgstr "Перебазировать..." msgid "Goto common ancestor" msgstr "Перейти к общему предку" msgid "Graft Selected to local..." msgstr "Нарастить выбранные к локальной копии" msgid "&Prune Selected..." msgstr "&Отсечь выделенное..." msgid "Post Selected to Review Board..." msgstr "Отправить выбранное в рецензионную коллегию" msgid "Post Selected to Phabricator..." msgstr "Отправить выбранное в Phabricator..." msgid "Apply patch" msgstr "Применить заплатку" msgid "Apply onto original parent" msgstr "Применить к исходному родителю" msgid "Apply only this patch" msgstr "Применить только эту заплатку" msgid "Fold patches..." msgstr "Подшить заплатки..." msgid "Delete patches..." msgstr "Уничтожить заплатки..." msgid "Rename patch..." msgstr "Переименовать заплатку..." msgid "Pull to here..." msgstr "Затянуть сюда..." msgid "Visual diff..." msgstr "Визуальное сравнение..." msgid "Export patch" msgstr "Экспортировать заплатку" msgid "Patch Files (*.patch)" msgstr "Файлы заплаток (*.patch)" msgid "Cannot export revision" msgstr "Не удалось экспортировать ревизию" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" "Не удалось экспортировать ревизию %s в файл с именем:\n" "\n" "%s\n" msgid "There is already an existing folder with that same name." msgstr "Папка с таким именем уже существует." msgid "Replace" msgstr "Заменить" msgid "Append" msgstr "Добавить" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" "Файлы заплаток уже существуют для %d ревизий (%s) в выбранном местоположении " "(%s).\n" "\n" msgid "What do you want to do?\n" msgstr "Что следует сделать?\n" msgid "Replace the existing patch files.\n" msgstr "Заменить существующие файлы заплаток.\n" msgid "Append the changes to the existing patch files.\n" msgstr "Добавить изменения в существующие файлы заплаток.\n" msgid "Abort the export operation.\n" msgstr "Прервать операцию экспортирования.\n" msgid "Patch files already exist" msgstr "Файлы заплаток уже существуют" msgid "Patch exported" msgstr "Заплатка экспортирована" #, python-format msgid "" "Revision #%d (%s) was exported to:

                                                                                      %s%s%s" msgstr "" "Ревизия #%d (%s) была экспортирована в:

                                                                                      %s%s%s" msgid "Patches exported" msgstr "Экспортированные заплатки" #, python-format msgid "%d patches were exported to:

                                                                                      %s" msgstr "%d заплаток экспортировано в:

                                                                                      %s" msgid "Confirm Revert" msgstr "Подтвердите возвращение" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

                                                                                      Are you sure you want to use revert?

                                                                                      (use " "update to checkout another revision)" msgstr "" "Возвращение всех файлов вызывает отмену всех изменений и оставляет " "затронутые файлы в изменённом состоянии.

                                                                                      Действительно ли следует " "использовать возвращение?

                                                                                      (используйте обновление, чтобы перейти к " "другой ревизии)" msgid "Filter b&y" msgstr "&Фильтр по" msgid "&Ancestors and Descendants" msgstr "&Предкам и потомкам" msgid "A&uthor" msgstr "&Автору" msgid "&Branch" msgstr "&Ветке" msgid "&More Options..." msgstr "&Больше настроек..." msgid "Unable to merge" msgstr "Слияние невозможно" msgid "Please select a revision to merge." msgstr "Пожалуйста, выберите ревизию для слияния." #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "Не удалось слить с псевдоревизией %r." msgid "You cannot merge a revision with itself" msgstr "Вы не можете слить ревизию саму с собой" msgid "Unable to backout" msgstr "Невозможно провести обращение изменений" msgid "Write bundle" msgstr "Записать комплект" msgid "Backwards phase change requested" msgstr "Запрошено обратное изменение фазы" msgid "Do you really want to make this revision secret?" msgstr "Сделать эту ревизию секретной (secret)?" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" "Сделать «черновую (draft)» ревизию «секретной (secret)», как " "правило, безопасная операция.\n" "\n" "Однако есть несколько предостережений:\n" "\n" "- «Секретные (secret)» ревизии не проталкиваются. Это может вызвать у вас " "проблемы, если вы\n" "сошлётесь на секретную ревизию подхранилища.\n" "\n" "- Если вы затянули эту ревизию из не публичного сервера , то она может быть\n" "перемещена обратно в «черновую (draft)», если вы затяните снова из " "этого сервера.\n" "\n" "Будьте осторожны!" msgid "&Make secret" msgstr "&Сделать секретной" msgid "&Cancel" msgstr "&Отмена" msgid "Do you really want to force a backwards phase transition?" msgstr "Принудительно сменить фазу в обратном направлении?" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" "Вы собираетесь передвинуть фазу ревизии %d назад,\n" "из «%s» в «%s».\n" "\n" "Имейте в виду, что «%s» имеет уровень меньше, чем «%s».\n" "\n" "Передвигать фазу назад не рекомендуется.\n" "Например, вы можете получить несколько головных\n" "ревизий, если измените фазу ревизии, которую вы\n" "уже протолкнули на сервер.\n" "\n" "Будьте осторожны!" msgid "&Force" msgstr "П&ринудительно" msgid "Cannot import selected revision" msgstr "Не удалось импортировать выбранную ревизию" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" "Выбранная ревизия (%d) не может быть импортирована, потому что она является " "потомком qparent (%d)" msgid "Invalid command" msgstr "Неверная команда" msgid "The selected command is empty" msgstr "Выбранная команда пуста" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" "Возвращено следующее сообщение об ошибке:\n" "\n" "%s" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" "\n" "\n" "Проверьте правильность этой команды «thg»." msgid "Failed to execute custom TortoiseHg command" msgstr "Не удалось выполнить заданную TortoiseHg команду" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "Команда «%s» не выполнена (код %d)." msgid "Failed to execute custom command" msgstr "Ошибка выполнения заданной команды" #, python-format msgid "The command \"%s\" could not be executed." msgstr "Команду «%s» нельзя выполнить." #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" "Возвращено следующее сообщение об ошибке:\n" "\n" "«%s»\n" "\n" "Проверьте, что это правильное приложение и путь к нему" msgid "&Edit Toolbar" msgstr "&Главная" msgid "&Refresh" msgstr "Об&новить" msgid "&Filter Toolbar" msgstr "Панель &фильтра" #, python-format msgid "TortoiseHg: %s" msgstr "TortoiseHg: %s" msgid "S&tatus Bar" msgstr "&Строка состояния" #, python-format msgid "Revert - %s" msgstr "Вернуть — %s" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "Вернуть %s до его содержимого в следующей ревизии?" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "Вернуть %d файлов до их содержимого в следующей ревизии?" msgid "Revert all files to this revision" msgstr "Вернуть все файлы к этой ревизии" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "первый родитель ревизии %d (т.е. ревизия %d)" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "второй родитель ревизии %d (т.е. ревизия %d)" msgid "null revision (i.e. remove file(s))" msgstr "не существующая ревизия (т.е. удалить файл(ы))" #, python-format msgid "Resolve Conflicts - %s" msgstr "Улаживание конфликтов — %s" msgid "Local revision information" msgstr "Информация о локальной ревизии" msgid "Other revision information" msgstr "Информация о «другой» ревизии" msgid "Unresolved conflicts" msgstr "Неулаженные конфликты" msgid "Mercurial Re&solve" msgstr "&Уладить Mercurial-ом" msgid "Attempt automatic (trivial) merge" msgstr "Попробовать автоматический (простейший) способ слияния" msgid "Tool &Resolve" msgstr "Уладить &средством" msgid "Merge using selected merge tool" msgstr "Уладить, используя выбранное средство слияния" msgid "&Take Local" msgstr "Взять &локальный" msgid "Accept the local file version (yours)" msgstr "Принять локальную версию файла (вашу)" msgid "Take &Other" msgstr "Взять &другой" msgid "Accept the other file version (theirs)" msgstr "Принять другую версию файла (их)" msgid "&Mark as Resolved" msgstr "Отметить как &улаженный" msgid "Mark this file as resolved" msgstr "Отметить этот файл как улаженный" msgid "Diff &Local to Ancestor" msgstr "Сравнить локальную с предком" msgid "&Diff Other to Ancestor" msgstr "Сравнить другую с предком" msgid "Resolved conflicts" msgstr "Улаженные конфликты" msgid "&Edit File" msgstr "&Править файл" msgid "Edit resolved file" msgstr "Править улаженный файл" msgid "3-&Way Diff" msgstr "Трёхстороннее сравнение" msgid "Visual three-way diff" msgstr "Визуальное трёхстороннее сравнение" msgid "Visual diff between resolved file and first parent" msgstr "Визуальное сравнение улаженного файла с первым родителем" msgid "&Diff to Other" msgstr "Сравнить с другой" msgid "Visual diff between resolved file and second parent" msgstr "Визуальное сравнение улаженного файла со вторым родителем" msgid "Mark as &Unresolved" msgstr "Отметить как &не улаженный" msgid "Mark this file as unresolved" msgstr "Отметить этот файл как неулаженный" msgid "Detected merge/diff tools:" msgstr "Обнаруженные средства сравнения/слияния:" msgid "Command output" msgstr "Вывод команды" msgid "Unable to show subrepository files" msgstr "Не удалось показать файлы подхранилища" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" "Визуальное сравнение не поддерживается на подхранилищах. Они не будут " "показаны." msgid "There are merge conflicts to be resolved" msgstr "Обнаружены конфликты слияния, нужно уладить" msgid "All conflicts are resolved." msgstr "Все конфликты улажены." msgid "There are no conflicting file merges." msgstr "Нет конфликтующих файлов." msgid "Exit without finishing resolve?" msgstr "Выйти, не завершив улаживание?" msgid "Unresolved conflicts remain. Are you sure?" msgstr "Остались ещё неулаженные конфликты. Вы уверены?" msgid "E&xit" msgstr "В&ыход" msgid "Path" msgstr "Путь" msgid "Ext" msgstr "Расш" msgid "" msgstr "<по умолчанию>" msgid "Unicode" msgstr "Юникод" msgid "Western Europe" msgstr "Западноевропейская" msgid "Unified Chinese" msgstr "Унифицированный Китайский" msgid "Traditional Chinese" msgstr "Китайская (традиционная)" msgid "Korean" msgstr "Корейская" msgid "Japanese" msgstr "Японская" msgid "Thai" msgstr "Тайская" msgid "Central and Eastern Europe" msgstr "Центрально- и восточноевропейская" msgid "Cyrillic" msgstr "Кириллическая" msgid "Russian" msgstr "Русская" msgid "Ukrainian" msgstr "Украинская" msgid "Greek" msgstr "Греческая" msgid "Turkish" msgstr "Турецкая" msgid "Arabic" msgstr "Арабская" msgid "Hebrew" msgstr "Иврит" msgid "Vietnamese" msgstr "Вьетнамская" msgid "Baltic" msgstr "Прибалтийская" msgid "Southern Europe" msgstr "Южноевропейская" msgid "Nordic" msgstr "Скандинавская" msgid "Celtic" msgstr "Кельтская" msgid "South-Eastern Europe" msgstr "Юговосточноевропейская" msgid "$FILE_ENCODINGS" msgstr "utf-8,cp1251,koi8-r,iso8859-5" msgid "Checkmark files to add" msgstr "Отметьте файлы для добавления" msgid "Checkmark files to forget" msgstr "Отметьте файлы для забывания" msgid "Forget" msgstr "Забыть" msgid "Checkmark files to revert" msgstr "Отметьте файлы для возвращения" msgid "Revert" msgstr "Вернуть" msgid "Checkmark files to remove" msgstr "Отметьте файлы для удаления" msgid "Remove" msgstr "Удалить" #, python-format msgid "%s - hg %s" msgstr "%s — hg %s" msgid "Do not save backup files (*.orig)" msgstr "Не сохранять резервные копии файлов (*.orig)" msgid "Force removal of modified files (--force)" msgstr "Принудительное удаление изменённых файлов (--force)" msgid "Add &Largefiles" msgstr "Добавить &большие-файлы" msgid "No files selected" msgstr "Файлы не выбраны" msgid "No operation to perform" msgstr "Нет действий для выполнения" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" "Выбрано один или более файлов, которые были изменены. По умолчанию эти файлы " "не будут удалены. Что следует сделать?" msgid "Remove &Unmodified Files" msgstr "Удалить Неизменённые Файлы" msgid "Remove &All Selected Files" msgstr "Удалить Все Выбранные Файлы" msgid "Webconf" msgstr "Webconf" msgid "Config File:" msgstr "Файл конфигурации:" msgid "Open" msgstr "Открыть" msgid "Phabricator" msgstr "Phabricator" msgid "Reviewers" msgstr "Рецензенты" msgid "Available" msgstr "Доступен" msgid "Fetch the reviewer list from the server" msgstr "Получить список рецензентов с сервера" msgid "Rescan" msgstr "Пересканировать" msgid "Filter the available reviewers" msgstr "Фильтровать доступных рецензентов" msgid "Reviewer Filter" msgstr "Фильтр рецензентов" msgid "Reviewers available on the server" msgstr "Рецензенты, доступные на сервере" msgid "Chose the selected available reviewers" msgstr "Выбрать выбранных доступных рецензентов" msgid ">" msgstr ">" msgid "Remove the selected reviewers" msgstr "Удалить выбранных рецензентов" msgid "<" msgstr "<" msgid "Selected" msgstr "Выбранные" msgid "These users will be notified of the review" msgstr "Этим пользователи получат уведомление о рецензии" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" "Некоторые из выбранных вами файлов имеют размер более 10 MB. Вы могли бы " "использовать дисковое пространство более эффективно, если добавите их как " "большие-файлы, благодаря чему в вашем локальном хранилище будет храниться " "только самая последняя ревизия, а более старые ревизии будут доступны с " "сервера. Следует ли добавить эти файлы как большие-файлы?" msgid "Add as &Largefiles" msgstr "Добавить как &большие-файлы" msgid "Add as &Normal Files" msgstr "Добавить как &нормальные файлы" msgid "Invalid Patterns" msgstr "Неверные шаблоны" msgid "Failed to process largefiles.patterns." msgstr "Не удалось обработать largefiles.patterns." msgid "No items to display" msgstr "Нет данных для отображения" msgid "Use compact view" msgstr "Использовать компактный вид" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "Отображаются %(count)d из %(total)d" #, python-format msgid "Merge rejected patch chunks into %s" msgstr "Слить отвергнутые лоскуты в %s" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "Пометить этот лоскут как улаженный, перейти к следующему неулаженному" msgid "Mark this chunk as unresolved" msgstr "Пометить этот лоскут как неулаженный" msgid "Reload File" msgstr "Перезагрузить файл" msgid "Are you sure you want to reload this file?" msgstr "Перезагрузить этот файл?" msgid "All unsaved changes will be lost." msgstr "Все несохранённые изменения будут потеряны." msgid "Warning" msgstr "Предупреждение" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" "Вы пометили все отвергнуты лоскуты как улаженные, хотя файл в панели " "редактирования не изменился.\n" "\n" "Это может означать, что никакой код из отвергнутых лоскутов не попадёт в " "файл.\n" "\n" "Вы действительно хотите оставить файл неизменным и рассматриваете " "отвергнутые лоскуты как улаженные?\n" "\n" "Сделав так, вы удалите лоскуты из долгого ящика и можете потерять их " "навсегда!\n" "\n" "Нажмите «Да», чтобы принять файл как есть, или «Нет» — чтобы продолжить " "улаживание отвергнутых лоскутов заплатки." msgid "Interrupted graft operation found" msgstr "найдена прерванная операция наращивания" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" "Найдена прерванная операция наращивания.\n" "\n" "Вы не можете выполнять другие операции наращивания, пока не отмените " "прерванную операцию наращивания." msgid "Continue or abort interrupted graft operation?" msgstr "Продолжить или отменить прерванную операцию наращивания?" msgid "To graft destination" msgstr "Нарастить к" msgid "Use my user name instead of graft committer user name" msgstr "" "Использовать мое имя пользователя вместо имён пользователей фиксаторов " "наращивания" msgid "Use current date" msgstr "Использовать текущую дату" msgid "Append graft info to log message" msgstr "Добавить информацию о наращивании в сообщение журнала" msgid "Graft" msgstr "Наращение ветви" #, python-format msgid "Graft - %s" msgstr "Наращение — %s" msgid "Graft changeset" msgstr "Набор изменений для наращения" #, python-format msgid "Graft changeset #%d of %d" msgstr "Набор изменений для наращения #%d из %d" msgid "" "Before graft, you must commit, " "shelve to patch, or " "discard changes." msgstr "" "Перед наращением ветви необходимо зафиксировать, " "отложить в заплатку или " "отбросить изменения." msgid "You may continue or start the graft" msgstr "Вы можете продолжить или начать наращение" msgid "Graft is complete" msgstr "Наращение завершено" msgid "Graft failed" msgstr "Наращение не удалось" msgid "Graft aborted" msgstr "Наращение прервано" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" "При наращении возникли конфликты, которые должны быть улажены" msgid "You may continue the graft" msgstr "Вы можете продолжить наращение ветви" msgid "Exiting with an unfinished graft is not recommended." msgstr "Не рекомендуется выходить, не завершив наращение." msgid "Consider aborting the graft first." msgstr "Подумайте — возможно, лучше прервать наращение." msgid "Show Log" msgstr "Показать журнал" msgid "Display the file anyway" msgstr "В любом случае отображать файл" msgid "Diff not displayed: " msgstr "Различия не отображены: " #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" "Файл больше указанного максимального размера.\n" "maxdiff = %s KB" msgid "File is binary" msgstr "Файл является двоичным" msgid "File may be binary (maximum line length exceeded)" msgstr "Файл может быть бинарным (превышена максимальная длина строки)" msgid "File or diffs not displayed: " msgstr "Файл или различия не отображены: " msgid " (was added)" msgstr " (был добавлен)" #, python-format msgid " (copied from %s)" msgstr " (скопирован из %s)" #, python-format msgid " (renamed from %s)" msgstr " (переименован из %s)" msgid " (is a symlink)" msgstr " (является символической ссылкой)" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" "Файл или различия не показаны: размер файла больше указанного максимального " "размера.\n" "maxdiff = %s KB" msgid " (was deleted)" msgstr " (был уничтожен)" msgid " (was added, now missing)" msgstr " (был добавлен, а теперь потерялся)" msgid " (is unversioned)" msgstr " (не версионирован)" msgid "exec mode has been set" msgstr "режим выполнения задан" msgid "exec mode has been unset" msgstr "режим выполнения не задан" #, python-format msgid "changeset: %s" msgstr "набор изменений: %s" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" "[ПРЕДУПРЕЖДЕНИЕ] Неверный идентификатор ревизии подхранилища:\n" "\t%s\n" "\n" msgid "Subrepo created and set to initial revision." msgstr "Подхранилище создано и установлено на начальную ревизию." msgid "Subrepo initialized to revision:" msgstr "Подхранилище инициализировано к ревизии:" msgid "Subrepo removed from repository." msgstr "Подхранилище изъято из хранилища." msgid "Previously the subrepository was at the following revision:" msgstr "Ранее подхранилище было в следующей ревизии:" msgid "Subrepo was not changed." msgstr "Подхранилище не изменялось." msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "" "[ВНИМАНИЕ] Отсутствует подхранилище. Обновите к этой ревизии, чтобы " "клонировать его." msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "" "[ВНИМАНИЕ] Неполное подхранилище. Обновите к этой ревизии, чтобы вытащить " "его." msgid "Subrepo state is:" msgstr "Состояние подхранилища:" msgid "Revision has changed to:" msgstr "Ревизия изменена на:" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "набор изменений: %s (не найден в подхранилище)" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" "[ВНИМАНИЕ] Отсутствует изменённое подхранилище. Обновите к этой ревизии, " "чтобы клонировать его." msgid "Subrepository not found in the working directory." msgstr "Подхранилище не найдено в рабочем каталоге." msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" "[ВНИМАНИЕ] Неполное изменённое подхранилище. Обновите к этой ревизии, чтобы " "вытащить его." msgid "Not a Mercurial subrepo, not previewable" msgstr "" "Не является подхранилище Mercurial, предварительный просмотр недоступен" #, python-format msgid "Error previewing subrepo: %s" msgstr "Ошибка предварительного просмотра подхранилища: %s" msgid "Subrepo may be damaged or inaccessible." msgstr "Подхранилище может быть повреждено или недоступно." msgid "The subrepository is dirty." msgstr "Подхранилище не является «чистым»." msgid "File Status:" msgstr "Состояние файла:" msgid "(is a changed sub-repository)" msgstr "(является изменённым подхранилище)" msgid "(is an unchanged sub-repository)" msgstr "(является неизменённым подхранилище)" msgid "(is a dirty sub-repository)" msgstr "(является «грязным» подхранилище)" msgid "(is a new sub-repository)" msgstr "(является новым подхранилище)" msgid "(is a removed sub-repository)" msgstr "(является изъятым подхранилище)" msgid "(is a changed and dirty sub-repository)" msgstr "(является изменённым и «грязным» подхранилище)" msgid "(is a new and dirty sub-repository)" msgstr "(является новым и «грязным» подхранилище)" msgid "open..." msgstr "открыть..." msgid "Posting Review" msgstr "Отправка рецензии" msgid "Compress changesets up to and including" msgstr "Сжать наборы изменений вплоть до (включительно)" msgid "Onto destination" msgstr "Указать назначение" msgid "Compress" msgstr "Сжать" #, python-format msgid "Compress - %s" msgstr "Сжатие — %s" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" "Перед сжатием необходимо зафиксировать, " "отложить в заплатку или " "отбросить изменения." msgid "You may continue the compress" msgstr "Вы можете продолжить сжатие" msgid "Changes have been moved, you must now commit" msgstr "Изменения перемещены, теперь необходимо зафиксировать" msgid "Compress is complete, old history untouched" msgstr "Сжатие завершено, старая история осталась нетронутой" msgid "No visual editor configured" msgstr "Не указан текстовый редактор" msgid "Please configure a visual editor." msgstr "Пожалуйста, укажите текстовый редактор." msgid "Editor launch failure" msgstr "Сбой запуска редактора" msgid "Failed to open path in terminal" msgstr "Не удаётся открыть файл в терминале" #, python-format msgid "\"%s\" is not a valid directory" msgstr "«%s» не является подходящим каталогом" #, python-format msgid "Invalid configuration: %s" msgstr "Неверная настройка: %s" msgid "Unable to start the following command:" msgstr "Не удаётся запустить команду:" msgid "No shell configured" msgstr "Оболочка не сконфигурирована" msgid "A terminal shell must be configured" msgstr "Оболочка для терминала должна быть сконфигурирована" msgid "Please enter a username" msgstr "Пожалуйста, укажите имя пользователя" msgid "You must identify yourself to Mercurial" msgstr "Необходимо представиться Mercurial" msgid "Text Translation Failure" msgstr "Перевод текста не удался" msgid "Unable to translate input to local encoding." msgstr "Невозможно транслировать ввод в локальную кодировку" msgid "Visual Diff" msgstr "Визуальное сравнение" msgid "View file changes in external diff tool" msgstr "Просмотреть изменения файла во внешнем средстве сравнения" msgid "Edit Local" msgstr "Править локальную копию" msgid "Edit current file in working copy" msgstr "Править текущий файл в рабочей копии" msgid "Revert to Revision" msgstr "Вернуть к ревизии" msgid "Revert file(s) to contents at this revision" msgstr "Вернуть файл(ы) к содержимому на момент этой ревизии" msgid "Patch failed to apply" msgstr "Не удалось наложить заплатку" msgid "Manually resolve rejected chunks?" msgstr "Уладить отвергнутые лоскуты вручную?" msgid "Edit patched file and rejects?" msgstr "Править файл с применённой заплаткой и отвергнутыми лоскутами?" msgid "No deletable chunks" msgstr "Нет лоскутов для уничтожения" msgid "Completely remove file from patch?" msgstr "Полностью удалить файл из заплатки?" msgid "Revert all file changes?" msgstr "Отменить все изменения файла?" msgid "No chunks remain" msgstr "Лоскутов больше не осталось" msgid "file has been deleted, refresh" msgstr "файл был уничтожен, обновите изображение" msgid "file has been modified, refresh" msgstr "файл был изменен, обновите изображение" msgid "Unable to merge chunks" msgstr "Не удалось слить лоскуты" msgid "Add or remove patches must be merged in the working directory" msgstr "Заплатки добавления или удаления должны быть слиты в рабочем каталоге" msgid "Unable to remove" msgstr "Не удаётся удалить" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" "Не удаётся удалить файл %s,\n" "нет доступа" msgid "All" msgstr "Всё" msgid "None" msgstr "Ничего" #, python-format msgid "Chunks selected: %d / %d" msgstr "Выбрано лоскутов: %d / %d" #, python-format msgid "Patch fold - %s" msgstr "Подшивание заплатки — %s" msgid "New patch message:" msgstr "Новое сообщение заплатки:" msgid "Keep patch files" msgstr "Сохранить файлы заплаток" msgid "Patches to fold" msgstr "Заплатки для подшивания" msgid "failed to start command\n" msgstr "не удалось запустить команду\n" msgid "error while running command\n" msgstr "ошибка при выполнении команды\n" #, python-format msgid "process exited unexpectedly with code %d" msgstr "процесс завершился неожиданно с кодом %d" #, python-format msgid "failed to encode command: %s" msgstr "не удалось декодировать команду: %s" #, python-format msgid "timed out while reading: %r..." msgstr "истекло время ожидания при чтении: %r..." msgid "timed out waiting for message" msgstr "истекло время ожидания сообщения" #, python-format msgid "unexpected response on required channel %r" msgstr "неожиданный ответ от требуемого канала %r" #, python-format msgid "invalid \"hello\" message: %r" msgstr "неверное «hello» сообщение: %r" msgid "no \"runcommand\" capability" msgstr "нет возможности/способности «runcommand»" #, python-format msgid "corrupted command result: %r" msgstr "результат команды поврежден: %r" msgid "error while reading from data input" msgstr "ошибка при чтении ввода данных" msgid "asynchronous read is not implement yet" msgstr "асинхронное чтение в настоящее время не поддерживается" #, python-format msgid "failed to encode input: %s" msgstr "не удалось декодировать ввод: %s" #, python-format msgid "[command terminated by user %s]" msgstr "[команда завершена пользователем %s]" #, python-format msgid "[command interrupted %s]" msgstr "[команда прервана %s]" #, python-format msgid "[command returned code %d %%s]" msgstr "[команда вернула код %d %%s]" #, python-format msgid "[command completed successfully %s]" msgstr "[команда завершилась успешно %s]" msgid "Copy source -> destination" msgstr "Копировать источник -> назначение" msgid "Copy Error" msgstr "Ошибка копирования" msgid "Rename" msgstr "Переименовать" msgid "Rename Error" msgstr "Ошибка переименования" msgid "Select Source File" msgstr "Выберите исходный файл" msgid "Select Source Folder" msgstr "Выберите исходную папку" msgid "Source does not exist." msgstr "Исходный файл не существует." msgid "The source must be within the repository tree." msgstr "Источник должен находиться внутри дерева каталогов хранилища" msgid "The destination must be within the repository tree." msgstr "Назначение должно находиться внутри дерева каталогов хранилища" msgid "Destination file already exists." msgstr "Файл назначения уже существует" msgid "Are you sure you want to overwrite it ?" msgstr "Хотите перезаписать его?" #, python-format msgid "Copy - %s" msgstr "Копирование — %s" #, python-format msgid "Rename - %s" msgstr "Переименование — %s" msgid "Topic:" msgstr "Тематическая ветка:" msgid "&Rename" msgstr "&Переименовать" #, python-format msgid "Topic - %s" msgstr "Тематическая ветка — %s" #, python-format msgid "A topic named \"%s\" already exists" msgstr "Тематическая ветка с именем «%s» уже существует" #, python-format msgid "Topic '%s' has been added" msgstr "Тематическая ветка «%s» добавлена" #, python-format msgid "Topic '%s' does not exist" msgstr "Тематическая ветка «%s» не существует" #, python-format msgid "Topic '%s' has been removed" msgstr "Тематическая ветка «%s» удалена" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "Тематическая ветка «%s» переименована в «%s»" msgid "[non-existant]" msgstr "[несуществующий]" msgid "Tool launch failure" msgstr "Неудача при запуске инструмента" #, python-format msgid "%s : %s" msgstr "%s : %s" msgid "No diff tool found" msgstr "Не найдено средство просмотра различий" msgid "No visual diff tools were detected" msgstr "Не обнаружены средства визуализации различий" msgid "[working copy]" msgstr "[рабочая копия]" msgid "[original]" msgstr "[исходный]" msgid "Unable to find changeset" msgstr "Не найден набор изменений" msgid "You likely need to refresh this application" msgstr "Похоже, что вам нужно обновить это приложение" msgid "No file changes" msgstr "Файлы не изменились" msgid "There are no file changes to view" msgstr "Нет изменений файлов для отображения" msgid "working changes" msgstr "рабочие изменения" #, python-format msgid "changeset %d:%s" msgstr "набор изменений %d:%s" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "ревизии с %d:%s по %d:%s" msgid "Visual Diffs - " msgstr "Визуальное сравнение — " msgid " filtered" msgstr " отфильтровано" msgid "Temporary files are removed when this dialog is closed" msgstr "Временные файлы будут удалены после закрытия этого окна" msgid "Select Tool:" msgstr "Выберите средство:" msgid "Dir diff to p1" msgstr "Сравнение каталога с первым родителем" msgid "Dir diff to p2" msgstr "Сравнение каталога со вторым родителем" msgid "3-way dir diff" msgstr "Трёхстороннее сравнение каталогов" msgid "Directory diff" msgstr "Сравнение каталогов" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "Неверные настройки — сервер рецензионной коллегии не настроен" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "" "Неверные настройки — пожалуйста, задайте ваше имя пользователя в " "рецензионной коллегии" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" "Некорректный плагин рецензионной коллегии. Пожалуйста, скачайте плагин " "рецензионной коллегии для Mercurial reviewboard версии 3.5 или старше с " "указанного ниже веб-сайта.\n" "\n" " %s" msgid "Password:" msgstr "Пароль:" msgid "Error" msgstr "Ошибка" #, python-format msgid "Review draft posted to %s\n" msgstr "Черновик рецензии отправлен на %s\n" #, python-format msgid "Review published to %s\n" msgstr "Рецензия опубликована на %s\n" msgid "Success" msgstr "Успешно" msgid "Filter:" msgstr "Фильтр:" msgid "Check all files" msgstr "Отметить все файлы" msgid "Uncheck all files" msgstr "Снять отметки со всех файлов" msgid "Status File List Toolbar" msgstr "Панель списка состояний файлов" msgid "Remove filter, show root" msgstr "Убрать фильтр, показать корень" #, python-format msgid "%s - status (selection filtered)" msgstr "%s — состояние (выделение отфильтровано)" #, python-format msgid "%s - status" msgstr "%s — состояние" msgid "Check" msgstr "Отметить" msgid "Uncheck" msgstr "Снять отметки" msgid "status" msgstr "состояние" msgid "Failed to refresh" msgstr "Не удалось обновить" msgid "No appropriate files" msgstr "Нет подходящих файлов" msgid "No files found for this operation" msgstr "Файлы для данного действия не найдены" msgid "Stat" msgstr "Сост" msgid "M" msgstr "M" msgid "Filename" msgstr "Имя файла" msgid "Size (KB)" msgstr "Размер (КБ)" #, python-format msgid "Checked count: %d" msgstr "Количество отмеченных: %d" msgid ", resolved merge" msgstr ", улаженное слияние" msgid ", unresolved merge" msgstr ", неулаженное слияние" #, python-format msgid "%s is modified" msgstr "%s изменён" msgid "modified" msgstr "изменённые" #, python-format msgid "%s is added" msgstr "%s добавлен" msgid "added" msgstr "добавленные" #, python-format msgid "%s is removed" msgstr "%s изъят" msgid "removed" msgstr "удалённые" #, python-format msgid "%s is not tracked (unknown)" msgstr "%s не под контролем версий (неизвестен)" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "%s удалён не командой hg, но все же отслеживается" msgid "missing" msgstr "отсутствующие" #, python-format msgid "%s is ignored" msgstr "%s проигнорирован" msgid "ignored" msgstr "игнорируемые" #, python-format msgid "%s is not modified (clean)" msgstr "%s не изменён (чистый)" msgid "clean" msgstr "не изменённые" #, python-format msgid "%s is a dirty subrepo" msgstr "%s — «грязное» подхранилище" msgid "subrepo" msgstr "подхранилище" msgid "Backout requires a parent revision" msgstr "Для обращения изменений необходима родительская ревизии" msgid "Cannot backout change on a different branch" msgstr "Невозможно обратить изменения, сделанные в другой ветке" #, python-format msgid "Backout - %s" msgstr "Обращение изменений — %s" msgid "Prepare to backout" msgstr "Подготовка к обращению изменений (обратному слиянию)" msgid "Verify backout revision and ensure your working directory is clean." msgstr "" "Проверьте обращаемую ревизию и убедитесь, что ваш рабочий каталог чист." msgid "Backing out a parent revision is a single step operation" msgstr "Обращение изменений родительской ревизии произойдёт за один шаг" msgid "Backout revision" msgstr "Обращаемая ревизия" msgid "Not a head, backout will create a new head!" msgstr "Это не головная ревизия, обращение создаст новую голову!" msgid "Current local revision" msgstr "Текущая локальная ревизия" msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" "Перед обращением изменений необходимо зафиксировать, отложить в заплатку или отбросить изменения." msgid "Backing out, then merging..." msgstr "Обращаем изменения, потом сливаем..." msgid "Automatically advance to next page when backout and merge are complete." msgstr "" "Автоматически перейти к следующей странице, когда обращение изменений и " "слияние завершатся." msgid "Commit backout and merge results" msgstr "Фиксировать результаты обращения изменений и слияния" msgid "Backed out changeset: " msgstr "Обращённый набор изменений: " msgid "Discard current backout message?" msgstr "Отказаться от текущего сообщения об обращении изменений?" msgid "Use English backout message" msgstr "Использовать сообщение об обращении изменений на английском" msgid "Backing out and committing..." msgstr "Обращаем изменения и фиксируем..." msgid "Please wait while making backout." msgstr "Пожалуйста, подождите, пока происходит обращение изменений." msgid "Backout changeset" msgstr "Обращённый набор изменений" msgid "Location:" msgstr "Местоположение:" msgid "Update to:" msgstr "Обновить до:" msgid "Options:" msgstr "Параметры:" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "" "Отбросить удалённые изменения без создания резервной копии (-C/--clean)" msgid "Perform a push before updating (-p/--push)" msgstr "Выполнять проталкивание перед обновлением (-p/--push)" msgid "Allow pushing new branches (--new-branch)" msgstr "Разрешить проталкивание в новые ветки (--new-branch)" msgid "Force push to remote location (-f/--force)" msgstr "Принудительно проталкивать в удалённое местоположение (-f/--force)" msgid "remove working directory" msgstr "Переместить рабочую директорию" msgid "unknown revision!" msgstr "неизвестная ревизия!" #, python-format msgid "Remote Update - %s" msgstr "Обновить удалённо — %s" msgid "&Update" msgstr "Об&новить" msgid "&Undo" msgstr "&Отменить" msgid "&Redo" msgstr "&Повторить" msgid "Cu&t" msgstr "Вы&резать" msgid "&Copy" msgstr "&Копировать" msgid "&Paste" msgstr "В&ставить" msgid "&Editor Options" msgstr "&Настройки редактора" msgid "&Wrap" msgstr "&Переносы" msgid "&None" msgstr "&Не переносить" msgid "&Word" msgstr "&По словам" msgid "&Character" msgstr "По &символам" msgid "White&space" msgstr "Про&белы" msgid "&Visible" msgstr "&Отображать" msgid "&Invisible" msgstr "&Не отображать" msgid "&AfterIndent" msgstr "Отображать &после отступа" msgid "&TAB Inserts" msgstr "Вставка &табуляций" msgid "&Auto" msgstr "&Автоматически" msgid "&TAB" msgstr "&Табуляция" msgid "&Spaces" msgstr "&Пробелы" msgid "EOL &Visibility" msgstr "&Концы строк" msgid "EOL &Mode" msgstr "&Режим конца строки" msgid "&Windows" msgstr "&Windows" msgid "&Unix" msgstr "&Unix" msgid "&Mac" msgstr "&Mac" msgid "&Auto-Complete" msgstr "&Автозавершение" msgid "### regular expression ###" msgstr "### регулярное выражение ###" msgid "Regular expression search pattern" msgstr "Шаблон поиска по регулярному выражению" msgid "Wrap search" msgstr "Зациклить поиск" msgid "Prev" msgstr "Пред." msgid "Next" msgstr "След." msgid "Unable to read file" msgstr "Не удалось прочитать файл" msgid "Could not open the specified file for reading." msgstr "Не удалось открыть указанный файл для чтения." msgid "This appears to be a binary file." msgstr "Кажется, это двоичный файл." msgid "An error occurred while reading the file." msgstr "Произошла ошибка при чтении файла." msgid "Could not translate the file content from native encoding." msgstr "Не удалось преобразовать содержимое файла из родной кодировки." msgid "Several characters would be lost." msgstr "Некоторые символы будут потеряны." msgid "Unable to write file" msgstr "Не удалось записать файл" msgid "Could not translate the file content to native encoding." msgstr "Не удалось преобразовать содержимое файла в родную кодировку." msgid "Could not open the specified file for writing." msgstr "Не удалось открыть указанный файл для записи." msgid "An error occurred while writing the file." msgstr "Произошла ошибка при записи файла." msgid "Context Menu" msgstr "Контекстное меню" msgid "Top menu items:" msgstr "Пункты меню верхнего уровня:" msgid "Sub menu items:" msgstr "Пункты в подменю:" msgid "Menu Behavior" msgstr "Поведение меню" msgid "Hide context menu outside repositories" msgstr "Спрятать контекстное меню за пределами хранилищ" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" "Не показывать пункты меню на неверсионных папках (используйте Shift+Click, " "чтобы переопределить)" msgid "Icons" msgstr "Значки" msgid "Overlays" msgstr "Накладные значки" msgid "Enabled overlays" msgstr "Разрешённые накладные значки" msgid "Local disks only" msgstr "Только для локальных дисков" msgid "Enabled Overlay Handlers" msgstr "Разрешённые обработчики наложенных значков" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "" "Внимание: подействует на все запущенные Tortoise, после изменения " "понадобится выход из системы" msgid "Added" msgstr "Добавлен" msgid "Locked*" msgstr "Заблокирован*" msgid "Ignored*" msgstr "Игнорирован*" msgid "Unversioned" msgstr "Не версионирован" msgid "Readonly*" msgstr "Только для чтения*" msgid "Deleted*" msgstr "Уничтожен*" msgid "*: not used by TortoiseHg" msgstr "*: не используется TortoiseHg" msgid "Taskbar" msgstr "Панель задач" msgid "Show Icon" msgstr "Отображать значок" msgid "Highlight Icon" msgstr "Подсветка значка" msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" "https://tortoisesvn.net/docs/release/TortoiseSVN_ru/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" "Вы можете изменить набор значков в Настройках TortoiseSVN" msgid "Explorer Extension Settings - TortoiseHg" msgstr "Настройки расширения Проводника — TortoiseHg" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "" "%s содержит отвергнутые лоскуты, править файл с применённой заплаткой " "отвергнутыми лоскутами?" msgid "&Commit to Queue..." msgstr "&Фиксировать в очередь..." msgid "Create &New Queue..." msgstr "Создать &новую очередь..." msgid "&Rename Active Queue..." msgstr "&Переименовать активную очередь..." msgid "&Delete Queue..." msgstr "&Уничтожить очередь..." msgid "&Purge Queue..." msgstr "&Зачистить очередь..." msgid "Create Patch Queue" msgstr "Создать очередь заплаток" msgid "New patch queue name" msgstr "Новое имя очереди заплаток" msgid "Create" msgstr "Создать" msgid "Rename Patch Queue" msgstr "Переименовать очередь заплаток" #, python-format msgid "Rename patch queue '%s' to" msgstr "Переименовать очередь заплаток «%s» в" msgid "Delete Patch Queue" msgstr "Уничтожить очередь заплаток" msgid "Delete reference to" msgstr "Уничтожить ссылку на" msgid "Purge Patch Queue" msgstr "Зачистить очередь заплаток" msgid "Remove patch directory of" msgstr "Изъять каталог заплаток из" msgid "Purge" msgstr "Зачистить" msgid "Rename Patch" msgstr "Переименовать заплатку" #, python-format msgid "Rename patch %s to:" msgstr "Переименовать заплатку %s в:" msgid "no guards" msgstr "нет стражей" msgid "Patch Queue" msgstr "Очередь заплаток" msgid "Push" msgstr "Протолкнуть" msgid "Apply one patch" msgstr "Наложить одну заплатку" msgid "Apply all patches" msgstr "Наложить все заплатки" msgid "Pop" msgstr "Вытолкнуть" msgid "Unapply one patch" msgstr "Отпороть одну заплатку" msgid "Pop all" msgstr "Вытолкнуть все" msgid "Unapply all patches" msgstr "Отпороть все заплатки" msgid "Go &to Patch" msgstr "Перейти к &заплатке" msgid "&Apply Only This Patch" msgstr "Применить только &эту заплатку" msgid "Apply only the selected patch" msgstr "Применить только выбранную заплатку" msgid "Move applied patches into repository history" msgstr "Переместить применённые заплатки в историю репозитория" msgid "&Delete Patches..." msgstr "&Удалить заплатки..." msgid "Delete selected patches" msgstr "Уничтожить выбранные заплатки" msgid "Set &Guards..." msgstr "Установить &стражей..." msgid "Configure guards for selected patch" msgstr "Настроить стражей для выбранной заплатки" msgid "Patch Queue Actions Toolbar" msgstr "Панель действий очереди заплаток" msgid "Configure guards" msgstr "Настроить стражей" #, python-format msgid "Input new guards for %s:" msgstr "Укажите новых стражей для %s:" msgid "Confirm patch queue switch" msgstr "Подтвердите переключение очереди заплаток" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "Активировать очередь заплаток «%s» ?" #, python-format msgid "Guards: %d/%d" msgstr "Стражи: %d/%d" msgid "MQ options" msgstr "Параметры MQ" msgid "Force push or pop (--force)" msgstr "Проталкивать или затягивать принудительно (--force)" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "Пропускать неконфликтующие локальные изменения (--keep-changes)" #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "Просмотр файла журнала [%s] — %s" msgid "File History Log Columns" msgstr "Колонки журнала истории файла" msgid "Back" msgstr "Назад" msgid "Forward" msgstr "Вперёд" msgid "Diff Selected &Changesets" msgstr "Сравнить выбранные &наборы изменений" msgid "&Diff Selected File Revisions" msgstr "&Сравнить выбранные версии файла" msgid "Diff &Changeset to Parent" msgstr "Сравнить &набор изменений с родителем" msgid "Show Revision &Details" msgstr "Показать &подробности ревизии" msgid "Too many rows selected for menu" msgstr "Слишком много строк выбрано для меню" msgid "File Differences Log Columns" msgstr "Колонки журнала файловых различий" msgid "Next diff" msgstr "Следующее различие" msgid "Previous diff" msgstr "Предыдущее различие" msgid "Bookmark:" msgstr "Закладка:" msgid "New Name:" msgstr "Новое имя:" msgid "Activate:" msgstr "Активировать:" msgid "&Move" msgstr "Пере&местить" #, python-format msgid "Bookmark - %s" msgstr "Закладка — %s" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "Закладка с именем «%s» уже существует" #, python-format msgid "Bookmark '%s' has been added" msgstr "Закладка «%s» была добавлена" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "Закладка с именем «%s» не существует" #, python-format msgid "Bookmark '%s' has been moved" msgstr "Закладка «%s» была перемещена" #, python-format msgid "Bookmark '%s' does not exist" msgstr "Закладка «%s» не существует" #, python-format msgid "Bookmark '%s' has been removed" msgstr "Закладка «%s» была изъята" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "Закладка «%s» была переименована в «%s»" msgid "TortoiseHg Bookmark Sync" msgstr "Синхронизация закладок TortoiseHg" msgid "Outgoing Bookmarks" msgstr "Исходящие закладки" msgid "&Push Bookmark" msgstr "&Протолкнуть закладки" msgid "&Remove Bookmark" msgstr "&Удалить закладку" msgid "Incoming Bookmarks" msgstr "Входящие закладки" msgid "P&ull Bookmark" msgstr "&Затянуть закладки" msgid "R&emove Bookmark" msgstr "&Удалить закладку" #, python-format msgid "Pushed local bookmark: %s" msgstr "Протолкнуты локальные закладки: %s" #, python-format msgid "Pulled remote bookmark: %s" msgstr "Затянуты удалённые закладки: %s" #, python-format msgid "Removed remote bookmark: %s" msgstr "Удалены удалённые закладки: %s" #, python-format msgid "Removed local bookmark: %s" msgstr "Удалены локальные закладки: %s" #, python-format msgid "Tag - %s" msgstr "Метка — %s" msgid "Tag:" msgstr "Метка:" msgid "Tagged:" msgstr "Помечено:" msgid "Local tag" msgstr "Локальная метка" msgid "Replace existing tag (-f/--force)" msgstr "Заменить существующую метку (-f/--force)" msgid "Use English commit message" msgstr "Использовать сообщение фиксации на английском" msgid "local" msgstr "локальный" msgid "Move" msgstr "Переместить" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "Метка %s перемещена на набор изменений %s (с набора изменений %s)" #, python-format msgid "Added tag %s for changeset %s" msgstr "Добавлена метка %s для набора изменений %s" #, python-format msgid "Tag '%s' has been moved" msgstr "Метка «%s» была перемещена" #, python-format msgid "Tag '%s' has been added" msgstr "Метка «%s» была добавлена" #, python-format msgid "Removed tag %s" msgstr "Метка %s удалена" #, python-format msgid "Tag '%s' has been removed" msgstr "Метка «%s» была изъята" msgid "Strip:" msgstr "Срезать:" msgid "Discard local changes, no backup (-f/--force)" msgstr "" "Отбросить локальные изменения без создания резервной копии (-f/--force)" msgid "No backup (-n/--nobackup)" msgstr "Без создания резервной копии (-n/--nobackup)" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "Не изменять рабочую копию во время срезания (-k/--keep)" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "%d набор изменений будет срезан" msgstr[1] "%d набора изменений будут срезаны" msgstr[2] "%d наборов изменений будет срезано" msgid "Unknown revision!" msgstr "Неизвестная ревизия!" msgid "Detected uncommitted local changes." msgstr "Обнаружены незафиксированные локальные изменения" msgid "Do you want to keep them or discard them?" msgstr "Хотите сохранить их или отбросить?" msgid "&Keep (--keep)" msgstr "&Сохранить (--keep)" msgid "&Discard (--force)" msgstr "&Отбросить (--force)" msgid "Confirm Strip" msgstr "Подтвердите срезание" #, python-format msgid "Strip - %s" msgstr "Срезание — %s" msgid "&Strip" msgstr "&Срезать" msgid "Tags" msgstr "Метки" msgid "Latest tags" msgstr "Последние метки" msgid "Node" msgstr "Узел" msgid "Git Commit" msgstr "Фиксация Git" msgid "Age" msgstr "Возраст" msgid "Local Time" msgstr "Местное время" msgid "UTC Time" msgstr "Время по Гринвичу" msgid "Changes" msgstr "Изменения" msgid "Converted From" msgstr "Преобразовано из" msgid "Searching..." msgstr "Выполняется поиск..." #, python-format msgid "filling (%d)" msgstr "заполняем (%d)" msgid "Mercurial User" msgstr "Пользователь Mercurial" msgid "Delete Patches" msgstr "Уничтожить заплатки" msgid "Remove patches from queue?" msgstr "Изъять заплатки из очереди?" msgid "File &History / Annotate" msgstr "&История/аннотирование файла" msgid "Show the history of the selected file" msgstr "Показать историю выбранного файла" msgid "Co&mpare File Revisions" msgstr "С&равнить ревизии файла" msgid "Compare revisions of the selected file" msgstr "Сравнить ревизии выбранного файла" msgid "Filter Histor&y" msgstr "Фильтр &истории" msgid "Query about changesets affecting the selected files" msgstr "Запрос наборов изменений, затрагивающих выбранные файлы" msgid "Diff Changeset to Loc&al" msgstr "Сравнить набор изменений с &локальной копией" msgid "View changes to current in external diff tool" msgstr "" "Просмотреть изменения по отношению к текущей копии во внешнем средстве " "сравнения" msgid "&View at Revision" msgstr "&Просмотр в ревизии" msgid "View file as it appeared at this revision" msgstr "Просмотреть файл таким, как он выглядел в этой ревизии" msgid "&Save at Revision..." msgstr "&Сохранить в ревизии..." msgid "Save file as it appeared at this revision" msgstr "Сохранить файл таким, как он выглядел в этой ревизии" msgid "Save file to" msgstr "Сохранить файл в" msgid "&Edit Local" msgstr "&Править локальную копию" msgid "&Open Local" msgstr "&Открыть локальную копию" msgid "E&xplore Local" msgstr "П&росмотр локальной копии" msgid "Open parent folder of current file in the system file manager" msgstr "Открыть родительскую папку текущего файла в файловом менеджере" msgid "Copy full path of file(s) to the clipboard" msgstr "Копировать полный путь к файлу в буфер обмена" msgid "&Revert to Revision..." msgstr "&Вернуть до ревизии..." msgid "Open S&ubrepository" msgstr "Открыть подхранилище" msgid "Open the selected subrepository" msgstr "Открыть выбранное подхранилище" msgid "E&xplore Folder" msgstr "П&росмотр папки" msgid "Open the selected folder in the system file manager" msgstr "Открыть выбранную папку в файловом менеджере" msgid "Open &Terminal" msgstr "Открыть &терминал" msgid "Open a shell terminal in the selected folder" msgstr "Открыть терминал в выбранной папке" msgid "Diff &Local" msgstr "Сравнить с &локальным" msgid "&View Missing" msgstr "&Просмотр потерянных" msgid "View O&ther" msgstr "Просмотр &другой" msgid "Add &Largefiles..." msgstr "Добавить &большие-файлы..." msgid "&Forget" msgstr "&Забыть" msgid "&Delete Unversioned..." msgstr "Удалить неверсионные..." msgid "Confirm Delete Unversioned" msgstr "Подтвердите уничтожение неверсионных файлов" msgid "Delete the following unversioned files?" msgstr "Удалить эти неверсионные файлы?" msgid "Re&move Versioned" msgstr "Из&ъять версионированные" msgid "&Revert..." msgstr "&Вернуть..." msgid "Uncommited merge - please select a parent revision" msgstr "Незафиксированное слияние — пожалуйста, выберите родительскую ревизию" msgid "Revert files to local or other parent?" msgstr "Вернуть файлы к локальному или другому родителю?" msgid "&Other" msgstr "&Другие" msgid "Revert local file changes?" msgstr "Откатить локальные изменения файлов?" msgid "&Revert with backup" msgstr "&Вернуть с созданием резервной копии" msgid "&Discard changes" msgstr "От&бросить изменения" msgid "Revert the following files?" msgstr "Вернуть следующие файлы?" msgid "&Revert" msgstr "&Вернуть" msgid "&Copy..." msgstr "&Копировать..." msgid "Re&name..." msgstr "Пере&именовать..." msgid "&Ignore..." msgstr "&Игнорировать..." msgid "Edit Re&jects" msgstr "Править отвергнутое" msgid "Manually resolve rejected patch chunks" msgstr "Вручную уладить отклонённые лоскуты заплатки" msgid "De&tect Renames..." msgstr "Определить переименования..." msgid "&Mark Resolved" msgstr "Отметить как &улаженный" msgid "&Mark Unresolved" msgstr "Отметить как &не улаженный" msgid "Restart Mer&ge" msgstr "Начать &слияние заново" msgid "Was renamed from" msgstr "Был переименован из" msgid "Restart Merge &with" msgstr "Начать слияние &заново с" #, python-format msgid "Bisect - %s" msgstr "Бисекция — %s" msgid "Accept" msgstr "Принять" msgid "Known good revision:" msgstr "Известная хорошая ревизия:" msgid "Known bad revision:" msgstr "Известная плохая ревизия:" msgid "Discard local changes (revert --all)" msgstr "Отбросить локальные изменения (revert --all)" msgid "Revision is &Good" msgstr "&Хорошая ревизия" msgid "Revision is &Bad" msgstr "&Плохая ревизия" msgid "&Skip this Revision" msgstr "Пропустить эту &ревизию" msgid "Error encountered." msgstr "Обнаружена ошибка." msgid "Culprit found." msgstr "Виновник вычислен." msgid "Test this revision and report findings. (good/bad/skip)" msgstr "Проверьте ревизию и сообщите, что с ней (хорошая/плохая/пропустить)." msgid "Parent 1:" msgstr "Родитель 1:" msgid "Parent 2:" msgstr "Родитель 2:" msgid "Pull subrepos from:" msgstr "Затянуть подхранилища из:" msgid "List updated files (--verbose)" msgstr "Вывести список обновляемых файлов (--verbose)" msgid "Discard local changes, no backup (-C/--clean)" msgstr "" "Отбросить локальные изменения без создания резервной копии (-C/--clean)" msgid "Always merge (when possible)" msgstr "Слияние всегда (когда возможно)" msgid "(same as parent)" msgstr "(такой же, как родитель)" msgid "Activate bookmark?" msgstr "Установить закладку?" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

                                                                                      Do " "you want to activate it?
                                                                                      You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" "На выбранной ревизии (%s) есть закладка с названием «%s».

                                                                                      Вы хотите " "её установить?
                                                                                      Вы можете запретить этот запрос в настройках " "Настройки/Рабочая среда/Включить закладки" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

                                                                                      Select " "the bookmark that you want to activate and click OK.

                                                                                      Click " "Cancel if you don't want to activate any of them.

                                                                                      You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                                                      " msgstr "" "Выбранная ревизия (%s) содержит %d закладок на ней.

                                                                                      Выберите " "закладку, которую следует установить, и нажмите ОК.

                                                                                      Нажмите " "Отмена — если не следует устанавливать ни одну из закладок." "

                                                                                      Можно отключить этот запрос в настройках: Настройки/Рабочая среда/" "Включить закладки

                                                                                      " msgid "Deactivate current bookmark?" msgstr "Убрать текущую закладку" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "Убрать %s закладку?" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" "Обнаружены незафиксированные локальные изменения в дереве рабочих " "каталогов.\n" "Пожалуйста, выберите один из вариантов продолжения:\n" msgid "Discard - discard local changes, no backup" msgstr "Отбросить — отбросить локальные изменения без создания резервной копии" msgid "&Shelve" msgstr "Отложить" msgid "Shelve - move local changes to a patch" msgstr "Отложить — переместить локальные изменения в заплатку" msgid "Merge - allow to merge with local changes" msgstr "Слить — разрешить слияние с локальными изменениями" msgid "Confirm Update" msgstr "Подтвердить обновление" #, python-format msgid "Update - %s" msgstr "Обновление — %s" msgid "Word docs (*.doc *.docx)" msgstr "Word документы (*.doc *.docx)" msgid "PDF docs (*.pdf)" msgstr "PDF документы (*.pdf)" msgid "Excel files (*.xls *.xlsx)" msgstr "Excel файлы (*.xls *.xlsx)" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "TortoiseHg средство блокировки — %s" msgid "Refresh lock information" msgstr "Обновить информацию о блокировках" msgid "Lock a file not described in .hglocks" msgstr "Заблокировать файл не описанный в .hglocks" msgid "Locked And Lockable Files:" msgstr "Заблокированные и блокируемые файлы:" msgid "Locking User" msgstr "Заблокировавший пользователь" msgid "Purpose" msgstr "Цель" msgid "Simplelock extension not enabled" msgstr "Расширение Simplelock не включено" msgid "Please enable and configure simplelock" msgstr "Пожалуйста, включите и настройте simplelock" msgid "Open a (nonmergable) file you wish to be locked" msgstr "Открыть (не объединяемый) файл, который вы хотите заблокировать" msgid "File was not within current repository" msgstr "Файл был не в пределах текущего хранилища" #, python-format msgid "Locking %s" msgstr "Блокировка %s" #, python-format msgid "Unlocking %s" msgstr "Разблокировка %s" msgid "Refreshing locks..." msgstr "Обновление блокировок..." #, python-format msgid "Lock of %s successful" msgstr "Блокировка %s успешна" #, python-format msgid "Lock of %s failed, retry" msgstr "Блокировка %s не удалась, повторите" #, python-format msgid "Unlock of %s failed, retry" msgstr "Разблокировка %s не удалась, повторите" #, python-format msgid "Unlock of %s successful" msgstr "Разблокировка %s успешна" msgid "Ready, double click to lock or unlock" msgstr "Готово, двойной щелчок, чтобы заблокировать или разблокировать" msgid "Ready" msgstr "Готово" msgid "You can only release your own locks" msgstr "Вы можете освободить только свои собственные блокировки" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "Ожидающие списки изменений Perforce — %s" msgid "Submitting p4 changelist..." msgstr "Посылаем набор изменений p4..." msgid "Reverting p4 changelist..." msgstr "Возвращаем набор изменений p4..." msgid "New &Workbench" msgstr "Новая &рабочая среда" msgid "&New Repository..." msgstr "&Новое хранилище..." msgid "Clon&e Repository..." msgstr "Кло&нировать хранилище..." msgid "&Open Repository..." msgstr "&Открыть хранилище..." msgid "&File" msgstr "&Файл" msgid "&View" msgstr "&Вид" msgid "&Repository" msgstr "&Хранилище" msgid "&Help" msgstr "&Справка" msgid "&Dock Toolbar" msgstr "&Панели" msgid "&Task Toolbar" msgstr "&Задачи" msgid "&Custom Toolbar" msgstr "&Инструменты" msgid "S&ync Toolbar" msgstr "&Cинхронизации" msgid "&Close Repository" msgstr "&Закрыть хранилище" msgid "Sh&ow Repository Registry" msgstr "Показать &реестр хранилищ" msgid "Show &Patch Queue" msgstr "Показать &очередь заплаток" msgid "Show Conso&le" msgstr "Показать консо&ль" msgid "Place Console in Doc&k Area" msgstr "Поместить консоль в &область прикрепления" msgid "R&epository Registry Options" msgstr "Настройки реестра хранилищ" msgid "Save Open Repositories on E&xit" msgstr "Сохранять открытые хранилища при выходе" msgid "Sa&ve Current Sync Paths on Exit" msgstr "Сохранять текущий путь синхронизации при выходе" msgid "Show Tas&k Tab" msgstr "Показать вкладку &Задачи" msgid "&Commit" msgstr "&Фиксация" msgid "&Patch Branch" msgstr "&Ветка заплаток" msgid "Revision &Details" msgstr "По&дробности ревизии" msgid "&Search" msgstr "&Поиск" msgid "S&ynchronize" msgstr "Син&хронизация" msgid "Refresh current repository" msgstr "Обновить текущее хранилище" msgid "Refresh &Task Tab" msgstr "Обновить панель &задач" msgid "Refresh only the current task tab" msgstr "Обновить текущую панели задач" msgid "Load &All Revisions" msgstr "Загрузить &все ревизии" msgid "Load all revisions into graph" msgstr "Загрузить все ревизии в граф" msgid "Go to current revision" msgstr "Перейти к текущей ревизии" msgid "&Goto Revision..." msgstr "&Перейти к ревизии" msgid "Go to a specific revision" msgstr "Перейти к указанной ревизии" msgid "Filter graph with revision sets or branches" msgstr "Фильтровать граф по наборам ревизий или веткам" msgid "&Workbench Toolbars" msgstr "&Панели рабочей среды" msgid "&Lock File..." msgstr "&Блокировать файл..." msgid "Lock or unlock files" msgstr "Блокировать или разблокировать файлы" msgid "Update working directory or switch revisions" msgstr "Обновить рабочий каталог или переключить ревизии" msgid "&Shelve..." msgstr "&Отложить..." msgid "&Import Patches..." msgstr "&Импортировать заплатки..." msgid "U&nbundle..." msgstr "&Разукомплектовать..." msgid "&Merge..." msgstr "&Слить..." msgid "Merge with the other head of the current branch" msgstr "Слить с другой головой текущей ветки" msgid "&Resolve..." msgstr "&Разрешение конфликтов..." msgid "R&ollback/Undo..." msgstr "&Откатить/Отменить..." msgid "&Purge..." msgstr "&Зачистить..." msgid "&Bisect..." msgstr "&Бисекция..." msgid "&Verify" msgstr "&Проверить" msgid "Re&cover" msgstr "&Восстановить" msgid "&Web Server" msgstr "&Веб-сервер" msgid "E&xplorer Help" msgstr "П&росмотр справки" msgid "&Readme" msgstr "&Readme хранилища" msgid "About &Qt" msgstr "О &Qt" msgid "&About TortoiseHg" msgstr "О &TortoiseHg" msgid "&Incoming" msgstr "&Входящие" msgid "&Pull" msgstr "&Вытянуть" msgid "&Outgoing" msgstr "&Исходящие" msgid "P&ush" msgstr "Про&толкнуть" msgid "&Sync Bookmarks..." msgstr "&Синхронизировать закладки..." #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" "вытягивание: %s\n" "проталкивание: %s" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" "Нет настроенных путей синхронизации.\n" "Откройте вкладку синхронизации, чтобы настроить их." msgid "Check for incoming changes" msgstr "Проверка входящих изменений" msgid "Pull incoming changes" msgstr "Затянуть входящие изменения" msgid "Detect outgoing changes" msgstr "Обнаружить выходящие изменения" msgid "Push outgoing changes" msgstr "Протолкнуть выходящие изменения" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" "Проверить входящие изменения из\n" "%s" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" "Затянуть входящие изменения из\n" "%s" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" "Обнаружить выходящие изменения в\n" "%s" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" "Протолкнуть выходящие изменения в\n" "%s" #, python-format msgid "Execute custom tool '%s'" msgstr "Запустить инструмент «%s»" msgid "Custom Toolbar &Settings" msgstr "&Настройки инструментов" msgid "TortoiseHg Workbench" msgstr "Рабочая среда TortoiseHg" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "%s — Рабочая среда TortoiseHg — %s" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "%s — Рабочая среда TortoiseHg" msgid "Goto revision" msgstr "Перейти к ревизии" msgid "Enter revision identifier" msgstr "Укажите идентификатор ревизии" msgid "Select repository directory to open" msgstr "Выберите каталог хранилищ для открытия" msgid "README not configured" msgstr "README не указан" msgid "" "A README file is not configured for the current repository.

                                                                                      To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" "README файл не указан для текущего репозитория.

                                                                                      Укажите README файл для " "репозитория, для этого откройте файл настроек репозитория, добавьте ключ " "«readme» в раздел «tortoisehg» и установите имя файла или URL " "к файлу README вашего репозитория." msgid "Config files (*.conf *.config *.ini)" msgstr "Файлы конфигурации (*.conf *.config *.ini)" msgid "Open hgweb config" msgstr "Открыть конфигурацию hgweb" msgid "Save hgweb config" msgstr "Сохранить конфигурацию hgweb" msgid "Path:" msgstr "Путь:" msgid "Local Path:" msgstr "Локальный путь:" msgid "Select Repository" msgstr "Выберите хранилище" msgid "Add Path to Serve" msgstr "Добавление пути на веб-сервер" msgid "Edit Path to Serve" msgstr "Правка пути на веб-сервер" msgid "Local Path" msgstr "Локальный путь" msgid "hg view" msgstr "hg view" #~ msgid "TortoiseHg Overlay Icon Server" #~ msgstr "Сервер накладных значков TortoiseHg" #~ msgid "Exit" #~ msgstr "В&ыход" #~ msgctxt "start progress" #~ msgid "Commit" #~ msgstr "Фиксация" #~ msgctxt "start progress" #~ msgid "Rollback" #~ msgstr "Откатить" #~ msgctxt "window title" #~ msgid "Commit" #~ msgstr "Фиксация" #~ msgctxt "action button" #~ msgid "Commit" #~ msgstr "Фиксировать" #~ msgctxt "working dir state" #~ msgid "Clean" #~ msgstr "Чистый" #~ msgctxt "MQ QPush" #~ msgid "Push" #~ msgstr "Затолкнуть" #~ msgctxt "MQ QPush" #~ msgid "Push all" #~ msgstr "Затолкнуть все" #~ msgid "Could not rename existing patchfile" #~ msgstr "Не удаётся переименовать существующий файл заплатки" #~ msgid "Could not delete existing patchfile" #~ msgstr "Не удаётся уничтожить существующий файл заплатки" #~ msgid "QRename - Check patchname" #~ msgstr "QRename - Проверьте имя заплатки" #~ msgid "Patch name %s already exists:" #~ msgstr "Заплатка с именем %s уже существует:" #~ msgid "Add .OLD extension to existing patchfile" #~ msgstr "Добавить к существующему файлу заплатки расширение .OLD" #~ msgid "Overwrite existing patchfile" #~ msgstr "Перезаписать существующий файл заплатки" #~ msgid "Go back and change new patchname" #~ msgstr "Вернуться и изменить новое имя файла заплатки" #~ msgctxt "column header" #~ msgid "Graph" #~ msgstr "Граф" #~ msgctxt "column header" #~ msgid "Rev" #~ msgstr "Рев" #~ msgctxt "column header" #~ msgid "Branch" #~ msgstr "Ветка" #~ msgctxt "column header" #~ msgid "Description" #~ msgstr "Описание" #~ msgctxt "column header" #~ msgid "Author" #~ msgstr "Автор" #~ msgctxt "column header" #~ msgid "Tags" #~ msgstr "Метки" #~ msgctxt "column header" #~ msgid "Age" #~ msgstr "Возраст" #~ msgctxt "column header" #~ msgid "Changes" #~ msgstr "Изменения" #~ msgctxt "column header" #~ msgid "Phase" #~ msgstr "Фаза" #~ msgctxt "column header" #~ msgid "Filename" #~ msgstr "Имя файла" #~ msgctxt "tab tooltip" #~ msgid "Commit" #~ msgstr "Фиксация" #~ msgctxt "tab tooltip" #~ msgid "Search" #~ msgstr "Поиск" #~ msgctxt "tab tooltip" #~ msgid "Synchronize" #~ msgstr "Синхронизация" #~ msgctxt "tab tooltip" #~ msgid "Patch Branch" #~ msgstr "Ветка заплатки" #~ msgctxt "config item" #~ msgid "Commit" #~ msgstr "Фиксация" #~ msgid "Several icons are courtesy of the TortoiseSVN project" #~ msgstr "Некоторые значки взяты из проекта TortoiseSVN" #~ msgid "Source path is empty" #~ msgstr "Исходный путь пуст" #~ msgid "undo recent commit" #~ msgstr "отменить последнюю фиксацию" #~ msgid "new branch: " #~ msgstr "новая ветка: " #~ msgid "Save commit message at exit?" #~ msgstr "Сохранить сообщение фиксации при выходе?" #~ msgid "backup %r as %r\n" #~ msgstr "Сохранить резервную копию %r как %r\n" #~ msgid "Unable to create " #~ msgstr "Невозможно создать " #~ msgid "Please enter a valid source path" #~ msgstr "Пожалуйста, введите верный исходный путь" #~ msgid "_Remove" #~ msgstr "Убрать" #~ msgid "No committable files selected" #~ msgstr "Нет выбранных файлов для фиксации" #~ msgid "_Add" #~ msgstr "Добавить" #~ msgid "Toggle _Wordwrap" #~ msgstr "Переносить по словам" #~ msgid "Clone" #~ msgstr "Клонировать" #~ msgid "Branch Operations" #~ msgstr "Действия над Ветками" #~ msgid "_Undo" #~ msgstr "Отменить" #~ msgid "Close current named branch" #~ msgstr "Закрыть текущую именованную ветку" #~ msgid "close branch: " #~ msgstr "закрыть ветку: " #~ msgid "commit" #~ msgstr "фиксировать" #~ msgid "Errors during rollback!" #~ msgstr "Ошибки при откате!" #~ msgid "" #~ "Unable to undo!\n" #~ "\n" #~ "Tip revision differs from last commit." #~ msgstr "" #~ "Невозможно отменить!\n" #~ "\n" #~ "Оконечная ревизия отличается от последней фиксации." #~ msgid "Add/Remove the following files?" #~ msgstr "Добавить/Удалить указанные файлы?" #~ msgid "Confirm Add/Remove" #~ msgstr "Подтвердить Добавление/Удаление" #~ msgid "" #~ "The following lines are over the %i-character limit: %s.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "Следующие строки превышают %i-символьное ограничение: %s.\n" #~ "\n" #~ "Игнорировать правила форматирования и продолжить фиксацию?" #~ msgid "" #~ "The summary line is not followed by a blank line.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "После строки сводки нет пустой строки.\n" #~ "\n" #~ "Игнорировать правила форматирования и продолжить фиксацию?" #~ msgid "" #~ "Your username has not been configured.\n" #~ "\n" #~ "Please configure your username and try again" #~ msgstr "" #~ "Вы не указали свое имя пользователя.\n" #~ "\n" #~ "Пожалуйста укажите имя пользователя и попробуйте снова" #~ msgid "" #~ "The summary line length of %i is greater than %i.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "Длина строки сводки %i больше чем %i.\n" #~ "\n" #~ "Игнорировать правила форматирования и продолжить фиксацию?" #~ msgid "App_ly Format" #~ msgstr "Применить Формат" #~ msgid "Message format needs to be configured" #~ msgstr "Необходимо настроить формат сообщения" #~ msgid "Paste _Filenames" #~ msgstr "Вставить Имена файлов" #~ msgid "The summary line is not followed by a blank line" #~ msgstr "После строки сводки нет пустой строки" #~ msgid "Invalid path" #~ msgstr "Неверный путь" #~ msgid "Stop operation on current tab" #~ msgstr "Остановить действие на текущей вкладке" #~ msgid "Open new search tab" #~ msgstr "Открыть новую вкладку поиска" #~ msgid "Start this search" #~ msgstr "Начать поиск" #~ msgid "No regular expression given" #~ msgstr "Регулярное выражение не задано" #~ msgid "Search %d" #~ msgstr "Поиск %d" #~ msgid "File is unrevisioned" #~ msgstr "Файла нет в ревизиях" #~ msgid "You must provide a search expression" #~ msgstr "Необходимо указать выражение для поиска" #~ msgid "Search \"%s\"" #~ msgstr "Поиск \"%s\"" #~ msgid " Aborted" #~ msgstr " Прервано" #~ msgid "edit failed" #~ msgstr "неудача при редактировании" #~ msgid "making snapshot of %d files from rev %s\n" #~ msgstr "создается снимок %d файлов для ревизии %s\n" #~ msgid "Save File" #~ msgstr "Сохранить Файл" #~ msgid "Select Folder" #~ msgstr "Выбор Папки" #~ msgid "All files" #~ msgstr "Все файлы" #~ msgid "" #~ "== %s and %s have identical contents ==\n" #~ "\n" #~ msgstr "" #~ "== %s и %s имеют одинаковое содержимое ==\n" #~ "\n" #~ msgid "Configure email settings" #~ msgstr "Настройка параметров почты" #~ msgid "Envelope" #~ msgstr "Конверт" #~ msgid "Email outgoing changes" #~ msgstr "Отправить по почте исходящие изменения" #~ msgid "Remove Selected" #~ msgstr "Удалить Выбранные" #~ msgid "Filters" #~ msgstr "Фильтры" #~ msgid "You must specify a recipient" #~ msgstr "Необходимо указать получателя" #~ msgid "You must specify a sender address" #~ msgstr "Необходимо указать адрес отправителя" #~ msgid "You must configure SMTP" #~ msgstr "Необходимо настроить SMTP" #~ msgid "Unknown Files" #~ msgstr "Неизвестные Файлы" #~ msgid "Add special files (.hgignore, ...)" #~ msgstr "Добавить файлы особого назначения (.hgignore, ...)" #~ msgid "Make repo compatible with Mercurial 1.0" #~ msgstr "Сделать хранилище совместимым с Mercurial 1.0" #~ msgid "Destination path is empty" #~ msgstr "Путь назначения пустой" #~ msgid "Please enter the directory path" #~ msgstr "Пожалуйста укажите путь к каталогу" #~ msgid "Unable to create new repository" #~ msgstr "Невозможно создать новое хранилище" #~ msgid "Error when creating repository" #~ msgstr "Ошибка при создании хранилища" #~ msgid "unknown patch content: %r" #~ msgstr "неизвестное содержимое заплатки: %r" #~ msgid "this is a binary file\n" #~ msgstr "это двоичный файл\n" #~ msgid " and " #~ msgstr " и " #~ msgid "restoring %r to %r\n" #~ msgstr "восстанавливается %r в %r\n" #~ msgid "restoring backup files\n" #~ msgstr "восстанавливаются резервные файлы\n" #~ msgid "response expected" #~ msgstr "ожидается ответ" #~ msgid "There is no Mercurial repository here (.hg not found)" #~ msgstr "Здесь нет хранилища Mercurial (.hg не обнаружен)" #~ msgid "(No help text available)" #~ msgstr "(Нет текстовой справки)" #~ msgid "Hgtk - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" #~ msgstr "" #~ "Hgtk - Инструменты с графическим интерфейсом TortoiseHg для Mercurial SCM " #~ "(Hg)\n" #~ msgid "revisions to compare" #~ msgstr "ревизии для сравнения" #~ msgid "_Filter" #~ msgstr "Фильтр" #~ msgid "show the command options" #~ msgstr "показать параметры команды" #~ msgid "Reload revision history" #~ msgstr "Перезагрузить историю ревизий" #~ msgid "Re_fresh" #~ msgstr "Обновить" #~ msgid "Apply" #~ msgstr "Применить" #~ msgid "Save patch to" #~ msgstr "Сохранить заплатку в" #~ msgid "Local Date" #~ msgstr "Локальное Время" #~ msgid "Must supply a target revision" #~ msgstr "Необходимо указать целевую ревизию" #~ msgid "Summary" #~ msgstr "Сводка" #~ msgid "Confirm undo merge" #~ msgstr "Подтвердить отмену слияния" #~ msgid "Current revision (local)" #~ msgstr "Текущая ревизия (локальная)" #~ msgid "Undo" #~ msgstr "Отменить" #~ msgid "command is running" #~ msgstr "команда выполняется" #~ msgid "Cannot close now" #~ msgstr "Нельзя закрыть сейчас" #~ msgid "Confirm clean repository" #~ msgstr "Подтвердить очистку хранилища" #~ msgid "Start server" #~ msgstr "Запуск сервера" #~ msgid "rename error" #~ msgstr "ошибка переименования" #~ msgid "Rollback repository '%s' ?" #~ msgstr "Откатить хранилище '%s' ?" #~ msgid "[command interrupted]" #~ msgstr "[команда прервана]" #~ msgid "Cannot run now" #~ msgstr "Нельзя сейчас выполнить" #~ msgid "Confirm rollback repository" #~ msgstr "Подтвердить откат хранилища" #~ msgid "HTTP Port:" #~ msgstr "HTTP Порт:" #~ msgid "Configure" #~ msgstr "Настроить" #~ msgid "Configure web settings" #~ msgstr "Настроить параметры сети" #~ msgid "Browse" #~ msgstr "Обзор" #~ msgid "Launch browser to view repository" #~ msgstr "Запустить обозреватель для просмотра хранилища" #~ msgid "Stop server" #~ msgstr "Остановить сервер" #~ msgid "" #~ "Server process is still running\n" #~ "Exiting will stop the server." #~ msgstr "" #~ "Процесс сервера еще выполняется\n" #~ "Выход остановит сервер." #~ msgid "Confirm Really Exit?" #~ msgstr "Подтвердить Выход?" #~ msgid "Abort: %s\n" #~ msgstr "Прервать: %s\n" #~ msgid "name of error log file to write to" #~ msgstr "имя файла для записи журнала ошибок" #~ msgid "run server in background" #~ msgstr "запустить сервер в фоновом режиме" #~ msgid "name of access log file to write to" #~ msgstr "имя файла для записи журнала доступа" #~ msgid "listening at http://%s%s/%s (%s:%d)\n" #~ msgstr "слушается http://%s%s/%s (%s:%d)\n" #~ msgid "cannot start server: " #~ msgstr "невозможно запустить сервер: " #~ msgid "port to use (default: 8000)" #~ msgstr "используемый порт (по умолчанию: 8000)" #~ msgid "SSL certificate file" #~ msgstr "Файл сертификата SSL" #~ msgid "name to show in web pages (default: working dir)" #~ msgstr "имя отображаемое на веб-страницах (по умолчанию: рабочий каталог)" #~ msgid "name of file to write process ID to" #~ msgstr "имя файла для записи ID процесса" #~ msgid "for remote clients" #~ msgstr "для удалённых клиентов" #~ msgid "template style to use" #~ msgstr "используемый стиль шаблона" #~ msgid "use IPv6 in addition to IPv4" #~ msgstr "использовать IPv6 вместе с IPv4" #~ msgid "address to use" #~ msgstr "используемый адрес" #~ msgid "web templates to use" #~ msgstr "используемые веб-шаблоны" #~ msgid "_delete" #~ msgstr "удалить" #~ msgid "refresh" #~ msgstr "обновить" #~ msgid "Save As" #~ msgstr "Сохранить Как" #~ msgid "filtered status" #~ msgstr "отфильтрованный статус" #~ msgid "path" #~ msgstr "путь" #~ msgid "Save selected changes" #~ msgstr "Сохранить выбранные изменения" #~ msgid "Copy file to" #~ msgstr "Скопировать файл в" #~ msgid "Rename file to:" #~ msgstr "Переименовать файл в:" #~ msgid "%d selected, %d total" #~ msgstr "%d выбрано, %d всего" #~ msgid "shelve can only be run interactively" #~ msgstr "откладывание выполняется только в интерактивном режиме" #~ msgid "shelve changes to %s?" #~ msgstr "отложить изменения в %s?" #~ msgid "shelve this change to %r?" #~ msgstr "отложить это изменение в %r?" #~ msgid "shelve data already exists" #~ msgstr "отложенные данные уже существуют" #~ msgid "no changes to shelve\n" #~ msgstr "нет изменений для откладывания\n" #~ msgid "mark new/missing files as added/removed before shelving" #~ msgstr "" #~ "пометить новые/отсутствующие файлы как добавленные/удалённые до отложения" #~ msgid "nothing to unshelve\n" #~ msgstr "нечего отложить\n" #~ msgid "unshelve completed\n" #~ msgstr "откладывание завершено\n" #~ msgid "removing shelved patches\n" #~ msgstr "удаляются отложенные заплатки\n" #~ msgid "removing shelve file\n" #~ msgstr "удаляется файл отложений\n" #~ msgid "append to existing shelve data" #~ msgstr "добавить к существующим отложенным данным" #~ msgid "overwrite existing shelve data" #~ msgstr "переписать существующие отложенные данные" #~ msgid "udpate all repos in current dir" #~ msgstr "обновить все хранилища в текущем каталоге" #~ msgid "Merge target (other)" #~ msgstr "Цель слияния (другая)" #~ msgid "Validate repository consistency" #~ msgstr "Проверить хранилище на целостность" #~ msgid "File is larger than the specified max size.\n" #~ msgstr "Файл больше указанного максимального размера.\n" #~ msgid "Revert files to revision %s?" #~ msgstr "Вернуть файлы к ревизии %s?" #~ msgid "Delete the following unrevisioned files?" #~ msgstr "Удалить следующие файлы не входящие в ревизии?" #~ msgid "Move files to directory..." #~ msgstr "Файлы перемещаются в каталог..." #~ msgid "Confirm Delete Unrevisioned" #~ msgstr "Подтвердить Удаление Не Входящих В Ревизии" #~ msgid "Cannot move outside repo!" #~ msgstr "Перемещение за пределы хранилища невозможно!" #~ msgid "No addable files selected" #~ msgstr "Нет выбранных файлов для добавления" #~ msgid "No removable files selected" #~ msgstr "Нет выбранных файлов для удаления" #~ msgid "Delete Errors" #~ msgstr "Ошибки Удаления" #~ msgid "Incoming" #~ msgstr "Входящие" #~ msgid "Push local changes to selected repository" #~ msgstr "Протолкнуть локальные изменения в указанное хранилище" #~ msgid "Outgoing" #~ msgstr "Исходящие" #~ msgid "Pull changes from selected repository" #~ msgstr "Затянуть изменения из выбранного хранилища" #~ msgid "Display changes that can be pulled from selected repository" #~ msgstr "" #~ "Отобразить изменения, которые могут быть затянуты из выбранного хранилища" #~ msgid "Nothing" #~ msgstr "Ничего" #~ msgid "Force pull or push" #~ msgstr "Принудительное затягивание или проталкивание" #~ msgid "Run even when remote repository is unrelated." #~ msgstr "Выполнять даже на не связанном удалённом хранилище" #~ msgid "Repo:" #~ msgstr "Хранилище:" #~ msgid "A specific revision up to which you would like to push or pull." #~ msgstr "Определённая ревизия до которой вы хотите протолкнуть или затянуть." #~ msgid "Incoming/Outgoing" #~ msgstr "Входящие/Исходящие" #~ msgid "Update to branch tip" #~ msgstr "Обновить до конца ветки" #~ msgid "No repository selected" #~ msgstr "Хранилище не выбрано" #~ msgid "Replace existing tag" #~ msgstr "Заместить существующую метку" #~ msgid "Tag is local" #~ msgstr "Метка локальна" #~ msgid "Please enter tag name" #~ msgstr "Пожалуйста введите имя метки" #~ msgid "Tag \"%s\" has been added" #~ msgstr "Метка \"%s\" была добавлена" #~ msgid "Error in tagging" #~ msgstr "Ошибка при установке метки" #~ msgid "Tagging completed" #~ msgstr "Установка метки завершена" #~ msgid "a tag named \"%s\" already exists" #~ msgstr "Метка с именем \"%s\" уже существует" #~ msgid "Tag '%s' already exist" #~ msgstr "Метка '%s' уже существует" #~ msgid "Tag \"%s\" has been removed" #~ msgstr "Метка \"%s\" была удалена" #~ msgid "" #~ "Graphical merge program for resolving merge conflicts. If left " #~ "unspecified, Mercurial will use the first applicable tool it finds on " #~ "your system or use its internal merge tool that leaves conflict markers " #~ "in place. Chose internal:merge to force conflict markers, internal:" #~ "prompt to always select local or other, or internal:dump to leave files " #~ "in the working directory for manual merging" #~ msgstr "" #~ "Графическая программа слияний для разрешения конфликтов слияний. Если не " #~ "указана, то Mercurial будет использовать первый же подходящий инструмент, " #~ "который найдёт на вашей системе, или будет использовать внутренний " #~ "инструмент слияний, который оставляет маркеры конфликтов в тексте. " #~ "Укажите internal:merge для принудительного использования маркеров " #~ "конфликтов, internal:prompt - чтобы всегда выбирать локальное или другое, " #~ "либо internal:dump - чтобы оставить файлы в рабочем каталоге для ручного " #~ "слияния." #~ msgid "hgtk %s: %s\n" #~ msgstr "hgtk %s: %s\n" #~ msgid "hg shelve [OPTION]... [FILE]..." #~ msgstr "hg shelve [ПАРАМЕТР]... [ФАЙЛ]..." #~ msgid "hg unshelve [OPTION]... [FILE]..." #~ msgstr "hg unshelve [ПАРАМЕТР]... [ФАЙЛ]..." #~ msgid "rename takes one or two path arguments" #~ msgstr "rename требует одного или двух аргументов" #~ msgid "hgtk: unknown command '%s'\n" #~ msgstr "hgtk: неизвестная команда '%s'\n" #~ msgid "hgtk: %s\n" #~ msgstr "hgtk: %s\n" #~ msgid "" #~ "hgtk: command '%s' is ambiguous:\n" #~ " %s\n" #~ msgstr "" #~ "hgtk: команда '%s' неоднозначна:\n" #~ " %s\n" #~ msgid "use \"hgtk help\" for the full list of commands" #~ msgstr "используйте \"hgtk help\" для получения полного списка команд" #~ msgid "use \"hgtk -v help %s\" to show global options" #~ msgstr "используйте \"hgtk -v help %s\" для просмотра глобальных настроек" #~ msgid "use \"hgtk -v help%s\" to show aliases and global options" #~ msgstr "" #~ "используйте \"hgtk -v help %s\" для просмотра псевдонимов и глобальных " #~ "настроек" #~ msgid "hgtk datamine" #~ msgstr "hgtk datamine" #~ msgid "hgtk about" #~ msgstr "hgtk about" #~ msgid "hgtk add [FILE]..." #~ msgstr "hgtk add [ФАЙЛ]..." #~ msgid "hgtk clone SOURCE [DEST]" #~ msgstr "hgtk clone ИСТОЧНИК [НАЗНАЧЕНИЕ]" #~ msgid "hgtk hgignore [FILE]" #~ msgstr "hgtk hgignore [ФАЙЛ]" #~ msgid "hgtk commit [OPTIONS] [FILE]..." #~ msgstr "hgtk commit [ПАРАМЕТРЫ] [ФАЙЛ]..." #~ msgid "hgtk init [DEST]" #~ msgstr "hgtk init [НАЗНАЧЕНИЕ]" #~ msgid "hgtk repoconfig" #~ msgstr "hgtk repoconfig" #~ msgid "hgtk status [FILE]..." #~ msgstr "hgtk status [ФАЙЛ]..." #~ msgid "hgtk userconfig" #~ msgstr "hgtk userconfig" #~ msgid "hgtk remove [FILE]..." #~ msgstr "hgtk remove [ФАЙЛ]..." #~ msgid "hgtk recovery" #~ msgstr "hgtk recovery" #~ msgid "hgtk merge" #~ msgstr "hgtk merge" #~ msgid "hgtk log [OPTIONS] [FILE]" #~ msgstr "hgtk log [ПАРАМЕТРЫ] [ФАЙЛ]" #~ msgid "hgtk synch" #~ msgstr "hgtk synch" #~ msgid "hgtk shelve" #~ msgstr "hgtk shelve" #~ msgid "hgtk guess" #~ msgstr "hgtk guess" #~ msgid "hgtk revert [FILE]..." #~ msgstr "hgtk revert [ФАЙЛ]..." #~ msgid "hgtk serve [OPTION]..." #~ msgstr "hgtk serve [ПАРАМЕТР]..." #~ msgid "hgtk rename SOURCE [DEST]" #~ msgstr "hgtk rename ИСХОДНОЕ [НАЗНАЧЕНИЕ]" #~ msgid "hgtk thgstatus [OPTION]" #~ msgstr "hgtk thgstatus [ПАРАМЕТР]" #~ msgid "hgtk version [OPTION]" #~ msgstr "hgtk version [ПАРАМЕТР]" #~ msgid "ID" #~ msgstr "ID" #~ msgid "hgtk help [COMMAND]" #~ msgstr "hgtk help [КОМАНДА]" #~ msgid "hg serve [OPTION]..." #~ msgstr "hg serve [ПАРАМЕТР]..." #~ msgid "Remove is not enabled when multiple revisions are specified." #~ msgstr "Удаление отключено, когда указаны несколько ревизий." #~ msgid "Specify the visual editor used to view files, etc" #~ msgstr "" #~ "Укажите визуальный редактор используемый для просмотра файлов и т.д." #~ msgid "Message Line Length" #~ msgstr "Длина Строки Заметки" #~ msgid "inspect shelved changes only" #~ msgstr "рассматривать только отложенные изменения" #~ msgid "Character encoding name" #~ msgstr "Наименование кодировки" #~ msgid "User global settings" #~ msgstr "Пользовательские глобальные настройки" #~ msgid "Folder" #~ msgstr "Папка" #~ msgid "TortoiseHg Configure User-Global Settings" #~ msgstr "TortoiseHg Настройка Пользовательских-Глобальных Параметров" #~ msgid "_Edit" #~ msgstr "Редактировать" #~ msgid "Repository Path" #~ msgstr "Путь К Хранилищу" #~ msgid "_Test" #~ msgstr "Проверить" #~ msgid "History" #~ msgstr "История" #~ msgid "No Repository Found" #~ msgstr "Хранилище Не Найдено" #~ msgid "_Commit" #~ msgstr "Фиксировать" #~ msgid "Info required" #~ msgstr "Необходима информация" #~ msgid "Unable to annotate " #~ msgstr "Невозможно аннотировать " #~ msgid "Glob:" #~ msgstr "Маска:" #~ msgid "unhandled transition: %s -> %s" #~ msgstr "необработанный переход: %s -> %s" #~ msgid " [Ynsfdaq?] " #~ msgstr " [Ynsfdaq?] " #~ msgid "user quit" #~ msgstr "пользовательский выход" #~ msgid "" #~ "use \"hgtk help\" for the full list of commands or \"hgtk -v\" for details" #~ msgstr "" #~ "используйте \"hgtk help\" для получения полного списка команд или \"hgtk -" #~ "v\" для подробностей" #~ msgid "[-o] CMD" #~ msgstr "[-o] КОМАНДА" #~ msgid "used internally by daemon mode" #~ msgstr "внутренне используется в режиме сервиса" #~ msgid "A: added" #~ msgstr "A: добавленные" #~ msgid "C: clean" #~ msgstr "C: чистые" #~ msgid "Configure peer repository paths" #~ msgstr "Настроить пути к хранилищам" #~ msgid "Fetch" #~ msgstr "Получить" #~ msgid "Name of hg executable on remote machine." #~ msgstr "Наименование команды hg на удалённой машине." #~ msgid "unknown sort key '%s'" #~ msgstr "неизвестный ключ сортировки '%s'" #~ msgid "Select a peer repository to compare with" #~ msgstr "Выберите хранилище, с которым сравнивать" #~ msgid "Tag input is empty" #~ msgstr "Имя метки не указано" #~ msgid "Tag name is empty" #~ msgstr "Имя метки не указано" #~ msgid "Enable overlays" #~ msgstr "Включить оверлеи" #~ msgid "Highlight the taskbar icon during activity" #~ msgstr "Подсвечивать значок на панели задач вовремя активности" #~ msgid "Name associated with commits" #~ msgstr "Имя используемое при фиксации" #~ msgid "Maximum number of files to list per changeset." #~ msgstr "Максимальное количество файлов в списке на каждое изменение." #~ msgid "Maximum number of changes to list on the changelog." #~ msgstr "Максимальное количество изменений в списке журнала изменений." #~ msgid "Edit remote repository path" #~ msgstr "Редактирование пути удалённого хранилища" #~ msgid "Overwrite existing '%s' path?" #~ msgstr "Переписать существующий путь '%s'?" #~ msgid "Path testing cannot work without a repository" #~ msgstr "Проверка пути невозможна без указания хранилища" #~ msgid "Remote repository paths" #~ msgstr "Пути к удалённым хранилищам" #~ msgid "Suggested" #~ msgstr "Предлагается" #~ msgid "Shelve" #~ msgstr "Отложить" #~ msgid "No changes to shelve" #~ msgstr "Нет изменений для откладывания" #~ msgid "Please select diff chunks to shelve" #~ msgstr "Пожалуйста выберите кусочки различий для откладывания" #~ msgid "No repository found here" #~ msgstr "Хранилище здесь не найдено" #~ msgid "changeset " #~ msgstr "набор изменений " #~ msgid "Commit: Invalid username" #~ msgstr "Фиксация: Неверное имя пользователя" #~ msgid "The summary line length of %i is greater than %i" #~ msgstr "Длина %i строки сводки больше чем %i" #~ msgid "proceed even if patches do not unshelve cleanly" #~ msgstr "продолжать даже если не всё гладко с применением заплаток" #~ msgid "Clean checkout of original revision?" #~ msgstr "Очистить от изменений выгрузку первоначальной ревизии?" #~ msgid "Clean checkout, undo all changes" #~ msgstr "Очистить выгрузку, отменить все изменения" #~ msgid "ms" #~ msgstr "сс" #~ msgid "?: unknown" #~ msgstr "?: неизвестные" #~ msgid "[All Files]" #~ msgstr "[Все файлы]" #~ msgid "Error: %s" #~ msgstr "Ошибка: %s" #~ msgid "(version %s)" #~ msgstr "(версия %s)" #~ msgid "Invalid regular expression" #~ msgstr "Неверное регулярное выражение" #~ msgid "Rename error" #~ msgstr "Ошибка переименования" #~ msgid "Try &Again" #~ msgstr "Попробовать Снова" #~ msgid "&Quit" #~ msgstr "Выход" #~ msgid "Close diff tools and try again, or quit to leak files?" #~ msgstr "" #~ "Закрыть инструменты сравнений и попробовать снова, или выйти оставив " #~ "временные файлы?" #~ msgid "Fork hgtk" #~ msgstr "Ответвлять hgtk" #~ msgid "with %s" #~ msgstr "с %s" #~ msgid "Archive revision:" #~ msgstr "Архивировать ревизию:" #~ msgid "Compressed zip archives" #~ msgstr "Сжатые zip архивы" #~ msgid "Do you want to abort?" #~ msgstr "Вы хотите прервать?" #~ msgid "" #~ "The directory \"%s\" isn't empty!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "Каталог \"%s\" не пуст!\n" #~ "\n" #~ "Хотите перезаписать его?" #~ msgid "All Files (*.*)" #~ msgstr "Все файлы (*.*)" #~ msgid "unknown mode name: %s" #~ msgstr "неизвестное имя режима: %s" #~ msgid "Advanced options" #~ msgstr "Дополнительные настройки" #~ msgid "Failed to archive" #~ msgstr "Архивация прошла с ошибкой" #~ msgid "Canceled archiving" #~ msgstr "Архивация отменена" #~ msgid "Source path:" #~ msgstr "Исходный путь:" #~ msgid "Please specify different paths" #~ msgstr "Пожалуйста, укажите разные пути" #~ msgid "Source and destination are the same" #~ msgstr "Источник и назначение идентичны" #~ msgid "Use uncompressed transfer" #~ msgstr "Использовать передачу без сжатия" #~ msgid "Archive" #~ msgstr "Архивировать" #~ msgid "Confirm Abort" #~ msgstr "Подтвердить Прерывание" #~ msgid "%s changeset " #~ msgstr "набор изменений %s " #~ msgid "_View at Revision" #~ msgstr "Отобразить для Ревизии" #~ msgid "_Save at Revision..." #~ msgstr "Сохранить для Ревизии..." #~ msgid "_File History" #~ msgstr "История Файла" #~ msgid "Cloned successfully" #~ msgstr "Успешное клонирование" #~ msgid "Failed to clone" #~ msgstr "Неудача при клонировании" #~ msgid " - commit" #~ msgstr " - фиксация" #~ msgid "Advanced" #~ msgstr "Дополнительно" #~ msgid "_Diff" #~ msgstr "Различия" #~ msgid "Committer:" #~ msgstr "Автор Фиксации:" #~ msgid "Auto-includes:" #~ msgstr "Автоматически включать:" #~ msgid "Push after commit" #~ msgstr "Протолкнуть после фиксации" #~ msgid "Parent: %(rev)s" #~ msgstr "Родитель: %(rev)s" #~ msgid "create new MQ patch" #~ msgstr "создать новую MQ заплатку" #~ msgid "refresh top MQ patch" #~ msgstr "обновить оконечную MQ заплатку" #~ msgid "_Commit (+1 head)" #~ msgstr "Фиксировать (+1 голова)" #~ msgid "_Commit (-1 head)" #~ msgstr "Фиксировать (-1 голова)" #~ msgid "parent is not a head, commit to add a new head" #~ msgstr "" #~ "родитель не является головной ревизией, фиксировать, чтобы добавить новую " #~ "голову" #~ msgid "commit to merge one head" #~ msgstr "фиксировать, чтобы произвести слияние головной ревизии" #~ msgid "Confirm Undo Commit" #~ msgstr "Подтвердить Отмену Фиксации" #~ msgid "Info Required" #~ msgstr "Не Достаточно Данных" #~ msgid "Abort: %s" #~ msgstr "Прервано: %s" #~ msgid "Loading history..." #~ msgstr "Загружается история..." #~ msgid "Serve" #~ msgstr "Веб сервер" #~ msgid "Contents" #~ msgstr "Содержание" #~ msgid "Select Revision" #~ msgstr "Выбор Ревизии" #~ msgid "Ambiguous Revision" #~ msgstr "Ревизия Неоднозначна" #~ msgid "Invalid Revision" #~ msgstr "Неверная Ревизия" #~ msgid "" #~ "\n" #~ "[command interrupted]" #~ msgstr "" #~ "\n" #~ "[команда прервана]" #~ msgid "unknown CmdWidget style: %s" #~ msgstr "неизвестный стиль CmdWidget: %s" #~ msgid "Stop transaction" #~ msgstr "Остановить транзакцию" #~ msgid "Send" #~ msgstr "Отправить" #~ msgid "Send emails" #~ msgstr "Отправить письма" #~ msgid "Test" #~ msgstr "Тест" #~ msgid "Show emails which would be sent" #~ msgstr "Показать письма для отправления" #~ msgid "Email revisions " #~ msgstr "Отправка почтой ревизий " #~ msgid "" #~ "This feature is only available when sending outgoing changesets. It is " #~ "not applicable with revision ranges." #~ msgstr "" #~ "Данная опция доступна только при отправке исходящих наборов изменений. " #~ "Она неприменима к диапазонам ревизий." #~ msgid "Flags:" #~ msgstr "Флаги:" #~ msgid "Apply to:" #~ msgstr "Применить к:" #~ msgid "[command returned code %d " #~ msgstr "[команда вернула код %d " #~ msgid "[command completed successfully " #~ msgstr "[команда успешно выполнена " #~ msgid "Log Details" #~ msgstr "Колонки в Журнале" #~ msgid "Columns" #~ msgstr "Колонки" #~ msgid "Move Up" #~ msgstr "Переместить Вверх" #~ msgid "Move Down" #~ msgstr "Переместить Вниз" #~ msgid "Accept new Changesets" #~ msgstr "Принять новые Наборы Изменений" #~ msgid "&Accept" #~ msgstr "&Принять" #~ msgid "&Reject" #~ msgstr "&Отклонить" #~ msgid "Show/Hide Patch Queue" #~ msgstr "Показать/Скрыть Очередь Заплаток" #~ msgid "Toolbar" #~ msgstr "Панель инструментов" #~ msgid "Tip" #~ msgstr "Оконечная" #~ msgid "Revision..." #~ msgstr "Ревизия..." #~ msgid "Revision Number" #~ msgstr "Номер Ревизии" #~ msgid "Changeset ID" #~ msgstr "ID Набора изменений" #~ msgid "Branch Name" #~ msgstr "Имя Ветки" #~ msgid "UTC Date" #~ msgstr "Время UTC" #~ msgid "Filter" #~ msgstr "Фильтр" #~ msgid "Branch '%s'" #~ msgstr "Ветка '%s'" #~ msgid "Heads" #~ msgstr "Головные" #~ msgid "Visualize Change" #~ msgstr "Показать Изменение" #~ msgid "Di_splay Change" #~ msgstr "Отобразить Изменение" #~ msgid "_Update..." #~ msgstr "Обновить..." #~ msgid "_Export Patch..." #~ msgstr "Экспортировать Заплатку..." #~ msgid "E_mail Patch..." #~ msgstr "Отправить Заплатку Почтой..." #~ msgid "_Archive..." #~ msgstr "Архивировать..." #~ msgid "Email from here to selected..." #~ msgstr "Отправить почтой от сюда до выбранной..." #~ msgid "Transplant Revision range to local" #~ msgstr "Трансплантировать диапазон Ревизий на локальную" #~ msgid "Rebase on top of selected" #~ msgstr "Перебазировать на выбранную" #~ msgid "Load more" #~ msgstr "Загрузить еще" #~ msgid "load more revisions" #~ msgstr "загрузить больше ревизий" #~ msgid "Load all" #~ msgstr "Загрузить все" #~ msgid "load all revisions" #~ msgstr "загрузить все ревизии" #~ msgid "Download and view incoming changesets" #~ msgstr "Загрузить и отобразить входящие наборы изменений" #~ msgid "Pull incoming changesets" #~ msgstr "Затянуть входящие наборы изменений" #~ msgid "Determine and mark outgoing changesets" #~ msgstr "Выявить и отметить исходящие наборы изменений" #~ msgid "Push outgoing changesets" #~ msgstr "Протолкнуть исходящие наборы изменений" #~ msgid "Email outgoing changesets" #~ msgstr "Отправить почтой исходящие наборы изменений" #~ msgid "Stop current transaction" #~ msgstr "Остановить текущую транзакцию" #~ msgid "Configure aliases and after pull behavior" #~ msgstr "Настроить псевдонимы и действие после затягивания" #~ msgid "Ancestry" #~ msgstr "Предки" #~ msgid "Merges" #~ msgstr "Слияния" #~ msgid "Branches..." #~ msgstr "Ветки..." #~ msgid "Keywords" #~ msgstr "Ключевые слова" #~ msgid "Accept incoming previewed changesets" #~ msgstr "Принять просмотренные входящие наборы изменений" #~ msgid "Reject incoming previewed changesets" #~ msgstr "Отклонить просмотренные входящие наборы изменений" #~ msgid "Reject" #~ msgstr "Отклонить" #~ msgid "Save patches to" #~ msgstr "Сохранить заплатки в" #~ msgid "Confirm Rebase Revision" #~ msgstr "Подтвердить Перебазирование Ревизии" #~ msgid "Rebase revision %d on top of %d?" #~ msgstr "Перебазировать ревизию %d на ревизию %d?" #~ msgid "%(count)d of %(total)d Revisions" #~ msgstr "%(count)d из %(total)d Ревизий" #~ msgid "Merging in %s" #~ msgstr "Слияние в %s" #~ msgid "Merged successfully" #~ msgstr "Успешное слияние" #~ msgid "Canceled merging" #~ msgstr "Слияние отменено" #~ msgid "Failed to merge" #~ msgstr "Неудача при слиянии" #~ msgid "Undo successfully" #~ msgstr "Успешно отменено" #~ msgid "Successfully" #~ msgstr "Успешно" #~ msgid "Canceled" #~ msgstr "Отменено" #~ msgid "Failed" #~ msgstr "Неудача" #~ msgid "%s - recovery" #~ msgstr "%s - восстановление" #~ msgid "Stop the hg operation" #~ msgstr "Прервать работу HG" #~ msgid "%s - serve" #~ msgstr "%s - сервер" #~ msgid " - serve" #~ msgstr " - сервер" #~ msgid "Add checked files" #~ msgstr "Добавить отмеченные файлы" #~ msgid "Move checked files to other directory" #~ msgstr "Переместить отмеченные файлы в другой каталог" #~ msgid "Forget checked files on next commit" #~ msgstr "Забыть отмеченные файлы при фиксации" #~ msgid "M: modified" #~ msgstr "M: изменённые" #~ msgid "I: ignored" #~ msgstr "I: игнорируемые" #~ msgid "View '%s'" #~ msgstr "Отображать '%s'" #~ msgid "&Yes (backup changes)" #~ msgstr "Да (создать резервную копию изменений)" #~ msgid "View other" #~ msgstr "Отобразить другого" #~ msgid "Remove versioned" #~ msgstr "Удалить входящие в ревизии" #~ msgid "Rename..." #~ msgstr "Переименовать..." #~ msgid "Restart merge with" #~ msgstr "Перезапустить слияние с" #~ msgid "" #~ "The parents have changed since the last refresh.\n" #~ "Continue anyway?" #~ msgstr "" #~ "Родители после последнего обновления изменились.\n" #~ "Продолжить всё равно?" #~ msgid " Pull " #~ msgstr " Затянуть " #~ msgid "Email local outgoing changes to one or more recipients" #~ msgstr "" #~ "Отправить почтой локальные исходящие изменения одному и более получателям" #~ msgid "Shelve uncommited changes" #~ msgstr "Отложить незафиксированные изменения" #~ msgid "Target revision:" #~ msgstr "Ревизия назначения:" #~ msgid "Show patches" #~ msgstr "Отображать заплатки" #~ msgid "Show newest first" #~ msgstr "Более новые первыми" #~ msgid "Show changeset details with an expander" #~ msgstr "Отображать детали набора изменений в расширителе" #~ msgid "http" #~ msgstr "http" #~ msgid "ssh" #~ msgstr "ssh" #~ msgid "https" #~ msgstr "https" #~ msgid "#" #~ msgstr "#" #~ msgid "_rename" #~ msgstr "переименовать" #~ msgid "Show status" #~ msgstr "Отображать статус" #~ msgid "Show name" #~ msgstr "Отображать имя" #~ msgid "Enable editable cells" #~ msgstr "Включить редактирование в ячейках" #~ msgid "Show 'qparent'" #~ msgstr "Отображать 'qparent'" #~ msgid "set aside selected changes" #~ msgstr "отложить в сторону выбранные изменения" #~ msgid "Unshelve Error" #~ msgstr "Ошибка при Откладывании" #~ msgid "" #~ "Detected uncommitted local changes.\n" #~ "Do you want to discard them and continue?" #~ msgstr "" #~ "Обнаружены незафиксированные локальные изменения.\n" #~ "Отбросить их и продолжить?" #~ msgid "&Yes (--force)" #~ msgstr "&Да (--force)" #~ msgid "Saved at: %s" #~ msgstr "Сохранена в: %s" #~ msgid "Shelve - launch Shelve tool and continue" #~ msgstr "Отложить - запустить инструмент Откладывания и затем продолжить" #~ msgid "[canceled by user]\n" #~ msgstr "[отменено пользователем]\n" #~ msgid "Updated successfully" #~ msgstr "Успешное обновление" #~ msgid "Canceled updating" #~ msgstr "Обновление отменено" #~ msgid "Failed to update" #~ msgstr "Неудача при обновлении" #~ msgid "Unsupported line endings type: %s" #~ msgstr "Неподдерживаемый тип переносов строк: %s" #~ msgid "Show line numbers" #~ msgstr "Отображать номера строк" #~ msgid "Move is not enabled when multiple revisions are specified." #~ msgstr "Перемещение недоступно, когда указано несколько ревизий." #~ msgid "Copy is not enabled when multiple revisions are specified." #~ msgstr "Копирование недоступно, когда указано несколько ревизий." #~ msgid "" #~ "No movable files selected\n" #~ "\n" #~ "Note: only clean files can be moved." #~ msgstr "" #~ "Нет выбранных файлов для перемещения\n" #~ "\n" #~ "Примечание: только чистые (не изменённые) файлы могут быть перемещены." #~ msgid "Merge " #~ msgstr "Слияние " #~ msgid "Undo Commit" #~ msgstr "Отмена Фиксации" #~ msgid "Lang \"%s\" can not be set.\n" #~ msgstr "Язык \"%s\" не может быть установлен.\n" #~ msgid "revision to merge with" #~ msgstr "ревизия для слияния" #~ msgid "hgtk forget [FILE]..." #~ msgstr "hgtk forget [ФАЙЛ]..." #~ msgid "invalid state" #~ msgstr "неверное состояние" #~ msgid "%s branch" #~ msgstr "%s ветка" #~ msgid "only Merges" #~ msgstr "только Слияния" #~ msgid "merges" #~ msgstr "слияния" #~ msgid "Ancestry of %s" #~ msgstr "Предки %s" #~ msgid "revision ancestry" #~ msgstr "предки ревизии" #~ msgid "heads" #~ msgstr "головы" #~ msgid "working parents" #~ msgstr "родители рабочей" #~ msgid "Confirm Forced Push" #~ msgstr "Подтвердить Принудительное Проталкивание" #~ msgid "&Push" #~ msgstr "Протолкнуть" #~ msgid "no Merges" #~ msgstr "без Слияний" #~ msgid "Forced &Push" #~ msgstr "Принудительно Протолкнуть" #~ msgid "Repository is empty" #~ msgstr "Хранилище пусто" #~ msgid "" #~ "Forced push to repository\n" #~ "%s\n" #~ "(creating new heads if needed)?" #~ msgstr "" #~ "Принудительное проталкивание в хранилище\n" #~ "%s\n" #~ "(с созданием новых голов при необходимости)?" #~ msgid "Select files to add" #~ msgstr "Выберите файлы для добавления" #~ msgid "Failed to undo" #~ msgstr "Неудача при отмене" #~ msgid "Select files to forget" #~ msgstr "Выберите файлы для забывания" #~ msgid "Select files to remove" #~ msgstr "Выберите файлы для удаления" #~ msgid "Toggle all selections" #~ msgstr "Инвертировать все выбранные" #~ msgid "%s serve - %s" #~ msgstr "%s сервер - %s" #~ msgid "Rename " #~ msgstr "Переименовать " #~ msgid "No clean files selected" #~ msgstr "Не изменённые файлы не выбраны" #~ msgid "View missing" #~ msgstr "Отображать отсутствующие" #~ msgid "%s - synchronize" #~ msgstr "%s - синхронизация" #~ msgid "Please enter alias name" #~ msgstr "Пожалуйста укажите имя псевдонима" #~ msgid "Exit after saving changes?" #~ msgstr "Выход после сохранения изменений?" #~ msgid "Succeed" #~ msgstr "Успешно" #~ msgid "Open..." #~ msgstr "Открыть..." #~ msgid " %s is larger than the specified max diff size" #~ msgstr " %s больше, чем указанный максимальный размер различий" #~ msgid "Diff to _local" #~ msgstr "Сравнение с локальной" #~ msgid "Diff to second Parent" #~ msgstr "Сравнение со вторым Родителем" #~ msgid " - qnew" #~ msgstr " - новая заплатка MQ" #~ msgid " - qrefresh " #~ msgstr " - обновление заплатки MQ " #~ msgid "Close this" #~ msgstr "Закрыть это" #~ msgid "_Diff with selected" #~ msgstr "Сравнить с выбранной" #~ msgid "Visual Diff with selected" #~ msgstr "Сравнить Визуально с выбранной" #~ msgid "" #~ "To complete merging, you need to commit merged files in working " #~ "directory.\n" #~ "\n" #~ "Do you want to exit?" #~ msgstr "" #~ "Для завершения слияния необходима фиксация слитых файлов в рабочем " #~ "каталоге.\n" #~ "\n" #~ "Выйти всё равно?" #~ msgid "Visual diff checked files" #~ msgstr "Сравнить визуально отмеченные файлы" #~ msgid "View" #~ msgstr "Просмотр" #~ msgid "Nothing Diffed" #~ msgstr "Нечего Сравнивать" #~ msgid "not up to date" #~ msgstr "не соответствует текущему состоянию" #~ msgid "URL Details" #~ msgstr "Детали URL" #~ msgid "Diff" #~ msgstr "Сравнение" #~ msgid "invalid dialog result: %s" #~ msgstr "неверный результат вызова окна: %s" #~ msgid "Visual Diffs" #~ msgstr "Визуальное Сравнение" #~ msgid "Save as.." #~ msgstr "Сохранить как..." #~ msgid "%s - datamine" #~ msgstr "%s - поиск" #~ msgid "Datamine" #~ msgstr "Поиск" #~ msgid "Recovery" #~ msgstr "Восстановление" #~ msgid "Toggle log window" #~ msgstr "Отображать ход работы" #~ msgid "Command Log" #~ msgstr "Журнал Команды" #~ msgid "Canceled undo" #~ msgstr "Отмена отменена" #~ msgid "Rollback (undo) last transaction to repository (pull, commit, etc)" #~ msgstr "" #~ "Откатить (отменить) последнюю транзакцию хранилища (затягивание, фиксация " #~ "и т.д.)" #~ msgid "No revertable files selected" #~ msgstr "Нет выбранных файлов для отката" #~ msgid "Unshelve" #~ msgstr "Вернуть Отложенное" #~ msgid "restore shelved changes" #~ msgstr "вернуть отложенные изменения" #~ msgid "Select common ancestor revision" #~ msgstr "Выбрать ревизию общего предка" #~ msgid "Yes (&keep)" #~ msgstr "Да (сохранить)" #~ msgid "Yes (&discard changes)" #~ msgstr "Да (отбросить изменения)" #~ msgid "merging " #~ msgstr "слияние " #~ msgid "Repository Error: %s, refresh suggested" #~ msgstr "Сбой хранилища: %s, рекомендуется обновить" #~ msgid "_View" #~ msgstr "Вид" #~ msgid "_Forget" #~ msgstr "Забыть" #~ msgid "_Operations" #~ msgstr "Действия" #~ msgid "_Tools" #~ msgstr "Инструменты" #~ msgid "_Help" #~ msgstr "Справка" #~ msgid "_Navigate" #~ msgstr "Навигация" #~ msgid "_Synchronize" #~ msgstr "Синхронизация" #~ msgid "Repository Explorer" #~ msgstr "Обозреватель" #~ msgid "Re_vert" #~ msgstr "Откатить" #~ msgid "Show all matching revisions" #~ msgstr "Отобразить все соответствующие ревизии" #~ msgid "limit number of changes displayed" #~ msgstr "ограничивать количество отображаемых изменений" #~ msgid "Clean repository '%s' ?" #~ msgstr "Очистить хранилище '%s' от изменений?" #~ msgid "Add/Remove _Tag..." #~ msgstr "Добавить/Удалить Метку..." #~ msgid "tagged revisions" #~ msgstr "отмеченные ревизии" #~ msgid "Tagged" #~ msgstr "С метками" #~ msgid "Tagged Revisions" #~ msgstr "Ревизии С Метками" #~ msgid "revision number, changeset ID, branch or tag" #~ msgstr "номер ревизии, ID набора изменений, ветка или метка" #~ msgid "A new version of TortoiseHg is ready for download!" #~ msgstr "Новая версия TortoiseHg доступна для загрузки!" #~ msgid "Bookmark \"%s\" has been added" #~ msgstr "Закладка \"%s\" была добавлена" #~ msgid "Bookmark \"%s\" has been moved" #~ msgstr "Закладка \"%s\" была перемещена" #~ msgid "Bookmark \"%s\" has been removed" #~ msgstr "Закладка \"%s\" была удалена" #~ msgid "Unable to save file" #~ msgstr "Невозможно сохранить файл" #~ msgid "unexpected type: %s" #~ msgstr "неожиданный тип: %s" #~ msgid "Old name:" #~ msgstr "Старое имя:" #~ msgid "Bookmark input is empty" #~ msgstr "Не указана закладка" #~ msgid "Please enter bookmark name" #~ msgstr "Пожалуйста введите имя закладки" #~ msgid "Error in bookmarking" #~ msgstr "Ошибка при установке закладки" #~ msgid "Bookmark name is empty" #~ msgstr "Нет имени закладки" #~ msgid "Please select bookmark name to remove" #~ msgstr "Пожалуйста укажите имя убираемой закладки" #~ msgid "Bookmark new name input is empty" #~ msgstr "Не указано новое имя закладки" #~ msgid "Please enter new bookmark name" #~ msgstr "Пожалуйста укажите новое имя закладки" #~ msgid "Bookmark \"%s\" has been renamed to \"%s\"" #~ msgstr "Закладка \"%s\" была переименована в \"%s\"" #~ msgid "No bookmark named \"%s\" exists" #~ msgstr "Нет закладки с именем\"%s\"" #~ msgid "type" #~ msgstr "тип" #~ msgid "browser" #~ msgstr "обозреватель" #~ msgid "Not at head" #~ msgstr "Не на голове" #~ msgid "Aborted committing" #~ msgstr "Фиксация прервана" #~ msgid "Failed to commit" #~ msgstr "Неудача при фиксации" #~ msgid "Committing changes..." #~ msgstr "Фиксация изменений..." #~ msgid "C_onfigure Format..." #~ msgstr "Настройка Формата..." #~ msgid "Updating..." #~ msgstr "Обновление..." #~ msgid "Selecting %(sel)d, displaying %(count)d of %(total)d items" #~ msgstr "Выбрано %(sel)d, отображаются %(count)d из %(total)d" #~ msgid "Displaying all items" #~ msgstr "Отображаются все" #~ msgid "_View File at Revision" #~ msgstr "Показать Файл для Ревизии" #~ msgid "_Zoom to Change" #~ msgstr "Перейти к Изменению" #~ msgid "" #~ "Select language for spell checking.\n" #~ "\n" #~ "Empty is for the default language.\n" #~ "When all text is highlited, the dictionary\n" #~ "is probably not installed.\n" #~ "\n" #~ "examples: en, en_GB, en_US" #~ msgstr "" #~ "Выберите язык проверки правописания.\n" #~ "\n" #~ "Пустое для языка по умолчанию.\n" #~ "Если подсвечен весь текст, то скорее\n" #~ "всего словарь не установлен.\n" #~ "\n" #~ "например: en, en_GB, en_US" #~ msgid "mpatch error" #~ msgstr "ошибка mpatch" #~ msgid "mpatch expects *.rej file argument\n" #~ msgstr "mpatch предполагает *.rej файл в качестве аргумента\n" #~ msgid "%s does not exist\n" #~ msgstr "%s не существует\n" #~ msgid "import to the repository" #~ msgstr "импорт в хранилище" #~ msgid "hgtk import [OPTION] [SOURCE]..." #~ msgstr "hgtk import [ПАРАМЕРТ] [ИСТОЧНИК]..." #~ msgid "hgtk shellconfig" #~ msgstr "hgtk shellconfig" #~ msgid "Reset revision marks" #~ msgstr "Сбросить отмечающие знаки ревизий" #~ msgid "Launch commit tool" #~ msgstr "Запуск инструмента фиксации" #~ msgid "Launch data mining tool" #~ msgstr "Запуск поискового инструмента" #~ msgid "Launch recovery tool" #~ msgstr "Запуск инструмент восстановления" #~ msgid "Launch web server" #~ msgstr "Запуск веб сервера" #~ msgid "Launch shelve tool" #~ msgstr "Запуск инструмента откладывания" #~ msgid "Branches" #~ msgstr "Ветки" #~ msgid "_Perforce" #~ msgstr "Perforce" #~ msgid "Identify" #~ msgstr "Определить" #~ msgid "Pending" #~ msgstr "Ожидающие" #~ msgid "Import..." #~ msgstr "Импорт..." #~ msgid "Custom" #~ msgstr "Другой" #~ msgid "Submitted" #~ msgstr "Предоставлено" #~ msgid "Finding pending Perforce changelists..." #~ msgstr "Поиск ожидающих списков изменений Perforce..." #~ msgid "Pending Perforce changelists" #~ msgstr "Ожидающие списки изменений Perforce" #~ msgid "Perforce changelist %s" #~ msgstr "Список изменений Perforce %s" #~ msgid "Unable to find rev %s" #~ msgstr "Не удалось найти ревизию %s" #~ msgid "Aborted p4identify" #~ msgstr "Прервано p4identify" #~ msgid "Unable to identify Perforce tip" #~ msgstr "Не удалось определить оконечную Perforce" #~ msgid "Finding tip Perforce changelist..." #~ msgstr "Поиск оконечного списка изменений Perforce..." #~ msgid "Identifying Perforce tip" #~ msgstr "Определение оконечной Perforce" #~ msgid "Revision Number/ID" #~ msgstr "Номер Ревизии/ID" #~ msgid "Current patch: %s, " #~ msgstr "Текущая заплатка: %s, " #~ msgid "_Copy Hash" #~ msgstr "Скопировать Хеш" #~ msgid "Pull to Here" #~ msgstr "Затянуть до Сюда" #~ msgid "Push to Here" #~ msgstr "Протолкнуть Сюда" #~ msgid "Export" #~ msgstr "Экспорт" #~ msgid "Tag" #~ msgstr "Метка" #~ msgid "Mercurial Queues" #~ msgstr "Серии Заплаток MQ" #~ msgid "Transp_lant to Local" #~ msgstr "Трансплантировать на Локальную" #~ msgid "Bisect" #~ msgstr "Поиск делением" #~ msgid "Add/Move/Remove B_ookmark..." #~ msgstr "Добавить/Переместить/Убрать Закладку..." #~ msgid "Rename Bookmark..." #~ msgstr "Переименовать Закладку..." #~ msgid "Import Revision to MQ" #~ msgstr "Импортировать Ревизию в MQ" #~ msgid "Reset" #~ msgstr "Сбросить" #~ msgid "Mark as Good" #~ msgstr "Отметить как Хорошую" #~ msgid "Mark as Bad" #~ msgstr "Отметить как Плохую" #~ msgid "Skip Testing" #~ msgstr "Пропустить Тестирование" #~ msgid "Import from here to selected to MQ" #~ msgstr "Импортировать от сюда до выбранной в MQ" #~ msgid "Import patches" #~ msgstr "Импортировать заплатки" #~ msgid "%d incoming changesets" #~ msgstr "%d входящих наборов изменений" #~ msgid "Aborted incoming" #~ msgstr "Поиск входящих прерван" #~ msgid "No incoming changesets" #~ msgstr "Нет входящих наборов изменений" #~ msgid "Checking incoming changesets..." #~ msgstr "Проверяются входящие изменения" #~ msgid "Finished pull with rebase" #~ msgstr "Завершено затягивание с перебазированием" #~ msgid "Finished pull" #~ msgstr "Завершено затягивание" #~ msgid "No changesets to pull" #~ msgstr "Нет наборов изменений для затягивания" #~ msgid "Aborted pull" #~ msgstr "Затягивание прервано" #~ msgid "Pulling changesets..." #~ msgstr "Затягиваются наборы изменений..." #~ msgid "Aborted outgoing" #~ msgstr "Поиск исходящих прерван" #~ msgid "Checking outgoing changesets..." #~ msgstr "Проверка исходящих наборов изменений..." #~ msgid "Finished push" #~ msgstr "Завершено проталкивание" #~ msgid "Aborted push" #~ msgstr "Проталкивание прервано" #~ msgid "Pushing changesets..." #~ msgstr "Проталкиваются наборы изменений..." #~ msgid "unknown dnd dest: %s" #~ msgstr "неизвестное приемник dnd: %s" #~ msgid "Finish importing" #~ msgstr "Импорт завершен" #~ msgid "Aborted importing" #~ msgstr "Импорт прерван" #~ msgid "Failed to import" #~ msgstr "Неудача при импорте" #~ msgid "Importing" #~ msgstr "Импорт" #~ msgid "Importing to Patch Queue..." #~ msgstr "Импорт в Очередь Заплаток..." #~ msgid "Finished push to revision %s" #~ msgstr "Завершено проталкивание до ревизии %s" #~ msgid "Pushing changesets to revision %s..." #~ msgstr "Проталкивание наборов изменений до ревизии %s" #~ msgid "Push to %s" #~ msgstr "Протолкнуть до %s" #~ msgid "Pulling changesets to revision %s..." #~ msgstr "Затягивание наборов изменений до ревизии %s..." #~ msgid "Pull to %s" #~ msgstr "Затягивание до %s" #~ msgid "Rev/ID" #~ msgstr "Ревизия/ID" #~ msgid "Discard all changes from merge target (other) revision" #~ msgstr "Отбросить все изменения вплоть до целевой (другой) ревизии слияния" #~ msgid "Cannot merge" #~ msgstr "Слияние невозможно" #~ msgid "Uncommitted local changes" #~ msgstr "Незафиксированные локальные изменения" #~ msgid "Changelist:" #~ msgstr "Список изменений:" #~ msgid "Submit" #~ msgstr "Предоставить" #~ msgid "Defaulting to " #~ msgstr "По умолчанию " #~ msgid "<- Top" #~ msgstr "<- Вверх" #~ msgid "Sub ->" #~ msgstr "В под меню ->" #~ msgid "Show the taskbar icon (restart needed)" #~ msgstr "Отображать значок в панели задач (нежен перезапуск)" #~ msgid "S: subrepo" #~ msgstr "S: подхранилище" #~ msgid "===== Diff to first parent %d:%s =====\n" #~ msgstr "===== Различия с первым родителем %d:%s =====\n" #~ msgid "" #~ "\n" #~ "===== Diff to second parent %d:%s =====\n" #~ msgstr "" #~ "\n" #~ "===== Различия со вторым родителем %d:%s =====\n" #~ msgid "unknown field name: %s" #~ msgstr "неизвестное название поля: %s" #~ msgid "invalid pack direction: %s" #~ msgstr "неверное направление упаковки: %s" #~ msgid "invalid alignment value: %s" #~ msgstr "неверное значение выравнивания: %s" #~ msgid "" #~ "The editor to use during a commit and other instances where Mercurial " #~ "needs multiline input from the user. Used by command line commands, " #~ "including patch import." #~ msgstr "" #~ "Редактор для использования во время фиксации и других случаев, когда " #~ "Mercurial требуется ввод нескольких строк пользователем. Используется " #~ "инструментами командной строки, включая импорт заплаток." #~ msgid "" #~ "Specify the number of spaces that tabs expand to in various TortoiseHg " #~ "windows. Default: Not expanded" #~ msgstr "" #~ "Укажите количество пробелов, на которые будет заменяться символ табуляции " #~ "в различных окнах TortoiseHg. По умолчанию: Не заменяются" #~ msgid "Capture stderr" #~ msgstr "Захватывать stderr" #~ msgid "Toolbar Style" #~ msgstr "Стиль Панели Инструментов" #~ msgid "Coloring Style" #~ msgstr "Стиль Расцветки" #~ msgid "" #~ "Default language for spell check. System language is used if not " #~ "specified. Examples: en, en_GB, en_US" #~ msgstr "" #~ "Язык по умолчанию для проверки правописания. Если не указан, то " #~ "используется язык системы. Примеры: en, en_GB, en_US" #~ msgid "Set as _default" #~ msgstr "Использовать по умолчанию" #~ msgid "Insufficient access rights, reverting to read-onlymode." #~ msgstr "Недостаточно прав доступа, возврат к режиму только для чтения" #~ msgid "" #~ "%s\n" #~ "Reverting to read-only mode." #~ msgstr "" #~ "%s\n" #~ "Возврат к режиму для чтения." #~ msgid "Import" #~ msgstr "Импортировать" #~ msgid "Imported successfully" #~ msgstr "Успешный импорт" #~ msgid "Canceled importing" #~ msgstr "Импорт отменён" #~ msgid "Confirm Close" #~ msgstr "Подтверждение закрытия" #~ msgid "Do you want to close?" #~ msgstr "Вы хотите закрыть?" #~ msgid "Select Patches" #~ msgstr "Выбор заплаток" #~ msgid "Select Directory contains patches:" #~ msgstr "Выбор каталога содержащего заплатки:" #~ msgid "%s will be imported to the" #~ msgstr "%s будет импортировано в" #~ msgid "unexpected destination name: %s" #~ msgstr "неожиданное имя назначения: %s" #~ msgid "Patch" #~ msgstr "Заплатка" #~ msgid "Do you want to delete '%(name)s'?" #~ msgstr "Вы хотите удалить '%(name)s'?" #~ msgid "Do you want to delete these patches?" #~ msgstr "Вы хотите удалить эти заплатки?" #~ msgid "invalid reorder operation: %s" #~ msgstr "неверная операция изменения порядка: %s" #~ msgid "Top" #~ msgstr "В Самый Верх" #~ msgid "Up" #~ msgstr "Вверх" #~ msgid "Down" #~ msgstr "Вниз" #~ msgid "Bottom" #~ msgstr "В Самый Низ" #~ msgid "_Goto" #~ msgstr "Перейти" #~ msgid "_Rename" #~ msgstr "Переименовать" #~ msgid "_Finish Applied" #~ msgstr "Завершить Применённые" #~ msgid "_Delete" #~ msgstr "Удалить" #~ msgid "F_old" #~ msgstr "Объединить" #~ msgid "_Shelve" #~ msgstr "Отложить" #~ msgid "Backup all (default)" #~ msgstr "Создать резервную копию всего (по умолчанию)" #~ msgid "%s changesets" #~ msgstr "%s наборов изменений" #~ msgid "Always show log" #~ msgstr "Всегда отображать журнал" #~ msgid "cleaning up temp directory\n" #~ msgstr "очистка временного каталога\n" #~ msgid "revisions %d to %d" #~ msgstr "ревизии от %d до %d" #~ msgid "patching file %s\n" #~ msgstr "применяется заплатка к файлу %s\n" #~ msgid "file %s already exists\n" #~ msgstr "файл %s уже существуют\n" #~ msgid "could not extract binary patch" #~ msgstr "невозможно извлечь двоичную заплатку" #~ msgid "binary patch is %d bytes, not %d" #~ msgstr "двоичная заплатка %d байтов, а не %d" #~ msgid "malformed patch %s %s" #~ msgstr "испорченная заплатка %s %s" #~ msgid "neither parent is a head, commit to add a new head" #~ msgstr "не один родитель не является головой, фиксация добавит новую голову" #~ msgid "tag '%s' does not exist" #~ msgstr "метка '%s' не существует" #~ msgid "tag '%s' is not a local tag" #~ msgstr "метка '%s' не является локальной" #~ msgid "" #~ "Font used for diffs in status and commit tools. Default: monospace 10" #~ msgstr "" #~ "Шрифт используемый для текста различий в инструментах статуса и фиксации. " #~ "По умолчанию: monospace 10" #~ msgid "Commit Message" #~ msgstr "Заметка Фиксации" #~ msgid "" #~ "Font used in changeset viewer and commit log text. Default: monospace 10" #~ msgstr "" #~ "Шрифт используемый при просмотре набора изменений и журнала фиксации. По " #~ "умолчанию: monospace 10" #~ msgid "Diff Text" #~ msgstr "Текст Различий" #~ msgid "tag '%s' is not a global tag" #~ msgstr "метка '%s' не является глобальной" #~ msgid " - Select Preset -" #~ msgstr " - Выбор схемы -" #~ msgid "Font" #~ msgstr "Шрифт" #~ msgid "Preset fonts:" #~ msgstr "Схемы шрифтов:" #~ msgid "Custom fonts:" #~ msgstr "Другие шрифты:" #~ msgid "Theme default fonts" #~ msgstr "Шрифты темы по умолчанию" #~ msgid "Font used in command output window. Default: monospace 10" #~ msgstr "" #~ "Шрифт используемый в окне вывода команды. По умолчанию: monospace 10" #~ msgid "Japanese on Windows" #~ msgstr "Японский под Windows" #~ msgid "File List" #~ msgstr "Список Файлов" #~ msgid "Font used in file lists in status and commit tools. Default: sans 9" #~ msgstr "" #~ "Шрифт используемый для списка файлов в инструментах статуса и фиксации. " #~ "По умолчанию: sans 9" #~ msgid "Command Output" #~ msgstr "Вывод Команды" #~ msgid "a bookmark named \"%s\" already exists" #~ msgstr "закладка с именем \"%s\" уже существует" #~ msgid "" #~ "Repository name to use in the web interface. Default is the working " #~ "directory." #~ msgstr "" #~ "Имя хранилища используемое в веб интерфейсе. По умолчанию совпадает с " #~ "рабочим каталогом." #~ msgid "Unable to determine repository status" #~ msgstr "Не удалось определить статус хранилища" #~ msgid "series become inconsistent during reorder" #~ msgstr "последовательность при изменении порядка перестала быть целостной" #~ msgid "Switch after saving changes?" #~ msgstr "Пеключить после сохранения изменений?" #~ msgid "Null changeset is not viewable" #~ msgstr "Нельзя просмотреть недействительный набор изменений" #~ msgid "Changeset not found in current view" #~ msgstr "Набор изменений не найден в текущем представлении" #~ msgid "Finished committing" #~ msgstr "Завершенная передача" #~ msgid "" #~ "Create new named branch \"%s\" with this commit?\n" #~ "Yes\t- Start new branch with this commit\n" #~ "No\t- Make commit without branch change\n" #~ "Cancel - Cancel this commit" #~ msgstr "" #~ "Создать новую ветку \"%s\" с фиксацией данных изменений?\n" #~ "Да\t- Начать новую ветку зафиксировать изменения\n" #~ "Нет\t- Зафиксировать изменения без изменения ветки\n" #~ "Отмена - Не фиксировать изменения" #~ msgid "" #~ "Named branch \"%s\" already exists, last used in revision %d\n" #~ "Yes\t- Make commit restarting this named branch\n" #~ "No\t- Make commit without changing branch\n" #~ "Cancel - Cancel this commit" #~ msgstr "" #~ "Название ветки \"%s\" уже существует, последняя используется в ревизии " #~ "%d\n" #~ "Да\t- Зафиксировать изменения переименовав ветку\n" #~ "Нет\t- Зафиксировать изменения без изменений ветки\n" #~ "Отмена - Не фиксировать изменения" #~ msgid "Please try again after the running operation is completed" #~ msgstr "Повторите снова после завершения текущей операции" #~ msgid "_Diff to Local" #~ msgstr "_Различия с локальным" #~ msgid ", please refresh" #~ msgstr ", обновите пожалуйста" #~ msgid "Please try again after the previous command has completed" #~ msgstr "Пожалуйста попробуйте снова после завершения предыдущей операции" #~ msgid "Show/Hide Patch Branch" #~ msgstr "Показать/спрятать заплатку ветки" #~ msgid "Push new branch" #~ msgstr "Создать новую ветку" #~ msgid "No matches" #~ msgstr "Нет совпадений" #~ msgid "No revisions matched search" #~ msgstr "Нет ревизий соответствующих поиску" #~ msgid "Status: %s" #~ msgstr "Состояние: %s" #~ msgid "Rollback repository '%s' to %d, undo %s?" #~ msgstr "Откатив изменения репозитория '%s' в %d, отменив %s?" #~ msgid "Menu Items" #~ msgstr "Пункты меню" #~ msgid "Show overlay icons in Mercurial repositories" #~ msgstr "Показать наложение иконок в репозиториях Mercurial" #~ msgid "Show overlays on local disks only" #~ msgstr "Показывать наложения только на локальных дисках" #~ msgid "file patterns \"%s\"" #~ msgstr "маски файла \"%s\"" #~ msgid "Rollback repository '%s' to %d, undo %s from %s?" #~ msgstr "Откатить изменения репозитория '%s' в %d, отменив %s из %s?" #~ msgid "Archived successfully" #~ msgstr "Архивация успешна" #~ msgid "Uncommitted Local Changes" #~ msgstr "Незафиксированные локальные изменения" #~ msgid "Show message" #~ msgstr "Показать сообщение" #~ msgid "Show internal branches" #~ msgstr "Показать внутренние ветки" #~ msgid "unable to clean temp directory: %s\n" #~ msgstr "невозможно очистить временный каталог %s\n" #~ msgid "Show title" #~ msgstr "Показать заголовок" #~ msgid "Show graph" #~ msgstr "Показать граф" #~ msgid "" #~ "The destination \"%s\" already exists!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "Путь назначения \"%s\" уже существует!\n" #~ "\n" #~ "Вы уверены, что хотите перезаписать его?" #~ msgid "Bookmarking completed" #~ msgstr "Установка закладок завершена" #~ msgid "_Visual Diff" #~ msgstr "_Различия" #~ msgid "File is binary.\n" #~ msgstr "Двоичный файл.\n" #~ msgid "Commit failed" #~ msgstr "Сбой фиксации" #~ msgid " - Select Issue Tracker -" #~ msgstr " - Выберите Issue-трекер -" #~ msgid "_new" #~ msgstr "_новая" #~ msgid "Push this Branch" #~ msgstr "Оставьте эту ветвь" #~ msgid "" #~ "No issue link found in the commit message.The commit message should " #~ "contain an issue link. Configure this in the 'Issue' section in the " #~ "settings" #~ msgstr "" #~ "Ссылки на ошибки не найдены в сообщении фиксации. Сообщение фиксации " #~ "должно содержать ссылку на ошибку. Это настраивается в секции 'Ошибки' в " #~ "настройках" #~ msgid "Configure Plugin" #~ msgstr "Настройка плагина" #~ msgid "" #~ "Push to remote repository\n" #~ "%s\n" #~ "(creating new branches in remote if needed)?" #~ msgstr "" #~ "Протолкнуть удалённое хранилище\n" #~ "%s\n" #~ "(создавать новые ветки при необходимости)?" #~ msgid "Pushing branch %s..." #~ msgstr "Проталкивание ветки %s" #~ msgid "Finished pushing branch %s" #~ msgstr "Проталкивание ветки %s завершено" #~ msgid "Allow pushing a new branch" #~ msgstr "Позволить проталкивание новой ветки" #~ msgid "Revert files?" #~ msgstr "Вернуть файлы?" #~ msgid "Finished committing and pushing" #~ msgstr "Фиксация и проталкивание завершены" #~ msgid "Nothing Commited" #~ msgstr "Ничего не зафиксировано" #~ msgid "New Patch Name" #~ msgstr "Название новой заплатки" #~ msgid "List Font" #~ msgstr "Шрифт списков" #~ msgid "" #~ "Detected uncommitted local changes in working tree.\n" #~ "Please select to continue:\n" #~ "\n" #~ msgstr "" #~ "Обнаружены незафиксированные локальные изменения в рабочем дереве.\n" #~ "Пожалуйста, выберите один из вариантов продолжения:\n" #~ "\n" #~ msgid "Verify" #~ msgstr "Проверить целостность" #~ msgid "Recover" #~ msgstr "Восстановить" #~ msgid "Changeset Description" #~ msgstr "Описание набора изменений" #~ msgid "TortoiseHg Clone" #~ msgstr "Клонирование TortoiseHg" #~ msgid "" #~ "Changesets within the interval, see help dates" #~ msgstr "" #~ "Наборы изменений в интервале дат, см. справку по датам." #~ msgid "" #~ "help " #~ "revsets" #~ msgstr "" #~ "справка по " #~ "наборам ревизий" #~ msgid "Mark unresolved" #~ msgstr "Отметить неулаженным" #~ msgid "Mark resolved" #~ msgstr "Отметить улаженным" #~ msgid "unexpected response id: %s" #~ msgstr "неожиданный id ответа: %s" #~ msgid "Recent commit messages..." #~ msgstr "Недавние сообщения фиксации..." #~ msgid "Patch Preview" #~ msgstr "Просмотр заплатки" #~ msgid "Commit Preview" #~ msgstr "Просмотр фиксации" #~ msgid "Bug Traq" #~ msgstr "Система отслеживания ошибок." #~ msgid "Message format configuration error" #~ msgstr "Ошибка настройки формата сообщения" #~ msgid "Confirm Commit" #~ msgstr "Подтвердить фиксацию" #~ msgid "Selecting %(sel)d of %(total)d, displaying all items" #~ msgstr "Выбрано %(sel)d из %(total)d, отображаются все" #~ msgid "New Search" #~ msgstr "Новый поиск" #~ msgid "Matches" #~ msgstr "Совпадения" #~ msgid "Spell Check Language" #~ msgstr "Язык для проверки правописания" #~ msgid "Minimum Simularity Percentage" #~ msgstr "Минимальный процент схожести" #~ msgid "Unrevisioned Files" #~ msgstr "Файлы, не входящие в ревизии" #~ msgid "Find Copies" #~ msgstr "Найти копии" #~ msgid "Candidate Matches" #~ msgstr "Кандидаты на совпадение" #~ msgid "Accept Match" #~ msgstr "Принять совпадение" #~ msgid "Differences from Source to Dest" #~ msgstr "Различия между источником и приемником" #~ msgid "finding source of " #~ msgstr "поиск источника для " #~ msgid "Email Mercurial Patches" #~ msgstr "Отправить заплатки Mercurial по почте" #~ msgid "TortoiseHg Init" #~ msgstr "TortoiseHg инициализация" #~ msgid "Run Commit after init" #~ msgstr "Нажмите «Фиксировать» после инициализации" #~ msgid "Invalid revision set" #~ msgstr "Неверный набор ревизий" #~ msgid "Invalid date specification" #~ msgstr "Неверный формат даты" #~ msgid "Invalid file pattern" #~ msgstr "Неверная маска файла." #~ msgid "Confirm Push of New Branches to Remote Repository" #~ msgstr "Подтвердите, что новая ветка будет оставлена в удаленном хранилище." #~ msgid "Finished pull to revision %s" #~ msgstr "Завершено затягивание до ревизии %s" #~ msgid "Outstanding uncommitted changes" #~ msgstr "Исходящие незафиксированные изменения" #~ msgid "Recover from interrupted operation" #~ msgstr "Восстановление после прерванного действия" #~ msgid "Invalid port 2048..65535" #~ msgstr "Неверный порт 2048..65535" #~ msgid "Save Preview" #~ msgstr "Просмотр сохраняемого" #~ msgid "No diffable files selected" #~ msgstr "Не выбраны файлы для сравнения" #~ msgid "Show no merges" #~ msgstr "Не отображать слияния" #~ msgid "Custom commit message is empty" #~ msgstr "Не указано сообщение фиксации" #~ msgid "" #~ "Maximum length of the commit message summary line. If set, TortoiseHg " #~ "will issue a warning if the summary line is too long or not separated by " #~ "a blank line. Default: 0 (unenforced)" #~ msgstr "" #~ "Максимальная длина строки сводки сообщения фиксации. Если установлено, то " #~ "TortoiseHg будет предупреждать, когда строка сводки слишком длинная или " #~ "не отделена пустой строкой. По умолчанию: 0 (без ограничения)" #~ msgid "Select Local Folder" #~ msgstr "Выберите локальную папку" #~ msgid "Alias name is empty" #~ msgstr "Пустое имя псевдонима" #~ msgid "Confirm Switch" #~ msgstr "Подтвердить переключение" #~ msgid "TortoiseHg Configure Repository - " #~ msgstr "TortoiseHg конфигурация хранилища - " #~ msgid "Unable to parse a config file" #~ msgstr "Не удалось разобрать файл конфигурации" #~ msgid "Skipped saving path with no alias" #~ msgstr "Пути без псевдонимов были пропущены при сохранении" #~ msgid "Reorder" #~ msgstr "Переупорядочить" #~ msgid "Applied MQ patch" #~ msgstr "Применена заплатка MQ" #~ msgid "Backup unrelated changesets (-b/--backup)" #~ msgstr "Создать резервную копию несвязанных наборов изменений (-b/--backup)" #~ msgid "Unable to delete temp files" #~ msgstr "Не удалось удалить временные файлы" #~ msgid "removing backup file : %r\n" #~ msgstr "удаление резервного файла : %r\n" #~ msgid "Diff to Local" #~ msgstr "Сравнить с локальным" #~ msgid "Refresh required" #~ msgstr "Требуется обновить изображение" #~ msgid "unknown hunk type: %s" #~ msgstr "неизвестный тип лоскута: %s" #~ msgid "[no hunks to display]" #~ msgstr "[нет лоскутов для отображения]" #~ msgid "Hunk selection is disabled for this file.\n" #~ msgstr "Выбор лоскутов отключён для этого файла.\n" #~ msgid "Ignore Max Diff Size" #~ msgstr "Игнорировать максимальный размер различий" #~ msgid "Always Show Output" #~ msgstr "Всегда отображать вывод" #~ msgid "Patch Contents" #~ msgstr "Содержимое заплатки" #~ msgid "Index" #~ msgstr "Предметный указатель" #~ msgid " Messages and Errors" #~ msgstr " Сообщения и ошибки" #~ msgctxt "changesets" #~ msgid "All" #~ msgstr "Все" #~ msgid "Hide Merges" #~ msgstr "Скрыть слияния" #~ msgid "Branch Filter" #~ msgstr "Фильтр веток" #~ msgid "Custom Filter" #~ msgstr "Настраиваемый фильтр" #~ msgid "File Patterns" #~ msgstr "Шаблоны файлов" #~ msgid "Reset _Marks" #~ msgstr "Снять отметки" #~ msgid "Sync Bar" #~ msgstr "Панель синхронизации" #~ msgid "Load more Revisions" #~ msgstr "Загрузить больше ревизий" #~ msgid "Load all Revisions" #~ msgstr "Загрузить все ревизии" #~ msgid "Filter Bar" #~ msgstr "Панель фильтрации" #~ msgid "Reset Marks" #~ msgstr "Очистить отметки" #~ msgid "Choose Details..." #~ msgstr "Выбрать колонки..." #~ msgid "Compact Graph" #~ msgstr "Компактный граф" #~ msgid "Color by Branch" #~ msgstr "Раскраска веток" #~ msgid "Working Parent" #~ msgstr "Родитель рабочей" #~ msgid "Previously Selected" #~ msgstr "Ранее выбранная" #~ msgid "Email..." #~ msgstr "Отправить почтой..." #~ msgid "Configure Paths..." #~ msgstr "Настроить пути..." #~ msgid "Revision Range" #~ msgstr "Диапазон ревизий" #~ msgid "'%s' filter:" #~ msgstr "Фильтр '%s':" #~ msgid "After Pull:" #~ msgstr "После затягивания:" #~ msgid "st" #~ msgstr "сост." #~ msgid "Text Diff" #~ msgstr "Различия текстом" #~ msgid "Hunk Selection" #~ msgstr "Выбор лоскута" #~ msgid "Shelf Preview" #~ msgstr "Предпросмотр долгого ящика" #~ msgid "" #~ "Adjust the coloring style of diff lines in the changeset viewer. Default: " #~ "foreground" #~ msgstr "" #~ "Настроить стиль расцветки строк различий при просмотре набора изменений. " #~ "По умолчанию: foreground" #~ msgid "Shelf Contents" #~ msgstr "Содержимое долгого ящика" #~ msgid "Shelve file exists!" #~ msgstr "Файл долгого ящика существует!" #~ msgid "" #~ "total: %d hunks (%d changed lines); selected: %d hunks (%d changed lines)" #~ msgstr "" #~ "всего: %d лоскутов (%d изменённых строк); выбрано: %d лоскутов (%d " #~ "изменённых строк)" #~ msgid "%d hunks, %d lines changed\n" #~ msgstr "%d лоскутов, %d строк изменилось\n" #~ msgid "bad hunk #%d %s (%d %d %d %d)" #~ msgstr "плохой лоскут #%d %s (%d %d %d %d)" #~ msgid "Hunk #%d succeeded at %d with fuzz %d (offset %d lines).\n" #~ msgstr "" #~ "Лоскут #%d наложен успешно для %d с погрешностью %d (смещение %d строк).\n" #~ msgid "Hunk #%d succeeded at %d (offset %d lines).\n" #~ msgstr "Лоскут #%d наложен успешно для %d (смещение %d строк).\n" #~ msgid "Hunk #%d FAILED at %d\n" #~ msgstr "Лоскут #%d наложен НЕУДАЧНО для %d\n" #~ msgid "bad hunk #%d" #~ msgstr "плохой лоскут #%d" #~ msgid "bad hunk #%d old text line %d" #~ msgstr "плохой лоскут #%d старая строка текста %d" #~ msgid "No valid hunks found" #~ msgstr "Не найдено подходящих лоскутов" #~ msgid "hunk %d already applied at line %d (fuzz %d)\n" #~ msgstr "лоскут %d уже наложен в строке %d (степень схожести %d)\n" #~ msgid "Font used to display file lists. Default: sans 9" #~ msgstr "Шрифт для отображения списков файлов. По умолчанию: sans 9" #~ msgid "" #~ "Comma separated list of inclusion patterns. By default, the entire " #~ "repository is searched." #~ msgstr "" #~ "Разделяемый запятыми список шаблонов включения. По умолчанию, поиск " #~ "ведётся по всему хранилищу." #~ msgid "" #~ "Comma separated list of exclusion patterns. Exclusion patterns are " #~ "applied after inclusion patterns." #~ msgstr "" #~ "Разделяемый запятыми список шаблонов исключения. Шаблоны исключения " #~ "применяются после шаблонов включения." #~ msgid "Default Tab" #~ msgstr "Вкладка по умолчанию" #~ msgid "Use Expander" #~ msgstr "Использовать расширитель" #~ msgid "Annotate" #~ msgstr "Аннотировать" #~ msgid "_Annotate File" #~ msgstr "_Аннотировать файл" #~ msgid "Annotate Second Parent" #~ msgstr "_Аннотировать второго родителя" #~ msgid "_Annotate First Parent" #~ msgstr "_Аннотировать первого родителя" #~ msgid "_Annotate Parent" #~ msgstr "_Аннотировать родителя" #~ msgid "TortoiseHg Shell Configuration" #~ msgstr "Конфигурация оболочки TortoiseHg" #~ msgid "_Revert File Contents" #~ msgstr "_Вернуть содержимое файла" #~ msgid "Enable _Wordwrap" #~ msgstr "Включить _перенос по словам" #~ msgid "_Merge with..." #~ msgstr "_Слияние с..." #~ msgid "_Revert" #~ msgstr "_Откатить" #~ msgid "Confirm Revert All Files" #~ msgstr "Подтвердите возвращение всех файлов" #~ msgid "" #~ "Revert all files to revision %d?\n" #~ "This will overwrite your local changes" #~ msgstr "" #~ "Вернуть все файлы к ревизии %d?\n" #~ "Локальные изменения будут перезаписаны" #~ msgid "Select files to revert" #~ msgstr "Выберите файлы для возвращения" #~ msgid "Revert checked files" #~ msgstr "Вернуть отмеченные файлы" #~ msgid "Nothing Reverted" #~ msgstr "Ничего не возвращено" #~ msgid "Nothing Added" #~ msgstr "Ничего не добавлено" #~ msgid "Nothing Removed" #~ msgstr "Ничего не удалено" #~ msgid "Nothing Moved" #~ msgstr "Ничего не перемещено" #~ msgid "Nothing Forgotten" #~ msgstr "Ничего не забыто" #~ msgid "_Guess Rename..." #~ msgstr "_Угадать Переименование" #~ msgid "_Ignore" #~ msgstr "_Игнорировать" #~ msgid "_Copy..." #~ msgstr "_Копировать..." #~ msgid "Nothing Copied" #~ msgstr "Ничего не скопировано" #~ msgid "Revert not allowed when viewing revision range." #~ msgstr "Возвращение не допускается, когда просматривается диапазон ревизий." #~ msgid "" #~ "Word wrap length of the commit message. If set, the popup menu can be " #~ "used to format the message and a warning will be issued if any lines are " #~ "too long at commit. Default: 0 (unenforced)" #~ msgstr "" #~ "Длина строки сообщения фиксации для переноса по словам. Если установлено, " #~ "то для форматирования сообщения фиксации можно использовать команду " #~ "всплывающее меню, а также будет появляться предупреждение о превышении " #~ "допустимой длинны строки. По умолчанию: 0 (без проверок)" #~ msgid "%d out of %d hunks FAILED -- saving rejects to file %s\n" #~ msgstr "" #~ "%d из %d лоскутов наложены НЕУДАЧНО -- отверженные сохранены в файл %s\n" #~ msgid "Confirm revert file to old revision" #~ msgstr "Подтвердите возвращение файла к старой ревизии" #~ msgid "Revert %s to contents at revision %d?" #~ msgstr "Вернуть %s к его содержимому из ревизии %d?" #~ msgid "Universal Date" #~ msgstr "Время по Гринвичу" #~ msgid "Bundle..." #~ msgstr "Комплект..." #~ msgid "Select a Mercurial Bundle" #~ msgstr "Выберите комплект Mercurial" #~ msgid "Mercurial bundles" #~ msgstr "Комплекты Mercurial" #~ msgid "Unable to apply patch" #~ msgstr "Невозможно наложить заплатку" #~ msgid "Patch Series (Bundle) Description" #~ msgstr "Описание серии заплаток (комплекта)" #~ msgid "" #~ "New changesets from the preview bundle are still pending.\n" #~ "\n" #~ "Accept or reject the new changesets?" #~ msgstr "" #~ "Решение о новых наборах изменений из просматриваемого комплекта ещё не " #~ "принято.\n" #~ "\n" #~ "Принять или отклонить новые наборы изменений?" #~ msgid " (Bundle Preview)" #~ msgstr " (Просмотр комплекта)" #~ msgid "Accept Bundle" #~ msgstr "Принять комплект" #~ msgid "Reject Bundle" #~ msgstr "Отклонить комплект" #~ msgid "Add Bundle..." #~ msgstr "Добавить комплект..." #~ msgid "%(count)d of %(total)d applied patches" #~ msgstr "%(count)d из %(total)d наложенных заплаток" #~ msgid "_Bundle rev:tip..." #~ msgstr "_Укомплектовать rev:tip..." #~ msgid "Bundle from here to selected..." #~ msgstr "Укомплектовать отсюда до выбранной..." #~ msgid "Export Patches from here to selected..." #~ msgstr "Экспортировать заплатки отсюда до выбранной..." #~ msgid "Accept changes from Bundle preview" #~ msgstr "Принять изменения из просматриваемого комплекта" #~ msgid "Reject changes from Bundle preview" #~ msgstr "Отклонить изменения из просматриваемого комплекта" #~ msgid "Applying bundle..." #~ msgstr "Накладываем комплект..." #~ msgid "Applying bundle" #~ msgstr "Наложение комплекта" #~ msgid "No remote path specified" #~ msgstr "Не указан отдалённый путь" #~ msgid "Please enter or select a remote path" #~ msgstr "Пожалуйста введите или выберите отдалённый путь" #~ msgid "Bundle Preview" #~ msgstr "Просмотр комплекта" #~ msgid "Failed to preview, a bundle file unrelated to this repository" #~ msgstr "" #~ "Неудача при просмотре, файл комплекта не относится к данному хранилищу" #~ msgid "Failed to preview, not a Mercurial bundle file" #~ msgstr "Неудача при просмотре, файл не является комплектом Mercurial" #~ msgid "Open Bundle" #~ msgstr "Открыть комплект" #~ msgid "Write bundle to" #~ msgstr "Записать комплект в" #~ msgid "Bundling from %(base)s to %(rev)s..." #~ msgstr "Создание комплекта от %(base)s до %(rev)s..." #~ msgid "Bundling from %(base)s to tip..." #~ msgstr "Создание комплекта от %(base)s до tip..." #~ msgid "Finish bundling" #~ msgstr "Создание комплекта завершено" #~ msgid "Aborted bundling" #~ msgstr "Создание комплекта прервано" #~ msgid "Failed to bundle" #~ msgstr "Неудача при создании комплекта" #~ msgid "Bundling" #~ msgstr "Создание комплекта" #~ msgid "Confirm Forced Push to Remote Repository" #~ msgstr "Подтвердите принудительное проталкивание в отдалённое хранилище" #~ msgid "" #~ "Forced push to remote repository\n" #~ "%s\n" #~ "(creating new heads in remote if needed)?" #~ msgstr "" #~ "Принудительно протолкнуть в отдалённое хранилище\n" #~ "%s\n" #~ "(с созданием новых удалённых голов при необходимости)?" #~ msgid "Remove or delete checked files" #~ msgstr "Изъять или уничтожить отмеченные файлы" #~ msgid "R: removed" #~ msgstr "R: изъятые" #~ msgid "!: deleted" #~ msgstr "!: уничтоженные" #~ msgid "_Delete unversioned" #~ msgstr "_Уничтожить не входящие в ревизии" #~ msgid "Bundle:" #~ msgstr "Комплект:" #~ msgid "Advanced Options" #~ msgstr "Продвинутые настройки" #~ msgid "Select Bundle" #~ msgstr "Выберите комплект" #~ msgid "Bundle (*.hg)" #~ msgstr "Комплект (*.hg)" #~ msgid "Bundle (*)" #~ msgstr "Комплект (*)" #~ msgid "Apply next patch" #~ msgstr "Наложить следующую заплатку" #~ msgid "Confirm Fold" #~ msgstr "Подтвердите подшивание" #~ msgid "" #~ "Do you want to fold un-applied patch '%(target)s' into current patch " #~ "'%(qtip)s'?" #~ msgstr "" #~ "Подшить неналоженную заплатку '%(target)s' к текущей заплатке '%(qtip)s'?" #~ msgid "" #~ "Do you want to fold following un-applied patches into the current patch " #~ "'%(qtip)s'?" #~ msgstr "" #~ "Вы хотите подшить следующие неналоженные заплатки к текущей заплатке " #~ "'%(qtip)s'?" #~ msgid "Delete the shelf contents?" #~ msgstr "Уничтожить содержимое долгого ящика?" #~ msgid "applying patch\n" #~ msgstr "наложение заплатки\n" #~ msgid "saving patch to shelve\n" #~ msgstr "заплатка сохраняется в долгий ящик\n" #~ msgid "applying shelved patch\n" #~ msgstr "накладывается отложенная заплатка\n" #~ msgid "Starting Revision:" #~ msgstr "Начальная ревизия:" #~ msgid "Subversion" #~ msgstr "Subversion" #~ msgid "Backout..." #~ msgstr "Обратить изменения..." #~ msgid "" #~ "Color changesets by author name. If not enabled, the changes are colored " #~ "green for merge, red for non-trivial parents, black for normal. Default: " #~ "False" #~ msgstr "" #~ "Расцвечивать наборы изменений по авторам. Если не включено, то изменения " #~ "подсвечиваются зелёным для слияний, красным для не обычных родителей, " #~ "чёрным для нормальных. По умолчанию: Нет" #~ msgid "Connect to mail server using TLS. Default: False" #~ msgstr "" #~ "Использовать TLS при соединении с почтовым сервером. По умолчанию: Нет" #~ msgid "Ignore white space when comparing lines. Default: False" #~ msgstr "" #~ "Игнорировать невидимые символы при сравнении файлов. По умолчанию: Нет" #~ msgid "Ignore changes in the amount of white space. Default: False" #~ msgstr "" #~ "Игнорировать изменения количества невидимых символов. По умолчанию: Нет" #~ msgid "Ignore changes whose lines are all blank. Default: False" #~ msgstr "" #~ "Игнорировать изменения чьи строки являются пустыми. По умолчанию: Нет" #~ msgid "Backout changeset - %s" #~ msgstr "Обращение набора изменений - %s" #~ msgid "Backout commit message" #~ msgstr "Сообщение фиксации об обращении изменений" #~ msgid "" #~ "Commit message text for new changeset that reverses the effect of the " #~ "change being backed out." #~ msgstr "" #~ "Текст сообщения фиксации нового набора изменений, который отменяет " #~ "правки, сделанные в обращаемом наборе изменений." #~ msgid "Commit backout before merging with current working parent" #~ msgstr "" #~ "Фиксировать обращение изменений перед слиянием с родителем рабочей копии" #~ msgid "Backout" #~ msgstr "Обращение изменений" #~ msgid "Backed out successfully, you must now commit the results" #~ msgstr "" #~ "Обращение изменений прошло успешно, теперь вы должны зафиксировать " #~ "результаты" #~ msgid "Canceled backout" #~ msgstr "Обращение изменений отменено" #~ msgid "Failed to backout" #~ msgstr "Неудача при обращении изменений" #~ msgid "Strip Revision..." #~ msgstr "Срезать ревизию..." #~ msgid "prefix path to serve from (default: server root)" #~ msgstr "" #~ "префикс пути для предоставления доступа (по умолчанию: в корне сервера)" #~ msgid "Bottom Diffs" #~ msgstr "Различия cнизу" #~ msgid "" #~ "Show the diff panel below the file list in status, shelve, and commit " #~ "dialogs. Default: False (show diffs to right of file list)" #~ msgstr "" #~ "Показывать панель различий снизу списка файлов для диалогов статуса, " #~ "откладывания, и фиксации. По умолчанию: Нет (различия показываются справа " #~ "от списка файлов)" #~ msgid "" #~ "Redirect stderr to a buffer which is parsed at the end of the process for " #~ "runtime errors. Default: True" #~ msgstr "" #~ "Перенаправлять stderr в буфер для его разбора ошибок выполнения в конце " #~ "процесса. По умолчанию: Да" #~ msgid "" #~ "Attempt to push to default push target after every successful commit. " #~ "Default: False" #~ msgstr "" #~ "Пытаться проталкивать в место по умолчанию при каждой фиксации. По " #~ "умолчанию: Нет" #~ msgid "Unapply last patch" #~ msgstr "Отпороть последнюю заплатку" #~ msgid "Strip" #~ msgstr "Срезать" #~ msgid "Stripped successfully" #~ msgstr "Срезание прошло успешно" #~ msgid "Canceled stripping" #~ msgstr "Срезание отменено" #~ msgid "Failed to strip" #~ msgstr "Неудача при срезании" #~ msgid "%s will be stripped" #~ msgstr "%s будут срезаны" #~ msgid "unable to strip away %d dirs from %s" #~ msgstr "невозможно срезать %d каталогов из %s" #~ msgid "unable to find %s or %s for patching" #~ msgstr "не найден %s или %s для наложения заплатки" #~ msgid "" #~ "Changesets affecting files matched by pattern. See help patterns" #~ msgstr "" #~ "Наборы изменений, затрагивающие файлы, совпадающие с шаблоном. См. справку по " #~ "шаблонам имён файлов" #~ msgid "" #~ "If true, concatenate multiple lines of changeset summary until they reach " #~ "80 characters. Default: False" #~ msgstr "" #~ "Если «Да», то многострочные сводки наборов изменений будут объединятся в " #~ "одну до 80 символов. По умолчанию: Нет" #~ msgid "Restart Merge..." #~ msgstr "Перезапустить слияние..." #~ msgid "this modifies a binary file (all or nothing)\n" #~ msgstr "это изменение двоичного файла (всё или ничего)\n" #~ msgid "file copy of %s failed\n" #~ msgstr "копирование файла %s не удалось\n" #~ msgid "delete of shelve backup failed" #~ msgstr "удаление резервной копии долгого ящика не удалось" #~ msgid "bad shelve backup directory name" #~ msgstr "неверное имя каталога для резервных копий долгих ящиков" #~ msgid "abort: backup restore failed, %s\n" #~ msgstr "прервано: восстановление резервной копии не удалось, %s\n" #~ msgid "" #~ "Defines the command to run when an issue number is recognized. You may " #~ "include groups in issue.regex, and corresponding {n} tokens in issue.link " #~ "(where n is a non-negative integer). {0} refers to the entire string " #~ "matched by issue.regex, while {1} refers to the first group and so on. If " #~ "no {n} tokensare found in issue.link, the entire matched string is " #~ "appended instead." #~ msgstr "" #~ "Задаёт команду, выполняемую при обнаружении номера проблемы. Регулярное " #~ "выражение, обнаруживающее номер проблемы, может содержать группы, на " #~ "которые можно ссылаться при помощи лексем {n} (где n — неотрицательное " #~ "целое). {0} ссылается на всю строку, совпавшую с регулярным выражением, " #~ "{1} ссылается на первую группу и т.д. Если в ссылке на проблему не будет " #~ "никаких лексем {n}, то вся совпавшая строка будет добавлена в конец " #~ "ссылки." #~ msgid "unshelve backup aborted\n" #~ msgstr "восстановление отложенных изменений из резервной копии прервано\n" #~ msgid "abandoning shelved file\n" #~ msgstr "выбрасываем отложенный файл\n" #~ msgid "shelved file abandoned\n" #~ msgstr "отложенный файл выброшен\n" #~ msgid "nothing to abandon\n" #~ msgstr "нечего выбрасывать\n" #~ msgid "abandon failed\n" #~ msgstr "выбрасывание не удалось\n" #~ msgid "" #~ "** Please report this bug to http://bitbucket.org/tortoisehg/stable/" #~ "issues\n" #~ msgstr "" #~ "** Пожалуйста, сообщите об этой ошибке по адресу http://bitbucket.org/" #~ "tortoisehg/stable/issues\n" #~ msgid "Use merge tool:" #~ msgstr "Использовать средство слияния" #~ msgid "name of the webdir config file (DEPRECATED)" #~ msgstr "название конфигурационного файла webdir (УСТАРЕЛО)" #~ msgid "Display local changes that will be pushed to selected repository" #~ msgstr "" #~ "Показать локальные изменения, которые будут переданы в выбранное хранилище" #~ msgid "" #~ "Show a full directory path of the repository in the dialog title instead " #~ "of just the root directory name. Default: False" #~ msgstr "" #~ "Показать полный путь к папке хранилища в заголовке диалога, а не только " #~ "имя корневой папки. По умолчанию: Выкл" #~ msgid "" #~ "When running hgtk from the command line, fork a background process to run " #~ "graphical dialogs. Default: True" #~ msgstr "" #~ "При запуске hgtk из командной строки запустить фоновый процесс для вывода " #~ "графических диалогов. По умолчанию: Вкл" #~ msgid "" #~ "The maximum size file (in KB) that TortoiseHg will show changes for in " #~ "the changelog, status, and commit windows. A value of zero implies no " #~ "limit. Default: 1024 (1MB)" #~ msgstr "" #~ "Максимальный размер файла (в КБ), в котором TortoiseHg отобразит " #~ "изменения в окнах списка изменений, статуса и фиксации. Нулевое значение " #~ "- без ограничений. По умолчанию: 1024 (1 Мб)" #~ msgid "" #~ "Comma separated list of files that are automatically unchecked when the " #~ "status, commit, and shelve dialogs are opened. Default: None (leave blank)" #~ msgstr "" #~ "Список разделенных запятыми файлов, которые автоматически не выделяются, " #~ "когда открываются диалоги статуса, фиксации и откладывания. По умолчанию: " #~ "нет (оставьте пустым)" #~ msgid "Close the commit tool after every successful commit. Default: False" #~ msgstr "" #~ "Закрывать инструмент фиксации после каждой успешной фиксации. По " #~ "умолчанию: Выкл" #~ msgid "" #~ "Adjust the display of the main toolbar in the Repository Explorer. " #~ "Values: small, large, or theme. Default: theme" #~ msgstr "" #~ "Настройка отображения главной панели инструментов в Обозревателе " #~ "Хранилища. Значения: маленькая, большая, или тема. По умолчанию: тема" #~ msgid "Force" #~ msgstr "Принудительно" #~ msgid "" #~ "Space separated list of branch names and colors of the form branch:" #~ "#XXXXXX. Spaces and colons in the branch name must beescaped using a " #~ "backslash (\\). Likewise some other characters can be escaped in this " #~ "way, e.g. \\u0040 will be decoded to the @ character, and \\n to a " #~ "linefeed. Default: None (leave blank)" #~ msgstr "" #~ "Список разделенных пробелами имён веток и цвета формы веток:#XXXXXX. " #~ "Пробелы и двоеточия в имёнах веток должны быть отделены при помощи " #~ "обратной косой черты (\\). Точно так же некоторые другие символы можно " #~ "отделить, таким образом, например, \\u0040 будет расшифрован как символ " #~ "@, а \\n как перевод строки. По умолчанию: нет (оставьте пустым)" #~ msgid "Abandon" #~ msgstr "Отказаться" #~ msgid "abandon shelved changes" #~ msgstr "Отказаться от отложенных изменений" #~ msgid "Precursors:" #~ msgstr "Предыдущие:" #~ msgid "" #~ "Determines if TortoiseHg should show a confirmation dialog before " #~ "removing files in a commit. If True, a confirmation dialog will be " #~ "showed. If False, selected deleted files will be included in the commit " #~ "with no confirmation dialog. Default: True" #~ msgstr "" #~ "Определяет, должен ли TortoiseHg показать диалог подтверждения перед " #~ "изъятием файлов в фиксации. Если, Да, то диалог подтверждения будет " #~ "показан. Если, Нет, то выбранные удаленные файлы будут включены в " #~ "фиксацию без диалога подтверждения. По умолчанию: Да" #~ msgid "" #~ "Determines if TortoiseHg should show a confirmation dialog before adding " #~ "new files in a commit. If True, a confirmation dialog will be showed. If " #~ "False, selected new files will be included in the commit with no " #~ "confirmation dialog. Default: True" #~ msgstr "" #~ "Определяет, должен ли TortoiseHg показать диалог подтверждения перед " #~ "добавлением новых файлов в фиксацию. Если, Да, то диалог подтверждения " #~ "будет показан. Если, Нет, то выбранные новые файлы будут включены в " #~ "фиксацию без диалога подтверждения. По умолчанию: Да" #~ msgid "" #~ "The command that will be executed.\n" #~ "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " #~ "executable command.\n" #~ "You can use several {VARIABLES} to compose your command:\n" #~ "- {ROOT}: The path to the current repository root.\n" #~ "- {REV} / {REVID}: the selected revision number / hexadecimal revision id " #~ "hash respectively.\n" #~ "- {SELECTEDFILES}: The list of files selected by the user on the revision " #~ "details file list.\n" #~ "- {FILES}: The list of files touched by the selected revision.\n" #~ "- {ALLFILES}: All the files tracked by Mercurial on the selected revision." #~ msgstr "" #~ "Команда, которая будет выполнена.\n" #~ "Чтобы выполнить команду Mercurial'а, используйте \"hg\" (а не \"hg.exe\") " #~ "в качестве исполняемой команды.\n" #~ "Вы можете использовать следующие {ПЕРЕМЕННЫЕ} для составления вашей " #~ "команды:\n" #~ "- {ROOT}: Путь к корню текущего хранилища.\n" #~ "- {REV} / {REVID}: Номер выбранной ревизии / шестнадцатеричный хэш " #~ "идентификатора ревизии соответственно.\n" #~ "- {SELECTEDFILES}: Список файлов, выбранных пользователем в списке файлов " #~ "в подробностях ревизии.\n" #~ "- {FILES}: Список файлов, затронутых выбранной ревизией.\n" #~ "- {ALLFILES}: Все файлы, отслеживаемые Mercurial'ом в выбранной ревизии." #~ msgid "" #~ "http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." #~ "html#tsvn-dug-settings-icon-set" #~ msgstr "" #~ "http://tortoisesvn.net/docs/release/TortoiseSVN_ru/tsvn-dug-settings." #~ "html#tsvn-dug-settings-icon-set" #~ msgid "Copyright 2008-2016 Steve Borho and others" #~ msgstr "Copyright 2008-2016 Steve Borho и другие" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/sr.po0000644000000000000000000043154014440352353016261 0ustar00rootroot# Serbian translation for tortoisehg # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the tortoisehg package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2011-03-26 19:44+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Serbian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2019-07-17 05:44+0000\n" "X-Generator: Launchpad (build 19009)\n" msgid "TortoiseHg Overlay Icon Server" msgstr "" msgid "Exit" msgstr "" msgid "About" msgstr "" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "" msgid "You can visit our site here" msgstr "" msgid "&License" msgstr "" #, python-format msgid "version %s" msgstr "" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "" msgid "License" msgstr "" msgid "= Working Directory Parent =" msgstr "" msgid "Directory of files" msgstr "" msgid "Tar archives" msgstr "" msgid "Uncompressed tar archive" msgstr "" msgid "Bzip2 tar archives" msgstr "" msgid "Tar archive compressed using bzip2" msgstr "" msgid "Gzip tar archives" msgstr "" msgid "Tar archive compressed using gzip" msgstr "" msgid "Zip archives" msgstr "" msgid "Uncompressed zip archive" msgstr "" msgid "Zip archive compressed using deflate" msgstr "" msgid "Revision:" msgstr "" msgid "All files in this revision" msgstr "" msgid "Only files modified/created in this revision" msgstr "" msgid "Only files modified/created since:" msgstr "" msgid "Archive Content:" msgstr "" msgid "Recurse into subrepositories" msgstr "" msgid "Browse..." msgstr "" msgid "Destination path:" msgstr "" msgid "Archive types:" msgstr "" msgid "Hg command:" msgstr "" msgid "Select Destination Folder" msgstr "" msgid "Select Destination File" msgstr "" msgid "All files (*)" msgstr "" msgid "Duplicate Name" msgstr "" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "" msgid "Confirm Overwrite" msgstr "" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "" #, python-format msgid "Archive - %s" msgstr "" msgid "&Archive" msgstr "" msgid "Backout requires a parent revision" msgstr "" msgid "Cannot backout change on a different branch" msgstr "" #, python-format msgid "Backout - %s" msgstr "" msgid "Prepare to backout" msgstr "" msgid "Verify backout revision and ensure your working directory is clean." msgstr "" msgid "Backing out a parent revision is a single step operation" msgstr "" msgid "Backout revision" msgstr "" msgid "Not a head, backout will create a new head!" msgstr "" msgid "Current local revision" msgstr "" msgid "Working directory status" msgstr "" msgid "Checking..." msgstr "" msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Automatically resolve merge conflicts where possible" msgstr "" msgid "Uncommitted local changes are detected" msgstr "" msgid "Clean" msgstr "" msgid "Backing out, then merging..." msgstr "" msgid "All conflicting files will be marked unresolved." msgstr "" msgid "Automatically advance to next page when backout and merge are complete." msgstr "" #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" msgid "No merge conflicts, ready to commit" msgstr "" msgid "Commit backout and merge results" msgstr "" msgid "Parents" msgstr "" msgid "Working Directory" msgstr "" msgid "Working Directory (merged)" msgstr "" msgid "Commit message" msgstr "" msgid "Skip final confirmation page, close after commit." msgstr "" msgid "Backed out changeset: " msgstr "" msgid "Confirm Discard Message" msgstr "" msgid "Discard current backout message?" msgstr "" msgid "Use English backout message" msgstr "" msgid "Backing out and committing..." msgstr "" msgid "Please wait while making backout." msgstr "" msgid "Committing..." msgstr "" msgid "Please wait while committing merged files." msgstr "" msgid "Finished" msgstr "" msgid "Backout changeset" msgstr "" #, python-format msgid "Bisect - %s" msgstr "" msgid "Accept" msgstr "" msgid "Known good revision:" msgstr "" msgid "Known bad revision:" msgstr "" msgid "Discard local changes (revert --all)" msgstr "" msgid "Revision is &Good" msgstr "" msgid "Revision is &Bad" msgstr "" msgid "&Skip this Revision" msgstr "" msgid "Close" msgstr "" msgid "Error encountered." msgstr "" msgid "Culprit found." msgstr "" msgid "Revision" msgstr "" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "" #, python-format msgid "%s (hint: %s)" msgstr "" msgid "Bookmark:" msgstr "" msgid "New Name:" msgstr "" msgid "Activate:" msgstr "" msgid "&Add" msgstr "" msgid "Re&name" msgstr "" msgid "&Remove" msgstr "" msgid "&Move" msgstr "" #, python-format msgid "Bookmark - %s" msgstr "" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "" #, python-format msgid "Bookmark '%s' has been added" msgstr "" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "" #, python-format msgid "Bookmark '%s' has been moved" msgstr "" #, python-format msgid "Bookmark '%s' does not exist" msgstr "" #, python-format msgid "Bookmark '%s' has been removed" msgstr "" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "" msgid "TortoiseHg Bookmark Sync" msgstr "" msgid "Outgoing Bookmarks" msgstr "" msgid "&Push Bookmark" msgstr "" msgid "&Remove Bookmark" msgstr "" msgid "Incoming Bookmarks" msgstr "" msgid "P&ull Bookmark" msgstr "" msgid "R&emove Bookmark" msgstr "" #, python-format msgid "Pushed local bookmark: %s" msgstr "" #, python-format msgid "Pulled remote bookmark: %s" msgstr "" #, python-format msgid "Removed remote bookmark: %s" msgstr "" #, python-format msgid "Removed local bookmark: %s" msgstr "" #, python-format msgid "%s - branch operation" msgstr "" msgid "Select branch of merge commit" msgstr "" msgid "Changes take effect on next commit" msgstr "" msgid "No branch changes" msgstr "" msgid "Open a new named branch" msgstr "" msgid "Close current branch" msgstr "" #, python-format msgid "Please report this bug to our bug tracker" msgstr "" msgid "Checking for updates..." msgstr "" msgid "Copy" msgstr "" msgid "Quit" msgstr "" msgid "TortoiseHg Bug Report" msgstr "" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "" msgid "Your TortoiseHg is up to date." msgstr "" msgid "Save error report to" msgstr "" msgid "Text files (*.txt)" msgstr "" msgid "Error writing file" msgstr "" msgid "TortoiseHg Error" msgstr "" msgid "" "If you still have trouble, please file a bug report." msgstr "" msgid "Visual Diff" msgstr "" msgid "View file changes in external diff tool" msgstr "" msgid "Edit Local" msgstr "" msgid "Edit current file in working copy" msgstr "" msgid "Revert to Revision" msgstr "" msgid "Revert file(s) to contents at this revision" msgstr "" msgid "Patch failed to apply" msgstr "" msgid "Manually resolve rejected chunks?" msgstr "" msgid "Edit patched file and rejects?" msgstr "" msgid "No deletable chunks" msgstr "" msgid "Completely remove file from patch?" msgstr "" msgid "Revert all file changes?" msgstr "" msgid "No chunks remain" msgstr "" msgid "file has been deleted, refresh" msgstr "" msgid "file has been modified, refresh" msgstr "" msgid "Unable to merge chunks" msgstr "" msgid "Add or remove patches must be merged in the working directory" msgstr "" msgid "Unable to remove" msgstr "" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" msgctxt "files" msgid "All" msgstr "" msgctxt "files" msgid "None" msgstr "" msgid "Toggle display of text search bar" msgstr "" msgid "Diff Toolbar" msgstr "" #, python-format msgid "Chunks selected: %d / %d" msgstr "" msgid "Please wait while the file is opened ..." msgstr "" msgid "Source:" msgstr "" msgid "Destination:" msgstr "" msgid "Options" msgstr "" msgid "Clone to revision:" msgstr "" msgid "A revision identifier, bookmark, tag or branch name" msgstr "" msgid "Do not update the new working directory" msgstr "" msgid "Use pull protocol to copy metadata" msgstr "" msgid "Clone with minimal processing" msgstr "" msgid "Include patch queue" msgstr "" msgid "Use proxy server" msgstr "" msgid "Do not verify host certificate" msgstr "" msgid "Remote command:" msgstr "" msgid "Use largefiles" msgstr "" msgid "Start revision:" msgstr "" msgid "Select source repository" msgstr "" msgid "Select destination repository" msgstr "" msgid "Select patch folder" msgstr "" #, python-format msgid "Clone - %s" msgstr "" msgid "&Clone" msgstr "" msgid "failed to start command\n" msgstr "" msgid "error while running command\n" msgstr "" #, python-format msgid "process exited unexpectedly with code %d" msgstr "" #, python-format msgid "failed to encode command: %s" msgstr "" #, python-format msgid "timed out while reading: %r..." msgstr "" msgid "timed out waiting for message" msgstr "" #, python-format msgid "unexpected response on required channel %r" msgstr "" #, python-format msgid "invalid \"hello\" message: %r" msgstr "" msgid "no \"runcommand\" capability" msgstr "" #, python-format msgid "corrupted command result: %r" msgstr "" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "" msgid "Terminated by user" msgstr "" #, python-format msgid "[command terminated by user %s]" msgstr "" #, python-format msgid "[command interrupted %s]" msgstr "" #, python-format msgid "[command returned code %d %%s]" msgstr "" #, python-format msgid "[command completed successfully %s]" msgstr "" msgid "Running..." msgstr "" msgid "Failed!" msgstr "" msgid "Clea&r Log" msgstr "" msgid "TortoiseHg Prompt" msgstr "" msgid "Show Detail" msgstr "" msgid "Hide Detail" msgstr "" msgid "Confirm Exit" msgstr "" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" msgid "&Run" msgstr "" msgid "TortoiseHg Command Dialog" msgstr "" msgid "Command Error" msgstr "" #, python-format msgid "[Code: %d]" msgstr "" msgid "Merge" msgstr "" #, python-format msgid "Merge with %s" msgstr "" msgid "Patch Name Required" msgstr "" msgid "You must enter a patch name" msgstr "" msgctxt "start progress" msgid "Commit" msgstr "" msgctxt "start progress" msgid "MQ Action" msgstr "" msgctxt "start progress" msgid "Rollback" msgstr "" msgid "Commit Dialog Toolbar" msgstr "" msgid "Branch: " msgstr "" msgid "Copy message" msgstr "" msgid "Copy one of the recent commit messages" msgstr "" msgid "Show Issues" msgstr "" msgid "Please wait..." msgstr "" #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "" msgid "Issue Tracker" msgstr "" msgid "Show Issues..." msgstr "" msgid "Stop" msgstr "" msgid "### patch name ###" msgstr "" msgid "Commit changes" msgstr "" msgid "Commit" msgstr "" msgid "Amend current revision" msgstr "" msgid "Amend" msgstr "" msgid "Create a new patch" msgstr "" msgid "QNew" msgstr "" msgid "Refresh current patch" msgstr "" msgid "QRefresh" msgstr "" msgid "Confirm Branch Change" msgstr "" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "" msgid "Restart &Branch" msgstr "" msgid "&Commit to current branch" msgstr "" msgid "Cancel" msgstr "" msgid "Confirm New Branch" msgstr "" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "" msgid "Create &Branch" msgstr "" msgid "Close Branch: " msgstr "" msgid "New Branch: " msgstr "" #, python-format msgid "Selected Options: %s" msgstr "" msgid "Parent:" msgstr "" msgid "Patch name:" msgstr "" #, python-format msgid "Close %s branch" msgstr "" #, python-format msgid "Rollback commit to revision %d" msgstr "" msgid "Confirm Undo" msgstr "" msgid "Discard current commit message?" msgstr "" msgid "Message Translation Failure" msgstr "" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" msgid "&Replace" msgstr "" msgid "Nothing Committed" msgstr "" msgid "Please enter commit message" msgstr "" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" msgid "No files checked" msgstr "" msgid "No modified files checkmarked for commit" msgstr "" msgid "Confirm Add" msgstr "" msgid "Add selected untracked files?" msgstr "" msgid "Confirm Remove" msgstr "" msgid "Remove selected deleted files?" msgstr "" msgid "Nothing changed." msgstr "" msgctxt "window title" msgid "Commit" msgstr "" #, python-format msgid "%s - commit options" msgstr "" msgid "Set username:" msgstr "" msgid "Save in Repo" msgstr "" msgid "Save Global" msgstr "" msgid "Set Date:" msgstr "" msgid "Update" msgstr "" msgid "Push After Commit:" msgstr "" msgid "Auto Includes:" msgstr "" msgid "Recurse into subrepositories (--subrepos)" msgstr "" msgid "Unable to save username" msgstr "" msgid "Iniparse must be installed." msgstr "" msgid "Unable to write configuration file" msgstr "" msgid "Unable to save after commit push" msgstr "" msgid "Unable to save auto include list" msgstr "" msgid "Unable to save recurse in subrepos." msgstr "" msgid "Invalid date format" msgstr "" msgid "No username configured" msgstr "" #, python-format msgid "%s - commit" msgstr "" msgid "TortoiseHg Commit" msgstr "" msgid "Are you sure that you want to cancel the commit operation?" msgstr "" msgid "Compress changesets up to and including" msgstr "" msgid "Onto destination" msgstr "" msgid "Compress" msgstr "" #, python-format msgid "Compress - %s" msgstr "" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the compress" msgstr "" msgid "Changes have been moved, you must now commit" msgstr "" msgctxt "action button" msgid "Commit" msgstr "" msgid "Compress is complete, old history untouched" msgstr "" msgid "must be specified repository" msgstr "" msgid "must be specified 'type' in style" msgstr "" msgid "Git Commit:" msgstr "" msgid "Summary:" msgstr "" msgid "User:" msgstr "" msgid "Date:" msgstr "" msgid "Age:" msgstr "" msgid "Branch:" msgstr "" msgid "Close:" msgstr "" msgid "Tags:" msgstr "" msgid "Graft:" msgstr "" msgid "Transplant:" msgstr "" msgid "Obsolete state:" msgstr "" msgid "Perforce:" msgstr "" msgid "Subversion:" msgstr "" msgid "Converted From:" msgstr "" msgid "Original Parent:" msgstr "" msgid "No items to display" msgstr "" msgid "Use compact view" msgstr "" msgid "Patch:" msgstr "" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "" msgid "Select a GUI location to edit:" msgstr "" msgid "Select the toolbar or menu to change" msgstr "" msgid "Tools shown on selected location" msgstr "" msgid "Delete from list" msgstr "" msgid "Add to list" msgstr "" msgid "Add separator" msgstr "" msgid "List of all tools" msgstr "" msgid "New Tool ..." msgstr "" msgid "Edit Tool ..." msgstr "" msgid "Delete Tool" msgstr "" msgid "Type" msgstr "" msgid "Name" msgstr "" msgid "Command" msgstr "" msgid "New hook" msgstr "" msgid "Edit hook" msgstr "" msgid "Delete hook" msgstr "" msgid "Replace existing hook?" msgstr "" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" msgid "OK" msgstr "" msgid "Missing information" msgstr "" msgid "All items" msgstr "" msgid "Working directory" msgstr "" msgid "All revisions" msgstr "" msgid "All contexts" msgstr "" msgid "Fixed revisions" msgstr "" msgid "Applied patches" msgstr "" msgid "Applied patches or qparent" msgstr "" msgid "" msgstr "" msgid "Configure Custom Tool" msgstr "" msgid "Tool name" msgstr "" msgid "The tool name. It cannot contain spaces." msgstr "" #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" msgid "Tool label" msgstr "" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" msgid "Tooltip" msgstr "" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" msgid "Icon" msgstr "" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" msgid "On repowidget, show for" msgstr "" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" msgid "Show Output Log" msgstr "" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" msgid "You must set a tool name." msgstr "" msgid "The tool name cannot have any spaces in it." msgstr "" msgid "You must set a command to run." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" msgid "Configure Hook" msgstr "" msgid "Hook type" msgstr "" msgid "Select when your command will be run" msgstr "" msgid "The hook name. It cannot contain spaces." msgstr "" msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" msgid "You must set a valid hook type." msgstr "" msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "" msgid "Console" msgstr "" msgid "File &History / Annotate" msgstr "" msgid "Show the history of the selected file" msgstr "" msgid "Co&mpare File Revisions" msgstr "" msgid "Compare revisions of the selected file" msgstr "" msgid "Filter Histor&y" msgstr "" msgid "Query about changesets affecting the selected files" msgstr "" msgid "Diff &Changeset to Parent" msgstr "" msgid "Diff Changeset to Loc&al" msgstr "" msgid "&Diff to Parent" msgstr "" msgid "Diff to &Local" msgstr "" msgid "View changes to current in external diff tool" msgstr "" msgid "&View at Revision" msgstr "" msgid "View file as it appeared at this revision" msgstr "" msgid "&Save at Revision..." msgstr "" msgid "Save file as it appeared at this revision" msgstr "" msgid "Save file to" msgstr "" msgid "&Edit Local" msgstr "" msgid "&Open Local" msgstr "" msgid "E&xplore Local" msgstr "" msgid "Open parent folder of current file in the system file manager" msgstr "" msgid "&Copy Patch" msgstr "" msgid "Copy &Path" msgstr "" msgid "Copy full path of file(s) to the clipboard" msgstr "" msgid "&Revert to Revision..." msgstr "" msgid "Open S&ubrepository" msgstr "" msgid "Open the selected subrepository" msgstr "" msgid "E&xplore Folder" msgstr "" msgid "Open the selected folder in the system file manager" msgstr "" msgid "Open &Terminal" msgstr "" msgid "Open a shell terminal in the selected folder" msgstr "" msgid "Custom Tools" msgstr "" msgid "Diff &Local" msgstr "" msgid "&View Missing" msgstr "" msgid "View O&ther" msgstr "" msgid "Add &Largefiles..." msgstr "" msgid "&Forget" msgstr "" msgid "&Delete Unversioned..." msgstr "" msgid "Confirm Delete Unversioned" msgstr "" msgid "Delete the following unversioned files?" msgstr "" msgid "&Delete" msgstr "" msgid "Re&move Versioned" msgstr "" msgid "&Revert..." msgstr "" msgid "Uncommited merge - please select a parent revision" msgstr "" msgid "Revert files to local or other parent?" msgstr "" msgid "&Local" msgstr "" msgid "&Other" msgstr "" msgid "Confirm Revert" msgstr "" msgid "Revert local file changes?" msgstr "" msgid "&Revert with backup" msgstr "" msgid "&Discard changes" msgstr "" msgid "Revert the following files?" msgstr "" msgid "&Revert" msgstr "" msgid "&Copy..." msgstr "" msgid "Re&name..." msgstr "" msgid "&Ignore..." msgstr "" msgid "Edit Re&jects" msgstr "" msgid "Manually resolve rejected patch chunks" msgstr "" msgid "De&tect Renames..." msgstr "" msgid "&Mark Resolved" msgstr "" msgid "&Mark Unresolved" msgstr "" msgid "Restart Mer&ge" msgstr "" msgid "Was renamed from" msgstr "" msgid "Restart Merge &with" msgstr "" msgid "Display the file anyway" msgstr "" msgid "Diff not displayed: " msgstr "" #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid "File is binary" msgstr "" msgid "File may be binary (maximum line length exceeded)" msgstr "" msgid "File or diffs not displayed: " msgstr "" msgid " (was added)" msgstr "" #, python-format msgid " (copied from %s)" msgstr "" #, python-format msgid " (renamed from %s)" msgstr "" msgid " (is a symlink)" msgstr "" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid " (was deleted)" msgstr "" msgid " (was added, now missing)" msgstr "" msgid " (is unversioned)" msgstr "" msgid "exec mode has been set" msgstr "" msgid "exec mode has been unset" msgstr "" #, python-format msgid "changeset: %s" msgstr "" msgid "Initial revision" msgstr "" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" msgid "Subrepo created and set to initial revision." msgstr "" msgid "Subrepo initialized to revision:" msgstr "" msgid "Subrepo removed from repository." msgstr "" msgid "Previously the subrepository was at the following revision:" msgstr "" msgid "Subrepo was not changed." msgstr "" msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "" msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "" msgid "Subrepo state is:" msgstr "" msgid "Revision has changed to:" msgstr "" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "" msgid "From:" msgstr "" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" msgid "Subrepository not found in the working directory." msgstr "" msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" msgid "Not a Mercurial subrepo, not previewable" msgstr "" #, python-format msgid "Error previewing subrepo: %s" msgstr "" msgid "Subrepo may be damaged or inaccessible." msgstr "" msgid "The subrepository is dirty." msgstr "" msgid "File Status:" msgstr "" msgid "(is a changed sub-repository)" msgstr "" msgid "(is an unchanged sub-repository)" msgstr "" msgid "(is a dirty sub-repository)" msgstr "" msgid "(is a new sub-repository)" msgstr "" msgid "(is a removed sub-repository)" msgstr "" msgid "(is a changed and dirty sub-repository)" msgstr "" msgid "(is a new and dirty sub-repository)" msgstr "" msgid "open..." msgstr "" #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "" msgid "File History Log Columns" msgstr "" msgid "Back" msgstr "" msgid "Forward" msgstr "" msgid "Diff Selected &Changesets" msgstr "" msgid "&Diff Selected File Revisions" msgstr "" msgid "Show Revision &Details" msgstr "" msgid "Too many rows selected for menu" msgstr "" msgid "File Differences Log Columns" msgstr "" msgid "Next diff" msgstr "" msgid "Previous diff" msgstr "" msgid "Unicode" msgstr "" msgid "Western Europe" msgstr "" msgid "Unified Chinese" msgstr "" msgid "Traditional Chinese" msgstr "" msgid "Korean" msgstr "" msgid "Japanese" msgstr "" msgid "Thai" msgstr "" msgid "Central and Eastern Europe" msgstr "" msgid "Cyrillic" msgstr "" msgid "Russian" msgstr "" msgid "Ukrainian" msgstr "" msgid "Greek" msgstr "" msgid "Turkish" msgstr "" msgid "Arabic" msgstr "" msgid "Hebrew" msgstr "" msgid "Vietnamese" msgstr "" msgid "Baltic" msgstr "" msgid "Southern Europe" msgstr "" msgid "Nordic" msgstr "" msgid "Celtic" msgstr "" msgid "South-Eastern Europe" msgstr "" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "" msgid "View change as unified diff output" msgstr "" msgid "View change in context of file" msgstr "" msgid "Annotate with revision numbers" msgstr "" msgid "Next Diff" msgstr "" msgid "Previous Diff" msgstr "" msgid "Open shelve tool" msgstr "" msgid "&Auto Detect" msgstr "" msgid "Show changes from first parent" msgstr "" msgid "Show changes from second parent" msgstr "" msgid "E&ncoding" msgstr "" msgid "&Search in Current File" msgstr "" msgid "Search in All &History" msgstr "" msgid "Go to Line" msgstr "" #, python-format msgid "Enter line number (1 - %d)" msgstr "" msgid "Show &Author" msgstr "" msgid "Show &Date" msgstr "" msgid "Show &Revision" msgstr "" msgid "Annotate Op&tions" msgstr "" msgid "Search Selected Text" msgstr "" msgid "In Current &File" msgstr "" msgid "In &Current Revision" msgstr "" msgid "In &Original Revision" msgstr "" msgid "In All &History" msgstr "" msgid "Go to" msgstr "" msgid "View File at" msgstr "" msgid "Diff File to" msgstr "" msgid "&Originating Revision" msgstr "" msgid "&Parent Revision" msgstr "" #, python-format msgid "&Parent Revision (%d)" msgstr "" msgid "&Mark Excluded Changes" msgstr "" msgid "(excluded from the next commit)" msgstr "" msgid "Interrupted graft operation found" msgstr "" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" msgid "Continue or abort interrupted graft operation?" msgstr "" msgid "To graft destination" msgstr "" msgid "Use my user name instead of graft committer user name" msgstr "" msgid "Use current date" msgstr "" msgid "Append graft info to log message" msgstr "" msgid "Graft" msgstr "" msgid "Abort" msgstr "" #, python-format msgid "Graft - %s" msgstr "" msgid "Graft changeset" msgstr "" #, python-format msgid "Graft changeset #%d of %d" msgstr "" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" msgid "You may continue or start the graft" msgstr "" msgid "Graft is complete" msgstr "" msgid "Graft failed" msgstr "" msgid "Graft aborted" msgstr "" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" msgid "You may continue the graft" msgstr "" msgid "Exiting with an unfinished graft is not recommended." msgstr "" msgid "Consider aborting the graft first." msgstr "" msgid "&Exit" msgstr "" msgid "### regular expression search pattern ###" msgstr "" msgid "Regexp:" msgstr "" msgid "Ignore case" msgstr "" msgid "Search" msgstr "" msgid "Working Copy" msgstr "" msgid "All History" msgstr "" msgid "Report only the first match per file" msgstr "" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "" msgid "Includes:" msgstr "" msgid "Excludes:" msgstr "" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" #, python-format msgid "\"%s\" removed from search history" msgstr "" #, python-format msgid "\"%s\" removed from path history" msgstr "" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "" #, python-format msgid "grep: %s\n" msgstr "" #, python-format msgid "%d matches found" msgstr "" msgid "No matches found" msgstr "" msgid "Searching" msgstr "" msgid "history" msgstr "" msgid "Interrupted" msgstr "" msgid "files" msgstr "" #, python-format msgid "Skipping %s, unable to read" msgstr "" msgid "Vi&ew File" msgstr "" msgid "&View Changeset" msgstr "" msgid "Annotate &File" msgstr "" msgid "File" msgstr "" msgid "Line" msgstr "" msgid "Rev" msgstr "" msgid "User" msgstr "" msgid "Match Text" msgstr "" msgid "TortoiseHg Search" msgstr "" #, python-format msgid "Detect Copies/Renames in %s" msgstr "" msgid "Unrevisioned Files" msgstr "" msgid "Refresh file list" msgstr "" #, python-format msgid "Min Similarity: %d%%" msgstr "" msgid "Only consider deleted files" msgstr "" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "" msgid "Find Renames" msgstr "" msgid "Find copy and/or rename sources" msgstr "" msgid "Candidate Matches" msgstr "" msgid "Accept All Matches" msgstr "" msgid "Accept Selected Matches" msgstr "" msgid "Differences from Source to Dest" msgstr "" msgid "Search already in progress" msgstr "" msgid "Cannot start a new search" msgstr "" msgid "No files to find" msgstr "" msgid "There are no files that may have been renamed" msgstr "" msgid "Multiple sources chosen" msgstr "" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" #. i18n: percent format #, python-format msgid "%d%%" msgstr "" msgid "Source" msgstr "" msgid "Dest" msgstr "" msgid "% Match" msgstr "" msgid "Sending Email" msgstr "" msgid "Email" msgstr "" msgid "To:" msgstr "" msgid "Cc:" msgstr "" msgid "In-Reply-To:" msgstr "" msgid "Message identifier to reply to, for threading" msgstr "" msgid "Flag:" msgstr "" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" msgid "Send changesets as Hg patches" msgstr "" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" msgid "Use extended (git) patch format" msgstr "" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" msgid "Plain, do not prepend Hg header" msgstr "" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" msgid "Send single binary bundle, not patches" msgstr "" msgid "send patches as part of the email body" msgstr "" msgid "body" msgstr "" msgid "send patches as attachments" msgstr "" msgid "attach" msgstr "" msgid "send patches as inline attachments" msgstr "" msgid "inline" msgstr "" msgid "add diffstat output to messages" msgstr "" msgid "diffstat" msgstr "" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" msgid "Write patch series (bundle) description" msgstr "" msgid "Subject:" msgstr "" msgid "Changesets" msgstr "" msgid "Select &All" msgstr "" msgid "Select &None" msgstr "" msgid "Edit" msgstr "" msgid "Preview" msgstr "" msgid "&Settings" msgstr "" msgid "Send &Email" msgstr "" msgid "&Close" msgstr "" #, python-format msgid "Ignore filter - %s" msgstr "" msgid "Glob" msgstr "" msgid "Regexp" msgstr "" msgid "Add" msgstr "" msgid "Edit File" msgstr "" msgid "Ignore Filter" msgstr "" msgid "Untracked Files" msgstr "" msgid "Backspace or Del to remove row(s)" msgstr "" msgid "Add ignore filter..." msgstr "" msgid "selected files" msgstr "" msgid "Ignore " msgstr "" msgid "Invalid glob expression" msgstr "" msgid "Invalid regexp expression" msgstr "" msgid "Unable to read repository status" msgstr "" msgid "New file created" msgstr "" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" msgid "Unable to write .hgignore file" msgstr "" msgid "Copy working directory files from skeleton" msgstr "" msgid "Create special files (.hgignore, ...)" msgstr "" msgid "Make repo compatible with Mercurial <1.7" msgstr "" msgid "New Repository" msgstr "" msgid "&Create" msgstr "" msgid "Unable to create a config file" msgstr "" msgid "Insufficient access rights." msgstr "" msgid "Show Log" msgstr "" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" msgid "Add as &Largefiles" msgstr "" msgid "Add as &Normal Files" msgstr "" msgid "Invalid Patterns" msgstr "" msgid "Failed to process largefiles.patterns." msgstr "" msgid "Word docs (*.doc *.docx)" msgstr "" msgid "PDF docs (*.pdf)" msgstr "" msgid "Excel files (*.xls *.xlsx)" msgstr "" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "" msgid "Refresh lock information" msgstr "" msgid "Lock a file not described in .hglocks" msgstr "" msgid "Stop current operation" msgstr "" msgid "Locked And Lockable Files:" msgstr "" msgid "Path" msgstr "" msgid "Locking User" msgstr "" msgid "Purpose" msgstr "" msgid "Simplelock extension not enabled" msgstr "" msgid "Please enable and configure simplelock" msgstr "" msgid "Open a (nonmergable) file you wish to be locked" msgstr "" msgid "File was not within current repository" msgstr "" #, python-format msgid "Locking %s" msgstr "" #, python-format msgid "Unlocking %s" msgstr "" msgid "Refreshing locks..." msgstr "" #, python-format msgid "Lock of %s successful" msgstr "" #, python-format msgid "Lock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s successful" msgstr "" msgid "Ready, double click to lock or unlock" msgstr "" msgid "Ready" msgstr "" msgid "You can only release your own locks" msgstr "" msgid "Find revisions matching fields of:" msgstr "" msgid "Revision to Match:" msgstr "" msgid "Fields to match:" msgstr "" msgid "Summary (first description line)" msgstr "" msgid "Description" msgstr "" msgid "Author" msgstr "" msgid "Date" msgstr "" msgid "Files" msgstr "" msgid "Diff contents" msgstr "" msgid "Subrepo states" msgstr "" msgid "Branch" msgstr "" msgid "Phase" msgstr "" msgid "&Match" msgstr "" #, python-format msgid "Find matches - %s" msgstr "" msgid "Revisions to Match:" msgstr "" #, python-format msgid "Match any of %d revisions" msgstr "" msgid "Unknown revision!" msgstr "" msgid "Parse Error!" msgstr "" #, python-format msgid "Merge - %s" msgstr "" msgid "Do you want to exit?" msgstr "" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" msgid "Prepare to merge" msgstr "" msgid "Verify merge targets and ensure your working directory is clean." msgstr "" msgid "Not a head revision!" msgstr "" msgid "Merge from (other revision)" msgstr "" msgid "Merge to (working directory)" msgstr "" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Or use:" msgstr "" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "" msgid "Discard all changes from the other revision" msgstr "" msgid "&Discard" msgstr "" msgid "Confirm Discard Changes" msgstr "" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" msgctxt "working dir state" msgid "Clean" msgstr "" msgid "Merging..." msgstr "" msgid "Automatically advance to next page when merge is complete." msgstr "" #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" msgid "" "No merge conflicts, ready to commit or review" msgstr "" msgid "Commit merge results" msgstr "" msgid "Commit Options" msgstr "" msgid "Commit Now" msgstr "" msgid "Commit Later" msgstr "" msgid "Merge changeset" msgstr "" msgid "Syntax Highlighting" msgstr "" msgid "Paste &Filenames" msgstr "" msgid "App&ly Format" msgstr "" msgid "C&onfigure Format" msgstr "" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "" msgid "&Commit to Queue..." msgstr "" msgid "Create &New Queue..." msgstr "" msgid "&Rename Active Queue..." msgstr "" msgid "&Delete Queue..." msgstr "" msgid "&Purge Queue..." msgstr "" msgid "Create Patch Queue" msgstr "" msgid "New patch queue name" msgstr "" msgid "Create" msgstr "" msgid "Rename Patch Queue" msgstr "" #, python-format msgid "Rename patch queue '%s' to" msgstr "" msgid "Rename" msgstr "" msgid "Delete Patch Queue" msgstr "" msgid "Delete reference to" msgstr "" msgid "Delete" msgstr "" msgid "Purge Patch Queue" msgstr "" msgid "Remove patch directory of" msgstr "" msgid "Purge" msgstr "" msgid "Rename Patch" msgstr "" #, python-format msgid "Rename patch %s to:" msgstr "" msgid "no guards" msgstr "" msgid "Patch Queue" msgstr "" msgctxt "MQ QPush" msgid "Push" msgstr "" msgid "Apply one patch" msgstr "" msgctxt "MQ QPush" msgid "Push all" msgstr "" msgid "Apply all patches" msgstr "" msgid "Pop" msgstr "" msgid "Unapply one patch" msgstr "" msgid "Pop all" msgstr "" msgid "Unapply all patches" msgstr "" msgid "Go &to Patch" msgstr "" msgid "&Apply Only This Patch" msgstr "" msgid "Apply only the selected patch" msgstr "" msgid "&Finish Patch" msgstr "" msgid "Move applied patches into repository history" msgstr "" msgid "&Delete Patches..." msgstr "" msgid "Delete selected patches" msgstr "" msgid "Re&name Patch..." msgstr "" msgid "Set &Guards..." msgstr "" msgid "Configure guards for selected patch" msgstr "" msgid "Patch Queue Actions Toolbar" msgstr "" msgid "Configure guards" msgstr "" #, python-format msgid "Input new guards for %s:" msgstr "" msgid "Confirm patch queue switch" msgstr "" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "" #, python-format msgid "Guards: %d/%d" msgstr "" msgid "MQ options" msgstr "" msgid "Force push or pop (--force)" msgstr "" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "" msgid "Submitting p4 changelist..." msgstr "" msgid "Reverting p4 changelist..." msgstr "" msgid "Patch Branch Toolbar" msgstr "" msgid "Merge all pending dependencies" msgstr "" msgid "Backout current patch branch" msgstr "" msgid "Backport part of a changeset to a dependency" msgstr "" msgid "Start a new patch branch" msgstr "" msgid "Edit patch dependency graph" msgstr "" msgid "will be closed" msgstr "" #, python-format msgid "needs merge of %i heads\n" msgstr "" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "" #, python-format msgid "needs merge with %s\n" msgstr "" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "" msgid "&Goto (update workdir)" msgstr "" msgid "&Merge" msgstr "" msgid "No patch branch selected" msgstr "" msgid "No editor found" msgstr "" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" msgid "Graph" msgstr "" msgid "Status" msgstr "" msgid "Title" msgstr "" msgid "Message" msgstr "" msgid "New Patch Branch" msgstr "" msgid "Patch message:" msgstr "" msgid "Patch date:" msgstr "" msgid "Patch user:" msgstr "" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" msgid "Review Board" msgstr "" msgid "Password:" msgstr "" msgid "Error" msgstr "" #, python-format msgid "Review draft posted to %s\n" msgstr "" #, python-format msgid "Review published to %s\n" msgstr "" msgid "Success" msgstr "" msgid "Repository ID:" msgstr "" msgid "Post Review" msgstr "" msgid "Review ID:" msgstr "" msgid "Update the fields of this existing request" msgstr "" msgid "Update Review" msgstr "" msgid "Create diff with all outgoing changes" msgstr "" msgid "Create diff with all changes on this branch" msgstr "" msgid "Publish request immediately" msgstr "" msgid "%p%" msgstr "" msgid "Connecting to Review Board..." msgstr "" msgid "Target:" msgstr "" msgid "Do not modify working copy (-k/--keep)" msgstr "" #, python-format msgid "Prune - %s" msgstr "" msgid "&Prune" msgstr "" msgid "No unknown files found" msgstr "" msgid "No ignored files found" msgstr "" msgid "No trash files found" msgstr "" msgid "Delete empty folders" msgstr "" msgid "Preserve files beginning with .hg" msgstr "" #, python-format msgid "%s - purge" msgstr "" msgid "Checking" msgstr "" msgid "Ready to purge." msgstr "" #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "" msgstr[1] "" msgid "Confirm file deletions" msgstr "" msgid "Are you sure you want to delete these files and/or folders?" msgstr "" msgid "Deletion failures" msgstr "" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "" msgstr[1] "" msgid "Deleting trash folder..." msgstr "" #, python-format msgid "Deleted %d files" msgstr "" #, python-format msgid "Deleted %d files and %d folders" msgstr "" msgid "Delete Patches" msgstr "" msgid "Remove patches from queue?" msgstr "" msgid "Keep patch files" msgstr "" #, python-format msgid "Patch fold - %s" msgstr "" msgid "New patch message:" msgstr "" msgid "Patches to fold" msgstr "" msgid "&Undo" msgstr "" msgid "&Redo" msgstr "" msgid "Cu&t" msgstr "" msgid "&Copy" msgstr "" msgid "&Paste" msgstr "" msgid "&Editor Options" msgstr "" msgid "&Wrap" msgstr "" msgctxt "wrap mode" msgid "&None" msgstr "" msgid "&Word" msgstr "" msgid "&Character" msgstr "" msgid "White&space" msgstr "" msgid "&Visible" msgstr "" msgid "&Invisible" msgstr "" msgid "&AfterIndent" msgstr "" msgid "&TAB Inserts" msgstr "" msgid "&Auto" msgstr "" msgid "&TAB" msgstr "" msgid "&Spaces" msgstr "" msgid "EOL &Visibility" msgstr "" msgid "EOL &Mode" msgstr "" msgid "&Windows" msgstr "" msgid "&Unix" msgstr "" msgid "&Mac" msgstr "" msgid "&Auto-Complete" msgstr "" msgid "### regular expression ###" msgstr "" msgid "Regular expression search pattern" msgstr "" msgid "Wrap search" msgstr "" msgid "Prev" msgstr "" msgid "Next" msgstr "" msgid "Unable to read file" msgstr "" msgid "Could not open the specified file for reading." msgstr "" msgid "This appears to be a binary file." msgstr "" msgid "An error occurred while reading the file." msgstr "" msgid "Text Translation Failure" msgstr "" msgid "Could not translate the file content from native encoding." msgstr "" msgid "Several characters would be lost." msgstr "" msgid "Unable to write file" msgstr "" msgid "Could not translate the file content to native encoding." msgstr "" msgid "Could not open the specified file for writing." msgstr "" msgid "An error occurred while writing the file." msgstr "" msgid "Try refreshing your repository." msgstr "" #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
                                                                                      Please edit your config" msgstr "" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
                                                                                      Please fix your config" msgstr "" #, python-format msgid "Operation aborted:

                                                                                      %(arg0)s." msgstr "" msgid "Repository is locked" msgstr "" msgid "hint:" msgstr "" msgid "Repository Error" msgstr "" msgid "No visual editor configured" msgstr "" msgid "Please configure a visual editor." msgstr "" msgid "Editor launch failure" msgstr "" msgid "Failed to open path in terminal" msgstr "" #, python-format msgid "\"%s\" is not a valid directory" msgstr "" #, python-format msgid "Invalid configuration: %s" msgstr "" msgid "Unable to start the following command:" msgstr "" msgid "No shell configured" msgstr "" msgid "A terminal shell must be configured" msgstr "" msgid "Please enter a username" msgstr "" msgid "You must identify yourself to Mercurial" msgstr "" msgid "Unable to translate input to local encoding." msgstr "" msgid "Checkmark files to add" msgstr "" msgid "Checkmark files to forget" msgstr "" msgid "Forget" msgstr "" msgid "Checkmark files to revert" msgstr "" msgid "Revert" msgstr "" msgid "Checkmark files to remove" msgstr "" msgid "Remove" msgstr "" #, python-format msgid "%s - hg %s" msgstr "" msgid "Do not save backup files (*.orig)" msgstr "" msgid "Force removal of modified files (--force)" msgstr "" msgid "Add &Largefiles" msgstr "" msgid "No files selected" msgstr "" msgid "No operation to perform" msgstr "" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" msgid "Remove &Unmodified Files" msgstr "" msgid "Remove &All Selected Files" msgstr "" msgid "Rebase changeset and descendants" msgstr "" msgid "To rebase destination" msgstr "" msgid "Swap source and destination" msgstr "" msgid "Keep original changesets (--keep)" msgstr "" msgid "Keep original branch names (--keepbranches)" msgstr "" msgid "Collapse the rebased changesets (--collapse)" msgstr "" msgid "Rebase entire source branch (-b/--base)" msgstr "" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "" msgid "Rebase" msgstr "" #, python-format msgid "Rebase - %s" msgstr "" msgid "" "Before rebase, you must
                                                                                      commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the rebase" msgstr "" msgid "Rebase is complete" msgstr "" msgid "Rebase failed" msgstr "" msgid "Rebase aborted" msgstr "" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" msgid "Exiting with an unfinished rebase is not recommended." msgstr "" msgid "Consider aborting the rebase first." msgstr "" #, python-format msgid "Merge rejected patch chunks into %s" msgstr "" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "" msgid "Mark this chunk as unresolved" msgstr "" msgid "Reload File" msgstr "" msgid "Are you sure you want to reload this file?" msgstr "" msgid "All unsaved changes will be lost." msgstr "" msgid "Warning" msgstr "" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" msgid "Copy source -> destination" msgstr "" msgid "Copy Error" msgstr "" msgid "Rename Error" msgstr "" msgid "Select Source File" msgstr "" msgid "Select Source Folder" msgstr "" msgid "Source does not exist." msgstr "" msgid "The source must be within the repository tree." msgstr "" msgid "The destination must be within the repository tree." msgstr "" msgid "Destination file already exists." msgstr "" msgid "Are you sure you want to overwrite it ?" msgstr "" #, python-format msgid "Copy - %s" msgstr "" #, python-format msgid "Rename - %s" msgstr "" msgid "Show all" msgstr "" msgid "### revision set query ###" msgstr "" msgid "Clear current query and query text" msgstr "" msgid "Trigger revision set query" msgstr "" msgid "Open advanced query editor" msgstr "" msgid "Delete selected query from history" msgstr "" msgid "filter" msgstr "" msgid "Toggle filtering of non-matched changesets" msgstr "" msgid "Show/Hide hidden changesets" msgstr "" msgid "Toggle graft relations visibility" msgstr "" msgid "Keyword Search" msgstr "" msgid "Revision Set" msgstr "" msgid "(unsaved)" msgstr "" msgid "Display graph the named branch only" msgstr "" msgid "Display only active branches" msgstr "" msgid "Display closed branches" msgstr "" msgid "Include all ancestors" msgstr "" msgctxt "column header" msgid "Graph" msgstr "" msgctxt "column header" msgid "Rev" msgstr "" msgctxt "column header" msgid "Branch" msgstr "" msgctxt "column header" msgid "Description" msgstr "" msgctxt "column header" msgid "Author" msgstr "" msgctxt "column header" msgid "Tags" msgstr "" msgctxt "column header" msgid "Latest tags" msgstr "" msgctxt "column header" msgid "Node" msgstr "" msgctxt "column header" msgid "Git Commit" msgstr "" msgctxt "column header" msgid "Age" msgstr "" msgctxt "column header" msgid "Local Time" msgstr "" msgctxt "column header" msgid "UTC Time" msgstr "" msgctxt "column header" msgid "Changes" msgstr "" msgctxt "column header" msgid "Converted From" msgstr "" msgctxt "column header" msgid "Phase" msgstr "" msgctxt "column header" msgid "Filename" msgstr "" msgid "Searching..." msgstr "" #, python-format msgid "filling (%d)" msgstr "" msgid "Mercurial User" msgstr "" msgid "Repository Registry" msgstr "" msgid "Show &Paths" msgstr "" msgid "Show S&hort Paths" msgstr "" msgid "&Scan Repositories at Startup" msgstr "" msgid "Scan &Remote Repositories" msgstr "" msgid "&Refresh Repository List" msgstr "" msgid "Refresh the Repository Registry list" msgstr "" msgid "&Open" msgstr "" msgid "Open the repository in a new tab" msgstr "" msgid "&Open All" msgstr "" msgid "Open all repositories in new tabs" msgstr "" msgid "New &Group" msgstr "" msgid "Create a new group" msgstr "" msgid "Rename the entry" msgstr "" msgid "Settin&gs" msgstr "" msgid "View the repository's settings" msgstr "" msgid "Re&move from Registry" msgstr "" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" msgid "Clon&e..." msgstr "" msgid "Clone Repository" msgstr "" msgid "E&xplore" msgstr "" msgid "Open the repository in a file browser" msgstr "" msgid "&Terminal" msgstr "" msgid "Open a shell terminal in the repository root" msgstr "" msgid "&Add Repository..." msgstr "" msgid "Add a repository to this group" msgstr "" msgid "A&dd Subrepository..." msgstr "" msgid "Convert an existing repository into a subrepository" msgstr "" msgid "Remo&ve Subrepository..." msgstr "" msgid "Remove this subrepository from the current revision" msgstr "" msgid "Copy the root path of the repository to the clipboard" msgstr "" msgid "Sort by &Name" msgstr "" msgid "Sort the group by short name" msgstr "" msgid "Sort by &Path" msgstr "" msgid "Sort the group by full path" msgstr "" msgid "&Sort by .hgsub" msgstr "" msgid "Order the subrepos as in .hgsub" msgstr "" msgid "Select repository directory to add" msgstr "" msgid "Select an existing repository to add as a subrepo" msgstr "" msgid "Cannot add subrepository" msgstr "" #, python-format msgid "%s is not a valid repository" msgstr "" #, python-format msgid "\"%s\" is not a folder" msgstr "" msgid "A repository cannot be added as a subrepo of itself" msgstr "" #, python-format msgid "" "The selected folder:

                                                                                      %s

                                                                                      is not inside the target repository." "

                                                                                      This may be allowed but is greatly discouraged.
                                                                                      If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" msgid "Cannot open repository" msgstr "" #, python-format msgid "The selected repository:

                                                                                      %s

                                                                                      cannot be open!" msgstr "" msgid "Subrepository already exists" msgstr "" #, python-format msgid "" "The selected repository:

                                                                                      %s

                                                                                      is already a subrepository of:" "

                                                                                      %s

                                                                                      as: \"%s\"" msgstr "" msgid "Failed to add subrepository" msgstr "" #, python-format msgid "Cannot open the .hgsub file in:

                                                                                      %s" msgstr "" msgid "Failed to add repository" msgstr "" #, python-format msgid "The .hgsub file already contains the line:

                                                                                      %s" msgstr "" msgid "Subrepo added to .hgsub file" msgstr "" #, python-format msgid "" "The selected subrepo:

                                                                                      %s

                                                                                      has been added to the .hgsub " "file of the repository:

                                                                                      %s

                                                                                      Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" #, python-format msgid "Cannot update the .hgsub file in:

                                                                                      %s" msgstr "" msgid "Could not open .hgsub file" msgstr "" msgid "Cannot read the .hgsub file.

                                                                                      Subrepository removal failed." msgstr "" msgid "Subrepository not found" msgstr "" msgid "" "The selected subrepository was not found on the .hgsub file.

                                                                                      Perhaps it " "has already been removed?" msgstr "" msgid "&Yes" msgstr "" msgid "&No" msgstr "" msgid "Remove the selected repository?" msgstr "" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" msgid "Subrepository removed from .hgsub" msgstr "" msgid "" "The selected subrepository has been removed from the .hgsub file.

                                                                                      Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" msgid "Could not update .hgsub file" msgstr "" msgid "Cannot update the .hgsub file.

                                                                                      Subrepository removal failed." msgstr "" #, python-format msgid "Unsupported repository type (%s)" msgstr "" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "" msgid "New Group" msgstr "" msgid "Confirm Delete" msgstr "" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "" msgid "Could not get subrepository list" msgstr "" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

                                                                                      %s" msgstr "" msgid "Could not open some subrepositories" msgstr "" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

                                                                                      %s

                                                                                      The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

                                                                                      %s" msgstr "" msgid "Updating repository registry" msgstr "" #, python-format msgid "Loading repository %s" msgstr "" msgid "Repository Registry updated" msgstr "" msgid "Close tab" msgstr "" msgid "Close other tabs" msgstr "" msgid "Undo close tab" msgstr "" msgid "Reopen last closed tab" msgstr "" msgid "Undo close other tabs" msgstr "" msgid "Reopen last closed tab group" msgstr "" msgid "Failed to open repository" msgstr "" msgid "&Sort" msgstr "" #, python-format msgid "Local Repository %s" msgstr "" #, python-format msgid "" "An exception happened while loading the subrepos of:

                                                                                      \"%s\"

                                                                                      " msgstr "" #, python-format msgid "The exception error message was:

                                                                                      %s

                                                                                      " msgstr "" msgid "Click OK to continue or Abort to exit." msgstr "" msgid "Error loading subrepos" msgstr "" msgid "Unable to update repository name" msgstr "" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "" msgid "default" msgstr "" msgid "C&hoose Log Columns..." msgstr "" msgid "&Resize Columns" msgstr "" #, python-format msgid "Goto ancestor of %s and %s" msgstr "" #, python-format msgid "Can't find revision '%s'" msgstr "" msgid "Drag to change order" msgstr "" msgid "Workbench Log Columns" msgstr "" msgctxt "tab tooltip" msgid "Revision details" msgstr "" msgctxt "tab tooltip" msgid "Commit" msgstr "" msgctxt "tab tooltip" msgid "Search" msgstr "" msgctxt "tab tooltip" msgid "Console log" msgstr "" msgctxt "tab tooltip" msgid "Synchronize" msgstr "" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "" #, python-format msgid "%s " msgstr "" #, python-format msgid "Found %d incoming changesets" msgstr "" msgid "Pull" msgstr "" msgid "Pull incoming changesets into your repository" msgstr "" msgid "Reject incoming changesets" msgstr "" #, python-format msgid "Push current branch (%s)" msgstr "" #, python-format msgid "Push up to current revision (#%d)" msgstr "" #, python-format msgid "Push up to revision #%d" msgstr "" msgid "Push all" msgstr "" msgid "no outgoing changesets" msgstr "" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets" msgstr "" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "" msgid "Nothing to push" msgstr "" msgid "No revision found" msgstr "" #, python-format msgid "%s - verify repository" msgstr "" #, python-format msgid "%s - recover repository" msgstr "" msgid "No transaction available" msgstr "" msgid "There is no rollback transaction available" msgstr "" msgid "Undo last commit?" msgstr "" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "" msgid "Undo last transaction?" msgstr "" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "" msgid "Unable to determine working copy revision\n" msgstr "" msgid "Remove current working revision?" msgstr "" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" msgid "Tab cannot exit" msgstr "" msgid "Pus&h" msgstr "" msgid "Push to &Here" msgstr "" msgid "Push Selected &Branch" msgstr "" msgid "Push &All" msgstr "" msgid "&Update..." msgstr "" msgid "Bro&wse at Revision" msgstr "" msgid "&Merge with Local..." msgstr "" msgid "&Tag..." msgstr "" msgid "Boo&kmark..." msgstr "" msgid "Top&ic..." msgstr "" msgid "Sig&n..." msgstr "" msgid "&Backout..." msgstr "" msgid "Revert &All Files..." msgstr "" msgid "Copy &Hash" msgstr "" msgid "E&xport" msgstr "" msgid "E&xport Patch..." msgstr "" msgid "&Email Patch..." msgstr "" msgid "&Archive..." msgstr "" msgid "&Bundle Rev and Descendants..." msgstr "" msgid "Change &Phase to" msgstr "" msgid "&Graft to Local..." msgstr "" msgid "Modi&fy History" msgstr "" msgid "&Unapply Patch" msgstr "" msgid "Import to &MQ" msgstr "" msgid "MQ &Options" msgstr "" msgid "&Rebase..." msgstr "" msgid "&Prune..." msgstr "" msgid "&Strip..." msgstr "" msgid "Post to Re&view Board..." msgstr "" msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "" msgid "Write diff file" msgstr "" msgid "Unable to write diff file" msgstr "" msgid "Unable to compress history" msgstr "" msgid "Selected changeset pair not related" msgstr "" msgid "Visual Diff..." msgstr "" msgid "Export Diff..." msgstr "" msgid "Export Selected..." msgstr "" msgid "Email Selected..." msgstr "" msgid "Copy Selected as Patch" msgstr "" msgid "Archive DAG Range..." msgstr "" msgid "Export DAG Range..." msgstr "" msgid "Email DAG Range..." msgstr "" msgid "Bundle DAG Range..." msgstr "" msgid "Bisect - Good, Bad..." msgstr "" msgid "Bisect - Bad, Good..." msgstr "" msgid "Compress History..." msgstr "" msgid "Rebase..." msgstr "" msgid "Goto common ancestor" msgstr "" msgid "Graft Selected to local..." msgstr "" msgid "&Prune Selected..." msgstr "" msgid "Post Selected to Review Board..." msgstr "" msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "" msgid "Apply onto original parent" msgstr "" msgid "Apply only this patch" msgstr "" msgid "Fold patches..." msgstr "" msgid "Delete patches..." msgstr "" msgid "Rename patch..." msgstr "" msgid "Pull to here..." msgstr "" msgid "Visual diff..." msgstr "" msgid "Export patch" msgstr "" msgid "Patch Files (*.patch)" msgstr "" msgid "Cannot export revision" msgstr "" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" msgid "There is already an existing folder with that same name." msgstr "" msgid "Replace" msgstr "" msgid "Append" msgstr "" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" msgid "What do you want to do?\n" msgstr "" msgid "Replace the existing patch files.\n" msgstr "" msgid "Append the changes to the existing patch files.\n" msgstr "" msgid "Abort the export operation.\n" msgstr "" msgid "Patch files already exist" msgstr "" msgid "Patch exported" msgstr "" #, python-format msgid "" "Revision #%d (%s) was exported to:

                                                                                      %s%s%s" msgstr "" msgid "Patches exported" msgstr "" #, python-format msgid "%d patches were exported to:

                                                                                      %s" msgstr "" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

                                                                                      Are you sure you want to use revert?

                                                                                      (use " "update to checkout another revision)" msgstr "" msgid "Filter b&y" msgstr "" msgid "&Ancestors and Descendants" msgstr "" msgid "A&uthor" msgstr "" msgid "&Branch" msgstr "" msgid "&More Options..." msgstr "" msgid "Unable to merge" msgstr "" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "" msgid "Unable to backout" msgstr "" msgid "Write bundle" msgstr "" msgid "Backwards phase change requested" msgstr "" msgid "Do you really want to make this revision secret?" msgstr "" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" msgid "&Make secret" msgstr "" msgid "&Cancel" msgstr "" msgid "Do you really want to force a backwards phase transition?" msgstr "" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" msgid "&Force" msgstr "" msgid "Cannot import selected revision" msgstr "" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" msgid "Invalid command" msgstr "" msgid "The selected command is empty" msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" msgid "Failed to execute custom TortoiseHg command" msgstr "" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "" msgid "Failed to execute custom command" msgstr "" #, python-format msgid "The command \"%s\" could not be executed." msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" msgid "&Edit Toolbar" msgstr "" msgid "&Refresh" msgstr "" msgid "&Filter Toolbar" msgstr "" #, python-format msgid "TortoiseHg: %s" msgstr "" msgid "S&tatus Bar" msgstr "" #, python-format msgid "Resolve Conflicts - %s" msgstr "" msgid "Local revision information" msgstr "" msgid "Other revision information" msgstr "" msgid "Unresolved conflicts" msgstr "" msgid "Mercurial Re&solve" msgstr "" msgid "Attempt automatic (trivial) merge" msgstr "" msgid "Tool &Resolve" msgstr "" msgid "Merge using selected merge tool" msgstr "" msgid "&Take Local" msgstr "" msgid "Accept the local file version (yours)" msgstr "" msgid "Take &Other" msgstr "" msgid "Accept the other file version (theirs)" msgstr "" msgid "&Mark as Resolved" msgstr "" msgid "Mark this file as resolved" msgstr "" msgid "Diff &Local to Ancestor" msgstr "" msgid "&Diff Other to Ancestor" msgstr "" msgid "Resolved conflicts" msgstr "" msgid "&Edit File" msgstr "" msgid "Edit resolved file" msgstr "" msgid "3-&Way Diff" msgstr "" msgid "Visual three-way diff" msgstr "" msgid "Visual diff between resolved file and first parent" msgstr "" msgid "&Diff to Other" msgstr "" msgid "Visual diff between resolved file and second parent" msgstr "" msgid "Mark as &Unresolved" msgstr "" msgid "Mark this file as unresolved" msgstr "" msgid "Detected merge/diff tools:" msgstr "" msgid "Command output" msgstr "" msgid "Unable to show subrepository files" msgstr "" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" msgid "There are merge conflicts to be resolved" msgstr "" msgid "All conflicts are resolved." msgstr "" msgid "There are no conflicting file merges." msgstr "" msgid "Exit without finishing resolve?" msgstr "" msgid "Unresolved conflicts remain. Are you sure?" msgstr "" msgid "E&xit" msgstr "" msgid "Ext" msgstr "" msgid "Repository" msgstr "" msgid "" msgstr "" msgid "File List Toolbar" msgstr "" msgid "Ma&nifest Mode" msgstr "" msgid "Show all version-controlled files in tree view" msgstr "" msgid "&Flat List" msgstr "" msgid "### filter text ###" msgstr "" msgid "Changed by &This Commit" msgstr "" msgid "Show files changed by this commit" msgstr "" msgid "Compare to &1st Parent" msgstr "" msgid "Compare to &2nd Parent" msgstr "" msgid "Toggle parent to be used as the base revision" msgstr "" msgid "List Optio&ns" msgstr "" #, python-format msgid "%s - Revision Details (%s)" msgstr "" #, python-format msgid "Revert - %s" msgstr "" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "" msgid "Revert all files to this revision" msgstr "" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "" msgid "null revision (i.e. remove file(s))" msgstr "" msgid "Changeset:" msgstr "" msgid "Child:" msgstr "" msgid "Predecessors:" msgstr "" msgid "Successors:" msgstr "" msgid "Head is closed!" msgstr "" msgid "Changesets where username contains string." msgstr "" msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" msgid "Like \"keyword(string)\" but accepts a regex." msgstr "" msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" msgid "The named bookmark or all bookmarks." msgstr "" msgid "The named tag or all tags." msgstr "" msgid "Changeset is tagged." msgstr "" msgid "Changeset is a named branch head." msgstr "" msgid "Changeset is a merge changeset." msgstr "" msgid "Changeset is closed." msgstr "" msgid "" "Changesets within the interval, see help dates" msgstr "" msgid "Greatest common ancestor of the two changesets." msgstr "" msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" msgid "Changesets which modify files matched by pattern." msgstr "" msgid "Changesets which add files matched by pattern." msgstr "" msgid "Changesets which remove files matched by pattern." msgstr "" msgid "Changesets containing files matched by pattern." msgstr "" msgid "All changesets belonging to the branches of changesets in set." msgstr "" msgid "Members of a set with no children in set." msgstr "" msgid "Changesets which are descendants of changesets in set." msgstr "" msgid "Changesets that are ancestors of a changeset in set." msgstr "" msgid "Child changesets of changesets in set." msgstr "" msgid "The set of all parents for all changesets in set." msgstr "" msgid "First parent for all changesets in set, or the working directory." msgstr "" msgid "Second parent for all changesets in set, or the working directory." msgstr "" msgid "Changesets with no parent changeset in set." msgstr "" msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" msgid "Changeset with lowest revision number in set." msgstr "" msgid "Changeset with highest revision number in set." msgstr "" msgid "First n members of a set." msgstr "" msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "" msgid "All changesets, the same as 0:tip." msgstr "" msgid "Revision Set Query" msgstr "" msgid "all revisions converted from subversion" msgstr "" msgid "changeset which represents converted svn revision" msgstr "" msgid "Common sets" msgstr "" msgid "File pattern sets" msgstr "" msgid "Set Ancestry" msgstr "" msgid "Set Logic" msgstr "" msgid "" "help " "revsets" msgstr "" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" #, python-format msgid "thg: unknown command '%s'\n" msgstr "" #, python-format msgid "thg %s: %s\n" msgstr "" #, python-format msgid "thg: %s\n" msgstr "" #, python-format msgid "abort: %s!\n" msgstr "" #, python-format msgid "abort: %s\n" msgstr "" #, python-format msgid "(%s)\n" msgstr "" msgid "option --config may not be abbreviated!" msgstr "" msgid "invalid arguments" msgstr "" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" msgid "repository root directory or symbolic path name" msgstr "" msgid "enable additional output" msgstr "" msgid "suppress output" msgstr "" msgid "display help and exit" msgstr "" msgid "set/override config option (use 'section.name=value')" msgstr "" msgid "enable debugging output" msgstr "" msgid "start debugger" msgstr "" msgid "print command execution profile" msgstr "" msgid "do not fork GUI process" msgstr "" msgid "always fork GUI process" msgstr "" msgid "read file list from file" msgstr "" msgid "read file list from file encoding utf-8" msgstr "" msgid "thg about" msgstr "" msgid "thg add [FILE]..." msgstr "" msgid "revision to annotate" msgstr "" msgid "open to line" msgstr "" msgid "initial search pattern" msgstr "" msgid "thg annotate" msgstr "" #, python-format msgid "invalid line number: %s" msgstr "" msgid "revision to archive" msgstr "" msgid "thg archive" msgstr "" msgid "merge with old dirstate parent after backout" msgstr "" msgid "parent to choose when backing out merge" msgstr "" msgid "revision to backout" msgstr "" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "" msgid "thg bisect" msgstr "" msgid "revision" msgstr "" msgid "thg bookmarks [-r REV] [NAME]" msgstr "" msgid "only one new bookmark name allowed" msgstr "" msgid "the clone will include an empty working copy (only a repository)" msgstr "" msgid "revision, tag or branch to check out" msgstr "" msgid "include the specified changeset" msgstr "" msgid "clone only the specified branch" msgstr "" msgid "use pull protocol to copy metadata" msgstr "" msgid "use uncompressed transfer (fast over LAN)" msgstr "" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "" msgid "record user as committer" msgstr "" msgid "record datecode as commit date" msgstr "" msgid "thg commit [OPTIONS] [FILE]..." msgstr "" msgid "thg debugblockmatcher" msgstr "" msgid "thg debugbugreport [TEXT]" msgstr "" msgid "thg debugconsole" msgstr "" msgid "thg debuglighthg" msgstr "" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "" msgid "no command specified" msgstr "" msgid "thg drag_copy SOURCE... DEST" msgstr "" msgid "thg drag_move SOURCE... DEST" msgstr "" msgid "a revision to send" msgstr "" msgid "thg email [REVS]" msgstr "" msgid "use only one form to specify the revision" msgstr "" msgid "select the specified revision" msgstr "" msgid "side-by-side comparison of revisions" msgstr "" msgid "thg filelog [OPTION]... FILE" msgstr "" msgid "requires a single filename" msgstr "" msgid "thg forget [FILE]..." msgstr "" msgid "revisions to graft" msgstr "" msgid "thg graft [-r] REV..." msgstr "" msgid "You must provide revisions to graft" msgstr "" msgid "ignore case during search" msgstr "" msgid "thg grep" msgstr "" msgid "thg guess" msgstr "" msgid "thg help [COMMAND]" msgstr "" msgid "global options:" msgstr "" msgid "use \"thg help\" for the full list of commands" msgstr "" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "" msgid "" "list of commands:\n" "\n" msgstr "" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" msgid "(no help text available)" msgstr "" msgid "options:\n" msgstr "" msgid "no commands defined\n" msgstr "" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "" msgid "" "basic commands:\n" "\n" msgstr "" #, python-format msgid " (default: %s)" msgstr "" msgid "thg hgignore [FILE]" msgstr "" msgid "import to the patch queue (MQ)" msgstr "" msgid "thg import [OPTION] [SOURCE]..." msgstr "" msgid "thg init [DEST]" msgstr "" msgid "thg lock" msgstr "" msgid "search for a given text or revset" msgstr "" msgid "(DEPRECATED)" msgstr "" msgid "open a new workbench window" msgstr "" msgid "thg log [OPTIONS] [FILE]" msgstr "" msgid "cannot specify both -k/--query and filenames" msgstr "" msgid "revision to display" msgstr "" msgid "thg manifest [-r REV] [FILE]" msgstr "" msgid "revision to merge" msgstr "" msgid "thg merge [[-r] REV]" msgstr "" msgid "Merge revision not specified or not found" msgstr "" msgid "a revision to post" msgstr "" msgid "thg postreview [-r] REV..." msgstr "" msgid "reviewboard extension not enabled" msgstr "" #, python-format msgid "see %(url)s" msgstr "" msgid "no revisions specified" msgstr "" msgid "revisions to prune" msgstr "" msgid "thg prune [-r] REV..." msgstr "" msgid "thg purge" msgstr "" msgid "keep original changesets" msgstr "" msgid "keep original branch names" msgstr "" msgid "rebase from the specified changeset" msgstr "" msgid "rebase onto the specified changeset" msgstr "" msgid "thg rebase -s REV -d REV [--keep]" msgstr "" msgid "Rebase already in progress" msgstr "" msgid "Resuming rebase already in progress" msgstr "" msgid "You must provide source and dest arguments" msgstr "" msgid "thg rejects [FILE]" msgstr "" msgid "You must provide the path to a file" msgstr "" msgid "thg remove [FILE]..." msgstr "" msgid "thg rename [SOURCE] [DEST]" msgstr "" msgid "field to give initial focus" msgstr "" msgid "thg repoconfig" msgstr "" msgid "thg resolve" msgstr "" msgid "the revision to show" msgstr "" msgid "thg revdetails [-r REV]" msgstr "" msgid "thg revert [FILE]..." msgstr "" msgid "revision to update" msgstr "" msgid "thg rupdate [[-r] REV]" msgstr "" msgid "name of the hgweb config file (serve more than one repository)" msgstr "" msgid "name of the hgweb config file (DEPRECATED)" msgstr "" msgid "thg serve [--web-conf FILE]" msgstr "" msgid "thg shellconfig" msgstr "" msgid "thg shelve" msgstr "" msgid "sign even if the sigfile is modified" msgstr "" msgid "make the signature local" msgstr "" msgid "the key id to sign with" msgstr "" msgid "do not commit the sigfile after signing" msgstr "" msgid "use as commit message" msgstr "" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "" msgid "Please enable the Gpg extension first." msgstr "" msgid "show files without changes" msgstr "" msgid "show ignored files" msgstr "" msgid "thg status [OPTIONS] [FILE]" msgstr "" msgid "discard uncommitted changes (no backup)" msgstr "" msgid "do not back up stripped revisions" msgstr "" msgid "do not modify working copy during strip" msgstr "" msgid "revision to strip" msgstr "" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "" msgid "open the bookmark sync window" msgstr "" msgid "thg sync [OPTION]... [PEER]" msgstr "" msgid "replace existing tag" msgstr "" msgid "make the tag local" msgstr "" msgid "revision to tag" msgstr "" msgid "remove a tag" msgstr "" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "" msgid "wait until the second ticks over" msgstr "" msgid "notify the shell for paths given" msgstr "" msgid "remove the status cache" msgstr "" msgid "show the contents of the status cache (no update)" msgstr "" msgid "update all repos in current dir" msgstr "" msgid "thg thgstatus [OPTION]" msgstr "" msgid "thg topics [-r REV] [NAME]" msgstr "" msgid "Please enable the Topic extension first." msgstr "" msgid "only one new topic name allowed" msgstr "" msgid "thg update [-C] [[-r] REV]" msgstr "" msgid "thg userconfig" msgstr "" msgid "changeset to view in diff tool" msgstr "" msgid "revisions to view in diff tool" msgstr "" msgid "bundle file to preview" msgstr "" msgid "launch visual diff tool" msgstr "" msgid "print license" msgstr "" msgid "thg version [OPTION]" msgstr "" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "" msgid "Location:" msgstr "" msgid "Update to:" msgstr "" msgid "Options:" msgstr "" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "" msgid "Perform a push before updating (-p/--push)" msgstr "" msgid "Allow pushing new branches (--new-branch)" msgstr "" msgid "Force push to remote location (-f/--force)" msgstr "" msgid "remove working directory" msgstr "" msgid "unknown revision!" msgstr "" #, python-format msgid "Remote Update - %s" msgstr "" msgid "&Update" msgstr "" msgid "Log" msgstr "" msgid "Repositories" msgstr "" #, python-format msgid "Running at %s" msgstr "" msgid "Stopped" msgstr "" msgid "TortoiseHg Web Server" msgstr "" msgid "Web Server" msgstr "" msgid "Port:" msgstr "" msgid "Status:" msgstr "" msgid "Start" msgstr "" msgid "Settings" msgstr "" msgid "" msgstr "" msgid "&True" msgstr "" msgid "&False" msgstr "" msgid "&Unspecified" msgstr "" #, python-format msgid "%dpt" msgstr "" msgid "Bold" msgstr "" msgid "Italic" msgstr "" msgid "Strike" msgstr "" msgid "Underline" msgstr "" msgid "&Set..." msgstr "" msgid "&Clear" msgstr "" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "" msgid "&Browse..." msgstr "" msgid "UI Language" msgstr "" msgid "Specify your preferred user interface language (restart needed)" msgstr "" msgid "Three-way Merge Tool" msgstr "" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" msgid "Visual Diff Tool" msgstr "" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" msgid "Visual Editor" msgstr "" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" msgid "CLI Editor" msgstr "" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" msgid "Shell" msgstr "" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
                                                                                      Default, Windows: cmd.exe /" "K title %(reponame)s
                                                                                      Default, OS X: not set
                                                                                      Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" msgid "Immediate Operations" msgstr "" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" msgid "Tab Width" msgstr "" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" msgid "Force Repo Tab" msgstr "" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "" msgid "Monitor Repo Changes" msgstr "" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" msgid "Max Diff Size" msgstr "" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" msgid "Fork GUI" msgstr "" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" msgid "Full Path Title" msgstr "" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" msgid "Auto-resolve merges" msgstr "" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" msgid "New Repo Skeleton" msgstr "" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "" msgid "Single Workbench Window" msgstr "" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" msgid "Default widget" msgstr "" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" msgid "" "Open new tabs next\n" "to the current tab" msgstr "" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" msgid "Author Coloring" msgstr "" msgid "Color changesets by author name. Default: False" msgstr "" msgid "Full Authorname" msgstr "" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" msgid "Task Tabs" msgstr "" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" msgid "Task Toolbar Order" msgstr "" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
                                                                                      Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
                                                                                      Valid names are: log commit sync grep and " "pbranch.
                                                                                      Default: log commit grep pbranch | sync" msgstr "" msgid "Long Summary" msgstr "" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" msgid "Log Batch Size" msgstr "" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "" msgid "Dead Branches" msgstr "" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" msgid "Branch Colors" msgstr "" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" msgid "Hide Tags" msgstr "" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" msgid "Activate Bookmarks" msgstr "" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

                                                                                      • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
                                                                                      • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
                                                                                      • never: Never show any prompt to " "activate any bookmarks.

                                                                                      Default: prompt" msgstr "" msgid "Show Family Line" msgstr "" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

                                                                                      Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" msgid "Use optimized graph layouter" msgstr "" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

                                                                                      Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" msgctxt "config item" msgid "Commit" msgstr "" msgid "Username" msgstr "" msgid "" "Name associated with commits. The common format is:
                                                                                      Full Name <" "email@example.com>" msgstr "" msgid "Ask Username" msgstr "" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" msgid "Summary Line Length" msgstr "" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" msgid "Close After Commit" msgstr "" msgid "Close the commit tool after every successful commit. Default: False" msgstr "" msgid "Push After Commit" msgstr "" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" msgid "Auto Commit List" msgstr "" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" msgid "Auto Exclude List" msgstr "" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" msgid "English Messages" msgstr "" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" msgid "New Commit Phase" msgstr "" msgid "The phase of new commits. Default: draft" msgstr "" msgid "Secret MQ Patches" msgstr "" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "" msgid "Check Subrepo Phase" msgstr "" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" msgid "Monitor working
                                                                                      directory changes" msgstr "" msgid "" "Select when the working directory status list will be refreshed:
                                                                                      - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
                                                                                      TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
                                                                                      - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
                                                                                      - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
                                                                                      Default: auto" msgstr "" msgid "Confirm adding unknown files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Confirm deleting files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Sync" msgstr "" msgid "After Pull Operation" msgstr "" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" msgid "Default Push" msgstr "" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

                                                                                      • all: The default. Push all changes in all " "branches.
                                                                                      • branch: Push all changes in the current branch.
                                                                                      • revision: Push the changes in the current branch up to the current revision.

                                                                                      Default: all" msgstr "" msgid "Confirm Push" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" msgid "Target Combo" msgstr "" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

                                                                                      • auto: The default. Show the combo if more than one target " "configured.
                                                                                      • always: Always show the combo.

                                                                                      Default: auto" msgstr "" msgid "SSH Command" msgstr "" msgid "" "Command to use for SSH connections.

                                                                                      Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" msgid "Subrepository Features:" msgstr "" msgid "Allow Hg Subrepos" msgstr "" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" msgid "Allow Git Subrepos" msgstr "" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

                                                                                      See the security note before enabling Git " "subrepos." msgstr "" msgid "Allow SVN Subrepos" msgstr "" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

                                                                                      See the security note before enabling " "Subversion subrepos." msgstr "" msgid "Server" msgstr "" msgid "Repository Details:" msgstr "" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" msgid "Encoding" msgstr "" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" msgid "'Publishing' repository" msgstr "" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" msgid "Web Server:" msgstr "" msgid "Textual description of the repository's purpose or contents." msgstr "" msgid "Contact" msgstr "" msgid "Name or email address of the person in charge of the repository." msgstr "" msgid "Style" msgstr "" msgid "Which template map style to use" msgstr "" msgid "Archive Formats" msgstr "" msgid "Comma separated list of archive formats allowed for downloading" msgstr "" msgid "Port" msgstr "" msgid "Port to listen on" msgstr "" msgid "Push Requires SSL" msgstr "" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" msgid "Stripes" msgstr "" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" msgid "Max Files" msgstr "" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "" msgid "Max Changes" msgstr "" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "" msgid "Allow Push" msgstr "" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" msgid "Deny Push" msgstr "" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" msgid "Proxy" msgstr "" msgid "Host" msgstr "" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "" msgid "Bypass List" msgstr "" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "" msgid "Optional. User name to authenticate with at the proxy server" msgstr "" msgid "Password" msgstr "" msgid "Optional. Password to authenticate with at the proxy server" msgstr "" msgid "From" msgstr "" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "" msgid "To" msgstr "" msgid "Comma-separated list of recipient email addresses" msgstr "" msgid "Cc" msgstr "" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "" msgid "Bcc" msgstr "" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "" msgid "method" msgstr "" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" msgid "SMTP Host" msgstr "" msgid "Host name of mail server" msgstr "" msgid "SMTP Port" msgstr "" msgid "Port to connect to on mail server. Default: 25" msgstr "" msgid "SMTP TLS" msgstr "" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "" msgid "SMTP Username" msgstr "" msgid "Username to authenticate to mail server with" msgstr "" msgid "SMTP Password" msgstr "" msgid "Password to authenticate to mail server with" msgstr "" msgid "Local Hostname" msgstr "" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "" msgid "Diff and Annotate" msgstr "" msgid "Patch EOL" msgstr "" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" msgid "Git Format" msgstr "" msgid "Use git extended diff header format. Default: False" msgstr "" msgid "MQ Git Format" msgstr "" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" msgid "No Dates" msgstr "" msgid "Do not include modification dates in diff headers. Default: False" msgstr "" msgid "Show Function" msgstr "" msgid "Show which function each change is in. Default: False" msgstr "" msgid "Ignore White Space" msgstr "" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "" msgid "Ignore WS Amount" msgstr "" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "" msgid "Ignore Blank Lines" msgstr "" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "" msgid "Annotate:" msgstr "" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "" msgid "Fonts" msgstr "" msgid "Message Font" msgstr "" msgid "Font used to display commit messages. Default: monospace 10" msgstr "" msgid "Diff Font" msgstr "" msgid "Font used to display text differences. Default: monospace 10" msgstr "" msgid "ChangeLog Font" msgstr "" msgid "Font used to display changelog data. Default: monospace 10" msgstr "" msgid "Output Font" msgstr "" msgid "Font used to display output messages. Default: sans 8" msgstr "" msgid "Extensions" msgstr "" msgid "Tools" msgstr "" msgid "Hooks" msgstr "" msgid "Issue Tracking" msgstr "" msgid "Issue Regex" msgstr "" msgid "Defines the regex to match when picking up issue numbers." msgstr "" msgid "Issue Link" msgstr "" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" msgid "Inline Tags" msgstr "" msgid "Show tags at start of commit message." msgstr "" msgid "Mandatory Issue Reference" msgstr "" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" msgid "Issue Tracker Plugin" msgstr "" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" msgid "Configure Issue Tracker" msgstr "" msgid "Configure the selected COM Bug Tracker plugin." msgstr "" msgid "Issue Tracker Trigger" msgstr "" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

                                                                                      • never: Do not update the Issue Tracker " "state automatically.
                                                                                      • commit: Update the Issue Tracker state after " "a successful commit.

                                                                                      Default: never" msgstr "" msgid "Changeset Link" msgstr "" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
                                                                                      The template string " "uses a normal mercurial template syntax, such as:

                                                                                      • {node|short} : replaced by " "the 12 digit revision id.
                                                                                      • {rev} : replaced by the revision number." "
                                                                                      • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
                                                                                      For example, in order to " "link to bitbucket commit pages you can set this to:
                                                                                      https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
                                                                                      You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
                                                                                      https://github.com/torvalds/" "linux/commit/{gitnode}
                                                                                      https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
                                                                                      " msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "" msgid "User name to authenticate with review board" msgstr "" msgid "Password to authenticate with review board" msgstr "" msgid "Server Repository ID" msgstr "" msgid "The default repository id for this repo on the review board server" msgstr "" msgid "Target Groups" msgstr "" msgid "A comma separated list of target groups" msgstr "" msgid "Target People" msgstr "" msgid "A comma separated list of target people" msgstr "" msgid "Kiln Bfiles" msgstr "" msgid "Patterns" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" msgid "Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" msgid "System Cache" msgstr "" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "" msgid "Simplelock" msgstr "" msgid "Lock Clone" msgstr "" msgid "" "Location of local clone of organizational lock repository.

                                                                                      This repository " "must contain a \"locked\" text file" msgstr "" msgid "Largefiles" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" msgid "Minimum Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" msgid "User Cache" msgstr "" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" msgid "Projrc" msgstr "" msgid "Require confirmation" msgstr "" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

                                                                                      • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
                                                                                      • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
                                                                                      • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
                                                                                      " msgstr "" msgid "Servers" msgstr "" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" msgid "Include" msgstr "" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" msgid "Exclude" msgstr "" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" msgid "Update on incoming" msgstr "" msgid "" "Let the user update the projrc on incoming:
                                                                                      • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
                                                                                      • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
                                                                                      • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                                                                                        Default: never" msgstr "" msgid "GnuPG" msgstr "" msgid "Specify the path to GPG. Default: gpg" msgstr "" msgid "Key ID" msgstr "" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "" msgid "TortoiseHg Settings" msgstr "" msgid "Iniparse package not found" msgstr "" msgid "Can't change settings without iniparse package - view is readonly." msgstr "" #, python-format msgid "%s's global settings" msgstr "" msgid "No repository found" msgstr "" msgid "no repo at " msgstr "" #, python-format msgid "%s project settings (.hg/projrc)" msgstr "" #, python-format msgid "%s repository settings" msgstr "" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "" msgid "Apply changes before exit?" msgstr "" msgid "&No (discard changes)" msgstr "" msgid "Reload" msgstr "" msgid "Settings File:" msgstr "" msgid "Confirm Save" msgstr "" msgid "Save changes before editing?" msgstr "" msgid "&Save" msgstr "" msgid "Confirm Reload" msgstr "" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" msgid "Unable to create a Mercurial.ini file" msgstr "" msgid "Insufficient access rights, reverting to read-only mode." msgstr "" msgid "Context Menu" msgstr "" msgid "Top menu items:" msgstr "" msgid "Sub menu items:" msgstr "" msgid "Menu Behavior" msgstr "" msgid "Hide context menu outside repositories" msgstr "" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" msgid "Icons" msgstr "" msgid "Overlays" msgstr "" msgid "Enabled overlays" msgstr "" msgid "Local disks only" msgstr "" msgid "Enabled Overlay Handlers" msgstr "" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "" msgid "Added" msgstr "" msgid "Locked*" msgstr "" msgid "Ignored*" msgstr "" msgid "Unversioned" msgstr "" msgid "Readonly*" msgstr "" msgid "Deleted*" msgstr "" msgid "*: not used by TortoiseHg" msgstr "" msgid "Taskbar" msgstr "" msgid "Show Icon" msgstr "" msgid "Highlight Icon" msgstr "" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" msgid "Explorer Extension Settings - TortoiseHg" msgstr "" msgid "Clear" msgstr "" msgid "Clear the current shelf file" msgstr "" msgid "Delete the current shelf file" msgstr "" msgid "Left Toolbar" msgstr "" msgid "Delete selected chunks" msgstr "" msgid "Move all files right" msgstr "" msgid "Move selected file right" msgstr "" msgid "Edit file" msgstr "" msgid "Move selected chunks right" msgstr "" msgid "Refresh Toolbar" msgstr "" msgid "Refresh" msgstr "" msgid "New Shelf" msgstr "" msgid "Right Toolbar" msgstr "" msgid "Move selected chunks left" msgstr "" msgid "Move selected file left" msgstr "" msgid "Move all files left" msgstr "" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "" msgid "Delete selected chunks from working copy?" msgstr "" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "" msgid "Are you sure?" msgstr "" msgid "TortoiseHg New Shelf Name" msgstr "" msgid "Specify name of new shelf" msgstr "" msgid "Bad filename" msgstr "" #, python-format msgid "A shelf name cannot contain %s" msgstr "" msgid "File already exists" msgstr "" msgid "A shelf file of that name already exists" msgstr "" msgid "New shelf created" msgstr "" #, python-format msgid "Delete shelf file %s?" msgstr "" msgid "Shelf deleted" msgstr "" msgid "Revert all working copy changes?" msgstr "" #, python-format msgid "Clear contents of shelf file %s?" msgstr "" msgid "Shelf cleared" msgstr "" #, python-format msgid "Shelf: %s" msgstr "" #, python-format msgid "Patch: %s" msgstr "" msgid "Key:" msgstr "" msgid "Local sign" msgstr "" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "" msgid "No commit" msgstr "" msgid "Use custom commit message:" msgstr "" msgid "&Sign" msgstr "" #, python-format msgid "Sign - %s" msgstr "" msgid "Signature has been added" msgstr "" msgid "Repository command still running" msgstr "" msgid "Filter:" msgstr "" msgid "Check all files" msgstr "" msgid "Uncheck all files" msgstr "" msgid "Status File List Toolbar" msgstr "" msgid "Remove filter, show root" msgstr "" #, python-format msgid "%s - status (selection filtered)" msgstr "" #, python-format msgid "%s - status" msgstr "" msgid "Check" msgstr "" msgid "Uncheck" msgstr "" msgid "status" msgstr "" msgid "Failed to refresh" msgstr "" msgid "No appropriate files" msgstr "" msgid "No files found for this operation" msgstr "" msgid "Stat" msgstr "" msgid "M" msgstr "" msgid "Filename" msgstr "" msgid "Size (KB)" msgstr "" #, python-format msgid "Checked count: %d" msgstr "" msgid ", resolved merge" msgstr "" msgid ", unresolved merge" msgstr "" #, python-format msgid "%s is modified" msgstr "" msgid "modified" msgstr "" #, python-format msgid "%s is added" msgstr "" msgid "added" msgstr "" #, python-format msgid "%s is removed" msgstr "" msgid "removed" msgstr "" #, python-format msgid "%s is not tracked (unknown)" msgstr "" msgid "unknown" msgstr "" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "" msgid "missing" msgstr "" #, python-format msgid "%s is ignored" msgstr "" msgid "ignored" msgstr "" #, python-format msgid "%s is not modified (clean)" msgstr "" msgid "clean" msgstr "" #, python-format msgid "%s is a dirty subrepo" msgstr "" msgid "subrepo" msgstr "" msgid "Check for incoming changes from selected URL" msgstr "" msgid "Pull incoming changes from selected URL" msgstr "" msgid "Detect outgoing changes to selected URL" msgstr "" msgid "Push outgoing changes to selected URL" msgstr "" msgid "Sync Bookmarks" msgstr "" msgid "Email outgoing changesets for remote repository" msgstr "" msgid "Manage pending perforce changelists" msgstr "" msgid "Unbundle" msgstr "" msgid "Selected Options:" msgstr "" msgid "Path Edit Toolbar" msgstr "" msgid "Security" msgstr "" msgid "Manage HTTPS connection security and user authentication" msgstr "" msgid "Save" msgstr "" msgid "Save current URL under an alias" msgstr "" msgid "Paths in Repository Settings:" msgstr "" msgid "Related Paths:" msgstr "" msgid "branch: " msgstr "" msgid "bookmark: " msgstr "" #, python-format msgid "rev: %d (%s)" msgstr "" msgid "Post Pull: " msgstr "" msgid "&Edit..." msgstr "" msgid "&Remove..." msgstr "" msgid "Repository not local" msgstr "" msgid "A terminal shell cannot be opened for remote" msgstr "" msgid "Confirm path delete" msgstr "" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "" msgid "Select repository" msgstr "" msgid "No host specified" msgstr "" msgid "Please set a valid URL to continue." msgstr "" msgid "No remote repository URL or path set" msgstr "" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

                                                                                        Please type and save a remote repository path on the " "Sync widget." msgstr "" msgid "Redundant authentication info" msgstr "" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" msgid "sync command already running" msgstr "" #, python-format msgid "Getting incoming changesets from %s..." msgstr "" #, python-format msgid "Found incoming changesets from %s" msgstr "" #, python-format msgid "No incoming changesets from %s" msgstr "" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "" #, python-format msgid "Pulling from %s..." msgstr "" #, python-format msgid "Pull from %s completed" msgstr "" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "" msgid "Merge caused file conflicts" msgstr "" msgid "File conflicts need to be resolved" msgstr "" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "" #, python-format msgid "%d outgoing changesets to %s" msgstr "" #, python-format msgid "No outgoing changesets to %s" msgstr "" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "" msgid "Perforce pending..." msgstr "" #, python-format msgid "%s (submitted)" msgstr "" #, python-format msgid "%s (pending)" msgstr "" msgid "Unable to parse p4pending output" msgstr "" #, python-format msgid "%d pending changelists found" msgstr "" msgid "No pending Perforce changelists" msgstr "" msgid "Aborted p4pending" msgstr "" msgid "Unable to determine pending changesets" msgstr "" msgid "Confirm Push to remote Repository" msgstr "" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" #, python-format msgid "Push to %s aborted" msgstr "" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" #, python-format msgid "Pushing to %s..." msgstr "" #, python-format msgid "Push to %s completed" msgstr "" #, python-format msgid "Push to %s aborted, ret %d" msgstr "" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" msgid "Determining outgoing changesets to email..." msgstr "" msgid "No outgoing changesets" msgstr "" #, python-format msgid "Outgoing aborted, ret %d" msgstr "" msgid "Select bundle file" msgstr "" msgid "Bundle files (*.hg)" msgstr "" msgid "Unable to remove URL" msgstr "" msgid "Post Pull Behavior" msgstr "" msgid "Select post-pull operation for this repository" msgstr "" msgid "None - simply pull changesets" msgstr "" msgid "Update - pull, then try to update" msgstr "" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "" msgid "Rebase - rebase local commits above pulled changes" msgstr "" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "" msgid "Launch settings tool..." msgstr "" msgid "Unable to save post pull operation" msgstr "" msgid "Save Path" msgstr "" msgid "Alias" msgstr "" msgid "URL" msgstr "" msgid "Remove authentication data from URL" msgstr "" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" msgid "Update subrepo paths" msgstr "" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" msgid "Unable to save an URL" msgstr "" msgid "Confirm URL replace" msgstr "" #, python-format msgid "%s already exists, replace URL?" msgstr "" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

                                                                                        %s

                                                                                        Replace it with the " "following URL?:

                                                                                        %s" msgstr "" msgid "Security: " msgstr "" #, python-format msgid "Host: %s" msgstr "" msgid "Secure HTTPS Connection" msgstr "" msgid "Verify with Certificate Authority certificates (best)" msgstr "" msgid "Verify with stored host fingerprint (good)" msgstr "" msgid "No host validation, but still encrypted (bad)" msgstr "" msgid "### host certificate fingerprint ###" msgstr "" msgid "Query" msgstr "" msgid "TLS 1.0" msgstr "" msgid "TLS 1.1" msgstr "" msgid "TLS 1.2" msgstr "" msgid "Minimum Protocol" msgstr "" msgid "User Authentication" msgstr "" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Key" msgstr "" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Chain" msgstr "" msgid "Certificate Query Error" msgstr "" msgid "Select User Certificate Key File" msgstr "" msgid "PEM files (*.pem *.key)" msgstr "" msgid "Select User Certificate Chain File" msgstr "" msgid "PEM files (*.pem *.crt *.cer)" msgstr "" msgid "Unable to save authentication" msgstr "" #, python-format msgid "%s - sync options" msgstr "" msgid "Allow push of a new branch (--new-branch)" msgstr "" msgid "Force push or pull (override safety checks, --force)" msgstr "" msgid "Temporarily disable configured HTTP proxy" msgstr "" msgid "Emit debugging output (--debug)" msgstr "" msgid "Work on patch queue (--mq)" msgstr "" #, python-format msgid "Tag - %s" msgstr "" msgid "Tag:" msgstr "" msgid "Tagged:" msgstr "" msgid "Local tag" msgstr "" msgid "Replace existing tag (-f/--force)" msgstr "" msgid "Use English commit message" msgstr "" msgid "local" msgstr "" msgid "Move" msgstr "" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "" #, python-format msgid "Added tag %s for changeset %s" msgstr "" #, python-format msgid "Tag '%s' has been moved" msgstr "" #, python-format msgid "Tag '%s' has been added" msgstr "" #, python-format msgid "Removed tag %s" msgstr "" #, python-format msgid "Tag '%s' has been removed" msgstr "" msgid "Patch files (*.diff *.patch)" msgstr "" #, python-format msgid "Import - %s" msgstr "" msgid "Browse Directory..." msgstr "" msgid "Import from Clipboard" msgstr "" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "" msgid "Preview:" msgstr "" msgid "Shelf" msgstr "" msgid "Checking working directory status..." msgstr "" msgid "&Import" msgstr "" msgid "Working directory is not clean! View changes..." msgstr "" msgid "Select patches" msgstr "" msgid "Select Directory containing patches" msgstr "" #, python-format msgid "%s patches" msgstr "" #, python-format msgid "%s will be imported to " msgstr "" msgid "Nothing to import" msgstr "" msgid "Strip:" msgstr "" msgid "Discard local changes, no backup (-f/--force)" msgstr "" msgid "No backup (-n/--nobackup)" msgstr "" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "" msgstr[1] "" msgid "Unknown revision!" msgstr "" msgid "Detected uncommitted local changes." msgstr "" msgid "Do you want to keep them or discard them?" msgstr "" msgid "&Keep (--keep)" msgstr "" msgid "&Discard (--force)" msgstr "" msgid "Confirm Strip" msgstr "" #, python-format msgid "Strip - %s" msgstr "" msgid "&Strip" msgstr "" msgid "Topic:" msgstr "" msgid "&Rename" msgstr "" #, python-format msgid "Topic - %s" msgstr "" #, python-format msgid "A topic named \"%s\" already exists" msgstr "" #, python-format msgid "Topic '%s' has been added" msgstr "" #, python-format msgid "Topic '%s' does not exist" msgstr "" #, python-format msgid "Topic '%s' has been removed" msgstr "" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "" msgid "Parent 1:" msgstr "" msgid "Parent 2:" msgstr "" msgid "Pull subrepos from:" msgstr "" msgid "List updated files (--verbose)" msgstr "" msgid "Discard local changes, no backup (-C/--clean)" msgstr "" msgid "Always merge (when possible)" msgstr "" msgid "(same as parent)" msgstr "" msgid "Activate bookmark?" msgstr "" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

                                                                                        Do " "you want to activate it?
                                                                                        You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

                                                                                        Select " "the bookmark that you want to activate and click OK.

                                                                                        Click " "Cancel if you don't want to activate any of them.

                                                                                        You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                                                        " msgstr "" msgid "Deactivate current bookmark?" msgstr "" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" msgid "Discard - discard local changes, no backup" msgstr "" msgid "&Shelve" msgstr "" msgid "Shelve - move local changes to a patch" msgstr "" msgid "Merge - allow to merge with local changes" msgstr "" msgid "Confirm Update" msgstr "" #, python-format msgid "Update - %s" msgstr "" msgid "[non-existant]" msgstr "" msgid "Tool launch failure" msgstr "" #, python-format msgid "%s : %s" msgstr "" msgid "No diff tool found" msgstr "" msgid "No visual diff tools were detected" msgstr "" msgid "[working copy]" msgstr "" msgid "[original]" msgstr "" msgid "Unable to find changeset" msgstr "" msgid "You likely need to refresh this application" msgstr "" msgid "No file changes" msgstr "" msgid "There are no file changes to view" msgstr "" msgid "working changes" msgstr "" #, python-format msgid "changeset %d:%s" msgstr "" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "" msgid "Visual Diffs - " msgstr "" msgid " filtered" msgstr "" msgid "Temporary files are removed when this dialog is closed" msgstr "" msgid "Select Tool:" msgstr "" msgid "Dir diff to p1" msgstr "" msgid "Dir diff to p2" msgstr "" msgid "3-way dir diff" msgstr "" msgid "Directory diff" msgstr "" msgid "Confirm Discard" msgstr "" msgid "Discard outstanding changes to working directory?" msgstr "" msgid "Config files (*.conf *.config *.ini)" msgstr "" msgid "Open hgweb config" msgstr "" msgid "Save hgweb config" msgstr "" msgid "Path:" msgstr "" msgid "Local Path:" msgstr "" msgid "Select Repository" msgstr "" msgid "Add Path to Serve" msgstr "" msgid "Edit Path to Serve" msgstr "" msgid "Local Path" msgstr "" msgid "Webconf" msgstr "" msgid "Config File:" msgstr "" msgid "Open" msgstr "" msgid "New &Workbench" msgstr "" msgid "&New Repository..." msgstr "" msgid "Clon&e Repository..." msgstr "" msgid "&Open Repository..." msgstr "" msgid "&File" msgstr "" msgid "&View" msgstr "" msgid "&Repository" msgstr "" msgid "&Help" msgstr "" msgid "&Dock Toolbar" msgstr "" msgid "&Task Toolbar" msgstr "" msgid "&Custom Toolbar" msgstr "" msgid "S&ync Toolbar" msgstr "" msgid "&Close Repository" msgstr "" msgid "Sh&ow Repository Registry" msgstr "" msgid "Show &Patch Queue" msgstr "" msgid "Show Conso&le" msgstr "" msgid "Place Console in Doc&k Area" msgstr "" msgid "R&epository Registry Options" msgstr "" msgid "Save Open Repositories on E&xit" msgstr "" msgid "Sa&ve Current Sync Paths on Exit" msgstr "" msgid "Show Tas&k Tab" msgstr "" msgid "&Commit" msgstr "" msgid "&Patch Branch" msgstr "" msgid "Revision &Details" msgstr "" msgid "&Search" msgstr "" msgid "S&ynchronize" msgstr "" msgid "Refresh current repository" msgstr "" msgid "Refresh &Task Tab" msgstr "" msgid "Refresh only the current task tab" msgstr "" msgid "Load &All Revisions" msgstr "" msgid "Load all revisions into graph" msgstr "" msgid "Go to current revision" msgstr "" msgid "&Goto Revision..." msgstr "" msgid "Go to a specific revision" msgstr "" msgid "Filter graph with revision sets or branches" msgstr "" msgid "&Workbench Toolbars" msgstr "" msgid "&Lock File..." msgstr "" msgid "Lock or unlock files" msgstr "" msgid "Update working directory or switch revisions" msgstr "" msgid "&Shelve..." msgstr "" msgid "&Import Patches..." msgstr "" msgid "U&nbundle..." msgstr "" msgid "&Merge..." msgstr "" msgid "Merge with the other head of the current branch" msgstr "" msgid "&Resolve..." msgstr "" msgid "R&ollback/Undo..." msgstr "" msgid "&Purge..." msgstr "" msgid "&Bisect..." msgstr "" msgid "&Verify" msgstr "" msgid "Re&cover" msgstr "" msgid "&Web Server" msgstr "" msgid "E&xplorer Help" msgstr "" msgid "&Readme" msgstr "" msgid "About &Qt" msgstr "" msgid "&About TortoiseHg" msgstr "" msgid "&Incoming" msgstr "" msgid "&Pull" msgstr "" msgid "&Outgoing" msgstr "" msgid "P&ush" msgstr "" msgid "&Sync Bookmarks..." msgstr "" #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" msgid "Check for incoming changes" msgstr "" msgid "Pull incoming changes" msgstr "" msgid "Detect outgoing changes" msgstr "" msgid "Push outgoing changes" msgstr "" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" #, python-format msgid "Execute custom tool '%s'" msgstr "" msgid "Custom Toolbar &Settings" msgstr "" msgid "TortoiseHg Workbench" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "" msgid "Goto revision" msgstr "" msgid "Enter revision identifier" msgstr "" msgid "Select repository directory to open" msgstr "" msgid "README not configured" msgstr "" msgid "" "A README file is not configured for the current repository.

                                                                                        To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" msgid "Issue Tracker Plugin Error" msgstr "" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "" msgid "This error will not be shown again until you restart the workbench" msgstr "" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "" msgid "Error executing \"commit finished\" trigger" msgstr "" msgid "Cannot open Plugin Options dialog" msgstr "" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "" msgid "[--insecure] [SOURCE]" msgstr "" #, python-format msgid "unsupported URL: %s" msgstr "" #, python-format msgid "%s certificate error: no certificate received" msgstr "" msgid "move after the specified patch" msgstr "" msgid "[--after PATCH] PATCH..." msgstr "" msgid "unknown patch to move specified" msgstr "" msgid "invalid patch position specified" msgstr "" msgid "cannot move applied patches" msgstr "" #, python-format msgid "patch %s not in series" msgstr "" msgid "cannot move into applied patches" msgstr "" msgid "abort: " msgstr "" msgid "hint: " msgstr "" #, python-format msgid "HTTP Error: %d (%s)" msgstr "" #, python-format msgid "URLError: %s" msgstr "" msgid "SSL: Server certificate verify failed" msgstr "" #, python-format msgid "SSL: unknown error %s:%s" msgstr "" #, python-format msgid "SSL error: %s" msgstr "" msgid "hgsubversion packaged with thg" msgstr "" msgid "hggit packaged with thg" msgstr "" msgid "inotify is not supported on this platform" msgstr "" msgid "eol is incompatible with win32text" msgstr "" msgid "win32text is incompatible with eol" msgstr "" msgid "hgsubversion is incompatible with perfarce" msgstr "" msgid "perfarce is incompatible with hgsubversion" msgstr "" msgid "Workbench custom toolbar" msgstr "" msgid "Revision details context menu" msgstr "" msgid "Pair selection context menu" msgstr "" msgid "Multiple selection context menu" msgstr "" msgid "Commit context menu" msgstr "" msgid "File context menu (on manifest and revision details)" msgstr "" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" msgid "in the future" msgstr "" msgid "now" msgstr "" #, python-format msgid "command parse error: %s" msgstr "" #, python-format msgid "no matches found: %s" msgstr "" msgid "Commit..." msgstr "" msgid "Commit changes in repository" msgstr "" msgid "Create Repository Here" msgstr "" msgid "Create a new repository" msgstr "" msgid "Clone..." msgstr "" msgid "Create clone here from source" msgstr "" msgid "File Status" msgstr "" msgid "Repository status & changes" msgstr "" msgid "Add Files..." msgstr "" msgid "Add files to version control" msgstr "" msgid "Revert Files..." msgstr "" msgid "Revert file changes" msgstr "" msgid "Forget Files..." msgstr "" msgid "Remove files from version control" msgstr "" msgid "Remove Files..." msgstr "" msgid "Rename File" msgstr "" msgid "Rename file or directory" msgstr "" msgid "View change history in repository" msgstr "" msgid "File History" msgstr "" msgid "View change history of selected files" msgstr "" msgid "Shelve Changes" msgstr "" msgid "Move changes between working dir and patch" msgstr "" msgid "Synchronize" msgstr "" msgid "Synchronize with remote repository" msgstr "" msgid "Start web server for this repository" msgstr "" msgid "Update..." msgstr "" msgid "Update working directory" msgstr "" msgid "Update Icons" msgstr "" msgid "Update icons for this repository" msgstr "" msgid "Global Settings" msgstr "" msgid "Configure user wide settings" msgstr "" msgid "Repository Settings" msgstr "" msgid "Configure repository settings" msgstr "" msgid "Explorer Extension Settings" msgstr "" msgid "Configure Explorer extension" msgstr "" msgid "About TortoiseHg" msgstr "" msgid "Show About Dialog" msgstr "" msgid "Diff to parent" msgstr "" msgid "View changes using GUI diff tool" msgstr "" msgid "Edit Ignore Filter" msgstr "" msgid "Edit repository ignore filter" msgstr "" msgid "Guess Renames" msgstr "" msgid "Detect renames and copies" msgstr "" msgid "Search History" msgstr "" msgid "Search file revisions for patterns" msgstr "" msgid "DnD Synchronize" msgstr "" msgid "Synchronize with dragged repository" msgstr "" #, python-format msgid "unrecognized response: %s" msgstr "" msgid "password: " msgstr "" #, python-format msgid "repository %s not found" msgstr "" msgid "win32ill: cannot create window for messages" msgstr "" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "" msgid "win32ill: interrupted while stopping message loop\n" msgstr "" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/sv.po0000644000000000000000000043742414440352353016274 0ustar00rootroot# Swedish translation for tortoisehg # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the tortoisehg package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: Swedish \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2018-03-07 04:45+0000\n" "Last-Translator: ojn \n" "Language-Team: Swedish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2019-07-17 05:45+0000\n" "X-Generator: Launchpad (build 19009)\n" msgid "TortoiseHg Overlay Icon Server" msgstr "" msgid "Exit" msgstr "Stäng" msgid "About" msgstr "Om programmet" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "Flera ikoner är tillhandahållna av TortoiseSVN och Tango projekt" msgid "You can visit our site here" msgstr "Du kan besöka vår webbplats här" msgid "&License" msgstr "&Licens" #, python-format msgid "version %s" msgstr "version %s" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "med Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "En ny version av TortoiseHg (%s) finns att ladda ner!" msgid "License" msgstr "Licens" msgid "= Working Directory Parent =" msgstr "= Överordnad arbetskatalog =" msgid "Directory of files" msgstr "Mapp med filer" msgid "Tar archives" msgstr "Tar arkiver" msgid "Uncompressed tar archive" msgstr "Icke komprimerade tar arkiv" msgid "Bzip2 tar archives" msgstr "Bzip2 tar arkiv" msgid "Tar archive compressed using bzip2" msgstr "Tar arkiv komprimerad med bzip2" msgid "Gzip tar archives" msgstr "Gzip tar arkiver" msgid "Tar archive compressed using gzip" msgstr "Tar arkiver komprimerade med gzip" msgid "Zip archives" msgstr "Zip arkiver" msgid "Uncompressed zip archive" msgstr "Icke komprimerad zip arkiv" msgid "Zip archive compressed using deflate" msgstr "Zip arkiv komprimerad med deflate" msgid "Revision:" msgstr "Revision:" msgid "All files in this revision" msgstr "Alla filer i detta revision" msgid "Only files modified/created in this revision" msgstr "Bara filer ändrade/skapade i detta revision" msgid "Only files modified/created since:" msgstr "Bara filer modifierade/skapade sedan:" msgid "Archive Content:" msgstr "Arkiv innehåll" msgid "Recurse into subrepositories" msgstr "Rekursera i underkataloger" msgid "Browse..." msgstr "Bläddra..." msgid "Destination path:" msgstr "" msgid "Archive types:" msgstr "Arkivtyper:" msgid "Hg command:" msgstr "Hg-kommando:" msgid "Select Destination Folder" msgstr "Välj målmapp" msgid "Select Destination File" msgstr "Välj målfil" msgid "All files (*)" msgstr "Alla filer (*)" msgid "Duplicate Name" msgstr "Duplikat namn" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "Mål \"%s\" finns redan som en fil!" msgid "Confirm Overwrite" msgstr "Bekräfta överskrivning" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" "Katalogen \"%s\" är inte tom!\n" "\n" "Vill du skriva över den?" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" "Filen \"%s\" existerar redan!\n" "\n" "Vill du skriva över den?" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "Mål \"%s\" finns redan som en katalog!" #, python-format msgid "Archive - %s" msgstr "Arkiv - %s" msgid "&Archive" msgstr "&Arkiv" msgid "Backout requires a parent revision" msgstr "Backandet kräver en förälderrevision" msgid "Cannot backout change on a different branch" msgstr "Kan inte backa ändringen på en annan gren" #, python-format msgid "Backout - %s" msgstr "Backa ut - %s" msgid "Prepare to backout" msgstr "Förebered att backa ut" msgid "Verify backout revision and ensure your working directory is clean." msgstr "" msgid "Backing out a parent revision is a single step operation" msgstr "" msgid "Backout revision" msgstr "" msgid "Not a head, backout will create a new head!" msgstr "" msgid "Current local revision" msgstr "" msgid "Working directory status" msgstr "" msgid "Checking..." msgstr "" msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Automatically resolve merge conflicts where possible" msgstr "" msgid "Uncommitted local changes are detected" msgstr "" msgid "Clean" msgstr "" msgid "Backing out, then merging..." msgstr "" msgid "All conflicting files will be marked unresolved." msgstr "" msgid "Automatically advance to next page when backout and merge are complete." msgstr "" #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" msgid "No merge conflicts, ready to commit" msgstr "" msgid "Commit backout and merge results" msgstr "" msgid "Parents" msgstr "" msgid "Working Directory" msgstr "" msgid "Working Directory (merged)" msgstr "" msgid "Commit message" msgstr "" msgid "Skip final confirmation page, close after commit." msgstr "" msgid "Backed out changeset: " msgstr "" msgid "Confirm Discard Message" msgstr "" msgid "Discard current backout message?" msgstr "" msgid "Use English backout message" msgstr "" msgid "Backing out and committing..." msgstr "" msgid "Please wait while making backout." msgstr "" msgid "Committing..." msgstr "" msgid "Please wait while committing merged files." msgstr "" msgid "Finished" msgstr "" msgid "Backout changeset" msgstr "" #, python-format msgid "Bisect - %s" msgstr "" msgid "Accept" msgstr "" msgid "Known good revision:" msgstr "" msgid "Known bad revision:" msgstr "" msgid "Discard local changes (revert --all)" msgstr "" msgid "Revision is &Good" msgstr "" msgid "Revision is &Bad" msgstr "" msgid "&Skip this Revision" msgstr "" msgid "Close" msgstr "Stäng" msgid "Error encountered." msgstr "" msgid "Culprit found." msgstr "" msgid "Revision" msgstr "Revidering" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "" "Testa revideringen och rapportera slutsatser (bra/dåligt/eller hoppa över)" #, python-format msgid "%s (hint: %s)" msgstr "%s (antydan: %s)" msgid "Bookmark:" msgstr "Bokmärke" msgid "New Name:" msgstr "Nytt namn:" msgid "Activate:" msgstr "Aktivera:" msgid "&Add" msgstr "&Lägg till" msgid "Re&name" msgstr "Byt&namn" msgid "&Remove" msgstr "&Ta bort" msgid "&Move" msgstr "&Flytta" #, python-format msgid "Bookmark - %s" msgstr "Bokmärk - %s" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "Bokmärken med namnet \"%s\" finns redan" #, python-format msgid "Bookmark '%s' has been added" msgstr "Bokmärke '%s' har lagts till" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "Bokmärke med namnet \"%s\" finns inte" #, python-format msgid "Bookmark '%s' has been moved" msgstr "Bokmärke '%s' har flyttats" #, python-format msgid "Bookmark '%s' does not exist" msgstr "Bokmärke '%s' existerar inte" #, python-format msgid "Bookmark '%s' has been removed" msgstr "Bokmärke '%s' har raderats" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "Bokmärke '%s' har ändrat namn till '%s'" msgid "TortoiseHg Bookmark Sync" msgstr "TortoiseHg Synkronisera bokmärken" msgid "Outgoing Bookmarks" msgstr "Utgående bokmärken" msgid "&Push Bookmark" msgstr "" msgid "&Remove Bookmark" msgstr "&Radera Bokmärke" msgid "Incoming Bookmarks" msgstr "Inkommande Bokmärken" msgid "P&ull Bookmark" msgstr "" msgid "R&emove Bookmark" msgstr "" #, python-format msgid "Pushed local bookmark: %s" msgstr "" #, python-format msgid "Pulled remote bookmark: %s" msgstr "" #, python-format msgid "Removed remote bookmark: %s" msgstr "" #, python-format msgid "Removed local bookmark: %s" msgstr "" #, python-format msgid "%s - branch operation" msgstr "" msgid "Select branch of merge commit" msgstr "" msgid "Changes take effect on next commit" msgstr "" msgid "No branch changes" msgstr "" msgid "Open a new named branch" msgstr "" msgid "Close current branch" msgstr "" #, python-format msgid "Please report this bug to our bug tracker" msgstr "" msgid "Checking for updates..." msgstr "" msgid "Copy" msgstr "" msgid "Quit" msgstr "" msgid "TortoiseHg Bug Report" msgstr "" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "" msgid "Your TortoiseHg is up to date." msgstr "" msgid "Save error report to" msgstr "" msgid "Text files (*.txt)" msgstr "" msgid "Error writing file" msgstr "" msgid "TortoiseHg Error" msgstr "" msgid "" "If you still have trouble, please file a bug report." msgstr "" msgid "Visual Diff" msgstr "" msgid "View file changes in external diff tool" msgstr "" msgid "Edit Local" msgstr "" msgid "Edit current file in working copy" msgstr "" msgid "Revert to Revision" msgstr "" msgid "Revert file(s) to contents at this revision" msgstr "" msgid "Patch failed to apply" msgstr "" msgid "Manually resolve rejected chunks?" msgstr "" msgid "Edit patched file and rejects?" msgstr "" msgid "No deletable chunks" msgstr "" msgid "Completely remove file from patch?" msgstr "" msgid "Revert all file changes?" msgstr "" msgid "No chunks remain" msgstr "" msgid "file has been deleted, refresh" msgstr "" msgid "file has been modified, refresh" msgstr "" msgid "Unable to merge chunks" msgstr "" msgid "Add or remove patches must be merged in the working directory" msgstr "" msgid "Unable to remove" msgstr "" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" msgctxt "files" msgid "All" msgstr "" msgctxt "files" msgid "None" msgstr "" msgid "Toggle display of text search bar" msgstr "" msgid "Diff Toolbar" msgstr "" #, python-format msgid "Chunks selected: %d / %d" msgstr "" msgid "Please wait while the file is opened ..." msgstr "" msgid "Source:" msgstr "" msgid "Destination:" msgstr "" msgid "Options" msgstr "" msgid "Clone to revision:" msgstr "" msgid "A revision identifier, bookmark, tag or branch name" msgstr "" msgid "Do not update the new working directory" msgstr "" msgid "Use pull protocol to copy metadata" msgstr "" msgid "Clone with minimal processing" msgstr "" msgid "Include patch queue" msgstr "" msgid "Use proxy server" msgstr "Använd proxyserver" msgid "Do not verify host certificate" msgstr "" msgid "Remote command:" msgstr "" msgid "Use largefiles" msgstr "" msgid "Start revision:" msgstr "" msgid "Select source repository" msgstr "" msgid "Select destination repository" msgstr "" msgid "Select patch folder" msgstr "" #, python-format msgid "Clone - %s" msgstr "" msgid "&Clone" msgstr "" msgid "failed to start command\n" msgstr "" msgid "error while running command\n" msgstr "" #, python-format msgid "process exited unexpectedly with code %d" msgstr "" #, python-format msgid "failed to encode command: %s" msgstr "" #, python-format msgid "timed out while reading: %r..." msgstr "" msgid "timed out waiting for message" msgstr "" #, python-format msgid "unexpected response on required channel %r" msgstr "" #, python-format msgid "invalid \"hello\" message: %r" msgstr "" msgid "no \"runcommand\" capability" msgstr "" #, python-format msgid "corrupted command result: %r" msgstr "" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "" msgid "Terminated by user" msgstr "" #, python-format msgid "[command terminated by user %s]" msgstr "" #, python-format msgid "[command interrupted %s]" msgstr "" #, python-format msgid "[command returned code %d %%s]" msgstr "" #, python-format msgid "[command completed successfully %s]" msgstr "" msgid "Running..." msgstr "" msgid "Failed!" msgstr "" msgid "Clea&r Log" msgstr "" msgid "TortoiseHg Prompt" msgstr "" msgid "Show Detail" msgstr "" msgid "Hide Detail" msgstr "" msgid "Confirm Exit" msgstr "" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" msgid "&Run" msgstr "" msgid "TortoiseHg Command Dialog" msgstr "" msgid "Command Error" msgstr "" #, python-format msgid "[Code: %d]" msgstr "" msgid "Merge" msgstr "" #, python-format msgid "Merge with %s" msgstr "" msgid "Patch Name Required" msgstr "" msgid "You must enter a patch name" msgstr "" msgctxt "start progress" msgid "Commit" msgstr "" msgctxt "start progress" msgid "MQ Action" msgstr "" msgctxt "start progress" msgid "Rollback" msgstr "" msgid "Commit Dialog Toolbar" msgstr "" msgid "Branch: " msgstr "" msgid "Copy message" msgstr "" msgid "Copy one of the recent commit messages" msgstr "" msgid "Show Issues" msgstr "" msgid "Please wait..." msgstr "" #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "" msgid "Issue Tracker" msgstr "" msgid "Show Issues..." msgstr "" msgid "Stop" msgstr "" msgid "### patch name ###" msgstr "" msgid "Commit changes" msgstr "" msgid "Commit" msgstr "" msgid "Amend current revision" msgstr "" msgid "Amend" msgstr "" msgid "Create a new patch" msgstr "" msgid "QNew" msgstr "" msgid "Refresh current patch" msgstr "" msgid "QRefresh" msgstr "" msgid "Confirm Branch Change" msgstr "" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "" msgid "Restart &Branch" msgstr "" msgid "&Commit to current branch" msgstr "" msgid "Cancel" msgstr "Avbryt" msgid "Confirm New Branch" msgstr "" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "" msgid "Create &Branch" msgstr "" msgid "Close Branch: " msgstr "" msgid "New Branch: " msgstr "" #, python-format msgid "Selected Options: %s" msgstr "" msgid "Parent:" msgstr "" msgid "Patch name:" msgstr "" #, python-format msgid "Close %s branch" msgstr "" #, python-format msgid "Rollback commit to revision %d" msgstr "" msgid "Confirm Undo" msgstr "" msgid "Discard current commit message?" msgstr "" msgid "Message Translation Failure" msgstr "" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" msgid "&Replace" msgstr "" msgid "Nothing Committed" msgstr "" msgid "Please enter commit message" msgstr "" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" msgid "No files checked" msgstr "" msgid "No modified files checkmarked for commit" msgstr "" msgid "Confirm Add" msgstr "" msgid "Add selected untracked files?" msgstr "" msgid "Confirm Remove" msgstr "" msgid "Remove selected deleted files?" msgstr "" msgid "Nothing changed." msgstr "" msgctxt "window title" msgid "Commit" msgstr "" #, python-format msgid "%s - commit options" msgstr "" msgid "Set username:" msgstr "" msgid "Save in Repo" msgstr "" msgid "Save Global" msgstr "" msgid "Set Date:" msgstr "" msgid "Update" msgstr "" msgid "Push After Commit:" msgstr "" msgid "Auto Includes:" msgstr "" msgid "Recurse into subrepositories (--subrepos)" msgstr "" msgid "Unable to save username" msgstr "" msgid "Iniparse must be installed." msgstr "" msgid "Unable to write configuration file" msgstr "" msgid "Unable to save after commit push" msgstr "" msgid "Unable to save auto include list" msgstr "" msgid "Unable to save recurse in subrepos." msgstr "" msgid "Invalid date format" msgstr "" msgid "No username configured" msgstr "" #, python-format msgid "%s - commit" msgstr "" msgid "TortoiseHg Commit" msgstr "" msgid "Are you sure that you want to cancel the commit operation?" msgstr "" msgid "Compress changesets up to and including" msgstr "" msgid "Onto destination" msgstr "" msgid "Compress" msgstr "" #, python-format msgid "Compress - %s" msgstr "" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the compress" msgstr "" msgid "Changes have been moved, you must now commit" msgstr "" msgctxt "action button" msgid "Commit" msgstr "" msgid "Compress is complete, old history untouched" msgstr "" msgid "must be specified repository" msgstr "" msgid "must be specified 'type' in style" msgstr "" msgid "Git Commit:" msgstr "" msgid "Summary:" msgstr "" msgid "User:" msgstr "Användare:" msgid "Date:" msgstr "Datum:" msgid "Age:" msgstr "Ålder:" msgid "Branch:" msgstr "" msgid "Close:" msgstr "" msgid "Tags:" msgstr "" msgid "Graft:" msgstr "" msgid "Transplant:" msgstr "" msgid "Obsolete state:" msgstr "" msgid "Perforce:" msgstr "" msgid "Subversion:" msgstr "" msgid "Converted From:" msgstr "" msgid "Original Parent:" msgstr "" msgid "No items to display" msgstr "" msgid "Use compact view" msgstr "" msgid "Patch:" msgstr "" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "" msgid "Select a GUI location to edit:" msgstr "" msgid "Select the toolbar or menu to change" msgstr "" msgid "Tools shown on selected location" msgstr "" msgid "Delete from list" msgstr "" msgid "Add to list" msgstr "" msgid "Add separator" msgstr "" msgid "List of all tools" msgstr "" msgid "New Tool ..." msgstr "" msgid "Edit Tool ..." msgstr "" msgid "Delete Tool" msgstr "" msgid "Type" msgstr "" msgid "Name" msgstr "" msgid "Command" msgstr "" msgid "New hook" msgstr "" msgid "Edit hook" msgstr "" msgid "Delete hook" msgstr "" msgid "Replace existing hook?" msgstr "" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" msgid "OK" msgstr "" msgid "Missing information" msgstr "" msgid "All items" msgstr "" msgid "Working directory" msgstr "" msgid "All revisions" msgstr "" msgid "All contexts" msgstr "" msgid "Fixed revisions" msgstr "" msgid "Applied patches" msgstr "" msgid "Applied patches or qparent" msgstr "" msgid "" msgstr "" msgid "Configure Custom Tool" msgstr "" msgid "Tool name" msgstr "" msgid "The tool name. It cannot contain spaces." msgstr "" #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" msgid "Tool label" msgstr "" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" msgid "Tooltip" msgstr "" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" msgid "Icon" msgstr "" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" msgid "On repowidget, show for" msgstr "" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" msgid "Show Output Log" msgstr "" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" msgid "You must set a tool name." msgstr "" msgid "The tool name cannot have any spaces in it." msgstr "" msgid "You must set a command to run." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" msgid "Configure Hook" msgstr "" msgid "Hook type" msgstr "" msgid "Select when your command will be run" msgstr "" msgid "The hook name. It cannot contain spaces." msgstr "" msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" msgid "You must set a valid hook type." msgstr "" msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "" msgid "Console" msgstr "" msgid "File &History / Annotate" msgstr "" msgid "Show the history of the selected file" msgstr "" msgid "Co&mpare File Revisions" msgstr "" msgid "Compare revisions of the selected file" msgstr "" msgid "Filter Histor&y" msgstr "" msgid "Query about changesets affecting the selected files" msgstr "" msgid "Diff &Changeset to Parent" msgstr "" msgid "Diff Changeset to Loc&al" msgstr "" msgid "&Diff to Parent" msgstr "" msgid "Diff to &Local" msgstr "" msgid "View changes to current in external diff tool" msgstr "" msgid "&View at Revision" msgstr "" msgid "View file as it appeared at this revision" msgstr "" msgid "&Save at Revision..." msgstr "" msgid "Save file as it appeared at this revision" msgstr "" msgid "Save file to" msgstr "" msgid "&Edit Local" msgstr "" msgid "&Open Local" msgstr "" msgid "E&xplore Local" msgstr "" msgid "Open parent folder of current file in the system file manager" msgstr "" msgid "&Copy Patch" msgstr "" msgid "Copy &Path" msgstr "" msgid "Copy full path of file(s) to the clipboard" msgstr "" msgid "&Revert to Revision..." msgstr "" msgid "Open S&ubrepository" msgstr "" msgid "Open the selected subrepository" msgstr "" msgid "E&xplore Folder" msgstr "" msgid "Open the selected folder in the system file manager" msgstr "" msgid "Open &Terminal" msgstr "" msgid "Open a shell terminal in the selected folder" msgstr "" msgid "Custom Tools" msgstr "" msgid "Diff &Local" msgstr "" msgid "&View Missing" msgstr "" msgid "View O&ther" msgstr "" msgid "Add &Largefiles..." msgstr "" msgid "&Forget" msgstr "" msgid "&Delete Unversioned..." msgstr "" msgid "Confirm Delete Unversioned" msgstr "" msgid "Delete the following unversioned files?" msgstr "" msgid "&Delete" msgstr "" msgid "Re&move Versioned" msgstr "" msgid "&Revert..." msgstr "" msgid "Uncommited merge - please select a parent revision" msgstr "" msgid "Revert files to local or other parent?" msgstr "" msgid "&Local" msgstr "" msgid "&Other" msgstr "" msgid "Confirm Revert" msgstr "" msgid "Revert local file changes?" msgstr "" msgid "&Revert with backup" msgstr "" msgid "&Discard changes" msgstr "" msgid "Revert the following files?" msgstr "" msgid "&Revert" msgstr "" msgid "&Copy..." msgstr "" msgid "Re&name..." msgstr "" msgid "&Ignore..." msgstr "" msgid "Edit Re&jects" msgstr "" msgid "Manually resolve rejected patch chunks" msgstr "" msgid "De&tect Renames..." msgstr "" msgid "&Mark Resolved" msgstr "" msgid "&Mark Unresolved" msgstr "" msgid "Restart Mer&ge" msgstr "" msgid "Was renamed from" msgstr "" msgid "Restart Merge &with" msgstr "" msgid "Display the file anyway" msgstr "" msgid "Diff not displayed: " msgstr "" #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid "File is binary" msgstr "" msgid "File may be binary (maximum line length exceeded)" msgstr "" msgid "File or diffs not displayed: " msgstr "" msgid " (was added)" msgstr "" #, python-format msgid " (copied from %s)" msgstr "" #, python-format msgid " (renamed from %s)" msgstr "" msgid " (is a symlink)" msgstr "" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid " (was deleted)" msgstr "" msgid " (was added, now missing)" msgstr "" msgid " (is unversioned)" msgstr "" msgid "exec mode has been set" msgstr "" msgid "exec mode has been unset" msgstr "" #, python-format msgid "changeset: %s" msgstr "" msgid "Initial revision" msgstr "" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" msgid "Subrepo created and set to initial revision." msgstr "" msgid "Subrepo initialized to revision:" msgstr "" msgid "Subrepo removed from repository." msgstr "" msgid "Previously the subrepository was at the following revision:" msgstr "" msgid "Subrepo was not changed." msgstr "" msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "" msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "" msgid "Subrepo state is:" msgstr "" msgid "Revision has changed to:" msgstr "" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "" msgid "From:" msgstr "" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" msgid "Subrepository not found in the working directory." msgstr "" msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" msgid "Not a Mercurial subrepo, not previewable" msgstr "" #, python-format msgid "Error previewing subrepo: %s" msgstr "" msgid "Subrepo may be damaged or inaccessible." msgstr "" msgid "The subrepository is dirty." msgstr "" msgid "File Status:" msgstr "" msgid "(is a changed sub-repository)" msgstr "" msgid "(is an unchanged sub-repository)" msgstr "" msgid "(is a dirty sub-repository)" msgstr "" msgid "(is a new sub-repository)" msgstr "" msgid "(is a removed sub-repository)" msgstr "" msgid "(is a changed and dirty sub-repository)" msgstr "" msgid "(is a new and dirty sub-repository)" msgstr "" msgid "open..." msgstr "" #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "" msgid "File History Log Columns" msgstr "" msgid "Back" msgstr "" msgid "Forward" msgstr "" msgid "Diff Selected &Changesets" msgstr "" msgid "&Diff Selected File Revisions" msgstr "" msgid "Show Revision &Details" msgstr "" msgid "Too many rows selected for menu" msgstr "" msgid "File Differences Log Columns" msgstr "" msgid "Next diff" msgstr "" msgid "Previous diff" msgstr "" msgid "Unicode" msgstr "" msgid "Western Europe" msgstr "" msgid "Unified Chinese" msgstr "" msgid "Traditional Chinese" msgstr "" msgid "Korean" msgstr "" msgid "Japanese" msgstr "" msgid "Thai" msgstr "" msgid "Central and Eastern Europe" msgstr "" msgid "Cyrillic" msgstr "" msgid "Russian" msgstr "" msgid "Ukrainian" msgstr "" msgid "Greek" msgstr "" msgid "Turkish" msgstr "" msgid "Arabic" msgstr "" msgid "Hebrew" msgstr "" msgid "Vietnamese" msgstr "" msgid "Baltic" msgstr "" msgid "Southern Europe" msgstr "" msgid "Nordic" msgstr "" msgid "Celtic" msgstr "" msgid "South-Eastern Europe" msgstr "" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "" msgid "View change as unified diff output" msgstr "" msgid "View change in context of file" msgstr "" msgid "Annotate with revision numbers" msgstr "" msgid "Next Diff" msgstr "" msgid "Previous Diff" msgstr "" msgid "Open shelve tool" msgstr "" msgid "&Auto Detect" msgstr "" msgid "Show changes from first parent" msgstr "" msgid "Show changes from second parent" msgstr "" msgid "E&ncoding" msgstr "" msgid "&Search in Current File" msgstr "" msgid "Search in All &History" msgstr "" msgid "Go to Line" msgstr "" #, python-format msgid "Enter line number (1 - %d)" msgstr "" msgid "Show &Author" msgstr "" msgid "Show &Date" msgstr "" msgid "Show &Revision" msgstr "" msgid "Annotate Op&tions" msgstr "" msgid "Search Selected Text" msgstr "" msgid "In Current &File" msgstr "" msgid "In &Current Revision" msgstr "" msgid "In &Original Revision" msgstr "" msgid "In All &History" msgstr "" msgid "Go to" msgstr "" msgid "View File at" msgstr "" msgid "Diff File to" msgstr "" msgid "&Originating Revision" msgstr "" msgid "&Parent Revision" msgstr "" #, python-format msgid "&Parent Revision (%d)" msgstr "" msgid "&Mark Excluded Changes" msgstr "" msgid "(excluded from the next commit)" msgstr "" msgid "Interrupted graft operation found" msgstr "" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" msgid "Continue or abort interrupted graft operation?" msgstr "" msgid "To graft destination" msgstr "" msgid "Use my user name instead of graft committer user name" msgstr "" msgid "Use current date" msgstr "" msgid "Append graft info to log message" msgstr "" msgid "Graft" msgstr "" msgid "Abort" msgstr "Avbryt" #, python-format msgid "Graft - %s" msgstr "" msgid "Graft changeset" msgstr "" #, python-format msgid "Graft changeset #%d of %d" msgstr "" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" msgid "You may continue or start the graft" msgstr "" msgid "Graft is complete" msgstr "" msgid "Graft failed" msgstr "" msgid "Graft aborted" msgstr "" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" msgid "You may continue the graft" msgstr "" msgid "Exiting with an unfinished graft is not recommended." msgstr "" msgid "Consider aborting the graft first." msgstr "" msgid "&Exit" msgstr "" msgid "### regular expression search pattern ###" msgstr "" msgid "Regexp:" msgstr "Regexp:" msgid "Ignore case" msgstr "" msgid "Search" msgstr "Sök" msgid "Working Copy" msgstr "" msgid "All History" msgstr "" msgid "Report only the first match per file" msgstr "" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "" msgid "Includes:" msgstr "" msgid "Excludes:" msgstr "" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" #, python-format msgid "\"%s\" removed from search history" msgstr "" #, python-format msgid "\"%s\" removed from path history" msgstr "" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "" #, python-format msgid "grep: %s\n" msgstr "" #, python-format msgid "%d matches found" msgstr "" msgid "No matches found" msgstr "" msgid "Searching" msgstr "" msgid "history" msgstr "" msgid "Interrupted" msgstr "" msgid "files" msgstr "" #, python-format msgid "Skipping %s, unable to read" msgstr "" msgid "Vi&ew File" msgstr "" msgid "&View Changeset" msgstr "" msgid "Annotate &File" msgstr "" msgid "File" msgstr "" msgid "Line" msgstr "" msgid "Rev" msgstr "" msgid "User" msgstr "Användare" msgid "Match Text" msgstr "" msgid "TortoiseHg Search" msgstr "" #, python-format msgid "Detect Copies/Renames in %s" msgstr "" msgid "Unrevisioned Files" msgstr "" msgid "Refresh file list" msgstr "" #, python-format msgid "Min Similarity: %d%%" msgstr "" msgid "Only consider deleted files" msgstr "" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "" msgid "Find Renames" msgstr "" msgid "Find copy and/or rename sources" msgstr "" msgid "Candidate Matches" msgstr "" msgid "Accept All Matches" msgstr "" msgid "Accept Selected Matches" msgstr "" msgid "Differences from Source to Dest" msgstr "" msgid "Search already in progress" msgstr "" msgid "Cannot start a new search" msgstr "" msgid "No files to find" msgstr "" msgid "There are no files that may have been renamed" msgstr "" msgid "Multiple sources chosen" msgstr "" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" #. i18n: percent format #, python-format msgid "%d%%" msgstr "" msgid "Source" msgstr "" msgid "Dest" msgstr "" msgid "% Match" msgstr "" msgid "Sending Email" msgstr "" msgid "Email" msgstr "" msgid "To:" msgstr "" msgid "Cc:" msgstr "" msgid "In-Reply-To:" msgstr "" msgid "Message identifier to reply to, for threading" msgstr "" msgid "Flag:" msgstr "" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" msgid "Send changesets as Hg patches" msgstr "" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" msgid "Use extended (git) patch format" msgstr "" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" msgid "Plain, do not prepend Hg header" msgstr "" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" msgid "Send single binary bundle, not patches" msgstr "" msgid "send patches as part of the email body" msgstr "" msgid "body" msgstr "" msgid "send patches as attachments" msgstr "" msgid "attach" msgstr "" msgid "send patches as inline attachments" msgstr "" msgid "inline" msgstr "" msgid "add diffstat output to messages" msgstr "" msgid "diffstat" msgstr "" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" msgid "Write patch series (bundle) description" msgstr "" msgid "Subject:" msgstr "" msgid "Changesets" msgstr "" msgid "Select &All" msgstr "" msgid "Select &None" msgstr "" msgid "Edit" msgstr "" msgid "Preview" msgstr "" msgid "&Settings" msgstr "" msgid "Send &Email" msgstr "" msgid "&Close" msgstr "&Stäng" #, python-format msgid "Ignore filter - %s" msgstr "" msgid "Glob" msgstr "" msgid "Regexp" msgstr "" msgid "Add" msgstr "Lägg till" msgid "Edit File" msgstr "" msgid "Ignore Filter" msgstr "" msgid "Untracked Files" msgstr "" msgid "Backspace or Del to remove row(s)" msgstr "" msgid "Add ignore filter..." msgstr "" msgid "selected files" msgstr "" msgid "Ignore " msgstr "" msgid "Invalid glob expression" msgstr "" msgid "Invalid regexp expression" msgstr "" msgid "Unable to read repository status" msgstr "" msgid "New file created" msgstr "" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" msgid "Unable to write .hgignore file" msgstr "" msgid "Copy working directory files from skeleton" msgstr "" msgid "Create special files (.hgignore, ...)" msgstr "" msgid "Make repo compatible with Mercurial <1.7" msgstr "" msgid "New Repository" msgstr "" msgid "&Create" msgstr "" msgid "Unable to create a config file" msgstr "" msgid "Insufficient access rights." msgstr "" msgid "Show Log" msgstr "" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" msgid "Add as &Largefiles" msgstr "" msgid "Add as &Normal Files" msgstr "" msgid "Invalid Patterns" msgstr "" msgid "Failed to process largefiles.patterns." msgstr "" msgid "Word docs (*.doc *.docx)" msgstr "" msgid "PDF docs (*.pdf)" msgstr "" msgid "Excel files (*.xls *.xlsx)" msgstr "" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "" msgid "Refresh lock information" msgstr "" msgid "Lock a file not described in .hglocks" msgstr "" msgid "Stop current operation" msgstr "" msgid "Locked And Lockable Files:" msgstr "" msgid "Path" msgstr "" msgid "Locking User" msgstr "" msgid "Purpose" msgstr "" msgid "Simplelock extension not enabled" msgstr "" msgid "Please enable and configure simplelock" msgstr "" msgid "Open a (nonmergable) file you wish to be locked" msgstr "" msgid "File was not within current repository" msgstr "" #, python-format msgid "Locking %s" msgstr "" #, python-format msgid "Unlocking %s" msgstr "" msgid "Refreshing locks..." msgstr "" #, python-format msgid "Lock of %s successful" msgstr "" #, python-format msgid "Lock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s successful" msgstr "" msgid "Ready, double click to lock or unlock" msgstr "" msgid "Ready" msgstr "" msgid "You can only release your own locks" msgstr "" msgid "Find revisions matching fields of:" msgstr "" msgid "Revision to Match:" msgstr "" msgid "Fields to match:" msgstr "" msgid "Summary (first description line)" msgstr "" msgid "Description" msgstr "" msgid "Author" msgstr "" msgid "Date" msgstr "" msgid "Files" msgstr "" msgid "Diff contents" msgstr "" msgid "Subrepo states" msgstr "" msgid "Branch" msgstr "" msgid "Phase" msgstr "" msgid "&Match" msgstr "" #, python-format msgid "Find matches - %s" msgstr "" msgid "Revisions to Match:" msgstr "" #, python-format msgid "Match any of %d revisions" msgstr "" msgid "Unknown revision!" msgstr "" msgid "Parse Error!" msgstr "" #, python-format msgid "Merge - %s" msgstr "" msgid "Do you want to exit?" msgstr "" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" msgid "Prepare to merge" msgstr "" msgid "Verify merge targets and ensure your working directory is clean." msgstr "" msgid "Not a head revision!" msgstr "" msgid "Merge from (other revision)" msgstr "" msgid "Merge to (working directory)" msgstr "" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Or use:" msgstr "" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "" msgid "Discard all changes from the other revision" msgstr "" msgid "&Discard" msgstr "" msgid "Confirm Discard Changes" msgstr "" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" msgctxt "working dir state" msgid "Clean" msgstr "" msgid "Merging..." msgstr "" msgid "Automatically advance to next page when merge is complete." msgstr "" #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" msgid "" "No merge conflicts, ready to commit or review" msgstr "" msgid "Commit merge results" msgstr "" msgid "Commit Options" msgstr "" msgid "Commit Now" msgstr "" msgid "Commit Later" msgstr "" msgid "Merge changeset" msgstr "" msgid "Syntax Highlighting" msgstr "" msgid "Paste &Filenames" msgstr "" msgid "App&ly Format" msgstr "" msgid "C&onfigure Format" msgstr "" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "" msgid "&Commit to Queue..." msgstr "" msgid "Create &New Queue..." msgstr "" msgid "&Rename Active Queue..." msgstr "" msgid "&Delete Queue..." msgstr "" msgid "&Purge Queue..." msgstr "" msgid "Create Patch Queue" msgstr "" msgid "New patch queue name" msgstr "" msgid "Create" msgstr "" msgid "Rename Patch Queue" msgstr "" #, python-format msgid "Rename patch queue '%s' to" msgstr "" msgid "Rename" msgstr "Byt namn" msgid "Delete Patch Queue" msgstr "" msgid "Delete reference to" msgstr "" msgid "Delete" msgstr "" msgid "Purge Patch Queue" msgstr "" msgid "Remove patch directory of" msgstr "" msgid "Purge" msgstr "" msgid "Rename Patch" msgstr "" #, python-format msgid "Rename patch %s to:" msgstr "" msgid "no guards" msgstr "" msgid "Patch Queue" msgstr "" msgctxt "MQ QPush" msgid "Push" msgstr "" msgid "Apply one patch" msgstr "" msgctxt "MQ QPush" msgid "Push all" msgstr "" msgid "Apply all patches" msgstr "" msgid "Pop" msgstr "" msgid "Unapply one patch" msgstr "" msgid "Pop all" msgstr "" msgid "Unapply all patches" msgstr "" msgid "Go &to Patch" msgstr "" msgid "&Apply Only This Patch" msgstr "" msgid "Apply only the selected patch" msgstr "" msgid "&Finish Patch" msgstr "" msgid "Move applied patches into repository history" msgstr "" msgid "&Delete Patches..." msgstr "" msgid "Delete selected patches" msgstr "" msgid "Re&name Patch..." msgstr "" msgid "Set &Guards..." msgstr "" msgid "Configure guards for selected patch" msgstr "" msgid "Patch Queue Actions Toolbar" msgstr "" msgid "Configure guards" msgstr "" #, python-format msgid "Input new guards for %s:" msgstr "" msgid "Confirm patch queue switch" msgstr "" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "" #, python-format msgid "Guards: %d/%d" msgstr "" msgid "MQ options" msgstr "" msgid "Force push or pop (--force)" msgstr "" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "" msgid "Submitting p4 changelist..." msgstr "" msgid "Reverting p4 changelist..." msgstr "" msgid "Patch Branch Toolbar" msgstr "" msgid "Merge all pending dependencies" msgstr "" msgid "Backout current patch branch" msgstr "" msgid "Backport part of a changeset to a dependency" msgstr "" msgid "Start a new patch branch" msgstr "" msgid "Edit patch dependency graph" msgstr "" msgid "will be closed" msgstr "" #, python-format msgid "needs merge of %i heads\n" msgstr "" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "" #, python-format msgid "needs merge with %s\n" msgstr "" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "" msgid "&Goto (update workdir)" msgstr "" msgid "&Merge" msgstr "" msgid "No patch branch selected" msgstr "" msgid "No editor found" msgstr "" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" msgid "Graph" msgstr "" msgid "Status" msgstr "" msgid "Title" msgstr "" msgid "Message" msgstr "" msgid "New Patch Branch" msgstr "" msgid "Patch message:" msgstr "" msgid "Patch date:" msgstr "" msgid "Patch user:" msgstr "" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" msgid "Review Board" msgstr "" msgid "Password:" msgstr "" msgid "Error" msgstr "Fel" #, python-format msgid "Review draft posted to %s\n" msgstr "" #, python-format msgid "Review published to %s\n" msgstr "" msgid "Success" msgstr "" msgid "Repository ID:" msgstr "" msgid "Post Review" msgstr "" msgid "Review ID:" msgstr "" msgid "Update the fields of this existing request" msgstr "" msgid "Update Review" msgstr "" msgid "Create diff with all outgoing changes" msgstr "" msgid "Create diff with all changes on this branch" msgstr "" msgid "Publish request immediately" msgstr "" msgid "%p%" msgstr "" msgid "Connecting to Review Board..." msgstr "" msgid "Target:" msgstr "" msgid "Do not modify working copy (-k/--keep)" msgstr "" #, python-format msgid "Prune - %s" msgstr "" msgid "&Prune" msgstr "" msgid "No unknown files found" msgstr "" msgid "No ignored files found" msgstr "" msgid "No trash files found" msgstr "" msgid "Delete empty folders" msgstr "" msgid "Preserve files beginning with .hg" msgstr "" #, python-format msgid "%s - purge" msgstr "" msgid "Checking" msgstr "" msgid "Ready to purge." msgstr "" #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "" msgstr[1] "" msgid "Confirm file deletions" msgstr "" msgid "Are you sure you want to delete these files and/or folders?" msgstr "" msgid "Deletion failures" msgstr "" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "" msgstr[1] "" msgid "Deleting trash folder..." msgstr "" #, python-format msgid "Deleted %d files" msgstr "" #, python-format msgid "Deleted %d files and %d folders" msgstr "" msgid "Delete Patches" msgstr "" msgid "Remove patches from queue?" msgstr "" msgid "Keep patch files" msgstr "" #, python-format msgid "Patch fold - %s" msgstr "" msgid "New patch message:" msgstr "" msgid "Patches to fold" msgstr "" msgid "&Undo" msgstr "" msgid "&Redo" msgstr "" msgid "Cu&t" msgstr "" msgid "&Copy" msgstr "" msgid "&Paste" msgstr "" msgid "&Editor Options" msgstr "" msgid "&Wrap" msgstr "" msgctxt "wrap mode" msgid "&None" msgstr "" msgid "&Word" msgstr "" msgid "&Character" msgstr "" msgid "White&space" msgstr "" msgid "&Visible" msgstr "" msgid "&Invisible" msgstr "" msgid "&AfterIndent" msgstr "" msgid "&TAB Inserts" msgstr "" msgid "&Auto" msgstr "" msgid "&TAB" msgstr "" msgid "&Spaces" msgstr "" msgid "EOL &Visibility" msgstr "" msgid "EOL &Mode" msgstr "" msgid "&Windows" msgstr "" msgid "&Unix" msgstr "" msgid "&Mac" msgstr "" msgid "&Auto-Complete" msgstr "" msgid "### regular expression ###" msgstr "" msgid "Regular expression search pattern" msgstr "" msgid "Wrap search" msgstr "" msgid "Prev" msgstr "" msgid "Next" msgstr "" msgid "Unable to read file" msgstr "" msgid "Could not open the specified file for reading." msgstr "" msgid "This appears to be a binary file." msgstr "" msgid "An error occurred while reading the file." msgstr "" msgid "Text Translation Failure" msgstr "" msgid "Could not translate the file content from native encoding." msgstr "" msgid "Several characters would be lost." msgstr "" msgid "Unable to write file" msgstr "" msgid "Could not translate the file content to native encoding." msgstr "" msgid "Could not open the specified file for writing." msgstr "" msgid "An error occurred while writing the file." msgstr "" msgid "Try refreshing your repository." msgstr "" #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
                                                                                        Please edit your config" msgstr "" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
                                                                                        Please fix your config" msgstr "" #, python-format msgid "Operation aborted:

                                                                                        %(arg0)s." msgstr "" msgid "Repository is locked" msgstr "" msgid "hint:" msgstr "" msgid "Repository Error" msgstr "" msgid "No visual editor configured" msgstr "" msgid "Please configure a visual editor." msgstr "" msgid "Editor launch failure" msgstr "" msgid "Failed to open path in terminal" msgstr "" #, python-format msgid "\"%s\" is not a valid directory" msgstr "" #, python-format msgid "Invalid configuration: %s" msgstr "" msgid "Unable to start the following command:" msgstr "" msgid "No shell configured" msgstr "" msgid "A terminal shell must be configured" msgstr "" msgid "Please enter a username" msgstr "" msgid "You must identify yourself to Mercurial" msgstr "" msgid "Unable to translate input to local encoding." msgstr "" msgid "Checkmark files to add" msgstr "" msgid "Checkmark files to forget" msgstr "" msgid "Forget" msgstr "" msgid "Checkmark files to revert" msgstr "" msgid "Revert" msgstr "" msgid "Checkmark files to remove" msgstr "" msgid "Remove" msgstr "Radera" #, python-format msgid "%s - hg %s" msgstr "" msgid "Do not save backup files (*.orig)" msgstr "" msgid "Force removal of modified files (--force)" msgstr "" msgid "Add &Largefiles" msgstr "" msgid "No files selected" msgstr "" msgid "No operation to perform" msgstr "" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" msgid "Remove &Unmodified Files" msgstr "" msgid "Remove &All Selected Files" msgstr "" msgid "Rebase changeset and descendants" msgstr "" msgid "To rebase destination" msgstr "" msgid "Swap source and destination" msgstr "" msgid "Keep original changesets (--keep)" msgstr "" msgid "Keep original branch names (--keepbranches)" msgstr "" msgid "Collapse the rebased changesets (--collapse)" msgstr "" msgid "Rebase entire source branch (-b/--base)" msgstr "" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "" msgid "Rebase" msgstr "" #, python-format msgid "Rebase - %s" msgstr "" msgid "" "Before rebase, you must
                                                                                        commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the rebase" msgstr "" msgid "Rebase is complete" msgstr "" msgid "Rebase failed" msgstr "" msgid "Rebase aborted" msgstr "" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" msgid "Exiting with an unfinished rebase is not recommended." msgstr "" msgid "Consider aborting the rebase first." msgstr "" #, python-format msgid "Merge rejected patch chunks into %s" msgstr "" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "" msgid "Mark this chunk as unresolved" msgstr "" msgid "Reload File" msgstr "" msgid "Are you sure you want to reload this file?" msgstr "" msgid "All unsaved changes will be lost." msgstr "" msgid "Warning" msgstr "Varning" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" msgid "Copy source -> destination" msgstr "" msgid "Copy Error" msgstr "" msgid "Rename Error" msgstr "" msgid "Select Source File" msgstr "" msgid "Select Source Folder" msgstr "" msgid "Source does not exist." msgstr "" msgid "The source must be within the repository tree." msgstr "" msgid "The destination must be within the repository tree." msgstr "" msgid "Destination file already exists." msgstr "" msgid "Are you sure you want to overwrite it ?" msgstr "" #, python-format msgid "Copy - %s" msgstr "" #, python-format msgid "Rename - %s" msgstr "" msgid "Show all" msgstr "Visa allt" msgid "### revision set query ###" msgstr "" msgid "Clear current query and query text" msgstr "" msgid "Trigger revision set query" msgstr "" msgid "Open advanced query editor" msgstr "" msgid "Delete selected query from history" msgstr "" msgid "filter" msgstr "" msgid "Toggle filtering of non-matched changesets" msgstr "" msgid "Show/Hide hidden changesets" msgstr "" msgid "Toggle graft relations visibility" msgstr "" msgid "Keyword Search" msgstr "" msgid "Revision Set" msgstr "" msgid "(unsaved)" msgstr "" msgid "Display graph the named branch only" msgstr "" msgid "Display only active branches" msgstr "" msgid "Display closed branches" msgstr "" msgid "Include all ancestors" msgstr "" msgctxt "column header" msgid "Graph" msgstr "" msgctxt "column header" msgid "Rev" msgstr "" msgctxt "column header" msgid "Branch" msgstr "" msgctxt "column header" msgid "Description" msgstr "" msgctxt "column header" msgid "Author" msgstr "" msgctxt "column header" msgid "Tags" msgstr "" msgctxt "column header" msgid "Latest tags" msgstr "" msgctxt "column header" msgid "Node" msgstr "" msgctxt "column header" msgid "Git Commit" msgstr "" msgctxt "column header" msgid "Age" msgstr "" msgctxt "column header" msgid "Local Time" msgstr "" msgctxt "column header" msgid "UTC Time" msgstr "" msgctxt "column header" msgid "Changes" msgstr "" msgctxt "column header" msgid "Converted From" msgstr "" msgctxt "column header" msgid "Phase" msgstr "" msgctxt "column header" msgid "Filename" msgstr "" msgid "Searching..." msgstr "" #, python-format msgid "filling (%d)" msgstr "" msgid "Mercurial User" msgstr "" msgid "Repository Registry" msgstr "" msgid "Show &Paths" msgstr "" msgid "Show S&hort Paths" msgstr "" msgid "&Scan Repositories at Startup" msgstr "" msgid "Scan &Remote Repositories" msgstr "" msgid "&Refresh Repository List" msgstr "" msgid "Refresh the Repository Registry list" msgstr "" msgid "&Open" msgstr "" msgid "Open the repository in a new tab" msgstr "" msgid "&Open All" msgstr "" msgid "Open all repositories in new tabs" msgstr "" msgid "New &Group" msgstr "" msgid "Create a new group" msgstr "" msgid "Rename the entry" msgstr "" msgid "Settin&gs" msgstr "" msgid "View the repository's settings" msgstr "" msgid "Re&move from Registry" msgstr "" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" msgid "Clon&e..." msgstr "" msgid "Clone Repository" msgstr "" msgid "E&xplore" msgstr "" msgid "Open the repository in a file browser" msgstr "" msgid "&Terminal" msgstr "" msgid "Open a shell terminal in the repository root" msgstr "" msgid "&Add Repository..." msgstr "" msgid "Add a repository to this group" msgstr "" msgid "A&dd Subrepository..." msgstr "" msgid "Convert an existing repository into a subrepository" msgstr "" msgid "Remo&ve Subrepository..." msgstr "" msgid "Remove this subrepository from the current revision" msgstr "" msgid "Copy the root path of the repository to the clipboard" msgstr "" msgid "Sort by &Name" msgstr "" msgid "Sort the group by short name" msgstr "" msgid "Sort by &Path" msgstr "" msgid "Sort the group by full path" msgstr "" msgid "&Sort by .hgsub" msgstr "" msgid "Order the subrepos as in .hgsub" msgstr "" msgid "Select repository directory to add" msgstr "" msgid "Select an existing repository to add as a subrepo" msgstr "" msgid "Cannot add subrepository" msgstr "" #, python-format msgid "%s is not a valid repository" msgstr "" #, python-format msgid "\"%s\" is not a folder" msgstr "" msgid "A repository cannot be added as a subrepo of itself" msgstr "" #, python-format msgid "" "The selected folder:

                                                                                        %s

                                                                                        is not inside the target repository." "

                                                                                        This may be allowed but is greatly discouraged.
                                                                                        If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" msgid "Cannot open repository" msgstr "" #, python-format msgid "The selected repository:

                                                                                        %s

                                                                                        cannot be open!" msgstr "" msgid "Subrepository already exists" msgstr "" #, python-format msgid "" "The selected repository:

                                                                                        %s

                                                                                        is already a subrepository of:" "

                                                                                        %s

                                                                                        as: \"%s\"" msgstr "" msgid "Failed to add subrepository" msgstr "" #, python-format msgid "Cannot open the .hgsub file in:

                                                                                        %s" msgstr "" msgid "Failed to add repository" msgstr "" #, python-format msgid "The .hgsub file already contains the line:

                                                                                        %s" msgstr "" msgid "Subrepo added to .hgsub file" msgstr "" #, python-format msgid "" "The selected subrepo:

                                                                                        %s

                                                                                        has been added to the .hgsub " "file of the repository:

                                                                                        %s

                                                                                        Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" #, python-format msgid "Cannot update the .hgsub file in:

                                                                                        %s" msgstr "" msgid "Could not open .hgsub file" msgstr "" msgid "Cannot read the .hgsub file.

                                                                                        Subrepository removal failed." msgstr "" msgid "Subrepository not found" msgstr "" msgid "" "The selected subrepository was not found on the .hgsub file.

                                                                                        Perhaps it " "has already been removed?" msgstr "" msgid "&Yes" msgstr "&Ja" msgid "&No" msgstr "&Nej" msgid "Remove the selected repository?" msgstr "" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" msgid "Subrepository removed from .hgsub" msgstr "" msgid "" "The selected subrepository has been removed from the .hgsub file.

                                                                                        Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" msgid "Could not update .hgsub file" msgstr "" msgid "Cannot update the .hgsub file.

                                                                                        Subrepository removal failed." msgstr "" #, python-format msgid "Unsupported repository type (%s)" msgstr "" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "" msgid "New Group" msgstr "" msgid "Confirm Delete" msgstr "" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "" msgid "Could not get subrepository list" msgstr "" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

                                                                                        %s" msgstr "" msgid "Could not open some subrepositories" msgstr "" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

                                                                                        %s

                                                                                        The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

                                                                                        %s" msgstr "" msgid "Updating repository registry" msgstr "" #, python-format msgid "Loading repository %s" msgstr "" msgid "Repository Registry updated" msgstr "" msgid "Close tab" msgstr "" msgid "Close other tabs" msgstr "" msgid "Undo close tab" msgstr "" msgid "Reopen last closed tab" msgstr "" msgid "Undo close other tabs" msgstr "" msgid "Reopen last closed tab group" msgstr "" msgid "Failed to open repository" msgstr "" msgid "&Sort" msgstr "" #, python-format msgid "Local Repository %s" msgstr "" #, python-format msgid "" "An exception happened while loading the subrepos of:

                                                                                        \"%s\"

                                                                                        " msgstr "" #, python-format msgid "The exception error message was:

                                                                                        %s

                                                                                        " msgstr "" msgid "Click OK to continue or Abort to exit." msgstr "" msgid "Error loading subrepos" msgstr "" msgid "Unable to update repository name" msgstr "" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "" msgid "default" msgstr "" msgid "C&hoose Log Columns..." msgstr "" msgid "&Resize Columns" msgstr "" #, python-format msgid "Goto ancestor of %s and %s" msgstr "" #, python-format msgid "Can't find revision '%s'" msgstr "" msgid "Drag to change order" msgstr "" msgid "Workbench Log Columns" msgstr "" msgctxt "tab tooltip" msgid "Revision details" msgstr "" msgctxt "tab tooltip" msgid "Commit" msgstr "" msgctxt "tab tooltip" msgid "Search" msgstr "" msgctxt "tab tooltip" msgid "Console log" msgstr "" msgctxt "tab tooltip" msgid "Synchronize" msgstr "" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "" #, python-format msgid "%s " msgstr "" #, python-format msgid "Found %d incoming changesets" msgstr "" msgid "Pull" msgstr "" msgid "Pull incoming changesets into your repository" msgstr "" msgid "Reject incoming changesets" msgstr "" #, python-format msgid "Push current branch (%s)" msgstr "" #, python-format msgid "Push up to current revision (#%d)" msgstr "" #, python-format msgid "Push up to revision #%d" msgstr "" msgid "Push all" msgstr "" msgid "no outgoing changesets" msgstr "" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets" msgstr "" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "" msgid "Nothing to push" msgstr "" msgid "No revision found" msgstr "" #, python-format msgid "%s - verify repository" msgstr "" #, python-format msgid "%s - recover repository" msgstr "" msgid "No transaction available" msgstr "" msgid "There is no rollback transaction available" msgstr "" msgid "Undo last commit?" msgstr "" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "" msgid "Undo last transaction?" msgstr "" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "" msgid "Unable to determine working copy revision\n" msgstr "" msgid "Remove current working revision?" msgstr "" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" msgid "Tab cannot exit" msgstr "" msgid "Pus&h" msgstr "" msgid "Push to &Here" msgstr "" msgid "Push Selected &Branch" msgstr "" msgid "Push &All" msgstr "" msgid "&Update..." msgstr "" msgid "Bro&wse at Revision" msgstr "" msgid "&Merge with Local..." msgstr "" msgid "&Tag..." msgstr "" msgid "Boo&kmark..." msgstr "" msgid "Top&ic..." msgstr "" msgid "Sig&n..." msgstr "" msgid "&Backout..." msgstr "" msgid "Revert &All Files..." msgstr "" msgid "Copy &Hash" msgstr "" msgid "E&xport" msgstr "" msgid "E&xport Patch..." msgstr "" msgid "&Email Patch..." msgstr "" msgid "&Archive..." msgstr "" msgid "&Bundle Rev and Descendants..." msgstr "" msgid "Change &Phase to" msgstr "" msgid "&Graft to Local..." msgstr "" msgid "Modi&fy History" msgstr "" msgid "&Unapply Patch" msgstr "" msgid "Import to &MQ" msgstr "" msgid "MQ &Options" msgstr "" msgid "&Rebase..." msgstr "" msgid "&Prune..." msgstr "" msgid "&Strip..." msgstr "" msgid "Post to Re&view Board..." msgstr "" msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "" msgid "Write diff file" msgstr "" msgid "Unable to write diff file" msgstr "" msgid "Unable to compress history" msgstr "" msgid "Selected changeset pair not related" msgstr "" msgid "Visual Diff..." msgstr "" msgid "Export Diff..." msgstr "" msgid "Export Selected..." msgstr "" msgid "Email Selected..." msgstr "" msgid "Copy Selected as Patch" msgstr "" msgid "Archive DAG Range..." msgstr "" msgid "Export DAG Range..." msgstr "" msgid "Email DAG Range..." msgstr "" msgid "Bundle DAG Range..." msgstr "" msgid "Bisect - Good, Bad..." msgstr "" msgid "Bisect - Bad, Good..." msgstr "" msgid "Compress History..." msgstr "" msgid "Rebase..." msgstr "" msgid "Goto common ancestor" msgstr "" msgid "Graft Selected to local..." msgstr "" msgid "&Prune Selected..." msgstr "" msgid "Post Selected to Review Board..." msgstr "" msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "" msgid "Apply onto original parent" msgstr "" msgid "Apply only this patch" msgstr "" msgid "Fold patches..." msgstr "" msgid "Delete patches..." msgstr "" msgid "Rename patch..." msgstr "" msgid "Pull to here..." msgstr "" msgid "Visual diff..." msgstr "" msgid "Export patch" msgstr "" msgid "Patch Files (*.patch)" msgstr "" msgid "Cannot export revision" msgstr "" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" msgid "There is already an existing folder with that same name." msgstr "" msgid "Replace" msgstr "" msgid "Append" msgstr "" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" msgid "What do you want to do?\n" msgstr "" msgid "Replace the existing patch files.\n" msgstr "" msgid "Append the changes to the existing patch files.\n" msgstr "" msgid "Abort the export operation.\n" msgstr "" msgid "Patch files already exist" msgstr "" msgid "Patch exported" msgstr "" #, python-format msgid "" "Revision #%d (%s) was exported to:

                                                                                        %s%s%s" msgstr "" msgid "Patches exported" msgstr "" #, python-format msgid "%d patches were exported to:

                                                                                        %s" msgstr "" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

                                                                                        Are you sure you want to use revert?

                                                                                        (use " "update to checkout another revision)" msgstr "" msgid "Filter b&y" msgstr "" msgid "&Ancestors and Descendants" msgstr "" msgid "A&uthor" msgstr "" msgid "&Branch" msgstr "" msgid "&More Options..." msgstr "" msgid "Unable to merge" msgstr "" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "" msgid "Unable to backout" msgstr "" msgid "Write bundle" msgstr "" msgid "Backwards phase change requested" msgstr "" msgid "Do you really want to make this revision secret?" msgstr "" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" msgid "&Make secret" msgstr "" msgid "&Cancel" msgstr "&Avbryt" msgid "Do you really want to force a backwards phase transition?" msgstr "" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" msgid "&Force" msgstr "" msgid "Cannot import selected revision" msgstr "" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" msgid "Invalid command" msgstr "" msgid "The selected command is empty" msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" msgid "Failed to execute custom TortoiseHg command" msgstr "" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "" msgid "Failed to execute custom command" msgstr "" #, python-format msgid "The command \"%s\" could not be executed." msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" msgid "&Edit Toolbar" msgstr "" msgid "&Refresh" msgstr "" msgid "&Filter Toolbar" msgstr "" #, python-format msgid "TortoiseHg: %s" msgstr "" msgid "S&tatus Bar" msgstr "" #, python-format msgid "Resolve Conflicts - %s" msgstr "" msgid "Local revision information" msgstr "" msgid "Other revision information" msgstr "" msgid "Unresolved conflicts" msgstr "" msgid "Mercurial Re&solve" msgstr "" msgid "Attempt automatic (trivial) merge" msgstr "" msgid "Tool &Resolve" msgstr "" msgid "Merge using selected merge tool" msgstr "" msgid "&Take Local" msgstr "" msgid "Accept the local file version (yours)" msgstr "" msgid "Take &Other" msgstr "" msgid "Accept the other file version (theirs)" msgstr "" msgid "&Mark as Resolved" msgstr "" msgid "Mark this file as resolved" msgstr "" msgid "Diff &Local to Ancestor" msgstr "" msgid "&Diff Other to Ancestor" msgstr "" msgid "Resolved conflicts" msgstr "" msgid "&Edit File" msgstr "" msgid "Edit resolved file" msgstr "" msgid "3-&Way Diff" msgstr "" msgid "Visual three-way diff" msgstr "" msgid "Visual diff between resolved file and first parent" msgstr "" msgid "&Diff to Other" msgstr "" msgid "Visual diff between resolved file and second parent" msgstr "" msgid "Mark as &Unresolved" msgstr "" msgid "Mark this file as unresolved" msgstr "" msgid "Detected merge/diff tools:" msgstr "" msgid "Command output" msgstr "" msgid "Unable to show subrepository files" msgstr "" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" msgid "There are merge conflicts to be resolved" msgstr "" msgid "All conflicts are resolved." msgstr "" msgid "There are no conflicting file merges." msgstr "" msgid "Exit without finishing resolve?" msgstr "" msgid "Unresolved conflicts remain. Are you sure?" msgstr "" msgid "E&xit" msgstr "" msgid "Ext" msgstr "" msgid "Repository" msgstr "" msgid "" msgstr "" msgid "File List Toolbar" msgstr "" msgid "Ma&nifest Mode" msgstr "" msgid "Show all version-controlled files in tree view" msgstr "" msgid "&Flat List" msgstr "" msgid "### filter text ###" msgstr "" msgid "Changed by &This Commit" msgstr "" msgid "Show files changed by this commit" msgstr "" msgid "Compare to &1st Parent" msgstr "" msgid "Compare to &2nd Parent" msgstr "" msgid "Toggle parent to be used as the base revision" msgstr "" msgid "List Optio&ns" msgstr "" #, python-format msgid "%s - Revision Details (%s)" msgstr "" #, python-format msgid "Revert - %s" msgstr "" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "" msgid "Revert all files to this revision" msgstr "" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "" msgid "null revision (i.e. remove file(s))" msgstr "" msgid "Changeset:" msgstr "" msgid "Child:" msgstr "" msgid "Predecessors:" msgstr "" msgid "Successors:" msgstr "" msgid "Head is closed!" msgstr "" msgid "Changesets where username contains string." msgstr "" msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" msgid "Like \"keyword(string)\" but accepts a regex." msgstr "" msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" msgid "The named bookmark or all bookmarks." msgstr "" msgid "The named tag or all tags." msgstr "" msgid "Changeset is tagged." msgstr "" msgid "Changeset is a named branch head." msgstr "" msgid "Changeset is a merge changeset." msgstr "" msgid "Changeset is closed." msgstr "" msgid "" "Changesets within the interval, see help dates" msgstr "" msgid "Greatest common ancestor of the two changesets." msgstr "" msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" msgid "Changesets which modify files matched by pattern." msgstr "" msgid "Changesets which add files matched by pattern." msgstr "" msgid "Changesets which remove files matched by pattern." msgstr "" msgid "Changesets containing files matched by pattern." msgstr "" msgid "All changesets belonging to the branches of changesets in set." msgstr "" msgid "Members of a set with no children in set." msgstr "" msgid "Changesets which are descendants of changesets in set." msgstr "" msgid "Changesets that are ancestors of a changeset in set." msgstr "" msgid "Child changesets of changesets in set." msgstr "" msgid "The set of all parents for all changesets in set." msgstr "" msgid "First parent for all changesets in set, or the working directory." msgstr "" msgid "Second parent for all changesets in set, or the working directory." msgstr "" msgid "Changesets with no parent changeset in set." msgstr "" msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" msgid "Changeset with lowest revision number in set." msgstr "" msgid "Changeset with highest revision number in set." msgstr "" msgid "First n members of a set." msgstr "" msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "" msgid "All changesets, the same as 0:tip." msgstr "" msgid "Revision Set Query" msgstr "" msgid "all revisions converted from subversion" msgstr "" msgid "changeset which represents converted svn revision" msgstr "" msgid "Common sets" msgstr "" msgid "File pattern sets" msgstr "" msgid "Set Ancestry" msgstr "" msgid "Set Logic" msgstr "" msgid "" "help " "revsets" msgstr "" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" #, python-format msgid "thg: unknown command '%s'\n" msgstr "" #, python-format msgid "thg %s: %s\n" msgstr "" #, python-format msgid "thg: %s\n" msgstr "" #, python-format msgid "abort: %s!\n" msgstr "" #, python-format msgid "abort: %s\n" msgstr "" #, python-format msgid "(%s)\n" msgstr "" msgid "option --config may not be abbreviated!" msgstr "" msgid "invalid arguments" msgstr "" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" msgid "repository root directory or symbolic path name" msgstr "" msgid "enable additional output" msgstr "" msgid "suppress output" msgstr "" msgid "display help and exit" msgstr "" msgid "set/override config option (use 'section.name=value')" msgstr "" msgid "enable debugging output" msgstr "" msgid "start debugger" msgstr "" msgid "print command execution profile" msgstr "" msgid "do not fork GUI process" msgstr "" msgid "always fork GUI process" msgstr "" msgid "read file list from file" msgstr "" msgid "read file list from file encoding utf-8" msgstr "" msgid "thg about" msgstr "" msgid "thg add [FILE]..." msgstr "" msgid "revision to annotate" msgstr "" msgid "open to line" msgstr "" msgid "initial search pattern" msgstr "" msgid "thg annotate" msgstr "" #, python-format msgid "invalid line number: %s" msgstr "" msgid "revision to archive" msgstr "" msgid "thg archive" msgstr "" msgid "merge with old dirstate parent after backout" msgstr "" msgid "parent to choose when backing out merge" msgstr "" msgid "revision to backout" msgstr "" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "" msgid "thg bisect" msgstr "" msgid "revision" msgstr "" msgid "thg bookmarks [-r REV] [NAME]" msgstr "" msgid "only one new bookmark name allowed" msgstr "" msgid "the clone will include an empty working copy (only a repository)" msgstr "" msgid "revision, tag or branch to check out" msgstr "" msgid "include the specified changeset" msgstr "" msgid "clone only the specified branch" msgstr "" msgid "use pull protocol to copy metadata" msgstr "" msgid "use uncompressed transfer (fast over LAN)" msgstr "" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "" msgid "record user as committer" msgstr "" msgid "record datecode as commit date" msgstr "" msgid "thg commit [OPTIONS] [FILE]..." msgstr "" msgid "thg debugblockmatcher" msgstr "" msgid "thg debugbugreport [TEXT]" msgstr "" msgid "thg debugconsole" msgstr "" msgid "thg debuglighthg" msgstr "" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "" msgid "no command specified" msgstr "" msgid "thg drag_copy SOURCE... DEST" msgstr "" msgid "thg drag_move SOURCE... DEST" msgstr "" msgid "a revision to send" msgstr "" msgid "thg email [REVS]" msgstr "" msgid "use only one form to specify the revision" msgstr "" msgid "select the specified revision" msgstr "" msgid "side-by-side comparison of revisions" msgstr "" msgid "thg filelog [OPTION]... FILE" msgstr "" msgid "requires a single filename" msgstr "" msgid "thg forget [FILE]..." msgstr "" msgid "revisions to graft" msgstr "" msgid "thg graft [-r] REV..." msgstr "" msgid "You must provide revisions to graft" msgstr "" msgid "ignore case during search" msgstr "" msgid "thg grep" msgstr "" msgid "thg guess" msgstr "" msgid "thg help [COMMAND]" msgstr "" msgid "global options:" msgstr "" msgid "use \"thg help\" for the full list of commands" msgstr "" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "" msgid "" "list of commands:\n" "\n" msgstr "" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" msgid "(no help text available)" msgstr "" msgid "options:\n" msgstr "" msgid "no commands defined\n" msgstr "" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "" msgid "" "basic commands:\n" "\n" msgstr "" #, python-format msgid " (default: %s)" msgstr "" msgid "thg hgignore [FILE]" msgstr "" msgid "import to the patch queue (MQ)" msgstr "" msgid "thg import [OPTION] [SOURCE]..." msgstr "" msgid "thg init [DEST]" msgstr "" msgid "thg lock" msgstr "" msgid "search for a given text or revset" msgstr "" msgid "(DEPRECATED)" msgstr "" msgid "open a new workbench window" msgstr "" msgid "thg log [OPTIONS] [FILE]" msgstr "" msgid "cannot specify both -k/--query and filenames" msgstr "" msgid "revision to display" msgstr "" msgid "thg manifest [-r REV] [FILE]" msgstr "" msgid "revision to merge" msgstr "" msgid "thg merge [[-r] REV]" msgstr "" msgid "Merge revision not specified or not found" msgstr "" msgid "a revision to post" msgstr "" msgid "thg postreview [-r] REV..." msgstr "" msgid "reviewboard extension not enabled" msgstr "" #, python-format msgid "see %(url)s" msgstr "" msgid "no revisions specified" msgstr "" msgid "revisions to prune" msgstr "" msgid "thg prune [-r] REV..." msgstr "" msgid "thg purge" msgstr "" msgid "keep original changesets" msgstr "" msgid "keep original branch names" msgstr "" msgid "rebase from the specified changeset" msgstr "" msgid "rebase onto the specified changeset" msgstr "" msgid "thg rebase -s REV -d REV [--keep]" msgstr "" msgid "Rebase already in progress" msgstr "" msgid "Resuming rebase already in progress" msgstr "" msgid "You must provide source and dest arguments" msgstr "" msgid "thg rejects [FILE]" msgstr "" msgid "You must provide the path to a file" msgstr "" msgid "thg remove [FILE]..." msgstr "" msgid "thg rename [SOURCE] [DEST]" msgstr "" msgid "field to give initial focus" msgstr "" msgid "thg repoconfig" msgstr "" msgid "thg resolve" msgstr "" msgid "the revision to show" msgstr "" msgid "thg revdetails [-r REV]" msgstr "" msgid "thg revert [FILE]..." msgstr "" msgid "revision to update" msgstr "" msgid "thg rupdate [[-r] REV]" msgstr "" msgid "name of the hgweb config file (serve more than one repository)" msgstr "" msgid "name of the hgweb config file (DEPRECATED)" msgstr "" msgid "thg serve [--web-conf FILE]" msgstr "" msgid "thg shellconfig" msgstr "" msgid "thg shelve" msgstr "" msgid "sign even if the sigfile is modified" msgstr "" msgid "make the signature local" msgstr "" msgid "the key id to sign with" msgstr "" msgid "do not commit the sigfile after signing" msgstr "" msgid "use as commit message" msgstr "" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "" msgid "Please enable the Gpg extension first." msgstr "" msgid "show files without changes" msgstr "" msgid "show ignored files" msgstr "" msgid "thg status [OPTIONS] [FILE]" msgstr "" msgid "discard uncommitted changes (no backup)" msgstr "" msgid "do not back up stripped revisions" msgstr "" msgid "do not modify working copy during strip" msgstr "" msgid "revision to strip" msgstr "" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "" msgid "open the bookmark sync window" msgstr "" msgid "thg sync [OPTION]... [PEER]" msgstr "" msgid "replace existing tag" msgstr "" msgid "make the tag local" msgstr "" msgid "revision to tag" msgstr "" msgid "remove a tag" msgstr "" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "" msgid "wait until the second ticks over" msgstr "" msgid "notify the shell for paths given" msgstr "" msgid "remove the status cache" msgstr "" msgid "show the contents of the status cache (no update)" msgstr "" msgid "update all repos in current dir" msgstr "" msgid "thg thgstatus [OPTION]" msgstr "" msgid "thg topics [-r REV] [NAME]" msgstr "" msgid "Please enable the Topic extension first." msgstr "" msgid "only one new topic name allowed" msgstr "" msgid "thg update [-C] [[-r] REV]" msgstr "" msgid "thg userconfig" msgstr "" msgid "changeset to view in diff tool" msgstr "" msgid "revisions to view in diff tool" msgstr "" msgid "bundle file to preview" msgstr "" msgid "launch visual diff tool" msgstr "" msgid "print license" msgstr "" msgid "thg version [OPTION]" msgstr "" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "" msgid "Location:" msgstr "" msgid "Update to:" msgstr "" msgid "Options:" msgstr "" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "" msgid "Perform a push before updating (-p/--push)" msgstr "" msgid "Allow pushing new branches (--new-branch)" msgstr "" msgid "Force push to remote location (-f/--force)" msgstr "" msgid "remove working directory" msgstr "" msgid "unknown revision!" msgstr "" #, python-format msgid "Remote Update - %s" msgstr "" msgid "&Update" msgstr "" msgid "Log" msgstr "" msgid "Repositories" msgstr "" #, python-format msgid "Running at %s" msgstr "" msgid "Stopped" msgstr "" msgid "TortoiseHg Web Server" msgstr "" msgid "Web Server" msgstr "" msgid "Port:" msgstr "" msgid "Status:" msgstr "" msgid "Start" msgstr "" msgid "Settings" msgstr "Inställningar" msgid "" msgstr "" msgid "&True" msgstr "" msgid "&False" msgstr "" msgid "&Unspecified" msgstr "" #, python-format msgid "%dpt" msgstr "" msgid "Bold" msgstr "" msgid "Italic" msgstr "" msgid "Strike" msgstr "" msgid "Underline" msgstr "" msgid "&Set..." msgstr "" msgid "&Clear" msgstr "" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "" msgid "&Browse..." msgstr "" msgid "UI Language" msgstr "" msgid "Specify your preferred user interface language (restart needed)" msgstr "" msgid "Three-way Merge Tool" msgstr "" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" msgid "Visual Diff Tool" msgstr "" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" msgid "Visual Editor" msgstr "" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" msgid "CLI Editor" msgstr "" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" msgid "Shell" msgstr "" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
                                                                                        Default, Windows: cmd.exe /" "K title %(reponame)s
                                                                                        Default, OS X: not set
                                                                                        Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" msgid "Immediate Operations" msgstr "" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" msgid "Tab Width" msgstr "" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" msgid "Force Repo Tab" msgstr "" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "" msgid "Monitor Repo Changes" msgstr "" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" msgid "Max Diff Size" msgstr "" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" msgid "Fork GUI" msgstr "" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" msgid "Full Path Title" msgstr "" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" msgid "Auto-resolve merges" msgstr "" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" msgid "New Repo Skeleton" msgstr "" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "" msgid "Single Workbench Window" msgstr "" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" msgid "Default widget" msgstr "" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" msgid "" "Open new tabs next\n" "to the current tab" msgstr "" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" msgid "Author Coloring" msgstr "" msgid "Color changesets by author name. Default: False" msgstr "" msgid "Full Authorname" msgstr "" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" msgid "Task Tabs" msgstr "" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" msgid "Task Toolbar Order" msgstr "" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
                                                                                        Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
                                                                                        Valid names are: log commit sync grep and " "pbranch.
                                                                                        Default: log commit grep pbranch | sync" msgstr "" msgid "Long Summary" msgstr "" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" msgid "Log Batch Size" msgstr "" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "" msgid "Dead Branches" msgstr "" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" msgid "Branch Colors" msgstr "" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" msgid "Hide Tags" msgstr "" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" msgid "Activate Bookmarks" msgstr "" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

                                                                                        • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
                                                                                        • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
                                                                                        • never: Never show any prompt to " "activate any bookmarks.

                                                                                        Default: prompt" msgstr "" msgid "Show Family Line" msgstr "" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

                                                                                        Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" msgid "Use optimized graph layouter" msgstr "" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

                                                                                        Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" msgctxt "config item" msgid "Commit" msgstr "" msgid "Username" msgstr "" msgid "" "Name associated with commits. The common format is:
                                                                                        Full Name <" "email@example.com>" msgstr "" msgid "Ask Username" msgstr "" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" msgid "Summary Line Length" msgstr "" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" msgid "Close After Commit" msgstr "" msgid "Close the commit tool after every successful commit. Default: False" msgstr "" msgid "Push After Commit" msgstr "" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" msgid "Auto Commit List" msgstr "" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" msgid "Auto Exclude List" msgstr "" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" msgid "English Messages" msgstr "" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" msgid "New Commit Phase" msgstr "" msgid "The phase of new commits. Default: draft" msgstr "" msgid "Secret MQ Patches" msgstr "" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "" msgid "Check Subrepo Phase" msgstr "" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" msgid "Monitor working
                                                                                        directory changes" msgstr "" msgid "" "Select when the working directory status list will be refreshed:
                                                                                        - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
                                                                                        TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
                                                                                        - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
                                                                                        - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
                                                                                        Default: auto" msgstr "" msgid "Confirm adding unknown files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Confirm deleting files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Sync" msgstr "" msgid "After Pull Operation" msgstr "" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" msgid "Default Push" msgstr "" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

                                                                                        • all: The default. Push all changes in all " "branches.
                                                                                        • branch: Push all changes in the current branch.
                                                                                        • revision: Push the changes in the current branch up to the current revision.

                                                                                        Default: all" msgstr "" msgid "Confirm Push" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" msgid "Target Combo" msgstr "" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

                                                                                        • auto: The default. Show the combo if more than one target " "configured.
                                                                                        • always: Always show the combo.

                                                                                        Default: auto" msgstr "" msgid "SSH Command" msgstr "" msgid "" "Command to use for SSH connections.

                                                                                        Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" msgid "Subrepository Features:" msgstr "" msgid "Allow Hg Subrepos" msgstr "" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" msgid "Allow Git Subrepos" msgstr "" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

                                                                                        See the security note before enabling Git " "subrepos." msgstr "" msgid "Allow SVN Subrepos" msgstr "" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

                                                                                        See the security note before enabling " "Subversion subrepos." msgstr "" msgid "Server" msgstr "" msgid "Repository Details:" msgstr "" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" msgid "Encoding" msgstr "" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" msgid "'Publishing' repository" msgstr "" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" msgid "Web Server:" msgstr "" msgid "Textual description of the repository's purpose or contents." msgstr "" msgid "Contact" msgstr "" msgid "Name or email address of the person in charge of the repository." msgstr "" msgid "Style" msgstr "" msgid "Which template map style to use" msgstr "" msgid "Archive Formats" msgstr "" msgid "Comma separated list of archive formats allowed for downloading" msgstr "" msgid "Port" msgstr "" msgid "Port to listen on" msgstr "" msgid "Push Requires SSL" msgstr "" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" msgid "Stripes" msgstr "" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" msgid "Max Files" msgstr "" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "" msgid "Max Changes" msgstr "" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "" msgid "Allow Push" msgstr "" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" msgid "Deny Push" msgstr "" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" msgid "Proxy" msgstr "" msgid "Host" msgstr "" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "" msgid "Bypass List" msgstr "" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "" msgid "Optional. User name to authenticate with at the proxy server" msgstr "" msgid "Password" msgstr "" msgid "Optional. Password to authenticate with at the proxy server" msgstr "" msgid "From" msgstr "" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "" msgid "To" msgstr "" msgid "Comma-separated list of recipient email addresses" msgstr "" msgid "Cc" msgstr "" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "" msgid "Bcc" msgstr "" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "" msgid "method" msgstr "" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" msgid "SMTP Host" msgstr "" msgid "Host name of mail server" msgstr "" msgid "SMTP Port" msgstr "" msgid "Port to connect to on mail server. Default: 25" msgstr "" msgid "SMTP TLS" msgstr "" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "" msgid "SMTP Username" msgstr "" msgid "Username to authenticate to mail server with" msgstr "" msgid "SMTP Password" msgstr "" msgid "Password to authenticate to mail server with" msgstr "" msgid "Local Hostname" msgstr "" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "" msgid "Diff and Annotate" msgstr "" msgid "Patch EOL" msgstr "" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" msgid "Git Format" msgstr "" msgid "Use git extended diff header format. Default: False" msgstr "" msgid "MQ Git Format" msgstr "" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" msgid "No Dates" msgstr "" msgid "Do not include modification dates in diff headers. Default: False" msgstr "" msgid "Show Function" msgstr "" msgid "Show which function each change is in. Default: False" msgstr "" msgid "Ignore White Space" msgstr "" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "" msgid "Ignore WS Amount" msgstr "" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "" msgid "Ignore Blank Lines" msgstr "" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "" msgid "Annotate:" msgstr "" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "" msgid "Fonts" msgstr "" msgid "Message Font" msgstr "" msgid "Font used to display commit messages. Default: monospace 10" msgstr "" msgid "Diff Font" msgstr "" msgid "Font used to display text differences. Default: monospace 10" msgstr "" msgid "ChangeLog Font" msgstr "" msgid "Font used to display changelog data. Default: monospace 10" msgstr "" msgid "Output Font" msgstr "" msgid "Font used to display output messages. Default: sans 8" msgstr "" msgid "Extensions" msgstr "" msgid "Tools" msgstr "" msgid "Hooks" msgstr "" msgid "Issue Tracking" msgstr "" msgid "Issue Regex" msgstr "" msgid "Defines the regex to match when picking up issue numbers." msgstr "" msgid "Issue Link" msgstr "" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" msgid "Inline Tags" msgstr "" msgid "Show tags at start of commit message." msgstr "" msgid "Mandatory Issue Reference" msgstr "" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" msgid "Issue Tracker Plugin" msgstr "" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" msgid "Configure Issue Tracker" msgstr "" msgid "Configure the selected COM Bug Tracker plugin." msgstr "" msgid "Issue Tracker Trigger" msgstr "" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

                                                                                        • never: Do not update the Issue Tracker " "state automatically.
                                                                                        • commit: Update the Issue Tracker state after " "a successful commit.

                                                                                        Default: never" msgstr "" msgid "Changeset Link" msgstr "" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
                                                                                        The template string " "uses a normal mercurial template syntax, such as:

                                                                                        • {node|short} : replaced by " "the 12 digit revision id.
                                                                                        • {rev} : replaced by the revision number." "
                                                                                        • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
                                                                                        For example, in order to " "link to bitbucket commit pages you can set this to:
                                                                                        https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
                                                                                        You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
                                                                                        https://github.com/torvalds/" "linux/commit/{gitnode}
                                                                                        https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
                                                                                        " msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "" msgid "User name to authenticate with review board" msgstr "" msgid "Password to authenticate with review board" msgstr "" msgid "Server Repository ID" msgstr "" msgid "The default repository id for this repo on the review board server" msgstr "" msgid "Target Groups" msgstr "" msgid "A comma separated list of target groups" msgstr "" msgid "Target People" msgstr "" msgid "A comma separated list of target people" msgstr "" msgid "Kiln Bfiles" msgstr "" msgid "Patterns" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" msgid "Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" msgid "System Cache" msgstr "" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "" msgid "Simplelock" msgstr "" msgid "Lock Clone" msgstr "" msgid "" "Location of local clone of organizational lock repository.

                                                                                        This repository " "must contain a \"locked\" text file" msgstr "" msgid "Largefiles" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" msgid "Minimum Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" msgid "User Cache" msgstr "" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" msgid "Projrc" msgstr "" msgid "Require confirmation" msgstr "" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

                                                                                        • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
                                                                                        • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
                                                                                        • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
                                                                                        " msgstr "" msgid "Servers" msgstr "" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" msgid "Include" msgstr "" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" msgid "Exclude" msgstr "" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" msgid "Update on incoming" msgstr "" msgid "" "Let the user update the projrc on incoming:
                                                                                        • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
                                                                                        • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
                                                                                        • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                                                                                          Default: never" msgstr "" msgid "GnuPG" msgstr "" msgid "Specify the path to GPG. Default: gpg" msgstr "" msgid "Key ID" msgstr "" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "" msgid "TortoiseHg Settings" msgstr "" msgid "Iniparse package not found" msgstr "" msgid "Can't change settings without iniparse package - view is readonly." msgstr "" #, python-format msgid "%s's global settings" msgstr "" msgid "No repository found" msgstr "" msgid "no repo at " msgstr "" #, python-format msgid "%s project settings (.hg/projrc)" msgstr "" #, python-format msgid "%s repository settings" msgstr "" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "" msgid "Apply changes before exit?" msgstr "" msgid "&No (discard changes)" msgstr "" msgid "Reload" msgstr "" msgid "Settings File:" msgstr "" msgid "Confirm Save" msgstr "" msgid "Save changes before editing?" msgstr "" msgid "&Save" msgstr "" msgid "Confirm Reload" msgstr "" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" msgid "Unable to create a Mercurial.ini file" msgstr "" msgid "Insufficient access rights, reverting to read-only mode." msgstr "" msgid "Context Menu" msgstr "" msgid "Top menu items:" msgstr "" msgid "Sub menu items:" msgstr "" msgid "Menu Behavior" msgstr "" msgid "Hide context menu outside repositories" msgstr "" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" msgid "Icons" msgstr "" msgid "Overlays" msgstr "" msgid "Enabled overlays" msgstr "" msgid "Local disks only" msgstr "" msgid "Enabled Overlay Handlers" msgstr "" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "" msgid "Added" msgstr "" msgid "Locked*" msgstr "" msgid "Ignored*" msgstr "" msgid "Unversioned" msgstr "" msgid "Readonly*" msgstr "" msgid "Deleted*" msgstr "" msgid "*: not used by TortoiseHg" msgstr "" msgid "Taskbar" msgstr "" msgid "Show Icon" msgstr "" msgid "Highlight Icon" msgstr "" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" msgid "Explorer Extension Settings - TortoiseHg" msgstr "" msgid "Clear" msgstr "" msgid "Clear the current shelf file" msgstr "" msgid "Delete the current shelf file" msgstr "" msgid "Left Toolbar" msgstr "" msgid "Delete selected chunks" msgstr "" msgid "Move all files right" msgstr "" msgid "Move selected file right" msgstr "" msgid "Edit file" msgstr "" msgid "Move selected chunks right" msgstr "" msgid "Refresh Toolbar" msgstr "" msgid "Refresh" msgstr "Uppdatera" msgid "New Shelf" msgstr "" msgid "Right Toolbar" msgstr "" msgid "Move selected chunks left" msgstr "" msgid "Move selected file left" msgstr "" msgid "Move all files left" msgstr "" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "" msgid "Delete selected chunks from working copy?" msgstr "" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "" msgid "Are you sure?" msgstr "" msgid "TortoiseHg New Shelf Name" msgstr "" msgid "Specify name of new shelf" msgstr "" msgid "Bad filename" msgstr "" #, python-format msgid "A shelf name cannot contain %s" msgstr "" msgid "File already exists" msgstr "" msgid "A shelf file of that name already exists" msgstr "" msgid "New shelf created" msgstr "" #, python-format msgid "Delete shelf file %s?" msgstr "" msgid "Shelf deleted" msgstr "" msgid "Revert all working copy changes?" msgstr "" #, python-format msgid "Clear contents of shelf file %s?" msgstr "" msgid "Shelf cleared" msgstr "" #, python-format msgid "Shelf: %s" msgstr "" #, python-format msgid "Patch: %s" msgstr "" msgid "Key:" msgstr "" msgid "Local sign" msgstr "" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "" msgid "No commit" msgstr "" msgid "Use custom commit message:" msgstr "" msgid "&Sign" msgstr "" #, python-format msgid "Sign - %s" msgstr "" msgid "Signature has been added" msgstr "" msgid "Repository command still running" msgstr "" msgid "Filter:" msgstr "" msgid "Check all files" msgstr "" msgid "Uncheck all files" msgstr "" msgid "Status File List Toolbar" msgstr "" msgid "Remove filter, show root" msgstr "" #, python-format msgid "%s - status (selection filtered)" msgstr "" #, python-format msgid "%s - status" msgstr "" msgid "Check" msgstr "" msgid "Uncheck" msgstr "" msgid "status" msgstr "Status" msgid "Failed to refresh" msgstr "" msgid "No appropriate files" msgstr "" msgid "No files found for this operation" msgstr "" msgid "Stat" msgstr "" msgid "M" msgstr "" msgid "Filename" msgstr "Filnamn" msgid "Size (KB)" msgstr "" #, python-format msgid "Checked count: %d" msgstr "" msgid ", resolved merge" msgstr "" msgid ", unresolved merge" msgstr "" #, python-format msgid "%s is modified" msgstr "" msgid "modified" msgstr "" #, python-format msgid "%s is added" msgstr "" msgid "added" msgstr "" #, python-format msgid "%s is removed" msgstr "" msgid "removed" msgstr "" #, python-format msgid "%s is not tracked (unknown)" msgstr "" msgid "unknown" msgstr "" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "" msgid "missing" msgstr "" #, python-format msgid "%s is ignored" msgstr "" msgid "ignored" msgstr "" #, python-format msgid "%s is not modified (clean)" msgstr "" msgid "clean" msgstr "" #, python-format msgid "%s is a dirty subrepo" msgstr "" msgid "subrepo" msgstr "" msgid "Check for incoming changes from selected URL" msgstr "" msgid "Pull incoming changes from selected URL" msgstr "" msgid "Detect outgoing changes to selected URL" msgstr "" msgid "Push outgoing changes to selected URL" msgstr "" msgid "Sync Bookmarks" msgstr "" msgid "Email outgoing changesets for remote repository" msgstr "" msgid "Manage pending perforce changelists" msgstr "" msgid "Unbundle" msgstr "" msgid "Selected Options:" msgstr "" msgid "Path Edit Toolbar" msgstr "" msgid "Security" msgstr "" msgid "Manage HTTPS connection security and user authentication" msgstr "" msgid "Save" msgstr "" msgid "Save current URL under an alias" msgstr "" msgid "Paths in Repository Settings:" msgstr "" msgid "Related Paths:" msgstr "" msgid "branch: " msgstr "" msgid "bookmark: " msgstr "" #, python-format msgid "rev: %d (%s)" msgstr "" msgid "Post Pull: " msgstr "" msgid "&Edit..." msgstr "" msgid "&Remove..." msgstr "" msgid "Repository not local" msgstr "" msgid "A terminal shell cannot be opened for remote" msgstr "" msgid "Confirm path delete" msgstr "" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "" msgid "Select repository" msgstr "" msgid "No host specified" msgstr "" msgid "Please set a valid URL to continue." msgstr "" msgid "No remote repository URL or path set" msgstr "" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

                                                                                          Please type and save a remote repository path on the " "Sync widget." msgstr "" msgid "Redundant authentication info" msgstr "" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" msgid "sync command already running" msgstr "" #, python-format msgid "Getting incoming changesets from %s..." msgstr "" #, python-format msgid "Found incoming changesets from %s" msgstr "" #, python-format msgid "No incoming changesets from %s" msgstr "" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "" #, python-format msgid "Pulling from %s..." msgstr "" #, python-format msgid "Pull from %s completed" msgstr "" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "" msgid "Merge caused file conflicts" msgstr "" msgid "File conflicts need to be resolved" msgstr "" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "" #, python-format msgid "%d outgoing changesets to %s" msgstr "" #, python-format msgid "No outgoing changesets to %s" msgstr "" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "" msgid "Perforce pending..." msgstr "" #, python-format msgid "%s (submitted)" msgstr "" #, python-format msgid "%s (pending)" msgstr "" msgid "Unable to parse p4pending output" msgstr "" #, python-format msgid "%d pending changelists found" msgstr "" msgid "No pending Perforce changelists" msgstr "" msgid "Aborted p4pending" msgstr "" msgid "Unable to determine pending changesets" msgstr "" msgid "Confirm Push to remote Repository" msgstr "" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" #, python-format msgid "Push to %s aborted" msgstr "" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" #, python-format msgid "Pushing to %s..." msgstr "" #, python-format msgid "Push to %s completed" msgstr "" #, python-format msgid "Push to %s aborted, ret %d" msgstr "" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" msgid "Determining outgoing changesets to email..." msgstr "" msgid "No outgoing changesets" msgstr "" #, python-format msgid "Outgoing aborted, ret %d" msgstr "" msgid "Select bundle file" msgstr "" msgid "Bundle files (*.hg)" msgstr "" msgid "Unable to remove URL" msgstr "" msgid "Post Pull Behavior" msgstr "" msgid "Select post-pull operation for this repository" msgstr "" msgid "None - simply pull changesets" msgstr "" msgid "Update - pull, then try to update" msgstr "" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "" msgid "Rebase - rebase local commits above pulled changes" msgstr "" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "" msgid "Launch settings tool..." msgstr "" msgid "Unable to save post pull operation" msgstr "" msgid "Save Path" msgstr "" msgid "Alias" msgstr "" msgid "URL" msgstr "" msgid "Remove authentication data from URL" msgstr "" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" msgid "Update subrepo paths" msgstr "" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" msgid "Unable to save an URL" msgstr "" msgid "Confirm URL replace" msgstr "" #, python-format msgid "%s already exists, replace URL?" msgstr "" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

                                                                                          %s

                                                                                          Replace it with the " "following URL?:

                                                                                          %s" msgstr "" msgid "Security: " msgstr "" #, python-format msgid "Host: %s" msgstr "" msgid "Secure HTTPS Connection" msgstr "" msgid "Verify with Certificate Authority certificates (best)" msgstr "" msgid "Verify with stored host fingerprint (good)" msgstr "" msgid "No host validation, but still encrypted (bad)" msgstr "" msgid "### host certificate fingerprint ###" msgstr "" msgid "Query" msgstr "" msgid "TLS 1.0" msgstr "" msgid "TLS 1.1" msgstr "" msgid "TLS 1.2" msgstr "" msgid "Minimum Protocol" msgstr "" msgid "User Authentication" msgstr "" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Key" msgstr "" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Chain" msgstr "" msgid "Certificate Query Error" msgstr "" msgid "Select User Certificate Key File" msgstr "" msgid "PEM files (*.pem *.key)" msgstr "" msgid "Select User Certificate Chain File" msgstr "" msgid "PEM files (*.pem *.crt *.cer)" msgstr "" msgid "Unable to save authentication" msgstr "" #, python-format msgid "%s - sync options" msgstr "" msgid "Allow push of a new branch (--new-branch)" msgstr "" msgid "Force push or pull (override safety checks, --force)" msgstr "" msgid "Temporarily disable configured HTTP proxy" msgstr "" msgid "Emit debugging output (--debug)" msgstr "" msgid "Work on patch queue (--mq)" msgstr "" #, python-format msgid "Tag - %s" msgstr "" msgid "Tag:" msgstr "" msgid "Tagged:" msgstr "" msgid "Local tag" msgstr "" msgid "Replace existing tag (-f/--force)" msgstr "" msgid "Use English commit message" msgstr "" msgid "local" msgstr "" msgid "Move" msgstr "Flytta" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "" #, python-format msgid "Added tag %s for changeset %s" msgstr "" #, python-format msgid "Tag '%s' has been moved" msgstr "" #, python-format msgid "Tag '%s' has been added" msgstr "" #, python-format msgid "Removed tag %s" msgstr "" #, python-format msgid "Tag '%s' has been removed" msgstr "" msgid "Patch files (*.diff *.patch)" msgstr "" #, python-format msgid "Import - %s" msgstr "" msgid "Browse Directory..." msgstr "" msgid "Import from Clipboard" msgstr "" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "" msgid "Preview:" msgstr "" msgid "Shelf" msgstr "" msgid "Checking working directory status..." msgstr "" msgid "&Import" msgstr "" msgid "Working directory is not clean! View changes..." msgstr "" msgid "Select patches" msgstr "" msgid "Select Directory containing patches" msgstr "" #, python-format msgid "%s patches" msgstr "" #, python-format msgid "%s will be imported to " msgstr "" msgid "Nothing to import" msgstr "" msgid "Strip:" msgstr "" msgid "Discard local changes, no backup (-f/--force)" msgstr "" msgid "No backup (-n/--nobackup)" msgstr "" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "" msgstr[1] "" msgid "Unknown revision!" msgstr "" msgid "Detected uncommitted local changes." msgstr "" msgid "Do you want to keep them or discard them?" msgstr "" msgid "&Keep (--keep)" msgstr "" msgid "&Discard (--force)" msgstr "" msgid "Confirm Strip" msgstr "" #, python-format msgid "Strip - %s" msgstr "" msgid "&Strip" msgstr "" msgid "Topic:" msgstr "" msgid "&Rename" msgstr "" #, python-format msgid "Topic - %s" msgstr "" #, python-format msgid "A topic named \"%s\" already exists" msgstr "" #, python-format msgid "Topic '%s' has been added" msgstr "" #, python-format msgid "Topic '%s' does not exist" msgstr "" #, python-format msgid "Topic '%s' has been removed" msgstr "" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "" msgid "Parent 1:" msgstr "" msgid "Parent 2:" msgstr "" msgid "Pull subrepos from:" msgstr "" msgid "List updated files (--verbose)" msgstr "" msgid "Discard local changes, no backup (-C/--clean)" msgstr "" msgid "Always merge (when possible)" msgstr "" msgid "(same as parent)" msgstr "" msgid "Activate bookmark?" msgstr "" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

                                                                                          Do " "you want to activate it?
                                                                                          You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

                                                                                          Select " "the bookmark that you want to activate and click OK.

                                                                                          Click " "Cancel if you don't want to activate any of them.

                                                                                          You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                                                          " msgstr "" msgid "Deactivate current bookmark?" msgstr "" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" msgid "Discard - discard local changes, no backup" msgstr "" msgid "&Shelve" msgstr "" msgid "Shelve - move local changes to a patch" msgstr "" msgid "Merge - allow to merge with local changes" msgstr "" msgid "Confirm Update" msgstr "" #, python-format msgid "Update - %s" msgstr "" msgid "[non-existant]" msgstr "" msgid "Tool launch failure" msgstr "" #, python-format msgid "%s : %s" msgstr "" msgid "No diff tool found" msgstr "" msgid "No visual diff tools were detected" msgstr "" msgid "[working copy]" msgstr "" msgid "[original]" msgstr "" msgid "Unable to find changeset" msgstr "" msgid "You likely need to refresh this application" msgstr "" msgid "No file changes" msgstr "" msgid "There are no file changes to view" msgstr "" msgid "working changes" msgstr "" #, python-format msgid "changeset %d:%s" msgstr "" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "" msgid "Visual Diffs - " msgstr "" msgid " filtered" msgstr "" msgid "Temporary files are removed when this dialog is closed" msgstr "" msgid "Select Tool:" msgstr "" msgid "Dir diff to p1" msgstr "" msgid "Dir diff to p2" msgstr "" msgid "3-way dir diff" msgstr "" msgid "Directory diff" msgstr "" msgid "Confirm Discard" msgstr "" msgid "Discard outstanding changes to working directory?" msgstr "" msgid "Config files (*.conf *.config *.ini)" msgstr "" msgid "Open hgweb config" msgstr "" msgid "Save hgweb config" msgstr "" msgid "Path:" msgstr "" msgid "Local Path:" msgstr "" msgid "Select Repository" msgstr "" msgid "Add Path to Serve" msgstr "" msgid "Edit Path to Serve" msgstr "" msgid "Local Path" msgstr "" msgid "Webconf" msgstr "" msgid "Config File:" msgstr "" msgid "Open" msgstr "" msgid "New &Workbench" msgstr "" msgid "&New Repository..." msgstr "" msgid "Clon&e Repository..." msgstr "" msgid "&Open Repository..." msgstr "" msgid "&File" msgstr "" msgid "&View" msgstr "" msgid "&Repository" msgstr "" msgid "&Help" msgstr "" msgid "&Dock Toolbar" msgstr "" msgid "&Task Toolbar" msgstr "" msgid "&Custom Toolbar" msgstr "" msgid "S&ync Toolbar" msgstr "" msgid "&Close Repository" msgstr "" msgid "Sh&ow Repository Registry" msgstr "" msgid "Show &Patch Queue" msgstr "" msgid "Show Conso&le" msgstr "" msgid "Place Console in Doc&k Area" msgstr "" msgid "R&epository Registry Options" msgstr "" msgid "Save Open Repositories on E&xit" msgstr "" msgid "Sa&ve Current Sync Paths on Exit" msgstr "" msgid "Show Tas&k Tab" msgstr "" msgid "&Commit" msgstr "" msgid "&Patch Branch" msgstr "" msgid "Revision &Details" msgstr "" msgid "&Search" msgstr "" msgid "S&ynchronize" msgstr "" msgid "Refresh current repository" msgstr "" msgid "Refresh &Task Tab" msgstr "" msgid "Refresh only the current task tab" msgstr "" msgid "Load &All Revisions" msgstr "" msgid "Load all revisions into graph" msgstr "" msgid "Go to current revision" msgstr "" msgid "&Goto Revision..." msgstr "" msgid "Go to a specific revision" msgstr "" msgid "Filter graph with revision sets or branches" msgstr "" msgid "&Workbench Toolbars" msgstr "" msgid "&Lock File..." msgstr "" msgid "Lock or unlock files" msgstr "" msgid "Update working directory or switch revisions" msgstr "" msgid "&Shelve..." msgstr "" msgid "&Import Patches..." msgstr "" msgid "U&nbundle..." msgstr "" msgid "&Merge..." msgstr "" msgid "Merge with the other head of the current branch" msgstr "" msgid "&Resolve..." msgstr "" msgid "R&ollback/Undo..." msgstr "" msgid "&Purge..." msgstr "" msgid "&Bisect..." msgstr "" msgid "&Verify" msgstr "" msgid "Re&cover" msgstr "" msgid "&Web Server" msgstr "" msgid "E&xplorer Help" msgstr "" msgid "&Readme" msgstr "" msgid "About &Qt" msgstr "" msgid "&About TortoiseHg" msgstr "" msgid "&Incoming" msgstr "" msgid "&Pull" msgstr "" msgid "&Outgoing" msgstr "" msgid "P&ush" msgstr "" msgid "&Sync Bookmarks..." msgstr "" #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" msgid "Check for incoming changes" msgstr "" msgid "Pull incoming changes" msgstr "" msgid "Detect outgoing changes" msgstr "" msgid "Push outgoing changes" msgstr "" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" #, python-format msgid "Execute custom tool '%s'" msgstr "" msgid "Custom Toolbar &Settings" msgstr "" msgid "TortoiseHg Workbench" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "" msgid "Goto revision" msgstr "" msgid "Enter revision identifier" msgstr "" msgid "Select repository directory to open" msgstr "" msgid "README not configured" msgstr "" msgid "" "A README file is not configured for the current repository.

                                                                                          To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" msgid "Issue Tracker Plugin Error" msgstr "" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "" msgid "This error will not be shown again until you restart the workbench" msgstr "" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "" msgid "Error executing \"commit finished\" trigger" msgstr "" msgid "Cannot open Plugin Options dialog" msgstr "" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "" msgid "[--insecure] [SOURCE]" msgstr "" #, python-format msgid "unsupported URL: %s" msgstr "" #, python-format msgid "%s certificate error: no certificate received" msgstr "" msgid "move after the specified patch" msgstr "" msgid "[--after PATCH] PATCH..." msgstr "" msgid "unknown patch to move specified" msgstr "" msgid "invalid patch position specified" msgstr "" msgid "cannot move applied patches" msgstr "" #, python-format msgid "patch %s not in series" msgstr "" msgid "cannot move into applied patches" msgstr "" msgid "abort: " msgstr "" msgid "hint: " msgstr "" #, python-format msgid "HTTP Error: %d (%s)" msgstr "" #, python-format msgid "URLError: %s" msgstr "" msgid "SSL: Server certificate verify failed" msgstr "" #, python-format msgid "SSL: unknown error %s:%s" msgstr "" #, python-format msgid "SSL error: %s" msgstr "" msgid "hgsubversion packaged with thg" msgstr "" msgid "hggit packaged with thg" msgstr "" msgid "inotify is not supported on this platform" msgstr "" msgid "eol is incompatible with win32text" msgstr "" msgid "win32text is incompatible with eol" msgstr "" msgid "hgsubversion is incompatible with perfarce" msgstr "" msgid "perfarce is incompatible with hgsubversion" msgstr "" msgid "Workbench custom toolbar" msgstr "" msgid "Revision details context menu" msgstr "" msgid "Pair selection context menu" msgstr "" msgid "Multiple selection context menu" msgstr "" msgid "Commit context menu" msgstr "" msgid "File context menu (on manifest and revision details)" msgstr "" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" msgid "in the future" msgstr "" msgid "now" msgstr "" #, python-format msgid "command parse error: %s" msgstr "" #, python-format msgid "no matches found: %s" msgstr "" msgid "Commit..." msgstr "" msgid "Commit changes in repository" msgstr "" msgid "Create Repository Here" msgstr "" msgid "Create a new repository" msgstr "" msgid "Clone..." msgstr "" msgid "Create clone here from source" msgstr "" msgid "File Status" msgstr "" msgid "Repository status & changes" msgstr "" msgid "Add Files..." msgstr "" msgid "Add files to version control" msgstr "" msgid "Revert Files..." msgstr "" msgid "Revert file changes" msgstr "" msgid "Forget Files..." msgstr "" msgid "Remove files from version control" msgstr "" msgid "Remove Files..." msgstr "" msgid "Rename File" msgstr "" msgid "Rename file or directory" msgstr "" msgid "View change history in repository" msgstr "" msgid "File History" msgstr "" msgid "View change history of selected files" msgstr "" msgid "Shelve Changes" msgstr "" msgid "Move changes between working dir and patch" msgstr "" msgid "Synchronize" msgstr "Synkronisera" msgid "Synchronize with remote repository" msgstr "" msgid "Start web server for this repository" msgstr "" msgid "Update..." msgstr "" msgid "Update working directory" msgstr "" msgid "Update Icons" msgstr "" msgid "Update icons for this repository" msgstr "" msgid "Global Settings" msgstr "" msgid "Configure user wide settings" msgstr "" msgid "Repository Settings" msgstr "" msgid "Configure repository settings" msgstr "" msgid "Explorer Extension Settings" msgstr "" msgid "Configure Explorer extension" msgstr "" msgid "About TortoiseHg" msgstr "" msgid "Show About Dialog" msgstr "" msgid "Diff to parent" msgstr "" msgid "View changes using GUI diff tool" msgstr "" msgid "Edit Ignore Filter" msgstr "" msgid "Edit repository ignore filter" msgstr "" msgid "Guess Renames" msgstr "" msgid "Detect renames and copies" msgstr "" msgid "Search History" msgstr "" msgid "Search file revisions for patterns" msgstr "" msgid "DnD Synchronize" msgstr "" msgid "Synchronize with dragged repository" msgstr "" #, python-format msgid "unrecognized response: %s" msgstr "" msgid "password: " msgstr "" #, python-format msgid "repository %s not found" msgstr "" msgid "win32ill: cannot create window for messages" msgstr "" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "" msgid "win32ill: interrupted while stopping message loop\n" msgstr "" #~ msgid "(version %s)" #~ msgstr "(version %s)" #~ msgid "All Files (*.*)" #~ msgstr "Alla filer (*.*)" #~ msgid "Old name:" #~ msgstr "Gammalt namn:" #~ msgid "path" #~ msgstr "sökväg" #~ msgid "type" #~ msgstr "typ" #~ msgid "Save as.." #~ msgstr "Spara som..." #~ msgid "Clone" #~ msgstr "Klona" #~ msgid "Advanced options" #~ msgstr "Avancerade inställningar" #~ msgid "_Undo" #~ msgstr "_Ångra" #~ msgid "Advanced" #~ msgstr "Avancerat" #~ msgid "_Forget" #~ msgstr "_Glöm" #~ msgid "_Remove" #~ msgstr "_Ta bort" #~ msgid "_Add" #~ msgstr "_Lägg till" #~ msgid "Paste _Filenames" #~ msgstr "Klistra in _filnamn" #~ msgid "Updating..." #~ msgstr "Uppdaterar..." #~ msgid "New Search" #~ msgstr "Ny sökning" #~ msgid "Show line numbers" #~ msgstr "Visa radnummer" #~ msgid "Error: %s" #~ msgstr "Fel: %s" #~ msgid "Invalid regular expression" #~ msgstr "Ogiltigt reguljärt uttryck" #~ msgid "_Tools" #~ msgstr "_Verktyg" #~ msgid "Index" #~ msgstr "Index" #~ msgid "Contents" #~ msgstr "Innehåll" #~ msgid "_Help" #~ msgstr "_Hjälp" #~ msgid "All files" #~ msgstr "Alla filer" #~ msgid "Save File" #~ msgstr "Spara fil" #~ msgid "A new version of TortoiseHg is ready for download!" #~ msgstr "En ny version av TortoiseHg är redo för nedladdning!" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/th.po0000644000000000000000000072410114440352353016246 0ustar00rootroot# Thai translation for tortoisehg # Copyright (c) 2015 Rosetta Contributors and Canonical Ltd 2015 # This file is distributed under the same license as the tortoisehg package. # FIRST AUTHOR , 2015. # msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2019-02-14 05:12+0000\n" "Last-Translator: Yanyong Kunok \n" "Language-Team: Thai \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2019-07-17 05:45+0000\n" "X-Generator: Launchpad (build 19009)\n" msgid "TortoiseHg Overlay Icon Server" msgstr "TortoiseHg Overlay Icon Server" msgid "Exit" msgstr "ออกจากโปรแกรม" msgid "About" msgstr "เกี่ยวกับโปรแกรม" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "Several icons are courtesy of the TortoiseSVN and Tango projects" msgid "You can visit our site here" msgstr "เยี่ยมชมเราได้ที่นี่" msgid "&License" msgstr "&อนุญาต" #, python-format msgid "version %s" msgstr "รุ่น %s" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "TortoiseHg (%s) ใหม่พร้อมสำหรับ download!" msgid "License" msgstr "ใบอนุญาต" msgid "= Working Directory Parent =" msgstr "= Working Directory Parent =" msgid "Directory of files" msgstr "Directory of files" msgid "Tar archives" msgstr "Tar archives" msgid "Uncompressed tar archive" msgstr "tar ที่ยังไม่ถูกย่อ" msgid "Bzip2 tar archives" msgstr "Bzip2 tar archives" msgid "Tar archive compressed using bzip2" msgstr "Tar ที่ย่อโดยใช้ bzip2" msgid "Gzip tar archives" msgstr "Gzip tar archives" msgid "Tar archive compressed using gzip" msgstr "Tar ที่ย่อโดยใช้ gzip" msgid "Zip archives" msgstr "Zip archives" msgid "Uncompressed zip archive" msgstr "Uncompressed zip archive" msgid "Zip archive compressed using deflate" msgstr "ย่อแบบ ZIp ใช้ deflate" msgid "Revision:" msgstr "Revision:" msgid "All files in this revision" msgstr "ไฟล์ทั้งหมดใน revision นี้" msgid "Only files modified/created in this revision" msgstr "Only files modified/created in this revision" msgid "Only files modified/created since:" msgstr "เฉพาะไฟล์ที่ modified/created เริ่มตั้งแต่:" msgid "Archive Content:" msgstr "Archive Content:" msgid "Recurse into subrepositories" msgstr "Recurse into subrepositories" msgid "Browse..." msgstr "เลือก..." msgid "Destination path:" msgstr "Destination path:" msgid "Archive types:" msgstr "ประเภทการเก็บ" msgid "Hg command:" msgstr "คำสั่ง Hg" msgid "Select Destination Folder" msgstr "Select Destination Folder" msgid "Select Destination File" msgstr "เลือก Destination File" msgid "All files (*)" msgstr "ไฟล์ทั้งหมด" msgid "Duplicate Name" msgstr "ทำซ้ำชื่อ" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "The destination \"%s\" already exists as a file!" msgid "Confirm Overwrite" msgstr "ยืนยันที่จะเขียนทับ" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" "The directory \"%s\" ไม่ว่าง!\n" "\n" "ต้องการเขียนทับ?" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" "มีไฟล์ \"%s\" อยู่แล้ว!\n" "\n" "ต้องการเขียนทับ?" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "The destination \"%s\" already exists as a folder!" #, python-format msgid "Archive - %s" msgstr "Archive - %s" msgid "&Archive" msgstr "&Archive" msgid "Backout requires a parent revision" msgstr "Backout requires a parent revision" msgid "Cannot backout change on a different branch" msgstr "Cannot backout change on a different branch" #, python-format msgid "Backout - %s" msgstr "Backout - %s" msgid "Prepare to backout" msgstr "Prepare to backout" msgid "Verify backout revision and ensure your working directory is clean." msgstr "Verify backout revision and ensure your working directory is clean." msgid "Backing out a parent revision is a single step operation" msgstr "Backing out a parent revision is a single step operation" msgid "Backout revision" msgstr "Backout revision" msgid "Not a head, backout will create a new head!" msgstr "Not a head, backout will create a new head!" msgid "Current local revision" msgstr "รุ่นปรับปรุงปัจจุบัน" msgid "Working directory status" msgstr "สถานะของ directory" msgid "Checking..." msgstr "กำลังตรวจสอบ..." msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" "Before backout, you must commit, shelve to patch, or discard changes." msgid "Automatically resolve merge conflicts where possible" msgstr "Automatically resolve merge conflicts where possible" msgid "Uncommitted local changes are detected" msgstr "Uncommitted local changes are detected" msgid "Clean" msgstr "Clean" msgid "Backing out, then merging..." msgstr "Backing out, then merging..." msgid "All conflicting files will be marked unresolved." msgstr "All conflicting files will be marked unresolved." msgid "Automatically advance to next page when backout and merge are complete." msgstr "" "Automatically advance to next page when backout and merge are complete." #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" "%d files have merge conflicts that must be resolved" msgid "No merge conflicts, ready to commit" msgstr "ไม่พบปัญหาการผนวก, พร้อมสำหรับ commit" msgid "Commit backout and merge results" msgstr "Commit backout and merge results" msgid "Parents" msgstr "Parents" msgid "Working Directory" msgstr "Working Directory" msgid "Working Directory (merged)" msgstr "Working Directory (merged)" msgid "Commit message" msgstr "ข้อความ Commit" msgid "Skip final confirmation page, close after commit." msgstr "หลังจาก commit ไม่ต้องมาที่หน้าการยืนยัน" msgid "Backed out changeset: " msgstr "Backed out changeset: " msgid "Confirm Discard Message" msgstr "Confirm Discard Message" msgid "Discard current backout message?" msgstr "Discard current backout message?" msgid "Use English backout message" msgstr "Use English backout message" msgid "Backing out and committing..." msgstr "Backing out and committing..." msgid "Please wait while making backout." msgstr "Please wait while making backout." msgid "Committing..." msgstr "Committing..." msgid "Please wait while committing merged files." msgstr "Please wait while committing merged files." msgid "Finished" msgstr "เรียบร้อย" msgid "Backout changeset" msgstr "Backout changeset" #, python-format msgid "Bisect - %s" msgstr "Bisect - %s" msgid "Accept" msgstr "รับทราบ" msgid "Known good revision:" msgstr "รุ่นปรับปรุงที่ดี" msgid "Known bad revision:" msgstr "รุ่นที่มีปัญหา" msgid "Discard local changes (revert --all)" msgstr "ยกเลิกการเปลี่ยนแปลง ทั้งหมด (revert --all)" msgid "Revision is &Good" msgstr "รุ่นปรับปรุงที่ &ดี" msgid "Revision is &Bad" msgstr "รุ่นปรับปรุงที่ &ไม่ดี" msgid "&Skip this Revision" msgstr "&ข้ามรุ่นนีไป" msgid "Close" msgstr "ปิด" msgid "Error encountered." msgstr "มีการผิดพลาด" msgid "Culprit found." msgstr "พบ Culprit" msgid "Revision" msgstr "รุ่นปรับปรุง" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "ทดสอบรุ่นนี้แล้วรายงาน (ดี/ไม่ดี/ข้ามไปก่อน)" #, python-format msgid "%s (hint: %s)" msgstr "%s (hint: %s)" msgid "Bookmark:" msgstr "บันทึกไว้" msgid "New Name:" msgstr "ชื่อใหม่:" msgid "Activate:" msgstr "Activate:" msgid "&Add" msgstr "เพิ่ม" msgid "Re&name" msgstr "เปลี่ยนชื่อ" msgid "&Remove" msgstr "เ&อาออก" msgid "&Move" msgstr "ย้าย" #, python-format msgid "Bookmark - %s" msgstr "บันทึก - %s" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "A bookmark named \"%s\" already exists" #, python-format msgid "Bookmark '%s' has been added" msgstr "Bookmark '%s' ได้ถูกเพิ่มแล้ว" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "ชื่อ Bookmark \"%s\" ไม่มี" #, python-format msgid "Bookmark '%s' has been moved" msgstr "Bookmark '%s' ได้ถูกย้ายไปแล้ว" #, python-format msgid "Bookmark '%s' does not exist" msgstr "Bookmark '%s' ไม่ไมี" #, python-format msgid "Bookmark '%s' has been removed" msgstr "Bookmark '%s' ได้ถูกลบออกแล้ว" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "Bookmark '%s' เปลี่ยนชื่อเป็น '%s'" msgid "TortoiseHg Bookmark Sync" msgstr "TortoiseHg Bookmark Sync" msgid "Outgoing Bookmarks" msgstr "Outgoing Bookmarks" msgid "&Push Bookmark" msgstr "&Push Bookmark" msgid "&Remove Bookmark" msgstr "&Remove Bookmark" msgid "Incoming Bookmarks" msgstr "Incoming Bookmarks" msgid "P&ull Bookmark" msgstr "P&ull Bookmark" msgid "R&emove Bookmark" msgstr "R&emove Bookmark" #, python-format msgid "Pushed local bookmark: %s" msgstr "Pushed local bookmark: %s" #, python-format msgid "Pulled remote bookmark: %s" msgstr "Pulled remote bookmark: %s" #, python-format msgid "Removed remote bookmark: %s" msgstr "Removed remote bookmark: %s" #, python-format msgid "Removed local bookmark: %s" msgstr "Removed local bookmark: %s" #, python-format msgid "%s - branch operation" msgstr "%s - branch operation" msgid "Select branch of merge commit" msgstr "Select branch of merge commit" msgid "Changes take effect on next commit" msgstr "การเปลี่นแปลงมีผลหลังจาก commit ครั้งถัดไป" msgid "No branch changes" msgstr "ไม่มีการแปลี่นแปลงที่ branch" msgid "Open a new named branch" msgstr "Open a new named branch" msgid "Close current branch" msgstr "ปิด branch นี" #, python-format msgid "Please report this bug to our bug tracker" msgstr "Please report this bug to our bug tracker" msgid "Checking for updates..." msgstr "ตรวจสอบการปรับปรุง" msgid "Copy" msgstr "คัดลอก" msgid "Quit" msgstr "จบการทำงาน" msgid "TortoiseHg Bug Report" msgstr "รายงานข้อผิดพลาดของ TortoiseHg" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "แนะนำว่าควรใช้ TortoiseHg รุ่นล่าสุด" msgid "Your TortoiseHg is up to date." msgstr "TortoiseHg สมบูรณ์ล่าสุด" msgid "Save error report to" msgstr "ส่งข้อผิดพลาดไปที่" msgid "Text files (*.txt)" msgstr "Text files (*.txt)" msgid "Error writing file" msgstr "เขียนไฟล์ผิดพลาด" msgid "TortoiseHg Error" msgstr "TortoiseHg ผิดพลาด" msgid "" "If you still have trouble, please file a bug report." msgstr "ถ้าพบปัญหาหรือข้อผิดพลาด แจ้งได้ที่นี่ ." msgid "Visual Diff" msgstr "Visual Diff" msgid "View file changes in external diff tool" msgstr "View file changes in external diff tool" msgid "Edit Local" msgstr "แก้ไข Local" msgid "Edit current file in working copy" msgstr "Edit current file in working copy" msgid "Revert to Revision" msgstr "ยกเลิกกลับมา" msgid "Revert file(s) to contents at this revision" msgstr "Revert file(s) to contents at this revision" msgid "Patch failed to apply" msgstr "ไม่สามารถปรับปรุงได้" msgid "Manually resolve rejected chunks?" msgstr "Manually resolve rejected chunks?" msgid "Edit patched file and rejects?" msgstr "Edit patched file and rejects?" msgid "No deletable chunks" msgstr "No deletable chunks" msgid "Completely remove file from patch?" msgstr "Completely remove file from patch?" msgid "Revert all file changes?" msgstr "ยกเลิกการเปลี่ยนทั้งหมด?" msgid "No chunks remain" msgstr "No chunks remain" msgid "file has been deleted, refresh" msgstr "file has been deleted, refresh" msgid "file has been modified, refresh" msgstr "file has been modified, refresh" msgid "Unable to merge chunks" msgstr "Unable to merge chunks" msgid "Add or remove patches must be merged in the working directory" msgstr "Add or remove patches must be merged in the working directory" msgid "Unable to remove" msgstr "ไม่สามารถเอาออก" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "ไม่อนุญาต ให้เอา file %s ออก," msgctxt "files" msgid "All" msgstr "ทั้งหมด" msgctxt "files" msgid "None" msgstr "ไม่มี" msgid "Toggle display of text search bar" msgstr "สลับการแสดงของ text search bar" msgid "Diff Toolbar" msgstr "Diff Toolbar" #, python-format msgid "Chunks selected: %d / %d" msgstr "Chunks selected: %d / %d" msgid "Please wait while the file is opened ..." msgstr "กรุณารอขณะ ไฟล์เปิด" msgid "Source:" msgstr "ต้นฉบับ:" msgid "Destination:" msgstr "Destination:" msgid "Options" msgstr "เลือก" msgid "Clone to revision:" msgstr "Clone to revision:" msgid "A revision identifier, bookmark, tag or branch name" msgstr "A revision identifier, bookmark, tag or branch name" msgid "Do not update the new working directory" msgstr "Do not update the new working directory" msgid "Use pull protocol to copy metadata" msgstr "Use pull protocol to copy metadata" msgid "Clone with minimal processing" msgstr "Clone โดย โพรเซสที่น้อยที่สุด" msgid "Include patch queue" msgstr "Include patch queue" msgid "Use proxy server" msgstr "ใช้ proxy server" msgid "Do not verify host certificate" msgstr "ไม่ต้องใช้ host certificate" msgid "Remote command:" msgstr "คำสั่งควบคุมจากอีกแห่ง" msgid "Use largefiles" msgstr "ใช้ไฟล์ขนาดใหญ่" msgid "Start revision:" msgstr "รุ่นแรก" msgid "Select source repository" msgstr "เลือก source repository" msgid "Select destination repository" msgstr "เลือก destination repository" msgid "Select patch folder" msgstr "Select patch folder" #, python-format msgid "Clone - %s" msgstr "Clone - %s" msgid "&Clone" msgstr "&Clone" msgid "failed to start command\n" msgstr "ไม่สามารถเริ่มคำสั่ง\n" msgid "error while running command\n" msgstr "ผิดพลาดขณะสั่งการ\n" #, python-format msgid "process exited unexpectedly with code %d" msgstr "process exited unexpectedly with code %d" #, python-format msgid "failed to encode command: %s" msgstr "ไม่สามารถถอดรหัสคำสั่ง : %s" #, python-format msgid "timed out while reading: %r..." msgstr "timed out while reading: %r..." msgid "timed out waiting for message" msgstr "timed out waiting for message" #, python-format msgid "unexpected response on required channel %r" msgstr "unexpected response on required channel %r" #, python-format msgid "invalid \"hello\" message: %r" msgstr "ข้อความ \"hello\" ไม่ถูกต้อง : %r" msgid "no \"runcommand\" capability" msgstr "no \"runcommand\" capability" #, python-format msgid "corrupted command result: %r" msgstr "corrupted command result: %r" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "failed to encode input: %s" msgid "Terminated by user" msgstr "ยกเลิกโดยผู้ใช้" #, python-format msgid "[command terminated by user %s]" msgstr "[คำสั่งถูกยกเลิกโดยผู้ใช้ %s]" #, python-format msgid "[command interrupted %s]" msgstr "[คำสั่งถูกขัดจังหวะ %s]" #, python-format msgid "[command returned code %d %%s]" msgstr "[คำสั่ง ตอบกลับมาด้วย code %d %%s]" #, python-format msgid "[command completed successfully %s]" msgstr "[คำสั่งเสร็จสมบูรณ์ %s]" msgid "Running..." msgstr "กำลังทำงาน..." msgid "Failed!" msgstr "ไม่สำเร็จ" msgid "Clea&r Log" msgstr "Clea&r Log" msgid "TortoiseHg Prompt" msgstr "TortoiseHg Prompt" msgid "Show Detail" msgstr "รายละเอียด" msgid "Hide Detail" msgstr "ซ่อน" msgid "Confirm Exit" msgstr "ยืนยันว่าออก" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" "Mercurial กำลังทำตามคำสั่ง.\n" "มั่นใจว่าต้องการยกเลิกจริง?" msgid "&Run" msgstr "เริ่ม" msgid "TortoiseHg Command Dialog" msgstr "TortoiseHg Command Dialog" msgid "Command Error" msgstr "คำสั่งผิดพลาด" #, python-format msgid "[Code: %d]" msgstr "[Code: %d]" msgid "Merge" msgstr "ผนวก" #, python-format msgid "Merge with %s" msgstr "ผนวกด้วย %s" msgid "Patch Name Required" msgstr "Patch Name Required" msgid "You must enter a patch name" msgstr "ต้องใส่ patch name" msgctxt "start progress" msgid "Commit" msgstr "ยืนยัน" msgctxt "start progress" msgid "MQ Action" msgstr "MQ Action" msgctxt "start progress" msgid "Rollback" msgstr "ย้อนกลับ" msgid "Commit Dialog Toolbar" msgstr "Commit Dialog Toolbar" msgid "Branch: " msgstr "Branch: " msgid "Copy message" msgstr "ลอกข้อความ" msgid "Copy one of the recent commit messages" msgstr "Copy one of the recent commit messages" msgid "Show Issues" msgstr "แสดงปัญหา" msgid "Please wait..." msgstr "กรุณารอ..." #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "ไม่สามารถดึง issue tracker '%s': %s" msgid "Issue Tracker" msgstr "ปัญหา Tracker" msgid "Show Issues..." msgstr "แสดงปัญหา..." msgid "Stop" msgstr "ยุติ" msgid "### patch name ###" msgstr "### patch name ###" msgid "Commit changes" msgstr "ยืนยันการเปลี่ยน" msgid "Commit" msgstr "ยืนยันการเปลี่ยน" msgid "Amend current revision" msgstr "Amend current revision" msgid "Amend" msgstr "Amend" msgid "Create a new patch" msgstr "Create a new patch" msgid "QNew" msgstr "QNew" msgid "Refresh current patch" msgstr "Refresh current patch" msgid "QRefresh" msgstr "QRefresh" msgid "Confirm Branch Change" msgstr "Confirm Branch Change" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "Named branch \"%s\" already exists, last used in revision %d\n" msgid "Restart &Branch" msgstr "Restart &Branch" msgid "&Commit to current branch" msgstr "&Commit to current branch" msgid "Cancel" msgstr "ยกเลิก" msgid "Confirm New Branch" msgstr "Confirm New Branch" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "Create new named branch \"%s\" with this commit?\n" msgid "Create &Branch" msgstr "สร้าง &Branch" msgid "Close Branch: " msgstr "Close Branch: " msgid "New Branch: " msgstr "New Branch: " #, python-format msgid "Selected Options: %s" msgstr "Selected Options: %s" msgid "Parent:" msgstr "Parent:" msgid "Patch name:" msgstr "Patch name:" #, python-format msgid "Close %s branch" msgstr "Close %s branch" #, python-format msgid "Rollback commit to revision %d" msgstr "ย้อนไปใช้ รุ่นที่ %d" msgid "Confirm Undo" msgstr "ยืนยัน การยกเลิก" msgid "Discard current commit message?" msgstr "ยกเลิกการส่งข้อความ" msgid "Message Translation Failure" msgstr "การแปลข้อความไม่สำเร็จ" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" "ไม่สามารถแปลงข้อความเป็นรหัสที่ใช้อยู่\n" "ควรทำให้ environment variable เป็น HGENCODING \n" "\n" "ทับ ที่แปลไม่ได้ ด้วย \"?\"?\n" msgid "&Replace" msgstr "แทนที่" msgid "Nothing Committed" msgstr "ไม่ไม่การส่ง" msgid "Please enter commit message" msgstr "กรุณา เพิ่มข้อความ เพื่อการส่ง" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgid "No files checked" msgstr "ไฟล์ไม่ถูกเลือก" msgid "No modified files checkmarked for commit" msgstr "ไม่มีการเลือกไฟล์ที่ถูกแก้ไข" msgid "Confirm Add" msgstr "ยืนยันเพิ่ม" msgid "Add selected untracked files?" msgstr "Add selected untracked files?" msgid "Confirm Remove" msgstr "ยืนยันการย้ายออก" msgid "Remove selected deleted files?" msgstr "นำไฟล์ที่ถูกลบไว้ออก" msgid "Nothing changed." msgstr "ไม่มีอะไรเปลี่ยนแปลง" msgctxt "window title" msgid "Commit" msgstr "ยืนยันการเปลี่ยน" #, python-format msgid "%s - commit options" msgstr "%s - commit options" msgid "Set username:" msgstr "ระบุ username:" msgid "Save in Repo" msgstr "เก็บใน Repo" msgid "Save Global" msgstr "เก็บใน Global" msgid "Set Date:" msgstr "ระบุ วัน:" msgid "Update" msgstr "ปรับปรุง" msgid "Push After Commit:" msgstr "Push After Commit:" msgid "Auto Includes:" msgstr "Auto Includes:" msgid "Recurse into subrepositories (--subrepos)" msgstr "Recurse into subrepositories (--subrepos)" msgid "Unable to save username" msgstr "ไม่สามารถใช้ชื่อนี้ (username)" msgid "Iniparse must be installed." msgstr "ต้องติดตั้ง Iniparse" msgid "Unable to write configuration file" msgstr "เขียน configuration file ไม่ได้" msgid "Unable to save after commit push" msgstr "Unable to save after commit push" msgid "Unable to save auto include list" msgstr "Unable to save auto include list" msgid "Unable to save recurse in subrepos." msgstr "Unable to save recurse in subrepos." msgid "Invalid date format" msgstr "รูปแบบของวันที่ผิดพลาด" msgid "No username configured" msgstr "ยังไม่มี username" #, python-format msgid "%s - commit" msgstr "%s - commit" msgid "TortoiseHg Commit" msgstr "TortoiseHg Commit" msgid "Are you sure that you want to cancel the commit operation?" msgstr "แน่ใจว่าต้องการยกเลิก การ commit ?" msgid "Compress changesets up to and including" msgstr "Compress changesets up to and including" msgid "Onto destination" msgstr "Onto destination" msgid "Compress" msgstr "ย่อข้อมูล" #, python-format msgid "Compress - %s" msgstr "ย่อ- %s" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" "ก่อนย่อ,ต้อง commit, shelve to patch, or discard " "changes." msgid "You may continue the compress" msgstr "ดำเนินการย่อข้อมูล" msgid "Changes have been moved, you must now commit" msgstr "มีการเปลี่ยนแปลงเกิดขึ้น ต้องยืนยัน" msgctxt "action button" msgid "Commit" msgstr "ยืนยันการเปลี่ยน" msgid "Compress is complete, old history untouched" msgstr "การย่อข้อมูลสมบูรณ์,ไม่มีการแก้ไขประวัติ" msgid "must be specified repository" msgstr "ระบุ repository" msgid "must be specified 'type' in style" msgstr "ระบุ 'type' in style" msgid "Git Commit:" msgstr "Git Commit:" msgid "Summary:" msgstr "สรุป:" msgid "User:" msgstr "ผู้ใช้:" msgid "Date:" msgstr "วันที่:" msgid "Age:" msgstr "อายุ:" msgid "Branch:" msgstr "Branch:" msgid "Close:" msgstr "ยุติ" msgid "Tags:" msgstr "แทกส์:" msgid "Graft:" msgstr "Graft:" msgid "Transplant:" msgstr "Transplant:" msgid "Obsolete state:" msgstr "ไม่ใช้แล้ว:" msgid "Perforce:" msgstr "Perforce:" msgid "Subversion:" msgstr "Subversion:" msgid "Converted From:" msgstr "Converted From:" msgid "Original Parent:" msgstr "Original Parent:" msgid "No items to display" msgstr "ไม่มีอะไรแสดง" msgid "Use compact view" msgstr "แสดงแบบย่อ" msgid "Patch:" msgstr "Patch:" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "Displaying %(count)d of %(total)d items" msgid "Select a GUI location to edit:" msgstr "Select a GUI location to edit:" msgid "Select the toolbar or menu to change" msgstr "เลือกเปลี่ยน toolbar or menu" msgid "Tools shown on selected location" msgstr "เครื่องมือ แสดง selected location" msgid "Delete from list" msgstr "ลบจากรายการ" msgid "Add to list" msgstr "เพิ่มรายการ" msgid "Add separator" msgstr "เพิ่มเส้นแบ่ง" msgid "List of all tools" msgstr "รายการเครื่องมือทั้งหมด" msgid "New Tool ..." msgstr "เครื่องมือใหม่ ..." msgid "Edit Tool ..." msgstr "แก้ เครื่องมือ ..." msgid "Delete Tool" msgstr "ลบ เครื่องมือ" msgid "Type" msgstr "ประเภท" msgid "Name" msgstr "ชื่อ" msgid "Command" msgstr "คำสั่ง" msgid "New hook" msgstr "hook ใหม่" msgid "Edit hook" msgstr "แก้ hook" msgid "Delete hook" msgstr "ลบ hook" msgid "Replace existing hook?" msgstr "แทน hook เดิม" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" "มี hook เดิมอยู่แล้ว %s.%s.\n" "\n" "จะแทนที่ไหม?" msgid "OK" msgstr "ได้" msgid "Missing information" msgstr "ข้อมูลไม่ครบ" msgid "All items" msgstr "ทั้งหมด" msgid "Working directory" msgstr "direcory ปัจจุบัน" msgid "All revisions" msgstr "ทุกรุ่น" msgid "All contexts" msgstr "All contexts" msgid "Fixed revisions" msgstr "รุ่นที่แก้ไขแล้ว" msgid "Applied patches" msgstr "Applied patches" msgid "Applied patches or qparent" msgstr "Applied patches or qparent" msgid "" msgstr "" msgid "Configure Custom Tool" msgstr "Configure Custom Tool" msgid "Tool name" msgstr "ชื่อเครื่องมือ" msgid "The tool name. It cannot contain spaces." msgstr "ชื่อครื่องมื่อไม่ให้มีช่องว่าง" #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgid "Tool label" msgstr "ป้ายชื่อ เครื่องมือ" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgid "Tooltip" msgstr "คำแนะนำเครื่องมือ" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgid "Icon" msgstr "Icon" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgid "On repowidget, show for" msgstr "On repowidget, show for" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgid "Show Output Log" msgstr "log แสดงผล" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgid "You must set a tool name." msgstr "ต้องใส่ชื่อเครื่องมือ" msgid "The tool name cannot have any spaces in it." msgstr "ชื่อเครื่องมือต้องไม่มีช่องว่างเลย" msgid "You must set a command to run." msgstr "ต้องระบบคำสั่งก่อนเริ่มทำงาน" msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" msgid "Configure Hook" msgstr "ปรับแต่ง Hook" msgid "Hook type" msgstr "ประเภทของ Hook" msgid "Select when your command will be run" msgstr "เลือกเวลาให้คำสั่งทำงาน" msgid "The hook name. It cannot contain spaces." msgstr "ชื่อของ hoook ต้องไม่มีช่องว่าง" msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "คำสั่งกำลังจะดำเนินการ\n" msgid "You must set a valid hook type." msgstr "ระบบ ประเภทของ hook ให้ถูกต้อง" msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "ชื่อของ hook ต้องไม่มีช่องว่าง tabs หรือ '='" msgid "Console" msgstr "ระบบควบคุม" msgid "File &History / Annotate" msgstr "File &History / Annotate" msgid "Show the history of the selected file" msgstr "แสดง history ของไฟล์ที่เลือกไว้" msgid "Co&mpare File Revisions" msgstr "เปรียบเทียบ รุ่น" msgid "Compare revisions of the selected file" msgstr "เปรียบเทียบรุ่นในไฟล์" msgid "Filter Histor&y" msgstr "ระบุโดย Histor&y" msgid "Query about changesets affecting the selected files" msgstr "Query about changesets affecting the selected files" msgid "Diff &Changeset to Parent" msgstr "Diff &Changeset to Parent" msgid "Diff Changeset to Loc&al" msgstr "Diff Changeset to Loc&al" msgid "&Diff to Parent" msgstr "&Diff to Parent" msgid "Diff to &Local" msgstr "Diff to &Local" msgid "View changes to current in external diff tool" msgstr "แสดงการเปลี่ยนแปลงจากเครื่องมือ diff นอกโปรแกรม" msgid "&View at Revision" msgstr "&View at Revision" msgid "View file as it appeared at this revision" msgstr "View file as it appeared at this revision" msgid "&Save at Revision..." msgstr "&Save at Revision..." msgid "Save file as it appeared at this revision" msgstr "Save file as it appeared at this revision" msgid "Save file to" msgstr "เก็บข้อมูลไว้ที่" msgid "&Edit Local" msgstr "&Edit Local" msgid "&Open Local" msgstr "&Open Local" msgid "E&xplore Local" msgstr "E&xplore Local" msgid "Open parent folder of current file in the system file manager" msgstr "Open parent folder of current file in the system file manager" msgid "&Copy Patch" msgstr "&Copy Patch" msgid "Copy &Path" msgstr "Copy &Path" msgid "Copy full path of file(s) to the clipboard" msgstr "Copy full path of file(s) to the clipboard" msgid "&Revert to Revision..." msgstr "&Revert to Revision..." msgid "Open S&ubrepository" msgstr "Open S&ubrepository" msgid "Open the selected subrepository" msgstr "Open the selected subrepository" msgid "E&xplore Folder" msgstr "E&xplore Folder" msgid "Open the selected folder in the system file manager" msgstr "เปิด folder โดย file manager ของระบบ" msgid "Open &Terminal" msgstr "เปิด &Terminal" msgid "Open a shell terminal in the selected folder" msgstr "เปิด shell terminal ใน folder นี้" msgid "Custom Tools" msgstr "ปรับแต่งเครื่องมือ" msgid "Diff &Local" msgstr "Diff &Local" msgid "&View Missing" msgstr "&View Missing" msgid "View O&ther" msgstr "View O&ther" msgid "Add &Largefiles..." msgstr "เพิ่ม &Largefiles..." msgid "&Forget" msgstr "&Forget" msgid "&Delete Unversioned..." msgstr "&Delete Unversioned..." msgid "Confirm Delete Unversioned" msgstr "Confirm Delete Unversioned" msgid "Delete the following unversioned files?" msgstr "Delete the following unversioned files?" msgid "&Delete" msgstr "ลบ" msgid "Re&move Versioned" msgstr "Re&move Versioned" msgid "&Revert..." msgstr "&Revert..." msgid "Uncommited merge - please select a parent revision" msgstr "Uncommited merge - please select a parent revision" msgid "Revert files to local or other parent?" msgstr "Revert files to local or other parent?" msgid "&Local" msgstr "&Local" msgid "&Other" msgstr "อื่น ๆ" msgid "Confirm Revert" msgstr "Confirm Revert" msgid "Revert local file changes?" msgstr "Revert local file changes?" msgid "&Revert with backup" msgstr "&Revert with backup" msgid "&Discard changes" msgstr "ยกเลิกการเปลี่ยนแปลง" msgid "Revert the following files?" msgstr "Revert the following files?" msgid "&Revert" msgstr "&Revert" msgid "&Copy..." msgstr "คัด&ลอก..." msgid "Re&name..." msgstr "เปลี่ยนชื่อ" msgid "&Ignore..." msgstr "เมิน" msgid "Edit Re&jects" msgstr "Edit Re&jects" msgid "Manually resolve rejected patch chunks" msgstr "Manually resolve rejected patch chunks" msgid "De&tect Renames..." msgstr "De&tect Renames..." msgid "&Mark Resolved" msgstr "&Mark Resolved" msgid "&Mark Unresolved" msgstr "&Mark Unresolved" msgid "Restart Mer&ge" msgstr "Restart Mer&ge" msgid "Was renamed from" msgstr "ถูกเปลี่ยนจาก" msgid "Restart Merge &with" msgstr "Restart Merge &with" msgid "Display the file anyway" msgstr "อย่างไรก็จะแสดง file" msgid "Diff not displayed: " msgstr "ที่แตกต่าง ไม่แสดง " #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgid "File is binary" msgstr "File is binary" msgid "File may be binary (maximum line length exceeded)" msgstr "File may be binary (maximum line length exceeded)" msgid "File or diffs not displayed: " msgstr "File or diffs not displayed: " msgid " (was added)" msgstr " (ถูกเพิ่ม)" #, python-format msgid " (copied from %s)" msgstr " (copied จาก%s)" #, python-format msgid " (renamed from %s)" msgstr " (เปลี่ยนชื่อจาก%s)" msgid " (is a symlink)" msgstr " (is a symlink)" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgid " (was deleted)" msgstr " (ถูกลบ)" msgid " (was added, now missing)" msgstr " (ถูกเพิ่ม, หายไปแล้ว)" msgid " (is unversioned)" msgstr " (is unversioned)" msgid "exec mode has been set" msgstr "exec mode has been set" msgid "exec mode has been unset" msgstr "exec mode has been unset" #, python-format msgid "changeset: %s" msgstr "changeset: %s" msgid "Initial revision" msgstr "Initial revision" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgid "Subrepo created and set to initial revision." msgstr "Subrepo ถูกสร้าง และถูกทำให้เป็น initial revision." msgid "Subrepo initialized to revision:" msgstr "Subrepo initialized to revision:" msgid "Subrepo removed from repository." msgstr "Subrepo ถูกถอดออกจาก repository." msgid "Previously the subrepository was at the following revision:" msgstr "Previously the subrepository was at the following revision:" msgid "Subrepo was not changed." msgstr "Subrepo ไม่ได้มีการเปลี่ยนแปลง." msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "[WARNING] Missing subrepo. Update to this revision to clone it." msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgid "Subrepo state is:" msgstr "Subrepo สถานะคือ:" msgid "Revision has changed to:" msgstr "Revisionถูกเปลี่ยนเป็น:" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "changeset: %s (not found on subrepository)" msgid "From:" msgstr "จาก:" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgid "Subrepository not found in the working directory." msgstr "Subrepository not found in the working directory." msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgid "Not a Mercurial subrepo, not previewable" msgstr "Not a Mercurial subrepo, not previewable" #, python-format msgid "Error previewing subrepo: %s" msgstr "Error previewing subrepo: %s" msgid "Subrepo may be damaged or inaccessible." msgstr "Subrepo may be damaged or inaccessible." msgid "The subrepository is dirty." msgstr "The subrepository is dirty." msgid "File Status:" msgstr "สถานะไฟล์:" msgid "(is a changed sub-repository)" msgstr "(is a changed sub-repository)" msgid "(is an unchanged sub-repository)" msgstr "(is an unchanged sub-repository)" msgid "(is a dirty sub-repository)" msgstr "(is a dirty sub-repository)" msgid "(is a new sub-repository)" msgstr "(is a new sub-repository)" msgid "(is a removed sub-repository)" msgstr "(is a removed sub-repository)" msgid "(is a changed and dirty sub-repository)" msgstr "(is a changed and dirty sub-repository)" msgid "(is a new and dirty sub-repository)" msgstr "(is a new and dirty sub-repository)" msgid "open..." msgstr "เปิด..." #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "Hg file log viewer [%s] - %s" msgid "File History Log Columns" msgstr "File History Log Columns" msgid "Back" msgstr "ย้อนกลับ" msgid "Forward" msgstr "ข้างหน้า" msgid "Diff Selected &Changesets" msgstr "Diff Selected &Changesets" msgid "&Diff Selected File Revisions" msgstr "&Diff Selected File Revisions" msgid "Show Revision &Details" msgstr "แสดงรุ่นและรายละเอียด" msgid "Too many rows selected for menu" msgstr "เลือกแถวมากไปสำหรับเมนู" msgid "File Differences Log Columns" msgstr "File Differences Log Columns" msgid "Next diff" msgstr "Next diff" msgid "Previous diff" msgstr "Previous diff" msgid "Unicode" msgstr "Unicode" msgid "Western Europe" msgstr "Western Europe" msgid "Unified Chinese" msgstr "Unified Chinese" msgid "Traditional Chinese" msgstr "Traditional Chinese" msgid "Korean" msgstr "Korean" msgid "Japanese" msgstr "Japanese" msgid "Thai" msgstr "ไทย" msgid "Central and Eastern Europe" msgstr "Central and Eastern Europe" msgid "Cyrillic" msgstr "Cyrillic" msgid "Russian" msgstr "Russian" msgid "Ukrainian" msgstr "Ukrainian" msgid "Greek" msgstr "Greek" msgid "Turkish" msgstr "Turkish" msgid "Arabic" msgstr "Arabic" msgid "Hebrew" msgstr "Hebrew" msgid "Vietnamese" msgstr "Vietnamese" msgid "Baltic" msgstr "Baltic" msgid "Southern Europe" msgstr "Southern Europe" msgid "Nordic" msgstr "Nordic" msgid "Celtic" msgstr "Celtic" msgid "South-Eastern Europe" msgstr "South-Eastern Europe" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "$FILE_ENCODINGS" msgid "View change as unified diff output" msgstr "View change as unified diff output" msgid "View change in context of file" msgstr "View change in context of file" msgid "Annotate with revision numbers" msgstr "Annotate with revision numbers" msgid "Next Diff" msgstr "Next Diff" msgid "Previous Diff" msgstr "Diff ก่อนหน้า" msgid "Open shelve tool" msgstr "Open shelve tool" msgid "&Auto Detect" msgstr "&Auto Detect" msgid "Show changes from first parent" msgstr "Show changes from first parent" msgid "Show changes from second parent" msgstr "Show changes from second parent" msgid "E&ncoding" msgstr "E&ncoding" msgid "&Search in Current File" msgstr "ค้นไฟล์นี้" msgid "Search in All &History" msgstr "ค้นทั้งหมด ประวัติด้วย" msgid "Go to Line" msgstr "ไปที่บรรทัด" #, python-format msgid "Enter line number (1 - %d)" msgstr "ใส่เลขบรรทัด (1 - %d)" msgid "Show &Author" msgstr "แสดง &Author" msgid "Show &Date" msgstr "แสดง วันที่" msgid "Show &Revision" msgstr "แสดง รุ่น&Revision" msgid "Annotate Op&tions" msgstr "Annotate Op&tions" msgid "Search Selected Text" msgstr "ค้นในข้อความที่เลือกไว้" msgid "In Current &File" msgstr "ใน ไฟล์นี้" msgid "In &Current Revision" msgstr "In &Current Revision" msgid "In &Original Revision" msgstr "In &Original Revision" msgid "In All &History" msgstr "In All &History" msgid "Go to" msgstr "ไปที่" msgid "View File at" msgstr "แสดงไฟล์แบบ" msgid "Diff File to" msgstr "Diff File to" msgid "&Originating Revision" msgstr "&Originating Revision" msgid "&Parent Revision" msgstr "&Parent Revision" #, python-format msgid "&Parent Revision (%d)" msgstr "&Parent Revision (%d)" msgid "&Mark Excluded Changes" msgstr "&Mark Excluded Changes" msgid "(excluded from the next commit)" msgstr "(excluded from the next commit)" msgid "Interrupted graft operation found" msgstr "Interrupted graft operation found" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgid "Continue or abort interrupted graft operation?" msgstr "Continue or abort interrupted graft operation?" msgid "To graft destination" msgstr "To graft destination" msgid "Use my user name instead of graft committer user name" msgstr "Use my user name instead of graft committer user name" msgid "Use current date" msgstr "ใช้วันปัจจุบัน" msgid "Append graft info to log message" msgstr "Append graft info to log message" msgid "Graft" msgstr "Graft" msgid "Abort" msgstr "ยกเลิก" #, python-format msgid "Graft - %s" msgstr "Graft - %s" msgid "Graft changeset" msgstr "Graft changeset" #, python-format msgid "Graft changeset #%d of %d" msgstr "Graft changeset #%d of %d" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" msgid "You may continue or start the graft" msgstr "You may continue or start the graft" msgid "Graft is complete" msgstr "Graft is complete" msgid "Graft failed" msgstr "Graft failed" msgid "Graft aborted" msgstr "Graft aborted" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" "Graft generated merge conflicts that must be resolved" msgid "You may continue the graft" msgstr "You may continue the graft" msgid "Exiting with an unfinished graft is not recommended." msgstr "ไม่แนะนำให้ออกโดยที่ทำ graft ยังไม่เสร็จ." msgid "Consider aborting the graft first." msgstr "พิจารณายกเลิก graft ก่อน." msgid "&Exit" msgstr "&Exit" msgid "### regular expression search pattern ###" msgstr "### regular expression search pattern ###" msgid "Regexp:" msgstr "Regexp:" msgid "Ignore case" msgstr "Ignore case" msgid "Search" msgstr "ค้น" msgid "Working Copy" msgstr "Working Copy" msgid "All History" msgstr "ประวัติทั้งหมด" msgid "Report only the first match per file" msgstr "Report only the first match per file" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "Follow copies and renames" msgid "Includes:" msgstr "รวม:" msgid "Excludes:" msgstr "ไม่รวม:" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." #, python-format msgid "\"%s\" removed from search history" msgstr "\"%s\" removed from search history" #, python-format msgid "\"%s\" removed from path history" msgstr "\"%s\" removed from path history" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "grep: invalid match pattern: %s\n" #, python-format msgid "grep: %s\n" msgstr "grep: %s\n" #, python-format msgid "%d matches found" msgstr "%d matches found" msgid "No matches found" msgstr "ไม่พบข้อมูลที่ตรงกัน" msgid "Searching" msgstr "กำลังค้น" msgid "history" msgstr "ประวัติ" msgid "Interrupted" msgstr "ถูกขัดจังหวะ" msgid "files" msgstr "ไฟล์" #, python-format msgid "Skipping %s, unable to read" msgstr "Skipping %s, unable to read" msgid "Vi&ew File" msgstr "แสดงไฟล์" msgid "&View Changeset" msgstr "&View Changeset" msgid "Annotate &File" msgstr "Annotate &File" msgid "File" msgstr "ไฟล์" msgid "Line" msgstr "บรรทัดที่" msgid "Rev" msgstr "รุ่น" msgid "User" msgstr "ผู้ใช้" msgid "Match Text" msgstr "เทียบอักขระ" msgid "TortoiseHg Search" msgstr "ค้น TortoiseHg" #, python-format msgid "Detect Copies/Renames in %s" msgstr "Detect Copies/Renames in %s" msgid "Unrevisioned Files" msgstr "Unrevisioned Files" msgid "Refresh file list" msgstr "ปรับปรุงรายการไฟล์" #, python-format msgid "Min Similarity: %d%%" msgstr "Min Similarity: %d%%" msgid "Only consider deleted files" msgstr "เลือกเฉพาะไฟล์ที่ถูกลบ" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "Uncheck to consider all revisioned files for copy sources" msgid "Find Renames" msgstr "ค้น การเปลี่ยนชื่อ" msgid "Find copy and/or rename sources" msgstr "Find copy and/or rename sources" msgid "Candidate Matches" msgstr "Candidate Matches" msgid "Accept All Matches" msgstr "ยอมรับทั้งหมดที่เหมือนกัน" msgid "Accept Selected Matches" msgstr "ยอมรับทั้งหมดที่เหมือนกันที่เลือกไว้" msgid "Differences from Source to Dest" msgstr "Differences from Source to Dest" msgid "Search already in progress" msgstr "ได้กำลังทำการค้นหา" msgid "Cannot start a new search" msgstr "เริ่มค้นใหม่ไม่ได้" msgid "No files to find" msgstr "ไม่พบไฟล์" msgid "There are no files that may have been renamed" msgstr "There are no files that may have been renamed" msgid "Multiple sources chosen" msgstr "Multiple sources chosen" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" "%s and %s have identical contents\n" "\n" #. i18n: percent format #, python-format msgid "%d%%" msgstr "%d%%" msgid "Source" msgstr "ต้นฉบับ" msgid "Dest" msgstr "Dest" msgid "% Match" msgstr "% เหมือน" msgid "Sending Email" msgstr "กำลังส่ง Email" msgid "Email" msgstr "Email" msgid "To:" msgstr "ถึง:" msgid "Cc:" msgstr "สำเนาถึง:" msgid "In-Reply-To:" msgstr "In-Reply-To:" msgid "Message identifier to reply to, for threading" msgstr "Message identifier to reply to, for threading" msgid "Flag:" msgstr "Flag:" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgid "Send changesets as Hg patches" msgstr "Send changesets as Hg patches" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgid "Use extended (git) patch format" msgstr "Use extended (git) patch format" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgid "Plain, do not prepend Hg header" msgstr "Plain, do not prepend Hg header" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgid "Send single binary bundle, not patches" msgstr "Send single binary bundle, not patches" msgid "send patches as part of the email body" msgstr "send patches as part of the email body" msgid "body" msgstr "body" msgid "send patches as attachments" msgstr "send patches as attachments" msgid "attach" msgstr "attach" msgid "send patches as inline attachments" msgstr "send patches as inline attachments" msgid "inline" msgstr "inline" msgid "add diffstat output to messages" msgstr "add diffstat output to messages" msgid "diffstat" msgstr "diffstat" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgid "Write patch series (bundle) description" msgstr "Write patch series (bundle) description" msgid "Subject:" msgstr "Subject:" msgid "Changesets" msgstr "Changesets" msgid "Select &All" msgstr "เลือก&ทั้งหมด" msgid "Select &None" msgstr "Select &None" msgid "Edit" msgstr "แก้ไข" msgid "Preview" msgstr "แสดงตัวอย่าง" msgid "&Settings" msgstr "&ตั้งค่า" msgid "Send &Email" msgstr "ส่ง &Email" msgid "&Close" msgstr "&Close" #, python-format msgid "Ignore filter - %s" msgstr "Ignore filter - %s" msgid "Glob" msgstr "Glob" msgid "Regexp" msgstr "Regexp" msgid "Add" msgstr "เพิ่ม" msgid "Edit File" msgstr "แก้ไขไฟล์" msgid "Ignore Filter" msgstr "Ignore Filter" msgid "Untracked Files" msgstr "Untracked Files" msgid "Backspace or Del to remove row(s)" msgstr "กด Backspace หรือ Del เพื่อการลบแถว" msgid "Add ignore filter..." msgstr "Add ignore filter..." msgid "selected files" msgstr "ไฟล์ที่ถูกเลือก" msgid "Ignore " msgstr "เมิน " msgid "Invalid glob expression" msgstr "Invalid glob expression" msgid "Invalid regexp expression" msgstr "Invalid regexp expression" msgid "Unable to read repository status" msgstr "Unable to read repository status" msgid "New file created" msgstr "ไฟล์ใหม่ถูกสร้าง" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" "TortoiseHg ได้สร้างไฟล์ .hgignore ใหม่. ต้องการที่จะเพิ่มใน source code control " "repository ไหม?" msgid "Unable to write .hgignore file" msgstr "เขียนไฟล์ .hgignore ไม่ได้" msgid "Copy working directory files from skeleton" msgstr "คัดลอกไฟล์ working directory จาก skeleton" msgid "Create special files (.hgignore, ...)" msgstr "" msgid "Make repo compatible with Mercurial <1.7" msgstr "ทำ ให้ repo compatible กับ Mercurial <1.7" msgid "New Repository" msgstr "Repository ใหม่" msgid "&Create" msgstr "สร้าง" msgid "Unable to create a config file" msgstr "สร้าง config file ไม่ได้" msgid "Insufficient access rights." msgstr "ปัญหาของสิทธิในการเข้าถึง" msgid "Show Log" msgstr "แสดง Log" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgid "Add as &Largefiles" msgstr "เพิ่ม &Largefiles" msgid "Add as &Normal Files" msgstr "เพิ่ม &Normal Files" msgid "Invalid Patterns" msgstr "" msgid "Failed to process largefiles.patterns." msgstr "" msgid "Word docs (*.doc *.docx)" msgstr "" msgid "PDF docs (*.pdf)" msgstr "" msgid "Excel files (*.xls *.xlsx)" msgstr "" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "" msgid "Refresh lock information" msgstr "" msgid "Lock a file not described in .hglocks" msgstr "" msgid "Stop current operation" msgstr "หยุดการทำงานปัจจุบัน" msgid "Locked And Lockable Files:" msgstr "" msgid "Path" msgstr "Path" msgid "Locking User" msgstr "" msgid "Purpose" msgstr "" msgid "Simplelock extension not enabled" msgstr "" msgid "Please enable and configure simplelock" msgstr "" msgid "Open a (nonmergable) file you wish to be locked" msgstr "" msgid "File was not within current repository" msgstr "" #, python-format msgid "Locking %s" msgstr "" #, python-format msgid "Unlocking %s" msgstr "" msgid "Refreshing locks..." msgstr "" #, python-format msgid "Lock of %s successful" msgstr "" #, python-format msgid "Lock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s successful" msgstr "" msgid "Ready, double click to lock or unlock" msgstr "" msgid "Ready" msgstr "" msgid "You can only release your own locks" msgstr "" msgid "Find revisions matching fields of:" msgstr "Find revisions matching fields of:" msgid "Revision to Match:" msgstr "รุ่นที่ตรง:" msgid "Fields to match:" msgstr "Fields to match:" msgid "Summary (first description line)" msgstr "สรุป (รายละเอียดบรรทัดแรก)" msgid "Description" msgstr "รายละเอียด" msgid "Author" msgstr "ผู้สร้าง" msgid "Date" msgstr "วันที่" msgid "Files" msgstr "ไฟล์" msgid "Diff contents" msgstr "ข้อมูลที่แตกต่างกัน" msgid "Subrepo states" msgstr "Subrepo states" msgid "Branch" msgstr "Branch" msgid "Phase" msgstr "Phase" msgid "&Match" msgstr "&Match" #, python-format msgid "Find matches - %s" msgstr "Find matches - %s" msgid "Revisions to Match:" msgstr "Revisions to Match:" #, python-format msgid "Match any of %d revisions" msgstr "Match any of %d revisions" msgid "Unknown revision!" msgstr "Unknown revision!" msgid "Parse Error!" msgstr "Parse Error!" #, python-format msgid "Merge - %s" msgstr "ผนวก - %s" msgid "Do you want to exit?" msgstr "ออก?" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgid "Prepare to merge" msgstr "เตรียมผนวก" msgid "Verify merge targets and ensure your working directory is clean." msgstr "ตรวจที่ๆจะผนวกและให้แน่ใจว่าworking directory เรียบร้อย." msgid "Not a head revision!" msgstr "ไม่ใช่ส่วน head revision!" msgid "Merge from (other revision)" msgstr "ผนวกจาก (รุ่นอื่น)" msgid "Merge to (working directory)" msgstr "ผนวกมาที่ (working directory)" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" "working directory ได้ถูก ผนวกแล้ว. ทำต่อ or " "ยกเลิก ที่ผนวกนี้." msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" "Before merging, you must commit, shelve to patch, or discard changes." msgid "Or use:" msgstr "หรือ ใช้:" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "Force a merge with outstanding changes (-f/--force)" msgid "Discard all changes from the other revision" msgstr "" msgid "&Discard" msgstr "&Discard" msgid "Confirm Discard Changes" msgstr "ยืนยันยกเลิกการเปลี่ยนแปลง" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" "การเปลี่ยนแปลง %s และ unmerged parents ทั้งหมดจะถูกยกเลิก.\n" "\n" "แน่ใจว่าต้องการ?" msgctxt "working dir state" msgid "Clean" msgstr "Clean" msgid "Merging..." msgstr "กำลังผสมผสาน..." msgid "Automatically advance to next page when merge is complete." msgstr "ไปหน้าถัดไปหลังจากผนวกแล้ว." #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" "%d files were modified on both branches and must be resolved" msgid "" "No merge conflicts, ready to commit or review" msgstr "" "ไม่พบข้อผิดพลาดการผนวก, พร้อมสำหรับ commit or ตรวจ" msgid "Commit merge results" msgstr "Commit merge results" msgid "Commit Options" msgstr "ตัวเลือก Commit" msgid "Commit Now" msgstr "เริ่ม Commit ได้" msgid "Commit Later" msgstr "Commit ทีหลัง" msgid "Merge changeset" msgstr "Merge changeset" msgid "Syntax Highlighting" msgstr "Syntax Highlighting" msgid "Paste &Filenames" msgstr "Paste &Filenames" msgid "App&ly Format" msgstr "App&ly Format" msgid "C&onfigure Format" msgstr "C&onfigure Format" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "%s had rejected chunks, edit patched file together with rejects?" msgid "&Commit to Queue..." msgstr "&Commit to Queue..." msgid "Create &New Queue..." msgstr "สร้าง Queue ใหม่..." msgid "&Rename Active Queue..." msgstr "เปลี่ยนชื่อ Active Queue..." msgid "&Delete Queue..." msgstr "ลบ Queue..." msgid "&Purge Queue..." msgstr "&Purge Queue..." msgid "Create Patch Queue" msgstr "Create Patch Queue" msgid "New patch queue name" msgstr "New patch queue name" msgid "Create" msgstr "สร้าง" msgid "Rename Patch Queue" msgstr "เปลี่ยนชื่อ Patch Queue" #, python-format msgid "Rename patch queue '%s' to" msgstr "Rename patch queue '%s' to" msgid "Rename" msgstr "เปลี่ยนชื่อ" msgid "Delete Patch Queue" msgstr "ลบ Patch Queue" msgid "Delete reference to" msgstr "Delete reference to" msgid "Delete" msgstr "ลบ" msgid "Purge Patch Queue" msgstr "Purge Patch Queue" msgid "Remove patch directory of" msgstr "Remove patch directory of" msgid "Purge" msgstr "Purge" msgid "Rename Patch" msgstr "เปลี่ยนชื่อ Patch" #, python-format msgid "Rename patch %s to:" msgstr "เปลี่ยนชื่อ patch %s to:" msgid "no guards" msgstr "no guards" msgid "Patch Queue" msgstr "Patch Queue" msgctxt "MQ QPush" msgid "Push" msgstr "Push" msgid "Apply one patch" msgstr "Apply one patch" msgctxt "MQ QPush" msgid "Push all" msgstr "Push all" msgid "Apply all patches" msgstr "Apply all patches" msgid "Pop" msgstr "Pop" msgid "Unapply one patch" msgstr "Unapply one patch" msgid "Pop all" msgstr "Pop all" msgid "Unapply all patches" msgstr "Unapply all patches" msgid "Go &to Patch" msgstr "" msgid "&Apply Only This Patch" msgstr "" msgid "Apply only the selected patch" msgstr "" msgid "&Finish Patch" msgstr "&Finish Patch" msgid "Move applied patches into repository history" msgstr "" msgid "&Delete Patches..." msgstr "ลบ Patches..." msgid "Delete selected patches" msgstr "ลบ patchesที่เลือก" msgid "Re&name Patch..." msgstr "เปลี่ยนชื่อ Patch..." msgid "Set &Guards..." msgstr "Set &Guards..." msgid "Configure guards for selected patch" msgstr "Configure guards for selected patch" msgid "Patch Queue Actions Toolbar" msgstr "Patch Queue Actions Toolbar" msgid "Configure guards" msgstr "ปรับแต่ง guards" #, python-format msgid "Input new guards for %s:" msgstr "Input new guards for %s:" msgid "Confirm patch queue switch" msgstr "Confirm patch queue switch" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "Do you really want to activate patch queue '%s' ?" #, python-format msgid "Guards: %d/%d" msgstr "Guards: %d/%d" msgid "MQ options" msgstr "MQ options" msgid "Force push or pop (--force)" msgstr "Force push or pop (--force)" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "Tolerate non-conflicting local changes (--keep-changes)" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "Pending Perforce Changelists - %s" msgid "Submitting p4 changelist..." msgstr "Submitting p4 changelist..." msgid "Reverting p4 changelist..." msgstr "Reverting p4 changelist..." msgid "Patch Branch Toolbar" msgstr "Patch Branch Toolbar" msgid "Merge all pending dependencies" msgstr "ผนวก dependencies ที่ยังค้างอยู่ทั้งหมด" msgid "Backout current patch branch" msgstr "Backout current patch branch" msgid "Backport part of a changeset to a dependency" msgstr "Backport part of a changeset to a dependency" msgid "Start a new patch branch" msgstr "Start a new patch branch" msgid "Edit patch dependency graph" msgstr "แก้ patch dependency graph" msgid "will be closed" msgstr "จะยุติ" #, python-format msgid "needs merge of %i heads\n" msgstr "needs merge of %i heads\n" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "needs merge with %s (through %s)\n" #, python-format msgid "needs merge with %s\n" msgstr "ต้องการผนวก กับ %s\n" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "needs update of diff base to tip of %s\n" msgid "&Goto (update workdir)" msgstr "ไปที่ (update workdir)" msgid "&Merge" msgstr "ผนวก" msgid "No patch branch selected" msgstr "ไม่มี patch branch ที่ถูกเลือกไว้" msgid "No editor found" msgstr "ไม่พบ editor" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "Mercurial ไม่พบ editor. กรุณาระบุให้ Mercurial ใช้ editor ของระบบที่มีอยู่." msgid "Graph" msgstr "Graph" msgid "Status" msgstr "สถานะ" msgid "Title" msgstr "Title" msgid "Message" msgstr "ข้อความ" msgid "New Patch Branch" msgstr "Patch Branch ใหม่" msgid "Patch message:" msgstr "ข้อความ Patch :" msgid "Patch date:" msgstr "วันที่ Patch:" msgid "Patch user:" msgstr "Patch ผู้ใช้:" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "Post &Review" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "มีผิดพลาดที่ Settings - ReviewBoard server ยังไม่ได้ติดตั้ง" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "พบข้อผิดพลาด ใน Settings - ใส่ ReviewBoard username ด้วย" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" "พบข้อผิดพลาด ใน reviewboard plugin. กรุณาdownload the Mercurial reviewboard " "plugin version 3.5 หรือสูงกว่าจาก website นี้.\n" "\n" " %s" msgid "Review Board" msgstr "Review Board" msgid "Password:" msgstr "รหัสผ่าน:" msgid "Error" msgstr "Error" #, python-format msgid "Review draft posted to %s\n" msgstr "Review draft posted to %s\n" #, python-format msgid "Review published to %s\n" msgstr "Review published to %s\n" msgid "Success" msgstr "สำเร็จ" msgid "Repository ID:" msgstr "Repository ID:" msgid "Post Review" msgstr "Post Review" msgid "Review ID:" msgstr "Review ID:" msgid "Update the fields of this existing request" msgstr "Update the fields of this existing request" msgid "Update Review" msgstr "ปรับปรุง Review" msgid "Create diff with all outgoing changes" msgstr "Create diff with all outgoing changes" msgid "Create diff with all changes on this branch" msgstr "Create diff with all changes on this branch" msgid "Publish request immediately" msgstr "Publish request immediately" msgid "%p%" msgstr "%p%" msgid "Connecting to Review Board..." msgstr "กำลังเชื่อมต่อ Review Board..." msgid "Target:" msgstr "Target:" msgid "Do not modify working copy (-k/--keep)" msgstr "" #, python-format msgid "Prune - %s" msgstr "Prune - %s" msgid "&Prune" msgstr "&Prune" msgid "No unknown files found" msgstr "No unknown files found" msgid "No ignored files found" msgstr "No ignored files found" msgid "No trash files found" msgstr "No trash files found" msgid "Delete empty folders" msgstr "Delete empty folders" msgid "Preserve files beginning with .hg" msgstr "Preserve files beginning with .hg" #, python-format msgid "%s - purge" msgstr "%s - purge" msgid "Checking" msgstr "Checking" msgid "Ready to purge." msgstr "Ready to purge." #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "ลบ %d unknown file" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "ลบ %d ignored file" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "ลบ %d file ใน .hg/Trashcan" msgid "Confirm file deletions" msgstr "ยืนยัน การลบไฟล์" msgid "Are you sure you want to delete these files and/or folders?" msgstr "แน่ใจว่าจะลบ files และ/หรือ folders?" msgid "Deletion failures" msgstr "ลบไม่ได้" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "ไม่สามารถลบ %d file หรือ folder" msgid "Deleting trash folder..." msgstr "กำลังลบ trash folder..." #, python-format msgid "Deleted %d files" msgstr "ไฟล์ %d ถูกลบแล้ว" #, python-format msgid "Deleted %d files and %d folders" msgstr "%d files และ %d folders ถูกลบแล้ว" msgid "Delete Patches" msgstr "ลบ Patches" msgid "Remove patches from queue?" msgstr "ลบ patches ออกจาก queue?" msgid "Keep patch files" msgstr "เก็บ patch files ไว้" #, python-format msgid "Patch fold - %s" msgstr "Patch fold - %s" msgid "New patch message:" msgstr "ข้อความ patch ใหม่:" msgid "Patches to fold" msgstr "Patches to fold" msgid "&Undo" msgstr "&Undo" msgid "&Redo" msgstr "&Redo" msgid "Cu&t" msgstr "&ตัด" msgid "&Copy" msgstr "&Copy" msgid "&Paste" msgstr "&Paste" msgid "&Editor Options" msgstr "&Editor Options" msgid "&Wrap" msgstr "&Wrap" msgctxt "wrap mode" msgid "&None" msgstr "&None" msgid "&Word" msgstr "&Word" msgid "&Character" msgstr "&Character" msgid "White&space" msgstr "White&space" msgid "&Visible" msgstr "&Visible" msgid "&Invisible" msgstr "&Invisible" msgid "&AfterIndent" msgstr "&AfterIndent" msgid "&TAB Inserts" msgstr "&TAB Inserts" msgid "&Auto" msgstr "&Auto" msgid "&TAB" msgstr "&TAB" msgid "&Spaces" msgstr "&Spaces" msgid "EOL &Visibility" msgstr "EOL &Visibility" msgid "EOL &Mode" msgstr "EOL &Mode" msgid "&Windows" msgstr "&Windows" msgid "&Unix" msgstr "&Unix" msgid "&Mac" msgstr "&Mac" msgid "&Auto-Complete" msgstr "&Auto-Complete" msgid "### regular expression ###" msgstr "### regular expression ###" msgid "Regular expression search pattern" msgstr "Regular expression search pattern" msgid "Wrap search" msgstr "Wrap search" msgid "Prev" msgstr "Prev" msgid "Next" msgstr "Next" msgid "Unable to read file" msgstr "Unable to read file" msgid "Could not open the specified file for reading." msgstr "Could not open the specified file for reading." msgid "This appears to be a binary file." msgstr "This appears to be a binary file." msgid "An error occurred while reading the file." msgstr "An error occurred while reading the file." msgid "Text Translation Failure" msgstr "การแปลไม่สำเร็จ" msgid "Could not translate the file content from native encoding." msgstr "ไม่สามารถแปลไฟล์จาก native encoding." msgid "Several characters would be lost." msgstr "Several characters would be lost." msgid "Unable to write file" msgstr "เขียนไฟล์ไม่ได้" msgid "Could not translate the file content to native encoding." msgstr "แปลไฟล์เป็น native encoding ไม่ได้." msgid "Could not open the specified file for writing." msgstr "เปิดไฟล์เพื่อเขียนไม่ได้" msgid "An error occurred while writing the file." msgstr "เกิดข้อผิดพลาดขณะเขียนไฟล์" msgid "Try refreshing your repository." msgstr "พยายาม refreshing repository." #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
                                                                                          Please edit your config" msgstr "" "Error string \"%(arg0)s\" at %(arg1)s
                                                                                          Please edit your config" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
                                                                                          Please fix your config" msgstr "" "Configuration Error: \"%(arg0)s\",
                                                                                          Please
                                                                                          fix your config" #, python-format msgid "Operation aborted:

                                                                                          %(arg0)s." msgstr "Operation ถูกยกเลิก:

                                                                                          %(arg0)s." msgid "Repository is locked" msgstr "Repository ถูก locked" msgid "hint:" msgstr "hint:" msgid "Repository Error" msgstr "ผิดพลาด Repository" msgid "No visual editor configured" msgstr "ไม่พบการปรับแต่ง visual editor" msgid "Please configure a visual editor." msgstr "กรุณาปรับแต่ง visual editor." msgid "Editor launch failure" msgstr "ไม่สามารถใช้ Editor" msgid "Failed to open path in terminal" msgstr "ไม่สามารถเเปิด path ใน terminal" #, python-format msgid "\"%s\" is not a valid directory" msgstr "\"%s\" เป็น directory ที่ไม่ถูกต้อง" #, python-format msgid "Invalid configuration: %s" msgstr "มีผิดพลาดใน configuration: %s" msgid "Unable to start the following command:" msgstr "คำสั่งนี้ไม่สามารถเริ่มงานได้:" msgid "No shell configured" msgstr "ไม่ได้ ปรับแต่ง shell" msgid "A terminal shell must be configured" msgstr "ต้องปรับแต่ง terminal shell" msgid "Please enter a username" msgstr "กรุณาใส่ username" msgid "You must identify yourself to Mercurial" msgstr "ต้องระบุตัวตน เพื่อใช้ Mercurial" msgid "Unable to translate input to local encoding." msgstr "ไม่สามารถแปล input ไปยัง local encoding." msgid "Checkmark files to add" msgstr "Checkmark ไฟล์เพื่อการเพิ่ม" msgid "Checkmark files to forget" msgstr "Checkmark ไฟล์เพื่อให้ลืม" msgid "Forget" msgstr "Forget" msgid "Checkmark files to revert" msgstr "Checkmark ไฟล์ เพื่อ revert" msgid "Revert" msgstr "Revert" msgid "Checkmark files to remove" msgstr "Checkmark ไฟล์เพื่อ ลบออก" msgid "Remove" msgstr "Remove" #, python-format msgid "%s - hg %s" msgstr "%s - hg %s" msgid "Do not save backup files (*.orig)" msgstr "ไม่ต้องเก็บ ไฟล์สำรอง (*.orig)" msgid "Force removal of modified files (--force)" msgstr "Force removal of modified files (--force)" msgid "Add &Largefiles" msgstr "เพิ่ม &Largefiles" msgid "No files selected" msgstr "ไม่มีแฟ้มถูกเลือก" msgid "No operation to perform" msgstr "No operation to perform" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgid "Remove &Unmodified Files" msgstr "Remove &Unmodified Files" msgid "Remove &All Selected Files" msgstr "Remove &All Selected Files" msgid "Rebase changeset and descendants" msgstr "Rebase changeset and descendants" msgid "To rebase destination" msgstr "To rebase destination" msgid "Swap source and destination" msgstr "สลับ source and destination" msgid "Keep original changesets (--keep)" msgstr "Keep original changesets (--keep)" msgid "Keep original branch names (--keepbranches)" msgstr "Keep original branch names (--keepbranches)" msgid "Collapse the rebased changesets (--collapse)" msgstr "Collapse the rebased changesets (--collapse)" msgid "Rebase entire source branch (-b/--base)" msgstr "Rebase entire source branch (-b/--base)" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "Rebase unpublished onto Subversion head (override source, destination)" msgid "Rebase" msgstr "Rebase" #, python-format msgid "Rebase - %s" msgstr "Rebase - %s" msgid "" "Before rebase, you must
                                                                                          commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the rebase" msgstr "ดำเนินการ rebase ต่อ" msgid "Rebase is complete" msgstr "Rebase สำเร็จ" msgid "Rebase failed" msgstr "Rebase ไม่สำเร็จ" msgid "Rebase aborted" msgstr "Rebase ถูกยกเลิก" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" "Rebase generated merge conflicts that must be resolved" msgid "Exiting with an unfinished rebase is not recommended." msgstr "ไม่แนะนำให้ยกเลิก เมื่อ rebase ยังไม่เสร็จ" msgid "Consider aborting the rebase first." msgstr "ทบทวนการยกเลิก rebase ก่อน." #, python-format msgid "Merge rejected patch chunks into %s" msgstr "Merge rejected patch chunks into %s" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "Mark this chunk as resolved, goto next unresolved" msgid "Mark this chunk as unresolved" msgstr "Mark this chunk as unresolved" msgid "Reload File" msgstr "Reload File" msgid "Are you sure you want to reload this file?" msgstr "แน่ใจว่าต้องการ Reload ไฟล์นี้?" msgid "All unsaved changes will be lost." msgstr "ที่ไม่ได้เก็บไว้จะหาย" msgid "Warning" msgstr "คำเตือน" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgid "Copy source -> destination" msgstr "Copy source -> destination" msgid "Copy Error" msgstr "Copy ผิดพลาด" msgid "Rename Error" msgstr "เปลี่ยนชื่อผิดพลาด" msgid "Select Source File" msgstr "เลือก Source ไฟล์" msgid "Select Source Folder" msgstr "เลือก Source Folder" msgid "Source does not exist." msgstr "Source ไม่มี." msgid "The source must be within the repository tree." msgstr "The source must be within the repository tree." msgid "The destination must be within the repository tree." msgstr "The destination must be within the repository tree." msgid "Destination file already exists." msgstr "Destination file มีอยู่แล้ว." msgid "Are you sure you want to overwrite it ?" msgstr "แน่ใจที่จะเขียนทับ?" #, python-format msgid "Copy - %s" msgstr "Copy - %s" #, python-format msgid "Rename - %s" msgstr "เปลี่ยนชื่อ - %s" msgid "Show all" msgstr "แสดงทั้งหมด" msgid "### revision set query ###" msgstr "### revision set query ###" msgid "Clear current query and query text" msgstr "ล้าง query นี้และ query text" msgid "Trigger revision set query" msgstr "Trigger revision set query" msgid "Open advanced query editor" msgstr "เปิด advanced query editor" msgid "Delete selected query from history" msgstr "ลบ query ที่เลือกไว้จาก history" msgid "filter" msgstr "filter" msgid "Toggle filtering of non-matched changesets" msgstr "Toggle filtering of non-matched changesets" msgid "Show/Hide hidden changesets" msgstr "แสดง/ซ่อน hidden changesets" msgid "Toggle graft relations visibility" msgstr "สลับ graft relations visibility" msgid "Keyword Search" msgstr "ค้น Keyword" msgid "Revision Set" msgstr "Revision Set" msgid "(unsaved)" msgstr "" msgid "Display graph the named branch only" msgstr "แสดงแค่ graph the named branch" msgid "Display only active branches" msgstr "แสดงแค่ active branches" msgid "Display closed branches" msgstr "แสดง closed branches" msgid "Include all ancestors" msgstr "Include all ancestors" msgctxt "column header" msgid "Graph" msgstr "Graph" msgctxt "column header" msgid "Rev" msgstr "Rev" msgctxt "column header" msgid "Branch" msgstr "Branch" msgctxt "column header" msgid "Description" msgstr "รายละเอียด" msgctxt "column header" msgid "Author" msgstr "Author" msgctxt "column header" msgid "Tags" msgstr "แทกส์" msgctxt "column header" msgid "Latest tags" msgstr "แทกส์ ล่าสุด" msgctxt "column header" msgid "Node" msgstr "Node" msgctxt "column header" msgid "Git Commit" msgstr "" msgctxt "column header" msgid "Age" msgstr "อายุ" msgctxt "column header" msgid "Local Time" msgstr "เวลาท้องถิ่น" msgctxt "column header" msgid "UTC Time" msgstr "UTC Time" msgctxt "column header" msgid "Changes" msgstr "การเปลี่ยนแปลง" msgctxt "column header" msgid "Converted From" msgstr "Converted From" msgctxt "column header" msgid "Phase" msgstr "Phase" msgctxt "column header" msgid "Filename" msgstr "ชื่อไฟล์" msgid "Searching..." msgstr "กำลังค้น..." #, python-format msgid "filling (%d)" msgstr "filling (%d)" msgid "Mercurial User" msgstr "ผู้ใช้ Mercurial" msgid "Repository Registry" msgstr "Repository Registry" msgid "Show &Paths" msgstr "Show &Paths" msgid "Show S&hort Paths" msgstr "Show S&hort Paths" msgid "&Scan Repositories at Startup" msgstr "&Scan Repositories at Startup" msgid "Scan &Remote Repositories" msgstr "Scan &Remote Repositories" msgid "&Refresh Repository List" msgstr "&Refresh Repository List" msgid "Refresh the Repository Registry list" msgstr "Refresh the Repository Registry list" msgid "&Open" msgstr "&Open" msgid "Open the repository in a new tab" msgstr "เปิด repository ใน tab ใหม่" msgid "&Open All" msgstr "&Open All" msgid "Open all repositories in new tabs" msgstr "เปิด repositorie ทั้งหมดใน tab ใหม่" msgid "New &Group" msgstr "New &Group" msgid "Create a new group" msgstr "Create a new group" msgid "Rename the entry" msgstr "Rename the entry" msgid "Settin&gs" msgstr "Settin&gs" msgid "View the repository's settings" msgstr "View the repository's settings" msgid "Re&move from Registry" msgstr "Re&move from Registry" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgid "Clon&e..." msgstr "Clon&e..." msgid "Clone Repository" msgstr "Clone Repository" msgid "E&xplore" msgstr "E&xplore" msgid "Open the repository in a file browser" msgstr "Open the repository in a file browser" msgid "&Terminal" msgstr "&Terminal" msgid "Open a shell terminal in the repository root" msgstr "เปิด shell terminal ใน repository root" msgid "&Add Repository..." msgstr "เพิ่ม Repository..." msgid "Add a repository to this group" msgstr "เพิ่ม repository ใน group นี้" msgid "A&dd Subrepository..." msgstr "A&dd Subrepository..." msgid "Convert an existing repository into a subrepository" msgstr "Convert an existing repository into a subrepository" msgid "Remo&ve Subrepository..." msgstr "Remo&ve Subrepository..." msgid "Remove this subrepository from the current revision" msgstr "ลบ subrepository นี้ จาก revision ปัจจุบัน" msgid "Copy the root path of the repository to the clipboard" msgstr "Copy the root path of the repository to the clipboard" msgid "Sort by &Name" msgstr "จัดเรียง ตาม &ชื่อ" msgid "Sort the group by short name" msgstr "จัดเรียง group ตาม short name" msgid "Sort by &Path" msgstr "จัดเรียงตาม &Path" msgid "Sort the group by full path" msgstr "จัดเรียง group โดย full path" msgid "&Sort by .hgsub" msgstr "&Sort by .hgsub" msgid "Order the subrepos as in .hgsub" msgstr "Order the subrepos as in .hgsub" msgid "Select repository directory to add" msgstr "เลือก repository directory เพื่อเพิ่ม" msgid "Select an existing repository to add as a subrepo" msgstr "เลื่อก repository นี้เพื่อ เพิ่มเป็น subrepo" msgid "Cannot add subrepository" msgstr "เพิ่ม subrepository ไม่ได้" #, python-format msgid "%s is not a valid repository" msgstr "%s เป็น repository ที่ไม่ถูกต้อง" #, python-format msgid "\"%s\" is not a folder" msgstr "\"%s\" ไม่ใช่ folder" msgid "A repository cannot be added as a subrepo of itself" msgstr "A repository cannot be added as a subrepo of itself" #, python-format msgid "" "The selected folder:

                                                                                          %s

                                                                                          is not inside the target repository." "

                                                                                          This may be allowed but is greatly discouraged.
                                                                                          If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" "The selected folder:

                                                                                          %s

                                                                                          is not inside the target repository." "

                                                                                          This may be allowed but is greatly discouraged.
                                                                                          If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgid "Cannot open repository" msgstr "เปิด repository ไม่ได้" #, python-format msgid "The selected repository:

                                                                                          %s

                                                                                          cannot be open!" msgstr "repository นี้:

                                                                                          %s

                                                                                          เปิดไม่ได้!" msgid "Subrepository already exists" msgstr "Subrepository มีอยู่แล้ว" #, python-format msgid "" "The selected repository:

                                                                                          %s

                                                                                          is already a subrepository of:" "

                                                                                          %s

                                                                                          as: \"%s\"" msgstr "" "The selected repository:

                                                                                          %s

                                                                                          is already a subrepository of:" "

                                                                                          %s

                                                                                          as: \"%s\"" msgid "Failed to add subrepository" msgstr "เพิ่ม subrepository ไม่สำเร็จ" #, python-format msgid "Cannot open the .hgsub file in:

                                                                                          %s" msgstr "เปิด .hgsub ใน:

                                                                                          %s ไม่ได้" msgid "Failed to add repository" msgstr "เพิ่ม repository ไม่สำเร็จ" #, python-format msgid "The .hgsub file already contains the line:

                                                                                          %s" msgstr ".hgsub มี:

                                                                                          %s บรรทัด อยู่แล้ว" msgid "Subrepo added to .hgsub file" msgstr "Subrepo ถูกเพิ่มในไฟล์ o .hgsub" #, python-format msgid "" "The selected subrepo:

                                                                                          %s

                                                                                          has been added to the .hgsub " "file of the repository:

                                                                                          %s

                                                                                          Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" "The selected subrepo:

                                                                                          %s

                                                                                          has been added to the .hgsub " "file of the repository:

                                                                                          %s

                                                                                          Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." #, python-format msgid "Cannot update the .hgsub file in:

                                                                                          %s" msgstr "ไม่สามารถปรับปรุงไฟล์ .hgsub ใน:

                                                                                          %s" msgid "Could not open .hgsub file" msgstr "เปิดไฟล์ .hgsub ไมได้" msgid "Cannot read the .hgsub file.

                                                                                          Subrepository removal failed." msgstr "อ่านไฟล์ .hgsub ไม่ได้.

                                                                                          เอา Subrepository ออกไม่สำเร็จ." msgid "Subrepository not found" msgstr "ไม่พบ Subrepository" msgid "" "The selected subrepository was not found on the .hgsub file.

                                                                                          Perhaps it " "has already been removed?" msgstr "" "ไฟล์ subrepository ที่ถูกเลือก ไม่พบใน ไฟล์.hgsub.

                                                                                          อาจเป็นเพราะถูกเอาออกไปแล้ว?" msgid "&Yes" msgstr "&Yes" msgid "&No" msgstr "&No" msgid "Remove the selected repository?" msgstr "เอา repository ที่ถูกเลือกออก?" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" "แน่ใจว่าต้องการเอา repository \"%s\" ออก จาก parent repository \"" "%s\"" msgid "Subrepository removed from .hgsub" msgstr "Subrepository ถูกลบออกจาก .hgsub แล้ว" msgid "" "The selected subrepository has been removed from the .hgsub file.

                                                                                          Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" "The selected subrepository has been removed from the .hgsub file.

                                                                                          Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgid "Could not update .hgsub file" msgstr "ไม่สามารถ update ไฟล์ .hgsub" msgid "Cannot update the .hgsub file.

                                                                                          Subrepository removal failed." msgstr "ไม่สามารถ update ไฟล์ .hgsub.

                                                                                          การถอน Subrepository ออก ไม่สำเร็จ." #, python-format msgid "Unsupported repository type (%s)" msgstr "Unsupported repository type (%s)" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "Cannot open non Mercurial repositories or subrepositories" msgid "New Group" msgstr "New Group" msgid "Confirm Delete" msgstr "ยืนยันการลบ" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "Delete Group '%s' and all its entries?" msgid "Could not get subrepository list" msgstr "ไม่ได้รับ subrepository list" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

                                                                                          %s" msgstr "ไม่ได้รับ subrepository list จาก repository ใน:

                                                                                          %s" msgid "Could not open some subrepositories" msgstr "ไม่สามารถเปิด subrepositories" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

                                                                                          %s

                                                                                          The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

                                                                                          %s" msgstr "" "It was not possible to fully load the subrepository list for the repository " "in:

                                                                                          %s

                                                                                          The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

                                                                                          %s" msgid "Updating repository registry" msgstr "กำลังปรับปรุง repository registry" #, python-format msgid "Loading repository %s" msgstr "Loading repository %s" msgid "Repository Registry updated" msgstr "Repository Registry ถูกปรับปรุงแล้ว" msgid "Close tab" msgstr "Close tab" msgid "Close other tabs" msgstr "Close other tabs" msgid "Undo close tab" msgstr "Undo close tab" msgid "Reopen last closed tab" msgstr "Reopen last closed tab" msgid "Undo close other tabs" msgstr "Undo close other tabs" msgid "Reopen last closed tab group" msgstr "Reopen last closed tab group" msgid "Failed to open repository" msgstr "เปิด repository ไม่สำเร็จ" msgid "&Sort" msgstr "&Sort" #, python-format msgid "Local Repository %s" msgstr "Local Repository %s" #, python-format msgid "" "An exception happened while loading the subrepos of:

                                                                                          \"%s\"

                                                                                          " msgstr "" "An exception happened while loading the subrepos of:

                                                                                          \"%s\"

                                                                                          " #, python-format msgid "The exception error message was:

                                                                                          %s

                                                                                          " msgstr "The exception error message was:

                                                                                          %s

                                                                                          " msgid "Click OK to continue or Abort to exit." msgstr "Click OK to continue or Abort to exit." msgid "Error loading subrepos" msgstr "Error loading subrepos" msgid "Unable to update repository name" msgstr "ไม่สามารถปรับปรุง repository name" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "เิดผิดพลาดขณะปรับปรุงไฟล์ repository hgrc (%s)" msgid "default" msgstr "default" msgid "C&hoose Log Columns..." msgstr "C&hoose Log Columns..." msgid "&Resize Columns" msgstr "&Resize Columns" #, python-format msgid "Goto ancestor of %s and %s" msgstr "Goto ancestor of %s and %s" #, python-format msgid "Can't find revision '%s'" msgstr "ไม่พบ revision '%s'" msgid "Drag to change order" msgstr "Drag to change order" msgid "Workbench Log Columns" msgstr "Workbench Log Columns" msgctxt "tab tooltip" msgid "Revision details" msgstr "รายละเอียด Revision" msgctxt "tab tooltip" msgid "Commit" msgstr "Commit" msgctxt "tab tooltip" msgid "Search" msgstr "ค้น" msgctxt "tab tooltip" msgid "Console log" msgstr "Console log" msgctxt "tab tooltip" msgid "Synchronize" msgstr "Synchronize" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "Patch Branch" #, python-format msgid "%s " msgstr "%s " #, python-format msgid "Found %d incoming changesets" msgstr "พบ %d incoming changesets" msgid "Pull" msgstr "Pull" msgid "Pull incoming changesets into your repository" msgstr "Pull incoming changesets into your repository" msgid "Reject incoming changesets" msgstr "Reject incoming changesets" #, python-format msgid "Push current branch (%s)" msgstr "Push current branch (%s)" #, python-format msgid "Push up to current revision (#%d)" msgstr "Push up to current revision (#%d)" #, python-format msgid "Push up to revision #%d" msgstr "Push up to revision #%d" msgid "Push all" msgstr "Push all" msgid "no outgoing changesets" msgstr "no outgoing changesets" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "no outgoing changesets in current branch (%s) / %d in total" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "no outgoing changesets up to current revision (#%d) / %d in total" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "no outgoing changesets up to revision #%d / %d in total" #, python-format msgid "%d outgoing changesets" msgstr "%d outgoing changesets" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "%d outgoing changesets in current branch (%s) / %d in total" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "%d outgoing changesets up to current revision (#%d) / %d in total" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "%d outgoing changesets up to revision #%d / %d in total" msgid "Nothing to push" msgstr "Nothing to push" msgid "No revision found" msgstr "" #, python-format msgid "%s - verify repository" msgstr "%s - verify repository" #, python-format msgid "%s - recover repository" msgstr "%s - recover repository" msgid "No transaction available" msgstr "No transaction available" msgid "There is no rollback transaction available" msgstr "ไม่เหลือ rollback transaction" msgid "Undo last commit?" msgstr "ยกเลิก commit ก่อนหน้านี้?" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "Undo most recent commit (%d), preserving file changes?" msgid "Undo last transaction?" msgstr "ยกเลิก transaction ล่าสุด?" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "Rollback to revision %d (undo %s)?" msgid "Unable to determine working copy revision\n" msgstr "Unable to determine working copy revision\n" msgid "Remove current working revision?" msgstr "ลบ revision ปัจจุบัน?" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgid "Tab cannot exit" msgstr "Tab cannot exit" msgid "Pus&h" msgstr "Pus&h" msgid "Push to &Here" msgstr "Push to &Here" msgid "Push Selected &Branch" msgstr "Push Selected &Branch" msgid "Push &All" msgstr "Push &All" msgid "&Update..." msgstr "&Update..." msgid "Bro&wse at Revision" msgstr "Bro&wse at Revision" msgid "&Merge with Local..." msgstr "&Merge with Local..." msgid "&Tag..." msgstr "&Tag..." msgid "Boo&kmark..." msgstr "Boo&kmark..." msgid "Top&ic..." msgstr "" msgid "Sig&n..." msgstr "Sig&n..." msgid "&Backout..." msgstr "&Backout..." msgid "Revert &All Files..." msgstr "" msgid "Copy &Hash" msgstr "Copy &Hash" msgid "E&xport" msgstr "E&xport" msgid "E&xport Patch..." msgstr "E&xport Patch..." msgid "&Email Patch..." msgstr "&Email Patch..." msgid "&Archive..." msgstr "&Archive..." msgid "&Bundle Rev and Descendants..." msgstr "&Bundle Rev and Descendants..." msgid "Change &Phase to" msgstr "Change &Phase to" msgid "&Graft to Local..." msgstr "&Graft to Local..." msgid "Modi&fy History" msgstr "Modi&fy History" msgid "&Unapply Patch" msgstr "&Unapply Patch" msgid "Import to &MQ" msgstr "Import to &MQ" msgid "MQ &Options" msgstr "MQ &Options" msgid "&Rebase..." msgstr "&Rebase..." msgid "&Prune..." msgstr "&Prune..." msgid "&Strip..." msgstr "&Strip..." msgid "Post to Re&view Board..." msgstr "Post to Re&view Board..." msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "&Remote Update..." msgid "Write diff file" msgstr "Write diff file" msgid "Unable to write diff file" msgstr "Unable to write diff file" msgid "Unable to compress history" msgstr "จัดเก็บ history แบบย่อไม่ได้" msgid "Selected changeset pair not related" msgstr "Selected changeset pair not related" msgid "Visual Diff..." msgstr "Visual Diff..." msgid "Export Diff..." msgstr "Export Diff..." msgid "Export Selected..." msgstr "Export Selected..." msgid "Email Selected..." msgstr "Email ที่เลือก..." msgid "Copy Selected as Patch" msgstr "Copy Selected as Patch" msgid "Archive DAG Range..." msgstr "" msgid "Export DAG Range..." msgstr "Export DAG Range..." msgid "Email DAG Range..." msgstr "Email DAG Range..." msgid "Bundle DAG Range..." msgstr "Bundle DAG Range..." msgid "Bisect - Good, Bad..." msgstr "Bisect - Good, Bad..." msgid "Bisect - Bad, Good..." msgstr "Bisect - Bad, Good..." msgid "Compress History..." msgstr "History ย่อ..." msgid "Rebase..." msgstr "Rebase..." msgid "Goto common ancestor" msgstr "ไปที่ common ancestor" msgid "Graft Selected to local..." msgstr "Graft Selected to local..." msgid "&Prune Selected..." msgstr "&Prune Selected..." msgid "Post Selected to Review Board..." msgstr "Post Selected to Review Board..." msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "Apply patch" msgid "Apply onto original parent" msgstr "Apply onto original parent" msgid "Apply only this patch" msgstr "Apply only this patch" msgid "Fold patches..." msgstr "Fold patches..." msgid "Delete patches..." msgstr "ลบ patches..." msgid "Rename patch..." msgstr "เปลี่ยนชื่อ patch..." msgid "Pull to here..." msgstr "Pull มา ที่นี่..." msgid "Visual diff..." msgstr "Visual diff..." msgid "Export patch" msgstr "Export patch" msgid "Patch Files (*.patch)" msgstr "Patch Files (*.patch)" msgid "Cannot export revision" msgstr "Export revision ไม่ได้" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" "ไม่สามารถ export revision %s เข้าไปใน ไฟล์ named:\n" "\n" "%s\n" msgid "There is already an existing folder with that same name." msgstr "There is already an existing folder with that same name." msgid "Replace" msgstr "Replace" msgid "Append" msgstr "Append" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgid "What do you want to do?\n" msgstr "จะทำอะไรเอ่ย?\n" msgid "Replace the existing patch files.\n" msgstr "แทนที่ patch files นี้.\n" msgid "Append the changes to the existing patch files.\n" msgstr "Append the changes to the existing patch files.\n" msgid "Abort the export operation.\n" msgstr "ยกเลิกการ export .\n" msgid "Patch files already exist" msgstr "Patch files มีอยู่แล้ว" msgid "Patch exported" msgstr "Patch exported" #, python-format msgid "" "Revision #%d (%s) was exported to:

                                                                                          %s%s%s" msgstr "" "Revision #%d (%s) was exported to:

                                                                                          %s%s%s" msgid "Patches exported" msgstr "Patches exported" #, python-format msgid "%d patches were exported to:

                                                                                          %s" msgstr "%d patches were exported to:

                                                                                          %s" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

                                                                                          Are you sure you want to use revert?

                                                                                          (use " "update to checkout another revision)" msgstr "" "Reverting all files will discard changes and leave affected files in a " "modified state.

                                                                                          Are you sure you want to use revert?

                                                                                          (use " "update to checkout another revision)" msgid "Filter b&y" msgstr "Filter b&y" msgid "&Ancestors and Descendants" msgstr "" msgid "A&uthor" msgstr "A&uthor" msgid "&Branch" msgstr "&Branch" msgid "&More Options..." msgstr "&More Options..." msgid "Unable to merge" msgstr "merge ไม่ได้" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "You cannot merge a revision with itself" msgid "Unable to backout" msgstr "backout ไม่ได้" msgid "Write bundle" msgstr "Write bundle" msgid "Backwards phase change requested" msgstr "Backwards phase change requested" msgid "Do you really want to make this revision secret?" msgstr "Do you really want to make this revision secret?" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgid "&Make secret" msgstr "&Make secret" msgid "&Cancel" msgstr "&Cancel" msgid "Do you really want to force a backwards phase transition?" msgstr "Do you really want to force a backwards phase transition?" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgid "&Force" msgstr "&Force" msgid "Cannot import selected revision" msgstr "ไม่สามารถ import revision ที่ถูกเลือก" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" "ไม่สามารถ imported revision (rev #%d) ที่ถูกเลือกนี้ เพราะ it is not a descendant " "of qparent (rev #%d)" msgid "Invalid command" msgstr "คำสั่งไม่ถูกต้อง" msgid "The selected command is empty" msgstr "คำสั่งที่ถูกเลือกไม่มี" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" "The following error message was returned:\n" "\n" "%s" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" "\n" "\n" "กรุณาตรวจความถูกต้องคำสั่ง \"thg\"." msgid "Failed to execute custom TortoiseHg command" msgstr "Execute คำสั่ง(custom) TortoiseHg ไม่สำเร็จ" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "คำสั่ง \"%s\" ไม่สำเร็จ (code %d)." msgid "Failed to execute custom command" msgstr "Execute คำสั่ง(custom) ไม่สำเร็จ" #, python-format msgid "The command \"%s\" could not be executed." msgstr "ไม่สามารถดำเนิน การคำสั่ง \"%s\" ได้." #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgid "&Edit Toolbar" msgstr "&Edit Toolbar" msgid "&Refresh" msgstr "&Refresh" msgid "&Filter Toolbar" msgstr "&Filter Toolbar" #, python-format msgid "TortoiseHg: %s" msgstr "" msgid "S&tatus Bar" msgstr "" #, python-format msgid "Resolve Conflicts - %s" msgstr "Resolve Conflicts - %s" msgid "Local revision information" msgstr "Local revision information" msgid "Other revision information" msgstr "ข้อมูล revision อื่นๆ" msgid "Unresolved conflicts" msgstr "Unresolved conflicts" msgid "Mercurial Re&solve" msgstr "Mercurial Re&solve" msgid "Attempt automatic (trivial) merge" msgstr "Attempt automatic (trivial) merge" msgid "Tool &Resolve" msgstr "Tool &Resolve" msgid "Merge using selected merge tool" msgstr "Merge using selected merge tool" msgid "&Take Local" msgstr "&Take Local" msgid "Accept the local file version (yours)" msgstr "Accept the local file version (yours)" msgid "Take &Other" msgstr "Take &Other" msgid "Accept the other file version (theirs)" msgstr "Accept the other file version (theirs)" msgid "&Mark as Resolved" msgstr "&Mark as Resolved" msgid "Mark this file as resolved" msgstr "Mark this file as resolved" msgid "Diff &Local to Ancestor" msgstr "Diff &Local to Ancestor" msgid "&Diff Other to Ancestor" msgstr "&Diff Other to Ancestor" msgid "Resolved conflicts" msgstr "Resolved conflicts" msgid "&Edit File" msgstr "&Edit File" msgid "Edit resolved file" msgstr "Edit resolved file" msgid "3-&Way Diff" msgstr "3-&Way Diff" msgid "Visual three-way diff" msgstr "Visual three-way diff" msgid "Visual diff between resolved file and first parent" msgstr "Visual diff between resolved file and first parent" msgid "&Diff to Other" msgstr "&Diff to Other" msgid "Visual diff between resolved file and second parent" msgstr "Visual diff between resolved file and second parent" msgid "Mark as &Unresolved" msgstr "Mark as &Unresolved" msgid "Mark this file as unresolved" msgstr "Mark this file as unresolved" msgid "Detected merge/diff tools:" msgstr "Detected merge/diff tools:" msgid "Command output" msgstr "Command output" msgid "Unable to show subrepository files" msgstr "Unable to show subrepository files" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgid "There are merge conflicts to be resolved" msgstr "There are merge conflicts to be resolved" msgid "All conflicts are resolved." msgstr "All conflicts are resolved." msgid "There are no conflicting file merges." msgstr "There are no conflicting file merges." msgid "Exit without finishing resolve?" msgstr "Exit without finishing resolve?" msgid "Unresolved conflicts remain. Are you sure?" msgstr "Unresolved conflicts remain. Are you sure?" msgid "E&xit" msgstr "E&xit" msgid "Ext" msgstr "Ext" msgid "Repository" msgstr "Repository" msgid "" msgstr "" msgid "File List Toolbar" msgstr "File List Toolbar" msgid "Ma&nifest Mode" msgstr "Ma&nifest Mode" msgid "Show all version-controlled files in tree view" msgstr "Show all version-controlled files in tree view" msgid "&Flat List" msgstr "&Flat List" msgid "### filter text ###" msgstr "### filter text ###" msgid "Changed by &This Commit" msgstr "Changed by &This Commit" msgid "Show files changed by this commit" msgstr "Show files changed by this commit" msgid "Compare to &1st Parent" msgstr "Compare to &1st Parent" msgid "Compare to &2nd Parent" msgstr "Compare to &2nd Parent" msgid "Toggle parent to be used as the base revision" msgstr "Toggle parent to be used as the base revision" msgid "List Optio&ns" msgstr "List Optio&ns" #, python-format msgid "%s - Revision Details (%s)" msgstr "%s - Revision Details (%s)" #, python-format msgid "Revert - %s" msgstr "Revert - %s" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "Revert %s to its contents at the following revision?" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "Revert %d files to their contents at the following revision?" msgid "Revert all files to this revision" msgstr "Revert all files to this revision" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "revision %d's first parent (i.e. revision %d)" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "revision %d's second parent (i.e. revision %d)" msgid "null revision (i.e. remove file(s))" msgstr "null revision (i.e. remove file(s))" msgid "Changeset:" msgstr "Changeset:" msgid "Child:" msgstr "Child:" msgid "Predecessors:" msgstr "" msgid "Successors:" msgstr "Successors:" msgid "Head is closed!" msgstr "Head is closed!" msgid "Changesets where username contains string." msgstr "Changesets where username contains string." msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" "Search commit message, user name, and names of changed files for string." msgid "Like \"keyword(string)\" but accepts a regex." msgstr "Like \"keyword(string)\" but accepts a regex." msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" "Changesets not found in the specified destination repository, or the default " "push location." msgid "The named bookmark or all bookmarks." msgstr "The named bookmark or all bookmarks." msgid "The named tag or all tags." msgstr "The named tag or all tags." msgid "Changeset is tagged." msgstr "Changeset is tagged." msgid "Changeset is a named branch head." msgstr "Changeset is a named branch head." msgid "Changeset is a merge changeset." msgstr "Changeset is a merge changeset." msgid "Changeset is closed." msgstr "Changeset is closed." msgid "" "Changesets within the interval, see help dates" msgstr "" msgid "Greatest common ancestor of the two changesets." msgstr "Greatest common ancestor of the two changesets." msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" msgid "Changesets which modify files matched by pattern." msgstr "Changesets which modify files matched by pattern." msgid "Changesets which add files matched by pattern." msgstr "Changesets which add files matched by pattern." msgid "Changesets which remove files matched by pattern." msgstr "Changesets which remove files matched by pattern." msgid "Changesets containing files matched by pattern." msgstr "Changesets containing files matched by pattern." msgid "All changesets belonging to the branches of changesets in set." msgstr "All changesets belonging to the branches of changesets in set." msgid "Members of a set with no children in set." msgstr "Members of a set with no children in set." msgid "Changesets which are descendants of changesets in set." msgstr "Changesets which are descendants of changesets in set." msgid "Changesets that are ancestors of a changeset in set." msgstr "Changesets that are ancestors of a changeset in set." msgid "Child changesets of changesets in set." msgstr "Child changesets of changesets in set." msgid "The set of all parents for all changesets in set." msgstr "The set of all parents for all changesets in set." msgid "First parent for all changesets in set, or the working directory." msgstr "First parent for all changesets in set, or the working directory." msgid "Second parent for all changesets in set, or the working directory." msgstr "Second parent for all changesets in set, or the working directory." msgid "Changesets with no parent changeset in set." msgstr "Changesets with no parent changeset in set." msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgid "Changeset with lowest revision number in set." msgstr "Changeset with lowest revision number in set." msgid "Changeset with highest revision number in set." msgstr "Changeset with highest revision number in set." msgid "First n members of a set." msgstr "First n members of a set." msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "An alias for \"::.\" (ancestors of the working copy's first parent)." msgid "All changesets, the same as 0:tip." msgstr "All changesets, the same as 0:tip." msgid "Revision Set Query" msgstr "Revision Set Query" msgid "all revisions converted from subversion" msgstr "all revisions converted from subversion" msgid "changeset which represents converted svn revision" msgstr "changeset which represents converted svn revision" msgid "Common sets" msgstr "Common sets" msgid "File pattern sets" msgstr "File pattern sets" msgid "Set Ancestry" msgstr "Set Ancestry" msgid "Set Logic" msgstr "Set Logic" msgid "" "help " "revsets" msgstr "" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" "\n" "Caught keyboard interrupt, aborting.\n" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "failed to fork GUI process: %s\n" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "can not read file \"%s\". Ignored.\n" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" "thg: command '%s' is ambiguous:\n" " %s\n" #, python-format msgid "thg: unknown command '%s'\n" msgstr "thg: unknown command '%s'\n" #, python-format msgid "thg %s: %s\n" msgstr "thg %s: %s\n" #, python-format msgid "thg: %s\n" msgstr "thg: %s\n" #, python-format msgid "abort: %s!\n" msgstr "abort: %s!\n" #, python-format msgid "abort: %s\n" msgstr "abort: %s\n" #, python-format msgid "(%s)\n" msgstr "(%s)\n" msgid "option --config may not be abbreviated!" msgstr "option --config may not be abbreviated!" msgid "invalid arguments" msgstr "invalid arguments" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "unrecognized profiling format '%s' - Ignored\n" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgid "repository root directory or symbolic path name" msgstr "repository root directory or symbolic path name" msgid "enable additional output" msgstr "enable additional output" msgid "suppress output" msgstr "suppress output" msgid "display help and exit" msgstr "display help and exit" msgid "set/override config option (use 'section.name=value')" msgstr "set/override config option (use 'section.name=value')" msgid "enable debugging output" msgstr "enable debugging output" msgid "start debugger" msgstr "start debugger" msgid "print command execution profile" msgstr "print command execution profile" msgid "do not fork GUI process" msgstr "do not fork GUI process" msgid "always fork GUI process" msgstr "always fork GUI process" msgid "read file list from file" msgstr "read file list from file" msgid "read file list from file encoding utf-8" msgstr "read file list from file encoding utf-8" msgid "thg about" msgstr "thg about" msgid "thg add [FILE]..." msgstr "thg add [FILE]..." msgid "revision to annotate" msgstr "revision to annotate" msgid "open to line" msgstr "open to line" msgid "initial search pattern" msgstr "initial search pattern" msgid "thg annotate" msgstr "thg annotate" #, python-format msgid "invalid line number: %s" msgstr "invalid line number: %s" msgid "revision to archive" msgstr "revision to archive" msgid "thg archive" msgstr "thg archive" msgid "merge with old dirstate parent after backout" msgstr "merge with old dirstate parent after backout" msgid "parent to choose when backing out merge" msgstr "parent to choose when backing out merge" msgid "revision to backout" msgstr "revision to backout" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "thg backout [OPTION]... [[-r] REV]" msgid "thg bisect" msgstr "thg bisect" msgid "revision" msgstr "revision" msgid "thg bookmarks [-r REV] [NAME]" msgstr "thg bookmarks [-r REV] [NAME]" msgid "only one new bookmark name allowed" msgstr "only one new bookmark name allowed" msgid "the clone will include an empty working copy (only a repository)" msgstr "the clone will include an empty working copy (only a repository)" msgid "revision, tag or branch to check out" msgstr "revision, tag or branch to check out" msgid "include the specified changeset" msgstr "include the specified changeset" msgid "clone only the specified branch" msgstr "clone only the specified branch" msgid "use pull protocol to copy metadata" msgstr "use pull protocol to copy metadata" msgid "use uncompressed transfer (fast over LAN)" msgstr "ใช้ uncompressed transfer (fast over LAN)" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "thg clone [OPTION]... [SOURCE] [DEST]" msgid "record user as committer" msgstr "record user as committer" msgid "record datecode as commit date" msgstr "record datecode as commit date" msgid "thg commit [OPTIONS] [FILE]..." msgstr "thg commit [OPTIONS] [FILE]..." msgid "thg debugblockmatcher" msgstr "thg debugblockmatcher" msgid "thg debugbugreport [TEXT]" msgstr "thg debugbugreport [TEXT]" msgid "thg debugconsole" msgstr "thg debugconsole" msgid "thg debuglighthg" msgstr "thg debuglighthg" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "thg debugruncommand -- COMMAND [ARGUMENT]..." msgid "no command specified" msgstr "no command specified" msgid "thg drag_copy SOURCE... DEST" msgstr "thg drag_copy SOURCE... DEST" msgid "thg drag_move SOURCE... DEST" msgstr "thg drag_move SOURCE... DEST" msgid "a revision to send" msgstr "a revision to send" msgid "thg email [REVS]" msgstr "thg email [REVS]" msgid "use only one form to specify the revision" msgstr "use only one form to specify the revision" msgid "select the specified revision" msgstr "select the specified revision" msgid "side-by-side comparison of revisions" msgstr "side-by-side การเปรียบเทียบของ revisions" msgid "thg filelog [OPTION]... FILE" msgstr "thg filelog [OPTION]... FILE" msgid "requires a single filename" msgstr "requires a single filename" msgid "thg forget [FILE]..." msgstr "thg forget [FILE]..." msgid "revisions to graft" msgstr "revisions to graft" msgid "thg graft [-r] REV..." msgstr "thg graft [-r] REV..." msgid "You must provide revisions to graft" msgstr "You must provide revisions to graft" msgid "ignore case during search" msgstr "ignore case during search" msgid "thg grep" msgstr "thg grep" msgid "thg guess" msgstr "thg guess" msgid "thg help [COMMAND]" msgstr "thg help [COMMAND]" msgid "global options:" msgstr "global options:" msgid "use \"thg help\" for the full list of commands" msgstr "use \"thg help\" for the full list of commands" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "use \"thg -v help%s\" to show aliases and global options" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "use \"thg -v help %s\" to show global options" msgid "" "list of commands:\n" "\n" msgstr "" "รายการคำสั่ง:\n" "\n" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" "\n" "aliases: %s\n" msgid "(no help text available)" msgstr "(no help text available)" msgid "options:\n" msgstr "options:\n" msgid "no commands defined\n" msgstr "no commands defined\n" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgid "" "basic commands:\n" "\n" msgstr "" "basic commands:\n" "\n" #, python-format msgid " (default: %s)" msgstr " (default: %s)" msgid "thg hgignore [FILE]" msgstr "thg hgignore [FILE]" msgid "import to the patch queue (MQ)" msgstr "import to the patch queue (MQ)" msgid "thg import [OPTION] [SOURCE]..." msgstr "thg import [OPTION] [SOURCE]..." msgid "thg init [DEST]" msgstr "thg init [DEST]" msgid "thg lock" msgstr "" msgid "search for a given text or revset" msgstr "search for a given text or revset" msgid "(DEPRECATED)" msgstr "(DEPRECATED)" msgid "open a new workbench window" msgstr "open a new workbench window" msgid "thg log [OPTIONS] [FILE]" msgstr "thg log [OPTIONS] [FILE]" msgid "cannot specify both -k/--query and filenames" msgstr "cannot specify both -k/--query and filenames" msgid "revision to display" msgstr "revision ที่แสดง" msgid "thg manifest [-r REV] [FILE]" msgstr "thg manifest [-r REV] [FILE]" msgid "revision to merge" msgstr "revision ที่ผนวก" msgid "thg merge [[-r] REV]" msgstr "thg merge [[-r] REV]" msgid "Merge revision not specified or not found" msgstr "Merge revision not specified or not found" msgid "a revision to post" msgstr "a revision to post" msgid "thg postreview [-r] REV..." msgstr "thg postreview [-r] REV..." msgid "reviewboard extension not enabled" msgstr "" #, python-format msgid "see %(url)s" msgstr "" msgid "no revisions specified" msgstr "no revisions specified" msgid "revisions to prune" msgstr "revisions to prune" msgid "thg prune [-r] REV..." msgstr "thg prune [-r] REV..." msgid "thg purge" msgstr "thg purge" msgid "keep original changesets" msgstr "keep original changesets" msgid "keep original branch names" msgstr "keep original branch names" msgid "rebase from the specified changeset" msgstr "rebase from the specified changeset" msgid "rebase onto the specified changeset" msgstr "rebase onto the specified changeset" msgid "thg rebase -s REV -d REV [--keep]" msgstr "thg rebase -s REV -d REV [--keep]" msgid "Rebase already in progress" msgstr "Rebase already in progress" msgid "Resuming rebase already in progress" msgstr "Resuming rebase already in progress" msgid "You must provide source and dest arguments" msgstr "ต้องให้ค่า source และ dest" msgid "thg rejects [FILE]" msgstr "thg rejects [FILE]" msgid "You must provide the path to a file" msgstr "You must provide the path to a file" msgid "thg remove [FILE]..." msgstr "thg remove [FILE]..." msgid "thg rename [SOURCE] [DEST]" msgstr "thg rename [SOURCE] [DEST]" msgid "field to give initial focus" msgstr "field to give initial focus" msgid "thg repoconfig" msgstr "thg repoconfig" msgid "thg resolve" msgstr "thg resolve" msgid "the revision to show" msgstr "the revision to show" msgid "thg revdetails [-r REV]" msgstr "thg revdetails [-r REV]" msgid "thg revert [FILE]..." msgstr "thg revert [FILE]..." msgid "revision to update" msgstr "revision เพื่อปรับปรุง" msgid "thg rupdate [[-r] REV]" msgstr "thg rupdate [[-r] REV]" msgid "name of the hgweb config file (serve more than one repository)" msgstr "name of the hgweb config file (serve more than one repository)" msgid "name of the hgweb config file (DEPRECATED)" msgstr "name of the hgweb config file (DEPRECATED)" msgid "thg serve [--web-conf FILE]" msgstr "thg serve [--web-conf FILE]" msgid "thg shellconfig" msgstr "thg shellconfig" msgid "thg shelve" msgstr "thg shelve" msgid "sign even if the sigfile is modified" msgstr "sign even if the sigfile is modified" msgid "make the signature local" msgstr "make the signature local" msgid "the key id to sign with" msgstr "the key id to sign with" msgid "do not commit the sigfile after signing" msgstr "do not commit the sigfile after signing" msgid "use as commit message" msgstr "use as commit message" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgid "Please enable the Gpg extension first." msgstr "Please enable the Gpg extension first." msgid "show files without changes" msgstr "show files without changes" msgid "show ignored files" msgstr "show ignored files" msgid "thg status [OPTIONS] [FILE]" msgstr "thg status [OPTIONS] [FILE]" msgid "discard uncommitted changes (no backup)" msgstr "discard uncommitted changes (no backup)" msgid "do not back up stripped revisions" msgstr "do not back up stripped revisions" msgid "do not modify working copy during strip" msgstr "do not modify working copy during strip" msgid "revision to strip" msgstr "revision to strip" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "thg strip [-k] [-f] [-n] [[-r] REV]" msgid "open the bookmark sync window" msgstr "open the bookmark sync window" msgid "thg sync [OPTION]... [PEER]" msgstr "thg sync [OPTION]... [PEER]" msgid "replace existing tag" msgstr "แทน tag ที่มีอยู่" msgid "make the tag local" msgstr "make the tag local" msgid "revision to tag" msgstr "revision to tag" msgid "remove a tag" msgstr "ลบ tag" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgid "wait until the second ticks over" msgstr "รอจนกระทั่ง ticks ครั้งที่สองผ่านไป" msgid "notify the shell for paths given" msgstr "notify the shell for paths given" msgid "remove the status cache" msgstr "ลบสถานะ cache" msgid "show the contents of the status cache (no update)" msgstr "show the contents of the status cache (no update)" msgid "update all repos in current dir" msgstr "ปรับปรุง repos ทั้งหมดใน dir ปัจจุบัน" msgid "thg thgstatus [OPTION]" msgstr "thg thgstatus [OPTION]" msgid "thg topics [-r REV] [NAME]" msgstr "" msgid "Please enable the Topic extension first." msgstr "" msgid "only one new topic name allowed" msgstr "" msgid "thg update [-C] [[-r] REV]" msgstr "thg update [-C] [[-r] REV]" msgid "thg userconfig" msgstr "thg userconfig" msgid "changeset to view in diff tool" msgstr "changeset to view in diff tool" msgid "revisions to view in diff tool" msgstr "revisions to view in diff tool" msgid "bundle file to preview" msgstr "bundle file to preview" msgid "launch visual diff tool" msgstr "launch visual diff tool" msgid "print license" msgstr "พิมพ์ license" msgid "thg version [OPTION]" msgstr "thg version [OPTION]" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgid "Location:" msgstr "Location:" msgid "Update to:" msgstr "Update to:" msgid "Options:" msgstr "Options:" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "Discard remote changes, no backup (-C/--clean)" msgid "Perform a push before updating (-p/--push)" msgstr "Perform a push before updating (-p/--push)" msgid "Allow pushing new branches (--new-branch)" msgstr "อนุญาตให้ pushing branches ใหม่ (--new-branch)" msgid "Force push to remote location (-f/--force)" msgstr "Force push to remote location (-f/--force)" msgid "remove working directory" msgstr "ลบ working directory" msgid "unknown revision!" msgstr "unknown revision!" #, python-format msgid "Remote Update - %s" msgstr "Remote Update - %s" msgid "&Update" msgstr "&Update" msgid "Log" msgstr "Log" msgid "Repositories" msgstr "Repositories" #, python-format msgid "Running at %s" msgstr "Running at %s" msgid "Stopped" msgstr "หยุดแล้ว" msgid "TortoiseHg Web Server" msgstr "TortoiseHg Web Server" msgid "Web Server" msgstr "Web Server" msgid "Port:" msgstr "Port:" msgid "Status:" msgstr "สถานะ:" msgid "Start" msgstr "Start" msgid "Settings" msgstr "การตั้งค่า" msgid "" msgstr "<ไม่เจาะจง>" msgid "&True" msgstr "&True" msgid "&False" msgstr "&False" msgid "&Unspecified" msgstr "&Unspecified" #, python-format msgid "%dpt" msgstr "%dpt" msgid "Bold" msgstr "Bold" msgid "Italic" msgstr "Italic" msgid "Strike" msgstr "Strike" msgid "Underline" msgstr "Underline" msgid "&Set..." msgstr "&Set..." msgid "&Clear" msgstr "&Clear" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "Failed to load issue tracker: '%s': %s. " msgid "&Browse..." msgstr "&Browse..." msgid "UI Language" msgstr "UI Language" msgid "Specify your preferred user interface language (restart needed)" msgstr "Specify your preferred user interface language (restart needed)" msgid "Three-way Merge Tool" msgstr "Three-way Merge Tool" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgid "Visual Diff Tool" msgstr "Visual Diff Tool" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgid "Visual Editor" msgstr "Visual Editor" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgid "CLI Editor" msgstr "" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" msgid "Shell" msgstr "Shell" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
                                                                                          Default, Windows: cmd.exe /" "K title %(reponame)s
                                                                                          Default, OS X: not set
                                                                                          Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
                                                                                          Default, Windows: cmd.exe /" "K title %(reponame)s
                                                                                          Default, OS X: not set
                                                                                          Default, other: xterm -T " "\"%(reponame)s\"" msgid "Immediate Operations" msgstr "Immediate Operations" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgid "Tab Width" msgstr "Tab Width" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgid "Force Repo Tab" msgstr "Force Repo Tab" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "Always show repo tabs, even for a single repo. Default: False" msgid "Monitor Repo Changes" msgstr "Monitor Repo Changes" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgid "Max Diff Size" msgstr "Max Diff Size" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgid "Fork GUI" msgstr "Fork GUI" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" msgid "Full Path Title" msgstr "Full Path Title" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgid "Auto-resolve merges" msgstr "Auto-resolve merges" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgid "New Repo Skeleton" msgstr "New Repo Skeleton" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "Workbench" msgid "Single Workbench Window" msgstr "Single Workbench Window" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgid "Default widget" msgstr "Default widget" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgid "" "Open new tabs next\n" "to the current tab" msgstr "" "Open new tabs next\n" "to the current tab" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgid "Author Coloring" msgstr "Author Coloring" msgid "Color changesets by author name. Default: False" msgstr "Color changesets by author name. Default: False" msgid "Full Authorname" msgstr "Full Authorname" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgid "Task Tabs" msgstr "Task Tabs" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgid "Task Toolbar Order" msgstr "Task Toolbar Order" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
                                                                                          Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
                                                                                          Valid names are: log commit sync grep and " "pbranch.
                                                                                          Default: log commit grep pbranch | sync" msgstr "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
                                                                                          Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
                                                                                          Valid names are: log commit sync grep and " "pbranch.
                                                                                          Default: log commit grep pbranch | sync" msgid "Long Summary" msgstr "สรุปแบบยาว" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgid "Log Batch Size" msgstr "Log Batch Size" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgid "Dead Branches" msgstr "Dead Branches" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgid "Branch Colors" msgstr "Branch Colors" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgid "Hide Tags" msgstr "ซ่อน Tags" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgid "Activate Bookmarks" msgstr "Activate Bookmarks" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

                                                                                          • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
                                                                                          • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
                                                                                          • never: Never show any prompt to " "activate any bookmarks.

                                                                                          Default: prompt" msgstr "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

                                                                                          • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
                                                                                          • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
                                                                                          • never: Never show any prompt to " "activate any bookmarks.

                                                                                          Default: prompt" msgid "Show Family Line" msgstr "แสดงเส้น Family" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

                                                                                          Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

                                                                                          Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgid "Use optimized graph layouter" msgstr "" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

                                                                                          Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" msgctxt "config item" msgid "Commit" msgstr "Commit" msgid "Username" msgstr "Username" msgid "" "Name associated with commits. The common format is:
                                                                                          Full Name <" "email@example.com>" msgstr "" "Name associated with commits. The common format is:
                                                                                          Full Name <" "email@example.com>" msgid "Ask Username" msgstr "Ask Username" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgid "Summary Line Length" msgstr "ความกว้าง ของ Summary Line" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgid "Close After Commit" msgstr "ปิดหลังจาก Commit" msgid "Close the commit tool after every successful commit. Default: False" msgstr "Close the commit tool after every successful commit. Default: False" msgid "Push After Commit" msgstr "Push After Commit" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgid "Auto Commit List" msgstr "Auto Commit List" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgid "Auto Exclude List" msgstr "Auto Exclude List" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgid "English Messages" msgstr "ข้อความ English" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgid "New Commit Phase" msgstr "New Commit Phase" msgid "The phase of new commits. Default: draft" msgstr "The phase of new commits. Default: draft" msgid "Secret MQ Patches" msgstr "Secret MQ Patches" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "Make MQ patches secret (instead of draft). Default: False" msgid "Check Subrepo Phase" msgstr "Check Subrepo Phase" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgid "Monitor working
                                                                                          directory changes" msgstr "Monitor working
                                                                                          directory changes" msgid "" "Select when the working directory status list will be refreshed:
                                                                                          - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
                                                                                          TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
                                                                                          - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
                                                                                          - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
                                                                                          Default: auto" msgstr "" "Select when the working directory status list will be refreshed:
                                                                                          - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
                                                                                          TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
                                                                                          - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
                                                                                          - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
                                                                                          Default: auto" msgid "Confirm adding unknown files" msgstr "ยืนยันการเพิ่ม unknown files" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Confirm deleting files" msgstr "ยืนยันการ ลบไฟล์" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Sync" msgstr "Sync" msgid "After Pull Operation" msgstr "After Pull Operation" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgid "Default Push" msgstr "Default Push" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

                                                                                          • all: The default. Push all changes in all " "branches.
                                                                                          • branch: Push all changes in the current branch.
                                                                                          • revision: Push the changes in the current branch up to the current revision.

                                                                                          Default: all" msgstr "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

                                                                                          • all: The default. Push all changes in all " "branches.
                                                                                          • branch: Push all changes in the current branch.
                                                                                          • revision: Push the changes in the current branch up to the current revision.

                                                                                          Default: all" msgid "Confirm Push" msgstr "ยืนยัน Push" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgid "Target Combo" msgstr "Target Combo" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

                                                                                          • auto: The default. Show the combo if more than one target " "configured.
                                                                                          • always: Always show the combo.

                                                                                          Default: auto" msgstr "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

                                                                                          • auto: The default. Show the combo if more than one target " "configured.
                                                                                          • always: Always show the combo.

                                                                                          Default: auto" msgid "SSH Command" msgstr "คำสั่ง SSH" msgid "" "Command to use for SSH connections.

                                                                                          Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" "Command to use for SSH connections.

                                                                                          Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgid "Subrepository Features:" msgstr "" msgid "Allow Hg Subrepos" msgstr "" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" msgid "Allow Git Subrepos" msgstr "" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

                                                                                          See the security note before enabling Git " "subrepos." msgstr "" msgid "Allow SVN Subrepos" msgstr "" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

                                                                                          See the security note before enabling " "Subversion subrepos." msgstr "" msgid "Server" msgstr "Server" msgid "Repository Details:" msgstr "Repository Details:" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgid "Encoding" msgstr "Encoding" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgid "'Publishing' repository" msgstr "'Publishing' repository" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgid "Web Server:" msgstr "Web Server:" msgid "Textual description of the repository's purpose or contents." msgstr "Textual description of the repository's purpose or contents." msgid "Contact" msgstr "การติดต่อ" msgid "Name or email address of the person in charge of the repository." msgstr "Name or email address of the person in charge of the repository." msgid "Style" msgstr "Style" msgid "Which template map style to use" msgstr "เลือก template map style เพื่อใช้งาน" msgid "Archive Formats" msgstr "Archive Formats" msgid "Comma separated list of archive formats allowed for downloading" msgstr "Comma separated list of archive formats allowed for downloading" msgid "Port" msgstr "Port" msgid "Port to listen on" msgstr "Port to listen on" msgid "Push Requires SSL" msgstr "Push Requires SSL" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgid "Stripes" msgstr "Stripes" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgid "Max Files" msgstr "Max Files" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "Maximum number of files to list per changeset. Default: 10" msgid "Max Changes" msgstr "Max Changes" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "Maximum number of changes to list on the changelog. Default: 10" msgid "Allow Push" msgstr "อนุญาต Push" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgid "Deny Push" msgstr "ไม่อนุญาต Push" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgid "Proxy" msgstr "Proxy" msgid "Host" msgstr "Host" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgid "Bypass List" msgstr "Bypass List" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "" "Optional. Comma-separated list of host names that should bypass the proxy" msgid "Optional. User name to authenticate with at the proxy server" msgstr "Optional. User name to authenticate with at the proxy server" msgid "Password" msgstr "รหัสผ่าน" msgid "Optional. Password to authenticate with at the proxy server" msgstr "Optional. Password to authenticate with at the proxy server" msgid "From" msgstr "จาก" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "Email address to use in the \"From\" header and for the SMTP envelope" msgid "To" msgstr "ถึง" msgid "Comma-separated list of recipient email addresses" msgstr "Comma-separated list of recipient email addresses" msgid "Cc" msgstr "สำเนาถึง" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "Comma-separated list of carbon copy recipient email addresses" msgid "Bcc" msgstr "แอบสำเนาถึง" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "Comma-separated list of blind carbon copy recipient email addresses" msgid "method" msgstr "method" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgid "SMTP Host" msgstr "SMTP Host" msgid "Host name of mail server" msgstr "Host name of mail server" msgid "SMTP Port" msgstr "SMTP Port" msgid "Port to connect to on mail server. Default: 25" msgstr "Port to connect to on mail server. Default: 25" msgid "SMTP TLS" msgstr "SMTP TLS" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "Method to enable TLS when connecting to mail server. Default: none" msgid "SMTP Username" msgstr "SMTP Username" msgid "Username to authenticate to mail server with" msgstr "Username to authenticate to mail server with" msgid "SMTP Password" msgstr "SMTP Password" msgid "Password to authenticate to mail server with" msgstr "Password to authenticate to mail server with" msgid "Local Hostname" msgstr "Local Hostname" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "Hostname the sender can use to identify itself to the mail server." msgid "Diff and Annotate" msgstr "Diff and Annotate" msgid "Patch EOL" msgstr "Patch EOL" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgid "Git Format" msgstr "Git Format" msgid "Use git extended diff header format. Default: False" msgstr "Use git extended diff header format. Default: False" msgid "MQ Git Format" msgstr "MQ Git Format" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgid "No Dates" msgstr "ไม่มี วันที่" msgid "Do not include modification dates in diff headers. Default: False" msgstr "Do not include modification dates in diff headers. Default: False" msgid "Show Function" msgstr "แสดง Function" msgid "Show which function each change is in. Default: False" msgstr "Show which function each change is in. Default: False" msgid "Ignore White Space" msgstr "Ignore White Space" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "Ignore white space when comparing lines in diff views. Default: False" msgid "Ignore WS Amount" msgstr "Ignore WS Amount" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "" "Ignore changes in the amount of white space in diff views. Default: False" msgid "Ignore Blank Lines" msgstr "Ignore Blank Lines" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "Ignore changes whose lines are all blank in diff views. Default: False" msgid "Annotate:" msgstr "Annotate:" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" "Ignore white space when comparing lines in the annotate view. Default: False" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgid "Fonts" msgstr "แบบอักษร" msgid "Message Font" msgstr "Font ข้อความ" msgid "Font used to display commit messages. Default: monospace 10" msgstr "Font used to display commit messages. Default: monospace 10" msgid "Diff Font" msgstr "Diff Font" msgid "Font used to display text differences. Default: monospace 10" msgstr "Font used to display text differences. Default: monospace 10" msgid "ChangeLog Font" msgstr "ChangeLog Font" msgid "Font used to display changelog data. Default: monospace 10" msgstr "Font used to display changelog data. Default: monospace 10" msgid "Output Font" msgstr "Output Font" msgid "Font used to display output messages. Default: sans 8" msgstr "Font used to display output messages. Default: sans 8" msgid "Extensions" msgstr "ส่วนขยาย" msgid "Tools" msgstr "เครื่องมือ" msgid "Hooks" msgstr "Hooks" msgid "Issue Tracking" msgstr "Tracking ปัญหา" msgid "Issue Regex" msgstr "Issue Regex" msgid "Defines the regex to match when picking up issue numbers." msgstr "Defines the regex to match when picking up issue numbers." msgid "Issue Link" msgstr "Issue Link" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgid "Inline Tags" msgstr "Inline Tags" msgid "Show tags at start of commit message." msgstr "Show tags at start of commit message." msgid "Mandatory Issue Reference" msgstr "Mandatory Issue Reference" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgid "Issue Tracker Plugin" msgstr "Issue Tracker Plugin" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgid "Configure Issue Tracker" msgstr "ปรับแต่ง Issue Tracker" msgid "Configure the selected COM Bug Tracker plugin." msgstr "Configure the selected COM Bug Tracker plugin." msgid "Issue Tracker Trigger" msgstr "Issue Tracker Trigger" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

                                                                                          • never: Do not update the Issue Tracker " "state automatically.
                                                                                          • commit: Update the Issue Tracker state after " "a successful commit.

                                                                                          Default: never" msgstr "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

                                                                                          • never: Do not update the Issue Tracker " "state automatically.
                                                                                          • commit: Update the Issue Tracker state after " "a successful commit.

                                                                                          Default: never" msgid "Changeset Link" msgstr "Changeset Link" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
                                                                                          The template string " "uses a normal mercurial template syntax, such as:

                                                                                          • {node|short} : replaced by " "the 12 digit revision id.
                                                                                          • {rev} : replaced by the revision number." "
                                                                                          • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
                                                                                          For example, in order to " "link to bitbucket commit pages you can set this to:
                                                                                          https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
                                                                                          You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
                                                                                          https://github.com/torvalds/" "linux/commit/{gitnode}
                                                                                          https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
                                                                                          " msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "Path to review board example \"http://demo.reviewboard.org\"" msgid "User name to authenticate with review board" msgstr "User name to authenticate with review board" msgid "Password to authenticate with review board" msgstr "Password to authenticate with review board" msgid "Server Repository ID" msgstr "Server Repository ID" msgid "The default repository id for this repo on the review board server" msgstr "The default repository id for this repo on the review board server" msgid "Target Groups" msgstr "Target Groups" msgid "A comma separated list of target groups" msgstr "A comma separated list of target groups" msgid "Target People" msgstr "Target People" msgid "A comma separated list of target people" msgstr "A comma separated list of target people" msgid "Kiln Bfiles" msgstr "Kiln Bfiles" msgid "Patterns" msgstr "Patterns" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgid "Size" msgstr "ขนาด" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgid "System Cache" msgstr "System Cache" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "" "Path to the directory where a system-wide cache of bfiles will be stored" msgid "Simplelock" msgstr "" msgid "Lock Clone" msgstr "" msgid "" "Location of local clone of organizational lock repository.

                                                                                          This repository " "must contain a \"locked\" text file" msgstr "" msgid "Largefiles" msgstr "Largefiles" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgid "Minimum Size" msgstr "ขนาดเล็กสุด" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgid "User Cache" msgstr "User Cache" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" "Path to the directory where a user's cache of largefiles will be stored" msgid "Projrc" msgstr "Projrc" msgid "Require confirmation" msgstr "Require confirmation" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

                                                                                          • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
                                                                                          • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
                                                                                          • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
                                                                                          " msgstr "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "
                                                                                          • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
                                                                                          • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
                                                                                          • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
                                                                                          " msgid "Servers" msgstr "Servers" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgid "Include" msgstr "รวม" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgid "Exclude" msgstr "ไม่รวม" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgid "Update on incoming" msgstr "Update on incoming" msgid "" "Let the user update the projrc on incoming:
                                                                                          • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
                                                                                          • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
                                                                                          • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                                                                                            Default: never" msgstr "" "Let the user update the projrc on incoming:

                                                                                            • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
                                                                                            • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
                                                                                            • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                                                                                              Default: never" msgid "GnuPG" msgstr "GnuPG" msgid "Specify the path to GPG. Default: gpg" msgstr "Specify the path to GPG. Default: gpg" msgid "Key ID" msgstr "Key ID" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "GPG key ID associated with user. Default: None (leave blank)" msgid "TortoiseHg Settings" msgstr "การติดตั้ง TortoiseHg" msgid "Iniparse package not found" msgstr "Iniparse package not found" msgid "Can't change settings without iniparse package - view is readonly." msgstr "Can't change settings without iniparse package - view is readonly." #, python-format msgid "%s's global settings" msgstr "%s's global settings" msgid "No repository found" msgstr "ไม่พบ repository" msgid "no repo at " msgstr "ไม่มี repo ที่ " #, python-format msgid "%s project settings (.hg/projrc)" msgstr "%s project settings (.hg/projrc)" #, python-format msgid "%s repository settings" msgstr "%s repository settings" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "" "Restart all TortoiseHg applications for the following changes to take effect:" msgid "Apply changes before exit?" msgstr "Apply changes before exit?" msgid "&No (discard changes)" msgstr "&No (discard changes)" msgid "Reload" msgstr "เรียกซ้ำ" msgid "Settings File:" msgstr "ไฟล์ติดตั้ง:" msgid "Confirm Save" msgstr "ยืนยันการเก็บ" msgid "Save changes before editing?" msgstr "เก็บก่อนแก้ไข?" msgid "&Save" msgstr "เก็บ" msgid "Confirm Reload" msgstr "ยืนยันเรียกซ้ำ" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgid "Unable to create a Mercurial.ini file" msgstr "Unable to create a Mercurial.ini file" msgid "Insufficient access rights, reverting to read-only mode." msgstr "Insufficient access rights, reverting to read-only mode." msgid "Context Menu" msgstr "Context Menu" msgid "Top menu items:" msgstr "Top menu items:" msgid "Sub menu items:" msgstr "Sub menu items:" msgid "Menu Behavior" msgstr "Menu Behavior" msgid "Hide context menu outside repositories" msgstr "Hide context menu outside repositories" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" "Do not show menu items on unversioned folders (use shift + click to override)" msgid "Icons" msgstr "Icons" msgid "Overlays" msgstr "Overlays" msgid "Enabled overlays" msgstr "Enabled overlays" msgid "Local disks only" msgstr "Local disks only" msgid "Enabled Overlay Handlers" msgstr "Enabled Overlay Handlers" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "Warning: affects all Tortoises, logoff required after change" msgid "Added" msgstr "เพิ่มแล้ว" msgid "Locked*" msgstr "Locked*" msgid "Ignored*" msgstr "Ignored*" msgid "Unversioned" msgstr "Unversioned" msgid "Readonly*" msgstr "อ่านได้อย่างเดียว*" msgid "Deleted*" msgstr "ลบแล้ว*" msgid "*: not used by TortoiseHg" msgstr "*: not used by TortoiseHg" msgid "Taskbar" msgstr "Taskbar" msgid "Show Icon" msgstr "แสดง Icon" msgid "Highlight Icon" msgstr "Highlight Icon" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" "You can change the icon set from TortoiseSVN's Settings" msgid "Explorer Extension Settings - TortoiseHg" msgstr "Explorer Extension Settings - TortoiseHg" msgid "Clear" msgstr "ลบ" msgid "Clear the current shelf file" msgstr "ลบไฟล์ shelf ปัจจุบัน" msgid "Delete the current shelf file" msgstr "Delete the current shelf file" msgid "Left Toolbar" msgstr "Toolbar ซ้าย" msgid "Delete selected chunks" msgstr "Delete selected chunks" msgid "Move all files right" msgstr "Move all files right" msgid "Move selected file right" msgstr "Move selected file right" msgid "Edit file" msgstr "แก้ file" msgid "Move selected chunks right" msgstr "Move selected chunks right" msgid "Refresh Toolbar" msgstr "Refresh Toolbar" msgid "Refresh" msgstr "Refresh" msgid "New Shelf" msgstr "New Shelf" msgid "Right Toolbar" msgstr "Toolbar ขวา" msgid "Move selected chunks left" msgstr "Move selected chunks left" msgid "Move selected file left" msgstr "Move selected file left" msgid "Move all files left" msgstr "Move all files left" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "Backup copies of modified files can be found in .hg/Trashcan/" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "TortoiseHg Shelve - %s" msgid "Delete selected chunks from working copy?" msgstr "Delete selected chunks from working copy?" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "Delete selected chunks from shelf file %s?" msgid "Are you sure?" msgstr "แน่ใจ?" msgid "TortoiseHg New Shelf Name" msgstr "TortoiseHg New Shelf Name" msgid "Specify name of new shelf" msgstr "ระบุชื่อของ new shelf" msgid "Bad filename" msgstr "filename ไม่ถูก" #, python-format msgid "A shelf name cannot contain %s" msgstr "A shelf name cannot contain %s" msgid "File already exists" msgstr "มีไฟล์นี้อยู่แล้ว" msgid "A shelf file of that name already exists" msgstr "A shelf file of that name already exists" msgid "New shelf created" msgstr "New shelf ได้ถูกสร้าง" #, python-format msgid "Delete shelf file %s?" msgstr "ลบ shelf file %s?" msgid "Shelf deleted" msgstr "Shelf ถูกลบ" msgid "Revert all working copy changes?" msgstr "Revert all working copy changes?" #, python-format msgid "Clear contents of shelf file %s?" msgstr "Clear contents of shelf file %s?" msgid "Shelf cleared" msgstr "Shelf cleared" #, python-format msgid "Shelf: %s" msgstr "Shelf: %s" #, python-format msgid "Patch: %s" msgstr "Patch: %s" msgid "Key:" msgstr "Key:" msgid "Local sign" msgstr "Local sign" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "Sign even if the sigfile is modified (-f/--force)" msgid "No commit" msgstr "No commit" msgid "Use custom commit message:" msgstr "ใช้ custom commit ข้อความ:" msgid "&Sign" msgstr "&Sign" #, python-format msgid "Sign - %s" msgstr "Sign - %s" msgid "Signature has been added" msgstr "Signature ได้ถูกเพิ่มแล้ว" msgid "Repository command still running" msgstr "Repository command still running" msgid "Filter:" msgstr "Filter:" msgid "Check all files" msgstr "Check all files" msgid "Uncheck all files" msgstr "Uncheck all files" msgid "Status File List Toolbar" msgstr "Status File List Toolbar" msgid "Remove filter, show root" msgstr "Remove filter, show root" #, python-format msgid "%s - status (selection filtered)" msgstr "%s - status (selection filtered)" #, python-format msgid "%s - status" msgstr "%s - สถานะ" msgid "Check" msgstr "ตรวจสอบ" msgid "Uncheck" msgstr "Uncheck" msgid "status" msgstr "สถานะ" msgid "Failed to refresh" msgstr "refresh ไม่สำเร็จ" msgid "No appropriate files" msgstr "No appropriate files" msgid "No files found for this operation" msgstr "No files found for this operation" msgid "Stat" msgstr "สถิติ" msgid "M" msgstr "M" msgid "Filename" msgstr "ชื่อไฟล์" msgid "Size (KB)" msgstr "Size (KB)" #, python-format msgid "Checked count: %d" msgstr "Checked count: %d" msgid ", resolved merge" msgstr ", resolved merge" msgid ", unresolved merge" msgstr ", unresolved merge" #, python-format msgid "%s is modified" msgstr "%s is modified" msgid "modified" msgstr "มีการแก้ไข" #, python-format msgid "%s is added" msgstr "%s ถูกเพิ่ม" msgid "added" msgstr "เพิ่มแล้ว" #, python-format msgid "%s is removed" msgstr "%s ถูกลบออก" msgid "removed" msgstr "ลบแล้ว" #, python-format msgid "%s is not tracked (unknown)" msgstr "%s is not tracked (unknown)" msgid "unknown" msgstr "ไม่ทราบ" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "%s is deleted by non-hg command, but still tracked" msgid "missing" msgstr "หาย" #, python-format msgid "%s is ignored" msgstr "%s is ignored" msgid "ignored" msgstr "เพิกเฉย" #, python-format msgid "%s is not modified (clean)" msgstr "%s is not modified (clean)" msgid "clean" msgstr "clean" #, python-format msgid "%s is a dirty subrepo" msgstr "%s is a dirty subrepo" msgid "subrepo" msgstr "subrepo" msgid "Check for incoming changes from selected URL" msgstr "Check for incoming changes from selected URL" msgid "Pull incoming changes from selected URL" msgstr "Pull incoming changes from selected URL" msgid "Detect outgoing changes to selected URL" msgstr "Detect outgoing changes to selected URL" msgid "Push outgoing changes to selected URL" msgstr "Push outgoing changes to selected URL" msgid "Sync Bookmarks" msgstr "Sync Bookmarks" msgid "Email outgoing changesets for remote repository" msgstr "Email outgoing changesets for remote repository" msgid "Manage pending perforce changelists" msgstr "Manage pending perforce changelists" msgid "Unbundle" msgstr "Unbundle" msgid "Selected Options:" msgstr "Selected Options:" msgid "Path Edit Toolbar" msgstr "Path Edit Toolbar" msgid "Security" msgstr "ความปลอดภัย" msgid "Manage HTTPS connection security and user authentication" msgstr "Manage HTTPS connection security and user authentication" msgid "Save" msgstr "เก็บ" msgid "Save current URL under an alias" msgstr "Save current URL under an alias" msgid "Paths in Repository Settings:" msgstr "Paths in Repository Settings:" msgid "Related Paths:" msgstr "Related Paths:" msgid "branch: " msgstr "branch: " msgid "bookmark: " msgstr "bookmark: " #, python-format msgid "rev: %d (%s)" msgstr "rev: %d (%s)" msgid "Post Pull: " msgstr "Post Pull: " msgid "&Edit..." msgstr "&แก้ไข..." msgid "&Remove..." msgstr "ลบ..." msgid "Repository not local" msgstr "Repository not local" msgid "A terminal shell cannot be opened for remote" msgstr "A terminal shell cannot be opened for remote" msgid "Confirm path delete" msgstr "Confirm path delete" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "Delete %s from your repo configuration file?" msgid "Select repository" msgstr "" msgid "No host specified" msgstr "ไม่เจาะจง host" msgid "Please set a valid URL to continue." msgstr "กรุณาใส่ URL ที่ถูกต้องเพื่อดำเนินการต่อ." msgid "No remote repository URL or path set" msgstr "No remote repository URL or path set" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

                                                                                              Please type and save a remote repository path on the " "Sync widget." msgstr "" "No valid default remote repository URL or path has been configured " "for this repository.

                                                                                              Please type and save a remote repository path on the " "Sync widget." msgid "Redundant authentication info" msgstr "Redundant authentication info" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgid "sync command already running" msgstr "sync command already running" #, python-format msgid "Getting incoming changesets from %s..." msgstr "Getting incoming changesets from %s..." #, python-format msgid "Found incoming changesets from %s" msgstr "Found incoming changesets from %s" #, python-format msgid "No incoming changesets from %s" msgstr "No incoming changesets from %s" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "Incoming from %s aborted, ret %d" #, python-format msgid "Pulling from %s..." msgstr "ดึงมาจากfrom %s..." #, python-format msgid "Pull from %s completed" msgstr "ดึงมาจาก %s completed" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "ดึงมาจาก %s aborted, ret %d" msgid "Merge caused file conflicts" msgstr "Merge caused file conflicts" msgid "File conflicts need to be resolved" msgstr "File conflicts need to be resolved" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "Finding outgoing changesets to %s..." #, python-format msgid "%d outgoing changesets to %s" msgstr "%d outgoing changesets to %s" #, python-format msgid "No outgoing changesets to %s" msgstr "No outgoing changesets to %s" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "Outgoing to %s aborted, ret %d" msgid "Perforce pending..." msgstr "Perforce pending..." #, python-format msgid "%s (submitted)" msgstr "%s (submitted)" #, python-format msgid "%s (pending)" msgstr "%s (ค้างอยู่)" msgid "Unable to parse p4pending output" msgstr "Unable to parse p4pending output" #, python-format msgid "%d pending changelists found" msgstr "%d pending changelists found" msgid "No pending Perforce changelists" msgstr "No pending Perforce changelists" msgid "Aborted p4pending" msgstr "Aborted p4pending" msgid "Unable to determine pending changesets" msgstr "Unable to determine pending changesets" msgid "Confirm Push to remote Repository" msgstr "Confirm Push to remote Repository" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" "Push to remote repository\n" "%s\n" "?" #, python-format msgid "Push to %s aborted" msgstr "Push to %s aborted" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" #, python-format msgid "Pushing to %s..." msgstr "Pushing to %s..." #, python-format msgid "Push to %s completed" msgstr "Push to %s completed" #, python-format msgid "Push to %s aborted, ret %d" msgstr "Push to %s aborted, ret %d" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgid "Determining outgoing changesets to email..." msgstr "Determining outgoing changesets to email..." msgid "No outgoing changesets" msgstr "No outgoing changesets" #, python-format msgid "Outgoing aborted, ret %d" msgstr "Outgoing aborted, ret %d" msgid "Select bundle file" msgstr "Select bundle file" msgid "Bundle files (*.hg)" msgstr "Bundle files (*.hg)" msgid "Unable to remove URL" msgstr "ลบ URL ออกไม่ได้" msgid "Post Pull Behavior" msgstr "Post Pull Behavior" msgid "Select post-pull operation for this repository" msgstr "Select post-pull operation for this repository" msgid "None - simply pull changesets" msgstr "None - simply pull changesets" msgid "Update - pull, then try to update" msgstr "ปรับปรุง - pull, หลังจากนั้นพยายามปรับปรุง" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "Fetch - use fetch (auto merge pulled changes)" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "Fetch - use fetch extension (fetch is not active!)" msgid "Rebase - rebase local commits above pulled changes" msgstr "Rebase - rebase local commits above pulled changes" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "UpdateOrRebase - pull, then try to update or rebase" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "Rebase - use rebase extension (rebase is not active!)" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "UpdateOrRebase - use rebase extension (rebase is not active!)" msgid "Launch settings tool..." msgstr "เริ่ม การปรับแต่งเครื่องมือ..." msgid "Unable to save post pull operation" msgstr "Unable to save post pull operation" msgid "Save Path" msgstr "เก็บ Path" msgid "Alias" msgstr "ชื่อที่ใช้แทน" msgid "URL" msgstr "URL" msgid "Remove authentication data from URL" msgstr "ลบ ข้อมูล authentication ออกจาก URL" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" "User authentication data should be associated with the hostname using the " "security dialog." msgid "Update subrepo paths" msgstr "ปรับปรุง paths ของ subrepo" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgid "Unable to save an URL" msgstr "ไม่สามารถเก็บ URL" msgid "Confirm URL replace" msgstr "ยืนยัน ทับแทน URL" #, python-format msgid "%s already exists, replace URL?" msgstr "%s มีแล้ว, ใช้ URL แทน?" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

                                                                                              %s

                                                                                              Replace it with the " "following URL?:

                                                                                              %s" msgstr "" "Subrepo '%s' has a non trivial default sync URL:

                                                                                              %s

                                                                                              Replace it with the " "following URL?:

                                                                                              %s" msgid "Security: " msgstr "ความปลอดภัย: " #, python-format msgid "Host: %s" msgstr "Host: %s" msgid "Secure HTTPS Connection" msgstr "Secure HTTPS Connection" msgid "Verify with Certificate Authority certificates (best)" msgstr "Verify with Certificate Authority certificates (best)" msgid "Verify with stored host fingerprint (good)" msgstr "Verify with stored host fingerprint (good)" msgid "No host validation, but still encrypted (bad)" msgstr "No host validation, but still encrypted (bad)" msgid "### host certificate fingerprint ###" msgstr "### host certificate fingerprint ###" msgid "Query" msgstr "Query" msgid "TLS 1.0" msgstr "" msgid "TLS 1.1" msgstr "" msgid "TLS 1.2" msgstr "" msgid "Minimum Protocol" msgstr "" msgid "User Authentication" msgstr "User Authentication" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgid "User Certificate Key" msgstr "User Certificate Key" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgid "User Certificate Chain" msgstr "User Certificate Chain" msgid "Certificate Query Error" msgstr "Certificate Query Error" msgid "Select User Certificate Key File" msgstr "Select User Certificate Key File" msgid "PEM files (*.pem *.key)" msgstr "PEM files (*.pem *.key)" msgid "Select User Certificate Chain File" msgstr "Select User Certificate Chain File" msgid "PEM files (*.pem *.crt *.cer)" msgstr "PEM files (*.pem *.crt *.cer)" msgid "Unable to save authentication" msgstr "Unable to save authentication" #, python-format msgid "%s - sync options" msgstr "%s - sync options" msgid "Allow push of a new branch (--new-branch)" msgstr "Allow push of a new branch (--new-branch)" msgid "Force push or pull (override safety checks, --force)" msgstr "Force push or pull (override safety checks, --force)" msgid "Temporarily disable configured HTTP proxy" msgstr "Temporarily disable configured HTTP proxy" msgid "Emit debugging output (--debug)" msgstr "Emit debugging output (--debug)" msgid "Work on patch queue (--mq)" msgstr "Work on patch queue (--mq)" #, python-format msgid "Tag - %s" msgstr "Tag - %s" msgid "Tag:" msgstr "Tag:" msgid "Tagged:" msgstr "Tagged:" msgid "Local tag" msgstr "Local tag" msgid "Replace existing tag (-f/--force)" msgstr "Replace existing tag (-f/--force)" msgid "Use English commit message" msgstr "ใช้ ภาษาอังกฤษ ในการ commit ข้อความ" msgid "local" msgstr "local" msgid "Move" msgstr "Move" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "Moved tag %s to changeset %s (from changeset %s)" #, python-format msgid "Added tag %s for changeset %s" msgstr "Added tag %s for changeset %s" #, python-format msgid "Tag '%s' has been moved" msgstr "Tag '%s' has been moved" #, python-format msgid "Tag '%s' has been added" msgstr "Tag '%s' has been added" #, python-format msgid "Removed tag %s" msgstr "ลบ tag %s ออก" #, python-format msgid "Tag '%s' has been removed" msgstr "Tag '%s' has been removed" msgid "Patch files (*.diff *.patch)" msgstr "Patch files (*.diff *.patch)" #, python-format msgid "Import - %s" msgstr "Import - %s" msgid "Browse Directory..." msgstr "Browse Directory..." msgid "Import from Clipboard" msgstr "Import จาก Clipboard" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "Do not strip paths (-p0), required for SVN patches" msgid "Preview:" msgstr "แสดงตัวอย่าง:" msgid "Shelf" msgstr "Shelf" msgid "Checking working directory status..." msgstr "Checking working directory status..." msgid "&Import" msgstr "&Import" msgid "Working directory is not clean! View changes..." msgstr "Working directory is not clean! View changes..." msgid "Select patches" msgstr "Select patches" msgid "Select Directory containing patches" msgstr "Select Directory containing patches" #, python-format msgid "%s patches" msgstr "%s patches" #, python-format msgid "%s will be imported to " msgstr "%s will be imported to " msgid "Nothing to import" msgstr "Nothing to import" msgid "Strip:" msgstr "Strip:" msgid "Discard local changes, no backup (-f/--force)" msgstr "Discard local changes, no backup (-f/--force)" msgid "No backup (-n/--nobackup)" msgstr "ไม่ backup (-n/--nobackup)" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "Do not modify working copy during strip (-k/--keep)" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "%d changeset will be stripped" msgid "Unknown revision!" msgstr "Unknown revision!" msgid "Detected uncommitted local changes." msgstr "Detected uncommitted local changes." msgid "Do you want to keep them or discard them?" msgstr "ต้องการที่จะเก็บไว้หรือไม่?" msgid "&Keep (--keep)" msgstr "&Keep (--keep)" msgid "&Discard (--force)" msgstr "&Discard (--force)" msgid "Confirm Strip" msgstr "Confirm Strip" #, python-format msgid "Strip - %s" msgstr "Strip - %s" msgid "&Strip" msgstr "&Strip" msgid "Topic:" msgstr "" msgid "&Rename" msgstr "" #, python-format msgid "Topic - %s" msgstr "" #, python-format msgid "A topic named \"%s\" already exists" msgstr "" #, python-format msgid "Topic '%s' has been added" msgstr "" #, python-format msgid "Topic '%s' does not exist" msgstr "" #, python-format msgid "Topic '%s' has been removed" msgstr "" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "" msgid "Parent 1:" msgstr "Parent 1:" msgid "Parent 2:" msgstr "Parent 2:" msgid "Pull subrepos from:" msgstr "ดึง subrepos จาก:" msgid "List updated files (--verbose)" msgstr "รายการไฟล์ที่ถูกปรับปรุง (--verbose)" msgid "Discard local changes, no backup (-C/--clean)" msgstr "Discard local changes, no backup (-C/--clean)" msgid "Always merge (when possible)" msgstr "Always merge (when possible)" msgid "(same as parent)" msgstr "(same as parent)" msgid "Activate bookmark?" msgstr "Activate bookmark?" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

                                                                                              Do " "you want to activate it?
                                                                                              You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" "The selected revision (%s) has a bookmark on it called \"%s\".

                                                                                              Do " "you want to activate it?
                                                                                              You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

                                                                                              Select " "the bookmark that you want to activate and click OK.

                                                                                              Click " "Cancel if you don't want to activate any of them.

                                                                                              You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                                                              " msgstr "" "The selected revision (%s) has %d bookmarks on it.

                                                                                              Select " "the bookmark that you want to activate and click OK.

                                                                                              Click " "Cancel if you don't want to activate any of them.

                                                                                              You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                                                              " msgid "Deactivate current bookmark?" msgstr "Deactivate current bookmark?" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "Do you really want to deactivate the %s bookmark?" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgid "Discard - discard local changes, no backup" msgstr "ยกเลิก- discard local changes, no backup" msgid "&Shelve" msgstr "&Shelve" msgid "Shelve - move local changes to a patch" msgstr "Shelve - move local changes to a patch" msgid "Merge - allow to merge with local changes" msgstr "ผนวก- allow to merge with local changes" msgid "Confirm Update" msgstr "ยืนยันการปรับปรุง" #, python-format msgid "Update - %s" msgstr "ปรับปรุง - %s" msgid "[non-existant]" msgstr "[non-existant]" msgid "Tool launch failure" msgstr "Tool launch failure" #, python-format msgid "%s : %s" msgstr "%s : %s" msgid "No diff tool found" msgstr "No diff tool found" msgid "No visual diff tools were detected" msgstr "No visual diff tools were detected" msgid "[working copy]" msgstr "[working copy]" msgid "[original]" msgstr "[original]" msgid "Unable to find changeset" msgstr "ไม่พบ changeset" msgid "You likely need to refresh this application" msgstr "You likely need to refresh this application" msgid "No file changes" msgstr "ไม่พบไฟล์ที่มีการเปลี่ยนแปลง" msgid "There are no file changes to view" msgstr "There are no file changes to view" msgid "working changes" msgstr "กำลังเปลี่ยนแปลง" #, python-format msgid "changeset %d:%s" msgstr "changeset %d:%s" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "revisions %d:%s to %d:%s" msgid "Visual Diffs - " msgstr "Visual Diffs - " msgid " filtered" msgstr " filtered" msgid "Temporary files are removed when this dialog is closed" msgstr "ไฟล์ Temporary ถูกลบเมื่อ dialog นี้ปิด" msgid "Select Tool:" msgstr "เลือกเครื่องมือ:" msgid "Dir diff to p1" msgstr "Dir diff to p1" msgid "Dir diff to p2" msgstr "Dir diff to p2" msgid "3-way dir diff" msgstr "3-way dir diff" msgid "Directory diff" msgstr "Directory diff" msgid "Confirm Discard" msgstr "ยืนยันยกเลิก" msgid "Discard outstanding changes to working directory?" msgstr "Discard outstanding changes to working directory?" msgid "Config files (*.conf *.config *.ini)" msgstr "ไฟล์ปรับแต่ง (*.conf *.config *.ini)" msgid "Open hgweb config" msgstr "เปิด hgweb config" msgid "Save hgweb config" msgstr "เก็บ hgweb config" msgid "Path:" msgstr "Path:" msgid "Local Path:" msgstr "Local Path:" msgid "Select Repository" msgstr "เลือก Repository" msgid "Add Path to Serve" msgstr "เพิ่ม Path ไป Serve" msgid "Edit Path to Serve" msgstr "Edit Path to Serve" msgid "Local Path" msgstr "Local Path" msgid "Webconf" msgstr "Webconf" msgid "Config File:" msgstr "ไฟล์ปรับแต่ง:" msgid "Open" msgstr "เปิด" msgid "New &Workbench" msgstr "New &Workbench" msgid "&New Repository..." msgstr "สร้าง Repository ใหม่ ..." msgid "Clon&e Repository..." msgstr "Clon&e Repository..." msgid "&Open Repository..." msgstr "เปิด Repository..." msgid "&File" msgstr "&File" msgid "&View" msgstr "&View" msgid "&Repository" msgstr "&Repository" msgid "&Help" msgstr "&Help" msgid "&Dock Toolbar" msgstr "&Dock Toolbar" msgid "&Task Toolbar" msgstr "&Task Toolbar" msgid "&Custom Toolbar" msgstr "&Custom Toolbar" msgid "S&ync Toolbar" msgstr "S&ync Toolbar" msgid "&Close Repository" msgstr "&Close Repository" msgid "Sh&ow Repository Registry" msgstr "Sh&ow Repository Registry" msgid "Show &Patch Queue" msgstr "Show &Patch Queue" msgid "Show Conso&le" msgstr "แสดง Conso&le" msgid "Place Console in Doc&k Area" msgstr "นำ Console ไปไว้ใน บริเวณ Doc&k" msgid "R&epository Registry Options" msgstr "R&epository Registry Options" msgid "Save Open Repositories on E&xit" msgstr "Save Open Repositories on E&xit" msgid "Sa&ve Current Sync Paths on Exit" msgstr "Sa&ve Current Sync Paths on Exit" msgid "Show Tas&k Tab" msgstr "" msgid "&Commit" msgstr "&Commit" msgid "&Patch Branch" msgstr "&Patch Branch" msgid "Revision &Details" msgstr "Revision &Details" msgid "&Search" msgstr "&ค้นหา" msgid "S&ynchronize" msgstr "S&ynchronize" msgid "Refresh current repository" msgstr "Refresh current repository" msgid "Refresh &Task Tab" msgstr "Refresh &Task Tab" msgid "Refresh only the current task tab" msgstr "Refresh only the current task tab" msgid "Load &All Revisions" msgstr "Load &All Revisions" msgid "Load all revisions into graph" msgstr "Load all revisions into graph" msgid "Go to current revision" msgstr "ไปที่ revision ปัจจุบัน" msgid "&Goto Revision..." msgstr "&Goto Revision..." msgid "Go to a specific revision" msgstr "Go to a specific revision" msgid "Filter graph with revision sets or branches" msgstr "Filter graph with revision sets or branches" msgid "&Workbench Toolbars" msgstr "&Workbench Toolbars" msgid "&Lock File..." msgstr "" msgid "Lock or unlock files" msgstr "" msgid "Update working directory or switch revisions" msgstr "Update working directory or switch revisions" msgid "&Shelve..." msgstr "&Shelve..." msgid "&Import Patches..." msgstr "&Import Patches..." msgid "U&nbundle..." msgstr "U&nbundle..." msgid "&Merge..." msgstr "&Merge..." msgid "Merge with the other head of the current branch" msgstr "Merge with the other head of the current branch" msgid "&Resolve..." msgstr "&Resolve..." msgid "R&ollback/Undo..." msgstr "R&ollback/Undo..." msgid "&Purge..." msgstr "&Purge..." msgid "&Bisect..." msgstr "&Bisect..." msgid "&Verify" msgstr "&Verify" msgid "Re&cover" msgstr "Re&cover" msgid "&Web Server" msgstr "&Web Server" msgid "E&xplorer Help" msgstr "E&xplorer Help" msgid "&Readme" msgstr "&Readme" msgid "About &Qt" msgstr "About &Qt" msgid "&About TortoiseHg" msgstr "&About TortoiseHg" msgid "&Incoming" msgstr "&Incoming" msgid "&Pull" msgstr "&Pull" msgid "&Outgoing" msgstr "&Outgoing" msgid "P&ush" msgstr "P&ush" msgid "&Sync Bookmarks..." msgstr "&Sync Bookmarks..." #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" "pull: %s\n" "push: %s" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgid "Check for incoming changes" msgstr "Check for incoming changes" msgid "Pull incoming changes" msgstr "Pull incoming changes" msgid "Detect outgoing changes" msgstr "Detect outgoing changes" msgid "Push outgoing changes" msgstr "Push outgoing changes" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" "Check for incoming changes from\n" "%s" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" "Pull incoming changes from\n" "%s" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" "Detect outgoing changes to\n" "%s" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" "Push outgoing changes to\n" "%s" #, python-format msgid "Execute custom tool '%s'" msgstr "Execute custom tool '%s'" msgid "Custom Toolbar &Settings" msgstr "Custom Toolbar &Settings" msgid "TortoiseHg Workbench" msgstr "TortoiseHg Workbench" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "%s - TortoiseHg Workbench - %s" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "%s - TortoiseHg Workbench" msgid "Goto revision" msgstr "Goto revision" msgid "Enter revision identifier" msgstr "Enter revision identifier" msgid "Select repository directory to open" msgstr "Select repository directory to open" msgid "README not configured" msgstr "README not configured" msgid "" "A README file is not configured for the current repository.

                                                                                              To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" "A README file is not configured for the current repository.

                                                                                              To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgid "Issue Tracker Plugin Error" msgstr "Issue Tracker Plugin Error" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "Could not instantiate Issue Tracker plugin COM object" msgid "This error will not be shown again until you restart the workbench" msgstr "This error will not be shown again until you restart the workbench" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "Error getting commit message information from Issue Tracker plugin" msgid "Error executing \"commit finished\" trigger" msgstr "Error executing \"commit finished\" trigger" msgid "Cannot open Plugin Options dialog" msgstr "Cannot open Plugin Options dialog" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "" msgid "[--insecure] [SOURCE]" msgstr "" #, python-format msgid "unsupported URL: %s" msgstr "unsupported URL: %s" #, python-format msgid "%s certificate error: no certificate received" msgstr "%s certificate error: no certificate received" msgid "move after the specified patch" msgstr "move after the specified patch" msgid "[--after PATCH] PATCH..." msgstr "[--after PATCH] PATCH..." msgid "unknown patch to move specified" msgstr "unknown patch to move specified" msgid "invalid patch position specified" msgstr "invalid patch position specified" msgid "cannot move applied patches" msgstr "cannot move applied patches" #, python-format msgid "patch %s not in series" msgstr "patch %s not in series" msgid "cannot move into applied patches" msgstr "cannot move into applied patches" msgid "abort: " msgstr "ยกเลิก: " msgid "hint: " msgstr "hint: " #, python-format msgid "HTTP Error: %d (%s)" msgstr "HTTP Error: %d (%s)" #, python-format msgid "URLError: %s" msgstr "URLError: %s" msgid "SSL: Server certificate verify failed" msgstr "SSL: Server certificate verify failed" #, python-format msgid "SSL: unknown error %s:%s" msgstr "SSL: unknown error %s:%s" #, python-format msgid "SSL error: %s" msgstr "SSL error: %s" msgid "hgsubversion packaged with thg" msgstr "hgsubversion packaged with thg" msgid "hggit packaged with thg" msgstr "hggit packaged with thg" msgid "inotify is not supported on this platform" msgstr "inotify is not supported on this platform" msgid "eol is incompatible with win32text" msgstr "eol is incompatible with win32text" msgid "win32text is incompatible with eol" msgstr "win32text is incompatible with eol" msgid "hgsubversion is incompatible with perfarce" msgstr "hgsubversion is incompatible with perfarce" msgid "perfarce is incompatible with hgsubversion" msgstr "perfarce is incompatible with hgsubversion" msgid "Workbench custom toolbar" msgstr "Workbench custom toolbar" msgid "Revision details context menu" msgstr "Revision details context menu" msgid "Pair selection context menu" msgstr "" msgid "Multiple selection context menu" msgstr "" msgid "Commit context menu" msgstr "Commit context menu" msgid "File context menu (on manifest and revision details)" msgstr "File context menu (on manifest and revision details)" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "%d ปี" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "%d เดือน" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "%d สัปดาห์" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "%d วัน" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "%d ชั่วโมง" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "%d นาที" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d วินาที" msgid "in the future" msgstr "ในอนาคต" msgid "now" msgstr "ขณะนี้" #, python-format msgid "command parse error: %s" msgstr "การเรียงคำสั่งผิดพลาด : %s" #, python-format msgid "no matches found: %s" msgstr "ไม่เหมือน : %s" msgid "Commit..." msgstr "Commit..." msgid "Commit changes in repository" msgstr "Commit changes in repository" msgid "Create Repository Here" msgstr "สร้าง Repository ที่นี่" msgid "Create a new repository" msgstr "สร้าง repository ใหม่" msgid "Clone..." msgstr "Clone..." msgid "Create clone here from source" msgstr "สร้าง clone ที่นี่ จาก source" msgid "File Status" msgstr "สถานะไฟล์" msgid "Repository status & changes" msgstr "Repository status & changes" msgid "Add Files..." msgstr "เพิ่มไฟล์..." msgid "Add files to version control" msgstr "เพิ่มไฟล์สู่ version control" msgid "Revert Files..." msgstr "Revert Files..." msgid "Revert file changes" msgstr "Revert file changes" msgid "Forget Files..." msgstr "Forget Files..." msgid "Remove files from version control" msgstr "ลบไฟล์จาก version control" msgid "Remove Files..." msgstr "ลบไฟล์..." msgid "Rename File" msgstr "เปลี่ยนชื่อไฟล์" msgid "Rename file or directory" msgstr "Rename file or directory" msgid "View change history in repository" msgstr "View change history in repository" msgid "File History" msgstr "ประวัติไฟล์" msgid "View change history of selected files" msgstr "View change history of selected files" msgid "Shelve Changes" msgstr "Shelve Changes" msgid "Move changes between working dir and patch" msgstr "Move changes between working dir and patch" msgid "Synchronize" msgstr "Synchronize" msgid "Synchronize with remote repository" msgstr "Synchronize with remote repository" msgid "Start web server for this repository" msgstr "เริ่ม web server สำหรับ repository นี้" msgid "Update..." msgstr "ปรับปรุง..." msgid "Update working directory" msgstr "Update working directory" msgid "Update Icons" msgstr "ปรับปรุง Icons" msgid "Update icons for this repository" msgstr "ปรับปรุง icons สำหรับ repository นี้" msgid "Global Settings" msgstr "Global Settings" msgid "Configure user wide settings" msgstr "Configure user wide settings" msgid "Repository Settings" msgstr "ปรับแต่ง Repository" msgid "Configure repository settings" msgstr "Configure repository settings" msgid "Explorer Extension Settings" msgstr "Explorer Extension Settings" msgid "Configure Explorer extension" msgstr "Configure Explorer extension" msgid "About TortoiseHg" msgstr "TortoiseHg" msgid "Show About Dialog" msgstr "แสดง About Dialog" msgid "Diff to parent" msgstr "Diff to parent" msgid "View changes using GUI diff tool" msgstr "View changes using GUI diff tool" msgid "Edit Ignore Filter" msgstr "Edit Ignore Filter" msgid "Edit repository ignore filter" msgstr "Edit repository ignore filter" msgid "Guess Renames" msgstr "Guess Renames" msgid "Detect renames and copies" msgstr "Detect renames and copies" msgid "Search History" msgstr "ประวัติการค้นหา" msgid "Search file revisions for patterns" msgstr "Search file revisions for patterns" msgid "DnD Synchronize" msgstr "DnD Synchronize" msgid "Synchronize with dragged repository" msgstr "Synchronize with dragged repository" #, python-format msgid "unrecognized response: %s" msgstr "unrecognized response: %s" msgid "password: " msgstr "รหัสผ่าน " #, python-format msgid "repository %s not found" msgstr "ไม่พบ repository %s" msgid "win32ill: cannot create window for messages" msgstr "win32ill: cannot create window for messages" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "win32ill: unsupported platform: %s\n" msgid "win32ill: interrupted while stopping message loop\n" msgstr "win32ill: interrupted while stopping message loop\n" #~ msgid "Use uncompressed transfer" #~ msgstr "ใช้การส่งที่ไม่ต้องย่อข้อมูล" #~ msgid "Add special files (.hgignore, ...)" #~ msgstr "เพิ่ม พิเศษ(.hgignore, ...)" #~ msgid "Discard all changes from merge target (other) revision" #~ msgstr "ยกเลิกการเปลี่ยนแปลงทั้งหมด จากการผนวกต่างรุ่น" #~ msgid "Reject" #~ msgstr "Reject" #~ msgid "" #~ "A \"template string\" that, when set, turns the revision number and short " #~ "hashes that are shown on the revision panels into links.
                                                                                              The " #~ "\"template string\" uses a \"mercurial template\"-like syntax that " #~ "currently accepts two template expressions:

                                                                                              • {node|short} : " #~ "replaced by the 12 digit revision id (note that {node} on its own is " #~ "currently unsupported).
                                                                                              • {rev} : replaced by the revision number.For example, in order to link to bitbucket commit pages you can set " #~ "this to:
                                                                                                https://bitbucket.org/tortoisehg/thg/commits/{node|short}" #~ msgstr "" #~ "A \"template string\" that, when set, turns the revision number and short " #~ "hashes that are shown on the revision panels into links.
                                                                                                The " #~ "\"template string\" uses a \"mercurial template\"-like syntax that " #~ "currently accepts two template expressions:
                                                                                                • {node|short} : " #~ "replaced by the 12 digit revision id (note that {node} on its own is " #~ "currently unsupported).
                                                                                                • {rev} : replaced by the revision number.For example, in order to link to bitbucket commit pages you can set " #~ "this to:
                                                                                                  https://bitbucket.org/tortoisehg/thg/commits/{node|short}" #~ msgid "Copyright 2008-2018 Steve Borho and others" #~ msgstr "สงวนลิขสิทธิ 2008-2018 Steve Borho and others" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/tr.po0000644000000000000000000044740514440352353016271 0ustar00rootroot# Turkish translation for tortoisehg # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the tortoisehg package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: Turkish \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2010-10-08 16:52+0000\n" "Last-Translator: can kaçan \n" "Language-Team: Turkish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2019-07-17 05:45+0000\n" "X-Generator: Launchpad (build 19009)\n" msgid "TortoiseHg Overlay Icon Server" msgstr "" msgid "Exit" msgstr "Çık" msgid "About" msgstr "" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "" msgid "You can visit our site here" msgstr "" msgid "&License" msgstr "" #, python-format msgid "version %s" msgstr "" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "" msgid "License" msgstr "" msgid "= Working Directory Parent =" msgstr "" msgid "Directory of files" msgstr "Dosyaların dizinleri" msgid "Tar archives" msgstr "Tar arşivleri" msgid "Uncompressed tar archive" msgstr "Sıkıştırılmamış tar arşiv" msgid "Bzip2 tar archives" msgstr "Bzip2 tar arşivleri" msgid "Tar archive compressed using bzip2" msgstr "bzip2 kullanılarak sıkıştırılmış tar arşiv" msgid "Gzip tar archives" msgstr "Gzip tar arşivleri" msgid "Tar archive compressed using gzip" msgstr "gzip kullanılarak sıkıştırılmış tar arşiv" msgid "Zip archives" msgstr "" msgid "Uncompressed zip archive" msgstr "Sıkıştırılmamış zip arşiv" msgid "Zip archive compressed using deflate" msgstr "Deflate kullanılarak sıkıştırılmış zip arşiv" msgid "Revision:" msgstr "Değişiklik:" msgid "All files in this revision" msgstr "" msgid "Only files modified/created in this revision" msgstr "" msgid "Only files modified/created since:" msgstr "" msgid "Archive Content:" msgstr "" msgid "Recurse into subrepositories" msgstr "" msgid "Browse..." msgstr "Gözat..." msgid "Destination path:" msgstr "Hedef yer:" msgid "Archive types:" msgstr "Arşiv tipleri:" msgid "Hg command:" msgstr "" msgid "Select Destination Folder" msgstr "Hedef Dizini Seç" msgid "Select Destination File" msgstr "Hedef Dosyayı seç" msgid "All files (*)" msgstr "" msgid "Duplicate Name" msgstr "" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "" msgid "Confirm Overwrite" msgstr "Üzerine Yazılsın" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "" #, python-format msgid "Archive - %s" msgstr "Arşiv - %s" msgid "&Archive" msgstr "" msgid "Backout requires a parent revision" msgstr "" msgid "Cannot backout change on a different branch" msgstr "" #, python-format msgid "Backout - %s" msgstr "" msgid "Prepare to backout" msgstr "" msgid "Verify backout revision and ensure your working directory is clean." msgstr "" msgid "Backing out a parent revision is a single step operation" msgstr "" msgid "Backout revision" msgstr "" msgid "Not a head, backout will create a new head!" msgstr "" msgid "Current local revision" msgstr "" msgid "Working directory status" msgstr "" msgid "Checking..." msgstr "" msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Automatically resolve merge conflicts where possible" msgstr "" msgid "Uncommitted local changes are detected" msgstr "" msgid "Clean" msgstr "" msgid "Backing out, then merging..." msgstr "" msgid "All conflicting files will be marked unresolved." msgstr "" msgid "Automatically advance to next page when backout and merge are complete." msgstr "" #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" msgid "No merge conflicts, ready to commit" msgstr "" msgid "Commit backout and merge results" msgstr "" msgid "Parents" msgstr "Ebeveynler" msgid "Working Directory" msgstr "" msgid "Working Directory (merged)" msgstr "" msgid "Commit message" msgstr "" msgid "Skip final confirmation page, close after commit." msgstr "" msgid "Backed out changeset: " msgstr "" msgid "Confirm Discard Message" msgstr "" msgid "Discard current backout message?" msgstr "" msgid "Use English backout message" msgstr "" msgid "Backing out and committing..." msgstr "" msgid "Please wait while making backout." msgstr "" msgid "Committing..." msgstr "" msgid "Please wait while committing merged files." msgstr "" msgid "Finished" msgstr "" msgid "Backout changeset" msgstr "" #, python-format msgid "Bisect - %s" msgstr "" msgid "Accept" msgstr "" msgid "Known good revision:" msgstr "" msgid "Known bad revision:" msgstr "" msgid "Discard local changes (revert --all)" msgstr "" msgid "Revision is &Good" msgstr "" msgid "Revision is &Bad" msgstr "" msgid "&Skip this Revision" msgstr "" msgid "Close" msgstr "Kapat" msgid "Error encountered." msgstr "" msgid "Culprit found." msgstr "" msgid "Revision" msgstr "" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "" #, python-format msgid "%s (hint: %s)" msgstr "" msgid "Bookmark:" msgstr "Yer imi" msgid "New Name:" msgstr "Yeni İsim:" msgid "Activate:" msgstr "" msgid "&Add" msgstr "" msgid "Re&name" msgstr "" msgid "&Remove" msgstr "" msgid "&Move" msgstr "" #, python-format msgid "Bookmark - %s" msgstr "" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "" #, python-format msgid "Bookmark '%s' has been added" msgstr "" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "" #, python-format msgid "Bookmark '%s' has been moved" msgstr "" #, python-format msgid "Bookmark '%s' does not exist" msgstr "'%s' yer imi girilmemiş" #, python-format msgid "Bookmark '%s' has been removed" msgstr "" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "" msgid "TortoiseHg Bookmark Sync" msgstr "" msgid "Outgoing Bookmarks" msgstr "" msgid "&Push Bookmark" msgstr "" msgid "&Remove Bookmark" msgstr "" msgid "Incoming Bookmarks" msgstr "" msgid "P&ull Bookmark" msgstr "" msgid "R&emove Bookmark" msgstr "" #, python-format msgid "Pushed local bookmark: %s" msgstr "" #, python-format msgid "Pulled remote bookmark: %s" msgstr "" #, python-format msgid "Removed remote bookmark: %s" msgstr "" #, python-format msgid "Removed local bookmark: %s" msgstr "" #, python-format msgid "%s - branch operation" msgstr "" msgid "Select branch of merge commit" msgstr "" msgid "Changes take effect on next commit" msgstr "" msgid "No branch changes" msgstr "" msgid "Open a new named branch" msgstr "" msgid "Close current branch" msgstr "" #, python-format msgid "Please report this bug to our bug tracker" msgstr "" msgid "Checking for updates..." msgstr "" msgid "Copy" msgstr "" msgid "Quit" msgstr "" msgid "TortoiseHg Bug Report" msgstr "" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "" msgid "Your TortoiseHg is up to date." msgstr "" msgid "Save error report to" msgstr "" msgid "Text files (*.txt)" msgstr "" msgid "Error writing file" msgstr "" msgid "TortoiseHg Error" msgstr "" msgid "" "If you still have trouble, please file a bug report." msgstr "" msgid "Visual Diff" msgstr "" msgid "View file changes in external diff tool" msgstr "" msgid "Edit Local" msgstr "" msgid "Edit current file in working copy" msgstr "" msgid "Revert to Revision" msgstr "" msgid "Revert file(s) to contents at this revision" msgstr "" msgid "Patch failed to apply" msgstr "" msgid "Manually resolve rejected chunks?" msgstr "" msgid "Edit patched file and rejects?" msgstr "" msgid "No deletable chunks" msgstr "" msgid "Completely remove file from patch?" msgstr "" msgid "Revert all file changes?" msgstr "" msgid "No chunks remain" msgstr "" msgid "file has been deleted, refresh" msgstr "" msgid "file has been modified, refresh" msgstr "" msgid "Unable to merge chunks" msgstr "" msgid "Add or remove patches must be merged in the working directory" msgstr "" msgid "Unable to remove" msgstr "" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" msgctxt "files" msgid "All" msgstr "" msgctxt "files" msgid "None" msgstr "" msgid "Toggle display of text search bar" msgstr "" msgid "Diff Toolbar" msgstr "" #, python-format msgid "Chunks selected: %d / %d" msgstr "" msgid "Please wait while the file is opened ..." msgstr "" msgid "Source:" msgstr "" msgid "Destination:" msgstr "" msgid "Options" msgstr "" msgid "Clone to revision:" msgstr "" msgid "A revision identifier, bookmark, tag or branch name" msgstr "" msgid "Do not update the new working directory" msgstr "Yeni çalışma dizinini güncelleme" msgid "Use pull protocol to copy metadata" msgstr "" msgid "Clone with minimal processing" msgstr "" msgid "Include patch queue" msgstr "" msgid "Use proxy server" msgstr "Proxy sunucu kullan" msgid "Do not verify host certificate" msgstr "" msgid "Remote command:" msgstr "Uzaktan komut:" msgid "Use largefiles" msgstr "" msgid "Start revision:" msgstr "" msgid "Select source repository" msgstr "" msgid "Select destination repository" msgstr "" msgid "Select patch folder" msgstr "" #, python-format msgid "Clone - %s" msgstr "" msgid "&Clone" msgstr "" msgid "failed to start command\n" msgstr "" msgid "error while running command\n" msgstr "" #, python-format msgid "process exited unexpectedly with code %d" msgstr "" #, python-format msgid "failed to encode command: %s" msgstr "" #, python-format msgid "timed out while reading: %r..." msgstr "" msgid "timed out waiting for message" msgstr "" #, python-format msgid "unexpected response on required channel %r" msgstr "" #, python-format msgid "invalid \"hello\" message: %r" msgstr "" msgid "no \"runcommand\" capability" msgstr "" #, python-format msgid "corrupted command result: %r" msgstr "" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "" msgid "Terminated by user" msgstr "" #, python-format msgid "[command terminated by user %s]" msgstr "" #, python-format msgid "[command interrupted %s]" msgstr "" #, python-format msgid "[command returned code %d %%s]" msgstr "" #, python-format msgid "[command completed successfully %s]" msgstr "" msgid "Running..." msgstr "" msgid "Failed!" msgstr "" msgid "Clea&r Log" msgstr "" msgid "TortoiseHg Prompt" msgstr "" msgid "Show Detail" msgstr "" msgid "Hide Detail" msgstr "" msgid "Confirm Exit" msgstr "Çıkışı Onayla" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" msgid "&Run" msgstr "" msgid "TortoiseHg Command Dialog" msgstr "" msgid "Command Error" msgstr "" #, python-format msgid "[Code: %d]" msgstr "" msgid "Merge" msgstr "" #, python-format msgid "Merge with %s" msgstr "" msgid "Patch Name Required" msgstr "" msgid "You must enter a patch name" msgstr "" msgctxt "start progress" msgid "Commit" msgstr "" msgctxt "start progress" msgid "MQ Action" msgstr "" msgctxt "start progress" msgid "Rollback" msgstr "" msgid "Commit Dialog Toolbar" msgstr "" msgid "Branch: " msgstr "" msgid "Copy message" msgstr "" msgid "Copy one of the recent commit messages" msgstr "" msgid "Show Issues" msgstr "" msgid "Please wait..." msgstr "" #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "" msgid "Issue Tracker" msgstr "" msgid "Show Issues..." msgstr "" msgid "Stop" msgstr "" msgid "### patch name ###" msgstr "" msgid "Commit changes" msgstr "" msgid "Commit" msgstr "Gönder" msgid "Amend current revision" msgstr "" msgid "Amend" msgstr "" msgid "Create a new patch" msgstr "" msgid "QNew" msgstr "QNew" msgid "Refresh current patch" msgstr "" msgid "QRefresh" msgstr "QRefresh" msgid "Confirm Branch Change" msgstr "" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "" msgid "Restart &Branch" msgstr "" msgid "&Commit to current branch" msgstr "" msgid "Cancel" msgstr "" msgid "Confirm New Branch" msgstr "Yeni Dalı Onayla" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "" msgid "Create &Branch" msgstr "" msgid "Close Branch: " msgstr "" msgid "New Branch: " msgstr "" #, python-format msgid "Selected Options: %s" msgstr "" msgid "Parent:" msgstr "" msgid "Patch name:" msgstr "" #, python-format msgid "Close %s branch" msgstr "" #, python-format msgid "Rollback commit to revision %d" msgstr "" msgid "Confirm Undo" msgstr "" msgid "Discard current commit message?" msgstr "Şimdiki işleme mesajından vazgeçilsin mi?" msgid "Message Translation Failure" msgstr "" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" msgid "&Replace" msgstr "" msgid "Nothing Committed" msgstr "" msgid "Please enter commit message" msgstr "Lütfen işleme mesajı giriniz." msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" msgid "No files checked" msgstr "" msgid "No modified files checkmarked for commit" msgstr "" msgid "Confirm Add" msgstr "" msgid "Add selected untracked files?" msgstr "" msgid "Confirm Remove" msgstr "" msgid "Remove selected deleted files?" msgstr "" msgid "Nothing changed." msgstr "" msgctxt "window title" msgid "Commit" msgstr "" #, python-format msgid "%s - commit options" msgstr "" msgid "Set username:" msgstr "" msgid "Save in Repo" msgstr "" msgid "Save Global" msgstr "" msgid "Set Date:" msgstr "" msgid "Update" msgstr "" msgid "Push After Commit:" msgstr "" msgid "Auto Includes:" msgstr "" msgid "Recurse into subrepositories (--subrepos)" msgstr "" msgid "Unable to save username" msgstr "" msgid "Iniparse must be installed." msgstr "" msgid "Unable to write configuration file" msgstr "" msgid "Unable to save after commit push" msgstr "" msgid "Unable to save auto include list" msgstr "" msgid "Unable to save recurse in subrepos." msgstr "" msgid "Invalid date format" msgstr "" msgid "No username configured" msgstr "" #, python-format msgid "%s - commit" msgstr "" msgid "TortoiseHg Commit" msgstr "" msgid "Are you sure that you want to cancel the commit operation?" msgstr "" msgid "Compress changesets up to and including" msgstr "" msgid "Onto destination" msgstr "" msgid "Compress" msgstr "" #, python-format msgid "Compress - %s" msgstr "" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the compress" msgstr "" msgid "Changes have been moved, you must now commit" msgstr "" msgctxt "action button" msgid "Commit" msgstr "" msgid "Compress is complete, old history untouched" msgstr "" msgid "must be specified repository" msgstr "" msgid "must be specified 'type' in style" msgstr "" msgid "Git Commit:" msgstr "" msgid "Summary:" msgstr "" msgid "User:" msgstr "" msgid "Date:" msgstr "" msgid "Age:" msgstr "" msgid "Branch:" msgstr "" msgid "Close:" msgstr "" msgid "Tags:" msgstr "" msgid "Graft:" msgstr "" msgid "Transplant:" msgstr "" msgid "Obsolete state:" msgstr "" msgid "Perforce:" msgstr "" msgid "Subversion:" msgstr "" msgid "Converted From:" msgstr "" msgid "Original Parent:" msgstr "" msgid "No items to display" msgstr "" msgid "Use compact view" msgstr "" msgid "Patch:" msgstr "Paket:" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "" msgid "Select a GUI location to edit:" msgstr "" msgid "Select the toolbar or menu to change" msgstr "" msgid "Tools shown on selected location" msgstr "" msgid "Delete from list" msgstr "" msgid "Add to list" msgstr "" msgid "Add separator" msgstr "" msgid "List of all tools" msgstr "" msgid "New Tool ..." msgstr "" msgid "Edit Tool ..." msgstr "" msgid "Delete Tool" msgstr "" msgid "Type" msgstr "" msgid "Name" msgstr "" msgid "Command" msgstr "" msgid "New hook" msgstr "" msgid "Edit hook" msgstr "" msgid "Delete hook" msgstr "" msgid "Replace existing hook?" msgstr "" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" msgid "OK" msgstr "" msgid "Missing information" msgstr "" msgid "All items" msgstr "" msgid "Working directory" msgstr "" msgid "All revisions" msgstr "" msgid "All contexts" msgstr "" msgid "Fixed revisions" msgstr "" msgid "Applied patches" msgstr "" msgid "Applied patches or qparent" msgstr "" msgid "" msgstr "" msgid "Configure Custom Tool" msgstr "" msgid "Tool name" msgstr "" msgid "The tool name. It cannot contain spaces." msgstr "" #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" msgid "Tool label" msgstr "" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" msgid "Tooltip" msgstr "" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" msgid "Icon" msgstr "" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" msgid "On repowidget, show for" msgstr "" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" msgid "Show Output Log" msgstr "" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" msgid "You must set a tool name." msgstr "" msgid "The tool name cannot have any spaces in it." msgstr "" msgid "You must set a command to run." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" msgid "Configure Hook" msgstr "" msgid "Hook type" msgstr "" msgid "Select when your command will be run" msgstr "" msgid "The hook name. It cannot contain spaces." msgstr "" msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" msgid "You must set a valid hook type." msgstr "" msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "" msgid "Console" msgstr "" msgid "File &History / Annotate" msgstr "" msgid "Show the history of the selected file" msgstr "" msgid "Co&mpare File Revisions" msgstr "" msgid "Compare revisions of the selected file" msgstr "" msgid "Filter Histor&y" msgstr "" msgid "Query about changesets affecting the selected files" msgstr "" msgid "Diff &Changeset to Parent" msgstr "" msgid "Diff Changeset to Loc&al" msgstr "" msgid "&Diff to Parent" msgstr "" msgid "Diff to &Local" msgstr "" msgid "View changes to current in external diff tool" msgstr "" msgid "&View at Revision" msgstr "" msgid "View file as it appeared at this revision" msgstr "" msgid "&Save at Revision..." msgstr "" msgid "Save file as it appeared at this revision" msgstr "" msgid "Save file to" msgstr "" msgid "&Edit Local" msgstr "" msgid "&Open Local" msgstr "" msgid "E&xplore Local" msgstr "" msgid "Open parent folder of current file in the system file manager" msgstr "" msgid "&Copy Patch" msgstr "" msgid "Copy &Path" msgstr "" msgid "Copy full path of file(s) to the clipboard" msgstr "" msgid "&Revert to Revision..." msgstr "" msgid "Open S&ubrepository" msgstr "" msgid "Open the selected subrepository" msgstr "" msgid "E&xplore Folder" msgstr "" msgid "Open the selected folder in the system file manager" msgstr "" msgid "Open &Terminal" msgstr "" msgid "Open a shell terminal in the selected folder" msgstr "" msgid "Custom Tools" msgstr "" msgid "Diff &Local" msgstr "" msgid "&View Missing" msgstr "" msgid "View O&ther" msgstr "" msgid "Add &Largefiles..." msgstr "" msgid "&Forget" msgstr "" msgid "&Delete Unversioned..." msgstr "" msgid "Confirm Delete Unversioned" msgstr "" msgid "Delete the following unversioned files?" msgstr "" msgid "&Delete" msgstr "" msgid "Re&move Versioned" msgstr "" msgid "&Revert..." msgstr "" msgid "Uncommited merge - please select a parent revision" msgstr "" msgid "Revert files to local or other parent?" msgstr "" msgid "&Local" msgstr "" msgid "&Other" msgstr "" msgid "Confirm Revert" msgstr "" msgid "Revert local file changes?" msgstr "" msgid "&Revert with backup" msgstr "" msgid "&Discard changes" msgstr "" msgid "Revert the following files?" msgstr "" msgid "&Revert" msgstr "" msgid "&Copy..." msgstr "" msgid "Re&name..." msgstr "" msgid "&Ignore..." msgstr "" msgid "Edit Re&jects" msgstr "" msgid "Manually resolve rejected patch chunks" msgstr "" msgid "De&tect Renames..." msgstr "" msgid "&Mark Resolved" msgstr "" msgid "&Mark Unresolved" msgstr "" msgid "Restart Mer&ge" msgstr "" msgid "Was renamed from" msgstr "" msgid "Restart Merge &with" msgstr "" msgid "Display the file anyway" msgstr "" msgid "Diff not displayed: " msgstr "" #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid "File is binary" msgstr "" msgid "File may be binary (maximum line length exceeded)" msgstr "" msgid "File or diffs not displayed: " msgstr "" msgid " (was added)" msgstr "" #, python-format msgid " (copied from %s)" msgstr "" #, python-format msgid " (renamed from %s)" msgstr "" msgid " (is a symlink)" msgstr "" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" msgid " (was deleted)" msgstr "" msgid " (was added, now missing)" msgstr "" msgid " (is unversioned)" msgstr "" msgid "exec mode has been set" msgstr "" msgid "exec mode has been unset" msgstr "" #, python-format msgid "changeset: %s" msgstr "" msgid "Initial revision" msgstr "" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" msgid "Subrepo created and set to initial revision." msgstr "" msgid "Subrepo initialized to revision:" msgstr "" msgid "Subrepo removed from repository." msgstr "" msgid "Previously the subrepository was at the following revision:" msgstr "" msgid "Subrepo was not changed." msgstr "" msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "" msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "" msgid "Subrepo state is:" msgstr "" msgid "Revision has changed to:" msgstr "" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "" msgid "From:" msgstr "" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" msgid "Subrepository not found in the working directory." msgstr "" msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" msgid "Not a Mercurial subrepo, not previewable" msgstr "" #, python-format msgid "Error previewing subrepo: %s" msgstr "" msgid "Subrepo may be damaged or inaccessible." msgstr "" msgid "The subrepository is dirty." msgstr "" msgid "File Status:" msgstr "" msgid "(is a changed sub-repository)" msgstr "" msgid "(is an unchanged sub-repository)" msgstr "" msgid "(is a dirty sub-repository)" msgstr "" msgid "(is a new sub-repository)" msgstr "" msgid "(is a removed sub-repository)" msgstr "" msgid "(is a changed and dirty sub-repository)" msgstr "" msgid "(is a new and dirty sub-repository)" msgstr "" msgid "open..." msgstr "" #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "" msgid "File History Log Columns" msgstr "" msgid "Back" msgstr "" msgid "Forward" msgstr "" msgid "Diff Selected &Changesets" msgstr "" msgid "&Diff Selected File Revisions" msgstr "" msgid "Show Revision &Details" msgstr "" msgid "Too many rows selected for menu" msgstr "" msgid "File Differences Log Columns" msgstr "" msgid "Next diff" msgstr "" msgid "Previous diff" msgstr "" msgid "Unicode" msgstr "" msgid "Western Europe" msgstr "" msgid "Unified Chinese" msgstr "" msgid "Traditional Chinese" msgstr "" msgid "Korean" msgstr "" msgid "Japanese" msgstr "" msgid "Thai" msgstr "" msgid "Central and Eastern Europe" msgstr "" msgid "Cyrillic" msgstr "" msgid "Russian" msgstr "" msgid "Ukrainian" msgstr "" msgid "Greek" msgstr "" msgid "Turkish" msgstr "" msgid "Arabic" msgstr "" msgid "Hebrew" msgstr "" msgid "Vietnamese" msgstr "" msgid "Baltic" msgstr "" msgid "Southern Europe" msgstr "" msgid "Nordic" msgstr "" msgid "Celtic" msgstr "" msgid "South-Eastern Europe" msgstr "" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "" msgid "View change as unified diff output" msgstr "" msgid "View change in context of file" msgstr "" msgid "Annotate with revision numbers" msgstr "" msgid "Next Diff" msgstr "" msgid "Previous Diff" msgstr "" msgid "Open shelve tool" msgstr "" msgid "&Auto Detect" msgstr "" msgid "Show changes from first parent" msgstr "" msgid "Show changes from second parent" msgstr "" msgid "E&ncoding" msgstr "" msgid "&Search in Current File" msgstr "" msgid "Search in All &History" msgstr "" msgid "Go to Line" msgstr "" #, python-format msgid "Enter line number (1 - %d)" msgstr "" msgid "Show &Author" msgstr "" msgid "Show &Date" msgstr "" msgid "Show &Revision" msgstr "" msgid "Annotate Op&tions" msgstr "" msgid "Search Selected Text" msgstr "" msgid "In Current &File" msgstr "" msgid "In &Current Revision" msgstr "" msgid "In &Original Revision" msgstr "" msgid "In All &History" msgstr "" msgid "Go to" msgstr "" msgid "View File at" msgstr "" msgid "Diff File to" msgstr "" msgid "&Originating Revision" msgstr "" msgid "&Parent Revision" msgstr "" #, python-format msgid "&Parent Revision (%d)" msgstr "" msgid "&Mark Excluded Changes" msgstr "" msgid "(excluded from the next commit)" msgstr "" msgid "Interrupted graft operation found" msgstr "" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" msgid "Continue or abort interrupted graft operation?" msgstr "" msgid "To graft destination" msgstr "" msgid "Use my user name instead of graft committer user name" msgstr "" msgid "Use current date" msgstr "" msgid "Append graft info to log message" msgstr "" msgid "Graft" msgstr "" msgid "Abort" msgstr "" #, python-format msgid "Graft - %s" msgstr "" msgid "Graft changeset" msgstr "" #, python-format msgid "Graft changeset #%d of %d" msgstr "" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" msgid "You may continue or start the graft" msgstr "" msgid "Graft is complete" msgstr "" msgid "Graft failed" msgstr "" msgid "Graft aborted" msgstr "" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" msgid "You may continue the graft" msgstr "" msgid "Exiting with an unfinished graft is not recommended." msgstr "" msgid "Consider aborting the graft first." msgstr "" msgid "&Exit" msgstr "" msgid "### regular expression search pattern ###" msgstr "" msgid "Regexp:" msgstr "" msgid "Ignore case" msgstr "" msgid "Search" msgstr "" msgid "Working Copy" msgstr "" msgid "All History" msgstr "" msgid "Report only the first match per file" msgstr "" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "" msgid "Includes:" msgstr "" msgid "Excludes:" msgstr "" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" #, python-format msgid "\"%s\" removed from search history" msgstr "" #, python-format msgid "\"%s\" removed from path history" msgstr "" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "" #, python-format msgid "grep: %s\n" msgstr "" #, python-format msgid "%d matches found" msgstr "" msgid "No matches found" msgstr "" msgid "Searching" msgstr "" msgid "history" msgstr "" msgid "Interrupted" msgstr "" msgid "files" msgstr "" #, python-format msgid "Skipping %s, unable to read" msgstr "" msgid "Vi&ew File" msgstr "" msgid "&View Changeset" msgstr "" msgid "Annotate &File" msgstr "" msgid "File" msgstr "" msgid "Line" msgstr "" msgid "Rev" msgstr "" msgid "User" msgstr "" msgid "Match Text" msgstr "" msgid "TortoiseHg Search" msgstr "" #, python-format msgid "Detect Copies/Renames in %s" msgstr "" msgid "Unrevisioned Files" msgstr "" msgid "Refresh file list" msgstr "" #, python-format msgid "Min Similarity: %d%%" msgstr "" msgid "Only consider deleted files" msgstr "" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "" msgid "Find Renames" msgstr "" msgid "Find copy and/or rename sources" msgstr "" msgid "Candidate Matches" msgstr "" msgid "Accept All Matches" msgstr "" msgid "Accept Selected Matches" msgstr "" msgid "Differences from Source to Dest" msgstr "" msgid "Search already in progress" msgstr "" msgid "Cannot start a new search" msgstr "" msgid "No files to find" msgstr "" msgid "There are no files that may have been renamed" msgstr "" msgid "Multiple sources chosen" msgstr "" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" #. i18n: percent format #, python-format msgid "%d%%" msgstr "" msgid "Source" msgstr "" msgid "Dest" msgstr "" msgid "% Match" msgstr "" msgid "Sending Email" msgstr "" msgid "Email" msgstr "" msgid "To:" msgstr "" msgid "Cc:" msgstr "" msgid "In-Reply-To:" msgstr "" msgid "Message identifier to reply to, for threading" msgstr "" msgid "Flag:" msgstr "" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" msgid "Send changesets as Hg patches" msgstr "" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" msgid "Use extended (git) patch format" msgstr "" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" msgid "Plain, do not prepend Hg header" msgstr "" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" msgid "Send single binary bundle, not patches" msgstr "" msgid "send patches as part of the email body" msgstr "" msgid "body" msgstr "" msgid "send patches as attachments" msgstr "" msgid "attach" msgstr "" msgid "send patches as inline attachments" msgstr "" msgid "inline" msgstr "" msgid "add diffstat output to messages" msgstr "" msgid "diffstat" msgstr "" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" msgid "Write patch series (bundle) description" msgstr "" msgid "Subject:" msgstr "" msgid "Changesets" msgstr "" msgid "Select &All" msgstr "" msgid "Select &None" msgstr "" msgid "Edit" msgstr "" msgid "Preview" msgstr "" msgid "&Settings" msgstr "" msgid "Send &Email" msgstr "" msgid "&Close" msgstr "" #, python-format msgid "Ignore filter - %s" msgstr "" msgid "Glob" msgstr "" msgid "Regexp" msgstr "" msgid "Add" msgstr "Ekle" msgid "Edit File" msgstr "" msgid "Ignore Filter" msgstr "" msgid "Untracked Files" msgstr "" msgid "Backspace or Del to remove row(s)" msgstr "" msgid "Add ignore filter..." msgstr "" msgid "selected files" msgstr "" msgid "Ignore " msgstr "" msgid "Invalid glob expression" msgstr "" msgid "Invalid regexp expression" msgstr "" msgid "Unable to read repository status" msgstr "" msgid "New file created" msgstr "" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" msgid "Unable to write .hgignore file" msgstr "" msgid "Copy working directory files from skeleton" msgstr "" msgid "Create special files (.hgignore, ...)" msgstr "" msgid "Make repo compatible with Mercurial <1.7" msgstr "" msgid "New Repository" msgstr "" msgid "&Create" msgstr "" msgid "Unable to create a config file" msgstr "" msgid "Insufficient access rights." msgstr "" msgid "Show Log" msgstr "" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" msgid "Add as &Largefiles" msgstr "" msgid "Add as &Normal Files" msgstr "" msgid "Invalid Patterns" msgstr "" msgid "Failed to process largefiles.patterns." msgstr "" msgid "Word docs (*.doc *.docx)" msgstr "" msgid "PDF docs (*.pdf)" msgstr "" msgid "Excel files (*.xls *.xlsx)" msgstr "" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "" msgid "Refresh lock information" msgstr "" msgid "Lock a file not described in .hglocks" msgstr "" msgid "Stop current operation" msgstr "" msgid "Locked And Lockable Files:" msgstr "" msgid "Path" msgstr "" msgid "Locking User" msgstr "" msgid "Purpose" msgstr "" msgid "Simplelock extension not enabled" msgstr "" msgid "Please enable and configure simplelock" msgstr "" msgid "Open a (nonmergable) file you wish to be locked" msgstr "" msgid "File was not within current repository" msgstr "" #, python-format msgid "Locking %s" msgstr "" #, python-format msgid "Unlocking %s" msgstr "" msgid "Refreshing locks..." msgstr "" #, python-format msgid "Lock of %s successful" msgstr "" #, python-format msgid "Lock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s successful" msgstr "" msgid "Ready, double click to lock or unlock" msgstr "" msgid "Ready" msgstr "" msgid "You can only release your own locks" msgstr "" msgid "Find revisions matching fields of:" msgstr "" msgid "Revision to Match:" msgstr "" msgid "Fields to match:" msgstr "" msgid "Summary (first description line)" msgstr "" msgid "Description" msgstr "" msgid "Author" msgstr "" msgid "Date" msgstr "" msgid "Files" msgstr "" msgid "Diff contents" msgstr "" msgid "Subrepo states" msgstr "" msgid "Branch" msgstr "" msgid "Phase" msgstr "" msgid "&Match" msgstr "" #, python-format msgid "Find matches - %s" msgstr "" msgid "Revisions to Match:" msgstr "" #, python-format msgid "Match any of %d revisions" msgstr "" msgid "Unknown revision!" msgstr "" msgid "Parse Error!" msgstr "" #, python-format msgid "Merge - %s" msgstr "" msgid "Do you want to exit?" msgstr "" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" msgid "Prepare to merge" msgstr "" msgid "Verify merge targets and ensure your working directory is clean." msgstr "" msgid "Not a head revision!" msgstr "" msgid "Merge from (other revision)" msgstr "" msgid "Merge to (working directory)" msgstr "" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" msgid "Or use:" msgstr "" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "" msgid "Discard all changes from the other revision" msgstr "" msgid "&Discard" msgstr "" msgid "Confirm Discard Changes" msgstr "" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" msgctxt "working dir state" msgid "Clean" msgstr "" msgid "Merging..." msgstr "" msgid "Automatically advance to next page when merge is complete." msgstr "" #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" msgid "" "No merge conflicts, ready to commit or review" msgstr "" msgid "Commit merge results" msgstr "" msgid "Commit Options" msgstr "" msgid "Commit Now" msgstr "" msgid "Commit Later" msgstr "" msgid "Merge changeset" msgstr "" msgid "Syntax Highlighting" msgstr "" msgid "Paste &Filenames" msgstr "" msgid "App&ly Format" msgstr "" msgid "C&onfigure Format" msgstr "" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "" msgid "&Commit to Queue..." msgstr "" msgid "Create &New Queue..." msgstr "" msgid "&Rename Active Queue..." msgstr "" msgid "&Delete Queue..." msgstr "" msgid "&Purge Queue..." msgstr "" msgid "Create Patch Queue" msgstr "" msgid "New patch queue name" msgstr "" msgid "Create" msgstr "" msgid "Rename Patch Queue" msgstr "" #, python-format msgid "Rename patch queue '%s' to" msgstr "" msgid "Rename" msgstr "Yeniden Adlandır" msgid "Delete Patch Queue" msgstr "" msgid "Delete reference to" msgstr "" msgid "Delete" msgstr "" msgid "Purge Patch Queue" msgstr "" msgid "Remove patch directory of" msgstr "" msgid "Purge" msgstr "" msgid "Rename Patch" msgstr "" #, python-format msgid "Rename patch %s to:" msgstr "" msgid "no guards" msgstr "" msgid "Patch Queue" msgstr "Paket Kuyruğu" msgctxt "MQ QPush" msgid "Push" msgstr "" msgid "Apply one patch" msgstr "" msgctxt "MQ QPush" msgid "Push all" msgstr "" msgid "Apply all patches" msgstr "" msgid "Pop" msgstr "" msgid "Unapply one patch" msgstr "" msgid "Pop all" msgstr "" msgid "Unapply all patches" msgstr "" msgid "Go &to Patch" msgstr "" msgid "&Apply Only This Patch" msgstr "" msgid "Apply only the selected patch" msgstr "" msgid "&Finish Patch" msgstr "" msgid "Move applied patches into repository history" msgstr "" msgid "&Delete Patches..." msgstr "" msgid "Delete selected patches" msgstr "" msgid "Re&name Patch..." msgstr "" msgid "Set &Guards..." msgstr "" msgid "Configure guards for selected patch" msgstr "" msgid "Patch Queue Actions Toolbar" msgstr "" msgid "Configure guards" msgstr "" #, python-format msgid "Input new guards for %s:" msgstr "" msgid "Confirm patch queue switch" msgstr "" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "" #, python-format msgid "Guards: %d/%d" msgstr "" msgid "MQ options" msgstr "" msgid "Force push or pop (--force)" msgstr "" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "" msgid "Submitting p4 changelist..." msgstr "" msgid "Reverting p4 changelist..." msgstr "" msgid "Patch Branch Toolbar" msgstr "" msgid "Merge all pending dependencies" msgstr "" msgid "Backout current patch branch" msgstr "" msgid "Backport part of a changeset to a dependency" msgstr "" msgid "Start a new patch branch" msgstr "" msgid "Edit patch dependency graph" msgstr "" msgid "will be closed" msgstr "" #, python-format msgid "needs merge of %i heads\n" msgstr "" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "" #, python-format msgid "needs merge with %s\n" msgstr "" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "" msgid "&Goto (update workdir)" msgstr "" msgid "&Merge" msgstr "" msgid "No patch branch selected" msgstr "" msgid "No editor found" msgstr "" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" msgid "Graph" msgstr "" msgid "Status" msgstr "" msgid "Title" msgstr "" msgid "Message" msgstr "" msgid "New Patch Branch" msgstr "" msgid "Patch message:" msgstr "" msgid "Patch date:" msgstr "" msgid "Patch user:" msgstr "" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" msgid "Review Board" msgstr "" msgid "Password:" msgstr "" msgid "Error" msgstr "" #, python-format msgid "Review draft posted to %s\n" msgstr "" #, python-format msgid "Review published to %s\n" msgstr "" msgid "Success" msgstr "" msgid "Repository ID:" msgstr "" msgid "Post Review" msgstr "" msgid "Review ID:" msgstr "" msgid "Update the fields of this existing request" msgstr "" msgid "Update Review" msgstr "" msgid "Create diff with all outgoing changes" msgstr "" msgid "Create diff with all changes on this branch" msgstr "" msgid "Publish request immediately" msgstr "" msgid "%p%" msgstr "" msgid "Connecting to Review Board..." msgstr "" msgid "Target:" msgstr "" msgid "Do not modify working copy (-k/--keep)" msgstr "" #, python-format msgid "Prune - %s" msgstr "" msgid "&Prune" msgstr "" msgid "No unknown files found" msgstr "" msgid "No ignored files found" msgstr "" msgid "No trash files found" msgstr "" msgid "Delete empty folders" msgstr "" msgid "Preserve files beginning with .hg" msgstr "" #, python-format msgid "%s - purge" msgstr "" msgid "Checking" msgstr "" msgid "Ready to purge." msgstr "" #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "" msgstr[1] "" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "" msgstr[1] "" msgid "Confirm file deletions" msgstr "" msgid "Are you sure you want to delete these files and/or folders?" msgstr "" msgid "Deletion failures" msgstr "" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "" msgstr[1] "" msgid "Deleting trash folder..." msgstr "" #, python-format msgid "Deleted %d files" msgstr "" #, python-format msgid "Deleted %d files and %d folders" msgstr "" msgid "Delete Patches" msgstr "" msgid "Remove patches from queue?" msgstr "" msgid "Keep patch files" msgstr "" #, python-format msgid "Patch fold - %s" msgstr "" msgid "New patch message:" msgstr "" msgid "Patches to fold" msgstr "" msgid "&Undo" msgstr "" msgid "&Redo" msgstr "" msgid "Cu&t" msgstr "" msgid "&Copy" msgstr "" msgid "&Paste" msgstr "" msgid "&Editor Options" msgstr "" msgid "&Wrap" msgstr "" msgctxt "wrap mode" msgid "&None" msgstr "" msgid "&Word" msgstr "" msgid "&Character" msgstr "" msgid "White&space" msgstr "" msgid "&Visible" msgstr "" msgid "&Invisible" msgstr "" msgid "&AfterIndent" msgstr "" msgid "&TAB Inserts" msgstr "" msgid "&Auto" msgstr "" msgid "&TAB" msgstr "" msgid "&Spaces" msgstr "" msgid "EOL &Visibility" msgstr "" msgid "EOL &Mode" msgstr "" msgid "&Windows" msgstr "" msgid "&Unix" msgstr "" msgid "&Mac" msgstr "" msgid "&Auto-Complete" msgstr "" msgid "### regular expression ###" msgstr "" msgid "Regular expression search pattern" msgstr "" msgid "Wrap search" msgstr "" msgid "Prev" msgstr "" msgid "Next" msgstr "" msgid "Unable to read file" msgstr "" msgid "Could not open the specified file for reading." msgstr "" msgid "This appears to be a binary file." msgstr "" msgid "An error occurred while reading the file." msgstr "" msgid "Text Translation Failure" msgstr "" msgid "Could not translate the file content from native encoding." msgstr "" msgid "Several characters would be lost." msgstr "" msgid "Unable to write file" msgstr "" msgid "Could not translate the file content to native encoding." msgstr "" msgid "Could not open the specified file for writing." msgstr "" msgid "An error occurred while writing the file." msgstr "" msgid "Try refreshing your repository." msgstr "" #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
                                                                                                  Please edit your config" msgstr "" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
                                                                                                  Please fix your config" msgstr "" #, python-format msgid "Operation aborted:

                                                                                                  %(arg0)s." msgstr "" msgid "Repository is locked" msgstr "" msgid "hint:" msgstr "" msgid "Repository Error" msgstr "" msgid "No visual editor configured" msgstr "" msgid "Please configure a visual editor." msgstr "" msgid "Editor launch failure" msgstr "" msgid "Failed to open path in terminal" msgstr "" #, python-format msgid "\"%s\" is not a valid directory" msgstr "" #, python-format msgid "Invalid configuration: %s" msgstr "" msgid "Unable to start the following command:" msgstr "" msgid "No shell configured" msgstr "" msgid "A terminal shell must be configured" msgstr "" msgid "Please enter a username" msgstr "" msgid "You must identify yourself to Mercurial" msgstr "" msgid "Unable to translate input to local encoding." msgstr "" msgid "Checkmark files to add" msgstr "" msgid "Checkmark files to forget" msgstr "" msgid "Forget" msgstr "" msgid "Checkmark files to revert" msgstr "" msgid "Revert" msgstr "" msgid "Checkmark files to remove" msgstr "" msgid "Remove" msgstr "Kaldır" #, python-format msgid "%s - hg %s" msgstr "" msgid "Do not save backup files (*.orig)" msgstr "" msgid "Force removal of modified files (--force)" msgstr "" msgid "Add &Largefiles" msgstr "" msgid "No files selected" msgstr "" msgid "No operation to perform" msgstr "" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" msgid "Remove &Unmodified Files" msgstr "" msgid "Remove &All Selected Files" msgstr "" msgid "Rebase changeset and descendants" msgstr "" msgid "To rebase destination" msgstr "" msgid "Swap source and destination" msgstr "" msgid "Keep original changesets (--keep)" msgstr "" msgid "Keep original branch names (--keepbranches)" msgstr "" msgid "Collapse the rebased changesets (--collapse)" msgstr "" msgid "Rebase entire source branch (-b/--base)" msgstr "" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "" msgid "Rebase" msgstr "" #, python-format msgid "Rebase - %s" msgstr "" msgid "" "Before rebase, you must
                                                                                                  commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the rebase" msgstr "" msgid "Rebase is complete" msgstr "" msgid "Rebase failed" msgstr "" msgid "Rebase aborted" msgstr "" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" msgid "Exiting with an unfinished rebase is not recommended." msgstr "" msgid "Consider aborting the rebase first." msgstr "" #, python-format msgid "Merge rejected patch chunks into %s" msgstr "" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "" msgid "Mark this chunk as unresolved" msgstr "" msgid "Reload File" msgstr "" msgid "Are you sure you want to reload this file?" msgstr "" msgid "All unsaved changes will be lost." msgstr "" msgid "Warning" msgstr "" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" msgid "Copy source -> destination" msgstr "" msgid "Copy Error" msgstr "" msgid "Rename Error" msgstr "" msgid "Select Source File" msgstr "" msgid "Select Source Folder" msgstr "Kaynak dosyayı seç" msgid "Source does not exist." msgstr "" msgid "The source must be within the repository tree." msgstr "" msgid "The destination must be within the repository tree." msgstr "" msgid "Destination file already exists." msgstr "" msgid "Are you sure you want to overwrite it ?" msgstr "" #, python-format msgid "Copy - %s" msgstr "" #, python-format msgid "Rename - %s" msgstr "" msgid "Show all" msgstr "" msgid "### revision set query ###" msgstr "" msgid "Clear current query and query text" msgstr "" msgid "Trigger revision set query" msgstr "" msgid "Open advanced query editor" msgstr "" msgid "Delete selected query from history" msgstr "" msgid "filter" msgstr "" msgid "Toggle filtering of non-matched changesets" msgstr "" msgid "Show/Hide hidden changesets" msgstr "" msgid "Toggle graft relations visibility" msgstr "" msgid "Keyword Search" msgstr "" msgid "Revision Set" msgstr "" msgid "(unsaved)" msgstr "" msgid "Display graph the named branch only" msgstr "" msgid "Display only active branches" msgstr "" msgid "Display closed branches" msgstr "" msgid "Include all ancestors" msgstr "" msgctxt "column header" msgid "Graph" msgstr "" msgctxt "column header" msgid "Rev" msgstr "" msgctxt "column header" msgid "Branch" msgstr "" msgctxt "column header" msgid "Description" msgstr "" msgctxt "column header" msgid "Author" msgstr "" msgctxt "column header" msgid "Tags" msgstr "" msgctxt "column header" msgid "Latest tags" msgstr "" msgctxt "column header" msgid "Node" msgstr "" msgctxt "column header" msgid "Git Commit" msgstr "" msgctxt "column header" msgid "Age" msgstr "" msgctxt "column header" msgid "Local Time" msgstr "" msgctxt "column header" msgid "UTC Time" msgstr "" msgctxt "column header" msgid "Changes" msgstr "" msgctxt "column header" msgid "Converted From" msgstr "" msgctxt "column header" msgid "Phase" msgstr "" msgctxt "column header" msgid "Filename" msgstr "" msgid "Searching..." msgstr "" #, python-format msgid "filling (%d)" msgstr "" msgid "Mercurial User" msgstr "" msgid "Repository Registry" msgstr "" msgid "Show &Paths" msgstr "" msgid "Show S&hort Paths" msgstr "" msgid "&Scan Repositories at Startup" msgstr "" msgid "Scan &Remote Repositories" msgstr "" msgid "&Refresh Repository List" msgstr "" msgid "Refresh the Repository Registry list" msgstr "" msgid "&Open" msgstr "" msgid "Open the repository in a new tab" msgstr "" msgid "&Open All" msgstr "" msgid "Open all repositories in new tabs" msgstr "" msgid "New &Group" msgstr "" msgid "Create a new group" msgstr "" msgid "Rename the entry" msgstr "" msgid "Settin&gs" msgstr "" msgid "View the repository's settings" msgstr "" msgid "Re&move from Registry" msgstr "" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" msgid "Clon&e..." msgstr "" msgid "Clone Repository" msgstr "" msgid "E&xplore" msgstr "" msgid "Open the repository in a file browser" msgstr "" msgid "&Terminal" msgstr "" msgid "Open a shell terminal in the repository root" msgstr "" msgid "&Add Repository..." msgstr "" msgid "Add a repository to this group" msgstr "" msgid "A&dd Subrepository..." msgstr "" msgid "Convert an existing repository into a subrepository" msgstr "" msgid "Remo&ve Subrepository..." msgstr "" msgid "Remove this subrepository from the current revision" msgstr "" msgid "Copy the root path of the repository to the clipboard" msgstr "" msgid "Sort by &Name" msgstr "" msgid "Sort the group by short name" msgstr "" msgid "Sort by &Path" msgstr "" msgid "Sort the group by full path" msgstr "" msgid "&Sort by .hgsub" msgstr "" msgid "Order the subrepos as in .hgsub" msgstr "" msgid "Select repository directory to add" msgstr "" msgid "Select an existing repository to add as a subrepo" msgstr "" msgid "Cannot add subrepository" msgstr "" #, python-format msgid "%s is not a valid repository" msgstr "" #, python-format msgid "\"%s\" is not a folder" msgstr "" msgid "A repository cannot be added as a subrepo of itself" msgstr "" #, python-format msgid "" "The selected folder:

                                                                                                  %s

                                                                                                  is not inside the target repository." "

                                                                                                  This may be allowed but is greatly discouraged.
                                                                                                  If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" msgid "Cannot open repository" msgstr "" #, python-format msgid "The selected repository:

                                                                                                  %s

                                                                                                  cannot be open!" msgstr "" msgid "Subrepository already exists" msgstr "" #, python-format msgid "" "The selected repository:

                                                                                                  %s

                                                                                                  is already a subrepository of:" "

                                                                                                  %s

                                                                                                  as: \"%s\"" msgstr "" msgid "Failed to add subrepository" msgstr "" #, python-format msgid "Cannot open the .hgsub file in:

                                                                                                  %s" msgstr "" msgid "Failed to add repository" msgstr "" #, python-format msgid "The .hgsub file already contains the line:

                                                                                                  %s" msgstr "" msgid "Subrepo added to .hgsub file" msgstr "" #, python-format msgid "" "The selected subrepo:

                                                                                                  %s

                                                                                                  has been added to the .hgsub " "file of the repository:

                                                                                                  %s

                                                                                                  Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" #, python-format msgid "Cannot update the .hgsub file in:

                                                                                                  %s" msgstr "" msgid "Could not open .hgsub file" msgstr "" msgid "Cannot read the .hgsub file.

                                                                                                  Subrepository removal failed." msgstr "" msgid "Subrepository not found" msgstr "" msgid "" "The selected subrepository was not found on the .hgsub file.

                                                                                                  Perhaps it " "has already been removed?" msgstr "" msgid "&Yes" msgstr "&Evet" msgid "&No" msgstr "&Hayır" msgid "Remove the selected repository?" msgstr "" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" msgid "Subrepository removed from .hgsub" msgstr "" msgid "" "The selected subrepository has been removed from the .hgsub file.

                                                                                                  Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" msgid "Could not update .hgsub file" msgstr "" msgid "Cannot update the .hgsub file.

                                                                                                  Subrepository removal failed." msgstr "" #, python-format msgid "Unsupported repository type (%s)" msgstr "" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "" msgid "New Group" msgstr "" msgid "Confirm Delete" msgstr "" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "" msgid "Could not get subrepository list" msgstr "" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

                                                                                                  %s" msgstr "" msgid "Could not open some subrepositories" msgstr "" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

                                                                                                  %s

                                                                                                  The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

                                                                                                  %s" msgstr "" msgid "Updating repository registry" msgstr "" #, python-format msgid "Loading repository %s" msgstr "" msgid "Repository Registry updated" msgstr "" msgid "Close tab" msgstr "" msgid "Close other tabs" msgstr "" msgid "Undo close tab" msgstr "" msgid "Reopen last closed tab" msgstr "" msgid "Undo close other tabs" msgstr "" msgid "Reopen last closed tab group" msgstr "" msgid "Failed to open repository" msgstr "" msgid "&Sort" msgstr "" #, python-format msgid "Local Repository %s" msgstr "" #, python-format msgid "" "An exception happened while loading the subrepos of:

                                                                                                  \"%s\"

                                                                                                  " msgstr "" #, python-format msgid "The exception error message was:

                                                                                                  %s

                                                                                                  " msgstr "" msgid "Click OK to continue or Abort to exit." msgstr "" msgid "Error loading subrepos" msgstr "" msgid "Unable to update repository name" msgstr "" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "" msgid "default" msgstr "" msgid "C&hoose Log Columns..." msgstr "" msgid "&Resize Columns" msgstr "" #, python-format msgid "Goto ancestor of %s and %s" msgstr "" #, python-format msgid "Can't find revision '%s'" msgstr "" msgid "Drag to change order" msgstr "" msgid "Workbench Log Columns" msgstr "" msgctxt "tab tooltip" msgid "Revision details" msgstr "" msgctxt "tab tooltip" msgid "Commit" msgstr "" msgctxt "tab tooltip" msgid "Search" msgstr "" msgctxt "tab tooltip" msgid "Console log" msgstr "" msgctxt "tab tooltip" msgid "Synchronize" msgstr "" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "" #, python-format msgid "%s " msgstr "" #, python-format msgid "Found %d incoming changesets" msgstr "" msgid "Pull" msgstr "" msgid "Pull incoming changesets into your repository" msgstr "" msgid "Reject incoming changesets" msgstr "" #, python-format msgid "Push current branch (%s)" msgstr "" #, python-format msgid "Push up to current revision (#%d)" msgstr "" #, python-format msgid "Push up to revision #%d" msgstr "" msgid "Push all" msgstr "" msgid "no outgoing changesets" msgstr "" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets" msgstr "" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "" msgid "Nothing to push" msgstr "" msgid "No revision found" msgstr "" #, python-format msgid "%s - verify repository" msgstr "" #, python-format msgid "%s - recover repository" msgstr "" msgid "No transaction available" msgstr "" msgid "There is no rollback transaction available" msgstr "" msgid "Undo last commit?" msgstr "Son işleme geri alınsın mı?" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "" msgid "Undo last transaction?" msgstr "" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "" msgid "Unable to determine working copy revision\n" msgstr "" msgid "Remove current working revision?" msgstr "" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" msgid "Tab cannot exit" msgstr "" msgid "Pus&h" msgstr "" msgid "Push to &Here" msgstr "" msgid "Push Selected &Branch" msgstr "" msgid "Push &All" msgstr "" msgid "&Update..." msgstr "" msgid "Bro&wse at Revision" msgstr "" msgid "&Merge with Local..." msgstr "" msgid "&Tag..." msgstr "" msgid "Boo&kmark..." msgstr "" msgid "Top&ic..." msgstr "" msgid "Sig&n..." msgstr "" msgid "&Backout..." msgstr "" msgid "Revert &All Files..." msgstr "" msgid "Copy &Hash" msgstr "" msgid "E&xport" msgstr "" msgid "E&xport Patch..." msgstr "" msgid "&Email Patch..." msgstr "" msgid "&Archive..." msgstr "" msgid "&Bundle Rev and Descendants..." msgstr "" msgid "Change &Phase to" msgstr "" msgid "&Graft to Local..." msgstr "" msgid "Modi&fy History" msgstr "" msgid "&Unapply Patch" msgstr "" msgid "Import to &MQ" msgstr "" msgid "MQ &Options" msgstr "" msgid "&Rebase..." msgstr "" msgid "&Prune..." msgstr "" msgid "&Strip..." msgstr "" msgid "Post to Re&view Board..." msgstr "" msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "" msgid "Write diff file" msgstr "" msgid "Unable to write diff file" msgstr "" msgid "Unable to compress history" msgstr "" msgid "Selected changeset pair not related" msgstr "" msgid "Visual Diff..." msgstr "" msgid "Export Diff..." msgstr "" msgid "Export Selected..." msgstr "" msgid "Email Selected..." msgstr "" msgid "Copy Selected as Patch" msgstr "" msgid "Archive DAG Range..." msgstr "" msgid "Export DAG Range..." msgstr "" msgid "Email DAG Range..." msgstr "" msgid "Bundle DAG Range..." msgstr "" msgid "Bisect - Good, Bad..." msgstr "" msgid "Bisect - Bad, Good..." msgstr "" msgid "Compress History..." msgstr "" msgid "Rebase..." msgstr "" msgid "Goto common ancestor" msgstr "" msgid "Graft Selected to local..." msgstr "" msgid "&Prune Selected..." msgstr "" msgid "Post Selected to Review Board..." msgstr "" msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "" msgid "Apply onto original parent" msgstr "" msgid "Apply only this patch" msgstr "" msgid "Fold patches..." msgstr "" msgid "Delete patches..." msgstr "" msgid "Rename patch..." msgstr "" msgid "Pull to here..." msgstr "" msgid "Visual diff..." msgstr "" msgid "Export patch" msgstr "" msgid "Patch Files (*.patch)" msgstr "" msgid "Cannot export revision" msgstr "" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" msgid "There is already an existing folder with that same name." msgstr "" msgid "Replace" msgstr "" msgid "Append" msgstr "" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" msgid "What do you want to do?\n" msgstr "" msgid "Replace the existing patch files.\n" msgstr "" msgid "Append the changes to the existing patch files.\n" msgstr "" msgid "Abort the export operation.\n" msgstr "" msgid "Patch files already exist" msgstr "" msgid "Patch exported" msgstr "" #, python-format msgid "" "Revision #%d (%s) was exported to:

                                                                                                  %s%s%s" msgstr "" msgid "Patches exported" msgstr "" #, python-format msgid "%d patches were exported to:

                                                                                                  %s" msgstr "" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

                                                                                                  Are you sure you want to use revert?

                                                                                                  (use " "update to checkout another revision)" msgstr "" msgid "Filter b&y" msgstr "" msgid "&Ancestors and Descendants" msgstr "" msgid "A&uthor" msgstr "" msgid "&Branch" msgstr "" msgid "&More Options..." msgstr "" msgid "Unable to merge" msgstr "" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "" msgid "Unable to backout" msgstr "" msgid "Write bundle" msgstr "" msgid "Backwards phase change requested" msgstr "" msgid "Do you really want to make this revision secret?" msgstr "" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" msgid "&Make secret" msgstr "" msgid "&Cancel" msgstr "&İptal" msgid "Do you really want to force a backwards phase transition?" msgstr "" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" msgid "&Force" msgstr "" msgid "Cannot import selected revision" msgstr "" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" msgid "Invalid command" msgstr "" msgid "The selected command is empty" msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" msgid "Failed to execute custom TortoiseHg command" msgstr "" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "" msgid "Failed to execute custom command" msgstr "" #, python-format msgid "The command \"%s\" could not be executed." msgstr "" #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" msgid "&Edit Toolbar" msgstr "" msgid "&Refresh" msgstr "" msgid "&Filter Toolbar" msgstr "" #, python-format msgid "TortoiseHg: %s" msgstr "" msgid "S&tatus Bar" msgstr "" #, python-format msgid "Resolve Conflicts - %s" msgstr "" msgid "Local revision information" msgstr "" msgid "Other revision information" msgstr "" msgid "Unresolved conflicts" msgstr "" msgid "Mercurial Re&solve" msgstr "" msgid "Attempt automatic (trivial) merge" msgstr "" msgid "Tool &Resolve" msgstr "" msgid "Merge using selected merge tool" msgstr "" msgid "&Take Local" msgstr "" msgid "Accept the local file version (yours)" msgstr "" msgid "Take &Other" msgstr "" msgid "Accept the other file version (theirs)" msgstr "" msgid "&Mark as Resolved" msgstr "" msgid "Mark this file as resolved" msgstr "" msgid "Diff &Local to Ancestor" msgstr "" msgid "&Diff Other to Ancestor" msgstr "" msgid "Resolved conflicts" msgstr "" msgid "&Edit File" msgstr "" msgid "Edit resolved file" msgstr "" msgid "3-&Way Diff" msgstr "" msgid "Visual three-way diff" msgstr "" msgid "Visual diff between resolved file and first parent" msgstr "" msgid "&Diff to Other" msgstr "" msgid "Visual diff between resolved file and second parent" msgstr "" msgid "Mark as &Unresolved" msgstr "" msgid "Mark this file as unresolved" msgstr "" msgid "Detected merge/diff tools:" msgstr "" msgid "Command output" msgstr "" msgid "Unable to show subrepository files" msgstr "" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" msgid "There are merge conflicts to be resolved" msgstr "" msgid "All conflicts are resolved." msgstr "" msgid "There are no conflicting file merges." msgstr "" msgid "Exit without finishing resolve?" msgstr "" msgid "Unresolved conflicts remain. Are you sure?" msgstr "" msgid "E&xit" msgstr "" msgid "Ext" msgstr "" msgid "Repository" msgstr "" msgid "" msgstr "" msgid "File List Toolbar" msgstr "" msgid "Ma&nifest Mode" msgstr "" msgid "Show all version-controlled files in tree view" msgstr "" msgid "&Flat List" msgstr "" msgid "### filter text ###" msgstr "" msgid "Changed by &This Commit" msgstr "" msgid "Show files changed by this commit" msgstr "" msgid "Compare to &1st Parent" msgstr "" msgid "Compare to &2nd Parent" msgstr "" msgid "Toggle parent to be used as the base revision" msgstr "" msgid "List Optio&ns" msgstr "" #, python-format msgid "%s - Revision Details (%s)" msgstr "" #, python-format msgid "Revert - %s" msgstr "" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "" msgid "Revert all files to this revision" msgstr "" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "" msgid "null revision (i.e. remove file(s))" msgstr "" msgid "Changeset:" msgstr "" msgid "Child:" msgstr "" msgid "Predecessors:" msgstr "" msgid "Successors:" msgstr "" msgid "Head is closed!" msgstr "" msgid "Changesets where username contains string." msgstr "" msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" msgid "Like \"keyword(string)\" but accepts a regex." msgstr "" msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" msgid "The named bookmark or all bookmarks." msgstr "" msgid "The named tag or all tags." msgstr "" msgid "Changeset is tagged." msgstr "" msgid "Changeset is a named branch head." msgstr "" msgid "Changeset is a merge changeset." msgstr "" msgid "Changeset is closed." msgstr "" msgid "" "Changesets within the interval, see help dates" msgstr "" msgid "Greatest common ancestor of the two changesets." msgstr "" msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" msgid "Changesets which modify files matched by pattern." msgstr "" msgid "Changesets which add files matched by pattern." msgstr "" msgid "Changesets which remove files matched by pattern." msgstr "" msgid "Changesets containing files matched by pattern." msgstr "" msgid "All changesets belonging to the branches of changesets in set." msgstr "" msgid "Members of a set with no children in set." msgstr "" msgid "Changesets which are descendants of changesets in set." msgstr "" msgid "Changesets that are ancestors of a changeset in set." msgstr "" msgid "Child changesets of changesets in set." msgstr "" msgid "The set of all parents for all changesets in set." msgstr "" msgid "First parent for all changesets in set, or the working directory." msgstr "" msgid "Second parent for all changesets in set, or the working directory." msgstr "" msgid "Changesets with no parent changeset in set." msgstr "" msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" msgid "Changeset with lowest revision number in set." msgstr "" msgid "Changeset with highest revision number in set." msgstr "" msgid "First n members of a set." msgstr "" msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "" msgid "All changesets, the same as 0:tip." msgstr "" msgid "Revision Set Query" msgstr "" msgid "all revisions converted from subversion" msgstr "" msgid "changeset which represents converted svn revision" msgstr "" msgid "Common sets" msgstr "" msgid "File pattern sets" msgstr "" msgid "Set Ancestry" msgstr "" msgid "Set Logic" msgstr "" msgid "" "help " "revsets" msgstr "" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" #, python-format msgid "thg: unknown command '%s'\n" msgstr "" #, python-format msgid "thg %s: %s\n" msgstr "" #, python-format msgid "thg: %s\n" msgstr "" #, python-format msgid "abort: %s!\n" msgstr "" #, python-format msgid "abort: %s\n" msgstr "" #, python-format msgid "(%s)\n" msgstr "" msgid "option --config may not be abbreviated!" msgstr "" msgid "invalid arguments" msgstr "" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" msgid "repository root directory or symbolic path name" msgstr "" msgid "enable additional output" msgstr "" msgid "suppress output" msgstr "" msgid "display help and exit" msgstr "" msgid "set/override config option (use 'section.name=value')" msgstr "" msgid "enable debugging output" msgstr "" msgid "start debugger" msgstr "" msgid "print command execution profile" msgstr "" msgid "do not fork GUI process" msgstr "" msgid "always fork GUI process" msgstr "" msgid "read file list from file" msgstr "" msgid "read file list from file encoding utf-8" msgstr "" msgid "thg about" msgstr "" msgid "thg add [FILE]..." msgstr "" msgid "revision to annotate" msgstr "" msgid "open to line" msgstr "" msgid "initial search pattern" msgstr "" msgid "thg annotate" msgstr "" #, python-format msgid "invalid line number: %s" msgstr "" msgid "revision to archive" msgstr "" msgid "thg archive" msgstr "" msgid "merge with old dirstate parent after backout" msgstr "" msgid "parent to choose when backing out merge" msgstr "" msgid "revision to backout" msgstr "" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "" msgid "thg bisect" msgstr "" msgid "revision" msgstr "" msgid "thg bookmarks [-r REV] [NAME]" msgstr "" msgid "only one new bookmark name allowed" msgstr "" msgid "the clone will include an empty working copy (only a repository)" msgstr "" msgid "revision, tag or branch to check out" msgstr "" msgid "include the specified changeset" msgstr "" msgid "clone only the specified branch" msgstr "" msgid "use pull protocol to copy metadata" msgstr "" msgid "use uncompressed transfer (fast over LAN)" msgstr "" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "" msgid "record user as committer" msgstr "" msgid "record datecode as commit date" msgstr "" msgid "thg commit [OPTIONS] [FILE]..." msgstr "" msgid "thg debugblockmatcher" msgstr "" msgid "thg debugbugreport [TEXT]" msgstr "" msgid "thg debugconsole" msgstr "" msgid "thg debuglighthg" msgstr "" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "" msgid "no command specified" msgstr "" msgid "thg drag_copy SOURCE... DEST" msgstr "" msgid "thg drag_move SOURCE... DEST" msgstr "" msgid "a revision to send" msgstr "" msgid "thg email [REVS]" msgstr "" msgid "use only one form to specify the revision" msgstr "" msgid "select the specified revision" msgstr "" msgid "side-by-side comparison of revisions" msgstr "" msgid "thg filelog [OPTION]... FILE" msgstr "" msgid "requires a single filename" msgstr "" msgid "thg forget [FILE]..." msgstr "" msgid "revisions to graft" msgstr "" msgid "thg graft [-r] REV..." msgstr "" msgid "You must provide revisions to graft" msgstr "" msgid "ignore case during search" msgstr "" msgid "thg grep" msgstr "" msgid "thg guess" msgstr "" msgid "thg help [COMMAND]" msgstr "" msgid "global options:" msgstr "" msgid "use \"thg help\" for the full list of commands" msgstr "" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "" msgid "" "list of commands:\n" "\n" msgstr "" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" msgid "(no help text available)" msgstr "" msgid "options:\n" msgstr "" msgid "no commands defined\n" msgstr "" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "" msgid "" "basic commands:\n" "\n" msgstr "" #, python-format msgid " (default: %s)" msgstr "" msgid "thg hgignore [FILE]" msgstr "" msgid "import to the patch queue (MQ)" msgstr "" msgid "thg import [OPTION] [SOURCE]..." msgstr "" msgid "thg init [DEST]" msgstr "" msgid "thg lock" msgstr "" msgid "search for a given text or revset" msgstr "" msgid "(DEPRECATED)" msgstr "" msgid "open a new workbench window" msgstr "" msgid "thg log [OPTIONS] [FILE]" msgstr "" msgid "cannot specify both -k/--query and filenames" msgstr "" msgid "revision to display" msgstr "" msgid "thg manifest [-r REV] [FILE]" msgstr "" msgid "revision to merge" msgstr "" msgid "thg merge [[-r] REV]" msgstr "" msgid "Merge revision not specified or not found" msgstr "" msgid "a revision to post" msgstr "" msgid "thg postreview [-r] REV..." msgstr "" msgid "reviewboard extension not enabled" msgstr "" #, python-format msgid "see %(url)s" msgstr "" msgid "no revisions specified" msgstr "" msgid "revisions to prune" msgstr "" msgid "thg prune [-r] REV..." msgstr "" msgid "thg purge" msgstr "" msgid "keep original changesets" msgstr "" msgid "keep original branch names" msgstr "" msgid "rebase from the specified changeset" msgstr "" msgid "rebase onto the specified changeset" msgstr "" msgid "thg rebase -s REV -d REV [--keep]" msgstr "" msgid "Rebase already in progress" msgstr "" msgid "Resuming rebase already in progress" msgstr "" msgid "You must provide source and dest arguments" msgstr "" msgid "thg rejects [FILE]" msgstr "" msgid "You must provide the path to a file" msgstr "" msgid "thg remove [FILE]..." msgstr "" msgid "thg rename [SOURCE] [DEST]" msgstr "" msgid "field to give initial focus" msgstr "" msgid "thg repoconfig" msgstr "" msgid "thg resolve" msgstr "" msgid "the revision to show" msgstr "" msgid "thg revdetails [-r REV]" msgstr "" msgid "thg revert [FILE]..." msgstr "" msgid "revision to update" msgstr "" msgid "thg rupdate [[-r] REV]" msgstr "" msgid "name of the hgweb config file (serve more than one repository)" msgstr "" msgid "name of the hgweb config file (DEPRECATED)" msgstr "" msgid "thg serve [--web-conf FILE]" msgstr "" msgid "thg shellconfig" msgstr "" msgid "thg shelve" msgstr "" msgid "sign even if the sigfile is modified" msgstr "" msgid "make the signature local" msgstr "" msgid "the key id to sign with" msgstr "" msgid "do not commit the sigfile after signing" msgstr "" msgid "use as commit message" msgstr "" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "" msgid "Please enable the Gpg extension first." msgstr "" msgid "show files without changes" msgstr "" msgid "show ignored files" msgstr "" msgid "thg status [OPTIONS] [FILE]" msgstr "" msgid "discard uncommitted changes (no backup)" msgstr "" msgid "do not back up stripped revisions" msgstr "" msgid "do not modify working copy during strip" msgstr "" msgid "revision to strip" msgstr "" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "" msgid "open the bookmark sync window" msgstr "" msgid "thg sync [OPTION]... [PEER]" msgstr "" msgid "replace existing tag" msgstr "" msgid "make the tag local" msgstr "" msgid "revision to tag" msgstr "" msgid "remove a tag" msgstr "" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "" msgid "wait until the second ticks over" msgstr "" msgid "notify the shell for paths given" msgstr "" msgid "remove the status cache" msgstr "" msgid "show the contents of the status cache (no update)" msgstr "" msgid "update all repos in current dir" msgstr "" msgid "thg thgstatus [OPTION]" msgstr "" msgid "thg topics [-r REV] [NAME]" msgstr "" msgid "Please enable the Topic extension first." msgstr "" msgid "only one new topic name allowed" msgstr "" msgid "thg update [-C] [[-r] REV]" msgstr "" msgid "thg userconfig" msgstr "" msgid "changeset to view in diff tool" msgstr "" msgid "revisions to view in diff tool" msgstr "" msgid "bundle file to preview" msgstr "" msgid "launch visual diff tool" msgstr "" msgid "print license" msgstr "" msgid "thg version [OPTION]" msgstr "" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "" msgid "Location:" msgstr "" msgid "Update to:" msgstr "" msgid "Options:" msgstr "" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "" msgid "Perform a push before updating (-p/--push)" msgstr "" msgid "Allow pushing new branches (--new-branch)" msgstr "" msgid "Force push to remote location (-f/--force)" msgstr "" msgid "remove working directory" msgstr "" msgid "unknown revision!" msgstr "" #, python-format msgid "Remote Update - %s" msgstr "" msgid "&Update" msgstr "" msgid "Log" msgstr "" msgid "Repositories" msgstr "" #, python-format msgid "Running at %s" msgstr "" msgid "Stopped" msgstr "" msgid "TortoiseHg Web Server" msgstr "" msgid "Web Server" msgstr "" msgid "Port:" msgstr "" msgid "Status:" msgstr "" msgid "Start" msgstr "" msgid "Settings" msgstr "" msgid "" msgstr "" msgid "&True" msgstr "" msgid "&False" msgstr "" msgid "&Unspecified" msgstr "" #, python-format msgid "%dpt" msgstr "" msgid "Bold" msgstr "" msgid "Italic" msgstr "" msgid "Strike" msgstr "" msgid "Underline" msgstr "" msgid "&Set..." msgstr "" msgid "&Clear" msgstr "" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "" msgid "&Browse..." msgstr "" msgid "UI Language" msgstr "" msgid "Specify your preferred user interface language (restart needed)" msgstr "" msgid "Three-way Merge Tool" msgstr "" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" msgid "Visual Diff Tool" msgstr "" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" msgid "Visual Editor" msgstr "" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" msgid "CLI Editor" msgstr "" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" msgid "Shell" msgstr "" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
                                                                                                  Default, Windows: cmd.exe /" "K title %(reponame)s
                                                                                                  Default, OS X: not set
                                                                                                  Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" msgid "Immediate Operations" msgstr "" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" msgid "Tab Width" msgstr "" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" msgid "Force Repo Tab" msgstr "" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "" msgid "Monitor Repo Changes" msgstr "" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" msgid "Max Diff Size" msgstr "" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" msgid "Fork GUI" msgstr "" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" msgid "Full Path Title" msgstr "" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" msgid "Auto-resolve merges" msgstr "" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" msgid "New Repo Skeleton" msgstr "" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "" msgid "Single Workbench Window" msgstr "" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" msgid "Default widget" msgstr "" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" msgid "" "Open new tabs next\n" "to the current tab" msgstr "" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" msgid "Author Coloring" msgstr "" msgid "Color changesets by author name. Default: False" msgstr "" msgid "Full Authorname" msgstr "" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" msgid "Task Tabs" msgstr "" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" msgid "Task Toolbar Order" msgstr "" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
                                                                                                  Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
                                                                                                  Valid names are: log commit sync grep and " "pbranch.
                                                                                                  Default: log commit grep pbranch | sync" msgstr "" msgid "Long Summary" msgstr "" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" msgid "Log Batch Size" msgstr "" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "" msgid "Dead Branches" msgstr "" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" msgid "Branch Colors" msgstr "" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" msgid "Hide Tags" msgstr "" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" msgid "Activate Bookmarks" msgstr "" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

                                                                                                  • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
                                                                                                  • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
                                                                                                  • never: Never show any prompt to " "activate any bookmarks.

                                                                                                  Default: prompt" msgstr "" msgid "Show Family Line" msgstr "" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

                                                                                                  Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" msgid "Use optimized graph layouter" msgstr "" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

                                                                                                  Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" msgctxt "config item" msgid "Commit" msgstr "" msgid "Username" msgstr "" msgid "" "Name associated with commits. The common format is:
                                                                                                  Full Name <" "email@example.com>" msgstr "" msgid "Ask Username" msgstr "" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" msgid "Summary Line Length" msgstr "" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" msgid "Close After Commit" msgstr "" msgid "Close the commit tool after every successful commit. Default: False" msgstr "" msgid "Push After Commit" msgstr "" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" msgid "Auto Commit List" msgstr "" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" msgid "Auto Exclude List" msgstr "" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" msgid "English Messages" msgstr "" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" msgid "New Commit Phase" msgstr "" msgid "The phase of new commits. Default: draft" msgstr "" msgid "Secret MQ Patches" msgstr "" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "" msgid "Check Subrepo Phase" msgstr "" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" msgid "Monitor working
                                                                                                  directory changes" msgstr "" msgid "" "Select when the working directory status list will be refreshed:
                                                                                                  - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
                                                                                                  TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
                                                                                                  - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
                                                                                                  - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
                                                                                                  Default: auto" msgstr "" msgid "Confirm adding unknown files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Confirm deleting files" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Sync" msgstr "" msgid "After Pull Operation" msgstr "" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" msgid "Default Push" msgstr "" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

                                                                                                  • all: The default. Push all changes in all " "branches.
                                                                                                  • branch: Push all changes in the current branch.
                                                                                                  • revision: Push the changes in the current branch up to the current revision.

                                                                                                  Default: all" msgstr "" msgid "Confirm Push" msgstr "" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" msgid "Target Combo" msgstr "" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

                                                                                                  • auto: The default. Show the combo if more than one target " "configured.
                                                                                                  • always: Always show the combo.

                                                                                                  Default: auto" msgstr "" msgid "SSH Command" msgstr "" msgid "" "Command to use for SSH connections.

                                                                                                  Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" msgid "Subrepository Features:" msgstr "" msgid "Allow Hg Subrepos" msgstr "" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" msgid "Allow Git Subrepos" msgstr "" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

                                                                                                  See the security note before enabling Git " "subrepos." msgstr "" msgid "Allow SVN Subrepos" msgstr "" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

                                                                                                  See the security note before enabling " "Subversion subrepos." msgstr "" msgid "Server" msgstr "" msgid "Repository Details:" msgstr "" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" msgid "Encoding" msgstr "" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" msgid "'Publishing' repository" msgstr "" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" msgid "Web Server:" msgstr "" msgid "Textual description of the repository's purpose or contents." msgstr "" msgid "Contact" msgstr "" msgid "Name or email address of the person in charge of the repository." msgstr "" msgid "Style" msgstr "" msgid "Which template map style to use" msgstr "" msgid "Archive Formats" msgstr "" msgid "Comma separated list of archive formats allowed for downloading" msgstr "" msgid "Port" msgstr "" msgid "Port to listen on" msgstr "" msgid "Push Requires SSL" msgstr "" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" msgid "Stripes" msgstr "" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" msgid "Max Files" msgstr "" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "" msgid "Max Changes" msgstr "" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "" msgid "Allow Push" msgstr "" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" msgid "Deny Push" msgstr "" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" msgid "Proxy" msgstr "" msgid "Host" msgstr "" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "" msgid "Bypass List" msgstr "" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "" msgid "Optional. User name to authenticate with at the proxy server" msgstr "" msgid "Password" msgstr "" msgid "Optional. Password to authenticate with at the proxy server" msgstr "" msgid "From" msgstr "" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "" msgid "To" msgstr "" msgid "Comma-separated list of recipient email addresses" msgstr "" msgid "Cc" msgstr "" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "" msgid "Bcc" msgstr "" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "" msgid "method" msgstr "" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" msgid "SMTP Host" msgstr "" msgid "Host name of mail server" msgstr "" msgid "SMTP Port" msgstr "" msgid "Port to connect to on mail server. Default: 25" msgstr "" msgid "SMTP TLS" msgstr "" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "" msgid "SMTP Username" msgstr "" msgid "Username to authenticate to mail server with" msgstr "" msgid "SMTP Password" msgstr "" msgid "Password to authenticate to mail server with" msgstr "" msgid "Local Hostname" msgstr "" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "" msgid "Diff and Annotate" msgstr "" msgid "Patch EOL" msgstr "" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" msgid "Git Format" msgstr "" msgid "Use git extended diff header format. Default: False" msgstr "" msgid "MQ Git Format" msgstr "" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" msgid "No Dates" msgstr "" msgid "Do not include modification dates in diff headers. Default: False" msgstr "" msgid "Show Function" msgstr "" msgid "Show which function each change is in. Default: False" msgstr "" msgid "Ignore White Space" msgstr "" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "" msgid "Ignore WS Amount" msgstr "" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "" msgid "Ignore Blank Lines" msgstr "" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "" msgid "Annotate:" msgstr "" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "" msgid "Fonts" msgstr "" msgid "Message Font" msgstr "" msgid "Font used to display commit messages. Default: monospace 10" msgstr "" msgid "Diff Font" msgstr "" msgid "Font used to display text differences. Default: monospace 10" msgstr "" msgid "ChangeLog Font" msgstr "" msgid "Font used to display changelog data. Default: monospace 10" msgstr "" msgid "Output Font" msgstr "" msgid "Font used to display output messages. Default: sans 8" msgstr "" msgid "Extensions" msgstr "" msgid "Tools" msgstr "" msgid "Hooks" msgstr "" msgid "Issue Tracking" msgstr "" msgid "Issue Regex" msgstr "" msgid "Defines the regex to match when picking up issue numbers." msgstr "" msgid "Issue Link" msgstr "" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" msgid "Inline Tags" msgstr "" msgid "Show tags at start of commit message." msgstr "" msgid "Mandatory Issue Reference" msgstr "" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" msgid "Issue Tracker Plugin" msgstr "" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" msgid "Configure Issue Tracker" msgstr "" msgid "Configure the selected COM Bug Tracker plugin." msgstr "" msgid "Issue Tracker Trigger" msgstr "" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

                                                                                                  • never: Do not update the Issue Tracker " "state automatically.
                                                                                                  • commit: Update the Issue Tracker state after " "a successful commit.

                                                                                                  Default: never" msgstr "" msgid "Changeset Link" msgstr "" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
                                                                                                  The template string " "uses a normal mercurial template syntax, such as:

                                                                                                  • {node|short} : replaced by " "the 12 digit revision id.
                                                                                                  • {rev} : replaced by the revision number." "
                                                                                                  • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
                                                                                                  For example, in order to " "link to bitbucket commit pages you can set this to:
                                                                                                  https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
                                                                                                  You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
                                                                                                  https://github.com/torvalds/" "linux/commit/{gitnode}
                                                                                                  https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
                                                                                                  " msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "" msgid "User name to authenticate with review board" msgstr "" msgid "Password to authenticate with review board" msgstr "" msgid "Server Repository ID" msgstr "" msgid "The default repository id for this repo on the review board server" msgstr "" msgid "Target Groups" msgstr "" msgid "A comma separated list of target groups" msgstr "" msgid "Target People" msgstr "" msgid "A comma separated list of target people" msgstr "" msgid "Kiln Bfiles" msgstr "" msgid "Patterns" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" msgid "Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" msgid "System Cache" msgstr "" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "" msgid "Simplelock" msgstr "" msgid "Lock Clone" msgstr "" msgid "" "Location of local clone of organizational lock repository.

                                                                                                  This repository " "must contain a \"locked\" text file" msgstr "" msgid "Largefiles" msgstr "" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" msgid "Minimum Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" msgid "User Cache" msgstr "" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" msgid "Projrc" msgstr "" msgid "Require confirmation" msgstr "" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

                                                                                                  • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
                                                                                                  • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
                                                                                                  • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
                                                                                                  " msgstr "" msgid "Servers" msgstr "" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" msgid "Include" msgstr "" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" msgid "Exclude" msgstr "" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" msgid "Update on incoming" msgstr "" msgid "" "Let the user update the projrc on incoming:
                                                                                                  • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
                                                                                                  • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
                                                                                                  • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                                                                                                    Default: never" msgstr "" msgid "GnuPG" msgstr "" msgid "Specify the path to GPG. Default: gpg" msgstr "" msgid "Key ID" msgstr "" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "" msgid "TortoiseHg Settings" msgstr "" msgid "Iniparse package not found" msgstr "" msgid "Can't change settings without iniparse package - view is readonly." msgstr "" #, python-format msgid "%s's global settings" msgstr "" msgid "No repository found" msgstr "" msgid "no repo at " msgstr "" #, python-format msgid "%s project settings (.hg/projrc)" msgstr "" #, python-format msgid "%s repository settings" msgstr "" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "" msgid "Apply changes before exit?" msgstr "" msgid "&No (discard changes)" msgstr "" msgid "Reload" msgstr "" msgid "Settings File:" msgstr "" msgid "Confirm Save" msgstr "" msgid "Save changes before editing?" msgstr "" msgid "&Save" msgstr "" msgid "Confirm Reload" msgstr "" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" msgid "Unable to create a Mercurial.ini file" msgstr "" msgid "Insufficient access rights, reverting to read-only mode." msgstr "" msgid "Context Menu" msgstr "" msgid "Top menu items:" msgstr "" msgid "Sub menu items:" msgstr "" msgid "Menu Behavior" msgstr "" msgid "Hide context menu outside repositories" msgstr "" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" msgid "Icons" msgstr "" msgid "Overlays" msgstr "" msgid "Enabled overlays" msgstr "" msgid "Local disks only" msgstr "" msgid "Enabled Overlay Handlers" msgstr "" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "" msgid "Added" msgstr "" msgid "Locked*" msgstr "" msgid "Ignored*" msgstr "" msgid "Unversioned" msgstr "" msgid "Readonly*" msgstr "" msgid "Deleted*" msgstr "" msgid "*: not used by TortoiseHg" msgstr "" msgid "Taskbar" msgstr "" msgid "Show Icon" msgstr "" msgid "Highlight Icon" msgstr "" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" msgid "Explorer Extension Settings - TortoiseHg" msgstr "" msgid "Clear" msgstr "" msgid "Clear the current shelf file" msgstr "" msgid "Delete the current shelf file" msgstr "" msgid "Left Toolbar" msgstr "" msgid "Delete selected chunks" msgstr "" msgid "Move all files right" msgstr "" msgid "Move selected file right" msgstr "" msgid "Edit file" msgstr "" msgid "Move selected chunks right" msgstr "" msgid "Refresh Toolbar" msgstr "" msgid "Refresh" msgstr "Yenile" msgid "New Shelf" msgstr "" msgid "Right Toolbar" msgstr "" msgid "Move selected chunks left" msgstr "" msgid "Move selected file left" msgstr "" msgid "Move all files left" msgstr "" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "" msgid "Delete selected chunks from working copy?" msgstr "" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "" msgid "Are you sure?" msgstr "" msgid "TortoiseHg New Shelf Name" msgstr "" msgid "Specify name of new shelf" msgstr "" msgid "Bad filename" msgstr "" #, python-format msgid "A shelf name cannot contain %s" msgstr "" msgid "File already exists" msgstr "" msgid "A shelf file of that name already exists" msgstr "" msgid "New shelf created" msgstr "" #, python-format msgid "Delete shelf file %s?" msgstr "" msgid "Shelf deleted" msgstr "" msgid "Revert all working copy changes?" msgstr "" #, python-format msgid "Clear contents of shelf file %s?" msgstr "" msgid "Shelf cleared" msgstr "" #, python-format msgid "Shelf: %s" msgstr "" #, python-format msgid "Patch: %s" msgstr "" msgid "Key:" msgstr "" msgid "Local sign" msgstr "" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "" msgid "No commit" msgstr "" msgid "Use custom commit message:" msgstr "" msgid "&Sign" msgstr "" #, python-format msgid "Sign - %s" msgstr "" msgid "Signature has been added" msgstr "" msgid "Repository command still running" msgstr "" msgid "Filter:" msgstr "" msgid "Check all files" msgstr "" msgid "Uncheck all files" msgstr "" msgid "Status File List Toolbar" msgstr "" msgid "Remove filter, show root" msgstr "" #, python-format msgid "%s - status (selection filtered)" msgstr "" #, python-format msgid "%s - status" msgstr "" msgid "Check" msgstr "" msgid "Uncheck" msgstr "" msgid "status" msgstr "durum" msgid "Failed to refresh" msgstr "" msgid "No appropriate files" msgstr "" msgid "No files found for this operation" msgstr "" msgid "Stat" msgstr "" msgid "M" msgstr "" msgid "Filename" msgstr "" msgid "Size (KB)" msgstr "" #, python-format msgid "Checked count: %d" msgstr "" msgid ", resolved merge" msgstr "" msgid ", unresolved merge" msgstr "" #, python-format msgid "%s is modified" msgstr "" msgid "modified" msgstr "" #, python-format msgid "%s is added" msgstr "" msgid "added" msgstr "" #, python-format msgid "%s is removed" msgstr "" msgid "removed" msgstr "" #, python-format msgid "%s is not tracked (unknown)" msgstr "" msgid "unknown" msgstr "" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "" msgid "missing" msgstr "" #, python-format msgid "%s is ignored" msgstr "" msgid "ignored" msgstr "" #, python-format msgid "%s is not modified (clean)" msgstr "" msgid "clean" msgstr "" #, python-format msgid "%s is a dirty subrepo" msgstr "" msgid "subrepo" msgstr "" msgid "Check for incoming changes from selected URL" msgstr "" msgid "Pull incoming changes from selected URL" msgstr "" msgid "Detect outgoing changes to selected URL" msgstr "" msgid "Push outgoing changes to selected URL" msgstr "" msgid "Sync Bookmarks" msgstr "" msgid "Email outgoing changesets for remote repository" msgstr "" msgid "Manage pending perforce changelists" msgstr "" msgid "Unbundle" msgstr "" msgid "Selected Options:" msgstr "" msgid "Path Edit Toolbar" msgstr "" msgid "Security" msgstr "" msgid "Manage HTTPS connection security and user authentication" msgstr "" msgid "Save" msgstr "" msgid "Save current URL under an alias" msgstr "" msgid "Paths in Repository Settings:" msgstr "" msgid "Related Paths:" msgstr "" msgid "branch: " msgstr "Dal: " msgid "bookmark: " msgstr "" #, python-format msgid "rev: %d (%s)" msgstr "" msgid "Post Pull: " msgstr "" msgid "&Edit..." msgstr "" msgid "&Remove..." msgstr "" msgid "Repository not local" msgstr "" msgid "A terminal shell cannot be opened for remote" msgstr "" msgid "Confirm path delete" msgstr "" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "" msgid "Select repository" msgstr "" msgid "No host specified" msgstr "" msgid "Please set a valid URL to continue." msgstr "" msgid "No remote repository URL or path set" msgstr "" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

                                                                                                    Please type and save a remote repository path on the " "Sync widget." msgstr "" msgid "Redundant authentication info" msgstr "" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" msgid "sync command already running" msgstr "" #, python-format msgid "Getting incoming changesets from %s..." msgstr "" #, python-format msgid "Found incoming changesets from %s" msgstr "" #, python-format msgid "No incoming changesets from %s" msgstr "" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "" #, python-format msgid "Pulling from %s..." msgstr "" #, python-format msgid "Pull from %s completed" msgstr "" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "" msgid "Merge caused file conflicts" msgstr "" msgid "File conflicts need to be resolved" msgstr "" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "" #, python-format msgid "%d outgoing changesets to %s" msgstr "" #, python-format msgid "No outgoing changesets to %s" msgstr "" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "" msgid "Perforce pending..." msgstr "" #, python-format msgid "%s (submitted)" msgstr "" #, python-format msgid "%s (pending)" msgstr "" msgid "Unable to parse p4pending output" msgstr "" #, python-format msgid "%d pending changelists found" msgstr "" msgid "No pending Perforce changelists" msgstr "" msgid "Aborted p4pending" msgstr "" msgid "Unable to determine pending changesets" msgstr "" msgid "Confirm Push to remote Repository" msgstr "" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" #, python-format msgid "Push to %s aborted" msgstr "" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" #, python-format msgid "Pushing to %s..." msgstr "" #, python-format msgid "Push to %s completed" msgstr "" #, python-format msgid "Push to %s aborted, ret %d" msgstr "" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" msgid "Determining outgoing changesets to email..." msgstr "" msgid "No outgoing changesets" msgstr "" #, python-format msgid "Outgoing aborted, ret %d" msgstr "" msgid "Select bundle file" msgstr "" msgid "Bundle files (*.hg)" msgstr "" msgid "Unable to remove URL" msgstr "" msgid "Post Pull Behavior" msgstr "" msgid "Select post-pull operation for this repository" msgstr "" msgid "None - simply pull changesets" msgstr "" msgid "Update - pull, then try to update" msgstr "" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "" msgid "Rebase - rebase local commits above pulled changes" msgstr "" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "" msgid "Launch settings tool..." msgstr "" msgid "Unable to save post pull operation" msgstr "" msgid "Save Path" msgstr "" msgid "Alias" msgstr "" msgid "URL" msgstr "" msgid "Remove authentication data from URL" msgstr "" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" msgid "Update subrepo paths" msgstr "" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" msgid "Unable to save an URL" msgstr "" msgid "Confirm URL replace" msgstr "" #, python-format msgid "%s already exists, replace URL?" msgstr "" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

                                                                                                    %s

                                                                                                    Replace it with the " "following URL?:

                                                                                                    %s" msgstr "" msgid "Security: " msgstr "" #, python-format msgid "Host: %s" msgstr "" msgid "Secure HTTPS Connection" msgstr "" msgid "Verify with Certificate Authority certificates (best)" msgstr "" msgid "Verify with stored host fingerprint (good)" msgstr "" msgid "No host validation, but still encrypted (bad)" msgstr "" msgid "### host certificate fingerprint ###" msgstr "" msgid "Query" msgstr "" msgid "TLS 1.0" msgstr "" msgid "TLS 1.1" msgstr "" msgid "TLS 1.2" msgstr "" msgid "Minimum Protocol" msgstr "" msgid "User Authentication" msgstr "" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Key" msgstr "" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Chain" msgstr "" msgid "Certificate Query Error" msgstr "" msgid "Select User Certificate Key File" msgstr "" msgid "PEM files (*.pem *.key)" msgstr "" msgid "Select User Certificate Chain File" msgstr "" msgid "PEM files (*.pem *.crt *.cer)" msgstr "" msgid "Unable to save authentication" msgstr "" #, python-format msgid "%s - sync options" msgstr "" msgid "Allow push of a new branch (--new-branch)" msgstr "" msgid "Force push or pull (override safety checks, --force)" msgstr "" msgid "Temporarily disable configured HTTP proxy" msgstr "" msgid "Emit debugging output (--debug)" msgstr "" msgid "Work on patch queue (--mq)" msgstr "" #, python-format msgid "Tag - %s" msgstr "" msgid "Tag:" msgstr "" msgid "Tagged:" msgstr "" msgid "Local tag" msgstr "" msgid "Replace existing tag (-f/--force)" msgstr "" msgid "Use English commit message" msgstr "" msgid "local" msgstr "" msgid "Move" msgstr "Taşı" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "" #, python-format msgid "Added tag %s for changeset %s" msgstr "" #, python-format msgid "Tag '%s' has been moved" msgstr "" #, python-format msgid "Tag '%s' has been added" msgstr "" #, python-format msgid "Removed tag %s" msgstr "" #, python-format msgid "Tag '%s' has been removed" msgstr "" msgid "Patch files (*.diff *.patch)" msgstr "" #, python-format msgid "Import - %s" msgstr "" msgid "Browse Directory..." msgstr "" msgid "Import from Clipboard" msgstr "" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "" msgid "Preview:" msgstr "" msgid "Shelf" msgstr "" msgid "Checking working directory status..." msgstr "" msgid "&Import" msgstr "" msgid "Working directory is not clean! View changes..." msgstr "" msgid "Select patches" msgstr "" msgid "Select Directory containing patches" msgstr "" #, python-format msgid "%s patches" msgstr "" #, python-format msgid "%s will be imported to " msgstr "" msgid "Nothing to import" msgstr "" msgid "Strip:" msgstr "" msgid "Discard local changes, no backup (-f/--force)" msgstr "" msgid "No backup (-n/--nobackup)" msgstr "" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "" msgstr[1] "" msgid "Unknown revision!" msgstr "" msgid "Detected uncommitted local changes." msgstr "" msgid "Do you want to keep them or discard them?" msgstr "" msgid "&Keep (--keep)" msgstr "" msgid "&Discard (--force)" msgstr "" msgid "Confirm Strip" msgstr "" #, python-format msgid "Strip - %s" msgstr "" msgid "&Strip" msgstr "" msgid "Topic:" msgstr "" msgid "&Rename" msgstr "" #, python-format msgid "Topic - %s" msgstr "" #, python-format msgid "A topic named \"%s\" already exists" msgstr "" #, python-format msgid "Topic '%s' has been added" msgstr "" #, python-format msgid "Topic '%s' does not exist" msgstr "" #, python-format msgid "Topic '%s' has been removed" msgstr "" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "" msgid "Parent 1:" msgstr "" msgid "Parent 2:" msgstr "" msgid "Pull subrepos from:" msgstr "" msgid "List updated files (--verbose)" msgstr "" msgid "Discard local changes, no backup (-C/--clean)" msgstr "" msgid "Always merge (when possible)" msgstr "" msgid "(same as parent)" msgstr "" msgid "Activate bookmark?" msgstr "" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

                                                                                                    Do " "you want to activate it?
                                                                                                    You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

                                                                                                    Select " "the bookmark that you want to activate and click OK.

                                                                                                    Click " "Cancel if you don't want to activate any of them.

                                                                                                    You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                                                                    " msgstr "" msgid "Deactivate current bookmark?" msgstr "" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" msgid "Discard - discard local changes, no backup" msgstr "" msgid "&Shelve" msgstr "" msgid "Shelve - move local changes to a patch" msgstr "" msgid "Merge - allow to merge with local changes" msgstr "" msgid "Confirm Update" msgstr "" #, python-format msgid "Update - %s" msgstr "" msgid "[non-existant]" msgstr "" msgid "Tool launch failure" msgstr "" #, python-format msgid "%s : %s" msgstr "" msgid "No diff tool found" msgstr "" msgid "No visual diff tools were detected" msgstr "" msgid "[working copy]" msgstr "" msgid "[original]" msgstr "" msgid "Unable to find changeset" msgstr "" msgid "You likely need to refresh this application" msgstr "" msgid "No file changes" msgstr "" msgid "There are no file changes to view" msgstr "" msgid "working changes" msgstr "" #, python-format msgid "changeset %d:%s" msgstr "" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "" msgid "Visual Diffs - " msgstr "" msgid " filtered" msgstr "" msgid "Temporary files are removed when this dialog is closed" msgstr "" msgid "Select Tool:" msgstr "" msgid "Dir diff to p1" msgstr "" msgid "Dir diff to p2" msgstr "" msgid "3-way dir diff" msgstr "" msgid "Directory diff" msgstr "" msgid "Confirm Discard" msgstr "" msgid "Discard outstanding changes to working directory?" msgstr "" msgid "Config files (*.conf *.config *.ini)" msgstr "" msgid "Open hgweb config" msgstr "" msgid "Save hgweb config" msgstr "" msgid "Path:" msgstr "" msgid "Local Path:" msgstr "" msgid "Select Repository" msgstr "" msgid "Add Path to Serve" msgstr "" msgid "Edit Path to Serve" msgstr "" msgid "Local Path" msgstr "" msgid "Webconf" msgstr "" msgid "Config File:" msgstr "" msgid "Open" msgstr "" msgid "New &Workbench" msgstr "" msgid "&New Repository..." msgstr "" msgid "Clon&e Repository..." msgstr "" msgid "&Open Repository..." msgstr "" msgid "&File" msgstr "" msgid "&View" msgstr "" msgid "&Repository" msgstr "" msgid "&Help" msgstr "" msgid "&Dock Toolbar" msgstr "" msgid "&Task Toolbar" msgstr "" msgid "&Custom Toolbar" msgstr "" msgid "S&ync Toolbar" msgstr "" msgid "&Close Repository" msgstr "" msgid "Sh&ow Repository Registry" msgstr "" msgid "Show &Patch Queue" msgstr "" msgid "Show Conso&le" msgstr "" msgid "Place Console in Doc&k Area" msgstr "" msgid "R&epository Registry Options" msgstr "" msgid "Save Open Repositories on E&xit" msgstr "" msgid "Sa&ve Current Sync Paths on Exit" msgstr "" msgid "Show Tas&k Tab" msgstr "" msgid "&Commit" msgstr "" msgid "&Patch Branch" msgstr "" msgid "Revision &Details" msgstr "" msgid "&Search" msgstr "" msgid "S&ynchronize" msgstr "" msgid "Refresh current repository" msgstr "" msgid "Refresh &Task Tab" msgstr "" msgid "Refresh only the current task tab" msgstr "" msgid "Load &All Revisions" msgstr "" msgid "Load all revisions into graph" msgstr "" msgid "Go to current revision" msgstr "" msgid "&Goto Revision..." msgstr "" msgid "Go to a specific revision" msgstr "" msgid "Filter graph with revision sets or branches" msgstr "" msgid "&Workbench Toolbars" msgstr "" msgid "&Lock File..." msgstr "" msgid "Lock or unlock files" msgstr "" msgid "Update working directory or switch revisions" msgstr "" msgid "&Shelve..." msgstr "" msgid "&Import Patches..." msgstr "" msgid "U&nbundle..." msgstr "" msgid "&Merge..." msgstr "" msgid "Merge with the other head of the current branch" msgstr "" msgid "&Resolve..." msgstr "" msgid "R&ollback/Undo..." msgstr "" msgid "&Purge..." msgstr "" msgid "&Bisect..." msgstr "" msgid "&Verify" msgstr "" msgid "Re&cover" msgstr "" msgid "&Web Server" msgstr "" msgid "E&xplorer Help" msgstr "" msgid "&Readme" msgstr "" msgid "About &Qt" msgstr "" msgid "&About TortoiseHg" msgstr "" msgid "&Incoming" msgstr "" msgid "&Pull" msgstr "" msgid "&Outgoing" msgstr "" msgid "P&ush" msgstr "" msgid "&Sync Bookmarks..." msgstr "" #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" msgid "Check for incoming changes" msgstr "" msgid "Pull incoming changes" msgstr "" msgid "Detect outgoing changes" msgstr "" msgid "Push outgoing changes" msgstr "" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" #, python-format msgid "Execute custom tool '%s'" msgstr "" msgid "Custom Toolbar &Settings" msgstr "" msgid "TortoiseHg Workbench" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "" msgid "Goto revision" msgstr "" msgid "Enter revision identifier" msgstr "" msgid "Select repository directory to open" msgstr "" msgid "README not configured" msgstr "" msgid "" "A README file is not configured for the current repository.

                                                                                                    To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" msgid "Issue Tracker Plugin Error" msgstr "" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "" msgid "This error will not be shown again until you restart the workbench" msgstr "" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "" msgid "Error executing \"commit finished\" trigger" msgstr "" msgid "Cannot open Plugin Options dialog" msgstr "" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "" msgid "[--insecure] [SOURCE]" msgstr "" #, python-format msgid "unsupported URL: %s" msgstr "" #, python-format msgid "%s certificate error: no certificate received" msgstr "" msgid "move after the specified patch" msgstr "" msgid "[--after PATCH] PATCH..." msgstr "" msgid "unknown patch to move specified" msgstr "" msgid "invalid patch position specified" msgstr "" msgid "cannot move applied patches" msgstr "" #, python-format msgid "patch %s not in series" msgstr "" msgid "cannot move into applied patches" msgstr "" msgid "abort: " msgstr "" msgid "hint: " msgstr "" #, python-format msgid "HTTP Error: %d (%s)" msgstr "" #, python-format msgid "URLError: %s" msgstr "" msgid "SSL: Server certificate verify failed" msgstr "" #, python-format msgid "SSL: unknown error %s:%s" msgstr "" #, python-format msgid "SSL error: %s" msgstr "" msgid "hgsubversion packaged with thg" msgstr "" msgid "hggit packaged with thg" msgstr "" msgid "inotify is not supported on this platform" msgstr "" msgid "eol is incompatible with win32text" msgstr "" msgid "win32text is incompatible with eol" msgstr "" msgid "hgsubversion is incompatible with perfarce" msgstr "" msgid "perfarce is incompatible with hgsubversion" msgstr "" msgid "Workbench custom toolbar" msgstr "" msgid "Revision details context menu" msgstr "" msgid "Pair selection context menu" msgstr "" msgid "Multiple selection context menu" msgstr "" msgid "Commit context menu" msgstr "" msgid "File context menu (on manifest and revision details)" msgstr "" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "" msgstr[1] "" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" msgid "in the future" msgstr "" msgid "now" msgstr "" #, python-format msgid "command parse error: %s" msgstr "" #, python-format msgid "no matches found: %s" msgstr "" msgid "Commit..." msgstr "" msgid "Commit changes in repository" msgstr "" msgid "Create Repository Here" msgstr "" msgid "Create a new repository" msgstr "" msgid "Clone..." msgstr "" msgid "Create clone here from source" msgstr "" msgid "File Status" msgstr "" msgid "Repository status & changes" msgstr "" msgid "Add Files..." msgstr "" msgid "Add files to version control" msgstr "" msgid "Revert Files..." msgstr "" msgid "Revert file changes" msgstr "" msgid "Forget Files..." msgstr "" msgid "Remove files from version control" msgstr "" msgid "Remove Files..." msgstr "" msgid "Rename File" msgstr "" msgid "Rename file or directory" msgstr "" msgid "View change history in repository" msgstr "" msgid "File History" msgstr "" msgid "View change history of selected files" msgstr "" msgid "Shelve Changes" msgstr "" msgid "Move changes between working dir and patch" msgstr "" msgid "Synchronize" msgstr "" msgid "Synchronize with remote repository" msgstr "" msgid "Start web server for this repository" msgstr "" msgid "Update..." msgstr "" msgid "Update working directory" msgstr "" msgid "Update Icons" msgstr "" msgid "Update icons for this repository" msgstr "" msgid "Global Settings" msgstr "" msgid "Configure user wide settings" msgstr "" msgid "Repository Settings" msgstr "" msgid "Configure repository settings" msgstr "" msgid "Explorer Extension Settings" msgstr "" msgid "Configure Explorer extension" msgstr "" msgid "About TortoiseHg" msgstr "" msgid "Show About Dialog" msgstr "" msgid "Diff to parent" msgstr "" msgid "View changes using GUI diff tool" msgstr "" msgid "Edit Ignore Filter" msgstr "" msgid "Edit repository ignore filter" msgstr "" msgid "Guess Renames" msgstr "" msgid "Detect renames and copies" msgstr "" msgid "Search History" msgstr "" msgid "Search file revisions for patterns" msgstr "" msgid "DnD Synchronize" msgstr "" msgid "Synchronize with dragged repository" msgstr "" #, python-format msgid "unrecognized response: %s" msgstr "" msgid "password: " msgstr "" #, python-format msgid "repository %s not found" msgstr "" msgid "win32ill: cannot create window for messages" msgstr "" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "" msgid "win32ill: interrupted while stopping message loop\n" msgstr "" #~ msgid "Archive" #~ msgstr "Arşiv" #~ msgid "(version %s)" #~ msgstr "(versiyon %s)" #~ msgid "with %s" #~ msgstr "ile %s" #~ msgid "A new version of TortoiseHg is ready for download!" #~ msgstr "TortoiseHg 'nin yeni bir versiyonu indirmek için hazır!" #~ msgid "Copyright 2008-2010 Steve Borho and others" #~ msgstr "Copyright 2008-2010 Steve Borho ve diğerleri" #~ msgid "Archive revision:" #~ msgstr "Arşiv gözden geçirme:" #~ msgid "Failed to archive" #~ msgstr "Arşivleme başarısız oldu" #~ msgid "Archived successfully" #~ msgstr "Başarıyla arşivlendi" #~ msgid "Canceled archiving" #~ msgstr "Arşivleme iptal edildi" #~ msgid "" #~ "The destination \"%s\" already exists!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "\"%s\" hedefi zaten girilmiş\n" #~ "Üzerine yazmak ister misiniz?" #~ msgid "" #~ "The directory \"%s\" isn't empty!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "\"%s\" dizini boş değil!\n" #~ "Üzerine yazmak ister misiniz?" #~ msgid "Compressed zip archives" #~ msgstr "Sıkıştırılmış zip arşivleri" #~ msgid "unexpected type: %s" #~ msgstr "Beklenmeyen tip: %s" #~ msgid "Bookmark input is empty" #~ msgstr "Yer imi girdisi boş" #~ msgid "Bookmarking completed" #~ msgstr "Yer imleme tamamlandı" #~ msgid "Please enter bookmark name" #~ msgstr "Lütfen yer imi ismi giriniz" #~ msgid "Bookmark \"%s\" has been added" #~ msgstr "\"%s\" yer imi eklendi" #~ msgid "Bookmark name is empty" #~ msgstr "Yer imi ismi boş" #~ msgid "Bookmark \"%s\" has been moved" #~ msgstr "\"%s\" yer imi taşındı" #~ msgid "Bookmark \"%s\" has been renamed to \"%s\"" #~ msgstr "\"%s\" yer imi \"%s\" olarak tekrar adlandırıldı" #~ msgid "a bookmark named \"%s\" already exists" #~ msgstr "\"%s\" isminde bir yer imi zaten girilmiş" #~ msgid "Bookmark \"%s\" has been removed" #~ msgstr "\"%s\" yer imi silindi" #~ msgid "Please select bookmark name to remove" #~ msgstr "Lütfen silmek için yer imi ismini seçiniz" #~ msgid "Please enter new bookmark name" #~ msgstr "Lütfen yeni bir yer imi ismi giriniz" #~ msgid "Bookmark new name input is empty" #~ msgstr "Yer imi yeni isim girdisi boş" #~ msgid "No bookmark named \"%s\" exists" #~ msgstr "\"%s\" isminde girilmiş bir yer imi yok." #~ msgid "[All Files]" #~ msgstr "[Tüm Dosyalar]" #~ msgid " %s is larger than the specified max diff size" #~ msgstr " %s belirtilen max diff boyutundan daha büyük" #~ msgid "Repository Error: %s, refresh suggested" #~ msgstr "Depo hatası: %s, yenileme öneriliyor" #~ msgid "Cloned successfully" #~ msgstr "Başarılı bir şekilde kopyalandı" #~ msgid "Use uncompressed transfer" #~ msgstr "Sıkıştırılmamış transferi kullan" #~ msgid "Canceled updating" #~ msgstr "Güncelleme iptal edildi" #~ msgid "Failed to clone" #~ msgstr "Kopyalama gerçekleştirilemedi" #~ msgid "Branch Operations" #~ msgstr "Dallanma işlemleri" #~ msgid "Please enter a valid source path" #~ msgstr "Lütfen doğru bir kaynak yolu giriniz" #~ msgid "Source and destination are the same" #~ msgstr "Kaynak ve hedef aynı" #~ msgid "Please specify different paths" #~ msgstr "Lütfen farklı yollar belirtiniz" #~ msgid "Source path is empty" #~ msgstr "Hedef yol boş" #~ msgid "merging " #~ msgstr "birleştiriliyor " #~ msgid "Always Show Output" #~ msgstr "Her zaman çıktıyı göster" #~ msgid "_Operations" #~ msgstr "_İşlemler" #~ msgid "_Commit" #~ msgstr "_İşle" #~ msgid "undo recent commit" #~ msgstr "en son işlemeye geri al" #~ msgid "Show/Hide Patch Queue" #~ msgstr "Paket Kuyruğunu Göster/Gizle" #~ msgid "Save commit message at exit?" #~ msgstr "Çıkışta işleme mesajlarını kaydet." #~ msgid "commit" #~ msgstr "işle" #~ msgid "Not at head" #~ msgstr "Başta değil" #~ msgid "Patch Preview" #~ msgstr "Paket önizleme" #~ msgid "Commit Preview" #~ msgstr "İşleme önizleme" #~ msgid "Committer:" #~ msgstr "İşleyici:" #~ msgid "Recent commit messages..." #~ msgstr "En yakın işleme mesajları.." #~ msgid "create new MQ patch" #~ msgstr "Yeni bir MQ yaması oluştur" #~ msgid "Nothing Commited" #~ msgstr "Hiç bir şey işlenmedi" #~ msgid "Unable to create " #~ msgstr "Oluşturulamadı " #~ msgid "Patch Contents" #~ msgstr "Yama içerikleri" #~ msgid "Unable to apply patch" #~ msgstr "Yama uygulanamadı" #~ msgid "Merge " #~ msgstr "Birleştir " #~ msgid "Confirm Undo Commit" #~ msgstr "İşlemeyi geri almayı onayla" #~ msgid "close branch: " #~ msgstr "Dalı kapat: " #~ msgid "No committable files selected" #~ msgstr "Hiç bir işlenebilir dosya seçilmedi." #~ msgid "Add/Remove the following files?" #~ msgstr "İzleyen dosyaları Ekle/Sil?" #~ msgid "Confirm Add/Remove" #~ msgstr "Ekle/Sil onayı" #~ msgid "Message format configuration error" #~ msgstr "Mesaj formatı yapılandırma hatası" #~ msgid "Undo Commit" #~ msgstr "İşlemeyi geri al" #~ msgid "Confirm Commit" #~ msgstr "İşlemeyi onayla" #~ msgid "Commit: Invalid username" #~ msgstr "İşleme: Hatalı kullanıcı adı" #~ msgid "" #~ "Your username has not been configured.\n" #~ "\n" #~ "Please configure your username and try again" #~ msgstr "" #~ "Kullanıcı adınız yapılandırılamadı.\n" #~ "Lütfen kullanıcı adınızı yapılandırınız ve tekrar deneyiniz" #~ msgid "Aborted committing" #~ msgstr "İşleme yerine getirilemedi" #~ msgid "Cannot run now" #~ msgstr "Şu an çalışamaz" #~ msgid "Failed to commit" #~ msgstr "İşleme başarısız oldu" #~ msgid "All Files (*.*)" #~ msgstr "Tüm Dosyalar (*.*)" #~ msgid "Old name:" #~ msgstr "Eski İsmi:" #~ msgid "path" #~ msgstr "yol" #~ msgid "browser" #~ msgstr "tarayıcı" #~ msgid "type" #~ msgstr "tür" #~ msgid "Save as.." #~ msgstr "Farklı kaydet..." #~ msgid "Unable to save file" #~ msgstr "Dosya kaydedilemedi" #~ msgid "Advanced options" #~ msgstr "Gelişmiş seçenekler" #~ msgid "Source path:" #~ msgstr "Kaynak yolu:" #~ msgid "Clone" #~ msgstr "Kopyası" #~ msgid "Toolbar" #~ msgstr "Araç Çubuğu" #~ msgid "_View" #~ msgstr "_Görünüm" #~ msgid "_Undo" #~ msgstr "_Geri Al" #~ msgid "Advanced" #~ msgstr "Gelişmiş" #~ msgid "_Forget" #~ msgstr "_Unut" #~ msgid "_Remove" #~ msgstr "_Kaldır" #~ msgid "_Add" #~ msgstr "_Ekle" #~ msgid "Re_vert" #~ msgstr "Geri _Dön" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/uk.po0000644000000000000000000141167114440352353016260 0ustar00rootroot# Ukrainian translation for tortoisehg # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the tortoisehg package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2018-02-05 16:48+0000\n" "Last-Translator: onekosha \n" "Language-Team: Ukrainian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2019-07-17 05:45+0000\n" "X-Generator: Launchpad (build 19009)\n" msgid "TortoiseHg Overlay Icon Server" msgstr "Сервер TortoiseHg" msgid "Exit" msgstr "Закрити" msgid "About" msgstr "Про програму" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "Декілька значків люб'язно надані проектами TortoiseSVN, Tango." msgid "You can visit our site here" msgstr "Завітайте на наш сайт" msgid "&License" msgstr "Ліцензійна угода" #, python-format msgid "version %s" msgstr "версія %s" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "з Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "Нова версія TortoiseHg (%s) є готовою до завантаження!" msgid "License" msgstr "Ліцензійна угода" msgid "= Working Directory Parent =" msgstr "= Робочий каталог попередника =" msgid "Directory of files" msgstr "Каталог файлів" msgid "Tar archives" msgstr "Архіви tar" msgid "Uncompressed tar archive" msgstr "Не стиснений tar архів" msgid "Bzip2 tar archives" msgstr "Архіви bzip2 tar" msgid "Tar archive compressed using bzip2" msgstr "Архів tar стиснений bzip2?" msgid "Gzip tar archives" msgstr "Архіви gzip tar" msgid "Tar archive compressed using gzip" msgstr "Архів tar стиснений gzip" msgid "Zip archives" msgstr "Архіви Zip" msgid "Uncompressed zip archive" msgstr "Не стиснений zip архів" msgid "Zip archive compressed using deflate" msgstr "Архів zip стиснений deflate" msgid "Revision:" msgstr "Правка:" msgid "All files in this revision" msgstr "" msgid "Only files modified/created in this revision" msgstr "Лише файли змінені/створенні в цій правці" msgid "Only files modified/created since:" msgstr "" msgid "Archive Content:" msgstr "" msgid "Recurse into subrepositories" msgstr "Рекурсія у підсховищах" msgid "Browse..." msgstr "Проглянути..." msgid "Destination path:" msgstr "Шлях призначення:" msgid "Archive types:" msgstr "Архів типів:" msgid "Hg command:" msgstr "Команда Hg:" msgid "Select Destination Folder" msgstr "Вкажіть теку призначення" msgid "Select Destination File" msgstr "Вкажіть файл призначення" msgid "All files (*)" msgstr "Усі файли (*)" msgid "Duplicate Name" msgstr "Повторення назви" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "Призначення \"%s\" вже існує як файл!" msgid "Confirm Overwrite" msgstr "Підтвердіть перезапис" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" "Каталог \"%s\" не порожній!\n" "\n" "Переписати його?" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" "Файл \"%s\" існує!\n" "\n" "Ви дійсно бажаєте його переписати?" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "Призначення \"%s\" існує, як тека!" #, python-format msgid "Archive - %s" msgstr "Архів - %s" msgid "&Archive" msgstr "Архів" msgid "Backout requires a parent revision" msgstr "Відновлення вимагатє попередню правку" msgid "Cannot backout change on a different branch" msgstr "Не можливо відновити зміни на іншій гілці" #, python-format msgid "Backout - %s" msgstr "Відновлення - %s" msgid "Prepare to backout" msgstr "Підготовка відновлення" msgid "Verify backout revision and ensure your working directory is clean." msgstr "" "Перевірте відновлену правку та переконайтеся, що робочий каталог чистий." msgid "Backing out a parent revision is a single step operation" msgstr "Повертання попередньої правки за один крок" msgid "Backout revision" msgstr "Відновити правку" msgid "Not a head, backout will create a new head!" msgstr "Не вершина, відновлення створить нову вершину!" msgid "Current local revision" msgstr "Поточна локальна правка" msgid "Working directory status" msgstr "Стан робочого каталогу" msgid "Checking..." msgstr "Перевірка..." msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" "Перед відновленням, ви повинні зафіксувати, відкласти латки або відкинути зміни." msgid "Automatically resolve merge conflicts where possible" msgstr "Автоматично розв'язувати конфлікти злиття де можливе" msgid "Uncommitted local changes are detected" msgstr "Виявлено незафіксовані локальні зміни" msgid "Clean" msgstr "Чистий" msgid "Backing out, then merging..." msgstr "Повернення, потім злиття..." msgid "All conflicting files will be marked unresolved." msgstr "Усі файли з конфліктами позначити, як не розв'язані." msgid "Automatically advance to next page when backout and merge are complete." msgstr "" "Автоматичний перехід до наступної сторінки, коли відновлення та злиття " "виконано." #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "" "%d файлів мають конфлікти злиття ви повинні їх розв'язати" msgid "No merge conflicts, ready to commit" msgstr "Конфлікти злиття відсутні, готовий до фіксації" msgid "Commit backout and merge results" msgstr "Зафіксувати результати відновлення та злиття." msgid "Parents" msgstr "Попередники" msgid "Working Directory" msgstr "Робочий каталог" msgid "Working Directory (merged)" msgstr "Робочий каталог (злитий)" msgid "Commit message" msgstr "Повідомлення фіксації" msgid "Skip final confirmation page, close after commit." msgstr "Пропустити останню сторінку підтвердження, закрити після фіксації." msgid "Backed out changeset: " msgstr "Повернений набір змін: " msgid "Confirm Discard Message" msgstr "Підтвердіть відмову від повідомлення" msgid "Discard current backout message?" msgstr "Відкинути поточне повідомлення відновлення?" msgid "Use English backout message" msgstr "Використовувати англомовні повідомлення відновлення" msgid "Backing out and committing..." msgstr "Повернути та фіксувати..." msgid "Please wait while making backout." msgstr "Триває відновлення, чекайте." msgid "Committing..." msgstr "Фіксувати..." msgid "Please wait while committing merged files." msgstr "Будь ласка, зачекайте доки фіксуватимуться злиття файлів." msgid "Finished" msgstr "Завершено" msgid "Backout changeset" msgstr "Відновлення набору змін" #, python-format msgid "Bisect - %s" msgstr "Половинити - %s" msgid "Accept" msgstr "Прийняти" msgid "Known good revision:" msgstr "Наразі гарна правка:" msgid "Known bad revision:" msgstr "Наразі погана правка:" msgid "Discard local changes (revert --all)" msgstr "Відкинути локальні зміни (revert --all)" msgid "Revision is &Good" msgstr "Гарна правка" msgid "Revision is &Bad" msgstr "Погана правка" msgid "&Skip this Revision" msgstr "Пропустити цю правку" msgid "Close" msgstr "Закрити" msgid "Error encountered." msgstr "Сталася помилка." msgid "Culprit found." msgstr "Винуватця знайдено." msgid "Revision" msgstr "Правка" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "Тестувати цю правку та публікувати знайдене. (файно/погано/пропустити)" #, python-format msgid "%s (hint: %s)" msgstr "%s (підказка: %s)" msgid "Bookmark:" msgstr "Закладка:" msgid "New Name:" msgstr "Нова назва:" msgid "Activate:" msgstr "Активувати:" msgid "&Add" msgstr "Додати" msgid "Re&name" msgstr "Змінити назву" msgid "&Remove" msgstr "Вилучити" msgid "&Move" msgstr "Пересунути" #, python-format msgid "Bookmark - %s" msgstr "Закладка - %s" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "Закладка з назвою \"%s\" вже існує" #, python-format msgid "Bookmark '%s' has been added" msgstr "Закладка '%s' була додана" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "Закладки із назвою \"%s\" не існує" #, python-format msgid "Bookmark '%s' has been moved" msgstr "Закладка '%s' була втрачена" #, python-format msgid "Bookmark '%s' does not exist" msgstr "Закладка '%s' не існує" #, python-format msgid "Bookmark '%s' has been removed" msgstr "Закладка '%s' була вилучена" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "Закладка '%s' змінила назву на '%s'" msgid "TortoiseHg Bookmark Sync" msgstr "TortoiseHg Bookmark Sync" msgid "Outgoing Bookmarks" msgstr "Зовнішні закладки" msgid "&Push Bookmark" msgstr "Виштовхнути закладку" msgid "&Remove Bookmark" msgstr "Вилучити закладку" msgid "Incoming Bookmarks" msgstr "Вхідні закладки" msgid "P&ull Bookmark" msgstr "Затягнути закладку" msgid "R&emove Bookmark" msgstr "В&идалити закладку" #, python-format msgid "Pushed local bookmark: %s" msgstr "Виштовхнути локальну закладку: %s" #, python-format msgid "Pulled remote bookmark: %s" msgstr "Затягнути зовнішню закладку: %s" #, python-format msgid "Removed remote bookmark: %s" msgstr "Видалити зовнішню закладку: %s" #, python-format msgid "Removed local bookmark: %s" msgstr "Видалити локальну закладку: %s" #, python-format msgid "%s - branch operation" msgstr "%s - дія з гілкою" msgid "Select branch of merge commit" msgstr "Оберіть гілку злиття та фіксації" msgid "Changes take effect on next commit" msgstr "Зміни матимуть ефект наступної фіксації" msgid "No branch changes" msgstr "В гілці без змін" msgid "Open a new named branch" msgstr "Відкрити нову іменовану гілку" msgid "Close current branch" msgstr "Закрити поточну гілку" #, python-format msgid "Please report this bug to our bug tracker" msgstr "" "Надішліть, будь ласка звіт про помилку на наш bug tracker" msgid "Checking for updates..." msgstr "Перевіряння поновлень..." msgid "Copy" msgstr "Копіювати" msgid "Quit" msgstr "Завершити" msgid "TortoiseHg Bug Report" msgstr "Звіт з помилки TortoiseHg" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "Рекомендовано оновітися до нової версії TortoiseHg." msgid "Your TortoiseHg is up to date." msgstr "Наразі у Вас остання версія TortoiseHg." msgid "Save error report to" msgstr "Зберегти звіт з помилки" msgid "Text files (*.txt)" msgstr "Текстові файли (*.txt)" msgid "Error writing file" msgstr "Помилка запису до файлу" msgid "TortoiseHg Error" msgstr "Помилка TortoiseHg" msgid "" "If you still have trouble, please file a bug report." msgstr "" "Якщо у Вас виникли проблеми, будь ласка створіть " "звіт про помилку." msgid "Visual Diff" msgstr "Наочна різниця" msgid "View file changes in external diff tool" msgstr "Переглянути файл змін стороннім інструментом" msgid "Edit Local" msgstr "Правити локальне" msgid "Edit current file in working copy" msgstr "Правити поточний файл в робочій копії" msgid "Revert to Revision" msgstr "Повернутися до правки" msgid "Revert file(s) to contents at this revision" msgstr "Повернути файл(и) до змісту в цій правці" msgid "Patch failed to apply" msgstr "Не вдалось накласти латку" msgid "Manually resolve rejected chunks?" msgstr "Кусні, що розв'язані вручну відхилити?" msgid "Edit patched file and rejects?" msgstr "Правити латаний файл та відхилити?" msgid "No deletable chunks" msgstr "Куснів для видалення не має" msgid "Completely remove file from patch?" msgstr "Перемістити цілий файл з латки?" msgid "Revert all file changes?" msgstr "Повернути всі зміни в файл?" msgid "No chunks remain" msgstr "Куснів більше не залишилось" msgid "file has been deleted, refresh" msgstr "файл було знищено, освіжіть" msgid "file has been modified, refresh" msgstr "файл було змінено, освіжіть" msgid "Unable to merge chunks" msgstr "Неможливо злити кусні" msgid "Add or remove patches must be merged in the working directory" msgstr "Додані або вилучені латки повинні бути злиті в робочий каталог" msgid "Unable to remove" msgstr "Неможливо вилучити" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" "Неможливо вилучити файл %s,\n" "відсутні права" msgctxt "files" msgid "All" msgstr "Усі" msgctxt "files" msgid "None" msgstr "Жодні" msgid "Toggle display of text search bar" msgstr "Пошук за текстовим рядком" msgid "Diff Toolbar" msgstr "Пенал порівнянь" #, python-format msgid "Chunks selected: %d / %d" msgstr "Обрано %d / %d куснів" msgid "Please wait while the file is opened ..." msgstr "Будь ласка, дочекайтеся відкриття файлу ..." msgid "Source:" msgstr "Звідки:" msgid "Destination:" msgstr "Куди:" msgid "Options" msgstr "Параметри" msgid "Clone to revision:" msgstr "Клонувати до правки:" msgid "A revision identifier, bookmark, tag or branch name" msgstr "Ідентифікатор правки, закладки, зріза або назва гілки" msgid "Do not update the new working directory" msgstr "Не поновлювати новий робочий каталог" msgid "Use pull protocol to copy metadata" msgstr "Використовувати протокол витягування аби копіювати метадані" msgid "Clone with minimal processing" msgstr "" msgid "Include patch queue" msgstr "Разом з чергою латок" msgid "Use proxy server" msgstr "Використовувати проксі-сервер" msgid "Do not verify host certificate" msgstr "Не перевіряти сертифікат вузла" msgid "Remote command:" msgstr "Зовнішня команда:" msgid "Use largefiles" msgstr "" msgid "Start revision:" msgstr "Початок правки:" msgid "Select source repository" msgstr "Вкажіть вихідне сховище" msgid "Select destination repository" msgstr "Вкажіть сховище призначення" msgid "Select patch folder" msgstr "Вкажіть теку з латкою" #, python-format msgid "Clone - %s" msgstr "Клонувати - %s" msgid "&Clone" msgstr "Клонувати" msgid "failed to start command\n" msgstr "не вдалось започаткувати команду\n" msgid "error while running command\n" msgstr "помилка під час виконання команди\n" #, python-format msgid "process exited unexpectedly with code %d" msgstr "процес неочікувано завершено з кодом %d" #, python-format msgid "failed to encode command: %s" msgstr "не вдалось зашифрувати команду: %s" #, python-format msgid "timed out while reading: %r..." msgstr "завершився час відведений на читання: %r..." msgid "timed out waiting for message" msgstr "завершився час очікування повідомлення" #, python-format msgid "unexpected response on required channel %r" msgstr "несподівана відповідь на каналі очікування %r" #, python-format msgid "invalid \"hello\" message: %r" msgstr "недійсне \"hello\" повідомлення: %r" msgid "no \"runcommand\" capability" msgstr "не \"runcommand\" здатність" #, python-format msgid "corrupted command result: %r" msgstr "пошкоджений результат команди: %r" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "не вдалось зашифрувати вхід: %s" msgid "Terminated by user" msgstr "Перервано користувачем" #, python-format msgid "[command terminated by user %s]" msgstr "[команда перервана користувачем %s]" #, python-format msgid "[command interrupted %s]" msgstr "[команда %s пошкоджена]" #, python-format msgid "[command returned code %d %%s]" msgstr "[команда повернула код %d %%s]" #, python-format msgid "[command completed successfully %s]" msgstr "[команда %s успішно виконана]" msgid "Running..." msgstr "Виконання..." msgid "Failed!" msgstr "Не вдалось!" msgid "Clea&r Log" msgstr "Очистити журнал" msgid "TortoiseHg Prompt" msgstr "Підказка TortoiseHg" msgid "Show Detail" msgstr "Показати розлого" msgid "Hide Detail" msgstr "Прибрати розлого" msgid "Confirm Exit" msgstr "Підтвердити Вихід" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" "Команда Mercurial все ще виконується.\n" "Ви впевнені, що бажаєте її перервати?" msgid "&Run" msgstr "Виконати" msgid "TortoiseHg Command Dialog" msgstr "Командний діалог TortoiseHg" msgid "Command Error" msgstr "Помилкова команда" #, python-format msgid "[Code: %d]" msgstr "[Код: %d]" msgid "Merge" msgstr "Злити" #, python-format msgid "Merge with %s" msgstr "Злиття з %s" msgid "Patch Name Required" msgstr "Потребує назви латки" msgid "You must enter a patch name" msgstr "Ви повинні ввести назву латки" msgctxt "start progress" msgid "Commit" msgstr "Фіксація" msgctxt "start progress" msgid "MQ Action" msgstr "Дія MQ" msgctxt "start progress" msgid "Rollback" msgstr "Повернення" msgid "Commit Dialog Toolbar" msgstr "Пенал діалогу фіксації" msgid "Branch: " msgstr "Гілка: " msgid "Copy message" msgstr "Копія повідомлення" msgid "Copy one of the recent commit messages" msgstr "Копіювати одне з останніх повідомлень фіксації" msgid "Show Issues" msgstr "Показати запити" msgid "Please wait..." msgstr "Зачекайте..." #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "Не вдалось завантажити issue tracker '%s': %s" msgid "Issue Tracker" msgstr "Issue Tracker" msgid "Show Issues..." msgstr "Показати питання..." msgid "Stop" msgstr "Зупинити" msgid "### patch name ###" msgstr "### назва латки ###" msgid "Commit changes" msgstr "Зафіксувати зміни" msgid "Commit" msgstr "Зафіксувати" msgid "Amend current revision" msgstr "Скасувати поточну правку" msgid "Amend" msgstr "Скасувати" msgid "Create a new patch" msgstr "Створити нову латку" msgid "QNew" msgstr "Новини швидкоруч" msgid "Refresh current patch" msgstr "Перезавантажити поточну латку" msgid "QRefresh" msgstr "Поновити швидкоруч" msgid "Confirm Branch Change" msgstr "Підтвердити зміну гілки" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "Назва гілки \"%s\" вже існує, останне використано у правці %d\n" msgid "Restart &Branch" msgstr "Перезапустити гілку" msgid "&Commit to current branch" msgstr "Фіксувати до поточної гілки" msgid "Cancel" msgstr "Скасувати" msgid "Confirm New Branch" msgstr "Підтвердження для нової гілки" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "Створити нову іменовану гілку \"%s\" разом із фіксацією?\n" msgid "Create &Branch" msgstr "Створити гілку" msgid "Close Branch: " msgstr "Закрити гілку: " msgid "New Branch: " msgstr "Нова гілка: " #, python-format msgid "Selected Options: %s" msgstr "Оберіть налаштування: %s" msgid "Parent:" msgstr "Попередня:" msgid "Patch name:" msgstr "Назва латки:" #, python-format msgid "Close %s branch" msgstr "Закрити гілку %s" #, python-format msgid "Rollback commit to revision %d" msgstr "Повернути фіксацію до правки %d" msgid "Confirm Undo" msgstr "Підтвердіть скасування" msgid "Discard current commit message?" msgstr "Відкинути поточне повідомлення про фіксацію?" msgid "Message Translation Failure" msgstr "Помилка перекладу повідомлення" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" msgid "&Replace" msgstr "Замінити" msgid "Nothing Committed" msgstr "Фіксувати нічого" msgid "Please enter commit message" msgstr "Введіть повідомлення з описом фіксації" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" "В повідомленні фіксації не знайдено посилання на запит. Слід вказувати " "посилання на запит. Налаштуйте у відповідній секції налаштувань 'Контроль " "запитів'." msgid "No files checked" msgstr "Відсутні відмічені файли" msgid "No modified files checkmarked for commit" msgstr "Відсутні змінені файли, які були б відмічені, як для фіксації" msgid "Confirm Add" msgstr "Підтвердити додавання" msgid "Add selected untracked files?" msgstr "Додати обрані файли до сховища?" msgid "Confirm Remove" msgstr "Підтвердження вилучення" msgid "Remove selected deleted files?" msgstr "Вилучити вказані на видалення файли?" msgid "Nothing changed." msgstr "Нічого не змінено." msgctxt "window title" msgid "Commit" msgstr "Фіксувати" #, python-format msgid "%s - commit options" msgstr "%s - параметри фіксації" msgid "Set username:" msgstr "Встановити ім'я автора:" msgid "Save in Repo" msgstr "Зберегти в сховище" msgid "Save Global" msgstr "Зберегти для загалу" msgid "Set Date:" msgstr "Встановити дату:" msgid "Update" msgstr "Поновити" msgid "Push After Commit:" msgstr "Виштовхнути після фіксації:" msgid "Auto Includes:" msgstr "Автоматично приєднати:" msgid "Recurse into subrepositories (--subrepos)" msgstr "Рекурсивно всередині підсховищ (--subrepos)" msgid "Unable to save username" msgstr "Неможливо зберегти ім'я користувача" msgid "Iniparse must be installed." msgstr "Знаряддя обробки ini-файлів має бути встановлено." msgid "Unable to write configuration file" msgstr "Не можливо писати до файлу з налаштуваннями" msgid "Unable to save after commit push" msgstr "Неможливо зберегти після фіксації виштовхування" msgid "Unable to save auto include list" msgstr "Не можливо автоматично зберегти перелік включень" msgid "Unable to save recurse in subrepos." msgstr "Неможливо зберегти - рекурсія у підсховищі." msgid "Invalid date format" msgstr "Помилковий формат дати" msgid "No username configured" msgstr "Не налаштовано ім'я користувача" #, python-format msgid "%s - commit" msgstr "%s - фіксація" msgid "TortoiseHg Commit" msgstr "TortoiseHg Фіксація" msgid "Are you sure that you want to cancel the commit operation?" msgstr "Ви впевнені, що бажаєте скасувати операцію фіксації?" msgid "Compress changesets up to and including" msgstr "Стиснути набори зміни, в тому числі включені" msgid "Onto destination" msgstr "На призначення" msgid "Compress" msgstr "Стиснення" #, python-format msgid "Compress - %s" msgstr "Стиснути - %s" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" "Перед стисканням, ви повинні зафіксувати, відкласти до латки, або відкинути зміни." msgid "You may continue the compress" msgstr "Ви маєте продовжити стискання" msgid "Changes have been moved, you must now commit" msgstr "Зміни будуть втрачені, Ви повинні зараз їх зафіксувати" msgctxt "action button" msgid "Commit" msgstr "Зафіксувати" msgid "Compress is complete, old history untouched" msgstr "Стискання завершено, стара історія не порушена" msgid "must be specified repository" msgstr "потрібно вказати сховище" msgid "must be specified 'type' in style" msgstr "потрібно вказати 'type' в стилі" msgid "Git Commit:" msgstr "" msgid "Summary:" msgstr "Підсумок:" msgid "User:" msgstr "Автор:" msgid "Date:" msgstr "Дата:" msgid "Age:" msgstr "Додано:" msgid "Branch:" msgstr "Гілка:" msgid "Close:" msgstr "Закрити:" msgid "Tags:" msgstr "Ознака:" msgid "Graft:" msgstr "Прищепа:" msgid "Transplant:" msgstr "Трансплантувати:" msgid "Obsolete state:" msgstr "Застарілий стан:" msgid "Perforce:" msgstr "Вимушено:" msgid "Subversion:" msgstr "Subversion:" msgid "Converted From:" msgstr "Перероблено з:" msgid "Original Parent:" msgstr "Оригінальний попередник:" msgid "No items to display" msgstr "Відсутні елементи для відображення" msgid "Use compact view" msgstr "Використовувати стислий перегляд" msgid "Patch:" msgstr "Латка:" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "Відображати %(count)d з %(total)d елементів" msgid "Select a GUI location to edit:" msgstr "Вкажіть GUI елемент для правки:" msgid "Select the toolbar or menu to change" msgstr "Вкажіть пенал або меню для змін" msgid "Tools shown on selected location" msgstr "Знаряддя показано на вказаному розташуванні" msgid "Delete from list" msgstr "Знищити з переліку" msgid "Add to list" msgstr "Додати в перелік" msgid "Add separator" msgstr "Додати розділювач" msgid "List of all tools" msgstr "Перелік усіх знарядь" msgid "New Tool ..." msgstr "Нове знаряддя ..." msgid "Edit Tool ..." msgstr "Правити знаряддя ..." msgid "Delete Tool" msgstr "Знищити знаряддя" msgid "Type" msgstr "Тип" msgid "Name" msgstr "Назва" msgid "Command" msgstr "Команда" msgid "New hook" msgstr "Новий гачок" msgid "Edit hook" msgstr "Правити гачок" msgid "Delete hook" msgstr "Знищити гачок" msgid "Replace existing hook?" msgstr "Замінити гачок, який існує?" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" "%s.%s гачок існує.\n" "\n" "Ви бажаєте замінити його?" msgid "OK" msgstr "Гаразд" msgid "Missing information" msgstr "Пропущена інформація" msgid "All items" msgstr "Усі елементи" msgid "Working directory" msgstr "Робочий каталог" msgid "All revisions" msgstr "Усі правки" msgid "All contexts" msgstr "Усі змісти" msgid "Fixed revisions" msgstr "Виправлені правки" msgid "Applied patches" msgstr "Прийняті латки" msgid "Applied patches or qparent" msgstr "Застосувати латки або qparent" msgid "" msgstr "<типові піктограми>" msgid "Configure Custom Tool" msgstr "Конфігурувати знаряддя користувача" msgid "Tool name" msgstr "Назва знаряддя" msgid "The tool name. It cannot contain spaces." msgstr "Назва знаряддя. Не може містити прогалини." #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" "Тека, в якій буде виконана команда.\n" "В разі не встановлення буде використаний корінь поточного сховища.\n" "Ви можете використовувати ті ж самі {VARIABLES} як і в налаштуваннях " "\"Command\".\n" msgid "Tool label" msgstr "Мітка знаряддя" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" "Мітка знаряддя відображатиметься у контекстному меню repowidget-а.\n" "Якщо мітка не призначена, назва знаряддя використовуватиме мітку знаряддя.\n" "Якщо жодної підказки не встановлено, мітка буде використана як підказка." msgid "Tooltip" msgstr "Підказка" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" "Підказка, яка буде виводитись на кнопці знаряддя.\n" "Зокрема у випадку зображення кнопки на\n" "пеналі робочого середовища." msgid "Icon" msgstr "Піктограма" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" "Піктограма знаряддя.\n" "Ви можете використовувати будь-яку вбудовану у TortoiseHg піктограму\n" "встановивши це значення до коректної у TortoiseHg назви \n" "(Наприклад clone, add, remove, sync, thg-logo, hg-update, тощо).\n" "Ви також можете вказати ці значення з абсолютним шляхом\n" "файлової системи." msgid "On repowidget, show for" msgstr "На repowidget для показу" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" "Для деяких видів правок знаряддя буде увімкнено\n" "це враховується лише коли знаряддя показано\n" "доступним у контекстному меню правок." msgid "Show Output Log" msgstr "Відкрити журнал подій" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" "Коли увімкнено, автоматично показує журнал подій коли команда виконується.\n" "Типово: виключено." msgid "You must set a tool name." msgstr "Вкажіть назву знаряддя." msgid "The tool name cannot have any spaces in it." msgstr "Назва знаряддя не може містити буль-які прогалини." msgid "You must set a command to run." msgstr "Ви повинні встановити команди для виконання." msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" msgid "Configure Hook" msgstr "Налаштувати гачок" msgid "Hook type" msgstr "Тип гачка" msgid "Select when your command will be run" msgstr "Вкажіть, яка Ваша команда буде виконана" msgid "The hook name. It cannot contain spaces." msgstr "Назва гачка. Не може містити прогалин." msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" "Команда, яка буде виконана.\n" "Щоб виконати python функцію, потрібно спочатку записати команду з \"python:" "\".\n" msgid "You must set a valid hook type." msgstr "Ви повинні встановити правильний тип гачка." msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "Назва гачка не може містити прогалини, табуляції або символ '='." msgid "Console" msgstr "Консоль" msgid "File &History / Annotate" msgstr "Файл Історія / Опис" msgid "Show the history of the selected file" msgstr "Відобразити історію вказаного файлу" msgid "Co&mpare File Revisions" msgstr "Порівняти правки файлу" msgid "Compare revisions of the selected file" msgstr "Порівняти правки вказаного файлу" msgid "Filter Histor&y" msgstr "Фільтр історії" msgid "Query about changesets affecting the selected files" msgstr "Запит про набори змін, які впливатимуть на обрані файли" msgid "Diff &Changeset to Parent" msgstr "Різниця між набором змін та попередником" msgid "Diff Changeset to Loc&al" msgstr "Різниця між набором змін та поточним сховищем" msgid "&Diff to Parent" msgstr "Різниця з попередником" msgid "Diff to &Local" msgstr "Різниця до локального" msgid "View changes to current in external diff tool" msgstr "Перегляд поточних змін зовнішнім знаряддям порівнянь" msgid "&View at Revision" msgstr "Переглянути в правці" msgid "View file as it appeared at this revision" msgstr "Переглянути файл, як нібито з'явився в цієї правці" msgid "&Save at Revision..." msgstr "Зберегти правку..." msgid "Save file as it appeared at this revision" msgstr "Зберегти файл, як нібито з'явився в цій правці" msgid "Save file to" msgstr "Зберегти файл до" msgid "&Edit Local" msgstr "Правити локальний" msgid "&Open Local" msgstr "Відкрити локальний" msgid "E&xplore Local" msgstr "Дослідити локальний" msgid "Open parent folder of current file in the system file manager" msgstr "Відкрити теку попередника поточного файлу у системному файл оглядачеві" msgid "&Copy Patch" msgstr "Копіювати латку" msgid "Copy &Path" msgstr "Копіювати шлях" msgid "Copy full path of file(s) to the clipboard" msgstr "Копіювати повний шлях файлу до буферу обміну" msgid "&Revert to Revision..." msgstr "Повернутись до правки..." msgid "Open S&ubrepository" msgstr "Відкрити підсховище" msgid "Open the selected subrepository" msgstr "Відкрити вказане підсховище" msgid "E&xplore Folder" msgstr "Дослідити у теку" msgid "Open the selected folder in the system file manager" msgstr "Відкрити вказані теки в системному файловому оглядачеві" msgid "Open &Terminal" msgstr "Відкрити термінал" msgid "Open a shell terminal in the selected folder" msgstr "Відкрити оболонку у вибраній теці" msgid "Custom Tools" msgstr "Знаряддя користувача" msgid "Diff &Local" msgstr "Локальна різниця" msgid "&View Missing" msgstr "Переглянути відсутні" msgid "View O&ther" msgstr "Переглянути інше" msgid "Add &Largefiles..." msgstr "Додати великий файл..." msgid "&Forget" msgstr "Забути" msgid "&Delete Unversioned..." msgstr "Знищення неверсійованих..." msgid "Confirm Delete Unversioned" msgstr "Підтверджувати знищення неверсійованих" msgid "Delete the following unversioned files?" msgstr "Знищити наступні неверсійовані файли?" msgid "&Delete" msgstr "Знищити" msgid "Re&move Versioned" msgstr "Вилучити версійованого" msgid "&Revert..." msgstr "Повернути..." msgid "Uncommited merge - please select a parent revision" msgstr "Злиття не зафіксоване - оберіть попередню правку" msgid "Revert files to local or other parent?" msgstr "Відновити файли на локального або іншого попередника?" msgid "&Local" msgstr "Локальний" msgid "&Other" msgstr "Інше" msgid "Confirm Revert" msgstr "Підтвердіть повернення" msgid "Revert local file changes?" msgstr "Повернути файл з локальними змінами?" msgid "&Revert with backup" msgstr "Повернути з резервної копії" msgid "&Discard changes" msgstr "Відкинути зміни" msgid "Revert the following files?" msgstr "Повернути наступні файли?" msgid "&Revert" msgstr "Повернути" msgid "&Copy..." msgstr "Копіювати..." msgid "Re&name..." msgstr "Перейменувати..." msgid "&Ignore..." msgstr "Ігнорувати..." msgid "Edit Re&jects" msgstr "Правити відкинуте" msgid "Manually resolve rejected patch chunks" msgstr "Шматки відкинутих латок перебирати вручну" msgid "De&tect Renames..." msgstr "Виявлення змін назв..." msgid "&Mark Resolved" msgstr "Відмітити, як розв'язане" msgid "&Mark Unresolved" msgstr "Відмітити, як не розв'язане" msgid "Restart Mer&ge" msgstr "Перезапустити злиття" msgid "Was renamed from" msgstr "Назва змінена з" msgid "Restart Merge &with" msgstr "Перезапустити злиття з" msgid "Display the file anyway" msgstr "Показувати файл завжди" msgid "Diff not displayed: " msgstr "Не відображається різниця: " #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" "Файл більше за максимально дозволений.\n" "maxdiff = %s Kб" msgid "File is binary" msgstr "Двійковий файл" msgid "File may be binary (maximum line length exceeded)" msgstr "Файл повинен бути двійковим (перевищення максимальної довжини рядка)" msgid "File or diffs not displayed: " msgstr "Файл або різниця не показувані: " msgid " (was added)" msgstr " (був доданий)" #, python-format msgid " (copied from %s)" msgstr " (копіювати з %s)" #, python-format msgid " (renamed from %s)" msgstr " (зміна назви з %s)" msgid " (is a symlink)" msgstr " (посилання)" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" "Файл або відмінності не відображаються: Розмір файлу більше за максимально " "допустимий.\n" "maxdiff = %s Kб" msgid " (was deleted)" msgstr " (був знищений)" msgid " (was added, now missing)" msgstr " (був доданий, зараз відсутній)" msgid " (is unversioned)" msgstr " (поза контролем версій)" msgid "exec mode has been set" msgstr "дозвіл виконувати був встановлений" msgid "exec mode has been unset" msgstr "дозвіл виконувати був скасований" #, python-format msgid "changeset: %s" msgstr "зміни: %s" msgid "Initial revision" msgstr "Початкова правка" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" "[УВАГА] Помилка підсховища правка ID:\n" "\t%s\n" "\n" msgid "Subrepo created and set to initial revision." msgstr "Підсховище створене та встановлена початкова правка." msgid "Subrepo initialized to revision:" msgstr "Підсховище створено з правкою:" msgid "Subrepo removed from repository." msgstr "Підсховище вилучене з сховища." msgid "Previously the subrepository was at the following revision:" msgstr "Рініше підсховище мало правку:" msgid "Subrepo was not changed." msgstr "Підсховище не було змінено." msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "" "[ПОПЕРЕДЖЕННЯ] Потрібно підсховище. Поновити до цієї правки, клонувавши її." msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "" "[ПОПЕРЕДЖЕННЯ] Неповноцінне підсховище. Поновити до цієї правки, витягнувши " "її." msgid "Subrepo state is:" msgstr "Стан підсховища:" msgid "Revision has changed to:" msgstr "Правка змінена до:" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "набір змін: %s (не знайдено у підсховищі)" msgid "From:" msgstr "Від:" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" "[ПОПЕРЕДЖЕННЯ] Потрібна зміна підсховища. Поновити до цієї правки клонувавши " "її." msgid "Subrepository not found in the working directory." msgstr "Підсховище не знайдено у робочому каталозі." msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" "[ПОПЕРЕДЖЕННЯ] Неповні зміни у підсховищі. Поновити до цієї правки " "витягнувши її." msgid "Not a Mercurial subrepo, not previewable" msgstr "Підсховище не Mercurial, перегляд не можливий" #, python-format msgid "Error previewing subrepo: %s" msgstr "Помилка попереднього перегляду підсховища: %s" msgid "Subrepo may be damaged or inaccessible." msgstr "Підсховище може бути пошкоджене або недоступне." msgid "The subrepository is dirty." msgstr "Підсховище брудне." msgid "File Status:" msgstr "Файл стану:" msgid "(is a changed sub-repository)" msgstr "(змінилося підсховище)" msgid "(is an unchanged sub-repository)" msgstr "(не змінилося підсховище)" msgid "(is a dirty sub-repository)" msgstr "(брудне підсховище)" msgid "(is a new sub-repository)" msgstr "(є нові підсховище)" msgid "(is a removed sub-repository)" msgstr "(вилучене підсховище)" msgid "(is a changed and dirty sub-repository)" msgstr "(змінене та брудне підсховище)" msgid "(is a new and dirty sub-repository)" msgstr "(нове та брудне підсховище)" msgid "open..." msgstr "відкрити..." #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "Перегляд файлу журналу [%s] - %s" msgid "File History Log Columns" msgstr "Стовпці журналу файлу історії" msgid "Back" msgstr "Назад" msgid "Forward" msgstr "Вперед" msgid "Diff Selected &Changesets" msgstr "Різниця вказаного набору змін" msgid "&Diff Selected File Revisions" msgstr "Різниця вказаного файлу правок" msgid "Show Revision &Details" msgstr "Показати правку розлого" msgid "Too many rows selected for menu" msgstr "Замало стовпчиків обрано для меню" msgid "File Differences Log Columns" msgstr "Стовпці журналу відмінностей файлу" msgid "Next diff" msgstr "Наступна відмінність" msgid "Previous diff" msgstr "Попередня відмінність" msgid "Unicode" msgstr "Unicode" msgid "Western Europe" msgstr "Східна Европа" msgid "Unified Chinese" msgstr "Узагальнена китайська" msgid "Traditional Chinese" msgstr "Традиційна китайська" msgid "Korean" msgstr "Корейська" msgid "Japanese" msgstr "Японська" msgid "Thai" msgstr "Тайська" msgid "Central and Eastern Europe" msgstr "Центрацьна та західна Европа" msgid "Cyrillic" msgstr "Кирилиця" msgid "Russian" msgstr "Російська" msgid "Ukrainian" msgstr "Українська" msgid "Greek" msgstr "Грецька" msgid "Turkish" msgstr "Турецька" msgid "Arabic" msgstr "Арабська" msgid "Hebrew" msgstr "Єврейська" msgid "Vietnamese" msgstr "Вєтнамська" msgid "Baltic" msgstr "Балтійська" msgid "Southern Europe" msgstr "Підвенна Европа" msgid "Nordic" msgstr "Скандинавська" msgid "Celtic" msgstr "Ірландська" msgid "South-Eastern Europe" msgstr "Південно-західна Европа" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "$FILE_ENCODINGS" msgid "View change as unified diff output" msgstr "Переглядати зміну в уніфікованому форматі різниць" msgid "View change in context of file" msgstr "Переглядати зміни в контексті файлу" msgid "Annotate with revision numbers" msgstr "Опис з номерами правок" msgid "Next Diff" msgstr "Наступна різниця" msgid "Previous Diff" msgstr "Попередня різниця" msgid "Open shelve tool" msgstr "Відкрити знаряддя відкладання" msgid "&Auto Detect" msgstr "Визначати автоматично" msgid "Show changes from first parent" msgstr "Відобразити зміни від першого попередника" msgid "Show changes from second parent" msgstr "Відобразити зміни від другого попередника" msgid "E&ncoding" msgstr "Кодування" msgid "&Search in Current File" msgstr "Пошук в поточному файлі" msgid "Search in All &History" msgstr "Пошук по усій історії" msgid "Go to Line" msgstr "Перейти до рядка" #, python-format msgid "Enter line number (1 - %d)" msgstr "Введіть номер рядка (1 - %d)" msgid "Show &Author" msgstr "Показати автора" msgid "Show &Date" msgstr "Показати дату" msgid "Show &Revision" msgstr "Показати правку" msgid "Annotate Op&tions" msgstr "Коментувати налаштування" msgid "Search Selected Text" msgstr "Пошук вибраного тексту" msgid "In Current &File" msgstr "В поточному &файлі" msgid "In &Current Revision" msgstr "В поточній правці" msgid "In &Original Revision" msgstr "В оригінальній правці" msgid "In All &History" msgstr "По усій історії" msgid "Go to" msgstr "Перейти до" msgid "View File at" msgstr "Переглянути файл в" msgid "Diff File to" msgstr "Файл різниць до" msgid "&Originating Revision" msgstr "Правка, яка з'явились" msgid "&Parent Revision" msgstr "Попередня правка" #, python-format msgid "&Parent Revision (%d)" msgstr "Попередник правки (%d)" msgid "&Mark Excluded Changes" msgstr "Відмітити виключні зміни" msgid "(excluded from the next commit)" msgstr "(виключені з наступної фіксації)" msgid "Interrupted graft operation found" msgstr "Знайдено пошкоджену операцію щеплення" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" "Виявлено пошкоджену операцію щеплення.\n" "\n" "Ви не можете виконати іншу операцію щеплення, якщо є невдало завершена " "операція щеплення." msgid "Continue or abort interrupted graft operation?" msgstr "Продовжити або припинити перервану операцію щеплення?" msgid "To graft destination" msgstr "Прищепити призначення" msgid "Use my user name instead of graft committer user name" msgstr "" "Використати моє ім'я замість імені користувача, який зафіксував прищепу" msgid "Use current date" msgstr "Використати поточну дату" msgid "Append graft info to log message" msgstr "Внести інформацію про прищепу до журналу повідомлень" msgid "Graft" msgstr "Щепити" msgid "Abort" msgstr "Перервати" #, python-format msgid "Graft - %s" msgstr "Прищепа - %s" msgid "Graft changeset" msgstr "Прищепити набір змін" #, python-format msgid "Graft changeset #%d of %d" msgstr "Прищепити набір змін #%d до %d" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" "Перед щепленням, ви повинні зафіксувати, відкласти до латки, або відкинути зміни." msgid "You may continue or start the graft" msgstr "Ви можете продовжити або почати щеплення" msgid "Graft is complete" msgstr "Щеплення завершено" msgid "Graft failed" msgstr "Щеплення не вдалося" msgid "Graft aborted" msgstr "Щеплення припинено" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" "Щеплення генеруватиме конфлікти злиття, які потребуватимуть розв'язування" msgid "You may continue the graft" msgstr "Ви можете продовжувати щепити" msgid "Exiting with an unfinished graft is not recommended." msgstr "Вихід з незавершеного щеплення не бажаний." msgid "Consider aborting the graft first." msgstr "Вважати, що перше щеплення зазнало невдачі." msgid "&Exit" msgstr "Вихід" msgid "### regular expression search pattern ###" msgstr "### регулярний вираз для пошуку ###" msgid "Regexp:" msgstr "Регулярний вираз:" msgid "Ignore case" msgstr "Без урахування регістру" msgid "Search" msgstr "Пошук" msgid "Working Copy" msgstr "Робоча копія" msgid "All History" msgstr "Вся історія" msgid "Report only the first match per file" msgstr "Звітувати лише за першими збігами у файлі" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "Відстежувати копіювання та перейменування" msgid "Includes:" msgstr "З урахуванням:" msgid "Excludes:" msgstr "Без урахування:" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" "Перелік шаблонів, через кому, виключених файлів. Ці шаблони застосовуються " "після шаблонів включення." msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" "Перелік масок файлів, через кому, які включатимуться. Типово пошук проходить " "у всьому сховищі." #, python-format msgid "\"%s\" removed from search history" msgstr "\"%s\" вилучено з історії пошуку" #, python-format msgid "\"%s\" removed from path history" msgstr "\"%s\" вилучено з шляху пошуку" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "grep: помилковий шаблон пошуку: %s\n" #, python-format msgid "grep: %s\n" msgstr "grep: %s\n" #, python-format msgid "%d matches found" msgstr "%d збігів знайдено" msgid "No matches found" msgstr "Збігів не знайдено" msgid "Searching" msgstr "Пошук" msgid "history" msgstr "історія" msgid "Interrupted" msgstr "Пошкоджений" msgid "files" msgstr "файли" #, python-format msgid "Skipping %s, unable to read" msgstr "Пропустити %s, не можливо прочитати" msgid "Vi&ew File" msgstr "Переглянути файл" msgid "&View Changeset" msgstr "Переглянути зміни" msgid "Annotate &File" msgstr "Опис файлу" msgid "File" msgstr "Файл" msgid "Line" msgstr "Рядок" msgid "Rev" msgstr "Правка" msgid "User" msgstr "Користувач" msgid "Match Text" msgstr "Збіги тексту" msgid "TortoiseHg Search" msgstr "Пошук TortoiseHg" #, python-format msgid "Detect Copies/Renames in %s" msgstr "Виявлено копій/змін назв у %s" msgid "Unrevisioned Files" msgstr "Файли, поза контролем" msgid "Refresh file list" msgstr "Перезавантажити список файлів" #, python-format msgid "Min Similarity: %d%%" msgstr "Мінімальний рівень відповідності: %d%%" msgid "Only consider deleted files" msgstr "Розглядати лише знищені файли" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "" "Зніміть мітку аби розглядати всі ревізійовані файли для копіювання джерел" msgid "Find Renames" msgstr "Знайти зміни назв" msgid "Find copy and/or rename sources" msgstr "Знайти копію та/або переіменовані джерела" msgid "Candidate Matches" msgstr "Найкращий збіг" msgid "Accept All Matches" msgstr "Прийняти всі збіги" msgid "Accept Selected Matches" msgstr "Прийняти обрані збіги" msgid "Differences from Source to Dest" msgstr "Відмінність між джерелом та призначенням" msgid "Search already in progress" msgstr "Виконується пошук" msgid "Cannot start a new search" msgstr "Неможу започаткувати новий пошук" msgid "No files to find" msgstr "Відсутні файли для пошуку" msgid "There are no files that may have been renamed" msgstr "Відсутні файли, які можуть бути перейменовані" msgid "Multiple sources chosen" msgstr "Декілька джерел вибору" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" "Ви маєте декілька змін назв для кінцевого файлу:\n" "%s. Припинення!" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" "%s та %s мають однаковий вміст\n" "\n" #. i18n: percent format #, python-format msgid "%d%%" msgstr "%d%%" msgid "Source" msgstr "Звідки" msgid "Dest" msgstr "Признач." msgid "% Match" msgstr "% Збіги" msgid "Sending Email" msgstr "Надсилання Email" msgid "Email" msgstr "Email" msgid "To:" msgstr "Кому:" msgid "Cc:" msgstr "Копія:" msgid "In-Reply-To:" msgstr "Відповідь на:" msgid "Message identifier to reply to, for threading" msgstr "" "Ідентифікатор нотатки відповіді, використовується для створення теми " "обговорення" msgid "Flag:" msgstr "Прапорець:" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" "Hg латки (які створені командою експорту) є сумісними з більшістю програм. " "Вони включають в себе заголовок, що містить метадані найбільш важливого " "набору змін метаданих." msgid "Send changesets as Hg patches" msgstr "Надіслати набори змін, як Hg латку" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" "Git латки можуть описувати двійкові файли, копії, та зміни прав, але " "отримувачі зможуть використовувати їх лише із git або Mercurial." msgid "Use extended (git) patch format" msgstr "Використати розширений (git) формат латки" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" "Відсікання Mercurial заголовку вилучатиме им'я користувача та інформацію про " "попередників. Це корисно, лише у випадку якщо отримувач не використовує " "Mercurial (та не хоче бачити ці заголовки)." msgid "Plain, do not prepend Hg header" msgstr "Звичайно, не випереджати Hg заголовок" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" "Пакування зберігає повний набір змін у двійковому форматі. Користувачі на " "іншій стороні можуть витягнути з них. Це самий безпечний шлях для надсилання " "змін отримувачам, які використовують Mercurial." msgid "Send single binary bundle, not patches" msgstr "Надіслати двійковим пакунком, не латками" msgid "send patches as part of the email body" msgstr "надіслати латки як частину тіла електроного листа" msgid "body" msgstr "тіло" msgid "send patches as attachments" msgstr "надсилати вкладеними латками" msgid "attach" msgstr "вкласти" msgid "send patches as inline attachments" msgstr "надіслати латки, як вбудовані вкладення" msgid "inline" msgstr "у тексті" msgid "add diffstat output to messages" msgstr "додати статистику відмінностей, як результат до повідомлень" msgid "diffstat" msgstr "стан відмінностей" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" "Опис серії латок надіслано у первинному зведенні разом [Латка 0 of N] з " "темою. Вона повинна описувати вплив цілої низки виправлень. При відправці у " "пакунку, ці поля утворюють тему повідомлення і тло. Ознаками є перелік " "посилань доданих до заголовку повідомлення, через кому." msgid "Write patch series (bundle) description" msgstr "Записати латку рядок (пакунок) опису" msgid "Subject:" msgstr "Тема:" msgid "Changesets" msgstr "Набори змін" msgid "Select &All" msgstr "Вибрати все" msgid "Select &None" msgstr "Нічого не вибирати" msgid "Edit" msgstr "Правити" msgid "Preview" msgstr "Попередній перегляд" msgid "&Settings" msgstr "Налаштування" msgid "Send &Email" msgstr "Надіслати електроною поштою" msgid "&Close" msgstr "Закрити" #, python-format msgid "Ignore filter - %s" msgstr "Фільтр ігнорування - %s" msgid "Glob" msgstr "Glob" msgid "Regexp" msgstr "Регвираз" msgid "Add" msgstr "Додати" msgid "Edit File" msgstr "Правити файл" msgid "Ignore Filter" msgstr "Фільтр ігнорування" msgid "Untracked Files" msgstr "Файли поза контролем" msgid "Backspace or Del to remove row(s)" msgstr "Backspace або Del для вилучення ряду(ків)" msgid "Add ignore filter..." msgstr "Додати фільтр ігнорування..." msgid "selected files" msgstr "обрані файли" msgid "Ignore " msgstr "Ігнорувати " msgid "Invalid glob expression" msgstr "Помилкове вираз для glob" msgid "Invalid regexp expression" msgstr "Помилка в регулярному виразі" msgid "Unable to read repository status" msgstr "Стан сховища не можливо прочитати" msgid "New file created" msgstr "Новий файл створено" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "" "TortoiseHg створла новий файл .hgignore. Бажаєте додати цей файл до сховища " "під контроль версій?" msgid "Unable to write .hgignore file" msgstr "Не можливо писати до файлу .hgignore" msgid "Copy working directory files from skeleton" msgstr "Копіювати робочий каталог файлів з скелетона" msgid "Create special files (.hgignore, ...)" msgstr "" msgid "Make repo compatible with Mercurial <1.7" msgstr "Створити сховище сумісне з Mercurial < 1.7" msgid "New Repository" msgstr "Нове сховище" msgid "&Create" msgstr "&Створити" msgid "Unable to create a config file" msgstr "Не можливо створити файл з налаштуваннями" msgid "Insufficient access rights." msgstr "Недостатньо прав доступу." msgid "Show Log" msgstr "Відобразити журнал" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" "Деякі з файлів, які ви вибрали мають розмір більше 10 Мб. Ви можете більш " "ефективно використовувати дисковий простір додаючи ці файли, як великі " "файли, які будуть зберігатися лише останньою версією файлу на сервері. " "Бажаєте додати ці файли, як великі файли?" msgid "Add as &Largefiles" msgstr "Додати, як великі файли" msgid "Add as &Normal Files" msgstr "Додати, як звичайні файли" msgid "Invalid Patterns" msgstr "Недійсні шаблони" msgid "Failed to process largefiles.patterns." msgstr "" msgid "Word docs (*.doc *.docx)" msgstr "Документи Word (*.doc *.docx)" msgid "PDF docs (*.pdf)" msgstr "Документи PDF (*.pdf)" msgid "Excel files (*.xls *.xlsx)" msgstr "Файли Excel (*.xls *.xlsx)" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "Знаряддя TortoiseHg Lock - %s" msgid "Refresh lock information" msgstr "Перечитати інформацію блокування" msgid "Lock a file not described in .hglocks" msgstr "Заблокувати файл не описаний в .hglocks" msgid "Stop current operation" msgstr "Зупинити поточну операцію" msgid "Locked And Lockable Files:" msgstr "" msgid "Path" msgstr "Шлях" msgid "Locking User" msgstr "Власник блокування" msgid "Purpose" msgstr "Мета" msgid "Simplelock extension not enabled" msgstr "" msgid "Please enable and configure simplelock" msgstr "Будь ласка увімкніть та налаштуйте simplelock" msgid "Open a (nonmergable) file you wish to be locked" msgstr "" msgid "File was not within current repository" msgstr "" #, python-format msgid "Locking %s" msgstr "Блокування %s" #, python-format msgid "Unlocking %s" msgstr "Розблокування %s" msgid "Refreshing locks..." msgstr "Перечитати блокування..." #, python-format msgid "Lock of %s successful" msgstr "Заблоковано %s вдало" #, python-format msgid "Lock of %s failed, retry" msgstr "Заблоковано %s провалено, повторити" #, python-format msgid "Unlock of %s failed, retry" msgstr "Розблокування %s провалилось, повторити" #, python-format msgid "Unlock of %s successful" msgstr "Розблокування %s вдало" msgid "Ready, double click to lock or unlock" msgstr "Готовий, подвійне клацання блокувати або розблокувати" msgid "Ready" msgstr "Готовий" msgid "You can only release your own locks" msgstr "Ви можете звільнити лише свої власні блокування" msgid "Find revisions matching fields of:" msgstr "Знайти правки з однаковими полями:" msgid "Revision to Match:" msgstr "переглянути збіги:" msgid "Fields to match:" msgstr "Однакові поля:" msgid "Summary (first description line)" msgstr "Зведення (перший рядок опису)" msgid "Description" msgstr "Опис" msgid "Author" msgstr "Автор" msgid "Date" msgstr "Дата" msgid "Files" msgstr "Файли" msgid "Diff contents" msgstr "Відмінності вмісту" msgid "Subrepo states" msgstr "Будова підсховища" msgid "Branch" msgstr "Гілка" msgid "Phase" msgstr "Фаза" msgid "&Match" msgstr "Збіги" #, python-format msgid "Find matches - %s" msgstr "Знайдено збігів - %s" msgid "Revisions to Match:" msgstr "Збіг в правках:" #, python-format msgid "Match any of %d revisions" msgstr "Збіги в будь-яких %d правках" msgid "Unknown revision!" msgstr "Невідома правка!" msgid "Parse Error!" msgstr "Помилка параметрів!" #, python-format msgid "Merge - %s" msgstr "Злиття - %s" msgid "Do you want to exit?" msgstr "Бажаєте вийти?" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" "Для завершення злиття потрібно зафіксувати робочий каталог.\n" "\n" "Аби скасувати злиття можна поновитись до однієї із злитих попередніх правок." msgid "Prepare to merge" msgstr "Підготовка злиття" msgid "Verify merge targets and ensure your working directory is clean." msgstr "Перевірте мету злиття та забезпечте чистоту робочого каталогу." msgid "Not a head revision!" msgstr "Не вершина правок!" msgid "Merge from (other revision)" msgstr "Зливати з (інша правка)" msgid "Merge to (working directory)" msgstr "Зливати до (робочий каталог)" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" "Робочий каталог вже злитий. Продовжити " "або відкинути злиття, що існують." msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" "Перед злиттям потрібно зафіксувати, відкласти до латки, або відкинути зміни." msgid "Or use:" msgstr "або використати:" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "Примусове злиття з простроченими змінами (-f/--force)" msgid "Discard all changes from the other revision" msgstr "Відкинути всі зміни з інших правок" msgid "&Discard" msgstr "Відкинути" msgid "Confirm Discard Changes" msgstr "Підтвердіть відхилення змін" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" "Зміни з правки %s та всі не злиті попередники будуть відхилені.\n" "\n" "Ви впевнені, що бажаєте цього?" msgctxt "working dir state" msgid "Clean" msgstr "Чистий" msgid "Merging..." msgstr "Злиття..." msgid "Automatically advance to next page when merge is complete." msgstr "По завершенню злиття автоматично переходити до наступної сторінки." #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" "%d файл(-ів) мають зміни у обох гілках і це потребує розв'язування" msgid "" "No merge conflicts, ready to commit or review" msgstr "" "Конфлікти злиття відсутні, готовий до фіксування або перегляду" msgid "Commit merge results" msgstr "Зафіксувати результати злиття" msgid "Commit Options" msgstr "Параметри фіксації" msgid "Commit Now" msgstr "Фіксувати зараз" msgid "Commit Later" msgstr "Фіксувати згодом" msgid "Merge changeset" msgstr "Злити набір змін" msgid "Syntax Highlighting" msgstr "Підсвічувати синтаксис" msgid "Paste &Filenames" msgstr "Вставити назву файлу" msgid "App&ly Format" msgstr "Затвердити формат" msgid "C&onfigure Format" msgstr "Налаштувати формат" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "%s містить відхилені шматки, правити файл разом з відхиленими?" msgid "&Commit to Queue..." msgstr "Фіксувати до черги..." msgid "Create &New Queue..." msgstr "Створити нову чергу..." msgid "&Rename Active Queue..." msgstr "Переназвати активну чергу..." msgid "&Delete Queue..." msgstr "Знищити чергу..." msgid "&Purge Queue..." msgstr "Очищення черги..." msgid "Create Patch Queue" msgstr "Створити чергу латок" msgid "New patch queue name" msgstr "Нова назва черги латок" msgid "Create" msgstr "Створити" msgid "Rename Patch Queue" msgstr "Переіменувати чергу латок" #, python-format msgid "Rename patch queue '%s' to" msgstr "Зміна назви черги латок на '%s'" msgid "Rename" msgstr "Змінити назву" msgid "Delete Patch Queue" msgstr "Знищити чергу латок" msgid "Delete reference to" msgstr "Знищити посилання на" msgid "Delete" msgstr "Знищити" msgid "Purge Patch Queue" msgstr "Вичистити чергу латок" msgid "Remove patch directory of" msgstr "Видалити каталог латок" msgid "Purge" msgstr "Чистити" msgid "Rename Patch" msgstr "Переіменувати латку" #, python-format msgid "Rename patch %s to:" msgstr "Зміна назви латки %s на:" msgid "no guards" msgstr "не захищений" msgid "Patch Queue" msgstr "Черга латок" msgctxt "MQ QPush" msgid "Push" msgstr "Виштовхнути" msgid "Apply one patch" msgstr "Затосувати одну латку" msgctxt "MQ QPush" msgid "Push all" msgstr "Виштовхнути все" msgid "Apply all patches" msgstr "Застосувати всі латки" msgid "Pop" msgstr "Pop" msgid "Unapply one patch" msgstr "Неприйнята одна латка" msgid "Pop all" msgstr "Pop все" msgid "Unapply all patches" msgstr "Відхилити всі латки" msgid "Go &to Patch" msgstr "Перейти до латки" msgid "&Apply Only This Patch" msgstr "" msgid "Apply only the selected patch" msgstr "" msgid "&Finish Patch" msgstr "Остаточна латка" msgid "Move applied patches into repository history" msgstr "Перемістити застосовані латки в історію сховища" msgid "&Delete Patches..." msgstr "Знищити латки..." msgid "Delete selected patches" msgstr "Знищити обрані латки" msgid "Re&name Patch..." msgstr "Змінити назву латки..." msgid "Set &Guards..." msgstr "Встановити захист..." msgid "Configure guards for selected patch" msgstr "Налаштувати захист обраним латкам" msgid "Patch Queue Actions Toolbar" msgstr "Латка черг активного пеналу" msgid "Configure guards" msgstr "Налаштування захисту" #, python-format msgid "Input new guards for %s:" msgstr "Ввести новий захист для %s:" msgid "Confirm patch queue switch" msgstr "Підтвердити перемикання черги латок" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "Ви дійсно бажаєте активувати чергу латок '%s'?" #, python-format msgid "Guards: %d/%d" msgstr "Захист: %d/%d" msgid "MQ options" msgstr "Параметри MQ" msgid "Force push or pop (--force)" msgstr "Примусово виштовхнути або pop (--force)" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "Дозволяти локальні зміни, що не конфліктують" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "Очікують примусових змін - %s" msgid "Submitting p4 changelist..." msgstr "Надсилання переліку змін до p4..." msgid "Reverting p4 changelist..." msgstr "Повернення переліку змін з p4..." msgid "Patch Branch Toolbar" msgstr "Пенал гілки для латок" msgid "Merge all pending dependencies" msgstr "Злити всі залежності, які очікують" msgid "Backout current patch branch" msgstr "Відновити поточну латку гілки" msgid "Backport part of a changeset to a dependency" msgstr "Backport частини залежного набору змін" msgid "Start a new patch branch" msgstr "Почати нову гілку латок" msgid "Edit patch dependency graph" msgstr "Правити латку граф залежностей" msgid "will be closed" msgstr "буде закрито" #, python-format msgid "needs merge of %i heads\n" msgstr "потребує злиття з %i вершиною\n" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "потребує злиття з %s (враховуючи %s)\n" #, python-format msgid "needs merge with %s\n" msgstr "потребує злиття з %s\n" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "потребуватиме поновлення бази різниці до верхівки %s\n" msgid "&Goto (update workdir)" msgstr "Перейти (поновити робочий каталог)" msgid "&Merge" msgstr "Злити" msgid "No patch branch selected" msgstr "У гілці відсутні латки" msgid "No editor found" msgstr "Редактора не знайдено" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" "Mercurial не може знайти редактор. Будь ласка, налаштуйте Mercurial на " "використання наявних в системі редакторів." msgid "Graph" msgstr "Граф" msgid "Status" msgstr "Стан" msgid "Title" msgstr "Заголовок" msgid "Message" msgstr "Повідомлення" msgid "New Patch Branch" msgstr "Нова гілка латок" msgid "Patch message:" msgstr "Повідомлення латки:" msgid "Patch date:" msgstr "Дата латки:" msgid "Patch user:" msgstr "Виконавець латки:" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "Надіслати відгук" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "Помилкові налаштування - сервер рецензування не налаштований" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "Помилкові налаштування - перевірте ваше ім'я, як інспектора" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" "Помилка в модулі дошка відгуків. Будь ласка завантажте модуль Mercurial " "Дошка перегляду версії 3.5 або старше з веб-сайту.\n" "\n" " %s" msgid "Review Board" msgstr "Review Board" msgid "Password:" msgstr "Пароль:" msgid "Error" msgstr "Помилка" #, python-format msgid "Review draft posted to %s\n" msgstr "Чорновик відгуку надісланий %s\n" #, python-format msgid "Review published to %s\n" msgstr "Відгук опублікований %s\n" msgid "Success" msgstr "Успішно" msgid "Repository ID:" msgstr "ID сховища:" msgid "Post Review" msgstr "Надіслати відгук" msgid "Review ID:" msgstr "ID огляду:" msgid "Update the fields of this existing request" msgstr "Поновити поля згідно запиту" msgid "Update Review" msgstr "Поновити відгук" msgid "Create diff with all outgoing changes" msgstr "Створити відмінності до всіх вихідних змін" msgid "Create diff with all changes on this branch" msgstr "Створити відмінності з всіма змінами в цій гілці" msgid "Publish request immediately" msgstr "Опублікувати запит негайно" msgid "%p%" msgstr "%p%" msgid "Connecting to Review Board..." msgstr "Під`єднати до Review Board..." msgid "Target:" msgstr "Ціль:" msgid "Do not modify working copy (-k/--keep)" msgstr "" #, python-format msgid "Prune - %s" msgstr "Спростити - %s" msgid "&Prune" msgstr "Спростити" msgid "No unknown files found" msgstr "Знайдено невідомі файли" msgid "No ignored files found" msgstr "Знайдені файли не ігнорувати" msgid "No trash files found" msgstr "Файлів у смітнику не знайдено" msgid "Delete empty folders" msgstr "Знищити порожні теки" msgid "Preserve files beginning with .hg" msgstr "Захищені файли починаючи з .hg" #, python-format msgid "%s - purge" msgstr "%s - очистити" msgid "Checking" msgstr "Перевірка" msgid "Ready to purge." msgstr "Готовий до очищення." #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "Знищити %d невідомий файл" msgstr[1] "Знищити %d невідомих файли" msgstr[2] "Знищити %d невідомих файлів" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "Знищити %d ігнорований файл" msgstr[1] "Знищити %d ігнорованих файлів" msgstr[2] "Знищити %d ігнорованих файлів" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "Знищити %d файл у .hg/Trashcan" msgstr[1] "Знищити %d файли у .hg/Trashcan" msgstr[2] "Знищити %d файлів у .hg/Trashcan" msgid "Confirm file deletions" msgstr "Підтвердити знищення файлів" msgid "Are you sure you want to delete these files and/or folders?" msgstr "Ви дійсно бажаєте знищити ці файли та/або теки?" msgid "Deletion failures" msgstr "Знищення не вдале" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "Не можливо знищити %d файл або теку" msgstr[1] "Не можливо знищити %d файлів або тек" msgstr[2] "Не можливо знищити %d файлів або тек" msgid "Deleting trash folder..." msgstr "Знищити теки у кошику..." #, python-format msgid "Deleted %d files" msgstr "Знищено %d файлів" #, python-format msgid "Deleted %d files and %d folders" msgstr "Знищено %d файлів та %d тек" msgid "Delete Patches" msgstr "Знищити латки" msgid "Remove patches from queue?" msgstr "Вилучити латки з черги?" msgid "Keep patch files" msgstr "Тримати файли латок" #, python-format msgid "Patch fold - %s" msgstr "Підшити латку - %s" msgid "New patch message:" msgstr "Нове повідомлення латки:" msgid "Patches to fold" msgstr "Підшити до латок" msgid "&Undo" msgstr "Скасувати" msgid "&Redo" msgstr "Повернути" msgid "Cu&t" msgstr "Вирізати" msgid "&Copy" msgstr "Скопіювати" msgid "&Paste" msgstr "Вставити" msgid "&Editor Options" msgstr "Параметри редактора" msgid "&Wrap" msgstr "Обгорнути" msgctxt "wrap mode" msgid "&None" msgstr "Жодної" msgid "&Word" msgstr "Слово" msgid "&Character" msgstr "Символ" msgid "White&space" msgstr "Доска оголошень" msgid "&Visible" msgstr "Видимі" msgid "&Invisible" msgstr "Невидимий" msgid "&AfterIndent" msgstr "Після відступу" msgid "&TAB Inserts" msgstr "Вставляти табуляцію" msgid "&Auto" msgstr "Авто" msgid "&TAB" msgstr "Табуляція" msgid "&Spaces" msgstr "Прогалини" msgid "EOL &Visibility" msgstr "EOL видимість" msgid "EOL &Mode" msgstr "EOL режим" msgid "&Windows" msgstr "Вікна" msgid "&Unix" msgstr "Unix" msgid "&Mac" msgstr "Mac" msgid "&Auto-Complete" msgstr "Авто-доповнення" msgid "### regular expression ###" msgstr "### регулярний вираз ###" msgid "Regular expression search pattern" msgstr "Шаблони шукати регулярними виразами" msgid "Wrap search" msgstr "Пошук в середині" msgid "Prev" msgstr "Попередня" msgid "Next" msgstr "Наступна" msgid "Unable to read file" msgstr "Не можливо прочитати файл" msgid "Could not open the specified file for reading." msgstr "Не можливо відкрити спеціальний файл для читання." msgid "This appears to be a binary file." msgstr "Це свідчить є двійковий файл." msgid "An error occurred while reading the file." msgstr "Сталася помилка під час читання файлу." msgid "Text Translation Failure" msgstr "Текст перетворено з помилками" msgid "Could not translate the file content from native encoding." msgstr "Не можливо перетворити зміст файлу від національних кодувань." msgid "Several characters would be lost." msgstr "Деякі символи можуть бути втрачені." msgid "Unable to write file" msgstr "Не можливо записати файл" msgid "Could not translate the file content to native encoding." msgstr "Не можливо перетворити зміст файлу до національних кодувань." msgid "Could not open the specified file for writing." msgstr "Не можливо відкрити спеціально файл для запису." msgid "An error occurred while writing the file." msgstr "Сталася помилка при записі у файл." msgid "Try refreshing your repository." msgstr "Спробувати поновити сховище." #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
                                                                                                    Please edit your config" msgstr "" "Помилка в рядку \"%(arg0)s\" в %(arg1)s
                                                                                                    Будь ласка виправте налаштування" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
                                                                                                    Please fix your config" msgstr "" "Помилка налаштувань: \"%(arg0)s\",
                                                                                                    Будь ласка,
                                                                                                    виправте налаштування" #, python-format msgid "Operation aborted:

                                                                                                    %(arg0)s." msgstr "Операція припинена:

                                                                                                    %(arg0)s." msgid "Repository is locked" msgstr "Сховище заблоковане" msgid "hint:" msgstr "підказка:" msgid "Repository Error" msgstr "Помилка сховища" msgid "No visual editor configured" msgstr "Не налаштований візуальний редактор" msgid "Please configure a visual editor." msgstr "Налаштуйте візуальний редактор." msgid "Editor launch failure" msgstr "Помилка запуску редактора" msgid "Failed to open path in terminal" msgstr "Не двалося відкрити шлях в терміналі" #, python-format msgid "\"%s\" is not a valid directory" msgstr "\"%s\" не існуючий каталог" #, python-format msgid "Invalid configuration: %s" msgstr "Помилка налаштування: %s" msgid "Unable to start the following command:" msgstr "Не можливо починати з наступної команди:" msgid "No shell configured" msgstr "Оболонка не налаштована" msgid "A terminal shell must be configured" msgstr "Оболонка терміналу повинна бути налаштована" msgid "Please enter a username" msgstr "Введіть ім'я користувача" msgid "You must identify yourself to Mercurial" msgstr "Ви повинні ідентифікувати себе в Mercurial" msgid "Unable to translate input to local encoding." msgstr "Неможливо відтворити вхідний потік у локальному кодуванні" msgid "Checkmark files to add" msgstr "Відмітити файли для додавання" msgid "Checkmark files to forget" msgstr "Забути відмічені файли" msgid "Forget" msgstr "Забути" msgid "Checkmark files to revert" msgstr "Відмітити файли для повернення" msgid "Revert" msgstr "Повернення" msgid "Checkmark files to remove" msgstr "Відмітити файли для вилучення" msgid "Remove" msgstr "Вилучити" #, python-format msgid "%s - hg %s" msgstr "%s - hg %s" msgid "Do not save backup files (*.orig)" msgstr "Копії файлів (*.orig) не зберігати" msgid "Force removal of modified files (--force)" msgstr "Примусово вилучати змінені файли (--force)" msgid "Add &Largefiles" msgstr "Додавати великі файли" msgid "No files selected" msgstr "Не вибрано жодного файлу" msgid "No operation to perform" msgstr "Не виконувати операцію" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" "Ви вибрали один або декілька файлів, які були змінені. Типово, ці файли не " "будуть видалені. Що б ви хотіли зробити?" msgid "Remove &Unmodified Files" msgstr "Вилучити немодифіковані файли" msgid "Remove &All Selected Files" msgstr "Вилучити всі вибрані файли" msgid "Rebase changeset and descendants" msgstr "Перебазування набору змін та похідних" msgid "To rebase destination" msgstr "Перебазування похідних" msgid "Swap source and destination" msgstr "Обміняти місцями джерело та призначення" msgid "Keep original changesets (--keep)" msgstr "Отримати оригінальний набор змін (--keep)" msgid "Keep original branch names (--keepbranches)" msgstr "Отримати оригінальну назву гілки (--keepbranches)" msgid "Collapse the rebased changesets (--collapse)" msgstr "Зруйнувати набір змін переміщення (--collapse)" msgid "Rebase entire source branch (-b/--base)" msgstr "Перебазувати вцілому вихідну гілку (-b/--base)" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "" "Перебазувати на неопубліковану на Subversion вершину (перезапис джерела, " "призначення)" msgid "Rebase" msgstr "Перебазувати" #, python-format msgid "Rebase - %s" msgstr "Перебазувати - %s" msgid "" "Before rebase, you must commit, shelve to patch, or discard changes." msgstr "" "Перед переміщенням, ви повинні зафіксувати, відкласти до латки, або відкинути зміни." msgid "You may continue the rebase" msgstr "Ви можете продовжити перебазування" msgid "Rebase is complete" msgstr "Перебазування виконане" msgid "Rebase failed" msgstr "Перебазування не відбулось" msgid "Rebase aborted" msgstr "Перебазування скасовано" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" "Перебазування створить конфлікти злиття, які вимагатимуть їх розв'язування" msgid "Exiting with an unfinished rebase is not recommended." msgstr "Вихід, із не завершеної операції перебазування не рекомендується." msgid "Consider aborting the rebase first." msgstr "Вважати скасованим перше перебазування." #, python-format msgid "Merge rejected patch chunks into %s" msgstr "Злити відхилені кусні латок в %s" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "" "Відмітити кусінь, як розв'язаний перейшовши до наступного не розв'язаного" msgid "Mark this chunk as unresolved" msgstr "Відмітити кусінь, як не розв'язаний" msgid "Reload File" msgstr "Перезавантажити файл" msgid "Are you sure you want to reload this file?" msgstr "Ви впевнені, що бажаєте перезавантажити файл?" msgid "All unsaved changes will be lost." msgstr "Всі не збережені файли буде втрачено." msgid "Warning" msgstr "Попередження" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" "Вами відмічено всі відхилені латки куснів як вже розвязані, хоча файл не " "змінювався на панелі правки.\n" "\n" "Це може призвести, що жоден код із відхилених куснів латок не потрапить до " "файлу.\n" "\n" "Ви дійсно бажаєте залишити файл без змін та розглядаєте відхилені кусні, як " "розв'язані?\n" "\n" "Зробивши так, до прикладу, Ви можете знищити їх з відкладеного, що " "означатиме, що ви втратили би це назавжди!\n" "\n" "Натисніть Так, аби прийняти файл як є, або Ні - щоб далі розв'язувати " "відкинуті кусні латок." msgid "Copy source -> destination" msgstr "Копіювати джерело в призначення" msgid "Copy Error" msgstr "Помилка копіювання" msgid "Rename Error" msgstr "Помилка зміни назви" msgid "Select Source File" msgstr "Обрати файл джерела" msgid "Select Source Folder" msgstr "Обрати теку джерела" msgid "Source does not exist." msgstr "Джерело не існує" msgid "The source must be within the repository tree." msgstr "Джерело повинно знаходитись всередині дерева сховища." msgid "The destination must be within the repository tree." msgstr "Призначення повинно бути всередині дерева сховища." msgid "Destination file already exists." msgstr "Файл призначення вже існує." msgid "Are you sure you want to overwrite it ?" msgstr "Ви впевнені, що бажаєте переписати це ?" #, python-format msgid "Copy - %s" msgstr "Копіювати - %s" #, python-format msgid "Rename - %s" msgstr "Змінити назву - %s" msgid "Show all" msgstr "Показати усе" msgid "### revision set query ###" msgstr "### запит встановлення правки ###" msgid "Clear current query and query text" msgstr "Очистити поточний та текстовий запит" msgid "Trigger revision set query" msgstr "Перехоплювач правка набор запит" msgid "Open advanced query editor" msgstr "Відкрити потужніший редактор запитів" msgid "Delete selected query from history" msgstr "Знищити обраний запит з історії" msgid "filter" msgstr "фільтр" msgid "Toggle filtering of non-matched changesets" msgstr "Відповідає за перемикання фільтрації без наборів змін" msgid "Show/Hide hidden changesets" msgstr "Показати/Сховати прихований набір змін" msgid "Toggle graft relations visibility" msgstr "Змінити видимість прищепи" msgid "Keyword Search" msgstr "Пошук слова" msgid "Revision Set" msgstr "Набір правок" msgid "(unsaved)" msgstr "" msgid "Display graph the named branch only" msgstr "Відобразити графік лише зазначеної гілки" msgid "Display only active branches" msgstr "Відображати лише активні гілки" msgid "Display closed branches" msgstr "Відображати закриті гілки" msgid "Include all ancestors" msgstr "Включити всіх предків" msgctxt "column header" msgid "Graph" msgstr "Граф" msgctxt "column header" msgid "Rev" msgstr "Рев." msgctxt "column header" msgid "Branch" msgstr "Гілка" msgctxt "column header" msgid "Description" msgstr "Опис" msgctxt "column header" msgid "Author" msgstr "Автор" msgctxt "column header" msgid "Tags" msgstr "Ознака" msgctxt "column header" msgid "Latest tags" msgstr "Останні ознаки" msgctxt "column header" msgid "Node" msgstr "Вузлова точка" msgctxt "column header" msgid "Git Commit" msgstr "" msgctxt "column header" msgid "Age" msgstr "Створено" msgctxt "column header" msgid "Local Time" msgstr "Локальний час" msgctxt "column header" msgid "UTC Time" msgstr "Всесвітній час" msgctxt "column header" msgid "Changes" msgstr "Зміни" msgctxt "column header" msgid "Converted From" msgstr "Перетворено з" msgctxt "column header" msgid "Phase" msgstr "Фаза" msgctxt "column header" msgid "Filename" msgstr "Назва файлу" msgid "Searching..." msgstr "Пошук..." #, python-format msgid "filling (%d)" msgstr "заповнення (%d)" msgid "Mercurial User" msgstr "Користувач Mercurial" msgid "Repository Registry" msgstr "Сховища" msgid "Show &Paths" msgstr "Показати шляхи" msgid "Show S&hort Paths" msgstr "Показати скорочені шляхи" msgid "&Scan Repositories at Startup" msgstr "Сканувати сховища під час старту" msgid "Scan &Remote Repositories" msgstr "Сканувати зовнішні сховища" msgid "&Refresh Repository List" msgstr "Перезавантажити список сховищ" msgid "Refresh the Repository Registry list" msgstr "Перезавантажити список зареєстрованих сховищ" msgid "&Open" msgstr "Відкрити" msgid "Open the repository in a new tab" msgstr "Відкрити сховище у новій вкладці" msgid "&Open All" msgstr "Відкрити все" msgid "Open all repositories in new tabs" msgstr "Відкрити всі сховища у нових вкладках" msgid "New &Group" msgstr "Нова група" msgid "Create a new group" msgstr "Створити нову групу" msgid "Rename the entry" msgstr "Зміни назви запису" msgid "Settin&gs" msgstr "Параметри" msgid "View the repository's settings" msgstr "Переглянути налаштування сховища" msgid "Re&move from Registry" msgstr "Видалити з переліку" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "" "Вилучити вузол і всі його дочірні вузли. З диску сховища не знищуватимуться." msgid "Clon&e..." msgstr "Клонувати..." msgid "Clone Repository" msgstr "Клонувати сховище" msgid "E&xplore" msgstr "Оглядач" msgid "Open the repository in a file browser" msgstr "Відкрити сховище у файловому оглядачеві" msgid "&Terminal" msgstr "Командний рядок" msgid "Open a shell terminal in the repository root" msgstr "Відкрити оболонку терміналу в корені сховища" msgid "&Add Repository..." msgstr "Додати сховище..." msgid "Add a repository to this group" msgstr "Додати сховище до групи" msgid "A&dd Subrepository..." msgstr "Додати підсховище..." msgid "Convert an existing repository into a subrepository" msgstr "Перетворити існуюче сховище у підсховище" msgid "Remo&ve Subrepository..." msgstr "Переміщення підсховища..." msgid "Remove this subrepository from the current revision" msgstr "Видалити це підсховище з поточної правки" msgid "Copy the root path of the repository to the clipboard" msgstr "Скопіювати шлях корня сховища до буферу обміну" msgid "Sort by &Name" msgstr "Сортувати за назвою" msgid "Sort the group by short name" msgstr "Сортувати групу за короткою назвою" msgid "Sort by &Path" msgstr "Сортувати за шляхом" msgid "Sort the group by full path" msgstr "Сортувати групу за повним шляхом" msgid "&Sort by .hgsub" msgstr "Сортувати за .hgsub" msgid "Order the subrepos as in .hgsub" msgstr "Сортувати підсховища в .hgsub" msgid "Select repository directory to add" msgstr "Обраний каталог сховища доданий" msgid "Select an existing repository to add as a subrepo" msgstr "Оберіть сховище та додайте, як підсховище" msgid "Cannot add subrepository" msgstr "Не можливо додати підсховище" #, python-format msgid "%s is not a valid repository" msgstr "%s не допустимий тип сховища" #, python-format msgid "\"%s\" is not a folder" msgstr "\"%s\" не тека" msgid "A repository cannot be added as a subrepo of itself" msgstr "Сховище не може бути додане підсховищем само собі" #, python-format msgid "" "The selected folder:

                                                                                                    %s

                                                                                                    is not inside the target repository." "

                                                                                                    This may be allowed but is greatly discouraged.
                                                                                                    If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" "Вибрана тека:


                                                                                                    %s
                                                                                                    не з середини цільового сховища.

                                                                                                    Це " "дозволено, але сильно бентежить.
                                                                                                    Якщо забажаєте додати нетривіальне " "відображення підсховища доведеться вручну правити файл .hgsub" msgid "Cannot open repository" msgstr "Не можливо відкрити сховище" #, python-format msgid "The selected repository:

                                                                                                    %s

                                                                                                    cannot be open!" msgstr "Вибране сховище:

                                                                                                    %s

                                                                                                    не відкривається!" msgid "Subrepository already exists" msgstr "Підсховище вже існує" #, python-format msgid "" "The selected repository:

                                                                                                    %s

                                                                                                    is already a subrepository of:" "

                                                                                                    %s

                                                                                                    as: \"%s\"" msgstr "" "Для обраного сховища:

                                                                                                    %s

                                                                                                    а також для підсховищ:

                                                                                                    " "%s

                                                                                                    як: \"%s\"" msgid "Failed to add subrepository" msgstr "Не вдалось додати підсховище" #, python-format msgid "Cannot open the .hgsub file in:

                                                                                                    %s" msgstr "Не можливо відкрити файл .hgsub в:

                                                                                                    %s" msgid "Failed to add repository" msgstr "Додати сховище не вдалось" #, python-format msgid "The .hgsub file already contains the line:

                                                                                                    %s" msgstr "У файлі .hgsub вже існує рядок:

                                                                                                    %s" msgid "Subrepo added to .hgsub file" msgstr "Підсховище додано до .hgsub файлу" #, python-format msgid "" "The selected subrepo:

                                                                                                    %s

                                                                                                    has been added to the .hgsub " "file of the repository:

                                                                                                    %s

                                                                                                    Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" "Обране підсховище:

                                                                                                    %s

                                                                                                    буде додано до .hgsub файлу в " "сховищі:

                                                                                                    %s

                                                                                                    Пам'ятайте, аби завершити ви повинні " "зафіксувати зміни до .hgsub файлу підтвердивши додавання " "підсховища." #, python-format msgid "Cannot update the .hgsub file in:

                                                                                                    %s" msgstr "Не можливо поновити файл .hgsub в:

                                                                                                    %s" msgid "Could not open .hgsub file" msgstr "Не вдалося відкрити .hgsub файл" msgid "Cannot read the .hgsub file.

                                                                                                    Subrepository removal failed." msgstr "Не можливо прочитати .hgsub файл.

                                                                                                    Переміщення підсховища не вдалось." msgid "Subrepository not found" msgstr "Підсховище не знайдено" msgid "" "The selected subrepository was not found on the .hgsub file.

                                                                                                    Perhaps it " "has already been removed?" msgstr "" "Обране підсховище не знайдено у .hgsub файлу.

                                                                                                    Можливо, воно вже було " "видалено?" msgid "&Yes" msgstr "&Так" msgid "&No" msgstr "&Ні" msgid "Remove the selected repository?" msgstr "Перемістити обране сховище?" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" "Ви дійсно бажаєте видалити сховище \"%s\" з сховища попередника \"" "%s\"" msgid "Subrepository removed from .hgsub" msgstr "Підсховища видалені з .hgsub" msgid "" "The selected subrepository has been removed from the .hgsub file.

                                                                                                    Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" "Обране підсховище було видалене з .hgsub файлу.

                                                                                                    Пам'ятайте ви повинні " "зафіксувати зміну у .hgsub для повного видалення підсховища!" msgid "Could not update .hgsub file" msgstr "Не можливо поновити .hgsub файл" msgid "Cannot update the .hgsub file.

                                                                                                    Subrepository removal failed." msgstr "Не можливо поновити .hgsub файл.

                                                                                                    Переміщення підсховища не вдалось." #, python-format msgid "Unsupported repository type (%s)" msgstr "Не підтримуваний тип сховища (%s)" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "Не можливо відкрити не Mercurial сховище або підсховище" msgid "New Group" msgstr "Нова група" msgid "Confirm Delete" msgstr "Підтвердити знищення" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "Знищити групу '%s' а також всі її елементи?" msgid "Could not get subrepository list" msgstr "Не можливо отримати перелік підсховищ" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

                                                                                                    %s" msgstr "Неможливо отримати перелік підсховищ сховища:

                                                                                                    %s" msgid "Could not open some subrepositories" msgstr "Неможливо відкрити деякі підсховища" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

                                                                                                    %s

                                                                                                    The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

                                                                                                    %s" msgstr "" "Неможливо отримати перелік підсховищ для сховища:

                                                                                                    %s

                                                                                                    Ці " "підсховища

                                                                                                    %s можуть бути загубленими, пошкодженими або " "знаходятись у поганому стані і тому до них відсутній доступ." msgid "Updating repository registry" msgstr "Оновити реєстр сховищ" #, python-format msgid "Loading repository %s" msgstr "Завантаження сховища %s" msgid "Repository Registry updated" msgstr "Поновити реєстр сховищ" msgid "Close tab" msgstr "Закрити вкладку" msgid "Close other tabs" msgstr "Закрити інші вкладки" msgid "Undo close tab" msgstr "Повернути закриту вкладку" msgid "Reopen last closed tab" msgstr "Перевідкрити останню закриту вкладку" msgid "Undo close other tabs" msgstr "Повернути закриті інші вкладки" msgid "Reopen last closed tab group" msgstr "Перевідкрити останню закриту групу вкладок" msgid "Failed to open repository" msgstr "Не вдалось відкрити сховище" msgid "&Sort" msgstr "Сортування" #, python-format msgid "Local Repository %s" msgstr "Локальне сховище %s" #, python-format msgid "" "An exception happened while loading the subrepos of:

                                                                                                    \"%s\"

                                                                                                    " msgstr "Сталася помилка під час завантаження підсховища:

                                                                                                    \"%s\"

                                                                                                    " #, python-format msgid "The exception error message was:

                                                                                                    %s

                                                                                                    " msgstr "Помилка:

                                                                                                    %s

                                                                                                    " msgid "Click OK to continue or Abort to exit." msgstr "Натисність ОК аби продовжити або Припинити для виходу." msgid "Error loading subrepos" msgstr "Помилка завантаження підсховища" msgid "Unable to update repository name" msgstr "Не можливо поновити назву сховища" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "Сталася помилка при поновленні файлу hgrc сховища (%s)" msgid "default" msgstr "типові" msgid "C&hoose Log Columns..." msgstr "Стовпці журналу..." msgid "&Resize Columns" msgstr "Зміна розміру колонок" #, python-format msgid "Goto ancestor of %s and %s" msgstr "Перехід предку від %s до %s" #, python-format msgid "Can't find revision '%s'" msgstr "Не можливо знайти '%s' правку" msgid "Drag to change order" msgstr "Перетягніть аби змінити порядок" msgid "Workbench Log Columns" msgstr "Стовпці журналу робочого середовища" msgctxt "tab tooltip" msgid "Revision details" msgstr "Правка розлого" msgctxt "tab tooltip" msgid "Commit" msgstr "Фіксувати" msgctxt "tab tooltip" msgid "Search" msgstr "Шукати" msgctxt "tab tooltip" msgid "Console log" msgstr "Консольний журнал" msgctxt "tab tooltip" msgid "Synchronize" msgstr "Синхронізація" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "Гілка латок" #, python-format msgid "%s " msgstr "%s <вхідний>" #, python-format msgid "Found %d incoming changesets" msgstr "Знайдено %d вхідні зміни" msgid "Pull" msgstr "Витягнути" msgid "Pull incoming changesets into your repository" msgstr "Витягнути вхідні набори змін до вашого сховища" msgid "Reject incoming changesets" msgstr "Відхилити вхідні набори змін" #, python-format msgid "Push current branch (%s)" msgstr "Виштовхнути поточну гілку (%s)" #, python-format msgid "Push up to current revision (#%d)" msgstr "Підняти до поточної правки (#%d)" #, python-format msgid "Push up to revision #%d" msgstr "Підняти до правки #%d" msgid "Push all" msgstr "Виштовхнути все" msgid "no outgoing changesets" msgstr "відсутні вихідні набори змін" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "відсутні вихідні набори змін у поточній гілці (%s) / %d загалом" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "відсутні вихідні набори змін до поточної правки (#%d) / %d загалом" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "відсутні вихідні набори змін до правки #%d / %d загалом" #, python-format msgid "%d outgoing changesets" msgstr "%d вихідних наборів змін" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "%d вихідні набори змін в поточній гілці (%s) / %d загалом" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "%d вихідних наборів змін в поточній правці (#%d) / %d загалом" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "%d вихідних наборів змін в правці #%d / %d в загальному" msgid "Nothing to push" msgstr "Нічого виштовхувати" msgid "No revision found" msgstr "" #, python-format msgid "%s - verify repository" msgstr "%s - перевірка сховища" #, python-format msgid "%s - recover repository" msgstr "відновити сховище - %s" msgid "No transaction available" msgstr "Відсутні доступні транзакції" msgid "There is no rollback transaction available" msgstr "Наявні не повернуті транзакції" msgid "Undo last commit?" msgstr "Скасувати останню фіксацію?" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "Скасувати останню фіксацію (%d), зберігши файл змін?" msgid "Undo last transaction?" msgstr "Скасувати останню транзакцію?" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "Повернути назад правку %d (скасувавши %s)?" msgid "Unable to determine working copy revision\n" msgstr "Неможливо визначити робочу копію правки\n" msgid "Remove current working revision?" msgstr "Вилучити поточну робочу правку?" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" "Ваша поточна робоча правка (%d) буде вилучена цим поверненням назад, " "залишивши не зафіксованими зміни.\n" " Продовжити?" msgid "Tab cannot exit" msgstr "Вийти з вкладки неможливо" msgid "Pus&h" msgstr "Виштовхувати" msgid "Push to &Here" msgstr "Виштовхувати сюди" msgid "Push Selected &Branch" msgstr "Виштовхати вказану гілку" msgid "Push &All" msgstr "Виштовхувати все" msgid "&Update..." msgstr "Поновити..." msgid "Bro&wse at Revision" msgstr "Переглянути в правці" msgid "&Merge with Local..." msgstr "Злити з локальною..." msgid "&Tag..." msgstr "Зріз..." msgid "Boo&kmark..." msgstr "Закладка..." msgid "Top&ic..." msgstr "" msgid "Sig&n..." msgstr "Підпис..." msgid "&Backout..." msgstr "Відновлення..." msgid "Revert &All Files..." msgstr "Повернути всі файли..." msgid "Copy &Hash" msgstr "Копіювати хеш" msgid "E&xport" msgstr "Експортувати" msgid "E&xport Patch..." msgstr "Експортувати латку..." msgid "&Email Patch..." msgstr "Email латка..." msgid "&Archive..." msgstr "Архівувати..." msgid "&Bundle Rev and Descendants..." msgstr "Запакувати правку та похідні..." msgid "Change &Phase to" msgstr "Змінити фазу на" msgid "&Graft to Local..." msgstr "Щепити до локальної..." msgid "Modi&fy History" msgstr "Правити історію" msgid "&Unapply Patch" msgstr "Не прийняті латки" msgid "Import to &MQ" msgstr "Імпортувати до MQ" msgid "MQ &Options" msgstr "MQ параметри" msgid "&Rebase..." msgstr "Перебазувати..." msgid "&Prune..." msgstr "Підчистити..." msgid "&Strip..." msgstr "Відтяти..." msgid "Post to Re&view Board..." msgstr "Опублікувати на дошку огляду..." msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "Поновити зовнішне..." msgid "Write diff file" msgstr "Записати файл різниці" msgid "Unable to write diff file" msgstr "Не можливо записати файл різниці" msgid "Unable to compress history" msgstr "Неможливо стиснути історію" msgid "Selected changeset pair not related" msgstr "Обрані пари набору змін не пов'язані між собою" msgid "Visual Diff..." msgstr "Наочне порівняння..." msgid "Export Diff..." msgstr "Експорт різниці..." msgid "Export Selected..." msgstr "Експорт вибраного..." msgid "Email Selected..." msgstr "Email вибраного..." msgid "Copy Selected as Patch" msgstr "Копіювати обране, як латку" msgid "Archive DAG Range..." msgstr "" msgid "Export DAG Range..." msgstr "Експорт DAG діапазону..." msgid "Email DAG Range..." msgstr "Email DAG діапазон..." msgid "Bundle DAG Range..." msgstr "Пакунок DAG діапазону..." msgid "Bisect - Good, Bad..." msgstr "Половинити - Добре, Погано..." msgid "Bisect - Bad, Good..." msgstr "Половинити - Погано, Добре..." msgid "Compress History..." msgstr "Стиснути історію..." msgid "Rebase..." msgstr "Перебазувати..." msgid "Goto common ancestor" msgstr "Перейти до спільного предка" msgid "Graft Selected to local..." msgstr "Щепити обране до локальної..." msgid "&Prune Selected..." msgstr "Підчистити вказане..." msgid "Post Selected to Review Board..." msgstr "Надіслати вибране до Review Board..." msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "Застосувати латку" msgid "Apply onto original parent" msgstr "Застосувати лише оригінального попередника" msgid "Apply only this patch" msgstr "Застосувати лише латку" msgid "Fold patches..." msgstr "Підшити латку..." msgid "Delete patches..." msgstr "Знищити латки..." msgid "Rename patch..." msgstr "Змінити назву латки..." msgid "Pull to here..." msgstr "Витягнути сюди..." msgid "Visual diff..." msgstr "Наочне порівняння..." msgid "Export patch" msgstr "Експортувати латки" msgid "Patch Files (*.patch)" msgstr "Файли з латками (*.patch)" msgid "Cannot export revision" msgstr "Неможливо експортувати правку" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" "Неможливо експортувати правку %s у файл з назвою:\n" "\n" "%s\n" msgid "There is already an existing folder with that same name." msgstr "Вже існує тека з такою назвою." msgid "Replace" msgstr "Замінити" msgid "Append" msgstr "Прикріпити" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" "Існують файли латок для %d правок (%s) у обраному розташуванні (%s).\n" "\n" msgid "What do you want to do?\n" msgstr "Що Ви бажаєте робити?\n" msgid "Replace the existing patch files.\n" msgstr "Замінити латку файлів, яка існує.\n" msgid "Append the changes to the existing patch files.\n" msgstr "Прийняти зміни до латки файлів, що існує.\n" msgid "Abort the export operation.\n" msgstr "Припинити операцію експорту.\n" msgid "Patch files already exist" msgstr "Латка файлів вже існують" msgid "Patch exported" msgstr "Латка експортована" #, python-format msgid "" "Revision #%d (%s) was exported to:

                                                                                                    %s%s%s" msgstr "" "Правка #%d (%s) була експортована до:

                                                                                                    %s%s%s" msgid "Patches exported" msgstr "Латки експортовані" #, python-format msgid "%d patches were exported to:

                                                                                                    %s" msgstr "%d латки було експортовано до:

                                                                                                    %s" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

                                                                                                    Are you sure you want to use revert?

                                                                                                    (use " "update to checkout another revision)" msgstr "" "Поверненням всіх файлів буде відкинуто зміни та залишить вражені файли у " "зміненому стані.

                                                                                                    Ви дійсно бажаєте скористатись поверненням?" "

                                                                                                    (використовувати оновити вивірити іншу правку)" msgid "Filter b&y" msgstr "Фільтр" msgid "&Ancestors and Descendants" msgstr "Предки та нащадки" msgid "A&uthor" msgstr "Автор" msgid "&Branch" msgstr "Гілка" msgid "&More Options..." msgstr "Більше параметрів..." msgid "Unable to merge" msgstr "Злиття не можливе" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "Неможна зливати правку саму з собою" msgid "Unable to backout" msgstr "Відновлення неможливе" msgid "Write bundle" msgstr "Записати пакунок" msgid "Backwards phase change requested" msgstr "Запит на зміну фази навпаки" msgid "Do you really want to make this revision secret?" msgstr "Ви дійсно бажаєте зробити цю правку секретною?" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" "Створення \"чорнової\" правки \"секретною\" зазвичай є " "безпечною операцією.\n" "\n" "Однак, є декілька застережень:\n" "\n" "- \"секретні\" правки не виштовхувані. Це може завдати неприємностей, якщо " "ви\n" "відносите правку до секретного підсховища.\n" "\n" "- Якщо ви отримали правку із непублічного серверу, може бути\n" "повернення до \"чорновику\" якщо ви знову витягуватимете знову " "конкретно з цього сервера.\n" "\n" "Будьте обережні!" msgid "&Make secret" msgstr "Створити секрет" msgid "&Cancel" msgstr "&Скасувати" msgid "Do you really want to force a backwards phase transition?" msgstr "Ви дійсно бажаєте примусово перемкнути фазу на протилежну?" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" "Ви збираєтеся повернути фазу правки %d навпаки,\n" "з \"%s\" до \"%s\".\n" "\n" "Однак, \"%s\" має менший рівень фази, ніж \"%s\".\n" "\n" "Повертати фазу назад не варто.\n" "До прикладу, Ви можете отримати декілька голів \n" "у правці, при зміні фази правки,\n" " яку вже виштовхнули на сервер.\n" "\n" "Будьте обережні!" msgid "&Force" msgstr "Примусово" msgid "Cannot import selected revision" msgstr "Неможливо імпортувати обрану правку" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" "Обрана правка (правка #%d) не може бути імпортована, тому що вона є похідною " "qparent (правка #%d)" msgid "Invalid command" msgstr "Помилкова команда" msgid "The selected command is empty" msgstr "Обрана команда порожня" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" "Було повернуто наступне повідомлення про помилку:\n" "\n" "%s" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" "\n" "\n" "Будь ласка перевірте чи команда \"thg\" коректна." msgid "Failed to execute custom TortoiseHg command" msgstr "TortoiseHg не змогла виконати команду користувача" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "Команда \"%s\" помилкова (код %d)." msgid "Failed to execute custom command" msgstr "Не вдалось виконати команду користувача" #, python-format msgid "The command \"%s\" could not be executed." msgstr "Виконання команди \"%s\" не можливе." #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" "Стеження за помилками повернуло:\n" "\n" "\"%s\"\n" "\n" "Перевірте правильність командного шляху та його відповідність додатку" msgid "&Edit Toolbar" msgstr "Пенал правки" msgid "&Refresh" msgstr "Перезавантажити" msgid "&Filter Toolbar" msgstr "Фільтр пеналів" #, python-format msgid "TortoiseHg: %s" msgstr "" msgid "S&tatus Bar" msgstr "" #, python-format msgid "Resolve Conflicts - %s" msgstr "Розв'язати конфлікти - %s" msgid "Local revision information" msgstr "Інформація про локальну правку" msgid "Other revision information" msgstr "Інша інформація про правку" msgid "Unresolved conflicts" msgstr "Не розв'язані конфлікти" msgid "Mercurial Re&solve" msgstr "Розв'язувати Mercurial-ом" msgid "Attempt automatic (trivial) merge" msgstr "Автоматичне злиття" msgid "Tool &Resolve" msgstr "Знаряддя розв'язування" msgid "Merge using selected merge tool" msgstr "Злити використовуючи обране знаряддя злиття" msgid "&Take Local" msgstr "Використати локальну" msgid "Accept the local file version (yours)" msgstr "Прийняти локальну версію файлу (вашу)" msgid "Take &Other" msgstr "Використати інший" msgid "Accept the other file version (theirs)" msgstr "Прийняти інший файл версії (їхню)" msgid "&Mark as Resolved" msgstr "Відмітити, як розв'язаний" msgid "Mark this file as resolved" msgstr "Відмітити цей файл, як розв'язаний" msgid "Diff &Local to Ancestor" msgstr "Різниця між локальним та предком" msgid "&Diff Other to Ancestor" msgstr "Різниця іншого до предка" msgid "Resolved conflicts" msgstr "Розв'язані конфлікти" msgid "&Edit File" msgstr "Правити файл" msgid "Edit resolved file" msgstr "Правити розв'язаний файл" msgid "3-&Way Diff" msgstr "Сторонні знаряддя" msgid "Visual three-way diff" msgstr "Візуальні сторонні знаряддя" msgid "Visual diff between resolved file and first parent" msgstr "Візуальна різниця між розв'язаним файлом та першим попередником" msgid "&Diff to Other" msgstr "Різниця з іншим" msgid "Visual diff between resolved file and second parent" msgstr "Візуальна різниця між розв'язаним файлом та другим попередником" msgid "Mark as &Unresolved" msgstr "Відмітити, як не розв'язаний" msgid "Mark this file as unresolved" msgstr "Відмітити цей файл, як не розв'язаний" msgid "Detected merge/diff tools:" msgstr "Знайдене знаряддя злиття/порівняння:" msgid "Command output" msgstr "Командний рядок" msgid "Unable to show subrepository files" msgstr "Неможливо відобразити файли підсховища" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" "Візуальні різниці не підтримуються для файлів у підсховищах. Вони не будуть " "відображені." msgid "There are merge conflicts to be resolved" msgstr "Конфлікти злиття розв'язані" msgid "All conflicts are resolved." msgstr "Всі конфлікти розв'язані." msgid "There are no conflicting file merges." msgstr "Відсутні файли з конфліктами злиття." msgid "Exit without finishing resolve?" msgstr "Вийти не завершивши розв'язування?" msgid "Unresolved conflicts remain. Are you sure?" msgstr "Залишилися не розв'язані конфлікти. Ви впевнені?" msgid "E&xit" msgstr "Вихід" msgid "Ext" msgstr "Зовн." msgid "Repository" msgstr "Сховище" msgid "" msgstr "<типово>" msgid "File List Toolbar" msgstr "Пенал переліку файлів" msgid "Ma&nifest Mode" msgstr "Маніфест режиму" msgid "Show all version-controlled files in tree view" msgstr "Показати всі контрольовані файли у вигляді дерева" msgid "&Flat List" msgstr "Плаский список" msgid "### filter text ###" msgstr "### текст фільтру ###" msgid "Changed by &This Commit" msgstr "Змінені цією фіксацією" msgid "Show files changed by this commit" msgstr "Показати файли змінені цією фіксацією" msgid "Compare to &1st Parent" msgstr "Порівняти з першим попередником" msgid "Compare to &2nd Parent" msgstr "Порівняти з другим попередником" msgid "Toggle parent to be used as the base revision" msgstr "Перемкнути попередника, що буде використано, як базова правка" msgid "List Optio&ns" msgstr "Перелік опцій" #, python-format msgid "%s - Revision Details (%s)" msgstr "%s - Деталі правки (%s)" #, python-format msgid "Revert - %s" msgstr "Повернути - %s" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "Повернути %s до змісту в наступному варіанті?" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "Відновити %d файли до їх змісту в наступному варіанті?" msgid "Revert all files to this revision" msgstr "Повернути всі файли до цієї правки" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "правка %d перший попередник (тобто правка %d)" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "правка %d другий попередник (тобто правка %d)" msgid "null revision (i.e. remove file(s))" msgstr "нікчемна правка (тобто видалити файл(и))" msgid "Changeset:" msgstr "Набір змін:" msgid "Child:" msgstr "Нащадок:" msgid "Predecessors:" msgstr "" msgid "Successors:" msgstr "Наступники:" msgid "Head is closed!" msgstr "Вершина недосяжна!" msgid "Changesets where username contains string." msgstr "Рядок, що містить набір змін користувача." msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" "Шукати повідомлення фіксації, ім'я користувача та назви змінених файлів в " "рядку." msgid "Like \"keyword(string)\" but accepts a regex." msgstr "Щось подібне \"keyword(string)\", але приймає регулярний вираз." msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" "Набір змін не знайдено у спеціально призначеному сховищі або типовому місці " "виштовхування." msgid "The named bookmark or all bookmarks." msgstr "Названі закладки або всі закладки." msgid "The named tag or all tags." msgstr "Іменований зріз або усі зрізи." msgid "Changeset is tagged." msgstr "Набір змін ярликовано." msgid "Changeset is a named branch head." msgstr "Набір змін називається головою гілки." msgid "Changeset is a merge changeset." msgstr "Набір змін є злиттям набору змін." msgid "Changeset is closed." msgstr "Набір змін закритий." msgid "" "Changesets within the interval, see help dates" msgstr "" msgid "Greatest common ancestor of the two changesets." msgstr "Найкращий спільний предок двох наборів змін." msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" "Знайти правку, що \"match\" одне або більше полів даного набору правок." msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" msgid "Changesets which modify files matched by pattern." msgstr "Набір змін, що змінює файли відповідно до шаблону." msgid "Changesets which add files matched by pattern." msgstr "Набір змін, що додає файли відповідно до шаблону." msgid "Changesets which remove files matched by pattern." msgstr "Набір змін, що вилучає файли відповідно до шаблону." msgid "Changesets containing files matched by pattern." msgstr "Набір змін містить файли відповідно до шаблону." msgid "All changesets belonging to the branches of changesets in set." msgstr "Всі набори змін належать до гілок наборів змін в наборі." msgid "Members of a set with no children in set." msgstr "Члени набору з без дітей в наборі." msgid "Changesets which are descendants of changesets in set." msgstr "Набори змін, який є похідними набору змін в наборі." msgid "Changesets that are ancestors of a changeset in set." msgstr "Набори змін в сукупності є предками набору змін в наборі." msgid "Child changesets of changesets in set." msgstr "Дитина набору змін дочірнього набору змін в наборі." msgid "The set of all parents for all changesets in set." msgstr "Сукупність всіх попередників всіх наборів змін в наборі." msgid "First parent for all changesets in set, or the working directory." msgstr "Перший попередник всіх наборів змін в наборі, або робочий каталог." msgid "Second parent for all changesets in set, or the working directory." msgstr "Другий попередник вісх наборів змін в наборі, або робочий каталог." msgid "Changesets with no parent changeset in set." msgstr "Набори зміни з наборами змін без батьків в наборі." msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" "Порожній набір, якщо будь-яка правка не знайдена; інакше, всі правки в " "наборі." msgid "Changeset with lowest revision number in set." msgstr "Набір змін з найнижчим номером правки в наборі." msgid "Changeset with highest revision number in set." msgstr "Набір змін з найвищим номером правки в наборі." msgid "First n members of a set." msgstr "Перший з n членів набору." msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" "Сортувати відповідно до виставлених ключів. Типовий порядок сортування - за " "зростанням, вкажіть ключ \"-key\", щоб відсортувати в порядку спадання." msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "Псевдонім для \"::.\" (походження робочої копії першого попередника)." msgid "All changesets, the same as 0:tip." msgstr "Всі зміни, подібно до 0:верхівки." msgid "Revision Set Query" msgstr "Правка набір запит" msgid "all revisions converted from subversion" msgstr "всі правки перенесено з subversion" msgid "changeset which represents converted svn revision" msgstr "представлений набір змін конвертований з svn правки" msgid "Common sets" msgstr "Звичайна сукупність" msgid "File pattern sets" msgstr "Сукупність шаблонів файлів" msgid "Set Ancestry" msgstr "Встановити походження" msgid "Set Logic" msgstr "Встановити логіку" msgid "" "help " "revsets" msgstr "" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" "\n" "Надійшло переривання від клавіатури, припинення.\n" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "не вдалося відокремити GUI в окремий процес: %s\n" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "не можу прочитати файл \"%s\". Нехтувати.\n" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" "thg: команда '%s' є неоднозначною:\n" " %s\n" #, python-format msgid "thg: unknown command '%s'\n" msgstr "thg: невідома команда '%s'\n" #, python-format msgid "thg %s: %s\n" msgstr "thg %s: %s\n" #, python-format msgid "thg: %s\n" msgstr "thg: %s\n" #, python-format msgid "abort: %s!\n" msgstr "припинити: %s!\n" #, python-format msgid "abort: %s\n" msgstr "припинити: %s\n" #, python-format msgid "(%s)\n" msgstr "(%s)\n" msgid "option --config may not be abbreviated!" msgstr "опція --config не може бути скорочена!" msgid "invalid arguments" msgstr "помилковий аргумент" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "unrecognized profiling format '%s' - Нехтувати\n" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" "lsprof недоступний - встановити з http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgid "repository root directory or symbolic path name" msgstr "каталог кореня сховища або назва символічного посилання" msgid "enable additional output" msgstr "увімкнути виведення додаткової інформації" msgid "suppress output" msgstr "заглушити результат" msgid "display help and exit" msgstr "відобразити довідку та вийти" msgid "set/override config option (use 'section.name=value')" msgstr "встановити/переписати параметри налаштувань (use 'section.name=value')" msgid "enable debugging output" msgstr "увімкнути налагоджувале виведення" msgid "start debugger" msgstr "почати налагодження" msgid "print command execution profile" msgstr "надрукувати команди виконуваного профілю" msgid "do not fork GUI process" msgstr "не виокремлювати інтерфейс користувача у окремий процес" msgid "always fork GUI process" msgstr "завжди виокремлювати інтерфейс користувача у окремий процес" msgid "read file list from file" msgstr "читати перелік файлів з файлу" msgid "read file list from file encoding utf-8" msgstr "читати перелік файлів з файлу у кодуванні utf-8" msgid "thg about" msgstr "thg about" msgid "thg add [FILE]..." msgstr "thg add [ФАЙЛ]..." msgid "revision to annotate" msgstr "переглянути до опису" msgid "open to line" msgstr "відкрити рядок" msgid "initial search pattern" msgstr "початковий шаблон пошуку" msgid "thg annotate" msgstr "thg annotate" #, python-format msgid "invalid line number: %s" msgstr "помилковий номер рядку: %s" msgid "revision to archive" msgstr "поглянути до архівованого" msgid "thg archive" msgstr "thg archive" msgid "merge with old dirstate parent after backout" msgstr "злити з старим попередником після відновлення" msgid "parent to choose when backing out merge" msgstr "обрати попередника при відновленні з злитого" msgid "revision to backout" msgstr "поглянути до відновленого" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "thg backout [ПАРАМЕТРИ]... [[-r] РЕВ.]" msgid "thg bisect" msgstr "thg bisect" msgid "revision" msgstr "правка" msgid "thg bookmarks [-r REV] [NAME]" msgstr "thg bookmarks [-r РЕВ.] [НАЗВА]" msgid "only one new bookmark name allowed" msgstr "дозволена лише одна нова назва закладки" msgid "the clone will include an empty working copy (only a repository)" msgstr "клон буде міститиме порожню робочу копію (лише сховища)" msgid "revision, tag or branch to check out" msgstr "правка, зріз або гілка до вивіряння" msgid "include the specified changeset" msgstr "приєднати зазначений набір змін" msgid "clone only the specified branch" msgstr "клонувати лише вказану гілку" msgid "use pull protocol to copy metadata" msgstr "використовувати протокол витягування аби копіювати метадані" msgid "use uncompressed transfer (fast over LAN)" msgstr "передавати без стискання (швидка мережа)" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "thg clone [ПАРАМЕТР]... [ЗВІДКИ] [КУДИ]" msgid "record user as committer" msgstr "запам'ятати користувача, як дописувача" msgid "record datecode as commit date" msgstr "записати дату коду датою фіксації" msgid "thg commit [OPTIONS] [FILE]..." msgstr "thg commit [ПАРАМЕТРИ] [ФАЙЛ]..." msgid "thg debugblockmatcher" msgstr "thg debugblockmatcher" msgid "thg debugbugreport [TEXT]" msgstr "thg debugbugreport [ТЕКСТ]" msgid "thg debugconsole" msgstr "thg debugconsole" msgid "thg debuglighthg" msgstr "thg debuglighthg" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "thg debugruncommand -- COMMAND [ARGUMENT]..." msgid "no command specified" msgstr "не вказана команда" msgid "thg drag_copy SOURCE... DEST" msgstr "thg drag_copy ДЖЕРЕЛО... ПРИЗНАЧЕННЯ" msgid "thg drag_move SOURCE... DEST" msgstr "thg drag_move ДЖЕРЕЛО... ПРИЗНАЧЕННЯ" msgid "a revision to send" msgstr "правка для відправки" msgid "thg email [REVS]" msgstr "thg email [РЕВ-ІЙ]" msgid "use only one form to specify the revision" msgstr "користуватись лише однією формою вказаної правки" msgid "select the specified revision" msgstr "виберіть вказану правку" msgid "side-by-side comparison of revisions" msgstr "порядкове порівняння правок" msgid "thg filelog [OPTION]... FILE" msgstr "thg filelog [ОПЦІЇ]... ФАЙЛ" msgid "requires a single filename" msgstr "потрібна одна назва файлу" msgid "thg forget [FILE]..." msgstr "thg forget [ФАЙЛ]..." msgid "revisions to graft" msgstr "правка щеплення" msgid "thg graft [-r] REV..." msgstr "thg graft [-r] РЕВ..." msgid "You must provide revisions to graft" msgstr "Ви повинні забезпечити перегляд щеплення" msgid "ignore case during search" msgstr "ігнорувати регістр при пошуку" msgid "thg grep" msgstr "thg grep" msgid "thg guess" msgstr "thg guess" msgid "thg help [COMMAND]" msgstr "thg help [КОМАНДА]" msgid "global options:" msgstr "спільні параметри:" msgid "use \"thg help\" for the full list of commands" msgstr "скористайтеся \"thg help\" для отримання переліку команд" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "" "скористайтеся \"thg help\" для отримання переліку команд або \"thg -v\" для " "деталізації" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "" "скористайтеся \"thg -v help%s\" для виведення псевдонімів та спільних " "налаштувань" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "скористайтеся \"thg -v help %s\" для перегляду спільних параметрів" msgid "" "list of commands:\n" "\n" msgstr "" "перелік команд:\n" "\n" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" "\n" "псевдоніми: %s\n" msgid "(no help text available)" msgstr "(довідка не доступна)" msgid "options:\n" msgstr "параметри:\n" msgid "no commands defined\n" msgstr "команди невизначені\n" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "Thg - TortoiseHg's графічне знаряддя для Mercurial SCM (Hg)\n" msgid "" "basic commands:\n" "\n" msgstr "" "основні команди:\n" "\n" #, python-format msgid " (default: %s)" msgstr " (типово: %s)" msgid "thg hgignore [FILE]" msgstr "thg hgignore [ФАЙЛ]" msgid "import to the patch queue (MQ)" msgstr "завантажити чергу латок (MQ)" msgid "thg import [OPTION] [SOURCE]..." msgstr "thg import [ПАРАМЕТРИ] [ДЖЕРЕЛО]..." msgid "thg init [DEST]" msgstr "thg init [ОТРИМУВАЧ]" msgid "thg lock" msgstr "thg lock" msgid "search for a given text or revset" msgstr "шукати наданий текст або revset" msgid "(DEPRECATED)" msgstr "(ЗАСТАРІЛО)" msgid "open a new workbench window" msgstr "відкрити нове вікно робочого середовища" msgid "thg log [OPTIONS] [FILE]" msgstr "thg log [ПАРАМЕТРИ] [ФАЙЛ]" msgid "cannot specify both -k/--query and filenames" msgstr "не можна вказати, як -k/--query та назва файлів" msgid "revision to display" msgstr "поглянути до дисплею" msgid "thg manifest [-r REV] [FILE]" msgstr "thg manifest [-r РЕВ.] [ФАЙЛ]" msgid "revision to merge" msgstr "поглянути до злиття" msgid "thg merge [[-r] REV]" msgstr "thg merge [[-r] РЕВ.]" msgid "Merge revision not specified or not found" msgstr "Правка для злиття не визначена або не існує" msgid "a revision to post" msgstr "надіслати правку" msgid "thg postreview [-r] REV..." msgstr "thg postreview [-r] РЕВ..." msgid "reviewboard extension not enabled" msgstr "" #, python-format msgid "see %(url)s" msgstr "" msgid "no revisions specified" msgstr "відсутні визначени правки" msgid "revisions to prune" msgstr "підчистити правку" msgid "thg prune [-r] REV..." msgstr "thg prune [-r] REV..." msgid "thg purge" msgstr "thg purge" msgid "keep original changesets" msgstr "зберігати оригінальний набір змін" msgid "keep original branch names" msgstr "зберегати оригінальну назву гілки" msgid "rebase from the specified changeset" msgstr "перебазувати із вказаного набору змін" msgid "rebase onto the specified changeset" msgstr "перебазувати на вказаний набір змін" msgid "thg rebase -s REV -d REV [--keep]" msgstr "thg rebase -s РЕВ. -d РЕВ. [--keep]" msgid "Rebase already in progress" msgstr "Перебазування вже триває" msgid "Resuming rebase already in progress" msgstr "Поновлення перебазування вже триває" msgid "You must provide source and dest arguments" msgstr "Потрібно вказати значення для джерела та призначення" msgid "thg rejects [FILE]" msgstr "thg rejects [ФАЙЛ]" msgid "You must provide the path to a file" msgstr "Потрібно вказати шлях до файлу" msgid "thg remove [FILE]..." msgstr "thg remove [ФАЙЛ]..." msgid "thg rename [SOURCE] [DEST]" msgstr "thg rename [ЗВІДКИ] [КУДИ]" msgid "field to give initial focus" msgstr "поле, що вимагають першочергової уваги" msgid "thg repoconfig" msgstr "thg repoconfig" msgid "thg resolve" msgstr "thg resolve" msgid "the revision to show" msgstr "Показати правку" msgid "thg revdetails [-r REV]" msgstr "thg revdetails [-r РЕВ.]" msgid "thg revert [FILE]..." msgstr "thg revert [ФАЙЛ]..." msgid "revision to update" msgstr "поглянути до поновленого" msgid "thg rupdate [[-r] REV]" msgstr "thg rupdate [[-r] РЕВ.]" msgid "name of the hgweb config file (serve more than one repository)" msgstr "назва hgweb файлу налаштувань (serve більше ніж одне сховище)" msgid "name of the hgweb config file (DEPRECATED)" msgstr "назва файлу налаштувань hgweb (ЗАПЕРЕЧЕННЯ)" msgid "thg serve [--web-conf FILE]" msgstr "thg serve [--web-conf ФАЙЛ]" msgid "thg shellconfig" msgstr "thg shellconfig" msgid "thg shelve" msgstr "thg shelve" msgid "sign even if the sigfile is modified" msgstr "підписати навіть якщо файл підпису змінений" msgid "make the signature local" msgstr "підписати локальну" msgid "the key id to sign with" msgstr "номер ключа з підписом" msgid "do not commit the sigfile after signing" msgstr "не фіксувати файл підпису після підписання" msgid "use as commit message" msgstr "скористатися як повідомленням фіксації" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "thg sign [-f] [-l] [-k КЛЮЧ] [-m ТЕКСТ] [РЕВ.]" msgid "Please enable the Gpg extension first." msgstr "Спочатку увімкніть Gpg додаток." msgid "show files without changes" msgstr "відображати файли без змін" msgid "show ignored files" msgstr "відображати файли, що ігноруються" msgid "thg status [OPTIONS] [FILE]" msgstr "thg status [ПАРАМЕТРИ] [ФАЙЛ]" msgid "discard uncommitted changes (no backup)" msgstr "відкинути зміни без коментарів (без резервної копії)" msgid "do not back up stripped revisions" msgstr "не створювати резервні копії порізаних правок" msgid "do not modify working copy during strip" msgstr "не змінюйте робочу копію протягом рорізання" msgid "revision to strip" msgstr "поглянути до порізаного" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "thg strip [-k] [-f] [-n] [[-r] REV]" msgid "open the bookmark sync window" msgstr "відкрити закладку sync window" msgid "thg sync [OPTION]... [PEER]" msgstr "thg sync [OPTION]... [PEER]" msgid "replace existing tag" msgstr "переписати існуючий зріз" msgid "make the tag local" msgstr "створити локальний зріз" msgid "revision to tag" msgstr "поглянути до зріза" msgid "remove a tag" msgstr "вилучити зріз" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "thg tag [-f] [-l] [-m ТЕКСТ] [-r РЕВ.] [НАЗВА]" msgid "wait until the second ticks over" msgstr "почекайте другого протягом миті" msgid "notify the shell for paths given" msgstr "повідомлення оболонки для даних шляхів" msgid "remove the status cache" msgstr "вилучити стан кешу" msgid "show the contents of the status cache (no update)" msgstr "відобразити вміст стану кеша (без поновлення)" msgid "update all repos in current dir" msgstr "поновити всі сховища у поточному каталозі" msgid "thg thgstatus [OPTION]" msgstr "thg thgstatus [OPTION]" msgid "thg topics [-r REV] [NAME]" msgstr "" msgid "Please enable the Topic extension first." msgstr "" msgid "only one new topic name allowed" msgstr "" msgid "thg update [-C] [[-r] REV]" msgstr "thg update [-C] [[-r] РЕВ.]" msgid "thg userconfig" msgstr "thg userconfig" msgid "changeset to view in diff tool" msgstr "набір змін переглянути в знарядді порівняння" msgid "revisions to view in diff tool" msgstr "правки переглянути в знарядді порівняння" msgid "bundle file to preview" msgstr "файл пакунку до попереднього перегляду" msgid "launch visual diff tool" msgstr "запустити знаряддя наочного порівняння" msgid "print license" msgstr "друкувати ліцензію" msgid "thg version [OPTION]" msgstr "thg version [ПАРАМЕТРИ]" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "TortoiseHg діалоги (версія %s), Mercurial (версія %s)\n" msgid "Location:" msgstr "Розташування:" msgid "Update to:" msgstr "Поновити до:" msgid "Options:" msgstr "Параметри:" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "Відкинути зовнішні зміни, без резервної копії (-C/--clean)" msgid "Perform a push before updating (-p/--push)" msgstr "Виконувати виштовхування до оновлення (-p/--push)" msgid "Allow pushing new branches (--new-branch)" msgstr "Дозволяти виштовхувати нові гілки (--new-branch)" msgid "Force push to remote location (-f/--force)" msgstr "Примусово виштовхувати до зовнішнього місця (-f/--force)" msgid "remove working directory" msgstr "вилучити робочий каталог" msgid "unknown revision!" msgstr "невідома правка!" #, python-format msgid "Remote Update - %s" msgstr "Поновити зовнішнє - %s" msgid "&Update" msgstr "Поновити" msgid "Log" msgstr "Журнал" msgid "Repositories" msgstr "Сховища" #, python-format msgid "Running at %s" msgstr "Виконується для %s" msgid "Stopped" msgstr "Зупинено" msgid "TortoiseHg Web Server" msgstr "Веб сервер TortoiseHg" msgid "Web Server" msgstr "Web-сервер" msgid "Port:" msgstr "Порт:" msgid "Status:" msgstr "Стан:" msgid "Start" msgstr "Почати" msgid "Settings" msgstr "Налаштування" msgid "" msgstr "<не визначено>" msgid "&True" msgstr "Так" msgid "&False" msgstr "Ні" msgid "&Unspecified" msgstr "Не визначено" #, python-format msgid "%dpt" msgstr "%dpt" msgid "Bold" msgstr "Жирний" msgid "Italic" msgstr "Курсив" msgid "Strike" msgstr "Перекреслений" msgid "Underline" msgstr "Підкреслений" msgid "&Set..." msgstr "Вибір..." msgid "&Clear" msgstr "Очистити" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "Не вдалось завантажити issue tracker: '%s': %s. " msgid "&Browse..." msgstr "Проглянути..." msgid "UI Language" msgstr "Мова інтерфейсу" msgid "Specify your preferred user interface language (restart needed)" msgstr "Вкажіть мову інтерфейсу користувача (вимагатиме перезапуску)." msgid "Three-way Merge Tool" msgstr "Стороннє знаряддя злиття" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" "Графічний додаток злиття для розв'язування конфліктів злиття. Якщо не " "визначено, Mercurial буде використовувати першу ліпшу програму знайдену у " "Вашій системі або використає вбудоване знаряддя злиття, яке додасть маркери " "конфліктів безпосередньо до файлу. Обравши internal:merge — будуть " "вставлятися маркери конфліктів, internal:prompt — буде запит на вибір між " "двома версіями файлу, або internal:dump — файли будуть залишатися в робочому " "каталозі до злиття в ручному режимі." msgid "Visual Diff Tool" msgstr "Знаряддя наочного порівняння" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" "Оберіть знаряддя наочного порівняння, як описано в розділі [merge-tools] " "файлу налаштувань Mercurial. Якщо не визначено, TortoiseHg буде " "використовувати той самий редактор, що і для злиття. В іншому випадку, буде " "використано перший ліпший знайдений редактор." msgid "Visual Editor" msgstr "Текстовий редактор" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" "Вкажіть візуальний редактор описавши його в секції [editor-tools] файлу " "налаштувань Mercurial. В разі його відсутності, TortoiseHg буде " "використовувати перший ліпший знайдений редактор." msgid "CLI Editor" msgstr "Командний рядок" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" "Редакто використовуваний Mercurial командного рядка збиратиме " "мультирядковийввід від користувача. Зокрема повідомлення фіксації." msgid "Shell" msgstr "Оболонка" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
                                                                                                    Default, Windows: cmd.exe /" "K title %(reponame)s
                                                                                                    Default, OS X: not set
                                                                                                    Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" "Вкажіть команду запуску програми вашої бажаної оболонки терміналу. Якщо " "значення включене в рядку %(reponame)s, назва сховища буде заміщено в місці " "%(reponame)s. Відповідно, %(root)s буде заповнений шлях до сховища. " "(потребує перезапуску)
                                                                                                    Типово, Windows: cmd.exe /K title " "%(reponame)s
                                                                                                    Типово, OS X: не встановлено
                                                                                                    Типово, інше: xterm -T " "\"%(reponame)s\"" msgid "Immediate Operations" msgstr "Невідкладні операції" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" "Перелік операцій командної оболонки, через прогалини, які виконуватимуться " "негайно, без участі користувача. Команди \"add remove revert forget\". " "Типово: невизначено (залишити порожнім)." msgid "Tab Width" msgstr "Ширина вкладки" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" "Вкажіть кількість прогалин, що відповідатимуть одній табуляції в різних " "вікнах TortoiseHg. Типово: 8." msgid "Force Repo Tab" msgstr "Група вкладок сховища" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "" "Відображати сховища на вкладках завжди, навіть в разі одного сховища. " "Типово: ні." msgid "Monitor Repo Changes" msgstr "Пильнувати зміни у сховищі" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" "Вкажіть цільовий об'єкт файлової системи для якого TortoiseHg пильнуватиме " "зміни. Типово: лише локальні." msgid "Max Diff Size" msgstr "Розмір відмінностей" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" "Максимальний розмір файлу (Кб), для якого TortoiseHg буде відображати " "відмінності у вікнах журналу змін, стану та фіксації. Нуль означатиме - без " "обмежень. Типово: 1024 (1Мб)." msgid "Fork GUI" msgstr "Окремий GUI" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" msgid "Full Path Title" msgstr "Повний шлях у заголовку" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" "Відображати повний шлях до каталогу сховища в заголовку діалогу, а не просто " "назву кореневого каталогу. Типово: ні." msgid "Auto-resolve merges" msgstr "Розв'язування конфліктів" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" "Вказує, чи повинна TortoiseHg намагатися автоматично вирішити одночасні " "зміни з обох сторін у один і той же файл, і звітувати про конфлікти лише " "коли це не можливо. Якщо Ні, то всі файли із змінами по обидві сторони " "злиття будуть звітовані, як такі, що конфліктують, навіть якщо зміни в " "різних частинах файлів. У будь-якому випадку, при виникненні конфліктів, " "користувачеві буде запропоновано розглянути і розв'язати зміни вручну. " "Типово: Так." msgid "New Repo Skeleton" msgstr "Новий скелетон сховища" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" "Якщо вказано, файли в сховищі, як то .hgignore, копіюватимуться до щойно " "створеного сховища." msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "Робоче середовище" msgid "Single Workbench Window" msgstr "Одновіконне робоче середовище" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" "Виберіть, чи бажаєте мати одне вікно середовища. В разі вимкнення цього " "параметру отримуватимете нове вікно середовища кожного разу, коли " "використовуватимете \"Hg Workbench\" команди з контекстного меню Провідника. " "Типово: так." msgid "Default widget" msgstr "Типовий вигляд" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "" "Оберіть початковий вигляд службового вікна при відкритті сховища. Типово: " "revdetails (перегляд ревізії)." msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" "Оберіть початкову правку при відкритті сховища. Ви повинні обрати \"current" "\" (тобто робочий каталог попередника), поточний \"tip\" або робочий каталог " "(\"workingdir\"). Типово: current." msgid "" "Open new tabs next\n" "to the current tab" msgstr "" "Відкрити нову вкладка поруч\n" "з поточною вкладкою" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" "Чи повинні нові вкладки відкриватись поруч із поточною вкладкою? Якщо Ні, " "тоді нові вкладки будуть відкриватись після останньої вкладки. Типово: так." msgid "Author Coloring" msgstr "Кольори авторів" msgid "Color changesets by author name. Default: False" msgstr "" "Підсвічувати різними кольорами набори змін відповідно до автора. Типово: Ні" msgid "Full Authorname" msgstr "П.І.Б." msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" "Показувати повне ім'я автора в журналі. Якщо не увімкнено, лише скорочено, " "зазвичай це ім'я без електронної пошти. Типово: ні." msgid "Task Tabs" msgstr "Вкладки завдань" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" "Відображати вкладки вздовж однієї з сторін нижньої частини сховища, аби була " "можливість перемикатися між завданнями без використання пеналу. Типово: " "вимкнено." msgid "Task Toolbar Order" msgstr "Порядок завдання пенал" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
                                                                                                    Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
                                                                                                    Valid names are: log commit sync grep and " "pbranch.
                                                                                                    Default: log commit grep pbranch | sync" msgstr "" "Вказати, які кнопки завдань, ви хочете бачити на панелі задач інструментів і " "в якому порядку.
                                                                                                    Введіть список назв кнопок задач. Додайте роздільники, " "поставивши \"|\" між назвами кнопок задач.
                                                                                                    Допустимі імена: log commit " "sync grep та pbranch.
                                                                                                    Типово: log commit grep pbranch | sync" msgid "Long Summary" msgstr "Повний звіт" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" "Якщо Так, тоді об'єднувати декілька ліній в сумарний набір змін і обрізати " "їх по 80 символів за потребою. Типово: Ні." msgid "Log Batch Size" msgstr "Довжина рядків журналу" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "" "Кількість правок зчитуваних та відображуваних в журналі змін одиноразово. " "Типово: 500." msgid "Dead Branches" msgstr "Мертві гілки" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" "Перелік назв гілок, через кому, які ігноруватимуться коли побудується " "перелік назв гілок сховища. Типово: невизначено (залишити порожнім)." msgid "Branch Colors" msgstr "Кольори гілок" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" "Перелік назв гілок, через кому, у вигляді branch:#XXXXXX. Прогалини та " "двокрапки у назвах гілок екрануються спереду зворотньою нахиленою лінією " "(\\). Також можна додати деякі спеціальні символи, до прикладу \\u0040 буде " "позначати символ @, та \\n перехід на новий рядок. Типово: жодної (залишити " "порожнім)." msgid "Hide Tags" msgstr "Приховати ознаки" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" "Перелік ярликів, через прогалини, що не відображатимуться. До прикладу: " "вкажіть \"qbase qparent qtip\" аби приховати стандартні ознаки які додає " "додаток Mercurial Queues Extension. Типово: невизначено (залишити порожнім)." msgid "Activate Bookmarks" msgstr "Задіяти закладки" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

                                                                                                    • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
                                                                                                    • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
                                                                                                    • never: Never show any prompt to " "activate any bookmarks.

                                                                                                    Default: prompt" msgstr "" "Виберіть, як швидко TortoiseHg покаже підказку активації закладки в разі " "оновлення правки, що має одну або більше закладок.

                                                                                                    • автоматично: спробувати відразу активувати закладки. При оновленні правки, яка має " "одну закладку вона буде оновлена автоматично. Відображати негайно, якщо є " "більше однієї закладки на правку, яка була поновлена до
                                                                                                    • негайно: " "типово. Відображати негайно, коли поновлена правка має одну або більше " "закладок.
                                                                                                    • ніколи: ніколи не відображати жодного рядку при " "активації будь-якої закладки.

                                                                                                    Типово: негайно." msgid "Show Family Line" msgstr "Показати сімейну лінію" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

                                                                                                    Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" "Показати непряму залежність графу правки коли фільтрується набір правок. " "Типово: Так

                                                                                                    Note: РОзрахунок фамільних ліній може бути повільним в " "деяких випадках. Цю опцію очікує видалення продуктивність не покращиться." msgid "Use optimized graph layouter" msgstr "" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

                                                                                                    Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" msgctxt "config item" msgid "Commit" msgstr "Фіксувати" msgid "Username" msgstr "Користувач" msgid "" "Name associated with commits. The common format is:
                                                                                                    Full Name <" "email@example.com>" msgstr "" "Ім'я асоційоване з зафіксованим кодом. Формат наступний:
                                                                                                    повне ім'я <" "email@example.com>." msgid "Ask Username" msgstr "Запитати ім'я користувача" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" "Якщо ім'я користувача не було вказане, користувачу буде запропоновано ввести " "ім'я користувача. Типово: Ні" msgid "Summary Line Length" msgstr "Зведена довжина рядка" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" "Рекомендована довжина рядку в повідомленні фіксації. Червона вертикальна " "лінія визначатиме довжину. Комбінація CTRL-E вкоротить поточний параграф до " "рекомендованої довжини рядка. Типово: 80." msgid "Close After Commit" msgstr "Закрити після фіксації" msgid "Close the commit tool after every successful commit. Default: False" msgstr "" "Закривати знаряддя фіксації після кожної успішної фіксації. Типово: ні." msgid "Push After Commit" msgstr "Виштовхнути після фіксації" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" "Спробувати виштовхувати за вказаним URL або псевдонімом після кожної " "успішної фіксації. Типово: не виштовхувати." msgid "Auto Commit List" msgstr "Автоматично фіксовані" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" "Перелік файлів, через кому, які автоматично додаватимуться з кожною " "фіксацією. Призначено для використання лише в якості параметрів сховища. " "Типово: жоден (залишити порожнім)." msgid "Auto Exclude List" msgstr "Автоматично виключені" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" "Перелік файлів, через кому, з яких автоматично зніматиметься мітка стану, і " "відкриватимуться діалоги фіксації. Типово: невизначено (залиште порожнім)." msgid "English Messages" msgstr "Англомовні повідомлення" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" "Створювати повідомлення фіксації англомовні, навіть якщо змінні середовища " "LANGUAGE або LANG встановлені, як не англомовні. Ці налаштування " "застосовуватимуться до діалогів злиття, зрізу та відновлення. Типово: ні." msgid "New Commit Phase" msgstr "Фаза нової фіксації" msgid "The phase of new commits. Default: draft" msgstr "Фаза нової фіксації. Типово: чорнова." msgid "Secret MQ Patches" msgstr "Приховати MQ латки" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "Зробити MQ латки прихованими (instead або чорновими). Типово: ні." msgid "Check Subrepo Phase" msgstr "Фази підсховища" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" "Перевірити фазу поточної правки у кожному підсховищи. При інших " "налаштуваннях, ніж \"ігнорувати\", фаза поточної правки кожного підсховища " "перевірятиметься до фіксування батьківського сховища. Типово: слідувати." msgid "Monitor working
                                                                                                    directory changes" msgstr "Пильнування змін
                                                                                                    робочого каталогу" msgid "" "Select when the working directory status list will be refreshed:
                                                                                                    - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
                                                                                                    TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
                                                                                                    - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
                                                                                                    - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
                                                                                                    Default: auto" msgstr "" "Визначає, коли буде поновлюватись стан робочого каталогу:
                                                                                                    - авто: " "[типово] TortoiseHg сам вирішуватиме, коли перезавантажувати робочий " "каталог.
                                                                                                    TortoiseHg освіжить стан при виконанні дії, що потенційно змінює " "робочий каталог. Це допоможе не пропустити жодної зміни поза участю " "TortoiseHg;
                                                                                                    - завжди: додатково до автоматичних поновлень, " "також освіжить стан списку, коли користувач натискав \"working dir revision" "\" або \"Commit icon\" на панелі завдань;
                                                                                                    - завжди локальне: " "також, як і \"завжди\", але обмежує примусове освіження локальними " "сховищами.
                                                                                                    Типово: авто." msgid "Confirm adding unknown files" msgstr "Додавання невідомих файлів" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Confirm deleting files" msgstr "Підтвердіть знищення файлів" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Sync" msgstr "Синхронізація" msgid "After Pull Operation" msgstr "Операція після витягування" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" "Операція виконувана напряму після успішного отримання коду. update " "прирівнюється до pull --update, fetch прирівнюється до розширеної виборки, " "rebase прирівнюється до pull --rebase, updateorrebase прирівнюється до pull -" "u --rebase. Типово: нічого." msgid "Default Push" msgstr "Виштовхнути за типовим сценарієм" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

                                                                                                    • all: The default. Push all changes in all " "branches.
                                                                                                    • branch: Push all changes in the current branch.
                                                                                                    • revision: Push the changes in the current branch up to the current revision.

                                                                                                    Default: all" msgstr "" "Вибрати правки, які виштовхуватимуться за типовим сценарієм при кожному " "натисканні кнопки Виштовхування.

                                                                                                  • всі: типово. виштовхувати всі " "зміни до всіх гілок.
                                                                                                  • гілка: виштовхувати всі зміни в " "поточну гілку.
                                                                                                  • ревізія: виштовхувати всі зміни у поточну " "гілку аж до поточної правки.

                                                                                                  Типово: всі." msgid "Confirm Push" msgstr "Підтвердити виштовхування" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" "Визначає, чи повинна TortoiseHg показати діалогове вікно підтвердження перед " "виштовхуванням змін. Якщо ні, виштовхування буде виконано без діалогу " "підтвердження. Типово: так." msgid "Target Combo" msgstr "Групове завдання" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

                                                                                                  • auto: The default. Show the combo if more than one target " "configured.
                                                                                                  • always: Always show the combo.

                                                                                                  Default: auto" msgstr "" "Виберіть, як TortoiseHg відображатиме групове завдання на панелі " "синхронізації.

                                                                                                  • автоматично: Типово. Показуватиме комбо якщо " "налаштовано більше однієї мети.
                                                                                                  • завжди: Завжди показувати пару.

                                                                                                    Типово: автоматично." msgid "SSH Command" msgstr "Команда SSH" msgid "" "Command to use for SSH connections.

                                                                                                    Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" "Використовуватиметься SSH для з'єднання.

                                                                                                    Типово: \"ssh\" або " "\"TortoisePlink.exe -ssh -2\" (Windows)" msgid "Subrepository Features:" msgstr "" msgid "Allow Hg Subrepos" msgstr "" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" msgid "Allow Git Subrepos" msgstr "" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

                                                                                                    See the security note before enabling Git " "subrepos." msgstr "" msgid "Allow SVN Subrepos" msgstr "" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

                                                                                                    See the security note before enabling " "Subversion subrepos." msgstr "" msgid "Server" msgstr "Сервер" msgid "Repository Details:" msgstr "Інформація про сховище:" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" "Назва сховища для Web-інтерфейсу, буде використано також, як коротка назва в " "TortoiseHg. Типово: назва рабочого каталогу." msgid "Encoding" msgstr "Кодування" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" "Кодування файлів в сховищі, використовується веб-інтерфейсом і TortoiseHg." msgid "'Publishing' repository" msgstr "'Публікація' сховища" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" "Керує поведінкою чорнової фази коли працює сервер. Якщо Так, виштовхування " "наборів змін встановлено до публічного, як на клієнтах так і на серверах і " "витягування або клонування наборів змін встановлено з публічного клієнта. " "Типово: так." msgid "Web Server:" msgstr "Веб сервер:" msgid "Textual description of the repository's purpose or contents." msgstr "Опис призначення або вмісту сховища." msgid "Contact" msgstr "Контакт" msgid "Name or email address of the person in charge of the repository." msgstr "Ім'я або електронна пошта особи, відповідальної за сховище." msgid "Style" msgstr "Стиль" msgid "Which template map style to use" msgstr "Який взірець зовнішнього вигляду використовувати." msgid "Archive Formats" msgstr "Формати архівів" msgid "Comma separated list of archive formats allowed for downloading" msgstr "Перелік форматів архівів, через кому, дозволений для отримання." msgid "Port" msgstr "Порт" msgid "Port to listen on" msgstr "Номер порта, який слухатиметься." msgid "Push Requires SSL" msgstr "Виштовхівання вимагає SSL" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" "Під час виштовхування файлів варто використовувати шифрування для уникнення " "втрати паролю." msgid "Stripes" msgstr "Смуги" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" "Кількість рядків через які повинні з'являтися \"зебрачі смуги\" при " "багаторядковому результаті. Типово 1; встановивши 0 відключено." msgid "Max Files" msgstr "Максимум файлів" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "Максимальна кількість файлів в наборі змін. Типово: 10." msgid "Max Changes" msgstr "Максимально змін" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "Максимальна кількість змін у журналі змін. Типово: 10." msgid "Allow Push" msgstr "Дозвіл виштовхувати" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" "Кому дозволено виштовхувати у сховище. Якщо порожньо або не встановлено, " "тоді виштовхування заборонено. При спеціальному значенні \"*\" будь хто " "ззовні зможе виштовхувати, враховуючи і тих хто не пройшов регістрацію. " "Інакше, сторонній користувач повинен пройти аутентифікацію та його ім'я " "повинно бути присутнім у цьому переліку (через прогалини або \",\"). Вміст " "переліку дозволів на відправку розглядатиметься після переліку заборон " "виштовхування." msgid "Deny Push" msgstr "Заборона виштовхувати" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" "Кому заборонено виштовхувати у сховище. Якщо порожнє або не визначено, тоді " "виштовхування не заборонено. При спеціальному значенні \"*\" всім строннім " "користувачам заборонено писати у сховище. Інакше кажучи, відправляти " "заборонено користувачам, що не пройшли аутентифікацію, а також тим хто " "пройшов, але є у переліку (через прогалини або \",\"). Вміст списку на " "заборону виштовхування розглядатиметься до переліку дозволів на відправку." msgid "Proxy" msgstr "Проксі" msgid "Host" msgstr "Вузол" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "" "Ім'я вузла та (необов'язково) порт проксі-сервера, до прикладу " "\"мій_проксі:8000\"." msgid "Bypass List" msgstr "Виключення" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "" "Необов'язково. Перелік вузлів, через кому, які не потребують використання " "проксі." msgid "Optional. User name to authenticate with at the proxy server" msgstr "Необов'язково. Ім'я користувача для аутентифікації на проксі-сервері." msgid "Password" msgstr "Пароль" msgid "Optional. Password to authenticate with at the proxy server" msgstr "Необов'язково. Пароль для аутентифікації на проксі-сервері." msgid "From" msgstr "Від" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "" "Адреса електронної пошти відображувана у заголовку \"Від\" SMTP повідомлення." msgid "To" msgstr "Tакож" msgid "Comma-separated list of recipient email addresses" msgstr "Перелік адрес електронної пошти отримувачів, через кому." msgid "Cc" msgstr "Копія" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "Перелік адрес електронної пошти отримувачів копій листа, через кому" msgid "Bcc" msgstr "Прихована" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "Перелік адрес електронної пошти прихованих отримувачів, через кому." msgid "method" msgstr "Протокол" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" "Необов'язково. Протокол використовуваний для надсилання повідомлень. Якщо " "параметр \"smtp\" (типово), використовується SMTP (налаштування нижче). У " "іншому випадку, використовуйте програму, що працює як sendmail (використавши " "\"-f\" опцію для надсилання, перелік отримувачів у командному рядку, нотатку " "у stdin). За звичай, для цього достатньо параметрів \"sendmail\" або \"/usr/" "sbin/sendmail\" та використовувати sendmail для пересилання повідомлень." msgid "SMTP Host" msgstr "SMTP вузол" msgid "Host name of mail server" msgstr "Ім'я вузла сервера електронної пошти." msgid "SMTP Port" msgstr "SMTP порт" msgid "Port to connect to on mail server. Default: 25" msgstr "Порт з'єднання з сервером електронної пошти. Типово: 25." msgid "SMTP TLS" msgstr "SMTP TLS" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "" "Метод вмикає TLS для з'єднання з поштовим сервером. Типово: невизначено" msgid "SMTP Username" msgstr "SMTP користувач" msgid "Username to authenticate to mail server with" msgstr "Ім'я користувача для аутентифікації на поштовому сервері." msgid "SMTP Password" msgstr "SMTP пароль" msgid "Password to authenticate to mail server with" msgstr "Пароль для аутентифікації на поштовому сервері." msgid "Local Hostname" msgstr "Місцевий вузол" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "Ім'я вузла використовуваного відправником за поштовий сервер." msgid "Diff and Annotate" msgstr "Латки та опис" msgid "Patch EOL" msgstr "Кінець рядку в латках" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" "Вирівнювання закінчення рядків файлу до та після накладання латки, lf " "(точно) або crlf (автоматично). Точно - без нормалізації. Автоматично - " "виконує нормалізацію для кожного виявленого файлу, і є рекомендованим " "параметром. Типово: точно." msgid "Git Format" msgstr "Формат git" msgid "Use git extended diff header format. Default: False" msgstr "" "Використовувати розширений git формат для заголовку різниць. Типово: ні." msgid "MQ Git Format" msgstr "Git-овий формат MQ" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" "Коли встановлено 'auto', mq буде автоматично використовувати git латки коли " "потрібно не втратити зміни в режимі файлів, копіювати записи або двійкові " "файли. Якщо встановлено 'keep', mq будепідкорятися секції [diff] " "конфігурації при збережені існуючиї git латок до qrefresh. Якщо встановлено " "Так або Ні, mq буде перезаписувати секцію [diff] та завжди генерувати git " "або нормальні латки, в другому випадку можлива втрата даних. Типово: auto." msgid "No Dates" msgstr "Без дат" msgid "Do not include modification dates in diff headers. Default: False" msgstr "Не включати дату змін до заголовку різниць. Типово: ні." msgid "Show Function" msgstr "Відображати функцію" msgid "Show which function each change is in. Default: False" msgstr "Відображати у якій функції знаходиться кожна зміна. Типово: ні." msgid "Ignore White Space" msgstr "Ігнорувати прогалини" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "Ігнорувати прогалини при порівнянні рядків. Типово: ні." msgid "Ignore WS Amount" msgstr "Не зважати на кількість прогалин" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "Ігнорувати зміни викликані прогалинами. Типово: ні." msgid "Ignore Blank Lines" msgstr "Ігнорувати порожні рядки" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "Ігнорувати зміни порожніх рядків. Типово: ні." msgid "Annotate:" msgstr "Опис:" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" "Ігнорувати прогалини коли порівнюються лінії в перегляді опису. Типово: ні." msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "Ігнорувати зміни в кількості прогалин в описі. Типово: ні." msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "Не вважати порожні рядки в описі, як зміни. Типово: ні." msgid "Fonts" msgstr "Шрифти" msgid "Message Font" msgstr "Шрифт повідомлення" msgid "Font used to display commit messages. Default: monospace 10" msgstr "Шрифт у повідомленні фіксації. Типово: monospace 10." msgid "Diff Font" msgstr "Шрифт відмінностей" msgid "Font used to display text differences. Default: monospace 10" msgstr "" "Шрифт використовуваний для показу різниці текстів. Типово: monospace 10." msgid "ChangeLog Font" msgstr "Шрифт журналу змін" msgid "Font used to display changelog data. Default: monospace 10" msgstr "Шрифт використовувани у журналу змін. Типово: monospace 10." msgid "Output Font" msgstr "Шрифт результату" msgid "Font used to display output messages. Default: sans 8" msgstr "Шрифт використовуваний вихідними повідомленнями. Типово: sans 8." msgid "Extensions" msgstr "Додатки" msgid "Tools" msgstr "Знаряддя" msgid "Hooks" msgstr "Гачки" msgid "Issue Tracking" msgstr "Контроль питань" msgid "Issue Regex" msgstr "Результат регулярного виразу" msgid "Defines the regex to match when picking up issue numbers." msgstr "Визначає регулярний вираз відповідно до піднятих номерів питань." msgid "Issue Link" msgstr "Посилання на проблему" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" "Визначити команду запуску коли номер запиту розпізнано. Ви можете включити " "групи в issue.regex, та аналогічний {n} знак в issue.link (де n є додатне " "ціле). {0} посилань до відповідного рядка відповівідностей issue.regex, коли " "{1} посилань до першої групи і так далі. Якщо відсутнє {n} знаків знайдено в " "issue.link, весь рядок приймається як відповідний." msgid "Inline Tags" msgstr "Ознаки в рядку" msgid "Show tags at start of commit message." msgstr "Відображати ознаки на початку повідомлень фіксації." msgid "Mandatory Issue Reference" msgstr "Вимагати посилання на помилку" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" "При фіксації вимагати посилання на питання були вказані. В разі увімкнення " "регулярний вираз в 'Issue Regex' повинен знайти відповідність у повідомленні " "фіксації." msgid "Issue Tracker Plugin" msgstr "Модуль Issue Tracker" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" "Налаштування COM об'єкту IBugTraqProvider або IBugTraqProvider2 модулю " "контролю питань." msgid "Configure Issue Tracker" msgstr "Налаштування Issue Tracker" msgid "Configure the selected COM Bug Tracker plugin." msgstr "Налаштування обраного COM-модуля системи контролю помилок." msgid "Issue Tracker Trigger" msgstr "Перехоплювач Issue Tracker" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

                                                                                                    • never: Do not update the Issue Tracker " "state automatically.
                                                                                                    • commit: Update the Issue Tracker state after " "a successful commit.

                                                                                                    Default: never" msgstr "" "Визначає, коли issue tracker поновлюватиме стан TortoiseHg. Допустимі " "значення параметрів:

                                                                                                    • ніколи: не поновлювати системою контролю " "питань, встановлено автоматично.
                                                                                                    • фіксація: оновлювати системою " "контролю питань після успішної фіксації змін.

                                                                                                    Типово: ніколи." msgid "Changeset Link" msgstr "Посилання на набір змін" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
                                                                                                    The template string " "uses a normal mercurial template syntax, such as:

                                                                                                    • {node|short} : replaced by " "the 12 digit revision id.
                                                                                                    • {rev} : replaced by the revision number." "
                                                                                                    • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
                                                                                                    For example, in order to " "link to bitbucket commit pages you can set this to:
                                                                                                    https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
                                                                                                    You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
                                                                                                    https://github.com/torvalds/" "linux/commit/{gitnode}
                                                                                                    https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
                                                                                                    " msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "Шлях до Review Board, наприклад \"http://demo.reviewboard.org\"" msgid "User name to authenticate with review board" msgstr "Ім'я користувача для аутентифікації на Review Board." msgid "Password to authenticate with review board" msgstr "Пароль для аутентифікації на Review Board" msgid "Server Repository ID" msgstr "ID серверу сховища" msgid "The default repository id for this repo on the review board server" msgstr "" "Типовий ідентифікатор сховища для цього сховища на сервері Review Board." msgid "Target Groups" msgstr "Групові завдання" msgid "A comma separated list of target groups" msgstr "Перелік групових завдань, через кому." msgid "Target People" msgstr "Групи людей" msgid "A comma separated list of target people" msgstr "Перелік людей групи, через кому." msgid "Kiln Bfiles" msgstr "Спекти великі файли" msgid "Patterns" msgstr "Шаблони" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" "Файли з назвами, які відповідають вказаним шаблонам, будуть автоматично " "додані, як великі файли" msgid "Size" msgstr "Розмір" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" "Принаймні файли, розмір яких вказаний у мегабайтах, будуть додані, як великі " "файли" msgid "System Cache" msgstr "Системний кеш" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "" "Шлях до каталогу, в якому будуть збережені великі файли загальносистемного " "кешу" msgid "Simplelock" msgstr "Простий замок" msgid "Lock Clone" msgstr "Замок клонування" msgid "" "Location of local clone of organizational lock repository.

                                                                                                    This repository " "must contain a \"locked\" text file" msgstr "" msgid "Largefiles" msgstr "Великі файли" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" "Файли з назвами, які відповідають вказаним шаблонам будуть автоматично " "додані, як великі файли (largefiles)" msgid "Minimum Size" msgstr "Мінімальний розмір" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" "Файли, для яких вказаний розмір (в мегабайтах) будуть додані, як великі " "файли (largefiles)" msgid "User Cache" msgstr "Кеш користувача" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" "Шлях до каталогу, в якому тимчасово зберігатимуться великі файли користувача" msgid "Projrc" msgstr "Ресурси проекту" msgid "Require confirmation" msgstr "Вимагати підтвердження" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

                                                                                                    • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
                                                                                                    • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
                                                                                                    • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
                                                                                                    " msgstr "" "Коли запитувати користувача підтвердження про поновлення локального \"projrc" "\" конфігураційного файлу при зміні зовнішнього projrc файлу. Можливі " "значення:
                                                                                                    • завжди: [типово] постійно виводити діалог " "підтвердження перед поновленням локального .hg/projrc файлу;
                                                                                                    • вперше: показувати діалог підтвердження коли сховище клоноване або коли " "зовнішній projrc файл знайдено вперше.
                                                                                                    • Ніколи: Поновити локальний ." "hg/projrc файл автоматично, не запитуючи підтвердження в користувача.
                                                                                                    " msgid "Servers" msgstr "Сервери" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" "Список серверів з яких \"projrc\" конфігураційні файли повинні бути " "отримані. Встановивши як \"*\" витягуватиметься з всіх серверів. Встановивши " "як \"default\" витягуватиметься з типового шляху обміну. Типово " "витягуватиметься з NO серверів." msgid "Include" msgstr "Включити" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" "Список параметрів, значення яких будуть отримані з файлу налаштувань " "проекту. Типово параметри не включати." msgid "Exclude" msgstr "Виключити" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" "Список параметрів, які не будуть братися з файлу налаштувань проекту. Типово " "не виключати жодних виключень вказаних в налаштуваннях." msgid "Update on incoming" msgstr "Поновлення на вході" msgid "" "Let the user update the projrc on incoming:
                                                                                                    • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
                                                                                                    • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
                                                                                                    • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                                                                                                      Default: never" msgstr "" "Дозволити користувачеві поновлювати projrc вхідними:

                                                                                                      • ніколи: " "[типово] Показувати чи зовнішній файл projrc був змінений, але не " "оновлювати (nor запит на поновлення) місцевий файл projrc.
                                                                                                      • підказка: переглядати зміни у файлі projrc. Якщо є зміни _always_ показувати запит " "на підтвердження, питаючи користувача чи не бажає він оновити локальний файл " "projrc.
                                                                                                      • автоматично: переглядати зміни до файлу projrc. " "Використовуйте значення \"projrc.confirm\" конфігураційного ключа для " "вказівки чи показувати діалог підтвердження перед поновленням локального " "projrc файлу або ні.

                                                                                                      Типово: ніколи." msgid "GnuPG" msgstr "GnuPG" msgid "Specify the path to GPG. Default: gpg" msgstr "Вкажіть шлях до файлу електроного підпису. Типово: gpg." msgid "Key ID" msgstr "ID ключа" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "" "ID користувача прив'язаний до електроного підпису. Типово: невизначено " "(залиште порожнім)." msgid "TortoiseHg Settings" msgstr "Налаштування TortoiseHg" msgid "Iniparse package not found" msgstr "Не знайдено програму аналізу ini-файлів" msgid "Can't change settings without iniparse package - view is readonly." msgstr "" "Неможливо змінити налаштування без аналізу пакунку ini-файлів - перегляд " "лише для читання." #, python-format msgid "%s's global settings" msgstr "Налаштування користувача %s'" msgid "No repository found" msgstr "Не знайдено сховища" msgid "no repo at " msgstr "відсутнє сховище у " #, python-format msgid "%s project settings (.hg/projrc)" msgstr "%s налаштування проекту (.hg/projrc)" #, python-format msgid "%s repository settings" msgstr "Налаштування сховища %s" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "Перезавантажити всі TortoiseHg додатки для застосування змін:" msgid "Apply changes before exit?" msgstr "Застосувати зміни перед виходом?" msgid "&No (discard changes)" msgstr "Ні (відкинути зміни)" msgid "Reload" msgstr "Перезавантажити" msgid "Settings File:" msgstr "Файл налаштувань:" msgid "Confirm Save" msgstr "Підтвердіть збереження" msgid "Save changes before editing?" msgstr "Зберегти зміни перед правкою?" msgid "&Save" msgstr "Зберегти" msgid "Confirm Reload" msgstr "Підтвердіть перезавантаження" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" "Незбережені зміни буде втрачено.\n" "Перезавантажити?" msgid "Unable to create a Mercurial.ini file" msgstr "Неможливо створити Mercurial.ini файл" msgid "Insufficient access rights, reverting to read-only mode." msgstr "Недостатньо прав доступу, повернення до режиму лише читання." msgid "Context Menu" msgstr "Контекстне меню" msgid "Top menu items:" msgstr "Пункти головного меню:" msgid "Sub menu items:" msgstr "Пункти підменю:" msgid "Menu Behavior" msgstr "Меню поведінки" msgid "Hide context menu outside repositories" msgstr "Приховувати контекстне меню поза сховищами" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" "Не вказувати пункти меню на неверсійованих теках (використовуйте shift + " "натисніть, щоб перевизначити)" msgid "Icons" msgstr "Значки" msgid "Overlays" msgstr "Перезапис" msgid "Enabled overlays" msgstr "Увімкнути позначки" msgid "Local disks only" msgstr "Лише місцеві диски" msgid "Enabled Overlay Handlers" msgstr "Увімкнути обробку позначок" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "Увага: стосуватиметься всіх Tortoises, після змін потрібний перезапуск" msgid "Added" msgstr "Доданий" msgid "Locked*" msgstr "Заблокований*" msgid "Ignored*" msgstr "Ігнорується*" msgid "Unversioned" msgstr "Версії не визначено" msgid "Readonly*" msgstr "Лише для читання*" msgid "Deleted*" msgstr "Знищений*" msgid "*: not used by TortoiseHg" msgstr "*: не використовується TortoiseHg" msgid "Taskbar" msgstr "Панель задач" msgid "Show Icon" msgstr "Показувати піктограму" msgid "Highlight Icon" msgstr "Підсвітити піктограму" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" "Ви можете змінити піктограму встановивши з Налаштувань " "TortoiseSVN's " msgid "Explorer Extension Settings - TortoiseHg" msgstr "Налаштування розширення Провідника - TortoiseHg" msgid "Clear" msgstr "Очистити" msgid "Clear the current shelf file" msgstr "Очистити поточну файлову поличку" msgid "Delete the current shelf file" msgstr "Знищити поточну файлову поличку" msgid "Left Toolbar" msgstr "Лівий пенал" msgid "Delete selected chunks" msgstr "Знищити обрані кусні" msgid "Move all files right" msgstr "Перемістити всі файли праворуч" msgid "Move selected file right" msgstr "Перемістити обрані файли праворуч" msgid "Edit file" msgstr "Правити файл" msgid "Move selected chunks right" msgstr "Перемістити обрані кусні праворуч" msgid "Refresh Toolbar" msgstr "Перезавантажити пенал" msgid "Refresh" msgstr "Оновити" msgid "New Shelf" msgstr "Нова поличка" msgid "Right Toolbar" msgstr "Правий пенал" msgid "Move selected chunks left" msgstr "Перемістити обрані кусні ліворуч" msgid "Move selected file left" msgstr "Перемістити обрані файли ліворуч" msgid "Move all files left" msgstr "Перемістити всі файли ліворуч" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "" "Резервні копії для змінених файлів можуть бути знайдені у .hg/Trashcan/" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "TortoiseHg Полиця - %s" msgid "Delete selected chunks from working copy?" msgstr "Видалити обрані шматки з робочої копії?" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "Видалити обрані шматки з полиці файлів %s?" msgid "Are you sure?" msgstr "Ви впевнені?" msgid "TortoiseHg New Shelf Name" msgstr "Нова назва полички у TortoiseHg" msgid "Specify name of new shelf" msgstr "Вкажіть нову назву полички" msgid "Bad filename" msgstr "Погана назва файлу" #, python-format msgid "A shelf name cannot contain %s" msgstr "Назва полички не може містити %s" msgid "File already exists" msgstr "Такий файл вже існує" msgid "A shelf file of that name already exists" msgstr "Файл полички з такою назвою вже існує" msgid "New shelf created" msgstr "Створити нову поличку" #, python-format msgid "Delete shelf file %s?" msgstr "Знищити файл полички %s?" msgid "Shelf deleted" msgstr "Знищити поличку" msgid "Revert all working copy changes?" msgstr "Повернути всі робочі копії змін?" #, python-format msgid "Clear contents of shelf file %s?" msgstr "Очистити вміст полиці %s?" msgid "Shelf cleared" msgstr "Очищення полиці" #, python-format msgid "Shelf: %s" msgstr "Поличка: %s" #, python-format msgid "Patch: %s" msgstr "Латка: %s" msgid "Key:" msgstr "Ключ:" msgid "Local sign" msgstr "Локальний підпис" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "Підписати навіть якщо файл підпису змінений (-f/--force)" msgid "No commit" msgstr "Не фіксувати" msgid "Use custom commit message:" msgstr "Використовувати повідомлення фіксації користувача:" msgid "&Sign" msgstr "Підписати" #, python-format msgid "Sign - %s" msgstr "Підпис - %s" msgid "Signature has been added" msgstr "Підпис був доданий" msgid "Repository command still running" msgstr "Команда по сховищу ще працює" msgid "Filter:" msgstr "Фільтр:" msgid "Check all files" msgstr "Звірити всі файли" msgid "Uncheck all files" msgstr "Роззвірити всі файли" msgid "Status File List Toolbar" msgstr "Пенал списку файла стану" msgid "Remove filter, show root" msgstr "Вилучити фільтр, відобразивши корінець" #, python-format msgid "%s - status (selection filtered)" msgstr "%s - стан (selection filtered)" #, python-format msgid "%s - status" msgstr "%s - стан" msgid "Check" msgstr "Звірити" msgid "Uncheck" msgstr "РОззвірити" msgid "status" msgstr "стан" msgid "Failed to refresh" msgstr "Не вдалося перезавантажити" msgid "No appropriate files" msgstr "Відсутні відповідні файли" msgid "No files found for this operation" msgstr "Не знайдено файлів для цієї операції" msgid "Stat" msgstr "Стан" msgid "M" msgstr "М" msgid "Filename" msgstr "Ім’я файлу" msgid "Size (KB)" msgstr "Розмір (КіБ)" #, python-format msgid "Checked count: %d" msgstr "Перевірена кількість: %d" msgid ", resolved merge" msgstr ", розв'язане злиття" msgid ", unresolved merge" msgstr ", не розв'язані конфлікти злиття" #, python-format msgid "%s is modified" msgstr "%s змінено" msgid "modified" msgstr "змінено" #, python-format msgid "%s is added" msgstr "%s додано" msgid "added" msgstr "додано" #, python-format msgid "%s is removed" msgstr "%s вилучено" msgid "removed" msgstr "вилучено" #, python-format msgid "%s is not tracked (unknown)" msgstr "%s не відстежується (невідомий)" msgid "unknown" msgstr "невідомо" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "%s знищено не командою hg, тому все ще під контролем" msgid "missing" msgstr "відсутнє" #, python-format msgid "%s is ignored" msgstr "%s ігноровано" msgid "ignored" msgstr "ігноровано" #, python-format msgid "%s is not modified (clean)" msgstr "%s не змінений (первісний)" msgid "clean" msgstr "очищено" #, python-format msgid "%s is a dirty subrepo" msgstr "%s брудне підсховище" msgid "subrepo" msgstr "підсховище" msgid "Check for incoming changes from selected URL" msgstr "Перевірити сформовані зміни з URL" msgid "Pull incoming changes from selected URL" msgstr "Витягнути вхідні зміни з обраного URL" msgid "Detect outgoing changes to selected URL" msgstr "Виявити вихідні зміни до обраного URL" msgid "Push outgoing changes to selected URL" msgstr "Виштовхнути вихідні зміни до обраного URL" msgid "Sync Bookmarks" msgstr "Синхронізувати вкладки" msgid "Email outgoing changesets for remote repository" msgstr "Відправити вихідні набори змін для зовнішнього сховища поштою" msgid "Manage pending perforce changelists" msgstr "Керувати наборами змін, що очікують perforce" msgid "Unbundle" msgstr "Розпакувати" msgid "Selected Options:" msgstr "Обрати параметри:" msgid "Path Edit Toolbar" msgstr "Пенал правки шляху" msgid "Security" msgstr "Безпека" msgid "Manage HTTPS connection security and user authentication" msgstr "Керування захистом HTTPS з'єднання та аутентифікацією користувача" msgid "Save" msgstr "Зберегти" msgid "Save current URL under an alias" msgstr "Зберегти поточний URL під псевдонімом" msgid "Paths in Repository Settings:" msgstr "Шлях до сховища налаштувань:" msgid "Related Paths:" msgstr "Пов'язані шляхи:" msgid "branch: " msgstr "гілка: " msgid "bookmark: " msgstr "закладка: " #, python-format msgid "rev: %d (%s)" msgstr "правка: %d (%s)" msgid "Post Pull: " msgstr "Після витягування: " msgid "&Edit..." msgstr "Правити..." msgid "&Remove..." msgstr "Вилучити..." msgid "Repository not local" msgstr "Сховище не місцеве" msgid "A terminal shell cannot be opened for remote" msgstr "Командний рядок не доступний ззовні" msgid "Confirm path delete" msgstr "Підтвердіть знищення шляху" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "Знищити %s з файлу налаштувань Вашого сховища?" msgid "Select repository" msgstr "Обрати сховище" msgid "No host specified" msgstr "Зазначений вузол відсутній" msgid "Please set a valid URL to continue." msgstr "Встановіть коректний URL та продовжіть" msgid "No remote repository URL or path set" msgstr "URL не зовнішнього сховища або встановлення шляху" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

                                                                                                      Please type and save a remote repository path on the " "Sync widget." msgstr "" "Для типового зовнішнього сховища не налаштований шлях або URL.

                                                                                                      Будь " "ласка, вкажіть та збережіть шлях до зовнішнього сховища у віджеті " "Синхронізація." msgid "Redundant authentication info" msgstr "Резервування аутентифікаційної інформації" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" "Ви маєте аутентифікаційну інформацію налаштовану для цього вузла та " "всередині цього URL. Видалити аутентификаційну інформацію з цього URL?" msgid "sync command already running" msgstr "команда синхронізації вже виконується" #, python-format msgid "Getting incoming changesets from %s..." msgstr "Отримання вхідних змін з %s..." #, python-format msgid "Found incoming changesets from %s" msgstr "Знайдено вхідний набір змін з %s" #, python-format msgid "No incoming changesets from %s" msgstr "Відсутні вхідні набори змін у %s" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "Надходження з %s припинено, код помилки %d" #, python-format msgid "Pulling from %s..." msgstr "Отримання з %s..." #, python-format msgid "Pull from %s completed" msgstr "Витягування з %s завершено" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "Витягування з %s скасовано, код помилки %d" msgid "Merge caused file conflicts" msgstr "Злиття призвело до конфліктів файлів" msgid "File conflicts need to be resolved" msgstr "Конфлікти в файлах повинні бути розв'язані" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "Знаходження вихідних наборів змін до %s..." #, python-format msgid "%d outgoing changesets to %s" msgstr "%d вихідний набір змін до %s" #, python-format msgid "No outgoing changesets to %s" msgstr "Вихідний набір змін до %s відсутній" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "Вивантаження до %s припинено, код помилки %d" msgid "Perforce pending..." msgstr "В очікуванні Perforce..." #, python-format msgid "%s (submitted)" msgstr "%s (представлений)" #, python-format msgid "%s (pending)" msgstr "%s (в очікуванні)" msgid "Unable to parse p4pending output" msgstr "Не можливо розібрати результат p4pending" #, python-format msgid "%d pending changelists found" msgstr "знайдено очікуваний набір змін %d" msgid "No pending Perforce changelists" msgstr "Не очікуваний Perforce набір змін" msgid "Aborted p4pending" msgstr "Припинено p4pending" msgid "Unable to determine pending changesets" msgstr "Неможливо визначити набір змін" msgid "Confirm Push to remote Repository" msgstr "Підтвердіть виштовхування до зовнішнього сховища" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" "Виштовхнути до зовнішнього сховища\n" "%s\n" "?" #, python-format msgid "Push to %s aborted" msgstr "Виштовхування до %s скасовано" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" "Помилка типового шляху виштовхування правки: %s. Будь ласка, перевірте " "налаштування Mercurial (tortoisehg.defaultpush)" #, python-format msgid "Pushing to %s..." msgstr "Виштовхнути до %s..." #, python-format msgid "Push to %s completed" msgstr "Виштовхнуто до %s. Завершено" #, python-format msgid "Push to %s aborted, ret %d" msgstr "Виштовхування до %s скасовано, код помилки %d" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" "Деякі з наборів змін, які Ви пробуєте виштовхнути, викличуть створення нової " "гілки. Ви дійсно бажаєте створити нову гілку у зовнішньому сховищі?" msgid "Determining outgoing changesets to email..." msgstr "Визначення вихідних наборів змін для відправки поштою..." msgid "No outgoing changesets" msgstr "Відсутні вихідні набори змін" #, python-format msgid "Outgoing aborted, ret %d" msgstr "Вивантаження припинено, код помилки %d" msgid "Select bundle file" msgstr "Виберіть запакований файл" msgid "Bundle files (*.hg)" msgstr "Запаковані файли (*.hg)" msgid "Unable to remove URL" msgstr "Неможливо вилучити URL" msgid "Post Pull Behavior" msgstr "Поведінка після витягування" msgid "Select post-pull operation for this repository" msgstr "Оберіть дії після витягування для цього сховища" msgid "None - simply pull changesets" msgstr "Нічого - просто витягнути набір змін" msgid "Update - pull, then try to update" msgstr "Поновити - витягнути, потім спробувати поновити" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "Залити - використати заливання (автоматично злити отримані зміни)" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "Залити - використати додаток fetch (fetch не активне!)" msgid "Rebase - rebase local commits above pulled changes" msgstr "" "Перебазування - зміна бази місця фіксацій через перетягування вгору змін" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "UpdateOrRebase - витягнути, далі спрбувати поновити або перебазувати" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "" "Перебазування - використовує додаток перебазування (перебазування не " "активне!)" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "" "UpdateOrRebase - використовувати додаток перебазування (перебазування не " "активне!)" msgid "Launch settings tool..." msgstr "Запуск знаряддя налаштувань..." msgid "Unable to save post pull operation" msgstr "Збереження неможливо після операції витягування" msgid "Save Path" msgstr "Зберегти шлях" msgid "Alias" msgstr "Аліас" msgid "URL" msgstr "URL" msgid "Remove authentication data from URL" msgstr "Вилучення даних аутентифікації з URL" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" "Інформація аутентифікації користувача повинна сполучатися з назвою вузла у " "діалозі безпеки." msgid "Update subrepo paths" msgstr "Поновити шляхи підсховищ" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" "Поновити або створити псевдонім шляху, який викликатиме '%s' як одне з " "підсховищ, наразі використовуючи URL як основний URL додавши назву місцевого " "відносно шляху до його підсховища" msgid "Unable to save an URL" msgstr "Зберегти URL не вдається" msgid "Confirm URL replace" msgstr "Підтвердіть заміну URL" #, python-format msgid "%s already exists, replace URL?" msgstr "%s вже існує, замінити URL?" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

                                                                                                      %s

                                                                                                      Replace it with the " "following URL?:

                                                                                                      %s" msgstr "" "Підсховище '%s' має нетиповий URL обміну:

                                                                                                      %s

                                                                                                      Замінити його наступним " "URL?:

                                                                                                      %s" msgid "Security: " msgstr "Безпека: " #, python-format msgid "Host: %s" msgstr "Вузол: %s" msgid "Secure HTTPS Connection" msgstr "Шифроване HTTPS з'єднання" msgid "Verify with Certificate Authority certificates (best)" msgstr "Звіряти з сертифікатом (найкраще)" msgid "Verify with stored host fingerprint (good)" msgstr "Звірити із збереженим цифрового сертифікату (добре)" msgid "No host validation, but still encrypted (bad)" msgstr "Перевірка відсутня, але шифрується (погано)" msgid "### host certificate fingerprint ###" msgstr "### вузол сертифікату відбитків пальців ###" msgid "Query" msgstr "Запит" msgid "TLS 1.0" msgstr "" msgid "TLS 1.1" msgstr "" msgid "TLS 1.2" msgstr "" msgid "Minimum Protocol" msgstr "" msgid "User Authentication" msgstr "Аутентифікація користувача" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" "Не обов'язково. Ім'я користувача для аутентифікації. Якщо не визначено, і " "зовнішній\n" "сайт вимагає повноцінної або скороченої аутентифікації, користувачеві буде " "запропоновано пройти\n" "її. Змінні оточення оброблятимуться від імені користувача дозволяючи вам " "робити\n" "foo.username = $USER." msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" "Не обов'язково. Пароль аутентифікації. Якщо не вказаний, а зовнішній\n" "сайт вимагає повноцінної або скороченої аутентифікації, користувачу\n" "буде запропоновано пройти її." msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" "Увімкений додаток Mercurial keyring. Паролі будуть зберагатись безпечним " "методом, в залежності від платформи." msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" "Не обов'язково. Файл ключа сертификату користувача, в кодуванні PEM.\n" "В назві файлу можна використовувати змінні середовища." msgid "User Certificate Key" msgstr "Ключ сертифікат користувача" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" "Не обяв'язково. Ланцюг файл сертификату користувача, в кодуванні PEM.\n" "В назві файлу можна використовувати змінні середовища." msgid "User Certificate Chain" msgstr "Скріпити сертифікат користувача" msgid "Certificate Query Error" msgstr "Помилка запиту сертифікату" msgid "Select User Certificate Key File" msgstr "Обрати файл з ключем сертифікато користувача" msgid "PEM files (*.pem *.key)" msgstr "PEM файли (*.pem *.key)" msgid "Select User Certificate Chain File" msgstr "Обрати файл ланцюга сертифікатів користувача" msgid "PEM files (*.pem *.crt *.cer)" msgstr "PEM файли (*.pem *.crt *.cer)" msgid "Unable to save authentication" msgstr "Не можливо зберегти аутентифікацію" #, python-format msgid "%s - sync options" msgstr "%s - параметри обміну" msgid "Allow push of a new branch (--new-branch)" msgstr "Дозволити виштовхувати з нової гілки (--new-branch)" msgid "Force push or pull (override safety checks, --force)" msgstr "" "Примусово виштовхувати або витягувати (нехтуючи перевіркою надійності, --" "force)" msgid "Temporarily disable configured HTTP proxy" msgstr "Тимчасово вимкнути налаштування HTTP-проксі" msgid "Emit debugging output (--debug)" msgstr "Видати результат налагодження (--debug)" msgid "Work on patch queue (--mq)" msgstr "Працювати на черзі латок (--mq)" #, python-format msgid "Tag - %s" msgstr "Зріз - %s" msgid "Tag:" msgstr "Зріз:" msgid "Tagged:" msgstr "Зрізано:" msgid "Local tag" msgstr "Локальний зріз" msgid "Replace existing tag (-f/--force)" msgstr "Замінити існуючий зріз (-f/--force)" msgid "Use English commit message" msgstr "Використовувати англомовні повідомлення фіксації" msgid "local" msgstr "локальна" msgid "Move" msgstr "Перемістити" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "Перемістити зріз %s в набір змін %s (з набору змін %s)" #, python-format msgid "Added tag %s for changeset %s" msgstr "Додано зріз %s для набору змін %s" #, python-format msgid "Tag '%s' has been moved" msgstr "Зріз '%s' був переміщений" #, python-format msgid "Tag '%s' has been added" msgstr "Зріз '%s' було додано" #, python-format msgid "Removed tag %s" msgstr "Вилучино зріз %s" #, python-format msgid "Tag '%s' has been removed" msgstr "Зріз '%s' був вилучений" msgid "Patch files (*.diff *.patch)" msgstr "Файли латок (*.diff *.patch)" #, python-format msgid "Import - %s" msgstr "Імпортувати - %s" msgid "Browse Directory..." msgstr "Переглянути каталог..." msgid "Import from Clipboard" msgstr "Імпортувати з буферу обміну" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "Не розрізати шляхи (-p0), вимогати для SVN латок" msgid "Preview:" msgstr "Попередній перегляд:" msgid "Shelf" msgstr "Поличка" msgid "Checking working directory status..." msgstr "Перевіряємо стан робочого каталогу..." msgid "&Import" msgstr "Імпортувати" msgid "Working directory is not clean! View changes..." msgstr "" "Робочий каталог не порожній! Переглянути зміни..." msgid "Select patches" msgstr "Обрані латки" msgid "Select Directory containing patches" msgstr "Оберіть каталог з латками" #, python-format msgid "%s patches" msgstr "%s латки" #, python-format msgid "%s will be imported to " msgstr "%s буде імпортовано до " msgid "Nothing to import" msgstr "Нічого імпортувати" msgid "Strip:" msgstr "Розрізати:" msgid "Discard local changes, no backup (-f/--force)" msgstr "Відмінити локальні зміни, без резервної копії (-f/--force)" msgid "No backup (-n/--nobackup)" msgstr "Без резервної копії (-n/--nobackup)" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "Не змінюйте робочу копію протягом розрізання (-k/--keep)" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "%d набір змін буде порізаний" msgstr[1] "%d наборів змін будуть порізані" msgstr[2] "%d набори змін будуть порізані" msgid "Unknown revision!" msgstr "Невідома правка!" msgid "Detected uncommitted local changes." msgstr "Наявні незафіксовані локальні зміни." msgid "Do you want to keep them or discard them?" msgstr "Ви бажаєте отримати їх або відмовитись від них?" msgid "&Keep (--keep)" msgstr "Утримати (--keep)" msgid "&Discard (--force)" msgstr "Відхилити (--force)" msgid "Confirm Strip" msgstr "Підтвердіть розрізання" #, python-format msgid "Strip - %s" msgstr "Розрізати - %s" msgid "&Strip" msgstr "Розрізати" msgid "Topic:" msgstr "" msgid "&Rename" msgstr "" #, python-format msgid "Topic - %s" msgstr "" #, python-format msgid "A topic named \"%s\" already exists" msgstr "" #, python-format msgid "Topic '%s' has been added" msgstr "" #, python-format msgid "Topic '%s' does not exist" msgstr "" #, python-format msgid "Topic '%s' has been removed" msgstr "" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "" msgid "Parent 1:" msgstr "Попередник 1:" msgid "Parent 2:" msgstr "Попередник 2:" msgid "Pull subrepos from:" msgstr "Витягнути підсховище з:" msgid "List updated files (--verbose)" msgstr "Перелік оновлених файлів (--verbose)" msgid "Discard local changes, no backup (-C/--clean)" msgstr "Відкинути поточні зміни, резервна копія відсутня (-C/--clean)" msgid "Always merge (when possible)" msgstr "Завжди зливати (за можливістю)" msgid "(same as parent)" msgstr "(така же, як і попередня)" msgid "Activate bookmark?" msgstr "Задіяти закладки?" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

                                                                                                      Do " "you want to activate it?
                                                                                                      You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" "Обрана правка (%s) має закладку із назвою \"%s\".

                                                                                                      Ви бажаєте " "увімкнути її?
                                                                                                      Ви можете відключити цей рядок в Налаштування/" "Середовище/Увімкнути закладки" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

                                                                                                      Select " "the bookmark that you want to activate and click OK.

                                                                                                      Click " "Cancel if you don't want to activate any of them.

                                                                                                      You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                                                                      " msgstr "" "Для обраної правки (%s) є %d закладок.

                                                                                                      Оберіть закладку, яку " "Ви бажаєте активувати та клацніть Гаразд.

                                                                                                      Клацніть Відмова " "якщо Ви активуватиме її згодом.

                                                                                                      Ви можете вимкнути це повідомлення " "налаштувавши Налаштування/Середовище/Активація закладок

                                                                                                      " msgid "Deactivate current bookmark?" msgstr "Вимкнути поточну закладку?" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "Ви дійсно бажаєте вимкнути закладку %s?" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" "Знайдено незафіксовані локальні зміни.\n" "Будь ласка, оберіть продовження:\n" msgid "Discard - discard local changes, no backup" msgstr "Відкинути - відкинути локальні зміни, без резервної копії" msgid "&Shelve" msgstr "Відкладати" msgid "Shelve - move local changes to a patch" msgstr "Відкладати - перемістити локальні зміни до латки" msgid "Merge - allow to merge with local changes" msgstr "Злиття - дозволяти зливати з локальними змінами" msgid "Confirm Update" msgstr "Підтвердіть поновлення" #, python-format msgid "Update - %s" msgstr "Поновити - %s" msgid "[non-existant]" msgstr "[non-existant]" msgid "Tool launch failure" msgstr "Помилка запуску знаряддя" #, python-format msgid "%s : %s" msgstr "%s : %s" msgid "No diff tool found" msgstr "Не знайдено знаряддя порівняння" msgid "No visual diff tools were detected" msgstr "Не виявлено відмінностей у візуальному знарядді порівнянь" msgid "[working copy]" msgstr "[робоча копія]" msgid "[original]" msgstr "[оригінал]" msgid "Unable to find changeset" msgstr "Неможливо знайти набір змін" msgid "You likely need to refresh this application" msgstr "Вам, ймовірно, потрібно перезавантажити цей додаток" msgid "No file changes" msgstr "Відсутні файли змін" msgid "There are no file changes to view" msgstr "У файлах відсутні зміни" msgid "working changes" msgstr "робочі зміни" #, python-format msgid "changeset %d:%s" msgstr "набір змін %d:%s" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "модифікації з %d:%s до %d:%s" msgid "Visual Diffs - " msgstr "Відмінності - " msgid " filtered" msgstr " фільтрований" msgid "Temporary files are removed when this dialog is closed" msgstr "Вилучати тимчасові файли, коли закривається діалог" msgid "Select Tool:" msgstr "Обране знаряддя:" msgid "Dir diff to p1" msgstr "Різниця каталогу до p1" msgid "Dir diff to p2" msgstr "Різниця каталогу до p2" msgid "3-way dir diff" msgstr "Сторонні засоби порівняння каталогів" msgid "Directory diff" msgstr "Порівняння каталогу" msgid "Confirm Discard" msgstr "Підтвердити відмову" msgid "Discard outstanding changes to working directory?" msgstr "Відмовитись від змін у робочому каталозі?" msgid "Config files (*.conf *.config *.ini)" msgstr "Файли налаштувань (*.conf *.config *.ini)" msgid "Open hgweb config" msgstr "Відкрити налаштування hgweb" msgid "Save hgweb config" msgstr "Зберегти налаштування hgweb" msgid "Path:" msgstr "Шлях:" msgid "Local Path:" msgstr "Локальних шлях:" msgid "Select Repository" msgstr "Оберіть сховище" msgid "Add Path to Serve" msgstr "Додати шлях до Serve" msgid "Edit Path to Serve" msgstr "Правити шлях до Serve" msgid "Local Path" msgstr "Локальний шлях" msgid "Webconf" msgstr "Webconf" msgid "Config File:" msgstr "Налаштування файла:" msgid "Open" msgstr "Відкрити" msgid "New &Workbench" msgstr "Середовище" msgid "&New Repository..." msgstr "Створити..." msgid "Clon&e Repository..." msgstr "Клонувати..." msgid "&Open Repository..." msgstr "Відкрити..." msgid "&File" msgstr "Файл" msgid "&View" msgstr "Вигляд" msgid "&Repository" msgstr "Сховище" msgid "&Help" msgstr "Довідка" msgid "&Dock Toolbar" msgstr "Стикувати пенал" msgid "&Task Toolbar" msgstr "Пенал завдань" msgid "&Custom Toolbar" msgstr "Пенал налаштувань" msgid "S&ync Toolbar" msgstr "Пенал синхронізації" msgid "&Close Repository" msgstr "Закрити" msgid "Sh&ow Repository Registry" msgstr "Перелік сховищ" msgid "Show &Patch Queue" msgstr "Черга латок" msgid "Show Conso&le" msgstr "Командний рядок" msgid "Place Console in Doc&k Area" msgstr "Місце консолі" msgid "R&epository Registry Options" msgstr "Налаштування списку сховищ" msgid "Save Open Repositories on E&xit" msgstr "Зберігати відкритими сховища на виході" msgid "Sa&ve Current Sync Paths on Exit" msgstr "Зберегати поточний обмін латками на виході" msgid "Show Tas&k Tab" msgstr "" msgid "&Commit" msgstr "Фіксувати" msgid "&Patch Branch" msgstr "Гілка Латок" msgid "Revision &Details" msgstr "Розлого про правку" msgid "&Search" msgstr "Пошук" msgid "S&ynchronize" msgstr "Синхронізувати" msgid "Refresh current repository" msgstr "Перезавантажити поточне сховище" msgid "Refresh &Task Tab" msgstr "Перезавантажити вкладку завдань" msgid "Refresh only the current task tab" msgstr "Перезавантажити лише поточну вкладку завдань" msgid "Load &All Revisions" msgstr "Завантажити всі правки" msgid "Load all revisions into graph" msgstr "Отримати всі правки графу" msgid "Go to current revision" msgstr "Перейти до поточної правки" msgid "&Goto Revision..." msgstr "Перейти до правки..." msgid "Go to a specific revision" msgstr "Перехід до вказаної правки" msgid "Filter graph with revision sets or branches" msgstr "Відфільтрувати граф за наборами правко або гілок" msgid "&Workbench Toolbars" msgstr "Пенал середовища" msgid "&Lock File..." msgstr "Заблокувати файл..." msgid "Lock or unlock files" msgstr "Заблокувати або розблокувати файли" msgid "Update working directory or switch revisions" msgstr "Поновити робочий каталог або перемкнути правки" msgid "&Shelve..." msgstr "Відклаcти..." msgid "&Import Patches..." msgstr "Імпортувати латки..." msgid "U&nbundle..." msgstr "Розпакувати..." msgid "&Merge..." msgstr "Злити..." msgid "Merge with the other head of the current branch" msgstr "Злиття з іншою головою поточної гілки" msgid "&Resolve..." msgstr "Розв'язати..." msgid "R&ollback/Undo..." msgstr "Відскочити/Скасувати..." msgid "&Purge..." msgstr "Очистити..." msgid "&Bisect..." msgstr "Половинити..." msgid "&Verify" msgstr "Перевірити" msgid "Re&cover" msgstr "Відновити" msgid "&Web Server" msgstr "Веб-сервер" msgid "E&xplorer Help" msgstr "Довідка провідника" msgid "&Readme" msgstr "Readme" msgid "About &Qt" msgstr "Про Qt" msgid "&About TortoiseHg" msgstr "Про TortoiseHg" msgid "&Incoming" msgstr "Вхідний" msgid "&Pull" msgstr "Витягнути" msgid "&Outgoing" msgstr "Вихідний" msgid "P&ush" msgstr "Виштовхнути" msgid "&Sync Bookmarks..." msgstr "Узгодити закладки..." #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" "витягнути: %s\n" "виштовхнути: %s" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" "Не налаштований шляхи обміну.\n" "Відкрийте Обмін та налаштуйте." msgid "Check for incoming changes" msgstr "Перевірити наявність вхідних змін" msgid "Pull incoming changes" msgstr "Витягнути наявні вхідні зміни" msgid "Detect outgoing changes" msgstr "Перевірити наявність вихідних змін" msgid "Push outgoing changes" msgstr "Виштовхнути вихідні зміни" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" "Перевірити вхідні зміни з \n" "%s" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" "Витягнути зміни з\n" "%s" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" "Визначити вихідні зміни до\n" "%s" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" "Виштовхнути зміни до\n" "%s" #, python-format msgid "Execute custom tool '%s'" msgstr "Виконати спеціальним знаряддям '%s'" msgid "Custom Toolbar &Settings" msgstr "Налаштування користувацького пеналу" msgid "TortoiseHg Workbench" msgstr "Середовище TortoiseHg" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "%s - Робоче середовище TortoiseHg - %s" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "%s - Робоче середовище TortoiseHg" msgid "Goto revision" msgstr "Перейти до правки" msgid "Enter revision identifier" msgstr "Вкажіть ідентифікатор правки" msgid "Select repository directory to open" msgstr "Обрати каталог сховища відкрити" msgid "README not configured" msgstr "README не налаштоване" msgid "" "A README file is not configured for the current repository.

                                                                                                      To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" "Файл README відсутній у поточному сховищі.

                                                                                                      Для створення файлу README для " "сховища, відкрийте файл налаштувань сховища, додайте ключ 'readme' до " "секції 'tortoisehg' та вкажіть назву файлу або URL до сховищ з README " "файлами." msgid "Issue Tracker Plugin Error" msgstr "Помилка в модулі Issue Tracker" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "Не встановлений СОМ об'єкт Tracker Plugin" msgid "This error will not be shown again until you restart the workbench" msgstr "Помилка не буде показуватись, доки ви не перезавантажете середовище" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "" "Помилка отримування повідомлення про фіксацію інформації з модуля Issue " "Tracker" msgid "Error executing \"commit finished\" trigger" msgstr "Помилка виконання \"commit finished\" перехоплювача" msgid "Cannot open Plugin Options dialog" msgstr "Неможливо відкрити діалог Налаштуваня Модулів" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "" msgid "[--insecure] [SOURCE]" msgstr "" #, python-format msgid "unsupported URL: %s" msgstr "непідтримуваний URL: %s" #, python-format msgid "%s certificate error: no certificate received" msgstr "%s помилка сертифікату: відсутній отримувач сертифікату" msgid "move after the specified patch" msgstr "перемістити після вказання латки" msgid "[--after PATCH] PATCH..." msgstr "[--after PATCH] PATCH..." msgid "unknown patch to move specified" msgstr "невідома латка вказана на переміщення" msgid "invalid patch position specified" msgstr "вказана помилкова позиція латки" msgid "cannot move applied patches" msgstr "не можливо перемістити прийняті латки" #, python-format msgid "patch %s not in series" msgstr "латка %s не в ряді" msgid "cannot move into applied patches" msgstr "не можливо перемістити в прийняті латки" msgid "abort: " msgstr "припинити: " msgid "hint: " msgstr "натяк: " #, python-format msgid "HTTP Error: %d (%s)" msgstr "Помилка HTTP: %d (%s)" #, python-format msgid "URLError: %s" msgstr "URLError: %s" msgid "SSL: Server certificate verify failed" msgstr "SSL: Помилка серверу перевірки сертифікатів" #, python-format msgid "SSL: unknown error %s:%s" msgstr "SSL: невідома помилка %s:%s" #, python-format msgid "SSL error: %s" msgstr "SSL помилка: %s" msgid "hgsubversion packaged with thg" msgstr "hgsubversion запакований з thg" msgid "hggit packaged with thg" msgstr "hggit запакований з thg" msgid "inotify is not supported on this platform" msgstr "inotify не підтримується на цій платформі" msgid "eol is incompatible with win32text" msgstr "eol є несумісним з win32text" msgid "win32text is incompatible with eol" msgstr "win32text є несумісним з eol" msgid "hgsubversion is incompatible with perfarce" msgstr "hgsubversion несумісна з perfarce" msgid "perfarce is incompatible with hgsubversion" msgstr "perfarce несумісна з hgsubversion" msgid "Workbench custom toolbar" msgstr "Середовище пеналів користувача" msgid "Revision details context menu" msgstr "Переглянути розлого контекстне меню" msgid "Pair selection context menu" msgstr "" msgid "Multiple selection context menu" msgstr "" msgid "Commit context menu" msgstr "Закінчити з контекстне меню" msgid "File context menu (on manifest and revision details)" msgstr "Файл контекстного меню (маніфест та розлого про правку)" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "%d рік" msgstr[1] "%d роки" msgstr[2] "%d років" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "%d місяць" msgstr[1] "%d місяці" msgstr[2] "%d місяців" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "%d тиждень" msgstr[1] "%d тижні" msgstr[2] "%d тижнів" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "%d доба" msgstr[1] "%d доби" msgstr[2] "%d діб" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "%d година" msgstr[1] "%d години" msgstr[2] "%d годин" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "%d хвилина" msgstr[1] "%d хвилини" msgstr[2] "%d хвилин" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d секунда" msgstr[1] "%d секунди" msgstr[2] "%d секунд" msgid "in the future" msgstr "в майбутньому" msgid "now" msgstr "зараз" #, python-format msgid "command parse error: %s" msgstr "помилка парсингу команди: %s" #, python-format msgid "no matches found: %s" msgstr "не знайдено збігів: %s" msgid "Commit..." msgstr "Фіксувати..." msgid "Commit changes in repository" msgstr "Фіксувати зміни в сховище" msgid "Create Repository Here" msgstr "Створити сховище тут" msgid "Create a new repository" msgstr "Створити нове сховище" msgid "Clone..." msgstr "Клонувати..." msgid "Create clone here from source" msgstr "Створити клон тут з джерела" msgid "File Status" msgstr "Стан файлу" msgid "Repository status & changes" msgstr "Стан та зміни у сховищі" msgid "Add Files..." msgstr "Додати файли..." msgid "Add files to version control" msgstr "Додати файли під контроль" msgid "Revert Files..." msgstr "Повернути файли..." msgid "Revert file changes" msgstr "Повернути файли змін" msgid "Forget Files..." msgstr "Забути файли..." msgid "Remove files from version control" msgstr "Вилучити файли з контролю версій" msgid "Remove Files..." msgstr "Вилучити файли..." msgid "Rename File" msgstr "Змінити назву файлу" msgid "Rename file or directory" msgstr "Змінити назву файлу або каталогу" msgid "View change history in repository" msgstr "Переглянути історію змін сховища" msgid "File History" msgstr "Файл історії" msgid "View change history of selected files" msgstr "Переглянути історію змін обраних файлів" msgid "Shelve Changes" msgstr "Відкласти зміни" msgid "Move changes between working dir and patch" msgstr "Переміщення змін між робочими каталогом та латкою" msgid "Synchronize" msgstr "Синхронізувати" msgid "Synchronize with remote repository" msgstr "Обмінятися із зовнішнім сховищем" msgid "Start web server for this repository" msgstr "Запуск веб сервера для цього сховища" msgid "Update..." msgstr "Поновити..." msgid "Update working directory" msgstr "Поновити робочий каталог" msgid "Update Icons" msgstr "Поновити значки" msgid "Update icons for this repository" msgstr "Поновити значки цього сховища" msgid "Global Settings" msgstr "Спільні налаштування" msgid "Configure user wide settings" msgstr "Налаштування параметрів користувача" msgid "Repository Settings" msgstr "Налаштування сховища" msgid "Configure repository settings" msgstr "Налаштувати параметри сховища" msgid "Explorer Extension Settings" msgstr "Налаштування розширення Провідника" msgid "Configure Explorer extension" msgstr "Налаштування додатків Провідника" msgid "About TortoiseHg" msgstr "Про TortoiseHg" msgid "Show About Dialog" msgstr "Відобразити вікно Про програму" msgid "Diff to parent" msgstr "Однорівнева різниця" msgid "View changes using GUI diff tool" msgstr "" "Переглянути зміни використовуючи знаряддя з графічним інтерфейсом користувача" msgid "Edit Ignore Filter" msgstr "Правити фільт виключень" msgid "Edit repository ignore filter" msgstr "Правити фільт виключень сховища" msgid "Guess Renames" msgstr "Припустити зміну назви" msgid "Detect renames and copies" msgstr "Виявити зміну назви та копії" msgid "Search History" msgstr "Пошук в історії" msgid "Search file revisions for patterns" msgstr "Пошук файлу правок для шаблону" msgid "DnD Synchronize" msgstr "DnD обмін" msgid "Synchronize with dragged repository" msgstr "Обмінятися з відсталим сховищем" #, python-format msgid "unrecognized response: %s" msgstr "нерозбірлива відповідь: %s" msgid "password: " msgstr "Пароль: " #, python-format msgid "repository %s not found" msgstr "сховище %s не знайдено" msgid "win32ill: cannot create window for messages" msgstr "win32ill: не можливо створити вікно повідомлення" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "win32ill: непідтримувана платформа: %s\n" msgid "win32ill: interrupted while stopping message loop\n" msgstr "win32ill: переривається коли зупиняється цикл повідомлення\n" #~ msgid "(version %s)" #~ msgstr "(версія %s)" #~ msgid "Clone" #~ msgstr "Клонувати" #~ msgid "Close current named branch" #~ msgstr "Закрити поточну названу гілку" #~ msgid "_Commit" #~ msgstr "_Фіксувати" #~ msgid "close branch: " #~ msgstr "закрити гілку: " #~ msgid "new branch: " #~ msgstr "нова гілка: " #~ msgid "commit" #~ msgstr "фіксувати" #~ msgid "_Remove" #~ msgstr "_Вилучити" #~ msgid "_Add" #~ msgstr "_Додати" #~ msgid "Re_vert" #~ msgstr "По_вернути" #~ msgid "Unable to create " #~ msgstr "Неможливо створити " #~ msgid "Unable to apply patch" #~ msgstr "Неможливо застосувати латку" #~ msgid "New Search" #~ msgstr "Новий пошук" #~ msgid "Start this search" #~ msgstr "Почати пошук" #~ msgid "Error: %s" #~ msgstr "Помилка: %s" #~ msgid "Abort: %s" #~ msgstr "Перервано: %s" #~ msgid "Invalid regular expression" #~ msgstr "Неприпустимий регулярний вираз" #~ msgid " Aborted" #~ msgstr " Перервано" #~ msgid "Save File" #~ msgstr "Зберегти файл" #~ msgid "Remove Selected" #~ msgstr "Вилучити вибране" #~ msgid "Filters" #~ msgstr "Фільтри" #~ msgid "Unknown Files" #~ msgstr "Невідомі файли" #~ msgid "Glob:" #~ msgstr "Маска:" #~ msgid "Make repo compatible with Mercurial 1.0" #~ msgstr "Створити сховище сумісне з Mercurial 1.0" #~ msgid "Add special files (.hgignore, ...)" #~ msgstr "Додати спеціальні файли (.hgignore, ...)" #~ msgid "Unable to create new repository" #~ msgstr "Неможливо створити нове сховище" #~ msgid "applying patch\n" #~ msgstr "прийняти латку\n" #~ msgid " [Ynsfdaq?] " #~ msgstr " [Ynsfdaq?] " #~ msgid " and " #~ msgstr " та " #~ msgid "shelve data already exists" #~ msgstr "відкладені дані вже існують" #~ msgid "overwrite existing shelve data" #~ msgstr "перезаписати існуючі відкладені дані" #~ msgid "hgtk: unknown command '%s'\n" #~ msgstr "hgtk: невідома команда '%s'\n" #~ msgid "hgtk: %s\n" #~ msgstr "hgtk: %s\n" #~ msgid "hgtk %s: %s\n" #~ msgstr "hgtk %s: %s\n" #~ msgid "with %s" #~ msgstr "з %s" #~ msgid "Changeset Description" #~ msgstr "Опис набору змін" #~ msgid "Backout" #~ msgstr "Відновити" #~ msgid "[All Files]" #~ msgstr "[Всі файли]" #~ msgid " %s is larger than the specified max diff size" #~ msgstr " %s перевищує максимальний розмір файлу відмінностей" #~ msgid "Toggle _Wordwrap" #~ msgstr "Переносити по словах" #~ msgid "Errors during rollback!" #~ msgstr "Помилки під час повернення!" #~ msgid "Open new search tab" #~ msgstr "Відкрити нову вкладку для пошуку" #~ msgid "Invalid path" #~ msgstr "Помилковий шлях" #~ msgid "Minimum Simularity Percentage" #~ msgstr "Мінімальний відсоток відповідності" #~ msgid "" #~ "== %s and %s have identical contents ==\n" #~ "\n" #~ msgstr "" #~ "== %s та %s однакові ==\n" #~ "\n" #~ msgid "this modifies a binary file (all or nothing)\n" #~ msgstr "це зміна двійкового файлу (все або нічого)\n" #~ msgid "this is a binary file\n" #~ msgstr "це двійковий файл\n" #~ msgid "unhandled transition: %s -> %s" #~ msgstr "необроблений перехід: %s -> %s" #~ msgid "restoring %r to %r\n" #~ msgstr "відновлюється %r до %r\n" #~ msgid "restoring backup files\n" #~ msgstr "відновити резервні файли\n" #~ msgid "response expected" #~ msgstr "очікується відповідь" #~ msgid "hg shelve [OPTION]... [FILE]..." #~ msgstr "hg shelve [ПАРАМЕТР]... [ФАЙЛ]..." #~ msgid "hg unshelve [OPTION]... [FILE]..." #~ msgstr "hg unshelve [ПАРАМЕТР]... [ФАЙЛ]..." #~ msgid "Rename error" #~ msgstr "Помилка зміни назви" #~ msgid "hgtk datamine" #~ msgstr "hgtk datamine" #~ msgid "hgtk about" #~ msgstr "Про hgtk" #~ msgid "hgtk commit [OPTIONS] [FILE]..." #~ msgstr "hgtk commit [ПАРАМЕТРИ] [ФАЙЛ]..." #~ msgid "limit number of changes displayed" #~ msgstr "обмеження на кількість змін, що відображаються" #~ msgid "hgtk recovery" #~ msgstr "hgtk recovery" #~ msgid "hgtk merge" #~ msgstr "hgtk merge" #~ msgid "hgtk hgignore [FILE]" #~ msgstr "hgtk hgignore [ФАЙЛ]" #~ msgid "hgtk log [OPTIONS] [FILE]" #~ msgstr "hgtk log [ПАРАМЕТРИ] [ФАЙЛ]" #~ msgid "hgtk synch" #~ msgstr "hgtk synch" #~ msgid "hgtk shelve" #~ msgstr "hgtk shelve" #~ msgid "hgtk serve [OPTION]..." #~ msgstr "hgtk serve [ПАРАМЕТРИ]..." #~ msgid "hgtk repoconfig" #~ msgstr "hgtk repoconfig" #~ msgid "hgtk guess" #~ msgstr "hgtk guess" #~ msgid "hgtk status [FILE]..." #~ msgstr "hgtk status [ФАЙЛ]..." #~ msgid "hgtk userconfig" #~ msgstr "hgtk userconfig" #~ msgid "hgtk remove [FILE]..." #~ msgstr "hgtk remove [ФАЙЛ]..." #~ msgid "udpate all repos in current dir" #~ msgstr "оновити всі сховища у поточному каталозі" #~ msgid "hgtk thgstatus [OPTION]" #~ msgstr "hgtk thgstatus [ПАРАМЕТРИ]" #~ msgid "hgtk version [OPTION]" #~ msgstr "hgtk version [ПАРАМЕТРИ]" #~ msgid "[-o] CMD" #~ msgstr "[-o] CMD" #~ msgid "_Filter" #~ msgstr "_Фільтр" #~ msgid "show the command options" #~ msgstr "переглянути параметри команди" #~ msgid "hgtk help [COMMAND]" #~ msgstr "hgtk help [КОМАНДА]" #~ msgid "Save patch to" #~ msgstr "Зберегти латку до" #~ msgid "ID" #~ msgstr "ID" #~ msgid "Undo" #~ msgstr "Скасувати" #~ msgid "Recover" #~ msgstr "Відновити" #~ msgid "Verify" #~ msgstr "Перевірити" #~ msgid "Clean repository '%s' ?" #~ msgstr "Очистити сховище '%s' ?" #~ msgid "Confirm clean repository" #~ msgstr "Підтвердіть очистку сховища" #~ msgid "Configure" #~ msgstr "Налаштувати" #~ msgid "Start server" #~ msgstr "Запуск серверу" #~ msgid "Stop server" #~ msgstr "Зупинка серверу" #~ msgid "rename error" #~ msgstr "помилка під час зміни назви" #~ msgid "Cannot run now" #~ msgstr "Неможливо виконати зараз" #~ msgid "Abort: %s\n" #~ msgstr "Перервати: %s\n" #~ msgid "Invalid port 2048..65535" #~ msgstr "Помилковий порт 2048..65535" #~ msgid "HTTP Port:" #~ msgstr "HTTP порт:" #~ msgid "hg serve [OPTION]..." #~ msgstr "hg serve [ПАРАМЕТРИ]..." #~ msgid "Save selected changes" #~ msgstr "Зберегти обрані зміни" #~ msgid "Save As" #~ msgstr "Зберегти як" #~ msgid "path" #~ msgstr "шлях" #~ msgid "ms" #~ msgstr "ms" #~ msgid "?: unknown" #~ msgstr "?: невідомий" #~ msgid "st" #~ msgstr "st" #~ msgid "Rename file to:" #~ msgstr "Змінити назву файлу на:" #~ msgid "Outgoing" #~ msgstr "Вихідні" #~ msgid "Nothing" #~ msgstr "Нічого" #~ msgid "Repo:" #~ msgstr "Сховище:" #~ msgid "Fetch" #~ msgstr "Отримати" #~ msgid "Incoming/Outgoing" #~ msgstr "Вхідні/Вихідні" #~ msgid "Folder" #~ msgstr "Тека" #~ msgid "Repository Path" #~ msgstr "Шлях до сховища" #~ msgid "No Repository Found" #~ msgstr "Не знайдено сховища" #~ msgid "History" #~ msgstr "Історія" #~ msgid "changeset " #~ msgstr "набір змін " #~ msgid "Cannot close now" #~ msgstr "Неможливо закрити зараз" #~ msgid "Launch browser to view repository" #~ msgstr "Запустити оглядач для перегляду сховища" #~ msgid "run server in background" #~ msgstr "сервер запущено у фоновому режимі" #~ msgid "listening at http://%s%s/%s (%s:%d)\n" #~ msgstr "слухати http://%s%s/%s (%s:%d)\n" #~ msgid "SSL certificate file" #~ msgstr "файл SSL сертіфікату" #~ msgid "web templates to use" #~ msgstr "web взірці, які використовуються" #~ msgid "use IPv6 in addition to IPv4" #~ msgstr "використовувати IPv6 на додаток до IPv4" #~ msgid "File is larger than the specified max size.\n" #~ msgstr "Файл перевищує максимально дозволений розмір.\n" #~ msgid "Move files to directory..." #~ msgstr "Перемістити файли до каталогу..." #~ msgid "Cannot move outside repo!" #~ msgstr "Переміщення за межі сховища не можливе!" #~ msgid "No addable files selected" #~ msgstr "Не обрано файлів для додавання" #~ msgid "unknown sort key '%s'" #~ msgstr "невідомий ключ сортування '%s'" #~ msgid "Highlight the taskbar icon during activity" #~ msgstr "Підсвічувати значок на панелі задач під час активності" #~ msgid "Bottom Diffs" #~ msgstr "Різниці знизу" #~ msgid "Fork hgtk" #~ msgstr "Зробити окрему гілку hgtk" #~ msgid "Maximum number of changes to list on the changelog." #~ msgstr "Максимальна кількість змін у переліку журналу змін." #~ msgid "Overwrite existing '%s' path?" #~ msgstr "Перезаписати існуючий '%s' шлях?" #~ msgid "Path testing cannot work without a repository" #~ msgstr "Перевірка шляху неможлива без сховища" #~ msgid "Skipped saving path with no alias" #~ msgstr "Шляхи без псевдонімів були відкинуті без збереження" #~ msgid "Suggested" #~ msgstr "Пропонується" #~ msgid "Visual Diffs" #~ msgstr "Наочні різниці" #~ msgid "Show line numbers" #~ msgstr "Показувати номери рядків" #~ msgid "All files" #~ msgstr "Всі файли" #~ msgid "Local Date" #~ msgstr "Місцевий час" #~ msgid "Universal Date" #~ msgstr "Світовий час" #~ msgid "used internally by daemon mode" #~ msgstr "використовувати у режимі демону (сервіс)" #~ msgid "All Files (*.*)" #~ msgstr "Всі файли (*.*)" #~ msgid "Save as.." #~ msgstr "Зберегти як..." #~ msgid "%s changeset " #~ msgstr "%s набір змін " #~ msgid "Advanced options" #~ msgstr "Додаткові параметри" #~ msgid "_View" #~ msgstr "_Вигляд" #~ msgid "Advanced" #~ msgstr "Додатково" #~ msgid "_Operations" #~ msgstr "_Операції" #~ msgid "_Forget" #~ msgstr "_Забути" #~ msgid "Loading history..." #~ msgstr "Завантаження історії..." #~ msgid "Contents" #~ msgstr "Зміст" #~ msgid "Select" #~ msgstr "Вибрати" #~ msgid "_Help" #~ msgstr "_Довідка" #~ msgid "unknown CmdWidget style: %s" #~ msgstr "невідомий CmdWidget стиль: %s" #~ msgid "Send emails" #~ msgstr "Надіслати emails" #~ msgid "Send" #~ msgstr "Надіслати" #~ msgid "hgtk forget [FILE]..." #~ msgstr "hgtk forget [ФАЙЛ]..." #~ msgid "Branch Name" #~ msgstr "Назва гілки" #~ msgid "Tags" #~ msgstr "Мітки" #~ msgid "Changeset ID" #~ msgstr "ID набору змін" #~ msgid "Keywords" #~ msgstr "Ключові слова" #~ msgid "Reject" #~ msgstr "Відхилити" #~ msgid "Rename " #~ msgstr "Зміна назви " #~ msgid "https" #~ msgstr "https" #~ msgid "http" #~ msgstr "http" #~ msgid "ssh" #~ msgstr "ssh" #~ msgid "#" #~ msgstr "#" #~ msgid "Show 'qparent'" #~ msgstr "Показувати 'qparent'" #~ msgid "Cloned successfully" #~ msgstr "Успішно клоновано" #~ msgid "Recent commit messages..." #~ msgstr "Нове повідомлення про фіксацію..." #~ msgid "Lang \"%s\" can not be set.\n" #~ msgstr "Мова \"%s\" не може бути встановлена.\n" #~ msgid "[command returned code %d " #~ msgstr "[команда повернула код %d " #~ msgid "[command completed successfully " #~ msgstr "[команда успішно виконана " #~ msgid "hgtk revert [FILE]..." #~ msgstr "hgtk revert [ФАЙЛ]..." #~ msgid "Accept new Changesets" #~ msgstr "Прийняти новий набір змін" #~ msgid "Sync Bar" #~ msgstr "Sync Bar" #~ msgid "Reset Marks" #~ msgstr "Скинути знаки" #~ msgid "Color by Branch" #~ msgstr "Колір по гілці" #~ msgid "Email..." #~ msgstr "Електронна пошта..." #~ msgid "Filter" #~ msgstr "Фільтр" #~ msgid "Branch '%s'" #~ msgstr "Гілка '%s'" #~ msgid "%s branch" #~ msgstr "%s гілка" #~ msgid "working parents" #~ msgstr "робочі попередники" #~ msgid "Di_splay Change" #~ msgstr "Відобразити зміну" #~ msgid "_Export Patch..." #~ msgstr "_Експорт латки..." #~ msgid "_Archive..." #~ msgstr "_Архів..." #~ msgid "Confirm Revert All Files" #~ msgstr "Підтвердіть повернення всіх файлів" #~ msgid "Save patches to" #~ msgstr "Записати латки до" #~ msgid "Successfully" #~ msgstr "Успішно" #~ msgid "Failed" #~ msgstr "Невдало" #~ msgid "Canceled" #~ msgstr "Скасовано" #~ msgid "Nothing Diffed" #~ msgstr "Нічого порівнювати" #~ msgid "Nothing Forgotten" #~ msgstr "Нічого не забули" #~ msgid "Rename..." #~ msgstr "Змінити назву..." #~ msgid "_Copy..." #~ msgstr "_Копіювати..." #~ msgid "_Ignore" #~ msgstr "_Ігнорувати" #~ msgid "Show newest first" #~ msgstr "Нові показувати першими" #~ msgid "URL Details" #~ msgstr "URL подробиці" #~ msgid "_rename" #~ msgstr "_зміна назви" #~ msgid "Open..." #~ msgstr "Відкрити..." #~ msgid "Toggle all selections" #~ msgstr "Перемикання всіх призначень" #~ msgid " - qnew" #~ msgstr " - швидкі новини" #~ msgid "Branches..." #~ msgstr "Гілки..." #~ msgid "Compact Graph" #~ msgstr "Компактний графік" #~ msgid "Branch Filter" #~ msgstr "Фільтр гілки" #~ msgid "Use Expander" #~ msgstr "Використовувати розширення" #~ msgid "Ancestry" #~ msgstr "Походження" #~ msgid "Select a peer repository to compare with" #~ msgstr "Оберіть сховище для порівняння з" #~ msgid "Outstanding uncommitted changes" #~ msgstr "Значні незавершені зміни" #~ msgid "Stop the hg operation" #~ msgstr "Зупинити дії hg" #~ msgid "cannot start server: " #~ msgstr "не можливо запустити сервер: " #~ msgid "Add checked files" #~ msgstr "Додати перевірені файли" #~ msgid "Revert checked files" #~ msgstr "Повернути перевірені файли" #~ msgid "Nothing Removed" #~ msgstr "Нічого вилучати" #~ msgid "View '%s'" #~ msgstr "Відкрити '%s'" #~ msgid "No clean files selected" #~ msgstr "Вибрані файли не чисті" #~ msgid "_Guess Rename..." #~ msgstr "_Guess зміна назви..." #~ msgid "_File History" #~ msgstr "_Файл історії" #~ msgid "_Annotate File" #~ msgstr "_Файл заголовку" #~ msgid "Branch Operations" #~ msgstr "Дії над гілками" #~ msgid "Patch Preview" #~ msgstr "Попередній перегляд латки" #~ msgid "Paste _Filenames" #~ msgstr "Вставити _назви файлів" #~ msgid "No regular expression given" #~ msgstr "Не задано регулярний вираз" #~ msgid "You must provide a search expression" #~ msgstr "Ви повинні вказати вираз для пошуку" #~ msgid "Search %d" #~ msgstr "Знайти %d" #~ msgid "Recovery" #~ msgstr "Відновити" #~ msgid "Accept Match" #~ msgstr "Прийняти збіг" #~ msgid "Find Copies" #~ msgstr "Знайти копії" #~ msgid "Toggle log window" #~ msgstr "Перемикання вікна журналу" #~ msgid "Command Log" #~ msgstr "Журнал команд" #~ msgid "Envelope" #~ msgstr "Обгортка" #~ msgid "Email Mercurial Patches" #~ msgstr "Email Mercurial латки" #~ msgid "You must specify a sender address" #~ msgstr "Ви повинні вказати адресу відправника" #~ msgid "You must specify a recipient" #~ msgstr "Ви повинні вказати отримувача" #~ msgid "rename takes one or two path arguments" #~ msgstr "зміна назви вимагає одного або двох аргументів" #~ msgid "hgtk add [FILE]..." #~ msgstr "hgtk add [ФАЙЛ]..." #~ msgid "Columns" #~ msgstr "Стовпці" #~ msgid "Move Up" #~ msgstr "Підняти" #~ msgid "Move Down" #~ msgstr "Опустити" #~ msgid "Re_fresh" #~ msgstr "О_новити" #~ msgid "Toolbar" #~ msgstr "Пенал" #~ msgid "Choose Details..." #~ msgstr "Вибрати..." #~ msgid "Ignore Max Diff Size" #~ msgstr "Не зважати на максимальний розмір різниць" #~ msgid "Working Parent" #~ msgstr "Робочий попередник" #~ msgid "Summary" #~ msgstr "Зведення" #~ msgid "Determine and mark outgoing changesets" #~ msgstr "Визначити та відмітити вихідні набори змін" #~ msgid "Accept incoming previewed changesets" #~ msgstr "Прийняти вхідні, попередньо переглянуті, набори змін" #~ msgid "Reject incoming previewed changesets" #~ msgstr "Відхилити вхідні, попередньо переглянуті, набори змін" #~ msgid "_Diff with selected" #~ msgstr "_У порівнянні з" #~ msgid "No repository selected" #~ msgstr "Не обрано сховищ" #~ msgid "Select files to add" #~ msgstr "Вибрати файли для додавання" #~ msgid "Select files to forget" #~ msgstr "Зневажати вибрані файли" #~ msgid "Select files to remove" #~ msgstr "Вилучити вибрані файли" #~ msgid "Select files to revert" #~ msgstr "Повернути вибрані файли" #~ msgid "%s - recovery" #~ msgstr "%s - відновлення" #~ msgid "Validate repository consistency" #~ msgstr "Перевірити сховище на цілісність" #~ msgid "command is running" #~ msgstr "команда виконується" #~ msgid "Confirm Really Exit?" #~ msgstr "Підтвердіть реальність виходу?" #~ msgid "address to use" #~ msgstr "використовується адреса" #~ msgid "%d selected, %d total" #~ msgstr "%d вибрано, %d загалом" #~ msgid "Nothing Added" #~ msgstr "Нічого не додано" #~ msgid "No removable files selected" #~ msgstr "Вибрано файли, які неможливо змінювати" #~ msgid "Configure peer repository paths" #~ msgstr "Налаштувати шляхи до сховищ" #~ msgid "Advanced Options" #~ msgstr "Додаткові параметри" #~ msgid "Enable overlays" #~ msgstr "Застосувати позначки" #~ msgid "Unapply last patch" #~ msgstr "Відхилити останню латку" #~ msgid "Shelf Contents" #~ msgstr "Вміст полички" #~ msgid "Backup unrelated changesets (-b/--backup)" #~ msgstr "Резервна копія пов'язаних наборів змінs (-b/--backup)" #~ msgid "invalid dialog result: %s" #~ msgstr "недійсні результати діалогу: %s" #~ msgid "Canceled updating" #~ msgstr "Поновлення скасовано" #~ msgid "Failed to update" #~ msgstr "Не вдалося оновити" #~ msgid "Unsupported line endings type: %s" #~ msgstr "Непідтримуваний тип закінчення рядків: %s" #~ msgid "backup %r as %r\n" #~ msgstr "резервна копія %r як %r\n" #~ msgid "removing shelved patches\n" #~ msgstr "видалити відкладені латки\n" #~ msgid "removing shelve file\n" #~ msgstr "видалення відкладеного файлу\n" #~ msgid "Repository Explorer" #~ msgstr "Оглядач сховища" #~ msgid "TortoiseHg Init" #~ msgstr "TortoiseHg Init" #~ msgid "unknown mode name: %s" #~ msgstr "невідома назва форми: %s" #~ msgid "No committable files selected" #~ msgstr "Не можливо фіксувати, вибрані файли" #~ msgid "Message format configuration error" #~ msgstr "Помилка налаштування формату повідомлення" #~ msgid "Message format needs to be configured" #~ msgstr "Формат повідомлення повинен бути налаштований" #~ msgid "Unable to annotate " #~ msgstr "Опис відсутній " #~ msgid " Messages and Errors" #~ msgstr " Повідомлення та помилки" #~ msgid "invalid state" #~ msgstr "неприйнятний стан" #~ msgid "Close this" #~ msgstr "Закрити" #~ msgid "Stop transaction" #~ msgstr "Зупинити дію" #~ msgid "Email outgoing changes" #~ msgstr "Відправити вихідні зміни поштою" #~ msgid "You must configure SMTP" #~ msgstr "Ви повинні налаштувати SMTP" #~ msgid "" #~ "hgtk: command '%s' is ambiguous:\n" #~ " %s\n" #~ msgstr "" #~ "hgtk: команда '%s' є неоднозначною:\n" #~ " %s\n" #~ msgid "use \"hgtk help\" for the full list of commands" #~ msgstr "виконайте \"hgtk help\" для повного переліку команд" #~ msgid "" #~ "use \"hgtk help\" for the full list of commands or \"hgtk -v\" for details" #~ msgstr "" #~ "виконайте \"hgtk help\" для повного переліку команд або \"hgtk -v\" для " #~ "деталей" #~ msgid "(No help text available)" #~ msgstr "(Довідка відсутня)" #~ msgid "Old name:" #~ msgstr "Стара назва:" #~ msgid "Bookmark \"%s\" has been added" #~ msgstr "Закладка \"%s\" була додана" #~ msgid "Unable to save file" #~ msgstr "Неможливо зберегти файл" #~ msgid "type" #~ msgstr "тип" #~ msgid "Branches" #~ msgstr "Гілки" #~ msgid "Configure Paths..." #~ msgstr "Налаштувати шляхи..." #~ msgid "Import..." #~ msgstr "Імпорт..." #~ msgid "Submitted" #~ msgstr "Надіслано" #~ msgid "'%s' filter:" #~ msgstr "'%s' фільтр:" #~ msgid "Changes" #~ msgstr "Зміни" #~ msgid "Tag" #~ msgstr "Мітка" #~ msgid "Rename Bookmark..." #~ msgstr "Перейменувати закладку..." #~ msgid "Font" #~ msgstr "Шрифт" #~ msgid "Canceled importing" #~ msgstr "Імпорт скасовано" #~ msgid "Confirm Close" #~ msgstr "Підтвердити закриття" #~ msgid "_Rename" #~ msgstr "_Змінити назву" #~ msgid "_Goto" #~ msgstr "Перейти" #~ msgid "file %s already exists\n" #~ msgstr "файл %s вже існує\n" #~ msgid "Bookmark \"%s\" has been moved" #~ msgstr "Закладка \"%s\" переміщена" #~ msgid "Bookmark \"%s\" has been renamed to \"%s\"" #~ msgstr "Назва закладки \"%s\" була змінена на \"%s\"" #~ msgid "%s does not exist\n" #~ msgstr "%s не існує\n" #~ msgid "Mercurial bundles" #~ msgstr "Пакунки Mercurial" #~ msgid "Aborted committing" #~ msgstr "Фіксація перервана" #~ msgid "hgtk shellconfig" #~ msgstr "hgtk shellconfig" #~ msgid "hgtk import [OPTION] [SOURCE]..." #~ msgstr "hgtk import [ПАРАМЕТРИ] [ДЖЕРЕЛО]..." #~ msgid "Identify" #~ msgstr "Ідентифікація" #~ msgid "Skip Testing" #~ msgstr "Пропустити тестування" #~ msgid "Aborted importing" #~ msgstr "Імпорт перервано" #~ msgid "Failed to import" #~ msgstr "Помилка під час імпорту" #~ msgid "Diff Text" #~ msgstr "Diff Text" #~ msgid "Japanese on Windows" #~ msgstr "Japanese on Windows" #~ msgid "Aborted incoming" #~ msgstr "Перервано вхідні" #~ msgid "_Perforce" #~ msgstr "_Вимушено" #~ msgid "Previously Selected" #~ msgstr "Раніше вибрані" #~ msgid "Stop current transaction" #~ msgstr "Зупинити поточну дію" #~ msgid "Import patches" #~ msgstr "Імпорт латок" #~ msgid "Checking incoming changesets..." #~ msgstr "Перевірка наявності вхідних змін..." #~ msgid "%d incoming changesets" #~ msgstr "%d вхідних змін" #~ msgid "Failed to archive" #~ msgstr "Помилки під час архівації" #~ msgid "Bookmarking completed" #~ msgstr "Встановлення закладок завершено" #~ msgid "No bookmark named \"%s\" exists" #~ msgstr "Закладки з назвою \"%s\" не існує" #~ msgid "a bookmark named \"%s\" already exists" #~ msgstr "закладка з назвою \"%s\" вже існує" #~ msgid "undo recent commit" #~ msgstr "скасувати останню фіксацію" #~ msgid "Status: %s" #~ msgstr "Стан: %s" #~ msgid "unable to clean temp directory: %s\n" #~ msgstr "неможливо очистити тимчасовий каталог: %s\n" #~ msgid "Annotate" #~ msgstr "Примітка" #~ msgid "St" #~ msgstr "St" #~ msgid "removing backup file : %r\n" #~ msgstr "видалити резервну копію файла : %r\n" #~ msgid "Undo Commit" #~ msgstr "Скасувати фіксацію" #~ msgid "App_ly Format" #~ msgstr "За_стосування формату" #~ msgid "C_onfigure Format..." #~ msgstr "На_лаштування формату..." #~ msgid "Selecting %(sel)d, displaying %(count)d of %(total)d items" #~ msgstr "Обрано %(sel)d, відображати %(count)d з %(total)d елементів" #~ msgid "Selecting %(sel)d of %(total)d, displaying all items" #~ msgstr "Обрано %(sel)d з %(total)d, відображати всі елементи" #~ msgid "_Zoom to Change" #~ msgstr "_Масштаб змін" #~ msgid "_Annotate Parent" #~ msgstr "_Коментувати попередників" #~ msgid "Search \"%s\"" #~ msgstr "Шукати \"%s\"" #~ msgid "Matches" #~ msgstr "Збіги" #~ msgid "Serve" #~ msgstr "Сервер" #~ msgid "making snapshot of %d files from rev %s\n" #~ msgstr "створення зрізу %d з файлів ред. %s\n" #~ msgid "Select Folder" #~ msgstr "Вибрати теку" #~ msgid "Info required" #~ msgstr "Информація обов'язкова" #~ msgid "mpatch expects *.rej file argument\n" #~ msgstr "mpatch очікує *.rej файл аргументів\n" #~ msgid "import to the repository" #~ msgstr "завантажити у сховище" #~ msgid "Custom Filter" #~ msgstr "Користувальницький фільтр" #~ msgid "Reset _Marks" #~ msgstr "Скинути _Знаки" #~ msgid "Launch web server" #~ msgstr "Запуск web server" #~ msgid "Pending" #~ msgstr "Очікує" #~ msgid "Accept Bundle" #~ msgstr "Прийняти пакунок" #~ msgid "Reject Bundle" #~ msgstr "Відхилити пакунок" #~ msgid "_Synchronize" #~ msgstr "_Звіряти" #~ msgid "Incoming" #~ msgstr "Надходження" #~ msgid "Custom" #~ msgstr "Користувацький" #~ msgid "Unable to find rev %s" #~ msgstr "Неможливо знайти ред. %s" #~ msgid "Finding pending Perforce changelists..." #~ msgstr "Пошук в очікуванні Perforce набору змін..." #~ msgid "Pending Perforce changelists" #~ msgstr "Очікування Perforce набору змін" #~ msgid "Perforce changelist %s" #~ msgstr "Perforce набір змін %s" #~ msgid "Aborted p4identify" #~ msgstr "Перервано p4identify" #~ msgid "_Revert" #~ msgstr "Відновити" #~ msgid "Export" #~ msgstr "Експортувати" #~ msgid "Reset" #~ msgstr "Відновити" #~ msgid "Mark as Bad" #~ msgstr "Відмітити як погані" #~ msgid "Export Patches from here to selected..." #~ msgstr "Експорт латок в обране..." #~ msgid "Import from here to selected to MQ" #~ msgstr "імпортувати звідси до обраного для MQ" #~ msgid "Open Bundle" #~ msgstr "Відкрити пакунок" #~ msgid "Bundle Preview" #~ msgstr "Попередній перегляд пакунку" #~ msgid "unknown dnd dest: %s" #~ msgstr "невідомий dnd dest: %s" #~ msgid "Write bundle to" #~ msgstr "Записати пакунок до" #~ msgid "Importing" #~ msgstr "Імпортування" #~ msgid "Repository is empty" #~ msgstr "Порожнє сховище" #~ msgid "Submit" #~ msgstr "Надіслати" #~ msgid "Apply" #~ msgstr "Застосувати" #~ msgid "A: added" #~ msgstr "A: доданий" #~ msgid "M: modified" #~ msgstr "M: змінений" #~ msgid "C: clean" #~ msgstr "C: очищений" #~ msgid "Copy file to" #~ msgstr "Копіювати файл до" #~ msgid "" #~ "\n" #~ "===== Diff to second parent %d:%s =====\n" #~ msgstr "" #~ "\n" #~ "===== Різниця в порівнянні з другим попередником %d:%s =====\n" #~ msgid "===== Diff to first parent %d:%s =====\n" #~ msgstr "===== Різниця у порівнянні з першим попередником %d:%s =====\n" #~ msgid "Nothing Reverted" #~ msgstr "Нічого не відновлено" #~ msgid "unknown field name: %s" #~ msgstr "невідома назва поля: %s" #~ msgid "invalid alignment value: %s" #~ msgstr "помилкове значення змінної: %s" #~ msgid "Bundle:" #~ msgstr "Пакунок:" #~ msgid "Bundle (*.hg)" #~ msgstr "Пакунок (*.hg)" #~ msgid "Bundle (*)" #~ msgstr "Пакунок (*)" #~ msgid "Custom commit message is empty" #~ msgstr "Нотатка фіксації порожня" #~ msgid "Capture stderr" #~ msgstr "Захоплення stderr" #~ msgid "_Test" #~ msgstr "_Перевірити" #~ msgid "%s will be imported to the" #~ msgstr "%s будуть імпортовані" #~ msgid "%s will be imported to the repository" #~ msgstr "%s будуть імпортовані до сховища" #~ msgid "Select Directory contains patches:" #~ msgstr "Обрати каталог з латками:" #~ msgid "Select Patches" #~ msgstr "Обрати латки" #~ msgid "Import" #~ msgstr "Імпортувати" #~ msgid "Patch" #~ msgstr "Латка" #~ msgid "F_old" #~ msgstr "Згортати" #~ msgid "Up" #~ msgstr "На початок" #~ msgid "Down" #~ msgstr "Донизу" #~ msgid "_Shelve" #~ msgstr "_Відкласти" #~ msgid "%s changesets" #~ msgstr "%s набори змін" #~ msgid "Always show log" #~ msgstr "Завжди показувати журнал" #~ msgid "cleaning up temp directory\n" #~ msgstr "очищення тимчасового каталогу\n" #~ msgid "patching file %s\n" #~ msgstr "виправлення файлу %s\n" #~ msgid "could not extract binary patch" #~ msgstr "Неможливо отримати бінарну латку" #~ msgid "Patch Branch" #~ msgstr "Латка гілки" #~ msgid "Please try again after the previous command has completed" #~ msgstr "Будь ласка, спробуйте ще після завершення попередньої команди" #~ msgid "Menu Items" #~ msgstr "Елементи меню" #~ msgid "New Patch Name" #~ msgstr "Назва нової латки" #~ msgid "_new" #~ msgstr "_новий" #~ msgid "_finish" #~ msgstr "_готовий" #~ msgid "file copy of %s failed\n" #~ msgstr "помилка копіювання файлу %s\n" #~ msgid "Show overlay icons in Mercurial repositories" #~ msgstr "Показувати значки накладок у Mercurial сховищах" #~ msgid "Archived successfully" #~ msgstr "Архівовано успішно" #~ msgid "Backout commit message" #~ msgstr "Повернути повідомлення фіксації" #~ msgid "unknown hunk type: %s" #~ msgstr "частина невідомого типу: %s" #~ msgid "Hunk selection is disabled for this file.\n" #~ msgstr "Можливість вибору частини з цього файлу відключена.\n" #~ msgid "Hunk Selection" #~ msgstr "Вибрати частину" #~ msgid "not up to date" #~ msgstr "не до сьогоднішнього дня" #~ msgid "Nothing Copied" #~ msgstr "Нічого не скопійовано" #~ msgid "Tag is local" #~ msgstr "Локальний ярлик" #~ msgid "tag '%s' is not a local tag" #~ msgstr "ярлик '%s' не є локальним ярликом" #~ msgid "tag '%s' is not a global tag" #~ msgstr "ярлик '%s' не є глобальним ярликом" #~ msgid "Alias name is empty" #~ msgstr "Поле з псевдонімом порожнє" #~ msgid "Insufficient access rights, reverting to read-onlymode." #~ msgstr "Недостатньо прав доступу, повернутися в режим лише для читання." #~ msgid "" #~ "%s\n" #~ "Reverting to read-only mode." #~ msgstr "" #~ "%s\n" #~ "Повернутися в режим лише для читання." #~ msgid "Reorder" #~ msgstr "Упорядкувати" #~ msgid "pending pmerges" #~ msgstr "в очікуванні pmerges" #~ msgid "no pending pmerges" #~ msgstr "не в очікуванні pmerges" #~ msgid "Pending Pmerge" #~ msgstr "В очікуванні Pmerge" #~ msgid "Uncommitted Local Changes" #~ msgstr "Незафіксовані локальні зміни" #~ msgid "_goto (update workdir)" #~ msgstr "_goto (оновити робочий каталог)" #~ msgid "Abandon" #~ msgstr "Лишити" #~ msgid "Abandon Error" #~ msgstr "Помилка відмови" #~ msgid "" #~ "total: %d hunks (%d changed lines); selected: %d hunks (%d changed lines)" #~ msgstr "" #~ "разом: %d частин (%d рядків змінено); відмічено: %d частин (%d рядків " #~ "змінено)" #~ msgid "%d hunks, %d lines changed\n" #~ msgstr "%d частин, %d рядків змінено\n" #~ msgid "bad hunk #%d %s (%d %d %d %d)" #~ msgstr "погана частина #%d %s (%d %d %d %d)" #~ msgid "Hunk #%d FAILED at %d\n" #~ msgstr "Частина #%d НЕВДАЛИЙ в %d\n" #~ msgid "bad hunk #%d" #~ msgstr "погана частина #%d" #~ msgid "bad hunk #%d old text line %d" #~ msgstr "погана частина #%d старий текстовий рядок %d" #~ msgid "No valid hunks found" #~ msgstr "Знайшли не дійсні частини" #~ msgid "Archive revision:" #~ msgstr "Архів ревізій:" #~ msgid "_Save at Revision..." #~ msgstr "_Зберегти, як ревізію..." #~ msgid "Show all matching revisions" #~ msgstr "Показувати всі відповідні ревізії" #~ msgid "Ambiguous Revision" #~ msgstr "Ненадійна ревізія" #~ msgid "Run Commit after init" #~ msgstr "Run Commit after init" #~ msgid "Destination path is empty" #~ msgstr "Шлях призначення порожній" #~ msgid "Revision..." #~ msgstr "Ревізія..." #~ msgid "Revision Range" #~ msgstr "Діапазон ревізій" #~ msgid "Revision Number" #~ msgstr "Номер ревізії" #~ msgid "Transp_lant to Local" #~ msgstr "Перенести до локального" #~ msgid "load all revisions" #~ msgstr "завантажити всі ревізії" #~ msgid "Aborted bundling" #~ msgstr "Зв'язування перервано" #~ msgid "name of the webdir config file (DEPRECATED)" #~ msgstr "назва webdir файлу налаштувань (DEPRECATED)" #~ msgid "for remote clients" #~ msgstr "для зовнішніх клієнтів" #~ msgid "Save Preview" #~ msgstr "Зберегти попередньо переглянуте" #~ msgid "Revert files?" #~ msgstr "Повернути файли?" #~ msgid "Run even when remote repository is unrelated." #~ msgstr "Виконати навіть на непов'язаному зовнішньому сховищі" #~ msgid "Target revision:" #~ msgstr "Мета ревізії:" #~ msgid "Commit Message" #~ msgstr "Повідомлення фіксації" #~ msgid "Configure Plugin" #~ msgstr "Налаштування додатків" #~ msgid "[canceled by user]\n" #~ msgstr "[скасовано користувачем]\n" #~ msgid "create new MQ patch" #~ msgstr "створити нову MQ латку" #~ msgid "Backout..." #~ msgstr "Відновлення..." #~ msgid "" #~ "The editor to use during a commit and other instances where Mercurial " #~ "needs multiline input from the user. Used by command line commands, " #~ "including patch import." #~ msgstr "" #~ "Редактор, який використовується під час фіксації та інших випадків, коли " #~ "Mercurial потребує багаторядкового вводу данних від користувача. " #~ "Використовується у командному рядку, у тому числі для імпорту латок." #~ msgid "Diff" #~ msgstr "Утиліта порівняння" #~ msgid "invalid reorder operation: %s" #~ msgstr "неприпустимий порядок операції: %s" #~ msgid "series become inconsistent during reorder" #~ msgstr "рядок став несумісним під час упорядкування" #~ msgid "Bottom" #~ msgstr "Низ" #~ msgid "abort: backup restore failed, %s\n" #~ msgstr "перервано: помилка під час відновлення копії, %s\n" #~ msgid "abandoning shelved file\n" #~ msgstr "відмова від відкладеного файлу\n" #~ msgid "nothing to abandon\n" #~ msgstr "нічого не залишити\n" #~ msgid "abandon failed\n" #~ msgstr "відмовитися не вдалося\n" #~ msgid "unable to find %s or %s for patching" #~ msgstr "неможливо знайти %s або %s для накладання латок" #~ msgid "Auto-includes:" #~ msgstr "Включено автоматично:" #~ msgid "Bug Traq" #~ msgstr "Помилка Traq" #~ msgid "Stop operation on current tab" #~ msgstr "Зупинити роботу у поточній вкладці" #~ msgid "Datamine" #~ msgstr "Аналітичний запит" #~ msgid "Email from here to selected..." #~ msgstr "Відправити елелектронною поштою до вибраного..." #~ msgid "Email outgoing changesets" #~ msgstr "Відправити електронною поштою вихідний набір змін" #~ msgid "%s - serve" #~ msgstr "%s - сервер" #~ msgid "%s serve - %s" #~ msgstr "%s сервер - %s" #~ msgid " - serve" #~ msgstr " - сервер" #~ msgid "Preset fonts:" #~ msgstr "Попередньо встановлені шрифти:" #~ msgid "Commit Preview" #~ msgstr "Фіксація попередньо переглянутого" #~ msgid "Changeset not found in current view" #~ msgstr "Набір змін не знайдено у поточному поданні" #~ msgid "Rev/ID" #~ msgstr "Рев./ID" #~ msgid "Message Line Length" #~ msgstr "Довжина рядка нотатки" #~ msgid "Force" #~ msgstr "Примусово" #~ msgid "Parent: %(rev)s" #~ msgstr "Попередник: %(rev)s" #~ msgid "%(count)d of %(total)d Revisions" #~ msgstr "%(count)d у %(total)d ревізіях" #~ msgid "Not at head" #~ msgstr "Не вершина" #~ msgid "_Commit (+1 head)" #~ msgstr "_Фіксація (+1 вершина)" #~ msgid "_Commit (-1 head)" #~ msgstr "_Фіксація (-1 вершина)" #~ msgid "neither parent is a head, commit to add a new head" #~ msgstr "жоден з попередників не є вершиною, додати нову вершину" #~ msgid "parent is not a head, commit to add a new head" #~ msgstr "попередник не вершина, додати нову вершину" #~ msgid "use \"hgtk -v help%s\" to show aliases and global options" #~ msgstr "" #~ "виконайте \"hgtk -v help%s\" для перегляду псевдонімів та загальних " #~ "параметрів" #~ msgid "use \"hgtk -v help %s\" to show global options" #~ msgstr "виконайте \"hgtk -v help %s\" для перегляду загальних параметрів" #~ msgid "Confirm Switch" #~ msgstr "Підтвердіть перехід" #~ msgid "Switch after saving changes?" #~ msgstr "Перейти після збереження змін?" #~ msgid "Exit after saving changes?" #~ msgstr "Закрити після збереження змін?" #~ msgid "Custom fonts:" #~ msgstr "Шрифти користувача:" #~ msgid "Finished committing" #~ msgstr "Фіксація завершена" #~ msgid "Committing changes..." #~ msgstr "Фіксація змін..." #~ msgid "Save commit message at exit?" #~ msgstr "Зберегти зроблені повідомлення перед виходом?" #~ msgid "Committer:" #~ msgstr "Дописувач:" #~ msgid "Commit failed" #~ msgstr "Зафіксувати не вдалося" #~ msgid "Info Required" #~ msgstr "Обов'язкові поля" #~ msgid "%s - datamine" #~ msgstr "%s - аналіз даних" #~ msgid "Log Details" #~ msgstr "Розгорнутий журнал" #~ msgctxt "changesets" #~ msgid "All" #~ msgstr "Всі" #~ msgid "Heads" #~ msgstr "Вершини" #~ msgid "UTC Date" #~ msgstr "Всесвітній час" #~ msgid "Subversion" #~ msgstr "Subversion" #~ msgid "heads" #~ msgstr "вершини" #~ msgid "Mercurial Queues" #~ msgstr "Повідомлення Mercurial" #~ msgid "A new version of TortoiseHg is ready for download!" #~ msgstr "Нова версія TortoiseHg готова до завантаження!" #~ msgid "TortoiseHg Clone" #~ msgstr "Клонування TortoiseHg" #~ msgid "_Visual Diff" #~ msgstr "_Візуальне порівнювання" #~ msgid "File Patterns" #~ msgstr "Файл шаблонів" #~ msgid "Invalid file pattern" #~ msgstr "Шаблон файлу з помилкою" #~ msgid "file patterns \"%s\"" #~ msgstr "файл шаблонів \"%s\"" #~ msgid "Visual Diff with selected" #~ msgstr "Порівнювати з обраним" #~ msgid "Visual diff checked files" #~ msgstr "Відмінності у перевірених файлах" #~ msgid "Patch branch finished" #~ msgstr "Накладання латок на гілку завершено" #~ msgid "View missing" #~ msgstr "Відкрити загублені" #~ msgid "Remove versioned" #~ msgstr "Вилучення версіонується" #~ msgid "View other" #~ msgstr "Відкрити інші" #~ msgid "Bookmark \"%s\" has been removed" #~ msgstr "Закладку \"%s\" було вилучено" #~ msgid "_Diff" #~ msgstr "_Відмінність" #~ msgid "Displaying all items" #~ msgstr "Відображати всі елементи" #~ msgid "Add/Move/Remove B_ookmark..." #~ msgstr "Додати/Перемістити/вилучити закладку..." #~ msgid "Mark as Good" #~ msgstr "Відмітити, як добрі" #~ msgid "Download and view incoming changesets" #~ msgstr "Завантажити та відкрити вхідні набори змін" #~ msgid "Changelist:" #~ msgstr "Перелік змін:" #~ msgid "View" #~ msgstr "Відкрити" #~ msgid "Text Diff" #~ msgstr "Відмінності по тексту" #~ msgid "invalid pack direction: %s" #~ msgstr "призначення пакету не дійсне: %s" #~ msgid "mark new/missing files as added/removed before shelving" #~ msgstr "" #~ "відмітити нові/відсутні файли, як додані/вилучені перед відкладенням на " #~ "потім" #~ msgid "Bookmark new name input is empty" #~ msgstr "Відсутня назва нової закладки" #~ msgid "_Navigate" #~ msgstr "_Стернування" #~ msgid "[no hunks to display]" #~ msgstr "[відсутні частини для відображення]" #~ msgid "<- Top" #~ msgstr "<- До верху" #~ msgid "Sub ->" #~ msgstr "До низу ->" #~ msgid "%d out of %d hunks FAILED -- saving rejects to file %s\n" #~ msgstr "%d з %d частини FAILED -- відмовитись зберігати файл %s\n" #~ msgid "hunk %d already applied at line %d (fuzz %d)\n" #~ msgstr "частина %d вже прийнята для рядка %d (fuzz %d)\n" #~ msgid "Invalid date specification" #~ msgstr "Помилковий формат дати" #~ msgid "Unable to delete temp files" #~ msgstr "Не можливо знищити тимчасові файли" #~ msgid "set aside selected changes" #~ msgstr "відкласти в сторону обрані зміни" #~ msgid "Compressed zip archives" #~ msgstr "Архіви zip, стиснуті" #~ msgid "Delete Errors" #~ msgstr "Знищити помилки" #~ msgid "_delete" #~ msgstr "_знищити" #~ msgid "Strip" #~ msgstr "Полоса" #~ msgid "Saved at: %s" #~ msgstr "Зберегти до: %s" #~ msgid "Browse" #~ msgstr "Огляд" #~ msgid "Remove or delete checked files" #~ msgstr "Вилучити або знищити перевірені файли" #~ msgid "_Delete unversioned" #~ msgstr "_Знищити без версіонування" #~ msgid "Failed to strip" #~ msgstr "Помилка під час розрізання" #~ msgid "browser" #~ msgstr "оглядач" #~ msgid "_Delete" #~ msgstr "_Знищити" #~ msgid " - Select Preset -" #~ msgstr " - Вибір схеми -" #~ msgid "Aborted outgoing" #~ msgstr "Пошук вихідних перервано" #~ msgid "R: removed" #~ msgstr "R: вилучений" #~ msgid "!: deleted" #~ msgstr "!: знищений" #~ msgid "Canceled stripping" #~ msgstr "Розрізання скасовано" #~ msgid "%s will be stripped" #~ msgstr "%s будуть розрізана" #~ msgid "Applied MQ patch" #~ msgstr "Накласти MQ латку" #~ msgid "Hunk #%d succeeded at %d with fuzz %d (offset %d lines).\n" #~ msgstr "Частина #%d succeeded at %d with fuzz %d (offset %d рядків).\n" #~ msgid "Hunk #%d succeeded at %d (offset %d lines).\n" #~ msgstr "Частина #%d succeeded at %d (offset %d рядків).\n" #~ msgid "unable to strip away %d dirs from %s" #~ msgstr "не взмозі відрізати каталог %d від %s" #~ msgid "%(count)d of %(total)d applied patches" #~ msgstr "%(count)d з %(total)d накладено латок" #~ msgid "_View at Revision" #~ msgstr "_Відкрити, як ревізію" #~ msgid "Email revisions " #~ msgstr "Email ревізія " #~ msgid "" #~ "Revert all files to revision %d?\n" #~ "This will overwrite your local changes" #~ msgstr "" #~ "Повернути всі файли до ревізії %d?\n" #~ "Це перезапише всі локальні зміни" #~ msgid "Revert files to revision %s?" #~ msgstr "Повернути файли до ревізії %s?" #~ msgid "Copy is not enabled when multiple revisions are specified." #~ msgstr "Копіювання не можливе, коли вказано декілька ревізій." #~ msgid "Move is not enabled when multiple revisions are specified." #~ msgstr "Переміщення не можливе, коли вказано декілька ревізій." #~ msgid "Shelve" #~ msgstr "Відкладання" #~ msgid "Shelve uncommited changes" #~ msgstr "Відкладання непідтвержених змін" #~ msgid "Unshelve" #~ msgstr "Повернення" #~ msgid "restore shelved changes" #~ msgstr "відновити відкладені зміни" #~ msgid "no changes to shelve\n" #~ msgstr "відкладені зміни відсутні\n" #~ msgid "saving patch to shelve\n" #~ msgstr "збережена латка відкладена\n" #~ msgid "nothing to unshelve\n" #~ msgstr "нічого повертати\n" #~ msgid "unshelve backup aborted\n" #~ msgstr "повернення резервної копії перервано\n" #~ msgid "applying shelved patch\n" #~ msgstr "прийняти відкладену латку\n" #~ msgid "unshelve completed\n" #~ msgstr "повернення завершено\n" #~ msgid "shelved file abandoned\n" #~ msgstr "відмовлено у відкладуванні файла\n" #~ msgid "append to existing shelve data" #~ msgstr "додати до існуючих відкладених даних" #~ msgid "proceed even if patches do not unshelve cleanly" #~ msgstr "діяти, якщо навіть латки не відкладені цілковито" #~ msgid "Please try again after the running operation is completed" #~ msgstr "Спробуйте пізніше після завершення виконуваної операції" #~ msgid "Unable to determine repository status" #~ msgstr "Неможливо визначити стан сховища" #~ msgid "Test" #~ msgstr "Тест" #~ msgid "Confirm rollback repository" #~ msgstr "Підтвердіть повернення сховища" #~ msgid "%s - synchronize" #~ msgstr "%s - обмін" #~ msgid "Candidate Matches" #~ msgstr "Кандидат на збіг" #~ msgid "Rollback repository '%s' to %d, undo %s from %s?" #~ msgstr "Повернути сховище '%s' до %d, відмовившись від %s через %s?" #~ msgid "Rollback repository '%s' ?" #~ msgstr "Повернути сховище до '%s' ?" #~ msgid "Specify the visual editor used to view files, etc" #~ msgstr "Вкажіть візуальний редактор для відкриття файлів" #~ msgid "Unrevisioned Files" #~ msgstr "Файли поза контролем змін" #~ msgid "_Edit" #~ msgstr "_Правити" #~ msgid "Edit remote repository path" #~ msgstr "Правити шлях до зовнішнього сховища" #~ msgid "Load all" #~ msgstr "Отримати все" #~ msgid "Load more" #~ msgstr "Отримати більше" #~ msgid "Show emails which would be sent" #~ msgstr "Відобразити надіслані листи" #~ msgid "Visualize Change" #~ msgstr "Відобразити зміну" #~ msgid "Show changeset details with an expander" #~ msgstr "Відобразити деталі набору змін з доданками" #~ msgid "Filter Bar" #~ msgstr "Фільтр" #~ msgid "Do you want to abort?" #~ msgstr "Ви дійсно бажаєте перервати?" #~ msgid "Show name" #~ msgstr "Відобразити назву" #~ msgid "File List" #~ msgstr "Перелік файлів" #~ msgid "Do you want to close?" #~ msgstr "Закрити?" #~ msgid "Show/Hide Patch Queue" #~ msgstr "Відображати/Приховувати чергу латок" #~ msgid "S: subrepo" #~ msgstr "S: підсховище" #~ msgid "I: ignored" #~ msgstr "I: ігноруються" #~ msgid "Show message" #~ msgstr "Відображати повідомлення" #~ msgid "Show title" #~ msgstr "Відобразити заголовок" #~ msgid "Show graph" #~ msgstr "Відобразити граф" #~ msgid "Show patches" #~ msgstr "Відобразити латки" #~ msgid "Show/Hide Patch Branch" #~ msgstr "Відобразити/Приховати латку гілки" #~ msgid "Maximum number of files to list per changeset." #~ msgstr "Максимальна кількість файлів для переліку набору змін." #~ msgid "Do you want to delete '%(name)s'?" #~ msgstr "Бажаєте знищити '%(name)s'?" #~ msgid "Do you want to delete these patches?" #~ msgstr "Бажаєте знищити ці латки??" #~ msgid "Name associated with commits" #~ msgstr "Ім'я ассоційоване з фіксаціями" #~ msgid "Defaulting to " #~ msgstr "Типово використовується " #~ msgid "prefix path to serve from (default: server root)" #~ msgstr "префікс шляху для надання доступу (типово: server root)" #~ msgid "name to show in web pages (default: working dir)" #~ msgstr "" #~ "назва, яка відображається на веб-сторінках (типово: робочий каталог)" #~ msgid "port to use (default: 8000)" #~ msgstr "використовується порт (типово: 8000)" #~ msgid "Backup all (default)" #~ msgstr "Резервна копія всього (типово)" #~ msgid "" #~ "The following lines are over the %i-character limit: %s.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "Деякі рядки перевищують обмеження у %i-знаків: %s.\n" #~ "\n" #~ "Не зважати на правила форматування та фіксувати далі?" #~ msgid "Source path is empty" #~ msgstr "Шлях джерела порожній" #~ msgid "Name of hg executable on remote machine." #~ msgstr "Назва команди hg на зовнішній машині." #~ msgid "Enable editable cells" #~ msgstr "Увімкнути клітинну правку" #~ msgid "Please enter bookmark name" #~ msgstr "Вкажіть назву закладки" #~ msgid "Please enter alias name" #~ msgstr "Вкажіть псевдонім" #~ msgid "Please enter or select a remote path" #~ msgstr "Будь ласка, вкажіть або оберіть зовнішній шлях" #~ msgid "Shelf Preview" #~ msgstr "Поличка попереднього перегляду" #~ msgid "Remote repository paths" #~ msgstr "Шлях до зовнішнього сховища" #~ msgid "Top" #~ msgstr "Верх" #~ msgid "edit failed" #~ msgstr "правка не вдалась" #~ msgid "Source path:" #~ msgstr "Шлях до джерела:" #~ msgid "Please enter a valid source path" #~ msgstr "Вкажіть правильний шлях до джерела" #~ msgid "Differences from Source to Dest" #~ msgstr "Відмінність між джерелом та призначенням" #~ msgid "hgtk clone SOURCE [DEST]" #~ msgstr "hgtk clone ДЖЕРЕЛО [ПРИЗНАЧ]" #~ msgid "hgtk init [DEST]" #~ msgstr "hgtk init [ПРИЗНАЧ]" #~ msgid "hgtk rename SOURCE [DEST]" #~ msgstr "hgtk rename ДЖЕРЕЛО [ПРИЗНАЧ]" #~ msgid "" #~ "Repository name to use in the web interface. Default is the working " #~ "directory." #~ msgstr "" #~ "Назва сховища використовується у веб інтерфейсі. Типово збігається з " #~ "робочим каталогом" #~ msgid "Push" #~ msgstr "Виштовхнути" #~ msgid "template style to use" #~ msgstr "взірці стилів, які використовуються" #~ msgid "Pull changes from selected repository" #~ msgstr "Затягнути зміни з обраного сховища" #~ msgid " Pull " #~ msgstr " Затягнути " #~ msgid "Display changes that can be pulled from selected repository" #~ msgstr "Відобразити зміни, які можуть бути затягнуті з обраного сховища" #~ msgid "E_mail Patch..." #~ msgstr "Надіслати латку електронною поштою..." #~ msgid "No revertable files selected" #~ msgstr "Файли, які обрано, не можливо повернути" #~ msgid "After Pull:" #~ msgstr "Після затягування:" #~ msgid "Pull incoming changesets" #~ msgstr "Затягнути вхідні набори змін" #~ msgid "Pull to Here" #~ msgstr "Затягнути сюди" #~ msgid "Push to Here" #~ msgstr "Виштовхнути сюди" #~ msgid "Aborted pull" #~ msgstr "Затягування перевано" #~ msgid "Pulling changesets..." #~ msgstr "Затягування набору змін..." #~ msgid "Pull to %s" #~ msgstr "Зятягнуто до %s" #~ msgid "No remote path specified" #~ msgstr "Не вказаний зовнішній шлях" #~ msgid "No changesets to pull" #~ msgstr "Відсутній набір змін для затягування" #~ msgid "Pushing changesets..." #~ msgstr "Виштовхування набору змін..." #~ msgid "" #~ "Push to remote repository\n" #~ "%s\n" #~ "(creating new branches in remote if needed)?" #~ msgstr "" #~ "Виштовхнути до зовнішнього сховища\n" #~ "%s\n" #~ "(створити нову гілку у зовнішньому сховищі за потреби)?" #~ msgid "Push to %s" #~ msgstr "Виштовхнути до %s" #~ msgid "Push local changes to selected repository" #~ msgstr "Виштовхнути локальні зміни до обраного сховища" #~ msgid "Coloring Style" #~ msgstr "Забарвлення" #~ msgid "Finished pull" #~ msgstr "Затягування завершено" #~ msgid "Finished push" #~ msgstr "Виштовхування завершено" #~ msgid "Finished pushing branch %s" #~ msgstr "Виштовхування гілки %s завершено" #~ msgid "Pushing branch %s..." #~ msgstr "Виштовхування гілка %s..." #~ msgid "Confirm Forced Push" #~ msgstr "Підтвердіть примусову виштовхування" #~ msgid "Aborted push" #~ msgstr "Виштовхування перервано" #~ msgid "" #~ "Forced push to repository\n" #~ "%s\n" #~ "(creating new heads if needed)?" #~ msgstr "" #~ "Примусово виштовхнути до сховища\n" #~ "%s\n" #~ "(створившт нові голови за потребою)?" #~ msgid "Push this Branch" #~ msgstr "Виштовхнути гілку" #~ msgid "Push outgoing changesets" #~ msgstr "Виштовхнути вихідні набори змін" #~ msgid "" #~ "Forced push to remote repository\n" #~ "%s\n" #~ "(creating new heads in remote if needed)?" #~ msgstr "" #~ "Примусово виштовхнути до зовнішнього сховища\n" #~ "%s\n" #~ "(створивши нову голову у зовнішньому сховищі, якщо це необхідно)?" #~ msgid "Confirm Push of New Branches to Remote Repository" #~ msgstr "Підтвердіть виштовхування для нової гілки до зовнішнього сховища" #~ msgid "Allow pushing a new branch" #~ msgstr "Завжди виштовхувати нові гілки" #~ msgid "Push after commit" #~ msgstr "Виштовхнути після фіксації" #~ msgid "Force pull or push" #~ msgstr "Примусово затягувати або виштовхувати" #~ msgid "Finished committing and pushing" #~ msgstr "Завершення фіксації та виштовхування" #~ msgid "Default Tab" #~ msgstr "Типова вкладка" #~ msgid "Toolbar Style" #~ msgstr "Зовнішний вигляд" #~ msgid "Push new branch" #~ msgstr "Виштовхнути новою гілкою" #~ msgid "Confirm Forced Push to Remote Repository" #~ msgstr "Підтвердіть примусове виштовхування до зовнішнього сховища" #~ msgid "Failed to preview, a bundle file unrelated to this repository" #~ msgstr "" #~ "Попередній перегляд неможливий, файли покунків не не пов'язані з сховищем" #~ msgid "Patch Series (Bundle) Description" #~ msgstr "Опис серії латок (пакунків)" #~ msgid "" #~ "New changesets from the preview bundle are still pending.\n" #~ "\n" #~ "Accept or reject the new changesets?" #~ msgstr "" #~ "Попередній перегляд нових наборів змін від пакунків, як і раніше в " #~ "очікуванні.\n" #~ "\n" #~ "Прийняти або відкинути новий набір змін?" #~ msgid " (Bundle Preview)" #~ msgstr " (Попередній перегляд пакунку)" #~ msgid "Failed to bundle" #~ msgstr "Помилка пакунку" #~ msgid "Bundling" #~ msgstr "Створення пакунку" #~ msgid "Bundle from here to selected..." #~ msgstr "Обираємо звідси для пакунку..." #~ msgid "Reject changes from Bundle preview" #~ msgstr "Відхилити зміни від попередньо перегляненого пакунку" #~ msgid "Failed to preview, not a Mercurial bundle file" #~ msgstr "" #~ "Помилка під час попереднього перегляду, пакунок не належить до Mercurial " #~ "файлу" #~ msgid "Add Bundle..." #~ msgstr "Додавання пакунку..." #~ msgid "Applying bundle..." #~ msgstr "Застосування пакунку..." #~ msgid "Applying bundle" #~ msgstr "Застосувати пакунок" #~ msgid "Bundling from %(base)s to %(rev)s..." #~ msgstr "Пакування від %(base)s до %(rev)s..." #~ msgid "User global settings" #~ msgstr "Загальні параметри користувача" #~ msgid "TortoiseHg Shell Configuration" #~ msgstr "Налаштування командної оболонки TortoiseHg" #~ msgid "Unable to parse a config file" #~ msgstr "Неможливо розібрати файл налаштувань" #~ msgid "TortoiseHg Configure Repository - " #~ msgstr "Налаштування сховища TortoiseHg - " #~ msgid "" #~ "Your username has not been configured.\n" #~ "\n" #~ "Please configure your username and try again" #~ msgstr "" #~ "Ви не вказали ім'я користувача.\n" #~ "\n" #~ "Будь ласка, вкажіть ім'я користувача та спробуйте знову." #~ msgid "" #~ "No issue link found in the commit message.The commit message should " #~ "contain an issue link. Configure this in the 'Issue' section in the " #~ "settings" #~ msgstr "" #~ "Посилання на помилки не знайдено у повідомленні фіксації. Повідомлення " #~ "фіксації повинно мати посилання на помилку. Це налаштовується у секції " #~ "'Запити' у параметрах" #~ msgid "Configure email settings" #~ msgstr "Налаштування параметрів електронної пошти" #~ msgid "Configure web settings" #~ msgstr "Налаштування web параметрів" #~ msgid "TortoiseHg Configure User-Global Settings" #~ msgstr "Налаштування загальних параметрів користувача в TortoiseHg" #~ msgid "Tag \"%s\" has been added" #~ msgstr "Ознака \"%s\" додана" #~ msgid "Revision Number/ID" #~ msgstr "Ревізія номер/ID" #~ msgid "revision ancestry" #~ msgstr "походження ревізії" #~ msgid "_View File at Revision" #~ msgstr "_Відкрити файл для ревізії" #~ msgid "Invalid revision set" #~ msgstr "Набір помилкових ревізій" #~ msgid "Tagged Revisions" #~ msgstr "Означити ревізії" #~ msgid "Import Revision to MQ" #~ msgstr "Імпортувати ревізію для MQ" #~ msgid "Strip Revision..." #~ msgstr "Розрізати ревізію..." #~ msgid "Remove is not enabled when multiple revisions are specified." #~ msgstr "Вилучити не включені, коли вказано декілька ревізій." #~ msgid "revisions %d to %d" #~ msgstr "ревізії з %d по %d" #~ msgid "No revisions matched search" #~ msgstr "Відсутні ревізії, які відповідають шуканим" #~ msgid "Load all Revisions" #~ msgstr "Отримати всі ревізії" #~ msgid "Load more Revisions" #~ msgstr "Отримати більше ревізій" #~ msgid "Pushing changesets to revision %s..." #~ msgstr "Виштовхнути набір змін до ревізій %s..." #~ msgid "Pulling changesets to revision %s..." #~ msgstr "Затягнути набір змін до ревізій %s..." #~ msgid "Finished push to revision %s" #~ msgstr "Виштовхування до ревізії %s завершена" #~ msgid "Finished pull to revision %s" #~ msgstr "Затягування ревізії %s завершено" #~ msgid "A specific revision up to which you would like to push or pull." #~ msgstr "Ревізія, до якої Ви бажаєте виштовхнути або затягнути." #~ msgid "Please enter the directory path" #~ msgstr "Будь ласка, вкажіть шлях до каталога" #~ msgid "Undo successfully" #~ msgstr "Успішно скасовано" #~ msgid "Confirm Undo Commit" #~ msgstr "Підтвердіть скасування фіксації" #~ msgid "Rollback" #~ msgstr "Повернути" #~ msgid "Canceled undo" #~ msgstr "Скасувати скасування" #~ msgid "Failed to undo" #~ msgstr "Помилка скасування" #~ msgid "Confirm undo merge" #~ msgstr "Підтвердіть скасування злиття" #~ msgid "Rollback repository '%s' to %d, undo %s?" #~ msgstr "Повернути сховища з '%s' до %d, скасувавши %s?" #~ msgid "Rollback (undo) last transaction to repository (pull, commit, etc)" #~ msgstr "" #~ "повернути (скасувати) останню операцію по сховищу (затягування, фіксація " #~ "тощо )" #~ msgid "Several icons are courtesy of the TortoiseSVN project" #~ msgstr "Декілька значків запозичені з проекту TortoiseSVN" #~ msgid "Error when creating repository" #~ msgstr "Помилка при створенні сховища" #~ msgid "Merge target (other)" #~ msgstr "Мета злиття (інша)" #~ msgid "Confirm Fold" #~ msgstr "Підтвердіть підшиття" #~ msgid "Succeed" #~ msgstr "Досягнути" #~ msgid "Nothing Moved" #~ msgstr "Нічого втрачати" #~ msgid "Must supply a target revision" #~ msgstr "Потрібно вказати мету ревізії" #~ msgid "" #~ "Do you want to fold un-applied patch '%(target)s' into current patch " #~ "'%(qtip)s'?" #~ msgstr "" #~ "Бажаєте підшити не накладені латки '%(target)s' до поточної латки " #~ "'%(qtip)s'?" #~ msgid "" #~ "Do you want to fold following un-applied patches into the current patch " #~ "'%(qtip)s'?" #~ msgstr "" #~ "Бажаєте підшити наступні не накладені до поточного латки '%(qtip)s'?" #~ msgid "tagged revisions" #~ msgstr "означити ревізії" #~ msgid "Merge " #~ msgstr "Злиття " #~ msgid "Hide Merges" #~ msgstr "Приховане злиття" #~ msgid "Merging in %s" #~ msgstr "Злиття з %s" #~ msgid "Restart Merge..." #~ msgstr "Перезапуск злиття..." #~ msgid "Restart merge with" #~ msgstr "Перезапуск злиття з" #~ msgid "merging " #~ msgstr "злиття " #~ msgid "no Merges" #~ msgstr "не зливати" #~ msgid "_Merge with..." #~ msgstr "_Зливати з..." #~ msgid "Imported successfully" #~ msgstr "Успішно імпортовано" #~ msgid "only Merges" #~ msgstr "лише злиття" #~ msgid "revision to merge with" #~ msgstr "ревізія для злиття з" #~ msgid "Stripped successfully" #~ msgstr "Успішно розрізано" #~ msgid "Commit backout before merging with current working parent" #~ msgstr "Фіксувати відновлене перед злиттям з поточним робочим попередником" #~ msgid "Show no merges" #~ msgstr "Відобразити не злиті" #~ msgid "Spell Check Language" #~ msgstr "Мова перевірки правопису" #~ msgid "Move checked files to other directory" #~ msgstr "Перемістити перевірені файли в інший каталог" #~ msgid "Mark resolved" #~ msgstr "Відмітити, як розв'язане" #~ msgid "merges" #~ msgstr "злиття" #~ msgid "Cannot merge" #~ msgstr "Злиття неможливе" #~ msgid "Merged successfully" #~ msgstr "Успішне злиття" #~ msgid "Failed to merge" #~ msgstr "Помилка злиття" #~ msgid "Tip" #~ msgstr "Верхівка" #~ msgid "Unable to identify Perforce tip" #~ msgstr "Неможливо визначити Perforce верхівку" #~ msgid "Finding tip Perforce changelist..." #~ msgstr "Знайдено верхівку Perforce набору змін..." #~ msgid "Identifying Perforce tip" #~ msgstr "Визначення Perforce верхівки" #~ msgid "Update to branch tip" #~ msgstr "Оновити до верхівки гілки" #~ msgid "Merges" #~ msgstr "Злиття" #~ msgid "Checking outgoing changesets..." #~ msgstr "Перевіряння вихідного набору змін..." #~ msgid "Null changeset is not viewable" #~ msgstr "Набір змін нульовий та не відкривається" #~ msgid "revision number, changeset ID, branch or tag" #~ msgstr "номер ревізії, ID набору змін, гілки або ярлик" #~ msgid "" #~ "Select language for spell checking.\n" #~ "\n" #~ "Empty is for the default language.\n" #~ "When all text is highlited, the dictionary\n" #~ "is probably not installed.\n" #~ "\n" #~ "examples: en, en_GB, en_US" #~ msgstr "" #~ "Виберіть мову перевірки правопису.\n" #~ "\n" #~ "Залишити порожнім для типової мови.\n" #~ "В разі підкреслення всього тексту не встановлений \n" #~ "словник.\n" #~ "\n" #~ "наприклад: en, en_GB, en_US" #~ msgid "" #~ "To complete merging, you need to commit merged files in working " #~ "directory.\n" #~ "\n" #~ "Do you want to exit?" #~ msgstr "" #~ "Для повного злиття, необхідно злити файли в робочому каталозі.\n" #~ "\n" #~ "Бажаєте вийти?" #~ msgid "" #~ "Default language for spell check. System language is used if not " #~ "specified. Examples: en, en_GB, en_US" #~ msgstr "" #~ "Типова мова для перевірки правопису. Використовується системна мова, якщо " #~ "не вказана інша. Наприклад: en, en_GB, en_US" #~ msgid "Bundling from %(base)s to tip..." #~ msgstr "Пакування від %(base)s до верхівки..." #~ msgid "_Bundle rev:tip..." #~ msgstr "_Пакунок мод:верх..." #~ msgid "Replace existing tag" #~ msgstr "Замінити існуючий ярлик" #~ msgid "Tag input is empty" #~ msgstr "Порожній вхідний ярлик" #~ msgid "a tag named \"%s\" already exists" #~ msgstr "ярлике з такою назвою \"%s\" вже існує" #~ msgid "Tag '%s' already exist" #~ msgstr "Ярлик '%s' вже існує" #~ msgid "Tagged" #~ msgstr "Ярликування" #~ msgid "Tagging completed" #~ msgstr "Ярликування завершено" #~ msgid "Error in tagging" #~ msgstr "Помилка при ярликуванні" #~ msgid "Please select tag name to remove" #~ msgstr "Оберіть ярлик для вилучення" #~ msgid "Mark unresolved" #~ msgstr "Відмітити, як не розв'язане" #~ msgid "" #~ "Unable to undo!\n" #~ "\n" #~ "Tip revision differs from last commit." #~ msgstr "" #~ "Скасувати неможливо!\n" #~ "Верхівка ревізії відрізняється від останньої зафіксованої." #~ msgid "filtered status" #~ msgstr "стан фільтрування" #~ msgid "Error while reading status" #~ msgstr "Помилка при читанні стану" #~ msgid "Show status" #~ msgstr "Відобразити стан" #~ msgid "Ancestry of %s" #~ msgstr "Походження для %s" #~ msgid "Select common ancestor revision" #~ msgstr "Виберіть спільного предка ревізії" #~ msgid "" #~ "\n" #~ "[command interrupted]" #~ msgstr "" #~ "\n" #~ "[пошкоджена команда]" #~ msgid "Recover from interrupted operation" #~ msgstr "Відновити з пошкодженої дії" #~ msgid "[command interrupted]" #~ msgstr "[пошкоджена команда]" #~ msgid "shelve changes to %s?" #~ msgstr "відкласти зміну у %s?" #~ msgid "bad shelve backup directory name" #~ msgstr "погана назва каталогу відкладеної резервної копії" #~ msgid "shelve can only be run interactively" #~ msgstr "відкладання можливе лише у інтерактивному режимі" #~ msgid "abandon shelved changes" #~ msgstr "залишити відкладені зміни" #~ msgid "Unshelve Abort" #~ msgstr "Перервати повернення" #~ msgid "Unshelve Error" #~ msgstr "Помилка повернення" #~ msgid "Delete the shelf contents?" #~ msgstr "Знищити вміст полички?" #~ msgid "delete of shelve backup failed" #~ msgstr "помилка при знищенні відкладеної резервної копії" #~ msgid "unknown patch content: %r" #~ msgstr "латка невідомого вмісту: %r" #~ msgid "_Revert File Contents" #~ msgstr "_Повернути вміст файлу" #~ msgid "Patch Contents" #~ msgstr "Вміст латки" #~ msgid "Revert %s to contents at revision %d?" #~ msgstr "Повернути %s до вмісту у ревізії %d?" #~ msgid "There is no Mercurial repository here (.hg not found)" #~ msgstr "Це не Mercurial сховище (не занйдено .hg)" #~ msgid "No repository found here" #~ msgstr "Сховищ тут не знайдено" #~ msgid "No diffable files selected" #~ msgstr "Обрано файли, які не порівнювані" #~ msgid "malformed patch %s %s" #~ msgstr "хибна латка %s %s" #~ msgid "Commit: Invalid username" #~ msgstr "Фіксація: хибне ім'я користувача" #~ msgid "" #~ "Color changesets by author name. If not enabled, the changes are colored " #~ "green for merge, red for non-trivial parents, black for normal. Default: " #~ "False" #~ msgstr "" #~ "Розфарбовувати кольорами зміни різних авторів. Якщо увімкнено, тоді зміни " #~ "підсвічуються зеленим для злиття, червоним для не звичайних попередників, " #~ "чорним для нормальних. Типово: ні." #~ msgid "Character encoding name" #~ msgstr "Система кодування символів." #~ msgid "" #~ "Defines the command to run when an issue number is recognized. You may " #~ "include groups in issue.regex, and corresponding {n} tokens in issue.link " #~ "(where n is a non-negative integer). {0} refers to the entire string " #~ "matched by issue.regex, while {1} refers to the first group and so on. If " #~ "no {n} tokensare found in issue.link, the entire matched string is " #~ "appended instead." #~ msgstr "" #~ "Визначає команду для запуску, коли номер випуску не зізнається. Ви можете " #~ "включити групи в issue.regex, і відповідні {n} лексем в issue.link (де n " #~ "ціле невід'ємне). {0} посилається на весь рядок супроводу issue.regex, а " #~ "{1} відноситься до першої групи і так далі. Якщо ні {n} tokensare " #~ "знайдений в issue.link, весь співпалий рядок додасться замість цього." #~ msgid "Select Local Folder" #~ msgstr "Обрати локальну теку" #~ msgid "" #~ "Detected uncommitted local changes in working tree.\n" #~ "Please select to continue:\n" #~ "\n" #~ msgstr "" #~ "Знайдено незафіксовані локальні зміни у робочому дереві.\n" #~ "Обрати для продовження:\n" #~ "\n" #~ msgid "Select a Mercurial Bundle" #~ msgstr "Обрати Mercurial пакунок" #~ msgid "" #~ "Redirect stderr to a buffer which is parsed at the end of the process for " #~ "runtime errors. Default: True" #~ msgstr "" #~ "Перенаправляти stderr до буферу для розбору його помилок виконання в " #~ "кінці процесу. Типово: так." #~ msgid "tag '%s' does not exist" #~ msgstr "ярлику '%s' не існує" #~ msgid "Tag name is empty" #~ msgstr "Ярлик без назви" #~ msgid "Current patch: %s, " #~ msgstr "Поточна латка: %s, " #~ msgid "mpatch error" #~ msgstr "помилка mpatch" #~ msgid "binary patch is %d bytes, not %d" #~ msgstr "бінарна латка %d байтів, не %d" #~ msgid "Importing to Patch Queue..." #~ msgstr "Імпортувати чергу латок..." #~ msgid "Set as _default" #~ msgstr "Встановити типовим" #~ msgid "finding source of " #~ msgstr "пошукування джерела у " #~ msgid "&Yes (--force)" #~ msgstr "Так (--force)" #~ msgid "&Accept" #~ msgstr "Прийняти" #~ msgid "Yes (&discard changes)" #~ msgstr "Так (відмовитись від змін)" #~ msgid "&Yes (backup changes)" #~ msgstr "Так (резервне копіювання змін)" #~ msgid "Try &Again" #~ msgstr "Спробувати Знову" #~ msgid "Yes (&keep)" #~ msgstr "Так (дотримуватися)" #~ msgid "&Push" #~ msgstr "Виштовхнути" #~ msgid "Forced &Push" #~ msgstr "Примусово виштовхнути" #~ msgid "Connect to mail server using TLS. Default: False" #~ msgstr "" #~ "З'єднання з сервером електронної пошти використовує TLS. Типово: ні." #~ msgid "" #~ "Font used in changeset viewer and commit log text. Default: monospace 10" #~ msgstr "" #~ "Шрифт, який використовується під час перегляду набору змін та запису до " #~ "журналу. Типово: monospace 10." #~ msgid "" #~ "Adjust the coloring style of diff lines in the changeset viewer. Default: " #~ "foreground" #~ msgstr "" #~ "Налаштування стилю забарвлення для відокремлення ліній у відкритому " #~ "наборі змін. Типово: foreground." #~ msgid "" #~ "Word wrap length of the commit message. If set, the popup menu can be " #~ "used to format the message and a warning will be issued if any lines are " #~ "too long at commit. Default: 0 (unenforced)" #~ msgstr "" #~ "Довжина рядку повідомлення фіксації для перенесення по словам. Якщо " #~ "встановлено, контекстне меню можна використовувати для форматування " #~ "повідомлення та попереджень попередження про перевищення допустимої " #~ "довжини рядка. Типово: 0 (без перевірок)." #~ msgid "Ignore changes whose lines are all blank. Default: False" #~ msgstr "Не зважати на зміни, які викликані порожніми рядками. Типово: ні." #~ msgid "" #~ "Specify the number of spaces that tabs expand to in various TortoiseHg " #~ "windows. Default: Not expanded" #~ msgstr "" #~ "Вкажіть кількість прогалин, на які вкладки розширюватимуться TortoiseHg. " #~ "Типово: не розширюватимуться." #~ msgid "Ignore white space when comparing lines. Default: False" #~ msgstr "Ігнорувати прогалину при порівнянні файлів. Типово: ні." #~ msgid "Ignore changes in the amount of white space. Default: False" #~ msgstr "Не зважати на зміни у кількості прогалин. Типово: ні." #~ msgid "" #~ "The maximum size file (in KB) that TortoiseHg will show changes for in " #~ "the changelog, status, and commit windows. A value of zero implies no " #~ "limit. Default: 1024 (1MB)" #~ msgstr "" #~ "Максимальний розмір файлу (в KБ) TortoiseHg для якого зміни в changelog, " #~ "стані, та фіксації показані у вікні. При нульвому значенні без обмежень. " #~ "Типово: 1024 (1MіБ)." #~ msgid "" #~ "Show the diff panel below the file list in status, shelve, and commit " #~ "dialogs. Default: False (show diffs to right of file list)" #~ msgstr "" #~ "Показувати панель різниць знизу переліка файлів для діалога стану, " #~ "відкладання та фіксації. Типово: ні (різниці показують праворуч від " #~ "переліку файлів)." #~ msgid "Rebase on top of selected" #~ msgstr "Перемістити на крок вище вибраної" #~ msgid "Confirm Rebase Revision" #~ msgstr "Підтвердіть переміщення ревізій" #~ msgid "Finished pull with rebase" #~ msgstr "По завершенню затягування, перемістити" #~ msgid "Clean checkout of original revision?" #~ msgstr "Очистити забравши оригінальну ревізію?" #~ msgid "Rebase revision %d on top of %d?" #~ msgstr "Перемістити ревізію %d на гору до %d?" #~ msgid "Clean checkout, undo all changes" #~ msgstr "Очистити налагоджене, відмовившись від всіх змін" #~ msgid "Use uncompressed transfer" #~ msgstr "При передаванні не стискати" #~ msgid "" #~ "Comma separated list of exclusion patterns. Exclusion patterns are " #~ "applied after inclusion patterns." #~ msgstr "" #~ "Перелік шаблонів виключень, через кому. Шаблони виключення застосовуються " #~ "після шаблонів включень." #~ msgid "" #~ "Comma separated list of inclusion patterns. By default, the entire " #~ "repository is searched." #~ msgstr "" #~ "Перелік шаблонів, через кому, які застосовуються. Типово, пошук по всім " #~ "сховищам." #~ msgid "Age" #~ msgstr "Створений" #~ msgid "Updated successfully" #~ msgstr "Успішно поновлений" #~ msgid "Updating..." #~ msgstr "Поновлення..." #~ msgid "_Update..." #~ msgstr "_Поновлення..." #~ msgid "Shelve - launch Shelve tool and continue" #~ msgstr "Відкладання - запустити знаряддя відкладання та продовжити" #~ msgid "Launch commit tool" #~ msgstr "Запуск знаряддя фіксації" #~ msgid "Launch data mining tool" #~ msgstr "Запуск знаряддя інтелектуального аналізу даних" #~ msgid "Launch recovery tool" #~ msgstr "Запуск знаряддя відновлення даних" #~ msgid "Launch shelve tool" #~ msgstr "Запуск знаряддя відкладання" #~ msgid "Use merge tool:" #~ msgstr "Використовувати знаряддя злиття:" #~ msgid "Close the commit tool after every successful commit. Default: False" #~ msgstr "" #~ "Закривати знаряддя фіксації після кожної успішної фіксації. Типово: ні." #~ msgid "Please select diff chunks to shelve" #~ msgstr "Обрати кусні відмінностей для відкладання" #~ msgid "refresh" #~ msgstr "освіжити" #~ msgid "refresh top MQ patch" #~ msgstr "освіжити головну MQ латку" #~ msgid "Repository Error: %s, refresh suggested" #~ msgstr "Помилка сховища: пропонується освіжити %s" #~ msgid ", please refresh" #~ msgstr ", будь ласка освіжіть" #~ msgid "Refresh required" #~ msgstr "Потребує освіження" #~ msgid "" #~ "No movable files selected\n" #~ "\n" #~ "Note: only clean files can be moved." #~ msgstr "" #~ "Не обрано файли для переміщення\n" #~ "\n" #~ "Нотатка: лише незмінені файли можуть бути переміщені." #~ msgid "name of file to write process ID to" #~ msgstr "ім'я файлу для запису ID процесу" #~ msgid "name of error log file to write to" #~ msgstr "ім'я файлу журналу запису помилок" #~ msgid "Finish importing" #~ msgstr "Імпорт завершено" #~ msgid "Finish bundling" #~ msgstr "Зв'язування завершено" #~ msgid "" #~ "You cannot finish this patch branch unless you pmerge it first.\n" #~ "pmerge will solve the following issues with %(patch)s:\n" #~ "* %(issuelist)s" #~ msgstr "" #~ "Ви не можете завершити цією латкою гілку, якщо ви pmerge це перший.\n" #~ "pmerge буде вирішувати такі питання з %(patch)s:\n" #~ "* %(issuelist)s" #~ msgid "_Finish Applied" #~ msgstr "_Завершити накладання" #~ msgid "Canceled merging" #~ msgstr "Злиття завершено" #~ msgid "" #~ "If true, concatenate multiple lines of changeset summary until they reach " #~ "80 characters. Default: False" #~ msgstr "" #~ "Якщо Так, тоді багаторядковий набір змін буде зведений в один довжиною до " #~ "80 символів. Типово: ні." #~ msgid "shelve this change to %r?" #~ msgstr "відкласти зміну у %r?" #~ msgid "The summary line length of %i is greater than %i" #~ msgstr "Зведена довжина рядка %i більше ніж %i" #~ msgid "The summary line is not followed by a blank line" #~ msgstr "Зведений рядок не повинен бути порожнім рядком" #~ msgid "_Copy Hash" #~ msgstr "_Копіювати хеш" #~ msgid "Always Show Output" #~ msgstr "Завжди показувати результат" #~ msgid "_Tools" #~ msgstr "_Знаряддя" #~ msgid "Hgtk - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" #~ msgstr "Hgtk - TortoiseHg's графічне знаряддя для Mercurial SCM (Hg)\n" #~ msgid "Command Output" #~ msgstr "Командний рядок" #~ msgid "" #~ "The summary line length of %i is greater than %i.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "Зведена довжина рядку %i більша ніж %i.\n" #~ "\n" #~ "Не зважати на правила форматування та фіксувати далі?" #~ msgid "Font used in command output window. Default: monospace 10" #~ msgstr "" #~ "Шриф використовуваний у вікні командного рядка. Типово: monospace 10." #~ msgid "" #~ "Font used for diffs in status and commit tools. Default: monospace 10" #~ msgstr "" #~ "Шрифт використовується для diffs in status and знаряддя фіксації. Типово: " #~ "monospace 10." #~ msgid "Font used in file lists in status and commit tools. Default: sans 9" #~ msgstr "" #~ "Шрифт, який використовується для списку файлів та знаряддя фіксації. " #~ "Типово: sans 9." #~ msgid "" #~ "The tab on which the status and commit tools will open. 0 - TextDiff, 1 - " #~ "Hunk Selection, 2 - Commit Preview. Default: 0" #~ msgstr "" #~ "Вкладка з станом та знаряддям фіксації будуть відкриті. 0 - TextDiff, 1 - " #~ "Частковий вибір, 2 - Перегляд фіксації. Типово: 0." #~ msgid "" #~ "Maximum length of the commit message summary line. If set, TortoiseHg " #~ "will issue a warning if the summary line is too long or not separated by " #~ "a blank line. Default: 0 (unenforced)" #~ msgstr "" #~ "Максимальна довжина рядка нотатки фіксації зведеного рядка. Якщо " #~ "встановлено, TortoiseHg буде видавати попередження, що загальна довжина " #~ "рядка занадто довга і не містить символ нового рядка. Типово: 0 (не " #~ "обов'язкове)." #~ msgid "" #~ "The parents have changed since the last refresh.\n" #~ "Continue anyway?" #~ msgstr "" #~ "Попередники були змінені з моменту останнього освіження.\n" #~ "Продовжити все одно?" #~ msgid "" #~ "Select issue tracker plugin to use. Links to plugins can be found at " #~ "http://tortoisesvn.net/issuetrackerplugins" #~ msgstr "" #~ "Виберіть модуль системи контролю проблем. Посилання на модулі можна " #~ "знайти на http://tortoisesvn.net/issuetrackerplugins" #~ msgid " - Select Issue Tracker -" #~ msgstr " - Обрати систему контролю проблем -" #~ msgid "load more revisions" #~ msgstr "завантажити ще ревізій" #~ msgid "Reset revision marks" #~ msgstr "Скинути маркування ревізій" #~ msgid "Delete the following unrevisioned files?" #~ msgstr "Знищити файли, які не входять до ревізії?" #~ msgid "Confirm Delete Unrevisioned" #~ msgstr "Підтвердіть знищення того, що не входить до ревізії" #~ msgid "Revert not allowed when viewing revision range." #~ msgstr "Повернення не можливе під час перегляду діапазону ревізій." #~ msgid "Forget checked files on next commit" #~ msgstr "Забути перевірити файли під час наступної фіксації" #~ msgid "Please enter tag name" #~ msgstr "Вкажіть назву мітки" #~ msgid "Theme default fonts" #~ msgstr "Тема шрифтів" #~ msgid "Select Bundle" #~ msgstr "Оберіть пакунок" #~ msgid "Tag \"%s\" has been removed" #~ msgstr "Мітка \"%s\" буде вилучена" #~ msgid "Canceled backout" #~ msgstr "Скасувати відновлення" #~ msgid "Confirm revert file to old revision" #~ msgstr "Вимагати підтвердити повернення файлу до старої ревізії" #~ msgid "Add/Remove _Tag..." #~ msgstr "Додати/вилучити мітку..." #~ msgid "File is unrevisioned" #~ msgstr "Файл поза контролем версій" #~ msgid "revisions to compare" #~ msgstr "ревізії для порівняння" #~ msgid "Invalid Revision" #~ msgstr "Недійсна ревізія" #~ msgid "No changes to shelve" #~ msgstr "Залишити без змін" #~ msgid "Shelve file exists!" #~ msgstr "Існують відкладені файли!" #~ msgid "inspect shelved changes only" #~ msgstr "переглянути лише відкладені зміни" #~ msgid "Flags:" #~ msgstr "Флаг:" #~ msgid "user quit" #~ msgstr "завершено користувачем" #~ msgid "" #~ "Server process is still running\n" #~ "Exiting will stop the server." #~ msgstr "" #~ "Виконується серверний процес\n" #~ "Завершення зупинить сервер." #~ msgid "unexpected destination name: %s" #~ msgstr "неочікувана назва призначення: %s" #~ msgid "Source and destination are the same" #~ msgstr "Джерело та призначення збігаються" #~ msgid "Configure aliases and after pull behavior" #~ msgstr "Налаштувати псевдоніми та після затягувати дозвола" #~ msgid "Close diff tools and try again, or quit to leak files?" #~ msgstr "" #~ "Закрити знаряддя порівнянь та продовжити, або завершити втративши файли?" #~ msgid "&Quit" #~ msgstr "Завершити" #~ msgid "Apply to:" #~ msgstr "Застосувати до:" #~ msgid "Apply next patch" #~ msgstr "Застосувати наступну латку" #~ msgid "Current revision (local)" #~ msgstr "Поточна ревізія (місцева)" #~ msgid "" #~ "Graphical merge program for resolving merge conflicts. If left " #~ "unspecified, Mercurial will use the first applicable tool it finds on " #~ "your system or use its internal merge tool that leaves conflict markers " #~ "in place. Chose internal:merge to force conflict markers, internal:" #~ "prompt to always select local or other, or internal:dump to leave files " #~ "in the working directory for manual merging" #~ msgstr "" #~ "Графічна програма для вирішення конфліктів злиття. Якщо не визначено, " #~ "тоді Mercurial буде використовувати перше ліпше знаряддя, який знайде у " #~ "Вашій системі, або буде використовувати внутрішне знаряддя злиття, який " #~ "залишає маркери конфліктів у тексті. Вкажіть internal:merge для " #~ "примусового використання маркерів конфліктів, internal:prompt - аби " #~ "завжди обирати місцеві або internal:dump - щоб залишити файли у робочому " #~ "каталозі для зливання користувачем." #~ msgid "name of access log file to write to" #~ msgstr "ім'я для доступу в файл журналу на запис" #~ msgid "Reload revision history" #~ msgstr "Перезавантажити історію ревізії" #~ msgid "Diff to Local" #~ msgstr "Різниця в порівнянні з локальним" #~ msgid "" #~ "pfinish uses your working directory for temporary work.\n" #~ "Please commit your local changes before issuing pfinish." #~ msgstr "" #~ "pfinish uses your working directory for temporary work.\n" #~ "Будь ласка, зафіксуйте ваші локальні зміни перш ніж скористатись pfinish." #~ msgid "_Diff to Local" #~ msgstr "Різниця з локальним" #~ msgid "Show overlays on local disks only" #~ msgstr "Показувати накладки лише стосовно локальних дисків" #~ msgid "" #~ "This feature is only available when sending outgoing changesets. It is " #~ "not applicable with revision ranges." #~ msgstr "" #~ "Цей функціонал стане доступні після відсилання вихідного набору змін. Це " #~ "не стосуватиметься нумерації ревізій." #~ msgid "Uncommitted local changes" #~ msgstr "Незафіксовані локальні зміни" #~ msgid "Diff to _local" #~ msgstr "Різниця з локальним" #~ msgid "Email local outgoing changes to one or more recipients" #~ msgstr "Відправити локальні зміни одному або декільком отримувачам поштою" #~ msgid "" #~ "Detected uncommitted local changes.\n" #~ "Do you want to discard them and continue?" #~ msgstr "" #~ "Знайдено незафіксовані локальні зміни.\n" #~ "Відмовляємось та продовжуємо?" #~ msgid "Transplant Revision range to local" #~ msgstr "Впровадження локального діапазону ревізій" #~ msgid "&Reject" #~ msgstr "Відхилити" #~ msgid "Accept changes from Bundle preview" #~ msgstr "Прийняти зміни з попередньо переглянутого пакунку" #~ msgid "Show the taskbar icon (restart needed)" #~ msgstr "Показувати значки на панелі задач (вимагатиме перезапуск)" #~ msgid "Show internal branches" #~ msgstr "Показати зовнішні гілки" #~ msgid "_edit message" #~ msgstr "_правити повідомлення" #~ msgid "" #~ "pfinish must be able to commit, but this is not allowed\n" #~ "as long as you have MQ patches applied." #~ msgstr "" #~ "pfinish повинен бути у стані фіксувати, але це не припустимо\n" #~ "як довгі, які ви маєте застосувати MQ латки." #~ msgid "" #~ "Create new named branch \"%s\" with this commit?\n" #~ "Yes\t- Start new branch with this commit\n" #~ "No\t- Make commit without branch change\n" #~ "Cancel - Cancel this commit" #~ msgstr "" #~ "Створити нову іменовану гулку \"%s\" з цієї фіксації?\n" #~ "Так\t- Почати нову гулку з цієї фіксації\n" #~ "Ні\t- Зафіксувати без зміни гілки\n" #~ "Відмова - Відмовитись від фіксації" #~ msgid "Bisect" #~ msgstr "Половинити" #~ msgid "Discard all changes from merge target (other) revision" #~ msgstr "Відкинути всі зміни із злиттям цільової (іншої) правки" #~ msgid "" #~ "A \"template string\" that, when set, turns the revision number and short " #~ "hashes that are shown on the revision panels into links.
                                                                                                      The " #~ "\"template string\" uses a \"mercurial template\"-like syntax that " #~ "currently accepts two template expressions:

                                                                                                      • {node|short} : " #~ "replaced by the 12 digit revision id (note that {node} on its own is " #~ "currently unsupported).
                                                                                                      • {rev} : replaced by the revision number.For example, in order to link to bitbucket commit pages you can set " #~ "this to:
                                                                                                        https://bitbucket.org/tortoisehg/thg/commits/{node|short}" #~ msgstr "" #~ "Якщо \"template string\" встановлено​​, виявлятиметься номер правки і " #~ "короткі хеші, які показуватимуть на панелі перегляду у посиланнях.
                                                                                                        " #~ "\"template string\" використовуватиме\"mercurial template\"-схожий " #~ "синтаксис, і в даний час має два шаблони:
                                                                                                        • {node|short} : замінити " #~ "12 цифр id правки (зазначимо, що {node} сам по собі зараз не " #~ "підтримується).
                                                                                                        • {rev} : замінити номер правки.
                                                                                                        До прикладу, аби " #~ "посилатися на фіксовані сторінки на BitBucket, які ви можете встановити:" #~ "
                                                                                                        https://bitbucket.org/tortoisehg/thg/commits/{node|short}" #~ msgid "Display local changes that will be pushed to selected repository" #~ msgstr "Показати місцеві зміни, що будуть внесені до обраного сховища" #~ msgid "Archive" #~ msgstr "Архівувати" #~ msgid "Canceled archiving" #~ msgstr "Архівування скасовано" #~ msgid "Backout changeset - %s" #~ msgstr "Відновлений набір змін - %s" #~ msgid "" #~ "The destination \"%s\" already exists!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "Призначення \"%s\" вже існує!\n" #~ "\n" #~ "Ви бажаєте переписати його?" #~ msgid "" #~ "The directory \"%s\" isn't empty!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "Каталог \"%s\" не порожній!\n" #~ "Ви бажаєте переписати його?" #~ msgid "Failed to backout" #~ msgstr "Не вдалося відновитись" #~ msgid "Bookmark input is empty" #~ msgstr "Вхід закладки є порожнім" #~ msgid "unexpected type: %s" #~ msgstr "несподіваний тип: %s" #~ msgid "unexpected response id: %s" #~ msgstr "несподівана відповідь id: %s" #~ msgid "Error in bookmarking" #~ msgstr "Помилка встановлення закладок" #~ msgid "Bookmark name is empty" #~ msgstr "Відсутня назва закладки" #~ msgid "Please select bookmark name to remove" #~ msgstr "Оберіть назву закладки на вилучення" #~ msgid "Please enter new bookmark name" #~ msgstr "Введіть назву нової закладки" #~ msgid "" #~ "** Please report this bug to http://bitbucket.org/tortoisehg/stable/" #~ "issues\n" #~ msgstr "" #~ "** Будь ласка, надішліть звіт з помилки на адресу http://bitbucket.org/" #~ "tortoisehg/stable/issues\n" #~ msgid "Diff to second Parent" #~ msgstr "Різниця з другим попередником" #~ msgid "File is binary.\n" #~ msgstr "Двійковий файл.\n" #~ msgid "Bundle..." #~ msgstr "Пакувати..." #~ msgid "Enable _Wordwrap" #~ msgstr "Увімкнути _Wordwrap" #~ msgid "Starting Revision:" #~ msgstr "Відправна правка:" #~ msgid "Failed to clone" #~ msgstr "Клонування не відбулось" #~ msgid "Please specify different paths" #~ msgstr "Оберіть різні шляхи" #~ msgid " - qrefresh " #~ msgstr " - освіжити нашвидкоруч " #~ msgid " - commit" #~ msgstr " - фіксувати" #~ msgid "_Undo" #~ msgstr "_Повернути" #~ msgid "commit to merge one head" #~ msgstr "фііксувати злиття однієї вершини" #~ msgid "Nothing Commited" #~ msgstr "Нічого не зафіксовано" #~ msgid "Confirm Add/Remove" #~ msgstr "Підтвердити Додавання/Вилучення" #~ msgid "" #~ "The summary line is not followed by a blank line.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "Зведений рядок не є наступним порожнім рядком.\n" #~ "\n" #~ "Не зважати на правила форматування та фіксувати далі?" #~ msgid "Add/Remove the following files?" #~ msgstr "Додати/Вилучити наступні файли?" #~ msgid "Confirm Commit" #~ msgstr "Підтвердити Фіксувати" #~ msgid "" #~ "Named branch \"%s\" already exists, last used in revision %d\n" #~ "Yes\t- Make commit restarting this named branch\n" #~ "No\t- Make commit without changing branch\n" #~ "Cancel - Cancel this commit" #~ msgstr "" #~ "Назва гілки \"%s\" вже існує, останнє використовувалась в ревізії %d\n" #~ "Так\t- Зафіксувати перезапустивши цю назву гілки\n" #~ "Ні\t- Зафіксувати без зміни гілки\n" #~ "Відмова - Відмовитись від фіксації" #~ msgid "Failed to commit" #~ msgstr "Не вдалось зафіксувати" #~ msgid "Annotate Second Parent" #~ msgstr "Аннотувати другого попередника" #~ msgid "_Annotate First Parent" #~ msgstr "_Аннотувати першого попередника" #~ msgid "Index" #~ msgstr "Покажчик" #~ msgid "Select Revision" #~ msgstr "Обрати правку" #~ msgid "Confirm Abort" #~ msgstr "Підтвердити переривання" #~ msgid "Copyright 2008-2010 Steve Borho and others" #~ msgstr "Copyright 2008-2010 Steve Borho та інші." #~ msgid "No incoming changesets" #~ msgstr "Відсутні вхідні зміни" #~ msgid "No matches" #~ msgstr "Збіги відсутні" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/zh_CN.po0000644000000000000000000100566714440352353016646 0ustar00rootroot# Simplified Chinese translation for tortoisehg # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the tortoisehg package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2015-09-03 18:15+0000\n" "Last-Translator: yfdyh000 \n" "Language-Team: Simplified Chinese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2019-07-17 05:46+0000\n" "X-Generator: Launchpad (build 19009)\n" "Language: zh_CN\n" msgid "TortoiseHg Overlay Icon Server" msgstr "TortoiseHg 层叠图标服务" msgid "Exit" msgstr "退出" msgid "About" msgstr "关于" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "某些图标来自TortoiseSVN和Tango项目" msgid "You can visit our site here" msgstr "这里可以访问我们的网站" msgid "&License" msgstr "许可协议(&L)" #, python-format msgid "version %s" msgstr "版本 %s" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "附 Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "TortoiseHg有一个新版本(%s)可以下载!" msgid "License" msgstr "许可协议" msgid "= Working Directory Parent =" msgstr "= 工作目录的上层目录 =" msgid "Directory of files" msgstr "文件所在目录" msgid "Tar archives" msgstr "Tar 文档集" msgid "Uncompressed tar archive" msgstr "未压缩的 tar 文件" msgid "Bzip2 tar archives" msgstr "bzip2 压缩过的 tar 文档集" msgid "Tar archive compressed using bzip2" msgstr "使用 bzip2 压缩的 tar 文件" msgid "Gzip tar archives" msgstr "gzip 压缩过的 tar 文档集" msgid "Tar archive compressed using gzip" msgstr "使用 gzip 压缩的 tar 文件" msgid "Zip archives" msgstr "zip压缩包" msgid "Uncompressed zip archive" msgstr "未压缩的 zip 文件" msgid "Zip archive compressed using deflate" msgstr "使用 deflate 压缩的 zip 文件" msgid "Revision:" msgstr "修订版本:" msgid "All files in this revision" msgstr "" msgid "Only files modified/created in this revision" msgstr "仅修订版本中被修改/创建的文件" msgid "Only files modified/created since:" msgstr "" msgid "Archive Content:" msgstr "" msgid "Recurse into subrepositories" msgstr "进入子仓库" msgid "Browse..." msgstr "浏览..." msgid "Destination path:" msgstr "目标路径:" msgid "Archive types:" msgstr "文档类型:" msgid "Hg command:" msgstr "Hg 命令:" msgid "Select Destination Folder" msgstr "选择目标文件夹" msgid "Select Destination File" msgstr "选择目标文件" msgid "All files (*)" msgstr "所有文件 (*.*)" msgid "Duplicate Name" msgstr "重复的名称" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "目标文件 \"%s\" 已经存在" msgid "Confirm Overwrite" msgstr "确认覆盖" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" "目录 \"%s\" 不为空!\n" "\n" "确认覆盖它?" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" "文件\"%s\"已存在!\n" "\n" "要覆盖它吗?" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "目标文件夹 \"%s\" 已经存在!" #, python-format msgid "Archive - %s" msgstr "存档 - %s" msgid "&Archive" msgstr "存档(&A)" msgid "Backout requires a parent revision" msgstr "回退需要有父版本" msgid "Cannot backout change on a different branch" msgstr "不能在不同的分支回退修改" #, python-format msgid "Backout - %s" msgstr "回退 - %s" msgid "Prepare to backout" msgstr "准备回退" msgid "Verify backout revision and ensure your working directory is clean." msgstr "验证回退修订版本并确认你的工作目录是干净的。" msgid "Backing out a parent revision is a single step operation" msgstr "回退父版本是一个单步操作" msgid "Backout revision" msgstr "回退修订版本" msgid "Not a head, backout will create a new head!" msgstr "不是head版本,回退操作将会创建新的head版本!" msgid "Current local revision" msgstr "当前本地版本" msgid "Working directory status" msgstr "工作目录状态" msgid "Checking..." msgstr "正在检查..." msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" "回退前,你必须提交shelve补丁,或者丢弃修改。" msgid "Automatically resolve merge conflicts where possible" msgstr "尽量自动解决合并的冲突" msgid "Uncommitted local changes are detected" msgstr "检测到未提交的本地修改" msgid "Clean" msgstr "可以合并" msgid "Backing out, then merging..." msgstr "回退中,然后合并..." msgid "All conflicting files will be marked unresolved." msgstr "所有冲突文件都将被标记为未解决。" msgid "Automatically advance to next page when backout and merge are complete." msgstr "回退和合并完成后自动前进到下一个页面。" #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "有%d个需要合并冲突的文件要解决" msgid "No merge conflicts, ready to commit" msgstr "没有合并冲突,可以提交" msgid "Commit backout and merge results" msgstr "提交回退并合并" msgid "Parents" msgstr "父版本" msgid "Working Directory" msgstr "工作目录" msgid "Working Directory (merged)" msgstr "工作目录 (已合并)" msgid "Commit message" msgstr "提交说明" msgid "Skip final confirmation page, close after commit." msgstr "提交后关闭,跳过最后的确认页" msgid "Backed out changeset: " msgstr "回退的修订集: " msgid "Confirm Discard Message" msgstr "确认丢弃改动说明" msgid "Discard current backout message?" msgstr "要丢弃当前的回退说明吗?" msgid "Use English backout message" msgstr "使用英文回退说明" msgid "Backing out and committing..." msgstr "回退并提交..." msgid "Please wait while making backout." msgstr "正在回退,请稍等..." msgid "Committing..." msgstr "正在提交..." msgid "Please wait while committing merged files." msgstr "请稍等,正在提交合并的文件..." msgid "Finished" msgstr "完成" msgid "Backout changeset" msgstr "回退修订集" #, python-format msgid "Bisect - %s" msgstr "二分检测 - %s" msgid "Accept" msgstr "接受" msgid "Known good revision:" msgstr "已知无bug版:" msgid "Known bad revision:" msgstr "已知有bug版:" msgid "Discard local changes (revert --all)" msgstr "放弃本地更改 (revert --all)" msgid "Revision is &Good" msgstr "修订是良好(&G)" msgid "Revision is &Bad" msgstr "修订是坏的(&B)" msgid "&Skip this Revision" msgstr "跳过此修订(&S)" msgid "Close" msgstr "关闭" msgid "Error encountered." msgstr "有错误发生。" msgid "Culprit found." msgstr "找到元凶。" msgid "Revision" msgstr "修订版本" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "测试这个修订版本并报告结果。(无bug/有bug/跳过)" #, python-format msgid "%s (hint: %s)" msgstr "%s (提示: %s)" msgid "Bookmark:" msgstr "书签" msgid "New Name:" msgstr "新名称:" msgid "Activate:" msgstr "激活:" msgid "&Add" msgstr "添加(&A)" msgid "Re&name" msgstr "重命名(&N)" msgid "&Remove" msgstr "移除(&R)" msgid "&Move" msgstr "移动(&M)" #, python-format msgid "Bookmark - %s" msgstr "书签 - %s" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "书签 \"%s\" 已经存在" #, python-format msgid "Bookmark '%s' has been added" msgstr "书签 \"%s\" 已添加" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "名为“%s”的书签不存在" #, python-format msgid "Bookmark '%s' has been moved" msgstr "书签“%s”已被移动" #, python-format msgid "Bookmark '%s' does not exist" msgstr "书签 '%s' 不存在" #, python-format msgid "Bookmark '%s' has been removed" msgstr "书签 \"%s\" 已移除" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "书签已 '%s' 重命名为 '%s'" msgid "TortoiseHg Bookmark Sync" msgstr "TortoiseHg 书签同步" msgid "Outgoing Bookmarks" msgstr "传出书签" msgid "&Push Bookmark" msgstr "推送书签(&P)" msgid "&Remove Bookmark" msgstr "移除书签(&R)" msgid "Incoming Bookmarks" msgstr "传入书签" msgid "P&ull Bookmark" msgstr "拉取书签(&U)" msgid "R&emove Bookmark" msgstr "移除数据(&E)" #, python-format msgid "Pushed local bookmark: %s" msgstr "推送的本地书签: %s" #, python-format msgid "Pulled remote bookmark: %s" msgstr "拉取的远程书签: %s" #, python-format msgid "Removed remote bookmark: %s" msgstr "移除的远程书签: %s" #, python-format msgid "Removed local bookmark: %s" msgstr "移除的本地书签: %s" #, python-format msgid "%s - branch operation" msgstr "%s - 分支操作" msgid "Select branch of merge commit" msgstr "选择要合并的分支" msgid "Changes take effect on next commit" msgstr "修改会在下次提交时生效" msgid "No branch changes" msgstr "不变更分支" msgid "Open a new named branch" msgstr "创建并命名新的分支" msgid "Close current branch" msgstr "关闭当前分支" #, python-format msgid "Please report this bug to our bug tracker" msgstr "请将本bug上报到我们的bug记录器" msgid "Checking for updates..." msgstr "正在检查更新..." msgid "Copy" msgstr "复制" msgid "Quit" msgstr "退出" msgid "TortoiseHg Bug Report" msgstr "报告 TortoiseHg 错误" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "建议更新到最新的TortoiseHg" msgid "Your TortoiseHg is up to date." msgstr "当前的TortoiseHg版本已是最新版本" msgid "Save error report to" msgstr "保存错误报告至" msgid "Text files (*.txt)" msgstr "文本文件 (*.txt)" msgid "Error writing file" msgstr "写文件时发生错误" msgid "TortoiseHg Error" msgstr "TortoiseHg 有误" msgid "" "If you still have trouble, please file a bug report." msgstr "如果该问题还存在,请提交一个bug报告." msgid "Visual Diff" msgstr "比较文件" msgid "View file changes in external diff tool" msgstr "用外置的比较工具查看文件更改" msgid "Edit Local" msgstr "编辑本地版本" msgid "Edit current file in working copy" msgstr "编辑在工作目录中的当前文件" msgid "Revert to Revision" msgstr "回退到修订版本" msgid "Revert file(s) to contents at this revision" msgstr "以这个修订版本恢复文件" msgid "Patch failed to apply" msgstr "打补丁失败" msgid "Manually resolve rejected chunks?" msgstr "手动解决有问题的部分?" msgid "Edit patched file and rejects?" msgstr "编辑补丁的文件并拒绝?" msgid "No deletable chunks" msgstr "不可删除的部分" msgid "Completely remove file from patch?" msgstr "要从Patch中完全移除文件吗?" msgid "Revert all file changes?" msgstr "要还原所有文件的修改吗?" msgid "No chunks remain" msgstr "无剩余部分" msgid "file has been deleted, refresh" msgstr "文件已移除,刷新" msgid "file has been modified, refresh" msgstr "文件已修改,刷新" msgid "Unable to merge chunks" msgstr "无法合并部分" msgid "Add or remove patches must be merged in the working directory" msgstr "添加或移除的补丁必须已在工作目录中合并" msgid "Unable to remove" msgstr "无法删除" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" "无法删除文件 %s\n" "权限被拒绝" msgctxt "files" msgid "All" msgstr "全选" msgctxt "files" msgid "None" msgstr "全不选" msgid "Toggle display of text search bar" msgstr "切换搜索栏的文字显示" msgid "Diff Toolbar" msgstr "差异工具栏" #, python-format msgid "Chunks selected: %d / %d" msgstr "部分选择: %d / %d" msgid "Please wait while the file is opened ..." msgstr "请稍等直到文件被打开..." msgid "Source:" msgstr "源:" msgid "Destination:" msgstr "目标:" msgid "Options" msgstr "选项" msgid "Clone to revision:" msgstr "克隆指定版本:" msgid "A revision identifier, bookmark, tag or branch name" msgstr "一个修订标识符、书签、标签或者分支名称" msgid "Do not update the new working directory" msgstr "不更新当前新的工作目录" msgid "Use pull protocol to copy metadata" msgstr "使用 pull 协议复制元数据" msgid "Clone with minimal processing" msgstr "" msgid "Include patch queue" msgstr "导入补丁队列" msgid "Use proxy server" msgstr "使用代理服务器" msgid "Do not verify host certificate" msgstr "不验证主机证书" msgid "Remote command:" msgstr "远程命令:" msgid "Use largefiles" msgstr "" msgid "Start revision:" msgstr "开始版本:" msgid "Select source repository" msgstr "选择源目录" msgid "Select destination repository" msgstr "选择目标目录" msgid "Select patch folder" msgstr "选择补丁目录" #, python-format msgid "Clone - %s" msgstr "克隆 - %s" msgid "&Clone" msgstr "克隆(&C)" msgid "failed to start command\n" msgstr "无法执行命令\n" msgid "error while running command\n" msgstr "执行命令时出错\n" #, python-format msgid "process exited unexpectedly with code %d" msgstr "进程意外退出,代码 %d" #, python-format msgid "failed to encode command: %s" msgstr "将命令编码失败: %s" #, python-format msgid "timed out while reading: %r..." msgstr "读取超时: %r..." msgid "timed out waiting for message" msgstr "等待消息超时" #, python-format msgid "unexpected response on required channel %r" msgstr "请求的频道 %r 出现意外响应" #, python-format msgid "invalid \"hello\" message: %r" msgstr "无效的 \"hello\" 消息: %r" msgid "no \"runcommand\" capability" msgstr "没有 \"runcommand\" 能力" #, python-format msgid "corrupted command result: %r" msgstr "损坏的命令结果: %r" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "将输入编码失败: %s" msgid "Terminated by user" msgstr "被用户终止" #, python-format msgid "[command terminated by user %s]" msgstr "[命令被用户 %s 终止]" #, python-format msgid "[command interrupted %s]" msgstr "[命令中断 %s]" #, python-format msgid "[command returned code %d %%s]" msgstr "[命令返回代码%d %%s]" #, python-format msgid "[command completed successfully %s]" msgstr "[命令成功完成 %s]" msgid "Running..." msgstr "正在运行..." msgid "Failed!" msgstr "失败!" msgid "Clea&r Log" msgstr "清除日志(&R)" msgid "TortoiseHg Prompt" msgstr "TortoiseHg 提示" msgid "Show Detail" msgstr "显示细节" msgid "Hide Detail" msgstr "隐藏细节" msgid "Confirm Exit" msgstr "确认退出" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" "Mercurial 命令正在执行。\n" "是否终止?" msgid "&Run" msgstr "运行(&R)" msgid "TortoiseHg Command Dialog" msgstr "TortoiseHg 命令对话" msgid "Command Error" msgstr "命令错误" #, python-format msgid "[Code: %d]" msgstr "[代码:%d]" msgid "Merge" msgstr "合并" #, python-format msgid "Merge with %s" msgstr "与 %s 合并" msgid "Patch Name Required" msgstr "补丁名称必需" msgid "You must enter a patch name" msgstr "您必须输入一个补丁名称" msgctxt "start progress" msgid "Commit" msgstr "提交" msgctxt "start progress" msgid "MQ Action" msgstr "MQ动作" msgctxt "start progress" msgid "Rollback" msgstr "回滚" msgid "Commit Dialog Toolbar" msgstr "提交对话工具栏" msgid "Branch: " msgstr "分支: " msgid "Copy message" msgstr "复制提交说明" msgid "Copy one of the recent commit messages" msgstr "复制最近使用过的一个提交说明" msgid "Show Issues" msgstr "显示问题" msgid "Please wait..." msgstr "请稍候..." #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "加载问题追踪器失败 '%s': %s" msgid "Issue Tracker" msgstr "问题追踪器" msgid "Show Issues..." msgstr "显示问题..." msgid "Stop" msgstr "停止" msgid "### patch name ###" msgstr "### 补丁名称 ###" msgid "Commit changes" msgstr "提交修改" msgid "Commit" msgstr "提交" msgid "Amend current revision" msgstr "修正当前版本" msgid "Amend" msgstr "修正" msgid "Create a new patch" msgstr "创建新的补丁" msgid "QNew" msgstr "QNew" msgid "Refresh current patch" msgstr "刷新当前补丁" msgid "QRefresh" msgstr "QRefresh" msgid "Confirm Branch Change" msgstr "验证分支修改" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "分支“%s”已存在,最后一次在版本%d中使用\n" msgid "Restart &Branch" msgstr "重新打开分支(&B)" msgid "&Commit to current branch" msgstr "提交到当前分支(&C)" msgid "Cancel" msgstr "取消" msgid "Confirm New Branch" msgstr "确认新分支" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "是否要在本次提交创建新的分支“%s”?\n" msgid "Create &Branch" msgstr "创建分支(&B)" msgid "Close Branch: " msgstr "关闭分支: " msgid "New Branch: " msgstr "新建分支: " #, python-format msgid "Selected Options: %s" msgstr "选中选项: %s" msgid "Parent:" msgstr "父版本:" msgid "Patch name:" msgstr "补丁名称:" #, python-format msgid "Close %s branch" msgstr "关闭 %s 分支" #, python-format msgid "Rollback commit to revision %d" msgstr "回滚到修订版本 %d" msgid "Confirm Undo" msgstr "验证撤销" msgid "Discard current commit message?" msgstr "要丢弃当前的提交说明吗?" msgid "Message Translation Failure" msgstr "说明翻译失败" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" msgid "&Replace" msgstr "替换(&R)" msgid "Nothing Committed" msgstr "没有提交" msgid "Please enter commit message" msgstr "请输入提交说明" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" "提交信息中没有问题链接。提交信息中应该有一个问题链接。在设置的“问题跟踪”部分" "配置此项。" msgid "No files checked" msgstr "没有选择文件" msgid "No modified files checkmarked for commit" msgstr "没有已修改的文件被选中" msgid "Confirm Add" msgstr "确认添加" msgid "Add selected untracked files?" msgstr "开始跟踪这些文件?" msgid "Confirm Remove" msgstr "确认删除" msgid "Remove selected deleted files?" msgstr "删除选中的文件?" msgid "Nothing changed." msgstr "没有更改。" msgctxt "window title" msgid "Commit" msgstr "提交" #, python-format msgid "%s - commit options" msgstr "%s - 提交选项" msgid "Set username:" msgstr "设置用户名:" msgid "Save in Repo" msgstr "保存到仓库" msgid "Save Global" msgstr "保存到全局" msgid "Set Date:" msgstr "设置日期" msgid "Update" msgstr "更新" msgid "Push After Commit:" msgstr "提交后推送:" msgid "Auto Includes:" msgstr "自动包含:" msgid "Recurse into subrepositories (--subrepos)" msgstr "递归到子仓库 (--subrepos)" msgid "Unable to save username" msgstr "无法保存用户名" msgid "Iniparse must be installed." msgstr "需要安裝ini解释器。" msgid "Unable to write configuration file" msgstr "无法写入配置文件" msgid "Unable to save after commit push" msgstr "无法在提交推送后保存" msgid "Unable to save auto include list" msgstr "无法保存自动导入列表" msgid "Unable to save recurse in subrepos." msgstr "无法保存子仓库的递归" msgid "Invalid date format" msgstr "日期格式无效" msgid "No username configured" msgstr "没有设置用户名" #, python-format msgid "%s - commit" msgstr "%s - 提交" msgid "TortoiseHg Commit" msgstr "TortoiseHg 提交" msgid "Are you sure that you want to cancel the commit operation?" msgstr "您确定要取消提交操作?" msgid "Compress changesets up to and including" msgstr "压缩变更集直至包括" msgid "Onto destination" msgstr "目标" msgid "Compress" msgstr "压缩" #, python-format msgid "Compress - %s" msgstr "压缩 - %s" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the compress" msgstr "您可以继续压缩" msgid "Changes have been moved, you must now commit" msgstr "修改将被移除,你必须现在提交" msgctxt "action button" msgid "Commit" msgstr "提交" msgid "Compress is complete, old history untouched" msgstr "压缩已完成,旧的历史未改变" msgid "must be specified repository" msgstr "必须是指定的仓库" msgid "must be specified 'type' in style" msgstr "必须是样式(style)中指定的'type'" msgid "Git Commit:" msgstr "" msgid "Summary:" msgstr "摘要:" msgid "User:" msgstr "用户:" msgid "Date:" msgstr "日期:" msgid "Age:" msgstr "年龄:" msgid "Branch:" msgstr "分支:" msgid "Close:" msgstr "关闭" msgid "Tags:" msgstr "标签:" msgid "Graft:" msgstr "嫁接:" msgid "Transplant:" msgstr "移植:" msgid "Obsolete state:" msgstr "过时状态:" msgid "Perforce:" msgstr "Perforce:" msgid "Subversion:" msgstr "Subversion:" msgid "Converted From:" msgstr "转换自:" msgid "Original Parent:" msgstr "原始父:" msgid "No items to display" msgstr "不显示任何项" msgid "Use compact view" msgstr "以紧凑方式查看" msgid "Patch:" msgstr "补丁:" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "显示 %(count)d of %(total)d 项" msgid "Select a GUI location to edit:" msgstr "选择一个GUI用以编辑:" msgid "Select the toolbar or menu to change" msgstr "选择要更改的工具栏或菜单" msgid "Tools shown on selected location" msgstr "在选定的位置显示工具" msgid "Delete from list" msgstr "从列表中删除" msgid "Add to list" msgstr "加入列表" msgid "Add separator" msgstr "添加分隔线" msgid "List of all tools" msgstr "所有工具的列表" msgid "New Tool ..." msgstr "新建工具..." msgid "Edit Tool ..." msgstr "编辑工具..." msgid "Delete Tool" msgstr "删除工具" msgid "Type" msgstr "类型" msgid "Name" msgstr "名称" msgid "Command" msgstr "命令" msgid "New hook" msgstr "新建钩子" msgid "Edit hook" msgstr "编辑钩子" msgid "Delete hook" msgstr "删除钩子" msgid "Replace existing hook?" msgstr "替换已有钩子?" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" "现在已有 %s.%s 钩子。\n" "\n" "您确定要替换它吗?" msgid "OK" msgstr "确定" msgid "Missing information" msgstr "缺少信息" msgid "All items" msgstr "所有项目" msgid "Working directory" msgstr "工作目录" msgid "All revisions" msgstr "所有修订" msgid "All contexts" msgstr "所有上下文" msgid "Fixed revisions" msgstr "指定版本" msgid "Applied patches" msgstr "已应用的补丁" msgid "Applied patches or qparent" msgstr "已应用的补丁或 qparent" msgid "" msgstr "<默认图标>" msgid "Configure Custom Tool" msgstr "配置自定义工具" msgid "Tool name" msgstr "工具名称" msgid "The tool name. It cannot contain spaces." msgstr "工具名称。不能包含空格。" #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" msgid "Tool label" msgstr "工具标签" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" msgid "Tooltip" msgstr "工具提示" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" msgid "Icon" msgstr "图标" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" "工具图标。\n" "您可以使用任何 TortoiseHg 内置的图标\n" ",通过将此值设为有效的 TortoiseHg 图标名称\n" "(例如:clone, add, remove, sync, thg-logo, hg-update 等等)。\n" "您也可以将此值设为指向您的文件系统上任何图标的绝对路径。" msgid "On repowidget, show for" msgstr "在 repowidget上显示" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" msgid "Show Output Log" msgstr "显示输出日志" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "" "当启用时,在命令运行时自动显示输出日志。\n" "默认: False。" msgid "You must set a tool name." msgstr "您必须设置工具名称。" msgid "The tool name cannot have any spaces in it." msgstr "工具名称不能包含空格。" msgid "You must set a command to run." msgstr "您必须设置运行的命令。" msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" msgid "Configure Hook" msgstr "配置钩子" msgid "Hook type" msgstr "钩子类型" msgid "Select when your command will be run" msgstr "选择将运行的命令" msgid "The hook name. It cannot contain spaces." msgstr "钩子名称。不能包含空格。" msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" "将要执行的命令。\n" "要执行一个 python 函数时,在命令前加上 \"python:\"。\n" msgid "You must set a valid hook type." msgstr "您必须设置一个有效的钩子类型。" msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "钩子名称不能包含任何空格、制表符或 '=' 字符。" msgid "Console" msgstr "控制台" msgid "File &History / Annotate" msgstr "文件历史(&H) / 溯源" msgid "Show the history of the selected file" msgstr "显示选中文件的历史" msgid "Co&mpare File Revisions" msgstr "比较文件修订(&M)" msgid "Compare revisions of the selected file" msgstr "比较选中的文件的修订版本" msgid "Filter Histor&y" msgstr "历史过滤器(&Y)" msgid "Query about changesets affecting the selected files" msgstr "查询影响选定文件的变更集" msgid "Diff &Changeset to Parent" msgstr "比较变更集与父的差异(&C)" msgid "Diff Changeset to Loc&al" msgstr "比较变更集与本地的差异(&A)" msgid "&Diff to Parent" msgstr "比较与父的差异(&D)" msgid "Diff to &Local" msgstr "比较与本地的差异(&L)" msgid "View changes to current in external diff tool" msgstr "用外置的比较工具查看当前文件更改" msgid "&View at Revision" msgstr "查看修订版本(&V)" msgid "View file as it appeared at this revision" msgstr "查看出现在修订版本中的文件" msgid "&Save at Revision..." msgstr "保存修订版本(&S)..." msgid "Save file as it appeared at this revision" msgstr "另存出现在修订版本中的文件" msgid "Save file to" msgstr "保存文件到" msgid "&Edit Local" msgstr "编辑本地(&E)" msgid "&Open Local" msgstr "打开本地(&O)" msgid "E&xplore Local" msgstr "浏览本地(&X)" msgid "Open parent folder of current file in the system file manager" msgstr "在系统的文件管理器中打开当前文件的父文件夹" msgid "&Copy Patch" msgstr "复制路径(&C)" msgid "Copy &Path" msgstr "复制路径(&P)" msgid "Copy full path of file(s) to the clipboard" msgstr "复制所有文件路径" msgid "&Revert to Revision..." msgstr "恢复到修订版本(&R)..." msgid "Open S&ubrepository" msgstr "打开子仓库(&U)" msgid "Open the selected subrepository" msgstr "打开选中的子仓库" msgid "E&xplore Folder" msgstr "导出文件夹(&X)" msgid "Open the selected folder in the system file manager" msgstr "在系统的文件管理器中打开选定文件夹" msgid "Open &Terminal" msgstr "打开终端(&T)" msgid "Open a shell terminal in the selected folder" msgstr "在选定文件夹中打开一个 shell 终端" msgid "Custom Tools" msgstr "自定义工具" msgid "Diff &Local" msgstr "与本地比较差异(&L)" msgid "&View Missing" msgstr "查看缺失(&V)" msgid "View O&ther" msgstr "查看其他(&T)" msgid "Add &Largefiles..." msgstr "添加大文件(&L)" msgid "&Forget" msgstr "移除(&F)" msgid "&Delete Unversioned..." msgstr "删除无版本控制(&D)..." msgid "Confirm Delete Unversioned" msgstr "确认删除无版本控制的文件" msgid "Delete the following unversioned files?" msgstr "删除下列无版本控制的文件?" msgid "&Delete" msgstr "删除(&D)" msgid "Re&move Versioned" msgstr "移除已版本控制(&M)" msgid "&Revert..." msgstr "还原(&R)..." msgid "Uncommited merge - please select a parent revision" msgstr "未提交合并 - 请选择一个父版本" msgid "Revert files to local or other parent?" msgstr "要还原文件到本地版本或其他父版本吗?" msgid "&Local" msgstr "本地(&L)" msgid "&Other" msgstr "其他(&O)" msgid "Confirm Revert" msgstr "确认还原" msgid "Revert local file changes?" msgstr "还原本地文件更改?" msgid "&Revert with backup" msgstr "用备份还原(&R)" msgid "&Discard changes" msgstr "放弃更改(&D)" msgid "Revert the following files?" msgstr "还原下列文件?" msgid "&Revert" msgstr "还原(&R)" msgid "&Copy..." msgstr "复制(&C)..." msgid "Re&name..." msgstr "重命名(&N)..." msgid "&Ignore..." msgstr "忽略(&I)..." msgid "Edit Re&jects" msgstr "编辑拒绝(&j)" msgid "Manually resolve rejected patch chunks" msgstr "手动解决被拒绝的补丁块" msgid "De&tect Renames..." msgstr "检测重命名(&T)..." msgid "&Mark Resolved" msgstr "标记已解决(&M)" msgid "&Mark Unresolved" msgstr "标记未解决(&M)" msgid "Restart Mer&ge" msgstr "重新开始合并(&G)" msgid "Was renamed from" msgstr "已重命名自" msgid "Restart Merge &with" msgstr "重新开始合并与(&W)" msgid "Display the file anyway" msgstr "坚持显示文件" msgid "Diff not displayed: " msgstr "差异未显示: " #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" "文件大于文件大小限制。\n" "差距 = %s KB" msgid "File is binary" msgstr "文件是二进制的" msgid "File may be binary (maximum line length exceeded)" msgstr "文件可能是二进制文件(超出最大行长度)" msgid "File or diffs not displayed: " msgstr "文件或差异未显示: " msgid " (was added)" msgstr " (已添加)" #, python-format msgid " (copied from %s)" msgstr " (复制自 %s)" #, python-format msgid " (renamed from %s)" msgstr " (原名 %s)" msgid " (is a symlink)" msgstr " (是符号链接)" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" "文件或差异不能显示:文件超出指定的最大大小。\n" "maxdiff = %s KB" msgid " (was deleted)" msgstr " (已被删除)" msgid " (was added, now missing)" msgstr " (已添加,但丢失)" msgid " (is unversioned)" msgstr " (未跟踪)" msgid "exec mode has been set" msgstr "exec 模式已设置" msgid "exec mode has been unset" msgstr "exec 模式已被取消" #, python-format msgid "changeset: %s" msgstr "修订集: %s" msgid "Initial revision" msgstr "初始版本" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" "[警告] 无效的子仓库版本ID:\n" "\t%s\n" "\n" msgid "Subrepo created and set to initial revision." msgstr "已创建子仓库并设置为初始版本。" msgid "Subrepo initialized to revision:" msgstr "子仓库初始化到版本:" msgid "Subrepo removed from repository." msgstr "子仓库已经从仓库中移除。" msgid "Previously the subrepository was at the following revision:" msgstr "此前该子仓库已有下列修订:" msgid "Subrepo was not changed." msgstr "子仓库未被修改。" msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "[警告] 缺少子仓库。更新到此修订以克隆它。" msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "[警告] 不完整的子仓库。更新此修订来拉取它。" msgid "Subrepo state is:" msgstr "子仓库状态是:" msgid "Revision has changed to:" msgstr "修订版本变为:" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "变更集: %s (未在子仓库找到)" msgid "From:" msgstr "发件人:" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "[警告] 缺少已变更的子仓库。更新到此版本来克隆它。" msgid "Subrepository not found in the working directory." msgstr "子仓库未在工作目录中找到。" msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "[警告] 已变更的子仓库不完整。更新到此版本来拉取它。" msgid "Not a Mercurial subrepo, not previewable" msgstr "不是 Mercurial 子仓库,无法预览" #, python-format msgid "Error previewing subrepo: %s" msgstr "预览子仓库时出错: %s" msgid "Subrepo may be damaged or inaccessible." msgstr "子仓库可能已损坏或者无法访问。" msgid "The subrepository is dirty." msgstr "该子仓库存在问题。" msgid "File Status:" msgstr "文件状态:" msgid "(is a changed sub-repository)" msgstr "(是已修改的子仓库)" msgid "(is an unchanged sub-repository)" msgstr "(是未修改的子仓库)" msgid "(is a dirty sub-repository)" msgstr "(是脏的子仓库)" msgid "(is a new sub-repository)" msgstr "(是新的子仓库)" msgid "(is a removed sub-repository)" msgstr "(是已移除的子仓库)" msgid "(is a changed and dirty sub-repository)" msgstr "(是已修改并且脏的子仓库)" msgid "(is a new and dirty sub-repository)" msgstr "(是新的并且脏的子仓库)" msgid "open..." msgstr "打开..." #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "Hg文件日志查看器 [%s] - %s" msgid "File History Log Columns" msgstr "文件历史记录栏" msgid "Back" msgstr "后退" msgid "Forward" msgstr "前进" msgid "Diff Selected &Changesets" msgstr "与选中的变更集比较差异(&C)" msgid "&Diff Selected File Revisions" msgstr "与选中的文件版本比较差异(&D)" msgid "Show Revision &Details" msgstr "显示修订详情(&D)" msgid "Too many rows selected for menu" msgstr "为菜单选择了太多行" msgid "File Differences Log Columns" msgstr "文件差异记录列" msgid "Next diff" msgstr "下一个差异" msgid "Previous diff" msgstr "上一个差异" msgid "Unicode" msgstr "Unicode" msgid "Western Europe" msgstr "西欧" msgid "Unified Chinese" msgstr "统一中文" msgid "Traditional Chinese" msgstr "繁体中文" msgid "Korean" msgstr "韩语" msgid "Japanese" msgstr "日语" msgid "Thai" msgstr "泰语" msgid "Central and Eastern Europe" msgstr "中欧和东欧" msgid "Cyrillic" msgstr "西里尔字母" msgid "Russian" msgstr "俄语" msgid "Ukrainian" msgstr "乌克兰语" msgid "Greek" msgstr "希腊语" msgid "Turkish" msgstr "土耳其语" msgid "Arabic" msgstr "阿拉伯语" msgid "Hebrew" msgstr "希伯来语" msgid "Vietnamese" msgstr "越南语" msgid "Baltic" msgstr "波罗的语" msgid "Southern Europe" msgstr "南欧" msgid "Nordic" msgstr "北欧" msgid "Celtic" msgstr "凯尔特语" msgid "South-Eastern Europe" msgstr "东南欧语系" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "utf-8,gbk" msgid "View change as unified diff output" msgstr "以统一差异输出查看变更" msgid "View change in context of file" msgstr "查看文件内容的变更" msgid "Annotate with revision numbers" msgstr "溯源修订编号" msgid "Next Diff" msgstr "下一个差异" msgid "Previous Diff" msgstr "上一个差异" msgid "Open shelve tool" msgstr "打开shelve工具" msgid "&Auto Detect" msgstr "自动检测(&A)" msgid "Show changes from first parent" msgstr "查看自第一个父版本的修订" msgid "Show changes from second parent" msgstr "查看自第二个父版本的修订" msgid "E&ncoding" msgstr "编码(&N)" msgid "&Search in Current File" msgstr "搜索当前文件(&S)" msgid "Search in All &History" msgstr "搜索所有历史(&H)" msgid "Go to Line" msgstr "跳转到行" #, python-format msgid "Enter line number (1 - %d)" msgstr "请输入行号 (1 - %d)" msgid "Show &Author" msgstr "显示作者(&A)" msgid "Show &Date" msgstr "显示日期(&D)" msgid "Show &Revision" msgstr "显示修订(&R)" msgid "Annotate Op&tions" msgstr "溯源选项(&T)" msgid "Search Selected Text" msgstr "搜索选定文本" msgid "In Current &File" msgstr "在当前文件中(&F)" msgid "In &Current Revision" msgstr "在当前版本(&C)" msgid "In &Original Revision" msgstr "在原来版本(&O)" msgid "In All &History" msgstr "在所有历史(&H)" msgid "Go to" msgstr "转至" msgid "View File at" msgstr "查看文件在" msgid "Diff File to" msgstr "比较文件差异与" msgid "&Originating Revision" msgstr "原版本(&O)" msgid "&Parent Revision" msgstr "父版本(&P)" #, python-format msgid "&Parent Revision (%d)" msgstr "父版本 (%d) (&P)" msgid "&Mark Excluded Changes" msgstr "标记排除的变更(&M)" msgid "(excluded from the next commit)" msgstr "(排除于下次提交)" msgid "Interrupted graft operation found" msgstr "发现中断的嫁接操作" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" "发现了一个中断的嫁接操作。\n" "\n" "您无法执行另一次嫁接操作,除非您先放弃中断的嫁接操作。" msgid "Continue or abort interrupted graft operation?" msgstr "继续或放弃中断的嫁接操作吗?" msgid "To graft destination" msgstr "嫁接目标" msgid "Use my user name instead of graft committer user name" msgstr "使用我的用户名,而非嫁接提交者的用户名" msgid "Use current date" msgstr "使用当前日期" msgid "Append graft info to log message" msgstr "已应用嫁接到日志消息" msgid "Graft" msgstr "嫁接" msgid "Abort" msgstr "中止" #, python-format msgid "Graft - %s" msgstr "嫁接 - %s" msgid "Graft changeset" msgstr "嫁接变更集" #, python-format msgid "Graft changeset #%d of %d" msgstr "嫁接变更集 #%d / %d" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" msgid "You may continue or start the graft" msgstr "您可以继续或开始嫁接" msgid "Graft is complete" msgstr "嫁接完成" msgid "Graft failed" msgstr "嫁接失败" msgid "Graft aborted" msgstr "嫁接已放弃" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "嫁接产生了合并冲突,这必须被解决" msgid "You may continue the graft" msgstr "您可以继续嫁接" msgid "Exiting with an unfinished graft is not recommended." msgstr "不推荐退出一次未完成的嫁接。" msgid "Consider aborting the graft first." msgstr "首先考虑放弃嫁接。" msgid "&Exit" msgstr "退出(&E)" msgid "### regular expression search pattern ###" msgstr "###正则表达式搜索模式###" msgid "Regexp:" msgstr "正则式:" msgid "Ignore case" msgstr "忽略大小写" msgid "Search" msgstr "查找" msgid "Working Copy" msgstr "工作副本" msgid "All History" msgstr "所有历史" msgid "Report only the first match per file" msgstr "仅报告每个文件的首个匹配" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "跟踪复制和重命名操作" msgid "Includes:" msgstr "包括:" msgid "Excludes:" msgstr "排除:" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "逗号分隔的排除文件模式列表。排除模式将在包含模式之后应用。" msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "逗号分隔的包含文件模式列表。默认情况下,对整个仓库搜索项目。" #, python-format msgid "\"%s\" removed from search history" msgstr "从搜索历史中删除 \"%s\"" #, python-format msgid "\"%s\" removed from path history" msgstr "从路径历史中删除 \"%s\"" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "grep: 无效的匹配规则: %s\n" #, python-format msgid "grep: %s\n" msgstr "grep: %s\n" #, python-format msgid "%d matches found" msgstr "找到%d个匹配" msgid "No matches found" msgstr "没有匹配的结果" msgid "Searching" msgstr "搜索中" msgid "history" msgstr "历史" msgid "Interrupted" msgstr "中断" msgid "files" msgstr "文件" #, python-format msgid "Skipping %s, unable to read" msgstr "跳过%s,无法读取" msgid "Vi&ew File" msgstr "查看文件(&E)" msgid "&View Changeset" msgstr "查看变更集(&V)" msgid "Annotate &File" msgstr "溯源文件(&F)" msgid "File" msgstr "文件" msgid "Line" msgstr "行" msgid "Rev" msgstr "版本" msgid "User" msgstr "用户" msgid "Match Text" msgstr "匹配文字" msgid "TortoiseHg Search" msgstr "TortoiseHg 搜索" #, python-format msgid "Detect Copies/Renames in %s" msgstr "在 %s 检测复制和重命名操作" msgid "Unrevisioned Files" msgstr "未修订的文件" msgid "Refresh file list" msgstr "刷新文件列表" #, python-format msgid "Min Similarity: %d%%" msgstr "最小相似度: %d%%" msgid "Only consider deleted files" msgstr "仅考虑删除的文件" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "" msgid "Find Renames" msgstr "查找重命名" msgid "Find copy and/or rename sources" msgstr "查找复制重命名源" msgid "Candidate Matches" msgstr "候选匹配" msgid "Accept All Matches" msgstr "接受所有匹配" msgid "Accept Selected Matches" msgstr "接受选中匹配" msgid "Differences from Source to Dest" msgstr "源文件与目标文件的差异" msgid "Search already in progress" msgstr "搜索已在进行中" msgid "Cannot start a new search" msgstr "无法开始新的搜索" msgid "No files to find" msgstr "没有可查找的文件" msgid "There are no files that may have been renamed" msgstr "有可能文件已被重命名" msgid "Multiple sources chosen" msgstr "已选择多个来源" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" "您重命名了多个目标文件:\n" "%s。放弃!" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" "%s 和 %s 有相同的内容\n" "\n" #. i18n: percent format #, python-format msgid "%d%%" msgstr "%d%%" msgid "Source" msgstr "源" msgid "Dest" msgstr "目标" msgid "% Match" msgstr "%匹配" msgid "Sending Email" msgstr "发送邮件" msgid "Email" msgstr "邮件服务器" msgid "To:" msgstr "收件人:" msgid "Cc:" msgstr "抄送:" msgid "In-Reply-To:" msgstr "回复给:" msgid "Message identifier to reply to, for threading" msgstr "指定邮件内容ID, 相同ID的邮件隶属于同一个主题" msgid "Flag:" msgstr "标志:" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" "Hg 补丁(通过输出命令产生)与大多数补丁程序相兼容。它们包含了一个包含最重要的" "修订集元数据的数据头。" msgid "Send changesets as Hg patches" msgstr "发送修订集为Hg补丁" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" "git补丁允许包含二进制文件, 并且能够记录文件拷贝和权限修订等信息, 但接收者不使" "用git或Mercurial的话, 可能无法使用git补丁." msgid "Use extended (git) patch format" msgstr "使用扩展的(git)补丁格式" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" "如果接收者不使用Mercurial(或不想见到头信息)的话, 可以去掉Mercurial头信息. 不" "过这样做会导致包含在头信息中的用户名和父版本信息丢失." msgid "Plain, do not prepend Hg header" msgstr "普通,不考虑 Hg 数据头" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" "打包会把修订集的所有信息保存成二进制格式供上游用户使用, 这是把改动发给" "Mercurial用户的最安全的做法." msgid "Send single binary bundle, not patches" msgstr "把补丁整合成一个二进制包发送" msgid "send patches as part of the email body" msgstr "作为电子邮件正文的一部分发送补丁" msgid "body" msgstr "正文" msgid "send patches as attachments" msgstr "以附件方式发送补丁" msgid "attach" msgstr "附件" msgid "send patches as inline attachments" msgstr "以内嵌附件的方式发送补丁" msgid "inline" msgstr "内嵌" msgid "add diffstat output to messages" msgstr "将diffstat的输出添加到说明中" msgid "diffstat" msgstr "diffstat" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" "补丁序列描述会被包含在主题为[PATCH 0 of N]的初始摘要邮件中, 该描述信息应该说" "明整个补丁序列的作用. 当以打包方式邮寄补丁时, 这些字段构成邮件的主题和正文." "Flags是一个逗号分隔的列表, 其中包含的标签会作为前缀插入到邮件主题中." msgid "Write patch series (bundle) description" msgstr "书写补丁系列 (bundle) 的描述" msgid "Subject:" msgstr "主题:" msgid "Changesets" msgstr "修订集" msgid "Select &All" msgstr "全选(&A)" msgid "Select &None" msgstr "全不选(&N)" msgid "Edit" msgstr "编辑" msgid "Preview" msgstr "预览" msgid "&Settings" msgstr "设置(&S)" msgid "Send &Email" msgstr "发送邮件(&E)" msgid "&Close" msgstr "关闭(&C)" #, python-format msgid "Ignore filter - %s" msgstr "忽略名单 - %s" msgid "Glob" msgstr "Glob" msgid "Regexp" msgstr "正则表达式" msgid "Add" msgstr "添加" msgid "Edit File" msgstr "编辑文件" msgid "Ignore Filter" msgstr "忽略过滤器" msgid "Untracked Files" msgstr "未跟踪文件" msgid "Backspace or Del to remove row(s)" msgstr "使用退格或 Del 删除行" msgid "Add ignore filter..." msgstr "添加忽略名单..." msgid "selected files" msgstr "已选择文件" msgid "Ignore " msgstr "忽略 " msgid "Invalid glob expression" msgstr "无效的通配符表达式" msgid "Invalid regexp expression" msgstr "无效的正则表达式" msgid "Unable to read repository status" msgstr "无法读取仓库状态" msgid "New file created" msgstr "新文件已创建" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "TortoiseHg 已创建一个新的 .hgignore 文件。您希望将其纳入版本控制吗?" msgid "Unable to write .hgignore file" msgstr "无法写入 .hgignore 文件" msgid "Copy working directory files from skeleton" msgstr "复制选定的工作目录文件" msgid "Create special files (.hgignore, ...)" msgstr "" msgid "Make repo compatible with Mercurial <1.7" msgstr "创建和 Mercurial 1.7 以前的版本兼容的仓库" msgid "New Repository" msgstr "新建仓库" msgid "&Create" msgstr "创建(&C)" msgid "Unable to create a config file" msgstr "无法创建配置文件" msgid "Insufficient access rights." msgstr "访问权限不足。" msgid "Show Log" msgstr "显示日志" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" msgid "Add as &Largefiles" msgstr "作为大文件添加(&L)" msgid "Add as &Normal Files" msgstr "作为普通文件添加(&N)" msgid "Invalid Patterns" msgstr "" msgid "Failed to process largefiles.patterns." msgstr "" msgid "Word docs (*.doc *.docx)" msgstr "" msgid "PDF docs (*.pdf)" msgstr "" msgid "Excel files (*.xls *.xlsx)" msgstr "" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "" msgid "Refresh lock information" msgstr "" msgid "Lock a file not described in .hglocks" msgstr "" msgid "Stop current operation" msgstr "停止当前操作" msgid "Locked And Lockable Files:" msgstr "" msgid "Path" msgstr "路径" msgid "Locking User" msgstr "" msgid "Purpose" msgstr "" msgid "Simplelock extension not enabled" msgstr "" msgid "Please enable and configure simplelock" msgstr "" msgid "Open a (nonmergable) file you wish to be locked" msgstr "" msgid "File was not within current repository" msgstr "" #, python-format msgid "Locking %s" msgstr "" #, python-format msgid "Unlocking %s" msgstr "" msgid "Refreshing locks..." msgstr "" #, python-format msgid "Lock of %s successful" msgstr "" #, python-format msgid "Lock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s successful" msgstr "" msgid "Ready, double click to lock or unlock" msgstr "" msgid "Ready" msgstr "" msgid "You can only release your own locks" msgstr "" msgid "Find revisions matching fields of:" msgstr "查找修订字段匹配:" msgid "Revision to Match:" msgstr "修订匹配:" msgid "Fields to match:" msgstr "字段匹配:" msgid "Summary (first description line)" msgstr "摘要 (首行描述)" msgid "Description" msgstr "描述" msgid "Author" msgstr "作者" msgid "Date" msgstr "日期" msgid "Files" msgstr "文件列表" msgid "Diff contents" msgstr "比较内容差异" msgid "Subrepo states" msgstr "子仓库状态" msgid "Branch" msgstr "分支" msgid "Phase" msgstr "阶段" msgid "&Match" msgstr "匹配(&M)" #, python-format msgid "Find matches - %s" msgstr "查找匹配项 - %s" msgid "Revisions to Match:" msgstr "要匹配的版本:" #, python-format msgid "Match any of %d revisions" msgstr "匹配任何%d修订" msgid "Unknown revision!" msgstr "未知修订版本!" msgid "Parse Error!" msgstr "解析出错!" #, python-format msgid "Merge - %s" msgstr "合并 - %s" msgid "Do you want to exit?" msgstr "确定要退出?" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" "要完成合并,您必须提交该工作目录。\n" "\n" "要取消此次合并,您可以更新到合并的任一父版本。" msgid "Prepare to merge" msgstr "准备合并" msgid "Verify merge targets and ensure your working directory is clean." msgstr "验证合并目标并确认您的工作目录是干净的。" msgid "Not a head revision!" msgstr "不是Head版本!" msgid "Merge from (other revision)" msgstr "合并自 (要并入的修订版本)" msgid "Merge to (working directory)" msgstr "合并到 (工作目录)" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" "工作目录已被合并继续丢弃已存在的合并。" msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" "在合并前,您必须提交,将修订剥离为补丁,或 放弃所做更改。" msgid "Or use:" msgstr "或使用:" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "强制合并 (-f/--force)" msgid "Discard all changes from the other revision" msgstr "" msgid "&Discard" msgstr "丢弃(&D)" msgid "Confirm Discard Changes" msgstr "确认放弃修改" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" "修订版本 %s 所做更改及其全部未合并的上级修订将被丢弃。\n" "\n" "您确实是要这样做吗?" msgctxt "working dir state" msgid "Clean" msgstr "可以合并" msgid "Merging..." msgstr "正在合并..." msgid "Automatically advance to next page when merge is complete." msgstr "合并完成时自动前进到下一页" #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "" "%d个文件在两个分支中均被修改,您需要解决合并冲突" msgid "" "No merge conflicts, ready to commit or review" msgstr "没有合并冲突,准备提交或者审核" msgid "Commit merge results" msgstr "提交合并结果" msgid "Commit Options" msgstr "提交选项" msgid "Commit Now" msgstr "现在提交" msgid "Commit Later" msgstr "以后提交" msgid "Merge changeset" msgstr "合并修改集" msgid "Syntax Highlighting" msgstr "语法高亮" msgid "Paste &Filenames" msgstr "粘贴文件名(&F)" msgid "App&ly Format" msgstr "应用格式(&L)" msgid "C&onfigure Format" msgstr "配置格式(&O)" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "%s 有已退回(rejected)的块,连同“退回”一起编辑补丁文件?" msgid "&Commit to Queue..." msgstr "提交到队列(&C)..." msgid "Create &New Queue..." msgstr "创建新队列(&N)..." msgid "&Rename Active Queue..." msgstr "更名活跃队列(&R)..." msgid "&Delete Queue..." msgstr "删除队列(&D)..." msgid "&Purge Queue..." msgstr "刷新队列(&P)..." msgid "Create Patch Queue" msgstr "创建补丁队列" msgid "New patch queue name" msgstr "新的补丁队列名称" msgid "Create" msgstr "创建" msgid "Rename Patch Queue" msgstr "更名补丁队列" #, python-format msgid "Rename patch queue '%s' to" msgstr "更名补丁队列“%s”到" msgid "Rename" msgstr "重命名" msgid "Delete Patch Queue" msgstr "删除补丁队列" msgid "Delete reference to" msgstr "删除引用到" msgid "Delete" msgstr "删除" msgid "Purge Patch Queue" msgstr "刷新补丁队列" msgid "Remove patch directory of" msgstr "移除补丁目录" msgid "Purge" msgstr "刷新(Purge)" msgid "Rename Patch" msgstr "更名补丁" #, python-format msgid "Rename patch %s to:" msgstr "更名补丁 %s 到:" msgid "no guards" msgstr "无警卫" msgid "Patch Queue" msgstr "补丁队列" msgctxt "MQ QPush" msgid "Push" msgstr "推送" msgid "Apply one patch" msgstr "应用一个补丁" msgctxt "MQ QPush" msgid "Push all" msgstr "全部推送" msgid "Apply all patches" msgstr "应用所有补丁" msgid "Pop" msgstr "弹出" msgid "Unapply one patch" msgstr "反向应用一个补丁" msgid "Pop all" msgstr "全部弹出" msgid "Unapply all patches" msgstr "取消应用所有补丁" msgid "Go &to Patch" msgstr "" msgid "&Apply Only This Patch" msgstr "" msgid "Apply only the selected patch" msgstr "" msgid "&Finish Patch" msgstr "完成补丁(&F)" msgid "Move applied patches into repository history" msgstr "" msgid "&Delete Patches..." msgstr "删除补丁(&D)..." msgid "Delete selected patches" msgstr "删除选定补丁" msgid "Re&name Patch..." msgstr "更名补丁(&N)..." msgid "Set &Guards..." msgstr "设置警卫(&G)..." msgid "Configure guards for selected patch" msgstr "为选定补丁配置警卫" msgid "Patch Queue Actions Toolbar" msgstr "补丁队列操作工具栏" msgid "Configure guards" msgstr "配置警卫" #, python-format msgid "Input new guards for %s:" msgstr "请为 %s 输入新的警卫:" msgid "Confirm patch queue switch" msgstr "确认切换补丁队列" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "您确定要激活补丁队列“%s”吗?" #, python-format msgid "Guards: %d/%d" msgstr "警卫:%d/%d" msgid "MQ options" msgstr "MQ 选项" msgid "Force push or pop (--force)" msgstr "强制推送或弹出 (--force)" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "容许不冲突的本地更改 (--keep-changes)" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "待定的必须变更列表 - %s" msgid "Submitting p4 changelist..." msgstr "正在提交 p4 变更列表..." msgid "Reverting p4 changelist..." msgstr "正在恢复 p4 变更列表..." msgid "Patch Branch Toolbar" msgstr "补丁分支工具栏" msgid "Merge all pending dependencies" msgstr "合并所有待定依赖" msgid "Backout current patch branch" msgstr "拆除当前补丁分支" msgid "Backport part of a changeset to a dependency" msgstr "嫁接一个变更集的部分到一个依赖" msgid "Start a new patch branch" msgstr "开始一个新的补丁分支" msgid "Edit patch dependency graph" msgstr "编辑补丁依赖图" msgid "will be closed" msgstr "将被关闭" #, python-format msgid "needs merge of %i heads\n" msgstr "需要合并 %i 个头\n" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "需要与 %s 合并 (通过 %s)\n" #, python-format msgid "needs merge with %s\n" msgstr "需要与 %s 合并\n" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "需要更新diff基点到 %s 的 tip\n" msgid "&Goto (update workdir)" msgstr "转到(&G) (更新工作目录)" msgid "&Merge" msgstr "合并(&M)" msgid "No patch branch selected" msgstr "没有选择补丁分支" msgid "No editor found" msgstr "未发现编辑器" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" "Mercurial 无法找到编辑器。请配置 Mercurial 使用您系统中已安装的编辑器。" msgid "Graph" msgstr "图表" msgid "Status" msgstr "状态" msgid "Title" msgstr "标题" msgid "Message" msgstr "信息" msgid "New Patch Branch" msgstr "新建补丁分支" msgid "Patch message:" msgstr "补丁说明:" msgid "Patch date:" msgstr "补丁日期:" msgid "Patch user:" msgstr "补丁用户:" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "发布审核(&R)" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "无效的设置 - The ReviewBoard server is not setup" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "无效的设置 - Please provide your ReviewBoard username" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" "无效的 reviewboard 插件。请下载 Mercurial reviewboard 插件 3.5 或更高版本,从" "下述网站。\n" "\n" " %s" msgid "Review Board" msgstr "审核面板" msgid "Password:" msgstr "密码:" msgid "Error" msgstr "出错" #, python-format msgid "Review draft posted to %s\n" msgstr "审核草稿已发布到 %s\n" #, python-format msgid "Review published to %s\n" msgstr "审核已公开到 %s\n" msgid "Success" msgstr "成功" msgid "Repository ID:" msgstr "仓库ID:" msgid "Post Review" msgstr "发布审核" msgid "Review ID:" msgstr "审核 ID:" msgid "Update the fields of this existing request" msgstr "更新这个已存在请求的字段" msgid "Update Review" msgstr "更新审核" msgid "Create diff with all outgoing changes" msgstr "创建所有传出变更差异" msgid "Create diff with all changes on this branch" msgstr "创建所有在此分支的变更差异" msgid "Publish request immediately" msgstr "立即发布请求" msgid "%p%" msgstr "%p%" msgid "Connecting to Review Board..." msgstr "正在连接审核面板..." msgid "Target:" msgstr "目标:" msgid "Do not modify working copy (-k/--keep)" msgstr "" #, python-format msgid "Prune - %s" msgstr "修剪 - %s" msgid "&Prune" msgstr "修剪(&P)" msgid "No unknown files found" msgstr "未发现未知文件" msgid "No ignored files found" msgstr "未发现忽略的文件" msgid "No trash files found" msgstr "未发现废件文件" msgid "Delete empty folders" msgstr "删除空的文件夹" msgid "Preserve files beginning with .hg" msgstr "保留以 .hg 开头的文件" #, python-format msgid "%s - purge" msgstr "%s - 清理工作目录" msgid "Checking" msgstr "正在检查" msgid "Ready to purge." msgstr "已准备好清理工作目录" #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "删除 %d 个未知文件" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "删除 %d 个已忽略文件" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "删除 .hg/Trashcan 中的 %d 个文件" msgid "Confirm file deletions" msgstr "确认文件删除" msgid "Are you sure you want to delete these files and/or folders?" msgstr "您确认要删除这些文件和文件夹吗?" msgid "Deletion failures" msgstr "删除失败" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "无法删除 %d 个文件或文件夹" msgid "Deleting trash folder..." msgstr "正在清空垃圾箱..." #, python-format msgid "Deleted %d files" msgstr "已删除 %d 个文件" #, python-format msgid "Deleted %d files and %d folders" msgstr "已删除 %d 个文件和 %d 个文件夹" msgid "Delete Patches" msgstr "删除补丁" msgid "Remove patches from queue?" msgstr "从队列中移除补丁?" msgid "Keep patch files" msgstr "保留补丁文件" #, python-format msgid "Patch fold - %s" msgstr "补丁折叠(fold) - %s" msgid "New patch message:" msgstr "新补丁说明:" msgid "Patches to fold" msgstr "要折叠(fold)的补丁" msgid "&Undo" msgstr "撤销(&U)" msgid "&Redo" msgstr "重试(&R)" msgid "Cu&t" msgstr "剪切(&T)" msgid "&Copy" msgstr "复制(&C)" msgid "&Paste" msgstr "粘贴(&P)" msgid "&Editor Options" msgstr "编辑器选项(&E)" msgid "&Wrap" msgstr "精准(&W)" msgctxt "wrap mode" msgid "&None" msgstr "无(&N)" msgid "&Word" msgstr "字词(&W)" msgid "&Character" msgstr "字符(&C)" msgid "White&space" msgstr "空格(&S)" msgid "&Visible" msgstr "可见(&V)" msgid "&Invisible" msgstr "不可见(&I)" msgid "&AfterIndent" msgstr "在缩进后面(A)" msgid "&TAB Inserts" msgstr "&TAB 插入" msgid "&Auto" msgstr "&自动" msgid "&TAB" msgstr "&TAB" msgid "&Spaces" msgstr "空格(&S)" msgid "EOL &Visibility" msgstr "EOL 可视化(&V)" msgid "EOL &Mode" msgstr "EOL 模式(&M)" msgid "&Windows" msgstr "&Windows" msgid "&Unix" msgstr "&Unix" msgid "&Mac" msgstr "&Mac" msgid "&Auto-Complete" msgstr "自动完成(&A)" msgid "### regular expression ###" msgstr "### 正则表达式 ###" msgid "Regular expression search pattern" msgstr "正则表达式" msgid "Wrap search" msgstr "精准搜索" msgid "Prev" msgstr "上一个" msgid "Next" msgstr "下一个" msgid "Unable to read file" msgstr "无法读取文件" msgid "Could not open the specified file for reading." msgstr "无法读取,因为无法打开指定文件。" msgid "This appears to be a binary file." msgstr "这似乎是一个二进制文件。" msgid "An error occurred while reading the file." msgstr "读取文件时出错。" msgid "Text Translation Failure" msgstr "文本转换失败" msgid "Could not translate the file content from native encoding." msgstr "无法从本地编码转换文件内容。" msgid "Several characters would be lost." msgstr "一些字符串可能丢失。" msgid "Unable to write file" msgstr "无法写入文件" msgid "Could not translate the file content to native encoding." msgstr "无法转换文件内容到本地编码。" msgid "Could not open the specified file for writing." msgstr "无法写入,因为无法打开指定文件。" msgid "An error occurred while writing the file." msgstr "写入文件时出错" msgid "Try refreshing your repository." msgstr "正在尝试刷新您的仓库。" #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
                                                                                                        Please edit your config" msgstr "" "错误的字符串 \"%(arg0)s\" 位于 %(arg1)s
                                                                                                        编辑" " 您的配置" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
                                                                                                        Please fix your config" msgstr "" "配置错误: \"%(arg0)s\",
                                                                                                        修正 您的配置" #, python-format msgid "Operation aborted:

                                                                                                        %(arg0)s." msgstr "操作终止:

                                                                                                        %(arg0)s." msgid "Repository is locked" msgstr "仓库被锁定" msgid "hint:" msgstr "提示:" msgid "Repository Error" msgstr "仓库错误" msgid "No visual editor configured" msgstr "未设置GUI编辑器" msgid "Please configure a visual editor." msgstr "请设置一个GUI编辑器." msgid "Editor launch failure" msgstr "编辑器启动失败" msgid "Failed to open path in terminal" msgstr "在终端打开路径失败" #, python-format msgid "\"%s\" is not a valid directory" msgstr "“%s”不是有效的目录" #, python-format msgid "Invalid configuration: %s" msgstr "无效配置: %s" msgid "Unable to start the following command:" msgstr "无法启动下列命令:" msgid "No shell configured" msgstr "无壳配置" msgid "A terminal shell must be configured" msgstr "必须配置终端外壳" msgid "Please enter a username" msgstr "请输入一个用户名" msgid "You must identify yourself to Mercurial" msgstr "您必须向 Mercurial 提供一个名字" msgid "Unable to translate input to local encoding." msgstr "无法转换输入到本地编码。" msgid "Checkmark files to add" msgstr "选择要添加(开始跟踪)的文件" msgid "Checkmark files to forget" msgstr "选择要移除(停止跟踪)的文件" msgid "Forget" msgstr "移除" msgid "Checkmark files to revert" msgstr "选择要还原的文件" msgid "Revert" msgstr "还原" msgid "Checkmark files to remove" msgstr "选择要删除的文件" msgid "Remove" msgstr "移除" #, python-format msgid "%s - hg %s" msgstr "%s - hg %s" msgid "Do not save backup files (*.orig)" msgstr "不保存备份文件 (*.orig)" msgid "Force removal of modified files (--force)" msgstr "强行删除已修改的文件 (--force)" msgid "Add &Largefiles" msgstr "添加大文件(&L)" msgid "No files selected" msgstr "无文件被选中" msgid "No operation to perform" msgstr "无可执行的操作" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" msgid "Remove &Unmodified Files" msgstr "移除未修改的文件(&U)" msgid "Remove &All Selected Files" msgstr "移除所有选定的文件(&A)" msgid "Rebase changeset and descendants" msgstr "变基变更集及后代" msgid "To rebase destination" msgstr "变基目标" msgid "Swap source and destination" msgstr "交换源与目标" msgid "Keep original changesets (--keep)" msgstr "保留原变更集 (--keep)" msgid "Keep original branch names (--keepbranches)" msgstr "保留原分支名 (--keepbranches)" msgid "Collapse the rebased changesets (--collapse)" msgstr "折叠已变基的变更集 (--collapse)" msgid "Rebase entire source branch (-b/--base)" msgstr "变基整个源分支 (-b/--base)" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "变基在 Subversion 上未公开的头(覆盖源、目标)" msgid "Rebase" msgstr "重定位" #, python-format msgid "Rebase - %s" msgstr "变基 - %s" msgid "" "Before rebase, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the rebase" msgstr "您可以继续变基" msgid "Rebase is complete" msgstr "变基完成" msgid "Rebase failed" msgstr "变基失败" msgid "Rebase aborted" msgstr "变基已放弃" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "变基产生的合并冲突必须被解决" msgid "Exiting with an unfinished rebase is not recommended." msgstr "尚有一个未完成的变基,不推荐退出。" msgid "Consider aborting the rebase first." msgstr "首先考虑中止变基。" #, python-format msgid "Merge rejected patch chunks into %s" msgstr "合并拒绝的补丁块到 %s" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "标记此块已解决,转至下一个未解决" msgid "Mark this chunk as unresolved" msgstr "标记此块未解决" msgid "Reload File" msgstr "重载文件" msgid "Are you sure you want to reload this file?" msgstr "您确定要重新加载这个文件吗?" msgid "All unsaved changes will be lost." msgstr "所有未保存的更改将会丢失。" msgid "Warning" msgstr "警告" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" msgid "Copy source -> destination" msgstr "复制源 -> 目标" msgid "Copy Error" msgstr "复制出错" msgid "Rename Error" msgstr "更名出错" msgid "Select Source File" msgstr "选择源文件。" msgid "Select Source Folder" msgstr "选择源目录" msgid "Source does not exist." msgstr "源不存在。" msgid "The source must be within the repository tree." msgstr "源必须在版本库树中。" msgid "The destination must be within the repository tree." msgstr "目标必须在版本库树中。" msgid "Destination file already exists." msgstr "目标文件已存在。" msgid "Are you sure you want to overwrite it ?" msgstr "您确定要覆盖它吗?" #, python-format msgid "Copy - %s" msgstr "复制 - %s" #, python-format msgid "Rename - %s" msgstr "更名 - %s" msgid "Show all" msgstr "显示全部" msgid "### revision set query ###" msgstr "### 修订版本集查询 ###" msgid "Clear current query and query text" msgstr "清除当前查询及查询文字" msgid "Trigger revision set query" msgstr "触发器修订设置查询" msgid "Open advanced query editor" msgstr "打开高级查询编辑器" msgid "Delete selected query from history" msgstr "从历史中删除选定的查询" msgid "filter" msgstr "过滤器" msgid "Toggle filtering of non-matched changesets" msgstr "切换非匹配变更集的过滤" msgid "Show/Hide hidden changesets" msgstr "显示/隐藏 隐藏的变更集" msgid "Toggle graft relations visibility" msgstr "切换嫁接相关的可见性" msgid "Keyword Search" msgstr "关键词搜索" msgid "Revision Set" msgstr "修订版本集" msgid "(unsaved)" msgstr "" msgid "Display graph the named branch only" msgstr "只显示有名称的分支的图表" msgid "Display only active branches" msgstr "只显示活跃的分支" msgid "Display closed branches" msgstr "显示已关闭的分支" msgid "Include all ancestors" msgstr "包括所有上代" msgctxt "column header" msgid "Graph" msgstr "历史图" msgctxt "column header" msgid "Rev" msgstr "修订版本" msgctxt "column header" msgid "Branch" msgstr "分支" msgctxt "column header" msgid "Description" msgstr "描述" msgctxt "column header" msgid "Author" msgstr "作者" msgctxt "column header" msgid "Tags" msgstr "标签" msgctxt "column header" msgid "Latest tags" msgstr "最近标签" msgctxt "column header" msgid "Node" msgstr "节点" msgctxt "column header" msgid "Git Commit" msgstr "" msgctxt "column header" msgid "Age" msgstr "时间" msgctxt "column header" msgid "Local Time" msgstr "本地时间" msgctxt "column header" msgid "UTC Time" msgstr "UTC时间" msgctxt "column header" msgid "Changes" msgstr "更改" msgctxt "column header" msgid "Converted From" msgstr "转换自" msgctxt "column header" msgid "Phase" msgstr "开发阶段" msgctxt "column header" msgid "Filename" msgstr "文件名" msgid "Searching..." msgstr "正在搜索..." #, python-format msgid "filling (%d)" msgstr "正在填充 (%d)" msgid "Mercurial User" msgstr "Mercurial 用户" msgid "Repository Registry" msgstr "仓库注册表" msgid "Show &Paths" msgstr "显示路径(&P)" msgid "Show S&hort Paths" msgstr "显示简短路径(&H)" msgid "&Scan Repositories at Startup" msgstr "启动时扫描仓库(&S)" msgid "Scan &Remote Repositories" msgstr "显示远程仓库(&R)" msgid "&Refresh Repository List" msgstr "刷新仓库列表(&R)" msgid "Refresh the Repository Registry list" msgstr "刷新仓库注册表" msgid "&Open" msgstr "打开(&O)" msgid "Open the repository in a new tab" msgstr "在新的标签页打开仓库" msgid "&Open All" msgstr "全部打开(&O)" msgid "Open all repositories in new tabs" msgstr "在新的标签页打开所有仓库" msgid "New &Group" msgstr "新建组(&G)" msgid "Create a new group" msgstr "创建一个新的分组" msgid "Rename the entry" msgstr "重命名条目" msgid "Settin&gs" msgstr "设置(&G)" msgid "View the repository's settings" msgstr "查看仓库设置" msgid "Re&move from Registry" msgstr "从注册表中移除(&M)" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "删除节点和所有子结点。仓库不会从磁盘删除。" msgid "Clon&e..." msgstr "克隆(&E)" msgid "Clone Repository" msgstr "克隆仓库" msgid "E&xplore" msgstr "资源浏览器(&X)" msgid "Open the repository in a file browser" msgstr "在文件浏览器打开仓库" msgid "&Terminal" msgstr "终端(&T)" msgid "Open a shell terminal in the repository root" msgstr "在仓库根目录下打开终端外壳" msgid "&Add Repository..." msgstr "添加仓库(&A)" msgid "Add a repository to this group" msgstr "向分组中添加仓库" msgid "A&dd Subrepository..." msgstr "添加子仓库(&D)" msgid "Convert an existing repository into a subrepository" msgstr "将已存在的仓库转换为子仓库" msgid "Remo&ve Subrepository..." msgstr "移除子仓库(&V)" msgid "Remove this subrepository from the current revision" msgstr "从当前修订移除此子仓库" msgid "Copy the root path of the repository to the clipboard" msgstr "将仓库的根目录路径复制到剪贴板" msgid "Sort by &Name" msgstr "依照名称排序(&N)" msgid "Sort the group by short name" msgstr "按名称为分组排序" msgid "Sort by &Path" msgstr "依照路径排序(&P)" msgid "Sort the group by full path" msgstr "按路径为分组排序" msgid "&Sort by .hgsub" msgstr "依照 .hgsub 排序(&S)" msgid "Order the subrepos as in .hgsub" msgstr "按 .hgsub 为子仓库排序" msgid "Select repository directory to add" msgstr "选择要添加的仓库" msgid "Select an existing repository to add as a subrepo" msgstr "选择已存在的仓库,将其添加为子仓库" msgid "Cannot add subrepository" msgstr "无法添加子仓库" #, python-format msgid "%s is not a valid repository" msgstr "%s 不是有效的仓库" #, python-format msgid "\"%s\" is not a folder" msgstr "“%s” 不是一个文件夹" msgid "A repository cannot be added as a subrepo of itself" msgstr "不能添加自己为子仓库" #, python-format msgid "" "The selected folder:

                                                                                                        %s

                                                                                                        is not inside the target repository." "

                                                                                                        This may be allowed but is greatly discouraged.
                                                                                                        If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" "选定的文件夹:

                                                                                                        %s

                                                                                                        并不在目标仓库中。

                                                                                                        这种情况是允许的,但" "并不推荐使用。
                                                                                                        如果您想添加子仓库映射,必须手动编辑 .hgsub 文件" msgid "Cannot open repository" msgstr "无法打开仓库" #, python-format msgid "The selected repository:

                                                                                                        %s

                                                                                                        cannot be open!" msgstr "选定的仓库:

                                                                                                        %s

                                                                                                        无法打开!" msgid "Subrepository already exists" msgstr "子仓库已存在" #, python-format msgid "" "The selected repository:

                                                                                                        %s

                                                                                                        is already a subrepository of:" "

                                                                                                        %s

                                                                                                        as: \"%s\"" msgstr "" "选定的仓库:

                                                                                                        %s

                                                                                                        已经是

                                                                                                        %s

                                                                                                        的子仓库: \"%s\"" msgid "Failed to add subrepository" msgstr "添加子仓库失败" #, python-format msgid "Cannot open the .hgsub file in:

                                                                                                        %s" msgstr "无法打开下列位置的 .hgsub 文件

                                                                                                        %s" msgid "Failed to add repository" msgstr "添加仓库失败" #, python-format msgid "The .hgsub file already contains the line:

                                                                                                        %s" msgstr ".hgsub 文件已包含此行:

                                                                                                        %s" msgid "Subrepo added to .hgsub file" msgstr "子仓库已添加 .hgsub 文件" #, python-format msgid "" "The selected subrepo:

                                                                                                        %s

                                                                                                        has been added to the .hgsub " "file of the repository:

                                                                                                        %s

                                                                                                        Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" "选定的子仓库:

                                                                                                        %s

                                                                                                        已被添加到下列仓库的 .hgsub 文件中:" "

                                                                                                        %s

                                                                                                        请注意为完成子仓库添加操作,您仍需提交 .hgsub 文件的更改以确认子仓库的添加。" #, python-format msgid "Cannot update the .hgsub file in:

                                                                                                        %s" msgstr "无法更新下列位置的 .hgsub 文件:

                                                                                                        %s" msgid "Could not open .hgsub file" msgstr "无法打开 .hgsub 文件" msgid "Cannot read the .hgsub file.

                                                                                                        Subrepository removal failed." msgstr "无法读取 .hgsub 文件。

                                                                                                        子仓库移除失败。" msgid "Subrepository not found" msgstr "未找到子仓库" msgid "" "The selected subrepository was not found on the .hgsub file.

                                                                                                        Perhaps it " "has already been removed?" msgstr "选定的仓库中未找到 .hgsub 文件。

                                                                                                        或许它已经被删除?" msgid "&Yes" msgstr "是(&Y)" msgid "&No" msgstr "否(&N)" msgid "Remove the selected repository?" msgstr "移除选定的仓库吗?" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "您确定要移除仓库“%s”吗,从父仓库“%s”中。" msgid "Subrepository removed from .hgsub" msgstr "已从子仓库中删除 .hgsub" msgid "" "The selected subrepository has been removed from the .hgsub file.

                                                                                                        Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" "选定的子仓库已从 .hgsub 文件中移除。.

                                                                                                        请记住,您必须提交 .hgsub 的更改才能" "完成删除子仓库的操作!" msgid "Could not update .hgsub file" msgstr "无法更新 .hgsub 文件" msgid "Cannot update the .hgsub file.

                                                                                                        Subrepository removal failed." msgstr "无法更新 .hgsub 文件。

                                                                                                        子仓库移除失败。" #, python-format msgid "Unsupported repository type (%s)" msgstr "不支持的仓库类型 (%s)" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "无法打开非 Mercurial 仓库或者子仓库" msgid "New Group" msgstr "新建分组" msgid "Confirm Delete" msgstr "确认删除" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "删除分组“%s”及其所有条目?" msgid "Could not get subrepository list" msgstr "无法获得子仓库列表" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

                                                                                                        %s" msgstr "无法获取下列位置中仓库的子仓库列表:

                                                                                                        %s" msgid "Could not open some subrepositories" msgstr "无法打开部分子仓库" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

                                                                                                        %s

                                                                                                        The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

                                                                                                        %s" msgstr "" "无法全部打开下列位置中仓库的子仓库列表:

                                                                                                        %s

                                                                                                        下列子仓库可" "能已丢失、损坏或处于不能访问的状态:

                                                                                                        %s" msgid "Updating repository registry" msgstr "正在更新仓库注册表" #, python-format msgid "Loading repository %s" msgstr "正在载入仓库 %s" msgid "Repository Registry updated" msgstr "仓库注册表已更新" msgid "Close tab" msgstr "关闭标签页" msgid "Close other tabs" msgstr "关闭其他标签页" msgid "Undo close tab" msgstr "撤消关闭标签页" msgid "Reopen last closed tab" msgstr "重新打开最后关闭的标签页" msgid "Undo close other tabs" msgstr "撤消关闭其他标签页" msgid "Reopen last closed tab group" msgstr "重新打开最后关闭的标签组" msgid "Failed to open repository" msgstr "无法打开仓库" msgid "&Sort" msgstr "排序(&S)" #, python-format msgid "Local Repository %s" msgstr "本地仓库 %s" #, python-format msgid "" "An exception happened while loading the subrepos of:

                                                                                                        \"%s\"

                                                                                                        " msgstr "载入下列位置的子仓库时发生异常:

                                                                                                        \"%s\"

                                                                                                        " #, python-format msgid "The exception error message was:

                                                                                                        %s

                                                                                                        " msgstr "异常信息是:

                                                                                                        %s

                                                                                                        " msgid "Click OK to continue or Abort to exit." msgstr "点击OK继续,或者点击About退出。" msgid "Error loading subrepos" msgstr "载入子仓库错误" msgid "Unable to update repository name" msgstr "无法更新仓库名" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "更新仓库的 hgrc 文件 (%s) 时发生错误" msgid "default" msgstr "默认" msgid "C&hoose Log Columns..." msgstr "选择日志栏(&H)..." msgid "&Resize Columns" msgstr "调整列尺寸(&R)" #, python-format msgid "Goto ancestor of %s and %s" msgstr "转到 %s 和 %s 的祖先" #, python-format msgid "Can't find revision '%s'" msgstr "不能找到修订版本 '%s'" msgid "Drag to change order" msgstr "拖动以更改顺序" msgid "Workbench Log Columns" msgstr "工作台日志列" msgctxt "tab tooltip" msgid "Revision details" msgstr "修订版本详细信息" msgctxt "tab tooltip" msgid "Commit" msgstr "提交" msgctxt "tab tooltip" msgid "Search" msgstr "搜索" msgctxt "tab tooltip" msgid "Console log" msgstr "控制台日志" msgctxt "tab tooltip" msgid "Synchronize" msgstr "同步" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "补丁分支" #, python-format msgid "%s " msgstr "%s <可拉取>" #, python-format msgid "Found %d incoming changesets" msgstr "发现 %d 个进入变更集" msgid "Pull" msgstr "拉取" msgid "Pull incoming changesets into your repository" msgstr "拉取修订集到您的仓库" msgid "Reject incoming changesets" msgstr "拒绝拉取修订集" #, python-format msgid "Push current branch (%s)" msgstr "推送当前分支 (%s)" #, python-format msgid "Push up to current revision (#%d)" msgstr "推至当前版本 (#%d)" #, python-format msgid "Push up to revision #%d" msgstr "推至版本 #%d" msgid "Push all" msgstr "推送所有" msgid "no outgoing changesets" msgstr "没有传出变更集" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets" msgstr "%d 个可推送的修订集" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "" msgid "Nothing to push" msgstr "没什么可推送的" msgid "No revision found" msgstr "" #, python-format msgid "%s - verify repository" msgstr "%s - 验证仓库" #, python-format msgid "%s - recover repository" msgstr "%s - 恢复仓库" msgid "No transaction available" msgstr "没有可用的事务" msgid "There is no rollback transaction available" msgstr "没有可用的回滚信息" msgid "Undo last commit?" msgstr "撤销最后提交?" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "撤销最近的提交 (%d) 并保持文件更改?" msgid "Undo last transaction?" msgstr "撤销最后一次事务处理?" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "回滚到修订版本 %d (撤消 %s)?" msgid "Unable to determine working copy revision\n" msgstr "无法确定工作副本修订\n" msgid "Remove current working revision?" msgstr "移除当前工作版本?" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "您当前工作的修订 (%d) 将被此次回退移除,留下未提交的更改。确定继续?" msgid "Tab cannot exit" msgstr "标签无法退出" msgid "Pus&h" msgstr "推送(&H)" msgid "Push to &Here" msgstr "推送到此(&H)" msgid "Push Selected &Branch" msgstr "推送选定分支(&B)" msgid "Push &All" msgstr "全部推送(&A)" msgid "&Update..." msgstr "更新(&U)..." msgid "Bro&wse at Revision" msgstr "浏览修订(&W)" msgid "&Merge with Local..." msgstr "与本地合并(&M)" msgid "&Tag..." msgstr "标签(&T)..." msgid "Boo&kmark..." msgstr "书签(&K)..." msgid "Top&ic..." msgstr "" msgid "Sig&n..." msgstr "签(&N)..." msgid "&Backout..." msgstr "回退(&B)..." msgid "Revert &All Files..." msgstr "" msgid "Copy &Hash" msgstr "复制哈希(&H)" msgid "E&xport" msgstr "导出(&X)" msgid "E&xport Patch..." msgstr "导出补丁(&X)..." msgid "&Email Patch..." msgstr "邮寄补丁(&E)..." msgid "&Archive..." msgstr "存档(&A)..." msgid "&Bundle Rev and Descendants..." msgstr "绑扎修订及后代(&B)..." msgid "Change &Phase to" msgstr "更改阶段到(&P)" msgid "&Graft to Local..." msgstr "嫁接到本地(&G)..." msgid "Modi&fy History" msgstr "修改历史(&F)" msgid "&Unapply Patch" msgstr "未应用的补丁(&U)" msgid "Import to &MQ" msgstr "导入到 &MQ" msgid "MQ &Options" msgstr "MQ 选项(&O)" msgid "&Rebase..." msgstr "变基(&R)..." msgid "&Prune..." msgstr "修剪(&P)..." msgid "&Strip..." msgstr "剥离(&S)..." msgid "Post to Re&view Board..." msgstr "发布到审核面板(&V)..." msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "远程更新(&R)..." msgid "Write diff file" msgstr "写入差异文件" msgid "Unable to write diff file" msgstr "无法写入差异文件" msgid "Unable to compress history" msgstr "无法压缩历史记录" msgid "Selected changeset pair not related" msgstr "选定的变更集配对不相关" msgid "Visual Diff..." msgstr "可视差异..." msgid "Export Diff..." msgstr "导出差异..." msgid "Export Selected..." msgstr "导出选定..." msgid "Email Selected..." msgstr "邮寄选中的..." msgid "Copy Selected as Patch" msgstr "复制选定为补丁" msgid "Archive DAG Range..." msgstr "" msgid "Export DAG Range..." msgstr "导出 DAG 范围..." msgid "Email DAG Range..." msgstr "邮寄 DAG 范围..." msgid "Bundle DAG Range..." msgstr "打包 DAG 范围..." msgid "Bisect - Good, Bad..." msgstr "二分 - Good, Bad..." msgid "Bisect - Bad, Good..." msgstr "二分 - Bad, Good..." msgid "Compress History..." msgstr "压缩历史记录..." msgid "Rebase..." msgstr "变基..." msgid "Goto common ancestor" msgstr "转到共同的祖先" msgid "Graft Selected to local..." msgstr "嫁接选定到本地..." msgid "&Prune Selected..." msgstr "修剪选中(&P)..." msgid "Post Selected to Review Board..." msgstr "发布选中项到审核面板..." msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "应用补丁" msgid "Apply onto original parent" msgstr "应用到原始父" msgid "Apply only this patch" msgstr "仅应用此补丁" msgid "Fold patches..." msgstr "折叠补丁..." msgid "Delete patches..." msgstr "删除补丁..." msgid "Rename patch..." msgstr "重命名补丁..." msgid "Pull to here..." msgstr "拉取到此..." msgid "Visual diff..." msgstr "可视化工具查看差异..." msgid "Export patch" msgstr "导出补丁" msgid "Patch Files (*.patch)" msgstr "补丁文件 (*.patch)" msgid "Cannot export revision" msgstr "无法导出修订版本" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" "无法导出修订版本 %s 到文件:\n" "\n" "%s\n" msgid "There is already an existing folder with that same name." msgstr "已存在同名文件夹。" msgid "Replace" msgstr "替换" msgid "Append" msgstr "追加" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" msgid "What do you want to do?\n" msgstr "您想干什么?\n" msgid "Replace the existing patch files.\n" msgstr "替换已存在的补丁文件。\n" msgid "Append the changes to the existing patch files.\n" msgstr "最佳修改到已存在的补丁。\n" msgid "Abort the export operation.\n" msgstr "中止导出操作。\n" msgid "Patch files already exist" msgstr "补丁文件已存在" msgid "Patch exported" msgstr "导出补丁成功" #, python-format msgid "" "Revision #%d (%s) was exported to:

                                                                                                        %s%s%s" msgstr "" "修订版本 #%d (%s) 导出到:

                                                                                                        %s%s%s" msgid "Patches exported" msgstr "导出补丁成功" #, python-format msgid "%d patches were exported to:

                                                                                                        %s" msgstr "%d 补丁导出到:

                                                                                                        %s" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

                                                                                                        Are you sure you want to use revert?

                                                                                                        (use " "update to checkout another revision)" msgstr "" msgid "Filter b&y" msgstr "过滤根据(&Y)" msgid "&Ancestors and Descendants" msgstr "" msgid "A&uthor" msgstr "作者(&U)" msgid "&Branch" msgstr "分支(&B)" msgid "&More Options..." msgstr "更多选项(&M)..." msgid "Unable to merge" msgstr "无法合并" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "您无法将一个修订与其自身合并" msgid "Unable to backout" msgstr "无法回退" msgid "Write bundle" msgstr "写入包" msgid "Backwards phase change requested" msgstr "逆向阶段变更已请求" msgid "Do you really want to make this revision secret?" msgstr "您确定要将此修订变为秘密?" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" msgid "&Make secret" msgstr "标记秘密(&M)" msgid "&Cancel" msgstr "取消(&C)" msgid "Do you really want to force a backwards phase transition?" msgstr "您确定要强制执行反向阶段过渡?" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" msgid "&Force" msgstr "强制(&F)" msgid "Cannot import selected revision" msgstr "无法导入选中修订版本" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" msgid "Invalid command" msgstr "无效命令" msgid "The selected command is empty" msgstr "选定的命令为空" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" "已返回下列错误信息:\n" "\n" "%s" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" "\n" "\n" "请检查 \"thg\" 命令是否有效。" msgid "Failed to execute custom TortoiseHg command" msgstr "执行自定义的 TortoiseHg 命令失败" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "命令 \"%s\" 失败 (代码 %d)。" msgid "Failed to execute custom command" msgstr "执行自定义命令失败" #, python-format msgid "The command \"%s\" could not be executed." msgstr "命令 \"%s\" 未能执行。" #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" "已返回下列错误信息:\n" "\n" "\"%s\"\n" "\n" "请检查命令路径是否有效,以及是否是有效的应用程序。" msgid "&Edit Toolbar" msgstr "编辑工具栏(&E)" msgid "&Refresh" msgstr "刷新(&R)" msgid "&Filter Toolbar" msgstr "过滤工具栏(&F)" #, python-format msgid "TortoiseHg: %s" msgstr "" msgid "S&tatus Bar" msgstr "" #, python-format msgid "Resolve Conflicts - %s" msgstr "解决冲突 - %s" msgid "Local revision information" msgstr "本地修订版本信息" msgid "Other revision information" msgstr "并入修订版本信息" msgid "Unresolved conflicts" msgstr "未解决的冲突" msgid "Mercurial Re&solve" msgstr "Mercurial 解决(&S)" msgid "Attempt automatic (trivial) merge" msgstr "尝试自动(小的)合并" msgid "Tool &Resolve" msgstr "工具解决(&R)" msgid "Merge using selected merge tool" msgstr "使用选中合并工具合并" msgid "&Take Local" msgstr "采用本地(&T)" msgid "Accept the local file version (yours)" msgstr "使用本地版本修订中的文件" msgid "Take &Other" msgstr "采用其他(&O)" msgid "Accept the other file version (theirs)" msgstr "使用并入修订版本中的文件" msgid "&Mark as Resolved" msgstr "标为已解决(&M)" msgid "Mark this file as resolved" msgstr "将这个文件标记为已解决" msgid "Diff &Local to Ancestor" msgstr "本地与祖先比较差异(&L)" msgid "&Diff Other to Ancestor" msgstr "其他与祖先比较差异(&D)" msgid "Resolved conflicts" msgstr "已解决冲突" msgid "&Edit File" msgstr "编辑文件(&E)" msgid "Edit resolved file" msgstr "编辑已解决的文件" msgid "3-&Way Diff" msgstr "可视化三路合并(&W)" msgid "Visual three-way diff" msgstr "可视化三路合并" msgid "Visual diff between resolved file and first parent" msgstr "可视化比较解决文件和第一个父版本" msgid "&Diff to Other" msgstr "与其他比较差异(&D)" msgid "Visual diff between resolved file and second parent" msgstr "可视化比较解决版本和第二个父版本" msgid "Mark as &Unresolved" msgstr "标记为未解决(&U)" msgid "Mark this file as unresolved" msgstr "将这个文件标记为已解决" msgid "Detected merge/diff tools:" msgstr "检测 合并/差异 工具:" msgid "Command output" msgstr "命令输出" msgid "Unable to show subrepository files" msgstr "无法显示子仓库文件" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "可视化差异不支持子仓库中的文件。它们将不会显示。" msgid "There are merge conflicts to be resolved" msgstr "有需要解决的合并冲突" msgid "All conflicts are resolved." msgstr "所有冲突文件都已被解决。" msgid "There are no conflicting file merges." msgstr "没有冲突的文件合并。" msgid "Exit without finishing resolve?" msgstr "不解决冲突就退出?" msgid "Unresolved conflicts remain. Are you sure?" msgstr "未解决的冲突仍然存在。您确定?" msgid "E&xit" msgstr "退出(&E)" msgid "Ext" msgstr "扩展名" msgid "Repository" msgstr "仓库" msgid "" msgstr "<默认>" msgid "File List Toolbar" msgstr "文件列表工具栏" msgid "Ma&nifest Mode" msgstr "清单模式(&N)" msgid "Show all version-controlled files in tree view" msgstr "在树视图显示所有版本控制的文件" msgid "&Flat List" msgstr "平面列表(&F)" msgid "### filter text ###" msgstr "### 过滤文本 ###" msgid "Changed by &This Commit" msgstr "此提交改变了(&T)" msgid "Show files changed by this commit" msgstr "显示此提交的文件变更" msgid "Compare to &1st Parent" msgstr "比较第一阶段(&1)" msgid "Compare to &2nd Parent" msgstr "比较第二阶段(&2)" msgid "Toggle parent to be used as the base revision" msgstr "切换父作为基础修订" msgid "List Optio&ns" msgstr "列表选项(&N)" #, python-format msgid "%s - Revision Details (%s)" msgstr "%s - 修订细节 (%s)" #, python-format msgid "Revert - %s" msgstr "还原 - %s" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "还原 %s 到其下列版本的内容?" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "还原 %d 个文件到其下列版本的内容?" msgid "Revert all files to this revision" msgstr "还原所有文件到这个修订版本" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "版本 %d 的首个父(即版本 %d)" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "版本 %d 的第二父(即版本 %d)" msgid "null revision (i.e. remove file(s))" msgstr "空的修订(即移除文件)" msgid "Changeset:" msgstr "修订集:" msgid "Child:" msgstr "子版本:" msgid "Predecessors:" msgstr "" msgid "Successors:" msgstr "继任者:" msgid "Head is closed!" msgstr "分支头已关闭!" msgid "Changesets where username contains string." msgstr "用户名包含字符串的变更集。" msgid "" "Search commit message, user name, and names of changed files for string." msgstr "搜索提交说明,用户名,和改动文件名。" msgid "Like \"keyword(string)\" but accepts a regex." msgstr "类似 \"keyword(string)\" 但接受正则表达式。" msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "变更集在指定的目标仓库或者默认的推送位置未找到。" msgid "The named bookmark or all bookmarks." msgstr "命名的书签或所有书签。" msgid "The named tag or all tags." msgstr "命名标签或所有标签。" msgid "Changeset is tagged." msgstr "修订集已被打上标签了。" msgid "Changeset is a named branch head." msgstr "修订集是命名分支的头。" msgid "Changeset is a merge changeset." msgstr "修订集是合并改动。" msgid "Changeset is closed." msgstr "修订集已关闭。" msgid "" "Changesets within the interval, see help dates" msgstr "" msgid "Greatest common ancestor of the two changesets." msgstr "两个变更集的最大的共同祖先。" msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" msgid "Changesets which modify files matched by pattern." msgstr "修改文件匹配模式的变更集。" msgid "Changesets which add files matched by pattern." msgstr "添加文件匹配模式的变更集。" msgid "Changesets which remove files matched by pattern." msgstr "移除文件匹配模式的变更集。" msgid "Changesets containing files matched by pattern." msgstr "包含文件匹配模式的变更集。" msgid "All changesets belonging to the branches of changesets in set." msgstr "" msgid "Members of a set with no children in set." msgstr "" msgid "Changesets which are descendants of changesets in set." msgstr "" msgid "Changesets that are ancestors of a changeset in set." msgstr "" msgid "Child changesets of changesets in set." msgstr "" msgid "The set of all parents for all changesets in set." msgstr "" msgid "First parent for all changesets in set, or the working directory." msgstr "" msgid "Second parent for all changesets in set, or the working directory." msgstr "" msgid "Changesets with no parent changeset in set." msgstr "" msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" msgid "Changeset with lowest revision number in set." msgstr "" msgid "Changeset with highest revision number in set." msgstr "" msgid "First n members of a set." msgstr "" msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "" msgid "All changesets, the same as 0:tip." msgstr "所有变更集,等同 0:tip。" msgid "Revision Set Query" msgstr "修订集查询" msgid "all revisions converted from subversion" msgstr "" msgid "changeset which represents converted svn revision" msgstr "" msgid "Common sets" msgstr "常见集" msgid "File pattern sets" msgstr "文件模式集" msgid "Set Ancestry" msgstr "设置祖先" msgid "Set Logic" msgstr "设置逻辑" msgid "" "help " "revsets" msgstr "" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" "\n" "捕获键盘中断, 程序中止.\n" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "fork GUI 进程失败: %s\n" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "无法读取文件\"%s\". 已忽略。\n" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" "thg: 命令 '%s' 意义不明:\n" " %s\n" #, python-format msgid "thg: unknown command '%s'\n" msgstr "thg: 未知的命令 '%s'\n" #, python-format msgid "thg %s: %s\n" msgstr "thg %s: %s\n" #, python-format msgid "thg: %s\n" msgstr "thg: %s\n" #, python-format msgid "abort: %s!\n" msgstr "中止: %s!\n" #, python-format msgid "abort: %s\n" msgstr "终止: %s\n" #, python-format msgid "(%s)\n" msgstr "(%s)\n" msgid "option --config may not be abbreviated!" msgstr "选项 --config 不能缩写!" msgid "invalid arguments" msgstr "无效参数" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "无法识别的配置文件格式 '%s' - 已忽略\n" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" "lsprof 不可用 - 从 http://codespeak.net/svn/user/arigo/hack/misc/lsprof/ 安装" msgid "repository root directory or symbolic path name" msgstr "仓库根目录或符号路径名" msgid "enable additional output" msgstr "启用附加的输出" msgid "suppress output" msgstr "简略化输出" msgid "display help and exit" msgstr "显示帮助并退出" msgid "set/override config option (use 'section.name=value')" msgstr "设置/覆盖配置选项 (使用 'section.name=value')" msgid "enable debugging output" msgstr "启用调试输出" msgid "start debugger" msgstr "启动调试器" msgid "print command execution profile" msgstr "打印命令执行配置" msgid "do not fork GUI process" msgstr "不启动图形界面进程" msgid "always fork GUI process" msgstr "总是启动GUI进程" msgid "read file list from file" msgstr "从文件中读取文件列表" msgid "read file list from file encoding utf-8" msgstr "从 UTF-8 编码读取文件列表" msgid "thg about" msgstr "thg 关于" msgid "thg add [FILE]..." msgstr "thg add [FILE]..." msgid "revision to annotate" msgstr "标注修订版本" msgid "open to line" msgstr "打开到行" msgid "initial search pattern" msgstr "最初的搜索模式" msgid "thg annotate" msgstr "thg annotate" #, python-format msgid "invalid line number: %s" msgstr "无效行号: %s" msgid "revision to archive" msgstr "要存档的修订" msgid "thg archive" msgstr "thg archive" msgid "merge with old dirstate parent after backout" msgstr "拆除后合并旧的目标父" msgid "parent to choose when backing out merge" msgstr "拆除合并时选择父" msgid "revision to backout" msgstr "要回退的修订" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "thg backout [OPTION]... [[-r] REV]" msgid "thg bisect" msgstr "thg bisect" msgid "revision" msgstr "修订" msgid "thg bookmarks [-r REV] [NAME]" msgstr "thg bookmarks [-r REV] [NAME]" msgid "only one new bookmark name allowed" msgstr "只允许一个新书签名" msgid "the clone will include an empty working copy (only a repository)" msgstr "克隆将包括一个空的工作副本(仅一个仓库)" msgid "revision, tag or branch to check out" msgstr "可被签出的修订集,标签或分支" msgid "include the specified changeset" msgstr "包括指定的变更集" msgid "clone only the specified branch" msgstr "仅克隆指定的分支" msgid "use pull protocol to copy metadata" msgstr "使用拉协议(pull)来复制元数据" msgid "use uncompressed transfer (fast over LAN)" msgstr "使用非压缩传输(通过 LAN 方式时更快)" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "thg clone [OPTION]... [SOURCE] [DEST]" msgid "record user as committer" msgstr "记录用户为提交者" msgid "record datecode as commit date" msgstr "记录datacode为提交日期" msgid "thg commit [OPTIONS] [FILE]..." msgstr "thg commit [OPTIONS] [FILE]..." msgid "thg debugblockmatcher" msgstr "thg debugblockmatcher" msgid "thg debugbugreport [TEXT]" msgstr "thg debugbugreport [TEXT]" msgid "thg debugconsole" msgstr "thg debugconsole" msgid "thg debuglighthg" msgstr "thg debuglighthg" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "thg debugruncommand -- COMMAND [ARGUMENT]..." msgid "no command specified" msgstr "没有指定命令" msgid "thg drag_copy SOURCE... DEST" msgstr "thg drag_copy SOURCE... DEST" msgid "thg drag_move SOURCE... DEST" msgstr "thg drag_move SOURCE... DEST" msgid "a revision to send" msgstr "准备邮寄的修订版本" msgid "thg email [REVS]" msgstr "thg email [REVS]" msgid "use only one form to specify the revision" msgstr "只使用一种方式来指定修订" msgid "select the specified revision" msgstr "选择指定修订" msgid "side-by-side comparison of revisions" msgstr "" msgid "thg filelog [OPTION]... FILE" msgstr "thg filelog [选项]... 文件" msgid "requires a single filename" msgstr "需要一个单一的文件名" msgid "thg forget [FILE]..." msgstr "thg forget [FILE]..." msgid "revisions to graft" msgstr "要嫁接的修订" msgid "thg graft [-r] REV..." msgstr "thg graft [-r] REV..." msgid "You must provide revisions to graft" msgstr "您必须提供要嫁接的修订" msgid "ignore case during search" msgstr "搜索时忽略大小写" msgid "thg grep" msgstr "thg grep" msgid "thg guess" msgstr "thg guess" msgid "thg help [COMMAND]" msgstr "thg help [COMMAND]" msgid "global options:" msgstr "全局选项:" msgid "use \"thg help\" for the full list of commands" msgstr "使用 \"thg help\" 获得完整的命令列表" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "使用 \"thg help\" 获得完整的命令列表,或 \"thg -v\" 查阅细节" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "使用 \"thg -v help%s\" 显示别名和全局选项" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "使用 \"thg -v help %s\" 显示全局选项" msgid "" "list of commands:\n" "\n" msgstr "" "命令列表:\n" "\n" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" "\n" "别名:%s\n" msgid "(no help text available)" msgstr "(无帮助文本可用)" msgid "options:\n" msgstr "选项:\n" msgid "no commands defined\n" msgstr "命令未定义\n" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "Thg - TortoiseHg 的图像工具,面向 Mercurial SCM (Hg)\n" msgid "" "basic commands:\n" "\n" msgstr "" "基本命令:\n" "\n" #, python-format msgid " (default: %s)" msgstr " (缺省: %s)" msgid "thg hgignore [FILE]" msgstr "thg hgignore [FILE]" msgid "import to the patch queue (MQ)" msgstr "导入补丁队列 (MQ)" msgid "thg import [OPTION] [SOURCE]..." msgstr "thg import [OPTION] [SOURCE]..." msgid "thg init [DEST]" msgstr "thg init [DEST]" msgid "thg lock" msgstr "" msgid "search for a given text or revset" msgstr "搜索指定的文本或修订集" msgid "(DEPRECATED)" msgstr "(已弃用)" msgid "open a new workbench window" msgstr "打开一个新的工作台窗口" msgid "thg log [OPTIONS] [FILE]" msgstr "thg log [OPTIONS] [FILE]" msgid "cannot specify both -k/--query and filenames" msgstr "不能同时指定 -k/--query 和文件名" msgid "revision to display" msgstr "要显示的修订" msgid "thg manifest [-r REV] [FILE]" msgstr "thg manifest [-r REV] [FILE]" msgid "revision to merge" msgstr "要合并的修订" msgid "thg merge [[-r] REV]" msgstr "thg merge [[-r] REV]" msgid "Merge revision not specified or not found" msgstr "合并修订未指定或未找到" msgid "a revision to post" msgstr "要发布的修订" msgid "thg postreview [-r] REV..." msgstr "thg postreview [-r] REV..." msgid "reviewboard extension not enabled" msgstr "" #, python-format msgid "see %(url)s" msgstr "" msgid "no revisions specified" msgstr "没有指定修订版本" msgid "revisions to prune" msgstr "要修剪的修订" msgid "thg prune [-r] REV..." msgstr "thg prune [-r] REV..." msgid "thg purge" msgstr "thg purge" msgid "keep original changesets" msgstr "保持原有变更集" msgid "keep original branch names" msgstr "保持原有分支名称" msgid "rebase from the specified changeset" msgstr "从指定的变更集变基" msgid "rebase onto the specified changeset" msgstr "变基到指定的变更集" msgid "thg rebase -s REV -d REV [--keep]" msgstr "thg rebase -s REV -d REV [--keep]" msgid "Rebase already in progress" msgstr "变基已在进行" msgid "Resuming rebase already in progress" msgstr "恢复变基已在进行" msgid "You must provide source and dest arguments" msgstr "您必须提供源和目标参数" msgid "thg rejects [FILE]" msgstr "thg rejects [FILE]" msgid "You must provide the path to a file" msgstr "您必须提供一个文件路径" msgid "thg remove [FILE]..." msgstr "thg remove [FILE]..." msgid "thg rename [SOURCE] [DEST]" msgstr "thg rename [SOURCE] [DEST]" msgid "field to give initial focus" msgstr "将获有初始焦点的字段" msgid "thg repoconfig" msgstr "thg repoconfig" msgid "thg resolve" msgstr "thg resolve" msgid "the revision to show" msgstr "要显示的修订" msgid "thg revdetails [-r REV]" msgstr "thg revdetails [-r REV]" msgid "thg revert [FILE]..." msgstr "thg revert [FILE]..." msgid "revision to update" msgstr "更新到版本" msgid "thg rupdate [[-r] REV]" msgstr "thg rupdate [[-r] REV]" msgid "name of the hgweb config file (serve more than one repository)" msgstr "hgweb配置文件的名称 (服务有多个仓库)" msgid "name of the hgweb config file (DEPRECATED)" msgstr "hgweb配置文件的名称 (已弃用)" msgid "thg serve [--web-conf FILE]" msgstr "thg serve [--web-conf FILE]" msgid "thg shellconfig" msgstr "thg shellconfig" msgid "thg shelve" msgstr "thg shelve" msgid "sign even if the sigfile is modified" msgstr "" msgid "make the signature local" msgstr "签署本地" msgid "the key id to sign with" msgstr "要签署的密钥ID" msgid "do not commit the sigfile after signing" msgstr "" msgid "use as commit message" msgstr "使用作为提交说明" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgid "Please enable the Gpg extension first." msgstr "请先启用 Gpg 扩展。" msgid "show files without changes" msgstr "显示未更改的文件" msgid "show ignored files" msgstr "显示忽略的文件" msgid "thg status [OPTIONS] [FILE]" msgstr "thg status [OPTIONS] [FILE]" msgid "discard uncommitted changes (no backup)" msgstr "放弃未提交的修改(不备份)" msgid "do not back up stripped revisions" msgstr "不备份被剥离的修订" msgid "do not modify working copy during strip" msgstr "剥离时不修改工作副本" msgid "revision to strip" msgstr "要剥离的修订" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "thg strip [-k] [-f] [-n] [[-r] REV]" msgid "open the bookmark sync window" msgstr "打开书签同步窗口" msgid "thg sync [OPTION]... [PEER]" msgstr "thg sync [选项]... [对等端]" msgid "replace existing tag" msgstr "替换已存在的标签" msgid "make the tag local" msgstr "make the tag local" msgid "revision to tag" msgstr "要标记的修订" msgid "remove a tag" msgstr "移除标签" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgid "wait until the second ticks over" msgstr "等待计数结束" msgid "notify the shell for paths given" msgstr "通知shell所给的路径" msgid "remove the status cache" msgstr "删除状态缓存" msgid "show the contents of the status cache (no update)" msgstr "显示状态缓存的内容(无更新)" msgid "update all repos in current dir" msgstr "更新当前目录下的所有仓库" msgid "thg thgstatus [OPTION]" msgstr "thg thgstatus [OPTION]" msgid "thg topics [-r REV] [NAME]" msgstr "" msgid "Please enable the Topic extension first." msgstr "" msgid "only one new topic name allowed" msgstr "" msgid "thg update [-C] [[-r] REV]" msgstr "thg update [-C] [[-r] REV]" msgid "thg userconfig" msgstr "thg userconfig" msgid "changeset to view in diff tool" msgstr "使用比较工具查看修订集" msgid "revisions to view in diff tool" msgstr "使用比较工具查看修订版本" msgid "bundle file to preview" msgstr "打包文件预览" msgid "launch visual diff tool" msgstr "启动可视化差异工具" msgid "print license" msgstr "打印许可" msgid "thg version [OPTION]" msgstr "thg version [OPTION]" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "TortoiseHg 对话框 (版本 %s), Mercurial (版本 %s)\n" msgid "Location:" msgstr "路径:" msgid "Update to:" msgstr "更新到:" msgid "Options:" msgstr "选项:" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "放弃远程修订,不备份 (-C/--clean)" msgid "Perform a push before updating (-p/--push)" msgstr "更新前执行一次推送 (-p/--push)" msgid "Allow pushing new branches (--new-branch)" msgstr "允许推送新分支 (--new-branch)" msgid "Force push to remote location (-f/--force)" msgstr "强制推送到远程位置 (-f/--force)" msgid "remove working directory" msgstr "移除工作目录" msgid "unknown revision!" msgstr "未知版本!" #, python-format msgid "Remote Update - %s" msgstr "远程更新 - %s" msgid "&Update" msgstr "更新(&U)" msgid "Log" msgstr "日志" msgid "Repositories" msgstr "仓库" #, python-format msgid "Running at %s" msgstr "运行于 %s" msgid "Stopped" msgstr "已停止" msgid "TortoiseHg Web Server" msgstr "TortoiseHg Web 服务器" msgid "Web Server" msgstr "Web 服务器" msgid "Port:" msgstr "端口:" msgid "Status:" msgstr "状态:" msgid "Start" msgstr "启动" msgid "Settings" msgstr "设置" msgid "" msgstr "<未指定>" msgid "&True" msgstr "是(&T)" msgid "&False" msgstr "否(&F)" msgid "&Unspecified" msgstr "未指定(&U)" #, python-format msgid "%dpt" msgstr "%dpt" msgid "Bold" msgstr "粗体" msgid "Italic" msgstr "斜体" msgid "Strike" msgstr "删除线" msgid "Underline" msgstr "下划线" msgid "&Set..." msgstr "设置(&S)..." msgid "&Clear" msgstr "清除(&C)" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "加载问题追踪器失败: '%s': %s. " msgid "&Browse..." msgstr "浏览(&B)..." msgid "UI Language" msgstr "界面语言" msgid "Specify your preferred user interface language (restart needed)" msgstr "指定您的首选用户界面语言(需要重新启动)" msgid "Three-way Merge Tool" msgstr "3路合并工具" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" msgid "Visual Diff Tool" msgstr "可视化比较工具" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" msgid "Visual Editor" msgstr "GUI编辑器" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" msgid "CLI Editor" msgstr "命令行编辑器" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" msgid "Shell" msgstr "外壳" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
                                                                                                        Default, Windows: cmd.exe /" "K title %(reponame)s
                                                                                                        Default, OS X: not set
                                                                                                        Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" msgid "Immediate Operations" msgstr "无提示操作" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" "列出不需要用户与交互直接完成的操作,用空格隔开。如 \"add remove revert forget" "\". 默认: 无 (留空)" msgid "Tab Width" msgstr "Tab 宽度" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" msgid "Force Repo Tab" msgstr "强制显示仓库标签" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "总是显示仓库标签,即使只有一个仓库。默认: 否" msgid "Monitor Repo Changes" msgstr "监视仓库变更" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "指定 TortoiseHg 要监控更改的目标文件系统。默认:仅本地" msgid "Max Diff Size" msgstr "最大差分大小" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" "设置 TortoiseHg 在修改历史,状态栏及提交窗口中所能显示的最大差分大小 (以KB计" "算),设为0表示不做限制。默认: 1024 (1MB)" msgid "Fork GUI" msgstr "图形界面进程" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" msgid "Full Path Title" msgstr "显示完整路径" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "在对话框标题栏中显示仓库目录的完整路径而不是根路径, 默认: 否" msgid "Auto-resolve merges" msgstr "自动解决合并冲突" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" msgid "New Repo Skeleton" msgstr "新建仓库骨架" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "如果指定,目录中的文件将被复制到新创建的仓库,例如 .hgignore 文件。" msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "工作台" msgid "Single Workbench Window" msgstr "单个工作单窗口" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" msgid "Default widget" msgstr "默认标签页" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "选择打开仓库时显示的默认标签页。默认: revdetails" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" "选择打开仓库时初始选中的修订版本。您可以选择 \"current\" (工作目录的父版" "本), \"tip\" (本分支的顶点) 或 \"workingdir\" (工作目录). 默认: current" msgid "" "Open new tabs next\n" "to the current tab" msgstr "" "在当前标签后面\n" "打开新的标签" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" "设为“是”时,新的标签将在当前标签后面打开;设为“否”时,新的标签在所有标签最后" "打开。默认: 是" msgid "Author Coloring" msgstr "按作者区分颜色" msgid "Color changesets by author name. Default: False" msgstr "变更集根据作者名不同改变颜色。默认:否" msgid "Full Authorname" msgstr "完整作者名称" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" "在日志中显示作者全名。如果未启用,只显示一小部分,没有名称则通常显示电子邮件" "地址。默认:否" msgid "Task Tabs" msgstr "任务标签栏" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" "选择是否在任务标签页的侧面显示任务标签栏,这样可以不用工具栏切换任务标签页。" "默认: off" msgid "Task Toolbar Order" msgstr "任务工具栏顺序" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
                                                                                                        Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
                                                                                                        Valid names are: log commit sync grep and " "pbranch.
                                                                                                        Default: log commit grep pbranch | sync" msgstr "" msgid "Long Summary" msgstr "长摘要" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" msgid "Log Batch Size" msgstr "日志批次大小" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "在查看修改历史时一次性读入显示的修订版本数. 默认: 500" msgid "Dead Branches" msgstr "死亡分支" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "列出仓库分支名时需要忽略的分支名称,用逗号隔开。默认: 无 (留空)" msgid "Branch Colors" msgstr "分支颜色" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" "用空格隔开的分支名称与颜色对应列表,格式为“分支名:#XXXXXX”。分支名中的空格和" "冒号需要用反斜杠 (\\) 转义。其它特殊字符也可以用此方法转义,如 \\u0040 代表 " "@ 字符, \\n 代表换行符。默认: 无 (留空)" msgid "Hide Tags" msgstr "隐藏标签" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" msgid "Activate Bookmarks" msgstr "激活书签" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

                                                                                                        • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
                                                                                                        • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
                                                                                                        • never: Never show any prompt to " "activate any bookmarks.

                                                                                                        Default: prompt" msgstr "" msgid "Show Family Line" msgstr "显示家族线路" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

                                                                                                        Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" msgid "Use optimized graph layouter" msgstr "" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

                                                                                                        Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" msgctxt "config item" msgid "Commit" msgstr "提交" msgid "Username" msgstr "用户名" msgid "" "Name associated with commits. The common format is:
                                                                                                        Full Name <" "email@example.com>" msgstr "提交使用的用户名。常见格式:
                                                                                                        全名 <email@example.com>" msgid "Ask Username" msgstr "询问用户名" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "如果没有指定用户名,将提示输入一个用户名。默认:否" msgid "Summary Line Length" msgstr "摘要行的长度" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" "推荐的提交说明每行长度,一条红色竖线将显示在行末以标识长度。按 Ctrl+E 可按照" "此长度自动折行。默认: 80" msgid "Close After Commit" msgstr "提交后关闭" msgid "Close the commit tool after every successful commit. Default: False" msgstr "每次成功提交后关闭提交工具. 默认: 否" msgid "Push After Commit" msgstr "提交后推送" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "每次成功提交后自动尝试推送到指定的URL或别名。默认: 不推送" msgid "Auto Commit List" msgstr "自动提交列表" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" "每次提交时都会自动选择的文件列表,用逗号隔开。建议仅在仓库设置中使用。默认: " "无 (留空)" msgid "Auto Exclude List" msgstr "自动排除列表" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" "当“文件状态”和“提交”对话框显示时不自动选择的文件列表,用逗号隔开。默认: 无 " "(留空)" msgid "English Messages" msgstr "英文信息" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" "生成英文提交说明,即使环境变量 LANGUAGE 或 LANG 设置为非英语语言。此设置应用" "到 合并,标签和回退 对话框。默认: 否" msgid "New Commit Phase" msgstr "新建提交阶段" msgid "The phase of new commits. Default: draft" msgstr "新提交的阶段。默认:draft" msgid "Secret MQ Patches" msgstr "秘密MQ补丁" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "将MQ补丁设为 secret (而不是 draft). 默认: 否" msgid "Check Subrepo Phase" msgstr "检查子仓库阶段" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" msgid "Monitor working
                                                                                                        directory changes" msgstr "监视工作目录变更" msgid "" "Select when the working directory status list will be refreshed:
                                                                                                        - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
                                                                                                        TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
                                                                                                        - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
                                                                                                        - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
                                                                                                        Default: auto" msgstr "" "选择何时刷新工作目录状态列表:
                                                                                                        - auto: [default] 让 " "TortoiseHg 决定何时刷新。
                                                                                                        当 TortoiseHg 进行可能更改工作目录的操作时,会自" "动刷新状态列表。这可能导致错过 TortoiseHg 控制之外的更改;
                                                                                                        - " "always: 在上面的自动更新之外,当用户点击“工作目录修订版本”或工作台任务" "栏上的“提交”图标时也刷新;
                                                                                                        - alwayslocal: 与 \"always\" 相" "同,但仅对 本地仓库 进行刷新。
                                                                                                        默认: auto" msgid "Confirm adding unknown files" msgstr "确认添加未知文件" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Confirm deleting files" msgstr "确认删除文件" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Sync" msgstr "同步" msgid "After Pull Operation" msgstr "拉取操作后" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" msgid "Default Push" msgstr "默认推送" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

                                                                                                        • all: The default. Push all changes in all " "branches.
                                                                                                        • branch: Push all changes in the current branch.
                                                                                                        • revision: Push the changes in the current branch up to the current revision.

                                                                                                        Default: all" msgstr "" "选择点击“推送”按钮时推送的修订版本。

                                                                                                        • all: 默认值,推送 所有" "分支 中的所有更改。
                                                                                                        • branch: 推送 当前分支 中的所有更改。" "
                                                                                                        • revision: 推送当前分支中在 当前修订版本及以前 的所有" "更改。

                                                                                                        默认: all" msgid "Confirm Push" msgstr "确认推送" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" msgid "Target Combo" msgstr "目标组合" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

                                                                                                        • auto: The default. Show the combo if more than one target " "configured.
                                                                                                        • always: Always show the combo.

                                                                                                        Default: auto" msgstr "" msgid "SSH Command" msgstr "SSH 命令" msgid "" "Command to use for SSH connections.

                                                                                                        Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" "SSH 连接使用的命令。

                                                                                                        默认:\"ssh\" 或者 \"TortoisePlink.exe -ssh " "-2\" (Windows)" msgid "Subrepository Features:" msgstr "" msgid "Allow Hg Subrepos" msgstr "" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" msgid "Allow Git Subrepos" msgstr "" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

                                                                                                        See the security note before enabling Git " "subrepos." msgstr "" msgid "Allow SVN Subrepos" msgstr "" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

                                                                                                        See the security note before enabling " "Subversion subrepos." msgstr "" msgid "Server" msgstr "服务器" msgid "Repository Details:" msgstr "仓库详情:" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" msgid "Encoding" msgstr "编码" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "仓库中文件的字符编码,供网页界面和 TortoiseHg 使用。" msgid "'Publishing' repository" msgstr "'正在发布' 仓库" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" msgid "Web Server:" msgstr "Web 服务器:" msgid "Textual description of the repository's purpose or contents." msgstr "有关仓库用途或内容的文本描述." msgid "Contact" msgstr "联系方式" msgid "Name or email address of the person in charge of the repository." msgstr "仓库负责人的名字或邮件地址." msgid "Style" msgstr "样式" msgid "Which template map style to use" msgstr "指定一个模板样式" msgid "Archive Formats" msgstr "文档格式" msgid "Comma separated list of archive formats allowed for downloading" msgstr "允许下载的文档格式列表, 以逗号隔开" msgid "Port" msgstr "端口" msgid "Port to listen on" msgstr "侦听用的端口" msgid "Push Requires SSL" msgstr "SSL加密推送" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "是否在从web推送到本地仓库时采用SSL加密, 以避免密码被窃取." msgid "Stripes" msgstr "条纹间隔" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "多行输出时斑马条纹每个条纹所间隔的行数. 默认是1, 为0则禁用斑马条纹." msgid "Max Files" msgstr "最大文件数" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "每个变更集列出的文件最大数量。默认:10" msgid "Max Changes" msgstr "最多改动数" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "变更日志上列出的变更最大数量。默认:10" msgid "Allow Push" msgstr "允许推送" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" "是否允许推送到仓库. 如果为空或没设置, 推送是不允许的. 如果指定值为\"*\", 则任" "何远程用户都能推送, 包括未授权用户. 否则, 远程用户必须被授权, 并且授权用户名" "必须在这个列表里面(空格符或\",\"分隔). 允许推送列表内容是在禁止推送列表内容之" "后被检查." msgid "Deny Push" msgstr "禁止推送" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" "是否禁止推送到仓库. 如果为空或没设置, 推送是允许的. 如果指定值为\"*\", 则任何" "远程用户都被禁止推送. 否则, 未被授权用户都被禁止, 并且所有在这个列表里面的授" "权用户(空格符或\",\"分隔)也都被禁止. 禁止推送列表内容是在允许推送列表内容之前" "被检查." msgid "Proxy" msgstr "代理服务器" msgid "Host" msgstr "主机" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "代理服务器主机名和(可选)端口, 例如:\"myproxy:8000\"" msgid "Bypass List" msgstr "不使用代理列表" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "可选. 不使用代理连接的主机列表, 以逗号分隔" msgid "Optional. User name to authenticate with at the proxy server" msgstr "可选. 代理服务器授权的用户名" msgid "Password" msgstr "密码" msgid "Optional. Password to authenticate with at the proxy server" msgstr "可选. 代理服务器授权的密码" msgid "From" msgstr "发件人" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "邮件地址,用于邮件中的发件人和SMTP信封" msgid "To" msgstr "收件人" msgid "Comma-separated list of recipient email addresses" msgstr "逗号分隔的收件人邮件地址列表" msgid "Cc" msgstr "抄送" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "逗号分隔的抄送收件人邮件地址列表" msgid "Bcc" msgstr "密送" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "逗号分隔的密送收件人邮件地址列表" msgid "method" msgstr "邮件发送方式" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" "可选的. 发送邮件消息的方法. 如果值为\"smtp\"(默认), 使用SMTP(在下面配置). 否" "则, 使用一个有类似于sendmail功能的程序的名称(在命令行中使用\"-f\"来指定发件人" "及收件人列表, 在stdin中指定消息内容). 一般地, 将此项设为\"sendmail\"或\"/usr/" "sbin/sendmail\"就可以用sendmail来发送消息." msgid "SMTP Host" msgstr "SMTP 主机" msgid "Host name of mail server" msgstr "邮件服务器主机名" msgid "SMTP Port" msgstr "SMTP 端口" msgid "Port to connect to on mail server. Default: 25" msgstr "邮件服务器连接端口. 默认: 25" msgid "SMTP TLS" msgstr "SMTP TLS" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "连接到邮件服务器时的启用 TLS 的方法。默认:无" msgid "SMTP Username" msgstr "SMTP 用户名" msgid "Username to authenticate to mail server with" msgstr "邮件服务器验证用的用户名" msgid "SMTP Password" msgstr "SMTP 密码" msgid "Password to authenticate to mail server with" msgstr "邮件服务器验证用的密码" msgid "Local Hostname" msgstr "本机主机名" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "发件人用来向邮件服务器标识自己的主机名" msgid "Diff and Annotate" msgstr "差异和溯源" msgid "Patch EOL" msgstr "补丁中的换行" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" msgid "Git Format" msgstr "Git 格式" msgid "Use git extended diff header format. Default: False" msgstr "使用git的扩展比较头格式. 默认: 否" msgid "MQ Git Format" msgstr "MQ Git格式" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" msgid "No Dates" msgstr "无日期" msgid "Do not include modification dates in diff headers. Default: False" msgstr "不要在比较头里包含修改日期. 默认: 否" msgid "Show Function" msgstr "显示函数" msgid "Show which function each change is in. Default: False" msgstr "显示每处修改的所在的函数. 默认: 否" msgid "Ignore White Space" msgstr "忽略空格" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "差异视图中比较行时忽略空格。默认:否" msgid "Ignore WS Amount" msgstr "忽略空格数量变化" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "差异视图中忽略等同空格的变更。默认:否" msgid "Ignore Blank Lines" msgstr "忽略空行" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "忽略差异查看器中整行完全为空的行。默认:否" msgid "Annotate:" msgstr "溯源:" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "溯源视图中比较行时忽略空格。默认:否" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "溯源视图中忽略等同空格的变更。默认:否" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "溯源视图中忽略整行为空。默认:否" msgid "Fonts" msgstr "字体" msgid "Message Font" msgstr "提交说明字体" msgid "Font used to display commit messages. Default: monospace 10" msgstr "用于显示提交说明的字体。默认: monospace 10" msgid "Diff Font" msgstr "差异字体" msgid "Font used to display text differences. Default: monospace 10" msgstr "显示差异文本的字体。默认:monospace 10" msgid "ChangeLog Font" msgstr "变更日志字体" msgid "Font used to display changelog data. Default: monospace 10" msgstr "显示变更日志日期的字体。默认:monospace 10" msgid "Output Font" msgstr "输出字体" msgid "Font used to display output messages. Default: sans 8" msgstr "用于显示输出信息的字体。默认: sans 8" msgid "Extensions" msgstr "扩展" msgid "Tools" msgstr "工具" msgid "Hooks" msgstr "钩子" msgid "Issue Tracking" msgstr "问题跟踪" msgid "Issue Regex" msgstr "问题筛选正则表达式" msgid "Defines the regex to match when picking up issue numbers." msgstr "定义匹配问题编号的正则表达式。" msgid "Issue Link" msgstr "问题链接" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" msgid "Inline Tags" msgstr "内嵌标签" msgid "Show tags at start of commit message." msgstr "在提交消息的开头显示标签。" msgid "Mandatory Issue Reference" msgstr "强制性问题参考" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" msgid "Issue Tracker Plugin" msgstr "问题追踪器插件" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "配置一个 COM IBugTraqProvider 或者 IBugTraqProvider2 问题跟踪插件。" msgid "Configure Issue Tracker" msgstr "配置问题跟踪器" msgid "Configure the selected COM Bug Tracker plugin." msgstr "配置选定的 COM Bug Tracker 插件。" msgid "Issue Tracker Trigger" msgstr "问题跟踪触发器" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

                                                                                                        • never: Do not update the Issue Tracker " "state automatically.
                                                                                                        • commit: Update the Issue Tracker state after " "a successful commit.

                                                                                                        Default: never" msgstr "" msgid "Changeset Link" msgstr "变更集链接" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
                                                                                                        The template string " "uses a normal mercurial template syntax, such as:

                                                                                                        • {node|short} : replaced by " "the 12 digit revision id.
                                                                                                        • {rev} : replaced by the revision number." "
                                                                                                        • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
                                                                                                        For example, in order to " "link to bitbucket commit pages you can set this to:
                                                                                                        https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
                                                                                                        You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
                                                                                                        https://github.com/torvalds/" "linux/commit/{gitnode}
                                                                                                        https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
                                                                                                        " msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "" msgid "User name to authenticate with review board" msgstr "" msgid "Password to authenticate with review board" msgstr "" msgid "Server Repository ID" msgstr "服务器仓库 ID" msgid "The default repository id for this repo on the review board server" msgstr "" msgid "Target Groups" msgstr "目标组" msgid "A comma separated list of target groups" msgstr "" msgid "Target People" msgstr "目标人员" msgid "A comma separated list of target people" msgstr "" msgid "Kiln Bfiles" msgstr "" msgid "Patterns" msgstr "模式" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" msgid "Size" msgstr "大小" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" msgid "System Cache" msgstr "系统缓存" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "" msgid "Simplelock" msgstr "" msgid "Lock Clone" msgstr "" msgid "" "Location of local clone of organizational lock repository.

                                                                                                        This repository " "must contain a \"locked\" text file" msgstr "" msgid "Largefiles" msgstr "大文件" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" msgid "Minimum Size" msgstr "最小大小" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" msgid "User Cache" msgstr "用户缓存" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" msgid "Projrc" msgstr "" msgid "Require confirmation" msgstr "需要确认" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

                                                                                                        • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
                                                                                                        • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
                                                                                                        • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
                                                                                                        " msgstr "" msgid "Servers" msgstr "服务器" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" msgid "Include" msgstr "包括" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" msgid "Exclude" msgstr "排除" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" msgid "Update on incoming" msgstr "进入更新" msgid "" "Let the user update the projrc on incoming:
                                                                                                        • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
                                                                                                        • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
                                                                                                        • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                                                                                                          Default: never" msgstr "" msgid "GnuPG" msgstr "GnuPG" msgid "Specify the path to GPG. Default: gpg" msgstr "指定路径到 GPG。默认:gpg" msgid "Key ID" msgstr "密钥ID" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "用户相关的 GPG 密钥 ID 。默认:无(留空)" msgid "TortoiseHg Settings" msgstr "TortoiseHg 设置" msgid "Iniparse package not found" msgstr "iniparse软件包未找到" msgid "Can't change settings without iniparse package - view is readonly." msgstr "没有ini解释器不能修改设置 - 视图是只读的。" #, python-format msgid "%s's global settings" msgstr "%s 的全局设置" msgid "No repository found" msgstr "未发现仓库" msgid "no repo at " msgstr "没有仓库 " #, python-format msgid "%s project settings (.hg/projrc)" msgstr "%s 项目设置 (.hg/projrc)" #, python-format msgid "%s repository settings" msgstr "%s 仓库设置" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "重启所有 TortoiseHg 应用程序,以使下列更改生效:" msgid "Apply changes before exit?" msgstr "退出前应用更改?" msgid "&No (discard changes)" msgstr "否(丢弃改动) (&N)" msgid "Reload" msgstr "重新载入" msgid "Settings File:" msgstr "设置文件:" msgid "Confirm Save" msgstr "确认保存" msgid "Save changes before editing?" msgstr "编辑前保存更改?" msgid "&Save" msgstr "保存(&S)" msgid "Confirm Reload" msgstr "确认重新载入" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" "未保存的修订将会丢失。\n" "确认要重新载入吗?" msgid "Unable to create a Mercurial.ini file" msgstr "不能创建 Mercurial.ini 文件" msgid "Insufficient access rights, reverting to read-only mode." msgstr "没有足够的访问权限,恢复到只读模式。" msgid "Context Menu" msgstr "右键菜单" msgid "Top menu items:" msgstr "顶层菜单项:" msgid "Sub menu items:" msgstr "子菜单项:" msgid "Menu Behavior" msgstr "菜单行为" msgid "Hide context menu outside repositories" msgstr "在仓库外隐藏右键菜单" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "不在无版本控制的文件夹显示菜单项 (Shift+右键时显示)" msgid "Icons" msgstr "图标" msgid "Overlays" msgstr "图标层叠" msgid "Enabled overlays" msgstr "启用图标层叠" msgid "Local disks only" msgstr "仅本地磁盘" msgid "Enabled Overlay Handlers" msgstr "启用层叠句柄" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "警告: 影响所有的Tortoise,注销后生效" msgid "Added" msgstr "已添加" msgid "Locked*" msgstr "锁定*" msgid "Ignored*" msgstr "忽略*" msgid "Unversioned" msgstr "无版本控制的" msgid "Readonly*" msgstr "只读*" msgid "Deleted*" msgstr "删除*" msgid "*: not used by TortoiseHg" msgstr "*: 未被 TortoiseHg 使用" msgid "Taskbar" msgstr "任务条" msgid "Show Icon" msgstr "显示图标" msgid "Highlight Icon" msgstr "高亮显示图标" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "您可以在TortoiseSVN 的设置更改图标设置" msgid "Explorer Extension Settings - TortoiseHg" msgstr "文件资源管理器扩展设置 - TortoiseHg" msgid "Clear" msgstr "清除" msgid "Clear the current shelf file" msgstr "清除当前的搁置文件" msgid "Delete the current shelf file" msgstr "删除当前的搁置文件" msgid "Left Toolbar" msgstr "左侧工具栏" msgid "Delete selected chunks" msgstr "删除选定的块" msgid "Move all files right" msgstr "" msgid "Move selected file right" msgstr "" msgid "Edit file" msgstr "编辑文件" msgid "Move selected chunks right" msgstr "" msgid "Refresh Toolbar" msgstr "刷新工具栏" msgid "Refresh" msgstr "刷新" msgid "New Shelf" msgstr "新建搁置" msgid "Right Toolbar" msgstr "右侧工具栏" msgid "Move selected chunks left" msgstr "" msgid "Move selected file left" msgstr "" msgid "Move all files left" msgstr "" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "修改文件的备份副本可在 .hg/Trashcan/ 找到" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "TortoiseHg 搁置 - %s" msgid "Delete selected chunks from working copy?" msgstr "从工作副本删除选定块?" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "从 shelf 文件 %s 删除选定块?" msgid "Are you sure?" msgstr "您确定吗?" msgid "TortoiseHg New Shelf Name" msgstr "TortoiseHg 新建搁置的名称" msgid "Specify name of new shelf" msgstr "指定新搁置的名称" msgid "Bad filename" msgstr "有问题的文件名" #, python-format msgid "A shelf name cannot contain %s" msgstr "搁置名称不能包含 %s" msgid "File already exists" msgstr "文件已存在" msgid "A shelf file of that name already exists" msgstr "已存在该名称的搁置文件" msgid "New shelf created" msgstr "新的搁置已创建" #, python-format msgid "Delete shelf file %s?" msgstr "删除搁置文件 %s?" msgid "Shelf deleted" msgstr "搁置已删除" msgid "Revert all working copy changes?" msgstr "还原所有工作副本的修改吗?" #, python-format msgid "Clear contents of shelf file %s?" msgstr "清除当前的搁置文件 %s 吗?" msgid "Shelf cleared" msgstr "搁置已清除" #, python-format msgid "Shelf: %s" msgstr "搁置: %s" #, python-format msgid "Patch: %s" msgstr "补丁: %s" msgid "Key:" msgstr "键值:" msgid "Local sign" msgstr "本地签名" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "" msgid "No commit" msgstr "无提交" msgid "Use custom commit message:" msgstr "使用自定义提交说明" msgid "&Sign" msgstr "签名(&S)" #, python-format msgid "Sign - %s" msgstr "签 - %s" msgid "Signature has been added" msgstr "签名已添加" msgid "Repository command still running" msgstr "仓库命令仍在运行" msgid "Filter:" msgstr "过滤器:" msgid "Check all files" msgstr "全选" msgid "Uncheck all files" msgstr "全不选" msgid "Status File List Toolbar" msgstr "状态文件列表工具栏" msgid "Remove filter, show root" msgstr "显示所有文件" #, python-format msgid "%s - status (selection filtered)" msgstr "%s - 状态(选择已过滤)" #, python-format msgid "%s - status" msgstr "%s - 状态" msgid "Check" msgstr "选中" msgid "Uncheck" msgstr "取消选中" msgid "status" msgstr "状态" msgid "Failed to refresh" msgstr "刷新失败" msgid "No appropriate files" msgstr "无合适文件" msgid "No files found for this operation" msgstr "无可进行当前操作的文件" msgid "Stat" msgstr "状态" msgid "M" msgstr "M" msgid "Filename" msgstr "文件名" msgid "Size (KB)" msgstr "大小 (KB)" #, python-format msgid "Checked count: %d" msgstr "已选择文件数: %d" msgid ", resolved merge" msgstr ", 合并冲突已解决" msgid ", unresolved merge" msgstr ", 合并冲突未解决" #, python-format msgid "%s is modified" msgstr "%s 已修改" msgid "modified" msgstr "已修改" #, python-format msgid "%s is added" msgstr "%s 已被添加" msgid "added" msgstr "已添加" #, python-format msgid "%s is removed" msgstr "%s 已移除" msgid "removed" msgstr "已移除" #, python-format msgid "%s is not tracked (unknown)" msgstr "%s 未被跟踪(未知文件)" msgid "unknown" msgstr "未跟踪" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "%s 已被非 hg 命令删除但处于跟踪状态" msgid "missing" msgstr "缺失的" #, python-format msgid "%s is ignored" msgstr "%s 被忽略" msgid "ignored" msgstr "已忽略" #, python-format msgid "%s is not modified (clean)" msgstr "%s 未修改" msgid "clean" msgstr "清除" #, python-format msgid "%s is a dirty subrepo" msgstr "%s 是一个存在问题的子仓库" msgid "subrepo" msgstr "子仓库" msgid "Check for incoming changes from selected URL" msgstr "检查可从指定URL拉取的更改" msgid "Pull incoming changes from selected URL" msgstr "从指定URL拉取更改" msgid "Detect outgoing changes to selected URL" msgstr "检查可推送到指定URL的更改" msgid "Push outgoing changes to selected URL" msgstr "推送更改到指定URL" msgid "Sync Bookmarks" msgstr "同步书签" msgid "Email outgoing changesets for remote repository" msgstr "将修订集作为电子邮件发送到远程仓库" msgid "Manage pending perforce changelists" msgstr "" msgid "Unbundle" msgstr "Unbundle" msgid "Selected Options:" msgstr "选中的选项:" msgid "Path Edit Toolbar" msgstr "编辑路径工具栏" msgid "Security" msgstr "安全设置" msgid "Manage HTTPS connection security and user authentication" msgstr "管理HTTPS连接安全性设置及用户认证信息" msgid "Save" msgstr "保存" msgid "Save current URL under an alias" msgstr "以别名保存当前URL" msgid "Paths in Repository Settings:" msgstr "仓库设置中的路径:" msgid "Related Paths:" msgstr "相关的路径:" msgid "branch: " msgstr "分支: " msgid "bookmark: " msgstr "书签: " #, python-format msgid "rev: %d (%s)" msgstr "修订版本: %d (%s)" msgid "Post Pull: " msgstr "拉取完成后: " msgid "&Edit..." msgstr "编辑(&E)..." msgid "&Remove..." msgstr "移除(&R)..." msgid "Repository not local" msgstr "非本地仓库" msgid "A terminal shell cannot be opened for remote" msgstr "终端外壳不能打开远程操作" msgid "Confirm path delete" msgstr "确认删除路径" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "是否要从仓库配置文件中删除 %s ?" msgid "Select repository" msgstr "" msgid "No host specified" msgstr "未指定主机" msgid "Please set a valid URL to continue." msgstr "请设置有效的 URL 以继续。" msgid "No remote repository URL or path set" msgstr "未设置远程仓库URL" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

                                                                                                          Please type and save a remote repository path on the " "Sync widget." msgstr "" "尚未为本仓库配置默认(default)远程仓库URL.

                                                                                                          请在同步标签页中添加远程" "仓库地址。" msgid "Redundant authentication info" msgstr "冗余的认证信息" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "您已有此主机的认证信息。是否移除URL中的认证信息?" msgid "sync command already running" msgstr "同步命令已在运行" #, python-format msgid "Getting incoming changesets from %s..." msgstr "正在检查可从 %s 拉取的修订集..." #, python-format msgid "Found incoming changesets from %s" msgstr "发现可从 %s 拉取的修订集" #, python-format msgid "No incoming changesets from %s" msgstr "没有可从 %s 拉取的修订集" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "检查可从 %s 拉取操作失败,返回值 %d" #, python-format msgid "Pulling from %s..." msgstr "正在从 %s 拉取..." #, python-format msgid "Pull from %s completed" msgstr "从 %s 拉取操作完成" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "从 %s 拉取操作失败,返回值 %d" msgid "Merge caused file conflicts" msgstr "合并导致文件冲突" msgid "File conflicts need to be resolved" msgstr "需要解决的文件冲突" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "正在查找可推送到 %s 的修订集..." #, python-format msgid "%d outgoing changesets to %s" msgstr "%d 个可推送到 %s 的修订集" #, python-format msgid "No outgoing changesets to %s" msgstr "没有可推送到 %s 的修订集" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "检查可推送到 %s 操作失败,返回值 %d" msgid "Perforce pending..." msgstr "" #, python-format msgid "%s (submitted)" msgstr "%s (已提交)" #, python-format msgid "%s (pending)" msgstr "%s (挂起)" msgid "Unable to parse p4pending output" msgstr "无法解析 p4pending 的输出" #, python-format msgid "%d pending changelists found" msgstr "找到 %d 挂起的修订列表" msgid "No pending Perforce changelists" msgstr "" msgid "Aborted p4pending" msgstr "已中止 p4pending" msgid "Unable to determine pending changesets" msgstr "无法确定待定的变更集" msgid "Confirm Push to remote Repository" msgstr "确认推送到远程仓库" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" "推送到远程仓库\n" "%s\n" "?" #, python-format msgid "Push to %s aborted" msgstr "推送到 %s 操作失败" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" "无效的默认推送修订:%s。请检查您的 Mercurial 配置 (tortoisehg.defaultpush)" #, python-format msgid "Pushing to %s..." msgstr "正在推送到 %s..." #, python-format msgid "Push to %s completed" msgstr "推送到 %s 操作完成" #, python-format msgid "Push to %s aborted, ret %d" msgstr "推送到 %s 操作失败,返回值 %d" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "您要推送的修订集中包含新创建的分支。您要在远程仓库建立新的分支吗?" msgid "Determining outgoing changesets to email..." msgstr "正在确定传出到电子邮件的变更集..." msgid "No outgoing changesets" msgstr "没有可推送的修订集" #, python-format msgid "Outgoing aborted, ret %d" msgstr "" msgid "Select bundle file" msgstr "选择打包文件" msgid "Bundle files (*.hg)" msgstr "打包文件 (*.hg)" msgid "Unable to remove URL" msgstr "无法删除URL" msgid "Post Pull Behavior" msgstr "拉取完成后的行为" msgid "Select post-pull operation for this repository" msgstr "选择本仓库拉取完成后的操作" msgid "None - simply pull changesets" msgstr "无操作 - 只拉取所有修订集" msgid "Update - pull, then try to update" msgstr "更新 - 拉取完成后尝试更新" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "获取 - 使用 fetch (自动合并拉取的变更)" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "获取 - 使用 fetch 扩展 (fetch 不激活!)" msgid "Rebase - rebase local commits above pulled changes" msgstr "变基 - 在本地拉取的变更之上变基本地提交" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "UpdateOrRebase - 拉取,然后尝试更新或变基" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "变基 - 使用 rebase 扩展 (rebase 未激活!)" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "更新或变基 - 使用 rebase 扩展 (rebase 未激活!)" msgid "Launch settings tool..." msgstr "加载设置工具..." msgid "Unable to save post pull operation" msgstr "无法保存拉取完成后操作" msgid "Save Path" msgstr "保存路径" msgid "Alias" msgstr "别名" msgid "URL" msgstr "URL" msgid "Remove authentication data from URL" msgstr "删除URL认证数据" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "用户数据应该与主机名关联,使用安全对话框。" msgid "Update subrepo paths" msgstr "更新子仓库路径" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" msgid "Unable to save an URL" msgstr "无法保存URL" msgid "Confirm URL replace" msgstr "确认URL替换" #, python-format msgid "%s already exists, replace URL?" msgstr "%s 已存在,替换 URL?" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

                                                                                                          %s

                                                                                                          Replace it with the " "following URL?:

                                                                                                          %s" msgstr "" msgid "Security: " msgstr "安全: " #, python-format msgid "Host: %s" msgstr "主机: %s" msgid "Secure HTTPS Connection" msgstr "HTTPS安全连接" msgid "Verify with Certificate Authority certificates (best)" msgstr "使用证书颁发机构验证(最佳)" msgid "Verify with stored host fingerprint (good)" msgstr "使用储存的主机指纹验证(较安全)" msgid "No host validation, but still encrypted (bad)" msgstr "不验证主机,仍然加密(不安全)" msgid "### host certificate fingerprint ###" msgstr "### 主机证书指纹 ###" msgid "Query" msgstr "查询" msgid "TLS 1.0" msgstr "" msgid "TLS 1.1" msgstr "" msgid "TLS 1.2" msgstr "" msgid "Minimum Protocol" msgstr "" msgid "User Authentication" msgstr "用户认证" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" "可选。PEM 编码的客户证书密钥文件。文件名中的\n" "环境变量将被展开。" msgid "User Certificate Key" msgstr "用户证书密钥" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" "可选。PEM 编码的客户证书链文件。文件名中的\n" "环境变量将被展开。" msgid "User Certificate Chain" msgstr "用户证书链" msgid "Certificate Query Error" msgstr "证书查询出错" msgid "Select User Certificate Key File" msgstr "选择用户证书密钥文件" msgid "PEM files (*.pem *.key)" msgstr "PEM 文件 (*.pem *.key)" msgid "Select User Certificate Chain File" msgstr "选择用户证书链文件" msgid "PEM files (*.pem *.crt *.cer)" msgstr "PEM 文件 (*.pem *.crt *.cer)" msgid "Unable to save authentication" msgstr "无法保存身份验证" #, python-format msgid "%s - sync options" msgstr "%s - 同步选项" msgid "Allow push of a new branch (--new-branch)" msgstr "允许推送新分支 (--new-branch)" msgid "Force push or pull (override safety checks, --force)" msgstr "强行推送或拉取 (忽略安全检查,--force)" msgid "Temporarily disable configured HTTP proxy" msgstr "暂时禁用HTTP代理设置" msgid "Emit debugging output (--debug)" msgstr "输出调试信息 (--debug)" msgid "Work on patch queue (--mq)" msgstr "工作于补丁队列 (--mq)" #, python-format msgid "Tag - %s" msgstr "标签 - %s" msgid "Tag:" msgstr "标签:" msgid "Tagged:" msgstr "已用于标记:" msgid "Local tag" msgstr "本地标签" msgid "Replace existing tag (-f/--force)" msgstr "替换已有标签 (-f/--force)" msgid "Use English commit message" msgstr "使用英文的提交说明" msgid "local" msgstr "本地" msgid "Move" msgstr "移动" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "移动标签 %s 到修订集 %s (从修订集 %s)" #, python-format msgid "Added tag %s for changeset %s" msgstr "添加标签 %s 到修订集 %s" #, python-format msgid "Tag '%s' has been moved" msgstr "标签 '%s' 已被移除" #, python-format msgid "Tag '%s' has been added" msgstr "已添加标签 '%s'" #, python-format msgid "Removed tag %s" msgstr "被移除的标签 %s" #, python-format msgid "Tag '%s' has been removed" msgstr "标签 '%s' 已被移除" msgid "Patch files (*.diff *.patch)" msgstr "补丁文件 (*.diff *.patch)" #, python-format msgid "Import - %s" msgstr "导入 - %s" msgid "Browse Directory..." msgstr "浏览目录..." msgid "Import from Clipboard" msgstr "从剪贴板导入" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "" msgid "Preview:" msgstr "预览:" msgid "Shelf" msgstr "搁置" msgid "Checking working directory status..." msgstr "正在检查工作目录状态" msgid "&Import" msgstr "导入(&I)" msgid "Working directory is not clean! View changes..." msgstr "工作目录中有更改尚未提交!查看更改..." msgid "Select patches" msgstr "选择补丁" msgid "Select Directory containing patches" msgstr "选择包含补丁的目录" #, python-format msgid "%s patches" msgstr "%s 补丁" #, python-format msgid "%s will be imported to " msgstr "%s 将被导入到 " msgid "Nothing to import" msgstr "没什么可导入的" msgid "Strip:" msgstr "截去:" msgid "Discard local changes, no backup (-f/--force)" msgstr "废弃本地改动, 无备份(-f/--force)" msgid "No backup (-n/--nobackup)" msgstr "无备份(-n/--nobackup)" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "%d 个变更集将被剥离" msgid "Unknown revision!" msgstr "未知的版本!" msgid "Detected uncommitted local changes." msgstr "检测到未提交的本地更改。" msgid "Do you want to keep them or discard them?" msgstr "您想保留还是抛弃它们?" msgid "&Keep (--keep)" msgstr "保持(&K) (--keep)" msgid "&Discard (--force)" msgstr "丢弃(&D) (--force)" msgid "Confirm Strip" msgstr "确认截去" #, python-format msgid "Strip - %s" msgstr "截去 - %s" msgid "&Strip" msgstr "剥离(&S)" msgid "Topic:" msgstr "" msgid "&Rename" msgstr "" #, python-format msgid "Topic - %s" msgstr "" #, python-format msgid "A topic named \"%s\" already exists" msgstr "" #, python-format msgid "Topic '%s' has been added" msgstr "" #, python-format msgid "Topic '%s' does not exist" msgstr "" #, python-format msgid "Topic '%s' has been removed" msgstr "" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "" msgid "Parent 1:" msgstr "父版本 1:" msgid "Parent 2:" msgstr "父版本 2:" msgid "Pull subrepos from:" msgstr "拉取子仓库从:" msgid "List updated files (--verbose)" msgstr "列出更新的文件 (--verbose)" msgid "Discard local changes, no backup (-C/--clean)" msgstr "放弃本地改动,无备份 (-C/--clean)" msgid "Always merge (when possible)" msgstr "总是合并(如果可以)" msgid "(same as parent)" msgstr "(和父版本一致)" msgid "Activate bookmark?" msgstr "激活书签?" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

                                                                                                          Do " "you want to activate it?
                                                                                                          You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

                                                                                                          Select " "the bookmark that you want to activate and click OK.

                                                                                                          Click " "Cancel if you don't want to activate any of them.

                                                                                                          You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                                                                          " msgstr "" msgid "Deactivate current bookmark?" msgstr "关闭当前书签?" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" "检测到未提交的本地更改。\n" "请选择一个选项:\n" msgid "Discard - discard local changes, no backup" msgstr "丢弃 - 丢弃本地改动, 无备份" msgid "&Shelve" msgstr "剥离改动(&S)" msgid "Shelve - move local changes to a patch" msgstr "剥离修订 - 将本地更改移动到补丁" msgid "Merge - allow to merge with local changes" msgstr "合并 - 允许与本地版本合并" msgid "Confirm Update" msgstr "确认更新" #, python-format msgid "Update - %s" msgstr "更新 - %s" msgid "[non-existant]" msgstr "[不存在]" msgid "Tool launch failure" msgstr "工具载入失败" #, python-format msgid "%s : %s" msgstr "%s : %s" msgid "No diff tool found" msgstr "没有比较工具" msgid "No visual diff tools were detected" msgstr "没有检测到可视化比较工具" msgid "[working copy]" msgstr "[工作副本]" msgid "[original]" msgstr "[原始版本]" msgid "Unable to find changeset" msgstr "未能找到修订集" msgid "You likely need to refresh this application" msgstr "您可能需要刷新" msgid "No file changes" msgstr "无改动" msgid "There are no file changes to view" msgstr "无改动可查看" msgid "working changes" msgstr "当前改动" #, python-format msgid "changeset %d:%s" msgstr "修订集 %d:%s" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "修订版本 %d:%s 到 %d:%s" msgid "Visual Diffs - " msgstr "文件差分 - " msgid " filtered" msgstr " 已过滤" msgid "Temporary files are removed when this dialog is closed" msgstr "临时文件在对话框关闭后自动删除" msgid "Select Tool:" msgstr "选择工具:" msgid "Dir diff to p1" msgstr "目录比较 p1" msgid "Dir diff to p2" msgstr "目录比较 p2" msgid "3-way dir diff" msgstr "三路目录比较" msgid "Directory diff" msgstr "目录比较" msgid "Confirm Discard" msgstr "确认丢弃" msgid "Discard outstanding changes to working directory?" msgstr "丢弃工作目录未提交的修改?" msgid "Config files (*.conf *.config *.ini)" msgstr "配置文件 (*.conf *.config *.ini)" msgid "Open hgweb config" msgstr "打开 hgweb 配置" msgid "Save hgweb config" msgstr "保存 hgweb 配置" msgid "Path:" msgstr "路径:" msgid "Local Path:" msgstr "本地路径:" msgid "Select Repository" msgstr "选择仓库" msgid "Add Path to Serve" msgstr "添加服务器路径" msgid "Edit Path to Serve" msgstr "编辑服务器路径" msgid "Local Path" msgstr "本地路径" msgid "Webconf" msgstr "Webconf" msgid "Config File:" msgstr "配置文件:" msgid "Open" msgstr "打开" msgid "New &Workbench" msgstr "新建工作台(&W)" msgid "&New Repository..." msgstr "新建仓库..." msgid "Clon&e Repository..." msgstr "克隆仓库(&E)..." msgid "&Open Repository..." msgstr "打开仓库..." msgid "&File" msgstr "文件(&F)" msgid "&View" msgstr "查看(&V)" msgid "&Repository" msgstr "仓库(&R)" msgid "&Help" msgstr "帮助(&H)" msgid "&Dock Toolbar" msgstr "" msgid "&Task Toolbar" msgstr "任务工具栏(&T)" msgid "&Custom Toolbar" msgstr "自定义工具栏(&C)" msgid "S&ync Toolbar" msgstr "同步工具栏(&Y)" msgid "&Close Repository" msgstr "关闭仓库" msgid "Sh&ow Repository Registry" msgstr "显示仓库注册表(&O)" msgid "Show &Patch Queue" msgstr "显示补丁队列(&P)" msgid "Show Conso&le" msgstr "显示控制台(&L)" msgid "Place Console in Doc&k Area" msgstr "" msgid "R&epository Registry Options" msgstr "仓库注册表选项(&E)" msgid "Save Open Repositories on E&xit" msgstr "退出时保存打开的仓库(&X)" msgid "Sa&ve Current Sync Paths on Exit" msgstr "退出时保存当前的同步路径(&V)" msgid "Show Tas&k Tab" msgstr "" msgid "&Commit" msgstr "提交(&C)" msgid "&Patch Branch" msgstr "补丁分支(&P)" msgid "Revision &Details" msgstr "修订版本详细信息(&D)" msgid "&Search" msgstr "搜索(&S)" msgid "S&ynchronize" msgstr "同步(&Y)" msgid "Refresh current repository" msgstr "刷新当前仓库" msgid "Refresh &Task Tab" msgstr "刷新任务标签页(&T)" msgid "Refresh only the current task tab" msgstr "只刷新当前任务标签页" msgid "Load &All Revisions" msgstr "载入所有修订版本(&A)" msgid "Load all revisions into graph" msgstr "载入所有修订版本到修订历史图中" msgid "Go to current revision" msgstr "转到当前修订版本" msgid "&Goto Revision..." msgstr "转到修订版本(&G)..." msgid "Go to a specific revision" msgstr "转到指定的修订版本" msgid "Filter graph with revision sets or branches" msgstr "在修订历史图上过滤修订集或分支" msgid "&Workbench Toolbars" msgstr "工作台工具栏(&W)" msgid "&Lock File..." msgstr "" msgid "Lock or unlock files" msgstr "" msgid "Update working directory or switch revisions" msgstr "更新工作目录或切换修订版本" msgid "&Shelve..." msgstr "剥离(&S)..." msgid "&Import Patches..." msgstr "导入补丁(&I)..." msgid "U&nbundle..." msgstr "解压包(&n)..." msgid "&Merge..." msgstr "合并(&M)..." msgid "Merge with the other head of the current branch" msgstr "" msgid "&Resolve..." msgstr "解决(&R)..." msgid "R&ollback/Undo..." msgstr "回退/撤销(&O)..." msgid "&Purge..." msgstr "清除(&P)..." msgid "&Bisect..." msgstr "二分检测(&B)..." msgid "&Verify" msgstr "验证(&V)" msgid "Re&cover" msgstr "恢复(&C)" msgid "&Web Server" msgstr "&Web 服务器" msgid "E&xplorer Help" msgstr "浏览帮助(&X)" msgid "&Readme" msgstr "读我(&R)" msgid "About &Qt" msgstr "关于 &Qt" msgid "&About TortoiseHg" msgstr "关于 TortoiseHg (&A)" msgid "&Incoming" msgstr "传入(&I)" msgid "&Pull" msgstr "拉取(&P)" msgid "&Outgoing" msgstr "传出(O)" msgid "P&ush" msgstr "推送(&U)" msgid "&Sync Bookmarks..." msgstr "同步书签(&S)..." #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" "pull: %s\n" "push: %s" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" "没有已配置的同步路径。\n" "打开同步选项卡配置它们。" msgid "Check for incoming changes" msgstr "检查传入变更" msgid "Pull incoming changes" msgstr "拉取传入变更" msgid "Detect outgoing changes" msgstr "检测传出的变更" msgid "Push outgoing changes" msgstr "推送传出的变更" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "" "检查传入变更自\n" "%s" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "" "拉取传入变更自\n" "%s" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "" "检测传出变更至\n" "%s" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "" "推送传出更改到\n" "%s" #, python-format msgid "Execute custom tool '%s'" msgstr "执行自定义工具 '%s'" msgid "Custom Toolbar &Settings" msgstr "自定义工具栏设置(&S)" msgid "TortoiseHg Workbench" msgstr "TortoiseHg 工作台" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "%s - TortoiseHg 工作台 - %s" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "%s - TortoiseHg 工作台" msgid "Goto revision" msgstr "转到修订版本" msgid "Enter revision identifier" msgstr "输入修订标识符" msgid "Select repository directory to open" msgstr "选择要打开的仓库目录" msgid "README not configured" msgstr "README 未配置" msgid "" "A README file is not configured for the current repository.

                                                                                                          To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" msgid "Issue Tracker Plugin Error" msgstr "问题跟踪插件错误" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "不能实例化问题跟踪器插件的 COM 对象" msgid "This error will not be shown again until you restart the workbench" msgstr "这个错误在您重新启动工作台前不会再次显示" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "从问题跟踪器插件获取提交信息时出错" msgid "Error executing \"commit finished\" trigger" msgstr "执行 \"commit finished\" 触发器出错" msgid "Cannot open Plugin Options dialog" msgstr "无法打开插件选项对话框" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "" msgid "[--insecure] [SOURCE]" msgstr "" #, python-format msgid "unsupported URL: %s" msgstr "不支持的 URL: %s" #, python-format msgid "%s certificate error: no certificate received" msgstr "%s 证书错误:没有接收到证书" msgid "move after the specified patch" msgstr "在指定的补丁后移动" msgid "[--after PATCH] PATCH..." msgstr "[--after PATCH] PATCH..." msgid "unknown patch to move specified" msgstr "指定移动的补丁未知" msgid "invalid patch position specified" msgstr "指定的补丁位置无效" msgid "cannot move applied patches" msgstr "无法移动已应用的补丁" #, python-format msgid "patch %s not in series" msgstr "补丁 %s 不在序列内" msgid "cannot move into applied patches" msgstr "无法移入已应用的补丁" msgid "abort: " msgstr "中止: " msgid "hint: " msgstr "提示: " #, python-format msgid "HTTP Error: %d (%s)" msgstr "HTTP错误: %d (%s)" #, python-format msgid "URLError: %s" msgstr "URL错误: %s" msgid "SSL: Server certificate verify failed" msgstr "SSL:服务器证书验证失败" #, python-format msgid "SSL: unknown error %s:%s" msgstr "SSL: 未知错误 %s:%s" #, python-format msgid "SSL error: %s" msgstr "SSL 错误: %s" msgid "hgsubversion packaged with thg" msgstr "" msgid "hggit packaged with thg" msgstr "" msgid "inotify is not supported on this platform" msgstr "inotify 在此平台上不被支持" msgid "eol is incompatible with win32text" msgstr "eol 与 win32text 不兼容" msgid "win32text is incompatible with eol" msgstr "win32text与 eol 不兼容" msgid "hgsubversion is incompatible with perfarce" msgstr "hgsubversion 与 perfarce 不兼容" msgid "perfarce is incompatible with hgsubversion" msgstr "perfarce 与 hgsubversion 不兼容" msgid "Workbench custom toolbar" msgstr "工作台自定义工具栏" msgid "Revision details context menu" msgstr "修订细节上下文菜单" msgid "Pair selection context menu" msgstr "" msgid "Multiple selection context menu" msgstr "" msgid "Commit context menu" msgstr "提交上下文菜单" msgid "File context menu (on manifest and revision details)" msgstr "文件上下文菜单(在清单和修订细节)" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "%d年前" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "%d月前" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "%d周前" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "%d天前" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "%d小时前" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "%d分钟前" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d秒前" msgid "in the future" msgstr "未来时间" msgid "now" msgstr "现在" #, python-format msgid "command parse error: %s" msgstr "命令解析错误: %s" #, python-format msgid "no matches found: %s" msgstr "没有找到匹配项: %s" msgid "Commit..." msgstr "提交..." msgid "Commit changes in repository" msgstr "提交仓库中的更改" msgid "Create Repository Here" msgstr "在这里创建仓库" msgid "Create a new repository" msgstr "创建新仓库" msgid "Clone..." msgstr "克隆..." msgid "Create clone here from source" msgstr "从指定源克隆并创建本地仓库" msgid "File Status" msgstr "文件状态" msgid "Repository status & changes" msgstr "仓库状态和改动" msgid "Add Files..." msgstr "添加文件(开始跟踪)..." msgid "Add files to version control" msgstr "添加文件到版本控制" msgid "Revert Files..." msgstr "还原文件..." msgid "Revert file changes" msgstr "还原文件改动" msgid "Forget Files..." msgstr "移除文件(停止跟踪)..." msgid "Remove files from version control" msgstr "把文件移出版本控制" msgid "Remove Files..." msgstr "移除文件..." msgid "Rename File" msgstr "重命名文件" msgid "Rename file or directory" msgstr "重命名文件或目录" msgid "View change history in repository" msgstr "查看仓库中的改动历史" msgid "File History" msgstr "文件历史" msgid "View change history of selected files" msgstr "查看选定文件的变更历史" msgid "Shelve Changes" msgstr "搁置变更" msgid "Move changes between working dir and patch" msgstr "在工作目录与补丁间移动变更" msgid "Synchronize" msgstr "同步" msgid "Synchronize with remote repository" msgstr "同步远程仓库" msgid "Start web server for this repository" msgstr "为此仓库启动web服务器" msgid "Update..." msgstr "更新..." msgid "Update working directory" msgstr "更新工作目录" msgid "Update Icons" msgstr "更新图标" msgid "Update icons for this repository" msgstr "更新此仓库的图标" msgid "Global Settings" msgstr "全局设置" msgid "Configure user wide settings" msgstr "配置用户范围内的设置" msgid "Repository Settings" msgstr "仓库设置" msgid "Configure repository settings" msgstr "配置仓库设置" msgid "Explorer Extension Settings" msgstr "资源管理器扩展设置" msgid "Configure Explorer extension" msgstr "配置资源管理器扩展" msgid "About TortoiseHg" msgstr "关于 TortoiseHg" msgid "Show About Dialog" msgstr "显示关于对话框" msgid "Diff to parent" msgstr "比较与父差异" msgid "View changes using GUI diff tool" msgstr "使用GUI比较工具查看修订" msgid "Edit Ignore Filter" msgstr "编辑文件过滤名单" msgid "Edit repository ignore filter" msgstr "编辑仓库的文件过滤名单" msgid "Guess Renames" msgstr "猜测重命名" msgid "Detect renames and copies" msgstr "检测重命名和复制操作" msgid "Search History" msgstr "搜索历史" msgid "Search file revisions for patterns" msgstr "按指定模式搜索文件的修订版本" msgid "DnD Synchronize" msgstr "拖放同步" msgid "Synchronize with dragged repository" msgstr "和拖入的仓库进行同步" #, python-format msgid "unrecognized response: %s" msgstr "无法识别的响应: %s" msgid "password: " msgstr "密码: " #, python-format msgid "repository %s not found" msgstr "仓库 %s 未找到" msgid "win32ill: cannot create window for messages" msgstr "win32ill: 无法为消息创建窗口" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "win32ill: 不支持的平台: %s\n" msgid "win32ill: interrupted while stopping message loop\n" msgstr "win32ill: 停止消息循环时被中断\n" #~ msgid "Source path is empty" #~ msgstr "源路径为空" #~ msgid "commit" #~ msgstr "提交" #~ msgid "_Commit" #~ msgstr "提交(_C)" #~ msgid "backup %r as %r\n" #~ msgstr "备份 %r 为 %r\n" #~ msgid "_Remove" #~ msgstr "移除(_R)" #~ msgid "_Add" #~ msgstr "添加(_A)" #~ msgid "New Search" #~ msgstr "新建查找" #~ msgid "Start this search" #~ msgstr "开始查找" #~ msgid "Show line numbers" #~ msgstr "显示行号" #~ msgid "No regular expression given" #~ msgstr "没有给出正则表达式" #~ msgid "Search %d" #~ msgstr "查找 %d" #~ msgid "Matches" #~ msgstr "匹配项" #~ msgid "Invalid path" #~ msgstr "无效的路径" #~ msgid "edit failed" #~ msgstr "编辑失败" #~ msgid "Save File" #~ msgstr "保存文件" #~ msgid "Accept Match" #~ msgstr "接受匹配" #~ msgid "Candidate Matches" #~ msgstr "候选匹配" #~ msgid "Find Copies" #~ msgstr "查找拷贝" #~ msgid "finding source of " #~ msgstr "查找来源 " #~ msgid "Envelope" #~ msgstr "信封" #~ msgid "Configure email settings" #~ msgstr "配置邮件设置" #~ msgid "Remove Selected" #~ msgstr "删除所选" #~ msgid "Unknown Files" #~ msgstr "未知文件" #~ msgid "Please enter the directory path" #~ msgstr "请输入目录路径" #~ msgid "response expected" #~ msgstr "期待回复" #~ msgid "this is a binary file\n" #~ msgstr "这是一个二进制文件\n" #~ msgid "restoring backup files\n" #~ msgstr "恢复备份文件\n" #~ msgid "use \"hgtk help\" for the full list of commands" #~ msgstr "使用\"hgtk help\"来获取所有命令的列表" #~ msgid "" #~ "use \"hgtk help\" for the full list of commands or \"hgtk -v\" for details" #~ msgstr "" #~ "使用\"hgtk help\"来获取所有命令的列表或\"hgtk -v\"来得到命令的详细说明" #~ msgid "use \"hgtk -v help %s\" to show global options" #~ msgstr "使用\"hgtk -v help%s\"来显示全局选项" #~ msgid "use \"hgtk -v help%s\" to show aliases and global options" #~ msgstr "使用\"hgtk -v help%s\"来显示别名和全局选项" #~ msgid "restoring %r to %r\n" #~ msgstr "恢复 %r 到 %r\n" #~ msgid "user quit" #~ msgstr "用户退出" #~ msgid " and " #~ msgstr " 和 " #~ msgid "limit number of changes displayed" #~ msgstr "显示修改条目数上限" #~ msgid "show the command options" #~ msgstr "显示命令参数选项" #~ msgid "_Filter" #~ msgstr "过滤器(_F)" #~ msgid "Re_fresh" #~ msgstr "刷新(_f)" #~ msgid "Custom Filter" #~ msgstr "自定义过滤器" #~ msgid "Save patch to" #~ msgstr "保存补丁到" #~ msgid "Apply" #~ msgstr "应用" #~ msgid "Tip" #~ msgstr "提示" #~ msgid "Invalid date specification" #~ msgstr "无效的日期" #~ msgid "Cannot merge" #~ msgstr "不能合并" #~ msgid "Recover from interrupted operation" #~ msgstr "从被中断的操作中恢复数据" #~ msgid "Start server" #~ msgstr "启动服务器" #~ msgid "rename error" #~ msgstr "重命名出错" #~ msgid "Configure" #~ msgstr "配置" #~ msgid "Configure web settings" #~ msgstr "配置web设置" #~ msgid "Browse" #~ msgstr "浏览" #~ msgid "Stop server" #~ msgstr "停止服务器" #~ msgid "Invalid port 2048..65535" #~ msgstr "无效的端口号(2048..65535)" #~ msgid "Defaulting to " #~ msgstr "默认到 " #~ msgid "run server in background" #~ msgstr "在后台运行服务" #~ msgid "address to use" #~ msgstr "使用地址" #~ msgid "port to use (default: 8000)" #~ msgstr "使用端口(默认:8000)" #~ msgid "SSL certificate file" #~ msgstr "SSL认证文件" #~ msgid "for remote clients" #~ msgstr "为远程客户端" #~ msgid "web templates to use" #~ msgstr "使用web模板" #~ msgid "template style to use" #~ msgstr "使用的模板样式" #~ msgid "use IPv6 in addition to IPv4" #~ msgstr "使用IPv4和IPv6" #~ msgid "_delete" #~ msgstr "删除(_d)" #~ msgid "Save As" #~ msgstr "另存为" #~ msgid "Save selected changes" #~ msgstr "保存选中的修改" #~ msgid "refresh" #~ msgstr "刷新" #~ msgid "path" #~ msgstr "路径" #~ msgid "Copy file to" #~ msgstr "复制文件到" #~ msgid "Nothing Removed" #~ msgstr "什么也没有移除" #~ msgid "A specific revision up to which you would like to push or pull." #~ msgstr "指定同步操作的上限版本" #~ msgid "Advanced Options" #~ msgstr "高级选项" #~ msgid "Bundle (*.hg)" #~ msgstr "包(*.hg)" #~ msgid "Bundle (*)" #~ msgstr "包(*)" #~ msgid "unknown sort key '%s'" #~ msgstr "未知的排序关键字 '%s'" #~ msgid "Select Bundle" #~ msgstr "选择包" #~ msgid "Custom commit message is empty" #~ msgstr "自定义提交说明为空" #~ msgid "Name associated with commits" #~ msgstr "提交名称" #~ msgid "Maximum number of changes to list on the changelog." #~ msgstr "列出修改记录时最大的修改数目" #~ msgid "Maximum number of files to list per changeset." #~ msgstr "列出每次修改时显示的最大文件数" #~ msgid "Character encoding name" #~ msgstr "字符编码名称" #~ msgid "Fetch" #~ msgstr "获取" #~ msgid "Nothing" #~ msgstr "空" #~ msgid "_Edit" #~ msgstr "编辑(_E)" #~ msgid "_Test" #~ msgstr "测试(_T)" #~ msgid "Suggested" #~ msgstr "建议的" #~ msgid "History" #~ msgstr "历史记录" #~ msgid "applying patch\n" #~ msgstr "打上补丁\n" #~ msgid "hgtk repoconfig" #~ msgstr "hgtk repoconfig" #~ msgid "hgtk guess" #~ msgstr "hgtk guess" #~ msgid "hgtk userconfig" #~ msgstr "hgtk userconfig" #~ msgid "hgtk recovery" #~ msgstr "hgtk recovery" #~ msgid "hgtk merge" #~ msgstr "hgtk merge" #~ msgid "hgtk synch" #~ msgstr "hgtk synch" #~ msgid "hgtk shelve" #~ msgstr "hgtk shelve" #~ msgid "ms" #~ msgstr "ms" #~ msgid "st" #~ msgstr "st" #~ msgid "hgtk %s: %s\n" #~ msgstr "hgtk %s: %s\n" #~ msgid " [Ynsfdaq?] " #~ msgstr " [Ynsfdaq?] " #~ msgid "hgtk: %s\n" #~ msgstr "hgtk: %s\n" #~ msgid "hgtk datamine" #~ msgstr "hgtk datamine" #~ msgid "Make repo compatible with Mercurial 1.0" #~ msgstr "创建和Mercurial 1.0版本兼容的仓库" #~ msgid "Error when creating repository" #~ msgstr "创建仓库时出错" #~ msgid "Rollback (undo) last transaction to repository (pull, commit, etc)" #~ msgstr "回滚或取消仓库的最后一次事务(pull, commit等)" #~ msgid "Configure peer repository paths" #~ msgstr "配置对等仓库的路径" #~ msgid "Display local changes that will be pushed to selected repository" #~ msgstr "显示将要推送到被选仓库中的本地修改记录" #~ msgid "Edit remote repository path" #~ msgstr "编辑远程仓库路径" #~ msgid "TortoiseHg Configure Repository - " #~ msgstr "TortoiseHg 配置仓库 - " #~ msgid "No repository found here" #~ msgstr "这里没找到仓库" #~ msgid "Remote repository paths" #~ msgstr "远程仓库路径" #~ msgid "Repository Path" #~ msgstr "仓库路径" #~ msgid "(version %s)" #~ msgstr "(版本 %s)" #~ msgid "[All Files]" #~ msgstr "[全部文件]" #~ msgid "Confirm revert file to old revision" #~ msgstr "确认还原文件到旧版本" #~ msgid "Clone" #~ msgstr "克隆" #~ msgid "Use uncompressed transfer" #~ msgstr "使用非压缩传输" #~ msgid "Advanced options" #~ msgstr "高级选项" #~ msgid "Source path:" #~ msgstr "源路径:" #~ msgid "Branch Operations" #~ msgstr "分支操作" #~ msgid "Please enter a valid source path" #~ msgstr "请输入有效的源路径" #~ msgid "Close current named branch" #~ msgstr "关闭当前命名分支" #~ msgid "_Commit (-1 head)" #~ msgstr "提交(-1 head)(_C)" #~ msgid "_Commit (+1 head)" #~ msgstr "提交(+1 head)(_C)" #~ msgid "Merge " #~ msgstr "合并: " #~ msgid "Confirm Undo Commit" #~ msgstr "确认撤销提交" #~ msgid "No committable files selected" #~ msgstr "未选中可以提交的文件" #~ msgid "new branch: " #~ msgstr "新分支: " #~ msgid "Confirm Add/Remove" #~ msgstr "确认添加/删除" #~ msgid "Undo Commit" #~ msgstr "撤销提交" #~ msgid "Confirm Commit" #~ msgstr "确认提交" #~ msgid "App_ly Format" #~ msgstr "应用格式(_l)" #~ msgid "Paste _Filenames" #~ msgstr "粘贴文件名(_F)" #~ msgid "Info Required" #~ msgstr "要求的信息" #~ msgid "Error: %s" #~ msgstr "错误: %s" #~ msgid "Abort: %s" #~ msgstr "中止: %s" #~ msgid "Invalid regular expression" #~ msgstr "无效的正则表达式" #~ msgid "Select" #~ msgstr "选择" #~ msgid "Select Revision" #~ msgstr "选择版本" #~ msgid "All files" #~ msgstr "所有文件" #~ msgid "Invalid Revision" #~ msgstr "无效版本" #~ msgid "Lang \"%s\" can not be set.\n" #~ msgstr "无法设置语言\"%s\".\n" #~ msgid "" #~ "Select language for spell checking.\n" #~ "\n" #~ "Empty is for the default language.\n" #~ "When all text is highlited, the dictionary\n" #~ "is probably not installed.\n" #~ "\n" #~ "examples: en, en_GB, en_US" #~ msgstr "" #~ "选择拼写检查的语言.\n" #~ "\n" #~ "置空说明使用默认语言.\n" #~ "如果所有的文字被高亮,\n" #~ "说明词典没有正确安装.\n" #~ "\n" #~ "例子:en, en_GB, en_US" #~ msgid "Spell Check Language" #~ msgstr "拼写检查语言" #~ msgid "Rename error" #~ msgstr "重命名出错" #~ msgid "udpate all repos in current dir" #~ msgstr "更新当前目录下的所有仓库" #~ msgid "%s branch" #~ msgstr "%s 分支" #~ msgid "merges" #~ msgstr "合并记录" #~ msgid "Load all" #~ msgstr "全部" #~ msgid "load more revisions" #~ msgstr "更多版本" #~ msgid "Load more" #~ msgstr "更多" #~ msgid "Keywords" #~ msgstr "关键词" #~ msgid "load all revisions" #~ msgstr "所有版本" #~ msgid "Local Date" #~ msgstr "本地日期" #~ msgid "Universal Date" #~ msgstr "通用日期" #~ msgid "Confirm Rebase Revision" #~ msgstr "确认重定位版本" #~ msgid "Rebase revision %d on top of %d?" #~ msgstr "重定位版本%d到%d之上" #~ msgid "ID" #~ msgstr "ID" #~ msgid "Clean checkout of original revision?" #~ msgstr "要检出干净的原始版本吗?" #~ msgid "Confirm undo merge" #~ msgstr "确认撤销合并" #~ msgid "Current revision (local)" #~ msgstr "当前版本(本地)" #~ msgid "Merge target (other)" #~ msgstr "合并目标(其他)" #~ msgid "Undo" #~ msgstr "撤销" #~ msgid "Must supply a target revision" #~ msgstr "必须提供一个目标版本" #~ msgid "Rollback repository '%s' ?" #~ msgstr "要回滚仓库'%s'吗?" #~ msgid "Rollback" #~ msgstr "回滚" #~ msgid "Confirm rollback repository" #~ msgstr "确认回滚仓库" #~ msgid "Move checked files to other directory" #~ msgstr "移动选中的文件到其他目录" #~ msgid "Add checked files" #~ msgstr "添加选中的文件" #~ msgid "Revert checked files" #~ msgstr "还原选中的文件" #~ msgid "filtered status" #~ msgstr "过滤后的状态" #~ msgid "Text Diff" #~ msgstr "文本比较" #~ msgid "File is larger than the specified max size.\n" #~ msgstr "文件大小超过了指定的最大值.\n" #~ msgid "Nothing Diffed" #~ msgstr "无差分" #~ msgid "Move files to directory..." #~ msgstr "移动文件到目录..." #~ msgid "Several icons are courtesy of the TortoiseSVN project" #~ msgstr "一些图标由 TortoiseSVN 项目友情提供" #~ msgid " %s is larger than the specified max diff size" #~ msgstr " %s 超过了指定的最大差分长度" #~ msgid "Update to branch tip" #~ msgstr "更新到分支tip" #~ msgid "HTTP Port:" #~ msgstr "HTTP端口:" #~ msgid "_Diff" #~ msgstr "比较(_D)" #~ msgid "Visual diff checked files" #~ msgstr "比较选中的文件" #~ msgid "Incoming" #~ msgstr "拉取预览" #~ msgid "Display changes that can be pulled from selected repository" #~ msgstr "显示那些能从选定仓库中拉取的改动" #~ msgid " Pull " #~ msgstr " 拉取 " #~ msgid "Pull changes from selected repository" #~ msgstr "从选中仓库中拉取改动" #~ msgid "Outgoing" #~ msgstr "推送预览" #~ msgid "Push" #~ msgstr "推送" #~ msgid "Push local changes to selected repository" #~ msgstr "推送本地改动到选定仓库" #~ msgid "Repo:" #~ msgstr "仓库:" #~ msgid "Bundle:" #~ msgstr "包:" #~ msgid "Force pull or push" #~ msgstr "强制拉取/推送" #~ msgid "Target revision:" #~ msgstr "目标版本:" #~ msgid "Show patches" #~ msgstr "显示补丁" #~ msgid "Show newest first" #~ msgstr "优先显示最新的" #~ msgid "Show no merges" #~ msgstr "不显示合并信息" #~ msgid "No repository selected" #~ msgstr "未选择仓库" #~ msgid "Select a peer repository to compare with" #~ msgstr "选择一个对等仓库进行比较" #~ msgid "Highlight the taskbar icon during activity" #~ msgstr "活动时高亮显示任务栏图标" #~ msgid "http" #~ msgstr "http" #~ msgid "ssh" #~ msgstr "ssh" #~ msgid "https" #~ msgstr "https" #~ msgid "URL Details" #~ msgstr "URL详细" #~ msgid "Diff" #~ msgstr "差分" #~ msgid "No Repository Found" #~ msgstr "未找到仓库" #~ msgid "Unable to delete temp files" #~ msgstr "无法删除临时文件" #~ msgid "&Quit" #~ msgstr "退出(&Q)" #~ msgid "Try &Again" #~ msgstr "重试(&A)" #~ msgid "unknown patch content: %r" #~ msgstr "未知的补丁内容: %r" #~ msgid "Select Local Folder" #~ msgstr "选择本地文件夹" #~ msgid "Folder" #~ msgstr "文件夹" #~ msgid "User global settings" #~ msgstr "用户全局设置" #~ msgid "" #~ "Default language for spell check. System language is used if not " #~ "specified. Examples: en, en_GB, en_US" #~ msgstr "" #~ "默认的拼写检查语言. 如果不指定则选择系统默认语言. 例子: en, en_GB, en_US" #~ msgid "Overwrite existing '%s' path?" #~ msgstr "要覆盖既存路径'%s'吗?" #~ msgid "No changes to shelve" #~ msgstr "无可剥离的改动" #~ msgid "with %s" #~ msgstr "包含 %s" #~ msgid "Revert %s to contents at revision %d?" #~ msgstr "要还原%s的内容到版本%d吗?" #~ msgid "TortoiseHg Clone" #~ msgstr "TortoiseHg 克隆" #~ msgid "_Undo" #~ msgstr "撤销(_U)" #~ msgid "undo recent commit" #~ msgstr "撤销最近的提交" #~ msgid "Recent commit messages..." #~ msgstr "最近的改动说明..." #~ msgid "Unable to create " #~ msgstr "无法创建 " #~ msgid "Unable to apply patch" #~ msgstr "无法应用补丁" #~ msgid "" #~ "Unable to undo!\n" #~ "\n" #~ "Tip revision differs from last commit." #~ msgstr "" #~ "无法撤销!\n" #~ "\n" #~ "tip版本与最后一次提交的有差异" #~ msgid "Errors during rollback!" #~ msgstr "回滚过程出错!" #~ msgid "Message format configuration error" #~ msgstr "改动说明的格式配置错误" #~ msgid "" #~ "The summary line length of %i is greater than %i.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "摘要行的长度%i超过了%i.\n" #~ "\n" #~ "要无视格式要求并继续提交吗?" #~ msgid "" #~ "The summary line is not followed by a blank line.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "摘要行后缺少一空行.\n" #~ "\n" #~ "要无视格式要求并继续提交吗?" #~ msgid "" #~ "The following lines are over the %i-character limit: %s.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "下列行超过了%i的字数限制: %s.\n" #~ "\n" #~ "要无视格式要求并继续提交吗?" #~ msgid "Commit: Invalid username" #~ msgstr "提交: 无效的用户名" #~ msgid "Message format needs to be configured" #~ msgstr "改动说明的格式未被配置" #~ msgid "The summary line length of %i is greater than %i" #~ msgstr "摘要行的长度%i超过了%i" #~ msgid "The summary line is not followed by a blank line" #~ msgstr "摘要行后未跟一空行" #~ msgid "Stop operation on current tab" #~ msgstr "停止当前标签页上的操作" #~ msgid "Show all matching revisions" #~ msgstr "显示所有匹配的版本" #~ msgid "Search \"%s\"" #~ msgstr "查找\"%s\"" #~ msgid "File is unrevisioned" #~ msgstr "文件未纳入版本管理" #~ msgid "Unable to annotate " #~ msgstr "无法标注 " #~ msgid " Aborted" #~ msgstr " 中止" #~ msgid "Select Folder" #~ msgstr "选择文件夹" #~ msgid "Unrevisioned Files" #~ msgstr "未纳入版本控制的文件" #~ msgid "" #~ "== %s and %s have identical contents ==\n" #~ "\n" #~ msgstr "" #~ "== %s 和 %s 内容一致 ==\n" #~ "\n" #~ msgid "" #~ "\n" #~ "[command interrupted]" #~ msgstr "" #~ "\n" #~ "[命令被中断]" #~ msgid "Email outgoing changes" #~ msgstr "通过邮件发送改动" #~ msgid "Email Mercurial Patches" #~ msgstr "通过邮件发送Mercurial补丁" #~ msgid "Info required" #~ msgstr "要求的信息" #~ msgid "Glob:" #~ msgstr "通配符:" #~ msgid "Filters" #~ msgstr "过滤名单" #~ msgid "Destination path is empty" #~ msgstr "目标路径为空" #~ msgid "Unable to create new repository" #~ msgstr "无法创建新仓库" #~ msgid "" #~ "total: %d hunks (%d changed lines); selected: %d hunks (%d changed lines)" #~ msgstr "总共:%d 差分块 (%d行被修改); 选中:%d 差分块 (%d行被修改)" #~ msgid "shelve can only be run interactively" #~ msgstr "剥离操作只能以交互的方式进行" #~ msgid "no changes to shelve\n" #~ msgstr "没有可剥离的改动\n" #~ msgid "saving patch to shelve\n" #~ msgstr "在剥离前将改动保存成补丁\n" #~ msgid "removing shelve file\n" #~ msgstr "移除保存剥离数据的文件\n" #~ msgid "applying shelved patch\n" #~ msgstr "应用剥离出来的补丁\n" #~ msgid "removing shelved patches\n" #~ msgstr "移除剥离出来的补丁\n" #~ msgid "unshelve completed\n" #~ msgstr "重置完成\n" #~ msgid "nothing to unshelve\n" #~ msgstr "无可重置的改动\n" #~ msgid "mark new/missing files as added/removed before shelving" #~ msgstr "在剥离操作之前把新增的和缺失的文件标为已添加和已删除状态" #~ msgid "overwrite existing shelve data" #~ msgstr "覆盖既存的剥离数据" #~ msgid "append to existing shelve data" #~ msgstr "附加到既存的剥离数据中" #~ msgid "inspect shelved changes only" #~ msgstr "仅检查被剥离的改动" #~ msgid "proceed even if patches do not unshelve cleanly" #~ msgstr "在重置改动未完全时也继续操作" #~ msgid "hgtk: unknown command '%s'\n" #~ msgstr "hgtk: 未知命令 '%s'\n" #~ msgid "(No help text available)" #~ msgstr "(没有可用的帮助信息)" #~ msgid "hgtk about" #~ msgstr "关于hgtk" #~ msgid "Reload revision history" #~ msgstr "重新载入版本历史" #~ msgid "Color by Branch" #~ msgstr "按颜色区分分支" #~ msgid "working parents" #~ msgstr "当前父版本" #~ msgid "heads" #~ msgstr "heads" #~ msgid "File Patterns" #~ msgstr "文件类型" #~ msgid "Write bundle to" #~ msgstr "打包保存到" #~ msgid "Summary" #~ msgstr "摘要" #~ msgid "Stop the hg operation" #~ msgstr "停止当前的hg操作" #~ msgid "Recover" #~ msgstr "恢复" #~ msgid "Validate repository consistency" #~ msgstr "验证仓库的一致性" #~ msgid "Cannot close now" #~ msgstr "现在无法关闭" #~ msgid "command is running" #~ msgstr "正在执行命令" #~ msgid "Confirm clean repository" #~ msgstr "确认净化仓库" #~ msgid "Clean repository '%s' ?" #~ msgstr "要净化仓库'%s'吗?" #~ msgid "Cannot run now" #~ msgstr "现在无法执行" #~ msgid "[command interrupted]" #~ msgstr "[命令被中断]" #~ msgid "Launch browser to view repository" #~ msgstr "在浏览器中查看仓库" #~ msgid "" #~ "Server process is still running\n" #~ "Exiting will stop the server." #~ msgstr "" #~ "服务进程还在运行中,\n" #~ "退出将会停止服务." #~ msgid "Abort: %s\n" #~ msgstr "中止: %s\n" #~ msgid "cannot start server: " #~ msgstr "无法启动服务: " #~ msgid "listening at http://%s%s/%s (%s:%d)\n" #~ msgstr "侦听http://%s%s/%s (%s:%d)\n" #~ msgid "prefix path to serve from (default: server root)" #~ msgstr "服务根目录前缀路径(默认: server root)" #~ msgid "name of file to write process ID to" #~ msgstr "将进程号写入到文件" #~ msgid "Re_vert" #~ msgstr "还原(_v)" #~ msgid "Remove or delete checked files" #~ msgstr "移除选中的文件" #~ msgid "_Forget" #~ msgstr "遗忘(_F)" #~ msgid "Hunk Selection" #~ msgstr "差分块选取" #~ msgid "Remove is not enabled when multiple revisions are specified." #~ msgstr "当指定多个版本时无法做移除操作" #~ msgid "Move is not enabled when multiple revisions are specified." #~ msgstr "当指定多个版本时无法做移动操作" #~ msgid "Copy is not enabled when multiple revisions are specified." #~ msgstr "当指定多个版本时无法做复制操作" #~ msgid "Hunk selection is disabled for this file.\n" #~ msgstr "该文件上禁止选取差分块.\n" #~ msgid "No diffable files selected" #~ msgstr "无法比较选中的文件" #~ msgid "No revertable files selected" #~ msgstr "无法还原选中的文件" #~ msgid "No addable files selected" #~ msgstr "无法添加选中的文件" #~ msgid "No removable files selected" #~ msgstr "无法移除选中的文件" #~ msgid "Cannot move outside repo!" #~ msgstr "无法移动文件到仓库外" #~ msgid "" #~ "No movable files selected\n" #~ "\n" #~ "Note: only clean files can be moved." #~ msgstr "" #~ "无法移动选中的文件\n" #~ "\n" #~ "注意: 只有无改动的文件才能移动." #~ msgid "Nothing Forgotten" #~ msgstr "什么也没有遗忘" #~ msgid "No clean files selected" #~ msgstr "未选中无改动的文件" #~ msgid "Confirm Delete Unrevisioned" #~ msgstr "确认删除未纳入版本控制的文件" #~ msgid "Delete the following unrevisioned files?" #~ msgstr "要删除以下未纳入版本控制的文件吗?" #~ msgid "Delete Errors" #~ msgstr "删除错误" #~ msgid "not up to date" #~ msgstr "非最新的" #~ msgid "" #~ "The parents have changed since the last refresh.\n" #~ "Continue anyway?" #~ msgstr "" #~ "上次刷新后父版本已发生改动.\n" #~ "还要继续吗?" #~ msgid "Shelve" #~ msgstr "剥离改动" #~ msgid "Shelve uncommited changes" #~ msgstr "剥离未提交的改动" #~ msgid "Run even when remote repository is unrelated." #~ msgstr "就算和远程仓库没有关联也照样执行" #~ msgid "Name of hg executable on remote machine." #~ msgstr "远程机器上的hg可执行文件名." #~ msgid "Tag is local" #~ msgstr "是本地标签" #~ msgid "Please enter tag name" #~ msgstr "请输入标签名称" #~ msgid "Tag \"%s\" has been added" #~ msgstr "已添加标签\"%s\"" #~ msgid "Tag name is empty" #~ msgstr "标签名称为空" #~ msgid "Please select tag name to remove" #~ msgstr "请选择要移除的标签名" #~ msgid "Tag \"%s\" has been removed" #~ msgstr "标签\"%s\"已移除" #~ msgid "a tag named \"%s\" already exists" #~ msgstr "标签名\"%s\"已存在" #~ msgid "Tag '%s' already exist" #~ msgstr "标签'%s'已存在" #~ msgid "Bottom Diffs" #~ msgstr "在底部显示差分" #~ msgid "" #~ "Show the diff panel below the file list in status, shelve, and commit " #~ "dialogs. Default: False (show diffs to right of file list)" #~ msgstr "" #~ "把差分显示窗口移动到文件列表窗口的下方. 默认: 否(False)(差分显示窗口在文件" #~ "列表右方)" #~ msgid "" #~ "Redirect stderr to a buffer which is parsed at the end of the process for " #~ "runtime errors. Default: True" #~ msgstr "" #~ "把标准错误输出重定向到缓存中以便处理结束时进行错误分析. 默认: 开启(True)" #~ msgid "Fork hgtk" #~ msgstr "在单独进程中运行hgtk" #~ msgid "Message Line Length" #~ msgstr "自动换行长度" #~ msgid "Path testing cannot work without a repository" #~ msgstr "路径测试无法在没有仓库的情况下工作" #~ msgid "Set as _default" #~ msgstr "保存为默认(_d)" #~ msgid "Skipped saving path with no alias" #~ msgstr "跳过没有别名的保存路径" #~ msgid "Unshelve" #~ msgstr "重置改动" #~ msgid "Please select diff chunks to shelve" #~ msgstr "请选择要剥离的差分块" #~ msgid "Shelve file exists!" #~ msgstr "剥离用的文件已存在!" #~ msgid "Backout" #~ msgstr "反转" #~ msgid "Save commit message at exit?" #~ msgstr "要在退出时保存改动说明吗?" #~ msgid "" #~ "Your username has not been configured.\n" #~ "\n" #~ "Please configure your username and try again" #~ msgstr "" #~ "您的用户名还没配置好.\n" #~ "\n" #~ "请配置好您的用户名再重试" #~ msgid "Open new search tab" #~ msgstr "打开新的标签页查找" #~ msgid "" #~ "Comma separated list of inclusion patterns. By default, the entire " #~ "repository is searched." #~ msgstr "要包含的搜索模式用逗号分隔. 默认情况下, 在整个仓库范围内查找." #~ msgid "" #~ "Comma separated list of exclusion patterns. Exclusion patterns are " #~ "applied after inclusion patterns." #~ msgstr "" #~ "要排除的搜索模式用逗号分隔. 要排除的搜索模式比要包含的搜索模式优先级低." #~ msgid "You must provide a search expression" #~ msgstr "您必须提供一个查找表达式" #~ msgid "making snapshot of %d files from rev %s\n" #~ msgstr "创建%d个文件的快照于版本%s\n" #~ msgid "Minimum Simularity Percentage" #~ msgstr "最小相似比例" #~ msgid "Differences from Source to Dest" #~ msgstr "源与目标的差别" #~ msgid "Patch Series (Bundle) Description" #~ msgstr "(打包后的)补丁序列的描述" #~ msgid "You must specify a recipient" #~ msgstr "您必须指定一个收件人" #~ msgid "You must specify a sender address" #~ msgstr "您必须指定一个发件人地址" #~ msgid "You must configure SMTP" #~ msgstr "您必须配置SMTP" #~ msgid "this modifies a binary file (all or nothing)\n" #~ msgstr "这次操作修改了一个二进制文件(所有或没有)\n" #~ msgid "%d hunks, %d lines changed\n" #~ msgstr "%d 差分块, %d 行被修改\n" #~ msgid "unhandled transition: %s -> %s" #~ msgstr "未处理的转换: %s -> %s" #~ msgid "shelve changes to %s?" #~ msgstr "要剥离改动到%s吗?" #~ msgid "shelve this change to %r?" #~ msgstr "要剥离当前改动到%r吗?" #~ msgid "shelve data already exists" #~ msgstr "剥离出的数据已存在" #~ msgid "" #~ "hgtk: command '%s' is ambiguous:\n" #~ " %s\n" #~ msgstr "" #~ "hgtk: 命令 '%s' 有歧义:\n" #~ " %s\n" #~ msgid "rename takes one or two path arguments" #~ msgstr "重命名操作需要一或两个路径作参数" #~ msgid "Hgtk - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" #~ msgstr "Hgtk - TortoiseHg自带的Mercurial SCM (Hg)的图形前端\n" #~ msgid "" #~ "Revert all files to revision %d?\n" #~ "This will overwrite your local changes" #~ msgstr "" #~ "要还原所有文件到版本%d吗?\n" #~ "这将会覆盖您的本地改动" #~ msgid "Clean checkout, undo all changes" #~ msgstr "检出干净的拷贝, 取消所有改动" #~ msgid "name of access log file to write to" #~ msgstr "保存访问记录的文件名" #~ msgid "used internally by daemon mode" #~ msgstr "在守护进程模式下供内部使用" #~ msgid "name of error log file to write to" #~ msgstr "保存错误记录的文件名" #~ msgid "name to show in web pages (default: working dir)" #~ msgstr "在网页中显示的名称(默认: 工作目录)" #~ msgid "%d selected, %d total" #~ msgstr "选中%d, 共%d" #~ msgid "Nothing Moved" #~ msgstr "什么也没移动" #~ msgid "Nothing Copied" #~ msgstr "什么也没复制" #~ msgid "Nothing Reverted" #~ msgstr "什么也没还原" #~ msgid "Revert not allowed when viewing revision range." #~ msgstr "在查看版本范围时不允许做还原操作" #~ msgid "Nothing Added" #~ msgstr "什么也没添加" #~ msgid "Email local outgoing changes to one or more recipients" #~ msgstr "邮寄本地改动至一或多个接收者" #~ msgid "Incoming/Outgoing" #~ msgstr "拉取/推送预览" #~ msgid "Specify the visual editor used to view files, etc" #~ msgstr "指定GUI编辑器来查看文件等" #~ msgid "" #~ "Repository name to use in the web interface. Default is the working " #~ "directory." #~ msgstr "在web界面中使用的仓库名称. 默认是用工作目录." #~ msgid "set aside selected changes" #~ msgstr "剥离出选中的改动备用" #~ msgid "restore shelved changes" #~ msgstr "重新应用已剥离出的改动" #~ msgid "Add/Remove the following files?" #~ msgstr "要添加/删除下列文件吗?" #~ msgid "Confirm Really Exit?" #~ msgstr "确认真的要退出吗?" #~ msgid "M: modified" #~ msgstr "M: 修改" #~ msgid "A: added" #~ msgstr "A: 添加" #~ msgid "R: removed" #~ msgstr "R: 移除" #~ msgid "!: deleted" #~ msgstr "!: 缺失" #~ msgid "?: unknown" #~ msgstr "?: 未知" #~ msgid "C: clean" #~ msgstr "C: 净化" #~ msgid "I: ignored" #~ msgstr "I: 忽略" #~ msgid "Revert files to revision %s?" #~ msgstr "要还原文件到版本%s吗?" #~ msgid "" #~ "Graphical merge program for resolving merge conflicts. If left " #~ "unspecified, Mercurial will use the first applicable tool it finds on " #~ "your system or use its internal merge tool that leaves conflict markers " #~ "in place. Chose internal:merge to force conflict markers, internal:" #~ "prompt to always select local or other, or internal:dump to leave files " #~ "in the working directory for manual merging" #~ msgstr "" #~ "指定用来解决冲突的图形化的合并工具. 如果不指定的话, Mercurial会在系统中寻" #~ "找, 并采用第一个找到的适用的工具. 也可以使用内置的合并工具, 但内置的工具只" #~ "会简单地将在冲突的地方做记号, 而不会解决冲突. 设为internal:merge则强制使用" #~ "内置的合并工具, 设为internal:prompt则每次合并时都会提示让您选择相应的工" #~ "具, 如果选择internal:dump的话不会对文件做改动而是把冲突留给手工解决." #~ msgid "Visual Diffs" #~ msgstr "文件差分" #~ msgid "unknown hunk type: %s" #~ msgstr "未知的差分块类型: %s" #~ msgid "Repository Error: %s, refresh suggested" #~ msgstr "仓库出错: %s, 建议刷新仓库" #~ msgid "[no hunks to display]" #~ msgstr "[无可显示的差分块]" #~ msgid "View" #~ msgstr "查看" #~ msgid "Advanced" #~ msgstr "高级" #~ msgid "Committer:" #~ msgstr "提交者:" #~ msgid "Auto-includes:" #~ msgstr "自动包含:" #~ msgid "Push after commit" #~ msgstr "提交后推送改动" #~ msgid "create new MQ patch" #~ msgstr "创建新的MQ补丁" #~ msgid "refresh top MQ patch" #~ msgstr "刷新顶层的MQ补丁" #~ msgid "Patch Contents" #~ msgstr "补丁内容" #~ msgid "Datamine" #~ msgstr "数据挖掘" #~ msgid "Contents" #~ msgstr "内容" #~ msgid "unknown CmdWidget style: %s" #~ msgstr "未知的CmdWidget样式: %s" #~ msgid "invalid state" #~ msgstr "无效的状态" #~ msgid "Command Log" #~ msgstr "命令日志" #~ msgid "Send" #~ msgstr "发送" #~ msgid "Test" #~ msgstr "测试" #~ msgid "Flags:" #~ msgstr "Flags:" #~ msgid "[command returned code %d " #~ msgstr "[命令返回代码 %d " #~ msgid "[command completed successfully " #~ msgstr "[命令成功完成 " #~ msgid "Log Details" #~ msgstr "日志详细" #~ msgid "Columns" #~ msgstr "栏目" #~ msgid "Filter Bar" #~ msgstr "过滤栏" #~ msgid "Choose Details..." #~ msgstr "选择详细..." #~ msgid "Compact Graph" #~ msgstr "紧凑图示" #~ msgid "Working Parent" #~ msgstr "当前父版本" #~ msgid "Revision..." #~ msgstr "版本..." #~ msgid "Revision Number" #~ msgstr "版本号" #~ msgid "Branch Name" #~ msgstr "分支名" #~ msgid "UTC Date" #~ msgstr "UTC日期" #~ msgid "Age" #~ msgstr "年龄" #~ msgid "Tags" #~ msgstr "标签" #~ msgid "Confirm Revert All Files" #~ msgstr "确认还原所有文件" #~ msgid "Save patches to" #~ msgstr "保存补丁到" #~ msgid "Rename " #~ msgstr "重命名 " #~ msgid "View '%s'" #~ msgstr "查看 '%s'" #~ msgid "&Yes (backup changes)" #~ msgstr "Yes (备份改动)(&Y)" #~ msgid "Yes (&discard changes)" #~ msgstr "Yes (丢弃改动)(&d)" #~ msgid "Alias name is empty" #~ msgstr "别名为空" #~ msgid "Please enter alias name" #~ msgstr "请输入别名" #~ msgid "Exit after saving changes?" #~ msgstr "要在保存改动后推出吗?" #~ msgid "Unapply last patch" #~ msgstr "取消应用上一个的补丁" #~ msgid "Apply next patch" #~ msgstr "应用下一个补丁" #~ msgid "#" #~ msgstr "#" #~ msgid "_rename" #~ msgstr "重命名(_r)" #~ msgid "Show status" #~ msgstr "显示状态" #~ msgid "Show name" #~ msgstr "显示名称" #~ msgid "Enable editable cells" #~ msgstr "启用单元格的编辑功能" #~ msgid "Show 'qparent'" #~ msgstr "显示 'qparent'" #~ msgid "Shelf Contents" #~ msgstr "剥离的内容" #~ msgid "Unshelve Error" #~ msgstr "重置改动出错" #~ msgid "unknown mode name: %s" #~ msgstr "未知的模式名称: %s" #~ msgid "Unsupported line endings type: %s" #~ msgstr "未支持的换行符类型: %s" #~ msgid "Confirm Abort" #~ msgstr "确认中止" #~ msgid "Do you want to abort?" #~ msgstr "您要想中止吗?" #~ msgid "unexpected response id: %s" #~ msgstr "非预期的应答id: %s" #~ msgid "All Files (*.*)" #~ msgstr "所有文件 (*.*)" #~ msgid "Save as.." #~ msgstr "另存为.." #~ msgid "Source and destination are the same" #~ msgstr "源和目标相同" #~ msgid "Please specify different paths" #~ msgstr "请指定不同的路径" #~ msgid "_View" #~ msgstr "查看(_V)" #~ msgid "_Operations" #~ msgstr "操作(_O)" #~ msgid "Patch Preview" #~ msgstr "补丁预览" #~ msgid "Commit Preview" #~ msgstr "提交预览" #~ msgid "Loading history..." #~ msgstr "正在载入历史记录..." #~ msgid "_Tools" #~ msgstr "工具(_T)" #~ msgid "Recovery" #~ msgstr "恢复" #~ msgid "Serve" #~ msgstr "开启服务" #~ msgid "_Help" #~ msgstr "帮助(_H)" #~ msgid "Toggle log window" #~ msgstr "开关日志窗口" #~ msgid "Stop current transaction" #~ msgstr "停止当前事务" #~ msgid "Send emails" #~ msgstr "发送邮件" #~ msgid "Show emails which would be sent" #~ msgstr "显示将要被发送的邮件" #~ msgid "Email revisions " #~ msgstr "通过邮件发送版本 " #~ msgid "Apply to:" #~ msgstr "应用到:" #~ msgid "Move Up" #~ msgstr "上移" #~ msgid "Move Down" #~ msgstr "下移" #~ msgid " (Bundle Preview)" #~ msgstr " (打包预览)" #~ msgid "Sync Bar" #~ msgstr "同步工具条" #~ msgid "Reset Marks" #~ msgstr "重设记号" #~ msgid "Ignore Max Diff Size" #~ msgstr "无视最大差分大小限制" #~ msgid "_Navigate" #~ msgstr "浏览(_N)" #~ msgid "_Synchronize" #~ msgstr "同步(_S)" #~ msgid "Email..." #~ msgstr "邮寄..." #~ msgid "Configure aliases and after pull behavior" #~ msgstr "配置别名以及拉取后的行为" #~ msgid "After Pull:" #~ msgstr "拉取后:" #~ msgid "Reject" #~ msgstr "拒绝" #~ msgid "Repository is empty" #~ msgstr "仓库为空" #~ msgid "Merging in %s" #~ msgstr "正在进行合并 %s" #~ msgid "Toggle all selections" #~ msgstr "选中/取消所有" #~ msgid "Forget checked files on next commit" #~ msgstr "在下次提交时忽视选中的文件" #~ msgid "Save Preview" #~ msgstr "保存预览" #~ msgid "" #~ "Detected uncommitted local changes in working tree.\n" #~ "Please select to continue:\n" #~ "\n" #~ msgstr "" #~ "检测到未提交的本地改动在当前工作目录或其子目录中.\n" #~ "请选择是否继续:\n" #~ "\n" #~ msgid "Shelve - launch Shelve tool and continue" #~ msgstr "剥离改动 - 加载剥离改动工具并继续" #~ msgid "invalid dialog result: %s" #~ msgstr "无效的对话框结果: %s" #~ msgid "Canceled backout" #~ msgstr "中止反转取消" #~ msgid "Failed to backout" #~ msgstr "反转操作失败" #~ msgid "Diff to _local" #~ msgstr "与本地版本比较" #~ msgid "Diff to second Parent" #~ msgstr "与第二父版本比较" #~ msgid "Cloned successfully" #~ msgstr "克隆操作成功" #~ msgid "Failed to clone" #~ msgstr "克隆操作失败" #~ msgid "%s - datamine" #~ msgstr "%s - 数据挖掘" #~ msgid "Stop transaction" #~ msgstr "停止事务" #~ msgid "Close this" #~ msgstr "关闭当前" #~ msgid "&Accept" #~ msgstr "接受(&A)" #~ msgid "&Reject" #~ msgstr "拒绝(&R)" #~ msgid "Show/Hide Patch Queue" #~ msgstr "显示/隐藏补丁队列" #~ msgid "Load more Revisions" #~ msgstr "载入更多版本" #~ msgid "Load all Revisions" #~ msgstr "载入所有版本" #~ msgid "Toolbar" #~ msgstr "工具栏" #~ msgid "Add Bundle..." #~ msgstr "添加Bundle..." #~ msgid "Accept Bundle" #~ msgstr "接受Bundle" #~ msgid "Reject Bundle" #~ msgstr "拒绝Bundle" #~ msgid "Filter" #~ msgstr "过滤器" #~ msgid "Branch '%s'" #~ msgstr "分支 '%s'" #~ msgid "only Merges" #~ msgstr "只限合并信息" #~ msgid "revision ancestry" #~ msgstr "前版本" #~ msgid "Ancestry of %s" #~ msgstr "%s的前版本" #~ msgid "Heads" #~ msgstr "Heads" #~ msgid "no Merges" #~ msgstr "合并信息除外" #~ msgid "Visualize Change" #~ msgstr "可视化显示改动" #~ msgid "Di_splay Change" #~ msgstr "显示改动(_s)" #~ msgid "_Update..." #~ msgstr "更新(_U)..." #~ msgid "_Merge with..." #~ msgstr "合并(_M)..." #~ msgid "_Export Patch..." #~ msgstr "导出补丁(_E)..." #~ msgid "E_mail Patch..." #~ msgstr "邮寄补丁(_m)..." #~ msgid "_Bundle rev:tip..." #~ msgstr "打包 rev:tip" #~ msgid "Add/Remove _Tag..." #~ msgstr "添加/移除标签(_T)..." #~ msgid "_Revert" #~ msgstr "还原(_R)" #~ msgid "_Archive..." #~ msgstr "打包..." #~ msgid "Strip Revision..." #~ msgstr "截去版本..." #~ msgid "_Diff with selected" #~ msgstr "与选中的比较" #~ msgid "Visual Diff with selected" #~ msgstr "与选中的进行可视化比较" #~ msgid "Email from here to selected..." #~ msgstr "邮寄从当前到选中的..." #~ msgid "Bundle from here to selected..." #~ msgstr "打包从当前到选中的..." #~ msgid "Export Patches from here to selected..." #~ msgstr "导出从当前到选中的..." #~ msgid "Transplant Revision range to local" #~ msgstr "移植版本范围到本地" #~ msgid "Rebase on top of selected" #~ msgstr "重定位到选中的" #~ msgid "Ancestry" #~ msgstr "前版本" #~ msgid "Merges" #~ msgstr "合并信息" #~ msgid "Hide Merges" #~ msgstr "隐藏合并信息" #~ msgid "Custom" #~ msgstr "自定义" #~ msgid "No remote path specified" #~ msgstr "未指定远程路径" #~ msgid "Please enter or select a remote path" #~ msgstr "请输入或选择一个远程路径" #~ msgid "Bundle Preview" #~ msgstr "Bundle预览" #~ msgid "Open Bundle" #~ msgstr "打开Bundle" #~ msgid "%(count)d of %(total)d Revisions" #~ msgstr "版本数%(count)d/%(total)d" #~ msgid "Outstanding uncommitted changes" #~ msgstr "待处理的未提交的改动" #~ msgid "" #~ "To complete merging, you need to commit merged files in working " #~ "directory.\n" #~ "\n" #~ "Do you want to exit?" #~ msgstr "" #~ "为了完成合并, 您还需要提交当前工作目录中合并后的文件.\n" #~ "\n" #~ "想要退出吗?" #~ msgid "Merged successfully" #~ msgstr "合并操作完成" #~ msgid "Canceled merging" #~ msgstr "合并操作取消" #~ msgid "Failed to merge" #~ msgstr "合并操作失败" #~ msgid "Undo successfully" #~ msgstr "撤销操作完成" #~ msgid "Canceled undo" #~ msgstr "撤销操作取消" #~ msgid "Failed to undo" #~ msgstr "撤销操作失败" #~ msgid "Select files to add" #~ msgstr "选择要添加的文件" #~ msgid "Select files to forget" #~ msgstr "选择要遗忘的文件" #~ msgid "Select files to revert" #~ msgstr "选择要还原的文件" #~ msgid "Select files to remove" #~ msgstr "选择要移除的文件" #~ msgid "Successfully" #~ msgstr "成功" #~ msgid "Canceled" #~ msgstr "取消" #~ msgid "Failed" #~ msgstr "失败" #~ msgid "%s - recovery" #~ msgstr "%s - 恢复" #~ msgid "%s - serve" #~ msgstr "%s - 服务" #~ msgid "%s serve - %s" #~ msgstr "%s 服务 - %s" #~ msgid " - serve" #~ msgstr " - 服务" #~ msgid "Shelf Preview" #~ msgstr "Shelf预览" #~ msgid "View missing" #~ msgstr "查看缺失" #~ msgid "View other" #~ msgstr "查看其它" #~ msgid "_Ignore" #~ msgstr "忽略(_I)" #~ msgid "Remove versioned" #~ msgstr "移除已纳入版本控制的" #~ msgid "_Copy..." #~ msgstr "拷贝(_C)..." #~ msgid "Rename..." #~ msgstr "重命名..." #~ msgid "Restart Merge..." #~ msgstr "重新合并..." #~ msgid "Mark unresolved" #~ msgstr "标志未解决的" #~ msgid "Mark resolved" #~ msgstr "标志解决的" #~ msgid "Restart merge with" #~ msgstr "重新合并" #~ msgid "%s - synchronize" #~ msgstr "%s - 同步" #~ msgid "Yes (&keep)" #~ msgstr "Yes 保持(&k)" #~ msgid "Confirm Fold" #~ msgstr "确认折叠" #~ msgid "Succeed" #~ msgstr "成功" #~ msgid "Strip" #~ msgstr "截去" #~ msgid "Backup all (default)" #~ msgstr "备份全部(默认)" #~ msgid "" #~ "Detected uncommitted local changes.\n" #~ "Do you want to discard them and continue?" #~ msgstr "" #~ "发现未提及的本地改动.\n" #~ "确认要废弃这些改动并继续吗?" #~ msgid "Stripped successfully" #~ msgstr "截去操作完成" #~ msgid "Canceled stripping" #~ msgstr "截去操作取消" #~ msgid "Failed to strip" #~ msgstr "截去操作失败" #~ msgid "Saved at: %s" #~ msgstr "保存于: %s" #~ msgid "Open..." #~ msgstr "打开..." #~ msgid "[canceled by user]\n" #~ msgstr "[用户取消]\n" #~ msgid "Updated successfully" #~ msgstr "更新操作完成" #~ msgid "Canceled updating" #~ msgstr "更新操作取消" #~ msgid "Failed to update" #~ msgstr "更新操作失败" #~ msgid "Repository Explorer" #~ msgstr "仓库浏览器" #~ msgid "Branches..." #~ msgstr "分支..." #~ msgid " - qnew" #~ msgstr " - qnew" #~ msgid " - qrefresh " #~ msgstr " - qrefresh " #~ msgid " - commit" #~ msgstr " - commit" #~ msgid "Parent: %(rev)s" #~ msgstr "父版本: %(rev)s" #~ msgid "Accept changes from Bundle preview" #~ msgstr "接受包预览中的改动" #~ msgid "Reject changes from Bundle preview" #~ msgstr "拒绝包预览中的改动" #~ msgid "Branch Filter" #~ msgstr "分支过滤器" #~ msgid "Confirm Forced Push to Remote Repository" #~ msgstr "确认要强制推送到远程仓库吗?" #~ msgid "" #~ "Forced push to remote repository\n" #~ "%s\n" #~ "(creating new heads in remote if needed)?" #~ msgstr "" #~ "强制推送到远程仓库\n" #~ "%s\n" #~ "(如果必要会在远程仓库中创建新的head)?" #~ msgid "Forced &Push" #~ msgstr "强制推送(&P)" #~ msgid "&Push" #~ msgstr "推送(&P)" #~ msgid "Confirm Forced Push" #~ msgstr "确认强制推送" #~ msgid "" #~ "Forced push to repository\n" #~ "%s\n" #~ "(creating new heads if needed)?" #~ msgstr "" #~ "强制推送到仓库\n" #~ "%s\n" #~ "(如果必要会在仓库中创建新的head)?" #~ msgid "Use Expander" #~ msgstr "使用扩展视图" #~ msgid "Archive" #~ msgstr "存档" #~ msgid "Old name:" #~ msgstr "原名称:" #~ msgid "Bookmark input is empty" #~ msgstr "书签输入为空" #~ msgid "Please enter bookmark name" #~ msgstr "请输入标签名" #~ msgid "unexpected type: %s" #~ msgstr "异常类型: %s" #~ msgid "Error in bookmarking" #~ msgstr "书签设置过程中出错" #~ msgid "Bookmark \"%s\" has been added" #~ msgstr "\"%s\" 书签己添加" #~ msgid "Bookmarking completed" #~ msgstr "书签设置完毕" #~ msgid "Bookmark name is empty" #~ msgstr "书签名为空" #~ msgid "Please enter new bookmark name" #~ msgstr "请输入新的书签名" #~ msgid "Bookmark \"%s\" has been renamed to \"%s\"" #~ msgstr "\"%s\"书签已经被重命名为\"%s\"" #~ msgid "Bookmark \"%s\" has been removed" #~ msgstr "\"%s\"书签己被删除" #~ msgid "Please select bookmark name to remove" #~ msgstr "请选择要删除的书签名" #~ msgid "Bookmark new name input is empty" #~ msgstr "书签新名称为空" #~ msgid "A new version of TortoiseHg is ready for download!" #~ msgstr "新版 TortoiseHg 己经可以下载了!" #~ msgid "Archive revision:" #~ msgstr "存档版本:" #~ msgid "Failed to archive" #~ msgstr "存档失败" #~ msgid "Compressed zip archives" #~ msgstr "压缩过的 zip 文档集" #~ msgid "Canceled archiving" #~ msgstr "存档取消" #~ msgid "Archived successfully" #~ msgstr "存档成功" #~ msgid "Backout commit message" #~ msgstr "撤销提交信息" #~ msgid "" #~ "The destination \"%s\" already exists!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "目标 \"%s\" 已存在!\n" #~ "您想覆盖它吗?" #~ msgid "" #~ "The directory \"%s\" isn't empty!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "目标目录 \"%s\" 不为空!\n" #~ "您想覆盖它吗?" #~ msgid "Bookmark \"%s\" has been moved" #~ msgstr "书签 \"%s\" 已移动" #~ msgid "browser" #~ msgstr "浏览器" #~ msgid "Backed out successfully, you must now commit the results" #~ msgstr "撤销成功,您必须立即提交结果" #~ msgid "Unable to save file" #~ msgstr "不能保存文件" #~ msgid "No bookmark named \"%s\" exists" #~ msgstr "书签名称 \"%s\" 不存在" #~ msgid "a bookmark named \"%s\" already exists" #~ msgstr "书签名称 \"%s\" 已存在" #~ msgid "type" #~ msgstr "类型" #~ msgid "File is binary.\n" #~ msgstr "文件是二进制的.\n" #~ msgid "Commit failed" #~ msgstr "提交失败" #~ msgid "Please try again after the running operation is completed" #~ msgstr "请在操作完成后再试一次" #~ msgid "Selecting %(sel)d, displaying %(count)d of %(total)d items" #~ msgstr "选择 %(sel)d, 显示 %(count)d of %(total)d 项" #~ msgid "Selecting %(sel)d of %(total)d, displaying all items" #~ msgstr "选择 %(sel)d of %(total)d, 显示所有项" #~ msgid "Updating..." #~ msgstr "更新..." #~ msgid "C_onfigure Format..." #~ msgstr "C_onfigure 格式..." #~ msgid "Committing changes..." #~ msgstr "提交更改..." #~ msgid "Failed to commit" #~ msgstr "提交失败" #~ msgid "Displaying all items" #~ msgstr "显示所有项" #~ msgid "Copyright 2008-2010 Steve Borho and others" #~ msgstr "©2008-2010 Steve Borho 和其他人" #~ msgid "Ambiguous Revision" #~ msgstr "歧义修正" #~ msgid "Status: %s" #~ msgstr "状态: %s" #~ msgid "TortoiseHg Init" #~ msgstr "TortoiseHg 初始化" #~ msgid "Run Commit after init" #~ msgstr "初始化后进行提交" #~ msgid "No valid hunks found" #~ msgstr "未找到有效的 hunks" #~ msgid "Finished committing" #~ msgstr "完成的提交" #~ msgid "Aborted committing" #~ msgstr "失败的提交" #~ msgid "Launch commit tool" #~ msgstr "启动提交工具" #~ msgid "Launch data mining tool" #~ msgstr "启动数据挖掘工具" #~ msgid "Launch shelve tool" #~ msgstr "启动搁置工具" #~ msgid "Branches" #~ msgstr "分支" #~ msgid "Launch recovery tool" #~ msgstr "启动恢复工具" #~ msgid "Launch web server" #~ msgstr "启动 web 服务器" #~ msgid "Show/Hide Patch Branch" #~ msgstr "显示/隐藏补丁分支" #~ msgid "Pending" #~ msgstr "挂起" #~ msgid "Push new branch" #~ msgstr "推送新分支" #~ msgid "Configure Paths..." #~ msgstr "配置路径..." #~ msgid "Import..." #~ msgstr "导入..." #~ msgid "Submitted" #~ msgstr "已提交" #~ msgid "'%s' filter:" #~ msgstr "'%s' 过滤:" #~ msgid "Changes" #~ msgstr "更改" #~ msgid "Revision Number/ID" #~ msgstr "修订版本号/ID" #~ msgid "Export" #~ msgstr "导出" #~ msgid "Push to Here" #~ msgstr "推向这里" #~ msgid "Pull to Here" #~ msgstr "拉到这里" #~ msgid "%(count)d of %(total)d applied patches" #~ msgstr "%(count)d of %(total)d 应用的补丁" #~ msgid "Current patch: %s, " #~ msgstr "当前补丁: %s, " #~ msgid "Push this Branch" #~ msgstr "推送这个分支" #~ msgid "Tag" #~ msgstr "标签" #~ msgid "Backout..." #~ msgstr "撤销..." #~ msgid "Mark as Good" #~ msgstr "标记为好的" #~ msgid "Reset" #~ msgstr "重置" #~ msgid "Import Revision to MQ" #~ msgstr "导入修正到 MQ" #~ msgid "Rename Bookmark..." #~ msgstr "重命名书签..." #~ msgid "Mercurial Queues" #~ msgstr "Mercurial Queues" #~ msgid "Mark as Bad" #~ msgstr "标记为差的" #~ msgid "Import from here to selected to MQ" #~ msgstr "从这里选择后导入到 MQ" #~ msgid "Import patches" #~ msgstr "导入补丁" #~ msgid "Skip Testing" #~ msgstr "跳过测试" #~ msgid "Finished pull" #~ msgstr "拉取完成" #~ msgid "Aborted pull" #~ msgstr "终止的拉取" #~ msgid "Aborted push" #~ msgstr "终止的推送" #~ msgid "Finished push" #~ msgstr "推送完成" #~ msgid "Aborted importing" #~ msgstr "终止的导入" #~ msgid "" #~ "Push to remote repository\n" #~ "%s\n" #~ "(creating new branches in remote if needed)?" #~ msgstr "" #~ "推送到远程仓库\n" #~ "%s\n" #~ "(如果需要在远程创建一个新的分支)?" #~ msgid "Importing" #~ msgstr "导入" #~ msgid "Failed to import" #~ msgstr "导入失败" #~ msgid "Pushing branch %s..." #~ msgstr "推送分支 %s..." #~ msgid "Importing to Patch Queue..." #~ msgstr "导入到 Patch Queue..." #~ msgid "Finish importing" #~ msgstr "导入完成" #~ msgid "Push to %s" #~ msgstr "推送到 %s" #~ msgid "Pull to %s" #~ msgstr "拉取到 %s" #~ msgid "Rollback repository '%s' to %d, undo %s?" #~ msgstr "回滚仓库 '%s' 到 %d, 撤销 %s?" #~ msgid "Rollback repository '%s' to %d, undo %s from %s?" #~ msgstr "回滚仓库 '%s' 到 %d, 撤销 %s 从 %s?" #~ msgid "name of the webdir config file (DEPRECATED)" #~ msgstr "web 目录配置文件名称 (已弃用)" #~ msgid "Unable to determine repository status" #~ msgstr "不能确定仓库状态" #~ msgid "Submit" #~ msgstr "提交" #~ msgid "Menu Items" #~ msgstr "菜单项" #~ msgid "TortoiseHg Shell Configuration" #~ msgstr "TortoiseHg Shell 配置" #~ msgid "<- Top" #~ msgstr "<- 主菜单" #~ msgid "Sub ->" #~ msgstr "子菜单 ->" #~ msgid "Show the taskbar icon (restart needed)" #~ msgstr "显示任务栏图标 (需要重启)" #~ msgid "S: subrepo" #~ msgstr "S: subrepo" #~ msgid "Show overlays on local disks only" #~ msgstr "仅在本地磁盘上显示覆盖图标" #~ msgid "invalid pack direction: %s" #~ msgstr "无效打包指令: %s" #~ msgid "unknown field name: %s" #~ msgstr "未知字段名: %s" #~ msgid "invalid alignment value: %s" #~ msgstr "无效校正值: %s" #~ msgid "tag '%s' does not exist" #~ msgstr "标签 '%s' 不存在" #~ msgid "tag '%s' is not a local tag" #~ msgstr "标签 '%s' 不是一个本地标签" #~ msgid "tag '%s' is not a global tag" #~ msgstr "标签 '%s' 不是一个全局标签" #~ msgid "Default Tab" #~ msgstr "默认标签页" #~ msgid "Toolbar Style" #~ msgstr "工具栏样式" #~ msgid "Font" #~ msgstr "字体" #~ msgid "Coloring Style" #~ msgstr "配色风格" #~ msgid "Font used in command output window. Default: monospace 10" #~ msgstr "用于命令输出窗口的字体. 默认: monospace 10" #~ msgid "Japanese on Windows" #~ msgstr "日文版 Windows" #~ msgid "Switch after saving changes?" #~ msgstr "保存更改后转换" #~ msgid "Theme default fonts" #~ msgstr "主题默认字体" #~ msgid "Preset fonts:" #~ msgstr "预设字体:" #~ msgid "Custom fonts:" #~ msgstr "自定义字体:" #~ msgid "Confirm Switch" #~ msgstr "确认转换" #~ msgid "Configure Plugin" #~ msgstr "配置插件" #~ msgid "" #~ "%s\n" #~ "Reverting to read-only mode." #~ msgstr "" #~ "%s\n" #~ "恢复为只读模式。" #~ msgid "Unable to parse a config file" #~ msgstr "不能解析配置文件" #~ msgid "Insufficient access rights, reverting to read-onlymode." #~ msgstr "没有足够的访问权限,恢复为只读模式。" #~ msgid "Do you want to close?" #~ msgstr "您想关闭吗?" #~ msgid "Canceled importing" #~ msgstr "取消导入" #~ msgid "Confirm Close" #~ msgstr "确认关闭" #~ msgid "Imported successfully" #~ msgstr "导入成功" #~ msgid "Import" #~ msgstr "导入" #~ msgid "Select Patches" #~ msgstr "选择补丁" #~ msgid "%s will be imported to the" #~ msgstr "%s 将被导入到" #~ msgid "%s will be imported to the repository" #~ msgstr "%s 将被导入到仓库" #~ msgid "Select Directory contains patches:" #~ msgstr "选择包含补丁的目录:" #~ msgid "Do you want to delete these patches?" #~ msgstr "您想删除这些补丁吗?" #~ msgid "Do you want to delete '%(name)s'?" #~ msgstr "您想删除 '%(name)s' 吗?" #~ msgid "Patch" #~ msgstr "补丁" #~ msgid "invalid reorder operation: %s" #~ msgstr "无效的重新排序操作: %s" #~ msgid "Bottom" #~ msgstr "底部" #~ msgid "Up" #~ msgstr "向上" #~ msgid "Top" #~ msgstr "顶部" #~ msgid "Down" #~ msgstr "向下" #~ msgid "Reorder" #~ msgstr "重新排序" #~ msgid "Always Show Output" #~ msgstr "总是显示输出" #~ msgid "merging " #~ msgstr "合并 " #~ msgid "file %s already exists\n" #~ msgstr "文件 %s 已经存在\n" #~ msgid "Finished committing and pushing" #~ msgstr "完成提交并推入" #~ msgid "Index" #~ msgstr "索引" #~ msgid ", please refresh" #~ msgstr ", 请刷新" #~ msgid "%s does not exist\n" #~ msgstr "%s 不存在\n" #~ msgid "Patch Branch" #~ msgstr "补丁分支" #~ msgid "import to the repository" #~ msgstr "导入仓库" #~ msgid "Identify" #~ msgstr "标识" #~ msgid "No matches" #~ msgstr "无匹配" #~ msgid "file patterns \"%s\"" #~ msgstr "文件类型 \"%s\"" #~ msgid "Invalid file pattern" #~ msgstr "不可用的文件类型" #~ msgid "" #~ "Do you want to fold un-applied patch '%(target)s' into current patch " #~ "'%(qtip)s'?" #~ msgstr "确认要折叠未应用的补丁'%(target)s'到当前的补丁'%(qtip)s'吗" #~ msgid "close branch: " #~ msgstr "关闭分支: " #~ msgid "Close diff tools and try again, or quit to leak files?" #~ msgstr "关闭比较工具并重试,或退出而不删除临时文件?" #~ msgid "Close the commit tool after every successful commit. Default: False" #~ msgstr "成功提交后关闭。默认:False" #~ msgid "" #~ "Adjust the display of the main toolbar in the Repository Explorer. " #~ "Values: small, large, or theme. Default: theme" #~ msgstr "" #~ "调整工具栏在仓库浏览器中的显示。值:small,large或theme。默认:theme" #~ msgid "Show overlay icons in Mercurial repositories" #~ msgstr "在 Mercurial 仓库中显示层叠图标" #~ msgid "Enable overlays" #~ msgstr "启用图标层叠" #~ msgid "" #~ "Maximum length of the commit message summary line. If set, TortoiseHg " #~ "will issue a warning if the summary line is too long or not separated by " #~ "a blank line. Default: 0 (unenforced)" #~ msgstr "" #~ "最大提交说明摘要行数。如果设置,TortoiseHg将会在摘要行数过多或没有使用空行" #~ "分割时提醒。默认:0 (非强制)" #~ msgid "" #~ "Word wrap length of the commit message. If set, the popup menu can be " #~ "used to format the message and a warning will be issued if any lines are " #~ "too long at commit. Default: 0 (unenforced)" #~ msgstr "" #~ "提交说明的自动换行长度。如果设置,弹出菜单可以使用格式化的说明,并且会在有" #~ "过长的行提交时警告。默认:0 (非强制)" #~ msgid "TortoiseHg Configure User-Global Settings" #~ msgstr "TortoiseHg 配置用户全局设置" #~ msgid "" #~ "** Please report this bug to http://bitbucket.org/tortoisehg/stable/" #~ "issues\n" #~ msgstr "** 请到 http://bitbucket.org/tortoisehg/stable/issues 报告这个bug\n" #~ msgid "_Copy Hash" #~ msgstr "复制校验码(_C)" #~ msgid "unable to find %s or %s for patching" #~ msgstr "无法找到需要修补的 %s 或 %s" #~ msgid "Diff to Local" #~ msgstr "与本地版本的差异" #~ msgid "Backout changeset - %s" #~ msgstr "撤销修订集 - %s" #~ msgid "Changeset Description" #~ msgstr "修订集描述" #~ msgid "%s changeset " #~ msgstr "%s 修订集 " #~ msgid "_Visual Diff" #~ msgstr "可视化比较(_V)" #~ msgid "_View at Revision" #~ msgstr "查看特定版本(_V)" #~ msgid "_Save at Revision..." #~ msgstr "保存特定版本(_S)..." #~ msgid "_File History" #~ msgstr "文件历史(_F)" #~ msgid "_Annotate File" #~ msgstr "标注文件(_A)" #~ msgid "_Revert File Contents" #~ msgstr "还原文件内容(_R)" #~ msgid "Enable _Wordwrap" #~ msgstr "启用自动换行(_W)" #~ msgid "Not at head" #~ msgstr "不是head版本" #~ msgid "commit to merge one head" #~ msgstr "提交并合并一个head" #~ msgid "neither parent is a head, commit to add a new head" #~ msgstr "父版本都不是head,提交将创建一个新的head" #~ msgid "parent is not a head, commit to add a new head" #~ msgstr "父版本不是head,提交将创建一个新的head" #~ msgid "_View File at Revision" #~ msgstr "查看修订版本的文件(_V)" #~ msgid "_Annotate Parent" #~ msgstr "标注父版本(_A)" #~ msgid "_Annotate First Parent" #~ msgstr "标注第一个父版本(_A)" #~ msgid "Annotate Second Parent" #~ msgstr "标注第二个父版本" #~ msgid "_Diff to Local" #~ msgstr "对比本地版本(_D)" #~ msgid " Messages and Errors" #~ msgstr " 消息和错误信息" #~ msgid "revision number, changeset ID, branch or tag" #~ msgstr "版本号, 修订集ID, 分支或标签" #~ msgid "" #~ "This feature is only available when sending outgoing changesets. It is " #~ "not applicable with revision ranges." #~ msgstr "这个功能只在外发修订集的时候可用. 这个功能对版本范围不适用." #~ msgid "hgtk add [FILE]..." #~ msgstr "hgtk add [FILE]..." #~ msgid "hgtk clone SOURCE [DEST]" #~ msgstr "hgtk clone SOURCE [DEST]" #~ msgid "hgtk commit [OPTIONS] [FILE]..." #~ msgstr "hgtk commit [OPTIONS] [FILE]..." #~ msgid "hgtk hgignore [FILE]" #~ msgstr "hgtk hgignore [FILE]" #~ msgid "hgtk init [DEST]" #~ msgstr "hgtk init [DEST]" #~ msgid "hgtk log [OPTIONS] [FILE]" #~ msgstr "hgtk log [OPTIONS] [FILE]" #~ msgid "revision to merge with" #~ msgstr "要合并的修订版本" #~ msgid "revisions to compare" #~ msgstr "要比较的修订版本" #~ msgid "hgtk status [FILE]..." #~ msgstr "hgtk status [FILE]..." #~ msgid "hgtk remove [FILE]..." #~ msgstr "hgtk remove [FILE]..." #~ msgid "hgtk rename SOURCE [DEST]" #~ msgstr "hgtk rename SOURCE [DEST]" #~ msgid "hgtk revert [FILE]..." #~ msgstr "hgtk revert [FILE]..." #~ msgid "hgtk forget [FILE]..." #~ msgstr "hgtk forget [FILE]..." #~ msgid "hgtk serve [OPTION]..." #~ msgstr "hgtk serve [OPTION]..." #~ msgid "hgtk thgstatus [OPTION]" #~ msgstr "hgtk thgstatus [OPTION]" #~ msgid "hgtk version [OPTION]" #~ msgstr "hgtk version [OPTION]" #~ msgid "[-o] CMD" #~ msgstr "[-o] CMD" #~ msgid "hgtk help [COMMAND]" #~ msgstr "hgtk help [COMMAND]" #~ msgid "hgtk import [OPTION] [SOURCE]..." #~ msgstr "hgtk import [OPTION] [SOURCE]..." #~ msgctxt "changesets" #~ msgid "All" #~ msgstr "所有" #~ msgid "Tagged" #~ msgstr "已打过标签的" #~ msgid "" #~ "New changesets from the preview bundle are still pending.\n" #~ "\n" #~ "Accept or reject the new changesets?" #~ msgstr "" #~ "预览包里面的新修订集等待处理.\n" #~ "要接受还是拒绝这些修订集?" #~ msgid "Accept new Changesets" #~ msgstr "接受新修订集" #~ msgid "Revision Range" #~ msgstr "修订版本范围" #~ msgid "Changeset ID" #~ msgstr "修订集ID" #~ msgid "No revisions matched search" #~ msgstr "没有搜索到匹配的修订版本" #~ msgid "Invalid revision set" #~ msgstr "无效的修订版本集" #~ msgid "tagged revisions" #~ msgstr "已打标签的版本" #~ msgid "Tagged Revisions" #~ msgstr "已打标签的版本" #~ msgid "Download and view incoming changesets" #~ msgstr "下载和查看可拉取的修订集" #~ msgid "Pull incoming changesets" #~ msgstr "拉取修订集" #~ msgid "Determine and mark outgoing changesets" #~ msgstr "确定和标记可推送的修订集" #~ msgid "Push outgoing changesets" #~ msgstr "推送修订集" #~ msgid "Email outgoing changesets" #~ msgstr "邮寄修订集" #~ msgid "Accept incoming previewed changesets" #~ msgstr "接受拉取预览的修订集" #~ msgid "Reject incoming previewed changesets" #~ msgstr "拒绝拉取预览的修订集" #~ msgid "No changesets to pull" #~ msgstr "没有修订集可用来拉取" #~ msgid "Pulling changesets..." #~ msgstr "拉取修订集..." #~ msgid "Pushing changesets..." #~ msgstr "推送修订集..." #~ msgid "Changeset not found in current view" #~ msgstr "未在当前视图中找到修订集" #~ msgid "Uncommitted local changes" #~ msgstr "未提交的本地修订" #~ msgid "Changelist:" #~ msgstr "修订列表:" #~ msgid "hg serve [OPTION]..." #~ msgstr "hg serve [OPTION]..." #~ msgid "Annotate" #~ msgstr "标注" #~ msgid "_Guess Rename..." #~ msgstr "猜测重命名(_G)..." #~ msgid "_Delete unversioned" #~ msgstr "删除无版本控制的文件(_D)" #~ msgid "Rename file to:" #~ msgstr "重命名文件为:" #~ msgid "Toggle _Wordwrap" #~ msgstr "切换自动换行(_W)" #~ msgid "Replace existing tag" #~ msgstr "替换已有标签" #~ msgid "Tag input is empty" #~ msgstr "标签为空" #~ msgid "Tagging completed" #~ msgstr "打标签成功" #~ msgid "Error in tagging" #~ msgstr "打标签时出错" #~ msgid "Show changeset details with an expander" #~ msgstr "在扩展视图中显示修订集的详细信息" #~ msgid "Commit Message" #~ msgstr "提交说明" #~ msgid "_edit message" #~ msgstr "编辑说明(_e)" #~ msgid "Show message" #~ msgstr "显示说明" #~ msgid "Backup unrelated changesets (-b/--backup)" #~ msgstr "备份不相关的修订集(-b/--backup)" #~ msgid "changeset " #~ msgstr "修订集 " #~ msgid "hg shelve [OPTION]... [FILE]..." #~ msgstr "hg shelve [OPTION]... [FILE]..." #~ msgid "hg unshelve [OPTION]... [FILE]..." #~ msgstr "hg unshelve [OPTION]... [FILE]..." #~ msgid "Allow pushing a new branch" #~ msgstr "允许推送新分支" #~ msgid "Nothing Commited" #~ msgstr "未提交" #~ msgid "Add special files (.hgignore, ...)" #~ msgstr "添加特殊文件 (.hgignore,...)" #~ msgid "Discard all changes from merge target (other) revision" #~ msgstr "丢弃目标修订版本所做的全部更改" #~ msgid "There is no Mercurial repository here (.hg not found)" #~ msgstr "这里没有 Mercurial 仓库(未找到.hg目录)" #~ msgid "&Yes (--force)" #~ msgstr "是(&Y) (--force)" #~ msgid "Verify" #~ msgstr "验证" #~ msgid "file copy of %s failed\n" #~ msgstr "复制文件%s失败\n" #~ msgid "removing backup file : %r\n" #~ msgstr "删除备份文件: %r\n" #~ msgid "abort: backup restore failed, %s\n" #~ msgstr "终止: 恢复备份失败, %s\n" #~ msgid "" #~ "Color changesets by author name. If not enabled, the changes are colored " #~ "green for merge, red for non-trivial parents, black for normal. Default: " #~ "False" #~ msgstr "" #~ "根据作者名称来用颜色来区分修改记录. 如果禁用, 修改记录的颜色是:合并操作用" #~ "绿色、无意义的父记录为红色、正常为黑色. 默认: 否" #~ msgid "" #~ "If true, concatenate multiple lines of changeset summary until they reach " #~ "80 characters. Default: False" #~ msgstr "" #~ "设置了的话, 会将摘要中的行进行合并, 使每行尽可能达到80个字. 默认: 否" #~ msgid "Connect to mail server using TLS. Default: False" #~ msgstr "用TLS方式连接邮件服务器. 默认: 否" #~ msgid "Ignore white space when comparing lines. Default: False" #~ msgstr "比较代码行时忽略空格. 默认: 否" #~ msgid "Ignore changes in the amount of white space. Default: False" #~ msgstr "忽略空格数量的变化. 默认: 否" #~ msgid "Ignore changes whose lines are all blank. Default: False" #~ msgstr "忽略对空行的修改. 默认: 否" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1686230251.0 tortoisehg-6.9/i18n/tortoisehg/zh_TW.po0000644000000000000000000066162214440352353016676 0ustar00rootroot# Traditional Chinese translation for tortoisehg # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the tortoisehg package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: tortoisehg\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2019-07-16 12:01-0300\n" "PO-Revision-Date: 2015-09-16 10:35+0000\n" "Last-Translator: leolarrel Wang \n" "Language-Team: Traditional Chinese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2019-07-17 05:46+0000\n" "X-Generator: Launchpad (build 19009)\n" msgid "TortoiseHg Overlay Icon Server" msgstr "" msgid "Exit" msgstr "離開" msgid "About" msgstr "關於" msgid "Copyright 2008-2019 Steve Borho and others" msgstr "" msgid "Several icons are courtesy of the TortoiseSVN and Tango projects" msgstr "許多圖示是由TortoiseSVN及Tango projects 所提供" msgid "You can visit our site here" msgstr "你可以從這裡拜訪我們的網站" msgid "&License" msgstr "授權(&L)" #, python-format msgid "version %s" msgstr "版本 %s" #, python-format msgid "with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" msgstr "附 Mercurial-%s, Python-%s, PyQt-%s, Qt-%s" #, python-format msgid "A new version of TortoiseHg (%s) is ready for download!" msgstr "一個新的TortoiseHg版本(%s)可以下載了" msgid "License" msgstr "許可證" msgid "= Working Directory Parent =" msgstr "=工作目錄的上層目錄=" msgid "Directory of files" msgstr "檔案的目錄" msgid "Tar archives" msgstr "Tar 封存" msgid "Uncompressed tar archive" msgstr "未壓縮的 tar 封存" msgid "Bzip2 tar archives" msgstr "Bzip2 tar 封存" msgid "Tar archive compressed using bzip2" msgstr "使用 bzip2 壓縮 tar 封存" msgid "Gzip tar archives" msgstr "Gzip tar 封存" msgid "Tar archive compressed using gzip" msgstr "使用 gzip 壓縮 tar 封存" msgid "Zip archives" msgstr "Zip 封存" msgid "Uncompressed zip archive" msgstr "未壓縮的 zip 封存" msgid "Zip archive compressed using deflate" msgstr "使用 deflate 演算法壓縮的 zip 封存" msgid "Revision:" msgstr "修訂版:" msgid "All files in this revision" msgstr "" msgid "Only files modified/created in this revision" msgstr "僅當前修訂版中被修改/建立的檔案" msgid "Only files modified/created since:" msgstr "" msgid "Archive Content:" msgstr "" msgid "Recurse into subrepositories" msgstr "遞歸到子儲存庫裡面去" msgid "Browse..." msgstr "瀏覽..." msgid "Destination path:" msgstr "目的端路徑" msgid "Archive types:" msgstr "封存類型:" msgid "Hg command:" msgstr "Hg 命令:" msgid "Select Destination Folder" msgstr "選擇目的資料夾" msgid "Select Destination File" msgstr "選擇目的檔案" msgid "All files (*)" msgstr "所有檔案 (*)" msgid "Duplicate Name" msgstr "重複的名稱" #, python-format msgid "The destination \"%s\" already exists as a file!" msgstr "\"%s\"目的地已經存在,而且是一個檔案" msgid "Confirm Overwrite" msgstr "確認覆蓋" #, python-format msgid "" "The directory \"%s\" is not empty!\n" "\n" "Do you want to overwrite it?" msgstr "" "\"%s\"目錄不是空的\n" "\n" "你想要覆蓋它嗎?" #, python-format msgid "" "The file \"%s\" already exists!\n" "\n" "Do you want to overwrite it?" msgstr "" "檔案 \"%s\" 已存在!\n" "\n" "您想覆蓋它嗎?" #, python-format msgid "The destination \"%s\" already exists as a folder!" msgstr "\"%s\"目的地已經存在,而且是一個目錄" #, python-format msgid "Archive - %s" msgstr "封存 - %s" msgid "&Archive" msgstr "封存(&A)" msgid "Backout requires a parent revision" msgstr "回退需要一個母系修訂版" msgid "Cannot backout change on a different branch" msgstr "不能在不同的分支中回退變更" #, python-format msgid "Backout - %s" msgstr "回退 - %s" msgid "Prepare to backout" msgstr "準備回退" msgid "Verify backout revision and ensure your working directory is clean." msgstr "驗證回退修訂版並確認你的工作目錄是乾淨的。" msgid "Backing out a parent revision is a single step operation" msgstr "回退母系修訂版是一個單步操作" msgid "Backout revision" msgstr "回退修訂版" msgid "Not a head, backout will create a new head!" msgstr "不是HEAD修訂版,回退操作將會建立新的Head修訂版!" msgid "Current local revision" msgstr "目前的本地工作複本所在的修訂版" msgid "Working directory status" msgstr "工作目錄狀態" msgid "Checking..." msgstr "檢查中..." msgid "" "Before backout, you must commit, shelve to patch, or discard changes." msgstr "" "回退之前,你必須 提交, 擱" "置 到補丁,或 丟棄變更。" msgid "Automatically resolve merge conflicts where possible" msgstr "在可能情況下自動解決合併衝突" msgid "Uncommitted local changes are detected" msgstr "偵測到有未提交的本地工作複本變更" msgid "Clean" msgstr "乾淨的" msgid "Backing out, then merging..." msgstr "回退中,然後合併..." msgid "All conflicting files will be marked unresolved." msgstr "所有有衝突的檔案將被標示為未解決" msgid "Automatically advance to next page when backout and merge are complete." msgstr "回退和合併完成後自動前進到下一個頁面。" #, python-format msgid "" "%d files have merge conflicts that must be resolved" msgstr "有%d個需要合併衝突的檔案要解決" msgid "No merge conflicts, ready to commit" msgstr "沒有合併衝突,可以提交" msgid "Commit backout and merge results" msgstr "提交回退並合併" msgid "Parents" msgstr "母系" msgid "Working Directory" msgstr "工作目錄" msgid "Working Directory (merged)" msgstr "工作目錄(合併的)" msgid "Commit message" msgstr "提交訊息" msgid "Skip final confirmation page, close after commit." msgstr "提交後關閉,跳過最後的確認頁。" msgid "Backed out changeset: " msgstr "回退的變更集: " msgid "Confirm Discard Message" msgstr "確認丟棄訊息" msgid "Discard current backout message?" msgstr "丟棄目前的回退訊息?" msgid "Use English backout message" msgstr "使用英文回退訊息" msgid "Backing out and committing..." msgstr "回退並提交..." msgid "Please wait while making backout." msgstr "回退中,請稍等..." msgid "Committing..." msgstr "提交中..." msgid "Please wait while committing merged files." msgstr "正在提交合併的文件,請稍等..." msgid "Finished" msgstr "已完成" msgid "Backout changeset" msgstr "回退變更集" #, python-format msgid "Bisect - %s" msgstr "" msgid "Accept" msgstr "接受" msgid "Known good revision:" msgstr "已知的良好修訂版:" msgid "Known bad revision:" msgstr "已知的不良修訂版" msgid "Discard local changes (revert --all)" msgstr "放棄本地工作複本的變更(revert -all)" msgid "Revision is &Good" msgstr "此修訂版良好(&G)" msgid "Revision is &Bad" msgstr "此修訂版不良(&B)" msgid "&Skip this Revision" msgstr "略過此修訂版(&S)" msgid "Close" msgstr "關閉" msgid "Error encountered." msgstr "發生錯誤" msgid "Culprit found." msgstr "找到元兇" msgid "Revision" msgstr "修訂版" msgid "Test this revision and report findings. (good/bad/skip)" msgstr "測試修訂版然後回報結果. (良好/不良/跳過)" #, python-format msgid "%s (hint: %s)" msgstr "%s (提示: %s)" msgid "Bookmark:" msgstr "書籤:" msgid "New Name:" msgstr "新名稱:" msgid "Activate:" msgstr "活動的:" msgid "&Add" msgstr "加入(&A)" msgid "Re&name" msgstr "重新命名(&N)" msgid "&Remove" msgstr "移除(&R)" msgid "&Move" msgstr "搬移(&M)" #, python-format msgid "Bookmark - %s" msgstr "書籤 - %s" #, python-format msgid "A bookmark named \"%s\" already exists" msgstr "一個\"%s\"書籤已經存在" #, python-format msgid "Bookmark '%s' has been added" msgstr "\"%s\"書籤已經被新增了" #, python-format msgid "Bookmark named \"%s\" does not exist" msgstr "\"%s\"書籤不存在" #, python-format msgid "Bookmark '%s' has been moved" msgstr "\"%s\"書籤已經被搬移" #, python-format msgid "Bookmark '%s' does not exist" msgstr "書籤('%s')不存在" #, python-format msgid "Bookmark '%s' has been removed" msgstr "\"%s\"書籤已經被移除" #, python-format msgid "Bookmark '%s' has been renamed to '%s'" msgstr "\"%s\"書籤已經被重新命名成\"%s\"" msgid "TortoiseHg Bookmark Sync" msgstr "TortoiseHg 書籤同步" msgid "Outgoing Bookmarks" msgstr "可被推送的書籤" msgid "&Push Bookmark" msgstr "推送書籤(&P)" msgid "&Remove Bookmark" msgstr "移除書籤(&R)" msgid "Incoming Bookmarks" msgstr "可拉收的書籤" msgid "P&ull Bookmark" msgstr "拉收書籤(&u)" msgid "R&emove Bookmark" msgstr "移除書籤(&e)" #, python-format msgid "Pushed local bookmark: %s" msgstr "已經推送的本地書籤:%s" #, python-format msgid "Pulled remote bookmark: %s" msgstr "已經拉收的遠端書籤:%s" #, python-format msgid "Removed remote bookmark: %s" msgstr "已經移除的遠端書籤:%s" #, python-format msgid "Removed local bookmark: %s" msgstr "已經移除的本地書籤:%s" #, python-format msgid "%s - branch operation" msgstr "%s - 分支操作" msgid "Select branch of merge commit" msgstr "選擇要合併的分支" msgid "Changes take effect on next commit" msgstr "將於下次提交時生效" msgid "No branch changes" msgstr "分支沒有改變" msgid "Open a new named branch" msgstr "開啟一個新的命名分支 (named branch)" msgid "Close current branch" msgstr "關閉目前分支" #, python-format msgid "Please report this bug to our bug tracker" msgstr "請回報這個bug到我們bug tracker" msgid "Checking for updates..." msgstr "檢查更新..." msgid "Copy" msgstr "複製" msgid "Quit" msgstr "結束" msgid "TortoiseHg Bug Report" msgstr "回報 TortoiseHg 的問題" msgid "Upgrading to a more recent TortoiseHg is recommended." msgstr "建議更新到最新的TortoiseHg" msgid "Your TortoiseHg is up to date." msgstr "你的TortoiseHg是最新的" msgid "Save error report to" msgstr "儲存錯誤報告至" msgid "Text files (*.txt)" msgstr "文字檔 (*.txt)" msgid "Error writing file" msgstr "寫入檔案時發生錯誤" msgid "TortoiseHg Error" msgstr "TortoiseHg 錯誤" msgid "" "If you still have trouble, please file a bug report." msgstr "假如你仍然有麻煩,請提出問題回報." msgid "Visual Diff" msgstr "圖形化差異比對" msgid "View file changes in external diff tool" msgstr "使用外部差異比對工具來觀看檔案變更" msgid "Edit Local" msgstr "編輯本地工作複本" msgid "Edit current file in working copy" msgstr "在工作副本編輯目前的檔案" msgid "Revert to Revision" msgstr "復原到修訂版" msgid "Revert file(s) to contents at this revision" msgstr "復原檔案到這個修訂版的內容" msgid "Patch failed to apply" msgstr "套用補丁失敗" msgid "Manually resolve rejected chunks?" msgstr "手動解決被拒絕的區塊?" msgid "Edit patched file and rejects?" msgstr "" msgid "No deletable chunks" msgstr "沒有可刪除的區塊" msgid "Completely remove file from patch?" msgstr "從補丁中完整的移除檔案?" msgid "Revert all file changes?" msgstr "復原所有檔案變更?" msgid "No chunks remain" msgstr "沒有區塊剩下了" msgid "file has been deleted, refresh" msgstr "檔案已經被刪除,重新整理" msgid "file has been modified, refresh" msgstr "檔案已經被修改,重新整理" msgid "Unable to merge chunks" msgstr "不能去合併區塊" msgid "Add or remove patches must be merged in the working directory" msgstr "" msgid "Unable to remove" msgstr "不能移除" #, python-format msgid "" "Unable to remove file %s,\n" "permission denied" msgstr "" "不能移除 %s,\n" "權限不允許" msgctxt "files" msgid "All" msgstr "全部" msgctxt "files" msgid "None" msgstr "(無)" msgid "Toggle display of text search bar" msgstr "顯示/隱藏文字搜尋列" msgid "Diff Toolbar" msgstr "差異比對工具列" #, python-format msgid "Chunks selected: %d / %d" msgstr "選擇區塊: %d/%d" msgid "Please wait while the file is opened ..." msgstr "請等待檔案被開啟" msgid "Source:" msgstr "來源:" msgid "Destination:" msgstr "目的地:" msgid "Options" msgstr "選項" msgid "Clone to revision:" msgstr "拓製修訂版:" msgid "A revision identifier, bookmark, tag or branch name" msgstr "一個修訂版,書籤,標籤,或分支名稱" msgid "Do not update the new working directory" msgstr "不要對新的工作目錄進行更新" msgid "Use pull protocol to copy metadata" msgstr "使用 pull 協定複製 metadata" msgid "Clone with minimal processing" msgstr "" msgid "Include patch queue" msgstr "引入補丁佇列" msgid "Use proxy server" msgstr "使用代理伺服器" msgid "Do not verify host certificate" msgstr "無法驗證主機憑證" msgid "Remote command:" msgstr "遠端命令:" msgid "Use largefiles" msgstr "" msgid "Start revision:" msgstr "開始修訂版:" msgid "Select source repository" msgstr "選擇來源儲存庫" msgid "Select destination repository" msgstr "選擇目的地儲存庫" msgid "Select patch folder" msgstr "選擇目錄資料夾" #, python-format msgid "Clone - %s" msgstr "拓製 - %s" msgid "&Clone" msgstr "拓製(&C)" msgid "failed to start command\n" msgstr "開始命令失敗了\n" msgid "error while running command\n" msgstr "執行命令時錯誤\n" #, python-format msgid "process exited unexpectedly with code %d" msgstr "程序意外結束,代碼 %d" #, python-format msgid "failed to encode command: %s" msgstr "" #, python-format msgid "timed out while reading: %r..." msgstr "讀取逾時: %r ..." msgid "timed out waiting for message" msgstr "等待訊息的時候逾時了" #, python-format msgid "unexpected response on required channel %r" msgstr "" #, python-format msgid "invalid \"hello\" message: %r" msgstr "無效的\"hello\"訊息:%r" msgid "no \"runcommand\" capability" msgstr "沒有\"runcommand\"功能" #, python-format msgid "corrupted command result: %r" msgstr "" msgid "error while reading from data input" msgstr "" msgid "asynchronous read is not implement yet" msgstr "" #, python-format msgid "failed to encode input: %s" msgstr "" msgid "Terminated by user" msgstr "被使用者終止了" #, python-format msgid "[command terminated by user %s]" msgstr "[命令被%s這個使用者所終結了]" #, python-format msgid "[command interrupted %s]" msgstr "[命令中斷了%s]" #, python-format msgid "[command returned code %d %%s]" msgstr "[命令返回碼 %d %%s]" #, python-format msgid "[command completed successfully %s]" msgstr "[命令完成 %s]" msgid "Running..." msgstr "執行中..." msgid "Failed!" msgstr "失敗!" msgid "Clea&r Log" msgstr "清除紀錄(&r)" msgid "TortoiseHg Prompt" msgstr "TortoiseHg 提示字元" msgid "Show Detail" msgstr "顯示詳細資料" msgid "Hide Detail" msgstr "隱藏詳細資料" msgid "Confirm Exit" msgstr "確認離開" msgid "" "Mercurial command is still running.\n" "Are you sure you want to terminate?" msgstr "" "Mercurial命令還在執行\n" "你真的想終止?" msgid "&Run" msgstr "執行(&R)" msgid "TortoiseHg Command Dialog" msgstr "TortoiseHg 命令對話框" msgid "Command Error" msgstr "指令錯誤" #, python-format msgid "[Code: %d]" msgstr "[返回碼:%d]" msgid "Merge" msgstr "合併" #, python-format msgid "Merge with %s" msgstr "和 %s 合併" msgid "Patch Name Required" msgstr "需要補丁名字" msgid "You must enter a patch name" msgstr "你需要輸入一個補丁名字" msgctxt "start progress" msgid "Commit" msgstr "提交" msgctxt "start progress" msgid "MQ Action" msgstr "" msgctxt "start progress" msgid "Rollback" msgstr "回退" msgid "Commit Dialog Toolbar" msgstr "提交對話框工具列" msgid "Branch: " msgstr "分支: " msgid "Copy message" msgstr "複製訊息" msgid "Copy one of the recent commit messages" msgstr "複製常用提交訊息中的一個" msgid "Show Issues" msgstr "顯示問題" msgid "Please wait..." msgstr "請等一下…" #, python-format msgid "Failed to load issue tracker '%s': %s" msgstr "載入問題追蹤系統 '%s' 失敗 : %s" msgid "Issue Tracker" msgstr "問題追蹤系統" msgid "Show Issues..." msgstr "顯示問題..." msgid "Stop" msgstr "停止" msgid "### patch name ###" msgstr "### 補丁名字 ###" msgid "Commit changes" msgstr "提交變更" msgid "Commit" msgstr "提交" msgid "Amend current revision" msgstr "修改目前的修訂版" msgid "Amend" msgstr "修改" msgid "Create a new patch" msgstr "建立一個新的補丁" msgid "QNew" msgstr "" msgid "Refresh current patch" msgstr "重新整理目前的補丁" msgid "QRefresh" msgstr "QRefresh" msgid "Confirm Branch Change" msgstr "確認分支改變" #, python-format msgid "Named branch \"%s\" already exists, last used in revision %d\n" msgstr "\"%s\"命名分支已經存在.最後一次是在%d 修訂版被使用過\n" msgid "Restart &Branch" msgstr "分支重新開始(&B)" msgid "&Commit to current branch" msgstr "提交到目前分支(&C)" msgid "Cancel" msgstr "取消" msgid "Confirm New Branch" msgstr "確認新分支" #, python-format msgid "Create new named branch \"%s\" with this commit?\n" msgstr "這次提交時要建立新的\"%s\"分支嗎?\n" msgid "Create &Branch" msgstr "建立分支(&B)" msgid "Close Branch: " msgstr "關閉的分支: " msgid "New Branch: " msgstr "新分支: " #, python-format msgid "Selected Options: %s" msgstr "選擇的選項: %s" msgid "Parent:" msgstr "母系:" msgid "Patch name:" msgstr "補丁名稱" #, python-format msgid "Close %s branch" msgstr "關閉 %s 分支" #, python-format msgid "Rollback commit to revision %d" msgstr "回退提交到%d修訂版" msgid "Confirm Undo" msgstr "確認復原" msgid "Discard current commit message?" msgstr "放棄目前的提交訊息?" msgid "Message Translation Failure" msgstr "訊息轉譯失敗" msgid "" "Unable to translate message to local encoding.\n" "Consider setting HGENCODING environment variable.\n" "\n" "Replace untranslatable characters with \"?\"?\n" msgstr "" msgid "&Replace" msgstr "取代(&R)" msgid "Nothing Committed" msgstr "沒有提交任何東西" msgid "Please enter commit message" msgstr "請輸入提交訊息" msgid "" "No issue link was found in the commit message. The commit message should " "contain an issue link. Configure this in the 'Issue Tracking' section of " "the settings." msgstr "" "提交訊息裡面沒有問題連結.應該要有的,請到\"設定\"的'問題追蹤'頁面進行設定" msgid "No files checked" msgstr "沒有檔案被檢查" msgid "No modified files checkmarked for commit" msgstr "請勾選提交時要提交的檔案" msgid "Confirm Add" msgstr "確認新增" msgid "Add selected untracked files?" msgstr "新增已選擇的未追蹤檔案嗎?" msgid "Confirm Remove" msgstr "確認移除" msgid "Remove selected deleted files?" msgstr "移除已選擇的刪除檔案嗎?" msgid "Nothing changed." msgstr "沒有東西被改變" msgctxt "window title" msgid "Commit" msgstr "提交" #, python-format msgid "%s - commit options" msgstr "%s - 提交選項" msgid "Set username:" msgstr "設定使用者名字:" msgid "Save in Repo" msgstr "儲存在Repo" msgid "Save Global" msgstr "儲存成全域" msgid "Set Date:" msgstr "設定日期:" msgid "Update" msgstr "更新" msgid "Push After Commit:" msgstr "提交之後推送:" msgid "Auto Includes:" msgstr "自動引入:" msgid "Recurse into subrepositories (--subrepos)" msgstr "遞迴到子儲存庫中(--subrepos)" msgid "Unable to save username" msgstr "不能儲存使用者名字" msgid "Iniparse must be installed." msgstr "需要安裝Iniparse" msgid "Unable to write configuration file" msgstr "不能寫入設定檔" msgid "Unable to save after commit push" msgstr "" msgid "Unable to save auto include list" msgstr "不能儲存自動載入列表" msgid "Unable to save recurse in subrepos." msgstr "" msgid "Invalid date format" msgstr "無效的日期格式" msgid "No username configured" msgstr "沒有設定使用者名字" #, python-format msgid "%s - commit" msgstr "%s - 提交" msgid "TortoiseHg Commit" msgstr "TortoiseHg Commit" msgid "Are you sure that you want to cancel the commit operation?" msgstr "你確定你想取消提交嗎?" msgid "Compress changesets up to and including" msgstr "" msgid "Onto destination" msgstr "到目的地" msgid "Compress" msgstr "壓縮" #, python-format msgid "Compress - %s" msgstr "壓縮 - %s" msgid "" "Before compress, you must commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the compress" msgstr "你可以繼續壓縮" msgid "Changes have been moved, you must now commit" msgstr "變更已經被移動,你現在就要提交" msgctxt "action button" msgid "Commit" msgstr "提交" msgid "Compress is complete, old history untouched" msgstr "" msgid "must be specified repository" msgstr "必須指定儲存庫" msgid "must be specified 'type' in style" msgstr "必須在style裡指定type" msgid "Git Commit:" msgstr "" msgid "Summary:" msgstr "摘要:" msgid "User:" msgstr "使用者:" msgid "Date:" msgstr "日期:" msgid "Age:" msgstr "時間:" msgid "Branch:" msgstr "分支:" msgid "Close:" msgstr "關閉:" msgid "Tags:" msgstr "標籤:" msgid "Graft:" msgstr "" msgid "Transplant:" msgstr "" msgid "Obsolete state:" msgstr "" msgid "Perforce:" msgstr "" msgid "Subversion:" msgstr "" msgid "Converted From:" msgstr "從哪邊轉換" msgid "Original Parent:" msgstr "原始母系:" msgid "No items to display" msgstr "沒有項次可以顯示" msgid "Use compact view" msgstr "使用簡潔檢視" msgid "Patch:" msgstr "補丁:" #, python-format msgid "Displaying %(count)d of %(total)d items" msgstr "顯示 %(count)d / %(total)d 項目" msgid "Select a GUI location to edit:" msgstr "選擇一個GUI工具列來編輯" msgid "Select the toolbar or menu to change" msgstr "選一個工具列或選單來改變" msgid "Tools shown on selected location" msgstr "顯示在工具列的項目" msgid "Delete from list" msgstr "從列表刪除" msgid "Add to list" msgstr "加入列表" msgid "Add separator" msgstr "新增分隔棒" msgid "List of all tools" msgstr "列出所有工具" msgid "New Tool ..." msgstr "新增工具 ..." msgid "Edit Tool ..." msgstr "編輯工具 ..." msgid "Delete Tool" msgstr "刪除工具" msgid "Type" msgstr "類型" msgid "Name" msgstr "名字" msgid "Command" msgstr "命令" msgid "New hook" msgstr "新掛勾" msgid "Edit hook" msgstr "編輯掛勾" msgid "Delete hook" msgstr "刪除掛勾" msgid "Replace existing hook?" msgstr "置換存在的掛勾?" #, python-format msgid "" "There is an existing %s.%s hook.\n" "\n" "Do you want to replace it?" msgstr "" "有一個存在的%s.%s掛勾.\n" "你要置換它嗎?" msgid "OK" msgstr "確定" msgid "Missing information" msgstr "遺失的資訊" msgid "All items" msgstr "所有項目" msgid "Working directory" msgstr "工作目錄" msgid "All revisions" msgstr "所有修訂版" msgid "All contexts" msgstr "所有內容" msgid "Fixed revisions" msgstr "" msgid "Applied patches" msgstr "打入補丁" msgid "Applied patches or qparent" msgstr "" msgid "" msgstr "<預設圖示>" msgid "Configure Custom Tool" msgstr "設定自訂工具" msgid "Tool name" msgstr "工具名字" msgid "The tool name. It cannot contain spaces." msgstr "工具名字不能有空白" #, python-brace-format msgid "" "The command that will be executed.\n" "To execute a Mercurial command use \"hg\" (rather than \"hg.exe\") as the " "executable command.\n" "You can use several {VARIABLES} to compose your command.\n" "Common variables:\n" "- {ROOT}: The path to the current repository root.\n" "- {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id " "hashes respectively formatted as a revset expression.\n" "- {SELECTEDFILES}: The list of files selected by the user on the revision " "details file list.\n" "- {FILES}: The list of files touched by the selected revisions.\n" "- {ALLFILES}: All the files tracked by Mercurial on the selected revisions.\n" "Pair selection variables:\n" "- {REV_A} / {REVID_A}: the first selected revision number / hexadecimal " "revision id hash respectively.\n" "- {REV_B} / {REVID_B}: the second selected revision number / hexadecimal " "revision id hash respectively.\n" msgstr "" #, python-brace-format msgid "" "The directory where the command will be executed.\n" "If this is not set, the root of the current repository will be used " "instead.\n" "You can use the same {VARIABLES} as on the \"Command\" setting.\n" msgstr "" msgid "Tool label" msgstr "工具標籤" msgid "" "The tool label, which is what will be shown on the repowidget context menu.\n" "If no label is set, the tool name will be used as the tool label.\n" "If no tooltip is set, the label will be used as the tooltip as well." msgstr "" msgid "Tooltip" msgstr "工具提示" msgid "" "The tooltip that will be shown on the tool button.\n" "This is only shown when the tool button is shown on\n" "the workbench toolbar." msgstr "" msgid "Icon" msgstr "圖示" msgid "" "The tool icon.\n" "You can use any built-in TortoiseHg icon\n" "by setting this value to a valid TortoiseHg icon name\n" "(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n" "You can also set this value to the absolute path to\n" "any icon on your file system." msgstr "" msgid "On repowidget, show for" msgstr "" msgid "" "For which kinds of revisions the tool will be enabled\n" "It is only taken into account when the tool is shown on the\n" "selected revision context menu." msgstr "" msgid "Show Output Log" msgstr "顯示輸出紀錄" msgid "" "When enabled, automatically show the Output Log when the command is run.\n" "Default: False." msgstr "如果啟動這個選項,那麼當執行命令的時候自動顯示Output Log" msgid "You must set a tool name." msgstr "你必須設定一個工具名字" msgid "The tool name cannot have any spaces in it." msgstr "工具名字不能有任何空白" msgid "You must set a command to run." msgstr "你得要設定一個指令來執行" msgid "" "Run after a changegroup has been added via push, pull or unbundle. ID of the " "first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created in the local repository. ID of the " "newly created changeset is in $HG_NODE. Parent changeset IDs are in " "$HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run after a changeset has been pulled, pushed, or unbundled into the local " "repository. The ID of the newly arrived changeset is in $HG_NODE. " "URL that was source of changes came is in $HG_URL." msgstr "" msgid "" "Run after sending changes from local repository to another. ID of first " "changeset sent is in $HG_NODE. Source of operation is in " "$HG_SOURCE." msgstr "" msgid "" "Run before a changegroup is added via push, pull or unbundle. Exit status 0 " "allows the changegroup to proceed. Non-zero status will cause the push, pull " "or unbundle to fail. URL from which changes will come is in $HG_URL." msgstr "" msgid "" "Run before starting a local commit. Exit status 0 allows the commit to " "proceed. Non-zero status will cause the commit to fail. Parent changeset IDs " "are in $HG_PARENT1 and $HG_PARENT2." msgstr "" msgid "" "Run before listing pushkeys (like bookmarks) in the repository. Non-zero " "status will cause failure. The key namespace is in $HG_NAMESPACE." msgstr "" msgid "" "Run before collecting changes to send from the local repository to another. " "Non-zero status will cause failure. This lets you prevent pull over HTTP or " "SSH. Also prevents against local pull, push (outbound) or bundle commands, " "but not effective, since you can just copy files instead then. Source of " "operation is in $HG_SOURCE. If \"serve\", operation is happening on " "behalf of remote SSH or HTTP repository. If \"push\", \"pull\" or \"bundle" "\", operation is happening on behalf of repository on same system." msgstr "" msgid "" "Run before a pushkey (like a bookmark) is added to the repository. Non-zero " "status will cause the key to be rejected. The key namespace is in " "$HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) " "is in $HG_OLD, and the new value is in $HG_NEW." msgstr "" msgid "" "Run before creating a tag. Exit status 0 allows the tag to be created. Non-" "zero status will cause the tag to fail. ID of changeset to tag is in " "$HG_NODE. Name of tag is in $HG_TAG. Tag is local if " "$HG_LOCAL=1, in repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after a changegroup has been added via push, pull or unbundle, but " "before the transaction has been committed. Changegroup is visible to hook " "program. This lets you validate incoming changes before accepting them. " "Passed the ID of the first new changeset in $HG_NODE and last in " "$HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-" "zero status will cause the transaction to be rolled back and the push, pull " "or unbundle will fail. URL that was source of changes is in $HG_URL." msgstr "" msgid "" "Run after a changeset has been created but the transaction not yet " "committed. Changeset is visible to hook program. This lets you validate " "commit message and changes. Exit status 0 allows the commit to proceed. Non-" "zero status will cause the transaction to be rolled back. ID of changeset is " "in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and " "$HG_PARENT2." msgstr "" msgid "" "Run before updating the working directory. Exit status 0 allows the update " "to proceed. Non-zero status will prevent the update. Changeset ID of first " "new parent is in $HG_PARENT1. If merge, ID of second new parent is " "in $HG_PARENT2." msgstr "" msgid "" "Run after listing pushkeys (like bookmarks) in the repository. The key " "namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary " "containing the keys and values." msgstr "" msgid "" "Run after a pushkey (like a bookmark) is added to the repository. The key " "namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the " "old value (if any) is in $HG_OLD, and the new value is in " "$HG_NEW." msgstr "" msgid "" "Run after a tag is created. ID of tagged changeset is in $HG_NODE. " "Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in " "repository if $HG_LOCAL=0." msgstr "" msgid "" "Run after updating the working directory. Changeset ID of first new parent " "is in $HG_PARENT1. If merge, ID of second new parent is in " "$HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the " "update failed (e.g. because conflicts not resolved), $HG_ERROR=1." msgstr "" msgid "Configure Hook" msgstr "設置掛勾" msgid "Hook type" msgstr "掛勾類型" msgid "Select when your command will be run" msgstr "" msgid "The hook name. It cannot contain spaces." msgstr "掛勾名子不能包含空白" msgid "" "The command that will be executed.\n" "To execute a python function prepend the command with \"python:\".\n" msgstr "" msgid "You must set a valid hook type." msgstr "你必須設定一個有效的掛勾類型" msgid "The hook name cannot contain any spaces, tabs or '=' characters." msgstr "掛勾名子不能包含任何空白,Tab 或'='符號" msgid "Console" msgstr "" msgid "File &History / Annotate" msgstr "檔案歷史(&H)/標註" msgid "Show the history of the selected file" msgstr "顯示選擇檔案的歷史" msgid "Co&mpare File Revisions" msgstr "比較檔案修訂版" msgid "Compare revisions of the selected file" msgstr "比對選擇的檔案的修訂版" msgid "Filter Histor&y" msgstr "過濾器歷史(&y)" msgid "Query about changesets affecting the selected files" msgstr "" msgid "Diff &Changeset to Parent" msgstr "" msgid "Diff Changeset to Loc&al" msgstr "" msgid "&Diff to Parent" msgstr "跟母系做差異比對(&D)" msgid "Diff to &Local" msgstr "跟本地做差異比對" msgid "View changes to current in external diff tool" msgstr "" msgid "&View at Revision" msgstr "在修訂版中檢視(&V)" msgid "View file as it appeared at this revision" msgstr "" msgid "&Save at Revision..." msgstr "在修訂版中儲存(&S)" msgid "Save file as it appeared at this revision" msgstr "" msgid "Save file to" msgstr "儲存檔案至" msgid "&Edit Local" msgstr "編輯本地(&E)" msgid "&Open Local" msgstr "開啟本地(&O)" msgid "E&xplore Local" msgstr "瀏覽本地(&x)" msgid "Open parent folder of current file in the system file manager" msgstr "用系統的檔案管理員開啟目前檔案所在的目錄" msgid "&Copy Patch" msgstr "複製補丁(&C)" msgid "Copy &Path" msgstr "複製路徑(&P)" msgid "Copy full path of file(s) to the clipboard" msgstr "複製檔案絕對路徑到剪貼簿" msgid "&Revert to Revision..." msgstr "復原到修訂版(&R)..." msgid "Open S&ubrepository" msgstr "開啟子儲存庫(&u)" msgid "Open the selected subrepository" msgstr "開啟選擇的子儲存庫" msgid "E&xplore Folder" msgstr "瀏覽資料夾(&x)" msgid "Open the selected folder in the system file manager" msgstr "在系統檔案管理員開啟選擇的目錄" msgid "Open &Terminal" msgstr "開啟終端機(&T)" msgid "Open a shell terminal in the selected folder" msgstr "在選擇的目錄開啟終端機" msgid "Custom Tools" msgstr "自訂工具" msgid "Diff &Local" msgstr "" msgid "&View Missing" msgstr "檢視遺失的檔案(&V)" msgid "View O&ther" msgstr "" msgid "Add &Largefiles..." msgstr "增加大檔案(&L)..." msgid "&Forget" msgstr "忘記(&F)" msgid "&Delete Unversioned..." msgstr "刪除沒有受版本控管的檔案(&D)..." msgid "Confirm Delete Unversioned" msgstr "確認刪除沒有受版本控管的檔案" msgid "Delete the following unversioned files?" msgstr "刪除下列未受版本控管的檔案嗎?" msgid "&Delete" msgstr "刪除(&D)" msgid "Re&move Versioned" msgstr "移除受版本控管的檔案(&m)" msgid "&Revert..." msgstr "復原(&R)..." msgid "Uncommited merge - please select a parent revision" msgstr "未提交的合併 - 請選擇一個母系修訂版" msgid "Revert files to local or other parent?" msgstr "復原檔案到本地工作複本或其他的母系?" msgid "&Local" msgstr "本地(&L)" msgid "&Other" msgstr "其它(&O)" msgid "Confirm Revert" msgstr "確認復原" msgid "Revert local file changes?" msgstr "復原本地工作複本的檔案變更?" msgid "&Revert with backup" msgstr "&復原並且備份" msgid "&Discard changes" msgstr "放棄變更(&D)" msgid "Revert the following files?" msgstr "復原下列檔案?" msgid "&Revert" msgstr "復原(&R)" msgid "&Copy..." msgstr "複製(&C)..." msgid "Re&name..." msgstr "重新命名(&n)..." msgid "&Ignore..." msgstr "忽略(&I)" msgid "Edit Re&jects" msgstr "" msgid "Manually resolve rejected patch chunks" msgstr "" msgid "De&tect Renames..." msgstr "偵測更名(&t)" msgid "&Mark Resolved" msgstr "標示為已解決(&M)" msgid "&Mark Unresolved" msgstr "標示為未解決(&M)" msgid "Restart Mer&ge" msgstr "重新開始合併(&g)" msgid "Was renamed from" msgstr "" msgid "Restart Merge &with" msgstr "重新開始合併與(&w)" msgid "Display the file anyway" msgstr "" msgid "Diff not displayed: " msgstr "差異沒有被顯示: " #, python-format msgid "" "File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" "檔案比描述的最大大小還要大\n" "maxdiff= %s KB" msgid "File is binary" msgstr "是二進位檔" msgid "File may be binary (maximum line length exceeded)" msgstr "檔案可能是二進位檔(maximum line length exceeded)" msgid "File or diffs not displayed: " msgstr "檔案或差異不被顯示: " msgid " (was added)" msgstr " (已被新增)" #, python-format msgid " (copied from %s)" msgstr " (從%s複製)" #, python-format msgid " (renamed from %s)" msgstr " (已從%s更名)" msgid " (is a symlink)" msgstr " (是一個符號連結)" #, python-format msgid "" "File or diffs not displayed: File is larger than the specified max size.\n" "maxdiff = %s KB" msgstr "" "檔案或差異沒有被顯示: 檔案比描述的最大大小還要大\n" "maxdiff= %s KB" msgid " (was deleted)" msgstr " (已被刪除了)" msgid " (was added, now missing)" msgstr " (已被新增,現在遺失了)" msgid " (is unversioned)" msgstr " (不受版本控管)" msgid "exec mode has been set" msgstr "執行模式已被設定" msgid "exec mode has been unset" msgstr "執行模式已被取消" #, python-format msgid "changeset: %s" msgstr "變更集: %s" msgid "Initial revision" msgstr "初始化修訂版" #, python-format msgid "" "[WARNING] Invalid subrepo revision ID:\n" "\t%s\n" "\n" msgstr "" "[WARNING] 無效的子儲存庫版本 ID:\n" "\t%s\n" "\n" msgid "Subrepo created and set to initial revision." msgstr "子儲存庫建立了而且設定成初始修訂版" msgid "Subrepo initialized to revision:" msgstr "子儲存庫初始畫到修訂版:" msgid "Subrepo removed from repository." msgstr "從儲存庫裡移除子儲存庫" msgid "Previously the subrepository was at the following revision:" msgstr "" msgid "Subrepo was not changed." msgstr "子儲存庫沒有改變." msgid "[WARNING] Missing subrepo. Update to this revision to clone it." msgstr "" msgid "[WARNING] Incomplete subrepo. Update to this revision to pull it." msgstr "" msgid "Subrepo state is:" msgstr "子儲存庫狀態是:" msgid "Revision has changed to:" msgstr "修訂版已被變更到:" #, python-format msgid "changeset: %s (not found on subrepository)" msgstr "變更集:%s (在子儲存庫裡找不到)" msgid "From:" msgstr "寄件者:" msgid "" "[WARNING] Missing changed subrepository. Update to this revision to clone it." msgstr "" msgid "Subrepository not found in the working directory." msgstr "在工作目錄裡找不到子儲存庫" msgid "" "[WARNING] Incomplete changed subrepository. Update to this revision to pull " "it." msgstr "" msgid "Not a Mercurial subrepo, not previewable" msgstr "不是一個Mercurial子儲存庫,不可預覽" #, python-format msgid "Error previewing subrepo: %s" msgstr "預覽子儲存庫錯誤:%s" msgid "Subrepo may be damaged or inaccessible." msgstr "子儲存庫損毀或不可存取" msgid "The subrepository is dirty." msgstr "子儲存庫是髒的" msgid "File Status:" msgstr "檔案狀態:" msgid "(is a changed sub-repository)" msgstr "(是一個改變過的子儲存庫)" msgid "(is an unchanged sub-repository)" msgstr "(是一個未改變的子儲存庫)" msgid "(is a dirty sub-repository)" msgstr "(是一個髒的子儲存庫)" msgid "(is a new sub-repository)" msgstr "(是一個新的子儲存庫)" msgid "(is a removed sub-repository)" msgstr "(是一個被移除的子儲存庫)" msgid "(is a changed and dirty sub-repository)" msgstr "(是一個修改過且髒的子儲存庫)" msgid "(is a new and dirty sub-repository)" msgstr "(是一個新的且髒的子儲存庫)" msgid "open..." msgstr "開啟..." #, python-format msgid "Hg file log viewer [%s] - %s" msgstr "Hg 檔案紀錄檢視器 [%s] - %s" msgid "File History Log Columns" msgstr "檔案歷史紀錄欄位" msgid "Back" msgstr "上一個" msgid "Forward" msgstr "下一個" msgid "Diff Selected &Changesets" msgstr "" msgid "&Diff Selected File Revisions" msgstr "" msgid "Show Revision &Details" msgstr "顯示修訂版詳細資訊(&D)" msgid "Too many rows selected for menu" msgstr "" msgid "File Differences Log Columns" msgstr "檔案差異紀錄欄位" msgid "Next diff" msgstr "下個差異" msgid "Previous diff" msgstr "上個差異" msgid "Unicode" msgstr "萬國碼" msgid "Western Europe" msgstr "西歐" msgid "Unified Chinese" msgstr "簡體中文" msgid "Traditional Chinese" msgstr "正體中文" msgid "Korean" msgstr "韓文" msgid "Japanese" msgstr "日文" msgid "Thai" msgstr "泰文" msgid "Central and Eastern Europe" msgstr "中歐與東歐" msgid "Cyrillic" msgstr "斯拉夫語系" msgid "Russian" msgstr "俄文" msgid "Ukrainian" msgstr "烏克蘭語" msgid "Greek" msgstr "希臘文" msgid "Turkish" msgstr "土耳其文" msgid "Arabic" msgstr "阿拉伯文" msgid "Hebrew" msgstr "希伯來文" msgid "Vietnamese" msgstr "越南文" msgid "Baltic" msgstr "波羅的海語系" msgid "Southern Europe" msgstr "南歐" msgid "Nordic" msgstr "北歐語系" msgid "Celtic" msgstr "塞爾特語" msgid "South-Eastern Europe" msgstr "東南歐語系" #. i18n: comma-separated list of common encoding names in your locale, e.g. #. "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. #. #. for the best guess, put structured encodings like "utf-8" in front, e.g. #. "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can #. decode arbitrary byte sequence and never fall back. #. #. pick from the following encodings: #. utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, #. iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, #. cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, #. cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, #. iso8859-10, iso8859-14, iso8859-16 msgid "$FILE_ENCODINGS" msgstr "" msgid "View change as unified diff output" msgstr "用統一的差異格式顯示變更" msgid "View change in context of file" msgstr "在檔案上下文檢視變更" msgid "Annotate with revision numbers" msgstr "加註修訂版號" msgid "Next Diff" msgstr "下個差異" msgid "Previous Diff" msgstr "上個差異" msgid "Open shelve tool" msgstr "開啟擱置工具" msgid "&Auto Detect" msgstr "自動偵測(&A)" msgid "Show changes from first parent" msgstr "從第一個母系開始顯示變更" msgid "Show changes from second parent" msgstr "從第二個母系開始顯示變更" msgid "E&ncoding" msgstr "編碼(&n)" msgid "&Search in Current File" msgstr "在目前的檔案裡面搜尋" msgid "Search in All &History" msgstr "在所有的歷史裡面搜尋" msgid "Go to Line" msgstr "移至行號" #, python-format msgid "Enter line number (1 - %d)" msgstr "輸入行號 (1 - %d)" msgid "Show &Author" msgstr "顯示作者(&A)" msgid "Show &Date" msgstr "顯示日期(&D)" msgid "Show &Revision" msgstr "顯示修訂版(&R)" msgid "Annotate Op&tions" msgstr "加註選項(&t)" msgid "Search Selected Text" msgstr "搜尋選擇的文字" msgid "In Current &File" msgstr "在目前的檔案(&F)" msgid "In &Current Revision" msgstr "在目前的修訂版(&C)" msgid "In &Original Revision" msgstr "在原本的修訂版(&O)" msgid "In All &History" msgstr "在所有歷史(&H)" msgid "Go to" msgstr "前去" msgid "View File at" msgstr "檢視檔案在" msgid "Diff File to" msgstr "" msgid "&Originating Revision" msgstr "原始修訂版(&O)" msgid "&Parent Revision" msgstr "母系修訂版(&P)" #, python-format msgid "&Parent Revision (%d)" msgstr "母系修訂版(%d)(&P)" msgid "&Mark Excluded Changes" msgstr "" msgid "(excluded from the next commit)" msgstr "" msgid "Interrupted graft operation found" msgstr "" msgid "" "An interrupted graft operation has been found.\n" "\n" "You cannot perform a different graft operation unless you abort the " "interrupted graft operation first." msgstr "" msgid "Continue or abort interrupted graft operation?" msgstr "" msgid "To graft destination" msgstr "" msgid "Use my user name instead of graft committer user name" msgstr "" msgid "Use current date" msgstr "使用目前日期" msgid "Append graft info to log message" msgstr "" msgid "Graft" msgstr "" msgid "Abort" msgstr "中止" #, python-format msgid "Graft - %s" msgstr "" msgid "Graft changeset" msgstr "" #, python-format msgid "Graft changeset #%d of %d" msgstr "" msgid "" "Before graft, you must commit, shelve to patch, or discard " "changes." msgstr "" msgid "You may continue or start the graft" msgstr "" msgid "Graft is complete" msgstr "" msgid "Graft failed" msgstr "" msgid "Graft aborted" msgstr "" msgid "" "Graft generated merge conflicts that must be resolved" msgstr "" msgid "You may continue the graft" msgstr "" msgid "Exiting with an unfinished graft is not recommended." msgstr "" msgid "Consider aborting the graft first." msgstr "" msgid "&Exit" msgstr "離開(&E)" msgid "### regular expression search pattern ###" msgstr "### 正規表示式搜尋樣式 ###" msgid "Regexp:" msgstr "正規表示式:" msgid "Ignore case" msgstr "忽略大小寫" msgid "Search" msgstr "搜尋" msgid "Working Copy" msgstr "工作副本" msgid "All History" msgstr "所有歷史" msgid "Report only the first match per file" msgstr "只回報每個檔案第一個符合的" msgid "Match whole words only" msgstr "" msgid "Follow copies and renames" msgstr "追蹤複製和更名" msgid "Includes:" msgstr "包括:" msgid "Excludes:" msgstr "排除:" msgid "" "Comma separated list of exclusion file patterns. Exclusion patterns are " "applied after inclusion patterns." msgstr "" msgid "" "Comma separated list of inclusion file patterns. By default, the entire " "repository is searched." msgstr "" #, python-format msgid "\"%s\" removed from search history" msgstr "\"%s\"從搜尋history移除了" #, python-format msgid "\"%s\" removed from path history" msgstr "\"%s\"從路徑history移除了" #, python-format msgid "grep: invalid match pattern: %s\n" msgstr "grep: 無效的符合樣式: %s\n" #, python-format msgid "grep: %s\n" msgstr "" #, python-format msgid "%d matches found" msgstr "找到%d個符合的" msgid "No matches found" msgstr "找不到符合的" msgid "Searching" msgstr "搜尋中..." msgid "history" msgstr "歷史" msgid "Interrupted" msgstr "已中斷" msgid "files" msgstr "檔案" #, python-format msgid "Skipping %s, unable to read" msgstr "正在略過 %s,因為不能讀取" msgid "Vi&ew File" msgstr "檢視檔案(&e)" msgid "&View Changeset" msgstr "檢視變更集(&V)" msgid "Annotate &File" msgstr "加註檔案(&F)" msgid "File" msgstr "檔案" msgid "Line" msgstr "行" msgid "Rev" msgstr "修訂" msgid "User" msgstr "使用者" msgid "Match Text" msgstr "符合文字" msgid "TortoiseHg Search" msgstr "TortoiseHg 搜尋" #, python-format msgid "Detect Copies/Renames in %s" msgstr "在%s 偵測複製/更名" msgid "Unrevisioned Files" msgstr "未加入版本追蹤的檔案" msgid "Refresh file list" msgstr "重新整理檔案列表" #, python-format msgid "Min Similarity: %d%%" msgstr "最小相似:%d%%" msgid "Only consider deleted files" msgstr "只考慮刪除過得檔案" msgid "Uncheck to consider all revisioned files for copy sources" msgstr "" msgid "Find Renames" msgstr "找尋更名" msgid "Find copy and/or rename sources" msgstr "找尋複製,和/或更名的來源" msgid "Candidate Matches" msgstr "符合的候選人" msgid "Accept All Matches" msgstr "接受所有的符合項目" msgid "Accept Selected Matches" msgstr "接受選擇的符合項目" msgid "Differences from Source to Dest" msgstr "從來源到目的地的差異" msgid "Search already in progress" msgstr "搜尋已經在進行" msgid "Cannot start a new search" msgstr "不能開始一個新的搜尋" msgid "No files to find" msgstr "找不到檔案" msgid "There are no files that may have been renamed" msgstr "沒有可能被更名過的檔案" msgid "Multiple sources chosen" msgstr "" #, python-format msgid "" "You have multiple renames selected for destination file:\n" "%s. Aborting!" msgstr "" #, python-format msgid "" "%s and %s have identical contents\n" "\n" msgstr "" "%s 和 %s 有相同的內容\n" "\n" #. i18n: percent format #, python-format msgid "%d%%" msgstr "" msgid "Source" msgstr "來源" msgid "Dest" msgstr "目的" msgid "% Match" msgstr "%符合" msgid "Sending Email" msgstr "傳送電子郵件中..." msgid "Email" msgstr "電子郵件" msgid "To:" msgstr "收件者:" msgid "Cc:" msgstr "副本:" msgid "In-Reply-To:" msgstr "回覆至:" msgid "Message identifier to reply to, for threading" msgstr "" msgid "Flag:" msgstr "旗標" msgid "" "Hg patches (as generated by export command) are compatible with most patch " "programs. They include a header which contains the most important changeset " "metadata." msgstr "" msgid "Send changesets as Hg patches" msgstr "用Hg補丁的方式傳送變更集" msgid "" "Git patches can describe binary files, copies, and permission changes, but " "recipients may not be able to use them if they are not using git or " "Mercurial." msgstr "" msgid "Use extended (git) patch format" msgstr "使用擴充的(git)補丁格式" msgid "" "Stripping Mercurial header removes username and parent information. Only " "useful if recipient is not using Mercurial (and does not like to see the " "headers)." msgstr "" "把Mercurial header 裡的使用者名稱跟母系資訊剝除掉.這是使用在收件人不是使用" "Mercurial(或是不想讓人看到)." msgid "Plain, do not prepend Hg header" msgstr "純的,沒有Hg標頭" msgid "" "Bundles store complete changesets in binary form. Upstream users can pull " "from them. This is the safest way to send changes to recipient Mercurial " "users." msgstr "" "包裹以二進位檔案型式儲存完整的變更集,上游使用者可以從此檔案拉收.這是一個把變" "更傳給他人最安全的辦法" msgid "Send single binary bundle, not patches" msgstr "傳送單一二進位包裹,而不是補丁" msgid "send patches as part of the email body" msgstr "將補丁作為電子郵件本文" msgid "body" msgstr "本文" msgid "send patches as attachments" msgstr "用附件傳送補丁" msgid "attach" msgstr "附件" msgid "send patches as inline attachments" msgstr "用行內附件傳送補丁" msgid "inline" msgstr "內嵌" msgid "add diffstat output to messages" msgstr "增加diffstat 的輸出到訊息中" msgid "diffstat" msgstr "" msgid "" "Patch series description is sent in initial summary email with [PATCH 0 of " "N] subject. It should describe the effects of the entire patch series. " "When emailing a bundle, these fields make up the message subject and body. " "Flags is a comma separated list of tags which are inserted into the message " "subject prefix." msgstr "" msgid "Write patch series (bundle) description" msgstr "" msgid "Subject:" msgstr "主題:" msgid "Changesets" msgstr "變更集" msgid "Select &All" msgstr "全選(&A)" msgid "Select &None" msgstr "全不選(&N)" msgid "Edit" msgstr "編輯" msgid "Preview" msgstr "預覽" msgid "&Settings" msgstr "設定(&S)" msgid "Send &Email" msgstr "傳送電子郵件(&E)" msgid "&Close" msgstr "關閉(&C)" #, python-format msgid "Ignore filter - %s" msgstr "忽略過濾器 - %s" msgid "Glob" msgstr "" msgid "Regexp" msgstr "正規表示" msgid "Add" msgstr "新增" msgid "Edit File" msgstr "編輯檔案" msgid "Ignore Filter" msgstr "忽略過濾器" msgid "Untracked Files" msgstr "未被追蹤的檔案" msgid "Backspace or Del to remove row(s)" msgstr "用 Backspace 鍵 或 Del 鍵 來移除行" msgid "Add ignore filter..." msgstr "新增忽略篩選器" msgid "selected files" msgstr "選擇的檔案" msgid "Ignore " msgstr "忽略 " msgid "Invalid glob expression" msgstr "錯誤的全域表達式" msgid "Invalid regexp expression" msgstr "無效的正規表示式" msgid "Unable to read repository status" msgstr "不能讀取儲存庫狀態" msgid "New file created" msgstr "新檔案被建立" msgid "" "TortoiseHg has created a new .hgignore file. Would you like to add this " "file to the source code control repository?" msgstr "TortoiseHg 建立了一個新的.hgignore 檔案,你要把他加到儲存庫嗎?" msgid "Unable to write .hgignore file" msgstr "不能寫入.hgignore檔案" msgid "Copy working directory files from skeleton" msgstr "" msgid "Create special files (.hgignore, ...)" msgstr "" msgid "Make repo compatible with Mercurial <1.7" msgstr "讓儲存庫相容於1.7版之前的Mercurial" msgid "New Repository" msgstr "新儲存庫" msgid "&Create" msgstr "" msgid "Unable to create a config file" msgstr "不能建立一個設定檔" msgid "Insufficient access rights." msgstr "存取權限不對" msgid "Show Log" msgstr "顯示紀錄" msgid "" "Some of the files that you have selected are of a size over 10 MB. You may " "make more efficient use of disk space by adding these files as largefiles, " "which will store only the most recent revision of each file in your local " "repository, with older revisions available on the server. Do you wish to " "add these files as largefiles?" msgstr "" msgid "Add as &Largefiles" msgstr "以大型檔案方式加入(&L)" msgid "Add as &Normal Files" msgstr "以一般檔案形式加入(&N)" msgid "Invalid Patterns" msgstr "" msgid "Failed to process largefiles.patterns." msgstr "" msgid "Word docs (*.doc *.docx)" msgstr "" msgid "PDF docs (*.pdf)" msgstr "" msgid "Excel files (*.xls *.xlsx)" msgstr "" #, python-format msgid "TortoiseHg Lock Tool - %s" msgstr "" msgid "Refresh lock information" msgstr "" msgid "Lock a file not described in .hglocks" msgstr "" msgid "Stop current operation" msgstr "停止目前的操作" msgid "Locked And Lockable Files:" msgstr "" msgid "Path" msgstr "路徑" msgid "Locking User" msgstr "" msgid "Purpose" msgstr "" msgid "Simplelock extension not enabled" msgstr "" msgid "Please enable and configure simplelock" msgstr "" msgid "Open a (nonmergable) file you wish to be locked" msgstr "" msgid "File was not within current repository" msgstr "" #, python-format msgid "Locking %s" msgstr "" #, python-format msgid "Unlocking %s" msgstr "" msgid "Refreshing locks..." msgstr "" #, python-format msgid "Lock of %s successful" msgstr "" #, python-format msgid "Lock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s failed, retry" msgstr "" #, python-format msgid "Unlock of %s successful" msgstr "" msgid "Ready, double click to lock or unlock" msgstr "" msgid "Ready" msgstr "" msgid "You can only release your own locks" msgstr "" msgid "Find revisions matching fields of:" msgstr "" msgid "Revision to Match:" msgstr "" msgid "Fields to match:" msgstr "" msgid "Summary (first description line)" msgstr "摘要(描述的第一行)" msgid "Description" msgstr "描述" msgid "Author" msgstr "作者" msgid "Date" msgstr "日期" msgid "Files" msgstr "檔案" msgid "Diff contents" msgstr "差異內容" msgid "Subrepo states" msgstr "" msgid "Branch" msgstr "分支" msgid "Phase" msgstr "" msgid "&Match" msgstr "符合(&M)" #, python-format msgid "Find matches - %s" msgstr "找出符合 - %s" msgid "Revisions to Match:" msgstr "" #, python-format msgid "Match any of %d revisions" msgstr "" msgid "Unknown revision!" msgstr "未知的修訂版!" msgid "Parse Error!" msgstr "剖析錯誤!" #, python-format msgid "Merge - %s" msgstr "合併 - %s" msgid "Do you want to exit?" msgstr "你想離開嗎?" msgid "" "To finish merging, you must commit the working directory.\n" "\n" "To cancel the merge you can update to one of the merge parent revisions." msgstr "" "要完成合併,你必須提交工作目錄.\n" "\n" "要取消合併,你可以更新至其中一個母系修訂版." msgid "Prepare to merge" msgstr "準備合併" msgid "Verify merge targets and ensure your working directory is clean." msgstr "驗證合併的目標並確保你的工作目錄是乾淨的." msgid "Not a head revision!" msgstr "不是一個標頭修訂版(head revision)!" msgid "Merge from (other revision)" msgstr "合併從(其他修訂版)" msgid "Merge to (working directory)" msgstr "合併到(工作目錄)" msgid "" "The working directory is already merged. Continue or discard existing " "merge." msgstr "" "工作目錄已經被合併. 繼續放棄 existing merge." msgid "" "Before merging, you must commit, shelve to patch, or discard changes." msgstr "" "開始合併之前,你必須提交, " "擱置到補丁,或放棄變更" msgid "Or use:" msgstr "Or 使用:" msgid "Force a merge with outstanding changes (-f/--force)" msgstr "" msgid "Discard all changes from the other revision" msgstr "" msgid "&Discard" msgstr "丟棄(&D)" msgid "Confirm Discard Changes" msgstr "確認放棄變更" #, python-format msgid "" "The changes from revision %s and all unmerged parents will be discarded.\n" "\n" "Are you sure this is what you want to do?" msgstr "" "%s 修訂版的變更以及沒有合併的全部母系都將被移除掉\n" "\n" "你確定你要這樣做?" msgctxt "working dir state" msgid "Clean" msgstr "乾淨的" msgid "Merging..." msgstr "合併中..." msgid "Automatically advance to next page when merge is complete." msgstr "合併完成時自動到下一頁" #, python-format msgid "" "%d files were modified on both branches and must be resolved" msgstr "%d個檔案在兩個分支都被改過,得要解決衝突" msgid "" "No merge conflicts, ready to commit or review" msgstr "沒有合併衝突,準備提交或預覽" msgid "Commit merge results" msgstr "提交合併結果" msgid "Commit Options" msgstr "提交選項" msgid "Commit Now" msgstr "馬上提交" msgid "Commit Later" msgstr "稍候提交" msgid "Merge changeset" msgstr "合併變更集" msgid "Syntax Highlighting" msgstr "語法高亮度顯示" msgid "Paste &Filenames" msgstr "貼上檔名(&F)" msgid "App&ly Format" msgstr "套用格式(&l)" msgid "C&onfigure Format" msgstr "配置格式(&C)" #, python-format msgid "%s had rejected chunks, edit patched file together with rejects?" msgstr "" msgid "&Commit to Queue..." msgstr "" msgid "Create &New Queue..." msgstr "" msgid "&Rename Active Queue..." msgstr "" msgid "&Delete Queue..." msgstr "" msgid "&Purge Queue..." msgstr "" msgid "Create Patch Queue" msgstr "建立補丁序列" msgid "New patch queue name" msgstr "新的補丁佇列名字" msgid "Create" msgstr "建立" msgid "Rename Patch Queue" msgstr "重新命名補丁佇列" #, python-format msgid "Rename patch queue '%s' to" msgstr "重新命名'%s'補丁佇列成" msgid "Rename" msgstr "更名" msgid "Delete Patch Queue" msgstr "刪除補丁序列" msgid "Delete reference to" msgstr "" msgid "Delete" msgstr "刪除" msgid "Purge Patch Queue" msgstr "徹底清除補丁佇列" msgid "Remove patch directory of" msgstr "" msgid "Purge" msgstr "徹底清除" msgid "Rename Patch" msgstr "" #, python-format msgid "Rename patch %s to:" msgstr "重新命名補丁 %s成" msgid "no guards" msgstr "" msgid "Patch Queue" msgstr "補丁序列" msgctxt "MQ QPush" msgid "Push" msgstr "推入" msgid "Apply one patch" msgstr "套用一個補丁" msgctxt "MQ QPush" msgid "Push all" msgstr "全部推入" msgid "Apply all patches" msgstr "套用所有補丁" msgid "Pop" msgstr "拉出" msgid "Unapply one patch" msgstr "反套用一個補丁" msgid "Pop all" msgstr "全部拉出" msgid "Unapply all patches" msgstr "反套用所有的補丁" msgid "Go &to Patch" msgstr "" msgid "&Apply Only This Patch" msgstr "" msgid "Apply only the selected patch" msgstr "" msgid "&Finish Patch" msgstr "完成補丁(&F)" msgid "Move applied patches into repository history" msgstr "" msgid "&Delete Patches..." msgstr "刪除補丁(&D)..." msgid "Delete selected patches" msgstr "刪除選擇的補丁" msgid "Re&name Patch..." msgstr "重新命名補丁(&n)" msgid "Set &Guards..." msgstr "" msgid "Configure guards for selected patch" msgstr "" msgid "Patch Queue Actions Toolbar" msgstr "" msgid "Configure guards" msgstr "" #, python-format msgid "Input new guards for %s:" msgstr "" msgid "Confirm patch queue switch" msgstr "確認切換補丁佇列" #, python-format msgid "Do you really want to activate patch queue '%s' ?" msgstr "你真的想啟動'%s'補丁佇列嗎?" #, python-format msgid "Guards: %d/%d" msgstr "" msgid "MQ options" msgstr "MQ選項" msgid "Force push or pop (--force)" msgstr "強制推入或拉出(--force)" msgid "Tolerate non-conflicting local changes (--keep-changes)" msgstr "" #, python-format msgid "Pending Perforce Changelists - %s" msgstr "" msgid "Submitting p4 changelist..." msgstr "" msgid "Reverting p4 changelist..." msgstr "復原p4 變更列表中..." msgid "Patch Branch Toolbar" msgstr "補丁分支工具列" msgid "Merge all pending dependencies" msgstr "" msgid "Backout current patch branch" msgstr "" msgid "Backport part of a changeset to a dependency" msgstr "" msgid "Start a new patch branch" msgstr "開始一個新的補丁分支" msgid "Edit patch dependency graph" msgstr "編輯補丁相依圖" msgid "will be closed" msgstr "將被關閉" #, python-format msgid "needs merge of %i heads\n" msgstr "" #, python-format msgid "needs merge with %s (through %s)\n" msgstr "" #, python-format msgid "needs merge with %s\n" msgstr "需要和%s合併\n" #, python-format msgid "needs update of diff base to tip of %s\n" msgstr "" msgid "&Goto (update workdir)" msgstr "前往(更新工作目錄)(&G)" msgid "&Merge" msgstr "合併(&M)" msgid "No patch branch selected" msgstr "沒有選擇補丁分支" msgid "No editor found" msgstr "找不到文字編輯器" msgid "" "Mercurial was unable to find an editor. Please configure Mercurial to use an " "editor installed on your system." msgstr "" "Mercurial找不到一個文字編輯器,請設定Mercurial去使用一個安裝在你系統上的編輯器" msgid "Graph" msgstr "分支圖" msgid "Status" msgstr "狀態" msgid "Title" msgstr "" msgid "Message" msgstr "訊息" msgid "New Patch Branch" msgstr "新補丁分支" msgid "Patch message:" msgstr "補丁訊息:" msgid "Patch date:" msgstr "補丁日期:" msgid "Patch user:" msgstr "補丁使用者:" msgid "Posting Review" msgstr "" msgid "Phabricator" msgstr "" msgid "Reviewers" msgstr "" msgid "Available" msgstr "" msgid "Fetch the reviewer list from the server" msgstr "" msgid "Rescan" msgstr "" msgid "Filter the available reviewers" msgstr "" msgid "Reviewer Filter" msgstr "" msgid "Reviewers available on the server" msgstr "" msgid "Chose the selected available reviewers" msgstr "" msgid ">" msgstr "" msgid "Remove the selected reviewers" msgstr "" msgid "<" msgstr "" msgid "Selected" msgstr "" msgid "These users will be notified of the review" msgstr "" msgid "Post &Review" msgstr "" msgid "Invalid Settings - The ReviewBoard server is not setup" msgstr "無效的設定 - The ReviewBoard server 沒有設定" msgid "Invalid Settings - Please provide your ReviewBoard username" msgstr "無效的設定 - 請給予你的ReviewBoard使用者名字" #, python-format msgid "" "Invalid reviewboard plugin. Please download the Mercurial reviewboard plugin " "version 3.5 or higher from the website below.\n" "\n" " %s" msgstr "" msgid "Review Board" msgstr "" msgid "Password:" msgstr "密碼:" msgid "Error" msgstr "錯誤" #, python-format msgid "Review draft posted to %s\n" msgstr "" #, python-format msgid "Review published to %s\n" msgstr "" msgid "Success" msgstr "成功" msgid "Repository ID:" msgstr "儲存庫ID:" msgid "Post Review" msgstr "" msgid "Review ID:" msgstr "預覽 ID:" msgid "Update the fields of this existing request" msgstr "" msgid "Update Review" msgstr "更新預覽" msgid "Create diff with all outgoing changes" msgstr "用可被推送的變更集建立diff" msgid "Create diff with all changes on this branch" msgstr "" msgid "Publish request immediately" msgstr "" msgid "%p%" msgstr "" msgid "Connecting to Review Board..." msgstr "連線到Review Board..." msgid "Target:" msgstr "目標:" msgid "Do not modify working copy (-k/--keep)" msgstr "" #, python-format msgid "Prune - %s" msgstr "" msgid "&Prune" msgstr "" msgid "No unknown files found" msgstr "找不到未知的檔案" msgid "No ignored files found" msgstr "找不到忽略的檔案" msgid "No trash files found" msgstr "找不到垃圾檔案" msgid "Delete empty folders" msgstr "刪除空的目錄" msgid "Preserve files beginning with .hg" msgstr "" #, python-format msgid "%s - purge" msgstr "%s - 徹底清除" msgid "Checking" msgstr "檢查中" msgid "Ready to purge." msgstr "準備做徹底清除" #, python-format msgid "Delete %d unknown file" msgid_plural "Delete %d unknown files" msgstr[0] "刪除 %d 個未知的檔案" #, python-format msgid "Delete %d ignored file" msgid_plural "Delete %d ignored files" msgstr[0] "刪除 %d 個忽略的檔案" #, python-format msgid "Delete %d file in .hg/Trashcan" msgid_plural "Delete %d files in .hg/Trashcan" msgstr[0] "在.hg/Trashcan 刪除 %d個檔案" msgid "Confirm file deletions" msgstr "確認檔案刪除" msgid "Are you sure you want to delete these files and/or folders?" msgstr "你真的確定想刪除這些檔案(跟目錄)?" msgid "Deletion failures" msgstr "刪除失敗" #, python-format msgid "Unable to delete %d file or folder" msgid_plural "Unable to delete %d files or folders" msgstr[0] "" msgstr[1] "" msgid "Deleting trash folder..." msgstr "刪除垃圾目錄中..." #, python-format msgid "Deleted %d files" msgstr "已刪除 %d個檔案" #, python-format msgid "Deleted %d files and %d folders" msgstr "已刪除%d個檔案和%d個目錄" msgid "Delete Patches" msgstr "" msgid "Remove patches from queue?" msgstr "從佇列移除補丁嗎?" msgid "Keep patch files" msgstr "保留補丁檔" #, python-format msgid "Patch fold - %s" msgstr "合併補丁 - %s" msgid "New patch message:" msgstr "新的補丁訊息:" msgid "Patches to fold" msgstr "將合併的補丁" msgid "&Undo" msgstr "" msgid "&Redo" msgstr "" msgid "Cu&t" msgstr "" msgid "&Copy" msgstr "複製(&C)" msgid "&Paste" msgstr "" msgid "&Editor Options" msgstr "編輯器選項(&E)" msgid "&Wrap" msgstr "自動斷行(&W)" msgctxt "wrap mode" msgid "&None" msgstr "無(&N)" msgid "&Word" msgstr "單字(&W)" msgid "&Character" msgstr "字元(&C)" msgid "White&space" msgstr "空白字元(&s)" msgid "&Visible" msgstr "顯示(V)" msgid "&Invisible" msgstr "隱藏(&I)" msgid "&AfterIndent" msgstr "在縮排之後(&A)" msgid "&TAB Inserts" msgstr "插入TAB(&T)" msgid "&Auto" msgstr "自動(&A)" msgid "&TAB" msgstr "" msgid "&Spaces" msgstr "空格(&S)" msgid "EOL &Visibility" msgstr "顯示換行字元(&V)" msgid "EOL &Mode" msgstr "換行字元模式(&M)" msgid "&Windows" msgstr "" msgid "&Unix" msgstr "" msgid "&Mac" msgstr "" msgid "&Auto-Complete" msgstr "自動完成(&A)" msgid "### regular expression ###" msgstr "### 正規表示式 ###" msgid "Regular expression search pattern" msgstr "正規表示式查詢樣式" msgid "Wrap search" msgstr "包裝 (wrap) 搜尋" msgid "Prev" msgstr "上一個" msgid "Next" msgstr "下一個" msgid "Unable to read file" msgstr "" msgid "Could not open the specified file for reading." msgstr "" msgid "This appears to be a binary file." msgstr "" msgid "An error occurred while reading the file." msgstr "" msgid "Text Translation Failure" msgstr "" msgid "Could not translate the file content from native encoding." msgstr "" msgid "Several characters would be lost." msgstr "" msgid "Unable to write file" msgstr "" msgid "Could not translate the file content to native encoding." msgstr "" msgid "Could not open the specified file for writing." msgstr "" msgid "An error occurred while writing the file." msgstr "" msgid "Try refreshing your repository." msgstr "試著重新整理您的儲存庫" #, python-format msgid "" "Error string \"%(arg0)s\" at %(arg1)s
                                                                                                          Please edit your config" msgstr "" #, python-format msgid "" "Configuration Error: \"%(arg0)s\",
                                                                                                          Please fix your config" msgstr "" #, python-format msgid "Operation aborted:

                                                                                                          %(arg0)s." msgstr "" msgid "Repository is locked" msgstr "儲存庫被鎖住" msgid "hint:" msgstr "" msgid "Repository Error" msgstr "儲存庫錯誤" msgid "No visual editor configured" msgstr "沒有視覺化編輯器的配置" msgid "Please configure a visual editor." msgstr "請配置一個視覺化編輯器" msgid "Editor launch failure" msgstr "啟動編輯器失敗" msgid "Failed to open path in terminal" msgstr "不能在終端機中開啟此路徑" #, python-format msgid "\"%s\" is not a valid directory" msgstr "%s 不是一個有效的目錄" #, python-format msgid "Invalid configuration: %s" msgstr "" msgid "Unable to start the following command:" msgstr "無法開始下列命令:" msgid "No shell configured" msgstr "沒有配置命令列程式" msgid "A terminal shell must be configured" msgstr "必須要配置一個命令列終端機程式" msgid "Please enter a username" msgstr "請輸入一個使用者名字" msgid "You must identify yourself to Mercurial" msgstr "你得跟mercurial 說你是誰" msgid "Unable to translate input to local encoding." msgstr "" msgid "Checkmark files to add" msgstr "" msgid "Checkmark files to forget" msgstr "" msgid "Forget" msgstr "忘記" msgid "Checkmark files to revert" msgstr "" msgid "Revert" msgstr "復原" msgid "Checkmark files to remove" msgstr "" msgid "Remove" msgstr "移除" #, python-format msgid "%s - hg %s" msgstr "" msgid "Do not save backup files (*.orig)" msgstr "不能儲存備份檔(*.orig)" msgid "Force removal of modified files (--force)" msgstr "" msgid "Add &Largefiles" msgstr "增加大型檔案(&L)" msgid "No files selected" msgstr "沒有選擇檔案" msgid "No operation to perform" msgstr "" msgid "" "You have selected one or more files that have been modified. By default, " "these files will not be removed. What would you like to do?" msgstr "" msgid "Remove &Unmodified Files" msgstr "移除未修改的檔案(&U)" msgid "Remove &All Selected Files" msgstr "移除所有選擇的檔案(&A)" msgid "Rebase changeset and descendants" msgstr "Rebase 變更集與其衍生" msgid "To rebase destination" msgstr "" msgid "Swap source and destination" msgstr "來源跟目的交換" msgid "Keep original changesets (--keep)" msgstr "" msgid "Keep original branch names (--keepbranches)" msgstr "" msgid "Collapse the rebased changesets (--collapse)" msgstr "" msgid "Rebase entire source branch (-b/--base)" msgstr "" msgid "Rebase unpublished onto Subversion head (override source, destination)" msgstr "" msgid "Rebase" msgstr "" #, python-format msgid "Rebase - %s" msgstr "" msgid "" "Before rebase, you must
                                                                                                          commit, shelve to patch, or discard changes." msgstr "" msgid "You may continue the rebase" msgstr "你可能會繼續rebase" msgid "Rebase is complete" msgstr "rebase 完成了" msgid "Rebase failed" msgstr "rebase失敗" msgid "Rebase aborted" msgstr "rebase中止" msgid "" "Rebase generated merge conflicts that must be resolved" msgstr "" msgid "Exiting with an unfinished rebase is not recommended." msgstr "不建議離開一個未完成的rebase作業" msgid "Consider aborting the rebase first." msgstr "" #, python-format msgid "Merge rejected patch chunks into %s" msgstr "" msgid "Mark this chunk as resolved, goto next unresolved" msgstr "把這個區塊標誌成'已解決',前往下個未解決的" msgid "Mark this chunk as unresolved" msgstr "把這個區塊標誌成未解決" msgid "Reload File" msgstr "" msgid "Are you sure you want to reload this file?" msgstr "" msgid "All unsaved changes will be lost." msgstr "" msgid "Warning" msgstr "警告" msgid "" "You have marked all rejected patch chunks as resolved yet you have not " "modified the file on the edit panel.\n" "\n" "This probably means that no code from any of the rejected patch chunks made " "it into the file.\n" "\n" "Are you sure that you want to leave the file as is and consider all the " "rejected patch chunks as resolved?\n" "\n" "Doing so may delete them from a shelve, for example, which would mean that " "you would lose them forever!\n" "\n" "Click Yes to accept the file as is or No to continue resolving the rejected " "patch chunks." msgstr "" msgid "Copy source -> destination" msgstr "複製來源 -> 目的地" msgid "Copy Error" msgstr "複製錯誤" msgid "Rename Error" msgstr "重新命名錯誤" msgid "Select Source File" msgstr "選擇來源檔" msgid "Select Source Folder" msgstr "選擇來源目錄" msgid "Source does not exist." msgstr "" msgid "The source must be within the repository tree." msgstr "來源必須在儲存庫樹裡面" msgid "The destination must be within the repository tree." msgstr "目的必須在儲存庫樹裡面" msgid "Destination file already exists." msgstr "目的地檔案已經存在" msgid "Are you sure you want to overwrite it ?" msgstr "你想去覆寫它嗎" #, python-format msgid "Copy - %s" msgstr "複製 - %s" #, python-format msgid "Rename - %s" msgstr "重新命名 - %s" msgid "Show all" msgstr "顯示全部" msgid "### revision set query ###" msgstr "### 修訂版查詢 ###" msgid "Clear current query and query text" msgstr "清除目前的查詢跟查詢文字" msgid "Trigger revision set query" msgstr "" msgid "Open advanced query editor" msgstr "開啟進階查詢編輯器" msgid "Delete selected query from history" msgstr "把選擇的查詢從歷史裡刪掉" msgid "filter" msgstr "過濾器" msgid "Toggle filtering of non-matched changesets" msgstr "" msgid "Show/Hide hidden changesets" msgstr "顯示/隱藏被隱藏的變更集" msgid "Toggle graft relations visibility" msgstr "" msgid "Keyword Search" msgstr "關鍵字搜尋" msgid "Revision Set" msgstr "" msgid "(unsaved)" msgstr "" msgid "Display graph the named branch only" msgstr "只顯示命名的分支圖" msgid "Display only active branches" msgstr "只顯示活動的分支" msgid "Display closed branches" msgstr "顯示已關閉的分支" msgid "Include all ancestors" msgstr "包括所有的祖先" msgctxt "column header" msgid "Graph" msgstr "分支圖" msgctxt "column header" msgid "Rev" msgstr "" msgctxt "column header" msgid "Branch" msgstr "分支" msgctxt "column header" msgid "Description" msgstr "描述:" msgctxt "column header" msgid "Author" msgstr "作者" msgctxt "column header" msgid "Tags" msgstr "標籤" msgctxt "column header" msgid "Latest tags" msgstr "最新的標籤" msgctxt "column header" msgid "Node" msgstr "節點" msgctxt "column header" msgid "Git Commit" msgstr "" msgctxt "column header" msgid "Age" msgstr "經歷時間" msgctxt "column header" msgid "Local Time" msgstr "本地時間" msgctxt "column header" msgid "UTC Time" msgstr "UTC時間" msgctxt "column header" msgid "Changes" msgstr "變更" msgctxt "column header" msgid "Converted From" msgstr "" msgctxt "column header" msgid "Phase" msgstr "階段" msgctxt "column header" msgid "Filename" msgstr "檔名" msgid "Searching..." msgstr "搜尋中..." #, python-format msgid "filling (%d)" msgstr "" msgid "Mercurial User" msgstr "Mercurial 使用者" msgid "Repository Registry" msgstr "儲存庫登錄" msgid "Show &Paths" msgstr "顯示路徑(&P)" msgid "Show S&hort Paths" msgstr "顯示短路徑(&h)" msgid "&Scan Repositories at Startup" msgstr "啟動時掃描儲存庫(&S)" msgid "Scan &Remote Repositories" msgstr "掃描遠端儲存庫(&R)" msgid "&Refresh Repository List" msgstr "重新整理儲存庫列表(&R)" msgid "Refresh the Repository Registry list" msgstr "重新整理儲存庫登錄列表" msgid "&Open" msgstr "開啟(&O)" msgid "Open the repository in a new tab" msgstr "用新分頁開啟儲存庫" msgid "&Open All" msgstr "開啟全部(&O)" msgid "Open all repositories in new tabs" msgstr "在新分頁開啟所有儲存庫" msgid "New &Group" msgstr "新的群組(&G)" msgid "Create a new group" msgstr "建立新群組" msgid "Rename the entry" msgstr "" msgid "Settin&gs" msgstr "設定(&g)" msgid "View the repository's settings" msgstr "檢視儲存庫的設定" msgid "Re&move from Registry" msgstr "從儲存庫登錄中移除(&m)" msgid "" "Remove the node and all its subnodes. Repositories are not deleted from disk." msgstr "刪除此節點與其子節點,儲存庫並不會從磁碟中刪除" msgid "Clon&e..." msgstr "拓製(&e)" msgid "Clone Repository" msgstr "拓製儲存庫" msgid "E&xplore" msgstr "瀏覽(&x)" msgid "Open the repository in a file browser" msgstr "在檔案瀏覽器開啟儲存庫" msgid "&Terminal" msgstr "終端機(&T)" msgid "Open a shell terminal in the repository root" msgstr "在儲存庫的根目錄啟動終端機" msgid "&Add Repository..." msgstr "增加儲存庫(&A)" msgid "Add a repository to this group" msgstr "新增儲存庫到這個群組" msgid "A&dd Subrepository..." msgstr "新增子儲存庫(&d)" msgid "Convert an existing repository into a subrepository" msgstr "轉換一個存在的儲存庫成為子儲存庫" msgid "Remo&ve Subrepository..." msgstr "移除子儲存庫(&v) ..." msgid "Remove this subrepository from the current revision" msgstr "從目前的修訂版移除子儲存庫" msgid "Copy the root path of the repository to the clipboard" msgstr "複製儲存庫的根路徑到剪貼簿" msgid "Sort by &Name" msgstr "依名字排序" msgid "Sort the group by short name" msgstr "" msgid "Sort by &Path" msgstr "依路徑排序" msgid "Sort the group by full path" msgstr "用完整路徑去排序群組" msgid "&Sort by .hgsub" msgstr "依.hgsub排序" msgid "Order the subrepos as in .hgsub" msgstr "" msgid "Select repository directory to add" msgstr "選擇要加入的儲存庫目錄" msgid "Select an existing repository to add as a subrepo" msgstr "" msgid "Cannot add subrepository" msgstr "不能增加子儲存庫" #, python-format msgid "%s is not a valid repository" msgstr "%s 不是一個有效的儲存庫" #, python-format msgid "\"%s\" is not a folder" msgstr "\"%s\" 不是一個資料夾" msgid "A repository cannot be added as a subrepo of itself" msgstr "" #, python-format msgid "" "The selected folder:

                                                                                                          %s

                                                                                                          is not inside the target repository." "

                                                                                                          This may be allowed but is greatly discouraged.
                                                                                                          If you want to " "add a non trivial subrepository mapping you must manually edit the ." "hgsub file" msgstr "" msgid "Cannot open repository" msgstr "不能開啟儲存庫" #, python-format msgid "The selected repository:

                                                                                                          %s

                                                                                                          cannot be open!" msgstr "

                                                                                                          %s

                                                                                                          儲存庫不能被開啟!" msgid "Subrepository already exists" msgstr "子儲存庫已經存在" #, python-format msgid "" "The selected repository:

                                                                                                          %s

                                                                                                          is already a subrepository of:" "

                                                                                                          %s

                                                                                                          as: \"%s\"" msgstr "" msgid "Failed to add subrepository" msgstr "增加子儲存庫失敗" #, python-format msgid "Cannot open the .hgsub file in:

                                                                                                          %s" msgstr "不能開啟.hgsub在:

                                                                                                          %s" msgid "Failed to add repository" msgstr "加入儲存庫失敗了" #, python-format msgid "The .hgsub file already contains the line:

                                                                                                          %s" msgstr "" msgid "Subrepo added to .hgsub file" msgstr "子儲存庫已加至.hgsub檔案中" #, python-format msgid "" "The selected subrepo:

                                                                                                          %s

                                                                                                          has been added to the .hgsub " "file of the repository:

                                                                                                          %s

                                                                                                          Remember that in order to " "finish adding the subrepo you must still commit the changes to " "the .hgsub file in order to confirm the addition of the subrepo." msgstr "" #, python-format msgid "Cannot update the .hgsub file in:

                                                                                                          %s" msgstr "" msgid "Could not open .hgsub file" msgstr "" msgid "Cannot read the .hgsub file.

                                                                                                          Subrepository removal failed." msgstr "" msgid "Subrepository not found" msgstr "找不到子儲存庫" msgid "" "The selected subrepository was not found on the .hgsub file.

                                                                                                          Perhaps it " "has already been removed?" msgstr "" msgid "&Yes" msgstr "好的(&Y)" msgid "&No" msgstr "否(&N)" msgid "Remove the selected repository?" msgstr "移除選擇的儲存庫?" #, python-format msgid "" "Do you really want to remove the repository \"%s\" from its parent " "repository \"%s\"" msgstr "" msgid "Subrepository removed from .hgsub" msgstr "" msgid "" "The selected subrepository has been removed from the .hgsub file.

                                                                                                          Remember " "that you must commit this .hgsub change in order to complete the removal of " "the subrepository!" msgstr "" msgid "Could not update .hgsub file" msgstr "" msgid "Cannot update the .hgsub file.

                                                                                                          Subrepository removal failed." msgstr "" #, python-format msgid "Unsupported repository type (%s)" msgstr "不支援的儲存庫型態 (%s)" msgid "Cannot open non Mercurial repositories or subrepositories" msgstr "不能開啟非Mercurial的儲存庫或子儲存庫" msgid "New Group" msgstr "新群組" msgid "Confirm Delete" msgstr "確認刪除" #, python-format msgid "Delete Group '%s' and all its entries?" msgstr "" msgid "Could not get subrepository list" msgstr "不能取得子儲存庫列表" #, python-format msgid "" "It was not possible to get the subrepository list for the repository in:" "

                                                                                                          %s" msgstr "" msgid "Could not open some subrepositories" msgstr "不能打開一些子儲存庫" #, python-format msgid "" "It was not possible to fully load the subrepository list for the repository " "in:

                                                                                                          %s

                                                                                                          The following subrepositories may be missing, " "broken or on an inconsistent state and cannot be accessed:

                                                                                                          %s" msgstr "" msgid "Updating repository registry" msgstr "更新儲存庫紀錄中" #, python-format msgid "Loading repository %s" msgstr "載入 %s 儲存庫" msgid "Repository Registry updated" msgstr "儲存庫登錄已被更新" msgid "Close tab" msgstr "關閉分頁" msgid "Close other tabs" msgstr "關閉其他分頁" msgid "Undo close tab" msgstr "復原關閉的分頁" msgid "Reopen last closed tab" msgstr "重新開啟最後關閉的分頁" msgid "Undo close other tabs" msgstr "復原關閉的其他分頁" msgid "Reopen last closed tab group" msgstr "重新開啟最後關閉的分頁群組" msgid "Failed to open repository" msgstr "開啟儲存庫失敗" msgid "&Sort" msgstr "" #, python-format msgid "Local Repository %s" msgstr "本地儲存庫 %s" #, python-format msgid "" "An exception happened while loading the subrepos of:

                                                                                                          \"%s\"

                                                                                                          " msgstr "載入

                                                                                                          \"%s\"

                                                                                                          子儲存庫時發生了例外狀況" #, python-format msgid "The exception error message was:

                                                                                                          %s

                                                                                                          " msgstr "例外錯誤訊息是:

                                                                                                          %s

                                                                                                          " msgid "Click OK to continue or Abort to exit." msgstr "" msgid "Error loading subrepos" msgstr "載入子儲存庫時錯誤" msgid "Unable to update repository name" msgstr "無法更新儲存庫名字" #, python-format msgid "An error occurred while updating the repository hgrc file (%s)" msgstr "更新儲存庫 hgrc 檔 (%s) 時出現錯誤" msgid "default" msgstr "預設值" msgid "C&hoose Log Columns..." msgstr "選擇紀錄的欄位(&h)..." msgid "&Resize Columns" msgstr "" #, python-format msgid "Goto ancestor of %s and %s" msgstr "" #, python-format msgid "Can't find revision '%s'" msgstr "找不到修訂版 '%s'" msgid "Drag to change order" msgstr "用拖拉來改變順序" msgid "Workbench Log Columns" msgstr "工作台紀錄欄位" msgctxt "tab tooltip" msgid "Revision details" msgstr "修訂版細節" msgctxt "tab tooltip" msgid "Commit" msgstr "提交" msgctxt "tab tooltip" msgid "Search" msgstr "搜尋" msgctxt "tab tooltip" msgid "Console log" msgstr "" msgctxt "tab tooltip" msgid "Synchronize" msgstr "同步化" msgctxt "tab tooltip" msgid "Patch Branch" msgstr "補丁分支" #, python-format msgid "%s " msgstr "%s <可拉收>" #, python-format msgid "Found %d incoming changesets" msgstr "找到%d個可拉收的變更集" msgid "Pull" msgstr "拉收" msgid "Pull incoming changesets into your repository" msgstr "拉收可拉收的變更集到你的儲存庫" msgid "Reject incoming changesets" msgstr "Reject可拉收的變更集" #, python-format msgid "Push current branch (%s)" msgstr "推送目前的分支(%s)" #, python-format msgid "Push up to current revision (#%d)" msgstr "" #, python-format msgid "Push up to revision #%d" msgstr "" msgid "Push all" msgstr "推送全部" msgid "no outgoing changesets" msgstr "沒有可被推送的變更集" #, python-format msgid "no outgoing changesets in current branch (%s) / %d in total" msgstr "在目前分支(%s)/全部(%d)沒有可被推送的變更集" #, python-format msgid "no outgoing changesets up to current revision (#%d) / %d in total" msgstr "在目前修訂版(#%d)/全部(%d)沒有可被推送的變更集" #, python-format msgid "no outgoing changesets up to revision #%d / %d in total" msgstr "在目前修訂版(#%d)/全部(%d)沒有可被推送的變更集" #, python-format msgid "%d outgoing changesets" msgstr "%d 個可被推送的變更集" #, python-format msgid "%d outgoing changesets in current branch (%s) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to current revision (#%d) / %d in total" msgstr "" #, python-format msgid "%d outgoing changesets up to revision #%d / %d in total" msgstr "" msgid "Nothing to push" msgstr "" msgid "No revision found" msgstr "" #, python-format msgid "%s - verify repository" msgstr "%s - 驗證儲存庫" #, python-format msgid "%s - recover repository" msgstr "%s - 復原儲存庫" msgid "No transaction available" msgstr "" msgid "There is no rollback transaction available" msgstr "沒有回退交易可以用" msgid "Undo last commit?" msgstr "復原最後的提交?" #, python-format msgid "Undo most recent commit (%d), preserving file changes?" msgstr "" msgid "Undo last transaction?" msgstr "復原最後的交易?" #, python-format msgid "Rollback to revision %d (undo %s)?" msgstr "回退到%d修訂版(復原%s)?" msgid "Unable to determine working copy revision\n" msgstr "" msgid "Remove current working revision?" msgstr "移除目前的工作修訂版?" #, python-format msgid "" "Your current working revision (%d) will be removed by this rollback, leaving " "uncommitted changes.\n" " Continue?" msgstr "" "你目前工作的修訂版(%d)將會經由這個回退操作而移除,回到未提交的變更.要繼續嗎?" msgid "Tab cannot exit" msgstr "" msgid "Pus&h" msgstr "推送(&h)" msgid "Push to &Here" msgstr "推送到這裡(&H)" msgid "Push Selected &Branch" msgstr "推送選擇的分支(&B)" msgid "Push &All" msgstr "推送全部(&A)" msgid "&Update..." msgstr "更新(&U)..." msgid "Bro&wse at Revision" msgstr "瀏覽此修訂版(&w)" msgid "&Merge with Local..." msgstr "跟本地做合併(&M)" msgid "&Tag..." msgstr "標籤(&T)..." msgid "Boo&kmark..." msgstr "書籤(&k)..." msgid "Top&ic..." msgstr "" msgid "Sig&n..." msgstr "簽名(&n)..." msgid "&Backout..." msgstr "回退(&B)..." msgid "Revert &All Files..." msgstr "" msgid "Copy &Hash" msgstr "複製Hash值(&H)" msgid "E&xport" msgstr "匯出(&x)" msgid "E&xport Patch..." msgstr "匯出補丁(&x)..." msgid "&Email Patch..." msgstr "郵寄補丁(&E)..." msgid "&Archive..." msgstr "封存(&A)..." msgid "&Bundle Rev and Descendants..." msgstr "包裹此修訂版跟其衍生(&B)..." msgid "Change &Phase to" msgstr "變更階段至(&P)" msgid "&Graft to Local..." msgstr "" msgid "Modi&fy History" msgstr "修改歷史紀錄(&f)" msgid "&Unapply Patch" msgstr "反套用補丁(&U)" msgid "Import to &MQ" msgstr "匯入到MQ(&M)" msgid "MQ &Options" msgstr "MQ選項(&O)" msgid "&Rebase..." msgstr "" msgid "&Prune..." msgstr "" msgid "&Strip..." msgstr "剝除(&S)..." msgid "Post to Re&view Board..." msgstr "" msgid "Post to Phabricator..." msgstr "" msgid "&Remote Update..." msgstr "遠端更新(&R)..." msgid "Write diff file" msgstr "寫進diff檔" msgid "Unable to write diff file" msgstr "不能寫進diff檔" msgid "Unable to compress history" msgstr "不能壓縮history" msgid "Selected changeset pair not related" msgstr "" msgid "Visual Diff..." msgstr "視覺化差異 ..." msgid "Export Diff..." msgstr "匯出差異..." msgid "Export Selected..." msgstr "匯出選擇的..." msgid "Email Selected..." msgstr "郵寄選擇的..." msgid "Copy Selected as Patch" msgstr "" msgid "Archive DAG Range..." msgstr "" msgid "Export DAG Range..." msgstr "匯出DAG範圍..." msgid "Email DAG Range..." msgstr "郵寄DAG範圍..." msgid "Bundle DAG Range..." msgstr "包裹DAG範圍..." msgid "Bisect - Good, Bad..." msgstr "" msgid "Bisect - Bad, Good..." msgstr "" msgid "Compress History..." msgstr "壓縮歷史..." msgid "Rebase..." msgstr "" msgid "Goto common ancestor" msgstr "" msgid "Graft Selected to local..." msgstr "" msgid "&Prune Selected..." msgstr "" msgid "Post Selected to Review Board..." msgstr "" msgid "Post Selected to Phabricator..." msgstr "" msgid "Apply patch" msgstr "套用補丁" msgid "Apply onto original parent" msgstr "套用至原始母系" msgid "Apply only this patch" msgstr "只套用此補丁" msgid "Fold patches..." msgstr "合併補丁..." msgid "Delete patches..." msgstr "刪除補丁..." msgid "Rename patch..." msgstr "補丁更名..." msgid "Pull to here..." msgstr "拉收到這裡..." msgid "Visual diff..." msgstr "視覺化差異..." msgid "Export patch" msgstr "匯出補丁" msgid "Patch Files (*.patch)" msgstr "補丁檔案 (*.patch)" msgid "Cannot export revision" msgstr "不能匯出修訂版" #, python-format msgid "" "Cannot export revision %s into the file named:\n" "\n" "%s\n" msgstr "" "不能匯出%s修訂版到這個檔案:\n" "\n" "%s\n" msgid "There is already an existing folder with that same name." msgstr "已經有個同樣名字的資料夾了" msgid "Replace" msgstr "取代" msgid "Append" msgstr "加入" #, python-format msgid "" "There are existing patch files for %d revisions (%s) in the selected " "location (%s).\n" "\n" msgstr "" msgid "What do you want to do?\n" msgstr "你想做什麼?\n" msgid "Replace the existing patch files.\n" msgstr "取代存在的補丁檔\n" msgid "Append the changes to the existing patch files.\n" msgstr "附加變更到存在的補丁檔\n" msgid "Abort the export operation.\n" msgstr "退出匯出的操作\n" msgid "Patch files already exist" msgstr "補丁檔已經存在" msgid "Patch exported" msgstr "補丁匯出了" #, python-format msgid "" "Revision #%d (%s) was exported to:

                                                                                                          %s%s%s" msgstr "" "修訂版 #%d (%s) 已經匯出到:

                                                                                                          %s%s%s" msgid "Patches exported" msgstr "補丁已匯出" #, python-format msgid "%d patches were exported to:

                                                                                                          %s" msgstr "%d個補丁已經匯出到

                                                                                                          %s" msgid "" "Reverting all files will discard changes and leave affected files in a " "modified state.

                                                                                                          Are you sure you want to use revert?

                                                                                                          (use " "update to checkout another revision)" msgstr "" msgid "Filter b&y" msgstr "" msgid "&Ancestors and Descendants" msgstr "" msgid "A&uthor" msgstr "" msgid "&Branch" msgstr "分支(&B)" msgid "&More Options..." msgstr "" msgid "Unable to merge" msgstr "不能合併" msgid "Please select a revision to merge." msgstr "" #, python-format msgid "Cannot merge with a pseudo revision %r." msgstr "" msgid "You cannot merge a revision with itself" msgstr "你不能合併自己" msgid "Unable to backout" msgstr "不能回退" msgid "Write bundle" msgstr "寫進包裹" msgid "Backwards phase change requested" msgstr "" msgid "Do you really want to make this revision secret?" msgstr "" msgid "" "Making a \"draft\" revision \"secret\" is generally a safe " "operation.\n" "\n" "However, there are a few caveats:\n" "\n" "- \"secret\" revisions are not pushed. This can cause you trouble if you\n" "refer to a secret subrepo revision.\n" "\n" "- If you pulled this revision from a non publishing server it may be\n" "moved back to \"draft\" if you pull again from that particular " "server.\n" "\n" "Please be careful!" msgstr "" msgid "&Make secret" msgstr "" msgid "&Cancel" msgstr "取消(&C)" msgid "Do you really want to force a backwards phase transition?" msgstr "" #, python-format msgid "" "You are trying to move the phase of revision %d backwards,\n" "from \"%s\" to \"%s\".\n" "\n" "However, \"%s\" is a lower phase level than \"%s\".\n" "\n" "Moving the phase backwards is not recommended.\n" "For example, it may result in having multiple heads\n" "if you modify a revision that you have already pushed\n" "to a server.\n" "\n" "Please be careful!" msgstr "" msgid "&Force" msgstr "" msgid "Cannot import selected revision" msgstr "無法匯入選擇的修訂版" #, python-format msgid "" "The selected revision (rev #%d) cannot be imported because it is not a " "descendant of qparent (rev #%d)" msgstr "" msgid "Invalid command" msgstr "無效的命令" msgid "The selected command is empty" msgstr "選擇的命令是空的" #, python-format msgid "" "The following error message was returned:\n" "\n" "%s" msgstr "" msgid "" "\n" "\n" "Please check that the \"thg\" command is valid." msgstr "" msgid "Failed to execute custom TortoiseHg command" msgstr "" #, python-format msgid "The command \"%s\" failed (code %d)." msgstr "命令\"%s\"失敗(返回碼 %d)." msgid "Failed to execute custom command" msgstr "自訂工具執行失敗" #, python-format msgid "The command \"%s\" could not be executed." msgstr "無法執行命令\"%s\"" #, python-format msgid "" "The following error message was returned:\n" "\n" "\"%s\"\n" "\n" "Please check that the command path is valid and that it is a valid " "application" msgstr "" msgid "&Edit Toolbar" msgstr "編輯工具列(&E)" msgid "&Refresh" msgstr "重新整理(&R)" msgid "&Filter Toolbar" msgstr "過濾器工具列(&F)" #, python-format msgid "TortoiseHg: %s" msgstr "" msgid "S&tatus Bar" msgstr "" #, python-format msgid "Resolve Conflicts - %s" msgstr "解決衝突 - %s" msgid "Local revision information" msgstr "本地修訂版資訊" msgid "Other revision information" msgstr "其他修訂版資訊" msgid "Unresolved conflicts" msgstr "未解決的衝突" msgid "Mercurial Re&solve" msgstr "以Mercurial解決(&s)" msgid "Attempt automatic (trivial) merge" msgstr "" msgid "Tool &Resolve" msgstr "以工具解決(&R)" msgid "Merge using selected merge tool" msgstr "使用選擇的合併工具來合併" msgid "&Take Local" msgstr "選取本地(&T)" msgid "Accept the local file version (yours)" msgstr "接受本地工作複本的檔案版本(你的)" msgid "Take &Other" msgstr "選取其他(&O)" msgid "Accept the other file version (theirs)" msgstr "接受其他檔案版本(他們的)" msgid "&Mark as Resolved" msgstr "標示為已解決" msgid "Mark this file as resolved" msgstr "標示這個檔案為已解決" msgid "Diff &Local to Ancestor" msgstr "" msgid "&Diff Other to Ancestor" msgstr "" msgid "Resolved conflicts" msgstr "已解決的衝突" msgid "&Edit File" msgstr "編輯檔案(&E)" msgid "Edit resolved file" msgstr "編輯已解決的檔案" msgid "3-&Way Diff" msgstr "三方差異比對(&W)" msgid "Visual three-way diff" msgstr "視覺化三方差異比對" msgid "Visual diff between resolved file and first parent" msgstr "把解決衝突的檔案跟第一個母系進行視覺化差異比對" msgid "&Diff to Other" msgstr "跟其他做差異比對" msgid "Visual diff between resolved file and second parent" msgstr "把解決衝突的檔案跟第二個母系進行視覺化差異比對" msgid "Mark as &Unresolved" msgstr "標示為未解決" msgid "Mark this file as unresolved" msgstr "標示這個檔案為未解決" msgid "Detected merge/diff tools:" msgstr "決定 合併/差異比對 工具:" msgid "Command output" msgstr "命令輸出" msgid "Unable to show subrepository files" msgstr "無法顯示子儲存庫檔案" msgid "" "Visual diffs are not supported for files in subrepositories. They will not " "be shown." msgstr "" msgid "There are merge conflicts to be resolved" msgstr "有合併衝突被解決" msgid "All conflicts are resolved." msgstr "全部的衝突都被解決了" msgid "There are no conflicting file merges." msgstr "沒有衝突的檔案" msgid "Exit without finishing resolve?" msgstr "沒有完成衝突解決就離開?" msgid "Unresolved conflicts remain. Are you sure?" msgstr "仍有未解決的衝突.你確定嗎?" msgid "E&xit" msgstr "結束(&x)" msgid "Ext" msgstr "" msgid "Repository" msgstr "儲存庫" msgid "" msgstr "<預設>" msgid "File List Toolbar" msgstr "檔案列表工具列" msgid "Ma&nifest Mode" msgstr "" msgid "Show all version-controlled files in tree view" msgstr "在樹狀顯示區內顯示所有被版本控制的檔案" msgid "&Flat List" msgstr "" msgid "### filter text ###" msgstr "### 過濾條件文字 ###" msgid "Changed by &This Commit" msgstr "" msgid "Show files changed by this commit" msgstr "顯示被此次提交所改變的檔案" msgid "Compare to &1st Parent" msgstr "與第一母系比較(&1)" msgid "Compare to &2nd Parent" msgstr "與第二母系比較(&2)" msgid "Toggle parent to be used as the base revision" msgstr "切換作為基礎的母系修訂版" msgid "List Optio&ns" msgstr "列表選項(n)" #, python-format msgid "%s - Revision Details (%s)" msgstr "%s - 修訂版細節 (%s)" #, python-format msgid "Revert - %s" msgstr "復原 - %s" #, python-format msgid "Revert %s to its contents at the following revision?" msgstr "以下列修訂版的內容復原%s?" #, python-format msgid "Revert %d files to their contents at the following revision?" msgstr "" msgid "Revert all files to this revision" msgstr "復原所有檔案到這個修訂版" #, python-format msgid "revision %d's first parent (i.e. revision %d)" msgstr "" #, python-format msgid "revision %d's second parent (i.e. revision %d)" msgstr "" msgid "null revision (i.e. remove file(s))" msgstr "" msgid "Changeset:" msgstr "變更:" msgid "Child:" msgstr "下層:" msgid "Predecessors:" msgstr "" msgid "Successors:" msgstr "" msgid "Head is closed!" msgstr "標頭被關閉了!" msgid "Changesets where username contains string." msgstr "" msgid "" "Search commit message, user name, and names of changed files for string." msgstr "" msgid "Like \"keyword(string)\" but accepts a regex." msgstr "" msgid "" "Changesets not found in the specified destination repository, or the default " "push location." msgstr "" msgid "The named bookmark or all bookmarks." msgstr "命名的書籤或所有的書籤" msgid "The named tag or all tags." msgstr "命名的標籤或全部的標籤" msgid "Changeset is tagged." msgstr "變更集已被標籤" msgid "Changeset is a named branch head." msgstr "變更集是一個已命名的分支標頭" msgid "Changeset is a merge changeset." msgstr "變更集是一個合併變更集" msgid "Changeset is closed." msgstr "變更集被關閉了" msgid "" "Changesets within the interval, see help dates" msgstr "" msgid "Greatest common ancestor of the two changesets." msgstr "" msgid "" "Find revisions that \"match\" one or more fields of the given set of " "revisions." msgstr "" msgid "" "Changesets affecting files matched by pattern. See help patterns" msgstr "" msgid "Changesets which modify files matched by pattern." msgstr "" msgid "Changesets which add files matched by pattern." msgstr "" msgid "Changesets which remove files matched by pattern." msgstr "" msgid "Changesets containing files matched by pattern." msgstr "" msgid "All changesets belonging to the branches of changesets in set." msgstr "" msgid "Members of a set with no children in set." msgstr "" msgid "Changesets which are descendants of changesets in set." msgstr "" msgid "Changesets that are ancestors of a changeset in set." msgstr "" msgid "Child changesets of changesets in set." msgstr "" msgid "The set of all parents for all changesets in set." msgstr "" msgid "First parent for all changesets in set, or the working directory." msgstr "" msgid "Second parent for all changesets in set, or the working directory." msgstr "" msgid "Changesets with no parent changeset in set." msgstr "" msgid "" "An empty set, if any revision in set isn't found; otherwise, all revisions " "in set." msgstr "" msgid "Changeset with lowest revision number in set." msgstr "" msgid "Changeset with highest revision number in set." msgstr "" msgid "First n members of a set." msgstr "" msgid "" "Sort set by keys. The default sort order is ascending, specify a key as \"-" "key\" to sort in descending order." msgstr "" msgid "An alias for \"::.\" (ancestors of the working copy's first parent)." msgstr "" msgid "All changesets, the same as 0:tip." msgstr "" msgid "Revision Set Query" msgstr "" msgid "all revisions converted from subversion" msgstr "" msgid "changeset which represents converted svn revision" msgstr "" msgid "Common sets" msgstr "" msgid "File pattern sets" msgstr "" msgid "Set Ancestry" msgstr "" msgid "Set Logic" msgstr "" msgid "" "help " "revsets" msgstr "" msgid "" "\n" "Caught keyboard interrupt, aborting.\n" msgstr "" #, python-format msgid "failed to fork GUI process: %s\n" msgstr "" #, python-format msgid "can not read file \"%s\". Ignored.\n" msgstr "不能讀取檔案\"%s\".忽略.\n" #, python-format msgid "" "thg: command '%s' is ambiguous:\n" " %s\n" msgstr "" "thg: 命令 '%s' 曖昧不明 :\n" "%s\n" #, python-format msgid "thg: unknown command '%s'\n" msgstr "thg: 未知的命令 '%s'\n" #, python-format msgid "thg %s: %s\n" msgstr "" #, python-format msgid "thg: %s\n" msgstr "" #, python-format msgid "abort: %s!\n" msgstr "中止: %s!\n" #, python-format msgid "abort: %s\n" msgstr "中止:%s\n" #, python-format msgid "(%s)\n" msgstr "" msgid "option --config may not be abbreviated!" msgstr "" msgid "invalid arguments" msgstr "" #, python-format msgid "unrecognized profiling format '%s' - Ignored\n" msgstr "" msgid "" "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" "misc/lsprof/" msgstr "" msgid "repository root directory or symbolic path name" msgstr "" msgid "enable additional output" msgstr "啟用額外輸出" msgid "suppress output" msgstr "" msgid "display help and exit" msgstr "顯示說明指引並離開" msgid "set/override config option (use 'section.name=value')" msgstr "" msgid "enable debugging output" msgstr "" msgid "start debugger" msgstr "開始除錯" msgid "print command execution profile" msgstr "" msgid "do not fork GUI process" msgstr "" msgid "always fork GUI process" msgstr "" msgid "read file list from file" msgstr "" msgid "read file list from file encoding utf-8" msgstr "" msgid "thg about" msgstr "" msgid "thg add [FILE]..." msgstr "" msgid "revision to annotate" msgstr "" msgid "open to line" msgstr "" msgid "initial search pattern" msgstr "" msgid "thg annotate" msgstr "" #, python-format msgid "invalid line number: %s" msgstr "" msgid "revision to archive" msgstr "" msgid "thg archive" msgstr "" msgid "merge with old dirstate parent after backout" msgstr "" msgid "parent to choose when backing out merge" msgstr "" msgid "revision to backout" msgstr "要回退的修訂版" msgid "thg backout [OPTION]... [[-r] REV]" msgstr "" msgid "thg bisect" msgstr "" msgid "revision" msgstr "" msgid "thg bookmarks [-r REV] [NAME]" msgstr "" msgid "only one new bookmark name allowed" msgstr "" msgid "the clone will include an empty working copy (only a repository)" msgstr "拓製將帶入一個空的工作副本(只有一個儲存庫)" msgid "revision, tag or branch to check out" msgstr "" msgid "include the specified changeset" msgstr "" msgid "clone only the specified branch" msgstr "只拓製特定的分支" msgid "use pull protocol to copy metadata" msgstr "使用 pull 通訊協定來複製 metadata" msgid "use uncompressed transfer (fast over LAN)" msgstr "" msgid "thg clone [OPTION]... [SOURCE] [DEST]" msgstr "" msgid "record user as committer" msgstr "" msgid "record datecode as commit date" msgstr "" msgid "thg commit [OPTIONS] [FILE]..." msgstr "" msgid "thg debugblockmatcher" msgstr "" msgid "thg debugbugreport [TEXT]" msgstr "" msgid "thg debugconsole" msgstr "" msgid "thg debuglighthg" msgstr "" msgid "thg debugruncommand -- COMMAND [ARGUMENT]..." msgstr "" msgid "no command specified" msgstr "" msgid "thg drag_copy SOURCE... DEST" msgstr "" msgid "thg drag_move SOURCE... DEST" msgstr "" msgid "a revision to send" msgstr "要傳送的修訂版" msgid "thg email [REVS]" msgstr "" msgid "use only one form to specify the revision" msgstr "" msgid "select the specified revision" msgstr "" msgid "side-by-side comparison of revisions" msgstr "" msgid "thg filelog [OPTION]... FILE" msgstr "" msgid "requires a single filename" msgstr "" msgid "thg forget [FILE]..." msgstr "" msgid "revisions to graft" msgstr "" msgid "thg graft [-r] REV..." msgstr "" msgid "You must provide revisions to graft" msgstr "" msgid "ignore case during search" msgstr "搜尋時忽略大小寫" msgid "thg grep" msgstr "" msgid "thg guess" msgstr "" msgid "thg help [COMMAND]" msgstr "" msgid "global options:" msgstr "全域選項:" msgid "use \"thg help\" for the full list of commands" msgstr "使用\"thg help\"列出所有的命令" msgid "" "use \"thg help\" for the full list of commands or \"thg -v\" for details" msgstr "使用\"thg help\"列出所有的命令或\"thg -v\"顯示細節" #, python-format msgid "use \"thg -v help%s\" to show aliases and global options" msgstr "使用\"thg -v help %s\"顯示別名及全域選項" #, python-format msgid "use \"thg -v help %s\" to show global options" msgstr "使用\"thg -v help %s\"顯示全域選項" msgid "" "list of commands:\n" "\n" msgstr "" "列出所有指令:\n" "\n" #, python-format msgid "" "\n" "aliases: %s\n" msgstr "" "\n" "別名: %s\n" msgid "(no help text available)" msgstr "(沒有說明)" msgid "options:\n" msgstr "選項:\n" msgid "no commands defined\n" msgstr "沒有定義指令\n" msgid "Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n" msgstr "" msgid "" "basic commands:\n" "\n" msgstr "" "基本指令:\n" "\n" #, python-format msgid " (default: %s)" msgstr " (預設: %s)" msgid "thg hgignore [FILE]" msgstr "" msgid "import to the patch queue (MQ)" msgstr "匯入到補丁佇列(MQ)" msgid "thg import [OPTION] [SOURCE]..." msgstr "" msgid "thg init [DEST]" msgstr "" msgid "thg lock" msgstr "" msgid "search for a given text or revset" msgstr "" msgid "(DEPRECATED)" msgstr "" msgid "open a new workbench window" msgstr "開啟一個新的工作台視窗" msgid "thg log [OPTIONS] [FILE]" msgstr "" msgid "cannot specify both -k/--query and filenames" msgstr "" msgid "revision to display" msgstr "" msgid "thg manifest [-r REV] [FILE]" msgstr "" msgid "revision to merge" msgstr "" msgid "thg merge [[-r] REV]" msgstr "" msgid "Merge revision not specified or not found" msgstr "合併的修訂版沒有描述或找不到" msgid "a revision to post" msgstr "" msgid "thg postreview [-r] REV..." msgstr "" msgid "reviewboard extension not enabled" msgstr "" #, python-format msgid "see %(url)s" msgstr "" msgid "no revisions specified" msgstr "" msgid "revisions to prune" msgstr "" msgid "thg prune [-r] REV..." msgstr "" msgid "thg purge" msgstr "" msgid "keep original changesets" msgstr "" msgid "keep original branch names" msgstr "保持原始的分支名稱" msgid "rebase from the specified changeset" msgstr "" msgid "rebase onto the specified changeset" msgstr "" msgid "thg rebase -s REV -d REV [--keep]" msgstr "" msgid "Rebase already in progress" msgstr "Rebase 已經在處理中" msgid "Resuming rebase already in progress" msgstr "" msgid "You must provide source and dest arguments" msgstr "" msgid "thg rejects [FILE]" msgstr "" msgid "You must provide the path to a file" msgstr "" msgid "thg remove [FILE]..." msgstr "" msgid "thg rename [SOURCE] [DEST]" msgstr "" msgid "field to give initial focus" msgstr "" msgid "thg repoconfig" msgstr "" msgid "thg resolve" msgstr "" msgid "the revision to show" msgstr "" msgid "thg revdetails [-r REV]" msgstr "" msgid "thg revert [FILE]..." msgstr "" msgid "revision to update" msgstr "" msgid "thg rupdate [[-r] REV]" msgstr "" msgid "name of the hgweb config file (serve more than one repository)" msgstr "" msgid "name of the hgweb config file (DEPRECATED)" msgstr "" msgid "thg serve [--web-conf FILE]" msgstr "" msgid "thg shellconfig" msgstr "" msgid "thg shelve" msgstr "" msgid "sign even if the sigfile is modified" msgstr "" msgid "make the signature local" msgstr "" msgid "the key id to sign with" msgstr "" msgid "do not commit the sigfile after signing" msgstr "" msgid "use as commit message" msgstr "" msgid "thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]" msgstr "" msgid "Please enable the Gpg extension first." msgstr "" msgid "show files without changes" msgstr "" msgid "show ignored files" msgstr "顯示忽略的檔案" msgid "thg status [OPTIONS] [FILE]" msgstr "" msgid "discard uncommitted changes (no backup)" msgstr "放棄沒提交的變更(不備份)" msgid "do not back up stripped revisions" msgstr "不要備份已剝除的修訂版" msgid "do not modify working copy during strip" msgstr "" msgid "revision to strip" msgstr "剝除修訂版" msgid "thg strip [-k] [-f] [-n] [[-r] REV]" msgstr "" msgid "open the bookmark sync window" msgstr "開啟書籤同步視窗" msgid "thg sync [OPTION]... [PEER]" msgstr "" msgid "replace existing tag" msgstr "取代現有的標籤" msgid "make the tag local" msgstr "製作一個本地標籤" msgid "revision to tag" msgstr "" msgid "remove a tag" msgstr "移除一個標籤" msgid "thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]" msgstr "" msgid "wait until the second ticks over" msgstr "" msgid "notify the shell for paths given" msgstr "" msgid "remove the status cache" msgstr "移除狀態快取" msgid "show the contents of the status cache (no update)" msgstr "顯示狀態快取的內容(無更新)" msgid "update all repos in current dir" msgstr "" msgid "thg thgstatus [OPTION]" msgstr "" msgid "thg topics [-r REV] [NAME]" msgstr "" msgid "Please enable the Topic extension first." msgstr "" msgid "only one new topic name allowed" msgstr "" msgid "thg update [-C] [[-r] REV]" msgstr "" msgid "thg userconfig" msgstr "" msgid "changeset to view in diff tool" msgstr "" msgid "revisions to view in diff tool" msgstr "" msgid "bundle file to preview" msgstr "預覽包裹檔" msgid "launch visual diff tool" msgstr "啟動視覺化差異比對工具" msgid "print license" msgstr "" msgid "thg version [OPTION]" msgstr "" #, python-format msgid "TortoiseHg Dialogs (version %s), Mercurial (version %s)\n" msgstr "TortoiseHg 對話框 (版本 %s), Mercurial (版本 %s)\n" msgid "Location:" msgstr "位置:" msgid "Update to:" msgstr "更新到:" msgid "Options:" msgstr "選項:" msgid "Discard remote changes, no backup (-C/--clean)" msgstr "放棄遠端變更,不備份(-C/--clean)" msgid "Perform a push before updating (-p/--push)" msgstr "" msgid "Allow pushing new branches (--new-branch)" msgstr "允許推送成新分支(--new-branch)" msgid "Force push to remote location (-f/--force)" msgstr "強制推送到遠端位置(-f/--force)" msgid "remove working directory" msgstr "移除工作目錄" msgid "unknown revision!" msgstr "未知的修訂版!" #, python-format msgid "Remote Update - %s" msgstr "" msgid "&Update" msgstr "更新(&U)" msgid "Log" msgstr "紀錄" msgid "Repositories" msgstr "儲存庫" #, python-format msgid "Running at %s" msgstr "執行於%s" msgid "Stopped" msgstr "已停止" msgid "TortoiseHg Web Server" msgstr "TortoiseHg網頁伺服器" msgid "Web Server" msgstr "網頁伺服器" msgid "Port:" msgstr "連接埠:" msgid "Status:" msgstr "狀態:" msgid "Start" msgstr "啟動" msgid "Settings" msgstr "設定" msgid "" msgstr "<未指定>" msgid "&True" msgstr "" msgid "&False" msgstr "" msgid "&Unspecified" msgstr "" #, python-format msgid "%dpt" msgstr "" msgid "Bold" msgstr "粗體" msgid "Italic" msgstr "斜體" msgid "Strike" msgstr "刪除線" msgid "Underline" msgstr "底線" msgid "&Set..." msgstr "設定(&S)..." msgid "&Clear" msgstr "清除(&C)" #, python-format msgid "Failed to load issue tracker: '%s': %s. " msgstr "載入問題追蹤系統失敗: '%s': %s. " msgid "&Browse..." msgstr "瀏覽(&B)..." msgid "UI Language" msgstr "UI 語言" msgid "Specify your preferred user interface language (restart needed)" msgstr "請描述你喜愛的使用者介面語言(需要重新啟動)" msgid "Three-way Merge Tool" msgstr "三方合併工具" msgid "" "Graphical merge program for resolving merge conflicts. If left unspecified, " "Mercurial will use the first applicable tool it finds on your system or use " "its internal merge tool that leaves conflict markers in place. Choose " "internal:merge to force conflict markers, internal:prompt to always select " "local or other, or internal:dump to leave files in the working directory for " "manual merging" msgstr "" msgid "Visual Diff Tool" msgstr "視覺化差異比對工具" msgid "" "Specify visual diff tool, as described in the [merge-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "selected merge tool. Failing that it uses the first applicable tool it finds." msgstr "" msgid "Visual Editor" msgstr "視覺編輯器" msgid "" "Specify visual editor, as described in the [editor-tools] section of your " "Mercurial configuration files. If left unspecified, TortoiseHg will use the " "first applicable tool it finds." msgstr "" msgid "CLI Editor" msgstr "命令行編輯器" msgid "" "The editor used by Mercurial command line commands to collect multiline " "input from the user. Most notably, commit messages." msgstr "" msgid "Shell" msgstr "命令列(shell)" #, python-format msgid "" "Specify the command to launch your preferred terminal shell application. If " "the value includes the string %(reponame)s, the name of the repository will " "be substituted in place of %(reponame)s. Similarly, %(root)s will be the " "full path to the repository. (restart needed)
                                                                                                          Default, Windows: cmd.exe /" "K title %(reponame)s
                                                                                                          Default, OS X: not set
                                                                                                          Default, other: xterm -T " "\"%(reponame)s\"" msgstr "" msgid "Immediate Operations" msgstr "立即施行" msgid "" "Space separated list of shell operations you would like to be performed " "immediately, without user interaction. Commands are \"add remove revert " "forget\". Default: None (leave blank)" msgstr "" msgid "Tab Width" msgstr "Tab 字元寬度" msgid "" "Specify the number of spaces that tabs expand to in various TortoiseHg " "windows. Default: 8" msgstr "" msgid "Force Repo Tab" msgstr "強制顯示儲存庫分頁" msgid "Always show repo tabs, even for a single repo. Default: False" msgstr "總是顯示儲存庫分頁,就算是目前只有一個儲存庫也一樣.預設:False" msgid "Monitor Repo Changes" msgstr "監視儲存庫的改變" msgid "" "Specify the target filesystem where TortoiseHg monitors changes. Default: " "localonly" msgstr "" msgid "Max Diff Size" msgstr "最大Diff大小" msgid "" "The maximum size file (in KB) that TortoiseHg will show changes for in the " "changelog, status, and commit windows. A value of zero implies no limit. " "Default: 1024 (1MB)" msgstr "" "TortoiseHg 在變更紀錄、狀態、提交窗格顯示內容的最大大小,以為 KB 單位。0 表示" "不限制。預設:1024 (1MB)" msgid "Fork GUI" msgstr "" msgid "" "When running from the command line, fork a background process to run " "graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X " "application bundle. Default: True" msgstr "" msgid "Full Path Title" msgstr "完整路徑標題" msgid "" "Show a full directory path of the repository in the dialog title instead of " "just the root directory name. Default: False" msgstr "" "在對話框標題列上顯示儲存庫的完整路徑,而非只顯示最上層路徑。預設:False" msgid "Auto-resolve merges" msgstr "合併時自動解決衝突" msgid "" "Indicates whether TortoiseHg should attempt to automatically resolve changes " "from both sides to the same file, and only report merge conflicts when this " "is not possible. When False, all files with changes on both sides of the " "merge will report as conflicting, even if the edits are to different parts " "of the file. In either case, when conflicts occur, the user will be invited " "to review and resolve changes manually. Default: True." msgstr "" msgid "New Repo Skeleton" msgstr "" msgid "" "If specified, files in the directory, e.g. .hgignore, are copied to the " "newly-created repository." msgstr "" msgid "Default Clone Destination" msgstr "" msgid "" "If specified, the destination field in the clone widget will be pre-filled " "with this path. Otherwise, it will be pre-filled with the current working " "directory." msgstr "" msgid "Workbench" msgstr "工作台" msgid "Single Workbench Window" msgstr "單一工作台視窗" msgid "" "Select whether you want to have a single workbench window. If you disable " "this setting you will get a new workbench window everytime that you use the " "\"Hg Workbench\" command on the explorer context menu. Default: True" msgstr "" msgid "Default widget" msgstr "預設視窗元件" msgid "" "Select the initial widget that will be shown when opening a repository. " "Default: revdetails" msgstr "開啟儲存庫時首先出現的視窗元件。預設:revdetails" msgid "" "Select the initial revision that will be selected when opening a " "repository. You can select the \"current\" (i.e. the working directory " "parent), the current \"tip\" or the working directory (\"workingdir\"). " "Default: current" msgstr "" msgid "" "Open new tabs next\n" "to the current tab" msgstr "在目前分頁後開啟新的分頁" msgid "" "Should new tabs be open next to the current tab? If False new tabs will be " "open after the last tab. Default: True" msgstr "" msgid "Author Coloring" msgstr "作者色彩" msgid "Color changesets by author name. Default: False" msgstr "依作者以顏色區分變更。預設:否" msgid "Full Authorname" msgstr "完整作者名" msgid "" "Show full authorname in Logview. If not enabled, only a short part, usually " "name without email is shown. Default: False" msgstr "" msgid "Task Tabs" msgstr "任務分頁" msgid "" "Show tabs along the side of the bottom half of each repo widget allowing one " "to switch task tabs without using the toolbar. Default: off" msgstr "" "將任務工具列的按鈕化成儲存庫畫面上的分頁標籤,你就不再需要任務工具列。預設:" "off" msgid "Task Toolbar Order" msgstr "任務工具列指定" msgid "" "Specify which task buttons you want to show on the task toolbar and in which " "order.
                                                                                                          Type a list of the task button names. Add separators by putting \"|" "\" between task button names.
                                                                                                          Valid names are: log commit sync grep and " "pbranch.
                                                                                                          Default: log commit grep pbranch | sync" msgstr "" msgid "Long Summary" msgstr "支援長摘要" msgid "" "If true, concatenate multiple lines of changeset summary and truncate them " "at 80 characters as necessary. Default: False" msgstr "" msgid "Log Batch Size" msgstr "日誌批次大小" msgid "" "The number of revisions to read and display in the changelog viewer in a " "single batch. Default: 500" msgstr "顯示變更紀錄時,一次讀取的修訂版本數。預設:500" msgid "Dead Branches" msgstr "死亡的分支" msgid "" "Comma separated list of branch names that should be ignored when building a " "list of branch names for a repository. Default: None (leave blank)" msgstr "" msgid "Branch Colors" msgstr "分支顏色" msgid "" "Space separated list of branch names and colors of the form branch:#XXXXXX. " "Spaces and colons in the branch name must be escaped using a backslash (\\). " "Likewise some other characters can be escaped in this way, e.g. \\u0040 will " "be decoded to the @ character, and \\n to a linefeed. Default: None (leave " "blank)" msgstr "" msgid "Hide Tags" msgstr "隱藏標籤" msgid "" "Space separated list of tags that will not be shown. Useful example: Specify " "\"qbase qparent qtip\" to hide the standard tags inserted by the Mercurial " "Queues Extension. Default: None (leave blank)" msgstr "" msgid "Activate Bookmarks" msgstr "正在作用的書籤" msgid "" "Select when TortoiseHg will show a prompt to activate a bookmark when " "updating to a revision that has one or more bookmarks.

                                                                                                          • auto: " "Try to automatically activate bookmarks. When updating to a revision that " "has a single bookmark it will be activated automatically. Show a prompt if " "there is more than one bookmark on the revision that is being updated to." "
                                                                                                          • prompt: The default. Show a prompt when updating to a revision " "that has one or more bookmarks.
                                                                                                          • never: Never show any prompt to " "activate any bookmarks.

                                                                                                          Default: prompt" msgstr "" msgid "Show Family Line" msgstr "" msgid "" "Show indirect revision dependency on the revision graph when filtered by " "revset. Default: True

                                                                                                          Note: Calculating family line may be slow in " "some cases. This option is expected to be removed if the performance issue " "is solved." msgstr "" msgid "Use optimized graph layouter" msgstr "" msgid "" "Use alternative graph layouter for large repositories. Default: " "False

                                                                                                          Note: This layouter colors edges using branch information and " "does not display graft edges, regardless of whether they are requested or " "not." msgstr "" msgctxt "config item" msgid "Commit" msgstr "提交" msgid "Username" msgstr "使用者名稱" msgid "" "Name associated with commits. The common format is:
                                                                                                          Full Name <" "email@example.com>" msgstr "提交時用的名字.格式通常是
                                                                                                          Full Name <email@example.com>" msgid "Ask Username" msgstr "詢問使用者名字" msgid "" "If no username has been specified, the user will be prompted to enter a " "username. Default: False" msgstr "" "如果儲存庫沒有指定使用者名字(username),將會顯示輸入視窗讓使用者輸入名字. 預" "設:False" msgid "Summary Line Length" msgstr "摘要行數" msgid "" "Suggested length of commit message lines. A red vertical line will mark this " "length. CTRL-E will reflow the current paragraph to the specified line " "length. Default: 80" msgstr "" "提交訊息行建議的長度.一個紅色的垂直線將會標記出來.CTRL-E 將重排當前段落到指定" "的行的長度.預設: 80" msgid "Close After Commit" msgstr "提交後關閉" msgid "Close the commit tool after every successful commit. Default: False" msgstr "每一次成功提交後關閉提交工具: 預設: False" msgid "Push After Commit" msgstr "提交後推送" msgid "" "Attempt to push to specified URL or alias after each successful commit. " "Default: No push" msgstr "" msgid "Auto Commit List" msgstr "自動提交清單" msgid "" "Comma separated list of files that are automatically included in every " "commit. Intended for use only as a repository setting. Default: None (leave " "blank)" msgstr "" msgid "Auto Exclude List" msgstr "自動展開列表" msgid "" "Comma separated list of files that are automatically unchecked when the " "status, and commit dialogs are opened. Default: None (leave blank)" msgstr "" msgid "English Messages" msgstr "英文訊息" msgid "" "Generate English commit messages even if LANGUAGE or LANG environment " "variables are set to a non-English language. This setting is used by the " "Merge, Tag and Backout dialogs. Default: False" msgstr "" "假如LANGUAGE或LANG 環境變數是設定成非英語的語言,就建立英文的提交訊息.這個設定" "將在合併,標籤,和回退對話框被使用.預設:False" msgid "New Commit Phase" msgstr "新提交的階段" msgid "The phase of new commits. Default: draft" msgstr "" msgid "Secret MQ Patches" msgstr "" msgid "Make MQ patches secret (instead of draft). Default: False" msgstr "" msgid "Check Subrepo Phase" msgstr "" msgid "" "Check the phase of the current revision of each subrepository. For settings " "other than \"ignore\", the phase of the current revision of each " "subrepository is checked before committing the parent repository. Default: " "follow" msgstr "" msgid "Monitor working
                                                                                                          directory changes" msgstr "監視工作目錄的改變" msgid "" "Select when the working directory status list will be refreshed:
                                                                                                          - " "auto: [default] let TortoiseHg decide when to refresh the " "working directory status list.
                                                                                                          TortoiseHg will refresh the status list " "whenever it performs an action that may potentially modify the working " "directory. This may miss any changes that happen outside of TortoiseHg's " "control;
                                                                                                          - always: in addition to the automatic updates above, " "also refresh the status list whenever the user clicks on the \"working dir " "revision\" or on the \"Commit icon\" on the workbench task bar;
                                                                                                          - " "alwayslocal: same as \"always\" but restricts forced refreshes " "to local repos.
                                                                                                          Default: auto" msgstr "" msgid "Confirm adding unknown files" msgstr "確認新增未知的檔案" msgid "" "Determines if TortoiseHg should show a confirmation dialog before adding new " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected new files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Confirm deleting files" msgstr "確認刪除檔案" msgid "" "Determines if TortoiseHg should show a confirmation dialog before removing " "files in a commit. If True, a confirmation dialog will be shown. If False, " "selected deleted files will be included in the commit with no confirmation " "dialog. Default: True" msgstr "" msgid "Sync" msgstr "同步化" msgid "After Pull Operation" msgstr "拉收操作之後" msgid "" "Operation which is performed directly after a successful pull. update " "equates to pull --update, fetch equates to the fetch extension, rebase " "equates to pull --rebase, updateorrebase equates to pull -u --rebase. " "Default: none" msgstr "" msgid "Default Push" msgstr "" msgid "" "Select the revisions that will be pushed by default, whenever you click the " "Push button.

                                                                                                          • all: The default. Push all changes in all " "branches.
                                                                                                          • branch: Push all changes in the current branch.
                                                                                                          • revision: Push the changes in the current branch up to the current revision.

                                                                                                          Default: all" msgstr "" msgid "Confirm Push" msgstr "確認推送" msgid "" "Determines if TortoiseHg should show a confirmation dialog before pushing " "changesets. If False, push will be performed without any confirmation " "dialog. Default: True" msgstr "" "決定當TortoiseHg推送變更集之前,是否要顯示確認視窗.如果是False,TortoiseHg推送" "變更集前不會顯示確認視窗.預設: True" msgid "Target Combo" msgstr "" msgid "" "Select if TortoiseHg will show a target combo in the sync toolbar." "

                                                                                                          • auto: The default. Show the combo if more than one target " "configured.
                                                                                                          • always: Always show the combo.

                                                                                                          Default: auto" msgstr "" msgid "SSH Command" msgstr "SSH命令" msgid "" "Command to use for SSH connections.

                                                                                                          Default: \"ssh\" or \"TortoisePlink." "exe -ssh -2\" (Windows)" msgstr "" msgid "Subrepository Features:" msgstr "" msgid "Allow Hg Subrepos" msgstr "" msgid "" "Whether Mercurial subrepositories are allowed in the working directory. " "Default: True" msgstr "" msgid "Allow Git Subrepos" msgstr "" #, python-format msgid "" "Whether Git subrepositories are allowed in the working directory. Default: " "False

                                                                                                          See the security note before enabling Git " "subrepos." msgstr "" msgid "Allow SVN Subrepos" msgstr "" #, python-format msgid "" "Whether Subversion subrepositories are allowed in the working directory. " "Default: False

                                                                                                          See the security note before enabling " "Subversion subrepos." msgstr "" msgid "Server" msgstr "伺服器" msgid "Repository Details:" msgstr "儲存庫細節:" msgid "" "Repository name to use in the web interface, and by TortoiseHg as a " "shorthand name. Default is the working directory." msgstr "" msgid "Encoding" msgstr "編碼" msgid "" "Character encoding of files in the repository, used by the web interface and " "TortoiseHg." msgstr "" msgid "'Publishing' repository" msgstr "" msgid "" "Controls draft phase behavior when working as a server. When true, pushed " "changesets are set to public in both client and server and pulled or cloned " "changesets are set to public in the client. Default: True" msgstr "" msgid "Web Server:" msgstr "網頁伺服器:" msgid "Textual description of the repository's purpose or contents." msgstr "儲存庫的目的或內容的文字描述" msgid "Contact" msgstr "聯繫" msgid "Name or email address of the person in charge of the repository." msgstr "負責此儲存庫的人的姓名或Email" msgid "Style" msgstr "樣式" msgid "Which template map style to use" msgstr "使用的整體樣式" msgid "Archive Formats" msgstr "封存格式" msgid "Comma separated list of archive formats allowed for downloading" msgstr "" msgid "Port" msgstr "通訊埠" msgid "Port to listen on" msgstr "傾聽的埠號" msgid "Push Requires SSL" msgstr "推送需要SSL" msgid "" "Whether to require that inbound pushes be transported over SSL to prevent " "password sniffing." msgstr "" msgid "Stripes" msgstr "剝除" msgid "" "How many lines a \"zebra stripe\" should span in multiline output. Default " "is 1; set to 0 to disable." msgstr "" msgid "Max Files" msgstr "最大檔案" msgid "Maximum number of files to list per changeset. Default: 10" msgstr "" msgid "Max Changes" msgstr "最大變更記錄" msgid "Maximum number of changes to list on the changelog. Default: 10" msgstr "" msgid "Allow Push" msgstr "允許推送" msgid "" "Whether to allow pushing to the repository. If empty or not set, push is not " "allowed. If the special value \"*\", any remote user can push, including " "unauthenticated users. Otherwise, the remote user must have been " "authenticated, and the authenticated user name must be present in this list " "(separated by whitespace or \",\"). The contents of the allow_push list are " "examined after the deny_push list." msgstr "" msgid "Deny Push" msgstr "拒絕推送" msgid "" "Whether to deny pushing to the repository. If empty or not set, push is not " "denied. If the special value \"*\", all remote users are denied push. " "Otherwise, unauthenticated users are all denied, and any authenticated user " "name present in this list (separated by whitespace or \",\") is also denied. " "The contents of the deny_push list are examined before the allow_push list." msgstr "" msgid "Proxy" msgstr "代理主機" msgid "Host" msgstr "主機" msgid "" "Host name and (optional) port of proxy server, for example \"myproxy:8000\"" msgstr "" msgid "Bypass List" msgstr "" msgid "" "Optional. Comma-separated list of host names that should bypass the proxy" msgstr "" msgid "Optional. User name to authenticate with at the proxy server" msgstr "" msgid "Password" msgstr "密碼" msgid "Optional. Password to authenticate with at the proxy server" msgstr "" msgid "From" msgstr "寄件者" msgid "Email address to use in the \"From\" header and for the SMTP envelope" msgstr "被使用在\"From\"標頭及SMTP信封中的Email位置" msgid "To" msgstr "收件者" msgid "Comma-separated list of recipient email addresses" msgstr "" msgid "Cc" msgstr "副本" msgid "Comma-separated list of carbon copy recipient email addresses" msgstr "" msgid "Bcc" msgstr "密件" msgid "Comma-separated list of blind carbon copy recipient email addresses" msgstr "" msgid "method" msgstr "" msgid "" "Optional. Method to use to send email messages. If value is \"smtp" "\" (default), use SMTP (configured below). Otherwise, use as name of " "program to run that acts like sendmail (takes \"-f\" option for sender, list " "of recipients on command line, message on stdin). Normally, setting this to " "\"sendmail\" or \"/usr/sbin/sendmail\" is enough to use sendmail to send " "messages." msgstr "" msgid "SMTP Host" msgstr "SMTP 主機" msgid "Host name of mail server" msgstr "郵件伺服器的Host名稱" msgid "SMTP Port" msgstr "SMTP 通訊埠" msgid "Port to connect to on mail server. Default: 25" msgstr "連接郵件伺服器的埠號.預設: 25" msgid "SMTP TLS" msgstr "" msgid "Method to enable TLS when connecting to mail server. Default: none" msgstr "" msgid "SMTP Username" msgstr "SMTP 使用者" msgid "Username to authenticate to mail server with" msgstr "" msgid "SMTP Password" msgstr "SMTP 密碼" msgid "Password to authenticate to mail server with" msgstr "" msgid "Local Hostname" msgstr "本機主機名稱" msgid "Hostname the sender can use to identify itself to the mail server." msgstr "" msgid "Diff and Annotate" msgstr "比對和加註" msgid "Patch EOL" msgstr "補丁內容的換行字元" msgid "" "Normalize file line endings during and after patch to lf or crlf. Strict " "does no normalization. Auto does per-file detection, and is the recommended " "setting. Default: strict" msgstr "" msgid "Git Format" msgstr "Git 格式" msgid "Use git extended diff header format. Default: False" msgstr "使用git擴充的diff標頭格式. 預設: False" msgid "MQ Git Format" msgstr "MQ git 格式" msgid "" "When set to 'auto', mq will automatically use git patches when required to " "avoid losing changes to file modes, copy records or binary files. If set to " "'keep', mq will obey the [diff] section configuration while preserving " "existing git patches upon qrefresh. If set to 'yes' or 'no', mq will " "override the [diff] section and always generate git or regular patches, " "possibly losing data in the second case. Default: auto" msgstr "" msgid "No Dates" msgstr "沒有日期" msgid "Do not include modification dates in diff headers. Default: False" msgstr "在差異檔頭中不包含修改日期. 預設:否" msgid "Show Function" msgstr "顯示函式" msgid "Show which function each change is in. Default: False" msgstr "" msgid "Ignore White Space" msgstr "忽略空白" msgid "Ignore white space when comparing lines in diff views. Default: False" msgstr "" msgid "Ignore WS Amount" msgstr "忽略空格數量" msgid "" "Ignore changes in the amount of white space in diff views. Default: False" msgstr "" msgid "Ignore Blank Lines" msgstr "忽略空白行" msgid "Ignore changes whose lines are all blank in diff views. Default: False" msgstr "" msgid "Annotate:" msgstr "加註:" msgid "" "Ignore white space when comparing lines in the annotate view. Default: False" msgstr "" msgid "" "Ignore changes in the amount of white space in the annotate view. Default: " "False" msgstr "" msgid "" "Ignore changes whose lines are all blank in the annotate view. Default: False" msgstr "" msgid "Fonts" msgstr "字型" msgid "Message Font" msgstr "訊息字型" msgid "Font used to display commit messages. Default: monospace 10" msgstr "顯示提交訊息用的字型.預設 monospace 10" msgid "Diff Font" msgstr "差異比對字型" msgid "Font used to display text differences. Default: monospace 10" msgstr "顯示文字差異用的字型, 預設: monospace 10" msgid "ChangeLog Font" msgstr "變更紀錄字型" msgid "Font used to display changelog data. Default: monospace 10" msgstr "變更紀錄窗格內資料的字型。預設:monospace 10" msgid "Output Font" msgstr "輸出字型" msgid "Font used to display output messages. Default: sans 8" msgstr "顯示輸出訊息用的字型.預設 sans 8" msgid "Extensions" msgstr "擴充套件" msgid "Tools" msgstr "工具" msgid "Hooks" msgstr "掛勾" msgid "Issue Tracking" msgstr "問題追蹤" msgid "Issue Regex" msgstr "" msgid "Defines the regex to match when picking up issue numbers." msgstr "" msgid "Issue Link" msgstr "問題連結" #, python-brace-format msgid "" "Defines the command to run when an issue number is recognized. You may " "include groups in issue.regex, and corresponding {n} tokens in issue.link " "(where n is a non-negative integer). {0} refers to the entire string matched " "by issue.regex, while {1} refers to the first group and so on. If no {n} " "tokens are found in issue.link, the entire matched string is appended " "instead." msgstr "" msgid "Inline Tags" msgstr "" msgid "Show tags at start of commit message." msgstr "" msgid "Mandatory Issue Reference" msgstr "" msgid "" "When committing, require that a reference to an issue be specified. If " "enabled, the regex configured in 'Issue Regex' must find a match in the " "commit message." msgstr "" msgid "Issue Tracker Plugin" msgstr "" msgid "" "Configures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking " "plugin." msgstr "" msgid "Configure Issue Tracker" msgstr "設定問題追蹤系統" msgid "Configure the selected COM Bug Tracker plugin." msgstr "" msgid "Issue Tracker Trigger" msgstr "" msgid "" "Determines when the issue tracker state will be updated by TortoiseHg. Valid " "settings values are:

                                                                                                          • never: Do not update the Issue Tracker " "state automatically.
                                                                                                          • commit: Update the Issue Tracker state after " "a successful commit.

                                                                                                          Default: never" msgstr "" msgid "Changeset Link" msgstr "連結變更集" msgid "" "A template string that, when set, turns the revision number and short hashes " "that are shown on the revision panels into links.
                                                                                                          The template string " "uses a normal mercurial template syntax, such as:

                                                                                                          • {node|short} : replaced by " "the 12 digit revision id.
                                                                                                          • {rev} : replaced by the revision number." "
                                                                                                          • {gitnode} : if the hg-git extension is enabled, and the repo is a git " "clone, this is replaced by the git commit hash.
                                                                                                          For example, in order to " "link to bitbucket commit pages you can set this to:
                                                                                                          https://bitbucket.org/" "tortoisehg/thg/commits/{node|short}
                                                                                                          You can also to link to a GitHub/" "GitLab repo (provided hg-git is installed):
                                                                                                          https://github.com/torvalds/" "linux/commit/{gitnode}
                                                                                                          https://gitlab.com/tortoisegit/tortoisegit/commit/" "{gitnode}
                                                                                                          " msgstr "" msgid "Path to review board example \"http://demo.reviewboard.org\"" msgstr "" msgid "User name to authenticate with review board" msgstr "" msgid "Password to authenticate with review board" msgstr "" msgid "Server Repository ID" msgstr "伺服器儲存庫ID" msgid "The default repository id for this repo on the review board server" msgstr "" msgid "Target Groups" msgstr "" msgid "A comma separated list of target groups" msgstr "" msgid "Target People" msgstr "" msgid "A comma separated list of target people" msgstr "" msgid "Kiln Bfiles" msgstr "" msgid "Patterns" msgstr "樣式" msgid "" "Files with names meeting the specified patterns will be automatically added " "as bfiles" msgstr "" msgid "Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as bfiles" msgstr "" msgid "System Cache" msgstr "系統快取" msgid "" "Path to the directory where a system-wide cache of bfiles will be stored" msgstr "" msgid "Simplelock" msgstr "" msgid "Lock Clone" msgstr "" msgid "" "Location of local clone of organizational lock repository.

                                                                                                          This repository " "must contain a \"locked\" text file" msgstr "" msgid "Largefiles" msgstr "大檔案" msgid "" "Files with names meeting the specified patterns will be automatically added " "as largefiles" msgstr "" msgid "Minimum Size" msgstr "" msgid "" "Files of at least the specified size (in megabytes) will be added as " "largefiles" msgstr "" msgid "User Cache" msgstr "使用者快取" msgid "Path to the directory where a user's cache of largefiles will be stored" msgstr "" msgid "Projrc" msgstr "" msgid "Require confirmation" msgstr "" msgid "" "When to ask the user to confirm the update of the local \"projrc\" " "configuration file when the remote projrc file changes. Possible values are:" "

                                                                                                          • always: [default] Always show a confirmation prompt " "before updating the local .hg/projrc file.
                                                                                                          • first: Show a " "confirmation dialog when the repository is cloned or when a remote projrc " "file is found for the first time.
                                                                                                          • never: Update the local .hg/" "projrc file automatically, without requiring any user confirmation.
                                                                                                          " msgstr "" msgid "Servers" msgstr "" msgid "" "List of Servers from which \"projrc\" configuration files must be pulled. " "Set it to \"*\" to pull from all servers. Set it to \"default\" to pull from " "the default sync path. Default is pull from NO servers." msgstr "" msgid "Include" msgstr "" msgid "" "List of settings that will be pulled from the project configuration file. " "Default is include NO settings." msgstr "" msgid "Exclude" msgstr "" msgid "" "List of settings that will NOT be pulled from the project configuration " "file. Default is exclude none of the included settings." msgstr "" msgid "Update on incoming" msgstr "" msgid "" "Let the user update the projrc on incoming:
                                                                                                          • never: " "[default] Show whether the remote projrc file has changed, but do not " "update (nor ask to update) the local projrc file.
                                                                                                          • prompt: Look for " "changes to the projrc file. If there are changes _always_ show a " "confirmation prompt, asking the user if it wants to update its local projrc " "file.
                                                                                                          • auto: Look for changes to the projrc file. Use the value of " "the \"projrc.confirm\" configuration key to determine whether to show a " "confirmation dialog or not before updating the local projrc file.

                                                                                                            Default: never" msgstr "" msgid "GnuPG" msgstr "" msgid "Specify the path to GPG. Default: gpg" msgstr "" msgid "Key ID" msgstr "" msgid "GPG key ID associated with user. Default: None (leave blank)" msgstr "" msgid "TortoiseHg Settings" msgstr "TortoiseHg 設定" msgid "Iniparse package not found" msgstr "" msgid "Can't change settings without iniparse package - view is readonly." msgstr "" #, python-format msgid "%s's global settings" msgstr "%s 的全域設定" msgid "No repository found" msgstr "找不到儲存庫" msgid "no repo at " msgstr "" #, python-format msgid "%s project settings (.hg/projrc)" msgstr "" #, python-format msgid "%s repository settings" msgstr "%s 儲存庫設定" msgid "" "Restart all TortoiseHg applications for the following changes to take effect:" msgstr "請重新啟動TortoiseHg 成是讓以下更動可以生效 :" msgid "Apply changes before exit?" msgstr "離開前要套用變更嗎?" msgid "&No (discard changes)" msgstr "不要(放棄變更)(&N)" msgid "Reload" msgstr "重新載入" msgid "Settings File:" msgstr "設定檔:" msgid "Confirm Save" msgstr "確認儲存" msgid "Save changes before editing?" msgstr "編輯前儲存變更?" msgid "&Save" msgstr "儲存(&S)" msgid "Confirm Reload" msgstr "確認重新載入" msgid "" "Unsaved changes will be lost.\n" "Do you want to reload?" msgstr "" "沒有存起來的變動將會不見\n" "你想要重新載入嗎?" msgid "Unable to create a Mercurial.ini file" msgstr "不能建立 Mercurial.ini 檔案" msgid "Insufficient access rights, reverting to read-only mode." msgstr "" msgid "Context Menu" msgstr "內容選單" msgid "Top menu items:" msgstr "上層選單項目:" msgid "Sub menu items:" msgstr "子選單項目:" msgid "Menu Behavior" msgstr "選單行為" msgid "Hide context menu outside repositories" msgstr "在儲存庫外隱藏內容選單" msgid "" "Do not show menu items on unversioned folders (use shift + click to override)" msgstr "" msgid "Icons" msgstr "圖示" msgid "Overlays" msgstr "" msgid "Enabled overlays" msgstr "" msgid "Local disks only" msgstr "只限本地磁碟" msgid "Enabled Overlay Handlers" msgstr "" msgid "Warning: affects all Tortoises, logoff required after change" msgstr "注意:這會引響所有的Tortoise,變更後需要登出" msgid "Added" msgstr "已新增" msgid "Locked*" msgstr "鎖住*" msgid "Ignored*" msgstr "忽略*" msgid "Unversioned" msgstr "未列入版本控制" msgid "Readonly*" msgstr "唯讀*" msgid "Deleted*" msgstr "刪除*" msgid "*: not used by TortoiseHg" msgstr "*:未被TortoiseHg使用" msgid "Taskbar" msgstr "任務列" msgid "Show Icon" msgstr "顯示圖示" msgid "Highlight Icon" msgstr "高亮度圖示" #. i18n: URL of TortoiseSVN documentation msgid "" "https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings." "html#tsvn-dug-settings-icon-set" msgstr "" #, python-format msgid "" "You can change the icon set from TortoiseSVN's Settings" msgstr "" msgid "Explorer Extension Settings - TortoiseHg" msgstr "" msgid "Clear" msgstr "清除" msgid "Clear the current shelf file" msgstr "清除目前的擱置檔" msgid "Delete the current shelf file" msgstr "刪除目前的擱置檔" msgid "Left Toolbar" msgstr "左邊工具列" msgid "Delete selected chunks" msgstr "刪除選擇的區塊" msgid "Move all files right" msgstr "移動所有的檔案到右邊" msgid "Move selected file right" msgstr "移動選擇的檔案到右邊" msgid "Edit file" msgstr "編輯檔案" msgid "Move selected chunks right" msgstr "移動選擇的區塊到右邊" msgid "Refresh Toolbar" msgstr "重新整理工具列" msgid "Refresh" msgstr "重新整理" msgid "New Shelf" msgstr "建立新的擱置檔" msgid "Right Toolbar" msgstr "右邊工具欄" msgid "Move selected chunks left" msgstr "移動選擇的區塊到左邊" msgid "Move selected file left" msgstr "移動選擇的檔案到左邊" msgid "Move all files left" msgstr "移動所有的檔案到左邊" msgid "Backup copies of modified files can be found in .hg/Trashcan/" msgstr "" #, python-format msgid "TortoiseHg Shelve - %s" msgstr "" msgid "Delete selected chunks from working copy?" msgstr "" #, python-format msgid "Delete selected chunks from shelf file %s?" msgstr "" msgid "Are you sure?" msgstr "您確定嗎?" msgid "TortoiseHg New Shelf Name" msgstr "" msgid "Specify name of new shelf" msgstr "指定新的擱置檔名" msgid "Bad filename" msgstr "" #, python-format msgid "A shelf name cannot contain %s" msgstr "擱置檔名不能包含%s" msgid "File already exists" msgstr "檔案已經存在" msgid "A shelf file of that name already exists" msgstr "此擱置檔名已經存在" msgid "New shelf created" msgstr "新的擱置檔已建立" #, python-format msgid "Delete shelf file %s?" msgstr "刪除擱置檔%s?" msgid "Shelf deleted" msgstr "擱置檔已刪除" msgid "Revert all working copy changes?" msgstr "復原所有工作複本的變更嗎?" #, python-format msgid "Clear contents of shelf file %s?" msgstr "清除擱置檔%s的內容?" msgid "Shelf cleared" msgstr "擱置檔已清除" #, python-format msgid "Shelf: %s" msgstr "擱置: %s" #, python-format msgid "Patch: %s" msgstr "補丁: %s" msgid "Key:" msgstr "" msgid "Local sign" msgstr "本地簽名" msgid "Sign even if the sigfile is modified (-f/--force)" msgstr "即使簽名檔已被修改,仍然加註簽名 (-f/--force)" msgid "No commit" msgstr "不提交" msgid "Use custom commit message:" msgstr "使用自訂的提交訊息" msgid "&Sign" msgstr "簽名(&S)" #, python-format msgid "Sign - %s" msgstr "簽名 - %s" msgid "Signature has been added" msgstr "簽名已被加入" msgid "Repository command still running" msgstr "儲存庫命令還在執行" msgid "Filter:" msgstr "篩選:" msgid "Check all files" msgstr "檢查所有檔案" msgid "Uncheck all files" msgstr "取消勾選所有的檔案" msgid "Status File List Toolbar" msgstr "狀態檔列表工具列" msgid "Remove filter, show root" msgstr "移除過濾器,顯示最上層" #, python-format msgid "%s - status (selection filtered)" msgstr "" #, python-format msgid "%s - status" msgstr "%s - 狀態" msgid "Check" msgstr "勾選" msgid "Uncheck" msgstr "取消勾選" msgid "status" msgstr "狀態" msgid "Failed to refresh" msgstr "刷新失敗" msgid "No appropriate files" msgstr "沒有適當的檔案" msgid "No files found for this operation" msgstr "這次操作沒找到檔案" msgid "Stat" msgstr "狀態" msgid "M" msgstr "修改" msgid "Filename" msgstr "檔名" msgid "Size (KB)" msgstr "大小 (KB)" #, python-format msgid "Checked count: %d" msgstr "" msgid ", resolved merge" msgstr ",已解決的合併" msgid ", unresolved merge" msgstr ",未解決的合併" #, python-format msgid "%s is modified" msgstr "%s 已經修改了" msgid "modified" msgstr "已修改" #, python-format msgid "%s is added" msgstr "%s已新增" msgid "added" msgstr "已新增" #, python-format msgid "%s is removed" msgstr "%s 被移除了" msgid "removed" msgstr "已移除" #, python-format msgid "%s is not tracked (unknown)" msgstr "%s 沒有被追蹤(未知的)" msgid "unknown" msgstr "未知" #, python-format msgid "%s is deleted by non-hg command, but still tracked" msgstr "" msgid "missing" msgstr "遺失" #, python-format msgid "%s is ignored" msgstr "%s 被忽略" msgid "ignored" msgstr "被忽略的" #, python-format msgid "%s is not modified (clean)" msgstr "%s 沒有被修改(乾淨的)" msgid "clean" msgstr "乾淨的" #, python-format msgid "%s is a dirty subrepo" msgstr "" msgid "subrepo" msgstr "子儲存庫" msgid "Check for incoming changes from selected URL" msgstr "從選擇的URL那邊檢查可拉收的變更集" msgid "Pull incoming changes from selected URL" msgstr "從選擇的URL那邊拉收可拉收的變更集" msgid "Detect outgoing changes to selected URL" msgstr "從選擇的URL那邊檢查可推送的變更集" msgid "Push outgoing changes to selected URL" msgstr "從選擇的URL那邊推送可推送的變更集" msgid "Sync Bookmarks" msgstr "同步書籤" msgid "Email outgoing changesets for remote repository" msgstr "Email可被推送的變更集到遠端儲存庫" msgid "Manage pending perforce changelists" msgstr "" msgid "Unbundle" msgstr "解開包裹" msgid "Selected Options:" msgstr "選擇的選項:" msgid "Path Edit Toolbar" msgstr "路徑編輯工具列" msgid "Security" msgstr "安全" msgid "Manage HTTPS connection security and user authentication" msgstr "管理HTTPS連線安全以及使用者認證" msgid "Save" msgstr "儲存" msgid "Save current URL under an alias" msgstr "用一個別名把目前的URL儲存起來" msgid "Paths in Repository Settings:" msgstr "在儲存庫設定檔裡的路徑:" msgid "Related Paths:" msgstr "相關的路徑:" msgid "branch: " msgstr "分支: " msgid "bookmark: " msgstr "書籤: " #, python-format msgid "rev: %d (%s)" msgstr "" msgid "Post Pull: " msgstr "拉收之後: " msgid "&Edit..." msgstr "編輯(&E)…" msgid "&Remove..." msgstr "移除(&R)…" msgid "Repository not local" msgstr "儲存庫不是本地的" msgid "A terminal shell cannot be opened for remote" msgstr "" msgid "Confirm path delete" msgstr "確認刪除路徑" #, python-format msgid "Delete %s from your repo configuration file?" msgstr "從你的儲存庫設定檔裡刪除%s ?" msgid "Select repository" msgstr "" msgid "No host specified" msgstr "沒有指定主機" msgid "Please set a valid URL to continue." msgstr "請選擇一個可用的URL來繼續" msgid "No remote repository URL or path set" msgstr "沒有設定遠端儲存庫URL或路徑" msgid "" "No valid default remote repository URL or path has been configured " "for this repository.

                                                                                                            Please type and save a remote repository path on the " "Sync widget." msgstr "" msgid "Redundant authentication info" msgstr "" msgid "" "You have authentication info configured for this host and inside this URL. " "Remove authentication info from this URL?" msgstr "" msgid "sync command already running" msgstr "同步命令已經在執行" #, python-format msgid "Getting incoming changesets from %s..." msgstr "從%s取得可拉收的變更集" #, python-format msgid "Found incoming changesets from %s" msgstr "從%s找尋可拉收的變更集" #, python-format msgid "No incoming changesets from %s" msgstr "%s那邊沒有可拉收的變更集" #, python-format msgid "Incoming from %s aborted, ret %d" msgstr "從%s那邊檢查可拉收的變更集失敗,返回碼%d" #, python-format msgid "Pulling from %s..." msgstr "正在從 %s 拉收中..." #, python-format msgid "Pull from %s completed" msgstr "從%s拉收完成" #, python-format msgid "Pull from %s aborted, ret %d" msgstr "從%s拉收中止了,返回 %d" msgid "Merge caused file conflicts" msgstr "" msgid "File conflicts need to be resolved" msgstr "檔案衝突需要被解決" #, python-format msgid "Finding outgoing changesets to %s..." msgstr "從 %s 那邊尋找可被推送的變更集" #, python-format msgid "%d outgoing changesets to %s" msgstr "%d個可被推送的變更集到%s" #, python-format msgid "No outgoing changesets to %s" msgstr "從 %s 那邊沒有可被推送的變更集" #, python-format msgid "Outgoing to %s aborted, ret %d" msgstr "從%s檢查可被推送的變更集失敗,返回碼%d" msgid "Perforce pending..." msgstr "" #, python-format msgid "%s (submitted)" msgstr "" #, python-format msgid "%s (pending)" msgstr "" msgid "Unable to parse p4pending output" msgstr "不能剖析p4pending的輸出" #, python-format msgid "%d pending changelists found" msgstr "" msgid "No pending Perforce changelists" msgstr "" msgid "Aborted p4pending" msgstr "" msgid "Unable to determine pending changesets" msgstr "" msgid "Confirm Push to remote Repository" msgstr "確認要推送到遠端儲存庫" #, python-format msgid "" "Push to remote repository\n" "%s\n" "?" msgstr "" "真的要推送到遠端儲存庫\n" "%s\n" "嗎?" #, python-format msgid "Push to %s aborted" msgstr "推送到 %s 終止了" #, python-format msgid "" "Invalid default push revision: %s. Please check your Mercurial configuration " "(tortoisehg.defaultpush)" msgstr "" #, python-format msgid "Pushing to %s..." msgstr "推送到 %s ..." #, python-format msgid "Push to %s completed" msgstr "推送到 %s 完成了" #, python-format msgid "Push to %s aborted, ret %d" msgstr "推送到 %s 終止了,返回 %d" msgid "" "One or more of the changesets that you are attempting to push involve the " "creation of a new branch. Do you want to create a new branch in the remote " "repository?" msgstr "" msgid "Determining outgoing changesets to email..." msgstr "正在決定可被推送的變更集到Email" msgid "No outgoing changesets" msgstr "沒有可被推送的變更集" #, python-format msgid "Outgoing aborted, ret %d" msgstr "檢查可被推送的變更集失敗,返回碼%d" msgid "Select bundle file" msgstr "選擇包裹檔" msgid "Bundle files (*.hg)" msgstr "包裹檔(*.hg)" msgid "Unable to remove URL" msgstr "不能移除URL" msgid "Post Pull Behavior" msgstr "推送後的行為" msgid "Select post-pull operation for this repository" msgstr "選擇此儲存庫拉收後的動作" msgid "None - simply pull changesets" msgstr "None - 只是簡單的拉收變更回來" msgid "Update - pull, then try to update" msgstr "Update - 拉收然後嘗試update 工作副本" msgid "Fetch - use fetch (auto merge pulled changes)" msgstr "Fetch - 使用 fetch 自動合併拉收回來的變更" msgid "Fetch - use fetch extension (fetch is not active!)" msgstr "" msgid "Rebase - rebase local commits above pulled changes" msgstr "Rebase - 把本地提交的修訂版 rebase 到 拉收變更的上面" msgid "UpdateOrRebase - pull, then try to update or rebase" msgstr "" msgid "Rebase - use rebase extension (rebase is not active!)" msgstr "Rease - 使用rebase 擴充套件 (rebase 沒有啟動!)" msgid "UpdateOrRebase - use rebase extension (rebase is not active!)" msgstr "" msgid "Launch settings tool..." msgstr "開啟設定工具..." msgid "Unable to save post pull operation" msgstr "" msgid "Save Path" msgstr "儲存路徑" msgid "Alias" msgstr "別名" msgid "URL" msgstr "" msgid "Remove authentication data from URL" msgstr "" msgid "" "User authentication data should be associated with the hostname using the " "security dialog." msgstr "" msgid "Update subrepo paths" msgstr "" #, python-format msgid "" "Update or create a path alias called '%s' on all subrepos, using this URL as " "the base URL, appending the local relative subrepo path to it" msgstr "" msgid "Unable to save an URL" msgstr "不能儲存一個URL" msgid "Confirm URL replace" msgstr "確認URL取代" #, python-format msgid "%s already exists, replace URL?" msgstr "%s 已經存在,取代URL?" #, python-format msgid "" "Subrepo '%s' has a non trivial default sync URL:

                                                                                                            %s

                                                                                                            Replace it with the " "following URL?:

                                                                                                            %s" msgstr "" msgid "Security: " msgstr "安全性: " #, python-format msgid "Host: %s" msgstr "主機: %s" msgid "Secure HTTPS Connection" msgstr "加密的HTTPS連線" msgid "Verify with Certificate Authority certificates (best)" msgstr "" msgid "Verify with stored host fingerprint (good)" msgstr "" msgid "No host validation, but still encrypted (bad)" msgstr "" msgid "### host certificate fingerprint ###" msgstr "" msgid "Query" msgstr "查詢" msgid "TLS 1.0" msgstr "" msgid "TLS 1.1" msgstr "" msgid "TLS 1.2" msgstr "" msgid "Minimum Protocol" msgstr "" msgid "User Authentication" msgstr "" msgid "" "Optional. Username to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it. Environment variables are expanded in the username letting you do\n" "foo.username = $USER." msgstr "" msgid "" "Optional. Password to authenticate with. If not given, and the remote\n" "site requires basic or digest authentication, the user will be prompted for\n" "it." msgstr "" msgid "" "Mercurial keyring extension is enabled. Passwords will be stored in a " "platform-native secure method." msgstr "" msgid "" "Optional. PEM encoded client certificate key file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Key" msgstr "" msgid "" "Optional. PEM encoded client certificate chain file. Environment variables\n" "are expanded in the filename." msgstr "" msgid "User Certificate Chain" msgstr "" msgid "Certificate Query Error" msgstr "" msgid "Select User Certificate Key File" msgstr "" msgid "PEM files (*.pem *.key)" msgstr "" msgid "Select User Certificate Chain File" msgstr "" msgid "PEM files (*.pem *.crt *.cer)" msgstr "" msgid "Unable to save authentication" msgstr "不能儲存認證" #, python-format msgid "%s - sync options" msgstr "%s - 同步選項" msgid "Allow push of a new branch (--new-branch)" msgstr "允許新分支的推送(--new-branch)" msgid "Force push or pull (override safety checks, --force)" msgstr "強制推送或拉收(覆蓋安全檢查,--force)" msgid "Temporarily disable configured HTTP proxy" msgstr "" msgid "Emit debugging output (--debug)" msgstr "顯示除錯訊息(--debug)" msgid "Work on patch queue (--mq)" msgstr "工作在補丁佇列模式(--mq)" #, python-format msgid "Tag - %s" msgstr "標籤 - %s" msgid "Tag:" msgstr "標籤:" msgid "Tagged:" msgstr "" msgid "Local tag" msgstr "本地標籤" msgid "Replace existing tag (-f/--force)" msgstr "取代已存在的標籤(-f/--force)" msgid "Use English commit message" msgstr "使用英文提交訊息" msgid "local" msgstr "本地" msgid "Move" msgstr "搬移" #, python-format msgid "Moved tag %s to changeset %s (from changeset %s)" msgstr "移動標籤%s到%s變更集(從%s變更集)" #, python-format msgid "Added tag %s for changeset %s" msgstr "增加%s標籤給%s變更集" #, python-format msgid "Tag '%s' has been moved" msgstr "標籤'%s'已經移動了" #, python-format msgid "Tag '%s' has been added" msgstr "標籤'%s'已經增加了" #, python-format msgid "Removed tag %s" msgstr "移除%s標籤" #, python-format msgid "Tag '%s' has been removed" msgstr "'%s'標籤已經被移除了" msgid "Patch files (*.diff *.patch)" msgstr "補丁檔 (*.diff *.patch)" #, python-format msgid "Import - %s" msgstr "匯入 - %s" msgid "Browse Directory..." msgstr "瀏覽目錄..." msgid "Import from Clipboard" msgstr "從剪貼簿匯入" msgid "Do not strip paths (-p0), required for SVN patches" msgstr "不要剝除路徑(-p0),SVN補丁會用到" msgid "Preview:" msgstr "預覽:" msgid "Shelf" msgstr "擱置" msgid "Checking working directory status..." msgstr "正在檢查工作目錄狀態..." msgid "&Import" msgstr "匯入(&I)" msgid "Working directory is not clean! View changes..." msgstr "工作目錄不乾淨! 檢視變更..." msgid "Select patches" msgstr "選擇補丁" msgid "Select Directory containing patches" msgstr "選擇包含補丁的目錄" #, python-format msgid "%s patches" msgstr "%s 補丁" #, python-format msgid "%s will be imported to " msgstr "%s 將被匯入到 " msgid "Nothing to import" msgstr "沒啥可匯入的" msgid "Strip:" msgstr "剝除:" msgid "Discard local changes, no backup (-f/--force)" msgstr "放棄本地工作複本的變更,不備份(-f/--force)" msgid "No backup (-n/--nobackup)" msgstr "不備份 (-n/--nobackup)" msgid "Do not modify working copy during strip (-k/--keep)" msgstr "" #, python-format msgid "%d changeset will be stripped" msgid_plural "%d changesets will be stripped" msgstr[0] "%d 變更集 將會被剝除" msgid "Unknown revision!" msgstr "未知的修訂版!" msgid "Detected uncommitted local changes." msgstr "偵測沒有提交的本地工作複本變更" msgid "Do you want to keep them or discard them?" msgstr "你想保留或放棄?" msgid "&Keep (--keep)" msgstr "保留(&K)(--keep)" msgid "&Discard (--force)" msgstr "" msgid "Confirm Strip" msgstr "確認剝除" #, python-format msgid "Strip - %s" msgstr "剝除 - %s" msgid "&Strip" msgstr "剝除(&S)" msgid "Topic:" msgstr "" msgid "&Rename" msgstr "" #, python-format msgid "Topic - %s" msgstr "" #, python-format msgid "A topic named \"%s\" already exists" msgstr "" #, python-format msgid "Topic '%s' has been added" msgstr "" #, python-format msgid "Topic '%s' does not exist" msgstr "" #, python-format msgid "Topic '%s' has been removed" msgstr "" #, python-format msgid "Topic '%s' has been renamed to %s" msgstr "" msgid "Parent 1:" msgstr "母系 1:" msgid "Parent 2:" msgstr "母系 2:" msgid "Pull subrepos from:" msgstr "" msgid "List updated files (--verbose)" msgstr "列出被更新的檔案(--verbose)" msgid "Discard local changes, no backup (-C/--clean)" msgstr "放棄本地工作複本變更,不備份(-C/--clean)" msgid "Always merge (when possible)" msgstr "總是合併(盡可能的)" msgid "(same as parent)" msgstr "(跟母系一樣)" msgid "Activate bookmark?" msgstr "有作用的書籤?" #, python-format msgid "" "The selected revision (%s) has a bookmark on it called \"%s\".

                                                                                                            Do " "you want to activate it?
                                                                                                            You can disable this prompt by " "configuring Settings/Workbench/Activate Bookmarks" msgstr "" #, python-format msgid "" "The selected revision (%s) has %d bookmarks on it.

                                                                                                            Select " "the bookmark that you want to activate and click OK.

                                                                                                            Click " "Cancel if you don't want to activate any of them.

                                                                                                            You can " "disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                                                                            " msgstr "" msgid "Deactivate current bookmark?" msgstr "取消目前書籤的作用嗎?" #, python-format msgid "Do you really want to deactivate the %s bookmark?" msgstr "你真的想取消%s書籤的作用嗎?" msgid "" "Detected uncommitted local changes in working tree.\n" "Please select to continue:\n" msgstr "" "程式有偵測到本地副本有內容更動.\n" "選擇以下選項之一來繼續\n" msgid "Discard - discard local changes, no backup" msgstr "放棄本地工作複本變更,不備份" msgid "&Shelve" msgstr "擱置(&S)" msgid "Shelve - move local changes to a patch" msgstr "擱置-把目前工作副本中未提交的修改先暫放到一個補丁" msgid "Merge - allow to merge with local changes" msgstr "合併 - 允許跟本地工作複本變更作合併" msgid "Confirm Update" msgstr "確認更新" #, python-format msgid "Update - %s" msgstr "更新 - %s" msgid "[non-existant]" msgstr "[不存在]" msgid "Tool launch failure" msgstr "啟動工具失敗" #, python-format msgid "%s : %s" msgstr "%s : %s" msgid "No diff tool found" msgstr "找不到差異比對工具" msgid "No visual diff tools were detected" msgstr "偵測不到視覺化差異比對工具" msgid "[working copy]" msgstr "[工作副本]" msgid "[original]" msgstr "" msgid "Unable to find changeset" msgstr "不能找到變更集" msgid "You likely need to refresh this application" msgstr "你可能需要刷新程式" msgid "No file changes" msgstr "沒有檔案被變更" msgid "There are no file changes to view" msgstr "找不到檔案有變更,所以不用檢視了" msgid "working changes" msgstr "" #, python-format msgid "changeset %d:%s" msgstr "" #, python-format msgid "revisions %d:%s to %d:%s" msgstr "修訂版 %d:%s 到 %d:%s" msgid "Visual Diffs - " msgstr "視覺化差異比對 - " msgid " filtered" msgstr " 過濾器" msgid "Temporary files are removed when this dialog is closed" msgstr "當這個對話框關閉時暫存檔會被移除" msgid "Select Tool:" msgstr "選擇工具:" msgid "Dir diff to p1" msgstr "目錄比對到p1" msgid "Dir diff to p2" msgstr "目錄比對到p2" msgid "3-way dir diff" msgstr "三方目錄差異比對" msgid "Directory diff" msgstr "目錄差異比對" msgid "Confirm Discard" msgstr "確認丟棄" msgid "Discard outstanding changes to working directory?" msgstr "" msgid "Config files (*.conf *.config *.ini)" msgstr "" msgid "Open hgweb config" msgstr "開啟hgweb設定" msgid "Save hgweb config" msgstr "儲存hgweb設定" msgid "Path:" msgstr "路徑:" msgid "Local Path:" msgstr "本地路徑:" msgid "Select Repository" msgstr "選擇儲存庫" msgid "Add Path to Serve" msgstr "新增路徑至伺服器" msgid "Edit Path to Serve" msgstr "編輯路徑至伺服器" msgid "Local Path" msgstr "" msgid "Webconf" msgstr "" msgid "Config File:" msgstr "設定檔:" msgid "Open" msgstr "開啟" msgid "New &Workbench" msgstr "新工作台(&W)" msgid "&New Repository..." msgstr "新增儲存庫(&N)..." msgid "Clon&e Repository..." msgstr "拓製儲存庫(&e)..." msgid "&Open Repository..." msgstr "開啟儲存庫(&O)..." msgid "&File" msgstr "檔案(&F)" msgid "&View" msgstr "檢視(&V)" msgid "&Repository" msgstr "儲存庫(&R)" msgid "&Help" msgstr "說明(&H)" msgid "&Dock Toolbar" msgstr "停駐工具列(&D)" msgid "&Task Toolbar" msgstr "任務工具列(&T)" msgid "&Custom Toolbar" msgstr "自訂工具列(&C)" msgid "S&ync Toolbar" msgstr "同步工具列(&S)" msgid "&Close Repository" msgstr "關閉儲存庫(&C)" msgid "Sh&ow Repository Registry" msgstr "顯示儲存庫紀錄(&o)" msgid "Show &Patch Queue" msgstr "顯示補丁佇列(&P)" msgid "Show Conso&le" msgstr "顯示Console(&l)" msgid "Place Console in Doc&k Area" msgstr "(&k)把Console放在Dock區" msgid "R&epository Registry Options" msgstr "儲存庫登錄選項(&e)" msgid "Save Open Repositories on E&xit" msgstr "結束時儲存已開啟的儲存庫(&x)" msgid "Sa&ve Current Sync Paths on Exit" msgstr "" msgid "Show Tas&k Tab" msgstr "" msgid "&Commit" msgstr "提交(&C)" msgid "&Patch Branch" msgstr "補丁分支(&P)" msgid "Revision &Details" msgstr "修訂版細節(&D)" msgid "&Search" msgstr "搜尋(&S)" msgid "S&ynchronize" msgstr "同步化(&y)" msgid "Refresh current repository" msgstr "重新整理目前儲存庫" msgid "Refresh &Task Tab" msgstr "重新整理任務分頁(&T)" msgid "Refresh only the current task tab" msgstr "只重新整理目前的任務分頁" msgid "Load &All Revisions" msgstr "載入所有的修訂版(&A)" msgid "Load all revisions into graph" msgstr "" msgid "Go to current revision" msgstr "前往目前的修訂版" msgid "&Goto Revision..." msgstr "前往修訂版(&G)..." msgid "Go to a specific revision" msgstr "前往一個指定的修訂版" msgid "Filter graph with revision sets or branches" msgstr "顯示/隱藏過濾器" msgid "&Workbench Toolbars" msgstr "工作台工具列(&W)" msgid "&Lock File..." msgstr "" msgid "Lock or unlock files" msgstr "" msgid "Update working directory or switch revisions" msgstr "更新工作目錄或轉移至修訂版" msgid "&Shelve..." msgstr "擱置(&S)..." msgid "&Import Patches..." msgstr "匯入補丁(&I)" msgid "U&nbundle..." msgstr "解包裹(&n)..." msgid "&Merge..." msgstr "合併(&M)..." msgid "Merge with the other head of the current branch" msgstr "跟目前分支的其他標頭合併" msgid "&Resolve..." msgstr "解決衝突(&R)..." msgid "R&ollback/Undo..." msgstr "回退/復原(&o)" msgid "&Purge..." msgstr "徹底清除(&P)..." msgid "&Bisect..." msgstr "" msgid "&Verify" msgstr "驗證(&V)" msgid "Re&cover" msgstr "復原(&c)" msgid "&Web Server" msgstr "" msgid "E&xplorer Help" msgstr "瀏覽說明(&x)" msgid "&Readme" msgstr "" msgid "About &Qt" msgstr "關於Qt(&Q)" msgid "&About TortoiseHg" msgstr "關於TortoiseHg(&A)" msgid "&Incoming" msgstr "檢查可拉收的(&I)" msgid "&Pull" msgstr "拉收(&P)" msgid "&Outgoing" msgstr "檢查可推送的(&O)" msgid "P&ush" msgstr "推送(&u)" msgid "&Sync Bookmarks..." msgstr "同步書籤(&S)..." #, python-format msgid "" "pull: %s\n" "push: %s" msgstr "" msgid "" "There are no configured sync paths.\n" "Open the Synchronize tab to configure them." msgstr "" "沒有設定用來同步的路徑\n" "開啟同步化頁籤來設定吧" msgid "Check for incoming changes" msgstr "檢查可拉收的變更集" msgid "Pull incoming changes" msgstr "拉收可拉收的變更集" msgid "Detect outgoing changes" msgstr "偵測可被推送的變更集" msgid "Push outgoing changes" msgstr "推送可被推送的變更集" #, python-format msgid "" "Check for incoming changes from\n" "%s" msgstr "從 %s 那邊檢查可拉收的變更集" #, python-format msgid "" "Pull incoming changes from\n" "%s" msgstr "從 %s 那邊拉收可拉收的變更集" #, python-format msgid "" "Detect outgoing changes to\n" "%s" msgstr "從 %s 那邊偵測可被推送的變更集" #, python-format msgid "" "Push outgoing changes to\n" "%s" msgstr "從 %s 那邊推送可被推送的變更集" #, python-format msgid "Execute custom tool '%s'" msgstr "執行自訂工具 '%s'" msgid "Custom Toolbar &Settings" msgstr "自訂工具列設定(&S)" msgid "TortoiseHg Workbench" msgstr "TortoiseHg工作台" #, python-format msgid "%s - TortoiseHg Workbench - %s" msgstr "%s - TortoiseHg工作台 - %s" #, python-format msgid "%s - TortoiseHg Workbench" msgstr "%s - TortoiseHg工作台" msgid "Goto revision" msgstr "前往修訂版" msgid "Enter revision identifier" msgstr "輸入修訂版號碼" msgid "Select repository directory to open" msgstr "選擇儲存庫目錄來開啟" msgid "README not configured" msgstr "" msgid "" "A README file is not configured for the current repository.

                                                                                                            To configure a " "README file for a repository, open the repository settings file, add a " "'readme' key to the 'tortoisehg' section, and set it to the " "filename or URL of your repository's README file." msgstr "" msgid "Issue Tracker Plugin Error" msgstr "問題追蹤系統插件錯誤" msgid "Could not instantiate Issue Tracker plugin COM object" msgstr "" msgid "This error will not be shown again until you restart the workbench" msgstr "這錯誤不會再顯示,除非你重新啟動工作台" msgid "Error getting commit message information from Issue Tracker plugin" msgstr "從Issue Tracker plugin取得提交訊息時發生錯誤" msgid "Error executing \"commit finished\" trigger" msgstr "正在執行\"commit finished\"觸發器時發生錯誤" msgid "Cannot open Plugin Options dialog" msgstr "不能開啟Plugin選項對話框" msgid "do not verify server certificate (ignoring web.cacerts config)" msgstr "" msgid "[--insecure] [SOURCE]" msgstr "" #, python-format msgid "unsupported URL: %s" msgstr "" #, python-format msgid "%s certificate error: no certificate received" msgstr "" msgid "move after the specified patch" msgstr "" msgid "[--after PATCH] PATCH..." msgstr "" msgid "unknown patch to move specified" msgstr "" msgid "invalid patch position specified" msgstr "" msgid "cannot move applied patches" msgstr "" #, python-format msgid "patch %s not in series" msgstr "" msgid "cannot move into applied patches" msgstr "" msgid "abort: " msgstr "中止: " msgid "hint: " msgstr "提示: " #, python-format msgid "HTTP Error: %d (%s)" msgstr "HTTP 錯誤: %d (%s)" #, python-format msgid "URLError: %s" msgstr "URL錯誤: %s" msgid "SSL: Server certificate verify failed" msgstr "SSL:伺服器憑證驗證失敗" #, python-format msgid "SSL: unknown error %s:%s" msgstr "SSL: 未知的錯誤 %s:%s" #, python-format msgid "SSL error: %s" msgstr "SSL 錯誤: %s" msgid "hgsubversion packaged with thg" msgstr "" msgid "hggit packaged with thg" msgstr "" msgid "inotify is not supported on this platform" msgstr "這個平台不支援inotify" msgid "eol is incompatible with win32text" msgstr "eol與win32text不相容" msgid "win32text is incompatible with eol" msgstr "win32text與eol不相容" msgid "hgsubversion is incompatible with perfarce" msgstr "hgsubversion不相容perfarce" msgid "perfarce is incompatible with hgsubversion" msgstr "perfarce不相容hgsubversion" msgid "Workbench custom toolbar" msgstr "工作台自訂工具列" msgid "Revision details context menu" msgstr "修訂版詳細內容選單" msgid "Pair selection context menu" msgstr "" msgid "Multiple selection context menu" msgstr "" msgid "Commit context menu" msgstr "提交內容選單" msgid "File context menu (on manifest and revision details)" msgstr "檔案內容選單 (on manifest and revision details)" #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "%d 年" #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "%d 月" #, python-format msgid "%d week" msgid_plural "%d weeks" msgstr[0] "%d 週" #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "%d 天" #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "%d 小時" #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "%d 分" #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d 秒" msgid "in the future" msgstr "未來" msgid "now" msgstr "現在" #, python-format msgid "command parse error: %s" msgstr "命令剖析錯誤: %s" #, python-format msgid "no matches found: %s" msgstr "找不到符合的: %s" msgid "Commit..." msgstr "提交..." msgid "Commit changes in repository" msgstr "提交變更進儲存庫" msgid "Create Repository Here" msgstr "在這裡建立儲存庫" msgid "Create a new repository" msgstr "建立一個新的儲存庫" msgid "Clone..." msgstr "拓製..." msgid "Create clone here from source" msgstr "從來源建立拓製到這裡" msgid "File Status" msgstr "檔案狀態" msgid "Repository status & changes" msgstr "儲存庫的狀態與變更" msgid "Add Files..." msgstr "加入檔案..." msgid "Add files to version control" msgstr "加入檔案到版本控制" msgid "Revert Files..." msgstr "復原檔案..." msgid "Revert file changes" msgstr "復原檔案變更" msgid "Forget Files..." msgstr "忘記檔案..." msgid "Remove files from version control" msgstr "從版本控制中移除檔案" msgid "Remove Files..." msgstr "移除檔案..." msgid "Rename File" msgstr "檔案更名" msgid "Rename file or directory" msgstr "檔案或目錄更名" msgid "View change history in repository" msgstr "檢視儲存庫的變更歷史" msgid "File History" msgstr "檔案歷史" msgid "View change history of selected files" msgstr "檢視所選檔案的版本變更歷史" msgid "Shelve Changes" msgstr "擱置變更" msgid "Move changes between working dir and patch" msgstr "在工作目錄與補丁間移動變更" msgid "Synchronize" msgstr "同步" msgid "Synchronize with remote repository" msgstr "與遠端儲存庫同步" msgid "Start web server for this repository" msgstr "在這個儲存庫啟動網頁伺服器" msgid "Update..." msgstr "更新..." msgid "Update working directory" msgstr "更新工作目錄" msgid "Update Icons" msgstr "更新圖示" msgid "Update icons for this repository" msgstr "為這個儲存庫更新圖示" msgid "Global Settings" msgstr "全域設定" msgid "Configure user wide settings" msgstr "配置使用者域設定" msgid "Repository Settings" msgstr "儲存庫設定" msgid "Configure repository settings" msgstr "配置儲存庫設定" msgid "Explorer Extension Settings" msgstr "瀏覽額外套件設定" msgid "Configure Explorer extension" msgstr "配置檔案總管外掛" msgid "About TortoiseHg" msgstr "關於 TortoiseHg" msgid "Show About Dialog" msgstr "顯示關於對話框" msgid "Diff to parent" msgstr "跟母系進行差異比對" msgid "View changes using GUI diff tool" msgstr "使用圖型化差異比對工具檢視變更" msgid "Edit Ignore Filter" msgstr "編輯忽略過濾清單" msgid "Edit repository ignore filter" msgstr "編輯儲存庫忽略篩選器" msgid "Guess Renames" msgstr "推測更名" msgid "Detect renames and copies" msgstr "偵測更名跟複製" msgid "Search History" msgstr "搜尋歷史" msgid "Search file revisions for patterns" msgstr "依樣式搜尋檔案修訂" msgid "DnD Synchronize" msgstr "DnD 同步" msgid "Synchronize with dragged repository" msgstr "" #, python-format msgid "unrecognized response: %s" msgstr "" msgid "password: " msgstr "密碼: " #, python-format msgid "repository %s not found" msgstr "找不到版本庫 %s" msgid "win32ill: cannot create window for messages" msgstr "" #, python-format msgid "win32ill: unsupported platform: %s\n" msgstr "" msgid "win32ill: interrupted while stopping message loop\n" msgstr "" #~ msgid "edit failed" #~ msgstr "編輯失敗" #~ msgid "Unable to create " #~ msgstr "無法建立 " #~ msgid "_Remove" #~ msgstr "移除(_R)" #~ msgid "_Add" #~ msgstr "加入(_A)" #~ msgid "" #~ "Your username has not been configured.\n" #~ "\n" #~ "Please configure your username and try again" #~ msgstr "" #~ "您的使用者名稱還未設定。\n" #~ "\n" #~ "請設定您的使用者名稱並重試" #~ msgid " %s is larger than the specified max diff size" #~ msgstr " %s 大於指定的 diff 大小上限" #~ msgid "(version %s)" #~ msgstr "(版本 %s)" #~ msgid "Changeset Description" #~ msgstr "變更集說明" #~ msgid "_Operations" #~ msgstr "操作(_O)" #~ msgid "with %s" #~ msgstr "和 %s" #~ msgid "Copyright 2008-2010 Steve Borho and others" #~ msgstr "版權所有 2008-2010 Steve Borho 以及其他貢獻者" #~ msgid "All Files (*.*)" #~ msgstr "所有檔案 (*.*)" #~ msgid "unexpected response id: %s" #~ msgstr "非預期的回應 id: %s" #~ msgid "unknown hunk type: %s" #~ msgstr "未知的 hunk 類型: %s" #~ msgid "%s changeset " #~ msgstr "%s 變更集 " #~ msgid "Save as.." #~ msgstr "另存為..." #~ msgid "[no hunks to display]" #~ msgstr "[沒有 hunks 可以顯示]" #~ msgid "Repository Error: %s, refresh suggested" #~ msgstr "儲藏庫錯誤: %s ,建議重新整理" #~ msgid "Source path:" #~ msgstr "來源路徑:" #~ msgid "Advanced options" #~ msgstr "進階選項" #~ msgid "Branch Operations" #~ msgstr "分支操作" #~ msgid "Please specify different paths" #~ msgstr "請指定不同的路徑" #~ msgid "Please enter a valid source path" #~ msgstr "請輸入合法的來源路徑" #~ msgid "Source and destination are the same" #~ msgstr "來源和目的相同" #~ msgid "Source path is empty" #~ msgstr "來源路徑是空的" #~ msgid "Use uncompressed transfer" #~ msgstr "使用非壓縮傳輸" #~ msgid "_Commit" #~ msgstr "提交(_C)" #~ msgid "_View" #~ msgstr "檢視" #~ msgid "Close current named branch" #~ msgstr "關閉目前的命名分支 (named branch)" #~ msgid "Advanced" #~ msgstr "進階" #~ msgid "Re_vert" #~ msgstr "復原(_V)" #~ msgid "Save commit message at exit?" #~ msgstr "離開前儲存提交訊息?" #~ msgid "commit" #~ msgstr "提交" #~ msgid "Commit Preview" #~ msgstr "提交預覽" #~ msgid "Auto-includes:" #~ msgstr "自動包含:" #~ msgid "Committer:" #~ msgstr "提交者:" #~ msgid "Push after commit" #~ msgstr "提交後推送" #~ msgid "refresh top MQ patch" #~ msgstr "重新整理最上層的 MQ patch" #~ msgid "Merge " #~ msgstr "合併 " #~ msgid "close branch: " #~ msgstr "關閉分支: " #~ msgid "new branch: " #~ msgstr "新分支: " #~ msgid "create new MQ patch" #~ msgstr "建立新的 MQ patch" #~ msgid "Nothing Commited" #~ msgstr "沒有任何變更被提交" #~ msgid "Confirm Add/Remove" #~ msgstr "確認加入/移除" #~ msgid "No committable files selected" #~ msgstr "沒有選取任何可被提交的檔案" #~ msgid "" #~ "The summary line is not followed by a blank line.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "摘要後面不是緊接著空白行。\n" #~ "\n" #~ "忽略格式的規則並繼續提交嗎?" #~ msgid "Add/Remove the following files?" #~ msgstr "加入/移除下列的檔案?" #~ msgid "Commit: Invalid username" #~ msgstr "提交: 不合法的使用者名稱" #~ msgid "Message format configuration error" #~ msgstr "訊息格式設定錯誤" #~ msgid "" #~ "The summary line length of %i is greater than %i.\n" #~ "\n" #~ "Ignore format policy and continue commit?" #~ msgstr "" #~ "摘要的長度 %i 大於 %i。\n" #~ "\n" #~ "忽略格式的規則並繼續提交嗎?" #~ msgid "Confirm Commit" #~ msgstr "確認提交" #~ msgid "The summary line is not followed by a blank line" #~ msgstr "摘要之後沒有跟著一空行" #~ msgid "App_ly Format" #~ msgstr "套用格式(_l)" #~ msgid "The summary line length of %i is greater than %i" #~ msgstr "摘要長度 %i 大於 %i" #~ msgid "Message format needs to be configured" #~ msgstr "訊息格式需要被設定" #~ msgid "Paste _Filenames" #~ msgstr "貼上檔案名稱(_F)" #~ msgid "Invalid path" #~ msgstr "不合法的路徑" #~ msgid "Stop operation on current tab" #~ msgstr "停止目前分頁的操作" #~ msgid "New Search" #~ msgstr "新增查詢" #~ msgid "Open new search tab" #~ msgstr "開啟新的搜尋分頁" #~ msgid "Start this search" #~ msgstr "開始搜尋" #~ msgid "unknown mode name: %s" #~ msgstr "未知模式名稱: %s" #~ msgid "Confirm Abort" #~ msgstr "確認中止" #~ msgid "Canceled archiving" #~ msgstr "封存已取消" #~ msgid "" #~ "The destination \"%s\" already exists!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "\"%s\" 已存在!\n" #~ "\n" #~ "您想要覆蓋它嗎?" #~ msgid "" #~ "The directory \"%s\" isn't empty!\n" #~ "\n" #~ "Do you want to overwrite it?" #~ msgstr "" #~ "目錄 \"%s\" 不是空的!\n" #~ "\n" #~ "您想要覆蓋它嗎?" #~ msgid "Recent commit messages..." #~ msgstr "最近的提交訊息..." #~ msgid "Info Required" #~ msgstr "需要 Info" #~ msgid "Do you want to abort?" #~ msgstr "您想中止嗎?" #~ msgid "Old name:" #~ msgstr "舊名稱:" #~ msgid "Bookmark input is empty" #~ msgstr "所輸入的書籤是空的" #~ msgid "Please enter bookmark name" #~ msgstr "請輸入書籤名稱" #~ msgid "Bookmarking completed" #~ msgstr "書籤完成" #~ msgid "Bookmark name is empty" #~ msgstr "書籤名稱為空白" #~ msgid "Please select bookmark name to remove" #~ msgstr "請選取要移除的書籤名稱" #~ msgid "Please enter new bookmark name" #~ msgstr "請輸入新書籤名稱" #~ msgid "a bookmark named \"%s\" already exists" #~ msgstr "書籤名稱( \"%s\")己存在" #~ msgid "type" #~ msgstr "類別" #~ msgid "path" #~ msgstr "路徑" #~ msgid "browser" #~ msgstr "瀏覽" #~ msgid "_File History" #~ msgstr "檔案歷史(_F)" #~ msgid "Unable to save file" #~ msgstr "無法儲存檔案" #~ msgid "Enable _Wordwrap" #~ msgstr "啟用自動換行(_W)" #~ msgid "Toolbar" #~ msgstr "工具列" #~ msgid "_Forget" #~ msgstr "忘記(_F)" #~ msgid "Patch Preview" #~ msgstr "補丁預覽" #~ msgid "Patch Contents" #~ msgstr "補丁內容" #~ msgid "Updating..." #~ msgstr "更新中..." #~ msgid "Displaying all items" #~ msgstr "顯示全部項目" #~ msgid "Error: %s" #~ msgstr "錯誤: %s" #~ msgid "Abort: %s" #~ msgstr "中止: %s" #~ msgid "Search \"%s\"" #~ msgstr "搜尋\"%s\"" #~ msgid "Loading history..." #~ msgstr "載入歷史..." #~ msgid "_Tools" #~ msgstr "工具(_T)" #~ msgid "Contents" #~ msgstr "內容" #~ msgid "Index" #~ msgstr "索引" #~ msgid " Aborted" #~ msgstr " 失敗" #~ msgid " Messages and Errors" #~ msgstr " 訊息及錯誤" #~ msgid "Select" #~ msgstr "選取" #~ msgid "Save File" #~ msgstr "儲存檔案" #~ msgid "All files" #~ msgstr "全部檔案" #~ msgid "Select Folder" #~ msgstr "選取目錄" #~ msgid "Spell Check Language" #~ msgstr "拼寫檢查語系" #~ msgid "Send" #~ msgstr "發送" #~ msgid "Send emails" #~ msgstr "發送電子信件" #~ msgid "Test" #~ msgstr "測試" #~ msgid "Configure" #~ msgstr "配置" #~ msgid "Configure email settings" #~ msgstr "配置電子信件設定" #~ msgid "Flags:" #~ msgstr "旗幟:" #~ msgid "You must specify a recipient" #~ msgstr "你必須指定一個收件人" #~ msgid "You must specify a sender address" #~ msgstr "你必須指定一個發件人地址" #~ msgid "You must configure SMTP" #~ msgstr "你必須要設置STMP" #~ msgid "Apply to:" #~ msgstr "套用到:" #~ msgid "Remove Selected" #~ msgstr "移除選取" #~ msgid "Unknown Files" #~ msgstr "未知檔案" #~ msgid "Rename error" #~ msgstr "重新命名錯誤" #~ msgid "hgtk about" #~ msgstr "關於hgtk" #~ msgid "show the command options" #~ msgstr "顯示指令選項" #~ msgid "[-o] CMD" #~ msgstr "[-o] CMD" #~ msgid "hgtk help [COMMAND]" #~ msgstr "hgtk help [COMMAND]" #~ msgid "Move Up" #~ msgstr "移到上面" #~ msgid "Move Down" #~ msgstr "移到下面" #~ msgid "Merges" #~ msgstr "合併" #~ msgid "Branch Filter" #~ msgstr "過濾分支" #~ msgid "Custom Filter" #~ msgstr "自定過濾" #~ msgid "Keywords" #~ msgstr "關鍵字" #~ msgid "Branches..." #~ msgstr "分支..." #~ msgid "&Accept" #~ msgstr "接受(&A)" #~ msgid "&Reject" #~ msgstr "拒絕(&R)" #~ msgid "Launch web server" #~ msgstr "起動網頁伺服器" #~ msgid "Branches" #~ msgstr "分支" #~ msgid "Sync Bar" #~ msgstr "同步工具列" #~ msgid "Filter Bar" #~ msgstr "過濾工具列" #~ msgid "_Navigate" #~ msgstr "導航(_N)" #~ msgid "_Synchronize" #~ msgstr "同步作業(_S)" #~ msgid "Import..." #~ msgstr "匯入..." #~ msgid "_Filter" #~ msgstr "過濾(_F)" #~ msgid "Custom" #~ msgstr "自訂" #~ msgid "Changeset ID" #~ msgstr "變更代碼" #~ msgid "Branch Name" #~ msgstr "分支名稱" #~ msgid "Changes" #~ msgstr "變更" #~ msgid "Summary" #~ msgstr "摘要" #~ msgid "Local Date" #~ msgstr "本地時間" #~ msgid "UTC Date" #~ msgstr "UTC 時間" #~ msgid "'%s' filter:" #~ msgstr "'%s' 過濾:" #~ msgid "Filter" #~ msgstr "過濾" #~ msgid "%s branch" #~ msgstr "%s 分支" #~ msgid "Branch '%s'" #~ msgstr "分支 '%s'" #~ msgid "_Update..." #~ msgstr "更新(_U)..." #~ msgid "Load all" #~ msgstr "全部載入" #~ msgid "refresh" #~ msgstr "重新整理" #~ msgid "Delete Errors" #~ msgstr "刪除錯誤" #~ msgid "TortoiseHg Configure User-Global Settings" #~ msgstr "TortoiseHg 配置 使用者-全域設定" #~ msgid "_Edit" #~ msgstr "編輯(_E)" #~ msgid "_Test" #~ msgstr "測試(_T)" #~ msgid "History" #~ msgstr "歷史" #~ msgid "_Goto" #~ msgstr "前往(_G)" #~ msgid "_Rename" #~ msgstr "重新命名(_R)" #~ msgid "_Delete" #~ msgstr "刪除(__D)" #~ msgid "Open..." #~ msgstr "開啟..." #~ msgid "unexpected type: %s" #~ msgstr "未知型態: %s" #~ msgid "No bookmark named \"%s\" exists" #~ msgstr "該書籤名稱(\"%s\")不存在" #~ msgid "[All Files]" #~ msgstr "[全部檔案]" #~ msgid "Canceled updating" #~ msgstr "取消更新作業" #~ msgid "merging " #~ msgstr "合併 " #~ msgid " - qnew" #~ msgstr " - q新" #~ msgid " - qrefresh " #~ msgstr " - q刷新 " #~ msgid " - commit" #~ msgstr " - 提交" #~ msgid "Always Show Output" #~ msgstr "隨時顯示輸出" #~ msgid "Show/Hide Patch Queue" #~ msgstr "顯示/隱藏補丁序列" #~ msgid "_Commit (+1 head)" #~ msgstr "提交(_C) (+1 head)" #~ msgid "_Commit (-1 head)" #~ msgstr "提交(_C) (-1 head)" #~ msgid "Cannot run now" #~ msgstr "現在無法執行" #~ msgid "C_onfigure Format..." #~ msgstr "配置格式(_O)" #~ msgid "Di_splay Change" #~ msgstr "顯示變更(_S)" #~ msgid "Show all matching revisions" #~ msgstr "顯示全部符合的版次" #~ msgid "Search %d" #~ msgstr "搜尋 %d" #~ msgid "You must provide a search expression" #~ msgstr "你必須要提供一個搜尋表達式" #~ msgid "Invalid regular expression" #~ msgstr "不合法的正則表示式" #~ msgid "File is unrevisioned" #~ msgstr "檔案未進行版本管理" #~ msgid "revision number, changeset ID, branch or tag" #~ msgstr "修訂版次, 變更代碼, 包裹或者標籤" #~ msgid "" #~ "Select language for spell checking.\n" #~ "\n" #~ "Empty is for the default language.\n" #~ "When all text is highlited, the dictionary\n" #~ "is probably not installed.\n" #~ "\n" #~ "examples: en, en_GB, en_US" #~ msgstr "" #~ "選擇語言來進行拼字檢查.\n" #~ "\n" #~ "預設語言中沒有字典.\n" #~ "When all text is highlited, the dictionary\n" #~ "is probably not installed.\n" #~ "\n" #~ "例如: en, en_GB, en_US" #~ msgid "Lang \"%s\" can not be set.\n" #~ msgstr "語系 \"%s\" 無法設定\n" #~ msgid "Stop transaction" #~ msgstr "停止交易" #~ msgid "Command Log" #~ msgstr "指令日誌" #~ msgid "Glob:" #~ msgstr "全域:" #~ msgid "Filters" #~ msgstr "過濾器" #~ msgid "%s does not exist\n" #~ msgstr "%s 不存在\n" #~ msgid "(No help text available)" #~ msgstr "(沒有說明)" #~ msgid "Tags" #~ msgstr "標籤" #~ msgid "Tip" #~ msgstr "頂點" #~ msgid "Email..." #~ msgstr "電子信箱..." #~ msgid "Configure Paths..." #~ msgstr "配置路徑..." #~ msgid "merges" #~ msgstr "合併" #~ msgid "only Merges" #~ msgstr "只能合併" #~ msgid "no Merges" #~ msgstr "沒有合併" #~ msgid "Current patch: %s, " #~ msgstr "當前補丁: %s, " #~ msgid "Reject" #~ msgstr "拒絕" #~ msgid "Browse" #~ msgstr "瀏覽" #~ msgid "Abort: %s\n" #~ msgstr "中止: %s\n" #~ msgid "cannot start server: " #~ msgstr "無法啟動伺服器: " #~ msgid "Apply" #~ msgstr "套用" #~ msgid "Save As" #~ msgstr "另存新檔" #~ msgid "View" #~ msgstr "檢視" #~ msgid "I: ignored" #~ msgstr "I: 略過" #~ msgid "A: added" #~ msgstr "A: 加入" #~ msgid "C: clean" #~ msgstr "C: 清除" #~ msgid "!: deleted" #~ msgstr "!: 刪除" #~ msgid "Rename file to:" #~ msgstr "檔案更名到:" #~ msgid "Copy file to" #~ msgstr "複製檔案到" #~ msgid "Confirm Delete Unrevisioned" #~ msgstr "確認刪除未修訂版本" #~ msgid "Remove versioned" #~ msgstr "移除版本" #~ msgid "_Copy..." #~ msgstr "複製(_C)..." #~ msgid "Rename..." #~ msgstr "重新命名..." #~ msgid "Restart Merge..." #~ msgstr "重新合併..." #~ msgid "%s - synchronize" #~ msgstr "%s - 同步" #~ msgid "Repo:" #~ msgstr "修訂:" #~ msgid "Advanced Options" #~ msgstr "進階選項" #~ msgid "Show no merges" #~ msgstr "顯示未合併" #~ msgid "Update to branch tip" #~ msgstr "更新到該分支的tip版次" #~ msgid "unknown sort key '%s'" #~ msgstr "未知的排序鍵值 '%s'" #~ msgid "Tag is local" #~ msgstr "本地標籤" #~ msgid "Message Line Length" #~ msgstr "訊息行數" #~ msgid "Toolbar Style" #~ msgstr "工具列樣式" #~ msgid "Commit Message" #~ msgstr "提交訊息" #~ msgid "File List" #~ msgstr "檔案清單" #~ msgid "http" #~ msgstr "http" #~ msgid "ssh" #~ msgstr "ssh" #~ msgid "https" #~ msgstr "https" #~ msgid "Folder" #~ msgstr "目錄" #~ msgid "Select Local Folder" #~ msgstr "選擇本地資料夾" #~ msgid "Alias name is empty" #~ msgstr "別名為空" #~ msgid "Please enter alias name" #~ msgstr "請輸入別名" #~ msgid "Font" #~ msgstr "字型" #~ msgid "Import" #~ msgstr "匯入" #~ msgid "Select Patches" #~ msgstr "選擇補丁" #~ msgid "#" #~ msgstr "#" #~ msgid "Patch" #~ msgstr "補綴" #~ msgid "Yes (&keep)" #~ msgstr "是 (保持(&K))" #~ msgid "Top" #~ msgstr "最上層" #~ msgid "Up" #~ msgstr "上" #~ msgid "Down" #~ msgstr "下" #~ msgid "Bottom" #~ msgstr "最下層" #~ msgid "_Finish Applied" #~ msgstr "完成應用(_F)" #~ msgid "F_old" #~ msgstr "折疊(_O)" #~ msgid "Backup all (default)" #~ msgstr "備份全部(預設)" #~ msgid "&Quit" #~ msgstr "離開(&Q)" #~ msgid "Try &Again" #~ msgstr "再試一次(&A)" #~ msgid "this is a binary file\n" #~ msgstr "這是一個二進位檔案\n" #~ msgid "user quit" #~ msgstr "使用者退出" #~ msgid " and " #~ msgstr " 和 " #~ msgid "backup %r as %r\n" #~ msgstr "備份 %r 從 %r\n" #~ msgid "applying patch\n" #~ msgstr "套用補丁\n" #~ msgid "File is binary.\n" #~ msgstr "檔案是二進位檔案\n" #~ msgid "File is larger than the specified max size.\n" #~ msgstr "檔案size比所描述最大的size還大\n" #~ msgid "file %s already exists\n" #~ msgstr "\"%s\"檔案已經存在\n" #~ msgid "TortoiseHg Clone" #~ msgstr "TortoiseHg 拓製" #~ msgid "Destination path is empty" #~ msgstr "目的地路徑是空的" #~ msgid "Add special files (.hgignore, ...)" #~ msgstr "增加特別的檔案 (.hgignore, ...)" #~ msgid "Error when creating repository" #~ msgstr "建立儲存庫時錯誤" #~ msgid "Failed to clone" #~ msgstr "拓製失敗" #~ msgid "Cloned successfully" #~ msgstr "拓製成功" #~ msgid "Clone" #~ msgstr "拓製" #~ msgid "Push this Branch" #~ msgstr "推送這個分支" #~ msgid "Patch Branch" #~ msgstr "補丁分支" #~ msgid "Show/Hide Patch Branch" #~ msgstr "顯示/隱藏 補丁分支" #~ msgid "Pushing branch %s..." #~ msgstr "正在推送分支 %s 中..." #~ msgid "Allow pushing a new branch" #~ msgstr "允許推送一個新的分支" #~ msgid "Show internal branches" #~ msgstr "顯示內部分支" #~ msgid "Patch branch finished" #~ msgstr "補丁分支已完成" #~ msgid "rename error" #~ msgstr "重新命名錯誤" #~ msgid "Error while reading status" #~ msgstr "讀取訊息時錯誤" #~ msgid "Please enter the directory path" #~ msgstr "請輸入目錄" #~ msgid "" #~ "** Please report this bug to http://bitbucket.org/tortoisehg/stable/" #~ "issues\n" #~ msgstr "**請到 http://bitbucket.org/tortoisehg/stable/issues 回報bug\n" #~ msgid "Please try again after the previous command has completed" #~ msgstr "請在先前的命令完成後再試一次" #~ msgid "Please try again after the running operation is completed" #~ msgstr "請在執行操作完成後再試一次" #~ msgid ", please refresh" #~ msgstr ", 請刷新" #~ msgid "Please enter or select a remote path" #~ msgstr "請輸入或選擇一個遠端路徑" #~ msgid "Parent: %(rev)s" #~ msgstr "母系: %(rev)s" #~ msgid "Working Parent" #~ msgstr "工作母系" #~ msgid "working parents" #~ msgstr "工作母系" #~ msgid "Unable to create new repository" #~ msgstr "不能建立新的儲存庫" #~ msgid "There is no Mercurial repository here (.hg not found)" #~ msgstr "這裡沒有Mercurial儲存庫(我找不到.hg目錄)" #~ msgid "No repository found here" #~ msgstr "這邊找不到儲存庫" #~ msgid "Repository Explorer" #~ msgstr "儲存庫瀏覽器" #~ msgid "No repository selected" #~ msgstr "沒有選擇儲存庫" #~ msgid "import to the repository" #~ msgstr "匯入到儲存庫" #~ msgid "" #~ "Push to remote repository\n" #~ "%s\n" #~ "(creating new branches in remote if needed)?" #~ msgstr "" #~ "真的要推送到遠端儲存庫\n" #~ "%s\n" #~ "(如果有需要的話在遠端建立新的標頭)嗎?" #~ msgid "Confirm Push of New Branches to Remote Repository" #~ msgstr "確認推送新的分支到遠端儲存庫" #~ msgid "Confirm Forced Push to Remote Repository" #~ msgstr "確認強制推送到遠端儲存庫" #~ msgid "Clean repository '%s' ?" #~ msgstr "清除儲存庫 '%s' ?" #~ msgid "" #~ "Forced push to remote repository\n" #~ "%s\n" #~ "(creating new heads in remote if needed)?" #~ msgstr "" #~ "真的要推送到遠端儲存庫\n" #~ "%s\n" #~ "(如果有需要的話在遠端建立新的標頭)嗎?" #~ msgid "Unable to determine repository status" #~ msgstr "無法判斷儲存庫狀態" #~ msgid "Confirm clean repository" #~ msgstr "確認清除儲存庫" #~ msgid "Pull changes from selected repository" #~ msgstr "從選擇的儲存庫中拉收變更" #~ msgid "TortoiseHg Configure Repository - " #~ msgstr "TortoiseHg 配置儲存庫 - " #~ msgid "Edit remote repository path" #~ msgstr "編輯遠端儲存庫路徑" #~ msgid "Remote repository paths" #~ msgstr "遠端儲存庫路徑" #~ msgid "Repository Path" #~ msgstr "儲存庫路徑" #~ msgid "No Repository Found" #~ msgstr "找不到儲存庫" #~ msgid "%s will be imported to the repository" #~ msgstr "%s 將會被匯入到儲存庫" #~ msgid "Repository is empty" #~ msgstr "儲存庫是空的" #~ msgid "Ambiguous Revision" #~ msgstr "曖昧不明的修訂版" #~ msgid "Unrevisioned Files" #~ msgstr "未受版本控管的檔案" #~ msgid "Select Revision" #~ msgstr "選取修訂版" #~ msgid "Invalid Revision" #~ msgstr "無效的修訂版" #~ msgid "Reset revision marks" #~ msgstr "重設修訂版標記" #~ msgid "Load more Revisions" #~ msgstr "載入更多修訂版" #~ msgid "Load all Revisions" #~ msgstr "載入所有修訂版" #~ msgid "Revision..." #~ msgstr "修訂版..." #~ msgid "Reload revision history" #~ msgstr "重新載入修訂版歷史" #~ msgid "Revision Number" #~ msgstr "修訂版號碼" #~ msgid "Revision Number/ID" #~ msgstr "修訂版號碼/ID" #~ msgid "Import Revision to MQ" #~ msgstr "匯入修訂版到MQ" #~ msgid "Revision Range" #~ msgstr "修訂版範圍" #~ msgid "No revisions matched search" #~ msgstr "沒有修訂版符合搜尋" #~ msgid "load more revisions" #~ msgstr "載入更多修訂版" #~ msgid "load all revisions" #~ msgstr "載入所有修訂版" #~ msgid "Current revision (local)" #~ msgstr "目前的修訂版(本地)" #~ msgid "Annotate" #~ msgstr "加註" #~ msgid "_Annotate File" #~ msgstr "加註檔案(_A)" #~ msgid "Annotate Second Parent" #~ msgstr "加註第二個母系" #~ msgid "_Annotate First Parent" #~ msgstr "加註第一個母系(_A)" #~ msgid "_Annotate Parent" #~ msgstr "加註母系(_A)" #~ msgid "Unable to annotate " #~ msgstr "不能加註 " #~ msgid "binary patch is %d bytes, not %d" #~ msgstr "二進位補丁是 %d bytes ,而不是 %d" #~ msgid "could not extract binary patch" #~ msgstr "不能取出二進位補丁" #~ msgid "patching file %s\n" #~ msgstr "正在補丁檔案 %s 中...\n" #~ msgid "hgtk: unknown command '%s'\n" #~ msgstr "hgtk: 未知的命令 '%s'\n" #~ msgid "" #~ "hgtk: command '%s' is ambiguous:\n" #~ " %s\n" #~ msgstr "" #~ "hgtk:命令 '%s' 曖昧不明:\n" #~ "%s\n" #~ msgid "undo recent commit" #~ msgstr "復原(undo)最近的提交" #~ msgid "Confirm Undo Commit" #~ msgstr "確認復原(undo)提交" #~ msgid "Undo" #~ msgstr "復原" #~ msgid "Confirm undo merge" #~ msgstr "確認復原(undo)合併" #~ msgid "Undo Commit" #~ msgstr "復原(undo)提交" #~ msgid "Canceled undo" #~ msgstr "復原(undo)被取消" #~ msgid "Undo successfully" #~ msgstr "復原(undo)完成" #~ msgid "Failed to undo" #~ msgstr "復原(undo)失敗" #~ msgid "Diff" #~ msgstr "Diff" #~ msgid "" #~ "Unable to undo!\n" #~ "\n" #~ "Tip revision differs from last commit." #~ msgstr "" #~ "無法復原(undo)!\n" #~ "tip修訂版不同於最後一次提交的" #~ msgid "Ignore Max Diff Size" #~ msgstr "忽略最大Diff大小" #~ msgid "Text Diff" #~ msgstr "文字Diff" #~ msgid "Diff Text" #~ msgstr "Diff文字" #~ msgid "Visual Diffs" #~ msgstr "視覺化Diffs" #~ msgid "New Patch Name" #~ msgstr "新增補丁名字" #~ msgid "Capture stderr" #~ msgstr "抓取標準錯誤(stderr)" #~ msgid "Failed to import" #~ msgstr "匯入失敗" #~ msgid "Failed to update" #~ msgstr "更新失敗" #~ msgid "Failed to merge" #~ msgstr "合併失敗" #~ msgid "Failed to commit" #~ msgstr "提交失敗" #~ msgid "Commit failed" #~ msgstr "提交失敗" #~ msgid "abort: backup restore failed, %s\n" #~ msgstr "終止:備份儲存失敗,%s\n" #~ msgid "removing backup file : %r\n" #~ msgstr "移除備份檔中: %r\n" #~ msgid "restoring %r to %r\n" #~ msgstr "儲存 %r 到 %r\n" #~ msgid "restoring backup files\n" #~ msgstr "儲存備份檔中\n" #~ msgid "Refresh required" #~ msgstr "刷新要求" #~ msgid "Merge target (other)" #~ msgstr "合併目標(其他)" #~ msgid "Canceled merging" #~ msgstr "合併正在取消中" #~ msgid "Merged successfully" #~ msgstr "合併完成" #~ msgid "Use merge tool:" #~ msgstr "使用合併工具:" #~ msgid "Save patch to" #~ msgstr "儲存補丁到" #~ msgid "Select files to forget" #~ msgstr "忘記選擇的檔案" #~ msgid "Select files to add" #~ msgstr "新增選擇的檔案" #~ msgid "Cannot merge" #~ msgstr "不能合併" #~ msgid "Failed" #~ msgstr "已失敗" #~ msgid "Canceled" #~ msgstr "已取消" #~ msgid "Submit" #~ msgstr "送出" #~ msgid "Select files to remove" #~ msgstr "移除選擇的檔案" #~ msgid "[command interrupted]" #~ msgstr "[命令中斷了]" #~ msgid "command is running" #~ msgstr "命令正在執行" #~ msgid "Cannot close now" #~ msgstr "現在不能關閉" #~ msgid "Rename " #~ msgstr "重新命名 " #~ msgid "HTTP Port:" #~ msgstr "HTTP 埠號:" #~ msgid "Launch browser to view repository" #~ msgstr "啟動瀏覽器去檢視儲存庫" #~ msgid "Start server" #~ msgstr "啟動伺服器" #~ msgid "Stop server" #~ msgstr "停止伺服器" #~ msgid "" #~ "Server process is still running\n" #~ "Exiting will stop the server." #~ msgstr "" #~ "伺服器還在執行\n" #~ "離開時將停止伺服器." #~ msgid "Configure web settings" #~ msgstr "確認web設定" #~ msgid "Confirm Really Exit?" #~ msgstr "確認真的離開?" #~ msgid "Defaulting to " #~ msgstr "預設到 " #~ msgid "Invalid port 2048..65535" #~ msgstr "無效的埠號 2048~65536" #~ msgid "listening at http://%s%s/%s (%s:%d)\n" #~ msgstr "正在http://%s%s/%s (%s:%d)傾聽\n" #~ msgid "address to use" #~ msgstr "使用的位址" #~ msgid "port to use (default: 8000)" #~ msgstr "使用的埠號(預設 8000)" #~ msgid "SSL certificate file" #~ msgstr "SSL 憑證檔案" #~ msgid "%d selected, %d total" #~ msgstr "選擇了 %d個,總共 %d個" #~ msgid "Save Preview" #~ msgstr "儲存預覽" #~ msgid "Shelf Preview" #~ msgstr "自我預覽" #~ msgid "Finished pull" #~ msgstr "完成拉收" #~ msgid "After Pull:" #~ msgstr "拉收之後:" #~ msgid "Force pull or push" #~ msgstr "強制拉收或推送" #~ msgid "No changesets to pull" #~ msgstr "沒有變更集可拉收" #~ msgid "Pull to %s" #~ msgstr "拉收到 %s" #~ msgid "Pulling changesets to revision %s..." #~ msgstr "拉收變更集到%s修訂版" #~ msgid "Finished pull to revision %s" #~ msgstr "啦收到修訂版 %s 完成了" #~ msgid "Aborted pull" #~ msgstr "拉收終止了" #~ msgid "Pulling changesets..." #~ msgstr "拉收變更集中..." #~ msgid " Pull " #~ msgstr " 拉收 " #~ msgid "Push to Here" #~ msgstr "推送到這裡" #~ msgid "Push" #~ msgstr "推送" #~ msgid "Push new branch" #~ msgstr "推送新的分支" #~ msgid "Aborted push" #~ msgstr "推送終止了" #~ msgid "Finished push" #~ msgstr "完成推送" #~ msgid "Forced &Push" #~ msgstr "強制推送(&P)" #~ msgid "Pushing changesets..." #~ msgstr "正在推送變更集中..." #~ msgid "Finished push to revision %s" #~ msgstr "推送到修訂版%s 完成了" #~ msgid "Finished pushing branch %s" #~ msgstr "完成了推送中的%s分支" #~ msgid "" #~ "Forced push to repository\n" #~ "%s\n" #~ "(creating new heads if needed)?" #~ msgstr "" #~ "真的要強制推送到儲存庫\n" #~ "%s\n" #~ "(如果有需要的話建立新標頭)嗎?" #~ msgid "Push to %s" #~ msgstr "推送到%s" #~ msgid "Pushing changesets to revision %s..." #~ msgstr "推送變更集到%s修訂版" #~ msgid "Confirm Forced Push" #~ msgstr "確認強制推送" #~ msgid "tag '%s' is not a global tag" #~ msgstr "'%s'標籤不是一個全域標籤" #~ msgid "View missing" #~ msgstr "檢視遺失" #~ msgid "View other" #~ msgstr "檢視其他" #~ msgid "cleaning up temp directory\n" #~ msgstr "清潔暫存目錄\n" #~ msgid "Bookmark \"%s\" has been moved" #~ msgstr "書籤\"%s\"已經被移動" #~ msgid "Bookmark \"%s\" has been added" #~ msgstr "書籤'%s'已經被新增" #~ msgid "Bookmark \"%s\" has been renamed to \"%s\"" #~ msgstr "書籤\"%s\"已經被更名成\"%s\"" #~ msgid "Bookmark \"%s\" has been removed" #~ msgstr "書籤\"%s\"已經被移除" #~ msgid "User global settings" #~ msgstr "使用者全域設定" #~ msgid "Confirm Close" #~ msgstr "確認關閉" #~ msgid "Confirm Fold" #~ msgstr "確認折疊" #~ msgid "tag '%s' is not a local tag" #~ msgstr "'%s'不是一個本地標籤" #~ msgid "tag '%s' does not exist" #~ msgstr "Tag '%s' 不存在" #~ msgid "Specify the visual editor used to view files, etc" #~ msgstr "描述視覺化編輯器來檢視檔案,etc" #~ msgid "Tag '%s' already exist" #~ msgstr "Tag '%s' 已經存在" #~ msgid "Unable to find rev %s" #~ msgstr "找不到%s修訂版" #~ msgid "Unable to parse a config file" #~ msgstr "不能剖析設定檔" #~ msgid "Unable to delete temp files" #~ msgstr "不能刪除暫存檔" #~ msgid "unable to clean temp directory: %s\n" #~ msgstr "不能清除暫存目錄: %s\n" #~ msgid "No remote path specified" #~ msgstr "沒有描述遠端路徑" #~ msgid "Overwrite existing '%s' path?" #~ msgstr "覆寫已存在的'%s'路徑?" #~ msgid "file patterns \"%s\"" #~ msgstr "檔案樣式\"%s\"" #~ msgid "File Patterns" #~ msgstr "檔案樣式" #~ msgid "Invalid file pattern" #~ msgstr "無效的檔案樣式" #~ msgid "Move files to directory..." #~ msgstr "移動檔案到目錄..." #~ msgid "Preset fonts:" #~ msgstr "預設字型;" #~ msgid "Custom fonts:" #~ msgstr "自訂字型;" #~ msgid "Theme default fonts" #~ msgstr "Theme 預設字型" #~ msgid "Connect to mail server using TLS. Default: False" #~ msgstr "使用TLS連接郵件伺服器. 預設:不啟用" #~ msgid "run server in background" #~ msgstr "在背景運行伺服器" #~ msgid "View '%s'" #~ msgstr "檢視 ‘%s’" #~ msgid "Yes (&discard changes)" #~ msgstr "好的(放棄變更)(&d)" #~ msgid "&Yes (--force)" #~ msgstr "好的(&Y)(--force)" #~ msgid "&Yes (backup changes)" #~ msgstr "好的(&Y)(備份變更)" #~ msgid "Close this" #~ msgstr "關閉這個" #~ msgid "Do you want to close?" #~ msgstr "你想關閉嗎?" #~ msgid "" #~ "If true, concatenate multiple lines of changeset summary until they reach " #~ "80 characters. Default: False" #~ msgstr "假如是 true的話,串聯多行的變更摘要,直到他們達到80個字符 預設:False" #~ msgid "TortoiseHg Shell Configuration" #~ msgstr "TortoiseHg命令列設置" #~ msgid "Verify" #~ msgstr "驗證" #~ msgid "Show the taskbar icon (restart needed)" #~ msgstr "顯示任務列圖示(需要重新啟動)" #~ msgid "Toggle all selections" #~ msgstr "顯示/隱藏所有的選擇" #~ msgid "Toggle log window" #~ msgstr "顯示/隱藏紀錄視窗" #~ msgid "unknown field name: %s" #~ msgstr "未知的欄位名稱: %s" #~ msgid "invalid alignment value: %s" #~ msgstr "無效的對齊數值: %s" #~ msgid "Display changes that can be pulled from selected repository" #~ msgstr "顯示將從選擇的儲存庫拉收回來的變更" #~ msgid "Target revision:" #~ msgstr "目標修訂版:" #~ msgid "Custom commit message is empty" #~ msgstr "自訂提交訊息是空的" #~ msgid "Replace existing tag" #~ msgstr "取代已存在的標籤" #~ msgid "Add/Remove _Tag..." #~ msgstr "新增/移除 標籤_T" #~ msgid "Tag input is empty" #~ msgstr "標籤輸入是空的" #~ msgid "Tag" #~ msgstr "標籤" #~ msgid "Tag name is empty" #~ msgstr "標籤名字是空的" #~ msgid "Please select tag name to remove" #~ msgstr "請選擇標籤名字來移除他" #~ msgid "Please enter tag name" #~ msgstr "請輸入一個標籤名字" #~ msgid "Tag \"%s\" has been added" #~ msgstr "'%s'標籤已經新增" #~ msgid "Tagging completed" #~ msgstr "標籤完成" #~ msgid "a tag named \"%s\" already exists" #~ msgstr "'%s'標籤名字已經存在" #~ msgid "Tag \"%s\" has been removed" #~ msgstr "'%s'標籤已經移除" #~ msgid "Show status" #~ msgstr "顯示狀態" #~ msgid "&Push" #~ msgstr "推送(&P)" #~ msgid "Importing" #~ msgstr "匯入中" #~ msgid "Stop the hg operation" #~ msgstr "停止hg操作" #~ msgid "Successfully" #~ msgstr "成功" #~ msgid "Do you want to delete these patches?" #~ msgstr "你想刪除這些補丁?" #~ msgid "Unable to apply patch" #~ msgstr "無法套用補丁" #~ msgid "Unapply last patch" #~ msgstr "反套用最後的補丁" #~ msgid "Apply next patch" #~ msgstr "套用下一個補丁" #~ msgid "Importing to Patch Queue..." #~ msgstr "匯入到補丁佇列..." #~ msgid "Show patches" #~ msgstr "顯示補丁" #~ msgid "Accept Bundle" #~ msgstr "接受綁兜(Bundle)" #~ msgid "Reject Bundle" #~ msgstr "拒絕綁兜(Bundle)" #~ msgid "Mercurial bundles" #~ msgstr "Mercurial綁兜(bundles)" #~ msgid "Bundle..." #~ msgstr "綁兜(Bundle)..." #~ msgid "Select a Mercurial Bundle" #~ msgstr "選取一個Mercurial綁兜(Bundle)" #~ msgid "Add Bundle..." #~ msgstr "加入綁兜(Bundle)" #~ msgid " (Bundle Preview)" #~ msgstr " (預覽綁兜)(Bundle Preview)" #~ msgid "Failed to preview, not a Mercurial bundle file" #~ msgstr "預覽失敗,不是一個Mercurial綁兜檔(bundle file)" #~ msgid "Open Bundle" #~ msgstr "開啟綁兜(Bundle)" #~ msgid "Applying bundle..." #~ msgstr "套用綁兜(Bundle)中..." #~ msgid "Applying bundle" #~ msgstr "套用綁兜(Bundle)中" #~ msgid "Bundle Preview" #~ msgstr "綁兜(Bundle)預覽" #~ msgid "Bundle (*.hg)" #~ msgstr "綁兜(Bundle)(*.hg)" #~ msgid "Bundle (*)" #~ msgstr "綁兜(Bundle)(*)" #~ msgid "Bundle:" #~ msgstr "綁兜(Bundle):" #~ msgid "Select Bundle" #~ msgstr "選擇綁兜(Bundle)" #~ msgid "Failed to bundle" #~ msgstr "綁兜(bundle)失敗" #~ msgid "Write bundle to" #~ msgstr "寫入綁兜(bundle)到" #~ msgid "Show title" #~ msgstr "顯示標題" #~ msgid "Always show log" #~ msgstr "總是顯示log" #~ msgid "Show message" #~ msgstr "顯示訊息" #~ msgid "Choose Details..." #~ msgstr "選擇細節..." #~ msgid "Launch commit tool" #~ msgstr "啟動提交工具" #~ msgid "Launch data mining tool" #~ msgstr "啟動資料採礦工具" #~ msgid "Accept new Changesets" #~ msgstr "接受新的變更集" #~ msgid "Identify" #~ msgstr "識別" #~ msgid "Mark resolved" #~ msgstr "標示為已解決" #~ msgid "Mark unresolved" #~ msgstr "標示為未解決" #~ msgid "Reset Marks" #~ msgstr "重設標記" #~ msgid "Mark as Good" #~ msgstr "標記是好的" #~ msgid "Reset _Marks" #~ msgstr "重設標記(_M)" #~ msgid "Add/Move/Remove B_ookmark..." #~ msgstr "新增/移動/移除 書籤(_o)" #~ msgid "Mark as Bad" #~ msgstr "標記是壞的" #~ msgid "Failed to strip" #~ msgstr "剝除失敗" #~ msgid "Canceled stripping" #~ msgstr "取消剝除" #~ msgid "Stripped successfully" #~ msgstr "剝除成功" #~ msgid "Strip Revision..." #~ msgstr "剝除修訂版..." #~ msgid "Strip" #~ msgstr "剝除" #~ msgid "%s will be stripped" #~ msgstr "%s將被剝除" #~ msgid "Font used in command output window. Default: monospace 10" #~ msgstr "指令輸出視窗的字型.預設:monospace 10" #~ msgid "Command Output" #~ msgstr "指令輸出" #~ msgid "Character encoding name" #~ msgstr "字元編碼名稱" #~ msgid "Export" #~ msgstr "匯出" #~ msgid "_Export Patch..." #~ msgstr "匯出補丁(_E)" #~ msgid "R: removed" #~ msgstr "R:已移除" #~ msgid "M: modified" #~ msgstr "M: 已修改" #~ msgid "_Help" #~ msgstr "說明(_H)" #~ msgid "Errors during rollback!" #~ msgstr "RollBack時發生錯誤了! ><" #~ msgid "Rollback repository '%s' to %d, undo %s?" #~ msgstr "Rollback 儲存庫 '%s' 到 %d,undo %s?" #~ msgid "Rollback repository '%s' to %d, undo %s from %s?" #~ msgstr "Rollback 儲存庫 '%s' 到 %d,undo %s 從 %s ?" #~ msgid "Rollback repository '%s' ?" #~ msgstr "RollBack儲存庫 '%s' ?" #~ msgid "Confirm rollback repository" #~ msgstr "確認RollBack儲存庫" #~ msgid "_Undo" #~ msgstr "復原[Undo](_U)" #~ msgid "Please select diff chunks to shelve" #~ msgstr "請選擇不同的區塊去shelve" #~ msgid "Unsupported line endings type: %s" #~ msgstr "不支援的行結束類型: %s" #~ msgid "revisions %d to %d" #~ msgstr "修訂版 %d 到 %d" #~ msgid "changeset " #~ msgstr "變更集 " #~ msgid "Updated successfully" #~ msgstr "更新成功" #~ msgid "Saved at: %s" #~ msgstr "儲存在: %s" #~ msgid "[canceled by user]\n" #~ msgstr "[被使用者cancel掉]\n" #~ msgid "%s changesets" #~ msgstr "%s 變更集" #~ msgid "Canceled importing" #~ msgstr "匯入取消" #~ msgid "Configure Plugin" #~ msgstr "外掛組態設定" #~ msgid "Imported successfully" #~ msgstr "匯入成功" #~ msgid "%s will be imported to the" #~ msgstr "%s 將被匯入成" #~ msgid "Exit after saving changes?" #~ msgstr "儲存變更後離開嗎?" #~ msgid "Switch after saving changes?" #~ msgstr "儲存變更後切換嗎?" #~ msgid "Confirm Switch" #~ msgstr "確認切換" #~ msgid "_Delete unversioned" #~ msgstr "(_D)刪除未受版本控管的檔案" #~ msgid "_Ignore" #~ msgstr "(_I)忽略" #~ msgid "Diff to Local" #~ msgstr "跟本地工作複本做Diff" #~ msgid "Diff to _local" #~ msgstr "(_l)與本地工作複本做Diff" #~ msgid "_Diff to Local" #~ msgstr "(_D)與本地工作複本做Diff" #~ msgid "Uncommitted local changes" #~ msgstr "未提交的本地工作複本變更" #~ msgid "Uncommitted Local Changes" #~ msgstr "未提交的本地工作複本變更" #~ msgid "Push local changes to selected repository" #~ msgstr "推送本地工作複本變更到選擇的儲存庫" #~ msgid "Display local changes that will be pushed to selected repository" #~ msgstr "顯示將推送到選擇的儲存庫的本地工作複本變更" #~ msgid "Launch recovery tool" #~ msgstr "啟動 recovery 工具" #~ msgid "Recover from interrupted operation" #~ msgstr "從被中斷的操作那邊開始recover" #~ msgid "_Revert File Contents" #~ msgstr "_Revert檔案內容" #~ msgid "Select files to revert" #~ msgstr "選擇要revert的檔案" #~ msgid "Confirm revert file to old revision" #~ msgstr "確認revert檔案至舊的修訂版" #~ msgid "Confirm Revert All Files" #~ msgstr "確認Revert所有的檔案" #~ msgid "" #~ "Revert all files to revision %d?\n" #~ "This will overwrite your local changes" #~ msgstr "真的要revert所有的檔案到%d修訂版?這將會覆寫你的本地工作複本變更" #~ msgid "Revert files?" #~ msgstr "revert檔案?" #~ msgid "" #~ "%s\n" #~ "Reverting to read-only mode." #~ msgstr "" #~ "%s\n" #~ "Revert到唯讀模式" #~ msgid "Revert not allowed when viewing revision range." #~ msgstr "當檢視修訂版區間時不可revert" #~ msgid "Nothing Reverted" #~ msgstr "沒什麼可以revert" #~ msgid "No revertable files selected" #~ msgstr "沒有可revert的檔案被選上" #~ msgid "Revert files to revision %s?" #~ msgstr "revert檔案到%s修訂版?" #~ msgid "URL Details" #~ msgstr "URL 細節" #~ msgid "Log Details" #~ msgstr "Log細節" #~ msgid "Show line numbers" #~ msgstr "顯示行號" #~ msgid "S: subrepo" #~ msgstr "S:子儲存庫" #~ msgid "Email outgoing changes" #~ msgstr "Email可被推送的變更" #~ msgid "Outgoing" #~ msgstr "可被推送的" #~ msgid "Email outgoing changesets" #~ msgstr "Email可被推送的變更集" #~ msgid "Push outgoing changesets" #~ msgstr "推送可被推送的變更集" #~ msgid "Incoming/Outgoing" #~ msgstr "可拉收的/可推送的" #~ msgid "Checking outgoing changesets..." #~ msgstr "檢查可被推送的變更集..." #~ msgid "Download and view incoming changesets" #~ msgstr "下載和檢視可拉收的變更集" #~ msgid "Pull incoming changesets" #~ msgstr "拉收可拉收的變更集" #~ msgid "%d incoming changesets" #~ msgstr "%d個可拉收的變更集" #~ msgid "Incoming" #~ msgstr "可拉收" #~ msgid "No incoming changesets" #~ msgstr "沒有可拉收的變更集" #~ msgid "Checking incoming changesets..." #~ msgstr "檢查可拉收的變更集..." #~ msgid "" #~ "Detected uncommitted local changes.\n" #~ "Do you want to discard them and continue?" #~ msgstr "" #~ "偵測到沒有提交的本地工作複本變更.\n" #~ "你想放棄這些變更然後繼續下去?" #~ msgid "invalid dialog result: %s" #~ msgstr "無效的對話框返回:%s" #~ msgid "Backup unrelated changesets (-b/--backup)" #~ msgstr "備份沒有關聯的變更集(-b/--backup)" #~ msgid "" #~ "Detected uncommitted local changes in working tree.\n" #~ "Please select to continue:\n" #~ "\n" #~ msgstr "" #~ "偵測到沒有提交的本地工作複本變更.\n" #~ "請選擇一個選項來繼續下去:\n" #~ "\n" #~ msgid "Show name" #~ msgstr "顯示名稱" #~ msgid "Show graph" #~ msgstr "顯示圖形" #~ msgid "A new version of TortoiseHg is ready for download!" #~ msgstr "新版 TortoiseHg 已經可以下載了!" #~ msgid "Several icons are courtesy of the TortoiseSVN project" #~ msgstr "一些圖示由 TortoiseSVN 項目友情提供" #~ msgid "Backout..." #~ msgstr "回退 ..." #~ msgid "Discard all changes from merge target (other) revision" #~ msgstr "合併目的(其他)修訂版時移除掉所有的變更" ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.0514143 tortoisehg-6.9/icons/0000755000000000000000000000000014742203610013427 5ustar00rootroot././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1737033607.875414 tortoisehg-6.9/icons/16x16/0000755000000000000000000000000014742203610014214 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.0514143 tortoisehg-6.9/icons/16x16/actions/0000755000000000000000000000000014742203610015654 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/16x16/actions/hg-add.png0000644000000000000000000000061114023111777017510 0ustar00rootrootPNG  IHDRabKGD pHYs  tIME( sIDAT8R=KA}{Ë!&G" ,$C^6JYD8cwg1KN30oѰK X | G!8beI`y4Ñ#zІXaHTUn0NOs1,15XmnR2/`,+G Kӳa76m6  XuU킓shC*{~T|A靕A˙UbUBYjȂ΅s IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/16x16/actions/thg-repoconfig.png0000644000000000000000000000076714023111777021313 0ustar00rootrootPNG  IHDRabKGD pHYs  tIME^ FIDAT8˥/CQ?}Ӫ,MD $bU" F`XL&DHD"~ %絯ՖVInrOι| %;\tDZu$XCok8) Y[ol+p{|'exJ'ܼ:q=a"H%_Hč(IRTT C<%enO,.x50@(FiYDwK@~ P ̍G*TͣR^`gmGAQ@qY|)Nv@*m}BC/3[<, xF.k䫝ijB(n~L Bw v,j&K1Q)TݒK7`ꉬ$AIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/16x16/actions/thg-userconfig.png0000644000000000000000000000105614023111777021314 0ustar00rootrootPNG  IHDRabKGD pHYs  tIMEx>IDAT8˥kAnI bk5%P% ۫זqפ^V˪;piX\3O(&ZW< TVWAZogU$/ȹŦb`NUF,n yh,XYy^KKt 줜[[Hq-A 6F|g)h߹{ߦƗSK$3{QWqkSA6GSB~BLm,ѴÏE %"|@Fr%y t4SK\|3K2_0-XLv8qmdK]p7hv9IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/16x16/apps/kiln.png0000644000000000000000000000136014023111777016626 0ustar00rootrootPNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxb?cC_;oEmk]/̋ef5w/ /N2}8`g)LZ d԰gt{V\%KOQ`q%t5ǰ@9$y E?MMNO*%`xǗwl&:es;O해(ܶn˭wXY8XaX` FF2j bj ߿3vqֵ~'$}Wإ۟_|׌O0;a+* ^1y0(pK=az2¢ELh3+5~/uŮ:@Waև=Q*o/v>!!9u>qy׷σ%+%2s 6d8:t }܎&g>e`rgIFMDA(5L x>c b+qs1ʙɰ* zy0bAժEp<A#\鷉4;3z~L,XL9X52MN>?M^JqͯBse8IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/16x16/apps/reviewboard.png0000644000000000000000000000037414023111777020206 0ustar00rootrootPNG  IHDRaIDAT8cd@?C0La>=( R 2H| l\6ETr H^,0?'ҋئ^cX x3e`A/R(0H. h6G (2n'[2bpR2{{R e&3r!(IENDB`././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.0514143 tortoisehg-6.9/icons/16x16/mimetypes/0000755000000000000000000000000014742203610016230 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/16x16/mimetypes/text-x-generic.png0000644000000000000000000000051514023111777021606 0ustar00rootrootPNG  IHDRabKGD pHYs  tIME8`&BIDAT8˭=n0H[!!l"A!QsL$^Xj,{|3m1 Z;騬8xt/5ǒ4MW(w=ιURW/P&AH৞" l8DŅ^ yث?s-V!7/?CW5GUh_8"ǡgpѥi̥kl`V@ԀjGAݸ%^{ ,4ENGG}T C*o 7< r5(4'S3tw;9UПm8o~lY[.Iz(׉3INlޚ@o^d$r zZ١bC2y4[ ,׾DۅK"#*Kh$m`Γ,&61yf z @-pIJ|HVK& U).6'ƺ:Pm˿-6'窔@vp$0aDy~X٨- t=0@T*7QBے'2IENDB`././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1737033607.875414 tortoisehg-6.9/icons/24x24/0000755000000000000000000000000014742203610014212 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.0554142 tortoisehg-6.9/icons/24x24/actions/0000755000000000000000000000000014742203610015652 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/24x24/actions/hg-incoming.png0000644000000000000000000000071614023111777020567 0ustar00rootrootPNG  IHDRw=sRGBbKGD pHYspMBtIME236NIDATH핽JAIJmmD<lT6F KA%FK!" " |! 1,Fr9w8w!)>jGr+EF wWp[ss#"AO+N25C2=lƃł/MaXy׫:"FdBŲlnME=AD JeHi00T(\"""./HĶ_tڴV'[*Ο$Z.|퍥`֟Gx*a}"EO"= Yk:hzo0-+VutzI:IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/24x24/actions/hg-outgoing.png0000644000000000000000000000123014023111777020607 0ustar00rootrootPNG  IHDRw=sRGBbKGD pHYspMBtIME!›IDATHkA?45DE 7/<(qȑ(lA"b1f .So'(w?m8PڱֳESH$x9^?Zq`A )^!5U-Y~ )V68鑄CW#ZӋ4dkDM6ߝҮtH$݆An?!F dՁyDkM9amcQ:Ng=߹C)07S$XbğqP9?.~yOϾ2ra&",yr648^.L\/M"y4@oS4w灉~AWYV܂IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/24x24/actions/hg-pull.png0000644000000000000000000000211614023111777017734 0ustar00rootrootPNG  IHDRw=sRGBbKGD pHYspMBtIME'{/IDATH͕[Lu3 , rDFWRC!(}` E411mblb|45b>Pi4Dmj ]²י9>PP@xz`VCs{'>BYe]j2oVLLṅf05٣"Ȳ:Twu]iXOLIFuV.uV`Y.s=ٿ}3Dw}cMe~"rLSfT|± &HG"-Ensz"i&]qwp{e3}|f.<^R`k| h6]B  i` 2BtrTH,j6ծT0zsA H|(\Tڣ JkC]:("ݦI4Fb w^Y |2CƵ nHӚ뚂6D$ Kn1ؙoFɤ!-">39"c.#-m7 )q0v&0bV(J$v/*A{Ett",,Gǡ{ayuVwc%L"'hRGRݲ/ާy|7Β6?㹣p?G"MIhT30XS8cu{y iXWyV5S'~Zí+-i4'(Wż5nTEApc~Dh^i0 #E{J41-ܨ0)ȝBB44\!`%@]"`ŸRI8SuA+q.yX)|3ĻtL89+ہ1yw_To.iEhjtLJ%gp_&l+!(XNcCU^U(,b01'_qQ/騵IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/24x24/actions/hg-push.png0000644000000000000000000000210314023111777017733 0ustar00rootrootPNG  IHDRw=sRGBbKGD pHYspMBtIME,eIDATH͕Mh\U}O&41ڀPM\h[qh""W](NAƅm.֯JՈOLI|$ޛw;.&2]x{ν&Ӈ {q\$zDxvҾ4.QxR׶vU @oYr#*H$ݑ* iY{2wdiYX^ boC$ Do|C8 xq@$H~qY՜Z.HĕX(g' HC֑r(16?š栾g?Oy;UJu +AȷY*! Ueک;L+G(8e/#K}߹7J(w&(>хu ;G׶i^}($Bc>I/ ű=΋^[nu?wvW/8(9-8qkN;m 5(IENDB`././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1737033607.875414 tortoisehg-6.9/icons/32x32/0000755000000000000000000000000014742203610014210 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.0554142 tortoisehg-6.9/icons/32x32/actions/0000755000000000000000000000000014742203610015650 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/32x32/actions/hg-add.png0000644000000000000000000000100714023111777017504 0ustar00rootrootPNG  IHDR szzbKGD pHYs  tIME) IDATXU1r@ =x:>BI'RgI"?ic vS5}^ݮ߃M ս_/M p)BdhB2fܘ~+H @C8>MzUܑ@:&$;c  L]K߰ㅼQl 2y!;dф9}zI;,W|E BCnl9?</dbvYTӠ Ʉ:,` xN3 ,jgh2te^V?K|0^x4h^V,PּC+NSQNp c*u.KцjG@<\IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/32x32/actions/hg-branch.png0000644000000000000000000000214014023111777020210 0ustar00rootrootPNG  IHDR szzbKGD pHYs  tIME +?IDATXŖ]lSeV UHAbר$8L2^Ec7F#*$&)t%$ndc^ ZӮ=mvsorҋ?dՙ+7_j(ئZ-hW`C ѱɄkMM&\'~Fn ܾI>rL (Z$Vk;A1c>ք#ʂM[ǟEMѡGd!t81F~6:L_H)|efЮvL hoN\c|:?1rijÁ";OE~1:3{7I&gAySČ?9XiA>}j䡎u\He'X(ئ-!Dз`m3 b!AU8o/QWCx]+OK*U3uo<-@HTb/=ʹG(׈Lmbs%zCcア+2>?TɗT'qOk~ȨDb(6XWׁǹ,+ d"QlV4vpdGцeR~Q.lv@^-qPxCyx\k3Z|9T8v7U2"/(jm)!`זءw#}K9͝&f3JB+&meZ(*ssG 45:B+]իi'!pKqu03 Et,fZ,!^K.BEX _h΂@,X3?F;aDւIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/32x32/actions/hg-sign.png0000644000000000000000000000255514023111777017725 0ustar00rootrootPNG  IHDR szzsBIT|d pHYsvv}ՂtEXtSoftwarewww.inkscape.org<IDATXŗ_LW?B%fiFBPgt[lF%[tX4%`6E:%("* ,QiC@|r=|{5xf{耽{{ ֺߏ7[m|>_y@M6w9u\<3{Aaa$`qVZ}3ܯNj MHu:)[YY͛4n<O`uiN'z{c3T}Lzzzhnl>?|xx<-ANM쌂&91/cҌ1qB ݄ ,:WxW_9ڒ%,8GxY`MRX Dބ_f݃&PlcL#馤VI-%I+鑤^I:s!x?^tMk-???[5I7$ nY F0Ɣccf)@1][DŸkkSrƦݻv.b \tfm)$|4M.Ijk8cLtp43wJR1g/'MKҝ(ׁ%](rt :}uR$1 B`G;@PMRu$=dݡ'O+rDYE6ת{1vKBX4Aݱc7Ltʛl%Jʁ|W#)tgo$u*HδVJ 8 q sclnWEO$&)4>p}}*aXES]]}lC LSvvvV;|>ŋ[G[@cI79{qrOj-_Y7 4 K>y8a#⭕G}Ysgeď>(t3X$-G%ܼfO0\ZZ:Py a.;@&H@6o|45;u;gޑ}n,cy?% UDtvv\z]Jp<|&h٨^NN k;[v<+8׬9}Vm2: '&&'%yyDxvGe8tnO얤 E`wko4TPI)@Ef(˃@ "yv ޘIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/32x32/actions/thg-repoconfig.png0000644000000000000000000000154314023111777021300 0ustar00rootrootPNG  IHDR szzbKGD pHYs  tIME8#-IDATXMl a;3S-|4 &$(q@‰K9pH8āgD]}" **>mjmggTkœL2y&y;;lT/`1bQĝ1fz> 9 3v*'2n,'aDnT7&]YY 4 u_,I5]ͳ+,ޔDBK,t3?DŽ ){U:$V"Tc;Db_qir=il7Fg<#hiSGuM!E(e;DVBFc9 $(@NvTDd6": e~+1F2 tT63X GA,څO@ ChK1\j2xSa@o^.-4֬:>Њq2KY5ColQS ]l*HY3/ڀǰrK+cw}Ԏ_$4rZ..6?8p7m kԃ]lw!d "E&mdizƍR *C+vnf$uWE'ʟ) ޿xEH@l_p1N -]/:_|AR~cA>AwZ[ێ]ٍ],> h;OrycxҌ4| 3B1uފ7)2LN8a+]X craGIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/32x32/actions/thg-userconfig.png0000644000000000000000000000172714023111777021315 0ustar00rootrootPNG  IHDR szzbKGD pHYs  tIME6~dIDATXKh\U$Lg:2D "P|0 ݥPJ|!n;ʮ)4 ".NE|jXFHcɼҙ"8$&\|g kk ӇՊ̲93٤2~47čg$vr>=ynbe_A׋,^g̬tM<Bl4*XhNN ˭=E`|7~c!ph"[n#ۀ᱿Wo7ZAjWZd`UmeD[ udLfЦ5` ?iK߀p/G_Jc•oȼ$zQ h2Mx8W TZo5NFk(4s'gpZ-38"0Nz62'`dEk6>9h;8'={]{IO֎(Z}N <9-K;K;YEHO0ڴ+87 Cbw )%z&k#p%H_KNOL+@+投Rmjl7><#NhQJ#\qS Feczݏ["?s+Z7oR#?/&Y]T_so##kRJaJE4xkd҇IE'5җhPj=#̕.raKbfwj U1:W`,%> bcgyȋCw$toD^jlPȱa17߈@I?oϗwIENDB`././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.0554142 tortoisehg-6.9/icons/32x32/status/0000755000000000000000000000000014742203610015533 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/32x32/status/hg-removed.png0000644000000000000000000000106314023111777020302 0ustar00rootrootPNG  IHDR szzbKGD pHYs  tIME.߱IDATX=n@v DCCƅ)gHBBJ L 0 ^a}YDAֺo"k ~oͶ 2'߽0cyP1j۶tgf#וDVjBW3 )`"fk"w ItGb2xEgbR=/W,ϳ!0"L2xl?G '4R ^h 11vW2xt*+8|vpyfJIk\߲:;W)Ыc "\_i8'U4&S(-+x~θ:~ϹWʟ@`@sڄr}>P4A|lrC&80LxHmqdB  C tu^/ aTs3k%E|}IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1647752228.0 tortoisehg-6.9/icons/README.txt0000644000000000000000000000274714215532044015140 0ustar00rootrootSome of these icons originated from the TortoiseSVN project. We have modified many of them and added new icons of our own. All of them are licensed under the GPLv2. This software may be used and distributed according to the terms of the GNU General Public License version 2 or any later version. Some of the icons used here are from the Tango Icon Theme. Some of them have been modified. reviewboard.png originated from the Review Board project, which is under the MIT license. Directory Structure ------------------- Icon files should be placed according to xdg-theme-like structure:: scalable/actions/*.svg ... icons for any size 24x24/actions/*.png ...... fine-tuned bitmap icons (24x24) *.png .................... miscellaneous pixmaps *.ico .................... icons used by explorer/nautilus extensions and Windows exe svg/*.svg ................ source of .ico files See also: http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html Icon Naming ----------- - Commonly-used icon should have the same name as xdg icons, so that it can be replaced by the system theme. e.g. `actions/document-new.svg`, `status/folder-open.svg` - Icon for Mercurial/TortoiseHg-specific operation should be prefixed by `hg-` or `thg-`, in order to avoid conflict with the system theme. e.g. `actions/hg-incoming.svg`, `actions/thg-sync.svg` See also: http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1333188223.0 tortoisehg-6.9/icons/TortoiseMerge.ico0000644000000000000000000005372611735553177016747 0ustar00rootroothf 00v h  !00 %.2( >:7B=;CBBNF@TKEWMG|_Rzrm{zy/Fi]iUnSqcwj|j}{~x}j~mwayf{hoHvJ|UU`v|rtsxW[̀g݀`ωr~ƛgnbelkosprv|x~~ʘҙћҝšĨ䤎ᤐᮝĩƱĴѺѽṫỮὰ¯ĺıƴɷʹν< KBLYN?:# Ta]XF"))* ^kg`YXNO ;SlgaagaHE'-%Skgqa`1E-&SusgX9$.E>Qtk]M96 SmZQlaN0 /5(\omlTOs`9991(doommTDHJH955dooml=BMH99'fomSBJ9,f\@2O( @- #!))),,,333410642444876?95:::<:8>=<F* S0%F>9FCBTFAQJE]RJ[TOUUUnPF`ZVf\Uh_Yl`Yld^saVqaXyi_kfcrhcth`wleuokunlspovpmvvvxtryuzzz|z~~~1 ')9L:P=P<^>S'Y6R$X!d:c1j9n?VFTBZLYH\MfYh_fReRcDeKfIlZkdmalan`pdpdtktlxm{oveqdyfth|k}m{j~mwpxp}rzt~w|x~z~|scbBhEmQoPpUx_nBoBpHqBtJvIxOzNxQzR~W|QX{uzvuzyywwyy{|~V[]_X^ƃlƆqƈsƊvƛb`aeegiklkmmpqtvy{~ƕǛǜȜƣƤŨ짐ƪŭůƱƷƾðıƴȶʸ̺νc--,#$-$))C͑aT) UU{ˑ*T  M͐-YWY"{e- U ,RK'$\K",FDza aBF[~~MHpf",2kNMPJitrn>͘Bvvrn@w4xvv5ō=B5ʤq<3Iġwq;BhȤmĞ.Rȡ6/7jRʤ80gj]l1:jR͖9Ĥh]sĤĤhR͞ĤyRĤĤ4ĽVy濷Ĥ?ĽĤXyзĤ?ĽUyҷ?00?????(0` $$$)))-,+---1/-50-111555999===u@:6@;8B>;xM>AAAKFBIIILLLTIASJEUHDQPOXQM\RORRRVVVXSPZZZ^^^yTGaWQfUPb\Xg\Xq^Q}^Te`^oaXjb]oc\ydVrcYtg_zh]aaafffmfbhhhlllvi`ukezhbnczmdrlhvni{qk~qi~tnpppuuu~vrzwvzzz~~~'+9U=Z:_?Vd3h7n>RA^L_Bf[cKeQp\nbreqcvhyoxfshwlzk}j{p|pv~y~q~qdCgJlNqGtJwNvJyTzR~V|Qvvu~vwv{zqv|zy}~[^[~™Ǜccfehkjknlpquuz{~šěœŜĝȜʟˢŲɷͼBBEEBBgbEE1Þ6@E7,EEEx] 6y|9@ Z]6  ^''  G va)%\ BE 1,~7;@  @DB6B5/2a6~S9#D#Rdu(*V;y{@>>#Yv3TmlK@;ĞW&1\gg\'$jmnmi 7#sX_UU`kprnnnmL¨orrnnmLf7ǹһsorrnrnmʼ҇sQrnrͿҾsQPrroQPsQPOoQOOsQPNOҷOONNҷOIoQIIIsHHHJJHJJJɼNNNҽsQNɾssŸ |?<?????(  @8888KrrrwwwKzlcxwvusrgƿTᣎƑvj555NE@TLF>;8ea^T⮝zb_]C?=|iwrXMFwixvtyTṬʸ¯䤏rduWK~ǛǛpbi]ssic8úǵūiU~l}kmRoI~x888Ű̻ǵʹũ~_bZ{SiR5ŭ˺n~TĨ`crXŭXfĨkWƴð{/n[ŲὲƯʸkFnu}e888ƵάūıwJz}xo{c8888Ữšxra8TƐ~~yfźTTŭƎ|nŻTTųƊvsŻT88888888( @ 4OOOJJJyyy< GED{rm~~~uuuMMM9=< qqq8888q+`[WˇIIImMMMztibyuokzzzWTRkfdhhhiiip8fYƈs8|nf{o[TOKKK ?95vewfQKGFCBf\U`ZVNNN8riƊvq YQLĹ~xm777222410876<:9444,,,#!XNH描A8laƇr(===---333RJD}m{yfyi_|k]RJ642k^V`ZV^^^A8woȶİsc_[Xh_Y>=9saVy|pdre]a^[8ztξʸıð짐ƅpF* eRyǛǛǛǛǛl`YnPFh_zu}rkfcqqq8ztνɷð]MfRziuzyvl`dJtJbBrhc~~~˺ƳŲıL:x_n`pdpdlZoPxQxOqIVFlll888qŮͽʸİe\Mkib_[X{SyPpHZLzzz:ƫϿ̺ƴξıı|QP=mfb][~W{S^>~yqƫͽXn?\Mmid_[cDqŨϿϿƳzavIj9P=mgbfI{qƤʹrVqBc1\MmmQqƷν®{^loBS0$}TGBƾƴkŲ`1 - T1&}qƩxpƴɷtnvS''Y6sqVqŮunƲ̻ı}kR$)hEzxrqU}qưwpƱϾɷnB9d:{ysopUqƱulư^X!X}zvpnnR}888qƴumŭzN^{zwpplnR888qtkƩqxzwsqnlqqq8|tlƕzwtqpP>>~yoRRR...IIIIIIvȝɞ{???IIIukeriVVVLLLppp]]]reƜvYYY===)))5551/.@;8@;72/-111---TIAxfLLL)))>YRN}ze`]$$$88821150-333:::<<<>>>333666(((A:5QQQ WWW+++111666,,,KFBuȝzkq^QMMMaWQvhXQM)))111CCC>>>VVVŲŲ333KOOO444///111000rcYȜȜȜȝěƜɝy***SJE~jb]___KKKY))),ͼͼŲŲqiiinc~qi===XSPzȝȜǛȜǛǛǛȜȜ›B>;555|ȝœsk~vr^^^,,,%ͼɷɷŲŲcccIIIppp!!!ikkkmfbɞȜǛǛȜǛǛǛȜǛȝydVzh]ɞȝɝ{kKKKCCCWWWVVVͼͼɷŲv^Lvi`ɟǛǛȜǛǛǛȜǛȜ-,+]]]~tnšʟˢ~ZZZͼɷŲŲŲkRA{pŜȜȜǛǛǛȜǛǝvg\X}^TcKzhbwvwojvnirlh___ͼɷŲoxM>ma™ƜȜȜȜȜŜvZZZ_BtJqGU={qkzmdͼͼɷŲŲoeQfUPoc\vh~q~qqcea_yTGgJwNwNtJdC\ROlll@@@aaaͼɷŲͼɷp|Qocp\shg[f[wllNyT~VzR{SwNtJZ:UHD>>>{ͼͼɷŲͼk[vJnkkgc^_[[~VzR{SwNtJ_?~ylll|||ͼɷŲŲɷ|QvJokkgc^_[[~VzR{SwNtKͼͼɷŲ[|Qn>nogfc^^[[~VzR{SͼŲŲ[|Qn>h7noghg^_[[~Vͼͼͼɷzk[vJn>h7nokfg^_[ͼͼŲp[|Qn>h7d3nojec^ͼͼɷzk[vJn>d3d3nnkfɷŲp[|Qn>h7Vd3nnͼŲze[d3d3ͼɷzp[VVɷŲued3u+uunͼŲzp[vJn>+++zuqnͼɷue|Q'''zz{urlɷŲuk99'zzuqrnͼɷ999zz{qqlnVVVz{uprni|Qn>Vzzzuqqlnie|Q|Qzzzvqprlliɷzk[zzuuqrmnlzpz{vuqqrllzzvwqqrlzz{{vqqrz{vvuq{{{ww{{{{{|{ ?|?<? ????././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1333188223.0 tortoisehg-6.9/icons/detect_rename.ico0000644000000000000000000001246611735553177016752 0ustar00rootroot h&  (  P P P P P P P 75.s6YB6bF680M;'J `*\J mwJ <KKF^_[^_[^_[~J <KKF^_[^_[^_[8rP7f7fMM:J <J m7zT44@aEI!>KKF^_[^_[^_[6e45q:?3<--KKF^_[^_[^_[y|x5k44q6>3333J m:N>5~U5sOxnbaWG4{45b670JJ mLmX44JP=}l\5j44z670yJ muzs4ք45y6zS6[4چ44k670TJ sTʸʸʸ9vR444444Ճ6S>55,D"J TJ TJ TJ TJ TO=*p6U?5_4k4l5Z6G866/#33364-.75/L56/O55,%( @ 44/664.6:169056074.T... P P P P P P P P P P P P P P 98.64.6T?5]5f6jJ691691M;'J J J J J J J J J J J J J J tE$76.4t44444؅8P=I;,J J {s:ZE4444445c;;0J J ź:?64Ԃ444446mLB;.J J źX[T;L=5\4y4Ճ5h9hK87/hB%J J źRUN64.64.@B:z{wV8J xJ J ź_;J x87164.64.64.64.64.64.64.HGB_;J x64.64.|T7J x64.64.8<3:TA:TA:TA:UB:UB8=4aH4J x87164.64.64.64.64.64.64.HGB;XC44444:eJaH4J xJ J ź9@64ވ4444:hKYE3J xJ J ź;<55_44445g980H"87164.64.64.64.64.64.64.FFA76/5i4444݇8E6B;.... 64.64.8715o4444}7G8591<--64.64.y{w7924t4444Ѐ5L:690333 87164.64.64.64.64.64.64.ED?mpk9>54x4444΀6E7691333J J ź86064.64.64.64.64.WYSrto:B74Ё4444}69174/bJ J źDF?5Z4|4|4|5e870_=a>a>fCC?35W44445wQ691J J źUYR5W4444؅75/zZ@nnnfQ@8Q=44445g681J J źpqm8iK44447qO>?5B=05Y44445l66/J J ź64.J J ź~:J<4ۆ4444444444445f64.55,:J J tUfffffff}c?=46uP4م44444444445n65.75.tD"J J J J J J J J J J jB$:9/8?45b4ވ4444444v5iJ64.66/999 64.u68/57/6I95_E5wQ5|T5`E6D764.69155,:33355.M74-k65/75/58064.55-e66+/?????????././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/expander-close.png0000644000000000000000000000023714023111777017054 0ustar00rootrootPNG  IHDR w&fIDATxcd 0'fxeπ)SԩSSd Ο>mb}r S/TK,EUSuWL|8 \A &IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/expander-open.png0000644000000000000000000000027414023111777016711 0ustar00rootrootPNG  IHDR w&IDATxcd 0'fxeπ)SԩS*u+c ̬,{9ŝpi0& 11p6m GVWK,EUtgص_nn]1L,zJ ,}`OIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1333188224.0 tortoisehg-6.9/icons/general.ico0000644000000000000000000001525611735553200015553 0ustar00rootrooth6 h   ( :|w\QD\y~Y3WjM]hQaProv,~djl.y[158āÍȋɒZadӛס߰------------------------------------------$-----------$( ----------%(---------- &( ---------&(------#)"-------!,+'  ---------)* --------- --------------------------- ----------------------------------------------------(  6sur-%>-Z6D0]&f N4a!`  T8dV '# FNH83f R_K,gSUN"ɒסȋPdy~ZH3ÌӛŃlL-=<}A;rע߰_٘SĀjwn+&#@xOCݺ`D&#@# < (=䱨Q@94h 6䮦MA1 .8<0/+ P =1, _ ( @ @@@@++ 66(>;5860871=;466(333<;4FF?=<564.971>=7@++ <;5pqmDC=55.H55,:982:82999 +++=<5deaHGA64.^55/R;93<93@++ <:4Z[VNMGIHCJJD><7;:5QQLqrn=;655+<:4JIDbc^>;6<--:81rDC<5@@ 74/]?>8LKF>;6UUU74-J<;5DC=;:462.B;:4?=8:83i55-D=;5<;5660P73/F=<5<:4440;55+><5@?:=<7?>8=<6><6<:5771*<94=:5uxstvr<:372,.65-BA:þ<;5HGB=;655-D66.!=;4A?9mpmoroDC>Z[VBA<860_970prm@?9[]Xab^WWR:82+++@?:<;5><6BA;npk971PPJ73/F=;5mni=;553.i><7RRLbc_55-`>=6;:433375.64.NMG>=777)%??9>=776/>=7vxt<:4^^X@>983.286177/YZT<:5=;5::4999=;5?=733/h333 =;6PPJvxr<;564-74/<949729//1????`????././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/hg.ico0000644000000000000000000013257114023111777014536 0ustar00rootroot (~  c0@@ (B600 %)x  ѝ hy  ( @-.-:<;KML]_^lom}}eE2cG_Fvg_{T+_ܥ yUpޑ _!g`L,\OGlxbJjxOeR9?@%O7P(˿G/;?oɈɘ_˪̼??( (+)697KMLZZZkml_44og?wl?_v_?g}wkC/Vgvk$XwvwwgHwgwvvwwg_wwvxOwwguvgw( GJHUXV^[]^a_gihutu~/Xor//thx򈈈p000PNG  IHDR>a IDATxw|߳%}nHD%"QPA.xU+Wr)UQbA  !C;!nzBHlˎd 5dw̜9<9O IRkס!^@d{FW+4E膽G7T@z}U޿$(.PlNuz>`epaX{ 7:Պlf9V+$T*J%H`5HןWl\E1.Vl6c20LTUUa2X,lAt:A%灅|^_xnB\E'0\ee%%%%aZN wwz>Y+u \sEQ< ]+W h4( WEO9zlΎk(\KW(h4L `^o&pA{\_g[ch AR:Mןi\E1j&*ʛjX,SZZUl@`` sz~yj&(VJ2J]kNT*BBBh4NO5gZ$I_ Pg}9 ZXJPW%֯_ZE_D$rrr!!pss#""•X !3g/++P(JKKe3@&L@ff(TϹ*0{^$[JWJJJ:t`ԩMExF ( X),,Ohh(L:ϳpB4X^J#Ν;j|LQQ@SXXo̘1(WrV%K/z7>\QQ_F(,,F̙39vֈxQ;U `X>SIʞ+Evv6.]0a֯_(QjQ,V#Nm߾Wʰl-]Vlxܹs |p9l5teBll痔tuTVVRPPQ*F (>z9ѕ$Iľ~k*4 O>$gŊsEQti%UZ:.{\.5yyy9v_p?ܧU1NӹsI BCB]u]t jgyRɇ~dLo=Z:.,,,̧WEqq1fHc/R׷QKx\ ;wGyAor\V![' ~`Zff>#;DQصk5W?_&̌;۷siՋ bKQ?$Ν;ӻwo$IbʕSuAj$~_E@s*;ѺD9~]L8PzIll,VUV<%bkZɓl߾N塲R;97wW״OСC>:]u $rJd2?L/ ACX, ٳg{}5ppNh4ƍBQ˷̌Lz쉗}P*:.r٘[{B$v'h0WXXSVmhhO( {3g`ƍeBy9##t9weee?sQXXӧ1S#k!!!PΜ9Æ_60dڷo/HJJbÆ gwwwZu]ȑ#mEQ ZHMMP(Tf@NNN,u9{l<%.[ j* ߝDFF^65#$cC-~T*CΟ?OFFe9h6 EdOsm6:v풿"**Lp G6m3!!!}*++b\Br޽/f`0>|Q8q"ʑYfo>;+.piG: 66aSxbZٸq^`VPRR”)SNL&OκuJ%:Np${5-#Ɵxl۶oIIIE׶ZTTTеkW6lpڵk޷4%s 6IpCkgwUTb6ro>𯌌 >C^uy&l6III7sѴh۶-:__Av휶@ }Gݎ!>>?j6mo5 F,Ǐ3?s:u*Æ sYbvZ}Qf͚Err^^^Ӿ}{"""KBCCwul;P#^ H=.Y`777oQ*]ZLgϞ}ٯ1a:wg}FEEZ\yRTT* 8xZ-F$Ir(WpI۩P;b 0HUYY)UWW7HxifFFjJyG8rH%/ J:n{ee ,;Xd /&%%QFѾ}{̔X,ڵKV O||'N`ꔩ8qѣG3~xٻw/w}wBIHKKcʕL:QFo IIRнf cD7 u:@Bړž|Q᮪aXE"##yZjLͻ`4<'|BV=ӫZ&22NwGz:^l VO>MZZ*&XUUUb$),,Dղn:oK/Ċ+\}oy #JYYY+ٯΗ_~[oEaa!GM6/O?QXXHrr2'Ob q>#(ˋh]zW:jN>FjcbbbfΚS^^^ǫT*Z-~~~RPP@ii)^^^DDDw߱h"Cnϑ$I'I_\uXXbРA( ֮]͛1r-?{ǩ79rKrℳSO=]w%wܹ.y>}dӯ4~wS߶m:ڥD$ V_~Lz~\ac^^^NyyKe~~~xyyxbV\I=x'͛_bZRRriuS? ԻwoOn8pk֬3_~Yb]?ӹsg'wvFFFF&{c֔e;||| d|uIHHW^)aV~C9yu2h ƭʮ]CZFo?CP^^Nxx8= 8GFP /VHd3 KnN4ٜ~X-V*5rss̰Ik Fd06=v"l9g,^]wEuu5jeCߩ+**ɑNnڴ5֔]ԴUm۶%$/I!Kth4^ FuZ^O~i'xyt\g[h5 all猌  ^^^8ŁhmO>] ^5 괺xG7`ƌx{{`!845q)|||d*]r׍k`4봺ϙNƨdܹӞMaa!%%%rϮgFC6mjoJ] F|X0۷W^.˶ZCgGtT*^^^:u~ NJJLB^:.ѰxرcleCjNڵj%33S\~_~El*Hy `y.FsۛΝ;;}l\@VHQQ<$ FܱqqqNBfСCj<<<8t萓uCeNA 11 `0v[W\mBhh(QQQNߝ:u2YWOn:p1^V[,=6 @(fLRI *_|mN|=tM AsoZ9t Ȼ)))u ۷_|Q;0DQTIt a$In.$h5 IR'IjE1Iw%}{$Io]tctI***CTߺt{ꩧHNNFTrM7PVV|M))) A~$^;tWB$I `$I(ؼykO)m6[g9 aZ9|0L&Gn'( &Lu눏!CBB}fnbZV+eeeS]]j*Apss??;_ /(~L>[ =jټ&?NUU޸X`qF}YKFL 99B$BHKKK)..q"|||,Ea^^CcDs}d6e=`ĉ,YĐ!v񥼼e)))$IJA"??z#|ii)5MS{ 9G;=ċÓۛիWSTTT\6mۉO>[hhG55 e˖!V5URyrss9sLhEEEP*4&Xec۷ln%`LL {}UU) z{ /@RRr-TTT;jkr$''UVV&T*YnrX&}Пڮ};yl.# raϞ=X,eڵp/Nh۶-'Nd޼yxyy1p@NۄMM!//WF'Dyyy{(,Z=|c4kl222Ilv7xG""w}7f)88N &%%KFDDpNN-ԦDAA$AnLb;4nMT*֭[oX7鉏?ǘ1c?>jG=vaÆձ`m2<쳑%7)))!$$~{|d::έgϞ){dd$#F[nn+񹨨E;{ƍ;v߀/}yѡ*))iPBAtt4ハOIĮ]l@pp0ǎ#11NYAxw0L,Zn NwM4ktkLL&n[oJMMtԋK@ՅH:#F0`tBddeJKK@Av*;v,={dŊ1f}X& V f֪Dpp0}?L&oRR`ZZ65'ϭM7$[\.*++[tRP85vGΝ/iF;uZՄRNaml6֭[nFoOH IDAT8ɰaj\ڵ ٌ sIke.\Vo<#{lX& @``0R!@ER1v:buu}CR%mLL 7tSE0?| AT2gGw>(L6N:Off9i]×z (0b4=h$\Ab+z1Aϻ:u,enn.ط4端r&{,ϝ;3gcZٜm۷]RZ vܶ񎡿zf$iy0͗?pw丯+]v.uJmۆ$I(J`ٲe./^`x۷/$55/~Аg^BBB5l7xcMV'T*PQQjwѣGeeeuϯIf믿RUU DFFvŎ'/dbҤIF"6XOS/00?\M=OO:p*++Q*޴Y6>>sm͟JbMdrdΜ95SȈf|βe˸DL_ݒkw\~rõٚT*MkCa~ݻޑr`0h4>sGo'%K &ȸq|I<6MQ3XRsQ* 2:fP !G]NZwwF)uZW.]E# /w%͕eHRRR?/={6Lիoi+**Q ɐ!CkaqFA\g4Q;Rzzcǎ\S{Cˡml dee!"VFCXXsΰ3p@Y}v̙mFYrSot+jCU봺SYYY}}}$Wj)Rܹ3]vTEEEVh4޽48w*@=s2qh45}gϞe۶ml6 ԩS̚5zodڵxxxP^^θq ;˖-["2.X۷O+K޽{ѣEGZ988Ag}TzMhhy~Nkk]tiOt ӧ44_~^xSN1c ~嗣vzrr_@W*Ջ#FЩSKN%iiideeFĉٳhg6W 4Fו-++#%%E !88ROR aÆ pݺu,^zҲ~ / WLEUqq1QCZͰaÈmP29F,, OOOKnСC5jӦMcܸqM-P(ܥR$d28}4'Ou P(HJJb.wXf =2ߎ'|2y}U!h݆mݻ_9V]vrNBiiӼ*IOā]7B%կw &۹s'qqqfryERXXHqqȧT* Ac̙Wmh4.]*/ef3=Ge,_{vOk"/ZnQF,c8}:yy?~'SwV~'V4Q\\LAAAXp? b֮]KbbbF;wf͚5ʻ;w2}t%x`44ν47F(m?6QrϪ*F#ڵCPTVVRUUEqq1EEEr-Jjeڵ,]wNbb"Ռ;~qeT?bg񡨨H_άh4Y^8~8})))=z4K.=x wy'kn}%ADE-G'00^OBB7pܸ` zjj`@V3{lf̘XqeYd'O-ߥs8ؗEZ7{n:Ğ={h۶-sΕ|o 1FôiXdƢ¢/iR4@67ڔ-nnnSNח3f8. [n[nr.oooѣ=z#Gp L&}_.}̙3/V7q=3.l6233`* A8wEEEQPP@ZZgΜiЮ/2SL{^{޽{3|p,YEeel7=,nCFjKtQҤI~I#((HzW\I$)--MRDDKYV}J꫍>4h )%%αb ):: ^}U)++K۷KݺuwԩN{9ڧl7j mVJ%AZz4yd?R@@CIK.***$I'=… }Vuw\q]#7j#%&&!@nݚ+-[L2LN 9gT*HW|A6RHs7$IM?DLUU* &!!۷7߸t4i/J[el‰':t(]v;{+NSEÇ<6OKFjԂBJbȐ!rZXr%'O&44ɓ'SYYŋ 3 [\ܶѬp@Վf0U8~8wh4:J%AAArOB={8~FqԄiusݧ۲V0] !$$PBBBvp)&No3<7̪oV/$ih쯙"{ ]n$HYJNͼm w7w&;+B$I#H—BZn0o(tZ]8>k,Y0[j-SgVM6tR֬Y?~<'N`++i0۔jBul^gjUKHi $ʦZygL4In5k8-..nYؑ#GXt)˗/~V++^wfxKUP DFFz^ `0Hr1Xk@}<G!Io7o͚5W_}2;;޽{9vAAA=#GRXPڵkߏ&˪z9*p5Aթ9d777n6ٻw/_|l"l*PLL _~DEEcRSS2f'\:N{Q 0=KVV䐓bPڷoO;ѣG9~dRπD2tZ'0cGA(-)D^ua8-hkq: )c.6;@챍/y!W`hL_u\u8ө_$"IENDB`(@ N212@?@535 {ONOfff)))%%%EEEedeppp878N<z\  FFFAAAIII.! !TSTDDD989///(((=<=CCCU```GGG*)*>tstKKKccccccUTULLLLKLTTTSSSdddbbbI212555IIIVVVHHH @@@ccc###  (DDDBBB@@@+++444gfg;<;%,+,^^^{{{NNN @@@ 222&&&>>>eee DCDٴ,,,w000TTTaaa212Bmmm999οaaa???qqq /./KKKv"!"mlmk$$$MLMaaaOOOgggBBBwww___lklT111???&WWW))),,, >=>}|}999 ƾ***%%%WWWMMM___BZZZxxxWvuvrrr###656% w~}~y$$$aaazrrr ***jjjzҿLLL{{{>>>wGfefCCCL#"#rKKK~~~&&&.Կuq6ݿqJJJ999<<<<<>>&&&###______ߦ@@@@@@qmmmvvvƒMMMeeeE슊jjj555ƫ=8=OOOɘNNNzOcjjjCCClllA#"#)()xxx󾾾]wiii _W*)*aaaBBB̒-wwwKKKccc4 mHHHnnnϕJJJyyyxxxRQRȱ\[\---kkk*```Ǿ666p---(((y῿xxxoPPPCCC?I111vFFFĂؿpwww翿\⿿ r 򿿿6ǿ鿿>CP]jwfB??????????(0`  202AAA-,-VEDEXWX.-.%%%,+,>=>\\\#"#? 'grRmxxxJKJYXYUUUbab  ?+*+BAB555333???JIJ:9:=<=!hghAAAmmmwww=<=X$#$$#$ONO*)*777\\\fffRRRYWY]@@@<===(((yyyiiiSSS;:;ccc777PPP~~~NMMMIwww eee^^^YYY$pop000SRSsrsyxy#>>>mmmPOP***323NNNUUUtttX|{|׼777666rrriii\\\췷999UUU666333CCCnzyzyyyNNN888?gggTTT2TTT)))˳ sssﯯ```DDDjjjuuuFnnndWWWoooxxx㫫>>>999gfg,hhh`` ~~~llla`aӺRRRHHHIII)շJSSSʬPPPzпI lll888nnn 5콽X -,-9QQQ333B IIIุyyy{AEDESSSlllUUU[$#$444  A ! !%+*+PPPeee```CCC$$$767QPQ///qqqcccAAAw B)))RQRBABwww[[[ '&'YYYYBBBHi656ihiNNNvvv___ iiiCBCʲEEEGGG$#$9'''a`aaaaddd###...ooo<<SRSbbbDDD+++jjj ) {Pjjjnnn2228KJKZQPQ[~~~SSS3OOOA󿿿OOOXXX췷666zsssH[[[kkkvvvnnnٶQ![#Ͼ]o𿿿XԿt%6bo|nH%??????><88p?( @ 7('(v???vG:3<<>>  &&&OOO  kGGGꆆvvv~~~zzz&%&|yyyrrr555  PNMNFFFmmmmmmkkk뗗~~~IIIHHHkjkZZZccc"""<<<ggg444 ?HHH  ccc///hhh槧LLL'WWWxxx:::wwwʤ_^_333 RUUUuuu&&&X{z{777===ggg㤤jjjCCC-nnnWWW888sssP~~~~r󿿿6pNz,??(  `b`jij)*)&WVW|||?>?^XXXGFG1HHHSSSgggWVW:::UUUkkkYYYꝝ\[\,,,dcdZZZ4444ŗޥnnnVVV# ɨ"""lll^^^bbb}IIIIII323\YޕZ]N‚N‚OĄK~?AmPDžPDž[YޕYޕ`HyZ`OĄGxZHyV֐ZYޕYޕYޕZOĄV֐YޕWّ!PDžZYޕYޕYޕYޕYޕYޕPDžI{K[YޕYޕYޕYޕYޕYޕZOĄPDž&\YޕYޕYޕYޕYޕYޕV֐\ WّZYޕYޕYޕYޕZPDž `WّkZ[[YޕXۓ!0AAAAAAAAAAA0A././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1333188224.0 tortoisehg-6.9/icons/ignore.ico0000644000000000000000000001246611735553200015421 0ustar00rootroot h&  (  T.   T,5 Z+,**NY; (W)6)' %j'_ <!xl$ufwpL ?}h?( @ ("x-(***)" 8.% -****** =EHq160+**** ~L FMRTD F*]970****f0 OW]bb> 1OL * L`i cb G~W/EN.WoDV' $/6 ;C2}Onq p``O././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1333188224.0 tortoisehg-6.9/icons/menuabout.ico0000644000000000000000000000344611735553200016133 0ustar00rootroot h&  (  @2<|2<|2<|>]2<]2]999>]22]|]999>>]]?2]?2i]?>RRR>*]?||___]?]?>>>999llٓli]?>]<Pxxxٓllllll]?ll<RRRڐڐ999PEEElllll___999<P999EEEP0i(  pH*>%?7?!+- z y0?A@2?ta_%/ SM=!?A4?+n _f:**Az>$?V70frMQN\Q' rE*/a*A-"k^('a^lI+ [)yA"?wooeܷknU(L< VxjSEމΈc^XߖpDDDbSE}}`iZgb]mQ1?Og_D3U.]7pW6?oV5?}b>/w ]/G#?{R':w{ qj,vp4Bwyt4BvzC4~  vz:ppp0././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1333188224.0 tortoisehg-6.9/icons/menuadd.ico0000644000000000000000000001373611735553200015554 0ustar00rootroot  6 h  F( @ J J J J J J J J J J J J J J J J ČXĉT†MFJ J J J Ȓ_Ȑ[ŋU†MJ J J J ʖeʔaȐ[ĉTJ J J J J J J J ̙k̘gʔaƎYJ J J J J J J J J J J J J ͞rΜm̘gȒ_J J J J J J J J J سز֮ӪѦ~ҥzСtΜm̘gȒ_ƎYĉT†MFJ J J J ܺݹ۵ٱ֭ԩҥzСtΜm̘gʔaȐ[ŋU†MJ J J J ޾߽ݹ۵ٱ֭ԩҥzСtΜm̘gʔaȐ[ĉTJ J J J ܼ޾ܺڶزٱ֭ԩҥz͞r̙kʖeȒ_ČXJ J J J J J J J J زٱ֭Ѧ~J J J J J J J J J J J J J ڶ۵ٱӪJ J J J J J J J ܺݹ۵֮J J J J ޾߽ݹزJ J J J ܼ޾ܺسJ J J J J J J J J J J J J J J J (  ii|T|Tiٓi|T|T|T|THi|T|T|TiHH~iii|TiڐH$~ٓٓ|TiiiHٓ|T|T|TiHH|Ti|T|T|T????(  ii|T|Tiٓi|T|T|T|THi|T|T|TiHH~iii|TiڐH$~ٓٓ|TiiiHٓ|T|T|TiHH|Ti|T|T|T0000././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1333188224.0 tortoisehg-6.9/icons/menublame.ico0000644000000000000000000000344611735553200016101 0ustar00rootroot h&  (  @lll>>>T|EEE|Ti|T|T]?>>RRRT|i?]|T~~iii>*RRRT|~l?]EEEHH~~~]?RRRT|~lT|~$m~]?EEET|~T|lll999999___*>T|___llڐڐT|?]lllll~___l___ڐ999ڐll___xxxڐ999lllڐlllxxxxxxlll999999lll?(  pXbVgF;8*JGQJptUok Z sl_&eXRz{)Uj wLPu_:;ޏ4Õq*vcV~||2Te s?'ps0խ\'[NZ|y5LTqB=a#n0zn~s^paEzth 5>GX>leoyty̯jhc.]qO|RsezOĠT]\yKĽ,44~ʈyΓ,]Q*-75\"gI=N*-<'-(+-cL*.Wf-zK}M*.73± ?>KF5;@Ǩ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1333188224.0 tortoisehg-6.9/icons/menuclone.ico0000644000000000000000000001373611735553200016124 0ustar00rootroot  6 h  F( @ 0_ƈɷ ɹƉ`2$ 2e|`LA5* (*VdOOOOMA#PVeOOOOMB7PVeOOOOMB7PUfOOOOMB7PTgOOOOMB7PTgOOOOMB73fōȺ PShOOOOMB7& 8maNDPShOOOOMB7.XcOOPRiOOOOMB7PWdOOPQjOOOOMB7PVeOOPQjOOOOMB7PVeOOPPkOOOOMC7PUfOOPPkOOOOMC7PUfOOPPlOOOONC7PTgOOPPmOOOONC7PShOOPPmOOOONC8PShOOPCQZI# '178PRiOO5J^qr^J3PRiOOKO PQjOONSPQkOOD7MbvvbN6 )PPkOOOO>(  ȻƏg4PPlOOOOMB7PPlOOOOMC7PARXE'067:NattaN8IIII% 7NattaN7 %0_ƈ ɷ  ɷƈ_0??????(  7<<<<<!]]]]]#!@}}}}}+!@}}C)7;<<@A)!]]]]@A)5}}}}GA(?}}PA';OA#;OuuAS9KddddYDl6}LLLLLL6}7#6}}uu}GSk6ЪddddOOlLڪLLLLLڪ(  <;;+0MMT |?}}C)<;;;A)0MMT;A)?}}6A';6A#;6pppAl6'LLLL6A#k6pppAlLLLLp0000000p././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1333188224.0 tortoisehg-6.9/icons/menucommit.ico0000644000000000000000000001373611735553200016314 0ustar00rootroot  6 h  F( @ N JP@NO-ONL% NORM]On V^PO^jQNXPfojPL/Ojr uhPQ JOlt#x&{bP@N NPh!v%z)~+׀^QL%UONP^#w'|+׀.ۄ2߇oPPYOTNP6Q#v(},؁0݆48.ց SQF fPSdNP_(}-ق1ކ59=5`POg@M O UieN QPq,ف0݆48:84&x WOP XnkeNOQP"t/ۄ2߈5652߇.ۄ+׀lasnjeNNKP"s/܅1އ2߈1އ/܄,؁)~%z!vrmieNM<Ph-ق.ۄ.ڃ,؁)~&{#xtplheNN$P V"t*(}&{$x!urnjgeNMcP`#x#x!urolhgeNM(PN\sroliggeNIMYPO[kpnljgeeedNOQNNNNNNNNNNNNNNN????|?8??????????(  |(|(<|(2|(|(<|(|(1.E=,Maalj7aO254"v??? B??m(  O??=:7?0E/L4aO(y.5=3[yN.-x6ɿ=Ap^<18Ϳ<vi.r912j=,Maalj7aOǪ2ª7Ĵ8(?6h?97b?Ujlp00000././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1333188224.0 tortoisehg-6.9/icons/menudelete.ico0000644000000000000000000001373611735553200016266 0ustar00rootroot  6 h  F( @ ErrE  ((**((%%,,..,,**((%%E002200..,,**((%% E##66442200..,,**((%%  --8866442200..,,**((%% r::8866442200..,,**((%%r::8866442200..,,**((%%##!!::8866442200..,,**((%%##!!::8866442200..,,**((%%##!! ::8866442200..,,**((%%##!! ::8866442200..,,**((%%##!!::8866442200..,,**((%%##<<::8866442200..,,**((%%!!AA??<<::8866442200..,,**((%%""EECCAA??<<::8866442200..,,**((%%$$IIGGEECCAA??<<::8866442200..,,**((%%%%MMKKIIGGEECCAA??<<::8866442200..,,**((%%''QQOOMMKKIIGGEECCAA??<<::8866442200..,,**((%%rVVSSQQOOMMKKIIGGEECCAA::8866442200..,,**((%% rBBVVVVSSQQOOMMKKIIGGEE!!::8866442200..,,**((55VVVVVVSSQQOOMMKKII##::8866442200..,,**E OOVVVVVVSSQQOOMM%%::8866442200..((E PPVVVVVVSSQQ''::88664422,, PPVVVVVV))::886600 ;;JJ""--##OrE???(  llllllHHlllllllllllll?(  llllllHH35(*&(l36ll01llllllllll0pp00././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1333188224.0 tortoisehg-6.9/icons/menulog.ico0000644000000000000000000001373611735553200015605 0ustar00rootroot  6 h  F( @ NNNNNNNNNNNNNNNlhggggggggggNNtokgggggggggNd@䲏xಏxಏxಏxಏxಏxಏxಏxd@N&{"wrnjgggggggNxxN-ق)~%z!uqmigggggNxxN40݅,؁(}$x tplggggNxxQ673/ۄ+׀&{"wsojgdOxx T$t>:61އ-ڃ)~%z!vrm]PxxP#Q$t8<840݆,ف(}!ucOP#xxP# TQNNNNNNPQP#xx|B~|LxtrSĆOefPēxpdB|@gnnnni~GxdBĿdnnnnnPd@䲏xಏxಏxಏxಏxrSdBnnnng~nnni~t ĿwnnP|@i~QĆzfÕ|B~I??000000p(  lll>>>|Ti|T|T]?>>|T~~iii>*____________EEEHH~~~]?~$m~]?____________lll___ll______lllll~lll(  lll>>3 |Tg|TtNR>++|T~ziitN_________EEEH<~~c|GҾc_________{{{mt?ccclu:󗡡___lpxlu`(oll././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1333188224.0 tortoisehg-6.9/icons/menurepobrowse.ico0000644000000000000000000001373611735553200017213 0ustar00rootroot  6 h  F( @ 64.R53.54/64.(64.[53.+3=1?G66164.(64.Z53.*4?-FY3YpD^l88364.(4cΘ ͻ ̠ l964.Y53.*4@.GZ3ZqMuid{;<8DNH64.Y53.*5@.G[3ZrNvjs;;7 ˓CwPOOL: ;64.X53.+6A.H\3[sOwkz;<8750J ͘FwQOOL: 64.W53.+6B.I\4\tPxlz;<875/O ͘FvROOL: 64.V53.+6B.I]4]uQymz;<875/P ͘FuSOOL: 64.V53.+7C/J^5]uRznz;<875/Q ͘FtTOOL: 64.M53.+7D/K_6^vS{oz<=975/Q ͘FsUOOK9"n{75.t73/A33353.-8B/K`7_wT|pz<=975/R ͘FrVM@ji782@LCLdPU[>AA275.:9/5402BK8`xU}p{<=975/S ͘FqK;E@[yҺ~ԴyrwwֲCli796/661Kerq{<=975/T ͘Fp?OJh÷tvxskoѸID?A>0984gt<=975/T ͘Fo@E?dlmoqkdf˻UuMD?97/<=9;;775/M ̚+0155->74.-[4zŘhۭݙϏ ̀2vCjT\i75.;;' 76/A?6ժ@Ѓިn*Ѣ ђ̂-w>nOa_?;8/99+75/YYFBے@hnRܧՕ ЎЈ+{=286/64.76/333771*55-`64.c72,.UUU???(  T|EEERRRT|i?]<;;+RRRT|~l?]0MMT |RRRT|~lT|?}}C)EEET|~T|;___999999___*>T|;xxxt7'ڐT|?]6RRRpt7'___0[t7#ڐ999LLLڐ999___xxxڐ999lllڐlllxxxxxxlll999999lll?(  D=xZc/GSZRvKEF?Kw#WqvMoKƠCD,0K/S}%Vn}7/jBhl?/J}oUz)VkzC7z[I~qEks6F\fd7MWqZ9}^H|tBHGKLPt'c~d8UqCOƻgfd^?8"T_aEoSL=\}?i2JcjͼϣF?0p?w3ɬ̔wpaɮŴm]\Z++)fc[{0p././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1333188224.0 tortoisehg-6.9/icons/menurevert.ico0000644000000000000000000001373611735553200016333 0ustar00rootroot  6 h  F( @ J J J J J J J J J J J J J JˇK3J јjјjјjјjјjΔfɎ`ĉYP_1L"J gJ јjјjјjјjјj͓dȍ^QQ'M!KJ јjјjјjјjЗȋc~PN#L"hJ јjјjјjјjϖh}PM"J HJ јjјjјjјjΕfRM#耀J јjјjјjјj͓eɎ_U*J"LGJ јjјjјjјj̒dȍ^qDN$K!K J јjЗiјjЗiˑbNj\UN#M (I1K K J јjh<ϖhϕgʐaƊ[Ud8M#K J JZJ ŋ^J oCΔfɎ`ʼnZT{KO$K iJ"LK"K!U J k@K"M#Xȍ^ĈXR|LqAL"I ?J!K!S'J xJ M#H J#`V+Ƌ\ÆWQ{KuEf7L"Kb33J ].M!J O%N%çl?…VPzItCo=c2Q%K!J"LHCN#d3K J JSLM#m?~NyHsBm464.`PxZOOO@64.v6O<444446D764.`8.>83+&"(64.>64.444446\C67/Jh6906T?4م4445k67/64.'s6x}Sͼ64.6806_E4݇4445jK68064.42Ζν!ͤ W64.#6805kK44445uP66/64.564..6705{T44445sO67064.&64.67/67/67/67/67/64.m64.<67/5Z4444߉5dG68064.6;16WA5zS5zS5zS5bF6:164.D64.4w4444؅68064.U6705yS4444z64.64.#6915uP44445cG64.64.6]D44446E767/6:15[44445yR66/64.d6B644444v6806:164.6;264.4y44445dG64.64.:64.4z44444{5\5gI5^4u44444߉6:164.V6806\C44444444444445j64.64.64."66/5g444444444444u68065.~65.y65.5tP4΀44444444چ5_6;266/64.?6916705nM5Z5f5r5s5d5}U6>468064.t64.64.64.W65.6:16:165.65.6:169164.r64. 64.64.???````p|@?@?`?``p?(  <;;+0MMT |?}}C);A);A)6ppt7'0[[t7#p[Np[Np[Np[Np[Np[Np[NLLLLcahcah|T|T|T|TKnuKnuBvBv|T|T|T|Tc2g5j8v@%{D)~H-K/GޒIץZΒK/c2g5j8u@%{D)~H-K/(  SGȪ>>1FZ\?BZ]@"f?M}[.h?LZ-j?GtuR+}gW{fWxhYvj\uk_z/wE^fO'r_Tqarerem`v}u~m2}r:RRPY+|}mUo4}p6xcmkfqpce{AeYOcgkix{qpAXm[mxAK}@Ñ^ӣr|oXo7xD"M-V6Z=kRpp././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1333188224.0 tortoisehg-6.9/icons/menusynch.ico0000644000000000000000000001373611735553200016150 0ustar00rootroot  6 h  F( @ NNjQOOOPON.N_P]iqpld [PPNaN N Q U"u(}'{$y"wtn_RNNONQ`,ق-ڃ,ف*׀(}%zp RPN?NNNONNP^0܅2߇2߇0݆.ۃ+׀nPOUNNkPZ0܅46641ކgPN-NPN+P+~37::7kQNNQN7Qk/܄37;;+}QNNaO W*.ڃ1އ573݆ RNANnOr(}+؁.ۄ1ކ2ވ\PNok"w%z(}+׀-قoQNN NNNNNNNNNNNNNNmqt"w%z'|(|QN6N?NNOOOOOOOOOONNjnqs!v#xdPN.O \gggggggggNNgjmprrPNNNO\llkjigggNNggikmodON"NPappomkigNNggggijk_ONN"Ph tsrpmjNNgggggggg ZONNNP#x#x!vsqnNNggggggggg \ON.Qf)~'|%z"wtqNNOOOOOOOOOONNN?N6 R,ׁ-ق+׀(}%z"wsNNNNNNNNNNNNNNN NQ!r2߈1ކ.ۄ+؁(}o!uNP\7751އ.ڃ$wOsNNA R3݇;;73/܄ WOdNNP(y7::73nQN7 RNNQh1ކ4664-׀QN+PNN-Pd+׀.ۃ0݆2߇2߇/ۅZPNkNOUPj%z(}*׀,ف-ڃ-ق]PNNONNNN@OQjt"w$y'{(}(}_PNONNR \hmps!u"wp TPN N NaPP Y`gkle[ON_N.OPOOOPNjNxp0 ?? ?(  |(|(|(|(|(|(2<<2<|(|(|(HHH|(|(|(|($mH$m|(|(2<$m<|(|(<$m<|(|(|(|(|(|(|(|(|(<<<|(|(2222|(|(2<<|(|(<<2|(|(2222|(|(<<<|(|(|(|(|(|(|(|(|(<$m<|(|(<$m<2|(|($mH$m|(|(|(|(HHH|(|(|(<2<<2|(|(|(|(|(|(?`A(  0<<20|(00HH|(|(4_|(|($mH$m|(0|(<$m<|(5|($m<|(|(<<|(+|(|(|(|(|(|(|(|(|(|(|(|(+|(<<|(|(<$m|(5|(<$m<|(0|($mH$m|(|(4_|(|(HH00|(02<<0p././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1333188224.0 tortoisehg-6.9/icons/proxy.ico0000644000000000000000000001525611735553200015317 0ustar00rootroot  6h hF( @ 64. 64.Z64.64.64.64.64.64.64.64.64.X64. 64.64.64.@<0UN3e\6`b:th8sh8od7e\6UN3?<064.64.64.64.g64.IE1lb7q:q:X~G!c}p:q:q:q:q:q:ka7ID164.64.c64.64.<9/h^6q:q:q:vp<jqtn;q:q:q:q:q:q:q:g]6;9/64.64.64.64.C?0wk9q:q;r;r;=Yxsvn;q:q:q:q:q:q:q:q:vj9B?064.64.64.D@1|o;t=t>u>u?jxEy|!nrs<r;q:q:q:q:q:q:fn=2B464.c64.64.lcr<q:q:q:q:q:LM[64.64.64.LH4{F|H~IKLL.sȂȂȁ&x~|J}H{FzDxBv@s=q;q:q:~p:%ap4K864.64. 64.tkB~JLNOPb[!ʃ!ʃ!ʂ ʂ ɂ7m~LK}H{FyCv@t=r;q:SIqq)R64.64. 64._B?2KNPRTT0u"̄"̄"̄"̃"˃!˃_\NL~J|GyDv@iwDFUrrqj:;064.X64.\Wdx'Z64.64.64.n6>4.z+ֈ,؉-ي-ڊ.ڊ.ڊ-ڊ,ى@t`\Uh#̈́"̃ ʂȂƁĀ!n6:164.g64.6L;,*ֈ+׉,؉,؉,؉,؉+׉ei]Y1sJg3s ɂǁŀx4F864.64. 64.5O=**Ո*ֈ*ֈ*ֈ*ֈ8y^ZV_WrTBhȂƁw2L<64.64.64. 64.5E8,p(ԇ(ԇ)҆;vz`_ƾ\ThY-v"}ǁ$j4B664.64.64.n64.4\DTWYZZYcURPy~N!ŀ(h0]E64.64.j64.64.64.DB5`[AtnI~wM|N{L{sHphC[V;9?364.64.64.64.64.`64.64.64.64.64.64.64.64.64._64. ??( kmo!l#x s"~ >o>5z7   *0 nxn,5 &1MTww.8($2-:2" ) /'-)1!7'# 6"8IS2$;1LSW\^b.I";2K9&ALY5P,I"<0M&B|9Y3Q>U-K:Z[q6W`pmyÆ>aEj:^=cVvFl>dXzeڂJtFrِJtQUTycbk}jiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii/iiiiiiii0>)@2,iiiii7EN? HH@&iiiDHRX1 -XR-iiiHR\[(,+LU* iiWOZM6 'Ua' iiWVF#8TcbL$iiYO!9HD^hfd: iii="@NVGegd= iii%"2d 6lCY 7Z1QBiTU)&'>aKt!7 nXb*F=cQEj.I2-Mwb.  x`f 2QHr:Z)(2Keڂ}k>b } ed9\>a"93U:Wj&A  e_?d{,I %@;_Fr[ql.L aRBi++ 85PFlJqyc3Q*Y7  .!93Q<[Xz"849Y;] Bzt *1.I0M-J0'JtHrv &>.   ?d1Mg,G5 $; s!s5././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1333188224.0 tortoisehg-6.9/icons/refresh_overlays.ico0000644000000000000000000001373611735553200017521 0ustar00rootroot  6 h  6(  |IwEeqAl>h:ee8N'Q`MzHdtC.n?,j<df9d7_b;Y!_U Ke $e d7] g9e8`a#^#Lk CZWl <[ i;h9f%ec$d.fG^ dm>dl=ej&h&,!4N ex3 sB.qAo(m'. vƟ zH,wFs)er)e g ؐ-G eMd~Kev)u*_y$ !/JJj RNx+`w*g&.&w fUm" ["W!_w3y+bF^'N&h&Hc$_#`b's)`#NtDj&0g&pٰPp@ @ pPѰp(  wEtCQp@tl=vh;Se9OL{IwErBn?k=h:e8c7U +ROLi<g:e8d6+["X!U ] K$ Kh:]f8e8_#\"&Σ1 i;g:e&b$_" LǕ. Kl=k<j;h&Sf%0&A`t o?m>Qk'vj& 6 Qgu sCqAto(tm' gz4 xFvEvr)Qq( x߉؞ }JzHSu*t)r( M шӗ'B KQNLv*u* %AT Rx,x*v*Y*t l L["]X!Vy+,x+};_&S?e%a$^#["+y+As9U L?i&h&d%`#v*h&Z"LutDk';  ;( @ uJ wEEvEsBqAo?m>k=i;h:e8AmI$}M ~Jp{HyGwFuDsCqAo@m>l=j;h:f8e7|`7 ONML}J{IxFwEMuC qBqDp?"m?Kk=j<h:f9d7c7PZRPOMKH@h<Ch;f9d8c7f3f3U T RPu@f3h;lg9e8c6i<X!W!U T>  U  T i:Dg:e8c7["PZ"X!W!D Q - Pj;>h:f8e8N`" ]#ߔ\"Z"lm$ '͝E]  m$j;uh:f9e5 `#|_#]#Ιf!-Od @j<h:f9pm$b$a$_"C R ܼXl! Pl=Hk<i;j5e&Ad$b$ހ@  cvk<j<Eg%f%e% V!=ؙ l=i&g&f%K4 /I q@Mp@n?k&i&h%" -G7P !<  rC rBp@l'k'i% :+E ! wFtDrBn'l'j(  !1L xDwEuDp(n(m' @XYn {I"yGwEq)p(o'N Sh' }JK{IyGr)r)q(~ V q؂xщ UL~J|It*Et)r)ضm$  ϐڞ/ @NހL~LAz)u*t)s(U} R ޗդʖ QQCPNI$w)jv*t)Ҫ+! Lc#MSΆQP|{&w*v*u)hm$! !m$V lT SߊS x,\x*v*u*D} R   RX!DX!V VPy+x*w*v*1Z!im_!~ V  V ]!>["Y!X!f3y+x*w*u*uh+t]"W ҆R@`#u^#\"["f3{,z+x+w*Ƒ[l1Z"S҃Oe%Jc$Ĝa$`#^#Zy+I?ϟr˚lh0V PҀLi&?g&Тf%d%c$`#Nv*o(h&a$Z"S LzGi&;i&h&f&pe$ z+s)l'd$]"V O{ItDk'Pf)??sq999999qs?././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1737033607.875414 tortoisehg-6.9/icons/scalable/0000755000000000000000000000000014742203610015175 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.0954144 tortoisehg-6.9/icons/scalable/actions/0000755000000000000000000000000014742203610016635 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/application-exit.svg0000644000000000000000000002343614023111777022644 0ustar00rootroot ]> ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/compare-files.svg0000644000000000000000000004366714023111777022130 0ustar00rootroot image/svg+xml 2008-05-05 Peer Sommerlund Icon for TortoiseHg dialog "Datamine" = ? ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/copy-hash.svg0000644000000000000000000004554614023111777021273 0ustar00rootroot image/svg+xml 2008-05-05 Peer Sommerlund Icon for TortoiseHg dialog "Datamine" # # ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/copy-patch.svg0000644000000000000000000004062414023111777021437 0ustar00rootroot image/svg+xml 2008-05-05 Peer Sommerlund Icon for TortoiseHg dialog "Datamine" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/dialog-warning.svg0000644000000000000000000003352514023111777022274 0ustar00rootroot image/svg+xml Dialog Warning 2005-10-14 Andreas Nilsson Jakub Steiner, Garrett LeSage dialog warning ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/document-new.svg0000644000000000000000000004177614023111777022006 0ustar00rootroot image/svg+xml New Document Jakub Steiner http://jimmac.musichall.cz ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/edit-copy.svg0000644000000000000000000003635314023111777021271 0ustar00rootroot image/svg+xml Edit Copy 2005-10-15 Andreas Nilsson edit copy Jakub Steiner ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/edit-cut.svg0000644000000000000000000005501314023111777021104 0ustar00rootroot image/svg+xml Edit Cut Garrett Le Sage edit cut clipboard Jakub Steiner ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/edit-file.svg0000644000000000000000000002621514023111777021232 0ustar00rootroot Edit File image/svg+xml Edit File 2011-03-03 Peer Sommerlund Edit file icon for TortoiseHg Angel Ezquerra, Garrett LeSage, Jakub Steiner, Steven Garrity ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/edit-find.svg0000644000000000000000000010512414023111777021230 0ustar00rootroot image/svg+xml Edit Find edit find locate search Steven Garrity Jakub Steiner ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/go-down.svg0000644000000000000000000002015414023111777020736 0ustar00rootroot image/svg+xml Jakub Steiner http://jimmac.musichall.cz Go Down go lower down arrow pointer > Andreas Nilsson ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/go-home.svg0000644000000000000000000005013114023111777020715 0ustar00rootroot image/svg+xmlGo HomeJakub Steinerhttp://jimmac.musichall.czhomereturngodefaultuserdirectoryTuomas Kuosmanen ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/go-jump.svg0000644000000000000000000001766214023111777020754 0ustar00rootroot image/svg+xml Jakub Steiner http://jimmac.musichall.cz Go Jump go jump seek arrow pointer ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/go-next.svg0000644000000000000000000001731414023111777020751 0ustar00rootroot image/svg+xml Jakub Steiner http://jimmac.musichall.cz Go Next go next right arrow pointer > ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/go-previous.svg0000644000000000000000000001751314023111777021650 0ustar00rootroot image/svg+xml Jakub Steiner http://jimmac.musichall.cz Go Previous go previous left arrow pointer < ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/go-to-rev.svg0000644000000000000000000003157414023111777021213 0ustar00rootroot image/svg+xml Jakub Steiner http://jimmac.musichall.cz go jump seek arrow pointer ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/go-up.svg0000644000000000000000000001777314023111777020430 0ustar00rootroot image/svg+xml Jakub Steiner http://jimmac.musichall.cz Go Up go higher up arrow pointer > Andreas Nilsson ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-annotate.svg0000644000000000000000000002237314023111777021576 0ustar00rootroot Annotate Document image/svg+xml Annotate Document 2008-04-16 Peer Sommerlund Icon for TortoiseHg tab "Annotate" annotate blame image/svg+xml ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-archive.svg0000644000000000000000000003367614023111777021416 0ustar00rootroot image/svg+xml Media Floppy Tuomas Kuosmanen http://www.tango-project.org save document store file io floppy media Jakub Steiner ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-bisect-bad-good.svg0000644000000000000000000004232114023111777022703 0ustar00rootroot image/svg+xml Garrett Le Sage edit cut clipboard Jakub Steiner ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-bisect-good-bad.svg0000644000000000000000000004560014023111777022706 0ustar00rootroot image/svg+xml Garrett Le Sage edit cut clipboard Jakub Steiner ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-bisect.svg0000644000000000000000000006770514023111777021246 0ustar00rootroot image/svg+xml Edit Cut Garrett Le Sage edit cut clipboard Jakub Steiner ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-bookmarks.svg0000644000000000000000000001537114023111777021755 0ustar00rootroot image/svg+xml 2008-04-09 Peer Sommerlund Sync icon for TortoiseHg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-bundle.svg0000644000000000000000000004516614023111777021243 0ustar00rootroot image/svg+xml 2011-02-14 Peer Sommerlund Push icon for TortoiseHg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-clone.svg0000644000000000000000000011736214023111777021070 0ustar00rootroot Clone image/svg+xml Clone Yuki Kodama TortoiseHg Project 2010-05-29 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-commit.svg0000644000000000000000000000472214023111777021253 0ustar00rootroot image/svg+xml ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-compress.svg0000644000000000000000000005126014023111777021615 0ustar00rootroot image/svg+xml Jakub Steiner http://jimmac.musichall.cz/ package archive tarball tar bzip gzip zip arj tar jar ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-export.svg0000644000000000000000000004767614023111777021323 0ustar00rootroot image/svg+xml Tuomas Kuosmanen http://www.tango-project.org save document store file io floppy media Jakub Steiner ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-extensions.svg0000644000000000000000000001275014023111777022162 0ustar00rootroot Extensions image/svg+xml Extensions 2010-11-13 Johan Samyn Extensions icon for TortoiseHg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-grep.svg0000644000000000000000000001316114023111777020715 0ustar00rootroot image/svg+xml 2008-05-05 Peer Sommerlund Icon for TortoiseHg dialog "Datamine" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-import.svg0000644000000000000000000004771314023111777021304 0ustar00rootroot image/svg+xml Media Floppy Tuomas Kuosmanen http://www.tango-project.org save document store file io floppy media Jakub Steiner ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-incoming.svg0000644000000000000000000002710014023111777021561 0ustar00rootroot image/svg+xml 2011-02-14 Peer Sommerlund Incoming icon for TortoiseHg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-init.svg0000644000000000000000000002272514023111777020731 0ustar00rootroot image/svg+xml Initialize 2008-12-27 Peer Sommerlund Icon for TortoiseHg dialog "Init" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-log.svg0000644000000000000000000002226714023111777020550 0ustar00rootroot image/svg+xml Log 2008-05-19 Peer Sommerlund Log icon for TortoiseHg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-merge.svg0000644000000000000000000001300014023111777021047 0ustar00rootroot image/svg+xml Merge 2008-04-26 Peer Sommerlund ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-outgoing.svg0000644000000000000000000002671214023111777021621 0ustar00rootroot image/svg+xml 2011-02-14 Peer Sommerlund Outgoing icon for TortoiseHg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-pull-to-here.svg0000644000000000000000000006374714023111777022314 0ustar00rootroot image/svg+xml 2011-02-14 Peer Sommerlund Pull icon for TortoiseHg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-pull.svg0000644000000000000000000004010314023111777020730 0ustar00rootroot image/svg+xml 2011-02-14 Peer Sommerlund Pull icon for TortoiseHg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-purge.svg0000644000000000000000000003414514023111777021107 0ustar00rootroot image/svg+xml ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-push.svg0000644000000000000000000004012214023111777020734 0ustar00rootroot image/svg+xml 2011-02-14 Peer Sommerlund Push icon for TortoiseHg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-qdelete.svg0000644000000000000000000002325514023111777021410 0ustar00rootroot QPushAll icon image/svg+xml QPushAll icon 2011-01-25 Patrice LACOUTURE QPushAll icon for TortoiseHg - derived from QPush by Peer Sommerlund. Peer Sommerlund, Patrice LACOUTURE ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-qfold.svg0000644000000000000000000002645014023111777021072 0ustar00rootroot QPushAll icon image/svg+xml QPushAll icon 2011-01-25 Patrice LACOUTURE QPushAll icon for TortoiseHg - derived from QPush by Peer Sommerlund. Peer Sommerlund, Patrice LACOUTURE ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-qgoto.svg0000644000000000000000000003021314023111777021106 0ustar00rootroot QPushAll icon image/svg+xml QPushAll icon 2011-01-25 Patrice LACOUTURE QPushAll icon for TortoiseHg - derived from QPush by Peer Sommerlund. Peer Sommerlund, Patrice LACOUTURE ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-qguard.svg0000644000000000000000000003162014023111777021243 0ustar00rootroot QGuard icon image/svg+xml QGuard icon 2011-01-28 Patrice LACOUTURE QGuard icon for TortoiseHg Patrice LACOUTURE ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-qpop-all.svg0000644000000000000000000001625314023111777021512 0ustar00rootroot QPopAll image/svg+xml QPopAll 2011-01-25 Patrice LACOUTURE QPopAll icon for TortoiseHg - derived from QPop by Peer Sommerlund Peer Sommerlund, Patrice LACOUTURE ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-qpop.svg0000644000000000000000000001056714023111777020746 0ustar00rootroot QPop image/svg+xml QPop 2010-10-17 Peer Sommerlund QPop icon for TortoiseHg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-qpush-all.svg0000644000000000000000000001430714023111777021671 0ustar00rootroot QPushAll icon image/svg+xml QPushAll icon 2011-01-25 Patrice LACOUTURE QPushAll icon for TortoiseHg - derived from QPush by Peer Sommerlund. Peer Sommerlund, Patrice LACOUTURE ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-qpush-move.svg0000644000000000000000000001270014023111777022062 0ustar00rootroot QReorder icon image/svg+xml QReorder icon 2011-01-25 Richard Marti QPushMove icon for TortoiseHg - derived from QPush icon by Peer Sommerlund Peer Sommerlund, Patrice LACOUTURE, Richard Marti ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-qpush.svg0000644000000000000000000001042614023111777021121 0ustar00rootroot QPush image/svg+xml QPush 2010-10-17 Peer Sommerlund QPush icon for TortoiseHg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-rebase.svg0000644000000000000000000007223114023111777021224 0ustar00rootroot image/svg+xml 2008-05-05 Peer Sommerlund Icon for TortoiseHg dialog "Datamine" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-recover.svg0000644000000000000000000003772514023111777021441 0ustar00rootroot image/svg+xml 2008-05-05 Peer Sommerlund Icon for TortoiseHg dialog "Datamine" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-remove.svg0000644000000000000000000001524714023111777021264 0ustar00rootroot image/svg+xml Remove 2008-05-07 Peer Sommerlund Remove icon for TortoiseHg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-rename.svg0000644000000000000000000002160014023111777021224 0ustar00rootroot image/svg+xml 2010-06-06 Johan Samyn Icon for TortoiseHg dialog "Rename" TortoiseHg Project image/svg+xml ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-revert.svg0000644000000000000000000001262114023111777021267 0ustar00rootroot image/svg+xml Revert 2008-05-18 Peer Sommerlund Revert icon for TortoiseHg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-serve.svg0000644000000000000000000003330514023111777021106 0ustar00rootroot image/svg+xml Proxy 2008-04-19 Peer Sommerlund Icon for TortoiseHg dialog "Web Server" image/svg+xml ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-shelve.svg0000644000000000000000000002505014023111777021246 0ustar00rootroot image/svg+xml Status 2008-04-16 Peer Sommerlund Icon for TortoiseHg dialog "File Status" image/svg+xml ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-status.svg0000644000000000000000000002514614023111777021311 0ustar00rootroot image/svg+xml Status 2008-04-16 Peer Sommerlund Icon for TortoiseHg dialog "File Status" image/svg+xml ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-strip.svg0000644000000000000000000001524714023111777021130 0ustar00rootroot image/svg+xml Remove 2008-05-07 Peer Sommerlund Remove icon for TortoiseHg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-tag.svg0000644000000000000000000001155514023111777020540 0ustar00rootroot Tag image/svg+xml Tag 2010-05-29 Yuki Kodama TortoiseHg Project ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-topics.svg0000644000000000000000000001013014023111777021252 0ustar00rootroot topic-icon Created with Sketch. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-transplant.svg0000644000000000000000000000735314023111777022154 0ustar00rootroot image/svg+xml ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-unbundle.svg0000644000000000000000000004217114023111777021577 0ustar00rootroot image/svg+xml 2011-02-14 Peer Sommerlund Pull icon for TortoiseHg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-undo.svg0000644000000000000000000001270314023111777020726 0ustar00rootroot image/svg+xml 2008-05-18 Peer Sommerlund Revert icon for TortoiseHg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-update.svg0000644000000000000000000007721514023111777021254 0ustar00rootroot Update image/svg+xml Update Yuki Kodama 2010-05-29 TortoiseHg Project ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/hg-verify.svg0000644000000000000000000003774614023111777021303 0ustar00rootroot image/svg+xml 2008-05-05 Peer Sommerlund Icon for TortoiseHg dialog "Datamine" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/ldiff.svg0000644000000000000000000004312114023111777020447 0ustar00rootroot image/svg+xml 2008-05-05 Peer Sommerlund Icon for TortoiseHg dialog "Datamine" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/mail-forward.svg0000644000000000000000000011027114023111777021750 0ustar00rootroot image/svg+xml Mail Jakub Steiner Andreas Nilsson mail e-mail MUA ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/new-group.svg0000644000000000000000000002162514023111777021313 0ustar00rootroot image/svg+xml 2008-04-09 Peer Sommerlund Sync icon for TortoiseHg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/process-stop.svg0000644000000000000000000002750214023111777022031 0ustar00rootroot image/svg+xml Stop 2005-10-16 Andreas Nilsson stop halt error Jakub Steiner ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/qfinish.svg0000644000000000000000000004425514023111777021035 0ustar00rootroot image/svg+xml 2008-05-05 Peer Sommerlund Icon for TortoiseHg dialog "Datamine" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/qimport.svg0000644000000000000000000004416314023111777021065 0ustar00rootroot image/svg+xml 2008-05-05 Peer Sommerlund Icon for TortoiseHg dialog "Datamine" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/settings_projrc.svg0000644000000000000000000004237614023111777022615 0ustar00rootroot image/svg+xml 2011-02-14 Peer Sommerlund Pull icon for TortoiseHg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/status-check.svg0000644000000000000000000003647114023111777021773 0ustar00rootroot image/svg+xml 2008-05-05 Peer Sommerlund Icon for TortoiseHg dialog "Datamine" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/tasktab-refresh.svg0000644000000000000000000002300414023111777022446 0ustar00rootroot reloadttimage/svg+xmlreloadttJohan SamynTortoiseHg Project2010-08-23 T ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/thg-add-subrepo.svg0000644000000000000000000002017714023111777022356 0ustar00rootroot unsorted Open Clip Art Library, Source: Wiki Commons, Source: Wikimedia Commons image/svg+xml en S ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/thg-console.svg0000644000000000000000000010274214023111777021612 0ustar00rootroot showlog image/svg+xml showlog Johan Samyn TortoiseHg Project 2010-09-01 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/thg-guess.svg0000644000000000000000000002263214023111777021275 0ustar00rootroot image/svg+xml Status 2008-04-16 Peer Sommerlund Icon for TortoiseHg dialog "File Status" image/svg+xml ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/thg-ignore.svg0000644000000000000000000001613314023111777021431 0ustar00rootroot image/svg+xml Ignore 2009-02-28 Peer Sommerlund "Ignore" icon for TortoiseHg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/thg-log-load-all.svg0000644000000000000000000003001314023111777022403 0ustar00rootroot loadall image/svg+xml loadall Johan Samyn TortoiseHg Project 2010-09-01 N 0 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/thg-mq.svg0000644000000000000000000001233514023111777020563 0ustar00rootroot MQ Icon image/svg+xml MQ Icon 2011-01-28 Patrice LACOUTURE MQ icon for TortoiseHg - derived from QPush icon by Peer Sommerlund. Peer Sommerlund, Patrice LACOUTURE ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/thg-password.svg0000644000000000000000000004560214023111777022013 0ustar00rootroot ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/thg-qrefresh.svg0000644000000000000000000005405314023111777021770 0ustar00rootroot image/svg+xml 2008-05-05 Peer Sommerlund Icon for TortoiseHg dialog "Datamine" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/thg-qreorder.svg0000644000000000000000000001443714023111777021776 0ustar00rootroot QReorder icon image/svg+xml QReorder icon 2011-01-25 Patrice LACOUTURE QReorder icon for TortoiseHg - derived from QPush icon by Peer Sommerlund Peer Sommerlund, Patrice LACOUTURE ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/thg-reporegistry.svg0000644000000000000000000012713214023111777022706 0ustar00rootroot repotree image/svg+xml repotree Johan Samyn TortoiseHg Project 2010-09-01 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/thg-repository-open.svg0000644000000000000000000002116714023111777023327 0ustar00rootroot image/svg+xml 2008-04-09 Peer Sommerlund Sync icon for TortoiseHg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/thg-shelve-delete-left.svg0000644000000000000000000000666114023111777023631 0ustar00rootroot Delete-files-left image/svg+xml Delete-files-left 2011-01-09 Peer Sommerlund ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/thg-shelve-delete-right.svg0000644000000000000000000000655714023111777024020 0ustar00rootroot Delete-files-right image/svg+xml Delete-files-right 2011-01-09 Peer Sommerlund ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/thg-shelve-move-left-all.svg0000644000000000000000000003364014023111777024100 0ustar00rootroot image/svg+xml Media Seek Backward Lapo Calamandrei ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/thg-shelve-move-left-chunks.svg0000644000000000000000000003035514023111777024623 0ustar00rootroot Chunk-to-left image/svg+xml Chunk-to-left Peer Sommerlund Lapo Calamandrei, Jakub Steiner 2011-01-09 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/thg-shelve-move-left-file.svg0000644000000000000000000002427214023111777024250 0ustar00rootroot image/svg+xml Media Playback Start Lapo Calamandrei play media music video player Jakub Steiner ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/thg-shelve-move-right-all.svg0000644000000000000000000003452514023111777024266 0ustar00rootroot image/svg+xml Media Seek Forward Lapo Calamandrei Jakub Steiner ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/thg-shelve-move-right-chunks.svg0000644000000000000000000002452314023111777025006 0ustar00rootroot Chunk-to-right image/svg+xml Chunk-to-right Peer Sommerlund Lapo Calamandrei, Jakub Steiner 2011-01-09 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/thg-shelve-move-right-file.svg0000644000000000000000000002564214023111777024435 0ustar00rootroot image/svg+xml Media Playback Start Lapo Calamandrei play media music video player Jakub Steiner ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/thg-sync-bookmarks.svg0000644000000000000000000002200414023111777023102 0ustar00rootroot image/svg+xml Sync 2008-04-09 Peer Sommerlund Sync icon for TortoiseHg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/thg-sync.svg0000644000000000000000000001446114023111777021124 0ustar00rootroot image/svg+xml Sync 2008-04-09 Peer Sommerlund Sync icon for TortoiseHg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/view-annotate.svg0000644000000000000000000001140714023111777022146 0ustar00rootroot view annotations image/svg+xml view annotations 2011-02-16 Peer Sommerlund # ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/view-at-revision.svg0000644000000000000000000005154214023111777022601 0ustar00rootroot image/svg+xml 2008-05-05 Peer Sommerlund Icon for TortoiseHg dialog "Datamine" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/view-diff.svg0000644000000000000000000001302414023111777021242 0ustar00rootroot view diff image/svg+xml view diff 2011-02-16 Peer Sommerlund ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/view-file.svg0000644000000000000000000001101714023111777021251 0ustar00rootroot View changes in file image/svg+xml View changes in file 2011-02-16 Peer Sommerlund ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/view-filter.svg0000644000000000000000000003661414023111777021631 0ustar00rootroot image/svg+xml Jakub Steiner http://jimmac.musichall.cz ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/view-hidden.svg0000644000000000000000000004760014023111777021574 0ustar00rootroot image/svg+xml 2008-05-05 Peer Sommerlund Icon for TortoiseHg dialog "Datamine" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/view-refresh.svg0000644000000000000000000001560414023111777021776 0ustar00rootroot ]> ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/actions/visualdiff.svg0000644000000000000000000003043314023111777021521 0ustar00rootroot image/svg+xml Repo Browse 2008-05-05 Peer Sommerlund Icon for TortoiseHg dialog "Datamine" ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1034145 tortoisehg-6.9/icons/scalable/apps/0000755000000000000000000000000014742203610016140 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/apps/help-browser.svg0000644000000000000000000003224014023111777021277 0ustar00rootroot image/svg+xml Help Browser 2005-11-06 Tuomas Kuosmanen help browser documentation docs man info Jakub Steiner, Andreas Nilsson http://tigert.com ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/apps/help-readme.svg0000644000000000000000000007065014023111777021060 0ustar00rootroot image/svg+xml Generic Text text plaintext regular document Jakub Steiner http://jimmac.musichall.cz ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/apps/hg.svg0000644000000000000000000002040314023111777017262 0ustar00rootroot image/svg+xml ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/apps/phabricator.svg0000644000000000000000000000133114023111777021161 0ustar00rootroot ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/apps/preferences-desktop-font.svg0000644000000000000000000000763714023111777023616 0ustar00rootroot fonts.svg image/svg+xml fonts.svg 2010-06-26 Johan Samyn TortoiseHg project F f ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/apps/system-file-manager.svg0000644000000000000000000001616314023111777022545 0ustar00rootroot image/svg+xml 2008-04-09 Peer Sommerlund Sync icon for TortoiseHg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/apps/thg.svg0000644000000000000000000012272414023111777017457 0ustar00rootroot image/svg+xml TortoiseHg 2007-dec-11 Peer Sommerlund Closely resembles TortoiseSVN logo Hg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/apps/tools-hooks.svg0000644000000000000000000010337714023111777021161 0ustar00rootroot image/svg+xml Jakub Steiner http://jimmac.musichall.cz preferences settings control panel tweaks system ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/apps/tools-spanner-hammer.svg0000644000000000000000000010756614023111777022757 0ustar00rootroot image/svg+xml Jakub Steiner http://jimmac.musichall.cz preferences settings control panel tweaks system ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/apps/utilities-terminal.svg0000644000000000000000000001312014023111777022506 0ustar00rootroot image/svg+xml 2008-04-09 Peer Sommerlund Sync icon for TortoiseHg C:>_ ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1154144 tortoisehg-6.9/icons/scalable/status/0000755000000000000000000000000014742203610016520 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/status/hg-merged-both.svg0000644000000000000000000002213414023111777022040 0ustar00rootroot view diff image/svg+xml view diff 2011-02-16 Peer Sommerlund ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/status/hg-merged-p1.svg0000644000000000000000000002606714023111777021435 0ustar00rootroot view diff image/svg+xml view diff 2011-02-16 Peer Sommerlund ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/status/hg-merged-p2.svg0000644000000000000000000002737614023111777021442 0ustar00rootroot view diff image/svg+xml view diff 2011-02-16 Peer Sommerlund ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/status/hg-modified.svg0000644000000000000000000001121014023111777021414 0ustar00rootroot image/svg+xml Commit 2008-04-09 Peer Sommerlund Commit icon for TortoiseHg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/status/hg-patch-applied.svg0000644000000000000000000004667414023111777022375 0ustar00rootroot image/svg+xml ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/status/hg-patch-guarded.svg0000644000000000000000000003011414023111777022350 0ustar00rootroot QGuard icon image/svg+xml QGuard icon 2011-01-28 Patrice LACOUTURE QGuard icon for TortoiseHg Patrice LACOUTURE ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/status/hg-patch-unguarded.svg0000644000000000000000000003146314023111777022723 0ustar00rootroot QGuard icon image/svg+xml QGuard icon 2011-01-28 Patrice LACOUTURE QGuard icon for TortoiseHg Patrice LACOUTURE ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/status/hg-sharedrepo.svg0000644000000000000000000001263414023111777022003 0ustar00rootroot image/svg+xml Jakub Steiner http://jimmac.musichall.cz Symbolic Link emblem symbolic link pointer io file ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/status/thg-added-subrepo.svg0000644000000000000000000002100314023111777022537 0ustar00rootroot unsorted Open Clip Art Library, Source: Wiki Commons, Source: Wikimedia Commons image/svg+xml en S ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/status/thg-error.svg0000644000000000000000000001342614023111777021164 0ustar00rootroot Error image/svg+xml Error Yuki Kodama TortoiseHg Project 2010-05-29 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/status/thg-git-subrepo.svg0000644000000000000000000001112114023111777022261 0ustar00rootroot unsorted Open Clip Art Library, Source: Wiki Commons, Source: Wikimedia Commons image/svg+xml en ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/status/thg-remote-repo.svg0000644000000000000000000024767614023111777022311 0ustar00rootroot image/svg+xml Jakub Steiner http://jimmac.musichall.cz HTML hypertext web ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/status/thg-removed-subrepo.svg0000644000000000000000000002203614023111777023146 0ustar00rootroot unsorted Open Clip Art Library, Source: Wiki Commons, Source: Wikimedia Commons image/svg+xml en S ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/status/thg-subrepo.svg0000644000000000000000000001420314023111777021504 0ustar00rootroot unsorted Open Clip Art Library, Source: Wiki Commons, Source: Wikimedia Commons image/svg+xml en S ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/status/thg-success.svg0000644000000000000000000001173714023111777021506 0ustar00rootroot Success image/svg+xml Success Yuki Kodama 2010-05-29 TortoiseHg Project ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/status/thg-svn-subrepo.svg0000644000000000000000000001524114023111777022313 0ustar00rootroot unsorted Open Clip Art Library, Source: Wiki Commons, Source: Wikimedia Commons image/svg+xml en ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/scalable/status/thg-warning.svg0000644000000000000000000001547114023111777021502 0ustar00rootroot Warning image/svg+xml Warning Yuki Kodama TortoiseHg Project 2010-05-31 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1333188225.0 tortoisehg-6.9/icons/settings_repo.ico0000644000000000000000000001246611735553201017024 0ustar00rootroot  & h( @ DDDDDDDDDDDDDDDDDDDDDDDD DD9hDmDNuD%dODEPuDEzN,h)fDFPtDnN7oG{wĝDFPtDf]_DFPsDվ:rDFPsDcʪDFPrDZDFPrDDFPqDDFPpDϟrϟrϟrϟrϟrϟrϟrϟrϟrТvӨ֮ٴܺƫ̴θDFPpDDDDDDDDDDDDDDDDDDDDFPpgOOOOOI?2FPogOOOOOI?2FPnhOOOOOI?2FPniOOOOOI?2FPmiOOOOOI@2FPmiOOOOOI@2FPl]ENOOOI@2FC<952߈/܄,؁DDN#s>>;841އDϟrϟrϟrϟrϟrϟrϟrϟrϟrТvӨ֮ٴܺƫ̴θDO_%u.-Ԁ+})zDDDDDDDDDDDDDDDDDDDDPQNNNNNNNNNP~~3GM;~^nnnnj7}~knnnnnnn.Ywnnnnnnf~}wnnnnnn }}wnnnnn3}}vnnnn#~jvnnh}vn4~.E}Op{W%~~}?????(  ˛nַַַַַַַַ˛nַַN V W W WַWַNkkggַhSsַO!t"vpjַˬӺַO*}-ق&{ tַʪַO*|71ކ+׀ַַZ-3݇.؂ÇOǏ[Ǐ[Ǐ[Ǐ[Ȓ_˘hΞpѤyɓaPN qO@(UY4}@%unnn.RxnnK}GwnB~@¿jƿ€9>ĿAAAAAAAAAAA?A?AAAA././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1333188225.0 tortoisehg-6.9/icons/shelve.ico0000644000000000000000000001246611735553201015425 0ustar00rootroot h&  (  5VVVVV>J }/-,J J wXJ ijjQC9*J 000qJ o\NddcJ J ~esfCJ ȿqJ QJ ` image/svg+xml Add 2008-04-09 Peer Sommerlund Add icon for TortoiseHg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/svg/checkout.svg0000644000000000000000000002355314023111777016570 0ustar00rootroot image/svg+xml Checkout 2008-05-24 Peer Sommerlund Icon for TortoiseHg dialog "Update" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/svg/clone.svg0000644000000000000000000002030214023111777016050 0ustar00rootroot image/svg+xml Clone 2008-03-02 Peer Sommerlund Icon for TortoiseHg dialog "Clone" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/svg/commit.svg0000644000000000000000000001121014023111777016236 0ustar00rootroot image/svg+xml Commit 2008-04-09 Peer Sommerlund Commit icon for TortoiseHg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1433587038.0 tortoisehg-6.9/icons/svg/detect_rename.svg0000644000000000000000000004723512534546536017577 0ustar00rootroot image/svg+xml Status 2008-04-16 Peer Sommerlund Icon for TortoiseHg dialog "File Status" image/svg+xml ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1433587139.0 tortoisehg-6.9/icons/svg/ignore.svg0000644000000000000000000001613312534546703016250 0ustar00rootroot image/svg+xml Ignore 2009-02-28 Peer Sommerlund "Ignore" icon for TortoiseHg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1333188225.0 tortoisehg-6.9/icons/svg/init.svg0000644000000000000000000002272511735553201015725 0ustar00rootroot image/svg+xml Initialize 2008-12-27 Peer Sommerlund Icon for TortoiseHg dialog "Init" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1333188225.0 tortoisehg-6.9/icons/svg/log.svg0000644000000000000000000002246411735553201015543 0ustar00rootroot image/svg+xml Log 2008-05-19 Peer Sommerlund Log icon for TortoiseHg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1433587828.0 tortoisehg-6.9/icons/svg/proxy.svg0000644000000000000000000003464112534550164016146 0ustar00rootroot image/svg+xml Proxy 2008-04-19 Peer Sommerlund Icon for TortoiseHg dialog "Web Server" image/svg+xml ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/svg/recovery.svg0000644000000000000000000003076414023111777016623 0ustar00rootroot image/svg+xml Recovery 2008-05-26 Peer Sommerlund Icon for TortoiseHg dialog "Recovery" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1333188225.0 tortoisehg-6.9/icons/svg/refresh_overlays.svg0000644000000000000000000001444011735553201020337 0ustar00rootroot image/svg+xml Refresh Overlay Icons 2009-05-31 Peer Sommerlund TortoiseHg menu icon for refreshing overlay icons ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/svg/remove.svg0000644000000000000000000001524714023111777016261 0ustar00rootroot image/svg+xml Remove 2008-05-07 Peer Sommerlund Remove icon for TortoiseHg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/svg/repobrowse.svg0000644000000000000000000003024014023111777017141 0ustar00rootroot image/svg+xml Repo Browse 2008-05-05 Peer Sommerlund Icon for TortoiseHg dialog "Datamine" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1433588031.0 tortoisehg-6.9/icons/svg/shelve.svg0000644000000000000000000002505012534550477016254 0ustar00rootroot image/svg+xml Status 2008-04-16 Peer Sommerlund Icon for TortoiseHg dialog "File Status" image/svg+xml ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/svg/sync.svg0000644000000000000000000001207214023111777015731 0ustar00rootroot image/svg+xml Sync 2008-04-09 Peer Sommerlund Sync icon for TortoiseHg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/svg/thg_logo.svg0000644000000000000000000012624014023111777016562 0ustar00rootroot image/svg+xml TortoiseHg 2007-dec-11 Peer Sommerlund Closely resembles TortoiseSVN logo Hg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/icons/thg_logo.ico0000644000000000000000000014336414023111777015744 0ustar00rootroot (~ hN  ^7@@ (BJ00 %<   h( @ ..'5 VLB;T:*a=l9ph]vee4rɼVMsKc#gsQk b%fbe! b3xQw8{xs48s3@jcw333*Qws38tə@۷ss37;|U@۸wwx0>ۻx?Ą Ȉ@Ǐ1?|(  ))" : 4S3DO@VLD^?sn_1ZTTy^ºUp@"zwwzQQIhNuWMwWt̯tx( @         "#$$&-"%#!$"&&-(,(+)%0((')(.+,65!20,6%>3)031 >!:/'>$'=):84%A)A-B;44>3H=2?>4S=1X>.I(8D+=B4LA6L*RB4MA=6H1,H6TC;L3[F3GH6S+ Q/CFDXF?V(+L<1O0PJ<KID8P5VIEMLAbK@[-OMIYNCUNGQQEfPDSOR^6eTFUUJe1GYBVWE d6lUIlWDbVKUWVF_DeYNVYW-cD>d?g[Pb[SmZS]^L^\X_`Nd_Pk_TMfJbaVnaVEl?t<cdQnHjdV+oMfgTweWqeZrd`|<9qRoi[FuBui^{h`xMgihAHvKIxFzlhzncqtYGog~rgorpuvcux]H{tlsovk~yc~voyzg"Vvrz}byrznx{y~f~sd~wVUorm{[ZpwR_^-d6jyuru`bdyfhkmovv1xB}+p=z}}N0|H_ǕEΌš¾ǰ̩ѡiس B@{C FqeJљj %a Y}T,ͺ<3\Π) u@gw\E&_I02̌R+![rLLxV 8,ؙF5vnrȦln :S}2"X'V9 ۦPXZA;46'*h.uyX¶k`AO7;S]ɾh(GʰjeZQ=Hv^Ԯ.—ee`H`rÅވK ʧ}||}l^fШŰcd?M귴*^#狟D?|(     !-))+5*&//&8@&F93::5E(7D.AD5/D<XD70M00P0LM=U6QLA1U<^QDdQF9Z8"[?ZVGbTM`WSgYQU`G]]]/iLfc\pc\FpGgiUxf]tf_liXdh`|hZso\.zOur]/}Prt\"Q|smvy_zxc L|yd{{flb}h.]k?fz~~YZ{y__:n/nōǰ I:-7 1$J+96;8=.0%B "3XN?* (SETUG4&!)C,V'ARWMFKP@L5#OQHD2 xPNG  IHDR>a IDATxw]U?s}=BR(!A@Q!*P|과 *WD " RHInoϹ c}>g9,9PATPATPATPATPATPATPATPATPATPATPATPATPATPATP1捾 ^D8G:hp7p0 x+0x܋~1ۀZQ0U55ܓ0"TՅϾwU,!T}N~.\eYa\uꛚ1~,-;w}lYFzcn Ixy\Dz1'ӟw^eYXř8~Svv`|{#ӏ;_)oE!"bYWDdQ:VYE?]0~4◄A@1'N_DÏFDdUD "="򘈬,keY-"VD "?o"2SD䍾DOQFe?bٗ^Wn}R|ٗVw_ē7y'\&" ?M>A)`cR.;vl8gdtR3}t* >F[|:[DI'u2^|Ig2O1+6+o5y3+63?zIe2fQS `OV?iWJt5R"2X&" ܹs)m&M\) A-[j*'|\.fJ1n7ߐM2_477[Wܪ25vE1؉o`w?.C6f nogߎ 7 D EoYwy,^X)0 ~D#Ikp@Djj88g?_+~Oz{{oQJ1u_kjWܾB6P ٳ3gqlt:JArp^y(Zw*u3.,:?"D"awe]ƢEZkB| : ÐPkty3hJP, ˊJ),5k:_ZnJ)~/cLxx\x;Ε/+q#Fqhwwtv$vA ^8(cJY"r#(N+2bPa  Hu#Xeamc[M2 LLڜ\xхڧͬ[81fkx"J>fxG/R dk9|Ȉw`vY }M?HZD>e۶'??qU_@8KG} ? CM[Mg(H tt*I&!NJ={6+Wn/|sc"r p1yrDwϞ3,<~@<#WJ1l"?2,>D)uϖ>?)Jk',^n)S)~E DJj]:tf|eӯ,mG NPU2{wO|_O"r1|W칁ܷ>nRx\s5_誏Rexm--L9q2dpn!D3l,ռW |믿=Ayx8:88x~~> TjpQHd 6dL:EUUljjʐfO~ʼy~RFDr3N;4|)@/P 1eՇtL7޾ѓ&ijr}}`>g_nf?x1VcLWoHt׿477͹S,Rt"Ţr9:{#m~@ב0JA`j!QJ\ w ;\Au,55PSWL,]v()>!"ˌ1G1ԙMMMz*((|=G(P>o[A*MGuh ?)@3}/7pضKPP,"y}>q͌Da >,(*Sւ%Ga (%EsdL:MUUry<%KOR,;@k"r1yH:m0'$0^E$ 5w?΍,Z\ñs&@0nABUUښjijgHcuMZƘ_pb^CD>͂ .v>N{b:?$4F&̘Q[p?[(az;Svς,JOzG5 "CR+Edw!sNYN!_( E\׋ Xf L!iQe7z+XIGF)YX ;0@$m"LPP[[MSC=C62lhM 8N;UsB`ߺ _՗MGmy~wіk3IoqZvs+cNd,z"6 t 4T:XR.sݟ֚gL' Bv=}}>SdƘEwyGQnB@>_踃xTq:%MayH負%JDAD=q#  #NSO#[]ɏ9DuW}l]D";5bkH|#1Mn HTR8q81;(Pk q}I /~P>NsHPNAqDe Gہٸ~5]{AQbHڂ<vb"9 k#7P( Nz pR,Ws~*D /[&"BW/]T3/}헯 W۶=?̚7+~_ ϥ^bc~@GD(B,,SK,ͼ@D)~u=@aDڄ (,0}Ċd"ʢ==1WWJEg$ ,Q%H &m?yHt"e0ӏ?ΐ!CwA*E"iEU"Q{xtwm6ںڢiγ)WKG m4 t䪔¸>Fۡ]@π$oղ_i/lU|WD&ir1oWiG~_&H ~ǥq] h3,:QStPb *K ||7q!& I >iac}M"ac[ N ?vJvdB$Ȥ `<5[ͻ_TRRU?YI;aps9Yr#sBUGSD\eu Uluh`pR/ƘƘC>Swݨy0Aǣd#PJ.8q>3Uѥ~+J蘊=;r(; rBˮ”\F) 5S JF AInPgMEF%`@R!I%d2lڴ5g&<# C@"~׸1@htY~:8,+Dغ$6cf "<~bϙ=,&C`Yn /`b 1!9wsrR-uՍennl#q'[x7{6\p "p;pp饗R2F~7uedMYѳeuD;p?됭犌9wdԹwJj!Yv=AcDJ ZlX˲0}zhÖkdL;vk) _Ƅ1ߛ4xjYҵiՉ#.m;{>ɪw||INsX?1"2߯1ǴsrIeTɍ Pcdϝ佳|AK( ssrAE#,a;Z,Krd2n"刊<"ꢺ&Vvni=J)mhllRJG(@Edgvl6X°ͳmO`qx_|>OqȬ8L%=9zt0uM֦c-j4Qcxn=---478t3aT N}h4 LL}|ϥe}}9X`: ٵe f8?G1() 2u+ѶZ}w}<#C6M$3gTJ}/0LFOl/"Ee=<1"r6G Ԭ,5nqd:n-ֵt2CMLѱCK)~tM;Xbx\rM&SXJX`}`(\.iqIZSbgL M+(`A:8mۆRG۱lmnMw[7vVH%;~~Xy}'zԝOH%?ny|w,T^5h-ȟ/<Ҷ0=,Qdͭ-{Q(ʕ+Yru.dc6||3w$DT&C2DY6RY_W6q6ɔL(P@c]E eE=]NK)vIƢcqÎjCNR` ʨXcR+&B?,~{Xw:RC'}%_u嚿_E8L֊\;٥jQB5߁cDС65Q][K_W8kyGx衇V02e*:YDJgH-LBS\I/}P9# N v54jmCGQj[  +<צ@V>)7ߵ c40ЈcĔyFf_ӇAn?tb}øw^q;x-1Q}n?7v0 ECyKN&[?򅙪*i\@_g'VG5O1}t&MJ*"J֯T G*E2Sa=76aѤ)Z[[i9F8iki-i2lcA`+B~v{n33 "p/_xͅzzP «^IC9?w.޷clj;m6)f1nd X,o@)mt9'ٳͷe:poeP`)6@X3J)]fy^p> q@!C(sĊTTT%>J$ T% u-EgG'b%'/r߲s'aSBE`tA=-]^1tП]~Y.ѵmkW|fggt^ws۾˲He2;3n2UY#qma $iR \uzrm_$8ؿ1 ЁCD x|05GbH$H%td2$ ߵÙwIeN*I*{k7:9܄c]٪Wv[6˗FE׾x$Ja.5FGDՏHƦCq ꮵ MyR]_Ѹ&, ˶I$3Ux}ʦkIgҼ9ᤥQ )R,x8N1fc~Լ{^;ww~A4Uv&[]GMm-U, &-%q:x\.G>w^uSgΊKP$ dQ8i~ЗG0WP,:#2cH5 0ӽˁeی?iRP(m$RfTUnp9ѣpE0n$ BO?ϮZfhGz@_j ҩb?:+f4QʶTm^@_|_W!ҳ?l;c mtTtgV;"?ر?acƌaԨ74џ6izG`ʜc6guMN=lǡ}8w/me.FbQ Z[[eڜ|#}~v0vq' P6G)v!Bh sͯiH J,@ZDV+Kf}ʸ^Pws.v{4M [8 NӲRq\dTW>+w6жT%뮮 `>d2zB<٣<+T"?uܺڴ|nT:ͼ%KXsHRQ8hٱq#u瑨#A;0@/Fk$\3/D~\L]\ \7ڊ"~s)k -, 7d*EQqHIRHe2HӄAٿkTTSSWБ#0cFԳ'wFuSZ3( #*JI?DPUvaA*%LF]0[n}R5T"e+ұc> ,cO b<\ *>EVoQU]m/Y"#O \0IQ|t ;X(ɠjB1AQ)c9bl ,kpmێx ֈn5|%0ޮ.F,RMH7zZ2 f5RS]ǃ?ڥ~cL.WWΗa < bOE߁q;-7*+D3y2.^L"&xA,;aH& TD&%XpDQ?aaPq43&d%e Jv?UYŽʡt0swSVQWWax Y6|U+KDdE +qQ$ZBӺ9Ǿ9ygC!u#5=4A ﺧݾw3at:{6 (\۶T),QA&+ v*+r)ATʹPJPB,udQcʴ9=U!ƞ ـlf0|6=2m^)"7k/:`c baai ؚ&[}Vf]EԎ6! F1=B6,z~f>f6w7.ԨrVnV̙ joAB1I'zWǙHyAv1J$I2^Ba0T!,dCM! w|b6]|HaOE _)^(KqTx ugmlW04Mf!aXi5|cScMMMk{]|`޳ݛgԩ4!ÇM"MlxpݴOx5R}$j'Ivhd,bQ 3QJRʊADhݽq2b|!t8UH&HV v L$?mX("_4,cqG7MO=G_Z_`wWh<6lذQF~*ҾD2bLUqܷwDBR*aܔ)4f4A&\ץ=۶b>/F4UC4ͳzX$&H bv(k]?Mtb-ͫ+˱#GVţ<௭@p8\0vSSSo__TUUR8a2Ynkx^U RAٶ~}yY7FМeOa&m4AA= 1*( 4E@hTƼ."RDP;^Bo3lf[СNP3 b2CC 93La"=yyb[~c_O>r\n^K!=T 0fHQ^< ѡhA%C)O>5wal2]wuu5hm0BԙepQd=s M6ATʳ,1qӨ*ˏfDhjCkt7WU7m0, u QeH>Vظ"Ӛ'g:N9l,W]z6F&>p8x5KKUBKk 9Գ) S޺kg 1 q3PR-j׮1D>.5 UzFhhtHv (_Jd)Qֆ :4n'Iڏ'&0!U :!Q-+5/9߹{2e15s.S?ol TDAC_ rŧ~ν{gl޼9ZRՐme[  #F JsKشn5xdNxnQE/H1t, eۼR5 0y,D-{Xz1dc_|cފ1+1䏱Ӛ&IW$3dJa%\_l`1b 5tlC;Y[83b'#E г[_j3(vaGǜ'{OzC!њ!xrV [Z>C:lum`ˎ)%W"[]C_oPԣNj 1c %zu J=Px9X::} k~r߿lUHSG͢%g_5lc” iEE(B;2b",>m{T ڵkYK7 \eU˰Agʟqb+ uMG:ѻR4~k?4\Zk˸m(e>֧Dh+='xǍGΖf4_3z|䇯5s~OƱp?GfѩUs6o&`8{2FDEc^xūBw;S2tdZwgo~@~gH<~1f×{zeם$Fy8^Njf/~v"7C~D pe78df?O\w3=\uޱw9#_cw>ؼ/zcVKEmَgnCGbߕ~# |~v_MD-}ˎR \j[TN&x3Ϲ?66lNUHOgWk>6?r6CFOf蘣ؿm-mO[L&PBw /A.3IJEݐdN;45"1cQzKx1YI"j1Ad7cg/ * * * * * * * * * * * * * * *x?^jʃIENDB`(@ +[  v62OG+/lT⷏⻗ٶ qV>z3>0"   Mz F3Oʼn@ǃ+oJPC>տлylsaPr]JmR*!)=vʭMC:v`LjXG1( =) =.oVΒC‚0rg î -(%Ĭ2,&u v9S3gS,{ѻXOG}pcycXM=cnަ[іHņ5w"gU  &!Z.HB v㸐VE3\I7$g8|%jIM?:QHAï`WM&"boע]ΔLƈ:{'k[QT+:0-θ8:OOD!"ǯ`SG A'Aƃ/q h)wh^1*&fZQk`U&+K:^RH{:s*i\NKJX-C" .L8u;H}@=/-йo`RN+Jˊ8y(lbX.8P([.,x**.DD5 6  >jRA}^8|Z0X%R~J u>q<o: k9 v? *(% :G$X/b3G;   |F>8+'# UՔA1s!fYQSQo944/ 440>>5# BA7NM@.+$#@/(V>$`@]:X3 S.D'+$#32)  2c3HM JxkYϓJLj:{+nc[0U,}As<881*HG% % W-#V%Z?jY˒Mlj=|-qrCP [2#0.'{yets`xvcn}}n~~{yz|xx" %rK3 K:l)ThAC*DB8wvbus`}}gv9:.523HDB,*) II;kk]]K"" FE8zED9RF,RF) 0d #M72$2.(lkY}|g}|fp[ZJ{y||rmukfpf`LE@'!   '#!=86YUS`]\KJJUUEl "NC'  ee96-^]MjroruLJH}ysxmfl`ZaUNXKDNB;K>7E81@3,;.'7+%6,';1,PHD643%%% }~! DeC0H0' RذMM>da`|z~|vtmxjbo`WbSKVG>K;3F7/F=7GB=>72C6/A.$VE<.+)++*0//TTD}LJ>7S5O~NTTZZJsJ(=(  Y.&dbPm>>2 HGFlihxtr}vvo}nfwf^q_ViVL^K?[RKUH@R=2[G15.+?>=RQP vua%4#WWbbbb^^XXWW3O35eEOOd:9%GGIddd~wvo}pgyi`saXtaViSHfNBcJ<`MA`I6\?0YC6YLF|vs~|AA4rq]IRG}}vvooeeVVFuFGoGPPNNPP7W7ZHpZ9eO G,,,pg`yxqqj{kcNF@wg^VLDjZQfOCdK>kTHHA:aG8aI=^LBujd̶ά̠ǖĐggXXL~LGxGGyG&@&   t#!Bqg_}wvophWNHxkcdXPcWNkVKiSGoZPGA;gOBgPDfRGo_UHGFkRRCٸӭ–^^QQ&@&  (=\=@a@@b@.F.' ~q sia{uwnglb[aXQMD=wldzmdIC=vd[o[Pf[SD>:r^SlXMnZOr`Vw 998_b_ܽÚ^^OO/J/K~KTTZZXXTTQQ%  LPOOO{qh}zrktjd|mesh`TNIWQLaXQ`WPvg^r`VsaXwg]}uļZYZpp[Ƣ$$+++ص__QQOORR__ggee[[NN-J- ¿xo|uqgavorjogphzjayi`xh_yi`zkbskeeSn ?***̟xxbb\\ZZiijjddWWGvG/b/wne^~x{twpunskqjqjsm|u"!!6byѩww&%" EmE>d>@i@ !5!9www{sm~{~x}w~x|776U 9:9ٹɕ#5$uۮجTTC31(>>>Q)&ڭԩѦDE7֪23(%@񖖗ý+stwx_ҧ~1119:9fqfyӨ`aN›##t@@@qppiҧklVժfF򉋉NO>ԩͣlmVϥ#$$$ ̢ҧ٭VWEp//%"&gRRAllV//&zk?L?  ??@?(0` X o < X-  })U4=%wà{L:* z $xdT@6-_N?;/%' IsM΍2wO|ndҽUMEuet1)!(Thz\# )VT3ҷncWvhi]P37MnmQˎ7ycZ3&F>7sfGC#q:BR<{H9+8, nfC+pyFydXPti93-!KhlԟTƌ=|%i WU:t)GJHbKѼ@93)!9 ,,xQ7xc^;2")H28' NnFn8g%]MDBg5  (#`2}A Z2k\S2,(wkLC:!  /sQCĂ-p\LL~@ KKB  (("A@5+1(9*'X?"dB_9 W0 E' -#/.&%A"x=A e7G=8-eHNȋ9z%j k;Y-v>&&!S#"KJ=zydponigU@=3/+&,)#50)MI>sp]lp~}h*& %w<#fM4-&QGƅ1sI p;J(NMArq^kyv~ursw}zvua &$uL!3%L3frHF*!*!feTwvbo}BC6762NKF861>?3iiPO@++&*)$i<9/L@& U  #?.'HD:{yekrsr^/.+wruke]SN/)& *$"E@>^ZY@?@))#yts`E?% $ @@ vu_iw~}fGGc?7W7+C+-q,()zf~}e66,?>;a^]{yzwp{ldraYgUK[J?TJCP>4RB8L<2U?140-DCC--&GM=O}Naa^^SSFpF# Dff n4Q\hA WVX||||xq}ogvf]p_UiSHdM@^J@[F:VD9W;,D93b`^)))}XVH\[ooppkkccZZ 2  U  vF8/TA7leadccddRzxcco_~~xxqqggYY%<%'>',F,*C*#   Ho>}]0%  *;;;xq|wvpogUMFrbY^QIfOCdK=WJ@^F8_H=h[T0/'//(βˡƓrrYYJ|JI|I0R0"z Bm~x{ztsk\SLuh_aWOlXMkUIXMEdODhRGjWMZYUwiiU޿ЩppMM($@d@EkE7U7"2"*$$$|vwpyoie]VvkclaYcXQcWNYQKn_Uo\Qr_Uwo`aQJJ=)*(VXVљӯmmBkB_<2N1 #T#CRRR{ۻSoRPN?e lýhhglDfs\ɠti;;0?@2^^KY ܯ%%%8+,+u{hѦLM=[[H>>1dePL###aaa{{{䅅~ffe+++NHbdcwymˡlg56+$%hiS  C ׫}xy`,,# opYUUD'(),  ????( @ @ |_l/ L5!yL7P8׷xfUYF4gQ/MeLxgYL)L;i<| Jb[Qtvi|5lVD," j 7}^8ofl\TWMEF":.cǔC~ dT L*6>2Jd3|=~p<3+ I΋%lt;@- &#,G7+cFoF d6 R,5 #'d4V+#@,B;5IO7xM[.="+*%WVHlusb_OMI>PK@ieUnsTRD J&.eYA/H#U Q->?4{zevccQbbT__Oqp_^NeeS,'# .=B6njYsxwaOLHyspd^C:5$"1)&TNK,+,ggTQPC:D+  7@@2 򹳔iMLARPPyrxh`dTJRC;LA9G<5S=010.883m?d>_`JuJ'='Eff t<)t+oNRORzs|mel^VkTHWG>VG>V>0KATB6[H=hgTUUGͨŒ}}]]IxIFtF&>& /}tm|qj`VOuh`cULmZOWIAjUJtl^]VfjgHwHJwJJuJ2O2  r |{~wymfqe_laYrd\ve[vmÿ^]JVVE8WYWZZ^^jjUU###vp~wxqwqWWVѢH_C|zb5H1$qſIHHprpȮut{}cvw_'122{{zmw||cVWE[9gvb,)))z{aƝrs\f&KGG9%% h?! ?|?(  )8>ZVG^QD#8.$:nlb|hZ  T7D.w K.].zO1U<"?f L@&-/}PQLA/iL/nE(liX{{fzxc}h|ydk!U6Jso\ur]fc\bTM5*&F93::5U`G9Z8D"[?"Q/D ne-,~;L%&L4Wzן.3G4KN6'd~`?۟fVJp؉f|N]Cw<?| _Mo:X`20LZ4_vQֶ CK-0e2wdY it巀 +g?VE!fŴ:כX,fl h}=;nUY11߻{ܻ l*l* 7}3fUN5u Ǝ̷,G p@}Ӂǎ<8Ù1c'M۶18{tk֬rIկ_~2< W冼{vYx3iLeеm;\vXKYXGxs OFI}_.>3f̘ .K2sLCP!㢵Fk K06Nַ͖-[b˖{mvBoo6=~7.X,Sl5_HK]C=;w(ꢮq STlYg}XF)E $$~ DJ a1ڀ!XxQkkks= AP*|<"B!Zk˶b$ 4L\.K. ;oѫZ?ђ$cRs8 0eZw䘎iq2Mnʑ&ΘUok.,_7!JЁ+EBTьf{ضM<'Jfښj}ur)ɋ?䐜f9Oye1{~C,ۦKo.\X<7سNgʜ9<zkMMMgu]{xPHXT*Qv\\׍@V* QuG\k3%,l&LɤbT}G1gΡ<_sK_ 8(>q%cthl%?p<\P?o<_Sɽt ;wۚ_x3~$R((8W]{PC6h$:DJeYx}`[Dl6Qu41t*:իz5(2=]3}}+c] 7O_Lc7d](ȎΆ'5~o-+̻UN:|D"  W=:WQ,!g>^z T(IH}h'r@J<<@=l~ɥbqB!R!(+xp;D~C?N8g\p@S J8C):P_^yj9&E,aB WO.c ;{7,Xp#RX,c-L&MmmE ,-b19"+vuw󵫯w]R^q%;6mIJJiF9(J@׋Sv!,#*}9r@KXn l3]z饱 AJJ؞K *5ŲK(%Y `Ym² "E^zE8ma1!n}0 Ս BmC:T[8K0J<~=xsGM} ۧqL9 (a~vvX("}Iy`  m@6ц|O]b؇R~ <1vɸq:J q=RI>%䈞U H+K()U_C}m5E٦qVz-xI$̞w8R tuuHeD 4$6LgYNysqJ%r7_< 0AEo? €@ؼs3C!|G $,KXAH*T gСoW={+?SJ<5V-y5K]Y?vk%J.N١T.ء GDh+,HP[T:hlEmm]vNp(uNgB ZK X:FU6E.SNw=|a/Q[W(B"$2((ٻB0ⱡ bs „Hee;A9Xn;1מr3>az6o>7ccVW))S4s9H)q]rى@*E+4]/R')*KE )n*GщֆPE ;/l! IPK{vzz1>kWd)%"E4QZC!(J!`6 ZF!0{}!w-+ z}SOvʕ5ưNvzMV_ԯ?>p/ÊAX08GɀD"y*X,"O"pD*TںxRlZ$j84J{pL)ҘпKŰb qoo#F P>ͥ/ z*=2OUob֙c8#еH$T~qRDtitcp=F)m"^mQFH$I8~Rtώxկ*0)ش<$?nƶ1k!HIj\憃HŨ!pր,PJc`4{vƲJ`ee˴m62zJayQCؽf[)\7)۷0Kt0sǑRbg2\xeW_ӹd*lx2F(#13D~S/K2!w{s|Fj(Tw[uV&Dz'Oa>c6Tt.e<ЃZ',>EO&Ԇḕ~>; 1_eYXEkUP[n1UX$[2~AsxΝ8{>,<m×R>)ɛ eHi&b߱qcRX=۶#WIdT }. JCʅN*R1<|y-G;."1c na[n i?4-:ZCXn$UÙ|aY| x{:vmLiji7V Z/> w:T&LUFQ.Eӳg'b ˈv^fYc1ijTlmdΎ4mQhBCǰYdveaG \nR%k|ƊC,e &ԆlhMʋ/]x^=ږNg*^ث8xځJb*E S(~n ڡE, 1!Z+B]!as3WjV|6?rG.fQ'>q t <7);y]{]dͮ!5M<_p7g&t ~2=L[MN>BX"E*ĄH8ʦwW?n/>3H]9<r^ 5\X^|/<81ƶOOMtNfzueUT2c:0ưckּRٚng2+߱%iaoG"388mصosNe߮-x83orqfoy.J/o]cNbΑ'rctjx@92!($n_?oՕcm1TO'z10Dzc~L;W3|LX9GXqs'*E-R " {fqhvx9$߼XN\>yr ڟd JD_儁?lqFj3 6FɊȣ/c>Nܶ,`CwG+n,6$ʍZED ;s3:4Zl}Y^|ҹZ€2\Uř9LFYeɤV߼7Tn[UIENDB`././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/0000755000000000000000000000000014742203610013553 5ustar00rootroot././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1737033607.875414 tortoisehg-6.9/locale/ar/0000755000000000000000000000000014742203610014155 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1234145 tortoisehg-6.9/locale/ar/LC_MESSAGES/0000755000000000000000000000000014742203610015742 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033566.0 tortoisehg-6.9/locale/ar/LC_MESSAGES/tortoisehg.mo0000644000000000000000000000411714742203536020500 0ustar00rootroot  ,< Y"c!$ :,E&r   $ > IPT,#"C+ o .%8&Close&License= Working Directory Parent =AboutArchive types:Browse...Destination path:Directory of filesExitHg command:Only files modified/created in this revisionRecurse into subrepositoriesRevision:Tar archive compressed using bzip2Tar archive compressed using gzipTortoiseHg Overlay Icon ServerUncompressed tar archiveUncompressed zip archiveYou can visit our site hereZip archive compressed using deflateversion %swith Mercurial-%s, Python-%s, PyQt-%s, Qt-%sProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2011-10-25 07:12+0000 Last-Translator: Fadi Mansour Language-Team: Arabic MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5; X-Launchpad-Export-Date: 2019-07-17 05:41+0000 X-Generator: Launchpad (build 19009) إ&غلاق&رخصة=أب مجلد العمل=حول البرنامجأنواع الأرشيفات:تصفّح...مسار الهدف:قائمة الملفاتإنهاءأمر hg:فقط الملفات المعدلة/المنشأة في هذه المراجعةالنزول للمجلدات الفرعيةالمراجعة:أرشيف tar مضغوط بـbzip2أرشيف tar مضغوط بـgzipمخدم أيقونات الدلالة لتورتويز إتش جيأرشيف tar غير مضغوطأرشيف zip غير مضفوطيمكنك زيارة موقعنا من هناأرشيف zip مضفوط بـdeflateالنسخة %sباستخدام Mercurial-%s, Python-%s, PyQt-%s, Qt-%s././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1737033607.875414 tortoisehg-6.9/locale/bg/0000755000000000000000000000000014742203610014143 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1234145 tortoisehg-6.9/locale/bg/LC_MESSAGES/0000755000000000000000000000000014742203610015730 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033565.0 tortoisehg-6.9/locale/bg/LC_MESSAGES/tortoisehg.mo0000644000000000000000000000663014742203535020467 0ustar00rootroot&L||}7   $/T Yey (  7,>d;+- FQj y )P.N-^#J   )/ +Y   L   !0 R b . d e d{ . Q ,a 9 ( K =J  &Clone&License&Skip this RevisionA new version of TortoiseHg (%s) is ready for download!AboutAll files (*)Archive - %sChecking for updates...Clone - %sConfirm OverwriteDiscard local changes (revert --all)ExitHg command:Known bad revision:Known good revision:MergeMerge with %sOptionsPlease wait while the file is opened ...RevisionRevision is &BadRevision is &GoodRevision:Start revision:Terminated by userTest this revision and report findings. (good/bad/skip)The directory "%s" is not empty! Do you want to overwrite it?The file "%s" already exists! Do you want to overwrite it?Unable to removeUnable to remove file %s, permission deniedUse proxy serverWorking directory status[Code: %d][command interrupted %s][command terminated by user %s]error while running command version %sProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2016-02-14 04:55+0000 Last-Translator: Georgi Manchev Language-Team: Bulgarian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Launchpad-Export-Date: 2019-07-17 05:41+0000 X-Generator: Launchpad (build 19009) &Клонирай&Лиценз&Пропусни тази ревизияНова TortoiseHg (%s) версия е налична за изтегляне.За програматаВсички файлове (*)Архив - %sПроверка за обновления...Клонирай - %sПотвърди презаписаОтхвърляне на локалните промени (revert --all)ИзходHg команда:Известни лоши ревизии:Известни добри ревизии:ОбединиОбедини с %sОпцийМоля, изчакайте докато файлът се отвори ...РевизияРевизията е &ЛошаРевизията е &ДобраРевизия:Начална ревизия:Прекъснат от потребителяТествай тази ревизия и докладвай. (добра/лоша/пропусни)Директорията "%s" не е празна! Искате ли да я презапишете?Фаилът "%s" вече съществува! Искате ли да го презапишете?Не може да бъде премахнатФаилът %s не може да бъде премахнат, permission deniedИзползвай прокси сървърСтатус на работната директория[Код: %d][прекъсната команда %s][командата е прекратена от потребителя %s]грешка при изпълнение на команда версия %s././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/ca/0000755000000000000000000000000014742203610014136 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1234145 tortoisehg-6.9/locale/ca/LC_MESSAGES/0000755000000000000000000000000014742203610015723 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033566.0 tortoisehg-6.9/locale/ca/LC_MESSAGES/tortoisehg.mo0000644000000000000000000000343514742203536020463 0ustar00rootroot  $6 HUm"! $6[ 1<L ep !&% Lm Archive - %sArchive types:Backed out changeset: Browse...Bzip2 tar archivesCancelConfirm OverwriteDirectory of filesExitFilesGzip tar archivesNo branch changesSave file toSelect Destination FileSelect Destination FolderSelect Source FolderTar archive compressed using bzip2Tar archive compressed using gzipTar archivesTortoiseHg Bug ReportUncompressed tar archiveUncompressed zip archiveZip archive compressed using deflateProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2011-03-07 18:36+0000 Last-Translator: David Planella Language-Team: Catalan MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Launchpad-Export-Date: 2019-07-17 05:41+0000 X-Generator: Launchpad (build 19009) Arxiu - %sTipus d'arxius:Grup de canvis retirat: Explora...Arxius tar bzip2Cancel·larConfirmeu la sobreeescripturaDirectori d'arxiusSortirFitxersArxius tar gzipSense canvis de brancaGuarda arxiu aSeleccioneu fitxer de destinacióSeleccioneu una carpeta de destinacióSeleccioneu una carpeta d'origenArxiu tar comprimit amb bzip2Arxiu tar comprimit amb gzipArxius tarTortoiseHg: Informe d'errorArxiu tar descomprimitArxiu zip descomprimitArxiu zip comprimit amb deflate././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/cs/0000755000000000000000000000000014742203610014160 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1234145 tortoisehg-6.9/locale/cs/LC_MESSAGES/0000755000000000000000000000000014742203610015745 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033565.0 tortoisehg-6.9/locale/cs/LC_MESSAGES/tortoisehg.mo0000644000000000000000000062603014742203535020506 0ustar00rootroot:A/& "1Jaz Ʉ ߄ ;\p)ȅWYC;ņA7`:Ӈ 9Sr   ֈ , 4B#b-@ 2 JXg Ɋ Ԋ $9>Qlu }̋%6FLR bmu  ʌь! 6@QWjn  čӍ܍  #/F Zek ȎЎ  &3 ;FN Tb t'я#3Wq ɐ ڐ",1J^&ӑ C:;~Ӓ-<Uo Γ$ޔ''+7S33(,;#h͖ߖ%(&Nu  ȗ,=A ۘ >"F0i Ùљ !&9 KV)i)=ښB/Rr)ś>).HX8J iw ~0Н (8N i u:;')*Q | !Y*;M\Gp:4(-8D} šס",(!U=w ֢R $A^{& "Ϧ  "6 JT  $ 6BA+34!T9v)ǩ<.+H>tҪ, "7Zi!.ի- 2 =H/ͬ[4Y*.611Q+nXw}",߯ $ COf&۱ "(K&h ʲݲ3 DDN,/߳?Oi޴H_nCζ=1P]  !, ;\k ʸ ظ& ""9\ es'+ ۹$V dz#.1MN ͻ (5H Z!g üѼ 5Lg{"# .$3(8 = G*R }&5̿* -5N#..:!8\+;%g/% "/4:M j xu9 D>K..,& <H]n*)";Q'o  8 JWs'O#Vzp + H R_ q*+ :[${--1..]#u'A&H3o!M2'Fn@1879^q)$ 3=CL\ ak ~ ! /BX^qC/0AJ[v)B-[J 456l(  +8 d%(-2Dw  "(4K;1Xt&KOUXY +#O Wd"M$,5AO:; 5H<~S3b4*)<CS\d!< &   * ESc }Y/  . & &I+uBc5:a@axM} IP`FMFEYL ,AWg x   8K g!s;6)CeW o zY+!Cev Q+2 7E i )=[q  n [%e   "9-(g8#Nr!&19T q'| ?:)C m{GdmJ ).>#Z)~ / #. 6C-_B '$<afz,*40M~[@;X      ):CVk } #3!Dfx-#J(5 ^ v    $   . B [ p   "A d   (N w +        (  , "6GL[/o,,!,N%`=% 3P#pIvkh,f;8<  2C^q    ,*C nx   ,FV e:q  :H*Gs!  *(SYu!&&:9#t*!(."Qc iv   !!) 2 @;N'-Ao  % > T %p     ! !2!L!]!b!k!3q!!!!!!! "" '" 2"<"%L"r" y"2"5""" #'9# a#Zo##F#$$)A$k$$$$$$$$!%$1%V%j%q%!y%%%% %%%&&#&<&#L& p&!&&&&M'T'3t''''' ' ( ((3(N(i(y(((((!("($") G) T)_)p)))) ))v)p******M*#;+_+c+j+ +++!+ +++ ,&7,^,y,,,\- w- ----]-). ;.H.[.y.... .. .."/6/?123[4-5667%'8M94:S;Q=e>>? @ @ @ @ @ @A A A%+AQA jAA AA AAAB)B BBOB aBnBBBBBHB"C:C QC [CBhCCCC CCD#D?DQDdD yDD1DDDE&EEF.FMF"_F#FFF[G[G$SI1xIK$aNN#_O OO&O OOO O P P P-P6P!EP@gPPP P P PP&PQq*Q QQQ QQ Q Q RRR(R8RORy^RR.RS/S!OSwqSST%]U%U5UU1U-V FVgVV V1VVIV &X 4XlBXXXXXY4YCZZ[[Z\]%]S]1^__?`&a,aEa$Uazaaaaaaaa aaaabbbb`b%c,Bc oc'c ccccd0d1Hd!zd dd dd eeeee e#e"ef &f0fHf`fzffff"f!f f f f gg g#g6g)>g6hgg7ggh<h4Shsh'h"$iKGidlBl.;m0jm3m>mn|n2Io;|oo48p@mp(pp$qqcq($rMrkr9Usbss&tfu"Avdwcx1tx.xxxy+z(z}{{U|/s|O|%|!}-;}8i}<}*}4 ~!?~Ba~~~~~F[q!u*!-7J ju  €Ҁ8Teցt w Âς ӂ% 3GR&* ,M a+ Ԅ  )"J#m"&̅,  І",AUgpx92ć )3IXj6ʈ  *4J   !   0*Њ , L3V=ȋ57R.?Pk35΍!"2UZZn+Ɏ,C1@u5*  $"0!S%u- ) '3[ z 2đ3+T:< 'XƓҔujUXr\\|  Нݝ C` y 'UʞH #i'uѠGFB+#<`~'Ѥ#*#Hlťl$Q vOAӦ,MB?#Ч ,L [fu  Ϩ'5<NS\!s ,ҩ1. `*nѪ.H_sͫ߫ !4QY'b!¬'ڬ>AZ"r/11Le Ʈ Ю ۮ  **Bm ۯ  )'Qm ӰYx,ѱر! *(>S!'  4>S;jA7 , Cd#h"˴ ' '( P*[ (ݵ'##Bf öܶ/A \!i-.·.BTfv$Ǹڸ! .L["w&51%$W$|ƺߺ&?\o@Ȼ     *"6 Ydμ  =Mf ʽ ٽ &1+My'"*Alt-Կ+"6N,D)">)a  +2#%"Il, +1 @M\x$ !4!Q%s22e:^C/sI;?(Y   '3 I Ta z &!8?hx!DX jx #/Haj     +7 FQY pz    + 4? \ix   -GNc lz!  ,CZc'} &- H S ^l} #*2]|% !< R_{ 7r)N AX"3*C_{ !&/-,8Z@4/ #9-]*   &0I)b& $9R!mR%1 DNm C(>#Mq+ 6C(W8R*;CY%A(AKj:Ld u.9#7[%t 0<G':,iAKBd<:< Z {#%/,%AR%K _k!*<#K oz  % PTt|&5 %/AU*G&-DMr . Lm".118 j u3 [@45:4B7w:l ]w2+R~: P^-z.-?43t$0'.7V   $5PhMw ::!@\{Aml9s/k( ,Dc r | "% *+B4n.b$Lq%- $aE! 7Us *)= Ta(v--Lz65      . /9 i 1|  5 4 $4 @Y  * . , 9@ :z !     ! : V 0l , 9 - 2 B `     "    u ;b[)U:.EUn81.'Go"+! 4JZ `j  !"4ZW(9    0?O`8q('%)!9K954*'Em(H',AT&S6(H"q<//01\b! "/5GZcs,"E 4d      D #A!#e!!! !! !"" "/1">a"'""h"O# j##u##0#3#=$E$)b$$$$$$$"$% %83%.l%.%1%+%$(&M&R\&5&&&&& '4'$E'j'|'''+'9'(?'(?g((c(+)'=)e)t)J|)N)b*fy***-+2+9+%M+s++M+'+ ,#,G<,,,,,=,. -39-Jm---I.:X..C.-.1%/ W/b/ x//%/$/////I 0V041 S1_111 2 242L2i2"22&2223#3Z733330b5 55555 5"5"66 6*67 /797HB7#7Z7i 8t8z8U8p8G9Y9 ':2:N:j::R:T:UM;W;";^<`}< << < ="=7=K=]= t==== ==7=> ??? ?@P@$i@ @%@@P@?!AaAtAApAB1BIBBB C%CACYCpCLZD2D&DEE7E NEr[EG)GHHH$I=IrI,CJpJ!JJJJJKK3KPK eK|sK K,K#*LNL mL!L LLLLLL LGM6MMM8O#UOyO+O=OOGP%cP&P(P P/PQ&Q:QPOQRQ"QR%R8RNMRZRvRnS wS4S+SSTT75T,mT#T5T T,U /U:U BUOU-mU[UU V V4VKV]V,zV V!V"V8V=0WnW W!W"W8W!-XOXhXVoX?XLYSYbYrYY Y YYYY YYZ *Z5ZMZjZ Z Z ZZZZZ[[5[F[ _[1[ [[[E\,T\$\\Z]l]5]^]5^Q^o^"^(^,^J_P_f_#_$_*_*_ %`F`8`'"a!Jala:>byb>bbbb c"c%c7cQc%c6d+Qd }d ddd>d#d*"e'Me"ue2ee*eVflf%f$f;f! g"/gRgE:hhjj<kOkHk0l @m JmUm$dmmmm2m8m 8n FnPn$nn n nnnn*n/noo7o LoZoxooo"o o$p"+pNp^ppp$pq q qqqrA rEMrJrr rs' s4s Hs,Rss$ss!s%s$ t!0t!RtAttt?t)u+=uiu}u8u$uu uu v v"%vHv+cvv%vvvvv5w7w!=w_w,dw$w&w3w7xAIxxx%xx yyy(y8yKy`y sy y&y2yz"z=z&Rz!yzz#zzzzz8{:{?{ R{s{{{{ {{{!{3|P|d|9t|8||!|'}-G}u}e}}W ~c~)~%~~~"3Vr, (!,Nap"À#$:!_"Kہ'0E!v" ̂ق " #/$Sx)'Ѓ&*D$o  ф" '!Ia2HXPn6  $0"E)h*7և;&J!qr  ؉`߉@ Ta tЊ  $#Cg[h"`˔,,5Ib*כu \}   ȞҞ۞ 2+7F~* ğҟ!6.ew!͠ԠX&n  Gġ ! ; GUm(¢ۢ!B)#lã1Ƥ- ,:gyLoƦ?6%v*+z "(ծ  .> MW r}> - ; E1O&6Pfxֱ2 .Ʋ&&*CnO#*s$Jõ!60g! öDѶL6y$**Oz:ֺnV $c@ɾ'I(,>kpw    a-D?r&>+D]s5$ #/7G ( CMh,w+,BJO`&f% 0'I<q9'3.[y#%(rNdA&)h*B5610`9TA&/$Y)[8\&fJ_T5Q>))_N7Eb}0,5>0t*;4 A=aHZs-w3,B9I/ * )4Me4$.@VmY '+;?N R_v$%k%H$n*$ <J)\#,@%`&2&t!  /P Y"cE> & A"Lo7#+ JX2n<$ & 8Y l(z#P3t 4?@^ :&%"HYx%0H2:J < p; 6PMkA>:L&_&+"P"M'p; $3G0W0Y . ;RF^x PEAD<l!0"R u I[y&ED0+u')tThC t 4v 3 ! + /- ] *| 3 *  $ < \ %{  (& O re g 4@ku`&Bi"   $ 1?&F m+w  ' &5+\039 7+Eqy   .!5W_+h&2>(g"",,>\ w"  2<\*q( " !/"Kn-u*!@^~ [Y,  !"2Rp#/" ?IgAF9 G_~*,+EZ z&*#$!<8^#"'  '3H dn?   " 2 #9 #]   "    ! !"6!Y!q!.!4!$!"+"<")["("C"" #,*#W#)w########$$#$*$A9${$$ $ $$ $ $"$ %%7%T%q%%% %%%%%&&7& L&V&i&~& &&&& &&+'-'H'W'l',u''''!'- ( 8(8B({(4(((>(A-)Jo)2)K)#9*1]*1*0***+*"+4M+'+"++,+,, Please check that the "thg" command is valid. Caught keyboard interrupt, aborting. aliases: %s (default: %s) (copied from %s) (is a symlink) (is unversioned) (renamed from %s) (was added) (was added, now missing) (was deleted) filtered"%s" is not a folder"%s" is not a valid directory"%s" removed from path history"%s" removed from search history### filter text ###### patch name ###### regular expression ###### regular expression search pattern ###### revision set query ###% Match%d files have merge conflicts that must be resolved%d files were modified on both branches and must be resolved%d matches found%d outgoing changesets%d outgoing changesets in current branch (%s) / %d in total%d outgoing changesets to %s%d outgoing changesets up to current revision (#%d) / %d in total%d outgoing changesets up to revision #%d / %d in total%d patches were exported to:

                                                                                                            %s%d pending changelists found%p%%s (hint: %s)%s (pending)%s (submitted)%s - Revision Details (%s)%s - TortoiseHg Workbench%s - TortoiseHg Workbench - %s%s - branch operation%s - commit%s - commit options%s - hg %s%s - purge%s - recover repository%s - status%s - status (selection filtered)%s - sync options%s - verify repository%s : %s%s %s already exists, replace URL?%s and %s have identical contents %s certificate error: no certificate received%s had rejected chunks, edit patched file together with rejects?%s is a dirty subrepo%s is added%s is deleted by non-hg command, but still tracked%s is ignored%s is modified%s is not a valid repository%s is not modified (clean)%s is not tracked (unknown)%s is removed%s patches%s project settings (.hg/projrc)%s repository settings%s will be imported to %s's global settings&Add&Add Repository...&Ancestors and Descendants&Archive&Branch&Browse...&Cancel&Clone&Close&Close Repository&Commit&Commit to Queue...&Commit to current branch&Copy&Copy...&Create&Delete&Delete Unversioned...&Discard&Discard changes&Editor Options&Exit&File&Filter Toolbar&Flat List&Forget&Goto (update workdir)&Goto Revision...&Help&Ignore...&Import&Incoming&License&Local&Mark Excluded Changes&Mark Resolved&Mark Unresolved&Mark as Resolved&Merge&Merge with Local...&Merge...&More Options...&Move&New Repository...&No&No (discard changes)&Open&Open Repository...&Other&Outgoing&Paste&Patch Branch&Push Bookmark&Refresh&Refresh Repository List&Remove&Remove Bookmark&Replace&Repository&Resolve...&Revert to Revision...&Revert with backup&Revert...&Save&Save at Revision...&Scan Repositories at Startup&Search&Search in Current File&Settings&Shelve&Skip this Revision&Sort&Sort by .hgsub&Spaces&Strip&Sync Bookmarks...&Terminal&Unspecified&Update&Update...&Verify&View&View Missing&View at Revision&Web Server&Workbench Toolbars&Yes'Publishing' repository(excluded from the next commit)(is a changed and dirty sub-repository)(is a changed sub-repository)(is a dirty sub-repository)(is a new and dirty sub-repository)(is a new sub-repository)(is a removed sub-repository)(is an unchanged sub-repository)(no help text available)(same as parent)(unsaved)*: not used by TortoiseHg, resolved merge, unresolved merge3-way dir diffLaunch settings tool...%d changeset will be stripped%d changesets will be strippedAnnotate:Candidate MatchesDifferences from Source to DestHost: %sIgnore FilterRepository Details:Revert %d files to their contents at the following revision?Revert %s to its contents at the following revision?Selected Options:Selected Options: %sSubrepository Features:Uncommitted local changes are detectedUnknown revision!Unrevisioned FilesUntracked FilesWeb Server:= Working Directory Parent =A README file is not configured for the current repository.

                                                                                                            To configure a README file for a repository, open the repository settings file, add a 'readme' key to the 'tortoisehg' section, and set it to the filename or URL of your repository's README file.A bookmark named "%s" already existsA comma separated list of target groupsA comma separated list of target peopleA new version of TortoiseHg (%s) is ready for download!A repository cannot be added as a subrepo of itselfA revision identifier, bookmark, tag or branch nameA shelf file of that name already existsA shelf name cannot contain %sA terminal shell cannot be opened for remoteA terminal shell must be configuredA&dd Subrepository...A&uthorAbortAbort the export operation. Aborted p4pendingAboutAbout TortoiseHgAcceptAccept All MatchesAccept Selected MatchesAccept the local file version (yours)Accept the other file version (theirs)Activate BookmarksActivate bookmark?Activate:AddAdd Files...Add Path to ServeAdd a repository to this groupAdd as &LargefilesAdd as &Normal FilesAdd files to version controlAdd ignore filter...Add or remove patches must be merged in the working directoryAdd selected untracked files?Add separatorAdd to listAddedAdded tag %s for changeset %sAfter Pull OperationAge:AliasAll HistoryAll changesets belonging to the branches of changesets in set.All changesets, the same as 0:tip.All conflicting files will be marked unresolved.All conflicts are resolved.All contextsAll files (*)All files in this revisionAll itemsAll revisionsAll unsaved changes will be lost.Allow Git SubreposAllow Hg SubreposAllow PushAllow SVN SubreposAllow push of a new branch (--new-branch)Allow pushing new branches (--new-branch)Always merge (when possible)Always show repo tabs, even for a single repo. Default: FalseAmend current revisionAn alias for "::." (ancestors of the working copy's first parent).An empty set, if any revision in set isn't found; otherwise, all revisions in set.An error occurred while reading the file.An error occurred while updating the repository hgrc file (%s)An error occurred while writing the file.An exception happened while loading the subrepos of:

                                                                                                            "%s"

                                                                                                            An interrupted graft operation has been found. You cannot perform a different graft operation unless you abort the interrupted graft operation first.Annotate Op&tionsAnnotate with revision numbersApp&ly FormatAppendAppend graft info to log messageAppend the changes to the existing patch files. Applied patchesApplied patches or qparentApply all patchesApply changes before exit?Apply one patchApply only this patchApply onto original parentApply patchArchive - %sArchive Content:Archive FormatsArchive types:Are you sure that you want to cancel the commit operation?Are you sure you want to delete these files and/or folders?Are you sure you want to overwrite it ?Are you sure you want to reload this file?Are you sure?Ask UsernameAttempt automatic (trivial) mergeAttempt to push to specified URL or alias after each successful commit. Default: No pushAuthorAuthor ColoringAuto Commit ListAuto Exclude ListAuto Includes:Auto-resolve mergesAutomatically advance to next page when backout and merge are complete.Automatically advance to next page when merge is complete.Automatically resolve merge conflicts where possibleBackBacked out changeset: Backing out a parent revision is a single step operationBacking out and committing...Backing out, then merging...Backout - %sBackout changesetBackout current patch branchBackout requires a parent revisionBackout revisionBackport part of a changeset to a dependencyBackspace or Del to remove row(s)Backup copies of modified files can be found in .hg/Trashcan/Backwards phase change requestedBad filenameBccBefore backout, you must commit, shelve to patch, or discard changes.Before compress, you must commit, shelve to patch, or discard changes.Before graft, you must commit, shelve to patch, or discard changes.Before merging, you must commit, shelve to patch, or discard changes.Before rebase, you must commit, shelve to patch, or discard changes.Bisect - %sBisect - Bad, Good...Bisect - Good, Bad...Bookmark '%s' does not existBookmark '%s' has been addedBookmark '%s' has been movedBookmark '%s' has been removedBookmark '%s' has been renamed to '%s'Bookmark - %sBookmark named "%s" does not existBookmark:BranchBranch ColorsBranch:Branch: Bro&wse at RevisionBrowse Directory...Browse...Bundles store complete changesets in binary form. Upstream users can pull from them. This is the safest way to send changes to recipient Mercurial users.Bypass ListBzip2 tar archivesC&hoose Log Columns...C&onfigure FormatCLI EditorCan't change settings without iniparse package - view is readonly.Can't find revision '%s'CancelCannot add subrepositoryCannot backout change on a different branchCannot export revisionCannot export revision %s into the file named: %s Cannot import selected revisionCannot open Plugin Options dialogCannot open non Mercurial repositories or subrepositoriesCannot open repositoryCannot open the .hgsub file in:

                                                                                                            %sCannot read the .hgsub file.

                                                                                                            Subrepository removal failed.Cannot start a new searchCannot update the .hgsub file in:

                                                                                                            %sCannot update the .hgsub file.

                                                                                                            Subrepository removal failed.CcCc:Certificate Query ErrorChange &Phase toChangeLog FontChanged by &This CommitChanges have been moved, you must now commitChanges take effect on next commitChangeset LinkChangeset is a merge changeset.Changeset is a named branch head.Changeset is closed.Changeset is tagged.Changeset with highest revision number in set.Changeset with lowest revision number in set.Changeset:ChangesetsChangesets affecting files matched by pattern. See help patternsChangesets containing files matched by pattern.Changesets not found in the specified destination repository, or the default push location.Changesets that are ancestors of a changeset in set.Changesets where username contains string.Changesets which add files matched by pattern.Changesets which are descendants of changesets in set.Changesets which modify files matched by pattern.Changesets which remove files matched by pattern.Changesets with no parent changeset in set.Changesets within the interval, see help datesCharacter encoding of files in the repository, used by the web interface and TortoiseHg.CheckCheck Subrepo PhaseCheck all filesCheck for incoming changesCheck for incoming changes from %sCheck for incoming changes from selected URLCheck the phase of the current revision of each subrepository. For settings other than "ignore", the phase of the current revision of each subrepository is checked before committing the parent repository. Default: followChecked count: %dCheckingChecking for updates...Checking working directory status...Checking...Checkmark files to addCheckmark files to forgetCheckmark files to removeCheckmark files to revertChild changesets of changesets in set.Child:Chunks selected: %d / %dCleanClearClear contents of shelf file %s?Clear current query and query textClear the current shelf fileClick OK to continue or Abort to exit.Clon&e Repository...Clon&e...Clone - %sClone RepositoryClone to revision:Clone...CloseClose %s branchClose After CommitClose Branch: Close current branchClose other tabsClose tabClose the commit tool after every successful commit. Default: FalseClose:Co&mpare File RevisionsCollapse the rebased changesets (--collapse)Color changesets by author name. Default: FalseComma separated list of archive formats allowed for downloadingComma separated list of branch names that should be ignored when building a list of branch names for a repository. Default: None (leave blank)Comma separated list of exclusion file patterns. Exclusion patterns are applied after inclusion patterns.Comma separated list of files that are automatically included in every commit. Intended for use only as a repository setting. Default: None (leave blank)Comma separated list of files that are automatically unchecked when the status, and commit dialogs are opened. Default: None (leave blank)Comma separated list of inclusion file patterns. By default, the entire repository is searched.Comma-separated list of blind carbon copy recipient email addressesComma-separated list of carbon copy recipient email addressesComma-separated list of recipient email addressesCommandCommand outputCommand to use for SSH connections.

                                                                                                            Default: "ssh" or "TortoisePlink.exe -ssh -2" (Windows)CommitCommit Dialog ToolbarCommit LaterCommit NowCommit OptionsCommit backout and merge resultsCommit changesCommit changes in repositoryCommit context menuCommit merge resultsCommit messageCommit...Committing...Common setsCompare revisions of the selected fileCompare to &1st ParentCompare to &2nd ParentCompletely remove file from patch?CompressCompress - %sCompress History...Compress changesets up to and includingCompress is complete, old history untouchedConfig File:Config files (*.conf *.config *.ini)Configuration Error: "%(arg0)s",
                                                                                                            Please fix your configConfigure Custom ToolConfigure Explorer extensionConfigure Issue TrackerConfigure guardsConfigure guards for selected patchConfigure repository settingsConfigure the selected COM Bug Tracker plugin.Configure user wide settingsConfigures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking plugin.Confirm AddConfirm Branch ChangeConfirm DeleteConfirm Delete UnversionedConfirm DiscardConfirm Discard ChangesConfirm Discard MessageConfirm ExitConfirm New BranchConfirm OverwriteConfirm PushConfirm Push to remote RepositoryConfirm ReloadConfirm RemoveConfirm RevertConfirm SaveConfirm StripConfirm URL replaceConfirm UndoConfirm UpdateConfirm adding unknown filesConfirm deleting filesConfirm file deletionsConfirm patch queue switchConfirm path deleteConnecting to Review Board...Consider aborting the graft first.Consider aborting the rebase first.ContactContext MenuContinue or abort interrupted graft operation?Controls draft phase behavior when working as a server. When true, pushed changesets are set to public in both client and server and pulled or cloned changesets are set to public in the client. Default: TrueConvert an existing repository into a subrepositoryConverted From:CopyCopy - %sCopy ErrorCopy full path of file(s) to the clipboardCopy messageCopy one of the recent commit messagesCopy source -> destinationCopy the root path of the repository to the clipboardCopy working directory files from skeletonCould not get subrepository listCould not instantiate Issue Tracker plugin COM objectCould not open .hgsub fileCould not open some subrepositoriesCould not open the specified file for reading.Could not open the specified file for writing.Could not translate the file content from native encoding.Could not translate the file content to native encoding.Could not update .hgsub fileCreateCreate &BranchCreate Repository HereCreate a new groupCreate a new patchCreate a new repositoryCreate clone here from sourceCreate diff with all changes on this branchCreate diff with all outgoing changesCreate new named branch "%s" with this commit? Create special files (.hgignore, ...)Culprit found.Current local revisionCustom Toolbar &SettingsCustom ToolsDateDate:De&tect Renames...Deactivate current bookmark?Dead BranchesDefault PushDefault widgetDefines the command to run when an issue number is recognized. You may include groups in issue.regex, and corresponding {n} tokens in issue.link (where n is a non-negative integer). {0} refers to the entire string matched by issue.regex, while {1} refers to the first group and so on. If no {n} tokens are found in issue.link, the entire matched string is appended instead.Defines the regex to match when picking up issue numbers.DeleteDelete %d file in .hg/TrashcanDelete %d files in .hg/TrashcanDelete %d ignored fileDelete %d ignored filesDelete %d unknown fileDelete %d unknown filesDelete %s from your repo configuration file?Delete Group '%s' and all its entries?Delete ToolDelete empty foldersDelete from listDelete patches...Delete reference toDelete selected chunksDelete selected chunks from shelf file %s?Delete selected chunks from working copy?Delete selected patchesDelete selected query from historyDelete shelf file %s?Delete the current shelf fileDelete the following unversioned files?Deleted %d filesDeleted %d files and %d foldersDeleted*Deleting trash folder...Deletion failuresDeny PushDescriptionDestDestination file already exists.Destination path:Destination:Detect Copies/Renames in %sDetect outgoing changesDetect outgoing changes to %sDetect outgoing changes to selected URLDetect renames and copiesDetected merge/diff tools:Detected uncommitted local changes in working tree. Please select to continue: Detected uncommitted local changes.Determines if TortoiseHg should show a confirmation dialog before adding new files in a commit. If True, a confirmation dialog will be shown. If False, selected new files will be included in the commit with no confirmation dialog. Default: TrueDetermines if TortoiseHg should show a confirmation dialog before pushing changesets. If False, push will be performed without any confirmation dialog. Default: TrueDetermines if TortoiseHg should show a confirmation dialog before removing files in a commit. If True, a confirmation dialog will be shown. If False, selected deleted files will be included in the commit with no confirmation dialog. Default: TrueDetermines when the issue tracker state will be updated by TortoiseHg. Valid settings values are:

                                                                                                            • never: Do not update the Issue Tracker state automatically.
                                                                                                            • commit: Update the Issue Tracker state after a successful commit.

                                                                                                            Default: neverDetermining outgoing changesets to email...Diff FontDiff ToolbarDiff and AnnotateDiff contentsDiff not displayed: Diff to parentDir diff to p1Dir diff to p2Directory diffDirectory of filesDiscard - discard local changes, no backupDiscard all changes from the other revisionDiscard current backout message?Discard current commit message?Discard local changes (revert --all)Discard local changes, no backup (-C/--clean)Discard local changes, no backup (-f/--force)Discard outstanding changes to working directory?Discard remote changes, no backup (-C/--clean)Display closed branchesDisplay graph the named branch onlyDisplay only active branchesDisplay the file anywayDisplaying %(count)d of %(total)d itemsDnD SynchronizeDo not include modification dates in diff headers. Default: FalseDo not modify working copy (-k/--keep)Do not modify working copy during strip (-k/--keep)Do not save backup files (*.orig)Do not show menu items on unversioned folders (use shift + click to override)Do not strip paths (-p0), required for SVN patchesDo not update the new working directoryDo not verify host certificateDo you really want to force a backwards phase transition?Do you really want to activate patch queue '%s' ?Do you really want to deactivate the %s bookmark?Do you really want to make this revision secret?Do you really want to remove the repository "%s" from its parent repository "%s"Do you want to exit?Do you want to keep them or discard them?Drag to change orderDuplicate NameE&ncodingE&xitE&xploreE&xplore FolderEditEdit FileEdit Ignore FilterEdit LocalEdit Path to ServeEdit Tool ...Edit current file in working copyEdit fileEdit patch dependency graphEdit patched file and rejects?Edit repository ignore filterEdit resolved fileEditor launch failureEmailEmail DAG Range...Email Selected...Email address to use in the "From" header and for the SMTP envelopeEmail outgoing changesets for remote repositoryEmit debugging output (--debug)Enabled Overlay HandlersEnabled overlaysEncodingEnglish MessagesEnter line number (1 - %d)Enter revision identifierErrorError encountered.Error executing "commit finished" triggerError getting commit message information from Issue Tracker pluginError loading subreposError previewing subrepo: %sError string "%(arg0)s" at %(arg1)s
                                                                                                            Please edit your configError writing fileExcludes:Execute custom tool '%s'ExitExit without finishing resolve?Exiting with an unfinished graft is not recommended.Exiting with an unfinished rebase is not recommended.Explorer Extension SettingsExplorer Extension Settings - TortoiseHgExport DAG Range...Export Diff...Export Selected...Export patchExtExtensionsFailed to add repositoryFailed to add subrepositoryFailed to execute custom TortoiseHg commandFailed to execute custom commandFailed to load issue tracker '%s': %sFailed to load issue tracker: '%s': %s. Failed to open path in terminalFailed to open repositoryFailed!Fetch - use fetch (auto merge pulled changes)Fetch - use fetch extension (fetch is not active!)Fields to match:FileFile &History / AnnotateFile Differences Log ColumnsFile HistoryFile History Log ColumnsFile List ToolbarFile StatusFile Status:File already existsFile conflicts need to be resolvedFile context menu (on manifest and revision details)File is binaryFile is larger than the specified max size. maxdiff = %s KBFile may be binary (maximum line length exceeded)File or diffs not displayed: File or diffs not displayed: File is larger than the specified max size. maxdiff = %s KBFile pattern setsFile was not within current repositoryFilenameFilesFiles of at least the specified size (in megabytes) will be added as bfilesFiles of at least the specified size (in megabytes) will be added as largefilesFiles with names meeting the specified patterns will be automatically added as bfilesFiles with names meeting the specified patterns will be automatically added as largefilesFilter Histor&yFilter b&yFilter graph with revision sets or branchesFilter:Find RenamesFind copy and/or rename sourcesFind matches - %sFind revisions matching fields of:Find revisions that "match" one or more fields of the given set of revisions.Finding outgoing changesets to %s...FinishedFirst n members of a set.First parent for all changesets in set, or the working directory.Fixed revisionsFlag:Fold patches...Follow copies and renamesFont used to display changelog data. Default: monospace 10Font used to display commit messages. Default: monospace 10Font used to display output messages. Default: sans 8Font used to display text differences. Default: monospace 10FontsFor which kinds of revisions the tool will be enabled It is only taken into account when the tool is shown on the selected revision context menu.Force Repo TabForce a merge with outstanding changes (-f/--force)Force push or pop (--force)Force push or pull (override safety checks, --force)Force push to remote location (-f/--force)Force removal of modified files (--force)ForgetForget Files...Fork GUIForwardFound %d incoming changesetsFound incoming changesets from %sFromFrom:Full AuthornameFull Path TitleGPG key ID associated with user. Default: None (leave blank)Generate English commit messages even if LANGUAGE or LANG environment variables are set to a non-English language. This setting is used by the Merge, Tag and Backout dialogs. Default: FalseGetting incoming changesets from %s...Git FormatGit patches can describe binary files, copies, and permission changes, but recipients may not be able to use them if they are not using git or Mercurial.GlobGlobal SettingsGo toGo to LineGo to a specific revisionGo to current revisionGoto ancestor of %s and %sGoto common ancestorGoto revisionGraft Selected to local...Graft abortedGraft changesetGraft changeset #%d of %dGraft failedGraft generated merge conflicts that must be resolvedGraft is completeGraphGraphical merge program for resolving merge conflicts. If left unspecified, Mercurial will use the first applicable tool it finds on your system or use its internal merge tool that leaves conflict markers in place. Choose internal:merge to force conflict markers, internal:prompt to always select local or other, or internal:dump to leave files in the working directory for manual mergingGreatest common ancestor of the two changesets.Guards: %d/%dGuess RenamesGzip tar archivesHTTP Error: %d (%s)Head is closed!Hg command:Hg file log viewer [%s] - %sHg patches (as generated by export command) are compatible with most patch programs. They include a header which contains the most important changeset metadata.Hide DetailHide TagsHide context menu outside repositoriesHighlight IconHook typeHostHost name and (optional) port of proxy server, for example "myproxy:8000"Host name of mail serverHostname the sender can use to identify itself to the mail server.How many lines a "zebra stripe" should span in multiline output. Default is 1; set to 0 to disable.IconIconsIf no username has been specified, the user will be prompted to enter a username. Default: FalseIf specified, files in the directory, e.g. .hgignore, are copied to the newly-created repository.If true, concatenate multiple lines of changeset summary and truncate them at 80 characters as necessary. Default: FalseIf you still have trouble, please file a bug report.Ignore Ignore Blank LinesIgnore WS AmountIgnore White SpaceIgnore caseIgnore changes in the amount of white space in diff views. Default: FalseIgnore changes in the amount of white space in the annotate view. Default: FalseIgnore changes whose lines are all blank in diff views. Default: FalseIgnore changes whose lines are all blank in the annotate view. Default: FalseIgnore filter - %sIgnore white space when comparing lines in diff views. Default: FalseIgnore white space when comparing lines in the annotate view. Default: FalseIgnored*Immediate OperationsImport - %sImport from ClipboardIn &Current RevisionIn &Original RevisionIn All &HistoryIn Current &FileIn-Reply-To:IncludeInclude all ancestorsInclude patch queueIncludes:Incoming BookmarksIncoming from %s aborted, ret %dIndicates whether TortoiseHg should attempt to automatically resolve changes from both sides to the same file, and only report merge conflicts when this is not possible. When False, all files with changes on both sides of the merge will report as conflicting, even if the edits are to different parts of the file. In either case, when conflicts occur, the user will be invited to review and resolve changes manually. Default: True.Iniparse must be installed.Iniparse package not foundInitial revisionInline TagsInput new guards for %s:Insufficient access rights, reverting to read-only mode.Insufficient access rights.InterruptedInterrupted graft operation foundInvalid PatternsInvalid Settings - Please provide your ReviewBoard usernameInvalid Settings - The ReviewBoard server is not setupInvalid commandInvalid configuration: %sInvalid date formatInvalid default push revision: %s. Please check your Mercurial configuration (tortoisehg.defaultpush)Invalid glob expressionInvalid regexp expressionInvalid reviewboard plugin. Please download the Mercurial reviewboard plugin version 3.5 or higher from the website below. %sIssue LinkIssue RegexIssue Tracker PluginIssue Tracker Plugin ErrorIssue Tracker TriggerIssue TrackingIt was not possible to fully load the subrepository list for the repository in:

                                                                                                            %s

                                                                                                            The following subrepositories may be missing, broken or on an inconsistent state and cannot be accessed:

                                                                                                            %sIt was not possible to get the subrepository list for the repository in:

                                                                                                            %sKeep original branch names (--keepbranches)Keep original changesets (--keep)Keep patch filesKnown bad revision:Known good revision:Left ToolbarLet the user update the projrc on incoming:

                                                                                                            • never: [default] Show whether the remote projrc file has changed, but do not update (nor ask to update) the local projrc file.
                                                                                                            • prompt: Look for changes to the projrc file. If there are changes _always_ show a confirmation prompt, asking the user if it wants to update its local projrc file.
                                                                                                            • auto: Look for changes to the projrc file. Use the value of the "projrc.confirm" configuration key to determine whether to show a confirmation dialog or not before updating the local projrc file.

                                                                                                            Default: neverLicenseLike "keyword(string)" but accepts a regex.LineList Optio&nsList of Servers from which "projrc" configuration files must be pulled. Set it to "*" to pull from all servers. Set it to "default" to pull from the default sync path. Default is pull from NO servers.List of all toolsList of settings that will NOT be pulled from the project configuration file. Default is exclude none of the included settings.List of settings that will be pulled from the project configuration file. Default is include NO settings.List updated files (--verbose)Load &All RevisionsLoad all revisions into graphLoading repository %sLocal HostnameLocal PathLocal Path:Local Repository %sLocal disks onlyLocal revision informationLocal signLocal tagLocation of local clone of organizational lock repository.

                                                                                                            This repository must contain a "locked" text fileLocation:Lock a file not described in .hglocksLock of %s failed, retryLock of %s successfulLock or unlock filesLocked And Lockable Files:Locked*LogLog Batch SizeLong SummaryMMQ Git FormatMQ optionsMake MQ patches secret (instead of draft). Default: FalseMake repo compatible with Mercurial <1.7Making a "draft" revision "secret" is generally a safe operation. However, there are a few caveats: - "secret" revisions are not pushed. This can cause you trouble if you refer to a secret subrepo revision. - If you pulled this revision from a non publishing server it may be moved back to "draft" if you pull again from that particular server. Please be careful!Manage HTTPS connection security and user authenticationManage pending perforce changelistsMandatory Issue ReferenceManually resolve rejected chunks?Manually resolve rejected patch chunksMark as &UnresolvedMark this chunk as resolved, goto next unresolvedMark this chunk as unresolvedMark this file as resolvedMark this file as unresolvedMatch TextMatch any of %d revisionsMax ChangesMax Diff SizeMax FilesMaximum number of changes to list on the changelog. Default: 10Maximum number of files to list per changeset. Default: 10Members of a set with no children in set.Menu BehaviorMercurial Re&solveMercurial UserMercurial command is still running. Are you sure you want to terminate?Mercurial keyring extension is enabled. Passwords will be stored in a platform-native secure method.Mercurial was unable to find an editor. Please configure Mercurial to use an editor installed on your system.MergeMerge - %sMerge - allow to merge with local changesMerge all pending dependenciesMerge caused file conflictsMerge changesetMerge from (other revision)Merge rejected patch chunks into %sMerge revision not specified or not foundMerge to (working directory)Merge using selected merge toolMerge with %sMerge with the other head of the current branchMerging...MessageMessage FontMessage Translation FailureMessage identifier to reply to, for threadingMethod to enable TLS when connecting to mail server. Default: noneMin Similarity: %d%%Minimum ProtocolMinimum SizeMissing informationModi&fy HistoryMonitor Repo ChangesMonitor working
                                                                                                            directory changesMoveMove all files leftMove all files rightMove applied patches into repository historyMove changes between working dir and patchMove selected chunks leftMove selected chunks rightMove selected file leftMove selected file rightMoved tag %s to changeset %s (from changeset %s)Multiple selection context menuMultiple sources chosenNameName associated with commits. The common format is:
                                                                                                            Full Name <email@example.com>Name or email address of the person in charge of the repository.Named branch "%s" already exists, last used in revision %d New &GroupNew &WorkbenchNew Branch: New Commit PhaseNew GroupNew Name:New Patch BranchNew Repo SkeletonNew RepositoryNew ShelfNew Tool ...New file createdNew hookNew patch message:New patch queue nameNew shelf createdNext DiffNext diffNo DatesNo appropriate filesNo backup (-n/--nobackup)No branch changesNo chunks remainNo deletable chunksNo diff tool foundNo editor foundNo file changesNo files checkedNo files found for this operationNo files selectedNo files to findNo host specifiedNo host validation, but still encrypted (bad)No ignored files foundNo incoming changesets from %sNo issue link was found in the commit message. The commit message should contain an issue link. Configure this in the 'Issue Tracking' section of the settings.No items to displayNo matches foundNo merge conflicts, ready to commitNo merge conflicts, ready to commit or reviewNo modified files checkmarked for commitNo operation to performNo outgoing changesetsNo outgoing changesets to %sNo patch branch selectedNo pending Perforce changelistsNo remote repository URL or path setNo repository foundNo revision foundNo shell configuredNo transaction availableNo trash files foundNo unknown files foundNo username configuredNo valid default remote repository URL or path has been configured for this repository.

                                                                                                            Please type and save a remote repository path on the Sync widget.No visual diff tools were detectedNo visual editor configuredNone - simply pull changesetsNormalize file line endings during and after patch to lf or crlf. Strict does no normalization. Auto does per-file detection, and is the recommended setting. Default: strictNot a Mercurial subrepo, not previewableNot a head revision!Not a head, backout will create a new head!Nothing CommittedNothing changed.Nothing to importNothing to pushOKObsolete state:On repowidget, show forOne or more of the changesets that you are attempting to push involve the creation of a new branch. Do you want to create a new branch in the remote repository?Only consider deleted filesOnly files modified/created in this revisionOnly files modified/created since:Onto destinationOpenOpen &TerminalOpen S&ubrepositoryOpen a (nonmergable) file you wish to be lockedOpen a new named branchOpen a shell terminal in the repository rootOpen a shell terminal in the selected folderOpen advanced query editorOpen all repositories in new tabsOpen hgweb configOpen new tabs next to the current tabOpen parent folder of current file in the system file managerOpen shelve toolOpen the repository in a file browserOpen the repository in a new tabOpen the selected folder in the system file managerOpen the selected subrepositoryOperation aborted:

                                                                                                            %(arg0)s.Operation which is performed directly after a successful pull. update equates to pull --update, fetch equates to the fetch extension, rebase equates to pull --rebase, updateorrebase equates to pull -u --rebase. Default: noneOptional. Comma-separated list of host names that should bypass the proxyOptional. Method to use to send email messages. If value is "smtp" (default), use SMTP (configured below). Otherwise, use as name of program to run that acts like sendmail (takes "-f" option for sender, list of recipients on command line, message on stdin). Normally, setting this to "sendmail" or "/usr/sbin/sendmail" is enough to use sendmail to send messages.Optional. PEM encoded client certificate chain file. Environment variables are expanded in the filename.Optional. PEM encoded client certificate key file. Environment variables are expanded in the filename.Optional. Password to authenticate with at the proxy serverOptional. Password to authenticate with. If not given, and the remote site requires basic or digest authentication, the user will be prompted for it.Optional. User name to authenticate with at the proxy serverOptional. Username to authenticate with. If not given, and the remote site requires basic or digest authentication, the user will be prompted for it. Environment variables are expanded in the username letting you do foo.username = $USER.OptionsOptions:Or use:Order the subrepos as in .hgsubOriginal Parent:Other revision informationOutgoing BookmarksOutgoing aborted, ret %dOutgoing to %s aborted, ret %dOutput FontOverlaysP&ull BookmarkPair selection context menuParent 1:Parent 2:Parent:ParentsPasswordPassword to authenticate to mail server withPassword to authenticate with review boardPassword:Paste &FilenamesPatch Branch ToolbarPatch EOLPatch Files (*.patch)Patch Name RequiredPatch QueuePatch date:Patch exportedPatch failed to applyPatch files (*.diff *.patch)Patch files already existPatch fold - %sPatch message:Patch name:Patch series description is sent in initial summary email with [PATCH 0 of N] subject. It should describe the effects of the entire patch series. When emailing a bundle, these fields make up the message subject and body. Flags is a comma separated list of tags which are inserted into the message subject prefix.Patch user:Patch:Patch: %sPatches exportedPatches to foldPathPath to review board example "http://demo.reviewboard.org"Path to the directory where a system-wide cache of bfiles will be storedPath to the directory where a user's cache of largefiles will be storedPath:Paths in Repository Settings:PatternsPending Perforce Changelists - %sPerforce pending...Perforce:Perform a push before updating (-p/--push)PhasePlace Console in Doc&k AreaPlain, do not prepend Hg headerPlease configure a visual editor.Please enable and configure simplelockPlease enable the Gpg extension first.Please enter a usernamePlease enter commit messagePlease report this bug to our bug trackerPlease set a valid URL to continue.Please wait while committing merged files.Please wait while making backout.Please wait while the file is opened ...Please wait...PortPort to connect to on mail server. Default: 25Port to listen onPort:Post &ReviewPost Pull BehaviorPost Pull: Post ReviewPost Selected to Review Board...Post to Re&view Board...Prepare to backoutPrepare to mergePreserve files beginning with .hgPreviewPreview:Previous DiffPrevious diffPreviously the subrepository was at the following revision:ProxyPublish request immediatelyPullPull from %s aborted, ret %dPull from %s completedPull incoming changesPull incoming changes from %sPull incoming changes from selected URLPull incoming changesets into your repositoryPull subrepos from:Pull to here...Pulled remote bookmark: %sPulling from %s...PurgePurposePush After CommitPush After Commit:Push Requires SSLPush Selected &BranchPush allPush current branch (%s)Push outgoing changesPush outgoing changes to %sPush outgoing changes to selected URLPush to %s abortedPush to %s aborted, ret %dPush to %s completedPush to remote repository %s ?Push up to current revision (#%d)Push up to revision #%dPushed local bookmark: %sPushing to %s...QNewQRefreshQueryQuery about changesets affecting the selected filesQuitR&emove BookmarkR&epository Registry OptionsREADME not configuredRe&coverRe&move VersionedRe&move from RegistryRe&nameRe&name...Readonly*Ready to purge.Ready, double click to lock or unlockRebaseRebase - %sRebase - rebase local commits above pulled changesRebase - use rebase extension (rebase is not active!)Rebase abortedRebase already in progressRebase changeset and descendantsRebase entire source branch (-b/--base)Rebase failedRebase generated merge conflicts that must be resolvedRebase is completeRebase unpublished onto Subversion head (override source, destination)Recurse into subrepositoriesRecurse into subrepositories (--subrepos)Redundant authentication infoRefreshRefresh &Task TabRefresh ToolbarRefresh current patchRefresh current repositoryRefresh file listRefresh lock informationRefresh only the current task tabRefresh the Repository Registry listRefreshing locks...RegexpRegexp:Regular expression search patternReject incoming changesetsRelated Paths:ReloadReload FileRemo&ve Subrepository...Remote command:RemoveRemove &All Selected FilesRemove &Unmodified FilesRemove Files...Remove authentication data from URLRemove current working revision?Remove files from version controlRemove filter, show rootRemove patches from queue?Remove selected deleted files?Remove the node and all its subnodes. Repositories are not deleted from disk.Remove the selected repository?Remove this subrepository from the current revisionRemoved local bookmark: %sRemoved remote bookmark: %sRemoved tag %sRenameRename - %sRename ErrorRename FileRename file or directoryRename patch %s to:Rename patch queue '%s' toRename patch...Rename the entryReopen last closed tabReopen last closed tab groupReplaceReplace existing hook?Replace existing tag (-f/--force)Replace the existing patch files. Report only the first match per fileRepositoriesRepositoryRepository ErrorRepository ID:Repository RegistryRepository Registry updatedRepository SettingsRepository command still runningRepository is lockedRepository name to use in the web interface, and by TortoiseHg as a shorthand name. Default is the working directory.Repository not localRepository status & changesRequire confirmationResolved conflictsRestart &BranchRestart Merge &withRestart all TortoiseHg applications for the following changes to take effect:Resuming rebase already in progressRevRevertRevert &All Files...Revert - %sRevert Files...Revert all file changes?Revert all files to this revisionRevert all working copy changes?Revert file changesRevert file(s) to contents at this revisionRevert files to local or other parent?Revert local file changes?Revert the following files?Revert to RevisionReverting all files will discard changes and leave affected files in a modified state.

                                                                                                            Are you sure you want to use revert?

                                                                                                            (use update to checkout another revision)Reverting p4 changelist...Review BoardReview ID:Review draft posted to %s Review published to %s RevisionRevision #%d (%s) was exported to:

                                                                                                            %s%s%sRevision &DetailsRevision SetRevision Set QueryRevision details context menuRevision has changed to:Revision is &BadRevision is &GoodRevision to Match:Revision:Revisions to Match:Right ToolbarRollback commit to revision %dRollback to revision %d (undo %s)?Run after a changegroup has been added via push, pull or unbundle, but before the transaction has been committed. Changegroup is visible to hook program. This lets you validate incoming changes before accepting them. Passed the ID of the first new changeset in $HG_NODE and last in $HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-zero status will cause the transaction to be rolled back and the push, pull or unbundle will fail. URL that was source of changes is in $HG_URL.Run after a changegroup has been added via push, pull or unbundle. ID of the first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL.Run after a changeset has been created but the transaction not yet committed. Changeset is visible to hook program. This lets you validate commit message and changes. Exit status 0 allows the commit to proceed. Non-zero status will cause the transaction to be rolled back. ID of changeset is in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and $HG_PARENT2.Run after a changeset has been created in the local repository. ID of the newly created changeset is in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and $HG_PARENT2.Run after a changeset has been pulled, pushed, or unbundled into the local repository. The ID of the newly arrived changeset is in $HG_NODE. URL that was source of changes came is in $HG_URL.Run after a pushkey (like a bookmark) is added to the repository. The key namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) is in $HG_OLD, and the new value is in $HG_NEW.Run after a tag is created. ID of tagged changeset is in $HG_NODE. Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in repository if $HG_LOCAL=0.Run after listing pushkeys (like bookmarks) in the repository. The key namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary containing the keys and values.Run after sending changes from local repository to another. ID of first changeset sent is in $HG_NODE. Source of operation is in $HG_SOURCE.Run after updating the working directory. Changeset ID of first new parent is in $HG_PARENT1. If merge, ID of second new parent is in $HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the update failed (e.g. because conflicts not resolved), $HG_ERROR=1.Run before a changegroup is added via push, pull or unbundle. Exit status 0 allows the changegroup to proceed. Non-zero status will cause the push, pull or unbundle to fail. URL from which changes will come is in $HG_URL.Run before a pushkey (like a bookmark) is added to the repository. Non-zero status will cause the key to be rejected. The key namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) is in $HG_OLD, and the new value is in $HG_NEW.Run before collecting changes to send from the local repository to another. Non-zero status will cause failure. This lets you prevent pull over HTTP or SSH. Also prevents against local pull, push (outbound) or bundle commands, but not effective, since you can just copy files instead then. Source of operation is in $HG_SOURCE. If "serve", operation is happening on behalf of remote SSH or HTTP repository. If "push", "pull" or "bundle", operation is happening on behalf of repository on same system.Run before creating a tag. Exit status 0 allows the tag to be created. Non-zero status will cause the tag to fail. ID of changeset to tag is in $HG_NODE. Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in repository if $HG_LOCAL=0.Run before listing pushkeys (like bookmarks) in the repository. Non-zero status will cause failure. The key namespace is in $HG_NAMESPACE.Run before starting a local commit. Exit status 0 allows the commit to proceed. Non-zero status will cause the commit to fail. Parent changeset IDs are in $HG_PARENT1 and $HG_PARENT2.Run before updating the working directory. Exit status 0 allows the update to proceed. Non-zero status will prevent the update. Changeset ID of first new parent is in $HG_PARENT1. If merge, ID of second new parent is in $HG_PARENT2.Running at %sRunning...S&ynchronizeSMTP HostSMTP PasswordSMTP PortSMTP TLSSMTP UsernameSSL error: %sSSL: Server certificate verify failedSSL: unknown error %s:%sSa&ve Current Sync Paths on ExitSaveSave GlobalSave Open Repositories on E&xitSave PathSave changes before editing?Save current URL under an aliasSave error report toSave file as it appeared at this revisionSave file toSave hgweb configSave in RepoScan &Remote RepositoriesSearchSearch HistorySearch Selected TextSearch already in progressSearch commit message, user name, and names of changed files for string.Search file revisions for patternsSearch in All &HistorySearchingSearching...Second parent for all changesets in set, or the working directory.Secret MQ PatchesSecure HTTPS ConnectionSecuritySecurity: Select Destination FileSelect Destination FolderSelect Directory containing patchesSelect RepositorySelect Source FileSelect Source FolderSelect Tool:Select a GUI location to edit:Select an existing repository to add as a subrepoSelect branch of merge commitSelect bundle fileSelect destination repositorySelect if TortoiseHg will show a target combo in the sync toolbar.

                                                                                                            • auto: The default. Show the combo if more than one target configured.
                                                                                                            • always: Always show the combo.

                                                                                                            Default: autoSelect patch folderSelect patchesSelect post-pull operation for this repositorySelect repositorySelect repository directory to addSelect repository directory to openSelect source repositorySelect the initial revision that will be selected when opening a repository. You can select the "current" (i.e. the working directory parent), the current "tip" or the working directory ("workingdir"). Default: currentSelect the initial widget that will be shown when opening a repository. Default: revdetailsSelect the revisions that will be pushed by default, whenever you click the Push button.

                                                                                                            • all: The default. Push all changes in all branches.
                                                                                                            • branch: Push all changes in the current branch.
                                                                                                            • revision: Push the changes in the current branch up to the current revision.

                                                                                                            Default: allSelect the toolbar or menu to changeSelect when TortoiseHg will show a prompt to activate a bookmark when updating to a revision that has one or more bookmarks.

                                                                                                            • auto: Try to automatically activate bookmarks. When updating to a revision that has a single bookmark it will be activated automatically. Show a prompt if there is more than one bookmark on the revision that is being updated to.
                                                                                                            • prompt: The default. Show a prompt when updating to a revision that has one or more bookmarks.
                                                                                                            • never: Never show any prompt to activate any bookmarks.

                                                                                                            Default: promptSelect when the working directory status list will be refreshed:
                                                                                                            - auto: [default] let TortoiseHg decide when to refresh the working directory status list.
                                                                                                            TortoiseHg will refresh the status list whenever it performs an action that may potentially modify the working directory. This may miss any changes that happen outside of TortoiseHg's control;
                                                                                                            - always: in addition to the automatic updates above, also refresh the status list whenever the user clicks on the "working dir revision" or on the "Commit icon" on the workbench task bar;
                                                                                                            - alwayslocal: same as "always" but restricts forced refreshes to local repos.
                                                                                                            Default: autoSelect when your command will be runSelect whether you want to have a single workbench window. If you disable this setting you will get a new workbench window everytime that you use the "Hg Workbench" command on the explorer context menu. Default: TrueSelected changeset pair not relatedSend &EmailSend changesets as Hg patchesSend single binary bundle, not patchesSending EmailServerServer Repository IDSet AncestrySet Date:Set LogicSet username:SettingsSettings File:Several characters would be lost.Several icons are courtesy of the TortoiseSVN and Tango projectsSh&ow Repository RegistryShelfShelf clearedShelf deletedShelf: %sShellShelve - move local changes to a patchShelve ChangesShould new tabs be open next to the current tab? If False new tabs will be open after the last tab. Default: TrueShow &AuthorShow &Patch QueueShow About DialogShow Conso&leShow Family LineShow FunctionShow IconShow IssuesShow Issues...Show LogShow Output LogShow Revision &DetailsShow Tas&k TabShow a full directory path of the repository in the dialog title instead of just the root directory name. Default: FalseShow allShow all version-controlled files in tree viewShow changes from first parentShow changes from second parentShow files changed by this commitShow full authorname in Logview. If not enabled, only a short part, usually name without email is shown. Default: FalseShow indirect revision dependency on the revision graph when filtered by revset. Default: True

                                                                                                            Note: Calculating family line may be slow in some cases. This option is expected to be removed if the performance issue is solved.Show tabs along the side of the bottom half of each repo widget allowing one to switch task tabs without using the toolbar. Default: offShow tags at start of commit message.Show the history of the selected fileShow which function each change is in. Default: FalseShow/Hide hidden changesetsSign even if the sigfile is modified (-f/--force)Signature has been addedSimplelock extension not enabledSingle Workbench WindowSizeSize (KB)Skip final confirmation page, close after commit.Skipping %s, unable to readSome of the files that you have selected are of a size over 10 MB. You may make more efficient use of disk space by adding these files as largefiles, which will store only the most recent revision of each file in your local repository, with older revisions available on the server. Do you wish to add these files as largefiles?Sort by &NameSort by &PathSort set by keys. The default sort order is ascending, specify a key as "-key" to sort in descending order.Sort the group by full pathSort the group by short nameSourceSource does not exist.Source:Space separated list of branch names and colors of the form branch:#XXXXXX. Spaces and colons in the branch name must be escaped using a backslash (\). Likewise some other characters can be escaped in this way, e.g. \u0040 will be decoded to the @ character, and \n to a linefeed. Default: None (leave blank)Space separated list of shell operations you would like to be performed immediately, without user interaction. Commands are "add remove revert forget". Default: None (leave blank)Space separated list of tags that will not be shown. Useful example: Specify "qbase qparent qtip" to hide the standard tags inserted by the Mercurial Queues Extension. Default: None (leave blank)Specify name of new shelfSpecify the command to launch your preferred terminal shell application. If the value includes the string %(reponame)s, the name of the repository will be substituted in place of %(reponame)s. Similarly, %(root)s will be the full path to the repository. (restart needed)
                                                                                                            Default, Windows: cmd.exe /K title %(reponame)s
                                                                                                            Default, OS X: not set
                                                                                                            Default, other: xterm -T "%(reponame)s"Specify the number of spaces that tabs expand to in various TortoiseHg windows. Default: 8Specify the path to GPG. Default: gpgSpecify the target filesystem where TortoiseHg monitors changes. Default: localonlySpecify visual diff tool, as described in the [merge-tools] section of your Mercurial configuration files. If left unspecified, TortoiseHg will use the selected merge tool. Failing that it uses the first applicable tool it finds.Specify visual editor, as described in the [editor-tools] section of your Mercurial configuration files. If left unspecified, TortoiseHg will use the first applicable tool it finds.Specify which task buttons you want to show on the task toolbar and in which order.
                                                                                                            Type a list of the task button names. Add separators by putting "|" between task button names.
                                                                                                            Valid names are: log commit sync grep and pbranch.
                                                                                                            Default: log commit grep pbranch | syncSpecify your preferred user interface language (restart needed)StartStart a new patch branchStart revision:Start web server for this repositoryStatStatusStatus File List ToolbarStatus:StopStop current operationStoppedStrikeStrip - %sStrip:StripesStripping Mercurial header removes username and parent information. Only useful if recipient is not using Mercurial (and does not like to see the headers).StyleSub menu items:Subject:Submitting p4 changelist...Subrepo '%s' has a non trivial default sync URL:

                                                                                                            %s

                                                                                                            Replace it with the following URL?:

                                                                                                            %sSubrepo added to .hgsub fileSubrepo created and set to initial revision.Subrepo initialized to revision:Subrepo may be damaged or inaccessible.Subrepo removed from repository.Subrepo state is:Subrepo statesSubrepo was not changed.Subrepository already existsSubrepository not foundSubrepository not found in the working directory.Subrepository removed from .hgsubSubversion:SuccessSuccessors:Suggested length of commit message lines. A red vertical line will mark this length. CTRL-E will reflow the current paragraph to the specified line length. Default: 80Summary (first description line)Summary Line LengthSummary:Swap source and destinationSynchronizeSynchronize with dragged repositorySynchronize with remote repositorySyntax HighlightingTab WidthTag '%s' has been addedTag '%s' has been movedTag '%s' has been removedTag - %sTag:Tagged:Tags:Tar archive compressed using bzip2Tar archive compressed using gzipTar archivesTarget ComboTarget GroupsTarget PeopleTarget:Task TabsTask Toolbar OrderTaskbarTemporarily disable configured HTTP proxyTemporary files are removed when this dialog is closedTerminated by userTest this revision and report findings. (good/bad/skip)Text Translation FailureText files (*.txt)Textual description of the repository's purpose or contents.The .hgsub file already contains the line:

                                                                                                            %sThe changes from revision %s and all unmerged parents will be discarded. Are you sure this is what you want to do?The command "%s" could not be executed.The command "%s" failed (code %d).The command that will be executed. To execute a Mercurial command use "hg" (rather than "hg.exe") as the executable command. You can use several {VARIABLES} to compose your command. Common variables: - {ROOT}: The path to the current repository root. - {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id hashes respectively formatted as a revset expression. - {SELECTEDFILES}: The list of files selected by the user on the revision details file list. - {FILES}: The list of files touched by the selected revisions. - {ALLFILES}: All the files tracked by Mercurial on the selected revisions. Pair selection variables: - {REV_A} / {REVID_A}: the first selected revision number / hexadecimal revision id hash respectively. - {REV_B} / {REVID_B}: the second selected revision number / hexadecimal revision id hash respectively. The command that will be executed. To execute a python function prepend the command with "python:". The default repository id for this repo on the review board serverThe destination "%s" already exists as a file!The destination "%s" already exists as a folder!The destination must be within the repository tree.The directory "%s" is not empty! Do you want to overwrite it?The directory where the command will be executed. If this is not set, the root of the current repository will be used instead. You can use the same {VARIABLES} as on the "Command" setting. The editor used by Mercurial command line commands to collect multiline input from the user. Most notably, commit messages.The exception error message was:

                                                                                                            %s

                                                                                                            The file "%s" already exists! Do you want to overwrite it?The following error message was returned: "%s" Please check that the command path is valid and that it is a valid applicationThe following error message was returned: %sThe hook name cannot contain any spaces, tabs or '=' characters.The hook name. It cannot contain spaces.The maximum size file (in KB) that TortoiseHg will show changes for in the changelog, status, and commit windows. A value of zero implies no limit. Default: 1024 (1MB)The named bookmark or all bookmarks.The named tag or all tags.The number of revisions to read and display in the changelog viewer in a single batch. Default: 500The phase of new commits. Default: draftThe selected command is emptyThe selected folder:

                                                                                                            %s

                                                                                                            is not inside the target repository.

                                                                                                            This may be allowed but is greatly discouraged.
                                                                                                            If you want to add a non trivial subrepository mapping you must manually edit the .hgsub fileThe selected repository:

                                                                                                            %s

                                                                                                            cannot be open!The selected repository:

                                                                                                            %s

                                                                                                            is already a subrepository of:

                                                                                                            %s

                                                                                                            as: "%s"The selected revision (%s) has a bookmark on it called "%s".

                                                                                                            Do you want to activate it?
                                                                                                            You can disable this prompt by configuring Settings/Workbench/Activate BookmarksThe selected revision (%s) has %d bookmarks on it.

                                                                                                            Select the bookmark that you want to activate and click OK.

                                                                                                            Click Cancel if you don't want to activate any of them.

                                                                                                            You can disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                                                                            The selected revision (rev #%d) cannot be imported because it is not a descendant of qparent (rev #%d)The selected subrepo:

                                                                                                            %s

                                                                                                            has been added to the .hgsub file of the repository:

                                                                                                            %s

                                                                                                            Remember that in order to finish adding the subrepo you must still commit the changes to the .hgsub file in order to confirm the addition of the subrepo.The selected subrepository has been removed from the .hgsub file.

                                                                                                            Remember that you must commit this .hgsub change in order to complete the removal of the subrepository!The selected subrepository was not found on the .hgsub file.

                                                                                                            Perhaps it has already been removed?The set of all parents for all changesets in set.The source must be within the repository tree.The subrepository is dirty.The tool icon. You can use any built-in TortoiseHg icon by setting this value to a valid TortoiseHg icon name (e.g. clone, add, remove, sync, thg-logo, hg-update, etc). You can also set this value to the absolute path to any icon on your file system.The tool label, which is what will be shown on the repowidget context menu. If no label is set, the tool name will be used as the tool label. If no tooltip is set, the label will be used as the tooltip as well.The tool name cannot have any spaces in it.The tool name. It cannot contain spaces.The tooltip that will be shown on the tool button. This is only shown when the tool button is shown on the workbench toolbar.The working directory is already merged. Continue or discard existing merge.There are existing patch files for %d revisions (%s) in the selected location (%s). There are merge conflicts to be resolvedThere are no configured sync paths. Open the Synchronize tab to configure them.There are no conflicting file merges.There are no file changes to viewThere are no files that may have been renamedThere is already an existing folder with that same name.There is an existing %s.%s hook. Do you want to replace it?There is no rollback transaction availableThg - TortoiseHg's GUI tools for Mercurial SCM (Hg) This appears to be a binary file.This error will not be shown again until you restart the workbenchThree-way Merge ToolTitleToTo finish merging, you must commit the working directory. To cancel the merge you can update to one of the merge parent revisions.To graft destinationTo rebase destinationTo:Toggle display of text search barToggle filtering of non-matched changesetsToggle graft relations visibilityToggle parent to be used as the base revisionTolerate non-conflicting local changes (--keep-changes)Too many rows selected for menuTool labelTool launch failureTool nameToolsTools shown on selected locationTooltipTop menu items:TortoiseHg Bookmark SyncTortoiseHg Bug ReportTortoiseHg Command DialogTortoiseHg Dialogs (version %s), Mercurial (version %s) TortoiseHg ErrorTortoiseHg New Shelf NameTortoiseHg Overlay Icon ServerTortoiseHg PromptTortoiseHg SearchTortoiseHg SettingsTortoiseHg Shelve - %sTortoiseHg WorkbenchTortoiseHg has created a new .hgignore file. Would you like to add this file to the source code control repository?Transplant:Trigger revision set queryTry refreshing your repository.TypeUI LanguageURLURLError: %sUnable to backoutUnable to compress historyUnable to create a Mercurial.ini fileUnable to create a config fileUnable to delete %d file or folderUnable to delete %d files or foldersUnable to determine pending changesetsUnable to determine working copy revision Unable to find changesetUnable to mergeUnable to merge chunksUnable to parse p4pending outputUnable to read fileUnable to read repository statusUnable to removeUnable to remove URLUnable to remove file %s, permission deniedUnable to save after commit pushUnable to save an URLUnable to save authenticationUnable to save auto include listUnable to save post pull operationUnable to save recurse in subrepos.Unable to save usernameUnable to show subrepository filesUnable to start the following command:Unable to translate input to local encoding.Unable to translate message to local encoding. Consider setting HGENCODING environment variable. Replace untranslatable characters with "?"? Unable to update repository nameUnable to write .hgignore fileUnable to write configuration fileUnable to write diff fileUnable to write fileUnapply all patchesUnapply one patchUnbundleUncheckUncheck all filesUncheck to consider all revisioned files for copy sourcesUncommited merge - please select a parent revisionUncompressed tar archiveUncompressed zip archiveUnderlineUndo close other tabsUndo close tabUndo last commit?Undo last transaction?Undo most recent commit (%d), preserving file changes?Unknown revision!Unlock of %s failed, retryUnlock of %s successfulUnlocking %sUnresolved conflictsUnresolved conflicts remain. Are you sure?Unsaved changes will be lost. Do you want to reload?Unsupported repository type (%s)UnversionedUpdateUpdate - %sUpdate - pull, then try to updateUpdate IconsUpdate ReviewUpdate icons for this repositoryUpdate on incomingUpdate or create a path alias called '%s' on all subrepos, using this URL as the base URL, appending the local relative subrepo path to itUpdate subrepo pathsUpdate the fields of this existing requestUpdate to:Update working directoryUpdate working directory or switch revisionsUpdate...UpdateOrRebase - pull, then try to update or rebaseUpdateOrRebase - use rebase extension (rebase is not active!)Updating repository registryUpgrading to a more recent TortoiseHg is recommended.Use English backout messageUse English commit messageUse alternative graph layouter for large repositories. Default: False

                                                                                                            Note: This layouter colors edges using branch information and does not display graft edges, regardless of whether they are requested or not.Use compact viewUse current dateUse custom commit message:Use extended (git) patch formatUse git extended diff header format. Default: FalseUse largefilesUse my user name instead of graft committer user nameUse optimized graph layouterUse proxy serverUse pull protocol to copy metadataUserUser AuthenticationUser authentication data should be associated with the hostname using the security dialog.User name to authenticate with review boardUser:UsernameUsername to authenticate to mail server withVerify backout revision and ensure your working directory is clean.Verify merge targets and ensure your working directory is clean.Verify with Certificate Authority certificates (best)Verify with stored host fingerprint (good)View File atView O&therView change as unified diff outputView change history in repositoryView change history of selected filesView change in context of fileView changes to current in external diff toolView changes using GUI diff toolView file as it appeared at this revisionView file changes in external diff toolView the repository's settingsVisual DiffVisual Diff ToolVisual Diff...Visual Diffs - Visual EditorVisual diff between resolved file and first parentVisual diff between resolved file and second parentVisual diff...Visual diffs are not supported for files in subrepositories. They will not be shown.Visual three-way diffWarningWarning: affects all Tortoises, logoff required after changeWas renamed fromWeb ServerWebconfWhat do you want to do? When committing, require that a reference to an issue be specified. If enabled, the regex configured in 'Issue Regex' must find a match in the commit message.When enabled, automatically show the Output Log when the command is run. Default: False.When running from the command line, fork a background process to run graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X application bundle. Default: TrueWhen set to 'auto', mq will automatically use git patches when required to avoid losing changes to file modes, copy records or binary files. If set to 'keep', mq will obey the [diff] section configuration while preserving existing git patches upon qrefresh. If set to 'yes' or 'no', mq will override the [diff] section and always generate git or regular patches, possibly losing data in the second case. Default: autoWhen to ask the user to confirm the update of the local "projrc" configuration file when the remote projrc file changes. Possible values are:

                                                                                                            • always: [default] Always show a confirmation prompt before updating the local .hg/projrc file.
                                                                                                            • first: Show a confirmation dialog when the repository is cloned or when a remote projrc file is found for the first time.
                                                                                                            • never: Update the local .hg/projrc file automatically, without requiring any user confirmation.
                                                                                                            Whether Git subrepositories are allowed in the working directory. Default: False

                                                                                                            See the security note before enabling Git subrepos.Whether Mercurial subrepositories are allowed in the working directory. Default: TrueWhether Subversion subrepositories are allowed in the working directory. Default: False

                                                                                                            See the security note before enabling Subversion subrepos.Whether to allow pushing to the repository. If empty or not set, push is not allowed. If the special value "*", any remote user can push, including unauthenticated users. Otherwise, the remote user must have been authenticated, and the authenticated user name must be present in this list (separated by whitespace or ","). The contents of the allow_push list are examined after the deny_push list.Whether to deny pushing to the repository. If empty or not set, push is not denied. If the special value "*", all remote users are denied push. Otherwise, unauthenticated users are all denied, and any authenticated user name present in this list (separated by whitespace or ",") is also denied. The contents of the deny_push list are examined before the allow_push list.Whether to require that inbound pushes be transported over SSL to prevent password sniffing.Which template map style to useWork on patch queue (--mq)WorkbenchWorkbench Log ColumnsWorkbench custom toolbarWorking CopyWorking DirectoryWorking Directory (merged)Working directoryWorking directory is not clean! View changes...Working directory statusWrap searchWrite bundleWrite diff fileWrite patch series (bundle) descriptionYou are trying to move the phase of revision %d backwards, from "%s" to "%s". However, "%s" is a lower phase level than "%s". Moving the phase backwards is not recommended. For example, it may result in having multiple heads if you modify a revision that you have already pushed to a server. Please be careful!You can change the icon set from TortoiseSVN's SettingsYou can only release your own locksYou can visit our site hereYou cannot merge a revision with itselfYou have authentication info configured for this host and inside this URL. Remove authentication info from this URL?You have marked all rejected patch chunks as resolved yet you have not modified the file on the edit panel. This probably means that no code from any of the rejected patch chunks made it into the file. Are you sure that you want to leave the file as is and consider all the rejected patch chunks as resolved? Doing so may delete them from a shelve, for example, which would mean that you would lose them forever! Click Yes to accept the file as is or No to continue resolving the rejected patch chunks.You have multiple renames selected for destination file: %s. Aborting!You have selected one or more files that have been modified. By default, these files will not be removed. What would you like to do?You likely need to refresh this applicationYou may continue or start the graftYou may continue the compressYou may continue the graftYou may continue the rebaseYou must enter a patch nameYou must identify yourself to MercurialYou must provide revisions to graftYou must provide source and dest argumentsYou must provide the path to a fileYou must set a command to run.You must set a tool name.You must set a valid hook type.Your TortoiseHg is up to date.Your current working revision (%d) will be removed by this rollback, leaving uncommitted changes. Continue?Zip archive compressed using deflateZip archives[WARNING] Incomplete changed subrepository. Update to this revision to pull it.[WARNING] Incomplete subrepo. Update to this revision to pull it.[WARNING] Invalid subrepo revision ID: %s [WARNING] Missing changed subrepository. Update to this revision to clone it.[WARNING] Missing subrepo. Update to this revision to clone it.[command completed successfully %s][command interrupted %s][command returned code %d %%s][command terminated by user %s][non-existant][original][working copy]a revision to posta revision to sendabort: abort: %s abort: %s! action buttonCommitadd diffstat output to messagesaddedall revisions converted from subversionalways fork GUI processattachbasic commands: bodybranch: bundle file to previewcan not read file "%s". Ignored. cannot move applied patchescannot move into applied patchescannot specify both -k/--query and filenameschangeset %d:%schangeset to view in diff toolchangeset which represents converted svn revisionchangeset: %schangeset: %s (not found on subrepository)cleanclone only the specified branchcolumn headerAgecolumn headerAuthorcolumn headerBranchcolumn headerChangescolumn headerConverted Fromcolumn headerDescriptioncolumn headerFilenamecolumn headerGraphcolumn headerLatest tagscolumn headerLocal Timecolumn headerNodecolumn headerPhasecolumn headerRevcolumn headerTagscolumn headerUTC Timecommand parse error: %sconfig itemCommitcorrupted command result: %rdefaultdiffstatdiscard uncommitted changes (no backup)display help and exitdo not back up stripped revisionsdo not fork GUI processdo not modify working copy during stripdo not verify server certificate (ignoring web.cacerts config)enable additional outputenable debugging outputeol is incompatible with win32texterror while running command exec mode has been setexec mode has been unsetfailed to encode command: %sfailed to encode input: %sfailed to start command field to give initial focusfile has been deleted, refreshfile has been modified, refreshfilesfilesAllfilesNonefilling (%d)filterglobal options:grep: %s grep: invalid match pattern: %s hggit packaged with thghgsubversion is incompatible with perfarcehgsubversion packaged with thghint:historyignore case during searchignoredimport to the patch queue (MQ)in the futureinclude the specified changesetinitial search patterninlineinotify is not supported on this platforminvalid "hello" message: %rinvalid argumentsinvalid line number: %sinvalid patch position specifiedkeep original branch nameskeep original changesetslaunch visual diff toollist of commands: locallsprof not available - install from http://codespeak.net/svn/user/arigo/hack/misc/lsprof/make the signature localmake the tag localmerge with old dirstate parent after backoutmethodmissingmodifiedmust be specified 'type' in stylemust be specified repositoryname of the hgweb config file (DEPRECATED)name of the hgweb config file (serve more than one repository)needs merge of %i heads needs merge with %s needs merge with %s (through %s) needs update of diff base to tip of %s no command specifiedno commands defined no guardsno matches found: %sno outgoing changesetsno outgoing changesets in current branch (%s) / %d in totalno outgoing changesets up to current revision (#%d) / %d in totalno outgoing changesets up to revision #%d / %d in totalno repo at no revisions specifiednotify the shell for paths givennownull revision (i.e. remove file(s))only one new bookmark name allowedopen a new workbench windowopen the bookmark sync windowopen to lineoption --config may not be abbreviated!options: parent to choose when backing out mergepassword: perfarce is incompatible with hgsubversionprint command execution profileprint licenseprocess exited unexpectedly with code %dread file list from fileread file list from file encoding utf-8rebase from the specified changesetrebase onto the specified changesetrecord datecode as commit daterecord user as committerremove a tagremove the status cacheremove working directoryremovedreplace existing tagrepository %s not foundrepository root directory or symbolic path namerequires a single filenamerev: %d (%s)reviewboard extension not enabledrevisionrevision %d's first parent (i.e. revision %d)revision %d's second parent (i.e. revision %d)revision to annotaterevision to archiverevision to backoutrevision to displayrevision to mergerevision to striprevision to tagrevision to updaterevision, tag or branch to check outrevisions %d:%s to %d:%srevisions to graftrevisions to prunerevisions to view in diff toolsearch for a given text or revsetselect the specified revisionselected filessend patches as attachmentssend patches as inline attachmentssend patches as part of the email bodyset/override config option (use 'section.name=value')show files without changesshow ignored filesshow the contents of the status cache (no update)side-by-side comparison of revisionssign even if the sigfile is modifiedstart debuggerstart progressCommitstart progressMQ Actionstatussuppress outputsync command already runningtab tooltipCommittab tooltipPatch Branchtab tooltipRevision detailstab tooltipSearchtab tooltipSynchronizethe clone will include an empty working copy (only a repository)the key id to sign withthe revision to showthg %s: %s thg aboutthg add [FILE]...thg annotatethg archivethg backout [OPTION]... [[-r] REV]thg bisectthg commit [OPTIONS] [FILE]...thg drag_copy SOURCE... DESTthg drag_move SOURCE... DESTthg email [REVS]thg forget [FILE]...thg grepthg guessthg help [COMMAND]thg hgignore [FILE]thg import [OPTION] [SOURCE]...thg init [DEST]thg log [OPTIONS] [FILE]thg manifest [-r REV] [FILE]thg merge [[-r] REV]thg purgethg rejects [FILE]thg remove [FILE]...thg repoconfigthg resolvethg revert [FILE]...thg serve [--web-conf FILE]thg shellconfigthg shelvethg status [OPTIONS] [FILE]thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]thg update [-C] [[-r] REV]thg userconfigthg version [OPTION]thg: %s thg: command '%s' is ambiguous: %s thg: unknown command '%s' timed out waiting for messagetimed out while reading: %r...unexpected response on required channel %runknownunknown patch to move specifiedunknown revision!unrecognized profiling format '%s' - Ignored unrecognized response: %sunsupported URL: %supdate all repos in current diruse "thg -v help %s" to show global optionsuse "thg -v help%s" to show aliases and global optionsuse "thg help" for the full list of commandsuse "thg help" for the full list of commands or "thg -v" for detailsuse as commit messageuse only one form to specify the revisionuse pull protocol to copy metadatause uncompressed transfer (fast over LAN)version %swait until the second ticks overwill be closedwin32ill: cannot create window for messageswin32ill: interrupted while stopping message loop win32ill: unsupported platform: %s win32text is incompatible with eolwindow titleCommitwith Mercurial-%s, Python-%s, PyQt-%s, Qt-%sworking changesworking dir stateCleanProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2018-12-18 18:40+0000 Last-Translator: Tovim Language-Team: Czech MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2; X-Launchpad-Export-Date: 2019-07-17 05:41+0000 X-Generator: Launchpad (build 19009) Language: cs X-Poedit-SourceCharset: UTF-8 Ověřte, zda je přjíkaz "thg" platný. Zachyceno přerušení klávesnicí, ruší se. aliasy: %s (default: %s) (kopírováno z %s) (je symlink) (je neverzovaný) (přejmenováno z %s) (přidáno) (byl přidán, nyní chybí) (byl smazán) filtrováno"%s" není složka"%s" není platný adresář"%s" odstraněno z historie cesty"%s" odstraněno z historie hledání### text filtru ###### název oprávky ###### regulární výraz ###### vzor vyhledávacího regulárního výrazu ######zkoumání sady revizí ###% Shoda%d souborů má slučovací problémy, které musí být řešeny%d souborů bylo změněno v obou větvích a musí být řešenynalezeno %d shod%d odchozí(ch) changesety(ů)%d odchozí(ch) changesety(ů) v aktuální větvi (%s) / %d celkem%d odchozích changesetů do %s%d odchozí(ch) changesety(ů) až po aktuální revizi (#%d) / %d celkem%d odchozí(ch) changesety(ů) až k revizi #%d / %d celkem%d oprávky byly exportovány do:

                                                                                                            %snalezeno %d nevyřízených changelistů%p%%s (hint: %s)%s čeká na vyřízení%s předáno%s - Podrobnosti revize (%s)%s - TortoiseHg Workbench%s - TortoiseHg Workbench - %s%s - operace s větví%s - commit%s - možnosti komitu%s - hg %s%s - čistit%s - obnovit repozitář%s - status%s - status (výběr filtrován)%s - synchronizační možnosti%s - ověřit repozitář%s : %s%s %s již existuje, nahradit URL jiným?%s a %s mají stejný obsah %s chyba certifikace: žádný certifikát nebyl přijat%s měl odmítnuté porce (chunks), editovat oprávkované (patched) soubory společně s odmíntutými?%s je nečistým subrepozitářem%s je přidaný%s je smazán nemercuriálovým příkazem, přesto stále sledován%s je ignorovaný%s je upraven%s není platný repozitář%s není upravovaný (čistý)%s není sledovaný (neznámý)%s je odebraný%s oprávkyNastavení projektu %s (.hg/projrc)Nastavení repozitáře %s%s bude importováno do Globální nastavení %s&Přidat&Přidat repozitář...&Předci a potomci&Archivovat&Větev&Procházet...&Zrušit&Klonovat&Zavřít&Zavřít repozitář&Commit&Komitovat do fronty...&Komitovat do aktuální větve&Kopírovat&Kopírovat...&Vytvořit&DeleteSmazat neverzované...&Vyřadit&Vyřadit změny&Možnosti editoru&Exit&SouborLišta filtru&Prostý seznam&Zapomenout&Goto (update workdir)Přejít k revizi...&Help&Ignorovat...&Import&Příchozí&Licence&Lokální&Označit vyloučené změny&Vyřešené&Nevyřešené&Označit jako vyřešené&Sloučit&Sloučit s lokálním...Sloučit...&Další možnosti...&Přemístit&Nový repozitář...&Ne&Ne (zavrhnout změny)Aktivovat repozitář&Otevřít repozitář...&Jiný&Odchozí (outgoing)&Vložit&Patch BranchPostrčit (push) záložku&Refresh (reaktivovat)&Reaktivovat seznam repozitářů&Odebrat&Odebrat záložku&Nahradit&RepozitářŘešit konflikt...&Navrátit k revizi...&Navrátit se zálohou&Navrátit (revert)...&Uložit&Uložit verzi souboru...&Skenovat repozitáře při spuštění&Hledat&Hledat v aktuálním souboru&Settings&Shelve&Přeskočit tuto revizi&Sort (třídit)&Třídit podle .hgsub&Mezery&StripSynchronizace záložek...&Terminál&Neurčeno&Aktualizovat&Aktualizovat...Ověřit repozitář&Zobrazit&Zobrazit chybějící&Otevřít verzi souboruWebový serverNástrojové lišty&AnoPublikující repozitář(vyloučené z následného komitu)(je změněný a nečistý subrepozitář)(je změněný subrepozitář)(je nečistý subrepozitář)(je nový a nečistý subrepozitář)(je nový subrepozitář)(je odstraněný subrepozitář)(je nezměněný sub-repozitář)(nápověda není k disposici)(totéž jako rodič)(neuloženo)*: v TortoiseHg nepoužito, řešené sloučení, neřešené sloučeníTrojný diffSpustit nástroj pro nastavení...%d changeset bude odtržen%d poslední changesety budou odtrženy%d posledních changesetů bude odtrženoAnotace:Kandidáti shodRozdíly mezi zdrojem a destinacíHostitel: %sIgnore FilterDetaily repozitáře:Vrátit (revert) %d souborů k jejich obsahům v následující revizi?Vrátit (revert) %s k jeho obsahu v následující revizi?Vybrané možnosti:Vybrané možnosti: %sVlastnosti subrepozitáře:Byly nalezeny nekomitované lokální změnyNeznámá revize!Neverzované souboryNesledované souboryWebový server:<= Rodič pracovního adresáře =Soubor README není pro aktuální repozitář nakonfigurovaný.

                                                                                                            Pro konfiguraci souboru README v repozitáři otevřte konfigurační soubor a přidejte klíč 'readme' v sekci 'tortoisehg' a jako hodnotu uveďte název nebo URL souboru README repozitáře.Záložka s jménem "%s" již existujeSeznam čárkami oddělených cílových skupinSeznam čárkami oddělených cílových osobNová verze TortoiseHg (%s) je připravena ke stažení!Repozitář nemůže být přidán jako subrepozitář sama sebeOznačení revize, záložka, tag nebo název větveŠelfový soubor s tímto názvem již existujeJméno šelfu nemůže obsahovat %sTerminál nelze otevřít pro vzdálené repoMusí být nastaveno zobrazení termináluPřidat subrepozitář...A&utorZrušitZrušit exportní operaci. Zrušeno p4pendingO programuO TortoiseHgPřijmoutPřijmout všechny shodyPřijmout vybrané shodyPřijmout (vaši) lokální verzi souboruPřijmout jinou (jejich) verzi souboruAktivovat záložkyAktivovat záložku?Aktivovat:PřidatPřidat soubory...Add Path to ServePřidat repozitář do této skupinyPřidat jako &LargefilesPřidat jako &Normal FilesPřidat soubory do správy verzíAdd ignore filter...Přidané nebo odstraněné oprávky musí být sloučené v pracovním adresářiPřidat vybrané nesledovné soubory?Přidat oddělovačPřidat do seznamuPřidánoPřipojený tag %s k revizi %sOperace po akci pullStáří:AliasCelá historieVšechny changesety, které patří do větví changesetů v sadě.Všechny changesety, totéž jako 0:tip.Všechny konfliktní soubory budou označeny jako neřešené.Všechny konflikty jsou vyřešeny.Všechny kontextyVšechny soubory (*)Všechny soubory v této reviziVšechny položkyVšechny revizeVšechny neuložené změny budou ztraceny.Povolit subrepa GituPovolit subrepa MercurialuPovolit pushPovolit subrepa SVNPovolit push nové větve (--new-branch)Povolit předání (push) nových větví (--new-branch)Vždy sloučit (je-li možno)Vždy zobrazit repozitář v kartě, i pro jediný repozitář. Implicitně: FalseUpravit aktální reviziAlias pro "::." (předci prvního rodiče pracovní kopie).Prázdná sada, není-li v sadě nalezena žádná revize; jinak všechny revize v sadě.Při čtení souboru došlo k chybě.Vyskytla se chyba při aktualizaci souboru hgrc (%s) repozitářePři zápisu do souboru došlo k chybě.Vyskytla se výjimka při načítání subrepozitáře:

                                                                                                            "%s"

                                                                                                            Byla nalezena přerušená operace gráftu. Nemůžete provést další gráft bez předchozího zrušení přerušeného gráftu.Možnosti anotaceDoplnit čísla revizíPoužít formátPřipojitPřipojit info o gráftu ke zprávě protokoluPřipojte změny k existujícím oprávkovým souborům. Použité oprávkyPoužité oprávky nebo qparentAplikovat všechny oprávkyPřed ukončením aplikovat změny?Aplikovat jednu oprávkuAplikovat pouze tuto oprávku (patch)Aplikovat k původnímu rodičiAplikovat oprávku (patch)Archiv - %sObsah archivu:Formáty pro archivaciTypy archivů:Jste si jist, že chcete zrušit operaci komitu?Jste si jist, že chcete smazat tyto soubory a/nebo složky?Jste si jist, že jej chcete přepsat ?Jste si jist, že tento soubor chcete opětovně načíst?Jste si jistý?Požadovat jméno uživateleZkusit automatické (triviální) sloučeníPokusit se o push na určenou adresu URL nebo alias po každém úspěšném komitu. Implicitně: No pushAutorZabarvení podle autoraSeznam auto-includeSeznam auto-excludeAuto Includes:Automatická sloučeníAutomaticky postoupit k další stránce, je-li backout a merge kompletní.Automaticky postoupit k další stránce po ukončení sloučení.Konflikty při slučování řešit pokud možno automatickyZpětAnulovaný changeset: Anulovaná revize je negována doplněnou revizí opačnouAnulování a komitování...Anulování, potom sloučení...Backout - %sChangeset backoutuAnulovat aktuální větev oprávkyBackout vyžaduje rodičovskou reviziRevize backoutuPřenést část changesetu zpět k závislostiBackspace či Del pro odebrání řádku(ů)Záložní kopie upravených souborů lze nalézt v .hg/Trashcan/Je požadována zpětná změna fázeNesprávný název souboruBccPřed zrušením revize (backout) musíte provéstcommit, shelve do oprávky nebo změny vyřadit (discard).Před komprimací nutno provést commit, shelve do oprávky (patch) nebo discard změny.Před gráftem musíte provést commit, shelve do oprávky nebo discard změny.Před sloučením musíte provést commit, shelve změny do oprávky, nebo je vyřadit (discard)."Před rebase musíte provést commit, odložit změny shelve do oprávky nebo discard změny.Bisect - %sBisect - Bad, Good...Bisect - Good, Bad...Záložka "%s" neexistujeZáložka '%s' byla přidánaZáložka '%s' byla přemístěnaZáložka '%s' byla odstraněnaZáložka '%s' byla přejmenována na '%s'Záložka - %sZáložka s jménem "%s" neexistujeZáložka:VětevBarvy větvíVětev:Větev: Podrobnosti revizeProhledat adresář...Procházet...Svazky ukládají kompletní changesety v binární formě. Ostatní uživatelé si je mohou převzít (pull). Je to nejjistější způsob zaslání změn příjemcům užívajícím Mercurial.Seznam pro bypassArchivy bzip2 tarVybrat sloupce v Přehledu revizí...Nastavit formátEditor CLINelze změnit nastavení bez balíčku iniparse - zobrazení je jen pro čtení.Nedaří se nalézt revizi '%s'ZrušitSubrepozitář nejde přidatNelze provést backout na jiné větviRevizi nejde exportovatNejde exportovat revizi %s do souboru s názvem: %s Nejde importovat vybranou reviziNejde otevřít dialog Plugin OptionsNe-Mercurialové repozitáře či subrepozitáře nejde otevřítNejde otevřít repozitářNejde otevřít soubor .hgsub v:

                                                                                                            %sSoubor .hgsub nejde číst.

                                                                                                            Odebrání subrepozitáře se nezdařilo.Nejde spustit nové hledáníNejde aktualizovat soubor .hgsub v:

                                                                                                            %sSoubor .hgsub nejde aktualizovat.

                                                                                                            Odebrání subrepozitáře se nezdařilo.CcCc:Certificate Query ErrorZměna fázeFont přehledu revizíZměněno &tímto komitemZměny byly přesunuty, musíte provést komitZměny budou účinné po komituOdkaz na changesetChangeset je changeset sloučení.Changeset je čelo (head) pojmenované větve.Changeset je uzavřen.Changeset je označen tagem.Changeset s nejvyšším číslem revize v sadě.Changeset s nejnižším číslem revize v sadě.Changeset:ChangesetyChangesety, působící na soubory shodné se vzorem. Viz help patternsChangesety, obsahující soubory shodné se vzorem.Changesety, nenalezené v určeném repozitáři ani v implicitním místě pro předávku.Changesety, které jsou předky changesetů v sadě.Changesety, kde jméno uživatele obsahuje řetězec.Changesety, které přidávají soubory shodné se vzorem.Changesety, které jsou potomky changesetů v sadě.Changesety, které upravují soubory shodné se vzorem.Changesety, které odstraňují soubory shodné se vzorem.Changesety bez rodiče v sadě.Changesety uvnitř intervalu, viz help datesKódování souborů v repozitáři, použité ve webovém rozhraní a v aplikaci TortoiseHg.OvěřitOvěřit fázi subrepozitářeOvěřit všechny souboryZjistit příchozí změnyZjistit příchozí změny z %sZjistit příchozí změny z vybraného URLOvěřit fázi aktuální revize každého subrepozitáře. Pro jiná nastavení než "ignore" se toto ověření provádí před komitem v rodičovském repozitáři. Implicitně: followOvěřený počet: %dOvěřováníVyhledání aktualizací...Ověřování stavu pracovního adresáře...Ověřování...Označit přidávané souboryOznačit soubory, které mají být zapomenutyOznačit soubory, které mají být odebrányOznačit soubory, které mají být nastaveny na zadanou reviziChangesety, které jsou dětmi changesetů v sadě.Dítě:Chunks selected: %d / %dČistýSmazatSmazat obsah šelfového souboru %s?Smazat stávající průzkum (query) a jeho textVyprázdnit aktuální šelfový souborZvolte OK pro pokračování nebo Abort pro ukončení.Klonovat repozitář...Klon&ovat...Klonovat - %sKlonovat repozitářKlonovat k revizi:Klonovat...ZavřítZavřít větev %sPo komitu zavřítZavřít větev Zavřít aktuální větevZavřít ostatní kartyZavřít kartuUzavřít nástroj Commit po každém úspěšném komitu. Implicitně: FalseZavřít:Porovnat verze souboruSoustředit přeskupené (rebased) changesety (--collapse)Zbarvit changesety podle jména autora. Implicitně: FalseCSV seznam archivovacích formátů povolených při stahováníSeznam čárkami oddělených názvů větví, které by měly být ignorovány při sestavování seznamu větví pro repozitář. Implicitně. None (nevyplněno)Seznam čárkou odělených vylučovacích vzorů souboru. Vylučovací vzory jsou použity až po včleňovacích vzorech.Seznam čárkami oddělených souborů, které jsou automaticky připojeny ke každému komitu. Zamýšleno pouze jako nastavení repozitáře. Implicitně: None (nevyplněno)Seznam čárkami oddělených souborů, které jsou automaticky odznačeny při otevření dialogů pro commit a status. Implicitně: None (nevyplněno)Seznam čárkou oddělených včleňovacích vzorů souboru. Implicitně je prohledáván celý repozitář.CSV seznam emailových adres skrytých příjemců kopiíCSV seznam emailových adres příjemců kopiíCSV seznam emailových adresPříkazVýstup příkazuPříkaz pro použití při spojeních SSH.

                                                                                                            Implicitně: "ssh" nebo "TortoisePlink.exe -ssh -2" (Windows)CommitCommit Dialog ToolbarKomitovat pozdějiKomitovat nyníMožnosti komituKomitovat backout a výsledek sloučeníKomitovat změnyKomitovat změny v repozitářiKontextové menu komituKomitovat výsledek sloučeníZpráva komituCommit...Committing...Common setsPorovnat revize vybraného souboruPorovnat s 1. rodičemPorovnat s 2. rodičemKompletně odebrat soubor z oprávky?KomprimovatKomprimovat - %sKomprimovat historii...Komprimovat changesety včetně posledníhoKomprimace je kompletní, stará historie nedotčenaKonfigurační soubor:Konfigurační soubory (*.conf *.config *.ini)Chyba konfigurace: "%(arg0)s",
                                                                                                            Prosím upravte svůj konfig. souborNastavení uživatelského nástrojeNastavit extenzi PrůzkumníkaKonfigurovat ITNastavit guardyNastavit guardy pro vybranou oprávkuUpravit nastavení repozitářeKonfigurovat vybraný plugin COM Bug Tracker.Upravit uživatelské nastaveníKonfiguruje plugin COM IBugTraqProvider nebo plugin pro sledování problémů IBugTraqProvider2.Potvrdit přídáníPotvrďte změnu větvePotvrdit smazáníPotvrdit smazání neverzovanýchPotvrdit vyřazeníPotvrdit vyřazení změnPotvrdit zprávu k vyřazeníPotvrďte ukončení programuPotvrďte novou větevPotvďte přepisPotvrdit pushPotvrdit push do vzdáleného repozitářePotvrďte znovunačteníPotvrdit odebráníPotvrdit navráceníPotvrdit uloženíPotvrdit odtrženíPotvrďte náhradu URLConfirm UndoPotvrdit aktualizaciPotvrdit přidání neznámých souborůPotvrdit mazání souborůPotvrdit smazání souborůPotvrdit změnu fronty oprávekPotvrdit smazání cestyConnecting to Review Board...Zkuste nejprve zrušit gráft.Zkuste nejprve zrušit přeskupení (rebase).KontaktKontextové menuPokračovat nebo zrušit přerušenou operaci gráftu?Řídí chování fáze 'draft' při práci coby server. Nastaveno-li True, jsou předané (pushed) changesety zařazeny jako 'public' u klienta i serveru. Převzaté (pulled) nebo klonované changesety jsou u klienta zařazeny jako 'public'. Implicitně: TruePřeměnit existující repozitář na subrepozitářPřevedeno z:KopírovatKopírovat - %sCopy ErrorKopírovat úplnou cestu k souboru do schránkyKopírovat zprávuKopírovat jednu z posledních komitových zprávCopy source -> destinationKopírovat cestu ke kořeni repozitáře do schránkyKopírovat soubory pracovního adresáře ze skeletuNejde získat repozitářový seznamNešlo vytvořit instanci přidaného objektu COM: Issue TrackerNešlo otevřít soubor .hgsubNešlo otevřít některé subrepozitářeOznačený soubor nejde otevřít pro čtení.Určený soubor nešlo otevřít pro zápis.Nešlo přeložit obsah souboru z nativního kódování.Nešlo přeložit obsah souboru do nativního kódování.Nešlo aktualizovat soubor .hgsubVytvořitVytvořit &větevVytvořit repozitářVytvořit novou skupinuVytvořit novou oprávkuVytvořit nový repozitářVytvořit klon zdrojeVytvořit diff se všemi změnami v této větviVytvořit diff se všemi odchozími změnamiVytvořit tímto komitem novou pojmenovanou větev "%s"? Vytvořit specielní soubory (.hgignore, ...)Nalezen viník.Stávající lokální revizeNastavení uživatelské lištyUživatelské nástrojeDatumDatum:Změna názvu...Deaktivovat stavající záložku?Mrtvé větvePřipojit k pushPočáteční widgetDefinuje příkaz, který se spustí po zjištění čísla problému. Můžete vložit skupiny do issue.regex a odpovídající {n} tokenů do issue.link (kde n je nezáporné celé číslo). {0} odkazuje na celý řetězec, shodný s issue.regex, zatímco {1} odkazuje na první skupinu, atd. Nejsou-li v issue.link nalezeny žádné tokeny, je připojen celý řetězec.Definuje regex shody pro vyhledávání čísel problémů.SmazatSmazat %d soubor v .hg/TrashcanSmazat %d soubory v .hg/TrashcanSmazat %d souborů v .hg/TrashcanSmazat %d ignorovaný souborSmazat %d ignorované souborySmazat %d ignorovaných souborůSmazat %d neznámý souborSmazat %d neznámé souborySmazat %d neznámých souborůSmazat %s z konfiguračního souboru vašeho repozitáře?Smazat skupinu '%s' a všechny její záznamy?Smazat nástrojSmazat prázdné složkyVymazat ze seznamuSmazat oprávky...Smazat odkaz naSmazat vybrané porce (chunks)Smazat vybrané porce (chunks) z šelfového souboru %s?Smazat vybrané porce (chunks) z pracovní kopie?Smazat vybrané oprávkySmazat vybrany dotaz (query) z historieSmazat šelfový soubor %s?Smazat aktuální šelfový souborSmazat následující neverzované soubory?Smazáno %d souborůSmazáno %d souborů a %d složekSmazáno*Deleting trash folder...Nezdary při mazáníOdmítnout pushPopisDestinaceCílový soubor již existuje.Destinace:Destinace:Vypátrat změny názvů v %sZjistit odchozí změnyZjistit odchozí změny do %sOdchozí změny do vybraného URLZjistit kopie a změny názvůNalezeny nástroje pro merge/diff:V pracovním stromu byly zjištěny nekomitované změny. Vyberte způsob pokračování: Nalezeny nekomitované lokální změny.Určuje, zda má TortoiseHg zobrazit potvrzovací (konfirmační) dialog před přidáním nových souborů v komitu. Při True bude konfirmační dialog zobrazen. Při False budou vybrané nové soubory zařazeny do komitu bez konfirmačního dialogu. Implicitně: TrueUrčuje, zda má TortoiseHg zobrazit konfirmační dialog před předáním changesetů. Nastaveno-li False, provede se předání (push) bez potvrzovacího dialogu. Implicitně: TrueUrčuje, zda má TortoiseHg zobrazit konfirmační dialog před odebráním souborů v komitu. Při True bude konfirmační dialog zobrazen. Při False budou smazané soubory zařazeny do komitu bez konfirmačního dialogu. Implicitně: TrueUrčuje, kdy má být stav Issue Tracker aktualizován aplikací TortoiseHg. Platné hodnoty jsou:

                                                                                                            • never: Neaktualizovat stav Issue Tracker automaticky.
                                                                                                            • commit: Aktualizovat Issue Tracker po úspěšném komitu.

                                                                                                            Implicitně: neverUrčení odchozích changesetů pro odeslání emailem...Font diffuDiff ToolbarDiffy a anotaceObsah diffůDiff nezobrazen: Diff vůči rodičiDiff vůči p1Diff vůči p2Diff adresářůSložka souborůVyřadit - zavrhnout lokální změny, bez zálohováníOdvrhnout všechny změny z jiné revizeVyřadit stávající zprávu backoutu?Vyřadit stávající zprávu komitu?Odvrhnout lokální změny (revert --all)Vyřadit lokální změny, bez zálohování (-C/--clean)Vyřadit lokální změny, bez zálohování (-f/--force)Vyřadit nevyřízené změny pracovního adresáře?Vyřadit vzdálené změny, bez zálohy (-C/--clean)Zobrazit uzavřené větveZobrazit graf pouze pojmenované větveZobrazit jenom aktivní větvePřesto ten soubor zobrazitZobrazeno %(count)d z %(total)d položekSynchronizace DnDNezahrnovat datumy modifikací do záhlaví diffů. Implicitně je FalseNeupravovat pracovní kopii (-k/--keep)Při odtrhování (strip) neupravujte pracovní kopii (-k/--keep)Neukládat záložní soubory (*.orig)Nezobrazovat položky menu u neverzovaných složek (use shift + click to override)Neodtrhovat cesty (-p0), požadováno pro oprávky SVNNeaktualizovat nový pracovní adresářNeověřovat certifikát hostiteleOpravdu chcete vynutit (force) zpětnou změnu fáze?Opravdu chcete aktivovat frontu oprávek '%s' ?Opravdu chcete deaktivovat záložku %s?Opravdu chcet tuto revizi učinit secret?Opravdu chcet odebrat repozitář "%s" z jeho rodičovského repozitáře "%s"Chcete skončit?Chcete je zachovat nebo vyřadit?Táhnutím změnit pořadíDuplikátní názevKó&dováníE&xitOtevřít složkuProzkoumat složkuEditovatEditovat souborIgnorované souboryEditovat souborEdit Path to ServeUpravit nástroj...Editovat aktuální soubor v pracovní kopiiEditovat souborEditovat graf závislosti oprávkyEditovat oprávkovaný (patched) soubor a odmítnuté porce (chunks)?Upravit seznam ignorovaných položek v repozitářiEditovat vyřešený souborSelhalo spuštění editoruEmailEmail DAG Range...Email Selected...Emailová adresa pro použití v záhlaví "From" a pro obálku SMTPOdeslat odchozí changesety emailemEmitovat výstup ladění (--debug)Povolené ovladače překryvůPřekryvy povolenyKódováníPrůvodní texty anglickyZadejte číslo řádku (1 - %d)Zadat označení revizeChybaDošlo k chybě.Chyba při aktivaci "commit finished" událostiChyba při získání chybové zprávy z pluginu Issue TrackerChyba při načítání subrepozitářeChyba náhledu na subrepo: %sChyba řetězce "%(arg0)s" v %(arg1)s
                                                                                                            Prosím, upravte svoji konfiguraciChyba při zápisu souboruVylučuje:Spustit uživatelský nástroj '%s'UkončitSkončit bez dokončeného řešení konfliktů?Nedoporučuje se končit s nedokončeným gráftem.Vystoupit z nedokončeného přeskupování se nedoporučuje.Nastavení kontext. nabídekNastavení kontext. nabídek - TortoiseHgExportovat DAG Range...Exportovat diff...Export Selected...Exportovat oprávkuExtExtenzeNepodařilo se přidat repozitářNepodařilo se přidat subrepozitářNezdařilo se provést uživatelský příkaz TortoiseHgNepodařilo se provést uživatelský příkazNepodařilo se načíst issue tracker '%s': %sNepodařilo se načíst issue tracker: '%s': %s. Nepodařilo se otevřít cestu v termináluNepodařilo se otevřít repozitářNezdařilo se!Fetch - provést pull, update a merge (automatické sloučení stáhnutých změn)Fetch - použít extenzi fetch (fetch není aktivní)Pole pro shodu:SouborHistorie souboruSloupce záznamu o rozdílech souborůHistorie souboruSloupce záznamu o historii souborůFile List ToolbarStatus souboruStatus souboru:Soubor již existujeKonflikty souborů je zapotřebí vyřešitKontextové menu souboru (v detailech manifestu a revize)Binární souborSoubor je větší než určená max. velikost. maxdiff = %s KBSoubor může být binární (překročena max. délka řádku)Nezobrazený soubor či diffy: Soubory či diffy nejsou zobrazeny: Soubor je větší než určená max. velikost. maxdiff = %s KBFile pattern setsSoubor nebyl v aktuálním repozitářiNázev souboruSouborySoubory větší než zadaná velikost (v MB) budou přidány jako 'bfilesSoubory větší než zadaná velikost (v MB) budou přidány jako 'largefilesSoubory, jejichž názvy odpovídají určeným vzorcům, budou automaticky přidány jako 'bfilesSoubory, jejichž názvy odpovídají určeným vzorcům, budou automaticky přidány jako 'largefilesSelektivní výběrFiltrovat podleLišta filtru se sadami revizí nebo větvemiFiltr:Nalézt změny jmenNalézt kopie a přejmenované zdrojeNajít shody - %sNalézt shodná pole revizí:Nalézt revize, shodující se v jednom či více polích dané sady revizí.Nalézány odchozí changesety do %s...UkončenoPrvních n členů sady.První rodič pro všechny changesety v sadě nebo pracovní adresář.Opravené revizeFlag:Složit oprávky...Sledovat kopie a změny jmenFont použitý v přehledu revizí. Implicitně: monospace 10Font zprávy komitu. Implicitně: monospace 10Font textu v panelu Output Log. Implicitně: sans 8Font použitý pro zobrazení rozdílů v textu. Implicitně: monospace 10FontyPro které druhy revizí bude nástroj povolen. Připadá v úvahu pouze tehdy, je-li nástroj uveden v kontextovém menu vybrané revize.Zobrazit kartyVynutit sloučení s nevyřízenými změnami (-f/--force)Vynutit push nebo pop (--force)Vynutit push nebo pull (potlačit bezpečnostní kontroly, --force)Vynutit push do vzdálené lokace(-f/--force)Vynutit odebrání upravených souborů (--force)ZapomenoutZapomenout soubory...Rozdělit GUIVpředNalezeno %d příchozích changesetůNalezeny příchozí changesety z %sFromFrom:Celé jméno autoraNázev úplné cestyID klíče GPG, spojeného s uživatelem. Implicitně: None (nevyplněno)Generovat anglickou zprávu komitu i když jsou proměnné prostředí LANGUAGE nebo LANG nastaveny na neanglický jazyk. Toto nastavení používají dialogy Merge, Tag a Backout. Implicitně: FalseProbíhá příjem příchozích changesetů z %s...Formát GitOprávky git umějí popsat binární soubory, kopie a změny povolenek ale příjemci je nemusí umět použít, pokud nepoužívají git nebo Mercurial.GlobGlobální nastaveníPřejít kPřejít na řádekPřejít k jiné reviziPřejít k aktuální reviziPřejít k předkovi %s a %sPřejít ke společnému předkoviPřejít k reviziGráftovat výběr k aktuální rev...Gráft byl zrušenChangeset gráftuChangeset gráftu #%d z %dGráft se nezdařilGráft generoval konflikty, které musí být řešenyGráft je hotovýGrafProgram pro řešení slučovacích konfliktů. Pokud neurčeno, použije Mercurial první použitelný nástroj, který nalezne v systému nebo použije svůj vlastní slučovací nástroj, jenž ponechává na místě markery konfliktů. Zvolte internal:merge pro vytvoření konfliktových markerů, internal:prompt pro lokální či jiný výběr a internal:dump pro ponechání souborů v pracovním adresáři k ručnímu slučováníNejvětší společný předek dvou changesetů.Guards: %d/%dUhodnout změny názvůArchivy gzip tarHTTP Error: %d (%s)Čelo je uzavřeno!Příkaz Hg:Historie změn u souboru [%s] - %sHg oprávky (generované přikazem export) jsou kompatibilní s většinou oprávkových programů. Zahrnují záhlaví, které obsahuje nejdůležitější metadata changesetu.Skrýt podrobnostiSkrýt tagySkrýt kontextové menu mimo repozitářůZvýraznit ikonuTyp hookuHostitelJméno hostitele a případně port proxy serveru, např. "myproxy:8000"Jméno hostitele mailového serveruJméno hostitele, které může odesílatel použít pro identifikaci u mailovéh serveru.Kolik řádků mají zabrat "pruhy zebry " ve víceřádkovém výstupu. Implicitně je 1; 0 volbu vypne.IkonaIkonyNebylo-li určeno jméno uživatele, vyzvat k zadání jeho jména.Implicitně: FalsePokud je určen, jsou soubory adresáře - např. .hgignore - zkopírovány do nově vytvořeného repozitáře.Pakliže "true", přeskupit víceré řádky souhrnného sdělení a případně jejich délky omezit na 80 znaků.Implicitně: FalseMáte-li stále potíže, vyplňte prosím hlášení o chybě.Ignorovat Ignorovat prázdné řádkyMnožství ignorovaných WSIgnorovat prázdná místa (WS)Ignorovat velikost písmenIgnorovat změny v počtu prázdných míst v zobrazení diffu. Implicitně: FalseIgnorovat změny v počtu prázdných míst v zobrazení anotace. Implicitně: FalseIgnorovat změny v počtu prázdných řádků v zobrazení diffu. Implicitně: FalseIgnorovat změny v počtu prázdných řádků v zobrazení anotace. Implicitně: FalseSeznam ignorovaných souborů - %sIgnorovat prázdná místa při porovnávání řádků v zobrazení diffu. Implicitně: FalseIgnorovat prázdná místa při porovnávání řádků v zobrazení anotace. Implicitně: FalseIgnorováno*Následné operaceImport - %sImportovat ze schránkyV &aktuální reviziV &původní reviziV celé &historiiV aktuálním &souboruIn-Reply-To:ZahrnoutZahrnout všechny předkyZahrnout frontu oprávekZahrnuje:Příchozí záložkyPříjem příchozích changesetů z %s zrušen, ret %dUrčuje, zda se má TortoiseHg pokusit automaticky řešit změny z obou stran téhož souboru a při nezdaru oznámit slučovací potíže. Při False jsou ohlášeny jako konfliktní všechny soubory se změnami na obou stranách i když se tyto změny nacházejí na odlišných místech souborů. Při výskytu konfliktů je uživatel vyznán k jejich ručnímu řešení. Implicitně: True.Iniparse musí být instalován.Balíček iniparse nenalezenPočáteční revizeÚvodní tagyVložit guard pro %s:Nedostatečná přístupová oprávnění, návrat do režimu pouze pro čtení.Nedostatečná přístupová práva.PřerušenoNalezena přerušená operace gráftuNeplatné vzoryNeplatné nastavení - Uveďte prosím své uživatelské jméno pro ReviewBoardNeplatné nastavení - Server ReviewBoard server není nastavenNeplatný příkazNeplatná konfigurace: %sNeplatný datumový formátNeplatná revize implicitní předávky: %s. Zkontrolujte prosím nastavení Mercurialu (tortoisehg.defaultpush)Neplatný výraz globNeplatný výraz regexpNeplatný plugin pro reviewboard. Stáhněte si prosím plugin pro reviewboard Mercurialu verze 3.5 nebo vyšší z níže uvedené webové stránky. %sPřipojení k problémuRegex problémuPlugin pro Issue TrackerChyba pluginu Issue TrackerAktivovat Issue TrackerSledování problémůNebylo možné úplně načíst subrepozitářový seznam pro repozitář v:

                                                                                                            %s

                                                                                                            .Následující subrepozitáře mohou chybět, být porušené nebo v nekonzistentním stavu a jsou nepřístupné:

                                                                                                            %sNešlo získat subrepozitářový seznam pro repozitář v:

                                                                                                            %sZachovat původní názvy větví (--keepbranches)Zachovat původní changesety (--keep)Zachovat oprávkové souboryZnámá špatná revize:Známá dobrá revize:Left ToolbarUmožňuje uživateli aktualizovat příchozí 'projrc':

                                                                                                            • never: [implicitní] Ukázat, zda byl vzdálený soubor 'projrc' změněn, ale neaktualizovat lokální soubor 'projrc'.
                                                                                                            • prompt: Vyhledat změny souboru projrc. Pokud tyto změny existují, _vždy_ zobrazit konfirmační výzvu s dotazem, zda chce uživatel aktualizovat svůj lokální soubor projrc.
                                                                                                            • auto: Vyhledat změny souboru projrc a použít hodnotu konfiguračního klíče "projrc.confirm" pro určení, zda či nikoliv zobrazit konfirmační dialog před aktualizací lokálního souboru projrc.

                                                                                                            Default: neverLicenceJako "keyword(string)" ale přijme regex.ŘádekSeznam možnos&tíSeznam serverů, z nichž musí být staženy (pulled) konfigurační soubory "prorc". Pro stažení ze všech serverů nastavte "*". Pro stažení z implicitní synchronizační cesty nastavet "default". Implicitně je nastaveno stahování ze žádného serveru.Seznam všech nástrojůSeznam nastavení, která nebudou stažena z konfiguračního souboru projektu. Implicitně je nevylučovat žádná z připojovaných nastavení.Seznam nastavení, která budou stažena z konfiguračního souboru projektu. Implicitně je: include NO settings.Seznam aktualizovaných souborů (--verbose)Načíst všechny revizeNačíst všechny revize do grafuNačítání repozitáře %sLokální jméno hostiteleLokální cestaLokální cesta:Lokální repozitář %sPouze lokální diskyInformace o lokální reviziLokální označeníLokální tagUmístění lokálního klonu organizačního (lock) repozitáře. Tento repozitář musí obsahovat"locked" textový souborUmístění:Uzamčení souboru není popsáno v .hglocksUzamčení %s selhalo, zkuste znovuUzamčení %s bylo úspěšnéZamknout nebo nezamknout souboryZamknuté a zamknutelné soubory:Uzamčeno*LogPočet načtených revizíDlouhý souhrnMFormát MQ GitMQ optionsUčinit fázi oprávek MQ 'secret' (místo 'draft'). Implicitně: FalseVytvořit repozitář kompatibilní s Mercurialem <1.7Vytvoření revize "draft" jako "secret" je obecně bezpečná operace. Má to ale několik háčků: - "secret" revize nelze expedovat (push). To může způsobit potíže při odkazování na tajnou revizi subrepozitáře. - při opakovaném převzetí (pull) ze stejného nepublikujícího serveru může být tato revize přesunuta zpět do formátu "draft" . Buďte opatrní!Nastavit bezpečné spojení HTTPS a údaje o uživateliManage pending perforce changelistsPovinný odkaz na problémOdmítnuté porce (chunks) řešit ručně?Ručně vyřešit odmítnuté porce (chunks) oprávky (patch)Označit jako &nevyřešenéOznačit tento chunk jako řešený, přejít k dalšímu neřešenémuOznačit tento chunk jako neřešenýOznačit tento soubor jako vyřešenýOznačit tento soubor jako nevyřešenýMatch TextNalézt shody u libovolných %d revizíZměn maximálněMax. velikost diffuSouborů maximálněMaximální počet změn, uváděných v protokolu (changelogu). Implicitně: 10Maximální počet souborů, uváděných v seznamech changesetů. Implicitně: 10Členové sady bez dětí v sadě.Chování menuResolve MercurialuUživatel MercurialuPříkaz Mercurialu je stále aktivní. Jste si jist, že jej chcete ukončit?Extenze keyring Mercurialu je povolena. Hesla budou uložena bezpečnou metodou platformy.Mercurial nenalezl žádný editor. Upravte prosím nastavení Mercurialu, aby mohl použít váš systémový editor.SloučitSloučit - %sSloučit - povolit sloučení s lokálními změnamiSloučit všechny nevyřízené závislostiSloučení způsobilo konfliktyChangeset sloučeníSloučit z (jiné revize)Sloučit odmítnuté porce oprávek (patch chunks) s %sSlučovací revize neurčena nebo nenalezenaSloučit k (pracovnímu adresáři)Provést sloučení s použitím vybraného nástrojeSloučit s %sSloučit s dalším čelem aktuální větveMerging...ZprávaFont zprávyNezdařil se překlad zprávyMessage identifier to reply to, for threadingMetoda pro povolení protokolu TLS při připojení k mailovému serveru. Implicitně: noneMin podobnost: %d%%Minimální protokolMinimální velkostChybějící informaceUpra&vit historiiSledovat změny repozitářeMonitorovat změny pracovního
                                                                                                            adresářePřesunoutPřesunout všechny soubory vlevoPřesunout všechny soubory vpravoPřesunout aplikované oprávky do historie repozitářePřesunout změny z pracovního adresáře do oprávky (path)Přesunout vybrané porce vlevoPřesunout vybrané porce vpravoPřesunout vybrané soubory vlevoPřesunout vybrané soubory vpravoPřemístěný tag %s do changesetu %s (z changesetu %s)Vícevýběrové kontextové menuVybráno vícero zdrojůNázevJména spojená s komity. Obvyklý formát je:
                                                                                                            Full Name <email@example.com>Jméno nebo emailová adresa osoby zodpovědné za repozitář.Pojmenovaná větev "%s" již existuje, naposledy byla použita v revizi %d Nová &skupinaNový VerpánekNová větev: Fáze nových komitůNová skupinaNový název:Nová větev oprávkyNový skelet repozitářeNový repozitářNew ShelfNový nástroj...Vytvořený nový souborNový hookNová zpráva oprávky:Název nové fronty oprávekVytvořen nový šelfDalší diffDalší diffŽádná dataŽádné vhodné souboryBez zálohy (-n/--nobackup)Žádné změny větveNo chunks remainNo deletable chunksDiffový nástroj nenalezenEditor nenalezenŽádné změny souborůNebyly vybrány žádné souboryPro tuto operaci nebyly nalezeny žádné souboryŽádné soubory nebyly vybrányŽádné soubory nenalezenyŽádný hostitel nebyl určenBez ověření hostitele, avšak stále se zašifrováním (špatné)Žádné ignorované soubory nebyly nalezenyŽádné příchozí changesety z %sVe zprávě komitu nebyl nalezen žádný odkaz na problém. Tento odkaz by zpráva komitun měla obsahovat.Konfiguraci provedete v sekci 'Issue Tracking' nástroje Nastavení ...Není co zobrazitŽádné shody nenalezenyŽádné slučovací konflikty, připraveno pro komitŽádné slučovací konflikty, připraveno ke komitu nebo reviewŽádné upravené soubory nebyly označeny pro komitŽádná operace k provedeníŽádné odchozí changesetyŽádné odchozí changesety do %sNebyla vybrána žádná větev oprávkyŽádné nevyřízené changelisty PerforceŽádná adresa URL nebo cesta ke vzdálenému repozitáři nebyla zadánaRepozitář nenalezenŽádná revize nebyla nalezenaŽádné zobrazení není nastavenoŽádná transakce není k disposiciŽádné odhozené soubory nebyly nalezenyŽádné neznámé soubory nebyly nalezenyNebylo zadáno jméno uživatelePro tento repozitář nebyla nastavena žádná platná adresa URL nebo přístupová cesta.

                                                                                                            Doplňte prosím cestu ke vzdálenému repozitáři v kartě Sync.Žádné vizuální diffové nástroje nebyly nenalezenyŽádný textový editor není nastavenNone - pouze převzít changesetyNormalizovat ukončení řádků během oprávky a po oprávce na lf nebo crlf. Strict neprovádí žádnou normalizaci. Auto provádí detekci podle souboru a je doporučeným nastavením. Implicitně: strictNení subrepozitářem Mercurialu, nelze vytvořit náhledBez čelní revize!Anulovaná revize není čelem; backout vytvoří nové čelo!Nic nebylo komitovánoNic se nezměnilo.Není co importovatNic k předání (push)OKPřekonaný stav:V repowidgetu ukázat proJeden nebo více changesetů, které se pokoušíte předat (push), obsahují nově vytvořenou větev. Chcete vytvořit novou větev ve vzdáleném repozitáři?Vzít v úvahu pouze smazané souboryPouze soubory upravené či vytvořené v této reviziPouze soubory upravené či vytvořené od:K destinaciOtevřítOtevřít konzoluOtevřít s&ubrepozitářOtevřít (neslučitelný) soubor, který si přejete zamknoutOtevřít novou pojmenovanou větevOtevřít terminál v kořeni repozitářeOtevřít terminál ve vybrané složceOtevřít editor průzkumu (query)Otevřít všechny repozitáře v nových kartáchOtevřít konfig. soubor hgwebOtevřít nové karty vedle stávajícíchOtevřít rodičovskou složku stávajícího souboru v systémovém správci souborůOtevřít nástroj ShelveOtevřít repozitář v průzkumníkuOtevřít repozitář v nové kartěOtevřít vybranou složku v systémovém správci souborůOtevřít vybraný subrepozitářOperace zrušena:

                                                                                                            %(arg0)s.Operace, která se provede bezprostředně po úspěšné akci pull. update odpovídá pull --update, fetch odpovídá fetch extension, rebase odpovídá pull --rebase, updateorrebase odpovídá pull -u --rebase. Implicitně: noneNepovinné. CSV seznam jmen hostitelů, které by měly obejít proxyNepovinné. Použitá metoda pro odeslání mailové zprávy. Je-li hodnota "smtp" (default), použije se SMTP. Jinak se použije název programu, který pro odesílatele slouží jako sendmail (takes "-f" option for sender, list of recipients on command line, message on stdin). Normálně pro poslání zpráv s použitím sendmail postačí zadat "sendmail" nebo "/usr/sbin/sendmail".Volitelné. Soubor se zřetězenými klientskými certifikáty ve formátu PEM. Proměnné prostředí jsou rozbaleny v názvu souboru.Volitelné. Soubor s klientskými certifikačními klíči ve formátu PEM. Proměnné prostředí jsou rozbaleny v názvu souboru.Volitelné. Heslo pro potvrzení totožnosti u proxy serveruNepovinné. Heslo pro autentizaci. Není-li zadáno, a vzdálený site požaduje základní nebo stručnou autentizaci, je uživatel o něj požádán.Volitelné. Jméno uživatele pro potvrzení totožnosti u proxy serveruNepovinné. Jméno uživatele pro autentizaci. Není-li zadáno a vzdálený site požaduje základní nebo stručnou autentizaci, je uživatel o něj požádán. Proměnné prostředí jsou pro jméno uživatele rozšířeny, aby bylo možné zadat foo.username = $USER.MožnostiMožnosti:Nebo použít:Řadit subrepozitáře jako v .hgsubPůvodní rodič:Informace o jiných revizíchOdchozí záložkySestavení odchozích changesetů zrušeno, ret %dSestavování odchozích changesetů %s zrušeno, ret %dFont výstupuPřekryvyPřetáhnout (pull) záložkuKontextové menu párového výběruRodič 1:Rodič 2:Rodič:RodičeHesloHeslo pro připojení k mailovému serveruHeslo pro ověření přístupu na review boardHeslo:Vložit jména souborůPatch Branch ToolbarOprávka EOLOprávkové soubory (*.patch)Požadován název oprávkyFronta oprávek (Patch Queue)Datum oprávky:Oprávka (patch) byla exportovánaOprávku se nezdařilo aplikovatOprávkové soubory (*.diff *.patch)Oprávkové soubory již existujíPatch fold - %sZpráva oprávky:Název oprávky:Popis serie oprávek je poslán v souhrnném emailu s předmětem zprávy [PATCH 0 of N]. Měl by popsat účinek celé serie oprávek. Při odesílání svazku tvoří tato pole předmět a tělo zprávy. 'Flags' je CSV seznam štítků, které jsou vloženy do předpony předmětu zprávy.Uživatel oprávky:Oprávka:Patch: %sOprávky byly exportoványOprávky ke shrnutí (fold)CestaCesta k příkladu pro review board "http://demo.reviewboard.org"Cesta k adresáři, kde bude uložena 'system-wide cache' pro 'bfilesCesta k adresáři, kde bude uložena uživatelova 'cache' pro 'largefilesCesta:Cesty v nastavení repozitáře:VzoryNevyřízené changelisty Perforce - %sPerforce pending...Perforce:Provést push před aktualizací (-p/--push)FázeUmístit konzolu do úkonové plochyBez záhlaví MercurialuNastavte prosím textový editor.Povolte prosím a nastavte simplelockPovolte prosím nejprve extenzi Gpg.Zadejte prosím jméno uživateleZadejte prosím komentář komituOhlašte prosím tuto chybu našemu bug trackerZadejte prosím platné URL.Čekejte prosím, probíhá komitování sloučených souborů.Počkejte prosím na ukončení backoutu.Prosím počkejte na otevření souboru ...Prosím čekejte...PortPort pro připojení k mailovému serveru. Výchozí: 25Port, kterému má být naslouchánoPort:Post &ReviewChování po akci PullPo akci pull: Post ReviewPoslat vybrané do Review Board...Poslat do Re&view Board...Připravit pro backout (anulování revize)Připravit ke sloučeníZachovat soubory začínající s .hgNáhledNáhled:Předchozí diffPředchozí diffSubrepozitář byl původně v následující revizi:ProxyPožadavek neprodleně publikovatPullPřetažení (pull) z %s je zrušeno, ret %dPřejímka (pull) z %s je dokončenaPřetáhnout (pull) příchozí změnyPřetáhnout (pull) příchozí změny změny z %sPřetáhnout (pull) příchozí změny z vybraného URLPřetáhnoutt (pull) příchozí changesty do svého repozitářePřetáhnout (pull) subrepa z:Přetáhnout (pull) sem...Přetažená vzdálená záložka: %sPřetahování (pulling) %s...ČistitÚčelPush po komituPush po komitu:Push vyžaduje SSLPush vybranou větevPoslat (push) všePostrčit aktuální větev (%s)Postrčit (push) odchozí změnyPostrčit (push) odchozí změny do %sPostrčit (push) odchozí změny do vybraného URLPush do %s zrušenPush do %s zrušen, ret %dPush do %s dokončenPush do vzdáleného repozitáře %s ?Push až k aktuální revizi(#%d)Push až k revizi #%dPostrčená lokální záložka: %sProbíhá push do %s...QNewQRefreshQueryHledání changesetů, ovlivňujících vybrané souboryQuitO&debrat záložkuNastavení seznamu repozitářůREADME není nastavenoObnovit repozitářOdebrat verzovaný souborOdebrat repozitářPřejmenovatPřejmenovat ...Jen ke čtení*Připraveno k čištění (purge)Připraveno, dvojím klikem zamknout nebo odemknoutPřeskupit (rebase)Přeskupit - %sRebase - přeskupit lokální komity nad stažené změnyRebase - použít extenzi rebase (rebase není aktivní)Přeskupení zrušenoPřeskupování právě probíháPřeskupit (rebase) changeset a potomkyPřeskupit celou výchozí větev (-b/--base)Přeskupení selhaloRebase generovalo sloučení conflicts které musí být řešenoPřeskupení je kompletníPřeskupit (rebase) 'nepublikované' do čela Subversion (override source, destination)Zabočit do subrepozitářůOdbočit do subrepozitářů (--subrepos)Nadbytečná autentizační informaceReaktivovat (refresh)Reaktivovat úkonovou plochuRefresh ToolbarReaktivovat aktuální oprávkuReaktivovat aktuální repozitářReaktivovat seznam souborůReaktivovat informaci o zámkuReaktivovat pouze aktuální úkonovou kartuReaktivovat seznam repozitářůReaktivuje zámky...RegexpRegexp:Vyhledávací vzor regulárního výrazuOdmítnout příchozí changesetyPříbuzné cesty:Znovu načístOpětovně načíst souborOdeb&rat subrepozitář...Vzdálený příkaz:OdebratOdebrat &všechny vybrané souboryOdebrat &neměněné souboryOdebrat soubory...Odebrat autentizační údaje z URLOdebrat aktuální pracovní revizi?Odebrat soubory ze správy verzíOdebrat filtr, ukázat rootOdebrat oprávky z fronty?Odebrat vybrané smazané soubory?Odstranit node a všechny jeho sub-nody. Repozitáře se z disku nesmažou.Odebrat vybraný repozitář?Odebrat tento subrepozitář z aktuální revizeOdebraná lokální záložka: %sOdebraná vzdálená záložka: %sOdebraný tag %sPřejmenovatPřejmenovat - %sRename ErrorPřejmenovat souborPřejmenovat soubor nebo adresářPřejmenovat oprávku %s na:Přejmenovat frontu oprávek '%s' naPřejmenovat oprávku...Přejmenovat záznamZnovu otevřít poslední zavřenou kartuZnovu otevřít poslední skupinu karetNahraditNahradit stávající hook?Nahradit stávající tag (-f/--force)Vyměnit existující oprávkové soubory Hlásit pouze první shodu v souboruRepozitářeRepozitářChyba repozitářeID repozitáře:Seznam repozitářůSeznam repozitářů aktualizovánNastavení repozitářePříkaz pro repozitář stále běžíRepozitář je uzamčenNázev pro repozitář, použitý ve webovém rozhranní a aplikací TortoiseHg jako zkratka. Implicitně to je pracovní adresář.Repozitář není lokálníZměny stavu repozitářeVyžadovat potvrzeníVyřešené konfliktyRestart &BranchOpakovat sloučení sRestartovat všechny aplikace TortoiseHg pro uplatnění následujících změn:Pokračovat v přerušeném přeskupování (rebasing)RevRevert (!)Navrátit &všechny soubory...Revert - %sNavrátit soubory...Navrátit všechny změny souboru?Navrátit všechny soubory k této reviziNavrátit všechny změny pracovní kopie?Navrátit změny souboruNavrátit obsahy souboru(ů) ke stavu při této reviziNavrátit soubory ke stavu lokálního či jihého rodiče?Navrátit změny lokálních souborů?Navrátit následující soubory?Navrátit k reviziAkce "revert" u všech souborů vyřadí změny a ponechá soubory v modifikovaném stavu.

                                                                                                            Jste si jist, že tuto akci chcete provést?

                                                                                                            (použijte aktualizaci pro přechod k jiné revizi)Reverting p4 changelist...Review BoardReview ID:Review draft posted to %s Review published to %s RevizeRevize #%d (%s) byla exportována do:

                                                                                                            %s%s%sPodrobnosti &revizeSada revizíRevision Set QueryKontextové menu detailů revizeRevize se změnila na:Revize je špatnáRevize je dobráRevize pro shodu:Revize:Účel hledání:Right ToolbarVrátit komit k revizi %dNávrat k revizi %d (undo %s)?Spusťte po přidání skupiny změn via push, pull nebo unbundle ale před komitem transakce. Skupina změn (changegroup) je viditelná hookovému programu. To vám umožňuje ověřit příchozí změny před jejich přijetím. ID prvního předaného changesetu je v $HG_NODE a posledního v $HG_NODE_LAST. Nulový status exitu umožňuje komitování transakce. Nenulový status způsobí vrácení (roll back) transakce a selhání příkazů push, pull nebo unbundle. URL, jež bylo zdrojem změn, je v $HG_URL.Spusťte poté, co byla skupina změn připojena prostřednictvím push, pull nebo unbundle. ID prvního nového changesetu je v $HG_NODE a posledního v $HG_NODE_LAST. URL, z něhož změny přišly, je v $HG_URL.Spusťte poté, co byl changeset vytvořen ale před komitem transakce. Changeset je viditelný hookovému programu. To vám umožňuje ověřovat zprávu a změny komitu. Nulový status exitu umožňuje pokračování komitem. Nenulový status způsobí návrat (rollback) transakce. ID changesetu je v $HG_NODE. Changesety rodičů jsou v $HG_PARENT1 a $HG_PARENT2.Spusťte po vytvoření changesetu v lokálním repozitáři. ID nově vytvořeného changesetu je v $HG_NODE. ID rodičovských changesetů jsou v $HG_PARENT1a $HG_PARENT2.Spusťte poté, co byl changset do lokálního repozitáře vtažen, vtlačen nebo rozbalen. ID nově přišlých changesetů jsou v $HG_NODE. URL, jenž bylo zdrojem přišlých změn, je v $HG_URL.Spusťte poté, co byl pushkey (jako bookmark) přidán do repozitáře. Jmenný prostor pro klíče je v $HG_NAMESPACE, klíč je v $HG_KEY, jeho stará hodnota (existuje-li) je v $HG_OLD a nová hodnota je v $HG_NEW.Spusťte po vytvoření tagu. ID tagem označovaného changesetu je v $HG_NODE. Název tagu je v $HG_TAG. Tag je lokální, je-li $HG_LOCAL=1 a v repozitáři, je-li $HG_LOCAL=0.Spusťte po výpisu push klíčů v repozitáři. Jmenný prostor klíčů je v $HG_NAMESPACE. Označení $HG_VALUES je pro slovník, obsahující klíče a hodnoty.Spusťte po odeslání změn z lokálního repozitáře do jiného. ID prvního odeslaného changesetu je v $HG_NODE. Zdroj operace je v $HG_SOURCE.Spusťte po aktualizaci pracovního adresáře. ID changesetu prvního nového rodiče je v $HG_PARENT1. Dojde-li ke sloučení, je ID druhého nového rodiče v $HG_PARENT2. Byla-li aktualizace úspěšná, je $HG_ERROR=0. Jestliže aktualizace selhala (např kvůli nerozřešeným konflikům), $HG_ERROR=1.Spusťte před přidáním skupiny změn prostřednictvím push, pull nebo unbundle. Nulový status exitu umožňuje skupině změn pokračovat. Nenulový status způsobí selhání push, pull nebo unbundle. URL, ze kterého změny přijdou, je v $HG_URL.Spusťte před přidáním pushkey (jako bookmark) do repozitáře. Nenulový statux způsobí odmítnutí klíče. Jmenný prostor klíče je v $HG_NAMESPACE, klíč je v $HG_KEY, jeho stará hodnota (existuje-li) je v $HG_OLD a jeho nová hodnota je v $HG_NEW.Spusťte před shromážděním odesílaných změn z lokálního repozitáře do jiného. Nenulový status způsobí selhání. To vám umožní zabránit provedení pull přes HTTP nebo SSH. Rovněž zabrání provedení lokálních příkazů pull, push (outbound) nebo bundle - BUT (nejde přeložit) not effective, since you can just copy files instead then. Source of operation is in $HG_SOURCE. If "serve", operation is happening on behalf of remote SSH or HTTP repository. If "push", "pull" or "bundle", operation is happening on behalf of repository on same system.Spusťte před vytvořením tagu. Nulový status exitu umožňuje vytvoření tagu. Nenulový status způsobí selhání tagu. ID changesetu pro tag je v $HG_NODE. Název tagu je v $HG_TAG. Tag je lokální, je-li $HG_LOCAL=1, v repozitáři, je-li $HG_LOCAL=0.Spusťte před výpisem pušklíčů (pushkeys) v repozitáři. Nenulový status způsobí selhání. Jmenný prostor klíčů je v $HG_NAMESPACE.Spusťte před započetím lokálního komitu. Nulový status exitu umožňuje komitu pokračovat. Nenulový status exitu způsobí selhání komitu. ID rodičovských changesetů jsou v $HG_PARENT1a $HG_PARENT2.Spusťte před aktualizací pracovního adresáře. Nulový status exitu umožní provedení aktualizace. Nenulový status aktualizaci zabrání. ID changesetu pro prvního nového rodiče je v $HG_PARENT1. Dojde-li ke sloučení, je ID druhého rodiče v $HG_PARENT2.Spuštěno na %sProbíhá...S&ynchronizovatHostitel SMTPHeslo pro SMTPPort SMTPSMTP TLSUživatel SMTPChyba SSL: %sSSL: Ověření certifikátu serveru se nezdařiloSSL: neznámá chyba %s:%sPři exitu uložit stávající cesty pro synchronizaciUložitUložit globálněPři exitu uložit otevřené repozitářeUložit cestuUložit změny před editcí?Uložit aktuální URL jako aliasUložit zprávu o chybě doUložit soubor ve stavu, odpovídajícím této reviziUložit soubor doUložit konfig. soubor hgwebUložit v repozitářiSkenovat &vzdálené repozitářeHledatHistorie hledáníHledat vybraný textHledání již probíháHledat zprávu komitu, jméno uživatele a jména změněných souborů podle řetězce.Prohledat revize souborů podle vzorůHledat v celé historiiSearchingHledá se...Druhý rodič pro všechny changesety v sadě nebo pracovní adresář.Oprávky MQ - secretBezpečné spojení HTTPSBezpečnostBezpečnost: Vyberte cílový souborVyberte cílovou složkuVyberte adresář, obsahující oprávkyVybrat repozitářVyberte zdrojový souborVyberte zdrojovou složkuVyberte nástroj:Vybrat umístění GUI k editaci:Vyberte existující repozitář a přidat jej jako subrepozitářVeberte větev slučovacího komituVyberte soubor svazkuVyberte cílový repozitářUrčete, zda TortoiseHg zobrazí výběrové kombo v synchronizační liště.

                                                                                                            • auto: Zobrazit kombo, je-li zadán více než jeden cíl.
                                                                                                            • always: Vždy zobrazit kombo.

                                                                                                            Default: autoVyberte složku s oprávkamiVyberte oprávkyVyberte operaci 'post-pull' pro tento repozitářVyberte repozitářVyberte adresář přidávaného repozitářeVyberte adresář otevíraného repozitářeVyberte zdrojový repozitářZvolte nastavenou revizi při otevření verpánku. Můžete vybrat "current" (to jest rodiče pracovního adresáře), aktuální "tip" nebo pracovní adresář ("workingdir"). Implicitně: currentZvolte počáteční widget, který se ukáže při otevření repozitáře. Implicitně: Podrobnosti revize (revdetails)Vyberte revize, které budou implicitně vybrány pro push při každém poklepu na tlačítko Push.

                                                                                                            • all: Implicitní. Vyslat všechny změny ve všech větvích.
                                                                                                            • branch: Vyslat všechny změny v aktuální větvi.
                                                                                                            • revision: Vyslat změny v aktuální větvi až po aktuální revizi.

                                                                                                            Implicitně: allVyberte nástrojovou lištu nebo menu, které má být měněnoVyberte poté, co TortoiseHg zobrazí výzvu k aktivaci záložky při aktualizaci k revizi, která má jednu nebo více záložek.

                                                                                                            • auto: Pokusit se záložky aktivovat automaticky při aktualizaci k revizi, která má jedinou záložku. Zobrazit výzvu při aktualizaci k revizi, která má více záložek.
                                                                                                            • prompt: Implicitní nastavení. Zobrazit výzvu při aktualizaci k revizi, která má jednu či více záložek.
                                                                                                            • never: Nikdy nezobrazovat žádnou výzvu pro aktivaci záložek.

                                                                                                            Implicitně: promptVyberte, kdy se obnoví (refresh) stavový výpis pracovního adresáře:
                                                                                                            - auto: [implicitní] nechť TortoiseHg rozhodne, kdy tento výpis obnovit.
                                                                                                            TortoiseHg provede obnovení pokaždé, když provede akci, která by mohla změnit pracovní adresář. Při této volbě se můžou přehlédnout všechny změny, provedené mimo kontrolu TortoiseHg;
                                                                                                            - always:stejně jako u 'default' a navíc se obnovení stavového výpisu provede vždy, když uživatel klepne na revizi "Pracovní adresář" nebo na ikonu "Commit" v manipulační či úkonové liště Verpánku;
                                                                                                            - alwayslocal: totéž jako "always" ale omezí vynucená obnovení na lokální repozitáře.
                                                                                                            Implicitně: autoUrčete, kdy váš příkaz bude spuštěnUrčete, zda chcete jediné okno Verpánku. Pokud toto nastavení nepovolíte, otevře se vám nový Verpánek pokaždé když v kontextovém menu zvolíte "Hg Verpánek". Implicitní nastavení: TrueVybraný pár changesetů není spřízněnSend &EmailPoslat changesety jako oprávky HgPoslat jen binární svazek, ne oprávkySending EmailServerID repozitáře na serveruZadejte předkyZadejte datum:Set LogicZadejte jméno uživatele:NastaveníKonfigurační soubor:Několik znaků by se ztratilo.Některé ikony jsou převzaty z projektů TortoiseSVN a TangoOtevřít seznam repozitářůShelfObsah šelfu smazánŠelf smazánShelf: %sTerminálShelve - přemístit lokální změny do oprávkyOdložit (shelve) změnyMají být nové karty otevřeny vedle stávajících? Při nastavení False se nové karty otevřou za poslední kartou. Implicitně: TrueUkázat &autoraOtevřít frontu oprávekZobrazit dialog AboutOtevřít konzoluZobrazit rodinnou liniiZobrazit funkciZobrazit ikonuUkázat problémyUkázat problémy...Ukázat záznamOtevřít Output LogZobrazit podrobnosti revizíZobrazit úkonovou plochuZobrazit úplnou cestu k repozitáři v titulku dialogového okna místo pouhého názvu kořenového adresáře. Implicitně je FalseUkázat všeZobrazit obsah repoitória, kromě složky .hgUkázat změny vůči prvnímu rodičiUkázat změny vůči druhému rodičiZobrazit soubory změněné tímto komitemUvádět plné jméno autora v okně protokolu. Není-li povoleno, zobrazí se ve zkrácené verzi, obvykle jenom jméno bez emailové adresy. Implicitně: FalseZobrazit nepřímou závislost revize na grafu při filtrování revsetem. Implicitně: True

                                                                                                            Poznámka: Počítání rodinné linky může být v některých případech pomalé. Tato možnost bude zřejmě odstraněna, podaří-li se vyřešit problém s výkonem.Orientace lišty (east, west, off) s oušky úkonových karet. Implicitně: offZobrazit tagy na počátku zprávy komitu.Zobrazit historii vybraného souboruUkázat ve které funkci je jednotlivá změna obsažena. Výchozí: FalseUkázat/Skrýt skryté changesetyPodepsat, i když je sigfile modifikován (-f/--force)Signatura byla připojenaExtenze simplelock není povolenaJediné okno VerpánkuVelikostVelikost (KB)Přeskočit závěrečnou potvrzovací stránku, po komitu zavřít.Přeskakuje se %s, nejde čístNěkteré z vybraných souborů jsou větší než 10 MB. Lépe využijete prostor na disku, přidáte-li je jako velké soubory, načež se ve vašem lokálním repozitáři budou ukládat pouze poslední úpravy každého souboru a starší úpravy budou dostupné na serveru. Chcete tyto soubory přidat jako velké (largefiles)?Třídit podle &jménaTřídit podle &cestyRoztřídit sadu podle klíčů. Implicitní řazení je stoupající; pro sestupné řazení zadejte klíč jako "-key".Třídit skupinu podle úplné cestyTřídit skupinu podle zkráceného jménaZdrojZdroj neexistuje...Zdroj:Seznam mezerami oddělených názvů větví a barev ve formátu branch:#XXXXXX. Mezery a dvojtečky v názvu větve musí být předznamenány zpětnými lomítky (\). Tímto způsobem lze předznamenat i jiné znaky, např. \u0040 bude dekódováno jako znak @ a \n jako linefeed. Implicitně: None (nevyplněno)Seznam mezerami oddělených operací shellu, které si přejete okamžitě použít bez součinnosti uživatele. Příkazy jsou "add remove revert forget". Implicitně: None (ponechte prázdné)Seznam mezerami oddělených tagů, které nebudou zobrazovány. Užitečný příklad: Zadání "qbase qparent qtip" způsobí skrytí standardních tagů, vkládaných extenzí Mercurialu Queues. Implicitně: None (nevyplněno)Určit název nového šelfuZadejte příkaz, který spustí váš oblíbený terminál. Pokud hodnota obsahuje řetězec %(reponame)s, bude název repozitáře dosazen za %(reponame)s. Podobně bude %(root)s reprezentovat úplnou cestu k repozitáři. (potřebný restart)
                                                                                                            Default, Windows: cmd.exe /K title %(reponame)s
                                                                                                            Default, OS X: not set
                                                                                                            Default, other: xterm -T "%(reponame)s"Určit šířku, vyplněnou oušky karet v různých oknech TortoiseHg. Implicitně: 8Určit cestu k GPG. Implicitně: gpgUrčit systém souborů, ve kterém TortoiseHg monitoruje změnyUrčete nástroj pro vizuální diff, tak jak je zapsán v sekci [merge-tools] vašich konfiguračních souborů Mercurialu. Pokud nezadáno, použije TortoiseHg výše vybraný slučovací nástroj. Pokud tato volba selže, použije první použitelný nástroj, který nalezne.Zadat textový editor, uvedený v sekci [editor-tools] konfiguračního souboru Mercurialu. Nebude-li zadáno, použije TortoiseHg první vhodný nástroj, který nalezne.Určit, která úkonová tlačítka se zobrazí v úkonové liště a v jakém pořadí.
                                                                                                            Zapište seznam názvů tlačítek. Přidejte separátory vložením "I" mezi názvy tlačítek.
                                                                                                            Platné názvy jsou: log commit sync grep a pbranch.
                                                                                                            Implicitně: log commit grep pbranch I syncUrčit preferovaný jakyk uživatelského rozhraní (protřebný restart)SpustitOtevřít novou větev oprávkyPočáteční revize:Spustit webový server pro tento repositářStatStatusStatus File List ToolbarStatus:ZastavitZastavit probíhající operaciZastavenoPřeškrtnoutOdtrhnout -%sOdtrhnout:PruhyOdejmutí záhlaví Mercurialu odstraní jméno uživatele a informaci o rodiči. Užitečné jen tehdy, když příjemce nepoužívá Mercurial (a nechce vidět záhlaví).StylPoložky submenu:Subjekt:Submitting p4 changelist...Subrepozitář '%s' má netriviální implicitní sync URL:

                                                                                                            %s

                                                                                                            Nahradit jej tímto URL?:

                                                                                                            %sSubrepozitář byl zařazen do souboru .hgsubSubrepozitář byl vytvořen a nastaven k počáteční revizi.Subrepozitář byl vytvořen k revizi:Subrepozitář může být poškozený nebo je nepřístupný.Subrepozitář byl odebrán z repozitáře.Stav subrepozitáře je:Stavy subrepozitářeSubrepozitář nebyl změněn.Subrepozitář již existujeSubrepozitář nenalezenSubrepozitář nebyl nalezen v pracovním adresáři.Subrepozitář byl odebrán z .hgsubSubversion:SuccessNásledovníci:Navrhovaná délka řádku zprávy komitu. Tato délka je označena svislou červenou čarou. Ctrl-E způsobí přetečení stávajícího odstavce na určenou délku řádku. Implicitně: 80Shrnutí (první řádek popisu)Délka souhrnného řádkuShrnutí:Prohodit zdroj a destinaciSynchronizovatSynchronizovat s přetaženým repozitářemSynchronizovat se vzdáleným repozitářemZvýraznění skladbyŠířka ouška kartyTag '%s' byl přidánTag '%s' byl přemístěnTag '%s' byl odebránTag -%sTag:Označeno tagem:Tagy:Archiv tar komprimovaný pomocí bzip2Archiv tar komprimovaný pomocí gzipArchivy tarVýběrové komboCílové skupinyCílové osobyCíl:Poloha úkonových karetPořadí úloh úkonové lištyHlavní panel ve WindowsDočasně odpojit nastavené HTTP proxyDočasné soubory se odstraní po ukončení tohoto dialoguUkončeno uživatelemTestovat tuto revizi a hlásit výsledky. (good/bad/skip)Překlad textu se nezdařilTextové soubory (*.txt)Popis účelu nebo obsahu repozitáře.Soubor .hgsub již obsahuje řádek:

                                                                                                            %sZměny z revize %s a všechny nesloučené rodičovské revize budou zavrženy. Jste si jist, že toto je to, co chcete?Příkaz "%s" nemohl být proveden.Příkaz "%s" se nezdařil (code %d).Příkaz jenž bude proeden. K provedení příkazu Mercurialu použijte "hg" (spíše než "hg.exe"). K sestavení svého příkazu můžete použít několik {VARIABLES}. Všeobecné proměnné: - {ROOT}: Cesta ke kořeni aktuálního repozitáře. - {REV} / {REVID}:Vybraná čísla revizí / ve stejném pořadí hexadecimální ID heše revizí, formátované jako výrazy revset. - {SELECTEDFILES}: Seznam souborů, vybraných uživatelem ze seznamu souborů s podrobnostmi revizí. - {FILES}: Seznam souborů, dotčených vybranými revizemi. - {ALLFILES}: Všechny soubory, sledované Mercurialem ve vybraných revizích. Proměnné pro výběr párů: - {REV_A} / {REVID_A}: první vybrané číslo revize / hexadecimální ID heše revize ve stejném pořadí. - {REV_B} / {REVID_B}: druhé vybrané číslo revize / hexadecimální ID heše revize ve stejném pořadí. Příkaz, který bude proveden. Příkaz k provedení funkce Pythonu nutno uvést slovem "python:". Implicitní ID repozitáře pro toto repo na serveru Review BoardDestinace "%s" již existuje jako soubor!Destinace "%s" již existuje jako složka!Destinace musí být uvnitř kořenového adresáře repozitáře.Adresář "%s" není prázdný! Chcete jej přepsat?Adresář, ve kterém bude příkaz proveden. Není-li zadáno, použije se kořen aktuálního repozitáře. Můžete použít tytéž {VARIABLES} jako v nastavení "Command". Textový editor, aktivovaný z příkazového řádku příkazem Mercurialu pro zápis víceřádkového vstupu od uživatele; zejména pro zápis komitové zprávy.Zpráva chybové výjimky byla:

                                                                                                            %s

                                                                                                            Soubor "%s" již existuje! Chcete jej přepsat?Byla vrácena tato chybová zpráva: "%s" Ověřte prosím platnost aplikace a cesty příkazuByla vrácena následující chybová zpráva: %sNázev hooku nesmí obsahovat mezery, tabulátory nebo znaky '='.Název hooku. Nesmí obsahovat mezery.Maximální velikost souboru (v KB) pro zobrazení změn v oknech pro changelog, status a commit. Nulová hodnota je pro nastavení bez limitu. Implicitní nastavení je 1024 (1MB)Pojmenovaná záložka nebo všechny záložky.Pojmenovaný tag nebo všechny tagy.Počet současně zobrazitelných changesetů v protokolu (changelog). Implicitně je 500Fáze nových komitů. Implicitně: draftVybraný příkaz je prázdnýVybraná složka:

                                                                                                            %s

                                                                                                            není uvnitř cílového repozitáře.

                                                                                                            Je to možné ale vřele se to nedoporučuje.
                                                                                                            Chcete-li přidat netriviální 'mapping' subrepozitáře, musíte ručně editovat soubor .hgsubVybraný repozitář:

                                                                                                            %s

                                                                                                            nejde otevřít!Vybraný repozitář:

                                                                                                            %s

                                                                                                            je již subrepozitářem:

                                                                                                            %s

                                                                                                            jako: "%s"Vybraná revize (%s) má záložku s názvem "%s".

                                                                                                            Chcete ji aktivovat?
                                                                                                            Můžete tuto výzvu nepovolit v Settings/Workbench/Activate BookmarksVybraná revize (%s) má %d záložky (záložek).

                                                                                                            Vyberte tu, kterou chcete aktivovat a klepněte OK.

                                                                                                            klepněte Cancel, nechcete-li aktivovat žádnou z nich.

                                                                                                            Můžete tuto výzvu nepovolit v Settings/Workbench/Activate Bookmarks

                                                                                                            Vybraná revize (rev #%d) nemůže být importována, protože není potomkem revize qparent (rev #%d)Vybraný subrepozitář:

                                                                                                            %s

                                                                                                            byl přidán do souboru .hgsub repozitáře:

                                                                                                            %s

                                                                                                            Pamatujte, že pro úspěšné přidání subrepa musíte ještě komitovat změny souboru .hgsub aby bylo přidání subrepozitáře potvrzeno.Vybraný subrepozitář byl odebrán ze souboru .hgsub

                                                                                                            Pamatujte si, že musíte tuto změnu .hgsub komitovat aby bylo odebrání subrepozitáře úplné!Vybraný subrepozitář nebyl v souboru .hgsub nalezen.

                                                                                                            Možná byl již odebrán?Sada všech rodičů pro všechny changesety v sadě.Zdroj musí být uvnitř kořenového adresáře repozitáře.Subrepozitář není čistý.Ikona nástroje. Můžete použít kteroukoli vestavěnou ikonu TortoiseHg zapsáním platného názvu ikony (např. clone, add, remove, sync, thg-logo, hg-update, etc). Můžete také zapsat absolutní cestu k souboru s ikonou.Popisek nástroje se zobrazí v kontextovém menu repowidgetu. Není-li žádný zadán, zobrazí se jako popisek název nástroje. Není-li zadána nápověda (tooltip), zobrazí se popisek.Název nástroje nesmí obsahovat mezery.Název nástroje nesmí obsahovat mezery.Nápověda, která se zobrazí u tlačítka nástroje v případě, že je tlačítko zařazeno v nástrojové liště verpánku.Pracovní adresář je již sloučen. Pokračovat nebo vyřadit existující sloučení.Existují oprávkové soubory pro %d revizí (%s) ve vybraném místě (%s). Je zapotřebí řešit konflikty při sloučeníŽádne synchronizační cesty nejsou nastaveny. Jejich nastavení provedete v kartě Synchronize.Nevyskytují se konfliktní sloučení souborů.Nejsou žádné změny souborů k zobrazeníNeexistují soubory, které mohly být přejmenoványNalézá se tam již soubor se stejným názvem.Existuje hook %s.%s. Chcete jej nahradit?Žádná návratová (rollback) transakce není k disposiciThg - TortoiseHg's GUI tools for Mercurial SCM (Hg) Jde patrně o binární soubor.Tato chyba se již nezobrazí, pokud nerestartujete VerpánekNástroj pro sloučeníNázevToSlučování ukončíte po komitu pracovního adresáře. Sloučení můžete zrušit aktualizací k jedné z rodičovských revizí.Destinace gráftuK destinaci přeskupeníTo:Zapnout zobrazení vyhledávací lišty textuZapnout filtrování neshodujících se changesetůZobrazení gráftového vztahu (přepínač)Přepnout na rodiče, který má být použit jako bázová revizeTolerovat nekonfliktní lokální změny (--keep-changes)Pro menu bylo vybráno příliš mnoho řádkůPopisek nástrojeSelhalo spuštění nástrojeNázev nástrojeNástrojeNástroje, zobrazené ve vybraném místěNápovědaPoložky hlavního menu:Synchronizace záložekZpráva o chybě v TortoiseHgTortoiseHg Command DialogDialogy TortoiseHg (verze %s), Mercurial (verze %s) TortoiseHg ErrorNový název šelfuServer překryvných ikon TortoiseHgVýzva TortoiseHgTortoiseHg SearchNastavení TortoiseHgTortoiseHg Shelve - %sTortoiseHg WorkbenchTortoiseHg vytvořil nový soubor .hgignore. Chcete jej zařadit mezi verzované soubory?Přesadit:Aktivovat průzkum (query) sady revizíZkuste obnovit (refresh) svůj repozitář.TypJazyk aplikaceURLURLError: %sNelze provést backoutNejde komprimovat historiiNejde vytvořit soubor Mercurial.iniNejde vytvořit konfigurační souborNejde smazat %d soubor či složkaNejde smazat %d soubory či složkyNejde smazat %d souborů či složekNelze určit nevyřízené changesetyNejde určit revizi pracovní kopie Nelze nalézt changesetNelze sloučitNejde sloučit porce (chunks)Nešlo analyzovat nevyřízený výstup p4Soubor nejde čístNejde přečíst status repozitářeNelze odebratNejde odebrat URLNejde odebrat soubor %s, souhlas odepřenNejde uložit push po komituNejde uložit URLNejde uložit autentizaciSeznam 'auto include' nejde uložitNejde uložit post-pull operaciNejde uložit odbočení do subrepozitáře.Nejde uložit jméno uživateleNejde ukázat soubory subrepozitářeNejde spustit následující příkaz:Vstup nelze přeložit do lokálního kódování.Zpráva nejde přeložit do lokálního kódování. Zkuste nastavit proměnnou prostředí HGENCODING. Nepřeložitelné znaky zaměňte za "?"? Nejde aktualizovat název repozitářeNejde zapsat soubor .hgignoreNejde psát konfigurační souborNejde psát diffový souborDo souboru nejde psátZrušit aplikaci všech oprávekZrušit aplikaci jedné oprávkyRozbalitOdznačitZrušit označení všech souborůOdznačit a považovat všechny verzované soubory jako zdroje kopiíNekomitované sloučení - vyberte prosím rodičovskou reviziNekomprimovaný archiv tarNekomprimovaný archiv zipPodtrhnoutZrušit zavření ostatních karetZrušit zavření kartyZrušit poslední komit?Zrušit poslední transakci?Zrušit poslední komit (%d) a zachovat změny souboru?Neznámá revize!Odemčení %s selhalo, zkuste znovaOdemčení %s bylo úspěšnéOdemčení %sNeřešené konfliktyNevyřešené konflikty zůstávaji. Jste si jist?Neuložené změny budou ztraceny. Chcete je znovu načíst?Nepodporovaný typ repozitáře (%s)NeverzovánoAktualizovat (update)Aktualizovat - %sUpdate, pull, potom opět updateAktualizovat ikonyUpdate ReviewAktualizovat ikony pro tento repositářAktualizovat příchozíAktualizujte nebo vytvořte alias cesty '%s' pro všechny subrepozitáře s použitím tohoto URL, doplněného o jejich lokální relativní cestyAktualizovat cesty subrepozitářůAktualizovat pole pro tento existující požadavekAktualizovat k:Aktualizovat pracovní adresářAktualizovat pracovní adresář k označené reviziAktualizovat...UpdateOrRebase - provést pull, potom zkusit update nebo rebaseUpdateOrRebase -použít extenzi rebase (rebase není aktivní!)Aktualizace seznamu repozitářeDoporučuje se přejít na nejnovější verzi TortoiseHg.Použít anglický komentář backoutuPoužijte anglický komentář komituPoužít alternativní zobrazení grafu pro velké repozitáře. Implicitně: False

                                                                                                            Poznámka: Toto nastavení způsobí zabarvení spojovacích čar (edges) v závislosti na informaci o větvi a nezobrazí spojovací čáry gráftů (i když jsou požadovány).Použít kompaktní zobrazeníPoužít aktuální datumPoužijte vlastní komentář komitu:Použít rozšířený (git) oprávkový formátPoužít rozšířený git formát záhlaví diffu. Implicitně je FalsePoužít velké souboryPoužít jméno uživatele místo jména komitenta gráftuOptimalizované zobrazení grafuPoužít server proxyPoužít protokol přejímky (pull) ke kopírování metadatUživatelOvěření uživateleAutentizační data uživatele by měla být spojena se jménem hostitele s použitím bezpečnostního dialogu.Jméno uživatele pro ověření přístupu na review boardUživatel:Jméno uživateleJméno uživatele pro připojení k mailovému serveruOvěřit revizi backoutu a přesvědčit se, že pracovní adresář je čistý.Ověřte cíle sloučení a ujistěte se, že pracovní adresář je čistý.Ověřit pomocí certifikátů Certificate Authority (nejlepší)Ověřit pomocí uloženého 'fingerprintu' hostitele (dobré)Zobrazit soubor vZobrazit o&statníZobrazit změnu jako unifikovaný diffZobrazit historii změn v repositářiZobrazit historii změn vybraných souborůZobrazit změnu v kontextu souboruZobrazit změny oproti stávající (revizi) v externím diffovém prohlížečiProhlédnout změny nástrojem GUIZobrazit stav souboru při této reviziZobrazit změny souboru v externím diffovém prohlížečiZobrazit nastavení repozitářeVizuální diff k rodičiNástroj Visual DiffVisual Diff...Vizuální diffy - Textový editorDiff mezi řešeným souborem a prvním rodičemDiff mezi řešeným souborem a druhým rodičemZobrazit diff k rodiči...Zobrazení diffů není podporovány pro soubory v subrepozitářích. Nebudou zobrazeny.Trojný diffVarováníVarování pro všechny aplikace Tortoise: po změně je požadováno odhlášeníByl přejmenován zWebový serverWebconfCo chcete učinit? Při komitování požadovat aby byl určen odkaz na problém (issue). Je-li povoleno, musí nastavený regex v 'Issue Regex' nalézt shodu ve zprávě komitu.Je-li povoleno, automaticky při spuštění příkazu ukázat Output Log. Implicitně: False.Při spuštění z příkazového řádku rozdělit proces na pozadí pro zobrazení dialogů v grafickém okně. Toto nastavení je ignovoráno, běží-li TortoiseHg jako aplikační svazek OSX. Implicitně: TrueNastaveno-li na 'auto', použije mq automaticky oprávky git, je-li požadováno zabránit ztrátě změn při manipulaci se soubory (file modes, copy records or binary files). Nastaveno-li na 'keep', použije mq konfiguraci sekce [diff], přičemž při qrefresh zachová existující oprávky (patches). Nastaveno-li 'yes' nebo 'no', mq potlačí sekci [diff] a vždy generuje gitové nebo regulerní oprávky, přičemž je ve druhém případě možná ztráta dat. Implicitně: autoKdy požadovat po uživateli potvrzení aktualizace lokálního "projrc" konfiguračního souboru, jestliže se vzdálený soubor 'projrc' změní. Možné hodnoty jsou:

                                                                                                            • always: [default] Vždy požádat o potvrzení před aktualizací lokálního souboru .hg/projrc.
                                                                                                            • first: Zobrazit výzvu k potvrzení při klonování repozitáře nebo při prvním výskytu vzdáleného souboru 'projrc'.
                                                                                                            • never: Aktualizovat lokální soubor .hg/projrc automaticky bez potvrzení uživatelem.
                                                                                                            Zda jsou v pracovním adresáři povolena subrepa Gitu. Implicitně: False

                                                                                                            Viz bezpečností poznámka před povolením subrepozitářů Git.Zda jsou v pracovním adresáři povolena subrepa Mercuriálu. Implicitně: TrueZda jsou v pracovním adresáři povolena subrepa Subversion. Implicitně: False

                                                                                                            Viz bezpečností poznámka před povolením subrepozitářů Subversion.Zda povolit vzdálený push do repozitáře. Není-li zadáno, push není dovolen. Při zadání hodnolty "*" může push provést každý vzdálený uživatel, i neověřený. Jinak musí být každý vzdálený uživatel uveden v seznamu oprávněných osob. Obsah seznamu allow_ push je zkoumán po seznamu deny_push.Zda odmítnout push do repozitáře. Není-li zadáno, push není odepřen. Při zadání hodnoty "*" jsou odmítnuti všichni vzdálení uživatelé. Jinak jsou odmítnuti neověření uživatelé a ti ověření, kteří jsou uvedeni v tomto seznamu. Obsah seznamu deny_push je zkoumán před seznamem allow_push.Zda požadovat, aby byl příchozí push transportován přes SSL jako prevence proti čenichání po heslu.Který styl mapy šablon použítPracovat s frontou oprávek (--mq)VerpánekSloupce přehledu revizíNástrojová lišta uživatelePracovní kopiePracovní adresářPracovní adresář (sloučený)Pracovní adresářPracovní adresář není čistý! Zobrazit změny...Status pracovního adresářeNa konci znovu od začátkuZapsat svazek (bundle)Zapsat diffový souborZapište popis serie oprávek (bundle)Pokoušíte se o zpětný posun fáze v revizi %d, od "%s" k "%s". Avšak, fáze "%s" je nižší úroveň než "%s". Zpětný posun fáze se nedoporučuje. Úprava revize, kterou jste již poslal (push) na server může například vést k vytvoření vícerých čel. Buďte prosím opatrný!Můžete změnit sadu ikon z TortoiseSVN's SettingsMůžete uvolnit pouze své vlastní zámkyNaše stránky můžete navštívit zdeNemůžete sloučit revizi se sebou samouMáte nastavené autentizační info pro tohoto hostitele a uvnitř tohoto URL. Odstranit autentizační info z URL?Označil jste všechny odmítnuté porce oprávky (patch chunks) jako vyřešené i když jste neprovedl žádnou změnu souboru v editovacím panelu. To patrně znamená, že se do souboru nedostal žádný kód z odmítnutých porcí oprávky. Jste si jist, že chcete ponechat soubor tak jak je a všechny odmítnuté porce oprávky považovat za řešené? Může se například stát, že se smažou z shelfu, což by znamenalo, že o ně navždy přijdete! Poklepem Yes přijmete soubor tak jak je, případně poklepem No můžete pokračovat v řešení odmítnutých porcí oprávky.Máte vybráno více změn jmen pro cílový soubor: %s. Ruší se!Vybral jste jeden nebo více upravovaných souborů. Implicitně tyto soubory nejsou odebírány. Co chcete udělat?Patrně potřebujete tuto aplikaci obnovit (refresh)Můžete pokračovat nebo začít vytvářet gráftMůžete pokračovat v komprimaciMůžete pokračovat v provádění gráftuMůžete pokračovat v přeskupování (rebase)Musíte uvést název oprávkyMusíte Mercurialu prokázat svou identituNutno uvést revize, které mají být gráftoványMusíte zadat 'source' a 'dest' argumentyMusíte zadat cestu k souboruMusíte zadat příkaz.Musíte zadat název nástroje.Nutno zadat platný typ hooku.Vaše verze TortoiseHg je aktuální.Vaše stávající pracovní revize (%d) bude tímto krokem zpět (rollback) odstraněna a změny nebudou komitovány. Pokračovat?Archiv zip komprimovaný pomocí deflateKomprimované archivy[WARNING] Neúplný změněný subrepozitář. Aktualizujte k této revizi za účelem jeho znovunačtení (pull).[WARNING] Neúplný subrepozitář. Aktualizujte k této revizi za účelem jeho znovunačtení (pull).[WARNING] Neplatné ID revize subrepozitáře: %s [WARNING] Chybějící změněný subrepozitář. Aktualizujte k této revizi za účelem jeho klonování.[WARNING] Chybějící subrepozitář. Aktualizujte k této revizi za účelem jeho klonování.[příkaz byl úspěšně proveden %s][příkaz přerušen %s][příkaz vrátil kód %d %%s][příkaz ukončen uživatelem %s][neexistující][originál][pracovní kopie]revize k odesláníodesílaná revizezrušit: zrušit: %s zrušit: %s! Commitke zprávám přidat výstup diffstatpřidanývšechny revize konvertované ze subversionvždy dělit proces GUIpřipojitzákladní příkazy: tělo (body)větev: soubor svazku pro náhlednelze číst soubor "%s". Ignorováno. aplikované oprávky nelze přemístitnelze přemístit do aplikovaných opráveknelze určit jak -k/--query, tak jména souborůchangeset %d:%schangeset který má být zobrazen v diff nástrojichangeset, který představuje konvertovanou revizi z svnchangeset: %schangeset: %s (v subrepozitáři nenalezen)čistýklonovat jenom určenou větevStáříAutorVětevZměnyPřevedeno zPopisNázev souboruGrafPoslední tagyLocal TimeNodeFázeRevizeTagyUTC Timecommand parse error: %sCommitvýsledek chybného příkazu: %rdefaultdiffstatvyřadit nekomitované změny (bez zálohy)zobrazit nápovědu a ukončit programnezálohovat odtržené revizenedělit (fork) proces GUIpři odtrhování (strip) neměnit pracovní kopiineověřovat certifikát serveru (ignoring web.cacerts config)umožnit dodatečný výstupumožnit ladící výstupeol je nekompatibilní s win32textchyba při provádění příkazu exec mode je zapnutexec mode je vypnutnejde zakódovat příkaz: %snejde zakódovat vstup: %snepodařilo se spustit příkaz pole pro počáteční zaměřenísoubor byl smazán, (refresh)soubor byl změněn, (refresh)souboryAllNonefilling (%d)filtrglobální možnosti:grep: %s grep: neplatný vzor shody: %s hggit v paketu s thghgsubversion je nekompatibilní s perfarcehgsubversion v paketu s thgnávod:historiepři hledání ignorovat velikost znakůignorovanýimportovat do fronty oprávek (MQ)v budoucnostizahrnout určený changesetpočáteční vyhledávací vzorecinlineinotify není v této platformě podporovánoneplatná zpráva "hello": %rneplatné argumentyneplatné číslo řádku: %sneplatné určení pozice oprávky (patch)zachovat původní názvy větvízachovat původní changesetyspustit grafický diff nástrojseznam příkazů: lokálnílsprof není dostupné - instalujte z http://codespeak.net/svn/user/arigo/hack/misc/lsprof/učinit signaturu lokálníučinit tag lokálnímpo anulování (backout) sloučit s předchozím stavem pracovního adresáře (dirstate)metodapostrádánýupravenýmusí být určen 'type' ve stylumusí to být určitý repositářnázev konfiguračního souboru hgweb (DEPRECATED)název konfiguračního souboru pro hgweb (obsluhuje více než jeden repozitář)vyžaduje sloučení %i čel vyžaduje sloučení s %s vyžaduje sloučení s %s (až %s) vyžaduje aktualizaci diffové báze k tipu %s žádný příkaz nebyl určenžádné příkazy nebyly určeny no guardsžádné shody nenalezeny: %sžádné odchozí changesetyžádné odchozí changesety v aktuální větvi (%s) / %d celkemžádné odchozí changesety až k aktuální revizi (#%d) / %d celkemžádné odchozí changesety až k revizi #%d / %d celkemžádný repozitář v žádná revize nebyla určenaoznámit shell pro dané cestynynínulová revize (to jest odebrat soubor(y))dovoleno jen jedno jméno nového bookmarkuotevřte nové okno verpánkuotevřít okno pro synchronizaci bookmarkůotevřít na řádkuvolbu --config nelze zkracovat!možnosti: vybrat rodiče při anulaci sloučeníheslo: perfarce je nekompatibilní s hgsubversionprováděcí profil příkazu printvytisknout licenciproces nečekaně ukončen kódem %dčíst seznam souborů ze souborunačíst seznam souborů ze souboru s kódováním utf-8přeskupit od určeného changesetupřeskupit k určenému changesetuzapsat datumový kód jako datum komituzapsat uživatele jako komitentaodebrat tagodebrat status cacheodebrat pracovní adresářodebranýnahradit existující tagrepozitář %s nenalezenkořenový adresář repozitáře nebo symbolický název cestyvyžaduje jediné jméno souborurev: %d (%s)extenze reviewboard není povolenarevizeprvní rodič revize %d (revize %d)druhý rodič revize %d (revize %d)revize pro anotacirevize pro archivacirevize, k níž anulovat (backout)zobrazovaná revizeslučovaná revizeodtrhované revizetagem označovaná revizeaktualizovaná revizevybíraná revize, tag nebo větevrevizí %d:%s až %d:%srevize pro gráftovánírevize, které mají být redukovány (pruned)revize, které mají být zobrazeny v diff nástrojihledání daného textu nebo revsetuvyberte určenou revizivybrané souboryposlat oprávky jako přílohyposlat oprávky jako vkládané přílohyposlat oprávky jako část těla emailuzadat/přepsat konfigurační nastavení (use 'section.name=value')zobrazit soubory bez změnzobrazit ignorované souboryzobrazit obsah status cache (neaktualizovat)porovnání revize vedle revizepodepsat, i když je sigfile modifikovánspustit debuggerCommitAkce MQstatuspotlačit výstuppříkaz 'sync' již probíháCommitVětev oprávkyPodrobnosti revizeHledatSynchronizovatklon bude obsahovat prázdnou pracovní kopii (pouze repozitář)id podpisového klíčerevize pro zobrazeníthg %s: %s thg aboutthg add [FILE]...thg annotatethg archivethg backout [OPTION]... [[-r] REV]thg bisectthg commit [OPTIONS] [FILE]...thg drag_copy SOURCE... DESTthg drag_move SOURCE... DESTthg email [REVS]thg forget [FILE]...thg grepthg guessthg help [COMMAND]thg hgignore [FILE]thg import [OPTION] [SOURCE]...thg init [DEST]thg log [OPTIONS] [FILE]thg manifest [-r REV] [FILE]thg merge [[-r] REV]thg purgethg rejects [FILE]thg remove [FILE]...thg repoconfigthg resolvethg revert [FILE]...thg serve [--web-conf FILE]thg shellconfigthg shelvethg status [OPTIONS] [FILE]thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]thg update [-C] [[-r] REV]thg userconfigthg version [OPTION]thg: %s thg: příkaz '%s' je víceznačný: %s thg: neznámý příkaz '%s' čas vypršel při čekání na zprávučas vypršel při čtení: %r...nečekaná odezva na požadovaném kanálu %rneznámýpro přemístění uveden neznámý soupis změn (patch)neznámá revize!nepoznaný profilující formát '%s' - Ignorováno neuznaná odezva: %snepodporované URL: %saktualizovat všechny repozitáře ve stávajícím adresářipoužijte "thg -v help %s" pro zobrazení globálních možnostípoužijte "thg -v help%s" pro zobrazení aliasů a globálních možnostípoužijte "thg help" pro úplný seznam příkazůpoužijte "thg help" pro úplný seznam příkazů nebo "thg -v" pro detalypoužít jako zprávu komitupro označení revize použijte jen jeden způsobpoužít protokol 'pull' ke kopírování metadatpoužít nekomprimovaný přenos (fast over LAN)verze %sčekejte jednu vteřinubude uzavřenowin32ill: nejde vytvořit okno pro zprávywin32ill: přerušeno se zastavením "message loop" win32ill: nepodporovaná platforma: %s win32text je nekompatibilní s eolCommitplus Mercurial-%s, Python-%s, PyQt-%s, Qt-%spracovní změnyClean././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/da/0000755000000000000000000000000014742203610014137 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1234145 tortoisehg-6.9/locale/da/LC_MESSAGES/0000755000000000000000000000000014742203610015724 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033566.0 tortoisehg-6.9/locale/da/LC_MESSAGES/tortoisehg.mo0000644000000000000000000021770714742203536020475 0ustar00rootroot??&? ????@@ /@P@ f@p@ @$@)@@AWAnAAAAAAABB#B 'B 5BBBQBkBBBB#B B BC'CRORbRkRqRRRRDRR?SDSiS_=TCT=T1U QU_U fUUUU U U&U"V$V -V';V+cVV#VVV WW-WX"YX|X X.XXY YYYYYYY Z++Z%WZ/}ZZZZZ Z9Z&[-[B[Y[q[[[[[[[ \ \ \%\ 7\D\`\z\ \\\\\*\ ]+]$K]-p]-]]]'^)^A9^!{^M^2^'_F_@e_1____ ` ` `!)` K`U`q```C``aa+a1aDa Waaa4faa aaaa a a bb;bZbXxbbb bb ccc6c=cMcUcZc`c pc{cdd *d7dRdgd mdxd ddd dYd2eDeKe/Qe ee ee Of&YfffIffBfc:ggMggg hh 1h=hPh Yheh {hhh hhhhi i!,i;Ni6iiii j jj-jAjVj^jcjjjjj j(jj& k10kbk k k k k kGkl l)l@l_l#{l)lll-lm!m5m,Jmwmmmmmm@m;;nwn nn nn nnn nnoo0oBoSogozoo!ooooo# p/pGp^p~ppp"pppq(qq+ r7rIrLr,hr"rrr rsI%skos;t<uTu\ueumu vu uuuu,u uu uu vv1v Gv:Svwww!w www!x0xHx:dx*x!xx.x y 2y?y Ry ^yjy}y!yyy yyyyyz*z=zCzUzhzzzzzzzz zzzzz{$#{H{O{!W{y{{{{!{{{{|*| 1| =|J|]|v|||$| |||}}0}L}M\}}}}}+}&~,~ ?~J~e~}~ ~~~~ ~ ~ ~ ~ ~  %+Q jv  " 5G\z.ۀ & E S ]kt@āށ   *4yD%ǂ5#1;m4̈́?҆؆$&+2 7BIQ )1J | #"݈  "!A cpx67ʉ<sR.Ɗ0>&;ecJ("׌!4BQǎ!ˎ'8Azď֏  ".2%Dj&ɐِ +2 ^""ّ2"Un4  ! ! . <*]  5#4O3o"Ô,C'@k!%Ε- ")C'm і < 4?r͘\@ ǚ ݚ'0UXFʜ+#=a'#ޝ$! F S#^ڞ  ,LRjq!ş  6PdwƠ"ߠ8Ts  ȡ*6>])d̢YҢ,,Y`h!q*>ۣ3!H'j Ȥ *I iw'ץ/(Xl"ܦ&1&Xg}  ɧ"է "?\m Ҩ8 MWj  ʩ+-<Q'Z-+61,hD)ګ" ' 2S"b,Ƭ֬'ܮ-F$_ #!˯%* >JRYͰ$5K Zh l z  ӱ "%,Ri Dz  %3;B IUgow~ dzγ׳6 <G V`e&i"ȴ"<_u#Ƶ"-/P=-#), 3AI] s}!!ڷG8? x# ǸӸ  }*Ϲ + 6 D>PD̺92K~2̻ @3t4 # ?!`*%   * ʿ׿ PY.a ;5 K U8c   : I S^qy } L: }Fvk;-,7 : G Qr ( &+66b %<N c +:K\w& ' *G-_(1 ?(hm% ; GS X bo  :(%c%(<:Pb"w;&Y1q( <$*Ogv ~% "% 3RX!s  7$1 Vax >"\v~   $ (,5M_pX 0GY jw!#1 UcKiR_"`  '9H al{  #*NVHm;0 @L_w  )2 P3q  HZ _*i# ."<3Cw|"/Jb0gE   %.B T `m) !'5]%r- )+U"h0 5 ,$Qd$g+!C8|*)0Z_ n{  5 I@S( &EP^0"2;M] r  #")Lcvz  +3FZn v  +@ G R]l( %@WO ,2C\k     &09 I*V  $")8 IUg* ' ? MY kyC ' 3@Id\"=*6D+{)@8 Hipw |>CU[z)  "> MZbk  :Ic:vv2(4[43B9 !83Hl $6M9g( ?MRdh0y 5')D[{(1%5#Uy 1@&gx !6 (5 LAW!5.dt. IO3&7' +( +T       E  0 c; o g +w       %7<#tG/( 9Z v1!  % 1 <]"t!     & /9R[p!w&! $,JSf$#%Dcint ",  3.>m^*DKS[x.@ 20S!  ,'#Tx(%3Ym|# ! &0*[ jt{      /K\p  3=Oc r~ , /'8`{*$.61IM{.+ $/I$Z + Caught keyboard interrupt, aborting. aliases: %s (default: %s) (is a symlink) (is unversioned) (renamed from %s) (was added) (was added, now missing) (was deleted) filtered"%s" removed from path history"%s" removed from search history### host certificate fingerprint ###### regular expression search pattern ###% Match%d day%d days%d files have merge conflicts that must be resolved%d hour%d hours%d matches found%d minute%d minutes%d month%d months%d outgoing changesets%d pending changelists found%d second%d seconds%d week%d weeks%d year%d years%p%%s (hint: %s)%s (pending)%s (submitted)%s - TortoiseHg Workbench%s - TortoiseHg Workbench - %s%s - branch operation%s - recover repository%s : %s%s and %s have identical contents %s patches%s project settings (.hg/projrc)%s repository settings%s's global settings&About TortoiseHg&Add&Archive&Cancel&Clear&Clone&Close&Close Repository&Commit to current branch&Copy Patch&Delete Patches...&Diff Other to Ancestor&Discard&Edit File&Exit&False&File&Finish Patch&Graft to Local...&Help&License&Local&Merge&Move&New Repository...&No&No (discard changes)&Open Repository...&Other&Refresh&Refresh Repository List&Remove&Repository&Run&Save&Settings&Shelve&Skip this Revision&True&Unapply Patch&Unspecified&Update&View&Yes(is a changed and dirty sub-repository)(is a changed sub-repository)(is a dirty sub-repository)(is a new and dirty sub-repository)(is a new sub-repository)(is a removed sub-repository)(is an unchanged sub-repository)(no help text available)(same as parent)*: not used by TortoiseHg3-way dir diffCandidate MatchesDifferences from Source to DestIgnore FilterUnrevisioned Files= Working Directory Parent =A bookmark named "%s" already existsA new version of TortoiseHg (%s) is ready for download!A shelf file of that name already existsA shelf name cannot contain %sAbortAborted p4pendingAboutAbout &QtAbout TortoiseHgAcceptAccept All MatchesAccept Selected MatchesActivate:AddAdd Files...Add a repository to this groupAdd files to version controlAdd ignore filter...Add or remove patches must be merged in the working directoryAdd selected untracked files?AddedAdded tag %s for changeset %sAfter Pull OperationAge:AliasAll HistoryAll files (*)All files in this revisionAllow PushAlways merge (when possible)An interrupted graft operation has been found. You cannot perform a different graft operation unless you abort the interrupted graft operation first.App&ly FormatAppendApplied patchesApplied patches or qparentApply all patchesApply one patchApply only this patchApply patchArchive - %sArchive FormatsArchive types:Are you sure you want to delete these files and/or folders?Author ColoringAuto Commit ListAuto Exclude ListAutomatically advance to next page when backout and merge are complete.Automatically advance to next page when merge is complete.Automatically resolve merge conflicts where possibleBackBacked out changeset: Backing out a parent revision is a single step operationBacking out and committing...Backout - %sBackout changesetBackout current patch branchBackout revisionBackport part of a changeset to a dependencyBackwards phase change requestedBccBefore backout, you must commit, shelve to patch, or discard changes.Before graft, you must commit, shelve to patch, or discard changes.Bisect - %sBookmark '%s' does not existBookmark '%s' has been addedBookmark '%s' has been movedBookmark '%s' has been removedBookmark '%s' has been renamed to '%s'Bookmark - %sBookmark named "%s" does not existBookmark:BranchBranch ColorsBranch:Branch: Browse Directory...Browse...Bundles store complete changesets in binary form. Upstream users can pull from them. This is the safest way to send changes to recipient Mercurial users.Bypass ListBzip2 tar archivesC&onfigure FormatCLI EditorCan't change settings without iniparse package - view is readonly.CancelCannot backout change on a different branchCannot open repositoryCannot start a new searchCcCc:Change &Phase toChanges have been moved, you must now commitChanges take effect on next commitChangeset:ChangesetsChangesets that are ancestors of a changeset in set.CheckingChecking for updates...Checking...Child:Chunks selected: %d / %dClea&r LogCleanClearClear contents of shelf file %s?Clear the current shelf fileClon&e Repository...Clone - %sClone RepositoryClone to revision:Clone...CloseClose %s branchClose After CommitClose Branch: Close current branchClose the commit tool after every successful commit. Default: FalseClose:Comma separated list of archive formats allowed for downloadingComma separated list of branch names that should be ignored when building a list of branch names for a repository. Default: None (leave blank)Comma separated list of exclusion file patterns. Exclusion patterns are applied after inclusion patterns.Comma separated list of inclusion file patterns. By default, the entire repository is searched.Comma-separated list of blind carbon copy recipient email addressesComma-separated list of carbon copy recipient email addressesComma-separated list of recipient email addressesCommand ErrorCommitCommit backout and merge resultsCommit changesCommit changes in repositoryCommit messageCommit...Committing...Compare revisions of the selected fileCompletely remove file from patch?CompressCompress - %sCompress changesets up to and includingCompress is complete, old history untouchedConfigure Explorer extensionConfigure guards for selected patchConfigure repository settingsConfigure user wide settingsConfirm AddConfirm Branch ChangeConfirm DeleteConfirm DiscardConfirm Discard ChangesConfirm Discard MessageConfirm ExitConfirm New BranchConfirm OverwriteConfirm Push to remote RepositoryConfirm ReloadConfirm RemoveConfirm RevertConfirm StripConfirm UndoConfirm UpdateConfirm file deletionsConfirm patch queue switchConsider aborting the graft first.ContactContext MenuContinue or abort interrupted graft operation?Controls draft phase behavior when working as a server. When true, pushed changesets are set to public in both client and server and pulled or cloned changesets are set to public in the client. Default: TrueCopyCopy messageCreateCreate &BranchCreate Patch QueueCreate Repository HereCreate a new patchCreate a new repositoryCreate clone here from sourceCreate diff with all changes on this branchCreate diff with all outgoing changesCreate new named branch "%s" with this commit? Culprit found.Current local revisionDateDate:Dead BranchesDefines the regex to match when picking up issue numbers.DeleteDelete empty foldersDelete selected chunksDelete selected patchesDelete shelf file %s?Delete the current shelf fileDeleted %d filesDeleted %d files and %d foldersDeleted*Deleting trash folder...Deletion failuresDeny PushDescriptionDestDestination path:Destination:Detect Copies/Renames in %sDetect renames and copiesDiff &Local to AncestorDiff ToolbarDir diff to p1Dir diff to p2Directory diffDirectory of filesDiscard - discard local changes, no backupDiscard current backout message?Discard current commit message?Discard local changes (revert --all)Discard local changes, no backup (-C/--clean)Discard local changes, no backup (-f/--force)Display closed branchesDisplay only active branchesDisplaying %(count)d of %(total)d itemsDnD SynchronizeDo not include modification dates in diff headers. Default: FalseDo not save backup files (*.orig)Do not show menu items on unversioned folders (use shift + click to override)Do not strip paths (-p0), required for SVN patchesDo not update the new working directoryDo not verify host certificateDo you really want to force a backwards phase transition?Do you really want to activate patch queue '%s' ?Do you want to exit?Duplicate NameEditEdit FileEdit Ignore FilterEdit LocalEdit current file in working copyEdit fileEdit patch dependency graphEdit patched file and rejects?Edit repository ignore filterEmailEmail address to use in the "From" header and for the SMTP envelopeEnabled Overlay HandlersEncodingEnglish MessagesErrorError encountered.Error writing fileExcludes:ExitExiting with an unfinished graft is not recommended.Explorer Extension SettingsExtensionsFailed to open repositoryFailed!FileFile HistoryFile StatusFile Status:File is binaryFile is larger than the specified max size. maxdiff = %s KBFile or diffs not displayed: File or diffs not displayed: File is larger than the specified max size. maxdiff = %s KBFilenameFilesFind RenamesFind copy and/or rename sourcesFinishedFlag:Follow copies and renamesForgetForget Files...ForwardFromFrom:Full Path TitleGit FormatGit patches can describe binary files, copies, and permission changes, but recipients may not be able to use them if they are not using git or Mercurial.GlobGlobal SettingsGo &to PatchGoto ancestor of %s and %sGoto common ancestorGraftGraft - %sGraft Selected to local...Graft abortedGraft changesetGraft changeset #%d of %dGraft failedGraft generated merge conflicts that must be resolvedGraft is completeGraft:GraphGreatest common ancestor of the two changesets.Guess RenamesGzip tar archivesHg command:Hg patches (as generated by export command) are compatible with most patch programs. They include a header which contains the most important changeset metadata.Hide TagsHide context menu outside repositoriesHighlight IconHostHost name and (optional) port of proxy server, for example "myproxy:8000"Host name of mail serverHostname the sender can use to identify itself to the mail server.How many lines a "zebra stripe" should span in multiline output. Default is 1; set to 0 to disable.IconsIf you still have trouble, please file a bug report.Ignore Ignore Blank LinesIgnore WS AmountIgnore White SpaceIgnore caseIgnore filter - %sIgnored*Import - %sImport from ClipboardIn-Reply-To:Include all ancestorsInclude patch queueIncludes:Iniparse must be installed.Iniparse package not foundInitial revisionInsufficient access rights.InterruptedInterrupted graft operation foundInvalid Settings - Please provide your ReviewBoard usernameInvalid Settings - The ReviewBoard server is not setupInvalid date formatInvalid glob expressionInvalid regexp expressionIssue LinkIssue RegexIssue TrackingKnown bad revision:Known good revision:LicenseLineList updated files (--verbose)Local HostnameLocal disks onlyLocked*Log Batch SizeLong SummaryMake repo compatible with Mercurial <1.7Mandatory Issue ReferenceManually resolve rejected patch chunksMark this chunk as resolved, goto next unresolvedMark this chunk as unresolvedMatch TextMax ChangesMax Diff SizeMax FilesMenu BehaviorMercurial command is still running. Are you sure you want to terminate?MergeMerge - %sMerge - allow to merge with local changesMerge all pending dependenciesMerge from (other revision)Merge rejected patch chunks into %sMerge revision not specified or not foundMerge to (working directory)MessageMessage identifier to reply to, for threadingMoveMove all files leftMove all files rightMove applied patches into repository historyMove selected chunks leftMove selected chunks rightMove selected file leftMove selected file rightMultiple sources chosenNameName or email address of the person in charge of the repository.Named branch "%s" already exists, last used in revision %d New &WorkbenchNew Branch: New Commit PhaseNew Name:New RepositoryNew ShelfNew patch queue nameNew shelf createdNext diffNo DatesNo appropriate filesNo backup (-n/--nobackup)No branch changesNo chunks remainNo deletable chunksNo diff tool foundNo file changesNo files checkedNo files found for this operationNo files selectedNo ignored files foundNo items to displayNo matches foundNo merge conflicts, ready to commitNo operation to performNo outgoing changesetsNo pending Perforce changelistsNo repository foundNo unknown files foundNo username configuredNo visual diff tools were detectedNo visual editor configuredNone - simply pull changesetsNormalize file line endings during and after patch to lf or crlf. Strict does no normalization. Auto does per-file detection, and is the recommended setting. Default: strictNot a Mercurial subrepo, not previewableNot a head revision!Not a head, backout will create a new head!Nothing to importOKOnly consider deleted filesOnly files modified/created in this revisionOnly files modified/created since:Open S&ubrepositoryOpen a new named branchOpen the repository in a new tabOpen the selected subrepositoryOptional. Comma-separated list of host names that should bypass the proxyOptional. Method to use to send email messages. If value is "smtp" (default), use SMTP (configured below). Otherwise, use as name of program to run that acts like sendmail (takes "-f" option for sender, list of recipients on command line, message on stdin). Normally, setting this to "sendmail" or "/usr/sbin/sendmail" is enough to use sendmail to send messages.Optional. Password to authenticate with at the proxy serverOptional. User name to authenticate with at the proxy serverOptionsOptions:Or use:OverlaysParent 1:Parent 2:Parent:ParentsPasswordPassword to authenticate to mail server withPassword:Paste &FilenamesPatch EOLPatch Name RequiredPatch QueuePatch Queue Actions ToolbarPatch failed to applyPatch name:Patch series description is sent in initial summary email with [PATCH 0 of N] subject. It should describe the effects of the entire patch series. When emailing a bundle, these fields make up the message subject and body. Flags is a comma separated list of tags which are inserted into the message subject prefix.Patch:Paths in Repository Settings:PatternsPending Perforce Changelists - %sPerforce:PhasePlain, do not prepend Hg headerPlease configure a visual editor.Please enter a usernamePlease enter commit messagePlease report this bug to our bug trackerPlease wait while committing merged files.Please wait while making backout.PortPort to connect to on mail server. Default: 25Port to listen onPost &ReviewPost Pull BehaviorPost Pull: Post ReviewPrepare to backoutPrepare to mergePreserve files beginning with .hgPreviewPreview:Previous diffProxyPublish request immediatelyPullPull from %s aborted, ret %dPull from %s completedPulling from %s...PurgePush After CommitPush After Commit:Push Requires SSLPush to remote repository %s ?QNewQRefreshQuitRe&nameRe&name Patch...Readonly*RebaseRecurse into subrepositoriesRefreshRefresh current patchRefresh file listRefresh the Repository Registry listRegexpRegexp:Regular expression search patternReloadRemote command:RemoveRemove Files...Remove files from version controlRemove filter, show rootRemove patch directory ofRemove selected deleted files?Removed tag %sRenameRename FileRename PatchRename Patch QueueRename file or directoryRename patch %s to:Rename patch queue '%s' toReplaceReport only the first match per fileRepositoryRepository ID:Repository RegistryRepository SettingsRepository is lockedRepository status & changesRestart &BranchRestart all TortoiseHg applications for the following changes to take effect:RevRevertRevert Files...Revert file changesRevert file(s) to contents at this revisionRevert files to local or other parent?Revert to RevisionReview ID:Review draft posted to %s Review published to %s RevisionRevision SetRevision has changed to:Revision is &BadRevision is &GoodRevision:Running...SMTP HostSMTP PasswordSMTP PortSMTP TLSSMTP UsernameSSL error: %sSSL: Server certificate verify failedSSL: unknown error %s:%sSave GlobalSave error report toSave file toSave in RepoSearchSearch HistorySearch already in progressSearch file revisions for patternsSearchingSelect Destination FileSelect Destination FolderSelect RepositorySelect Source FolderSelect branch of merge commitSelect destination repositorySelect patch folderSelect post-pull operation for this repositorySelect source repositorySend &EmailSend changesets as Hg patchesSend single binary bundle, not patchesSending EmailSet Date:Set username:SettingsSettings File:Several icons are courtesy of the TortoiseSVN and Tango projectsSh&ow Repository RegistryShelfShelf clearedShelf deletedShelf: %sShow About DialogShow FunctionShow IconShow Output LogShow a full directory path of the repository in the dialog title instead of just the root directory name. Default: FalseShow allShow the history of the selected fileShow which function each change is in. Default: FalseSingle Workbench WindowSkip final confirmation page, close after commit.Skipping %s, unable to readSourceSource:Space separated list of branch names and colors of the form branch:#XXXXXX. Spaces and colons in the branch name must be escaped using a backslash (\). Likewise some other characters can be escaped in this way, e.g. \u0040 will be decoded to the @ character, and \n to a linefeed. Default: None (leave blank)Space separated list of tags that will not be shown. Useful example: Specify "qbase qparent qtip" to hide the standard tags inserted by the Mercurial Queues Extension. Default: None (leave blank)Specify name of new shelfSpecify visual diff tool, as described in the [merge-tools] section of your Mercurial configuration files. If left unspecified, TortoiseHg will use the selected merge tool. Failing that it uses the first applicable tool it finds.Specify your preferred user interface language (restart needed)StartStart a new patch branchStart revision:Start web server for this repositoryStatStatusStopStrip - %sStrip:StripesStripping Mercurial header removes username and parent information. Only useful if recipient is not using Mercurial (and does not like to see the headers).StyleSub menu items:Subject:Submitting p4 changelist...Subrepo removed from repository.Subrepository not found in the working directory.Subversion:SuccessSummary Line LengthSummary:SynchronizeSynchronize with dragged repositorySynchronize with remote repositoryTab WidthTag - %sTag:Tags:Tar archive compressed using bzip2Tar archive compressed using gzipTar archivesTarget:TaskbarTemporary files are removed when this dialog is closedTerminated by userTest this revision and report findings. (good/bad/skip)Text files (*.txt)Textual description of the repository's purpose or contents.The changes from revision %s and all unmerged parents will be discarded. Are you sure this is what you want to do?The destination "%s" already exists as a file!The destination "%s" already exists as a folder!The directory "%s" is not empty! Do you want to overwrite it?The file "%s" already exists! Do you want to overwrite it?The maximum size file (in KB) that TortoiseHg will show changes for in the changelog, status, and commit windows. A value of zero implies no limit. Default: 1024 (1MB)The number of revisions to read and display in the changelog viewer in a single batch. Default: 500The phase of new commits. Default: draftThe selected subrepo:

                                                                                                            %s

                                                                                                            has been added to the .hgsub file of the repository:

                                                                                                            %s

                                                                                                            Remember that in order to finish adding the subrepo you must still commit the changes to the .hgsub file in order to confirm the addition of the subrepo.There are no file changes to viewThg - TortoiseHg's GUI tools for Mercurial SCM (Hg) This error will not be shown again until you restart the workbenchThree-way Merge ToolTitleToTo graft destinationTo:Toggle display of text search barTool launch failureTop menu items:TortoiseHg Bug ReportTortoiseHg Command DialogTortoiseHg Dialogs (version %s), Mercurial (version %s) TortoiseHg ErrorTortoiseHg New Shelf NameTortoiseHg Overlay Icon ServerTortoiseHg PromptTortoiseHg SearchTortoiseHg SettingsTortoiseHg WorkbenchTransplant:TypeUI LanguageURLUnable to backoutUnable to create a Mercurial.ini fileUnable to create a config fileUnable to determine pending changesetsUnable to find changesetUnable to mergeUnable to merge chunksUnable to parse p4pending outputUnable to read repository statusUnable to remove file %s, permission deniedUnable to save after commit pushUnable to save post pull operationUnable to save usernameUnable to write .hgignore fileUnable to write configuration fileUnapply all patchesUnapply one patchUncommited merge - please select a parent revisionUncompressed tar archiveUncompressed zip archiveUndo last commit?Unknown revision!Unsaved changes will be lost. Do you want to reload?UnversionedUpdateUpdate - %sUpdate - pull, then try to updateUpdate IconsUpdate ReviewUpdate icons for this repositoryUpdate the fields of this existing requestUpdate to:Update working directoryUpdate...Upgrading to a more recent TortoiseHg is recommended.Use English backout messageUse English commit messageUse compact viewUse custom commit message:Use extended (git) patch formatUse git extended diff header format. Default: FalseUse largefilesUse proxy serverUse pull protocol to copy metadataUserUser:UsernameUsername to authenticate to mail server withVerify backout revision and ensure your working directory is clean.Verify merge targets and ensure your working directory is clean.View change history in repositoryView change history of selected filesView changes to current in external diff toolView changes using GUI diff toolView file as it appeared at this revisionView file changes in external diff toolView the repository's settingsVisual DiffVisual Diff ToolVisual Diffs - Visual EditorWarningWarning: affects all Tortoises, logoff required after changeWeb ServerWhether to allow pushing to the repository. If empty or not set, push is not allowed. If the special value "*", any remote user can push, including unauthenticated users. Otherwise, the remote user must have been authenticated, and the authenticated user name must be present in this list (separated by whitespace or ","). The contents of the allow_push list are examined after the deny_push list.Whether to deny pushing to the repository. If empty or not set, push is not denied. If the special value "*", all remote users are denied push. Otherwise, unauthenticated users are all denied, and any authenticated user name present in this list (separated by whitespace or ",") is also denied. The contents of the deny_push list are examined before the allow_push list.Whether to require that inbound pushes be transported over SSL to prevent password sniffing.Which template map style to useWorkbenchWorkbench Log ColumnsWorking CopyWorking DirectoryWorking Directory (merged)Working directory statusWrite patch series (bundle) descriptionYou are trying to move the phase of revision %d backwards, from "%s" to "%s". However, "%s" is a lower phase level than "%s". Moving the phase backwards is not recommended. For example, it may result in having multiple heads if you modify a revision that you have already pushed to a server. Please be careful!You can visit our site hereYou have multiple renames selected for destination file: %s. Aborting!You likely need to refresh this applicationYou may continue or start the graftYou may continue the compressYou may continue the graftYou must enter a patch nameYou must identify yourself to MercurialYou must provide revisions to graftYour TortoiseHg is up to date.Zip archive compressed using deflateZip archives[Code: %d][command completed successfully %s][command interrupted %s][command returned code %d %%s][command terminated by user %s][non-existant][original][working copy]abort: abort: %s! action buttonCommitadd diffstat output to messagesaddedalways fork GUI processattachbasic commands: branch: bundle file to previewcan not read file "%s". Ignored. changeset to view in diff toolchangeset: %scleancolumn headerAgecolumn headerAuthorcolumn headerFilenamecolumn headerLatest tagscolumn headerPhasecolumn headerTagscommand parse error: %sdiffstatdisplay help and exitdo not fork GUI processenable additional outputeol is incompatible with win32texterror while running command failed to start command field to give initial focusfile has been deleted, refreshfile has been modified, refreshfilesfilesAllfilesNoneglobal options:grep: %s grep: invalid match pattern: %s hgsubversion is incompatible with perfarcehistoryignore case during searchignoredimport to the patch queue (MQ)inlineinotify is not supported on this platforminvalid argumentslaunch visual diff toollist of commands: locallsprof not available - install from http://codespeak.net/svn/user/arigo/hack/misc/lsprof/merge with old dirstate parent after backoutmethodmissingmodifiedmust be specified 'type' in stylemust be specified repositoryname of the hgweb config file (DEPRECATED)name of the hgweb config file (serve more than one repository)needs merge of %i heads needs merge with %s needs merge with %s (through %s) needs update of diff base to tip of %s no commands defined no matches found: %sno repo at notify the shell for paths givennowopen a new workbench windowoptions: password: perfarce is incompatible with hgsubversionprint command execution profileprint licenseread file list from fileread file list from file encoding utf-8record datecode as commit daterecord user as committerremove the status cacheremovedrepository %s not foundrepository root directory or symbolic path namerevision to backoutrevision to updaterevisions to graftrevisions to view in diff toolselected filessend patches as attachmentssend patches as inline attachmentssend patches as part of the email bodyshow the contents of the status cache (no update)start debuggerstart progressCommitstatussuppress outputthg %s: %s thg aboutthg add [FILE]...thg annotatethg archivethg backout [OPTION]... [[-r] REV]thg bisectthg commit [OPTIONS] [FILE]...thg drag_copy SOURCE... DESTthg drag_move SOURCE... DESTthg email [REVS]thg forget [FILE]...thg graft [-r] REV...thg grepthg guessthg help [COMMAND]thg hgignore [FILE]thg import [OPTION] [SOURCE]...thg init [DEST]thg log [OPTIONS] [FILE]thg manifest [-r REV] [FILE]thg merge [[-r] REV]thg purgethg rejects [FILE]thg remove [FILE]...thg repoconfigthg resolvethg revert [FILE]...thg shellconfigthg shelvethg status [OPTIONS] [FILE]thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]thg update [-C] [[-r] REV]thg userconfigthg version [OPTION]thg: %s thg: command '%s' is ambiguous: %s thg: unknown command '%s' unknownunknown revision!unrecognized profiling format '%s' - Ignored update all repos in current diruse "thg -v help %s" to show global optionsuse "thg -v help%s" to show aliases and global optionsuse "thg help" for the full list of commandsuse "thg help" for the full list of commands or "thg -v" for detailsuse only one form to specify the revisionuse pull protocol to copy metadataversion %swait until the second ticks overwill be closedwin32text is incompatible with eolwindow titleCommitwith Mercurial-%s, Python-%s, PyQt-%s, Qt-%sworking changesProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: Peer Sommerlund POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2018-02-22 18:27+0000 Last-Translator: peso Language-Team: Danish MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Launchpad-Export-Date: 2019-07-17 05:42+0000 X-Generator: Launchpad (build 19009) Fangede tastaturafbrydelse, afbryder. aliasser: %s (standard: %s) (er et symlink) (er uversioneret) (omdøbt fra %s) (blev tilføjet) (blev tilføjet, mangler nu) (blev slettet) filtrerede"%s" er fjernet fra stiens historik"%s" er fjernet fra søgehistorik### værtscertifikat fingeraftryk ###### søgemønster for regulært udtryk ###% Matchning%d dag%d dage%d filer har flette-konflikter som skal løses%d time%d timer%d fundne match%d minut%d minutter%d måned%d måneder%d udgående ændringer%d afventende ændringslister fundne%d sekund%d sekunder%d uge%d uger%d år%d år%p%%s (hint: %s)%s (afventer)%s (indsendt)%s - TortoiseHg arbejdsbord%s - TortoiseHg arbejdsbord - %s%s - gren operation%s - genskab depot%s : %s%s og %s har identisk indhold %s lapper%s projekt-indstillinger (.hg/projrc)%s depot-indstillinger%s's globale indstillinger&Om TortoiseHg&Tilføj&Arkiv&Annuler&Ryd&Klon&Luk&Luk depot&Integrer på nuværende gren&Kopier lap&Slet lapper...&Diff Anden til forgænger&Forkast&Redigér fil&Afslut&Falsk&Filer&Afslut lap&Pod til Lokal...&Hjælp&Licens&Lokal&Flet&Flyt&Nyt depot...&Nej&Nej (kassér ændringer)&Åben depot...&Andet&Opdater&Opdater depotliste&Fjern&Depot&Kør&Gem&Indstillinger&Hylde&Spring over denne revision&Sand&Fjern lap&Uspecificeret&Opdatér&Vis&Ja(er et ændret og beskidt under-depot)(er et ændret under-depot)(er et beskidt under-depot)(er et nyt og beskidt under-depot)(er et nyt under-depot)(er et fjernet under-depot)(er et uændret under-depot)(ingen hjælpetekst til rådighed)(samme som forælder)*: bruges ikke af TortoiseHg3-vejs dir katalog diffMatchende kandidaterForskelle fra Kilde til DestIgnorér filterUrevisionerede filer= Forælder til arbejdskataloget =Et bogmærke navngivet "%s" eksisterer alleredeEn ny version af TortoiseHg (%s) er klar til at blive hentet!Der findes allerede en hylde-fil med det navnEt hylde-navn kan ikke indeholde %sAfbrydAfbrudt p4pendingOmOm &QtOm TortoiseHgGodkendAccepter alle matchAccepter valgte matchAktivér:TilføjTilføj filer...Tilføj et depot til denne gruppeTilføj filer til versionskontrolTilføj ignoreringsfilter...Tilføjede eller fjernede lapper skal være flettet i arbejdskkatalogetØnsker du at tilføje de ukendte filer der er markeret?TilføjetTilføjet mærke %s til ændring %sEfter trækhandlingAlder:AliasAl historikAlle filer (*)Alle filer i denne revisionTillad skubFlet altid (når det er muligt)En afbrudt podning er blevet fundet. Du kan ikke lave en anden podning med mindre du annullerer den afbrudte podning først.An&vend formatTilføjAnvendte lapperAnvendte lapper eller qparentAnvend alle lapperAnvend én lapAnvend denne lapAnvend lapArkiv - %sArkivformaterArkivtyper:Er du sikker på at du vil slette disse filer og/eller mapper?ForfatterfarverAuto Integration ListeAuto Ekskludér ListeFortsæt automatisk til næste side når omgør og flet er færdige.Fortsæt automatisk til næste side når flet er færdig.Løs flet-konflikter automatisk hvor det er muligtTilbageOmgjort ændring: At omgøre en forælder-revision tager kun et trinOmgør og integrerer...Omgør - %sOmgjort ændringOmgør nuværende gren af lapRevision at omgørePortér bagud for en del af et ændringssæt til en afhængighedBaglæns faseskiftBccFør omgør, skal du integrere, lægge en lap på hylden eller forkaste ændringer.Før du kan pode skal du integrere ændringerne, lægge en lap på hylden eller forkaste ændringerne.Bisect - %sBogmærke '%s' eksisterer ikkeBogmærket '%s' er blevet tilføjetBogmærke '%s' er blevet flyttetBogmærket '%s' er blevet fjernetBogmærket '%s' er blevet omdøbt til '%s'Bogmærke - %sBogmærke kaldet "%s" eksisterer ikkeBogmærke:GrenGrenfarverGren:Gren: Gennemse katalog...Gennemse...Bundter gemmer komplette ændringer i binær form. Upstream brugere kan trække fra dem. Dette er den sikreste måde at sende ændringer til Mercurial brugere.bypass-listeBzip2-tar-arkiverK&onfigurér formatCLI editorKan ikke ændre opsætning uden iniparse pakken - data er derfor skrivebeskyttetAnnulerKan ikke omgøre en ændring på en anden grenKan ikke åbne depotKan ikke starte en ny søgningCcCc:Ret &Fase tilÆndringerne er blevet flyttet, næste trin er at integrereÆndringer vil være effektive fra næste integrationÆndring:ÆndringssætÆndringer som er forgængere til en ændring i mængdenKontrollererLeder efter opdateringer...Tjekker...Barn:Blokke valgt: %d / %d&Slet logRenRydRyd indholdet af hylde-fil %s?Ryd den nuværende hylde-fil&Klon depot...Klon - %sKlon depotKlon til revision:Klon...LukLuk %s grenLuk efter opdateringLuk gren: Luk aktuel grenLuk opdateringsværktøjet efter hver succesfuld opdatering. Standard: FalseLuk:Kommasepareret liste over arkivformater som kan downloadesKommasepareret liste af gren-navne som skal skjules når der laves en liste af gren-navne for et depot. Standard: Ingen (tom)Kommasepareret liste af fil-mønstre som skal udelades. Udeladelsesmønstre bliver anvendt efter inkluderingsmønstre.Kommasepareret liste af fil-mønstre som skal inkluderes. Som udgangspunkt bliver hele depotet gennemsøgt.Kommasepareret liste over blindkopi-modtagereKommasepareret liste af cc-modtager-adresserKommasepareret liste over e-post adresser på modtagereKommandofejlIntegrérIntegrer omgør-og-flet resultatIntegrer ændringerIntegrér ændringer i depotIntegrationsmeddelelseIntegrér...Integrerer...Sammenlign revisioner for den valgte filFjern filen helt fra lappen?KomprimérKomprimér - %sKomprimer ændringssæt op til og inklusiveKomprimering er fuldført, gammel historik er uberørtKonfigurér Explorer-udvidelseKonfigurer vagter for valgte lapKonfigurer depotinstillingerKonfigurer brugerinstillingerBekræft tilføjBekræft skift af grenBekræft sletningBekræft forkastningBekræft kassering af ændringerBekræft kasser beskedBekræft exitBekræft ny grenBekræft overskrivningBekræft skub til fjern-depotBekræft genindlæsningBekræft fjernBekræft tilbageførBekræft fjernBekræft fortrydBekræft opdaterBekræft sletning af filerBekræft skift af lap-køOvervej at annullere podningen først.KontaktKontekstmenuFortsæt eller annuler afbrudt podning?Kontroller draft fase opførsel for server. Når sand, bliver skubbede ændringer set til public både hos klient og server og trækkede eller klonede ændringer bliver sat til public hos klienten. Standard: sandKopierKopiér beskedOpretOpret &GrenOpret lap-køLav depot herLav en ny lapOperet et nyt depot i destinationsfolderenLav klon her fra kildenOpret diff med alle ændringer på denne grenOpret diff med alle udgående ændringerOpret navngiven gren "%s" med denne integration? Synder fundet.Nuværende lokal revisionDatoDato:Døde GreneDefinerer det regex som skal matches ved opsamling af emne-tal.SletSlet tomme mapperSlet valgte blokkeSlet valgte lapperSlet hylde-fil %s?Slet den nuværende hylde-filSlettede %d filerSlettede %d filer og %d mapperSlettet*Sletter affaldsmappeMislykkede sletningerForbyd skubBeskrivelseMålMål-sti:Destination:Find kopier/omdøbninger i %sFind omdøbninger og kopieringerDiff &Lokal til forgængerDiff-værktøjsbjælkeKatalog diff til p1Katalog diff til p2Katalog diffKatalog over filerForkast - forkaster lokale ændringer, uden sikkerhedskopiKassér nuværende omgørelsesbesked?Kasser nuværende integrationsbesked?Forkast lokale ændringer (revert --all)Forkast lokale ændringer, ingen sikkerhedskopi (-C/--clean)Kasser lokale ændringer, uden sikkerhedskopi (-f/--force)Vis lukkede greneVis kun aktive greneViser %(count)d af %(total)d emnerTræk-og-slip synkroniserInkluder ikke ændringsdato i diff headers. Standard: FalskGem ikke sikkerhedskopi-filer (*.orig)Vis ikke menu-linjer på ikke-versionerede foldere (brug shift+klik for at tilsidesætte)Strip ikke stier (-p0), påkrævet for SVN-lapperUnlad at opdatere det nye arbejdskatalogEfterprøv ikke værtscertifikatVil du virkelig tvinge et baglæns faseskift igennem?Ønsker du at aktivere lap-kø '%s'?Ønsker du at afslutte?Duplikér navnRedigerRediger filRediger generelt ignorerfilterRedigér lokalRedigér nuværende fil i arbejdskopiRediger filRedigér graf for lap-afhængighedRediger lappede filer og afvisninger?Rediger depotets ignorerfilterEmailE-postadresse for afsenderSlog overlægningshåndtering tilIndkodningEngelske beskederFejlStødte på fejl.Fejl under skrivning af filEkskluderer:AfslutAfslut mens en podning er uafsluttet er ikke anbefalet.Indstillinger for Explorer-udvidelseUdvidelserKunne ikke åbne depotFejlede!FilFilhistorieFil statusFilstatus:Filen er binærFil er større end den angivne max størrelse. maxdiff = %s KBFil eller diff'er som ikke vises: Fil eller diff ikke vist: Filen er større end den anførte maks størrelse. maxdiff = %s KBFilnavnFilerFind omdøbningerFind kopi og/eller omdøb kilderAfsluttetFlag:Følg kopiering og omdøbningGlemGlem filer...FremFraFra:Fuld titel på stiGit formatGit lapper kan indeholde binære filer, kopiering og ændring af rettigheder, men modtagerne kan måske ikke bruge dem hvis de ikke anvender Git eller Mercurial.GlobGlobale indstillinger&Gå til lapGå til forgænger for %s og %sGå tl fælles forgængerPodPod - %sPod valgte til lokal...Podning annuleretPodningsændringPodningsændring #%d af %dPodning fejledePodning genererede flette-konflikter som skal løsesPodning fuldførtPodet fra:GrafStørste fælles forgænger til de to ændringerGæt omdøbningerGzip-tar-arkiverHg-kommando:Hg lapper (som genereret af export kommandoen) er kompatible med de fleste lappe-programmer. De inkluderer en header som indeholder de vigtigste metadata til ændringen.Skjul mærkaterSkjul kontekst-menu udenfor depoterFremhæv ikonVærtVærtsnavn og (valfrigt) port på proxy server, for eksempel "myproxy:8000"Værtsnavn for mailserverVærtsnavn som afsenderen kan bruge til at identificere sig overfor mail serveren.Hvor mange linier skal en "zebrastribe" være på. Standard er 1; sæt til 0 for at deaktivere.IkonerHvis du stadig har problemer, så indsend venligst en fejlrapportering.Ignorér Ignorer tomme linierIgnorer mængden af blanktegnIgnorer blanktegnIgnorer versalIgnoreringsmønster - %sIgnoreret*Importér - %sImportér fra udklipsholderSom-svar-på:Inkluder alle forgængereInkludér lap-køInkluderer:Iniparse skal være installeret.Iniparse pakke ikke fundetInitiel revisionUtilstrækkelige adgangsrettighederAfbrudtAfbrudt podning fundetUgyldige indstillinger - Du mangler at angive dit ReviewBoard-brugernavnUgyldige indstillinger - ReviewBoard-serveren er ikke opsatUgyldigt datoformatUgyldig glob-udtrykUgyldig regexp-udtrykEmne-henvisningIssue RegexIssue overvågningKendt dårlig revision:Kendt god revision:LicensLinjeVis opdaterede filer (--verbose)Lokalt værtsnavnKun lokale diskeLåst*Batchstørrelse for logLangt uddragGør depot kompatibelt med Mercurial <1.7Obligatorisk Issue-henvisningLøs afviste lap-stumper manueltMarker denne blok som løst, gå til næste uløsteMarker denne blok som uløstMatch tekstMaks ændringerMaksimal diff-størrelseMaks filerMenu-opførselMercurial-kommando kører fortsat. Er du sikker på at du vil terminere?FletFlet - %sFlet - for at flette med lokale ændringerFlet alle afventende afhængighederFlet fra (anden revision)Flet afviste lap-blokke ind i %sFlette-revision ikke angivet eller ikke fundetFlet med (arbejdskatalog)BeskedBesked-identifikation der svares på, for trådningFlytFlyt alle filer til venstreFlyt alle filer til højreFlyt anvendte lapper ind i depotetFlyt valgte blokke til venstreFlyt valgte blokke til højreFlyt valgte fil til venstreFlyt valgte fil til højreAdskillige kilder valgtNavnNavn eller email på den ansvarlige for depotet.Navngiven gren "%s" eksisterer allerede, sidst anvendt i revision %d Nyt &ArbejdsbordNy gren: Fase på ny integrationNyt navn:Nyt depotNy hyldeNavn på ny lap-køNy hylde oprettetNæste diffIngen datoerIngen passende filerIngen sikkerhedskopiering (-n/--nobackup)Ingen ændringer af grenIngen blokke tilkbageIngen sletbare blokkeIntet diff-værktøj fundetIngen filer ændretIngen filer tjekketIngen filer passede til denne operationIngen filer markeretDer blev ikke fundet ignorerede filerIngen emner at viseIngen sammenfald fundetIngen flette-konflikter, klar til integrationIngen operation at udføreIngen udgående ændringssætIngen afventende Perforce ændringslisterIntet depot fundetDer blev ikke fundet ukendte filerIntet brugernavn konfigureretIngen visuelle diff-værktøjer blev registreretIngen visuel editor konfigureretIngen - træk ændringerNormalisér fillinje-endelser under og efter lap til lf eller crlf. Strict foretager ingen normalisering. Auto foretager detektering per linje, og er den anbefalede indstilling. Standard: strictIkke et Mercurial underdepot, kan ikke forhåndsvisesIkke en hovedrevision!Ikke et hoved, omgør vil lave et nyt hoved!Intet at importereOKTag kun slettede filer i betragtningKun filer ændret/oprettet i denne revisionKun filer ændret/oprettet efter:Åben &underdepotÅben en ny navngivet grenÅben depot på faneÅben det valgte underdepotValgfri. Kommasepareret liste af værtsnavne som skal omgå proxyenValgfri. Metode til at sende e-post. Hvis værdien er "smtp" (standard) anvendes SMTP (konfigureret nedenfor). Andre værdier tages som navn på et program der virker som sendmail (det tager et "-f" flag for afsender, en liste af modtagere på kommandolinjen og beskeden via stdin). Normalt vil det være nok at sætte værdien til "sendmail" eller "/usr/sbin/sendmail" for at sende beskeder.Valgfri. Adgangskode overfor proxyserverenValgfri. Brugernavn overfor proxyserverenValgIndstillinger:Eller benyt:OverlaysForælder 1:Forælder 2:Forælder:ForældreadgangskodeKodeord til mailserverAdgangskode:Indsæt &filnavneLap EOLNavn på lap påkrævetlap-køLap kø værktøjslinjeLappen passede ikkeLap navn:Lap-sekvens beskrivelsen bliver sendt i den indledende sammendragsmail med [PATCH 0 of N] som emne. Denne skal beskrive effekten af den samlede lap-sekvens. Når man sender et bundt vil disse felter udgøre meddelelsestekst og -emne. Flag er en komma-separeret liste af mærkater som bliver indsat først i besked-emnet.Lap:Sti'er i depot-indstillingerMønstreAfventende Perforce ændringslister - %sPerforce:FaseSimpel, uden Hg headerVælg en visuel editor.Indtast venligst et brugernavnSkriv integrationsbeskedRapportér venligst denne fejl til vores fejlhåndteringssystemVent venligst på integration af flettede filer.Vent venligst på omgør ændring.PortPort til at forbinde til mail server. Standard: 25Port at lytte påSend gennemgangHandling efter trækEfter træk: Indsend gennemgangForbered omgørForbered fletningBevar filer som begynder med .hgForhåndsvisForhåndsvisning:Forrige diffProxyUdgiv straks forespørgselTrækTræk fra %s afbrudt, returkode %dTræk fra %s fuldførtTrækker fra %s...RydSkub Efter IntegrationSkub efter integrer:Skub kræver SSLSkub til fjern-depot %s ?QNewQRefreshAfslutOm&døb&Omdøb lap...Læs-alene*RebaseGentag i alle underdepoterOpdaterOpdater aktuel lapGenindlæs fillisteOpdater depotlistenRegudtrReg. udtryk:Regulært udtrykGenindlæsFjernkommando:FjernFjern filer...Fjern filer fra versionskontrolFjern filter, vis rodenSlet lap-folderFjern markerede slettede filer?Mærke %s er fjernetOmdøbOmdøb filOmdøb lapOmdøb lap-køOmdøb fil eller katalogOmdøb lap %s til:Omdøb lap-kø '%s' tilErstatRapportér kun det første match per filDepotDepot-ID:DepotlisteDepot-indstillingerDepot er låstDepotstatus og -ændringerGenstart &GrenGenstart alle TortoiseHg applikationer for at de følgende ændringer kan slå igennem:RevTilbageførTilbagefør filer...Tilbagefør ændringerRul fil(er) til indholdet for denne revisionTilbagefør filer til lokal eller anden forælder?Rul tilbage til RevisionGennemgang-ID:Gennemgå udkast sendt til %s Gennemgå udgivet til %s RevisionRevisionssætRevision er ændret til:Revision er &DårligRevision er &GodRevision:Kører...SMTP værtSMTP kodeordSMTP portSMTP TLSSMTP brugernavnSSL fejl: %sSSL: Kontrol af server certificate fejledeSSL: ukendt fejl %s:%sGem globalGem fejlrapport tilGem fil somGem i depotSøgSøg i historieSøgning allerede i gangSøg i fil-revisioner efter mønstreSøgerVælg mål-filVælg mål-mappeVælg depotVælg kilde-mappeVælg gren til flet-integrationVælg destinationsdepotVælg lap-folderVælg efter-træk-handling for dette depotVælg kildedepotSend &e-postSend ændringer som Hg lapperSend samlet binært bundt, ingen lapperSender e-postAngiv dato:Angiv brugernavn:IndstillingerIndstillingsfilen:Nogle af ikonerne kan vi takke TortoiseSVN og Tango projekterne forVis depot&listeHyldeHylde ryddetHylde slettetHylde: %sVis versionsinformationer om TortoiseHgVis funktionVis ikonVis log for uddataVis en fuld mappe-sti for lageret i dialog-titlen i stedet for blot rodmappens navn. Standard: FalskVis altVis historikken for den valgte filVis hvilken funktion hver ændring tilhører. Standard: FalskKun et arbejdsbordsvindueSpring over bekræftelsessiden, luk efter intetration.Springer over %s, ikke i stand til at læseKildeKilde:Blank-separeret liste af gren-navne og farver på formen "gren:#XXXXXX". Blanktegn og kolon'er i gren-navnet skal skrive med undvigesekvens med foranstillet backslash (\). På samme måde kan andre tegn kodes på denne måde, f.eks. \u0040 for @ tegnet, og \n for linjeskift. Standard: Ingen (tom)Blank-separeret liste af mærkater som ikke bliver vist. Brugbart eksempel: "qbase qparent qtip" vil skjule standard-mærkaterne som bliver indsat af Mercurial Queues udviddelsen. Standard: Ingen (tom)Angiv navnet på den nye hyldeAngiv værktøj til visuel forskel, som beskrevet i [merge-tools] sektionen af din Mercurial konfigurationsfil. Hvis den ikke specificeres, så vil TortoiseHg anvende det valgte fletteværktøj. Mislykkes dette vil den anvende det første anvendelige værktøj den finder.Angiv dit foretrukne sprog for brugerflade (genstart påkrævet)StartStart en ny gren for lapStart revision:Start web-server for dette depotStatusStatusStopFjern - %sFjern:StriberAt fjerne Mercurial indledningen fjerner brugernavn og forælder information. Kun brugbart hvis modtageren ikke anvender Mercurial og ikke kan lide at se indledningen.StilUndermenupunkter:Emne:Indsender p4-ændringsliste...Underdepot fjernet fra depot.Underdepot ikke fundet i arbejdskatalogetSubversion:SuccesLængde af uddragslinjeUddrag:SynkroniserSynkroniser med indtrukket depotSynkroniser med andet depotTab størrelseMærkat - %sMærke:Mærker:Tar-arkiv comprimeret med bzip2Tar-arkiv komprimeret med gzipTar-arkiverMål:ProceslinjenMidlertidige filer bliver fjernet når denne dialog lukkesTermineret af brugerTest denne revision og rapporter det fundne. (godt/dårligt/oversprunget)Tekstfiler (*.txt)Tekstuel beskrivelse af depotets anvendelse eller indhold.Ændringerne fra revision %s og alle ikke-flettede forældre vil blive kasseret. Er du sikker på du vil gøre dette?Destinationen "%s" eksisterer allerede som en fil!Destinationen "%s" eksisterer allerede som en mappe!Kataloget "%s" er ikke tomt! Vil du overskrive det?Filen "%s" findes allerede! Vil du overskrive den?Den maksimale størrelse (i KB) hvor TortoiseHg viser ændringer i changelog-, status- og integrér-vinduerne. En værdi på betyder ingen grænse. Standard: 1024 (1MB)Antal revisioner der bliver læst og vist ad gangen. Standard: 500Fasen der anvendes for nye integrationer. Standard: draftDet valgte underdepot:

                                                                                                            %s

                                                                                                            er blevet tilføjet til .hgsub filen i depotet:

                                                                                                            %s

                                                                                                            Husk at du skal lave en integration af ændringerne i .hgsub for at bekræfte tilføjelsen af underdepotet.Der er ingen fil-ændringer at seThg - TortoiseHg's GUI værktøj til Mercurial SCM (Hg) Denne fejl vil ikke blive vist igen før du har genstartet arbejdsbordet3-vejs fletteværktøjTitelTilPodningsstedTil:Vis/skjul tekstsøgningsbjælkeKunne ikke starte værktøjHovedmenupunkter:TortoiseHg fejlrapportTortoiseHg kommandodialogTortoiseHg Dialoger (version %s), Mercurial (version %s) TortoiseHg-fejlTortoiseHg Ny Hylde NavnTortoiseHg overlay-ikon serverTortoiseHg promptTortoiseHg SøgningTortoiseHg indstillingerTortoiseHg arbejdsbordTransplanter:TypeBrugerflade sprogURLKan ikke omgøreIkke i stand til at oprette en Mercurial.ini-filKunne ikke oprette en konfig-filIkke i stand til at bestemme afventende ændringssætIkke i stand til at finde ændringssætUde af stand til at fletteKan ikke flette blokkeKan ikke parse p4pending outputKan ikke aflæse depotstatusKan ikke fjerne filen %s, adgang nægtetKan ikke gemme skub-efter-integrér konfigurationKunne ikke gemme efter-træk-handlingKunne ikke gemme brugernavnKan ikke skrive .hgignore filenKan ikke skrive konfigurationsfilenFjern alle lapperFjern én lapIkke-integreret flet - vælg en forælderrevisionUkomprimeret tar-arkivUkomprimeret zip-arkivFortryd sidste integration?Ukendt revision!Ikke gemte ændringer vil blive tabt. Ønsker du at genindlæse?Ikke versioneretOpdaterOpdater - %sOpdater - træk, fulgt af opdaterOpdater ikonerOpdatér gennemgangOpdater ikoner for dette depotOpdatér felterne for denne eksisterende forespørgselOpdater til:Opdater arbejdskatalogOpdater...Det er anbefalet at opgradere til en nyere version af TortoiseHg.Brug engelsk omgørelsesbeskedBrug engelsk integreringsbeskedBrug kompakt visningBrug tilpasset integreringsbeskedBrug udviddet (git) lap-formatBrug git udviddet diff-header format. Standard: FalskBrug largefilesBrug proxy serverBrug træk-protokollen til at kopiere metadataBrugerBruger:BrugernavnBrugernavn til mailserverKontroller revisionen der skal omgøres og at dit arbejdskatalog er rent.Kontroller hvilke revisioner der bliver flettet og om arbejdskataloget er rent.Vis ændringshistorik i depotVis ændringshistorik for valgte filerVis ændringer til nuværende i eksternt diff-værktøjSe ændringer med et GUI diff-værktøjVis fil som den fremstod ved denne revisionVis filændringer i eksternt diff-værktøjSe depotets indstillingerVisuel diff.Værktøj til visuel forskelVisuel diff - Visuel editorAdvarselAdvarsel: påvirker alle Tortoise'er, logud påkrævet efter ændringWeb serverEr det tilladt at skubbe til depotet. Hvis tom eller ikke sat, så er skub ikke tilladt. Værdien "*" betyder at alle kan skubbe, også anonyme brugere. I alle andre tilfælde skal fjernbrugeren have givet sig til kende med et navn i denne liste (adskilt af blanktegn eller ","). Indholdet af tillad_skub listen bliver undersøgt efter forbyd_skub listen.Er det forbudt at skubbe til depotet. Hvis tom eller ikke sat, så er skub ikke forbudt. Værdien "*" betyder at ingen kan skubbe. I alle andre tilfælde bliver anonyme fjernbrugere afvist, og alle autoriserede brugerenavne i denne liste (adskilt af blanktegn eller ",") bliver også afvist. Indholdet af tillad_skub listen bliver undersøgt efter forbyd_skub listen.Er det obligatorisk at indgående skub-operationer skal anvende SSL for at forbindre password-aflytningHvilke skabelon mapnings-stil skal anvendesArbejdsbordArbejdsbord log kolonnerArbejdskopiArbejdskatalogArbejdskatalog (flettet)Status på arbejdskatalogSkriv lap-sekvens (bundt) beskrivelseDu er i gang med at ændre fasen af revision %d, fra "%s" til "%s". Bemærk, "%s" er en tidligere fase end "%s". Det er ikke anbefalet at gå til tidligere faser. Hvis du ændrer en revision du allerede har skubbet ud til en server kan det medføre flere hoveder. Vær forsigtig!Du kan besøge vores hjemmeside herDu har adskillige omdøbninger valgt for destinationsfil: %s. Afbryder!Du skal sandsynligvis genopfriske dette programDu må fortsætte eller starte podningenDu kan fortsætte komprimeringenDu må fortsætte podningenDu skal indtaste et navn på lapDu er nødt til at identificere dig for MercurialDu skal angive revisioner at podeDin TortoiseHg er ajour.Zip-arkiv komprimeet med deflateZip-arkiver[Kode: %d][kommando udført med succes %s][kommando afbrudt %s][kommando returnerede kode %d %%s][kommando afsluttet af bruger %s][ikke-eksisterende][original][arbejdskopi]afbrudt: afbrudt: %s! Integrértilføj diffstat resultat til beskedertilføjetforgren altid GUI procesvedhæftbasale kommandoer: gren: bundt-fil som skal forhåndsviseskan ikke læse filen "%s". Ignoreret. ændring at vise i diff-værktøjændringssæt: %srenAlderForfatterFilnavnNyeste mærkerFaseMærkerkommando-fortolkningsfejl: %sdiffstatvis hjælp og exitundlad at forgrene GUI processaktiver yderlig outputeol er ikke kompatibel med win32textfejl under kørsel af kommando mislykkedes med at starte kommando felt som gives indledende fokusfil er blevet slettet, opfriskfil er blevet ændret, opfriskfilerAlleIngenglobale indstillinger:grep: %s grep: ugyldigt match-mønster: %s hgsubversion er ikke kompatibel med perfarcehistorikignorer versaler ved søgningignoreretimporter til lappekøen (MQ)integreretinotify er ikke supporteret på denne platformugyldige parametrestart visuelt diff-værktøjliste af kommandoer: lokallsprof ikke tilgængelig - installer fra http://codespeak.net/svn/user/arigo/hack/misc/lsprof/flet med oprindelig forælder efter omgørmetodemanglerændret'type' skal angives i stilendepot skal være angivetnavn på hgweb konfigurationsfilen (FORÆLDET)navn på hgweb konfigurationsfilen (bruges af mere end et depot)kræver flet af %i hoveder kræver flet med %s kræver flet med %s (gennem %s) kræver opdatering af diff base til spids af %s ingen kommandoer defineret ingen fundne match: %sintet depot på notificer shell for angivne stiernuåben et nyt arbejdsbordsvindueindstillinger: kodeord: perfarce er ikke kompatibel med hgsubversionudskriv profil for kørselskommandoudskriv licenslæs fil-liste fra fillæs fil-liste fra fil med utf-8 kodningnoter dato som integrationsdatonoter bruger som integratorfjern status cachefjernetdepot %s ikke fundetdepotrodfolder eller symbolsk stinavnændring at omgørevalge revisionrevisioner at poderevisioner at vise i diff-værktøjvalgte filersend lapper som vedhæftede filersend lapper som integreret tekstsend lapper som en del af mail tekstenvis indholdet af status cache (ingen updatering)start debuggerIntegrérstatusundertryk outputthg %s: %s thg aboutthg add [FIL]...thg annotatethg archivethg backout [FLAG]... [[-r] REV]thg bisectthg commit [FLAG] [FIL]...thg drag_copy KILDE... MÅLthg drag_move KILDE... MÅLthg email [REVS]thg forget [FIL]...thg graft [-r] REV...thg grepthg guessthg help [KOMMANDO]thg hgignore [FIL]thg import [FLAG] [KILDE]...thg init [MÅL]thg log [FLAG] [FIL]thg manifest [-r REV] [FIL]thg merge [[-r] REV]thg purgethg rejects [FIL]thg remove [FIL]...thg repoconfigthg resolvethg revert [FIL]...thg shellconfigthg shelvethg status [FLAG] [FIL]thg tag [-f] [-l] [-m TEKST] [-r REV] [NAVN]thg update [-C] [[-r] REV]thg userconfigthg version [FLAG]thg: %s thg: Kommando '%s' er tvetydig: %s thg: Ukendt kommando '%s' ukendtukendt revision!ukendt profileringsformat '%s' Ignoreret opdater alle depoter i aktuel folderbrug "thg -v help %s" for at vise globale flagbrug "thg -v help%s" for at vise alias og globale flagbrug "thg help" for den fulde liste af kommandoerbrug "thg help" for den fulde liste af kommandoer eller "thg -v" for detaljerbrug kun én formular til at angive revisionenbrug træk-protokol til at kopiere metadataversion %svent indtil næste sekundvil blive lukketwin32text er ikke kompatibel med eolIntegrérmed Mercurial-%s, Python-%s, PyQt-%s, Qt-%sarbejdsændringer././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/de/0000755000000000000000000000000014742203610014143 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1234145 tortoisehg-6.9/locale/de/LC_MESSAGES/0000755000000000000000000000000014742203610015730 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033565.0 tortoisehg-6.9/locale/de/LC_MESSAGES/tortoisehg.mo0000644000000000000000000064020714742203535020473 0ustar00rootrootH / &= drʐ  /9Nl $)=XhpWYג1BSh{;ΓA7-:eҔ  ,Ga  ̕ #: BP#p-@– 2% Xfu ɗ ח 2GY^ q~   И ܘ  !,3:AS[o ęי5DT]p ͚ݚ  (?Qd ju} ě ɛ֛ &- BL]cvz ֜ ݜ #* =GM ]gv ~Ý˝ ܝ  $08O cnsy̞ Ԟޞ  !) 0:M R_ g s   ̟ԟڟ  (.BHMe kx'ޠ#8 Vw̡ ߡ,J'r&âӢC;[-̣-DW f p~$'Х'7 3X3(,#5Yow} ͧԧ%&%L_ r| ¨ &=;y թ >"@0c ˪ ժ! )):d=ūBܫR)r>)۬HN %3 :0[ɮ %1 8EU:d;'ۯ* . <!IYkṴ̋ܰG":j4ڱ߱8/M jw"ɲ,ڲ!=) g ; ִ  =Zw& "˵   2 FPdx 1H ZBeȷ+ 3$X!x9Ը)<R+l>׹ڹ޹)8,P"}!Ϻ.-J x /[4*O.z611+DXpɽϽ",1^=OX$p ҿ&-4 MX^ d"&  ':CIYl{ D/??ix_C=B1 ]5< R _j y  &"I`"w '+ $&VK# 1.O~M  5E] u !   2?Nk"# -5 =.Jy3I} * & 35N* 5#!.E.t:84;J_r+%/7gl{  9&`>g..,&1Xk z *) J"b'4 F P\ a '5OP# j+x   ,9 KYn}* $8-]-1.#2Vs'A3!9M[2'@#1d87^f){  )3C HR ep ! .AW]pC//@IZu)B,[I 4#5X(  %>+Z %(0B-J2x   "/"C4f;1X6&KO#UsY# 3+>j r"M$"GPAj:;'5c<n3}4*)-W^nw!<&&   5 JX ^i  Y#5<B/ -AQ Xd # /&9` oyIBc*aax]M$,?P cIoPF MQELEN co   ( ;\ (C T`8y !; 6Ie$<V +APY2+! "6K R ]Qj+ i2Pf u     %5Kf n y     9(6_8# A ![ &}  1   #  @ 'K  s    ? : )  < J ] Gl d m   )     #) )M w   /    -.B\ $$8,M*z0 <T[Y@; 2= LY j t~     *4=Rl~ !%6-HvNb#sJ( #:Wp$ "9"9@(+.Zl}l,/,6,c!%=C%T z3#Ik?hf;{<M  x!!!!!!!! " ("4"="L"R"c"" " """","*" #(#9# N#X#n# ## #####$"$ 1$:=$ x%% %%%%%:%H&GQ&&&&!&& &*'1'7'S'!s'&'&''':(#R(*v(!((((((). );)M) S)`) s) ) ))))!) *** !* /*;=*y** *******'+-B+p++++++++ ++,,),?,H,a,w,%,,,, , -!)-K-c-}----3---- ..1.:.L.b.j. {. ...%.. .2.5/H/W/ r/ /Z//F0 V0`0)}0000001 121!K1$m1111!1112 22-2@2P2W2r22#2 2!23353P3Mo33334,4H4W4 ^4 j4 w4 44444455*5G5O5!f5"5$5 5 5556686 L6m6v667*7?7V7i7y77M7#7888 .8:8J8!c8 88+8&8 9(9D9W9 : &: 3:>:Y:q:]z:: :: ;(;A;R;d; w;; ;;"; ; ;; < < !< +< 9<C< L< Z< f<%t<< << << ==,=L=)a= == ======H>"`>> > >B>>?? '? 2? >?K?c?#}???? ??1@9@W@j@@]AqA.AA"A#AB!B[B[YC$D1D G$II#J JJ&K 6KDKKK`KhK wK K K K KKK!K@K+LEL KL YL gLqL&wLLqL M ,M7M IMUMdM vM MM M M MMMMMNyNN.NNN!Ow)OOP%Q%;Q5aQQQ Q1QQ R R=RUR ZR1dRRIR S TlTTTTTTTT4 U>VVWWZWY%YSY,Z[[?\!]']@]$P]u]z]]]]]]] ]]]]^^^^`^ _,=_ j_'_ ____`+`1C`!u` `` `` `aaaaaa a#a"a!b 5b BbLbdb|bbbbb b"b!b c c c +c9c AcKc^c)fc6cc7cd+d<>d{d4dsd')e"QedteBe.f0Kf3|f>ff|g2*h;]hh4i@Ni(ii$ajjcj(k.kLk96lbpll&mfn""oEpcp1Uq.qqqr+s(s}sstUt/TuOu%u!u-v8Jv<v*v4v! wBBwwwww'x5N!c'Ȩݨ ;(Ad7 ީ "#&"Jm ' ' !*8c (̫'# #1Ut ˬӬ/0 KX-a.ӭ!3C$V{ٮ""&E5l1Я$$'L[qް "?R@jñ ر   " <G%eڲ,)Fct ųϳ&?\q !δ ,DYp +ӵ#+?Vq'ƶ*IQq-˷߷+6+,bDԸ)")> h s+2Ϲ#"&I,]º@.Ҽ "7Z)z, #-/Q(,9#Y }oip B&KA;>'0GZkpu y  5@P j w!!%/4sd.Eas#  $'&N g   +BRah$w     -7 G U"` '$8 MX#m +4<CX l z *%  4 ?K^ fty&$)Nc z   +6J _ jw   #3 Wb x   5 J Va{     $ C P^m ) /:I [ir    "-.9\!-3!6$X&}! *77[o,&9QgJ~C"  04Q M3))*@FA6:(:#E^    1< U9vD  ,9Sp'' '>h^6 +-8fV(=#!a  072>,qX Jth)G-O[}!*<Vi&', 5 A O-]O47HY=oDJ`z(gb@<!M X.x$;9DN7F)<P Yd ;@$Z'%#,$; `m s )l4( &<#8B\02NR3pP&9VV%!(DJB-3#K#oDF/S@jKEKUET-S;T gr!(D3%:O+n!' ;5qw  (+!56l ~   3QVc 5Jdkm&kA1;s0  u  5%5['s .% &/2V 1=3-Fht*.7Kj1|D3F- ? )U #     7 : P f      7 8  M 'n  6 8 ?! a i  q ;~  3  $3 B P];x.9.K,zR%( 1I-{C<+*V^o ! @*<k8 (G dou|# @ 4G>;;0//_t "16Q"/3L"a   $  #5)U9!+j/r=_?%'(E n% 9!T!v4((+B5n5K8&#_+5 G4 E| * j CX!/!!H!<5"=r"B"]"Q#'c#### ### #$($ 8$E$ _$j$ |$$$$&$$%)*%T%e%,u%0%2%(&/&A&2H&&{&Y&J&-G'&u'' ''''((>7(>v("(+(i)n)) )),))3)I2*K|*-*1*'(+P+d+++ +2+(+E,BI,3,=,:,/9-i- -S-]-F.Y.%_. .".. . ..$/>-/l/K/D/'0vD00=0 11Y1Xw1g1f822 2E23 303P3*e3Q373 4"(4YK44 44&4V 5N`5D5H5 =6J66I7.O7P~78758 >8H8(]88'8*8888/9E09v9-: ::;;;; ;;%;<1&<"X<{<<<)<%<=*&=#Q=u=%=>->/3>8c@ @ @@@@#@ A A%.ATA"B4B6HBB BBBRBBOC`CCCsCqjDDebEEEEF! FTBFYF_FdQGGSGX H yHHH"HHHII3I LI YIgI!I II*II'K'L ?LMLaL@LL L3LMN+MIzMMMMmN}NN}N 5O AObOsO*OOOOZP@Q GQ6QQ4QQ Q QQQR/R KR VRcRxRDUJKUUUUUnV+V$W#;W_WnWWWWWWW XX X1,X/^XX X X XX XX Y#Y %Y2Y DYPY&aYYGY5YZA*\/l\#\;\2\"/]FR])]!]'] ^4^Q^f^^X^H^.4_c_r__E__im```I`1Fa2xa"a%aAa66b'mb9bb9b c 3c=c'XcJcTc dr rrs"sJ7ssCs?s &t,Gttt.tGt u)u/Fu@vu$u%uvYvUw}[yy8kzz<Z{9{ |||A}H}d}}%}+}}~~ )~4~H~h~ ~ ~ ~ ~~+~3~ (>Xr# ',Ki L\ cm JтJWg )̃*(( Q7["%/14D'y(Jʅ4MJ=6ֆ ! (4H9! ćއ, %6\t& Ȉ҈0'. 4$?d*l$щ88/h$ ˊ֊ .J e  (ً: =2^"0Ɍ, '#HlO#*Ii{ ͎܎1  ?LT^P"'<G"bA0Ց( /=[x"Ғ.!=Rf {%“ӓ "* M%W }'۔+"$G(e?dΕ!37U $Ӗ +<!Su$͗/3HQ)l(&  * 8Y5m!n*Қ/ZN!˛ԛ$20W2/0N2k+ʝ, , 8Cca6#Uy Ƞ(1#U t~   ̡֡ߡ 2 >7[ &Ӣ)( !5;W!ˣߣ/XD(ƤT&Ls  ǥܥ5(AWn4TL Zr**D;9P6ݩzsGT<'1Oٳ));0eشߴ %< KY%n_, >K8Q 0 >Ljz"з)<To{ @ 5M696ۻ.-A-$ R`9o &ʽ  T"*wq*?%# .5M U cn%w,\*2^pT$ ,M,]"   %8*&3Z);&A9h+!')/Y4u 72B ]-h+ # 5 Vc l y       83CGw[1IO] 600jLN.0+C'kR0F];Q@32-f,I#vGspOQi+ 7mXk-'1L2Q2XYB7p0E#v5=;.JFy$O"5X`c2H7L?%,A7Y&  4.6'Nv9#.%R xj[u!2   &,A1n2r;F; *- 08i3|>4%!Z+|93;&R;y-;"-B,p#!   '1hHO 7Eb x!O 01Ew 6V*Kv //4O0'X i9NO$ tE(#"(K*e(MS[.r%`6I  /bg**7  $%<,b4)B01-b4')<QNFhc}P  ,qsB{  p +& +2;&[ %U!1Si{20n%<bMM-8(8*a'/(2 /@2p2(//K  l.b7g6[/*(F#o    #7/ g6t.   (8:a7?G) q 2  "       ! !&!8m>.>5> ??6?8I?<?2?2? %@01@b@ v@@ Please check that the "thg" command is valid. Caught keyboard interrupt, aborting. aliases: %s (default: %s) (copied from %s) (is a symlink) (is unversioned) (renamed from %s) (was added) (was added, now missing) (was deleted) filtered"%s" is not a folder"%s" is not a valid directory"%s" removed from path history"%s" removed from search history### filter text ###### host certificate fingerprint ###### patch name ###### regular expression ###### regular expression search pattern ###### revision set query ###$FILE_ENCODINGS% Match%d day%d days%d files have merge conflicts that must be resolved%d files were modified on both branches and must be resolved%d hour%d hours%d matches found%d minute%d minutes%d month%d months%d outgoing changesets%d outgoing changesets in current branch (%s) / %d in total%d outgoing changesets to %s%d outgoing changesets up to current revision (#%d) / %d in total%d outgoing changesets up to revision #%d / %d in total%d patches were exported to:

                                                                                                            %s%d pending changelists found%d second%d seconds%d week%d weeks%d year%d years%d%%%dpt%p%%s (hint: %s)%s (pending)%s (submitted)%s - Revision Details (%s)%s - TortoiseHg Workbench%s - TortoiseHg Workbench - %s%s - branch operation%s - commit%s - commit options%s - hg %s%s - purge%s - recover repository%s - status%s - status (selection filtered)%s - sync options%s - verify repository%s : %s%s %s already exists, replace URL?%s and %s have identical contents %s certificate error: no certificate received%s had rejected chunks, edit patched file together with rejects?%s is a dirty subrepo%s is added%s is deleted by non-hg command, but still tracked%s is ignored%s is modified%s is not a valid repository%s is not modified (clean)%s is not tracked (unknown)%s is removed%s patches%s project settings (.hg/projrc)%s repository settings%s will be imported to %s's global settings&About TortoiseHg&Add&Add Repository...&AfterIndent&Ancestors and Descendants&Archive&Archive...&Auto&Auto Detect&Auto-Complete&Backout...&Bisect...&Branch&Browse...&Bundle Rev and Descendants...&Cancel&Character&Clear&Clone&Close&Close Repository&Commit&Commit to Queue...&Commit to current branch&Copy&Copy Patch&Copy...&Create&Custom Toolbar&Delete&Delete Patches...&Delete Queue...&Delete Unversioned...&Diff Other to Ancestor&Diff Selected File Revisions&Diff to Other&Diff to Parent&Discard&Discard (--force)&Discard changes&Dock Toolbar&Edit File&Edit Local&Edit Toolbar&Edit...&Editor Options&Email Patch...&Exit&False&File&Filter Toolbar&Finish Patch&Flat List&Force&Forget&Goto (update workdir)&Goto Revision...&Graft to Local...&Help&Ignore...&Import&Import Patches...&Incoming&Invisible&Keep (--keep)&License&Local&Mac&Make secret&Mark Excluded Changes&Mark Resolved&Mark Unresolved&Mark as Resolved&Match&Merge&Merge with Local...&Merge...&More Options...&Move&New Repository...&No&No (discard changes)&Open&Open All&Open Local&Open Repository...&Originating Revision&Other&Outgoing&Parent Revision&Parent Revision (%d)&Paste&Patch Branch&Prune&Prune Selected...&Prune...&Pull&Purge Queue...&Purge...&Push Bookmark&Readme&Rebase...&Redo&Refresh&Refresh Repository List&Remote Update...&Remove&Remove Bookmark&Remove...&Rename Active Queue...&Replace&Repository&Resize Columns&Resolve...&Revert&Revert to Revision...&Revert with backup&Revert...&Run&Save&Save at Revision...&Scan Repositories at Startup&Search&Search in Current File&Set...&Settings&Shelve&Shelve...&Sign&Skip this Revision&Sort&Sort by .hgsub&Spaces&Strip&Strip...&Sync Bookmarks...&TAB&TAB Inserts&Tag...&Take Local&Task Toolbar&Terminal&True&Unapply Patch&Undo&Unix&Unspecified&Update&Update...&Verify&View&View Changeset&View Missing&View at Revision&Visible&Web Server&Windows&Word&Workbench Toolbars&Wrap&Yes'Publishing' repository(%s) (DEPRECATED)(excluded from the next commit)(is a changed and dirty sub-repository)(is a changed sub-repository)(is a dirty sub-repository)(is a new and dirty sub-repository)(is a new sub-repository)(is a removed sub-repository)(is an unchanged sub-repository)(no help text available)(same as parent)*: not used by TortoiseHg, resolved merge, unresolved merge3-&Way Diff3-way dir diffLaunch settings tool...%d changeset will be stripped%d changesets will be strippedAnnotate:Candidate MatchesDifferences from Source to DestHost: %sIgnore FilterParse Error!Repository Details:Revert %d files to their contents at the following revision?Revert %s to its contents at the following revision?Selected Options:Selected Options: %sUncommitted local changes are detectedUnknown revision!Unrevisioned FilesUntracked FilesWeb Server:= Working Directory Parent =A README file is not configured for the current repository.

                                                                                                            To configure a README file for a repository, open the repository settings file, add a 'readme' key to the 'tortoisehg' section, and set it to the filename or URL of your repository's README file.A bookmark named "%s" already existsA comma separated list of target groupsA comma separated list of target peopleA new version of TortoiseHg (%s) is ready for download!A repository cannot be added as a subrepo of itselfA revision identifier, bookmark, tag or branch nameA shelf file of that name already existsA shelf name cannot contain %sA terminal shell cannot be opened for remoteA terminal shell must be configuredA&dd Subrepository...A&uthorAbortAbort the export operation. Aborted p4pendingAboutAbout &QtAbout TortoiseHgAcceptAccept All MatchesAccept Selected MatchesAccept the local file version (yours)Accept the other file version (theirs)Activate BookmarksActivate bookmark?Activate:AddAdd &LargefilesAdd &Largefiles...Add Files...Add Path to ServeAdd a repository to this groupAdd as &LargefilesAdd as &Normal FilesAdd files to version controlAdd ignore filter...Add or remove patches must be merged in the working directoryAdd selected untracked files?Add separatorAdd to listAddedAdded tag %s for changeset %sAfter Pull OperationAge:AliasAll HistoryAll changesets belonging to the branches of changesets in set.All changesets, the same as 0:tip.All conflicting files will be marked unresolved.All conflicts are resolved.All contextsAll files (*)All itemsAll revisionsAll unsaved changes will be lost.Allow PushAllow push of a new branch (--new-branch)Allow pushing new branches (--new-branch)Always merge (when possible)Always show repo tabs, even for a single repo. Default: FalseAmendAmend current revisionAn alias for "::." (ancestors of the working copy's first parent).An empty set, if any revision in set isn't found; otherwise, all revisions in set.An error occurred while reading the file.An error occurred while updating the repository hgrc file (%s)An error occurred while writing the file.An exception happened while loading the subrepos of:

                                                                                                            "%s"

                                                                                                            An interrupted graft operation has been found. You cannot perform a different graft operation unless you abort the interrupted graft operation first.Annotate &FileAnnotate Op&tionsAnnotate with revision numbersApp&ly FormatAppendAppend graft info to log messageAppend the changes to the existing patch files. Applied patchesApplied patches or qparentApply all patchesApply changes before exit?Apply one patchApply only this patchApply onto original parentApply patchArabicArchive - %sArchive FormatsArchive types:Are you sure that you want to cancel the commit operation?Are you sure you want to delete these files and/or folders?Are you sure you want to overwrite it ?Are you sure you want to reload this file?Are you sure?Ask UsernameAttempt automatic (trivial) mergeAttempt to push to specified URL or alias after each successful commit. Default: No pushAuthorAuthor ColoringAuto Commit ListAuto Exclude ListAuto Includes:Auto-resolve mergesAutomatically advance to next page when backout and merge are complete.Automatically advance to next page when merge is complete.Automatically resolve merge conflicts where possibleBackBacked out changeset: Backing out a parent revision is a single step operationBacking out and committing...Backing out, then merging...Backout - %sBackout changesetBackout current patch branchBackout requires a parent revisionBackout revisionBackport part of a changeset to a dependencyBackspace or Del to remove row(s)Backup copies of modified files can be found in .hg/Trashcan/Backwards phase change requestedBad filenameBalticBccBefore backout, you must commit, shelve to patch, or discard changes.Before merging, you must commit, shelve to patch, or discard changes.Bisect - %sBisect - Bad, Good...Bisect - Good, Bad...BoldBoo&kmark...Bookmark '%s' does not existBookmark '%s' has been addedBookmark '%s' has been movedBookmark '%s' has been removedBookmark '%s' has been renamed to '%s'Bookmark - %sBookmark named "%s" does not existBookmark:BranchBranch ColorsBranch:Branch: Bro&wse at RevisionBrowse Directory...Browse...Bundle DAG Range...Bundle files (*.hg)Bundles store complete changesets in binary form. Upstream users can pull from them. This is the safest way to send changes to recipient Mercurial users.Bypass ListBzip2 tar archivesC&hoose Log Columns...C&onfigure FormatCLI EditorCan't change settings without iniparse package - view is readonly.Can't find revision '%s'CancelCannot add subrepositoryCannot backout change on a different branchCannot export revisionCannot export revision %s into the file named: %s Cannot import selected revisionCannot open Plugin Options dialogCannot open non Mercurial repositories or subrepositoriesCannot open repositoryCannot open the .hgsub file in:

                                                                                                            %sCannot read the .hgsub file.

                                                                                                            Subrepository removal failed.Cannot start a new searchCannot update the .hgsub file in:

                                                                                                            %sCannot update the .hgsub file.

                                                                                                            Subrepository removal failed.CcCc:CelticCentral and Eastern EuropeCertificate Query ErrorChange &Phase toChangeLog FontChanged by &This CommitChanges have been moved, you must now commitChanges take effect on next commitChangeset LinkChangeset is a merge changeset.Changeset is a named branch head.Changeset is closed.Changeset is tagged.Changeset with highest revision number in set.Changeset with lowest revision number in set.Changeset:ChangesetsChangesets containing files matched by pattern.Changesets not found in the specified destination repository, or the default push location.Changesets that are ancestors of a changeset in set.Changesets where username contains string.Changesets which add files matched by pattern.Changesets which are descendants of changesets in set.Changesets which modify files matched by pattern.Changesets which remove files matched by pattern.Changesets with no parent changeset in set.Character encoding of files in the repository, used by the web interface and TortoiseHg.CheckCheck Subrepo PhaseCheck all filesCheck for incoming changesCheck for incoming changes from %sCheck for incoming changes from selected URLCheck the phase of the current revision of each subrepository. For settings other than "ignore", the phase of the current revision of each subrepository is checked before committing the parent repository. Default: followChecked count: %dCheckingChecking for updates...Checking working directory status...Checking...Checkmark files to addCheckmark files to forgetCheckmark files to removeCheckmark files to revertChild changesets of changesets in set.Child:Chunks selected: %d / %dClea&r LogCleanClearClear contents of shelf file %s?Clear current query and query textClear the current shelf fileClick OK to continue or Abort to exit.Clon&e Repository...Clon&e...Clone - %sClone RepositoryClone to revision:Clone...CloseClose %s branchClose After CommitClose Branch: Close current branchClose other tabsClose tabClose the commit tool after every successful commit. Default: FalseClose:Co&mpare File RevisionsColor changesets by author name. Default: FalseComma separated list of archive formats allowed for downloadingComma separated list of branch names that should be ignored when building a list of branch names for a repository. Default: None (leave blank)Comma separated list of exclusion file patterns. Exclusion patterns are applied after inclusion patterns.Comma separated list of files that are automatically included in every commit. Intended for use only as a repository setting. Default: None (leave blank)Comma separated list of files that are automatically unchecked when the status, and commit dialogs are opened. Default: None (leave blank)Comma separated list of inclusion file patterns. By default, the entire repository is searched.Comma-separated list of blind carbon copy recipient email addressesComma-separated list of carbon copy recipient email addressesComma-separated list of recipient email addressesCommandCommand ErrorCommand outputCommand to use for SSH connections.

                                                                                                            Default: "ssh" or "TortoisePlink.exe -ssh -2" (Windows)CommitCommit Dialog ToolbarCommit LaterCommit NowCommit OptionsCommit backout and merge resultsCommit changesCommit changes in repositoryCommit context menuCommit merge resultsCommit messageCommit...Committing...Common setsCompare revisions of the selected fileCompare to &1st ParentCompare to &2nd ParentCompletely remove file from patch?CompressCompress - %sCompress History...Compress changesets up to and includingCompress is complete, old history untouchedConfig File:Config files (*.conf *.config *.ini)Configuration Error: "%(arg0)s",
                                                                                                            Please fix your configConfigure Custom ToolConfigure Explorer extensionConfigure HookConfigure Issue TrackerConfigure guardsConfigure guards for selected patchConfigure repository settingsConfigure the selected COM Bug Tracker plugin.Configure user wide settingsConfigures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking plugin.Confirm AddConfirm Branch ChangeConfirm DeleteConfirm Delete UnversionedConfirm DiscardConfirm Discard ChangesConfirm Discard MessageConfirm ExitConfirm New BranchConfirm OverwriteConfirm PushConfirm Push to remote RepositoryConfirm ReloadConfirm RemoveConfirm RevertConfirm SaveConfirm StripConfirm URL replaceConfirm UndoConfirm UpdateConfirm adding unknown filesConfirm deleting filesConfirm file deletionsConfirm patch queue switchConfirm path deleteConnecting to Review Board...Consider aborting the graft first.Consider aborting the rebase first.ConsoleContactContext MenuContinue or abort interrupted graft operation?Controls draft phase behavior when working as a server. When true, pushed changesets are set to public in both client and server and pulled or cloned changesets are set to public in the client. Default: TrueConvert an existing repository into a subrepositoryConverted From:CopyCopy &HashCopy &PathCopy - %sCopy ErrorCopy Selected as PatchCopy full path of file(s) to the clipboardCopy messageCopy one of the recent commit messagesCopy source -> destinationCopy the root path of the repository to the clipboardCopy working directory files from skeletonCould not get subrepository listCould not instantiate Issue Tracker plugin COM objectCould not open .hgsub fileCould not open some subrepositoriesCould not open the specified file for reading.Could not open the specified file for writing.Could not translate the file content from native encoding.Could not translate the file content to native encoding.Could not update .hgsub fileCreateCreate &BranchCreate &New Queue...Create Patch QueueCreate Repository HereCreate a new groupCreate a new patchCreate a new repositoryCreate clone here from sourceCreate diff with all changes on this branchCreate diff with all outgoing changesCreate new named branch "%s" with this commit? Cu&tCulprit found.Current local revisionCustom Toolbar &SettingsCustom ToolsCyrillicDateDate:De&tect Renames...Deactivate current bookmark?Dead BranchesDefault PushDefault widgetDefines the regex to match when picking up issue numbers.DeleteDelete %d file in .hg/TrashcanDelete %d files in .hg/TrashcanDelete %d ignored fileDelete %d ignored filesDelete %d unknown fileDelete %d unknown filesDelete %s from your repo configuration file?Delete Group '%s' and all its entries?Delete Patch QueueDelete PatchesDelete ToolDelete empty foldersDelete from listDelete hookDelete patches...Delete reference toDelete selected chunksDelete selected chunks from shelf file %s?Delete selected chunks from working copy?Delete selected patchesDelete selected query from historyDelete shelf file %s?Delete the current shelf fileDelete the following unversioned files?Deleted %d filesDeleted %d files and %d foldersDeleted*Deleting trash folder...Deletion failuresDeny PushDescriptionDestDestination file already exists.Destination path:Destination:Detect Copies/Renames in %sDetect outgoing changesDetect outgoing changes to %sDetect outgoing changes to selected URLDetect renames and copiesDetected merge/diff tools:Detected uncommitted local changes in working tree. Please select to continue: Detected uncommitted local changes.Determines if TortoiseHg should show a confirmation dialog before pushing changesets. If False, push will be performed without any confirmation dialog. Default: TrueDetermines when the issue tracker state will be updated by TortoiseHg. Valid settings values are:

                                                                                                            • never: Do not update the Issue Tracker state automatically.
                                                                                                            • commit: Update the Issue Tracker state after a successful commit.

                                                                                                            Default: neverDetermining outgoing changesets to email...Diff &Changeset to ParentDiff &LocalDiff &Local to AncestorDiff Changeset to Loc&alDiff File toDiff FontDiff Selected &ChangesetsDiff ToolbarDiff and AnnotateDiff contentsDiff not displayed: Diff to &LocalDiff to parentDir diff to p1Dir diff to p2Directory diffDirectory of filesDiscard - discard local changes, no backupDiscard current backout message?Discard current commit message?Discard local changes (revert --all)Discard local changes, no backup (-C/--clean)Discard local changes, no backup (-f/--force)Discard outstanding changes to working directory?Discard remote changes, no backup (-C/--clean)Display closed branchesDisplay graph the named branch onlyDisplay only active branchesDisplay the file anywayDisplaying %(count)d of %(total)d itemsDnD SynchronizeDo not include modification dates in diff headers. Default: FalseDo not modify working copy during strip (-k/--keep)Do not save backup files (*.orig)Do not show menu items on unversioned folders (use shift + click to override)Do not strip paths (-p0), required for SVN patchesDo not update the new working directoryDo not verify host certificateDo you really want to force a backwards phase transition?Do you really want to activate patch queue '%s' ?Do you really want to deactivate the %s bookmark?Do you really want to make this revision secret?Do you really want to remove the repository "%s" from its parent repository "%s"Do you want to exit?Do you want to keep them or discard them?Drag to change orderDuplicate NameE&ncodingE&xitE&xploreE&xplore FolderE&xplore LocalE&xplorer HelpE&xportE&xport Patch...EOL &ModeEOL &VisibilityEditEdit FileEdit Ignore FilterEdit LocalEdit Path to ServeEdit Re&jectsEdit Tool ...Edit current file in working copyEdit fileEdit hookEdit patch dependency graphEdit patched file and rejects?Edit repository ignore filterEdit resolved fileEditor launch failureEmailEmail DAG Range...Email Selected...Email address to use in the "From" header and for the SMTP envelopeEmail outgoing changesets for remote repositoryEmit debugging output (--debug)Enabled Overlay HandlersEnabled overlaysEncodingEnglish MessagesEnter line number (1 - %d)Enter revision identifierErrorError encountered.Error executing "commit finished" triggerError getting commit message information from Issue Tracker pluginError loading subreposError previewing subrepo: %sError string "%(arg0)s" at %(arg1)s
                                                                                                            Please edit your configError writing fileExcel files (*.xls *.xlsx)ExcludeExcludes:Execute custom tool '%s'ExitExit without finishing resolve?Exiting with an unfinished graft is not recommended.Exiting with an unfinished rebase is not recommended.Explorer Extension SettingsExplorer Extension Settings - TortoiseHgExport DAG Range...Export Diff...Export Selected...Export patchExtExtensionsFailed to add repositoryFailed to add subrepositoryFailed to execute custom TortoiseHg commandFailed to execute custom commandFailed to load issue tracker '%s': %sFailed to load issue tracker: '%s': %s. Failed to open path in terminalFailed to open repositoryFailed to refreshFailed!Fetch - use fetch (auto merge pulled changes)Fetch - use fetch extension (fetch is not active!)Fields to match:FileFile Differences Log ColumnsFile HistoryFile History Log ColumnsFile List ToolbarFile StatusFile Status:File already existsFile conflicts need to be resolvedFile context menu (on manifest and revision details)File is binaryFile is larger than the specified max size. maxdiff = %s KBFile may be binary (maximum line length exceeded)File or diffs not displayed: File or diffs not displayed: File is larger than the specified max size. maxdiff = %s KBFile pattern setsFile was not within current repositoryFilenameFilesFiles of at least the specified size (in megabytes) will be added as bfilesFiles of at least the specified size (in megabytes) will be added as largefilesFiles with names meeting the specified patterns will be automatically added as bfilesFiles with names meeting the specified patterns will be automatically added as largefilesFilter Histor&yFilter b&yFilter graph with revision sets or branchesFilter:Find RenamesFind copy and/or rename sourcesFind matches - %sFind revisions matching fields of:Find revisions that "match" one or more fields of the given set of revisions.Finding outgoing changesets to %s...FinishedFirst n members of a set.First parent for all changesets in set, or the working directory.Fixed revisionsFlag:Fold patches...Follow copies and renamesFont used to display changelog data. Default: monospace 10Font used to display commit messages. Default: monospace 10Font used to display output messages. Default: sans 8Font used to display text differences. Default: monospace 10FontsFor which kinds of revisions the tool will be enabled It is only taken into account when the tool is shown on the selected revision context menu.Force Repo TabForce a merge with outstanding changes (-f/--force)Force push or pop (--force)Force push or pull (override safety checks, --force)Force push to remote location (-f/--force)Force removal of modified files (--force)ForgetForget Files...Fork GUIForwardFound %d incoming changesetsFound incoming changesets from %sFromFrom:Full AuthornameFull Path TitleGPG key ID associated with user. Default: None (leave blank)Generate English commit messages even if LANGUAGE or LANG environment variables are set to a non-English language. This setting is used by the Merge, Tag and Backout dialogs. Default: FalseGetting incoming changesets from %s...Git FormatGit patches can describe binary files, copies, and permission changes, but recipients may not be able to use them if they are not using git or Mercurial.GlobGlobal SettingsGnuPGGo &to PatchGo toGo to LineGo to a specific revisionGo to current revisionGoto ancestor of %s and %sGoto common ancestorGoto revisionGraftGraft - %sGraft Selected to local...Graft abortedGraft changesetGraft changeset #%d of %dGraft failedGraft generated merge conflicts that must be resolvedGraft is completeGraft:GraphGraphical merge program for resolving merge conflicts. If left unspecified, Mercurial will use the first applicable tool it finds on your system or use its internal merge tool that leaves conflict markers in place. Choose internal:merge to force conflict markers, internal:prompt to always select local or other, or internal:dump to leave files in the working directory for manual mergingGreatest common ancestor of the two changesets.GreekGuards: %d/%dGuess RenamesGzip tar archivesHTTP Error: %d (%s)Head is closed!HebrewHg command:Hg file log viewer [%s] - %sHg patches (as generated by export command) are compatible with most patch programs. They include a header which contains the most important changeset metadata.Hide DetailHide TagsHide context menu outside repositoriesHighlight IconHook typeHooksHostHost name and (optional) port of proxy server, for example "myproxy:8000"Host name of mail serverHostname the sender can use to identify itself to the mail server.How many lines a "zebra stripe" should span in multiline output. Default is 1; set to 0 to disable.IconIconsIf no username has been specified, the user will be prompted to enter a username. Default: FalseIf specified, files in the directory, e.g. .hgignore, are copied to the newly-created repository.If true, concatenate multiple lines of changeset summary and truncate them at 80 characters as necessary. Default: FalseIf you still have trouble, please file a bug report.Ignore Ignore Blank LinesIgnore WS AmountIgnore White SpaceIgnore caseIgnore changes in the amount of white space in diff views. Default: FalseIgnore changes in the amount of white space in the annotate view. Default: FalseIgnore changes whose lines are all blank in diff views. Default: FalseIgnore changes whose lines are all blank in the annotate view. Default: FalseIgnore filter - %sIgnore white space when comparing lines in diff views. Default: FalseIgnore white space when comparing lines in the annotate view. Default: FalseIgnored*Immediate OperationsImport - %sImport from ClipboardImport to &MQIn &Current RevisionIn &Original RevisionIn All &HistoryIn Current &FileIn-Reply-To:IncludeInclude all ancestorsInclude patch queueIncludes:Incoming BookmarksIncoming from %s aborted, ret %dIndicates whether TortoiseHg should attempt to automatically resolve changes from both sides to the same file, and only report merge conflicts when this is not possible. When False, all files with changes on both sides of the merge will report as conflicting, even if the edits are to different parts of the file. In either case, when conflicts occur, the user will be invited to review and resolve changes manually. Default: True.Iniparse must be installed.Iniparse package not foundInitial revisionInline TagsInput new guards for %s:Insufficient access rights, reverting to read-only mode.Insufficient access rights.InterruptedInterrupted graft operation foundInvalid PatternsInvalid Settings - Please provide your ReviewBoard usernameInvalid Settings - The ReviewBoard server is not setupInvalid commandInvalid configuration: %sInvalid date formatInvalid default push revision: %s. Please check your Mercurial configuration (tortoisehg.defaultpush)Invalid glob expressionInvalid regexp expressionInvalid reviewboard plugin. Please download the Mercurial reviewboard plugin version 3.5 or higher from the website below. %sIssue LinkIssue RegexIssue TrackerIssue Tracker PluginIssue Tracker Plugin ErrorIssue Tracker TriggerIssue TrackingIt was not possible to fully load the subrepository list for the repository in:

                                                                                                            %s

                                                                                                            The following subrepositories may be missing, broken or on an inconsistent state and cannot be accessed:

                                                                                                            %sIt was not possible to get the subrepository list for the repository in:

                                                                                                            %sItalicJapaneseKeep original branch names (--keepbranches)Keep original changesets (--keep)Keep patch filesKey IDKey:Keyword SearchKiln BfilesKnown bad revision:Known good revision:KoreanLargefilesLeft ToolbarLet the user update the projrc on incoming:

                                                                                                            • never: [default] Show whether the remote projrc file has changed, but do not update (nor ask to update) the local projrc file.
                                                                                                            • prompt: Look for changes to the projrc file. If there are changes _always_ show a confirmation prompt, asking the user if it wants to update its local projrc file.
                                                                                                            • auto: Look for changes to the projrc file. Use the value of the "projrc.confirm" configuration key to determine whether to show a confirmation dialog or not before updating the local projrc file.

                                                                                                            Default: neverLicenseLike "keyword(string)" but accepts a regex.LineList Optio&nsList of all toolsList of settings that will NOT be pulled from the project configuration file. Default is exclude none of the included settings.List of settings that will be pulled from the project configuration file. Default is include NO settings.List updated files (--verbose)Load &All RevisionsLoad all revisions into graphLoading repository %sLocal HostnameLocal PathLocal Path:Local Repository %sLocal disks onlyLocal revision informationLocal signLocal tagLocation:Lock CloneLock a file not described in .hglocksLock of %s failed, retryLock of %s successfulLocked And Lockable Files:Locked*Locking %sLocking UserLogLog Batch SizeLong SummaryMMQ &OptionsMQ Git FormatMQ QPushPushMQ QPushPush allMQ optionsMa&nifest ModeMake MQ patches secret (instead of draft). Default: FalseMake repo compatible with Mercurial <1.7Making a "draft" revision "secret" is generally a safe operation. However, there are a few caveats: - "secret" revisions are not pushed. This can cause you trouble if you refer to a secret subrepo revision. - If you pulled this revision from a non publishing server it may be moved back to "draft" if you pull again from that particular server. Please be careful!Manage HTTPS connection security and user authenticationManage pending perforce changelistsMandatory Issue ReferenceManually resolve rejected chunks?Manually resolve rejected patch chunksMark as &UnresolvedMark this chunk as resolved, goto next unresolvedMark this chunk as unresolvedMark this file as resolvedMark this file as unresolvedMatch TextMatch any of %d revisionsMax ChangesMax Diff SizeMax FilesMaximum number of changes to list on the changelog. Default: 10Maximum number of files to list per changeset. Default: 10Members of a set with no children in set.Menu BehaviorMercurial Re&solveMercurial UserMercurial command is still running. Are you sure you want to terminate?Mercurial keyring extension is enabled. Passwords will be stored in a platform-native secure method.Mercurial was unable to find an editor. Please configure Mercurial to use an editor installed on your system.MergeMerge - %sMerge - allow to merge with local changesMerge all pending dependenciesMerge caused file conflictsMerge changesetMerge from (other revision)Merge rejected patch chunks into %sMerge revision not specified or not foundMerge to (working directory)Merge using selected merge toolMerge with %sMerge with the other head of the current branchMerging...MessageMessage FontMessage Translation FailureMessage identifier to reply to, for threadingMethod to enable TLS when connecting to mail server. Default: noneMin Similarity: %d%%Minimum SizeMissing informationModi&fy HistoryMonitor Repo ChangesMonitor working
                                                                                                            directory changesMoveMove all files leftMove all files rightMove applied patches into repository historyMove changes between working dir and patchMove selected chunks leftMove selected chunks rightMove selected file leftMove selected file rightMoved tag %s to changeset %s (from changeset %s)Multiple sources chosenNameName associated with commits. The common format is:
                                                                                                            Full Name <email@example.com>Name or email address of the person in charge of the repository.Named branch "%s" already exists, last used in revision %d New &GroupNew &WorkbenchNew Branch: New Commit PhaseNew GroupNew Name:New Patch BranchNew Repo SkeletonNew RepositoryNew ShelfNew Tool ...New file createdNew hookNew patch message:New patch queue nameNew shelf createdNextNext DiffNext diffNo DatesNo appropriate filesNo backup (-n/--nobackup)No branch changesNo chunks remainNo commitNo deletable chunksNo diff tool foundNo editor foundNo file changesNo files checkedNo files found for this operationNo files selectedNo files to findNo host specifiedNo host validation, but still encrypted (bad)No ignored files foundNo incoming changesets from %sNo issue link was found in the commit message. The commit message should contain an issue link. Configure this in the 'Issue Tracking' section of the settings.No items to displayNo matches foundNo merge conflicts, ready to commitNo merge conflicts, ready to commit or reviewNo modified files checkmarked for commitNo operation to performNo outgoing changesetsNo outgoing changesets to %sNo patch branch selectedNo pending Perforce changelistsNo remote repository URL or path setNo repository foundNo shell configuredNo transaction availableNo trash files foundNo unknown files foundNo username configuredNo valid default remote repository URL or path has been configured for this repository.

                                                                                                            Please type and save a remote repository path on the Sync widget.No visual diff tools were detectedNo visual editor configuredNone - simply pull changesetsNordicNormalize file line endings during and after patch to lf or crlf. Strict does no normalization. Auto does per-file detection, and is the recommended setting. Default: strictNot a Mercurial subrepo, not previewableNot a head revision!Not a head, backout will create a new head!Nothing CommittedNothing changed.Nothing to importNothing to pushOKObsolete state:On repowidget, show forOne or more of the changesets that you are attempting to push involve the creation of a new branch. Do you want to create a new branch in the remote repository?Only consider deleted filesOnly files modified/created in this revisionOnto destinationOpenOpen &TerminalOpen S&ubrepositoryOpen a (nonmergable) file you wish to be lockedOpen a new named branchOpen a shell terminal in the repository rootOpen a shell terminal in the selected folderOpen advanced query editorOpen all repositories in new tabsOpen hgweb configOpen new tabs next to the current tabOpen parent folder of current file in the system file managerOpen shelve toolOpen the repository in a file browserOpen the repository in a new tabOpen the selected folder in the system file managerOpen the selected subrepositoryOperation aborted:

                                                                                                            %(arg0)s.Operation which is performed directly after a successful pull. update equates to pull --update, fetch equates to the fetch extension, rebase equates to pull --rebase, updateorrebase equates to pull -u --rebase. Default: noneOptional. Comma-separated list of host names that should bypass the proxyOptional. Method to use to send email messages. If value is "smtp" (default), use SMTP (configured below). Otherwise, use as name of program to run that acts like sendmail (takes "-f" option for sender, list of recipients on command line, message on stdin). Normally, setting this to "sendmail" or "/usr/sbin/sendmail" is enough to use sendmail to send messages.Optional. PEM encoded client certificate chain file. Environment variables are expanded in the filename.Optional. PEM encoded client certificate key file. Environment variables are expanded in the filename.Optional. Password to authenticate with at the proxy serverOptional. Password to authenticate with. If not given, and the remote site requires basic or digest authentication, the user will be prompted for it.Optional. User name to authenticate with at the proxy serverOptional. Username to authenticate with. If not given, and the remote site requires basic or digest authentication, the user will be prompted for it. Environment variables are expanded in the username letting you do foo.username = $USER.OptionsOptions:Or use:Order the subrepos as in .hgsubOriginal Parent:Other revision informationOutgoing BookmarksOutgoing aborted, ret %dOutgoing to %s aborted, ret %dOutput FontOverlaysP&ull BookmarkP&ushPDF docs (*.pdf)PEM files (*.pem *.crt *.cer)PEM files (*.pem *.key)Parent 1:Parent 2:Parent:ParentsPasswordPassword to authenticate to mail server withPassword to authenticate with review boardPassword:Paste &FilenamesPatch Branch ToolbarPatch EOLPatch Files (*.patch)Patch Name RequiredPatch QueuePatch Queue Actions ToolbarPatch date:Patch exportedPatch failed to applyPatch files (*.diff *.patch)Patch files already existPatch fold - %sPatch message:Patch name:Patch series description is sent in initial summary email with [PATCH 0 of N] subject. It should describe the effects of the entire patch series. When emailing a bundle, these fields make up the message subject and body. Flags is a comma separated list of tags which are inserted into the message subject prefix.Patch user:Patch:Patch: %sPatches exportedPatches to foldPathPath Edit ToolbarPath to review board example "http://demo.reviewboard.org"Path to the directory where a system-wide cache of bfiles will be storedPath to the directory where a user's cache of largefiles will be storedPath:Paths in Repository Settings:PatternsPending Perforce Changelists - %sPerforce pending...Perforce:Perform a push before updating (-p/--push)PhasePlace Console in Doc&k AreaPlain, do not prepend Hg headerPlease configure a visual editor.Please enable and configure simplelockPlease enable the Gpg extension first.Please enter a usernamePlease enter commit messagePlease report this bug to our bug trackerPlease set a valid URL to continue.Please wait while committing merged files.Please wait while making backout.Please wait while the file is opened ...Please wait...PopPop allPortPort to connect to on mail server. Default: 25Port to listen onPort:Post &ReviewPost Pull BehaviorPost Pull: Post ReviewPost Selected to Review Board...Post to Re&view Board...Prepare to backoutPrepare to mergePreserve files beginning with .hgPrevPreviewPreview:Previous DiffPrevious diffPreviously the subrepository was at the following revision:ProjrcProxyPrune - %sPublish request immediatelyPullPull from %s aborted, ret %dPull from %s completedPull incoming changesPull incoming changes from %sPull incoming changes from selected URLPull incoming changesets into your repositoryPull subrepos from:Pull to here...Pulled remote bookmark: %sPulling from %s...PurgePurge Patch QueuePurposePus&hPush &AllPush After CommitPush After Commit:Push Requires SSLPush Selected &BranchPush allPush current branch (%s)Push outgoing changesPush outgoing changes to %sPush outgoing changes to selected URLPush to %s abortedPush to %s aborted, ret %dPush to %s completedPush to &HerePush to remote repository %s ?Push up to current revision (#%d)Push up to revision #%dPushed local bookmark: %sPushing to %s...QNewQRefreshQueryQuery about changesets affecting the selected filesQuitR&emove BookmarkR&epository Registry OptionsR&ollback/Undo...README not configuredRe&coverRe&move VersionedRe&move from RegistryRe&nameRe&name Patch...Re&name...Readonly*ReadyReady to purge.Ready, double click to lock or unlockRebaseRebase - %sRebase - rebase local commits above pulled changesRebase - use rebase extension (rebase is not active!)Rebase abortedRebase already in progressRebase changeset and descendantsRebase failedRebase generated merge conflicts that must be resolvedRebase is completeRebase unpublished onto Subversion head (override source, destination)Rebase...Recurse into subrepositoriesRecurse into subrepositories (--subrepos)Redundant authentication infoRefreshRefresh &Task TabRefresh ToolbarRefresh current patchRefresh current repositoryRefresh file listRefresh lock informationRefresh only the current task tabRefresh the Repository Registry listRefreshing locks...RegexpRegexp:Regular expression search patternReject incoming changesetsRelated Paths:ReloadReload FileRemo&ve Subrepository...Remote Update - %sRemote command:RemoveRemove &All Selected FilesRemove &Unmodified FilesRemove Files...Remove authentication data from URLRemove current working revision?Remove files from version controlRemove filter, show rootRemove patch directory ofRemove patches from queue?Remove selected deleted files?Remove the node and all its subnodes. Repositories are not deleted from disk.Remove the selected repository?Remove this subrepository from the current revisionRemoved local bookmark: %sRemoved remote bookmark: %sRemoved tag %sRenameRename - %sRename ErrorRename FileRename PatchRename Patch QueueRename file or directoryRename patch %s to:Rename patch queue '%s' toRename patch...Rename the entryReopen last closed tabReopen last closed tab groupReplaceReplace existing hook?Replace existing tag (-f/--force)Replace the existing patch files. Report only the first match per fileRepositoriesRepositoryRepository ErrorRepository ID:Repository RegistryRepository Registry updatedRepository SettingsRepository command still runningRepository is lockedRepository name to use in the web interface, and by TortoiseHg as a shorthand name. Default is the working directory.Repository not localRepository status & changesRequire confirmationResolve Conflicts - %sResolved conflictsRestart &BranchRestart Mer&geRestart Merge &withRestart all TortoiseHg applications for the following changes to take effect:Resuming rebase already in progressRevRevertRevert &All Files...Revert - %sRevert Files...Revert all file changes?Revert all files to this revisionRevert all working copy changes?Revert file changesRevert file(s) to contents at this revisionRevert files to local or other parent?Revert local file changes?Revert the following files?Revert to RevisionReverting all files will discard changes and leave affected files in a modified state.

                                                                                                            Are you sure you want to use revert?

                                                                                                            (use update to checkout another revision)Reverting p4 changelist...Review BoardReview ID:Review draft posted to %s Review published to %s RevisionRevision #%d (%s) was exported to:

                                                                                                            %s%s%sRevision &DetailsRevision SetRevision Set QueryRevision details context menuRevision has changed to:Revision is &BadRevision is &GoodRevision to Match:Revision:Revisions to Match:Right ToolbarRollback commit to revision %dRollback to revision %d (undo %s)?Running at %sRunning...RussianS&ync ToolbarS&ynchronizeSMTP HostSMTP PasswordSMTP PortSMTP TLSSMTP UsernameSSH CommandSSL error: %sSSL: Server certificate verify failedSSL: unknown error %s:%sSa&ve Current Sync Paths on ExitSaveSave GlobalSave Open Repositories on E&xitSave PathSave changes before editing?Save current URL under an aliasSave error report toSave file as it appeared at this revisionSave file toSave hgweb configSave in RepoScan &Remote RepositoriesSearchSearch HistorySearch Selected TextSearch already in progressSearch commit message, user name, and names of changed files for string.Search file revisions for patternsSearch in All &HistorySearchingSearching...Second parent for all changesets in set, or the working directory.Secret MQ PatchesSecure HTTPS ConnectionSecuritySecurity: Select &AllSelect &NoneSelect Destination FileSelect Destination FolderSelect Directory containing patchesSelect RepositorySelect Source FileSelect Source FolderSelect Tool:Select a GUI location to edit:Select an existing repository to add as a subrepoSelect branch of merge commitSelect bundle fileSelect destination repositorySelect if TortoiseHg will show a target combo in the sync toolbar.

                                                                                                            • auto: The default. Show the combo if more than one target configured.
                                                                                                            • always: Always show the combo.

                                                                                                            Default: autoSelect patch folderSelect patchesSelect post-pull operation for this repositorySelect repositorySelect repository directory to addSelect repository directory to openSelect source repositorySelect the initial revision that will be selected when opening a repository. You can select the "current" (i.e. the working directory parent), the current "tip" or the working directory ("workingdir"). Default: currentSelect the initial widget that will be shown when opening a repository. Default: revdetailsSelect the revisions that will be pushed by default, whenever you click the Push button.

                                                                                                            • all: The default. Push all changes in all branches.
                                                                                                            • branch: Push all changes in the current branch.
                                                                                                            • revision: Push the changes in the current branch up to the current revision.

                                                                                                            Default: allSelect the toolbar or menu to changeSelect when TortoiseHg will show a prompt to activate a bookmark when updating to a revision that has one or more bookmarks.

                                                                                                            • auto: Try to automatically activate bookmarks. When updating to a revision that has a single bookmark it will be activated automatically. Show a prompt if there is more than one bookmark on the revision that is being updated to.
                                                                                                            • prompt: The default. Show a prompt when updating to a revision that has one or more bookmarks.
                                                                                                            • never: Never show any prompt to activate any bookmarks.

                                                                                                            Default: promptSelect when the working directory status list will be refreshed:
                                                                                                            - auto: [default] let TortoiseHg decide when to refresh the working directory status list.
                                                                                                            TortoiseHg will refresh the status list whenever it performs an action that may potentially modify the working directory. This may miss any changes that happen outside of TortoiseHg's control;
                                                                                                            - always: in addition to the automatic updates above, also refresh the status list whenever the user clicks on the "working dir revision" or on the "Commit icon" on the workbench task bar;
                                                                                                            - alwayslocal: same as "always" but restricts forced refreshes to local repos.
                                                                                                            Default: autoSelect when your command will be runSelect whether you want to have a single workbench window. If you disable this setting you will get a new workbench window everytime that you use the "Hg Workbench" command on the explorer context menu. Default: TrueSelected changeset pair not relatedSend &EmailSend changesets as Hg patchesSend single binary bundle, not patchesSending EmailServerServer Repository IDServersSet &Guards...Set AncestrySet Date:Set LogicSet username:Settin&gsSettingsSettings File:Several characters would be lost.Several icons are courtesy of the TortoiseSVN and Tango projectsSh&ow Repository RegistryShelfShelf clearedShelf deletedShelf: %sShellShelve - move local changes to a patchShelve ChangesShould new tabs be open next to the current tab? If False new tabs will be open after the last tab. Default: TrueShow &AuthorShow &DateShow &Patch QueueShow &PathsShow &RevisionShow About DialogShow Conso&leShow DetailShow Family LineShow FunctionShow IconShow IssuesShow Issues...Show LogShow Output LogShow Revision &DetailsShow S&hort PathsShow a full directory path of the repository in the dialog title instead of just the root directory name. Default: FalseShow allShow all version-controlled files in tree viewShow changes from first parentShow changes from second parentShow files changed by this commitShow full authorname in Logview. If not enabled, only a short part, usually name without email is shown. Default: FalseShow indirect revision dependency on the revision graph when filtered by revset. Default: True

                                                                                                            Note: Calculating family line may be slow in some cases. This option is expected to be removed if the performance issue is solved.Show tabs along the side of the bottom half of each repo widget allowing one to switch task tabs without using the toolbar. Default: offShow tags at start of commit message.Show the history of the selected fileShow which function each change is in. Default: FalseShow/Hide hidden changesetsSig&n...Sign - %sSign even if the sigfile is modified (-f/--force)Signature has been addedSimplelockSimplelock extension not enabledSingle Workbench WindowSizeSize (KB)Skip final confirmation page, close after commit.Skipping %s, unable to readSome of the files that you have selected are of a size over 10 MB. You may make more efficient use of disk space by adding these files as largefiles, which will store only the most recent revision of each file in your local repository, with older revisions available on the server. Do you wish to add these files as largefiles?Sort by &NameSort by &PathSort set by keys. The default sort order is ascending, specify a key as "-key" to sort in descending order.Sort the group by full pathSort the group by short nameSourceSource does not exist.Source:South-Eastern EuropeSouthern EuropeSpace separated list of branch names and colors of the form branch:#XXXXXX. Spaces and colons in the branch name must be escaped using a backslash (\). Likewise some other characters can be escaped in this way, e.g. \u0040 will be decoded to the @ character, and \n to a linefeed. Default: None (leave blank)Space separated list of shell operations you would like to be performed immediately, without user interaction. Commands are "add remove revert forget". Default: None (leave blank)Space separated list of tags that will not be shown. Useful example: Specify "qbase qparent qtip" to hide the standard tags inserted by the Mercurial Queues Extension. Default: None (leave blank)Specify name of new shelfSpecify the command to launch your preferred terminal shell application. If the value includes the string %(reponame)s, the name of the repository will be substituted in place of %(reponame)s. Similarly, %(root)s will be the full path to the repository. (restart needed)
                                                                                                            Default, Windows: cmd.exe /K title %(reponame)s
                                                                                                            Default, OS X: not set
                                                                                                            Default, other: xterm -T "%(reponame)s"Specify the number of spaces that tabs expand to in various TortoiseHg windows. Default: 8Specify the path to GPG. Default: gpgSpecify the target filesystem where TortoiseHg monitors changes. Default: localonlySpecify visual diff tool, as described in the [merge-tools] section of your Mercurial configuration files. If left unspecified, TortoiseHg will use the selected merge tool. Failing that it uses the first applicable tool it finds.Specify visual editor, as described in the [editor-tools] section of your Mercurial configuration files. If left unspecified, TortoiseHg will use the first applicable tool it finds.Specify which task buttons you want to show on the task toolbar and in which order.
                                                                                                            Type a list of the task button names. Add separators by putting "|" between task button names.
                                                                                                            Valid names are: log commit sync grep and pbranch.
                                                                                                            Default: log commit grep pbranch | syncSpecify your preferred user interface language (restart needed)StartStart a new patch branchStart revision:Start web server for this repositoryStatStatusStatus File List ToolbarStatus:StopStop current operationStoppedStrikeStrip - %sStrip:StripesStripping Mercurial header removes username and parent information. Only useful if recipient is not using Mercurial (and does not like to see the headers).StyleSub menu items:Subject:Submitting p4 changelist...Subrepo '%s' has a non trivial default sync URL:

                                                                                                            %s

                                                                                                            Replace it with the following URL?:

                                                                                                            %sSubrepo added to .hgsub fileSubrepo created and set to initial revision.Subrepo initialized to revision:Subrepo may be damaged or inaccessible.Subrepo removed from repository.Subrepo state is:Subrepo statesSubrepo was not changed.Subrepository already existsSubrepository not foundSubrepository not found in the working directory.Subrepository removed from .hgsubSubversion:SuccessSuccessors:Suggested length of commit message lines. A red vertical line will mark this length. CTRL-E will reflow the current paragraph to the specified line length. Default: 80Summary (first description line)Summary Line LengthSummary:Swap source and destinationSyncSync BookmarksSynchronizeSynchronize with dragged repositorySynchronize with remote repositorySyntax HighlightingSystem CacheTab WidthTag '%s' has been addedTag '%s' has been movedTag '%s' has been removedTag - %sTag:Tagged:Tags:Take &OtherTar archive compressed using bzip2Tar archive compressed using gzipTar archivesTarget ComboTarget GroupsTarget PeopleTarget:Task TabsTask Toolbar OrderTaskbarTemporarily disable configured HTTP proxyTemporary files are removed when this dialog is closedTerminated by userTest this revision and report findings. (good/bad/skip)Text Translation FailureText files (*.txt)Textual description of the repository's purpose or contents.ThaiThe .hgsub file already contains the line:

                                                                                                            %sThe changes from revision %s and all unmerged parents will be discarded. Are you sure this is what you want to do?The command "%s" could not be executed.The command "%s" failed (code %d).The command that will be executed. To execute a python function prepend the command with "python:". The default repository id for this repo on the review board serverThe destination "%s" already exists as a file!The destination "%s" already exists as a folder!The destination must be within the repository tree.The directory "%s" is not empty! Do you want to overwrite it?The directory where the command will be executed. If this is not set, the root of the current repository will be used instead. You can use the same {VARIABLES} as on the "Command" setting. The editor used by Mercurial command line commands to collect multiline input from the user. Most notably, commit messages.The exception error message was:

                                                                                                            %s

                                                                                                            The file "%s" already exists! Do you want to overwrite it?The following error message was returned: "%s" Please check that the command path is valid and that it is a valid applicationThe following error message was returned: %sThe hook name cannot contain any spaces, tabs or '=' characters.The hook name. It cannot contain spaces.The maximum size file (in KB) that TortoiseHg will show changes for in the changelog, status, and commit windows. A value of zero implies no limit. Default: 1024 (1MB)The named bookmark or all bookmarks.The named tag or all tags.The number of revisions to read and display in the changelog viewer in a single batch. Default: 500The phase of new commits. Default: draftThe selected command is emptyThe selected folder:

                                                                                                            %s

                                                                                                            is not inside the target repository.

                                                                                                            This may be allowed but is greatly discouraged.
                                                                                                            If you want to add a non trivial subrepository mapping you must manually edit the .hgsub fileThe selected repository:

                                                                                                            %s

                                                                                                            cannot be open!The selected repository:

                                                                                                            %s

                                                                                                            is already a subrepository of:

                                                                                                            %s

                                                                                                            as: "%s"The selected revision (%s) has a bookmark on it called "%s".

                                                                                                            Do you want to activate it?
                                                                                                            You can disable this prompt by configuring Settings/Workbench/Activate BookmarksThe selected revision (%s) has %d bookmarks on it.

                                                                                                            Select the bookmark that you want to activate and click OK.

                                                                                                            Click Cancel if you don't want to activate any of them.

                                                                                                            You can disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                                                                            The selected revision (rev #%d) cannot be imported because it is not a descendant of qparent (rev #%d)The selected subrepo:

                                                                                                            %s

                                                                                                            has been added to the .hgsub file of the repository:

                                                                                                            %s

                                                                                                            Remember that in order to finish adding the subrepo you must still commit the changes to the .hgsub file in order to confirm the addition of the subrepo.The selected subrepository has been removed from the .hgsub file.

                                                                                                            Remember that you must commit this .hgsub change in order to complete the removal of the subrepository!The selected subrepository was not found on the .hgsub file.

                                                                                                            Perhaps it has already been removed?The set of all parents for all changesets in set.The source must be within the repository tree.The subrepository is dirty.The tool icon. You can use any built-in TortoiseHg icon by setting this value to a valid TortoiseHg icon name (e.g. clone, add, remove, sync, thg-logo, hg-update, etc). You can also set this value to the absolute path to any icon on your file system.The tool label, which is what will be shown on the repowidget context menu. If no label is set, the tool name will be used as the tool label. If no tooltip is set, the label will be used as the tooltip as well.The tool name cannot have any spaces in it.The tool name. It cannot contain spaces.The tooltip that will be shown on the tool button. This is only shown when the tool button is shown on the workbench toolbar.The working directory is already merged. Continue or discard existing merge.There are existing patch files for %d revisions (%s) in the selected location (%s). There are merge conflicts to be resolvedThere are no configured sync paths. Open the Synchronize tab to configure them.There are no conflicting file merges.There are no file changes to viewThere are no files that may have been renamedThere is already an existing folder with that same name.There is an existing %s.%s hook. Do you want to replace it?There is no rollback transaction availableThg - TortoiseHg's GUI tools for Mercurial SCM (Hg) This appears to be a binary file.This error will not be shown again until you restart the workbenchThree-way Merge ToolTitleToTo finish merging, you must commit the working directory. To cancel the merge you can update to one of the merge parent revisions.To graft destinationTo rebase destinationTo:Toggle display of text search barToggle filtering of non-matched changesetsToggle graft relations visibilityToggle parent to be used as the base revisionTolerate non-conflicting local changes (--keep-changes)Too many rows selected for menuTool &ResolveTool labelTool launch failureTool nameToolsTools shown on selected locationTooltipTop menu items:TortoiseHg Bookmark SyncTortoiseHg Bug ReportTortoiseHg Command DialogTortoiseHg CommitTortoiseHg Dialogs (version %s), Mercurial (version %s) TortoiseHg ErrorTortoiseHg Lock Tool - %sTortoiseHg New Shelf NameTortoiseHg Overlay Icon ServerTortoiseHg PromptTortoiseHg SearchTortoiseHg SettingsTortoiseHg Shelve - %sTortoiseHg Web ServerTortoiseHg WorkbenchTortoiseHg has created a new .hgignore file. Would you like to add this file to the source code control repository?Traditional ChineseTransplant:Trigger revision set queryTry refreshing your repository.TurkishTypeU&nbundle...UI LanguageURLURLError: %sUkrainianUnable to backoutUnable to compress historyUnable to create a Mercurial.ini fileUnable to create a config fileUnable to delete %d file or folderUnable to delete %d files or foldersUnable to determine pending changesetsUnable to determine working copy revision Unable to find changesetUnable to mergeUnable to merge chunksUnable to parse p4pending outputUnable to read fileUnable to read repository statusUnable to removeUnable to remove URLUnable to remove file %s, permission deniedUnable to save after commit pushUnable to save an URLUnable to save authenticationUnable to save auto include listUnable to save post pull operationUnable to save recurse in subrepos.Unable to save usernameUnable to show subrepository filesUnable to start the following command:Unable to translate input to local encoding.Unable to update repository nameUnable to write .hgignore fileUnable to write configuration fileUnable to write diff fileUnable to write fileUnapply all patchesUnapply one patchUnbundleUncheckUncheck all filesUncheck to consider all revisioned files for copy sourcesUncommited merge - please select a parent revisionUncompressed tar archiveUncompressed zip archiveUnderlineUndo close other tabsUndo close tabUndo last commit?Undo last transaction?Undo most recent commit (%d), preserving file changes?UnicodeUnified ChineseUnknown revision!Unlock of %s failed, retryUnlock of %s successfulUnlocking %sUnresolved conflictsUnresolved conflicts remain. Are you sure?Unsaved changes will be lost. Do you want to reload?Unsupported repository type (%s)UnversionedUpdateUpdate - %sUpdate - pull, then try to updateUpdate IconsUpdate ReviewUpdate icons for this repositoryUpdate on incomingUpdate or create a path alias called '%s' on all subrepos, using this URL as the base URL, appending the local relative subrepo path to itUpdate subrepo pathsUpdate the fields of this existing requestUpdate to:Update working directoryUpdate working directory or switch revisionsUpdate...UpdateOrRebase - pull, then try to update or rebaseUpdateOrRebase - use rebase extension (rebase is not active!)Updating repository registryUpgrading to a more recent TortoiseHg is recommended.Use English backout messageUse English commit messageUse compact viewUse current dateUse custom commit message:Use extended (git) patch formatUse git extended diff header format. Default: FalseUse my user name instead of graft committer user nameUse proxy serverUse pull protocol to copy metadataUserUser AuthenticationUser CacheUser authentication data should be associated with the hostname using the security dialog.User name to authenticate with review boardUser:UsernameUsername to authenticate to mail server withVerify backout revision and ensure your working directory is clean.Verify merge targets and ensure your working directory is clean.Verify with Certificate Authority certificates (best)Verify with stored host fingerprint (good)Vi&ew FileVietnameseView File atView O&therView change as unified diff outputView change history in repositoryView change history of selected filesView change in context of fileView changes to current in external diff toolView changes using GUI diff toolView file as it appeared at this revisionView file changes in external diff toolView the repository's settingsVisual DiffVisual Diff ToolVisual Diff...Visual Diffs - Visual EditorVisual diff between resolved file and first parentVisual diff between resolved file and second parentVisual diff...Visual diffs are not supported for files in subrepositories. They will not be shown.Visual three-way diffWarningWarning: affects all Tortoises, logoff required after changeWas renamed fromWeb ServerWebconfWestern EuropeWhat do you want to do? When committing, require that a reference to an issue be specified. If enabled, the regex configured in 'Issue Regex' must find a match in the commit message.When enabled, automatically show the Output Log when the command is run. Default: False.When set to 'auto', mq will automatically use git patches when required to avoid losing changes to file modes, copy records or binary files. If set to 'keep', mq will obey the [diff] section configuration while preserving existing git patches upon qrefresh. If set to 'yes' or 'no', mq will override the [diff] section and always generate git or regular patches, possibly losing data in the second case. Default: autoWhen to ask the user to confirm the update of the local "projrc" configuration file when the remote projrc file changes. Possible values are:

                                                                                                            • always: [default] Always show a confirmation prompt before updating the local .hg/projrc file.
                                                                                                            • first: Show a confirmation dialog when the repository is cloned or when a remote projrc file is found for the first time.
                                                                                                            • never: Update the local .hg/projrc file automatically, without requiring any user confirmation.
                                                                                                            Whether to allow pushing to the repository. If empty or not set, push is not allowed. If the special value "*", any remote user can push, including unauthenticated users. Otherwise, the remote user must have been authenticated, and the authenticated user name must be present in this list (separated by whitespace or ","). The contents of the allow_push list are examined after the deny_push list.Whether to deny pushing to the repository. If empty or not set, push is not denied. If the special value "*", all remote users are denied push. Otherwise, unauthenticated users are all denied, and any authenticated user name present in this list (separated by whitespace or ",") is also denied. The contents of the deny_push list are examined before the allow_push list.Whether to require that inbound pushes be transported over SSL to prevent password sniffing.Which template map style to useWhite&spaceWord docs (*.doc *.docx)Work on patch queue (--mq)WorkbenchWorkbench Log ColumnsWorkbench custom toolbarWorking CopyWorking DirectoryWorking Directory (merged)Working directoryWorking directory is not clean! View changes...Working directory statusWrap searchWrite bundleWrite diff fileWrite patch series (bundle) descriptionYou are trying to move the phase of revision %d backwards, from "%s" to "%s". However, "%s" is a lower phase level than "%s". Moving the phase backwards is not recommended. For example, it may result in having multiple heads if you modify a revision that you have already pushed to a server. Please be careful!You can only release your own locksYou can visit our site hereYou cannot merge a revision with itselfYou have authentication info configured for this host and inside this URL. Remove authentication info from this URL?You have marked all rejected patch chunks as resolved yet you have not modified the file on the edit panel. This probably means that no code from any of the rejected patch chunks made it into the file. Are you sure that you want to leave the file as is and consider all the rejected patch chunks as resolved? Doing so may delete them from a shelve, for example, which would mean that you would lose them forever! Click Yes to accept the file as is or No to continue resolving the rejected patch chunks.You have multiple renames selected for destination file: %s. Aborting!You have selected one or more files that have been modified. By default, these files will not be removed. What would you like to do?You likely need to refresh this applicationYou may continue or start the graftYou may continue the compressYou may continue the graftYou may continue the rebaseYou must enter a patch nameYou must identify yourself to MercurialYou must provide revisions to graftYou must provide source and dest argumentsYou must provide the path to a fileYou must set a command to run.You must set a tool name.You must set a valid hook type.Your TortoiseHg is up to date.Your current working revision (%d) will be removed by this rollback, leaving uncommitted changes. Continue?Zip archive compressed using deflateZip archives[--after PATCH] PATCH...[Code: %d][WARNING] Incomplete changed subrepository. Update to this revision to pull it.[WARNING] Incomplete subrepo. Update to this revision to pull it.[WARNING] Invalid subrepo revision ID: %s [WARNING] Missing changed subrepository. Update to this revision to clone it.[WARNING] Missing subrepo. Update to this revision to clone it.[command completed successfully %s][command interrupted %s][command returned code %d %%s][command terminated by user %s][non-existant][original][working copy]a revision to posta revision to sendabort: abort: %s abort: %s! action buttonCommitadd diffstat output to messagesaddedall revisions converted from subversionalways fork GUI processattachbasic commands: bodybookmark: branch: bundle file to previewcan not read file "%s". Ignored. cannot move applied patchescannot move into applied patcheschangeset %d:%schangeset to view in diff toolchangeset which represents converted svn revisionchangeset: %schangeset: %s (not found on subrepository)cleanclone only the specified branchcolumn headerAgecolumn headerAuthorcolumn headerBranchcolumn headerChangescolumn headerConverted Fromcolumn headerDescriptioncolumn headerFilenamecolumn headerGraphcolumn headerLatest tagscolumn headerLocal Timecolumn headerNodecolumn headerPhasecolumn headerRevcolumn headerTagscolumn headerUTC Timecommand parse error: %sconfig itemCommitcorrupted command result: %rdefaultdiffstatdiscard uncommitted changes (no backup)display help and exitdo not back up stripped revisionsdo not commit the sigfile after signingdo not fork GUI processdo not modify working copy during stripenable additional outputenable debugging outputeol is incompatible with win32texterror while running command exec mode has been setexec mode has been unsetfailed to fork GUI process: %s failed to start command field to give initial focusfile has been deleted, refreshfile has been modified, refreshfilesfilesAllfilesNonefilling (%d)filterglobal options:grep: %s grep: invalid match pattern: %s hggit packaged with thghgsubversion is incompatible with perfarcehgsubversion packaged with thghint:hint: historyignore case during searchignoredimport to the patch queue (MQ)in the futureinclude the specified changesetinitial search patterninlineinotify is not supported on this platforminvalid "hello" message: %rinvalid argumentsinvalid line number: %sinvalid patch position specifiedkeep original branch nameskeep original changesetslaunch visual diff toollist of commands: locallsprof not available - install from http://codespeak.net/svn/user/arigo/hack/misc/lsprof/make the signature localmake the tag localmerge with old dirstate parent after backoutmethodmissingmodifiedmove after the specified patchmust be specified 'type' in stylemust be specified repositoryname of the hgweb config file (DEPRECATED)name of the hgweb config file (serve more than one repository)needs merge of %i heads needs merge with %s needs merge with %s (through %s) needs update of diff base to tip of %s no "runcommand" capabilityno command specifiedno commands defined no guardsno matches found: %sno outgoing changesetsno outgoing changesets in current branch (%s) / %d in totalno outgoing changesets up to current revision (#%d) / %d in totalno outgoing changesets up to revision #%d / %d in totalno repo at no revisions specifiednotify the shell for paths givennownull revision (i.e. remove file(s))only one new bookmark name allowedopen a new workbench windowopen the bookmark sync windowopen to lineopen...option --config may not be abbreviated!options: parent to choose when backing out mergepassword: patch %s not in seriesperfarce is incompatible with hgsubversionprint command execution profileprint licenseprocess exited unexpectedly with code %dpull: %s push: %sread file list from fileread file list from file encoding utf-8rebase from the specified changesetrebase onto the specified changesetrecord datecode as commit daterecord user as committerremove a tagremove the status cacheremove working directoryremovedreplace existing tagrepository %s not foundrepository root directory or symbolic path namerequires a single filenamerev: %d (%s)revisionrevision %d's first parent (i.e. revision %d)revision %d's second parent (i.e. revision %d)revision to annotaterevision to archiverevision to backoutrevision to displayrevision to mergerevision to striprevision to tagrevision to updaterevision, tag or branch to check outrevisions %d:%s to %d:%srevisions to graftrevisions to prunerevisions to view in diff toolselect the specified revisionselected filessend patches as attachmentssend patches as inline attachmentssend patches as part of the email bodyset/override config option (use 'section.name=value')show files without changesshow ignored filesshow the contents of the status cache (no update)side-by-side comparison of revisionssign even if the sigfile is modifiedstart debuggerstart progressCommitstart progressMQ Actionstart progressRollbackstatussubreposuppress outputsync command already runningtab tooltipCommittab tooltipConsole logtab tooltipPatch Branchtab tooltipRevision detailstab tooltipSearchtab tooltipSynchronizethe clone will include an empty working copy (only a repository)the key id to sign withthe revision to showthg %s: %s thg aboutthg add [FILE]...thg annotatethg archivethg backout [OPTION]... [[-r] REV]thg bisectthg bookmarks [-r REV] [NAME]thg clone [OPTION]... [SOURCE] [DEST]thg commit [OPTIONS] [FILE]...thg debugblockmatcherthg debugbugreport [TEXT]thg debugconsolethg debuglighthgthg debugruncommand -- COMMAND [ARGUMENT]...thg drag_copy SOURCE... DESTthg drag_move SOURCE... DESTthg email [REVS]thg filelog [OPTION]... FILEthg forget [FILE]...thg graft [-r] REV...thg grepthg guessthg help [COMMAND]thg hgignore [FILE]thg import [OPTION] [SOURCE]...thg init [DEST]thg log [OPTIONS] [FILE]thg manifest [-r REV] [FILE]thg merge [[-r] REV]thg postreview [-r] REV...thg prune [-r] REV...thg purgethg rebase -s REV -d REV [--keep]thg rejects [FILE]thg remove [FILE]...thg rename [SOURCE] [DEST]thg repoconfigthg resolvethg revdetails [-r REV]thg revert [FILE]...thg rupdate [[-r] REV]thg serve [--web-conf FILE]thg shellconfigthg shelvethg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]thg status [OPTIONS] [FILE]thg strip [-k] [-f] [-n] [[-r] REV]thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]thg thgstatus [OPTION]thg update [-C] [[-r] REV]thg userconfigthg version [OPTION]thg: %s thg: command '%s' is ambiguous: %s thg: unknown command '%s' timed out waiting for messagetimed out while reading: %r...unexpected response on required channel %runknownunknown patch to move specifiedunknown revision!unrecognized profiling format '%s' - Ignored unrecognized response: %sunsupported URL: %supdate all repos in current diruse "thg -v help %s" to show global optionsuse "thg -v help%s" to show aliases and global optionsuse "thg help" for the full list of commandsuse "thg help" for the full list of commands or "thg -v" for detailsuse as commit messageuse only one form to specify the revisionuse pull protocol to copy metadatause uncompressed transfer (fast over LAN)version %swait until the second ticks overwill be closedwin32ill: cannot create window for messageswin32ill: interrupted while stopping message loop win32ill: unsupported platform: %s win32text is incompatible with eolwindow titleCommitwith Mercurial-%s, Python-%s, PyQt-%s, Qt-%sworking changesworking dir stateCleanwrap mode&NoneProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2016-02-05 20:19+0000 Last-Translator: Manuel Stumpf Language-Team: German MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Launchpad-Export-Date: 2019-07-17 05:42+0000 X-Generator: Launchpad (build 19009) Bitte stellen Sie sicher, dass "thg" ein gültiger Befehl ist. Unterbrechungsanforderung gefangen, Abbruch. Aliase: %s (Standard: %s) (kopiert von %s) (ein symbolischer Verweis) (ist nicht versioniert) (wurde umgenannt, hieß zuvor %s) (wurde hinzugefügt) (wurde hinzugefügt und fehlt jetzt) (wurde gelöscht) gefiltert"%s" ist kein Verzeichnis"%s" ist kein gültiges Verzeichnis"%s" wurde aus der Verzeichnishistorie entfernt"%s" wurde aus der Suchhistorie entfernt### Filtertext ###### Fingerabdruck des Rechnerzertifikats ###### Patch-Name ###### regulärer Ausdruck ###### regulärer Suchausdruck ###### Revisionsmengen-Anfrage ###utf-8,iso-8859-15,iso-8859-1,cp1252% Treffer%d Tag%d Tage%d Dateien haben Zusammenführungskonflikte, die aufgelöst werden müssen.%d Dateien wurden in beiden Zweigen geändert und müssen aufgelöst werden.%d Stunde%d Stunden%d Treffer%d Minute%d Minuten%d Monat%d Monate%d ausgehende Änderungssätze%d ausgehende Änderungssätze im aktuellen Zweig (%s) / %d gesamt%d ausgehende Änderungssätze für %s%d ausgehende Änderungssätze bis zur aktuellen Revision (#%d) / %d gesamt%d ausgehende Änderungssätze bis Revision #%d / %d gesamt%d Patches wurden exportiert in:

                                                                                                            %sEs gibt %d ausstehende Änderungslisten%d Sekunde%d Sekunden%d Woche%d Wochen%d Jahr%d Jahre%d%%%dpt%p%%s (Tipp: %s)%s (ausstehend)%s (versandt)%s - Revisionsdetails (%s)%s - TortoiseHg-Werkbank%s - TortoiseHg-Werkbank - %s%s - Verzweigung%s - Übernahme%s - Übernahmeeinstellungen%s - hg %s%s - bereinigen%s - Projektarchiv retten%s - Zustand%s - Zustand (Auswahl gefiltert)%s - Synchronsationseinstellungen%s - Projektarchiv prüfen%s : %s%s Es gibt bereits %s, URL ersetzen?%s und %s sind inhaltlich identisch %s Zertifikat Fehler: kein Zertifikat empfangen%s enthielt zurückgewiesene Blöcke, soll die gepatchte Datei zusammen mit den Zurückweisungen bearbeitet werden?%s ist ein Unterarchiv mit lokalen Änderungen%s ist hinzugefügt%s wurde außerhalb von hg gelöscht, Datei wird nicht immer verfolgt%s wird ignoriert%s ist geändert%s ist kein gültiges Projektarchiv%s ist unverändert (sauber)%s ist unversioniert (unbekannt)%s ist entfernt%s Patches%s-Projekteinstellungen (.hg/projrc)Einstellungen für das Projektarchiv %s%s wird importiert nach Allgemeine Einstellungen für %sÜ&ber TortoiseHg&HinzufügenArchiv &hinzufügen...&Nach Einrückung&Vorgänger und Nachfolger&Archivieren&Archivieren...&Automatisch&automatisch erkennen&Autovervollständigen&Rücksetzen...&Aufspüren...&Zweig&Betrachten...Revision und Nachfolger &bündeln...&Abbrechen&Zeichen&Löschen&Klonen&SchließenProjektarchiv &schließenÜ&bernehmenÜ&bernehmen in Queue...Ü&bernahme in aktuellen Zweig&KopierenPatch &kopieren&Kopieren ...&Erstellen&frei konfigurierbare Symbolleiste&EntfernenPatches &löschen...Queue &löschen...unversionierte &löschen&Andere Version gegen Vorgänger diffenAusgewählte Datei&revisionen diffenMit anderer Version &Diffen&Diff mit Vorgänger&Verwerfen&Verwerfen (--force)Änderungen &vollständig verwerfenSymbolleiste &anheftenDatei &bearbeitenLokal &bearbeitenSymbolleiste &bearbeiten&Bearbeiten...&Editor-EinstellungenPatch als &E-Mail verschicken...Be&enden&Falsch&Datei&Filter-Symbolleiste&Patch abschließen&flache Liste&Erzwingen&Vergessen&Wechsle (aktualisiert Arbeitsverzeichnis)&Springe zu Revision...In lokale Version &transplantieren...&Hilfe&Ausschließen...&importierenPatches %importierenE&ingehend&Unsichtbar&Behalten (--keep)&Lizenz&Lokale Kopie&MacAls &geheim kennzeichnenAusgeschlossene Änderungen &markierenAls &aufgelöst markierenAls &nicht aufgelöst markierenAls a&ufgelöst kennzeichnen&Suchen&ZusammenführenMit &lokaler Version verschmelzen...&Zusammenführen ...Mehr &Einstellungen...&Verschieben&Neues Projektarchiv...&Nein&Nein (Änderungen verwerfen)Ö&ffnen&Alle ÖffnenLokal &öffnenProjektarchiv ö&ffnen...&Ursprünglicher Revision&Andere Kopie&Ausgehend&Vorgängerrevision&Elternrevision (%d)&EinfügenPatch-&Zweig&KürzenAuswahl &Kürzen...&Kürzen...&AbrufenQueue be&reinigen&Bereinigen...Lesezeichen &übertragen&Lies-mich&Verschieben...&Nochmals&AktualisierenArchivliste &aktualisiseren&Entferntes Archiv aktualisieren...&EntfernenLesezeichen &löschen&Entfernen...Aktive Queue &umbenennen...&Ersetzen&Projektarchiv&Spaltengröße anpassen&Auflösen...&Wiederherstellen&Wiederherstellen in Revision...Mit Sicherung &wiederherstellen&Wiederherstellen...Ausfüh&ren&SpeichernIn Revision &speichern...Archive zur Startzeit &prüfen&SuchenIn aktueller Datei &suchen&Setzen...Ein&stellungenVer&stauen&Verstauen...&SignierenDiese Revision ü&berspringen&SortierenEntsprechend .&hgsub sortieren&LeerzeichenHeraus&lösenBe&reinigen...Lesezeichen &synchronisieren&Tab&Tab-Einfügungen&Etikettieren...&Lokale Version auswählen&Aufgaben-Symbolleiste&Eingabeaufforderung&WahrPatch &rückwärts anwenden&Rückgängig&Unix&Unbekannt&Aktualisieren&Aktualisieren...Ü&berprüfen&Anzeige&Änderungssatz zeigen&Fehlende anzeigenIn &Revision ansehen&Sichtbar&Web-Server&Windows&Wort&Werkbank-Symbolleisten&Umschließen&Ja'Veröffentlichungs'-Archiv(%s) (ÜBERHOLT)(von der nächsten Übernahme ausgeschlossen)(ist ein geändertes Unterarchiv mit lokalen Änderungen)(ist ein geändertes Unterarchiv)(Ist ein Unterarchiv mit lokalen Änderungen)(ist ein neues Unterarchiv mit lokalen Änderungen)(ist ein neues Unterarchiv)(ist ein gelöschtes Unterarchiv)(ist ein unverändertes Unterarchiv)(hier fehlt leider noch der Hilfetext)(wie beim Vorgänger)*: von TortoiseHg nicht verwenden, Zusammenführung aufgelöst, Zusammenführung unaufgelöst&Drei-Wege-Diff3-Wege-DiffsEinstellungen-Werkzeug aufrufen...%d Änderungssatz wird herausgelöst%d Änderungssätze werden herausgelöstKommentieren:Mögliche TrefferUnterschiede zwischen Quelle und ZielRechner: %sAusschlussfilterSyntax-Fehler!Archiv-Details:

                                                                                                            %d Dateien zu ihrem Inhalt in der folgenden Revision zurückdrehen?

                                                                                                            %s zu seinem Inhalt in der folgenden Revision zurückdrehen?

                                                                                                            Ausgewählte Einstellungen:Ausgewählte Optionen: %sEs gibt nicht übernommene lokale ÄnderungenUnbekannte Revision!FremddateienUnversionierte DateienWeb-Server:= Wurzel-Arbeitsverzeichnis =Eine LIESMICH-Datei ist für das aktuelle Archiv nicht konfiguriert.

                                                                                                            Um eine Liesmich-Datei für ein Archiv zu konfigurieren, öffnen Sie die Einstellungsdatei des Archivs, fügen den Schlüssel 'readme' dem Abschnitt 'tortoisehg' hinzu, und setzen es auf den Dateinamen oder die URL der LIESMICH-Datei Ihres Archivs.Es gibt schon ein Lesezeichen namens "%s"Eine kommagetrennte Liste von ZielgruppenEine kommagetrennte Liste von ZielpersonenEine neue Version von TortoiseHg (%s) steht zum Download bereit!Ein Archiv kann nicht als sein eigenes Unterarchiv hinzugefügt werdenEine Revisions ID, Lesezeichen, Etikett oder ZweignameEine Stauraum-Datei mit diesem Namen ist bereits vorhandenEin Stauraum-Name kann kein %s enthaltenBei entfernten Archive kann keine Konsole gestartet werdenEine Kommandozeilenanwendung für die Konsole muss eingestellt werden&Unterarchiv hinzufügen...A&utorAbbrechenDen Exportvorgang abbrechen. p4pending abgebrochenÜber TortoiseHGÜber &QtÜber TortoiseHgGenehmigenAlle Treffer übernehmenAusgewählte Treffer übernehmenDie lokale Dateiversion mit Ihren Änderungen übernehmenDie andere Dateiversion mit ihren jeweiligen Änderungen übernehmenAktive LesezeichenLesezeichen aktivieren?Aktivieren:Hinzufügen&Binärriesen hinzufügen&Binärriesen hinzufügen...Dateien hinzufügen...Zu veröffentlichenden Pfad hinzufügenProjektarchiv zur Gruppe hinzufügen...Als &Binärriesen hinzufügenAls &normale Dateien hinzufügenDateien unter Versionskontrolle bringenAusschlussfilter hinzufügen...Patches, welche Dateien hinzufügen oder löschen, müssen im Arbeitsverzeichnis zusammengeführt werdenDie ausgewählten unversionierten Dateien hinzufügen?Trennlinie hinzufügenZur Liste hinzufügenHinzugefügtEtikett %s zum Änderungssatz %s hinzugefügtNach der Abruf-OperationAlter:AliasVollständige HistorieAlle Änderungssätze, die zu dem Zweig von Änderungssätzen in der Auswahl gehören.Alle Änderungssätze, entspricht 0:tip.Alle Dateien mit Konflikten werden als unaufgelöst markiert.Alle Konflikte wurden aufgelöst.Alle KontexteAlle Dateien (*)Alle ElementeAlle RevisionenAlle ungespeicherten Änderungen gehen verloren.Übertragen erlaubenÜbertragung eines neuen Zweigs erlauben (--new-branch)Erlaube, neue Zweige zu übertragen (--new-branch)Grundsätzlich zusammenführen (so möglich)Grundsätzlich Archivreiter anzeigen, selbst für ein einzelnes Archiv. Standard: FalschErgänzenAktuelle Revision ergänzenEin Alias für "::." (Vorgänger des ersten Vorgängers der Arbeitskopie).Die leere Megen, falls irgendeine Revision in der Menge nicht gefunden wird; ansonsten alle Revisionen in der Menge.Ein Fehler trat beim Lesen der Datei auf.Ein Fehler ist aufgetreten beim Ändern der hgrc-Datei des Archivs (%s)Ein Fehler trat beim Schreiben der Datei auf.Eine Ausnahmesituation ist aufgetreten beim Laden des Unterarchivs von:

                                                                                                            "%s"

                                                                                                            Es wurde ein unterbrochener Transplantationsvorgang festgestellt. Sie können keine andere Transplantationsoperation durchführen, solange sie die erste nicht abbrechen.&Datei annotierenAnnotations-&OptionenMit Revisionsnummern kommentierenFormatierung An&wendenAnfügenGraft-Informationen an Protokoll anhängenDie Änderungen an die vorhandenen Patch-Dateien anhängen. Angewandte PatchesAngewandte Patches oder QParentAlle Patches anwendenÄnderungen vor dem Beenden speichern?Einen Patch anwendenNur diesen Patch anwendenAuf ursprünglichen Vorgänger anwendenPatch anwendenArabischArchiv - %sArchivformateArchiv-Arten:Wollen Sie die Übernahme wirklich abbrechen?Sind Sie sicher, dass Sie diese Dateien und/oder Verzeichnisse löschen wollen?Sind Sie sicher, dass Sie sie überschreiben wollen?Sind Sie sicher, dass Sie diese Datei neu laden wollen?Sind Sie sicher?Benutzername abfragenAutomatisches Zusammenführen versuchen (nur triviale Fälle)Nach jeder erfolgreichen Übernahme versuchen, die Änderungen an die angegebene URL bzw. Kurzbezeichnung zu übertragen. Standard: keine ÜbertragungAutorNach Autor einfärbenAutomatische EinschlüsseAutomatische AusschlüsseAutomatische Einschlüsse:Zusammenführungen automatisch auflösenAutomatisch zur nächsten Seite umblättern, sobald Rücksetzen und Zusammenführen abgeschlossen sind.Automatisch auf die nächste Seite weiterblättern, sobald die Zusammenführung abgeschlossen ist.Automatisch Zusammenführungskonflikte auflösen wo möglichZurückZurückgezogener Änderungssatz: Das Rücksetzen einer Vorgängerrevision geschieht in einem einzelnen SchrittSetze zurück und übernehme...Setze zurück und verschmelde anschließend...Rücksetzen - %sZurückgezogener ÄnderungssatzDen aktuellen Patchzweig rücksetzenZum Rücksetzen muss eine Vorgängerrevision vorhanden seinRevision rücksetzenTeile eines Änderungssatzes in ein verwandtes Archiv rückportierenLöschen oder Entfernen beseitigt die markierten ZeilenSicherheitskopien der geänderten Dateien finden sich in .hg/Trashcan/Rückwärtige Phasenänderung angefordertDateiname ungültigBaltischBlindkopieVor dem Rücksetzen müssen Sie Ihre Änderungen übernehmen, in einem Patch verstauen oder verwerfen.Vor dem Zusammenführen ist es notwendig, dass Sie alle Änderungen übernehmen, in einem Patch verstauen oder verwerfen.Aufspüren - %sAufspüren - Böse und Gut...Aufspüren - Gut und Böse...Fett&Lesezeichen erstellen...Das Lesezeichen '%s' existiert nichtDas Lesezeichen '%s' wurde hinzugefügtDas Lesezeichen '%s' wurde verschobenDas Lesezeichen '%s' wurde entferntDas Lesezeichen '%s' wurde in '%s' umbenanntLesezeichen hinzufügen - %sEs gibt kein Lesezeichen namens "%s"Lesezeichen:ZweigZweigfarbenZweig:Zweig: &Betrachten in RevisionVerzeichnis durchsuchen...Durchsuchen...Baumbereich bündeln...Bündeldateien (*.hg)Bündel enthalten vollständige Änderungssätze in binärer Form. Entfernte Benutzer können diese als Quelle zum Abruf verwenden. Dies ist die sicherste Art, um Änderungen an andere Benutzer von Mercurial zu senden.UmgehenTAR-BZIP2-ArchiveProtokoll&spalten wählen...&Formatierung einstellenCLI EditorOhne das iniparse-Paket können die Einstellungen nicht geändert werden - die Ansicht ist schreibgeschütztRevision '%s' kann nicht gefunden werdenAbbrechenKann das Unterarchiv nicht hinzufügenKann die Änderung nicht auf einem anderen Zweig rücksetzenKann die Revision nicht exportierenKann die Revision %s nicht in die folgende Datei exportieren: %s Kann die ausgewählte Revision nicht importierenKann den Plugin-Einstellungen-Dialog nicht öffnenKann Archive oder Unterarchive, die nicht zu Mercurial gehören, nicht öffnenKann das Archiv nicht öffnenKann die .hgsub-Datei hier nicht öffnen:

                                                                                                            %sKonnte die Datei .hgsub nicht öffnen.

                                                                                                            Löschen des Unterarchivs gescheitert.Neue Suche kann nicht gestartet werdenKann die .hgsub-Datei hier nicht aktualisieren:

                                                                                                            %sKonnte die Datei .hgsub nicht aktualisieren.

                                                                                                            Löschen des Unterarchivs gescheitert.KopieCc:KeltischMittel- und OsteuropaZertifikatsanfrage-Fehler&Phase ändern inSchriftart für den ÄnderungsverlaufDurch &diese Übernahme geändertDie Änderungen wurden verschoben, Sie müssen sie jetzt übernehmenDie Änderungen werden ab der nächsten Übernahme berücksichtigtÄnderungssatz-VerweisDer Änderungssatz dient zum Zusammenführen.Der Änderungssatz ist Kopf eines benannten Zweigs.Der Änderungssatz ist geschlossen.Der Änderungssatz ist etikettiert.Der Änderungssatz mit der höchsten Revisionsnummer in der Auswahl.Der Änderungssatz mit der niedrigsten Revisionsnummer in der Auswahl.Änderungssatz:ÄnderungssätzeÄnderungssätze, die von einem Dateinamens-Suchmuster gefundene Dateien enthalten.Einige Änderungssätze wurde weder im angegebenen Zielarchiv noch im Standard-Übertragungsziel gefunden.Änderungssätze, die Vorgänger von Änderungssätzen in der Auswahl sind.Änderungssätze, bei denen der Autor einen bestimmten Text enthält.Änderungssätze, die von einem Dateinamens-Suchmuster gefundene Dateien hinzufügen.Änderungssätze, die von Änderungssätzen in der Auswahl abstammen.Änderungssätze, die von einem Dateinamens-Suchmuster gefundene Dateien verändern.Änderungssätze, die von einem Dateinamens-Suchmuster gefundene Dateien entfernen.Änderungssatz ohne Vorgänger-Änderungssatz in der Menge.Standard-Kodierung der Dateien im Archiv, vom Webfrontend und TortoiseHg eingesetzt.AuswählenUnterarchiv-Phase prüfenAlle Dateien ankreuzenPrüfe auf eingehende ÄnderungenPrüfe auf eingehende Änderungen von %sBezüglich eingehender Änderungen von der ausgewählten URL prüfenPrüft die Phase der aktuellen Revision von jedem Unterarchiv. Für alle von "ignore" abweichenden Angaben wird die Phase der aktuellen Revision jedes Unterarchivs geprüft, bevor Daten in das Überarchiv übernommen werden. Standard: followAnzahl Kreuzchen: %dÜberprüfung läuftPrüfe auf Aktualisierungen...Prüfe Zustand des Arbeitsverzeichnisses...Überprüfung...Dateien zum Hinzufügen ankreuzenDateien zum Vergessen ankreuzenDateien zum Entfernen ankreuzenZum Wiederherstellen Dateien auswählenKind-Änderungssätze von Änderungssätzen in der Auswahl.Kind:Ausgewählte Blöcke: %d / %dProtokoll &löschenBereinigenAufräumenDen Inhalt der Stauraum-Datei %s leeren?Aktuelle Anfrage löschen und Text anfragenDen aktuellen Stauraum aufräumenWählen Sie OK zum Fortfahren oder Abort zum Beenden.Archiv &klonen...&Klonen...Klonen - %sProjektarchiv klonenRevision klonen:Klonen...SchließenZweig %s schließenNach der Übernahme schließenZweig abschließen: Aktuellen Zweig schließenDie anderen Reiter schließenReiter schließenDas Übernahme-Werkzeug nach jeder erfolgreicher Übernahme schließen. Standard: neinSchließen:Dateirevisionen &vergleichenÄnderungssätze nach Autor färben. Standard: falschKommagatrennte Liste von Archvformaten, die heruntergeladen werden dürfenKommaseparierte Liste von Zweignamen, die bei der Erstellung der Zweignamenliste für ein Projektarchiv ignoriert werden soll. Standard: keine (leere Liste)Kommaseparierte Liste von Dateiausschluss-Mustern. Diese werden nach den Einschlussmustern berücksichtigt.Kommagetrennte Liste von Dateien, die üblicherweise in jede Übernahme eingeschlossen werden. Dies ist nur als archiv-spezifische Einstellung vorgesehen. Standard: keine (leere Liste)Kommagetrennte Liste von Dateien, die automatisch abgewählt werden, wenn der Zustands- oder Übernahme-Dialog geöffnet werden. Standard: keine (leere Liste)Kommaseparierte Liste von Dateieinschluss-Mustern. Standardmäßig wird das ganze Projektarchiv durchsucht.Kommagetrennte Adressliste der E-Mail-Blindkopie-Empfänger (bcc)Kommagetrennte Adressliste der E-Mail-Kopie-Empfänger (cc)Kommagetrennte Adressliste der E-Mail-EmpfängerAnweisungBefehlsfehlerAusgabe des BefehlsBefehl, der für SSH-Verbindungen eingesetzt wird.

                                                                                                            Vorgabe: "ssh" bzw. (unter Windows) "TortoisePlink.exe -ssh -2"ÜbernehmenÜbernahmedialog-WerkzeugleisteSpäter übernehmenJetzt übernehmenÜbernahmeoptionenRücksetzen übernehmen und Resultate zusammenführenÄnderungen übernehmenÄnderungen in das Archiv übernehmenÜbernahme-KontextmenüZusammenführungsergebnisse übernehmenVersionsmeldungÜbernehmen...Übernehme...Gemeinsame MengenRevisionen der ausgewählten Datei vergleichenMit dem ersten Vorgänger vergleichenMit dem zweiten Vorgänger vergleichenDie Datei unwiederruflich aus dem Patch entfernen?KomprimierenKomprimieren - %sHistorie zusammenfassen...Änderungssätze komprimieren bis einschließlichDie Komprimierung ist vollständig, die Historie unverändertEinstellungsdatei:Konfigurationsdateien (*.conf *.config *.ini)Konfigurationsfehler: "%(arg0)s",
                                                                                                            Bitte reparieren Sie Ihre KonfigurationBenutzerdefiniertes Werkzeug konfigurierenExplorer-Erweiterungs-Einstellungen bearbeitenHaken konfigurierenTicketing-System konfigurierenWachen aufstellenWachen für den ausgewählten Patch konfigurierenArchiveinstellungen bearbeitenKonfiguriert das ausgewählte COM-Plug-in für das Ticketing-System.Die benutzerweit gültigen Einstellungen bearbeitenKonfiguriert ein Ticketing-System-Plug-in mit einer COM-Schnittstelle, die IBugTraqProvider oder IBugTraqProvider2 implementiert.Hinzufügen bestätigenZweigänderung bestätigenEntfernen bestätigenLöschung der nicht Versionierten bestätigenVerwerfen bestätigenDas Verwerfen der Änderungen bestätigenVerwerfen von Kommentar bestätigenBeenden bestätigenNeuen Zweig bestätigenÜberschreiben bestätigenÜbertragen bestätigenÜbertragung an das entfernte Projektarchiv bestätigenNeu laden bestätigenEntfernen bestätigenWiederherstellen bestätigenSpeichern bestätigenHerauslösen bestätigenURL-Ersetzung bestätigenRückgängig bestätigenAktualisierung bestätigenHinzufügen von nicht versionierten Dateien bestätigenLöschen bestätigenLöschen der Dateien bestätigenPatch-Warteschlange-Wechsel bestätigenPfadentfernung bestätigenVerbindung zum Review-Board-Server wird aufgenommen...Erwägen Sie, die Transplantation zunächst abzubrechen.Ziehen Sie in Betracht, die Verschiebung zunächst abzubrechen.KonsoleKontaktKontextmenüDie Transplantationsoperation fortsetzen oder unterbrechen?Kontrolliert die Entwurfsphase, wenn als Server eingesetzt. Wenn gesetzt, werden übertragene Änderungssätze sowohl im Client als auch im Server als öffentlich gekennzeichnet und abgerufene oder duplizierte Änderungssätze im Client als öffentlich gekennzeichnet. Standard: trueEin bestehendes Archiv in ein Unterarchiv umwandelnUmgewandelt aus:Kopieren&Hash kopieren&Pfad kopierenKopieren - %sKopierfehlerAuswahl als Patch kopierenDen vollständigen Dateipfad in die Zwischenablage kopierenKommentar übernehmenEine der letzten Versionsmeldungen übernehmenQuelle in Ziel kopierenDen Wurzelpfad des Archivs in die Zwischenablage kopierenKopiere Arbeitsverzeichnis Dateien von SkelettKonnte die Unterarchiv-Liste nicht ermittelnKann das COM-Objekt zum Kommunikation mit dem Ticketing-System nicht instantiierenKonnte die Datei .hgsub nicht öffnenKonnte einige Unterarchive nicht öffnenKonnte die angegebene Datei nicht lesend öffnen.Konnte die Datei nicht zum Schreiben öffnen.Konnte den Dateiinhalt nicht aus der nativen Kodierung übertragen.Konnte die Datei nicht in ihre native Kodierung übertragen.Konnte die Datei .hgsub nicht aktualisierenAnlegen&Zweig erstellen&Neue Queue erstellen...Patch-Queue erstellenHier ein Projektarchiv erstellenNeue Gruppe anlegenNeuen Patch erstellenEin neues Projektarchiv erstellenHier Klon von Quelle erstellenDiff auf Basis aller Änderungen in diesem Zweig zusammenstellenDiff auf Basis aller ausgehenden Änderungen zusammenstellenMit dieser Übernahme einen neuen Zweig "%s" erstellen? &AusschneidenÜbeltäter enttarnt.Aktuelle lokale RevisionAngepasste Werkzeugleisten&einstellungenBenutzerdefinierte WerkzeugeKyrillischDatumDatum:Umbenennungen &erkennen...Aktuelles Lesezeichen deaktivieren?Tote ZweigeAn Standardziel übertragenStandardbereichBestimmt den regulären Ausdruck bei der Auswahl von Ticket-IDs.Entfernen%d Datei aus .hg/Trashcan löschen%d Dateien aus .hg/Trashcan löschen%d ignorierte Datei löschen%d ignorierte Dateien löschen%d unbekannte Datei löschen%d unbekannte Dateien löschen%s aus Ihrer Archivkonfigurationsdatei löschen?Die Gruppe '%s' mit allen Einträgen entfernen?Patch-Queue löschenPatches löschenWerkzeug löschenLösche leere OrdnerAus der Liste entfernenHook löschenPatches löschen...Referenz löschen aufDie ausgewählten Blöcke löschenAusgewählte Abschnitte aus Stauraum %s löschen?Ausgewählte Abschnitte aus der Arbeitskopie löschen?Die ausgewählten Patches löschenAusgewählte Anfrage aus der Historie entfernenStauraum-Datei %s entfernen?Den aktuellen Stauraum löschenDie folgenden nicht versionierten Dateien löschen?%d Dateien gelöscht%d Dateien und %d Ordner gelöschtGelöscht*Leere den Mülleimer...LöschfehlerÜbertragen verbietenBeschreibungZielDie Zieldatei ist bereits vorhanden.Zielpfad:Ziel:Kopien/Umbenennungen in %s erkennenAusgehende Änderungen erkennenPrüfe auf ausgehende Änderungen nach %sAusgehende Änderungen für die ausgewählte URL erkennenUmbenennungen und Kopien erkennenErkannte Zusammenführungs-/Diff-Werkzeuge:Nicht übernommene lokale Änderungen in der Arbeitskopie festgestellt. Zum Fortfahren wählen Sie bitte: Nicht übernommene lokale Änderungen gefunden:Legt fest, ob TortoiseHg einen Bestätigungsdialog anzeigt, bevor es Änderungssätze überträgt. Falls nicht, wird die Übertragung ohne jegliche Bestätigung ausgeführt. Standard: TrueBestimmt, wann der Status des Ablaufverfolgers durch TortoiseHg aktualisiert wird. Zulässige Auswahlen sind:

                                                                                                            • never: Den Ablaufverfolger-Status nie automatisch aktualisieren.
                                                                                                            • commit: Den Ablaufverfolger-Status nach einer erfolgreichen Übernahme aktualisieren.

                                                                                                            Standard: neverBestimme ausgehende Änderungssätze für den E-Mail-Versand...Änderungssatz mit Vorgänger &diffenDiff mit &lokaler Version&Lokale Version gegen Vorgänger diffenÄnderungssatz mit &lokaler Kopie diffenDatei durch Diff vergleichen mitSchriftart für DiffAusgewählte Ä&nderungssätze diffenDiff-WerkzeugleisteDiff-Erstellung und KommentarDiff-InhaltDiff nicht angezeigt: Diff mit &lokaler VersionDiff gegenüber VorgängerGerichtetes Diff von Vorgänger 1Gerichtetes Diff von Vorgänger 2Verzeichnis-DiffsDateiverzeichnisVerwerfen - lokale Änderungen ungesichert verwerfenAktuellen Rücksetz-Kommentar verwerfen?Die aktuellen Versionsmeldung verwerfen?Lokale Änderungen verwerfen (revert --all)Lokale Änderungen ungesichert abräumen (-C/--clean)Lokale Änderungen ungesichert verwerfen (-f/--force)Sollen die ausstehenden Änderungen im Arbeitsverzeichnis verworfen werden?Entfernte Änderungen ungesichert verwerfen (-C/--clean)Die geschlossenen Zweige darstellenNur den benannten Zweig grafisch darstellenNur aktive Zweige anzeigenDie Datei trotzdem anzeigenEs werden %(count)d von %(total)d Elementen angezeigtZiehen-Ablegen-AbgleichModifikationsdatum in den Diff-Kopfdaten nicht angeben. Standard: FalseArbeitskopie während der Bereinigung unverändert lassen (-k/--keep)Sicherheitskopien (*.orig) nicht speichernIn nicht versionierten Verzeichnissen keine Menüeinträge anbieten (Umschalt-Klick zeigt sich dennoch an)Pfade nicht herauslösen(-p0), für Subversion-Patches erforderlichDas neue Arbeitsverzeichnis nicht aktualisierenRechnerzertifikat nicht prüfenWollen Sie wirklich eine rückwärtige Phasenänderung erzwingen?Wollen Sie die Patch-Warteschlange '%s' wirklich aktivieren?Sollen die %s Lesezeichen wirklich deaktiviert werden?Wollen Sie wirklich diese Revision als geheim kennzeichnen?Wollen Sie wirklich das Projektarchiv "%s" aus seinem Überarchiv "%s" löschenWirklich beenden?Wollen Sie sie behalten oder verwerfen?Zu Änderung der Reihenfolge ziehenBezeichner bereits vergeben&Kodierung&BeendenIm &Explorer öffnenVerzeichnis im &Explorer öffnenLokal &durchsuchenE&xplorer-HilfeE&xportierenAls &Patch exportieren...EOL-&ModusEOL-&SichtbarkeitBearbeitenDatei &bearbeitenAusschlussfilter bearbeitenLokale Version bearbeitenZu veröffentlichenden Pfad bearbeiten&Zurückweisungen bearbeitenWerkzeug bearbeiten...Lokale Version in Arbeitskopie bearbeitenDatei bearbeitenHook bearbeitenDen Patch-Abhängigkeiten-Graphen bearbeitenGepatchte Datei und Zurückweisungen bearbeiten?Den Ausschlussfilter des Projektarchivs bearbeitenDatei nach Konfliktauflösung bearbeitenEditorstartfehlerE-MailBereich des Verlauf-DAGs per E-Mail verschicken...Ausgewählte per E-Mail verschicken...Die E-Mail-Adresse, die in der "From"-Kopfzeile und für den SMTP-Umschlag verwendet wirdAusgehende Änderungssätze für das entfernte Archiv per E-Mail versendenFehlerinformationsausgaben tätigen (--debug)Überblendungsunterstützung aktiviertÜberblendungen aktivierenZeichensatzEnglische KommentareZeilennummer eingeben (1 - %d)Revisionsbezeichner eingebenFehlerEs sind Fehler aufgetreten.Fehler beim Ausführen des Triggers "Übernahme abgeschlossen"Fehler beim Abruf der Versionsmeldung aus dem Ticketing-SystemFehler beim Laden der UnterarchiveFehler bei der Vorschau des Unterarchivs %sFehlertext "%(arg0)s" in %(arg1)s
                                                                                                            Bitte bearbeiten Sie Ihre KonfigurationFehler beim Schreiben der DateiExcel Dateien (*xls, *.xlsx)AusschließenEnthält nicht:Benutzerdefiniertes Werkzeug '%s' ausführenBeendenBeenden ohne die Konfliktauflösung abzuschließen?Vom Beenden mit einer nicht abgeschlossenen Transplantation raten wir ab.Wir raten davon ab, vor Abschluss der Verschiebung den Dialog zu verlassen.Einstellungen für die Explorer-ErweiterungenExplorer Erweiterungen Einstellungen - TortoiseHgBereich des Verlauf-DAGs exportieren...Diff exportieren...Ausgewählte exportieren...Patch exportierenExternErweiterungenDas Projektarchiv konnte nicht hinzugefügt werdenHinzufügen des Unterarchivs gescheitertFehler beim Versuch, einen angepassten TortoiseHg-Befehl auszuführenDie Ausführung des benutzerdefinierten Befehls ist fehlgeschlagenTicketing-System '%s' kann nicht geladen werden: %sDas Laden des Ticketing-Systems '%s' ist fehlgeschlagen: %s. Das Öffnen des Pfades in einer Konsole ist fehlgeschlagenDas Projektarchiv konnte nicht geöffnet werdenAktualisierung fehlgeschlagenGescheitert!Fetch - die Einsammeloperation (automatisch abgerufene Änderungen zusammenführen)Einsammeln - Erweiterung für das Einsammels notwendig (Einsammeln wird nicht durchgeführt!)Vergleichs-Felder:DateiSpalten im DateiunterschiedsprotokollDateihistorieProtokollspalten der DateihistorieDateilisten-WerkzeugleisteDateizustandDateizustand:Die Datei existiert bereitsEs gibt aufzulösende DateikonflikteDatei-Kontextmenü (bezüglich Manifest- und Revisionsdetails)Die Datei enthält BinärdatenDie Datei ist größer als die vorgegebene Maximalgröße. maxdiff = %s KiBDie Datei könnte binär sein (maximale Zeilenlänge überschritten)Nicht dargestellte Dateien oder Diffs: Dateien oder Abweichungen nicht angezeigt: Die Datei ist größer als die vorgegebene Maximalgröße. maxdiff = %s KiBDateimustermengenDatei befand sich nicht innerhalb des aktuelle ProjektarchivsDateinameDateienDateien mit der angegebenen Mindestgröße (in MiB) werden als Binärdateien hinzugefügtDateien mit der angegebenen Mindestgröße (in MiB) werden als Binärriesen hinzugefügtDateien mit Namen entsprechend der angegebenen Muster werden automatisch als Binärdateien hinzugefügtDateien mit Namen entsprechend dem angegebenen Muster werden automatisch als Binärriesen hinzugefügtDatei&historie&Filtern nachGrafische Darstellung bezüglich Revisionsmengen oder Zweigen filternFilter:Umbenennungen findenQuellen von Kopien und/oder Umbenennungen findenPassende finden - %sFinde Revisionen mit passenden Feldern zu:Finde Revisionen, die zu mindestens einem Feld der angegebenen Revisionen passen.Ausgehende Änderungssätze für %s werden ermittelt...AbgeschlossenDie ersten n Elemente einer Menge.Der direkte Vorgänger aller ausgewählten Änderungssätze, oder das Arbeitsverzeichnis.Korrigierte RevisionenSchalter:Patches aneinanderkleben...Kopien und Umbenennungen nachverfolgenSchriftart zur Darstellung von Daten aus dem Änderungsverlauf. Standard: monospace 10Zeichensatz, in der die Versionsmeldung angezeigt wird. Standard: monospace 10Schriftart zur Darstellung von Ausgabe-Kommentaren. Standard: sans 8Schriftart zur Darstellung von Textunterschieden. Standard: monospace 10SchriftartenFür welche Arten von Revisionen das Werkzeugs aktiviert wird Wird nur dann berücksichtigt, wenn das Werkzeug im ausgewählten Revisionskontextmenü gezeigt wird.Archivreiter erzwingenEine Zusammenführung mit ausstehenden Änderungen erzwingen (-f/--force)Übertragen oder Entfernen erzwingen (--force)Abrufen oder Übertragen erzwingen (Sicherheitsprüfungen übersteuern, --force)Übertragen an den entfernten Ort erzwingen (-f/--force)Entfernen der geänderten Dateien erzwingen (--force)VergessenDateien vergessen...Grafischen Dialog im Hintergrund startenWeiter%d eingehende Änderungssätze gefundenEs gibt eingehende Änderungssätze von %sVonVon:Voller Name des AutorsVollständigen Pfad in der Titelleiste anzeigenMit dem Benutzer verbundene GPG-Schlüssel-ID. Standard: keine (leer)Englische Versionsmeldungen selbst dann erstellen, wenn die Umgebungsvariablen LANGUAGE oder LANG auf eine andere Sprache als Englisch gestellt sind. Diese Einstellung wird von den Dialogen fürs Zusammenführen, Etikettieren und Rücksetzen berücksichtigt. Standard: neinRufe eingehende Änderungssätze von %s ab...Git-FormatGit-Paches können Binärdateien, Kopien und Berechtigungsänderungen enthalten. Möglicherweise können Ihre Empfänger diese nicht verwenden, wenn sie ein anderes Werkzeug als git bzw. Mercurial einsetzen.GlobAllgemeine EinstellungenGnuPGGehe zu Pa&tchSpringe zuSpringe in ZeileZu einer bestimmten Revision wechselnZur aktuellen Revision wechselnZum gemeinsamen Vorgänger von %s und %s wechselnZum gemeinsamen Vorfahren wechselnZur Revision springenTransplantierenTransplantieren - %sTransplantation nach lokal ausgewählt...Die Transplantation wurde abgebrochenTransplantations-ÄnderungssatzTransplantations-Änderungssatz #%d von %dDie Transplantation ist gescheitertDie Transplantation hat zu Verschmelzungskonflikten geführt, die aufgelöst werden müssen.Die Transplantation ist abgeschlossenTransplantation:GraphEin grafisches Werkzeug zur Bearbeitung von Zusammenführungskonflikten. Geben Sie nichts an, benutzt Mercurial das erste brauchbare Werkzeug, welches es auf Ihrem System findet oder ansonsten sein internes Zusammenführungswerkzeug, welches die Konfliktanzeiger unverändert lässt. Wählen Sie internal:merge, um Konfliktanzeiger zu erzwingen, internal:prompt, um grundsätzlich zwischen der eigenen und der fremden Version zu wählen und internal:dump, um die jeweiligen Varianten im Arbeitsverzeichnis zur manuellen Zusammenführung hinterlegen zu lassen.Der größte gemeinsame Vorfahre zweier ÄnderungssätzeGriechischWachen: %d/%dUmbenennungen erratenTAR-GZIP-ArchiveHTTP-Fehler: %d (%s)Die Kopfrevision ist abgeschlossen!HebräischHg-Anweisung:Hg-Dateiprotokollbetrachter [%s] - %sHg-Patch-Dateien (als Ergebnis des Befehls export) sind mit den meisten Patch-Programmen (patch etc.) kompatibel. Sie enthalten einen Dateikopf, der die wichtigsten Metadaten des Änderungssatzes enthält.Details verbergenEtiketten verbergenKontextmenü außerhalb von Projektarchiven ausblendenIcon hervorhebenHaken-ArtHooksRechnerRechnername und wahlweise der Port des Proxyservers, zum Beispiel "meinproxy:8000"Name des MailserversRechnernamen, den der Absender nutzen soll, um sich beim Mailserver anzumelden.Wie viele Zeilen die Hintergrundschattierung in der mehrzeiligen Darstellung umfassen soll. 0 bedeutet keine Schattierung. Standard: 1SymbolSymboleFalls kein Benutzername angegeben ist, wird der Benutzer aufgefordert einen Benutzernamen einzugeben. Standard: ausFalls angegeben, werden Dateien in dieses Verzeichnisses in neu erstellte Projektarchive kopiert, z.B. .hgignore.Ob eine mehrzeilige Änderungssatz-Zusammenfassung aneinandergehängt und bei Bedarf auf 80 Zeilen beschränkt wird. Standard: falschWenn Sie immer noch Probleme haben, erstellen Sie bitte einen Fehlerbericht.Ausschließen Leerzeilen ignorierenign. LeeränderungenLeerzeichenwechsel ignorierenGroß-/Kleinschreibung ignorierenÄnderungen in der Menge des Leerraums in Diff-Ansichten ignorieren. Standard: FalseÄnderungen in der Menge des Leerraums in der Kommentaransicht ignorieren. Vorgabe: FalseÄnderungen bezogen auf vollständig leere Zeilen in Diff-Ansichten ignorieren. Standard: FalseÄnderungen betreffend vollständig leerer Zeilen in der Kommentaransicht ignorieren. Vorgabe: falseAusschlussfilter - %sLeerraum beim zeilenweisen Vergleich in Diff-Ansichten irgnorieren. Standard: FalseLeerraum beim zeilenweisen Vergleich in der Kommentaransicht ignorieren. Standard: FalseIgnoriert*Ohne Nachfrage ausführenImportieren - %sAus der Zwischenablage importierenIn &MQ importierenIn der aktuellen &RevisionIn der &AusgangsrevisionIn der gesamten &HistorieDer der aktuellen &DateiAntwort auf:EinschließenAlle Vorgänger einschließenPatch-Warteschlange einschließenEnthält:Eingehende LesezeichenBezug von %s abgebrochen, Rückgabewert %dGibt an, ob TortoiseHg automatisch versuchen soll, Änderungen an einer Datei von beiden Seiten zusammenzufassen, und nur dann Verschmelzungskonflikte melden, wenn das nicht möglich ist. False bedeutet, alle Dateien mit Änderungen auf beiden Seiten werden als konfliktär dargestellt, auch wenn die Bearbeitungen an disjunkten Stellen in den Dateien geschehen sind. In beiden Fällen wird der Benutzer im Falle aufgetretener Konflikte eingeladen, diese zu prüfen und manuell auszubügeln. Standard: True.Installation von iniparse erforderlich.Das Paket iniparse wurde nicht gefundenErst-RevisionEtiketten einreihenNeue Wachen für %s eingeben:Unzureichende Zugriffsrechte, wechsle in den Schreibschutzmodus.Fehlende Zugriffsrechte.abgebrochenUnterbrochener Transplantationsvorgang festgestelltUngültige MusterUngültige Konfiguration - bitte geben Sie Ihren Review-Board-Benutzernamen anUngültige Konfiguration - der Review-Board-Server ist nicht eingerichtetUngültige AnweisungUngültige Konfiguration: %sUngültiges DatumsformatUngültige Übertragungsrevision: %s. Bitte prüfen Sie Ihre Mercurial-Konfiguration (tortoisehg.defaultpush)Ungültiger Glob-AusdruckUngültiger regulärer AusdruckUngültiges Review-Board-Plugin. Bitte laden Sie die Version 3.5 oder höher von der unten angegebenen Web-Site herunter. %sTicket-LinkRegulärer Ausdruck für TicketsTicketing-SystemTicketing-System-Plug-inFehler im Plugin für das Ticketing-SystemAuslöser des Ticketing-SystemsTicketing-SystemEs war nicht möglich, die Unterarchivliste für das Archiv hier zu laden:

                                                                                                            %s

                                                                                                            Die folgenden Unterarchive fehlen eventuell, sind defekt oder in einem inkonsistenten Zustand und auf sie kann nicht zugegriffen werden:

                                                                                                            %sEs war nicht möglich, die Unterarchiv-Liste vom Archiv hier zu besorgen:

                                                                                                            %sKursivJapanischUrsprüngliche Zweignamen beibehalten (--keepbranches)Ursprüngliche Änderungssätze beibehalten (--keep)Patch aufbewahrenSchlüssel-IDSchlüssel:Schlüsselwort-Suchebinär eingebranntBekannte inkorrekte Revision:Bekannte korrekte Revision:KoreanischBinärriesenLinke WerkzeugleisteLass den Benutzer die projrc beim Eingang aktualisieren:

                                                                                                            • never: [Vorgabe] Anzeigen, ob sich die entfernte projrc-Date geändert hat, aber die loakle projrc-Datei nicht ändern und auch nicht nachfragen.
                                                                                                            • prompt: Prüfe auf Änderungen an der projrc-Datei. Wenn es Änderungen gibt, grundsätzlich einen Bestätigungsdialog anzeigen mit der Frage, ob der Benutzer seine lokale projrc-Datei aktualisieren möchte.
                                                                                                            • auto: Nach Änderungen in der projrc-Datei suchen. Auf Basis des Konfigurationsschlüssels "projrc.confirm" entscheiden, ob ein Bestägigungdialog vor Aktualisierung der lokalen projrc-Datei angezeigt werden solll oder nicht.

                                                                                                            Standard: neverLizenzEntsprechend "keyword(zeichenkette)", aber lässt reguläre Ausdrücke zu.ZeileOptionen auf&listenListe aller WerkzeugeListe der Einstellungen, die NICHT aus der Projektkonfigurationsdatei abgerufen werden. Standardmäßig werden keine der eingeschlossenen Einstellungen ausgeschlossen.Liste der Einstellungen, die aus der Projektkonfigurationsdatei abgerufen werden. Standardmäßig werden KEINE Einstellungen übernommen.Aktualisierte Dateien auflisten (--verbose)&Alle Revisionen ladenAlle Revisionen in die Grafik ladenLade Archiv %sLokaler RechnernameLokales VerzeichnisLokales Verzeichnis:Lokales Projektarchiv %sNur lokale FestplattenLokale RevisionsinformationenLokal signierenLokales EtikettOrt:Sperre KlonenEine nicht in .hglocks aufgelistete Datei sperrenSperren von %s fehlgeschlagen, erneut versuchenSperren von %s erfolgreichGesperrte und sperrbare Dateien:Gesperrt*Sperre %sSperrender BenutzerProtokollProtokoll-LängeLange ZusammenfassungMMQ-&OptionenFormat von MQ-GitÜbertragenAlle übertragenMercurial-Warteschlangen-EinstellungenMa&nifest-ModusMercurial-Flicken geheim werden lassen (statt Entwurf). Standard: falseProjektarchiv mit Mercurial vor 1.7 kompatibel machenEine Revision als geheim zu kennzeichnen ist im Allgemeinen eine sichere Maßnahme. Es gibt jedoch einige Punkte, die es zu bedenken gilt: - "geheime" Revisionen werden nicht übertragen. Dies kann Ihnen Schmerzen verursachen, wenn Sie sich auf ein "geheimes" Unterarchiv beziehen. - Wenn Sie diese Revision von einem nicht publizierenden Server abgerufen haben, kann die Revision wieder als Entwurf gekennzeichnet werden, wenn Sie erneut von diesem spezifischen Server abrufen. Seien Sie bitte vorsichtig. Immer.HTTPS-Verbindungssicherheit und Benutzerauthentisierung verwaltenAusstehende Perforce-Änderungslisten verwaltenVerpflichtend anzugebende Ticket-IDWollen Sie die zurückgewiesenen Blöcke manuell auflösen?Manuell zurückgewiesene Patch-Schnipsel auflösenAls &nicht aufgelöst kennzeichnenDiesen Block als erledigt markieren und zum nächsten offenen wechselnDiesen Block als nicht erledigt markierenDatei als aufgelöst kennzeichnenDatei als nicht aufgelöst kennzeichnenVergleichstextkann zu irgend einer der %d Revisionen passenMaximale ÄnderungenMaximale Größe von DiffsMaximale DateienMaximale Anzahl von Änderungen, die im Änderungsverlauf darstellt werden. Standard: 10Maximale Dateianzahl, die je Änderungssatz angezeigt wird. Standard: 10Elemente einer Menge ohne Kinder in der Menge.MenüverhaltenMercurial-&Konflikt auflösenBenutzer von MercurialMercurial läuft noch. Sind Sie sicher, dass sie es abbrechen wollen?Die Mercurial Schlüsselbund-Erweiterung ist aktiv. Passwörter werden auf eine plattformspezifische sichere Weise gespeichert.Mercurial konnte keinen Editor finden. Bitte hinterlegen Sie einen Editor in der Mercurial-Konfiguration.ZusammenführenZusammenführen - %sZusammenführen - Zusammenführung mit allen lokalen Änderungen erlaubenAlle ausstehenden Abhängigkeiten zusammenführenDie Zusammenführung hat Dateikonflikte verursacheMit Änderungssatz zusammenführenZusammenführen mit (andere Revision)Die zurückgewiesenen Patch-Blöcke werden mit %s zusammengefügtVersion zum Zusammenführen fehlt oder nicht vorhandenZusammenführen in (Arbeitsverzeichnis)Zusammenführen unter Einsatz des ausgewählten WerkzeugsMit %s zusammenführenMit dem anderen Kopf des aktuellen Zweigs zusammenführenFühre zusammen...KommentarSchriftart für KommentareÜbersetzung des Kommentars gescheitertKennung des zu beantwortenden Kommentars, zur GesprächsfadenkennzeichnungVorgehen, um TLS einzuschalten bei der Verbindung mit dem Mailserver. Standard: noneMinimale Ähnlichkeit: %d%%MindestgrößeFehlende AngabeHistorie ä&ndernArchivänderungen überwachenÄnderungen im
                                                                                                            Arbeitsverzeichnis überwachenVerschiebenAlle Dateien nach links verschiebenAlle Dateien nach rechts verschiebenVerschiebe angewendete Patches in Repository HistorieVerschiebt Änderungen zwischen dem Arbeitsverzeichnis und dem PatchAusgewählte Blöcke nach links verschiebenAusgewählte Blöcke nach rechts verschiebenAusgewählte Datei nach links verschiebenAusgewählte Datei nach rechts verschiebenEtikett %s zu Änderungssatz %s verschoben (aus dem Änderungssatz %s)Mehr als eine Quelle ausgewähltNameDer mit Übernahmen verbundene Benutzername. Das übliche Format ist
                                                                                                            Vollständiger Name <email@beispiel.de.test>Der Name oder die E-Mail-Adresse des Hauptansprechpartners für das Projektarchiv.Der benannte Zweig "%s" existiert bereits, zuletzt geändert in Revision %d Neue &GruppeNeue &WerkbankNeuer Zweig: Neue ÜbernahmephaseNeue GruppeNeuer Name:Neuer Patch-ZweigNeues Repo SkelettNeues ArchivNeuer StauraumNeues Werkzeug...Datei neu angelegtNeuer HookNeuer Patch-Kommentar:Name der neuen Patch-Warteschlange?Neuen Stauraum angelegtWeiterNächstes DiffNächstes DiffKein DatumKeine passenden DateienKeine Sicherung (-n/--nobackup)Keine Änderungen am ZweigEs gibt keine weiteren BlöckeNicht übernehmenKeine löschbaren BlöckeKein Diff-Werkzeug gefundenKein Editor gefundenkeine DateiänderungenKeine Datei ausgewähltFür diesen Vorgang wurden keine Dateien gefundenKeine Dateien ausgewähltKeine Dateien zu findenKein Rechner angegebenKeine Rechnerüberprüfung, aber immerhin verschlüsselt (schlecht)Keine ignorierten Dateien gefundenEs gibt keine eingehenden Änderungssätze von %sEs gibt keinen Verweis auf ein Ticket im Übernahme-Kommentar. Die Versionsmeldung sollte einen Verweis auf ein Ticket enthalten. Dies können Sie in den Einstellungen im Abschnitt "Ticketing-System" konfigurieren.Es gibt nichts anzuzeigenKeine Übereinstimmungen gefundenKeine Zusammenführungskonflikte, Übernahme kann erfolgenKeine Verschmelzungskonflike, bereit zum Übernehmen oder prüfenKeine geänderten Dateien zur Übernahme ausgewähltEs gibt nichts zu tunKeine ausgehenden ÄnderungssätzeKeine ausgehenden Änderungssätze für %sKein Patch-Zweig ausgewähltEs gibtkeine ausstehenden Perforce-ÄnderungslistenEs ist kein URL bzw. kein Pfad eines entfernten Archivs gesetztDas Projektarchiv existiert nichtKeine Shell konfiguriertKeine Transaktion verfügbarKeine zur Löschung vorgesehenen Dateien gefundenKeine Fremddateien gefundenEs ist kein Benutzername festgelegtKeine gültige Standardarchiv-URL bzw. -pfad wurde für dieses Archiv festgelegt.

                                                                                                            Bitte geben Sie den entfernten Archivpfad im Syncbereich ein.Es wurden keine grafischen Diff-Werkzeuge gefundenkein grafischer Editor konfiguriertNichts tun - nur Änderungssätze abrufenNordischZeilenenden innerhalb des bzw. am Schluss des Patches auf LF oder CRLF normalisieren. Strict führt keine Normalisierung aus. Auto betreibt eine dateispezifische Erkennung, und ist die empfohlene Einstellung. Standard: StrictKein Unterarchiv im Mercurial-Sinn, daher keine Vorschau möglichKeine Kopfrevision!Kein Kopf, das Rücksetzen erstellt eine neue Kopfrevision!Nicht übernommenKeine Änderungen.Nichts zu importierenNichts zu übertragnOKObsoleter Zustand:Im Projektbereich, anzeigen fürMindestens ein Änderungssatz, den Sie zu übertragen versuchen, enthält die Erzeugung eines neuen Zweigs. Wollen Sie einen neuen Zweig im entfernten Archiv erzeugen?Nur gelöschte Dateien berücksichtigenNur Dateien, die in dieser Revision verändert/erstellt wurdenAuf das ZielÖffnen&Eingabeaufforderung öffnen&Unterarchiv öffnenÖffnen Sie eine (nicht zusammenführbare) Datei, die Sie sperren möchtenNeuen benannten Zweig erstellenEine Kommandozeilenkonsole im Wurzelverzeichnis des Archivs öffnenÖffnet eine Kommandozeilenkonsole im ausgewählten VerzeichnisKomplexen Anfrage-Editor öffnenAlle Projektarchive in neuen Reitern öffnenEinstellungen von hgweb öffnenÖffnet neue Reiter neben dem aktuellen ReiterÜbergeordnetes Verzeichnis der aktuellen Datei im Dateimanager öffnenStauraum öffnenDas Archiv in einem Dateiexplorer öffnenDas Projektarchiv in einem neuen Reiter öffnenÖffnet das ausgewählte Verzeichnis im Dateimanager des SystemsDas ausgewählte Unterarchiv öffnenVorgang abgebrochen:

                                                                                                            %(arg0)s.Der Befehl, der unmittelbar nach einem erfolgreichen Abruf ausgeführt wird. update entspricht einem pull --update, fetch entspricht der fetch-Erweiterung, rebase entspricht pull --rebase, updateorrebase entspricht pull -u --rebase. Standard: keineWahlweise: Kommagetrennte liste von Rechnernamen, für die der Proxyserver umgangen wird.Wahlweise. Vorgehensweise beim Versand von E-Mails. Der Standardwert "smtp" hat die Wahl des SMTP-Protokolls zur Folge (der im Folgenden weiter konfiguriert wird). Jeder andere Wert bezeichnet ein Programm, welches wie das Sendmail-Programm aufgerufen wird (mit dem Schalter "-f" zur Angabe des Versenders, der Empfängerliste in der Argumentliste und dem Text über die Standardeingabe). In der Regel genügt es, hier "sendmail" oder "/usr/sbin/sendmail" auszuwählen, um E-Mails mit Hilfe von Sendmail zu versenden.Wahlweise. Client-Zertifikatsketten-Datei im PEM-Format. Umgebungsvariablen werden bei Ermittlung des Dateinamens aufgelöst.Wahlweise. Eine Datei mit dem Client-Zertifikatschlüssel im PEM-Format. Umgebungsvariablen werden bei der Auswertung des Dateinamens aufgelöst.Wahlweise. Passwort für die Anmeldung beim Proxyserver.Wahlweise. Passwort für die Anmeldung. Wenn nicht erfasst, und die entfernte Seite eine Authentisierung verlangt (basic oder digest), wird der Benutzer interaktiv nach ihm gefragt.Wahlweise. Benutzername für die Anmeldung beim Proxyserver.Wahlweise. Benutzername für die Anmeldung. Wenn nicht erfasst, und die entfernte Seite eine Authentisierung verlangt (basic oder digest), wird der Benutzer interaktiv nach ihm gefragt. Umgebungsvariablen werden bei der Auswertung des Benutzernamens erweitert, so dass Sie dings.username = $USER vorgeben können.EinstellungenEinstellungen:Alternativ einzusetzen:Die Unterarchive entsprechend der Reihenfolge in .hgsub sortierenUrsprünglicher Vorgänger:Andere RevisionsinformationenAusgehende LesezeichenVersand abgebrochen, Rückgabewert %dVersand an %s abgebrochen, Rückgabewert %dSchriftart für AusgabenÜberblendungenLesezeichen &abrufenVer&sendenPDF Dateien (*.pdf)PEM Dateien (*.pem *.crt *.cer)PEM Dateien (*.pem *.key)Vorgänger 1:Vorgänger 2:Vorgänger:VorgängerPasswortPasswort für die Anmeldung beim MailserverPasswort zur Authentisierung am Review-Board-ServerKennwort:Dateinamen &einfügenPatchzweig-WerkzeugleisteZeilenendezeichen patchenPatch-Dateien (*.patch)Der Name des Paches fehltPatch-WarteschlangePatch-Warteschlangen-WerkzeugleistePatch-Datum:Der Patch wurde exportiertDer Patch konnte nicht angewandt werdenPatch-Dateien (*.diff *.patch)Es gibt bereits Patch-DateienPatch verschmelzen - %sPatch-Kommentar:Patch-Name:Die Beschreibung der Patch-Reihe wird als Zusammenfassung in einer ersten E-Mail versandt, deren Betreff [PATCH 0 of N] lautet. Die Beschreibung sollte die Auswirkungen der gesamten Patch-Reihe darstellen. Wenn ein Bündel verschickt wird, werden diese Informationen für den Betreff und die Nachricht der Mail verwendet. Die Schalter sind eine kommagetrennte Liste von Etiketten, welche am Anfang des Betreffs eingefügt werden.Patch-Benutzer:Patch:Patch: %sDie Patches wurden exportiertZu verschmelzende PatchesVerzeichnisPfadbearbeitungs-WerkzeugleisteURI des Review-Board-Servers, beispielsweise "http://demo.reviewboard.org"Verzeichnis, in dem ein systemweiter Cache von Binärdateien erstellt wirdVerzeichnispfad, in dem Ihre Binärriesen benutzerspezifisch zwischengespeichert werdenVerzeichnis:Verzeichnisse in den Archiveinstellungen:MusterAusstehende Perforce-Änderungssätze - %sAusstehende Perforce-Änderungslisten...Perforce:Vor dem Aktualisieren zunächst übertragen (-p/--push)PhaseKonsole im Dock Bereich platzierenEinfach, keinen Hg-Dateikopf erzeugenBitte konfigurieren Sie einen grafischen EditorBitte aktivieren und konfigurieren Sie SimplelockBitte schalten Sie zunächst die Gpg-Erweiterung an.Bitte geben Sie Ihren Benutzernamen einBitte geben Sie eine Versionsmeldung einBitte berichten Sie diesen Fehler auf unserem Bug-TrackerBitte geben Sie zum Fortsetzen eine gültige URL an.Bitte warten Sie, während die zusammengeführten Dateien übernommen werden.Bitte warten Sie, während die Rücksetzung vorgenommen wird.Bitte warten Sie, während die Datei geöffnet wird...Warten Sie bitte...ZiehenAlle ziehenPortPort des Mailservers, zu dem die Verbindung aufgebaut wird. Standard: 25Port für eingehende VerbindungenAnschluss:Review Über&mittelnVorgehen nach dem AbrufenNach dem Abrufen: Review veröffentlichenAuswahl auf Review-Board veröffentlichen...Auf &Review-Board veröffentlichen...Rücksetzen vorbereitenZusammenführen vorbereitenMit .hg beginnende Dateien beibehaltenZurückVorschauVorschau:Vorheriges DiffVorausgehendes DiffZuvor war das Unterarchiv in folgender Revision:ProjrcProxyPrune - %sAnfrage unmittelbar veröffentlichenAbrufenAbruf von %s abgebrochen, Rückgabewert %dAbruf von %s abgeschlossenEingehende Änderungen abrufenEingehende Änderungen ziehen von %sEingehende Änderungen von der ausgewählten URL abrufenEingehende Änderungssätze in Ihr Projektarchiv abrufenUnterarchive ziehen von:Hierher abrufen...Entferntes Lesezeichen abgerufen: %sRufe ab von %s...BereinigenPatch-Queue bereinigenZweckÜ&bertragen&Alle ÜbertragenNach Übernahme übertragenNach übernahme übertragenÜbertragung benötigt SSLAusgewählten &Zweig übertragenAlle übertragenAktuellen Zweig (%s) übertragenAusgehende Änderungen versendenAusgehende Änderungen versenden nach %sAusgehende Änderungen an die ausgewählte URL übertragenÜbertragung nach %s abgebrochenÜbertragung nach %s abgebrochen. Rückgabewert %dÜbertragung nach %s abgeschlossen&Hierhin übertragenÜbertragung an das entfernte Projektarchiv %s ?Bis zur aktuellen Revision (#%d) übertragenBis zur Revision #%d übertragenLokales Lesezeichen übertragen: %sÜbertrage nach %s...QNewQRefreshAnfrageAnfrage bezüglich Änderungssätzen mit Einfluss auf die ausgewählten DateienBeendenLesezeichen &löschenArchivregistrierungs-&EinstellungenZurück&rollen/Rückgängig...LIESMICH ist nicht konfiguriert&WiederherstellenVersionierte &entfernenAus der Registry &entfernenUmbe&nennenPatch &umbenennen&Umbenennen...Schreibgeschützt*BereitBereit zum Bereinigen.Bereit, Doppelklicken zum Sperren oder EntsperrenVerschiebungVerschiebung - %sVerschieben - lokale Übernahmen in Nachfolger der abgerufenen Änderungen umwandelnVerschieben - verwenden Sie die rebase-Erweiterung (rebase ist nicht aktiviert!)Die Verschiebung wurde abgebrochenDie Verschiebung läuft bereitsBasis des Änderungssatzes und seiner Nachfahren verschiebenVerschiebung gescheitertDie Verschiebung hat zu Zusammenführungskonflikten gefühlt, die aufgelöst werden müssen.Dei Verschiebung ist abgeschlossenNicht Veröffentlichtes auf die Subversion-Kopfrevision verschieben (übersteuert Ziel und Quelle)Basisverschiebung...Unterarchive mit bearbeitenUnterarchive rekursiv einschließen (--subrepos)Redundante AuthentisierungsinformationenAktualisierenAufgaben&reiter aktualisierenWerkzeugleiste aktualisierenAktuellen Patch aktualisierenAusgewähltes Archiv aktualisierenDateiliste aktualisierenSperr Informationen auffrischenNur den aktuellen Aufgabenreiter aktualisierenArchivkatalog aktualisierenAktualisiere SperrenRegulärer AusdruckRegulärer Ausdruck:Suchmuster (Regulärer Ausdruck)Eingehende Änderungssätze verwerfenVerwandte Pfade:Datei &einlesenDatei neu ladenUnterarchiv &löschen...Entfernte Aktualisierung - %sEntfernt auszuführende Anweisung:Entfernen&Alle ausgewählten Dateien entfernen&Unveränderte Dateien entfernenDateien entfernen...Authentisierungsdaten aus URL entfernenAktuelle Revision entfernen?Dateien aus der Versionskontrolle entfernenFilter entfernen und Wurzel zeigenPatch-Verzeichnis bereinigen:Patches aus der Warteschlange entfernen?Die zur Löschung ausgewählten Dateien tatsächlich entfernen?Den Knoten und alle Unterknoten entfernen. Die Projektarchive werden nicht von der Platte gelöscht.Das ausgewählte Archiv löschen?Dieses Unterarchiv von der aktuellen Revision entfernenLokales Lesezeichen entfernt: %sEntferntes Lesezeichen gelöscht: %sEtikett %s gelöschtUmbenennenUmbenennen - %sFehler beim UmbenennenDatei umbenennenPatch umbenennenPatch-Queue umbenennenDatei oder Verzeichnis umbenennenPatch %s umbenennen in:Patch-Warteschlange '%s' umbennen inPatch umbenennen...Den Eintrag umbenennenDen letzten geschlossenen Reiter wieder öffnenDie letzte geschlossene Reitergruppe wieder öffnenErsetzenVorhandenen Hook ersetzen?Vorhandenes Etikett ersetzen (-f/--force)Die vorhandenen Patch-Dateien ersetzen. Nur den ersten Treffer je Datei meldenProjektarchiveProjektarchivProjektarchiv-FehlerProjektarchiv-ID:ArchivkatalogArchivregistrierung aktualisiertArchiveinstellungenDer Projektarchiv-Befehl ist noch nicht abgeschlossenDas Archiv ist gesperrtDer Projektarchiv-Name, der in der Weboberfläche benutzt werden soll, und von TortoiseHg ansonsten als Kurzname eingesetzt wird. Standard ist der Name des Arbeitsverzeichnisses.Das Projektarchiv ist nicht lokalZustand des Projektarchivs und ÄnderungenBestätigung verlangenKonflikte auflösen - %saufgelöste KonflikteZweig neu &startenVerschmelzung &neu startenVerschmelzung neu starten &mitStarten Sie alle TortoiseHg-Anwendungen neu, um die folgenden Änderungen inkraftzusetzen:Die Verschiebung wird fortgesetztRevision&Wiederherstellen&Alle Dateien rücksetzenWiederherstellen - %sDateien wiederherstellen...Alle Dateiänderungen zurückrollen?Alle Dateien in dieser Revision wiederherstellenWiederherstellen und lokale Änderungen verwerfen?Wiederherstellen und Dateiänderungen verwerfenDen Dateiinhalt dieser Revision wiederherstellenDateien entsprechend dem lokalen oder dem anderen Vorgänger wiederherstellen?Wiederherstellen und lokale Änderungen verwerfen?Die nachgenannten Dateien wiederherstellen?Revision wiederherstellenDurch das Wiederherstellen aller Dateien werden zwischenzeitliche Änderungen verworfen und die betroffenen Dateien als modifiziert gekennzeichnet.

                                                                                                            Sind Sie sicher, dass Sie sie wiederherstellen wollen?

                                                                                                            (Verwenden Sie Aktualisieren, um eine andere Revision abzurufen.)p4-Änderungsliste wird wiederhergestellt...ReviewBoardReview-ID:Review-Entwurf an %s geschickt Review auf %s veröffentlicht RevisionRevision #%d (%s) wurde exportiert in:

                                                                                                            %s%s%s&Einzelheiten zur RevisionRevisionsmengeAnfrage auf der RevisionsmengeRevisions-Details-KontextmenüDie Revision hat sich geändert in:Die Revision ist &schlechtDie Revision ist &gutVergleichs-RevisionRevision:Revisionen zum Vergleichen:Rechte WerkzeugleisteÜbernahme zurückrollen auf Revision %dZur Revision %d zurückrollen (%s zurücknehmen)?Der Web-Server läuft unter %sLäuft...Russisch&Synchronisier-SymbolleisteS&ynchronisierenSMTP-HostSMTP-PasswortSMTP-PortSMTP TLSSMTP-BenutzernameSSH-BefehlSSL-Fehler: %sVerifikation des SSL-Serverzertifikats gescheitertUnbekannter SSL-Fehler %s:%sSpeichere aktuelle Synchronisierungs Pfade beim BeendenSpeichernAlle speichernOffene Archive beim Be&enden speichernPfad speichernÄnderungen vor dem Bearbeiten speichern?Aktuelle URL unter einem Alias speichernDen Fehlerbericht speichern unterDie Datei so schreiben, wie sie zu dieser Revision erschienDatei speichern unterEinstellungen von hgweb speichernIm Archiv speichern&Entferntes Archiv prüfenSucheHistorie durchsuchenAusgewählten Text suchenSuche läuft bereitsVersionsmeldung, Benutzername und Namen geänderter Dateien nach einem Text durchsuchen.Dateirevisionen nach Mustern durchsuchenIn der ganzen &Historie suchenSuche...Suche...Der Vorvorgänger aller ausgewählten Änderungssätze, oder das Arbeitsverzeichnis.Geheime Flicken in der Mercurial-ReiheSichere HTTPS-VerbindungSicherheitSicherheit: &Alle Auswählen&Keine AuswählenZieldatei auswählenZielordner auswählenBitte wählen Sie das Verzeichnis mit den Patches ausProjektarchiv auswählenQuelldatei auswählenQuellordner auswählenWerkzeug auswählen:Ein Oberflächen-Element zur Bearbeitung auswählen:Wählen Sie ein bestehendes Archiv, welches als Unterarchiv hinzugefügt werden sollWählen Sie einen Zweig, in den die Zusammenführung übernommen werden sollWählen Sie ein BündelWählen Sie das ZielarchivWählen Sie, ob TortoiseHg eine Zielauswahlliste in der Synchronisierungsaufgabenleiste anzeigen soll.

                                                                                                            • auto: Der Standard. Zeige die Auswahlliste, falls mehr als ein Ziel konfiguriert ist.
                                                                                                            • always: Die Auswahlliste grundsätzlich anzeigen.

                                                                                                            Standard: auto

                                                                                                            Wählen SIe ein Verzeichnis für den PatchPatches auswählenAusgewählte Folgeoperation nach dem Abrufen in dieses ProjektarchivWähle ProjektarchivWählen Sie ein Projektarchiv-Verzeichnis zum HinzufügenZum Öffnen eines Archivs wählen Sie sein VerzeichnisWählen Sie das QuellarchivWählen Sie die Revision, die standardmäßig beim Öffnen eines Projektarchivs ausgewählt werden soll. Sie können die aktuelle wählen (current, bezeichnet den Vorgänger der Arbeitskopie), die Spitze des Archivs (tip) oder die Arbeitskopieversion (workingdir). Standard: currentWählen SIe den Bereich, der standardmäßig beim Öffnen eines Projektarchivs angezeigt werden soll. Standard: revdetailsGeben Sie die standardmäßig zu übertragenden Revisionen vor, wann immer Sie den Verteilen-Knopf betätigen.
                                                                                                                all: Die Vorgabe. Alle Änderungen in allen Zweigen.
                                                                                                              • branch: Alle Änderungen im aktuellen Zweig.
                                                                                                              • revision: Alle Änderungen im aktuellen Zweig bis zur aktuellen Revision.

                                                                                                              Standard: all

                                                                                                              Wählen Sie die anzupassende Werkzeugleiste oder das anzupassende Menü

                                                                                                              Wann TortoiseHg beim Aktualisieren einen Dialog zum Aktivieren der Lesezeichen zeigt (Standard: prompt):

                                                                                                              • auto: Versuche, Lesezeichen automatisch zu aktivieren. Bei einer Aktualisierung zu einer Revision mit einem Lesezeichen wird diese automatisch aktiviert. Ein Dialog wird angezeigt wenn die Revision mehr als ein Lesezeichen hat.
                                                                                                              • prompt: Voreingestellt. Zeigt einen Dialog an, wenn auf eine Revision aktualisiert wird, die ein oder mehrere Lesezeichen enthält.
                                                                                                              • never: Nie einen Dialog zum Aktivieren der Lesezeichen anzeigen.
                                                                                                              Wählen Sie, wann die Statusliste des Arbeitsverzeichnisses aktualisiert wird:
                                                                                                              - auto: [Vorgabe] TortoiseHg entscheidet, wann die Arbeitsverzeichnis-Statusliste aktualisiert wird.
                                                                                                              TortoiseHg wird die Liste aktualisieren, sobald es Operationen ausführt, die das Arbeitsverzeichnis beeinflussen können. Auf diese Weise werden alle Änderungen außerhalb der Reichweite von TortoiseHg übersehen;
                                                                                                              - always: ergänzend zu den automatischen Aktualisierungen wie oben wird die Statusliste auch aktualisiert, wenn der Benutzer auf die Arbeitsverzeichnis-Revision oder das Übernahmesymbol in der Werkbank-Statuszeile klickt;
                                                                                                              - alwayslocal: so wie "always", jedoch beschränkt auf die erzwungene Aktualisierung lokaler Archive.
                                                                                                              . Standard: autoWählen Sie, wie Ihre Anweisung ausgeführt wird.Legen Sie fest, ob nur ein einzelnes Werkbank-Fenster angezeigt werden soll. Wenn Sie diese Einstellung ausschalten, öffnet sich jedesmal ein neues Fenster, wenn Sie die "Hg-Werkbank" aus dem Explorer-Kontextmenü starten. Vorgabe: WahrDie beiden ausgewählten Änderungssätze stehen in keiner Beziehung zueinander&E-Mail versendenÄnderungssätze als Hg-Patches versendenEinzelnes binäres Bündel senden, keine PatchesDie E-Mails werden versandtServerServerseitige Projektarchiv-IDServer&Guards setzen...MengenvorgängerschaftDatum festlegen:MengenlogikBenutzernamen angeben:&EinstellungenEinstellungenKonfigurationsdatei:Einige Zeichen würden verlorengehen.Einige Symbole wurden freundlicherweise von den TortoiseSVN- und Tango-Projekten bereitgestelltArchivregistrierung &anzeigenStauraumStauraum geleertStauraum entferntStauraum: %sShellStauraum - lokale Änderungen in einen Patch verschiebenStauraum-ÄnderungenSollen neue Reiter neben dem aktuellen Reiter geöffnet werden? Ansonsten werden neue Reiter hinter dem letzten Reiter geöffnet. Standard: Wahr&Autor zeigen&Datum zeigen&Patch-Warteschlange anzeigen&Pfade anzeigen&Revision zeigenDialog "Über TortoiseHg" anzeigenKonsole anzeigenDetails anzeigenAhnentafel anzeigenFunktion zeigenSymbol anzeigenTickets anzeigenTickets anzeigen...Protokoll anzeigenAusgabeprotokoll zeigenRevision-&Details anzeigen&Kurze Pfade anzeigenZeigt den gesamten Pfad des Projektarchivs in der Titelzeile statt nur den Namen des Wurzelverzeichnisses. Standard: FalschZeige alleAlle Dateien unter Versionskontrolle in der Baumansicht anzeigenÄnderungen gegenüber dem ersten Vorgänger anzeigenÄnderungen gegenüber dem zweiten Vorgänger anzeigenZeigt Dateien, die von dieser Übernahme geändert wurdenDen vollen Namen des Autors in der Protokollansicht zeigen. Wenn abgeschaltet, wird nur ein kurzer Teil, üblicherweise der Name ohne E-Mail-Adresse, angezeigt. Vorgabe: False

                                                                                                              Indirekte Revisionsabhängigkeiten im Revisionsgraphen anzeigen, wenn ein Filter nach Revisionen aktiviert ist. Standard: True

                                                                                                              Achtung:Die Berechnung der Ahnentafel kann in einigen Fällen langsam sein. Diese Option wird voraussichtlich entfernt, wenn dieses Performanceproblem gelöst ist.

                                                                                                              Zeigt Reiter entlang der Seite der unteren Hälfte jedes Archivbereichs, um zwischen verschiedenen Aufgaben ohne Benutzung der Werkzeugleiste umzuschalten. Standard: ausZeigt Etiketten am Anfang der Versionsmeldung.Die Historie der ausgewählten Datei anzeigenZeige zu jeder Änderung die betroffene Funktion. Standard: FalseVersteckte Änderungssätze zeigen/versteckenSig&nieren...Signieren - %sSignieren selbst, wenn sigfile geändert ist (-f/--force)Signatur hinzugefügtSimplelockSimplelock Erweiterung nicht aktiviertEinzelnes Werkbank-FensterGrößeGröße (KiB)Schlussendliche Bestätigungsseite überspringen und nach der Übernahme schließen.Überspringe %s, kann nicht gelesen werdenEinige der ausgewählten Dateien sind größer als 10 MiB. Durch die Kennzeichnung dieser Dateien als Binärriesen können Sie den Platz effizienter nutzen, da auf diese Weise nur die jüngste Version dieser Dateien in Ihrem lokalen Archiv abgelegt wird, während die älteren Revisionen auf dem Server verbleiben. Wollen Sie diese Dateien als Binärriesen hinzufügen?Nach &Namen sortierennach &Pfad sortierenMenge nach Schlüsseln sortieren. Die Standardsortierrichtung ist aufsteigend, geben Sie einen Schlüssel als "-schluessel" an, um nach ihm absteigend zu sortieren.Die Gruppe nach vollem Pfad sortierenDie Gruppe nach Kurznamen sortierenQuelleQuelle existiert nicht.Quelle:SüdosteuropaSüdeuropaLeerzeichengetrennte Liste von Zweignamen und Farben im Sinne von Zweig:#RRGGBB. Leerzeichen und Doppelpunkte im Zweignamen müssen entsprechend durch einen umgekehrten Schrägstrich (\) gekennzeichnet werden. Entsprechend können einige andere Zeichen auf diese Weise gekennzeichnet werden, beispielsweise entspricht \u0040 dem @-Zeichen und \n einem Zeilenvorschub-Zeichen. Standard: kein (leere Liste)Leerzeichengetrennte Liste von Anweisungen, die unmittelbar und ohne Nachfrage ausgeführt werden sollen. Mögliche Anweisungen sind "add remove revert forget". Standard: keine (leer)Eine leerzeichengetrennte Liste von Etiketten, die nicht angezeigt werden. Praktisches Beispiel: Geben Sie "qbase qparent qtip" an, um die von der Mercurial-Queues-Erweiterung hinzugefügten Standardetiketten auszublenden. Vorgabe: keine (leere Liste)Geben Sie den neuen Stauraum-Namen anBefehl um die bevorzugte Shell Anwendung zu starten. Falls der Befehl die Zeichenkette %(reponame)s enthält, wird der name des Projektarchivs an Stelle von %(reponame)s eingefügt. Ebenso stellt %(root)s den vollständigen Pfad ins Projektarchiv dar. (Neustart erforderlich)
                                                                                                              Standard, Windows: cmd.exe /K title %(reponame)s
                                                                                                              Standard, OS X: nicht eingestellt
                                                                                                              Standard, andere: xterm -T "%(reponame)s"Wählen Sie die Anzahl von Leerzeichen, auf die sich Tabulatorzeichen in den verschiedenen TortoiseHg-Fenstern erweitern. Standard: 8Geben Sie den Pfad von GPG an. Standard: gpgWählen Sie das Zieldateisystem, in dem TortoiseHg Änderungen verfolgt. Standard: localonlyGeben Sie ein grafisches Diff-Werkzeug entsprechend dem Abschnitt [merge-tools] in Ihren Mercurial-Konfigurationsdateien ein. Wenn Sie keines erfassen, wird TortoiseHg das ausgewählte Zusammenführungswerkzeug verwenden. Wenn das nicht funktioniert, ruft es das erste passende Werkzeug auf, das es findet.Geben Sie einen grafischen Editor wie im Abschnitt [editor-tools] Ihrer Mercurial-Konfigurationsdateien an. Falls Sie nichts angeben, wird TortoiseHg das erstbeste Werkzeug wählen.Geben Sie an, welche Aufgabenschaltflächen Sie in der Aufgabenwerkzeugleiste in welcher Ordnung anzeigen wollen.
                                                                                                              Geben Sie eine Liste von Aufgabenschaltflächennamen an. Fügen Sie "|" zwischen Schaltflächennamen, um Trenner hinzuzufügen.
                                                                                                              Gültige Namen sind: log commit sync grep und pbranch.
                                                                                                              Standard: log commit grep pbranch | syncGeben Sie die von Ihnen bevorzugte Anzeigesprache an (benötigt Anwendungsneustart).StartenEinen neuen Patchzweig erstellenStart-Revision:Web-Server für dieses Projektarchiv startenStatZustandZustandsdateilisten-WerkzeugleisteZustand:StoppDen momentanen Vorgang abbrechenAngehaltenDurchgestrichenHerauslösen - %sHerauslösen:ZeilenschattierungDas Herauslösen der Kopfdaten von Mercurial entfernt den Benutzernamen und die Informationen über die Vorgänger. Nur nützlich, wenn der Empfänger nicht Mercurial verwendet (und die Kopfdaten nicht sehen will).StilUntermenü-Einträge:Betreff:p4-Änderungsliste wird übertragen...Das Unterarchiv '%s' besitzt einen nicht-trivialen Standardsynchronisierungs-URI:

                                                                                                              %s

                                                                                                              Durch den folgenden URI ersetzen?:

                                                                                                              %sUnterarchiv zur .hgsub-Datei hinzugefügtUnterarchiv angelegt und auf die Erst-Revision eingestellt.Unter-Revision einstellt auf Revision:Das Unterarchiv kann beschädigt oder unzugänglich sein.Unterarchiv aus dem Projektarchiv entfernt.Der Zustand des Unterarchivs ist:Stati der UnterarchiveDas Unterarchiv wurde nicht verändert.Ein solches Unterarchiv existiert bereitsUnterarchiv nicht gefunden.Im Arbeitsverzeichnis gibt es das Unterarchiv nicht.Unterarchiv aus .hgsub entferntSubversion:ErfolgSpätere Änderungslisten:Empfohlene Länge der Zeilen in Versionsmeldungen, gekennzeichnet durch eine rote senkrechte Linie. Strg-E bricht den aktuellen Absatz auf die angegebene Zeilenlänge um. Standard: 80Zusammenfassung (erste Zeile des Übernahme-Kommentars)Länge ZusammenfassungszeileZusammenfassung:Quelle und Ziel vertauschenSynchronisierenLesezeichen SyncronisierenAbgleichenMit dem verschobenen Projektarchiv abgleichenMit dem entfernten Projektarchiv abgleichenSyntax-HervorhebungSytemcacheTabulatorbreiteDas Etikett '%s' wurde hinzugefügtDas Etikett '%s' wurde entferntDas Etikett '%s' wurde gelöschtEtikett - %sEtikett:Etikettiert:Etiketten:&Andere Version auswählenMit BZIP2 gepacktes TAR-ArchivMit GZIP gepacktes TAR-ArchivTAR-ArchiveZielkomboZielgruppenZielpersonenZiel:AufgabenreiterWerkzeugleisten-AuftragTaskleisteDen hinterlegten HTTP-Proxy vorläufig deaktivierenTemporäre Dateien werden entfernt, wenn dieser Dialog geschlossen wirdVon Ihnen abgebrochenPrüfen Sie diese Revision und berichten Ihre Ergebnisse (korrekt/inkorrekt/überspringen).TextübersetzungsfehlerTextdateien (*.txt)Eine menschenlesbare Beschreibung der Sinns bzw. der Inhalte des ProjektarchivsThailändischDie .hgsub-Datei enthält bereits die Zeile:

                                                                                                              %sDie Änderungen seit Revision %s und alle nicht zusammengeführten Vorgänger werden verworfen. Sind Sie sicher, dass Sie so vorgehen sollen?Der Befehl "%s" konnte nicht ausgeführt werden.Der Befehl "%s" ist gescheitert (Schlüssel %d).Die auszuführende Anweisung. Zur Ausführung einer Python-Funktion hängen Sie "python:" vor den Befehl. Die Standard-Projektarchiv-ID für dieses Archiv auf dem Review-Board-ServerDas Ziel "%s" ist bereits als Datei vorhanden!Das Ziel "%s" existiert bereits als Verzeichnis!Das Ziel muss im Projektarchiv-Baum liegen.Das Verzeichnis "%s" ist nicht leer! Wollen Sie es überschreiben?Das Verzeichnis, in dem die Anweisung ausgeführt werden wird. Wenn nicht angegeben, wird das Wurzelverzeichnis des aktuellen Projektarchivs verwendet. Sie können dieselben {Variablen} wie in der "Command"-Einstellung verwenden. Der von Mercurial Kommandozeilen Befehlen verwendete Editor, um mehrzeilige Eingaben vom Benutzer einzulesen. Haupsächlich Übernahme Kommentare.Der Fehler-Kommentar lautete :

                                                                                                              %s

                                                                                                              Die Datei "%s" ist bereits vorhanden! Soll sie überschreiben werden?Die nachgenannte Fehlermeldung würde zurückgegeben: "%s" Bitte stellen Sie sicher, dass der Befehlspfad korrekt ist und es sich um eine gültige Anwendung handeltDie folgende Fehlermeldung wurde zurückgegeben: %sDer Hook-Name darf weder Leerzeichen noch Tabulatoren oder '='-Zeichen enthalten.Der Hook-Name. Er darf keine Leerzeichen enthalten.Die maximale Dateigröße (in KiB), für die TortoiseHg die Änderungen im Verlaufs-, im Zustands- und im Übernahmedialog anzeigt. Der Wert 0 bedeutet unbegrenzt. Standard: 1024 (1 MiB)Das bezeichnete Lesezeichen oder alle Lesezeichen.Das beschriftete Etikett oder alle Etiketten.Die Anzahl Revisionen, die die Historieanzeige in einem Durchgang ermittelt und anzeigt. Standard: 500Die Phase neuer Übernahmen. Standard: draftDie ausgewählte Anweisung ist leerDas ausgewählte Verzeichnis:

                                                                                                              %s

                                                                                                              befindet sich nicht innerhalb des Zielarchivs.

                                                                                                              Dies ist zulässig, wir raten aber dringend ab.
                                                                                                              Wenn Sie eine nicht-triviale Unterarchiv-Abbildung hinzufügen möchten, müssen Sie manuell die .hgsub-Datei bearbeiten.Das ausgewählte Archiv:

                                                                                                              %s

                                                                                                              kann nicht geöffnet werden.Das ausgewählte Archiv:

                                                                                                              %s

                                                                                                              ist bereits ein Unterarchiv von:

                                                                                                              %s

                                                                                                              unter dem Namen: "%s"Die gewählte Revision (%s) hat ein Lesezeichen namens "%s". Soll es aktiviert werden?

                                                                                                              Diese Nachfrage kann in den Einstellungen (in "Einstellungen/Werkbank/Aktuelle Lesezeichen") deaktiviert werden.Die gewählte Revision (%s) hat %d Lesezeichen.

                                                                                                              Die Lesezeichen, die aktiviert werden sollen, auswählen und auf OK klicken.

                                                                                                              Auf Abbrechen klicken um keines zu aktivieren.

                                                                                                              Dieser Dialog kann in den Einstellungen (in "Einstellungen/Werkbank/Aktuelle Lesezeichen") deaktiviert werden.

                                                                                                              Die ausgewählte Revision (#%d) kann nicht importiert werden, da Sie nicht von dem qparent (#%d) abstammtDas ausgewählte Unterarchiv:

                                                                                                              %s

                                                                                                              wurde zur Projektverwaltungsdatei .hgsub hinzugefügt:

                                                                                                              %s

                                                                                                              Zur Erinnerung: Zum Abschluss des Prozesses müssen Sie noch die Änderungen in der .hgsub-Datei übernehmen, um das Hinzufügen zu bestätigen.Das ausgewählte Unterarchiv wurde von der .hgsub-Datei entfernt.

                                                                                                              Beachten Sie, dass Sie die Änderung an der Datei .hgsub übernehmen müssen, um die Entfernung des Unterarchivs abzuschließen.Das ausgewählte Unterachiv wurde nicht in der .hgsub-Datei gefunden.

                                                                                                              Wurde es eventuell bereits entfernt?Die Menge aller direkten Vorgänger-Änderungssätze der ausgewählten Änderungssätze.Die Quelle muss im Projektarchiv-Baum liegen.Das Unterarchiv hat lokale Änderungen.Das Werkzeugsymbol. Sie können jedes eingebaute TortoiseHg-Symbol nutzen, indem sie diesen Wert auf einen gültigen Symbolnamen setzen (beispielsweise clone, add, remove, sync, thg-logo, hg-update, etc). Sie können diesen Wert auch auf den absoluten Pfad irgendeines Symbols in Ihrem Dateisystem setzen.Die Werkzeug-Beschriftung, welche im Kontextmenü des Projektbereichs angezeigt wird. Wenn keine Beschriftung angegeben ist, wird der Werkzeugname als Beschriftung eingesetzt. Wenn kein Tooltip festgelegt ist, wird die Beschriftung zudem als Tooltip verwendet.Der Werkzeugname kann keine Leerzeichen enthalten.Der Werkzeugname darf keine Leerzeichen enthalten.Der Tooltip, der auf der Werkzeugschaltfläche angezeigt wird. Wird nur verwendet, wenn die Werkzeugschaltfläche in der Werkbank-Werkzeugleiste angezeigt wird.Das Arbeitsverzeichnis enthält bereits das Ergebnis einer Zusammenführung. Wollen Sie die Operation überspringen oder die bestehenden Zusammenführungsdaten verwerfen?Es gibt bereits Patch-Dateien für %d Revisionen (%s) an der ausgewählten Stelle (%s). Es gibt aufzulösende ZusammenführungskonflikteEs gibt keine konfigurierten Synchronisierungspfade. Öffnen Sie den Synchronisieren-Reiter, um sie festzulegen.Es gibt keine Zusammenführungen mit Konflikten.keine Dateiänderungen zum AnzeigenEs gibt keine Dateien, die eventuell umbenannt wurdenEs gibt bereits einen ein Verzeichnis mit genau diesem Namen.Es gibt bereits einen %s.%s-Hook. Wollen Sie ihn ersetzen?Eine Rückrolltransaktion ist nicht verfügbarThg - Die grafischen TortoiseHg-Werkzeuge für das SCM Mercurial (Hg) Dies ist offenbar eine Binärdatei .Dieser Fehler wird nicht wieder angezeigt, bis Sie die Werkbank erneut starten.Dreiwege-ZusammenführungswerkzeugBetreffAnUm die Zusammenführung abzuschließen, müssen Sie das Arbeitsverzeichnis übernehmen. Um die Zusammenführung abzubrechen, können Sie auf eine der Vorgängerversionen aktualisieren.TransplantationszielZiel der VerschiebungAn:Die Anzeige der Textsuch-Werkzeugleiste an-/ausschaltenAnzeigen der unpassenden Änderungssätze ein- oder ausschaltenGraft-Verbindungen visuell umschaltenVorgänger für die Basisrevision umschaltenNicht-konfliktäre lokale Änderungen missachten (--keep-changes)Für dieses Menü wurden zu viele Einträge ausgewählt&Auflösen-WerkzeugWerkzeug-BeschriftungWerkzeug konnte nicht gestartet werdenWerkzeugnameWerkzeugeWerkzeuge, die am ausgewählten Ort angezeigt werdenTooltipAm häufigsten benutzt:TortoiseHg Lesezeichen SynchronisierungTortoiseHg-FehlerberichtTortoiseHg-BefehlsdialogÜbernehmen mit TortoiseHgTortoiseHg Dialoge (Version %s). Mercurial (Verision %s) TortoiseHg-FehlerTortoiseHg Sperr-Werkzeug - %sName des neuen TortoiseHg-StauraumsTortoiseHG-SymbolüberblendungsdienstTortoiseHGTortoiseHg-SucheTortoiseHg-EinstellungenTortoiseHg-Stauraum - %sTortoiseHg Web-ServerTortoiseHg-WerkbankTortoiseHg hat eine neue .hgignore-Datei angelegt. Soll diese Datei zum Projektarchiv hinzugefügt werden?Traditionelles ChinesischTransplantation:Revisionsmengen-Anfrage auslösenVersuchen Sie, Ihr Projektarchiv zu aktualisieren.TürkischArtE&ntbündeln...Dialog-SpracheURLURL-Fehler: %sUkrainischRücksetzen nicht möglichDie Historie konnte nicht komprimiert werdenAußerstande, die Datei Mercurial.ini zu erzeugenDie Konfigurationsdatei kann nicht erstellt werden%d Dateien oder Verzeichnisse können nicht gelöscht werden%d Datei oder Verzeichnis kann nicht gelöscht werdenAusstehende Änderungssätze können nicht ermittelt werdenDie Revision der Arbeitskopie konnte nicht bestimmt werden Kann Änderungssatz nicht findenDas Zusammenführen hat nicht funktioniertBlöcke konnten nicht zusammengeführt werdenKann die Ausgabe von p4pending nicht verarbeitenDatei nicht lesbarDer Zustand des Archivs kann nicht ermittelt werdenEntfernen nicht möglichKann die URL nicht entfernenDie Daten %s konnte nicht gelöscht werden, keine BerechtigungKann nach der Übernahmeübertragung nicht speichernURL kann nicht gespeichert werdenAuthensierung kann nicht gespeichert werdenKann Liste der automatischen Einschlüsse nicht speichernKann die Aktion für nach dem Abruf nicht speichernNicht imstande, die Rekursion in Unterarchive zu speichern.Kann den Benutzernamen nicht speichernDie Dateien des Unterarchivs können nicht angezeigt werdenKonnte den folgenden Befehl nicht ausführen:Kann die Eingabe nicht in die lokale Codierung übertragen.Kann den Archivnamen nicht ändernDatei .hgignore kann nicht geschrieben werdenKann die Konfigurationsdatei nicht speichernKann die Diff-Datei nicht schreibenDatei nicht schreibbarAlle Patches rückwärts anwendenEinen Patch rückwärts anwendenEntbündelnAbwählenAlle Dateien abwählenAbwählen, um alle unter Revisionskontrolle befindlichen Dateien für die Quellkopie zu berücksichtigenNicht übernommene Zusammenführung - bitte wählen Sie eine VorgängerrevisionUnkomprimiertes TAR-ArchivUnkomprimiertes ZIP-ArchivUnterstrichenAndere Reiter wieder öffnenReiter wieder öffnenLetzte Übernahme zurücknehmen?Letzte Transaktion zurücknehmen?Jüngste Übernahme (%d) zurücknehmen unter Beibehaltung der Dateiänderungen?UnicodeVereinheitlichtes ChinesischUnbekannte Revision!Ensperren von %s fehlgeschlagen, erneut versuchenEntsperren von %s erfolgreichEntsperre %sNicht aufgelöste KonflikeEs gibt noch unaufgelöste Konflikte. Sind Sie sicher?Nicht gespeicherte Änderungen gehen verloren. Wollen Sie die Einstellungen neu laden?Der Archivtyp (%s) wird nicht unterstütztNicht versioniertAktualisierenAktualisieren - %sUpdate - abrufen, dann Aktualisierung versuchenSymbole aktualisierenReview aktualisierenSymbole für dieses Projektarchiv aktualisierenAktualisierung bei EingangEinen Pfadalias namens '%s' auf allen Unterarchiven aktualisieren oder anlegen, wobei dieser URI als Basis-URI eingesetzt wird unter Anhängung des lokalen relativen Unterarchiv-PfadsUnterarchiv-Pfade aktualisierenDie Felder der vorhandenen Anfrage aktualisierenAktualisiere zu:Arbeitsverzeichnis aktualisierenArbeitsverzeichnis aktualisieren oder Revisionen wechselnAktualisieren...UpdateOrRebase - abrufen, dann Aktualisierung bzw. Basisverschiebung versuchenUpdateOrRebase - verwenden Sie die rebase-Erweiterung (rebase ist nicht aktiv!)Aktualisiere ArchivregistrierungSie sollten auf eine aktuellere Version von TortoiseHg aktualisieren.Englische Rücksetz-Kommentare verwendenEnglische Versionsmeldung verwendenDie kompakte Darstellung verwendenAktuelles Datum verwendenEigens erfasste Versionsmeldung verwenden:Erweitertes Patch-Format (git) verwendenNutze das erweiterte (git) Format in den Kopfdaten von Diffs. Standard: FalseMeinen normalen Benutzernamen anstelle des für graft commit hinterlegten verwendenProxy-Server verwendenDie Metadaten mit dem Abruf-Protokoll kopierenBenutzerBenutzerauthentisierungBenutzerspezifischer ZwischenspeicherDie Anmeldedaten des Benutzers im Sicherheitsdialog sollten mit dem Rechnernamen verbunden sein.Benutzername für die Anmeldung am Review-Board-ServerBenutzer:BenutzernameBenutzername für die Anmeldung beim MailserverPrüfen Sie die Rücksetz-Revision und stellen Sie sicher, dass Ihr Arbeitsverzeichnis sauber ist.Prüfen Sie Ihre Zusammenführungsziele und stellen Sie sicher, dass Ihr Arbeitsverzeichnis sauber ist.Gegen Stammzertifikate prüfen (am Besten)Gegen gespeicherten Rechner-Fingerabdruck prüfen (gut)Datei &zeigenVietnamesischBetrachte Datei in&Andere Version ansehenÄnderungen als Unified-Diff anzeigenÄnderungshistorie im Projektarchiv anzeigenÄnderungshistorie der ausgewählten Dateien ansehenÄnderungen im Kontext der Datei anzeigenDie aktuellen Änderungen in einem externen Diff-Werkzeug anzeigenÄnderungen im grafischen Diff-Werkzeug anzeigenDatei in dem Zustand dieser Revision anzeigenDateiänderungen mit externem Diff-Werkzeug anzeigenDie Projektarchiv-Einstellungen ansehenGrafisches DiffGrafisches Diff-WerkzeugGrafisches Diff...Grafisches Diff - Grafischer EditorGrafisches Diff zwischen der ermittelten Datei und ihrem unmittelbaren VorgängerGrafisches Diff zwischen der ermittelten Datei und ihrem VorvorgängerGrafisches Diff...Interaktive Diffs werden für Dateien in Unterarchiven nicht unterstützt. Diese werden nicht angezeigt.Grafisches Drei-Wege-DiffWarnungAchtung: beeinflusst alle Tortoise-Instanzen, nach der Änderung bitte ausloggenWurde umbenannt vonWeb-ServerWeb-EinstellungenWesteuropaWas möchten Sie machen? Bei der Übernahme, verlange dass eine Referenz auf ein Ticket angegeben wird. Wenn angegeben, wird die im Abschnitt 'Issue Regex' konfigurierte Regex genutzt um die Angabe in der Übernahme-Nachricht zu prüfen.Zeigt bei Aktivierung automatisch das Ausgabeprotokoll an, wenn die Anweisung ausgeführt wurde. Standard: False.Wenn auf 'auto' gestellt, wird mq automatisch git--Patches verwenden wenn nötig um Änderungen an Dateimodi, Kopiermerker oder Binärdateien zu verlieren. Wenn auf 'keep' eingestellt, hält sich mq an die Konfiguration im Abschnitt [diff], während es bestehende git-Patches beibehält bei einem qrefresh. Wenn auf 'yes' oder 'no' eingestellt, übersteuert mq den [diff]-Abschnitt grundsätzlich und generiert grundsätzlich git- oder Standard-Patches, wobei im zweiten Fall Datenverluste möglich sind. Standard: autoWann der Benutzer gebeten werden soll, die Aktualisierung der lokalen Projektkonfigurationsdatei "projrc" zu bestätigen bei Änderungen an der entfernten projrc-Datei. Zulässige Werte sind:

                                                                                                              • always: [Standard] Grundsätzlich eine Bestätigung vor Aktualisierungen der lokalen Datei .hg/projrc anfordern.
                                                                                                              • first: Einen Bestätigungsdialog beim erstmaligen Klonen oder erstmaligen entfernten Anlegen der .projrc-Datei erfragen.
                                                                                                              • never: Die lokale Datei .hg/projrc file automatisch ohne Benutzerinteraktion aktualisieren.
                                                                                                              Ob bzw. wem erlaubt ist, Aktualisierungen von außen in dieses Projektarchiv zu übertragen (komma- bzw. leerraumgetrennte Liste). Nicht gesetzt oder leer bedeutet nein bzw. keinem. Der Wert "*" bedeutet, dass jeder Benutzer dies auch ohne Anmeldung darf. Ansonsten muss der Benutzer sich von außen anmelden und sein Benutzername muss in der Liste genannt sein. Der Inhalt dieser Einschlussliste hat Vorrang vor der Ausschlussliste.Ob bzw. wem verboten ist, Aktualisierungen von außen in dieses Projektarchiv zu übertrageb (komma- bzw. leerraumgetrennte Liste). Nicht gesetzt oder leer bedeutet, bedeutet dies kein Verbot. Der Wert "*" bedeutet, dass kein Benutzer dies darf. Ansonsten werden nicht angemeldete Benutzer grundsätzlich abgelehnt und zusätzlich die hier genannten. Der Inhalt dieser Ausschlussliste wird gegenüber der Einschlussliste nachrangig behandelt.Ob es nötig ist, dass eingehende Übertragungs-Anfragen zur Vermeidung des Ablauschens von Passwörtern SSL-verschlüsselt erfolgen müssenWelche Stilvorlage benutzt werden soll&LeerraumWord Dateien (*.doc, *.docx)Auf der Patch-Warteschlange arbeiten (--mq)WerkbankSpalten des Werkbank-ProtokollsSelbstdefinierte Werkbank-SymbolleisteArbeitskopieArbeitsverzeichnisArbeitsverzeichnis (zusammengeführt)ArbeitsverzeichnisDas Arbeitsverzeichnis ist nicht sauber! Änderungen betrachten...Zustand des ArbeitsverzeichnissesZyklisch weitersuchenBündel schreibenDiff-Datei schreibenBeschreiben Sie die Patch-Reihe (bzw. das Bündel)Sie versuchen, die Phase der Revision %d rückwärts zu verschieben, von "%s" zu "%s". Achtung, "%s" ist auf niedrigerem Phasenniveau als "%s". Wir raten davon ab, eine Phase rückwärts zu verschieben. Es kann beispielsweise dazu führen, dass Sie mehrere Kopfrevisionen bekommen, falls Sie eine Revision ändern, die Sie bereits auf einen Server übertragen haben. Sein Sie bitte vorsichtig!Sie können nur ihre eigenen Sperren entsperren.Zu unserer Webseite gelangen Sie hierSie können eine Revision nicht mit sich selbst verschmelzenSie haben Authentisierungsinformationen für diesen Rechner und innerhalb dieser URL hinterlegt. Die Authentisierungsinformationen aus der URL entfernen?Sie haben alle zurückgewiesenen Patch-Blöcke als aufgelöst markiert, obwohl Sie die angezeigte Datei nicht geändert haben. Das könnte darauf hinweisen, dass kein Code aus den zurückgewiesenen Patch-Blöcken den Weg in die Datei gefunden hat. Sind Sie sicher, dass Sie die Datei unverändert lassen wollen und alle zurückgewiesenen Patch-Blöcke als aufgelöst markieren wollen? Auf diese Weise können Sie sie beispielsweise aus einem Stauraum löschen, was aber bedeutet, dass sie dauerhaft verloren sind! Wählen Sie ja, um die Datei so zu akzeptieren oder nein, um die Auflösung weiterzuführen.Abbruch! Sie haben mehrfache Umbenennungen ausgewählt für die Zieldatei %s.Sie haben mindestens eine veränderte Datei ausgewählt. Standardmäßig werden diese Dateien nicht entfernt. Was möchten Sie tun?Sie müsen wohl diese Anwendung aktualisierenSie können die Transplanatation fortsetzen oder startenSie können die Komprimierung fortsetzenSie können Sie Transplantation fortsetzenSie können die Verschiebung fortsetzenSie müssen einen Namen für den Patch eingebenSie müssen sich vor Mercurial ausweisenZum Transplantieren müssen Sie Revisionen angebenSie müssen Werte für Quelle und Ziel erfassenSie müssen das Verzeichnis für die Datei angebenSie müssen eine auszuführende Anweisung angeben.Sie müssen einen Werkzeugnamen angeben.Sie müssen einen gültigen Hook-Typ festlegen.Ihr TortoiseHg ist aktuell.Ihre aktuelle Arbeitsrevision (%d) wird durch dieses Rückrollen entfernt, wobei nicht übernommene Änderungen zurückbleiben. Fortsetzen?Mit Deflate gepacktes ZIP-ArchivZIP-Archive[--after Patch] Patch...[Schlüssel: %d][ACHTUNG] Unvollständig geändertes Unterarchiv. Aktualisieren Sie bis zu dieser Revision, um es zu ziehen.[ACHTUNG] Unvollständiges Unterarchiv. Aktualisieren Sie bis zu dieser Revision, um es zu ziehen.[ACHTUNG] Ungültige ID der Unterarchiv-Revision: %s [ACHTUNG] Fehlendes geändertes Unterarchiv. Aktualisieren Sie bis zu dieser Revision, um es zu klonen.[ACHTUNG] Fehlendes Unterarchiv. Aktualisieren Sie bis zu dieser Revision, um es zu klonen.[Der Befehl wurde erfolgreich abgeschlossen %s][Anweisung unterbrochen %s][Der Befehl gab den Wert %d zurück %%s][Anweisung vom Benutzer %s beendet][nicht vorhanden][Original][Arbeitskopie]eine Revision zum AbschickenEine zu sendende Revisionabgebrochen: Abbruch: %s abgebrochen: %s! ÜbernehmenDie Ausgabe von diffstat zu den Kommentaren hinzufügenhinzugefügtAlle Revisionen, die aus Subversion übernommen wurdenGrafische Dialoge immer im Hintergrund startenAnhängenGrundlegende Befehle: E-Mail-TextLesezeichen: Zweig: Vorschau für das Bündelkann Datei "%s" nicht lesen. Ignoriert. Bereits angewandte Patches können nicht verschoben werdenZwischen die angewandten Patches verschieben unmöglichÄnderungssatz %d:%sÄnderungssatz, der mit dem Diff-Werkzeug angezeigt werden sollÄnderungssätze, die der übernommenen Subversion-Revision entsprechenÄnderungssatz: %sÄnderungssatz: %s (im Unterarchiv nicht gefunden)sauberNur den ausgewählten Zweig klonenAlterAutorZweigÄnderungenUmgewandelt ausBeschreibungDateinameGrafische DarstellungJüngste EtikettenLokalzeitKnotenPhaseRevisionEtikettenUniversalzeitFehler beim Verarbeiten (parse) des Befehls: %sÜbernehmenzerstörtes Anweisungs-Resultat : %sStandarddiffstatNicht übernommene Änderungen (ungesichert) verwerfenNur den Hilfetext anzeigenHerausgelöste Revisionen nicht sichernÜbernehmen Sie sigfile nicht nach der SignaturGrafische Dialoge im Vordergrund startenArbeitskopie während der Bereinigung unverändert lassenAusgabe weiterer InformationenAusgabedebugging aktivierenDas Zeilenende ist mit Text unter Windows x86 nicht vereinbarFehler bei der Durchführung des Befehls Ausführmodus wurde aktiviertAusführmodus wurde deaktiviertAusführen des GUI-Prozesses fehlgeschlagen: %s Befehl konnte nicht ausgeführt werden Standardfeld für die EingabemarkeDatei wurde gelöscht, aktualisierenDatei wurde geändert, aktualisierenDateienAlleKeinewird aufgefüllt (%d)FilterÜbergreifende Einstellungen:Mustersuche: %s Mustersuche: Ungültiges Vergleichsmuster %s hggit im Paket mit thghgsubversion ist mit perfarce nicht vereinbarhgsubversion im Paket mit thgTip:Tipp: HistorieOhne Berücksichtigung von Groß-/Kleinschreibung suchenignoriertIn die Mercurial-Patch-Warteschlange importierenin der ZukunftDen angegebenen Änderungssatz einschließenAnfängliches SuchmustereingebettetIn dieser Systemumgebung wird inotify nicht unterstütztungültige "hello"-Nachricht: %rungültige Argumenteungültige Zeilennummer: %sUngültige Patch-Position angegebenUrsprüngliche Zweignamen beibehaltenDie ursprünglichen Änderungssätze beibehaltenGrafisches Diff-Werkzeug startenBefehlsliste: Lokale Kopielsprof nicht verfügbar - Installieren Sie es von http://codespeak.net/svn/user/arigo/hack/misc/lsprof/Die Unterschrift in eine lokale verwandelnEtikett lokal übernehmenFührt mit Vorgänger im Status vor Rücknahme zusammenMethodefehlendgeändertHinter den angegebenen Patch verschiebenmuss vom Stil her der angegebene 'type' seinmuss das angegebene Archiv seinName der hgweb-Konfigurationsdatei (veraltet)Name der hgweb-Konfigurationsdatei (um mehr als ein Projektarchiv zu betreiben)Benötigt die Zusammenführung von %i Kopfrevisionen Benötigt die Zusammenführung mit %s Benötigt die Zusammenführung mit %s (bis %s) Dafür muss die Diff-Basis auf die Spitze von %s verschoben werden keine "runcommand"-FähigkeitKein Befehl angegebenkeine Befehle definiert Keine WachenKeine Treffer gefunden: %sKeine ausgehenden ÄnderungssätzeKeine ausgehenden Änderungssätze im aktuellen Zweig (%s) / %d gesamtKeine ausgehenden Änderungssätze bis zur aktuellen Revision (#%d) / %d gesamtKeine ausgehenden Änderungssätze bis Revision #%d / %d gesamtKein Projektverzeichnis bei Keine Revision angegebenDer Shell die angegebenen Verzeichnisse mitgebenjetztNullrevision (das heißt, Datei(en) gelöscht)Nur ein neuer Lesezeichen-Name zulässigEin neues Werkbank-Fenster öffnenöffne das Lesezeichen Syncronisier-FensterÖffnen in Zeileöffnen...Die Option --config kann nicht abgekürzt werden!Einstellungen: Auszuwählender Vorgänger beim Zurückrollen der ZusammenführungPasswort: Patch %s nicht in der Liste enthaltenperfarce ist mit hgsubversion nicht vereinbarBefehlsausführungsprofil druckenLizenz anzeigenProzess unerwartet beendet mit Code %dpull: %s push: %sDateiliste aus Datei lesenDateiliste mit Kodierung UTF-8 einlesenVon den angegebenen Änderungssätzen verschiebenenAuf den angegebenen Änderungssatz verschiebenDatumsangabe als Übernahmedatum verzeichnenBenutzer als Autor verzeichnenEtikett entfernenZustandscache entfernenEntferntes ArbeitsverzeichnisentferntVorhandenes Etikett ersetzenDas Projektarchiv %s existiert nichtWurzelverzeichnis des Projektarchivs bzw. symbolischer Link darauferfordert einen einzelnen DateinamenRevision: %d (%s)RevisionErster Vorgänger von Revision %d (also Revision %d)Zweiter Vorgänger von Revision %d (also Revision %d)Version zum Kommentieren anzeigenZu archivierende RevisionRückzusetzende RevisionDie anzuzeigenede RevisionDie zusammenzuführende RevisionHerauszulösende RevisionZu etikettierende RevisionAktualisieren auf RevisionDie abzurufende Revision, das abzurufende Etikett oder der abzurufende ZweigRevisionen %d:%s bis %d:%sZu transplantierende RevisionenZu kürzende RevisionenRevisionen, die mit dem Diff-Werkzeug angezeigt werdenDie angegebene Revision auswählenAusgewählte DateienPatches als Anhänge sendenPatches als eingebettete Anhänge sendenPatches im Text der E-Mail versendenÄndern/Übersteuern der Konfigurationsoption (verwende 'Abschnitt.Schlüssel=Wert')Datei ohne die Änderungen anzeigenIgnorierte Dateien anzeigenInhalt des Zustandscaches anzeigen (nicht aktualisieren)Revisionen Seite-an-Seite vergleichenSignieren auch wenn sigfile geändert istStartet den DebuggerÜbernehmenMercurial-Warteschlangen-AktionZurückrollenZustandUnterarchivAusgabe unterdrückenDie Synchronisation läuft bereitsÜbernehmenKonsolenprotokollPatch-ZweigEinzelheiten zur RevisionSuchenAbgleichenDer Klon wird eine leere Arbeitskopie beinhalten (nur ein Archiv)Der Schlüssel zum SignierenDie anzuzeigende Revisionthg %s: %s thg aboutthg add [Datei]...thg annotatethg archivethg backout [Parameter]... [[-r] Revision]TortoiseHg-Aufspürenthg bookmarks [-r Revision] [Name]thg clone [Option]... [Quelle] [Ziel]thg commit [Parameter] [Datei]...thg debugblockmatcherthg debugbugreport [Text]thg debugconsolethg debuglighthgthg debugruncommand -- Befehl [Argument]...thg drag_copy Quelle... Zielthg drag_move Quelle... Zielthg email [Revisionen]thg filelog [Option]... Dateithg forget [Datei]...thg graft [-r] Revision...thg grepthg guessthg help [COMMAND]thg hgignore [Datei]thg import [Parameter] [Quelle]...thg init [Ziel]thg log [Parameter] [Datei]thg manifest [-r Revision] [Datei]thg merge [[-r] Revision]thg postreview [-r] Revision...thg prune [-r] Revision...TortoiseHg-Bereinigungthg rebase -s Revision -d Revision [--keep]thg rejects [Datei]thg remove [Datei]...thg rename [Quelle] [Ziel]thg repoconfigthg resolvethg revdetails [-r Revision]thg revert [Datei]...thg rupdate [[-r] Revision]thg serve [--web-conf Datei]thg shellconfigthg shelvethg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]thg status [Parameter] [Datei]thg strip [-k] [-f] [-n] [[-r] Revision]thg tag [-f] [-l] [-m Text] [-r Revision] [Name]thg thgstatus [Option]thg update [-C] [[-r] Revision]thg userconfigthg version [Parameter]thg: %s thg: Anweisung '%s' ist mehrdeutig: %s thg: unbekannte Anweisung '%s' Zeitüberschreitung beim Warten auf NachrichtZeitüberschreibung beim Lesen: %r...Unerwartete Antwort auf benötigtem Kanal %runbekanntUnbekannter Patch für die Verschiebung angegebenUnbekannte Revision!Nicht bekanntes Profilerformat '%s' ignoriert unverstandene Antwort: %sNicht unterstützte URL: %sAlle Projektverzeichnisse im akutellen Verzeichnis aktualisierenBenutzen Sie "thg -v help %s", um globale Einstellungen anzuzeigenBenutzen Sie "thg help%s", um Kurzbezeichnungen und globale Einstellungen anzuzeigenBenutzen Sie "thg help" für eine vollständige AnweisungslisteBenutzen Sie "thg help" für eine vollständige Anweisungsliste oder "thg -v" für DetailangabenBenutze als VersionsmeldungVerwenden Sie genau eine Form, um die Revision anzugebenDie Metadaten mit dem Abruf-Protokoll kopierenunkomprimierten Transfer verwenden (im LAN schneller)Version %swartet bis die Sekunde wechseltwird abgeschlossenWin-32-Problem: Kann keine Fenster für Hinweise öffnenwin32ill: unterbrochen beim Beenden der Nachrichtenschleife Win-32-Problem: nicht unterstützte Plattform: %s Windows x86 ist mit dem Zeilenende nicht vereinbarÜbernehmenenthält Mercurial-%s, Python-%s, PyQt-%s, Qt-%saktuelle ÄndrungenAufräumen&Kein././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/en_AU/0000755000000000000000000000000014742203610014542 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1234145 tortoisehg-6.9/locale/en_AU/LC_MESSAGES/0000755000000000000000000000000014742203610016327 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033566.0 tortoisehg-6.9/locale/en_AU/LC_MESSAGES/tortoisehg.mo0000644000000000000000000010624414742203536021071 0ustar00rootroot,< < &= d r W   !%!;! C!N!e!j!s!{!!!!!!!!!!!!!!""- " N"\"$y""""""" ""# #5#:#0@# q#|### ######G$4Y$$8$$$ %&%8%I%M% %%&.&K&&j& &"& && &&& &' '' 'B'(+(A(D("H( k( v(((((((?(C)=J)1)) ))) * *&*D*a*p** ***!** * ++ +-+2+9+P+h+++++ + + +++ ++,5,D,S,b,*u, ,,-,--1=-'o--A-!-' .3.B. G.Q. d.!o...C../// ./8/=/ B/ O/[/d/ j/w/////// //q00 00 00 U1_1n1Is11B1c2M}2222 33 !3-3 C3 P3Z3u33333333 4 4 4 +454);4-e444@4 4445 525E5!U5w55#55556"$6G6c6+x666,66I6kH7;8<8-959>9 G9 Q9[9c9k9,t9 9 9:9::!; $;.;!N;p;:;*;;.;&< 8<D<W<`<f<k<}<<<<<<<<<<!<=/=6=!F=h=== == =====>>+&>&R>y>> > > > > >> >> >? ?"?>?V?p????&??@ @ #@y-@@5@1@AA'AB$B9B >BIBPBXBBB C C C4C =C#IC"mC CCCC"C!C CDD6D7GDD<D.D0D>/E;nEEcSF!FFFFF GG8/GhGyGG GGGG%G&GH7H GHhH"~HH2HHII,I 3I ?I LI mIxI IIIIII3JRJ"cJJJJ,JCJ! K%-K SK'tK KKK KK KKrxM\NHOhOzOOO+O$O P(P 7PBPQP YPePPPPPPP!PPQ#Q,QBQZQsQQQQQQQQ RYRkRrRzR!RRR R R S SS 9SGS`SSSSS/STT2T"NT1qTTTTTT-T U U,=UjUzU&LW sWW WWWW X &X4XJX RX]XtXyXXXXXXXXXXXXXXXXY Y-/Y ]YkY$YYYYYYY YYZ/ZDZIZ0OZ ZZZZ ZZZZZ[G![4i[[8[[ \ )\6\H\Y\]\ \]!]>][]&z] ]"] ]]]]] ^^ ^^ ^B^_+&_R_U_"Y_ |_ _______?_D`>\`2`` ``a "a ,a:aXauaaa aaa!ab bb,b 4bAbFbMbdb|bbbbb b b bbb cc/cIcXcgcvc*c cc-c-#d1Qd'ddAd!d'eGeVe [eee xe!eeeDefff1f DfNfSf Xf efqfzf ffffffff ffgg gg gg khuhhIhhBhc/iMiiij !j-j @jLj bj ojyjjjjjjjkk #k 0k X|;||c|}!}~~~~2~B~:X~~~~ ~~~~%~&"Ib r"2+DV ] i v  ŀ (3H|",āC!5%W }' Ƃ҂  r\r؆+$ ER al{ ͇ԇ!(GMVlɈш !5Y;!ω  . 8C cqŠڊ/*=\"x1͋܋- ; F,g Caught keyboard interrupt, aborting. aliases: %s (default: %s) filtered%d files have merge conflicts that must be resolved%d outgoing changesets%d pending changelists found%s (hint: %s)%s - branch operation%s : %s%s patches%s repository settings&Add&Archive&Cancel&Close&Discard&License&Local&Merge&Move&No&No (discard changes)&Other&Refresh&Remove&Shelve&Yes(no help text available)(same as parent)3-way dir diffUncommitted local changes are detected= Working Directory Parent =A bookmark named "%s" already existsAbortAborted p4pendingAboutAbout TortoiseHgAcceptAddAdd Files...Add files to version controlAdded tag %s for changeset %sAfter Pull OperationAge:AliasAll conflicting files will be marked unresolved.Allow PushAlways merge (when possible)AppendApply all patchesArchive - %sArchive FormatsArchive types:Author ColoringAuto Commit ListAuto Exclude ListAutomatically advance to next page when backout and merge are complete.Automatically resolve merge conflicts where possibleBacked out changeset: Backing out a parent revision is a single step operationBacking out and committing...Backing out, then merging...Backout - %sBackout changesetBackout revisionBccBefore backout, you must commit, shelve to patch, or discard changes.Bisect - %sBookmark '%s' does not existBookmark '%s' has been addedBookmark '%s' has been movedBookmark '%s' has been removedBookmark '%s' has been renamed to '%s'Bookmark - %sBookmark named "%s" does not existBookmark:BranchBranch ColorsBranch:Browse Directory...Browse...Bundles store complete changesets in binary form. Upstream users can pull from them. This is the safest way to send changes to recipient Mercurial users.Bypass ListBzip2 tar archivesCLI EditorCan't change settings without iniparse package - view is readonly.CancelCannot backout change on a different branchCcCc:Changes take effect on next commitChangeset:Checking...Child:CleanClone to revision:Clone...CloseClose current branchComma separated list of archive formats allowed for downloadingComma-separated list of blind carbon copy recipient email addressesComma-separated list of carbon copy recipient email addressesComma-separated list of recipient email addressesCommitCommit backout and merge resultsCommit changes in repositoryCommit messageCommit...Committing...Configure repository settingsConfigure user wide settingsConfirm DeleteConfirm DiscardConfirm Discard MessageConfirm ExitConfirm New BranchConfirm OverwriteConfirm Push to remote RepositoryConfirm RevertConfirm StripConfirm UpdateContactContext MenuCopyCreateCreate Repository HereCreate a new repositoryCreate clone here from sourceCulprit found.Current local revisionDateDate:Dead BranchesDeny PushDescriptionDestDestination path:Destination:Detect Copies/Renames in %sDetect renames and copiesDir diff to p1Dir diff to p2Directory diffDirectory of filesDiscard - discard local changes, no backupDiscard current backout message?Discard current commit message?Discard local changes, no backup (-C/--clean)Discard local changes, no backup (-f/--force)Discard outstanding changes to working directory?Displaying %(count)d of %(total)d itemsDnD SynchronizeDo not include modification dates in diff headers. Default: FalseDo not save backup files (*.orig)Do not update the new working directoryDuplicate NameEditEdit FileEdit Ignore FilterEdit LocalEdit current file in working copyEdit repository ignore filterEmailEmail address to use in the "From" header and for the SMTP envelopeEncodingErrorError encountered.Error writing fileExcludes:ExitFileFile HistoryFile StatusFilenameFilesFind RenamesFinishedFollow copies and renamesForgetForget Files...FromFrom:Full Path TitleGit FormatGit patches can describe binary files, copies, and permission changes, but recipients may not be able to use them if they are not using git or Mercurial.Global SettingsGraphGuess RenamesGzip tar archivesHg command:Hg patches (as generated by export command) are compatible with most patch programs. They include a header which contains the most important changeset metadata.Hide TagsHighlight IconHostHost name and (optional) port of proxy server, for example "myproxy:8000"Host name of mail serverHostname the sender can use to identify itself to the mail server.How many lines a "zebra stripe" should span in multiline output. Default is 1; set to 0 to disable.If you still have trouble, please file a bug report.Ignore Blank LinesIgnore WS AmountIgnore White SpaceIgnore caseIgnore filter - %sImport - %sImport from ClipboardIn-Reply-To:Includes:Iniparse package not foundInvalid glob expressionInvalid regexp expressionKnown bad revision:Known good revision:LineLocal HostnameLocal disks onlyLog Batch SizeLong SummaryMax ChangesMax Diff SizeMax FilesMergeMerge - allow to merge with local changesMessage identifier to reply to, for threadingMoveNameName or email address of the person in charge of the repository.New Name:No DatesNo appropriate filesNo backup (-n/--nobackup)No branch changesNo diff tool foundNo file changesNo files found for this operationNo files selectedNo items to displayNo merge conflicts, ready to commitNo operation to performNo outgoing changesetsNo pending Perforce changelistsNo repository foundNo visual diff tools were detectedNo visual editor configuredNot a head revision!Not a head, backout will create a new head!Nothing to importOKOnly files modified/created in this revisionOpen a new named branchOptional. Comma-separated list of host names that should bypass the proxyOptional. Method to use to send email messages. If value is "smtp" (default), use SMTP (configured below). Otherwise, use as name of program to run that acts like sendmail (takes "-f" option for sender, list of recipients on command line, message on stdin). Normally, setting this to "sendmail" or "/usr/sbin/sendmail" is enough to use sendmail to send messages.Optional. Password to authenticate with at the proxy serverOptional. User name to authenticate with at the proxy serverOptionsOptions:OverlaysParent 1:Parent 2:Parent:ParentsPasswordPassword to authenticate to mail server withPatch EOLPatch QueuePatch series description is sent in initial summary email with [PATCH 0 of N] subject. It should describe the effects of the entire patch series. When emailing a bundle, these fields make up the message subject and body. Flags is a comma separated list of tags which are inserted into the message subject prefix.Patch:PatternsPending Perforce Changelists - %sPerforce:Plain, do not prepend Hg headerPlease configure a visual editor.Please enter commit messagePlease report this bug to our bug trackerPlease wait while committing merged files.PortPort to connect to on mail server. Default: 25Port to listen onPost Pull: Prepare to backoutPreview:ProxyPullPush After CommitPush Requires SSLPush to remote repository %s ?QNewQRefreshQuitRe&nameRebaseRecurse into subrepositoriesRefreshRegexp:Regular expression search patternRemote command:RemoveRemove Files...Remove files from version controlRemove filter, show rootRemoved tag %sRenameRename FileRename file or directoryRepositoryRepository SettingsRepository status & changesRevRevertRevert Files...Revert file changesRevert file(s) to contents at this revisionRevert files to local or other parent?Revert to RevisionRevisionRevision:Running...SMTP HostSMTP PasswordSMTP PortSMTP TLSSMTP UsernameSave error report toSave file toSearchSearch HistorySearch file revisions for patternsSelect Destination FileSelect Destination FolderSelect RepositorySelect Source FolderSelect branch of merge commitSend changesets as Hg patchesSend single binary bundle, not patchesSettingsShow About DialogShow FunctionShow IconShow a full directory path of the repository in the dialog title instead of just the root directory name. Default: FalseShow allShow which function each change is in. Default: FalseSkip final confirmation page, close after commit.SourceSource:Specify visual diff tool, as described in the [merge-tools] section of your Mercurial configuration files. If left unspecified, TortoiseHg will use the selected merge tool. Failing that it uses the first applicable tool it finds.StartStart web server for this repositoryStopStrip - %sStrip:StripesStripping Mercurial header removes username and parent information. Only useful if recipient is not using Mercurial (and does not like to see the headers).StyleSub menu items:Subject:Subversion:Summary Line LengthSummary:SynchronizeSynchronize with dragged repositorySynchronize with remote repositoryTab WidthTag - %sTag:Tags:Tar archive compressed using bzip2Tar archive compressed using gzipTar archivesTarget:TaskbarTemporary files are removed when this dialog is closedTest this revision and report findings. (good/bad/skip)Text files (*.txt)Textual description of the repository's purpose or contents.The destination "%s" already exists as a file!The destination "%s" already exists as a folder!The directory "%s" is not empty! Do you want to overwrite it?The file "%s" already exists! Do you want to overwrite it?The maximum size file (in KB) that TortoiseHg will show changes for in the changelog, status, and commit windows. A value of zero implies no limit. Default: 1024 (1MB)The number of revisions to read and display in the changelog viewer in a single batch. Default: 500There are no file changes to viewThree-way Merge ToolToTo:Tool launch failureTop menu items:TortoiseHg Bug ReportTortoiseHg Dialogs (version %s), Mercurial (version %s) TortoiseHg ErrorTortoiseHg Overlay Icon ServerTortoiseHg PromptTransplant:TypeURLUnable to backoutUnable to create a Mercurial.ini fileUnable to determine pending changesetsUnable to find changesetUnable to mergeUnable to parse p4pending outputUnable to save an URLUnable to write configuration fileUnapply all patchesUncommited merge - please select a parent revisionUncompressed tar archiveUncompressed zip archiveUnknown revision!UpdateUpdate - %sUpdate IconsUpdate icons for this repositoryUpdate to:Update working directoryUpdate...Use English backout messageUse English commit messageUse compact viewUse custom commit message:Use extended (git) patch formatUse git extended diff header format. Default: FalseUse proxy serverUse pull protocol to copy metadataUserUser:UsernameUsername to authenticate to mail server withVerify backout revision and ensure your working directory is clean.View change history in repositoryView change history of selected filesView changes using GUI diff toolView file changes in external diff toolVisual DiffVisual Diff ToolVisual Diffs - Visual EditorWarningWeb ServerWhether to allow pushing to the repository. If empty or not set, push is not allowed. If the special value "*", any remote user can push, including unauthenticated users. Otherwise, the remote user must have been authenticated, and the authenticated user name must be present in this list (separated by whitespace or ","). The contents of the allow_push list are examined after the deny_push list.Whether to deny pushing to the repository. If empty or not set, push is not denied. If the special value "*", all remote users are denied push. Otherwise, unauthenticated users are all denied, and any authenticated user name present in this list (separated by whitespace or ",") is also denied. The contents of the deny_push list are examined before the allow_push list.Whether to require that inbound pushes be transported over SSL to prevent password sniffing.Which template map style to useWorking DirectoryWorking Directory (merged)Working directory statusYou can visit our site hereYou likely need to refresh this applicationZip archive compressed using deflateZip archives[non-existant][original][working copy]abort: abort: %s! add diffstat output to messagesaddedalways fork GUI processattachbasic commands: branch: bundle file to previewcan not read file "%s". Ignored. changeset to view in diff toolcleandiffstatdisplay help and exitdo not fork GUI processenable additional outputfield to give initial focusglobal options:ignoredimport to the patch queue (MQ)inlineinvalid argumentslaunch visual diff toollist of commands: locallsprof not available - install from http://codespeak.net/svn/user/arigo/hack/misc/lsprof/methodmissingmodifiedmust be specified 'type' in stylemust be specified repositoryno commands defined no repo at notify the shell for paths givenoptions: password: print command execution profileprint licenseread file list from filerecord datecode as commit daterecord user as committerremove the status cacheremovedrepository %s not foundrepository root directory or symbolic path namerevision to updaterevisions to view in diff toolsend patches as attachmentssend patches as inline attachmentsshow the contents of the status cache (no update)start debuggerstatussuppress outputunknownunknown revision!unrecognized profiling format '%s' - Ignored version %swait until the second ticks overwith Mercurial-%s, Python-%s, PyQt-%s, Qt-%sworking changesProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2011-08-24 13:22+0000 Last-Translator: Kyle Simpson Language-Team: English (Australia) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Launchpad-Export-Date: 2019-07-17 05:46+0000 X-Generator: Launchpad (build 19009) Caught keyboard interrupt, aborting. aliases: %s (default: %s) filtered%d files have merge conflicts that must be resolved%d outgoing changesets%d pending changelists found%s (hint: %s)%s - branch operation%s : %s%s patches%s repository settings&Add&Archive&Cancel&Close&Discard&License&Local&Merge&Move&No&No (discard changes)&Other&Refresh&Remove&Shelve&Yes(no help text available)(same as parent)3-way dir diffUncommitted local changes are detected= Working Directory Parent =A bookmark named "%s" already existsAbortAborted p4pendingAboutAbout TortoiseHgAcceptAddAdd Files...Add files to version controlAdded tag %s for changeset %sAfter Pull OperationAge:AliasAll conflicting files will be marked unresolved.Allow PushAlways merge (when possible)AppendApply all patchesArchive - %sArchive FormatsArchive types:Author ColouringAuto Commit ListAuto Exclude ListAutomatically advance to next page when backout and merge are complete.Automatically resolve merge conflicts where possibleBacked out changeset: Backing out a parent revision is a single step operationBacking out and committing...Backing out, then merging...Backout - %sBackout changesetBackout revisionBccBefore backout, you must commit, shelve to patch, or discard changes.Bisect - %sBookmark '%s' does not existBookmark '%s' has been addedBookmark '%s' has been movedBookmark '%s' has been removedBookmark '%s' has been renamed to '%s'Bookmark - %sBookmark named "%s" does not existBookmark:BranchBranch ColoursBranch:Browse Directory...Browse...Bundles store complete changesets in binary form. Upstream users can pull from them. This is the safest way to send changes to recipient Mercurial users.Bypass ListBzip2 tar archivesCLI EditorCan't change settings without iniparse package - view is readonly.CancelCannot backout change on a different branchCcCc:Changes take effect on next commitChangeset:Checking…Child:CleanClone to revision:Clone...CloseClose current branchComma-separated list of archive formats allowed for downloadingComma-separated list of blind carbon copy recipient e-mail addressesComma-separated list of carbon copy recipient e-mail addressesComma-separated list of recipient e-mail addressesCommitCommit backout and merge resultsCommit changes in repositoryCommit messageCommit...Committing...Configure repository settingsConfigure user wide settingsConfirm DeleteConfirm DiscardConfirm Discard MessageConfirm ExitConfirm New BranchConfirm OverwriteConfirm Push to remote RepositoryConfirm RevertConfirm StripConfirm UpdateContactContext MenuCopyCreateCreate Repository HereCreate a new repositoryCreate clone here from sourceCulprit found.Current local revisionDateDate:Dead BranchesDeny PushDescriptionDestDestination path:Destination:Detect Copies/Renames in %sDetect renames and copiesDir diff to p1Dir diff to p2Directory diffDirectory of filesDiscard - discard local changes, no backupDiscard current backout message?Discard current commit message?Discard local changes, no backup (-C/--clean)Discard local changes, no backup (-f/--force)Discard outstanding changes to working directory?Displaying %(count)d of %(total)d itemsDnD SynchroniseDo not include modification dates in diff headers. Default: FalseDo not save backup files (*.orig)Do not update the new working directoryDuplicate NameEditEdit FileEdit Ignore FilterEdit LocalEdit current file in working copyEdit repository ignore filterE-mailE-mail address to use in the "From" header and for the SMTP envelopeEncodingErrorError encountered.Error writing fileExcludes:ExitFileFile HistoryFile StatusFilenameFilesFind RenamesFinishedFollow copies and renamesForgetForget Files...FromFrom:Full Path TitleGit FormatGit patches can describe binary files, copies, and permission changes, but recipients may not be able to use them if they are not using git or Mercurial.Global SettingsGraphGuess RenamesGzip tar archivesHg command:Hg patches (as generated by export command) are compatible with most patch programs. They include a header which contains the most important changeset metadata.Hide TagsHighlight IconHostHost name and (optional) port of proxy server, for example "myproxy:8000"Host name of mail serverHostname the sender can use to identify itself to the mail server.How many lines a "zebra stripe" should span in multiline output. Default is 1; set to 0 to disable.If you still have trouble, please file a bug report.Ignore Blank LinesIgnore White Space AmountIgnore White SpaceIgnore caseIgnore filter - %sImport - %sImport from ClipboardIn-Reply-To:Includes:Iniparse package not foundInvalid glob expressionInvalid regexp expressionKnown bad revision:Known good revision:LineLocal HostnameLocal disks onlyLog Batch SizeLong SummaryMax ChangesMax Diff SizeMax FilesMergeMerge - allow to merge with local changesMessage identifier to reply to, for threadingMoveNameName or e-mail address of the person in charge of the repository.New Name:No DatesNo appropriate filesNo backup (-n/--nobackup)No branch changesNo diff tool foundNo file changesNo files found for this operationNo files selectedNo items to displayNo merge conflicts, ready to commitNo operation to performNo outgoing changesetsNo pending Perforce changelistsNo repository foundNo visual diff tools were detectedNo visual editor configuredNot a head revision!Not a head, backout will create a new head!Nothing to importOKOnly files modified/created in this revisionOpen a new named branchOptional. Comma-separated list of host names that should bypass the proxyOptional. Method to use to send e-mail messages. If value is "smtp" (default), use SMTP (configured below). Otherwise, use as name of program to run that acts like sendmail (takes "-f" option for sender, list of recipients on command line, message on stdin). Normally, setting this to "sendmail" or "/usr/sbin/sendmail" is enough to use sendmail to send messages.Optional. Password to authenticate with at the proxy serverOptional. User name to authenticate with at the proxy serverOptionsOptions:OverlaysParent 1:Parent 2:Parent:ParentsPasswordPassword to authenticate to mail server withPatch EOLPatch QueuePatch series description is sent in initial summary e-mail with [PATCH 0 of N] subject. It should describe the effects of the entire patch series. When e-mailing a bundle, these fields make up the message subject and body. Flags is a comma separated list of tags which are inserted into the message subject prefix.Patch:PatternsPending Perforce Changelists - %sPerforce:Plain, do not prepend Hg headerPlease configure a visual editor.Please enter commit messagePlease report this bug to our bug trackerPlease wait while committing merged files.PortPort to connect to on mail server. Default: 25Port to listen onPost Pull: Prepare to backoutPreview:ProxyPullPush After CommitPush Requires SSLPush to remote repository %s ?QNewQRefreshQuitRe&nameRebaseRecurse into subrepositoriesRefreshRegexp:Regular expression search patternRemote command:RemoveRemove Files...Remove files from version controlRemove filter, show rootRemoved tag %sRenameRename FileRename file or directoryRepositoryRepository SettingsRepository status and changesRevRevertRevert Files...Revert file changesRevert file(s) to contents at this revisionRevert files to local or other parent?Revert to revisionRevisionRevision:Running...SMTP HostSMTP PasswordSMTP PortSMTP TLSSMTP UsernameSave error report toSave file toSearchSearch HistorySearch file revisions for patternsSelect Destination FileSelect Destination FolderSelect RepositorySelect Source FolderSelect branch of merge commitSend changesets as Hg patchesSend single binary bundle, not patchesSettingsShow About DialogueShow FunctionShow IconShow a full directory path of the repository in the dialogue title instead of just the root directory name. Default: FalseShow allShow which function each change is in. Default: FalseSkip final confirmation page, close after commit.SourceSource:Specify visual diff tool, as described in the [merge-tools] section of your Mercurial configuration files. If left unspecified TortoiseHg will use the selected merge tool. Failing that it uses the first applicable tool it finds.StartStart web server for this repositoryStopStrip - %sStrip:StripesStripping Mercurial header removes username and parent information. Only useful if recipient is not using Mercurial (and does not like to see the headers).StyleSubmenu items:Subject:Subversion:Summary Line LengthSummary:SynchroniseSynchronise with dragged repositorySynchronise with remote repositoryTab WidthTag - %sTag:Tags:Tar archive compressed using bzip2Tar archive compressed using gzipTar archivesTarget:TaskbarTemporary files are removed when this dialogue is closedTest this revision and report findings. (good/bad/skip)Text files (*.txt)Textual description of the repository's purpose or contents.The destination "%s" already exists as a file!The destination "%s" already exists as a folder!The directory "%s" is not empty! Do you want to overwrite it?The file "%s" already exists! Do you want to overwrite it?The maximum size file (in KB) that TortoiseHg will show changes for in the changelog, status, and commit windows. A value of zero implies no limit. Default: 1024 (1MB)The number of revisions to read and display in the changelog viewer in a single batch. Default: 500There are no file changes to viewThree-way Merge ToolToTo:Tool launch failureTop menu items:TortoiseHg Bug ReportTortoiseHg Dialogues (version %s), Mercurial (version %s) TortoiseHg ErrorTortoiseHg Overlay Icon ServerTortoiseHg PromptTransplant:TypeURLUnable to backoutUnable to create a Mercurial.ini fileUnable to determine pending changesetsUnable to find changesetUnable to mergeUnable to parse p4pending outputUnable to save a URLUnable to write configuration fileUnapply all patchesUncommited merge - please select a parent revisionUncompressed tar archiveUncompressed zip archiveUnknown revision!UpdateUpdate - %sUpdate IconsUpdate icons for this repositoryUpdate to:Update working directoryUpdate...Use English backout messageUse English commit messageUse compact viewUse custom commit message:Use extended (git) patch formatUse git extended diff header format. Default: FalseUse proxy serverUse pull protocol to copy metadataUserUser:UsernameUsername to authenticate to mail server withVerify backout revision and ensure your working directory is clean.View change history in repositoryView change history of selected filesView changes using GUI diff toolView file changes in external diff toolVisual DiffVisual Diff ToolVisual Diffs - Visual EditorWarningWeb ServerWhether to allow pushing to the repository. If empty or not set, push is not allowed. If the special value "*", any remote user can push, including unauthenticated users. Otherwise, the remote user must have been authenticated, and the authenticated user name must be present in this list (separated by whitespace or ","). The contents of the allow_push list are examined after the deny_push list.Whether to deny pushing to the repository. If empty or not set, push is not denied. If the special value "*", all remote users are denied push. Otherwise, unauthenticated users are all denied, and any authenticated user name present in this list (separated by whitespace or ",") is also denied. The contents of the deny_push list are examined before the allow_push list.Whether to require that inbound pushes be transported over SSL to prevent password sniffing.Which template map style to useWorking DirectoryWorking Directory (merged)Working directory statusYou can visit our site hereYou likely need to refresh this applicationZip archive compressed using deflateZip archives[non-existant][original][working copy]abort: abort: %s! add diffstat output to messagesaddedalways fork GUI processattachbasic commands: branch: bundle file to previewcan not read file "%s". Ignored. changeset to view in diff toolcleandiffstatdisplay help and exitdo not fork GUI processenable additional outputfield to give initial focusglobal options:ignoredimport to the patch queue (MQ)inlineinvalid argumentslaunch visual diff toollist of commands: locallsprof not available - install from http://codespeak.net/svn/user/arigo/hack/misc/lsprof/methodmissingmodifiedmust be specified 'type' in stylemust be specified repositoryno commands defined no repo at notify the shell for paths givenoptions: password: print command execution profileprint licenceread file list from filerecord datecode as commit daterecord user as committerremove the status cacheremovedrepository %s not foundrepository root directory or symbolic path namerevision to updaterevisions to view in diff toolsend patches as attachmentssend patches as inline attachmentsshow the contents of the status cache (no update)start debuggerstatussuppress outputunknownunknown revision!unrecognised profiling format '%s' - Ignored version %swait until the second ticks overwith Mercurial-%s, Python-%s, PyQt-%s, Qt-%sworking changes././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/en_GB/0000755000000000000000000000000014742203610014525 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1234145 tortoisehg-6.9/locale/en_GB/LC_MESSAGES/0000755000000000000000000000000014742203610016312 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033565.0 tortoisehg-6.9/locale/en_GB/LC_MESSAGES/tortoisehg.mo0000644000000000000000000063504414742203535021060 0ustar00rootrootc 4KLL/M&} ږ $ 8Y oy ˗$%8)S}WYq;ҙA+7m:#49> B P]l ֛  $ 0Qcz #-Ԝ@C Y2e ҝ  "CZr ٞ   ' 3> FQp xƟ .?VnǠ ؠ  $4:AG W epw ̡ԡ   ) .;Rar ¢Ȣۢߢ %; BL]s z  £̣ۣ (0 ALTl u  Фۤ!9 AK S^dx~  ̥ ԥ   & .9AG Wew Ҧ ئ'-K#g ç 2C Vb,qNJ8I&b©Cݩ;!]v-ߪ)< K Uc$''ݬ73=3q(έ,#!>`v~ îԮۮ%&,Sf y ɯ-=B ܰ >"G0j ıұ !': LW)j)=۲B6Ry)̳>)5H_?N`  0#>Nl  ζ:;='y* ̷ ڷ!Y cjzG:4Cx}8͹ '"Dg,x!=Ǻ  &3:>ٻu COe{ Ǿ& *"8 [e lz ѿ  B.5+Nz3!9A)X<+>DGKRm," !<^s.- /[4 *A.l611+6nbX*0DT"o,$ 3M&g  " &&M b lw D*ov,/?+i$_JC=1,^ ft]  %FUr & "#F O]'q+ $VNd#.*MG  !.A S!`  .E`t"# .%3)9 > I T ^i* &5*0 [5|#.. :O8 5H[s+%/%9>Md } u9n>..,L&y  &*=)h"'):Zc|   ';c}O#  +  1 >H bo *+- Yz$--1.M|#'A%&g3!M22'e@187X^).C R\bk{    !( J T^zC /O)1B[[.A\ dn45(3\p  + %0(V&-2([lq  " 4/d;s1XX&jKOU<Y +3 ;Hh"zM$A3u:;5,<b73Fz4*) '7@H!e<&    - 3> Ygw Y /  & -9V  &5 DNTIYBcchanax2M% 8IDPFM&tEL# 8D Zh}    1     ) 5 8N   !  ; 6 U e  e   +      %Yah+q!    ' 2Q?+ i3  *>O j un  %)BXm       9(X8#?c!}&1 *E b'm   ?:)4 ^lGdm; )/#K)o /  '4-PB~ $-RWk,* % 0> o   [ @!;I! !! !! ! !!!! " ""+"4"G"\"n" s" }"""""" ""####3#!D#f#x##-####$$#$J$(5%^%v%%%%$%&&.&B&[&p&&&"A'd''''(U(~(+((((()))/)),)"*=*N*S*b*/v**,*,*+!3+U+%g+=++%+ ,3#,W,#w,,I}-k-h3/f/;0?0<01222292J2e2x22 222222 3!3 =3 G3Q3Y3a3,j3*3 333 334 &424 N4Z4i44444 4:4 6(6 /696J6Z6_6:q6H6G6=7C7a7!j77 7*7777!8&98&`8(888:8#9*C9!n9(99999.9:: :-: @: L: X:y: :::!:::: : ;;;T;[; a;l;;;;;;';-<K<_<o<<<<<< <<<<==#=<=R=%n==== ==!>&>>>X>i>n>w>3}>>>>>> ??'?=?E? V? a?k?q?%?? ?2?5?#@2@ M@'n@ @Z@@FA YAcA)AAAAAAB#B5B!NB$pBBBB!BBBC CC0CCCSCZCuCC#C C!CDD8DSDMrDD3DE/EKEZE aE mE zE EEEEEEFF-FJFRF!iF"F$F F FFF GG;G OGpGvGGH-HBHYHlH|HHMH#HIII 1I=IMI!fI II+I&IJ+JGJZJK )K 6KAK\KtK]}KK KK L+LDLULgL zLL LL"LLNOGQ RRST:U%UVWY[\\u] p^ ~^^ ^ ^ ^ ^ ^ ^^ ^ ^ ^% _1_ J_k_ p_|_ ____)_ "`/` A`N`h`o`~``H`"`a 1a ;aBHaaaa a a aaa#b8bJb]b rb"b bb1bc2cEccc8dLd.[dd"d#ddd[e[4f$g1gi$ll#m mm&m nn&n;nCn Rn _n in sn nnn!n@no o &o 4o BoLo&Royoqo o pp $p0p?p Qp _pkp |p p pppppppyqzq.qqq!qwrrvs%s%%t5Kttt t1tt t u'u?u Du1NuuIu v vlwowwwwwww4w(yyzzZA|%|S|}}~? *$:_dk €ɀрnt` ,' T'u Ђ߂1-!_   Jk #Ą"  ,4< DN^v ą"Ѕ!  " / =K S]p)x6ن7$=<P4sLJ';"cKdҋB7.z03ڌ>M| 2;4w@($c(c9bΒ1&f"cO1.0++(*}SњU\/O%2!X-z8<*4I!~B!*֞!-#7Q  Ÿ ֟  )C]!y Ơܠ8ARlɡݡ t âޢ  $ ( 5?Q%lG&* Kdt  + 3Tj "#̥"&+,R /"NqƧϧק92#Vo ɨ6/A\ t*4  # *!6 X e s2*G r}, ë3ͫ=?5\ɬǭ365E{"̮Ѯ Z+w,C߯@#5d* Ű а ۰ "!%9_-~ )ͱ' >J[j z23TSi<q ʳҳXH=Uչ+Ѻr_\ҽ/ O[t  ȾվCX q }'U¿H#a'u?F:+#4Xv'#*#@dl$I n{ OA,GMt?#&?^~   !''Ogn ! ,<L1k *#8Nk#5H_w'!'@'X>"/01`>^ d n y  * *07e? +)2\x #Y),!5*R>}!' 4Od y;A7- eq #"0 N['c ' *  *(8as'## 4AYrz/ !!-*.X $D]p!!"/&R5y1$$4Yh~/L_@w    "& IT%r, 6Sp #3<Ur ! ' 6BZo +#)+Eq'.L*k-,+L6x,D!)>"h)  +2#O"s,/& =KZs  'E d$)1AIWXY ,AT;kA7:>y   :Y o{     )#I-m@ 2 1?Nk     27 JWr       #*1CK_y %4DM` q      /AT Zem     $+ @J[atx     !( ;EK [et |   *6>U ity  '/ 6@S Xe m y     %.4HNSk q~'#$> \}  , N7J&"2G[Cv;+-Jx  $)'N'v733 (>g,#!:L R\mt%&  0 CPb= 7 EQWu >"04 P ]k  ! ))-W=tBR)e>)HA  &  - 0N          6 B  I V g |  : ; ' *:  e  s ! Y    % 7 F GZ : 4   8. g     " ,!?=a  sC  'Da~& " &: NXl &9P bBm+3,`!9)<Z+t> 1@,X"!.#-R  /[K4*.661m1+nXl" ,-Z9KT$l &)0 ITZ `"&  #6T]cs D  ,) 0V ?  iV!!["_"DF#>#2## $$]"$$$ $ $$ $$$%%%:% I% S% a%&m%%%"%% %%'&+8& d&$q&V&&' '/'G'#X'|'.''M' 4(@(V(e(((( ((( (!(!)0)?) N) [)i) })))))))*"1*#T*x** *.**3+++ + + + + ,* , K,&X,,5,*, ,5-R-#m-.-.-:-8*.c........./+1/%]///%////0 0*03080>0Q0 n0 |00u092H2>O2.2.2,2&3@3S3 b3n33 3333*3)424"J4m44'444455 .5 85D5 I5j5 |5555'566O86#667N8 L9+Z:: ::: : :: ;; -;;;P;_;n;};;;*;+; <&<$F<-k<-<1<.<(=#@=d=='==A=&>3:>!n>M>2>'?9?@X?1?8?7@^<@@)@@@ @AAA'A6AEAMA ^AhAxA }AA AA A A!A A B B&BEBcBvBBBBDB/B-CMCfCwCCCCCC)CB DLDcD[DDD E EE5E:E4ZE5EE(E FF-F @FMF QF\FuF+F F%F(G-GMG&gGGG-G2G HHH8H UHbH{H H HH"H4HI;!I1]IIXIJ&J?JHJKNJOJUJY@KK K+KK KKL"(LMKL$LLLAL#M3M9MIM:cM;M5M<NMNSNN3N(O4DO*yO)OOOOOO!P5P:P@PPP<`PP&[Q Q QQ3R8RHR NR[R aRlRRRR RR RR SS%S ?SYLSSSSS/LU|U U UUUUU UUV V V&VV VVWIWQWBjWcWXXaXa~XxXMYYYYYY YIYPEZFZMZ+[E>[L[[[ [[ \\4\J\Z\ k\x\\\ \\ \\^^^ ^^8_>_ Z_!f__;_6_ ``6`eJ```` ba ma yaaaaaaYbcc+(c!Tcvcccc cccc c cQcHf+Pf|f ffXgjgigThshhhh h hhhi !i ,in6i i i%iiij$j?j Gj Rj_jcj rjj j jjj jj9j(j&k8l#lm!"m&Dmkm1mmmm n'n :n Fn Tn?^n:n)noo%oG4od|omoOp Up)`ppppp#p)q?q\q |q/q qq qq-qB$rgr|r rrrr$rrrs,&s*Ss~ssss0st5tMt[RtAt;t ,u7u FuSu du nuxuuu u uuuuuvv v $v.v7vLvfvxv vvvvvv!v ww0w-BwpwwwHx\x#mxJx(xyy4yQyjy$yyyyyzz.zEz"z {'{E{L{({%|+:|f|x|||||||x},}"}}}} ~0~N~,f~,~~!~~%=5s% 3#CI%loh܂fE;<~…!: Yen}ʆ   ,*@ ku  χۇ (E_o ~< ljӉ ډ :HWG !7 K*U!‹&& (2[s:#ʌ*!(;dsw.ō ˍ؍   % >L_!p  ;Ď 49Vm'-ɏ 6IOai oyƐϐ%@Sn !ґ#3)]bsӒ  %-S Z2f5ϓޓ ' BZPF ),Vt|ϕ!$AU\!d Öܖ!:#J n!ʗMl3ۘ   & 2?Rk™ٙ!"7$Z  ˚ v1ۛ*9MM#Üʜ ߜ! 6W+k&ٝ מ  "]+ ٟ (2 FT"spx5%ůY#  ,7 ? K Y f p ~   %߲  * JTq) гݳ ,AH\"ȴ ߴ B9Kc l w #µ  "- Pq1¶. 8"J#m[[$>1c$Lq#K o{&     " 0:C!R@t   &(q7      - ; EQ`iy{-.6e!w>)%%54P Y1c   13IO  l">[by5TnZ%PSvg?~$7?D[c ju|!'6?`[, '' Op1! 3? GS 1:V[ j#v"  (@Zchp v"!     ")*8T7<A4Fs{'"K:dB..0]3>|2<;o4+@`($sc(@^9Hb&f"4Wc1g.+(}U/fO%! -.8\<*4!2BT9Nd!h*!-7= ] kv   !- OZaz:"<[mtJY my    %"HGg&** Ab v+    >"_#"&,5 "'AVj|93 & ?I_n6 +8*M4x   !   *K^* )4,M z3=5Ie\m~352O"` Z+.Z`,iC@5*Q |   "!%-5 c)' ! 12?3rT  <(e vXP^   U  r\ - HRh C * 6C'SU{H#>'ZuF:+#/Jf'#*#<Vvl$ '4M cOnA,M-?{#7 FQ`s  '+ 0;D![} ,1 H*V         ! * B I f n 'w  ! '  '!>?!~!!"!!/!1"Q"n""""""###'# ,#9#@# P# Z#{#*#####e#X$r$z$ $$$$)$%+%=% U%v%%%%%Y%6&O&,b&&&&&!&&*'>0'o''!''''(( ,(6(K(;b(A(7( )$) ;)\)#`)")))) **'* >*'H* p*{**** *(*+&+'?+#g+#+++ ++ ,%,-,B,/Z,, ,!,,-,. -:-O-c-w-----$--.#.6.!U.!w....".&/5,/b/}/1/$/$/ 00 "0,050<0D0T0q0 x0 000 0@001 #1 /191 K1 X1"d1 11%111 2%262,G2t2222223 33-3A3a3q3z33333 3!4"454J4e4 t444444 4+4'5#C5g5+55555 6 6')6Q6l66*6666-7<7V7j7+767,7D8_8)|8"8)8 8 89+.92Z9#9"99,9::: Please check that the "thg" command is valid. Caught keyboard interrupt, aborting. aliases: %s (default: %s) (copied from %s) (is a symlink) (is unversioned) (renamed from %s) (was added) (was added, now missing) (was deleted) filtered"%s" is not a folder"%s" is not a valid directory"%s" removed from path history"%s" removed from search history### filter text ###### host certificate fingerprint ###### patch name ###### regular expression ###### regular expression search pattern ###### revision set query ###$FILE_ENCODINGS% Match%d day%d days%d files have merge conflicts that must be resolved%d files were modified on both branches and must be resolved%d hour%d hours%d matches found%d minute%d minutes%d month%d months%d outgoing changesets%d outgoing changesets in current branch (%s) / %d in total%d outgoing changesets to %s%d outgoing changesets up to current revision (#%d) / %d in total%d outgoing changesets up to revision #%d / %d in total%d patches were exported to:

                                                                                                              %s%d pending changelists found%d second%d seconds%d week%d weeks%d year%d years%d%%%dpt%p%%s (hint: %s)%s (pending)%s (submitted)%s - Revision Details (%s)%s - TortoiseHg Workbench%s - TortoiseHg Workbench - %s%s - branch operation%s - commit%s - commit options%s - hg %s%s - purge%s - recover repository%s - status%s - status (selection filtered)%s - sync options%s - verify repository%s : %s%s %s already exists, replace URL?%s and %s have identical contents %s certificate error: no certificate received%s had rejected chunks, edit patched file together with rejects?%s is a dirty subrepo%s is added%s is deleted by non-hg command, but still tracked%s is ignored%s is modified%s is not a valid repository%s is not modified (clean)%s is not tracked (unknown)%s is removed%s patches%s project settings (.hg/projrc)%s repository settings%s will be imported to %s's global settings&About TortoiseHg&Add&Add Repository...&AfterIndent&Ancestors and Descendants&Apply Only This Patch&Archive&Archive...&Auto&Auto Detect&Auto-Complete&Backout...&Bisect...&Branch&Browse...&Bundle Rev and Descendants...&Cancel&Character&Clear&Clone&Close&Close Repository&Commit&Commit to Queue...&Commit to current branch&Copy&Copy Patch&Copy...&Create&Custom Toolbar&Delete&Delete Patches...&Delete Queue...&Delete Unversioned...&Diff Other to Ancestor&Diff Selected File Revisions&Diff to Other&Diff to Parent&Discard&Discard (--force)&Discard changes&Dock Toolbar&Edit File&Edit Local&Edit Toolbar&Edit...&Editor Options&Email Patch...&Exit&False&File&Filter Toolbar&Finish Patch&Flat List&Force&Forget&Goto (update workdir)&Goto Revision...&Graft to Local...&Help&Ignore...&Import&Import Patches...&Incoming&Invisible&Keep (--keep)&License&Local&Lock File...&Mac&Make secret&Mark Excluded Changes&Mark Resolved&Mark Unresolved&Mark as Resolved&Match&Merge&Merge with Local...&Merge...&More Options...&Move&New Repository...&No&No (discard changes)&Open&Open All&Open Local&Open Repository...&Originating Revision&Other&Outgoing&Parent Revision&Parent Revision (%d)&Paste&Patch Branch&Prune&Prune Selected...&Prune...&Pull&Purge Queue...&Purge...&Push Bookmark&Readme&Rebase...&Redo&Refresh&Refresh Repository List&Remote Update...&Remove&Remove Bookmark&Remove...&Rename&Rename Active Queue...&Replace&Repository&Resize Columns&Resolve...&Revert&Revert to Revision...&Revert with backup&Revert...&Run&Save&Save at Revision...&Scan Repositories at Startup&Search&Search in Current File&Set...&Settings&Shelve&Shelve...&Sign&Skip this Revision&Sort&Sort by .hgsub&Spaces&Strip&Strip...&Sync Bookmarks...&TAB&TAB Inserts&Tag...&Take Local&Task Toolbar&Terminal&True&Unapply Patch&Undo&Unix&Unspecified&Update&Update...&Verify&View&View Changeset&View Missing&View at Revision&Visible&Web Server&Windows&Word&Workbench Toolbars&Wrap&Yes'Publishing' repository(%s) (DEPRECATED)(excluded from the next commit)(is a changed and dirty sub-repository)(is a changed sub-repository)(is a dirty sub-repository)(is a new and dirty sub-repository)(is a new sub-repository)(is a removed sub-repository)(is an unchanged sub-repository)(no help text available)(same as parent)(unsaved)*: not used by TortoiseHg, resolved merge, unresolved merge3-&Way Diff3-way dir diffLaunch settings tool...help revsets%d changeset will be stripped%d changesets will be strippedAnnotate:Candidate MatchesDifferences from Source to DestHost: %sIgnore FilterParse Error!Repository Details:Revert %d files to their contents at the following revision?Revert %s to its contents at the following revision?Selected Options:Selected Options: %sSubrepository Features:Uncommitted local changes are detectedUnknown revision!Unrevisioned FilesUntracked FilesWeb Server:= Working Directory Parent =A README file is not configured for the current repository.

                                                                                                              To configure a README file for a repository, open the repository settings file, add a 'readme' key to the 'tortoisehg' section, and set it to the filename or URL of your repository's README file.A bookmark named "%s" already existsA comma separated list of target groupsA comma separated list of target peopleA new version of TortoiseHg (%s) is ready for download!A repository cannot be added as a subrepo of itselfA revision identifier, bookmark, tag or branch nameA shelf file of that name already existsA shelf name cannot contain %sA terminal shell cannot be opened for remoteA terminal shell must be configuredA topic named "%s" already existsA&dd Subrepository...A&uthorAbortAbort the export operation. Aborted p4pendingAboutAbout &QtAbout TortoiseHgAcceptAccept All MatchesAccept Selected MatchesAccept the local file version (yours)Accept the other file version (theirs)Activate BookmarksActivate bookmark?Activate:AddAdd &LargefilesAdd &Largefiles...Add Files...Add Path to ServeAdd a repository to this groupAdd as &LargefilesAdd as &Normal FilesAdd files to version controlAdd ignore filter...Add or remove patches must be merged in the working directoryAdd selected untracked files?Add separatorAdd to listAddedAdded tag %s for changeset %sAfter Pull OperationAge:AliasAll HistoryAll changesets belonging to the branches of changesets in set.All changesets, the same as 0:tip.All conflicting files will be marked unresolved.All conflicts are resolved.All contextsAll files (*)All files in this revisionAll itemsAll revisionsAll unsaved changes will be lost.Allow Git SubreposAllow Hg SubreposAllow PushAllow SVN SubreposAllow push of a new branch (--new-branch)Allow pushing new branches (--new-branch)Always merge (when possible)Always show repo tabs, even for a single repo. Default: FalseAmendAmend current revisionAn alias for "::." (ancestors of the working copy's first parent).An empty set, if any revision in set isn't found; otherwise, all revisions in set.An error occurred while reading the file.An error occurred while updating the repository hgrc file (%s)An error occurred while writing the file.An exception happened while loading the subrepos of:

                                                                                                              "%s"

                                                                                                              An interrupted graft operation has been found. You cannot perform a different graft operation unless you abort the interrupted graft operation first.Annotate &FileAnnotate Op&tionsAnnotate with revision numbersApp&ly FormatAppendAppend graft info to log messageAppend the changes to the existing patch files. Applied patchesApplied patches or qparentApply all patchesApply changes before exit?Apply one patchApply only the selected patchApply only this patchApply onto original parentApply patchArabicArchive - %sArchive Content:Archive DAG Range...Archive FormatsArchive types:Are you sure that you want to cancel the commit operation?Are you sure you want to delete these files and/or folders?Are you sure you want to overwrite it ?Are you sure you want to reload this file?Are you sure?Ask UsernameAttempt automatic (trivial) mergeAttempt to push to specified URL or alias after each successful commit. Default: No pushAuthorAuthor ColoringAuto Commit ListAuto Exclude ListAuto Includes:Auto-resolve mergesAutomatically advance to next page when backout and merge are complete.Automatically advance to next page when merge is complete.Automatically resolve merge conflicts where possibleBackBacked out changeset: Backing out a parent revision is a single step operationBacking out and committing...Backing out, then merging...Backout - %sBackout changesetBackout current patch branchBackout requires a parent revisionBackout revisionBackport part of a changeset to a dependencyBackspace or Del to remove row(s)Backup copies of modified files can be found in .hg/Trashcan/Backwards phase change requestedBad filenameBalticBccBefore backout, you must commit, shelve to patch, or discard changes.Before compress, you must commit, shelve to patch, or discard changes.Before graft, you must commit, shelve to patch, or discard changes.Before merging, you must commit, shelve to patch, or discard changes.Before rebase, you must commit, shelve to patch, or discard changes.Bisect - %sBisect - Bad, Good...Bisect - Good, Bad...BoldBoo&kmark...Bookmark '%s' does not existBookmark '%s' has been addedBookmark '%s' has been movedBookmark '%s' has been removedBookmark '%s' has been renamed to '%s'Bookmark - %sBookmark named "%s" does not existBookmark:BranchBranch ColorsBranch:Branch: Bro&wse at RevisionBrowse Directory...Browse...Bundle DAG Range...Bundle files (*.hg)Bundles store complete changesets in binary form. Upstream users can pull from them. This is the safest way to send changes to recipient Mercurial users.Bypass ListBzip2 tar archivesC&hoose Log Columns...C&onfigure FormatCLI EditorCan't change settings without iniparse package - view is readonly.Can't find revision '%s'CancelCannot add subrepositoryCannot backout change on a different branchCannot export revisionCannot export revision %s into the file named: %s Cannot import selected revisionCannot open Plugin Options dialogCannot open non Mercurial repositories or subrepositoriesCannot open repositoryCannot open the .hgsub file in:

                                                                                                              %sCannot read the .hgsub file.

                                                                                                              Subrepository removal failed.Cannot start a new searchCannot update the .hgsub file in:

                                                                                                              %sCannot update the .hgsub file.

                                                                                                              Subrepository removal failed.CcCc:CelticCentral and Eastern EuropeCertificate Query ErrorChange &Phase toChangeLog FontChanged by &This CommitChanges have been moved, you must now commitChanges take effect on next commitChangeset LinkChangeset is a merge changeset.Changeset is a named branch head.Changeset is closed.Changeset is tagged.Changeset with highest revision number in set.Changeset with lowest revision number in set.Changeset:ChangesetsChangesets affecting files matched by pattern. See help patternsChangesets containing files matched by pattern.Changesets not found in the specified destination repository, or the default push location.Changesets that are ancestors of a changeset in set.Changesets where username contains string.Changesets which add files matched by pattern.Changesets which are descendants of changesets in set.Changesets which modify files matched by pattern.Changesets which remove files matched by pattern.Changesets with no parent changeset in set.Changesets within the interval, see help datesCharacter encoding of files in the repository, used by the web interface and TortoiseHg.CheckCheck Subrepo PhaseCheck all filesCheck for incoming changesCheck for incoming changes from %sCheck for incoming changes from selected URLCheck the phase of the current revision of each subrepository. For settings other than "ignore", the phase of the current revision of each subrepository is checked before committing the parent repository. Default: followChecked count: %dCheckingChecking for updates...Checking working directory status...Checking...Checkmark files to addCheckmark files to forgetCheckmark files to removeCheckmark files to revertChild changesets of changesets in set.Child:Chunks selected: %d / %dClea&r LogCleanClearClear contents of shelf file %s?Clear current query and query textClear the current shelf fileClick OK to continue or Abort to exit.Clon&e Repository...Clon&e...Clone - %sClone RepositoryClone to revision:Clone with minimal processingClone...CloseClose %s branchClose After CommitClose Branch: Close current branchClose other tabsClose tabClose the commit tool after every successful commit. Default: FalseClose:Co&mpare File RevisionsCollapse the rebased changesets (--collapse)Color changesets by author name. Default: FalseComma separated list of archive formats allowed for downloadingComma separated list of branch names that should be ignored when building a list of branch names for a repository. Default: None (leave blank)Comma separated list of exclusion file patterns. Exclusion patterns are applied after inclusion patterns.Comma separated list of files that are automatically included in every commit. Intended for use only as a repository setting. Default: None (leave blank)Comma separated list of files that are automatically unchecked when the status, and commit dialogs are opened. Default: None (leave blank)Comma separated list of inclusion file patterns. By default, the entire repository is searched.Comma-separated list of blind carbon copy recipient email addressesComma-separated list of carbon copy recipient email addressesComma-separated list of recipient email addressesCommandCommand ErrorCommand outputCommand to use for SSH connections.

                                                                                                              Default: "ssh" or "TortoisePlink.exe -ssh -2" (Windows)CommitCommit Dialog ToolbarCommit LaterCommit NowCommit OptionsCommit backout and merge resultsCommit changesCommit changes in repositoryCommit context menuCommit merge resultsCommit messageCommit...Committing...Common setsCompare revisions of the selected fileCompare to &1st ParentCompare to &2nd ParentCompletely remove file from patch?CompressCompress - %sCompress History...Compress changesets up to and includingCompress is complete, old history untouchedConfig File:Config files (*.conf *.config *.ini)Configuration Error: "%(arg0)s",
                                                                                                              Please fix your configConfigure Custom ToolConfigure Explorer extensionConfigure HookConfigure Issue TrackerConfigure guardsConfigure guards for selected patchConfigure repository settingsConfigure the selected COM Bug Tracker plugin.Configure user wide settingsConfigures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking plugin.Confirm AddConfirm Branch ChangeConfirm DeleteConfirm Delete UnversionedConfirm DiscardConfirm Discard ChangesConfirm Discard MessageConfirm ExitConfirm New BranchConfirm OverwriteConfirm PushConfirm Push to remote RepositoryConfirm ReloadConfirm RemoveConfirm RevertConfirm SaveConfirm StripConfirm URL replaceConfirm UndoConfirm UpdateConfirm adding unknown filesConfirm deleting filesConfirm file deletionsConfirm patch queue switchConfirm path deleteConnecting to Review Board...Consider aborting the graft first.Consider aborting the rebase first.ConsoleContactContext MenuContinue or abort interrupted graft operation?Controls draft phase behavior when working as a server. When true, pushed changesets are set to public in both client and server and pulled or cloned changesets are set to public in the client. Default: TrueConvert an existing repository into a subrepositoryConverted From:CopyCopy &HashCopy &PathCopy - %sCopy ErrorCopy Selected as PatchCopy full path of file(s) to the clipboardCopy messageCopy one of the recent commit messagesCopy source -> destinationCopy the root path of the repository to the clipboardCopy working directory files from skeletonCould not get subrepository listCould not instantiate Issue Tracker plugin COM objectCould not open .hgsub fileCould not open some subrepositoriesCould not open the specified file for reading.Could not open the specified file for writing.Could not translate the file content from native encoding.Could not translate the file content to native encoding.Could not update .hgsub fileCreateCreate &BranchCreate &New Queue...Create Patch QueueCreate Repository HereCreate a new groupCreate a new patchCreate a new repositoryCreate clone here from sourceCreate diff with all changes on this branchCreate diff with all outgoing changesCreate new named branch "%s" with this commit? Create special files (.hgignore, ...)Cu&tCulprit found.Current local revisionCustom Toolbar &SettingsCustom ToolsCyrillicDateDate:De&tect Renames...Deactivate current bookmark?Dead BranchesDefault PushDefault widgetDefines the command to run when an issue number is recognized. You may include groups in issue.regex, and corresponding {n} tokens in issue.link (where n is a non-negative integer). {0} refers to the entire string matched by issue.regex, while {1} refers to the first group and so on. If no {n} tokens are found in issue.link, the entire matched string is appended instead.Defines the regex to match when picking up issue numbers.DeleteDelete %d file in .hg/TrashcanDelete %d files in .hg/TrashcanDelete %d ignored fileDelete %d ignored filesDelete %d unknown fileDelete %d unknown filesDelete %s from your repo configuration file?Delete Group '%s' and all its entries?Delete Patch QueueDelete PatchesDelete ToolDelete empty foldersDelete from listDelete hookDelete patches...Delete reference toDelete selected chunksDelete selected chunks from shelf file %s?Delete selected chunks from working copy?Delete selected patchesDelete selected query from historyDelete shelf file %s?Delete the current shelf fileDelete the following unversioned files?Deleted %d filesDeleted %d files and %d foldersDeleted*Deleting trash folder...Deletion failuresDeny PushDescriptionDestDestination file already exists.Destination path:Destination:Detect Copies/Renames in %sDetect outgoing changesDetect outgoing changes to %sDetect outgoing changes to selected URLDetect renames and copiesDetected merge/diff tools:Detected uncommitted local changes in working tree. Please select to continue: Detected uncommitted local changes.Determines if TortoiseHg should show a confirmation dialog before adding new files in a commit. If True, a confirmation dialog will be shown. If False, selected new files will be included in the commit with no confirmation dialog. Default: TrueDetermines if TortoiseHg should show a confirmation dialog before pushing changesets. If False, push will be performed without any confirmation dialog. Default: TrueDetermines if TortoiseHg should show a confirmation dialog before removing files in a commit. If True, a confirmation dialog will be shown. If False, selected deleted files will be included in the commit with no confirmation dialog. Default: TrueDetermines when the issue tracker state will be updated by TortoiseHg. Valid settings values are:

                                                                                                              • never: Do not update the Issue Tracker state automatically.
                                                                                                              • commit: Update the Issue Tracker state after a successful commit.

                                                                                                              Default: neverDetermining outgoing changesets to email...Diff &Changeset to ParentDiff &LocalDiff &Local to AncestorDiff Changeset to Loc&alDiff File toDiff FontDiff Selected &ChangesetsDiff ToolbarDiff and AnnotateDiff contentsDiff not displayed: Diff to &LocalDiff to parentDir diff to p1Dir diff to p2Directory diffDirectory of filesDiscard - discard local changes, no backupDiscard all changes from the other revisionDiscard current backout message?Discard current commit message?Discard local changes (revert --all)Discard local changes, no backup (-C/--clean)Discard local changes, no backup (-f/--force)Discard outstanding changes to working directory?Discard remote changes, no backup (-C/--clean)Display closed branchesDisplay graph the named branch onlyDisplay only active branchesDisplay the file anywayDisplaying %(count)d of %(total)d itemsDnD SynchronizeDo not include modification dates in diff headers. Default: FalseDo not modify working copy (-k/--keep)Do not modify working copy during strip (-k/--keep)Do not save backup files (*.orig)Do not show menu items on unversioned folders (use shift + click to override)Do not strip paths (-p0), required for SVN patchesDo not update the new working directoryDo not verify host certificateDo you really want to force a backwards phase transition?Do you really want to activate patch queue '%s' ?Do you really want to deactivate the %s bookmark?Do you really want to make this revision secret?Do you really want to remove the repository "%s" from its parent repository "%s"Do you want to exit?Do you want to keep them or discard them?Drag to change orderDuplicate NameE&ncodingE&xitE&xploreE&xplore FolderE&xplore LocalE&xplorer HelpE&xportE&xport Patch...EOL &ModeEOL &VisibilityEditEdit FileEdit Ignore FilterEdit LocalEdit Path to ServeEdit Re&jectsEdit Tool ...Edit current file in working copyEdit fileEdit hookEdit patch dependency graphEdit patched file and rejects?Edit repository ignore filterEdit resolved fileEditor launch failureEmailEmail DAG Range...Email Selected...Email address to use in the "From" header and for the SMTP envelopeEmail outgoing changesets for remote repositoryEmit debugging output (--debug)Enabled Overlay HandlersEnabled overlaysEncodingEnglish MessagesEnter line number (1 - %d)Enter revision identifierErrorError encountered.Error executing "commit finished" triggerError getting commit message information from Issue Tracker pluginError loading subreposError previewing subrepo: %sError string "%(arg0)s" at %(arg1)s
                                                                                                              Please edit your configError writing fileExcel files (*.xls *.xlsx)ExcludeExcludes:Execute custom tool '%s'ExitExit without finishing resolve?Exiting with an unfinished graft is not recommended.Exiting with an unfinished rebase is not recommended.Explorer Extension SettingsExplorer Extension Settings - TortoiseHgExport DAG Range...Export Diff...Export Selected...Export patchExtExtensionsFailed to add repositoryFailed to add subrepositoryFailed to execute custom TortoiseHg commandFailed to execute custom commandFailed to load issue tracker '%s': %sFailed to load issue tracker: '%s': %s. Failed to open path in terminalFailed to open repositoryFailed to process largefiles.patterns.Failed to refreshFailed!Fetch - use fetch (auto merge pulled changes)Fetch - use fetch extension (fetch is not active!)Fields to match:FileFile &History / AnnotateFile Differences Log ColumnsFile HistoryFile History Log ColumnsFile List ToolbarFile StatusFile Status:File already existsFile conflicts need to be resolvedFile context menu (on manifest and revision details)File is binaryFile is larger than the specified max size. maxdiff = %s KBFile may be binary (maximum line length exceeded)File or diffs not displayed: File or diffs not displayed: File is larger than the specified max size. maxdiff = %s KBFile pattern setsFile was not within current repositoryFilenameFilesFiles of at least the specified size (in megabytes) will be added as bfilesFiles of at least the specified size (in megabytes) will be added as largefilesFiles with names meeting the specified patterns will be automatically added as bfilesFiles with names meeting the specified patterns will be automatically added as largefilesFilter Histor&yFilter b&yFilter graph with revision sets or branchesFilter:Find RenamesFind copy and/or rename sourcesFind matches - %sFind revisions matching fields of:Find revisions that "match" one or more fields of the given set of revisions.Finding outgoing changesets to %s...FinishedFirst n members of a set.First parent for all changesets in set, or the working directory.Fixed revisionsFlag:Fold patches...Follow copies and renamesFont used to display changelog data. Default: monospace 10Font used to display commit messages. Default: monospace 10Font used to display output messages. Default: sans 8Font used to display text differences. Default: monospace 10FontsFor which kinds of revisions the tool will be enabled It is only taken into account when the tool is shown on the selected revision context menu.Force Repo TabForce a merge with outstanding changes (-f/--force)Force push or pop (--force)Force push or pull (override safety checks, --force)Force push to remote location (-f/--force)Force removal of modified files (--force)ForgetForget Files...Fork GUIForwardFound %d incoming changesetsFound incoming changesets from %sFromFrom:Full AuthornameFull Path TitleGPG key ID associated with user. Default: None (leave blank)Generate English commit messages even if LANGUAGE or LANG environment variables are set to a non-English language. This setting is used by the Merge, Tag and Backout dialogs. Default: FalseGetting incoming changesets from %s...Git Commit:Git FormatGit patches can describe binary files, copies, and permission changes, but recipients may not be able to use them if they are not using git or Mercurial.GlobGlobal SettingsGnuPGGo &to PatchGo toGo to LineGo to a specific revisionGo to current revisionGoto ancestor of %s and %sGoto common ancestorGoto revisionGraftGraft - %sGraft Selected to local...Graft abortedGraft changesetGraft changeset #%d of %dGraft failedGraft generated merge conflicts that must be resolvedGraft is completeGraft:GraphGraphical merge program for resolving merge conflicts. If left unspecified, Mercurial will use the first applicable tool it finds on your system or use its internal merge tool that leaves conflict markers in place. Choose internal:merge to force conflict markers, internal:prompt to always select local or other, or internal:dump to leave files in the working directory for manual mergingGreatest common ancestor of the two changesets.GreekGuards: %d/%dGuess RenamesGzip tar archivesHTTP Error: %d (%s)Head is closed!HebrewHg command:Hg file log viewer [%s] - %sHg patches (as generated by export command) are compatible with most patch programs. They include a header which contains the most important changeset metadata.Hide DetailHide TagsHide context menu outside repositoriesHighlight IconHook typeHooksHostHost name and (optional) port of proxy server, for example "myproxy:8000"Host name of mail serverHostname the sender can use to identify itself to the mail server.How many lines a "zebra stripe" should span in multiline output. Default is 1; set to 0 to disable.IconIconsIf no username has been specified, the user will be prompted to enter a username. Default: FalseIf specified, files in the directory, e.g. .hgignore, are copied to the newly-created repository.If true, concatenate multiple lines of changeset summary and truncate them at 80 characters as necessary. Default: FalseIf you still have trouble, please file a bug report.Ignore Ignore Blank LinesIgnore WS AmountIgnore White SpaceIgnore caseIgnore changes in the amount of white space in diff views. Default: FalseIgnore changes in the amount of white space in the annotate view. Default: FalseIgnore changes whose lines are all blank in diff views. Default: FalseIgnore changes whose lines are all blank in the annotate view. Default: FalseIgnore filter - %sIgnore white space when comparing lines in diff views. Default: FalseIgnore white space when comparing lines in the annotate view. Default: FalseIgnored*Immediate OperationsImport - %sImport from ClipboardImport to &MQIn &Current RevisionIn &Original RevisionIn All &HistoryIn Current &FileIn-Reply-To:IncludeInclude all ancestorsInclude patch queueIncludes:Incoming BookmarksIncoming from %s aborted, ret %dIndicates whether TortoiseHg should attempt to automatically resolve changes from both sides to the same file, and only report merge conflicts when this is not possible. When False, all files with changes on both sides of the merge will report as conflicting, even if the edits are to different parts of the file. In either case, when conflicts occur, the user will be invited to review and resolve changes manually. Default: True.Iniparse must be installed.Iniparse package not foundInitial revisionInline TagsInput new guards for %s:Insufficient access rights, reverting to read-only mode.Insufficient access rights.InterruptedInterrupted graft operation foundInvalid PatternsInvalid Settings - Please provide your ReviewBoard usernameInvalid Settings - The ReviewBoard server is not setupInvalid commandInvalid configuration: %sInvalid date formatInvalid default push revision: %s. Please check your Mercurial configuration (tortoisehg.defaultpush)Invalid glob expressionInvalid regexp expressionInvalid reviewboard plugin. Please download the Mercurial reviewboard plugin version 3.5 or higher from the website below. %sIssue LinkIssue RegexIssue TrackerIssue Tracker PluginIssue Tracker Plugin ErrorIssue Tracker TriggerIssue TrackingIt was not possible to fully load the subrepository list for the repository in:

                                                                                                              %s

                                                                                                              The following subrepositories may be missing, broken or on an inconsistent state and cannot be accessed:

                                                                                                              %sIt was not possible to get the subrepository list for the repository in:

                                                                                                              %sItalicJapaneseKeep original branch names (--keepbranches)Keep original changesets (--keep)Keep patch filesKey IDKey:Keyword SearchKiln BfilesKnown bad revision:Known good revision:KoreanLargefilesLeft ToolbarLet the user update the projrc on incoming:

                                                                                                              • never: [default] Show whether the remote projrc file has changed, but do not update (nor ask to update) the local projrc file.
                                                                                                              • prompt: Look for changes to the projrc file. If there are changes _always_ show a confirmation prompt, asking the user if it wants to update its local projrc file.
                                                                                                              • auto: Look for changes to the projrc file. Use the value of the "projrc.confirm" configuration key to determine whether to show a confirmation dialog or not before updating the local projrc file.

                                                                                                              Default: neverLicenseLike "keyword(string)" but accepts a regex.LineList Optio&nsList of Servers from which "projrc" configuration files must be pulled. Set it to "*" to pull from all servers. Set it to "default" to pull from the default sync path. Default is pull from NO servers.List of all toolsList of settings that will NOT be pulled from the project configuration file. Default is exclude none of the included settings.List of settings that will be pulled from the project configuration file. Default is include NO settings.List updated files (--verbose)Load &All RevisionsLoad all revisions into graphLoading repository %sLocal HostnameLocal PathLocal Path:Local Repository %sLocal disks onlyLocal revision informationLocal signLocal tagLocation of local clone of organizational lock repository.

                                                                                                              This repository must contain a "locked" text fileLocation:Lock CloneLock a file not described in .hglocksLock of %s failed, retryLock of %s successfulLock or unlock filesLocked And Lockable Files:Locked*Locking %sLocking UserLogLog Batch SizeLong SummaryMMQ &OptionsMQ Git FormatMQ QPushPushMQ QPushPush allMQ optionsMa&nifest ModeMake MQ patches secret (instead of draft). Default: FalseMake repo compatible with Mercurial <1.7Making a "draft" revision "secret" is generally a safe operation. However, there are a few caveats: - "secret" revisions are not pushed. This can cause you trouble if you refer to a secret subrepo revision. - If you pulled this revision from a non publishing server it may be moved back to "draft" if you pull again from that particular server. Please be careful!Manage HTTPS connection security and user authenticationManage pending perforce changelistsMandatory Issue ReferenceManually resolve rejected chunks?Manually resolve rejected patch chunksMark as &UnresolvedMark this chunk as resolved, goto next unresolvedMark this chunk as unresolvedMark this file as resolvedMark this file as unresolvedMatch TextMatch any of %d revisionsMax ChangesMax Diff SizeMax FilesMaximum number of changes to list on the changelog. Default: 10Maximum number of files to list per changeset. Default: 10Members of a set with no children in set.Menu BehaviorMercurial Re&solveMercurial UserMercurial command is still running. Are you sure you want to terminate?Mercurial keyring extension is enabled. Passwords will be stored in a platform-native secure method.Mercurial was unable to find an editor. Please configure Mercurial to use an editor installed on your system.MergeMerge - %sMerge - allow to merge with local changesMerge all pending dependenciesMerge caused file conflictsMerge changesetMerge from (other revision)Merge rejected patch chunks into %sMerge revision not specified or not foundMerge to (working directory)Merge using selected merge toolMerge with %sMerge with the other head of the current branchMerging...MessageMessage FontMessage Translation FailureMessage identifier to reply to, for threadingMethod to enable TLS when connecting to mail server. Default: noneMin Similarity: %d%%Minimum ProtocolMinimum SizeMissing informationModi&fy HistoryMonitor Repo ChangesMonitor working
                                                                                                              directory changesMoveMove all files leftMove all files rightMove applied patches into repository historyMove changes between working dir and patchMove selected chunks leftMove selected chunks rightMove selected file leftMove selected file rightMoved tag %s to changeset %s (from changeset %s)Multiple selection context menuMultiple sources chosenNameName associated with commits. The common format is:
                                                                                                              Full Name <email@example.com>Name or email address of the person in charge of the repository.Named branch "%s" already exists, last used in revision %d New &GroupNew &WorkbenchNew Branch: New Commit PhaseNew GroupNew Name:New Patch BranchNew Repo SkeletonNew RepositoryNew ShelfNew Tool ...New file createdNew hookNew patch message:New patch queue nameNew shelf createdNextNext DiffNext diffNo DatesNo appropriate filesNo backup (-n/--nobackup)No branch changesNo chunks remainNo commitNo deletable chunksNo diff tool foundNo editor foundNo file changesNo files checkedNo files found for this operationNo files selectedNo files to findNo host specifiedNo host validation, but still encrypted (bad)No ignored files foundNo incoming changesets from %sNo issue link was found in the commit message. The commit message should contain an issue link. Configure this in the 'Issue Tracking' section of the settings.No items to displayNo matches foundNo merge conflicts, ready to commitNo merge conflicts, ready to commit or reviewNo modified files checkmarked for commitNo operation to performNo outgoing changesetsNo outgoing changesets to %sNo patch branch selectedNo pending Perforce changelistsNo remote repository URL or path setNo repository foundNo revision foundNo shell configuredNo transaction availableNo trash files foundNo unknown files foundNo username configuredNo valid default remote repository URL or path has been configured for this repository.

                                                                                                              Please type and save a remote repository path on the Sync widget.No visual diff tools were detectedNo visual editor configuredNone - simply pull changesetsNordicNormalize file line endings during and after patch to lf or crlf. Strict does no normalization. Auto does per-file detection, and is the recommended setting. Default: strictNot a Mercurial subrepo, not previewableNot a head revision!Not a head, backout will create a new head!Nothing CommittedNothing changed.Nothing to importNothing to pushOKObsolete state:On repowidget, show forOne or more of the changesets that you are attempting to push involve the creation of a new branch. Do you want to create a new branch in the remote repository?Only consider deleted filesOnly files modified/created in this revisionOnly files modified/created since:Onto destinationOpenOpen &TerminalOpen S&ubrepositoryOpen a (nonmergable) file you wish to be lockedOpen a new named branchOpen a shell terminal in the repository rootOpen a shell terminal in the selected folderOpen advanced query editorOpen all repositories in new tabsOpen hgweb configOpen new tabs next to the current tabOpen parent folder of current file in the system file managerOpen shelve toolOpen the repository in a file browserOpen the repository in a new tabOpen the selected folder in the system file managerOpen the selected subrepositoryOperation aborted:

                                                                                                              %(arg0)s.Operation which is performed directly after a successful pull. update equates to pull --update, fetch equates to the fetch extension, rebase equates to pull --rebase, updateorrebase equates to pull -u --rebase. Default: noneOptional. Comma-separated list of host names that should bypass the proxyOptional. Method to use to send email messages. If value is "smtp" (default), use SMTP (configured below). Otherwise, use as name of program to run that acts like sendmail (takes "-f" option for sender, list of recipients on command line, message on stdin). Normally, setting this to "sendmail" or "/usr/sbin/sendmail" is enough to use sendmail to send messages.Optional. PEM encoded client certificate chain file. Environment variables are expanded in the filename.Optional. PEM encoded client certificate key file. Environment variables are expanded in the filename.Optional. Password to authenticate with at the proxy serverOptional. Password to authenticate with. If not given, and the remote site requires basic or digest authentication, the user will be prompted for it.Optional. User name to authenticate with at the proxy serverOptional. Username to authenticate with. If not given, and the remote site requires basic or digest authentication, the user will be prompted for it. Environment variables are expanded in the username letting you do foo.username = $USER.OptionsOptions:Or use:Order the subrepos as in .hgsubOriginal Parent:Other revision informationOutgoing BookmarksOutgoing aborted, ret %dOutgoing to %s aborted, ret %dOutput FontOverlaysP&ull BookmarkP&ushPDF docs (*.pdf)PEM files (*.pem *.crt *.cer)PEM files (*.pem *.key)Pair selection context menuParent 1:Parent 2:Parent:ParentsPasswordPassword to authenticate to mail server withPassword to authenticate with review boardPassword:Paste &FilenamesPatch Branch ToolbarPatch EOLPatch Files (*.patch)Patch Name RequiredPatch QueuePatch Queue Actions ToolbarPatch date:Patch exportedPatch failed to applyPatch files (*.diff *.patch)Patch files already existPatch fold - %sPatch message:Patch name:Patch series description is sent in initial summary email with [PATCH 0 of N] subject. It should describe the effects of the entire patch series. When emailing a bundle, these fields make up the message subject and body. Flags is a comma separated list of tags which are inserted into the message subject prefix.Patch user:Patch:Patch: %sPatches exportedPatches to foldPathPath Edit ToolbarPath to review board example "http://demo.reviewboard.org"Path to the directory where a system-wide cache of bfiles will be storedPath to the directory where a user's cache of largefiles will be storedPath:Paths in Repository Settings:PatternsPending Perforce Changelists - %sPerforce pending...Perforce:Perform a push before updating (-p/--push)PhasePlace Console in Doc&k AreaPlain, do not prepend Hg headerPlease configure a visual editor.Please enable and configure simplelockPlease enable the Gpg extension first.Please enable the Topic extension first.Please enter a usernamePlease enter commit messagePlease report this bug to our bug trackerPlease set a valid URL to continue.Please wait while committing merged files.Please wait while making backout.Please wait while the file is opened ...Please wait...PopPop allPortPort to connect to on mail server. Default: 25Port to listen onPort:Post &ReviewPost Pull BehaviorPost Pull: Post ReviewPost Selected to Review Board...Post to Re&view Board...Predecessors:Prepare to backoutPrepare to mergePreserve files beginning with .hgPrevPreviewPreview:Previous DiffPrevious diffPreviously the subrepository was at the following revision:ProjrcProxyPrune - %sPublish request immediatelyPullPull from %s aborted, ret %dPull from %s completedPull incoming changesPull incoming changes from %sPull incoming changes from selected URLPull incoming changesets into your repositoryPull subrepos from:Pull to here...Pulled remote bookmark: %sPulling from %s...PurgePurge Patch QueuePurposePus&hPush &AllPush After CommitPush After Commit:Push Requires SSLPush Selected &BranchPush allPush current branch (%s)Push outgoing changesPush outgoing changes to %sPush outgoing changes to selected URLPush to %s abortedPush to %s aborted, ret %dPush to %s completedPush to &HerePush to remote repository %s ?Push up to current revision (#%d)Push up to revision #%dPushed local bookmark: %sPushing to %s...QNewQRefreshQueryQuery about changesets affecting the selected filesQuitR&emove BookmarkR&epository Registry OptionsR&ollback/Undo...README not configuredRe&coverRe&move VersionedRe&move from RegistryRe&nameRe&name Patch...Re&name...Readonly*ReadyReady to purge.Ready, double click to lock or unlockRebaseRebase - %sRebase - rebase local commits above pulled changesRebase - use rebase extension (rebase is not active!)Rebase abortedRebase already in progressRebase changeset and descendantsRebase entire source branch (-b/--base)Rebase failedRebase generated merge conflicts that must be resolvedRebase is completeRebase unpublished onto Subversion head (override source, destination)Rebase...Recurse into subrepositoriesRecurse into subrepositories (--subrepos)Redundant authentication infoRefreshRefresh &Task TabRefresh ToolbarRefresh current patchRefresh current repositoryRefresh file listRefresh lock informationRefresh only the current task tabRefresh the Repository Registry listRefreshing locks...RegexpRegexp:Regular expression search patternReject incoming changesetsRelated Paths:ReloadReload FileRemo&ve Subrepository...Remote Update - %sRemote command:RemoveRemove &All Selected FilesRemove &Unmodified FilesRemove Files...Remove authentication data from URLRemove current working revision?Remove files from version controlRemove filter, show rootRemove patch directory ofRemove patches from queue?Remove selected deleted files?Remove the node and all its subnodes. Repositories are not deleted from disk.Remove the selected repository?Remove this subrepository from the current revisionRemoved local bookmark: %sRemoved remote bookmark: %sRemoved tag %sRenameRename - %sRename ErrorRename FileRename PatchRename Patch QueueRename file or directoryRename patch %s to:Rename patch queue '%s' toRename patch...Rename the entryReopen last closed tabReopen last closed tab groupReplaceReplace existing hook?Replace existing tag (-f/--force)Replace the existing patch files. Report only the first match per fileRepositoriesRepositoryRepository ErrorRepository ID:Repository RegistryRepository Registry updatedRepository SettingsRepository command still runningRepository is lockedRepository name to use in the web interface, and by TortoiseHg as a shorthand name. Default is the working directory.Repository not localRepository status & changesRequire confirmationResolve Conflicts - %sResolved conflictsRestart &BranchRestart Mer&geRestart Merge &withRestart all TortoiseHg applications for the following changes to take effect:Resuming rebase already in progressRevRevertRevert &All Files...Revert - %sRevert Files...Revert all file changes?Revert all files to this revisionRevert all working copy changes?Revert file changesRevert file(s) to contents at this revisionRevert files to local or other parent?Revert local file changes?Revert the following files?Revert to RevisionReverting all files will discard changes and leave affected files in a modified state.

                                                                                                              Are you sure you want to use revert?

                                                                                                              (use update to checkout another revision)Reverting p4 changelist...Review BoardReview ID:Review draft posted to %s Review published to %s RevisionRevision #%d (%s) was exported to:

                                                                                                              %s%s%sRevision &DetailsRevision SetRevision Set QueryRevision details context menuRevision has changed to:Revision is &BadRevision is &GoodRevision to Match:Revision:Revisions to Match:Right ToolbarRollback commit to revision %dRollback to revision %d (undo %s)?Run after a changegroup has been added via push, pull or unbundle, but before the transaction has been committed. Changegroup is visible to hook program. This lets you validate incoming changes before accepting them. Passed the ID of the first new changeset in $HG_NODE and last in $HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-zero status will cause the transaction to be rolled back and the push, pull or unbundle will fail. URL that was source of changes is in $HG_URL.Run after a changegroup has been added via push, pull or unbundle. ID of the first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL.Run after a changeset has been created but the transaction not yet committed. Changeset is visible to hook program. This lets you validate commit message and changes. Exit status 0 allows the commit to proceed. Non-zero status will cause the transaction to be rolled back. ID of changeset is in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and $HG_PARENT2.Run after a changeset has been created in the local repository. ID of the newly created changeset is in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and $HG_PARENT2.Run after a changeset has been pulled, pushed, or unbundled into the local repository. The ID of the newly arrived changeset is in $HG_NODE. URL that was source of changes came is in $HG_URL.Run after a pushkey (like a bookmark) is added to the repository. The key namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) is in $HG_OLD, and the new value is in $HG_NEW.Run after a tag is created. ID of tagged changeset is in $HG_NODE. Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in repository if $HG_LOCAL=0.Run after listing pushkeys (like bookmarks) in the repository. The key namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary containing the keys and values.Run after sending changes from local repository to another. ID of first changeset sent is in $HG_NODE. Source of operation is in $HG_SOURCE.Run after updating the working directory. Changeset ID of first new parent is in $HG_PARENT1. If merge, ID of second new parent is in $HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the update failed (e.g. because conflicts not resolved), $HG_ERROR=1.Run before a changegroup is added via push, pull or unbundle. Exit status 0 allows the changegroup to proceed. Non-zero status will cause the push, pull or unbundle to fail. URL from which changes will come is in $HG_URL.Run before a pushkey (like a bookmark) is added to the repository. Non-zero status will cause the key to be rejected. The key namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) is in $HG_OLD, and the new value is in $HG_NEW.Run before collecting changes to send from the local repository to another. Non-zero status will cause failure. This lets you prevent pull over HTTP or SSH. Also prevents against local pull, push (outbound) or bundle commands, but not effective, since you can just copy files instead then. Source of operation is in $HG_SOURCE. If "serve", operation is happening on behalf of remote SSH or HTTP repository. If "push", "pull" or "bundle", operation is happening on behalf of repository on same system.Run before creating a tag. Exit status 0 allows the tag to be created. Non-zero status will cause the tag to fail. ID of changeset to tag is in $HG_NODE. Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in repository if $HG_LOCAL=0.Run before listing pushkeys (like bookmarks) in the repository. Non-zero status will cause failure. The key namespace is in $HG_NAMESPACE.Run before starting a local commit. Exit status 0 allows the commit to proceed. Non-zero status will cause the commit to fail. Parent changeset IDs are in $HG_PARENT1 and $HG_PARENT2.Run before updating the working directory. Exit status 0 allows the update to proceed. Non-zero status will prevent the update. Changeset ID of first new parent is in $HG_PARENT1. If merge, ID of second new parent is in $HG_PARENT2.Running at %sRunning...RussianS&tatus BarS&ync ToolbarS&ynchronizeSMTP HostSMTP PasswordSMTP PortSMTP TLSSMTP UsernameSSH CommandSSL error: %sSSL: Server certificate verify failedSSL: unknown error %s:%sSa&ve Current Sync Paths on ExitSaveSave GlobalSave Open Repositories on E&xitSave PathSave changes before editing?Save current URL under an aliasSave error report toSave file as it appeared at this revisionSave file toSave hgweb configSave in RepoScan &Remote RepositoriesSearchSearch HistorySearch Selected TextSearch already in progressSearch commit message, user name, and names of changed files for string.Search file revisions for patternsSearch in All &HistorySearchingSearching...Second parent for all changesets in set, or the working directory.Secret MQ PatchesSecure HTTPS ConnectionSecuritySecurity: Select &AllSelect &NoneSelect Destination FileSelect Destination FolderSelect Directory containing patchesSelect RepositorySelect Source FileSelect Source FolderSelect Tool:Select User Certificate Chain FileSelect User Certificate Key FileSelect a GUI location to edit:Select an existing repository to add as a subrepoSelect branch of merge commitSelect bundle fileSelect destination repositorySelect if TortoiseHg will show a target combo in the sync toolbar.

                                                                                                              • auto: The default. Show the combo if more than one target configured.
                                                                                                              • always: Always show the combo.

                                                                                                              Default: autoSelect patch folderSelect patchesSelect post-pull operation for this repositorySelect repositorySelect repository directory to addSelect repository directory to openSelect source repositorySelect the initial revision that will be selected when opening a repository. You can select the "current" (i.e. the working directory parent), the current "tip" or the working directory ("workingdir"). Default: currentSelect the initial widget that will be shown when opening a repository. Default: revdetailsSelect the revisions that will be pushed by default, whenever you click the Push button.

                                                                                                              • all: The default. Push all changes in all branches.
                                                                                                              • branch: Push all changes in the current branch.
                                                                                                              • revision: Push the changes in the current branch up to the current revision.

                                                                                                              Default: allSelect the toolbar or menu to changeSelect when TortoiseHg will show a prompt to activate a bookmark when updating to a revision that has one or more bookmarks.

                                                                                                              • auto: Try to automatically activate bookmarks. When updating to a revision that has a single bookmark it will be activated automatically. Show a prompt if there is more than one bookmark on the revision that is being updated to.
                                                                                                              • prompt: The default. Show a prompt when updating to a revision that has one or more bookmarks.
                                                                                                              • never: Never show any prompt to activate any bookmarks.

                                                                                                              Default: promptSelect when the working directory status list will be refreshed:
                                                                                                              - auto: [default] let TortoiseHg decide when to refresh the working directory status list.
                                                                                                              TortoiseHg will refresh the status list whenever it performs an action that may potentially modify the working directory. This may miss any changes that happen outside of TortoiseHg's control;
                                                                                                              - always: in addition to the automatic updates above, also refresh the status list whenever the user clicks on the "working dir revision" or on the "Commit icon" on the workbench task bar;
                                                                                                              - alwayslocal: same as "always" but restricts forced refreshes to local repos.
                                                                                                              Default: autoSelect when your command will be runSelect whether you want to have a single workbench window. If you disable this setting you will get a new workbench window everytime that you use the "Hg Workbench" command on the explorer context menu. Default: TrueSelected changeset pair not relatedSend &EmailSend changesets as Hg patchesSend single binary bundle, not patchesSending EmailServerServer Repository IDServersSet &Guards...Set AncestrySet Date:Set LogicSet username:Settin&gsSettingsSettings File:Several characters would be lost.Several icons are courtesy of the TortoiseSVN and Tango projectsSh&ow Repository RegistryShelfShelf clearedShelf deletedShelf: %sShellShelve - move local changes to a patchShelve ChangesShould new tabs be open next to the current tab? If False new tabs will be open after the last tab. Default: TrueShow &AuthorShow &DateShow &Patch QueueShow &PathsShow &RevisionShow About DialogShow Conso&leShow DetailShow Family LineShow FunctionShow IconShow IssuesShow Issues...Show LogShow Output LogShow Revision &DetailsShow S&hort PathsShow Tas&k TabShow a full directory path of the repository in the dialog title instead of just the root directory name. Default: FalseShow allShow all version-controlled files in tree viewShow changes from first parentShow changes from second parentShow files changed by this commitShow full authorname in Logview. If not enabled, only a short part, usually name without email is shown. Default: FalseShow indirect revision dependency on the revision graph when filtered by revset. Default: True

                                                                                                              Note: Calculating family line may be slow in some cases. This option is expected to be removed if the performance issue is solved.Show tabs along the side of the bottom half of each repo widget allowing one to switch task tabs without using the toolbar. Default: offShow tags at start of commit message.Show the history of the selected fileShow which function each change is in. Default: FalseShow/Hide hidden changesetsSig&n...Sign - %sSign even if the sigfile is modified (-f/--force)Signature has been addedSimplelockSimplelock extension not enabledSingle Workbench WindowSizeSize (KB)Skip final confirmation page, close after commit.Skipping %s, unable to readSome of the files that you have selected are of a size over 10 MB. You may make more efficient use of disk space by adding these files as largefiles, which will store only the most recent revision of each file in your local repository, with older revisions available on the server. Do you wish to add these files as largefiles?Sort by &NameSort by &PathSort set by keys. The default sort order is ascending, specify a key as "-key" to sort in descending order.Sort the group by full pathSort the group by short nameSourceSource does not exist.Source:South-Eastern EuropeSouthern EuropeSpace separated list of branch names and colors of the form branch:#XXXXXX. Spaces and colons in the branch name must be escaped using a backslash (\). Likewise some other characters can be escaped in this way, e.g. \u0040 will be decoded to the @ character, and \n to a linefeed. Default: None (leave blank)Space separated list of shell operations you would like to be performed immediately, without user interaction. Commands are "add remove revert forget". Default: None (leave blank)Space separated list of tags that will not be shown. Useful example: Specify "qbase qparent qtip" to hide the standard tags inserted by the Mercurial Queues Extension. Default: None (leave blank)Specify name of new shelfSpecify the command to launch your preferred terminal shell application. If the value includes the string %(reponame)s, the name of the repository will be substituted in place of %(reponame)s. Similarly, %(root)s will be the full path to the repository. (restart needed)
                                                                                                              Default, Windows: cmd.exe /K title %(reponame)s
                                                                                                              Default, OS X: not set
                                                                                                              Default, other: xterm -T "%(reponame)s"Specify the number of spaces that tabs expand to in various TortoiseHg windows. Default: 8Specify the path to GPG. Default: gpgSpecify the target filesystem where TortoiseHg monitors changes. Default: localonlySpecify visual diff tool, as described in the [merge-tools] section of your Mercurial configuration files. If left unspecified, TortoiseHg will use the selected merge tool. Failing that it uses the first applicable tool it finds.Specify visual editor, as described in the [editor-tools] section of your Mercurial configuration files. If left unspecified, TortoiseHg will use the first applicable tool it finds.Specify which task buttons you want to show on the task toolbar and in which order.
                                                                                                              Type a list of the task button names. Add separators by putting "|" between task button names.
                                                                                                              Valid names are: log commit sync grep and pbranch.
                                                                                                              Default: log commit grep pbranch | syncSpecify your preferred user interface language (restart needed)StartStart a new patch branchStart revision:Start web server for this repositoryStatStatusStatus File List ToolbarStatus:StopStop current operationStoppedStrikeStrip - %sStrip:StripesStripping Mercurial header removes username and parent information. Only useful if recipient is not using Mercurial (and does not like to see the headers).StyleSub menu items:Subject:Submitting p4 changelist...Subrepo '%s' has a non trivial default sync URL:

                                                                                                              %s

                                                                                                              Replace it with the following URL?:

                                                                                                              %sSubrepo added to .hgsub fileSubrepo created and set to initial revision.Subrepo initialized to revision:Subrepo may be damaged or inaccessible.Subrepo removed from repository.Subrepo state is:Subrepo statesSubrepo was not changed.Subrepository already existsSubrepository not foundSubrepository not found in the working directory.Subrepository removed from .hgsubSubversion:SuccessSuccessors:Suggested length of commit message lines. A red vertical line will mark this length. CTRL-E will reflow the current paragraph to the specified line length. Default: 80Summary (first description line)Summary Line LengthSummary:Swap source and destinationSyncSync BookmarksSynchronizeSynchronize with dragged repositorySynchronize with remote repositorySyntax HighlightingSystem CacheTLS 1.0TLS 1.1TLS 1.2Tab WidthTab cannot exitTag '%s' has been addedTag '%s' has been movedTag '%s' has been removedTag - %sTag:Tagged:Tags:Take &OtherTar archive compressed using bzip2Tar archive compressed using gzipTar archivesTarget ComboTarget GroupsTarget PeopleTarget:Task TabsTask Toolbar OrderTaskbarTemporarily disable configured HTTP proxyTemporary files are removed when this dialog is closedTerminated by userTest this revision and report findings. (good/bad/skip)Text Translation FailureText files (*.txt)Textual description of the repository's purpose or contents.ThaiThe .hgsub file already contains the line:

                                                                                                              %sThe changes from revision %s and all unmerged parents will be discarded. Are you sure this is what you want to do?The command "%s" could not be executed.The command "%s" failed (code %d).The command that will be executed. To execute a Mercurial command use "hg" (rather than "hg.exe") as the executable command. You can use several {VARIABLES} to compose your command. Common variables: - {ROOT}: The path to the current repository root. - {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id hashes respectively formatted as a revset expression. - {SELECTEDFILES}: The list of files selected by the user on the revision details file list. - {FILES}: The list of files touched by the selected revisions. - {ALLFILES}: All the files tracked by Mercurial on the selected revisions. Pair selection variables: - {REV_A} / {REVID_A}: the first selected revision number / hexadecimal revision id hash respectively. - {REV_B} / {REVID_B}: the second selected revision number / hexadecimal revision id hash respectively. The command that will be executed. To execute a python function prepend the command with "python:". The default repository id for this repo on the review board serverThe destination "%s" already exists as a file!The destination "%s" already exists as a folder!The destination must be within the repository tree.The directory "%s" is not empty! Do you want to overwrite it?The directory where the command will be executed. If this is not set, the root of the current repository will be used instead. You can use the same {VARIABLES} as on the "Command" setting. The editor used by Mercurial command line commands to collect multiline input from the user. Most notably, commit messages.The exception error message was:

                                                                                                              %s

                                                                                                              The file "%s" already exists! Do you want to overwrite it?The following error message was returned: "%s" Please check that the command path is valid and that it is a valid applicationThe following error message was returned: %sThe hook name cannot contain any spaces, tabs or '=' characters.The hook name. It cannot contain spaces.The maximum size file (in KB) that TortoiseHg will show changes for in the changelog, status, and commit windows. A value of zero implies no limit. Default: 1024 (1MB)The named bookmark or all bookmarks.The named tag or all tags.The number of revisions to read and display in the changelog viewer in a single batch. Default: 500The phase of new commits. Default: draftThe selected command is emptyThe selected folder:

                                                                                                              %s

                                                                                                              is not inside the target repository.

                                                                                                              This may be allowed but is greatly discouraged.
                                                                                                              If you want to add a non trivial subrepository mapping you must manually edit the .hgsub fileThe selected repository:

                                                                                                              %s

                                                                                                              cannot be open!The selected repository:

                                                                                                              %s

                                                                                                              is already a subrepository of:

                                                                                                              %s

                                                                                                              as: "%s"The selected revision (%s) has a bookmark on it called "%s".

                                                                                                              Do you want to activate it?
                                                                                                              You can disable this prompt by configuring Settings/Workbench/Activate BookmarksThe selected revision (%s) has %d bookmarks on it.

                                                                                                              Select the bookmark that you want to activate and click OK.

                                                                                                              Click Cancel if you don't want to activate any of them.

                                                                                                              You can disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                                                                              The selected revision (rev #%d) cannot be imported because it is not a descendant of qparent (rev #%d)The selected subrepo:

                                                                                                              %s

                                                                                                              has been added to the .hgsub file of the repository:

                                                                                                              %s

                                                                                                              Remember that in order to finish adding the subrepo you must still commit the changes to the .hgsub file in order to confirm the addition of the subrepo.The selected subrepository has been removed from the .hgsub file.

                                                                                                              Remember that you must commit this .hgsub change in order to complete the removal of the subrepository!The selected subrepository was not found on the .hgsub file.

                                                                                                              Perhaps it has already been removed?The set of all parents for all changesets in set.The source must be within the repository tree.The subrepository is dirty.The tool icon. You can use any built-in TortoiseHg icon by setting this value to a valid TortoiseHg icon name (e.g. clone, add, remove, sync, thg-logo, hg-update, etc). You can also set this value to the absolute path to any icon on your file system.The tool label, which is what will be shown on the repowidget context menu. If no label is set, the tool name will be used as the tool label. If no tooltip is set, the label will be used as the tooltip as well.The tool name cannot have any spaces in it.The tool name. It cannot contain spaces.The tooltip that will be shown on the tool button. This is only shown when the tool button is shown on the workbench toolbar.The working directory is already merged. Continue or discard existing merge.There are existing patch files for %d revisions (%s) in the selected location (%s). There are merge conflicts to be resolvedThere are no configured sync paths. Open the Synchronize tab to configure them.There are no conflicting file merges.There are no file changes to viewThere are no files that may have been renamedThere is already an existing folder with that same name.There is an existing %s.%s hook. Do you want to replace it?There is no rollback transaction availableThg - TortoiseHg's GUI tools for Mercurial SCM (Hg) This appears to be a binary file.This error will not be shown again until you restart the workbenchThree-way Merge ToolTitleToTo finish merging, you must commit the working directory. To cancel the merge you can update to one of the merge parent revisions.To graft destinationTo rebase destinationTo:Toggle display of text search barToggle filtering of non-matched changesetsToggle graft relations visibilityToggle parent to be used as the base revisionTolerate non-conflicting local changes (--keep-changes)Too many rows selected for menuTool &ResolveTool labelTool launch failureTool nameToolsTools shown on selected locationTooltipTop menu items:Top&ic...Topic '%s' does not existTopic '%s' has been addedTopic '%s' has been removedTopic '%s' has been renamed to %sTopic - %sTopic:TortoiseHg Bookmark SyncTortoiseHg Bug ReportTortoiseHg Command DialogTortoiseHg CommitTortoiseHg Dialogs (version %s), Mercurial (version %s) TortoiseHg ErrorTortoiseHg Lock Tool - %sTortoiseHg New Shelf NameTortoiseHg Overlay Icon ServerTortoiseHg PromptTortoiseHg SearchTortoiseHg SettingsTortoiseHg Shelve - %sTortoiseHg Web ServerTortoiseHg WorkbenchTortoiseHg has created a new .hgignore file. Would you like to add this file to the source code control repository?TortoiseHg: %sTraditional ChineseTransplant:Trigger revision set queryTry refreshing your repository.TurkishTypeU&nbundle...UI LanguageURLURLError: %sUkrainianUnable to backoutUnable to compress historyUnable to create a Mercurial.ini fileUnable to create a config fileUnable to delete %d file or folderUnable to delete %d files or foldersUnable to determine pending changesetsUnable to determine working copy revision Unable to find changesetUnable to mergeUnable to merge chunksUnable to parse p4pending outputUnable to read fileUnable to read repository statusUnable to removeUnable to remove URLUnable to remove file %s, permission deniedUnable to save after commit pushUnable to save an URLUnable to save authenticationUnable to save auto include listUnable to save post pull operationUnable to save recurse in subrepos.Unable to save usernameUnable to show subrepository filesUnable to start the following command:Unable to translate input to local encoding.Unable to translate message to local encoding. Consider setting HGENCODING environment variable. Replace untranslatable characters with "?"? Unable to update repository nameUnable to write .hgignore fileUnable to write configuration fileUnable to write diff fileUnable to write fileUnapply all patchesUnapply one patchUnbundleUncheckUncheck all filesUncheck to consider all revisioned files for copy sourcesUncommited merge - please select a parent revisionUncompressed tar archiveUncompressed zip archiveUnderlineUndo close other tabsUndo close tabUndo last commit?Undo last transaction?Undo most recent commit (%d), preserving file changes?UnicodeUnified ChineseUnknown revision!Unlock of %s failed, retryUnlock of %s successfulUnlocking %sUnresolved conflictsUnresolved conflicts remain. Are you sure?Unsaved changes will be lost. Do you want to reload?Unsupported repository type (%s)UnversionedUpdateUpdate - %sUpdate - pull, then try to updateUpdate IconsUpdate ReviewUpdate icons for this repositoryUpdate on incomingUpdate or create a path alias called '%s' on all subrepos, using this URL as the base URL, appending the local relative subrepo path to itUpdate subrepo pathsUpdate the fields of this existing requestUpdate to:Update working directoryUpdate working directory or switch revisionsUpdate...UpdateOrRebase - pull, then try to update or rebaseUpdateOrRebase - use rebase extension (rebase is not active!)Updating repository registryUpgrading to a more recent TortoiseHg is recommended.Use English backout messageUse English commit messageUse alternative graph layouter for large repositories. Default: False

                                                                                                              Note: This layouter colors edges using branch information and does not display graft edges, regardless of whether they are requested or not.Use compact viewUse current dateUse custom commit message:Use extended (git) patch formatUse git extended diff header format. Default: FalseUse largefilesUse my user name instead of graft committer user nameUse optimized graph layouterUse proxy serverUse pull protocol to copy metadataUserUser AuthenticationUser CacheUser Certificate ChainUser Certificate KeyUser authentication data should be associated with the hostname using the security dialog.User name to authenticate with review boardUser:UsernameUsername to authenticate to mail server withVerify backout revision and ensure your working directory is clean.Verify merge targets and ensure your working directory is clean.Verify with Certificate Authority certificates (best)Verify with stored host fingerprint (good)Vi&ew FileVietnameseView File atView O&therView change as unified diff outputView change history in repositoryView change history of selected filesView change in context of fileView changes to current in external diff toolView changes using GUI diff toolView file as it appeared at this revisionView file changes in external diff toolView the repository's settingsVisual DiffVisual Diff ToolVisual Diff...Visual Diffs - Visual EditorVisual diff between resolved file and first parentVisual diff between resolved file and second parentVisual diff...Visual diffs are not supported for files in subrepositories. They will not be shown.Visual three-way diffWarningWarning: affects all Tortoises, logoff required after changeWas renamed fromWeb ServerWebconfWestern EuropeWhat do you want to do? When committing, require that a reference to an issue be specified. If enabled, the regex configured in 'Issue Regex' must find a match in the commit message.When enabled, automatically show the Output Log when the command is run. Default: False.When running from the command line, fork a background process to run graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X application bundle. Default: TrueWhen set to 'auto', mq will automatically use git patches when required to avoid losing changes to file modes, copy records or binary files. If set to 'keep', mq will obey the [diff] section configuration while preserving existing git patches upon qrefresh. If set to 'yes' or 'no', mq will override the [diff] section and always generate git or regular patches, possibly losing data in the second case. Default: autoWhen to ask the user to confirm the update of the local "projrc" configuration file when the remote projrc file changes. Possible values are:

                                                                                                              • always: [default] Always show a confirmation prompt before updating the local .hg/projrc file.
                                                                                                              • first: Show a confirmation dialog when the repository is cloned or when a remote projrc file is found for the first time.
                                                                                                              • never: Update the local .hg/projrc file automatically, without requiring any user confirmation.
                                                                                                              Whether Git subrepositories are allowed in the working directory. Default: False

                                                                                                              See the security note before enabling Git subrepos.Whether Mercurial subrepositories are allowed in the working directory. Default: TrueWhether Subversion subrepositories are allowed in the working directory. Default: False

                                                                                                              See the security note before enabling Subversion subrepos.Whether to allow pushing to the repository. If empty or not set, push is not allowed. If the special value "*", any remote user can push, including unauthenticated users. Otherwise, the remote user must have been authenticated, and the authenticated user name must be present in this list (separated by whitespace or ","). The contents of the allow_push list are examined after the deny_push list.Whether to deny pushing to the repository. If empty or not set, push is not denied. If the special value "*", all remote users are denied push. Otherwise, unauthenticated users are all denied, and any authenticated user name present in this list (separated by whitespace or ",") is also denied. The contents of the deny_push list are examined before the allow_push list.Whether to require that inbound pushes be transported over SSL to prevent password sniffing.Which template map style to useWhite&spaceWord docs (*.doc *.docx)Work on patch queue (--mq)WorkbenchWorkbench Log ColumnsWorkbench custom toolbarWorking CopyWorking DirectoryWorking Directory (merged)Working directoryWorking directory is not clean! View changes...Working directory statusWrap searchWrite bundleWrite diff fileWrite patch series (bundle) descriptionYou are trying to move the phase of revision %d backwards, from "%s" to "%s". However, "%s" is a lower phase level than "%s". Moving the phase backwards is not recommended. For example, it may result in having multiple heads if you modify a revision that you have already pushed to a server. Please be careful!You can change the icon set from TortoiseSVN's SettingsYou can only release your own locksYou can visit our site hereYou cannot merge a revision with itselfYou have authentication info configured for this host and inside this URL. Remove authentication info from this URL?You have marked all rejected patch chunks as resolved yet you have not modified the file on the edit panel. This probably means that no code from any of the rejected patch chunks made it into the file. Are you sure that you want to leave the file as is and consider all the rejected patch chunks as resolved? Doing so may delete them from a shelve, for example, which would mean that you would lose them forever! Click Yes to accept the file as is or No to continue resolving the rejected patch chunks.You have multiple renames selected for destination file: %s. Aborting!You have selected one or more files that have been modified. By default, these files will not be removed. What would you like to do?You likely need to refresh this applicationYou may continue or start the graftYou may continue the compressYou may continue the graftYou may continue the rebaseYou must enter a patch nameYou must identify yourself to MercurialYou must provide revisions to graftYou must provide source and dest argumentsYou must provide the path to a fileYou must set a command to run.You must set a tool name.You must set a valid hook type.Your TortoiseHg is up to date.Your current working revision (%d) will be removed by this rollback, leaving uncommitted changes. Continue?Zip archive compressed using deflateZip archives[--after PATCH] PATCH...[--insecure] [SOURCE][Code: %d][WARNING] Incomplete changed subrepository. Update to this revision to pull it.[WARNING] Incomplete subrepo. Update to this revision to pull it.[WARNING] Invalid subrepo revision ID: %s [WARNING] Missing changed subrepository. Update to this revision to clone it.[WARNING] Missing subrepo. Update to this revision to clone it.[command completed successfully %s][command interrupted %s][command returned code %d %%s][command terminated by user %s][non-existant][original][working copy]a revision to posta revision to sendabort: abort: %s abort: %s! action buttonCommitadd diffstat output to messagesaddedall revisions converted from subversionalways fork GUI processattachbasic commands: bodybookmark: branch: bundle file to previewcan not read file "%s". Ignored. cannot move applied patchescannot move into applied patchescannot specify both -k/--query and filenameschangeset %d:%schangeset to view in diff toolchangeset which represents converted svn revisionchangeset: %schangeset: %s (not found on subrepository)cleanclone only the specified branchcolumn headerAgecolumn headerAuthorcolumn headerBranchcolumn headerChangescolumn headerConverted Fromcolumn headerDescriptioncolumn headerFilenamecolumn headerGit Commitcolumn headerGraphcolumn headerLatest tagscolumn headerLocal Timecolumn headerNodecolumn headerPhasecolumn headerRevcolumn headerTagscolumn headerUTC Timecommand parse error: %sconfig itemCommitcorrupted command result: %rdefaultdiffstatdiscard uncommitted changes (no backup)display help and exitdo not back up stripped revisionsdo not commit the sigfile after signingdo not fork GUI processdo not modify working copy during stripdo not verify server certificate (ignoring web.cacerts config)enable additional outputenable debugging outputeol is incompatible with win32texterror while running command exec mode has been setexec mode has been unsetfailed to encode command: %sfailed to encode input: %sfailed to fork GUI process: %s failed to start command field to give initial focusfile has been deleted, refreshfile has been modified, refreshfilesfilesAllfilesNonefilling (%d)filterglobal options:grep: %s grep: invalid match pattern: %s hggit packaged with thghgsubversion is incompatible with perfarcehgsubversion packaged with thghint:hint: historyhttps://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings.html#tsvn-dug-settings-icon-setignore case during searchignoredimport to the patch queue (MQ)in the futureinclude the specified changesetinitial search patterninlineinotify is not supported on this platforminvalid "hello" message: %rinvalid argumentsinvalid line number: %sinvalid patch position specifiedkeep original branch nameskeep original changesetslaunch visual diff toollist of commands: locallsprof not available - install from http://codespeak.net/svn/user/arigo/hack/misc/lsprof/make the signature localmake the tag localmerge with old dirstate parent after backoutmethodmissingmodifiedmove after the specified patchmust be specified 'type' in stylemust be specified repositoryname of the hgweb config file (DEPRECATED)name of the hgweb config file (serve more than one repository)needs merge of %i heads needs merge with %s needs merge with %s (through %s) needs update of diff base to tip of %s no "runcommand" capabilityno command specifiedno commands defined no guardsno matches found: %sno outgoing changesetsno outgoing changesets in current branch (%s) / %d in totalno outgoing changesets up to current revision (#%d) / %d in totalno outgoing changesets up to revision #%d / %d in totalno repo at no revisions specifiednotify the shell for paths givennownull revision (i.e. remove file(s))only one new bookmark name allowedonly one new topic name allowedopen a new workbench windowopen the bookmark sync windowopen to lineopen...option --config may not be abbreviated!options: parent to choose when backing out mergepassword: patch %s not in seriesperfarce is incompatible with hgsubversionprint command execution profileprint licenseprocess exited unexpectedly with code %dpull: %s push: %sread file list from fileread file list from file encoding utf-8rebase from the specified changesetrebase onto the specified changesetrecord datecode as commit daterecord user as committerremove a tagremove the status cacheremove working directoryremovedreplace existing tagrepository %s not foundrepository root directory or symbolic path namerequires a single filenamerev: %d (%s)reviewboard extension not enabledrevisionrevision %d's first parent (i.e. revision %d)revision %d's second parent (i.e. revision %d)revision to annotaterevision to archiverevision to backoutrevision to displayrevision to mergerevision to striprevision to tagrevision to updaterevision, tag or branch to check outrevisions %d:%s to %d:%srevisions to graftrevisions to prunerevisions to view in diff toolsearch for a given text or revsetsee %(url)sselect the specified revisionselected filessend patches as attachmentssend patches as inline attachmentssend patches as part of the email bodyset/override config option (use 'section.name=value')show files without changesshow ignored filesshow the contents of the status cache (no update)side-by-side comparison of revisionssign even if the sigfile is modifiedstart debuggerstart progressCommitstart progressMQ Actionstart progressRollbackstatussubreposuppress outputsync command already runningtab tooltipCommittab tooltipConsole logtab tooltipPatch Branchtab tooltipRevision detailstab tooltipSearchtab tooltipSynchronizethe clone will include an empty working copy (only a repository)the key id to sign withthe revision to showthg %s: %s thg aboutthg add [FILE]...thg annotatethg archivethg backout [OPTION]... [[-r] REV]thg bisectthg bookmarks [-r REV] [NAME]thg clone [OPTION]... [SOURCE] [DEST]thg commit [OPTIONS] [FILE]...thg debugblockmatcherthg debugbugreport [TEXT]thg debugconsolethg debuglighthgthg debugruncommand -- COMMAND [ARGUMENT]...thg drag_copy SOURCE... DESTthg drag_move SOURCE... DESTthg email [REVS]thg filelog [OPTION]... FILEthg forget [FILE]...thg graft [-r] REV...thg grepthg guessthg help [COMMAND]thg hgignore [FILE]thg import [OPTION] [SOURCE]...thg init [DEST]thg lockthg log [OPTIONS] [FILE]thg manifest [-r REV] [FILE]thg merge [[-r] REV]thg postreview [-r] REV...thg prune [-r] REV...thg purgethg rebase -s REV -d REV [--keep]thg rejects [FILE]thg remove [FILE]...thg rename [SOURCE] [DEST]thg repoconfigthg resolvethg revdetails [-r REV]thg revert [FILE]...thg rupdate [[-r] REV]thg serve [--web-conf FILE]thg shellconfigthg shelvethg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]thg status [OPTIONS] [FILE]thg strip [-k] [-f] [-n] [[-r] REV]thg sync [OPTION]... [PEER]thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]thg thgstatus [OPTION]thg topics [-r REV] [NAME]thg update [-C] [[-r] REV]thg userconfigthg version [OPTION]thg: %s thg: command '%s' is ambiguous: %s thg: unknown command '%s' timed out waiting for messagetimed out while reading: %r...unexpected response on required channel %runknownunknown patch to move specifiedunknown revision!unrecognized profiling format '%s' - Ignored unrecognized response: %sunsupported URL: %supdate all repos in current diruse "thg -v help %s" to show global optionsuse "thg -v help%s" to show aliases and global optionsuse "thg help" for the full list of commandsuse "thg help" for the full list of commands or "thg -v" for detailsuse as commit messageuse only one form to specify the revisionuse pull protocol to copy metadatause uncompressed transfer (fast over LAN)version %swait until the second ticks overwill be closedwin32ill: cannot create window for messageswin32ill: interrupted while stopping message loop win32ill: unsupported platform: %s win32text is incompatible with eolwindow titleCommitwith Mercurial-%s, Python-%s, PyQt-%s, Qt-%sworking changesworking dir stateCleanwrap mode&NoneProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: English Language-Team: English (United Kingdom) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Launchpad-Export-Date: 2019-07-17 05:45+0000 X-Generator: Launchpad (build 19009) Please check that the "thg" command is valid. Caught keyboard interrupt, aborting. aliases: %s (default: %s) (copied from %s) (is a symlink) (is unversioned) (renamed from %s) (was added) (was added, now missing) (was deleted) filtered"%s" is not a folder"%s" is not a valid directory"%s" removed from path history"%s" removed from search history### filter text ###### host certificate fingerprint ###### patch name ###### regular expression ###### regular expression search pattern ###### revision set query ###$FILE_ENCODINGS% Match%d day%d days%d files have merge conflicts that must be resolved%d files were modified on both branches and must be resolved%d hour%d hours%d matches found%d minute%d minutes%d month%d months%d outgoing changesets%d outgoing changesets in current branch (%s) / %d in total%d outgoing changesets to %s%d outgoing changesets up to current revision (#%d) / %d in total%d outgoing changesets up to revision #%d / %d in total%d patches were exported to:

                                                                                                              %s%d pending changelists found%d second%d seconds%d week%d weeks%d year%d years%d%%%dpt%p%%s (hint: %s)%s (pending)%s (submitted)%s - Revision Details (%s)%s - TortoiseHg Workbench%s - TortoiseHg Workbench - %s%s - branch operation%s - commit%s - commit options%s - hg %s%s - purge%s - recover repository%s - status%s - status (selection filtered)%s - sync options%s - verify repository%s : %s%s %s already exists, replace URL?%s and %s have identical contents %s certificate error: no certificate received%s had rejected chunks, edit patched file together with rejects?%s is a dirty subrepo%s is added%s is deleted by non-hg command, but still tracked%s is ignored%s is modified%s is not a valid repository%s is not modified (clean)%s is not tracked (unknown)%s is removed%s patches%s project settings (.hg/projrc)%s repository settings%s will be imported to %s's global settings&About TortoiseHg&Add&Add Repository...&AfterIndent&Ancestors and Descendants&Apply Only This Patch&Archive&Archive...&Auto&Auto Detect&Auto-Complete&Backout...&Bisect...&Branch&Browse...&Bundle Rev and Descendants...&Cancel&Character&Clear&Clone&Close&Close Repository&Commit&Commit to Queue...&Commit to current branch&Copy&Copy Patch&Copy...&Create&Custom Toolbar&Delete&Delete Patches...&Delete Queue...&Delete Unversioned...&Diff Other to Ancestor&Diff Selected File Revisions&Diff to Other&Diff to Parent&Discard&Discard (--force)&Discard changes&Dock Toolbar&Edit File&Edit Local&Edit Toolbar&Edit...&Editor Options&Email Patch...&Exit&False&File&Filter Toolbar&Finish Patch&Flat List&Force&Forget&Goto (update workdir)&Goto Revision...&Graft to Local...&Help&Ignore...&Import&Import Patches...&Incoming&Invisible&Keep (--keep)&Licence&Local&Lock File...&Mac&Make secret&Mark Excluded Changes&Mark Resolved&Mark Unresolved&Mark as Resolved&Match&Merge&Merge with Local...&Merge...&More Options...&Move&New Repository...&No&No (discard changes)&Open&Open All&Open Local&Open Repository...&Originating Revision&Other&Outgoing&Parent Revision&Parent Revision (%d)&Paste&Patch Branch&Prune&Prune Selected...&Prune...&Pull&Purge Queue...&Purge...&Push Bookmark&Readme&Rebase...&Redo&Refresh&Refresh Repository List&Remote Update...&Remove&Remove Bookmark&Remove...&Rename&Rename Active Queue...&Replace&Repository&Resize Columns&Resolve...&Revert&Revert to Revision...&Revert with backup&Revert...&Run&Save&Save at Revision...&Scan Repositories at Startup&Search&Search in Current File&Set...&Settings&Shelve&Shelve...&Sign&Skip this Revision&Sort&Sort by .hgsub&Spaces&Strip&Strip...&Sync Bookmarks...&TAB&TAB Inserts&Tag...&Take Local&Task Toolbar&Terminal&True&Unapply Patch&Undo&Unix&Unspecified&Update&Update...&Verify&View&View Changeset&View Missing&View at Revision&Visible&Web Server&Windows&Word&Workbench Toolbars&Wrap&Yes'Publishing' repository(%s) (DEPRECATED)(excluded from the next commit)(is a changed and dirty sub-repository)(is a changed sub-repository)(is a dirty sub-repository)(is a new and dirty sub-repository)(is a new sub-repository)(is a removed sub-repository)(is an unchanged sub-repository)(no help text available)(same as parent)(unsaved)*: not used by TortoiseHg, resolved merge, unresolved merge3-&Way Diff3-way dir diffLaunch settings tool...help revsets%d changeset will be stripped%d changesets will be strippedAnnotate:Candidate MatchesDifferences from Source to DestHost: %sIgnore FilterParse Error!Repository Details:Revert %d files to their contents at the following revision?Revert %s to its contents at the following revision?Selected Options:Selected Options: %sSubrepository Features:Uncommitted local changes are detectedUnknown revision!Unrevisioned FilesUntracked FilesWeb Server:= Working Directory Parent =A README file is not configured for the current repository.

                                                                                                              To configure a README file for a repository, open the repository settings file, add a 'readme' key to the 'tortoisehg' section, and set it to the filename or URL of your repository's README file.A bookmark named "%s" already existsA comma separated list of target groupsA comma separated list of target peopleA new version of TortoiseHg (%s) is ready for download!A repository cannot be added as a subrepo of itselfA revision identifier, bookmark, tag or branch nameA shelf file of that name already existsA shelf name cannot contain %sA terminal shell cannot be opened for remoteA terminal shell must be configuredA topic named "%s" already existsA&dd Subrepository...A&uthorAbortAbort the export operation. Aborted p4pendingAboutAbout &QtAbout TortoiseHgAcceptAccept All MatchesAccept Selected MatchesAccept the local file version (yours)Accept the other file version (theirs)Activate BookmarksActivate bookmark?Activate:AddAdd &LargefilesAdd &Largefiles...Add Files...Add Path to ServeAdd a repository to this groupAdd as &LargefilesAdd as &Normal FilesAdd files to version controlAdd ignore filter...Add or remove patches must be merged in the working directoryAdd selected untracked files?Add separatorAdd to listAddedAdded tag %s for changeset %sAfter Pull OperationAge:AliasAll HistoryAll changesets belonging to the branches of changesets in set.All changesets, the same as 0:tip.All conflicting files will be marked unresolved.All conflicts are resolved.All contextsAll files (*)All files in this revisionAll itemsAll revisionsAll unsaved changes will be lost.Allow Git SubreposAllow Hg SubreposAllow PushAllow SVN SubreposAllow push of a new branch (--new-branch)Allow pushing new branches (--new-branch)Always merge (when possible)Always show repo tabs, even for a single repo. Default: FalseAmendAmend current revisionAn alias for "::." (ancestors of the working copy's first parent).An empty set, if any revision in set isn't found; otherwise, all revisions in set.An error occurred while reading the file.An error occurred while updating the repository hgrc file (%s)An error occurred while writing the file.An exception happened while loading the subrepos of:

                                                                                                              "%s"

                                                                                                              An interrupted graft operation has been found. You cannot perform a different graft operation unless you abort the interrupted graft operation first.Annotate &FileAnnotate Op&tionsAnnotate with revision numbersApp&ly FormatAppendAppend graft info to log messageAppend the changes to the existing patch files. Applied patchesApplied patches or qparentApply all patchesApply changes before exit?Apply one patchApply only the selected patchApply only this patchApply onto original parentApply patchArabicArchive - %sArchive Content:Archive DAG Range...Archive FormatsArchive types:Are you sure that you want to cancel the commit operation?Are you sure you want to delete these files and/or folders?Are you sure you want to overwrite it ?Are you sure you want to reload this file?Are you sure?Ask UsernameAttempt automatic (trivial) mergeAttempt to push to specified URL or alias after each successful commit. Default: No pushAuthorAuthor ColouringAuto Commit ListAuto Exclude ListAuto Includes:Auto-resolve mergesAutomatically advance to next page when backout and merge are complete.Automatically advance to next page when merge is complete.Automatically resolve merge conflicts where possibleBackBacked out changeset: Backing out a parent revision is a single step operationBacking out and committing...Backing out, then merging...Backout - %sBackout changesetBackout current patch branchBackout requires a parent revisionBackout revisionBackport part of a changeset to a dependencyBackspace or Del to remove row(s)Backup copies of modified files can be found in .hg/Trashcan/Backwards phase change requestedBad filenameBalticBccBefore backout, you must commit, shelve to patch, or discard changes.Before compress, you must commit, shelve to patch, or discard changes.Before graft, you must commit, shelve to patch, or discard changes.Before merging, you must commit, shelve to patch, or discard changes.Before rebase, you must commit, shelve to patch, or discard changes.Bisect - %sBisect - Bad, Good...Bisect - Good, Bad...BoldBoo&kmark...Bookmark '%s' does not existBookmark '%s' has been addedBookmark '%s' has been movedBookmark '%s' has been removedBookmark '%s' has been renamed to '%s'Bookmark - %sBookmark named "%s" does not existBookmark:BranchBranch ColoursBranch:Branch: Bro&wse at RevisionBrowse Directory...Browse...Bundle DAG Range...Bundle files (*.hg)Bundles store complete changesets in binary form. Upstream users can pull from them. This is the safest way to send changes to recipient Mercurial users.Bypass ListBzip2 tar archivesC&hoose Log Columns...C&onfigure FormatCLI EditorCan't change settings without iniparse package - view is readonly.Can't find revision '%s'CancelCannot add subrepositoryCannot backout change on a different branchCannot export revisionCannot export revision %s into the file named: %s Cannot import selected revisionCannot open Plugin Options dialogCannot open non Mercurial repositories or subrepositoriesCannot open repositoryCannot open the .hgsub file in:

                                                                                                              %sCannot read the .hgsub file.

                                                                                                              Subrepository removal failed.Cannot start a new searchCannot update the .hgsub file in:

                                                                                                              %sCannot update the .hgsub file.

                                                                                                              Subrepository removal failed.CcCc:CelticCentral and Eastern EuropeCertificate Query ErrorChange &Phase toChangeLog FontChanged by &This CommitChanges have been moved, you must now commitChanges take effect on next commitChangeset LinkChangeset is a merge changeset.Changeset is a named branch head.Changeset is closed.Changeset is tagged.Changeset with highest revision number in set.Changeset with lowest revision number in set.Changeset:ChangesetsChangesets affecting files matched by pattern. See help patternsChangesets containing files matched by pattern.Changesets not found in the specified destination repository, or the default push location.Changesets that are ancestors of a changeset in set.Changesets where username contains string.Changesets which add files matched by pattern.Changesets which are descendants of changesets in set.Changesets which modify files matched by pattern.Changesets which remove files matched by pattern.Changesets with no parent changeset in set.Changesets within the interval, see help datesCharacter encoding of files in the repository, used by the web interface and TortoiseHg.CheckCheck Subrepo PhaseCheck all filesCheck for incoming changesCheck for incoming changes from %sCheck for incoming changes from selected URLCheck the phase of the current revision of each subrepository. For settings other than "ignore", the phase of the current revision of each subrepository is checked before committing the parent repository. Default: followChecked count: %dCheckingChecking for updates...Checking working directory status...Checking...Checkmark files to addCheckmark files to forgetCheckmark files to removeCheckmark files to revertChild changesets of changesets in set.Child:Chunks selected: %d / %dClea&r LogCleanClearClear contents of shelf file %s?Clear current query and query textClear the current shelf fileClick OK to continue or Abort to exit.Clon&e Repository...Clon&e...Clone - %sClone RepositoryClone to revision:Clone with minimal processingClone...CloseClose %s branchClose After CommitClose Branch: Close current branchClose other tabsClose tabClose the commit tool after every successful commit. Default: FalseClose:Co&mpare File RevisionsCollapse the rebased changesets (--collapse)Colour changesets by author name. Default: FalseComma-separated list of archive formats allowed for downloadingComma separated list of branch names that should be ignored when building a list of branch names for a repository. Default: None (leave blank)Comma separated list of exclusion file patterns. Exclusion patterns are applied after inclusion patterns.Comma separated list of files that are automatically included in every commit. Intended for use only as a repository setting. Default: None (leave blank)Comma separated list of files that are automatically unchecked when the status, and commit dialogs are opened. Default: None (leave blank)Comma separated list of inclusion file patterns. By default, the entire repository is searched.Comma-separated list of blind carbon copy recipient e-mail addressesComma-separated list of carbon copy recipient e-mail addressesComma-separated list of recipient e-mail addressesCommandCommand ErrorCommand outputCommand to use for SSH connections.

                                                                                                              Default: "ssh" or "TortoisePlink.exe -ssh -2" (Windows)CommitCommit Dialog ToolbarCommit LaterCommit NowCommit OptionsCommit backout and merge resultsCommit changesCommit changes in repositoryCommit context menuCommit merge resultsCommit messageCommit...Committing...Common setsCompare revisions of the selected fileCompare to &1st ParentCompare to &2nd ParentCompletely remove file from patch?CompressCompress - %sCompress History...Compress changesets up to and includingCompress is complete, old history untouchedConfig File:Config files (*.conf *.config *.ini)Configuration Error: "%(arg0)s",
                                                                                                              Please fix your configConfigure Custom ToolConfigure Explorer extensionConfigure HookConfigure Issue TrackerConfigure guardsConfigure guards for selected patchConfigure repository settingsConfigure the selected COM Bug Tracker plugin.Configure user wide settingsConfigures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking plugin.Confirm AddConfirm Branch ChangeConfirm DeleteConfirm Delete UnversionedConfirm DiscardConfirm Discard ChangesConfirm Discard MessageConfirm ExitConfirm New BranchConfirm OverwriteConfirm PushConfirm Push to remote RepositoryConfirm ReloadConfirm RemoveConfirm RevertConfirm SaveConfirm StripConfirm URL replaceConfirm UndoConfirm UpdateConfirm adding unknown filesConfirm deleting filesConfirm file deletionsConfirm patch queue switchConfirm path deleteConnecting to Review Board...Consider aborting the graft first.Consider aborting the rebase first.ConsoleContactContext MenuContinue or abort interrupted graft operation?Controls draft phase behaviour when working as a server. When true, pushed changesets are set to public in both client and server and pulled or cloned changesets are set to public in the client. Default: TrueConvert an existing repository into a subrepositoryConverted From:CopyCopy &HashCopy &PathCopy - %sCopy ErrorCopy Selected as PatchCopy full path of file(s) to the clipboardCopy messageCopy one of the recent commit messagesCopy source -> destinationCopy the root path of the repository to the clipboardCopy working directory files from skeletonCould not get subrepository listCould not instantiate Issue Tracker plugin COM objectCould not open .hgsub fileCould not open some subrepositoriesCould not open the specified file for reading.Could not open the specified file for writing.Could not translate the file content from native encoding.Could not translate the file content to native encoding.Could not update .hgsub fileCreateCreate &BranchCreate &New Queue...Create Patch QueueCreate Repository HereCreate a new groupCreate a new patchCreate a new repositoryCreate clone here from sourceCreate diff with all changes on this branchCreate diff with all outgoing changesCreate new named branch "%s" with this commit? Create special files (.hgignore, ...)Cu&tCulprit found.Current local revisionCustom Toolbar &SettingsCustom ToolsCyrillicDateDate:De&tect Renames...Deactivate current bookmark?Dead BranchesDefault PushDefault widgetDefines the command to run when an issue number is recognized. You may include groups in issue.regex, and corresponding {n} tokens in issue.link (where n is a non-negative integer). {0} refers to the entire string matched by issue.regex, while {1} refers to the first group and so on. If no {n} tokens are found in issue.link, the entire matched string is appended instead.Defines the regex to match when picking up issue numbers.DeleteDelete %d file in .hg/TrashcanDelete %d files in .hg/TrashcanDelete %d ignored fileDelete %d ignored filesDelete %d unknown fileDelete %d unknown filesDelete %s from your repo configuration file?Delete Group '%s' and all its entries?Delete Patch QueueDelete PatchesDelete ToolDelete empty foldersDelete from listDelete hookDelete patches...Delete reference toDelete selected chunksDelete selected chunks from shelf file %s?Delete selected chunks from working copy?Delete selected patchesDelete selected query from historyDelete shelf file %s?Delete the current shelf fileDelete the following unversioned files?Deleted %d filesDeleted %d files and %d foldersDeleted*Deleting trash folder...Deletion failuresDeny PushDescriptionDestDestination file already exists.Destination path:Destination:Detect Copies/Renames in %sDetect outgoing changesDetect outgoing changes to %sDetect outgoing changes to selected URLDetect renames and copiesDetected merge/diff tools:Detected uncommitted local changes in working tree. Please select to continue: Detected uncommitted local changes.Determines if TortoiseHg should show a confirmation dialogue before adding new files in a commit. If True, a confirmation dialogue will be shown. If False, selected new files will be included in the commit with no confirmation dialogue. Default: TrueDetermines if TortoiseHg should show a confirmation dialog before pushing changesets. If False, push will be performed without any confirmation dialog. Default: TrueDetermines if TortoiseHg should show a confirmation dialogue before removing files in a commit. If True, a confirmation dialogue will be shown. If False, selected deleted files will be included in the commit with no confirmation dialogue. Default: TrueDetermines when the issue tracker state will be updated by TortoiseHg. Valid settings values are:

                                                                                                              • never: Do not update the Issue Tracker state automatically.
                                                                                                              • commit: Update the Issue Tracker state after a successful commit.

                                                                                                              Default: neverDetermining outgoing changesets to email...Diff &Changeset to ParentDiff &LocalDiff &Local to AncestorDiff Changeset to Loc&alDiff File toDiff FontDiff Selected &ChangesetsDiff ToolbarDiff and AnnotateDiff contentsDiff not displayed: Diff to &LocalDiff to parentDir diff to p1Dir diff to p2Directory diffDirectory of filesDiscard - discard local changes, no backupDiscard all changes from the other revisionDiscard current backout message?Discard current commit message?Discard local changes (revert --all)Discard local changes, no backup (-C/--clean)Discard local changes, no backup (-f/--force)Discard outstanding changes to working directory?Discard remote changes, no backup (-C/--clean)Display closed branchesDisplay graph the named branch onlyDisplay only active branchesDisplay the file anywayDisplaying %(count)d of %(total)d itemsDnD SynchroniseDo not include modification dates in diff headers. Default: FalseDo not modify working copy (-k/--keep)Do not modify working copy during strip (-k/--keep)Do not save backup files (*.orig)Do not show menu items on unversioned folders (use shift + click to override)Do not strip paths (-p0), required for SVN patchesDo not update the new working directoryDo not verify host certificateDo you really want to force a backwards phase transition?Do you really want to activate patch queue '%s' ?Do you really want to deactivate the %s bookmark?Do you really want to make this revision secret?Do you really want to remove the repository "%s" from its parent repository "%s"Do you want to exit?Do you want to keep them or discard them?Drag to change orderDuplicate NameE&ncodingE&xitE&xploreE&xplore FolderE&xplore LocalE&xplorer HelpE&xportE&xport Patch...EOL &ModeEOL &VisibilityEditEdit FileEdit Ignore FilterEdit LocalEdit Path to ServeEdit Re&jectsEdit Tool ...Edit current file in working copyEdit fileEdit hookEdit patch dependency graphEdit patched file and rejects?Edit repository ignore filterEdit resolved fileEditor launch failureE-mailEmail DAG Range...Email Selected...E-mail address to use in the "From" header and for the SMTP envelopeEmail outgoing changesets for remote repositoryEmit debugging output (--debug)Enabled Overlay HandlersEnabled overlaysEncodingEnglish MessagesEnter line number (1 - %d)Enter revision identifierErrorError encountered.Error executing "commit finished" triggerError getting commit message information from Issue Tracker pluginError loading subreposError previewing subrepo: %sError string "%(arg0)s" at %(arg1)s
                                                                                                              Please edit your configError writing fileExcel files (*.xls *.xlsx)ExcludeExcludes:Execute custom tool '%s'ExitExit without finishing resolve?Exiting with an unfinished graft is not recommended.Exiting with an unfinished rebase is not recommended.Explorer Extension SettingsExplorer Extension Settings - TortoiseHgExport DAG Range...Export Diff...Export Selected...Export patchExtExtensionsFailed to add repositoryFailed to add subrepositoryFailed to execute custom TortoiseHg commandFailed to execute custom commandFailed to load issue tracker '%s': %sFailed to load issue tracker: '%s': %s. Failed to open path in terminalFailed to open repositoryFailed to process largefiles.patterns.Failed to refreshFailed!Fetch - use fetch (auto merge pulled changes)Fetch - use fetch extension (fetch is not active!)Fields to match:FileFile &History / AnnotateFile Differences Log ColumnsFile HistoryFile History Log ColumnsFile List ToolbarFile StatusFile Status:File already existsFile conflicts need to be resolvedFile context menu (on manifest and revision details)File is binaryFile is larger than the specified max size. maxdiff = %s KBFile may be binary (maximum line length exceeded)File or diffs not displayed: File or diffs not displayed: File is larger than the specified max size. maxdiff = %s KBFile pattern setsFile was not within current repositoryFilenameFilesFiles of at least the specified size (in megabytes) will be added as bfilesFiles of at least the specified size (in megabytes) will be added as largefilesFiles with names meeting the specified patterns will be automatically added as bfilesFiles with names meeting the specified patterns will be automatically added as largefilesFilter Histor&yFilter b&yFilter graph with revision sets or branchesFilter:Find RenamesFind copy and/or rename sourcesFind matches - %sFind revisions matching fields of:Find revisions that "match" one or more fields of the given set of revisions.Finding outgoing changesets to %s...FinishedFirst n members of a set.First parent for all changesets in set, or the working directory.Fixed revisionsFlag:Fold patches...Follow copies and renamesFont used to display changelog data. Default: monospace 10Font used to display commit messages. Default: monospace 10Font used to display output messages. Default: sans 8Font used to display text differences. Default: monospace 10FontsFor which kinds of revisions the tool will be enabled It is only taken into account when the tool is shown on the selected revision context menu.Force Repo TabForce a merge with outstanding changes (-f/--force)Force push or pop (--force)Force push or pull (override safety checks, --force)Force push to remote location (-f/--force)Force removal of modified files (--force)ForgetForget Files...Fork GUIForwardFound %d incoming changesetsFound incoming changesets from %sFromFrom:Full AuthornameFull Path TitleGPG key ID associated with user. Default: None (leave blank)Generate English commit messages even if LANGUAGE or LANG environment variables are set to a non-English language. This setting is used by the Merge, Tag and Backout dialogs. Default: FalseGetting incoming changesets from %s...Git Commit:Git FormatGit patches can describe binary files, copies, and permission changes, but recipients may not be able to use them if they are not using git or Mercurial.GlobGlobal SettingsGnuPGGo &to PatchGo toGo to LineGo to a specific revisionGo to current revisionGoto ancestor of %s and %sGoto common ancestorGoto revisionGraftGraft - %sGraft Selected to local...Graft abortedGraft changesetGraft changeset #%d of %dGraft failedGraft generated merge conflicts that must be resolvedGraft is completeGraft:GraphGraphical merge program for resolving merge conflicts. If left unspecified, Mercurial will use the first applicable tool it finds on your system or use its internal merge tool that leaves conflict markers in place. Choose internal:merge to force conflict markers, internal:prompt to always select local or other, or internal:dump to leave files in the working directory for manual mergingGreatest common ancestor of the two changesets.GreekGuards: %d/%dGuess RenamesGzip tar archivesHTTP Error: %d (%s)Head is closed!HebrewHg command:Hg file log viewer [%s] - %sHg patches (as generated by export command) are compatible with most patch programs. They include a header which contains the most important changeset metadata.Hide DetailHide TagsHide context menu outside repositoriesHighlight IconHook typeHooksHostHost name and (optional) port of proxy server, for example "myproxy:8000"Host name of mail serverHostname the sender can use to identify itself to the mail server.How many lines a "zebra stripe" should span in multiline output. Default is 1; set to 0 to disable.IconIconsIf no username has been specified, the user will be prompted to enter a username. Default: FalseIf specified, files in the directory, e.g. .hgignore, are copied to the newly-created repository.If true, concatenate multiple lines of changeset summary and truncate them at 80 characters as necessary. Default: FalseIf you still have trouble, please file a bug report.Ignore Ignore Blank LinesIgnore White Space AmountIgnore White SpaceIgnore caseIgnore changes in the amount of white space in diff views. Default: FalseIgnore changes in the amount of white space in the annotate view. Default: FalseIgnore changes whose lines are all blank in diff views. Default: FalseIgnore changes whose lines are all blank in the annotate view. Default: FalseIgnore filter - %sIgnore white space when comparing lines in diff views. Default: FalseIgnore white space when comparing lines in the annotate view. Default: FalseIgnored*Immediate OperationsImport - %sImport from ClipboardImport to &MQIn &Current RevisionIn &Original RevisionIn All &HistoryIn Current &FileIn-Reply-To:IncludeInclude all ancestorsInclude patch queueIncludes:Incoming BookmarksIncoming from %s aborted, ret %dIndicates whether TortoiseHg should attempt to automatically resolve changes from both sides to the same file, and only report merge conflicts when this is not possible. When False, all files with changes on both sides of the merge will report as conflicting, even if the edits are to different parts of the file. In either case, when conflicts occur, the user will be invited to review and resolve changes manually. Default: True.Iniparse must be installed.Iniparse package not foundInitial revisionInline TagsInput new guards for %s:Insufficient access rights, reverting to read-only mode.Insufficient access rights.InterruptedInterrupted graft operation foundInvalid PatternsInvalid Settings - Please provide your ReviewBoard usernameInvalid Settings - The ReviewBoard server is not setupInvalid commandInvalid configuration: %sInvalid date formatInvalid default push revision: %s. Please check your Mercurial configuration (tortoisehg.defaultpush)Invalid glob expressionInvalid regexp expressionInvalid ReviewBoard plugin. Please download the Mercurial ReviewBoard plugin version 3.5 or higher from the website below. %sIssue LinkIssue RegexIssue TrackerIssue Tracker PluginIssue Tracker Plugin ErrorIssue Tracker TriggerIssue TrackingIt was not possible to fully load the subrepository list for the repository in:

                                                                                                              %s

                                                                                                              The following subrepositories may be missing, broken or on an inconsistent state and cannot be accessed:

                                                                                                              %sIt was not possible to get the subrepository list for the repository in:

                                                                                                              %sItalicJapaneseKeep original branch names (--keepbranches)Keep original changesets (--keep)Keep patch filesKey IDKey:Keyword SearchKiln BfilesKnown bad revision:Known good revision:KoreanLargefilesLeft ToolbarLet the user update the projrc on incoming:

                                                                                                              • never: [default] Show whether the remote projrc file has changed, but do not update (nor ask to update) the local projrc file.
                                                                                                              • prompt: Look for changes to the projrc file. If there are changes _always_ show a confirmation prompt, asking the user if it wants to update its local projrc file.
                                                                                                              • auto: Look for changes to the projrc file. Use the value of the "projrc.confirm" configuration key to determine whether to show a confirmation dialog or not before updating the local projrc file.

                                                                                                              Default: neverLicenceLike "keyword(string)" but accepts a regex.LineList Optio&nsList of Servers from which "projrc" configuration files must be pulled. Set it to "*" to pull from all servers. Set it to "default" to pull from the default sync path. Default is pull from NO servers.List of all toolsList of settings that will NOT be pulled from the project configuration file. Default is exclude none of the included settings.List of settings that will be pulled from the project configuration file. Default is include NO settings.List updated files (--verbose)Load &All RevisionsLoad all revisions into graphLoading repository %sLocal HostnameLocal PathLocal Path:Local Repository %sLocal disks onlyLocal revision informationLocal signLocal tagLocation of local clone of organisational lock repository.

                                                                                                              This repository must contain a "locked" text fileLocation:Lock CloneLock a file not described in .hglocksLock of %s failed, retryLock of %s successfulLock or unlock filesLocked And Lockable Files:Locked*Locking %sLocking UserLogLog Batch SizeLong SummaryMMQ &OptionsMQ Git FormatPushPush allMQ optionsMa&nifest ModeMake MQ patches secret (instead of draft). Default: FalseMake repo compatible with Mercurial <1.7Making a "draft" revision "secret" is generally a safe operation. However, there are a few caveats: - "secret" revisions are not pushed. This can cause you trouble if you refer to a secret subrepo revision. - If you pulled this revision from a non publishing server it may be moved back to "draft" if you pull again from that particular server. Please be careful!Manage HTTPS connection security and user authenticationManage pending perforce changelistsMandatory Issue ReferenceManually resolve rejected chunks?Manually resolve rejected patch chunksMark as &UnresolvedMark this chunk as resolved, goto next unresolvedMark this chunk as unresolvedMark this file as resolvedMark this file as unresolvedMatch TextMatch any of %d revisionsMax ChangesMax Diff SizeMax FilesMaximum number of changes to list on the changelog. Default: 10Maximum number of files to list per changeset. Default: 10Members of a set with no children in set.Menu BehaviourMercurial Re&solveMercurial UserMercurial command is still running. Are you sure you want to terminate?Mercurial keyring extension is enabled. Passwords will be stored in a platform-native secure method.Mercurial was unable to find an editor. Please configure Mercurial to use an editor installed on your system.MergeMerge - %sMerge - allow to merge with local changesMerge all pending dependenciesMerge caused file conflictsMerge changesetMerge from (other revision)Merge rejected patch chunks into %sMerge revision not specified or not foundMerge to (working directory)Merge using selected merge toolMerge with %sMerge with the other head of the current branchMerging...MessageMessage FontMessage Translation FailureMessage identifier to reply to, for threadingMethod to enable TLS when connecting to mail server. Default: noneMin Similarity: %d%%Minimum ProtocolMinimum SizeMissing informationModi&fy HistoryMonitor Repo ChangesMonitor working
                                                                                                              directory changesMoveMove all files leftMove all files rightMove applied patches into repository historyMove changes between working dir and patchMove selected chunks leftMove selected chunks rightMove selected file leftMove selected file rightMoved tag %s to changeset %s (from changeset %s)Multiple selection context menuMultiple sources chosenNameName associated with commits. The common format is:
                                                                                                              Full Name <email@example.com>Name or e-mail address of the person in charge of the repository.Named branch "%s" already exists, last used in revision %d New &GroupNew &WorkbenchNew Branch: New Commit PhaseNew GroupNew Name:New Patch BranchNew Repo SkeletonNew RepositoryNew ShelfNew Tool ...New file createdNew hookNew patch message:New patch queue nameNew shelf createdNextNext DiffNext diffNo DatesNo appropriate filesNo backup (-n/--nobackup)No branch changesNo chunks remainNo commitNo deletable chunksNo diff tool foundNo editor foundNo file changesNo files checkedNo files found for this operationNo files selectedNo files to findNo host specifiedNo host validation, but still encrypted (bad)No ignored files foundNo incoming changesets from %sNo issue link was found in the commit message. The commit message should contain an issue link. Configure this in the 'Issue Tracking' section of the settings.No items to displayNo matches foundNo merge conflicts, ready to commitNo merge conflicts, ready to commit or reviewNo modified files checkmarked for commitNo operation to performNo outgoing changesetsNo outgoing changesets to %sNo patch branch selectedNo pending Perforce changelistsNo remote repository URL or path setNo repository foundNo revision foundNo shell configuredNo transaction availableNo trash files foundNo unknown files foundNo username configuredNo valid default remote repository URL or path has been configured for this repository.

                                                                                                              Please type and save a remote repository path on the Sync widget.No visual diff tools were detectedNo visual editor configuredNone - simply pull changesetsNordicNormalise file line endings during and after patch to lf or crlf. Strict does no normalisation. Auto does per-file detection, and is the recommended setting. Default: strictNot a Mercurial subrepo, not previewableNot a head revision!Not a head, backout will create a new head!Nothing CommittedNothing changed.Nothing to importNothing to pushOKObsolete state:On repowidget, show forOne or more of the changesets that you are attempting to push involve the creation of a new branch. Do you want to create a new branch in the remote repository?Only consider deleted filesOnly files modified/created in this revisionOnly files modified/created since:Onto destinationOpenOpen &TerminalOpen S&ubrepositoryOpen a (non-mergable) file you wish to be lockedOpen a new named branchOpen a shell terminal in the repository rootOpen a shell terminal in the selected folderOpen advanced query editorOpen all repositories in new tabsOpen hgweb configOpen new tabs next to the current tabOpen parent folder of current file in the system file managerOpen shelve toolOpen the repository in a file browserOpen the repository in a new tabOpen the selected folder in the system file managerOpen the selected subrepositoryOperation aborted:

                                                                                                              %(arg0)s.Operation which is performed directly after a successful pull. update equates to pull --update, fetch equates to the fetch extension, rebase equates to pull --rebase, updateorrebase equates to pull -u --rebase. Default: noneOptional. Comma-separated list of host names that should bypass the proxyOptional. Method to use to send e-mail messages. If value is "smtp" (default), use SMTP (configured below). Otherwise, use as name of program to run that acts like sendmail (takes "-f" option for sender, list of recipients on command line, message on stdin). Normally, setting this to "sendmail" or "/usr/sbin/sendmail" is enough to use sendmail to send messages.Optional. PEM encoded client certificate chain file. Environment variables are expanded in the filename.Optional. PEM encoded client certificate key file. Environment variables are expanded in the filename.Optional. Password to authenticate with at the proxy serverOptional. Password to authenticate with. If not given, and the remote site requires basic or digest authentication, the user will be prompted for it.Optional. User name to authenticate with at the proxy serverOptional. Username to authenticate with. If not given, and the remote site requires basic or digest authentication, the user will be prompted for it. Environment variables are expanded in the username letting you do foo.username = $USER.OptionsOptions:Or use:Order the subrepos as in .hgsubOriginal Parent:Other revision informationOutgoing BookmarksOutgoing aborted, ret %dOutgoing to %s aborted, ret %dOutput FontOverlaysP&ull BookmarkP&ushPDF docs (*.pdf)PEM files (*.pem *.crt *.cer)PEM files (*.pem *.key)Pair selection context menuParent 1:Parent 2:Parent:ParentsPasswordPassword to authenticate to mail server withPassword to authenticate with review boardPassword:Paste &FilenamesPatch Branch ToolbarPatch EOLPatch Files (*.patch)Patch Name RequiredPatch QueuePatch Queue Actions ToolbarPatch date:Patch exportedPatch failed to applyPatch files (*.diff *.patch)Patch files already existPatch fold - %sPatch message:Patch name:Patch series description is sent in initial summary e-mail with [PATCH 0 of N] subject. It should describe the effects of the entire patch series. When e-mailing a bundle, these fields make up the message subject and body. Flags is a comma separated list of tags which are inserted into the message subject prefix.Patch user:Patch:Patch: %sPatches exportedPatches to foldPathPath Edit ToolbarPath to review board example "http://demo.reviewboard.org"Path to the directory where a system-wide cache of bfiles will be storedPath to the directory where a user's cache of largefiles will be storedPath:Paths in Repository Settings:PatternsPending Perforce Changelists - %sPerforce pending...Perforce:Perform a push before updating (-p/--push)PhasePlace Console in Doc&k AreaPlain, do not prepend Hg headerPlease configure a visual editor.Please enable and configure simplelockPlease enable the Gpg extension first.Please enable the Topic extension first.Please enter a usernamePlease enter commit messagePlease report this bug to our bug trackerPlease set a valid URL to continue.Please wait while committing merged files.Please wait while making backout.Please wait while the file is opened ...Please wait...PopPop allPortPort to connect to on mail server. Default: 25Port to listen onPort:Post &ReviewPost Pull BehaviourPost Pull: Post ReviewPost Selected to Review Board...Post to Re&view Board...Predecessors:Prepare to backoutPrepare to mergePreserve files beginning with .hgPrevPreviewPreview:Previous DiffPrevious diffPreviously the subrepository was at the following revision:ProjrcProxyPrune - %sPublish request immediatelyPullPull from %s aborted, ret %dPull from %s completedPull incoming changesPull incoming changes from %sPull incoming changes from selected URLPull incoming changesets into your repositoryPull subrepos from:Pull to here...Pulled remote bookmark: %sPulling from %s...PurgePurge Patch QueuePurposePus&hPush &AllPush After CommitPush After Commit:Push Requires SSLPush Selected &BranchPush allPush current branch (%s)Push outgoing changesPush outgoing changes to %sPush outgoing changes to selected URLPush to %s abortedPush to %s aborted, ret %dPush to %s completedPush to &HerePush to remote repository %s ?Push up to current revision (#%d)Push up to revision #%dPushed local bookmark: %sPushing to %s...QNewQRefreshQueryQuery about changesets affecting the selected filesQuitR&emove BookmarkR&epository Registry OptionsR&ollback/Undo...README not configuredRe&coverRe&move VersionedRe&move from RegistryRe&nameRe&name Patch...Re&name...Readonly*ReadyReady to purge.Ready, double click to lock or unlockRebaseRebase - %sRebase - rebase local commits above pulled changesRebase - use rebase extension (rebase is not active!)Rebase abortedRebase already in progressRebase changeset and descendantsRebase entire source branch (-b/--base)Rebase failedRebase generated merge conflicts that must be resolvedRebase is completeRebase unpublished onto Subversion head (override source, destination)Rebase...Recurse into subrepositoriesRecurse into subrepositories (--subrepos)Redundant authentication infoRefreshRefresh &Task TabRefresh ToolbarRefresh current patchRefresh current repositoryRefresh file listRefresh lock informationRefresh only the current task tabRefresh the Repository Registry listRefreshing locks...RegexpRegexp:Regular expression search patternReject incoming changesetsRelated Paths:ReloadReload FileRemo&ve Subrepository...Remote Update - %sRemote command:RemoveRemove &All Selected FilesRemove &Unmodified FilesRemove Files...Remove authentication data from URLRemove current working revision?Remove files from version controlRemove filter, show rootRemove patch directory ofRemove patches from queue?Remove selected deleted files?Remove the node and all its subnodes. Repositories are not deleted from disk.Remove the selected repository?Remove this subrepository from the current revisionRemoved local bookmark: %sRemoved remote bookmark: %sRemoved tag %sRenameRename - %sRename ErrorRename FileRename PatchRename Patch QueueRename file or directoryRename patch %s to:Rename patch queue '%s' toRename patch...Rename the entryReopen last closed tabReopen last closed tab groupReplaceReplace existing hook?Replace existing tag (-f/--force)Replace the existing patch files. Report only the first match per fileRepositoriesRepositoryRepository ErrorRepository ID:Repository RegistryRepository Registry updatedRepository SettingsRepository command still runningRepository is lockedRepository name to use in the web interface, and by TortoiseHg as a shorthand name. Default is the working directory.Repository not localRepository status and changesRequire confirmationResolve Conflicts - %sResolved conflictsRestart &BranchRestart Mer&geRestart Merge &withRestart all TortoiseHg applications for the following changes to take effect:Resuming rebase already in progressRevRevertRevert &All Files...Revert - %sRevert Files...Revert all file changes?Revert all files to this revisionRevert all working copy changes?Revert file changesRevert file(s) to contents at this revisionRevert files to local or other parent?Revert local file changes?Revert the following files?Revert to RevisionReverting all files will discard changes and leave affected files in a modified state.

                                                                                                              Are you sure you want to use revert?

                                                                                                              (use update to checkout another revision)Reverting p4 changelist...Review BoardReview ID:Review draft posted to %s Review published to %s RevisionRevision #%d (%s) was exported to:

                                                                                                              %s%s%sRevision &DetailsRevision SetRevision Set QueryRevision details context menuRevision has changed to:Revision is &BadRevision is &GoodRevision to Match:Revision:Revisions to Match:Right ToolbarRollback commit to revision %dRollback to revision %d (undo %s)?Run after a changegroup has been added via push, pull or unbundle, but before the transaction has been committed. Changegroup is visible to hook program. This lets you validate incoming changes before accepting them. Passed the ID of the first new changeset in $HG_NODE and last in $HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-zero status will cause the transaction to be rolled back and the push, pull or unbundle will fail. URL that was source of changes is in $HG_URL.Run after a changegroup has been added via push, pull or unbundle. ID of the first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL.Run after a changeset has been created but the transaction not yet committed. Changeset is visible to hook program. This lets you validate commit message and changes. Exit status 0 allows the commit to proceed. Non-zero status will cause the transaction to be rolled back. ID of changeset is in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and $HG_PARENT2.Run after a changeset has been created in the local repository. ID of the newly created changeset is in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and $HG_PARENT2.Run after a changeset has been pulled, pushed, or unbundled into the local repository. The ID of the newly arrived changeset is in $HG_NODE. URL that was source of changes came is in $HG_URL.Run after a pushkey (like a bookmark) is added to the repository. The key namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) is in $HG_OLD, and the new value is in $HG_NEW.Run after a tag is created. ID of tagged changeset is in $HG_NODE. Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in repository if $HG_LOCAL=0.Run after listing pushkeys (like bookmarks) in the repository. The key namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary containing the keys and values.Run after sending changes from local repository to another. ID of first changeset sent is in $HG_NODE. Source of operation is in $HG_SOURCE.Run after updating the working directory. Changeset ID of first new parent is in $HG_PARENT1. If merge, ID of second new parent is in $HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the update failed (e.g. because conflicts not resolved), $HG_ERROR=1.Run before a changegroup is added via push, pull or unbundle. Exit status 0 allows the changegroup to proceed. Non-zero status will cause the push, pull or unbundle to fail. URL from which changes will come is in $HG_URL.Run before a pushkey (like a bookmark) is added to the repository. Non-zero status will cause the key to be rejected. The key namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) is in $HG_OLD, and the new value is in $HG_NEW.Run before collecting changes to send from the local repository to another. Non-zero status will cause failure. This lets you prevent pull over HTTP or SSH. Also prevents against local pull, push (outbound) or bundle commands, but not effective, since you can just copy files instead then. Source of operation is in $HG_SOURCE. If "serve", operation is happening on behalf of remote SSH or HTTP repository. If "push", "pull" or "bundle", operation is happening on behalf of repository on same system.Run before creating a tag. Exit status 0 allows the tag to be created. Non-zero status will cause the tag to fail. ID of changeset to tag is in $HG_NODE. Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in repository if $HG_LOCAL=0.Run before listing pushkeys (like bookmarks) in the repository. Non-zero status will cause failure. The key namespace is in $HG_NAMESPACE.Run before starting a local commit. Exit status 0 allows the commit to proceed. Non-zero status will cause the commit to fail. Parent changeset IDs are in $HG_PARENT1 and $HG_PARENT2.Run before updating the working directory. Exit status 0 allows the update to proceed. Non-zero status will prevent the update. Changeset ID of first new parent is in $HG_PARENT1. If merge, ID of second new parent is in $HG_PARENT2.Running at %sRunning...RussianS&tatus BarS&ync ToolbarS&ynchroniseSMTP HostSMTP PasswordSMTP PortSMTP TLSSMTP UsernameSSH CommandSSL error: %sSSL: Server certificate verify failedSSL: unknown error %s:%sSa&ve Current Sync Paths on ExitSaveSave GlobalSave Open Repositories on E&xitSave PathSave changes before editing?Save current URL under an aliasSave error report toSave file as it appeared at this revisionSave file toSave hgweb configSave in RepoScan &Remote RepositoriesSearchSearch HistorySearch Selected TextSearch already in progressSearch commit message, user name, and names of changed files for string.Search file revisions for patternsSearch in All &HistorySearchingSearching...Second parent for all changesets in set, or the working directory.Secret MQ PatchesSecure HTTPS ConnectionSecuritySecurity: Select &AllSelect &NoneSelect Destination FileSelect Destination FolderSelect Directory containing patchesSelect RepositorySelect Source FileSelect Source FolderSelect Tool:Select User Certificate Chain FileSelect User Certificate Key FileSelect a GUI location to edit:Select an existing repository to add as a subrepoSelect branch of merge commitSelect bundle fileSelect destination repositorySelect if TortoiseHg will show a target combo in the sync toolbar.

                                                                                                              • auto: The default. Show the combo if more than one target configured.
                                                                                                              • always: Always show the combo.

                                                                                                              Default: autoSelect patch folderSelect patchesSelect post-pull operation for this repositorySelect repositorySelect repository directory to addSelect repository directory to openSelect source repositorySelect the initial revision that will be selected when opening a repository. You can select the "current" (i.e. the working directory parent), the current "tip" or the working directory ("workingdir"). Default: currentSelect the initial widget that will be shown when opening a repository. Default: revdetailsSelect the revisions that will be pushed by default, whenever you click the Push button.

                                                                                                              • all: The default. Push all changes in all branches.
                                                                                                              • branch: Push all changes in the current branch.
                                                                                                              • revision: Push the changes in the current branch up to the current revision.

                                                                                                              Default: allSelect the toolbar or menu to changeSelect when TortoiseHg will show a prompt to activate a bookmark when updating to a revision that has one or more bookmarks.

                                                                                                              • auto: Try to automatically activate bookmarks. When updating to a revision that has a single bookmark it will be activated automatically. Show a prompt if there is more than one bookmark on the revision that is being updated to.
                                                                                                              • prompt: The default. Show a prompt when updating to a revision that has one or more bookmarks.
                                                                                                              • never: Never show any prompt to activate any bookmarks.

                                                                                                              Default: promptSelect when the working directory status list will be refreshed:
                                                                                                              - auto: [default] let TortoiseHg decide when to refresh the working directory status list.
                                                                                                              TortoiseHg will refresh the status list whenever it performs an action that may potentially modify the working directory. This may miss any changes that happen outside of TortoiseHg's control;
                                                                                                              - always: in addition to the automatic updates above, also refresh the status list whenever the user clicks on the "working dir revision" or on the "Commit icon" on the workbench task bar;
                                                                                                              - alwayslocal: same as "always" but restricts forced refreshes to local repos.
                                                                                                              Default: autoSelect when your command will be runSelect whether you want to have a single workbench window. If you disable this setting you will get a new workbench window every time that you use the "Hg Workbench" command on the explorer context menu. Default: TrueSelected changeset pair not relatedSend &EmailSend changesets as Hg patchesSend single binary bundle, not patchesSending EmailServerServer Repository IDServersSet &Guards...Set AncestrySet Date:Set LogicSet username:Settin&gsSettingsSettings File:Several characters would be lost.Several icons are courtesy of the TortoiseSVN and Tango projectsSh&ow Repository RegistryShelfShelf clearedShelf deletedShelf: %sShellShelve - move local changes to a patchShelve ChangesShould new tabs be open next to the current tab? If False new tabs will be open after the last tab. Default: TrueShow &AuthorShow &DateShow &Patch QueueShow &PathsShow &RevisionShow About DialogueShow Conso&leShow DetailShow Family LineShow FunctionShow IconShow IssuesShow Issues...Show LogShow Output LogShow Revision &DetailsShow S&hort PathsShow Tas&k TabShow a full directory path of the repository in the dialogue title instead of just the root directory name. Default: FalseShow allShow all version-controlled files in tree viewShow changes from first parentShow changes from second parentShow files changed by this commitShow full authorname in Logview. If not enabled, only a short part, usually name without email is shown. Default: FalseShow indirect revision dependency on the revision graph when filtered by revset. Default: True

                                                                                                              Note: Calculating family line may be slow in some cases. This option is expected to be removed if the performance issue is solved.Show tabs along the side of the bottom half of each repo widget allowing one to switch task tabs without using the toolbar. Default: offShow tags at start of commit message.Show the history of the selected fileShow which function each change is in. Default: FalseShow/Hide hidden changesetsSig&n...Sign - %sSign even if the sigfile is modified (-f/--force)Signature has been addedSimplelockSimplelock extension not enabledSingle Workbench WindowSizeSize (KB)Skip final confirmation page, close after commit.Skipping %s, unable to readSome of the files that you have selected are of a size over 10 MB. You may make more efficient use of disk space by adding these files as largefiles, which will store only the most recent revision of each file in your local repository, with older revisions available on the server. Do you wish to add these files as largefiles?Sort by &NameSort by &PathSort set by keys. The default sort order is ascending, specify a key as "-key" to sort in descending order.Sort the group by full pathSort the group by short nameSourceSource does not exist.Source:South-Eastern EuropeSouthern EuropeSpace separated list of branch names and colours of the form branch:#XXXXXX. Spaces and colons in the branch name must be escaped using a backslash (\). Likewise some other characters can be escaped in this way, e.g. \u0040 will be decoded to the @ character, and \n to a linefeed. Default: None (leave blank)Space separated list of shell operations you would like to be performed immediately, without user interaction. Commands are "add remove revert forget". Default: None (leave blank)Space separated list of tags that will not be shown. Useful example: Specify "qbase qparent qtip" to hide the standard tags inserted by the Mercurial Queues Extension. Default: None (leave blank)Specify name of new shelfSpecify the command to launch your preferred terminal shell application. If the value includes the string %(reponame)s, the name of the repository will be substituted in place of %(reponame)s. Similarly, %(root)s will be the full path to the repository. (restart needed)
                                                                                                              Default, Windows: cmd.exe /K title %(reponame)s
                                                                                                              Default, OS X: not set
                                                                                                              Default, other: xterm -T "%(reponame)s"Specify the number of spaces that tabs expand to in various TortoiseHg windows. Default: 8Specify the path to GPG. Default: gpgSpecify the target filesystem where TortoiseHg monitors changes. Default: localonlySpecify visual diff tool, as described in the [merge-tools] section of your Mercurial configuration files. If left unspecified TortoiseHg will use the selected merge tool. Failing that it uses the first applicable tool it finds.Specify visual editor, as described in the [editor-tools] section of your Mercurial configuration files. If left unspecified, TortoiseHg will use the first applicable tool it finds.Specify which task buttons you want to show on the task toolbar and in which order.
                                                                                                              Type a list of the task button names. Add separators by putting "|" between task button names.
                                                                                                              Valid names are: log commit sync grep and pbranch.
                                                                                                              Default: log commit grep pbranch | syncSpecify your preferred user interface language (restart needed)StartStart a new patch branchStart revision:Start web server for this repositoryStatStatusStatus File List ToolbarStatus:StopStop current operationStoppedStrikeStrip - %sStrip:StripesStripping Mercurial header removes username and parent information. Only useful if recipient is not using Mercurial (and does not like to see the headers).StyleSubmenu items:Subject:Submitting p4 changelist...Subrepo '%s' has a non trivial default sync URL:

                                                                                                              %s

                                                                                                              Replace it with the following URL?:

                                                                                                              %sSubrepo added to .hgsub fileSubrepo created and set to initial revision.Subrepo initialised to revision:Subrepo may be damaged or inaccessible.Subrepo removed from repository.Subrepo state is:Subrepo statesSubrepo was not changed.Subrepository already existsSubrepository not foundSubrepository not found in the working directory.Subrepository removed from .hgsubSubversion:SuccessSuccessors:Suggested length of commit message lines. A red vertical line will mark this length. CTRL-E will reflow the current paragraph to the specified line length. Default: 80Summary (first description line)Summary Line LengthSummary:Swap source and destinationSyncSync BookmarksSynchroniseSynchronise with dragged repositorySynchronise with remote repositorySyntax HighlightingSystem CacheTLS 1.0TLS 1.1TLS 1.2Tab WidthTab cannot exitTag '%s' has been addedTag '%s' has been movedTag '%s' has been removedTag - %sTag:Tagged:Tags:Take &OtherTar archive compressed using bzip2Tar archive compressed using gzipTar archivesTarget ComboTarget GroupsTarget PeopleTarget:Task TabsTask Toolbar OrderTaskbarTemporarily disable configured HTTP proxyTemporary files are removed when this dialogue is closedTerminated by userTest this revision and report findings. (good/bad/skip)Text Translation FailureText files (*.txt)Textual description of the repository's purpose or contents.ThaiThe .hgsub file already contains the line:

                                                                                                              %sThe changes from revision %s and all unmerged parents will be discarded. Are you sure this is what you want to do?The command "%s" could not be executed.The command "%s" failed (code %d).The command that will be executed. To execute a Mercurial command use "hg" (rather than "hg.exe") as the executable command. You can use several {VARIABLES} to compose your command. Common variables: - {ROOT}: The path to the current repository root. - {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id hashes respectively formatted as a revset expression. - {SELECTEDFILES}: The list of files selected by the user on the revision details file list. - {FILES}: The list of files touched by the selected revisions. - {ALLFILES}: All the files tracked by Mercurial on the selected revisions. Pair selection variables: - {REV_A} / {REVID_A}: the first selected revision number / hexadecimal revision id hash respectively. - {REV_B} / {REVID_B}: the second selected revision number / hexadecimal revision id hash respectively. The command that will be executed. To execute a python function prepend the command with "python:". The default repository id for this repo on the review board serverThe destination "%s" already exists as a file!The destination "%s" already exists as a folder!The destination must be within the repository tree.The directory "%s" is not empty! Do you want to overwrite it?The directory where the command will be executed. If this is not set, the root of the current repository will be used instead. You can use the same {VARIABLES} as on the "Command" setting. The editor used by Mercurial command line commands to collect multiline input from the user. Most notably, commit messages.The exception error message was:

                                                                                                              %s

                                                                                                              The file "%s" already exists! Do you want to overwrite it?The following error message was returned: "%s" Please check that the command path is valid and that it is a valid applicationThe following error message was returned: %sThe hook name cannot contain any spaces, tabs or '=' characters.The hook name. It cannot contain spaces.The maximum size file (in KB) that TortoiseHg will show changes for in the changelog, status, and commit windows. A value of zero implies no limit. Default: 1024 (1MB)The named bookmark or all bookmarks.The named tag or all tags.The number of revisions to read and display in the changelog viewer in a single batch. Default: 500The phase of new commits. Default: draftThe selected command is emptyThe selected folder:

                                                                                                              %s

                                                                                                              is not inside the target repository.

                                                                                                              This may be allowed but is greatly discouraged.
                                                                                                              If you want to add a non trivial subrepository mapping you must manually edit the .hgsub fileThe selected repository:

                                                                                                              %s

                                                                                                              cannot be open!The selected repository:

                                                                                                              %s

                                                                                                              is already a subrepository of:

                                                                                                              %s

                                                                                                              as: "%s"The selected revision (%s) has a bookmark on it called "%s".

                                                                                                              Do you want to activate it?
                                                                                                              You can disable this prompt by configuring Settings/Workbench/Activate BookmarksThe selected revision (%s) has %d bookmarks on it.

                                                                                                              Select the bookmark that you want to activate and click OK.

                                                                                                              Click Cancel if you don't want to activate any of them.

                                                                                                              You can disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                                                                              The selected revision (rev #%d) cannot be imported because it is not a descendant of qparent (rev #%d)The selected subrepo:

                                                                                                              %s

                                                                                                              has been added to the .hgsub file of the repository:

                                                                                                              %s

                                                                                                              Remember that in order to finish adding the subrepo you must still commit the changes to the .hgsub file in order to confirm the addition of the subrepo.The selected subrepository has been removed from the .hgsub file.

                                                                                                              Remember that you must commit this .hgsub change in order to complete the removal of the subrepository!The selected subrepository was not found on the .hgsub file.

                                                                                                              Perhaps it has already been removed?The set of all parents for all changesets in set.The source must be within the repository tree.The subrepository is dirty.The tool icon. You can use any built-in TortoiseHg icon by setting this value to a valid TortoiseHg icon name (e.g. clone, add, remove, sync, thg-logo, hg-update, etc). You can also set this value to the absolute path to any icon on your file system.The tool label, which is what will be shown on the repowidget context menu. If no label is set, the tool name will be used as the tool label. If no tooltip is set, the label will be used as the tooltip as well.The tool name cannot have any spaces in it.The tool name. It cannot contain spaces.The tooltip that will be shown on the tool button. This is only shown when the tool button is shown on the workbench toolbar.The working directory is already merged. Continue or discard existing merge.There are existing patch files for %d revisions (%s) in the selected location (%s). There are merge conflicts to be resolvedThere are no configured sync paths. Open the Synchronise tab to configure them.There are no conflicting file merges.There are no file changes to viewThere are no files that may have been renamedThere is already an existing folder with that same name.There is an existing %s.%s hook. Do you want to replace it?There is no rollback transaction availableThg - TortoiseHg's GUI tools for Mercurial SCM (Hg) This appears to be a binary file.This error will not be shown again until you restart the workbenchThree-way Merge ToolTitleToTo finish merging, you must commit the working directory. To cancel the merge you can update to one of the merge parent revisions.To graft destinationTo rebase destinationTo:Toggle display of text search barToggle filtering of non-matched changesetsToggle graft relations visibilityToggle parent to be used as the base revisionTolerate non-conflicting local changes (--keep-changes)Too many rows selected for menuTool &ResolveTool labelTool launch failureTool nameToolsTools shown on selected locationTooltipTop menu items:Top&ic...Topic '%s' does not existTopic '%s' has been addedTopic '%s' has been removedTopic '%s' has been renamed to %sTopic - %sTopic:TortoiseHg Bookmark SyncTortoiseHg Bug ReportTortoiseHg Command DialogTortoiseHg CommitTortoiseHg Dialogues (version %s), Mercurial (version %s) TortoiseHg ErrorTortoiseHg Lock Tool - %sTortoiseHg New Shelf NameTortoiseHg Overlay Icon ServerTortoiseHg PromptTortoiseHg SearchTortoiseHg SettingsTortoiseHg Shelve - %sTortoiseHg Web ServerTortoiseHg WorkbenchTortoiseHg has created a new .hgignore file. Would you like to add this file to the source code control repository?TortoiseHg: %sTraditional ChineseTransplant:Trigger revision set queryTry refreshing your repository.TurkishTypeU&nbundle...UI LanguageURLURLError: %sUkrainianUnable to backoutUnable to compress historyUnable to create a Mercurial.ini fileUnable to create a config fileUnable to delete %d file or folderUnable to delete %d files or foldersUnable to determine pending changesetsUnable to determine working copy revision Unable to find changesetUnable to mergeUnable to merge chunksUnable to parse p4pending outputUnable to read fileUnable to read repository statusUnable to removeUnable to remove URLUnable to remove file %s, permission deniedUnable to save after commit pushUnable to save an URLUnable to save authenticationUnable to save auto include listUnable to save post pull operationUnable to save recurse in subrepos.Unable to save usernameUnable to show subrepository filesUnable to start the following command:Unable to translate input to local encoding.Unable to translate message to local encoding. Consider setting HGENCODING environment variable. Replace untranslatable characters with "?"? Unable to update repository nameUnable to write .hgignore fileUnable to write configuration fileUnable to write diff fileUnable to write fileUnapply all patchesUnapply one patchUnbundleUncheckUncheck all filesUncheck to consider all revisioned files for copy sourcesUncommitted merge - please select a parent revisionUncompressed tar archiveUncompressed zip archiveUnderlineUndo close other tabsUndo close tabUndo last commit?Undo last transaction?Undo most recent commit (%d), preserving file changes?UnicodeUnified ChineseUnknown revision!Unlock of %s failed, retryUnlock of %s successfulUnlocking %sUnresolved conflictsUnresolved conflicts remain. Are you sure?Unsaved changes will be lost. Do you want to reload?Unsupported repository type (%s)UnversionedUpdateUpdate - %sUpdate - pull, then try to updateUpdate IconsUpdate ReviewUpdate icons for this repositoryUpdate on incomingUpdate or create a path alias called '%s' on all subrepos, using this URL as the base URL, appending the local relative subrepo path to itUpdate subrepo pathsUpdate the fields of this existing requestUpdate to:Update working directoryUpdate working directory or switch revisionsUpdate...UpdateOrRebase - pull, then try to update or rebaseUpdateOrRebase - use rebase extension (rebase is not active!)Updating repository registryUpgrading to a more recent TortoiseHg is recommended.Use English backout messageUse English commit messageUse alternative graph layouter for large repositories. Default: False

                                                                                                              Note: This layouter colors edges using branch information and does not display graft edges, regardless of whether they are requested or not.Use compact viewUse current dateUse custom commit message:Use extended (git) patch formatUse git extended diff header format. Default: FalseUse largefilesUse my user name instead of graft committer user nameUse optimised graph layouterUse proxy serverUse pull protocol to copy metadataUserUser AuthenticationUser CacheUser Certificate ChainUser Certificate KeyUser authentication data should be associated with the hostname using the security dialog.User name to authenticate with review boardUser:UsernameUsername to authenticate to mail server withVerify backout revision and ensure your working directory is clean.Verify merge targets and ensure your working directory is clean.Verify with Certificate Authority certificates (best)Verify with stored host fingerprint (good)Vi&ew FileVietnameseView File atView O&therView change as unified diff outputView change history in repositoryView change history of selected filesView change in context of fileView changes to current in external diff toolView changes using GUI diff toolView file as it appeared at this revisionView file changes in external diff toolView the repository's settingsVisual DiffVisual Diff ToolVisual Diff...Visual Diffs - Visual EditorVisual diff between resolved file and first parentVisual diff between resolved file and second parentVisual diff...Visual diffs are not supported for files in subrepositories. They will not be shown.Visual three-way diffWarningWarning: affects all Tortoises, logoff required after changeWas renamed fromWeb ServerWebconfWestern EuropeWhat do you want to do? When committing, require that a reference to an issue be specified. If enabled, the regex configured in 'Issue Regex' must find a match in the commit message.When enabled, automatically show the Output Log when the command is run. Default: False.When running from the command line, fork a background process to run graphical dialogues. This setting is ignored when TortoiseHg runs as an OS X application bundle. Default: TrueWhen set to 'auto', mq will automatically use git patches when required to avoid losing changes to file modes, copy records or binary files. If set to 'keep', mq will obey the [diff] section configuration while preserving existing git patches upon qrefresh. If set to 'yes' or 'no', mq will override the [diff] section and always generate git or regular patches, possibly losing data in the second case. Default: autoWhen to ask the user to confirm the update of the local "projrc" configuration file when the remote projrc file changes. Possible values are:

                                                                                                              • always: [default] Always show a confirmation prompt before updating the local .hg/projrc file.
                                                                                                              • first: Show a confirmation dialog when the repository is cloned or when a remote projrc file is found for the first time.
                                                                                                              • never: Update the local .hg/projrc file automatically, without requiring any user confirmation.
                                                                                                              Whether Git subrepositories are allowed in the working directory. Default: False

                                                                                                              See the security note before enabling Git subrepos.Whether Mercurial subrepositories are allowed in the working directory. Default: TrueWhether Subversion subrepositories are allowed in the working directory. Default: False

                                                                                                              See the security note before enabling Subversion subrepos.Whether to allow pushing to the repository. If empty or not set, push is not allowed. If the special value "*", any remote user can push, including unauthenticated users. Otherwise, the remote user must have been authenticated, and the authenticated user name must be present in this list (separated by whitespace or ","). The contents of the allow_push list are examined after the deny_push list.Whether to deny pushing to the repository. If empty or not set, push is not denied. If the special value "*", all remote users are denied push. Otherwise, unauthenticated users are all denied, and any authenticated user name present in this list (separated by whitespace or ",") is also denied. The contents of the deny_push list are examined before the allow_push list.Whether to require that inbound pushes be transported over SSL to prevent password sniffing.Which template map style to useWhite&spaceWord docs (*.doc *.docx)Work on patch queue (--mq)WorkbenchWorkbench Log ColumnsWorkbench custom toolbarWorking CopyWorking DirectoryWorking Directory (merged)Working directoryWorking directory is not clean! View changes...Working directory statusWrap searchWrite bundleWrite diff fileWrite patch series (bundle) descriptionYou are trying to move the phase of revision %d backwards, from "%s" to "%s". However, "%s" is a lower phase level than "%s". Moving the phase backwards is not recommended. For example, it may result in having multiple heads if you modify a revision that you have already pushed to a server. Please be careful!You can change the icon set from TortoiseSVN's SettingsYou can only release your own locksYou can visit our site hereYou cannot merge a revision with itselfYou have authentication info configured for this host and inside this URL. Remove authentication info from this URL?You have marked all rejected patch chunks as resolved yet you have not modified the file on the edit panel. This probably means that no code from any of the rejected patch chunks made it into the file. Are you sure that you want to leave the file as is and consider all the rejected patch chunks as resolved? Doing so may delete them from a shelve, for example, which would mean that you would lose them forever! Click Yes to accept the file as is or No to continue resolving the rejected patch chunks.You have multiple renames selected for destination file: %s. Aborting!You have selected one or more files that have been modified. By default, these files will not be removed. What would you like to do?You likely need to refresh this applicationYou may continue or start the graftYou may continue the compressYou may continue the graftYou may continue the rebaseYou must enter a patch nameYou must identify yourself to MercurialYou must provide revisions to graftYou must provide source and dest argumentsYou must provide the path to a fileYou must set a command to run.You must set a tool name.You must set a valid hook type.Your TortoiseHg is up to date.Your current working revision (%d) will be removed by this rollback, leaving uncommitted changes. Continue?Zip archive compressed using deflateZip archives[--after PATCH] PATCH...[--insecure] [SOURCE][Code: %d][WARNING] Incomplete changed subrepository. Update to this revision to pull it.[WARNING] Incomplete subrepo. Update to this revision to pull it.[WARNING] Invalid subrepo revision ID: %s [WARNING] Missing changed subrepository. Update to this revision to clone it.[WARNING] Missing subrepo. Update to this revision to clone it.[command completed successfully %s][command interrupted %s][command returned code %d %%s][command terminated by user %s][non-existant][original][working copy]a revision to posta revision to sendabort: abort: %s abort: %s! Commitadd diffstat output to messagesaddedall revisions converted from subversionalways fork GUI processattachbasic commands: bodybookmark: branch: bundle file to previewcan not read file "%s". Ignored. cannot move applied patchescannot move into applied patchescannot specify both -k/--query and filenameschangeset %d:%schangeset to view in diff toolchangeset which represents converted svn revisionchangeset: %schangeset: %s (not found on subrepository)cleanclone only the specified branchAgeAuthorBranchChangesConverted FromDescriptionFilenameGit CommitGraphLatest tagsLocal TimeNodePhaseRevTagsUTC Timecommand parse error: %sCommitcorrupted command result: %rdefaultdiffstatdiscard uncommitted changes (no backup)display help and exitdo not back up stripped revisionsdo not commit the sigfile after signingdo not fork GUI processdo not modify working copy during stripdo not verify server certificate (ignoring web.cacerts config)enable additional outputenable debugging outputeol is incompatible with win32texterror while running command exec mode has been setexec mode has been unsetfailed to encode command: %sfailed to encode input: %sfailed to fork GUI process: %s failed to start command field to give initial focusfile has been deleted, refreshfile has been modified, refreshfilesAllNonefilling (%d)filterglobal options:grep: %s grep: invalid match pattern: %s hggit packaged with thghgsubversion is incompatible with perfarcehgsubversion packaged with thghint:hint: historyhttps://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings.html#tsvn-dug-settings-icon-setignore case during searchignoredimport to the patch queue (MQ)in the futureinclude the specified changesetinitial search patterninlineinotify is not supported on this platforminvalid "hello" message: %rinvalid argumentsinvalid line number: %sinvalid patch position specifiedkeep original branch nameskeep original changesetslaunch visual diff toollist of commands: locallsprof not available - install from http://codespeak.net/svn/user/arigo/hack/misc/lsprof/make the signature localmake the tag localmerge with old dirstate parent after backoutmethodmissingmodifiedmove after the specified patchmust be specified 'type' in stylemust be specified repositoryname of the hgweb config file (DEPRECATED)name of the hgweb config file (serve more than one repository)needs merge of %i heads needs merge with %s needs merge with %s (through %s) needs update of diff base to tip of %s no "runcommand" capabilityno command specifiedno commands defined no guardsno matches found: %sno outgoing changesetsno outgoing changesets in current branch (%s) / %d in totalno outgoing changesets up to current revision (#%d) / %d in totalno outgoing changesets up to revision #%d / %d in totalno repo at no revisions specifiednotify the shell for paths givennownull revision (i.e. remove file(s))only one new bookmark name allowedonly one new topic name allowedopen a new workbench windowopen the bookmark sync windowopen to lineopen...option --config may not be abbreviated!options: parent to choose when backing out mergepassword: patch %s not in seriesperfarce is incompatible with hgsubversionprint command execution profileprint licenceprocess exited unexpectedly with code %dpull: %s push: %sread file list from fileread file list from file encoding utf-8rebase from the specified changesetrebase onto the specified changesetrecord datecode as commit daterecord user as committerremove a tagremove the status cacheremove working directoryremovedreplace existing tagrepository %s not foundrepository root directory or symbolic path namerequires a single filenamerev: %d (%s)reviewboard extension not enabledrevisionrevision %d's first parent (i.e. revision %d)revision %d's second parent (i.e. revision %d)revision to annotaterevision to archiverevision to backoutrevision to displayrevision to mergerevision to striprevision to tagrevision to updaterevision, tag or branch to check outrevisions %d:%s to %d:%srevisions to graftrevisions to prunerevisions to view in diff toolsearch for a given text or revsetsee %(url)sselect the specified revisionselected filessend patches as attachmentssend patches as inline attachmentssend patches as part of the email bodyset/override config option (use 'section.name=value')show files without changesshow ignored filesshow the contents of the status cache (no update)side-by-side comparison of revisionssign even if the sigfile is modifiedstart debuggerCommitMQ ActionRollbackstatussubreposuppress outputsync command already runningCommitConsole logPatch BranchRevision detailsSearchSynchronisethe clone will include an empty working copy (only a repository)the key id to sign withthe revision to showthg %s: %s thg aboutthg add [FILE]...thg annotatethg archivethg backout [OPTION]... [[-r] REV]thg bisectthg bookmarks [-r REV] [NAME]thg clone [OPTION]... [SOURCE] [DEST]thg commit [OPTIONS] [FILE]...thg debugblockmatcherthg debugbugreport [TEXT]thg debugconsolethg debuglighthgthg debugruncommand -- COMMAND [ARGUMENT]...thg drag_copy SOURCE... DESTthg drag_move SOURCE... DESTthg email [REVS]thg filelog [OPTION]... FILEthg forget [FILE]...thg graft [-r] REV...thg grepthg guessthg help [COMMAND]thg hgignore [FILE]thg import [OPTION] [SOURCE]...thg init [DEST]thg lockthg log [OPTIONS] [FILE]thg manifest [-r REV] [FILE]thg merge [[-r] REV]thg postreview [-r] REV...thg prune [-r] REV...thg purgethg rebase -s REV -d REV [--keep]thg rejects [FILE]thg remove [FILE]...thg rename [SOURCE] [DEST]thg repoconfigthg resolvethg revdetails [-r REV]thg revert [FILE]...thg rupdate [[-r] REV]thg serve [--web-conf FILE]thg shellconfigthg shelvethg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]thg status [OPTIONS] [FILE]thg strip [-k] [-f] [-n] [[-r] REV]thg sync [OPTION]... [PEER]thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]thg thgstatus [OPTION]thg topics [-r REV] [NAME]thg update [-C] [[-r] REV]thg userconfigthg version [OPTION]thg: %s thg: command '%s' is ambiguous: %s thg: unknown command '%s' timed out waiting for messagetimed out while reading: %r...unexpected response on required channel %runknownunknown patch to move specifiedunknown revision!unrecognised profiling format '%s' - Ignored unrecognised response: %sunsupported URL: %supdate all repos in current diruse "thg -v help %s" to show global optionsuse "thg -v help%s" to show aliases and global optionsuse "thg help" for the full list of commandsuse "thg help" for the full list of commands or "thg -v" for detailsuse as commit messageuse only one form to specify the revisionuse pull protocol to copy metadatause uncompressed transfer (fast over LAN)version %swait until the second ticks overwill be closedwin32ill: cannot create window for messageswin32ill: interrupted while stopping message loop win32ill: unsupported platform: %s win32text is incompatible with eolCommitwith Mercurial-%s, Python-%s, PyQt-%s, Qt-%sworking changesClean&None././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/es/0000755000000000000000000000000014742203610014162 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1234145 tortoisehg-6.9/locale/es/LC_MESSAGES/0000755000000000000000000000000014742203610015747 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033566.0 tortoisehg-6.9/locale/es/LC_MESSAGES/tortoisehg.mo0000644000000000000000000010227214742203536020506 0ustar00rootrootDll&m     %,3<ELRVls| $7/ 5 ; L S ] a n    0  !! %!2!B!Q!a!4s!!8! !"""7"T"q"&" " "" """ # # ## ##+#$$"$+$ C$O$V$ \$g$z$$$?$C$="%1`% %%% %%% &&/& G&T&g&y&&&& && &&&&'!'8'=' C' Q' ['g'l' ~'''''*' (/(-O(}(A('(()%) *)4)!G)i))C))))) **** "* /*;*Y*b* h*u*~****** **o++ ++ + +++I+,B2,cu,M,'-:-K- ^-j- }- -- ----. ..... =.!J. l. x. .G..).-/6/;/@@/ ///////!/0*0>0V0j00+000,0 1I!1kk1;2<3P3X3a3j3r3z3,3 3333!344(64_4n4.s44444444445 5'5/5!75Y5`5p5w5!5555 55 56686<6C6S6g6z6 6 6 6 6 66 66 6 677"797Q7k7}77777&7"8+8 =8 I8 W8a85j88888$888889999 999 9#9": ;:E:N:S:"Y:!|: :::6::;<;.U;0;>;;;0<c<!==_=b=f=z=8==== >>>&>6>+G>"s>>2>>>?!?3? :? F? S? t?? ?5???@3%@Y@"j@@@@,@C@!A%4A ZA {AA AA AArFC\DE6EHEcE|E$E E E#EEF 2F=FLF TF`FuFFFFF!FFFG!G*G@GXGqGGGGGG H (H3HCHKHRHnHHHHHHHH HH H H I(I;ITIsIIII/IIJ&J"BJ1eJJJJ*JJJK""K EK PK+qK#K,KKK@M N&N 9N CNPN _NlN tN"NN N NNN N NNNNNO O #O -O7OPFP)WP+PPPBPPQ"Q3Q:Q TQaQuQQQ@QQ:R LRXRhRlR!RR"R,R S S(S-S@SFS YSeSST TT2'TZT]T7aTTTTT TT TTUKU>aUHU7U!V 3V!=V _V&kVVVVVWW*WCWZWoW WWWWWWWWX(X.X 5X CX QX^XfX}XXX XX2X6Y%RY3xYYHY+Z$1ZVZgZnZ}Z#Z&ZZLZ 3[A[G[Y[v[[ [[[[[[[[ \\1\9\M\S\Z\ u\\0]B]K]d] v]]]]O](]9!^[^]^N_&h____ _ __`#`3`O`l`u`{``` `/`aa$aJ6aa)aBaaaPb Ub cbnbbbbb/bc+cIc'gcc!c:c dd3dRdrpddD{fJf g gg7g>g Eg=Qg gggg%gg2h/Dh th~h.hhh hhhi ii i $i0iHi Qi*^iiiii+ii j#j2jDj cjoj jjjj$jj k k k -k;k LkXkakxkkkkk)kl!l@lXl:ql$ll#l5mImYmumm m mBmmmn n)nFnMnTn\ncn o'o>o FoRopo yoo"oo o o o op ;p HpRpBbppp3p' q)5q@_q6q}qAUrrrr&rr9r5s-Is wssssss6s3tJtMgttt!t u $u/u?u(Qu zu'u u6u)uv*3vB^vv8vvvvCw_Uw+w6w)x BxNx ]x kx wxxIzL2|||| |!|"} 4} A}"O}r}%} }} }} },}!~*~3~H~(O~3x~~!~~~~ (Ff'( 'E+[ ؀  0$L,q(ǁ : D,[%&:Ղ%,*< gs+* 4&E+l! Caught keyboard interrupt, aborting. aliases: %s (default: %s) filtered%s (hint: %s)%s (pending)%s (submitted)%s : %s%s patches%s repository settings&Add&Archive&Cancel&Clone&Close&Discard&License&Local&Move&No&No (discard changes)&Other&Refresh&Remove&Run&Yes(no help text available)= Working Directory Parent =A bookmark named "%s" already existsA new version of TortoiseHg (%s) is ready for download!AbortAboutAbout TortoiseHgAcceptActivate:AddAdd Files...Add files to version controlAdded tag %s for changeset %sAge:AliasAll conflicting files will be marked unresolved.All files (*)Allow PushApp&ly FormatAppendApply all patchesArchive - %sArchive FormatsArchive types:Author ColoringAuto Exclude ListAutomatically resolve merge conflicts where possibleBacked out changeset: Backing out a parent revision is a single step operationBackout - %sBackout revisionBccBookmark '%s' does not existBookmark '%s' has been addedBookmark '%s' has been movedBookmark '%s' has been removedBookmark '%s' has been renamed to '%s'Bookmark - %sBookmark:BranchBranch ColorsBranch:Browse Directory...Browse...Bundles store complete changesets in binary form. Upstream users can pull from them. This is the safest way to send changes to recipient Mercurial users.Bypass ListBzip2 tar archivesCLI EditorCancelCannot backout change on a different branchCcCc:Changes take effect on next commitChecking for updates...Checking...Child:CleanClone - %sClone to revision:Clone...CloseClose current branchComma separated list of archive formats allowed for downloadingComma-separated list of blind carbon copy recipient email addressesComma-separated list of carbon copy recipient email addressesComma-separated list of recipient email addressesCommand ErrorCommitCommit changes in repositoryCommit...Configure repository settingsConfigure user wide settingsConfirm Branch ChangeConfirm DiscardConfirm Discard MessageConfirm ExitConfirm New BranchConfirm OverwriteConfirm RemoveConfirm RevertConfirm UpdateContactContext MenuCopyCopy messageCreateCreate Repository HereCreate a new repositoryCreate clone here from sourceCurrent local revisionDateDate:Dead BranchesDeny PushDescriptionDestDestination path:Destination:Detect Copies/Renames in %sDetect renames and copiesDirectory diffDirectory of filesDiscard - discard local changes, no backupDiscard current backout message?Discard current commit message?Discard local changes, no backup (-C/--clean)DnD SynchronizeDo not include modification dates in diff headers. Default: FalseDo not update the new working directoryDo not verify host certificateDuplicate NameEditEdit FileEdit Ignore FilterEdit current file in working copyEdit repository ignore filterEmailEmail address to use in the "From" header and for the SMTP envelopeEncodingErrorError encountered.Error writing fileExcludes:ExitFailed!FileFile HistoryFile StatusFile or diffs not displayed: FilenameFilesFind RenamesFinishedFollow copies and renamesForgetForget Files...FromFrom:Full Path TitleGit FormatGit patches can describe binary files, copies, and permission changes, but recipients may not be able to use them if they are not using git or Mercurial.Global SettingsGraphGuess RenamesGzip tar archivesHg command:Hide TagsHighlight IconHostHost name and (optional) port of proxy server, for example "myproxy:8000"Host name of mail serverHostname the sender can use to identify itself to the mail server.How many lines a "zebra stripe" should span in multiline output. Default is 1; set to 0 to disable.If you still have trouble, please file a bug report.Ignore Blank LinesIgnore WS AmountIgnore White SpaceIgnore caseIgnore filter - %sImport - %sIn-Reply-To:Include patch queueIncludes:Iniparse package not foundInvalid glob expressionInvalid regexp expressionLicenseLineLocal HostnameLocal disks onlyLog Batch SizeLong SummaryManually resolve rejected chunks?Max ChangesMax Diff SizeMax FilesMercurial command is still running. Are you sure you want to terminate?MergeMerge - allow to merge with local changesMessage identifier to reply to, for threadingMoveNameName or email address of the person in charge of the repository.New Name:No DatesNo appropriate filesNo backup (-n/--nobackup)No branch changesNo chunks remainNo file changesNo files found for this operationNo files selectedNo items to displayNo operation to performNo repository foundNo visual editor configuredNot a head revision!Not a head, backout will create a new head!Nothing to importOKOnly files modified/created in this revisionOpen a new named branchOptional. Comma-separated list of host names that should bypass the proxyOptional. Method to use to send email messages. If value is "smtp" (default), use SMTP (configured below). Otherwise, use as name of program to run that acts like sendmail (takes "-f" option for sender, list of recipients on command line, message on stdin). Normally, setting this to "sendmail" or "/usr/sbin/sendmail" is enough to use sendmail to send messages.Optional. Password to authenticate with at the proxy serverOptional. User name to authenticate with at the proxy serverOptionsOptions:OverlaysParent:ParentsPasswordPassword to authenticate to mail server withPatch EOLPatch failed to applyPatch:PatternsPlease configure a visual editor.Please enter a usernamePlease enter commit messagePlease wait while the file is opened ...Please wait...PortPort to connect to on mail server. Default: 25Port to listen onPrepare to backoutPreview:ProxyPush Requires SSLQNewQRefreshQuitRe&nameRebaseRecurse into subrepositoriesRefreshRegexp:Regular expression search patternReloadRemote command:RemoveRemove Files...Remove files from version controlRemove filter, show rootRemoved tag %sRenameRename FileRename file or directoryRepositoryRepository SettingsRepository status & changesRevRevertRevert Files...Revert file changesRevert to RevisionRevisionRevision:Running...SMTP HostSMTP PasswordSMTP PortSMTP TLSSMTP UsernameSave error report toSave file toSave in RepoSearchSearch HistorySearch file revisions for patternsSelect Destination FileSelect Destination FolderSelect RepositorySelect Source FolderSelect branch of merge commitSelect destination repositorySelect patch folderSelect source repositorySend single binary bundle, not patchesSettingsShow About DialogShow DetailShow FunctionShow IconShow allShow which function each change is in. Default: FalseSourceSource:StartStart revision:Start web server for this repositoryStatStatusStopStripesStripping Mercurial header removes username and parent information. Only useful if recipient is not using Mercurial (and does not like to see the headers).StyleSub menu items:Subject:Subversion:Summary Line LengthSummary:SynchronizeSynchronize with dragged repositorySynchronize with remote repositoryTab WidthTag - %sTag:Tags:Tar archive compressed using bzip2Tar archive compressed using gzipTar archivesTarget:TaskbarTemporary files are removed when this dialog is closedTerminated by userText files (*.txt)Textual description of the repository's purpose or contents.The destination "%s" already exists as a file!The destination "%s" already exists as a folder!The directory "%s" is not empty! Do you want to overwrite it?The file "%s" already exists! Do you want to overwrite it?The maximum size file (in KB) that TortoiseHg will show changes for in the changelog, status, and commit windows. A value of zero implies no limit. Default: 1024 (1MB)The number of revisions to read and display in the changelog viewer in a single batch. Default: 500There are no file changes to viewToTo:Tool launch failureTortoiseHg Bug ReportTortoiseHg Dialogs (version %s), Mercurial (version %s) TortoiseHg ErrorTortoiseHg Overlay Icon ServerTortoiseHg PromptTypeURLUnable to backoutUnable to mergeUnable to removeUnable to remove file %s, permission deniedUnable to write configuration fileUnapply all patchesUncommited merge - please select a parent revisionUncompressed tar archiveUncompressed zip archiveUndo last commit?Unknown revision!UpdateUpdate - %sUpdate IconsUpdate icons for this repositoryUpdate to:Update working directoryUpdate...Upgrading to a more recent TortoiseHg is recommended.Use English backout messageUse compact viewUse extended (git) patch formatUse git extended diff header format. Default: FalseUse proxy serverUse pull protocol to copy metadataUserUser:UsernameUsername to authenticate to mail server withVerify backout revision and ensure your working directory is clean.View change history in repositoryView change history of selected filesView changes using GUI diff toolVisual DiffVisual Diffs - Visual EditorWarningWeb ServerWhether to allow pushing to the repository. If empty or not set, push is not allowed. If the special value "*", any remote user can push, including unauthenticated users. Otherwise, the remote user must have been authenticated, and the authenticated user name must be present in this list (separated by whitespace or ","). The contents of the allow_push list are examined after the deny_push list.Whether to deny pushing to the repository. If empty or not set, push is not denied. If the special value "*", all remote users are denied push. Otherwise, unauthenticated users are all denied, and any authenticated user name present in this list (separated by whitespace or ",") is also denied. The contents of the deny_push list are examined before the allow_push list.Whether to require that inbound pushes be transported over SSL to prevent password sniffing.Which template map style to useWorking DirectoryWorking Directory (merged)Working directory statusYou can visit our site hereZip archive compressed using deflateZip archives[Code: %d][command completed successfully %s][command interrupted %s][command terminated by user %s][original][working copy]abort: abort: %s! action buttonCommitadd diffstat output to messagesaddedattachbasic commands: branch: can not read file "%s". Ignored. changeset to view in diff toolcleancorrupted command result: %rdiffstatdisplay help and exitdo not fork GUI processenable additional outputerror while running command failed to encode command: %sfailed to encode input: %sfailed to start command file has been deleted, refreshfile has been modified, refreshfilesAllfilesNoneglobal options:ignoredinlineinvalid "hello" message: %rinvalid argumentslaunch visual diff toollist of commands: localmethodmissingmodifiedno commands defined no repo at nowoptions: password: print licenseprocess exited unexpectedly with code %dread file list from filerecord datecode as commit daterecord user as committerremove the status cacheremovedrepository %s not foundrepository root directory or symbolic path namerevision to updaterevisions to view in diff toolsend patches as attachmentssend patches as inline attachmentsshow the contents of the status cache (no update)start debuggerstatussuppress outputunexpected response on required channel %runknownunknown revision!update all repos in current diruse pull protocol to copy metadataversion %swait until the second ticks overwin32ill: cannot create window for messageswin32ill: unsupported platform: %s with Mercurial-%s, Python-%s, PyQt-%s, Qt-%sworking changesProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2015-11-30 22:59+0000 Last-Translator: Mauro Fernández Language-Team: Spanish MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Launchpad-Export-Date: 2019-07-17 05:45+0000 X-Generator: Launchpad (build 19009) Capturada una interrupción a través del teclado, cancelando. alias: %s (por defecto: %s) filtrado%s (tip: %s)%s (pendiente)%s (enviado)%s : %s%s parchesconfiguraciones de repositorio: %s&Añadir&Archivar&Cancelar&Clonar&Cerrar&Descartar&Licencia&Local&Mover&No&No (descartar los cambios)&Otro&RefrescarElimina&r&Ejecutar&Sí(ayuda de texto no disponible)= Directorio de trabajo de nivel superior =Ya existe un marcador llamado «%s»¡Una nueva versión de TortoiseHg (%s) está lista para descargar!InterrumpirAcerca deAcerca de TortoiseHgAceptarActivar:AgregarAñadir archivosAñadir archivos a la versión de controlTag %s para conjunto de cambios %s añadidoEdad:AliasTodos los archivos conflictivos serán marcados como no resueltos.Todos los archivos (*)Permitir envioAp&licar formatoAnexarAplciar todos los parchesArchivo - %sFormatos de archivoTipos de archivado:Coloración de autorAuto excluir listaResolver automáticamente conflictos de unión donde sea posibleConjunto de cambios retirado: Anular una revision padre es una operacion de un solo pasoAnular - %sAnular revisionBccmarcador '%s' no existeSe ha añadido el marcador «%s»Se movio el marcador '%s'Se ha eliminado el marcador «%s»El marcador «%s» se ha renombrado a «%s»Marcador - %sMarcador:RamaColores de la ramaRama:Navegar carpeta...Examinar...Los paquetes de conjuntos de cambios se guardan en forma binaria. Es la forma más segura de enviar cambios a usuarios que usan Mercurial.Lista de BypassArchivos tar bzip2Editor CLICancelarNo se puede anular un cambio en una rama diferenteCcCc:Los cambios surtiran efecto en la proxima consignaciónBuscando actualizaciones…Comprobando...Hijo:LimpioClonar - %sClonar a revisión:Clonar...CerrarCerrar rama actualLista de los formatos de archivos permitidos a descargar separado por comasListado separado por comas de las direcciones de correo (Cco).Listado separado por comas de las direcciones de correo (copias carbón)Listado separado por comas de las direcciones de correoError del comandoConsignarGuardar cambios en el repositorioRealizar...Configure las opciones del repositorioConfigurar opciones de usuarioConfirmar cambio de rama¿Seguro que quiere omitir?Confirmar mensaje de DescarteConfirmar salidaConfirmar nueva ramaConfirmar sobreescrituraConfirmar eliminaciónConfirmar reversiónConfirmar actualizaciónContactarMenú contextualCopiarCopiar mensajeCrearCrear Repositorio AquíCrear un nuevo repositorioCrear clon acá desde la fuenteRevision local actualFechaFecha:Ramas muertasDenegar envioDescripciónDestinoDirectorio de destino:Destino:Detectar copias/renombrar en %sDetectar renombrados y copiasCarpeta diffDirectorio de archivosDescartar - descarte cambios locales, no respaldar¿Descartar el mensaje actual de anulación de cambiosDescartar mensaje actual de consignarDescartar cambios locales, no repaldar (-C/--clean)Sincronizar DnDNo incluir fechas de modificación en cabeceras diff. Por defecto: FalsoNo actualice el nuevo directorio de trabajoNo verificar el certificado del hostNombre duplicadoEditarEditar archivoEditar "Filtro Ignorar"Edita el archivo en la copia actualEditar "Filtro Ignorar" de repositorioEmailDirección de correo a usar en el campo "De" y en el recipiente o sobre SMTPCodificaciónErrorError encontrado.Error al escribir el archivoExcluye:Salir¡Falló!ArchivoHistoria del archivoEstado del archivoArchivo o difs no mostrados Nombre de archivoArchivosBuscar RenombradosTerminadoSeguir copias y renombrarlasOlvidarOlvidar archivos...DesdeDesde:Nombre completo de la rutaFormato GitLos parches git pueden describir archivos binarios, copias y cambios en permisos, pero es posible que los receptores no puedan usarlos si no están utilizando git o MercurialOpciones globalesGráficoAdivinar renombramientosArchivos tar gzipComando Hg:Ocultar etiquetasResaltar IconoHostNombre del servidor proxy (número de puerto opcional). Ejemplo: "myproxy:8000"El nombre de host del servidor de correoNombre usado para identificarse en el servidor de correo.Número de líneas usadas para generar el patrón rayado (de tipo zebra) al mostrar información multilínea. Por defecto: 1 (0 para desactivar)Si sigues teniendo problemas, por favor documenta un reporte de bug.Ignorar líneas en blancoIgnorar cantidad de espacios en blancoIgnorar espacios en blancoIgnorar mayúsculasIgnorar filtro - %sImportar - %sReenviar a:Incluir huella del parcheIncluye:No se encuentra el paquete iniparseExpresión global inválidaExpresión regular inválidaLicenciaLineaNombre de la máquina localSólo discos localesNúmero de revisionesResumen largo¿Resolver manualmente los paquetes rechazados?Cambios máximosTamaño máx. diffArchivos máximosComando Mercurial aún se está ejecutando. ¿Seguro que quieres cancelar?CombinarUnir - permite unir a los cambios localesIdentificador de mensaje a responder, para conversación múltipleMoverNombreNombre o dirección de correo electrónico de la persona a cargo del repositorioNombre nuevo:Sin fechasArchivos no apropiadosNo no respaldar (-n/--nobackup)No cambios en etiquetaNo quedan paquetesNo hay cambiosNingún archivo encontrado para esta operaciónNingún archivo seleccionadoNo hay elementos para mostrarNinguna operación a realizarNo se ha encontrado ningún repositorioEditor visual no configurado!No es una revisión de cabecera!No estas en una cabecera, anular creara una nueva cabeceraNada que importarOKSolo archivos modificados/creados en esta revisiónAbrir una nueva rama nombradaListado separado por comas de los nombres de host a los que se les permite bypassar el servidor proxy. OpcionalMétodo usado para enviar mensajes de correo. Opcional. Por defecto: smtp Introduzca el nombre del programa que actua como "sendmail": (tiene una opción "-f" para especificar quién envia el correo, una lista de receptores y el mensaje en "stdin"). Normalmente sólo es neccesario poner "sendmail" o bien la ruta donde este se encuentra para poder enviar correo (normalmente en "/usr/sbin/sendmail").Opcional. Contraseña con la que autentificarse en el servidor proxyOpcional. Nombre de usuario con el que autentificarse en el servidor proxyOpcionesOpciones:Superposición de iconosPadre:PadresContraseñaContraseña con la que autentificarse en el servidor de emailParche EOLFallo la aplicación del parcheParche:PatronesPor favor configurar un editor visualIntroduzca un nombre de usuarioPor favor ingrese un mensaje para la consignaciónPor favor espera mientras el archivo es abiertoEspera...PuertoPuerto del servidor de correo. Por defecto: 25Puerto a escucharPreparar anulaciónVista previa:ProxyEnvio Requiere SSLQNuevoQRefrescarSalirRe&nombrarRemodificarRecorrer subdirectoriosRecargarExp. RegularPatron de busqueda para expresión regularRecargarComando remoto:EliminarEliminar archivos...Eliminar archivos de la versión de controlElimine filtro, mostrar raízEliminada la etiqueta %sCambiar nombreRenombrar archivoRenombrar archivo o directorioRepositorioConfiguración repositorioEstado del repositorio y cambiosRevDeshacerRevertir archivos...Revertir los cambios de los archivosRevierte para revisiónRevisiónRevisión:Ejecutando...Servidor SMTPContraseña SMTPPuerto SMTPSMTP TLSNombre de usuario SMTPAlmacenar informe de errores aGuardar archivo enGuardar en repoBuscarHistorial de búsquedaBusque archivos de revisones por patronesSeleccionar archivo de destinoSeleccionar carpeta de destinoSeleccionar repositorioElegir carpeta de origenSeleccione rama de combinación para almacenar los cambiosSeleccione un repositorio de destinoSeleccionar carpeta de origenSeleccione un repositorio de origenEnviar un solo paquete binario, en vez de los parchesConfiguracionesMostrar acerca del diálogoMostrar DetalleMostrar funciónMostrar iconoMostrar todoMuestra en que función se ha producido el cambio. Por defecto: NoFuenteFuente:InicioIniciar revisiónInicie servidor web para este repositorioEstadoEstadoDetenerRayadoDejando de lado las cabeceras de Mercurial quita el nombre de usuario y la información sobre los padres. Es sólo útil si el usuario no usa Mercurial (y/o no le gusta ver las cabeceras).EstiloElemento del submenú:Asunto:Subversion:Tamaño de línea del resumenSumario:SincronizarSincronizar con repositorioSincronizar con repositorio remotoAncho del tabuladorEtiqueta - %sEtiqueta:EtiquetasArchivo tar comprimido con bzip2Archivo tar comprimido con gzipArchivos tarObjetivo:Barra de tareasLos archivos temporales se borrarán cuando se cierre esta ventanaFinalizado por el usuarioArchivos de texto (*.txt)Descripción textual del contenido del repositorio.El destino "%s" ya existe como archivo.¡El destino "%s" ya existe como carpeta!¡El directorio "%s" no está vacío! ¿Quiere sobreescribirlo?¡El archivo "%s" ya existe! ¿Deseas sobrescribirlo?Tamaño de archivo máx. (en kB) para el cual TortoiseHg mostrará cambios. Zero significa sin límite. Por defecto: 1024 kBNúmero máx. de revisiones a leer y mostrar. Por defecto: 500No hay cambios para verParaa:Falló la ejecución de la herramientaTortoiseHg: Informe de falloMensajes TortoiseHg (version %s), Mercurial (version %s) Error de TortoiseHgServidor de Iconos Superpuestos de TortoiseHGLínea de órdenes de TortoiseHgTipoURLIncapaz de anularNo se ha podido unirNo es posible eliminarNo es posible eliminar el archivo %s, permiso denegadoNo se pudo escribir en el archivo de configuraciónNo aplicar todos los parchesCombinación pendiente de consolidar por favor seleccione una revisión padreArchivo tar descomprimidoArchivo zip descomprimido¿Deshacer última confirmación?¡Revisión desconocida!ActualizarActualizar - %sActualizar iconosActualizar inconos para este repositorioActualizar a:Actualización en la carpeta de trabajoActualizar...Se recomienda actualizar a un TortoiseHg más recienteUtilizar mensaje de anulación en InglésUsar vista compactaUtilizar formato de parche extendido (git)Usar formato diff de cabecera extendido de git. Por defecto: FalsoUsar servidor proxyUtilice el protocolo de bajada para copiar los metadatosUsuarioUsuario:Nombre de usuarioNombre de usuario con el que autentificarse en el servidor de emailVerifica la revision que quieres anular y asegurate de que tu directorio de trabajo esta limpioVer el historial de cambios del repositorioVer historial de cambios de los archivos seleccionadosVer cambios con herramienta gráfica diffDiff visualDiff visual - Editor visualAdvertenciaServidor WebPermiso de envio de cambios al repositorio (push). Opciones: - campo vacio o sin configurar: envio de cambios no esta permitido - "*" : envio general esta permitido (incluso usuarios no autentificados) - Lista con nombres de usuario (separados por espacio en blanco o ","): el envio sólo está permitido a usuarios autentificados y presentes en la lista. La lista de permiso de envio es examinada después de la lista de denegación de envio.Denegación de envio de cambios al repositorio (push). Opciones: - campo vacio o sin configurar: envio de cambios esta permitido (incluso usuarios no autentificados) - "*" : envio denegado para todos los usuarios remotos - Lista con nombres de usuario (separados por espacio en blanco o ","): el envio no está permitido a usuarios no autentificados y a los usuarios presentes en la lista. La lista de denegación de envio es examinada previamente a la lista de permiso de envio.Para forzar envios locales sobre SSL y así prevenir robo de palabras clave.Plantilla de estilo a usarDirectorio de trabajoDirectorio de trabajo (unido)Estado del directorio de trabajoPuede visitar nuestro sitio aquíArchivo zip comprimido con deflateArchivos zip[Código: %d][comando completado con éxito %s][comando interrumpido %s][comando terminado por el usuario %s][original][copia de trabajo]cancelar: cancelar: %s! ConfirmarAñadir resultado de diffstat a los mensagesañadidoadjuntarcomandos básicos: rama: No se pudo leer archivo "%s". Ignorado. conjunto de cambios a ver en la herramienta de difflimpiarresultado de comando corrupto: %rdiffstatmostrar ayuda y salirno bifurcar proceso GUIhabilitar salida adicionalerror al ejecutar el comando falló al codificar comando: %sfallla al codificar entrada: %serror al iniciar el comando El archivo ha sido eliminado, refrescarEl archivo ha sido modificado, refrescarTodoNingunoopciones globales:ignoradoen líneamensaje "hello" inválido: %rargumentos inválidosiniciar herramienta visual de diferencialeslista de comandos: localmétodoperdidomodificadono hay comandos definidos ningún repositorio en ahoraopciones: clave: imprimir licenciaproceso terminado inesperadamente con código %dleer lista de archivos desde archivoGuardar código de fecha como fecha de enviorecordar usuario como creador del cambioremover la cache de estadoeliminadorepositorio %s no encontradodirectorio raiz del repositorio o nombre de ruta simbolicarevisión a actualizarrevisiones a revisar con la herramienta diffenviar parches como archivos adjuntosenviar parches embebidos en el mensajemostrar el contenido de la cache de estado (no actualizar)iniciar el depuradorestadosuprimir salidarespuesta inesperada en canal requerido %rdesconocido¡revisión desconocida!actualizar todos los repos en el dir actualuse protocolo extraer para copiar metadatoversión %sespera hasta que pase un segundowin32ill: No se puede crear la ventana para mensajeswin32ill: Plataforma no soportada: %s con Mercurial-%s, Python-%s, PyQt-%s, Qt-%scambios en repositorio de trabajo././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/et/0000755000000000000000000000000014742203610014163 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1274145 tortoisehg-6.9/locale/et/LC_MESSAGES/0000755000000000000000000000000014742203610015750 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033566.0 tortoisehg-6.9/locale/et/LC_MESSAGES/tortoisehg.mo0000644000000000000000000000446414742203536020513 0ustar00rootroot$<\\] an}   #(: ?,Iv  "! 7D]v$   #;DSZl t2~    *.)Y %, / AddArchive - %sArchive types:Backed out changeset: Bookmark '%s' does not existBookmark - %sBookmark:Browse...Bzip2 tar archivesCloseConfirm OverwriteDestination path:Directory of filesExitGzip tar archivesMoveNew Name:Only files modified/created in this revisionRemote command:RemoveRenameRevision:Save error report toSave file toSelect Destination FileSelect Destination FolderTar archive compressed using bzip2Tar archive compressed using gzipTar archivesUncompressed tar archiveUncompressed zip archiveUse English backout messageUse proxy serverZip archive compressed using deflatestatusProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2010-08-24 08:09+0000 Last-Translator: gert7 Language-Team: Estonian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Launchpad-Export-Date: 2019-07-17 05:42+0000 X-Generator: Launchpad (build 19009) LisaArhiiv - %sArhiivitüübid:Taganenud muutused: Järjehoidja '%s' pole olemasJärjehoidja - %sJärjehoidja:Sirvi...Bzip2 tar arhiividSulgeKinnita ülekirjutamineSihttee:Failide indeksVäljuGzip tar arhiividLiigutaUus nimi:Ainult failid muudetud/loodud selles redaktsioonisKaugkäsk:EemaldaNimeta ümberRedaktsioon:Salvesta veateade asukohtaSalvesta fail asukohtaVali sihtfailVali sihtkaustTar arhiiv kompresseeritud kasutades bzip2Tar arhiiv kompresseeritud kasutades gzipTar arhiividKompresseerimata tar arhiivKompresseerimata zip arhiivKasuta inglisekeelset taganemisteadetKasuta variserveritZip arhiiv kompresseeritud kasutades deflateolek././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/fa/0000755000000000000000000000000014742203610014141 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1274145 tortoisehg-6.9/locale/fa/LC_MESSAGES/0000755000000000000000000000000014742203610015726 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033566.0 tortoisehg-6.9/locale/fa/LC_MESSAGES/tortoisehg.mo0000644000000000000000000000170114742203536020460 0ustar00rootroot l  +E 7CVq"z#AbortArchive - %sArchive types:Browse...Destination path:Directory of filesExitSelect Destination FileSelect Destination FolderProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: Persian POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2010-04-05 13:42+0000 Last-Translator: Persian Language-Team: Persian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; X-Launchpad-Export-Date: 2019-07-17 05:44+0000 X-Generator: Launchpad (build 19009) قطع کردنبایگانی - %sانواع بایگانی:مرور...مسیر مقصد:پوشه پرونده هاخروجانتخاب پرونده مقصدانتخاب پوشه‌ی مقصد././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/fi/0000755000000000000000000000000014742203610014151 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1274145 tortoisehg-6.9/locale/fi/LC_MESSAGES/0000755000000000000000000000000014742203610015736 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033566.0 tortoisehg-6.9/locale/fi/LC_MESSAGES/tortoisehg.mo0000644000000000000000000000554714742203536020504 0ustar00rootrootB,<<=L]r    %.4 ; HV]dj o{   49BH[`h m w    + > M X ` i s y                " ( / 8 B Q Y m t {            ! ( 0 = E L R Y ] %d day%d days%d hour%d hours%d minute%d minutes%d month%d months%d second%d seconds%d week%d weeks%d year%d years%s (hint: %s)%s - hg %s%s : %s&Add&File&Help&License&Mac&Move&Remove&Remove...&Settings&Unix&WindowsAboutAcceptAdd Files...All files (*)ArabicCancelCloseCopyDescriptionE&xitErrorExitFileFilesGlobal SettingsGreekHTTP Error: %d (%s)HebrewJapaneseKoreanLicenseNameNew Name:OpenPassword:RemoveRussianSSL error: %sSSL: unknown error %s:%sSaveSettingsTags:Text files (*.txt)ThaiTurkishTypeUkrainianUpdate...Vietnamesecolumn headerDescriptioncolumn headerTagsfilesAllnowversion %sProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2018-07-23 21:54+0000 Last-Translator: Nikolay Korotkiy Language-Team: Finnish MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Launchpad-Export-Date: 2019-07-17 05:42+0000 X-Generator: Launchpad (build 19009) %d päivä%d päivää%d tunti%d tuntia%d minuutti%d minuuttia%d kuukausi%d kuukautta%d sekunti%d sekuntia%d viikko%d viikkoa%d vuosi%d vuotta%s (vihje: %s)%s - hg %s%s : %s&Lisää&Tiedosto&Ohje&Lisenssi&Mac&Siirrä&Poista&Poista...A&setukset&Unix&WindowsTietojaHyväksyLisää tiedostoja...Kaikki tiedostot (*)arabiaPeruSuljeKopioiKuvausLo&petaVirheLopetaTiedostoTiedostotYleisasetuksetkreikkaHTTP-virhe: %d (%s)hepreajapanikoreaLisenssiNimiUusi nimi:AvaaSalasana:PoistavenäjäSSL virhe: %sSSL: tuntematon virhe %s:%sTallennaAsetuksetTagit:Tekstitiedostot (*.txt)thaiturkkiTyyppiukrainaPäivitä...vietnamKuvausTagitKaikkinytversio %s././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/fr/0000755000000000000000000000000014742203610014162 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1274145 tortoisehg-6.9/locale/fr/LC_MESSAGES/0000755000000000000000000000000014742203610015747 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033566.0 tortoisehg-6.9/locale/fr/LC_MESSAGES/tortoisehg.mo0000644000000000000000000071050114742203536020506 0ustar00rootrootc 4KLL/M&} ږ $ 8Y oy ˗$%8)S}WYq;ҙA+7m:#49> B P]l ֛  $ 0Qcz #-Ԝ@C Y2e ҝ  "CZr ٞ   ' 3> FQp xƟ .?VnǠ ؠ  $4:AG W epw ̡ԡ   ) .;Rar ¢Ȣۢߢ %; BL]s z  £̣ۣ (0 ALTl u  Фۤ!9 AK S^dx~  ̥ ԥ   & .9AG Wew Ҧ ئ'-K#g ç 2C Vb,qNJ8I&b©Cݩ;!]v-ߪ)< K Uc$''ݬ73=3q(έ,#!>`v~ îԮۮ%&,Sf y ɯ-=B ܰ >"G0j ıұ !': LW)j)=۲B6Ry)̳>)5H_?N`  0#>Nl  ζ:;='y* ̷ ڷ!Y cjzG:4Cx}8͹ '"Dg,x!=Ǻ  &3:>ٻu COe{ Ǿ& *"8 [e lz ѿ  B.5+Nz3!9A)X<+>DGKRm," !<^s.- /[4 *A.l611+6nbX*0DT"o,$ 3M&g  " &&M b lw D*ov,/?+i$_JC=1,^ ft]  %FUr & "#F O]'q+ $VNd#.*MG  !.A S!`  .E`t"# .%3)9 > I T ^i* &5*0 [5|#.. :O8 5H[s+%/%9>Md } u9n>..,L&y  &*=)h"'):Zc|   ';c}O#  +  1 >H bo *+- Yz$--1.M|#'A%&g3!M22'e@187X^).C R\bk{    !( J T^zC /O)1B[[.A\ dn45(3\p  + %0(V&-2([lq  " 4/d;s1XX&jKOU<Y +3 ;Hh"zM$A3u:;5,<b73Fz4*) '7@H!e<&    - 3> Ygw Y /  & -9V  &5 DNTIYBcchanax2M% 8IDPFM&tEL# 8D Zh}    1     ) 5 8N   !  ; 6 U e  e   +      %Yah+q!    ' 2Q?+ i3  *>O j un  %)BXm       9(X8#?c!}&1 *E b'm   ?:)4 ^lGdm; )/#K)o /  '4-PB~ $-RWk,* % 0> o   [ @!;I! !! !! ! !!!! " ""+"4"G"\"n" s" }"""""" ""####3#!D#f#x##-####$$#$J$(5%^%v%%%%$%&&.&B&[&p&&&"A'd''''(U(~(+((((()))/)),)"*=*N*S*b*/v**,*,*+!3+U+%g+=++%+ ,3#,W,#w,,I}-k-h3/f/;0?0<01222292J2e2x22 222222 3!3 =3 G3Q3Y3a3,j3*3 333 334 &424 N4Z4i44444 4:4 6(6 /696J6Z6_6:q6H6G6=7C7a7!j77 7*7777!8&98&`8(888:8#9*C9!n9(99999.9:: :-: @: L: X:y: :::!:::: : ;;;T;[; a;l;;;;;;';-<K<_<o<<<<<< <<<<==#=<=R=%n==== ==!>&>>>X>i>n>w>3}>>>>>> ??'?=?E? V? a?k?q?%?? ?2?5?#@2@ M@'n@ @Z@@FA YAcA)AAAAAAB#B5B!NB$pBBBB!BBBC CC0CCCSCZCuCC#C C!CDD8DSDMrDD3DE/EKEZE aE mE zE EEEEEEFF-FJFRF!iF"F$F F FFF GG;G OGpGvGGH-HBHYHlH|HHMH#HIII 1I=IMI!fI II+I&IJ+JGJZJK )K 6KAK\KtK]}KK KK L+LDLULgL zLL LL"LLNOGQ RRST:U%UVWY[\\u] p^ ~^^ ^ ^ ^ ^ ^ ^^ ^ ^ ^% _1_ J_k_ p_|_ ____)_ "`/` A`N`h`o`~``H`"`a 1a ;aBHaaaa a a aaa#b8bJb]b rb"b bb1bc2cEccc8dLd.[dd"d#ddd[e[4f$g1gi$ll#m mm&m nn&n;nCn Rn _n in sn nnn!n@no o &o 4o BoLo&Royoqo o pp $p0p?p Qp _pkp |p p pppppppyqzq.qqq!qwrrvs%s%%t5Kttt t1tt t u'u?u Du1NuuIu v vlwowwwwwww4w(yyzzZA|%|S|}}~? *$:_dk €ɀрnt` ,' T'u Ђ߂1-!_   Jk #Ą"  ,4< DN^v ą"Ѕ!  " / =K S]p)x6ن7$=<P4sLJ';"cKdҋB7.z03ڌ>M| 2;4w@($c(c9bΒ1&f"cO1.0++(*}SњU\/O%2!X-z8<*4I!~B!*֞!-#7Q  Ÿ ֟  )C]!y Ơܠ8ARlɡݡ t âޢ  $ ( 5?Q%lG&* Kdt  + 3Tj "#̥"&+,R /"NqƧϧק92#Vo ɨ6/A\ t*4  # *!6 X e s2*G r}, ë3ͫ=?5\ɬǭ365E{"̮Ѯ Z+w,C߯@#5d* Ű а ۰ "!%9_-~ )ͱ' >J[j z23TSi<q ʳҳXH=Uչ+Ѻr_\ҽ/ O[t  ȾվCX q }'U¿H#a'u?F:+#4Xv'#*#@dl$I n{ OA,GMt?#&?^~   !''Ogn ! ,<L1k *#8Nk#5H_w'!'@'X>"/01`>^ d n y  * *07e? +)2\x #Y),!5*R>}!' 4Od y;A7- eq #"0 N['c ' *  *(8as'## 4AYrz/ !!-*.X $D]p!!"/&R5y1$$4Yh~/L_@w    "& IT%r, 6Sp #3<Ur ! ' 6BZo +#)+Eq'.L*k-,+L6x,D!)>"h)  +2#O"s,-+4 `n .@\e**-+G\>{,  eh/?CWJ?DF+  %1Q!k    ! +@Z c$p&1I8TCc! 0':b~ 6 @MSj |  1  %"Adl }  * 64k   ;G^x /$D I U_w  * A N%Y  ! *?EM`w~!     *"7Zy     . I W bo% !   /5GP$W| &,;J \ gq & ,8&Sz%"9Qc u 7N Go!4 #3WrH:!$6"[2~  4B$S3x#8: 9DD~A/)51_"" '. CM^v#,1- 0 D  Y d l       2- '` ] 1  / C )K u    N 0 :3  n   &   4 > ^ #}  8 9  4ZUFq/L/ Y<,&Bi~&6,0]+p  3E<Y8#"@o]#%<ZbLK  VbN$) *0?1p9;N-(|; NZs  ' >"J mw   " 2 ,Lb\' $ 82 !k < 0 1 C-!q!6!P!.">F"Z" " ""# #@#U#i#E#2##) $.5$d$"~$5$5$ % %%%:%k%B\&6&9&B':S'9'9'm(`p(($((!)+8)9d)) **"*/*++0+O+ n+?+ +"++,!,+),)U,$,8,, , , --=- \-f-m------J- @.#J.1n.7.Z.3//i021q1_S2W2N 3Z3c3v3m3 3$4)4=4R40d44$44"45 #505C50V555.5 556/6<K6616k6!B7*d77 77178<'8#d8U88"89,,9Y9#m999*99 :8,:e::::':":;2;&L;$s;$;);";( <*3<,^<<<<0<<-=>+>2>B> T>_> o>@>>)> ?8*?Ac?-?C?$@)<@4f@6@C@AA,XAAAAAAABB$9B:^B1B3B.B.C5CGC1aCC CCCCCC D/DBDJE .FN8F;F;F<F2XXUXX+Y1YNY bYlY tY~Y YY YYYYZ Z Z?Z[Z{ZZ8ZZZ)Z+)[)U[[![['[%[O\Ec\*\'\\]]#2]!V]x]]/]K])^+9^re^%^^_ $_!._P_&X_9_8_(_5`Q`m```` ``$`< a1Fa6xa;a.ab*9bdb ~bIb=b"c3c ;c+\cc*c#cccd/,d?\ddLdEe9Fetee+f@fOfLXfgfm gq{gg hBh Qh"[h-~h h5hfi*jii%iUij)j1j,KjUxjRjL!kUnkkk_l@~l/lRl.Bm6qmmm.mm!m$nDnGnMnbnPnn(o o oopppppqq8qWqwqqq q1qqrr5rhIrrrrr6ttttuu0uHuPu.buufvyv0vv vvvUvPwLmw}w8x?xVGxtxydyyz"z>zRz[cz^zV{Yu{!{_{bQ|||||}}/}L}d}|}}}} }}<} #~1Pl%;  <HME܁ p#mЂ>#Uy&"уbs|5(   -"9\| d@lÉԊmv/,3`y ֌ 0$*#*N y юߎ    #.D>0@4Ǒ'/$5T>$ $*O/gēOۓG+8sڔTE{˕G N;Z,+Ö#0'3X$,ޗ3!4<"NEq_5GVl%7 %%27Ej//,,=@j.ڛ\5VPݜ4CRl Нݝ.6K `m!Ğ ڞ4K+gȟBߟ"@`4N5m_37V!p&0./I`~"ߣ$#Ӥ( )/7;s¦&զ+=ҧ3DX_s?#˨*0%K1q1D10L'}@$) 5g7FѮA_F+r +ұ6>=| ʲ. 5 A MW _0l2г5Nb*q!޴"!=Q}a߶  4#;C_GN :,Dq%y +¸*. Y z"$$F*O3z%+Ժ -.2arz )ͻ'E*Y  ;ռ"4 W,c(Ž:1)[yӾ׾ ߾!6 X e (:п) 15&g$,!-AFO<X! #2 FP fs8  G@2s*4j~^ ()B lx!)0=-n # 3 DNc("6,R-%""1XK'05L Ucw!!" 5"H,k /(4NW_v!&! 7Pbk#  $/,T.8'6EH""" !'I `ej$(##Lp" 0 +:ife=C4Z9#6]eWR),EK"\    ;.-K y,.($87]  !2TXn2" 'T= '',1T=:0*k?,'#K!>`=y#1"&Ih85Kx!/ L1V'/%5>Tj   $D !Qsy 7 +H]o#y2 ;13(.\Sh8.WN'  >S q!| 4#P p      W /  "  t/?!(TOG '( %;DMlu |\b}j&78+p6 ',Tr8 )  &EJ c&p$"-$P"u *) C P \iz%3UVHq +7$m\.&. kO"E"-#-/#*]#B##$>&%;e%%;9&Qu&.&&%'/'d(7(#((D)l#**3Z+y,,-5.w.HZ/%//'/ 1-10 2:22^l313i3#g4$444+4;52M5E5%5N5;6S6Y6\6 7(7H7N75m7/727>8+E8q88888/8 9 9 -979O9j9!9 99&999::.:i:%~:!:':: ; ;9;P;g;f|;;; <4<%L<r<w<|<<<< <<%<-=0A=dr=3=> >"J>m>$>)>>'>?/?:K?7? ?+?9 @5E@G{@-@5@/'A9WAA.EB)tB4B$BBC7CNC eCoCOCDC D;D VD'`DDD$DRDU VYXaZb[v[/\]n__`%`'C` k`u``````P a^a~aaa7aaS}c,c%c:$d_d&d[#gg*h,Dh$qhh"h!h'h,#i0Pi+i.i#i+j,jJj)j jkk 5k]BkTkFk]=6KayՂ+7M+d:"˃&)-3W-M&.:M(1   (@<}  >ˆ! , E S] o |" %ԇ/J[-lԈ0 9CWkډ  !*L_t Š׊  +%Q#m+ً &5 J/U&Œ*%B/X<;G69~W+5<:r? ;&7b+#Ɛ,3: Please check that the "thg" command is valid. Caught keyboard interrupt, aborting. aliases: %s (default: %s) (copied from %s) (is a symlink) (is unversioned) (renamed from %s) (was added) (was added, now missing) (was deleted) filtered"%s" is not a folder"%s" is not a valid directory"%s" removed from path history"%s" removed from search history### filter text ###### host certificate fingerprint ###### patch name ###### regular expression ###### regular expression search pattern ###### revision set query ###$FILE_ENCODINGS% Match%d day%d days%d files have merge conflicts that must be resolved%d files were modified on both branches and must be resolved%d hour%d hours%d matches found%d minute%d minutes%d month%d months%d outgoing changesets%d outgoing changesets in current branch (%s) / %d in total%d outgoing changesets to %s%d outgoing changesets up to current revision (#%d) / %d in total%d outgoing changesets up to revision #%d / %d in total%d patches were exported to:

                                                                                                              %s%d pending changelists found%d second%d seconds%d week%d weeks%d year%d years%d%%%dpt%p%%s (hint: %s)%s (pending)%s (submitted)%s - Revision Details (%s)%s - TortoiseHg Workbench%s - TortoiseHg Workbench - %s%s - branch operation%s - commit%s - commit options%s - hg %s%s - purge%s - recover repository%s - status%s - status (selection filtered)%s - sync options%s - verify repository%s : %s%s %s already exists, replace URL?%s and %s have identical contents %s certificate error: no certificate received%s had rejected chunks, edit patched file together with rejects?%s is a dirty subrepo%s is added%s is deleted by non-hg command, but still tracked%s is ignored%s is modified%s is not a valid repository%s is not modified (clean)%s is not tracked (unknown)%s is removed%s patches%s project settings (.hg/projrc)%s repository settings%s will be imported to %s's global settings&About TortoiseHg&Add&Add Repository...&AfterIndent&Ancestors and Descendants&Apply Only This Patch&Archive&Archive...&Auto&Auto Detect&Auto-Complete&Backout...&Bisect...&Branch&Browse...&Bundle Rev and Descendants...&Cancel&Character&Clear&Clone&Close&Close Repository&Commit&Commit to Queue...&Commit to current branch&Copy&Copy Patch&Copy...&Create&Custom Toolbar&Delete&Delete Patches...&Delete Queue...&Delete Unversioned...&Diff Other to Ancestor&Diff Selected File Revisions&Diff to Other&Diff to Parent&Discard&Discard (--force)&Discard changes&Dock Toolbar&Edit File&Edit Local&Edit Toolbar&Edit...&Editor Options&Email Patch...&Exit&False&File&Filter Toolbar&Finish Patch&Flat List&Force&Forget&Goto (update workdir)&Goto Revision...&Graft to Local...&Help&Ignore...&Import&Import Patches...&Incoming&Invisible&Keep (--keep)&License&Local&Lock File...&Mac&Make secret&Mark Excluded Changes&Mark Resolved&Mark Unresolved&Mark as Resolved&Match&Merge&Merge with Local...&Merge...&More Options...&Move&New Repository...&No&No (discard changes)&Open&Open All&Open Local&Open Repository...&Originating Revision&Other&Outgoing&Parent Revision&Parent Revision (%d)&Paste&Patch Branch&Prune&Prune Selected...&Prune...&Pull&Purge Queue...&Purge...&Push Bookmark&Readme&Rebase...&Redo&Refresh&Refresh Repository List&Remote Update...&Remove&Remove Bookmark&Remove...&Rename&Rename Active Queue...&Replace&Repository&Resize Columns&Resolve...&Revert&Revert to Revision...&Revert with backup&Revert...&Run&Save&Save at Revision...&Scan Repositories at Startup&Search&Search in Current File&Set...&Settings&Shelve&Shelve...&Sign&Skip this Revision&Sort&Sort by .hgsub&Spaces&Strip&Strip...&Sync Bookmarks...&TAB&TAB Inserts&Tag...&Take Local&Task Toolbar&Terminal&True&Unapply Patch&Undo&Unix&Unspecified&Update&Update...&Verify&View&View Changeset&View Missing&View at Revision&Visible&Web Server&Windows&Word&Workbench Toolbars&Wrap&Yes'Publishing' repository(%s) (DEPRECATED)(excluded from the next commit)(is a changed and dirty sub-repository)(is a changed sub-repository)(is a dirty sub-repository)(is a new and dirty sub-repository)(is a new sub-repository)(is a removed sub-repository)(is an unchanged sub-repository)(no help text available)(same as parent)(unsaved)*: not used by TortoiseHg, resolved merge, unresolved merge3-&Way Diff3-way dir diffLaunch settings tool...help revsets%d changeset will be stripped%d changesets will be strippedAnnotate:Candidate MatchesDifferences from Source to DestHost: %sIgnore FilterParse Error!Repository Details:Revert %d files to their contents at the following revision?Revert %s to its contents at the following revision?Selected Options:Selected Options: %sSubrepository Features:Uncommitted local changes are detectedUnknown revision!Unrevisioned FilesUntracked FilesWeb Server:= Working Directory Parent =A README file is not configured for the current repository.

                                                                                                              To configure a README file for a repository, open the repository settings file, add a 'readme' key to the 'tortoisehg' section, and set it to the filename or URL of your repository's README file.A bookmark named "%s" already existsA comma separated list of target groupsA comma separated list of target peopleA new version of TortoiseHg (%s) is ready for download!A repository cannot be added as a subrepo of itselfA revision identifier, bookmark, tag or branch nameA shelf file of that name already existsA shelf name cannot contain %sA terminal shell cannot be opened for remoteA terminal shell must be configuredA topic named "%s" already existsA&dd Subrepository...A&uthorAbortAbort the export operation. Aborted p4pendingAboutAbout &QtAbout TortoiseHgAcceptAccept All MatchesAccept Selected MatchesAccept the local file version (yours)Accept the other file version (theirs)Activate BookmarksActivate bookmark?Activate:AddAdd &LargefilesAdd &Largefiles...Add Files...Add Path to ServeAdd a repository to this groupAdd as &LargefilesAdd as &Normal FilesAdd files to version controlAdd ignore filter...Add or remove patches must be merged in the working directoryAdd selected untracked files?Add separatorAdd to listAddedAdded tag %s for changeset %sAfter Pull OperationAge:AliasAll HistoryAll changesets belonging to the branches of changesets in set.All changesets, the same as 0:tip.All conflicting files will be marked unresolved.All conflicts are resolved.All contextsAll files (*)All files in this revisionAll itemsAll revisionsAll unsaved changes will be lost.Allow Git SubreposAllow Hg SubreposAllow PushAllow SVN SubreposAllow push of a new branch (--new-branch)Allow pushing new branches (--new-branch)Always merge (when possible)Always show repo tabs, even for a single repo. Default: FalseAmendAmend current revisionAn alias for "::." (ancestors of the working copy's first parent).An empty set, if any revision in set isn't found; otherwise, all revisions in set.An error occurred while reading the file.An error occurred while updating the repository hgrc file (%s)An error occurred while writing the file.An exception happened while loading the subrepos of:

                                                                                                              "%s"

                                                                                                              An interrupted graft operation has been found. You cannot perform a different graft operation unless you abort the interrupted graft operation first.Annotate &FileAnnotate Op&tionsAnnotate with revision numbersApp&ly FormatAppendAppend graft info to log messageAppend the changes to the existing patch files. Applied patchesApplied patches or qparentApply all patchesApply changes before exit?Apply one patchApply only the selected patchApply only this patchApply onto original parentApply patchArabicArchive - %sArchive Content:Archive DAG Range...Archive FormatsArchive types:Are you sure that you want to cancel the commit operation?Are you sure you want to delete these files and/or folders?Are you sure you want to overwrite it ?Are you sure you want to reload this file?Are you sure?Ask UsernameAttempt automatic (trivial) mergeAttempt to push to specified URL or alias after each successful commit. Default: No pushAuthorAuthor ColoringAuto Commit ListAuto Exclude ListAuto Includes:Auto-resolve mergesAutomatically advance to next page when backout and merge are complete.Automatically advance to next page when merge is complete.Automatically resolve merge conflicts where possibleBackBacked out changeset: Backing out a parent revision is a single step operationBacking out and committing...Backing out, then merging...Backout - %sBackout changesetBackout current patch branchBackout requires a parent revisionBackout revisionBackport part of a changeset to a dependencyBackspace or Del to remove row(s)Backup copies of modified files can be found in .hg/Trashcan/Backwards phase change requestedBad filenameBalticBccBefore backout, you must commit, shelve to patch, or discard changes.Before compress, you must commit, shelve to patch, or discard changes.Before graft, you must commit, shelve to patch, or discard changes.Before merging, you must commit, shelve to patch, or discard changes.Before rebase, you must commit, shelve to patch, or discard changes.Bisect - %sBisect - Bad, Good...Bisect - Good, Bad...BoldBoo&kmark...Bookmark '%s' does not existBookmark '%s' has been addedBookmark '%s' has been movedBookmark '%s' has been removedBookmark '%s' has been renamed to '%s'Bookmark - %sBookmark named "%s" does not existBookmark:BranchBranch ColorsBranch:Branch: Bro&wse at RevisionBrowse Directory...Browse...Bundle DAG Range...Bundle files (*.hg)Bundles store complete changesets in binary form. Upstream users can pull from them. This is the safest way to send changes to recipient Mercurial users.Bypass ListBzip2 tar archivesC&hoose Log Columns...C&onfigure FormatCLI EditorCan't change settings without iniparse package - view is readonly.Can't find revision '%s'CancelCannot add subrepositoryCannot backout change on a different branchCannot export revisionCannot export revision %s into the file named: %s Cannot import selected revisionCannot open Plugin Options dialogCannot open non Mercurial repositories or subrepositoriesCannot open repositoryCannot open the .hgsub file in:

                                                                                                              %sCannot read the .hgsub file.

                                                                                                              Subrepository removal failed.Cannot start a new searchCannot update the .hgsub file in:

                                                                                                              %sCannot update the .hgsub file.

                                                                                                              Subrepository removal failed.CcCc:CelticCentral and Eastern EuropeCertificate Query ErrorChange &Phase toChangeLog FontChanged by &This CommitChanges have been moved, you must now commitChanges take effect on next commitChangeset LinkChangeset is a merge changeset.Changeset is a named branch head.Changeset is closed.Changeset is tagged.Changeset with highest revision number in set.Changeset with lowest revision number in set.Changeset:ChangesetsChangesets affecting files matched by pattern. See help patternsChangesets containing files matched by pattern.Changesets not found in the specified destination repository, or the default push location.Changesets that are ancestors of a changeset in set.Changesets where username contains string.Changesets which add files matched by pattern.Changesets which are descendants of changesets in set.Changesets which modify files matched by pattern.Changesets which remove files matched by pattern.Changesets with no parent changeset in set.Changesets within the interval, see help datesCharacter encoding of files in the repository, used by the web interface and TortoiseHg.CheckCheck Subrepo PhaseCheck all filesCheck for incoming changesCheck for incoming changes from %sCheck for incoming changes from selected URLCheck the phase of the current revision of each subrepository. For settings other than "ignore", the phase of the current revision of each subrepository is checked before committing the parent repository. Default: followChecked count: %dCheckingChecking for updates...Checking working directory status...Checking...Checkmark files to addCheckmark files to forgetCheckmark files to removeCheckmark files to revertChild changesets of changesets in set.Child:Chunks selected: %d / %dClea&r LogCleanClearClear contents of shelf file %s?Clear current query and query textClear the current shelf fileClick OK to continue or Abort to exit.Clon&e Repository...Clon&e...Clone - %sClone RepositoryClone to revision:Clone with minimal processingClone...CloseClose %s branchClose After CommitClose Branch: Close current branchClose other tabsClose tabClose the commit tool after every successful commit. Default: FalseClose:Co&mpare File RevisionsCollapse the rebased changesets (--collapse)Color changesets by author name. Default: FalseComma separated list of archive formats allowed for downloadingComma separated list of branch names that should be ignored when building a list of branch names for a repository. Default: None (leave blank)Comma separated list of exclusion file patterns. Exclusion patterns are applied after inclusion patterns.Comma separated list of files that are automatically included in every commit. Intended for use only as a repository setting. Default: None (leave blank)Comma separated list of files that are automatically unchecked when the status, and commit dialogs are opened. Default: None (leave blank)Comma separated list of inclusion file patterns. By default, the entire repository is searched.Comma-separated list of blind carbon copy recipient email addressesComma-separated list of carbon copy recipient email addressesComma-separated list of recipient email addressesCommandCommand ErrorCommand outputCommand to use for SSH connections.

                                                                                                              Default: "ssh" or "TortoisePlink.exe -ssh -2" (Windows)CommitCommit Dialog ToolbarCommit LaterCommit NowCommit OptionsCommit backout and merge resultsCommit changesCommit changes in repositoryCommit context menuCommit merge resultsCommit messageCommit...Committing...Common setsCompare revisions of the selected fileCompare to &1st ParentCompare to &2nd ParentCompletely remove file from patch?CompressCompress - %sCompress History...Compress changesets up to and includingCompress is complete, old history untouchedConfig File:Config files (*.conf *.config *.ini)Configuration Error: "%(arg0)s",
                                                                                                              Please fix your configConfigure Custom ToolConfigure Explorer extensionConfigure HookConfigure Issue TrackerConfigure guardsConfigure guards for selected patchConfigure repository settingsConfigure the selected COM Bug Tracker plugin.Configure user wide settingsConfigures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking plugin.Confirm AddConfirm Branch ChangeConfirm DeleteConfirm Delete UnversionedConfirm DiscardConfirm Discard ChangesConfirm Discard MessageConfirm ExitConfirm New BranchConfirm OverwriteConfirm PushConfirm Push to remote RepositoryConfirm ReloadConfirm RemoveConfirm RevertConfirm SaveConfirm StripConfirm URL replaceConfirm UndoConfirm UpdateConfirm adding unknown filesConfirm deleting filesConfirm file deletionsConfirm patch queue switchConfirm path deleteConnecting to Review Board...Consider aborting the graft first.Consider aborting the rebase first.ConsoleContactContext MenuContinue or abort interrupted graft operation?Controls draft phase behavior when working as a server. When true, pushed changesets are set to public in both client and server and pulled or cloned changesets are set to public in the client. Default: TrueConvert an existing repository into a subrepositoryConverted From:CopyCopy &HashCopy &PathCopy - %sCopy ErrorCopy Selected as PatchCopy full path of file(s) to the clipboardCopy messageCopy one of the recent commit messagesCopy source -> destinationCopy the root path of the repository to the clipboardCopy working directory files from skeletonCould not get subrepository listCould not instantiate Issue Tracker plugin COM objectCould not open .hgsub fileCould not open some subrepositoriesCould not open the specified file for reading.Could not open the specified file for writing.Could not translate the file content from native encoding.Could not translate the file content to native encoding.Could not update .hgsub fileCreateCreate &BranchCreate &New Queue...Create Patch QueueCreate Repository HereCreate a new groupCreate a new patchCreate a new repositoryCreate clone here from sourceCreate diff with all changes on this branchCreate diff with all outgoing changesCreate new named branch "%s" with this commit? Create special files (.hgignore, ...)Cu&tCulprit found.Current local revisionCustom Toolbar &SettingsCustom ToolsCyrillicDateDate:De&tect Renames...Deactivate current bookmark?Dead BranchesDefault PushDefault widgetDefines the command to run when an issue number is recognized. You may include groups in issue.regex, and corresponding {n} tokens in issue.link (where n is a non-negative integer). {0} refers to the entire string matched by issue.regex, while {1} refers to the first group and so on. If no {n} tokens are found in issue.link, the entire matched string is appended instead.Defines the regex to match when picking up issue numbers.DeleteDelete %d file in .hg/TrashcanDelete %d files in .hg/TrashcanDelete %d ignored fileDelete %d ignored filesDelete %d unknown fileDelete %d unknown filesDelete %s from your repo configuration file?Delete Group '%s' and all its entries?Delete Patch QueueDelete PatchesDelete ToolDelete empty foldersDelete from listDelete hookDelete patches...Delete reference toDelete selected chunksDelete selected chunks from shelf file %s?Delete selected chunks from working copy?Delete selected patchesDelete selected query from historyDelete shelf file %s?Delete the current shelf fileDelete the following unversioned files?Deleted %d filesDeleted %d files and %d foldersDeleted*Deleting trash folder...Deletion failuresDeny PushDescriptionDestDestination file already exists.Destination path:Destination:Detect Copies/Renames in %sDetect outgoing changesDetect outgoing changes to %sDetect outgoing changes to selected URLDetect renames and copiesDetected merge/diff tools:Detected uncommitted local changes in working tree. Please select to continue: Detected uncommitted local changes.Determines if TortoiseHg should show a confirmation dialog before adding new files in a commit. If True, a confirmation dialog will be shown. If False, selected new files will be included in the commit with no confirmation dialog. Default: TrueDetermines if TortoiseHg should show a confirmation dialog before pushing changesets. If False, push will be performed without any confirmation dialog. Default: TrueDetermines if TortoiseHg should show a confirmation dialog before removing files in a commit. If True, a confirmation dialog will be shown. If False, selected deleted files will be included in the commit with no confirmation dialog. Default: TrueDetermines when the issue tracker state will be updated by TortoiseHg. Valid settings values are:

                                                                                                              • never: Do not update the Issue Tracker state automatically.
                                                                                                              • commit: Update the Issue Tracker state after a successful commit.

                                                                                                              Default: neverDetermining outgoing changesets to email...Diff &Changeset to ParentDiff &LocalDiff &Local to AncestorDiff Changeset to Loc&alDiff File toDiff FontDiff Selected &ChangesetsDiff ToolbarDiff and AnnotateDiff contentsDiff not displayed: Diff to &LocalDiff to parentDir diff to p1Dir diff to p2Directory diffDirectory of filesDiscard - discard local changes, no backupDiscard all changes from the other revisionDiscard current backout message?Discard current commit message?Discard local changes (revert --all)Discard local changes, no backup (-C/--clean)Discard local changes, no backup (-f/--force)Discard outstanding changes to working directory?Discard remote changes, no backup (-C/--clean)Display closed branchesDisplay graph the named branch onlyDisplay only active branchesDisplay the file anywayDisplaying %(count)d of %(total)d itemsDnD SynchronizeDo not include modification dates in diff headers. Default: FalseDo not modify working copy (-k/--keep)Do not modify working copy during strip (-k/--keep)Do not save backup files (*.orig)Do not show menu items on unversioned folders (use shift + click to override)Do not strip paths (-p0), required for SVN patchesDo not update the new working directoryDo not verify host certificateDo you really want to force a backwards phase transition?Do you really want to activate patch queue '%s' ?Do you really want to deactivate the %s bookmark?Do you really want to make this revision secret?Do you really want to remove the repository "%s" from its parent repository "%s"Do you want to exit?Do you want to keep them or discard them?Drag to change orderDuplicate NameE&ncodingE&xitE&xploreE&xplore FolderE&xplore LocalE&xplorer HelpE&xportE&xport Patch...EOL &ModeEOL &VisibilityEditEdit FileEdit Ignore FilterEdit LocalEdit Path to ServeEdit Re&jectsEdit Tool ...Edit current file in working copyEdit fileEdit hookEdit patch dependency graphEdit patched file and rejects?Edit repository ignore filterEdit resolved fileEditor launch failureEmailEmail DAG Range...Email Selected...Email address to use in the "From" header and for the SMTP envelopeEmail outgoing changesets for remote repositoryEmit debugging output (--debug)Enabled Overlay HandlersEnabled overlaysEncodingEnglish MessagesEnter line number (1 - %d)Enter revision identifierErrorError encountered.Error executing "commit finished" triggerError getting commit message information from Issue Tracker pluginError loading subreposError previewing subrepo: %sError string "%(arg0)s" at %(arg1)s
                                                                                                              Please edit your configError writing fileExcel files (*.xls *.xlsx)ExcludeExcludes:Execute custom tool '%s'ExitExit without finishing resolve?Exiting with an unfinished graft is not recommended.Exiting with an unfinished rebase is not recommended.Explorer Extension SettingsExplorer Extension Settings - TortoiseHgExport DAG Range...Export Diff...Export Selected...Export patchExtExtensionsFailed to add repositoryFailed to add subrepositoryFailed to execute custom TortoiseHg commandFailed to execute custom commandFailed to load issue tracker '%s': %sFailed to load issue tracker: '%s': %s. Failed to open path in terminalFailed to open repositoryFailed to process largefiles.patterns.Failed to refreshFailed!Fetch - use fetch (auto merge pulled changes)Fetch - use fetch extension (fetch is not active!)Fields to match:FileFile &History / AnnotateFile Differences Log ColumnsFile HistoryFile History Log ColumnsFile List ToolbarFile StatusFile Status:File already existsFile conflicts need to be resolvedFile context menu (on manifest and revision details)File is binaryFile is larger than the specified max size. maxdiff = %s KBFile may be binary (maximum line length exceeded)File or diffs not displayed: File or diffs not displayed: File is larger than the specified max size. maxdiff = %s KBFile pattern setsFile was not within current repositoryFilenameFilesFiles of at least the specified size (in megabytes) will be added as bfilesFiles of at least the specified size (in megabytes) will be added as largefilesFiles with names meeting the specified patterns will be automatically added as bfilesFiles with names meeting the specified patterns will be automatically added as largefilesFilter Histor&yFilter b&yFilter graph with revision sets or branchesFilter:Find RenamesFind copy and/or rename sourcesFind matches - %sFind revisions matching fields of:Find revisions that "match" one or more fields of the given set of revisions.Finding outgoing changesets to %s...FinishedFirst n members of a set.First parent for all changesets in set, or the working directory.Fixed revisionsFlag:Fold patches...Follow copies and renamesFont used to display changelog data. Default: monospace 10Font used to display commit messages. Default: monospace 10Font used to display output messages. Default: sans 8Font used to display text differences. Default: monospace 10FontsFor which kinds of revisions the tool will be enabled It is only taken into account when the tool is shown on the selected revision context menu.Force Repo TabForce a merge with outstanding changes (-f/--force)Force push or pop (--force)Force push or pull (override safety checks, --force)Force push to remote location (-f/--force)Force removal of modified files (--force)ForgetForget Files...Fork GUIForwardFound %d incoming changesetsFound incoming changesets from %sFromFrom:Full AuthornameFull Path TitleGPG key ID associated with user. Default: None (leave blank)Generate English commit messages even if LANGUAGE or LANG environment variables are set to a non-English language. This setting is used by the Merge, Tag and Backout dialogs. Default: FalseGetting incoming changesets from %s...Git Commit:Git FormatGit patches can describe binary files, copies, and permission changes, but recipients may not be able to use them if they are not using git or Mercurial.GlobGlobal SettingsGnuPGGo &to PatchGo toGo to LineGo to a specific revisionGo to current revisionGoto ancestor of %s and %sGoto common ancestorGoto revisionGraftGraft - %sGraft Selected to local...Graft abortedGraft changesetGraft changeset #%d of %dGraft failedGraft generated merge conflicts that must be resolvedGraft is completeGraft:GraphGraphical merge program for resolving merge conflicts. If left unspecified, Mercurial will use the first applicable tool it finds on your system or use its internal merge tool that leaves conflict markers in place. Choose internal:merge to force conflict markers, internal:prompt to always select local or other, or internal:dump to leave files in the working directory for manual mergingGreatest common ancestor of the two changesets.GreekGuards: %d/%dGuess RenamesGzip tar archivesHTTP Error: %d (%s)Head is closed!HebrewHg command:Hg file log viewer [%s] - %sHg patches (as generated by export command) are compatible with most patch programs. They include a header which contains the most important changeset metadata.Hide DetailHide TagsHide context menu outside repositoriesHighlight IconHook typeHooksHostHost name and (optional) port of proxy server, for example "myproxy:8000"Host name of mail serverHostname the sender can use to identify itself to the mail server.How many lines a "zebra stripe" should span in multiline output. Default is 1; set to 0 to disable.IconIconsIf no username has been specified, the user will be prompted to enter a username. Default: FalseIf specified, files in the directory, e.g. .hgignore, are copied to the newly-created repository.If true, concatenate multiple lines of changeset summary and truncate them at 80 characters as necessary. Default: FalseIf you still have trouble, please file a bug report.Ignore Ignore Blank LinesIgnore WS AmountIgnore White SpaceIgnore caseIgnore changes in the amount of white space in diff views. Default: FalseIgnore changes in the amount of white space in the annotate view. Default: FalseIgnore changes whose lines are all blank in diff views. Default: FalseIgnore changes whose lines are all blank in the annotate view. Default: FalseIgnore filter - %sIgnore white space when comparing lines in diff views. Default: FalseIgnore white space when comparing lines in the annotate view. Default: FalseIgnored*Immediate OperationsImport - %sImport from ClipboardImport to &MQIn &Current RevisionIn &Original RevisionIn All &HistoryIn Current &FileIn-Reply-To:IncludeInclude all ancestorsInclude patch queueIncludes:Incoming BookmarksIncoming from %s aborted, ret %dIndicates whether TortoiseHg should attempt to automatically resolve changes from both sides to the same file, and only report merge conflicts when this is not possible. When False, all files with changes on both sides of the merge will report as conflicting, even if the edits are to different parts of the file. In either case, when conflicts occur, the user will be invited to review and resolve changes manually. Default: True.Iniparse must be installed.Iniparse package not foundInitial revisionInline TagsInput new guards for %s:Insufficient access rights, reverting to read-only mode.Insufficient access rights.InterruptedInterrupted graft operation foundInvalid PatternsInvalid Settings - Please provide your ReviewBoard usernameInvalid Settings - The ReviewBoard server is not setupInvalid commandInvalid configuration: %sInvalid date formatInvalid default push revision: %s. Please check your Mercurial configuration (tortoisehg.defaultpush)Invalid glob expressionInvalid regexp expressionInvalid reviewboard plugin. Please download the Mercurial reviewboard plugin version 3.5 or higher from the website below. %sIssue LinkIssue RegexIssue TrackerIssue Tracker PluginIssue Tracker Plugin ErrorIssue Tracker TriggerIssue TrackingIt was not possible to fully load the subrepository list for the repository in:

                                                                                                              %s

                                                                                                              The following subrepositories may be missing, broken or on an inconsistent state and cannot be accessed:

                                                                                                              %sIt was not possible to get the subrepository list for the repository in:

                                                                                                              %sItalicJapaneseKeep original branch names (--keepbranches)Keep original changesets (--keep)Keep patch filesKey IDKey:Keyword SearchKiln BfilesKnown bad revision:Known good revision:KoreanLargefilesLeft ToolbarLet the user update the projrc on incoming:

                                                                                                              • never: [default] Show whether the remote projrc file has changed, but do not update (nor ask to update) the local projrc file.
                                                                                                              • prompt: Look for changes to the projrc file. If there are changes _always_ show a confirmation prompt, asking the user if it wants to update its local projrc file.
                                                                                                              • auto: Look for changes to the projrc file. Use the value of the "projrc.confirm" configuration key to determine whether to show a confirmation dialog or not before updating the local projrc file.

                                                                                                              Default: neverLicenseLike "keyword(string)" but accepts a regex.LineList Optio&nsList of Servers from which "projrc" configuration files must be pulled. Set it to "*" to pull from all servers. Set it to "default" to pull from the default sync path. Default is pull from NO servers.List of all toolsList of settings that will NOT be pulled from the project configuration file. Default is exclude none of the included settings.List of settings that will be pulled from the project configuration file. Default is include NO settings.List updated files (--verbose)Load &All RevisionsLoad all revisions into graphLoading repository %sLocal HostnameLocal PathLocal Path:Local Repository %sLocal disks onlyLocal revision informationLocal signLocal tagLocation of local clone of organizational lock repository.

                                                                                                              This repository must contain a "locked" text fileLocation:Lock CloneLock a file not described in .hglocksLock of %s failed, retryLock of %s successfulLock or unlock filesLocked And Lockable Files:Locked*Locking %sLocking UserLogLog Batch SizeLong SummaryMMQ &OptionsMQ Git FormatMQ QPushPushMQ QPushPush allMQ optionsMa&nifest ModeMake MQ patches secret (instead of draft). Default: FalseMake repo compatible with Mercurial <1.7Making a "draft" revision "secret" is generally a safe operation. However, there are a few caveats: - "secret" revisions are not pushed. This can cause you trouble if you refer to a secret subrepo revision. - If you pulled this revision from a non publishing server it may be moved back to "draft" if you pull again from that particular server. Please be careful!Manage HTTPS connection security and user authenticationManage pending perforce changelistsMandatory Issue ReferenceManually resolve rejected chunks?Manually resolve rejected patch chunksMark as &UnresolvedMark this chunk as resolved, goto next unresolvedMark this chunk as unresolvedMark this file as resolvedMark this file as unresolvedMatch TextMatch any of %d revisionsMax ChangesMax Diff SizeMax FilesMaximum number of changes to list on the changelog. Default: 10Maximum number of files to list per changeset. Default: 10Members of a set with no children in set.Menu BehaviorMercurial Re&solveMercurial UserMercurial command is still running. Are you sure you want to terminate?Mercurial keyring extension is enabled. Passwords will be stored in a platform-native secure method.Mercurial was unable to find an editor. Please configure Mercurial to use an editor installed on your system.MergeMerge - %sMerge - allow to merge with local changesMerge all pending dependenciesMerge caused file conflictsMerge changesetMerge from (other revision)Merge rejected patch chunks into %sMerge revision not specified or not foundMerge to (working directory)Merge using selected merge toolMerge with %sMerge with the other head of the current branchMerging...MessageMessage FontMessage Translation FailureMessage identifier to reply to, for threadingMethod to enable TLS when connecting to mail server. Default: noneMin Similarity: %d%%Minimum ProtocolMinimum SizeMissing informationModi&fy HistoryMonitor Repo ChangesMonitor working
                                                                                                              directory changesMoveMove all files leftMove all files rightMove applied patches into repository historyMove changes between working dir and patchMove selected chunks leftMove selected chunks rightMove selected file leftMove selected file rightMoved tag %s to changeset %s (from changeset %s)Multiple selection context menuMultiple sources chosenNameName associated with commits. The common format is:
                                                                                                              Full Name <email@example.com>Name or email address of the person in charge of the repository.Named branch "%s" already exists, last used in revision %d New &GroupNew &WorkbenchNew Branch: New Commit PhaseNew GroupNew Name:New Patch BranchNew Repo SkeletonNew RepositoryNew ShelfNew Tool ...New file createdNew hookNew patch message:New patch queue nameNew shelf createdNextNext DiffNext diffNo DatesNo appropriate filesNo backup (-n/--nobackup)No branch changesNo chunks remainNo commitNo deletable chunksNo diff tool foundNo editor foundNo file changesNo files checkedNo files found for this operationNo files selectedNo files to findNo host specifiedNo host validation, but still encrypted (bad)No ignored files foundNo incoming changesets from %sNo issue link was found in the commit message. The commit message should contain an issue link. Configure this in the 'Issue Tracking' section of the settings.No items to displayNo matches foundNo merge conflicts, ready to commitNo merge conflicts, ready to commit or reviewNo modified files checkmarked for commitNo operation to performNo outgoing changesetsNo outgoing changesets to %sNo patch branch selectedNo pending Perforce changelistsNo remote repository URL or path setNo repository foundNo revision foundNo shell configuredNo transaction availableNo trash files foundNo unknown files foundNo username configuredNo valid default remote repository URL or path has been configured for this repository.

                                                                                                              Please type and save a remote repository path on the Sync widget.No visual diff tools were detectedNo visual editor configuredNone - simply pull changesetsNordicNormalize file line endings during and after patch to lf or crlf. Strict does no normalization. Auto does per-file detection, and is the recommended setting. Default: strictNot a Mercurial subrepo, not previewableNot a head revision!Not a head, backout will create a new head!Nothing CommittedNothing changed.Nothing to importNothing to pushOKObsolete state:On repowidget, show forOne or more of the changesets that you are attempting to push involve the creation of a new branch. Do you want to create a new branch in the remote repository?Only consider deleted filesOnly files modified/created in this revisionOnly files modified/created since:Onto destinationOpenOpen &TerminalOpen S&ubrepositoryOpen a (nonmergable) file you wish to be lockedOpen a new named branchOpen a shell terminal in the repository rootOpen a shell terminal in the selected folderOpen advanced query editorOpen all repositories in new tabsOpen hgweb configOpen new tabs next to the current tabOpen parent folder of current file in the system file managerOpen shelve toolOpen the repository in a file browserOpen the repository in a new tabOpen the selected folder in the system file managerOpen the selected subrepositoryOperation aborted:

                                                                                                              %(arg0)s.Operation which is performed directly after a successful pull. update equates to pull --update, fetch equates to the fetch extension, rebase equates to pull --rebase, updateorrebase equates to pull -u --rebase. Default: noneOptional. Comma-separated list of host names that should bypass the proxyOptional. Method to use to send email messages. If value is "smtp" (default), use SMTP (configured below). Otherwise, use as name of program to run that acts like sendmail (takes "-f" option for sender, list of recipients on command line, message on stdin). Normally, setting this to "sendmail" or "/usr/sbin/sendmail" is enough to use sendmail to send messages.Optional. PEM encoded client certificate chain file. Environment variables are expanded in the filename.Optional. PEM encoded client certificate key file. Environment variables are expanded in the filename.Optional. Password to authenticate with at the proxy serverOptional. Password to authenticate with. If not given, and the remote site requires basic or digest authentication, the user will be prompted for it.Optional. User name to authenticate with at the proxy serverOptional. Username to authenticate with. If not given, and the remote site requires basic or digest authentication, the user will be prompted for it. Environment variables are expanded in the username letting you do foo.username = $USER.OptionsOptions:Or use:Order the subrepos as in .hgsubOriginal Parent:Other revision informationOutgoing BookmarksOutgoing aborted, ret %dOutgoing to %s aborted, ret %dOutput FontOverlaysP&ull BookmarkP&ushPDF docs (*.pdf)PEM files (*.pem *.crt *.cer)PEM files (*.pem *.key)Pair selection context menuParent 1:Parent 2:Parent:ParentsPasswordPassword to authenticate to mail server withPassword to authenticate with review boardPassword:Paste &FilenamesPatch Branch ToolbarPatch EOLPatch Files (*.patch)Patch Name RequiredPatch QueuePatch Queue Actions ToolbarPatch date:Patch exportedPatch failed to applyPatch files (*.diff *.patch)Patch files already existPatch fold - %sPatch message:Patch name:Patch series description is sent in initial summary email with [PATCH 0 of N] subject. It should describe the effects of the entire patch series. When emailing a bundle, these fields make up the message subject and body. Flags is a comma separated list of tags which are inserted into the message subject prefix.Patch user:Patch:Patch: %sPatches exportedPatches to foldPathPath Edit ToolbarPath to review board example "http://demo.reviewboard.org"Path to the directory where a system-wide cache of bfiles will be storedPath to the directory where a user's cache of largefiles will be storedPath:Paths in Repository Settings:PatternsPending Perforce Changelists - %sPerforce pending...Perforce:Perform a push before updating (-p/--push)PhasePlace Console in Doc&k AreaPlain, do not prepend Hg headerPlease configure a visual editor.Please enable and configure simplelockPlease enable the Gpg extension first.Please enable the Topic extension first.Please enter a usernamePlease enter commit messagePlease report this bug to our bug trackerPlease set a valid URL to continue.Please wait while committing merged files.Please wait while making backout.Please wait while the file is opened ...Please wait...PopPop allPortPort to connect to on mail server. Default: 25Port to listen onPort:Post &ReviewPost Pull BehaviorPost Pull: Post ReviewPost Selected to Review Board...Post to Re&view Board...Predecessors:Prepare to backoutPrepare to mergePreserve files beginning with .hgPrevPreviewPreview:Previous DiffPrevious diffPreviously the subrepository was at the following revision:ProjrcProxyPrune - %sPublish request immediatelyPullPull from %s aborted, ret %dPull from %s completedPull incoming changesPull incoming changes from %sPull incoming changes from selected URLPull incoming changesets into your repositoryPull subrepos from:Pull to here...Pulled remote bookmark: %sPulling from %s...PurgePurge Patch QueuePurposePus&hPush &AllPush After CommitPush After Commit:Push Requires SSLPush Selected &BranchPush allPush current branch (%s)Push outgoing changesPush outgoing changes to %sPush outgoing changes to selected URLPush to %s abortedPush to %s aborted, ret %dPush to %s completedPush to &HerePush to remote repository %s ?Push up to current revision (#%d)Push up to revision #%dPushed local bookmark: %sPushing to %s...QNewQRefreshQueryQuery about changesets affecting the selected filesQuitR&emove BookmarkR&epository Registry OptionsR&ollback/Undo...README not configuredRe&coverRe&move VersionedRe&move from RegistryRe&nameRe&name Patch...Re&name...Readonly*ReadyReady to purge.Ready, double click to lock or unlockRebaseRebase - %sRebase - rebase local commits above pulled changesRebase - use rebase extension (rebase is not active!)Rebase abortedRebase already in progressRebase changeset and descendantsRebase entire source branch (-b/--base)Rebase failedRebase generated merge conflicts that must be resolvedRebase is completeRebase unpublished onto Subversion head (override source, destination)Rebase...Recurse into subrepositoriesRecurse into subrepositories (--subrepos)Redundant authentication infoRefreshRefresh &Task TabRefresh ToolbarRefresh current patchRefresh current repositoryRefresh file listRefresh lock informationRefresh only the current task tabRefresh the Repository Registry listRefreshing locks...RegexpRegexp:Regular expression search patternReject incoming changesetsRelated Paths:ReloadReload FileRemo&ve Subrepository...Remote Update - %sRemote command:RemoveRemove &All Selected FilesRemove &Unmodified FilesRemove Files...Remove authentication data from URLRemove current working revision?Remove files from version controlRemove filter, show rootRemove patch directory ofRemove patches from queue?Remove selected deleted files?Remove the node and all its subnodes. Repositories are not deleted from disk.Remove the selected repository?Remove this subrepository from the current revisionRemoved local bookmark: %sRemoved remote bookmark: %sRemoved tag %sRenameRename - %sRename ErrorRename FileRename PatchRename Patch QueueRename file or directoryRename patch %s to:Rename patch queue '%s' toRename patch...Rename the entryReopen last closed tabReopen last closed tab groupReplaceReplace existing hook?Replace existing tag (-f/--force)Replace the existing patch files. Report only the first match per fileRepositoriesRepositoryRepository ErrorRepository ID:Repository RegistryRepository Registry updatedRepository SettingsRepository command still runningRepository is lockedRepository name to use in the web interface, and by TortoiseHg as a shorthand name. Default is the working directory.Repository not localRepository status & changesRequire confirmationResolve Conflicts - %sResolved conflictsRestart &BranchRestart Mer&geRestart Merge &withRestart all TortoiseHg applications for the following changes to take effect:Resuming rebase already in progressRevRevertRevert &All Files...Revert - %sRevert Files...Revert all file changes?Revert all files to this revisionRevert all working copy changes?Revert file changesRevert file(s) to contents at this revisionRevert files to local or other parent?Revert local file changes?Revert the following files?Revert to RevisionReverting all files will discard changes and leave affected files in a modified state.

                                                                                                              Are you sure you want to use revert?

                                                                                                              (use update to checkout another revision)Reverting p4 changelist...Review BoardReview ID:Review draft posted to %s Review published to %s RevisionRevision #%d (%s) was exported to:

                                                                                                              %s%s%sRevision &DetailsRevision SetRevision Set QueryRevision details context menuRevision has changed to:Revision is &BadRevision is &GoodRevision to Match:Revision:Revisions to Match:Right ToolbarRollback commit to revision %dRollback to revision %d (undo %s)?Run after a changegroup has been added via push, pull or unbundle, but before the transaction has been committed. Changegroup is visible to hook program. This lets you validate incoming changes before accepting them. Passed the ID of the first new changeset in $HG_NODE and last in $HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-zero status will cause the transaction to be rolled back and the push, pull or unbundle will fail. URL that was source of changes is in $HG_URL.Run after a changegroup has been added via push, pull or unbundle. ID of the first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL.Run after a changeset has been created but the transaction not yet committed. Changeset is visible to hook program. This lets you validate commit message and changes. Exit status 0 allows the commit to proceed. Non-zero status will cause the transaction to be rolled back. ID of changeset is in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and $HG_PARENT2.Run after a changeset has been created in the local repository. ID of the newly created changeset is in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and $HG_PARENT2.Run after a changeset has been pulled, pushed, or unbundled into the local repository. The ID of the newly arrived changeset is in $HG_NODE. URL that was source of changes came is in $HG_URL.Run after a pushkey (like a bookmark) is added to the repository. The key namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) is in $HG_OLD, and the new value is in $HG_NEW.Run after a tag is created. ID of tagged changeset is in $HG_NODE. Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in repository if $HG_LOCAL=0.Run after listing pushkeys (like bookmarks) in the repository. The key namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary containing the keys and values.Run after sending changes from local repository to another. ID of first changeset sent is in $HG_NODE. Source of operation is in $HG_SOURCE.Run after updating the working directory. Changeset ID of first new parent is in $HG_PARENT1. If merge, ID of second new parent is in $HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the update failed (e.g. because conflicts not resolved), $HG_ERROR=1.Run before a changegroup is added via push, pull or unbundle. Exit status 0 allows the changegroup to proceed. Non-zero status will cause the push, pull or unbundle to fail. URL from which changes will come is in $HG_URL.Run before a pushkey (like a bookmark) is added to the repository. Non-zero status will cause the key to be rejected. The key namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) is in $HG_OLD, and the new value is in $HG_NEW.Run before collecting changes to send from the local repository to another. Non-zero status will cause failure. This lets you prevent pull over HTTP or SSH. Also prevents against local pull, push (outbound) or bundle commands, but not effective, since you can just copy files instead then. Source of operation is in $HG_SOURCE. If "serve", operation is happening on behalf of remote SSH or HTTP repository. If "push", "pull" or "bundle", operation is happening on behalf of repository on same system.Run before creating a tag. Exit status 0 allows the tag to be created. Non-zero status will cause the tag to fail. ID of changeset to tag is in $HG_NODE. Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in repository if $HG_LOCAL=0.Run before listing pushkeys (like bookmarks) in the repository. Non-zero status will cause failure. The key namespace is in $HG_NAMESPACE.Run before starting a local commit. Exit status 0 allows the commit to proceed. Non-zero status will cause the commit to fail. Parent changeset IDs are in $HG_PARENT1 and $HG_PARENT2.Run before updating the working directory. Exit status 0 allows the update to proceed. Non-zero status will prevent the update. Changeset ID of first new parent is in $HG_PARENT1. If merge, ID of second new parent is in $HG_PARENT2.Running at %sRunning...RussianS&tatus BarS&ync ToolbarS&ynchronizeSMTP HostSMTP PasswordSMTP PortSMTP TLSSMTP UsernameSSH CommandSSL error: %sSSL: Server certificate verify failedSSL: unknown error %s:%sSa&ve Current Sync Paths on ExitSaveSave GlobalSave Open Repositories on E&xitSave PathSave changes before editing?Save current URL under an aliasSave error report toSave file as it appeared at this revisionSave file toSave hgweb configSave in RepoScan &Remote RepositoriesSearchSearch HistorySearch Selected TextSearch already in progressSearch commit message, user name, and names of changed files for string.Search file revisions for patternsSearch in All &HistorySearchingSearching...Second parent for all changesets in set, or the working directory.Secret MQ PatchesSecure HTTPS ConnectionSecuritySecurity: Select &AllSelect &NoneSelect Destination FileSelect Destination FolderSelect Directory containing patchesSelect RepositorySelect Source FileSelect Source FolderSelect Tool:Select User Certificate Chain FileSelect User Certificate Key FileSelect a GUI location to edit:Select an existing repository to add as a subrepoSelect branch of merge commitSelect bundle fileSelect destination repositorySelect if TortoiseHg will show a target combo in the sync toolbar.

                                                                                                              • auto: The default. Show the combo if more than one target configured.
                                                                                                              • always: Always show the combo.

                                                                                                              Default: autoSelect patch folderSelect patchesSelect post-pull operation for this repositorySelect repositorySelect repository directory to addSelect repository directory to openSelect source repositorySelect the initial revision that will be selected when opening a repository. You can select the "current" (i.e. the working directory parent), the current "tip" or the working directory ("workingdir"). Default: currentSelect the initial widget that will be shown when opening a repository. Default: revdetailsSelect the revisions that will be pushed by default, whenever you click the Push button.

                                                                                                              • all: The default. Push all changes in all branches.
                                                                                                              • branch: Push all changes in the current branch.
                                                                                                              • revision: Push the changes in the current branch up to the current revision.

                                                                                                              Default: allSelect the toolbar or menu to changeSelect when TortoiseHg will show a prompt to activate a bookmark when updating to a revision that has one or more bookmarks.

                                                                                                              • auto: Try to automatically activate bookmarks. When updating to a revision that has a single bookmark it will be activated automatically. Show a prompt if there is more than one bookmark on the revision that is being updated to.
                                                                                                              • prompt: The default. Show a prompt when updating to a revision that has one or more bookmarks.
                                                                                                              • never: Never show any prompt to activate any bookmarks.

                                                                                                              Default: promptSelect when the working directory status list will be refreshed:
                                                                                                              - auto: [default] let TortoiseHg decide when to refresh the working directory status list.
                                                                                                              TortoiseHg will refresh the status list whenever it performs an action that may potentially modify the working directory. This may miss any changes that happen outside of TortoiseHg's control;
                                                                                                              - always: in addition to the automatic updates above, also refresh the status list whenever the user clicks on the "working dir revision" or on the "Commit icon" on the workbench task bar;
                                                                                                              - alwayslocal: same as "always" but restricts forced refreshes to local repos.
                                                                                                              Default: autoSelect when your command will be runSelect whether you want to have a single workbench window. If you disable this setting you will get a new workbench window everytime that you use the "Hg Workbench" command on the explorer context menu. Default: TrueSelected changeset pair not relatedSend &EmailSend changesets as Hg patchesSend single binary bundle, not patchesSending EmailServerServer Repository IDServersSet &Guards...Set AncestrySet Date:Set LogicSet username:Settin&gsSettingsSettings File:Several characters would be lost.Several icons are courtesy of the TortoiseSVN and Tango projectsSh&ow Repository RegistryShelfShelf clearedShelf deletedShelf: %sShellShelve - move local changes to a patchShelve ChangesShould new tabs be open next to the current tab? If False new tabs will be open after the last tab. Default: TrueShow &AuthorShow &DateShow &Patch QueueShow &PathsShow &RevisionShow About DialogShow Conso&leShow DetailShow Family LineShow FunctionShow IconShow IssuesShow Issues...Show LogShow Output LogShow Revision &DetailsShow S&hort PathsShow Tas&k TabShow a full directory path of the repository in the dialog title instead of just the root directory name. Default: FalseShow allShow all version-controlled files in tree viewShow changes from first parentShow changes from second parentShow files changed by this commitShow full authorname in Logview. If not enabled, only a short part, usually name without email is shown. Default: FalseShow indirect revision dependency on the revision graph when filtered by revset. Default: True

                                                                                                              Note: Calculating family line may be slow in some cases. This option is expected to be removed if the performance issue is solved.Show tabs along the side of the bottom half of each repo widget allowing one to switch task tabs without using the toolbar. Default: offShow tags at start of commit message.Show the history of the selected fileShow which function each change is in. Default: FalseShow/Hide hidden changesetsSig&n...Sign - %sSign even if the sigfile is modified (-f/--force)Signature has been addedSimplelockSimplelock extension not enabledSingle Workbench WindowSizeSize (KB)Skip final confirmation page, close after commit.Skipping %s, unable to readSome of the files that you have selected are of a size over 10 MB. You may make more efficient use of disk space by adding these files as largefiles, which will store only the most recent revision of each file in your local repository, with older revisions available on the server. Do you wish to add these files as largefiles?Sort by &NameSort by &PathSort set by keys. The default sort order is ascending, specify a key as "-key" to sort in descending order.Sort the group by full pathSort the group by short nameSourceSource does not exist.Source:South-Eastern EuropeSouthern EuropeSpace separated list of branch names and colors of the form branch:#XXXXXX. Spaces and colons in the branch name must be escaped using a backslash (\). Likewise some other characters can be escaped in this way, e.g. \u0040 will be decoded to the @ character, and \n to a linefeed. Default: None (leave blank)Space separated list of shell operations you would like to be performed immediately, without user interaction. Commands are "add remove revert forget". Default: None (leave blank)Space separated list of tags that will not be shown. Useful example: Specify "qbase qparent qtip" to hide the standard tags inserted by the Mercurial Queues Extension. Default: None (leave blank)Specify name of new shelfSpecify the command to launch your preferred terminal shell application. If the value includes the string %(reponame)s, the name of the repository will be substituted in place of %(reponame)s. Similarly, %(root)s will be the full path to the repository. (restart needed)
                                                                                                              Default, Windows: cmd.exe /K title %(reponame)s
                                                                                                              Default, OS X: not set
                                                                                                              Default, other: xterm -T "%(reponame)s"Specify the number of spaces that tabs expand to in various TortoiseHg windows. Default: 8Specify the path to GPG. Default: gpgSpecify the target filesystem where TortoiseHg monitors changes. Default: localonlySpecify visual diff tool, as described in the [merge-tools] section of your Mercurial configuration files. If left unspecified, TortoiseHg will use the selected merge tool. Failing that it uses the first applicable tool it finds.Specify visual editor, as described in the [editor-tools] section of your Mercurial configuration files. If left unspecified, TortoiseHg will use the first applicable tool it finds.Specify which task buttons you want to show on the task toolbar and in which order.
                                                                                                              Type a list of the task button names. Add separators by putting "|" between task button names.
                                                                                                              Valid names are: log commit sync grep and pbranch.
                                                                                                              Default: log commit grep pbranch | syncSpecify your preferred user interface language (restart needed)StartStart a new patch branchStart revision:Start web server for this repositoryStatStatusStatus File List ToolbarStatus:StopStop current operationStoppedStrikeStrip - %sStrip:StripesStripping Mercurial header removes username and parent information. Only useful if recipient is not using Mercurial (and does not like to see the headers).StyleSub menu items:Subject:Submitting p4 changelist...Subrepo '%s' has a non trivial default sync URL:

                                                                                                              %s

                                                                                                              Replace it with the following URL?:

                                                                                                              %sSubrepo added to .hgsub fileSubrepo created and set to initial revision.Subrepo initialized to revision:Subrepo may be damaged or inaccessible.Subrepo removed from repository.Subrepo state is:Subrepo statesSubrepo was not changed.Subrepository already existsSubrepository not foundSubrepository not found in the working directory.Subrepository removed from .hgsubSubversion:SuccessSuccessors:Suggested length of commit message lines. A red vertical line will mark this length. CTRL-E will reflow the current paragraph to the specified line length. Default: 80Summary (first description line)Summary Line LengthSummary:Swap source and destinationSyncSync BookmarksSynchronizeSynchronize with dragged repositorySynchronize with remote repositorySyntax HighlightingSystem CacheTLS 1.0TLS 1.1TLS 1.2Tab WidthTab cannot exitTag '%s' has been addedTag '%s' has been movedTag '%s' has been removedTag - %sTag:Tagged:Tags:Take &OtherTar archive compressed using bzip2Tar archive compressed using gzipTar archivesTarget ComboTarget GroupsTarget PeopleTarget:Task TabsTask Toolbar OrderTaskbarTemporarily disable configured HTTP proxyTemporary files are removed when this dialog is closedTerminated by userTest this revision and report findings. (good/bad/skip)Text Translation FailureText files (*.txt)Textual description of the repository's purpose or contents.ThaiThe .hgsub file already contains the line:

                                                                                                              %sThe changes from revision %s and all unmerged parents will be discarded. Are you sure this is what you want to do?The command "%s" could not be executed.The command "%s" failed (code %d).The command that will be executed. To execute a Mercurial command use "hg" (rather than "hg.exe") as the executable command. You can use several {VARIABLES} to compose your command. Common variables: - {ROOT}: The path to the current repository root. - {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id hashes respectively formatted as a revset expression. - {SELECTEDFILES}: The list of files selected by the user on the revision details file list. - {FILES}: The list of files touched by the selected revisions. - {ALLFILES}: All the files tracked by Mercurial on the selected revisions. Pair selection variables: - {REV_A} / {REVID_A}: the first selected revision number / hexadecimal revision id hash respectively. - {REV_B} / {REVID_B}: the second selected revision number / hexadecimal revision id hash respectively. The command that will be executed. To execute a python function prepend the command with "python:". The default repository id for this repo on the review board serverThe destination "%s" already exists as a file!The destination "%s" already exists as a folder!The destination must be within the repository tree.The directory "%s" is not empty! Do you want to overwrite it?The directory where the command will be executed. If this is not set, the root of the current repository will be used instead. You can use the same {VARIABLES} as on the "Command" setting. The editor used by Mercurial command line commands to collect multiline input from the user. Most notably, commit messages.The exception error message was:

                                                                                                              %s

                                                                                                              The file "%s" already exists! Do you want to overwrite it?The following error message was returned: "%s" Please check that the command path is valid and that it is a valid applicationThe following error message was returned: %sThe hook name cannot contain any spaces, tabs or '=' characters.The hook name. It cannot contain spaces.The maximum size file (in KB) that TortoiseHg will show changes for in the changelog, status, and commit windows. A value of zero implies no limit. Default: 1024 (1MB)The named bookmark or all bookmarks.The named tag or all tags.The number of revisions to read and display in the changelog viewer in a single batch. Default: 500The phase of new commits. Default: draftThe selected command is emptyThe selected folder:

                                                                                                              %s

                                                                                                              is not inside the target repository.

                                                                                                              This may be allowed but is greatly discouraged.
                                                                                                              If you want to add a non trivial subrepository mapping you must manually edit the .hgsub fileThe selected repository:

                                                                                                              %s

                                                                                                              cannot be open!The selected repository:

                                                                                                              %s

                                                                                                              is already a subrepository of:

                                                                                                              %s

                                                                                                              as: "%s"The selected revision (%s) has a bookmark on it called "%s".

                                                                                                              Do you want to activate it?
                                                                                                              You can disable this prompt by configuring Settings/Workbench/Activate BookmarksThe selected revision (%s) has %d bookmarks on it.

                                                                                                              Select the bookmark that you want to activate and click OK.

                                                                                                              Click Cancel if you don't want to activate any of them.

                                                                                                              You can disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                                                                              The selected revision (rev #%d) cannot be imported because it is not a descendant of qparent (rev #%d)The selected subrepo:

                                                                                                              %s

                                                                                                              has been added to the .hgsub file of the repository:

                                                                                                              %s

                                                                                                              Remember that in order to finish adding the subrepo you must still commit the changes to the .hgsub file in order to confirm the addition of the subrepo.The selected subrepository has been removed from the .hgsub file.

                                                                                                              Remember that you must commit this .hgsub change in order to complete the removal of the subrepository!The selected subrepository was not found on the .hgsub file.

                                                                                                              Perhaps it has already been removed?The set of all parents for all changesets in set.The source must be within the repository tree.The subrepository is dirty.The tool icon. You can use any built-in TortoiseHg icon by setting this value to a valid TortoiseHg icon name (e.g. clone, add, remove, sync, thg-logo, hg-update, etc). You can also set this value to the absolute path to any icon on your file system.The tool label, which is what will be shown on the repowidget context menu. If no label is set, the tool name will be used as the tool label. If no tooltip is set, the label will be used as the tooltip as well.The tool name cannot have any spaces in it.The tool name. It cannot contain spaces.The tooltip that will be shown on the tool button. This is only shown when the tool button is shown on the workbench toolbar.The working directory is already merged. Continue or discard existing merge.There are existing patch files for %d revisions (%s) in the selected location (%s). There are merge conflicts to be resolvedThere are no configured sync paths. Open the Synchronize tab to configure them.There are no conflicting file merges.There are no file changes to viewThere are no files that may have been renamedThere is already an existing folder with that same name.There is an existing %s.%s hook. Do you want to replace it?There is no rollback transaction availableThg - TortoiseHg's GUI tools for Mercurial SCM (Hg) This appears to be a binary file.This error will not be shown again until you restart the workbenchThree-way Merge ToolTitleToTo finish merging, you must commit the working directory. To cancel the merge you can update to one of the merge parent revisions.To graft destinationTo rebase destinationTo:Toggle display of text search barToggle filtering of non-matched changesetsToggle graft relations visibilityToggle parent to be used as the base revisionTolerate non-conflicting local changes (--keep-changes)Too many rows selected for menuTool &ResolveTool labelTool launch failureTool nameToolsTools shown on selected locationTooltipTop menu items:Top&ic...Topic '%s' does not existTopic '%s' has been addedTopic '%s' has been removedTopic '%s' has been renamed to %sTopic - %sTopic:TortoiseHg Bookmark SyncTortoiseHg Bug ReportTortoiseHg Command DialogTortoiseHg CommitTortoiseHg Dialogs (version %s), Mercurial (version %s) TortoiseHg ErrorTortoiseHg Lock Tool - %sTortoiseHg New Shelf NameTortoiseHg Overlay Icon ServerTortoiseHg PromptTortoiseHg SearchTortoiseHg SettingsTortoiseHg Shelve - %sTortoiseHg Web ServerTortoiseHg WorkbenchTortoiseHg has created a new .hgignore file. Would you like to add this file to the source code control repository?TortoiseHg: %sTraditional ChineseTransplant:Trigger revision set queryTry refreshing your repository.TurkishTypeU&nbundle...UI LanguageURLURLError: %sUkrainianUnable to backoutUnable to compress historyUnable to create a Mercurial.ini fileUnable to create a config fileUnable to delete %d file or folderUnable to delete %d files or foldersUnable to determine pending changesetsUnable to determine working copy revision Unable to find changesetUnable to mergeUnable to merge chunksUnable to parse p4pending outputUnable to read fileUnable to read repository statusUnable to removeUnable to remove URLUnable to remove file %s, permission deniedUnable to save after commit pushUnable to save an URLUnable to save authenticationUnable to save auto include listUnable to save post pull operationUnable to save recurse in subrepos.Unable to save usernameUnable to show subrepository filesUnable to start the following command:Unable to translate input to local encoding.Unable to translate message to local encoding. Consider setting HGENCODING environment variable. Replace untranslatable characters with "?"? Unable to update repository nameUnable to write .hgignore fileUnable to write configuration fileUnable to write diff fileUnable to write fileUnapply all patchesUnapply one patchUnbundleUncheckUncheck all filesUncheck to consider all revisioned files for copy sourcesUncommited merge - please select a parent revisionUncompressed tar archiveUncompressed zip archiveUnderlineUndo close other tabsUndo close tabUndo last commit?Undo last transaction?Undo most recent commit (%d), preserving file changes?UnicodeUnified ChineseUnknown revision!Unlock of %s failed, retryUnlock of %s successfulUnlocking %sUnresolved conflictsUnresolved conflicts remain. Are you sure?Unsaved changes will be lost. Do you want to reload?Unsupported repository type (%s)UnversionedUpdateUpdate - %sUpdate - pull, then try to updateUpdate IconsUpdate ReviewUpdate icons for this repositoryUpdate on incomingUpdate or create a path alias called '%s' on all subrepos, using this URL as the base URL, appending the local relative subrepo path to itUpdate subrepo pathsUpdate the fields of this existing requestUpdate to:Update working directoryUpdate working directory or switch revisionsUpdate...UpdateOrRebase - pull, then try to update or rebaseUpdateOrRebase - use rebase extension (rebase is not active!)Updating repository registryUpgrading to a more recent TortoiseHg is recommended.Use English backout messageUse English commit messageUse alternative graph layouter for large repositories. Default: False

                                                                                                              Note: This layouter colors edges using branch information and does not display graft edges, regardless of whether they are requested or not.Use compact viewUse current dateUse custom commit message:Use extended (git) patch formatUse git extended diff header format. Default: FalseUse largefilesUse my user name instead of graft committer user nameUse optimized graph layouterUse proxy serverUse pull protocol to copy metadataUserUser AuthenticationUser CacheUser Certificate ChainUser Certificate KeyUser authentication data should be associated with the hostname using the security dialog.User name to authenticate with review boardUser:UsernameUsername to authenticate to mail server withVerify backout revision and ensure your working directory is clean.Verify merge targets and ensure your working directory is clean.Verify with Certificate Authority certificates (best)Verify with stored host fingerprint (good)Vi&ew FileVietnameseView File atView O&therView change as unified diff outputView change history in repositoryView change history of selected filesView change in context of fileView changes to current in external diff toolView changes using GUI diff toolView file as it appeared at this revisionView file changes in external diff toolView the repository's settingsVisual DiffVisual Diff ToolVisual Diff...Visual Diffs - Visual EditorVisual diff between resolved file and first parentVisual diff between resolved file and second parentVisual diff...Visual diffs are not supported for files in subrepositories. They will not be shown.Visual three-way diffWarningWarning: affects all Tortoises, logoff required after changeWas renamed fromWeb ServerWebconfWestern EuropeWhat do you want to do? When committing, require that a reference to an issue be specified. If enabled, the regex configured in 'Issue Regex' must find a match in the commit message.When enabled, automatically show the Output Log when the command is run. Default: False.When running from the command line, fork a background process to run graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X application bundle. Default: TrueWhen set to 'auto', mq will automatically use git patches when required to avoid losing changes to file modes, copy records or binary files. If set to 'keep', mq will obey the [diff] section configuration while preserving existing git patches upon qrefresh. If set to 'yes' or 'no', mq will override the [diff] section and always generate git or regular patches, possibly losing data in the second case. Default: autoWhen to ask the user to confirm the update of the local "projrc" configuration file when the remote projrc file changes. Possible values are:

                                                                                                              • always: [default] Always show a confirmation prompt before updating the local .hg/projrc file.
                                                                                                              • first: Show a confirmation dialog when the repository is cloned or when a remote projrc file is found for the first time.
                                                                                                              • never: Update the local .hg/projrc file automatically, without requiring any user confirmation.
                                                                                                              Whether Git subrepositories are allowed in the working directory. Default: False

                                                                                                              See the security note before enabling Git subrepos.Whether Mercurial subrepositories are allowed in the working directory. Default: TrueWhether Subversion subrepositories are allowed in the working directory. Default: False

                                                                                                              See the security note before enabling Subversion subrepos.Whether to allow pushing to the repository. If empty or not set, push is not allowed. If the special value "*", any remote user can push, including unauthenticated users. Otherwise, the remote user must have been authenticated, and the authenticated user name must be present in this list (separated by whitespace or ","). The contents of the allow_push list are examined after the deny_push list.Whether to deny pushing to the repository. If empty or not set, push is not denied. If the special value "*", all remote users are denied push. Otherwise, unauthenticated users are all denied, and any authenticated user name present in this list (separated by whitespace or ",") is also denied. The contents of the deny_push list are examined before the allow_push list.Whether to require that inbound pushes be transported over SSL to prevent password sniffing.Which template map style to useWhite&spaceWord docs (*.doc *.docx)Work on patch queue (--mq)WorkbenchWorkbench Log ColumnsWorkbench custom toolbarWorking CopyWorking DirectoryWorking Directory (merged)Working directoryWorking directory is not clean! View changes...Working directory statusWrap searchWrite bundleWrite diff fileWrite patch series (bundle) descriptionYou are trying to move the phase of revision %d backwards, from "%s" to "%s". However, "%s" is a lower phase level than "%s". Moving the phase backwards is not recommended. For example, it may result in having multiple heads if you modify a revision that you have already pushed to a server. Please be careful!You can change the icon set from TortoiseSVN's SettingsYou can only release your own locksYou can visit our site hereYou cannot merge a revision with itselfYou have authentication info configured for this host and inside this URL. Remove authentication info from this URL?You have marked all rejected patch chunks as resolved yet you have not modified the file on the edit panel. This probably means that no code from any of the rejected patch chunks made it into the file. Are you sure that you want to leave the file as is and consider all the rejected patch chunks as resolved? Doing so may delete them from a shelve, for example, which would mean that you would lose them forever! Click Yes to accept the file as is or No to continue resolving the rejected patch chunks.You have multiple renames selected for destination file: %s. Aborting!You have selected one or more files that have been modified. By default, these files will not be removed. What would you like to do?You likely need to refresh this applicationYou may continue or start the graftYou may continue the compressYou may continue the graftYou may continue the rebaseYou must enter a patch nameYou must identify yourself to MercurialYou must provide revisions to graftYou must provide source and dest argumentsYou must provide the path to a fileYou must set a command to run.You must set a tool name.You must set a valid hook type.Your TortoiseHg is up to date.Your current working revision (%d) will be removed by this rollback, leaving uncommitted changes. Continue?Zip archive compressed using deflateZip archives[--after PATCH] PATCH...[--insecure] [SOURCE][Code: %d][WARNING] Incomplete changed subrepository. Update to this revision to pull it.[WARNING] Incomplete subrepo. Update to this revision to pull it.[WARNING] Invalid subrepo revision ID: %s [WARNING] Missing changed subrepository. Update to this revision to clone it.[WARNING] Missing subrepo. Update to this revision to clone it.[command completed successfully %s][command interrupted %s][command returned code %d %%s][command terminated by user %s][non-existant][original][working copy]a revision to posta revision to sendabort: abort: %s abort: %s! action buttonCommitadd diffstat output to messagesaddedall revisions converted from subversionalways fork GUI processattachbasic commands: bodybookmark: branch: bundle file to previewcan not read file "%s". Ignored. cannot move applied patchescannot move into applied patchescannot specify both -k/--query and filenameschangeset %d:%schangeset to view in diff toolchangeset which represents converted svn revisionchangeset: %schangeset: %s (not found on subrepository)cleanclone only the specified branchcolumn headerAgecolumn headerAuthorcolumn headerBranchcolumn headerChangescolumn headerConverted Fromcolumn headerDescriptioncolumn headerFilenamecolumn headerGit Commitcolumn headerGraphcolumn headerLatest tagscolumn headerLocal Timecolumn headerNodecolumn headerPhasecolumn headerRevcolumn headerTagscolumn headerUTC Timecommand parse error: %sconfig itemCommitcorrupted command result: %rdefaultdiffstatdiscard uncommitted changes (no backup)display help and exitdo not back up stripped revisionsdo not commit the sigfile after signingdo not fork GUI processdo not modify working copy during stripdo not verify server certificate (ignoring web.cacerts config)enable additional outputenable debugging outputeol is incompatible with win32texterror while running command exec mode has been setexec mode has been unsetfailed to encode command: %sfailed to encode input: %sfailed to fork GUI process: %s failed to start command field to give initial focusfile has been deleted, refreshfile has been modified, refreshfilesfilesAllfilesNonefilling (%d)filterglobal options:grep: %s grep: invalid match pattern: %s hggit packaged with thghgsubversion is incompatible with perfarcehgsubversion packaged with thghint:hint: historyhttps://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings.html#tsvn-dug-settings-icon-setignore case during searchignoredimport to the patch queue (MQ)in the futureinclude the specified changesetinitial search patterninlineinotify is not supported on this platforminvalid "hello" message: %rinvalid argumentsinvalid line number: %sinvalid patch position specifiedkeep original branch nameskeep original changesetslaunch visual diff toollist of commands: locallsprof not available - install from http://codespeak.net/svn/user/arigo/hack/misc/lsprof/make the signature localmake the tag localmerge with old dirstate parent after backoutmethodmissingmodifiedmove after the specified patchmust be specified 'type' in stylemust be specified repositoryname of the hgweb config file (DEPRECATED)name of the hgweb config file (serve more than one repository)needs merge of %i heads needs merge with %s needs merge with %s (through %s) needs update of diff base to tip of %s no "runcommand" capabilityno command specifiedno commands defined no guardsno matches found: %sno outgoing changesetsno outgoing changesets in current branch (%s) / %d in totalno outgoing changesets up to current revision (#%d) / %d in totalno outgoing changesets up to revision #%d / %d in totalno repo at no revisions specifiednotify the shell for paths givennownull revision (i.e. remove file(s))only one new bookmark name allowedonly one new topic name allowedopen a new workbench windowopen the bookmark sync windowopen to lineopen...option --config may not be abbreviated!options: parent to choose when backing out mergepassword: patch %s not in seriesperfarce is incompatible with hgsubversionprint command execution profileprint licenseprocess exited unexpectedly with code %dpull: %s push: %sread file list from fileread file list from file encoding utf-8rebase from the specified changesetrebase onto the specified changesetrecord datecode as commit daterecord user as committerremove a tagremove the status cacheremove working directoryremovedreplace existing tagrepository %s not foundrepository root directory or symbolic path namerequires a single filenamerev: %d (%s)reviewboard extension not enabledrevisionrevision %d's first parent (i.e. revision %d)revision %d's second parent (i.e. revision %d)revision to annotaterevision to archiverevision to backoutrevision to displayrevision to mergerevision to striprevision to tagrevision to updaterevision, tag or branch to check outrevisions %d:%s to %d:%srevisions to graftrevisions to prunerevisions to view in diff toolsearch for a given text or revsetsee %(url)sselect the specified revisionselected filessend patches as attachmentssend patches as inline attachmentssend patches as part of the email bodyset/override config option (use 'section.name=value')show files without changesshow ignored filesshow the contents of the status cache (no update)side-by-side comparison of revisionssign even if the sigfile is modifiedstart debuggerstart progressCommitstart progressMQ Actionstart progressRollbackstatussubreposuppress outputsync command already runningtab tooltipCommittab tooltipConsole logtab tooltipPatch Branchtab tooltipRevision detailstab tooltipSearchtab tooltipSynchronizethe clone will include an empty working copy (only a repository)the key id to sign withthe revision to showthg %s: %s thg aboutthg add [FILE]...thg annotatethg archivethg backout [OPTION]... [[-r] REV]thg bisectthg bookmarks [-r REV] [NAME]thg clone [OPTION]... [SOURCE] [DEST]thg commit [OPTIONS] [FILE]...thg debugblockmatcherthg debugbugreport [TEXT]thg debugconsolethg debuglighthgthg debugruncommand -- COMMAND [ARGUMENT]...thg drag_copy SOURCE... DESTthg drag_move SOURCE... DESTthg email [REVS]thg filelog [OPTION]... FILEthg forget [FILE]...thg graft [-r] REV...thg grepthg guessthg help [COMMAND]thg hgignore [FILE]thg import [OPTION] [SOURCE]...thg init [DEST]thg lockthg log [OPTIONS] [FILE]thg manifest [-r REV] [FILE]thg merge [[-r] REV]thg postreview [-r] REV...thg prune [-r] REV...thg purgethg rebase -s REV -d REV [--keep]thg rejects [FILE]thg remove [FILE]...thg rename [SOURCE] [DEST]thg repoconfigthg resolvethg revdetails [-r REV]thg revert [FILE]...thg rupdate [[-r] REV]thg serve [--web-conf FILE]thg shellconfigthg shelvethg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]thg status [OPTIONS] [FILE]thg strip [-k] [-f] [-n] [[-r] REV]thg sync [OPTION]... [PEER]thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]thg thgstatus [OPTION]thg topics [-r REV] [NAME]thg update [-C] [[-r] REV]thg userconfigthg version [OPTION]thg: %s thg: command '%s' is ambiguous: %s thg: unknown command '%s' timed out waiting for messagetimed out while reading: %r...unexpected response on required channel %runknownunknown patch to move specifiedunknown revision!unrecognized profiling format '%s' - Ignored unrecognized response: %sunsupported URL: %supdate all repos in current diruse "thg -v help %s" to show global optionsuse "thg -v help%s" to show aliases and global optionsuse "thg help" for the full list of commandsuse "thg help" for the full list of commands or "thg -v" for detailsuse as commit messageuse only one form to specify the revisionuse pull protocol to copy metadatause uncompressed transfer (fast over LAN)version %swait until the second ticks overwill be closedwin32ill: cannot create window for messageswin32ill: interrupted while stopping message loop win32ill: unsupported platform: %s win32text is incompatible with eolwindow titleCommitwith Mercurial-%s, Python-%s, PyQt-%s, Qt-%sworking changesworking dir stateCleanwrap mode&NoneProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2019-02-05 20:23+0000 Last-Translator: André Sintzoff Language-Team: French MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n > 1; X-Launchpad-Export-Date: 2019-07-17 05:42+0000 X-Generator: Launchpad (build 19009) X-Poedit-Country: FRANCE X-Poedit-Language: French Vérifiez que la commande "thg" est valide. Interruption clavier détectée, abandon. alias : %s (par défaut : %s) (copié de %s) (est un lien symbolique) (n'est pas versionné) (renommé depuis %s) (a été ajouté) (a été ajouté, maintenant manquant) (a été supprimé) filtré"%s" n'est pas un dossier« %s » n'est pas un répertoire valide"%s" est enlevé de l'historique de chemin"%s" est enlevé de l'historique de recherche### texte du filtre ###### empreinte du certificate du serveur ###### nom du patch ###### expression régulière ###### motif de recherche sous forme d'expression régulière ###### requête d'un ensemble de révisions ###utf-8, iso8859-1, cp1252% Corresp%d jour%d jours%d fichiers ont des conflits de fusion qui doivent être résolus%d fichiers sont modifiés dans les deux branches et doivent être résolus%d heure%d heures%d correspondances trouvées%d minute%d minutes%d mois%d mois%d révisions sortantes%d révisions sortantes dans la branche actuelle (%s) / %d au total%d révisions sortantes vers %s%d révisions sortantes jusqu'à la révision actuelle (#%d) / %d au total%d révisions sortantes jusqu'à la révision #%d / %d au total%d patches ont été exportés vers :

                                                                                                              %s%d listes de changement en attente trouvés%d seconde%d secondes%d semaine%d semaines%d an%d ans%d %%%d pt%p%%s (indice : %s)%s (en attente)%s (soumis)%s - Détails de révision (%s)%s - TortoiseHg Workbench%s - Workbench de TortoiseHg - %s%s - opération de branche%s - commit%s - options de commit%s - hg %s%s - purge%s - récupérer le dépôt%s - statut%s - statut (sélection filtrée)%s - options de sync%s - vérifier le dépôt%s : %s%s %s existe déjà, remplacer l'URL ?%s et %s ont des contenus identiques erreur de certificat %s : aucun certificat reçu%s a des morceaux rejetés, éditer le fichier patché avec les rejets ?%s est un sous-dépôt sale%s est ajouté%s a été supprimé en dehors de Mercurial mais est toujours suivi%s est ignoré%s est modifié%s n'est pas un dépôt valide%s n'est pas modifié (propre)%s n'est pas suivi (inconnu)%s est enlevé%s patchsPréférences de projet %s (.hg/projrc)Préférences du dépôt %s%s sera importé vers Préférences globales de %sÀ propos de TortoiseHg&Ajouter&Ajouter un dépôt...&Après indentation&Ancêtres et descendantsAppliquer uniquement ce patch&Archiver&Archiver...&AutoDétection automatique&Auto-complétion&Backout...&Bisect...&BrancheParcourir...Faire un paquet de la révision et descendants...&Annuler&CaractèreEffacer&Cloner&FermerFermer un dépôt&Committer&Committer dans la queue...Committer dans la branche actuelle&Copier&Copier un patch&Copier...&CréerBarre d'outils personnaliséeSupprimerSupprimer des patches...Supprimer une queue...Supprimer les non versionnés...Diff entre l'autre révision et l'ancêtre&Diff entre les révisions des fichiers sélectionnés&Diff avec l'autre version&Diff avec le parentAbandonner&Abandonner (--force)Abandonner les changementsBarre d'outils du &DockÉdit&er le fichierÉdit&er la révision localeBarr&e d'outils d'éditionÉdit&er...Options de l'édit&eur&Exporter par courriel...&Quitter&Faux&FichierBarre d'outils de &filtre&Finir le patchVue à plat&ForcerOublier&Aller (mise à jour du répertoire de travail)Aller à la révision...&Greffer vers la révision locale...Aide&Ignorer...&Importer&Importer des patchs...Entrant&Invisible&Garder (--keep)&Licence&LocalVerrouiller un fichier...&MacRendre secret&Marquer les changements exclus&Marquer comme résolu&Marquer comme non résolu&Marquer comme résoluCorrespondre&FusionnerFusionner avec la révision locale...Fusionner...Plus d'options...Déplacer&Nouveau dépôt...&Non&Non (abandonner les changements)&OuvrirTout &ouvrir&Ouvrir la révision locale&Ouvrir un dépôt...Révision d'&origineAutreSortantRévision &parenteRévision parente (%d)CollerBranche de &patchÉlaguerÉlaguer la sélection (prune)...Élaguer (&prune)...Tirer&Purger une queue...&Purger...&Pousser un signetLisez-moi&Rebaser...&Rétablir&Rafraîchir&Rafraîchir la liste des dépôtsMett&re à jour à distance...Enleve&rEnleve&r un signetEnleve&r...&Renommer&Renommer une queue active...&RemplacerDépôt&Redimensionner les colonnes&Résoudre...&Rétablir&Revenir à la révision...&Rétablir avec sauvegarde&Rétablir...Exécute&rEnregi&strerEnregi&strer à la révision...Parcourir le&s dépôts au démarrageRechercherRechercher dans le fichier actuelDéfinir...Préférences&Shelve&Shelve...&Signer&Sauter cette révisionTrierTrier par .hg&subE&spaces&Strip&Strip... (supprimer des révisions)&Synchroniser des signets...&TABInsertion de &TABÉ&tiquette...Prendre la révision localeBarre d'outils des &tâches&TerminalVraiDé-appliquer un patchAnn&uler&UnixNon spécifiéMettre à jourMettre à jour...&VérifierAffichage&Voir la révisionAfficher les fichiers manquants&Voir à la révision&VisibleServeur &Web&WindowsMotBarres d'outils du &WorkbenchRetour à la ligne&OuiDépôt 'publiant'(%s) (OBSOLÈTE)(exclu du prochain commit)(est un sous-dépôt modifié et sale)(est un sous-dépôt modifié)(est un sous-dépôt sale)(est un sous-dépôt nouveau et sale)(est un nouveau sous-dépôt)(est un sous-dépôt enlevé)(est un sous-dépôt non-modifié)(pas d'aide disponible)(comme le parent)(non enregistré)* : pas utilisé par TortoiseHg, fusion résolue, fusion non résolueDiff 3 voiesDiff de répertoires 3 voiesOuvrir l'outil de configuration...help revsets%d révision sera enlevée%d révisions seront enlevéesAnnoter :Correspondances candidatesDifférences de la source vers la destinationHôte : %sFiltre des fichiers ignorésErreur d'analyse !Détails de dépôt :Rétablir %d fichiers à leur contenu de la révision suivante ?Rétablir %s au contenu de la révision suivante ?Options sélectionnées :Options sélectionnées : %sOptions de sous-dépôts :Changements locaux non commités détectésRévision inconnue !Fichiers non versionnésFichiers non suivisServeur Web := Parent du répertoire de travail =Un fichier LISEZ-MOI n'est pas configuré pour le dépôt actuel.

                                                                                                              Pour configurer un fichier LISEZ-MOI pour un dépôt, ouvrir le fichier de configuration du dépôt, ajouter une clé 'readme' à la section 'tortoisehg' et indiquer le nom du fichier ou l'URL du fichier LISEZ-MOI du dépôt.Un signet nommé "%s" existe déjàUne liste séparée par des virgules des groupes cibles.Une liste séparée par des virgules des personnes cibles.Une nouvelle version de TortoiseHg (%s) est disponible !Un dépôt ne peut pas être ajouté comme sous-dépôt de lui-mêmeUn identifiant de révision, signet, étiquette ou nom de brancheUn fichier "shelf" portant ce nom existe déjàUn nom de "shelf" ne peut pas contenir %sUne console ne peut pas être ouverte à distanceUne console doit être configuréeUn topic nommé "%s" existe déjàAjouter un sous-&dépôt...A&uteurAbandonnerAbandonner l'opération d'exportation. Abandon de p4pendingÀ proposÀ propos de &QtÀ propos de TortoiseHgAccepterAccepter toutes les correspondancesAccepter les correspondances sélectionnéesAccepter la version locale du fichier (la vôtre)Accepter l'autre version du fichier (la leur)Activer les signetsActiver un signet ?Activer :AjouterAjouter des &largefilesAjouter &Largefiles...Ajouter des fichiers...Ajouter le chemin pour Hg serveAjouter un dépôt à ce groupeAjouter comme &LargefilesAjouter comme fichiers &normauxAjouter le fichier dans le gestionnaire de versionAjouter un filtre de fichier ignoré...Les patches d'ajout ou de suppression doivent être fusionnés dans le répertoire de travailAjouter les fichiers sélectionnés non suivis ?Ajouter un séparateurAjouter à la listeAjoutéÉtiquette %s ajoutée à la révision %sOpération après avoir tiréÂge :AliasTout l'historiqueToutes les révisions appartenant aux branches des révisions dans l'ensemble.Toutes les révisions, la même chose que 0:tip.Tous les fichiers en conflit seront marqués non résolus.Tous les conflits sont résolus.Tous les contextesTous les fichiers (*)Tous les fichiers dans cette révisionTous les élémentsToutes les révisionsTous les changements non enregistrés seront perdus.Autoriser les sous-dépôts GitAutoriser les sous-dépôts HgAutoriser les opérations de pousseAutoriser les sous-dépôts SVNAutoriser de pousser une nouvelle branche (--new-branch)Autoriser de pousser de nouvelles branches (--new-branch)Toujours fusionner (si possible)Toujours afficher les onglets de dépôts, même pour un seul dépôt. Par défaut : FauxAmenderAmender la révision actuelleAlias pour "::." (ancêtres du premier parent de la copie de travail).Ensemble vide si aucune révision dans l'ensemble n'est trouvée ; sinon, toutes les révisions dans l'ensemble.Une erreur s'est produite en lisant le fichier.Une erreur s'est produite en mettant à jour le fichier hgrc du dépôt (%s)Une erreur s'est produite en écrivant fichier.Une exception s'est produite lors du chargement du sous-dépôt de :

                                                                                                              "%s"

                                                                                                              Une greffe interrompue a été trouvée. Vous ne pouvez pas réaliser une autre greffe avant d'abandonner la greffe interrompue.Annoter le &fichierOp&tions d'annotationAnnoter avec les numéros de révisionApp&liquer le formatAjouterAjouter les infos de greffe au messageAjouter les changements aux fichiers patch existants. Patches appliquésPatches appliqués ou qparentAppliquer tous les patchesAppliquer les changements avant de sortir ?Appliquer un patchAppliquer uniquement le patch sélectionnéAppliquer seulement ce patchAppliquer sur le parent originalAppliquer un patchArabeArchive - %sContenu de l'archive :Archive la plage de DAG...Formats d'archiveTypes d'archives :Êtes-vous sûr de vouloir annuler l'opération de commit ?Voulez-vous supprimer ces fichiers et/ou ces dossiers ?Voulez-vous le remplacer ?Voulez-vous recharger ce fichier ?Êtes-vous sûr ?Demander le nom d'utilisateurTenter la fusion automatiqueEssayer de pousser vers l'URL ou l'alias spécifié après chaque commit réussi. Par défaut : ne pas pousserAuteurColoriage par auteurListe de commit automatiqueListe d'exclusion automatiqueInclusion automatique :Résoudre automatiquement les fusionsAvancer automatiquement à la page suivante quand le backout et la fusion sont terminées.Avancer automatiquement à la page suivante lorsque la fusion est terminée.Résoudre automatiquement les conflits de fusion dans la mesure du possiblePrécédentBackout sur la révision : Faire un backout d'un révision parente est une opération en une seule étapeEn cours de back out et de commit...Faisant le backout, ensuite fusionnant...Backout - %sRévision de backoutFaire un backout de la branche actuelle de patchFaire un backout nécessite une révision parenteRévision de backout"Backporter" une partie de révision vers une dépendanceRetour arrière ou Suppr pour supprimer la (les) colonne(s)Des copies de sauvegarde des fichiers modifiés se trouvent dans .hg/Trashcan/Changement de phase à l'envers demandéMauvais nom de fichierBalteCopie cachée à (Bcc)Avant le backout, vous devez committer, faire un "shelve" ou abandonner les changements.Avant de compresser, vous devez committer, faire un "shelve" ou abandonner les modifications.Avant de greffer, vous devez committer, faire un "shelve" ou abandonner les modifications.Avant de fusionner, vous devez committer, faire un "shelve" ou abandonner les changements.Avant de "rebaser", vous devez committer, faire un "shelve" ou abandonner les modifications.Bisect - %sBisect - Mauvais, bon...Bisect - Bon, mauvais...GrasSignet...Le signet '%s' n'existe pasLe signet '%s' a été ajoutéLe signet '%s' a été déplacéLe signet '%s' a été enlevéLe signet '%s' a été renommé en '%s'Signet - %sLe signet nommé "%s" n'existe pasSignet :BrancheCouleurs de branchesBranche :Branche : Parcourir à la révisionParcourir le répertoire...Parcourir...Faire un paquet d'une plage de DAGFichiers paquets (bundle) (*.hg)Les paquets contiennent toutes les révisions sous forme binaire. Les autres utilisateurs peuvent tirer depuis ces fichiers. C'est le moyen le plus sûr d'envoyer des modifications à des utilisateurs de Mercurial.Sans mandataireArchives tar Bzip2C&hoisir les colonnes de log...C&onfigurer le formatÉditeur en ligne de commandeNe peut pas changer les préférences sans le paquet iniparse - la vue est en lecture seule.Impossible de trouver la révision '%s'AnnulerImpossible d'ajouter le sous-dépôtNe peut pas faire de backout sur une branche différenteNe peut pas exporter la révisionNe peut pas exporter la révision %s dans le fichier : %s Ne peut pas importer la révision sélectionnéeNe peut pas ouvrir le dialogue des options pluginImpossible d'ouvrir des dépôts ou des sous-dépôts non MercurialNe peut pas ouvrir le dépôtNe peut pas ouvrir le fichier .hgsub dans :

                                                                                                              %sNe peut pas lire le fichier .hgsub.

                                                                                                              La suppression du sous-dépôt a échoué.Impossible de démarrer une nouvelle rechercheNe peut pas mettre à jour le fichier .hgsub dans :

                                                                                                              %sNe peut pas mettre à jour le fichier .hgsub.

                                                                                                              La suppression du sous-dépôt a échoué.Copie à (Cc)Copie à :CeltiqueEurope centrale et de l'EstErreur de requête de certificatChanger la &phase enPolice de changelogChangés par ce commitLes changements ont été déplacés, vous devez committer maintenantLes changements prendront effet au prochain commitLien de révisionLa révision est une révision de fusion.La révision est une tête de branche nommée.La révision est fermée.La révision porte une étiquette.Révision avec le plus grand numéro dans l'ensemble.Révision avec le plus petit numéro dans l'ensemble.Révision :RévisionsRévisions touchant les fichiers correspondants au motif. Voir help patternsRévisions contenant les fichiers correspondants au motif.Révisions non trouvées dans le dépôt de destination spécifié ou la destination de pousse par défaut.Révisions qui sont des ancêtres d'une révision dans l'ensemble.Révisions où le nom d'utilisateur contient le texte.Révisions ajoutant les fichiers correspondants au motif.Révisions qui sont les descendants de révisions dans l'ensemble.Révisions modifiant les fichiers correspondants au motif.Révisions enlevant les fichiers correspondants au motif.Révisions avec aucune révision parente dans l'ensemble.Révisions dans l'intervalle, voir help datesEncodage de caractère des fichiers dans le dépôt, utilisé par l'interface web et TortoiseHg.CocherVérifier la phase des sous-dépôtsCocher tous les fichiersChercher les révisions entrantesChercher les révisions entrantes depuis %sChercher les révisions entrantes de l'URL sélectionnéeVérifier la phase de la révision actuelle de chaque sous-dépôt. Si une autre valeur que "ignore", la phase de la révision actuelle de chaque sous-dépôt est vérifiée avant de committer le dépôt parent. Par défaut : followCochés : %dVérification en coursVérification des mises à jour...Vérifiant l'état du répertoire de travail...Vérification...Cocher les fichiers à ajouterCocher les fichiers à oublierCocher les fichiers à enleverCocher les fichiers à rétablirRévisions qui sont les enfants des révisions dans l'ensemble.Enfant :Morceaux sélectionnés : %d / %dEfface&r le journal de sortiePropreEffacerEffacer le contenu du fichier "shelf" %s ?Effacer la requête actuelle et son texteEffacer le fichier actuel de "shelf"Cliquer sur OK pour continuer ou Abandonner pour sortir.Clon&er un dépôt...Clon&er...Clonage - %sCloner le dépôtCloner jusqu'à la révision :Cloner avec traitement minimumCloner...FermerFermer la branche %sFermer après le commitFermer la branche : Fermer la branche actuelleFermer les autres ongletsFermer l'ongletFermer l'outil de commit après chaque commit réussi. Par défaut : FauxFermer :Co&mparer les révisions du fichierFusionner les révisions "rebasées" (--collapse)Colorier les révisions par auteur. Par défaut : FauxListe séparée par des virgules des formats d'archive autorisés pour le téléchargementListe séparée par des virgules de noms de branche qui peuvent être ignorés lors de la construction d'une liste de branches pour un dépôt. Par défaut : Aucune (laisser vide)Liste de motifs de fichier à exclure séparés par une virgule. Les motifs d'exclusion sont appliqués après ceux d'inclusion.Liste séparée par des virgules de fichiers qui sont inclus automatiquement dans chaque commit. Destiné à être utilisé seulement comme paramètres de dépôt. Par défaut : Aucune (laisser vide)Liste séparée par des virgules de fichiers qui sont décochés automatiquement quand les dialogues de statut et de commit sont ouverts. Par défaut : Aucune (laisser vide)Liste de motifs de fichier à inclure séparés par une virgule. Par défaut, l'ensemble du dépôt est parcouru.Liste séparée par des virgules des adresses électroniques des destinataires en copie cachéeListe séparée par des virgules des adresses électroniques des destinataires en copieListe séparée par des virgules des adresses électroniques des destinatairesCommandeErreur de commandeSortie de la commandeCommande à utiliser pour les connexions SSH.

                                                                                                              Par défaut : "ssh" ou "TortoisePlink.exe -ssh -2" (Windows)CommitterBarre d'outils du dialogue de commitCommitter plus tardCommitter maintenantOptions de commitCommitter le backout et fusionner les résultatsCommitter les changementsCommitter les changements du dépôtMenu contextuel de commitCommitter les résultats de fusionMessage de commitCommitter...Commit en cours...Ensembles courantsComparer les révisions du fichier sélectionnéComparé au &1er parentComparé au &2e parentSupprimer complètement le fichier du patch ?CompresserCompresser - %sCompresser l'historique...Compresser les révisions jusqu'à et y comprisLa compression est terminée, l'ancien historique est intactFichier de configuration :Fichiers de configuration (*.conf *.config *.ini)Erreur de configuration : "%(arg0)s",
                                                                                                              Veuillez corriger votre configurationConfigurer un outil personnaliséConfigurer de l'extension de l'ExplorateurConfiguration du hookConfigurer le suivi de problèmeConfigurer les gardesConfigurer les gardes pour le patch sélectionnéConfiguration du dépôtConfigurer le plugin COM sélectionné de suivi de problèmeConfiguration pour les utilisateursConfigurer un plugin COM IBugTraqProvider ou IBugTraqProvider2 de suivi de problème.Confirmer l'ajoutConfirmer le changement de brancheConfirmer la suppressionConfirmer la suppression des non versionnésConfirmer l'abandonConfirmer l'abandon des changementsConfirmer le message d'abandonConfirmer la fermetureConfirmer la création de nouvelle brancheConfirmer le replacementConfirmer l'opération de pousseConfirmer l'opération de pousse vers un dépôt distantConfirmer le rechargementConfirmer la suppressionConfirmer le rétablissementConfirmer l'enregistrementConfirmer la suppression des révisionsConfirmer le remplacement de l'URLConfirmer l'annulationConfirmer la mise à jourConfirmer l'ajout de fichiers inconnusConfirmer la suppression de fichiersConfirmer la suppression de fichiersConfirmer le changement de queue de patchConfirmer la suppression du cheminEn cours de connexion à Review Board...Envisager de d'abord abandonner la greffe.Envisager de d'abord abandonner le "rebase".ConsoleContactMenu contextuelContinuer ou abandonner la greffe interrompue ?Contrôle le comportement de la phase 'draft' quand fonctionne comme un serveur. Quand vrai, les révisions poussées deviennent publiques à la fois sur le client et sur le serveur, les révisions clonées ou tirées deviennent publiques sur le client. Par défaut : VraiConvertir un dépôt existant en sous-dépôtConverti de :CopierCopier le &hashCo&pier le cheminCopie - %sErreur de copieCopier la sélection comme patchCopier le chemin complet du/des fichier(s) dans le presse-papierCopier un messageCopier un des messages récents de commitCopier source -> destinationCopier le chemin racine du dépôt dans le presse-papierCopier des fichiers du répertoire de travail depuis le squeletteNe peut pas obtenir la liste de sous-dépôtsNe peut pas instancier un objet COM du plugin de suivi de problèmeNe peut pas ouvrir le fichier .hgsubNe peut pas ouvrir certains sous-dépôtsNe peut pas ouvrir le fichier spécifié en lecture.Ne peut pas ouvrir le fichier spécifié en écriture.Ne peut pas traduire le contenu du fichier depuis l'encodage natif.Ne peut pas traduire le contenu du fichier dans l'encodage natif.Ne peut pas mettre à jour le fichier .hgsubCréerCréer une &brancheCréer une &nouvelle queue...Créer une queue de patchCréer un dépôt iciCréer un nouveau groupeCréer un nouveau patchCréer un nouveau dépôtCréer un clone ici depuis la sourceCréer un diff avec tous les changements sur cette brancheCréer un diff avec tous les changements sortantsCréer une nouvelle branche "%s" avec ce commit ? Créer les fichiers spéciaux (.hgignore, ...)CouperCoupable trouvé.Révision locale actuelleConfiguration de la barre d'outils personnaliséeOutils personnalisésCyrilliqueDateDate :Dé&tecter les renommages...Désactiver le signet actuel ?Branches mortesOpération de pousse par défautWidget par défautDéfinit la commande à exécuter quand un numéro de problème est reconnu. Vous pouvez inclure des groupes dans issue.regex et des jetons correspondants à {n} dans issue.link (où n est un entier positif). {0} correspond à la chaîne entière trouvée par issue.regex, {1} désigne le premier groupe et ainsi de suite. Si aucun jeton {n} n'est trouvé dans issue.link, la chaîne complète trouvée est ajoutée.Définit l'expression régulière pour trouver des numéros de problèmes.SupprimerSupprimer %d fichier dans .hg/TrashcanSupprimer %d fichiers dans .hg/TrashcanSupprimer %d fichier ignoréSupprimer %d fichiers ignorésSupprimer %d fichier inconnuSupprimer %d fichiers inconnusSupprimer %s du fichier de configuration de votre dépôt ?Supprimer le groupe '%s' et toutes ses entrées ?Supprimer la queue de patchSupprimer des patchesSupprimer un outilSupprimer les dossiers videsSupprimer de la listeSupprimer le hookSupprimer des patches...Supprimer la référence versSupprimer les morceaux sélectionnésSupprimer les morceaux sélectionnés du fichier "shelf" %s  ?Supprimer les morceaux sélectionnés de la copie de travail ?Supprimer les patches sélectionnésSupprimer la requête sélectionnée de l'historiqueSupprimer le fichier "shelf" %s ?Supprimer le fichier actuel de "shelf"Supprimer les fichiers non versionnés suivants ?%d fichiers supprimés%d fichiers et %d dossiers supprimésSupprimé*Supprimer le dossier corbeille...Échec lors de la suppressionRefuser les opérations de pousseDescriptionDestLe fichier destination existe déjà.Chemin de destination :Destination :Détecter les copies/renommages dans %sDétecter les révisions sortantesDétecter les révisions sortantes vers %sDétecter les révisions sortantes vers l'URL sélectionnéeDétecter les renommages et les copiesOutils de fusion/diff détectés :Changements locaux non committés détectés dans le répertoire de travail. Veuillez sélectionner pour continuer : Changements locaux non committés détectésDétermine si TortoiseHg doit afficher un dialogue de confirmation avant d'ajouter de nouveaux fichiers lors d'un commit. Si Vrai, un dialogue de confirmation sera affiché. Si Faux, les nouveaux fichiers sélectionnés seront inclus dans le commit sans dialogue de confirmation. Par défaut : VraiDéterminer si TortoiseHg doit afficher un dialogue de confirmation avant de pousser des révisions. Si Faux, l'opération de pousse sera réalisée sans dialogue de confirmation. Par défaut : VraiDétermine si TortoiseHg doit afficher un dialogue de confirmation avant de retirer des fichiers lors d'un commit. Si Vrai, un dialogue de confirmation sera affiché. Si Faux, les fichiers retirés sélectionnés seront inclus dans le commit sans dialogue de confirmation. Par défaut : VraiDétermine quand l'état du suivi de problème sera mis à jour par TortoiseHg. Les valeurs valides sont :

                                                                                                              • never : Ne pas mettre l'état du suivi de problème automatiquement.
                                                                                                              • commit : Mettre à jour l'état du suivi de problème après un commit réussi.

                                                                                                              Par défaut : neverRecherche des révisions sortantes à envoyer par courriel...Diff avec le parentDiff avec la version &localeDiff entre la révision &locale et l'ancêtreDiff avec la version loc&aleDiff du fichier avecPolice de diffDiff entre les révisions séle&ctionnéesBarre d'outil de diffDiff et annoterDiff du contenuDifférences non affichées : Diff avec la version &localeDiff avec le parentDiff de répertoires avec p1Diff de répertoires avec p2Diff de répertoireRépertoire de fichiersAbandonner - abandonner les changements locaux, pas de sauvegardeAbandonner tous les changements de l'autre révisionAbandonner le message de backout actuel ?Abandonner le message de commit actuel ?Abandonner les changements locaux (revert --all)Abandonner les changements locaux, pas de sauvegarde (-C/--clean)Abandonner les changements locaux, pas de sauvegarde (-f/--force)Abandonner les changements en suspens dans le répertoire de travail ?Abandonner les changements distants, pas de sauvegarde (-C/--clean)Afficher les branches ferméesAfficher uniquement le graphe de la branche nomméeAfficher seulement les branches activesAfficher le fichier de toute façonAffiche %(count)d sur %(total)d élémentsSynchroniser glissé-déposéNe pas inclure les dates de modification dans les en-têtes de diff. Par défaut : FauxNe pas modifier la copie de travail (-k/--keep)Ne pas modifier la copie de travail durant le strip (-k/--keep)Ne pas enregistrer de fichiers de sauvegarde (*.orig)Ne pas afficher les menus dans les dossiers non versionnés (utiliser Majuscule + clic pour afficher)Ne pas supprimer les chemins (-p0), nécessaire pour les patches SVNNe pas mettre à jour le nouveau répertoire de travailNe pas vérifier le certificat de l'hôteVoulez-vous vraiment forcer une transition de phase à l'envers ?Voulez-vous vraiment activer la queue de patch '%s' ?Voulez-vous vraiment désactiver le signet %s ?Voulez-vous vraiment rendre cette révision secrète ?Voulez-vous vraiment enlever le dépôt "%s" de son dépôt parent "%s"Voulez-vous arrêter ?Voulez-vous les garder ou les abandonner ?Glisser pour changer l'ordreNom déjà existantE&ncodageQuitterE&xplorerE&xplorer le dossierE&xplorerAide d'E&xplorerE&xporterE&xporter un patch...&Mode des fins de ligne&Visibilité des fins de ligneÉditerÉditer le fichierÉditer le filtre des ignorésÉditer la révision localeÉditer le chemin pour Hg serveÉditer les re&jetsÉditer un outil...Éditer le fichier actuel dans le répertoire de travailÉditer le fichierÉditer le hookÉditer un graphe de dépendance de patchÉditer le fichier patché et les rejets ?Éditer le filtre des ignorés du dépôtÉditer le fichier résoluÉchec du lancement de l'éditeurCourrielEnvoyer par courriel la plage de DAG...Envoyer par courriel la sélection...Adresse électronique à utiliser dans le champ "From" et pour l'enveloppe SMTPEnvoyer par courriel des révisions sortantes pour un dépôt distantAfficher la sortie de déboguage (--debug)Gestionnaires de superposition activésSuperpositions activéesEncodageMessages en anglaisEntrer un numéro de ligne (1 - %d)Entrer l'identifiant de révisionErreurErreur rencontrée.Erreur durant le déclencheur "commit terminé"Erreur en récupérant le message de commit du plugin de suivi de problèmeErreur lors du chargement du sous-dépôtErreur en visualisant le sous-dépôt : %sErreur dans la chaîne "%(arg0)s" à %(arg1)s
                                                                                                              Veuillez éditer votre configurationErreur lors de l'écriture du fichierFichiers Excel (*.xls *.xlsx)ExclureExclus :Lancer l'outil personnalisé '%s'QuitterQuitter sans finir les résolutions ?Quitter avec une greffe inachevée n'est pas recommandé.Sortir avec un "rebase" inachevé n'est pas recommandé.Préférences de l'extension ExplorateurPréférences de l'extension Explorateur - TortoiseHgExporter la plage de DAG...Exporter le fichier diff...Exporter la sélection...Exporter le patchExtExtensionsImpossible d'ajouter le dépôtImpossible d'ajouter le sous-dépôtImpossible d'exécuter la commande TortoiseHg personnaliséeImpossible d'exécuter la commande personnaliséeImpossible de charger le suivi de problème '%s' : %sImpossible de charger le suivi de problème : '%s' : %s. Impossible d'ouvrir le chemin dans le terminalImpossible d'ouvrir le dépôtImpossible de traiter largefiles.patterns.Impossible de rafraîchirÉchec !Fetch - utiliser fetch (fusionner automatiquement les changements tirés)Fetch - utiliser l'extension fetch (fetch n'est pas actif !)Champs qui doivent correspondre :Fichier&Historique de fichier / AnnoterColonnes de log des différences de fichierHistorique du fichierColonnes de log de l'historique de fichierBarre d'outils de liste de fichiersStatut du fichierStatut de fichier :Fichier déjà existantLes conflits de fichiers doivent être résolusMenu contextuel de fichier (manifeste et détails de révision)Le fichier est binaireLe fichier est plus grand que la taille maximum spécifiée. maxdiff = %s KBLe fichier peut être binaire (longueur maximale de ligne dépassée)Le fichier ou les différences ne sont pas affichées : Fichier ou différences non affiché : le fichier est plus grand que la taille maximum spécifiée. maxdiff = %s KBEnsembles de motifs de fichierFichier n'était pas dans le dépôt actuelNom de fichierFichiersLes fichiers de taille supérieure (en Moctets) seront ajoutés comme bfilesLes fichiers avec une taille plus grande que celle spécifiée (en MB) seront ajoutés comme largefilesLes fichiers avec des noms correspondants aux motifs spécifiés seront automatiquement ajoutés comme bfilesLes fichiers avec les noms correspondants aux motifs spécifiés seront ajoutés automatiquement comme largefilesFiltrer l'historiqueFiltrer parFiltrer le graphe avec des ensembles de révisions ou des branchesFiltre :Rechercher les changements de nomsTrouver les sources copiées et/ou renomméesTrouver des correspondances - %sTrouver les révisions correspondant aux champs de :Trouver les révisions qui correspondent à un ou plusieurs champs d'un ensemble donné de révisions.Recherche des révisions sortantes vers %sFiniLes n premiers membres d'un ensemble.Premier parent de toutes les révisions dans l'ensemble, ou le répertoire de travailRévisions fixéesFlag :Incorporer des patches...Suivre les copies et les changements de nomsPolice utilisée pour afficher les données de changelog. Par défaut : monospace 10Police utilisée pour afficher les messages de commit. Par défaut : monospace 10Police utilisée pour afficher les messages de sortie. Par défaut : sans 8Police utilisée pour afficher les différences de texte. Par défaut : monospace 10PolicesPour quels types de révisions l'outil sera activé Ceci est valable uniquement lorsque l'outil est affiché dans le menu contextuel de révision.Forcer les onglets de dépôtsForcer une fusion avec les modifications en suspens (-f/--force)Forcer l'empilement ou le dépilement (--force)Forcer de pousser ou tirer (outrepasser les vérifications de sécurité, --force)Forcer de pousser vers un distant (-f/--force)Forcer la suppression des fichiers modifiés (--force)OublierOublier le fichier...Créer un processus pour l'interface graphiqueSuivant%d révisions entrantes trouvéesRévisions entrantes trouvées de %sDeDe :Nom d'auteur completChemin complet dans le titreID de clé GPG associé avec un utilisateur. Par défaut : Aucun (laisser vide)Créer des messages de commit en anglais même si les variables d'environnement LANGUAGE ou LANG sont définies à une autre langue. Ce paramètre est utilisé par les dialogues de fusion, d'étiquette et de backout. Par défaut : FauxObtention des révisions entrantes de %sCommit Git :Format gitLes patches git peuvent décrire des modifications de fichiers binaires, de copies et de droits d'accès, mais les destinataires peuvent ne pas pouvoir les utiliser s'ils n'utilisent pas git ou Mercurial.GlobParamètres générauxGnuPGAller au patchAller àAller à la ligneAller à une révision préciseAller à la révision actuelleAller à l'ancêtre de %s et %sAller à l'ancêtre communAller à la révisionGrefferGreffe - %sGreffer la sélection vers la révision locale...Greffe abandonnéeGreffer la révisionGreffer la révision #%d de %dÉchec de la greffeLa greffe a créé des conflits de fusion qui doivent être résolusLa greffe est terminéeGreffe depuis :GrapheProgramme de fusion graphique pour résoudre les conflits de fusion. Si non spécifié, Mercurial utilisera le premier outil correct qu'il trouve sur votre système ou son outil interne de fusion qui laisse des marqueurs de conflits. Choisir internal:merge pour forcer les marqueurs de conflit, internal:prompt pour toujours sélectionner local ou autre, ou internal:dump pour laisser les fichiers dans le répertoire de travail pour fusion manuelleL'ancêtre commun le plus récent des deux révisions.GrecGardes : %d/%dDeviner les renommagesArchives Gzip tarErreur HTTP : %d (%s)La tête est fermée !HébreuCommande de Hg :Affichage d'historique Hg de fichier [%s] - %sLes patches Hg (comme ceux créés par la commande d'export) sont compatibles avec la plupart des programmes de patches. Ils contiennent un en-tête comportant les métadonnées de révision les plus importantes.Masquer le détailCacher les étiquettesCacher le menu contextuel en dehors des dépôtsMettre en surbrillance l'icôneType de hookHooksHôteNom de l'hôte et port (optionnel) du serveur mandataire, par exemple "monproxy:8000"Nom du serveur de messagerieNom de l'hôte que l'expéditeur peut utiliser pour s'identifier au serveur.Sur combien de lignes une "bande zébrée" doit s'étendre sur l'affichage. Par défaut : 1 ; mettre à 0 pour désactiver.IcôneIcônesSi aucun nom d'utilisateur n'est spécifié, il lui sera demandé. Par défaut : FauxSi spécifié, les fichiers du répertoire, par exemple .hgignore, sont copiés vers le dépôt nouvellement créé.Si Vrai, concaténer plusieurs lignes de résumé de révision et les tronquer à 80 caractères si nécessaire. Par défaut : FauxSi vous avez toujours des problèmes, veuillez remplir un rapport d'erreur.Ignorer Ignorer les lignes blanchesIgnorer le nombre d'espacesIgnorer les espacesIgnorer la casseIgnorer les changements dans le nombre d'espaces dans les vues de diff. Par défaut : FauxIgnorer les changements dans le nombre d'espaces dans la vue d'annotation. Par défaut : FauxIgnorer les changements des lignes blanches dans les vues de diff. Par défaut : FauxIgnorer les changements des lignes blanches dans la vue d'annotation. Par défaut : FauxFiltre des fichiers ignorés - %sIgnorer les espaces lors de la comparaison de lignes dans les vues de diff. Par défaut : FauxIgnorer les espaces lors de la comparaison de lignes dans la vue d'annotation. Par défaut : FauxIgnoré*Opérations immédiatesImportation - %sImporter du presse-papiersImporter dans &MQDans la révision a&ctuelleDans la révision &originaleDans tout l'&historiqueDans le &fichier actuelEn réponse à :InclureInclure tous les ancêtresInclure la queue de patchInclus :Signets entrantsRecherche des révisions entrantes de %s interrompue, ret %dIndique si TortoiseHg doit tenter de résoudre automatiquement les changements des deux côtés pour un même fichier et uniquement indiquer les conflits de fusion quand ce n'est pas possible. Quand Faux, tous les fichiers avec des changements des deux côtés de la fusion seront indiqués en conflit même si les modifications sont à des endroits différents du fichier. Dans les deux cas, quand un conflit se produit, l'utilisateur sera invité à revoir et à résoudre les changements manuellement. Par défaut : Vrai.Iniparse doit être installé.Paquet iniparse non trouvéPremière révisionÉtiquettes 'inline'Entrer de nouvelles gardes pour %s :Droits d'accès insuffisants, retour au mode lecture seule.Droits d'accès insuffisants.InterrompuGreffe interrompue trouvéeMotifs invalidesPréférences incorrectes - Indiquez votre nom d'utilisateur ReviewBoardPréférences incorrectes - Le serveur ReviewBoard n'est pas indiquéCommande invalideConfiguration invalide : %sFormat de date invalideRévision de pousse par défaut invalide : %s. Vérifiez votre configuration Mercurial (tortoisehg.defaultpush)Expression globale invalideExpression régulière invalidePlugin reviewboard invalide. Téléchargez le plugin reviewboard version 3.5 ou plus du site ci-dessous. %sLien vers un problèmeExpression régulière de problèmeSuivi de problèmesPlugin de suivi de problèmeErreur du plugin de suivi de problèmeDéclencheur de suivi de problèmeSuivi de problèmesIl n'est pas possible de charger complètement la liste de sous-dépôts pour le dépôt dans :

                                                                                                              %s

                                                                                                              Les sous-dépôts suivants peuvent être manquants, cassés ou dans un état inconsistant et ne peuvent pas être atteints :

                                                                                                              %sIl n'est pas possible d'obtenir la liste de sous-dépôts pour le dépôt dans :

                                                                                                              %sItaliqueJaponaisGarder les noms de branche d'origine (--keepbranches)Garder les révisions d'origine (--keep)Conserver les fichiers patchID de cléClé :Recherche par mots-clésKiln BfilesRévision connue comme mauvaise :Révision connue comme bonne :CoréenLargefilesBarre d'outils à gaucheLaisser l'utilisateur mettre à jour projrc sur entrant :

                                                                                                              • never : [par défaut] Afficher si le fichier projrc distant a changé, mais ne pas mettre à jour le fichier projrc local (ni le demander).
                                                                                                              • prompt: Chercher les changements dans le fichier projrc. Si il y a des changements, _toujours_ demander une confirmation, demandant à l'utilisateur si il veut mettre à jour son fichier projrc local.
                                                                                                              • auto: Chercher les changements dans le fichier projrc. Utiliser la valeur de la clé de configuration "projrc.confirm" pour déterminer si il faut demander une confirmation ou non avant de mettre à jour le fichier projrc local.

                                                                                                              Par défault : neverLicenceComme "keyword(string)" mais accepte une expression régulière.LigneListe d'optionsListe des serveurs desquels les fichiers de configuration "projrc" doivent être tirés. Définir à "*" pour tirer de tous les serveurs. Définir à "default" pour tirer uniquement du dépôt par défaut. Par défaut, les fichiers "projrc" ne sont tirés d'aucun serveur.Liste de tous les outilsListe des paramètres qui NE seront PAS tirés du fichier de configuration du projet. Par défaut, exclure aucun des paramètres inclus.Liste des paramètres qui seront tirés du fichier de configuration du projet. Par défaut, aucun paramètre.Énumérer les fichiers mis à jour (--verbose)Ch&arger toutes les révisionsCharger toutes les révisions dans le grapheChargement du dépôt %sNom de l'hôte localChemin localChemin local :Dépôt local %sDisques locaux uniquementRévision localeSignature localeÉtiquette localeEmplacement du clone local du dépôt de verrou de l'organisation.

                                                                                                              Ce dépôt doit contenir un fichier texte « verrouillé »Emplacement :Clone de verrouillageVerrouiller un fichier non décrit dans .hglocksVerrouillage raté de %s, réessayezVerrouillage réussi de %sVerrouiller ou déverrouiller des fichiersFichiers verrouillés et verrouillables :Verrouillé*Verrouillage de %sUtilisateur qui verrouilleJournalTaille du lot de logLong résuméM&Options MQFormat git MQEmpiler (qpush)Tout empiler (qpush -a)Options MQMode ma&nifesteRendre les patches MQ secret (au lieu de draft). Par défaut : FauxRendre le dépôt compatible avec Mercurial <1.7Transformer une révision "draft" en "secrète" est généralement une opération sûre. Toutefois, voici quelques mises en garde : - les révisions "secrètes" ne sont pas poussées. Ceci peut causer des ennuis si vous faites référence à une révision secrète d'un sous-dépôt. - si vous tirez cette révision d'un serveur non publiant, elle peut redevenir "draft" si vous tirez de nouveau de ce serveur particulier. Soyez prudent !Gérer la sécurité de la connexion HTTPS et l'authentificationGérer les listes de changements Perforce en attenteRéférence à un problème obligatoireRésoudre manuellement les morceaux rejetés ?Résoudre manuellement les morceaux de patch rejetésMarq&uer comme non résoluMarquer ce morceau comme résolu, aller au non résolu suivantMarquer ce morceau comme non résoluMarquer ce fichier comme résoluMarquer ce fichier comme non résoluCorrespondance de texteCorrespondance avec %d révisionsNombre max de changementsTaille max de diffNombre max de fichiersNombre maximum de changements à énumérer dans le changelog. Par défaut :10Nombre maximum de fichiers à afficher par révision. Par défaut : 10Membres d'un ensemble avec aucun enfant dans l'ensemble.Comportement du menuRé&soudre par MercurialUtilisateur MercurialLa commande Mercurial est toujours en cours d'exécution. Voulez-vous la terminer ?L'extension Mercurial keyring est activée. Les mots de passe seront stockés par une méthode sûre dépendant de votre plate-forme.Mercurial n'a pas trouvé d'éditeur. Veuillez configurer Mercurial pour utiliser un éditeur installé sur votre système.FusionFusion - %sFusionner - permettre la fusion avec les changements locauxFusionner toutes les dépendances en attenteLa fusion a causé des conflits de fichiersRévision de fusionFusion depuis (une autre révision)Fusionner les morceaux de patch rejetés dans %sRévision de fusion non spécifiée ou non trouvéeFusion vers (répertoire de travail)Fusionner en utilisant l'outil sélectionnéFusion avec %sFusionner avec l'autre tête de la branche couranteFusion en cours...MessagePolice de messageErreur de transposition de messageIdentifiant du message auquel répondre - pour le suivi de discussionMéthode pour activer TLS lors d'une connexion à un serveur de courrier. Par défaut : aucuneSimilarité minimum : %d %%Protocole minimumTaille minimumInformation manquanteModi&fier l'historiqueSurveiller les changements du dépôtSurveiller les changements
                                                                                                              du répertoire de travailDéplacerDéplacer tous les fichiers à gaucheDéplacer tous les fichiers à droiteDéplacer les patches appliqués dans l'historiqueDéplacer les changements entre le répertoire de travail et le patchDéplacer les morceaux sélectionnés à gaucheDéplacer les morceaux sélectionnés à droiteDéplacer le fichier sélectionné à gaucheDéplacer le fichier sélectionné à droiteÉtiquette %s déplacée à la révision %s (de la révision %s)Menu contextuel lors d'une sélection multiplePlusieurs sources choisiesNomNom associé aux commits. Le format habituel est :
                                                                                                              Nom complet <email@example.com>Nom ou adresse de la personne responsable du dépôt.La branche nommée "%s" existe déjà, dernière utilisation à la révision %d Nouveau &groupeNouveau &workbenchNouvelle branche : Phase des nouvelles révisionsNouveau groupeNouveau nom :Nouvelle branche de patchSquelette de nouveau dépôtNouveau dépôtNouveau "shelf"Nouvel outil...Nouveau fichier crééNouveau hookNouveau message de patch :Nouveau nom de queue de patchNouveau "shelf" crééSuivantDifférence suivanteDifférence suivantePas de datesAucun fichier appropriéPas de sauvegarde (-n/--nobackup)Aucun changement de brancheAucun morceau restantAucun commitAucun morceau supprimableAucun outil de diff trouvéAucun éditeur trouvéAucun fichier modifiéAucun fichier sélectionnéAucun fichier trouvé pour cette opérationAucun fichier sélectionnéAucun fichier à trouverAucun hôte spécifiéAucune validation de l'hôte mais tout de même chiffré (mauvais)Aucun fichier ignoré trouvéAucune révision entrante de %sAucun lien vers un problème n'a été trouvé dans le message de commit. Le message de commit devrait contenir un lien vers un problème. Configurer ceci dans la section 'Suivi de problèmes' des préférences.Aucun article à afficherAucune correspondance trouvéeAucun conflit de fusion, prêt à appliquer un commitAucun conflit de fusion, prêt à appliquer un commit ou à revoirAucun fichier modifié marqué pour être committéAucune opération à exécuterAucune révision sortanteAucune révision sortante vers %sAucune branche de patch sélectionnéeAucune liste de changement Perforce en attenteAucun URL ou chemin de dépôt distant définiAucun dépôt trouvéAucune révision trouvéeAucun shell configuréAucune transaction disponibleAucun fichier dans .hg/TrashcanAucun fichier inconnu trouvéAucun nom d'utilisateur configuréAucun URL ou chemin valide par défaut pour le dépôt distant a été configuré pour ce dépôt.

                                                                                                              Veuillez taper et enregistrer un chemin pour le dépôt distant dans le widget de synchronisation.Aucun outil de diff visuel détectéAucun éditeur graphique spécifiéAucune - tirer simplement les révisionsNordiqueNormaliser les fins de ligne durant et après patch à lf ou crlf. Strict ne fait aucune normalisation. Auto fait une détection automatique et c'est ce qui est recommandé. Par défaut : strictPas un sous-dépôt Mercurial, pas présentablePas une révision de tête !Pas une tête, le backout créera une nouvelle tête !Rien n'a été committéRien n'a changé.Rien à importerRien à pousserOKÉtat obsolète :Dans le menu contextuel, afficher pourUne ou plusieurs révisions que vous tentez de pousser impliquent la création d'une nouvelle branche. Voulez-vous créer une nouvelle branche dans le dépôt distant ?Examiner uniquement les fichiers supprimésSeulement les fichiers modifiés/créés dans cette révisionUniquement les fichiers modifiés/créés depuis :Vers la destinationOuvrirOuvrir un &terminalOuvrir le so&us-dépôtOuvrir un fichier (non fusionnable) que vous voulez verrouillerOuvrir une nouvelle branche nomméeOuvrir un terminal à la racine du dépôtOuvrir un terminal dans le dossier sélectionnéOuvrir l'éditeur de requête avancéOuvrir tous les dépôts dans de nouveaux ongletsOuvrir la config hgwebOuvrir les nouveaux onglets à côté de l'actuelOuvrir le dossier parent du fichier dans le gestionnaire de fichiersOuvrir l'outil de "shelve"Ouvrir le dépôt dans un navigateur de fichiersOuvrir le dépôt dans un nouvel ongletOuvrir le dossier sélectionné dans le gestionnaire de fichiersOuvrir le sous-dépôt sélectionnéOperation interrompue :

                                                                                                              %(arg0)s.Opération effectuée directement après un opération de tirage réussie. update équivaut à pull --update, fetch équivaut à l'extension fetch, rebase équivaut à pull --rebase, updateorrebase équivaut à pull -u --rebase. Par défaut : none (aucune)Optionnel. Liste séparée par des virgules de noms de machine accédées directement (sans mandataire)Optionnel. Méthode à utiliser pour envoyer les courriels. Si la valeur est "smtp" (par défaut), utiliser SMTP (configuré en-dessous). Autrement, indiquer le nom du programme à utiliser se comportant comme sendmail (prendre l'option "-f" pour l'émetteur, liste des destinataires sur la ligne de commande, message sur stdin). Normalement, mettre "sendmail" ou "/usr/sbin/sendmail" est suffisant pour utiliser sendmail.Optionnel. Fichier de chaîne de certificat client au format PEM. Les variables d'environnement sont développées dans le nom de fichier.Optionnel. Fichier de clés pour le certificat client au format PEM. Les variables d'environnement sont développées dans le nom de fichier.Optionnel. Mot de passe pour s'authentifier au serveur mandataireOptionnel. Mot de passe pour l'authentification. Si non donné et que le site distant demande une authentification, il lui sera demandé.Optionnel. Nom d'utilisateur pour s'authentifier au serveur mandataireOptionnel. Nom d'utilisateur pour l'authentification. Si non donné et que le site distant demande une authentification, il lui sera demandé. Les variables d'environnement sont développées dans le nom d'utilisateur de sorte que vous pouvez utiliser foo.username = $USER.OptionsOptions :Ou utiliser :Classer les sous-dépôts comme dans .hgsubParent original :Autre révisionSignets sortantsRecherche des révisions sortantes interrompue, ret %dRecherche des révisions sortantes vers %s interrompue, ret %dPolice de sortieSuperpositionsTirer un signetPousserDocuments PDF (*.pdf)Fichiers PEM (*.pem *.crt *.cer)Fichiers PEM (*.pem *.key)Menu contextuel lors d'une sélection de paireParent 1 :Parent 2 :Parent :ParentsMot de passeMot de passe pour s'authentifier au serveur SMTPMot de passe pour s'authentifier avec Review BoardMot de passe :Coller les noms de &fichiersBarre d'outil de Patch BranchFin de lignes des patchesFichiers patch (*.patch)Nom de patch requisQueue de patchBarre d'outils d'actions de queue de patchDate de patch :Patch exportéL'application du patch a échouéFichiers patch (*.diff *.patch)Les fichiers patch existent déjàIncorporation de patch - %sMessage de patch :Nom du patch :La description de la série de patches est envoyée dans un premier message de résumé avec le sujet [PATCH 0 of N]. Elle doit décrire les effets de toute la série de patches. Quand on envoie un paquet, ces champs sont dans le sujet et le corps du message. Les 'flags' sont une liste d'étiquettes séparées par des virgules qui sont insérées en préfixe du sujet du message.Utilisateur de patch :Patch :Patch : %sPatches exportésPatches à incorporerCheminBarre d'outils d'édition de cheminChemin vers l'exemple de Review Board "http://demo.reviewboard.org"Chemin vers le répertoire où un cache système de bfiles sera stockéChemin vers le répertoire où un cache utilisateur de largefiles sera stockéChemin :Chemins dans les préférences du dépôt :RèglesChangelists de Perforce en cours - %sPerforce en attente...Perforce :Pousser avant de mettre à jour (-p/--push)PhasePlacer la console dans le doc&kSimple, sans l'entête HgVeuillez spécifier un éditeur graphique.Activez et configurez simplelockActivez d'abord l'extension Gpg.Activez d'abord l'extension Topic.Veuillez entrer un nom d'utilisateurVeuillez entrer un message de commitVeuillez signaler ce problème sur notre suivi de bugDéfinissez une URL valide pour continuer.Attendre pendant le commit des fichiers fusionnés.Veuillez attendre pendant le backout.Veuillez attendre l'ouverture du fichier...Veuillez patienter...DépilerTout dépilerPortPort du serveur de courriel. Par défaut : 25Port à écouterPort :Poster une &revueOpération après avoir tiréAprès avoir tiré : Post reviewPoster la sélection dans Review Board...Poster dans Re&view Board...Prédécesseurs :Préparer à faire un backoutPréparer la fusionConserver les fichiers commençant par .hgPrécédentAperçuAperçu :Différence précédenteDifférence précédenteAuparavant, le sous-dépôt était la révision suivante :ProjrcProxyÉlaguer (prune) - %sPublier la requête immédiatementRécupérerOpération de tirer de %s interrompu, ret %d"Pull" de %s terminéTirer les révisions entrantesTirer les révisions entrantes depuis %sTirer les révisions entrantes depuis l'URL sélectionnéeTirer les révisions entrantes dans votre dépôtTirer les sous-dépôts de :Tirer jusqu'iciSignet distant tiré : %sTirant de %s...ViderPurger la queue de patchButPousserTout pousserPousser après le commitPousser après commit :SSL requis pour pousserPousser la branche sélectionnéeTout pousserPousser la branche actuelle (%s)Pousser les révisions sortantesPousser les révisions sortantes vers %sPousser les révisions sortantes vers l'URL sélectionnéeOpération de pousser vers %s abandonnéeOpération de pousser vers %s abandonnée, ret %dOpération de pousse vers %s terminéePousser jusqu'iciPousser vers le dépôt distant %s ?Pousser jusqu'à la révision actuelle (#%d)Pousser jusqu'à la révision #%dSignet local tiré : %sPoussant vers %s...QNewQRefreshRequêteRequête des révisions touchant les fichiers sélectionnésQuitter&Enlever un signetOptions du r&egistre des dépôtsR&ollback/Défaire...LISEZ-MOI non configuréRé&cupérerSuppri&mer les fichiers versionnésEnlever du registreRe&nommerRe&nommer le patch...Re&nommer...Lecture seule*PrêtPrêt à purger.Prêt, double cliquer pour verrouiller ou déverrouiller"Rebaser""Rebase" - %sRebase - rebase les révisions locales au-dessus des révisions tiréesRebase - utiliser l'extension rebase (rebase n'est pas actif !)"Rebase" abandonné"Rebase" déjà en cours"Rebaser" une révision et ses descendants"Rebaser" entièrement la branche source (-b/--base)Échec du "rebase"Le "rebase" a créé des conflits de fusion qui doivent être résolusLe "rebase" est fini"Rebaser" les révisions non publiées sur la tête Subversion (remplacer source, destination)Rebaser...Parcourir les sous-dépôtsParcourir les sous-dépôts (--subrepos)Information d'authentification redondanteRafraîchirRafraîchir l'onglet de &tâcheBarre d'outils d'actualisationRafraîchir le patch actuelRafraîchir le dépôt actuelRafraîchir la liste des fichiersRafraîchir l'information de verrouillageRafraîchir uniquement l'onglet de tâche actuelRafraîchir la liste du registre des dépôtsRafraîchissement des verrous...Expression régulièreExpression régulière :Expression régulière de rechercheRejeter les révisions entrantesChemins liés :RechargerRecharger le fichierEnle&ver le sous-dépôt...Mise à jour distante - %sCommande distante :EnleverRetirer tous les fichiers sélectionnésRetirer les fichiers non modifiésEffacer les fichiers...Supprimer les informations d'authentification de l'URLSupprimer la revision de travail actuelle ?Enlever le fichier du gestionnaire de versionEnlever le filtre, afficher la racineEnlever le répertoire de patch deEnlever des patches de la queue ?Enlever les fichiers sélectionnés supprimés ?Enlever le nœud et tous ses sous-nœuds. Les dépôts ne sont pas supprimés du disque.Enlever le sous-dépôt sélectionné ?Enlever le sous-dépôt de la révision actuelleSignet local enlevé : %sSignet distant enlevé : %sÉtiquette %s enlevéeRenommerRenommer - %sErreur de renommageRenommer le fichierRenommer un patchRenommer une queue de patchRenommer le fichier ou le dossierRenommer le patch %s en :Renommer la queue de patch '%s' enRenommer le patch...Renommer l'entréeRéouvrir le dernier onglet ferméRéouvrir le dernier groupe d'onglets ferméRemplacerRemplacer le hook existant ?Remplacer une étiquette existante (-f/--force)Remplacer les fichiers patch existants. Signaler uniquement le premier résultat par fichierDépôtsDépôtErreur dans le dépôtIdentifiant de dépôt :Registre des dépôtsRegistre des dépôts mis à jourParamètres du dépôtUne commande est en cours d'exécutionLe dépôt est verrouilléNom du dépôt à utiliser dans l'interface web et par TortoiseHg comme nom raccourci. Par défaut : nom du répertoire de travailDépôt non localStatus & changements du dépôtDemander une confirmationRésoudre les conflits - %sConflits résolusRedémarrer la &brancheRedémarrer la fusion...Redémarrer la fusion avecRedémarrer toutes les applications TortoiseHg pour que les changements suivants prennent effet :Reprise du "rebase" déjà en coursRevRétablirRét&ablir tous les fichiers...Rétablir - %sRécupérer le fichier antérieur...Rétablir tous les changements de fichier ?Rétablir tous les fichiers à cette révisionRétablir tous les changements de la copie de travail ?Récupérer les changements antérieursRamener le(s) fichier(s) au contenu de cette révisionRétablir les fichiers à la révision locale ou à l'autre parent ?Défaire les changements locaux ?Rétablir les fichiers suivants ?Revenir à la révisionRétablir tous les fichiers annulera tous les changements et laissera les fichiers concernés dans un état modifié.

                                                                                                              Êtes-vous sûr de vouloir rétablir ?

                                                                                                              (utiliser la commande Mettre à jour pour obtenir une autre révision)Rétablissant une changelist p4...Review BoardIdentifiant de revue :Brouillon de revue posté sur %s Revue publiée sur %s RévisionLa révision #%d (%s) a été exportée :

                                                                                                              %s%s%s&Détails de révisionEnsemble de révisionsRequête d'un ensemble de révisionsMenu contextuel de détails de révisionLa révision a été changée en :La révision est &mauvaiseLa révision est b&onneRévision qui doit correspondre :Révision :Révisions qui correspondent :Barre d'outils droiteDéfaire le commit et revenir à la révision %dRevenir à la révision %d (défaire %s) ?Exécuter après l'ajout d'un groupe de changements en poussant, tirant ou dépaquetant (unbundle) mais avant que le commit de la transaction. Le groupe de changements est visible par le programme de hook. Ceci permet de valider les changements entrants avant de les accepter. L'ID de la première nouvelle révision est $HG_NODE et de la dernière est $HG_NODE_LAST. Le statut de sortie 0 permet de committer la transaction. Un statut différent de 0 arrêtera la transaction et l'opération de pousse, de tirage ou de dépaquetage échouera. L'URL d'où vient les changements est $HG_URL.Exécuter après l'ajout d'un groupe de changements en poussant, tirant ou dépaquetant (unbundle). L'ID de la première nouvelle révision est $HG_NODE et de la dernière est $HG_NODE_LAST. L'URL d'où vient les changements est $HG_URL.Exécuter après la création d'une révision mais avant que le commit de la transaction. La révision est visible par le programme de hook. Ceci permet de valider le message de commit et les changements. Le statut de sortie 0 permet de committer la transaction. Un statut différent de 0 arrêtera la transaction. L'ID de la révisions est $HG_NODE. Les IDs des révisions parentes sont $HG_PARENT1 et $HG_PARENT2.Exécuter après qu'une révision a été créée dans le dépôt local. L'ID de la nouvelle révision est $HG_NODE. Les IDs des révisions parentes sont $HG_PARENT1 et $HG_PARENT2.Exécuter après qu'une révision a été poussée, tirée ou dépaquetée (unbundle) dans le dépôt local. L'ID de la nouvelle révision est $HG_NODE. L'URL d'où vient le changement est $HG_URL.Exécuter après l'ajout d'une "pushkey" (comme un signet) au dépôt. L'espace de nommage de la clé est $HG_NAMESPACE, la clé est $HG_KEY, l'ancienne valeur (si il y en a une) est $HG_OLD et la nouvelle valeur est $HG_NEW.Exécuter après la création d'une étiquette. L'ID de la révision à étiqueter est $HG_NODE. Le nom de l'étiquette est $HG_TAG. L'étiquette est locale si $HG_LOCAL=1, dans le dépôt si $HG_LOCAL=0.Exécuter après l'énumération des "pushkeys" (comme des signets) dans le dépôt. L'espace de nommage de la clé est $HG_NAMESPACE. $HG_VALUES est un dictionnaire contenant les clés et les valeurs.Exécuter après envoi de changements du dépôt local vers un autre. L'ID de la première révision envoyée est $HG_NODE. La source de l'opération est $HG_SOURCE.Exécuter après la mise à jour du répertoire de travail. L'ID de la première révision parente est $HG_PARENT1. Si fusion, l'ID de la seconde révision parente est $HG_PARENT2. Si la mise à jour réussi, $HG_ERROR=0. Si la mise à jour échoue (par exemple à cause de conflits non résolus), $HG_ERROR=1.Exécuter avant l'ajout d'un groupe de changements en poussant, tirant ou dépaquetant (unbundle). Le statut de sortie 0 permet de traiter le groupe de changement. Un statut différent de 0 arrêtera l'opération de pousse, de tirage ou de dépaquetage. L'URL d'où viendront les changements est $HG_URL.Exécuter avant l'ajout d'une "pushkey" (comme un signet) au dépôt. Un statut différent de 0 arrêtera l'opération. L'espace de nommage de la clé est $HG_NAMESPACE, la clé est $HG_KEY, l'ancienne valeur (si il y en a une) est $HG_OLD et la nouvelle valeur est $HG_NEW.Exécuter avant de rassembler les changements à envoyer depuis le dépôt local vers un autre. Un statut différent de 0 arrêtera l'opération. Cela vous permet d'éviter de tirer via HTTP ou SSH. Cela empêche également les commandes de tirage local, poussage ou paquetage (bundle) mais ce n'est pas efficace puisque vous pouvez à la place simplement copier les fichiers. La source de l'opération est $HG_SOURCE. Si "serve", l'opération se passe pour le compte du SSH distant ou du dépôt HTTP. Si "push", "pull" ou "bundle", l'opération se passe pour le compte du dépôt sur le même système.Exécuter avant la création d'une étiquette. Le statut de sortie 0 permet de créer l'étiquette. Un statut différent de 0 arrêtera l'étiquetage. L'ID de la révision à étiqueter est $HG_NODE. Le nom de l'étiquette est $HG_TAG. L'étiquette est locale si $HG_LOCAL=1, dans le dépôt si $HG_LOCAL=0.Exécuter avant l'énumération des "pushkeys" (comme des signets). Un statut différent de 0 arrêtera l'opération. L'espace de nommage de la clé est $HG_NAMESPACE.Exécuter avant de commencer un commit local. Le statut de sortie 0 permet de traiter le commit. Un statut différent de 0 arrêtera le commit. Les IDs des révisions parentes sont $HG_PARENT1 et $HG_PARENT2.Exécuter avant la mise à jour du répertoire de travail. Le statut de sortie 0 permet la mise à jour. Un statut différent de 0 empêchera la mise à jour. L'ID de la première révision parente est $HG_PARENT1. Si fusion, l'ID de la seconde révision parente est $HG_PARENT2.En cours d'exécution à %sEn cours d'exécution...RusseBarre de s&tatutBarre d'outils de s&ynchronisationS&ynchroniserHôte SMTPMot de passe SMTPPort SMTPSMTP TLSNom d'utilisateur SMTPCommande SSHErreur SSL : %sSSL : la vérification du certificat du serveur a échouéSSL : erreur inconnue %s:%sEnregister les chemins de synchro en quittantEnregistrerEnregistrer globalementEnregistrer les dépôts ouverts en quittantEnregistrer le cheminEnregistrer les changements avant d'éditer ?Enregistrer l'URL actuelle sous un aliasEnregistrer le rapport d'erreur sousEnregistrer le fichier tel qu'il est à cette révisionEnregistrer le fichier sousEnregistrer la config hgwebEnregistrer dans le dépôtParcou&rir les dépôts distantsRechercherRechercher dans l'historiqueRechercher le texte sélectionnéRecherche déjà en coursRechercher un message de commit, un nom d'utilisateur ou des noms de fichiers modifiés.Chercher des motifs dans les révisions du fichierRechercher dans tout l'&historiqueRechercheRecherche en cours...Second parent de toutes les révisions dans l'ensemble, ou le répertoire de travailPatches MQ secretsConnexion HTTPS sécuriséeSécuritéSécurité : Tout sélectionnerTout désélectionnerSélectionnez un fichier de destinationSélectionnez un dossier de destinationSélectionner le répertoire contenant les patchsSélectionner le dépôtSélectionnez un fichier sourceSélectionner un dossier sourceChoisir l'outil :Sélectionner un fichier de chaîne de certificat utilisateurSélectionner un fichier de clé de certificat utilisateurSélectionner un emplacement à éditer :Sélectionner un dépôt existant à ajouter comme sous-dépôtSélectionner la branche du commit de fusionSélectionner le fichier paquetSélectionner un dépôt de destinationSélectionner si TortoiseHg doit montrer le combo cible dans la barre de synchro.

                                                                                                              • auto : par défaut. Afficher le combo si plus d'une cible configurée.
                                                                                                              • always : Toujours afficher le combo.

                                                                                                              Par défaut : autoSélectionner le dossier de patchSélectionner les patchsSélectionner l'opération après avoir tiré pour ce dépôtSélectionner un dépôtSélectionner un dépôt à ajouterSélectionner le répertoire de dépôt à ouvrirSélectionner un dépôt d'origineSélectionner la révision qui sera sélectionnée à l'ouverture d'un dépôt. Vous pouvez sélectionner "current" (le parent du répertoire de travail), le "tip" actuel or le répertoire de travail ("workingdir"). Par défaut : currentSélectionner le widget initial qui sera affiché à l'ouverture d'un dépôt. Par défaut : revdetailsSélectionner les révisions qui seront poussées par défaut, lorsque vous cliquez le bouton Pousser.

                                                                                                              • all : Par défaut. Pousser tous les changements de toutes les branches.
                                                                                                              • branch : Pousser tous les changements dans la branche actuelle.
                                                                                                              • revision : Pousser tous les changements dans la branche actuelle jusqu'à la révision actuelle

                                                                                                              Par défaut : allSélectionner la barre d'outil ou le menu à modifierSélectionner quand TortoiseHg affichera une invite à activer un signet lors de la mise à jour vers une révision qui a un ou plusieurs signets.

                                                                                                              • auto : Essayer d'activer les signets automatiquement. Lors de la mise à jour vers une révision qui a un seul signet, il sera activé automatiquement. Afficher une invite si il y a plus d'un signet sur la révision vers laquelle la mise à jour se fait.
                                                                                                              • prompt : Afficher une invite lors de la mise à jour vers une révision qui a un ou plusieurs signets.
                                                                                                              • never : Ne jamais afficher d'invite pour activer des signets.

                                                                                                              Par défaut : promptSélectionner quand la liste de statut du répertoire de travail est mise à jour :
                                                                                                              - auto : [par défaut] permet à TortoiseHg de décider quand mettre à jour la liste de statut du répertoire de travail.
                                                                                                              TortoiseHg mettra à jour la liste de statut quand il réalise une action pouvant potentiellement modifier le répertoire de travail. Des changements arrivant en dehors du contrôle de TortoiseHg pourront être manqués ;
                                                                                                              - always : en plus du mode automatique ci-dessus, met aussi à jour la liste de statut quand l'utilisateur clique sur la "révision répertoire de travail" ou sur l'icône "Commit" de la barre d'outil du Workbench ;
                                                                                                              - alwayslocal : comme "always" mais se limite aux dépôts locaux.
                                                                                                              Par défaut : autoSélectionner quand la commande sera exécutéeSélectionne si vous voulez avoir une seule fenêtre Workbench. Si vous désactivez cette préférence, vous aurez une nouvelle fenêtre Workbench chaque fois que vous utilisez la commande "Hg Workbench" dans le menu contextuel de l'explorateur. Par défaut : VraiLes révisions sélectionnées ne sont pas liées&Envoyer le courrielEnvoyer les révisions comme patches HgEnvoyer un seul paquet binaire, pas de patches.Envoi du courrielServeurIdentifiant du dépôt sur le serveurServeursMettre des &gardes...Ascendance d'ensembleDéfinir une date :Logique d'ensembleDéfinir un nom d'utilisateur :ParamètresParamètresFichier de préférences :Plusieurs caractères seront perdus.Plusieurs icônes sont offertes par les projets TortoiseSVN et TangoAfficher le registre des dépôtsShelf"Shelf" effacé"Shelf" suppriméShelf : %sShellShelve - déplacer les changements locaux dans un patchChangements du "shelf"Ouvrir les nouveaux onglets à côté de l'onglet actuel ? Si Faux les nouveaux onglets s'ouvriront après le dernier. Par défaut : Vrai&Afficher l'auteurAfficher la &dateAfficher la queue de &patchAfficher les cheminsAfficher la &révisionÀ propos...Afficher la conso&leAfficher le détailAfficher la ligne de familleAfficher la fonctionAfficher l'icôneAfficher les problèmesAfficher les problèmes...Afficher le journalAfficher le journal de sortieAfficher les &détails de révisionAfficher les c&hemins courtsAfficher l'onglet de tâchesAfficher le chemin complet du dépôt dans le titre du dialogue au lieu du nom du répertoire racine. Par défaut : FauxTout afficherAfficher tous les fichiers versionnés dans la vue en arbreAfficher les changements depuis le premier parentAfficher les changements depuis le deuxième parentAfficher les fichiers modifiés dans ce commitAfficher le nom d'auteur complet dans la vue des révisions. Si non activé, une partie raccourcie, habituellement le nom d'utilisateur sans adresse électronique, sera affichée. Par défaut : FauxAfficher les dépendances indirectes des révisions sur le graphe filtré par ensemble de révisions. Par défaut : Vrai

                                                                                                              Note : le calcul des lignes de famille peut être lent dans certains cas. Cette option sera retirée si le problème de performance est résolu.Afficher les onglets sur le côté de la moitié inférieure de chaque widget de dépôt permettant de changer d'onglet de tâche sans utiliser la barre d'outils. Par défaut : offAfficher les étiquettes au début du message de commit.Afficher l'historique du fichier sélectionnéAfficher dans quelle fonction chaque changement se trouve. Par défaut : FauxAfficher/cacher les révisions cachéesSig&ner...Signer - %sSigner même si le fichier signature est modifié (-f/--force)La signature a été ajoutéeSimplelockExtension simplelock pas activéeFenêtre unique de WorkbenchTailleTaille (ko)Sauter la confirmation finale, fermer après commit.Omettant %s, impossible à lireCertains fichiers sélectionnés ont une taille supérieure à 10 MB. Vous pouvez utiliser plus efficacement l'espace disque en ajoutant ces fichiers comme largefiles, qui stockeront uniquement la version la plus récente de chaque fichier dans votre dépôt local, en gardant les versions plus anciennes disponibles sur le serveur. Voulez-vous ajouter ces fichiers comme largefiles ?Trier par &nomTrier &par cheminTrier l'ensemble par clé. L'ordre de tri par défaut est ascendant, spécifier une clé avec "-clé" pour trier dans l'ordre descendant.Trier le groupe par nom completTrier le groupe par nom courtSourceLa source n'existe pas.Source :Europe du Sud-EstEurope du SudListe séparée par des espaces de noms de branches et de couleurs sous la forme branche:#XXXXXX. Les espaces et les deux points doivent être échappés avec \. De même quelques autres caractères peuvent être échappés de cette manière, par exemple \u0040 sera décodé en @, et \n en nouvelle ligne. Par défaut : Aucune (laisser vide)Liste séparée par des espaces de commandes que vous souhaitez voir exécutées immédiatement, sans interaction utilisateur. Les commandes sont "add remove revert forget". Par défaut : Aucune (laisser vide)Liste séparée par des espaces d'étiquettes qui ne seront pas affichées. Exemple: spécifier "qbase qparent qtip" pour cacher les étiquettes standards insérées par l'extension MQ. Par défaut : Aucune (laisser vide)Indiquer le nom du nouveau "shelf"Spécifier la commande pour lancer votre application terminal préférée. Si la valeur contient la chaîne %(reponame)s, elle est remplacée par le nom du dépôt. De même, %(root)s sera le chemin complet vers le dépôt. (redémarrage nécessaire)
                                                                                                              Par défaut, Windows : cmd.exe /K title %(reponame)s
                                                                                                              Par défaut, OS X : non défini
                                                                                                              Par défaut, autres plateformes : xterm -T "%(reponame)s"Spécifier le nombre d'espaces remplaçant une tabulation dans différentes fenêtres de TortoiseHg. Par défaut :8Indiquer le chemin vers GPG. Par défaut : gpgSpécifier les systèmes de fichiers dans lesquels TortoiseHg surveille les modifications. : always (toujours), localonly (local uniquement à l'exclusion des disques sur le réseau), never (jamais). Par défaut : localonlySpécifier l'outil de diff visuel, comme décrit dans la section [merge-tools] de vos fichiers de configuration Mercurial. Si non spécifié, TortoiseHg utilisera l'outil de fusion sélectionné. Si cela échoue, il utilise le premier outil correct qu'il trouve.Spécifier l'éditeur graphique comme décrit dans la section [editor-tools] de vos fichiers de configuration Mercurial. Si non spécifié, TortoiseHg utilisera le premier outil trouvé qui s'applique.Spécifier les boutons de tâche que vous voulez afficher sur la barre d'outils de tâches ainsi que leur ordre.
                                                                                                              Taper une liste de noms de bouton de tâche. Ajouter des séparateurs avec "|" entre les noms de bouton de tâche.
                                                                                                              Les noms valides sont : log commit sync grep et pbranch.
                                                                                                              Par défaut : log commit grep pbranch | syncSpécifier votre langue préférée pour l'interface (redémarrage nécessaire)DémarrerCommencer une nouvelle branche de patchRévision de début :Démarrer le serveur web pour ce dépôtÉtatÉtatBarre d'outils de statut des fichiersÉtat :ArrêterArrêter l'opération en coursArrêtéBarréStrip - %sStrip :BandesRetirer l'en-tête Mercurial enlève le nom d'utilisateur et les informations de parenté. Cela n'est utile que si le destinataire n'utilise pas Mercurial (et qu'il n'aime pas voir ces en-têtes).StyleÉléments de sous-menu :Objet :Soumettant une changelist p4...Le sous-dépôt '%s' a une URL par défaut non trivial :

                                                                                                              %s

                                                                                                              La remplacer avec l'URL suivante ?

                                                                                                              %sSous-dépôt ajouté au fichier .hgsubSous-dépôt créé et placé à la première révisionSous-dépôt initialisé à la révision :Le sous-dépôt peut être endommagé ou inaccessible.Sous-dépôt enlevé du dépôt.L'état du sous-dépôt est :États des sous-dépôtsLe sous-dépôt n'a pas été modifié.Le sous-dépôt existe déjàSous-dépôt non trouvéSous-dépôt non trouvé dans le répertoire de travail.Sous-dépôt enlevé de .hgsubSubversion :SuccèsSuccesseurs :Longueur suggérée pour les lignes de message de commit. Une ligne rouge verticale indiquera cette longueur. CTRL-E arrangera le paragraphe actuel à la longueur indiquée. Valeur par défaut : 80Résumé (première ligne de description)Longueur de la ligne de résuméRésumé :Permuter source et destinationSyncSynchroniser des signetsSynchroniserSynchroniser avec le dépôt déplacéSynchroniser avec un dépôt distantColoration syntaxiqueCache systèmeTLS 1.0TLS 1.1TLS 1.2Largeur des tabulationsL'onglet ne peut pas fermerL'étiquette '%s' a été ajoutéeL'étiquette '%s' a été déplacéel'étiquette '%s' a été enlevéeÉtiquette - %sÉtiquette :Étiquetée :Étiquettes :Prendre l'autre révisionArchive tar compressée en utilisant bzip2Archive tar compressée en utilisant gzipArchives tarCombo cibleGroupe ciblePersonnes ciblesCible :Onglets de tâcheOrdre de la barre d'outils de tâchesBarre de tâchesDésactiver temporairement le proxy HTTP configuréLes fichiers temporaires sont supprimés lorsque vous fermez cette boîte de dialogueTerminé par l'utilisateurTester cette révision et indiquer le résultat (bonne/mauvaise/sauter).Erreur de transposition de texteFichiers texte (*.txt)Description du but ou du contenu du dépôtThaïLe fichier .hgsub contient déjà la ligne :

                                                                                                              %sLes changements de la révision %s et tous les parents non fusionnés seront abandonnés. Êtes-vous sûr ?La commande "%s" ne peut pas être exécutée.La commande "%s" a échoué (code %d).La commande qui sera exécutée. Pour exécuter une commande Mercurial, utiliser "hg" (plutôt que "hg.exe") comme nom de commande. Vous pouvez utiliser plusieurs {VARIABLES} pour composer votre commande. Variables courantes : - {ROOT} : le chemin de la racine du dépôt actuel. - {REV} / {REVID} : respectivement, numéros ou identifiants hexadécimaux des révisions sélectionnées formatés comme une expression d'un ensemble de révisions. - {SELECTEDFILES} : la liste de fichiers sélectionnés par l'utilisateur dans la liste de fichiers de détails de révision. - {FILES} : la liste des fichiers touchés par les révisions sélectionnées. - {ALLFILES} : tous les fichiers suivis par Mercurial dans les révisions sélectionnées. Variables disponibles lors de la sélection de deux révisions : - {REV_A} / {REVID_A} : respectivement, le numéro ou l'identifiant hexadécimal de la première révision sélectionnée. - {REV_B} / {REVID_B} : respectivement, le numéro ou l'identifiant hexadécimal de la seconde révision sélectionnée. La commande qui sera exécutée. Pour exécuter une fonction python, préfixer la commande avec "python:". L'identifiant par défaut pour ce dépôt sur le serveur Review Board"%s" existe déjà comme fichier destination."%s" existe déjà comme dossier destination.La destination doit être dans le dépôt.Le répertoire "%s" n'est pas vide ! Voulez-vous le remplacer ?Le répertoire où la commande sera exécutée. Si celui-ci n'est pas défini, la racine du dépôt actuel sera utilisé. Vous pouvez utiliser les mêmes {VARIABLES} que dans la préférence "Commande". L'éditeur utilisé par les commandes Mercurial pour récupérer des entrées sur plusieurs lignes. Particulièrement, les messages de commit.Le message d'erreur de l'exception était :

                                                                                                              %s

                                                                                                              Le fichier "%s" existe déjà ! Voulez-vous le remplacer ?Le message d'erreur suivant a été retourné : "%s" Veuillez vérifier que le chemin de la commande est valide et que c'est une application valide.Le message d'erreur suivant a été retourné : %sLe nom du hook ne peut pas contenir d'espace, de tabulation ou de caractère '='.Nom du hook. Il ne peut pas contenir d'espace.La taille maximum du fichier (en KB) dont TortoiseHg affichera les changements dans les fenêtres de changelog, de statut et de commit. Une valeur de zéro signifie aucune limite. Par défaut : 1024 (1 MB)Le signet nommé ou tous les signets.L'étiquette nommée ou toutes les étiquettes.Le nombre de révisions à lire et à afficher dans le visualisateur en une fois. Par défaut : 500La phase des nouvelles révisions. Par défaut : draftLa commande sélectionnée est videLe dossier sélectionné :
                                                                                                              %s

                                                                                                              n'est pas dans le dépôt cible.

                                                                                                              Ceci est autorisé mais fortement découragé.
                                                                                                              Si vous voulez ajouter une organisation de sous-dépôt compliquée, vous devez éditer manuellement le fichier .hgsub.Le dépôt sélectionné :
                                                                                                              %s

                                                                                                              ne peut pas être ouvert !Le dépôt sélectionné :

                                                                                                              %s

                                                                                                              est déjà un sous-dépôt de :

                                                                                                              %s

                                                                                                              comme : "%s"La révision sélectionnée (%s) a un signet appelé "%s".

                                                                                                              Voulez-vous l'activer ?
                                                                                                              Vous pouvez déactiver cette invite en configurant Préférences/Workbench/Activer les signetsLa révision sélectionnée (%s) a %d signets.

                                                                                                              Sélectionner le signet que vous voulez activer et cliquer sur OK.

                                                                                                              Cliquer sur Annuler si vous ne voulez pas en activer.

                                                                                                              Vous pouvez déactiver cette invite en configurant Préférences/Workbench/Activer les signetsLa révision sélectionnée (rev #%d) ne peut pas être importée car elle n'est pas une descendante de qparent (rev #%d)Le sous-dépôt sélectionné :

                                                                                                              %s

                                                                                                              a été ajouté au fichier .hgsub du dépôt :

                                                                                                              %s

                                                                                                              Rappelez-vous que pour finir d'ajouter le sous-dépôt vous devez aussi "committer" les changements du fichier .hgsub pour confirmer l'ajout du sous-dépôt.Le sous-dépôt sélectionné a été enlevé du fichier .hgsub.

                                                                                                              Penser que vous devez committer la modification de .hgsub pour terminer la suppression du sous-dépôt !Le sous-dépôt sélectionné n'a pas été trouvé dans le fichier .hgsub.

                                                                                                              Peut-être a-t-il déjà été enlevé ?L'ensemble de tous les parents de toutes les révisions dans l'ensemble.La source doit être dans le dépôt.Le sous-dépôt est sale.Icône d'outil. Vous pouvez utiliser n'importe quelle icone de TortoiseHg en indiquant un nom d'icône TortoiseHg valide (par exemple : clone, add, remove, sync, thg-logo, hg-update, etc). Vous pouvez aussi indiquer le chemin absolu vers n'importe quelle icône dans votre système de fichiers.L'étiquette d'outil qui sera affichée dans le menu contextuel. Si aucune étiquette n'est spécifiée, le nom de l'outil sera utilisé. Si aucun bulle d'aide n'est spécifiée, l'étiquette sera utilisée.Le nom d'outil ne peut pas contenir d'espace.Le nom de l'outil ne peut pas contenir d'espace.La bulle d'aide qui sera affichée sur le bouton de l'outil. Celle-ci sera uniquement affichée quand le bouton est sur la barre d'outil du workbench.Le répertoire de travail est déjà fusionné. Continuer ou abandonner la fusion existante.Il y a des fichiers patch existants pour %d révisions (%s) à l'endroit sélectionné (%s). Il y a des conflits de fusion à résoudreIl n'y a aucun chemin de synchronisation configuré. Ouvrir l'onglet Synchronisation pour les configurer.Il n'y a pas de conflits de fusion.Pas de changement de fichier à voirIl n'y a aucun fichier qui peut avoir été renomméIl y a déjà un dossier avec le même nom.Il y a un hook existant %s.%s. Voulez-vous le remplacer ?Il n'y a pas de transaction de rollback disponibleThg - Outils de l'interface graphique TortoiseHg pour Mercurial (Hg) Cela semble être un fichier binaire.Cette erreur ne sera plus affichée jusqu'au prochain démarrage du workbench.Outil de fusion 3 voiesTitreÀPour terminer la fusion, vous devez committer le répertoire de travail. Pour annuler la fusion, vous pouvez mettre à jour vers l'une des révisions parentes de la fusion.Vers la destination de greffeVers la destination du "rebase"À :Afficher la barre de rechercheFiltrer les révisions ne correspondant pas au filtreAlterner la visibilité des relations de greffeAlterner entre les parents comme révision de baseTolérer des conflits locaux non-conflictuels (--keep-changes)Trop de lignes sélectionnées pour le menu&Résoudre par l'outilÉtiquette d'outilÉchec de lancement de l'outilNom de l'outilOutilsOutils affichés à l'emplacement sélectionnéBulle d'aideÉléments du menu principal :Top&ic...Topic '%s' n'existe pasTopic '%s' a été ajoutéTopic '%s' a été enlevéTopic '%s' a été renommé en %sTopic - %sTopic :Synchronisation des signets TortoiseHgRapport de bug TortoiseHgDialogue de commande TortoiseHgCommit TortoiseHgInterface TortoiseHg (version %s), Mercurial (version %s) Erreur de TortoiseHgOutil de verrouillage TortoiseHg - %sNouveau nom de "shelf" TortoiseHgIcône du serveur de TortoiseHg OverlayLigne de commande TortoiseHgRecherche TortoiseHgPréférences TortoiseHgTortoiseHg Shelve - %sServeur Web TortoiseHgTortoiseHg WorkbenchTortoiseHg a créé un nouveau fichier .hgignore. Souhaitez-vous ajouter ce fichier dans le dépôt ?TortoiseHg : %sChinois traditionnelTransplant :Déclencher une requête d'un ensemble de révisionsEssayer de rafraîchir votre dépôt.TurcTypeDépaqueter (u&nbundle)...Langue de l'interfaceURLErreur d'URL : %sUkrainienImpossible de faire un backoutImpossible de compresser l'historiqueImpossible de créer un fichier Mercurial.iniImpossible de créer un fichier de configurationImpossible de supprimer le fichier ou dossier %dImpossible de supprimer les fichiers ou dossiers %dImpossible de déterminer les révisions en attenteImpossible de déterminer la révision de la copie de travail Impossible de trouver la révisionImpossible de fusionnerImpossible de fusionner les morceauxImpossible d'analyser la sortie p4pendingImpossible de lire le fichierImpossible de lire le statut du dépôtImpossible d'enleverImpossible de retirer l'URLImpossible de supprimer le fichier %s, permission refuséeImpossible d'enregistrer après avoir poussé le commitImpossible d'enregistrer une URLImpossible d'enregistrer l'authentificationImpossible d'enregistrer la liste d'inclusion automatiqueImpossible d'enregistrer l'opération d'après tirageImpossible d'enregistrer l'option de récursion dans des sous-dépôts.Impossible d'enregistrer le nom d'utilisateurImpossible d'affichier les fichiers des sous-dépôtsImpossible de démarrer la commande suivante :Impossible de transposer l'entrée dans l'encodage local.Impossible de transposer le message dans l'encodage local. Envisager de configurer la variable d'environnement HGENCODING. Remplacer les caractères non-transposables par "?" ? Impossible de mettre à jour le nom du dépôtImpossible d'écrire le fichier .hgignoreImpossible d'enregistrer le fichier de configurationImpossible d'écrire le fichier diffImpossible d'écrire le fichierDé-appliquer tous les patchesDé-appliquer un patchDépaqueter (unbundle)DécocherDécocher tous les fichiersDécocher pour examiner tous les fichiers versionnés pour les sources de copieFusion non committée - veuillez sélectionner une révision parenteArchive tar décompresséeArchive zip décompresséeSoulignéAnnuler la fermeture des autres ongletsAnnuler la fermeture d'ongletDéfaire le dernier commit ?Défaire la dernière transaction ?Défaire le commit le plus récent (%d) en gardant les modifications de fichier ?UnicodeChinois unifiéRévision inconnue !Déverrouillage raté de %s, réessayezDéverrouillage réussi de %sDéverrouillage de %sConflits non résolusConflits non résolus restants. Êtes-vous sûr ?Les changements non enregistrés seront perdus. Voulez-vous recharger ?Type de dépôt non pris en charge (%s)Non versionnéMettre à jourMise à jour - %sMettre à jour - tirer, puis essayer de mettre à jourMettre à jour les icônesMettre à jour la revueMettre à jour les icônes du dépôtMettre à jour sur entrantMettre à jour ou créer un alias de chemin nommé '%s' sur tous les sous-dépôts en utilisant cette URL comme base et en y ajoutant le chemin local relatif du sous-dépôtMettre à jour les chemins des sous-dépôtsMettre à jour les champs de cette requêteMettre à jour vers :Mise à jour du dossier de travailMettre à jour le répertoire de travail ou changer de révisionMettre à jour...UpdateOrRebase - tirer puis essayer de mettre à jour ou rebaserUpdateOrRebase - utilise l'extension rebase (rebase pas actif !)Mise à jour du registre des dépôtsUne mise à jour vers une version plus récente de TortoiseHg est recommandée.Utiliser le message de backout en anglaisUtiliser un message de commit en anglaisUtiliser l'agencement optimisé de graphe pour les gros dépôts. Par défaut : Faux

                                                                                                              Note : Cet agencement colorie les arcs en utilisant les informations de branche et n'affiche pas les arcs de greffe, indépendamment du fait qu'ils soient demandés ou non.Utiliser la vue compacteUtiliser la date actuelleUtiliser un message de commit personnalisé :Utiliser le format de patch étendu (git)Utiliser le format d'en-tête de diff étendu git. Par défaut : FauxUtiliser largefilesUtiliser mon nom au lieu de celui du committeur de la greffeUtiliser l'agencement optimisé de grapheUtiliser un serveur proxyUtiliser le protocole 'pull' pour copier les métadonnéesUtilisateurAuthentification de l'utilisateurCache utilisateurChaîne de certificat utilisateurClé de certificat utilisateurLes données d'authentification de l'utilisateur devraient être associées avec le nom d'hôte en utilisant le dialogue de sécurité.Nom d'utilisateur pour s'authentifier avec Review BoardUtilisateur :Nom d'utilisateurNom d'utilisateur pour s'authentifier au serveur SMTPVérifier la révision de backout et s'assurer que le répertoire de travail est propreVérifie la fusion des cibles et s'assure que le répertoire de travail est propre.Vérifier avec des certificats d'Autorités de Certification (le meilleur)Vérifier avec l'empreinte stockée de l'hôte (bon)Voir le fichi&erVietnamienVoir le fichier àVoir l'au&treVoir le changement comme sortie unifiée de diffAfficher l'historique des changements du dépôtAfficher l'historique des changements des fichiers sélectionnésVoir le changement dans le contexte du fichierVoir les changements avec l'actuel dans un outil de diff externeAfficher les changements avec l'interface graphique de diffVoir le fichier tel qu'il apparaît à cette révisionVoir les changements du fichier dans un outil de diff externeVoir les paramètres du dépôtDiff visuelOutil de diff visuelDiff visuel...Diffs visuels - Éditeur visuelDiff visuel entre le fichier résolu et le premier parentDiff visuel entre le fichier résolu et le second parentDiff visuel...Les diffs visuels ne sont pas pris en charge pour les fichiers des sous-dépôts. Ils ne seront pas affichés.Diff visuel 3 voiesAttentionAttention : touche tous les clients Tortoise, déconnexion nécessaire après changementA été renommé depuisServeur WebWebconfEurope de l'OuestQue voulez-vous faire ? Lors du commit, demande qu'une référence vers un problème soit spécifiée. Si activé, l'expression régulière configurée dans 'Expression régulière de problème' doit trouver une correspondance dans le message de commit.Quand activé, afficher automatiquement le journal de sortie quand la commande est exécutée. Par défaut : False.Quand lancé depuis la ligne de commande, créer un processus d'arrière-plan pour les dialogues graphiques. Cette préférence est ignorée quand TortoiseHg est une application OS X. Par défaut : TrueQuand défini à 'auto', mq utilisera automatiquement des patches git quand nécessaire pour éviter de perdre des changements de modes de fichier, des enregistrements de copie ou des fichiers binaires. Si défini à 'keep', mq suivra la configuration de la section [diff] en préservant les patches git lors d'un qrefresh. Si défini à 'yes' ou 'no', mq surchargera la section [diff] et créera toujours des patches git ou normaux, en perdant peut-être des données dans le second cas. Par défaut : autoQuand demander à l'utilisateur de confirmer la mise à jour du fichier de configuration "projrc" local si le fichier projrc distant change. Les valeurs possibles sont :

                                                                                                              • always : [par défaut] Toujours afficher une demande de confirmation avant de mettre à jour le fichier .hg/projrc local.
                                                                                                              • first : Afficher une demande de confirmation quand le dépôt est cloné ou quand un fichier projrc distant est trouvé pour la première fois.
                                                                                                              • never : Mettre à jour le fichier .hg/projrc local automatiquement, sans demander de confirmation à l'utilisateur.
                                                                                                              Si les sous-dépôts Git sont autorisés dans le répertoire de travail. Par défaut : Faux

                                                                                                              Voir la note de sécurité avant d'activer les sous-dépôts Git.Si les sous-dépôts Mercurial sont autorisés dans le répertoire de travail. Par défaut : VraiSi les sous-dépôts Git sont autorisés dans le répertoire de travail. Par défaut : Faux

                                                                                                              Voir la note de sécurité avant d'activer les sous-dépôts Subversion.Si autorisé de pousser vers le dépôt. Si vide ou non défini, pousser n'est pas autorisé. Si la valeur spéciale "*", n'importe quel utilisateur distant peut pousser, y compris les utilisateurs non authentifiés. Autrement, l'utilisateur distant doit être authentifié et le nom d'utilisateur doit se trouver dans cette liste (séparé par des espaces ou ",'). Le contenu de la liste allow_push est examinée après la liste deny_push.Si interdit de pousser vers le dépôt. Si vide ou non défini, pousser n'est pas interdit. Si la valeur spéciale "*", aucun utilisateur distant ne peut pousser. Autrement, les utilisateurs distants non authentifiés sont interdits et les utilisateurs authentifiés présents dans cette liste (séparé par des espaces ou ",') sont aussi interdits. Le contenu de la liste deny_push est examinée avant la liste allow_push.Si requis que les opérations de pousse soient transportées sur SSL pour éviter l'écoute des mots de passe.Style de template à utiliserE&spaceDocuments Word (*.doc *.docx)Travailler sur la queue de patch (--mq)WorkbenchColonnes de log du WorkbenchBarre d'outils personnaliséeCopie de travailRépertoire de travailEspace de travail (fusionné)Répertoire de travailLe répertoire de travail n'est pas propre ! View changes...État du répertoire du travailRecherche cycliqueÉcrire un paquetÉcrire le fichier diffÉcrire la description de la série (paquet) de patchesVous essayez de déplacer la phase de la révision %d à l'envers, de "%s" vers "%s". Pourtant, "%s" est un niveau de phase inférieur à "%s". Déplacer une phase à l'envers n'est pas recommandé. Par exemple, cela peut avoir pour résultat d'avoir plusieurs têtes si vous modifiez une révision que vous avez déjà poussée vers un serveur. Soyez prudent !Vous pouvez changer le jeu d'icônes des Préférences TortoiseSVNVous pouvez relâcher uniquement vos verrousVous pouvez aller voir notre site iciVous ne pouvez pas fusionner une révision avec elle-mêmeVous avez des informations d'authentification configurées pour cet hôte et dans cette URL. Supprimer les informations d'authentification pour cette URL ?Vous avez marqués tous les morceaux rejetés comme déjà résolus mais vous n'avez pas modifié le fichier . Ceci signifie probablement qu'aucun code des morceaux rejetés n'a été inclus dans le fichier. Êtes-vous certain de vouloir laisser le fichier tel quel et considérer tous les morceaux rejetés comme résolus ? Faire ainsi peut les supprimer d'un 'shelve', par exemple, ce qui signifie que vous les perdrez pour toujours ! Cliquer Oui pour accepter le fichier en l'état ou Non pour continuer la résolution des morceaux rejetés.Vous avez plusieurs renommages sélectionnés pour le fichier destination : %s. Abandon !Vous avez sélectionné un ou plusieurs fichiers qui ont été modifiés. Par défaut, ces fichiers ne seront pas supprimés. Que souhaitez-vous faire ?Vous devriez rafraîchir cette applicationVous pouvez continuer ou démarrer la greffeVous pouvez continuer la compressionVous pouvez continuer la greffeVous pouvez continuer de "rebaser"Vous devez entrer un nom de patchVous devez vous identifier à MercurialVous devez fournir des révisions à grefferVous devez fournir une source et une destinationVous devez donner le chemin vers un fichierVous devez indiquer une commande à exécuter.Vous devez indiquer un nom d'outil.Vous devez indiquer un type de hook valide.Votre TortoiseHg est à jour.Votre révision de travail actuelle (%d) sera supprimée par cette annulation laissant des changements non committés. Continuer ?Archive zip compressée utilisant deflateArchives zip[--after PATCH] PATCH...[--insecure] [SOURCE][Code : %d][ATTENTION] Sous-dépôt modifié incomplet. Mettre à jour à cette révision pour le tirer.[ATTENTION] Sous-dépôt incomplet. Mettre à jour à cette révision pour le tirer.[ATTENTION] Identifiant de révision de sous-dépôt invalide : %s [ATTENTION] Sous-dépôt modifié manquant. Mettre à jour à cette révision pour le cloner.[ATTENTION] Sous-dépôt manquant. Mettre à jour à cette révision pour le cloner.[la commande s'est terminée avec succès %s][commande interrompue %s][la commande a retourné le code %d %%s][commande terminée par l'utilisateur %s][inexistent][original][copie de travail]une révision à posterune révision à envoyerabandon : abandon : %s abandon : %s ! Committerajouter les infos diffstat aux messagesajoutétoutes les révisions converties depuis subversiontoujours créer un processus pour l'interface graphiquejoindrecommandes de base : corpssignet : branche : fichier paquet à prévisualiserimpossible de lire le fichier "%s". Ignoré. ne peut pas déplacer les patches appliquésne peut pas déplacer dans les patches appliquésne peut pas spécifier à la fois -k/--query et des noms de fichiersrévision %d :%srévision à afficher dans l'outil de diffrévision représentant une révision svn convertierévision : %srévision :%s (non trouvé dans le sous-dépôt)proprecloner uniquement la branche spécifiéeÂgeAuteurBrancheChangementsConverti deDescriptionNom de fichierCommit GitGrapheDernières étiquettesHeure localeNœudPhaseRevÉtiquettesHeure UTCerreur d'analyse de la commande : %sCommitrésultat de la commande corrompu : %rpar défautdiffstatabandonner les changements non committés (pas de sauvegarde)afficher l'aide et quitterne pas sauvegarder les révisions suppriméesne pas committer le fichier signature après avoir signéne pas créer de processus pour l'interface graphiquene pas modifier la copie de travail durant le stripne pas vérifier le certificat du serveur (ignorant la config web.cacerts)activer la sortie supplémentaireactiver la sortie de déboguageeol est incompatible avec win32texterreur lors de l'exécution de la commande mode exécutable a été activémode exécutable a été désactivéimpossible d'encoder la commande : %simpossible d'encoder l'entrée : %simpossible de créer un processus pour l'interface graphique :%s impossible de démarrer la commande champ prenant la saisie initialele fichier a été supprimé, rafraîchirle fichier a été modifié, rafraîchirfichiersTousAucunremplissage (%d)filtreroptions globales :grep : %s grep : motif invalide : %s hggit fourni avec thghgsubversion est incompatible avec perfarcehgsubversion fourni avec thgindice :indice : historiquehttps://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings.html#tsvn-dug-settings-icon-setignorer la casse durant la rechercheignoréimporter dans la queue de patch (MQ)dans le futurinclure la révision spécifiéepremier motif de rechercheen ligneinotify n'est pas supporté sur cette plate-formemessage "hello" invalide : %rarguments invalidesnuméro de ligne invalide : %sposition invalide de patch spécifiéegarder les nom de branches originauxgarder les révisions d'originelancer l'outil de diff visuelliste des commandes : locallsprof n'est pas disponible - à installer depuis http://codespeak.net/svn/user/arigo/hack/misc/lsprof/rendre la signature localerendre l'étiquette localefusion avec l'ancien parent du répertoire de travail après backoutméthodemanquantmodifiédéplacer après le patch spécifiédoit être du 'type' spécifié dans le styledoit être le dépôt spécifiénom du fichier de configuration pour hgweb (obsolète)nom du fichier de configuration pour hgweb (pour servir plus d'un dépôt)nécessite la fusion de %i têtes nécessite la fusion avec %s nécessite la fusion avec %s (à travers %s) nécessite la mise à jour de la base diff vers le tip de %s pas de capacité "runcommand"aucune commande spécifiéeaucune commande définie aucune gardeaucune correspondance trouvée : %saucune révision sortanteaucune révision sortante dans la branche actuelle (%s) / %d au totalaucune révision sortante jusqu'à la révision actuelle (#%d) / %d au totalaucune révision sortante jusqu'à la révision #%d / %d au totalaucun dépôt à aucune révision spécifiéenotifie l'explorateur pour les chemins fournismaintenantrévision nulle (c'est-à-dire supprimer le(s) fichier(s))un seul nouveau nom de signet autoriséun seul nouveau nom de topic autoriséouvrir une nouvelle fenêtre workbenchouvrir la fenêtre de synchronisation de signetouvrir à la ligneouvrir...option --config ne peut pas être raccourcie !options : parent à choisir lors du back out d'une fusionmot de passe : patch %s pas dans la sérieperfarce est incompatible avec hgsubversionafficher le profil d'exécution de la commandeafficher la licence d'utilisationprocessus terminé à l'improviste avec le code %dtirer : %s pousser : %slire la liste de fichiers depuis le fichierlire la liste de fichiers depuis le fichier encodé en utf-8rebase depuis la révision spécifiéerebase vers la révision spécifiéeutiliser la date indiquée comme date de commitenregistrer l'utilisateur comme committeurenlever une étiquettevider le cache de statutsupprimer le répertoire de travailenlevéremplacer l'étiquette existanteDépôt %s non trouvérépertoire racine du dépôt ou nom de chemin symboliquedemande un seul nom de fichierrev: %d (%s)extension reviewboard pas activéerévisionpremier parent de la révision %d (c'est-à-dire révision %d)second parent de la révision %d (c'est-à-dire révision %d)révision à annoterrévision à archiverbackout de la révisionrévision à afficherrévision à fusionnerrévision à supprimerrévision à étiqueterrévision à mettre à jourrévision, étiquette ou branche à obtenirrévisions %d:%s à %d:%srévisions à grefferrévisions à élaguerrévisions à afficher dans l'outil de diffrecherche d'un texte donné ou d'un ensemble de révisionsvoir %(url)ssélectionner la révision spécifiéefichiers sélectionnésenvoyer les patches comme pièces jointesenvoyer les patches directement inclus dans le mailenvoyer des patches dans le corps du courrierdéfinir/redéfinir l'option de configuration (utiliser 'section.nom=valeur')afficher les fichiers sans changementsafficher les fichiers ignorésafficher le contenu du cache de statut (sans mise à jour)comparaison côte-à-côte de révisionssigner même si le fichier signature est modifiédémarrer le débogueurCommitAction MQRollbackétatsous-dépôtsupprimer la sortieune commande de synchronisation est déjà en cours d'exécutionCommitConsoleBranche de patchDétails de révisionRechercherSynchroniserle clone aura une copie de travail vide (seulement un dépôt)l'identifiant de clé pour signerla révision à afficherthg %s : %s thg aboutthg add [FILE]...thg annotatethg archivethg backout [OPTION]... [[-r] REV]thg bisectthg bookmarks [-r REV] [NAME]thg clone [OPTION]... [SOURCE] [DEST]thg commit [OPTIONS] [FILE]...thg debugblockmatcherthg debugbugreport [TEXTE]thg debugconsolethg debuglighthgthg debugruncommand -- COMMANDE [ARGUMENT]...thg drag_copy SOURCE... DESTthg drag_move SOURCE... DESTthg email [REVS]thg filelog [OPTION]... FICHIERthg forget [FILE]...thg graft [-r] REV...thg grepthg guessthg help [COMMANDE]thg hgignore [FILE]thg import [OPTION] [SOURCE]...thg init [DEST]thg lockthg log [OPTIONS] [FILE]thg manifest [-r REV] [FILE]thg merge [[-r] REV]thg postreview [-r] REV...thg prune [-r] REV...thg purgethg rebase -s REV -d REV [--keep]thg rejects [FILE]thg remove [FILE]...thg rename [SOURCE] [DEST]thg repoconfigthg resolvethg revdetails [-r REV]thg revert [FILE]...thg rupdate [[-r] REV]thg serve [--web-conf FILE]thg shellconfigthg shelvethg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]thg status [OPTIONS] [FILE]thg strip [-k] [-f] [-n] [[-r] REV]thg sync [OPTION]... [PEER]thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]thg thgstatus [OPTION]thg topics [-r REV] [NAME]thg update [-C] [[-r] REV]thg userconfigthg version [OPTION]thg : %s thg : la commande '%s' est ambiguë : %s thg : command inconnue '%s' attente trop longue du messageattente trop longue en lisant : %r...réponse inattendue sur le canal requis %rinconnupatch inconnu spécifié à déplacerrévision inconnue !format '%s' de profiling non reconnu - Ignoré réponse non reconnue : %sURL non supportée : %smettre à jour tous les dépôts dans le répertoire courantutiliser "thg -v help %s" pour montrer les options globalesutiliser "thg -v help%s" pour montrer les alias et les options globalesutiliser "thg help" pour la liste complète des commandesutiliser "thg help" pour la liste complète des commandes ou "thg -v" pour des détailsutiliser comme message de commitutiliser une seule forme pour spécifier la révisionutiliser le protocole 'pull' pour copier les métadonnéesutiliser le transfert non compressé (rapide sur réseau local)version %sattendre la prochaine secondeva être ferméwin32ill: ne peut pas créer une fenêtre pour des messageswin32ill: interrompu en arrêtant la boucle de message win32ill: plate-forme non supportée : %s win32text est incompatible avec eolCommitavec Mercurial-%s, Python-%s, PyQt-%s, Qt-%schangements courantsPropreAucu&n././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/he/0000755000000000000000000000000014742203610014147 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1274145 tortoisehg-6.9/locale/he/LC_MESSAGES/0000755000000000000000000000000014742203610015734 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033566.0 tortoisehg-6.9/locale/he/LC_MESSAGES/tortoisehg.mo0000644000000000000000000000133514742203536020471 0ustar00rootrootL|| }  Archive - %sBrowse...CloseDestination path:Directory of filesProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2009-10-18 09:25+0000 Last-Translator: peso Language-Team: Hebrew MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Launchpad-Export-Date: 2019-07-17 05:42+0000 X-Generator: Launchpad (build 19009) ארכיון - %sעיין...סגורנתיב היעד:תיקיית קבצים././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/hr/0000755000000000000000000000000014742203610014164 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1274145 tortoisehg-6.9/locale/hr/LC_MESSAGES/0000755000000000000000000000000014742203610015751 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033566.0 tortoisehg-6.9/locale/hr/LC_MESSAGES/tortoisehg.mo0000644000000000000000000002231314742203536020505 0ustar00rootrootW u-$ > D J Q [ 0_  G 4 ) 8@ y   "       &$ K "Y |   + "    # 6 < Q r        15'g   #-Q+f,:*!Egz   $91W"! 7.0G>x; (:Sl"C-F$b  ,cGWqx ++!& .9 BM;S  T769K& '( ,%E kw -34IQdl'  9K%`.   +7T o y(0.6 RE\32 ( 7 V h o }      # !0/!`!e!! !A!*!&"0B"5s"#"(""###(6#_#/z#J##$"$&<$ c$ $ $/$%d files have merge conflicts that must be resolved%s (hint: %s)%s - branch operation&Add&Archive&Close&Discard&License&Move&RemoveUncommitted local changes are detected= Working Directory Parent =A bookmark named "%s" already existsAbortAboutAcceptActivate:AddAll conflicting files will be marked unresolved.Archive - %sArchive types:Automatically advance to next page when backout and merge are complete.Automatically resolve merge conflicts where possibleBacked out changeset: Backing out a parent revision is a single step operationBacking out and committing...Backing out, then merging...Backout - %sBackout changesetBackout requires a parent revisionBackout revisionBefore backout, you must commit, shelve to patch, or discard changes.Bisect - %sBookmark '%s' does not existBookmark '%s' has been addedBookmark '%s' has been movedBookmark '%s' has been removedBookmark '%s' has been renamed to '%s'Bookmark - %sBookmark named "%s" does not existBookmark:Browse...Bzip2 tar archivesCancelCannot backout change on a different branchChanges take effect on next commitChecking for updates...Checking...CleanClone to revision:CloseClose current branchCommit backout and merge resultsCommit messageCommitting...Confirm DiscardConfirm Discard MessageConfirm OverwriteCulprit found.Current local revisionDestination path:Directory of filesDiscard current backout message?Discard outstanding changes to working directory?Do not update the new working directoryDuplicate NameError encountered.ExitFilesFinishedGzip tar archivesHg command:Known bad revision:Known good revision:MoveNew Name:No branch changesNo merge conflicts, ready to commitNot a head revision!Not a head, backout will create a new head!Only files modified/created in this revisionOpen a new named branchParentsPlease report this bug to our bug trackerPlease wait while committing merged files.Please wait while making backout.Prepare to backoutRe&nameRecurse into subrepositoriesRemote command:RemoveRenameRevisionRevision:Save error report toSave file toSelect Destination FileSelect Destination FolderSelect Source FolderSelect branch of merge commitSkip final confirmation page, close after commit.StatTar archive compressed using bzip2Tar archive compressed using gzipTar archivesTest this revision and report findings. (good/bad/skip)The destination "%s" already exists as a file!The destination "%s" already exists as a folder!The directory "%s" is not empty! Do you want to overwrite it?The file "%s" already exists! Do you want to overwrite it?TortoiseHg Bug ReportTortoiseHg Overlay Icon ServerUnable to backoutUncompressed tar archiveUncompressed zip archiveUse English backout messageUse proxy serverUse pull protocol to copy metadataVerify backout revision and ensure your working directory is clean.Working DirectoryWorking Directory (merged)Working directory statusYou can visit our site hereZip archive compressed using deflateZip archivesversion %swith Mercurial-%s, Python-%s, PyQt-%s, Qt-%sProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: Croatian POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2013-08-10 15:26+0000 Last-Translator: Mario Šarić Language-Team: Croatian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2; X-Launchpad-Export-Date: 2019-07-17 05:44+0000 X-Generator: Launchpad (build 19009) %d datoteka imaju sukob stapanja kojeg je potrebno razriješiti%s (savjet: %s)%s - operacija nad granom&Dodaj&Arhiva&Zatvori&OdbaciLicence&Premjesti&UkloniPostoje nepohranjene lokalne izmjene= Mapa u kojoj se nalazi radni direktorij =Oznaka s imenom "%s" već postojiPrekiniO programuPrihvatiAktiviraj:DodajSve datoteke s konfliktom će biti označene neriješenima.Arhiva - %sVrste arhive:Automatski prijeđi na sljedeću stranicu kad završe akcije poništenje i stapanje.Automatski razriješi sukobe stapanja kad je to mogućePoništena izmjena: Poništenje prethodne revizije je operacija jednog korakaPoništavanje i pohrana...Poništavanje i nakon toga stapanje...Poništi - %sRevizija poništavanjaPoništenje zahtjeva prethodnu revizijuRevizja poništenjaPrije poništavanja, morate pohraniti, odložiti izmjene kao zakrpe, ili odbaciti izmjene.Presjek - %sOznaka '%s' ne postojiOznaka '%s' je dodanaOznaka '%s' je pomaknutaOznaka '%s' je uklonjenaOznaka '%s' je promijenila ime u '%s'Oznake - %sOznaka "%s" ne postojiOznaka:Pregled...Bzip2 tar arhivePrekiniNe može se poništiti izmjena u drugoj graniPromjene će biti primjenjene od slijedeće pohraneProvjera ažuriranja...Provjera u tijeku...OčistiKloniraj reviziju:ZatvoriZatvori trenutnu granuPohrani poništenje i rezultat stapanjaPoruka pohranePohrana...Potvrdi odbacivanjePotvrdi Odbacivanje PorukePotvrdite prepisivanjePronađena zapreka.Trenutna lokalna revizijaOdredišna staza:Imenik/mapa datotekaOdbaci trenutnu poruku poništavanja?Odbaciti lokalne izmjene u radnom direktoriju?Ne osvježavaj novu radnu mapuDvostruko imeGreška prilikom izvršavanjaIzlazakDatotekeZavršenoGzip tar arhiveHg naredba:Poznata neispravna revizija:Poznata ispravna revizija:PremjestiNovo ime:Nema promjene graneNema sukoba stapanja, spremno za pohranuNije vršna revizija!Nije glava, poništenje će otvoriti novu glavu!Samo izmijenjene/nove datoteke u ovoj revizijiOtvori novu imenovanu granuRoditeljiMolimo otvorite grešku u našoj evidenciji predmetaMolim pričekajte da se pohrane stopljene datoteke.Molim pričekajte dok se poništavanje ne završi.Pripremi poništenje (backout)&Promijeni imePonirući kroz subrepozitorijeUdaljena naredba:UkloniPromijeni imeRevizijaRevizija:Snimi izvješće o greškama uSnimi datoteku uOdaberi odredišnu datotekuOdaberi odredišnu mapuOdaberite izvornu mapuOdaberite granu za pohranu stapanjaPreskoči dijalog potvrde, zatvori nakon pohraneStatTar - sažimanje pomoću bzip2Tar - sažimanje pomoću gzipaTar arhiveTestiraj ovu reviziju i izvijesti (ispravna/neispravna/preskoči)Odredište "%s" već postoji kao datoteka!Odredište "%s" već postoji kao mapa!Mapa "%s" nije prazna! Želite li je prepisati?Datoteka "%s" već postoji! Želite li ju prepisati?Izvješće o greškama TortoiseHg-aTortoiseHg poslužitelj prekrivnih ikonaNije moguće poništitiTar - bez sažimanjaZip bez sažimanjaKoristi englesku poruku za poništavanjeKoristi proxy poslužiteljKoristi protokol pull za kopiranje metapodatakaProvjerite reviziju poništenja i osigurajte da je radni direktorij čist.Radni direktorijRadni direktorij (stopljen)Status radnog direktorijaMožete posjetiti naše stranice ovdjeZip - sažimanje pomoću deflateZIP arhiveinačica %spomoću Mercurial-%s, Python-%s, PyQt-%s, Qt-%s././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/hu/0000755000000000000000000000000014742203610014167 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1274145 tortoisehg-6.9/locale/hu/LC_MESSAGES/0000755000000000000000000000000014742203610015754 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033565.0 tortoisehg-6.9/locale/hu/LC_MESSAGES/tortoisehg.mo0000644000000000000000000005302514742203535020513 0ustar00rootroot> & $2 AOejs{$ 7.flr =0 5; R_pG485 R"_ & <"J mw ,?+Fr"v    5;KZ o}   /4:? Q^z $''C R \gm    NMZ    #7LT!YG{-   % 6 J ^ ,z "     ! !! /!;!B! K!U!!u!!:!!!("9"H"["`"e"n"s"""""!""""#"#)#9#=#+V##### # ## ###$&$@$U$s$$$$&$% %%!%(%0%@%E%% %% & &"&!5& W&d&7w&&.&0&>"';a'''8''( ( 2(>(+U(((5(())6)"G)j)o)Cu)') )))*"*;*W*$v* * *#***+ +*+?+_+f+x++!+++++,,,E,a,, , ,,,,,--1-YE-!--- - -. (.(6._.x.../.. /"'/1J/|/////-/ 0'0 G0R0.(2 W2e2 }22 2 22 222 22 22 3$3?3E3^3$|3+3 333 3 4 4W4r49w44!4 4!45%595bM5.5:5#6>67P66 6666 7')7Q7#c7 777 778858 8,8 9*9E9U9]9|9999%9 999 : %:1:!F:h::: :: ::: ;;6;=;E;J;Y;*_;;+;%;.;(<&H<o<<<<<< < < << <= =$=%*=P=Y=,> A>M>>Y?n?%?$? ??? @&@>@T@\@=`@?@@C@ 3A =A GA"QAtAAA)A;A4,B$aBBBBBB!B B BBCC/+C$[COC1C-D0DAD_DfDkD tD~D D DD D DDE$E&BE iEuEE+E;EE FF0F AFLFSFoFFFFFF$FG6GUG)uG,GGGGHHH 1H>HI #I /I please file a bug report.Ignore caseIgnore filter - %sIn-Reply-To:Includes:Incoming BookmarksInvalid glob expressionInvalid regexp expressionKnown bad revision:Known good revision:LicenseLineManually resolve rejected chunks?Mercurial command is still running. Are you sure you want to terminate?MergeMessage identifier to reply to, for threadingMoveNew Branch: New Name:No branch changesNo chunks remainNo deletable chunksNo items to displayNo visual editor configuredOnly files modified/created in this revisionOnly files modified/created since:Open a new named branchOptionsOutgoing BookmarksParent:ParentsPatch QueuePatch failed to applyPatch name:Patch:PatternsPerforce:Plain, do not prepend Hg headerPlease configure a visual editor.Please enter commit messagePlease report this bug to our bug trackerPlease wait while making backout.Please wait while the file is opened ...Please wait...Prepare to backoutPullQNewQRefreshQuitR&emove BookmarkRe&nameRefreshRefresh current patchRegexp:Regular expression search patternRemote command:RemoveRemoved local bookmark: %sRemoved remote bookmark: %sRenameRestart &BranchRevRevert all file changes?Revert file(s) to contents at this revisionRevert to RevisionRevisionRevision is &BadRevision is &GoodRevision:Running...Save error report toSave file toSearchSearch HistorySelect Destination FileSelect Destination FolderSelect Source FolderSelect branch of merge commitSelect destination repositorySelect patch folderSelect source repositorySend changesets as Hg patchesSend single binary bundle, not patchesSettingsShow DetailShow allSourceSource:Start revision:StopStripping Mercurial header removes username and parent information. Only useful if recipient is not using Mercurial (and does not like to see the headers).Subject:Subversion:Summary:SynchronizeTags:Tar archive compressed using bzip2Tar archive compressed using gzipTar archivesTerminated by userTest this revision and report findings. (good/bad/skip)Text files (*.txt)The destination "%s" already exists as a file!The destination "%s" already exists as a folder!The directory "%s" is not empty! Do you want to overwrite it?The file "%s" already exists! Do you want to overwrite it?To:TortoiseHg Bug ReportTortoiseHg Dialogs (version %s), Mercurial (version %s) TortoiseHg ErrorTortoiseHg Overlay Icon ServerTortoiseHg PromptTransplant:Unable to merge chunksUnable to remove file %s, permission deniedUncompressed tar archiveUncompressed zip archiveUpgrading to a more recent TortoiseHg is recommended.Use English backout messageUse compact viewUse extended (git) patch formatUse proxy serverUse pull protocol to copy metadataUserUser:Verify backout revision and ensure your working directory is clean.View file changes in external diff toolVisual DiffWarningWorking DirectoryWorking Directory (merged)Working directory statusYou can visit our site hereYour TortoiseHg is up to date.Zip archive compressed using deflateZip archives[Code: %d][command completed successfully %s][command returned code %d %%s][command terminated by user %s]abort: abort: %s! action buttonCommitadd diffstat output to messagesattachbasic commands: branch: bundle file to previewcan not read file "%s". Ignored. diffstatdisplay help and exitenable additional outputerror while running command failed to encode command: %sfailed to start command field to give initial focusfile has been deleted, refreshfile has been modified, refreshfilesAllfilesNoneglobal options:import to the patch queue (MQ)inlineinvalid "hello" message: %rinvalid argumentslaunch visual diff toollist of commands: lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/misc/lsprof/must be specified 'type' in stylemust be specified repositoryno commands defined options: password: print command execution profileprint licenseprocess exited unexpectedly with code %dread file list from filerecord datecode as commit daterecord user as committerremove the status cacherepository root directory or symbolic path namerevision to updatesend patches as attachmentssend patches as inline attachmentsshow the contents of the status cache (no update)start debuggerstatussuppress outputtimed out waiting for messagetimed out while reading: %r...unrecognized profiling format '%s' - Ignored unrecognized response: %supdate all repos in current dirversion %sProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2018-09-22 13:55+0000 Last-Translator: Zsolt Bölöny Language-Team: Hungarian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Launchpad-Export-Date: 2019-07-17 05:42+0000 X-Generator: Launchpad (build 19009) Billentyűzet bevitel megszakít, leállít. aliasok: %s (alapértelmezett: %s)%s (tipp: %s)%s - ág művelet&Hozzáadás&Archiválás&Mégsem&Klónozás&Bezár&Licensz&Áthelyezés&Nem&TörlésKönyvjelző &eltávolítása&Futtatás&Ezen revízió kihagyása&Igen(súgó nem található)= Munkakönyvtár szülője =A(z) "%s" könyvjelző már létezikTortoiseHg új verziója (%s) letölthető!MegszakítNévjegyTortoiseHg névjegyeElfogadásAktiválás:HozzáadásFoltok hozzáadása vagy törlése előtt, be kell olvasztani őket a munkakönyvtárbaKor:Minden ütköző fájl feloldatlanként lesz megjelölve.Minden fájl (*)Minden fájl ebben a revízióbanMódosításJelenlegi revízió módosításaArchiválás - %sArchívum tartalma:Archívum típusok:Automatikus továbblépés a következő lapra amikor a visszavonás és összefűzés elkészül.Automatikus összefűzés-ütközés feloldásEgy szülő revízió visszavonása egy lépéses műveletVisszavonás, majd összefűzés...Visszavonás - %sA visszavonáshoz szükség van egy szülő revízióraVisszavonás revíziójaFelezés - %s'%s' könyvjelző nem létezik'%s' könyvjelző hozzáadva'%s' könyvjelző áthelyezve'%s' könyvjelző eltávolítva'%s' könyvjelző átnevezve erre: '%s'Könyvjelző - %sA(z) "%s" könyvjelző nem létezikKönyvjelző:Ág:Ág: Tallózás…A csomag tartalmazza a teljes változás listát bináris formátumban. A csővégén lévő felhasználók letudják tölteni azokat. Ez a legbiztonságosabb módja a változások küldésének másik Mercurial felhasználónak.Bzip2 tar archívumokMégseMás ágon levő változtatást nem lehet visszavonniMásolat:Változások hatása a következő kommitkorVáltozás:Frissítések keresése...Ellenőrzés…Gyerek:Kiválasztott darabok: %d / %dNapló &törléseTisztaKlónozás - %sKlón a verzióhoz:Klónozás minimális feldolgozássalBezárás%s ág lezárásaÁg lezárása: Jelenlegi ág lezárásaParancshibaEltárolás (commit)Elvetési üzenet megerősítéseKilépés megerősítéseÚj Ág JóváhagyásaFelülírás megerősítéseMásolásÜzenet másolásaLétrehozás&Ág létrehozásaÚj folt létrehozásaMegvan a bűnös.Jelenlegi helyi revízióDátumDátum:CélCél útvonal:Cél:Másolatok/Átnevezések keresése itt: %sFájlok könyvtáraElveti a jelenlegi visszavonási üzenetet?Elveti az aktuális kommit üzenetet?Helyi változtatások elvetése (revert --all)Megjelenítve %(count)d a %(total)d-bólNe frissítse az új munkakönyvtáratDuplikált névFájl szerkesztéseHelyi szerkesztéseHibaHiba történt.Hiba a fájl íráskorKizártak:KilépésSikertelen!FájlFájlnévFájlokÁtnevezések KereséseKészAlábbiak másolása és átnevezéseFeladó:Git javítások bináris fájlokat tartalmazhatnak, teljes másolatokat és jogosultság változásokat, előfordulhat, hogy a fogadó nem képes feldolgoznia a fájlokat ha nem git-et vagy Mercurial-t használGzip tar archívumokHg parancs:Hg javítások (export parancsal generálva) kompatibilisek a legtöbb javító programmal. Tartalmaza a fejlécet, ami magábafoglalja a legfontosabb változások metaadatait.Részletek elrejtéseHa továbbra is gond van, kérjük küldjön egy hibajelentést.Nem nagybetűérzékenyFigyelmen kívülhagyott szűrő - %sEredeti üzenet a válasz üzenetbenTartalma:Bejövő könyvjelzőkHibás glob kifejezésHibás reguláris kifejezésIsmert rossz revízió:Ismert jó revízió:LicenszSorSzeretné manuálisan feloldani a visszautasított darabokat?Egy Mercurial parancs még fut. Biztosan meg akarja szakítani?ÖsszefésülésÜzenet azonosító a válaszban a szálkövetés megtartása miattMozgatásÚj ág: Új név:Nincsenek változtatások az ágonNem maradt több darabNincsenek törölhető darabokNincs megjeleníthető elemVisuális szerkesztő nincs konfigurálvaCsak az ezen revízióban módosított/létrehozott fájlokCsak az ekkortól módosított/létrehozott fájlok:Nyisson meg egy új elnevezett ágatOpciókKimenő könyvjelzőkSzülő:SzülőkJavítási sorNem sikerült alkalmazni a foltotFolt neve:Javítás:MintákSzükségképpen:Hh fejléc nélkülKérjük konfigurálja a vizuális szerkesztőtKérjük adjun meg kommit üzenetet.Kérjük, jelentse ezt a hibát a hibakövető rendszerünkbenKérjük, várjon a visszavonás elkészültéig.Kérjük várjon, amíg megnyílik a fájl...Kis türelmet…Felkészülés visszavonásraLehúzQNewQRefreshKilépésKönyvjelző &eltávolításaÁt&nevezésFrissítésJelenlegi folt frissítéseREg. kif.:Reguláris kif. kereső mintájaTávoli parancs:EltávolításHelyi könyvjelző eltávolítva: %sTávoli könyvjelző eltávolítva: %sÁtnevezés&Ág újraindításaRevVisszavonja az összes fájlváltoztatást?Fájl(ok) tartalmának visszaállítása erre a revízióraVisszaállítás revízióraRevízióA revízió &rosszA revízió &jóRevízió:Fut...Hibajelentés mentése ide:Fájlba mentésKeresésKeresés előzményeiCélfájl kiválasztásaCélkönyvtár kiválasztásaVálasszon forrás könyvtártÖsszeolvasztási ág kiválasztásaCél tároló kiválasztásaFolt könyvtár kiválasztásaForrás tároló kiválasztásaVálzotások küldése mint HG javításaEgy bináris csomag küldése, nem javításBeállításokRészletek megjelenítéseÖsszes megjelenítéseForrásForrás:Kezdő revízió:LeállításEgyszerűsített Mercurial header nem tartalmazza a felhasználóinevet és a szülő információka. Csak akkor hasznos, ha a fogadó nem használ Mercurial-t és nem szereti ha a fejlécinformációk megjelenítődnek.Tárgy:Subversion:Összegzés:SzinkronizálCímkék:Tar archívum bzip2-vel tömörítveTar archívum gzip-pel tömörítveTar archívumokFelhasználó által megszakítvaRevízió tesztelése és találatok jelentése. (jó/rossz/kihagyás)Szövegfájlok (*.txt)A cél "%s" már létezik fájlként!A cél "%s" már létezik könyvtárként!A(z) "%s" könyvtár nem üres! Szeretné felülírni?A(z) "%s" fájl már létezik! Szeretné felülírni?Címzett:TortoiseHg HibajelentésTortoiseHg Dialógusok (verzió %s), Mercurial (verzió %s) TortoiseHg HibaTortoiseHg Overlay Icon ServerTortoiseHG ParancssorÁtültet:Nem lehet összeolvasztani a darabokatNem lehet törölni a(z) %s fájlt, hozzáférés megtagadvaTömörítetlen tar archívumTömörítetlen zip archívumAjánlott egy újabb TortoiseHg verzióra frissíteni.Angol visszavonási üzenet használataKompakt nézet használataKiterjestett (git) javító formátum használataProxy kiszolgáló használataPull protokol alkalmazása a metaadatok másolásáhozFelhasználóFelhasználó:Ellenőrizze a visszavonás revízióját és győződjön meg a munkakönyvtár tisztaságáról.Fájlváltozások megtekintése külső összehasonlító eszközzelVizuális összehasonlításFigyelemMunkakönyvtárMunkakönyvtár (összefűzött)Munkakönyvtár állapotaItt látogathatja meg honlapunkatA TortoiseHg naprakész.Zip archívum deflate tömörítésselZip archívumok[Kód: %d][parancs sikeresen végrehajtva %s][a parancs a(z) %d %%s kóddal tért vissza][parancs %s felhasználó által megszakítva]megszakadt: megszakít: %s! Commitkülönbözeti statistika hozzáadása az üzenetekhezcsatolásalap parancsok: ág: Csomag file előnézetfájl nem olvasható "%s". Figyelmen kívül hagyva. diffstatsúgó mutatása és kilépéskiegészítő kimenet engedélyezésehiba a parancs futtatása során nem sikerült kódolni a parancsot: %snem sikerült elindítani a parancsot mező, amelyik megkapja a kezdő fókusztfájl törölve, frissítésfájl módosítva, frissítésÖsszesEgyik semglobális beállításimportálás a patch queue-ba (MQ)beágyazottérvénytelen "hello" üzenet: %rhibás argomentumVizual diff indításaparancsok listája: lsprof nem elérhető - telepíthető a http://codespeak.net/svn/user/arigo/hack/misc/lsprof/ címről'típus' megadása kötelező a stílusbanrepository megadása kötelezőnincs definiált parancs opciók: jelszó: nyomtatási parancs végrehajtási profíljalicense nyomtatásafolyamat váratlanul kilépett a(z) %d kóddalfájl lista olvasása fájlbóldátum kd használata mint jóváhagyási dátumfelhasználó felvétele mint kommitálóállapot cache eltávolításaa repository gyökér könyvtára vagy a szimbolikus elérési útvonal neverevízió frissítésejavítás küldése mellékletkéntjavítás küldése beágyazott levélelemkéntmutassa az állapot cache tartalmát (nics update)debugger indításastátuszkimenet elrejtéseidőtúllépés üzenetre várakozás közbenidőtúllépés olvasáskor: %r...nem felismerhető nyomkövetési formátúm '%s' - Figyelmen kívül hagyva ismeretlen válasz: %sÖsszes repo frissítése az aktuális könyvtárbanVerzió: %s././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/id/0000755000000000000000000000000014742203610014147 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1274145 tortoisehg-6.9/locale/id/LC_MESSAGES/0000755000000000000000000000000014742203610015734 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033566.0 tortoisehg-6.9/locale/id/LC_MESSAGES/tortoisehg.mo0000644000000000000000000004112414742203536020471 0ustar00rootroot W 2@ENW`h$ =Om0r 4 ,If& "   #*V3  ' ,9Pc{ ' '0Xw !).%Jp x M-I ]kG ,C#Tx :%!5W v  - 7B Wd s  $'L Q] cp7.0>.;m8)Hh+y " .?P!V%x '  9 U#b '! # "< _ |    !!Y-!!!!*!>!0"E"Z" ^"h"""/"""#"#15#g# ###### $ $$0$P$`$y$$$ $$$$%"%=%+]%6%,%D% 2&"=&,`&& N(Z(ei(((((( (& )2)$L)q)w))))")N)82*k*Jq* * **=* '+3+K+k+ +$+ +$+ , ,,/, 5,B,I,O,V,d^,,,,-,-K-_-x--------.. "./.7.W.$o.. .$. .. /#/!@/-b/////!/0 0 0'0=0O0 d0Wq0001 1+1H1Pe11 11*102 C2(O2 x22 22 22J2333%3.3A3.Y3533334424&G4n44 44 4444 445&595 Q5_5$s555$55 5556:6T6*h6*646.6"7(7?73Z777!7757038"d8%888888 9(97<9-t9:9 999:'+: S:!]:$: :.::+:&;E;!`; ;; ;;;<< <%<?<Y[<"<<*<C"=%f=== ====1>D>]>%v>>6>> >?$?A?^?o?? ??????@&@ ;@G@\@x@@#@&@;@D$A9iAVAA!B.%B aliases: %s (default: %s)%d files have merge conflicts that must be resolved%s (hint: %s)&Add&Archive&Discard&License&Remove(no help text available)= Working Directory Parent =A bookmark named "%s" already existsAbortAboutAbout TortoiseHgAcceptAdd Files...Add files to version controlAdd or remove patches must be merged in the working directoryAdd selected untracked files?Age:All conflicting files will be marked unresolved.Archive - %sArchive types:Auto Includes:Automatically resolve merge conflicts where possibleBisect - %sBookmark '%s' does not existBookmark '%s' has been addedBookmark '%s' has been movedBookmark '%s' has been removedBookmark '%s' has been renamed to '%s'Bookmark - %sBookmark named "%s" does not existBookmark:Browse...Bzip2 tar archivesCancelChecking...CleanCloseClose:CompressConfiguration Error: "%(arg0)s",
                                                                                                              Please fix your configConfigure Explorer extensionConfigure repository settingsConfirm AddConfirm DiscardConfirm Discard MessageConfirm ExitConfirm OverwriteConfirm RemoveCopyCopy messageCreate Repository HereCreate a new patchCreate a new repositoryCulprit found.Current local revisionDateDate:Destination path:Destination:Detect renames and copiesDirectory of filesDisplaying %(count)d of %(total)d itemsDnD SynchronizeDo not update the new working directoryDo not verify host certificateDuplicate NameEdit Ignore FilterEdit LocalEdit current file in working copyEdit patched file and rejects?Edit repository ignore filterError encountered.Error writing fileExitExplorer Extension SettingsFailed to load issue tracker '%s': %sFailed!File StatusFinishedForget Files...Global SettingsGzip tar archivesHg command:If you still have trouble, please file a bug report.Include patch queueIniparse must be installed.Invalid date formatIssue TrackerKnown bad revision:Known good revision:Mercurial command is still running. Are you sure you want to terminate?MessageNew Name:No files checkedNo username configuredOnly files modified/created in this revisionOnto destinationOperation aborted:

                                                                                                              %(arg0)s.OptionsParent:ParentsPatch failed to applyPatch name:Patch:Please report this bug to our bug trackerQNewQRefreshQuitRe&nameRefresh current patchRemove Files...Remove files from version controlRemove selected deleted files?Rename FileRename file or directoryRepository SettingsRepository is lockedRepository status & changesRevert Files...Revert file changesRevert to RevisionRevisionRevision SetRevision:Running...Save error report toSave in RepoSearch HistorySearching...Select Destination FolderSelect destination repositorySelect patch folderSelect source repositorySet Date:Set username:Show About DialogSource:Start revision:Start web server for this repositoryStopSubversion:Tags:Tar archivesTerminated by userTest this revision and report findings. (good/bad/skip)Text files (*.txt)The destination "%s" already exists as a file!The destination "%s" already exists as a folder!The directory "%s" is not empty! Do you want to overwrite it?The file "%s" already exists! Do you want to overwrite it?TitleTortoiseHg Bug ReportTortoiseHg Command DialogTortoiseHg Dialogs (version %s), Mercurial (version %s) TortoiseHg ErrorTortoiseHg Overlay Icon ServerTry refreshing your repository.Unable to removeUnable to remove file %s, permission deniedUnable to save auto include listUnable to save usernameUnable to write configuration fileUpdateUpdate IconsUpdate working directoryUse compact viewUse proxy serverUser:View change history in repositoryView change history of selected filesView changes using GUI diff toolView file changes in external diff toolVisual DiffWorking DirectoryWorking Directory (merged)Working directory statusYou can visit our site hereZip archives[command completed successfully %s][command returned code %d %%s]abort: %s! all revisions converted from subversionbasic commands: can not read file "%s". Ignored. display help and exitenable additional outputeol is incompatible with win32texterror while running command failed to start command file has been deleted, refreshfile has been modified, refreshfilesAllfilesNoneglobal options:in the futureinvalid argumentslist of commands: lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/misc/lsprof/must be specified 'type' in stylemust be specified repositoryname of the hgweb config file (DEPRECATED)name of the hgweb config file (serve more than one repository)no commands defined no matches found: %snowoptions: read file list from fileremove the status cacherepository %s not foundrepository root directory or symbolic path namerevision to displayrevision to mergeshow files without changesshow ignored filesshow the contents of the status cache (no update)start progressMQ Actionthg aboutthg commit [OPTIONS] [FILE]...thg drag_copy SOURCE... DESTthg drag_move SOURCE... DESTthg email [REVS]thg forget [FILE]...thg grepthg guessthg hgignore [FILE]thg import [OPTION] [SOURCE]...thg init [DEST]thg log [OPTIONS] [FILE]thg manifest [-r REV] [FILE]thg merge [[-r] REV]thg remove [FILE]...thg resolvethg revert [FILE]...thg serve [--web-conf FILE]thg status [OPTIONS] [FILE]thg: %s thg: unknown command '%s' update all repos in current diruse "thg -v help %s" to show global optionsuse "thg -v help%s" to show aliases and global optionsuse "thg help" for the full list of commandsuse "thg help" for the full list of commands or "thg -v" for detailsversion %swin32text is incompatible with eolwith Mercurial-%s, Python-%s, PyQt-%s, Qt-%sProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2015-06-28 12:42+0000 Last-Translator: Wagner Bruna Language-Team: Indonesian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; X-Launchpad-Export-Date: 2019-07-17 05:43+0000 X-Generator: Launchpad (build 19009) alias: %s (standar: %s)%d berkas mempunyai konflik penggabungan yang harus diselesaikan%s (tanda: %s)T&ambah&Arsip&Dibuang&LisensiSingki&rkan(tidak ada teks bantuan yang tersedia)= Induk Direktori Kerja =Penunjuk yang disebut "%s" sudah adaBatalInformasi programInformasi Program TortoiseHgDiterimaTambah berkas...Menambah berkas pada kendali versiMenambah atau menyingkirkan patch yang harus digabungkan dalam direktori kerjaTambahkan berkas-berkas tak terlacak yang telah dipilih?Usia:Semua berkas-berkas yang konflik akan ditandai dengan tidak terselesaikan.Arsip - %sTipe arsip:Otomatis Menyertakan:Otomatis menyelesaikan konflik penggabungan bila dimungkinkanBisect - %sPenunjuk '%s' tidak adaPenunjuk '%s' telah ditambahkanPenunjuk '%s' telah dipindahkanPenunjuk '%s' telah disingkirkanPenunjuk '%s' telah diberi nama '%s'Penunjuk - %sPenunjuk yang disebut "%s" tidak adaPenunjuk:Telusur...Arsip-arsip tar bzip2BatalMemeriksa...BersihTutupTutup:KompresKesalahan Konfigurasi: "%(arg0)s".
                                                                                                              Harap memperbaiki konfigurasi andaMengatur ekstensi ExplorerMengatur pengaturan repositoriKonfirmasi PenambahanKonfirmasi Untuk DibuangPesan Konfirmasi Untuk DibuangKeluar DikonfirmasiKonfirmasi untuk ditimpaKonfirmasi PenyingkiranSalinPesan menyalinBuat repositori di siniBuat patch baruMembuat repositori baruMenemukan masalahnya.Revisi lokal saat iniTanggalTanggal:Path tujuan:Tujuan:Deteksi penamaan dan penyalinanDirektori berkas-berkasMenampilkan %(count)d pada %(total)dSinkronisasi DnDJangan update salinan kerja baruJangan verifikasikan sertifikat hostNama RangkapUbah Penyaring DiabaikanUbah LokalUbah berkas ini dalam salinan kerjaUbah berkas patch dan menolaknya?Ubah penyaring yang diabaikan pada repositoriDitemukan kesalahan.Kesalahan menulis berkasKeluarPengaturan Ekstensi EksplorerGagal memuat pelacak isu '%s': %sGagal!Status BerkasDiselesaikanLupa berkas-berkas...Pengaturan GlobalArsip-arsip tar gzipPerintah hg:Bila anda mendapatkan masalah, silahkan melaporkan berkas bug.Menyertakan antrian patchIniparse harus sudah terpasang.Susunan tanggal tidak benarPelacak IsuRevisi buruk yang diketahui:Revisi bagus yang diketahui:Perintah pada Mercurial masih berjalan. Apakah anda yakin ingin menghentikannya?PesanNama Baru:Tidak ada berkas yang dicentangTidak ada nama pengguna yang dikonfigurasiHanya berkas yang diubah/dibuat dalam revisi iniPada tujuanPelaksanaan dibatalkan:

                                                                                                              %(arg0)s.Opsi-opsiInduk:Induk-indukPatch gagal untuk diterapkanNama patch:Patch:Silahkan melaporkan bug ini pada kami melalui pelacak bugQNewQRefreshKeluarMe&namaiSegarkan patch iniMenyingkirkan Berkas...Menyingkirkan berkas-berkas dari kendali versiSingkirkan berkas-berkas yang dihapus sesuai pilihan?Menamai BerkasMenamai berkas atau direktoriPengaturan RepositoriRepositori dikunciStatus & perubahan repositoriKembalikan Berkas...Mengembalikan berkas yang telah diubahKembali ke RevisiRevisiAtur RevisiRevisi:Berjalan...Simpan laporan kesalahan keSimpan dalam RepoSejarah PencarianMencari...Pilih Direktori yang ditujuPilih repositori tujuanPilih folder patchPilih sumber repositoriAtur Tanggal:Atur nama pengguna:Menampilkan Dialog Informasi ProgramSumber:Revisi dimulai:Mulai server web pada repositori iniBerhentiSubversion:Tags:Arsip-arsip tarDihentikan oleh penggunaPeriksa revisi ini dan laporkan temuan. (baik/buruk/lewat)Berkas teks (*.txt)Yang dituju "%s" sudah ada sebagai berkas!Yang dituju "%s" sudah ada sebagai folder!Direktori "%s" tidak kosong! Anda ingin menimpanya?Berkas "%s" sudah ada! Anda ingin menimpanya?JudulLaporan Bug TortoiseHgDialog Perintah TortoiseHgDialog TortoiseHg (versi %s), Mercurial (versi %s) Kesalahan TortoiseHgHamparan Ikon Server TortoiseHgCoba menyegarkan repositori anda.Tidak bisa disingkirkanTidak bisa menyingkirkan berkas %s, perizinan ditolakTidak bisa menyimpan daftar otomatis menyertakanTidak bisa menyimpan nama penggunaTidak bisa menulis berkas konfigurasiUpdateUpdate Ikon-ikonUpdate direktori kerjaGunakan tampilan kompakGunakan server proxyPengguna:Lihat sejarah perubahan dalam repositoriLihat sejarah perubahan pada berkas-berkas yang dipilihMelihat perubahan menggunakan sarana diff GUIMenampilkan berkas perubahan kedalam sarana diff eksternalDiff VisualDirektori KerjaDirektori Kerja (digabung)Status direktori kerjaAnda bisa mengunjungi situs kami disiniArsip zip[berhasil melengkapi perintah %s][kode mengembalikan perintah %d %%s]batal: %s! semua revisi-revisi dikonversi dari subversionperintah-perintah dasar: tidak bisa membaca berkas "%s". Diabaikan. menampilkan bantuan dan keluaraktifkan keluaran tambahaneol tidak sesuai dengan win32textgagal saat menjalankan perintah gagal memulai perintah berkas telah dihapus, disegarkanberkas telah diubah, disegarkanSemuaTanpaopsi-opsi global:masa sepanargumen-argumen tak validdaftar perintah-perintah: lsprof tidak tersedia - pasang dari http://codespeak.net/svn/user/arigo/hack/misc/lsprof/harus menentukan style 'tipe' -nyaharus menentukan repositorinyanama berkas konfigurasi hgweb (DEPRECATED)nama berkas konfigurasi hgweb (melayani lebih dari satu repositori)tidak ada perintah-perintah tertentu tidak ada kesesuaian: %ssekarangopsi-opsi: baca daftar berkas dari berkasmenyingkirkan cache statusrepositori %s tidak ditemukandirektori atau nama simbolis path root repositorirevisi untuk ditampilkanrevisi untuk digabungkantampilkan berkas-berkas tanpa merubahtampilkan berkas yang diabaikanmemperlihatkan konten pada cache status (tanpa update)Aksi MQthg aboutthg commit [OPTIONS] [FILE]...thg drag_copy SOURCE... DESTthg drag_move SOURCE... DESTthg email [REVS]thg forget [FILE]...thg grepthg guessthg hgignore [FILE]thg import [OPTION] [SOURCE]...thg init [DEST]thg log [OPTIONS] [FILE]thg manifest [-r REV] [FILE]thg merge [[-r] REV]thg remove [FILE]...thg resolvethg revert [FILE]...thg serve [--web-conf FILE]thg status [OPTIONS] [FILE]thg: %s thg: perintah tidak diketahui '%s' update semua repos dalam direkroti inigunakan "thg -v help %s" untuk menampilkan opsi-opsi globalgunakan "thg -v help%s" untuk menampilkan alias dan opsi-opsi globalgunakan "thg help" untuk seluruh daftar perintah-perintahgunakan "thg help" untuk seluruh daftar perintah-perintah atau "thg -v" untuk detilnyaversi %swin32text tidak sesuai dengan eoldengan Mercurial-%s, Python-%s, PyQt-%s, Qt-%s././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/it/0000755000000000000000000000000014742203610014167 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1274145 tortoisehg-6.9/locale/it/LC_MESSAGES/0000755000000000000000000000000014742203610015754 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033566.0 tortoisehg-6.9/locale/it/LC_MESSAGES/tortoisehg.mo0000644000000000000000000015341514742203536020520 0ustar00rootroot//&/ /00*0D0X0 n0x0 0)0000 1!1 >1 L1Y1h1 ~111#1 111112 22 2)2/282?2F2L2P2f2m2v2~2222 2222'23&3#B3f33 333344&+4R4g4-444 44$5*505B5H5Y5`5s5 55 55 5 555666 !60-6 ^6 k6 u6 666 666 666: 7H7X7i7{7477!777868S8&r8 8"8 88 8888 99 999 9B91:8:R:U:,Y:": : :: :::; ;;';0;6;F;Y;h;D};;;?;C!<=e<1<<<<<= = )=&7=^=+g===== > >#>2>B>Z> r>>>!>>>> > ??? %?2?B? G?*R? }?&??????@ +@8@=@ C@ Q@]@n@ w@ @@@ @@@ @@ AA'A6AEATA*gA AA-A-B'/BWBAgB!B'BBC!C1C 6C@C SC ^C!lCCCCCCCDD)DFD YDcDhD DDD D D DD;D E+E4E :EGEPEVEpEwEEEEE `FkFG GG G &G 1G ?GYLGGG GG GG H&HHHIHIB4IcwIIIMI4JFd;ddcjee+e!f-8fff{ffff!ff ff f g)g1gAgWg8iggggg gh hh%h&=hdh}hh h hh+h #i#Dihii"ii2i j"j;jMj4_j jj j j j jj k5kEkak|kkkk3k5 lCl"Tlwl|ll,l l!l%l m),m'Vm ~mmm mm mmrZo\p*q JqWqiqqqq+q#qr9rTrsrr$r r#rs!s 0s;sJs Rs^ssssssssss!st0t6tMtVtlttt/t1tu5uQupu u uu uuuuvv.vBvYHvvvv!vv>v8wMw bw nwww w ww wwwx/xGxOx/gxxxxx"x1yIyXynyyyyy-yy"z (z 3zTz,hzzz8h| |||||} }#*}#N}3r}}}}}%}"~5~ D~Q~ j~x~~"~~~ ~ ~~~  %06?GNVZt {  *"1T%r Ԁ'Ba1ˁ68L&^)̂߂%" HR[l+# ;&b s) τ܄ 278p <ʅ ((QU$s$#.() R^csy \jyj&@C7G/ Ή + 5@[dk}X K=g]=O%׌ & 3<<%y"&4K^!~Ď!܎+?_u3ˏ*= BPg)Đݐ   % 3?D [i!ܑ<Zq1**6 6B,yCœ% +/"[~ ה+=*h>nʕѕ$(1 6 W bns A  .9? V`ruy |%*?E MZkg{  +3:JPOLg syWלߜ&A ^hzŝڝ ! 4?Wsƞ2C Yc+ϟQ11 "Š<%;B^Ac ѡ  *%Fl)Ţݢ20c.ϣ9B\:Xt w1ʥڥ4!6TX5`9Шب  -Kd t +( T^"x$+G 4Uh@n ̬ ֬0(Y^g l v'έ׭ +>GW_o")خ  -, Ze'} &ǯ2.Ap  ȰӰ   '3,Bo, (C(Y$ 7'T"|'4dz  ,* We z մ   "8[ !?;\ Qɷ!(2[ag lyDJe3n%ȹ  *(6$_  Cbx2^+ /L5|)ܼe,%F.l8$A[r) ѿ:;%Pv (5 'H#f0+5$3.X"&/\u9# ,:$I n#z :#" ,?&T${;:-(V] e0q$3: -GDu!  +WY $ D1e$&&#D"h $1  * :&Dk7t",5#Y `js4((9<L&%%'(8aj&]CJ S*^%C" /,Erv ~ -)(F`h=5%<?b  1450j  + Caught keyboard interrupt, aborting. aliases: %s (default: %s) (copied from %s) (renamed from %s) (was added) (was deleted) filtered"%s" removed from path history"%s" removed from search history### regular expression search pattern ###% Match%d day%d days%d matches found%d outgoing changesets%d pending changelists found%s (hint: %s)%s (pending)%s (submitted)%s - branch operation%s - commit%s - commit options%s : %s%s and %s have identical contents %s patches%s repository settings&Add&Archive&Cancel&Clone&Close&Diff to Parent&Discard&Exit&License&Local&Merge&Move&No&No (discard changes)&Other&Refresh&Remove&Replace&Revert to Revision...&Save&Save at Revision...&Settings&Shelve&View Changeset&Yes(is a changed and dirty sub-repository)(is a changed sub-repository)(is a dirty sub-repository)(is a new and dirty sub-repository)(is a new sub-repository)(is a removed sub-repository)(is an unchanged sub-repository)(no help text available)(same as parent)*: not used by TortoiseHg3-way dir diffCandidate MatchesDifferences from Source to DestIgnore FilterSelected Options: %sUncommitted local changes are detectedUnrevisioned Files= Working Directory Parent =A bookmark named "%s" already existsAbortAborted p4pendingAboutAbout TortoiseHgAcceptAccept All MatchesAccept Selected MatchesActivate:AddAdd Files...Add files to version controlAdd separatorAdd to listAddedAdded tag %s for changeset %sAfter Pull OperationAge:AliasAll HistoryAll conflicting files will be marked unresolved.All contextsAll itemsAll revisionsAllow PushAlways merge (when possible)Annotate &FileApp&ly FormatAppendApply all patchesArchive - %sArchive FormatsArchive types:Are you sure that you want to cancel the commit operation?Author ColoringAuto Commit ListAuto Exclude ListAuto Includes:Automatically resolve merge conflicts where possibleBacked out changeset: Backspace or Del to remove row(s)BccBookmark '%s' does not existBookmark '%s' has been addedBookmark '%s' has been movedBookmark '%s' has been removedBookmark '%s' has been renamed to '%s'Bookmark - %sBookmark named "%s" does not existBookmark:BranchBranch ColorsBranch:Branch: Browse Directory...Browse...Bundles store complete changesets in binary form. Upstream users can pull from them. This is the safest way to send changes to recipient Mercurial users.Bypass ListBzip2 tar archivesC&onfigure FormatCLI EditorCan't change settings without iniparse package - view is readonly.CancelCannot start a new searchCcCc:Changes have been moved, you must now commitChanges take effect on next commitChangeset:ChangesetsChecking for updates...Checking...Child:Chunks selected: %d / %dCleanClone - %sClone to revision:Clone...CloseClose %s branchClose After CommitClose Branch: Close current branchClose the commit tool after every successful commit. Default: FalseClose:Co&mpare File RevisionsComma separated list of archive formats allowed for downloadingComma-separated list of blind carbon copy recipient email addressesComma-separated list of carbon copy recipient email addressesComma-separated list of recipient email addressesCommandCommitCommit changesCommit changes in repositoryCommit messageCommit...Committing...Compare revisions of the selected fileCompressCompress is complete, old history untouchedConfigure Custom ToolConfigure Explorer extensionConfigure repository settingsConfigure user wide settingsConfirm AddConfirm Branch ChangeConfirm DeleteConfirm DiscardConfirm Discard ChangesConfirm Discard MessageConfirm ExitConfirm New BranchConfirm OverwriteConfirm Push to remote RepositoryConfirm ReloadConfirm RemoveConfirm RevertConfirm StripConfirm UndoConfirm UpdateContactContext MenuConverted From:CopyCopy &PathCopy full path of file(s) to the clipboardCopy messageCopy one of the recent commit messagesCreateCreate &BranchCreate Repository HereCreate a new repositoryCreate clone here from sourceCurrent local revisionCustom ToolsDateDate:Dead BranchesDelete ToolDelete from listDeleted*Deny PushDescriptionDestDestination path:Destination:Detect Copies/Renames in %sDetect renames and copiesDiff ToolbarDiff not displayed: Diff to &LocalDiff to parentDir diff to p1Dir diff to p2Directory diffDirectory of filesDiscard - discard local changes, no backupDiscard current backout message?Discard current commit message?Discard local changes, no backup (-C/--clean)Discard local changes, no backup (-f/--force)Displaying %(count)d of %(total)d itemsDnD SynchronizeDo not include modification dates in diff headers. Default: FalseDo not save backup files (*.orig)Do not update the new working directoryDo not verify host certificateDuplicate NameE&xplore FolderEditEdit FileEdit Ignore FilterEdit LocalEdit Tool ...Edit current file in working copyEdit repository ignore filterEmailEmail address to use in the "From" header and for the SMTP envelopeEncodingEnglish MessagesErrorError encountered.Error previewing subrepo: %sError writing fileExcludes:ExitExplorer Extension SettingsExtensionsFailed!FileFile HistoryFile StatusFile Status:File is binaryFile is larger than the specified max size. maxdiff = %s KBFile or diffs not displayed: FilenameFilesFind RenamesFinishedFlag:Follow copies and renamesForgetForget Files...FromFrom:Full Path TitleGenerate English commit messages even if LANGUAGE or LANG environment variables are set to a non-English language. This setting is used by the Merge, Tag and Backout dialogs. Default: FalseGit FormatGit patches can describe binary files, copies, and permission changes, but recipients may not be able to use them if they are not using git or Mercurial.GlobGlobal SettingsGo toGraftGraft - %sGraft abortedGraft failedGraft generated merge conflicts that must be resolvedGraft is completeGraphGuess RenamesGzip tar archivesHg command:Hg patches (as generated by export command) are compatible with most patch programs. They include a header which contains the most important changeset metadata.Hide TagsHide context menu outside repositoriesHighlight IconHostHost name and (optional) port of proxy server, for example "myproxy:8000"Host name of mail serverHostname the sender can use to identify itself to the mail server.How many lines a "zebra stripe" should span in multiline output. Default is 1; set to 0 to disable.IconIconsIf you still have trouble, please file a bug report.Ignore Ignore Blank LinesIgnore WS AmountIgnore White SpaceIgnore caseIgnore filter - %sIgnored*Import - %sImport from ClipboardIn &Current RevisionIn &Original RevisionIn All &HistoryIn Current &FileIn-Reply-To:Includes:Iniparse package not foundInitial revisionInterruptedInvalid date formatInvalid glob expressionInvalid regexp expressionIssue LinkIssue TrackerIssue TrackingKnown bad revision:Known good revision:LineList of all toolsLocal HostnameLocal disks onlyLocked*Log Batch SizeLong SummaryManually resolve rejected chunks?Match TextMax ChangesMax Diff SizeMax FilesMenu BehaviorMercurial command is still running. Are you sure you want to terminate?MergeMerge - allow to merge with local changesMessageMessage Translation FailureMessage identifier to reply to, for threadingMissing informationMoveMultiple sources chosenNameName or email address of the person in charge of the repository.New Branch: New Name:New Tool ...Next diffNo DatesNo appropriate filesNo backup (-n/--nobackup)No branch changesNo diff tool foundNo file changesNo files checkedNo files found for this operationNo files selectedNo files to findNo items to displayNo matches foundNo merge conflicts, ready to commitNo operation to performNo outgoing changesetsNo pending Perforce changelistsNo repository foundNo username configuredNo visual diff tools were detectedNo visual editor configuredNormalize file line endings during and after patch to lf or crlf. Strict does no normalization. Auto does per-file detection, and is the recommended setting. Default: strictNot a head revision!Nothing to importOKOnly consider deleted filesOnly files modified/created in this revisionOpen &TerminalOpen S&ubrepositoryOpen a new named branchOpen the selected folder in the system file managerOpen the selected subrepositoryOptional. Comma-separated list of host names that should bypass the proxyOptional. Method to use to send email messages. If value is "smtp" (default), use SMTP (configured below). Otherwise, use as name of program to run that acts like sendmail (takes "-f" option for sender, list of recipients on command line, message on stdin). Normally, setting this to "sendmail" or "/usr/sbin/sendmail" is enough to use sendmail to send messages.Optional. Password to authenticate with at the proxy serverOptional. User name to authenticate with at the proxy serverOptionsOptions:OverlaysParent 1:Parent 2:Parent:ParentsPasswordPassword to authenticate to mail server withPaste &FilenamesPatch EOLPatch QueuePatch failed to applyPatch series description is sent in initial summary email with [PATCH 0 of N] subject. It should describe the effects of the entire patch series. When emailing a bundle, these fields make up the message subject and body. Flags is a comma separated list of tags which are inserted into the message subject prefix.Patch:PatternsPending Perforce Changelists - %sPerforce:Plain, do not prepend Hg headerPlease configure a visual editor.Please enter a usernamePlease enter commit messagePlease report this bug to our bug trackerPlease wait while the file is opened ...Please wait...PortPort to connect to on mail server. Default: 25Port to listen onPost Pull: PreviewPreview:Previous diffProxyPullPush After CommitPush Requires SSLPush to remote repository %s ?QNewQRefreshQuitRe&nameReadonly*RebaseRecurse into subrepositoriesRecurse into subrepositories (--subrepos)RefreshRefresh file listRegexpRegexp:Regular expression search patternReloadRemote command:RemoveRemove Files...Remove files from version controlRemove filter, show rootRemove selected deleted files?Removed tag %sRenameRename FileRename file or directoryReplaceReport only the first match per fileRepositoryRepository SettingsRepository status & changesRevRevertRevert Files...Revert all file changes?Revert file changesRevert file(s) to contents at this revisionRevert files to local or other parent?Revert to RevisionRevisionRevision SetRevision has changed to:Revision:Rollback commit to revision %dRunning...SMTP HostSMTP PasswordSMTP PortSMTP TLSSMTP UsernameSSL error: %sSSL: Server certificate verify failedSSL: unknown error %s:%sSave GlobalSave error report toSave file as it appeared at this revisionSave file toSave in RepoSearchSearch HistorySearch Selected TextSearch already in progressSearch file revisions for patternsSearch in All &HistorySearchingSelect Destination FileSelect Destination FolderSelect RepositorySelect Source FolderSelect branch of merge commitSelect destination repositorySelect source repositorySelect the toolbar or menu to changeSelect when your command will be runSend &EmailSend changesets as Hg patchesSend single binary bundle, not patchesSet Date:Set username:SettingsShow &AuthorShow &DateShow &RevisionShow About DialogShow FunctionShow IconShow IssuesShow Issues...Show Output LogShow Revision &DetailsShow a full directory path of the repository in the dialog title instead of just the root directory name. Default: FalseShow allShow the history of the selected fileShow which function each change is in. Default: FalseSkip final confirmation page, close after commit.SourceSource:Specify visual diff tool, as described in the [merge-tools] section of your Mercurial configuration files. If left unspecified, TortoiseHg will use the selected merge tool. Failing that it uses the first applicable tool it finds.Specify your preferred user interface language (restart needed)StartStart revision:Start web server for this repositoryStatStatusStopStrip - %sStrip:StripesStripping Mercurial header removes username and parent information. Only useful if recipient is not using Mercurial (and does not like to see the headers).StyleSub menu items:Subject:Subrepo created and set to initial revision.Subrepo initialized to revision:Subrepo removed from repository.Subrepo was not changed.Subversion:Summary Line LengthSummary:SynchronizeSynchronize with dragged repositorySynchronize with remote repositoryTab WidthTag - %sTag:Tags:Tar archive compressed using bzip2Tar archive compressed using gzipTar archivesTarget:TaskbarTemporary files are removed when this dialog is closedTerminated by userText files (*.txt)Textual description of the repository's purpose or contents.The command that will be executed. To execute a python function prepend the command with "python:". The destination "%s" already exists as a file!The destination "%s" already exists as a folder!The directory "%s" is not empty! Do you want to overwrite it?The file "%s" already exists! Do you want to overwrite it?The maximum size file (in KB) that TortoiseHg will show changes for in the changelog, status, and commit windows. A value of zero implies no limit. Default: 1024 (1MB)The number of revisions to read and display in the changelog viewer in a single batch. Default: 500The subrepository is dirty.The tool name cannot have any spaces in it.There are no file changes to viewThere are no files that may have been renamedThree-way Merge ToolTitleToTo graft destinationTo:Toggle display of text search barToo many rows selected for menuTool labelTool launch failureTool nameTools shown on selected locationTooltipTop menu items:TortoiseHg Bug ReportTortoiseHg CommitTortoiseHg Dialogs (version %s), Mercurial (version %s) TortoiseHg ErrorTortoiseHg Overlay Icon ServerTortoiseHg PromptTortoiseHg SearchTransplant:TypeUI LanguageURLUnable to create a Mercurial.ini fileUnable to determine pending changesetsUnable to find changesetUnable to mergeUnable to merge chunksUnable to parse p4pending outputUnable to read repository statusUnable to removeUnable to remove file %s, permission deniedUnable to save after commit pushUnable to save recurse in subrepos.Unable to save usernameUnable to write .hgignore fileUnable to write configuration fileUnapply all patchesUncommited merge - please select a parent revisionUncompressed tar archiveUncompressed zip archiveUndo last commit?Unknown revision!Unsaved changes will be lost. Do you want to reload?UnversionedUpdateUpdate - %sUpdate IconsUpdate icons for this repositoryUpdate to:Update working directoryUpdate...Upgrading to a more recent TortoiseHg is recommended.Use English backout messageUse English commit messageUse compact viewUse current dateUse custom commit message:Use extended (git) patch formatUse git extended diff header format. Default: FalseUse my user name instead of graft committer user nameUse proxy serverUse pull protocol to copy metadataUserUser:UsernameUsername to authenticate to mail server withVi&ew FileView change history in repositoryView change history of selected filesView changes using GUI diff toolView file as it appeared at this revisionView file changes in external diff toolVisual DiffVisual Diff ToolVisual Diffs - Visual EditorWarningWeb ServerWhether to allow pushing to the repository. If empty or not set, push is not allowed. If the special value "*", any remote user can push, including unauthenticated users. Otherwise, the remote user must have been authenticated, and the authenticated user name must be present in this list (separated by whitespace or ","). The contents of the allow_push list are examined after the deny_push list.Whether to deny pushing to the repository. If empty or not set, push is not denied. If the special value "*", all remote users are denied push. Otherwise, unauthenticated users are all denied, and any authenticated user name present in this list (separated by whitespace or ",") is also denied. The contents of the deny_push list are examined before the allow_push list.Whether to require that inbound pushes be transported over SSL to prevent password sniffing.Which template map style to useWorking CopyWorking DirectoryWorking Directory (merged)Working directoryWorking directory statusYou can visit our site hereYou likely need to refresh this applicationYou may continue or start the graftYou may continue the compressYou may continue the graftYou must set a command to run.You must set a tool name.Your TortoiseHg is up to date.Zip archive compressed using deflateZip archives[command completed successfully %s][command returned code %d %%s][non-existant][original][working copy]abort: abort: %s! action buttonCommitadd diffstat output to messagesaddedalways fork GUI processattachbasic commands: bodybranch: bundle file to previewcan not read file "%s". Ignored. changeset to view in diff toolcleancolumn headerFilenamediffstatdisplay help and exitdo not fork GUI processenable additional outputerror while running command exec mode has been setexec mode has been unsetfailed to start command field to give initial focusfile has been deleted, refreshfile has been modified, refreshfilesAllfilesNoneglobal options:grep: invalid match pattern: %s ignoredimport to the patch queue (MQ)inlineinvalid argumentslaunch visual diff toollist of commands: locallsprof not available - install from http://codespeak.net/svn/user/arigo/hack/misc/lsprof/methodmissingmodifiedmust be specified 'type' in stylemust be specified repositoryname of the hgweb config file (serve more than one repository)no commands defined no matches found: %sno repo at notify the shell for paths givennowopen...options: password: print command execution profileprint licenseread file list from filerecord datecode as commit daterecord user as committerremove the status cacheremovedrepository %s not foundrepository root directory or symbolic path namerevision to updaterevisions to view in diff toolselected filessend patches as attachmentssend patches as inline attachmentsshow the contents of the status cache (no update)start debuggerstart progressCommitstart progressRollbackstatussuppress outputunknownunknown revision!unrecognized profiling format '%s' - Ignored update all repos in current diruse pull protocol to copy metadataversion %swait until the second ticks overwindow titleCommitwith Mercurial-%s, Python-%s, PyQt-%s, Qt-%sworking changesProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2015-06-28 12:43+0000 Last-Translator: Wagner Bruna Language-Team: Italian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Launchpad-Export-Date: 2019-07-17 05:43+0000 X-Generator: Launchpad (build 19009) Arrivato interrupt da tastiera, annullamento in corso. alias: %s (default: %s) (copiato da %s) (rinominato da %s) (aggiunto) (è stato cancellato) filtrato"%s" rimosso dallo storico percorsi"%s" rimosso dallo storico ricerche### modello di ricerca per espressioni regolari ###% corrispondenza%d giorno%d giorni%d corrispondenze trovate%d changeset in uscitatrovate %d liste modifiche in sospeso%s (consiglio: %s)%s (in attesa)%s (inviato)%s - operazione sul ramo%s - conferma%s - opzioni di conferma%s : %s%s e %s hanno contenuti identici %s patchImpostazioni repository %s&Aggiungi&Archivia&Annulla&Clona&Chiudi&Differenze con il padre&Abbandona&Esci&Licenza&Locale&Merge&Sposta&No&No (abbandona modifiche)&AltroAggio&rna&Rimuovi&Sostituisci%Riporta alla revisione...&Salva&Salva alla revisione...Impo&stazioni&Shelve&Visualizza modifiche&Si(è un sub-repository modificato e sporco)(è un sub-repository mnodificato)(è un sub-repository sporco)(è un sub-repository nuovo e sporco)(è un sub-repository nuovo)(è un sub-repository rimosso)(è un sub-repository invariato)(nessuna guida disponibile)(stessa del genitore)*: non usato da TortoiseHgComparazione directory a 3 vieCorrispondenze candidateDifferenze fra l'origine e la destinazioneIgnora il filtroOpzioni scelte: %sSono rilevati cambiamenti locali non confermatiFile non revisionati= Genitore della directory di lavoro =Esiste già un segnalibro denominato "%s"Annullap4pending interrottoInformazioni su...Informazioni su TortoiseHgAccettaAccetta tutte le corrispondenzeAccetta le corrispondenze selezionateAttivare:AggiungiAggiungi file...Aggiunge file al repositoryAggiungi separatoreAggiungi alla listaAggiuntoInserita l'etichetta %s per il changeset %sOperazione da eseguire dopo il pullEtà:AliasTutto lo storicoTutti i file in conflitto saranno segnati come non risolti.Tutti i contestiTutte le vociTutte le revisioniPermetti il pushEsegui sempre il merge (quando possibile)Annota &fileApp&lica formatoAggiungiApplica tutte le patchArchivia - %sFormati file compressiTipo:Sei sicuro di voler annullare l'operazione di conferma?Colora per autoreFile automaticamente inclusiFile automaticamente esclusiAuto includi:Risolve automaticamente i conflitti di unione, ove possibileBackout eseguito sul changeset: Backspace o Canc per rimuovere la riga/eCCnIl segnalibro '%s' non esisteIl segnalibro '%s' è stato aggiuntoIl segnalibro '%s' è stato spostatoIl segnalibro '%s' è stato rimossoIl segnalibro '%s' è stato rinominato in '%s'%s - Gestione segnalibriNon esiste un segnalibro denominato "%s"Segnalibro:RamoColori dei ramiRamo:Branch: Sfoglia directory ...Sfoglia...I bundle memorizzano interi changeset in forma binaria. Altri utenti possono eseguire il pull dai bundle. Questo è il modo più sicuro per inviare modifiche ad altri utenti Mercurial.Elenco bypassFile bzip2 tarC&onfigura formatoEditor da riga di comandoLe impostazioni non possono essere modificate senza il pacchetto iniparse. La finestra è in sola lettura.AnnullaImpossibile iniziare una nuova ricercaCcCc:I cambiamenti sono stati spostati, ora devi confermarliLe modifiche avranno effetto al prossimo commitChangeset:Gruppi di modificheVerifica degli aggiornamenti...Controllo in corso...Figlio:Frammenti selezionati: %d / %dRipulisciClona - %sClona fino alla revisione:Clona...ChiudiChiudi il ramo %sChiudi dopo il commitChiudi il ramo: Chiudi il ramo attualeChiude lo strumento di commit dopo ogni operazione eseguita con successo. Default: FalsoChiudi:Co&nfronta le revisioni del fileElenco, separato da virgola, dei formati compressi permessi per il downloadElenco separato da virgola di indirizzi email di destinazione delle copie per conoscenza nascoste (CCn)Elenco separato da virgola di indirizzi email di destinazione delle copie per conoscenza (CC)Elenco separato da virgola di indirizzi email di destinazioneComandoCommitConferma cambiamentiCommit delle modifiche nel repositoryMessaggio di depositoCommit...Deposito in corso...Confronta le revisioni del file sceltoComprimiLa compressione è completa, il vecchio storico è invariatoConfigura lo strumento personalizzatoConfigurazione estensione ExplorerImpostazioni specifiche del repositoryImpostazioni globali utenteConferma aggiuntaConferma la modifica al ramoConferma cancellazioneConferma lo scartoConferma i cambiamenti scartatiConferma sovrascrittura messaggioConferma uscitaConferma nuovo ramoConferma sovrascritturaCoferma push su repository remotoConferma ricaricamentoConferma eliminazioneConferma ripristinoConferma eliminazione revisioniConferma annullamentoConferma aggiornamentoContattoMenu contestualeConvertito da:CopiaCopia %percorsoCopia negli appunti il percorso completo del/i fileCopia il messaggioCopia uno dei recenti messaggi di confermaCreaCrea un &ramoCrea qui un repositoryCrea un nuovo repositoryCrea un clone qui da un percorso sorgenteRevisione locale correnteStrumenti personalizzatiDataData:Rami mortiElimina strumentoCancella dalla listaEliminato*Vieta il pushDescrizioneDestPercorso destinazione:Destinazione:Scopri copie/rinomine in %sScopre le rinomine e le copieBarra strumenti DifferenzeDifferenze non visualizzate: Differenze con la versione localeDifferenze rispetto al genitoreComparazione directory con p1Comparazione directory con p2Comparazione directoryDirectory di fileAbbandona - abbandona le modifiche, nessun backupSovrascrivere messaggio di backout attualeSostituire il messaggio di commit attuale?Abbandona modifiche locali, nessun backup (-C/--clean)Abbandona modifiche locali, nessun backup (-f/--force)Visualizzati %(count)d elementi su %(total)dSincronizzazione Drag and DropNon includere le date di modifica negli header diff. Default: FalsoNon salvare i file di backup (*.orig)Non aggiornare la nuova directory di lavoroNon verificare il certificato hostNome duplicatoE&splora la cartellaModificaEdita il fileEdita filtro file da ignorareEdita localmenteModifica strumento...Edita una copia di lavoro del file correnteEdita il filtro dei file da ignorare specifico del repositoryEmailIndirizzo email da usare nel campo "Da" e negli indirizzi SMTPCodificaMessaggi in ingleseErroreErrore incontratoErrore di anteprima subrepo: %sErrore durante la scrittura del fileEscludi:EsciImpostazioni estensione ExplorerEstensioniFallimento!FileCronologia fileStato fileStato del file:Il file è binarioIl file supera la massima dimensione specificata. maxdiff = %s KBFile o diff non mostrati: Nome fileFileRicerca rinomineCompletatoFlag:Segui copie e rinomineDimenticaDimentica file...DaDa:Percorso completo nei titoliGenera messaggio di conferma in inglese anche se le variabili ambientali LANGUAGE o LANG sono impostate a una lingua diversa dall'inglese. Questa impostazione è usata dai dialoghi Merge, Tag e Backout dialogs. Predefinita: FalsaFormato GitI patch Git possono descrivere file binari, copie e modifiche ai permessi, ma il destinatario può non essere in grado di usarli se non usa Git o Mercurial.GlobImpostazioni globaliVai aInnestaInnesta - %sInnesto abortitoInnesto fallitoConflitto di fusione generato dall'innesto, che deve essere risoltoL'innesto è completoGraficoScopri rinomineFile gzip tarComando Hg:Le patch Hg (così come generate dal comando export) sono compatibili con la maggior parte dei programmi di patch. Esse includono un header che contiene i più importanti metadati del changeset.Etichette da nascondereNascondi i menu di contesto esterni ai repositoriesEvidenzia iconaHostNome host e (opzionale) numero porta del server proxy, ad esempio "myproxy:8000"Nome host del server di postaNome host che il mittente usa per identificare se stesso al server di posta.Il numero di linee a zebra in cui deve essere diviso l'output multiriga. Default 1; 0 per disabilitare.IconaIconeSe avete ancora problemi, compilate un rapporto delle anomalieIgnora Ignora linee vuoteIgnora quantità spazi bianchiIgnora spazi bianchiIgnora maiuscole/minuscoleFiltro file da ignorare - %sIgnorato*Importazione - %sImporta dagli appuntiNella revisione &correnteNella revisione &originaleIn tutto lo &storicoNel &file correnteRispondi a:Includi:Pacchetto iniparse non trovatoRevisione inizialeInterrottoFormato data non validoEspressione glob non validaEspressione regolare non validaCollegamento all'anomaliaTracciatore segnalazioniTracciamento delle anomalieRevisioni non valide, note:Revisioni valide, note:LineaLista degli strumentiNome host localeSolo su dischi localiBloccato*Lunghezza gruppo cronologiaSommario lungoRisolvere manualmente i frammenti scartati?Corrispondenza testoNumero massimo modificheDimensione massima differenzeNumero massimo fileComportamento del menuIl comando di Mercurial è ancora in esecuzione. Sei sicuro di volerlo terminare?MergeMerge - permette il merge con le modifiche localiMessaggioErrore di traduzione del messaggioIdentificativo del messaggio a cui rispondere. Per i thread.Informazione mancanteSpostaScelta di sorgenti multipleNomeNome o indirizzo email della persona responsabile del repository.Nuovo ramo: Nuovo nome:Nuovo strumento...Differenza successivaEscludi dateNessun file appropriatoNessun backup (-n/--nobackup)Nessuna operazione sui ramiStrumento di comparazione non trovatoNessun file modificatoNessun file controllatoNessun file trovato per questa operazioneNessun file selezionatoNessun file trovatoNessun elemento da visualizzareNessuna corrispondenza trovataNessun conflitto di unione, pronto per la confermaNessuna operazione da eseguireNessun changeset in uscita...Nessuna lista modifiche in sospeso di PerforceNessun repository trovatoNessun nome utente configuratoNessun strumento di comparazione visuale è stato trovatoNessun editor configuratoNormalizza il fine linea dei file durante e dopo l'applicazione delle patch a lf o crlf. Strict non esegue nessuna normalizzazione. Auto esegue una rilevazione per file, ed è l'impostazione raccomandata. Default: strict.Non è una revisione di testaNon c'è nulla da importareOKConsidera solo i file cancellatiSolo i fine modificati/creati in questa revisioneApri &terminaleApri s&ubrepositoryApre un nuovo ramoApri nel file manager del sistema la cartella sceltaApri il subrepository selezionatoOpzionale. Elenco separato da virgola di nomi host che dovrebbero bypassare il proxyOpzionale. Metodo usato per spedire i messaggi email. Se vale "smtp" (default), verrà usato SMTP (configurato sotto). Altrimenti, verrà usato come nome del programma che agisce come sendmail (l'opzione "-f", da riga di comando, specifica il mittente e l'elenco dei destinatari, il messaggio sarà in stdin). Normalmente, impostare questo valore a "sendmail" o "/usr/sbin/sendmail" è sufficiente per inviare i messaggi con sendmail.Opzionale. Password di autenticazione al server proxyOpzionale. Nome utente di autenticazione del server proxyOpzioniOpzioni:OverlayGenitore 1:Genitore 2:Genitore:GenitoriPasswordPassword di autenticazione al server di postaIncolla i nomi dei &fileEOL nelle patchCoda patchCorrezione fallitaLa descrizione della serie di patch è inviata in una email iniziale di riassunto con [PATCH 0 of N] come oggetto. Dovrebbe descrivere gli effetti dell'intera serie di patch. Quando viene inviato un bundle, questi campi compongono l'oggetto ed il corpo del messaggio. Il campo flag è un elenco separato da virgola di etichette che saranno inserite come prefisso al soggetto del messaggio.Patch:PatternListe modifiche in sospeso di Perforce - %sPerforce:Semplice, senza header HgSi prega di configurare un editor.Per piacere inserisci un nome utenteSi prega di inserire un messaggio di commitSi prega di riportare l'anomalia al nostro bug trackerAttendere l'apertura del file...Attendere prego...PortaNumero porta per la connessione al server di posta. Default: 25.Porta in ascoltoDopo pull: AnteprimaAnteprima:Differenza precedenteProxyPullPush dopo il commitPush richiede SSLEseguire il push verso il repository remoto %s ?QNewQRefreshEsciRi&nominaSola lettura*RebaseRicorsivo in subrepositoryRicorsivo in subrepository (--subrepos)AggiornaAggiorna la lista dei fileEspressione regolareEspr.reg.:Espressione regolare del pattern di ricercaRicaricaComando remoto:RimuoviRimuove file...Rimuove file dal repositoryAzzera filtro, mostra tutti i fileRimuovere i file cancellati, selezionati?Rimossa l'etichetta %sRinominaRinomina fileRinomina file o directorySostituisciRiporta solo la prima corrispondenza per fileRepositoryImpostazioni repositoryMostra lo stato e le modifiche dei fileRevRipristinaRipristina file...Annullare tutti i cambiamenti al file?Ripristina le modifiche ai fileRiporta i file(s) al contenuto di questa revisioneRipristina i file al genitore locale o l'altroRipristinare alla revisioneRevisioneInsieme di revisioniLa revisione è cambiata in:Revisione:Riporta alla revisione %dIn corso...Server SMTPPassword SMTPPorta SMTPSMTP TLSUtente SMTPerrore SSL: %sSSL: Verifica del certificato server fallitaSSL: errore sconosciuto %s:%sSalva globalmenteSalva rapporto errori insalva il file come appare a questa revisioneSalva con nomeSalvare nel repositoryCercaRicerca nel repositoryCerca il testo selezionatoRicerca già in corsoCerca del testo nelle revisioni dei fileCerca in tutto lo &storicoRicercaSeleziona file destinazioneSelezionare la cartella destinazioneSeleziona repositorySelezionare la cartella sorgenteSelezionare il ramo su cui eseguire il commit del mergeScegliere il repository di destinazioneScegliere il repository di origineScegli la barra o il menu da modificareSpecificare quando dovrà essere eseguito il comandoInvia &e-mailInvia i changeset come patch HgInvia un unico bundle binario, nessuna patchImposta data:Imposta nome utente:ImpostazioniMostra &autoreMostra &dataMostra &revisioneMostra finestra di informazioniMostra funzioneMostra iconeMostra le segnalazioniMostra segnalazioni...Mostra il log di uscitaMostra i &dettagli della revisioneMostra il percorso completo della directory del repository nel titolo delle finestre di dialogo al posto del solo nome directory. Default: FalsoMostra tuttiMostra lo storico del file sceltoMostra in quale funzione si trova ogni modifica. Default: FalsoSalta la pagina finale di conferma, chiudi dopo la confermaSorgenteSorgente:Specifica lo strumento di comparazione visuale, come descritto nella sezione [merge-tools] dei propri file di configurazione di Mercurial. Se non specificato, TortoiseHg userà lo strumento di merge selezionato. In mancanza di questo userà il primo strumento applicabile che troverà.Specificare il vostro linguaggio di interfaccia preferito (richiede riesecuzione)AvviaAvvia revisione:Avvia il web server su questo repositoryStatoStatoStopElimina - %sElimina:StrisceL'eliminazione dell'header Mercurial rimuove il nome utente e le informazioni sui changeset genitori. Utile solo se il destinatario non usa Mercurial (e se non vuole vedere gli header).StileVoci menu secondo livello:Oggetto:Subrepo creata e impostata alla revisione iniziale.Subrepo inizializzata alla revisione:Subrepo rimossa dal repository.Subrepo invariata.Subversion:Lunghezza linea sommarioSommario:SincronizzaSincronizza con il repository trascinatoSincronizza con un repository remotoDimensione tab%s - Gestione etichetteEtichetta:Etichette:Archivio tar compresso con bzip2Archivio tar compresso con gzipFile tarRevisione:TaskbarI file temporanei verranno rimossi alla chiusura di questa finestraTerminato dall'utenteFile di testo (*.txt)Descrizione dello scopo e contenuto del repositoryIl comando che sarà eseguito. Per eseguire una funzione pyton premetti "python:" al comando. La destinazione "%s" esiste già come file!La destinazione "%s" esiste già come cartella!La directory "%s" non è vuota! Vuoi sovrascriverla?Il file "%s" esiste già! Sovrascrivere?La dimensione massima del file (in KB) che TortoiseHG mostrerà le modifiche nelle finestra di cronologia, stato e commit. Un valore di zero significa nessun limite. Default: 1024 (1 MB)Il numero di revisioni da leggere e mostrare nella cronologia in una singola operazione. Default: 500Il subrepository è sporco.Il nome dello strumento non può avere spaziNon ci sono file modificati da vedereNon ci sono file che possono essere rinominatiStrumento di merge a tre vieTitoloAAlla destinazione dell'innestoA:Commuta la visualiozzazione della barra di ricerca testoTroppe righe selezionate per il menuEtichetta dello strumentoAvvio del tool fallitoNome strumentoStrumenti mostrati nella locazione sceltaSuggerimentoVoci menu primo livello:TortoiseHg rapporto erroriConferma TortoiseHgTortoiseHg Dialogs (versione %s), Mercurial (versione %s) Errore di TortoiseHgServer icone di overlay di TortoiseHgTortoiseHg PromptRicerca TortoiseHgTransplant:TipoLingua dell'interfacciaURLImpossibile creare il file Mercurial.iniImpossibile determinale le liste modifiche in sospesoImpossibile trovare il changesetImpossibile eseguire il mergeFusione dei frammenti non possibileImpossibile analizzare il risultato di p4pendingImpossibile leggere lo stato del repositoryImpossibile rimuovereImpossibile rimuovere il file %s, permesso rifiutatoImpossibile salvare dopo la confermaImpossibile salvataggio ricorsivo in subrepos.Impossibile salvare il nome utenteImpossibile scrivere il file .hgignoreImpossibile scrivere nel file di configurazioneAnnulla tutte le patchMerge di cui non si è effettuato il commit - si prega di selezionare una revisione genitoreArchivio tar non compressoArchivio zip non compressoAnnulla ultimo commit?Revisione sconosciuta!Le modifiche non salvate verranno perse. Vuoi ricaricare?Non controllatoAggiornaAggiorna - %sAggiorna iconeAggiorna icone per questo repositoryAggiorna a:Aggiorna alla revisione specificataAggiorna...Si raccomanda l'aggiornamento a un TortoiseHg più recenteUsa messaggio di backout in ingleseUsa messaggio di commit in ingleseUsa forma compattaUsa la data correnteUsa messaggio di commit personalizzatoUsa formato esteso (git) per i patchUsa il formato git esteso negli header diff. Default: FalsoUsa il mio nome utente invece del richiedente dell'innestoUsa server proxyUsa protocollo di pull per copiare i metadatiUtenteAutore:Nome utenteNome utente di autenticazione al server di postaV&isualizza fileVisualizza la storia delle modificheMostra la cronologia modifiche dei file selezionatiMostra le modifiche usando un tool di comparazione graficoMostra il file come appare a questa revisioneVisualizza i cambiamenti del file nello strumento differenze esternoComparazione visualeStrumento di comparazione visualeConfronto visuale - Editor visualeAvvertenzaServer WebSe permettere il push nel repository. Se vuota o non impostato, il push non è permesso. Il valore speciale "*" permette a qualsiasi utente remoto di eseguire il push, compresi gli utenti non autenticati. Altrimenti, l'utente remoto deve essere autenticato, e il nome utente deve essere presente in questa lista (elenco separato da spazio o virgola). La lista dei permessi è esaminata dopo della lista dei divieti.Se vietare il push nel repository. Se vuota o non impostata, il push non è vietato. Il valore speciale "*" vieta il push a tutti gli utenti remoti. Altrimenti il push sarà vietato a tutti gli utenti non autenticati, e a tutti gli utenti autenticati il cui nome utente appare in questa lista (elenco separato da spazio o virgola). La lista dei divieti è esaminata prima della lista dei permessi.Se richiedere che i push in entrata usino SSL per prevenire lo sniffing delle password.Quale stile di template da usareCopia di lavoroDirectory di lavoroCartella di lavoro (unita)Cartella di lavoroStatus della cartella di lavoroPuoi visitare il nostro sito quiProbabilmente devi aggiornare questa applicazionePuoi continuare o iniziare l'innestoPuoi continuare la compressionePuoi continuare l'innestoDevi impostare un comando da esseguireDevi impostare il nome dello strumentoIl vostro TortoiseHg è aggiornatoArchivio zip compresso con deflateArchivio zip[comando completato con successo %s][codice di ritorno restituito dal comando %d %%s][non esistente][originale][copia di lavoro]interrotto: annullato: %s! InserisciAggiunge l'output diffstat ai messaggiaggiuntocrea sempre un nuovo processo per l'interfaccia graficaAllegacomandi di base: corpoRamo: file bundle da vedere in anteprimaImpossibile leggere il file "%s". Ignorato. changeset da mostrare nello strumento di comparazionepulitoNome fileDiffstatmostra la guida ed escenon crea un nuovo processo per l'interfaccia graficafornisce maggiori informazioni in outputerrore durante l'esecuzione del comando modalità exec è stata attivatamodalità exec è stata disattivatafallito l'avvio del comando campo a cui dare inizialmente il focusil file è stato cancellato, aggiornail file è stato modificato, ricaricaTuttiNessunoopzioni globali:grep: modello di ricerca non valido: %s ignoratoimporta nella code patch (MQ)In lineaargomenti non validilancia il tool grafico di comparazioneelenco comandi: locallsprof non disponibile - installarlo da http://codespeak.net/svn/user/arigo/hack/misc/lsprof/Metodomancantemodificatodeve essere specificato 'type' nello stiledeve essere specificato un repositorynome del file di configurazione hgweb (serve più di un repository)nessun comando definito nessuna corrispondenza trovata: %snessun repository in notifica la shell per i percorsi specificatioraapri...opzioni: password: stampa il profiling di esecuzione del comandostampa la licenzalegge la lista dei file da fileregistra il datecode come data del commitregistra l'utente come autore del commitelimina la cache di statorimossorepository %s non trovatodirectory radice del repository o nome del percorso simbolicorevisione da aggiornarerevisioni da mostrare nello strumento di comparazionefile selezionatiInvia le patch come allegatiInvia le patch come allegati in lineamostra il contenuto della cache di stato (nessun aggiornamento)avvia debuggerInserisciRipristinostato fileelimina outputsconosciutorevisione sconosciuta!formato di profiling sconosciuto '%s' - Ignorato aggiorna tutti i repository nella directory correnteUsa il protocollo di pull per copiare i metadativersione %sattende fino al secondo tickInseriscicon Mercurial-%s, Python-%s, PyQt-%s, Qt-%smodifiche in corso././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/ja/0000755000000000000000000000000014742203610014145 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1274145 tortoisehg-6.9/locale/ja/LC_MESSAGES/0000755000000000000000000000000014742203610015732 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033565.0 tortoisehg-6.9/locale/ja/LC_MESSAGES/tortoisehg.mo0000644000000000000000000052136614742203535020501 0ustar00rootroot={{&{ {{{{|*|D| X|y| |||| | }$ }E}X})s}}}}}W}Y7~~~~~~;~.AK7:2CTY^ b p}   !, D Pq #Ё@5 KYh ‚ڂ & /;A P \ gr ˃Ӄ $4<O`w Ʉ Մ  /=DL^q w ƅͅԅ " ,8Lb is  ņφ ׆ 5 > JV^u ҇ڇ  17GO V` er z  ̈ Ԉ߈   &2;AU[` xω ,JI& 9R-nϋ .$>'c7(Í,#=SYv %&֎ #-1A Tas׏=* H Vbh >"0E a n | ! ))=2pvBRВ)#>M)H ֔ 0 =Mhz ֕ :;P'* ߖ!YipGƗ:4I~8Ә "-P!a=  0<Rh mzћ& "% HR Ygox Ҝ lx B"+;g3~!Ҟ) 5+O{~͟,ܟ" ,;![}.-֠  /[J4*ۡ.651l1XТ)/?"Z,}ţ$ݣ %?Y&s Ť ˤ"&6 K U`qťڥ D:A?Yi_Cc=1 -]< ĨϨ ި+@ O Y g&s"ȩ '+> j$wV &5M#^.ϫM :F\k ƬӬ!)8 G Tb vƭݭ"#9]e m.z3y ¯ ͯ د * &%L5g 5#..G:v8(?Re}+%Dz/"1H anw| ͳ9ܳ>.\.,&! 0<Q bn"õ'BSs|  ¶ 6'T|O#+% Q ^ hu ȸ׸* 3T$t--ǹ1.'V#n'ǺA!AMc2' @+1l8׼  )9A R\l q{  ! ܽ -@V\oC/ž.?HYt[ۿ7 JTmr45-< O\ `k %(0J-R2  % 7 CP"d;1X"{OY+Fr z"M$ /8AR:;5K<V3e4*,5=!Z|&U |!&6< BMg~    Yl~/B H Vdv  l x& IB0csM08K\ oI{F Een    " 6 @a} 8 #!/;Q6  % 1?ToYv  5 < GT+\ "3 N Y cmuy   9(8?x!13 P'[ ?:)" LZmG|dm) ))Da  -B< Q^r$70P[@;# _j y  % * 4>G\v !/-@nFZ#k($$I]q"p(+#36F^,IZ_n,,!1%Ci%z 3#I9k;<+hpy  *4<D,M*z    1=Lb :  -=B:TG! &*0[a!:#*6!a(.  3 ? Kl! $AXn'-  #-?Rdz%" 7E!d (>F W bl| 25 " CZQ ).6HXn!$!.= DPiy# ! +D^y  'BRcz!"$ -8IXl vI^zM#%IM T`p! +& 3Nj}1 L Yd] 0IZl  "     ) 3 AK T b n%|  3)H r H"-P g qB~   0#Jn 1$7Ui.x"#[[? $ #   &  5 C J _ g  v       ! @ * D  J  X  f p &v q     '  9 E T  f  r        y aj!%%5Mi r1| 1 I<  l+HOWl|0ZJ?$ %,EMRi q|(.>Gc 1 *6> %A F#R"v  $ *"6!Y {  )6$77o<4s'dB.V03>2);\@Y$'cB(9' " 1 ".="l""#+V$($}$)%U%/ &%:&!`&-&8&<&*&'4Q'!'B''(( ((((!(*(! )-+)7Y) ) )) )) )))**7*8I*******++1+tF++ +++,, #,/, 3, @,J,\,%w,,G,&-*+-V-o-- -- ---+. >._.u. .".#.."/&6/,]/ //"//0000B0K0S02e000 0000 16"1Y1a1q11*141 1 2%2 ,2!82 Z2 g2 u22 22,2 235#3Y3u3333333!4"24U4Z4 n4Zy4+455,5C<5@555*5 "6 -6 86 E6"Q6!t6%66-6 7)*7'T7|7 7777 72738L8T[888<8 999-9XF99r-;\<< =)= D=N= d=q===C== > >&>'6>U^>?u?F@+@#@A;AVArA'A#A*A#B)BHBbBBlB$C 3C @C,KC#xCCCCC DDD0D 8D CDODdDD'DDDDD DDD!E5EEE dErExEEEEEEF!F8FLFfFFFFFFFF GG'GFG!\G~GG"GG/G1HQHjHHHH H H HHH I I*/IZI`IgIoIII IIII)I&J8JPJkJJJJYJK,#KPKWK_K!hKK*K>KL &L0LEL;\LAL7L M M?MCM_M gM'qM M*MM MMN'(N#PN#tNNN NNNOO+O/CO sOOOOOOOOP$P=PVPiPPP"P&PPQ1+Q]QlQQQQQQQQRR8RKR@cR R RR R R"R SS%1SWSvSSSSSST TT,T@T`TpTTTT T!TUU*UEU TU`UxUUUU U+UV+#VOVfVVVV'VVVV- W9W+YW6W,WDW.X)KX"uX)X X X"XY,%YRYbYzYY;K[[[[%[@[8\P\:a\"\\,\8]+9]+e]]8]]],^5?^!u^ ^^[^_ ___ _$_F_:/`Qj`N`[ a<gaaaaaaaaaa"ab8bWbob b b2bb b, c7cLcjcrc:c$cc6yddd3d/"e Re_exeee eee ff ;fFf#Wf"{ff:ffgg0g AgOgogg(g ggg hh 1hoIo fo qo|oo oooop p#p6p ;pGpXprpp pppp p p"pq ;q"Fqiq"q qqqqqr r"r >r Jr)krr+rrrs0-s:^sss(ss%t)t Gt#ht&tFt&t!u+Aumuu u%usu8=w<vwPwHxTMxEx%xy"y8yIy_ypy yAy*yz+!zMzaz"hz%z zz6z){&8{6_{*{f{@(|i||| |:|| || }i}*|}]}$~*~I~ f~p~6~~3~3!Gwi!L lW<ĀT<V^$v** 78p+ƒ#BUez<[C4c΅ \fˆ]?B0/<3'*[$3È!EN_-܉  ˋ! --/[//:&5>t  1ō  =]:#M"q!Z֏/1a6q33ܐX9i?!9'?Ng  ʒԒE-0s$9$*ALlLT3Z@9$Q^6KZ3 !'@0h>ؘ--6 d'q-'Ǚ'3K!_ ;!ޚX$Y$~(Λ! #<Xso .+9QeHH֞GBg ͟q R*_3Ϡ3Ml 9  :4o v0KƢ*&`Q9Σ.-A3oB-Odt3ѥ$")EXn Ħݦ*$+P!l$-9 +5BQB3 v ªӪ?!&6H*E3Z$?HHfQc#:T!g'3Į09)<cU?$G(l°ʰ6!:V3u:*-CD[!&H^n*'ų023Q=*ôF 53C w - ߵ,'(-PA~0)w09ķ$:P `#+ĸ+05HfKN-JKxKĺFNW!-Ȼ*!*@k]{:ټA$R$1wA66F cn%߿ !0=n$W6@!w-!<6V"-2,P }-7n !x$+Zca"*#N mw-'9;9*u!LMe .$*$-Re-|9ZMX,Wv rB (T*9?OP it!v}#e! $\KC:@L :<=BH[Ev !!7!Pr0%$f@ L4*_o".@$<4q  L!Q){  !g.$foi#us{* "8L f!s W2*Ju&]$&K$aWW6Rq '  9$Fbk $ &"F is<-...]$#9L Tbi c/T'%f 6t694/dtURTIR9 <'$$,HQ-0AOM2Qp'w'''''?\g~NJW (!=_u-"'8*`  '($/T-j'$3<2*oG-?/o$>c-9'9<L76!''B*j'-4.B2u|WP,X.A0] 'oB "$"HG6'9).>m90Z*R}]EB7G X0f %15Tcx965 "F $i     1  *) T &j 6        *    F! h  .  $*1 \!f 4+*6!IX;H<'?d! V$S x6/B^-q   '>5\/f^#q (%9_#u#'+ $7\Ns*&'7 GT+[- #:Th {ZP!F'h3!m!Tv+9*U$'  <& cq%1%  08:<s90*0F7w)-?'m!- : "A %d 7 <  !!8!L!$b!!<!-!v"3"6""##;#"Q#|t#0#"$2$ 9$ E$9f$Z$7$3%<O%]%7%."&Q&p&/'''5')(:(}J(((6("5)"X)"{)))))1)@.*o* * ** ***** ++0+8A+z+++7++.+-&,T,6j,,,,,,,!-W:-6-- - -O-G._.t......</?/X/q//+/`/-0!M06o000!0E09?19y16112W3K 5El55$585$6 76D6 b6o6 66 66 66606\"7"7 7!7!77 8B8Q8 9%999Y9"m9'99999 ::-:%C:i:: ;$$;'I;<q;B;0;Q"<6t< < <@<=1= K=U=cd=4==??D?*-@*X@@ @ @@@9AAErBWCD*DBD6_DDD3DDDDE E+E3EIE "F",FOF/WF?FHFG0G6OG6G?G G HH/HI+I$3IXI_I6oI'IIII!J 2J SJ tJJJJJ)J(JK.KJKRK"bKK2KKK-LWBLL L?L M?!MaM8Mv&NSN9N9+OWeOHOLPUSPP=aQQNRZRpMSVS$TK:TTAUOVT(W0}WIWX6 Z<CZZ[e[1!\-S\?\B\3]H8]']E]-]W^u^ ^^^ ^_h_x_|_M_$_-`A=`` `'` ``*`a%aDa&[aaVaa#b2*b]bwbbb bbbwc c-c*c c c d dd!d4dMd;ld$dHd3e7Je-e!e'e9e$4f0YfffDf-g/g$Kg!pg*g-g'g<h4PhHh*h-h*'i*Ri$}i!i!i!ijjH7j j jjjj0k(2k\[kkkkk@kp@l2lll m*m;mQm0gm'm m9mBn$Hn!mn`n$n3oIo_o7rooLo'pK9ppppxp6Cq zq q6qZqi'rArbr6sPs`svss0s0s$tQ*t2|t6t?t'&uNubu|uuuBu6u/vCvvvivMwcwwwuwxyh{?2|r|"||| | || }T}j}}}$}2}~*It$ρ??49tB3'%6M,+eB&)!I/k…х   -J4Q0چ--3a9} ч!އ   $ +5< LV f s } % шވ \$X,}-؉T4I.~.+܊96B6y  Nj΋ &\5  *ی'-Ih\!ō(6_ ui!?Ndk)r''ď?+,Xt-PZ Wh,- *( S]<o\3On6,$ 0"-S-$+Q0$$!?!Z|Aז3G3`*9$$MC  ƘӘ ژ* (5Ndk8r ș  7 3>%\.˚!>T ]g+&Ǜ(0 Hi !˜ 6S#j ++՝AC&Z/ ?(HhIY3Uj;Z030:T> 'Ȣ ޢ  Caught keyboard interrupt, aborting. aliases: %s (default: %s) (copied from %s) (is a symlink) (is unversioned) (renamed from %s) (was added) (was added, now missing) (was deleted) filtered"%s" is not a folder"%s" is not a valid directory"%s" removed from path history"%s" removed from search history### filter text ###### host certificate fingerprint ###### patch name ###### regular expression ###### regular expression search pattern ###### revision set query ###$FILE_ENCODINGS% Match%d day%d days%d files have merge conflicts that must be resolved%d files were modified on both branches and must be resolved%d hour%d hours%d matches found%d minute%d minutes%d month%d months%d outgoing changesets%d outgoing changesets in current branch (%s) / %d in total%d outgoing changesets to %s%d outgoing changesets up to current revision (#%d) / %d in total%d outgoing changesets up to revision #%d / %d in total%d patches were exported to:

                                                                                                              %s%d pending changelists found%d second%d seconds%d week%d weeks%d year%d years%d%%%dpt%p%%s (hint: %s)%s (pending)%s (submitted)%s - Revision Details (%s)%s - TortoiseHg Workbench%s - TortoiseHg Workbench - %s%s - branch operation%s - commit%s - commit options%s - hg %s%s - purge%s - recover repository%s - status%s - status (selection filtered)%s - sync options%s - verify repository%s : %s%s %s already exists, replace URL?%s and %s have identical contents %s had rejected chunks, edit patched file together with rejects?%s is a dirty subrepo%s is ignored%s is modified%s is not a valid repository%s is not modified (clean)%s patches%s repository settings%s will be imported to %s's global settings&About TortoiseHg&Add&Add Repository...&AfterIndent&Archive&Archive...&Auto&Auto-Complete&Backout...&Bisect...&Browse...&Bundle Rev and Descendants...&Cancel&Character&Clear&Clone&Close&Close Repository&Commit&Commit to Queue...&Commit to current branch&Copy&Copy Patch&Copy...&Create&Custom Toolbar&Delete&Delete Patches...&Delete Queue...&Delete Unversioned...&Diff to Other&Diff to Parent&Discard&Discard changes&Dock Toolbar&Edit File&Edit Local&Edit Toolbar&Edit...&Editor Options&Email Patch...&Exit&False&File&Filter Toolbar&Finish Patch&Force&Forget&Goto Revision...&Graft to Local...&Help&Ignore...&Import&Incoming&Invisible&License&Local&Mac&Mark as Resolved&Match&Merge&Merge with Local...&Move&New Repository...&No&No (discard changes)&Open&Open All&Open Local&Open Repository...&Originating Revision&Other&Outgoing&Parent Revision&Parent Revision (%d)&Paste&Patch Branch&Pull&Purge Queue...&Purge...&Readme&Rebase...&Redo&Refresh&Refresh Repository List&Remove&Remove...&Rename Active Queue...&Replace&Repository&Resolve...&Revert&Revert to Revision...&Revert with backup&Revert...&Run&Save&Save at Revision...&Scan Repositories at Startup&Search&Search in Current File&Set...&Settings&Shelve&Shelve...&Sign&Skip this Revision&Sort&Sort by .hgsub&Spaces&Strip&Strip...&TAB&TAB Inserts&Tag...&Take Local&Task Toolbar&Terminal&True&Unapply Patch&Undo&Unix&Unspecified&Update&Update...&Verify&View&View Changeset&View Missing&View at Revision&Visible&Web Server&Windows&Word&Workbench Toolbars&Wrap&Yes'Publishing' repository(DEPRECATED)(excluded from the next commit)(no help text available)(same as parent)*: not used by TortoiseHg, resolved merge, unresolved merge3-way dir diffLaunch settings tool...%d changeset will be stripped%d changesets will be strippedAnnotate:Candidate MatchesDifferences from Source to DestHost: %sIgnore FilterParse Error!Repository Details:Selected Options:Selected Options: %sUncommitted local changes are detectedUnknown revision!Unrevisioned FilesUntracked FilesWeb Server:= Working Directory Parent =A README file is not configured for the current repository.

                                                                                                              To configure a README file for a repository, open the repository settings file, add a 'readme' key to the 'tortoisehg' section, and set it to the filename or URL of your repository's README file.A bookmark named "%s" already existsA comma separated list of target groupsA new version of TortoiseHg (%s) is ready for download!A shelf file of that name already existsA terminal shell cannot be opened for remoteA terminal shell must be configuredA&dd Subrepository...AbortAbort the export operation. Aborted p4pendingAboutAbout &QtAbout TortoiseHgAcceptAccept the local file version (yours)Accept the other file version (theirs)Activate BookmarksActivate bookmark?Activate:AddAdd &LargefilesAdd &Largefiles...Add Files...Add Path to ServeAdd a repository to this groupAdd as &LargefilesAdd as &Normal FilesAdd files to version controlAdd ignore filter...Add or remove patches must be merged in the working directoryAdd selected untracked files?Add separatorAdd to listAddedAdded tag %s for changeset %sAfter Pull OperationAge:AliasAll HistoryAll changesets belonging to the branches of changesets in set.All changesets, the same as 0:tip.All conflicting files will be marked unresolved.All conflicts are resolved.All contextsAll files (*)All itemsAll revisionsAll unsaved changes will be lost.Allow PushAllow push of a new branch (--new-branch)Allow pushing new branches (--new-branch)Always merge (when possible)Always show repo tabs, even for a single repo. Default: FalseAmendAmend current revisionAn alias for "::." (ancestors of the working copy's first parent).An empty set, if any revision in set isn't found; otherwise, all revisions in set.An error occurred while reading the file.An error occurred while updating the repository hgrc file (%s)An error occurred while writing the file.An exception happened while loading the subrepos of:

                                                                                                              "%s"

                                                                                                              An interrupted graft operation has been found. You cannot perform a different graft operation unless you abort the interrupted graft operation first.Annotate &FileAnnotate Op&tionsAnnotate with revision numbersApp&ly FormatAppendAppend graft info to log messageAppend the changes to the existing patch files. Applied patchesApplied patches or qparentApply all patchesApply changes before exit?Apply one patchApply only this patchApply onto original parentApply patchArabicArchive - %sArchive FormatsArchive types:Are you sure that you want to cancel the commit operation?Are you sure you want to delete these files and/or folders?Are you sure you want to overwrite it ?Are you sure you want to reload this file?Are you sure?Attempt automatic (trivial) mergeAttempt to push to specified URL or alias after each successful commit. Default: No pushAuthorAuthor ColoringAuto Commit ListAuto Exclude ListAuto Includes:Auto-resolve mergesAutomatically advance to next page when backout and merge are complete.Automatically advance to next page when merge is complete.Automatically resolve merge conflicts where possibleBackBacked out changeset: Backing out a parent revision is a single step operationBacking out and committing...Backing out, then merging...Backout - %sBackout changesetBackout requires a parent revisionBackout revisionBackspace or Del to remove row(s)Backup copies of modified files can be found in .hg/Trashcan/Backwards phase change requestedBad filenameBalticBccBefore backout, you must commit, shelve to patch, or discard changes.Before merging, you must commit, shelve to patch, or discard changes.Bisect - %sBisect - Bad, Good...Bisect - Good, Bad...BoldBoo&kmark...Bookmark '%s' does not existBookmark '%s' has been addedBookmark '%s' has been movedBookmark '%s' has been removedBookmark '%s' has been renamed to '%s'Bookmark - %sBookmark named "%s" does not existBookmark:BranchBranch ColorsBranch:Branch: Bro&wse at RevisionBrowse Directory...Browse...Bundle DAG Range...Bundle files (*.hg)Bundles store complete changesets in binary form. Upstream users can pull from them. This is the safest way to send changes to recipient Mercurial users.Bypass ListBzip2 tar archivesC&hoose Log Columns...C&onfigure FormatCLI EditorCan't change settings without iniparse package - view is readonly.Can't find revision '%s'CancelCannot add subrepositoryCannot backout change on a different branchCannot export revisionCannot export revision %s into the file named: %s Cannot import selected revisionCannot open Plugin Options dialogCannot open repositoryCannot open the .hgsub file in:

                                                                                                              %sCannot start a new searchCannot update the .hgsub file in:

                                                                                                              %sCcCc:CelticCentral and Eastern EuropeCertificate Query ErrorChange &Phase toChangeLog FontChanges have been moved, you must now commitChanges take effect on next commitChangeset LinkChangeset is a merge changeset.Changeset is a named branch head.Changeset is closed.Changeset is tagged.Changeset with highest revision number in set.Changeset with lowest revision number in set.Changeset:ChangesetsChangesets containing files matched by pattern.Changesets not found in the specified destination repository, or the default push location.Changesets that are ancestors of a changeset in set.Changesets where username contains string.Changesets which add files matched by pattern.Changesets which are descendants of changesets in set.Changesets which modify files matched by pattern.Changesets which remove files matched by pattern.Character encoding of files in the repository, used by the web interface and TortoiseHg.CheckCheck all filesCheck for incoming changesCheck for incoming changes from %sCheck for incoming changes from selected URLChecked count: %dCheckingChecking for updates...Checking working directory status...Checking...Checkmark files to addCheckmark files to forgetCheckmark files to removeCheckmark files to revertChild changesets of changesets in set.Child:Chunks selected: %d / %dClea&r LogCleanClear contents of shelf file %s?Clear current query and query textClick OK to continue or Abort to exit.Clon&e Repository...Clon&e...Clone - %sClone RepositoryClone to revision:Clone...CloseClose %s branchClose After CommitClose Branch: Close current branchClose other tabsClose tabClose the commit tool after every successful commit. Default: FalseClose:Co&mpare File RevisionsComma separated list of archive formats allowed for downloadingComma separated list of exclusion file patterns. Exclusion patterns are applied after inclusion patterns.Comma separated list of inclusion file patterns. By default, the entire repository is searched.Comma-separated list of blind carbon copy recipient email addressesComma-separated list of carbon copy recipient email addressesComma-separated list of recipient email addressesCommandCommand ErrorCommand outputCommand to use for SSH connections.

                                                                                                              Default: "ssh" or "TortoisePlink.exe -ssh -2" (Windows)CommitCommit Dialog ToolbarCommit LaterCommit NowCommit OptionsCommit backout and merge resultsCommit changesCommit changes in repositoryCommit merge resultsCommit messageCommit...Committing...Common setsCompare revisions of the selected fileCompare to &1st ParentCompare to &2nd ParentCompletely remove file from patch?CompressCompress - %sCompress History...Compress changesets up to and includingCompress is complete, old history untouchedConfig File:Config files (*.conf *.config *.ini)Configuration Error: "%(arg0)s",
                                                                                                              Please fix your configConfigure Custom ToolConfigure Explorer extensionConfigure HookConfigure Issue TrackerConfigure guardsConfigure guards for selected patchConfigure repository settingsConfigure the selected COM Bug Tracker plugin.Configure user wide settingsConfigures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking plugin.Confirm AddConfirm Branch ChangeConfirm DeleteConfirm Delete UnversionedConfirm DiscardConfirm Discard ChangesConfirm Discard MessageConfirm ExitConfirm New BranchConfirm OverwriteConfirm Push to remote RepositoryConfirm ReloadConfirm RemoveConfirm RevertConfirm SaveConfirm StripConfirm URL replaceConfirm UndoConfirm UpdateConfirm adding unknown filesConfirm deleting filesConfirm file deletionsConfirm patch queue switchConnecting to Review Board...Consider aborting the graft first.Consider aborting the rebase first.ConsoleContactContext MenuContinue or abort interrupted graft operation?Controls draft phase behavior when working as a server. When true, pushed changesets are set to public in both client and server and pulled or cloned changesets are set to public in the client. Default: TrueConvert an existing repository into a subrepositoryConverted From:CopyCopy &HashCopy &PathCopy - %sCopy ErrorCopy full path of file(s) to the clipboardCopy messageCopy one of the recent commit messagesCopy source -> destinationCopy the root path of the repository to the clipboardCould not get subrepository listCould not instantiate Issue Tracker plugin COM objectCould not open some subrepositoriesCould not open the specified file for reading.Could not open the specified file for writing.Could not translate the file content from native encoding.Could not translate the file content to native encoding.CreateCreate &BranchCreate &New Queue...Create Patch QueueCreate Repository HereCreate a new groupCreate a new patchCreate a new repositoryCreate clone here from sourceCreate diff with all changes on this branchCreate diff with all outgoing changesCreate new named branch "%s" with this commit? Cu&tCulprit found.Current local revisionCustom Toolbar &SettingsCustom ToolsCyrillicDateDate:De&tect Renames...Deactivate current bookmark?Dead BranchesDefault PushDefault widgetDefines the regex to match when picking up issue numbers.DeleteDelete %d file in .hg/TrashcanDelete %d files in .hg/TrashcanDelete %d ignored fileDelete %d ignored filesDelete %d unknown fileDelete %d unknown filesDelete %s from your repo configuration file?Delete Group '%s' and all its entries?Delete Patch QueueDelete PatchesDelete ToolDelete empty foldersDelete from listDelete hookDelete patches...Delete reference toDelete selected chunksDelete selected patchesDelete selected query from historyDelete shelf file %s?Delete the current shelf fileDelete the following unversioned files?Deleted %d filesDeleted %d files and %d foldersDeleted*Deleting trash folder...Deletion failuresDeny PushDescriptionDestDestination file already exists.Destination path:Destination:Detect Copies/Renames in %sDetect outgoing changesDetect outgoing changes to %sDetect outgoing changes to selected URLDetect renames and copiesDetected merge/diff tools:Detected uncommitted local changes in working tree. Please select to continue: Detected uncommitted local changes.Determining outgoing changesets to email...Diff File toDiff FontDiff ToolbarDiff and AnnotateDiff contentsDiff not displayed: Diff to &LocalDiff to parentDir diff to p1Dir diff to p2Directory diffDirectory of filesDiscard - discard local changes, no backupDiscard current backout message?Discard current commit message?Discard local changes (revert --all)Discard local changes, no backup (-C/--clean)Discard local changes, no backup (-f/--force)Discard outstanding changes to working directory?Discard remote changes, no backup (-C/--clean)Display closed branchesDisplay graph the named branch onlyDisplay only active branchesDisplay the file anywayDisplaying %(count)d of %(total)d itemsDnD SynchronizeDo not include modification dates in diff headers. Default: FalseDo not save backup files (*.orig)Do not show menu items on unversioned folders (use shift + click to override)Do not strip paths (-p0), required for SVN patchesDo not update the new working directoryDo not verify host certificateDo you really want to force a backwards phase transition?Do you really want to activate patch queue '%s' ?Do you really want to deactivate the %s bookmark?Do you want to exit?Drag to change orderDuplicate NameE&ncodingE&xitE&xploreE&xplore FolderE&xportE&xport Patch...EOL &ModeEOL &VisibilityEditEdit FileEdit Ignore FilterEdit LocalEdit Path to ServeEdit Tool ...Edit current file in working copyEdit fileEdit hookEdit patched file and rejects?Edit repository ignore filterEdit resolved fileEditor launch failureEmailEmail DAG Range...Email Selected...Email address to use in the "From" header and for the SMTP envelopeEmail outgoing changesets for remote repositoryEmit debugging output (--debug)Enabled Overlay HandlersEnabled overlaysEncodingEnglish MessagesEnter line number (1 - %d)Enter revision identifierErrorError encountered.Error loading subreposError previewing subrepo: %sError string "%(arg0)s" at %(arg1)s
                                                                                                              Please edit your configError writing fileExcludes:Execute custom tool '%s'ExitExit without finishing resolve?Exiting with an unfinished graft is not recommended.Exiting with an unfinished rebase is not recommended.Explorer Extension SettingsExport DAG Range...Export Diff...Export Selected...Export patchExtExtensionsFailed to add repositoryFailed to add subrepositoryFailed to execute custom commandFailed to load issue tracker '%s': %sFailed to load issue tracker: '%s': %s. Failed to open path in terminalFailed to open repositoryFailed!Fetch - use fetch (auto merge pulled changes)Fetch - use fetch extension (fetch is not active!)Fields to match:FileFile &History / AnnotateFile Differences Log ColumnsFile HistoryFile History Log ColumnsFile List ToolbarFile StatusFile Status:File already existsFile conflicts need to be resolvedFile is binaryFile is larger than the specified max size. maxdiff = %s KBFile may be binary (maximum line length exceeded)File or diffs not displayed: File or diffs not displayed: File is larger than the specified max size. maxdiff = %s KBFile pattern setsFilenameFilesFiles of at least the specified size (in megabytes) will be added as largefilesFiles with names meeting the specified patterns will be automatically added as largefilesFilter graph with revision sets or branchesFilter:Find RenamesFind matches - %sFind revisions matching fields of:Find revisions that "match" one or more fields of the given set of revisions.Finding outgoing changesets to %s...FinishedFirst n members of a set.First parent for all changesets in set, or the working directory.Fixed revisionsFlag:Fold patches...Follow copies and renamesFont used to display changelog data. Default: monospace 10Font used to display commit messages. Default: monospace 10Font used to display output messages. Default: sans 8Font used to display text differences. Default: monospace 10FontsFor which kinds of revisions the tool will be enabled It is only taken into account when the tool is shown on the selected revision context menu.Force Repo TabForce a merge with outstanding changes (-f/--force)Force push or pop (--force)Force push or pull (override safety checks, --force)Force push to remote location (-f/--force)ForgetForget Files...Fork GUIForwardFound %d incoming changesetsFound incoming changesets from %sFromFrom:Full Path TitleGenerate English commit messages even if LANGUAGE or LANG environment variables are set to a non-English language. This setting is used by the Merge, Tag and Backout dialogs. Default: FalseGetting incoming changesets from %s...Git FormatGit patches can describe binary files, copies, and permission changes, but recipients may not be able to use them if they are not using git or Mercurial.GlobGlobal SettingsGnuPGGo toGo to LineGo to a specific revisionGo to current revisionGoto common ancestorGoto revisionGraftGraft - %sGraft Selected to local...Graft abortedGraft changesetGraft changeset #%d of %dGraft failedGraft generated merge conflicts that must be resolvedGraft is completeGraft:GraphGraphical merge program for resolving merge conflicts. If left unspecified, Mercurial will use the first applicable tool it finds on your system or use its internal merge tool that leaves conflict markers in place. Choose internal:merge to force conflict markers, internal:prompt to always select local or other, or internal:dump to leave files in the working directory for manual mergingGreatest common ancestor of the two changesets.GreekGuards: %d/%dGuess RenamesGzip tar archivesHTTP Error: %d (%s)Head is closed!HebrewHg command:Hg file log viewer [%s] - %sHg patches (as generated by export command) are compatible with most patch programs. They include a header which contains the most important changeset metadata.Hide DetailHide TagsHide context menu outside repositoriesHighlight IconHook typeHooksHostHost name and (optional) port of proxy server, for example "myproxy:8000"Host name of mail serverHostname the sender can use to identify itself to the mail server.How many lines a "zebra stripe" should span in multiline output. Default is 1; set to 0 to disable.IconIconsIf you still have trouble, please file a bug report.Ignore Ignore Blank LinesIgnore WS AmountIgnore White SpaceIgnore caseIgnore changes in the amount of white space in diff views. Default: FalseIgnore changes whose lines are all blank in diff views. Default: FalseIgnore filter - %sIgnore white space when comparing lines in diff views. Default: FalseIgnored*Immediate OperationsImport - %sImport from ClipboardImport to &MQIn &Current RevisionIn &Original RevisionIn All &HistoryIn Current &FileIn-Reply-To:Include all ancestorsInclude patch queueIncludes:Incoming from %s aborted, ret %dIniparse must be installed.Iniparse package not foundInitial revisionInline TagsInput new guards for %s:Insufficient access rights, reverting to read-only mode.Insufficient access rights.InterruptedInterrupted graft operation foundInvalid Settings - Please provide your ReviewBoard usernameInvalid Settings - The ReviewBoard server is not setupInvalid commandInvalid date formatInvalid glob expressionInvalid regexp expressionIssue LinkIssue RegexIssue TrackerIssue Tracker PluginIssue Tracker Plugin ErrorIssue Tracker TriggerIssue TrackingIt was not possible to fully load the subrepository list for the repository in:

                                                                                                              %s

                                                                                                              The following subrepositories may be missing, broken or on an inconsistent state and cannot be accessed:

                                                                                                              %sIt was not possible to get the subrepository list for the repository in:

                                                                                                              %sItalicJapaneseKeep patch filesKey IDKey:Keyword SearchKnown bad revision:Known good revision:KoreanLargefilesLeft ToolbarLicenseLike "keyword(string)" but accepts a regex.LineList of all toolsList updated files (--verbose)Load &All RevisionsLoading repository %sLocal HostnameLocal PathLocal Path:Local Repository %sLocal disks onlyLocal revision informationLocal signLocal tagLocation:Locked*LogLog Batch SizeLong SummaryMMQ &OptionsMQ Git FormatMQ QPushPushMQ QPushPush allMQ optionsMake MQ patches secret (instead of draft). Default: FalseMake repo compatible with Mercurial <1.7Manage HTTPS connection security and user authenticationMandatory Issue ReferenceManually resolve rejected chunks?Mark as &UnresolvedMark this chunk as resolved, goto next unresolvedMark this chunk as unresolvedMark this file as resolvedMark this file as unresolvedMatch TextMatch any of %d revisionsMax ChangesMax Diff SizeMax FilesMaximum number of changes to list on the changelog. Default: 10Maximum number of files to list per changeset. Default: 10Members of a set with no children in set.Menu BehaviorMercurial Re&solveMercurial UserMercurial command is still running. Are you sure you want to terminate?Mercurial keyring extension is enabled. Passwords will be stored in a platform-native secure method.Mercurial was unable to find an editor. Please configure Mercurial to use an editor installed on your system.MergeMerge - %sMerge - allow to merge with local changesMerge caused file conflictsMerge changesetMerge from (other revision)Merge revision not specified or not foundMerge to (working directory)Merge using selected merge toolMerge with %sMerging...MessageMessage FontMessage Translation FailureMessage identifier to reply to, for threadingMethod to enable TLS when connecting to mail server. Default: noneMin Similarity: %d%%Minimum SizeMissing informationModi&fy HistoryMonitor Repo ChangesMonitor working
                                                                                                              directory changesMoveMove all files leftMove all files rightMove selected chunks leftMove selected chunks rightMove selected file leftMove selected file rightMoved tag %s to changeset %s (from changeset %s)NameName associated with commits. The common format is:
                                                                                                              Full Name <email@example.com>Name or email address of the person in charge of the repository.Named branch "%s" already exists, last used in revision %d New &GroupNew &WorkbenchNew Branch: New Commit PhaseNew GroupNew Name:New RepositoryNew ShelfNew Tool ...New file createdNew hookNew patch message:New patch queue nameNew shelf createdNextNext DiffNext diffNo DatesNo appropriate filesNo backup (-n/--nobackup)No branch changesNo chunks remainNo commitNo deletable chunksNo diff tool foundNo editor foundNo file changesNo files checkedNo files found for this operationNo files selectedNo files to findNo host validation, but still encrypted (bad)No ignored files foundNo incoming changesets from %sNo issue link was found in the commit message. The commit message should contain an issue link. Configure this in the 'Issue Tracking' section of the settings.No items to displayNo matches foundNo merge conflicts, ready to commitNo modified files checkmarked for commitNo operation to performNo outgoing changesetsNo outgoing changesets to %sNo pending Perforce changelistsNo remote repository URL or path setNo repository foundNo shell configuredNo transaction availableNo trash files foundNo unknown files foundNo username configuredNo valid default remote repository URL or path has been configured for this repository.

                                                                                                              Please type and save a remote repository path on the Sync widget.No visual diff tools were detectedNo visual editor configuredNone - simply pull changesetsNordicNormalize file line endings during and after patch to lf or crlf. Strict does no normalization. Auto does per-file detection, and is the recommended setting. Default: strictNot a Mercurial subrepo, not previewableNot a head revision!Not a head, backout will create a new head!Nothing CommittedNothing changed.Nothing to importNothing to pushOKObsolete state:On repowidget, show forOne or more of the changesets that you are attempting to push involve the creation of a new branch. Do you want to create a new branch in the remote repository?Only consider deleted filesOnly files modified/created in this revisionOnto destinationOpenOpen &TerminalOpen S&ubrepositoryOpen a new named branchOpen a shell terminal in the repository rootOpen a shell terminal in the selected folderOpen advanced query editorOpen all repositories in new tabsOpen hgweb configOpen new tabs next to the current tabOpen shelve toolOpen the repository in a file browserOpen the repository in a new tabOpen the selected folder in the system file managerOpen the selected subrepositoryOperation aborted:

                                                                                                              %(arg0)s.Optional. Comma-separated list of host names that should bypass the proxyOptional. Method to use to send email messages. If value is "smtp" (default), use SMTP (configured below). Otherwise, use as name of program to run that acts like sendmail (takes "-f" option for sender, list of recipients on command line, message on stdin). Normally, setting this to "sendmail" or "/usr/sbin/sendmail" is enough to use sendmail to send messages.Optional. Password to authenticate with at the proxy serverOptional. User name to authenticate with at the proxy serverOptionsOptions:Or use:Order the subrepos as in .hgsubOriginal Parent:Other revision informationOutgoing aborted, ret %dOutgoing to %s aborted, ret %dOutput FontOverlaysP&ushParent 1:Parent 2:Parent:ParentsPasswordPassword to authenticate to mail server withPassword to authenticate with review boardPassword:Paste &FilenamesPatch Branch ToolbarPatch EOLPatch Files (*.patch)Patch Name RequiredPatch QueuePatch Queue Actions ToolbarPatch date:Patch exportedPatch failed to applyPatch files (*.diff *.patch)Patch files already existPatch fold - %sPatch message:Patch name:Patch series description is sent in initial summary email with [PATCH 0 of N] subject. It should describe the effects of the entire patch series. When emailing a bundle, these fields make up the message subject and body. Flags is a comma separated list of tags which are inserted into the message subject prefix.Patch user:Patch:Patch: %sPatches exportedPatches to foldPathPath Edit ToolbarPath to review board example "http://demo.reviewboard.org"Path to the directory where a user's cache of largefiles will be storedPath:Paths in Repository Settings:PatternsPending Perforce Changelists - %sPerforce:Perform a push before updating (-p/--push)PhasePlain, do not prepend Hg headerPlease configure a visual editor.Please enter a usernamePlease enter commit messagePlease report this bug to our bug trackerPlease set a valid URL to continue.Please wait while committing merged files.Please wait while making backout.Please wait while the file is opened ...Please wait...PopPop allPortPort to connect to on mail server. Default: 25Port to listen onPort:Post &ReviewPost Pull BehaviorPost Pull: Post ReviewPost Selected to Review Board...Post to Re&view Board...Prepare to backoutPrepare to mergePreserve files beginning with .hgPrevPreviewPreview:Previous DiffPrevious diffProxyPublish request immediatelyPullPull from %s aborted, ret %dPull from %s completedPull incoming changesPull incoming changes from %sPull incoming changes from selected URLPull incoming changesets into your repositoryPull to here...Pulling from %s...PurgePurge Patch QueuePus&hPush &AllPush After CommitPush After Commit:Push Requires SSLPush Selected &BranchPush allPush current branch (%s)Push outgoing changesPush outgoing changes to %sPush outgoing changes to selected URLPush to %s abortedPush to %s aborted, ret %dPush to %s completedPush to &HerePush to remote repository %s ?Push up to current revision (#%d)Push up to revision #%dPushing to %s...QNewQRefreshQueryQuitR&epository Registry OptionsR&ollback/Undo...README not configuredRe&coverRe&move VersionedRe&move from RegistryRe&nameRe&name Patch...Re&name...Readonly*Ready to purge.RebaseRebase - %sRebase - rebase local commits above pulled changesRebase - use rebase extension (rebase is not active!)Rebase abortedRebase already in progressRebase changeset and descendantsRebase failedRebase generated merge conflicts that must be resolvedRebase is completeRebase...Recurse into subrepositoriesRecurse into subrepositories (--subrepos)Redundant authentication infoRefreshRefresh &Task TabRefresh ToolbarRefresh current patchRefresh current repositoryRefresh file listRefresh only the current task tabRefresh the Repository Registry listRegexpRegexp:Regular expression search patternReject incoming changesetsRelated Paths:ReloadReload FileRemo&ve Subrepository...Remote command:RemoveRemove &All Selected FilesRemove &Unmodified FilesRemove Files...Remove authentication data from URLRemove current working revision?Remove files from version controlRemove filter, show rootRemove patch directory ofRemove patches from queue?Remove selected deleted files?Removed tag %sRenameRename - %sRename ErrorRename FileRename PatchRename Patch QueueRename file or directoryRename patch %s to:Rename patch queue '%s' toRename patch...Rename the entryReopen last closed tabReopen last closed tab groupReplaceReplace existing hook?Replace existing tag (-f/--force)Replace the existing patch files. Report only the first match per fileRepositoriesRepositoryRepository ErrorRepository ID:Repository RegistryRepository Registry updatedRepository SettingsRepository command still runningRepository is lockedRepository name to use in the web interface, and by TortoiseHg as a shorthand name. Default is the working directory.Repository not localRepository status & changesResolve Conflicts - %sResolved conflictsRestart &BranchRestart Mer&geRestart Merge &withRestart all TortoiseHg applications for the following changes to take effect:Resuming rebase already in progressRevRevertRevert - %sRevert Files...Revert all file changes?Revert all files to this revisionRevert all working copy changes?Revert file changesRevert file(s) to contents at this revisionRevert files to local or other parent?Revert local file changes?Revert the following files?Revert to RevisionReverting all files will discard changes and leave affected files in a modified state.

                                                                                                              Are you sure you want to use revert?

                                                                                                              (use update to checkout another revision)Reverting p4 changelist...Review BoardReview ID:Review draft posted to %s Review published to %s RevisionRevision #%d (%s) was exported to:

                                                                                                              %s%s%sRevision &DetailsRevision SetRevision Set QueryRevision has changed to:Revision is &BadRevision is &GoodRevision to Match:Revision:Revisions to Match:Right ToolbarRollback commit to revision %dRollback to revision %d (undo %s)?Running at %sRunning...RussianS&ync ToolbarS&ynchronizeSMTP HostSMTP PasswordSMTP PortSMTP TLSSMTP UsernameSSH CommandSSL error: %sSSL: Server certificate verify failedSSL: unknown error %s:%sSaveSave GlobalSave Open Repositories on E&xitSave PathSave changes before editing?Save current URL under an aliasSave error report toSave file as it appeared at this revisionSave file toSave hgweb configSave in RepoSearchSearch HistorySearch Selected TextSearch already in progressSearch commit message, user name, and names of changed files for string.Search file revisions for patternsSearch in All &HistorySearchingSearching...Second parent for all changesets in set, or the working directory.Secret MQ PatchesSecure HTTPS ConnectionSecuritySecurity: Select &AllSelect &NoneSelect Destination FileSelect Destination FolderSelect Directory containing patchesSelect RepositorySelect Source FileSelect Source FolderSelect Tool:Select a GUI location to edit:Select an existing repository to add as a subrepoSelect branch of merge commitSelect bundle fileSelect destination repositorySelect patch folderSelect patchesSelect post-pull operation for this repositorySelect repository directory to addSelect repository directory to openSelect source repositorySelect the initial revision that will be selected when opening a repository. You can select the "current" (i.e. the working directory parent), the current "tip" or the working directory ("workingdir"). Default: currentSelect the initial widget that will be shown when opening a repository. Default: revdetailsSelect the revisions that will be pushed by default, whenever you click the Push button.

                                                                                                              • all: The default. Push all changes in all branches.
                                                                                                              • branch: Push all changes in the current branch.
                                                                                                              • revision: Push the changes in the current branch up to the current revision.

                                                                                                              Default: allSelect the toolbar or menu to changeSelected changeset pair not relatedSend &EmailSend changesets as Hg patchesSend single binary bundle, not patchesSending EmailServerServer Repository IDServersSet &Guards...Set AncestrySet Date:Set LogicSet username:Settin&gsSettingsSettings File:Several characters would be lost.Several icons are courtesy of the TortoiseSVN and Tango projectsSh&ow Repository RegistryShelfShelf clearedShelf deletedShelf: %sShellShelve - move local changes to a patchShould new tabs be open next to the current tab? If False new tabs will be open after the last tab. Default: TrueShow &AuthorShow &DateShow &Patch QueueShow &PathsShow &RevisionShow About DialogShow DetailShow FunctionShow IconShow IssuesShow Issues...Show LogShow Output LogShow Revision &DetailsShow S&hort PathsShow a full directory path of the repository in the dialog title instead of just the root directory name. Default: FalseShow allShow changes from first parentShow changes from second parentShow files changed by this commitShow tags at start of commit message.Show the history of the selected fileShow which function each change is in. Default: FalseShow/Hide hidden changesetsSig&n...Sign - %sSign even if the sigfile is modified (-f/--force)Signature has been addedSingle Workbench WindowSizeSize (KB)Skip final confirmation page, close after commit.Skipping %s, unable to readSome of the files that you have selected are of a size over 10 MB. You may make more efficient use of disk space by adding these files as largefiles, which will store only the most recent revision of each file in your local repository, with older revisions available on the server. Do you wish to add these files as largefiles?Sort by &NameSort by &PathSort set by keys. The default sort order is ascending, specify a key as "-key" to sort in descending order.Sort the group by full pathSort the group by short nameSourceSource:South-Eastern EuropeSouthern EuropeSpace separated list of shell operations you would like to be performed immediately, without user interaction. Commands are "add remove revert forget". Default: None (leave blank)Specify name of new shelfSpecify the number of spaces that tabs expand to in various TortoiseHg windows. Default: 8Specify visual diff tool, as described in the [merge-tools] section of your Mercurial configuration files. If left unspecified, TortoiseHg will use the selected merge tool. Failing that it uses the first applicable tool it finds.Specify your preferred user interface language (restart needed)StartStart a new patch branchStart revision:Start web server for this repositoryStatStatusStatus File List ToolbarStatus:StopStop current operationStoppedStrip - %sStrip:StripesStripping Mercurial header removes username and parent information. Only useful if recipient is not using Mercurial (and does not like to see the headers).StyleSub menu items:Subject:Submitting p4 changelist...Subrepo added to .hgsub fileSubrepo removed from repository.Subrepo state is:Subrepo statesSubrepo was not changed.Subrepository already existsSubrepository not found in the working directory.Subversion:SuccessSuggested length of commit message lines. A red vertical line will mark this length. CTRL-E will reflow the current paragraph to the specified line length. Default: 80Summary (first description line)Summary Line LengthSummary:Swap source and destinationSyncSynchronizeSynchronize with dragged repositorySynchronize with remote repositorySyntax HighlightingSystem CacheTab WidthTag '%s' has been addedTag '%s' has been movedTag '%s' has been removedTag - %sTag:Tagged:Tags:Take &OtherTar archive compressed using bzip2Tar archive compressed using gzipTar archivesTarget GroupsTarget:Task TabsTask Toolbar OrderTaskbarTemporarily disable configured HTTP proxyTemporary files are removed when this dialog is closedTerminated by userTest this revision and report findings. (good/bad/skip)Text Translation FailureText files (*.txt)Textual description of the repository's purpose or contents.ThaiThe .hgsub file already contains the line:

                                                                                                              %sThe changes from revision %s and all unmerged parents will be discarded. Are you sure this is what you want to do?The command "%s" could not be executed.The command that will be executed. To execute a python function prepend the command with "python:". The default repository id for this repo on the review board serverThe destination "%s" already exists as a file!The destination "%s" already exists as a folder!The destination must be within the repository tree.The directory "%s" is not empty! Do you want to overwrite it?The exception error message was:

                                                                                                              %s

                                                                                                              The file "%s" already exists! Do you want to overwrite it?The following error message was returned: "%s" Please check that the command path is valid and that it is a valid applicationThe hook name cannot contain any spaces, tabs or '=' characters.The maximum size file (in KB) that TortoiseHg will show changes for in the changelog, status, and commit windows. A value of zero implies no limit. Default: 1024 (1MB)The named bookmark or all bookmarks.The named tag or all tags.The number of revisions to read and display in the changelog viewer in a single batch. Default: 500The phase of new commits. Default: draftThe selected command is emptyThe selected repository:

                                                                                                              %s

                                                                                                              cannot be open!The selected revision (%s) has a bookmark on it called "%s".

                                                                                                              Do you want to activate it?
                                                                                                              You can disable this prompt by configuring Settings/Workbench/Activate BookmarksThe selected subrepo:

                                                                                                              %s

                                                                                                              has been added to the .hgsub file of the repository:

                                                                                                              %s

                                                                                                              Remember that in order to finish adding the subrepo you must still commit the changes to the .hgsub file in order to confirm the addition of the subrepo.The set of all parents for all changesets in set.The source must be within the repository tree.The subrepository is dirty.The tool icon. You can use any built-in TortoiseHg icon by setting this value to a valid TortoiseHg icon name (e.g. clone, add, remove, sync, thg-logo, hg-update, etc). You can also set this value to the absolute path to any icon on your file system.The tool label, which is what will be shown on the repowidget context menu. If no label is set, the tool name will be used as the tool label. If no tooltip is set, the label will be used as the tooltip as well.The tool name cannot have any spaces in it.The tool name. It cannot contain spaces.The tooltip that will be shown on the tool button. This is only shown when the tool button is shown on the workbench toolbar.The working directory is already merged. Continue or discard existing merge.There are existing patch files for %d revisions (%s) in the selected location (%s). There are merge conflicts to be resolvedThere are no conflicting file merges.There are no file changes to viewThere are no files that may have been renamedThere is already an existing folder with that same name.There is an existing %s.%s hook. Do you want to replace it?There is no rollback transaction availableThg - TortoiseHg's GUI tools for Mercurial SCM (Hg) This appears to be a binary file.This error will not be shown again until you restart the workbenchThree-way Merge ToolTitleToTo finish merging, you must commit the working directory. To cancel the merge you can update to one of the merge parent revisions.To graft destinationTo rebase destinationTo:Toggle display of text search barToggle filtering of non-matched changesetsToggle graft relations visibilityToggle parent to be used as the base revisionTolerate non-conflicting local changes (--keep-changes)Tool &ResolveTool labelTool launch failureTool nameToolsTools shown on selected locationTooltipTop menu items:TortoiseHg Bug ReportTortoiseHg Command DialogTortoiseHg CommitTortoiseHg Dialogs (version %s), Mercurial (version %s) TortoiseHg ErrorTortoiseHg New Shelf NameTortoiseHg Overlay Icon ServerTortoiseHg PromptTortoiseHg SearchTortoiseHg SettingsTortoiseHg Shelve - %sTortoiseHg Web ServerTortoiseHg WorkbenchTortoiseHg has created a new .hgignore file. Would you like to add this file to the source code control repository?Traditional ChineseTransplant:Trigger revision set queryTry refreshing your repository.TurkishTypeUI LanguageURLURLError: %sUkrainianUnable to backoutUnable to compress historyUnable to create a Mercurial.ini fileUnable to create a config fileUnable to delete %d file or folderUnable to delete %d files or foldersUnable to determine pending changesetsUnable to determine working copy revision Unable to find changesetUnable to mergeUnable to merge chunksUnable to parse p4pending outputUnable to read fileUnable to read repository statusUnable to removeUnable to remove URLUnable to remove file %s, permission deniedUnable to save after commit pushUnable to save an URLUnable to save authenticationUnable to save auto include listUnable to save post pull operationUnable to save recurse in subrepos.Unable to save usernameUnable to show subrepository filesUnable to start the following command:Unable to translate input to local encoding.Unable to update repository nameUnable to write .hgignore fileUnable to write configuration fileUnable to write diff fileUnable to write fileUnapply all patchesUnapply one patchUnbundleUncheckUncheck all filesUncommited merge - please select a parent revisionUncompressed tar archiveUncompressed zip archiveUnderlineUndo close other tabsUndo close tabUndo last commit?Undo last transaction?Undo most recent commit (%d), preserving file changes?UnicodeUnified ChineseUnknown revision!Unresolved conflictsUnresolved conflicts remain. Are you sure?Unsaved changes will be lost. Do you want to reload?Unsupported repository type (%s)UnversionedUpdateUpdate - %sUpdate - pull, then try to updateUpdate IconsUpdate ReviewUpdate icons for this repositoryUpdate subrepo pathsUpdate to:Update working directoryUpdate working directory or switch revisionsUpdate...Updating repository registryUpgrading to a more recent TortoiseHg is recommended.Use English backout messageUse English commit messageUse compact viewUse current dateUse custom commit message:Use extended (git) patch formatUse git extended diff header format. Default: FalseUse proxy serverUse pull protocol to copy metadataUserUser AuthenticationUser CacheUser authentication data should be associated with the hostname using the security dialog.User name to authenticate with review boardUser:UsernameUsername to authenticate to mail server withVerify backout revision and ensure your working directory is clean.Verify merge targets and ensure your working directory is clean.Verify with Certificate Authority certificates (best)Verify with stored host fingerprint (good)Vi&ew FileVietnameseView File atView O&therView change as unified diff outputView change history in repositoryView change history of selected filesView change in context of fileView changes to current in external diff toolView changes using GUI diff toolView file as it appeared at this revisionView file changes in external diff toolView the repository's settingsVisual DiffVisual Diff ToolVisual Diff...Visual Diffs - Visual EditorVisual diff between resolved file and first parentVisual diff between resolved file and second parentVisual diff...Visual diffs are not supported for files in subrepositories. They will not be shown.Visual three-way diffWarningWarning: affects all Tortoises, logoff required after changeWeb ServerWebconfWestern EuropeWhat do you want to do? When enabled, automatically show the Output Log when the command is run. Default: False.Whether to allow pushing to the repository. If empty or not set, push is not allowed. If the special value "*", any remote user can push, including unauthenticated users. Otherwise, the remote user must have been authenticated, and the authenticated user name must be present in this list (separated by whitespace or ","). The contents of the allow_push list are examined after the deny_push list.Whether to deny pushing to the repository. If empty or not set, push is not denied. If the special value "*", all remote users are denied push. Otherwise, unauthenticated users are all denied, and any authenticated user name present in this list (separated by whitespace or ",") is also denied. The contents of the deny_push list are examined before the allow_push list.Whether to require that inbound pushes be transported over SSL to prevent password sniffing.Which template map style to useWhite&spaceWork on patch queue (--mq)WorkbenchWorkbench Log ColumnsWorking CopyWorking DirectoryWorking Directory (merged)Working directoryWorking directory is not clean! View changes...Working directory statusWrap searchWrite bundleWrite diff fileWrite patch series (bundle) descriptionYou are trying to move the phase of revision %d backwards, from "%s" to "%s". However, "%s" is a lower phase level than "%s". Moving the phase backwards is not recommended. For example, it may result in having multiple heads if you modify a revision that you have already pushed to a server. Please be careful!You can visit our site hereYou have authentication info configured for this host and inside this URL. Remove authentication info from this URL?You have selected one or more files that have been modified. By default, these files will not be removed. What would you like to do?You likely need to refresh this applicationYou may continue or start the graftYou may continue the compressYou may continue the graftYou may continue the rebaseYou must enter a patch nameYou must identify yourself to MercurialYou must provide revisions to graftYou must provide source and dest argumentsYou must provide the path to a fileYou must set a command to run.You must set a tool name.You must set a valid hook type.Your TortoiseHg is up to date.Your current working revision (%d) will be removed by this rollback, leaving uncommitted changes. Continue?Zip archive compressed using deflateZip archives[Code: %d][WARNING] Invalid subrepo revision ID: %s [command completed successfully %s][command interrupted %s][command returned code %d %%s][command terminated by user %s][non-existant][original][working copy]a revision to sendabort: abort: %s abort: %s! action buttonCommitadd diffstat output to messagesaddedall revisions converted from subversionalways fork GUI processattachbasic commands: bodybookmark: branch: bundle file to previewcan not read file "%s". Ignored. changeset %d:%schangeset to view in diff toolchangeset: %scleanclone only the specified branchcolumn headerAgecolumn headerAuthorcolumn headerBranchcolumn headerChangescolumn headerConverted Fromcolumn headerDescriptioncolumn headerFilenamecolumn headerGraphcolumn headerLatest tagscolumn headerLocal Timecolumn headerNodecolumn headerPhasecolumn headerRevcolumn headerTagscolumn headerUTC Timecommand parse error: %sconfig itemCommitdefaultdiffstatdiscard uncommitted changes (no backup)display help and exitdo not back up stripped revisionsdo not fork GUI processenable additional outputeol is incompatible with win32texterror while running command exec mode has been setexec mode has been unsetfailed to start command field to give initial focusfile has been deleted, refreshfile has been modified, refreshfilesfilesAllfilesNonefilling (%d)filterglobal options:grep: %s grep: invalid match pattern: %s hgsubversion is incompatible with perfarcehint:hint: historyignore case during searchignoredimport to the patch queue (MQ)in the futureinclude the specified changesetinitial search patterninlineinotify is not supported on this platforminvalid argumentsinvalid line number: %skeep original branch nameskeep original changesetslaunch visual diff toollist of commands: locallsprof not available - install from http://codespeak.net/svn/user/arigo/hack/misc/lsprof/make the tag localmerge with old dirstate parent after backoutmethodmissingmodifiedmust be specified 'type' in stylemust be specified repositoryname of the hgweb config file (DEPRECATED)name of the hgweb config file (serve more than one repository)no commands defined no guardsno matches found: %sno outgoing changesetsno outgoing changesets in current branch (%s) / %d in totalno outgoing changesets up to current revision (#%d) / %d in totalno outgoing changesets up to revision #%d / %d in totalno repo at notify the shell for paths givennowopen a new workbench windowopen...options: parent to choose when backing out mergepassword: perfarce is incompatible with hgsubversionprint command execution profileprint licensepull: %s push: %sread file list from fileread file list from file encoding utf-8rebase from the specified changesetrebase onto the specified changesetrecord datecode as commit daterecord user as committerremove a tagremove the status cacheremove working directoryremovedreplace existing tagrepository %s not foundrepository root directory or symbolic path namerev: %d (%s)revision to annotaterevision to archiverevision to backoutrevision to displayrevision to mergerevision to striprevision to tagrevision to updaterevision, tag or branch to check outrevisions %d:%s to %d:%srevisions to graftrevisions to view in diff toolselected filessend patches as attachmentssend patches as inline attachmentssend patches as part of the email bodyshow files without changesshow ignored filesshow the contents of the status cache (no update)start debuggerstart progressCommitstart progressMQ Actionstart progressRollbackstatussubreposuppress outputsync command already runningtab tooltipCommittab tooltipPatch Branchtab tooltipRevision detailstab tooltipSearchtab tooltipSynchronizethe clone will include an empty working copy (only a repository)thg %s: %s thg aboutthg add [FILE]...thg annotatethg archivethg backout [OPTION]... [[-r] REV]thg bisectthg bookmarks [-r REV] [NAME]thg clone [OPTION]... [SOURCE] [DEST]thg commit [OPTIONS] [FILE]...thg debugbugreport [TEXT]thg drag_copy SOURCE... DESTthg drag_move SOURCE... DESTthg email [REVS]thg forget [FILE]...thg graft [-r] REV...thg grepthg guessthg help [COMMAND]thg hgignore [FILE]thg import [OPTION] [SOURCE]...thg init [DEST]thg log [OPTIONS] [FILE]thg manifest [-r REV] [FILE]thg merge [[-r] REV]thg postreview [-r] REV...thg purgethg rebase -s REV -d REV [--keep]thg rejects [FILE]thg remove [FILE]...thg rename [SOURCE] [DEST]thg repoconfigthg resolvethg revdetails [-r REV]thg revert [FILE]...thg rupdate [[-r] REV]thg serve [--web-conf FILE]thg shellconfigthg shelvethg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]thg status [OPTIONS] [FILE]thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]thg thgstatus [OPTION]thg update [-C] [[-r] REV]thg userconfigthg version [OPTION]thg: %s thg: command '%s' is ambiguous: %s thg: unknown command '%s' unknownunknown revision!unrecognized profiling format '%s' - Ignored update all repos in current diruse "thg -v help %s" to show global optionsuse "thg -v help%s" to show aliases and global optionsuse "thg help" for the full list of commandsuse "thg help" for the full list of commands or "thg -v" for detailsuse as commit messageuse only one form to specify the revisionuse pull protocol to copy metadatause uncompressed transfer (fast over LAN)version %swait until the second ticks overwin32text is incompatible with eolwindow titleCommitwith Mercurial-%s, Python-%s, PyQt-%s, Qt-%sworking changesworking dir stateCleanwrap mode&NoneProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2015-09-07 12:25+0000 Last-Translator: Yuya Nishihara Language-Team: LANGUAGE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; X-Launchpad-Export-Date: 2019-07-17 05:43+0000 X-Generator: Launchpad (build 19009) キーボード入力によって中断されました。 エイリアス: %s (デフォルト値: %s) (%s から複製) (シンボリックリンク) (はまだバージョン管理下にはありません) (改名元: %s) (追加) (は追加されましたが今はありません) (は削除されました) フィルタ適用"%s" はフォルダーではありません"%s" は正しいディレクトリではありませんパス履歴から"%s"を削除しました検索履歴から"%s"を削除しました### 抽出する文字列 ###### ホストの証明書フィンガープリント ###### パッチ名 ###### 正規表現 ###### 正規表現での検索パターン ###### リビジョン指定問い合わせの入力 ###utf-8,shift_jis,euc_jp,iso2022_jp類似度(%)%d 日%d つのファイルで マージ衝突 - 解消する%d つのファイルが両方のブランチで変更されています。 解消してください。%d 時間%d 件見つかりました%d 分%d ヶ月%d 件の送信チェンジセット%d 件の反映候補リビジョン (現ブランチ %s) / 全 %d 件%d 件のチェンジセットを %s に送信できます%d 件の反映候補リビジョン (現リビジョン #%d まで) / 全 %d 件%d 件の反映候補リビジョン (リビジョン #%d まで) / 全 %d 件%d つのパッチを以下にエキスポートしました:

                                                                                                              %s%d 個の保留中の変更リストが見つかりました%d 秒%d 週%d 年%d%%%dpt%p%%s (ヒント: %s)%s (保留中)%s (送信完了)%s - リビジョンの詳細 (%s)%s - TortoiseHg Workbench%s - TortoiseHg Workbench - %s%s - ブランチ作業%s - コミット%s - コミットオプション%s - hg %s%s - 管理対象ではないファイルの削除%s - リポジトリを復元%s - 状態%s - 状態 (選択がフィルター済み)%s - 同期の設定%s - リポジトリを検証%s : %s%s <取り込み対象>%s はすでにあります。URLを置き換えますか?%s と %s の内容が同じです %s に失敗したチャンクがあります。パッチが成功したファイルと一緒に失敗したチャンクも編集しますか?%s は変更されているサブリポジトリです%s は無視されています%s は変更されています%s は正しいリポジトリではありません%s は変更されていません(クリーン)%s パッチ%s リポジトリ設定%s のインポート先 %s のユーザ設定TortoiseHg について(&A)追加(&A)リポジトリを追加(&A)...インデント以外(&A)アーカイブ(&A)アーカイブ (&archive)...自動(&A)自動補完(&A)変更の打ち消し (&backout)...問題の二分探索 (&bisect)...ブラウズ(&B)リビジョンと子孫をバンドル生成 (&bundle)...キャンセル(&C)文字単位(&C)デフォルトに戻す(&C)クローン(&C)閉じる(&C)リポジトリを閉じる(&C)コミット(&C)キューをコミット(&C)...現行のブランチへコミット(&C)コピー(&C)パッチをコピー(&C)コピー (©)...作成(&C)カスタムツールバー(&C)削除(&D)パッチを削除(&D)...キューの参照を削除(&D)...未バージョン管理を削除(&D)...他との差分(&D)親リビジョンとの差分 (&diff)破棄(&D)変更を破棄 (&D)ドックツールバー(&D)ファイルを開く(&E)ローカルファイルを編集(&E)編集ツールバー(&E)編集(&E)...エディタオプション(&E)パッチをメール送信 (&email)...終了(&E)無効(&F)ファイル(&F)フィルターツールバー(&F)パッチを通常リビジョン化 (q&finish)強制(&F)登録除外 (&forget)リビジョンへ移動(&G)...ローカルへ移植 (&graft)...ヘルプ(&H)無視(&I)...インポート(&I)未取り込みを検索 (&incoming)非表示(&I)ライセンス(&L)ローカル(&L)&Mac衝突解消済みに設定(&M)検索(&M)マージ(&M)ローカルとマージ (&merge)...移動(&M)リポジトリを作成 (i&nit)...いいえ(&N)いいえ (変更を破棄)開く(&O)すべて開く(&O)ローカルファイルを開く(&O)リポジトリを開く(&O)...由来リビジョン(&O)その他(&O)反映候補を検索 (&outgoing)親リビジョン(&P)親リビジョン(&P) (%d)貼り付け(&P)パッチブランチ(&P)取り込み (&pull)キューを完全に削除(&P)...対象外ファイルを削除 (&purge)...&Readme移動 (&rebase)...やり直し(&R)再読み込み (&R)リポジトリ一覧を更新(&R)削除(&R)削除(&R)...使用中のキュー名を変更(&R)...置き換え(&R)リポジトリ(&R)マージ衝突を解消 (&resolve)...復旧 (&Revert)このリビジョンへ復旧 (&revert)...変更をバックアップして復旧する (&R)復旧 (&revert)...実行(&R)保存(&S)このリビジョンを保存(&S)...起動時にリポジトリをスキャン(&S)検索(&S)ファイル内を検索(&S)設定(&S)設定(&S)シェルフ(&S)変更点の退避 (&shelve)...署名(&S)リビジョンを飛ばす(&S)並び替え(&S).hgsub 順に並び替え(&S)スペース(&S)削除(&S)除外 (&strip)...&TAB&TAB 入力タグ (&tag)...ローカルを使う(&T)タスクツールバー(&T)端末を開く(&T)有効(&T)パッチを適用解除(&U)取り消し(&U)&Unix未設定(&U)更新(&U)作業領域を更新 (&update)...整合性を検証 (&verify)表示(&V)チェンジセットを表示(&V)不明ファイルを表示(&V)このリビジョンを開く(&V)表示(&V)ウェブサーバ(&W)&Windows単語単位(&W)&Workbench ツールバー行折り返し(&W)はい(&Y)「公開」リポジトリ(非推奨)(次のコミットから除外)(ヘルプテキストがありません)(親リビジョンと同じ)*: TortoiseHgでは使われていません、マージ解消済み、マージ未解消3-way ディレクトリ差分設定ツールを開く...%d つのチェンジセットが削除されます由来情報:適合候補検出元と検出先との差分ホスト名: %s無視ファイルフィルタ解釈できません!リポジトリの詳細:選択したオプション:選択したオプション: %sコミットしていない変更がローカルにあります不明なリビジョンです!未管理のファイル未バージョン管理ファイルWebサーバー:<デフォルト><未設定>= 作業領域の親リビジョン =このリポジトリではマニュアルファイル(README)が設定されていません。

                                                                                                              マニュアルファイルをリポジトリに設定するには、リポジトリ設定ファイルを開き、'readme'キーを'tortoisehg'セクションに加え、マニュアル(README)ファイルのファイル名かURLを設定してください。「%s」というブックマークは既にありますカンマ区切りのターゲットグループのリスト新しいバージョンの TortoiseHg (%s) がダウンロードできます。その名前のシェルフファイルはすでに存在していますリモートに対して、シェルターミナルを開くことはできませんターミナルシェルは設定されている必要がありますサブリポジトリを追加(&D)...中止エクスポートを中止する p4pending 中断バージョン情報&Qt についてTortoiseHg について取り込むローカル(あなたの)ファイルのバージョンを使う他ファイルのバージョンを使うブックマークを有効化ブックマークを有効化しますか?アクティブ化:追加大容量ファイルを追加(&L)大容量ファイルを追加(&L)...追加...提供するパスを追加このグループにリポジトリを追加します大容量ファイルとして追加 (&L)通常ファイルとして追加 (&N)ファイルをバージョン管理に追加します無視ファイルフィルタを追加...パッチを追加あるいは取り除くには、作業領域にマージする必要があります選択した管理下にないファイルを追加しますか?区切りを追加リストに追加追加済み%s タグをチェンジセット %s に追加しましたプル後の処理経過時間:エイリアス全履歴指定ブランチないしリビジョン群の属するブランチ群に、属するリビジョン。全リビジョン。 "0:tip" と等価。マージできなかったファイルは全て衝突未解消として記録されます。衝突を全て解消しました。すべてのコンテキストすべてのファイル (*)すべてすべてのリビジョン保存していない変更は全て失われます。プッシュを許可する新規ブランチの反映を許可 (--new-branch)新規ブランチの反映を許可 (--new-branch)可能なときは常にマージ一つのリポジトリだけであってもリポジトリタブを表示します。デフォルト: 表示しない改変現在のリビジョンを改変"::." (作業領域の第1親の祖先リビジョン群) 記述の別名。指定リビジョン群に存在しないものがあれば空、でなければ指定リビジョン群。ファイル読み込み中にエラーが起きました。リポジトリの hgrc ファイル (%s) を更新中にエラーが起きましたファイル書き込み中にエラーが起きました。以下のサブレポジトリの読込中に問題が発生しました:

                                                                                                              "%s"

                                                                                                              移植の実行が中断されています。 この移植の実行を中止するまで新しい移植を実行できません。由来情報を表示(&F) (annotate)由来情報オプション(&T)行ごとの由来リビジョンを表示フォーマットを適用(&l)追加コミットログへ移植情報を追加今あるパッチファイルに変更を追加する 適用済みパッチ適用済みパッチかqparent全てのパッチを適用閉じる前に設定を保存しますか?パッチを一つ適用このパッチだけ適用元の親へパッチを適用パッチを適用アラビア語アーカイブ - %sアーカイブ形式アーカイブの種類:コミットを中止して本当によろしいですか?これらのファイルあるいはフォルダーを削除してもよろしいですか?本当に上書きしますか?本当にファイルを読み込み直しますか?本当に削除しますか?自動マージを試すコミットが成功するたびに指定したURLかエイリアスにプッシュします。デフォルトはプッシュしません。作成者コミッタの色分け自動コミットファイル自動除外ファイル自動的に追加:マージを自動解消打ち消しとマージが成功すると、自動的に次のページヘと移動しますマージが完了したら自動的に次のページに進むマージ衝突をできるだけ自動で解消戻るバックアウトしたチェンジセット: 親リビジョンの打ち消しは、単一の操作です打ち消した後、コミットしています...打ち消し、マージしています...バックアウト - %s打ち消したチェンジセット打ち消しには親リビジョンが必要です打ち消し対象リビジョン列を削除するにはBackspaceかDelキーを押してください変更されたファイルは .hg/Trashcan/ にバックアップされますフェーズの逆行が要求されましたファイル名が不正ですバルト語Bccバックアウトする前に、 コミット、パッチへ シェルフ 、または変更を 破棄 する必要があります。マージするには、まず コミット、 パッチに シェルフ するか、変更を 破棄 してください。二分探索 - %s二分探索 - Bad, Good...二分探索 - Good, Bad ...太字ブックマーク (boo&kmark)...ブックマーク "%s" は存在しませんブックマーク「%s」を追加しましたブックマーク「%s」を移動しましたブックマーク「%s」を削除しましたブックマーク「%s」を「%s」へ変更しましたブックマーク - %s「%s」というブックマークはありませんブックマーク:ブランチブランチの色ブランチ:ブランチ: このリビジョンのファイルを閲覧(&W)ディレクトリの選択...選択...DAG 範囲をバンドル...バンドルファイル (*.hg)バイナリ形式で完全なチェンジセットを格納します。上流ユーザはそれらをPullできます。この方法はMercurialユーザの受取人に最も安全に変更を送信する方法です。除外ホスト名bzip2 圧縮の tar アーカイブログの表示列を選択(&H)...フォーマットを設定(&C)コマンドラインエディタiniparse パッケージがないため設定を変更できません - 読み取り専用リビジョン '%s'を見つけられませんキャンセルサブリポジトリを追加できませんでした他のブランチの変更は打ち消せませんリビジョンをエクスポートできませんリビジョン %s を以下のファイルににエキスポートできません: %s 指定のリビジョンをインポートできませんプラグインオプションダイアログを開けませんリポジトリを開けません以下の.hgsubファイルを開けません:

                                                                                                              %s新しい検索を開始できません.hgsubファイルを更新できません。ファイルの場所:

                                                                                                              %sCcCc:ケルト語中東欧証明書クエリーエラーフェーズを変更 (&P)チェンジログフォント変更が移動しました。今すぐコミットしてください変更は次のコミットで反映されますリビジョンリンクマージ実施リビジョン群。名前付きブランチのヘッドリビジョン群。閉鎖されたリビジョン群。タグ付けられた全リビジョン群指定リビジョン群中で、 リビジョン番号が最大のもの。指定リビジョン群中で、 リビジョン番号が最小のもの。チェンジセット:チェンジセットパターンに合致する名前のファイルが存在するリビジョン群。指定連携先ないし無指定時の反映先に、存在しないリビジョン群。set 中のリビジョンに対する祖先リビジョン群。ユーザー名に文字列を含むリビジョン群。パターンに合致する名前のファイルを登録したリビジョン。指定リビジョン群の子孫リビジョン群。パターンに合致するファイルを改変したリビジョン群。パターンに合致する名前のファイルを登録除外したリビジョン群。リポジトリ内のファイルの文字エンコーディング。 ウェブインターフェースと TortoiseHg で利用。チェックすべてのファイルを選択未取り込みリビジョンを検索%s から未取り込みリビジョンを検索指定のURLからプルできるか(取り込めるか)確認チェック数: %dチェックしていますアップデートを確認しています...作業領域の状態を調べています...確認中...追加するファイルをチェック登録除外するファイルをチェック削除するファイルをチェック復旧するファイルをチェック指定リビジョン群の子リビジョン群。子リビジョン:選択したチャンク: %d / %dログを削除(&R)クリーンシェルフファイル %s の中身を削除しますか?現在の問い合わせを削除OKボタンを押して続けるか、Abortボタンを押して終了してくださいリポジトリを複製 (clon&e)...リポジトリを複製 (clon&e)...クローン - %sリポジトリを複製このリビジョンまでクローン:リポジトリのクローン...閉じる%s ブランチを閉鎖コミット後に閉じるブランチを閉じる: 現行ブランチを閉じる他のタブを閉じるタブを閉じるコミットが成功したらそのコミットツールを閉じます。デフォルトでは無効です。閉じる:ファイルのリビジョンを比較(&M)ダウンロード可能なアーカイブ形式をカンマ区切りで指定。除外ファイルパターンをカンマ区切りで指定します。除外パターンは検索対象パターンの後に適用されます検索対象ファイルパターンをカンマ区切りで指定します。デフォルトではリポジトリ全体を検索します。BCCとして送るメールアドレスをカンマ区切りで指定。CCとして送るメールアドレスをカンマ区切りで指定。送信先のメールアドレスをカンマ区切りで指定。コマンドコマンドエラーコマンド出力SSH 接続に使用するコマンド。

                                                                                                              デフォルト: "ssh" または "TortoisePlink.exe -ssh -2" (Windows)コミットコミットダイアログツールバー後でコミットすぐにコミットコミットオプションバックアウト・マージ結果をコミット変更をコミット変更点をリポジトリにコミットしますマージ結果をコミットコミットメッセージコミット...コミット中...共通指定選択したファイルのリビジョンを比較する第&1親リビジョンと比較第&2親リビジョンと比較パッチから完全にファイルを削除しますか?圧縮圧縮 - %s履歴を圧縮...以下のチェンジセットを圧縮します圧縮が完了しました。古い履歴はなにも変更ありません設定ファイル:設定ファイル (*.conf *.config *.ini)設定エラー: "%(arg0)s"。
                                                                                                              設定を修正してくださいカスタムツール設定エクスプローラ設定ダイアログを開きますフックを設定課題管理設定ガードの設定選択したパッチへのガードを設定リポジトリ設定ダイアログを開きます選択したCOMバグトラックプラグインを設定しますユーザ設定ダイアログを開きますCOM IBugTraqProvider か IBugTraqProvider2 課題管理プラグインの設定追加の確認ブランチ変更確認削除の確認未バージョン管理ファイルの削除確認破棄の確認本当に変更を破棄しますかコミットログの破棄終了新規ブランチの作成上書きの確認プッシュの確認再読み込みの確認削除の確認復旧の確認保存確認削除の確認URLの置き換え確認元に戻す確認更新の確認未知のファイルを追加時に確認ファイルの削除を確認するファイル削除の確認パッチキューの変更確認レビューボードに接続中...まず移植を中止してみて下さい。リベースを中断することをお勧めします。コンソール連絡先右クリックメニュー中断された移植を再開しますか?中止しますか?サーバとして機能する際の、 draft フェーズに対する挙動の設定。 True の場合、クライアントから反映されたリビジョンのフェーズは、クライアント / サーバ双方で public 化され、クライアントに取り込み、または複製されたリビジョンのフェーズは、クライアント側でのみ public 化されます。 デフォルト: True今あるリポジトリをサブリポジトリに変換します変換元:コピーハッシュ値をコピー(&H)パスをコピー(&P)コピー - %sコピーエラーファイルのフルパスをクリップボードにコピーメッセージをコピーする最近のコミットメッセージをコピーする変更元から変更先にコピーするリポジトリのルートパスをクリップボードにコピーサブリポジトリ一覧を取得できません課題管理プラグインのCOMオブジェクトをインスタンス化できませんいくつかのサブリポジトリが開けませんでした指定したファイルを読み込み用に開けませんでした。指定したファイルを書き込み用に開けませんでした。ファイルの内容を環境依存のエンコーディングから変換できませんでした。ファイルの内容を環境依存のエンコーディングへ変換できませんでした。作成ブランチ作成(&B)キューを作成(&N)...キューを作成ここにリポジトリを作成新しいグループを追加しますパッチを作成ここに新しいリポジトリを作成しますリポジトリのクローンを作成しますこのブランチのすべての変更の差分を作成すべての送信チェンジセットでの差分を作成このコミットで「%s」という名前付きブランチを開始しますか? 切り取り(&T)問題を発生させたリビジョンを発見しました。現在のローカルリビジョンカスタムツールバーの設定(&S)カスタムツールキリル文字日付日付:名前の変更を検出(&T)...現在のブックマークを無効化しますか?削除済みブランチデフォルトプッシュ初期設定ウィジェット課題番号にマッチする正規表現を定義削除.hg/Trashcanにある %d つのファイルを削除する%d つの無視ファイルを削除する%d つの不明なファイルを削除する%s をリポジトリの設定ファイルから削除しますか?グループ '%s' とその中のすべてのエントリを一覧から削除しますか?キューの参照を削除パッチを削除ツール削除...空のフォルダを削除するリストから削除フック削除パッチを削除...次の参照を削除選択したチャンクを削除します選択したパッチを削除します履歴からこの問い合わせを削除するシェルフファイル %s を削除しますか?現在のシェルフファイルを削除します未バージョン管理のファイルを削除しますか?%d つのファイルを削除しました%d つのファイルと %d つのフォルダーを削除しました削除済み*ゴミ箱フォルダーを削除しています...削除失敗プッシュを拒否する説明変更後保存先ファイルはすでにあります保存先:ターゲット:コピーまたは名前変更の検出 - %s反映可能なリビジョンを検索%s へ反映可能なリビジョンを検索指定のURLにプッシュ(送信)する内容があるか確認名前変更およびコピーを検出します使用可能なマージ/差分ツール:コミットしていない変更が作業領域にあります。 続けるにはどれかを選んでください。 コミットしていない変更がありますメール送信するチェンジセットを決定中...ファイル差分差分フォント差分ツールバー差分と由来情報差分の内容差分は表示されません: ローカルとの差分(&L) (diff)親リビジョンとの差分1番目の親へのディレクトリ差分2番目の親へのディレクトリ差分ディレクトリ差分ディレクトリにファイルとして保存破棄 - ローカルの変更をバックアップせずに破棄するバックアウトメッセージを破棄してもよろしいですか?現在のコミットメッセージを破棄してもよろしいですか?作業領域の変更を破棄 (revert --all)ローカルの変更を破棄する (バックアップなし, -C/--clean)ローカルの変更を破棄する (バックアップなし, -f/--force)作業領域のコミットしていない変更を破棄しますか?リモートの未コミット変更内容の破棄(保存無し) (-C/--clean)閉鎖したブランチも表示名前付きブランチのみグラフ表示アクティブなブランチのみ表示ファイルを表示させる%(total)d 件中 %(count)d 件を表示中同期ツール差分ヘッダに日付を表示しないようにします。デフォルトでは無効。バックアップファイル (*.orig) を保存しない管理下にないフォルダーの上でメニューを表示しない(上書きするには shift + クリックをしてください)パス要素を除去しない(-p0)。SVNパッチに必要です作業領域を更新しないホスト証明書を検証しない本当にフェーズを低い方から高い方に逆行させますか?パッチキュー '%s' を有効化しますか?本当に %s ブックマークを無効化しますか?終了しますか?順番を変えるにはドラッグしてください名前の重複エンコーディング(&N)終了(&X)フォルダを開く(&X)フォルダを開く(&X)エクスポート(&X)パッチとして保存 (e&xport)...改行モード(&M)改行表示(&V)編集ファイルを開く無視フィルタの編集ローカルファイルをエディタで開く提供するパスを編集ツール編集...作業領域のファイルを編集ファイルを編集フック編集パッチが成功したファイルと失敗したファイルを編集しますか?リポジトリの無視フィルタの編集します解消済みファイルを編集GUIエディタの起動に失敗しましたメール送信DAG 範囲をメール送信...選択範囲をメール送信...From(送信者)として使用するメールアドレス。連携先リポジトリとの差分をメールするデバッグ出力する (--debug)オーバーレイハンドラーを有効化オーバーレイを有効化文字エンコーディング英語メッセージ行番号を入力 (1 〜 %d)リビジョンIDを入力してくださいエラー問題が起きました。サブリポジトリの読込中にエラーサブリポジトリのプレビューでエラー: %sエラー文字列 "%(arg0)s" at %(arg1)s
                                                                                                              設定を 編集 してくださいファイル書き込みエラー次を含まない:カスタムツール '%s' を実行終了衝突を解消せずに終了しますか?完了していない移植があるまま終了するのは望ましくありません。完了していないリベースがある状態で終了するのは望ましくありません。エクスプローラ設定DAG 範囲をエクスポート...差分をエクスポート...選択した部分をエクスポート...パッチをエクスポート拡張子エクステンションリポジトリの追加に失敗しましたサブリポジトリの追加に失敗コマンド実行失敗課題管理の読み込みに失敗しました '%s': %s課題管理の読み込みに失敗しました: '%s': %s ターミナルでパスを開けませんリポジトリを開けません失敗!Fetch - Fetch拡張を使う (プルした変更を自動でマージする)fetch - Fetch拡張を使う (フェッチが有効化されていません!)検索対象のフィールド:ファイルファイルの変更履歴・由来情報(&H)ファイル比較のログ表示列ファイルの変更履歴ファイル変更履歴のログ表示列ファイルリストツールバー変更点の確認ファイルの状態:ファイルがすでに存在しています変更が衝突しました。解消してください。バイナリファイルファイルが指定された最大サイズより大きいです 最大サイズ = %s KBおそらくバイナリファイルです(最大行数を超えています)ファイルや差分を表示しません: ファイルか差分が表示できません。: ファイルは最大サイズ設定より大きいです。 最大差分 = %s KBファイルパターン指定ファイル名ファイル大容量バイナリファイルととして追加する時の個々のファイルの最小サイズ(Mバイト)このファイルパターンに合致したファイルは自動的に大容量バイナリファイルとして追加されますリビジョンセットやブランチで履歴をフィルターフィルター:名前変更を検索検索 - %sフィールド検索元リビジョン:指定リビジョン群とフィールドの値が同じリビジョンの抽出。%s へ送信できるチェンジセットを確認中...完了指定リビジョン群の冒頭 n 個。 無指定時は 1。指定リビジョン群ないし作業領域の、第1親リビジョン群。通常のリビジョンフラグ:パッチを統合...コピーと名前変更を追跡チェンジログを表示するフォントの設定です。デフォルトは monospace の10ポイントです。コミットメッセージの表示に使われるフォントです。デフォルトはmonospaceの10ポイントです。コマンド出力メッセージを表示するフォントの設定です。デフォルトは sans の8ポイントです。差分表示に使われるフォントです。デフォルトはmonospaceの10ポイントです。フォントどのリビジョンでこのカスタムツールが有効になるか。 選択したリビジョンのコンテキストメニューでツールが表示されている時にのみ有効です。リポジトリタブを常に表示作業領域中の未コミット変更ごとマージを実施(-f/--force)作業領域の変更をそのままでパッチを適用 (--force)push や pull を強制 (安全確認を無効化 --force)反映先にヘッドが増える場合でも実施 (-f/--force)登録除外登録除外...GUI をフォーク進む取り込まれる %d 個の履歴が見つかりました%s から取り込めるチェンジセットがありますFromFrom:絶対パス表示LANGUAGEやLANG環境変数が英語ではない言語に設定されていたとしても、英語のコミットメッセージを作成します。この設定はマージ、タグ、バックアウトの各ダイアログで使われます。デフォルト値は無効です。%s から取り込めるチェンジセットがあるか確認中...Git拡張形式git パッチはバイナリファイルに対する様々な変更を取り扱うことが可能な一方で、受け取り側が git または Mercurial を使用していない場合はそれを取り扱うことができません。グロブユーザ設定GnuPG移動指定行へ移動指定のリビジョンに移動現在のリビジョンへ移動共通の祖先に移動指定のリビジョンに移動移植 (graft)移植 (graft) - %s選択リビジョンをローカルへ移植...移植が中止されました移植元リビジョン移植元リビジョン #%d (全 %d)移植が失敗しました移植でマージ衝突しました。解消してください。移植を完了しました移植 (graft):グラフマージ衝突を解決するためのGUIマージプログラムです。もし指定がない場合、Mercurialはシステムで最初に見つけたアプリケーションか衝突マークがある場所にインストールされているマージツールを使います。Mercurialの内部ツールを使う場合は internal:merge を、ローカルか他のリポジトリの変更かを毎回選びたい場合は internal:prompt を、手動でマージするために作業領域にファイルを残しておきたい場合は internal:dump を選択してください。2つのリビジョンに共通な最新の祖先。ギリシャ語ガード: %d/%d名前変更の推定gzip 圧縮の tar アーカイブHTTPエラー: %d (%s)ヘッドが閉じています!ヘブライ語Hg コマンド:Hg ファイルログビューアー [%s] - %sMercurial パッチ(export コマンドで生成される)は多くのパッチプログラムとの互換性があります。それらは最も重要なチェンジセットのメタデータを含みます。詳細を隠す非表示タグリポジトリ外のコンテキストメニューを隠すトレイアイコンの点滅フックタイプフックホスト名プロキシサーバのホスト名とポート番号。例: "myproxy:8000"メールサーバのホスト名送信者自信をメールサーバが識別するために使うホスト名。複数行の出力の際に何行ごとに異なる色の行を入れるかを指定。デフォルトでは1で、0にすると無効になります。アイコンアイコンもしまだ問題があれば、バグレポートを作成してください無視 空行を無視空白文字数の無視空白文字を無視大文字小文字を区別しない差分表示時に、空白スペースの量を無視します。デフォルト値は無効です。差分表示時に、変更が空白行である場合に無視します。デフォルト値は無効です。無視ファイルフィルタ - %s差分表示時に、行の差分を比較する時に空白を無視します。デフォルト値は無効です。無視*即時実行コマンドインポート - %sクリップボードからインポート&MQ へインポート (qimport)現在のリビジョンから(&C)由来リビジョンから(&O)全履歴から(&H)ファイル内から(&F)In-Reply-To:親リビジョンまでたどるパッチキューも含む次を含む:%s からの取り込めるチェンジセットの確認が中断されました。 %dIniparseをインストールしてください。iniparse パッケージがありません初期リビジョンインラインタグ%s への新しいガードの設定 :アクセス権限が十分ではありません。読み込み専用モードに戻しますアクセス権限が足りません中断されました移植が中断されています。設定が不正です - レビューボードのユーザー名を設定して下さい設定が不正です - レビューボードサーバーが設定されていません不正なコマンドです日付の形式が不正です無効な glob です無効な正規表現です課題へのリンク課題の正規表現課題管理課題管理プラグイン課題管理プラグインのエラー課題管理トリガー課題管理以下のリポジトリ内のサブリポジトリを全て開くことはできませんでした。

                                                                                                              %s

                                                                                                              以下のサブリポジトリは失われたか、壊れたか、あるいは状態がおかしくなっており、アクセスできません。

                                                                                                              %sレポジトリ:

                                                                                                              %s 内のサブリポジトリリストを開けませんでした斜体日本語パッチファイルを保存する鍵 ID鍵:キーワード検索既知の問題リビジョン:既知の正常なリビジョン:韓国語大容量ファイル左ツールバーライセンス"keyword(string)" と同じ内容を正規表現で検索。行全てのツール更新したファイルを表示 (--verbose)すべてのリビジョンを読み込む(&A)リポジトリ %s を読み込んでいますローカルホスト名ローカルパスローカルパス:ローカルリポジトリ %sローカルのみローカルのリビジョン情報ローカルな署名ローカルタグ場所:ロック中*ログログ読み込み件数長めの要約行MMQ オプション(&O)MQ Gitフォーマット適用全て適用MQのオプションMQパッチを(draftの代わりに)Secretに設定します。デフォルトでは無効です。Mercurial 1.7 互換のリポジトリを作成HTTPS接続と認証の設定課題へのリンクを必須にする失敗箇所を手修正しますか?衝突未解消に設定(&U)このチャンクを衝突解消済みと印をつけ、次の未解消のチャンクに移動するこのチャンクを衝突未解消と印を付けるこのファイルを衝突解消済み状態に設定このファイルを衝突未解消状態に設定する発見した文字%d つのリビジョンのどちらか最大変更数最大差分サイズ最大ファイル数チェンジログで表示する最大チェンジセット数。デフォルト: 10各チェンジセットで表示する最大ファイル数。デフォルト: 10指定リビジョン中の、子リビジョンを持たないリビジョン群。メニューの振る舞いMercurial で解消(&S)Mercurial ユーザMercurialのコマンドがまだ実行中です。 本当に終了しますか?Mercurialのkeyring拡張が有効です。パスワードはプラットフォームに依存する安全な方法で保存されますMercurialはエディターを見つけられませんでした。あなたのシステムにインストールされているエディターを使うようにMercurialを設定してください。マージマージ - %sマージ - ローカルの変更とのマージを試みるマージによるファイルの衝突マージしたチェンジセットマージ元 (他のリビジョン)マージリビジョンが指定されていないか存在しませんマージ先 (作業領域)選択したマージツールでのマージ%s とマージマージ中...メッセージメッセージフォントメッセージの翻訳失敗メーラのスレッド表示で使用されるメッセージIDメールサーバ接続における TLS 接続の有無 / 方式の指定。最小類似度: %d%%最小サイズ情報が足りません履歴を修正(&F)リポジトリの変更監視作業領域の変更を監視移動すべてのファイルを左に移動すべてのファイルを右に移動選択したチャンクを左に移動選択したチャンクを右に移動選択したファイルを左に移動選択したファイルを右に移動タグ %s をチェンジセット %s に (チェンジセット%sから) 移動しました名前コミットに結びつける名前です。共通フォーマットは
                                                                                                              Full Name <email@example.com>
                                                                                                              です。このリポジトリの管理者の名前もしくはメールアドレス。名前付きブランチ「%s」は既に存在します (最終リビジョンは %d) グループを追加(&G)新しいウィンドウ(&W)新規ブランチ: コミットの初期フェーズグループを追加新しいブックマーク名:リポジトリを作成新しいシェルフツール追加...新しいファイルが作成されましたフック追加新しいパッチメッセージ:作成するパッチキューの名前新しいシェルフを作成しました次へ次の差分次の差分日付を非表示適切なファイルがありませんバックアップなし (-n/--nobackup)ブランチを変更しないもうチャンクはありませんコミットしない削除可能なチャンクはありません差分ツールが見つかりませんエディタが見つかりませんローカルとの差分なにもファイルが選択されていませんこの操作が可能なファイルが見つかりませんファイルが選択されていません見つかりませんでしたホストの有効性を確認しないが、暗号化はする(悪い)無視対象のファイルはありません%s から取り込めるチェンジセットはありませんコミットメッセージの中に課題へのリンクがありません。コミットメッセージに課題へのリンクが必要です。これは設定の'課題管理'から変更できます。表示する項目がありません見つかりませんでしたマージ衝突なし。コミット可能。変更されたファイルが選択されていません実行可能な操作がありません送信確認するチェンジセットがありません%s に送信できるチェンジセットはありません保留中の Perforce 変更リストはありません反映先のURLかパスが設定されていませんリポジトリがありませんシェルが設定されていません元に戻せる変更がありませんゴミ箱にファイルはありません不明なファイルはありませんユーザー名が設定されていませんこのリポジトリには、デフォルトの反映先リポジトリURLかパスが設定されていません。

                                                                                                              同期ウィジェットで反映先リポジトリパスを入力し、保存してください。GUI 差分ツールが見つかりませんでしたGUI エディタが設定されていませんなにもしない - 単にチェンジセットをプルします北欧改行文字を LF または CRLF に正規化します。"strict" は正規化しません。ファイルごとに改行文字を検出する "auto" が推奨設定です。デフォルトは "strict" です。Mercurialのサブリポジトリではありません。プレビューできませんHEAD リビジョンではありません!ヘッドに居ないため、バックアウト後に新しいヘッドができます!コミットなし変更はありません。インポートするパッチがありません反映対象がありませんOK廃止状態:repowidgetでの表示これからプッシュするチェンジセットは新しいブランチを作成します。連携先に新しいブランチを作成しますか?削除したファイルのみを想定このリビジョンで更新・作成されたファイルのみ圧縮後開く端末を開く(&T)サブリポジトリを開く(&U)新しくブランチを開始するリポジトリのトップで、シェルターミナルを開きます選択したフォルダーで端末を開きます。問い合わせエディターを開く新しいタブで全てのリポジトリを開きますhgweb設定を開く新規タブを現在の タブの隣に開くシェルフツールを開くファイルブラウザでリポジトリを開きます新しいタブでリポジトリを開きます選択したフォルダをシステムのファイルマネージャーで表示します選択したサブリポジトリを開く操作中断:

                                                                                                              %(arg0)s任意。プロキシサーバを使用しないホスト名をカンマ区切りで指定。任意。メールを送信する方法。設定値が"smtp"(デフォルト)の場合はSMTP(下で設定可能)が使用されます。もしくはsendmailのようなメール送信プログラムの名前を指定することもできます("-f" オプションで送信者と宛先メールアドレスの一覧、本文は標準入力)。その場合、通常は "sendmail" や "/usr/sbin/sendmail" で大丈夫なはずです。任意。プロキシサーバの認証に必要なパスワード。任意。プロキシサーバの認証に必要なユーザ名。オプションオプション:あるいは:.hgsubの順にあるサブリポジトリの順元の親:他のリビジョン情報送信確認を中断しました: %d%s への送信確認が中断されました: %dコマンド出力フォントアイコンオーバーレイ反映 (p&ush)親リビジョン1:親リビジョン2:親リビジョン:親リビジョンパスワードメールサーバの認証に使用するパスワードレビューボードの認証に使うパスワードパスワード:ファイル名を貼り付け(&F)パッチブランチツールバーパッチ改行文字パッチファイル (*.patch)パッチ名が必要ですMQパッチキュー アクションツールバーパッチの日付:パッチをエクスポートしましたパッチ適用失敗パッチファイル (*.diff *.patch)パッチファイルがすでに存在していますパッチの統合 - %sパッチメッセージ:パッチ名:一連のパッチに関する説明は [PATCH 0 of N] というタイトルで最初に送信されます。そのため送信するパッチ全体を説明する内容である必要があります。バンドルを送信する場合はメールタイトルと本文になります。メッセージヘッダに挿入されるフラグはカンマ区切りのタグ名で指定します。パッチ作成者:パッチ:パッチ: %sパッチをエクスポートしました統合するパッチパスパス編集ツールバーレビューボードへのパス (例: "http://demo.reviewboard.org")大容量ファイルのユーザが持つキャッシュを保存するディレクトリへのパスを設定してください。パス:リポジトリで設定されているパス:パターン保留中の Perforce 変更リスト - %sPerforce:更新の前にプッシュするフェーズプレーンテキスト (Mercurial ヘッダなし)GUI エディタを設定してくださいユーザー名を入力してくださいコミットメッセージを入力してくださいバグを バグトラッカー へ報告しましょう続ける前に URL を正しく設定してください。ファイルをマージしている間しばらくお待ち下さい。打ち消しが終わるまでしばらくお待ち下さいファイルが開くまでしばらくお待ちください...しばらくお待ち下さい…適用解除すべてを適用解除ポート番号メールサーバに接続するときのポート番号。デフォルトでは25。サーバ待ち受けポート番号ポート:レビューを投稿(&R)プル後の処理プル後の処理: レビューを投稿選択した部分をレビューボードに投稿...レビューボードに投稿 (postre&view)...バックアウトの準備マージの準備.hgで始まるファイルを削除しない前へプレビュープレビュー:前の差分前の差分プロキシ今すぐリクエストを公開するプル%s からのプル(取り込み)が中断されました。 %d%s からのプル(取り込み)を完了しました変更を取り込む%s から変更を取り込む指定したURLからプルする(取り込む)プル (取り込み対象のチェンジセットをあなたのリポジトリに取り込みます)ここにプル...%s からプル(取り込み)中...完全に削除キューを完全に削除履歴を反映 (pus&h)全て反映(&A)コミット後にプッシュコミット後にプッシュSSL プッシュ選択したブランチを反映(&B)全てをプッシュ現ブランチをプッシュ (%s)変更を反映%s へ変更を反映指定のURLにプッシュ(送信)%s への送信が中断されました%s への送信が中断されました: %d%s への送信が完了しましたここまで反映(&H)リモートリポジトリへプッシュしてもよろしいですか? %s現リビジョンまでプッシュ (#%d)リビジョン #%d までプッシュ%s に送信中...パッチ作成パッチ更新クエリー終了リポジトリ一覧のオプション(&E)元に戻す (r&ollback)...マニュアルが設定されていません修復 (re&cover)削除(&M)一覧から削除(&M)名前変更(&N)パッチ名を変更 (qre&name)...名前変更 (re&name)...読み取り専用*削除できますリベースリベース - %sリベース - プルした変更の上にローカルコミットをリベースしますリベース - リベース拡張を使う (リベース拡張が無効です!)<リベースが中断しましたリベースは既に実行中です。リベース対象のリビジョンとその子孫リベースが失敗しましたリベースでマージ衝突しました。 解消してください。リベースが完了しました移動 (rebase)...サブリポジトリを含むサブリポジトリも巡回 (--subrepos)不必要な認証情報再読み込みタスクタブを更新(&T)再読み込みツールバー現行のパッチを更新現在のリポジトリを再読み込みファイルリストを更新現在のタスクタブのみ更新リポジトリ一覧を更新します正規表現正規表現:正規表現検索パターン取り込み対象のチェンジセットを却下します関連パス:再読み込み再読み込みサブリポジトリを削除(&V)...リモートコマンド:削除すべての選択したファイルを削除(&A)未変更のファイルを削除(&U)削除...URLから認証情報(パスワード等)を削除する現在作業中のリビジョンを取り除きますか?ファイルをバージョン管理から削除しますフィルタをクリアしてルートを表示次のパッチディレクトリを削除キューからパッチを除外しますか?削除されたファイルを登録除外しますか?%s タグを削除名前の変更名前の変更 - %s名前の変更エラー名前の変更...パッチ名を変更キュー名を変更ファイルまたはフォルダ名の変更パッチ %s の新しい名前:'%s'の名前を以下に変更パッチ名を変更...エントリー名を変更最後に閉じたタブを開く最後に閉じたタブグループを開く置換既存のフックを置き換え?既存のタグを置換 (-f/--force)すでにあるパッチファイルを置き換える ファイルごとにマッチした最初の行のみ表示リポジトリリポジトリリポジトリエラーリポジトリ ID:リポジトリ一覧リポジトリ一覧の更新完了リポジトリ設定リポジトリのコマンドがまだ動作していますリポジトリはロックされていますこのウェブサーバで使うリポジトリ名とTortoiseHgが使う短い名前。初期設定は作業領域。リポジトリがローカルではありません作業ツリーの状態と変更点を表示しますマージ衝突を解消 - %s衝突解消済みブランチを切り直し(&B)再マージ (mer&ge)指定ツールで再マージ(&W)以下の変更を有効にするために、すべての TortoiseHg アプリケーションを再起動してください:リベースの再開は既に実行中です。リビジョン復旧復旧 - %sファイルの復旧(revert)...すべてのファイルの変更を復旧しますか?すべてのファイルの変更を取り消して、このリビジョンに復旧する作業領域での変更をすべて復旧しますか?変更を元に戻しますこのリビジョンの内容にファイルを復旧するファイルをローカルまたは他の親リビジョンの状態に復旧しますか?ローカルのファイル変更を復旧しますか?これらのファイルを復旧しますか?このリビジョンへ復旧すべてのファイルを復旧すると変更は破棄され、影響があるファイルは変更状態のままになります。

                                                                                                              本当に復旧しますか?

                                                                                                              (別のリビジョンをチェックアウトするには「更新」を使ってください)p4チェンジリスト復旧しています...レビューボードレビュー ID:レビューの下書きを %s に投稿しました レビューを %s で公開しました リビジョンリビジョン #%d (%s) を

                                                                                                              %s%s%s

                                                                                                              にエクスポートしましたリビジョンの詳細(&D)リビジョンセットリビジョン指定のための問い合わせ言語リビジョンは以下の変更:リビジョンは問題あり(&B)リビジョンは問題なし(&G)検索元のリビジョン:リビジョン:検索元のリビジョン:右ツールバーリビジョン %d にコミットを巻き戻すリビジョン %d に巻き戻しますか? (%sを取り消す)%s にて動作中実行中...ロシア語同期ツールバー(&Y)同期(&Y)SMTP ホスト名SMTP パスワードSMTP ポート番号SMTP TLS 設定SMTP ユーザ名SSH コマンドSSLエラー: %sSSL: サーバー証明書の確認が失敗しましたSSL: 不明なエラー %s:%s保存全体に保存終了時に開いているリポジトリを保存(&X)パスを保存編集する前に変更を保存しますか?このURLをエイリアスをつけて保存バグ報告の保存このリビジョン時点でのファイルを保存ファイルに保存hgweb設定を保存レポに保存検索リポジトリ検索選択した文字列を検索検出はすでに動作中ですコミットログ、ユーザ名、修正ファイルの名前を文字列で検索。正規表現でリポジトリ全体を検索します全履歴を検索(&H)検索中検索中...指定リビジョン群ないし作業領域の、第2親リビジョン群。MQパッチをSecretに安全なHTTPS接続セキュリティセキュリティ: すべてを選択(&A)選択解除(&N)保存先ファイルの選択保存先フォルダの選択パッチがあるディレクトリを指定して下さいリポジトリを選択元ファイルの選択クローン元ツール選択:編集する場所を選択して下さい:サブリポジトリとして追加する、今あるリポジトリを選択してくださいマージコミットのブランチを選択バンドルファイルを指定クローン先リポジトリを選んでくださいパッチフォルダーを選んでくださいパッチを指定して下さいこのリポジトリでのプル後の処理を選んでくださいディレクトリを選択してリポジトリを追加ディレクトリを選択してリポジトリを開くクローン元リポジトリを選んでくださいリポジトリを開いた時に選択されるリビジョンを指定します。選択肢は"current"(作業領域の親)、"tip"、"workingdir"(作業領域)です。デフォルトは"current"です。リポジトリを開いた時に最初に表示されるウィジェットを設定します。デフォルトではリビジョン詳細が開きます。プッシュボタンを押した時にデフォルトでプッシュするリビジョンを選択します。
                                                                                                              • all: デフォルトです。すべてのブランチの変更をプッ シュします。
                                                                                                              • branch: 現在のブランチの変更をプッシュし ます。
                                                                                                              • revision: 現在のブランチの現在のリビジョンまで をプッシュします。

                                                                                                              デフォルトはallです。編集する場所をツールバーかメニューかを選んで下さい選択したチェンジセットのペアは関連がありませんメール送信(&E)Mercurialのパッチとして送信単一のバイナリファイル(パッチではない)メール送信中サーバーサーバーリポジトリIDサーバーガードを設定(&G)...祖先指定日時を設定:論理式ユーザー名を設定:設定(&G)設定設定ファイル:文字列が欠けた可能性があります。いくつかのアイコンは TortoiseSVN と Tango から無料提供されています。リポジトリ一覧を表示(&O)シェルフシェルフを空にしましたシェルフを削除しましたシェルフ: %sシェルシェルフ - ローカルの変更をパッチに移動します現在のタブの隣に新しいタブを開きたいですか? もし無効であれば、新しいタブは最後のタブの後に開かれます。デフォルトは有効です。ユーザ名を表示(&A)日付を表示(&D)パッチキューを表示(&P)パスを表示(&P)リビジョン番号を表示(&R)バージョン情報を表示します詳細を表示関数名の表示トレイアイコンの表示課題を表示課題を表示...ログを見る出力ログの表示リビジョンの詳細を表示(&D)短いパス名で表示(&H)ダイアログタイトルにルートディレクトリ名の代わりに絶対パスを表示します。デフォルトでは無効です。全て表示最初の親からの変更を表示二番目の親からの変更を表示このリビジョンで変更されたファイルを表示コミットメッセージの最初にタグを表示します。選択したファイルの履歴を表示するどの関数が変更されたのかを表示する。デフォルトで無効。不可視状態のリビジョンを表示・非表示署名(&N)...署名 - %s署名ファイルが変更されていても署名 (-f/--force)署名しましたWorkbenchウィンドウを 一つだけにするサイズサイズ (KB)最後の確認ページをスキップし、コミットの後にウィンドウを閉じます。読めないため、 %s をスキップします。選択した中でサイズが10MB以上のファイルがあります。これらのファイルを大容量ファイル(largefile)として追加すると、最新のファイルだけをローカルのリポジトリにおき、古いリビジョンはサーバに置かれます。これにより、ディスク容量を効率的に使えます。これらのファイルを大容量ファイル(largefile)として追加しますか?名前で並び替え(&N)パスで並び替え(&P)key でソート。デフォルトでは昇順、"-key" で降順。フルパスでグループを並び替え短い名前でグループを並び替え元ファイルソース:南東欧南欧ユーザーの操作抜きですぐに実行して欲しいシェルのコマンドです。空白で区切られたリストで入力してください。コマンドは "add remove revert forget" です。 デフォルトは なし(空白のまま)です新しいシェルフの名前を指定してくださいTortoiseHgのさまざまなウィンドウでタブを表示する場合に使う空白の数です。デフォルト値は8です。Mercurial設定ファイルの [merge-tools] セクションに記述されている GUI 差分表示ツール名を指定。未設定の場合、TortoiseHg はマージツールを差分表示に使用します。マージツールも設定されていない場合は最初に見つかったツールが使用されます。使用する言語を指定します (設定後にWorkbenchの再起動が必要です)起動新しいパッチブランチを始める指定リビジョンから:リポジトリのウェブサーバを起動します状態状態ステータスファイルリストツールバー状態:中止現在の操作を中断する停止リビジョンの削除 - %s削除:ストライプ表示ユーザー名や親チェンジセット情報などの Mecurial のヘッダを取り除きます。受取人が Mercurial を使用していない場合やヘッダを見る必要がないときに便利です。テーマサブメニューとして表示:件名:p4チェンジリストをサブミット中...サブリポジトリが.hgsubファイルを追加しましたリポジトリからサブリポジトリが取り除かれました。サブリポジトリの状態:サブリポジトリの状態サブリポジトリは変更されていません。サブリポジトリがすでに存在しています作業領域にサブリポジトリが見つかりません。Subversion:成功コミットメッセージの一行の長さを示します。赤い縦の線がこの長さに表示します。CTRL-Eで、現在の段落を指定した長さで折り返します。デフォルトは80です。サマリー(コミットログの最初の行)要約行文字数要約:リベース元と先を入れ替え同期同期ツールドラッグされたリポジトリと同期します他のリポジトリと同期します構文強調表示システムキャッシュタブ文字の幅タグ '%s' を追加しました'%s' タグを移動しました'%s' タグを削除しましたタグ - %sタグ:タグリビジョン:タグ:他バージョンを使う(&O)bzip2 を使用した tar アーカイブgzip を使用した tar アーカイブtar アーカイブターゲットグループ対象:タスクタブタスクツールバーの 順番タスクバーHTTP プロキシの設定を一時的に無効化このダイアログを閉じると一時ファイルが削除されますユーザーによって中断されましたこのリビジョンをテストし、発見したものを報告する(good/bad/skip)文字列の翻訳に失敗テキストファイル (*.txt)リポジトリの目的または内容に関する説明文。タイ語.hgsubファイルにもう同じ行があります:

                                                                                                              %sリビジョン %s からの変更と、マージされていないすべての親が破棄されます。 本当によろしいですか?コマンド「%s」が実行できませんでした。実行するコマンド。 Python 関数を実行する場合は「python:」を先頭に追加してください。 レビューボードサーバーでの、このリポジトリのリポジトリID保存先のファイル「%s」は既に存在します!保存先のフォルダ「%s」は既に存在します!保存先ファイルこのリポジトリツリーの中になくてはいけませんディレクトリ「%s」に何かあります! 上書きしますか?例外エラーメッセージは以下のとおりです:

                                                                                                              %s

                                                                                                              "%s" は既に存在しています! このファイルを上書きしますか?以下のエラーメッセージが返されました: "%s" コマンドパスが正しいことと、正しいアプリケーションであることを確認してください。フック名に空白・タブ・「=」は使えません。TortoiseHg がチェンジログビューア、ステータスダイアログ、コミットツールで表示する最大ファイルサイズ(KB単位)を指定。0が指定された場合は無制限となります。デフォルトでは1024(1MB)です。指定したブックマーク対象、ないし全ブックマーク対象。指定タグ対象リビジョン、ないしタグ付け対象の全リビジョン群。1回の処理で何件のチェンジセットを読み込んで表示するか。デフォルトでは500件。新しいコミットの初期フェーズです。デフォルトではdraftです。選択したコマンドは空です選択した以下のリポジトリが開けません :

                                                                                                              %s

                                                                                                              選択したリビジョン (%s) には "%s" と呼ばれるブックマークがあります

                                                                                                              このブックマークを有効化しますか?
                                                                                                              このプロンプトは 設定->ワークベンチ->ブックマークを有効化 で無効化できます選択したサブリポジトリ:

                                                                                                              %s



                                                                                                              %s

                                                                                                              リポジトリの.hgsubファイルに追加されました。サブリポジトリの追加を完了するには、 まだコミットが必要です。.hgsubファイルの変更をコミットしてください。指定リビジョン群ないし作業領域の、 全親リビジョン群。元ファイルはこのリポジトリツリーの中になくてはいけませんサブリポジトリに変更があります。ツールのアイコンです。 正しいTortoiseHgのアイコン名を指定することで、TortoiseHg内蔵のアイコンを使えます (例: clone、add、remove、sync、thg-logo、hg-update等)。 また、ファイルシステム上の絶対パスを入力することで好きなアイコンを表示できます。repowidgetのコンテキストメニューに表示されるラベルです。 ラベルが設定されていない場合、ツール名がラベルとして使われます。 tooltipが設定されていない場合、このラベルはtooltipとしても使われます。ツール名には空白を含めないで下さい。ツール名。空白が含まれていてはいけませんツールボタンの上に表示されるtooltipです。 これはworkbenchツールバーにあるツールボタンでのみ表示されます。作業領域は既にマージされています続けるかマージを破棄してください。リビジョン %d (%s)へのパッチファイルは選択した場所(%s)にすでにあります マージ衝突を解消してください衝突しているマージはありませんローカルとの間に変更点はありませんでした。名前が変更されたファイルはおそらくありません同じ名前のフォルダーが既にあります%s.%s というフックは既にあります。 置き換えますか?元に戻せる変更がありませんThg - Mercurial SCM(Hg) のための TortoiseHgによるGUIツール バイナリファイルと思われます。このエラーはワークベンチを再起動するまで再表示されません。3-way マージツールタイトルToマージを完了するには作業領域でコミットが必要です。 マージの親リビジョンのうちのどれかに更新すると、マージをキャンセルできます。移植先リベース先To:検索バーを表示/非表示適合しないチェンジセットも表示する/しない の切り替え移植関係の表示を切り替え比較元の親リビジョンを切り替え衝突しない作業領域中の変更を許容 (--keep-changes)ツールで解消(&R)ラベルツールの起動に失敗しましたツール名カスタムツール選択した場所に表示するツールTooltipトップメニューとして表示:TortoiseHgバグ報告TortoiseHg コマンドダイアログTortoiseHg コミットTortoiseHg フロントエンド (バージョン %s), Mercurial (バージョン %s) TortoiseHg エラーTortoiseHg 新しいシェルフ名TortoiseHg オーバーレイアイコンサーバTortoiseHgプロンプトTortoiseHg 検索TortoiseHg 設定TortoiseHg シェルフ - %sTortoiseHg ウェブサーバーTortoiseHg WorkbenchTortoiseHgは新しく .hgignore ファイルを作成しました。このファイルをリポジトリ管理下に追加しますか?繁体中国語移植元:リビジョン指定問い合わせを実行リポジトリを更新してくださいトルコ語タイプUI 言語URLURLエラー: %sウクライナ語バックアウト失敗履歴を圧縮できませんMercurial.ini ファイルを作成できませんでした設定ファイルを作れません%d つのファイルかフォルダーを削除できませんでした保留中の変更リストを決定できません作業領域のリビジョンを特定できません チェンジセットを見つかりませんマージできませんでしたチャンクをマージできませんp4pendingの出力結果を解析できませんでしたファイルの読み込みに失敗リポジトリの状態を読み込めません取り除けませんURLを削除できませんファイル %s を取り除けません。 権限がありませんコミット後にプッシュの保存失敗URLを保存できません証明情報を保存できません自動的に追加の保存失敗プル後の処理を保存できませんサブリポジトリも巡回の保存失敗ユーザー名を保存できませんサブリポジトリのファイルを表示できません以下のコマンドの起動に失敗しました:入力をローカルのエンコーディングに変換できませんリポジトリ名を更新できません.hgignoreファイルに書き込めません設定ファイルに書き込めません差分ファイルを書き込めませんファイルの書き込みに失敗全てのパッチを適用解除一つのパッチを適用解除バンドルファイルの適用チェックを外す選択をすべて解除未コミットマージ - 親リビジョンを選択してください無圧縮の tar アーカイブ無圧縮の zip アーカイブ下線閉じた他のタブを開く閉じたタブを開く直前のコミットを取り消しますか?最後の操作を取り消しますか?ファイルの変更はそのままに、直前のコミット(%d)を取り消しますか?Unicode簡体中国語不明なリビジョンです衝突未解消未解消の衝突があります。本当に終了しますか?保存されていない変更が破棄されます。 本当に再読み込みしてもよろしいですか?未サポートなリポジトリ形式です (%s)バージョン管理外更新更新 - %s更新 - プルしてから更新しますアイコンの更新レビューを更新アイコンオーバーレイを更新しますサブリポジトリのパスを更新更新先:作業ツリーを指定リビジョンに更新します作業領域の内容更新またはリビジョンの切り替え特定のリビジョンへ更新...リポジトリ一覧を更新中新しいバージョンの TortoiseHg へアップグレードすることを推奨します。英語メッセージを使用する英語のコミットメッセージを使用するコンパクト表示現時刻を使うカスタムコミットメッセージを使用する:git 拡張形式を使うgit 拡張差分ヘッダ形式を使用する。デフォルトで無効。プロキシサーバーを使用するメタデータのコピーにプル操作のプロトコルを使用するユーザー名ユーザー認証情報ユーザーキャッシュユーザーの認証情報は、セキュリティダイアログでホスト名と結びつける必要がありますレビューボードの認証に使うユーザー名ユーザー:ユーザ名メールサーバの認証に使用するユーザ名打ち消し対象のリビジョンと作業領域の状態を確認してください。マージ対象を確認し、作業領域がクリーンな状態なことを確実にしてください認証局の証明書を使って有効性を確認(一番良い)保存されているホストのフィンガープリントを使って有効性を確認(良い)ファイルを開く(&E)ベトナム語ファイルを表示他を表示(&T)unified diff形式で表示リポジトリの変更履歴を表示します選択中のファイルの変更履歴を表示変更点をファイル内で表示外部差分ツールで現在のリビジョンに対する差分を表示する変更点を GUI 差分ツールで表示しますこのリビジョン時点でのファイルを開く外部差分ツールを使ってファイルの変更を見るリポジトリの設定を開きますGUI 差分の表示GUI 差分表示ツールGUI 差分表示...GUI 差分表示 - GUI エディタ解消済みファイルと最初の親リビジョンとの差分解消済みファイルと二番目の親との差分GUI 差分表示...Visual Diffはサブリポジトリーのファイルには対応していません。これらのファイルは表示されません。GUI 3-way Diff警告警告: すべての Tortoise に影響します。変更の後ログオフする必要があります。ウェブサーバーウェブサーバー設定西欧どうしますか? 有効の場合、コマンド実行時に出力ログが自動で表示されます。初期設定は無効です。リポジトリへのプッシュを許可するユーザ名の一覧。空欄または未設定の場合はプッシュは許可されません。"*" の場合は認証されてないユーザも含めて誰でもプッシュ可能となります。ユーザ名をカンマ区切り(空白文字でも可)で指定された場合は、そのユーザは認証が必要となります。allow_push 一覧は deny_push 一覧の後に適用されます。リポジトリへのプッシュを拒否するユーザ名の一覧。空欄または未設定の場合はプッシュは拒否されません。"*" の場合は全てのユーザがプッシュを拒否されます。それ以外の場合、未認証ユーザは全て拒否され、認証ユーザについてもここにユーザ名をカンマ区切り(空白文字でも可)で指定された場合は拒否されます。deny_push 一覧は allow_push 一覧の前に適用されます。プッシュする際、パスワードの傍受を防ぐために SSL を使った通信を強制するどのテンプレートをテーマとして使用するか。空白文字(&S)パッチキューを使う (--mq)ワークベンチワークベンチのログ作業領域作業領域作業領域 (マージ)作業領域作業領域がクリーンでありません! 変更を見る...作業領域の状態先頭から再検索バンドルを書く差分をファイルに書き込む一連のパッチ(バンドル)の説明を書くリビジョン %d のフェーズを "%s" から "%s" へと変更させようとしています。 しかし、 "%s" は "%s" よりも低いレベルのフェーズです。 フェーズを逆行させることはお勧めできません。 例えば、サーバーにすでにプッシュしているリビジョンを変えようとした場合複数のヘッドが作成されます。 危険性を十分に理解してください!最新情報はこちら指定されたURLにはそのホストに対する認証情報(パスワード等)が埋め込まれています。URLから認証情報を削除しますか?選択したファイルのうち一つか複数のファイルが変更済みです。デフォルトでは、これらのファイルは削除されません。どうしますか?再読み込みする必要があります移植を開始できます圧縮できます移植できますリベースできますパッチ名を入力して下さいMercurialにあなた自身の情報を入力してください移植にはリビジョンを指定する必要があります移動元と移動先を指定する必要がありますファイルに対するパスを指定する必要があります実行するコマンドを設定して下さい。ツール名を設定して下さい。正しいフックタイプを指定して下さい。TortoiseHg の最新版をお使いです。現在作業中のリビジョン (%d) はこの巻き戻し操作によって破棄され、コミッ トしていない変更はそのまま残されます。 続けますか?deflate で圧縮した zip アーカイブZip アーカイブ[終了値: %d][警告] 無効なサブリポジトリのリビジョンID: %s [コマンドが成功しました %s][コマンドが中断されました %s][コマンドの返り値 %d %%s][ユーザによって終了されました %s][存在しません][オリジナル][作業領域]送信するリビジョン中止: 中止: %s 中止: %s! コミットstatusコマンドの出力を本文にする追加Subversionから変換された全リビジョン群常にダイアログプロセスを生成する添付基本的なコマンド: 本文ブックマーク: ブランチ: プレビューするバンドルファイル"%s" ファイルが読み込めません。 チェンジセット %d:%s差分表示ツールで表示するチェンジセットチェンジセット: %sクリーン指定ブランチのみを複製経過時間作成者ブランチ変更変換元説明ファイル名グラフ直近のタグ現地時間ノードフェーズリビジョンタグUTC時間コマンドの解釈時エラー: %sコミットデフォルト差分情報リビジョンを強制的に削除し、未コミット変更内容を破棄(保存無し)ヘルプを表示して終了するバックアップ作成の抑止(非推奨)ダイアログプロセスを起動しない追加情報を出力するeol エクステンションは win32text エクステンションと競合しますコマンド実行中にエラーが起きました 実行権限を設定実行権限を解除コマンドの開始に失敗しました 初期化時にフォーカスを与えるフィールドファイルが削除されました。更新しますファイルが変更されました。更新しますファイルすべて解除読み込み中 (%d)フィルターユーザ設定:grep: %s grep: 不正なパターンです: %s hgsubversion エクステンションは perfarce エクステンションと競合しますヒント:ヒント: 履歴検索で大文字小文字を無視する無視MQ にインポートする未来複製対象に含めるリビジョン最初の検索パターン本文埋め込みinotify エクステンションはこのプラットフォームではサポートされていません引数が正しくありません行番号が不正: %s元ブランチ名を維持元リビジョンを維持GUI 差分表示ツールを起動するコマンド一覧: ローカルlsprof がインストールされていません - http://codespeak.net/svn/user/arigo/hack/misc/lsprof/ローカルタグとして作成打ち消しリビジョンを現親リビジョンとマージメール送信方法紛失変更スタイルには 'type' が必須ですリポジトリの指定は必須ですhgweb 設定ファイル名 (非推奨)hgweb 設定ファイル名 (複数のリポジトリを公開)コマンドが定義されていません ガードはありません見つかりません: %s反映候補リビジョンがありません現ブランチ(%s)に反映候補リビジョンがありません / 全 %d 件現リビジョン(#%d)までに反映候補リビジョンがありません / 全 %d 件リビジョン #%d までに反映候補リビジョンがありません / 全 %d 件以下にリポジトリはありません: 渡されたパスをシェルに通知するたった今新しいworkbenchウィンドウを開く開く…オプション: 打ち消しリビジョンとのマージ対象 (非推奨)パスワード: perfarce エクステンションは hgsubversion エクステンションと競合しますコマンドの実行時プロファイルを出力ライセンス文書を表示pull: %s push: %sファイルリストをファイルから読み込むUTF-8でファイルリストを読み込む指定リビジョンからの移動移動先リビジョン日付をコミット日時として記録するユーザをコミッタとして記録するタグの削除ステータスキャッシュを削除する作業領域のファイルを削除削除既存のタグを置換リポジトリ %s が見つかりませんリポジトリのルートディレクトリまたはシンボリックパス名リビジョン: %d (%s)情報を表示するリビジョンアーカイブするリビジョン打ち消すリビジョン表示するリビジョンマージ対象のリビジョンstripするリビジョンタグ付け対象リビジョンリビジョンを更新作業領域更新用リビジョン(タグ名/ブランチ名)リビジョン %d:%s と %d:%s移植するリビジョン差分表示ツールで表示するリビジョン選択したファイルパッチを添付ファイルとして送信するパッチを本文に埋め込んで送信インラインメッセージとしてパッチを送信変更の無いファイルを表示無視対象のファイルを表示ステータスキャッシュの中身を表示する(更新はされない)デバッガを開始コミットMQアクション巻き戻し状態サブリポ出力を抑制する同期コマンドが既に実行中ですコミットパッチのブランチリビジョン詳細検索同期作業領域の更新無し(管理領域のみの複製)thg: %s: %s thgについてthg add [ファイル]...thg annotatethg archivethg backout [オプション]... [[-r] リビジョン]thg bisectthg bookmarks [-r REV] [NAME]thg clone [OPTION]... [SOURCE] [DEST]thg commit [オプション] [ファイル]...thg debugbugreport [TEXT]thg drag_copy SOURCE... DESTthg drag_move SOURCE... DESTthg email [リビジョン]thg forget [ファイル]...thg graft [-r] REV...thg grepthg guessthg help [コマンド]thg hgignore [ファイル]thg import [オプション] [ソース]...thg init [作成先ディレクトリ]thg log [オプション] [ファイル]thg manifest [-r リビジョン] [ファイル]thg merge [[-r] リビジョン]thg postreview [-r] REV...thg purgethg rebase -s REV -d REV [--keep]thg rejects [ファイル]thg remove [ファイル]...thg rename [SOURCE] [DEST]thg repoconfigthg resolvethg revdetails [-r REV]thg revert [ファイル]...thg rupdate [[-r] REV]thg serve [--web-conf ファイル]thg shellconfigthg shelvethg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]thg status [オプション] [ファイル]thg tag [-f] [-l] [-m テキスト] [-r リビジョン] [名前]thg thgstatus [OPTION]thg update [-C] [[-r] リビジョン]thg userconfigthg version [オプション]thg: %s thg: コマンド '%s' は曖昧です: %s thg: 不明なコマンド '%s' 不明不明なリビジョン未知のプロファイル形式 '%s' - 無視されました このディレクトリにある全てのリポジトリを更新するオプションを見るには "thg -v help %s " を使ってくださいエイリアスとオプションを見るには "thg -v help%s" を使ってくださいコマンド一覧は "thg help" を見て下さいコマンド一覧を得るには "thg help" を、詳細を見るには "thg -v" を使ってください<テキスト>をコミットメッセージとして使うこのリビジョンを指定するにはフォームを一つだけ使って下さい。メタデータのコピーに Pull を使用する非圧縮での転送(LAN での高速転送用)バージョン %s2回目のシステムクロック通知まで待機するwin32text エクステンションは eol エクステンションと競合しますコミットMercurial-%s, Python-%s, PyQt-%s, Qt-%s作業領域の変更クリーンなし(&N)././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/jv/0000755000000000000000000000000014742203610014172 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1274145 tortoisehg-6.9/locale/jv/LC_MESSAGES/0000755000000000000000000000000014742203610015757 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033565.0 tortoisehg-6.9/locale/jv/LC_MESSAGES/tortoisehg.mo0000644000000000000000000000217414742203535020515 0ustar00rootroot    2,7 dn ,   8.F,OAboutArchive - %sArchive types:Browse...CancelDestination path:ExitOnly files modified/created in this revisionRevision:You can visit our site hereversion %swith Mercurial-%s, Python-%s, PyQt-%s, Qt-%sProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2011-10-17 08:45+0000 Last-Translator: uring Language-Team: Javanese MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 0; X-Launchpad-Export-Date: 2019-07-17 05:43+0000 X-Generator: Launchpad (build 19009) SekitaripunSimpenan - %sMacem-macem simpenan:Nggolek'iWurungPath sing ditujuMetuNamung berkas sing diubah/digawe dalemipun revisi punikaRevisi:Njenengan saget ndugi situs kulo wonten ngrikiversi %skale Mercurial-%s, Python-%s, PyQt-%s, Qt-%s././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/ko/0000755000000000000000000000000014742203610014164 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1274145 tortoisehg-6.9/locale/ko/LC_MESSAGES/0000755000000000000000000000000014742203610015751 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033566.0 tortoisehg-6.9/locale/ko/LC_MESSAGES/tortoisehg.mo0000644000000000000000000004441614742203536020515 0ustar00rootroot  W  es- /9$V7{(    0 LZ uG48*c " & 5"C fpw +"   =HNc j   &5LRh z $1!& 9!Df    !M- { !    ,6H\n#+,!*=LTjqv:*! -;V_y~" ) 6B [fw~+   #07 FPh@ & > G 1P       " ! !!7$!\!.o!0!>!;"J"c"y""""""##0#7# P#5Z#####C# $'-$ U$a$p$ x$$$$$$&$' &',3'`'u'~'''''''( ( ((&(C( G(R(j(y((( ((,(){*9+I+ \+g+ x+ + ++ ++ ++++>,[,"d,2,H,>-B-I-P- W-b-i-- -L---.).R>.;...B.3/-L/z//F//000'1'/1'W1<11+1 12 22$2B25I2522 2272 3(3$/3T3[3{33 3 3 3 3$3 344 4..4]4u43}4 4 4474,5TC5 5555'5H6K6 R6s66666 6 6666 6 66 7Z%777 777 747/8 68 A8 M8&[88!8!888:9TB9+99+999::+:<:Q:Y:#`:J:>:*;9;J;[;z;;;;;; ;<<"<)<C<b<<<<(< << < =.)=X= r=== = == == > >>0>E>b>>U>">@? W? e?Kr?-????@ @0@+C@o@@U@@3A*:AJeABAAB.BJB(\BBB$B$B'C (C 5CVCLfCCC C CQCQD/qDDDDDDDE)EGE%BG%hGGAGGG GG H H H#H*H1H8H?HFH$MHrHyHHHHH H HH)H%d files have merge conflicts that must be resolved%s (hint: %s)%s - branch operation&Add&Archive&Clone&Close&Discard&License&Move&Push Bookmark&Remove&Remove Bookmark&Shelve&Skip this RevisionUncommitted local changes are detected= Working Directory Parent =A bookmark named "%s" already existsA new version of TortoiseHg (%s) is ready for download!A shelf file of that name already existsAbortAboutAcceptActivate:AddAdd Files...Age:All HistoryAll conflicting files will be marked unresolved.All files (*)All files in this revisionArchive - %sArchive types:Automatically advance to next page when backout and merge are complete.Automatically resolve merge conflicts where possibleBackBacked out changeset: Backing out a parent revision is a single step operationBacking out and committing...Backing out, then merging...Backout - %sBackout changesetBackout requires a parent revisionBackout revisionBefore backout, you must commit, shelve to patch, or discard changes.Bisect - %sBookmark '%s' does not existBookmark '%s' has been addedBookmark '%s' has been movedBookmark '%s' has been removedBookmark '%s' has been renamed to '%s'Bookmark - %sBookmark named "%s" does not existBookmark:BranchBranch:Browse...Bzip2 tar archivesCancelCannot backout change on a different branchChanges take effect on next commitChecking for updates...Checking...CleanClear contents of shelf file %s?Clone - %sCloseClose current branchCommitCommit backout and merge resultsCommit changesCommit messageCommitting...CompressConfirm DeleteConfirm DiscardConfirm Discard MessageConfirm ExitConfirm OverwriteCopyCopy ErrorCulprit found.Current local revisionDate:Delete shelf file %s?Destination path:Destination:Directory of filesDiscard current backout message?Discard local changes (revert --all)Discard outstanding changes to working directory?Duplicate NameEditEdit Ignore FilterEdit LocalEdit current file in working copyEdit patched file and rejects?ErrorError encountered.Error writing fileExcludes:ExitFailed!FileFile StatusFilenameFilesFinishedForget Files...ForwardGraphGzip tar archivesHg command:If you still have trouble, please file a bug report.Includes:Incoming BookmarksInterruptedKnown bad revision:Known good revision:LicenseManually resolve rejected chunks?MoveNew GroupNew Name:New ShelfNew shelf createdNext diffNo branch changesNo deletable chunksNo files selectedNo matches foundNo merge conflicts, ready to commitNot a head, backout will create a new head!Only files modified/created in this revisionOpenOpen a new named branchOptionsOptions:Outgoing BookmarksP&ull BookmarkParentsPatch failed to applyPatch:PathPlease enter commit messagePlease report this bug to our bug trackerPlease wait while committing merged files.Please wait while making backout.Prepare to backoutPrevious diffPulled remote bookmark: %sPush allPushed local bookmark: %sQuitR&emove BookmarkRe&nameRecurse into subrepositoriesRefreshRegexp:Remote command:RemoveRemove Files...Removed local bookmark: %sRemoved remote bookmark: %sRenameRename ErrorRename FileRename file or directoryRepositoryRepository ErrorRevertRevert Files...Revert file(s) to contents at this revisionRevert to RevisionRevisionRevision is &BadRevision is &GoodRevision:Running...Save error report toSave file toSearchSearch HistorySearchingSelect Destination FileSelect Destination FolderSelect Source FileSelect Source FolderSelect branch of merge commitSeveral icons are courtesy of the TortoiseSVN and Tango projectsShelf deletedShelve - move local changes to a patchShow LogShow allSkip final confirmation page, close after commit.Specify name of new shelfStartStopSubject:Summary:Tags:Tar archive compressed using bzip2Tar archive compressed using gzipTar archivesTerminated by userTest this revision and report findings. (good/bad/skip)Text files (*.txt)The destination "%s" already exists as a file!The destination "%s" already exists as a folder!The directory "%s" is not empty! Do you want to overwrite it?The file "%s" already exists! Do you want to overwrite it?TortoiseHg Bookmark SyncTortoiseHg Bug ReportTortoiseHg Command DialogTortoiseHg ErrorTortoiseHg Overlay Icon ServerTortoiseHg Shelve - %sUnable to backoutUncompressed tar archiveUncompressed zip archiveUnknown revision!UpdateUpdate working directoryUpdate...Upgrading to a more recent TortoiseHg is recommended.Use English backout messageUse proxy serverUserUser:Verify backout revision and ensure your working directory is clean.View changes using GUI diff toolView file changes in external diff toolVisual DiffVisual diff...WarningWorking CopyWorking DirectoryWorking Directory (merged)Working directory statusYou can visit our site hereYou have marked all rejected patch chunks as resolved yet you have not modified the file on the edit panel. This probably means that no code from any of the rejected patch chunks made it into the file. Are you sure that you want to leave the file as is and consider all the rejected patch chunks as resolved? Doing so may delete them from a shelve, for example, which would mean that you would lose them forever! Click Yes to accept the file as is or No to continue resolving the rejected patch chunks.Your TortoiseHg is up to date.Zip archive compressed using deflateZip archives[WARNING] Invalid subrepo revision ID: %s action buttonCommitbranch: column headerAuthorcolumn headerBranchcolumn headerChangescolumn headerFilenamecolumn headerGraphcolumn headerTagsdefaultfilesfilesAllfilesNonefiltermust be specified repositorynowpassword: repository %s not foundstart debuggerstart progressCommittab tooltipSearchtab tooltipSynchronizeversion %swindow titleCommitwith Mercurial-%s, Python-%s, PyQt-%s, Qt-%sProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2019-02-07 05:08+0000 Last-Translator: JK Kim Language-Team: Korean MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; X-Launchpad-Export-Date: 2019-07-17 05:43+0000 X-Generator: Launchpad (build 19009) %d 파일이 머지 충돌 상태입니다. 반드시 충돌 해결이 필요합니다.%s (힌트: %s)%s - 분기 작업추가(&A)아카이브(&A)복제(&C)닫기(&C)파기(&D)라이센스(&L)이동(&M)책갈피 발행(&P)삭제(&R)책갈피 제거(&R)임시보관함(&S)리비전을 건너뛴다(&S)커밋되지 않은 로컬 변경사항이 있습니다<기본>= 작업 디렉토리의 상위 =이름이 "%s"인 책갈피가 이미 있습니다TortoiseHg (%s)의 새로운 버전을 다운로드할 수 있습니다!지정한 이름의 보관함 파일이 이미 존재합니다취소소개수락활성화:추가파일을 더합니다...나이:전체 기록충돌 상태의 파일들은 해결되지 않은 상태로 표시됩니다.모든 파일 (*)이 리비전의 모든 파일아카이브 - %s아카이브 유형:백아웃과 머지가 끝나면 자동으로 다음 페이지로 넘어갑니다.가능한한 자동으로 머지 충돌을 해결합니다.뒤로백아웃한 변경사항: 부모 리비전을 철회하는 것은 단계별 작업입니다.철회 후 커밋 중...백아웃 후에 머지를 진행합니다...백아웃 - %s철회된 체인지셋백아웃을 하기 위해선 상위 리비전이 있어야 합니다.백아웃 대상 리비전백아웃 전에, 반드시 커밋, 패치를 위한 임시저장, 혹은 변경사항을 파기할지 선택해주십시오.이진 탐색 - %s'%s' 책갈피가 없습니다'%s' 책갈피가 추가되었습니다'%s' 책갈피가 이동되었습니다'%s' 책갈피가 삭제되었습니다책갈피의 이름을 '%s'에서 '%s'로 변경했습니다책갈피 - %s이름이 "%s"인 책갈피가 없습니다책갈피:분기브랜칭:찾아보기...bzip2 압축 tar 아카이브취소다른 브랜치로는 백아웃할 수 없습니다.변경한 내용은 다음 커밋에 반영됩니다.업데이트 확인 중...확인중...정리보관한 파일 %s의 내용을 지우시겠습니까?복제 - %s닫기현재의 분기를 종료합니다.커밋커밋 철회 및 결과 병합변경점 커밋커밋 메시지커밋중...압축하기삭제 확인파기 확인삭제 메세지를 확인합니다.종료확인덮어쓰기 확인복사복사 오류문제를 발생시킨 리비전이 발견됨.현재 로컬 리비전날짜:임시보관한 파일 %s를 지우시겠습니까?대상 경로목적지:디렉토리 파일현재 백아웃 메시지를 파기하시겠습니까?로컬 변경사항을 무시 (revert --all)작업 디렉터리의 커밋하지 않은 변경사항을 파기하시겠습니까?이름 중복편집무시할 파일 수정지역(Local) 수정복사본에서 현재 파일을 편집패치가 성공한 파일과 실패한 파일을 편집하겠습니까?오류오류가 발생하였습니다.파일 쓰기 오류제외:종료실패!파일파일 상태파일이름파일완료파일을 지웁니다...앞으로그래프Gzip 압축 tar 아카이브Hg 명령:문제가 여전하다면 버그 리포트를 제출해주세요.포함:받아올 수 있는 책갈피방해 받음알려진 문제 리비전:알려진 정상 리비전:라이선스실패한 청크를 직접 해결하시겠습니까?이동새 그룹새 이름:새 보관함새 보관함이 생성되었습니다다름 차이점분기에 대한 변경이 없음삭제할 청크가 없습니다.파일 선택이 안됨일치하는 것 없음머지 충돌이 없습니다. 커밋할 수 있습니다.헤드가 아니기 때문에, 백아웃 후에 새로운 헤드가 생성됩니다!이 리비전에서 수정/생성된 파일열기새로운 이름의 분기를 만듭니다.옵션옵션:보낼 책갈피책갈피 갱신(&U)부모 리비전패치 적용 실패패치:경로커밋 메시지를 입력하세요이 버그를 버그 트래커에 제보해 주십시오.병합된 파일을 커밋하는 동안 기다려주십시오.철회하는 동안 기다려주십시오.백아웃 준비이전 차이점받아온 원격 책갈피: %s모두 밀어넣기발행한 로컬 책갈피: %s종료책갈피 제거(&E)이름변경(&N)하위 저장소를 포함새로고침정규표현식:원격 명령:제거파일을 지웁니다...삭제된 로컬 책갈피: %s삭제된 원격 책갈피: %s이름 바꾸기이름변경 오류파일 이름 변경파일 또는 디렉토리 이름 변경저장소저장소 오류되돌리기파일을 되돌립니다...파일을 이 리비전의 내용으로 복구개정판을 되돌리기개정 번호리비전에 문제 있음(&B)리비전에 문제 없음(&G)리비전:진행중...오류 보고를 저장파일 저장검색기록 검색검색중대상 파일 선택대상 폴더 선택원본(Source) 파일 선택원본(Source) 폴더 선택Select branch of merge commit일부 아이콘은 TortoiseSVN과 Tango projects에서 무료로 제공했습니다.보관함이 삭제되었습니다임시보관함 - 로컬 변경 사항을 패치로 내보내기기록 보기모두보기최종 확인 페이지를 건너뛰고, 커밋 후에 창을 닫습니다.새 보관함의 이름을 지정해주세요시작정지제목:제목:태그:bzip2를 사용하여 압축한 tar 아카이브gzip를 사용하여 압축한 아카이브tar 아카이브사용자가 중단함이 리비전을 테스트하고 결과를 보고합니다. (정상/문제/건너뜀)텍스트 파일 (*.txt)이미 "%s"라는 이름의 파일이 있습니다!"%s" 에 이미 폴더가 존재합니다!"%s" 디렉토리가 비어있지 않습니다! 덮어쓰시겠습니까?"%s" 파일이 이미 존재합니다! 덮어쓰시겠습니까?TortoiseHg 책갈피 동기화TortoiseHg 버그 리포트TortoiseHg 명령 대화창TortoiseHg 오류TortoiseHg 오버레이 아이콘 서버TortoiseHg 임시보관함 - %s백아웃 실패압축되지 않은 tar 아카이브압축되지 않은 zip 아카이브알려지지 않은 개정판입니다!업데이트작업 디렉토리 업데이트업데이트...최신 버전의 TortoiseHg로 업그레이드하는 것을 권장합니다.영문 철회 메시지 사용프록시 서버 사용사용자사용자:백아웃할 리비전과 작업 디렉토리의 상태를 확인해주십시오.Diff 툴로 변경사항 확인외부 비교 도구로 파일 변경점 보기시각적 비교시각적 비교...경고작업 복사본작업 디렉토리작업 디렉토리(병합)작업 디렉터리 상태개발자 웹사이트 방문You have marked all rejected patch chunks as resolved yet you have not modified the file on the edit panel. This probably means that no code from any of the rejected patch chunks made it into the file. Are you sure that you want to leave the file as is and consider all the rejected patch chunks as resolved? Doing so may delete them from a shelve, for example, which would mean that you would lose them forever! Click Yes to accept the file as is or No to continue resolving the rejected patch chunks.TortoiseHg가 최신 버전입니다.deflate로 압축된 zip 아카이브Zip 아카이브[경고] 올바르지 않은 하위 저장소 개정판 ID: %s 커밋지점: 작성자분기변경점파일이름그래프태그기본파일모두없음필터지정된 저장소여야 합니다.지금비밀번호: 저장소 %s 를 찾지 못함디버거 시작커밋찾기동기화판번호 %s커밋, Mercurial-%s, Python-%s, PyQt-%s, Qt-%s././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/lv/0000755000000000000000000000000014742203610014174 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1274145 tortoisehg-6.9/locale/lv/LC_MESSAGES/0000755000000000000000000000000014742203610015761 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033566.0 tortoisehg-6.9/locale/lv/LC_MESSAGES/tortoisehg.mo0000644000000000000000000000126114742203536020514 0ustar00rootrootL||}   &Close&LicenseAboutExitversion %sProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2011-12-11 09:07+0000 Last-Translator: Arvis Lācis Language-Team: Latvian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2; X-Launchpad-Export-Date: 2019-07-17 05:43+0000 X-Generator: Launchpad (build 19009) &Aizvērt&LicenceParIzietversija %s././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/nb/0000755000000000000000000000000014742203610014152 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1274145 tortoisehg-6.9/locale/nb/LC_MESSAGES/0000755000000000000000000000000014742203610015737 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033565.0 tortoisehg-6.9/locale/nb/LC_MESSAGES/tortoisehg.mo0000644000000000000000000000160014742203535020466 0ustar00rootroot t   3(=E KV \ gqAddBrowse...Confirm OverwriteExitMoveNew Name:RemoveRenameRevision:Select Destination FolderProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2010-05-25 11:35+0000 Last-Translator: Smart Viking Language-Team: Norwegian Bokmal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Launchpad-Export-Date: 2019-07-17 05:43+0000 X-Generator: Launchpad (build 19009) Legg tilBla gjennom...Bekreft overskrivingAvsluttFlyttNytt navn:FjernEndre navnRevisjon:Velg målmappe././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/nl/0000755000000000000000000000000014742203610014164 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1274145 tortoisehg-6.9/locale/nl/LC_MESSAGES/0000755000000000000000000000000014742203610015751 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033566.0 tortoisehg-6.9/locale/nl/LC_MESSAGES/tortoisehg.mo0000644000000000000000000052210114742203536020505 0ustar00rootroot>}}&} }}~~1~J~d~ x~~ ~~~~ ,$@ex)WYGÀ؀;>A[7:Ձ-BSdi m {̂  ! ,7 O [| #ۃ@@ V bp ӄ  $<Qch {  Ʌԅ  -5O UajzІن  &6FLSY iw~‡ ȇӇ ۇ (:AH]cvz ֈ݈  %+4M_ gr {  Ɖщ։܉/ 7A IThn~   ˊՊۊ   %3ENW]qw| 'ɋ#'A _ČՌ ,J0{&̍܍ 9-U͎ $$4'Y'73(,>#kȑڑ %-&Sz  ђޒ"7T=i œ ӓߓ #>/"n0” ޔ ! 3)>)h=B RM>Hߖ(Η  0GWr ØӘ:;'Y !Y "3ETGh:4 %8<u ϛ", !M=o Μۜ (>T Yf&ܞ " 4> ES[dx  Xdw B+'S3j!9)1[+uʢ,"/R!r.-  &/1[a4*.6L11+,)Vhq$ Ѧ&FMfl r"&ӧ  $5HQWgz D?]iV_|Cܫ= 1^ Ĭ Ѭܬ  8La p z &"ޭ ' +1 ]Vj׮#,P.nM *9Td|  ư!Ӱ " /= Q^mӱ"#(L T.a3` ɳԳ* &#J5e 5# .1`gv˵+%/;kp ʶ 9K>R..,& COd u"ָ'-Uf Ĺй չ '1YsO#޺ +  #1FUds* Ͻ$-5-c1.þ# .K'cA!ݿM2M'@18:7s  $ 5?O T^ q| ! ,?U[nC/->GXs)B*[G 45;q   %5([-2'8= Zg ";1-_X}KOCUY+Co w"M$'LUAo:;,5h<s34*)2\cs|!& x}   $ ?M] wY/  < & *4:I?BcINMT IP7FME0Lv  &<L ]jr   ".8G !;6=Mea y Y/6?P _k Q+ 9>Pi:Ym   #' 6C E Sa s9~(8f#!1Ec~ ' ?:2)m Gdmt )<Xh#)  ( 0=-Y $  *5`z0[@p;   % /9J Y cp '8L_o!-9#($Me|$ 8Md{"A]{(2[+p,  ,8,e!%% >3_#Ik!hf;]</lZbks   "*2,;*h    +:Pm :   +0:BH}G2!;] q*{!:"*]!(."4 :G Z f r!  $+1MRo'- ':Lbk% !<Tejsy~    '235f  ZPFc)  ) 9 O j !| $   !    % 5 < W p #  !    M:          " 3 J g o ! " $     ( < X  l  v .J_vM# .2 9EU!n +&3Ob 1 >Id|] 3L]o  "      , 6 DN W e%s   *)? iv H">a x B   )A#[ 15Hfz."#[[P$1$#   &! -!;!B!W! _! l! v! ! !!!@!! " " " -"7"&="d"qs" " "" ##*# <# H# V# `#l#{####y#7$@$_$w$$%%%%5%&&6& ;&1E&w&I& ' 'l'f((((((4(**+Z++,?----$.'.,.3.L.T.Y.p.x. ....6/86w6257;h77@$8(e88$79\9cw9(9:":9 ;bF;;&j<f="=1?.M?|??@+fA(A}A9BUB/C%JC!pC-C8C<C*6D4aD!DBDDEEEEEE!E*EF 9F GFRF fFpF vFFFFFFF8 GCGTGnGGGGGGGtH|H HHHHH HH H I II%8I^IG}I&I*IJ0J@J WJxJ JJJ+J J K6K TK"uK#KK"K&K,L KLlL"LLLLLLL9M2KM~MM MMMMM6N?NGNYN*nN4N N NN O!O 0O =O KOlO*O OO OO5O+PGPbPsPPP3P5P)Q":Q]QbQ vQZQ+QRR,RCDR@R5R*R *S 5S @S MS"YS!|S%SS-S T)2T'\TT TTTT T2T3 UTUTcUUU<UV $V/V7VFVX_VVXr;Z\[ \ +\7\ R\\\r\ \\\\C\] 4] @]M]']]U]^'^u__Faa+^b#bbbbc'c#Gc*kc#ccccdl2d$d d,d#d"e;eZeze eeee e eee f'f8fPfWfif nfyff!fff1f g*g0gPgbgwgggggghh7hJh^hphhhhhh'hh!i6iNi"gii/i1i j"j>j]j}j j j jjj j j*jkkk'kAkIk hkvkkk)kkk l'l@lXlllYrll,l mmm!$mFm*cm>mmm!m'nEn Zndnyn;nAn7o Fo Rosowo oo o'o o*op 0p>p'Wp#p#ppp p q$q=qEqZq/rq qqqqqq rr-r=r$Prurrrrr"r&s5sPs1cssssssss t't:tStptt@tt t tu u &u"2u Uu`uuuuuuuv v"v5vIvivyvvv v!vvww 'w3wKw`w|w ww+wwwx x5x'>xfxxx-xx+x6y,LyDyyy)y"z)(z Rz ]z~z"zz,zz{{){,| }*};}X}q}}}*}} ~~$~$=~$b~~%~~~'~2AfQZ"=Rf:~Gـ>!D`Ł܁  "2Le  т !(? FT"sQ! .>\#z $߄!6 FQ i u   ΅   -5 NX hu І (7N an}  ƇЇه   & 1 = IS[ `m ň҈ 4 <J^s É ˉ ։    , 8 B NZbz  $Ɗ  $ ,7 Q[mu |   ɋӋ֋    "3G ^hqx  .Ō! *7b"#Ǎ 2Mb8yW &<cs؏=0 K l  ɐOې-+*Y+@=$/5T)ϓؓ  )4 R2s%̔   ";R%n(ЕM*a &ǖ   C%aFΗ 6. e/s2$֘H DOEj_\[mɚ\nC˛"@,W Ĝ5Ҝ@+Iu.o'.=Oc#{PN6?v%|<ߟ% $1C%]8*̠G%?e|T 7PThţ' +# O[ _kpv ¤٤ҥ XK h r,2ܦ&(6>_-058<E]t62Ѩ%*I$`22  CTE;7֪D<SCFԫ, HR8k Ь5'#@!d$!6ͭ  )5'<+d7   2<DU iuFQo} 7g̲<4;q8  ( 5 ?.M|&%̴   02+c  6]-2޶ &$D/iT ">$Sxøظ %7I`s .ҹ&( Gh'()Ժ 4N6D{ ¼ռD6,Gt9!Ľ>"%$H3m Ծ#6=4t0ڿ  %06= Y zA ODKB5, 6Nf( 9+Z$ "  (-IR!X3z,]+Y2.,a+H\t2! -%4S605&';c}-M&'[N3 !<!-^.- & 3= F P^ my  !)K Z*h4"")!/QJb5' *AJ\v"5J"=!`b   5-?@m7++F\m q"#,2#F jA90 8Yj,<<T(d 4 AfKiru+19!Km.X4CI=e"B@:<{@ <=/5m6  #-QU\r0j V[pv ~ $  *IZj o!7U \j}  (' QmUc iev%OBIJD'l?K )8O_r   "">aG  (#4CX@gm| ,DVoV $ 9E^u ~_Ch~o04Tp    )<>M R ]Dg*@$#7[?r !D(m} LF58 nyFs @)V+"(: G+a>+AQh{& #$,$D%i$%;/o4MC 6D Ub u   +C LZ lx$:T+n2""#F6+S0! !".Ds!-"   < J 2 > 1R        . 4     ( 7A )y  +  0 7 )O 'y 2  % e~yb|<YA@" ##+=i /.%8 JTn   &= LW )Gbf=zLMS Xy! 5$"'AiBJ,5?u> %/!@b}( $+1QVu/*  $0?O` q|.!"%Dj    / :  N  \ j   > ? !(! ;!\!hn!!H!3" M"n" """""""#,)#V#]#e##### ###($*$,C$$p$)$$$$)%a,%% %%%%%%"&>&Q&"e&'& &&$&$&-' M' Z'e'u''''+''((((() )&)<)NU)))) ))!)(*(<*e*/*5*#*+*+>+.-, \, i,!t,,,d, - 1-=-O-k---!--!--.2'.Z.p.y. .. .. ... .,./7/?/'O/ w/,/"//-/0.0H0X0s0x000h0%1@1W1h1=}111 1 1 2 22 42A2V2j2|22)2:2$3)3 <3 I3 W3-d3(3(3 33s4e05(66I9.<J<+=;=!J=.l======= => > '>4>XJ>>>>> >>4>*?=? ? ?? @ @@/@ @@ M@Y@h@z@@@@x@ =A$IA$nAAKB5B60CAgC!CCC C6C)-D[WDEEE!XFzFFFF FVFHH$IiI)HJrK=NLLLL(LLLLMM M7M ?M IMTM [MhM NN (N-3N$aN0N$N%NOO+OGO*`O OOO(\PP PPP&P$PQ 'Q 5QAQ]QyQQQQ QQ#Q"R $R 2R >RKRQR`RvR2RERRGSZSqSASS0S|T,~T~TC*U nU!U;U3U!V:V3+W_W;W/#XSX+ Y'9YnaY-Y"Y!Z9[`Y[[$\n]C^5\_:__I_5a8Fb7bbIcOc=%d3cd0d-d(d5e*Ue;e&eKe/fLfRfVffgg)g2Hg{g gggg g+g h)h?hXhohh7hhhii8iHi`iwiiqij (j64j#kjjjjj j jjj'j%kRDk#k+kkll%6l!\l ~lll/llm2m-Qm!m%mm*m'n-:n"hn'n+n*n o o 4o@oIoAbo9ooo p'#pKpjp"pIpppq5(qB^q+qq qq.q%r6r%Grmr)rrr r$rN sXswssss&sDtHMtt.t tttn u2{u uu3uSuQPv9v-v w w%w>w-Pw.~w9w'wUx5ex,x9x!y$y=y\ytyy=y<yzn0zz zMz{ ,{7{ ?{K{d]{D{ ~q Ղނ5:=x$-׃0pօdGP/&!ډ5(R%{&'Ȋ,/&Mt% ?2M! '݌  !+ GT dr*y -ݍ   '4$:(_2=ˎ  #AJQ Ua p }   ˏԏ 1 ?*U$ې0/)Y t#  ڑ  )',Q~ * Ò!͒ 5+=i&ړ` /Ȕ Д ۔*!22Fe( Օ)6 W v <L?G ؗ 2 .,;)h2Ę#!+=(i ՙ+ @MUmԚ.Mf1y&ڛ.!0R3lœ˜Ҝڜ !18;G   ŝ ҝ!ޝ  ,Fa| ĞΞ'Bb w!џ ; KV,tӠ++IR2e&3=?1Xq"ʢ5.#3R $+ 0< Caught keyboard interrupt, aborting. aliases: %s (default: %s) (copied from %s) (is a symlink) (is unversioned) (renamed from %s) (was added) (was added, now missing) (was deleted) filtered"%s" is not a folder"%s" is not a valid directory"%s" removed from path history"%s" removed from search history### filter text ###### host certificate fingerprint ###### patch name ###### regular expression ###### regular expression search pattern ###### revision set query ###% Match%d day%d days%d files have merge conflicts that must be resolved%d files were modified on both branches and must be resolved%d hour%d hours%d matches found%d minute%d minutes%d month%d months%d outgoing changesets%d outgoing changesets in current branch (%s) / %d in total%d outgoing changesets to %s%d outgoing changesets up to current revision (#%d) / %d in total%d outgoing changesets up to revision #%d / %d in total%d patches were exported to:

                                                                                                              %s%d pending changelists found%d second%d seconds%d week%d weeks%d year%d years%d%%%p%%s (hint: %s)%s (pending)%s (submitted)%s - Revision Details (%s)%s - TortoiseHg Workbench%s - TortoiseHg Workbench - %s%s - branch operation%s - commit%s - commit options%s - hg %s%s - purge%s - recover repository%s - status%s - status (selection filtered)%s - sync options%s - verify repository%s : %s%s %s already exists, replace URL?%s and %s have identical contents %s had rejected chunks, edit patched file together with rejects?%s is a dirty subrepo%s is added%s is ignored%s is modified%s is not a valid repository%s is not modified (clean)%s is not tracked (unknown)%s is removed%s patches%s project settings (.hg/projrc)%s repository settings%s will be imported to %s's global settings&About TortoiseHg&Add&Add Repository...&AfterIndent&Archive&Archive...&Auto&Auto-Complete&Backout...&Bisect...&Browse...&Bundle Rev and Descendants...&Cancel&Character&Clear&Clone&Close&Close Repository&Commit&Commit to current branch&Copy&Copy Patch&Copy...&Custom Toolbar&Delete&Delete Unversioned...&Diff Other to Ancestor&Diff to Other&Diff to Parent&Discard&Discard changes&Dock Toolbar&Edit File&Edit Local&Edit Toolbar&Edit...&Editor Options&Email Patch...&Exit&False&File&Filter Toolbar&Finish Patch&Force&Forget&Goto (update workdir)&Goto Revision...&Graft to Local...&Help&Ignore...&Import&Invisible&License&Local&Mac&Make secret&Mark Resolved&Mark Unresolved&Mark as Resolved&Match&Merge&Merge with Local...&Move&New Repository...&No&No (discard changes)&Open&Open All&Open Local&Open Repository...&Originating Revision&Other&Parent Revision (%d)&Paste&Patch Branch&Purge...&Readme&Rebase...&Redo&Refresh&Refresh Repository List&Remote Update...&Remove&Remove...&Replace&Repository&Resolve...&Revert&Revert to Revision...&Revert with backup&Revert...&Run&Save&Save at Revision...&Scan Repositories at Startup&Search&Search in Current File&Set...&Settings&Shelve&Shelve...&Skip this Revision&Sort&Sort by .hgsub&Spaces&Strip&Strip...&TAB&TAB Inserts&Tag...&Take Local&Task Toolbar&Terminal&True&Undo&Unix&Unspecified&Update&Update...&Verify&View&View Changeset&View Missing&View at Revision&Visible&Windows&Word&Workbench Toolbars&Wrap&Yes'Publishing' repository(DEPRECATED)(is a changed and dirty sub-repository)(is a changed sub-repository)(is a dirty sub-repository)(is a new and dirty sub-repository)(is a new sub-repository)(is a removed sub-repository)(is an unchanged sub-repository)(no help text available)(same as parent)*: not used by TortoiseHg, resolved merge, unresolved merge3-&Way Diff3-way dir diffLaunch settings tool...%d changeset will be stripped%d changesets will be strippedAnnotate:Candidate MatchesDifferences from Source to DestHost: %sIgnore FilterParse Error!Repository Details:Selected Options:Selected Options: %sUncommitted local changes are detectedUnknown revision!Unrevisioned FilesUntracked FilesWeb Server:= Working Directory Parent =A README file is not configured for the current repository.

                                                                                                              To configure a README file for a repository, open the repository settings file, add a 'readme' key to the 'tortoisehg' section, and set it to the filename or URL of your repository's README file.A bookmark named "%s" already existsA comma separated list of target groupsA comma separated list of target peopleA new version of TortoiseHg (%s) is ready for download!A repository cannot be added as a subrepo of itselfA shelf file of that name already existsA terminal shell cannot be opened for remoteA terminal shell must be configuredA&dd Subrepository...AbortAbort the export operation. Aborted p4pendingAboutAbout &QtAbout TortoiseHgAcceptAccept All MatchesAccept Selected MatchesAccept the local file version (yours)Accept the other file version (theirs)Activate BookmarksActivate bookmark?Activate:AddAdd &LargefilesAdd &Largefiles...Add Files...Add Path to ServeAdd a repository to this groupAdd as &LargefilesAdd as &Normal FilesAdd files to version controlAdd ignore filter...Add or remove patches must be merged in the working directoryAdd selected untracked files?Add separatorAdd to listAddedAdded tag %s for changeset %sAfter Pull OperationAge:AliasAll HistoryAll changesets belonging to the branches of changesets in set.All changesets, the same as 0:tip.All conflicting files will be marked unresolved.All conflicts are resolved.All contextsAll files (*)All itemsAll revisionsAll unsaved changes will be lost.Allow PushAllow push of a new branch (--new-branch)Allow pushing new branches (--new-branch)Always merge (when possible)Always show repo tabs, even for a single repo. Default: FalseAmendAmend current revisionAn alias for "::." (ancestors of the working copy's first parent).An empty set, if any revision in set isn't found; otherwise, all revisions in set.An error occurred while updating the repository hgrc file (%s)An exception happened while loading the subrepos of:

                                                                                                              "%s"

                                                                                                              An interrupted graft operation has been found. You cannot perform a different graft operation unless you abort the interrupted graft operation first.Annotate &FileAnnotate Op&tionsApp&ly FormatAppendAppend graft info to log messageAppend the changes to the existing patch files. Applied patchesApplied patches or qparentApply all patchesApply changes before exit?Apply one patchArabicArchive - %sArchive FormatsArchive types:Are you sure that you want to cancel the commit operation?Are you sure you want to delete these files and/or folders?Are you sure you want to overwrite it ?Are you sure?Attempt automatic (trivial) mergeAttempt to push to specified URL or alias after each successful commit. Default: No pushAuthorAuthor ColoringAuto Commit ListAuto Exclude ListAuto Includes:Auto-resolve mergesAutomatically advance to next page when backout and merge are complete.Automatically advance to next page when merge is complete.Automatically resolve merge conflicts where possibleBackBacked out changeset: Backing out a parent revision is a single step operationBacking out and committing...Backing out, then merging...Backout - %sBackout changesetBackout current patch branchBackout requires a parent revisionBackout revisionBackport part of a changeset to a dependencyBackspace or Del to remove row(s)Backup copies of modified files can be found in .hg/Trashcan/Backwards phase change requestedBad filenameBalticBccBefore backout, you must commit, shelve to patch, or discard changes.Before merging, you must commit, shelve to patch, or discard changes.Bisect - %sBisect - Bad, Good...Bisect - Good, Bad...BoldBoo&kmark...Bookmark '%s' does not existBookmark '%s' has been addedBookmark '%s' has been movedBookmark '%s' has been removedBookmark '%s' has been renamed to '%s'Bookmark - %sBookmark named "%s" does not existBookmark:BranchBranch ColorsBranch:Branch: Bro&wse at RevisionBrowse Directory...Browse...Bundle DAG Range...Bundle files (*.hg)Bundles store complete changesets in binary form. Upstream users can pull from them. This is the safest way to send changes to recipient Mercurial users.Bypass ListBzip2 tar archivesC&hoose Log Columns...C&onfigure FormatCLI EditorCan't change settings without iniparse package - view is readonly.Can't find revision '%s'CancelCannot add subrepositoryCannot backout change on a different branchCannot export revisionCannot export revision %s into the file named: %s Cannot import selected revisionCannot open Plugin Options dialogCannot open non Mercurial repositories or subrepositoriesCannot open repositoryCannot open the .hgsub file in:

                                                                                                              %sCannot start a new searchCannot update the .hgsub file in:

                                                                                                              %sCcCc:CelticCentral and Eastern EuropeCertificate Query ErrorChange &Phase toChangeLog FontChanges have been moved, you must now commitChanges take effect on next commitChangeset is a merge changeset.Changeset is a named branch head.Changeset is closed.Changeset is tagged.Changeset with highest revision number in set.Changeset with lowest revision number in set.Changeset:ChangesetsChangesets containing files matched by pattern.Changesets not found in the specified destination repository, or the default push location.Changesets that are ancestors of a changeset in set.Changesets where username contains string.Changesets which add files matched by pattern.Changesets which are descendants of changesets in set.Changesets which modify files matched by pattern.Changesets which remove files matched by pattern.Changesets with no parent changeset in set.CheckCheck all filesCheck for incoming changes from selected URLChecked count: %dCheckingChecking for updates...Checking working directory status...Checking...Checkmark files to addCheckmark files to forgetCheckmark files to removeCheckmark files to revertChild changesets of changesets in set.Child:Chunks selected: %d / %dCleanClearClear contents of shelf file %s?Clear current query and query textClear the current shelf fileClick OK to continue or Abort to exit.Clon&e Repository...Clon&e...Clone - %sClone RepositoryClone to revision:Clone...CloseClose %s branchClose After CommitClose Branch: Close current branchClose other tabsClose tabClose the commit tool after every successful commit. Default: FalseClose:Co&mpare File RevisionsComma separated list of archive formats allowed for downloadingComma separated list of branch names that should be ignored when building a list of branch names for a repository. Default: None (leave blank)Comma separated list of exclusion file patterns. Exclusion patterns are applied after inclusion patterns.Comma separated list of files that are automatically included in every commit. Intended for use only as a repository setting. Default: None (leave blank)Comma separated list of files that are automatically unchecked when the status, and commit dialogs are opened. Default: None (leave blank)Comma separated list of inclusion file patterns. By default, the entire repository is searched.Comma-separated list of blind carbon copy recipient email addressesComma-separated list of carbon copy recipient email addressesComma-separated list of recipient email addressesCommandCommand outputCommitCommit Dialog ToolbarCommit LaterCommit NowCommit OptionsCommit backout and merge resultsCommit changesCommit changes in repositoryCommit context menuCommit merge resultsCommit messageCommit...Committing...Common setsCompare revisions of the selected fileCompletely remove file from patch?CompressCompress - %sCompress History...Compress changesets up to and includingCompress is complete, old history untouchedConfig File:Configuration Error: "%(arg0)s",
                                                                                                              Please fix your configConfigure Custom ToolConfigure Explorer extensionConfigure HookConfigure Issue TrackerConfigure guardsConfigure guards for selected patchConfigure repository settingsConfigure the selected COM Bug Tracker plugin.Configure user wide settingsConfigures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking plugin.Confirm AddConfirm Branch ChangeConfirm DeleteConfirm Delete UnversionedConfirm DiscardConfirm Discard ChangesConfirm Discard MessageConfirm ExitConfirm New BranchConfirm OverwriteConfirm PushConfirm Push to remote RepositoryConfirm ReloadConfirm RemoveConfirm RevertConfirm SaveConfirm StripConfirm URL replaceConfirm UndoConfirm UpdateConfirm adding unknown filesConfirm deleting filesConfirm file deletionsConfirm patch queue switchConfirm path deleteConnecting to Review Board...Consider aborting the graft first.Consider aborting the rebase first.ContactContext MenuContinue or abort interrupted graft operation?Controls draft phase behavior when working as a server. When true, pushed changesets are set to public in both client and server and pulled or cloned changesets are set to public in the client. Default: TrueConvert an existing repository into a subrepositoryConverted From:CopyCopy &HashCopy &PathCopy - %sCopy ErrorCopy Selected as PatchCopy full path of file(s) to the clipboardCopy messageCopy one of the recent commit messagesCopy source -> destinationCopy the root path of the repository to the clipboardCould not get subrepository listCould not instantiate Issue Tracker plugin COM objectCould not open .hgsub fileCould not open some subrepositoriesCould not open the specified file for reading.CreateCreate &BranchCreate Repository HereCreate a new groupCreate a new patchCreate a new repositoryCreate clone here from sourceCreate diff with all changes on this branchCreate diff with all outgoing changesCreate new named branch "%s" with this commit? Cu&tCulprit found.Current local revisionCustom ToolsCyrillicDateDate:De&tect Renames...Deactivate current bookmark?Dead BranchesDefault PushDefault widgetDefines the regex to match when picking up issue numbers.DeleteDelete %d file in .hg/TrashcanDelete %d files in .hg/TrashcanDelete %d ignored fileDelete %d ignored filesDelete %d unknown fileDelete %d unknown filesDelete %s from your repo configuration file?Delete Group '%s' and all its entries?Delete ToolDelete empty foldersDelete from listDelete hookDelete patches...Delete reference toDelete selected chunksDelete selected patchesDelete selected query from historyDelete shelf file %s?Delete the current shelf fileDelete the following unversioned files?Deleted %d filesDeleted %d files and %d foldersDeleted*Deleting trash folder...Deletion failuresDeny PushDescriptionDestDestination file already exists.Destination path:Destination:Detect Copies/Renames in %sDetect outgoing changes to selected URLDetect renames and copiesDetected merge/diff tools:Detected uncommitted local changes in working tree. Please select to continue: Detected uncommitted local changes.Determines if TortoiseHg should show a confirmation dialog before pushing changesets. If False, push will be performed without any confirmation dialog. Default: TrueDetermines when the issue tracker state will be updated by TortoiseHg. Valid settings values are:

                                                                                                              • never: Do not update the Issue Tracker state automatically.
                                                                                                              • commit: Update the Issue Tracker state after a successful commit.

                                                                                                              Default: neverDetermining outgoing changesets to email...Diff &Local to AncestorDiff FontDiff ToolbarDiff and AnnotateDiff contentsDiff not displayed: Diff to &LocalDiff to parentDir diff to p1Dir diff to p2Directory diffDirectory of filesDiscard - discard local changes, no backupDiscard current backout message?Discard current commit message?Discard local changes (revert --all)Discard local changes, no backup (-C/--clean)Discard local changes, no backup (-f/--force)Discard outstanding changes to working directory?Discard remote changes, no backup (-C/--clean)Display closed branchesDisplay graph the named branch onlyDisplay only active branchesDisplay the file anywayDisplaying %(count)d of %(total)d itemsDnD SynchronizeDo not include modification dates in diff headers. Default: FalseDo not save backup files (*.orig)Do not show menu items on unversioned folders (use shift + click to override)Do not strip paths (-p0), required for SVN patchesDo not update the new working directoryDo not verify host certificateDo you really want to force a backwards phase transition?Do you really want to activate patch queue '%s' ?Do you really want to deactivate the %s bookmark?Do you really want to make this revision secret?Do you want to exit?Drag to change orderDuplicate NameE&ncodingE&xitE&xploreE&xplore FolderE&xplorer HelpE&xportE&xport Patch...EOL &ModeEOL &VisibilityEditEdit FileEdit Ignore FilterEdit LocalEdit Path to ServeEdit Tool ...Edit current file in working copyEdit fileEdit hookEdit patch dependency graphEdit patched file and rejects?Edit repository ignore filterEdit resolved fileEditor launch failureEmailEmail DAG Range...Email Selected...Email address to use in the "From" header and for the SMTP envelopeEmail outgoing changesets for remote repositoryEmit debugging output (--debug)Enabled Overlay HandlersEnabled overlaysEncodingEnglish MessagesEnter line number (1 - %d)Enter revision identifierErrorError encountered.Error executing "commit finished" triggerError getting commit message information from Issue Tracker pluginError loading subreposError previewing subrepo: %sError string "%(arg0)s" at %(arg1)s
                                                                                                              Please edit your configError writing fileExcludeExcludes:Execute custom tool '%s'ExitExit without finishing resolve?Exiting with an unfinished graft is not recommended.Exiting with an unfinished rebase is not recommended.Explorer Extension SettingsExport DAG Range...Export Diff...Export Selected...Export patchExtExtensionsFailed to add repositoryFailed to add subrepositoryFailed to execute custom commandFailed to load issue tracker '%s': %sFailed to load issue tracker: '%s': %s. Failed to open path in terminalFailed to open repositoryFailed!Fetch - use fetch (auto merge pulled changes)Fetch - use fetch extension (fetch is not active!)Fields to match:FileFile Differences Log ColumnsFile HistoryFile History Log ColumnsFile List ToolbarFile StatusFile Status:File already existsFile conflicts need to be resolvedFile is binaryFile is larger than the specified max size. maxdiff = %s KBFile may be binary (maximum line length exceeded)File or diffs not displayed: File or diffs not displayed: File is larger than the specified max size. maxdiff = %s KBFile pattern setsFilenameFilesFiles of at least the specified size (in megabytes) will be added as bfilesFiles of at least the specified size (in megabytes) will be added as largefilesFiles with names meeting the specified patterns will be automatically added as bfilesFiles with names meeting the specified patterns will be automatically added as largefilesFilter graph with revision sets or branchesFilter:Find RenamesFind copy and/or rename sourcesFind matches - %sFind revisions matching fields of:Find revisions that "match" one or more fields of the given set of revisions.Finding outgoing changesets to %s...FinishedFirst n members of a set.First parent for all changesets in set, or the working directory.Fixed revisionsFlag:Fold patches...Follow copies and renamesFont used to display changelog data. Default: monospace 10Font used to display commit messages. Default: monospace 10Font used to display output messages. Default: sans 8Font used to display text differences. Default: monospace 10FontsFor which kinds of revisions the tool will be enabled It is only taken into account when the tool is shown on the selected revision context menu.Force Repo TabForce a merge with outstanding changes (-f/--force)Force push or pop (--force)Force push or pull (override safety checks, --force)Force push to remote location (-f/--force)Force removal of modified files (--force)ForgetForget Files...Fork GUIForwardFound %d incoming changesetsFound incoming changesets from %sFromFrom:Full AuthornameFull Path TitleGenerate English commit messages even if LANGUAGE or LANG environment variables are set to a non-English language. This setting is used by the Merge, Tag and Backout dialogs. Default: FalseGetting incoming changesets from %s...Git FormatGit patches can describe binary files, copies, and permission changes, but recipients may not be able to use them if they are not using git or Mercurial.GlobGlobal SettingsGnuPGGo toGo to LineGo to a specific revisionGo to current revisionGoto ancestor of %s and %sGoto common ancestorGoto revisionGraftGraft - %sGraft Selected to local...Graft abortedGraft changesetGraft changeset #%d of %dGraft failedGraft generated merge conflicts that must be resolvedGraft is completeGraft:GraphGraphical merge program for resolving merge conflicts. If left unspecified, Mercurial will use the first applicable tool it finds on your system or use its internal merge tool that leaves conflict markers in place. Choose internal:merge to force conflict markers, internal:prompt to always select local or other, or internal:dump to leave files in the working directory for manual mergingGreatest common ancestor of the two changesets.GreekGuards: %d/%dGuess RenamesGzip tar archivesHTTP Error: %d (%s)Head is closed!HebrewHg command:Hg file log viewer [%s] - %sHg patches (as generated by export command) are compatible with most patch programs. They include a header which contains the most important changeset metadata.Hide DetailHide TagsHide context menu outside repositoriesHighlight IconHook typeHooksHostHost name and (optional) port of proxy server, for example "myproxy:8000"Host name of mail serverHostname the sender can use to identify itself to the mail server.How many lines a "zebra stripe" should span in multiline output. Default is 1; set to 0 to disable.IconIconsIf you still have trouble, please file a bug report.Ignore Ignore Blank LinesIgnore WS AmountIgnore White SpaceIgnore caseIgnore changes in the amount of white space in diff views. Default: FalseIgnore changes in the amount of white space in the annotate view. Default: FalseIgnore changes whose lines are all blank in diff views. Default: FalseIgnore changes whose lines are all blank in the annotate view. Default: FalseIgnore filter - %sIgnore white space when comparing lines in diff views. Default: FalseIgnore white space when comparing lines in the annotate view. Default: FalseIgnored*Immediate OperationsImport - %sImport from ClipboardImport to &MQIn &Current RevisionIn &Original RevisionIn All &HistoryIn Current &FileIn-Reply-To:IncludeInclude all ancestorsInclude patch queueIncludes:Incoming BookmarksIncoming from %s aborted, ret %dIniparse must be installed.Iniparse package not foundInitial revisionInline TagsInput new guards for %s:Insufficient access rights, reverting to read-only mode.Insufficient access rights.InterruptedInterrupted graft operation foundInvalid Settings - Please provide your ReviewBoard usernameInvalid Settings - The ReviewBoard server is not setupInvalid commandInvalid date formatInvalid default push revision: %s. Please check your Mercurial configuration (tortoisehg.defaultpush)Invalid glob expressionInvalid regexp expressionInvalid reviewboard plugin. Please download the Mercurial reviewboard plugin version 3.5 or higher from the website below. %sIssue LinkIssue RegexIssue TrackerIssue Tracker PluginIssue Tracker Plugin ErrorIssue Tracker TriggerIssue TrackingIt was not possible to fully load the subrepository list for the repository in:

                                                                                                              %s

                                                                                                              The following subrepositories may be missing, broken or on an inconsistent state and cannot be accessed:

                                                                                                              %sIt was not possible to get the subrepository list for the repository in:

                                                                                                              %sItalicJapaneseKeep patch filesKeyword SearchKiln BfilesKnown bad revision:Known good revision:KoreanLargefilesLeft ToolbarLet the user update the projrc on incoming:

                                                                                                              • never: [default] Show whether the remote projrc file has changed, but do not update (nor ask to update) the local projrc file.
                                                                                                              • prompt: Look for changes to the projrc file. If there are changes _always_ show a confirmation prompt, asking the user if it wants to update its local projrc file.
                                                                                                              • auto: Look for changes to the projrc file. Use the value of the "projrc.confirm" configuration key to determine whether to show a confirmation dialog or not before updating the local projrc file.

                                                                                                              Default: neverLicenseLike "keyword(string)" but accepts a regex.LineList of all toolsList of settings that will NOT be pulled from the project configuration file. Default is exclude none of the included settings.List of settings that will be pulled from the project configuration file. Default is include NO settings.List updated files (--verbose)Load &All RevisionsLoad all revisions into graphLoading repository %sLocal HostnameLocal PathLocal Path:Local Repository %sLocal disks onlyLocal revision informationLocal tagLocation:Locked*LogLog Batch SizeLong SummaryMMQ Git FormatMQ QPushPushMQ QPushPush allMQ optionsMake MQ patches secret (instead of draft). Default: FalseMake repo compatible with Mercurial <1.7Making a "draft" revision "secret" is generally a safe operation. However, there are a few caveats: - "secret" revisions are not pushed. This can cause you trouble if you refer to a secret subrepo revision. - If you pulled this revision from a non publishing server it may be moved back to "draft" if you pull again from that particular server. Please be careful!Manage HTTPS connection security and user authenticationManage pending perforce changelistsMandatory Issue ReferenceManually resolve rejected chunks?Mark as &UnresolvedMark this chunk as resolved, goto next unresolvedMark this chunk as unresolvedMark this file as resolvedMark this file as unresolvedMatch TextMatch any of %d revisionsMax ChangesMax Diff SizeMax FilesMaximum number of changes to list on the changelog. Default: 10Maximum number of files to list per changeset. Default: 10Members of a set with no children in set.Menu BehaviorMercurial Re&solveMercurial UserMercurial command is still running. Are you sure you want to terminate?Mercurial keyring extension is enabled. Passwords will be stored in a platform-native secure method.Mercurial was unable to find an editor. Please configure Mercurial to use an editor installed on your system.MergeMerge - %sMerge - allow to merge with local changesMerge all pending dependenciesMerge caused file conflictsMerge changesetMerge from (other revision)Merge rejected patch chunks into %sMerge revision not specified or not foundMerge to (working directory)Merge using selected merge toolMerge with %sMerging...MessageMessage FontMessage Translation FailureMessage identifier to reply to, for threadingMin Similarity: %d%%Minimum SizeMissing informationModi&fy HistoryMonitor Repo ChangesMonitor working
                                                                                                              directory changesMoveMove all files leftMove all files rightMove changes between working dir and patchMove selected chunks leftMove selected chunks rightMove selected file leftMove selected file rightMoved tag %s to changeset %s (from changeset %s)Multiple sources chosenNameName associated with commits. The common format is:
                                                                                                              Full Name <email@example.com>Name or email address of the person in charge of the repository.Named branch "%s" already exists, last used in revision %d New &GroupNew &WorkbenchNew Branch: New Commit PhaseNew GroupNew Name:New Patch BranchNew RepositoryNew ShelfNew Tool ...New file createdNew hookNew patch message:New patch queue nameNew shelf createdNextNext DiffNext diffNo DatesNo appropriate filesNo backup (-n/--nobackup)No branch changesNo chunks remainNo deletable chunksNo diff tool foundNo editor foundNo file changesNo files checkedNo files found for this operationNo files selectedNo files to findNo host validation, but still encrypted (bad)No ignored files foundNo incoming changesets from %sNo issue link was found in the commit message. The commit message should contain an issue link. Configure this in the 'Issue Tracking' section of the settings.No items to displayNo matches foundNo merge conflicts, ready to commitNo modified files checkmarked for commitNo operation to performNo outgoing changesetsNo outgoing changesets to %sNo patch branch selectedNo pending Perforce changelistsNo remote repository URL or path setNo repository foundNo shell configuredNo transaction availableNo trash files foundNo unknown files foundNo username configuredNo valid default remote repository URL or path has been configured for this repository.

                                                                                                              Please type and save a remote repository path on the Sync widget.No visual diff tools were detectedNo visual editor configuredNone - simply pull changesetsNordicNormalize file line endings during and after patch to lf or crlf. Strict does no normalization. Auto does per-file detection, and is the recommended setting. Default: strictNot a Mercurial subrepo, not previewableNot a head revision!Not a head, backout will create a new head!Nothing CommittedNothing changed.Nothing to importNothing to pushOKOn repowidget, show forOne or more of the changesets that you are attempting to push involve the creation of a new branch. Do you want to create a new branch in the remote repository?Only consider deleted filesOnly files modified/created in this revisionOnto destinationOpenOpen &TerminalOpen S&ubrepositoryOpen a new named branchOpen a shell terminal in the repository rootOpen a shell terminal in the selected folderOpen advanced query editorOpen all repositories in new tabsOpen hgweb configOpen new tabs next to the current tabOpen shelve toolOpen the repository in a file browserOpen the repository in a new tabOpen the selected folder in the system file managerOpen the selected subrepositoryOperation aborted:

                                                                                                              %(arg0)s.Optional. Comma-separated list of host names that should bypass the proxyOptional. Method to use to send email messages. If value is "smtp" (default), use SMTP (configured below). Otherwise, use as name of program to run that acts like sendmail (takes "-f" option for sender, list of recipients on command line, message on stdin). Normally, setting this to "sendmail" or "/usr/sbin/sendmail" is enough to use sendmail to send messages.Optional. PEM encoded client certificate chain file. Environment variables are expanded in the filename.Optional. PEM encoded client certificate key file. Environment variables are expanded in the filename.Optional. Password to authenticate with at the proxy serverOptional. Password to authenticate with. If not given, and the remote site requires basic or digest authentication, the user will be prompted for it.Optional. User name to authenticate with at the proxy serverOptional. Username to authenticate with. If not given, and the remote site requires basic or digest authentication, the user will be prompted for it. Environment variables are expanded in the username letting you do foo.username = $USER.OptionsOptions:Or use:Order the subrepos as in .hgsubOther revision informationOutgoing BookmarksOutgoing aborted, ret %dOutgoing to %s aborted, ret %dOutput FontOverlaysParent 1:Parent 2:Parent:ParentsPasswordPassword to authenticate to mail server withPassword to authenticate with review boardPassword:Paste &FilenamesPatch Branch ToolbarPatch EOLPatch Files (*.patch)Patch Name RequiredPatch QueuePatch Queue Actions ToolbarPatch date:Patch exportedPatch failed to applyPatch files (*.diff *.patch)Patch files already existPatch fold - %sPatch message:Patch name:Patch series description is sent in initial summary email with [PATCH 0 of N] subject. It should describe the effects of the entire patch series. When emailing a bundle, these fields make up the message subject and body. Flags is a comma separated list of tags which are inserted into the message subject prefix.Patch user:Patch:Patch: %sPatches exportedPatches to foldPathPath Edit ToolbarPath to review board example "http://demo.reviewboard.org"Path to the directory where a system-wide cache of bfiles will be storedPath to the directory where a user's cache of largefiles will be storedPath:Paths in Repository Settings:PatternsPending Perforce Changelists - %sPerforce pending...Perforce:Perform a push before updating (-p/--push)PhasePlain, do not prepend Hg headerPlease configure a visual editor.Please enter a usernamePlease enter commit messagePlease report this bug to our bug trackerPlease wait while committing merged files.Please wait while making backout.Please wait while the file is opened ...Please wait...PopPop allPortPort to connect to on mail server. Default: 25Port to listen onPort:Post &ReviewPost Pull BehaviorPost Pull: Post ReviewPost Selected to Review Board...Post to Re&view Board...Prepare to backoutPrepare to mergePreserve files beginning with .hgPrevPreviewPreview:Previous DiffPrevious diffProjrcProxyPublish request immediatelyPullPull from %s aborted, ret %dPull from %s completedPull incoming changes from selected URLPull incoming changesets into your repositoryPull to here...Pulling from %s...PurgePus&hPush &AllPush After CommitPush After Commit:Push Requires SSLPush Selected &BranchPush allPush current branch (%s)Push outgoing changes to selected URLPush to %s abortedPush to %s aborted, ret %dPush to %s completedPush to &HerePush to remote repository %s ?Push up to current revision (#%d)Push up to revision #%dPushing to %s...QNewQRefreshQueryQuitR&epository Registry OptionsREADME not configuredRe&coverRe&move VersionedRe&move from RegistryRe&nameRe&name Patch...Re&name...Readonly*Ready to purge.RebaseRebase - %sRebase - rebase local commits above pulled changesRebase - use rebase extension (rebase is not active!)Rebase abortedRebase already in progressRebase changeset and descendantsRebase failedRebase generated merge conflicts that must be resolvedRebase is completeRebase unpublished onto Subversion head (override source, destination)Recurse into subrepositoriesRecurse into subrepositories (--subrepos)Redundant authentication infoRefreshRefresh &Task TabRefresh ToolbarRefresh current patchRefresh current repositoryRefresh file listRefresh only the current task tabRefresh the Repository Registry listRegexpRegexp:Regular expression search patternReject incoming changesetsRelated Paths:ReloadRemote command:RemoveRemove &All Selected FilesRemove &Unmodified FilesRemove Files...Remove authentication data from URLRemove current working revision?Remove files from version controlRemove filter, show rootRemove patches from queue?Remove selected deleted files?Remove the node and all its subnodes. Repositories are not deleted from disk.Removed tag %sRenameRename - %sRename ErrorRename FileRename file or directoryRename patch %s to:Rename patch queue '%s' toRename patch...Rename the entryReopen last closed tabReopen last closed tab groupReplaceReplace existing hook?Replace existing tag (-f/--force)Replace the existing patch files. Report only the first match per fileRepositoriesRepositoryRepository ErrorRepository ID:Repository RegistryRepository Registry updatedRepository SettingsRepository command still runningRepository is lockedRepository name to use in the web interface, and by TortoiseHg as a shorthand name. Default is the working directory.Repository not localRepository status & changesRequire confirmationResolve Conflicts - %sResolved conflictsRestart &BranchRestart Mer&geRestart Merge &withRestart all TortoiseHg applications for the following changes to take effect:Resuming rebase already in progressRevRevertRevert - %sRevert Files...Revert all file changes?Revert all files to this revisionRevert all working copy changes?Revert file changesRevert file(s) to contents at this revisionRevert files to local or other parent?Revert local file changes?Revert the following files?Revert to RevisionReverting all files will discard changes and leave affected files in a modified state.

                                                                                                              Are you sure you want to use revert?

                                                                                                              (use update to checkout another revision)Reverting p4 changelist...Review BoardReview ID:Review draft posted to %s Review published to %s RevisionRevision #%d (%s) was exported to:

                                                                                                              %s%s%sRevision &DetailsRevision SetRevision Set QueryRevision details context menuRevision has changed to:Revision is &BadRevision is &GoodRevision to Match:Revision:Revisions to Match:Right ToolbarRollback commit to revision %dRollback to revision %d (undo %s)?Running at %sRunning...RussianS&ync ToolbarS&ynchronizeSMTP HostSMTP PasswordSMTP PortSMTP TLSSMTP UsernameSSL error: %sSSL: Server certificate verify failedSSL: unknown error %s:%sSaveSave GlobalSave Open Repositories on E&xitSave PathSave changes before editing?Save current URL under an aliasSave error report toSave file as it appeared at this revisionSave file toSave hgweb configSave in RepoScan &Remote RepositoriesSearchSearch HistorySearch Selected TextSearch already in progressSearch commit message, user name, and names of changed files for string.Search file revisions for patternsSearch in All &HistorySearchingSearching...Second parent for all changesets in set, or the working directory.Secret MQ PatchesSecure HTTPS ConnectionSecuritySecurity: Select &AllSelect &NoneSelect Destination FileSelect Destination FolderSelect Directory containing patchesSelect RepositorySelect Source FileSelect Source FolderSelect Tool:Select a GUI location to edit:Select an existing repository to add as a subrepoSelect branch of merge commitSelect bundle fileSelect destination repositorySelect patch folderSelect patchesSelect post-pull operation for this repositorySelect repository directory to addSelect repository directory to openSelect source repositorySelect the initial revision that will be selected when opening a repository. You can select the "current" (i.e. the working directory parent), the current "tip" or the working directory ("workingdir"). Default: currentSelect the initial widget that will be shown when opening a repository. Default: revdetailsSelect the revisions that will be pushed by default, whenever you click the Push button.

                                                                                                              • all: The default. Push all changes in all branches.
                                                                                                              • branch: Push all changes in the current branch.
                                                                                                              • revision: Push the changes in the current branch up to the current revision.

                                                                                                              Default: allSelect the toolbar or menu to changeSelect when TortoiseHg will show a prompt to activate a bookmark when updating to a revision that has one or more bookmarks.

                                                                                                              • auto: Try to automatically activate bookmarks. When updating to a revision that has a single bookmark it will be activated automatically. Show a prompt if there is more than one bookmark on the revision that is being updated to.
                                                                                                              • prompt: The default. Show a prompt when updating to a revision that has one or more bookmarks.
                                                                                                              • never: Never show any prompt to activate any bookmarks.

                                                                                                              Default: promptSelect when the working directory status list will be refreshed:
                                                                                                              - auto: [default] let TortoiseHg decide when to refresh the working directory status list.
                                                                                                              TortoiseHg will refresh the status list whenever it performs an action that may potentially modify the working directory. This may miss any changes that happen outside of TortoiseHg's control;
                                                                                                              - always: in addition to the automatic updates above, also refresh the status list whenever the user clicks on the "working dir revision" or on the "Commit icon" on the workbench task bar;
                                                                                                              - alwayslocal: same as "always" but restricts forced refreshes to local repos.
                                                                                                              Default: autoSelect when your command will be runSelect whether you want to have a single workbench window. If you disable this setting you will get a new workbench window everytime that you use the "Hg Workbench" command on the explorer context menu. Default: TrueSelected changeset pair not relatedSend &EmailSend changesets as Hg patchesSend single binary bundle, not patchesSending EmailServerServer Repository IDServersSet AncestrySet Date:Set LogicSet username:Settin&gsSettingsSettings File:Several icons are courtesy of the TortoiseSVN and Tango projectsSh&ow Repository RegistryShelfShelf clearedShelf deletedShelf: %sShellShelve - move local changes to a patchShelve ChangesShould new tabs be open next to the current tab? If False new tabs will be open after the last tab. Default: TrueShow &AuthorShow &DateShow &Patch QueueShow &PathsShow &RevisionShow About DialogShow DetailShow FunctionShow IconShow IssuesShow Issues...Show LogShow Output LogShow Revision &DetailsShow S&hort PathsShow a full directory path of the repository in the dialog title instead of just the root directory name. Default: FalseShow allShow changes from first parentShow changes from second parentShow full authorname in Logview. If not enabled, only a short part, usually name without email is shown. Default: FalseShow tabs along the side of the bottom half of each repo widget allowing one to switch task tabs without using the toolbar. Default: offShow tags at start of commit message.Show the history of the selected fileShow which function each change is in. Default: FalseShow/Hide hidden changesetsSingle Workbench WindowSizeSize (KB)Skip final confirmation page, close after commit.Skipping %s, unable to readSome of the files that you have selected are of a size over 10 MB. You may make more efficient use of disk space by adding these files as largefiles, which will store only the most recent revision of each file in your local repository, with older revisions available on the server. Do you wish to add these files as largefiles?Sort by &NameSort by &PathSort set by keys. The default sort order is ascending, specify a key as "-key" to sort in descending order.Sort the group by full pathSort the group by short nameSourceSource:South-Eastern EuropeSouthern EuropeSpace separated list of branch names and colors of the form branch:#XXXXXX. Spaces and colons in the branch name must be escaped using a backslash (\). Likewise some other characters can be escaped in this way, e.g. \u0040 will be decoded to the @ character, and \n to a linefeed. Default: None (leave blank)Space separated list of shell operations you would like to be performed immediately, without user interaction. Commands are "add remove revert forget". Default: None (leave blank)Space separated list of tags that will not be shown. Useful example: Specify "qbase qparent qtip" to hide the standard tags inserted by the Mercurial Queues Extension. Default: None (leave blank)Specify name of new shelfSpecify the number of spaces that tabs expand to in various TortoiseHg windows. Default: 8Specify visual diff tool, as described in the [merge-tools] section of your Mercurial configuration files. If left unspecified, TortoiseHg will use the selected merge tool. Failing that it uses the first applicable tool it finds.Specify visual editor, as described in the [editor-tools] section of your Mercurial configuration files. If left unspecified, TortoiseHg will use the first applicable tool it finds.Specify your preferred user interface language (restart needed)StartStart a new patch branchStart revision:Start web server for this repositoryStatStatusStatus File List ToolbarStatus:StopStop current operationStoppedStrikeStrip - %sStrip:StripesStripping Mercurial header removes username and parent information. Only useful if recipient is not using Mercurial (and does not like to see the headers).StyleSub menu items:Subject:Submitting p4 changelist...Subrepo added to .hgsub fileSubrepo created and set to initial revision.Subrepo initialized to revision:Subrepo removed from repository.Subrepo state is:Subrepo statesSubrepo was not changed.Subrepository already existsSubrepository not found in the working directory.Subversion:SuccessSuggested length of commit message lines. A red vertical line will mark this length. CTRL-E will reflow the current paragraph to the specified line length. Default: 80Summary (first description line)Summary Line LengthSummary:SyncSynchronizeSynchronize with dragged repositorySynchronize with remote repositorySyntax HighlightingSystem CacheTab WidthTag '%s' has been addedTag '%s' has been movedTag '%s' has been removedTag - %sTag:Tagged:Tags:Take &OtherTar archive compressed using bzip2Tar archive compressed using gzipTar archivesTarget GroupsTarget PeopleTarget:Task TabsTask Toolbar OrderTaskbarTemporarily disable configured HTTP proxyTemporary files are removed when this dialog is closedTerminated by userTest this revision and report findings. (good/bad/skip)Text Translation FailureText files (*.txt)Textual description of the repository's purpose or contents.ThaiThe .hgsub file already contains the line:

                                                                                                              %sThe changes from revision %s and all unmerged parents will be discarded. Are you sure this is what you want to do?The command "%s" could not be executed.The command that will be executed. To execute a python function prepend the command with "python:". The default repository id for this repo on the review board serverThe destination "%s" already exists as a file!The destination "%s" already exists as a folder!The destination must be within the repository tree.The directory "%s" is not empty! Do you want to overwrite it?The directory where the command will be executed. If this is not set, the root of the current repository will be used instead. You can use the same {VARIABLES} as on the "Command" setting. The exception error message was:

                                                                                                              %s

                                                                                                              The file "%s" already exists! Do you want to overwrite it?The following error message was returned: "%s" Please check that the command path is valid and that it is a valid applicationThe hook name cannot contain any spaces, tabs or '=' characters.The hook name. It cannot contain spaces.The maximum size file (in KB) that TortoiseHg will show changes for in the changelog, status, and commit windows. A value of zero implies no limit. Default: 1024 (1MB)The named bookmark or all bookmarks.The named tag or all tags.The number of revisions to read and display in the changelog viewer in a single batch. Default: 500The phase of new commits. Default: draftThe selected command is emptyThe selected folder:

                                                                                                              %s

                                                                                                              is not inside the target repository.

                                                                                                              This may be allowed but is greatly discouraged.
                                                                                                              If you want to add a non trivial subrepository mapping you must manually edit the .hgsub fileThe selected repository:

                                                                                                              %s

                                                                                                              cannot be open!The selected repository:

                                                                                                              %s

                                                                                                              is already a subrepository of:

                                                                                                              %s

                                                                                                              as: "%s"The selected revision (%s) has a bookmark on it called "%s".

                                                                                                              Do you want to activate it?
                                                                                                              You can disable this prompt by configuring Settings/Workbench/Activate BookmarksThe selected revision (%s) has %d bookmarks on it.

                                                                                                              Select the bookmark that you want to activate and click OK.

                                                                                                              Click Cancel if you don't want to activate any of them.

                                                                                                              You can disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                                                                              The selected revision (rev #%d) cannot be imported because it is not a descendant of qparent (rev #%d)The selected subrepo:

                                                                                                              %s

                                                                                                              has been added to the .hgsub file of the repository:

                                                                                                              %s

                                                                                                              Remember that in order to finish adding the subrepo you must still commit the changes to the .hgsub file in order to confirm the addition of the subrepo.The set of all parents for all changesets in set.The source must be within the repository tree.The subrepository is dirty.The tool icon. You can use any built-in TortoiseHg icon by setting this value to a valid TortoiseHg icon name (e.g. clone, add, remove, sync, thg-logo, hg-update, etc). You can also set this value to the absolute path to any icon on your file system.The tool label, which is what will be shown on the repowidget context menu. If no label is set, the tool name will be used as the tool label. If no tooltip is set, the label will be used as the tooltip as well.The tool name cannot have any spaces in it.The tool name. It cannot contain spaces.The tooltip that will be shown on the tool button. This is only shown when the tool button is shown on the workbench toolbar.The working directory is already merged. Continue or discard existing merge.There are existing patch files for %d revisions (%s) in the selected location (%s). There are merge conflicts to be resolvedThere are no conflicting file merges.There are no file changes to viewThere are no files that may have been renamedThere is already an existing folder with that same name.There is an existing %s.%s hook. Do you want to replace it?There is no rollback transaction availableThg - TortoiseHg's GUI tools for Mercurial SCM (Hg) This appears to be a binary file.This error will not be shown again until you restart the workbenchThree-way Merge ToolTitleToTo finish merging, you must commit the working directory. To cancel the merge you can update to one of the merge parent revisions.To graft destinationTo rebase destinationTo:Toggle display of text search barToggle filtering of non-matched changesetsToo many rows selected for menuTool &ResolveTool labelTool launch failureTool nameToolsTools shown on selected locationTooltipTop menu items:TortoiseHg Bookmark SyncTortoiseHg Bug ReportTortoiseHg Command DialogTortoiseHg CommitTortoiseHg Dialogs (version %s), Mercurial (version %s) TortoiseHg ErrorTortoiseHg New Shelf NameTortoiseHg Overlay Icon ServerTortoiseHg PromptTortoiseHg SearchTortoiseHg SettingsTortoiseHg Shelve - %sTortoiseHg Web ServerTortoiseHg WorkbenchTortoiseHg has created a new .hgignore file. Would you like to add this file to the source code control repository?Traditional ChineseTransplant:Trigger revision set queryTry refreshing your repository.TurkishTypeUI LanguageURLURLError: %sUkrainianUnable to backoutUnable to compress historyUnable to create a Mercurial.ini fileUnable to create a config fileUnable to delete %d file or folderUnable to delete %d files or foldersUnable to determine pending changesetsUnable to determine working copy revision Unable to find changesetUnable to mergeUnable to merge chunksUnable to parse p4pending outputUnable to read fileUnable to read repository statusUnable to removeUnable to remove URLUnable to remove file %s, permission deniedUnable to save after commit pushUnable to save an URLUnable to save authenticationUnable to save auto include listUnable to save post pull operationUnable to save recurse in subrepos.Unable to save usernameUnable to show subrepository filesUnable to start the following command:Unable to translate input to local encoding.Unable to update repository nameUnable to write .hgignore fileUnable to write configuration fileUnable to write diff fileUnapply all patchesUnapply one patchUnbundleUncheckUncheck all filesUncheck to consider all revisioned files for copy sourcesUncommited merge - please select a parent revisionUncompressed tar archiveUncompressed zip archiveUnderlineUndo close other tabsUndo close tabUndo last commit?Undo last transaction?Undo most recent commit (%d), preserving file changes?UnicodeUnknown revision!Unresolved conflictsUnresolved conflicts remain. Are you sure?Unsaved changes will be lost. Do you want to reload?Unsupported repository type (%s)UnversionedUpdateUpdate - %sUpdate - pull, then try to updateUpdate IconsUpdate ReviewUpdate icons for this repositoryUpdate on incomingUpdate the fields of this existing requestUpdate to:Update working directoryUpdate...Updating repository registryUpgrading to a more recent TortoiseHg is recommended.Use English backout messageUse English commit messageUse compact viewUse current dateUse custom commit message:Use extended (git) patch formatUse git extended diff header format. Default: FalseUse my user name instead of graft committer user nameUse proxy serverUse pull protocol to copy metadataUserUser AuthenticationUser CacheUser authentication data should be associated with the hostname using the security dialog.User name to authenticate with review boardUser:UsernameUsername to authenticate to mail server withVerify backout revision and ensure your working directory is clean.Verify merge targets and ensure your working directory is clean.Verify with Certificate Authority certificates (best)Verify with stored host fingerprint (good)Vi&ew FileVietnameseView File atView O&therView change as unified diff outputView change history in repositoryView change history of selected filesView change in context of fileView changes to current in external diff toolView changes using GUI diff toolView file as it appeared at this revisionView file changes in external diff toolView the repository's settingsVisual DiffVisual Diff ToolVisual Diff...Visual Diffs - Visual EditorVisual diff between resolved file and first parentVisual diff between resolved file and second parentVisual diff...Visual diffs are not supported for files in subrepositories. They will not be shown.Visual three-way diffWarningWarning: affects all Tortoises, logoff required after changeWas renamed fromWeb ServerWebconfWestern EuropeWhat do you want to do? When enabled, automatically show the Output Log when the command is run. Default: False.When to ask the user to confirm the update of the local "projrc" configuration file when the remote projrc file changes. Possible values are:

                                                                                                              • always: [default] Always show a confirmation prompt before updating the local .hg/projrc file.
                                                                                                              • first: Show a confirmation dialog when the repository is cloned or when a remote projrc file is found for the first time.
                                                                                                              • never: Update the local .hg/projrc file automatically, without requiring any user confirmation.
                                                                                                              Whether to allow pushing to the repository. If empty or not set, push is not allowed. If the special value "*", any remote user can push, including unauthenticated users. Otherwise, the remote user must have been authenticated, and the authenticated user name must be present in this list (separated by whitespace or ","). The contents of the allow_push list are examined after the deny_push list.Whether to deny pushing to the repository. If empty or not set, push is not denied. If the special value "*", all remote users are denied push. Otherwise, unauthenticated users are all denied, and any authenticated user name present in this list (separated by whitespace or ",") is also denied. The contents of the deny_push list are examined before the allow_push list.Whether to require that inbound pushes be transported over SSL to prevent password sniffing.Which template map style to useWhite&spaceWork on patch queue (--mq)WorkbenchWorkbench Log ColumnsWorkbench custom toolbarWorking CopyWorking DirectoryWorking Directory (merged)Working directoryWorking directory is not clean! View changes...Working directory statusWrap searchWrite bundleWrite diff fileWrite patch series (bundle) descriptionYou are trying to move the phase of revision %d backwards, from "%s" to "%s". However, "%s" is a lower phase level than "%s". Moving the phase backwards is not recommended. For example, it may result in having multiple heads if you modify a revision that you have already pushed to a server. Please be careful!You can visit our site hereYou cannot merge a revision with itselfYou have authentication info configured for this host and inside this URL. Remove authentication info from this URL?You have marked all rejected patch chunks as resolved yet you have not modified the file on the edit panel. This probably means that no code from any of the rejected patch chunks made it into the file. Are you sure that you want to leave the file as is and consider all the rejected patch chunks as resolved? Doing so may delete them from a shelve, for example, which would mean that you would lose them forever! Click Yes to accept the file as is or No to continue resolving the rejected patch chunks.You have multiple renames selected for destination file: %s. Aborting!You have selected one or more files that have been modified. By default, these files will not be removed. What would you like to do?You likely need to refresh this applicationYou may continue or start the graftYou may continue the compressYou may continue the graftYou may continue the rebaseYou must enter a patch nameYou must identify yourself to MercurialYou must provide revisions to graftYou must provide source and dest argumentsYou must provide the path to a fileYou must set a command to run.You must set a tool name.You must set a valid hook type.Your TortoiseHg is up to date.Your current working revision (%d) will be removed by this rollback, leaving uncommitted changes. Continue?Zip archive compressed using deflateZip archives[WARNING] Invalid subrepo revision ID: %s [command completed successfully %s][command interrupted %s][command returned code %d %%s][command terminated by user %s][non-existant][original][working copy]a revision to sendabort: abort: %s abort: %s! action buttonCommitadd diffstat output to messagesaddedall revisions converted from subversionalways fork GUI processattachbasic commands: bodybookmark: branch: bundle file to previewcan not read file "%s". Ignored. changeset %d:%schangeset to view in diff toolchangeset which represents converted svn revisionchangeset: %scleanclone only the specified branchcolumn headerAgecolumn headerAuthorcolumn headerBranchcolumn headerChangescolumn headerConverted Fromcolumn headerDescriptioncolumn headerFilenamecolumn headerGraphcolumn headerLatest tagscolumn headerLocal Timecolumn headerNodecolumn headerPhasecolumn headerRevcolumn headerTagscolumn headerUTC Timecommand parse error: %sconfig itemCommitdefaultdiffstatdiscard uncommitted changes (no backup)display help and exitdo not back up stripped revisionsdo not fork GUI processenable additional outputeol is incompatible with win32texterror while running command exec mode has been setexec mode has been unsetfailed to start command field to give initial focusfile has been deleted, refreshfile has been modified, refreshfilesfilesAllfilesNonefilling (%d)filterglobal options:grep: %s grep: invalid match pattern: %s hgsubversion is incompatible with perfarcehint:hint: historyignore case during searchignoredimport to the patch queue (MQ)in the futureinclude the specified changesetinitial search patterninlineinotify is not supported on this platforminvalid "hello" message: %rinvalid argumentskeep original branch nameskeep original changesetslaunch visual diff toollist of commands: locallsprof not available - install from http://codespeak.net/svn/user/arigo/hack/misc/lsprof/make the tag localmerge with old dirstate parent after backoutmethodmissingmodifiedmust be specified 'type' in stylemust be specified repositoryname of the hgweb config file (DEPRECATED)name of the hgweb config file (serve more than one repository)needs merge of %i heads needs merge with %s needs merge with %s (through %s) needs update of diff base to tip of %s no commands defined no guardsno matches found: %sno outgoing changesetsno outgoing changesets in current branch (%s) / %d in totalno outgoing changesets up to current revision (#%d) / %d in totalno outgoing changesets up to revision #%d / %d in totalno repo at notify the shell for paths givennowopen a new workbench windowopen to lineopen...options: parent to choose when backing out mergepassword: perfarce is incompatible with hgsubversionprint command execution profileprint licenseread file list from fileread file list from file encoding utf-8rebase from the specified changesetrebase onto the specified changesetrecord datecode as commit daterecord user as committerremove a tagremove the status cacheremove working directoryremovedreplace existing tagrepository %s not foundrepository root directory or symbolic path namerev: %d (%s)revisionrevision to annotaterevision to archiverevision to backoutrevision to displayrevision to mergerevision to striprevision to tagrevision to updaterevision, tag or branch to check outrevisions %d:%s to %d:%srevisions to graftrevisions to view in diff toolselected filessend patches as attachmentssend patches as inline attachmentssend patches as part of the email bodyshow files without changesshow ignored filesshow the contents of the status cache (no update)start debuggerstart progressCommitstart progressMQ Actionstart progressRollbackstatussubreposuppress outputsync command already runningtab tooltipCommittab tooltipPatch Branchtab tooltipRevision detailstab tooltipSearchtab tooltipSynchronizethe clone will include an empty working copy (only a repository)the revision to showthg %s: %s thg aboutthg add [FILE]...thg annotatethg archivethg backout [OPTION]... [[-r] REV]thg bisectthg commit [OPTIONS] [FILE]...thg debugbugreport [TEXT]thg drag_copy SOURCE... DESTthg drag_move SOURCE... DESTthg email [REVS]thg forget [FILE]...thg graft [-r] REV...thg grepthg guessthg help [COMMAND]thg hgignore [FILE]thg import [OPTION] [SOURCE]...thg init [DEST]thg log [OPTIONS] [FILE]thg manifest [-r REV] [FILE]thg merge [[-r] REV]thg purgethg rebase -s REV -d REV [--keep]thg rejects [FILE]thg remove [FILE]...thg repoconfigthg resolvethg revdetails [-r REV]thg revert [FILE]...thg serve [--web-conf FILE]thg shellconfigthg shelvethg status [OPTIONS] [FILE]thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]thg thgstatus [OPTION]thg update [-C] [[-r] REV]thg userconfigthg version [OPTION]thg: %s thg: command '%s' is ambiguous: %s thg: unknown command '%s' unknownunknown revision!unrecognized profiling format '%s' - Ignored update all repos in current diruse "thg -v help %s" to show global optionsuse "thg -v help%s" to show aliases and global optionsuse "thg help" for the full list of commandsuse "thg help" for the full list of commands or "thg -v" for detailsuse as commit messageuse only one form to specify the revisionuse pull protocol to copy metadatause uncompressed transfer (fast over LAN)version %swait until the second ticks overwill be closedwin32text is incompatible with eolwindow titleCommitwith Mercurial-%s, Python-%s, PyQt-%s, Qt-%sworking changesworking dir stateCleanwrap mode&NoneProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2016-02-13 18:28+0000 Last-Translator: Aldwoni Language-Team: Dutch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Launchpad-Export-Date: 2019-07-17 05:42+0000 X-Generator: Launchpad (build 19009) Onderbreken met klavier, wordt afgebroken. aliases: %s (standaard: %s) (gecopiëerd van %s) (is een symlink) (heeft geen versies) (hernoemd vanaf %s) (was toegevoegd) (werd verwijderd, wordt nu gemist) (werd verwijderd) gefilterd"%s" is geen map"%s" is geen geldige map"%s" verwijderd uit de pad historiek"%s" verwijderd uit de zoekhistoriek### filter tekst ###### host certificaat vingerafdruk ###### patchnaam ###### reguliere expressie ###### reguliere expressie zoekpatroon ###### revisie set query ###% Overeenkomst%d dag%d dagen%d bestanden hebben samenvoegconflicten die moeten opgelost worden%d bestanden gewijzigd in beide takken moeten opgelost worden%d uur%d uren%d overeenkomsten gevonden%d minuut%d minuten%d maand%d maanden%d uitgaande changesets%d uitgaande changesets in huidige tak (%s) / %d in totaal%d uitgaande changesets naar %s%d uitgaande changesets tot en met huidige revisie (#%d) / %d in totaal%d uitgaande changesetst tot en met revisie #%d / %d in totaal%d patches werden geëxporteerd naar:

                                                                                                              %s%d pending changelists gevonden%d seconde%d seconden%d week%d weken%d jaar%d jaren%d%%%p%%s (hint: %s)%s (hangend)%s (aangeboden)%s - Revisie Details (%s)%s - TortoiseHg Werkbank%s - TortoiseHg Werkbank - %s%s - tak bewerking%s - commit%s - commit opties%s - hg %s%s - wegzuiveren%s - herstel repository%s - status%s - status (gefilterde selectie)%s - sync opties%s - verify repository%s: %s%s %s bestaat al, URL vervangen ?%s en %s hebben identieke inhoud Er werden %s blokken verworpen, patchbestand aanpassen samen met de verwerpingen?%s is een subrepo met wijzigingen%s is toegevoegd%s wordt genegeerd%s is gewijzigd%s is geen geldige repository%s is niet gewijzigd (zuiver)%s wordt niet getraceerd (onbekend)%s is verwijderd%s patches%s project instellingen (.hg/projrc)%s repository instellingen%s zal geïmporteerd worden naar %s's globale instellingenOver TortoiseHg&ToevoegenRepository Toevoegen...Na Indentie&Archiveren&Archiveren...&Auto&Auto-Vervolledigen&Backout...&Bisect...&Bladeren...&Bundle Rev en Nakomelingen...AnnulerenLettertekenWissen&KlonenSluitenRepository Sluiten&Commit&Commit naar huidige takKopiërenPatch KopiërenKopiëren...Maatwerk ToolbarVerwij&derenNiet-getraceer&de schrappen...Vergelijk Ander met VoorouderVergelijk met AnderVergelijk met Ouder&VerwerpenWijgingen verwerpen&Docking toolbarBewerk Bestand&Editeer Lokale versieWerkbalk be&werkenB&ewerken...&Editor OptiesPatch V&ersturen...V&erlatenNeeBestand&Filter ToolbarPatch Afwerken&ForcerenVergeten&Ga naar (bijwerken werkmap)&Ga naar Revisie...&Graft naar Lokaal...&HelpNegeren...&ImporterenOnzichtbaar&Licentie&Lokaal&Mac&Maak secret&Markeer als opgelost&Markeer als niet-opgelost&Markeer als OpgelostDoe overeenkomenSa&menvoegenSamenvoegen met Lokale revisie&Verplaatsen&Nieuwe Repository...&Nee&Nee (verwerp wijzigingen)&OpenenAlles &Openen&Open Lokale versieRepository Openen...&OorsprongsRevisie&AndereOuder revisie (%d)Plakken&Patch TakUitzuiveren...Leesmij&Rebase...Opnieuw doenVe&rversen&Repository Lijst VerversenExte&rn Bijwerken...&VerwijderenWegnemen...Vervangen&RepositoryOplossen...OmkerenOmkeren naar Revisie...Omkeren met backupOmkeren...&UitvoerenOpslaanOpslaan volgens Revisie...&Scan Repositories tijdens OpstartenZoekenZoek in Huidig BestandInstellen...In&stellingen&Shelve&Shelve...&Sla deze herziening over&SorterenSorteer op .hgsubSpaties&Strip&Strip...&TAB&TabulatiesE&tiketteren...Kies Lokale revisie&Taak Toolbar&TerminalJaOngedaan Maken&UnixOnbepaaldBijwerkenBijwerken...&VerifiërenBekijkenBekijk ChangesetOnbrekende bekijkenBekijk volgens RevisieZichtbaar&Windows&Woord&Werkbank WerkbalkenTekst omlopen&Ja'Publicerende' repository(AFGEKEURD)(is een gewijzigde en onzuivere subrepository)(is een gewijzigde subrepository)(is een onzuivere subrepository)(is een nieuwe en onzuivere subrepository)(is een nieuwe subrepository)(is een verwijderde subrepository)(is een ongewijzigde subrepository)(geen help tekst beschikbaar)(zelfde als ouder)*: niet gebruikt door TortoiseHg, opgeloste samenvoeging, onopgeloste samenvoeging3-&Wegs Vergelijking3-wegs mapvergelijkingLanceer instellingen gereedschap...%d changeset zal gestripped worden%d changesets zullen gestripped wordenAnnoteren:Kandidaat overeenkomstenVerschillen tussen Bron en DoelHost: %sNegatiefilterFout bij het ontleden!Repository Details:Gekozen Opties:Gekozen Opties: %sLokale wijzigingen gevonden die nog niet gecommit zijnOnbekende revisie !Bestanden zonder RevisiesNiet-opgevolgde BestandenWeb Server= Werkmap Ouder =Er is geen LEESMIJ bestand ingesteld voor de huidige repository.

                                                                                                              Om een LEESMIJ bestand in te stellen voor een repository dient u het repository instellingenbestand te openen, een sleutel 'readme toe te voegen aan de sectie 'tortoisehg', en moet u een bestandsnaam of URL van uw repository's LEESMIJ bestand instellen.Er bestaat al een bladwijzer met de naam "%s"Een komma-gescheiden lijst van doelgroepenEen komma-gescheiden lijst van doelpersonenEen nieuwe versie van TortoiseHg (%s) is klaar om te downloaden!U kunt een repository niet toevoegen als subrepo van zichzelfEr bestaat al een shelf met die naamEr kan geen terminal shell geopend worden voor externEr moet een terminal shell ingesteld zijnSubrepository Toevoegen...AfbrekenDe export operatie afbreken. p4pending afgebrokenInfoOver &QtTortoiseHg InfoAanvaardenAanvaardt alle overeenkomstenAanvaardt gekozen overeenkomstenAanvaardt de lokale versie van het bestand (yours)Aanvaardt het andere bestand (theirs)Aktieve BladwijzersAktieve bladwijzer?Activeren:ToevoegenVoeg G&rotebestanden toe&Largefiles Toevoegen...Bestanden Toevoegen...Voeg Pad toe om te ServerenVoeg een repository toe in deze groepVoeg toe als Grote BestandenVoeg toe als Normale BestandenBestanden toevoegen voor versie kontroleVoeg negatiefilter toe...Toegevoegen of verwijderen van patches moet samengevoegd worden in de werkmapGekozen ongetraceerde bestanden toevoegen?Scheidingslijn toevoegenAan de lijst toevoegenToegevoegdEtiket %s toegevoegd voor changeset %sOperatie Na PullLeeftijd:AliasAlle historieAlle changesets die behoren tot de takken van changesets in de set.Alle changesets, hetzelfde als 0:tip.Alle bestanden met conflicten zullen als onopgelost gemarkeerd worden.Alle conflicten zijn opgelost.Alle contextenAlle bestanden (*)Alle onderwerpenAlle revisiesAlle niet-opgeslagen wijzigingen zullen verloren gaan.Push ToelatenPush van een nieuwe tak toestaan (--new-branch)Laat toe om nieuwe takken te pushen (--new-branch)Altijd samenvoegen (indien mogelijk)Toon altijd repo tabbladen, zelfs voor één enkele repo. Standaard: NeeVerbeterenHuidige revisie VerbeterenEen alias voor "::." (voorouders van de eerste ouder van de werkmap).Een lege set, als er geen enkele revisie in de set gevonden is; anders alle revisies in de set.Er deed zich een fout voor tijdens het bijwerken van het hgrc bestand van de repository (%s)Een uitzondering deed zich voor tijdens het laden van de subrepos van:

                                                                                                              "%s"

                                                                                                              Er is een onderbroken graft operatie gvonden. U kunt geen andere graft operatie uitvoeren tgenzij u de onderbroken graft operatie eerst afbreekt.Bestand AnnoterenOp&ties voor AnnoterenFormaat ToepassenAchteraan toevoegenVoeg graft ingo aan log berichtVoeg de wijzigingen toe achteraan aan de bestaande patchbestanden. Toegepaste patchesToegepaste patches of qparentAlle patches toepassenWijzigingen toepassen vooraleer te verlaten?Eén patch toepassenArabischArchieveren - %sArchief formatenArchieftypes:Bent u zeker dat u de commit operatie wilt annuleren?Weet u zeker dat u deze bestanden en/of mappen wilt verwijderen?Weet u zeker dat u het wilt overschrijven ?Weet u het zeker ?Automatisch (triviale) samenvoegingen proberenProbeer een push uit te voeren naar de opgegeven URL of alias na elke succesvolle commit. Standaard: Geen pushAuteurAuteur KleurenAuto Commit LijstAuto Uitsluit LijstAutomatisch inbegrepen:Samenvoegingen automatisch oplossenGa automatisch naar de volgende pagina als backout en samenvoegen voltooid zijn.Ga automatisch verder naar de volgende pagina als het samenvoegen voltooid is.Samenvoegconflicten automatisch oplossen waar mogelijkTerugChangeset waarvan backout gedaan is: Backout van een ouder revisie is een bewerking in één stapBezig met backout en commit...Bezig met backout, dan samenvoegen...Backout - %sBackout changesetBackout huidige patch takBackout heeft een ouder-revisie nodigBackout revisieBackport deel van een changeset naar een afhankelijkheidBackspace of Del om rij(en) te verwijderenBackup kopiën van gewijzigde bestanden zijn te vinden in .hg/Trashcan/Achterwaartse fase-wijziging verzochtOngeldige bestandsnaamBaltischBccVooraleer een backout te doen, moet u committen, een shelve maken naar een patch, of wijzigingen verwerpen> kiezen.Vooraleer samen te voegen moet u een commit doen, of shelve naar een patch, of de wijzigingen verwerpen.Bisect - %sBisect - Slecht, Goed...Bisect - Goed, Slecht...VetBladwijzer maken...Bladwijzer '%s' bestaat nietBladwijzer '%s' werd toegevoegdBladwijzer '%s' werd verplaatstBladwijzer '%s' werd verwijderdBladwijzer '%s' werd hernoemd naar '%s'Bladwijzer maken - %sEr bestaat geen bladwijzer met de naam "%s"Bladwijzer:TakTak KleurenTak:Tak: Bladeren in RevisieBladeren door map...Bladeren...DAG Bereik bundelen...Bundelbestanden (*.hg)Bundels slaan volledige changesets op in binaire vorm. Upstream gebruikers kunnen een pull doen ervan. Dit is de veiligste manier om changesets uit te wisselen tussen Mercurial gebruikers.Lijst om Over te slaanBzip2 archievenKies Log Kolommen...C&onfigureer formaatCLI EditorKan instellingen niet wijzigen zonder het 'iniparse' package - overzicht is alleen-lezenKan revisie '%s' niet vindenAnnulerenKan subrepository niet toevoegenKan backout in een andere tak niet uitvoerenKan revisie niet exporterenKan revisie %s niet exporteren naar bestand: %s Kan de gekozen revisie niet importerenKan de Plugin Opties dialoog niet openenKan geen niet-Mercurial repositories of subrepositories openenKan repository niet openenKan bestand .hgsub niet openen in:

                                                                                                              %sKan geen nieuwe zoek startenKan bestand .hgsub niet bijwerken in:

                                                                                                              %sCcCc:KeltischCentraal en Oost EuropaCertificate Query FoutWijzig Fase naarHistoriek LettertypeWijzigingen zijn verplaatst, u moet nu een commit doenWijzigingen worden effectief na de volgende commitChangeset is een samenvoeg changeset.Changeset is een benoemde tak.Changeset is gesloten.Changeset heeft een etiket gekregen.Changeset met het hoogste revisienummer in de set.Changeset met het laagste revisienummer in de set.Changeset:ChangesetsChangesets die bestanden bevatten die overeenkomen met het patroon.Geen changesets gevonden in de opgegeven repository of in de standaard push lokatie.Changesets die voorouders zijn van een changeset in de set.Changeset waarin de gebruikersnaam de tekenreeks bevat.Changesets die bestanden toevoegen die overeenkomen met het patroon.Changesets die afstammelingen zijn van changesets in de set.Changesets die bestanden wijzigen die overeenkomen met het patroon.Changesets die bestanden verwijderen die overeenkomen met het patroon.Changesets zonder ouder changeset in de set.AanvinkenAlle bestanden aanvinkenKontroleer op inkomende wijzigingen vanaf de gekozen URLAantal aangevinkt: %dBezig met kontrolerenBezig met zoeken naar updates...Bezig met kontroleren van de status van de werkmap...Bezig met kontroleren...Vink bestanden aan om toe te voegenVink bestanden aan om te vergetenVink bestanden aan om te verwijderenVink bestanden aan om te revertenChangesets die kinderen zijn van changesets in de set.Kind:Geselecteerde blokken: %d / %dOngewijzigdWissenInhoud van shelf bestand %s uitwissen ?Veeg de huidige query en de query tekst uitWis het huidige shelf bestandKlik OK om verder te gaan of Afbreken om af te sluiten.Repository Klonen...KloonKlonen - %sRepository KlonenKloon tot revisie:Klonen...SluitenTak %s afsluitenAfsluiten Na CommitSluit Tak: Huidige tak sluitenAndere tabbladen sluitenTabblad sluitenCommit programma afsluiten na elke succesvolle commit. Standaard: NeeSluiten:Vergelijk bestandsrevisiesKomma-gescheiden lijst van archief formaten die toegelaten zijn om te downloaden.Komma-gescheiden lijst van taknamen die genegeerd moeten worden als een lijst met taknamen opgebouwd wordt voor een repository. Standaard: Geen (blank laten)Komma-gescheiden lijst van bestandspatronen voor uitsluiting. Patronen voor uitsluiting worden toegepast na insluit-patronen.Komma-gescheiden lijst van bestanden die automatisch in elke commit inbegrepen worden. Enkel bedoeld voor gebruik als repository instelling. Standaard: Geen (blank laten)Komma-gescheiden lijst van bestanden die automatisch afgevinkt worden als de status en commit schermen geopend worden. Standaard: Geen (blank laten)Komma-gescheiden lijst van in te sluiten bestandpatronen. Standaard wordt de hele repository doorzocht.Komma-gescheiden lijst van email adressen van Bcc ontvangersKomma-gescheiden lijst van email adressen van Cc ontvangersKomme-gescheiden lijst van email adressen van ontvangersOpdrachtResultaat van de opdrachtCommittenCommitscherm ToolbarCommit LaterCommit NuCommit OptiesBackout committen en de resultaten samenvoegenWijzigingen CommittenCommit de wijzigingen in de repositoryCommit contextmenuCommit resultaten van het samenvoegenCommitberichtCommit...Commit bezig...Gemeenschappelijke setsVergelijk revisies van het geselecteerde bestandBestand helemaal uit de patch verwijderen ?ComprimerenComprimeren -%sHistorie ComprimerenComprimeer changesets tot en metComprimeren is voltooid, oude historiek is ongewijzigdInstellingenbestand:Fout in Instellingen: "%(arg0)s",
                                                                                                              uw instellingen aubAangepast Gereedschap InstellenStel instellingen in voor de Verkenner uitbreidingHook configurerenConfigureer ProbleemovolgerGuards InstellenGuards instellen voor de gekozen patchStel instellingen voor repository inConfigureer de gekozen COM Bug Probleem plugin.Stel gebruikersinstellingen inConfigureert een COM IBugTraqProvider of IBugTraqProvider2 probleemopvolgingsplugin.Toevoegen BevestigenBevestig Veranderen van TakBevestig VerwijderenBevestig Schrappen van OngetraceerdeBevestig VerwerpenBevestig Wijzigingen Verwerpen"Confirm Discard MessageAfsluiten bevestigenBevestig Nieuwe TakBevestig OverschrijvenBevestig PushBevestig Push naar Externe RepositoryBevestig HerladenVerwijderen BevestigenOmkeren bevestigenBevestig OpslaanBevestig StripBevestig vervangen van de URLBevestig UndoBevestig BijwerkenBevestig het toevoegen van onbekende bestandenBevestig het verwijderen van bestandenSchrappen bestanden bevestigenPatch wachtrij wissel bevestigenBevestig schrappen van padBezig met verbinden met Review Board...Overweeg om de graft eerst af te breken.Overweeg om eerst de rebase af te breken.ContactpersoonContextmenuOnderbroken graft operatie voortzetten of afbreken ?Kontroleert draft fase gedrag bij het draaien als server. Indien true dan zullen gepushte changesets public gezet worden in zowel de client als de server, en gepullde of gekloonde changesets zullen public gezet worden in de client. Standaard: JaEen bestaande repository omzetten in een subrepositoryOmgezet Vanaf:Kopiëren&Hash Kopiëren&Pad KopiërenKopiëren - %sFout bij KopiërenKopiëer Gekozene als PatchKopiëer het volledige pad van het(de) bestand(en) naar het klembordKopiëer berichtKopiëer een van de recente commit berichtenKopiëer bron -> doelKopiëer het basispad van de repository naar het klembordKon repository lijst niet bekomenKon het Probleem Opvolger plugin COM object niet instantiërenKan het .hgsub bestand niet openenKon sommige repositories niet openenKan het specifieke bestand niet openen om te lezen.AanmakenTak MakenMaak hier een nieuwe repositoryMaak een nieuwe groep aanMaak een nieuwe patchMaak een nieuwe repository aanMaak kloon aan vanaf bronVergelijking aanmaken met alle wijzigingen in deze takVergelijking aanmaken met alle uitgaande wijzigingenNieuwe benoemde tak "%s" maken met deze commit? KnippenSchuldige gevonden.Huidige lokale revisieMaatwerk GereedschappenCyrillischDatumDatum:Hernoemingen De&tecteren...Huidige bladwijzer uitschakelen?Dode TakkenStandaard PushStandaard schermelementDefiniëert de regex om te matchen bij het opnemen van bugnummersVerwijderenVerwijderen %d bestand in .hg/TrashcanVerwijderen %d bestanden in .hg/TrashcanVerwijderen %d genegeerd bestandVerwijderen %d genegeerde bestandenVerwijderen %d onbekend bestandVerwijderen %d onbekende bestanden%s schrappen uit het repository instellingenbestand ?Groep '%s' en al zijn elementen Verwijderen?Gereedschap VerwijderenLege mappen verwijderenVerwijderen uit de lijstHook schrappenPatches verwijderen...Verwijder referentie naarSchrap de gekozen blokkenVerwijder gekozen patchesVerwijder gekozen query uit de historiekShelf bestand %s schrappen ?Schrap het huidige shelf bestandVolgende ongetraceerde bestanden schrappen?%d Bestanden verwijderd%d Bestanden en %d mappen verwijderdVerwijderd*Bezig met verwijderen afval map...Fouten tijdens verwijderenPush WeigerenOmschrijvingDoelHet doelbestand bestaat al.Doelpad:Doel:Ontdek Copiën/Hernoemingen in %sDetecteer uitgaande wijzigingen naar de gekozen URLHernoemingen en kopies opsporenGevonden samenvoeg/vergelijkingsprogramma's:Detecteer niet-gecommitte likale wijzigingen in de werkmap. Selecteer aub om verder te gaan: Detecteer niet gecommitte lokale wizigingenBepaalt of TortoiseHg een bevestiging moet vragen vooraleer changesets te pushen. Indien niet, dan zal de push uitgevoerd worden zonder enige bevestiging. Standaard: JaBepaalt wanneer de status van de probleemopvolger zal bijgewerkt worden door TortoiseHg. Geldige instellingen zijn:

                                                                                                              Standaard: nooitBepaal uitgaande changesets om te emailen...Vergelijk &Lokaal met VoorouderVergelijkingsLettertypeVergelijkingsToolbarVergelijken en AnnoterenInhoud van de vergelijkingVergelijking niet getoond: Vergelijk met &Lokale versieVergelijk met ouderMap vergelijking met p1Map vergelijking met p2Map vergelijkingMap met bestandenVerwerpen - vererp lolake wijzigingen, geen backupHuidig backout bericht verwerpen?Huidig commit bericht verwerpen?Verwijder lokale veranderingen (revert --all)Verwerp lokale wijzigingen, geen backup (-C/--clean)Lokale wijzigingen verwerpen, geen backup (-f/--force)Openstaande wijzigingen in de werkmap verwerpen?Verwerp externe wijzigingen, geen backup (-C/--clean)Toon gesloten takkenToon enkel de graaf van de benoemde takToon enkel aktieve takkenToon het bestand hoedanookTonen van %(count)d van %(total)d onderwerpenDnD SynchronisatieWijzigingsdatums niet insluiten in de vergelijkingshoofdingen. Standaard: NeeBackup bestanden niet opslaan (*.orig)Toon geen menupunten voor niet-versie bestanden (gebruik shift + click om te overschrijven)Paden niet strippen (-p0), vereist voor SVN patchesDe nieuwe werkmap niet bijwerkenHost certificaat niet kontrolerenWilt u echt een achterwaartse fase overgang forceren?Wilt u echt de patch wachtrij '%s' activeren?Wilt u echt bladwijzer %s uitschakelen?Wilt u deze revisie echt secret maken?Wilt u het programma verlaten?Sleep om volgorde te wijzigenDubbele naamCod&eringVerlatenVerkennenMap verkennenE&xplorer HelpE&xporterenPatch E&xporteren...EOL &ModusEOL zichtbaarheidAanpassenBestand aanpassenNegeerFilter AanpassenLokale versie BewerkenEditeer Pad om te ServerenGereedschap Wijzigen ...Editeer huidig bestand in werkmapBewerk bestandHook editerenGraaf van patch afhankelijkheden aanpassenGepatcht bestand en verworpen wijzigingen aanpassen?Repository negeer-filter aanpassenOpgelost bestand aanpassenLanceren van de editor is mislukt.EmailDAG Bereik via email versturen...Email Gekozen...Email adres om te gebruiken in de "Van" hoofding en voor de SMTP enveloppeEmail uitgaande changesets voor de externe repositoryStuur debugging resulaten uit (--debug)Ingeschakelde Overlay HandlersIngeschakelde overlaysCoderingEngelse BerichtenEnter regel nummer(1 -%d)Revisie idantificatie ingevenFoutEr heeft zich een fout voorgedaan.Fout bij uitvoeren van de "commit beëindigd" triggerFout bij ophalen Commit bericht informatie van de Probleem Opvolger pluginFout bij het laden van de subreposFout tijdens bekijken subrepo: %sFout tekst "%(arg0)s" in %(arg1)s
                                                                                                              Wil aub uw instellingen
                                                                                                              Fout bij schrijven van bestandUitsluitenUitgesloten:Voer eigen tool '%s' uitAfsluitenVerlaten zonder de opslossingen af te werken?Het is niet aangeraden om te eindigen met een onvoltooide graft.Eindigen met een onvoltooide rebase is niet aangeraden.Instgellingen voor de Verkenner UitbreidingDAG Bereik Exporteren...Vergelijking Exporteren...Exporteren Gekozen...Patch exporterenExtUitbreidingenToevoegen repository is misluktToevoegen subrepository is misluktUitvoeren maatwerk opdracht gefaaldLaden van probleem opvolger '%s' mislukt: %sLaden van probleem opvolger is mislukt: '%s': %s. Kon pad niet openen in een terminalOpenen van de repository misluktMislukt!Fetch - gebruik fetch (auto-samenvoegen van gepullde wijzigingen)Fetch - gebruik fetch uitbreiding (fetch is niet aktief!)Velden om mee overeen te komen:BestandBestandsVerschillen Log KolommenBestandshistorieBestandsHistoriek Log KolommenBestandslijst ToolbarBestand StatusStatus van Bestand:Bestand bestaat reedsEr moeten bestandsconflicten opgelost wordenBestand is binairBestand is groter dan het opgegeven maximum. maxdiff = %s KBBestand is wellicht binair (maximum lijnlengte overschreden)Bestand of vergelijkingen niet getoond: Bestand of vergelijkingen niet getoond: Bestand is groter dan het opgegeven maximum. maxdiff = %s KBBestandspatroon setsBestandsnaamBestandenBestanden die minstens de opgegeven grootte hebben (in megabytes) zullen toegevoegd worden als bfiles.Bestanden die minstens de opgegeven grootte hebben (in megabytes) zullen toegevoegd worden als largefilesBestanden waarvan de namen overeenkomen met de opgegeven patronen zullen automatisch toegevoegd worden als bfiles.Bestanden waarvan de namen overeenkomen met de opgegeven patronen zullen automatisch toegevoegd worden als largefilesFilter graaf met revisie sets of met takkenFilter:Vind HernoemingenVindt kopie en/of hernoem bronnenVind overeenkomsten - %sZoek revisies die overeenkomen met velden van:Vindt revisies die "overeenkomen" met een of meer bestanden uit de gegeven set revisies.Bezig met zoeken van uitgaande changesets naar %s...KlaarEerste n leden van een set.Eerste ouder voor alle changesets in de set of in de werkmap.Gefixeerde revisiesVlag:Patches samenvouwen...Volg copiën en naamsveranderingenLettertype om changelog gegevens te tonen. Standaard: monospace 10Lettertype om commit berichten te tonen. Standaard: monospace 10Lettertype om resultaatberichten te tonen. Standaard: sans 8Lettertype om tekstverschillen te tonen. Standaard: monospace 10LettertypesVoor welke soort revisies dit gereedschap zal geaktiveerd worden. Er wordt enkel rekening mee gehouden als het gereedschap getoond wordt in het context menu van de gekozen revisie.Forceer Tabblad voor RepoForceer samenvoeging met uitstaande wijzigingen (-f/--force)Forceer push of pop (--force)Push of pull forceren (negeer beveiligingskontroles, --force)Forceer een push naar de externe lokatie (-f/--force)Forceer verwijderen van gewijzigde bestanden (--force)VergeetBestanden Vergeten...Fork de GUIVooruit%d Inkomende changesets gevondenChangesets inkomend van %s gevondenVanVanaf:Volledige AuteursnaamTitel met Volledig PadGenereer engelse commit berichten zelfs als de LANGUAGE of LANG omgevingsvariabelen ingesteld zijn op een niet-engelse taal. Deze instelling wordt gebruikt door de Samenvoegen, Etiketteren en Backout schermen. Standaard: NeeBezig met ophalen inkomende changesets van %s...Git FormaatGit patches kunnen binaire bestanden beschrijven, kopies, en permissiewijzigingen, maar ontvangers kunnen ze mogelijks niet gebruiken als ze niet met git of Mercurial werken.GlobGlobale instellingenGnuPGGa naarGa naar regelNaar een specifieke revisie gaanGa naar huidige revisieGa naar voorouder van %s en %sGa naar gemeenschappelijke voorouderGa naar revisieGraftGraft - %sGraft keuze naar loakel rev...Graft afgebrokenGraft changesetGraft changeset #%d of %dGraft misluktGraft heeft samenvoegingsconflicten gegenereeerd die moeten opgelost wordenGraft is compleetGraft:GraafGrafisch samenvoeg programma om samenvoegingsconflicten op te lossen. Indien niet opgegeven dan zal Mercurial het eerste bruikbare gereedschap gebruiken dat het kan vinden op uw systeem, of het zal zijn intern samenvoeg gereedschap gebruiken dat conflict markeringen ter plaatse achterlaat. Kies internal:merge om conflict markeringen te forceren, internal:prompt om altijd de lokale of de andere versie te kunnen kiezen, of internal-dump om bestanden in de werkmap achter te laten voor manueel samenvoegen.Grootste gezamenlijke voorouder van de twee changesets.GrieksGuards: %d/%dHernoemingen radenGzip tar archievenHTTP fout: %d (%s)Hoofd is gesloten!HebreeuwsHg opdracht:Hg bestandshistoriek overzicht [%s] - %sHg patches (zoals gegenereerd door de export opdracht) zijn compatibel met de meeste patch programma's. Ze bevatten een hoofding met de belangrijkste changeset metadata.Detail verbergenEtiketten VerbergenVerberg contextmenu buiten repositoriesIkoon in de verf zettenHook typeHooksHostHost naam en (optionele) poort van de proxy server, bijvoorbeeld "mijnproxy:8000"Host naam van de mail serverHostnaam die de afzender kan gebruiken om zichzelf te identificeren op de mail serverHoeveel regels moet een "zebrastreep" overspannen in resultaten met meerdere lijnen. Standaard is 1; zet op 0 om uit te schakelen.IkoonPictogrammenAls u nog altijd moeilijkheden ondervindt, registreer dan een foutrapport aubNegeren Negeer lege regelsNegeer lengte van witruimteNegeer witruimteHoofd/kleine letters negerenNegeer wijzigingen in de lengte van witruimte in vergelijkingen. Standaard: NeeNegeer wijzigingen in de lengte van witruimte in annotate. Standaard: NeeNegeer wijzigingen met enkel lege regels in vergelijkingen. Standaard: NeeNegeer wijzigingen met enkel lege regels in annotate. Standaard: NeeNegatie filter - %sNegeer witruimte bij het vergelijken van lijnen. Standaard: NeeNegeer witruimte bij het vergelijken van lijnen in annotate. Standaard: NeeGenegeerd*Directe OperatiesImporteer - %sImporteer van KlembordImporteer in MQIn Huidige RevisieIn &Originele RevisieIn Alle &HistorieIn Huidig BestandIn-Reply-To:InsluitenAlle voorouders meenemenPatch wachtrij insluitenInbegrepen:Binnenkomende BladwijzersInkomend van %s afgebroken, ret %dIniparse moet geïnstalleerd zijn.Iniparse package niet gevondenInitiële revisieEtiketten InvoegenGeef nieuwe guard in voor %s:Onvoldoende toegangsrechten, bezig met omkeren naar alleen-lezen modus.Onvoldoende toegangsrechten.OnderbrokenOnderbroken graft operatie gevondenOngeldige instellingen - Geef aub een ReviewBoard gebruikersnaam opOngeldige Instellingen - De ReviewBoard server is niet ingesteldOngeldig commandoOngeldig datumformaatOngeldige standaard push revisie: %s. Kontroleer aub uw Mercurial instellingen (tortoisehg.defaultpush)Ongeldige glob expressieOngeldige regexp expressieOngekdige reviewboard plugin. Download aub de Mercurial reviewboard plugin versie 3.5 of hoger van de website hieronder. %sProbleem LinkBug Reguliere ExpressieProbleem OpvolgerProbleem Opvolger PluginProbleem Opvolger Plugin FoutProbleem Opvolger TriggerOpvolgen van BugsKon de lijst van subrepositories voor de repository in:

                                                                                                              %s

                                                                                                              niet laden. De volgende subrepositories kunnen ontbreken, corrupt zijn of in een inconsistente toestand en kunnen niet benaderd worden:

                                                                                                              %sKon geen lijst bekomen van de subrepositories voor de repository in:

                                                                                                              %sCursiefJapansPatch bestanden behoudenZoek op SleutelwoordKiln BfilesGekende slechte revisie:Gekende goede revisie:KoreaansLargefilesLinker ToolbarLaat de gebruiker de projrc bijwerken bij inkomen:

                                                                                                              • never (=nooit): [standaard] Toon of het extern projrc bestand gewijzigd werd, maar werk de lokale projrc niet bij (en vraag ook niet om bij te werken).
                                                                                                              • prompt: Kijk uit naar wijzigingen voor het projrc bestand. Als er wijzigingen zijn toon dan _altijd_ een bevestigingsvraag die de gebruiker vraagt of hij het lokale projrc bestand wil bijwerken.
                                                                                                              • auto: Kijk uit naar wijzigingen voor het projrc bestand. Gebruik de instelling van de "projrc.confirm" configuratiesleutel om te bepalen of er al of niet een bevestigingsvenster moet getoond worden vooraleer het lokale projrc bestand bijgeerkt wordt.

                                                                                                              Standaard: nooitLicentieZoals "keyword(tekenreeks)" maar aanvaardt een reguliere expressie.RegelLijst van alle gereedschappenLijst van instellingen die NIET zullen gepulled worden uit het projectinstellingenbestand. Standaard is geen enkele van de ingesloten instellingen uitsluiten.Lijst van instellingen die gepulled zullen worden uit het projectinstellingsbestand. Standaard is GEEN instellingen insluiten.Geef lijst van bijgewerkte bestanden (--verbose)&Alle Revisies LadenAlle revisies in de graaf ladenRepository %s wordt geladenLokale HostnaamLokaal padLokaal pad:Lokale Repository %shetAlleen lokale schijvenInformatie over lokale revisieLokaal etiketLokatie:Locked*ResultatenProbleem Opvolger TriggerLange samenvattingMMQ Git FormaatPushPush allesMQ optiesMaak MQ patches aan als geheim (in plaats van draft). Standaard: NeeMaak de repo compatibel met Mercurial <1.7Een "draft" revisie "secret" maken is over het algemeen een veilige operatie. Hoewel er enkele zaken zijn om op te letten: - van "secret" revisies wordt geen push gedaan. Dit kan moeilijkheden veroorzaken als u naar een secret subrepo revisie verwijst. - Als u deze revisie gepullt hebt vanaf een niet-publicerende server kan het zijn dat die teruggebracht wordt naar "draft" als u opnieuw een pull doet van die bepaalde server. Wees aub voorzichtig!Beheer HTTPS verbindingsbeveiliging and gebruikers authenticatieBeheer hangende perforce changelistsVerplichte ProbleemreferentieVerworpen blokken manueel oplossen?Markeer als OnopgelostMarkeer dit blok als opgelost, ga naar volgende onopgelost blokMerkeer dit blok als onopgelostMarkeer dit bestand als opgelostMarkeer dit bestand al onopgelostOvereenkomst TekstDoe overeenkomen met om het even welke van %d revisiesMax WijzigingenMax VergelijkingsGrootteMax BestandenMaximum aantal wijzigingen om op te lijsten voor de changeset. Standaard: 10Maximum aantal bestanden om op te lijsten per changeset. Standaard: 10Leden van een set die geen kinderen in de set hebben.MenugedragMercurial Re&solveMercurial GebruikerMercurial opdracht is nog bezig. Bent u zeker dat u die wilt afbreken?De Mercurial keyring uitbreiding is geactiveerd. Wachtwoorden zullen opgeslagen worden met een platform-onafhankelijke beveiligingsmethode.Mercurial kon geen editeerprogramma vinden. Stel Mercurial aub in om een op uw systeem geïnstalleerd editeerprogramma te gebruiken.SamenvoegenSamenvoegen - %sSamenvoegen - laat toe om samen te voegen met lokale wijzigingenAlle te doen afhankelijkheden samenvoegenSamenvoegen veroorzaakte bestandsconflictenSamenvoeg-changesetSamenvoegen vanaf (andere revisie)Voeg verworpen patch blokken samen in %sRevisie om samen te voegen niet opgegeven of niet gevondenVoeg samen naar (werkmap)Samenvoegen met gekozen samenvoeg-programmaVoeg samen met %sBezig met samenvoegen...BerichtBericht LettertypeBericht Vertalen gefaaldBericht identificatie om naar te antwoorden, voor conversatiesMin. Gelijkheid: %d%%Minimum GrootteOntbrekende informatieHistoriek WijzigenOpvolgen Wijzigingen in de RepoOpvolgen wijzigingen
                                                                                                              in de werkmapVerplaatsenVerplaats alle bestanden naar linksVerplaats alle bestanden naar rechtsVerplaats wijzigingen van werkmap naar patchVerplaats gekozen blokken naar linksVerplaats gekozen blokken naar rechtsVerplaats gekozen bestand naar linksVerplaats gekozen bestand naar rechtsEtiket %s verplaatst naar changeset %s (vanaf changeset %s)Meerdere bronnen gekozenNaamNaam verbonden met commits. Het gebruikelijke formaat is:
                                                                                                              Volledige Naam <email.adres@voorbeeld.com>Naam of emailadres van de persoon die verantwoordelijk is voor de repository.Er bestaat al een tak met naam "%s", laatst gebruikt in revisie %d Nieuwe &GroepNieuwe &WerkbankNieuwe Tak: Nieuwe Commit FaseNieuwe GroepNieuwe naam:Nieuwe Patch TakNieuwe RepositoryNieuwe shelfNieuw Gereedschap ..."Nieuw bestand aangemaaktNieuwe hookNieuw patch bericht:Nieuwe patch wachtrij naamNieuwe shelf aangemaaktVolgendeVolgende DiffVolgende verschilGeen DatumsGeen passende bestandenGeen backup (-n/--nobackup)Geen tak wijzigingenEr zijn geen blokken meerGeen verwijderbare blokkenGeen vergelijkingsprogramma gevondenGeen editeerprogramma gevondenGeen gewijzigde bestandenGeen bestanden aangevinktGeen bestanden gevonden voor deze bewerkingGeen bestanden gekozenGeen bestanden om te vindenGeen host bevestiging, maar toch versleuteld (bad)Geen genegeerde bestanden gevondenGeen inkomende changesets vanaf %sEr werd geen probleemverwijzing gevonden in het commit bericht. Het commit bericht dient een verwijzing naar een probleem te bevatten. U kunt dit instellen in de 'Probleem Opvolging' sectie van de instellingen.Geen onderwerpen om te tonenGeen overeenkomsten gevondenGeen samenvoegconflicten, klaar voor commitGeen gewijzigde bestanden aangevinkt voor commitGeen operatie op uit te voerenGeen uitgaande changesetsGeen uitgaande changesets naar %sGeen patch tak gekozenGeen pending Perforce changelistsEr is geen externe repository of pad ingesteldGeen repository gevondenGeen shell ingesteldGeen vertaling beschikbaarGeen restbestanden gevondenGeen onbekende bestanden gevondenGeen gebruikersnaam ingesteldEr is geen geldige default externe repository URL of pad ingesteld voor deze repository.

                                                                                                              Tik aub een pad in van een externe repository in het Sync scherm en sla het op.Er zijn geen vergelijkingsprogramma's ontdektEr is geen visual editor ingesteldGeen - enkel pull van changesetsScandinavischNormalizeer einde regel van bestanden tijdens en na patch naar lf of crlf. Strict voert geen normalisatie uit. Auto doet per-bestand detectie, en is de aangeraden instelling. Standaard: striktIs geen Mercurial subrepo, kan niet bekeken wordenGeen hoofd revisie!Geen hoofd, backout zal een nieuw hoofd aanmaken!Niets GecommitNiets veranderd.Niets om te importerenEr is niets om te pushenOKOp repowidget, toon voorEen of meer van de changesets die u probeert te pushen vergen de aanmaak van een nieuwe tak. Wilt u een nieuwe tak aanmaken in de externe repository?Neem enkel verwijderde bestanden in overwegingEnkel bestanden gewijzigd/aangemaakt in deze revisieNaar bestemmingOpenen&Terminal openenS&ubrepository OpenenOpen nieuwe benoemde takOpen de shell terminal in de basismap van de repositoryOpen een shell terminal in de gekozen mapOpen geavanceerde query editorOpen alle repositories in een nieuw tabbladOpen hgweb instellingenOpen nieuwe tabbladen naast het huidige tabbladOpen shelve gereedschapOpen de repository in de bestandverkennerOpen de repository in een nieuw tabbladOpen de gekozen map in de systeembestandsbeheerderOpen de gekozen subrepositoryOperatie afgebroken:

                                                                                                              %(arg0)s.Optioneel. Komme-gescheiden lijst van host namen die door de proxy zouden moeten overgeslagen worden.Optioneel. Te gebruiken methode om emails te versturen. Als de waarde "smtp" is (standaard), gebruik SMTP (hieronder ingesteld). Anders gebruik deze waarde als de naam van het programma dat moet gedraaid worden dat handelt als sendmail (gebruikt de "-f" optie voor de afzender, een lijst van ontvangers op de opdrachtregel, berichttekst op stdin). Normaal is het voldoende om dit op "sendmail" of "/usr/sbin/sendmail" in te stellen om sendmail te gebruiken om berichten te versturen.Optioneel. PEM geëncodeerd klantcertificaat kettingbestand. Omgevingsvariabelen worden geëxpandeerd in de bestandsnaam.Optioneel. PEM geëncodeerd client certificaat sleutelbestand. Omgevingsvariabelen worden geëxpandeerd in de bestandsnaam.Optioneel. Wachtwoord voor authenticatie met de proxy-serverOptioneel. Wachtwoord om mee te authenticeren. Indien niet gegeven, en de externe site vereist basis of digest authenticatie, dan zal de gebruiker er om gevraagd worden.Optioneel. Gebruikersnaam voor authenticatie met de proxy server.Optioneel. Gebruikersnaam om mee te authenticeren. Indien niet gegeven, en de externe site vereist basis or digest athenticatie, dan zal de gebruiker er om gevraagd worden. Omgevingsvariabelen worden geëxpandeerd in de gebruikersnaam om u toe te laten om foo.username = $USER te gebruiken.OptiesOpties:Of gebruik:Sorteer de subrepos zoals in .hgsubInformatie over andere revisieUitgaande BladwijzersZoeken uitgaande afgebroken, ret %dZoeken uitgaande naar %s afgebroken, ret %dResultaten LettertypeOverlaysOuder 1:Ouder 2:Ouder:OudersWachtwoordWachtwoord voor authenticatie op de mail serverWachtwoord voor authenticatie met review boardVoer wachtwoord inPlak BestandsnamenPatch Tak ToolbarPatch EOLPatch Bestanden (*.patch)Patchnaam VereistPatch QueuePatch Wachtrij Acties ToolbarPatch datum:Patch is geëxporteerdToepassen patch is misluktPatchbestanden (*.diff *.patch)De patchbestanden bestaan alPatch samenvouwen - %sPatch bericht:Patchnaam:De beschrijving van de patchreeks wordt als een samenvatting verzonden in het eerste bericht met [PATCH 0 van N] als onderwerp. Daarin zouden de effecten moeten beschreven worden van de gehele patchreeks. Als u een bundel verstuurt dan vormen deze velden het onderwerp van het bericht en de berichttekst zelf. Vlaggen is een komma-gescheiden lijst van etiketten die als voorvoegsel in het onderwerp van de berichten gezet worden.Patch gebruiker:Patch:Patch: %sDe patches zijn geëxporteerdPatches om samen te vouwenPadPad Editeer ToolbarPad naar Review Board voorbeeld "http://demo:reviewboard.org"Pad naar de map waar een systeemwijde cache van bfiles zal opgeslagen wordenPad naar de map waar de gebruikerscache voor largefiles zal opgeslagen wordenPad:Paden in Repository InstellingenPatronenTe doen Perforce Changelists - %sPerforce pending...Perforce:Voer een push uit vooraleer bij te werken (-p/--push)FaseGewoon, zet er geen Hg hoofding voorStel een visual editor in aub.Gelieve een gebruikersnaam in te voerenGeef commit bericht in aubWil deze fout aub rapporteren in onze bug trackerEven geduld aub terwijl de commit van de samengevoegde bestanden bezig is.Even geduld aub terwijl de backout bezig is.Even geduld aub terwijl het bestand geopend wordt ...Even geduld aub...PopPop alle patchesPoortPoort om naar te conneceteren op de mail server. Standaard: 25Poort om naar te luisterenPoort:&Review VersturenNa-Pull GedragNa-Pull: Review VersturenVerstuur keuzes naar Review BoardZend naar Re&view Board...Voorbereiden op backoutKlaarmaken om samen te voegenBestanden behouden die beginnend met .hgVorigeOp voorhand bekijkenVooraf bekijken:Vorige DiffVorig verschilProjrcProxyVerzoek onmiddellijk publicerenPullPull van %s afgebroken, ret %dPull vanaf %s voltooidPull inkomende wijzigingen vanaf de gekozen URLPull inkomende changesets in de repositoryPull naar hier...Bezig met pull vanaf %s...UitwissenPus&hPush &AllesPush Na CommitPush Na Commit:Push Vereist SSLPush Gekozen TakPush allesPush huidige tak (%s)Push uitgaande wijzigingen naar de gekozen URLPush naar %s afgebrokenPush naar %s afgebroken, ret %dPush naar %s is voltooidPush naar &HierPush naar externe repository %s ?Push tot en met huidige revisie (#%d)Push tot en met revisie #%dBezig met push naar %s...QNewQRefreshQueryAfsluitenR&epository Register OptiesLEESMIJ niet ingesteldHerstellenGetraceerde VerwijderenVerwijder uit het RegisterHer&noemenPatch Her&noemen...Her&noemen...Alleen-lezen*Klaar om weg te zuiveren.RebaseRebase - %sRebase - rebase lolake commits bovenop de gepullde wijzigingenRebase - gebruik de rebase uitbreiding (rebase is niet aktief!)Rebase afgebrokenRebase is al bezigRebase changeset en nakomelingenRebase is misluktRebase veroorzaakte samenvoeg-conflicten die moeten opgelost wordenRebase is voltooidRebase ongepubliceerde bovenop Subversion hoofd (overschrijf bron, doel)Subrepositories doorlopenSubmappen doorlopen (--subrepos)Overtollige authenticatie infoVerversen&Taaktab VerversenVervers ToolbarVernieuw huidige patchHuidige repository verversenBestandslijst verversenEnkel de huidihe taaktab verversenVervers de lijst van het Repository-registerRegexpRegexp:Reguliere expressie zoekpatroonVerwerp inkomende changesetsGerelateerde Paden:HerladenExterne opdracht:VerwijderenVerwijderen &Alle Gekozen BestandenVerwijderen &Alle Ongewijzigde BestandenBestanden Verwijderen...Authenticatiegegevens verwijderen uit de URLHuidige werkmap revisie verwijderen?Bestanden verwijderen uit versie kontroleFilter wegnemen, wortel tonenPatches uit de wachtrij verwijderen?Gekozen geschrapte bestanden verwijderen?Verwijder het knooppunt en al zijn subknooppunten. Repositories worden niet gewist van de schijf.Etiket %s is verwijderdHernoemenHernoemen - %sFout bij HernoemenBestand HernoemenBestand of map hernoemenHernoem patch %s naar:Patch wachtrij '%s' hernoemen naarPatch hernoemen...Hernoem het elementLaatste gesloten tabblad heropenenLaatste gesloten tabbladgroep heropenenVervangenBestaande hook vervangen ?Vervang bestaand etiket (-f/--force)Vervang de bestaande patchbestanden Rapporteer enkel de eerste vondst per bestandRepositoriesRepositoryRepository FoutRepository ID:Repository RegisterRepository register bijgewerktRepository InstellingenEr loopt nog steeds een repository opdrachtDe repository is gelocktDe naam van de repository om te gebruiken in the webinterface, en door TortoiseHg als een verkorte naam. Standaard is dit de werkmap.Repository is niet lokaalRepository status & wijzigingenBevestiging vereisenConflicten Oplossen - %sOpgeloste conflictenHer&begin TakHerstart Samenvoe&genHerstart Samenvoegen metHerstart alle TortoiseHg toepassingen om de volgende wijzigingen te activeren:Hervatten van de lopende rebaseRevRevertOmkeren - %sBestanden Omkeren...Alle bestandswijzigingen omkeren?Alle bestanden omkeren naar deze revisieAlle wijzigingen in de werkmap omkeren ?Wijzigingen in bestand omkerenRevert bestand(en) naar inhoud van deze revisieBestanden omkeren naar lokale versie of andere ouder?Lokale bestandswijzigingen omkeren?Volgende bestanden omkeren?Revert naar RevisieAlle bestanden omkeren zal de wijzigingen teniet doen en de betrokken bestanden in een gewijzigde staat achterlaten.

                                                                                                              Bent u zeker dat u omkeren wilt gebruiken ?

                                                                                                              (gebruik bijwerken (update) om een andere revisie uit te lezen)Bezig met samenvoegen van een p4 changelist...Review BoardReview ID:Review ontwerp verstuurd naar %s Review gepubliceerd naar %s RevisieRevisie #%d (%s) werd geëxporteerd naar:

                                                                                                              %s%s%sRevisie &DetailsRevisie SetRevisie Set QueryRevisie details contextmenuRevisie is gewijzigd naar:Revisie is &SlechtRevisie is &GoedRevisies om mee overeen te komen:Revisie:Revisies om mee overeen te komen:Rechter ToolbarRollback commit naar revisie %dRollback doen naar revisie %d (%s ongedaan maken)?Bezig met lopen op %sBezig...RussischS&ync ToolbarS&ynchroniserenSMTP HostSMTP WachtwoordSMTP PortSMTP TLSSMTP GebruikersnaamSSL fout = %sSSL: kontrole van Server certificaat gefaaldSSL: onbekende fout %s: %sOpslaanGlobaal OpslaanOpen Repositories Opslaan bij AfsluitenPad OpslaanWijzigingen opslaan vooraleer aan te passen?Sla huidige URL op onder een aliasFoutrapport opslaan alsBestand opslaan zoals het was in deze revisieBestand opslaan naarSla hgweb instellingen opOpslaan in RepoScan Exte&rne RepositoriesZoekHistoriek DoorzoekenZoek Gekozen TekstZoek is al bezigZoek in het commmit bericht, de gebruikersnaam, an de namen van gewijzigde bestanden af naar tekenreeks.Bestandsrevisies zoeken voor patronenZoek in Alle &HistorieBezig met zoekenBezig met zoeken ...Tweede ouder voor alle changesets in de set of in de werkmap.Geheime MQ PatchesVeilige HTTPS VerbindingBeveiligingBeveiliging: Kies &AlleKies Gee&n enkeleSelecteer DoelbestandKies DoelmapKies map met patchesSelecteer RpositoryKies Bron bestandBronmap selecterenKies Programma:Kies een plaats in de GUI om te wijzigen:Kies een bestaande repository om als subrepo toe te voegenKies de tak voor de samenvoeg commitKies bundelbestandKies doelmapKies patchmapKies patchesKies de na-pull operatie voor deze repositoryKies een repository map om toe te voegenSelecteer de repository map om te openenKies bronmapKies de initiële revisie die gekozen zal worden bij het openen van de repository. U kunt "huidige" kiezen (d.i. de ouder van de werkmap), de huidige "tip" of de werkmap ("werkmap"). Standaard: huidigeKies het initiële schermelement dat zal getoond worden bij het openen van de repository. Standaard: revisiedetailsKies de revisie die standaard zal gepusht worden, telkens als u de Push knop aanklikt.

                                                                                                              • alles: De standaard. Push alle wijzigingen in alle takken.
                                                                                                              • tak: Push alle wijzigingen in the huidige tak.
                                                                                                              • revisie: Push de wijzigingen in the huidige tak tot en met de huidige revisie.

                                                                                                              Standaard: allesKies een menu of toolbar om te wijzigen:Kies wanneer TortoiseHg een prompt zal tonen om een bladwijzer te aktiveren tijdens het bijwerken naar een revisie die één of meer bladwijzers heeft.

                                                                                                              • auto: Probeer bladwijzers automatisch te aktiveren. Bij het bijwerken naar een revisie die één enkele bladwijzer heeft zal die automatisch geaktiveerd worden. Toon een prompt als er meer dan één bladwijzer is voor de revisie waar naar bijgewerkt wordt.
                                                                                                              • prompt: De standaard. Toon een prompt bij het bijwerken naar een revisie die één of meer bladwijzers heeft.
                                                                                                              • nooit: Toon nooit enige prompt om eender welke bladwijzer te aktiveren.

                                                                                                              Standaard: promptKies wanneer de werkmap statuslijst zal ververst worden:
                                                                                                              - auto: [standaard] laat TortoiseHg beslissen wanneer de statuslijst van de werkmap moet ververst worden.
                                                                                                              TortoiseHg zal de statuslijst verversen telkens het een actie uitvoert die mogelijks de werkmap wijzigt. Deze keuze kan eventueel wijzigingen missen die gebeuren buiten TortoiseHg's kontrole;
                                                                                                              - altijd: bovenop de automatische bijwerkingen van hierboven, de statuslijst ook verversen telkens de gebruiker klikt op de "werkmap revisie" of op het "Commit ikoon" in de Werkbank taakbalk;
                                                                                                              - altijdlokaal: hetzelfde als "altijd" maar beperkt geforceerde verversingen tot lokale repos.
                                                                                                              Standaard: autoKies wanneer uw opdracht zal uitgevoerd wordenKies of u één enkel Werkbank venster wilt. Als u deze instelling uit zet krijgt u elke keer een n ieuw Werkbank venster als u "Hg Workbench" kiest in het contextmenu van Verkenner. Standaard: JaGekozen paar changesets is niet gerelateerdVerzend &EmailVerzend changesets als Hg patchesZend één enkele binaire bundel, geen patchesBezig met Email versturenServerServer Repository IDServersSet VooroudersStel Datum in:Set LogicaStel gebruikersnaam inIn&stellingenInstellingenInstellingen Bestand:Enkele iconen zijn welwillend ter beschikking gesteld door TortoiseSVN en Tango projectsRepository Register TonenShelfShelf uitgeblanktShelf geschraptShelf: %sShellShelve - verplaats lokale wijzigingen naar een patchShalve WijzigingenDienen nieuwe tabbladen geopend te worden naast de huidige? Indien Nee dan zullen nieuwe tabbladen geopend worden na het laatste tabblad. Standaard: JaToon &AuteurToon &DatumToon &Patch QueueToon &PadenToon &RevisieToon het Info schermDetail weergevenToon FunctieIkoon tonenToon problemenToon Problemen...Toon ResultatenToon Resultaat LogToon Revisie &DetailsToon Korte PadenHet volledige pad van de repository in de venstertitel tonen in plaats van enkel de naam van de basismap. Standaard: NeeAlles tonenToon wijzigingen uit de eerste ouderToon wijzigingen uit de tweede ouderToon de volledige naam van de auteur in Logview. Indien niet aangezet dan zal enkel een klein deel van de naam getoond worden, gewoonlijk de naam zonder het emailadres. Standaard: NeeTabbladen tonen langs de zijkant van de onderste helft van elk repo schermelement, wat iemand toelaat om van tabblad te wisselen zonder de toolbar te gebruiken. Standaard: afEtiketten tonen aan het begin van een commit bericht.Geef de geschiedenis van het geselecteerd bestand weerToon in welke functie elke wijziging zich bevindt. Standaard: NeeToon/Verberg verborgen changesetsEén-venster WerkbankGrootteGrootte (KB)Sla afsluitende bevestingspagina over, sluit na commit%s wordt overgeslagen, kan het niet lezenSommige van de gekozen bestanden zijn groter dan 10 MB. U zou uw schijfruimte misschien efficiënter kunnen gebruiken door ze als grotebestanden toe te voegen, die enkel de recentste revisie van elk bestand in uw lokale repository opslaan, en de oudere revisies beschikbaar houdt op de server. Wilt u deze bestanden toevoegen als grotebestanden?Sorteer op NaamSorteer op PadSorteer de set volgens sleutels. De standaard sorteervolgorde is oplopend, geef een sleutel als "-sleutel" op voor dalende volgorde.Sorteer de groep op de volle naamSorteer de groep op korte naamBronBron:Zuidoost EuropeesZuid EuropeesSpatie-gescheiden lijst van taknamen en kleuren in het formaat branch:#XXXXX. Spaties en dubbele punten in de taknaam moeten opgevangen worden met een backslash (\). Evenzo kunnen sommige andere tekens op die manier opgevangen worden, bvb. \u0040 zal ontcijferd worden als het @ teken, en \n als een nieuweregel. Standaard: Geen (blank laten)Spatie-gescheiden lijst van shell operaties die u onmiddellijk wilt uitgevoerd hebben, zonder tussenkomst van de gebruiker. Opdrachten zijn "add remove revert forget". Standaard: Geen (blank laten)Spatie-gescheiden lijst van etiketten die niet getoond mogen worden. Bruikbaar voorbeeld: "qbase parent qtip" om de standaard etiketten te verbergen voor de Mmercurial Queues extensie. Standaard: Geen (blanko laten)Geef de naam op voor de nieuwe shelfGeef het aantal spaties op dat in de plaats komt van een tab in diverse TortoiseHg vensters. Standaard: 8Geef visueel vergelijkingsprogramma op, zoals beschreven in de [merge-tools] sectie van uw Mercurial instellingenbestand. Indien onbepaald, dan zal TortoiseHg het gekozen samenvoegprogramma gebruiken. Als dat mislukt dan zal TortoiseHg het eerste passende programma gebruiken dat het kan vinden.Geef de Visuele Editor op, zoals beschreven in de [editor-tools] sectie van uw Mercurial configuratiebestanden. Indien dit niet gespecifiëerd wordt zal TortoiseHg de eerste toepasbare tool gebruiken die het kan vinden.Geef uw verkozen gebruikersinterface taal op (herstart nodig)BeginStart een nieuwe patch takBegin revisie:Start de web server voor deze repositoryStatusStatusStatus Bestandslijst ToolbarStatus:StoppenStop huidige bewerkingGestoptDoorhalenStrip - %sStrip:ZebrastrepenMercurial hoofdingen wissen verwijdert gebruikersnamen en ouder informatie. Enkel nuttig als de ontvanger Mercurial niet gebruikt (en de hoofdingen niet wil zien).StijlSubmenu onderwerpen:Onderwerp:Bezig met voorleggen van een p4 changelist...Subrepo toegevoegd in bestand .hgsubSubrepo aangemaakt en op beginrevisie ingesteld.Subrepo geïnitialiseerd op revisie:Subrepo verwijderd uit de repository.Subrepo status is:Status van de subrepoSubrepo was niet gewijzigd.Subrepository bestaat alSubrepository niet gevonden in de werkmap.Subversion:SuccesVoorgestelde lengte voor regels van commit berichten. Een verticale rode lijn zal deze lengte aangeven. Ctrl-E zal de huidige paragraaf herzetten volgens de opgegeven lengte. Standaard: 80Samenvatting (eerste regel omschrijving)Regellengte van de SamenvattingSamenvatting:SyncSynchroniserenSynchroniseer met gesleepte repositorySynchroniseer met externe repositorySyntax HighlightingSysteem CacheTab BreedteEtiket '%s' werd toegevoegdEtiket '%s' werd verplaatstEtiket '%s' werd verwijderdEtiketteren - %sEtiket:Geëtiketteerd:Etiketten:Kies Andere revisieTar archief gecomprimeerd met bzip2Tar archief gecomprimeerd met gzipTar archievenDoelgroepenDoelpersonenDoel:Taak TabbladenTaak Toolbar volgordeTaakbalkGeconfigureerde HTTP proxy tijdelijk uitgeschakeldTijdelijke bestanden worden verwijderd als dit scherm gesloten wordt.Beëindigd door gebruikerTest deze revisie en rapporteer uw bevindingen. (goed/slecht/overslaan)Vertalen tekst gefaaldTekstbestanden (*.txt)Tekst die de bedoeling of de inhoud van de repository omschrijft.ThaisBestand .hgsub bevat al een lijn met:

                                                                                                              %sDe wijzigingen van revisie %s en alle niet-samengevoegde ouders zulen verworpen worden. Weet u zeker dat dat is wat u wilt?De opdracht "%s" kon niet uitgevoerd worden.De opdracht die uitgevoerd zal worden. Om een python functie uit te voeren moet u de opdracht laten voorafgaan met "python:". De standaard repository id voor deze repo op de review board serverHet doelbestand "%s" bestaat al!Het doel "%s" bestaat al als map!Het doel moet zich binnen de repository structuur bevinden.De map "%s" is niet leeg! Wilt u ze overschrijven?Het pad waar de opdracht zal uitgevoerd worden. Indien niet ingesteld dan zal de wortel van de huidige repository gebruikt worden. U kunt dezelfde {VRAIABELEN} gebruiken als voor de "Opdracht" instelling. De foutmelding van de uitzondering was:

                                                                                                              %s

                                                                                                              Bestand "%s" bestaat al! Wilt u het overschrijven?De volgende fout werd teruggegeven: "%s" Kontroleer aub of het pad van de de opdracht geldig is en dat het een geldige toepassing is.De hook naam mag geen spaties, tabs of '=' tekens bevatten.De naam van de hook. Mag geen spaties bevatten.De maximale bestandsgrootte (in KB) waarvoor TortoiseHg wijzigingen zal tonen in de changelog, status, en commit vensters. De waarde nul veronderstelt geen limiet. Standaard: 1024 (1MB)De genoemde bladwijzer of alle bladwijzers.Het opgegeven etiket of alle etiketten.Het aantal revisies dat in één keer gelezen en getoond moet worden in de historiek verkenner. Standaard: 500De fase voor nieuwe commits. Standaard: draftHet geselecteerde commando is leegDe gekozen map:

                                                                                                              %s

                                                                                                              is niet binnen de doel repository.

                                                                                                              Dit kan toegelaten zijn maar wordt ten zeerste afgeraden.
                                                                                                              Als u een niet-triviale subrepository mapping wilt uitvoeren dan moet u het .hgsub bestand manueel aanpassen.Kan de gekozen repository

                                                                                                              %s

                                                                                                              niet openen!De gekozen repository

                                                                                                              %s

                                                                                                              is al een subrepository van

                                                                                                              %s

                                                                                                              als "%s"De gekozen revisie (%s) heeft een bladwijzer met de naam "%s".

                                                                                                              Wilt u die aktiveren?
                                                                                                              U kunt deze prompt uitschakelen door Instellingen/Werkbank/Aktieve Bladwijzers in te stellenDe gekozen revisie (%s) heeft %d bladwijzers.

                                                                                                              Kies de bladwijzer die u wilt aktiveren en klik OK.

                                                                                                              Klik Annuleren als u geen enkele ervan wilt aktiveren.

                                                                                                              U kunt deze prompt uitschakelen door Instellingen/Werkbank/Aktieve Bladwijzers in te stellen

                                                                                                              De gekozen revisie (rev #%d) kan niet geïmporteerd worden omdat ze geen afstammeling is van qparent (rev #%d)De gekozen subrepo:

                                                                                                              %s

                                                                                                              werd toegevoegd aan het .hgsub bestand van de repository:

                                                                                                              %s

                                                                                                              Denk eraan dat u om het toevoegen van de subrepo af te werken u nog steeds een commit moet doen van de wijzigingen in het .hgsub bestand om het toevoegen van de subrepo te bevestigen.De set van alle ouders van alle changesets in de set.De bron moet zich binnen de repository structuur bevinden.De subrepository is onzuiver.Het ikoon voor het gereedschap. U kunt om het even welk ingebouwd TortoiseHg ikoon gebruiken door deze waarde in te stellen op de naam van een geldig TortoiseHg ikoon (vb. clone, add, remove, sync, thg-logo, hg-update, enz.). U kunt deze waarde ook instellen op een absoluut pad naar om het even welk ikoon in uw bestandssysteem.De schermtekst voor het gereedschap, die zal getoond worden in het repowidget context menu. Als geen schermtekst ingesteld wordt zal de naam van het gereedschap als gebruikt worden. Als geen infotekst ingesteld is, dan zal de schermtekst ook als infotekst gebruikt worden.Geen spaties toegelaten in de naam voor het gereedschap.De naam van het gereedschap. Mag geen spaties bevatten.De infotekst die getoond zal worden op de gereedschapsknop. Die wordt enkel getoond als de gereedschapsknop getoond wordt op de werkbank toolbar.De werkmap is al samengevoegd. Ga door of verwerp de bestaande samenvoeging.Er bestaan al patchbestanden voor %d revisies (%s) op de gekozen plaats (%s). Er zijn samenvoegconflicten die moeten opgelost wordenEr zijn geen bestandssamenvoegingen met conflicten.Er zijn geen gewijzigde bestanden om te bekijkenEr zijn bestanden die mogelijks hernoemd zijnEr bestaat al een map met dezelfde naam.Er bestaat al een %s.%s hook. Wilt u die vervangen ?Er is geen rollback transactie beschikbaarThg - TortoiseHg's GUI programma's voor Mercurial SCM (Hg) Dit blijkt een binary bestand te zijn.Deze fout zal niet opnieuw getoond worden tot u de werkbank opnieuw opstartDrie-weg Samenvoeg ProgrammaTitelAanOm de samenvoeging af te werken moet u de werkmap committen. Om de samenvoeging te annuleren kunt u bijwerken naar een van de samenvoeg ouder revisies.Naar graft bestemmingDoel om te rebasenNaar:Aan/af zetten tonen van de tekst zoekbalkWissel filteren van niet-overeenkomende changesetsTeveel rijen gekozen voor menuTool &ResolveGereedschap schermtekstLanceren Tool gefaaldNaam gereedschapGereedschapGereedschappen getoond op de gekozen plaatsInfotekstTop menu onderwerpen:TortoiseHg Bookmark SyncTortoiseHg Bug RapportTortoiseHg OpdrachtschermTortoiseHg CommitTortoiseHg Schermen (versie %s), Mercurial (versie %s) TortoiseHg FoutTortoiseHg Nieuwe Shelf NaamTortoiseHg Overlay Icon ServerTortoiseHg OpdrachtregelTortoiseHg ZoekTortoiseHg InstellingenTortoiseHg Shelve - %sTortoiseHg Web ServerTortoiseHg WerkbankTortoiseHg heeft een nieuw .hgignore bestand aangemaakt. Wilt u dit bestand toevoegen aan de broncode repository?Traditioneel ChineesTransplant:Switch het filteren van niet-overeenkomende changesetsProbeer uw repository te verversen.TurksTypeUI TaalURLURLFout: %sOekraïensKan backout niet uitvoerenKan historie niet comprimerenKan geen Mercurial.ini bestand aanmakenKan instellingenbestand niet aanmakenKan %d bestand of map niet verwijderenKan %d bestanden of mappen niet verwijderenKan pending changesets niet bepalenKan de revisie van de werkmap niet bepalen Kan changeset niet vindenKan niet samenvoegenKan de blokken niet samenvoegenKan p4pending resultaat niet ontledenNiet mogelijk om bestand te lezenKan repository status niet lezenKan niet verwijderenKan URL niet verwijderenKan bestand %s niet verwijderen, geen toelatingKan na commit push niet opslaanKan geen URL opslaanKan authenticatie niet opslaanKan automatisch inbegrepen lijst niet opslaanKan na-pull operatie niet opslaanKan submappen doorlopen niet opslaan.Kan gebruikersnaam niet opslaanKan bestanden van subrepository niet tonenKon het volgende commando niet starten:Kan ingave niet vertalen naar lokale coderingKan repository naam niet bijwerkenKan .hgignore bestand niet wegschrijvenKan niet schrijven naar instellingenbestandKan vergelijkingsbestand niet wegschrijvenAlle patches wegnemenEén patch wegnemenOntbundelenAfvinkenAlle bestanden afvinken"Vink af om alle revisies als bronnen voor een kopie te beschouwenNiet-gecommitte samenvoeging - kies aub een ouder revisieOngecomprimeerd tar archiefOngecomprimeerd zip archiefOnderstrepenSluiten andere tabbladen ongedaan makenTabblad sluiten ongedaan makenLaatste commit ongedaan maken?Laatste transactie ongedaan maken?Recentste commit (%d) ongedaan maken, en wijzigingen in bestand behouden?UnicodeOnbekende revisie!Onopgeloste conflictenEr blijven onopgeloste conflicten over. Bent u zeker?Niet opgeslagen wijzigingen zullen verloren gaan. Wilt u herladen?Repository type (%s) wordt niet ondersteundNiet-getraceerdBijwerkenBijwerken - %sBijwerken - pull, en probeer dan bij te werkenIkonen BijwerkenReview BijwerkenIkonen bijwerken voor deze repositoryBijwerken bij het binnenkomenVelden bijwerken van dit bestaand verzoekBijwerken naar:Werkmap bijwerkenBijwerken...Repository register wordt bijgewerktHet is aangeraden om over te gaan naar een meer recente versie van TortoiseHg.Gebruik engels backout berichtGebruik engels commitberichtGebruik compacte weergaveGebruik huidige datumGebruik eigen commitbericht:Gebruik uitgebreid (git) patch formaatGebruik git uitgebreid vergelijking hoofdingsformaat. Standaard: NeeGebruik mijn gebruikersnaam in plaats van graft committer gebruikersnaamGebruik proxy serverGebruik pull protocol om metadata te kopiërenGebruikerGebruikersauthenticatieGebruikerscacheGebruikersauthenticatiegegevens zouden geassociëerd moeten worden met de hostnaam via het beveiligingsscherm.Gebruikersnaam voor authenticatie met review boardGebruiker:GebruikersnaamGebruikersnaam voor authenticatie op de mail serverKontroleer de backout revisie en zorg ervoor dat de werkmap geen wijzigingen bevat.Bekijk samenvoegdoelen en verzeker u ervan dat uw werkmap geen wijzigingen bevat.Kontroleer met Certificaatauthoriteit certificates (best)Kontroleer met opgeslagen vingerafdruk (good)B&ekijk BestandVietnameesBestand Bekijken volgensAnder Bekijken...Bekijk wijzigingen als unified diff resultaatBekijk historiek van wijzigingen in repositoryBekijk historiek van wijzigingen van de gekozen bestandenBekijk wijzigingen in de bestandcontextBekijk wijzigingen ten opzichte van huidige revisie met extern vergelijkingsprogrammaBekijk wijzigingen met het GUI vergelijkingsprogrammaBekijk bestand zoals het was in deze revisieBestandsverschillen bekijken in externe vergelijkingstoolBekijk de repository instellingenVerschillen VisualiserenVisueel VergelijkingsProgrammaVisuele Vergelijking...Visuele Vergelijkingen - Visuele Editor"Visuele vergelijking tussen opgelost bestand en eerste ouderVisuele vergelijking tussen opgelost bestand en tweede ouderVisuele vergelijking...Visuele vergelijkingen voor bestanden in subrepositories zijn niet ondersteund. Ze zullen niet getoond worden.Visuele drie-wegs VergelijkingWaarschuwingWaarschuwing: heeft invloed op alle Tortoises, afmelden vereist na wijziging.Was hernoemd vanafWeb ServerWebconfWest-EuropaWat wilt u doen? Indien geaktiveerd, toon de Resultaat Log automatisch als de opdracht uitgevoerd is. Standaard: Nee.Geeft aan wanneer de gebruiker moet gevraagd worden het bijwerken te bevestigen van het lokale "projrc" instellingsbestand als het externe projrc bestand wijzigt. Mogelijke waardes zijn:

                                                                                                              • always: [standaard] Toon altijd een bevestigingsprompt vooraleer het lokale .hg/projrc bestand bijgewerkt wordt.
                                                                                                              • first: Toon een bevestigingsdialoog als de reporitory gekloond wordt of als een extern projrc bestand voor het eerst gevonden wordt.
                                                                                                              • never: Werk het lokale .hg/projrc bestand automatisch bij, zonder enige bevestiging van de gebruiker.
                                                                                                              Of pushen naar de repository toegelaten moet worden. Indien leeg of niet ingesteld, dan is pushen niet toegelaten. Als de speciale waarde "*" ingesteld is, dan kan elke externe gebruiker pushen, niet-geauthenticeerde gebruikers inbegrepen. Anders zullen externe gebruikers zich moeten authenticeren, en de geauthenticeerde gebruikersnaam zal moeten aanwezig zijn in deze lijst (gescheiden door witruimte of ","). De inhoud van de push_toelaten lijst zal gekontroleerd worden nadat de push_weigeren lijst gekontroleerd werd.Of pushen naar de repository geweigerd moet worden. Indien leeg of niet ingesteld, dan is push niet geweigerd. Als de speciale waarde "*" ingesteld is, dan zal push geweigerd worden voor alle externe gebruikers. Anders worden alle niet-geauthentieerde gebruikers geweigerd, en alle geauthenticeerde gebruikers waarvan de gebruikersnaam in deze lijst aanwezig is (gescheiden door witruimte of ",") worden ook geweigerd. De inhoud van de deny_push lijst wordt gekontroleerd voordat de lijst allow_push gekontroleerd wordt.Of het vereist is dat inkomende pushes over SSL getransporteerd moeten worden om paswoord snuffelen te vermijden.Welke template stijl gebruikenWitruimteWerk op de patch queue (--mq)WerkbankWerkbank Log KolommenWerkbank maatwerk toolbarWerkmapWerkmapWerkmap (samengevoegd)WerkmapWerkmap bevat wijzigingen ! Bekijken...Werkmap statusZoeken vanaf het beginBundel wegschrijvenVergelijkingsbestand wegschrijven...Schrijf een patch reeks (bundel) beschrijvingU probeert een achterwaartse fase aanpassing te doen voor revisie %d, van "%s" naar "%s". Echter, "%s" is een fase van een lager nivuea dan "%s". De fase achterwaarts aanpassen is niet aangeraden. Het kan bijvoorbeeld als resultaat hebben dat u meer dan één hoofd heeft als u een revisie wijzigt die u al naar de server gepushed heeft. Wees voorzichtig aub!Bezoek onze website hierU kunt een revisie niet met zichzelf samenvoegenJe hebt authenticatie info geconfigureerd voor de host in deze url. Authenticatie info verwijderen uit deze url?U heeft alle verworpen patch blokken as opgelost gemarkeerd en toch heeft u het bestand niet gewijzigd in het paneel voor aanpassen. Dit betekent waarschijnlijk dat er geen enkele code van de verworpen patch blokken in het bestand terechtgekomen zijn. Bent u zeker dat u het bestand wilt laten zoals het is en beschouwt u alle verworpen patch blokken als opgelost? Als u dit doet kunnen ze bijvoorbeeld uit het rek gewist worden, wat zou betekenen dat u ze voor altijd kwijt zou zijn! Klik Ja om het bestand te aanvaarden zoals het is of Nee om verder te gaan met het oplossen van de verworpen patch blokken.U hebt meerdere hernoemingen gekozen voor het doelbestand: %s. Wordt afgebroken!U heeft een of meer bestanden gekozen die gewijzigd werden. Standaard zullen die bestanden niet verwijderd worden. Wat wilt u doen?U moet deze toepassing waarschijnlijk verversenU mag de graft verderzetten of startenU mag verder gaan met comprimerenU mag de graft verderzettenU mag de rebase verderzettenU moet een patchnaam ingevenU moet zich identificeren voor MercurialU moet revisies aanleveren voor graftU moet bron en doel argumenten opgevenU moet het pad naar een bestand opgevenU moet een opdracht kiezen om uit te voeren.U moet een naam voor het gereedschap instellen.U moet een geldig hook type instellen.Uw TortoiesHg is up-to-date.Uw huidige werkmap revisie (%d) zal verwijderd worden door deze rollback, waarbij niet-gecommitte wijzigingen achterblijven. Doorgaan?Zip archief gecomprimeerd met deflateZip archieven[WAARSCHUWING] Ongeldige subrepo revisie ID: %s [opdracht succesvol voltooid %s][opdarcht onderbroken %s][opdracht resultaat code %d %%s][opdracht beëindigd door gebruiker %s][niet-bestaand][origineel][werkmap]een revisie om te verzendenafgebroken: afgebroken: %s afbreken: %s Commitvoeg diffstat resultaten toe aan berichtentoegevoegdalle revisies geconverteerd vanuit SubversionGUI proces altijd afsplitsenmaak bijlagebasis opdrachten: email tekstbladwijzer: tak: bundel bestand om vooraf te bekijkenkan bestand "%s" niet lezen. Genegeerd. changeset %d:%schangeset om te bekijken in vergelijkingsprogrammachangeset die een geconverteerde Subversion revisie voorsteltchangeset: %songewijzigdenkel de opgegeven tak klonenLeeftijdAuteurTakWijzigingenOmgezet VanuitOmschrijvingBestandsnaamGraafLaatste etikettenLokale TijdKnooppuntFaseRevEtikettenUTC Tijdfout bij ontleden opdracht: %sCommitstandaarddiffstatverwerp niet-gecommitte wijzigingen (geen backup)toon hulp en sluit afmaak geen backup van de gestripte revisiesGUI proces niet afsplitsenextra resultaten activereneol is niet compatibel met win32textfout bij uitvoeren opdracht exec mode werd aangezetexec mode werd afgezetKon opdracht niet starten veld om initiële focus te gevenbestand werd verwijderd, vernieuwenbestand is gewijzigd, vernieuwenbestandenAlleGeenbezig met opvullen (%d)filterglobale opties:grep: %s grep: ongeldig overeenkomstenpatroon: %s hgsubversion is niet compatibel met perfarcehint:hint: geschiedenisnegeer grote/kleine letters tijdens zoekengenegeerdimporteren in de patch queue (MQ)in de toekomstde opgegeven changeset insluiteninitiëel zoekpatrooningebedinotify is niet ondersteund op dit platformongeldig "hallo" bericht: %rongeldige argumentenbehoudt de originele taknamenbehoudt de originele changesetslanceer visueel vergelijkingsprogrammalijst met opdrachten: lokaallsprof niet beschikbaar - installeer vanaf http://codespeak.net/svn/user/arigo/hack/misc/lsprof/maak het etiket lokaalsamenvoeging met oude dirstate ouder na backoutmethodeontbrekendgewijzigdmoet het opgegeven 'type' in de stijl zijnmoet de opgegeven repository zijnnaam van het hgweb instellingenbestand (AFGERADEN)naam van het hgweb instellingenbestand (serve meer dan een repository)moet samengevoegd worden met %i hoofden moet samengevoegd worden met %s moet samengevoegd worden met %s (via %s) vergelijkingsbasis moet bijgewerkt worden naar tip %s geen opdrachten gedefiniëerd geen guardsgeen overeenkomsten gevonden: %sgeen uitgaande changesetsgeen uitgaande changesets in huidige tak (%s) / %d in totaalgeen uitgaande changesets tot en met de huidige revisie (#%d) / %d in totaalgeen uitgaande changesets tot en met revisie #%d / %d in totaalgeen repo in meldt de shell de gegeven padennuopen een nieuw werkbank vensteropenen op regelopenen...opties: ouder om te kiezen bij backout van de samenvoegingwachtwoord: perfarce is niet compatibel met hgsubversionafdrukken uitvoeringsprofiel van opdrachtafdrukken licentiebestandslijst uitlezen bestandbestandslijst uitlezen uit utf-8 gecodeerd bestandrebase vanaf de opgegeven changesetrebase naar de ogegeven changesetregistreer de datumcode als de commit datumregistreer de gebruiker als de committerverwijder een etiketverwijder de status cachewerkmap verwijderenverwijderdvervang bestaand etiketrepository %s niet gevondenrepository basis map of symbolische padnaamrev: %d (%s)revisierevisie om te annoterenrevisie om te archiverenrevisie om backout van te doenrevisie om te tonenrevisie om samen te voegenrevisie om te strippenrevisie om te etiketterenrevisie om bij te werkenrevisie, etiket of tak om checkout van te doenrevisies %d:%s tot %d:%srevisie voor graftrevisies om te bekijken in vergelijkingsprogrammagekozen bestandenzend patches als aanhangselsVerzend patches als inline bijvoegselszendt patches als onderdeel van de email teksttoon bestanden zonder wijzigingentoon genegeerde bestandentoon de inhoud van de status cache (niet bijwerken)start de debuggerCommitMQ ActieRollbackstatussubreporesultaten onderdrukkener loopt al een sync opdrachtCommitPatch TakRevisie detailsZoekenSynchroniserende kloon zal een lege werkmap hebben (enkel een repository)de revisie om te tonenthg %s: %s thg aboutthg add [BESTAND]...thg annotatethg archivethg backout [OPTIE]... [[-r] REV]thg bisectthg commit [OPTIES] [BESTAND]...thg debugbugreport [TEXT]thg drag_copy BRON... DOELthg drag_move BRON... DOELthg email [REVS]thg forget [BESTAND]...thg graft [-r] REV...thg grepthg guessthg help [OPDRACHT]thg hgignore [BESTAND]thg import [OPTIES] [DOEL]...thg init [DOEL]thg log [OPTIES] [BESTAND]thg manifest [-r REV] [BESTAND]thg merge [[-r] REV]thg purgethg rebase -s REV -s REV [--keep]thg rejects [BESTAND]thg remove [BESTAND]...thg repoconfigthg resolvethg revdetails [-r REV]thg revert [BESTAND]...thg serve [--web-conf BESTAND]thg shellconfigthg shelvethg status [OPTIES] [BESTAND]thg tag [-f] [-l] [-m TEKST] [-r REV] [NAAM]thg thgstatus [OPTION]thg update [-C] [[-r] REV]thg userconfigthg versie [OPTIES]thg: %s thg: opdracht '%s' is dubbelzinnig: %s thg: onbekende opdracht '%s' onbekendonbekende revisie!niet-herkend profileringsformaat '%s' - Genegeerd alle repos in de huidige map bijwerkengebruik "thg -v help %s" om algemene opties te ziengebruik "thg -v help%s" om aliases en algemene opties te ziengebruik "thg help" om de volledige lijst met opdrachten te ziengebruik "thg help" om de volledige lijst met opdrachten te zien of "thg -v" voor detailsgebruik als commit berichtgebruik slechts één vorm om een revisie op te gevengebruik pull protocol om gegevens te kopiërengebruik ongecomprimeerde overdracht (snel over LAN)versie %swacht tot de tweede overgaatzal gesloten wordenwin32text is niet compatibel met eolCommitmet Mercurial-%s, Python-%s, PyQt-%s, Qt-%swijzigingen in werkmapOngewijzigdGeen././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/nn/0000755000000000000000000000000014742203610014166 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1274145 tortoisehg-6.9/locale/nn/LC_MESSAGES/0000755000000000000000000000000014742203610015753 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033566.0 tortoisehg-6.9/locale/nn/LC_MESSAGES/tortoisehg.mo0000644000000000000000000000100514742203536020502 0ustar00rootroot$,,-Project-Id-Version: tortoisehg Report-Msgid-Bugs-To: Norwegian Nynorsk POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2009-11-23 16:59+0000 Last-Translator: Norwegian Nynorsk Language-Team: Norwegian Nynorsk MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Launchpad-Export-Date: 2019-07-17 05:43+0000 X-Generator: Launchpad (build 19009) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/oc/0000755000000000000000000000000014742203610014154 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1314144 tortoisehg-6.9/locale/oc/LC_MESSAGES/0000755000000000000000000000000014742203610015741 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033566.0 tortoisehg-6.9/locale/oc/LC_MESSAGES/tortoisehg.mo0000644000000000000000000001112314742203536020472 0ustar00rootrooty $(/ 7AHKOU[bq y       $ ) 5 ; @ E O X [ c l v               ) 2 9 A G L R [ d p z                    # , 6 A I P X @ O X a l s }            &>GX^c kw|   $)/@ IT X f s}     ") - 7C Wcl       %.FHW\ m y        " .9B H aliases: %s %s : %s&Cancel&Discard&Local&Merge&No&Other&Refresh&YesAbortAboutAcceptAddAge:AliasAppendBccBranchBranch:Browse...CancelCcCc:CleanCloseCommitConfirm DeleteContactContext MenuCreateDateDate:DescriptionDestDestination:EditEdit FileEmailEncodingErrorExitFileFilenameFilesFinishedForgetFromFrom:Global SettingsGraphHostImport - %sMergeMoveNameNew Name:No DatesOKOptionsOptions:Parent 1:Parent 2:ParentsPasswordPortPreview:ProxyRefreshRemoveRenameRename FileRepositoryRevRevertRevision:Running...SMTP PasswordSearchSearch HistorySettingsShow IconShow allSourceSource:StartStopStyleSubject:Summary:SynchronizeTab WidthTag:Tags:Target:TaskbarToTo:TypeURLUpdateUserUser:UsernameWarningWeb Server[original]abort: addedglobal options:ignoredinvalid argumentslocalmethodmodifiedoptions: password: removedstatusunknownProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2010-04-05 13:19+0000 Last-Translator: Cédric VALMARY (Tot en òc) Language-Team: Occitan (post 1500) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n > 1; X-Launchpad-Export-Date: 2019-07-17 05:44+0000 X-Generator: Launchpad (build 19009) aliàs : %s %s : %s&Anullar&Abandonar&Local&Fusionar&Non&Autre&Refrescar&ÒcAbandonarA prepausAcceptarApondreAtge :AliàsApondreCciBrancaBranca :Percórrer...AnullarCcCòpia a :NetejarTamparValidarConfirmar la supressionContacteMenut contextualCrearDataData :DescripcionCiblDestinacion :EditarEditar lo fichièrAdreça electronicaEncodatgeErrorQuitarFichièrNom del fichièrFichièrsAcabatDoblidarDeDe :Configuracion generalaGrafÒsteImportacion - %sFusionarDesplaçarNomNom novèl :Pas de datasD'acòrdiOpcionsOpcions :Parent 1 :Parent 2 :ParentsSenhalPòrtApercebut :Servidor mandatari (proxy)RefrescarSuprimirTornar nomenarTornar nomenar lo fichièrDepausRevRestablirRevision :En cors d'execucionSenhal SMTPRecercarIstoric de recèrcasParamètresAfichar una icònaAfichar totFontFont :AviarArrestarEstilSubjècte :Resumit :SincronizarLargor de las tabulacionsEtiqueta :Etiquetas :Cibla :Barra dels prètzfachesADestinatari :TipeAdreça InternetMesa a jornUtilizaireUtilizaire :Nom d'utilizaireAvertimentServidor Web[original]abandon : apondutopcions globalas :ignoratarguments invalidslocalametòdemodificatopcions : senhal : suprimitestatdesconegut././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/pl/0000755000000000000000000000000014742203610014166 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1314144 tortoisehg-6.9/locale/pl/LC_MESSAGES/0000755000000000000000000000000014742203610015753 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033566.0 tortoisehg-6.9/locale/pl/LC_MESSAGES/tortoisehg.mo0000644000000000000000000023671114742203536020520 0ustar00rootroot4%LJLJ MJ[JjJJJJ JJJK2K QKrK$KKK)KL LWLYrLLLLMM-MJM_MpMM M MMM MM MM NN&N=N ENSN#sNN N NNNNO *O8OOOdOiO rO}OOOOOOOOOOOOOP PPP !P,P4P=PDPKPQPdPhP~PPPP PP PPPP PP PQQQ'QCQaQ#}QQQ QQR$R>ROR,bRRR&RRRSS2S-NS|SSS S SSS$ U#0UTUZUwU}UUUU%U&U V V3V 7VDVcVVV V VVVVV V0V0W LW ZW)eW)WW=WXX 1X?XFXXXsX XXX;X'X Y!!YYCYYYYYYYGY:BZ4}ZZZ8Z[%[ B[O[a[!r[=[[[q\ ]].]D]a]~]]&] ]"] ^^ #^1^9^B^ V^`^s^^^^+^^3_5_U_)l__+____,_"`B`W` l` w```,```$` aa(aBa\ava}aaa"a&a aabb$b*b:bMb\bqb bbibbc_#dddd dddd d d e&e@e IeWe+ke eVeef0fNf kfwffffff fgg!)gKgZgig xgg ggggghh h)h9h >h Hh*Sh ~hhhhhhhhi//i_iniii i iii>i.j./j^jsjjj'jjj kk/k Ak KkWk \k}k kk'kkkOl#el l llll*l l m-@m-nm1m.mm#n9n'Vn~n!n'nnn o!o0o6o ;oEo Xo!co oooooo/op>pOpXpipppppp pppq.q=q Pq]q aqlq%qqqq-q2rNr Sr`r yr rr"rr;rsX2sss+ss ss$s t)t/t5t3Dt4xt*t)tu uu!u!>u`ueuku&{u uuGvLv\vsv vvv )x 7xExWxkx {xx )y&3yZyiynysyMyyyyyy zz%z.z CzOz ezrzz z zzzz {;{6X{{{{ {{{||,| A|N|V|[|m||| | ||| | | }} }"} $} 2}@} R}(]}!}1}}} ~ ~ )~ 7~ A~O~G^~m~ )%Ok{   -%9$Nsxր[$; Ɂ ځ  ,FXl|-$8#I(mŃ#<Qh(+#58,T,!܅%$%5 [3|#Іx  ň ψو  - A MYh~  ƉЉ* &!Fh:*׊!$38JP co ‹ߋ'-L\ou%Ό"7Vglu{  ʍ)?GYi$ю؎!,3CJe~# !ӏ/> E Q ^j!$  / CdyM͑ &2!Bd+xҒ ] $ = GU"t ǔ Քߔ %*C H T^{) Ǖԕە" ( 2?W ` k wȖۖ 1/Mk."# ) GU\ q {&Θ y%ә 1 Rn?ݛ$ 16=EJaio, Ҝ &?1\  #˝" %*2"8![ }  )7-4@su.03I>};(.!P/ۡ% -18_!ܢ"3Rdx  £ϣ%"AZj +Ȥ + Ij" ƥ""6HP9bΦ *4I ~  !  2<Xi"¨֨ܨC@)5j*"˩- ;)\' ͪ٪ 23:n}  ɫ ߫C] v+5a'#߭l$p ,#Ϯ + KVex  ˯֯߯ *?Uoưڰ.AI"_ױ  & 6 @agnv ~)ֲ!)!2Tq  ʳ γ ۳ ' ?Ld} Ҵ$@YhԵ۵,? W cm  " ƶ0E NXkȷ , ;G\x +۸#>FX u",ƹ &@`z"¼"ۼ#%"H ]~2 dm'%D j"ȿ)9 S_ w ''$Lds"!.G N Zg nx    ' 1;D JTjo     #*+. Z{&!$"%H^~4%;Kd~-"" : GT#r%+  )2Pl&."Il|C#*>5S4%`EMhy# ;<[/kc<[l`U:C~=  5(HGqd 2Lh$!$ *3 C MXo~!!8!':I)!.*3*^ae>z/ $ 2@H-` ': Vbz 9 "6J]w hY]# - CO_%s :f ""0,Fs$+:Tj2QY jv }/*?Rl8$5f;YSPeu5# +<V[_|,%$J-'x ,'4@0u0./6'S{,$(!)K$_  !$ &7Okq;)  ?F*X% 2 -@Uei#q40'#I2:| ,=>S$v .:)@jq&( )9!>[51 !#*$Nsvz( in  4@ )>OTZU` +7Oau !! =KGA '5N]t "#1CVn  14A v#   G#wk /'"J\r 8*&@ g!q" !8P]VB ! ,8MSgo)3G{ 2>[v : Rs5.2H"K7n+-0N(h"8$*  ( # - 7 AMU\d y  % 9G [ eo  0%'DOb90 0 5 L R  i w        * $ !; 4]         +2  ^ + % &      % .  M [  m w  - "  +  ; E [ k      * #9 NYi o$"%)!Df w  $( E Q^r$-C@V )/C]s ) 6BgJ )# M[j y  7#4Fe!~ "!1O^p 8WtG' * K lz  -<P ` nyx#!; ]~<""!4 V `ZkO:$Oty 4$-!R t4  &4,C$p +*  ( 7 G  L X u ?  , x!-!/!(!2".I",x".""=[##3#%#$.$5$8$<$ W$b$|$$$$$$$%)&%P%T%f%j%z%!%.%+%" &.&G&)e&&&3&,&!')>'Ch'&'-'2(#4(*X((((((P(F)d)))))4)E*%b* * **D**%+++:+ U+3c++(++6+ ,(, D,Q,Xd,K,: -*D-$o-!-4-.-,.8G.. . ...B.?2/r// / //// / //D0M0c0x0$0}0+-1"Y1"|11&1!1}2-2 2/2(23.3)N3 x333 3333333 3 44'484?4D4J4S4Z4 _4k4 p4}4444444 444 50"5%S5)y55 55555 55 666 #6.6>6.]66#6666 6 6 67>7Y7o7.7 7777777/8 D8N8d8 z8'8 888889(9'C9k9 9999999999:: #: 0: <:F: X: e:"q: ::::: ;; ';1;D;X;x;;;; ;;;< < <5<Q< a<l<+<<<<<<==#/= S=]=p==)== aliases: %s (default: %s) (is a symlink) (is unversioned) (renamed from %s) (was added) (was added, now missing) (was deleted)"%s" is not a folder"%s" is not a valid directory"%s" removed from path history"%s" removed from search history### filter text ###### host certificate fingerprint ###### patch name ###### regular expression ###### regular expression search pattern ###% Match%d day%d days%d files have merge conflicts that must be resolved%d files were modified on both branches and must be resolved%d hour%d hours%d matches found%d minute%d minutes%d month%d months%d outgoing changesets%d outgoing changesets to %s%d second%d seconds%d week%d weeks%d year%d years%p%%s (hint: %s)%s (pending)%s (submitted)%s - branch operation%s - commit%s - commit options%s - hg %s%s - recover repository%s - status%s - sync options%s - verify repository%s : %s%s %s already exists, replace URL?%s and %s have identical contents %s is a dirty subrepo%s is added%s is ignored%s is modified%s is not a valid repository%s is not modified (clean)%s is not tracked (unknown)%s is removed%s repository settings%s's global settings&Add&Archive&Browse...&Cancel&Clear&Clone&Close&Close Repository&Commit&Commit to current branch&Copy...&Delete&Discard&Discard changes&Exit&False&File&Force&Forget&Help&Ignore...&Import&License&Local&Merge&Move&New Repository...&No&No (discard changes)&Open Repository...&Other&Refresh&Remove&Repository&Revert with backup&Revert...&Save&Search&Set...&Settings&True&Unspecified&Update&View&Yes(is a changed and dirty sub-repository)(is a changed sub-repository)(is a dirty sub-repository)(is a new and dirty sub-repository)(is a new sub-repository)(is a removed sub-repository)(is an unchanged sub-repository)(no help text available)(same as parent)*: not used by TortoiseHg, resolved merge, unresolved mergeLaunch settings tool...Annotate:Candidate MatchesDifferences from Source to DestHost: %sIgnore FilterParse Error!Selected Options:Selected Options: %sUncommitted local changes are detectedUnknown revision!Unrevisioned FilesUntracked Files= Working Directory Parent =A README file is not configured for the current repository.

                                                                                                              To configure a README file for a repository, open the repository settings file, add a 'readme' key to the 'tortoisehg' section, and set it to the filename or URL of your repository's README file.A bookmark named "%s" already existsA terminal shell must be configuredAbortAbort the export operation. AboutAbout TortoiseHgAcceptAccept All MatchesAccept Selected MatchesAccept the local file version (yours)Accept the other file version (theirs)Activate BookmarksActivate bookmark?AddAdd Files...Add a repository to this groupAdd files to version controlAdd ignore filter...Add selected untracked files?Add separatorAdd to listAddedAfter Pull OperationAge:AliasAll HistoryAll conflicting files will be marked unresolved.All conflicts are resolved.All files (*)Allow PushAllow push of a new branch (--new-branch)Allow pushing new branches (--new-branch)Always merge (when possible)Always show repo tabs, even for a single repo. Default: FalseAmendAmend current revisionApp&ly FormatAppendApply all patchesApply changes before exit?Apply one patchArchive - %sArchive FormatsArchive types:Are you sure you want to delete these files and/or folders?Are you sure you want to overwrite it ?Are you sure?Attempt automatic (trivial) mergeAttempt to push to specified URL or alias after each successful commit. Default: No pushAuthorAuthor ColoringAuto Commit ListAuto Exclude ListAuto Includes:Auto-resolve mergesAutomatically advance to next page when backout and merge are complete.Automatically advance to next page when merge is complete.Automatically resolve merge conflicts where possibleBackBacked out changeset: Backing out a parent revision is a single step operationBacking out and committing...Backing out, then merging...Backout - %sBackout changesetBackout revisionBackspace or Del to remove row(s)Backup copies of modified files can be found in .hg/Trashcan/BccBefore backout, you must commit, shelve to patch, or discard changes.Before merging, you must commit, shelve to patch, or discard changes.Bisect - %sBisect - Bad, Good...Bisect - Good, Bad...Bookmark '%s' does not existBookmark '%s' has been addedBookmark '%s' has been movedBookmark '%s' has been removedBookmark '%s' has been renamed to '%s'Bookmark - %sBookmark named "%s" does not existBookmark:BranchBranch ColorsBranch:Branch: Browse Directory...Browse...Bzip2 tar archivesC&onfigure FormatCan't find revision '%s'CancelCannot add subrepositoryCannot backout change on a different branchCannot export revisionCannot export revision %s into the file named: %s Cannot import selected revisionCannot open repositoryCannot open the .hgsub file in:

                                                                                                              %sCannot start a new searchCannot update the .hgsub file in:

                                                                                                              %sCcCc:ChangeLog FontChanges have been moved, you must now commitChanges take effect on next commitChangeset is closed.Changeset is tagged.Changeset:ChangesetsCheckCheck all filesCheck for incoming changes from selected URLChecked count: %dCheckingChecking working directory status...Checking...Checkmark files to addCheckmark files to forgetCheckmark files to removeCheckmark files to revertChild:Chunks selected: %d / %dCleanClearClear current query and query textClick OK to continue or Abort to exit.Clone - %sClone RepositoryClone to revision:Clone...CloseClose %s branchClose After CommitClose Branch: Close current branchClose other tabsClose tabClose:Comma separated list of exclusion file patterns. Exclusion patterns are applied after inclusion patterns.Comma separated list of files that are automatically included in every commit. Intended for use only as a repository setting. Default: None (leave blank)Comma separated list of files that are automatically unchecked when the status, and commit dialogs are opened. Default: None (leave blank)Comma separated list of inclusion file patterns. By default, the entire repository is searched.CommandCommand outputCommitCommit backout and merge resultsCommit changesCommit merge resultsCommit messageCommit...Committing...Common setsCompare revisions of the selected fileCompressCompress - %sCompress History...Compress is complete, old history untouchedConfig File:Configuration Error: "%(arg0)s",
                                                                                                              Please fix your configConfigure Explorer extensionConfigure Issue TrackerConfigure repository settingsConfigure user wide settingsConfirm AddConfirm Branch ChangeConfirm DeleteConfirm Delete UnversionedConfirm DiscardConfirm Discard ChangesConfirm Discard MessageConfirm ExitConfirm New BranchConfirm OverwriteConfirm Push to remote RepositoryConfirm ReloadConfirm RemoveConfirm RevertConfirm SaveConfirm URL replaceConfirm UndoConfirm UpdateConfirm adding unknown filesConfirm deleting filesConfirm file deletionsConfirm path deleteContactContext MenuConverted From:CopyCopy - %sCopy ErrorCopy full path of file(s) to the clipboardCopy messageCopy source -> destinationCreateCreate &BranchCreate Repository HereCreate a new groupCreate a new patchCreate a new repositoryCreate clone here from sourceCreate new named branch "%s" with this commit? Culprit found.Current local revisionDateDate:Dead BranchesDefault PushDefault widgetDeleteDelete %d file in .hg/TrashcanDelete %d files in .hg/TrashcanDelete %d ignored fileDelete %d ignored filesDelete %d unknown fileDelete %d unknown filesDelete empty foldersDelete patches...Delete selected chunksDelete selected patchesDelete the following unversioned files?Deleted %d filesDeleted %d files and %d foldersDeleted*Deleting trash folder...Deletion failuresDeny PushDescriptionDestDestination file already exists.Destination path:Destination:Detect Copies/Renames in %sDetect outgoing changes to selected URLDetect renames and copiesDetected merge/diff tools:Detected uncommitted local changes in working tree. Please select to continue: Detected uncommitted local changes.Diff FontDiff ToolbarDiff and AnnotateDiff to parentDirectory of filesDiscard - discard local changes, no backupDiscard current backout message?Discard current commit message?Discard local changes, no backup (-C/--clean)Discard local changes, no backup (-f/--force)Discard outstanding changes to working directory?Discard remote changes, no backup (-C/--clean)Display closed branchesDisplay graph the named branch onlyDisplay only active branchesDisplaying %(count)d of %(total)d itemsDnD SynchronizeDo not save backup files (*.orig)Do not update the new working directoryDo not verify host certificateDo you want to exit?Drag to change orderDuplicate NameE&xitEditEdit FileEdit Ignore FilterEdit LocalEdit current file in working copyEdit fileEdit repository ignore filterEdit resolved fileEditor launch failureEmailEmail Selected...Email outgoing changesets for remote repositoryEmit debugging output (--debug)Enabled overlaysEncodingEnglish MessagesEnter revision identifierErrorError encountered.Error loading subreposError previewing subrepo: %sError writing fileExcludes:ExitExit without finishing resolve?Explorer Extension SettingsExport Diff...Export Selected...Export patchExtExtensionsFailed to add repositoryFailed to load issue tracker '%s': %sFailed to open path in terminalFailed to open repositoryFailed!Fetch - use fetch (auto merge pulled changes)Fetch - use fetch extension (fetch is not active!)FileFile HistoryFile History Log ColumnsFile StatusFile Status:File already existsFile conflicts need to be resolvedFile is binaryFile is larger than the specified max size. maxdiff = %s KBFile or diffs not displayed: File or diffs not displayed: File is larger than the specified max size. maxdiff = %s KBFilenameFilesFilter graph with revision sets or branchesFilter:Find RenamesFind copy and/or rename sourcesFinding outgoing changesets to %s...FinishedFlag:FontsForce Repo TabForce a merge with outstanding changes (-f/--force)Force push or pull (override safety checks, --force)Force push to remote location (-f/--force)Force removal of modified files (--force)ForgetForget Files...ForwardFound %d incoming changesetsFound incoming changesets from %sFromFrom:Full Path TitleGetting incoming changesets from %s...Git FormatGit patches can describe binary files, copies, and permission changes, but recipients may not be able to use them if they are not using git or Mercurial.GlobGlobal SettingsGo to current revisionGoto ancestor of %s and %sGoto revisionGraphGraphical merge program for resolving merge conflicts. If left unspecified, Mercurial will use the first applicable tool it finds on your system or use its internal merge tool that leaves conflict markers in place. Choose internal:merge to force conflict markers, internal:prompt to always select local or other, or internal:dump to leave files in the working directory for manual mergingGuards: %d/%dGuess RenamesGzip tar archivesHTTP Error: %d (%s)Head is closed!Hg command:Hg patches (as generated by export command) are compatible with most patch programs. They include a header which contains the most important changeset metadata.Hide TagsHide context menu outside repositoriesHighlight IconHostIconIconsIf you still have trouble, please file a bug report.Ignore Ignore Blank LinesIgnore WS AmountIgnore White SpaceIgnore caseIgnore filter - %sIgnored*Immediate OperationsImport - %sImport from ClipboardIn-Reply-To:Include all ancestorsInclude patch queueIncludes:Incoming from %s aborted, ret %dIniparse must be installed.Initial revisionInsufficient access rights.InterruptedInvalid Settings - Please provide your ReviewBoard usernameInvalid Settings - The ReviewBoard server is not setupInvalid date formatInvalid glob expressionInvalid regexp expressionIssue TrackerIssue Tracker PluginIssue TrackingKeep patch filesKnown bad revision:Known good revision:Left ToolbarLicenseLineList of all toolsList updated files (--verbose)Load all revisions into graphLocal HostnameLocal PathLocal Path:Local Repository %sLocal disks onlyLocal tagLocation:Locked*LogLong SummaryMMQ Git FormatMQ QPushPushMQ QPushPush allMQ optionsMake repo compatible with Mercurial <1.7Manually resolve rejected chunks?Mark this chunk as resolved, goto next unresolvedMark this file as resolvedMark this file as unresolvedMatch TextMax ChangesMax Diff SizeMax FilesMenu BehaviorMercurial UserMercurial command is still running. Are you sure you want to terminate?Mercurial was unable to find an editor. Please configure Mercurial to use an editor installed on your system.MergeMerge - %sMerge - allow to merge with local changesMerge caused file conflictsMerge changesetMerge from (other revision)Merge to (working directory)Merge with %sMerging...MessageMessage FontMessage identifier to reply to, for threadingMin Similarity: %d%%Missing informationMonitor Repo ChangesMonitor working
                                                                                                              directory changesMoveMove all files leftMove all files rightMove selected chunks leftMove selected chunks rightMove selected file leftMove selected file rightMultiple sources chosenNameName associated with commits. The common format is:
                                                                                                              Full Name <email@example.com>Named branch "%s" already exists, last used in revision %d New Branch: New Commit PhaseNew GroupNew Name:New Patch BranchNextNext diffNo DatesNo appropriate filesNo backup (-n/--nobackup)No branch changesNo deletable chunksNo editor foundNo file changesNo files checkedNo files selectedNo files to findNo host validation, but still encrypted (bad)No ignored files foundNo incoming changesets from %sNo items to displayNo matches foundNo merge conflicts, ready to commitNo modified files checkmarked for commitNo operation to performNo outgoing changesetsNo outgoing changesets to %sNo patch branch selectedNo repository foundNo shell configuredNo transaction availableNo trash files foundNo unknown files foundNo username configuredNo visual editor configuredNone - simply pull changesetsNot a Mercurial subrepo, not previewableNot a head revision!Not a head, backout will create a new head!Nothing to importOKOnly consider deleted filesOnly files modified/created in this revisionOnto destinationOpenOpen a new named branchOpen a shell terminal in the selected folderOpen all repositories in new tabsOpen new tabs next to the current tabOpen shelve toolOpen the repository in a file browserOpen the repository in a new tabOpen the selected folder in the system file managerOpen the selected subrepositoryOperation aborted:

                                                                                                              %(arg0)s.Optional. Password to authenticate with. If not given, and the remote site requires basic or digest authentication, the user will be prompted for it.Optional. Username to authenticate with. If not given, and the remote site requires basic or digest authentication, the user will be prompted for it. Environment variables are expanded in the username letting you do foo.username = $USER.OptionsOptions:Or use:Outgoing to %s aborted, ret %dOutput FontOverlaysParent 1:Parent 2:Parent:ParentsPasswordPassword:Paste &FilenamesPatch EOLPatch Files (*.patch)Patch Name RequiredPatch QueuePatch date:Patch exportedPatch failed to applyPatch files already existPatch message:Patch name:Patch user:Patch:Patch: %sPatches exportedPathPath:PatternsPerform a push before updating (-p/--push)PhasePlain, do not prepend Hg headerPlease configure a visual editor.Please enter a usernamePlease enter commit messagePlease report this bug to our bug trackerPlease wait while committing merged files.Please wait while making backout.Please wait...PortPort to listen onPort:Post Pull BehaviorPost Pull: Prepare to backoutPrepare to mergePrevPreviewPreview:Previous diffProxyPullPull from %s aborted, ret %dPull from %s completedPull incoming changes from selected URLPull incoming changesets into your repositoryPull to here...Pulling from %s...PurgePush After CommitPush After Commit:Push Requires SSLPush allPush current branch (%s)Push outgoing changes to selected URLPush to %s abortedPush to %s aborted, ret %dPush to %s completedPush to remote repository %s ?Pushing to %s...QNewQRefreshQueryQuitREADME not configuredRe&nameReadonly*RebaseRebase - %sRebase abortedRebase already in progressRebase is completeRecurse into subrepositoriesRecurse into subrepositories (--subrepos)RefreshRefresh &Task TabRefresh ToolbarRefresh current patchRefresh current repositoryRefresh file listRefresh the Repository Registry listRegexpRegexp:Regular expression search patternReject incoming changesetsRelated Paths:ReloadRemote command:RemoveRemove &All Selected FilesRemove &Unmodified FilesRemove Files...Remove authentication data from URLRemove current working revision?Remove files from version controlRemove patches from queue?Remove selected deleted files?Removed tag %sRenameRename - %sRename ErrorRename FileRename file or directoryRename the entryReplaceReplace existing tag (-f/--force)Report only the first match per fileRepositoriesRepositoryRepository ErrorRepository ID:Repository RegistryRepository SettingsRepository command still runningRepository is lockedRepository not localRepository status & changesResolved conflictsRestart &BranchRestart all TortoiseHg applications for the following changes to take effect:RevRevertRevert - %sRevert Files...Revert all files to this revisionRevert file changesRevert file(s) to contents at this revisionRevert local file changes?Revert to RevisionReverting all files will discard changes and leave affected files in a modified state.

                                                                                                              Are you sure you want to use revert?

                                                                                                              (use update to checkout another revision)Review BoardReview ID:RevisionRevision #%d (%s) was exported to:

                                                                                                              %s%s%sRevision &DetailsRevision SetRevision has changed to:Revision:Right ToolbarRollback commit to revision %dRollback to revision %d (undo %s)?Running at %sRunning...S&ynchronizeSMTP HostSMTP PasswordSMTP PortSMTP TLSSMTP UsernameSSL error: %sSSL: Server certificate verify failedSSL: unknown error %s:%sSaveSave GlobalSave PathSave changes before editing?Save error report toSave file as it appeared at this revisionSave file toSave in RepoSearchSearch HistorySearch already in progressSearch file revisions for patternsSearchingSearching...Secure HTTPS ConnectionSecuritySecurity: Select &AllSelect &NoneSelect Destination FileSelect Destination FolderSelect RepositorySelect Source FileSelect Source FolderSelect Tool:Select an existing repository to add as a subrepoSelect branch of merge commitSelect destination repositorySelect patch folderSelect patchesSelect post-pull operation for this repositorySelect repository directory to addSelect repository directory to openSelect source repositorySend &EmailSend changesets as Hg patchesSending EmailServerServer Repository IDSet Date:Set username:SettingsSettings File:ShellShelve - move local changes to a patchShow About DialogShow FunctionShow IconShow LogShow Output LogShow a full directory path of the repository in the dialog title instead of just the root directory name. Default: FalseShow allShow changes from first parentShow changes from second parentShow the history of the selected fileSingle Workbench WindowSizeSize (KB)Skip final confirmation page, close after commit.Skipping %s, unable to readSort the group by full pathSort the group by short nameSourceSource:Specify visual diff tool, as described in the [merge-tools] section of your Mercurial configuration files. If left unspecified, TortoiseHg will use the selected merge tool. Failing that it uses the first applicable tool it finds.Specify your preferred user interface language (restart needed)StartStart a new patch branchStart revision:Start web server for this repositoryStatStatusStatus:StopStop current operationStoppedStyleSub menu items:Subject:Subrepo added to .hgsub fileSubrepo created and set to initial revision.Subrepo initialized to revision:Subrepo removed from repository.Subrepo state is:Subrepo was not changed.Subrepository already existsSubrepository not found in the working directory.Subversion:SuccessSummary Line LengthSummary:SynchronizeSynchronize with dragged repositorySynchronize with remote repositoryTab WidthTag - %sTag:Tagged:Tags:Tar archive compressed using bzip2Tar archive compressed using gzipTar archivesTarget GroupsTarget PeopleTarget:Task TabsTemporarily disable configured HTTP proxyTerminated by userTest this revision and report findings. (good/bad/skip)Text files (*.txt)The .hgsub file already contains the line:

                                                                                                              %sThe changes from revision %s and all unmerged parents will be discarded. Are you sure this is what you want to do?The destination "%s" already exists as a file!The destination "%s" already exists as a folder!The destination must be within the repository tree.The directory "%s" is not empty! Do you want to overwrite it?The file "%s" already exists! Do you want to overwrite it?The phase of new commits. Default: draftThe source must be within the repository tree.The working directory is already merged. Continue or discard existing merge.There are merge conflicts to be resolvedThere are no conflicting file merges.There are no files that may have been renamedThere is already an existing folder with that same name.Three-way Merge ToolTitleToTo:Toggle display of text search barToolsTop menu items:TortoiseHg Bug ReportTortoiseHg Command DialogTortoiseHg ErrorTortoiseHg Overlay Icon ServerTortoiseHg SearchTortoiseHg SettingsTortoiseHg WorkbenchTry refreshing your repository.TypeUI LanguageURLURLError: %sUnable to backoutUnable to compress historyUnable to create a Mercurial.ini fileUnable to create a config fileUnable to find changesetUnable to mergeUnable to merge chunksUnable to read repository statusUnable to removeUnable to remove URLUnable to remove file %s, permission deniedUnable to save after commit pushUnable to save an URLUnable to save authenticationUnable to save auto include listUnable to save usernameUnable to show subrepository filesUnable to update repository nameUnable to write .hgignore fileUnable to write configuration fileUnable to write diff fileUnapply all patchesUnapply one patchUncheckUncheck all filesUncheck to consider all revisioned files for copy sourcesUncompressed tar archiveUncompressed zip archiveUndo last commit?Undo last transaction?Unknown revision!Unresolved conflictsUnresolved conflicts remain. Are you sure?Unsaved changes will be lost. Do you want to reload?Unsupported repository type (%s)UnversionedUpdateUpdate - %sUpdate - pull, then try to updateUpdate IconsUpdate icons for this repositoryUpdate to:Update working directoryUpdate...Use English backout messageUse compact viewUse extended (git) patch formatUse proxy serverUse pull protocol to copy metadataUserUser AuthenticationUser:UsernameVerify backout revision and ensure your working directory is clean.Verify merge targets and ensure your working directory is clean.Verify with Certificate Authority certificates (best)Verify with stored host fingerprint (good)View change as unified diff outputView change in context of fileView changes to current in external diff toolView changes using GUI diff toolView file as it appeared at this revisionView file changes in external diff toolView the repository's settingsVisual DiffVisual Diff ToolVisual Diff...Visual EditorVisual diff between resolved file and first parentVisual diff between resolved file and second parentVisual diff...Visual three-way diffWarningWeb ServerWhat do you want to do? WorkbenchWorkbench Log ColumnsWorking CopyWorking DirectoryWorking Directory (merged)Working directory is not clean! View changes...Working directory statusWrap searchWrite diff fileYou can visit our site hereYou have selected one or more files that have been modified. By default, these files will not be removed. What would you like to do?You likely need to refresh this applicationYou may continue the compressYou may continue the rebaseYou must enter a patch nameYou must identify yourself to MercurialYou must provide the path to a fileYour current working revision (%d) will be removed by this rollback, leaving uncommitted changes. Continue?Zip archive compressed using deflateZip archives[WARNING] Invalid subrepo revision ID: %s [command completed successfully %s][command interrupted %s][command returned code %d %%s][command terminated by user %s][original][working copy]a revision to sendabort: abort: %s abort: %s! action buttonCommitaddedattachbasic commands: bookmark: branch: changeset %d:%schangeset: %scleancolumn headerAgecolumn headerAuthorcolumn headerBranchcolumn headerChangescolumn headerDescriptioncolumn headerFilenamecolumn headerGraphcolumn headerLocal Timecolumn headerNodecolumn headerPhasecolumn headerRevcolumn headerTagscolumn headerUTC Timecommand parse error: %sconfig itemCommitdefaultdisplay help and exiteol is incompatible with win32texterror while running command failed to start command file has been deleted, refreshfile has been modified, refreshfilesfilesAllfilesNonefilling (%d)filterglobal options:grep: %s grep: invalid match pattern: %s hint:hint: historyignoredin the futureinclude the specified changesetinotify is not supported on this platforminvalid argumentslaunch visual diff toollist of commands: localmethodmissingmodifiedmust be specified 'type' in stylemust be specified repositoryneeds merge of %i heads needs merge with %s no guardsno matches found: %sno repo at nowopen to lineoptions: password: print licenseread file list from fileread file list from file encoding utf-8remove a tagremove the status cacheremove working directoryremovedrepository %s not foundrev: %d (%s)revision to archiverevision to backoutrevision to displayrevision to mergerevision to tagrevision to updaterevision, tag or branch to check outrevisions %d:%s to %d:%sselected filesshow files without changesshow ignored filesstart debuggerstart progressCommitstart progressMQ Actionstatussubrepotab tooltipCommittab tooltipPatch Branchtab tooltipRevision detailstab tooltipSearchtab tooltipSynchronizethg %s: %s thg aboutthg add [FILE]...thg annotatethg archivethg backout [OPTION]... [[-r] REV]thg bisectthg commit [OPTIONS] [FILE]...thg drag_copy SOURCE... DESTthg drag_move SOURCE... DESTthg email [REVS]thg forget [FILE]...thg grepthg guessthg help [COMMAND]thg hgignore [FILE]thg import [OPTION] [SOURCE]...thg init [DEST]thg log [OPTIONS] [FILE]thg manifest [-r REV] [FILE]thg merge [[-r] REV]thg purgethg rejects [FILE]thg remove [FILE]...thg repoconfigthg resolvethg revert [FILE]...thg serve [--web-conf FILE]thg shellconfigthg shelvethg status [OPTIONS] [FILE]thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]thg update [-C] [[-r] REV]thg userconfigthg version [OPTION]thg: %s thg: unknown command '%s' unknownunknown revision!use as commit messageversion %swill be closedwin32text is incompatible with eolwindow titleCommitwith Mercurial-%s, Python-%s, PyQt-%s, Qt-%sworking dir stateCleanProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2013-02-27 15:09+0000 Last-Translator: Wagner Bruna Language-Team: Polish MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2; X-Launchpad-Export-Date: 2019-07-17 05:44+0000 X-Generator: Launchpad (build 19009) aliasy: %s (domyślnie: %s) (jest symlinkiem) (poza kontrolą wersji) (przezwany z: %s) (dodany) (dodany, teraz brakujący) (usunięty)"%s" nie jest katalogiem"%s" nie jest poprawnym katalogiem"%s" usunięte z historii ścieżek"%s" usunięte z historii wyszukiwań### tekst filtru ###### odcisk certyfikatu hosta ###### nazwa patcha ###### wyrażenie regularne ###### wzorzec wyszukiwania wyrażeń regularnych ###% Wpasowania%d dzień%d dni%d dni%d plików z konfliktami scaleń, które muszą być rozwiązane%d plików zostało zmodyfikowanych w obydwu gałęziach i wynikłe konflikty muszą być rozwiązane%d godzina%d godziny%d godzinznaleziono %d wyników%d minuta%d minuty%d minut%d miesiąc%d miesiące%d miesięcy%d wychodzących zestawów zmian%d wychodzących zmian do %s%d sekunda%d sekundy%d sekund%d tydzień%d tygodnie%d tygodni%d rok%d lata%d lat%p%%s (podpowiedź: %s)%s (w trakcie)%s (przekazany)%s - operacja na gałęzi%s - commit%s - opcje commitowania%s - hg %s%s - odzyskaj repozytorium%s - status%s - Opcje Synchronizacji%s - Weryfikacja Repozytorium%s : %s%s %s już istnieje. Chcesz nadpisać URL?%s i %s mają taką samą zawartość %s jest brudnym subrepo%s jest dodany%s jest ignorowany%s jest zmodyfikowany%s nie jest poprawnym repozytorium%s jest niezmodyfikowany (czysty)%s jest poza kontrolą wersji%s jest usunięty%s - Ustawienia Repozytorium%s - Ustawienia Globalne&Dodaj&Archiwizuj&PrzeglądajAnulujWyczyśćKlonuj&Zamknij&Zamknij repozytorium&Commit&Commituj do wybranej gałęziKopiuj...UsuńOdrzućO&drzuć zmianyZakończ&Fałsz&Plik&WymuśZapomnijPomoc&Ignoruj...&Importuj&Licencja&Lokalny&ScalPrzenieś&Nowe repozytorium...&NieNie (odrzuć zmiany)&Otwórz repozytorium...&Inny&OdświeżUsuń&RepozytoriumP&rzywróć z backupemOdrzuć...Zapisz&SzukajUstawUstawienia&Prawda&NieistotneAktualizuj&WidokTak(jest zmienionym i brudnym subrepozytorium)(jest zmieniony subrepozytorium)(jest brudnym subrepozytorium)(jest nowym i brudnym subrepozytorium)(jest nowym subrepozytorium)(jest usuniętym subrepozytorium)(jest niezmienionym subrepozytorium)(nie ma dostępnego tekstu pomocy)(taki sam jak rodzic)*: nieużywane przez TortoiseHg, rozwiązane scalenie, nierozwiązane scalenieUruchom narzędzie ustawień...Adnotacje:Kandydujące wpasowaniaRóżnice ze Źródła do CeluHost: %sFiltr ignorowaniaBłąd parsowania!Wybrane opcje:Wybrane opcje: %sWykryto niewcommitowane lokalne zmianyNieznana rewizja!Pliki poza kontrolą wersjiPliki poza kontrolą wersji= Nadzędny Katalog Roboczy =Plik README nie jest skonfigurowany dla wybranego repozytorium.

                                                                                                              Aby skonfigurować plik README dla repozytorium, otwórz ustawienia repozytorium i dodaj klucz 'readme' do sekcji 'tortoisehg' i tam wskaż nazwę pliku lub ścieżkę URL do wybranego przez ciebie pliku README.Zakładka o nazwie "%s" już istniejePowłoka terminala musi być skonfigurowanaPrzerwijPrzerwij operację eksportu. O TortoiseHgO TortoiseHGAkceptujAkceptuj wszystkie wpasowaniaAkceptuj wybrane wpasowaniaAkceptuj twoją wersję plikuAkceptuj ichnią wersję plikuAktywuj zakładkiAktywować zakładkę?DodajDodaj pliki...Dodaj repozytorium do tej grupyDodaj pliki do systemu kontroli wersjiDodaj filtr ignorowania...Dodać wybrane nieśledzone pliki?Dodaj separatorDodaj do listyDodaneOperacja po pobraniuWiek:AliasCała historiaWszystkie konfliktowe pliki zostaną oznaczone jako nierozwiązane.Wszystkie konflikty są rozwiązaneWszystkie pliki (*)Zezwól na wysłaniePozwalaj na wysyłanie nowych gałęzi (--new-branch)Zezwól na popychanie nowych gałęzi (--new-branch)Zawsze scalaj (gdy to tylko możliwe)Zawsze pokazuj panel z repozytoriami, nawet gdy jest tylko jedno do pokazania. Domyślnie: FalseKorygujKoryguj aktualną rewizjęZastosuj &formatDodajAplikuj wszystkie patcheZastosować zmiany przed wyjściem?Aplikuj jeden patchArchiwum - %sFormaty archiwówTypy archiwów:Jesteś pewien, że chcesz usunąć te pliki i/lub foldery?Czy na pewno chcesz nadpisać?Jesteś pewien?Przystąp do automatycznego (prostego) scalaniaPróbuje wysłać zmiany pod wskazany URL lub alias po każdym udanym commicie. Domyślnie: No pushAutorKolorowanie wg autorówAutomatycznie zaznaczane plikiAutomatycznie odznaczane plikiAutozałączane:Auto-rozwiązywanie konfliktówAutomatycznie przechodź do następnej strony kiedy wycofywanie i scalanie zakończone sukcesem.Automatycznie przechodź na następną stronę, gdy scalenie zakończy się sukcesem.Automatycznie rozwiązuj konflikty gdzie to tylko możliweCofnijWycofano pakiet zmian: Wycofywanie nadrzędnej rewizji jest operacją jedno-krokowąWycofywanie i commitowanie...Wycofywanie i scalanie...Wycofaj - %sWycofaj zestaw zmianWycofywana rewizjaBackspace lub Del aby usunąć wiersz(e)Kopie zapasowe zmodyfikowanych plików można znaleźć w .hg/Trashcan/BccPrzed wycofaniem, musisz wcommitować, odłożyć do patcha lub odrzucić zmiany.Przed scalaniem musisz wcommitować, odłożyć jako patch lub odrzucić zmiany.Bisekcja - %sBisekcja - Zła, Dobra...Bisekcja - Dobra, Zła...Zakładka '%s' nie istniejeZakładka '%s' została dodaniaZakładka '%s' została przeniesionaZakładka '%s' została usuniętaZakładka '%s' została nazwana '%s'Zakładka - %sZakładka "%s" nie istniejeZakładka:GałąźKolory gałęziGałąź:Gałąź: Przeglądaj katalog...Przeglądaj...Archiwa tar bzip2K&onfiguruj formatNie można znaleźć rewizji '%s'AnulujNie można dodać subrepozytoriumNie można wycofać zmian pochodzących z innej gałęziNie można wyeksportować rewizjiNie można eksportować rewizji %s do pliku o nazwie: %s Nie można zaimportować wybranej rewizjiNie można otworzyć repozytoriumNie można otworzyć pliku .hgsub w:

                                                                                                              %sNie można rozpocząć nowego wyszukiwaniaNie można zaktualizować pliku .hgsub w:

                                                                                                              %sCcCc:Czcionka listy zmianZmiany zostały przeniesione, teraz musisz wcommitować zmianyZmiany odniosą skutek przy następnym commicieZestaw zmian jest zamknięty.Zestaw zmian jest otagowany.Pakiet zmian:Zestawy zmianZaznaczZaznacz wszystkie plikiSprawdź przychodzące zmiany z wybranego URLZaznaczona ilość: %dSprawdzanieSprawdzanie stanu katalogu roboczego...Sprawdzanie...Zaznacz pliki do dodaniaZaznacz pliki do zapomnieniaZaznacz pliki do usunięciaZaznacz pliki do odrzuceniaPodrzędna:Wybrane zmiany: %d / %dGotowaWyczyśćWyczyść zapytanieKliknij OK aby kontynuować lub Przerwij aby zakończyć.Klonowanie - %sKlonuj repozytoriumKlonuj do rewizji:Klonuj...ZamknijZamknij gałąź %sZamknij po CommicieZamknij gałąź: Zamknij wybraną gałąźZamknij inne tabyZamknij tabZamknij:Lista wzorców plików do wykluczenia. Wzorce wykluczające są aplikowane po wzorcach załączających.Oddzielona przecinkiem lista typów plików, które są automatycznie zaznaczane przy każdym commicie. Zaleca się używać tego tylko w ustawieniach samego repozytorium. Domyślnie: None (zostaw puste)Oddzielona przecinkiem lista typów plików, które automatycznie będą odznaczane w oknie commitowania. Domyślnie: None (zostaw puste)Lista wzorców plików do załączenia. Domyślnie przeszukiwane jest całe repozytorium.KomendaWyjście konsoliCommitujWcommituj wycofanie i scal rezultatCommituj zmianyCommitowanie rezultatu scaleniaWcommituj wiadomośćCommituj...Commitowanie...Standardowe zestawyPorównaj rewizje dla wybranego plikuKompresujKompresuj - %sKompresuj historię...Kompresja zakończona, stara historia została nietkniętaPlik konfiguracyjny:Błąd konfiguracji: "%(arg0)s",
                                                                                                              Proszę naprawić swoją konfiguracjęKonfiguruj rozszerzenie powłokiKonfiguruj Issue TrackeraKonfiguruj ustawienia repozytoriumKonfiguruj ustawienia użytkownikaPotwierdź dodaniePotwierdź zmianę gałęziPotwierdź usunięciePotwierdź usunięcie nieśledzonych plikówPotwierdź odrzuceniePotwierdź Odrzucenie ZmianWiadomość potwierdzenia usunięciaPotwierdź WyjściePotwierdź nową gałąźPotwierdź nadpisaniePotwierdź wysłanie zmian do zdalnego repoPotwierdź przeładowaniePotwierdź usunięciePotwierdź przywróceniePotwierdź zapisPotwierdź nadpisanie URLPotwierdź cofnięciePotwierdź aktualizacjęPotw. usuwanie niezn. plikówPotw. usuwanie plikówPotwierdź wszystkie usunięciaPotwierdź usunięcie ściezkiKontaktMenu kontekstoweKonwert. z:KopiujKopiuj - %sBłąd kopiowaniaKopiuj pełną ścieżkę pliku(ów) do schowkaKopiuj wiadomośćKopiuj źródło -> celUtwórzUtwórz gałąźUtwórz repozytorium tutajStwórz nową grupęStwórz nowy patchUtwórz nowe repozytoriumStwórz tutaj klon ze źródłaUtworzyć nową gałąź nazwaną "%s" wraz z commitem? Winowajca znalezionyAktualne lokalne rewizjeDataData:Martwe gałęzieDomyślne wysyłanieDomyślny widgetUsuńUsuwanie %d pliku z .hg/TrashcanUsuwanie %d plików z .hg/TrashcanUsuwanie %d plików z .hg/TrashcanUsunąć %d ignorowany plikUsunąć %d ignorowane plikiUsunąć %d ignorowanych plikówUsunąć %d nieznany plikUsunąć %d nieznane plikiUsunąć %d nieznanych plikówUsuń puste katalogiUsuń patche...Usuń wybrane zmianyUsuń wybrane patcheUsunąć poniższe pliki spoza syst. kontroli wersji?Usunięto %d plikówUsunięto %d plików i %d folderówUsunięte*Usuwanie kosza...Błędy usuwaniaNie zezwalaj na wysłanieOpisCelPlik docelowy już istnieje.Ścieżka docelowa:Cel:Wykryj kopie i zmiany nazw w %sWykryj wychodzące zmiany do wskazanego URLaWykryj zmiany nazw plików oraz kopieWykryte narzędzia do diff/scalania:Wykryto niewcommitowane zmiany w drzewie. Wybierz opcję by kontynuować: Wykryto niewcommitowane lokalne zmiany.Czcionka diffaPasek DiffaDiff i AdnotacjeDiff z rodzicemFolder plikówOdrzuć - odrzuć lokalne zmiany bez backupuUsunąć obecną wiadomość wycofania?Odrzucić aktualną treść komunikatu wcommitowaniaOdrzuć lokalne zmiany, bez backupu (-C/--clean)Odrzuć lokalne zmiany, bez backupu (-f/--force)Odrzucić odstające zmiany do kopii roboczej?Odrzuć zdalne zmiany, bez backupu (-C/--clean)Pokazuj zamknięte gałęzieWyświetl graf tylko nazwanych gałęziPokazuj tylko aktywne gałęziePokazywanie %(count)d z %(total)d elementówSynchronizacja DnDNie zapisuj plików backupu (*.orig)Nie aktualizuj nowego katalogu roboczegoNie weryfikuj certyfikatów hostaCzy chcesz wyjść?Przeciągnij by zmienić kolejnośćPowiel nazwęWyjścieEdytujEdytuj plikZobacz filtr ignorowanych plikówEdytuj lokalnyEdytuj wybrany plik w kopii roboczejEdytuj plikEdytuj ignorowane pliki w repozytoriumEdytuj poprawione plikiBłąd uruchamiania edytoraEmailWybrane emailem...Wyślij wychodzące zmiany emailem do zdalnego repozytoriumPokazuj szczegółowe rezultaty (--debug)Nakładki włączoneKodowanieAngielskie komunikatyWprowadź identyfikator rewizjiBłądNapotkano błędyBłąd podczas ładowania subrepozytoriówBłąd przy przeglądaniu subrepo: %sBłąd przy zapisie plikuWyłączone:ZakończWyjść bez rozwiązywania wszystkich konfliktów?Ustawienia rozszerzenia powłokiEksportuj diffa...Eksportuj wybrane...Eksportuj patchExtWtyczkiNie udało się dodać repozytoriumNie można było załadować issue trackera '%s': %sNie można było otworzyć ścieżki w terminaluNie można było otworzyć repozytoriumNiepowodzenie!Fetch - użyj narzędzia fetch (automatycznie scala i aktualizuje zmiany)Fetch - włącz wtyczkę fetch (obecnie jest wyłączona!)PlikHistoria plikuKolumny historii plikuStatus plikuStatus pliku:Plik już istniejeKonflikty plików muszą zostać rozwiązaneTen plik jest binarnyTen plik jest większy niż ustalone maksimum. maxdiff = %s KBPlik lub różnice niewyświetlane: Plik lub różnica nie została wyświetlona, gdyż wielkość pliku przekracza dopuszczalne maksimum. maxdiff = %s KBNazwa plikuPlikiFiltruj graf numerami rew lub gałęziamiFiltr:Szukaj zmian nazw plikówSzukaj kopii oraz zmian nazw źródełSprawdzanie wychodzących zmian do %s...ZakończonoFlaga:CzcionkiZawsze widoczna zakł.
                                                                                                              z repozytoriamiWymuś scalenie z niewcommitowanymi zmianami (-f/--force)Wymusza wysłanie lub pobranie (nadpisuje spr. bezp., --force)Wymuś wysłanie dla zdalnej lokalizacji (-f/--force)Wymuś usuwanie zmodyfikowanych plików (--force)ZapomnijZapomnij o plikach...NaprzódZnaleziono %d przychodzących zmianZnaleziono przychodzące zmiany z %sOdOd:Pełna ścieżka w tytulePobieranie przychodzących zmian z %s...Format GitaPatche gita mogą opisywać pliki binarne, kopie i zmiany dostępowe, ale odbiorcy mogą nie być w stanie ich użyć jeśli nie używają Mercuriala lub Gita.GlobGlobalne UstawieniaIdź do aktualnej rewizjiIdź do przodka %s i %sIdź do rewizjiGrafProgram do graficznego scalania i rozwiązywania konfliktów. Jeśli to pole będzie puste, Mercurial użyje pierwszego dostępnego w systemie narzędzia w tym celu albo użyje wewnętrznej aplikacji do wsp. scalania, które pozostawia markery konfliktów w miejscach wystąpienia.
                                                                                                              Wybierz internal:merge aby wymusić używanie markerów konfliktów,
                                                                                                              internal:prompt aby zawsze mieć możliwość wyboru,
                                                                                                              internal:dump aby zostawić pliki w katalogu roboczym w celu ich ręcznego scaleniaStróże: %d/%dZgaduj zmiany nazwArchiwa tar gzipBłąd HTTP: %d (%s)Głowa jest zamknięta!Komenda Hg:Patche hg (t.j. generowane przez komendę export) są kompatybilne z większością programów patchujących. Załączany jest nagłówek, który zaiwera większość najważniejszych informacji meta.Ukryj tagiUkryj menu kontekstowe poza repozytoriamiPoświetl ikonęHostIkonaIkonyJeśli ciągle masz problem, wyślij nam raport o błędzie.Ignoruj Ignoruj puste linieIgnoruj ilość BZIgnoruj białe znakiIgnoruj wielkość literFiltr ignorowania - %sIgnorowane*Czynności automatyczneImportowanie - %sImportuj ze SchowkaW-Odpowiedzi-Na:Załącz wszystkich przodkówZałącz kolejkę patchyZałączone:Pobieranie z %s anulowane, ret %dIniparse musi być zainstalowane.Wstępna rewizjaNiewystarczające uprawnieniaPrzerwaneNiepoprawne ustawienia - proszę podać nazwę użytkownika dla ReviewBoardNiepoprawne ustawienia - serwer ReviewBoard jest niezainstalowanyNiepoprawny format datyNiepoprawne wyrażenie globNiepoprawne wyrażenie regexpIssue TrackerPlugin do Issue TrackeraIssue TrackingZatrzymaj pliki patchyZnana zła rewizja:Znana dobra rewizja:Lewy panelLicencjaLiniaLista wszystkich narzędziListuj zmienione pliki (--verbose)Załaduj wszystkie rewizje do grafuLokalna nazwa komputeraLokalna ścieżkaLokalna ścieżka:Lokalne repozytorium %sTylko lokalne dyskiTag lokalnyLokalizacja:Zablokowane*LogDługie podsumowanieMFormat MQ GitWyślijWyślij wszystkoOpcje MQZgodność z Mercurial <1.7Ręcznie rozwiązać konflikty odrzuconych zmian?Oznacz tę zmianę za rozwiązaną, idź do kolejnejOznacz ten plik jako rozwiązanyOznacz ten plik jako nierozwiązanyPasujący tekstMax zmianMaks. wielk. pliku do diffMax plikówZachowanie MenuUżytkownik MercurialaPolecenie Mercuriala ciągle działa. Czy na pewno chcesz je przerwać?Mercurial nie był w stanie znaleźć edytora. Skonfiguruj Mercuriala by używał edytora dostępnego w Twoim systemie.ScalScal - %sScal - zezwól na scalenie z lokalnymi zmianamiScalenie spowodowało konflikty plikówScal zestaw zmianScal z (inna rewizja)Scal z (katalog roboczy)Scal z %sScalanie...WiadomośćCzcionka komunikatówIdentyfikator wiadomości do odpowiedzi na (do wątków)Min Podobieństwo: %d%%Brakująca informacjaŚledź zmiany w repoŚledź zmiany w
                                                                                                              katalogu roboczymPrzenieśPrzenieś wszystkie pliki na lewoPrzenieś wszystkie pliki na prawoPrzenieś wybrane zmiany na lewoPrzenieś wybrane zmiany na prawoPrzenieś wybrany plik na lewoPrzenieś wybrany plik na prawoWybrano wiele źródełNazwaNazwa powiązana z commitami. Zwykły format to:
                                                                                                              Imię Nazwisko <email@example.com>Gałąź nazwa "%s" już istnieje, ostatnio używana w rewizji %d Nowa gałąź: Faza dla nowych commitówNowa GrupaNowa nazwa:Nowa gałąź patchaDalejNastępna różnicaBez datBrak odpowiednich plikówBez backupu (-n/--nobackup)Brak zmian w gałęziBrak usuwalnych zmianNie znaleziono edytoraBrak zmian w plikuNie wybrano plikówBrak zaznaczonych plikówNie ma plików do znalezieniaBrak weryfikacji hosta, ale ciągle kodowane (złe)Brak ignorowanych plikówBrak przychodzących zmian z %sBrak elementów do wyświetleniaNic nie znalezionoBrak konfliktów scalania, gotowy do wcommitowaniaBrak zmodyfikowanych lub zaznaczonych plików do wcommitowaniaBrak operacji do wykonaniaBrak wychodzących zmianBrak wychodzących zmian do %sNie wybrano gałęzi patchaNie znalezionio repozytoriumBrak skonfigurowanej powłokiBrak dostępnej transakcjiBrak plików w śmietnikuBrak nieznanych plikówNie ustawiono nazwy użytkownikaBrak skonfigurowanego edytoraNic - po prostu pobierz zmianyTo nie jest subrepo Mercuriala, nie można podejrzećTo nie jest główna rewizjaTo nie jest head, wycofanie stworzy nowy head!Nic do zaimportowaniaOKUwzględniaj tylko usunięte plikiTylko pliki zmodyfikowane/utworzone podczas tej rewizjiDo celuOtwórzOtwórz nową nazwaną gałąźOtwórz powłokę syst. w wybranym kataloguOtwórz wszystkie repozytoria w nowych tabachNowe zakł. zaraz po aktywnejOtwórz narzędzie ShelveOtwórz repozytorium w managerze plikówOtwórz repozytorium w nowym tabieOtwiera wybrany katalog przy pomocy eksploratora plikówOtwórz wybrane subrepoOperacja przerwana:

                                                                                                              %(arg0)s.Opcjonalne. Hasło do autentyfikacji. Jeśli nie podasz, a host zdalny będzie wymagał autentyfikowania się przez hasło, będziesz poproszony o jego podanie.Opcjonalne. Nazwa użytkownika do autentyfikacji. Jeśli nie wprowadzisz, a zdalny komputer wymaga autentyfikacji będziesz poproszony o wprowadzenie. Zmienne środowiskowe dostępne w tym miejscu i można zrobić np. coś takiego: foo.username = $USER.PreferencjeOpcje:Albo użyj:Wysyłanie zmian do %s przerwane, ret %dCzcionka wynikówNakładkiRodzic 1:Rodzic 2:Nadrzędna:RodziceHasłoHasło:Wklej &Nazwy plikówEOL PatchyPatchuj pliki (*.patch)Nazwa dla patcha jest wymaganaKolejka PatchyData patcha:Patch wyeksportowanyNieudana próba spatchowaniaPliki patcha już istniejąWiadomość patcha:Nazwa patcha:Użytkownik patcha:ŚcieżkaPatch: %sPatche wyeksportowaneŚcieżkaŚcieżka:WzorceWyślij zmiany przed aktualizowaniem (-p/--push)FazaPłaski, nie załączaj nagłówek HgProszę skonfigurować edytor.Proszę wprowadzić nazwę użytkownikaProszę wprowadzić komunikatProszę zaraportować ten błąd do naszego trackera błędówProszę poczekać podczas commitowania scalonych plików.Proszę poczekać podczas wykonywania wycofania.Proszę czekać...PortPort do nasłuchiwaniaPort:Zachowanie po PobraniuPo pobraniu: Przygotowanie do wycofaniaPrzygotowanie do scalaniaCofnijPodglądPodgląd:Poprzednia różnicaProxyPociągnjPobieranie z %s zostało przerwane, ret %dPobieranie z %s zostało zakończonePobierz zmiany ze wskazanego URLaPobierz przychodzące zmiany do Twojego repozytoriumPobierz tutaj...Ściąganie z %s...PrzeczyśćWyślij po CommicieWyślij po commicie:Wysłanie wymaga SSLWyślij wszystkoWyślij aktualną gałąź (%s)Wyślij wychodzące zmiany do wybranego URLWysyłanie %s zostało przerwaneWysyłanie do %s nie powiodło się. ret %dWysyłanie do %s zostało zakończoneWysłać do zdalnego repozytorium %s ?Popychanie do %s...QNowyQOdświeżGenerujZakończREADME nie jest skonfigurowanyZmień nazwęTylko do odczytu*PrzebazujPrzebazuj - %sPrzebazowanie zaniechanePrzebazowanie już jest w trakcie wykonywaniaPrzebazowanie zostało zakończoneRekursywnie w subrepozytoriachRekursywnie w subrepozytoriach (--subrepos)OdświeżOdśwież &Tab ZadańOdśwież panelOdśwież wybrany patchOdśwież aktualne repozytoriumOdśwież listę plikówOdśwież listę repozytoriówRegexpRegexp:Wzorzec wyszukiwania wyrażeń regularnychOdrzuć przychodzące zestawy zmianPowiązane ściezki:PrzeładujKomenda zdalna:UsuńUsuń wszystkie zaznaczone plikiUsuń niemodyfikowane plikiUsuń pliki...Usuń dane autentyfikacji z tego URLUsunąć aktualny katalog roboczy?Usuń pliki z systemu kontroli wersjiUsunąć patche z kolejki?Usunąć wybrane usunięte pliki?Usunięto tag %sZmień nazwęZmień nazwę - %sBłąd zmiany nazwyZmień nazwęZmień nazwę pliku lub kataloguZmień nazwę wpisuZastąpNadpisz istniejący tag (-f/--force)Wskaż tylko pierwsze wpasowanie w plikuRepozytoriaRepozytoriumBłąd repozytoriumID repozytorium:Rejestr repozytoriumUstawienia repozytoriumKomenda repozytorium ciągle działaRepozytorium jest zablokowaneRepozytorium nie jest lokalneStatus repozytorium i zmianRozwiązane konfliktyRestartuj gałąźZrestartuj TortoiseHg aby poniższe zmiany zostały wprowadzone:RewPrzywróćPrzywróć - %sOdrzuć zmiany w plikach...Przywróć wszystkie pliki do tej rewizjiOdrzuć zmiany w plikuPrzywróc zawartość pliku(ów) do tej rewizjiOdrzucić lokalne zmiany?Przywróć do RewizjiPrzywracanie wszystkich plików odrzuci zmiany i zmodyfikuje dotknięte pliki.

                                                                                                              Czy na pewno chcesz użyć przywrócenia?

                                                                                                              (użyj Aktualizacji do pobrania innej rewizji)Review BoardID rewizji:RewizjaRewizja #%d (%s) została wyeksportowana do:

                                                                                                              %s%s%sSzczegóły &rewizjiZestaw rewizjiRewizja zmieniła się na:Rewizja:Prawy panelWycofaj commit do rewizji %dPrzywrócić do rewizji %d (cofnąć %s)?Działa na %sWykonywanie...SynchronizacjaHost SMTPHasło SMTPPort SMTPSMTP TLSNazwa użytkownika SMTPBłąd SSL: %sSSL: Weryfikacja certyfikatu serwera nie powiodła sięSSL: nieznany błąd %s:%sZapiszZapisz globalnieZapisz ścieżkęZapisać zmiany przed edycją?Zapisz raport błędu doZapisz plik tak jak w tej rewizjiZapisz plik doZapisz w RepoSzukajPrzeszukaj historięPrzeszukiwanie już jest w trakcieSzukaj wzorców w rewizjachSzukanieWyszukiwanie...Bezpieczne połączenie HTTPSZabezpieczeniaBezpieczeństwo: Wybierz WszystkoOdznacz wszystkoWybierz plik docelowyWybierz katalog docelowyWybierz repozytoriumWybierz plik źródłowyWybierz folder źródłowyWybierz narzędzie:Wybierz istniejące repozytorium do dodania jako subrepoWybierz gałąź do scaleniaWybierz repozytorium doceloweWybierz folder patchaWybierz ścieżkiWybierz co ma się dziać po udanym pobraniu zmian do tego repozytoriumWybierz katalog repozytorium do dodaniaWybierz repozytorium do otwarciaWybierz repozytorium źródłoweWyślij mailaWyślij zmiany jako patche HgWysyłanie emailaSerwerID Serwera RepozytoriumUstaw datę:Ustaw użytkownika:UstawieniaPlik ustawień:PowłokaOdłóż - przenieś lokalne zmiany do patchaPokaż O TortoiseHgPokaż funkcjęPokaż ikonęPokaż logPokaż log wynikowyPokazuje pełną ścieżkę do repozytorium w tytule okna zamiast standardowej nazwy katalogu rodzica. Domyślnie: FalsePokaż wszystkiePokaż zmiany od pierwszego rodzicaPokaż zmiany od drugiego rodzicaPokaż historię wybranego plikuTylko jedno okno WarsztatuRozmiarWielkość (KB)Pomiń ostatnią stronę potwierdzenia, zamknij po commicie.Pomijanie %s, nie można odczytaćSortuj grupę po pełnej ścieżceSortuj grupę po krótkiej nazwieŹródłoŹródło:Wskaż narzędzie do wizualizacji diffa. Tak jak w dokumentacji plików konfiguracyjnych Mercuriala w sekcji [merge-tools], jeśli pole pozostanie puste, TortoiseHg użyje tego samego narzędzia co w przypadku narz. do scalania. Gdyby się to jednak nie udało, uruchomiona zostanie pierwsza odpowiadająca aplikacja w tym celu w systemie.Wskaż swój preferowany język interfejsu (restart aplikacji będzie wymagany)StartStwórz nową gałąź patchaPoczątkowa rewizja:Uruchom serwer dla tego repozytoriumStatStatusStatus:StopZatrzymaj bieżącą operacjęZatrzymaneStylElementy podrz. menu:Temat:Subrepo dodane do pliku .hgsubSubrepo utworzone i ustawione na wstępną rewizję.Subrepo zainicjalizowane do rewizji:Subrepo usunięte z repozytorium.Stan subrepo:Subrepo nie zostało zmienione.Subrepozytorium już istniejeSubrepo nie zostało znalezione w folderze roboczym.Subversion:SukcesDługość linii podsumowaniaPodsumowanie:SynchronizacjaSynchronizuj z przeciągniętym repozytoriumSynchronizuj ze zdalnym repozytoriumSzerokość TabaTag - %sTag:Otagowany:Tagi:Archiwum tar skompresowane za pomocą bzip2Archiwum tar skompresowane za pomocą gzipArchiwa tarGrupy doceloweDocelowi ludzieCel:Taby ZadańChwilowo zablokuj proxy HTTPPrzerwane przez użytkownikaPrzetestuj tę rewizję i oznacz jej status (dobra/zła/pomiń)Pliki tekstowe (*.txt)Plik .hgsub już zawiera linijkę:

                                                                                                              %sZmiany od rewizji %s i wszyscy niescaleni rodzice będą odrzucone. Czy jesteś pewien, że na pewno chcesz to zrobić?Obiekt docelowy "%s" już istnieje jako plik!Obiekt docelowy "%s" już istnieje jako folder!Cel musi się znajdować w repozytorium.Katalog "%s" nie jest pusty! Chcesz go nadpisać?Plik "%s" już istnieje! Chcesz go nadpisać?Faza dla nowych commitów. Domyślnie: draftŹródło musi się znajdować w repozytorium.Katalog roboczy już jest scalony. Kontynuuj lub odrzuć istniejące scalenie.Są konflikty scalania, które muszą być rozwiązaneNie mo konfliktowych scaleń.Nie ma plików, które mogły mieć zmienione nazwyJuż jest katalog o tej samej nazwie.Narzędzie do scalania 3-WayTytułDoDo:Pokazuj pasek wyszukiwaniaNarzędziaElementy głównego menu:Raport błędu TortoiseHgOkno komend TortoiseHgBłąd TortoiseHgSerwer nakładek na ikony TortoiseHgWyszukiwarka TortoiseHgUstawienia TortoiseHgWarsztat TortoiseHgSpróbuj odświeżyć Twoje repozytorium.TypJęzyk interfejsuURLBłąd HTTP: %sNie można wycofaćNie można skompresować historiiNie można było utworzyć pliku mercurial.iniNie można utworzyć pliku konfiguracyjnegoNie można znaleźć zestawu zmianNie można było scalićNie można było scalić zianNie można odczytać statusu repozytoriumNie można usunąćNie można usunąć URLNie można było usunąć pliku %s, odmowa dostępuNie można było zapisać po wysłaniu zmianNie można zapisać ścieżki URLNie można zapisać danych autentyfikacjiNie można było zapisać listy automatycznie dołączanych plikówNie można zapisać nazwy użytkownikaNie można pokazać plików z subrepozytoriumNie można było zaktualizować nazwy repozytoriumNie można zapisać pliku .hgignoreNie można zapisać pliku konfiguracyjnegoNie można zapisać pliku diffaOdstosuj wszystkie patcheOdstosuj jednego patchaOdznaczOdznacz wszystkie plikiOdznacz by rozważać wszystkie wersjonowane pliki pod względem kopii źródełNieskompresowane archiwum tarNieskompresowane archiwum zipOdrzucić ostatni commit?Cofnąć ostatnią transakcję?Nieznana rewizja!Nierozwiązane konfliktyKonflikty pozostają nierozwiązane. Jesteś pewien?Niezapisane zmiany będą utracone. Czy ciągle chcesz przeładować?Nieobsługiwany typ repozytorium (%s)NieśledzoneAktualizujAktualizuj - %sAktualizuj - pobierz i spróbuj zaktualizować do najnowszej rewizjiOdśwież ikonyOdśwież ikony dla tego repozytoriumAktualizuj do:Aktualizuj katalog roboczyAktualizuj...Użyj angielskiej wiadomości dotyczącej wycofaniaWidok kompaktowyUżyj rozszerzonego formatu patcha (git)Użyj serwera proxyUżyj protokołu ściągnij do skopiowania danych metaUżytkownikAutentyfikacja użytkownikaUżytkownik:Nazwa użytkownikaWeryfikuj wycofywaną rewizję aby upewnić się, że Twój katalog roboczy jest czysty.Weryfikuj cele scalania aby upewnić się, że katalog roboczy jest czysty.Weryfikuj certyfikat przez Urząd certyfikacji (najlepsze)Weryfikuj przez odcisk certyfikatu (dobre)Zobacz zmiany jako zunifikowany diffZobacz zmiany w kontekście plikuPokaż zmiany do bieżącego w zewn. narzędziu diffZobacz zmiany przy użyciu narzędzia GUI diffZobacz plik tak jak wyglądał w tej rewizjiZobacz zmiany w pliku w zewnętrznym narzędziu do diffaZobacz ustawienia repozytoriumWizualny DiffNarzędzie do wizualizacji DiffaWizualny Diff...Edytor wizualnyWizualny diff pomiędzy rozwiązanym plikiem, a pierwszym rodzicemWizualny diff pomiędzy rozwiązanym plikiem, a drugim rodzicemWizualny diff...Wizualny 3-Way DiffOstrzeżenieWeb SerwerCo chcesz zrobić? WarsztatKolumnyKopia roboczaKopia roboczaKopia robocza (scalona)Katalog roboczy nie jest czysty! Zobacz zmiany...Status kopii roboczejZawijaj wyszukiwanieZapisz plik diffaTu możesz odwiedzić naszą stronęZaznaczyłeś jeden lub więcej plików, które były zmodyfikowane. Domyśle pliki te zostaną usunięte. Co chcesz zrobić?Przydałoby ci się odświeżyć aplikacjęMożesz kontynuować kompresowanieMożesz kontynuować przebazowanieMusisz podać nazwę patchaMusisz autoryzować się do MercurialaMusisz podać ścieżkę do plikuTwój aktualna rewizja robocza (%d) będzie usunięta po tym wycofaniu, pozostawiając niewcommitowane zmiany. Kontynuować?Archiwum zip skompresowane za pomocą deflateZipuj archiwa[UWAGA] Niepoprawne ID rewizji w subrepo: %s [komenda zakończyła się poprawnie %s][komenda przerwana %s][komenda zwróciła kod %d %%s][komenda przerwana przez użytkownika %s][oryginał][kopia robocza]rewizja do wysłaniaanulowane: anulowane: %s anulowano: %s! Commitdodanyzałączbazowe komendy: zakładka: gałąź: zestaw zmian %d:%szestaw zmian: %sczystyWiekAutorGałąźZmianyOpisNazwa plikuGrafLokalny czasWęzełFazaRewTagiCzas UTCbłąd parsowania komendy: %sCommitdomyślnypokaż pomoc i zamknijeol jest niezgodne z win32textbłąd przy wykonywaniu komendy nie udało się rozpocząć wykonywania komendy plik został usunięty, odświeżanieplik został zmodyfikowany, odświeżanieplikówWszystkieŻadnewypełnianie (%d)filtrglobalne opcje:grep: %s grep: Niepoprawny wzorzec: %s podp:podp: historiaignorowanyw przyszłościzałącz wskazany zestaw zmianinotify jest nieobsługiwane na tej platformieniepoprawne argumentyuruchom narzędzie wizualnego diffalista komend: lokalnyMetodabrakującyzmodyfikowanymusi być wskazany 'typ' w stylumusi być wybrane repozytoriumwymaga scalenia %i głów wymaga scalenia z %s brak stróżównie znaleziono odpowiadających elementów: %sbrak repo w terazotwórz na liniiopcje: hasło: wydrukuj licencjęczytaj listę plików z plikuczytaj listę plików z pliku o kodowaniu utf-8usuń tagusuń cache statusówusuń katalog roboczyusuniętyRepozytorium %s nie zostało znalezionerew: %d (%s)rewizja do zarchiwizowaniarewizja do wycofaniarewizja do pokazaniarewizja do scaleniarewizja do otagowaniarewizje do zaktualizowaniarewizja, tag lub gałąź do check outarewizje %d:%s do %d:%swybrane plikipokaż pliki bez zmianpokazuj ignorowane plikiuruchom debuggeraCommitAkcja MQstatussubrepoCommitGałąź patchaSzczegóły rewizjiSzukajSynchronizujthg %s: %s thg aboutthg add [FILE]...thg annotatethg archivethg backout [OPTION]... [[-r] REV]thg bisectthg commit [OPTIONS] [FILE]...thg drag_copy SOURCE... DESTthg drag_move SOURCE... DESTthg email [REVS]thg forget [FILE]...thg grepthg guessthg help [COMMAND]thg hgignore [FILE]thg import [OPTION] [SOURCE]...thg init [DEST]thg log [OPTIONS] [FILE]thg manifest [-r REV] [FILE]thg merge [[-r] REV]thg purgethg rejects [FILE]thg remove [FILE]...thg repoconfigthg resolvethg revert [FILE]...thg serve [--web-conf FILE]thg shellconfigthg shelvethg status [OPTIONS] [FILE]thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]thg update [-C] [[-r] REV]thg userconfigthg version [OPTION]thg: %s nieznana komenda: '%s' nieznanynieznana rewizja!użyj jako komunikat commitawersja %sbędzie zamkniętywin32text jest niezgodne z eolCommitujz Mercurial-%s, Python-%s, PyQt-%s, Qt-%sGotowy././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/pt/0000755000000000000000000000000014742203610014176 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1314144 tortoisehg-6.9/locale/pt/LC_MESSAGES/0000755000000000000000000000000014742203610015763 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033566.0 tortoisehg-6.9/locale/pt/LC_MESSAGES/tortoisehg.mo0000644000000000000000000020675314742203536020533 0ustar00rootroot @@&@ $A2AAAXAqAA AA AA A B4BGB)bBBBBBBBBC!C6CGCXC]C aC oC|CC CC C CC#C@D DDODfD{DDDDDDDDDDD DDD E E E)E/E6E=ETEZEcEjEoEvE|EEEE E EEEE EEEFFF %F1F7FLFTF \FfFnF sF}FFF FF FFF'FFG#GBG\GzGGG GG,GHH&0HWHlH-HHHH I II$5I'ZI'IIII IIIIIJ J&JCJ=XJJ J JJJJK K K K +K 5K CKNKkKzK KKKKK KKK;K;LBLRLcLuL4LLL LLLM M!M>M[MxM&M M"M MM NNNN 3N=N NNN OBOVO]O+wOOO,O"OO P P%P .P:PAPZP`P fP pP{PPPPPPPPP QDQUQ?\QCQ=Q1RPRXR_R uR RR RRRRR S S&%SLS US'cS+SSSS#ST=T ZTfT|TTTT TTT!TU.U=U LU YU gUtUUUUU UUU U V V&VFVMV\VsVVVV+V%V/!WQWVWeW |WWW WW>W.W.X FXRXgXxXXXXXX X X YY "Y/YKYeY YYYYYYYY*Z .ZOZ-oZ-Z1Z'Z%[A5[!w['[[1[\'\<\K\Q\Z\i\q\\ \\ \ \!\ \\]$]B]CH]]]]]]]] ]^^"^ &^%1^W^_^ d^ q^ }^^1^^^^^ _ _-_6_F_L_f_______ __a`f`v``` ` `` ``` a&aaaIa%bB>bcbbbMb>cFcYcjc }ccc cc ccc ccd1dBd wd;d6dd e"e DT],y    ) 2#>"b "!Ӏ   &068o7<́s .~0>ނ;Ycf(a!4! %0 DN Tu}8φ8J\ p| %ɇG&0Wp و+ 7M k"É9 2Fy6  !% G T b* ̋  (CTo3Ì"Ԍ  , C"N!q%-؍ )''Q y <  $ .;Mhz 'ǏF+*Vt'#Ԑ$ #*Nm  ʑߑ$6;D![} ǒߒ1"Jmޓ   0 :*[ ɔ)Д $8Y>!ҕ*>Yr!'і   26 > H*S~ ŗ/5ez"ט1,;Qj ř#-5c+6,)"= ` k",қ''7Oj+˞ &'<Rh1ȟן  /$In Ϡޠ   &2 :B[ ɡ   4>Y a oy  ,ɢ  6<Y ` ly  ף   % 1 ?I N Xdlr *#٤$@!^  Хܥ<(%7+] ;"8[k%&+̧(!)< BL_"g* *֨G 6h Ʃ)ѩ #+=P_rɪڪ +A>Uë ֫C (3 IV&h ڬ, ?&M t ~  ­ͭ î]ή,+5;a./ӯ  ) 4@OVt{  İΰհ 5WFPKJCGֲ޲)#2%Io#dz ٳ +  %3FR%ݴ,'0Evϵ  4*Juȶܶ#"*!Mox *ʷ "6J"b/-% %:UZ `mJv=EEYp! ݺ  &27K#T x# ׻" 3 >2_'#5޼4AI&T½)-A(o' ;  )<CS ly.-Ϳ%(!J?_ $''-U Y6d9%;a r|$  '0FORV r~8= Rsz 01DVar~SZKb . 8F\lt !].P - 8D_n (8G\ kv .$'&;QgzQwo v1%4"5 X dn5w&F+8r (@ I Wa{"02P*(-(2V &;+(J.s%+ '<=z&3(,@%m^3C&j s} -% 0:Td` #*+V"_ &$' D%;j <%8HZ(p  #:%Sy~$  )@ `k,&. EO_g(|". * 7EVh 8  $$I%h #3 4?t $.!Km ~  5/7F#Vz - 6BSr&$9-"g!    9F"a  #-0?^>#  J8+ (1804&e"  (%:`q $# %.E=V?< {F+):3SzXA,/B?r3%C V2b !==3P  16Aax4&6O-m.:5!U*w4//87pS6-JgO} + 6I)](! %%,$Rw(%>.0 _j ~: -.*C'n9-/;. jv Q  -7Ja 1 U"n$")&< c"p%&   )'2 Ze'0( /=D Uv %#=$[%  0,@ FQ$Z *# cv~ +"7N&h(2 '+S(c -( ) #A !e    7   (. W o # 7       /  8  D #Q u     3 ' 2/ =b 0 6 +  4 ? ] %m  +    Caught keyboard interrupt, aborting. aliases: %s (default: %s) (is a symlink) (is unversioned) (renamed from %s) (was added) (was added, now missing) (was deleted) filtered"%s" removed from path history"%s" removed from search history### filter text ###### patch name ###### regular expression ###### regular expression search pattern ###% Match%d day%d days%d hour%d hours%d matches found%d minute%d minutes%d month%d months%d outgoing changesets%d pending changelists found%d second%d seconds%d week%d weeks%d year%d years%d%%%p%%s (hint: %s)%s (pending)%s (submitted)%s - branch operation%s - commit%s - commit options%s - hg %s%s - purge%s : %s%s and %s have identical contents %s had rejected chunks, edit patched file together with rejects?%s patches%s repository settings%s's global settings&Add&Archive&Auto&Cancel&Clear&Clone&Close&Close Repository&Commit&Commit to current branch&Copy&Copy Patch&Delete&Diff to Other&Discard&Edit File&Edit Local&Exit&False&Force&Goto (update workdir)&Help&License&Local&Mac&Merge&Move&New Repository...&No&No (discard changes)&Open&Open All&Open Local&Open Repository...&Other&Paste&Purge...&Readme&Refresh&Remote Update...&Remove&Replace&Resolve...&Save&Save at Revision...&Search&Set...&Settings&Shelve&TAB&Terminal&True&Undo&Unix&Unspecified&Update&Update...&Verify&Yes(is a changed and dirty sub-repository)(is a changed sub-repository)(is a dirty sub-repository)(is a new and dirty sub-repository)(is a new sub-repository)(is a removed sub-repository)(no help text available)(same as parent)*: not used by TortoiseHg3-&Way Diff3-way dir diffLaunch settings tool...Annotate:Candidate MatchesDifferences from Source to DestIgnore FilterSelected Options: %sUncommitted local changes are detectedUnknown revision!Unrevisioned FilesUntracked Files= Working Directory Parent =A bookmark named "%s" already existsA comma separated list of target groupsA comma separated list of target peopleAbortAborted p4pendingAboutAbout &QtAbout TortoiseHgAcceptAccept All MatchesAccept Selected MatchesAddAdd Files...Add files to version controlAdd ignore filter...Add or remove patches must be merged in the working directoryAdd selected untracked files?Add separatorAdd to listAddedAdded tag %s for changeset %sAfter Pull OperationAge:AliasAll HistoryAll contextsAll itemsAll revisionsAllow PushAlways merge (when possible)Annotate &FileAnnotate Op&tionsApp&ly FormatAppendApplied patchesApply all patchesApply one patchArchive - %sArchive FormatsArchive types:Are you sure you want to delete these files and/or folders?AuthorAuthor ColoringAuto Commit ListAuto Exclude ListAuto Includes:Automatically resolve merge conflicts where possibleBackBacked out changeset: Backout - %sBackout changesetBackout current patch branchBccBisect - %sBookmark '%s' does not existBookmark '%s' has been addedBookmark '%s' has been movedBookmark '%s' has been removedBookmark '%s' has been renamed to '%s'Bookmark - %sBookmark named "%s" does not existBookmark:BranchBranch ColorsBranch:Branch: Browse Directory...Browse...Bundles store complete changesets in binary form. Upstream users can pull from them. This is the safest way to send changes to recipient Mercurial users.Bypass ListBzip2 tar archivesC&onfigure FormatCLI EditorCan't change settings without iniparse package - view is readonly.CancelCannot start a new searchCannot update the .hgsub file in:

                                                                                                              %sCcCc:Changes have been moved, you must now commitChanges take effect on next commitChangeset is closed.Changeset:ChangesetsCheckingChecking...Child:Chunks selected: %d / %dCleanClearClon&e...Clone - %sClone RepositoryClone to revision:Clone...CloseClose %s branchClose After CommitClose Branch: Close current branchClose other tabsClose tabClose the commit tool after every successful commit. Default: FalseClose:Comma separated list of archive formats allowed for downloadingComma-separated list of blind carbon copy recipient email addressesComma-separated list of carbon copy recipient email addressesComma-separated list of recipient email addressesCommandCommitCommit Dialog ToolbarCommit LaterCommit NowCommit OptionsCommit backout and merge resultsCommit changesCommit changes in repositoryCommit merge resultsCommit messageCommit...Committing...Compare revisions of the selected fileCompressCompress - %sCompress changesets up to and includingCompress is complete, old history untouchedConfigure Custom ToolConfigure Explorer extensionConfigure guardsConfigure guards for selected patchConfigure repository settingsConfigure user wide settingsConfirm AddConfirm Branch ChangeConfirm DeleteConfirm DiscardConfirm Discard ChangesConfirm Discard MessageConfirm ExitConfirm New BranchConfirm OverwriteConfirm Push to remote RepositoryConfirm ReloadConfirm RemoveConfirm RevertConfirm SaveConfirm StripConfirm UndoConfirm UpdateConfirm file deletionsConfirm patch queue switchConnecting to Review Board...ContactContext MenuConverted From:CopyCopy - %sCopy ErrorCopy messageCopy one of the recent commit messagesCreateCreate &BranchCreate Repository HereCreate a new groupCreate a new patchCreate a new repositoryCreate clone here from sourceCreate diff with all changes on this branchCreate diff with all outgoing changesCreate new named branch "%s" with this commit? Cu&tCulprit found.Current local revisionCustom ToolsDateDate:Dead BranchesDeleteDelete %d file in .hg/TrashcanDelete %d files in .hg/TrashcanDelete %d ignored fileDelete %d ignored filesDelete %d unknown fileDelete %d unknown filesDelete ToolDelete empty foldersDelete from listDelete selected patchesDeleted %d filesDeleted %d files and %d foldersDeleted*Deleting trash folder...Deletion failuresDeny PushDescriptionDestDestination path:Destination:Detect Copies/Renames in %sDetect renames and copiesDetected merge/diff tools:Diff ToolbarDiff and AnnotateDiff not displayed: Diff to parentDir diff to p1Dir diff to p2Directory diffDirectory of filesDiscard - discard local changes, no backupDiscard current backout message?Discard current commit message?Discard local changes, no backup (-C/--clean)Discard local changes, no backup (-f/--force)Discard outstanding changes to working directory?Displaying %(count)d of %(total)d itemsDnD SynchronizeDo not include modification dates in diff headers. Default: FalseDo not save backup files (*.orig)Do not update the new working directoryDo not verify host certificateDo you really want to activate patch queue '%s' ?Do you want to exit?Drag to change orderDuplicate NameE&xitE&xploreE&xplorer HelpE&xportE&xport Patch...EditEdit FileEdit Ignore FilterEdit LocalEdit Tool ...Edit current file in working copyEdit fileEdit patch dependency graphEdit patched file and rejects?Edit repository ignore filterEmailEmail address to use in the "From" header and for the SMTP envelopeEncodingEnglish MessagesErrorError encountered.Error previewing subrepo: %sError writing fileExcludeExcludes:ExitExplorer Extension SettingsExtExtensionsFailed to load issue tracker '%s': %sFailed!FileFile HistoryFile StatusFile Status:File is binaryFile may be binary (maximum line length exceeded)File or diffs not displayed: FilenameFilesFilter:Find RenamesFind copy and/or rename sourcesFinishedFixed revisionsFlag:Follow copies and renamesForce push or pop (--force)ForgetForget Files...ForwardFromFrom:Full Path TitleGit FormatGit patches can describe binary files, copies, and permission changes, but recipients may not be able to use them if they are not using git or Mercurial.GlobGlobal SettingsGo to a specific revisionGraft:GraphGuards: %d/%dGuess RenamesGzip tar archivesHg command:Hg file log viewer [%s] - %sHg patches (as generated by export command) are compatible with most patch programs. They include a header which contains the most important changeset metadata.Hide TagsHide context menu outside repositoriesHighlight IconHostHost name and (optional) port of proxy server, for example "myproxy:8000"Host name of mail serverHostname the sender can use to identify itself to the mail server.How many lines a "zebra stripe" should span in multiline output. Default is 1; set to 0 to disable.IconIconsIf you still have trouble, please file a bug report.Ignore Ignore Blank LinesIgnore WS AmountIgnore White SpaceIgnore caseIgnore filter - %sIgnored*Import - %sImport from ClipboardIn-Reply-To:IncludeInclude patch queueIncludes:Iniparse must be installed.Iniparse package not foundInitial revisionInput new guards for %s:Insufficient access rights.InterruptedInvalid Settings - Please provide your ReviewBoard usernameInvalid Settings - The ReviewBoard server is not setupInvalid date formatInvalid glob expressionInvalid regexp expressionIssue LinkIssue RegexIssue TrackerIssue TrackingKeep patch filesKiln BfilesKnown bad revision:Known good revision:Left ToolbarLicenseLineList of all toolsList updated files (--verbose)Local HostnameLocal disks onlyLocation:Locked*Log Batch SizeLong SummaryMQ optionsMake repo compatible with Mercurial <1.7Mandatory Issue ReferenceManually resolve rejected chunks?Match TextMax ChangesMax Diff SizeMax FilesMenu BehaviorMercurial UserMercurial command is still running. Are you sure you want to terminate?Mercurial was unable to find an editor. Please configure Mercurial to use an editor installed on your system.MergeMerge - %sMerge - allow to merge with local changesMerge all pending dependenciesMerge changesetMerge from (other revision)Merge revision not specified or not foundMerge to (working directory)Merge with %sMerging...MessageMessage identifier to reply to, for threadingMin Similarity: %d%%Minimum SizeMissing informationModi&fy HistoryMoveMultiple sources chosenNameName or email address of the person in charge of the repository.Named branch "%s" already exists, last used in revision %d New &GroupNew Branch: New GroupNew Name:New Patch BranchNew RepositoryNew Tool ...New file createdNew patch message:NextNext diffNo DatesNo appropriate filesNo backup (-n/--nobackup)No branch changesNo chunks remainNo deletable chunksNo diff tool foundNo editor foundNo file changesNo files checkedNo files found for this operationNo files selectedNo files to findNo ignored files foundNo items to displayNo matches foundNo merge conflicts, ready to commitNo modified files checkmarked for commitNo operation to performNo outgoing changesetsNo pending Perforce changelistsNo remote repository URL or path setNo repository foundNo trash files foundNo unknown files foundNo username configuredNo visual diff tools were detectedNo visual editor configuredNone - simply pull changesetsNot a Mercurial subrepo, not previewableNot a head revision!Nothing to importOKOnly consider deleted filesOnly files modified/created in this revisionOnto destinationOpen a new named branchOpen shelve toolOpen the repository in a file browserOpen the selected subrepositoryOptional. Comma-separated list of host names that should bypass the proxyOptional. Password to authenticate with at the proxy serverOptional. User name to authenticate with at the proxy serverOptionsOptions:Or use:OverlaysParent 1:Parent 2:Parent:ParentsPasswordPassword to authenticate to mail server withPassword:Paste &FilenamesPatch Branch ToolbarPatch EOLPatch Name RequiredPatch QueuePatch failed to applyPatch fold - %sPatch name:Patch series description is sent in initial summary email with [PATCH 0 of N] subject. It should describe the effects of the entire patch series. When emailing a bundle, these fields make up the message subject and body. Flags is a comma separated list of tags which are inserted into the message subject prefix.Patch:Patches to foldPathPaths in Repository Settings:PatternsPending Perforce Changelists - %sPerforce:PhasePlain, do not prepend Hg headerPlease configure a visual editor.Please enter a usernamePlease enter commit messagePlease report this bug to our bug trackerPlease wait while committing merged files.Please wait...PopPop allPortPort to connect to on mail server. Default: 25Port to listen onPort:Post &ReviewPost Pull: Post ReviewPrepare to backoutPreserve files beginning with .hgPrevPreviewPreview:Previous diffProjrcProxyPublish request immediatelyPullPurgePush After CommitPush After Commit:Push Requires SSLPush to remote repository %s ?QNewQRefreshQuitR&epository Registry OptionsREADME not configuredRe&coverRe&nameReadonly*Ready to purge.RebaseRebase - %sRebase abortedRebase is completeRecurse into subrepositoriesRefreshRefresh ToolbarRefresh current patchRefresh file listRefresh the Repository Registry listRegexpRegexp:Regular expression search patternRelated Paths:ReloadRemote command:RemoveRemove Files...Remove files from version controlRemove filter, show rootRemove patches from queue?Remove selected deleted files?Removed tag %sRenameRename - %sRename ErrorRename FileRename file or directoryRename patch %s to:ReplaceReport only the first match per fileRepositoryRepository ID:Repository RegistryRepository Registry updatedRepository SettingsRepository status & changesRequire confirmationRestart &BranchRevRevertRevert - %sRevert Files...Revert file changesRevert file(s) to contents at this revisionRevert files to local or other parent?Revert to RevisionReverting p4 changelist...Review BoardReview ID:Review draft posted to %s Review published to %s RevisionRevision SetRevision:Right ToolbarRollback commit to revision %dRunning...S&ynchronizeSMTP HostSMTP PasswordSMTP PortSMTP TLSSMTP UsernameSSL error: %sSSL: Server certificate verify failedSSL: unknown error %s:%sSaveSave GlobalSave PathSave current URL under an aliasSave error report toSave file toSave hgweb configSave in RepoSearchSearch HistorySearch already in progressSearch file revisions for patternsSearchingSelect &AllSelect Destination FileSelect Destination FolderSelect RepositorySelect Source FolderSelect branch of merge commitSelect destination repositorySelect patch folderSelect post-pull operation for this repositorySelect source repositorySend &EmailSend changesets as Hg patchesSend single binary bundle, not patchesSending EmailServerServersSet Date:Set username:SettingsSettings File:Sh&ow Repository RegistryShow &AuthorShow &DateShow &RevisionShow About DialogShow FunctionShow IconShow IssuesShow Issues...Show LogShow allShow the history of the selected fileShow which function each change is in. Default: FalseSizeSkip final confirmation page, close after commit.Skipping %s, unable to readSourceSource:Specify visual diff tool, as described in the [merge-tools] section of your Mercurial configuration files. If left unspecified, TortoiseHg will use the selected merge tool. Failing that it uses the first applicable tool it finds.Specify your preferred user interface language (restart needed)StartStart a new patch branchStart revision:Start web server for this repositoryStatStatusStatus:StopStop current operationStrip - %sStrip:StripesStripping Mercurial header removes username and parent information. Only useful if recipient is not using Mercurial (and does not like to see the headers).StyleSub menu items:Subject:Submitting p4 changelist...Subrepo created and set to initial revision.Subrepo initialized to revision:Subrepo removed from repository.Subrepo was not changed.Subversion:SuccessSummary Line LengthSummary:SynchronizeSynchronize with dragged repositorySynchronize with remote repositorySystem CacheTab WidthTag - %sTag:Tags:Tar archive compressed using bzip2Tar archive compressed using gzipTar archivesTarget GroupsTarget PeopleTarget:Task TabsTaskbarTemporary files are removed when this dialog is closedTerminated by userTest this revision and report findings. (good/bad/skip)Text files (*.txt)Textual description of the repository's purpose or contents.The changes from revision %s and all unmerged parents will be discarded. Are you sure this is what you want to do?The destination "%s" already exists as a file!The destination "%s" already exists as a folder!The directory "%s" is not empty! Do you want to overwrite it?The file "%s" already exists! Do you want to overwrite it?The maximum size file (in KB) that TortoiseHg will show changes for in the changelog, status, and commit windows. A value of zero implies no limit. Default: 1024 (1MB)The number of revisions to read and display in the changelog viewer in a single batch. Default: 500The tool icon. You can use any built-in TortoiseHg icon by setting this value to a valid TortoiseHg icon name (e.g. clone, add, remove, sync, thg-logo, hg-update, etc). You can also set this value to the absolute path to any icon on your file system.The tool name. It cannot contain spaces.There are no file changes to viewThg - TortoiseHg's GUI tools for Mercurial SCM (Hg) Three-way Merge ToolTitleToTo:Toggle display of text search barTool labelTool launch failureTool nameToolsTools shown on selected locationTooltipTop menu items:TortoiseHg Bug ReportTortoiseHg Command DialogTortoiseHg CommitTortoiseHg Dialogs (version %s), Mercurial (version %s) TortoiseHg ErrorTortoiseHg Overlay Icon ServerTortoiseHg PromptTortoiseHg SearchTortoiseHg SettingsTransplant:TypeUI LanguageURLUnable to backoutUnable to create a Mercurial.ini fileUnable to create a config fileUnable to delete %d file or folderUnable to delete %d files or foldersUnable to determine pending changesetsUnable to find changesetUnable to mergeUnable to merge chunksUnable to parse p4pending outputUnable to read repository statusUnable to removeUnable to remove file %s, permission deniedUnable to save after commit pushUnable to save an URLUnable to save authenticationUnable to save auto include listUnable to save usernameUnable to write .hgignore fileUnable to write configuration fileUnapply all patchesUnapply one patchUncheck to consider all revisioned files for copy sourcesUncommited merge - please select a parent revisionUncompressed tar archiveUncompressed zip archiveUndo last commit?Undo most recent commit (%d), preserving file changes?Unknown revision!UnversionedUpdateUpdate - %sUpdate - pull, then try to updateUpdate IconsUpdate ReviewUpdate icons for this repositoryUpdate on incomingUpdate the fields of this existing requestUpdate to:Update working directoryUpdate...Updating repository registryUse English backout messageUse English commit messageUse compact viewUse custom commit message:Use extended (git) patch formatUse git extended diff header format. Default: FalseUse proxy serverUse pull protocol to copy metadataUserUser CacheUser:UsernameUsername to authenticate to mail server withVi&ew FileView change as unified diff outputView change history in repositoryView change history of selected filesView change in context of fileView changes to current in external diff toolView changes using GUI diff toolView file as it appeared at this revisionView file changes in external diff toolVisual DiffVisual Diff ToolVisual Diffs - Visual EditorWarningWarning: affects all Tortoises, logoff required after changeWeb ServerWhich template map style to useWorkbenchWorking CopyWorking DirectoryWorking Directory (merged)Working directoryWorking directory statusWrap searchWrite patch series (bundle) descriptionYou can visit our site hereYou have multiple renames selected for destination file: %s. Aborting!You likely need to refresh this applicationYou may continue the compressYou may continue the rebaseYou must enter a patch nameYou must identify yourself to MercurialYou must provide the path to a fileZip archive compressed using deflateZip archives[command completed successfully %s][command returned code %d %%s][command terminated by user %s][non-existant][original][working copy]abort: abort: %s! action buttonCommitadd diffstat output to messagesaddedalways fork GUI processattachbasic commands: bodybranch: bundle file to previewcan not read file "%s". Ignored. changeset to view in diff toolchangeset: %scleancolumn headerFilenamecommand parse error: %sconfig itemCommitdefaultdiffstatdisplay help and exitdo not fork GUI processenable additional outputeol is incompatible with win32texterror while running command failed to start command field to give initial focusfile has been deleted, refreshfile has been modified, refreshfilesfilesAllfilesNonefilterglobal options:grep: %s grep: invalid match pattern: %s hgsubversion is incompatible with perfarcehint:historyignoredimport to the patch queue (MQ)in the futureinlineinotify is not supported on this platforminvalid argumentslaunch visual diff toollist of commands: locallsprof not available - install from http://codespeak.net/svn/user/arigo/hack/misc/lsprof/methodmissingmodifiedmust be specified 'type' in stylemust be specified repositoryname of the hgweb config file (DEPRECATED)name of the hgweb config file (serve more than one repository)needs merge of %i heads needs merge with %s needs merge with %s (through %s) needs update of diff base to tip of %s no commands defined no guardsno matches found: %sno repo at notify the shell for paths givennowopen...options: password: perfarce is incompatible with hgsubversionprint command execution profileprint licenseread file list from filerecord datecode as commit daterecord user as committerremove the status cacheremovedrepository %s not foundrepository root directory or symbolic path namerevision to annotaterevision to updaterevisions to view in diff toolselected filessend patches as attachmentssend patches as inline attachmentsshow the contents of the status cache (no update)start debuggerstart progressCommitstart progressMQ Actionstart progressRollbackstatussuppress outputtab tooltipCommitthg %s: %s thg annotatethg commit [OPTIONS] [FILE]...thg help [COMMAND]thg update [-C] [[-r] REV]thg: %s unknownunknown revision!unrecognized profiling format '%s' - Ignored update all repos in current diruse "thg -v help %s" to show global optionsuse "thg -v help%s" to show aliases and global optionsuse "thg help" for the full list of commandsuse only one form to specify the revisionuse pull protocol to copy metadataversion %swait until the second ticks overwill be closedwin32text is incompatible with eolwindow titleCommitwith Mercurial-%s, Python-%s, PyQt-%s, Qt-%sworking changesworking dir stateCleanProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2015-06-28 13:04+0000 Last-Translator: lloco73 Language-Team: Portuguese MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Launchpad-Export-Date: 2019-07-17 05:44+0000 X-Generator: Launchpad (build 19009) Caught keyboard interrupt, a abortar. alcunhas: %s (pré-definição: %s) (é um symlink) (não tem versão) (renomeado para %s) (foi adicionado) (foi adicionado, mas está perdido) (foi eliminado) filtrado"%s" removido do histórico do caminho"%s" removido do histórico de pesquisa### filtrar texto ###### nome do patch ###### expressão regular ###### padrão de pesquisa de expressão regular ###% correspondência%d dia%d dias%d hora%d horasencontradas %d correspondências%d minuto%d minutos%d mês%d meses%d changesets para enviar%d changelists pendentes encontradas%d segundo%d segundos%d semana%d semanas%d ano%d anos%d%%%p%%s (dica: %s)%s (em espera)%s (submetido)%s - operação do ramo%s - submeter%s - opções de envio%s - hg %s%s - purgar%s : %s%s e %s têm conteúdos iguais %s rejeitou os chunks, editar o ficheiro patch com as rejeições?%s patchesdefinições do repositório %s%s's definições globais&Adicionar&Arquivo&Auto&Cancelar&Limpar&ClonarFe&charFe&char repositórioSu&bmeterE&nviar para o ramo actual&Copiar&Copiar PatchE&liminar&Diff para outroR&ejeitar&Editar ficheiro&Editar Local&Sair&Falso&Forçar&Ir para (actualizar directoria de trabalho)&Ajuda&Licença&Local&Mac&Unir&Mover&Novo Repositório...&Não&Não (ignorar alterações)&Abrir&Abrir tudoAbrir l&ocalAbrir rep&ositório...&OutroCo&lar&Purgar...&Leia-meActualiza&rAtualização &remota...&RemoverSubstitui&r&Resolver...Guar&dar&Guardar na revisão...Pe&squisar&Definir...&Definições&Arquivar&TAB&Terminal&VerdadeiroAn&ular&UnixNão e&specificadoAt&ualizarAt&ualizar...&Verificar&Sim(é um sub-repositório modificado e sujo)(é um sub-repositório modificado)(é um sub-repositório sujo)(é um sub-repositório novo e sujo)(é um novo sub-repositório)(é um sub-repositório removido)(sem texto de ajuda disponível)(como o parente)*; não usado pelo TortoiseHg3-&Way Diff3-way dir diffLançar ferramenta de configuração...Anotar:Correspondências do candidatoDiferenças da origem para o destinoIgnorar filtroOpções selecionadas: %sForam detectadas alterações locais não submetidasRevisão desconhecida!Ficheiros sem revisãoFicheiros não acompanhados= Parente da directoria de trabalho =Já existe um marcador com o nome "%s"Uma lista de grupos separados por vírgulasLista de pessoas separadas por vírgulasAbortarP4pending abortadoSobreSobre &QtSobre o TortoiseHgAceitarAceitar todas as correspondênciasAceitar as correspondências seleccionadasAdicionarAdicionar Ficheiros...Adicionar ficheiros à versão de controloAdicionar filtro de ignorar...Adicionar ou remover patches tem de ser unido na directoria de trabalhoAdicionar os ficheiros seleccionados não controlados?Adicionar separadorAdicionar à listaAdicionadoEiqueta %s adicionada para o changeset %sApós a operação de recepçãoIdade:AlcunhaTodo o históricoTodos os contextosTodos os itensTodas as revisõesPermitir envioUnir sempre (quando possível)Anotar &ficheiroOp&ções de anotaçãoAp&licar formatoAnexarPatches aplicadosAplicar todos os patchesAplicar um patchFicheiro - %sFormatos de ficheirosTipos de ficheiros:Tem a certeza que deseja eliminar estes ficheiros e/ou pastas?AutorColoração do autorLista de envio autoAuto excluir listaAuto incluir:Resolver automáticamente conflitos de uniões sempre que possívelRetrocederChangeset revertido: Backout - %sBackout changesetTirar para fora o patch do ramo actualBccBisect - %sO marcador "%s" não existeO marcador "%s" foi adicionadoO marcadro "%s" foi movidoO marcador "%s" foi removidoO nome do marcador "%s" foi mudado para "%s"Marcador - %sO marcador com o nome "%s" não existeMarcador:RamificaçãoCores do ramoRamo:Branch: Navegar na directoria...Navegar...Os pacote guardam todos os changesets num formato binário. Os utilizadores podem aplicar a partir delas. Esta é a maneira mais segura de enviar alterações aos utilizadores do mercurial.Lista de bypassFicheiros Bzip2 tarC&onfigurar formatoEditor CLINão é possível alterar as definições sem o pacote iniparse - a vista e de leitura apenasCancelarNão é possível iniciar uma nova pesquisaNão é possível atualizar o ficheiro .hgsub no:

                                                                                                              %sCcCc:As alterações foram movidas, tem de submeterAs alterações terão efeito no próximo envioO changeset está fechado.Changeset:ChangesetsA verificarA verificar...Filho:Chunks seleccionados: %d / %dLimparLimparClon&ar...Clonar - %sClonar repositórioclonar para a revisãoClonar...FecharFechar o ramo %sFechar após enviarFechar ramo: Fechar ramo actualFechar outros separadoresFechar separadorFechar a ferramenta de envio depois de cada envio bem sucedido. Pré-definição: FalsoFechar:Lista de formatos de arquivos separados por vírgulas permitidos para transferirLista de destinatários Bcc de correio electrónico separados por vírgulasLista de destinatários Cc de correio electrónico separados por vírgulasLista de destinatários de correio electrónico separados por vírgulasComandoEnviarDiálogo da barra de ferramentas de envioSubmeter mais tardeSubmeter agoraOpções de submissãoReverter submissão e unir resultadosSubmeter alteraçõesEnviar alterações no repositórioSubmeter resultados da uniãoMensagem de envioEnviar...A enviar...Comparar revisões do ficheiro seleccionadoComprimirComprimir- %sComprimir changesets e incluirA compressão está terminada, o histórico antigo não foi modificadoConfigurar a ferramenta personalizadaConfigurar extensão explorerConfigurar guardasConfigurar guardas para o patch seleccionadoConfigurar definições do repositórioConfigurar definições expandidas do utilizadorConfirmar adicionarConfigurar alteração do ramoConfirmar RemoçãoConfirmar ignorarConfirmar ignorar alteraçõesConfirmar rejeição da mensagemConfirmar saídaConfirmar novo RamoConfirmar sobrescritaConfirmar envio para o repositório remotoConfirmar recarregamentoConfirmar remoçãoConfirmar reversãoConfirmar guardarConfirmar remoçãoConfirmar anularConfirmar actualizaçãoConfirmar eliminação de ficheirosConfirmar troca na fila de patchesA ligar ao quadro de revisões...ContactoMenu de contextoConvertido de:CopiarCopiar - %sErro ao copiarCopiar mensagemCopiar uma das mensagens de envio recentesCriarCriar &ramoCriar um repositório aquiCriar um novo grupoCriar um novo patchCriar novo repositórioCriar clone aqui a partir da fonteCriar diff com todas as alterações deste ramoCriar diff com todas as alterações de envioCriar novo ramo "%s" com este envio? Cor&tarCulprit encontrado.Revisão local ctualFerramentas personalizadasDataData:Ramos mortosEliminarEliminar %d ficheiro no .hg/TrashcanEliminar %d ficheiros no .hg/TrashcanEliminar %d ficheiro ignoradoEliminar %d ficheiros ignoradosEliminar %d ficheiro desconhecidoEliminar %d ficheiros desconhecidosEliminar ferramentaEliminar pastas vaziasEliminar da lista:Eliminar pastches seleccionadosEliminados %d ficheirosiminados %d ficheiros e %d pastasEliminado*A eliminar apsta de lixo...A eliminação falhouNegar envioDescriçãoDestCaminho de destino:Destino:Detectar cópias/renomeação em %sdetectar renomeações e cópiasFerramentas de unir/diff detetadas:Barra de ferramentas DiffDiff e anotarDiff não apresentado: Diff para o parenteDir diff para p1Dir diff para p2Pasta diffDirectoria de todos os ficheirosRejeitar - ignora alterações locais, sem guardarIgnorar a mensagem de reversão actual?Ignorar a mensagem de envio actual?Ignorar alterações locais, sem guardar (-C/--clean)Ignorar alterações locais, sem backup (-f/--force)Descartar as alterações pendentes para a diretoria de trabalho?A mostrar %(count)d de %(total)d itensSincronizar DnDNão incluir as datas de modificação nos cabeçalhos diff. Pré-definição: FalseNão guardar ficheiros de backup (*.orig)Não actualizar a nova directoria de trabalhoNão verificar o certificado do servidorDeseja activar a fila de patches '%s' ?Deseja sair?Arraste para alterar a ordemNome duplicado&SaírE&xplorarAjuda do e&xploradorE&xportarE&xportar Patch...EditarEditar ficheiroEditar filtro de ignorarEditar LocalEditar ferramenta...Editar o ficheiro actual na cópia de trabalhoEditar ficheiroEdição do gráfico de dependência de patchEditar ficheiro com patch e rejeitar?Editar filtro de ignorar do repositórioCorreio electrónicoEndereço de correio a usar no cabeçalho "De" e envelope SMTPCodificaçãoMensagens em inglêsErroErro encontrado.Erro ao pré-visualizar sub-repo: %sErro ao gravar o ficheiroExcluirExclui:SaírDefinições da extensão do exploradorExtExtensõesFalha ao carregar o acompanhamento de problema'%s': %sFalhou!FicheiroHistórico do ficheiroEstado do ficheiroEstado do ficheiro:O ficheiro é binárioO ficheiro pode ser binário (máximo de linhas excedido)Ficheiro ou diffs não apresentados: Nome do ficheiroFicheirosFiltro:Pesquisar renomeaçõesProcurar cópia e/ou renomear origemTerminadoRevisões reparadasEtiqueta:Seguir cópias e renomeaçõesForçar envio ou pop (--force)EsquecerEsquecer ficheiros...AvançarDeDe:Caminho completo do titúloFormato GitPatches git podem descrever ficheiros binários, cópias e alterações nas permissões, mas o destinatário poderá não conseguir usá-los se não estiver a usar o git ou o Mercurial.GlobDefinições GlobaisIr para uma revisão específicaGraft:GráficoGuardas: %d/%dAdivinhar renomeaçõesFicheiros gzip tarComando Hg:Visualizador do ficheiro de registo Hg [%s] - %sPatches Hg (como gerado pelo comando exportar) são compatíveis com a maioria dos programas de patch. Eles incluem um cabeçalho que contém os metadados mais importantes do changeset.Ocultar etiquetasOcultar o menu de contexto fora dos repositóriosDestacar íconeServidorNome do servidor e porta do servidor proxy (opcional) "myproxy:8000"Nome do servidor de correioNome do servidor que o remetente pode usar para se identificar a si mesmo no servidor de correio.Quantas linhas tem uma "tira de uma zebra" deve alcançar uma saída de multilinhas. Pré-definição é 1; 0 para desactivar.ÍconeÍconesSe ainda tiver problemas, a href="#bugreport">por favor, reporte o bug.Ignorar Ignorar linhas em brancoIgnorar quantidade WSIgnorar espaço em brancoIgnorar a capitalizaçãoIgnorar filtro - %sIgnorado*Importar - %sImportar do clipboardEm- resposta-a:IncluirIncluir patch na filaInclui:Iniparse tem de ser instalado.Pacore Iniparse não encontradorevisão inicialEscrever novo guarda para %s:Direitos de acesso insuficientesInterrompidoDefinições inválidas - Por favor forneça um nome de utilizador para o quadro de revisõesDefinições inválidas. O servidor do quadro de revisão não está configuradoFormato de data inválidoExpressão glob inválidaExpressão regexp inválidaIssue LinkIssue RegexAcompanhamento de problemaIssue TrackingManter ficheiros de patchKiln BfilesRevisão má conhecida:Revisão boa conhecida:Barra de ferramentas esquerdaLicençaLinhaLista de todas as ferramentasListar ficheiros atualizados (--verbose)Servidor localApenas discos locaisLocalização:Bloqueado*Tamanho do registo BatchSumário longoOpções MQTornar o repo compatível com o Mercurial <1.7Obrigatória edição da referênciaResolver manualmente chunks rejeitados?Texto correspondenteMáx. de alteraçõesTamanho máx, do diffMáx. de ficheirosMenu comportamentoUtilizador do MercurialO comando Mercurial ainda está em execução. Tem a certeza que deseja terminar?O Mercurial não encontrou um editor. Por favor configure o Mercurial para utilizar um editor instalado no seu sistema.JuntarUnir - %sUnir - permitir união com as alterações locaisUnir todas as dependências pendentesUnir changesetUnir de (outra revisão)Revisão a unir não especificada ou não encontradaUnir para (directoria de trabalho)Unir com %sA unir...MensagemIdentificador de mensagem para resposta, para tópicoMín similaridades: %d%%Tamanho mínimoInformação em faltaModi&ficar históricoMoverEscolhidas múltiplas origensNomeNome ou endereço de correio da pessoa responsável pelo repositório.O ramo com o nome "%s" já existe, usado na revisão %d Novo &grupoNovo ramo: Novo grupoNovo nome:Novo ramo de patchNovo repositórioNova ferramenta...Nenhum ficheiro criadoNova mensagem de patch:SeguinteDiff seguinteSem datasSem ficheiros apropriadosSem backup (-n/--nobackup)Sem alterações no ramoNão restam chunksSem chunks elimináveisNenhuma ferramenta diff encontradanenhum editor encontradoFicheiros sem alteraçãoNão há ficheiros verificcadosNenhuns ficheiros encontrados para esta operaçãoSem ficheiros seleccionadosSem ficheiros para procurarNão foram encontrados ficheiros ignoradosNenhum item para mostrarNão foram encontradas correspondênciasSem conflitos de união, pornto para submeterNão há ficheiros modificados marcados para envionenhuma operação para efectuarNenhum changesets para enviarNenhumas changelist Perforce pendentesNenhum URL de repositório remoto ou definição do caminhoNenhum repositório encontradoNão foram encontrados ficheiros de lixoNão foram encontrados ficheiros desconhecidosNenhum nome de utilizador configuradoNenhuma ferramenta de diff visual detectadaNenhum editor visual configuradoNada - simplesmente puxar os changesetsNão é um sub-repo do Mercurial, não é pré-visualizávelNão é uma revisão head!Nada para importarOkApenas considerar ficheiros eliminadosApenas ficheiros modificados/criados nesta revisãoPara o destinoAbrir um novo ramoAbrir ferramenta shelveAbrir repositório num ficheiro do navegadorAbrir o sub-repositório seleccionadoOpcional. Lista de nomes de servidores separados por vírgulas que podem fazer bypass ao proxyOpcional. Senha de autenticação no servidor proxyOpcional. Nome de utilizador para autenticação no servidor proxyOpçõesOpções:Ou use:SobreposiçõesParente 1:Parente 2:Pai:PaisSenhaSenha para autenticar no servidor de correioSenha :Colar nomesdos&ficheirosBarra de ferramentas de patch do ramoPatch EOLNecessário nome do patchPatch em esperaA aplicação do patch falhouArquivar patch - %sNome do patch:A descrição das séries de patch é enviada numa mensagem de correio com um resumo inicial [PATCH 0 de N] no assunto. Deve descrever os efeitos da série inteira do patch. Ao enviar um pacote, estes campos constituem o assunto e o corpo da mensagem .As etiquetas são uma lista separada por vírgula de tags que são inseridas no assunto da mensagem.Patch:Patches para arquivarCaminhoCaminhos nas definições do repositório:PadrõesChangelist Perforce pendentes - %sForçosamenteFaseSimples, não preceder o cabeçalho HgPor favor configure um editor visualPor favor escreva um nome de utilizadorEscreva a mensagem de envioPor favor reporte este bug para o nosso bug trackerPor favor aguarde enquanto se submetem os ficheiros unidos.Por favor aguarde...PopPop a todosPortaPorta de ligação ao servidor de correio. Pré-definido: 25Porta em escutaPorta:Publicar &revisãoApós receber: Publicar revisãoPreparar para backoutPreservar ficheiros que começam por .hgAnteriorPré-visualizarPré-visualizar:Diff anteriorProjrcProxyPublicar imediatamente o pedidoReceberPurgarEnviar após submeterEnviar após submeter:O envio necessita de SSLPuxar para o repositório remoto %s ?QNewQRefreshSair.Opções do registo do r&epositórioLEIA_ME não configuradoRe&cuperarRe&nomearApenas de leitura*Pronto para purgarRebaseRebase - %sRebase abortadoRebase está terminadorecurse entre sub-repositóriosActualizarAtualizar barra de ferramentasAtualizar o patch atualAtualizar lista de ficheirosAtualizar a lista do registo do repositórioRegexpExpressão regular:Padrão de pesquisa de padrão regularCaminhos relacionados:AtualizarComando remoto:RemoverRemover ficheiros...Remover ficheiros do controlo da versãoRemover filtro, mostrar raízRemover patches da fila de espera?Remover os ficheiros eliminados seleccionados?Etiqueta %s removidaMudar o NomeRenomear - %sErro ao renomearRenomear ficheiroRenomear ficheiro ou directoriaRenomear patch %s para:SubstituirReportar apenas a primeira correspondência por ficheiroRepositórioID do repositório:Registo do repositórioAtualizado o registo do repositórioConfiguração do RepositórioEstado do repositório & alteraçõesNecessita confirmaçãoReiniciar &ramoRevReverterReverter - %sReverter ficheiros...Reverter alterações dos ficheirosRevertr ficheiro(s) para o conteúdo nesta revisãoReverter os ficheiros para local ou outros parentes?Reverter para a revisãoA reverter changelist p4...Quadro de reviõesID da revisão:Rever rascunho publicado em %s Revisão publicada em %s RevisãoConjunto de revisãoRevisão:Barra de ferramentas direitaReverter envio para a revisão %dEm execução...S&incronizarServidor SMTPSenha SMTPSMTP PortSMTP TLSNome de utilizador SMTPerro SSL: %sSSL: Verificação do ceertificado do servidor falhouSSL: erro desconhecido %s:%sGuardarGuardar globalGuardar caminhoGuardar o url atual com uma alcunhaGuardar relatório do erro emGuardar ficheiro emGuardar config hgwebGuardar no repoPesquisarHistórico de PesquisaPesquisa já em cursoProcurar revisões dos ficheiros por padrõesA pesquisarSelecionar t&udoSeleccione destino do ficheiroSeleccione a pasta de destinoSeleccione repositórioseleccione a pasta de origemSeleccione o ramo para juntar no envioSeleccione o repositório de destinoSeleccione a pasta de patchSelecione a operação deste repositório depois de puxarSeleccionar repositório de origem&Enviar mesagem de correioEnviar changesets como patches HgEnviar um bundle binário únicoA enviar mensagensServidorServidoresDefinir data:Definir nome de utilizador:DefiniçõesFicheiros de definições:M&ostrar o registo do repositórioMostrar &AutorMostrar &DataMostrar &RevisãoMostrar o diálogo sobreMostrar funçãoMostrar íconeMostrar problemasMostrar problemas...Mostrar registoMostrar tudoMostrar o histórico do ficheiro seleccionadoMostrar que função cada alteração tem. Pré-definido: FalseTamanhoSaltar página de confirmação final e fechar após submeter.A ignorar %s, não é possível lerFonteOrigem:Especifique a ferramenta de comparação visual, conforme descrito na secção [fundir-tools] do ficheiros de configuração Mercurial. Se não for especificado, o TortoiseHg irá usar a ferramenta de união seleccionada. Se falhar utiliza a primeira ferramenta aplicável que encontrar.Especifique o idioma preferido para a interface (é necessário reiniciar)IniciarIniciar um novo patch do ramoIniciar revisão:Iniciar servidor web para este repositórioEstatEstadoEstado:PararParar a operação atualRemover - %sRemover:RiscasTirar o cabeçalho Mercurial retira o nome de utilizador e a informação parental. Apenas de utilidade se o destinatário não estiver a usar o Mercurial (e não gosta de ver os cabeçalhos)EstiloSub menu items:Assunto:A submeter changelist p4...Sub-repo criado e definido como versão inicial.Sub-repo inicializado para a revisão:Sub-repo removido do repositório.Subrepo não foi alterado.Subversion:SucessoTamanho da linha do sumárioSumário:SincronizarSincronizar com o repositório arrastadoSincronizar com o repositório remotoCache do sistemaLargura do SeparadorEtiqueta - %sEtiqueta:Etiquetas:Ficheiro tar comprimido usando bzip2Ficheiro tar comprimido usando gzipFicheiros tarGrupos de destinoPessoas de destinoDestino:Separadores de tarefasBarra de tarefasFicheiros temporários são removidos ao fechar este diálogoTerminado pelo utilizadorTeste esta revisão e reporte os resultados. (boa/má/ignorada)Ficheiros de texto (*.txt)Descrição visual do destino ou conteúdo do repositório.As alterações da revisão %s e todos os parentes não unidos serão ignorados. tem a certeza que é isto que quer fazer?O destino "%s" já existe como um ficheiro!O destino "%s" já existe como uma pasta!A directoria "%s" não está vazia! Deseja substituí-la?O ficheiro "%s" já existe! Deseja sobrescreve-lo?O tamanho máximo do ficheiro (em KB) que o TortoiseHg irá mostrar as alterações no registo de alterações, estado e janelas de envio. Um valor de zero implica nenhum limite. Pré-definição: 1024 (1MB)O número de revisões para ler e mostrar no visionador de alteração de registo de uma única vez. Pré-definição: 500O ícone da ferramenta. Você pode usar qualquer ícone do TortoiseHg ajustando este valor para um nome válido de um ícone do TortoiseHg (por exemplo, clone, adicionar, remover, sync, thg-logo, hg-update, etc). Você também pode definir este valor para o caminho absoluto de qualquer ícone no seu sistema de ficheirosO nome da ferramenta não pode ter espaços.Não existem alterações de ficheiros para verThg - GUI de ferramentas do TortoiseHg para Mercurial SCM (Hg) Three-way Merge ToolTítuloParaPara:Mudar apresentação da barraa de pesquisa de textoEtiqueta da ferramentaFalha ao lançar a ferramentaNome da ferramentaFerramentasFerramentas mostradas na localização selecionadaDicaTop menu items:Relatório de erro do TortoiseHgDiálogo de comando do TortoiseHgTortoiseHg CommitDiálogos do TortoiseHg (versão %s), Mercurial (versão %s) Erro do TortoiseHgServisor de ícones de sobreposição do TortoiseHgPrompt do TortoiseHgPesquisa do TortoiseHgDefinições do TortoiseHgTransplantar:TipoIdioma da IUURLnão é possível fazer backoutNão é possível criar um ficheiro Mercurial.iniNão foi possível criar um ficheiro de configuraçãoNão é possível eliminar %d ficheiro ou pastaNão é possível eliminar %d ficheiros ou pastasNão é possível determinar os changesets pendentesNão é possível encontrar changesetsNão é possível fundirNão é possível unir chinksNão é possível analisar a saída p4pendingNão é possível ler o estado do repositórioNão é possível removerNão é possível remover o ficheiro %s, permissão negadaNão foi possível guardar depois de submeter o envioNão é possível guardar num urlNão é possível guardar a autenticaçãoNão foi possível guardar a lista de auto-inclusãoNão foi possível guardar o nome de utilizadorNão é possível escrever o ficheiro .hgignoreNão foi possível escrever o ficheiro de configuraçãoNão aplicar todos os patchesDesaplicar um patchDes-seleccionar para considerar todos os ficheiros da revisão para copiar a origemUnião não enviada - seleccione o parente da revisãoFicheiro tar não comprimidoFicheiro zip não comprimidoAnular último envio?Anular a submissão mais recente (%d), preservando as alterações do ficheiro?Revisão desconhecida!Sem versãoAtualizarActualizar - %sAtualizar - puxar e depois tentar atualizarActualizar íconesActualizar revisãoActualizar ícones para este repositórioAtualizar ao receberActualizar os campos do pedido existenteActualizar para:Actualizar directoria de trabalhoActualizar...A atualizar o registo do repositórioUsar a mensagem de backout em inglêsUsar a mensagem de commit em inglêsUsar vista compactaUsar a mensagem de commit personalizada:Usar formato de patch extendido (git)Usar formato git extended diff header. Pré-definição: FalseUsar servidor de proxyUsar o protocolo receber para copiar metadadosUtilizadorCache do utilizadorUtilizador:Nome de utilizadorNome de utilizador para autenticar no servidor de correioV&er ficheiroVer alteração como diff de saída unificadoVer histórico de alterações no repositórioVer histórico dos ficheiros seleccionadosver alteração no contexto do ficheiroVer as alterações actuais na ferramenta de diff externaVer alterações usando a ferramente GUI diffVer o ficheiro tal como apareceu nesta revisãoVer modificação do ficheiro na ferramenta externa de diffDiff visualFerramenta de diff visualDiffs visuais - Editor visualAvisoAviso: afecta todos os Tortoises, após alterar é necessário terminar a sessãoServidor WebQue estilo de mapa usarWorkbenchCópia de TrabalhoDirectoria de trabalhoDirectoria de trabalho (unida)Diretoria de trabalhoEstado da directoria de trabalhoProcura geralEscrever séries de descrição de patch (pacote)Pode visitar o nosso sítio aquiTem múltiplas renomeações seleccionadas para o ficheiro de destino: %s. A abortar!Tem de actualizar esta aplicaçãoPode continuar a comprimirPode continuar a fazer rebasetem de escrever um nome para o patchtem de se identificar ao MercurialTem de fornecer o caminho para o ficheiroFicheiro zip comprimido usando deflateArquivos Zip[comando efectuado com sucesso %s][o comando retornou o código %d %%s][comando terminado pelo utilizador %s][não existente][original][cópia de trabalho]abortar: abortar: %s! Submeteradicionar saída diffstat ás mensagensadicionadoDeslocar sempre o processo GUIanexarcomandos básicos: corporamo: ficheiro do pacote para pré-visualizarnão é possível ler o ficheiro"%s". Ignorado. changeset para ver na ferramenta de diffchangeset: %slimparNome do ficheiroérro de análise do comando: %sSubmeterpré-definidodiffstatmostrar ajuda e sairnão deslocar o processo GUIactivar saída adicionaleol não é compatível com win32texterro ao executar o comando falha ao iniciar comando campo para dar realce inicialo ficheiro foi eliminado, actualizaro ficheiro foi modificado, actualizarficheirosTodosNenhunsfiltraropções globais:grep: %s grep: padrão de correspondência inválido: %s hgsubversionnão é compatível com perfarcedica:históricoignoradoimportar para a espera do patch (MQ)no futuroem linhainotify não é suportado nesta plataformaargumentos inválidosiniciar a ferramenta de diff visuallista de comandos: locallsprof não disponível - instale a partir de http://codespeak.net/svn/user/arigo/hack/misc/lsprof/métodoem faltamodificadotem de ser um 'tipo' especificado no estilotem de especificar um repositórionome do ficheiro de configuração hgweb (depreciativo)nome do ficheiro de configuração hgweb (serve para mais que um repositório)necessita da união de %i cabeçalhos necessita da união com %s necessita da união com %s (through %s) Necessita de actualizar o diff base par tip de %s sem comandos definidos sem guardasnenhuma correspondência encontrada: %snenhum repo em notificar a shell para os caminhos dadosagoraabrir...opções: senha: perfarce não é compatível com hgsubversionimprimir comando de execução do perfilimprimir licençaler lista do ficheiro apartir do ficheiroguardar datecode como data de envioguardar utilizador como remetenteremover a cache de estadoremovidorepositório %s não encontradodirectoria principal do repositório ou nome do caminhorevisões a anotarrevisão para actualizarrevisões para ver na ferramenta de diffficheiros seleccionadosenviar patches como anexosenviar patches como anexos em linhamostrar o conteúdo do estado da cache (sem actualizar)iniciar debuggerSubmeterMQ ActionVoltar atrásestadosuprimir saídaSubmeterthg %s: %s thg annotatethg commit [OPÇÕES] [FICHEIRO]...thg help [COMMAND]atualizar thg [-C] [[-r] REV]thg: %s desconhecidorevisão desconhecida!Formato de perfil não reconhecido '%s' - Ignorado actualizar todos os repos no dir actualuse "thg -v help %s" para mostrar opções globaisuse "thg -v help%s" para mostrar alcunhas ou opções globaisuse "thg help" para a lista completa de comandosusar apenas um formulário para especificar a revisãousar o protocolo pull para copiar metadadosversão %saguarde até o segundo passarserá encerradowin32text não é compatível com eolEnviarcom Mercurial-%s, Python-%s, PyQt-%s, Qt-%salterações em funcionamentoLimpar././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/pt_BR/0000755000000000000000000000000014742203610014561 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1314144 tortoisehg-6.9/locale/pt_BR/LC_MESSAGES/0000755000000000000000000000000014742203610016346 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033566.0 tortoisehg-6.9/locale/pt_BR/LC_MESSAGES/tortoisehg.mo0000644000000000000000000071106614742203536021114 0ustar00rootroot} L/& DRazĘ ؘ .L k$řؙ)8HPW_Y"3H[;rA˛7 :EÜԜٜޜ  'A` v  ĝ Н "0#P-t@ 2 8FUr Ÿ'9> Q^y   Ǡ Ӡޠ  #*18JRf Ρߡ,;KTg x ĢԢڢ 6H[ alt  ɣ Σۣ$+2 GQbh{ Ťۤ  (/ BLR bl{ ȥХ  ! 1=E\ p{٦  .6 =GZ _l t  Ƨ Χ٧  ,5;OUZr x'ͨ#+E c ҩ ,N@Jڪ&+;PdC;ë4-Sˬެ "$$4'Y'733(IrC,ղ#!&H^fl óֳ%&;N ako д=*h ĵٵ޵ >"/0R  ն ߶!" 4?)R)|=÷BRa)>޸)HG'6H gu |0κ޺ &6Tj  ˻ۻ:;%'a* ¼!ϼYKRbsG:4+ `jo8ݾ "6Y,j!= %,0g 5AWm r& "* MW ^lt}  q} B '+@l3'!9![)r<+>^ael,"'6!Vx.- /[4&*[.611+Pn|XDJ^n",$ 3Mg&&  "'J&g  ,;P aDk,/?,lie_C=/1m ]") ? LW f &6M"d '+ $V8#.<kM "2J bo !  ,;Xo"#" *.7f36jz  * & 5;*q* 5#9.].:8/LSbw+%)/O%   :H bou~9.>5.t.,&&9 HTi z*)"0Si'  * /P bo'O#n. &+4` z   *9HWfu*+ $ -E-s1.#>['sA&3!HMj2'@21s87^u) ' 8BR Wa t ! =PflC/%>OXi)B$;[X  425g( % )4M+i %(%&?fx-2' 8 Ub{ "4;!1]X&?HKNOUY@ + 5"GMj$ABRXh:;5</lr3G4c*) !2TY_o<&z  RWg mz     &4D ^Yk/k   #  &    ! I& p B c 0 5 a; a  x M f n    I P FL M  E L:   !.6L `j }Nj 8 !>;O6ef~  # /=RmYt+! ,=DI Xdx  Q+2 7E i )=[q    n [ e%p   (5 7 C Q_ q|9(8s#!& 3 1G y    ' ! ! %! 3!?=!:}!)! !!"G"dZ"m"-# 3#)>#h######)#$:$ Z$/h$ $$ $$-$B%E%Z% k%x%%%$%%%%,&*1&\&v&&&0&&'+'[0'@';' (( #(0( A( K(U(f(x( ( ((((((( ( ) ))))C)U) f)p)))))!))) *-*M*d**%+9+#J+Jn+(+++,.,G,$g,,,,,,, -"-"--.".).(./+/C/U/f/x/////U0,q0"00000/0*1,B1,o11!11%1=2O2%`2 2322#23I4kK4h5f 6;66<Y77888888889 49@9I9X9^9o999 9 9999,9*: F:P:a: v::: :: :::; ;:;J; Y;:e; << <<<<<:<H0=Gy====!=> $>*.> Y>e>k>>!>&>&>(?@?X?:t?"?#?*?!!@(C@l@{@@@.@@@ @@ @ @ A +ALAcA|A AAA!AAAA A B;BMBTB ZBeBBBBBB'B-CDCXChCCCCCC CCCCCDD5DKD%gDDDD DD!DE7EQEbEgEpE3vEEEEEEFF F6F>F OF ZFdFjF%zFF F2F5FG+G FG'gG GZGGF H RH\H)yHHHHHHII.I!GI$iIIII!IIII JJ)Jq|n2;Z4ږ@(Py$"Gcb(Ƙ 9b1&Uf|"c1.Hw+a(}4U/OE%!-ݣ8 <D**4פ! B.q(>!B*d!-7ߦ 7 EP dn t ѧ! )4;Tj8Ϩ3EWkt"1 EQl    êͪߪ% G?&*٫ : No+  "7#Z~"&,  "ܮ.BT]e9w2  6EW6nϰ *$4O   !ı   "5*ղ  ,$ Q3[=ͳ5 <W3DUp3ĵ5ӵ &"7Z_ s~Z+17,@Cm@5*( S ^ i v"!%Ǹ-  :)[' ̹ع 23I}T<< MX`oX'3־Uc_r\`  '= VcuC  '(UPH#'/uWF+#;'W#*#+Klj$  " 8OCA,M?P#  &5H[ c nz'&#5 :EN!e ,1  R*` :Qj~,?\d'm!'' >5t"#/ 19k7 = G R_f v * e~ ) 5Qc {Y\u,!*+>V!' (= R\q;A7 >J a#"  '4'< d'n * (:L'e## 2KSh/ !-.1`u$6I\!{!"&+5R1$$ 2AWp%8@P    " "-%Kq,,IZw  .K`{ ! 3H_{ +#+Ja|'%*Dow-+%6Q,D)"A)d  +2#("Lo,4/!0Hh, "&=$d52*;f}ddev?%G<A?$+BWfkp t  !* J U` |  $4?Kt4%4"Eh# *(F Ze *; A&M t ~  &;DWf+   3 CQ do *:Oe l x   ,H _ir   1 8 BPcj{   .GP a mw      % < ]h   /J O[ n|        %3 D N\e#n &*#+O$m!(# 1">aw<NFM +# *  J Fk ;   ,- 4Z         !2 T 6V & . 0 D KY B / 3LE+<"h  !91[2  "8%X~(N/M} )M&bD% >M2` <-7!e]IM!@$8N]dt26,>[ s! !9Vj@{<*0$Uh/|/5#Ko &RY =p    < !#,! P!]!&t!!!<!&"S5"."""""#H$$%R&c&~&&&&&&'',' T'$b' ''''''' ''(( ))0)L) `)]k)#)).):%*#`*E*1*5*62+Ei+&+6+R ,(`,:,X,- -$---H-h-y--5-8-.(+.*T...5.5. / '/1/:/h/.g040<001<91:v1(1n1WI22"22$2* 3D43y3 g4t4}4,4444515+O5{5.55 555.5*6"B6.e66 6 6666 77 707 L7Z7m7 7Q777,8D18Nv88e99:xS;<;; <GE<<<<_<=+=G=Y=j=-==&="=">5>P>g>w>(>>>)> ?? ?%8?@^??2?g?#U@ y@@"@@*@6 A>DA)A[A B!B>B'RBzB BBBBBC0%CVCqCCCCCCD/DLDlD"D%DD%D)ECEKESE:dEE9FFF FG GG!-GDOGG2GGCG83H(lH3HQH'I1CI<uI=ITIPEJ-JJ JJJJK*K=K#UK,yK2K-K)L 1L;LOL'dLL LLLLL LL M$M3MFNOXO7pO?O<O+%PQPhPwPPP PPPP;Q6AQxQ+Q!Q"Q/R5R JRkRtRR R RRRRR#R"S*:S=eSS)SmS.[T(TU"V0W5XY 2Y>YwY Y Y YYYYY ZZ8ZUZhZ2Z-Z'Z+[(4[3][3[8[3[2\$I\n\%\&\!\Q\.K]?z]*]o]8U^,^$^I^5*_6`_;_a_ 5`)B`l```` ```` ``a!aAaHaWapaaaa+aa b'b';b(cbbbb%b!b?c=Qc&c-c%c dd$-d$Rdwd|d*d`d"e,'8Xi zE$ (<SPJ|8҈$ˉ+"?Y^[Ë3̋'( AMT lx Ȍw^7g͐j&'5]x ϒs-(ړ$ (#Im vȔʔڔ #Z64ƕB+&+E1qD&!+&Mt4&?!>a6ךVut}h p3}'(ٜ++D:p33ߝ)$ N[dvEWܞ4Oaq./˟'&)8P7*)+*B=m(ԡtDlL   & < GRg ͣ٣$ - ; ISm5% 0Ib.yå;":"]E^4}\6Fd&"'ͨ6,Kg$&ũ#/ "2U^H& o8ɬڬ/K# 5/*e;ͮ 1$.V")ү!L%\2#>ٰ#%<b]KQִ3Z@26s ;ŷ /K.j˸Ѹ  $$IPW\a*g(¹ڹ$:#Jn}"κR)| ƼμBM/Q}Ͻ-ؽ&6 K.U $$پ5#4.X'/K߿.+3ZC228 MYk5q (**Uq$ ( = K=Y  % (1'Z83 LW]l~ *,(U"k, 8PU ^6h& ( =G Zgx1 >:.i%y%* hg\ +9+Nz! &+*R}& ,Ics'{))% 1P l&T'" J.k)8Qp"& &,C,p1  $-R4r}D#a [1q '-2H{7<'7Wm8 Ta#q "bZp!(  ) 3T,q=eB?-")p9|@|Qr   ! / :EN d p6}2 %@!O q8, JTk^*( F QN_  0&Mt87&MJt1! ,/WB72 ?a.k9K64 2 47l|  %5#Q>u"  , Mk  %7I_p  9|P =)(C6lOG : ), <V    G   3 $> c {  =  i T g } %'GMck {]$z+;g"4WX%L~-27>Zbh yl-$:R,9* @'] :# #/ 7C(< Yc} ($&.F\{        1 >  M  Y f l |  4 < !D1!v!!<! !/!%"("#"a#ej&?&''*8'7c'B''(6,)3c))51*Kg*,**)+(+l,'m,,,C-e.m.28/lk001ku2@26"3Y3x3J4/'50W55)6M6:7dC7-7.708&689]8<838L9$U9Lz99999:::.:5;->;,l;;;4; <%<;<Y< l<)x<<< <<<=&$= K=X=(a=$= ====+>)>>"h>->>>>"?#?>?hV??? ?+?@9@?@ D@Q@e@ i@ v@@(@-@5@O(A)xA>AAAB,4BaB.zBBB2B-C4C)NC)xC5C=C"D69D&pD9DD)wE%E7E E F?FZFnF wFFZFAF:GVG rG}G G"GGPG1H9HKH+bH'HHH5H<I(TI}I II4III#J$J9J'J*J*K3:K5nKK>KBK%ALCgL)L*LMMN.N%DN6jNNON$O&O+:OfOoOO!O OzO3ZP PP5PYPS9Q5Q7Q Q RR "R -R/NR7~R#RJR@%S?fS@S,ST&T@TOT _T2mT1TT_TAU[UXaUU UUUUV\VJW"X.ZF\d]e]-^`Tab1b!Db fb bb/bbb!c)cU@c cccc2c]%dZe/e%f44fif2gW6ii*j* N.Y#̌,0Kfu(%ݍ'  H(U~6̎%1'<Y0JǏ*0=+nC ސ 89N("ԑ+'- Please check that the "thg" command is valid. Caught keyboard interrupt, aborting. aliases: %s (default: %s) (copied from %s) (is a symlink) (is unversioned) (renamed from %s) (was added) (was added, now missing) (was deleted) filtered"%s" is not a folder"%s" is not a valid directory"%s" removed from path history"%s" removed from search history### filter text ###### host certificate fingerprint ###### patch name ###### regular expression ###### regular expression search pattern ###### revision set query ###$FILE_ENCODINGS% Match%d day%d days%d files have merge conflicts that must be resolved%d files were modified on both branches and must be resolved%d hour%d hours%d matches found%d minute%d minutes%d month%d months%d outgoing changesets%d outgoing changesets in current branch (%s) / %d in total%d outgoing changesets to %s%d outgoing changesets up to current revision (#%d) / %d in total%d outgoing changesets up to revision #%d / %d in total%d patches were exported to:

                                                                                                              %s%d pending changelists found%d second%d seconds%d week%d weeks%d year%d years%d%%%dpt%p%%s (hint: %s)%s (pending)%s (submitted)%s - Revision Details (%s)%s - TortoiseHg Workbench%s - TortoiseHg Workbench - %s%s - branch operation%s - commit%s - commit options%s - hg %s%s - purge%s - recover repository%s - status%s - status (selection filtered)%s - sync options%s - verify repository%s : %s%s %s already exists, replace URL?%s and %s have identical contents %s certificate error: no certificate received%s had rejected chunks, edit patched file together with rejects?%s is a dirty subrepo%s is added%s is deleted by non-hg command, but still tracked%s is ignored%s is modified%s is not a valid repository%s is not modified (clean)%s is not tracked (unknown)%s is removed%s patches%s project settings (.hg/projrc)%s repository settings%s will be imported to %s's global settings&About TortoiseHg&Add&Add Repository...&AfterIndent&Ancestors and Descendants&Apply Only This Patch&Archive&Archive...&Auto&Auto Detect&Auto-Complete&Backout...&Bisect...&Branch&Browse...&Bundle Rev and Descendants...&Cancel&Character&Clear&Clone&Close&Close Repository&Commit&Commit to Queue...&Commit to current branch&Copy&Copy Patch&Copy...&Create&Custom Toolbar&Delete&Delete Patches...&Delete Queue...&Delete Unversioned...&Diff Other to Ancestor&Diff Selected File Revisions&Diff to Other&Diff to Parent&Discard&Discard (--force)&Discard changes&Dock Toolbar&Edit File&Edit Local&Edit Toolbar&Edit...&Editor Options&Email Patch...&Exit&False&File&Filter Toolbar&Finish Patch&Flat List&Force&Forget&Goto (update workdir)&Goto Revision...&Graft to Local...&Help&Ignore...&Import&Import Patches...&Incoming&Invisible&Keep (--keep)&License&Local&Lock File...&Mac&Make secret&Mark Excluded Changes&Mark Resolved&Mark Unresolved&Mark as Resolved&Match&Merge&Merge with Local...&Merge...&More Options...&Move&New Repository...&No&No (discard changes)&Open&Open All&Open Local&Open Repository...&Originating Revision&Other&Outgoing&Parent Revision&Parent Revision (%d)&Paste&Patch Branch&Prune&Prune Selected...&Prune...&Pull&Purge Queue...&Purge...&Push Bookmark&Readme&Rebase...&Redo&Refresh&Refresh Repository List&Remote Update...&Remove&Remove Bookmark&Remove...&Rename&Rename Active Queue...&Replace&Repository&Resize Columns&Resolve...&Revert&Revert to Revision...&Revert with backup&Revert...&Run&Save&Save at Revision...&Scan Repositories at Startup&Search&Search in Current File&Set...&Settings&Shelve&Shelve...&Sign&Skip this Revision&Sort&Sort by .hgsub&Spaces&Strip&Strip...&Sync Bookmarks...&TAB&TAB Inserts&Tag...&Take Local&Task Toolbar&Terminal&True&Unapply Patch&Undo&Unix&Unspecified&Update&Update...&Verify&View&View Changeset&View Missing&View at Revision&Visible&Web Server&Windows&Word&Workbench Toolbars&Wrap&Yes'Publishing' repository(%s) (DEPRECATED)(excluded from the next commit)(is a changed and dirty sub-repository)(is a changed sub-repository)(is a dirty sub-repository)(is a new and dirty sub-repository)(is a new sub-repository)(is a removed sub-repository)(is an unchanged sub-repository)(no help text available)(same as parent)(unsaved)*: not used by TortoiseHg, resolved merge, unresolved merge3-&Way Diff3-way dir diff<Launch settings tool...help revsets%d changeset will be stripped%d changesets will be strippedAnnotate:Candidate MatchesDifferences from Source to DestHost: %sIgnore FilterParse Error!Repository Details:Revert %d files to their contents at the following revision?Revert %s to its contents at the following revision?Selected Options:Selected Options: %sSubrepository Features:Uncommitted local changes are detectedUnknown revision!Unrevisioned FilesUntracked FilesWeb Server:= Working Directory Parent =>A README file is not configured for the current repository.

                                                                                                              To configure a README file for a repository, open the repository settings file, add a 'readme' key to the 'tortoisehg' section, and set it to the filename or URL of your repository's README file.A bookmark named "%s" already existsA comma separated list of target groupsA comma separated list of target peopleA new version of TortoiseHg (%s) is ready for download!A repository cannot be added as a subrepo of itselfA revision identifier, bookmark, tag or branch nameA shelf file of that name already existsA shelf name cannot contain %sA template string that, when set, turns the revision number and short hashes that are shown on the revision panels into links.
                                                                                                              The template string uses a normal mercurial template syntax, such as:

                                                                                                              • {node|short} : replaced by the 12 digit revision id.
                                                                                                              • {rev} : replaced by the revision number.
                                                                                                              • {gitnode} : if the hg-git extension is enabled, and the repo is a git clone, this is replaced by the git commit hash.
                                                                                                              For example, in order to link to bitbucket commit pages you can set this to:
                                                                                                              https://bitbucket.org/tortoisehg/thg/commits/{node|short}
                                                                                                              You can also to link to a GitHub/GitLab repo (provided hg-git is installed):
                                                                                                              https://github.com/torvalds/linux/commit/{gitnode}
                                                                                                              https://gitlab.com/tortoisegit/tortoisegit/commit/{gitnode}
                                                                                                              A terminal shell cannot be opened for remoteA terminal shell must be configuredA topic named "%s" already existsA&dd Subrepository...A&uthorAbortAbort the export operation. Aborted p4pendingAboutAbout &QtAbout TortoiseHgAcceptAccept All MatchesAccept Selected MatchesAccept the local file version (yours)Accept the other file version (theirs)Activate BookmarksActivate bookmark?Activate:AddAdd &LargefilesAdd &Largefiles...Add Files...Add Path to ServeAdd a repository to this groupAdd as &LargefilesAdd as &Normal FilesAdd files to version controlAdd ignore filter...Add or remove patches must be merged in the working directoryAdd selected untracked files?Add separatorAdd to listAddedAdded tag %s for changeset %sAfter Pull OperationAge:AliasAll HistoryAll changesets belonging to the branches of changesets in set.All changesets, the same as 0:tip.All conflicting files will be marked unresolved.All conflicts are resolved.All contextsAll files (*)All files in this revisionAll itemsAll revisionsAll unsaved changes will be lost.Allow Git SubreposAllow Hg SubreposAllow PushAllow SVN SubreposAllow push of a new branch (--new-branch)Allow pushing new branches (--new-branch)Always merge (when possible)Always show repo tabs, even for a single repo. Default: FalseAmendAmend current revisionAn alias for "::." (ancestors of the working copy's first parent).An empty set, if any revision in set isn't found; otherwise, all revisions in set.An error occurred while reading the file.An error occurred while updating the repository hgrc file (%s)An error occurred while writing the file.An exception happened while loading the subrepos of:

                                                                                                              "%s"

                                                                                                              An interrupted graft operation has been found. You cannot perform a different graft operation unless you abort the interrupted graft operation first.Annotate &FileAnnotate Op&tionsAnnotate with revision numbersApp&ly FormatAppendAppend graft info to log messageAppend the changes to the existing patch files. Applied patchesApplied patches or qparentApply all patchesApply changes before exit?Apply one patchApply only the selected patchApply only this patchApply onto original parentApply patchArabicArchive - %sArchive Content:Archive DAG Range...Archive FormatsArchive types:Are you sure that you want to cancel the commit operation?Are you sure you want to delete these files and/or folders?Are you sure you want to overwrite it ?Are you sure you want to reload this file?Are you sure?Ask UsernameAttempt automatic (trivial) mergeAttempt to push to specified URL or alias after each successful commit. Default: No pushAuthorAuthor ColoringAuto Commit ListAuto Exclude ListAuto Includes:Auto-resolve mergesAutomatically advance to next page when backout and merge are complete.Automatically advance to next page when merge is complete.Automatically resolve merge conflicts where possibleAvailableBackBacked out changeset: Backing out a parent revision is a single step operationBacking out and committing...Backing out, then merging...Backout - %sBackout changesetBackout current patch branchBackout requires a parent revisionBackout revisionBackport part of a changeset to a dependencyBackspace or Del to remove row(s)Backup copies of modified files can be found in .hg/Trashcan/Backwards phase change requestedBad filenameBalticBccBefore backout, you must commit, shelve to patch, or discard changes.Before compress, you must commit, shelve to patch, or discard changes.Before graft, you must commit, shelve to patch, or discard changes.Before merging, you must commit, shelve to patch, or discard changes.Before rebase, you must commit, shelve to patch, or discard changes.Bisect - %sBisect - Bad, Good...Bisect - Good, Bad...BoldBoo&kmark...Bookmark '%s' does not existBookmark '%s' has been addedBookmark '%s' has been movedBookmark '%s' has been removedBookmark '%s' has been renamed to '%s'Bookmark - %sBookmark named "%s" does not existBookmark:BranchBranch ColorsBranch:Branch: Bro&wse at RevisionBrowse Directory...Browse...Bundle DAG Range...Bundle files (*.hg)Bundles store complete changesets in binary form. Upstream users can pull from them. This is the safest way to send changes to recipient Mercurial users.Bypass ListBzip2 tar archivesC&hoose Log Columns...C&onfigure FormatCLI EditorCan't change settings without iniparse package - view is readonly.Can't find revision '%s'CancelCannot add subrepositoryCannot backout change on a different branchCannot export revisionCannot export revision %s into the file named: %s Cannot import selected revisionCannot merge with a pseudo revision %r.Cannot open Plugin Options dialogCannot open non Mercurial repositories or subrepositoriesCannot open repositoryCannot open the .hgsub file in:

                                                                                                              %sCannot read the .hgsub file.

                                                                                                              Subrepository removal failed.Cannot start a new searchCannot update the .hgsub file in:

                                                                                                              %sCannot update the .hgsub file.

                                                                                                              Subrepository removal failed.CcCc:CelticCentral and Eastern EuropeCertificate Query ErrorChange &Phase toChangeLog FontChanged by &This CommitChanges have been moved, you must now commitChanges take effect on next commitChangeset LinkChangeset is a merge changeset.Changeset is a named branch head.Changeset is closed.Changeset is tagged.Changeset with highest revision number in set.Changeset with lowest revision number in set.Changeset:ChangesetsChangesets affecting files matched by pattern. See help patternsChangesets containing files matched by pattern.Changesets not found in the specified destination repository, or the default push location.Changesets that are ancestors of a changeset in set.Changesets where username contains string.Changesets which add files matched by pattern.Changesets which are descendants of changesets in set.Changesets which modify files matched by pattern.Changesets which remove files matched by pattern.Changesets with no parent changeset in set.Changesets within the interval, see help datesCharacter encoding of files in the repository, used by the web interface and TortoiseHg.CheckCheck Subrepo PhaseCheck all filesCheck for incoming changesCheck for incoming changes from %sCheck for incoming changes from selected URLCheck the phase of the current revision of each subrepository. For settings other than "ignore", the phase of the current revision of each subrepository is checked before committing the parent repository. Default: followChecked count: %dCheckingChecking for updates...Checking working directory status...Checking...Checkmark files to addCheckmark files to forgetCheckmark files to removeCheckmark files to revertChild changesets of changesets in set.Child:Chose the selected available reviewersChunks selected: %d / %dClea&r LogCleanClearClear contents of shelf file %s?Clear current query and query textClear the current shelf fileClick OK to continue or Abort to exit.Clon&e Repository...Clon&e...Clone - %sClone RepositoryClone to revision:Clone with minimal processingClone...CloseClose %s branchClose After CommitClose Branch: Close current branchClose other tabsClose tabClose the commit tool after every successful commit. Default: FalseClose:Co&mpare File RevisionsCollapse the rebased changesets (--collapse)Color changesets by author name. Default: FalseComma separated list of archive formats allowed for downloadingComma separated list of branch names that should be ignored when building a list of branch names for a repository. Default: None (leave blank)Comma separated list of exclusion file patterns. Exclusion patterns are applied after inclusion patterns.Comma separated list of files that are automatically included in every commit. Intended for use only as a repository setting. Default: None (leave blank)Comma separated list of files that are automatically unchecked when the status, and commit dialogs are opened. Default: None (leave blank)Comma separated list of inclusion file patterns. By default, the entire repository is searched.Comma-separated list of blind carbon copy recipient email addressesComma-separated list of carbon copy recipient email addressesComma-separated list of recipient email addressesCommandCommand ErrorCommand outputCommand to use for SSH connections.

                                                                                                              Default: "ssh" or "TortoisePlink.exe -ssh -2" (Windows)CommitCommit Dialog ToolbarCommit LaterCommit NowCommit OptionsCommit backout and merge resultsCommit changesCommit changes in repositoryCommit context menuCommit merge resultsCommit messageCommit...Committing...Common setsCompare revisions of the selected fileCompare to &1st ParentCompare to &2nd ParentCompletely remove file from patch?CompressCompress - %sCompress History...Compress changesets up to and includingCompress is complete, old history untouchedConfig File:Config files (*.conf *.config *.ini)Configuration Error: "%(arg0)s",
                                                                                                              Please fix your configConfigure Custom ToolConfigure Explorer extensionConfigure HookConfigure Issue TrackerConfigure guardsConfigure guards for selected patchConfigure repository settingsConfigure the selected COM Bug Tracker plugin.Configure user wide settingsConfigures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking plugin.Confirm AddConfirm Branch ChangeConfirm DeleteConfirm Delete UnversionedConfirm DiscardConfirm Discard ChangesConfirm Discard MessageConfirm ExitConfirm New BranchConfirm OverwriteConfirm PushConfirm Push to remote RepositoryConfirm ReloadConfirm RemoveConfirm RevertConfirm SaveConfirm StripConfirm URL replaceConfirm UndoConfirm UpdateConfirm adding unknown filesConfirm deleting filesConfirm file deletionsConfirm patch queue switchConfirm path deleteConnecting to Review Board...Consider aborting the graft first.Consider aborting the rebase first.ConsoleContactContext MenuContinue or abort interrupted graft operation?Controls draft phase behavior when working as a server. When true, pushed changesets are set to public in both client and server and pulled or cloned changesets are set to public in the client. Default: TrueConvert an existing repository into a subrepositoryConverted From:CopyCopy &HashCopy &PathCopy - %sCopy ErrorCopy Selected as PatchCopy full path of file(s) to the clipboardCopy messageCopy one of the recent commit messagesCopy source -> destinationCopy the root path of the repository to the clipboardCopy working directory files from skeletonCopyright 2008-2019 Steve Borho and othersCould not get subrepository listCould not instantiate Issue Tracker plugin COM objectCould not open .hgsub fileCould not open some subrepositoriesCould not open the specified file for reading.Could not open the specified file for writing.Could not translate the file content from native encoding.Could not translate the file content to native encoding.Could not update .hgsub fileCreateCreate &BranchCreate &New Queue...Create Patch QueueCreate Repository HereCreate a new groupCreate a new patchCreate a new repositoryCreate clone here from sourceCreate diff with all changes on this branchCreate diff with all outgoing changesCreate new named branch "%s" with this commit? Create special files (.hgignore, ...)Cu&tCulprit found.Current local revisionCustom Toolbar &SettingsCustom ToolsCyrillicDateDate:De&tect Renames...Deactivate current bookmark?Dead BranchesDefault Clone DestinationDefault PushDefault widgetDefines the command to run when an issue number is recognized. You may include groups in issue.regex, and corresponding {n} tokens in issue.link (where n is a non-negative integer). {0} refers to the entire string matched by issue.regex, while {1} refers to the first group and so on. If no {n} tokens are found in issue.link, the entire matched string is appended instead.Defines the regex to match when picking up issue numbers.DeleteDelete %d file in .hg/TrashcanDelete %d files in .hg/TrashcanDelete %d ignored fileDelete %d ignored filesDelete %d unknown fileDelete %d unknown filesDelete %s from your repo configuration file?Delete Group '%s' and all its entries?Delete Patch QueueDelete PatchesDelete ToolDelete empty foldersDelete from listDelete hookDelete patches...Delete reference toDelete selected chunksDelete selected chunks from shelf file %s?Delete selected chunks from working copy?Delete selected patchesDelete selected query from historyDelete shelf file %s?Delete the current shelf fileDelete the following unversioned files?Deleted %d filesDeleted %d files and %d foldersDeleted*Deleting trash folder...Deletion failuresDeny PushDescriptionDestDestination file already exists.Destination path:Destination:Detect Copies/Renames in %sDetect outgoing changesDetect outgoing changes to %sDetect outgoing changes to selected URLDetect renames and copiesDetected merge/diff tools:Detected uncommitted local changes in working tree. Please select to continue: Detected uncommitted local changes.Determines if TortoiseHg should show a confirmation dialog before adding new files in a commit. If True, a confirmation dialog will be shown. If False, selected new files will be included in the commit with no confirmation dialog. Default: TrueDetermines if TortoiseHg should show a confirmation dialog before pushing changesets. If False, push will be performed without any confirmation dialog. Default: TrueDetermines if TortoiseHg should show a confirmation dialog before removing files in a commit. If True, a confirmation dialog will be shown. If False, selected deleted files will be included in the commit with no confirmation dialog. Default: TrueDetermines when the issue tracker state will be updated by TortoiseHg. Valid settings values are:

                                                                                                              • never: Do not update the Issue Tracker state automatically.
                                                                                                              • commit: Update the Issue Tracker state after a successful commit.

                                                                                                              Default: neverDetermining outgoing changesets to email...Diff &Changeset to ParentDiff &LocalDiff &Local to AncestorDiff Changeset to Loc&alDiff File toDiff FontDiff Selected &ChangesetsDiff ToolbarDiff and AnnotateDiff contentsDiff not displayed: Diff to &LocalDiff to parentDir diff to p1Dir diff to p2Directory diffDirectory of filesDiscard - discard local changes, no backupDiscard all changes from the other revisionDiscard current backout message?Discard current commit message?Discard local changes (revert --all)Discard local changes, no backup (-C/--clean)Discard local changes, no backup (-f/--force)Discard outstanding changes to working directory?Discard remote changes, no backup (-C/--clean)Display closed branchesDisplay graph the named branch onlyDisplay only active branchesDisplay the file anywayDisplaying %(count)d of %(total)d itemsDnD SynchronizeDo not include modification dates in diff headers. Default: FalseDo not modify working copy (-k/--keep)Do not modify working copy during strip (-k/--keep)Do not save backup files (*.orig)Do not show menu items on unversioned folders (use shift + click to override)Do not strip paths (-p0), required for SVN patchesDo not update the new working directoryDo not verify host certificateDo you really want to force a backwards phase transition?Do you really want to activate patch queue '%s' ?Do you really want to deactivate the %s bookmark?Do you really want to make this revision secret?Do you really want to remove the repository "%s" from its parent repository "%s"Do you want to exit?Do you want to keep them or discard them?Drag to change orderDuplicate NameE&ncodingE&xitE&xploreE&xplore FolderE&xplore LocalE&xplorer HelpE&xportE&xport Patch...EOL &ModeEOL &VisibilityEditEdit FileEdit Ignore FilterEdit LocalEdit Path to ServeEdit Re&jectsEdit Tool ...Edit current file in working copyEdit fileEdit hookEdit patch dependency graphEdit patched file and rejects?Edit repository ignore filterEdit resolved fileEditor launch failureEmailEmail DAG Range...Email Selected...Email address to use in the "From" header and for the SMTP envelopeEmail outgoing changesets for remote repositoryEmit debugging output (--debug)Enabled Overlay HandlersEnabled overlaysEncodingEnglish MessagesEnter line number (1 - %d)Enter revision identifierErrorError encountered.Error executing "commit finished" triggerError getting commit message information from Issue Tracker pluginError loading subreposError previewing subrepo: %sError string "%(arg0)s" at %(arg1)s
                                                                                                              Please edit your configError writing fileExcel files (*.xls *.xlsx)ExcludeExcludes:Execute custom tool '%s'ExitExit without finishing resolve?Exiting with an unfinished graft is not recommended.Exiting with an unfinished rebase is not recommended.Explorer Extension SettingsExplorer Extension Settings - TortoiseHgExport DAG Range...Export Diff...Export Selected...Export patchExtExtensionsFailed to add repositoryFailed to add subrepositoryFailed to execute custom TortoiseHg commandFailed to execute custom commandFailed to load issue tracker '%s': %sFailed to load issue tracker: '%s': %s. Failed to open path in terminalFailed to open repositoryFailed to process largefiles.patterns.Failed to refreshFailed!Fetch - use fetch (auto merge pulled changes)Fetch - use fetch extension (fetch is not active!)Fetch the reviewer list from the serverFields to match:FileFile &History / AnnotateFile Differences Log ColumnsFile HistoryFile History Log ColumnsFile List ToolbarFile StatusFile Status:File already existsFile conflicts need to be resolvedFile context menu (on manifest and revision details)File is binaryFile is larger than the specified max size. maxdiff = %s KBFile may be binary (maximum line length exceeded)File or diffs not displayed: File or diffs not displayed: File is larger than the specified max size. maxdiff = %s KBFile pattern setsFile was not within current repositoryFilenameFilesFiles of at least the specified size (in megabytes) will be added as bfilesFiles of at least the specified size (in megabytes) will be added as largefilesFiles with names meeting the specified patterns will be automatically added as bfilesFiles with names meeting the specified patterns will be automatically added as largefilesFilter Histor&yFilter b&yFilter graph with revision sets or branchesFilter the available reviewersFilter:Find RenamesFind copy and/or rename sourcesFind matches - %sFind revisions matching fields of:Find revisions that "match" one or more fields of the given set of revisions.Finding outgoing changesets to %s...FinishedFirst n members of a set.First parent for all changesets in set, or the working directory.Fixed revisionsFlag:Fold patches...Follow copies and renamesFont used to display changelog data. Default: monospace 10Font used to display commit messages. Default: monospace 10Font used to display output messages. Default: sans 8Font used to display text differences. Default: monospace 10FontsFor which kinds of revisions the tool will be enabled It is only taken into account when the tool is shown on the selected revision context menu.Force Repo TabForce a merge with outstanding changes (-f/--force)Force push or pop (--force)Force push or pull (override safety checks, --force)Force push to remote location (-f/--force)Force removal of modified files (--force)ForgetForget Files...Fork GUIForwardFound %d incoming changesetsFound incoming changesets from %sFromFrom:Full AuthornameFull Path TitleGPG key ID associated with user. Default: None (leave blank)Generate English commit messages even if LANGUAGE or LANG environment variables are set to a non-English language. This setting is used by the Merge, Tag and Backout dialogs. Default: FalseGetting incoming changesets from %s...Git Commit:Git FormatGit patches can describe binary files, copies, and permission changes, but recipients may not be able to use them if they are not using git or Mercurial.GlobGlobal SettingsGnuPGGo &to PatchGo toGo to LineGo to a specific revisionGo to current revisionGoto ancestor of %s and %sGoto common ancestorGoto revisionGraftGraft - %sGraft Selected to local...Graft abortedGraft changesetGraft changeset #%d of %dGraft failedGraft generated merge conflicts that must be resolvedGraft is completeGraft:GraphGraphical merge program for resolving merge conflicts. If left unspecified, Mercurial will use the first applicable tool it finds on your system or use its internal merge tool that leaves conflict markers in place. Choose internal:merge to force conflict markers, internal:prompt to always select local or other, or internal:dump to leave files in the working directory for manual mergingGreatest common ancestor of the two changesets.GreekGuards: %d/%dGuess RenamesGzip tar archivesHTTP Error: %d (%s)Head is closed!HebrewHg command:Hg file log viewer [%s] - %sHg patches (as generated by export command) are compatible with most patch programs. They include a header which contains the most important changeset metadata.Hide DetailHide TagsHide context menu outside repositoriesHighlight IconHook typeHooksHostHost name and (optional) port of proxy server, for example "myproxy:8000"Host name of mail serverHostname the sender can use to identify itself to the mail server.How many lines a "zebra stripe" should span in multiline output. Default is 1; set to 0 to disable.IconIconsIf no username has been specified, the user will be prompted to enter a username. Default: FalseIf specified, files in the directory, e.g. .hgignore, are copied to the newly-created repository.If specified, the destination field in the clone widget will be pre-filled with this path. Otherwise, it will be pre-filled with the current working directory.If true, concatenate multiple lines of changeset summary and truncate them at 80 characters as necessary. Default: FalseIf you still have trouble, please file a bug report.Ignore Ignore Blank LinesIgnore WS AmountIgnore White SpaceIgnore caseIgnore changes in the amount of white space in diff views. Default: FalseIgnore changes in the amount of white space in the annotate view. Default: FalseIgnore changes whose lines are all blank in diff views. Default: FalseIgnore changes whose lines are all blank in the annotate view. Default: FalseIgnore filter - %sIgnore white space when comparing lines in diff views. Default: FalseIgnore white space when comparing lines in the annotate view. Default: FalseIgnored*Immediate OperationsImport - %sImport from ClipboardImport to &MQIn &Current RevisionIn &Original RevisionIn All &HistoryIn Current &FileIn-Reply-To:IncludeInclude all ancestorsInclude patch queueIncludes:Incoming BookmarksIncoming from %s aborted, ret %dIndicates whether TortoiseHg should attempt to automatically resolve changes from both sides to the same file, and only report merge conflicts when this is not possible. When False, all files with changes on both sides of the merge will report as conflicting, even if the edits are to different parts of the file. In either case, when conflicts occur, the user will be invited to review and resolve changes manually. Default: True.Iniparse must be installed.Iniparse package not foundInitial revisionInline TagsInput new guards for %s:Insufficient access rights, reverting to read-only mode.Insufficient access rights.InterruptedInterrupted graft operation foundInvalid PatternsInvalid Settings - Please provide your ReviewBoard usernameInvalid Settings - The ReviewBoard server is not setupInvalid commandInvalid configuration: %sInvalid date formatInvalid default push revision: %s. Please check your Mercurial configuration (tortoisehg.defaultpush)Invalid glob expressionInvalid regexp expressionInvalid reviewboard plugin. Please download the Mercurial reviewboard plugin version 3.5 or higher from the website below. %sIssue LinkIssue RegexIssue TrackerIssue Tracker PluginIssue Tracker Plugin ErrorIssue Tracker TriggerIssue TrackingIt was not possible to fully load the subrepository list for the repository in:

                                                                                                              %s

                                                                                                              The following subrepositories may be missing, broken or on an inconsistent state and cannot be accessed:

                                                                                                              %sIt was not possible to get the subrepository list for the repository in:

                                                                                                              %sItalicJapaneseKeep original branch names (--keepbranches)Keep original changesets (--keep)Keep patch filesKey IDKey:Keyword SearchKiln BfilesKnown bad revision:Known good revision:KoreanLargefilesLeft ToolbarLet the user update the projrc on incoming:

                                                                                                              • never: [default] Show whether the remote projrc file has changed, but do not update (nor ask to update) the local projrc file.
                                                                                                              • prompt: Look for changes to the projrc file. If there are changes _always_ show a confirmation prompt, asking the user if it wants to update its local projrc file.
                                                                                                              • auto: Look for changes to the projrc file. Use the value of the "projrc.confirm" configuration key to determine whether to show a confirmation dialog or not before updating the local projrc file.

                                                                                                              Default: neverLicenseLike "keyword(string)" but accepts a regex.LineList Optio&nsList of Servers from which "projrc" configuration files must be pulled. Set it to "*" to pull from all servers. Set it to "default" to pull from the default sync path. Default is pull from NO servers.List of all toolsList of settings that will NOT be pulled from the project configuration file. Default is exclude none of the included settings.List of settings that will be pulled from the project configuration file. Default is include NO settings.List updated files (--verbose)Load &All RevisionsLoad all revisions into graphLoading repository %sLocal HostnameLocal PathLocal Path:Local Repository %sLocal disks onlyLocal revision informationLocal signLocal tagLocation of local clone of organizational lock repository.

                                                                                                              This repository must contain a "locked" text fileLocation:Lock CloneLock a file not described in .hglocksLock of %s failed, retryLock of %s successfulLock or unlock filesLocked And Lockable Files:Locked*Locking %sLocking UserLogLog Batch SizeLong SummaryMMQ &OptionsMQ Git FormatMQ QPushPushMQ QPushPush allMQ optionsMa&nifest ModeMake MQ patches secret (instead of draft). Default: FalseMake repo compatible with Mercurial <1.7Making a "draft" revision "secret" is generally a safe operation. However, there are a few caveats: - "secret" revisions are not pushed. This can cause you trouble if you refer to a secret subrepo revision. - If you pulled this revision from a non publishing server it may be moved back to "draft" if you pull again from that particular server. Please be careful!Manage HTTPS connection security and user authenticationManage pending perforce changelistsMandatory Issue ReferenceManually resolve rejected chunks?Manually resolve rejected patch chunksMark as &UnresolvedMark this chunk as resolved, goto next unresolvedMark this chunk as unresolvedMark this file as resolvedMark this file as unresolvedMatch TextMatch any of %d revisionsMatch whole words onlyMax ChangesMax Diff SizeMax FilesMaximum number of changes to list on the changelog. Default: 10Maximum number of files to list per changeset. Default: 10Members of a set with no children in set.Menu BehaviorMercurial Re&solveMercurial UserMercurial command is still running. Are you sure you want to terminate?Mercurial keyring extension is enabled. Passwords will be stored in a platform-native secure method.Mercurial was unable to find an editor. Please configure Mercurial to use an editor installed on your system.MergeMerge - %sMerge - allow to merge with local changesMerge all pending dependenciesMerge caused file conflictsMerge changesetMerge from (other revision)Merge rejected patch chunks into %sMerge revision not specified or not foundMerge to (working directory)Merge using selected merge toolMerge with %sMerge with the other head of the current branchMerging...MessageMessage FontMessage Translation FailureMessage identifier to reply to, for threadingMethod to enable TLS when connecting to mail server. Default: noneMin Similarity: %d%%Minimum ProtocolMinimum SizeMissing informationModi&fy HistoryMonitor Repo ChangesMonitor working
                                                                                                              directory changesMoveMove all files leftMove all files rightMove applied patches into repository historyMove changes between working dir and patchMove selected chunks leftMove selected chunks rightMove selected file leftMove selected file rightMoved tag %s to changeset %s (from changeset %s)Multiple selection context menuMultiple sources chosenNameName associated with commits. The common format is:
                                                                                                              Full Name <email@example.com>Name or email address of the person in charge of the repository.Named branch "%s" already exists, last used in revision %d New &GroupNew &WorkbenchNew Branch: New Commit PhaseNew GroupNew Name:New Patch BranchNew Repo SkeletonNew RepositoryNew ShelfNew Tool ...New file createdNew hookNew patch message:New patch queue nameNew shelf createdNextNext DiffNext diffNo DatesNo appropriate filesNo backup (-n/--nobackup)No branch changesNo chunks remainNo commitNo deletable chunksNo diff tool foundNo editor foundNo file changesNo files checkedNo files found for this operationNo files selectedNo files to findNo host specifiedNo host validation, but still encrypted (bad)No ignored files foundNo incoming changesets from %sNo issue link was found in the commit message. The commit message should contain an issue link. Configure this in the 'Issue Tracking' section of the settings.No items to displayNo matches foundNo merge conflicts, ready to commitNo merge conflicts, ready to commit or reviewNo modified files checkmarked for commitNo operation to performNo outgoing changesetsNo outgoing changesets to %sNo patch branch selectedNo pending Perforce changelistsNo remote repository URL or path setNo repository foundNo revision foundNo shell configuredNo transaction availableNo trash files foundNo unknown files foundNo username configuredNo valid default remote repository URL or path has been configured for this repository.

                                                                                                              Please type and save a remote repository path on the Sync widget.No visual diff tools were detectedNo visual editor configuredNone - simply pull changesetsNordicNormalize file line endings during and after patch to lf or crlf. Strict does no normalization. Auto does per-file detection, and is the recommended setting. Default: strictNot a Mercurial subrepo, not previewableNot a head revision!Not a head, backout will create a new head!Nothing CommittedNothing changed.Nothing to importNothing to pushOKObsolete state:On repowidget, show forOne or more of the changesets that you are attempting to push involve the creation of a new branch. Do you want to create a new branch in the remote repository?Only consider deleted filesOnly files modified/created in this revisionOnly files modified/created since:Onto destinationOpenOpen &TerminalOpen S&ubrepositoryOpen a (nonmergable) file you wish to be lockedOpen a new named branchOpen a shell terminal in the repository rootOpen a shell terminal in the selected folderOpen advanced query editorOpen all repositories in new tabsOpen hgweb configOpen new tabs next to the current tabOpen parent folder of current file in the system file managerOpen shelve toolOpen the repository in a file browserOpen the repository in a new tabOpen the selected folder in the system file managerOpen the selected subrepositoryOperation aborted:

                                                                                                              %(arg0)s.Operation which is performed directly after a successful pull. update equates to pull --update, fetch equates to the fetch extension, rebase equates to pull --rebase, updateorrebase equates to pull -u --rebase. Default: noneOptional. Comma-separated list of host names that should bypass the proxyOptional. Method to use to send email messages. If value is "smtp" (default), use SMTP (configured below). Otherwise, use as name of program to run that acts like sendmail (takes "-f" option for sender, list of recipients on command line, message on stdin). Normally, setting this to "sendmail" or "/usr/sbin/sendmail" is enough to use sendmail to send messages.Optional. PEM encoded client certificate chain file. Environment variables are expanded in the filename.Optional. PEM encoded client certificate key file. Environment variables are expanded in the filename.Optional. Password to authenticate with at the proxy serverOptional. Password to authenticate with. If not given, and the remote site requires basic or digest authentication, the user will be prompted for it.Optional. User name to authenticate with at the proxy serverOptional. Username to authenticate with. If not given, and the remote site requires basic or digest authentication, the user will be prompted for it. Environment variables are expanded in the username letting you do foo.username = $USER.OptionsOptions:Or use:Order the subrepos as in .hgsubOriginal Parent:Other revision informationOutgoing BookmarksOutgoing aborted, ret %dOutgoing to %s aborted, ret %dOutput FontOverlaysP&ull BookmarkP&ushPDF docs (*.pdf)PEM files (*.pem *.crt *.cer)PEM files (*.pem *.key)Pair selection context menuParent 1:Parent 2:Parent:ParentsPasswordPassword to authenticate to mail server withPassword to authenticate with review boardPassword:Paste &FilenamesPatch Branch ToolbarPatch EOLPatch Files (*.patch)Patch Name RequiredPatch QueuePatch Queue Actions ToolbarPatch date:Patch exportedPatch failed to applyPatch files (*.diff *.patch)Patch files already existPatch fold - %sPatch message:Patch name:Patch series description is sent in initial summary email with [PATCH 0 of N] subject. It should describe the effects of the entire patch series. When emailing a bundle, these fields make up the message subject and body. Flags is a comma separated list of tags which are inserted into the message subject prefix.Patch user:Patch:Patch: %sPatches exportedPatches to foldPathPath Edit ToolbarPath to review board example "http://demo.reviewboard.org"Path to the directory where a system-wide cache of bfiles will be storedPath to the directory where a user's cache of largefiles will be storedPath:Paths in Repository Settings:PatternsPending Perforce Changelists - %sPerforce pending...Perforce:Perform a push before updating (-p/--push)PhabricatorPhasePlace Console in Doc&k AreaPlain, do not prepend Hg headerPlease configure a visual editor.Please enable and configure simplelockPlease enable the Gpg extension first.Please enable the Topic extension first.Please enter a usernamePlease enter commit messagePlease report this bug to our bug trackerPlease select a revision to merge.Please set a valid URL to continue.Please wait while committing merged files.Please wait while making backout.Please wait while the file is opened ...Please wait...PopPop allPortPort to connect to on mail server. Default: 25Port to listen onPort:Post &ReviewPost Pull BehaviorPost Pull: Post ReviewPost Selected to Phabricator...Post Selected to Review Board...Post to Phabricator...Post to Re&view Board...Posting ReviewPredecessors:Prepare to backoutPrepare to mergePreserve files beginning with .hgPrevPreviewPreview:Previous DiffPrevious diffPreviously the subrepository was at the following revision:ProjrcProxyPrune - %sPublish request immediatelyPullPull from %s aborted, ret %dPull from %s completedPull incoming changesPull incoming changes from %sPull incoming changes from selected URLPull incoming changesets into your repositoryPull subrepos from:Pull to here...Pulled remote bookmark: %sPulling from %s...PurgePurge Patch QueuePurposePus&hPush &AllPush After CommitPush After Commit:Push Requires SSLPush Selected &BranchPush allPush current branch (%s)Push outgoing changesPush outgoing changes to %sPush outgoing changes to selected URLPush to %s abortedPush to %s aborted, ret %dPush to %s completedPush to &HerePush to remote repository %s ?Push up to current revision (#%d)Push up to revision #%dPushed local bookmark: %sPushing to %s...QNewQRefreshQueryQuery about changesets affecting the selected filesQuitR&emove BookmarkR&epository Registry OptionsR&ollback/Undo...README not configuredRe&coverRe&move VersionedRe&move from RegistryRe&nameRe&name Patch...Re&name...Readonly*ReadyReady to purge.Ready, double click to lock or unlockRebaseRebase - %sRebase - rebase local commits above pulled changesRebase - use rebase extension (rebase is not active!)Rebase abortedRebase already in progressRebase changeset and descendantsRebase entire source branch (-b/--base)Rebase failedRebase generated merge conflicts that must be resolvedRebase is completeRebase unpublished onto Subversion head (override source, destination)Rebase...Recurse into subrepositoriesRecurse into subrepositories (--subrepos)Redundant authentication infoRefreshRefresh &Task TabRefresh ToolbarRefresh current patchRefresh current repositoryRefresh file listRefresh lock informationRefresh only the current task tabRefresh the Repository Registry listRefreshing locks...RegexpRegexp:Regular expression search patternReject incoming changesetsRelated Paths:ReloadReload FileRemo&ve Subrepository...Remote Update - %sRemote command:RemoveRemove &All Selected FilesRemove &Unmodified FilesRemove Files...Remove authentication data from URLRemove current working revision?Remove files from version controlRemove filter, show rootRemove patch directory ofRemove patches from queue?Remove selected deleted files?Remove the node and all its subnodes. Repositories are not deleted from disk.Remove the selected repository?Remove the selected reviewersRemove this subrepository from the current revisionRemoved local bookmark: %sRemoved remote bookmark: %sRemoved tag %sRenameRename - %sRename ErrorRename FileRename PatchRename Patch QueueRename file or directoryRename patch %s to:Rename patch queue '%s' toRename patch...Rename the entryReopen last closed tabReopen last closed tab groupReplaceReplace existing hook?Replace existing tag (-f/--force)Replace the existing patch files. Report only the first match per fileRepositoriesRepositoryRepository ErrorRepository ID:Repository RegistryRepository Registry updatedRepository SettingsRepository command still runningRepository is lockedRepository name to use in the web interface, and by TortoiseHg as a shorthand name. Default is the working directory.Repository not localRepository status & changesRequire confirmationRescanResolve Conflicts - %sResolved conflictsRestart &BranchRestart Mer&geRestart Merge &withRestart all TortoiseHg applications for the following changes to take effect:Resuming rebase already in progressRevRevertRevert &All Files...Revert - %sRevert Files...Revert all file changes?Revert all files to this revisionRevert all working copy changes?Revert file changesRevert file(s) to contents at this revisionRevert files to local or other parent?Revert local file changes?Revert the following files?Revert to RevisionReverting all files will discard changes and leave affected files in a modified state.

                                                                                                              Are you sure you want to use revert?

                                                                                                              (use update to checkout another revision)Reverting p4 changelist...Review BoardReview ID:Review draft posted to %s Review published to %s Reviewer FilterReviewersReviewers available on the serverRevisionRevision #%d (%s) was exported to:

                                                                                                              %s%s%sRevision &DetailsRevision SetRevision Set QueryRevision details context menuRevision has changed to:Revision is &BadRevision is &GoodRevision to Match:Revision:Revisions to Match:Right ToolbarRollback commit to revision %dRollback to revision %d (undo %s)?Run after a changegroup has been added via push, pull or unbundle, but before the transaction has been committed. Changegroup is visible to hook program. This lets you validate incoming changes before accepting them. Passed the ID of the first new changeset in $HG_NODE and last in $HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-zero status will cause the transaction to be rolled back and the push, pull or unbundle will fail. URL that was source of changes is in $HG_URL.Run after a changegroup has been added via push, pull or unbundle. ID of the first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL.Run after a changeset has been created but the transaction not yet committed. Changeset is visible to hook program. This lets you validate commit message and changes. Exit status 0 allows the commit to proceed. Non-zero status will cause the transaction to be rolled back. ID of changeset is in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and $HG_PARENT2.Run after a changeset has been created in the local repository. ID of the newly created changeset is in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and $HG_PARENT2.Run after a changeset has been pulled, pushed, or unbundled into the local repository. The ID of the newly arrived changeset is in $HG_NODE. URL that was source of changes came is in $HG_URL.Run after a pushkey (like a bookmark) is added to the repository. The key namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) is in $HG_OLD, and the new value is in $HG_NEW.Run after a tag is created. ID of tagged changeset is in $HG_NODE. Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in repository if $HG_LOCAL=0.Run after listing pushkeys (like bookmarks) in the repository. The key namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary containing the keys and values.Run after sending changes from local repository to another. ID of first changeset sent is in $HG_NODE. Source of operation is in $HG_SOURCE.Run after updating the working directory. Changeset ID of first new parent is in $HG_PARENT1. If merge, ID of second new parent is in $HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the update failed (e.g. because conflicts not resolved), $HG_ERROR=1.Run before a changegroup is added via push, pull or unbundle. Exit status 0 allows the changegroup to proceed. Non-zero status will cause the push, pull or unbundle to fail. URL from which changes will come is in $HG_URL.Run before a pushkey (like a bookmark) is added to the repository. Non-zero status will cause the key to be rejected. The key namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) is in $HG_OLD, and the new value is in $HG_NEW.Run before collecting changes to send from the local repository to another. Non-zero status will cause failure. This lets you prevent pull over HTTP or SSH. Also prevents against local pull, push (outbound) or bundle commands, but not effective, since you can just copy files instead then. Source of operation is in $HG_SOURCE. If "serve", operation is happening on behalf of remote SSH or HTTP repository. If "push", "pull" or "bundle", operation is happening on behalf of repository on same system.Run before creating a tag. Exit status 0 allows the tag to be created. Non-zero status will cause the tag to fail. ID of changeset to tag is in $HG_NODE. Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in repository if $HG_LOCAL=0.Run before listing pushkeys (like bookmarks) in the repository. Non-zero status will cause failure. The key namespace is in $HG_NAMESPACE.Run before starting a local commit. Exit status 0 allows the commit to proceed. Non-zero status will cause the commit to fail. Parent changeset IDs are in $HG_PARENT1 and $HG_PARENT2.Run before updating the working directory. Exit status 0 allows the update to proceed. Non-zero status will prevent the update. Changeset ID of first new parent is in $HG_PARENT1. If merge, ID of second new parent is in $HG_PARENT2.Running at %sRunning...RussianS&tatus BarS&ync ToolbarS&ynchronizeSMTP HostSMTP PasswordSMTP PortSMTP TLSSMTP UsernameSSH CommandSSL error: %sSSL: Server certificate verify failedSSL: unknown error %s:%sSa&ve Current Sync Paths on ExitSaveSave GlobalSave Open Repositories on E&xitSave PathSave changes before editing?Save current URL under an aliasSave error report toSave file as it appeared at this revisionSave file toSave hgweb configSave in RepoScan &Remote RepositoriesSearchSearch HistorySearch Selected TextSearch already in progressSearch commit message, user name, and names of changed files for string.Search file revisions for patternsSearch in All &HistorySearchingSearching...Second parent for all changesets in set, or the working directory.Secret MQ PatchesSecure HTTPS ConnectionSecuritySecurity: Select &AllSelect &NoneSelect Destination FileSelect Destination FolderSelect Directory containing patchesSelect RepositorySelect Source FileSelect Source FolderSelect Tool:Select User Certificate Chain FileSelect User Certificate Key FileSelect a GUI location to edit:Select an existing repository to add as a subrepoSelect branch of merge commitSelect bundle fileSelect destination repositorySelect if TortoiseHg will show a target combo in the sync toolbar.

                                                                                                              • auto: The default. Show the combo if more than one target configured.
                                                                                                              • always: Always show the combo.

                                                                                                              Default: autoSelect patch folderSelect patchesSelect post-pull operation for this repositorySelect repositorySelect repository directory to addSelect repository directory to openSelect source repositorySelect the initial revision that will be selected when opening a repository. You can select the "current" (i.e. the working directory parent), the current "tip" or the working directory ("workingdir"). Default: currentSelect the initial widget that will be shown when opening a repository. Default: revdetailsSelect the revisions that will be pushed by default, whenever you click the Push button.

                                                                                                              • all: The default. Push all changes in all branches.
                                                                                                              • branch: Push all changes in the current branch.
                                                                                                              • revision: Push the changes in the current branch up to the current revision.

                                                                                                              Default: allSelect the toolbar or menu to changeSelect when TortoiseHg will show a prompt to activate a bookmark when updating to a revision that has one or more bookmarks.

                                                                                                              • auto: Try to automatically activate bookmarks. When updating to a revision that has a single bookmark it will be activated automatically. Show a prompt if there is more than one bookmark on the revision that is being updated to.
                                                                                                              • prompt: The default. Show a prompt when updating to a revision that has one or more bookmarks.
                                                                                                              • never: Never show any prompt to activate any bookmarks.

                                                                                                              Default: promptSelect when the working directory status list will be refreshed:
                                                                                                              - auto: [default] let TortoiseHg decide when to refresh the working directory status list.
                                                                                                              TortoiseHg will refresh the status list whenever it performs an action that may potentially modify the working directory. This may miss any changes that happen outside of TortoiseHg's control;
                                                                                                              - always: in addition to the automatic updates above, also refresh the status list whenever the user clicks on the "working dir revision" or on the "Commit icon" on the workbench task bar;
                                                                                                              - alwayslocal: same as "always" but restricts forced refreshes to local repos.
                                                                                                              Default: autoSelect when your command will be runSelect whether you want to have a single workbench window. If you disable this setting you will get a new workbench window everytime that you use the "Hg Workbench" command on the explorer context menu. Default: TrueSelectedSelected changeset pair not relatedSend &EmailSend changesets as Hg patchesSend single binary bundle, not patchesSending EmailServerServer Repository IDServersSet &Guards...Set AncestrySet Date:Set LogicSet username:Settin&gsSettingsSettings File:Several characters would be lost.Several icons are courtesy of the TortoiseSVN and Tango projectsSh&ow Repository RegistryShelfShelf clearedShelf deletedShelf: %sShellShelve - move local changes to a patchShelve ChangesShould new tabs be open next to the current tab? If False new tabs will be open after the last tab. Default: TrueShow &AuthorShow &DateShow &Patch QueueShow &PathsShow &RevisionShow About DialogShow Conso&leShow DetailShow Family LineShow FunctionShow IconShow IssuesShow Issues...Show LogShow Output LogShow Revision &DetailsShow S&hort PathsShow Tas&k TabShow a full directory path of the repository in the dialog title instead of just the root directory name. Default: FalseShow allShow all version-controlled files in tree viewShow changes from first parentShow changes from second parentShow files changed by this commitShow full authorname in Logview. If not enabled, only a short part, usually name without email is shown. Default: FalseShow indirect revision dependency on the revision graph when filtered by revset. Default: True

                                                                                                              Note: Calculating family line may be slow in some cases. This option is expected to be removed if the performance issue is solved.Show tabs along the side of the bottom half of each repo widget allowing one to switch task tabs without using the toolbar. Default: offShow tags at start of commit message.Show the history of the selected fileShow which function each change is in. Default: FalseShow/Hide hidden changesetsSig&n...Sign - %sSign even if the sigfile is modified (-f/--force)Signature has been addedSimplelockSimplelock extension not enabledSingle Workbench WindowSizeSize (KB)Skip final confirmation page, close after commit.Skipping %s, unable to readSome of the files that you have selected are of a size over 10 MB. You may make more efficient use of disk space by adding these files as largefiles, which will store only the most recent revision of each file in your local repository, with older revisions available on the server. Do you wish to add these files as largefiles?Sort by &NameSort by &PathSort set by keys. The default sort order is ascending, specify a key as "-key" to sort in descending order.Sort the group by full pathSort the group by short nameSourceSource does not exist.Source:South-Eastern EuropeSouthern EuropeSpace separated list of branch names and colors of the form branch:#XXXXXX. Spaces and colons in the branch name must be escaped using a backslash (\). Likewise some other characters can be escaped in this way, e.g. \u0040 will be decoded to the @ character, and \n to a linefeed. Default: None (leave blank)Space separated list of shell operations you would like to be performed immediately, without user interaction. Commands are "add remove revert forget". Default: None (leave blank)Space separated list of tags that will not be shown. Useful example: Specify "qbase qparent qtip" to hide the standard tags inserted by the Mercurial Queues Extension. Default: None (leave blank)Specify name of new shelfSpecify the command to launch your preferred terminal shell application. If the value includes the string %(reponame)s, the name of the repository will be substituted in place of %(reponame)s. Similarly, %(root)s will be the full path to the repository. (restart needed)
                                                                                                              Default, Windows: cmd.exe /K title %(reponame)s
                                                                                                              Default, OS X: not set
                                                                                                              Default, other: xterm -T "%(reponame)s"Specify the number of spaces that tabs expand to in various TortoiseHg windows. Default: 8Specify the path to GPG. Default: gpgSpecify the target filesystem where TortoiseHg monitors changes. Default: localonlySpecify visual diff tool, as described in the [merge-tools] section of your Mercurial configuration files. If left unspecified, TortoiseHg will use the selected merge tool. Failing that it uses the first applicable tool it finds.Specify visual editor, as described in the [editor-tools] section of your Mercurial configuration files. If left unspecified, TortoiseHg will use the first applicable tool it finds.Specify which task buttons you want to show on the task toolbar and in which order.
                                                                                                              Type a list of the task button names. Add separators by putting "|" between task button names.
                                                                                                              Valid names are: log commit sync grep and pbranch.
                                                                                                              Default: log commit grep pbranch | syncSpecify your preferred user interface language (restart needed)StartStart a new patch branchStart revision:Start web server for this repositoryStatStatusStatus File List ToolbarStatus:StopStop current operationStoppedStrikeStrip - %sStrip:StripesStripping Mercurial header removes username and parent information. Only useful if recipient is not using Mercurial (and does not like to see the headers).StyleSub menu items:Subject:Submitting p4 changelist...Subrepo '%s' has a non trivial default sync URL:

                                                                                                              %s

                                                                                                              Replace it with the following URL?:

                                                                                                              %sSubrepo added to .hgsub fileSubrepo created and set to initial revision.Subrepo initialized to revision:Subrepo may be damaged or inaccessible.Subrepo removed from repository.Subrepo state is:Subrepo statesSubrepo was not changed.Subrepository already existsSubrepository not foundSubrepository not found in the working directory.Subrepository removed from .hgsubSubversion:SuccessSuccessors:Suggested length of commit message lines. A red vertical line will mark this length. CTRL-E will reflow the current paragraph to the specified line length. Default: 80Summary (first description line)Summary Line LengthSummary:Swap source and destinationSyncSync BookmarksSynchronizeSynchronize with dragged repositorySynchronize with remote repositorySyntax HighlightingSystem CacheTLS 1.0TLS 1.1TLS 1.2Tab WidthTab cannot exitTag '%s' has been addedTag '%s' has been movedTag '%s' has been removedTag - %sTag:Tagged:Tags:Take &OtherTar archive compressed using bzip2Tar archive compressed using gzipTar archivesTarget ComboTarget GroupsTarget PeopleTarget:Task TabsTask Toolbar OrderTaskbarTemporarily disable configured HTTP proxyTemporary files are removed when this dialog is closedTerminated by userTest this revision and report findings. (good/bad/skip)Text Translation FailureText files (*.txt)Textual description of the repository's purpose or contents.ThaiThe .hgsub file already contains the line:

                                                                                                              %sThe changes from revision %s and all unmerged parents will be discarded. Are you sure this is what you want to do?The command "%s" could not be executed.The command "%s" failed (code %d).The command that will be executed. To execute a Mercurial command use "hg" (rather than "hg.exe") as the executable command. You can use several {VARIABLES} to compose your command. Common variables: - {ROOT}: The path to the current repository root. - {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id hashes respectively formatted as a revset expression. - {SELECTEDFILES}: The list of files selected by the user on the revision details file list. - {FILES}: The list of files touched by the selected revisions. - {ALLFILES}: All the files tracked by Mercurial on the selected revisions. Pair selection variables: - {REV_A} / {REVID_A}: the first selected revision number / hexadecimal revision id hash respectively. - {REV_B} / {REVID_B}: the second selected revision number / hexadecimal revision id hash respectively. The command that will be executed. To execute a python function prepend the command with "python:". The default repository id for this repo on the review board serverThe destination "%s" already exists as a file!The destination "%s" already exists as a folder!The destination must be within the repository tree.The directory "%s" is not empty! Do you want to overwrite it?The directory where the command will be executed. If this is not set, the root of the current repository will be used instead. You can use the same {VARIABLES} as on the "Command" setting. The editor used by Mercurial command line commands to collect multiline input from the user. Most notably, commit messages.The exception error message was:

                                                                                                              %s

                                                                                                              The file "%s" already exists! Do you want to overwrite it?The following error message was returned: "%s" Please check that the command path is valid and that it is a valid applicationThe following error message was returned: %sThe hook name cannot contain any spaces, tabs or '=' characters.The hook name. It cannot contain spaces.The maximum size file (in KB) that TortoiseHg will show changes for in the changelog, status, and commit windows. A value of zero implies no limit. Default: 1024 (1MB)The named bookmark or all bookmarks.The named tag or all tags.The number of revisions to read and display in the changelog viewer in a single batch. Default: 500The phase of new commits. Default: draftThe selected command is emptyThe selected folder:

                                                                                                              %s

                                                                                                              is not inside the target repository.

                                                                                                              This may be allowed but is greatly discouraged.
                                                                                                              If you want to add a non trivial subrepository mapping you must manually edit the .hgsub fileThe selected repository:

                                                                                                              %s

                                                                                                              cannot be open!The selected repository:

                                                                                                              %s

                                                                                                              is already a subrepository of:

                                                                                                              %s

                                                                                                              as: "%s"The selected revision (%s) has a bookmark on it called "%s".

                                                                                                              Do you want to activate it?
                                                                                                              You can disable this prompt by configuring Settings/Workbench/Activate BookmarksThe selected revision (%s) has %d bookmarks on it.

                                                                                                              Select the bookmark that you want to activate and click OK.

                                                                                                              Click Cancel if you don't want to activate any of them.

                                                                                                              You can disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                                                                              The selected revision (rev #%d) cannot be imported because it is not a descendant of qparent (rev #%d)The selected subrepo:

                                                                                                              %s

                                                                                                              has been added to the .hgsub file of the repository:

                                                                                                              %s

                                                                                                              Remember that in order to finish adding the subrepo you must still commit the changes to the .hgsub file in order to confirm the addition of the subrepo.The selected subrepository has been removed from the .hgsub file.

                                                                                                              Remember that you must commit this .hgsub change in order to complete the removal of the subrepository!The selected subrepository was not found on the .hgsub file.

                                                                                                              Perhaps it has already been removed?The set of all parents for all changesets in set.The source must be within the repository tree.The subrepository is dirty.The tool icon. You can use any built-in TortoiseHg icon by setting this value to a valid TortoiseHg icon name (e.g. clone, add, remove, sync, thg-logo, hg-update, etc). You can also set this value to the absolute path to any icon on your file system.The tool label, which is what will be shown on the repowidget context menu. If no label is set, the tool name will be used as the tool label. If no tooltip is set, the label will be used as the tooltip as well.The tool name cannot have any spaces in it.The tool name. It cannot contain spaces.The tooltip that will be shown on the tool button. This is only shown when the tool button is shown on the workbench toolbar.The working directory is already merged. Continue or discard existing merge.There are existing patch files for %d revisions (%s) in the selected location (%s). There are merge conflicts to be resolvedThere are no configured sync paths. Open the Synchronize tab to configure them.There are no conflicting file merges.There are no file changes to viewThere are no files that may have been renamedThere is already an existing folder with that same name.There is an existing %s.%s hook. Do you want to replace it?There is no rollback transaction availableThese users will be notified of the reviewThg - TortoiseHg's GUI tools for Mercurial SCM (Hg) This appears to be a binary file.This error will not be shown again until you restart the workbenchThree-way Merge ToolTitleToTo finish merging, you must commit the working directory. To cancel the merge you can update to one of the merge parent revisions.To graft destinationTo rebase destinationTo:Toggle display of text search barToggle filtering of non-matched changesetsToggle graft relations visibilityToggle parent to be used as the base revisionTolerate non-conflicting local changes (--keep-changes)Too many rows selected for menuTool &ResolveTool labelTool launch failureTool nameToolsTools shown on selected locationTooltipTop menu items:Top&ic...Topic '%s' does not existTopic '%s' has been addedTopic '%s' has been removedTopic '%s' has been renamed to %sTopic - %sTopic:TortoiseHg Bookmark SyncTortoiseHg Bug ReportTortoiseHg Command DialogTortoiseHg CommitTortoiseHg Dialogs (version %s), Mercurial (version %s) TortoiseHg ErrorTortoiseHg Lock Tool - %sTortoiseHg New Shelf NameTortoiseHg Overlay Icon ServerTortoiseHg PromptTortoiseHg SearchTortoiseHg SettingsTortoiseHg Shelve - %sTortoiseHg Web ServerTortoiseHg WorkbenchTortoiseHg has created a new .hgignore file. Would you like to add this file to the source code control repository?TortoiseHg: %sTraditional ChineseTransplant:Trigger revision set queryTry refreshing your repository.TurkishTypeU&nbundle...UI LanguageURLURLError: %sUkrainianUnable to backoutUnable to compress historyUnable to create a Mercurial.ini fileUnable to create a config fileUnable to delete %d file or folderUnable to delete %d files or foldersUnable to determine pending changesetsUnable to determine working copy revision Unable to find changesetUnable to mergeUnable to merge chunksUnable to parse p4pending outputUnable to read fileUnable to read repository statusUnable to removeUnable to remove URLUnable to remove file %s, permission deniedUnable to save after commit pushUnable to save an URLUnable to save authenticationUnable to save auto include listUnable to save post pull operationUnable to save recurse in subrepos.Unable to save usernameUnable to show subrepository filesUnable to start the following command:Unable to translate input to local encoding.Unable to translate message to local encoding. Consider setting HGENCODING environment variable. Replace untranslatable characters with "?"? Unable to update repository nameUnable to write .hgignore fileUnable to write configuration fileUnable to write diff fileUnable to write fileUnapply all patchesUnapply one patchUnbundleUncheckUncheck all filesUncheck to consider all revisioned files for copy sourcesUncommited merge - please select a parent revisionUncompressed tar archiveUncompressed zip archiveUnderlineUndo close other tabsUndo close tabUndo last commit?Undo last transaction?Undo most recent commit (%d), preserving file changes?UnicodeUnified ChineseUnknown revision!Unlock of %s failed, retryUnlock of %s successfulUnlocking %sUnresolved conflictsUnresolved conflicts remain. Are you sure?Unsaved changes will be lost. Do you want to reload?Unsupported repository type (%s)UnversionedUpdateUpdate - %sUpdate - pull, then try to updateUpdate IconsUpdate ReviewUpdate icons for this repositoryUpdate on incomingUpdate or create a path alias called '%s' on all subrepos, using this URL as the base URL, appending the local relative subrepo path to itUpdate subrepo pathsUpdate the fields of this existing requestUpdate to:Update working directoryUpdate working directory or switch revisionsUpdate...UpdateOrRebase - pull, then try to update or rebaseUpdateOrRebase - use rebase extension (rebase is not active!)Updating repository registryUpgrading to a more recent TortoiseHg is recommended.Use English backout messageUse English commit messageUse alternative graph layouter for large repositories. Default: False

                                                                                                              Note: This layouter colors edges using branch information and does not display graft edges, regardless of whether they are requested or not.Use compact viewUse current dateUse custom commit message:Use extended (git) patch formatUse git extended diff header format. Default: FalseUse largefilesUse my user name instead of graft committer user nameUse optimized graph layouterUse proxy serverUse pull protocol to copy metadataUserUser AuthenticationUser CacheUser Certificate ChainUser Certificate KeyUser authentication data should be associated with the hostname using the security dialog.User name to authenticate with review boardUser:UsernameUsername to authenticate to mail server withVerify backout revision and ensure your working directory is clean.Verify merge targets and ensure your working directory is clean.Verify with Certificate Authority certificates (best)Verify with stored host fingerprint (good)Vi&ew FileVietnameseView File atView O&therView change as unified diff outputView change history in repositoryView change history of selected filesView change in context of fileView changes to current in external diff toolView changes using GUI diff toolView file as it appeared at this revisionView file changes in external diff toolView the repository's settingsVisual DiffVisual Diff ToolVisual Diff...Visual Diffs - Visual EditorVisual diff between resolved file and first parentVisual diff between resolved file and second parentVisual diff...Visual diffs are not supported for files in subrepositories. They will not be shown.Visual three-way diffWarningWarning: affects all Tortoises, logoff required after changeWas renamed fromWeb ServerWebconfWestern EuropeWhat do you want to do? When committing, require that a reference to an issue be specified. If enabled, the regex configured in 'Issue Regex' must find a match in the commit message.When enabled, automatically show the Output Log when the command is run. Default: False.When running from the command line, fork a background process to run graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X application bundle. Default: TrueWhen set to 'auto', mq will automatically use git patches when required to avoid losing changes to file modes, copy records or binary files. If set to 'keep', mq will obey the [diff] section configuration while preserving existing git patches upon qrefresh. If set to 'yes' or 'no', mq will override the [diff] section and always generate git or regular patches, possibly losing data in the second case. Default: autoWhen to ask the user to confirm the update of the local "projrc" configuration file when the remote projrc file changes. Possible values are:

                                                                                                              • always: [default] Always show a confirmation prompt before updating the local .hg/projrc file.
                                                                                                              • first: Show a confirmation dialog when the repository is cloned or when a remote projrc file is found for the first time.
                                                                                                              • never: Update the local .hg/projrc file automatically, without requiring any user confirmation.
                                                                                                              Whether Git subrepositories are allowed in the working directory. Default: False

                                                                                                              See the security note before enabling Git subrepos.Whether Mercurial subrepositories are allowed in the working directory. Default: TrueWhether Subversion subrepositories are allowed in the working directory. Default: False

                                                                                                              See the security note before enabling Subversion subrepos.Whether to allow pushing to the repository. If empty or not set, push is not allowed. If the special value "*", any remote user can push, including unauthenticated users. Otherwise, the remote user must have been authenticated, and the authenticated user name must be present in this list (separated by whitespace or ","). The contents of the allow_push list are examined after the deny_push list.Whether to deny pushing to the repository. If empty or not set, push is not denied. If the special value "*", all remote users are denied push. Otherwise, unauthenticated users are all denied, and any authenticated user name present in this list (separated by whitespace or ",") is also denied. The contents of the deny_push list are examined before the allow_push list.Whether to require that inbound pushes be transported over SSL to prevent password sniffing.Which template map style to useWhite&spaceWord docs (*.doc *.docx)Work on patch queue (--mq)WorkbenchWorkbench Log ColumnsWorkbench custom toolbarWorking CopyWorking DirectoryWorking Directory (merged)Working directoryWorking directory is not clean! View changes...Working directory statusWrap searchWrite bundleWrite diff fileWrite patch series (bundle) descriptionYou are trying to move the phase of revision %d backwards, from "%s" to "%s". However, "%s" is a lower phase level than "%s". Moving the phase backwards is not recommended. For example, it may result in having multiple heads if you modify a revision that you have already pushed to a server. Please be careful!You can change the icon set from TortoiseSVN's SettingsYou can only release your own locksYou can visit our site hereYou cannot merge a revision with itselfYou have authentication info configured for this host and inside this URL. Remove authentication info from this URL?You have marked all rejected patch chunks as resolved yet you have not modified the file on the edit panel. This probably means that no code from any of the rejected patch chunks made it into the file. Are you sure that you want to leave the file as is and consider all the rejected patch chunks as resolved? Doing so may delete them from a shelve, for example, which would mean that you would lose them forever! Click Yes to accept the file as is or No to continue resolving the rejected patch chunks.You have multiple renames selected for destination file: %s. Aborting!You have selected one or more files that have been modified. By default, these files will not be removed. What would you like to do?You likely need to refresh this applicationYou may continue or start the graftYou may continue the compressYou may continue the graftYou may continue the rebaseYou must enter a patch nameYou must identify yourself to MercurialYou must provide revisions to graftYou must provide source and dest argumentsYou must provide the path to a fileYou must set a command to run.You must set a tool name.You must set a valid hook type.Your TortoiseHg is up to date.Your current working revision (%d) will be removed by this rollback, leaving uncommitted changes. Continue?Zip archive compressed using deflateZip archives[--after PATCH] PATCH...[--insecure] [SOURCE][Code: %d][WARNING] Incomplete changed subrepository. Update to this revision to pull it.[WARNING] Incomplete subrepo. Update to this revision to pull it.[WARNING] Invalid subrepo revision ID: %s [WARNING] Missing changed subrepository. Update to this revision to clone it.[WARNING] Missing subrepo. Update to this revision to clone it.[command completed successfully %s][command interrupted %s][command returned code %d %%s][command terminated by user %s][non-existant][original][working copy]a revision to posta revision to sendabort: abort: %s abort: %s! action buttonCommitadd diffstat output to messagesaddedall revisions converted from subversionalways fork GUI processasynchronous read is not implement yetattachbasic commands: bodybookmark: branch: bundle file to previewcan not read file "%s". Ignored. cannot move applied patchescannot move into applied patchescannot specify both -k/--query and filenameschangeset %d:%schangeset to view in diff toolchangeset which represents converted svn revisionchangeset: %schangeset: %s (not found on subrepository)cleanclone only the specified branchcolumn headerAgecolumn headerAuthorcolumn headerBranchcolumn headerChangescolumn headerConverted Fromcolumn headerDescriptioncolumn headerFilenamecolumn headerGit Commitcolumn headerGraphcolumn headerLatest tagscolumn headerLocal Timecolumn headerNodecolumn headerPhasecolumn headerRevcolumn headerTagscolumn headerUTC Timecommand parse error: %sconfig itemCommitcorrupted command result: %rdefaultdiffstatdiscard uncommitted changes (no backup)display help and exitdo not back up stripped revisionsdo not commit the sigfile after signingdo not fork GUI processdo not modify working copy during stripdo not verify server certificate (ignoring web.cacerts config)enable additional outputenable debugging outputeol is incompatible with win32texterror while reading from data inputerror while running command exec mode has been setexec mode has been unsetfailed to encode command: %sfailed to encode input: %sfailed to fork GUI process: %s failed to start command field to give initial focusfile has been deleted, refreshfile has been modified, refreshfilesfilesAllfilesNonefilling (%d)filterglobal options:grep: %s grep: invalid match pattern: %s hggit packaged with thghgsubversion is incompatible with perfarcehgsubversion packaged with thghint:hint: historyhttps://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings.html#tsvn-dug-settings-icon-setignore case during searchignoredimport to the patch queue (MQ)in the futureinclude the specified changesetinitial search patterninlineinotify is not supported on this platforminvalid "hello" message: %rinvalid argumentsinvalid line number: %sinvalid patch position specifiedkeep original branch nameskeep original changesetslaunch visual diff toollist of commands: locallsprof not available - install from http://codespeak.net/svn/user/arigo/hack/misc/lsprof/make the signature localmake the tag localmerge with old dirstate parent after backoutmethodmissingmodifiedmove after the specified patchmust be specified 'type' in stylemust be specified repositoryname of the hgweb config file (DEPRECATED)name of the hgweb config file (serve more than one repository)needs merge of %i heads needs merge with %s needs merge with %s (through %s) needs update of diff base to tip of %s no "runcommand" capabilityno command specifiedno commands defined no guardsno matches found: %sno outgoing changesetsno outgoing changesets in current branch (%s) / %d in totalno outgoing changesets up to current revision (#%d) / %d in totalno outgoing changesets up to revision #%d / %d in totalno repo at no revisions specifiednotify the shell for paths givennownull revision (i.e. remove file(s))only one new bookmark name allowedonly one new topic name allowedopen a new workbench windowopen the bookmark sync windowopen to lineopen...option --config may not be abbreviated!options: parent to choose when backing out mergepassword: patch %s not in seriesperfarce is incompatible with hgsubversionprint command execution profileprint licenseprocess exited unexpectedly with code %dpull: %s push: %sread file list from fileread file list from file encoding utf-8rebase from the specified changesetrebase onto the specified changesetrecord datecode as commit daterecord user as committerremove a tagremove the status cacheremove working directoryremovedreplace existing tagrepository %s not foundrepository root directory or symbolic path namerequires a single filenamerev: %d (%s)reviewboard extension not enabledrevisionrevision %d's first parent (i.e. revision %d)revision %d's second parent (i.e. revision %d)revision to annotaterevision to archiverevision to backoutrevision to displayrevision to mergerevision to striprevision to tagrevision to updaterevision, tag or branch to check outrevisions %d:%s to %d:%srevisions to graftrevisions to prunerevisions to view in diff toolsearch for a given text or revsetsee %(url)sselect the specified revisionselected filessend patches as attachmentssend patches as inline attachmentssend patches as part of the email bodyset/override config option (use 'section.name=value')show files without changesshow ignored filesshow the contents of the status cache (no update)side-by-side comparison of revisionssign even if the sigfile is modifiedstart debuggerstart progressCommitstart progressMQ Actionstart progressRollbackstatussubreposuppress outputsync command already runningtab tooltipCommittab tooltipConsole logtab tooltipPatch Branchtab tooltipRevision detailstab tooltipSearchtab tooltipSynchronizethe clone will include an empty working copy (only a repository)the key id to sign withthe revision to showthg %s: %s thg aboutthg add [FILE]...thg annotatethg archivethg backout [OPTION]... [[-r] REV]thg bisectthg bookmarks [-r REV] [NAME]thg clone [OPTION]... [SOURCE] [DEST]thg commit [OPTIONS] [FILE]...thg debugblockmatcherthg debugbugreport [TEXT]thg debugconsolethg debuglighthgthg debugruncommand -- COMMAND [ARGUMENT]...thg drag_copy SOURCE... DESTthg drag_move SOURCE... DESTthg email [REVS]thg filelog [OPTION]... FILEthg forget [FILE]...thg graft [-r] REV...thg grepthg guessthg help [COMMAND]thg hgignore [FILE]thg import [OPTION] [SOURCE]...thg init [DEST]thg lockthg log [OPTIONS] [FILE]thg manifest [-r REV] [FILE]thg merge [[-r] REV]thg postreview [-r] REV...thg prune [-r] REV...thg purgethg rebase -s REV -d REV [--keep]thg rejects [FILE]thg remove [FILE]...thg rename [SOURCE] [DEST]thg repoconfigthg resolvethg revdetails [-r REV]thg revert [FILE]...thg rupdate [[-r] REV]thg serve [--web-conf FILE]thg shellconfigthg shelvethg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]thg status [OPTIONS] [FILE]thg strip [-k] [-f] [-n] [[-r] REV]thg sync [OPTION]... [PEER]thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]thg thgstatus [OPTION]thg topics [-r REV] [NAME]thg update [-C] [[-r] REV]thg userconfigthg version [OPTION]thg: %s thg: command '%s' is ambiguous: %s thg: unknown command '%s' timed out waiting for messagetimed out while reading: %r...unexpected response on required channel %runknownunknown patch to move specifiedunknown revision!unrecognized profiling format '%s' - Ignored unrecognized response: %sunsupported URL: %supdate all repos in current diruse "thg -v help %s" to show global optionsuse "thg -v help%s" to show aliases and global optionsuse "thg help" for the full list of commandsuse "thg help" for the full list of commands or "thg -v" for detailsuse as commit messageuse only one form to specify the revisionuse pull protocol to copy metadatause uncompressed transfer (fast over LAN)version %swait until the second ticks overwill be closedwin32ill: cannot create window for messageswin32ill: interrupted while stopping message loop win32ill: unsupported platform: %s win32text is incompatible with eolwindow titleCommitwith Mercurial-%s, Python-%s, PyQt-%s, Qt-%sworking changesworking dir stateCleanwrap mode&NoneProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2019-07-17 15:08+0000 Last-Translator: Wagner Bruna Language-Team: Portuguese MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n > 1; X-Launchpad-Export-Date: 2019-07-18 05:41+0000 X-Generator: Launchpad (build 19009) Por favor verifique se o comando "thg" é válido. Recebida interrupção de teclado, abortando. apelidos: %s (padrão: %s) (copiado de %s) (é um link simbólico) (não versionado) (renomeado de %s) (foi adicionado) (foi adicionado, atualmente ausente) (foi apagado) filtradas"%s" não é uma pasta"%s" não é um diretório válido"%s" removido do histórico do caminho"%s" removido do histórico de busca### texto do filtro ###### impressão digital do certificado do servidor ###### nome do patch ###### expressão regular ###### padrão de busca com expressões regulares ###### consulta por conjunto de revisões ###utf-8,iso8859-1,cp1252% Similaridade%d dia%d dias%d arquivos têm conflitos de mesclagem que devem ser resolvidos%d arquivos foram modificados em ambos os ramos, e devem ser resolvidos%d hora%d horas%d ocorrências encontradas%d minuto%d minutos%d mês%d meses%d revisões a serem enviadas%d reviisões a serem enviadas no ramo atual (%s) / %d no total%d revisões a serem enviadas para %s%d revisões a serem enviadas até a revisão atual (#%d) / %d no total%d revisões a serem enviadas até a revisão (#%d) / %d no total%d patches foram exportados para:

                                                                                                              %s%d changelists pendentes encontradas%d segundo%d segundos%d semana%d semanas%d ano%d anos%d%%%dpt%p%%s (dica: %s)%s (pendente)%s (enviada)%s - Detalhes da Revisão (%s)%s - TortoiseHg Workbench%s - Workbench do TortoiseHg - %s%s - mudança de ramo nomeado%s - consolidação%s - opções de consolidação%s - hg %s%s - purge%s - recuperar repositório%s - status%s - status (selecão filtrada)%s - opções de sincronização%s - verificar repositório%s : %s%s %s já existe, substituir URL?%s e %s têm conteúdos idênticos erro de certificado de %s: certificado não recebido%s tem trechos rejeitados, editar o arquivo alterado junto com os rejeitos?%s é um sub-repositório sujo%s é adicionado%s foi apagado fora do hg, mas ainda está rastreado%s é ignorado%s é modificado%s não é um repositório válido%s é não-modificado (limpo)%s é não-rastreado (desconhecido)%s é removido%s patchesconfigurações do projeto %s (.hg/projrc)definições do repositório %s%s será importado para Configurações globais de %sSobre o &TortoiseHg&Adicionar&Adicionar Repositório...&Após Indentação&Ancestrais e Descendentes&Aplica Apenas Este PatchEmpacot&ar&Archive... (Empacotar)&Auto&Auto Detectar&Auto-Completação&Backout... (Anular)&Bisseccionar...&Ramo&Navegar...Criar &Bundle de Rev e Descendentes...&Cancelar&Caractere&Limpar&Clonar&FecharFe&char Repositório&Commit (consolidar)&Consolida para a Fila...&Consolida no ramo atual&Copiar&Copiar Patch&Copiar...&CriarBarra &PersonalizadaE&xcluirApa&gar Patches...Apa&ga Fila...&Apagar Não Versionados...Diff da &Outra com Ancestral&Diff das Revisões de Arquivo SelecionadasDiff com &Outra&Diff com o Pai&Descartar&Descartar (--force)&Descartar mudançasBarra de &Painéis&Editar Arquivo&Editar LocalBarra de &Edição&Editar...Opções do &EditorEnviar Patch Por &Email...&Sair&Falso&ArquivoBarra de &Filtragem&Finalizar Patch (qfinish)Lista Não &Hierárquica&Forçar&Esquecer&Ir Para (atualiza diretório de trabalho)&Ir para Revisão...En&xertar na Local...Aj&uda&Ignorar...&Importar&Importar Patches...&Incoming&Invisível&Manter (--keep)&Licença&LocalB&loquear Arquivo...&Mac&Torne secreta&Marcar Mudanças ExcluídasMarcar como &ResolvidoMarcar como &Não Resolvido&Marcar como ResolvidoCo&mparar&Mesclar&Mesclar com Local...&Mesclar...&Mais Opções...&Mover&Novo Repositório...&Não&Não (descartar mudanças)&Abrir&Abrir TodosAbrir L&ocalAbrir Rep&ositório...Revisão de &Origem&Outro&OutgoingRevisão &PaiRevisão &Pai (%d)Co&larRamo de &Patches&Podar&Podar Selecionadas...&Podar...&PullEx&purga Fila...&Purge... (Limpar Repositório)&Enviar Marcador&Readme&Rebasear...&Refazer&Reler&Reler Lista de RepositóriosAtualização &Remota...&Remover&Remove Marcador&Remover...&Renomeia&Renomeia Fila Ativa...Substitui&r&Repositório&Redimensionar Colunas&Resolve...&Reverter&Reverter para Revisão...&Reverter com backup&Reverter...Executa&r&Salvar&Salvar na Revisão...&Varrer Repositórios ao IniciarPe&squisar&Procurar no Arquivo Atual&Definir...Configuraçõe&s&Adiar&Shelve... (Adiar Mudanças)&AssinarO&mite esta Revisão&Ordenar&Ordenar pelo .hgsubE&spaços&Strip&Strip... (remover revisões)&Sincronizar Marcadores...&TAB&TAB Insere&Tag... (Etiqueta)Usar a &LocalBarra de &Tarefas&Terminal&Verdadeiro&Desaplicar Patch&Desfazer&Unix&Não especificadoAt&ualizar&Update... (Obter Revisão)&Verificar&Visualizar&Ver Revisão&Ver Faltando&Ver na Revisão&VisívelServidor &Web&Windows&PalavraBarras de Ferramentas da &Workbench&Separação de Linhas&SimRepositório 'Publishing'(%s) (OBSOLETO)(excluída da próxima consolidação)(é um sub-repositório modificado e sujo)(é um sub-repositório modificado)(é um sub-repositório sujo)(é um sub-repositório novo e sujo)(é um novo sub-repositório)(é um sub-repositório removido)(é um subŕepositório não modificado)(nenhum texto de ajuda disponível)(mesma que a pai)(não salvo)*: não utilizados pelo TortoiseHg, mesclagem resolvida, mesclagem não resolvidaDiff de 3 &ViasDiff de diretório de 3 vias<Executa ferramenta de configuração...help revsets%d revisão será removida%d revisões serão removidasAnnotate:Candidatos a OcorrênciasDiferenças da Origem para o DestinoServidor: %sFiltro de Arquivos IgnoradosErro de Decodificação!Detalhes do Repositório:Reverter %d arquivos para seus conteúdos na seguinte revisão?Reverter %s para seu conteúdo na seguinte revisão?Opções Selecionadas:Opções Selecionadas: %sFuncionalidades de Sub-Repositórios:Detectadas mudanças locais não consolidadasRevisão desconhecida!Arquivos Não VersionadosArquivos Não RastreadosServidor Web:<ícone padrão>= Pai do Diretório de Trabalho =>Um arquivo README não foi configurado para o repositório atual.

                                                                                                              Para configurar um arquivo README para um repositório, abra o arquivo de configurações do repositório e adicione uma chave 'readme' na seção 'tortoisehg' contendo o nome de arquivo ou URL do arquivo README do repositório.Já existe um marcador com o nome '%s'Uma lista separada por vírgula de grupos alvoUma lista separada por vírgulas de pessoas alvoUma nova versão do TortoiseHg (%s) está disponível para download!Um repositório não pode ser adicionado como seu próprio sub-repositórioUm identificador de revisão ou nome de marcador, etiqueta ou ramoUm arquivo de adiamento com tal nome já existeUm nome de arquivo de adiamento não pode conter %sUma string de modelo que, se definida, transforma em links o número de revisão e hashes curtos mostrados nos painéis de revisão.
                                                                                                              A string de modelo usa a sintaxe de modelos do Mercurial, como em:

                                                                                                              • {node|short} : será substituída pelo identificador de revisão de 12 dígitos hexadecimais.
                                                                                                              • {rev} : será substituída pelo número da revisão.
                                                                                                              • {gitnode} : se a extensão hg-git estiver habilitada, e o repositório for um clone do git, será substituída pelo hash de revisão do git.
                                                                                                              Por exemplo, para criar links para páginas no Bitbucket, você pode definir o modelo como:
                                                                                                              https://bitbucket.org/tortoisehg/thg/commits/{node|short}
                                                                                                              Para criar um link para um repositório GitHub/GitLab (se hg-git estiver instalada):
                                                                                                              https://github.com/torvalds/linux/commit/{gitnode}
                                                                                                              https://gitlab.com/tortoisegit/tortoisegit/commit/{gitnode}
                                                                                                              Um shell de terminal não pode ser aberto para um repositório remotoUm shell de terminal deve estar configuradoJá existe um tópico de nome "%s"A&dicionar Sub-Repositório...A&utorCancelarAbortar esta operação export. p4pending abortadoSobreSobre o &QtSobre o TortoiseHgAceitarAceitar Todas as OcorrênciasAceitar Ocorrências SelecionadasAceita a versão local do arquivo (a sua versão)Aceita a outra versão do arquivo (versão alheia)Ativar MarcadoresAtivar marcador?Ativar:AdicionarAdiciona &LargefilesAdiciona &Largefiles...Adicionar Arquivos...Adicionar Caminho para Hg ServeAdiciona um repositório a este grupoAdiciona como &LargefilesAdiciona como Arquivos &NormaisAdiciona arquivos ao controle de versãoAdicionar filtro hgignore...Patches adicionados ou removidos devem ser mesclados no diretório de trabalhoAdicionar os arquivos não-rastreados marcados?Adicionar separadorAdicionar à listaAdicionadoEtiqueta %s adicionada para a revisão %sApós a Operação PullIdade:ApelidoHistórico CompletoTodas as revisões pertencentes aos ramos nomeados das revisões no conjunto.Todas as revisões, o mesmo que 0:tip.Todos os arquivos conflitantes serão marcados como não-resolvidos.Todos os conflitos estão resolvidos.Todos os contextosTodos os arquivos (*)Todos os arquivos nesta revisãoTodos os itensTodas as revisõesTodas as alterações não salvas serão perdidas.Permite Sub-Repositórios GitPermite Sub-Repositórios HgPermitir PushPermite Sub-Repositórios SVNPermite que um novo ramo nomeado seja enviado (--new-branch)Permite o envio de novos ramos (--new-branch)Sempre mesclar (quando possível)Sempre mostrar a aba de repositórios, mesmo que apenas um esteja aberto. O padrão é False.EmendarEmenda revisão atualUm apelido para "::." (ancestrais do primeiro pai da cópia de trabalho).Um conjunto vazio, se qualquer revisão no conjunto pedido não for encontrada; caso contrário, todas as revisões no conjunto pedido.Ocorreu um erro ao ler o arquivo.Ocorreu um erro ao atualizar o arquivo hgrc do repositório (%s)Ocorreu um erro ao gravar o arquivo.Uma exceção ocorreu ao carregar os sub-repositórios de:

                                                                                                              "%s"

                                                                                                              Foi encontrada uma operação de enxerto (graft) interrompida. Você não poderá fazer uma nova operação de enxerto até que a operação interrompida seja concluída ou abortada.Anotar Ar&quivoOpções de Anno&tateAnotar com números de revisãoAp&licar FormatoAnexarAnexar informações do enxerto à mensagem de logAnexar as mudanças aos arquivos de patch existentes. Patches aplicadosPatches aplicados ou qparentAplica todos os patchesAplicar mudanças antes de sair?Aplicar um patchAplica apenas o patch selecionadoAplicar somente este patchAplicar no pai originalAplicar patchÁrabeCriar Pacote - %sConteúdo dos Arquivos:Faixa do DAG dos Arquivos...Formatos de ArquivoTipos de pacote:Você tem certeza de que deseja cancelar a operação de commit?Tem certeza de que deseja apagar estes arquivos e/ou pastas?Tem certeza de que deseja sobrescrevê-lo?Você tem certeza que deseja reler este arquivo?Você tem certeza?Solicita Nome de UsuárioTenta fazer uma mesclagem automática (trivial)Tenta fazer o push para a URL especificada ou um apelido após cada consolidação feita com sucesso. Padrão: não faz pushAutorColoração por AutorLista de Consolidação AutomáticaLista de Exclusão AutomáticaAuto Incluir:Resolver mesclagens
                                                                                                              automaticamenteAvançar automaticamente para a próxima página ao completar o backout e o merge.Avançar automaticamente para a próxima página assim que a mesclagem estiver terminada.Resolver conflitos de mesclagem automaticamente, se possívelDisponívelVoltarRevisão anulada: Anular uma revisão pai é uma operação de um único passoAnulando e consolidando...Anulando, e em seguida mesclando...Backout - %sRevisão a ser anuladaFaz o backout do ramo de patches atualBackout exige uma revisão paiRevisão a ser anuladaFaz o backout de parte de uma revisão para uma dependênciaBackspace ou Del para remover linha(s)Cópias de segurança dos arquivos alterados podem ser encontradas em .hg/Trashcan/Foi solicitada uma mudança de fase para trásNome de arquivo ruimBálticoBccAntes de fazer o backout, você deve consolidar, adiar para um patch, ou descartar as mudanças locais.Antes da compressão, você deve consolidar, armazenar na shelve ou descartar as mudanças.Antes de enxertar, você deve consolidar, armazenar na shelve ou descartar as mudanças.Antes de mesclar, você deve consolidar, adiar para um patch, ou descartar as mudanças.Antes de rebasear, você deve consolidar, armazenar na shelve ou descartar as mudanças.Bissecção - %sBiseccionar - Ruim, Boa...Biseccionar - Boa, Ruim...NegritoBoo&kmark... (Marcador)O marcador '%s' não existeO marcador '%s' foi adicionadoO marcador "%s" foi movidoO marcador '%s' foi removidoO marcador '%s' foi renomeado para '%s'Marcador - %sNão existe um marcador de nome "%s"Marcador:RamoCores de RamosRamo:Ramo: Ver na &RevisãoEscolher Diretório...Procurar...Criar Bundle de Faixa DAG...Arquivos bundle (*.hg)Bundles são arquivos que armazenam revisões completas em formato binário. Outros usuários podem usar o comando pull a partir deles para obter revisões. Este é o jeito mais seguro de enviar mudanças para destinatários usuários do Mercurial.Sem ProxyArquivos tar bzip2Escol&her Colunas do Log...C&onfigurar FormatoEditor CLINão se pode mudar configurações sem o pacote iniparse - executando em modo somente leituraA revisão '%s' não foi encontradaCancelarNão é possível adicionar o sub-repositórioNão é possível anular uma mudança em um ramo diferenteNão é possível exportar revisãoNão é possível exportar a revisão %s para o arquivo chamado: %s Não é possível importar a revisão selecionadaNão é possível mesclar com uma pseudo-revisão %r.Não é possível abrir diálogo de Opções de PluginNão é possível abrir sub-repositórios que não sejam do MercurialNão é possível abrir o repositórioNão é possível abrir o arquivo .hgsub em:

                                                                                                              %sNão foi possível ler o arquivo .hgsub.

                                                                                                              A remoção do sub-repositório falhou.Não é possível iniciar uma nova buscaNão é possível atualizar o arquivo .hgsub em:

                                                                                                              %sNão foi possível atualizar o arquivo .hgsub.

                                                                                                              A remoção do sub-repositório falhou.CcCc:CélticoEuropa Central e OcidentalErro de Consulta de CertificadoMudar Fa&se paraFonte do ChangeLogAlterados por Es&ta RevisãoAs mudanças foram movidas, você deve consolidá-lasAs alterações terão efeito na próxima consolidaçãoLink para RevisãoA revisão é uma revisão de mesclagem.A revisão é uma cabeça de ramo nomeado.A revisão está fechada.Revisão é etiquetada.Revisão com o maior número de revisão no conjunto.Revisão com o menor número de revisão no conjunto.Revisão:RevisõesRevisões que afetam arquivos que correspondem ao padrão. Veja help patternsRevisões que contêm arquivos correspondentes ao padrão.Revisões não encontradas no repositório de destino especificado, ou na localização de push padrão.Revisões ancestrais de revisões no conjunto.Revisões em que o nome de usuário contém o texto.Revisões que adicionam arquivos correspondentes ao padrão.Revisões descendentes de revisões no conjunto.Revisões que modificam arquivos correspondentes ao padrão.Revisões que removem arquivos correspondentes ao padrão.Revisões sem pais contidos no conjunto.Revisões dentro do intervalo, veja help datesCodificação dos arquivos no repositório, usada pela interface web e pelo TortoiseHg.MarcarVerificar Fase de Sub-RepositórioMarcar todos os arquivosVerifica revisões a serem recebidasVerifica revisões a serem recebidas de %sIncoming: lista mudanças da URL selecionada não presentes no localVerifica a fase da revisão atual de cada sub-repositório. Para valores diferentes de "ignore", as fases das revisões atuais de cada sub-repositório são verificadas antes da consolidação no repositório principal. Padrão: "follow"Marcados: %dChecandoVerificando atualizações...Checando status do diretório de trabalho...Verificando...Marque arquivos para adicionarMarque arquivos para esquecerMarque arquivos para removerMarque arquivos para reverterRevisões filhas das revisões no conjunto.Filha:Escolhe os revisores selecionados disponíveisTrechos selecionados: %d / %dLimpa&r LogLimpoLimparLimpar o conteúdo do arquivo de adiamento %s?Limpa consulta atual e o texto da consultaLimpa o arquivo de adiamento atualClique OK para continuar ou Abortar para sair.&Clonar Repositório...Clo&nar...Clonar - %sClonar repositórioClonar até a revisão:Clona com processamento mínimoClonar...FecharFecha o ramo %sFechar Após ConsolidaçãoFechar Ramo: Fecha o ramo atualFechar outras abasFechar abaFecha a ferramenta de consolidação após consolidar com sucesso. Padrão: FalseFechar:Co&mparar Revisões de ArquivoColapsa as revisões rebaseadas (--collapse)Colore revisões de acordo com o nome do autor. Valor padrão: FalsoLista de formatos de arquivos separados por vírgulas permitidos para downloadLista separada por vírgulas de nomes de ramo que devem ser ignorados ao construir uma lista de nomes de ramo para um repositório. Padrão: nenhum (em branco)Lista separada por vírgulas de padrões de exclusão de arquivos. Padrões de exclusão são aplicados após padrões de inclusão.Lista separada por vírgulas de arquivos que são automaticamente incluídos em toda consolidação. Para uso apenas em configurações de repositório. Padrão: nenhum (em branco)Lista separada por vírgulas de arquivos que serão automaticamente desmarcados quando as janelas de status e de consolidação forem abertas. Padrão: Nenhuma (deixar em branco)Lista separada por vírgulas de padrões de inclusão de arquivos. Por padrão, a busca é feita em todo o repositório.Lista de destinatários Bcc de email separados por vírgulasLista de destinatários Cc de email separados por vírgulasLista de destinatários de correio electrónico separados por vírgulasComandoErro no ComandoSaída do comandoComando a ser usado em conexões SSH.

                                                                                                              Padrão: "ssh" ou "TortoisePlink.exe -ssh -2" (Windows)Commit (consolidar)Barra de Diálogo de CommitConsolidar DepoisConsolidar AgoraOpções de ConsolidaçãoConsolide a anulação e mescle os resultadosConsolidar mudançasConsolida alterações no repositórioMenu de contexto da consolidaçãoConsolide o resultado da mesclagemMensagem de consolidaçãoCommit (consolidar)...Consolidando...Conjuntos comunsCompara revisões do arquivo selecionadoCompare Com &1o. PaiCompare Com &2o. PaiRemover completamente o arquivo do patch?ComprimirCompressão - %sComprimir Histórico...Comprime revisões até (e inclusive)A compressão foi completada; o histórico antigo foi preservadoArquivo de Configuração:Arquivos de configuração (*.conf *.config *.ini)Erro de Configuração: "%(arg0)s",
                                                                                                              Por favor corrija sua configuraçãoConfigurar Ferramenta PersonalizadaConfigurar extensão do ExplorerConfigurar GanchoConfigurar Rastreador de TíquetesConfigurar guardasConfigura guardas para o patch selecionadoConfigura definições específicas deste repositórioConfigura o plugin COM de rastreador de tíquetes selecionado.Configura definições gerais de usuárioConfigura um plugin COM IBugTraqProvider ou IBugTraqProvider2 de rastreamento de tíquetes.Confirmar AdiçãoConfirmação de Mudança de RamoConfirmar RemoçãoConfirmar Remoção de Não-VersionadosConfirmação de DescarteConfirma o Descarte de MudançasConfirmar Descarte da MensagemConfirmar SaídaConfirmar Novo RamoConfirmar sobrescritaConfirmação de PushConfirmação de Push para o Repositório RemotoConfirmação de ReleituraConfirmar RemoçãoConfirmar ReversãoConfirmar GravaçãoConfirma Remoção de RevisõesConfirmar substituição de URLConfirmar DesfazimentoConfirma AtualizaçãoConfirmar adição de
                                                                                                              arquivos desconhecidosConfirmar remoção de arquivosConfirmar remoção de arquivosConfirmar troca de fila de patchesConfirmação de remoção de caminhoConectando à Review Board...Considere primeiro abortar o enxerto.Considere abortar o rebase antes de sair.ConsoleContatoMenu de contextoContinuar ou abortar a operação de enxerto interrompida?Controla o comportamento da fase rascunho ao servir um repositório. Se for True, revisões enviadas usando push se tornam públicas tanto no cliente como no servidor, e revisões recebidas usando pull ou clone se tornam públicas no cliente. O padrão é True.Converte um repositório existente em um sub-repositórioConvertida De:CopiarCopiar &HashCo&piar CaminhoCópia - %sErro de CópiaCopia a Selecionada como um PatchCopia para a área de transferência o caminho completo dos arquivosCopiar mensagemCopia uma das mensagens de consolidação recentesCopia origem -> destinoCopia o caminho raiz do repositório para a área de transferênciaCopia para o diretório de trabalho arquivos do skeletonCopyright 2008-2019 Steve Borho e outrosNão foi possível obter lista de sub-repositóriosNão foi possível instanciar o objeto COM do plugin de rastreamento de tíquetesNão foi possível abrir arquivo .hgsubNão foi possível abrir alguns sub-repositóriosNão foi possível abrir para leitura o arquivo especificadoNão foi possível abrir para escrita o arquivo especificado.Não foi possível traduzir o conteúdo do arquivo a partir da codificação nativa.Não foi possível converter o conteúdo do arquivo para a codificação nativa.Não foi possível atualizar o arquivo .hgsubCriarCriar &RamoCria &Nova Fila...Criar Fila de PatchesCriar Repositório AquiCria um novo grupoCria um novo patchCriar novo repositórioCriar clone aqui a partir da origemCriar diff com todas as mudanças neste ramoCriar diff com todas as mudanças a serem enviadasCriar novo ramo nomeado "%s" nesta revisão? Criar arquivos especiais (.hgignore, ...)Recor&tarCulpado encontrado.Revisão local atualConfigurações da Barra &PersonalizadaFerramentas PersonalizadasCirílicoDataData:De&tectar Renomeações...Desativar marcador atual?Ramos MortosDestino Padrão do ClonePush DefaultWidget padrãoDefine o comando a ser executado se um número de tíquete for reconhecido. Você pode incluir grupos em issue.regex, e tokens {n} correspondentes em issue.link (onde n é um inteiro não negativo). {0} se refere à string inteira encontrada por issue.regex, {1} se refere ao primeiro grupo, e assim por diante. Se nenhum token {n} for encontrado em issue.link, a string completa encontrada será anexada.Define a expressão regular usada para encontrar números de tíquete.ApagarApagar %d arquivo em .hg/Trashcan (lixeira)Apagar %d arquivos em .hg/Trashcan (lixeira)Apagar %d arquivo ignoradoApagar %d arquivos ignoradosApagar %d arquivo desconhecidoApagar %d arquivos desconhecidosRemover %s de seu arquivo de configuração de repositório?Apagar Grupo '%s' e todas as suas entradas?Apagar Fila de PatchesApagar PatchesRemover FerramentaApagar pastas vaziasRemover da listaApagar ganchoApagar patches...Apagar a referência paraApaga trechos selecionadosRemover do arquivo de adiamento %s os trechos selecionados?Remover da cópia de trabalho os trechos selecionados?Apagar patches selecionadosRemove do histórico a consulta selecionadaApagar o arquivo de adiamento %s?Apaga o arquivo de adiamento atualRemover os seguintes arquivos não-versionados?Apagados %d arquivosApagados %d arquivos e %d pastasApagado*Apagando lixeira...Falhas ao apagarRecusar PushDescriçãoDestArquivo de destino já existe.Caminho de destino:Destino:Detecta Cópias/Renomeações em %sDetecta revisões a serem enviadasDetecta revisões a serem enviadas para %sOutgoing: detecta mudanças não presentes na URL selecionadaDetecta renomeações e cópiasFerramentas de mesclagem/diff detectadas:Mudanças não consolidadas foram detectadas no diretório de trabalho. Para continuar, por favor selecione: Mudanças locais não-consolidadas detectadas.Determina se o TortoiseHg deve mostrar uma caixa de diálogo de confirmação antes de adicionar novos arquivos em uma consolidação. Se True, a janela de confirmação será exibida. Se False, arquivos novos selecionados serão incluídos na consolidação sem confirmação. O padrão é True.Determina se o TortoiseHg deve mostrar uma caixa de diálogo de confirmação antes de enviar revisões em uma operação push. Se False, o push será realizado sem qualquer diálogo de confirmação. O padrão é TrueDetermina se o TortoiseHg deve mostrar uma caixa de diálogo de confirmação antes de remover arquivos em uma consolidação. Se True, a janela de confirmação será exibida. Se False, arquivos apagados selecionados serão removidos na consolidação sem confirmação. O padrão é True.Determina quando o rastreador de tíquetes será atualizado pelo TortoiseHg. As configurações possíveis são:

                                                                                                              • never: Não atualiza o rastreador de tíquetes automaticamente.
                                                                                                              • commit: Atualiza o rastreador de tíquetes após um commit realizado com sucesso.

                                                                                                              Padrão: neverDeterminando revisões a serem enviadas por e-mail...Diff da &Revisão com PaiDiff &LocalDiff da &Local com AncestralDiff da Revisão com &LocalDiff do Arquivo comFonte do DiffDiff das Revisões Sele&cionadasBarra de DiffDiff e AnnotateConteúdo do diffDiff não exibido: Diff com &LocalDiff com paiDiff do diretório com pai 1Diff do diretório com pai 2Diff de diretórioDiretório de arquivosDescartar - descartas mudanças locais, sem backupDescarta todas as mudanças da outra revisãoDescartar mensagem de anulação atual?Descartar mensagem de consolidação atual?Descarta mudanças locais (revert --all)Descartar mudanças locais, sem backup (-C/--clean)Descartar mudanças locais, sem backup (-f/--force)Descartar mudanças pendentes do diretório de trabalho?Descarta mudanças remotas, sem backup (-C/--clean)Mostrar ramos fechadosExibe no grafo apenas o ramo nomeadoMostrar apenas ramos ativosMostrar o arquivo de qualquer maneiraMostrando %(count)d de %(total)d itensSincronização Arrastar-E-SoltarNão incluir as datas de modificação nos cabeçalhos diff. Valor padrão: FalsoNão modifica a cópia de trabalho (-k/--keep)Não modificar a cópia de trabalho durante o strip (-k/--keep)Não salvar cópias de segurança (*.orig)Não exibe os itens de menu em pastas não versionadas (pressione a tecla shift ao clicar para exibir os itens)Não remove caminhos (-p0), necessária para patches SVNNão atualizar o novo diretório de trabalhoNão verificar o certificado do hostVocê realmente deseja forçar uma transição de fase para trás?Você realmente deseja ativar a fila de patches '%s'?Você realmente deseja desativar o marcador %s?Você realmente deseja tornar esta revisão secreta?Você realmente deseja remover o sub-repositório "%s" de seu repositório pai "%s"Deseja sair?Você deseja mantê-las ou descartá-las?Arraste para mudar a ordemNome Duplicado&Codificação&SairE&xplorarE&xplorar PastaE&xplorar LocalAjuda do E&xplorerE&xportarE&xportar Patch...&Modo de Quebras de Linha&Visibilidade de Quebras de LinhaEditarEditar ArquivoEditar filtro de ignorarEditar Arquivo LocalEditar Caminho para Hg ServeEditar Re&jeitadosEditar Ferramenta...Edita o arquivo atual na cópia de trabalhoEditar arquivoEditar ganchoEdita o grafo de dependências do patchEditar o arquivo de patch e rejeitados?Editar filtro de ignorar do repositórioEditar arquivo resolvidoFalha de execução do editorEmailEnviar por E-mail Intervalo do DAG...Enviar Selecionados por E-mail...Endereço de correio a usar no cabeçalho "De" e envelope SMTPEnviar por e-mail revisões destinadas ao repositório remotoEmitir saída de depuração (--debug)Gerenciadores de Ícones Sobrepostos AtivadosÍcones de sobreposição habilitadosCodificaçãoMensagens em InglêsForneça o número da linha (1 - %d)Forneça o identificador da revisãoErroErro encontrado.Erro ao executar gatilho "commit finished"Erro ao obter informações de mensagem de consolidação do plugin de rastreamento de tíquetesErro ao carregar sub-repositóriosErro ao pré-visualizar sub-repositório: %sErro na string "%(arg0)s" em %(arg1)s
                                                                                                              Por favor edite sua configuraçãoErro ao gravar o arquivoArquivos Excel (*.xls *.xlsx)ExcluirExclui:Executa ferramenta personalizada '%s'SairSair sem terminar o resolve?Não é recomendado sair durante uma operação de enxerto.Não é recomendado sair durante um rebase não terminado.Configurações da Extensão do ExplorerConfigurações da Extensão do Explorer - TortoiseHgExportar Faixa do DAG...Exportar Diff...Exportar Selecionado...Exportar patchExtExtensõesFalha ao adicionar repositórioFalha ao adicionar sub-repositórioFalha ao executar comando personalizado do TortoiseHgFalha ao executar comando personalizadoFalha ao carregar rastreador de tíquetes '%s': %sFalha ao carregar rastreador de tíquetes: '%s': %s. Falha ao abrir caminho no terminalFalha ao abrir o repositórioErro ao processar largefiles.patterns.Erro ao reler arquivosFalhou!Fetch - usa a extensão fetch (mesclagem automática das revisões trazidas)Fetch - usa a extensão fetch (fetch não está ativa!)Obtém do servidor a lista de revisoresCampos a serem comparados:Arquivo&Histórico do Arquivo / AnnotateColunas de Log de Diferenças de ArquivoHistórico de ArquivoColunas de Log de Histórico de ArquivosBarra de Lista de ArquivosStatus de ArquivosStatus de Arquivo:O arquivo já existeConflitos de arquivos precisam ser resolvidosMenu de contexto de arquivo (no manifesto e detalhes de revisão)O arquivo é binárioO arquivo é maior que o tamanho máximo especificado. maxdiff = %s KBO arquivo pode ser binário (uma linha excedeu o comprimento máximo)Arquivo ou diffs não mostrados: Arquivo ou diffs não mostrados: o arquivo é maior que o tamanho máximo especificado. maxdiff = %s KBConjuntos por Padrões de ArquivoO arquivo não estava dentro do repositório atualNome do arquivoArquivosArquivos que tiverem ao menos o tamanho especificado (em megabytes) serão adicionados como bfilesArquivos que tiverem ao menos o tamanho especificado (em megabytes) serão adicionados como largefilesArquivos com nomes que combinarem com os padrões especificados serão adicionados como bfiles automaticamenteArquivos com nomes que combinarem com os padrões especificados serão adicionados como largefiles automaticamenteFiltrar &HistóricoFiltrar &porFiltra o grafo por conjunto de revisões ou ramoFiltra os revisores disponíveisFiltro:Pesquisar renomeaçõesEncontrar origens de cópia ou renomeaçãoEncontrar correspondentes - %sEncontrar revisões com campos correspondentes a:Localiza revisões cujos campos correspondem aos campos das revisões dadasLocalizando revisões a serem enviadas para %s...FinalizadoOs primeiros n membros do conjunto.O primeiro pai de todas as revisões no conjunto, ou do diretório de trabalho.Revisões fixasFlag:Combinar patches...Seguir cópias e renomeaçõesFonte usada para mostrar os dados do changelog. Padrão: monospace 10Fonte usada para mostrar mensagens de consolidação. Padrão: monospace 10Fonte usada para mostrar mensagens de saída. Padrão: sans 8Fonte usada para mostrar diferenças de texto. Padrão: monospace 10FontesPara quais tipos de revisão a ferramenta será habilitada Só é levado em conta quando a ferramenta for mostrada no menu de contexto da revisão selecionada.Força Aba de RepositóriosForçar mesclagem com mudanças pendentes (-f/--force)Força push ou pop (--force)Força push ou pull (sobrepõe checagens de segurança, --force)Força um push para um local remoto (-f/--force)Força a remoção de arquivos modificados (--force)EsquecerEsquecer Arquivos (forget)Bifurcar GUIAvançarEncontradas %d revisões remotasEncontradas revisões provenientes de %sDeDe:Nome de Autor CompletoTítulo com Caminho CompletoID da chave GPG associado ao usuário. Padrão: Nenhum (deixe em branco)Gera mensagens de consolidação em inglês mesmo que as variáveis de ambiente LANGUAGE ou LANG estejam definidas para um outro idioma. Esta configuração é usada pelas janelas de Merge, Tag e Backout. Padrão: FalseRecebendo revisões de %s...Commit Git:Formato GitPatches git podem descrever arquivos binários, cópias e alterações nas permissões, mas o destinatário pode não conseguir usá-los se não estiver usando o git ou o Mercurial.GlobDefinições GlobaisGnuPGIr para o Pa&tchIr paraIr para LinhaVai para uma revisão específicaIr para revisão atualIr para o ancestral de %s e %sIr para ancestral comumIr para revisãoEnxertarEnxertar - %sEnxertar Selecionadas na revisão local...Enxerto abortadoEnxertar revisãoEnxertar revisão #%d de %dEnxerto falhouO enxerto gerou conflitos de mesclagem que devem ser resolvidosEnxerto concluídoEnxerto:GrafoPrograma gráfico para resolver conflitos de mesclagem. Se não especificado, o Mercurial usará a primeira ferramenta aplicável que encontrar em seu sistema ou seu utilitário interno de mesclagem (que coloca marcações de conflito nos arquivos). Escolha internal:merge para forçar o uso de marcações de conflito, internal:prompt para sempre selecionar ou a versão local ou a outra, ou internal:dump para colocar as versões dos arquivos no diretório de trabalho para mesclagem manualAncestral comum mais recente de duas revisões.GregoGuardas: %d/%dInferir RenomeaçõesArquivos tar gzipErro de HTTP: %d (%s)A cabeça está fechada!HebraicoComando hg:Visualizador de log de arquivos do hg [%s] - %sOs patches do Mercurial (como gerados pelo comando export) são compatíveis com a maioria dos programas de patch. Incluem um cabeçalho que contém os metadados mais importantes da revisão.Ocultar DetalhesOcultar EtiquetasOcultar o menu de contexto fora de repositóriosDestacar íconeTipo de ganchoGanchosServidorNome e porta (opcional) do servidor proxy, por exemplo "meuproxy:8000"Nome do servidor de correioNome de servidor que o remetente pode usar para se identificar para o servidor de email.Quantas linhas uma "listra de zebra" deve abranger em saídas com múltiplas linhas. O padrão é 1; coloque 0 para desabilitar.ÍconeÍconesSe um nome de usuário não for fornecido, ele será solicitado interativamente. Padrão: FalseSe especificado, arquivos nesse diretório, por exemplo .hgignore, são copiados para o repositório recém criado.Se especificado, o campo de destino na janela de clonagem será pré-preenchido com este caminho. Caso contrário, será pré-preenchido com o diretório de trabalho atual.Se True, concatena múltiplas linhas do sumário da revisão, truncando-as em 80 caracteres conforme necessário. Padrão: Falsese você ainda tiver problemas, por favor envie um bug report.Ignorar Ignorar linhas em brancoQuantidade de Espaços IgnoradaIgnorar Espaço em BrancoIgnorar maiúsculas / minúsculasIgnora mudanças na quantidade de espaços em branco em visualizações de diff. Padrão: FalseIgnora mudanças na quantidade de espaços em branco na visualização annotate. Padrão: FalseIgnora mudanças compostas apenas por linhas em branco em visualizações de diff. Padrão: FalseIgnora mudanças compostas apenas por linhas em branco na visualização annotate. Padrão: FalseFiltro de arquivos ignorados - %sIgnora espaços em branco ao comparar linhas em visualizações de diff. Padrão: FalseIgnora espaços em branco ao comparar linhas na visualização annotate. Padrão: FalseIgnorado*Operações ImediatasImportação - %sImportar da Área de TransferênciaImportar para &MQNa &Revisão AtualNa Revisão &OriginalEm Todo o &HistóricoNo &Arquivo AtualIn-Reply-To:IncluirIncluir todos os ancestraisIncluir fila de patchesInclui:Marcadores a Serem RecebidosIncoming de %s abortado, retornou %dIndica se o TortoiseHg deve tentar resolver automaticamente mudanças de ambos os lados do mesmo arquivo, e apenas reportar conflito de mesclagem quando isso não for possível. Quando Falso, todos os arquivos com mudanças em ambos os lados da mesclagem irão reportar conflito, mesmo que as mudanças sejam em diferentes partes do arquivo. Em qualquer dos casos, quando houver conflitos, o usuário será convidado a resolvê-los manualmente. Padrão: Verdadeiro.O pacote iniparse deve estar instalado.Pacote iniparse não encontradoRevisão inicialEtiquetas InlineEntre com novas guardas para %s:Direitos de acesso insuficientes, revertendo ao modo somente leitura.Permissões de acesso insuficientes.InterrompidoOperação graft interrompida encontradaPadrões InválidosConfigurações Inválidas - Por favor forneça seu nome de usuário do ReviewBoardConfigurações Inválidas - O servidor ReviewBoard não está configuradoComando inválidoConfiguração inválida: %sFormato de data inválidoRevisão padrão de push inválida: %s. Por favor verifique sua configuração do Mercurial (entrada tortoisehg.defaultpush)Expressão de glob inválidaExpressão regular inválidaO plugin do Mercurial para o reviewboard não é válido. Por favor baixe e instale o plugin reviewboard 3.5 ou superior do website abaixo. %sLink para TíqueteExpressão Regular do TíqueteRastreador de TíquetesPlugin de Rastreaamento de TíquetesErro do Plugin de Rastreamento de TíquetesGatilho do Rastreador de TíquetesRastreamento de TíquetesNão foi possível carregar completamente a lista de sub-repositórios do repositório pai em:

                                                                                                              %s

                                                                                                              Os seguintes sub-repositórios podem estar faltando, quebrados ou em um estado inconsistente, e não podem ser acessados:

                                                                                                              %sNão foi possível obter a lista de sub-repositórios para o repositório em:

                                                                                                              %sItálicoJaponêsMantém os nomes de ramo originais (--keepbranches)Mantém as revisões originais (--keep)Manter arquivos de patchID da chaveChave:Busca por Palavra ChaveKiln BfilesRevisão que se sabe ser ruim:Revisão que se sabe ser boa:CoreanoLargefilesBarra de Ferramentas EsquerdaPermite que o usuário atualize o projrc na operação incoming:

                                                                                                              • never: [padrão] Mostra se o arquivo projrc remoto mudou, mas não atualiza (nem pergunta se deve atualizar) o arquivo projrc local.
                                                                                                              • prompt: Se houver mudanças no arquivo projrc, _sempre_ exibe uma janela de confirmação, perguntando ao usuário se ele deseja atualizar o arquivo projrc local.
                                                                                                              • auto: Se houver mudanças no arquivo projrc, usa o valor da chave de configuração "projrc.confirm" para determinar se uma janela de confirmação deve ser exibida antes de atualizar o arquivo projrc local.

                                                                                                              Padrão: neverLicençaComo "keyword(texto)" mas aceita expressões regulares.Linha&Opções de ListaLista de servidores dos quais arquivos de configuração "projrc" devem ser trazidos. Use "*" para sincronizar com todos os servidores. Use "default" para trazer do caminho de sincronização padrão. O padrão é: não trazer de nenhum servidor.Lista de todas as ferramentasLista de configurações que não serão trazidas do arquivo de configuração do projeto. O padrão é não excluir nenhuma das configurações incluídas.Lista de configurações que serão trazidas do arquivo de configuração do projeto. O padrão é não trazer nenhuma configuração.Lista arquivos atualizados (--verbose)Carregar Tod&as as RevisõesCarrega todas as revisões para o grafoCarregando repositório %sServidor localCaminho LocalCaminho Local:Repositório Local %sApenas discos locaisInformações da revisão localTorna a assinatura localEtiqueta localClone local do repositório de organização de bloqueio.

                                                                                                              Este repositório deve conter um arquivo texto "locked"Localização:Clone de BloqueioBloqueia um arquivo não descrito em .hglocksO bloqueio de %s falhou, tente novamenteBloqueio de %s realizado com sucessoBloqueia ou desbloqueia arquivosArquivos Bloqueados e Bloqueáveis:Travado*Bloqueando %sBloqueando UsuárioLogTamanho do Lote de RegistrosSumário longoM&Opções da MQFormato Git na MQEmpilhar (qpush)Empilhar todos (qpush -a)Opções MQModo do Ma&nifestoFaz com que patches MQ permaneçam na fase secreta (ao invés de rascunho). Padrão: FalseTornar o repositório compatível com Mercurial <1.7Em geral é seguro mudar uma revisão da fase "draft" para a fase "secret". Mas há alguns detalhes a serem avaliados: - revisões na fase "secret" não são enviadas em uma operação push. Isso pode causar problemas se você se referir a uma revisão secreta de um sub-repositório. - Se esta revisão foi trazida de um servidor não-público, ela pode ser movida de volta para a fase "draft" se você trouxer novamente revisões desse servidor. Seja cuidadoso!Gerencia segurança da conexão HTTPS e autenticação de usuárioGerenciar changelists pendentes do perforceReferência Obrigatória para TíqueteResolver manualmente os trechos rejeitados?Resolve manualmente trechos de patches rejeitadosMarcar como &Não ResolvidoMarcar este trecho como resolvido, ir para o próximo não-resolvidoMarcar este trecho como não-resolvidoMarca este arquivo como resolvidoMarca este arquivo como não-resolvidoTexto CorrespondenteComparar com qualquer das %d revisõesCorresponde apenas a palavras inteirasMáx. de AlteraçõesTamanho Max Do DiffMáx. de ArquivosNúmero máximo de mudanças listadas no changelog. Padrão: 10Número máximo de arquivos listados por revisão. Padrão: 10Membros do conjunto que não possuem revisões filhas.Comportamento do MenuRe&solver com o MercurialUsuário do MercurialUm comando do Mercurial ainda está em execução. Tem certeza de que deseja encerrar?A extensão Mercurial keyring está habilitada. Senhas serão gravadas usando um método seguro nativo da plataforma.O Mercurial não conseguiu encontrar um editor. Por favor configure o Mercurial para usar um editor instalado no seu sistema.MesclarMesclar - %sMesclar - mescla a revisão com as mudanças locaisMescla todas as dependências pendentesA mesclagem causou conflitos de arquivosRevisão de mesclagemMesclar com (a outra revisão; segundo pai)A mesclagem rejeitou trechos de patch em %sRevisão de mesclagem não especificada ou não encontradaMesclar em (o diretório de trabalho; primeiro pai)Mescla usando a ferramenta de mesclagem selecionadaMesclagem com %sMesclar com a outra cabeça do ramo atualMesclando...MensagemFonte da MensagemFalha em Tradução de MensagemIdentificador de mensagem a responder, para organização em tópicosMétodo para habilitar TLS ao conectar com o servidor de e-mail. Padrão: none (nenhum)Similaridade Mínima: %d%%Protocolo MínimoTamanho MínimoFaltam informaçõesModi&ficar HistóricoMonitoração de Mudanças
                                                                                                              em RepositóriosMonitora mudanças no
                                                                                                              diretório de trabalhoMoverMover todos os arquivos para a esquerdaMover todos os arquivos para a direitaMove patches aplicados para o histórico do repositórioMove mudanças entre o diretório de trabalho e patchesMover trechos selecionados para a esquerdaMover trechos selecionados para a direitaMover o arquivo selecionado para a esquerdaMover o arquivo selecionado para a direitaEtiqueta %s movida para a revisão %s (estava na revisão %s)Menu de contexto com seleção múltiplaMúltiplas origens escolhidasNomeNome de autor registrado em revisões. O formato mais comum é:
                                                                                                              Nome Completo <enderecodeemail@exemplo.com>Nome ou endereço de email da pessoa responsável pelo repositório.O ramo nomeado "%s" já existe, e foi usado pela última vez na revisão %d Novo &GrupoNova &WorkbenchNovo Ramo: Fase de Novos CommitsNovo GrupoNovo Nome:Novo Ramo de PatchesNovo Skeleton de RepositórioNovo RepositórioNovo AdiamentoNova Ferramenta...Novo arquivo criadoNovo ganchoNova mensagem de patch:Nome da nova fila de patchesNovo adiamento criadoSeguintePróximo DiffDiff seguinteSem datasNenhum arquivo apropriadoSem backup (-n/--nobackup)Sem alterações no ramoNão restou nenhum trechoNão consolida o arquivo de assinaturas após assinarNenhum trecho removívelNenhuma ferramenta de diff encontradaNenhum editor encontradoArquivos sem alteraçãoNenhum arquivo marcadoNenhum arquivo encontrado para esta operaçãoNenhum arquivo selecionadoNenhum arquivo a ser encontradoServidor não especificadoConexão encriptada, mas sem validação de servidor (ruim)Nenhum arquivo ignorado encontradoNenhuma revisão proveniente de %sNenhum link para um tíquete foi encontrado na mensagem de consolidação. A mensagem deve conter um link para um tíquete. Configure isto na seção de configuração 'Rastreamento de Tíquetes'.Nenhum item para mostrarNenhuma ocorrência encontradaNenhum conflito de mesclagem, pronto para consolidarNenhum conflito de mesclagem, pronto para consolidar ou revisarNenhum arquivo modificado marcado para ser consolidadoNenhuma operação a realizarNenhuma revisão a ser enviadaNenhuma revisão a ser enviada para %sNenhum ramo de patches selecionadoNenhuma changelist do Perforce pendenteNenhum caminho ou URL de repositório remoto definidosNenhum repositório encontradoNenhuma revisão encontradaNenhum shell configuradoNenhuma transação disponívelNenhum arquivo encontrado na lixeiraNenhum arquivo desconhecido encontradoNenhum nome de usuário configuradoNão foi configurado nenhum caminho ou URL de repositório remoto default válido para este repositório.

                                                                                                              Por favor digite e salve um caminho para um repositório remoto no widget de sincronização.Nenhuma ferramenta de diff visual foi detectadaNenhum editor visual configuradoNenhuma - apenas traz as revisõesNórdicoNormaliza terminações de linha durante e após a aplicação do patch para lf ou crlf. "Strict" não faz normalização; "Auto" faz detecção por arquivo, e é o valor recomendado. Padrão: strictNão é um sub-repositório do Mercurial, não pode ser pré-visualizadoNão é uma revisão de cabeça!Não é uma cabeça, o backout criará uma nova cabeça!Nada ConsolidadoNada alterado.Nada para importarNenhuma revisão a ser enviadaOKEstado obsoleto:No repowidget, mostrar paraUma ou mais revisões que você está tentando enviar adicionarão novos ramos nomeados no repositório remoto. Você tem certeza que deseja criar novos ramos nomeados no repositório remoto?Considerar apenas arquivos apagadosApenas arquivos criados ou modificados nesta revisãoApenas arquivos modificados/criados desde:Para o destinoAbrirAbrir &TerminalAbrir S&ub-RepositórioAbra um arquivo (não mesclável) que você deseja bloquearAbrir um novo ramo nomeadoAbre um terminal de shell no raiz do repositórioAbre um terminal de shell na pasta selecionadaAbre editor avançado de consultasAbre todos os repositórios em novas abasAbrir configuração hgwebAbre novas abas após a aba atualAbre o diretório pai do arquivo atual no gerenciador de arquivos do sistemaAbre ferramenta de adiamento (shelve)Abre o repositório em um visualizador de arquivosAbre o repositório em uma nova abaAbre a pasta selecionada no gerenciador de arquivos do sistemaAbre o sub-repositório selecionadoOperação abortada:

                                                                                                              %(arg0)s.Operação realizada diretamente após um pull realizado com sucesso. update equivale a pull --update, fetch equivale à extensão fetch, rebase equivale a pull --rebase, updateorrebase equivale a pull -u --rebase. Padrão: nenhumaOpcional. Lista separada por vírgulas de nomes de servidores para os quais não usar o proxyOpcional. Método de envio de mensagens de email. Se o valor for "smtp" (padrão), use SMTP (configurado abaixo). De outro modo, use como nome de um programa a ser executado que atue como o sendmail (recebe a opção "-f" para remetente, lista de destinatários na linha de comando, mensagem na entrada padrão). Normalmente, definir como "sendmail" ou "/usr/sbin/sendmail" basta para usar o sendmail para enviar mensagens.Opcional. Arquivo de cadeia de certificados de cliente, em formato PEM. Variáveis de ambiente no nome do arquivo serão expandidas.Opcional. Arquivo de chaves de certificado de cliente, em formato PEM. Variáveis de ambiente no nome do arquivo serão expandidas.Opcional. Senha de autenticação no servidor proxyOpcional. Senha de autenticação. Se não for dada, e o servidor remoto exigir autenticação básica ou por digest, o usuário será consultado para fornecê-la.Opcional. Nome de usuário para autenticação no servidor proxyOpcional. Nome de usuário com o qual autenticar. Se não for dado, e o servidor remoto exigir autenticação básica ou por digest, o usuário será consultado para fornecer os dados de autenticação. Variáveis de ambiente são expandidas no nome de usuário, para que você possa usar foo.username = $USER.OpçõesOpções:Ou use:Ordena os sub-repositórios como aparecem no arquivo .hgsubPai Original:Informações da outra revisãoMarcadores a Serem EnviadosOutgoing abortado, retornou %dComando outgoing para %s abortado, retornou %dFonte de SaídaSobreposiçõesRe&ceber MarcadorP&ushDocumentos PDF (*.pdf)Arquivos PEM (*.pem *.crt *.cer)Arquivos PEM (*.pem *.key)Menu de contexto com par selecionadoPai 1:Pai 2:Pai:PaisSenhaSenha para autenticar no servidor de emailSenha para autenticar com a review boardSenha:Colar Nomes de &ArquivoBarra do Patch BranchFim de Linha de PatchesArquivos de patch (*.patch)Exigido Nome de PatchFila de PatchesBarra de Ações da Fila de PatchesData do patch:Patch exportadoA aplicação do patch falhouArquivos de patch (*.diff *.patch)Arquivos de patch já existemCombinação de patch - %sMensagem do patch:Nome do patch:A descrição da série de patches é enviada no email de sumário inicial com assunto [PATCH 0 of N] . Ela deve descrever os efeitos da série toda de patches. Ao enviar um bundle, estes campos compõem o assunto e corpo da mensagem. Flags é uma lista separada por vírgulas de indicadores inseridos no prefixo do assunto da mensagem."Usuário do patch:Patch:Patch: %sPatches exportadosPatches a combinarCaminhoBarra de Edição de CaminhosCaminho para exemplo da review board "http://demo.reviewboard.org"Caminho para o diretório onde será armazenado um cache de sistema de bfilesCaminho para o diretório onde será armazenado o cache de largefiles do usuárioCaminho:Caminhos nas Configurações do Repositório:PadrõesChangelists do Perforce Pendentes - %sPerforce pendente...Perforce:Executa um push antes de atualizar (-p/--push)PhabricatorFaseColocar Console na Área Doc&kSimples, não coloca o cabeçalho HgPor favor configure um editor visualPor favor habilite e configure a extensão simplelockPor favor habilite a extensão Gpg.Por favor primeiro habilite a extensão Topic.Por favor entre com um nome de usuárioPor favor forneça a mensagem de consolidaçãoPor favor informe sobre este problema em nosso bug trackerPor favor seleciona uma revisão para mesclar.Por favor selecione uma URL válida para continuar.Por favor aguarde enquanto os arquivos mesclados são consolidados.Por favor aguarde enquanto o backout é realizado.Por favor aguarde enquanto o arquivo é aberto ...Por favor aguarde...DesempilharDesempilhar todosPortaPorta usada pelo servidor de email. Valor padrão: 25Porta onde escutarPorta:Posta&r AnáliseAção Após PullApós Pull: Postar AnáliseEnvia Selecionados para o Phabricator...Postar Selecionados para a Review Board...Envia para o Phabricator...Postar na Re&view Board...Enviando para AnálisePredecessores:Preparação para o backoutPrepare-se para mesclarPreservar arquivos iniciados por .hgAnteriorPré-visualizaçãoPré-Visualização:Diff AnteriorDiff anteriorAnteriormente o sub-repositório estava na seguinte revisão:ProjrcProxyPrune - %sPublicar o pedido imediatamentePullPull de %s abortado, retornou %dPull de %s completadoTraz revisões do repositório remotoTraz revisões do repositório remoto %sPull: traz mudanças da URL selecionadaTraz revisões de entrada para o seu repositório (pull)Trazer sub-repositórios de:Pull até aqui...Marcador remoto recebido: %sFazendo pull de %s...Remover CompletamenteExpurgar Fila de PatchesPropósitoPus&hPush de &TodasPush Após CommitPush Após Commit:Push exige SSLPush do &Ramo SelecionadoEnviar todasFaz o push do ramo atual (%s)Envia revisões para o repositório remotoEnvia revisões para %sPush: envia mudanças para a URL selecionadaPush para %s abortadoPush para %s abortado, retornou %dPush para %s completadoPush Até &AquiFazer o push para o repositório remoto %s ?Push até a revisão atual (#%d)Push até a revisão #%dMarcador local enviado: %sFazendo push para %s...QNewQRefreshConsultarConsulta revisões que afetam os arquivos selecionadosFecharR&emover MarcadorOpções do Registro de R&epositóriosR&ollback/Undo...README não configuradoRe&cuperarRe&mover VersionadoRe&mover do RegistroRe&nomearRe&nomear Patch...Re&nomear...Somente Leitura*ProntoPronto para remover arquivos.Pronto, duplo clique para bloquear ou desbloquearRebasear (--rebase)Rebase - %sRebase - rebaseia revisões locais sobre as revisões trazidasRebase - usa a extensão rebase (rebase não está ativa!)Rebase abortadoO rebaseamento já está em progressoRebasear revisão e seus descendentesRebaseia todo o ramo de origem (-b/--base)Rebase falhouO rebaseamento gerou conflitos de mesclagem que devem ser resolvidosRebaseamento completadoRebaseia revisões não publicadas para a cabeça do Subversion (sobrepõe origem e destino)Rebasear...Executa recursivamente em sub-repositóriosExecutar recursivamente em sub-repositórios (--subrepos)Informações de autenticação redundantesRelerAtualizar Aba de &TarefasAtualizar Barra de FerramentasRenova o patch atualAtualizar o repositório atualAtualizar lista de arquivosAtualiza informação de bloqueioAtualiza apenas a aba de tarefas atualRelê a lista de registros de repositórioAtualizando bloqueios...Expressão RegularExpressão regular:Padrão de busca de expressão regularRejeita revisões de entradaCaminhos Relacionados:RelerReler ArquivoRemo&ver Sub-repositório...Atualização Remota - %sComando remoto:RemoverRemover &Todos os Arquivos SelecionadosRemover Apenas Arquivos &Não ModificadosRemover Arquivos...Remover dados de autenticação desta URLRemover a revisão de trabalho atual?Deixa de versionar os arquivosRemover filtro, exibir raizRemover diretório de patches deRemover patches da fila?Remover os arquivos apagados marcados?Remove o nó e todos os seus sub-nós. Os repositórios não são apagados do disco.Remover o sub-repositório selecionado?Remove os revisores selecionadosRemove este sub-repositório da revisão atualMarcador local removido: %sMarcador remoto removido: %sEtiqueta %s removidaRenomearRenomeação - %sErro de RenomeaçãoRenomear ArquivoRenomear PatchRenomear Fila de PatchesRenomeia arquivo ou diretórioRenomear patch %s para:Renomear fila de patches '%s' paraRenomear patch...Renomear a entradaReabre a última aba fechadaReabre o último grupo de abas fechadoSubstituirSubstituir gancho existente?Substituir a etiqueta existente (-f/--force)Substituir os arquivos de patch existentes. Informa apenas a primeira ocorrência por arquivoRepositóriosRepositórioErro de RepositórioID do Repositório:Registro de RepositóriosRegistro de repositórios atualizadoConfigurações do RepositórioUm comando do repositório ainda está em execuçãoO repositório está bloqueadoNome do repositório a ser usado na interface web e pelo TortoiseHg como abreviação. O padrão é o diretório de trabalho.O repositório não é localEstado dos arquivos no repositórioExige confirmaçãoReexaminarResolução de Conflitos - %sConflitos resolvidosReiniciar &RamoReiniciar Mescla&gemReiniciar Mesclagem &ComReinicie todas as aplicações do TortoiseHg para que as seguintes mudanças façam efeito:A retomada do rebaseamento já está em progressoRevReverterReverter Todos os &Arquivos...Reverter - %sReverter Arquivos...Reverter todas as mudanças do arquivo?Reverter todos os arquivos para esta revisãoReverter todas as mudanças da cópia de trabalho?Reverte mudanças dos arquivosReverte os arquivos para seus conteúdos nesta revisãoReverter arquivos para a revisão local ou para o outro pai?Reverter mudanças locais dos arquivos?Reverter os seguintes arquivos?Reverte para RevisãoReverter todos os arquivos irá descartar mudanças e deixar os arquivos afetados em estado modificado.

                                                                                                              Tem certeza de que deseja reverter?

                                                                                                              (use o comando update para obter outra revisão)Revertendo changelist p4...Review BoardID da Análise:Rascunho da análise postado em %s Análise publicada em %s Filtro de RevisorRevisoresRevisores disponíveis no servidorRevisãoA revisão #%d (%s) foi exportada para:

                                                                                                              %s%s%s&Detalhes da RevisãoConjunto de RevisõesConsulta de Conjunto de RevisõesMenu de contexto de detalhes da revisãoA revisão mudou para:Revisão é &RuimRevisão é B&oaRevisão com a qual comparar:Revisão:Revisões com as quais comparar:Barra de Ferramentas DireitaDesfaz último commit e volta à revisão %dExecutar rollback para revisão %d (desfazendo o comando %s)?Executado após um changegroup ser adicionado em uma operação push, pull ou unbundle, mas antes da transação ser completada. O changegroup é visível para o programa do gancho. Isto permite que as novas mudanças sejam validadas antes de serem aceitas. O ID da primeira nova revisão é passado em $HG_NODE e o da última em $HG_NODE_LAST. O status de saída 0 permite que a transação seja completada. Status de saída diferentes de 0 farão com que a transação seja desfeita, e a operação push, pull ou unbundle falhará. A URL de origem das revisões é passada em $HG_URL.Executado após um changegroup ser adicionado em operações push, pull ou unbundle. O ID da primeira revisão nova é passado em $HG_NODE, e o da última em $HG_NODE_LAST. A URL de origem das mudanças é passada em $HG_URL.Executado após uma revisão ser criada mas antes da transação ser completada. A revisão é visível para o programa do gancho. Isto permite que as novas mudanças e a mensagem de consolidação sejam validadas. O status de saída 0 permite que a transação seja completada. Status de saída diferentes de 0 farão com que a transação seja desfeita. O ID da revisão é passado em $HG_NODE. Os IDs das revisões pais são passados em $HG_PARENT1 e $HG_PARENT2.Executado após uma revisão ser criada no repositório local. O ID da nova revisão é passado em $HG_NODE. Os IDs das revisões pais são passados em $HG_PARENT1 e $HG_PARENT2.Executado após uma revisão ser trazida para o repositório local em uma operação pull, push ou unbundle. O ID da nova revisão é passado em $HG_NODE. A URL de origem da revisão é passada em $HG_URL.Executado após uma pushkey (como um marcador) ser adicionado ao repositório. O espaço de nomes de chave é passado em $HG_NAMESPACE, a chave é passada em $HG_KEY, o valor antigo (se houver) é passado em $HG_OLD, e o novo valor é passado em $HG_NEW.Executado após a criação de uma etiqueta. O ID da revisão etiquetada é passado em $HG_NODE. O nome da etiqueta é passado em $HG_TAG. Uma etiqueta local é indicada por $HG_LOCAL=1; uma global, por $HG_LOCAL=0.Executado após listar pushkeys (como marcadores) no repositório. O espaço de nomes de chave é passado em $HG_NAMESPACE. $HG_VALUES é um dicionário contendo as chaves e valores.Executado após o envio de mudanças do repositório local para algum outro. O ID da primeira revisão enviada é passado em $HG_NODE. A origem da operação é passada em $HG_SOURCE.Executado após uma atualização do diretório de trabalho. O ID de revisão do novo primeiro pai é passado em $HG_PARENT1. No caso de uma mesclagem, o ID do novo segundo pai será passado em $HG_PARENT2. Se a atualização tiver sucesso, $HG_ERROR=0. Se a atualização falhar (por exemplo, por apresentar conflitos não resolvidos), $HG_ERROR=1.Executado antes de um changegroup ser adicionado em operações push, pull ou unbundle. O status de saída 0 permite que o changegroup seja processado. Status diferentes de zero farão com que a operação push, pull ou unbundle falhe. A URL de origem das mudanças é passada em $HG_URL.Executado antes de uma pushkey (como um marcador) ser adicionada ao repositório. Status de saída diferentes de zero farão com que a chave seja rejeitada. O espaço de nomes de chave é passado em $HG_NAMESPACE, a chave é passada em $HG_KEY, o valor antigo (se houver) é passado em $HG_OLD, e o novo valor é passado em $HG_NEW.Executado antes da coleta de mudanças a serem enviadas do repositório local para algum outro. Status de saída diferentes de zero causarão uma falha. Desta forma, você pode impedir operações pull por HTTP ou SSH. Também previne comandos pull, push (de saída) ou bundle locais, embora esta prevenção não seja efetiva, já que os arquivos locais ainda poderão ser copiados. A operação de origem é passada em $HG_SOURCE. Se esta tiver o valor "serve", a operação ocorre através de SSH ou HTTP envolvendo um repositório remoto. Se tiver os valores "push", "pull" ou "bundle", a operação lida com um outro repositório no mesmo sistema.Executado antes da criação de uma etiqueta. O status de saída 0 permite que a etiqueta seja criada. Status de saída diferentes de 0 causarão uma falha do comando. O ID da revisão a ser etiquetada é passado em $HG_NODE. O nome da etiqueta é passado em $HG_TAG. Uma etiqueta local é indicada por $HG_LOCAL=1; uma global, por $HG_LOCAL=0.Executado antes de listar pushkeys (como marcadores) do repositório. Status de saída diferente de zero causará uma falha. O espaço de nomes de chave é passado em $HG_NAMESPACE.Executado antes de iniciar um commit local. O status de saída 0 permite que o commit seja realizado. Status diferentes de zero fazem com que o commit falhe. Os IDs das revisões pais são passados em $HG_PARENT1 e $HG_PARENT2.Executado antes de uma atualização do diretório de trabalho. O status de saída 0 permitirá a atualização. Status de saída diferentes de 0 impedirão a atualização. O ID de revisão do novo primeiro pai é passado em $HG_PARENT1. No caso de uma mesclagem, o ID do novo segundo pai será passado em $HG_PARENT2.Executando em %sExecutando...RussoBarra de S&tatusBarra de S&incronizaçãoS&incronizarServidor SMTPSenha SMTPPorta SMTPSMTP TLSNome de usuário SMTPComando SSHErro SSL: %sSSL: A verificação do certificado do servidor falhouSSL: erro desconhecido %s:%sSal&var Caminhos de Sincronização Atuais ao SairGravarSalva (Global)&Gravar Repositórios Abertos ao SairSalvar CaminhoSalvar mudanças antes de editar?Salva a URL atual sob um apelidoSalvar relatório de erros emSalva o arquivo com o conteúdo que possuía na revisãoSalvar arquivo emGravar configuração hgwebSalva (Repositório)Varrer Repositórios &RemotosPesquisarHistórico de PesquisaProcura o Texto SelecionadoBusca já em andamentoBusca o texto em mensagem de consolidação, nome de usuário e nomes de arquivos modificados.Busca por padrões em revisões do arquivoProcura em Todo o &HistóricoProcurandoProcurando...O segundo pai de todas as revisões do conjunto, ou do diretório de trabalho.Patches MQ SecretosConexão HTTPS SeguraSegurançaSegurança: Selecionar &Todos&Desmarcar TodosSelecione Arquivo de DestinoSelecão da Pasta de DestinoSelecionar diretório contendo patchesSelecionar RepositórioSelecionar Arquivo de OrigemSelecão da Pasta de OrigemSelecionar Ferramenta:Selecione o Arquivo de Cadeia do Certificado de UsuárioSelecione o Arquivo da Chave do Certificado de UsuárioSelecione um local da GUI para editar:Selecione um repositório existente a ser adicionado como sub-repositórioSelecione o ramo para consolidação da mesclagemSelecione arquivo bundleSelecione repositório de destinoDetermina se o TortoiseHg mostrará uma combo de alvo na barra de sincronização.

                                                                                                              • auto: O padrão. Mostra a combo se mais de um alvo estiver configurado.
                                                                                                              • always: Sempre mostra a combo.

                                                                                                              Padrão: autoSelecionar pasta de patchesSelecionar patchesSelecione a operação a ser feita automaticamente após um pull para este repositórioSelecione o repositórioSelecione o diretório do repositório a ser adicionadoSelecionar diretório do repositório a ser abertoSelecione repositório de origemSeleciona a revisão inicial que será selecionada ao abrir um repositório. Você pode selecionar "current" (o pai do diretório de trabalho), a "tip" atual ou "workingdir" (o conteúdo do diretório de trabalho). O padrão é "current".Seleciona o widget inicial que será mostrado ao abrir um repositório. O padrão é: revdetails.Selecione as revisões que serão por default enviadas em um push, sempre que você clicar no botão Push.

                                                                                                              • all: O padrão. Envia todas as mudanças em todos os ramos.
                                                                                                              • branch: Envia todas as mudanças no ramo atual.
                                                                                                              • revision: Envia as mudanças no ramo atual, até a revisão atual.

                                                                                                              Padrão: allSelecione a barra de ferramentas ou menu a ser modificadoDetermina quando o TortoiseHg mostrará uma janela de seleção para ativar um marcador ao atualizar para uma revisão que contenha um ou mais marcadores.

                                                                                                              • auto: Ao atualizar para uma revisão que contenha apenas um marcador, este será ativado automaticamente. Mostra a janela de seleção apenas se houver mais de um marcador na revisão de destino.
                                                                                                              • prompt: O padrão. Mostra a janela de seleção ao atualizar para uma revisão que contenha um ou mais marcadores.
                                                                                                              • never: Nunca exibe a janela de seleção para ativar marcadores.

                                                                                                              Padrão: promptSeleciona quando serão relidas mudanças na lista de status do diretório de trabalho:
                                                                                                              - auto: [padrão] o TortoiseHg irá decidir quando reler a lista de status do diretório de trabalho.
                                                                                                              O TortoiseHg irá atualizar a lista de status sempre que realizar uma ção que possa potencialmente modificar o diretório de trabalho. Isso pode não incluir mudanças que acontecerem fora do controle do TortoiseHg;
                                                                                                              - sempre: em adição às atualizações automáticas acima, também relê a lista de status sempre que o usuário clicar na "revisão do diretório de trabalho" ou no "ícone de Commit" na barra de tarefas da workbench;
                                                                                                              - alwayslocal: como em "always" mas restringe releituras forçadas a repositórios locais.
                                                                                                              Padrão: autoSelecione em que momento seu comando será executadoEspecifica se deve ser usada uma única janela Workbench. Se esta opção for desabilitada, uma nova janela do TortoiseHg será aberta a cada vez que o comando "Hg Workbench" do menu de contexto do Windows Explorer for ativado. Padrão: TrueSelecionadosO par de revisões selecionado não é relacionadoEnviar &E-mailEnviar revisões como patches HgEnvia um bundle binário único ao invés de patchesEnviando E-mailServidorID do Servidor de RepositóriosServidoresDefinir &Guardas...Ancestralidade de ConjuntosDefinir Data:Lógica de ConjuntosNome de usuárioConfi&guraçõesConfiguraçõesArquivo de Configurações:Vários caracteres seriam perdidos.Vários ícones são cortesia dos projetos TortoiseSVN e TangoM&ostrar Registro de RepositóriosAdiamentoAdiamento sem conteúdoAdiamento removidaAdiamento: %sShellShelve - adia mudanças locais para um patchArmazenar Mudanças na ShelveDetermina se novas abas devem ser abertas após a aba atual. Se False, novas abas serão abertas após a última aba. Padrão: TrueMostrar &AutorMostrar &DataMostrar Fila de &PatchesMostrar &CaminhosMostrar &RevisãoMostra a janela AboutMostrar Conso&leMostrar DetalhesMostra Linha de FamíliaMostrar FunçãoMostrar ÍconeMostrar TíquetesMostrar Tíquetes...Mostrar LogMostrar Log de SaídaMostra &Detalhes da RevisãoMostrar Caminhos &CurtosMostra Aba de Ta&refasMostra o caminho completo do repositório no título da janela ao invés de apenas o nome do diretório raiz. Padrão: FalseMostrar TodosMostra a árvore de todos os arquivos sob controle de versãoMostra mudanças a partir do primeiro paiMostra mudanças a partir do segundo paiMostra os arquivos modificados por esta consolidaçãoMostra o nome completo do autor na visualização de log. Se não for habilitado, mostra apenas uma parte curta, geralmente o nome sem o endereço de email. Padrão: FalseMostra dependências indiretas entre revisões do grafo filtrado por revset. Padrão: True

                                                                                                              Nota: O cálculo de linhas de família pode ser lento em alguns casos. Esta opção deve ser removida se esse problema de desempenho for resolvido.Mostra abas na lateral da metade inferior de cada widget de repositório, permitindo a troca de abas de tarefas sem usar a barra de ferramentas. Padrão: off (desligado)Mostra etiquetas no começo da mensagem de consolidação.Exibe o histórico do arquivo selecionadoMostra em qual função cada mudança ocorre. Padrão: FalsoMostra/Oculta revisões ocultasAssi&nar...Assinatura - %sAssine mesmo que o arquivo de assinatura esteja modificado (-f/--force)A assinatura foi adicionadaSimplelockExtensão simplelock não habilitadaJanela Workbench ÚnicaTamanhoTamanho (KB)Omite a página de confirmação final, fecha após o commit.Omitindo %s, incapaz de lerAlguns dos arquivos selecionados ocupam mais de 10 MB. Você pode fazer um uso mais eficiente do espaço em disco adicionando esses arquivos como largefiles, o que armazenará apenas a versão mais recente de cada arquivo em seu repositório local, mantendo revisões mais antigas disponíveis no servidor. Você deseja adicionar estes arquivos como largefiles?Ordenar pelo &NomeOrdenar pelo &CaminhoOrdena conjunto de acordo com as chaves. A ordem padrão é ascendente, especifique uma chave como "-chave" para ordem descendente.Ordenar o grupo pelo caminho completoOrdenar o grupo pelo nome curtoFonteA origem não existe.Origem:Sudeste EuropeuSul EuropeuLista separada por espaços de nomes de ramos e cores, com a forma: "nome:#XXXXXX". Espaços e dois pontos no nome do ramo devem ser prefixados com uma barra invertida (\). Outros caracteres podem ser codificados da mesma maneira; por exemplo \u0040 será decodificado como o caractere @, e \n como uma mudança de linha. Padrão: nenhum (em branco)Lista separada por espaços de operações de shell que você gostaria que fossem executadas imediatamente, sem interação com o usuário. Os comandos são "add remove revert forget". Padrão: None (deixe em branco)Lista separada por espaços de etiquetas que não serão exibidas. Um exemplo útil: especifique "qbase qparent qtip" para ocultar as etiquetas padronizadas inseridas pela extensão Mercurial Queues (MQ). Padrão: nenhuma (em branco)Especifique o nome do novo adiamentoEspecifique o comando a ser executado para abrir sua aplicação de terminal de shell preferida. Se o valor incluir a string %(reponame)s, ela será substituída pelo nome do repositório; similarmente, %(root)s será o caminho completo para o repositório. É necessário reiniciar a aplicação para aplicar mudanças nesta configuração.
                                                                                                              O padrão no Windows é: cmd.exe /K title %(reponame)s
                                                                                                              O padrão no OS X é: indefinido
                                                                                                              O padrão em outras plataformas é: xterm -T "%(reponame)s"Especifica o número de espaços para os quais uma tabulação deve expandir em diversas janelas do TortoiseHg. Padrão: 8Especifica o caminho para GPG. Padrão: gpgEspecifica os tipos de sistemas de arquivo nos quais o TortoiseHg deve monitorar mudanças em repositórios: 'always' (todos) ou 'localonly' (apenas locais, excluindo unidades de rede). Padrão: localonlyEspecifica a ferramenta de diff visual, como descrito na seção [merge-tools] dos seus arquivos de configuração do Mercurial. Se deixada em branco, o TortoiseHg usará a ferramenta de mesclagem selecionada. Se isso não funcionar, ele usará a primeira ferramenta adequada que encontrar.Especifica o editor visual, como descrito na seção [editor-tools] dos arquivos de configuração do Mercurial. Se não for especificado, o TortoiseHg usará a primeira ferramenta adequada que encontrar.Especifica quais botões de tarefas serão exibidos na barra de ferramentas de tarefas, e em qual ordem.
                                                                                                              Digite uma lista de nomes de botões de tarefas. Separadores podem ser adicionados usando o caractere "|".
                                                                                                              Os nomes válidos são: log, commit, sync, manifest, grep e pbranch.
                                                                                                              Valor padrão: log commit manifest grep pbranch | syncEspecifique seu idioma preferido para a interface (é necessário reiniciar)IniciarInicia um novo ramo de patchesRevisão inicial:Inicia um servidor web para esse repositórioStatStatusBarra de Status de ArquivosEstado:PararInterrompe a operação atualParadoRiscadoStrip - %sStrip:ListrasA remoção de cabeçalhos do Mercurial remove nomes de usuário e informações de ancestrais. Só é útil se o destinatário não estiver usando o Mercurial (e não gostar de ver esses cabeçalhos).EstiloItens no submenu:Assunto:Submetendo changelist p4...O sub-repositório '%s' possui uma URL defaul não-trivial:

                                                                                                              %s

                                                                                                              Substituir esta URL pela seguinte? :

                                                                                                              %sSub-repositório adicionado ao arquivo .hgsubSub-repositório criado e posicionado na revisão inicial.Sub-repositório atualizado para a revisão:O sub-repositório pode estar danificado ou inacessível.Sub-repositório removido do repositório.O estado do sub-repositório é:Estados de sub-repositóriosO sub-repositório não foi modificado.O sub-repositório já existeSub-repositório não encontradoSub-repositório não encontrado no diretório de trabalhoSub-repositório removido do .hgsubSubversion:SucessoSucessores:Comprimento sugerido das linhas de mensagens de consolidação. Uma linha vertical vermelha marcará este comprimento. CTRL-E irá ajustar o parágrafo atual ao comprimento de linha especificado. Padrão: 80Sumário (primeira linha da descrição)Tamanho da linha do sumárioSumário:Trocar origem com destinoSyncSincronizar MarcadoresSincronizarSincronizar com o repositório arrastadoSincroniza com repositórios remotosRealce de SintaxeCache de SistemaTLS 1.0TLS 1.1TLS 1.2Largura de TabulaçõesAba não pode existirA etiqueta '%s' foi adicionadaA etiqueta '%s' foi movidaA etiqueta '%s' foi removidaEtiqueta - %sEtiqueta:Etiquetada:Etiquetas:Usar a &OutraArquivo tar comprimido com bzip2Arquivo tar comprimido com gzipArquivos tarCombo de AlvosGrupos AlvoPessoas AlvoAlvo:Abas de TarefasOrdem na Barra de TarefasBarra de tarefasDesabilitar temporariamente o proxy HTTP configuradoArquivos temporários são removidos ao fechar este diálogoTerminado pelo usuárioTeste esta revisão e informe o resultado. (boa/ruim/desconsiderada)Falha na Tradução do TextoArquivos de texto (*.txt)Descrição visual do destino ou conteúdo do repositório.TailandêsO arquivo .hgsub já contém a linha:

                                                                                                              %sAs mudanças da revisão %s e todos os seus ancestrais não mesclados serão descartadas. Você tem certeza de que é isso o que você deseja fazer?O comando "%s" não pôde ser executadoO comando "%s" falhou (código %d).O comando que será executado. Para executar um comando do Mercurial use "hg" (e não "hg.exe") como executável. Você pode usar diversas {VARIABLES} para compor seu comando. Variáveis comuns: - {ROOT}: O caminho para o raiz do repositório atual. - {REV} / {REVID}: Respectivamente, o número ou o ID hexadecimal da revisão selecionada. - {SELECTEDFILES}: Os arquivos selecionados pelo usuário na lista de arquivos dos detalhes de revisão. - {FILES}: A lista de arquivos modificados pelas revisões selecionadas. - {ALLFILES}: Todos os arquivos rastreados pelo Mercurial nas revisões selecionadas. Variáveis disponíveis ao selecionar um par de revisões: - {REV_A} / {REVID_A}: O número / id hexadecimal da primeira revisão selecionada, respectivamente. - {REV_B} / {REVID_B}: O número / id hexadecimal da segunda revisão selecionada, respectivamente. O comando que será executado. Para executar uma função python coloque "python:" antes do comando. O id padrão para este repositório no servidor de review boardO destino "%s" é um arquivo existente!O destino "%s" é um diretório existente!O destino deve estar dentro da árvore do repositório.O diretório "%s" não está vazio! Você deseja sobrescrevê-lo?O diretório no qual o comando será executado. Se não estiver definido, será usado o raiz do repositório atual. Você pode usar as mesmas {VARIÁVEIS} da configuração \"Command\". O editor usado pelos comandos do Mercurial para receber do usuário entradas de múltiplas linhas. Mais notavelmente, mensagens de consolidação.A mensagem de erro da exceção foi:

                                                                                                              %s

                                                                                                              O arquivo "%s" já existe! Deseja sobrescrevê-lo?Foi devolvida a seguinte mensagem de erro: "%s" Por favor certifique-se de que o caminho para o comando seja válido e que seja uma aplicação válidaA seguinte mensagem de erro foi devolvida: %sO nome do gancho não pode conter espaços, tabulações ou caracteres '='.O nome do gancho (não pode conter espaços)O tamanho máximo do arquivo (em KB) para o qual o TortoiseHg irá mostrar alterações nas janelas de changelog, status e consolidação. O valor zero implica nenhum limite. O valor padrão é 1024 (1MB)O marcador pedido ou todos os marcadores.A etiqueta pedida ou todas as etiquetas.O número de revisões para ler e mostrar no visualizador de changelog de uma única vez. Valor padrão: 500A fase de novos commits. Padrão: draftO comando selecionado é vazioA pasta selecionada:

                                                                                                              %s

                                                                                                              não está dentro do repositório de destino.

                                                                                                              Ist é permitido, mas fortemente desencorajado.
                                                                                                              Se você quiser adicionar um mapeamento não trivial de sub-repositório, você deve editar o arquivo .hgsub manualmente.O repositório selecionado:

                                                                                                              %s

                                                                                                              não pôde ser aberto!O repositório selecionado:

                                                                                                              %s

                                                                                                              já é um sub-repositório de:

                                                                                                              %s

                                                                                                              as: "%s"A revisão selecionada (%s) contém um marcador chamado "%s".

                                                                                                              Você deseja ativá-lo?
                                                                                                              Você pode desabilitar esta janela na seção de configuração Workbench / Ativar MarcadoresA revisão selecionada (%s) contém %d marcadores.

                                                                                                              Selecione o marcador que você deseja ativar e clique OK.

                                                                                                              Cancele se você não deseja ativar nenhum marcador.

                                                                                                              Você pode desabilitar esta janela de seleção através da configuração Workbench / Ativar Marcadores

                                                                                                              A revisão selecionada (rev #%d) não pode ser importada porque não é uma descendente de qparent (rev #%d)O sub-repositório selecionado:

                                                                                                              %s

                                                                                                              foi adicionado ao arquivo .hgsub do repositório:

                                                                                                              %s

                                                                                                              Para concluir a adição do sub-repositório você ainda precisa consolidar as mudanças do arquivo .hgsub.O sub-repositório selecionado foi removido do arquivo .hgsub.

                                                                                                              Lembre-se de consolidar esta mudança no .hgsub para completar a remoção do sub-repositório!O sub-repositório selecionado não foi encontrado no arquivo .hgsub.

                                                                                                              Talvez ele já tenha sido removido?O conjunto de todos os pais para todas as revisões no conjunto.A origem deve estar dentro da árvore do repositório.O sub-repositório está sujo.O ícone da ferramenta. Você pode usar o nome de qualquer ícone do TortoiseHg (como clone, add, remove, sync, thg-logo, hg-update, etc) ou o caminho absoluto para um arquivo de ícone no sistema de arquivos.O rótulo da ferramenta, que será mostrado no menu de contexto de revisões. Se nenhum rótulo estiver definido, o nome da ferramenta será usado. Se nenhuma tooltip estiver definida, o rótulo será usado como tooltip.O nome da ferramenta não pode conter espaços.O nome da ferramenta. Não pode conter espaços.A tooltip que será mostrada no botão da ferramenta. Ela só será exibida se o próprio botão da ferramenta for exibido na barra de ferramentas da workbench.O diretório de trabalho já foi mesclado. Continue ou descarte a mesclagem atual.Existem arquivos de patch para %d revisões (%s) no local selecionado (%s). Há conflitos de mesclagem que devem ser resolvidosNão há caminhos de sincronização configurados. Use a Aba de Sincronização para configurá-los.Não há mesclagens de arquivos conflitantes.Não existem alterações de arquivos para verNão há arquivos que possam ter sido renomeadosJá existe uma pasta com o mesmo nome.Já existe um gancho %s.%s . Você deseja substituí-lo?Não há registro de transação disponível para o rollbackEstes usuários serão notificados sobre a revisãoThg - Ferramentas de Interface Gráfica do TortoiseHg para o Mercurial (Hg) Isto parece ser um arquivo binário.Este erro não será mostrado novamente até que a workbench seja reiniciadaUtilitário de Merge de 3 ViasTítuloParaPara terminar a mesclagem, você deve consolidar o diretório de trabalho. Para cancelar a mesclagem, você pode atualizar para um dos pais da revisão de mesclagem.Para o destino do enxertoPara o destino do rebaseamentoPara:Alternar exibição da barra de busca de textoAlterna a filtragem de revisões não correspondentesAlterna visibilidade de relações de enxertoAlterna o pai a ser usado como revisão baseTolerar mudanças locais não conflitantes (--keep-changes)Número excessivo de linhas selecionadas para o menu&Resolver com a FerramentaRótulo da ferramentaFalha ao lançar a ferramentaNome da ferramentaFerramentasFerramentas exibidas no local selecionadoTooltipItens no menu principal:Tóp&ico...O tópico '%s' não existeO tópico '%s' foi adicionadoO tópico '%s' foi removidoO tópico '%s' foi renomeado para '%s'Tópico - %sTópico:TortoiseHg Sincronização de MarcadoresRelatório de defeitos do TortoiseHgJanela de Comandos do TortoiseHgConsolidação do TortoiseHgDiálogos do TortoiseHg (versão %s), Mercurial (versão %s) Erro do TortoiseHgFerramenta de Bloqueio do TortoiseHg - %sTortoiseHg: Novo Nome de AdiamentoServidor de Ícones Sobrepostos do TortoiseHgPrompt do TortoiseHgBusca do TortoiseHgConfigurações do TortoiseHgTortoiseHg Shelve (Adiamento) - %sServidor Web do TortoiseHgWorkbench do TortoiseHgO TortoiseHg criou um novo arquivo .hgignore . Você gostaria de adicionar esse arquivo ao repositório?TortoiseHg: %sChinês TradicionalTransplante:Executa consulta pelo conjunto de revisõesTente reler seu repositório.TurcoTipoU&nbundle...Idioma da InterfaceURLErro URL: %sUcranianoIncapaz de fazer o backoutNão é possível comprimir o históricoIncapaz de criar um arquivo .ini do MercurialNão é possível criar um arquivo de configuraçõesIncapaz de remover %d arquivo ou pastaIncapaz de remover %d arquivos ou pastasIncapaz de determinar revisões pendentesNão é possível determinar a cópia de trabalho da revisão Incapaz de localizar revisãoNão é possível mesclarIncapaz de mesclar trechosIncapaz de decodificar a saída de p4pendingIncapaz de ler o arquivoNão é possível ler o status do repositórioIncapaz de removerIncapaz de remover URLIncapaz de remover o arquivo %s, permissão negadaIncapaz de salvar ação de push após commitIncapaz de salvar uma URLNão é possível gravar a autenticaçãoIncapaz de salvar lista de auto inclusãoIncapaz de salvar operação a ser feita após o pullIncapaz de salvar opção de recursão nos sub-repositórios.Incapaz de salvar nome de usuárioNão é possível mostrar arquivos do sub-repositórioIncapaz de iniciar o seguinte comando:Incapaz de traduzir a entrada para a codificação local.Incapaz de traduzir uma mensagem para a codificação local. Considere ajustar a variável de ambiente HGENCODING. Substituir caracteres não traduzíveis por "?"? Incapaz de atualizar nome do repositórioIncapaz de escrever arquivo .hgignoreNão foi possível escrever o arquivo de configuraçãoIncapaz de escrever arquivo diffIncapaz de escrever no arquivoDesaplica todos os patchesDesaplicar um patchUnbundleDesmarcarDesmarcar todos os arquivosDesmarque para considerar todos os arquivos versionados como possíveis origens de cópiasMesclagem não consolidada - por favor selecione uma revisão paiArquivo tar não comprimidoArquivo zip não comprimidoSublinhadoReabrir outras abasReabrir abaDesfazer a última consolidação?Desfazer a última transação?Desfazer a consolidação mais recente (%d), preservando mudanças nos arquivos?UnicodeChinês UnificadoRevisão desconhecida!O desbloqueio de %s falhou, tente novamenteDesbloqueio de %s realizado com sucessoDesbloqueando %sConflitos não resolvidosOs conflitos permanecem não-resolvidos. Tem certeza?Mudanças não gravadas serão perdidas. Você deseja reler?Tipo de repositório não suportado (%s)Não VersionadoAtualizarAtualizar - %sAtualizar - traz as revisões, e atualiza em seguidaAtualizar ÍconesAtualizar AnáliseAtualiza os ícones do repositórioAtualiza em incomingCria ou atualiza um apelido de caminho '%s' em todos os sub-repositórios, usando esta URL como base e anexando a ela o caminho relativo do sub-repositório.Atualizar caminhos de sub-repositóriosAtualizar os campos deste pedido existenteAtualizar para:Atualiza o diretório de trabalho para uma revisãoAtualiza o diretório de trabalho ou muda de revisãoUpdate... (obter revisão)UpdateOrRebase - faz pull, e em seguida tenta update ou rebaseUpdateOrRebase - use a extensão rebase (rebase não está ativa!)Atualizando registro de repositóriosRecomenda-se atualizar para uma versão mais recente do TortoiseHg.Use mensagem em inglês para a anulaçãoUsar mensagem de consolidação em inglêsUsa um algoritmo alternativo para disposição do grafo para repositórios grandes. Padrão: False (desativado)

                                                                                                              Nota: Isto colore arestas usando informações de ramo e não mostra arestas de enxerto, mesmo que sejam pedidas.Exibir em modo compactoUsar a data atualUsar mensagem de consolidação personalizada:Usar formato de patch estendido (git)Usa o formato estendido de diff do git. Padrão: FalsoUsar largefilesUsar o nome de usuário atual ao invés do autor da revisão original enxertadaUsar disposição otimizada no grafoUsar servidor proxyUsar o protocolo pull para copiar metadadosUsuárioAutenticação de UsuárioCache do UsuárioCadeia do Certificado de UsuárioChave do Certificado de UsuárioDados de autenticação de usuário devem ser associados a este nome de servidor usando a caixa de diálogo de segurança.Nome de usuário para autenticar com a review boardUsuário:Nome de UsuárioNome de usuário para autenticar no servidor de emailVerifique a revisão a ser anulada e garanta que seu diretório de trabalho esteja limpo.Verifique os alvos da mesclagem e garanta que o diretório de trabalho esteja limpoVerifica usando uma Autoridade Certificadora (melhor)Verifica usando uma impressão digital armazenada (boa)V&er ArquivoVietnamitaVer Arquivo naVer Ou&troVer mudança como diff unificadoExibe o histórico de mudanças do repositórioExibe histórico de mudanças dos arquivos selecionadosVer mudança no contexto do arquivoVisualiza diferenças com o estado atual em uma ferramenta de diff externaExibe alterações usando uma ferramenta gráfica de diferençasVisualiza o conteúdo do arquivo correspondente a esta revisãoVisualiza mudanças de arquivo em uma ferramenta de diff externaVisualiza as configurações do repositórioDiferença visualFerramenta de Diff VisualDiff Visual...Visual Diffs - Editor visualDiff visual entre arquivo resolvido e primeiro paiDiff visual entre arquivo resolvido e segundo paiDiff visual...Diffs visuais de arquivos em sub-repositórios não são suportados. Eles não serão exibidos.Diff visual de três viasAvisoAviso: isso afeta todos os clientes Tortoise, e é necessário deslogar após a mudançaFoi renomeado deServidor WebConfiguração WebEuropa OcidentalO que você gostaria de fazer? Ao consolidar, exige que uma referência para um tíquete seja especificada. Se habilitada, a expressão regular configurada em 'Issue Regex' deve encontrar uma correspondência na mensagem de consolidação.Se habilitado, mostra automaticamente o log de saída ao executar o comando. Padrão: False.Ao executar pela linha de comando, cria um processo em segundo plano para executar janelas gráficas. Esta configuração é ignorada ao executar o TortoiseHg como um pacote de aplicativo do OSX. Valor padrão: TrueSe definida como 'auto', a mq automaticamente usará patches no formato git se for necessário para evitar perda de mudanças de modos de execução dos arquivos, registros de cópia ou arquivos binários. Se definida como 'keep', a mq obedecerá a seção de configuração [diff] ao preservar patches git existentes durante um qrefresh. Se definida como 'yes' ou 'no', mq ignorará a seção [diff] e sempre gerará patches git ou comuns, com possível perda de dados no segundo caso. Padrão: autoDetermina se confirmações do usuário serão solicitadas para a atualização do arquivo de configuração "projrc" local quando o arquivo projrc remoto mudar. Os valores possíveis são:

                                                                                                              • always: [padrão] Sempre solicita confirmação antes de atualizar o arquivo .hg/projrc local.
                                                                                                              • first: Abre uma janela de confirmação quando o repositório for clonado ou quando um arquivo projrc remoto for encontrado pela primeira vez.
                                                                                                              • never: Atualiza o arquivo .hg/projrc local automaticamente, sem pedir confirmação.
                                                                                                              Determina se sub-repositórios do Git são permitidos no diretório de trabalho. Padrão: False

                                                                                                              Veja a nota de segurança antes de habilitar sub-repositórios do Git.Determina se sub-repositórios do Mercurial são permitidos no diretório de trabalho. Padrão: TrueDetermina se sub-repositórios do Subversion são permitidos no diretório de trabalho. Padrão: False

                                                                                                              Veja a nota de segurança antes de habilitar sub-repositórios do Subversion.Especifica se o repositório deve aceitar push para os usuários. Se vazio ou não definido, push não é permitido. O valor especial "*" faz com que qualquer usuário remoto possa enviar revisões, incluindo usuários não autenticados. De outro modo, apenas operações push de usuários autenticados presentes nessa lista (separada por espaços ou ",") serão aceitas. O conteúdo dessa lista de aceitação é examinado após o conteúdo da lista de restrição.Especifica se o repositório deve recusar push para os usuários. Se vazio ou não definido, push não é negado. O valor especial "*" faz com que o push não seja aceito para nenhum usuário remoto. De outro modo, operações push de usuários presentes nessa lista (separada por espaços ou ","), além de usuários não autenticados, serão recusadas. O conteúdo dessa lista de restrição é examinado antes do conteúdo da lista de aceitação.Se SSL deve ser exigido para revisões de entrada para prevenir vazamento de senhas.Que mapa de estilos usarE&spaço em BrancoDocumentos do Word (*.doc *.docx)Operar na fila de patches (--mq)WorkbenchColunas de Log da WorkbenchBarra de ferramentas personalizada da workbenchCópia de TrabalhoDiretório de TrabalhoDiretório de Trabalho (mesclado)Diretório de trabalhoO diretório de trabalho não está limpo! Visualizar mudanças...Status do diretório de trabalhoDar a volta na buscaEscrever bundleEscrever arquivo diffEscrever descrição da série de patches (bundle)Você está tentando mover a fase da revisão %d para trás, de "%s" para "%s". No entanto, "%s" é um nível de fase menor que "%s". Mover a fase para trás não é recomendado. Por exemplo, modificar uma revisão que já foi enviada para um servidor pode resultar na criação de múltiplas cabeças. Seja cuidadoso!Você pode mudar o conjunto de ícones nas configurações do TortoiseSVNVocê só pode liberar seus próprios bloqueiosVocê pode visitar nossa página aquiNão é possível mesclar uma revisão com ela mesmaVocê possui informações de autenticação configuradas para este servidor e passadas dentro da URL. Retirar informações de autenticação desta URL?Você marcou todos os trechos rejeitados do patch como resolvidos, mas não modificou o arquivo no painel de edição. Isto provavelmente significa que nenhum código presente nos trechos rejeitados do patch foi incorporado ao arquivo. Você tem certeza que deseja deixar o arquivo como está e considerar todos os trechos do patch como resolvidos? Fazer isso poderia por exemplo apagá-los de um adiamento, o que faria com que fossem perdidos definitivamente! Você tem certeza que deseja aceitar o arquivo como está, descartando todos os trechos do patch?Existem múltiplas renomeações selecionadas para o arquivo de destino: %s. Abortando!Você selecionou um ou mais arquivos modificados. Por padrão, tais arquivos não seriam removidos. O que você gostaria de fazer?Você provavelmente precisa reler os dadosVocê pode começar ou continuar o enxertoVocê pode continuar a compressãoVocê pode continuar o enxertoVocê pode continuar o rebaseamentoVocê deve colocar um nome de patchVocê precisa identificar-se para o MercurialVocê deve fornecer revisões a serem enxertadasVocê deve passar os parâmetros origem e destinoVocê deve passar o caminho de um arquivoVocê deve definir um comando a ser executado.Você deve definir um nome de ferramenta.Você deve selecionar um tipo de gancho válido.Esta versão do TortoiseHg está atualizada.Sua revisão de trabalho atual (%d) será removida por este rollback, deixando mudanças não consolidadas. Continuar?Arquivo zip comprimido usando deflateArquivos zip[--after PATCH] PATCH...[--insecure] [ORIGEM][Código: %d][AVISO] O sub-repositório modificado está incompleto. Para completá-lo, atualize para esta revisão.[AVISO] O sub-repositório está incompleto. Para completá-lo, atualize para esta revisão.[AVISO] ID de revisão de sub-repositório inválida: %s [AVISO] O sub-repositório modificado está faltando. Para cloná-lo, atualize para esta revisão.[AVISO] O sub-repositório está faltando. Para cloná-lo, atualize para esta revisão.[o comando completou com sucesso %s][comando interrompido %s][o comando devolveu o código %d %%s][comando terminado pelo usuário %s][inexistente][original][cópia de trabalho]uma revisão a ser postadauma revisão a ser enviadaabortado: abortado: %s abortado: %s! Commit (consolidar)adicionar saída do diffstat às mensagensadicionadotodas as revisões convertidas do subversionsempre desconecta processos GUI do terminala leitura assíncrona ainda não está implementadaanexarcomandos básicos: corpomarcador: ramo: arquivo bundle para pré-visualizarnão é possível ler o arquivo "%s". Ignorado. não se pode mover patches aplicadosnão é possível mover para patches aplicadosnão se pode especificar simultaneamente -k/--query e nomes de arquivorevisão %d:%svisualiza o conteúdo dessa revisão na ferramenta de diferençasrevisão que representa uma revisão convertida do subversionrevisão: %srevisão: %s (não encontrada no sub-repositório)limpoclona apenas o ramo especificadoIdadeAutorRamoMudançasConvertida DeDescriçãoNome de ArquivoCommit GitGrafoÚltimas etiquetasHora LocalNóFaseRevEtiquetasHora UTCerro de análise de comando: %sConsolidaçãoresultado de comando corrompido: %rpadrãodiffstatdescarta mudanças não consolidadas (sem backup)mostrar ajuda e sairnão faz backup das revisões removidasnão consolidar o arquivo sigfile após assinarnão faz fork do processo GUInão modificar a cópia de trabalho durante o stripnão verifica o certificado do servidor (ignorando a configuração web.cacerts)ativar saída adicionalhabilita saída de depuraçãoeol é incompatível com win32texterro ao ler da entrada de dadoserro ao executar comando modo executável foi ativadomodo executável foi desativadofalha ao codificar comando: %sfalha ao codificar entrada: %sfalha ao criar novo processo GUI: %s falha ao iniciar comando campo a receber o foco inicialo arquivo foi apagado, releiao arquivo foi modificado, releiaarquivosTodosNenhumpreenchendo (%d)filtroopções globais:grep: %s grep: padrão de correspondência inválido: %s hggit distribuído com o thghgsuberversion é incompatível com perfarcehgsubversion distribuído com o thgdica:dica: históricohttps://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings.html#tsvn-dug-settings-icon-setignora maiúsculas e minúsculas durante a buscaignoradoimportar para a fila de patches (MQ)no futuroinclui a revisão especificadapadrão de busca inicialem linhainotify não é suportado nesta plataformamensagem "hello" inválida: %rargumentos inválidosnúmero de linha inválido: %sfoi especificada uma posição de patch inválidamantém nomes de ramo originaismantém revisões originaisiniciar a ferramenta de diff visuallista de comandos: locallsprof não disponível - instale a partir de http://codespeak.net/svn/user/arigo/hack/misc/lsprof/faz uma assinatura localusa uma etiqueta localmescla com pai do diretório de trabalho original após o backoutmétodofaltandomodificadomove para depois do patch especificado'type' deve ser especificado no estiloo repositório deve ser especificadonome do arquivo de configuração do hgweb (OBSOLETO)nome do arquivo de configuração do hgweb (para servir mais de um repositório)é necessário mesclar %i cabeças é necessário mesclar com %s é necessário mesclar com %s (através de %s) é necessário atualizar a base do diff com a tip de %s não há funcionalidade "runcommand"nenhum comando especificadosem comandos definidos nenhuma guardanenhuma ocorrência encontrada: %snenhuma revisão a ser enviadanenhuma revisão a ser enviada no ramo atual (%s) / %d no totalnenhuma revisão a ser enviada até a revisão atual (#%d) / %d no totalnenhuma revisão a ser enviada até a revisão (#%d) / %d no totalnenhum repo em nenhuma revisão especificadanotifica o shell para os caminhos dadosagorarevisão nula (ou seja, remove os arquivos)apenas um novo marcador permitidosó é permitido um novo nome de tópicoabre uma nova janela workbenchabre a janela de sincronização de marcadoresabrir na linhaabrir...a opção --config não pode ser abreviada!opções: escolhe o pai a ser usado ao anular uma mesclagemsenha: o patch %s não está no arquivo seriesperfarce é incompatível com hgsubversionimprime perfil de execução do comandoimprimir licençao processo terminou inesperadamente com código %dpull: %s push: %sler lista de arquivos a partir do arquivolê lista de arquivos usando codificação utf-8rebaseia a partir da revisão especificadarebaseia para a revisão especificadagravar código de data como data de consolidaçãogravar o usuário como autor da consolidaçãoremove uma etiquetaremover o cache de estadoremove a cópia de trabalhoremovidosubstitui etiqueta existenterepositório %s não encontradodiretório raiz do repositório ou nome de caminho simbólicorequer um único nome de arquivorev: %d (%s)extensão reviewboard não habilitadarevisãoprimeiro pai da revisão %d (ou seja, a revisão %d)segundo pai da revisão %d (ou seja, a revisão %d)revisão a ser anotadarevisão a ser empacotadarevisão a ser anuladarevisão a ser exibidarevisão a ser mescladarevisão a ser removidarevisão a ser etiquetadarevisão para atualizarrevisão, etiqueta ou ramo a ser obtidorevisões %d:%s a %d:%srevisões a serem enxertadasrevisões a serem podadas (com prune)compara essas revisões na ferramenta de diferençasprocura por um texto ou revsetveja %(url)sseleciona a revisão especificadaarquivos selecionadosenviar patches como anexosenviar patches como anexos em linhaenvia patches como parte do corpo do emaildefine/redefine opção de configuração (use 'seção.nome=valor')mostra arquivos sem mudançasmostra arquivos ignoradosmostrar o conteúdo do estado do cache (sem atualizar)comparação lado a lado de revisõesassina mesmo se o arquivo sigfile estiver modificadoiniciar depuradorCommitAção MQRollbackstatussub-repositóriosuprimir saídacomando sync já está em execuçãoConsolidaçãoLog do consoleRamo de PatchesDetalhes da revisãoPesquisaSincronizaçãoo clone incluirá uma cópia de trabalho vazia (apenas um repositório)o id da chave com a qual assinara revisão a ser exibidathg %s: %s thg aboutthg add [ARQUIVO]...thg annotatethg archivethg backout [OPÇÃO]... [[-r] REV]thg bisectthg bookmarks [-r REV] [NOME]thg clone [OPÇÃO]... [ORIGEM] [DEST]thg commit [OPÇÕES] [ARQUIVO]...thg debugblockmatcherthg debugbugreport [TEXTO]thg debugconsolethg debuglighthgthg debugruncommand -- COMANDO [ARGUMENTO]...thg drag_copy ORIGEM... DESTthg drag_move ORIGEM... DESTthg email [REVISÕES]thg filelog [OPÇÃO]... ARQUIVOthg forget [ARQUIVO]...thg graft [-r] REV...thg grepthg guessthg help [COMANDO]thg hgignore [ARQUIVO]thg import [OPÇÃO] [ORIGEM]...thg init [DEST]thg lockthg log [OPÇÕES] [ARQUIVO]thg manifest [-r REV] [ARQUIVO]thg merge [[-r] REV]thg postreview [-r] REV...thg prune [-r] REV...thg purgethg rebase -s REV -d REV [--keep]thg rejects [ARQUIVO]thg remove [ARQUIVO]...thg rename [ORIGEM] [DEST]thg repoconfigthg resolvethg revdetails [-r REV]thg revert [ARQUIVO]...thg rupdate [[-r] REV]thg serve [--web-conf ARQUIVO]thg shellconfigthg shelvethg sign [-f] [-l] [-k CHAVE] [-m TEXTO] [REV]thg status [OPÇÕES] [ARQUIVO]thg strip [-k] [-f] [-n] [[-r] REV]thg sync [OPÇÃO]... [REMOTO]thg tag [-f] [-l] [-m TEXTO] [-r REV] [NOME]thg thgstatus [OPÇÃO]thg topics [-r REV] [NOME]thg update [-C] [[-r] REV]thg userconfigthg version [OPÇÃO]thg: %s thg: o comando '%s' é ambíguo: %s thg: comando desconhecido '%s' tempo expirado esperando por mensagemtempo expirado ao ler: %r...resposta inesperada no canal exigido %rdesconhecidoo patch a ser movido não foi encontradorevisão desconhecida!formato de profiling '%s' não reconhecido - Ignorado resposta não reconhecida: %sURL não suportada: %satualizar todos os repos no dir atualuse "thg -v help%s" para mostrar opções globaisuse "thg -v help%s" para mostrar apelidos e opções globaisuse "thg help" para a lista completa de comandosuse "thg help" para a lista completa de comandos ou "thg -v" para detalhesusa como mensagem de consolidaçãouse apenas uma forma para especificar a revisãousar o protocolo pull para copiar metadadosusa transferência não comprimida (mais rápida em uma rede local)versão %saguarde até o segundo passarserá fechadowin32ill: não foi possível criar janela para mensagenswin32ill: interrompido enquanto parava loop de mensagens win32ill: plataforma não suportada: %s win32text é incompatível com eolConsolidaçãocom Mercurial-%s, Python-%s, PyQt-%s, Qt-%sdiferenças de trabalhoLimpo&Nenhuma././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/ru/0000755000000000000000000000000014742203610014201 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1314144 tortoisehg-6.9/locale/ru/LC_MESSAGES/0000755000000000000000000000000014742203610015766 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033565.0 tortoisehg-6.9/locale/ru/LC_MESSAGES/tortoisehg.mo0000644000000000000000000113066314742203535020532 0ustar00rootrootl |Kܖܖ/ݖ& 4BQj ȗ  < [|$Ș) (8@WOY#8K;bA7:5pěɛΛ қ 1P fr    #@-d@ӝ 2 (6Eb} Ӟ). ANi   ßΟ ֟ !(:BVp vϠ+;DW h v ġʡѡס &8K Q\d w   ˢ" 7ARXko ѣ أ % 8BH Xbq yƤ פ  '3;R fqv|ϥ ץ $, 3=P Ub j v   ĦϦצݦ  "+1EKPh n{'ç#!; Yz Ȩ٨ , N6JЩ&!1FZCu;*-Iwԫ :$J'o'733+(_,#԰!08>[m s}%&  3=AQ dqʲ=: X frx >ʳ" 0,] y  !Ǵ ),)V=۵BR;)>)H!j" AO V0wӸ.D _k r:Ĺ;';*c !Y˺%,<M_nG:ʻ4 :DI8` Լ"3,D!q= ѽ  Aڿu 1G LYv& " '1 8FNWk  KWj B+F3]'!95)L<v+>8;?Fay," !8Zo.- /|[4*=.h611+2n^X&,@P"k,$ /I&c&  " ,&Ip 2 CDM,/?NiG_mC=1O ] ! .9 Hix &/"Fi r'+ $Vq#.MMj , DQd v!  :Qh"#  .%T3$Xgw | * &58*n* 5#6.Z.:8,IP_t+%&/L%|  7E _lu{9+>2.q.,&#6 EQf w*)"-Pf'  ' ,M _l'O#k+ #+1] w   '6ETcr*+ $-B-p1.#;X'pA&3!EMg2'@/1p87^r)  $ 5?O T^ q| ! :Mci|C/";LUf)B!8[U  4*5_(  !,E+a %(&7^p-x2'0 MZs "4 ;1UX&7@KFOUY8 +  -"?Mb$A:JP`:z;5<'dj3 ?4[*) !*LQWg<w&r   UZj p}    )7G aYn/n    &  & $I)sBc38a>a x M i q    I P FO M  E L=           $ 1 9 O  c m   Qm 8 !A;R6ei  & 2@UpYw+! /@GL [g{   Q +A FT/i8Lj     n u %  "/3 BO Q ] g u9(8w#!&71K} '  ) 7?A:)  G d^ m 1! 7!)B!l!!!!#!)!!">" ^"/l" "" ""-"B#I#^# o#|###$####,$*5$`$z$$$0$$%/%[4%@%;% && '&4& E& O&Y&j&|& & &&&&&&& & '''-'G'Y' j't'''''!''((-#(Q(h(())=)#N)Jr)()))*2*K*$k*******+&+"++, ,,0,7,(,-+%-Q-c-t------c.,.".....//8/,P/,}//!//%/=0]0%n0 0300# 1-1I2kY2h3f.4;44<g556666666 7#7 B7N7W7f7l7}777 7 7777,7*)8 T8^8 o8|8 888 88 8899;9U9e9 t9:9 :: ::::::;HK;G;;;<! <+< ?<*I< t<<<<!<&<& =(2=[=s=:="=#=*>!<>(^>>>>>.>>> >> ? ?&? F?g?~?? ???!???@ @ @;,@h@o@ u@@@@@@@' A-1A_AsAAAAAAAA AAA BB3B %AF U#a" Ɋъي +ENS[` f"r!  ċ ы ߋ )6D{7ƌߌ</44si'ݍ"K(dtBّ.0K3|>|2*;]4@N($ac(.L96bpӘ&f""Ec1U.ҝ͞+(̟}sU/TO%ԡ!-8J<**4!KBmţˣΣRg}!*!Τ-7V v   ԥܥ *!F hszæ8զ9SewtͧBQ eq  ƨҨ ֨ %#IGh&*ש+ Bc w+  ! ?"`#"&, 6 Ŭ"(BWk}92ڭ & ?I_n6ή֮ +8*M4x  ίگ !   *K^* )4,M z3=5Ie\m~352O"` ZӴ+.Z`,iC@ڵ5*Q |   "!ζ%-5 c)'ַ ! 12?3rT  <(e vXP\Ur\ + FPf C ( 4A'QUyH#<'XuF8+#-Hd'#*#:Ttl$ %2K aOlA,M+?y#5 DO^q  '& 07I NYb!y ,14 f*t' 3!I'k'>+"C#f/1 &Aaz   *2*Jue)1 P^~) -HayY,FMU^!}*>&?!T'v ;AU7  #";^~ ' ' '2*It ('##Bf /A \!i-..BTfv$! !.Pn}"&541G$y$@Og |   " % /Nd~,5J` is 9 O!Y{ 9 I+T#+:Udy'*-5U-g+6,FDs)")" L Wx+2#" ,-Z jNuO/&NDu)*!E1#w%D2"4U!</ C9H}!#T'x-/7i6Ap_SRF3M/13+e2'* /<6TI4*$OW5m?P42U(~B%E _m1(*19H'Z/#8)Fb' < 5CZl",4+&Ah#'*/0<` '& ?M-f&'  &$Ch @!4GW t/ #/S"X;{+0+@V.f!!/8Sc-z%" */>n &% (2 [  v   . %    A T >p   1 - 5 &E Cl    ( @  T (`      +  #4 X h x 5  "   &4F"Lo5&#<`v')=*Vh@>L?6:D1C*u+#' -2@`Nsf"03SQ.11Nla-O0}5d-I:w0&&@=VC1NuVM i ` YO!F!!aw"V"-0# ^#l#B}#### #$*$8@$Dy$:$!$&%B%\%+m%.%%6%:&2Y&8&@&;'B'T''( A(b(Js(2(())#)*)@)?)c*)j***,** +Q+/q+.+-+/+U.,U,9,--0-k-a.?/PV/?/t/ \0"g1.181 12d$2]2'263(F3@o3*3C3749W4#444"41555S53l555-5-6264G6f|66 7)7:7@,8;m8@889l:: :4:w:<M;A;,;2;P,<i}<#<f =0r==?$>d>>> >?@ABC4C4D7DLD1aD3D5D-DE+EqEAEE EE E FF 5F VF5dF&FdF!&HHH0_H,H0HH4zI I>IgI?cJdJPKBYKRKyK6iLBLL=qMDMM N NN?N2NO,=O2jOOeOXP/oPRPeP;XQJQlQlLRRRRmSWTnUqUoUpmVmVkLWXWX}X>Y2OY"Y4Y>YaZp{Z-[\(-\JV\\7\5\3%]9Y]j]]K^(\^^ ^^N^I_BZ_\_-_(`C`)c`+`E``a(a*Eapa(a*aaab+bZbmccde?eg%hhvnikiQj0`jjjHk,_k%k'k#kck)bl?l0l:l#8m\mvmm?m4m6nAVn nnnWnb,o"o;ooDpHp!"qIDq!qLq8q{6rRrs+s4s'&tSNt/tBt?u!Uu,wu/u5uZ v4ev%v-v+v'w'Bw#jw+wQw6 x:CxO~x6xFyXLyZyzz+z:zjZzzb|/} O}p}}}}#}?~SC~'~W~=_US) H3|2 N>SSt5r4Ra,|.,؃&*,,W:lh,LN1"C0f,3Ć 4&,[I0:CȌ|[*C4ʎ%#%,I v(&ޏ6S<P8B;]F:%5Aw1)-&97q@:@"zc9ޔLe]WTv˙TrbǝE*'p5RΞ!>DZ0%,'C&kFH٠%"HdMi8OG{:{\2{, H8=81<*yg;\KzƧaoLѨ7eVA(H'xp ?@5#v ̫/ :#J#n6Ь,.4%c)CM/t}I*<*g!+( ~DQ]6,1&8X "F4]B+9L.^7[ŵg!<Kƶ5=H2-7==Q{A͸fivA5"=X$˺kVF»% /58?n7ʼ&)I$hDzҽ*Mexs޾<R8<Lu IV@F 'Q&E6|T!v5t-4 b"lAqsCis! 0aY:s8Y *. YDfJ  +4g`Pk' 3#9]p3/.+" NoF#7CJ&%LruXi|+/ (6;r#Y+Kapyy:.  W6%2?Tr'"`.=2U+ !# /Ml&.!^x4.%c!'3z1K1tI'i&8)"?'4gCHC)'m" JL.\  -/1FYs0r-5gc  .K)4E(z&(,3F9z#0H,?u&ED"g7 (#%<PdzsJ %X~ T FZ D T 0; l D <3@p/&#(6L6b*F"eWr_;=3(q-6L-LUzC);N:lA'#+7 c)N57JgpG[IAC/psI6.e~Y-x%C$[&. #@ d/1-  / #9 #]  ( E  3!O!5g!H!"!$ "(."EW""'""a"9a#D#$#1%(7%S`%%VI&3&;&E'/V'D'Q'&("D(6g((2(7(E%)k)Ts*5** +N+c+6~+~,,4-ga-#-'-'.%=.c.(f...K/[/SP0#00 0'0t 1;1Y1@+2El2G2-2O(3ux3K3J:4>4S4:53S5}577:k;kE<)<=\>!@4@H@@g@"@7@#AX'AbAAA"B>BVB"uBBDBBC"C4C ECURC]C D)D>D(ZD+D%D*DE= E^E-yE5E,E7 F,BF$oFFqF*IJI\I1qI,II"IsIvpJJ }K4KKBK L /L[9L LLML,LI%MGoMOMQNDYNHNNLrObOg"PnPUP+OQ{QQQfQ&R CR$MR4rR#R#R7RR'S$zSBS!STa"T&T>T TT U%U%EURkUU UU:U'VM8V1V4V<VP*W`{W/W X8)XbXX2XXXXY4Y3TY-Y5YY5 Z<@ZB}ZXZ1[OK[3[%[D[?:\.z\>\#\ ]!+] M]hZ] ] ]2]%"^H^a^.{^#^^/^_!9_ [_(h_t_`%#`I`}`/\a<aUaMb2mbb1Ccuc+dKdSjdJd e)e6De0{e2eAe?!f7afWf,f'g(FgHogCggh#9h+]h(h7hh3h2-i`iG}i:iCj8Dj1}j2jnjQk3k8 lQDl6l6lm!m#b/g"(e$#10 K3l '.#!<!^$*7+&-RVbrHHNg'S?GL[sF9 55Q ;)e(%4@ FN4,9)R:<Z<1mkX 3"*OM94Qf}^s 4>iL=^>,()U34,P3f e93$m H+0QKK'+3;C6c-/'  2> P [g"!,?Q)kZg+p{-%Fil?%6:z,XYYnvF?|UU[XlzI@cG;6rD%,j[*  I a q +2rr6@PQD[)X/Dr-B6G[by18j<+>$SxI Rq5 X !j!C!"A"!d";"""S"K#4^#$#D#=#9;$Ou$*$$$6%0L%&}%%X%&71&8i&!&&&*&#'$B'g'(-(K(si(B( )1)&8)_)})) ))K).*9G*J**\+L,/Q,#,-,<,/-J@-"-$-E-].*w.C.p.YW/w/G)0Hq060a0 S1>^272F2B3-_3(3*3"3444S4!5#5#55=60E65v696o6 V71c7&7E7,8/8)M8Ww8k8?;9{999`9):!G:Hi:*:9:0<NH<<.<[<9=M=o=0f>S>p>V\??4A0APBAWBB2(C[CYC2RDsDD5EHE@hE8EEpF G &GhGGG4HjH[%I II IIgIHaJXJDKHKeKcELlL:M'QM#yM*M,M#MjNlN*NOBOOP$PPP$P&QsEQRSwSTWW 4[|U\.\F^MHadECee&e<ee7f?Offf*f#fg4gg!g.hRGh<hqjhIk kGkld.mp/qSrMUr3rDrEs;bs9sZsM3t0tUtHuUQu#uu$vv.vv w(wwy[xxy9 z$Zz-zAzz{!{&={<d{{{{N{0|FG|J|f|@}"O}r}{} }5}Y}S+~V~\~#3bWo!*QLA.8)b%zo-W>CBڂPun80)N8x8CH.?w9V6HBK†G Vd |( 51Dcwe:?4XA,J1i#,C90CjMn,0,̌q kvE<6)M`,.$[4iC#c),ǐ;m0tcw$J QKdW<CE J`}&1;%!IG9<˖X^aO*I;$:Ę4)Gfq-ؙ6MJ\J00#MT:4ݛ&:9*tU",(ESnR#,9f;KžHW54)[^2;#)M`yGgݡ;E:  ȢҢ  7 9*DIo-.;?6{6,1 Jk t~5'+7c%  ʦ7Ԧ #4<q "!ȧ  A%*g.)> *7K%ש<2=PEKԪ T7&m+!(MMvOĬu@n˭]:`szm!O4fB).8X! Please check that the "thg" command is valid. Caught keyboard interrupt, aborting. aliases: %s (default: %s) (copied from %s) (is a symlink) (is unversioned) (renamed from %s) (was added) (was added, now missing) (was deleted) filtered"%s" is not a folder"%s" is not a valid directory"%s" removed from path history"%s" removed from search history### filter text ###### host certificate fingerprint ###### patch name ###### regular expression ###### regular expression search pattern ###### revision set query ###$FILE_ENCODINGS% Match%d day%d days%d files have merge conflicts that must be resolved%d files were modified on both branches and must be resolved%d hour%d hours%d matches found%d minute%d minutes%d month%d months%d outgoing changesets%d outgoing changesets in current branch (%s) / %d in total%d outgoing changesets to %s%d outgoing changesets up to current revision (#%d) / %d in total%d outgoing changesets up to revision #%d / %d in total%d patches were exported to:

                                                                                                              %s%d pending changelists found%d second%d seconds%d week%d weeks%d year%d years%d%%%dpt%p%%s (hint: %s)%s (pending)%s (submitted)%s - Revision Details (%s)%s - TortoiseHg Workbench%s - TortoiseHg Workbench - %s%s - branch operation%s - commit%s - commit options%s - hg %s%s - purge%s - recover repository%s - status%s - status (selection filtered)%s - sync options%s - verify repository%s : %s%s %s already exists, replace URL?%s and %s have identical contents %s certificate error: no certificate received%s had rejected chunks, edit patched file together with rejects?%s is a dirty subrepo%s is added%s is deleted by non-hg command, but still tracked%s is ignored%s is modified%s is not a valid repository%s is not modified (clean)%s is not tracked (unknown)%s is removed%s patches%s project settings (.hg/projrc)%s repository settings%s will be imported to %s's global settings&About TortoiseHg&Add&Add Repository...&AfterIndent&Ancestors and Descendants&Apply Only This Patch&Archive&Archive...&Auto&Auto Detect&Auto-Complete&Backout...&Bisect...&Branch&Browse...&Bundle Rev and Descendants...&Cancel&Character&Clear&Clone&Close&Close Repository&Commit&Commit to Queue...&Commit to current branch&Copy&Copy Patch&Copy...&Create&Custom Toolbar&Delete&Delete Patches...&Delete Queue...&Delete Unversioned...&Diff Other to Ancestor&Diff Selected File Revisions&Diff to Other&Diff to Parent&Discard&Discard (--force)&Discard changes&Dock Toolbar&Edit File&Edit Local&Edit Toolbar&Edit...&Editor Options&Email Patch...&Exit&False&File&Filter Toolbar&Finish Patch&Flat List&Force&Forget&Goto (update workdir)&Goto Revision...&Graft to Local...&Help&Ignore...&Import&Import Patches...&Incoming&Invisible&Keep (--keep)&License&Local&Lock File...&Mac&Make secret&Mark Excluded Changes&Mark Resolved&Mark Unresolved&Mark as Resolved&Match&Merge&Merge with Local...&Merge...&More Options...&Move&New Repository...&No&No (discard changes)&None&Open&Open All&Open Local&Open Repository...&Originating Revision&Other&Outgoing&Parent Revision&Parent Revision (%d)&Paste&Patch Branch&Prune&Prune Selected...&Prune...&Pull&Purge Queue...&Purge...&Push Bookmark&Readme&Rebase...&Redo&Refresh&Refresh Repository List&Remote Update...&Remove&Remove Bookmark&Remove...&Rename&Rename Active Queue...&Replace&Repository&Resize Columns&Resolve...&Revert&Revert to Revision...&Revert with backup&Revert...&Run&Save&Save at Revision...&Scan Repositories at Startup&Search&Search in Current File&Set...&Settings&Shelve&Shelve...&Sign&Skip this Revision&Sort&Sort by .hgsub&Spaces&Strip&Strip...&Sync Bookmarks...&TAB&TAB Inserts&Tag...&Take Local&Task Toolbar&Terminal&True&Unapply Patch&Undo&Unix&Unspecified&Update&Update...&Verify&View&View Changeset&View Missing&View at Revision&Visible&Web Server&Windows&Word&Workbench Toolbars&Wrap&Yes'Publishing' repository(%s) (DEPRECATED)(excluded from the next commit)(is a changed and dirty sub-repository)(is a changed sub-repository)(is a dirty sub-repository)(is a new and dirty sub-repository)(is a new sub-repository)(is a removed sub-repository)(is an unchanged sub-repository)(no help text available)(same as parent)(unsaved)*: not used by TortoiseHg, resolved merge, unresolved merge3-&Way Diff3-way dir diff<Launch settings tool...help revsets%d changeset will be stripped%d changesets will be strippedAnnotate:Candidate MatchesDifferences from Source to DestHost: %sIgnore FilterParse Error!Repository Details:Revert %d files to their contents at the following revision?Revert %s to its contents at the following revision?Selected Options:Selected Options: %sSubrepository Features:Uncommitted local changes are detectedUnknown revision!Unrevisioned FilesUntracked FilesWeb Server:= Working Directory Parent =>A "template string" that, when set, turns the revision number and short hashes that are shown on the revision panels into links.
                                                                                                              The "template string" uses a "mercurial template"-like syntax that currently accepts two template expressions:

                                                                                                              • {node|short} : replaced by the 12 digit revision id (note that {node} on its own is currently unsupported).
                                                                                                              • {rev} : replaced by the revision number.
                                                                                                              For example, in order to link to bitbucket commit pages you can set this to:
                                                                                                              https://bitbucket.org/tortoisehg/thg/commits/{node|short}A README file is not configured for the current repository.

                                                                                                              To configure a README file for a repository, open the repository settings file, add a 'readme' key to the 'tortoisehg' section, and set it to the filename or URL of your repository's README file.A bookmark named "%s" already existsA comma separated list of target groupsA comma separated list of target peopleA new version of TortoiseHg (%s) is ready for download!A repository cannot be added as a subrepo of itselfA revision identifier, bookmark, tag or branch nameA shelf file of that name already existsA shelf name cannot contain %sA terminal shell cannot be opened for remoteA terminal shell must be configuredA topic named "%s" already existsA&dd Subrepository...A&uthorAbortAbort the export operation. Aborted p4pendingAboutAbout &QtAbout TortoiseHgAcceptAccept All MatchesAccept Selected MatchesAccept the local file version (yours)Accept the other file version (theirs)Activate BookmarksActivate bookmark?Activate:AddAdd &LargefilesAdd &Largefiles...Add Files...Add Path to ServeAdd a repository to this groupAdd as &LargefilesAdd as &Normal FilesAdd files to version controlAdd ignore filter...Add or remove patches must be merged in the working directoryAdd selected untracked files?Add separatorAdd to listAddedAdded tag %s for changeset %sAfter Pull OperationAgeAge:AliasAllAll HistoryAll changesets belonging to the branches of changesets in set.All changesets, the same as 0:tip.All conflicting files will be marked unresolved.All conflicts are resolved.All contextsAll files (*)All files in this revisionAll itemsAll revisionsAll unsaved changes will be lost.Allow Git SubreposAllow Hg SubreposAllow PushAllow SVN SubreposAllow push of a new branch (--new-branch)Allow pushing new branches (--new-branch)Always merge (when possible)Always show repo tabs, even for a single repo. Default: FalseAmendAmend current revisionAn alias for "::." (ancestors of the working copy's first parent).An empty set, if any revision in set isn't found; otherwise, all revisions in set.An error occurred while reading the file.An error occurred while updating the repository hgrc file (%s)An error occurred while writing the file.An exception happened while loading the subrepos of:

                                                                                                              "%s"

                                                                                                              An interrupted graft operation has been found. You cannot perform a different graft operation unless you abort the interrupted graft operation first.Annotate &FileAnnotate Op&tionsAnnotate with revision numbersApp&ly FormatAppendAppend graft info to log messageAppend the changes to the existing patch files. Applied patchesApplied patches or qparentApply all patchesApply changes before exit?Apply one patchApply only the selected patchApply only this patchApply onto original parentApply patchArabicArchive - %sArchive Content:Archive DAG Range...Archive FormatsArchive types:Are you sure that you want to cancel the commit operation?Are you sure you want to delete these files and/or folders?Are you sure you want to overwrite it ?Are you sure you want to reload this file?Are you sure?Ask UsernameAttempt automatic (trivial) mergeAttempt to push to specified URL or alias after each successful commit. Default: No pushAuthorAuthor ColoringAuto Commit ListAuto Exclude ListAuto Includes:Auto-resolve mergesAutomatically advance to next page when backout and merge are complete.Automatically advance to next page when merge is complete.Automatically resolve merge conflicts where possibleAvailableBackBacked out changeset: Backing out a parent revision is a single step operationBacking out and committing...Backing out, then merging...Backout - %sBackout changesetBackout current patch branchBackout requires a parent revisionBackout revisionBackport part of a changeset to a dependencyBackspace or Del to remove row(s)Backup copies of modified files can be found in .hg/Trashcan/Backwards phase change requestedBad filenameBalticBccBefore backout, you must commit, shelve to patch, or discard changes.Before compress, you must commit, shelve to patch, or discard changes.Before graft, you must commit, shelve to patch, or discard changes.Before merging, you must commit, shelve to patch, or discard changes.Before rebase, you must commit, shelve to patch, or discard changes.Bisect - %sBisect - Bad, Good...Bisect - Good, Bad...BoldBoo&kmark...Bookmark '%s' does not existBookmark '%s' has been addedBookmark '%s' has been movedBookmark '%s' has been removedBookmark '%s' has been renamed to '%s'Bookmark - %sBookmark named "%s" does not existBookmark:BranchBranch ColorsBranch:Branch: Bro&wse at RevisionBrowse Directory...Browse...Bundle DAG Range...Bundle files (*.hg)Bundles store complete changesets in binary form. Upstream users can pull from them. This is the safest way to send changes to recipient Mercurial users.Bypass ListBzip2 tar archivesC&hoose Log Columns...C&onfigure FormatCLI EditorCan't change settings without iniparse package - view is readonly.Can't find revision '%s'CancelCannot add subrepositoryCannot backout change on a different branchCannot export revisionCannot export revision %s into the file named: %s Cannot import selected revisionCannot merge with a pseudo revision %r.Cannot open Plugin Options dialogCannot open non Mercurial repositories or subrepositoriesCannot open repositoryCannot open the .hgsub file in:

                                                                                                              %sCannot read the .hgsub file.

                                                                                                              Subrepository removal failed.Cannot start a new searchCannot update the .hgsub file in:

                                                                                                              %sCannot update the .hgsub file.

                                                                                                              Subrepository removal failed.CcCc:CelticCentral and Eastern EuropeCertificate Query ErrorChange &Phase toChangeLog FontChanged by &This CommitChangesChanges have been moved, you must now commitChanges take effect on next commitChangeset LinkChangeset is a merge changeset.Changeset is a named branch head.Changeset is closed.Changeset is tagged.Changeset with highest revision number in set.Changeset with lowest revision number in set.Changeset:ChangesetsChangesets affecting files matched by pattern. See help patternsChangesets containing files matched by pattern.Changesets not found in the specified destination repository, or the default push location.Changesets that are ancestors of a changeset in set.Changesets where username contains string.Changesets which add files matched by pattern.Changesets which are descendants of changesets in set.Changesets which modify files matched by pattern.Changesets which remove files matched by pattern.Changesets with no parent changeset in set.Changesets within the interval, see help datesCharacter encoding of files in the repository, used by the web interface and TortoiseHg.CheckCheck Subrepo PhaseCheck all filesCheck for incoming changesCheck for incoming changes from %sCheck for incoming changes from selected URLCheck the phase of the current revision of each subrepository. For settings other than "ignore", the phase of the current revision of each subrepository is checked before committing the parent repository. Default: followChecked count: %dCheckingChecking for updates...Checking working directory status...Checking...Checkmark files to addCheckmark files to forgetCheckmark files to removeCheckmark files to revertChild changesets of changesets in set.Child:Chose the selected available reviewersChunks selected: %d / %dClea&r LogCleanClearClear contents of shelf file %s?Clear current query and query textClear the current shelf fileClick OK to continue or Abort to exit.Clon&e Repository...Clon&e...Clone - %sClone RepositoryClone to revision:Clone with minimal processingClone...CloseClose %s branchClose After CommitClose Branch: Close current branchClose other tabsClose tabClose the commit tool after every successful commit. Default: FalseClose:Co&mpare File RevisionsCollapse the rebased changesets (--collapse)Color changesets by author name. Default: FalseComma separated list of archive formats allowed for downloadingComma separated list of branch names that should be ignored when building a list of branch names for a repository. Default: None (leave blank)Comma separated list of exclusion file patterns. Exclusion patterns are applied after inclusion patterns.Comma separated list of files that are automatically included in every commit. Intended for use only as a repository setting. Default: None (leave blank)Comma separated list of files that are automatically unchecked when the status, and commit dialogs are opened. Default: None (leave blank)Comma separated list of inclusion file patterns. By default, the entire repository is searched.Comma-separated list of blind carbon copy recipient email addressesComma-separated list of carbon copy recipient email addressesComma-separated list of recipient email addressesCommandCommand ErrorCommand outputCommand to use for SSH connections.

                                                                                                              Default: "ssh" or "TortoisePlink.exe -ssh -2" (Windows)CommitCommit Dialog ToolbarCommit LaterCommit NowCommit OptionsCommit backout and merge resultsCommit changesCommit changes in repositoryCommit context menuCommit merge resultsCommit messageCommit...Committing...Common setsCompare revisions of the selected fileCompare to &1st ParentCompare to &2nd ParentCompletely remove file from patch?CompressCompress - %sCompress History...Compress changesets up to and includingCompress is complete, old history untouchedConfig File:Config files (*.conf *.config *.ini)Configuration Error: "%(arg0)s",
                                                                                                              Please fix your configConfigure Custom ToolConfigure Explorer extensionConfigure HookConfigure Issue TrackerConfigure guardsConfigure guards for selected patchConfigure repository settingsConfigure the selected COM Bug Tracker plugin.Configure user wide settingsConfigures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking plugin.Confirm AddConfirm Branch ChangeConfirm DeleteConfirm Delete UnversionedConfirm DiscardConfirm Discard ChangesConfirm Discard MessageConfirm ExitConfirm New BranchConfirm OverwriteConfirm PushConfirm Push to remote RepositoryConfirm ReloadConfirm RemoveConfirm RevertConfirm SaveConfirm StripConfirm URL replaceConfirm UndoConfirm UpdateConfirm adding unknown filesConfirm deleting filesConfirm file deletionsConfirm patch queue switchConfirm path deleteConnecting to Review Board...Consider aborting the graft first.Consider aborting the rebase first.ConsoleConsole logContactContext MenuContinue or abort interrupted graft operation?Controls draft phase behavior when working as a server. When true, pushed changesets are set to public in both client and server and pulled or cloned changesets are set to public in the client. Default: TrueConvert an existing repository into a subrepositoryConverted FromConverted From:CopyCopy &HashCopy &PathCopy - %sCopy ErrorCopy Selected as PatchCopy full path of file(s) to the clipboardCopy messageCopy one of the recent commit messagesCopy source -> destinationCopy the root path of the repository to the clipboardCopy working directory files from skeletonCopyright 2008-2019 Steve Borho and othersCould not get subrepository listCould not instantiate Issue Tracker plugin COM objectCould not open .hgsub fileCould not open some subrepositoriesCould not open the specified file for reading.Could not open the specified file for writing.Could not translate the file content from native encoding.Could not translate the file content to native encoding.Could not update .hgsub fileCreateCreate &BranchCreate &New Queue...Create Patch QueueCreate Repository HereCreate a new groupCreate a new patchCreate a new repositoryCreate clone here from sourceCreate diff with all changes on this branchCreate diff with all outgoing changesCreate new named branch "%s" with this commit? Create special files (.hgignore, ...)Cu&tCulprit found.Current local revisionCustom Toolbar &SettingsCustom ToolsCyrillicDateDate:De&tect Renames...Deactivate current bookmark?Dead BranchesDefault Clone DestinationDefault PushDefault widgetDefines the command to run when an issue number is recognized. You may include groups in issue.regex, and corresponding {n} tokens in issue.link (where n is a non-negative integer). {0} refers to the entire string matched by issue.regex, while {1} refers to the first group and so on. If no {n} tokens are found in issue.link, the entire matched string is appended instead.Defines the regex to match when picking up issue numbers.DeleteDelete %d file in .hg/TrashcanDelete %d files in .hg/TrashcanDelete %d ignored fileDelete %d ignored filesDelete %d unknown fileDelete %d unknown filesDelete %s from your repo configuration file?Delete Group '%s' and all its entries?Delete Patch QueueDelete PatchesDelete ToolDelete empty foldersDelete from listDelete hookDelete patches...Delete reference toDelete selected chunksDelete selected chunks from shelf file %s?Delete selected chunks from working copy?Delete selected patchesDelete selected query from historyDelete shelf file %s?Delete the current shelf fileDelete the following unversioned files?Deleted %d filesDeleted %d files and %d foldersDeleted*Deleting trash folder...Deletion failuresDeny PushDescriptionDestDestination file already exists.Destination path:Destination:Detect Copies/Renames in %sDetect outgoing changesDetect outgoing changes to %sDetect outgoing changes to selected URLDetect renames and copiesDetected merge/diff tools:Detected uncommitted local changes in working tree. Please select to continue: Detected uncommitted local changes.Determines if TortoiseHg should show a confirmation dialog before adding new files in a commit. If True, a confirmation dialog will be shown. If False, selected new files will be included in the commit with no confirmation dialog. Default: TrueDetermines if TortoiseHg should show a confirmation dialog before pushing changesets. If False, push will be performed without any confirmation dialog. Default: TrueDetermines if TortoiseHg should show a confirmation dialog before removing files in a commit. If True, a confirmation dialog will be shown. If False, selected deleted files will be included in the commit with no confirmation dialog. Default: TrueDetermines when the issue tracker state will be updated by TortoiseHg. Valid settings values are:

                                                                                                              • never: Do not update the Issue Tracker state automatically.
                                                                                                              • commit: Update the Issue Tracker state after a successful commit.

                                                                                                              Default: neverDetermining outgoing changesets to email...Diff &Changeset to ParentDiff &LocalDiff &Local to AncestorDiff Changeset to Loc&alDiff File toDiff FontDiff Selected &ChangesetsDiff ToolbarDiff and AnnotateDiff contentsDiff not displayed: Diff to &LocalDiff to parentDir diff to p1Dir diff to p2Directory diffDirectory of filesDiscard - discard local changes, no backupDiscard all changes from the other revisionDiscard current backout message?Discard current commit message?Discard local changes (revert --all)Discard local changes, no backup (-C/--clean)Discard local changes, no backup (-f/--force)Discard outstanding changes to working directory?Discard remote changes, no backup (-C/--clean)Display closed branchesDisplay graph the named branch onlyDisplay only active branchesDisplay the file anywayDisplaying %(count)d of %(total)d itemsDnD SynchronizeDo not include modification dates in diff headers. Default: FalseDo not modify working copy (-k/--keep)Do not modify working copy during strip (-k/--keep)Do not save backup files (*.orig)Do not show menu items on unversioned folders (use shift + click to override)Do not strip paths (-p0), required for SVN patchesDo not update the new working directoryDo not verify host certificateDo you really want to force a backwards phase transition?Do you really want to activate patch queue '%s' ?Do you really want to deactivate the %s bookmark?Do you really want to make this revision secret?Do you really want to remove the repository "%s" from its parent repository "%s"Do you want to exit?Do you want to keep them or discard them?Drag to change orderDuplicate NameE&ncodingE&xitE&xploreE&xplore FolderE&xplore LocalE&xplorer HelpE&xportE&xport Patch...EOL &ModeEOL &VisibilityEditEdit FileEdit Ignore FilterEdit LocalEdit Path to ServeEdit Re&jectsEdit Tool ...Edit current file in working copyEdit fileEdit hookEdit patch dependency graphEdit patched file and rejects?Edit repository ignore filterEdit resolved fileEditor launch failureEmailEmail DAG Range...Email Selected...Email address to use in the "From" header and for the SMTP envelopeEmail outgoing changesets for remote repositoryEmit debugging output (--debug)Enabled Overlay HandlersEnabled overlaysEncodingEnglish MessagesEnter line number (1 - %d)Enter revision identifierErrorError encountered.Error executing "commit finished" triggerError getting commit message information from Issue Tracker pluginError loading subreposError previewing subrepo: %sError string "%(arg0)s" at %(arg1)s
                                                                                                              Please edit your configError writing fileExcel files (*.xls *.xlsx)ExcludeExcludes:Execute custom tool '%s'Exit without finishing resolve?Exiting with an unfinished graft is not recommended.Exiting with an unfinished rebase is not recommended.Explorer Extension SettingsExplorer Extension Settings - TortoiseHgExport DAG Range...Export Diff...Export Selected...Export patchExtExtensionsFailed to add repositoryFailed to add subrepositoryFailed to execute custom TortoiseHg commandFailed to execute custom commandFailed to load issue tracker '%s': %sFailed to load issue tracker: '%s': %s. Failed to open path in terminalFailed to open repositoryFailed to process largefiles.patterns.Failed to refreshFailed!Fetch - use fetch (auto merge pulled changes)Fetch - use fetch extension (fetch is not active!)Fetch the reviewer list from the serverFields to match:FileFile &History / AnnotateFile Differences Log ColumnsFile HistoryFile History Log ColumnsFile List ToolbarFile StatusFile Status:File already existsFile conflicts need to be resolvedFile context menu (on manifest and revision details)File is binaryFile is larger than the specified max size. maxdiff = %s KBFile may be binary (maximum line length exceeded)File or diffs not displayed: File or diffs not displayed: File is larger than the specified max size. maxdiff = %s KBFile pattern setsFile was not within current repositoryFilenameFilesFiles of at least the specified size (in megabytes) will be added as bfilesFiles of at least the specified size (in megabytes) will be added as largefilesFiles with names meeting the specified patterns will be automatically added as bfilesFiles with names meeting the specified patterns will be automatically added as largefilesFilter Histor&yFilter b&yFilter graph with revision sets or branchesFilter the available reviewersFilter:Find RenamesFind copy and/or rename sourcesFind matches - %sFind revisions matching fields of:Find revisions that "match" one or more fields of the given set of revisions.Finding outgoing changesets to %s...FinishedFirst n members of a set.First parent for all changesets in set, or the working directory.Fixed revisionsFlag:Fold patches...Follow copies and renamesFont used to display changelog data. Default: monospace 10Font used to display commit messages. Default: monospace 10Font used to display output messages. Default: sans 8Font used to display text differences. Default: monospace 10FontsFor which kinds of revisions the tool will be enabled It is only taken into account when the tool is shown on the selected revision context menu.Force Repo TabForce a merge with outstanding changes (-f/--force)Force push or pop (--force)Force push or pull (override safety checks, --force)Force push to remote location (-f/--force)Force removal of modified files (--force)ForgetForget Files...Fork GUIForwardFound %d incoming changesetsFound incoming changesets from %sFromFrom:Full AuthornameFull Path TitleGPG key ID associated with user. Default: None (leave blank)Generate English commit messages even if LANGUAGE or LANG environment variables are set to a non-English language. This setting is used by the Merge, Tag and Backout dialogs. Default: FalseGetting incoming changesets from %s...Git CommitGit Commit:Git FormatGit patches can describe binary files, copies, and permission changes, but recipients may not be able to use them if they are not using git or Mercurial.GlobGlobal SettingsGnuPGGo &to PatchGo toGo to LineGo to a specific revisionGo to current revisionGoto ancestor of %s and %sGoto common ancestorGoto revisionGraftGraft - %sGraft Selected to local...Graft abortedGraft changesetGraft changeset #%d of %dGraft failedGraft generated merge conflicts that must be resolvedGraft is completeGraft:GraphGraphical merge program for resolving merge conflicts. If left unspecified, Mercurial will use the first applicable tool it finds on your system or use its internal merge tool that leaves conflict markers in place. Choose internal:merge to force conflict markers, internal:prompt to always select local or other, or internal:dump to leave files in the working directory for manual mergingGreatest common ancestor of the two changesets.GreekGuards: %d/%dGuess RenamesGzip tar archivesHTTP Error: %d (%s)Head is closed!HebrewHg command:Hg file log viewer [%s] - %sHg patches (as generated by export command) are compatible with most patch programs. They include a header which contains the most important changeset metadata.Hide DetailHide TagsHide context menu outside repositoriesHighlight IconHook typeHooksHostHost name and (optional) port of proxy server, for example "myproxy:8000"Host name of mail serverHostname the sender can use to identify itself to the mail server.How many lines a "zebra stripe" should span in multiline output. Default is 1; set to 0 to disable.IconIconsIf no username has been specified, the user will be prompted to enter a username. Default: FalseIf specified, files in the directory, e.g. .hgignore, are copied to the newly-created repository.If specified, the destination field in the clone widget will be pre-filled with this path. Otherwise, it will be pre-filled with the current working directory.If true, concatenate multiple lines of changeset summary and truncate them at 80 characters as necessary. Default: FalseIf you still have trouble, please file a bug report.Ignore Ignore Blank LinesIgnore WS AmountIgnore White SpaceIgnore caseIgnore changes in the amount of white space in diff views. Default: FalseIgnore changes in the amount of white space in the annotate view. Default: FalseIgnore changes whose lines are all blank in diff views. Default: FalseIgnore changes whose lines are all blank in the annotate view. Default: FalseIgnore filter - %sIgnore white space when comparing lines in diff views. Default: FalseIgnore white space when comparing lines in the annotate view. Default: FalseIgnored*Immediate OperationsImport - %sImport from ClipboardImport to &MQIn &Current RevisionIn &Original RevisionIn All &HistoryIn Current &FileIn-Reply-To:IncludeInclude all ancestorsInclude patch queueIncludes:Incoming BookmarksIncoming from %s aborted, ret %dIndicates whether TortoiseHg should attempt to automatically resolve changes from both sides to the same file, and only report merge conflicts when this is not possible. When False, all files with changes on both sides of the merge will report as conflicting, even if the edits are to different parts of the file. In either case, when conflicts occur, the user will be invited to review and resolve changes manually. Default: True.Iniparse must be installed.Iniparse package not foundInitial revisionInline TagsInput new guards for %s:Insufficient access rights, reverting to read-only mode.Insufficient access rights.InterruptedInterrupted graft operation foundInvalid PatternsInvalid Settings - Please provide your ReviewBoard usernameInvalid Settings - The ReviewBoard server is not setupInvalid commandInvalid configuration: %sInvalid date formatInvalid default push revision: %s. Please check your Mercurial configuration (tortoisehg.defaultpush)Invalid glob expressionInvalid regexp expressionInvalid reviewboard plugin. Please download the Mercurial reviewboard plugin version 3.5 or higher from the website below. %sIssue LinkIssue RegexIssue TrackerIssue Tracker PluginIssue Tracker Plugin ErrorIssue Tracker TriggerIssue TrackingIt was not possible to fully load the subrepository list for the repository in:

                                                                                                              %s

                                                                                                              The following subrepositories may be missing, broken or on an inconsistent state and cannot be accessed:

                                                                                                              %sIt was not possible to get the subrepository list for the repository in:

                                                                                                              %sItalicJapaneseKeep original branch names (--keepbranches)Keep original changesets (--keep)Keep patch filesKey IDKey:Keyword SearchKiln BfilesKnown bad revision:Known good revision:KoreanLargefilesLatest tagsLeft ToolbarLet the user update the projrc on incoming:

                                                                                                              • never: [default] Show whether the remote projrc file has changed, but do not update (nor ask to update) the local projrc file.
                                                                                                              • prompt: Look for changes to the projrc file. If there are changes _always_ show a confirmation prompt, asking the user if it wants to update its local projrc file.
                                                                                                              • auto: Look for changes to the projrc file. Use the value of the "projrc.confirm" configuration key to determine whether to show a confirmation dialog or not before updating the local projrc file.

                                                                                                              Default: neverLicenseLike "keyword(string)" but accepts a regex.LineList Optio&nsList of Servers from which "projrc" configuration files must be pulled. Set it to "*" to pull from all servers. Set it to "default" to pull from the default sync path. Default is pull from NO servers.List of all toolsList of settings that will NOT be pulled from the project configuration file. Default is exclude none of the included settings.List of settings that will be pulled from the project configuration file. Default is include NO settings.List updated files (--verbose)Load &All RevisionsLoad all revisions into graphLoading repository %sLocal HostnameLocal PathLocal Path:Local Repository %sLocal TimeLocal disks onlyLocal revision informationLocal signLocal tagLocation of local clone of organizational lock repository.

                                                                                                              This repository must contain a "locked" text fileLocation:Lock CloneLock a file not described in .hglocksLock of %s failed, retryLock of %s successfulLock or unlock filesLocked And Lockable Files:Locked*Locking %sLocking UserLogLog Batch SizeLong SummaryMMQ &OptionsMQ ActionMQ Git FormatMQ optionsMa&nifest ModeMake MQ patches secret (instead of draft). Default: FalseMake repo compatible with Mercurial <1.7Making a "draft" revision "secret" is generally a safe operation. However, there are a few caveats: - "secret" revisions are not pushed. This can cause you trouble if you refer to a secret subrepo revision. - If you pulled this revision from a non publishing server it may be moved back to "draft" if you pull again from that particular server. Please be careful!Manage HTTPS connection security and user authenticationManage pending perforce changelistsMandatory Issue ReferenceManually resolve rejected chunks?Manually resolve rejected patch chunksMark as &UnresolvedMark this chunk as resolved, goto next unresolvedMark this chunk as unresolvedMark this file as resolvedMark this file as unresolvedMatch TextMatch any of %d revisionsMatch whole words onlyMax ChangesMax Diff SizeMax FilesMaximum number of changes to list on the changelog. Default: 10Maximum number of files to list per changeset. Default: 10Members of a set with no children in set.Menu BehaviorMercurial Re&solveMercurial UserMercurial command is still running. Are you sure you want to terminate?Mercurial keyring extension is enabled. Passwords will be stored in a platform-native secure method.Mercurial was unable to find an editor. Please configure Mercurial to use an editor installed on your system.MergeMerge - %sMerge - allow to merge with local changesMerge all pending dependenciesMerge caused file conflictsMerge changesetMerge from (other revision)Merge rejected patch chunks into %sMerge revision not specified or not foundMerge to (working directory)Merge using selected merge toolMerge with %sMerge with the other head of the current branchMerging...MessageMessage FontMessage Translation FailureMessage identifier to reply to, for threadingMethod to enable TLS when connecting to mail server. Default: noneMin Similarity: %d%%Minimum ProtocolMinimum SizeMissing informationModi&fy HistoryMonitor Repo ChangesMonitor working
                                                                                                              directory changesMoveMove all files leftMove all files rightMove applied patches into repository historyMove changes between working dir and patchMove selected chunks leftMove selected chunks rightMove selected file leftMove selected file rightMoved tag %s to changeset %s (from changeset %s)Multiple selection context menuMultiple sources chosenNameName associated with commits. The common format is:
                                                                                                              Full Name <email@example.com>Name or email address of the person in charge of the repository.Named branch "%s" already exists, last used in revision %d New &GroupNew &WorkbenchNew Branch: New Commit PhaseNew GroupNew Name:New Patch BranchNew Repo SkeletonNew RepositoryNew ShelfNew Tool ...New file createdNew hookNew patch message:New patch queue nameNew shelf createdNextNext DiffNext diffNo DatesNo appropriate filesNo backup (-n/--nobackup)No branch changesNo chunks remainNo commitNo deletable chunksNo diff tool foundNo editor foundNo file changesNo files checkedNo files found for this operationNo files selectedNo files to findNo host specifiedNo host validation, but still encrypted (bad)No ignored files foundNo incoming changesets from %sNo issue link was found in the commit message. The commit message should contain an issue link. Configure this in the 'Issue Tracking' section of the settings.No items to displayNo matches foundNo merge conflicts, ready to commitNo merge conflicts, ready to commit or reviewNo modified files checkmarked for commitNo operation to performNo outgoing changesetsNo outgoing changesets to %sNo patch branch selectedNo pending Perforce changelistsNo remote repository URL or path setNo repository foundNo revision foundNo shell configuredNo transaction availableNo trash files foundNo unknown files foundNo username configuredNo valid default remote repository URL or path has been configured for this repository.

                                                                                                              Please type and save a remote repository path on the Sync widget.No visual diff tools were detectedNo visual editor configuredNodeNoneNone - simply pull changesetsNordicNormalize file line endings during and after patch to lf or crlf. Strict does no normalization. Auto does per-file detection, and is the recommended setting. Default: strictNot a Mercurial subrepo, not previewableNot a head revision!Not a head, backout will create a new head!Nothing CommittedNothing changed.Nothing to importNothing to pushOKObsolete state:On repowidget, show forOne or more of the changesets that you are attempting to push involve the creation of a new branch. Do you want to create a new branch in the remote repository?Only consider deleted filesOnly files modified/created in this revisionOnly files modified/created since:Onto destinationOpenOpen &TerminalOpen S&ubrepositoryOpen a (nonmergable) file you wish to be lockedOpen a new named branchOpen a shell terminal in the repository rootOpen a shell terminal in the selected folderOpen advanced query editorOpen all repositories in new tabsOpen hgweb configOpen new tabs next to the current tabOpen parent folder of current file in the system file managerOpen shelve toolOpen the repository in a file browserOpen the repository in a new tabOpen the selected folder in the system file managerOpen the selected subrepositoryOperation aborted:

                                                                                                              %(arg0)s.Operation which is performed directly after a successful pull. update equates to pull --update, fetch equates to the fetch extension, rebase equates to pull --rebase, updateorrebase equates to pull -u --rebase. Default: noneOptional. Comma-separated list of host names that should bypass the proxyOptional. Method to use to send email messages. If value is "smtp" (default), use SMTP (configured below). Otherwise, use as name of program to run that acts like sendmail (takes "-f" option for sender, list of recipients on command line, message on stdin). Normally, setting this to "sendmail" or "/usr/sbin/sendmail" is enough to use sendmail to send messages.Optional. PEM encoded client certificate chain file. Environment variables are expanded in the filename.Optional. PEM encoded client certificate key file. Environment variables are expanded in the filename.Optional. Password to authenticate with at the proxy serverOptional. Password to authenticate with. If not given, and the remote site requires basic or digest authentication, the user will be prompted for it.Optional. User name to authenticate with at the proxy serverOptional. Username to authenticate with. If not given, and the remote site requires basic or digest authentication, the user will be prompted for it. Environment variables are expanded in the username letting you do foo.username = $USER.OptionsOptions:Or use:Order the subrepos as in .hgsubOriginal Parent:Other revision informationOutgoing BookmarksOutgoing aborted, ret %dOutgoing to %s aborted, ret %dOutput FontOverlaysP&ull BookmarkP&ushPDF docs (*.pdf)PEM files (*.pem *.crt *.cer)PEM files (*.pem *.key)Pair selection context menuParent 1:Parent 2:Parent:ParentsPasswordPassword to authenticate to mail server withPassword to authenticate with review boardPassword:Paste &FilenamesPatch BranchPatch Branch ToolbarPatch EOLPatch Files (*.patch)Patch Name RequiredPatch QueuePatch Queue Actions ToolbarPatch date:Patch exportedPatch failed to applyPatch files (*.diff *.patch)Patch files already existPatch fold - %sPatch message:Patch name:Patch series description is sent in initial summary email with [PATCH 0 of N] subject. It should describe the effects of the entire patch series. When emailing a bundle, these fields make up the message subject and body. Flags is a comma separated list of tags which are inserted into the message subject prefix.Patch user:Patch:Patch: %sPatches exportedPatches to foldPathPath Edit ToolbarPath to review board example "http://demo.reviewboard.org"Path to the directory where a system-wide cache of bfiles will be storedPath to the directory where a user's cache of largefiles will be storedPath:Paths in Repository Settings:PatternsPending Perforce Changelists - %sPerforce pending...Perforce:Perform a push before updating (-p/--push)PhabricatorPhasePlace Console in Doc&k AreaPlain, do not prepend Hg headerPlease configure a visual editor.Please enable and configure simplelockPlease enable the Gpg extension first.Please enable the Topic extension first.Please enter a usernamePlease enter commit messagePlease report this bug to our bug trackerPlease select a revision to merge.Please set a valid URL to continue.Please wait while committing merged files.Please wait while making backout.Please wait while the file is opened ...Please wait...PopPop allPortPort to connect to on mail server. Default: 25Port to listen onPort:Post &ReviewPost Pull BehaviorPost Pull: Post ReviewPost Selected to Phabricator...Post Selected to Review Board...Post to Phabricator...Post to Re&view Board...Posting ReviewPredecessors:Prepare to backoutPrepare to mergePreserve files beginning with .hgPrevPreviewPreview:Previous DiffPrevious diffPreviously the subrepository was at the following revision:ProjrcProxyPrune - %sPublish request immediatelyPullPull from %s aborted, ret %dPull from %s completedPull incoming changesPull incoming changes from %sPull incoming changes from selected URLPull incoming changesets into your repositoryPull subrepos from:Pull to here...Pulled remote bookmark: %sPulling from %s...PurgePurge Patch QueuePurposePus&hPushPush &AllPush After CommitPush After Commit:Push Requires SSLPush Selected &BranchPush allPush current branch (%s)Push outgoing changesPush outgoing changes to %sPush outgoing changes to selected URLPush to %s abortedPush to %s aborted, ret %dPush to %s completedPush to &HerePush to remote repository %s ?Push up to current revision (#%d)Push up to revision #%dPushed local bookmark: %sPushing to %s...QNewQRefreshQueryQuery about changesets affecting the selected filesQuitR&emove BookmarkR&epository Registry OptionsR&ollback/Undo...README not configuredRe&coverRe&move VersionedRe&move from RegistryRe&nameRe&name Patch...Re&name...Readonly*ReadyReady to purge.Ready, double click to lock or unlockRebaseRebase - %sRebase - rebase local commits above pulled changesRebase - use rebase extension (rebase is not active!)Rebase abortedRebase already in progressRebase changeset and descendantsRebase entire source branch (-b/--base)Rebase failedRebase generated merge conflicts that must be resolvedRebase is completeRebase unpublished onto Subversion head (override source, destination)Rebase...Recurse into subrepositoriesRecurse into subrepositories (--subrepos)Redundant authentication infoRefreshRefresh &Task TabRefresh ToolbarRefresh current patchRefresh current repositoryRefresh file listRefresh lock informationRefresh only the current task tabRefresh the Repository Registry listRefreshing locks...RegexpRegexp:Regular expression search patternReject incoming changesetsRelated Paths:ReloadReload FileRemo&ve Subrepository...Remote Update - %sRemote command:RemoveRemove &All Selected FilesRemove &Unmodified FilesRemove Files...Remove authentication data from URLRemove current working revision?Remove files from version controlRemove filter, show rootRemove patch directory ofRemove patches from queue?Remove selected deleted files?Remove the node and all its subnodes. Repositories are not deleted from disk.Remove the selected repository?Remove the selected reviewersRemove this subrepository from the current revisionRemoved local bookmark: %sRemoved remote bookmark: %sRemoved tag %sRenameRename - %sRename ErrorRename FileRename PatchRename Patch QueueRename file or directoryRename patch %s to:Rename patch queue '%s' toRename patch...Rename the entryReopen last closed tabReopen last closed tab groupReplaceReplace existing hook?Replace existing tag (-f/--force)Replace the existing patch files. Report only the first match per fileRepositoriesRepositoryRepository ErrorRepository ID:Repository RegistryRepository Registry updatedRepository SettingsRepository command still runningRepository is lockedRepository name to use in the web interface, and by TortoiseHg as a shorthand name. Default is the working directory.Repository not localRepository status & changesRequire confirmationRescanResolve Conflicts - %sResolved conflictsRestart &BranchRestart Mer&geRestart Merge &withRestart all TortoiseHg applications for the following changes to take effect:Resuming rebase already in progressRevRevertRevert &All Files...Revert - %sRevert Files...Revert all file changes?Revert all files to this revisionRevert all working copy changes?Revert file changesRevert file(s) to contents at this revisionRevert files to local or other parent?Revert local file changes?Revert the following files?Revert to RevisionReverting all files will discard changes and leave affected files in a modified state.

                                                                                                              Are you sure you want to use revert?

                                                                                                              (use update to checkout another revision)Reverting p4 changelist...Review BoardReview ID:Review draft posted to %s Review published to %s Reviewer FilterReviewersReviewers available on the serverRevisionRevision #%d (%s) was exported to:

                                                                                                              %s%s%sRevision &DetailsRevision SetRevision Set QueryRevision detailsRevision details context menuRevision has changed to:Revision is &BadRevision is &GoodRevision to Match:Revision:Revisions to Match:Right ToolbarRollbackRollback commit to revision %dRollback to revision %d (undo %s)?Run after a changegroup has been added via push, pull or unbundle, but before the transaction has been committed. Changegroup is visible to hook program. This lets you validate incoming changes before accepting them. Passed the ID of the first new changeset in $HG_NODE and last in $HG_NODE_LAST. Exit status 0 allows the transaction to commit. Non-zero status will cause the transaction to be rolled back and the push, pull or unbundle will fail. URL that was source of changes is in $HG_URL.Run after a changegroup has been added via push, pull or unbundle. ID of the first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL.Run after a changeset has been created but the transaction not yet committed. Changeset is visible to hook program. This lets you validate commit message and changes. Exit status 0 allows the commit to proceed. Non-zero status will cause the transaction to be rolled back. ID of changeset is in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and $HG_PARENT2.Run after a changeset has been created in the local repository. ID of the newly created changeset is in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and $HG_PARENT2.Run after a changeset has been pulled, pushed, or unbundled into the local repository. The ID of the newly arrived changeset is in $HG_NODE. URL that was source of changes came is in $HG_URL.Run after a pushkey (like a bookmark) is added to the repository. The key namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) is in $HG_OLD, and the new value is in $HG_NEW.Run after a tag is created. ID of tagged changeset is in $HG_NODE. Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in repository if $HG_LOCAL=0.Run after listing pushkeys (like bookmarks) in the repository. The key namespace is in $HG_NAMESPACE. $HG_VALUES is a dictionary containing the keys and values.Run after sending changes from local repository to another. ID of first changeset sent is in $HG_NODE. Source of operation is in $HG_SOURCE.Run after updating the working directory. Changeset ID of first new parent is in $HG_PARENT1. If merge, ID of second new parent is in $HG_PARENT2. If the update succeeded, $HG_ERROR=0. If the update failed (e.g. because conflicts not resolved), $HG_ERROR=1.Run before a changegroup is added via push, pull or unbundle. Exit status 0 allows the changegroup to proceed. Non-zero status will cause the push, pull or unbundle to fail. URL from which changes will come is in $HG_URL.Run before a pushkey (like a bookmark) is added to the repository. Non-zero status will cause the key to be rejected. The key namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) is in $HG_OLD, and the new value is in $HG_NEW.Run before collecting changes to send from the local repository to another. Non-zero status will cause failure. This lets you prevent pull over HTTP or SSH. Also prevents against local pull, push (outbound) or bundle commands, but not effective, since you can just copy files instead then. Source of operation is in $HG_SOURCE. If "serve", operation is happening on behalf of remote SSH or HTTP repository. If "push", "pull" or "bundle", operation is happening on behalf of repository on same system.Run before creating a tag. Exit status 0 allows the tag to be created. Non-zero status will cause the tag to fail. ID of changeset to tag is in $HG_NODE. Name of tag is in $HG_TAG. Tag is local if $HG_LOCAL=1, in repository if $HG_LOCAL=0.Run before listing pushkeys (like bookmarks) in the repository. Non-zero status will cause failure. The key namespace is in $HG_NAMESPACE.Run before starting a local commit. Exit status 0 allows the commit to proceed. Non-zero status will cause the commit to fail. Parent changeset IDs are in $HG_PARENT1 and $HG_PARENT2.Run before updating the working directory. Exit status 0 allows the update to proceed. Non-zero status will prevent the update. Changeset ID of first new parent is in $HG_PARENT1. If merge, ID of second new parent is in $HG_PARENT2.Running at %sRunning...RussianS&tatus BarS&ync ToolbarS&ynchronizeSMTP HostSMTP PasswordSMTP PortSMTP TLSSMTP UsernameSSH CommandSSL error: %sSSL: Server certificate verify failedSSL: unknown error %s:%sSa&ve Current Sync Paths on ExitSaveSave GlobalSave Open Repositories on E&xitSave PathSave changes before editing?Save current URL under an aliasSave error report toSave file as it appeared at this revisionSave file toSave hgweb configSave in RepoScan &Remote RepositoriesSearchSearch HistorySearch Selected TextSearch already in progressSearch commit message, user name, and names of changed files for string.Search file revisions for patternsSearch in All &HistorySearchingSearching...Second parent for all changesets in set, or the working directory.Secret MQ PatchesSecure HTTPS ConnectionSecuritySecurity: Select &AllSelect &NoneSelect Destination FileSelect Destination FolderSelect Directory containing patchesSelect RepositorySelect Source FileSelect Source FolderSelect Tool:Select User Certificate Chain FileSelect User Certificate Key FileSelect a GUI location to edit:Select an existing repository to add as a subrepoSelect branch of merge commitSelect bundle fileSelect destination repositorySelect if TortoiseHg will show a target combo in the sync toolbar.

                                                                                                              • auto: The default. Show the combo if more than one target configured.
                                                                                                              • always: Always show the combo.

                                                                                                              Default: autoSelect patch folderSelect patchesSelect post-pull operation for this repositorySelect repositorySelect repository directory to addSelect repository directory to openSelect source repositorySelect the initial revision that will be selected when opening a repository. You can select the "current" (i.e. the working directory parent), the current "tip" or the working directory ("workingdir"). Default: currentSelect the initial widget that will be shown when opening a repository. Default: revdetailsSelect the revisions that will be pushed by default, whenever you click the Push button.

                                                                                                              • all: The default. Push all changes in all branches.
                                                                                                              • branch: Push all changes in the current branch.
                                                                                                              • revision: Push the changes in the current branch up to the current revision.

                                                                                                              Default: allSelect the toolbar or menu to changeSelect when TortoiseHg will show a prompt to activate a bookmark when updating to a revision that has one or more bookmarks.

                                                                                                              • auto: Try to automatically activate bookmarks. When updating to a revision that has a single bookmark it will be activated automatically. Show a prompt if there is more than one bookmark on the revision that is being updated to.
                                                                                                              • prompt: The default. Show a prompt when updating to a revision that has one or more bookmarks.
                                                                                                              • never: Never show any prompt to activate any bookmarks.

                                                                                                              Default: promptSelect when the working directory status list will be refreshed:
                                                                                                              - auto: [default] let TortoiseHg decide when to refresh the working directory status list.
                                                                                                              TortoiseHg will refresh the status list whenever it performs an action that may potentially modify the working directory. This may miss any changes that happen outside of TortoiseHg's control;
                                                                                                              - always: in addition to the automatic updates above, also refresh the status list whenever the user clicks on the "working dir revision" or on the "Commit icon" on the workbench task bar;
                                                                                                              - alwayslocal: same as "always" but restricts forced refreshes to local repos.
                                                                                                              Default: autoSelect when your command will be runSelect whether you want to have a single workbench window. If you disable this setting you will get a new workbench window everytime that you use the "Hg Workbench" command on the explorer context menu. Default: TrueSelectedSelected changeset pair not relatedSend &EmailSend changesets as Hg patchesSend single binary bundle, not patchesSending EmailServerServer Repository IDServersSet &Guards...Set AncestrySet Date:Set LogicSet username:Settin&gsSettingsSettings File:Several characters would be lost.Several icons are courtesy of the TortoiseSVN and Tango projectsSh&ow Repository RegistryShelfShelf clearedShelf deletedShelf: %sShellShelve - move local changes to a patchShelve ChangesShould new tabs be open next to the current tab? If False new tabs will be open after the last tab. Default: TrueShow &AuthorShow &DateShow &Patch QueueShow &PathsShow &RevisionShow About DialogShow Conso&leShow DetailShow Family LineShow FunctionShow IconShow IssuesShow Issues...Show LogShow Output LogShow Revision &DetailsShow S&hort PathsShow Tas&k TabShow a full directory path of the repository in the dialog title instead of just the root directory name. Default: FalseShow allShow all version-controlled files in tree viewShow changes from first parentShow changes from second parentShow files changed by this commitShow full authorname in Logview. If not enabled, only a short part, usually name without email is shown. Default: FalseShow indirect revision dependency on the revision graph when filtered by revset. Default: True

                                                                                                              Note: Calculating family line may be slow in some cases. This option is expected to be removed if the performance issue is solved.Show tabs along the side of the bottom half of each repo widget allowing one to switch task tabs without using the toolbar. Default: offShow tags at start of commit message.Show the history of the selected fileShow which function each change is in. Default: FalseShow/Hide hidden changesetsSig&n...Sign - %sSign even if the sigfile is modified (-f/--force)Signature has been addedSimplelockSimplelock extension not enabledSingle Workbench WindowSizeSize (KB)Skip final confirmation page, close after commit.Skipping %s, unable to readSome of the files that you have selected are of a size over 10 MB. You may make more efficient use of disk space by adding these files as largefiles, which will store only the most recent revision of each file in your local repository, with older revisions available on the server. Do you wish to add these files as largefiles?Sort by &NameSort by &PathSort set by keys. The default sort order is ascending, specify a key as "-key" to sort in descending order.Sort the group by full pathSort the group by short nameSourceSource does not exist.Source:South-Eastern EuropeSouthern EuropeSpace separated list of branch names and colors of the form branch:#XXXXXX. Spaces and colons in the branch name must be escaped using a backslash (\). Likewise some other characters can be escaped in this way, e.g. \u0040 will be decoded to the @ character, and \n to a linefeed. Default: None (leave blank)Space separated list of shell operations you would like to be performed immediately, without user interaction. Commands are "add remove revert forget". Default: None (leave blank)Space separated list of tags that will not be shown. Useful example: Specify "qbase qparent qtip" to hide the standard tags inserted by the Mercurial Queues Extension. Default: None (leave blank)Specify name of new shelfSpecify the command to launch your preferred terminal shell application. If the value includes the string %(reponame)s, the name of the repository will be substituted in place of %(reponame)s. Similarly, %(root)s will be the full path to the repository. (restart needed)
                                                                                                              Default, Windows: cmd.exe /K title %(reponame)s
                                                                                                              Default, OS X: not set
                                                                                                              Default, other: xterm -T "%(reponame)s"Specify the number of spaces that tabs expand to in various TortoiseHg windows. Default: 8Specify the path to GPG. Default: gpgSpecify the target filesystem where TortoiseHg monitors changes. Default: localonlySpecify visual diff tool, as described in the [merge-tools] section of your Mercurial configuration files. If left unspecified, TortoiseHg will use the selected merge tool. Failing that it uses the first applicable tool it finds.Specify visual editor, as described in the [editor-tools] section of your Mercurial configuration files. If left unspecified, TortoiseHg will use the first applicable tool it finds.Specify which task buttons you want to show on the task toolbar and in which order.
                                                                                                              Type a list of the task button names. Add separators by putting "|" between task button names.
                                                                                                              Valid names are: log commit sync grep and pbranch.
                                                                                                              Default: log commit grep pbranch | syncSpecify your preferred user interface language (restart needed)StartStart a new patch branchStart revision:Start web server for this repositoryStatStatusStatus File List ToolbarStatus:StopStop current operationStoppedStrikeStrip - %sStrip:StripesStripping Mercurial header removes username and parent information. Only useful if recipient is not using Mercurial (and does not like to see the headers).StyleSub menu items:Subject:Submitting p4 changelist...Subrepo '%s' has a non trivial default sync URL:

                                                                                                              %s

                                                                                                              Replace it with the following URL?:

                                                                                                              %sSubrepo added to .hgsub fileSubrepo created and set to initial revision.Subrepo initialized to revision:Subrepo may be damaged or inaccessible.Subrepo removed from repository.Subrepo state is:Subrepo statesSubrepo was not changed.Subrepository already existsSubrepository not foundSubrepository not found in the working directory.Subrepository removed from .hgsubSubversion:SuccessSuccessors:Suggested length of commit message lines. A red vertical line will mark this length. CTRL-E will reflow the current paragraph to the specified line length. Default: 80Summary (first description line)Summary Line LengthSummary:Swap source and destinationSyncSync BookmarksSynchronizeSynchronize with dragged repositorySynchronize with remote repositorySyntax HighlightingSystem CacheTLS 1.0TLS 1.1TLS 1.2Tab WidthTab cannot exitTag '%s' has been addedTag '%s' has been movedTag '%s' has been removedTag - %sTag:Tagged:TagsTags:Take &OtherTar archive compressed using bzip2Tar archive compressed using gzipTar archivesTarget ComboTarget GroupsTarget PeopleTarget:Task TabsTask Toolbar OrderTaskbarTemporarily disable configured HTTP proxyTemporary files are removed when this dialog is closedTerminated by userTest this revision and report findings. (good/bad/skip)Text Translation FailureText files (*.txt)Textual description of the repository's purpose or contents.ThaiThe .hgsub file already contains the line:

                                                                                                              %sThe changes from revision %s and all unmerged parents will be discarded. Are you sure this is what you want to do?The command "%s" could not be executed.The command "%s" failed (code %d).The command that will be executed. To execute a Mercurial command use "hg" (rather than "hg.exe") as the executable command. You can use several {VARIABLES} to compose your command. Common variables: - {ROOT}: The path to the current repository root. - {REV} / {REVID}: Selected revisions numbers / hexadecimal revision id hashes respectively formatted as a revset expression. - {SELECTEDFILES}: The list of files selected by the user on the revision details file list. - {FILES}: The list of files touched by the selected revisions. - {ALLFILES}: All the files tracked by Mercurial on the selected revisions. Pair selection variables: - {REV_A} / {REVID_A}: the first selected revision number / hexadecimal revision id hash respectively. - {REV_B} / {REVID_B}: the second selected revision number / hexadecimal revision id hash respectively. The command that will be executed. To execute a python function prepend the command with "python:". The default repository id for this repo on the review board serverThe destination "%s" already exists as a file!The destination "%s" already exists as a folder!The destination must be within the repository tree.The directory "%s" is not empty! Do you want to overwrite it?The directory where the command will be executed. If this is not set, the root of the current repository will be used instead. You can use the same {VARIABLES} as on the "Command" setting. The editor used by Mercurial command line commands to collect multiline input from the user. Most notably, commit messages.The exception error message was:

                                                                                                              %s

                                                                                                              The file "%s" already exists! Do you want to overwrite it?The following error message was returned: "%s" Please check that the command path is valid and that it is a valid applicationThe following error message was returned: %sThe hook name cannot contain any spaces, tabs or '=' characters.The hook name. It cannot contain spaces.The maximum size file (in KB) that TortoiseHg will show changes for in the changelog, status, and commit windows. A value of zero implies no limit. Default: 1024 (1MB)The named bookmark or all bookmarks.The named tag or all tags.The number of revisions to read and display in the changelog viewer in a single batch. Default: 500The phase of new commits. Default: draftThe selected command is emptyThe selected folder:

                                                                                                              %s

                                                                                                              is not inside the target repository.

                                                                                                              This may be allowed but is greatly discouraged.
                                                                                                              If you want to add a non trivial subrepository mapping you must manually edit the .hgsub fileThe selected repository:

                                                                                                              %s

                                                                                                              cannot be open!The selected repository:

                                                                                                              %s

                                                                                                              is already a subrepository of:

                                                                                                              %s

                                                                                                              as: "%s"The selected revision (%s) has a bookmark on it called "%s".

                                                                                                              Do you want to activate it?
                                                                                                              You can disable this prompt by configuring Settings/Workbench/Activate BookmarksThe selected revision (%s) has %d bookmarks on it.

                                                                                                              Select the bookmark that you want to activate and click OK.

                                                                                                              Click Cancel if you don't want to activate any of them.

                                                                                                              You can disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                                                                              The selected revision (rev #%d) cannot be imported because it is not a descendant of qparent (rev #%d)The selected subrepo:

                                                                                                              %s

                                                                                                              has been added to the .hgsub file of the repository:

                                                                                                              %s

                                                                                                              Remember that in order to finish adding the subrepo you must still commit the changes to the .hgsub file in order to confirm the addition of the subrepo.The selected subrepository has been removed from the .hgsub file.

                                                                                                              Remember that you must commit this .hgsub change in order to complete the removal of the subrepository!The selected subrepository was not found on the .hgsub file.

                                                                                                              Perhaps it has already been removed?The set of all parents for all changesets in set.The source must be within the repository tree.The subrepository is dirty.The tool icon. You can use any built-in TortoiseHg icon by setting this value to a valid TortoiseHg icon name (e.g. clone, add, remove, sync, thg-logo, hg-update, etc). You can also set this value to the absolute path to any icon on your file system.The tool label, which is what will be shown on the repowidget context menu. If no label is set, the tool name will be used as the tool label. If no tooltip is set, the label will be used as the tooltip as well.The tool name cannot have any spaces in it.The tool name. It cannot contain spaces.The tooltip that will be shown on the tool button. This is only shown when the tool button is shown on the workbench toolbar.The working directory is already merged. Continue or discard existing merge.There are existing patch files for %d revisions (%s) in the selected location (%s). There are merge conflicts to be resolvedThere are no configured sync paths. Open the Synchronize tab to configure them.There are no conflicting file merges.There are no file changes to viewThere are no files that may have been renamedThere is already an existing folder with that same name.There is an existing %s.%s hook. Do you want to replace it?There is no rollback transaction availableThese users will be notified of the reviewThg - TortoiseHg's GUI tools for Mercurial SCM (Hg) This appears to be a binary file.This error will not be shown again until you restart the workbenchThree-way Merge ToolTitleToTo finish merging, you must commit the working directory. To cancel the merge you can update to one of the merge parent revisions.To graft destinationTo rebase destinationTo:Toggle display of text search barToggle filtering of non-matched changesetsToggle graft relations visibilityToggle parent to be used as the base revisionTolerate non-conflicting local changes (--keep-changes)Too many rows selected for menuTool &ResolveTool labelTool launch failureTool nameToolsTools shown on selected locationTooltipTop menu items:Top&ic...Topic '%s' does not existTopic '%s' has been addedTopic '%s' has been removedTopic '%s' has been renamed to %sTopic - %sTopic:TortoiseHg Bookmark SyncTortoiseHg Bug ReportTortoiseHg Command DialogTortoiseHg CommitTortoiseHg Dialogs (version %s), Mercurial (version %s) TortoiseHg ErrorTortoiseHg Lock Tool - %sTortoiseHg New Shelf NameTortoiseHg PromptTortoiseHg SearchTortoiseHg SettingsTortoiseHg Shelve - %sTortoiseHg Web ServerTortoiseHg WorkbenchTortoiseHg has created a new .hgignore file. Would you like to add this file to the source code control repository?TortoiseHg: %sTraditional ChineseTransplant:Trigger revision set queryTry refreshing your repository.TurkishTypeU&nbundle...UI LanguageURLURLError: %sUTC TimeUkrainianUnable to backoutUnable to compress historyUnable to create a Mercurial.ini fileUnable to create a config fileUnable to delete %d file or folderUnable to delete %d files or foldersUnable to determine pending changesetsUnable to determine working copy revision Unable to find changesetUnable to mergeUnable to merge chunksUnable to parse p4pending outputUnable to read fileUnable to read repository statusUnable to removeUnable to remove URLUnable to remove file %s, permission deniedUnable to save after commit pushUnable to save an URLUnable to save authenticationUnable to save auto include listUnable to save post pull operationUnable to save recurse in subrepos.Unable to save usernameUnable to show subrepository filesUnable to start the following command:Unable to translate input to local encoding.Unable to translate message to local encoding. Consider setting HGENCODING environment variable. Replace untranslatable characters with "?"? Unable to update repository nameUnable to write .hgignore fileUnable to write configuration fileUnable to write diff fileUnable to write fileUnapply all patchesUnapply one patchUnbundleUncheckUncheck all filesUncheck to consider all revisioned files for copy sourcesUncommited merge - please select a parent revisionUncompressed tar archiveUncompressed zip archiveUnderlineUndo close other tabsUndo close tabUndo last commit?Undo last transaction?Undo most recent commit (%d), preserving file changes?UnicodeUnified ChineseUnknown revision!Unlock of %s failed, retryUnlock of %s successfulUnlocking %sUnresolved conflictsUnresolved conflicts remain. Are you sure?Unsaved changes will be lost. Do you want to reload?Unsupported repository type (%s)UnversionedUpdateUpdate - %sUpdate - pull, then try to updateUpdate IconsUpdate ReviewUpdate icons for this repositoryUpdate on incomingUpdate or create a path alias called '%s' on all subrepos, using this URL as the base URL, appending the local relative subrepo path to itUpdate subrepo pathsUpdate the fields of this existing requestUpdate to:Update working directoryUpdate working directory or switch revisionsUpdate...UpdateOrRebase - pull, then try to update or rebaseUpdateOrRebase - use rebase extension (rebase is not active!)Updating repository registryUpgrading to a more recent TortoiseHg is recommended.Use English backout messageUse English commit messageUse alternative graph layouter for large repositories. Default: False

                                                                                                              Note: This layouter colors edges using branch information and does not display graft edges, regardless of whether they are requested or not.Use compact viewUse current dateUse custom commit message:Use extended (git) patch formatUse git extended diff header format. Default: FalseUse largefilesUse my user name instead of graft committer user nameUse optimized graph layouterUse proxy serverUse pull protocol to copy metadataUserUser AuthenticationUser CacheUser Certificate ChainUser Certificate KeyUser authentication data should be associated with the hostname using the security dialog.User name to authenticate with review boardUser:UsernameUsername to authenticate to mail server withVerify backout revision and ensure your working directory is clean.Verify merge targets and ensure your working directory is clean.Verify with Certificate Authority certificates (best)Verify with stored host fingerprint (good)Vi&ew FileVietnameseView File atView O&therView change as unified diff outputView change history in repositoryView change history of selected filesView change in context of fileView changes to current in external diff toolView changes using GUI diff toolView file as it appeared at this revisionView file changes in external diff toolView the repository's settingsVisual DiffVisual Diff ToolVisual Diff...Visual Diffs - Visual EditorVisual diff between resolved file and first parentVisual diff between resolved file and second parentVisual diff...Visual diffs are not supported for files in subrepositories. They will not be shown.Visual three-way diffWarningWarning: affects all Tortoises, logoff required after changeWas renamed fromWeb ServerWebconfWestern EuropeWhat do you want to do? When committing, require that a reference to an issue be specified. If enabled, the regex configured in 'Issue Regex' must find a match in the commit message.When enabled, automatically show the Output Log when the command is run. Default: False.When running from the command line, fork a background process to run graphical dialogs. This setting is ignored when TortoiseHg runs as an OS X application bundle. Default: TrueWhen set to 'auto', mq will automatically use git patches when required to avoid losing changes to file modes, copy records or binary files. If set to 'keep', mq will obey the [diff] section configuration while preserving existing git patches upon qrefresh. If set to 'yes' or 'no', mq will override the [diff] section and always generate git or regular patches, possibly losing data in the second case. Default: autoWhen to ask the user to confirm the update of the local "projrc" configuration file when the remote projrc file changes. Possible values are:

                                                                                                              • always: [default] Always show a confirmation prompt before updating the local .hg/projrc file.
                                                                                                              • first: Show a confirmation dialog when the repository is cloned or when a remote projrc file is found for the first time.
                                                                                                              • never: Update the local .hg/projrc file automatically, without requiring any user confirmation.
                                                                                                              Whether Git subrepositories are allowed in the working directory. Default: False

                                                                                                              See the security note before enabling Git subrepos.Whether Mercurial subrepositories are allowed in the working directory. Default: TrueWhether Subversion subrepositories are allowed in the working directory. Default: False

                                                                                                              See the security note before enabling Subversion subrepos.Whether to allow pushing to the repository. If empty or not set, push is not allowed. If the special value "*", any remote user can push, including unauthenticated users. Otherwise, the remote user must have been authenticated, and the authenticated user name must be present in this list (separated by whitespace or ","). The contents of the allow_push list are examined after the deny_push list.Whether to deny pushing to the repository. If empty or not set, push is not denied. If the special value "*", all remote users are denied push. Otherwise, unauthenticated users are all denied, and any authenticated user name present in this list (separated by whitespace or ",") is also denied. The contents of the deny_push list are examined before the allow_push list.Whether to require that inbound pushes be transported over SSL to prevent password sniffing.Which template map style to useWhite&spaceWord docs (*.doc *.docx)Work on patch queue (--mq)WorkbenchWorkbench Log ColumnsWorkbench custom toolbarWorking CopyWorking DirectoryWorking Directory (merged)Working directoryWorking directory is not clean! View changes...Working directory statusWrap searchWrite bundleWrite diff fileWrite patch series (bundle) descriptionYou are trying to move the phase of revision %d backwards, from "%s" to "%s". However, "%s" is a lower phase level than "%s". Moving the phase backwards is not recommended. For example, it may result in having multiple heads if you modify a revision that you have already pushed to a server. Please be careful!You can change the icon set from TortoiseSVN's SettingsYou can only release your own locksYou can visit our site hereYou cannot merge a revision with itselfYou have authentication info configured for this host and inside this URL. Remove authentication info from this URL?You have marked all rejected patch chunks as resolved yet you have not modified the file on the edit panel. This probably means that no code from any of the rejected patch chunks made it into the file. Are you sure that you want to leave the file as is and consider all the rejected patch chunks as resolved? Doing so may delete them from a shelve, for example, which would mean that you would lose them forever! Click Yes to accept the file as is or No to continue resolving the rejected patch chunks.You have multiple renames selected for destination file: %s. Aborting!You have selected one or more files that have been modified. By default, these files will not be removed. What would you like to do?You likely need to refresh this applicationYou may continue or start the graftYou may continue the compressYou may continue the graftYou may continue the rebaseYou must enter a patch nameYou must identify yourself to MercurialYou must provide revisions to graftYou must provide source and dest argumentsYou must provide the path to a fileYou must set a command to run.You must set a tool name.You must set a valid hook type.Your TortoiseHg is up to date.Your current working revision (%d) will be removed by this rollback, leaving uncommitted changes. Continue?Zip archive compressed using deflateZip archives[--after PATCH] PATCH...[--insecure] [SOURCE][Code: %d][WARNING] Incomplete changed subrepository. Update to this revision to pull it.[WARNING] Incomplete subrepo. Update to this revision to pull it.[WARNING] Invalid subrepo revision ID: %s [WARNING] Missing changed subrepository. Update to this revision to clone it.[WARNING] Missing subrepo. Update to this revision to clone it.[command completed successfully %s][command interrupted %s][command returned code %d %%s][command terminated by user %s][non-existant][original][working copy]a revision to posta revision to sendabort: abort: %s abort: %s! add diffstat output to messagesaddedall revisions converted from subversionalways fork GUI processasynchronous read is not implement yetattachbasic commands: bodybookmark: branch: bundle file to previewcan not read file "%s". Ignored. cannot move applied patchescannot move into applied patchescannot specify both -k/--query and filenameschangeset %d:%schangeset to view in diff toolchangeset which represents converted svn revisionchangeset: %schangeset: %s (not found on subrepository)cleanclone only the specified branchcommand parse error: %scorrupted command result: %rdefaultdiffstatdiscard uncommitted changes (no backup)display help and exitdo not back up stripped revisionsdo not commit the sigfile after signingdo not fork GUI processdo not modify working copy during stripdo not verify server certificate (ignoring web.cacerts config)enable additional outputenable debugging outputeol is incompatible with win32texterror while reading from data inputerror while running command exec mode has been setexec mode has been unsetfailed to encode command: %sfailed to encode input: %sfailed to fork GUI process: %s failed to start command field to give initial focusfile has been deleted, refreshfile has been modified, refreshfilesfilling (%d)filterglobal options:grep: %s grep: invalid match pattern: %s hg viewhggit packaged with thghgsubversion is incompatible with perfarcehgsubversion packaged with thghint:hint: historyhttps://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings.html#tsvn-dug-settings-icon-setignore case during searchignoredimport to the patch queue (MQ)in the futureinclude the specified changesetinitial search patterninlineinotify is not supported on this platforminvalid "hello" message: %rinvalid argumentsinvalid line number: %sinvalid patch position specifiedkeep original branch nameskeep original changesetslaunch visual diff toollist of commands: locallsprof not available - install from http://codespeak.net/svn/user/arigo/hack/misc/lsprof/make the signature localmake the tag localmerge with old dirstate parent after backoutmethodmissingmodifiedmove after the specified patchmust be specified 'type' in stylemust be specified repositoryname of the hgweb config file (DEPRECATED)name of the hgweb config file (serve more than one repository)needs merge of %i heads needs merge with %s needs merge with %s (through %s) needs update of diff base to tip of %s no "runcommand" capabilityno command specifiedno commands defined no guardsno matches found: %sno outgoing changesetsno outgoing changesets in current branch (%s) / %d in totalno outgoing changesets up to current revision (#%d) / %d in totalno outgoing changesets up to revision #%d / %d in totalno repo at no revisions specifiednotify the shell for paths givennownull revision (i.e. remove file(s))only one new bookmark name allowedonly one new topic name allowedopen a new workbench windowopen the bookmark sync windowopen to lineopen...option --config may not be abbreviated!options: parent to choose when backing out mergepassword: patch %s not in seriesperfarce is incompatible with hgsubversionprint command execution profileprint licenseprocess exited unexpectedly with code %dpull: %s push: %sread file list from fileread file list from file encoding utf-8rebase from the specified changesetrebase onto the specified changesetrecord datecode as commit daterecord user as committerremove a tagremove the status cacheremove working directoryremovedreplace existing tagrepository %s not foundrepository root directory or symbolic path namerequires a single filenamerev: %d (%s)reviewboard extension not enabledrevisionrevision %d's first parent (i.e. revision %d)revision %d's second parent (i.e. revision %d)revision to annotaterevision to archiverevision to backoutrevision to displayrevision to mergerevision to striprevision to tagrevision to updaterevision, tag or branch to check outrevisions %d:%s to %d:%srevisions to graftrevisions to prunerevisions to view in diff toolsearch for a given text or revsetsee %(url)sselect the specified revisionselected filessend patches as attachmentssend patches as inline attachmentssend patches as part of the email bodyset/override config option (use 'section.name=value')show files without changesshow ignored filesshow the contents of the status cache (no update)side-by-side comparison of revisionssign even if the sigfile is modifiedstart debuggerstatussubreposuppress outputsync command already runningthe clone will include an empty working copy (only a repository)the key id to sign withthe revision to showthg %s: %s thg aboutthg add [FILE]...thg annotatethg archivethg backout [OPTION]... [[-r] REV]thg bisectthg bookmarks [-r REV] [NAME]thg clone [OPTION]... [SOURCE] [DEST]thg commit [OPTIONS] [FILE]...thg debugblockmatcherthg debugbugreport [TEXT]thg debugconsolethg debuglighthgthg debugruncommand -- COMMAND [ARGUMENT]...thg drag_copy SOURCE... DESTthg drag_move SOURCE... DESTthg email [REVS]thg filelog [OPTION]... FILEthg forget [FILE]...thg graft [-r] REV...thg grepthg guessthg help [COMMAND]thg hgignore [FILE]thg import [OPTION] [SOURCE]...thg init [DEST]thg lockthg log [OPTIONS] [FILE]thg manifest [-r REV] [FILE]thg merge [[-r] REV]thg postreview [-r] REV...thg prune [-r] REV...thg purgethg rebase -s REV -d REV [--keep]thg rejects [FILE]thg remove [FILE]...thg rename [SOURCE] [DEST]thg repoconfigthg resolvethg revdetails [-r REV]thg revert [FILE]...thg rupdate [[-r] REV]thg serve [--web-conf FILE]thg shellconfigthg shelvethg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]thg status [OPTIONS] [FILE]thg strip [-k] [-f] [-n] [[-r] REV]thg sync [OPTION]... [PEER]thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]thg thgstatus [OPTION]thg topics [-r REV] [NAME]thg update [-C] [[-r] REV]thg userconfigthg version [OPTION]thg: %s thg: command '%s' is ambiguous: %s thg: unknown command '%s' timed out waiting for messagetimed out while reading: %r...unexpected response on required channel %runknownunknown patch to move specifiedunknown revision!unrecognized profiling format '%s' - Ignored unrecognized response: %sunsupported URL: %supdate all repos in current diruse "thg -v help %s" to show global optionsuse "thg -v help%s" to show aliases and global optionsuse "thg help" for the full list of commandsuse "thg help" for the full list of commands or "thg -v" for detailsuse as commit messageuse only one form to specify the revisionuse pull protocol to copy metadatause uncompressed transfer (fast over LAN)version %swait until the second ticks overwill be closedwin32ill: cannot create window for messageswin32ill: interrupted while stopping message loop win32ill: unsupported platform: %s win32text is incompatible with eolwith Mercurial-%s, Python-%s, PyQt-%s, Qt-%sworking changesProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: POT-Creation-Date: 2019-05-08 19:54+0300 PO-Revision-Date: 2019-05-13 18:28MSK Last-Translator: Olesya Gerasimenko Language-Team: Basealt Translation Team Language: ru MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2; X-Launchpad-Export-Date: 2018-05-04 05:28+0000 X-Generator: Lokalize 2.0 Проверьте правильность этой команды «thg». Прерывание с клавиатуры, останавливается. псевдонимы: %s (по умолчанию: %s) (скопирован из %s) (является символической ссылкой) (не версионирован) (переименован из %s) (был добавлен) (был добавлен, а теперь потерялся) (был уничтожен) отфильтровано%s не является папкой«%s» не является подходящим каталогом«%s» изъято из истории путей«%s» изъято из истории поиска### текст фильтра ###### отпечаток сертификата хоста ###### имя заплатки ###### регулярное выражение ###### регулярное выражение для поиска ###### запрос на получение набора ревизий ###utf-8,cp1251,koi8-r,iso8859-5% совпадения%d день%d дня%d дней%d файлов содержат конфликты слияния, которые должны быть улажены%d файлов было изменено на обеих ветках, различия должны быть улажены%d час%d часа%d часовНайдено совпадений: %d%d минута%d минуты%d минут%d месяц%d месяца%d месяцев%d исходящих наборов изменений%d исходящих наборов изменений в текущей ветке (%s) / всего %d%d исходящих наборов изменений для %s%d исходящих наборов изменений до текущей ревизии (#%d) / всего %d%d исходящих наборов изменений до ревизии #%d / всего %d%d заплаток экспортировано в:

                                                                                                              %sНайдено %d ожидающих списков изменений%d секунда%d секунды%d секунд%d неделя%d недели%d недель%d год%d года%d лет%d%%%dтч%p%%s (подсказка: %s)%s (осталась)%s (предоставлена)%s — подробности ревизии (%s)%s — Рабочая среда TortoiseHg%s — Рабочая среда TortoiseHg — %s%s — операция с веткой%s — фиксация%s — параметры фиксации%s — hg %s%s — зачистка%s — восстановление хранилища%s — состояние%s — состояние (выделение отфильтровано)%s — параметры синхронизации%s — проверка хранилища%s : %s%s <входящий>%s уже существует, заменить URL?%s и %s имеют одинаковое содержимое %s ошибка сертификата: сертификат не получен%s содержит отвергнутые лоскуты, править файл с применённой заплаткой отвергнутыми лоскутами?%s — «грязное» подхранилище%s добавлен%s удалён не командой hg, но все же отслеживается%s проигнорирован%s изменён%s не является допустимым хранилищем%s не изменён (чистый)%s не под контролем версий (неизвестен)%s изъят%s заплатокпараметры проекта %s (.hg/projrc)Настройки хранилища %s%s будет импортирован в Глобальные настройки для %sО &TortoiseHg&Добавить&Добавить хранилище...Отображать &после отступа&Предкам и потомкамПрименить только &эту заплатку&Архивировать&Архивировать...&Автоматически&Автоопределение&Автозавершение&Обратить изменения...&Бисекция...&Ветке&Обзор...&Комплект ревизии и ее потомков...&ОтменаПо &символам&Очистить&КлонироватьЗакр&ыть&Закрыть хранилище&Фиксация&Фиксировать в очередь...&Фиксировать в текущую ветку&Копировать&Копировать заплатку&Копировать...&Создать&Инструменты&Удалить&Удалить заплатки...&Уничтожить очередь...Удалить неверсионные...Сравнить другую с предком&Сравнить выбранные версии файлаСравнить с другой&Сравнить с родителем&Отбросить&Отбросить (--force)От&бросить изменения&Панели&Править файл&Править локальную копию&Главная&Изменить...&Настройки редактора&Отправить заплатку...В&ыход&Нет&ФайлПанель &фильтра&Завершить заплатку&Плоский списокП&ринудительно&Забыть&Перейти (обновить рабочий каталог)&Перейти к ревизии&Нарастить к локальной копии&Справка&Игнорировать...&Импорт&Импортировать заплатки...&Входящие&Не отображать&Сохранить (--keep)&Лицензия&Локальной копией&Блокировать файл...&Mac&Сделать секретной&Отметить исключённые измененияОтметить как &улаженныйОтметить как &не улаженныйОтметить как &улаженный&Совпадение&Слияние&Слить с локальной копией&Слить...&Больше настроек...Пере&местить&Новое хранилище...&Нет&Нет (отбросить изменения)&Не переносить&Открыть&Открыть всё&Открыть локальную копию&Открыть хранилище...&Исходной ревизией&Другие&Исходящие&Родительской ревизией&Родительской ревизией (%d)В&ставить&Ветка заплаток&Отсечь&Отсечь выделенное...&Отсечь...&Вытянуть&Зачистить очередь...&Зачистить...&Протолкнуть закладки&Readme хранилища&Перебазировать...&ПовторитьОб&новитьОбновить список хранилищ&Обновить удалённо...&Изъять&Удалить закладку&Удалить...&Переименовать&Переименовать активную очередь...&Заменить&Хранилище&Подобрать размеры колонок&Разрешение конфликтов...&Вернуть&Вернуть до ревизии...&Вернуть с созданием резервной копии&Вернуть...&ВыполнитьСохранить&Сохранить в ревизии...&Сканировать хранилища при запуске&Поиск&Поиск в текущем файле&Установить...На&стройкиОтложить&Отложить...&ПодписатьПропустить эту &ревизию&Сортировать&Сортировать по .hgsub&Пробелы&Срезать&Урезать...&Синхронизировать закладки...&ТабуляцияВставка &табуляций&Метка...Взять &локальный&Задачи&Терминал&Да&Отпороть заплатку&Отменить&Unix&Не указаноОб&новить&Обновить...&Проверить&Вид&Просмотреть набор изменений&Просмотр потерянных&Просмотр в ревизии&Отображать&Веб-сервер&Windows&По словам&Панели рабочей среды&Переносы&Да«Публичное» хранилище(%s) (УСТАРЕЛО)(исключено из следующей фиксации)(является изменённым и «грязным» подхранилище)(является изменённым подхранилище)(является «грязным» подхранилище)(является новым и «грязным» подхранилище)(является новым подхранилище)(является изъятым подхранилище)(является неизменённым подхранилище)(текст справки не доступен)(такой же, как родитель)(не сохранено)*: не используется TortoiseHg, улаженное слияние, неулаженное слияниеТрёхстороннее сравнениеТрёхстороннее сравнение каталогов<Запустить средство настройки...справка по наборам ревизий%d набор изменений будет срезан%d набора изменений будут срезаны%d наборов изменений будет срезаноАннотирование:Кандидаты на совпадениеРазличия между источником и назначениемХост: %sФильтр игнорированияСинтаксическая ошибка!Подробности хранилища:Вернуть %d файлов до их содержимого в следующей ревизии?Вернуть %s до его содержимого в следующей ревизии?Выбранные параметры:Выбранные параметры: %sВозможности подхранилищ:Обнаружены незафиксированные локальные измененияНеизвестная ревизия!Файлы, не входящие в ревизииНеотслеживаемые файлыВеб-сервер:<значок по умолчанию><по умолчанию><не указано>= Родитель для рабочего каталога =>«Шаблон строки», в который, когда он установлен, в виде ссылок подставляются номер ревизии и короткий хэш, которые показаны на панелях ревизии.
                                                                                                              «Шаблон строки» использует синтаксис, подобный «Mercurial шаблонам», который в настоящее время понимает два шаблонных выражения:

                                                                                                              • {node|short} : заменяется на 12 цифр идентификатора ревизии (обратите внимание, что сам по себе {node} в настоящее время не поддерживается).
                                                                                                              • {rev} : заменяется на номер ревизии.
                                                                                                              Например, для того, чтобы сослаться на страницы фиксации BitBucket, можете задать:
                                                                                                              https://bitbucket.org/tortoisehg/thg/commits/{node|short}README файл не указан для текущего репозитория.

                                                                                                              Укажите README файл для репозитория, для этого откройте файл настроек репозитория, добавьте ключ «readme» в раздел «tortoisehg» и установите имя файла или URL к файлу README вашего репозитория.Закладка с именем «%s» уже существуетРазделяемый запятыми список целевых группРазделяемый запятыми список целевых личностейНовая версия TortoiseHg (%s) готова для загрузки!Хранилище не может быть добавлено в качестве подхранилища к самому себеИдентификатор ревизии, закладка, метка или имя веткиФайл долгого ящика с таким именем уже существуетИмя долгого ящика не может содержать %sНельзя открыть окно терминала с оболочкой для удалённого местоположенияОболочка для терминала должна быть сконфигурированаТематическая ветка с именем «%s» уже существуетД&обавить подхранилище...&АвторуПрерватьПрервать операцию экспортирования. Прервано p4pendingО программеО &QtО TortoiseHgПринятьПринять все совпаденияПринять выделенные совпаденияПринять локальную версию файла (вашу)Принять другую версию файла (их)Включить закладкиУстановить закладку?Активировать:ДобавитьДобавить &большие-файлыДобавить &большие-файлы...Добавить файлы...Добавление пути на веб-серверДобавить хранилище в эту группуДобавить как &большие-файлыДобавить как &нормальные файлыДобавить файлы под контроль версийДобавить фильтр игнорирования...Заплатки добавления или удаления должны быть слиты в рабочем каталогеДобавить выбранные файлы под контроль версий?Добавить разделительДобавить в списокДобавленДобавлена метка %s для набора изменений %sОперация после затягиванияВозрастВозраст:ПсевдонимВсёВся историяВсе наборы изменений, принадлежащие веткам выбранных наборов изменений.Все наборы изменений, то же что 0:tip.Все конфликтующие файлы будут помечены как улаженные.Все конфликты улажены.Все контекстыВсе файлы (*)Все файлы в этой ревизииВсе элементыВсе ревизииВсе несохранённые изменения будут потеряны.Разрешать подхранилища GitРазрешать подхранилища HgРазрешать проталкиваниеРазрешать подхранилища SVNРазрешить проталкивание в новую ветку (--new-branch)Разрешить проталкивание в новые ветки (--new-branch)Слияние всегда (когда возможно)Всегда показывать вкладки хранилищ, даже если хранилище всего одно. По умолчанию: НетИсправитьИсправить текущую ревизиюПсевдоним для «::.» (предки первого родителя рабочей копии).Пустое множество, если какая-либо ревизия из множества не найдена. Иначе, все ревизии из множества.Произошла ошибка при чтении файла.Ошибка при обновлении файла hgrc хранилища (%s)Произошла ошибка при записи файла.Произошло исключение при загрузке подхранилищ для:

                                                                                                              «%s»

                                                                                                              Найдена прерванная операция наращивания. Вы не можете выполнять другие операции наращивания, пока не отмените прерванную операцию наращивания.&Аннотировать файл&Настройки аннотированияАннотировать номерами ревизийПр&именить форматДобавитьДобавить информацию о наращивании в сообщение журналаДобавить изменения в существующие файлы заплаток. Применённые заплаткиПрименённые заплатки или qparentНаложить все заплаткиПрименить изменения перед выходом?Наложить одну заплаткуПрименить только выбранную заплаткуПрименить только эту заплаткуПрименить к исходному родителюПрименить заплаткуАрабскаяАрхивация — %sСодержимое архива:Архивировать часть графа...Форматы архивовТипы архивов:Отменить операцию фиксации?Уничтожить эти файлы и папки?Хотите перезаписать его?Перезагрузить этот файл?Вы уверены?Спрашивать имя пользователяПопробовать автоматический (простейший) способ слиянияПытаться протолкнуть на указанный URL или псевдоним пути сразу после удачной фиксации. По умолчанию: Без проталкиванияАвторРасцвечивание авторовСписок автоматической фиксацииСписок автоматического исключенияАвтоматически включаемые файлы:Автоматически улаживать конфликтыАвтоматически перейти к следующей странице, когда обращение изменений и слияние завершатся.Автоматически перейти к следующей странице, когда слияние завершится.Автоматически улаживать конфликты слияния, по возможностиДоступенНазадОбращённый набор изменений: Обращение изменений родительской ревизии произойдёт за один шагОбращаем изменения и фиксируем...Обращаем изменения, потом сливаем...Обращение изменений — %sОбращённый набор измененийОбращение изменений текущей ветки заплатокДля обращения изменений необходима родительская ревизииОбращаемая ревизияОбратный перенос части набора изменений на зависимостьBackspace или Del удаляет строкуРезервные копии изменённых файлов можно будет найти в корзине .hg/Trashcan/Запрошено обратное изменение фазыПлохое имя файлаПрибалтийскаяСкрытые копииПеред обращением изменений необходимо зафиксировать, отложить в заплатку или отбросить изменения.Перед сжатием необходимо зафиксировать, отложить в заплатку или отбросить изменения.Перед наращением ветви необходимо зафиксировать, отложить в заплатку или отбросить изменения.Перед слиянием необходимо зафиксировать, отложить в заплатку или отбросить изменения.Перед перебазированием необходимо зафиксировать, отложить в заплатку или отбросить изменения.Бисекция — %sБисекция — плохая, хорошая...Бисекция — хорошая, плохая...Полужирный&Закладка...Закладка «%s» не существуетЗакладка «%s» была добавленаЗакладка «%s» была перемещенаЗакладка «%s» была изъятаЗакладка «%s» была переименована в «%s»Закладка — %sЗакладка с именем «%s» не существуетЗакладка:ВеткаЦвета ветокВетка:Ветка: &Обзор в ревизииОбзор каталогов...Обзор...Укомплектовать часть графа...Файлы комплектов (*.hg)Комплекты содержат наборы изменений целиком в двоичном виде. Вышестоящие пользователи могут вытягивать из них. Это самый безопасный путь для отправки изменений получателям, использующим Mercurial.Список исключенийBzip2 tar архивы&Выбрать колонки журнала...К&онфигурировать форматРедактор командной строкиНевозможно изменить настройки без пакета iniparse — просмотр только для чтенияНе удалось найти ревизию «%s»ОтменаНевозможно добавить подхранилищеНевозможно обратить изменения, сделанные в другой веткеНе удалось экспортировать ревизиюНе удалось экспортировать ревизию %s в файл с именем: %s Не удалось импортировать выбранную ревизиюНе удалось слить с псевдоревизией %r.Невозможно открыть диалог настройки плагинаНельзя открыть хранилища или подхранилища, не принадлежащие MercurialНевозможно открыть хранилищеНе удаётся открыть файл .hgsub из:

                                                                                                              %sНевозможно прочитать файл .hgsub.

                                                                                                              Удаление подхранилища закончилось неудачей.Невозможно запустить новый поискНе удаётся обновить файл .hgsub из:

                                                                                                              %sНевозможно обновить файл .hgsub.

                                                                                                              Удаление подхранилища закончилось неудачей.КопииКопия:КельтскаяЦентрально- и восточноевропейскаяОшибка запроса сертификатаИзменить &фазу наШрифт журнала изменений&Изменённые в этой фиксацииИзмененияИзменения перемещены, теперь необходимо зафиксироватьИзменения вступят в силу при следующей фиксацииСсылка на набор измененийНабор изменений, являющийся набором слияния.Набор изменений, являющийся головой именованной ветки.Набор изменений, который закрыт.Набор изменений, который помечен меткой.Набор изменений с наибольшим номером ревизии из множества.Набор изменений с наименьшим номером ревизии из множества.Набор изменений:Наборы измененийНаборы изменений, которые затрагивают файлы, соответствующие шаблону. См. справка по шаблонамНаборы изменений, содержащие файлы, совпадающие с шаблоном.Наборы изменений, отсутствующие в указанном целевом хранилище, или в месте для проталкивания по умолчанию.Наборы изменений, являющиеся предками наборов из множества.Наборы изменений, в которых имя пользователя содержит строку.Наборы изменений, добавляющие файлы, совпадающие с шаблоном.Наборы изменений, являющиеся потомками наборов из множества.Наборы изменений, изменяющие файлы, совпадающие с шаблоном.Наборы изменений, удаляющие файлы, совпадающие с шаблоном.Наборы изменений из набора, не имеющие родителя.Наборы изменений в указанном интервале, см. справка по датамКодировка файлов в хранилище, используемая в веб-интерфейсе и TortoiseHg.ОтметитьПроверять фазу подхранилищОтметить все файлыПроверка входящих измененийПроверить входящие изменения из %sПроверить наличие входящих изменений с выбранного URLПроверять фазу текущей ревизии каждого подхранилища. Для значений, отличных от «ignore», фаза текущей ревизии каждого подхранилища проверяется перед фиксацией родительского хранилища. По умолчанию: followКоличество отмеченных: %dПроверяемПроверка обновлений...Проверяем состояние рабочего каталога...Проверяем...Отметьте файлы для добавленияОтметьте файлы для забыванияОтметьте файлы для удаленияОтметьте файлы для возвращенияНаборы изменений, являющиеся детьми наборов из множества.Дочерняя:Выбрать выбранных доступных рецензентовВыбрано лоскутов: %d / %dОчистить журналЧистыйОчиститьОчистить содержимое файла долгого ящика %s?Очистить текущий запрос и текст запросаОчистить текущий файл долгого ящикаНажмите OK для продолжения или Прервать для выхода.Кло&нировать хранилище...Кло&нировать...Клонирование — %sКлонировать хранилищеКлонировать до ревизии:Клонировать с минимальной обработкойКлонировать...ЗакрытьЗакрыть ветку %sЗакрыть после фиксацииЗакрыть ветку: Закрыть текущую веткуЗакрыть другие вкладкиЗакрыть вкладкуЗакрывать средство фиксации после успешного выполнения. По умолчанию: НетЗакрыть:С&равнить ревизии файлаСвернуть перебазируемые наборы изменений (--collapse)Расцвечивать наборы изменений по авторам. По умолчанию: НетРазделяемый запятыми список форматов архивов, разрешенных для скачиванияРазделяемый запятыми список имён веток, которые следует проигнорировать при построении списка веток хранилища. По умолчанию: ПустоРазделяемый запятыми список шаблонов исключаемых файлов. Исключающие шаблоны применяются после включающих.Разделяемый запятыми список файлов, которые автоматически включаются в каждую фиксацию. Предназначено для использования только в настройках хранилищах. По умолчанию: ПустоРазделяемый запятыми список файлов, отметка с которых снимается автоматически при каждом открытии диалогов состояния и фиксации. По умолчанию: ПустоРазделяемый запятыми список шаблонов включаемых файлов. По умолчанию поиск происходит во всём хранилище.Разделяемый запятыми список почтовых адресов получателей скрытых копийРазделяемый запятыми список почтовых адресов получателей копийРазделяемый запятыми список почтовых адресов получателейКомандаОшибка выполнения командыВывод командыКоманда используемая для SSH подключения.

                                                                                                              По умолчанию: «ssh» или «TortoisePlink.exe -ssh -2» (Windows)ФиксироватьПанель диалога фиксацииЗафиксировать позжеЗафиксировать сейчасНастройки фиксацииФиксировать результаты обращения изменений и слиянияФиксировать измененияФиксировать изменения в хранилищеКонтекстное меню фиксацииФиксировать результаты слиянияСообщение фиксацииФиксировать...Фиксируем...Обычные выборкиСравнить ревизии выбранного файлаСравнить с &первым родителемСравнить со &вторым родителемПолностью удалить файл из заплатки?СжатьСжатие — %sСжать историю...Сжать наборы изменений вплоть до (включительно)Сжатие завершено, старая история осталась нетронутойФайл конфигурации:Файлы конфигурации (*.conf *.config *.ini)Ошибка конфигурации: «%(arg0)s»,
                                                                                                              Пожалуйста, исправьте ваш файл конфигурацииНастроить дополнительный инструментКонфигурировать расширение ПроводникаНастроить ловушкуНастроить систему отслеживания проблемНастроить стражейНастроить стражей для выбранной заплаткиНастроить параметры хранилищаНастроить выбранный плагин доступа к системе отслеживания проблемКонфигурировать пользовательские настройкиНастроить плагин доступа к системе отслеживания проблем, COM-объект с интерфейсом IBugTraqProvider или IBugTraqProvider2.Подтвердите добавлениеПодтвердите изменение веткиПодтвердите удалениеПодтвердите уничтожение неверсионных файловПодтвердите отбрасываниеПодтвердите отбрасывание измененийПодтверждение отказа от сообщенияПодтвердите выходПодтвердить новую веткуПодтверждение перезаписиПодтверждение проталкиванияПодтвердите проталкивание в удалённое хранилищеПодтвердить загрузку зановоПодтвердите изъятиеПодтвердите возвращениеПодтвердите сохранениеПодтвердите срезаниеПодтвердите замену URLПодтвердите отменуПодтвердить обновлениеПодтверждать добавление неизвестных файловПодтверждать удаление файловПодтвердите уничтожение файловПодтвердите переключение очереди заплатокПодтвердите уничтожение путиСоединение с рецензионной коллегией...Подумайте — возможно, лучше прервать наращение.Подумайте, может лучше прервать перебазирование.КонсольЖурнал консолиКонтактКонтекстное менюПродолжить или отменить прерванную операцию наращивания?Управляет поведением черновой фазы (draft), при работе в качестве сервера. Когда, Да, в проталкиваемых наборах изменений фаза становится публичной (public) и на клиенте и на сервере, а при затягивании или клонировании наборов изменений становится публичной (public) на клиенте. По умолчанию: ДаПреобразовать существующее хранилище в подхранилищеПреобразовано изПреобразовано из:КопироватьКопировать &хэшКопировать &путьКопирование — %sОшибка копированияКопировать выбранное как заплаткуКопировать полный путь к файлу в буфер обменаКопировать сообщениеКопировать одно из недавних сообщений фиксацииКопировать источник -> назначениеКопировать корневой путь к хранилищу в буфер обменаКопировать рабочие файлы каталога из скелета© Steve Borho и другие, 2008-2019Не удалось получить список подхранилищНе удалось создать экземпляр COM объекта плагина системы отслеживания проблемНе удалось открыть файл .hgsubНе удалось открыть некоторые подхранилищаНе удалось открыть указанный файл для чтения.Не удалось открыть указанный файл для записи.Не удалось преобразовать содержимое файла из родной кодировки.Не удалось преобразовать содержимое файла в родную кодировку.Не удалось обновить файл .hgsubСоздатьСоздать &веткуСоздать &новую очередь...Создать очередь заплатокСоздать здесь хранилищеСоздать новую группуСоздать новую заплаткуСоздать новое хранилищеСоздать здесь клон из источникаСоздать список различий со всеми изменениями из этой веткиСоздать список различий со всеми исходящими изменениямиСоздать новую ветку «%s» с этой фиксацией? Создать файлы особого назначения (.hgignore, ...)Вы&резатьВиновник вычислен.Текущая локальная ревизия&Настройки инструментовДополнительные инструментыКириллическаяДатаДата:Определить переименования...Убрать текущую закладкуУбитые веткиРасположение клонирования по умолчаниюПо умолчанию проталкиватьВид по умолчаниюЗадаёт команду, выполняемую при обнаружении номера проблемы. Регулярное выражение, обнаруживающее номер проблемы, может содержать группы, на которые можно ссылаться при помощи лексем {n} (где n — неотрицательное целое). {0} ссылается на всю строку, совпавшую с регулярным выражением, {1} ссылается на первую группу и т.д. Если в ссылке на проблему не будет никаких лексем {n}, то вся совпавшая строка будет добавлена в конец ссылки.Задаёт регулярное выражение, по совпадению с которым в тексте выявляются номера проблем.УничтожитьУничтожить %d файл в каталоге .hg/TrashcanУничтожить %d файла в каталоге .hg/TrashcanУничтожить %d файлов в каталоге .hg/TrashcanУничтожить %d игнорируемый файлУничтожить %d игнорируемых файлаУничтожить %d игнорируемых файловУничтожить %d неизвестный файлУничтожить %d неизвестных файлаУничтожить %d неизвестных файловУдалить %s из файла конфигурации вашего хранилища?Удалить группу «%s» и все её элементы?Уничтожить очередь заплатокУничтожить заплаткиУдалить инструментУничтожить пустые папкиУдалить из спискаУдалить ловушкуУничтожить заплатки...Уничтожить ссылку наУничтожить выбранные лоскутыУдалить выбранные лоскуты из долгого ящика %s?Удалить выбранные лоскуты из рабочей копии?Уничтожить выбранные заплаткиУдалить выбранный запрос из историиУничтожить файл долгого ящика %s?Уничтожить текущий файл долгого ящикаУдалить эти неверсионные файлы?Уничтожено файлов: %dУничтожено файлов: %d, папок: %dУничтожен*Уничтожаем папку корзины...Неудачные уничтоженияЗапрещать проталкиваниеОписаниеПриемникФайл назначения уже существуетПуть назначения:Назначение:Выявление Копий/Переименований в %sОбнаружить выходящие измененияОбнаружить выходящие изменения в %sОпределить исходящие изменения, предназначенные для выбранного URLВыявить переименования и копииОбнаруженные средства сравнения/слияния:Обнаружены незафиксированные локальные изменения в дереве рабочих каталогов. Пожалуйста, выберите один из вариантов продолжения: Обнаружены незафиксированные локальные измененияОпределяет, следует ли TortoiseHg показать диалог подтверждения перед добавлением новых файлов в фиксацию. «Да»: будет показан диалог подтверждения. «Нет»: выбранные новые файлы будут добавлены в фиксацию без диалога подтверждения. По умолчанию: ДаОпределяет, должен ли TortoiseHg показать диалог подтверждения перед проталкиванием наборов изменений.Если, Нет, проталкивание будет произведено без диалога подтверждения. По умолчанию: ДаОпределяет, следует ли TortoiseHg показать диалог подтверждения перед удалением файлов из фиксации. «Да»: будет показан диалог подтверждения. «Нет»: выбранные файлы будут удалены из фиксации без диалога подтверждения. По умолчанию: ДаОпределяет, когда состояние системы отслеживания проблем будет обновляться в TortoiseHg. Допустимые значения параметров:

                                                                                                              • never (никогда): Не обновлять состояние системы отслеживания проблем автоматически.
                                                                                                              • commit (фиксация): Обновлять состояние системы отслеживания проблем после успешной фиксации.

                                                                                                              По умолчанию: neverОпределяем исходящие наборы изменений для отправки...Сравнить &набор изменений с родителемСравнить с &локальнымСравнить локальную с предкомСравнить набор изменений с &локальной копиейСравнить файл сШрифт различийСравнить выбранные &наборы измененийПанель сравненияСравнение и аннотированиеСравнить содержимоеРазличия не отображены: Сравнить с &локальнымСравнить с родителемСравнение каталога с первым родителемСравнение каталога со вторым родителемСравнение каталоговКаталог файловОтбросить — отбросить локальные изменения без создания резервной копииОтбросить все изменения из другой ревизииОтказаться от текущего сообщения об обращении изменений?Отказаться от текущего сообщения фиксации?Отбросить локальные изменения (revert --all)Отбросить локальные изменения без создания резервной копии (-C/--clean)Отбросить локальные изменения без создания резервной копии (-f/--force)Отбросить имеющиеся изменения в рабочем каталоге?Отбросить удалённые изменения без создания резервной копии (-C/--clean)Показать закрытые веткиПоказать граф только именованной веткиОтображать только активные веткиВ любом случае отображать файлОтображаются %(count)d из %(total)dСинхронизировать с привнесённымНе включать дату изменения в заголовок различий. По умолчанию: НетНе изменять рабочую копию (-k/--keep)Не изменять рабочую копию во время срезания (-k/--keep)Не сохранять резервные копии файлов (*.orig)Не показывать пункты меню на неверсионных папках (используйте Shift+Click, чтобы переопределить)Не срезать полные пути (-p0), необходимо для заплаток SVNНе обновлять создаваемый рабочий каталогНе проверять сертификат хостаПринудительно сменить фазу в обратном направлении?Активировать очередь заплаток «%s» ?Убрать %s закладку?Сделать эту ревизию секретной (secret)?Удалить хранилище «%s» из его родительского хранилища «%s»?Выйти?Хотите сохранить их или отбросить?Перетащите, чтобы изменить порядокДублирование имени&КодировкаВ&ыходП&росмотрП&росмотр папкиП&росмотр локальной копииП&росмотр справки&Экспорт&Экспорт заплатки...&Режим конца строки&Концы строкПравитьПравить файлПравить фильтр игнорированияПравить локальную копиюПравка пути на веб-серверПравить отвергнутоеИзменить инструмент ...Править текущий файл в рабочей копииПравить файлИзменить ловушкуРедактировать граф зависимостей заплатокПравить файл с применённой заплаткой и отвергнутыми лоскутами?Править фильтр игнорирования хранилищаПравить улаженный файлСбой запуска редактораЭлектронная почтаОтправить часть графа...Отправить выбранное...Почтовый адрес, который будет использоваться в заголовке «From» для SMTP конвертаОтправить исходящие наборы изменений в удалённое хранилище по почтеВыдавать отладочную информацию (--debug)Разрешённые обработчики наложенных значковРазрешённые накладные значкиКодировкаСообщения на английскомУкажите номер строки (1 — %d)Укажите идентификатор ревизииОшибкаОбнаружена ошибка.Ошибка выполнения триггера «commit finished»Ошибка получения информации о сообщении фиксации из плагина системы отслеживания проблемОшибка загрузки подхранилищОшибка предварительного просмотра подхранилища: %sОшибочная строка «%(arg0)s» в %(arg1)s
                                                                                                              Пожалуйста, исправьте ваш файл конфигурацииОшибка при записи файлаExcel файлы (*.xls *.xlsx)ИсключитьИсключая:Запустить инструмент «%s»Выйти, не завершив улаживание?Не рекомендуется выходить, не завершив наращение.Не рекомендуется выходить, не завершив перебазирование.Настройки расширения ПроводникаНастройки расширения Проводника — TortoiseHgЭкспортировать часть графа...Экспортировать список различий...Экспортировать выбранное...Экспортировать заплаткуРасшРасширенияНе удалось добавить хранилищеНе удалось добавить подхранилищеНе удалось выполнить заданную TortoiseHg командуОшибка выполнения заданной командыНе удалось загрузить систему отслеживания ошибок «%s»: %sНе удалось загрузить систему отслеживания ошибок: «%s»: %s. Не удаётся открыть файл в терминалеНе удалось открыть хранилищеНе удалось обработать largefiles.patterns.Не удалось обновитьНеудача!Залить — использовать заливку (автоматически сливать затянутые изменения)Залить — использовать расширение fetch (fetch не активировано!)Получить список рецензентов с сервераПоля для совпадения:Файл&История/аннотирование файлаКолонки журнала файловых различийИстория файловКолонки журнала истории файлаПанель списка файловСостояние файловСостояние файла:Файл уже существуетКонфликты файлов должны быть улаженыКонтекстное меню файла (в обзоре изменений и подробностях ревизии)Файл является двоичнымФайл больше указанного максимального размера. maxdiff = %s KBФайл может быть бинарным (превышена максимальная длина строки)Файл или различия не отображены: Файл или различия не показаны: размер файла больше указанного максимального размера. maxdiff = %s KBВыборки по шаблону имени файлаФайл был не в пределах текущего хранилищаИмя файлаФайлыФайлы указанного и большего размера (в мегабайтах) будут автоматически добавляться как Б-файлыФайлы указанного и большего размера (в мегабайтах) будут автоматически добавляться как большие-файлыФайлы с именами, совпадающими с указанными шаблонами, будут автоматически добавляться как Б-файлыФайлы с именами, совпадающими с указанными шаблонами, будут автоматически добавляться как большие-файлыФильтр &истории&Фильтр поФильтровать граф по наборам ревизий или веткамФильтровать доступных рецензентовФильтр:Найти переименованияНайти копии и/или переименования исходниковПоиск совпадений — %sНайти ревизии, совпадающие по полям с:Найти ревизии, у которых «совпадают» одно или несколько полей с заданным набором ревизий.Определяем исходящие наборы изменений для %s...ЗавершеноПервые n элементов множества.Первый родитель всех наборов из множества, или рабочий каталог.Зафиксированные ревизииФлаг:Подшить заплатки...С копированиями и переименованиямиШрифт для отображения журнала изменений. По умолчанию: monospace 10Шрифт для отображения сообщений фиксации. По умолчанию: monospace 10Шрифт для отображения сообщений вывода. По умолчанию: sans 8Шрифт для отображения текстовых различий. По умолчанию: monospace 10ШрифтыДля каких видов ревизий этот инструмент будет задействован В расчёт берётся только инструмент, видимый в контекстном меню выбранной ревизии.Всегда показывать вкладкиПринудительно слить с ожидающими изменениями (-f/--force)Проталкивать или затягивать принудительно (--force)Проталкивать или затягивать принудительно, переопределить настройки безопасности (--force)Принудительно проталкивать в удалённое местоположение (-f/--force)Принудительное удаление изменённых файлов (--force)ЗабытьЗабыть файлы...GUI в отдельном процессеВперёдНайдено %d входящих наборов измененийНайдены входящие наборы изменений из %s...ОтправительОт:Полное имя автораПолный путь в заголовкеID ключа GPG связанный с пользователем. По умолчанию: ПустоСоздавать сообщения фиксации на английском языке, даже если переменные среды LANGUAGE или LANG установлены на не-английский язык. Эта настройка используется в диалогах слияния, установки меток и обращения изменений. По умолчанию: НетПолучение входящих наборов изменений из %s...Фиксация GitФиксация Git:Формат GitGit заплатки могут описывать двоичные файлы, копии, и изменения прав, но получатели не смогут использовать их не иначе чем с git или Mercurial.Маска файла (glob)Глобальные настройкиGnuPGПерейти к &заплаткеПерейти кПерейти к строкеПерейти к указанной ревизииПерейти к текущей ревизииПерейти к предку для %s и %sПерейти к общему предкуПерейти к ревизииНаращение ветвиНаращение — %sНарастить выбранные к локальной копииНаращение прерваноНабор изменений для наращенияНабор изменений для наращения #%d из %dНаращение не удалосьПри наращении возникли конфликты, которые должны быть улаженыНаращение завершеноНаращение ветви:ГрафСредство слияния, используемое для улаживания конфликтов слияния. Если не указано, Mercurial будет использовать первую подходящую программу, обнаруженную в вашей системе. Если такой программы не обнаружено, внутреннее средство слияния вставит маркеры конфликтов непосредственно в файл. Выберите: internal:merge — будут вставляться маркеры конфликтов, internal:prompt — будет запрашиваться выбор между двумя версиями файла, internal:dump — файлы будут оставляться в рабочем каталоге для ручного слияния.Наибольший общий предок двух наборов изменений.ГреческаяСтражи: %d/%dУгадать переименованияGzip tar архивыОшибка HTTP: %d (%s)Головная ревизия закрыта!ИвритКоманда hg:Просмотр файла журнала [%s] — %sЗаплатки Hg (сгенерированные командой экспорт) совместимы с большинством программ заплаток. Они включают заголовок, содержащий наиболее важные метаданные.Скрыть подробностиСкрывать меткиСпрятать контекстное меню за пределами хранилищПодсветка значкаТип ловушкиЛовушкиХостИмя хоста и (необязательно) порт прокси сервера, например «myproxy:8000»Имя хоста или почтового сервераИмя хоста, используемого отправителем для идентификации себя на почтовом сервереЧерез сколько строк должны появляться «полоски зебры» при многострочном выводе. По умолчанию 1; установите в 0 для отключения.ЗначокЗначкиЕсли имя пользователя не было указано, пользователю будет предложено ввести имя пользователя. По умолчанию: НетЕсли указано, файлы в каталоге, например, .hgignore, копируются во вновь созданное хранилище.Если указано, поле назначения в виджете клонирования будет предварительно заполнено этим путём. В ином случае это поле будет предварительно заполнено путём к текущему рабочему каталогу.Если «Да», то объединяет многострочные сводки наборов изменений в одну и при необходимости обрезает её до 80 символов . По умолчанию: НетЕсли проблема всё ещё существует, пожалуйста, отправьте отчёт об ошибке.Игнорировать Игнорировать пустые строкиИгнорировать изменение
                                                                                                              количества пробеловИгнорировать пробелыБез учёта регистраИгнорировать изменения в количестве пробелов при просмотре сравнений. По умолчанию: НетИгнорировать изменения в количестве пробелов при просмотре аннотирования. По умолчанию: НетИгнорировать изменения, все строки которых, являются пустыми в сравнении. По умолчанию: НетИгнорировать изменения, все строки которых, являются пустыми при просмотре аннотирования. По умолчанию: НетФильтр игнорирования — %sИгнорировать пробелы при сравнении строк при просмотре сравнений. По умолчанию: НетИгнорировать пробелы при сравнении строк при просмотре аннотирования. По умолчанию: НетИгнорирован*Операции без подтвержденияИмпорт — %sИмпорт из буфера обменаИмпортировать в MQВ &текущей ревизииВ &исходной ревизииПо всей &историиВ текущем &файлеВ ответ на:ВключитьВключая всех предковВключая очередь заплатокВключая:Входящие закладкиОпределение входящих из %s прервано, возвращён код %dОпределяет, будет ли TortoiseHg улаживать конфликты сторон автоматически, и сообщать о конфликтах лишь тогда, когда их улаживание невозможно. Если «Нет», то все файлы с обеих сторон слияния будут объявлены конфликтующими, даже если в них исправлены несовпадающие части файла. В любом случае, пользователь получит приглашение просмотреть и уладить изменения вручную. По умолчанию: ДаIniparse должен быть установлен.Пакет iniparse не найденНачальная ревизияВнутристрочные меткиУкажите новых стражей для %s:Недостаточно прав доступа, возвращение к режиму только для чтения.Недостаточно прав доступа.Прерванонайдена прерванная операция наращиванияНеверные шаблоныНеверные настройки — пожалуйста, задайте ваше имя пользователя в рецензионной коллегииНеверные настройки — сервер рецензионной коллегии не настроенНеверная командаНеверная настройка: %sНеверный формат датыНеверная ревизия для проталкивания по умолчанию: %s. Пожалуйста, проверьте вашу конфигурацию Mercurial (tortoisehg.defaultpush)Неверная маскаНеверное регулярное выражениеНекорректный плагин рецензионной коллегии. Пожалуйста, скачайте плагин рецензионной коллегии для Mercurial reviewboard версии 3.5 или старше с указанного ниже веб-сайта. %sСсылка на проблемуРегулярное выражение для проблемыСистема отслеживания ошибокПлагин системы отслеживания проблемОшибка плагина для отслеживания ошибокТриггер системы отслеживания ошибокОтслеживание проблемНевозможно было полностью загрузить список подхранилищ для хранилища из:

                                                                                                              %s

                                                                                                              Следующие подхранилища могли быть потеряны, повреждены или находятся в нехорошем состоянии, поэтому к ним нет доступа:

                                                                                                              %sНевозможно было получить список подхранилищ для хранилища из:

                                                                                                              %sКурсивЯпонскаяСохранять исходные имена веток (--keepbranches)Сохранять исходные наборы изменений (--keep)Сохранить файлы заплатокID ключаКлюч:Поиск по ключевым словамKiln Б-файлыИзвестная плохая ревизия:Известная хорошая ревизия:КорейскаяБольшие-файлыПоследние меткиЛевая панель инструментовРазрешить пользователю обновлять projrc из входящих:

                                                                                                              • never: [по умолчанию] Показывать, изменился ли удалённый файл projrc, но не обновлять (и не выводить запрос на обновление) локальный файл projrc.
                                                                                                              • prompt: Наблюдать за изменениями в файле projrc. Если есть изменения, _всегда_ показывать запрос на подтверждение, спрашивая пользователя, хочет ли он обновить свой локальный файл projrc.
                                                                                                              • auto: Наблюдать за изменениями в файле projrc. Использовать значение ключа конфигурации «projrc.confirm», чтобы определить, требуется ли показывать диалоговое окно подтверждения или нет перед обновлением локального файла projrc.

                                                                                                              По умолчанию: neverЛицензионное соглашениеТо же, что «keyword(string)», но принимает регулярное выражение.Строка&Параметры спискаСписок серверов, с которых нужно затягивать файлы конфигурации «projrc». Установите значение «*», чтобы затягивать со всех серверов. Установите значение «default», чтобы затягивать из пути синхронизации по умолчанию. По умолчанию — не затягивать ни с каких серверов.Список всех инструментовСписок настроек, которые НЕ проталкивать из файла конфигурации проекта. По умолчанию — не исключать никакие из включаемых настроек.Список настроек, которые проталкивать из файла конфигурации проекта. По умолчанию — ни включать никакие настройки.Вывести список обновляемых файлов (--verbose)Загрузить &все ревизииЗагрузить все ревизии в графЗагружаем хранилище %sИмя локального хостаЛокальный путьЛокальный путь:Локальное хранилище %sМестное времяТолько для локальных дисковИнформация о локальной ревизииПодписать локальноЛокальная меткаМестоположение локального клона хранилища для организации блокировок.

                                                                                                              Это хранилище должно содержать текстовый файл «locked»Местоположение:Клон хранилища блокировокЗаблокировать файл не описанный в .hglocksБлокировка %s не удалась, повторитеБлокировка %s успешнаБлокировать или разблокировать файлыЗаблокированные и блокируемые файлы:Заблокирован*Блокировка %sЗаблокировавший пользовательЖурналРазмер порции журналаДлинная сводкаM&Настройки MQДействие MQФормат MQ GitПараметры MQ&Обзор измененийДелать заплатки MQ секретными (а не черновыми). По умолчанию: НетСделать хранилище совместимым с Mercurial <1.7Сделать «черновую (draft)» ревизию «секретной (secret)», как правило, безопасная операция. Однако есть несколько предостережений: - «Секретные (secret)» ревизии не проталкиваются. Это может вызвать у вас проблемы, если вы сошлётесь на секретную ревизию подхранилища. - Если вы затянули эту ревизию из не публичного сервера , то она может быть перемещена обратно в «черновую (draft)», если вы затяните снова из этого сервера. Будьте осторожны!Управление безопасностью HTTPS соединения и аутентификацией пользователя.Управлять ожидающими наборами изменений perforceТребовать указания ссылки на проблемуУладить отвергнутые лоскуты вручную?Вручную уладить отклонённые лоскуты заплаткиОтметить как &не улаженныйПометить этот лоскут как улаженный, перейти к следующему неулаженномуПометить этот лоскут как неулаженныйОтметить этот файл как улаженныйОтметить этот файл как неулаженныйТекст совпаденияЛюбая из %d ревизийТолько слова целикомМаксимум измененийМаксимальный размер различийМаксимум файловМаксимальное число изменений, перечисляемых в журнале изменений. По умолчанию: 10Максимальное число файлов, перечисляемых для набора изменений. По умолчанию: 10Члены множества, у которых в этом множестве нет детей.Поведение меню&Уладить Mercurial-омПользователь MercurialКоманда Mercurial всё ещё выполняется. Завершить её?Включено расширение Mercurial keyring. Пароли будут сохраняться безопасным методом, зависящим от платформы.Mercurial не может найти редактор. Пожалуйста, настройте Mercurial на использование редактора, установленного в вашей системе.СлияниеСлияние — %sСлить — разрешить слияние с локальными изменениямиСлить все ожидающие зависимостиСлияние вызвало конфликты файловСлить набор измененийСлить из (другая ревизия)Слить отвергнутые лоскуты в %sРевизия слияния не указана или не найденаСлить в (рабочий каталог)Уладить, используя выбранное средство слиянияСлияние с %sСлить с другой головой текущей веткиСливаем...СообщениеШрифт сообщенийНе удалось перевести сообщение.Идентификатор сообщения для ответа, используется для формирования нити обсужденияМетод для включения TLS при подключении к почтовому серверу. По умолчанию: noneМин. схожесть: %d%%Минимальный протоколМинимальный размерИнформация отсутствует&Изменить историюОтслеживать хранилищеОтслеживать изменения
                                                                                                              рабочего каталогаПереместитьПереместить все файлы налевоПереместить все файлы направоПереместить применённые заплатки в историю репозиторияПереместить изменения между рабочей директорией и заплаткойПереместить выделенные лоскуты налевоПереместить выделенные лоскуты направоПереместить выделенный файл налевоПереместить выделенный файл направоМетка %s перемещена на набор изменений %s (с набора изменений %s)Контекстное меню множественного выбораВыбрано несколько источниковНаименованиеИмя, записываемое при фиксациях. Общеупотребительный формат таков:
                                                                                                              Имя Фамилия <email@example.com>Имя или почтовый адрес отвечающего за хранилище.Именованная ветка «%s» уже существует, использовалась в ревизии %d Создать &группуНовая &рабочая средаНовая ветка: Фаза новой фиксацииНовая группаНовое имя:Новая ветка заплатокНовый скелет репозиторияНовое хранилищеНовый долгий ящикНовый инструмент ...Создан новый файлНовая ловушкаНовое сообщение заплатки:Новое имя очереди заплатокСоздан новый долгий ящикСлед.Следующее различиеСледующее различиеБез датНет подходящих файловБез создания резервной копии (-n/--nobackup)Без смены веткиЛоскутов больше не осталосьНет фиксацииНет лоскутов для уничтоженияНе найдено средство просмотра различийРедактор не найденФайлы не изменилисьНет отмеченных файловФайлы для данного действия не найденыФайлы не выбраныНет файлов для поискаХост не указанИспользовать шифрование, но не проверять хост (плохо)Игнорируемых файлов не найденоНет входящих наборов изменений из %s...В сообщение фиксации не найдена ссылка на проблему. Требуется указывать ссылку на проблему, как указано в настройках в разделе «Система отслеживания проблем».Нет данных для отображенияСовпадения не найденыНет конфликтов слияния, всё готово к фиксацииНет конфликтов слияния, всё готово к фиксации или рецензированиюНет изменённых файлов, отмеченных для фиксацииНет действий для выполненияНет исходящих наборов измененийНет исходящих наборов изменений для %sНе выбрана ветка заплатокНет ожидающих списков изменений PerforceНе установлен путь или URL внешнего хранилищаХранилище не найденоРевизия не найденаОболочка не сконфигурированаНет транзакцииФайлов в корзине не найденоНеизвестных файлов не найденоИмя пользователя не сконфигурированоДля данного хранилища не настроен путь или URL внешнего хранилища по умолчанию.

                                                                                                              Наберите и сохраните путь к внешнему хранилищу в виджете Sync.Не обнаружены средства визуализации различийНе указан текстовый редакторУзелНичегоНичего — просто затянуть наборы измененийСкандинавскаяСтандартизировать переносы строк к LF или CRLF при применении заплатки. Strict — без стандартизации. Auto — автоопределение для каждого файла (рекомендуется). По умолчанию: strictНе является подхранилище Mercurial, предварительный просмотр недоступенЭто не головная ревизия!Это не головная ревизия, обращение создаст новую голову!Нечего фиксироватьНичего не изменилось.Нечего импортироватьНечего проталкиватьOKУстаревшее состояние:Отображать дляНекоторые наборы изменений из тех, что вы пытаетесь протолкнуть, вызовут создание новой ветки. Создать новую ветку в удалённом хранилище?Рассматривать только уничтоженные файлыТолько файлы, измененные/созданные в этой ревизииТолько файлы, измененные/созданные начиная с:Указать назначениеОткрытьОткрыть &терминалОткрыть подхранилищеОткрыть (не объединяемый) файл, который вы хотите заблокироватьОткрыть новую именованную веткуОткрыть терминал на корневом каталоге хранилищаОткрыть терминал в выбранной папкеОткрыть расширенный редактор запросаОткрыть все хранилища в новых вкладкахОткрыть конфигурацию hgwebОтрывать новые вкладки сразу после текущейОткрыть родительскую папку текущего файла в файловом менеджереОткрыть средство откладывания измененийОткрыть хранилище в обозревателе файловОткрыть хранилище в новой вкладкеОткрыть выбранную папку в файловом менеджереОткрыть выбранное подхранилищеОперация прервана:

                                                                                                              %(arg0)s.Операция, которая выполняется непосредственно после успешного затягивания. update эквивалентно pull --update, fetch эквивалентно расширению fetch, rebase эквивалентно pull --rebase, updateorrebase эквивалентно pull -u --rebase. По умолчанию: noneНеобязателен. Разделяемый запятыми список имён хостов, для которых не нужен проксиНеобязателен. Метод используемый для отправки почтового сообщения. Если значение равно «smtp», то используется SMTP (настроенный ниже). Иначе, используйте имя запускаемой программы, которая действует как sendmail (принимает параметр «-f» для отправителя, список получателей в командной строке, сообщение в stdin). Обычно достаточно установить это в «sendmail» или «/usr/sbin/sendmail» для использования sendmail для отправки сообщений.Необязательно. Файл цепочки сертификатов пользователя, в кодировке PEM. В имени файла можно использовать переменные среды.Необязательно. Файл ключа сертификата пользователя, в кодировке PEM. В имени файла можно использовать переменные среды.Необязателен. Пароль для аутентификации на прокси сервереНеобязательно. Пароль аутентификации. Если не указан, а удалённый сайт требует базовой или дайджест-аутентификации, пользователю будет предложено ввести пароль.Необязательно. Имя пользователя для аутентификации на прокси сервереНеобязательно. Имя пользователя для аутентификации. Если не указано, а удалённый сайт требует базовой или дайджест-аутентификации, пользователю будет предложено ввести имя пользователя. В имени пользователя можно использовать переменные среды.НастройкиПараметры:Или используйте:Упорядочить подхранилища как в .hgsubИсходный родитель:Информация о «другой» ревизииИсходящие закладкиОпределение исходящих прервано, возвращён код %dОпределение исходящих для %s прервано, возвращён код %dШрифт выводаНакладные значки&Затянуть закладкиПро&толкнутьPDF документы (*.pdf)PEM файлы (*.pem *.crt *.cer)PEM файлы (*.pem *.key)Контекстное меню выбора двух наборовРодитель 1:Родитель 2:Родитель:РодителиПарольПароль для аутентификации на почтовом сервереПароль для аутентификации в рецензионной коллегииПароль:Вставить имена &файловВетка заплаткиПанель ветки заплатокКонцы строк в заплаткахФайлы заплаток (*.patch)Требуется имя заплаткиОчередь заплатокПанель действий очереди заплатокДата заплатки:Заплатка экспортированаНе удалось наложить заплаткуФайлы заплаток (*.diff *.patch)Файлы заплаток уже существуютПодшивание заплатки — %sСообщение заплатки:Имя заплатки:Описание последовательности заплаток отправляется в первом сопроводительном письме с темой [PATCH 0 of N]. Оно должно обобщённо описывать всю последовательность заплаток. Если отправляется двоичный комплект, эти поля образуют тему сообщения и его текст. Флаги — это разделяемый запятыми список меток, которые помещаются в префиксе темы письма.Пользователь заплатки:Заплатка:Заплатка: %sЭкспортированные заплаткиЗаплатки для подшиванияПутьПанель правки путиПуть к примерам работы рецензионной коллегии «http://demo.reviewboard.org»Путь к каталогу, где будет находиться общесистемный кэш Б-файловПуть к каталогу, в котором будет сохраняться пользовательский кэш больших файловПуть:Пути в настройках хранилища:ШаблоныОжидающие списки изменений Perforce — %sPerforce — ожидание...Perforce:Выполнять проталкивание перед обновлением (-p/--push)PhabricatorФазаПоместить консоль в &область прикрепленияПростой, без заголовка HgПожалуйста, укажите текстовый редактор.Пожалуйста, включите и настройте simplelockПожалуйста, сначала включите расширение Gpg.Пожалуйста, сначала включите расширение Topic.Пожалуйста, укажите имя пользователяПожалуйста, введите сообщение фиксацииПожалуйста, сообщите об ошибке в нашу систему отслеживания ошибокПожалуйста, выберите ревизию для слияния.Пожалуйста, установите допустимый URL для продолжения.Пожалуйста, подождите окончания фиксации слитых файлов.Пожалуйста, подождите, пока происходит обращение изменений.Пожалуйста, подождите, пока файл открывается...Пожалуйста, подождите...ВытолкнутьВытолкнуть всеПортПорт для соединения с почтовым сервером. По умолчанию: 25Порт который слушатьПорт:Отправить &рецензиюПоведение после затягиванияПосле затягивания: Отправить рецензиюОтправить выбранное в Phabricator...Отправить выбранное в рецензионную коллегиюОтправить в Phabricator...Отправить в рецензионную коллегию...Отправка рецензииПредшествующие:Подготовка к обращению изменений (обратному слиянию)Подготовка к слияниюСохранить файлы, начинающиеся с .hgПред.ПредпросмотрПросмотр:Предыдущее различиеПредыдущее различиеРанее подхранилище было в следующей ревизии:ProjrcПроксиОтсечение — %sОпубликовать запрос немедленноЗатянутьЗатягивание из %s прервано, возвращён код %dЗатягивание из %s завершеноЗатянуть входящие измененияЗатянуть входящие изменения из %sЗатянуть входящие изменения с выбранного URLЗатянуть входящие наборы изменений в ваше хранилищеЗатянуть подхранилища из:Затянуть сюда...Затянуты удалённые закладки: %sЗатягиваем из %s...ЗачиститьЗачистить очередь заплатокЦель&ПротолкнутьПротолкнутьПротолкнуть в&сеПроталкивать после фиксацииПротолкнуть после фиксации:Проталкивание требует SSLПротолкнуть выбранную &веткуПротолкнуть всеПротолкнуть текущую ветку (%s)Протолкнуть выходящие измененияПротолкнуть выходящие изменения в %sПротолкнуть исходящие изменения на выбранный URLПроталкивание в %s прерваноПроталкивание в %s прервано, возвращён код %dПроталкивание в %s завершеноПротолкнуть до &сюдаПротолкнуть в удалённое хранилище %s ?Протолкнуть до текущей ревизии (#%d)Протолкнуть до ревизии #%dПротолкнуты локальные закладки: %sПроталкивание в %s...Новая заплатка MQОсвежить заплаткуЗапросЗапрос наборов изменений, затрагивающих выбранные файлыВыйти&Удалить закладкуНастройки реестра хранилищ&Откатить/Отменить...README не указан&ВосстановитьИз&ъять версионированные&Удалить из реестраПере&именоватьПере&именовать заплатку...Пере&именовать...Только для чтения*ГотовоВсё готово к зачистке.Готово, двойной щелчок, чтобы заблокировать или разблокироватьПеребазироватьПеребазирование — %sПеребазировать — перебазировать локальные фиксации поверх затянутых измененийПеребазировать — использовать расширение rebase (rebase не активировано!)Перебазирование прерваноПеребазирование уже выполняетсяПеребазировать набор изменений и его потомковПеребазировать всю ветвь источника (-b/--base)Перебазирование не удалосьПри перебазировании возникли конфликты, которые должны быть улаженыПеребазирование завершеноПеребазировать неопубликованное на головную ревизию Subversion (переопределить источник и назначение)Перебазировать...C подхранилищамиРекурсивно обрабатывать подхранилища (--subrepos)Излишняя аутентификационная информацияОбновитьОбновить панель &задачОбновить панель инструментовОсвежить текущую заплаткуОбновить текущее хранилищеОбновить изображение списка файловОбновить информацию о блокировкахОбновить текущую панели задачОбновить изображение списка в реестре хранилищОбновление блокировок...Регулярное выражениеРегулярное выражение:Шаблон поиска по регулярному выражениюОтклонить входящие наборы измененийСвязанные пути:Загрузить зановоПерезагрузить файл&Удалить подхранилище...Обновить удалённо — %sУдалённо выполняемая команда:УдалитьУдалить Все Выбранные ФайлыУдалить Неизменённые ФайлыУдалить файлы...Изъять аутентификационные данные из URLИзъять текущую рабочую ревизию?Удалить файлы из-под контроля версийУбрать фильтр, показать кореньИзъять каталог заплаток изИзъять заплатки из очереди?Изъять указанные уничтоженные файлы из-под контроля версий?Удалить этот узел и все нижележащие узлы. Хранилища не удаляются с диска.Изъять выбранное хранилище?Удалить выбранных рецензентовУдалить это подхранилище из текущей ревизииУдалены локальные закладки: %sУдалены удалённые закладки: %sМетка %s удаленаПереименоватьПереименование — %sОшибка переименованияПереименовать файлПереименовать заплаткуПереименовать очередь заплатокПереименовать файл или каталогПереименовать заплатку %s в:Переименовать очередь заплаток «%s» вПереименовать заплатку...Переименовать элементПереоткрыть последнюю закрытую вкладкуПереоткрыть последнюю закрытую группу вкладокЗаменитьЗаменить существующую ловушку?Заменить существующую метку (-f/--force)Заменить существующие файлы заплаток. Только первые совпаденияХранилищаХранилищеОшибка хранилищаID хранилища:Реестр хранилищРеестр хранилищ обновлёнНастройки хранилищаКоманда хранилища всё ещё выполняетсяХранилище заблокированоИмя хранилища для веб-интерфейса, будет использовано также как короткое имя в TortoiseHg. По умолчанию используется название рабочего каталога.Хранилище не локальноСостояние хранилища и измененияТребовать подтвержденияПересканироватьУлаживание конфликтов — %sУлаженные конфликтыНачать &ветку зановоНачать &слияние зановоНачать слияние &заново сПерезапустите все приложения TortoiseHg, чтобы следующие настройки вступили в действие:Возобновление перебазирования уже выполняетсяРевизияВернутьОтменить изменения во &всех файлах...Вернуть — %sВернуть файлы...Отменить все изменения файла?Вернуть все файлы к этой ревизииОткатить все изменения в рабочей копии?Откатить изменения файловВернуть файл(ы) к содержимому на момент этой ревизииВернуть файлы к локальному или другому родителю?Откатить локальные изменения файлов?Вернуть следующие файлы?Вернуть к ревизииВозвращение всех файлов вызывает отмену всех изменений и оставляет затронутые файлы в изменённом состоянии.

                                                                                                              Действительно ли следует использовать возвращение?

                                                                                                              (используйте обновление, чтобы перейти к другой ревизии)Возвращаем набор изменений p4...Рецензионная коллегияID рецензии:Черновик рецензии отправлен на %s Рецензия опубликована на %s Фильтр рецензентовРецензентыРецензенты, доступные на сервереРевизияРевизия #%d (%s) была экспортирована в:

                                                                                                              %s%s%sПо&дробности ревизииПакет ревизийЗапрос на получение набора ревизийПодробности ревизииКонтекстное меню подробностей ревизииРевизия изменена на:&Плохая ревизия&Хорошая ревизияРевизия для совпадения:Ревизия:Ревизии для совпадения:Правая панель инструментовОткатОткатить фиксацию к ревизии %dОткатить к ревизии %d (отменив %s)?Выполнить после того, как группа изменений была добавлена с помощью вытягивания, проталкивания или разгруппировки, но до фиксации транзакции. Группа изменений видна для программы ловушки. Это позволяет проверять входящие изменения перед их принятием. Передается ID первого нового набора изменений в $HG_NODE и последнего в $HG_NODE_LAST. Завершение с 0 кодом возврата разрешает фиксировать транзакцию. Ненулевой код возврата приведет к откату транзакции, а вытягивание, проталкивание или разгруппировка завершится ошибкой. URL-адрес, являющийся источником изменений, находится в $HG_URL.Выполнить после того, как группа изменений была добавлена через вытягивание, проталкивание или разгруппировку. ID первого набора изменений в $HG_NODE и последнего в $HG_NODE_LAST. URL-адрес, из которого пришли изменения, находится в $HG_URL.Выполнить после того, как набор изменений был создан, но до фиксации транзакции. Набор изменений виден для программы ловушки. Это позволяет проверять сообщение и изменения фиксации. Завершение с 0 кодом возврата разрешает фиксацию. Ненулевой код возврата приведет к откату транзакции. ID набора изменений в $HG_NODE. ID родительских наборов изменений находятся в $HG_PARENT1 и $HG_PARENT2.Выполнить после того, как набор изменений был создан в локальном хранилище. ID недавно созданного набора изменений находится в $HG_NODE. ID родительских наборов изменений находятся в $HG_PARENT1 и $HG_PARENT2.Выполнить после того, как набор изменений был вытянут, протолкнут или разгруппирован в локальном хранилище. ID недавно полученного набора изменений находится $HG_NODE. URL-адрес, который был источником, из которого пришли изменения, находится в $HG_URL.Выполнить после того, как push-ключ (например, закладка) был добавлен в хранилище. Пространство имен ключа находится в $HG_NAMESPACE, ключ в $HG_KEY, старое значение (если есть) в $HG_OLD, а новое в $HG_NEW.Выполнить после создания тега. ID набора изменений находится в $HG_NODE. Имя тега находится в $HG_TAG. Тег является локальным, если $HG_LOCAL=1, в хранилище, если $HG_LOCAL=0.Выполнить после перечисления push-ключей (например, закладок) в хранилище. Пространство имен ключей находится в $HG_NAMESPACE, в $HG_VALUES находится словарь, содержащий ключи и значения.Выполнить после отправки изменений из локального хранилище в другое. ID первого отправленного набора изменений находится в $HG_NODE. Источник операции находится в $HG_SOURCE.Выполнить после обновления рабочего каталога. ID набора изменений первого нового родителя находится в $HG_PARENT1. При слиянии, ID второго нового родителя находится в $HG_PARENT2. Если обновление прошло успешно, то $HG_ERROR=0. Если обновление выполнить не удалось (например потому, что конфликты не разрешены), то $HG_ERROR=1.Выполнить до того, как группа изменений будет добавлена с помощью вытягивания, проталкивания или разгруппировки. Завершение с 0 кодом возврата разрешает продолжить операцию. Ненулевой код возврата приведет к сбою вытягивания, проталкивания или разгруппировки. URL-адрес, из которого будут внесены изменения, находится в $HG_URL.Выполнить до того, как push-ключ (например, закладка) будет добавлен в хранилище. Ненулевой код возврата приведет к отклонению ключа. Пространство имен ключа находится в $HG_NAMESPACE, ключ в $HG_KEY, старое значение (если есть) в $HG_OLD, а новое в $HG_NEW.Выполнить до сбора изменений для отсылки из локального хранилища в другое. Ненулевой код возврата приведёт к неудаче. Это позволяет предотвратить проталкивание по протоколу HTTP или SSH. Также предотвращает локальные команды вытягивания, проталкивания (исходящие) или комплекта, но не эффективно, поскольку вместо этого можно просто копировать файлы. Источник операции находится в $HG_SOURCE. Если операция «serve», происходит от имени удалённого хранилища SSH или HTTP. Если операции «push», «pull» или «bundle», происходят от имени хранилища в той же системе.Выполнить перед созданием тега. Завершение с 0 кодом возврата разрешает создать тег. Ненулевой код возврата приведет к сбою создания тега. ID набора изменений находится в $HG_NODE. Имя тега находится в $HG_TAG. Тег является локальным, если $HG_LOCAL=1, в хранилище, если $HG_LOCAL=0.Выполнить до перечисления push-ключей (например, закладок) в хранилище. Ненулевой код возврата приведет к неудаче. Пространство имен ключей находится в $HG_NAMESPACE.Выполнить до начала локальной фиксации. Завершение с 0 кодом возврата разрешает продолжить операцию. Ненулевой код возврата приведет к сбою фиксации. ID родительских наборов изменений находятся в $HG_PARENT1 и $HG_PARENT2.Выполнить перед обновлением рабочего каталога. Завершение с 0 кодом возврата разрешает продолжить обновление. Ненулевой код возврата предотвращает обновление. ID набора изменений первого нового родителя находится в $HG_PARENT1. При слиянии, ID второго нового родителя находится в $HG_PARENT2.Запущен на %sВыполняется...Русская&Строка состояния&CинхронизацииСин&хронизацияSMTP хостSMTP парольSMTP портSMTP TLSSMTP имя пользователяКоманда SSHSSL ошибка: %sSSL: проверка сертификата сервера не удаласьSSL: неизвестная ошибка %s:%sСохранять текущий путь синхронизации при выходеСохранитьСохранить глобальноСохранять открытые хранилища при выходеСохранить путьСохранить изменения перед редактированием?Сохранить текущий URL под псевдонимомСохранить отчет об ошибке вСохранить файл таким, как он выглядел в этой ревизииСохранить файл вСохранить конфигурацию hgwebСохранить в хранилищеСканировать &удалённые хранилищаПоискПоиск по историиПоиск выделенного текстаПоиск уже запущенИскать строку в сообщениях фиксации, именах пользователей, именах файлов.Поиск ревизий файлов по шаблонамПоиск по всей &историиПоискВыполняется поиск...Второй родитель всех наборов из множества, или рабочий каталог.Секретные заплатки MQБезопасное HTTPS соединениеБезопасностьБезопасность: Выделить всёСнять выделениеВыберите файл назначенияВыберите папку назначенияВыберите каталог, содержащий заплаткиВыберите хранилищеВыберите исходный файлВыберите исходную папкуВыберите средство:Выбрать файл цепочки сертификатов пользователяВыбрать файл ключа сертификата пользователяВыберете область для редактирования:Выберите существующее хранилище для добавления в качестве подхранилищаВыберите ветку для фиксации слиянияВыберите файл комплектаВыберите хранилище назначенияВыберете должен ли TortoiseHg показывать выпадающий список целей в панели инструментов синхронизации.

                                                                                                              • auto: По умолчанию. Показывать выпадающий список, если настроено более одной цели.
                                                                                                              • always: Всегда показывать выпадающий список.

                                                                                                              По умолчанию: autoВыберите папку заплаткиВыберите заплаткиВыберите операцию после затягивания для этого хранилищаВыберите хранилищеВыберите каталог хранилища для добавленияВыберите каталог хранилищ для открытияВыберите исходное хранилищеУкажите начальную ревизию, выбираемую при открытии хранилища. Вы можете выбрать «current» (текущая — т.е. родитель рабочей копии), текущий «tip» (наконечник, оконечная ревизия) или «workingdir» (текущий рабочий каталог). По умолчанию: currentВыберите начальный вид служебного окна, который будет показан при открытии хранилища. По умолчанию: revdetails (просмотр ревизии)Выберите ревизии, которые будут проталкиваться по умолчанию, когда вы нажимаете кнопку «Протолкнуть».

                                                                                                              • all: По умолчанию. Проталкивать все изменения из всех веток.
                                                                                                              • branch: Проталкивать все изменения из текущей ветки.
                                                                                                              • revision: Проталкивать все изменения из текущей ветки вплоть до текущей ревизии.

                                                                                                              По умолчанию: allВыберете панель инструментов или меню для измененияВыберите, когда TortoiseHg будет запрашивать, активацию закладки при обновлении до ревизии, которая имеет одну или несколько закладок.

                                                                                                              • auto: Стараться активировать закладки автоматически. При обновлении до ревизии, имеющей одну закладку она будет активирована автоматически. Показывать запрос, если в ревизии есть больше чем одна закладка.
                                                                                                              • prompt: По умолчанию. Показывать запрос при обновлении до ревизии, которая имеет одну или несколько закладок.
                                                                                                              • never: Никогда не показывать запрос для активации закладок.

                                                                                                              По умолчанию: promptВыберите, как обновлять информацию о состоянии рабочего каталога:
                                                                                                              - auto: [по умолчанию] разрешить TortoiseHg самостоятельно определять, когда обновлять список состояний рабочего каталога.
                                                                                                              TortoiseHg будет обновлять список состояний при каждом действии, которое может изменить рабочий каталог. При этом могут потеряться изменения, случившиеся помимо контроля TortoiseHg;
                                                                                                              - always: в дополнение к автоматическому обновлению, как описано выше, обновлять список состояний каждый раз, когда пользователь щёлкает на «ревизии рабочего каталога» или на «значке фиксации» на панели задач рабочей среды;
                                                                                                              - alwayslocal: то же, что «always» но ограничивает обновления локальными хранилищами.
                                                                                                              По умолчанию: autoВыберите, когда ваша команда будет запущенаВыберите, следует ли показывать единственное окно рабочей среды. Если отключить этот параметр, вы будете получать новое окно рабочей среды при каждом использовании команды «Hg Workbench» в контекстном меню Проводника. По умолчанию: ДаВыбранныеДва выбранных набора изменений не связаны&Отправить письмоОтправить наборы изменений как заплатки HgОтправить одним двоичным комплектом, а не заплаткамиОтправка почтыСерверID серверного хранилищаСерверыУстановить &стражей...Иерархия множествУстановить дату:Логика множествУстановить имя пользователя:Настрой&киНастройкиФайл настроек:Некоторые символы будут потеряны.Некоторые значки предоставлены проектами TortoiseSVN и TangoПоказать &реестр хранилищДолгий ящикДолгий ящик очищенДолгий ящик уничтоженДолгий ящик: %sОболочкаОтложить — переместить локальные изменения в заплаткуОтложить измененияДолжны ли новые вкладки открываться сразу после текущей вкладки? Если «Нет», то новые вкладки будут открываться за последней вкладкой. По умолчанию: ДаПоказать &автораПоказать &датуПоказать &очередь заплатокПоказать &путиПоказать &ревизиюПоказать диалог о программеПоказать консо&льПоказать подробностиПоказывать линии родстваОтображать функциюОтображать значокПоказать проблемыПоказать проблемы...Показать журналПоказать журнал выводаПоказать &подробности ревизииПоказать ко&роткие путиПоказать вкладку &ЗадачиОтображать полный путь до каталога хранилища в заголовке окон вместо названия корневого каталога. По умолчанию: НетОтобразить всеПоказать все файлы под контролем версии в виде дереваПоказать изменения от первого родителяПоказать изменения от второго родителяПоказать файлы, изменённые в этой фиксацииПоказывать полное имя автора в журнале. Если не включено, будет показана только короткая часть, обычно это имя без электронной почты. По умолчанию: НетПоказывать не прямые зависимости в графе ревизий, когда он отфильтрован по наборам ревизий. По умолчанию: Да

                                                                                                              Примечание: Вычисление линий родства может быть медленным в некоторых случаях. Эта опция будет удалена, если как ожидается проблема производительности будет решена.Показывать вкладки вдоль одной из сторон нижней части хранилища, чтобы можно было переключаться между задачами без участия панели инструментов. По умолчанию: offПоказывать метки в начале сообщения фиксацииПоказать историю выбранного файлаОтображать, в какой функции находится каждое изменение. По умолчанию: НетПоказать/скрыть скрытые наборы изменений&Подписать&...Подписание — %sПодписать даже sigfile был изменен (-f/--force)Подпись была успешно добавленаSimplelockРасширение Simplelock не включеноОдиночное окно рабочей средыРазмерРазмер (КБ)Пропустить последнюю страницу подтверждения, закрыть после фиксации.Пропущен %s, не удалось прочитатьНекоторые из выбранных вами файлов имеют размер более 10 MB. Вы могли бы использовать дисковое пространство более эффективно, если добавите их как большие-файлы, благодаря чему в вашем локальном хранилище будет храниться только самая последняя ревизия, а более старые ревизии будут доступны с сервера. Следует ли добавить эти файлы как большие-файлы?Сортировать по &имениСортировать по &путиСортировать по ключам. Порядок по умолчанию — возрастающий, укажите «-ключ», чтобы отсортировать в убывающем порядке.Упорядочить группу по полному путиУпорядочить группу по короткому имениИсточникИсходный файл не существует.Источник:ЮговосточноевропейскаяЮжноевропейскаяРазделяемый пробелами список имён веток в виде branch:#XXXXXX. Пробелы и двоеточия в именах веток предваряются обратной косой чертой (\). Тем же способом можно добавить некоторые специальные символы, например \u0040 будет означать символ @, а \n — перевод строки. По умолчанию: ПустоРазделяемый пробелами список операций, выполняемых немедленно, без запросов к пользователю. Возможные команды: «add remove revert forget». По умолчанию: Пусто.Разделяемый пробелами список меток, которые не будут отображаться. Полезный пример: укажите «qbase qparent qtip», чтобы скрыть стандартные метки, вставляемые расширением MQ. По умолчанию: ПустоУкажите имя нового долгого ящикаУкажите команду, которая запускает вашу программу терминала. Если значение включает строку %(reponame)s, то вместо неё будет подставлено имя хранилища. Аналогично, вместо %(root)s будет подставлен полный путь к хранилищу. (требуется перезапуск)
                                                                                                              По умолчанию на Windows: cmd.exe /K title %(reponame)s
                                                                                                              По умолчанию на OS X: не установлено
                                                                                                              По умолчанию на других системах: xterm -T "%(reponame)s"Укажите число пробелов для замены табуляции в различных окнах TortoiseHg. По умолчанию: 8Задайте путь к GPG. По умолчанию: gpgУкажите, на какой файловой системе TortoiseHg будет следить за изменениями. По умолчанию: localonly (только локальные)Укажите средство визуального сравнения, из числа описанных в секции [merge-tools] ваших файлов настройки Mercurial. Если ничего не указано, то TortoiseHg будет использовать то же средство, что и для слияния. При неудаче будет использована первая подходящая программа, обнаруженная в вашей системе.Укажите визуальный редактор, как описано в разделе [editor-tools] ваших конфигурационных файлов Mercurial. Если не указан, то TortoiseHg будет использовать первую подходящую программу, обнаруженную в вашей системе.Укажите те кнопки задач, которые следует показать на панели инструментов задач, и их порядок.
                                                                                                              Введите список имён кнопок задач. Добавить разделители можно, поставив \«|\» между именами кнопок задач.
                                                                                                              Допустимые имена: log commit sync grep и pbranch.
                                                                                                              По умолчанию: log commit grep pbranch | syncУкажите предпочтительный язык интерфейса пользователя (требуется перезапуск)ЗапускНачать новую ветку заплатокНачальная ревизия:Запустить веб-сервер для данного хранилищаСостСостояниеПанель списка состояний файловСостояние:ОстановитьОстановить текущую операциюОстановленЗачеркнутыйСрезание — %sСрезать:Строчные полоскиСрезание заголовка Mercurial подразумевает удаление информации об имени пользователя и о родительской ревизии. Это имеет смысл только в том случае, если получатель не использует Mercurial (и поэтому не желает видеть эти заголовки).ОформлениеПункты в подменю:Тема:Посылаем набор изменений p4...Подхранилище «%s» имеет не тривиальный URL для синхронизации по умолчанию:

                                                                                                              %s

                                                                                                              Заменить его следующим URL?

                                                                                                              %sПодхранилище добавлено в файл .hgsubПодхранилище создано и установлено на начальную ревизию.Подхранилище инициализировано к ревизии:Подхранилище может быть повреждено или недоступно.Подхранилище изъято из хранилища.Состояние подхранилища:Состояние подхранилищПодхранилище не изменялось.Подхранилище уже существуетПодхранилище не найденоПодхранилище не найдено в рабочем каталоге.Подхранилище удалено из .hgsubSubversion:УспешноПоследующие:Рекомендуемая длина строки в сообщениях фиксации. Будет отмечена красной вертикальная чертой. Сочетание CTRL-E переформатирует текст текущего параграфа под указанную длину строки. По умолчанию: 80Сводка (первая строка описания)Длина строки сводкиСводка:Поменять местами источник и назначениеСинхронизацияСинхронизация закладокСинхронизацияСинхронизировать с привнесённым хранилищемСинхронизировать с удалённым хранилищемПодсветка синтаксисаСистемный кэшTLS 1.0TLS 1.1TLS 1.2Ширина табуляцииВкладка не может быть закрытаМетка «%s» была добавленаМетка «%s» была перемещенаМетка «%s» была изъятаМетка — %sМетка:Помечено:МеткиМетки:Взять &другойАрхив tar, сжатие bzip2Архив tar, сжатие gzipTar архивыВыпадающий список целейЦелевые группыЦелевые личностиПриемник:Вкладки задачПорядок задач в панелиПанель задачВременно отключить сконфигурированный HTTP проксиВременные файлы будут удалены после закрытия этого окнаПрервано пользователемПроверьте ревизию и сообщите, что с ней (хорошая/плохая/пропустить).Перевод текста не удалсяТекстовые файлы (*.txt)Текстовое описание назначения или содержимого хранилищаТайскаяФайл .hgsub уже содержит строку:

                                                                                                              %sИзменения из ревизии %s и всех её неслитых родителей будут отброшены. Продолжить?Команду «%s» нельзя выполнить.Команда «%s» не выполнена (код %d).Команда, которая будет выполнена. Чтобы выполнить команду Mercurial, используйте «hg» (а не «hg.exe») как исполняемую команду. В команде можно использовать несколько {ПЕРЕМЕННЫХ}. Стандартные переменные: - {КОРЕНЬ}: путь к текущему корневому каталогу репозитория. - {РЕВИЗИЯ} / {ИДЕНТИФИКАТОР РЕВИЗИИ}: выбранные номера ревизий / шестнадцатеричные хэши идентификаторов ревизий, отформатированные как выражение набора ревизий. - {ВЫБРАННЫЕ ФАЙЛЫ}: список файлов, выбранных пользователем, в списке файлов подробностей ревизии. - {ФАЙЛЫ}: список файлов, которые были изменены выбранными ревизиями. - {ВСЕ ФАЙЛЫ}: все отслеживаемые Mercurial файлы в выбранных ревизиях. Переменные выбора пар: - {РЕВИЗИЯ_A} / {ИДЕНТИФИКАТОР РЕВИЗИИ_A}: номер первой выбранной ревизии / шестнадцатеричный хэш идентификатора ревизии. - {РЕВИЗИЯ_B} / {ИДЕНТИФИКАТОР РЕВИЗИИ_B}: номер второй выбранной ревизии / шестнадцатеричный хэш идентификатора ревизии. Команда, которая будет выполнена. Чтобы выполнить python-функцию, добавьте в начало команды «python:». Идентификатор хранилища, используемый этим хранилищем по умолчанию на сервере рецензионной коллегииНазначение «%s» уже существует и является файлом!Назначение «%s» уже существует и является папкой!Назначение должно находиться внутри дерева каталогов хранилищаКаталог «%s» не пуст! Перезаписать его?Директория, в которой будет выполнена команда. Если её не установить, то вместо неё будет использован корень текущего репозитория. Вы можете использовать те же самые {ПЕРЕМЕННЫЕ}, что и в установке «Команды». Редактор используемый Mercurial в командах командной строки, чтобы собрать многострочный ввод от пользователя. В частности, сообщения фиксации.Сообщение об ошибке исключения было:

                                                                                                              %s

                                                                                                              Файл «%s» уже существует! Записать поверх него?Возвращено следующее сообщение об ошибке: «%s» Проверьте, что это правильное приложение и путь к немуВозвращено следующее сообщение об ошибке: %sИмя ловушки не может содержать пробелы, табуляторы или символы «=».Имя ловушки. Не может содержать пробелы.Максимальный размер файла (в КБ), для которого TortoiseHg будет показывать различия в окнах журнала изменений, состояния и фиксации. Нулевое значение означает — без ограничения. По умолчанию: 1024 (1МБ)Именованная закладка или все закладки.Именованная метка или все метки.Количество ревизий прочитываемых и отображаемых в журнале изменений за один раз. По умолчанию: 500Фаза новых фиксаций. По умолчанию: draftВыбранная команда пустаУказанная папка:

                                                                                                              %s

                                                                                                              не находится внутри целевого хранилища.

                                                                                                              Так делать можно, но крайне нежелательно.
                                                                                                              Если требуется добавить нетривиальную ссылку на подхранилище, вам следует исправить файл .hgsub вручнуюВыбранное хранилище:

                                                                                                              %s

                                                                                                              не удаётся открыть!Выбранное хранилище:

                                                                                                              %s

                                                                                                              уже является подхранилище для:

                                                                                                              %s

                                                                                                              как: «%s»На выбранной ревизии (%s) есть закладка с названием «%s».

                                                                                                              Вы хотите её установить?
                                                                                                              Вы можете запретить этот запрос в настройках Настройки/Рабочая среда/Включить закладкиВыбранная ревизия (%s) содержит %d закладок на ней.

                                                                                                              Выберите закладку, которую следует установить, и нажмите ОК.

                                                                                                              Нажмите Отмена — если не следует устанавливать ни одну из закладок.

                                                                                                              Можно отключить этот запрос в настройках: Настройки/Рабочая среда/Включить закладки

                                                                                                              Выбранная ревизия (%d) не может быть импортирована, потому что она является потомком qparent (%d)Выбранное подхранилище:

                                                                                                              %s

                                                                                                              было добавлено к файлу .hgsub хранилища:

                                                                                                              %s

                                                                                                              Помните, что для того, чтобы завершить добавление подхранилища, вы всё равно должны зафиксировать изменения в файле .hgsub, подтверждая таким образом добавление подхранилища.Выбранное подхранилище было удалено из файла .hgsub file.

                                                                                                              Помните, что вы должны зафиксировать изменения в файле .hgsub, подтверждая таким образом удаление подхранилища!Выбранное подхранилище не найдено в файле .hgsub.

                                                                                                              Возможно, оно уже было удалено?Множество всех родителей всех наборов изменений из множества.Источник должен находиться внутри дерева каталогов хранилищаПодхранилище не является «чистым».Значок инструмента. Вы можете использовать любой встроенный значок TortoiseHg, присвоив этому значению корректное имя значка TortoiseHg (например, clone, add, remove, sync, thg-logo, hg-update и т. д.). Вы можете также присвоить этому значению абсолютный путь к любому значку в вашей файловой системе.Метка инструмента, которая будет показана в контекстном меню. Если метка не установлена, то имя инструмента будет использоваться в качестве метки инструмента. Если подсказка не установлена, то метка будет также использоваться в качестве подсказки.Имя инструмента не может содержать пробелы.Имя инструмента. Не может содержать пробелы.Подсказка, которая будет показана на кнопке инструмента. Она показывается только когда кнопка инструмента видна на панели инструментов рабочей среды.Рабочий каталог уже слит. Продолжить или отказаться от существующего слияния.Файлы заплаток уже существуют для %d ревизий (%s) в выбранном местоположении (%s). Обнаружены конфликты слияния, нужно уладитьНет настроенных путей синхронизации. Откройте вкладку синхронизации, чтобы настроить их.Нет конфликтующих файлов.Нет изменений файлов для отображенияНет файлов, которые могли бы стать результатом переименованияПапка с таким именем уже существует.Есть ловушка %s.%s. Заменить её?Нет транзакции, которую можно откатитьЭтим пользователи получат уведомление о рецензииThg — графические средства TortoiseHg для системы контроля версий Mercurial Кажется, это двоичный файл.Эта ошибка будет показана снова только после перезапуска рабочей средыСредство трёхстороннего слиянияЗаголовокПолучательЧтобы завершить слияние, вам следует зафиксировать рабочую директорию. Чтобы отменить слияние, вы можете обновить до одной из сливаемых родительских ревизий.Нарастить кПеребазировать поверх места назначенияКому:Включить/выключить панель текстового поискаВключить/выключить фильтрацию исключённых наборов измененийВключить/выключить видимость наращенных связейПереключить родителя, который будет использоваться в качестве базовой ревизииПропускать неконфликтующие локальные изменения (--keep-changes)Слишком много строк выбрано для менюУладить &средствомМетка инструментаНеудача при запуске инструментаИмя инструментаИнструментыИнструменты, показанные на выбранной областиПодсказкаПункты меню верхнего уровня:Темат&ическая веткаТематическая ветка «%s» не существуетТематическая ветка «%s» добавленаТематическая ветка «%s» удаленаТематическая ветка «%s» переименована в «%s»Тематическая ветка — %sТематическая ветка:Синхронизация закладок TortoiseHgСообщить об ошибке в TortoiseHgДиалог команды TortoiseHgФиксация TortoiseHgДиалоговые окна TortoiseHg (версия %s), Mercurial (версия %s) Ошибка TortoiseHgTortoiseHg средство блокировки — %sИмя нового долгого ящика TortoiseHgПриглашение TortoiseHgПоиск TortoiseHgНастройки TortoiseHgОткладывание TortoiseHg — %sВеб-сервер TortoiseHgРабочая среда TortoiseHgTortoiseHg создал новый файл .hgignore — хотите добавить этот файл в хранилище, под контроль версий?TortoiseHg: %sКитайская (традиционная)Трансплантация:Включить/выключить панель запроса на получение набора ревизийПопробуйте обновить ваше хранилище.ТурецкаяТип&Разукомплектовать...Язык интерфейсаURLОшибка URL: %sВремя по ГринвичуУкраинскаяНевозможно провести обращение измененийНевозможно сжать историюНе удалось создать файл Mercurial.iniНе получается создать файл конфигурацииНе удаётся уничтожить %d файл или папкуНе удаётся уничтожить %d файла или папкиНе удаётся уничтожить %d файлов или папокНевозможно определить ожидающие наборы измененийНе могу определить ревизию рабочей копии Не найден набор измененийСлияние невозможноНе удалось слить лоскутыНевозможно разобрать вывод p4pendingНе удалось прочитать файлНе удаётся прочесть состояние хранилищаНе удаётся удалитьНе удаётся изъять URLНе удаётся удалить файл %s, нет доступаНе удалось сохранить после проталкивания фиксацииНе удаётся сохранить URLНе удаётся сохранить аутентификациюНе удалось сохранить список автоматически включаемых файловНе удалось сохранить после операции затягиванияНе удаётся сохранить признак рекурсивной обработки подхранилищ.Невозможно сохранить имя пользователяНе удалось показать файлы подхранилищаНе удаётся запустить команду:Невозможно транслировать ввод в локальную кодировкуНе удаётся перевести сообщение в локальную кодировку. Попробуйте установить переменную среды HGENCODING. Заменить непереводимые символы знаком «?»? Не удаётся обновить имя хранилищаНе удалось записать файл .hgignoreЗапись в файл конфигурации невозможнаНе удаётся записать список различийНе удалось записать файлОтпороть все заплаткиОтпороть одну заплаткуРазукомплектоватьСнять отметкиСнять отметки со всех файловСнимите отметку, чтобы рассматривать все подконтрольные файлы в качестве возможных источников для копированияНезафиксированное слияние — пожалуйста, выберите родительскую ревизиюАрхив tar, без сжатияАрхив zip, без сжатияПодчеркнутыйОтменить закрытие других вкладокОтменить закрытие вкладкиОтменить последнюю фиксацию?Отменить последнюю транзакцию?Отменить последнюю фиксацию (%d), сохранив изменения в файлах?ЮникодУнифицированный КитайскийНеизвестная ревизия!Разблокировка %s не удалась, повторитеРазблокировка %s успешнаРазблокировка %sНеулаженные конфликтыОстались ещё неулаженные конфликты. Вы уверены?Несохранённые изменения будут потеряны. Загрузить заново?Неподдерживаемый тип хранилища (%s)Не версионированОбновитьОбновление — %sОбновить — затянуть, а потом попробовать обновитьсяОбновить значкиОбновить рецензиюОбновить значки для текущего хранилищаОбновление из входящихОбновить или создать псевдоним пути с названием «%s» во всех подхранилищах, используя этот URL в качестве базового URL, добавляя локальный относительный путь до подхранилищаОбновить пути подхранилищОбновить поля этого существующего запросаОбновить до:Обновить рабочий каталогОбновить рабочий каталог или переключить ревизииОбновить...Обновить или перебазировать — затянуть, а потом попробовать обновиться или перебазироватьUpdateOrRebase — использовать расширение rebase (rebase не активировано!)Обновляем реестр хранилищРекомендуется обновление до новейшего TortoiseHg.Использовать сообщение об обращении изменений на английскомИспользовать сообщение фиксации на английскомИспользовать альтернативную компоновку графа для больших хранилищ. По умолчанию: Нет

                                                                                                              Примечание: Эта компоновка устанавливает цвета линий с использованием информации о ветках и не отображает наращения, независимо от того, являются ли они запрашиваемыми или нет.Использовать компактный видИспользовать текущую датуИспользовать следующее сообщение фиксации:Использовать формат Git для заплаткиИспользовать расширенный git формат для заголовков различий. По умолчанию: НетИспользовать большие-файлыИспользовать мое имя пользователя вместо имён пользователей фиксаторов наращиванияИспользовать оптимизированную компоновку графаИспользовать прокси-серверИспользовать протокол затягивания для копирования метаданныхПользовательАутентификация пользователяКэш пользователяЦепочка сертификатов пользователяКлюч сертификата пользователяДанные аутентификации пользователя должны быть сопоставлены с именем хоста в диалоге безопасности.Имя пользователя для аутентификации в рецензионной коллегииПользователь:Имя пользователя:Имя пользователя для аутентификации на почтовом сервереПроверьте обращаемую ревизию и убедитесь, что ваш рабочий каталог чист.Проверьте направления слияния и убедитесь, что ваш рабочий каталог чист.Сверять с сертификатами Центра сертификации (лучше всего)Сверять с сохранёнными отпечатками хоста (хорошо)Просмотр&еть файлВьетнамскаяПосмотреть файл вПросмотр &другойПросмотр изменений в унифицированном формате сравненияПоказать историю изменений в хранилищеПросмотреть историю изменений выбранных файловПросмотр изменений в контексте файлаПросмотреть изменения по отношению к текущей копии во внешнем средстве сравненияОтобразить изменения в графическом средстве сравненияПросмотреть файл таким, как он выглядел в этой ревизииПросмотреть изменения файла во внешнем средстве сравненияПосмотреть настройки хранилищаВизуальное сравнениеСредство сравненияВизуальное сравнение...Визуальное сравнение — Текстовый редакторВизуальное сравнение улаженного файла с первым родителемВизуальное сравнение улаженного файла со вторым родителемВизуальное сравнение...Визуальное сравнение не поддерживается на подхранилищах. Они не будут показаны.Визуальное трёхстороннее сравнениеПредупреждениеВнимание: подействует на все запущенные Tortoise, после изменения понадобится выход из системыБыл переименован изВеб-серверWebconfЗападноевропейскаяЧто следует сделать? При фиксации требовать, чтобы ссылка на проблему была указана. Если включено, то регулярное выражение, настроенное в «Регулярное выражение для проблемы», должно найти соответствие в сообщении фиксации.Когда задействовано, то автоматически показывать журнал вывода, при запуске команды. По умолчанию: Нет.При запуске из командной строки запускать фоновый процесс для графического интерфейса пользователя. Этот параметр игнорируется, когда TortoiseHg запущен как приложение OS X. По умолчанию: ДаЕсли выбрано «auto», то mq автоматически использует git заплатки, когда требуется не потерять изменения в правах файла, записях о копиях или бинарных файлах. Если выбрано «keep», то mq будет соблюдать секцию [diff] при сохранении существующих git заплаток при qrefresh. Если выбрано «yes» или «no», то mq перезаписывает секцию [diff] и всегда создаёт git заплатки или обычные заплатки, что может привести к потере данных во втором случае. По умолчанию: autoВ каких случаях спрашивать пользователя об обновлении локального файла конфигурации «projrc» при изменении удалённого файла projrc. Возможные значения:

                                                                                                              • always: [по умолчанию] Всегда показывать диалог подтверждения перед обновлением локального файла .hg/projrc.
                                                                                                              • first: Показывать диалог подтверждения при клонировании хранилища или при первом обнаружении удалённого файла projrc.
                                                                                                              • never: Обновлять локальный файл .hg/projrc автоматически, без диалога подтверждения.
                                                                                                              Разрешены ли подхранилища Git в рабочем каталоге. По умолчанию: Нет

                                                                                                              Ознакомьтесь с примечанием по безопасности, прежде чем включить подхранилища Git.Разрешены ли подхранилища Mercurial в рабочем каталоге. По умолчанию: ДаРазрешены ли подхранилища Subversion в рабочем каталоге. По умолчанию: Нет

                                                                                                              Ознакомьтесь с примечанием по безопасности, прежде чем включить подхранилища Subversion.Разрешено ли проталкивать в хранилище. Если пусто или не указано, то проталкивание не разрешено. При специальном значении «*» — любой удалённый пользователь может проталкивать, включая непрошедших аутентификацию. В ином случае — удалённый пользователь должен пройти аутентификацию и его имя должно присутствовать в этом списке (разделяемом пробелами или «,»). Список разрешений на проталкивание рассматривается после списка запрещений на проталкивание.Запрещено ли проталкивать в хранилище. Если пусто или не указано, то проталкивание не запрещено. При специальном значении «*» — всем удалённым пользователям запрещено проталкивать. В ином случае — проталкивание запрещено пользователям, не прошедшим аутентификацию, а также тем, кто прошел аутентификацию и присутствует в данном списке (разделяемом пробелами или «,»). Список запрещений на проталкивание рассматривается до списка разрешений на проталкивание.Требуется ли для входящих проталкиваний использовать SSL для предотвращения перехвата пароля.Какой шаблон оформления использоватьПро&белыWord документы (*.doc *.docx)Работать с очередью заплаток (--mq)Рабочая средаКолонки журнала рабочей средыПанель инструментов рабочей средыРабочая копияРабочий каталогРабочий каталог (слито)Рабочая директорияРабочий каталог не является «чистой» копией! Просмотр изменений...Состояние рабочего каталогаЗациклить поискЗаписать комплектЗаписать список различийНаписать описание серии заплаток (комплекта)Вы собираетесь передвинуть фазу ревизии %d назад, из «%s» в «%s». Имейте в виду, что «%s» имеет уровень меньше, чем «%s». Передвигать фазу назад не рекомендуется. Например, вы можете получить несколько головных ревизий, если измените фазу ревизии, которую вы уже протолкнули на сервер. Будьте осторожны!Вы можете изменить набор значков в Настройках TortoiseSVNВы можете освободить только свои собственные блокировкиПосетите наш сайтВы не можете слить ревизию саму с собойВаши настройки содержат аутентификационную информацию для хоста, а вы ещё указали её для этого URL. Удалить аутентификационную информацию из этого URL?Вы пометили все отвергнуты лоскуты как улаженные, хотя файл в панели редактирования не изменился. Это может означать, что никакой код из отвергнутых лоскутов не попадёт в файл. Вы действительно хотите оставить файл неизменным и рассматриваете отвергнутые лоскуты как улаженные? Сделав так, вы удалите лоскуты из долгого ящика и можете потерять их навсегда! Нажмите «Да», чтобы принять файл как есть, или «Нет» — чтобы продолжить улаживание отвергнутых лоскутов заплатки.У вас выбрано несколько переименований для файла назначения: %s. Прекращаем операцию!Выбрано один или более файлов, которые были изменены. По умолчанию эти файлы не будут удалены. Что следует сделать?Похоже, что вам нужно обновить это приложениеВы можете продолжить или начать наращениеВы можете продолжить сжатиеВы можете продолжить наращение ветвиВы можете произвести перебазированиеНеобходимо указать имя заплаткиНеобходимо представиться MercurialНеобходимо предоставить ревизии для наращиванияНужно указать источник и место назначенияНужно указать путь к файлуНеобходимо установить команду для выполнения.Необходимо установить имя инструмента.Необходимо установить корректный тип ловушки.Ваш TortoiseHg обновлён.Ваша текущая рабочая ревизия (%d) будет удалена этим откатом, оставив незафиксированные изменения. Продолжить?Архив zip, сжатие deflateZip архивы[--after ЗАПЛАТКА] ЗАПЛАТКА...[--insecure] [ИСТОЧНИК][Код: %d][ВНИМАНИЕ] Неполное изменённое подхранилище. Обновите к этой ревизии, чтобы вытащить его.[ВНИМАНИЕ] Неполное подхранилище. Обновите к этой ревизии, чтобы вытащить его.[ПРЕДУПРЕЖДЕНИЕ] Неверный идентификатор ревизии подхранилища: %s [ВНИМАНИЕ] Отсутствует изменённое подхранилище. Обновите к этой ревизии, чтобы клонировать его.[ВНИМАНИЕ] Отсутствует подхранилище. Обновите к этой ревизии, чтобы клонировать его.[команда завершилась успешно %s][команда прервана %s][команда вернула код %d %%s][команда завершена пользователем %s][несуществующий][исходный][рабочая копия]ревизия для отправкиревизия, которую нужно отправитьпрервано: прервано: %s прервано: %s! добавить статистику различий к сообщениямдобавленныеВсе ревизии, преобразованные из Subversion.всегда запускать GUI в отдельном процессеасинхронное чтение в настоящее время не поддерживаетсявложитьосновные команды: телозакладка: ветка: файл комплекта для просмотраневозможно прочитать файл «%s». Проигнорировано. невозможно переместить применённые заплаткиневозможно переместить в применённые заплаткинельзя задавать одновременно -k/--query и имена файловнабор изменений %d:%sнабор изменений для отображения в средстве сравненияНабор изменений, являющийся преобразованной ревизией Subversion.набор изменений: %sнабор изменений: %s (не найден в подхранилище)не изменённыеклонировать только указанную веткуошибка разбора команды: %sрезультат команды поврежден: %rпо умолчаниюстатистика различийотбросить незафиксированные изменения (без резервной копии)показать справку и выйтине создавать резервные копии срезанных ревизийне фиксировать sigfile после подписанияне запускать GUI в отдельном процессене изменять рабочую копию во время срезанияне проверять сертификат сервера (игнорировать настройки web.cacerts)включить дополнительный выводвключить отладочный выводeol несовместимо с win32textошибка при чтении ввода данныхошибка при выполнении команды режим выполнения заданрежим выполнения не заданне удалось декодировать команду: %sне удалось декодировать ввод: %sне удалось запустить GUI в отдельном процессе: %s не удалось запустить команду поле для начальной установки фокусафайл был уничтожен, обновите изображениефайл был изменен, обновите изображениефайлов.заполняем (%d)фильтрглобальные настройки:grep: %s grep: неверный шаблон поиска: %s hg viewhggit packaged with thghgsubversion несовместимо с perfarcehgsubversion packaged with thgподсказка:подсказка: в историиhttps://tortoisesvn.net/docs/release/TortoiseSVN_ru/tsvn-dug-settings.html#tsvn-dug-settings-icon-setне учитывать регистр при поискеигнорируемыеимпорт в очередь заплаток (MQ)в будущемвключить указанный набор измененийначальный шаблон поискав текстеinotify не поддерживается на этой платформеневерное «hello» сообщение: %rневерные параметрыневерный номер строки: %sуказано неверное положение заплаткисохранять исходные имена ветоксохранять исходные наборы измененийзапустить средство визуального сравнениясписок команд: локальныйlsprof не доступен — установите с http://codespeak.net/svn/user/arigo/hack/misc/lsprof/создать локальную подписьсделать метку локальнойслить со старым родителем каталога после обращения измененийМетодотсутствующиеизменённыепереместить после указанной заплаткинеобходимо указать «тип» в стиленеобходимо указать хранилищеимя конфигурационного файла hgweb (УСТАРЕЛО)имя конфигурационного файла hgweb (где можно задать несколько хранилищ)требует слияния %i голов требует слияния с %s требует слияния с %s (через %s) требует обновления различий от базовой до оконечной из %s нет возможности/способности «runcommand»команда, не указанакоманды не определены нет стражейне найдено совпадений: %sнет исходящих наборов измененийнет исходящих наборов изменений в текущей ветке (%s) / всего %dнет исходящих наборов изменений до текущей ревизии (#%d) / всего %dнет исходящих наборов изменений до ревизии #%d / всего %dхранилища нет в ревизии не указанныуведомлять оболочку для указанных путейсейчасне существующая ревизия (т.е. удалить файл(ы))разрешено только одно новое имя закладкидопускается только одно имя тематической веткиоткрыть новое окно рабочей средыоткрыть окно синхронизации закладокоткрыть на строкеоткрыть...параметр --config не может быть сокращенным!настройки: родитель, к которому произойдёт обращение измененийпароль: заплатка %s не в серииperfarce несовместимо с hgsubversionвывести профиль запуска командынапечатать лицензиюпроцесс завершился неожиданно с кодом %dвытягивание: %s проталкивание: %sпрочитать список файлов из файлапрочитать список файлов из файла в кодировке UTF-8набор изменений, начиная с которого перебазироватьнабор изменений, на который перебазироватьзаписать дату фиксациизаписать пользователя как фиксирующегоудалить меткуудалить кэш статусаПереместить рабочую директориюудалённыезаменить существующую меткухранилище %s не найденокорневой каталог или имя символического пути хранилищатребуется одно имя файларев: %d (%s)расширение reviewboard не включеноревизияпервый родитель ревизии %d (т.е. ревизия %d)второй родитель ревизии %d (т.е. ревизия %d)ревизия для аннотированияревизия для архивированияревизия, изменения которой нужно обратитьревизия, которую нужно показатьревизия, которую нужно слитьревизия для срезанияревизия, которую нужно отметитьревизия для обновленияревизия, метка или ветка которую нужно извлечьревизии с %d:%s по %d:%sревизии для наращиванияревизии для отсеченияревизии для отображения в средстве сравненияпоиск по заданному тексту или набору ревизийсм. %(url)sвыбор указанной ревизиивыбранных файловотправить заплатки как вложенияотправить заплатки как вложения в текстеотослать заплатки по электронной почтеустановить/переопределить параметр конфигурации (используйте 'раздел.имя=значение')показать файлы без измененийпоказать игнорируемые файлыпоказать содержимое кэша статуса (без обновления)сравнение ревизий бок о бокподписать даже если sigfile изменензапустить отладчиксостояниеподхранилищеподавить выводКоманда синхронизации уже выполняетсяклон будет иметь пустую рабочую копию (только хранилище)идентификатор ключа для подписиревизия, которую нужно показатьthg %s: %s thg aboutthg add [ФАЙЛ]...thg annotatethg archivethg backout [ПАРАМЕТР]... [[-r] РЕВИЗИЯ]thg bisectthg bookmarks [-r РЕВИЗИЯ] [ИМЯ]thg clone [ПАРАМЕТР]... [ИСТОЧНИК] [НАЗНАЧЕНИЕ]thg commit [ПАРАМЕТРЫ] [ФАЙЛ]...thg debugblockmatcherthg debugbugreport [ТЕКСТ]thg debugconsolethg debuglighthgthg debugruncommand -- КОМАНДА [АРГУМЕНТ]...thg drag_copy ИСТОЧНИК... НАЗНАЧЕНИЕthg drag_move ИСТОЧНИК... НАЗНАЧЕНИЕthg email [РЕВИЗИИ]thg filelog [ПАРАМЕТРЫ]... ФАЙЛthg forget [ФАЙЛ]...thg graft [-r] РЕВИЗИЯ...thg grepthg guessthg help [КОМАНДА]thg hgignore [ФАЙЛ]thg import [ПАРАМЕТРЫ] [ИСТОЧНИК]...thg init [НАЗНАЧЕНИЕ]thg lockthg log [ПАРАМЕТРЫ] [ФАЙЛ]thg manifest [-r РЕВИЗИЯ] [ФАЙЛ]thg merge [[-r] РЕВИЗИЯ]thg postreview [-r] РЕВИЗИЯ...thg prune [-r] РЕВИЗИЯ...thg purgethg rebase -s РЕВИЗИЯ -d РЕВИЗИЯ [--keep]thg rejects [ФАЙЛ]thg remove [ФАЙЛ]...thg rename [ИСТОЧНИК] [НАЗНАЧЕНИЕ]thg repoconfigthg resolvethg revdetails [-r РЕВИЗИЯ]thg revert [ФАЙЛ]...thg rupdate [[-r] РЕВИЗИЯ]thg serve [--web-conf ФАЙЛ]thg shellconfigthg shelvethg sign [-f] [-l] [-k КЛЮЧ] [-m ТЕКСТ] [РЕВИЗИЯ]thg status [ПАРАМЕТРЫ] [ФАЙЛ]thg strip [-k] [-f] [-n] [[-r] РЕВИЗИЯ]thg sync [ПАРАМЕТР]... [ПУТЬ]thg tag [-f] [-l] [-m ТЕКСТ] [-r РЕВИЗИЯ] [ИМЯ]thg thgstatus [ПАРАМЕТР]тематические ветки thg [-r REV] [NAME]thg update [-C] [[-r] РЕВИЗИЯ]thg userconfigthg version [ПАРАМЕТР]thg: %s thg: команда «%s» неоднозначна: %s thg: неизвестная команда «%s» истекло время ожидания сообщенияистекло время ожидания при чтении: %r...неожиданный ответ от требуемого канала %rнеизвестныеуказана неизвестная заплатка для перемещениянеизвестная ревизия!неопознанный формат профилирования «%s» — проигнорировано нераспознанный ответ: %sнеподдерживаемый URL: %sобновить все хранилища в текущем каталоге«thg -v help %s» показывает глобальные параметры«thg -v help%s» показывает псевдонимы команды и глобальные параметры«thg help» выдаёт полный список команд«thg help» выдаёт полный список команд, «thg -v» — с подробностямиИспользовать <текст> в качестве сообщения фиксациииспользуйте только один способ для указания ревизиииспользовать протокол затягивания для копирования метаданныхиспользовать передачу данных без сжатия (быстрее в локальной сети)версия %sподождать секундубудет закрытаwin32ill: не удалось создать окно для сообщенийwin32ill: прервано при остановке цикла обработки сообщений win32ill: неподдерживаемая платформа: %s win32text несовместимо с eolвключает Mercurial-%s, Python-%s, PyQt-%s, Qt-%sрабочие изменения././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/sr/0000755000000000000000000000000014742203610014177 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1314144 tortoisehg-6.9/locale/sr/LC_MESSAGES/0000755000000000000000000000000014742203610015764 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033566.0 tortoisehg-6.9/locale/sr/LC_MESSAGES/tortoisehg.mo0000644000000000000000000000107514742203536020522 0ustar00rootroot$,,-Project-Id-Version: tortoisehg Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2011-03-26 19:44+0000 Last-Translator: FULL NAME Language-Team: Serbian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2; X-Launchpad-Export-Date: 2019-07-17 05:44+0000 X-Generator: Launchpad (build 19009) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/sv/0000755000000000000000000000000014742203610014203 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1314144 tortoisehg-6.9/locale/sv/LC_MESSAGES/0000755000000000000000000000000014742203610015770 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033566.0 tortoisehg-6.9/locale/sv/LC_MESSAGES/tortoisehg.mo0000644000000000000000000001274514742203536020534 0ustar00rootroot]  !'+3DI$f7   ) 8"Eh& " 6 @J]+d    " ,, "Y |            1 @: { " ! 7 . 0I >z ;   ' @ Q V \ d $  ,     &+5R      'B`~) $  )9+@ls   ,%=cx     C ` jw! L!%47Z6"# 7 BN"V!y  +%s (hint: %s)&Add&Archive&Cancel&Close&License&Move&No&Remove&Remove Bookmark&Yes= Working Directory Parent =A bookmark named "%s" already existsA new version of TortoiseHg (%s) is ready for download!AbortAboutActivate:AddAge:All files (*)All files in this revisionArchive - %sArchive Content:Archive types:Backout - %sBackout requires a parent revisionBookmark '%s' does not existBookmark '%s' has been addedBookmark '%s' has been movedBookmark '%s' has been removedBookmark '%s' has been renamed to '%s'Bookmark - %sBookmark named "%s" does not existBookmark:Browse...Bzip2 tar archivesCancelCannot backout change on a different branchCloseConfirm OverwriteDate:Directory of filesDuplicate NameErrorExitFilenameGzip tar archivesHg command:Incoming BookmarksLicenseMoveNew Name:Only files modified/created in this revisionOnly files modified/created since:Outgoing BookmarksPrepare to backoutRe&nameRecurse into subrepositoriesRefreshRegexp:RemoveRenameRevisionRevision:SearchSelect Destination FileSelect Destination FolderSettingsSeveral icons are courtesy of the TortoiseSVN and Tango projectsShow allSynchronizeTar archive compressed using bzip2Tar archive compressed using gzipTar archivesTest this revision and report findings. (good/bad/skip)The destination "%s" already exists as a file!The destination "%s" already exists as a folder!The directory "%s" is not empty! Do you want to overwrite it?The file "%s" already exists! Do you want to overwrite it?TortoiseHg Bookmark SyncUncompressed tar archiveUncompressed zip archiveUse proxy serverUserUser:WarningYou can visit our site hereZip archive compressed using deflateZip archivesstatusversion %swith Mercurial-%s, Python-%s, PyQt-%s, Qt-%sProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: Swedish POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2018-03-07 04:45+0000 Last-Translator: ojn Language-Team: Swedish MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Launchpad-Export-Date: 2019-07-17 05:45+0000 X-Generator: Launchpad (build 19009) %s (antydan: %s)&Lägg till&Arkiv&Avbryt&Stäng&Licens&Flytta&Nej&Ta bort&Radera Bokmärke&Ja= Överordnad arbetskatalog =Bokmärken med namnet "%s" finns redanEn ny version av TortoiseHg (%s) finns att ladda ner!AvbrytOm programmetAktivera:Lägg tillÅlder:Alla filer (*)Alla filer i detta revisionArkiv - %sArkiv innehållArkivtyper:Backa ut - %sBackandet kräver en förälderrevisionBokmärke '%s' existerar inteBokmärke '%s' har lagts tillBokmärke '%s' har flyttatsBokmärke '%s' har raderatsBokmärke '%s' har ändrat namn till '%s'Bokmärk - %sBokmärke med namnet "%s" finns inteBokmärkeBläddra...Bzip2 tar arkivAvbrytKan inte backa ändringen på en annan grenStängBekräfta överskrivningDatum:Mapp med filerDuplikat namnFelStängFilnamnGzip tar arkiverHg-kommando:Inkommande BokmärkenLicensFlyttaNytt namn:Bara filer ändrade/skapade i detta revisionBara filer modifierade/skapade sedan:Utgående bokmärkenFörebered att backa utByt&namnRekursera i underkatalogerUppdateraRegexp:RaderaByt namnRevideringRevision:SökVälj målfilVälj målmappInställningarFlera ikoner är tillhandahållna av TortoiseSVN och Tango projektVisa alltSynkroniseraTar arkiv komprimerad med bzip2Tar arkiver komprimerade med gzipTar arkiverTesta revideringen och rapportera slutsatser (bra/dåligt/eller hoppa över)Mål "%s" finns redan som en fil!Mål "%s" finns redan som en katalog!Katalogen "%s" är inte tom! Vill du skriva över den?Filen "%s" existerar redan! Vill du skriva över den?TortoiseHg Synkronisera bokmärkenIcke komprimerade tar arkivIcke komprimerad zip arkivAnvänd proxyserverAnvändareAnvändare:VarningDu kan besöka vår webbplats härZip arkiv komprimerad med deflateZip arkiverStatusversion %smed Mercurial-%s, Python-%s, PyQt-%s, Qt-%s././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/th/0000755000000000000000000000000014742203610014166 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1314144 tortoisehg-6.9/locale/th/LC_MESSAGES/0000755000000000000000000000000014742203610015753 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033566.0 tortoisehg-6.9/locale/th/LC_MESSAGES/tortoisehg.mo0000644000000000000000000063336514742203536020526 0ustar00rootrootH / &= drʐ  /9Nl $)=XhpWYג1BSh{;ΓA7-:eҔ  ,Ga  ̕ #: BP#p-@– 2% Xfu ɗ ח 2GY^ q~   ̘ Ԙߘ &8@Tn t͙)9BU f t  šȚϚ՚  $6I OZb u  қ  '1BH[_u {  œ̜ݜ  ",2 BL[ cnt} ̝  4 HSX^s Þ ˞֞ܞ 2 7D L X fpv   ϟݟ  '-2J P]'}à#ߠ ;\u ġС,ߡJ Wh&͢C;@|-ߣ)< K Uc$''ݥ73=3q(Φ,#>T\b ̧%& 1D Waeu ƨ٨ = ^ | ϩԩ ک>"%0Hy  ˪ ժ! )):d=ūBܫR)r>)۬HN %3 :0[ɮ %1 8EVf:u;'* ? M!ZY|ְݰG3:{48@^ {"ڲ,!=: x L  ͵$&C j"x  ¶˶߶ % ˷޷BJcj+3Ƹ!9<v)<+>:y|˺ں,"BQ!q.-  %/0[`4*.6K11+Xkq",Ӿ߿$ 7CZt&  "'J&g  ,;P aDk,/?,lie_C=/1m ]") ? LW f &6M"d '+ $V8#.<kM "2J bo !  ,;Xo"#" *.7f36jz  * & 5;*q 5#.2.a:8!(7L_v+%/$TYh  u9>. .8,g&  -A*X)"'DUu~    8'V~O#' + !-E ^ ku   */ Z{$--1.N}#'A&3h!M2 '?g@1872^j) ,6<EUds{    ! $ .8TsC/)Yy) B5x[ #-FK4k5(/> Q^ bm+ %(>^x-2 " ?Le w "4; 1GyX KO]UY] m+x "M$\A :&;a5<34*<)g!<#`& E Q\  "<Sn    Y\nu{/2 8 FTfz  \ h&r IB ccaa4xM]ex IPFCMEL1~   %-C Wa tEa| 8 !;56qeLd~   #8SixYZ+!#*/ >J^s z Q+ +i#AW f q}          .  @ K 9Z (  8B #{  ! &  1 H f   '    ? :5 )p    G dmw ) ?[k#) /  P[ cp-B 3C$X}* #0<m[@;' cn }     %:L Q [en !"DVg-y#J(<Tk$'<Sj" 0Ljq(!J+_," .B,Z,!%=)g%x 3#7Ikch f8!;!!<q""######$$-$ L$X$a$p$v$$ $ $$$$,$*% 1%;%L% a%k%% %% %%%% &%&5& D&:P& '' ''''':'H(Gd((((!(( )*)D)J)f)!)&))):*#>**b*!*(*****.*'+9+ ?+L+ _+ k+ w++++!+++, , ,;),e,l, r,},,,,,,'--.-\-p------ ---- .#.,.E.[.%w.... ..! ///G/a/r/w//3//////0000F0N0 _0 j0t00 0205011 *1'K1 s1Z11F1 62@2)]22222223!3$43Y3`3!h3333 33334 4%4>4#N4 r4!44445M"5p535555 6 6 6 *6 66C6V6o66666667!7";7$^7 7 777777 7 8v588888 99,9;9MO9#999 999!: #:D:+X:&:::::; ; ;;;<]<v< <<<<<<= == 3=A="`==T>??@rABD#E E EF F F )F 3F AFKF TF bF nF%|FF FF FF GG4GTG)iG GG GGGGGHHH"hHH H HBHHI&I /I :I FISIkI#IIII I"I J4J1SJJJJJKK.K"K#LBL[L[7M[M$N1OFQ$S"T#T U+U&IU pU~UUUU U U U U UUU!V@$VeVV V V VV&VVqV YW fWqW WWW W WW W W WWXX'X>XyPXX.XY!Y!AYwcYYZ%O[%u[5[[[ [1\2\K\c\ h\1r\\I\ ^ ^l&^^^^^^^_4_L`aaaZec%cSc:d!ee?f/g5gNg$^ggggggggg gggghhhh`h.i,Ki xi'i iiijj9j1Qj!j jj jj nkkkkkk k#k" l/l Cl PlZljlllllll l"l!l !m .m ;m ImWm _mim|m)m6mm7m0nIn<\nn4nsn'Go"oodoBo.:p0ip3p>p q2q;q:r4r@r(0sYs$t'tcBt(ttt9ubvtv&5wf\x"xycz1z.({W{s{n|+A}(m}}}~U~/~O%%u!-8<$*a4!B&;ADȁ݁!*!D-f7̂   # )JRb{8!@Rdxt/ COj    ˅݅%G=&*׆ 8 Lm~+  "5#X|"&,ވ  "ډ,@R[c9u2 4CU6l͋*4  B co v!   ~* ɍ, 3=M5ގ&7R3r5"$ 8CZZo+ʐ,C2@v5*  # . ;"G!j%-ђ ) 'Jr  ͓2ۓ3BTQ<Ĕ %4MXEݙrk\ޜ; [g  ȝڝCK d p}'UH T'puF P+ף#'E`|'#*#3Rll$ =J cOnA,M-?{#ߧ7 FQ`s  ڨ' '9 >IR!i ,ȩ1$ V*dǪܪ$>Uiëի*GO'X!'' 9"Qt/1+Kd Ů Ϯ ڮ  )*Al¯ &)-Ws ٰ Y$~,ױޱ!0*M>xв!'/J_ t~;A7( `l #"̴  )6'> f'p * (<N'g##׶ 4MUj/ ͷڷ-.@Ui}Ÿ$ظ)<![}"ƹ&5Fa1t$$˺.FMUeƻ@Og |   " % /Nd~,ͽ5J` isʾ0 F!Pr Ŀп0 @+Kw#+1@U'^* 1-Cq+6,"DO)") ( 3T+c2#" ,JZrX>& 6("_? CJ i$)6F [WhY3DTg;~A7:Q  +F`    +B J/X#-@12M B 3 >_v    ' 3> FQp x  )0BRi<  % 0 <J^n~    "* = GRau|     +(TXn t ~   ,6< LVe mx~ 1 &2 BNVm   + 3>%Djp       +39 IWi r~ '=#Y} + >JgY$&7G\pC; $-@n $/'T'|G33 (T},3%.T0f  Kl%{& $C!b24'=<z'! 1'?*g>"0% A!N:p?)/HY=BR])`N;Hjy  0!<Niy  'RJf7K5 F!SYu *G>O4 $8;t ",IL= !:z !7M R!_;>;A8z* ':Nb 2BD0+"`8M!9 *C8ns6XR-F`ggn:!.$-S  /[4#*X.611+MXy "',JwVh6q$'=735k-& !' .0O2&  I(r {% D B.O,~/?i_:C=1N'a]0' =  W x  0    0  M  W  e ?q   "    , 'A vi % < VC    &  #2 V .t  M !0!Fh$N$49G!*0'& N)\.38.".Q:<?'g .3   %@*W&5C.]507.+HZKE65l|%-'!9I+%/ <\6u  'u69"',>&k%! /C*Z)&?-'K+s9% ,Ml0q ' ; U Op #   !+"" ""# # (#2# L#Y#9k#5####$$&$49$ n$9$a$-+%-Y%1%.%%-&%3&2Y&'&&A&3'F:'M'2''(/*(@Z(1(8(7)>) )O)*0* L*V*\*e*u**** *****++ .+,<+!i+++ +++,+,F,L,!_,C,/,,-.-?-H--f---$-)-B.F.].[z.0.//./'G/o/k/l/h0(0000 0006 19D1I~1>1;2(C2?l232#23- 32N33 333!334"4>43[4"4444;4125d5X555 6K6O_6U6Y7_7 ~7+774778"$8MG8$888A8029c9i9y9:9;95 :<@:}::(;37;k;4;*;);<<(<1<J<!i< < <<<<<<&= = ==>>>>!>>1>,? G? h?v? |?? ??? ?Y?A@S@Z@`@/AB B +B9BKB_BoBvBBB KCXC&jCC CCCICDB/DcrDDDaDaCExEF FFFF FIFPFGFGMG,HE?HLHHH HH I%I:IPI`I }I III II II*KKK LL8)LKbL$L!LbLsXM0M3MB1NetNNN O O OOPP3PIPbP\DQQQ+Q!Q"Q"R)R.R @R*LR3wRR RRQR$U+=UiU UUE\VVi"WTWWWX)X 8X CXOXcXtX X X XXXXXX X XY Y YY9,Y9fYY8%[#^[[![&[[1[+\I\d\!\'\ \ \ \?\:/])j] ]]]]d^^^ W_d_/v_Y_``0,`#]`)`0```/a'HapaaBa-aBbUb!jb$bbb$bbcc*)cTcnccc0cc d[d@ld;d dd ee !e+eEe_eqe e.e0ee)f/f+Dfpf uf f"ff fFf)g :gDgXgkgTg-g!h3'h wh-hhhh'i<i]jajTjPkhkkGkk$l)l1Dlvlll!ll"m>mmnn(n-n+o$:o<_ooo ooopBp,p[qnq qqqq2q3r"6rEYrr%r=rs%.s/Ts@ss7stItkIuhvfw;ww<Wxxyyyyy+yz#zDb!k *=6:&q!V:oL*!7 AZ^f.k  ҂ ނ  $7!Vx$}%ȃ ;07 =Hd+i%ф'-E!c"ÅɅۅ "8AZp%ņ !"D\v3χ.DM_!u*!ˆ4) 02<5o"ȉ '",ZOFĊ )2\z6Ջ! $.SZ!b njӌBBId}?)Ӎ+)B(\<MŽAJRԏ!&65-l'-5 ?*Zʑґ!*$; ` m xA# "Cv_֓3FVeMy#ǔ   F!b +& '$Ch 7 DOj$] $73U>5Ș (<4N"w=F !@ H V c m {  %  !.Hh(z6ã)0$Uo -E٤6HV"@¥B8{!#Ǧ%  ?#Y}#.ڧ"  ,MZlǨ&.CF#!Ъ[[5d1̯Eɲ#Ƴ׳&;BW_ n{  "ݴ!@"c}  &޵q_t "ն$DZl?Ϸy!!. !+wMŹ%9K_5+  1 7R  h"I>0'l2N4̿4 U +Z%SU<? JPiB <Vo v-3CL`h;` f'8! K,e1C &2 EQH2C v# #" # 0:Jbz .- $ 1 > LZ bl)O-z/-< (D2wZ(>CB.I0x3Y72b(4 d@O$c(BBkFbB&*"1U.fZ}bU/O)%y!-8[(-4!B La gq  :+*f'-7E e7s*= 3G{D8 No)&; *"MU h u  B%. =O&* )J ^-&B +8d "#D"/XRJC986r- (9:2t1 <!3^6*43 h l9XFx0]* , 3&=Z;U*UF*.35-i5" .9PZe+, C6z5*3^ w! "!%: )'/ NZkz 23Tcy<' &=X5r[\ D+  p |       ! C, "p    ' U H: < ' u ^FY+'#S6w- J#c4#T?5Lu2l(b  OA ,NM{?; ;EHM '2ATg | 0'(@GY ^ir! ,%1D v* **Ib"h$D$AI'Rz!''3"K4n/1GMh= !.D Tah x * (BXw)A7 I  a    '  Y V!o!,!! !!!!"*4">_""/"!"' #1#L#a# v# ##;#A#76$n$$ $$#$"$ %<% Z%g%'w% %'%%%*&-&M&(e&&&'&#&#')'H' a'l'''*''/'.( I(V(-_(.((((()7)I)0Y)$)))))! */*-M*{*"*&*5*+2+1E+Jw+$+++ ,,,,<,D,T,q, x, ,', , ,@,-(- =- I-S- e- r-"~- --%--.%.?.P.,a...... /!/ */4/G/[/{////// 0!030F0[0v0 000000 1+ 181#T1x1+111122'2G2b22*2223-3@3Z3Wn3+363,)4DV44)4"4/555[E55+525#6"760Z6,60666 Please check that the "thg" command is valid. Caught keyboard interrupt, aborting. aliases: %s (default: %s) (copied from %s) (is a symlink) (is unversioned) (renamed from %s) (was added) (was added, now missing) (was deleted) filtered"%s" is not a folder"%s" is not a valid directory"%s" removed from path history"%s" removed from search history### filter text ###### host certificate fingerprint ###### patch name ###### regular expression ###### regular expression search pattern ###### revision set query ###$FILE_ENCODINGS% Match%d day%d days%d files have merge conflicts that must be resolved%d files were modified on both branches and must be resolved%d hour%d hours%d matches found%d minute%d minutes%d month%d months%d outgoing changesets%d outgoing changesets in current branch (%s) / %d in total%d outgoing changesets to %s%d outgoing changesets up to current revision (#%d) / %d in total%d outgoing changesets up to revision #%d / %d in total%d patches were exported to:

                                                                                                              %s%d pending changelists found%d second%d seconds%d week%d weeks%d year%d years%d%%%dpt%p%%s (hint: %s)%s (pending)%s (submitted)%s - Revision Details (%s)%s - TortoiseHg Workbench%s - TortoiseHg Workbench - %s%s - branch operation%s - commit%s - commit options%s - hg %s%s - purge%s - recover repository%s - status%s - status (selection filtered)%s - sync options%s - verify repository%s : %s%s %s already exists, replace URL?%s and %s have identical contents %s certificate error: no certificate received%s had rejected chunks, edit patched file together with rejects?%s is a dirty subrepo%s is added%s is deleted by non-hg command, but still tracked%s is ignored%s is modified%s is not a valid repository%s is not modified (clean)%s is not tracked (unknown)%s is removed%s patches%s project settings (.hg/projrc)%s repository settings%s will be imported to %s's global settings&About TortoiseHg&Add&Add Repository...&AfterIndent&Archive&Archive...&Auto&Auto Detect&Auto-Complete&Backout...&Bisect...&Branch&Browse...&Bundle Rev and Descendants...&Cancel&Character&Clear&Clone&Close&Close Repository&Commit&Commit to Queue...&Commit to current branch&Copy&Copy Patch&Copy...&Create&Custom Toolbar&Delete&Delete Patches...&Delete Queue...&Delete Unversioned...&Diff Other to Ancestor&Diff Selected File Revisions&Diff to Other&Diff to Parent&Discard&Discard (--force)&Discard changes&Dock Toolbar&Edit File&Edit Local&Edit Toolbar&Edit...&Editor Options&Email Patch...&Exit&False&File&Filter Toolbar&Finish Patch&Flat List&Force&Forget&Goto (update workdir)&Goto Revision...&Graft to Local...&Help&Ignore...&Import&Import Patches...&Incoming&Invisible&Keep (--keep)&License&Local&Mac&Make secret&Mark Excluded Changes&Mark Resolved&Mark Unresolved&Mark as Resolved&Match&Merge&Merge with Local...&Merge...&More Options...&Move&New Repository...&No&No (discard changes)&Open&Open All&Open Local&Open Repository...&Originating Revision&Other&Outgoing&Parent Revision&Parent Revision (%d)&Paste&Patch Branch&Prune&Prune Selected...&Prune...&Pull&Purge Queue...&Purge...&Push Bookmark&Readme&Rebase...&Redo&Refresh&Refresh Repository List&Remote Update...&Remove&Remove Bookmark&Remove...&Rename Active Queue...&Replace&Repository&Resize Columns&Resolve...&Revert&Revert to Revision...&Revert with backup&Revert...&Run&Save&Save at Revision...&Scan Repositories at Startup&Search&Search in Current File&Set...&Settings&Shelve&Shelve...&Sign&Skip this Revision&Sort&Sort by .hgsub&Spaces&Strip&Strip...&Sync Bookmarks...&TAB&TAB Inserts&Tag...&Take Local&Task Toolbar&Terminal&True&Unapply Patch&Undo&Unix&Unspecified&Update&Update...&Verify&View&View Changeset&View Missing&View at Revision&Visible&Web Server&Windows&Word&Workbench Toolbars&Wrap&Yes'Publishing' repository(%s) (DEPRECATED)(excluded from the next commit)(is a changed and dirty sub-repository)(is a changed sub-repository)(is a dirty sub-repository)(is a new and dirty sub-repository)(is a new sub-repository)(is a removed sub-repository)(is an unchanged sub-repository)(no help text available)(same as parent)*: not used by TortoiseHg, resolved merge, unresolved merge3-&Way Diff3-way dir diffLaunch settings tool...%d changeset will be stripped%d changesets will be strippedAnnotate:Candidate MatchesDifferences from Source to DestHost: %sIgnore FilterParse Error!Repository Details:Revert %d files to their contents at the following revision?Revert %s to its contents at the following revision?Selected Options:Selected Options: %sUncommitted local changes are detectedUnknown revision!Unrevisioned FilesUntracked FilesWeb Server:= Working Directory Parent =A README file is not configured for the current repository.

                                                                                                              To configure a README file for a repository, open the repository settings file, add a 'readme' key to the 'tortoisehg' section, and set it to the filename or URL of your repository's README file.A bookmark named "%s" already existsA comma separated list of target groupsA comma separated list of target peopleA new version of TortoiseHg (%s) is ready for download!A repository cannot be added as a subrepo of itselfA revision identifier, bookmark, tag or branch nameA shelf file of that name already existsA shelf name cannot contain %sA terminal shell cannot be opened for remoteA terminal shell must be configuredA&dd Subrepository...A&uthorAbortAbort the export operation. Aborted p4pendingAboutAbout &QtAbout TortoiseHgAcceptAccept All MatchesAccept Selected MatchesAccept the local file version (yours)Accept the other file version (theirs)Activate BookmarksActivate bookmark?Activate:AddAdd &LargefilesAdd &Largefiles...Add Files...Add Path to ServeAdd a repository to this groupAdd as &LargefilesAdd as &Normal FilesAdd files to version controlAdd ignore filter...Add or remove patches must be merged in the working directoryAdd selected untracked files?Add separatorAdd to listAddedAdded tag %s for changeset %sAfter Pull OperationAge:AliasAll HistoryAll changesets belonging to the branches of changesets in set.All changesets, the same as 0:tip.All conflicting files will be marked unresolved.All conflicts are resolved.All contextsAll files (*)All files in this revisionAll itemsAll revisionsAll unsaved changes will be lost.Allow PushAllow push of a new branch (--new-branch)Allow pushing new branches (--new-branch)Always merge (when possible)Always show repo tabs, even for a single repo. Default: FalseAmendAmend current revisionAn alias for "::." (ancestors of the working copy's first parent).An empty set, if any revision in set isn't found; otherwise, all revisions in set.An error occurred while reading the file.An error occurred while updating the repository hgrc file (%s)An error occurred while writing the file.An exception happened while loading the subrepos of:

                                                                                                              "%s"

                                                                                                              An interrupted graft operation has been found. You cannot perform a different graft operation unless you abort the interrupted graft operation first.Annotate &FileAnnotate Op&tionsAnnotate with revision numbersApp&ly FormatAppendAppend graft info to log messageAppend the changes to the existing patch files. Applied patchesApplied patches or qparentApply all patchesApply changes before exit?Apply one patchApply only this patchApply onto original parentApply patchArabicArchive - %sArchive Content:Archive FormatsArchive types:Are you sure that you want to cancel the commit operation?Are you sure you want to delete these files and/or folders?Are you sure you want to overwrite it ?Are you sure you want to reload this file?Are you sure?Ask UsernameAttempt automatic (trivial) mergeAttempt to push to specified URL or alias after each successful commit. Default: No pushAuthorAuthor ColoringAuto Commit ListAuto Exclude ListAuto Includes:Auto-resolve mergesAutomatically advance to next page when backout and merge are complete.Automatically advance to next page when merge is complete.Automatically resolve merge conflicts where possibleBackBacked out changeset: Backing out a parent revision is a single step operationBacking out and committing...Backing out, then merging...Backout - %sBackout changesetBackout current patch branchBackout requires a parent revisionBackout revisionBackport part of a changeset to a dependencyBackspace or Del to remove row(s)Backup copies of modified files can be found in .hg/Trashcan/Backwards phase change requestedBad filenameBalticBccBefore backout, you must commit, shelve to patch, or discard changes.Before compress, you must commit, shelve to patch, or discard changes.Before merging, you must commit, shelve to patch, or discard changes.Bisect - %sBisect - Bad, Good...Bisect - Good, Bad...BoldBoo&kmark...Bookmark '%s' does not existBookmark '%s' has been addedBookmark '%s' has been movedBookmark '%s' has been removedBookmark '%s' has been renamed to '%s'Bookmark - %sBookmark named "%s" does not existBookmark:BranchBranch ColorsBranch:Branch: Bro&wse at RevisionBrowse Directory...Browse...Bundle DAG Range...Bundle files (*.hg)Bundles store complete changesets in binary form. Upstream users can pull from them. This is the safest way to send changes to recipient Mercurial users.Bypass ListBzip2 tar archivesC&hoose Log Columns...C&onfigure FormatCan't change settings without iniparse package - view is readonly.Can't find revision '%s'CancelCannot add subrepositoryCannot backout change on a different branchCannot export revisionCannot export revision %s into the file named: %s Cannot import selected revisionCannot open Plugin Options dialogCannot open non Mercurial repositories or subrepositoriesCannot open repositoryCannot open the .hgsub file in:

                                                                                                              %sCannot read the .hgsub file.

                                                                                                              Subrepository removal failed.Cannot start a new searchCannot update the .hgsub file in:

                                                                                                              %sCannot update the .hgsub file.

                                                                                                              Subrepository removal failed.CcCc:CelticCentral and Eastern EuropeCertificate Query ErrorChange &Phase toChangeLog FontChanged by &This CommitChanges have been moved, you must now commitChanges take effect on next commitChangeset LinkChangeset is a merge changeset.Changeset is a named branch head.Changeset is closed.Changeset is tagged.Changeset with highest revision number in set.Changeset with lowest revision number in set.Changeset:ChangesetsChangesets containing files matched by pattern.Changesets not found in the specified destination repository, or the default push location.Changesets that are ancestors of a changeset in set.Changesets where username contains string.Changesets which add files matched by pattern.Changesets which are descendants of changesets in set.Changesets which modify files matched by pattern.Changesets which remove files matched by pattern.Changesets with no parent changeset in set.Character encoding of files in the repository, used by the web interface and TortoiseHg.CheckCheck Subrepo PhaseCheck all filesCheck for incoming changesCheck for incoming changes from %sCheck for incoming changes from selected URLCheck the phase of the current revision of each subrepository. For settings other than "ignore", the phase of the current revision of each subrepository is checked before committing the parent repository. Default: followChecked count: %dCheckingChecking for updates...Checking working directory status...Checking...Checkmark files to addCheckmark files to forgetCheckmark files to removeCheckmark files to revertChild changesets of changesets in set.Child:Chunks selected: %d / %dClea&r LogCleanClearClear contents of shelf file %s?Clear current query and query textClear the current shelf fileClick OK to continue or Abort to exit.Clon&e Repository...Clon&e...Clone - %sClone RepositoryClone to revision:Clone with minimal processingClone...CloseClose %s branchClose After CommitClose Branch: Close current branchClose other tabsClose tabClose the commit tool after every successful commit. Default: FalseClose:Co&mpare File RevisionsCollapse the rebased changesets (--collapse)Color changesets by author name. Default: FalseComma separated list of archive formats allowed for downloadingComma separated list of branch names that should be ignored when building a list of branch names for a repository. Default: None (leave blank)Comma separated list of exclusion file patterns. Exclusion patterns are applied after inclusion patterns.Comma separated list of files that are automatically included in every commit. Intended for use only as a repository setting. Default: None (leave blank)Comma separated list of files that are automatically unchecked when the status, and commit dialogs are opened. Default: None (leave blank)Comma separated list of inclusion file patterns. By default, the entire repository is searched.Comma-separated list of blind carbon copy recipient email addressesComma-separated list of carbon copy recipient email addressesComma-separated list of recipient email addressesCommandCommand ErrorCommand outputCommand to use for SSH connections.

                                                                                                              Default: "ssh" or "TortoisePlink.exe -ssh -2" (Windows)CommitCommit Dialog ToolbarCommit LaterCommit NowCommit OptionsCommit backout and merge resultsCommit changesCommit changes in repositoryCommit context menuCommit merge resultsCommit messageCommit...Committing...Common setsCompare revisions of the selected fileCompare to &1st ParentCompare to &2nd ParentCompletely remove file from patch?CompressCompress - %sCompress History...Compress changesets up to and includingCompress is complete, old history untouchedConfig File:Config files (*.conf *.config *.ini)Configuration Error: "%(arg0)s",
                                                                                                              Please fix your configConfigure Custom ToolConfigure Explorer extensionConfigure HookConfigure Issue TrackerConfigure guardsConfigure guards for selected patchConfigure repository settingsConfigure the selected COM Bug Tracker plugin.Configure user wide settingsConfigures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking plugin.Confirm AddConfirm Branch ChangeConfirm DeleteConfirm Delete UnversionedConfirm DiscardConfirm Discard ChangesConfirm Discard MessageConfirm ExitConfirm New BranchConfirm OverwriteConfirm PushConfirm Push to remote RepositoryConfirm ReloadConfirm RemoveConfirm RevertConfirm SaveConfirm StripConfirm URL replaceConfirm UndoConfirm UpdateConfirm adding unknown filesConfirm deleting filesConfirm file deletionsConfirm patch queue switchConfirm path deleteConnecting to Review Board...Consider aborting the graft first.Consider aborting the rebase first.ConsoleContactContext MenuContinue or abort interrupted graft operation?Controls draft phase behavior when working as a server. When true, pushed changesets are set to public in both client and server and pulled or cloned changesets are set to public in the client. Default: TrueConvert an existing repository into a subrepositoryConverted From:CopyCopy &HashCopy &PathCopy - %sCopy ErrorCopy Selected as PatchCopy full path of file(s) to the clipboardCopy messageCopy one of the recent commit messagesCopy source -> destinationCopy the root path of the repository to the clipboardCopy working directory files from skeletonCould not get subrepository listCould not instantiate Issue Tracker plugin COM objectCould not open .hgsub fileCould not open some subrepositoriesCould not open the specified file for reading.Could not open the specified file for writing.Could not translate the file content from native encoding.Could not translate the file content to native encoding.Could not update .hgsub fileCreateCreate &BranchCreate &New Queue...Create Patch QueueCreate Repository HereCreate a new groupCreate a new patchCreate a new repositoryCreate clone here from sourceCreate diff with all changes on this branchCreate diff with all outgoing changesCreate new named branch "%s" with this commit? Cu&tCulprit found.Current local revisionCustom Toolbar &SettingsCustom ToolsCyrillicDateDate:De&tect Renames...Deactivate current bookmark?Dead BranchesDefault PushDefault widgetDefines the command to run when an issue number is recognized. You may include groups in issue.regex, and corresponding {n} tokens in issue.link (where n is a non-negative integer). {0} refers to the entire string matched by issue.regex, while {1} refers to the first group and so on. If no {n} tokens are found in issue.link, the entire matched string is appended instead.Defines the regex to match when picking up issue numbers.DeleteDelete %d file in .hg/TrashcanDelete %d files in .hg/TrashcanDelete %d ignored fileDelete %d ignored filesDelete %d unknown fileDelete %d unknown filesDelete %s from your repo configuration file?Delete Group '%s' and all its entries?Delete Patch QueueDelete PatchesDelete ToolDelete empty foldersDelete from listDelete hookDelete patches...Delete reference toDelete selected chunksDelete selected chunks from shelf file %s?Delete selected chunks from working copy?Delete selected patchesDelete selected query from historyDelete shelf file %s?Delete the current shelf fileDelete the following unversioned files?Deleted %d filesDeleted %d files and %d foldersDeleted*Deleting trash folder...Deletion failuresDeny PushDescriptionDestDestination file already exists.Destination path:Destination:Detect Copies/Renames in %sDetect outgoing changesDetect outgoing changes to %sDetect outgoing changes to selected URLDetect renames and copiesDetected merge/diff tools:Detected uncommitted local changes in working tree. Please select to continue: Detected uncommitted local changes.Determines if TortoiseHg should show a confirmation dialog before pushing changesets. If False, push will be performed without any confirmation dialog. Default: TrueDetermines when the issue tracker state will be updated by TortoiseHg. Valid settings values are:

                                                                                                              • never: Do not update the Issue Tracker state automatically.
                                                                                                              • commit: Update the Issue Tracker state after a successful commit.

                                                                                                              Default: neverDetermining outgoing changesets to email...Diff &Changeset to ParentDiff &LocalDiff &Local to AncestorDiff Changeset to Loc&alDiff File toDiff FontDiff Selected &ChangesetsDiff ToolbarDiff and AnnotateDiff contentsDiff not displayed: Diff to &LocalDiff to parentDir diff to p1Dir diff to p2Directory diffDirectory of filesDiscard - discard local changes, no backupDiscard current backout message?Discard current commit message?Discard local changes (revert --all)Discard local changes, no backup (-C/--clean)Discard local changes, no backup (-f/--force)Discard outstanding changes to working directory?Discard remote changes, no backup (-C/--clean)Display closed branchesDisplay graph the named branch onlyDisplay only active branchesDisplay the file anywayDisplaying %(count)d of %(total)d itemsDnD SynchronizeDo not include modification dates in diff headers. Default: FalseDo not modify working copy during strip (-k/--keep)Do not save backup files (*.orig)Do not show menu items on unversioned folders (use shift + click to override)Do not strip paths (-p0), required for SVN patchesDo not update the new working directoryDo not verify host certificateDo you really want to force a backwards phase transition?Do you really want to activate patch queue '%s' ?Do you really want to deactivate the %s bookmark?Do you really want to make this revision secret?Do you really want to remove the repository "%s" from its parent repository "%s"Do you want to exit?Do you want to keep them or discard them?Drag to change orderDuplicate NameE&ncodingE&xitE&xploreE&xplore FolderE&xplore LocalE&xplorer HelpE&xportE&xport Patch...EOL &ModeEOL &VisibilityEditEdit FileEdit Ignore FilterEdit LocalEdit Path to ServeEdit Re&jectsEdit Tool ...Edit current file in working copyEdit fileEdit hookEdit patch dependency graphEdit patched file and rejects?Edit repository ignore filterEdit resolved fileEditor launch failureEmailEmail DAG Range...Email Selected...Email address to use in the "From" header and for the SMTP envelopeEmail outgoing changesets for remote repositoryEmit debugging output (--debug)Enabled Overlay HandlersEnabled overlaysEncodingEnglish MessagesEnter line number (1 - %d)Enter revision identifierErrorError encountered.Error executing "commit finished" triggerError getting commit message information from Issue Tracker pluginError loading subreposError previewing subrepo: %sError string "%(arg0)s" at %(arg1)s
                                                                                                              Please edit your configError writing fileExcludeExcludes:Execute custom tool '%s'ExitExit without finishing resolve?Exiting with an unfinished graft is not recommended.Exiting with an unfinished rebase is not recommended.Explorer Extension SettingsExplorer Extension Settings - TortoiseHgExport DAG Range...Export Diff...Export Selected...Export patchExtExtensionsFailed to add repositoryFailed to add subrepositoryFailed to execute custom TortoiseHg commandFailed to execute custom commandFailed to load issue tracker '%s': %sFailed to load issue tracker: '%s': %s. Failed to open path in terminalFailed to open repositoryFailed to refreshFailed!Fetch - use fetch (auto merge pulled changes)Fetch - use fetch extension (fetch is not active!)Fields to match:FileFile &History / AnnotateFile Differences Log ColumnsFile HistoryFile History Log ColumnsFile List ToolbarFile StatusFile Status:File already existsFile conflicts need to be resolvedFile context menu (on manifest and revision details)File is binaryFile is larger than the specified max size. maxdiff = %s KBFile may be binary (maximum line length exceeded)File or diffs not displayed: File or diffs not displayed: File is larger than the specified max size. maxdiff = %s KBFile pattern setsFilenameFilesFiles of at least the specified size (in megabytes) will be added as bfilesFiles of at least the specified size (in megabytes) will be added as largefilesFiles with names meeting the specified patterns will be automatically added as bfilesFiles with names meeting the specified patterns will be automatically added as largefilesFilter Histor&yFilter b&yFilter graph with revision sets or branchesFilter:Find RenamesFind copy and/or rename sourcesFind matches - %sFind revisions matching fields of:Find revisions that "match" one or more fields of the given set of revisions.Finding outgoing changesets to %s...FinishedFirst n members of a set.First parent for all changesets in set, or the working directory.Fixed revisionsFlag:Fold patches...Follow copies and renamesFont used to display changelog data. Default: monospace 10Font used to display commit messages. Default: monospace 10Font used to display output messages. Default: sans 8Font used to display text differences. Default: monospace 10FontsFor which kinds of revisions the tool will be enabled It is only taken into account when the tool is shown on the selected revision context menu.Force Repo TabForce a merge with outstanding changes (-f/--force)Force push or pop (--force)Force push or pull (override safety checks, --force)Force push to remote location (-f/--force)Force removal of modified files (--force)ForgetForget Files...Fork GUIForwardFound %d incoming changesetsFound incoming changesets from %sFromFrom:Full AuthornameFull Path TitleGPG key ID associated with user. Default: None (leave blank)Generate English commit messages even if LANGUAGE or LANG environment variables are set to a non-English language. This setting is used by the Merge, Tag and Backout dialogs. Default: FalseGetting incoming changesets from %s...Git Commit:Git FormatGit patches can describe binary files, copies, and permission changes, but recipients may not be able to use them if they are not using git or Mercurial.GlobGlobal SettingsGnuPGGo toGo to LineGo to a specific revisionGo to current revisionGoto ancestor of %s and %sGoto common ancestorGoto revisionGraftGraft - %sGraft Selected to local...Graft abortedGraft changesetGraft changeset #%d of %dGraft failedGraft generated merge conflicts that must be resolvedGraft is completeGraft:GraphGraphical merge program for resolving merge conflicts. If left unspecified, Mercurial will use the first applicable tool it finds on your system or use its internal merge tool that leaves conflict markers in place. Choose internal:merge to force conflict markers, internal:prompt to always select local or other, or internal:dump to leave files in the working directory for manual mergingGreatest common ancestor of the two changesets.GreekGuards: %d/%dGuess RenamesGzip tar archivesHTTP Error: %d (%s)Head is closed!HebrewHg command:Hg file log viewer [%s] - %sHg patches (as generated by export command) are compatible with most patch programs. They include a header which contains the most important changeset metadata.Hide DetailHide TagsHide context menu outside repositoriesHighlight IconHook typeHooksHostHost name and (optional) port of proxy server, for example "myproxy:8000"Host name of mail serverHostname the sender can use to identify itself to the mail server.How many lines a "zebra stripe" should span in multiline output. Default is 1; set to 0 to disable.IconIconsIf no username has been specified, the user will be prompted to enter a username. Default: FalseIf specified, files in the directory, e.g. .hgignore, are copied to the newly-created repository.If true, concatenate multiple lines of changeset summary and truncate them at 80 characters as necessary. Default: FalseIf you still have trouble, please file a bug report.Ignore Ignore Blank LinesIgnore WS AmountIgnore White SpaceIgnore caseIgnore changes in the amount of white space in diff views. Default: FalseIgnore changes in the amount of white space in the annotate view. Default: FalseIgnore changes whose lines are all blank in diff views. Default: FalseIgnore changes whose lines are all blank in the annotate view. Default: FalseIgnore filter - %sIgnore white space when comparing lines in diff views. Default: FalseIgnore white space when comparing lines in the annotate view. Default: FalseIgnored*Immediate OperationsImport - %sImport from ClipboardImport to &MQIn &Current RevisionIn &Original RevisionIn All &HistoryIn Current &FileIn-Reply-To:IncludeInclude all ancestorsInclude patch queueIncludes:Incoming BookmarksIncoming from %s aborted, ret %dIndicates whether TortoiseHg should attempt to automatically resolve changes from both sides to the same file, and only report merge conflicts when this is not possible. When False, all files with changes on both sides of the merge will report as conflicting, even if the edits are to different parts of the file. In either case, when conflicts occur, the user will be invited to review and resolve changes manually. Default: True.Iniparse must be installed.Iniparse package not foundInitial revisionInline TagsInput new guards for %s:Insufficient access rights, reverting to read-only mode.Insufficient access rights.InterruptedInterrupted graft operation foundInvalid Settings - Please provide your ReviewBoard usernameInvalid Settings - The ReviewBoard server is not setupInvalid commandInvalid configuration: %sInvalid date formatInvalid default push revision: %s. Please check your Mercurial configuration (tortoisehg.defaultpush)Invalid glob expressionInvalid regexp expressionInvalid reviewboard plugin. Please download the Mercurial reviewboard plugin version 3.5 or higher from the website below. %sIssue LinkIssue RegexIssue TrackerIssue Tracker PluginIssue Tracker Plugin ErrorIssue Tracker TriggerIssue TrackingIt was not possible to fully load the subrepository list for the repository in:

                                                                                                              %s

                                                                                                              The following subrepositories may be missing, broken or on an inconsistent state and cannot be accessed:

                                                                                                              %sIt was not possible to get the subrepository list for the repository in:

                                                                                                              %sItalicJapaneseKeep original branch names (--keepbranches)Keep original changesets (--keep)Keep patch filesKey IDKey:Keyword SearchKiln BfilesKnown bad revision:Known good revision:KoreanLargefilesLeft ToolbarLet the user update the projrc on incoming:

                                                                                                              • never: [default] Show whether the remote projrc file has changed, but do not update (nor ask to update) the local projrc file.
                                                                                                              • prompt: Look for changes to the projrc file. If there are changes _always_ show a confirmation prompt, asking the user if it wants to update its local projrc file.
                                                                                                              • auto: Look for changes to the projrc file. Use the value of the "projrc.confirm" configuration key to determine whether to show a confirmation dialog or not before updating the local projrc file.

                                                                                                              Default: neverLicenseLike "keyword(string)" but accepts a regex.LineList Optio&nsList of Servers from which "projrc" configuration files must be pulled. Set it to "*" to pull from all servers. Set it to "default" to pull from the default sync path. Default is pull from NO servers.List of all toolsList of settings that will NOT be pulled from the project configuration file. Default is exclude none of the included settings.List of settings that will be pulled from the project configuration file. Default is include NO settings.List updated files (--verbose)Load &All RevisionsLoad all revisions into graphLoading repository %sLocal HostnameLocal PathLocal Path:Local Repository %sLocal disks onlyLocal revision informationLocal signLocal tagLocation:Locked*LogLog Batch SizeLong SummaryMMQ &OptionsMQ Git FormatMQ QPushPushMQ QPushPush allMQ optionsMa&nifest ModeMake MQ patches secret (instead of draft). Default: FalseMake repo compatible with Mercurial <1.7Making a "draft" revision "secret" is generally a safe operation. However, there are a few caveats: - "secret" revisions are not pushed. This can cause you trouble if you refer to a secret subrepo revision. - If you pulled this revision from a non publishing server it may be moved back to "draft" if you pull again from that particular server. Please be careful!Manage HTTPS connection security and user authenticationManage pending perforce changelistsMandatory Issue ReferenceManually resolve rejected chunks?Manually resolve rejected patch chunksMark as &UnresolvedMark this chunk as resolved, goto next unresolvedMark this chunk as unresolvedMark this file as resolvedMark this file as unresolvedMatch TextMatch any of %d revisionsMax ChangesMax Diff SizeMax FilesMaximum number of changes to list on the changelog. Default: 10Maximum number of files to list per changeset. Default: 10Members of a set with no children in set.Menu BehaviorMercurial Re&solveMercurial UserMercurial command is still running. Are you sure you want to terminate?Mercurial keyring extension is enabled. Passwords will be stored in a platform-native secure method.Mercurial was unable to find an editor. Please configure Mercurial to use an editor installed on your system.MergeMerge - %sMerge - allow to merge with local changesMerge all pending dependenciesMerge caused file conflictsMerge changesetMerge from (other revision)Merge rejected patch chunks into %sMerge revision not specified or not foundMerge to (working directory)Merge using selected merge toolMerge with %sMerge with the other head of the current branchMerging...MessageMessage FontMessage Translation FailureMessage identifier to reply to, for threadingMethod to enable TLS when connecting to mail server. Default: noneMin Similarity: %d%%Minimum SizeMissing informationModi&fy HistoryMonitor Repo ChangesMonitor working
                                                                                                              directory changesMoveMove all files leftMove all files rightMove changes between working dir and patchMove selected chunks leftMove selected chunks rightMove selected file leftMove selected file rightMoved tag %s to changeset %s (from changeset %s)Multiple sources chosenNameName associated with commits. The common format is:
                                                                                                              Full Name <email@example.com>Name or email address of the person in charge of the repository.Named branch "%s" already exists, last used in revision %d New &GroupNew &WorkbenchNew Branch: New Commit PhaseNew GroupNew Name:New Patch BranchNew Repo SkeletonNew RepositoryNew ShelfNew Tool ...New file createdNew hookNew patch message:New patch queue nameNew shelf createdNextNext DiffNext diffNo DatesNo appropriate filesNo backup (-n/--nobackup)No branch changesNo chunks remainNo commitNo deletable chunksNo diff tool foundNo editor foundNo file changesNo files checkedNo files found for this operationNo files selectedNo files to findNo host specifiedNo host validation, but still encrypted (bad)No ignored files foundNo incoming changesets from %sNo issue link was found in the commit message. The commit message should contain an issue link. Configure this in the 'Issue Tracking' section of the settings.No items to displayNo matches foundNo merge conflicts, ready to commitNo merge conflicts, ready to commit or reviewNo modified files checkmarked for commitNo operation to performNo outgoing changesetsNo outgoing changesets to %sNo patch branch selectedNo pending Perforce changelistsNo remote repository URL or path setNo repository foundNo shell configuredNo transaction availableNo trash files foundNo unknown files foundNo username configuredNo valid default remote repository URL or path has been configured for this repository.

                                                                                                              Please type and save a remote repository path on the Sync widget.No visual diff tools were detectedNo visual editor configuredNone - simply pull changesetsNordicNormalize file line endings during and after patch to lf or crlf. Strict does no normalization. Auto does per-file detection, and is the recommended setting. Default: strictNot a Mercurial subrepo, not previewableNot a head revision!Not a head, backout will create a new head!Nothing CommittedNothing changed.Nothing to importNothing to pushOKObsolete state:On repowidget, show forOne or more of the changesets that you are attempting to push involve the creation of a new branch. Do you want to create a new branch in the remote repository?Only consider deleted filesOnly files modified/created in this revisionOnly files modified/created since:Onto destinationOpenOpen &TerminalOpen S&ubrepositoryOpen a new named branchOpen a shell terminal in the repository rootOpen a shell terminal in the selected folderOpen advanced query editorOpen all repositories in new tabsOpen hgweb configOpen new tabs next to the current tabOpen parent folder of current file in the system file managerOpen shelve toolOpen the repository in a file browserOpen the repository in a new tabOpen the selected folder in the system file managerOpen the selected subrepositoryOperation aborted:

                                                                                                              %(arg0)s.Operation which is performed directly after a successful pull. update equates to pull --update, fetch equates to the fetch extension, rebase equates to pull --rebase, updateorrebase equates to pull -u --rebase. Default: noneOptional. Comma-separated list of host names that should bypass the proxyOptional. Method to use to send email messages. If value is "smtp" (default), use SMTP (configured below). Otherwise, use as name of program to run that acts like sendmail (takes "-f" option for sender, list of recipients on command line, message on stdin). Normally, setting this to "sendmail" or "/usr/sbin/sendmail" is enough to use sendmail to send messages.Optional. PEM encoded client certificate chain file. Environment variables are expanded in the filename.Optional. PEM encoded client certificate key file. Environment variables are expanded in the filename.Optional. Password to authenticate with at the proxy serverOptional. Password to authenticate with. If not given, and the remote site requires basic or digest authentication, the user will be prompted for it.Optional. User name to authenticate with at the proxy serverOptional. Username to authenticate with. If not given, and the remote site requires basic or digest authentication, the user will be prompted for it. Environment variables are expanded in the username letting you do foo.username = $USER.OptionsOptions:Or use:Order the subrepos as in .hgsubOriginal Parent:Other revision informationOutgoing BookmarksOutgoing aborted, ret %dOutgoing to %s aborted, ret %dOutput FontOverlaysP&ull BookmarkP&ushPEM files (*.pem *.crt *.cer)PEM files (*.pem *.key)Parent 1:Parent 2:Parent:ParentsPasswordPassword to authenticate to mail server withPassword to authenticate with review boardPassword:Paste &FilenamesPatch Branch ToolbarPatch EOLPatch Files (*.patch)Patch Name RequiredPatch QueuePatch Queue Actions ToolbarPatch date:Patch exportedPatch failed to applyPatch files (*.diff *.patch)Patch files already existPatch fold - %sPatch message:Patch name:Patch series description is sent in initial summary email with [PATCH 0 of N] subject. It should describe the effects of the entire patch series. When emailing a bundle, these fields make up the message subject and body. Flags is a comma separated list of tags which are inserted into the message subject prefix.Patch user:Patch:Patch: %sPatches exportedPatches to foldPathPath Edit ToolbarPath to review board example "http://demo.reviewboard.org"Path to the directory where a system-wide cache of bfiles will be storedPath to the directory where a user's cache of largefiles will be storedPath:Paths in Repository Settings:PatternsPending Perforce Changelists - %sPerforce pending...Perforce:Perform a push before updating (-p/--push)PhasePlace Console in Doc&k AreaPlain, do not prepend Hg headerPlease configure a visual editor.Please enable the Gpg extension first.Please enter a usernamePlease enter commit messagePlease report this bug to our bug trackerPlease set a valid URL to continue.Please wait while committing merged files.Please wait while making backout.Please wait while the file is opened ...Please wait...PopPop allPortPort to connect to on mail server. Default: 25Port to listen onPort:Post &ReviewPost Pull BehaviorPost Pull: Post ReviewPost Selected to Review Board...Post to Re&view Board...Prepare to backoutPrepare to mergePreserve files beginning with .hgPrevPreviewPreview:Previous DiffPrevious diffPreviously the subrepository was at the following revision:ProjrcProxyPrune - %sPublish request immediatelyPullPull from %s aborted, ret %dPull from %s completedPull incoming changesPull incoming changes from %sPull incoming changes from selected URLPull incoming changesets into your repositoryPull subrepos from:Pull to here...Pulled remote bookmark: %sPulling from %s...PurgePurge Patch QueuePus&hPush &AllPush After CommitPush After Commit:Push Requires SSLPush Selected &BranchPush allPush current branch (%s)Push outgoing changesPush outgoing changes to %sPush outgoing changes to selected URLPush to %s abortedPush to %s aborted, ret %dPush to %s completedPush to &HerePush to remote repository %s ?Push up to current revision (#%d)Push up to revision #%dPushed local bookmark: %sPushing to %s...QNewQRefreshQueryQuery about changesets affecting the selected filesQuitR&emove BookmarkR&epository Registry OptionsR&ollback/Undo...README not configuredRe&coverRe&move VersionedRe&move from RegistryRe&nameRe&name Patch...Re&name...Readonly*Ready to purge.RebaseRebase - %sRebase - rebase local commits above pulled changesRebase - use rebase extension (rebase is not active!)Rebase abortedRebase already in progressRebase changeset and descendantsRebase entire source branch (-b/--base)Rebase failedRebase generated merge conflicts that must be resolvedRebase is completeRebase unpublished onto Subversion head (override source, destination)Rebase...Recurse into subrepositoriesRecurse into subrepositories (--subrepos)Redundant authentication infoRefreshRefresh &Task TabRefresh ToolbarRefresh current patchRefresh current repositoryRefresh file listRefresh only the current task tabRefresh the Repository Registry listRegexpRegexp:Regular expression search patternReject incoming changesetsRelated Paths:ReloadReload FileRemo&ve Subrepository...Remote Update - %sRemote command:RemoveRemove &All Selected FilesRemove &Unmodified FilesRemove Files...Remove authentication data from URLRemove current working revision?Remove files from version controlRemove filter, show rootRemove patch directory ofRemove patches from queue?Remove selected deleted files?Remove the node and all its subnodes. Repositories are not deleted from disk.Remove the selected repository?Remove this subrepository from the current revisionRemoved local bookmark: %sRemoved remote bookmark: %sRemoved tag %sRenameRename - %sRename ErrorRename FileRename PatchRename Patch QueueRename file or directoryRename patch %s to:Rename patch queue '%s' toRename patch...Rename the entryReopen last closed tabReopen last closed tab groupReplaceReplace existing hook?Replace existing tag (-f/--force)Replace the existing patch files. Report only the first match per fileRepositoriesRepositoryRepository ErrorRepository ID:Repository RegistryRepository Registry updatedRepository SettingsRepository command still runningRepository is lockedRepository name to use in the web interface, and by TortoiseHg as a shorthand name. Default is the working directory.Repository not localRepository status & changesRequire confirmationResolve Conflicts - %sResolved conflictsRestart &BranchRestart Mer&geRestart Merge &withRestart all TortoiseHg applications for the following changes to take effect:Resuming rebase already in progressRevRevertRevert - %sRevert Files...Revert all file changes?Revert all files to this revisionRevert all working copy changes?Revert file changesRevert file(s) to contents at this revisionRevert files to local or other parent?Revert local file changes?Revert the following files?Revert to RevisionReverting all files will discard changes and leave affected files in a modified state.

                                                                                                              Are you sure you want to use revert?

                                                                                                              (use update to checkout another revision)Reverting p4 changelist...Review BoardReview ID:Review draft posted to %s Review published to %s RevisionRevision #%d (%s) was exported to:

                                                                                                              %s%s%sRevision &DetailsRevision SetRevision Set QueryRevision details context menuRevision has changed to:Revision is &BadRevision is &GoodRevision to Match:Revision:Revisions to Match:Right ToolbarRollback commit to revision %dRollback to revision %d (undo %s)?Run after a changegroup has been added via push, pull or unbundle. ID of the first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL.Run after a changeset has been created in the local repository. ID of the newly created changeset is in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and $HG_PARENT2.Run after a changeset has been pulled, pushed, or unbundled into the local repository. The ID of the newly arrived changeset is in $HG_NODE. URL that was source of changes came is in $HG_URL.Run after sending changes from local repository to another. ID of first changeset sent is in $HG_NODE. Source of operation is in $HG_SOURCE.Run before a changegroup is added via push, pull or unbundle. Exit status 0 allows the changegroup to proceed. Non-zero status will cause the push, pull or unbundle to fail. URL from which changes will come is in $HG_URL.Run before a pushkey (like a bookmark) is added to the repository. Non-zero status will cause the key to be rejected. The key namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) is in $HG_OLD, and the new value is in $HG_NEW.Run before collecting changes to send from the local repository to another. Non-zero status will cause failure. This lets you prevent pull over HTTP or SSH. Also prevents against local pull, push (outbound) or bundle commands, but not effective, since you can just copy files instead then. Source of operation is in $HG_SOURCE. If "serve", operation is happening on behalf of remote SSH or HTTP repository. If "push", "pull" or "bundle", operation is happening on behalf of repository on same system.Run before listing pushkeys (like bookmarks) in the repository. Non-zero status will cause failure. The key namespace is in $HG_NAMESPACE.Run before starting a local commit. Exit status 0 allows the commit to proceed. Non-zero status will cause the commit to fail. Parent changeset IDs are in $HG_PARENT1 and $HG_PARENT2.Running at %sRunning...RussianS&ync ToolbarS&ynchronizeSMTP HostSMTP PasswordSMTP PortSMTP TLSSMTP UsernameSSH CommandSSL error: %sSSL: Server certificate verify failedSSL: unknown error %s:%sSa&ve Current Sync Paths on ExitSaveSave GlobalSave Open Repositories on E&xitSave PathSave changes before editing?Save current URL under an aliasSave error report toSave file as it appeared at this revisionSave file toSave hgweb configSave in RepoScan &Remote RepositoriesSearchSearch HistorySearch Selected TextSearch already in progressSearch commit message, user name, and names of changed files for string.Search file revisions for patternsSearch in All &HistorySearchingSearching...Second parent for all changesets in set, or the working directory.Secret MQ PatchesSecure HTTPS ConnectionSecuritySecurity: Select &AllSelect &NoneSelect Destination FileSelect Destination FolderSelect Directory containing patchesSelect RepositorySelect Source FileSelect Source FolderSelect Tool:Select User Certificate Chain FileSelect User Certificate Key FileSelect a GUI location to edit:Select an existing repository to add as a subrepoSelect branch of merge commitSelect bundle fileSelect destination repositorySelect if TortoiseHg will show a target combo in the sync toolbar.

                                                                                                              • auto: The default. Show the combo if more than one target configured.
                                                                                                              • always: Always show the combo.

                                                                                                              Default: autoSelect patch folderSelect patchesSelect post-pull operation for this repositorySelect repository directory to addSelect repository directory to openSelect source repositorySelect the initial revision that will be selected when opening a repository. You can select the "current" (i.e. the working directory parent), the current "tip" or the working directory ("workingdir"). Default: currentSelect the initial widget that will be shown when opening a repository. Default: revdetailsSelect the revisions that will be pushed by default, whenever you click the Push button.

                                                                                                              • all: The default. Push all changes in all branches.
                                                                                                              • branch: Push all changes in the current branch.
                                                                                                              • revision: Push the changes in the current branch up to the current revision.

                                                                                                              Default: allSelect the toolbar or menu to changeSelect when TortoiseHg will show a prompt to activate a bookmark when updating to a revision that has one or more bookmarks.

                                                                                                              • auto: Try to automatically activate bookmarks. When updating to a revision that has a single bookmark it will be activated automatically. Show a prompt if there is more than one bookmark on the revision that is being updated to.
                                                                                                              • prompt: The default. Show a prompt when updating to a revision that has one or more bookmarks.
                                                                                                              • never: Never show any prompt to activate any bookmarks.

                                                                                                              Default: promptSelect when the working directory status list will be refreshed:
                                                                                                              - auto: [default] let TortoiseHg decide when to refresh the working directory status list.
                                                                                                              TortoiseHg will refresh the status list whenever it performs an action that may potentially modify the working directory. This may miss any changes that happen outside of TortoiseHg's control;
                                                                                                              - always: in addition to the automatic updates above, also refresh the status list whenever the user clicks on the "working dir revision" or on the "Commit icon" on the workbench task bar;
                                                                                                              - alwayslocal: same as "always" but restricts forced refreshes to local repos.
                                                                                                              Default: autoSelect when your command will be runSelect whether you want to have a single workbench window. If you disable this setting you will get a new workbench window everytime that you use the "Hg Workbench" command on the explorer context menu. Default: TrueSelected changeset pair not relatedSend &EmailSend changesets as Hg patchesSend single binary bundle, not patchesSending EmailServerServer Repository IDServersSet &Guards...Set AncestrySet Date:Set LogicSet username:Settin&gsSettingsSettings File:Several characters would be lost.Several icons are courtesy of the TortoiseSVN and Tango projectsSh&ow Repository RegistryShelfShelf clearedShelf deletedShelf: %sShellShelve - move local changes to a patchShelve ChangesShould new tabs be open next to the current tab? If False new tabs will be open after the last tab. Default: TrueShow &AuthorShow &DateShow &Patch QueueShow &PathsShow &RevisionShow About DialogShow Conso&leShow DetailShow Family LineShow FunctionShow IconShow IssuesShow Issues...Show LogShow Output LogShow Revision &DetailsShow S&hort PathsShow a full directory path of the repository in the dialog title instead of just the root directory name. Default: FalseShow allShow all version-controlled files in tree viewShow changes from first parentShow changes from second parentShow files changed by this commitShow full authorname in Logview. If not enabled, only a short part, usually name without email is shown. Default: FalseShow indirect revision dependency on the revision graph when filtered by revset. Default: True

                                                                                                              Note: Calculating family line may be slow in some cases. This option is expected to be removed if the performance issue is solved.Show tabs along the side of the bottom half of each repo widget allowing one to switch task tabs without using the toolbar. Default: offShow tags at start of commit message.Show the history of the selected fileShow which function each change is in. Default: FalseShow/Hide hidden changesetsSig&n...Sign - %sSign even if the sigfile is modified (-f/--force)Signature has been addedSingle Workbench WindowSizeSize (KB)Skip final confirmation page, close after commit.Skipping %s, unable to readSome of the files that you have selected are of a size over 10 MB. You may make more efficient use of disk space by adding these files as largefiles, which will store only the most recent revision of each file in your local repository, with older revisions available on the server. Do you wish to add these files as largefiles?Sort by &NameSort by &PathSort set by keys. The default sort order is ascending, specify a key as "-key" to sort in descending order.Sort the group by full pathSort the group by short nameSourceSource does not exist.Source:South-Eastern EuropeSouthern EuropeSpace separated list of branch names and colors of the form branch:#XXXXXX. Spaces and colons in the branch name must be escaped using a backslash (\). Likewise some other characters can be escaped in this way, e.g. \u0040 will be decoded to the @ character, and \n to a linefeed. Default: None (leave blank)Space separated list of shell operations you would like to be performed immediately, without user interaction. Commands are "add remove revert forget". Default: None (leave blank)Space separated list of tags that will not be shown. Useful example: Specify "qbase qparent qtip" to hide the standard tags inserted by the Mercurial Queues Extension. Default: None (leave blank)Specify name of new shelfSpecify the command to launch your preferred terminal shell application. If the value includes the string %(reponame)s, the name of the repository will be substituted in place of %(reponame)s. Similarly, %(root)s will be the full path to the repository. (restart needed)
                                                                                                              Default, Windows: cmd.exe /K title %(reponame)s
                                                                                                              Default, OS X: not set
                                                                                                              Default, other: xterm -T "%(reponame)s"Specify the number of spaces that tabs expand to in various TortoiseHg windows. Default: 8Specify the path to GPG. Default: gpgSpecify the target filesystem where TortoiseHg monitors changes. Default: localonlySpecify visual diff tool, as described in the [merge-tools] section of your Mercurial configuration files. If left unspecified, TortoiseHg will use the selected merge tool. Failing that it uses the first applicable tool it finds.Specify visual editor, as described in the [editor-tools] section of your Mercurial configuration files. If left unspecified, TortoiseHg will use the first applicable tool it finds.Specify which task buttons you want to show on the task toolbar and in which order.
                                                                                                              Type a list of the task button names. Add separators by putting "|" between task button names.
                                                                                                              Valid names are: log commit sync grep and pbranch.
                                                                                                              Default: log commit grep pbranch | syncSpecify your preferred user interface language (restart needed)StartStart a new patch branchStart revision:Start web server for this repositoryStatStatusStatus File List ToolbarStatus:StopStop current operationStoppedStrikeStrip - %sStrip:StripesStripping Mercurial header removes username and parent information. Only useful if recipient is not using Mercurial (and does not like to see the headers).StyleSub menu items:Subject:Submitting p4 changelist...Subrepo '%s' has a non trivial default sync URL:

                                                                                                              %s

                                                                                                              Replace it with the following URL?:

                                                                                                              %sSubrepo added to .hgsub fileSubrepo created and set to initial revision.Subrepo initialized to revision:Subrepo may be damaged or inaccessible.Subrepo removed from repository.Subrepo state is:Subrepo statesSubrepo was not changed.Subrepository already existsSubrepository not foundSubrepository not found in the working directory.Subrepository removed from .hgsubSubversion:SuccessSuccessors:Suggested length of commit message lines. A red vertical line will mark this length. CTRL-E will reflow the current paragraph to the specified line length. Default: 80Summary (first description line)Summary Line LengthSummary:Swap source and destinationSyncSync BookmarksSynchronizeSynchronize with dragged repositorySynchronize with remote repositorySyntax HighlightingSystem CacheTab WidthTab cannot exitTag '%s' has been addedTag '%s' has been movedTag '%s' has been removedTag - %sTag:Tagged:Tags:Take &OtherTar archive compressed using bzip2Tar archive compressed using gzipTar archivesTarget ComboTarget GroupsTarget PeopleTarget:Task TabsTask Toolbar OrderTaskbarTemporarily disable configured HTTP proxyTemporary files are removed when this dialog is closedTerminated by userTest this revision and report findings. (good/bad/skip)Text Translation FailureText files (*.txt)Textual description of the repository's purpose or contents.ThaiThe .hgsub file already contains the line:

                                                                                                              %sThe changes from revision %s and all unmerged parents will be discarded. Are you sure this is what you want to do?The command "%s" could not be executed.The command "%s" failed (code %d).The command that will be executed. To execute a python function prepend the command with "python:". The default repository id for this repo on the review board serverThe destination "%s" already exists as a file!The destination "%s" already exists as a folder!The destination must be within the repository tree.The directory "%s" is not empty! Do you want to overwrite it?The directory where the command will be executed. If this is not set, the root of the current repository will be used instead. You can use the same {VARIABLES} as on the "Command" setting. The exception error message was:

                                                                                                              %s

                                                                                                              The file "%s" already exists! Do you want to overwrite it?The following error message was returned: "%s" Please check that the command path is valid and that it is a valid applicationThe following error message was returned: %sThe hook name cannot contain any spaces, tabs or '=' characters.The hook name. It cannot contain spaces.The maximum size file (in KB) that TortoiseHg will show changes for in the changelog, status, and commit windows. A value of zero implies no limit. Default: 1024 (1MB)The named bookmark or all bookmarks.The named tag or all tags.The number of revisions to read and display in the changelog viewer in a single batch. Default: 500The phase of new commits. Default: draftThe selected command is emptyThe selected folder:

                                                                                                              %s

                                                                                                              is not inside the target repository.

                                                                                                              This may be allowed but is greatly discouraged.
                                                                                                              If you want to add a non trivial subrepository mapping you must manually edit the .hgsub fileThe selected repository:

                                                                                                              %s

                                                                                                              cannot be open!The selected repository:

                                                                                                              %s

                                                                                                              is already a subrepository of:

                                                                                                              %s

                                                                                                              as: "%s"The selected revision (%s) has a bookmark on it called "%s".

                                                                                                              Do you want to activate it?
                                                                                                              You can disable this prompt by configuring Settings/Workbench/Activate BookmarksThe selected revision (%s) has %d bookmarks on it.

                                                                                                              Select the bookmark that you want to activate and click OK.

                                                                                                              Click Cancel if you don't want to activate any of them.

                                                                                                              You can disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                                                                              The selected revision (rev #%d) cannot be imported because it is not a descendant of qparent (rev #%d)The selected subrepo:

                                                                                                              %s

                                                                                                              has been added to the .hgsub file of the repository:

                                                                                                              %s

                                                                                                              Remember that in order to finish adding the subrepo you must still commit the changes to the .hgsub file in order to confirm the addition of the subrepo.The selected subrepository has been removed from the .hgsub file.

                                                                                                              Remember that you must commit this .hgsub change in order to complete the removal of the subrepository!The selected subrepository was not found on the .hgsub file.

                                                                                                              Perhaps it has already been removed?The set of all parents for all changesets in set.The source must be within the repository tree.The subrepository is dirty.The tool icon. You can use any built-in TortoiseHg icon by setting this value to a valid TortoiseHg icon name (e.g. clone, add, remove, sync, thg-logo, hg-update, etc). You can also set this value to the absolute path to any icon on your file system.The tool label, which is what will be shown on the repowidget context menu. If no label is set, the tool name will be used as the tool label. If no tooltip is set, the label will be used as the tooltip as well.The tool name cannot have any spaces in it.The tool name. It cannot contain spaces.The tooltip that will be shown on the tool button. This is only shown when the tool button is shown on the workbench toolbar.The working directory is already merged. Continue or discard existing merge.There are existing patch files for %d revisions (%s) in the selected location (%s). There are merge conflicts to be resolvedThere are no configured sync paths. Open the Synchronize tab to configure them.There are no conflicting file merges.There are no file changes to viewThere are no files that may have been renamedThere is already an existing folder with that same name.There is an existing %s.%s hook. Do you want to replace it?There is no rollback transaction availableThg - TortoiseHg's GUI tools for Mercurial SCM (Hg) This appears to be a binary file.This error will not be shown again until you restart the workbenchThree-way Merge ToolTitleToTo finish merging, you must commit the working directory. To cancel the merge you can update to one of the merge parent revisions.To graft destinationTo rebase destinationTo:Toggle display of text search barToggle filtering of non-matched changesetsToggle graft relations visibilityToggle parent to be used as the base revisionTolerate non-conflicting local changes (--keep-changes)Too many rows selected for menuTool &ResolveTool labelTool launch failureTool nameToolsTools shown on selected locationTooltipTop menu items:TortoiseHg Bookmark SyncTortoiseHg Bug ReportTortoiseHg Command DialogTortoiseHg CommitTortoiseHg Dialogs (version %s), Mercurial (version %s) TortoiseHg ErrorTortoiseHg New Shelf NameTortoiseHg Overlay Icon ServerTortoiseHg PromptTortoiseHg SearchTortoiseHg SettingsTortoiseHg Shelve - %sTortoiseHg Web ServerTortoiseHg WorkbenchTortoiseHg has created a new .hgignore file. Would you like to add this file to the source code control repository?Traditional ChineseTransplant:Trigger revision set queryTry refreshing your repository.TurkishTypeU&nbundle...UI LanguageURLURLError: %sUkrainianUnable to backoutUnable to compress historyUnable to create a Mercurial.ini fileUnable to create a config fileUnable to delete %d file or folderUnable to delete %d files or foldersUnable to determine pending changesetsUnable to determine working copy revision Unable to find changesetUnable to mergeUnable to merge chunksUnable to parse p4pending outputUnable to read fileUnable to read repository statusUnable to removeUnable to remove URLUnable to remove file %s, permission deniedUnable to save after commit pushUnable to save an URLUnable to save authenticationUnable to save auto include listUnable to save post pull operationUnable to save recurse in subrepos.Unable to save usernameUnable to show subrepository filesUnable to start the following command:Unable to translate input to local encoding.Unable to translate message to local encoding. Consider setting HGENCODING environment variable. Replace untranslatable characters with "?"? Unable to update repository nameUnable to write .hgignore fileUnable to write configuration fileUnable to write diff fileUnable to write fileUnapply all patchesUnapply one patchUnbundleUncheckUncheck all filesUncheck to consider all revisioned files for copy sourcesUncommited merge - please select a parent revisionUncompressed tar archiveUncompressed zip archiveUnderlineUndo close other tabsUndo close tabUndo last commit?Undo last transaction?Undo most recent commit (%d), preserving file changes?UnicodeUnified ChineseUnknown revision!Unresolved conflictsUnresolved conflicts remain. Are you sure?Unsaved changes will be lost. Do you want to reload?Unsupported repository type (%s)UnversionedUpdateUpdate - %sUpdate - pull, then try to updateUpdate IconsUpdate ReviewUpdate icons for this repositoryUpdate on incomingUpdate or create a path alias called '%s' on all subrepos, using this URL as the base URL, appending the local relative subrepo path to itUpdate subrepo pathsUpdate the fields of this existing requestUpdate to:Update working directoryUpdate working directory or switch revisionsUpdate...UpdateOrRebase - pull, then try to update or rebaseUpdateOrRebase - use rebase extension (rebase is not active!)Updating repository registryUpgrading to a more recent TortoiseHg is recommended.Use English backout messageUse English commit messageUse compact viewUse current dateUse custom commit message:Use extended (git) patch formatUse git extended diff header format. Default: FalseUse largefilesUse my user name instead of graft committer user nameUse proxy serverUse pull protocol to copy metadataUserUser AuthenticationUser CacheUser Certificate ChainUser Certificate KeyUser authentication data should be associated with the hostname using the security dialog.User name to authenticate with review boardUser:UsernameUsername to authenticate to mail server withVerify backout revision and ensure your working directory is clean.Verify merge targets and ensure your working directory is clean.Verify with Certificate Authority certificates (best)Verify with stored host fingerprint (good)Vi&ew FileVietnameseView File atView O&therView change as unified diff outputView change history in repositoryView change history of selected filesView change in context of fileView changes to current in external diff toolView changes using GUI diff toolView file as it appeared at this revisionView file changes in external diff toolView the repository's settingsVisual DiffVisual Diff ToolVisual Diff...Visual Diffs - Visual EditorVisual diff between resolved file and first parentVisual diff between resolved file and second parentVisual diff...Visual diffs are not supported for files in subrepositories. They will not be shown.Visual three-way diffWarningWarning: affects all Tortoises, logoff required after changeWas renamed fromWeb ServerWebconfWestern EuropeWhat do you want to do? When committing, require that a reference to an issue be specified. If enabled, the regex configured in 'Issue Regex' must find a match in the commit message.When enabled, automatically show the Output Log when the command is run. Default: False.When set to 'auto', mq will automatically use git patches when required to avoid losing changes to file modes, copy records or binary files. If set to 'keep', mq will obey the [diff] section configuration while preserving existing git patches upon qrefresh. If set to 'yes' or 'no', mq will override the [diff] section and always generate git or regular patches, possibly losing data in the second case. Default: autoWhen to ask the user to confirm the update of the local "projrc" configuration file when the remote projrc file changes. Possible values are:

                                                                                                              • always: [default] Always show a confirmation prompt before updating the local .hg/projrc file.
                                                                                                              • first: Show a confirmation dialog when the repository is cloned or when a remote projrc file is found for the first time.
                                                                                                              • never: Update the local .hg/projrc file automatically, without requiring any user confirmation.
                                                                                                              Whether to allow pushing to the repository. If empty or not set, push is not allowed. If the special value "*", any remote user can push, including unauthenticated users. Otherwise, the remote user must have been authenticated, and the authenticated user name must be present in this list (separated by whitespace or ","). The contents of the allow_push list are examined after the deny_push list.Whether to deny pushing to the repository. If empty or not set, push is not denied. If the special value "*", all remote users are denied push. Otherwise, unauthenticated users are all denied, and any authenticated user name present in this list (separated by whitespace or ",") is also denied. The contents of the deny_push list are examined before the allow_push list.Whether to require that inbound pushes be transported over SSL to prevent password sniffing.Which template map style to useWhite&spaceWork on patch queue (--mq)WorkbenchWorkbench Log ColumnsWorkbench custom toolbarWorking CopyWorking DirectoryWorking Directory (merged)Working directoryWorking directory is not clean! View changes...Working directory statusWrap searchWrite bundleWrite diff fileWrite patch series (bundle) descriptionYou are trying to move the phase of revision %d backwards, from "%s" to "%s". However, "%s" is a lower phase level than "%s". Moving the phase backwards is not recommended. For example, it may result in having multiple heads if you modify a revision that you have already pushed to a server. Please be careful!You can change the icon set from TortoiseSVN's SettingsYou can visit our site hereYou cannot merge a revision with itselfYou have authentication info configured for this host and inside this URL. Remove authentication info from this URL?You have marked all rejected patch chunks as resolved yet you have not modified the file on the edit panel. This probably means that no code from any of the rejected patch chunks made it into the file. Are you sure that you want to leave the file as is and consider all the rejected patch chunks as resolved? Doing so may delete them from a shelve, for example, which would mean that you would lose them forever! Click Yes to accept the file as is or No to continue resolving the rejected patch chunks.You have multiple renames selected for destination file: %s. Aborting!You have selected one or more files that have been modified. By default, these files will not be removed. What would you like to do?You likely need to refresh this applicationYou may continue or start the graftYou may continue the compressYou may continue the graftYou may continue the rebaseYou must enter a patch nameYou must identify yourself to MercurialYou must provide revisions to graftYou must provide source and dest argumentsYou must provide the path to a fileYou must set a command to run.You must set a tool name.You must set a valid hook type.Your TortoiseHg is up to date.Your current working revision (%d) will be removed by this rollback, leaving uncommitted changes. Continue?Zip archive compressed using deflateZip archives[--after PATCH] PATCH...[Code: %d][WARNING] Incomplete changed subrepository. Update to this revision to pull it.[WARNING] Incomplete subrepo. Update to this revision to pull it.[WARNING] Invalid subrepo revision ID: %s [WARNING] Missing changed subrepository. Update to this revision to clone it.[WARNING] Missing subrepo. Update to this revision to clone it.[command completed successfully %s][command interrupted %s][command returned code %d %%s][command terminated by user %s][non-existant][original][working copy]a revision to posta revision to sendabort: abort: %s abort: %s! action buttonCommitadd diffstat output to messagesaddedall revisions converted from subversionalways fork GUI processattachbasic commands: bodybookmark: branch: bundle file to previewcan not read file "%s". Ignored. cannot move applied patchescannot move into applied patchescannot specify both -k/--query and filenameschangeset %d:%schangeset to view in diff toolchangeset which represents converted svn revisionchangeset: %schangeset: %s (not found on subrepository)cleanclone only the specified branchcolumn headerAgecolumn headerAuthorcolumn headerBranchcolumn headerChangescolumn headerConverted Fromcolumn headerDescriptioncolumn headerFilenamecolumn headerGraphcolumn headerLatest tagscolumn headerLocal Timecolumn headerNodecolumn headerPhasecolumn headerRevcolumn headerTagscolumn headerUTC Timecommand parse error: %sconfig itemCommitcorrupted command result: %rdefaultdiffstatdiscard uncommitted changes (no backup)display help and exitdo not back up stripped revisionsdo not commit the sigfile after signingdo not fork GUI processdo not modify working copy during stripenable additional outputenable debugging outputeol is incompatible with win32texterror while running command exec mode has been setexec mode has been unsetfailed to encode command: %sfailed to encode input: %sfailed to fork GUI process: %s failed to start command field to give initial focusfile has been deleted, refreshfile has been modified, refreshfilesfilesAllfilesNonefilling (%d)filterglobal options:grep: %s grep: invalid match pattern: %s hggit packaged with thghgsubversion is incompatible with perfarcehgsubversion packaged with thghint:hint: historyignore case during searchignoredimport to the patch queue (MQ)in the futureinclude the specified changesetinitial search patterninlineinotify is not supported on this platforminvalid "hello" message: %rinvalid argumentsinvalid line number: %sinvalid patch position specifiedkeep original branch nameskeep original changesetslaunch visual diff toollist of commands: locallsprof not available - install from http://codespeak.net/svn/user/arigo/hack/misc/lsprof/make the signature localmake the tag localmerge with old dirstate parent after backoutmethodmissingmodifiedmove after the specified patchmust be specified 'type' in stylemust be specified repositoryname of the hgweb config file (DEPRECATED)name of the hgweb config file (serve more than one repository)needs merge of %i heads needs merge with %s needs merge with %s (through %s) needs update of diff base to tip of %s no "runcommand" capabilityno command specifiedno commands defined no guardsno matches found: %sno outgoing changesetsno outgoing changesets in current branch (%s) / %d in totalno outgoing changesets up to current revision (#%d) / %d in totalno outgoing changesets up to revision #%d / %d in totalno repo at no revisions specifiednotify the shell for paths givennownull revision (i.e. remove file(s))only one new bookmark name allowedopen a new workbench windowopen the bookmark sync windowopen to lineopen...option --config may not be abbreviated!options: parent to choose when backing out mergepassword: patch %s not in seriesperfarce is incompatible with hgsubversionprint command execution profileprint licenseprocess exited unexpectedly with code %dpull: %s push: %sread file list from fileread file list from file encoding utf-8rebase from the specified changesetrebase onto the specified changesetrecord datecode as commit daterecord user as committerremove a tagremove the status cacheremove working directoryremovedreplace existing tagrepository %s not foundrepository root directory or symbolic path namerequires a single filenamerev: %d (%s)revisionrevision %d's first parent (i.e. revision %d)revision %d's second parent (i.e. revision %d)revision to annotaterevision to archiverevision to backoutrevision to displayrevision to mergerevision to striprevision to tagrevision to updaterevision, tag or branch to check outrevisions %d:%s to %d:%srevisions to graftrevisions to prunerevisions to view in diff toolsearch for a given text or revsetselect the specified revisionselected filessend patches as attachmentssend patches as inline attachmentssend patches as part of the email bodyset/override config option (use 'section.name=value')show files without changesshow ignored filesshow the contents of the status cache (no update)side-by-side comparison of revisionssign even if the sigfile is modifiedstart debuggerstart progressCommitstart progressMQ Actionstart progressRollbackstatussubreposuppress outputsync command already runningtab tooltipCommittab tooltipConsole logtab tooltipPatch Branchtab tooltipRevision detailstab tooltipSearchtab tooltipSynchronizethe clone will include an empty working copy (only a repository)the key id to sign withthe revision to showthg %s: %s thg aboutthg add [FILE]...thg annotatethg archivethg backout [OPTION]... [[-r] REV]thg bisectthg bookmarks [-r REV] [NAME]thg clone [OPTION]... [SOURCE] [DEST]thg commit [OPTIONS] [FILE]...thg debugblockmatcherthg debugbugreport [TEXT]thg debugconsolethg debuglighthgthg debugruncommand -- COMMAND [ARGUMENT]...thg drag_copy SOURCE... DESTthg drag_move SOURCE... DESTthg email [REVS]thg filelog [OPTION]... FILEthg forget [FILE]...thg graft [-r] REV...thg grepthg guessthg help [COMMAND]thg hgignore [FILE]thg import [OPTION] [SOURCE]...thg init [DEST]thg log [OPTIONS] [FILE]thg manifest [-r REV] [FILE]thg merge [[-r] REV]thg postreview [-r] REV...thg prune [-r] REV...thg purgethg rebase -s REV -d REV [--keep]thg rejects [FILE]thg remove [FILE]...thg rename [SOURCE] [DEST]thg repoconfigthg resolvethg revdetails [-r REV]thg revert [FILE]...thg rupdate [[-r] REV]thg serve [--web-conf FILE]thg shellconfigthg shelvethg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]thg status [OPTIONS] [FILE]thg strip [-k] [-f] [-n] [[-r] REV]thg sync [OPTION]... [PEER]thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]thg thgstatus [OPTION]thg update [-C] [[-r] REV]thg userconfigthg version [OPTION]thg: %s thg: command '%s' is ambiguous: %s thg: unknown command '%s' timed out waiting for messagetimed out while reading: %r...unexpected response on required channel %runknownunknown patch to move specifiedunknown revision!unrecognized profiling format '%s' - Ignored unrecognized response: %sunsupported URL: %supdate all repos in current diruse "thg -v help %s" to show global optionsuse "thg -v help%s" to show aliases and global optionsuse "thg help" for the full list of commandsuse "thg help" for the full list of commands or "thg -v" for detailsuse as commit messageuse only one form to specify the revisionuse pull protocol to copy metadatause uncompressed transfer (fast over LAN)version %swait until the second ticks overwill be closedwin32ill: cannot create window for messageswin32ill: interrupted while stopping message loop win32ill: unsupported platform: %s win32text is incompatible with eolwindow titleCommitwith Mercurial-%s, Python-%s, PyQt-%s, Qt-%sworking changesworking dir stateCleanwrap mode&NoneProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2019-02-14 05:12+0000 Last-Translator: Yanyong Kunok Language-Team: Thai MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; X-Launchpad-Export-Date: 2019-07-17 05:45+0000 X-Generator: Launchpad (build 19009) กรุณาตรวจความถูกต้องคำสั่ง "thg". Caught keyboard interrupt, aborting. aliases: %s (default: %s) (copied จาก%s) (is a symlink) (is unversioned) (เปลี่ยนชื่อจาก%s) (ถูกเพิ่ม) (ถูกเพิ่ม, หายไปแล้ว) (ถูกลบ) filtered"%s" ไม่ใช่ folder"%s" เป็น directory ที่ไม่ถูกต้อง"%s" removed from path history"%s" removed from search history### filter text ###### host certificate fingerprint ###### patch name ###### regular expression ###### regular expression search pattern ###### revision set query ###$FILE_ENCODINGS% เหมือน%d วัน%d files have merge conflicts that must be resolved%d files were modified on both branches and must be resolved%d ชั่วโมง%d matches found%d นาที%d เดือน%d outgoing changesets%d outgoing changesets in current branch (%s) / %d in total%d outgoing changesets to %s%d outgoing changesets up to current revision (#%d) / %d in total%d outgoing changesets up to revision #%d / %d in total%d patches were exported to:

                                                                                                              %s%d pending changelists found%d วินาที%d สัปดาห์%d ปี%d%%%dpt%p%%s (hint: %s)%s (ค้างอยู่)%s (submitted)%s - Revision Details (%s)%s - TortoiseHg Workbench%s - TortoiseHg Workbench - %s%s - branch operation%s - commit%s - commit options%s - hg %s%s - purge%s - recover repository%s - สถานะ%s - status (selection filtered)%s - sync options%s - verify repository%s : %s%s %s มีแล้ว, ใช้ URL แทน?%s and %s have identical contents %s certificate error: no certificate received%s had rejected chunks, edit patched file together with rejects?%s is a dirty subrepo%s ถูกเพิ่ม%s is deleted by non-hg command, but still tracked%s is ignored%s is modified%s เป็น repository ที่ไม่ถูกต้อง%s is not modified (clean)%s is not tracked (unknown)%s ถูกลบออก%s patches%s project settings (.hg/projrc)%s repository settings%s will be imported to %s's global settings&About TortoiseHgเพิ่มเพิ่ม Repository...&AfterIndent&Archive&Archive...&Auto&Auto Detect&Auto-Complete&Backout...&Bisect...&Branch&Browse...&Bundle Rev and Descendants...&Cancel&Character&Clear&Clone&Close&Close Repository&Commit&Commit to Queue...&Commit to current branch&Copy&Copy Patchคัด&ลอก...สร้าง&Custom Toolbarลบลบ Patches...ลบ Queue...&Delete Unversioned...&Diff Other to Ancestor&Diff Selected File Revisions&Diff to Other&Diff to Parent&Discard&Discard (--force)ยกเลิกการเปลี่ยนแปลง&Dock Toolbar&Edit File&Edit Local&Edit Toolbar&แก้ไข...&Editor Options&Email Patch...&Exit&False&File&Filter Toolbar&Finish Patch&Flat List&Force&Forgetไปที่ (update workdir)&Goto Revision...&Graft to Local...&Helpเมิน&Import&Import Patches...&Incoming&Invisible&Keep (--keep)&อนุญาต&Local&Mac&Make secret&Mark Excluded Changes&Mark Resolved&Mark Unresolved&Mark as Resolved&Matchผนวก&Merge with Local...&Merge...&More Options...ย้ายสร้าง Repository ใหม่ ...&No&No (discard changes)&Open&Open All&Open Localเปิด Repository...&Originating Revisionอื่น ๆ&Outgoing&Parent Revision&Parent Revision (%d)&Paste&Patch Branch&Prune&Prune Selected...&Prune...&Pull&Purge Queue...&Purge...&Push Bookmark&Readme&Rebase...&Redo&Refresh&Refresh Repository List&Remote Update...เ&อาออก&Remove Bookmarkลบ...เปลี่ยนชื่อ Active Queue...แทนที่&Repository&Resize Columns&Resolve...&Revert&Revert to Revision...&Revert with backup&Revert...เริ่มเก็บ&Save at Revision...&Scan Repositories at Startup&ค้นหาค้นไฟล์นี้&Set...&ตั้งค่า&Shelve&Shelve...&Sign&ข้ามรุ่นนีไป&Sort&Sort by .hgsub&Spaces&Strip&Strip...&Sync Bookmarks...&TAB&TAB Inserts&Tag...&Take Local&Task Toolbar&Terminal&True&Unapply Patch&Undo&Unix&Unspecified&Update&Update...&Verify&View&View Changeset&View Missing&View at Revision&Visible&Web Server&Windows&Word&Workbench Toolbars&Wrap&Yes'Publishing' repository(%s) (DEPRECATED)(excluded from the next commit)(is a changed and dirty sub-repository)(is a changed sub-repository)(is a dirty sub-repository)(is a new and dirty sub-repository)(is a new sub-repository)(is a removed sub-repository)(is an unchanged sub-repository)(no help text available)(same as parent)*: not used by TortoiseHg, resolved merge, unresolved merge3-&Way Diff3-way dir diffเริ่ม การปรับแต่งเครื่องมือ...%d changeset will be strippedAnnotate:Candidate MatchesDifferences from Source to DestHost: %sIgnore FilterParse Error!Repository Details:Revert %d files to their contents at the following revision?Revert %s to its contents at the following revision?Selected Options:Selected Options: %sUncommitted local changes are detectedUnknown revision!Unrevisioned FilesUntracked FilesWeb Server:<ไม่เจาะจง>= Working Directory Parent =A README file is not configured for the current repository.

                                                                                                              To configure a README file for a repository, open the repository settings file, add a 'readme' key to the 'tortoisehg' section, and set it to the filename or URL of your repository's README file.A bookmark named "%s" already existsA comma separated list of target groupsA comma separated list of target peopleTortoiseHg (%s) ใหม่พร้อมสำหรับ download!A repository cannot be added as a subrepo of itselfA revision identifier, bookmark, tag or branch nameA shelf file of that name already existsA shelf name cannot contain %sA terminal shell cannot be opened for remoteต้องปรับแต่ง terminal shellA&dd Subrepository...A&uthorยกเลิกยกเลิกการ export . Aborted p4pendingเกี่ยวกับโปรแกรมAbout &QtTortoiseHgรับทราบยอมรับทั้งหมดที่เหมือนกันยอมรับทั้งหมดที่เหมือนกันที่เลือกไว้Accept the local file version (yours)Accept the other file version (theirs)Activate BookmarksActivate bookmark?Activate:เพิ่มเพิ่ม &Largefilesเพิ่ม &Largefiles...เพิ่มไฟล์...เพิ่ม Path ไป Serveเพิ่ม repository ใน group นี้เพิ่ม &Largefilesเพิ่ม &Normal Filesเพิ่มไฟล์สู่ version controlAdd ignore filter...Add or remove patches must be merged in the working directoryAdd selected untracked files?เพิ่มเส้นแบ่งเพิ่มรายการเพิ่มแล้วAdded tag %s for changeset %sAfter Pull Operationอายุ:ชื่อที่ใช้แทนประวัติทั้งหมดAll changesets belonging to the branches of changesets in set.All changesets, the same as 0:tip.All conflicting files will be marked unresolved.All conflicts are resolved.All contextsไฟล์ทั้งหมดไฟล์ทั้งหมดใน revision นี้ทั้งหมดทุกรุ่นที่ไม่ได้เก็บไว้จะหายอนุญาต PushAllow push of a new branch (--new-branch)อนุญาตให้ pushing branches ใหม่ (--new-branch)Always merge (when possible)Always show repo tabs, even for a single repo. Default: FalseAmendAmend current revisionAn alias for "::." (ancestors of the working copy's first parent).An empty set, if any revision in set isn't found; otherwise, all revisions in set.An error occurred while reading the file.เิดผิดพลาดขณะปรับปรุงไฟล์ repository hgrc (%s)เกิดข้อผิดพลาดขณะเขียนไฟล์An exception happened while loading the subrepos of:

                                                                                                              "%s"

                                                                                                              An interrupted graft operation has been found. You cannot perform a different graft operation unless you abort the interrupted graft operation first.Annotate &FileAnnotate Op&tionsAnnotate with revision numbersApp&ly FormatAppendAppend graft info to log messageAppend the changes to the existing patch files. Applied patchesApplied patches or qparentApply all patchesApply changes before exit?Apply one patchApply only this patchApply onto original parentApply patchArabicArchive - %sArchive Content:Archive Formatsประเภทการเก็บแน่ใจว่าต้องการยกเลิก การ commit ?แน่ใจว่าจะลบ files และ/หรือ folders?แน่ใจที่จะเขียนทับ?แน่ใจว่าต้องการ Reload ไฟล์นี้?แน่ใจ?Ask UsernameAttempt automatic (trivial) mergeAttempt to push to specified URL or alias after each successful commit. Default: No pushผู้สร้างAuthor ColoringAuto Commit ListAuto Exclude ListAuto Includes:Auto-resolve mergesAutomatically advance to next page when backout and merge are complete.ไปหน้าถัดไปหลังจากผนวกแล้ว.Automatically resolve merge conflicts where possibleย้อนกลับBacked out changeset: Backing out a parent revision is a single step operationBacking out and committing...Backing out, then merging...Backout - %sBackout changesetBackout current patch branchBackout requires a parent revisionBackout revisionBackport part of a changeset to a dependencyกด Backspace หรือ Del เพื่อการลบแถวBackup copies of modified files can be found in .hg/Trashcan/Backwards phase change requestedfilename ไม่ถูกBalticแอบสำเนาถึงBefore backout, you must commit, shelve to patch, or discard changes.ก่อนย่อ,ต้อง commit, shelve to patch, or discard changes.Before merging, you must commit, shelve to patch, or discard changes.Bisect - %sBisect - Bad, Good...Bisect - Good, Bad...BoldBoo&kmark...Bookmark '%s' ไม่ไมีBookmark '%s' ได้ถูกเพิ่มแล้วBookmark '%s' ได้ถูกย้ายไปแล้วBookmark '%s' ได้ถูกลบออกแล้วBookmark '%s' เปลี่ยนชื่อเป็น '%s'บันทึก - %sชื่อ Bookmark "%s" ไม่มีบันทึกไว้BranchBranch ColorsBranch:Branch: Bro&wse at RevisionBrowse Directory...เลือก...Bundle DAG Range...Bundle files (*.hg)Bundles store complete changesets in binary form. Upstream users can pull from them. This is the safest way to send changes to recipient Mercurial users.Bypass ListBzip2 tar archivesC&hoose Log Columns...C&onfigure FormatCan't change settings without iniparse package - view is readonly.ไม่พบ revision '%s'ยกเลิกเพิ่ม subrepository ไม่ได้Cannot backout change on a different branchExport revision ไม่ได้ไม่สามารถ export revision %s เข้าไปใน ไฟล์ named: %s ไม่สามารถ import revision ที่ถูกเลือกCannot open Plugin Options dialogCannot open non Mercurial repositories or subrepositoriesเปิด repository ไม่ได้เปิด .hgsub ใน:

                                                                                                              %s ไม่ได้อ่านไฟล์ .hgsub ไม่ได้.

                                                                                                              เอา Subrepository ออกไม่สำเร็จ.เริ่มค้นใหม่ไม่ได้ไม่สามารถปรับปรุงไฟล์ .hgsub ใน:

                                                                                                              %sไม่สามารถ update ไฟล์ .hgsub.

                                                                                                              การถอน Subrepository ออก ไม่สำเร็จ.สำเนาถึงสำเนาถึง:CelticCentral and Eastern EuropeCertificate Query ErrorChange &Phase toChangeLog FontChanged by &This Commitมีการเปลี่ยนแปลงเกิดขึ้น ต้องยืนยันการเปลี่นแปลงมีผลหลังจาก commit ครั้งถัดไปChangeset LinkChangeset is a merge changeset.Changeset is a named branch head.Changeset is closed.Changeset is tagged.Changeset with highest revision number in set.Changeset with lowest revision number in set.Changeset:ChangesetsChangesets containing files matched by pattern.Changesets not found in the specified destination repository, or the default push location.Changesets that are ancestors of a changeset in set.Changesets where username contains string.Changesets which add files matched by pattern.Changesets which are descendants of changesets in set.Changesets which modify files matched by pattern.Changesets which remove files matched by pattern.Changesets with no parent changeset in set.Character encoding of files in the repository, used by the web interface and TortoiseHg.ตรวจสอบCheck Subrepo PhaseCheck all filesCheck for incoming changesCheck for incoming changes from %sCheck for incoming changes from selected URLCheck the phase of the current revision of each subrepository. For settings other than "ignore", the phase of the current revision of each subrepository is checked before committing the parent repository. Default: followChecked count: %dCheckingตรวจสอบการปรับปรุงChecking working directory status...กำลังตรวจสอบ...Checkmark ไฟล์เพื่อการเพิ่มCheckmark ไฟล์เพื่อให้ลืมCheckmark ไฟล์เพื่อ ลบออกCheckmark ไฟล์ เพื่อ revertChild changesets of changesets in set.Child:Chunks selected: %d / %dClea&r LogCleanลบClear contents of shelf file %s?ล้าง query นี้และ query textลบไฟล์ shelf ปัจจุบันClick OK to continue or Abort to exit.Clon&e Repository...Clon&e...Clone - %sClone RepositoryClone to revision:Clone โดย โพรเซสที่น้อยที่สุดClone...ปิดClose %s branchปิดหลังจาก CommitClose Branch: ปิด branch นีClose other tabsClose tabClose the commit tool after every successful commit. Default: Falseยุติเปรียบเทียบ รุ่นCollapse the rebased changesets (--collapse)Color changesets by author name. Default: FalseComma separated list of archive formats allowed for downloadingComma separated list of branch names that should be ignored when building a list of branch names for a repository. Default: None (leave blank)Comma separated list of exclusion file patterns. Exclusion patterns are applied after inclusion patterns.Comma separated list of files that are automatically included in every commit. Intended for use only as a repository setting. Default: None (leave blank)Comma separated list of files that are automatically unchecked when the status, and commit dialogs are opened. Default: None (leave blank)Comma separated list of inclusion file patterns. By default, the entire repository is searched.Comma-separated list of blind carbon copy recipient email addressesComma-separated list of carbon copy recipient email addressesComma-separated list of recipient email addressesคำสั่งคำสั่งผิดพลาดCommand outputCommand to use for SSH connections.

                                                                                                              Default: "ssh" or "TortoisePlink.exe -ssh -2" (Windows)ยืนยันการเปลี่ยนCommit Dialog ToolbarCommit ทีหลังเริ่ม Commit ได้ตัวเลือก CommitCommit backout and merge resultsยืนยันการเปลี่ยนCommit changes in repositoryCommit context menuCommit merge resultsข้อความ CommitCommit...Committing...Common setsเปรียบเทียบรุ่นในไฟล์Compare to &1st ParentCompare to &2nd ParentCompletely remove file from patch?ย่อข้อมูลย่อ- %sHistory ย่อ...Compress changesets up to and includingการย่อข้อมูลสมบูรณ์,ไม่มีการแก้ไขประวัติไฟล์ปรับแต่ง:ไฟล์ปรับแต่ง (*.conf *.config *.ini)Configuration Error: "%(arg0)s",
                                                                                                              Please fix your configConfigure Custom ToolConfigure Explorer extensionปรับแต่ง Hookปรับแต่ง Issue Trackerปรับแต่ง guardsConfigure guards for selected patchConfigure repository settingsConfigure the selected COM Bug Tracker plugin.Configure user wide settingsConfigures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking plugin.ยืนยันเพิ่มConfirm Branch ChangeยืนยันการลบConfirm Delete Unversionedยืนยันยกเลิกยืนยันยกเลิกการเปลี่ยนแปลงConfirm Discard Messageยืนยันว่าออกConfirm New Branchยืนยันที่จะเขียนทับยืนยัน PushConfirm Push to remote Repositoryยืนยันเรียกซ้ำยืนยันการย้ายออกConfirm Revertยืนยันการเก็บConfirm Stripยืนยัน ทับแทน URLยืนยัน การยกเลิกยืนยันการปรับปรุงยืนยันการเพิ่ม unknown filesยืนยันการ ลบไฟล์ยืนยัน การลบไฟล์Confirm patch queue switchConfirm path deleteกำลังเชื่อมต่อ Review Board...พิจารณายกเลิก graft ก่อน.ทบทวนการยกเลิก rebase ก่อน.ระบบควบคุมการติดต่อContext MenuContinue or abort interrupted graft operation?Controls draft phase behavior when working as a server. When true, pushed changesets are set to public in both client and server and pulled or cloned changesets are set to public in the client. Default: TrueConvert an existing repository into a subrepositoryConverted From:คัดลอกCopy &HashCopy &PathCopy - %sCopy ผิดพลาดCopy Selected as PatchCopy full path of file(s) to the clipboardลอกข้อความCopy one of the recent commit messagesCopy source -> destinationCopy the root path of the repository to the clipboardคัดลอกไฟล์ working directory จาก skeletonไม่ได้รับ subrepository listCould not instantiate Issue Tracker plugin COM objectเปิดไฟล์ .hgsub ไมได้ไม่สามารถเปิด subrepositoriesCould not open the specified file for reading.เปิดไฟล์เพื่อเขียนไม่ได้ไม่สามารถแปลไฟล์จาก native encoding.แปลไฟล์เป็น native encoding ไม่ได้.ไม่สามารถ update ไฟล์ .hgsubสร้างสร้าง &Branchสร้าง Queue ใหม่...Create Patch Queueสร้าง Repository ที่นี่Create a new groupCreate a new patchสร้าง repository ใหม่สร้าง clone ที่นี่ จาก sourceCreate diff with all changes on this branchCreate diff with all outgoing changesCreate new named branch "%s" with this commit? &ตัดพบ Culpritรุ่นปรับปรุงปัจจุบันCustom Toolbar &Settingsปรับแต่งเครื่องมือCyrillicวันที่วันที่:De&tect Renames...Deactivate current bookmark?Dead BranchesDefault PushDefault widgetDefines the command to run when an issue number is recognized. You may include groups in issue.regex, and corresponding {n} tokens in issue.link (where n is a non-negative integer). {0} refers to the entire string matched by issue.regex, while {1} refers to the first group and so on. If no {n} tokens are found in issue.link, the entire matched string is appended instead.Defines the regex to match when picking up issue numbers.ลบลบ %d file ใน .hg/Trashcanลบ %d ignored fileลบ %d unknown fileDelete %s from your repo configuration file?Delete Group '%s' and all its entries?ลบ Patch Queueลบ Patchesลบ เครื่องมือDelete empty foldersลบจากรายการลบ hookลบ patches...Delete reference toDelete selected chunksDelete selected chunks from shelf file %s?Delete selected chunks from working copy?ลบ patchesที่เลือกลบ query ที่เลือกไว้จาก historyลบ shelf file %s?Delete the current shelf fileDelete the following unversioned files?ไฟล์ %d ถูกลบแล้ว%d files และ %d folders ถูกลบแล้วลบแล้ว*กำลังลบ trash folder...ลบไม่ได้ไม่อนุญาต PushรายละเอียดDestDestination file มีอยู่แล้ว.Destination path:Destination:Detect Copies/Renames in %sDetect outgoing changesDetect outgoing changes to %sDetect outgoing changes to selected URLDetect renames and copiesDetected merge/diff tools:Detected uncommitted local changes in working tree. Please select to continue: Detected uncommitted local changes.Determines if TortoiseHg should show a confirmation dialog before pushing changesets. If False, push will be performed without any confirmation dialog. Default: TrueDetermines when the issue tracker state will be updated by TortoiseHg. Valid settings values are:

                                                                                                              • never: Do not update the Issue Tracker state automatically.
                                                                                                              • commit: Update the Issue Tracker state after a successful commit.

                                                                                                              Default: neverDetermining outgoing changesets to email...Diff &Changeset to ParentDiff &LocalDiff &Local to AncestorDiff Changeset to Loc&alDiff File toDiff FontDiff Selected &ChangesetsDiff ToolbarDiff and Annotateข้อมูลที่แตกต่างกันที่แตกต่าง ไม่แสดง Diff to &LocalDiff to parentDir diff to p1Dir diff to p2Directory diffDirectory of filesยกเลิก- discard local changes, no backupDiscard current backout message?ยกเลิกการส่งข้อความยกเลิกการเปลี่ยนแปลง ทั้งหมด (revert --all)Discard local changes, no backup (-C/--clean)Discard local changes, no backup (-f/--force)Discard outstanding changes to working directory?Discard remote changes, no backup (-C/--clean)แสดง closed branchesแสดงแค่ graph the named branchแสดงแค่ active branchesอย่างไรก็จะแสดง fileDisplaying %(count)d of %(total)d itemsDnD SynchronizeDo not include modification dates in diff headers. Default: FalseDo not modify working copy during strip (-k/--keep)ไม่ต้องเก็บ ไฟล์สำรอง (*.orig)Do not show menu items on unversioned folders (use shift + click to override)Do not strip paths (-p0), required for SVN patchesDo not update the new working directoryไม่ต้องใช้ host certificateDo you really want to force a backwards phase transition?Do you really want to activate patch queue '%s' ?Do you really want to deactivate the %s bookmark?Do you really want to make this revision secret?แน่ใจว่าต้องการเอา repository "%s" ออก จาก parent repository "%s"ออก?ต้องการที่จะเก็บไว้หรือไม่?Drag to change orderทำซ้ำชื่อE&ncodingE&xitE&xploreE&xplore FolderE&xplore LocalE&xplorer HelpE&xportE&xport Patch...EOL &ModeEOL &Visibilityแก้ไขแก้ไขไฟล์Edit Ignore Filterแก้ไข LocalEdit Path to ServeEdit Re&jectsแก้ เครื่องมือ ...Edit current file in working copyแก้ fileแก้ hookแก้ patch dependency graphEdit patched file and rejects?Edit repository ignore filterEdit resolved fileไม่สามารถใช้ EditorEmailEmail DAG Range...Email ที่เลือก...Email address to use in the "From" header and for the SMTP envelopeEmail outgoing changesets for remote repositoryEmit debugging output (--debug)Enabled Overlay HandlersEnabled overlaysEncodingข้อความ Englishใส่เลขบรรทัด (1 - %d)Enter revision identifierErrorมีการผิดพลาดError executing "commit finished" triggerError getting commit message information from Issue Tracker pluginError loading subreposError previewing subrepo: %sError string "%(arg0)s" at %(arg1)s
                                                                                                              Please edit your configเขียนไฟล์ผิดพลาดไม่รวมไม่รวม:Execute custom tool '%s'ออกจากโปรแกรมExit without finishing resolve?ไม่แนะนำให้ออกโดยที่ทำ graft ยังไม่เสร็จ.ไม่แนะนำให้ยกเลิก เมื่อ rebase ยังไม่เสร็จExplorer Extension SettingsExplorer Extension Settings - TortoiseHgExport DAG Range...Export Diff...Export Selected...Export patchExtส่วนขยายเพิ่ม repository ไม่สำเร็จเพิ่ม subrepository ไม่สำเร็จExecute คำสั่ง(custom) TortoiseHg ไม่สำเร็จExecute คำสั่ง(custom) ไม่สำเร็จไม่สามารถดึง issue tracker '%s': %sFailed to load issue tracker: '%s': %s. ไม่สามารถเเปิด path ใน terminalเปิด repository ไม่สำเร็จrefresh ไม่สำเร็จไม่สำเร็จFetch - use fetch (auto merge pulled changes)Fetch - use fetch extension (fetch is not active!)Fields to match:ไฟล์File &History / AnnotateFile Differences Log Columnsประวัติไฟล์File History Log ColumnsFile List Toolbarสถานะไฟล์สถานะไฟล์:มีไฟล์นี้อยู่แล้วFile conflicts need to be resolvedFile context menu (on manifest and revision details)File is binaryFile is larger than the specified max size. maxdiff = %s KBFile may be binary (maximum line length exceeded)File or diffs not displayed: File or diffs not displayed: File is larger than the specified max size. maxdiff = %s KBFile pattern setsชื่อไฟล์ไฟล์Files of at least the specified size (in megabytes) will be added as bfilesFiles of at least the specified size (in megabytes) will be added as largefilesFiles with names meeting the specified patterns will be automatically added as bfilesFiles with names meeting the specified patterns will be automatically added as largefilesระบุโดย Histor&yFilter b&yFilter graph with revision sets or branchesFilter:ค้น การเปลี่ยนชื่อFind copy and/or rename sourcesFind matches - %sFind revisions matching fields of:Find revisions that "match" one or more fields of the given set of revisions.Finding outgoing changesets to %s...เรียบร้อยFirst n members of a set.First parent for all changesets in set, or the working directory.รุ่นที่แก้ไขแล้วFlag:Fold patches...Follow copies and renamesFont used to display changelog data. Default: monospace 10Font used to display commit messages. Default: monospace 10Font used to display output messages. Default: sans 8Font used to display text differences. Default: monospace 10แบบอักษรFor which kinds of revisions the tool will be enabled It is only taken into account when the tool is shown on the selected revision context menu.Force Repo TabForce a merge with outstanding changes (-f/--force)Force push or pop (--force)Force push or pull (override safety checks, --force)Force push to remote location (-f/--force)Force removal of modified files (--force)ForgetForget Files...Fork GUIข้างหน้าพบ %d incoming changesetsFound incoming changesets from %sจากจาก:Full AuthornameFull Path TitleGPG key ID associated with user. Default: None (leave blank)Generate English commit messages even if LANGUAGE or LANG environment variables are set to a non-English language. This setting is used by the Merge, Tag and Backout dialogs. Default: FalseGetting incoming changesets from %s...Git Commit:Git FormatGit patches can describe binary files, copies, and permission changes, but recipients may not be able to use them if they are not using git or Mercurial.GlobGlobal SettingsGnuPGไปที่ไปที่บรรทัดGo to a specific revisionไปที่ revision ปัจจุบันGoto ancestor of %s and %sไปที่ common ancestorGoto revisionGraftGraft - %sGraft Selected to local...Graft abortedGraft changesetGraft changeset #%d of %dGraft failedGraft generated merge conflicts that must be resolvedGraft is completeGraft:GraphGraphical merge program for resolving merge conflicts. If left unspecified, Mercurial will use the first applicable tool it finds on your system or use its internal merge tool that leaves conflict markers in place. Choose internal:merge to force conflict markers, internal:prompt to always select local or other, or internal:dump to leave files in the working directory for manual mergingGreatest common ancestor of the two changesets.GreekGuards: %d/%dGuess RenamesGzip tar archivesHTTP Error: %d (%s)Head is closed!Hebrewคำสั่ง HgHg file log viewer [%s] - %sHg patches (as generated by export command) are compatible with most patch programs. They include a header which contains the most important changeset metadata.ซ่อนซ่อน TagsHide context menu outside repositoriesHighlight Iconประเภทของ HookHooksHostHost name and (optional) port of proxy server, for example "myproxy:8000"Host name of mail serverHostname the sender can use to identify itself to the mail server.How many lines a "zebra stripe" should span in multiline output. Default is 1; set to 0 to disable.IconIconsIf no username has been specified, the user will be prompted to enter a username. Default: FalseIf specified, files in the directory, e.g. .hgignore, are copied to the newly-created repository.If true, concatenate multiple lines of changeset summary and truncate them at 80 characters as necessary. Default: Falseถ้าพบปัญหาหรือข้อผิดพลาด แจ้งได้ที่นี่ .เมิน Ignore Blank LinesIgnore WS AmountIgnore White SpaceIgnore caseIgnore changes in the amount of white space in diff views. Default: FalseIgnore changes in the amount of white space in the annotate view. Default: FalseIgnore changes whose lines are all blank in diff views. Default: FalseIgnore changes whose lines are all blank in the annotate view. Default: FalseIgnore filter - %sIgnore white space when comparing lines in diff views. Default: FalseIgnore white space when comparing lines in the annotate view. Default: FalseIgnored*Immediate OperationsImport - %sImport จาก ClipboardImport to &MQIn &Current RevisionIn &Original RevisionIn All &Historyใน ไฟล์นี้In-Reply-To:รวมInclude all ancestorsInclude patch queueรวม:Incoming BookmarksIncoming from %s aborted, ret %dIndicates whether TortoiseHg should attempt to automatically resolve changes from both sides to the same file, and only report merge conflicts when this is not possible. When False, all files with changes on both sides of the merge will report as conflicting, even if the edits are to different parts of the file. In either case, when conflicts occur, the user will be invited to review and resolve changes manually. Default: True.ต้องติดตั้ง IniparseIniparse package not foundInitial revisionInline TagsInput new guards for %s:Insufficient access rights, reverting to read-only mode.ปัญหาของสิทธิในการเข้าถึงถูกขัดจังหวะInterrupted graft operation foundพบข้อผิดพลาด ใน Settings - ใส่ ReviewBoard username ด้วยมีผิดพลาดที่ Settings - ReviewBoard server ยังไม่ได้ติดตั้งคำสั่งไม่ถูกต้องมีผิดพลาดใน configuration: %sรูปแบบของวันที่ผิดพลาดInvalid default push revision: %s. Please check your Mercurial configuration (tortoisehg.defaultpush)Invalid glob expressionInvalid regexp expressionพบข้อผิดพลาด ใน reviewboard plugin. กรุณาdownload the Mercurial reviewboard plugin version 3.5 หรือสูงกว่าจาก website นี้. %sIssue LinkIssue Regexปัญหา TrackerIssue Tracker PluginIssue Tracker Plugin ErrorIssue Tracker TriggerTracking ปัญหาIt was not possible to fully load the subrepository list for the repository in:

                                                                                                              %s

                                                                                                              The following subrepositories may be missing, broken or on an inconsistent state and cannot be accessed:

                                                                                                              %sไม่ได้รับ subrepository list จาก repository ใน:

                                                                                                              %sItalicJapaneseKeep original branch names (--keepbranches)Keep original changesets (--keep)เก็บ patch files ไว้Key IDKey:ค้น KeywordKiln Bfilesรุ่นที่มีปัญหารุ่นปรับปรุงที่ดีKoreanLargefilesToolbar ซ้ายLet the user update the projrc on incoming:

                                                                                                              • never: [default] Show whether the remote projrc file has changed, but do not update (nor ask to update) the local projrc file.
                                                                                                              • prompt: Look for changes to the projrc file. If there are changes _always_ show a confirmation prompt, asking the user if it wants to update its local projrc file.
                                                                                                              • auto: Look for changes to the projrc file. Use the value of the "projrc.confirm" configuration key to determine whether to show a confirmation dialog or not before updating the local projrc file.

                                                                                                              Default: neverใบอนุญาตLike "keyword(string)" but accepts a regex.บรรทัดที่List Optio&nsList of Servers from which "projrc" configuration files must be pulled. Set it to "*" to pull from all servers. Set it to "default" to pull from the default sync path. Default is pull from NO servers.รายการเครื่องมือทั้งหมดList of settings that will NOT be pulled from the project configuration file. Default is exclude none of the included settings.List of settings that will be pulled from the project configuration file. Default is include NO settings.รายการไฟล์ที่ถูกปรับปรุง (--verbose)Load &All RevisionsLoad all revisions into graphLoading repository %sLocal HostnameLocal PathLocal Path:Local Repository %sLocal disks onlyLocal revision informationLocal signLocal tagLocation:Locked*LogLog Batch SizeสรุปแบบยาวMMQ &OptionsMQ Git FormatPushPush allMQ optionsMa&nifest ModeMake MQ patches secret (instead of draft). Default: Falseทำ ให้ repo compatible กับ Mercurial <1.7Making a "draft" revision "secret" is generally a safe operation. However, there are a few caveats: - "secret" revisions are not pushed. This can cause you trouble if you refer to a secret subrepo revision. - If you pulled this revision from a non publishing server it may be moved back to "draft" if you pull again from that particular server. Please be careful!Manage HTTPS connection security and user authenticationManage pending perforce changelistsMandatory Issue ReferenceManually resolve rejected chunks?Manually resolve rejected patch chunksMark as &UnresolvedMark this chunk as resolved, goto next unresolvedMark this chunk as unresolvedMark this file as resolvedMark this file as unresolvedเทียบอักขระMatch any of %d revisionsMax ChangesMax Diff SizeMax FilesMaximum number of changes to list on the changelog. Default: 10Maximum number of files to list per changeset. Default: 10Members of a set with no children in set.Menu BehaviorMercurial Re&solveผู้ใช้ MercurialMercurial กำลังทำตามคำสั่ง. มั่นใจว่าต้องการยกเลิกจริง?Mercurial keyring extension is enabled. Passwords will be stored in a platform-native secure method.Mercurial ไม่พบ editor. กรุณาระบุให้ Mercurial ใช้ editor ของระบบที่มีอยู่.ผนวกผนวก - %sผนวก- allow to merge with local changesผนวก dependencies ที่ยังค้างอยู่ทั้งหมดMerge caused file conflictsMerge changesetผนวกจาก (รุ่นอื่น)Merge rejected patch chunks into %sMerge revision not specified or not foundผนวกมาที่ (working directory)Merge using selected merge toolผนวกด้วย %sMerge with the other head of the current branchกำลังผสมผสาน...ข้อความFont ข้อความการแปลข้อความไม่สำเร็จMessage identifier to reply to, for threadingMethod to enable TLS when connecting to mail server. Default: noneMin Similarity: %d%%ขนาดเล็กสุดข้อมูลไม่ครบModi&fy HistoryMonitor Repo ChangesMonitor working
                                                                                                              directory changesMoveMove all files leftMove all files rightMove changes between working dir and patchMove selected chunks leftMove selected chunks rightMove selected file leftMove selected file rightMoved tag %s to changeset %s (from changeset %s)Multiple sources chosenชื่อName associated with commits. The common format is:
                                                                                                              Full Name <email@example.com>Name or email address of the person in charge of the repository.Named branch "%s" already exists, last used in revision %d New &GroupNew &WorkbenchNew Branch: New Commit PhaseNew Groupชื่อใหม่:Patch Branch ใหม่New Repo SkeletonRepository ใหม่New Shelfเครื่องมือใหม่ ...ไฟล์ใหม่ถูกสร้างhook ใหม่ข้อความ patch ใหม่:New patch queue nameNew shelf ได้ถูกสร้างNextNext DiffNext diffไม่มี วันที่No appropriate filesไม่ backup (-n/--nobackup)ไม่มีการแปลี่นแปลงที่ branchNo chunks remainNo commitNo deletable chunksNo diff tool foundไม่พบ editorไม่พบไฟล์ที่มีการเปลี่ยนแปลงไฟล์ไม่ถูกเลือกNo files found for this operationไม่มีแฟ้มถูกเลือกไม่พบไฟล์ไม่เจาะจง hostNo host validation, but still encrypted (bad)No ignored files foundNo incoming changesets from %sNo issue link was found in the commit message. The commit message should contain an issue link. Configure this in the 'Issue Tracking' section of the settings.ไม่มีอะไรแสดงไม่พบข้อมูลที่ตรงกันไม่พบปัญหาการผนวก, พร้อมสำหรับ commitไม่พบข้อผิดพลาดการผนวก, พร้อมสำหรับ commit or ตรวจไม่มีการเลือกไฟล์ที่ถูกแก้ไขNo operation to performNo outgoing changesetsNo outgoing changesets to %sไม่มี patch branch ที่ถูกเลือกไว้No pending Perforce changelistsNo remote repository URL or path setไม่พบ repositoryไม่ได้ ปรับแต่ง shellNo transaction availableNo trash files foundNo unknown files foundยังไม่มี usernameNo valid default remote repository URL or path has been configured for this repository.

                                                                                                              Please type and save a remote repository path on the Sync widget.No visual diff tools were detectedไม่พบการปรับแต่ง visual editorNone - simply pull changesetsNordicNormalize file line endings during and after patch to lf or crlf. Strict does no normalization. Auto does per-file detection, and is the recommended setting. Default: strictNot a Mercurial subrepo, not previewableไม่ใช่ส่วน head revision!Not a head, backout will create a new head!ไม่ไม่การส่งไม่มีอะไรเปลี่ยนแปลงNothing to importNothing to pushได้ไม่ใช้แล้ว:On repowidget, show forOne or more of the changesets that you are attempting to push involve the creation of a new branch. Do you want to create a new branch in the remote repository?เลือกเฉพาะไฟล์ที่ถูกลบOnly files modified/created in this revisionเฉพาะไฟล์ที่ modified/created เริ่มตั้งแต่:Onto destinationเปิดเปิด &TerminalOpen S&ubrepositoryOpen a new named branchเปิด shell terminal ใน repository rootเปิด shell terminal ใน folder นี้เปิด advanced query editorเปิด repositorie ทั้งหมดใน tab ใหม่เปิด hgweb configOpen new tabs next to the current tabOpen parent folder of current file in the system file managerOpen shelve toolOpen the repository in a file browserเปิด repository ใน tab ใหม่เปิด folder โดย file manager ของระบบOpen the selected subrepositoryOperation ถูกยกเลิก:

                                                                                                              %(arg0)s.Operation which is performed directly after a successful pull. update equates to pull --update, fetch equates to the fetch extension, rebase equates to pull --rebase, updateorrebase equates to pull -u --rebase. Default: noneOptional. Comma-separated list of host names that should bypass the proxyOptional. Method to use to send email messages. If value is "smtp" (default), use SMTP (configured below). Otherwise, use as name of program to run that acts like sendmail (takes "-f" option for sender, list of recipients on command line, message on stdin). Normally, setting this to "sendmail" or "/usr/sbin/sendmail" is enough to use sendmail to send messages.Optional. PEM encoded client certificate chain file. Environment variables are expanded in the filename.Optional. PEM encoded client certificate key file. Environment variables are expanded in the filename.Optional. Password to authenticate with at the proxy serverOptional. Password to authenticate with. If not given, and the remote site requires basic or digest authentication, the user will be prompted for it.Optional. User name to authenticate with at the proxy serverOptional. Username to authenticate with. If not given, and the remote site requires basic or digest authentication, the user will be prompted for it. Environment variables are expanded in the username letting you do foo.username = $USER.เลือกOptions:หรือ ใช้:Order the subrepos as in .hgsubOriginal Parent:ข้อมูล revision อื่นๆOutgoing BookmarksOutgoing aborted, ret %dOutgoing to %s aborted, ret %dOutput FontOverlaysP&ull BookmarkP&ushPEM files (*.pem *.crt *.cer)PEM files (*.pem *.key)Parent 1:Parent 2:Parent:Parentsรหัสผ่านPassword to authenticate to mail server withPassword to authenticate with review boardรหัสผ่าน:Paste &FilenamesPatch Branch ToolbarPatch EOLPatch Files (*.patch)Patch Name RequiredPatch QueuePatch Queue Actions Toolbarวันที่ Patch:Patch exportedไม่สามารถปรับปรุงได้Patch files (*.diff *.patch)Patch files มีอยู่แล้วPatch fold - %sข้อความ Patch :Patch name:Patch series description is sent in initial summary email with [PATCH 0 of N] subject. It should describe the effects of the entire patch series. When emailing a bundle, these fields make up the message subject and body. Flags is a comma separated list of tags which are inserted into the message subject prefix.Patch ผู้ใช้:Patch:Patch: %sPatches exportedPatches to foldPathPath Edit ToolbarPath to review board example "http://demo.reviewboard.org"Path to the directory where a system-wide cache of bfiles will be storedPath to the directory where a user's cache of largefiles will be storedPath:Paths in Repository Settings:PatternsPending Perforce Changelists - %sPerforce pending...Perforce:Perform a push before updating (-p/--push)Phaseนำ Console ไปไว้ใน บริเวณ Doc&kPlain, do not prepend Hg headerกรุณาปรับแต่ง visual editor.Please enable the Gpg extension first.กรุณาใส่ usernameกรุณา เพิ่มข้อความ เพื่อการส่งPlease report this bug to our bug trackerกรุณาใส่ URL ที่ถูกต้องเพื่อดำเนินการต่อ.Please wait while committing merged files.Please wait while making backout.กรุณารอขณะ ไฟล์เปิดกรุณารอ...PopPop allPortPort to connect to on mail server. Default: 25Port to listen onPort:Post &ReviewPost Pull BehaviorPost Pull: Post ReviewPost Selected to Review Board...Post to Re&view Board...Prepare to backoutเตรียมผนวกPreserve files beginning with .hgPrevแสดงตัวอย่างแสดงตัวอย่าง:Diff ก่อนหน้าPrevious diffPreviously the subrepository was at the following revision:ProjrcProxyPrune - %sPublish request immediatelyPullดึงมาจาก %s aborted, ret %dดึงมาจาก %s completedPull incoming changesPull incoming changes from %sPull incoming changes from selected URLPull incoming changesets into your repositoryดึง subrepos จาก:Pull มา ที่นี่...Pulled remote bookmark: %sดึงมาจากfrom %s...PurgePurge Patch QueuePus&hPush &AllPush After CommitPush After Commit:Push Requires SSLPush Selected &BranchPush allPush current branch (%s)Push outgoing changesPush outgoing changes to %sPush outgoing changes to selected URLPush to %s abortedPush to %s aborted, ret %dPush to %s completedPush to &HerePush to remote repository %s ?Push up to current revision (#%d)Push up to revision #%dPushed local bookmark: %sPushing to %s...QNewQRefreshQueryQuery about changesets affecting the selected filesจบการทำงานR&emove BookmarkR&epository Registry OptionsR&ollback/Undo...README not configuredRe&coverRe&move VersionedRe&move from Registryเปลี่ยนชื่อเปลี่ยนชื่อ Patch...เปลี่ยนชื่ออ่านได้อย่างเดียว*Ready to purge.RebaseRebase - %sRebase - rebase local commits above pulled changesRebase - use rebase extension (rebase is not active!)Rebase ถูกยกเลิกRebase already in progressRebase changeset and descendantsRebase entire source branch (-b/--base)Rebase ไม่สำเร็จRebase generated merge conflicts that must be resolvedRebase สำเร็จRebase unpublished onto Subversion head (override source, destination)Rebase...Recurse into subrepositoriesRecurse into subrepositories (--subrepos)Redundant authentication infoRefreshRefresh &Task TabRefresh ToolbarRefresh current patchRefresh current repositoryปรับปรุงรายการไฟล์Refresh only the current task tabRefresh the Repository Registry listRegexpRegexp:Regular expression search patternReject incoming changesetsRelated Paths:เรียกซ้ำReload FileRemo&ve Subrepository...Remote Update - %sคำสั่งควบคุมจากอีกแห่งRemoveRemove &All Selected FilesRemove &Unmodified Filesลบไฟล์...ลบ ข้อมูล authentication ออกจาก URLลบ revision ปัจจุบัน?ลบไฟล์จาก version controlRemove filter, show rootRemove patch directory ofลบ patches ออกจาก queue?นำไฟล์ที่ถูกลบไว้ออกRemove the node and all its subnodes. Repositories are not deleted from disk.เอา repository ที่ถูกเลือกออก?ลบ subrepository นี้ จาก revision ปัจจุบันRemoved local bookmark: %sRemoved remote bookmark: %sลบ tag %s ออกเปลี่ยนชื่อเปลี่ยนชื่อ - %sเปลี่ยนชื่อผิดพลาดเปลี่ยนชื่อไฟล์เปลี่ยนชื่อ Patchเปลี่ยนชื่อ Patch QueueRename file or directoryเปลี่ยนชื่อ patch %s to:Rename patch queue '%s' toเปลี่ยนชื่อ patch...Rename the entryReopen last closed tabReopen last closed tab groupReplaceแทน hook เดิมReplace existing tag (-f/--force)แทนที่ patch files นี้. Report only the first match per fileRepositoriesRepositoryผิดพลาด RepositoryRepository ID:Repository RegistryRepository Registry ถูกปรับปรุงแล้วปรับแต่ง RepositoryRepository command still runningRepository ถูก lockedRepository name to use in the web interface, and by TortoiseHg as a shorthand name. Default is the working directory.Repository not localRepository status & changesRequire confirmationResolve Conflicts - %sResolved conflictsRestart &BranchRestart Mer&geRestart Merge &withRestart all TortoiseHg applications for the following changes to take effect:Resuming rebase already in progressรุ่นRevertRevert - %sRevert Files...ยกเลิกการเปลี่ยนทั้งหมด?Revert all files to this revisionRevert all working copy changes?Revert file changesRevert file(s) to contents at this revisionRevert files to local or other parent?Revert local file changes?Revert the following files?ยกเลิกกลับมาReverting all files will discard changes and leave affected files in a modified state.

                                                                                                              Are you sure you want to use revert?

                                                                                                              (use update to checkout another revision)Reverting p4 changelist...Review BoardReview ID:Review draft posted to %s Review published to %s รุ่นปรับปรุงRevision #%d (%s) was exported to:

                                                                                                              %s%s%sRevision &DetailsRevision SetRevision Set QueryRevision details context menuRevisionถูกเปลี่ยนเป็น:รุ่นปรับปรุงที่ &ไม่ดีรุ่นปรับปรุงที่ &ดีรุ่นที่ตรง:Revision:Revisions to Match:Toolbar ขวาย้อนไปใช้ รุ่นที่ %dRollback to revision %d (undo %s)?Run after a changegroup has been added via push, pull or unbundle. ID of the first new changeset is in $HG_NODE and last in $HG_NODE_LAST. URL from which changes came is in $HG_URL.Run after a changeset has been created in the local repository. ID of the newly created changeset is in $HG_NODE. Parent changeset IDs are in $HG_PARENT1 and $HG_PARENT2.Run after a changeset has been pulled, pushed, or unbundled into the local repository. The ID of the newly arrived changeset is in $HG_NODE. URL that was source of changes came is in $HG_URL.Run after sending changes from local repository to another. ID of first changeset sent is in $HG_NODE. Source of operation is in $HG_SOURCE.Run before a changegroup is added via push, pull or unbundle. Exit status 0 allows the changegroup to proceed. Non-zero status will cause the push, pull or unbundle to fail. URL from which changes will come is in $HG_URL.Run before a pushkey (like a bookmark) is added to the repository. Non-zero status will cause the key to be rejected. The key namespace is in $HG_NAMESPACE, the key is in $HG_KEY, the old value (if any) is in $HG_OLD, and the new value is in $HG_NEW.Run before collecting changes to send from the local repository to another. Non-zero status will cause failure. This lets you prevent pull over HTTP or SSH. Also prevents against local pull, push (outbound) or bundle commands, but not effective, since you can just copy files instead then. Source of operation is in $HG_SOURCE. If "serve", operation is happening on behalf of remote SSH or HTTP repository. If "push", "pull" or "bundle", operation is happening on behalf of repository on same system.Run before listing pushkeys (like bookmarks) in the repository. Non-zero status will cause failure. The key namespace is in $HG_NAMESPACE.Run before starting a local commit. Exit status 0 allows the commit to proceed. Non-zero status will cause the commit to fail. Parent changeset IDs are in $HG_PARENT1 and $HG_PARENT2.Running at %sกำลังทำงาน...RussianS&ync ToolbarS&ynchronizeSMTP HostSMTP PasswordSMTP PortSMTP TLSSMTP Usernameคำสั่ง SSHSSL error: %sSSL: Server certificate verify failedSSL: unknown error %s:%sSa&ve Current Sync Paths on Exitเก็บเก็บใน GlobalSave Open Repositories on E&xitเก็บ Pathเก็บก่อนแก้ไข?Save current URL under an aliasส่งข้อผิดพลาดไปที่Save file as it appeared at this revisionเก็บข้อมูลไว้ที่เก็บ hgweb configเก็บใน RepoScan &Remote Repositoriesค้นประวัติการค้นหาค้นในข้อความที่เลือกไว้ได้กำลังทำการค้นหาSearch commit message, user name, and names of changed files for string.Search file revisions for patternsค้นทั้งหมด ประวัติด้วยกำลังค้นกำลังค้น...Second parent for all changesets in set, or the working directory.Secret MQ PatchesSecure HTTPS Connectionความปลอดภัยความปลอดภัย: เลือก&ทั้งหมดSelect &Noneเลือก Destination FileSelect Destination FolderSelect Directory containing patchesเลือก Repositoryเลือก Source ไฟล์เลือก Source Folderเลือกเครื่องมือ:Select User Certificate Chain FileSelect User Certificate Key FileSelect a GUI location to edit:เลื่อก repository นี้เพื่อ เพิ่มเป็น subrepoSelect branch of merge commitSelect bundle fileเลือก destination repositorySelect if TortoiseHg will show a target combo in the sync toolbar.

                                                                                                              • auto: The default. Show the combo if more than one target configured.
                                                                                                              • always: Always show the combo.

                                                                                                              Default: autoSelect patch folderSelect patchesSelect post-pull operation for this repositoryเลือก repository directory เพื่อเพิ่มSelect repository directory to openเลือก source repositorySelect the initial revision that will be selected when opening a repository. You can select the "current" (i.e. the working directory parent), the current "tip" or the working directory ("workingdir"). Default: currentSelect the initial widget that will be shown when opening a repository. Default: revdetailsSelect the revisions that will be pushed by default, whenever you click the Push button.

                                                                                                              • all: The default. Push all changes in all branches.
                                                                                                              • branch: Push all changes in the current branch.
                                                                                                              • revision: Push the changes in the current branch up to the current revision.

                                                                                                              Default: allเลือกเปลี่ยน toolbar or menuSelect when TortoiseHg will show a prompt to activate a bookmark when updating to a revision that has one or more bookmarks.

                                                                                                              • auto: Try to automatically activate bookmarks. When updating to a revision that has a single bookmark it will be activated automatically. Show a prompt if there is more than one bookmark on the revision that is being updated to.
                                                                                                              • prompt: The default. Show a prompt when updating to a revision that has one or more bookmarks.
                                                                                                              • never: Never show any prompt to activate any bookmarks.

                                                                                                              Default: promptSelect when the working directory status list will be refreshed:
                                                                                                              - auto: [default] let TortoiseHg decide when to refresh the working directory status list.
                                                                                                              TortoiseHg will refresh the status list whenever it performs an action that may potentially modify the working directory. This may miss any changes that happen outside of TortoiseHg's control;
                                                                                                              - always: in addition to the automatic updates above, also refresh the status list whenever the user clicks on the "working dir revision" or on the "Commit icon" on the workbench task bar;
                                                                                                              - alwayslocal: same as "always" but restricts forced refreshes to local repos.
                                                                                                              Default: autoเลือกเวลาให้คำสั่งทำงานSelect whether you want to have a single workbench window. If you disable this setting you will get a new workbench window everytime that you use the "Hg Workbench" command on the explorer context menu. Default: TrueSelected changeset pair not relatedส่ง &EmailSend changesets as Hg patchesSend single binary bundle, not patchesกำลังส่ง EmailServerServer Repository IDServersSet &Guards...Set Ancestryระบุ วัน:Set Logicระบุ username:Settin&gsการตั้งค่าไฟล์ติดตั้ง:Several characters would be lost.Several icons are courtesy of the TortoiseSVN and Tango projectsSh&ow Repository RegistryShelfShelf clearedShelf ถูกลบShelf: %sShellShelve - move local changes to a patchShelve ChangesShould new tabs be open next to the current tab? If False new tabs will be open after the last tab. Default: Trueแสดง &Authorแสดง วันที่Show &Patch QueueShow &Pathsแสดง รุ่น&Revisionแสดง About Dialogแสดง Conso&leรายละเอียดแสดงเส้น Familyแสดง Functionแสดง Iconแสดงปัญหาแสดงปัญหา...แสดง Loglog แสดงผลแสดงรุ่นและรายละเอียดShow S&hort PathsShow a full directory path of the repository in the dialog title instead of just the root directory name. Default: Falseแสดงทั้งหมดShow all version-controlled files in tree viewShow changes from first parentShow changes from second parentShow files changed by this commitShow full authorname in Logview. If not enabled, only a short part, usually name without email is shown. Default: FalseShow indirect revision dependency on the revision graph when filtered by revset. Default: True

                                                                                                              Note: Calculating family line may be slow in some cases. This option is expected to be removed if the performance issue is solved.Show tabs along the side of the bottom half of each repo widget allowing one to switch task tabs without using the toolbar. Default: offShow tags at start of commit message.แสดง history ของไฟล์ที่เลือกไว้Show which function each change is in. Default: Falseแสดง/ซ่อน hidden changesetsSig&n...Sign - %sSign even if the sigfile is modified (-f/--force)Signature ได้ถูกเพิ่มแล้วSingle Workbench WindowขนาดSize (KB)หลังจาก commit ไม่ต้องมาที่หน้าการยืนยันSkipping %s, unable to readSome of the files that you have selected are of a size over 10 MB. You may make more efficient use of disk space by adding these files as largefiles, which will store only the most recent revision of each file in your local repository, with older revisions available on the server. Do you wish to add these files as largefiles?จัดเรียง ตาม &ชื่อจัดเรียงตาม &PathSort set by keys. The default sort order is ascending, specify a key as "-key" to sort in descending order.จัดเรียง group โดย full pathจัดเรียง group ตาม short nameต้นฉบับSource ไม่มี.ต้นฉบับ:South-Eastern EuropeSouthern EuropeSpace separated list of branch names and colors of the form branch:#XXXXXX. Spaces and colons in the branch name must be escaped using a backslash (\). Likewise some other characters can be escaped in this way, e.g. \u0040 will be decoded to the @ character, and \n to a linefeed. Default: None (leave blank)Space separated list of shell operations you would like to be performed immediately, without user interaction. Commands are "add remove revert forget". Default: None (leave blank)Space separated list of tags that will not be shown. Useful example: Specify "qbase qparent qtip" to hide the standard tags inserted by the Mercurial Queues Extension. Default: None (leave blank)ระบุชื่อของ new shelfSpecify the command to launch your preferred terminal shell application. If the value includes the string %(reponame)s, the name of the repository will be substituted in place of %(reponame)s. Similarly, %(root)s will be the full path to the repository. (restart needed)
                                                                                                              Default, Windows: cmd.exe /K title %(reponame)s
                                                                                                              Default, OS X: not set
                                                                                                              Default, other: xterm -T "%(reponame)s"Specify the number of spaces that tabs expand to in various TortoiseHg windows. Default: 8Specify the path to GPG. Default: gpgSpecify the target filesystem where TortoiseHg monitors changes. Default: localonlySpecify visual diff tool, as described in the [merge-tools] section of your Mercurial configuration files. If left unspecified, TortoiseHg will use the selected merge tool. Failing that it uses the first applicable tool it finds.Specify visual editor, as described in the [editor-tools] section of your Mercurial configuration files. If left unspecified, TortoiseHg will use the first applicable tool it finds.Specify which task buttons you want to show on the task toolbar and in which order.
                                                                                                              Type a list of the task button names. Add separators by putting "|" between task button names.
                                                                                                              Valid names are: log commit sync grep and pbranch.
                                                                                                              Default: log commit grep pbranch | syncSpecify your preferred user interface language (restart needed)StartStart a new patch branchรุ่นแรกเริ่ม web server สำหรับ repository นี้สถิติสถานะStatus File List Toolbarสถานะ:ยุติหยุดการทำงานปัจจุบันหยุดแล้วStrikeStrip - %sStrip:StripesStripping Mercurial header removes username and parent information. Only useful if recipient is not using Mercurial (and does not like to see the headers).StyleSub menu items:Subject:Submitting p4 changelist...Subrepo '%s' has a non trivial default sync URL:

                                                                                                              %s

                                                                                                              Replace it with the following URL?:

                                                                                                              %sSubrepo ถูกเพิ่มในไฟล์ o .hgsubSubrepo ถูกสร้าง และถูกทำให้เป็น initial revision.Subrepo initialized to revision:Subrepo may be damaged or inaccessible.Subrepo ถูกถอดออกจาก repository.Subrepo สถานะคือ:Subrepo statesSubrepo ไม่ได้มีการเปลี่ยนแปลง.Subrepository มีอยู่แล้วไม่พบ SubrepositorySubrepository not found in the working directory.Subrepository ถูกลบออกจาก .hgsub แล้วSubversion:สำเร็จSuccessors:Suggested length of commit message lines. A red vertical line will mark this length. CTRL-E will reflow the current paragraph to the specified line length. Default: 80สรุป (รายละเอียดบรรทัดแรก)ความกว้าง ของ Summary Lineสรุป:สลับ source and destinationSyncSync BookmarksSynchronizeSynchronize with dragged repositorySynchronize with remote repositorySyntax HighlightingSystem CacheTab WidthTab cannot exitTag '%s' has been addedTag '%s' has been movedTag '%s' has been removedTag - %sTag:Tagged:แทกส์:Take &OtherTar ที่ย่อโดยใช้ bzip2Tar ที่ย่อโดยใช้ gzipTar archivesTarget ComboTarget GroupsTarget PeopleTarget:Task TabsTask Toolbar OrderTaskbarTemporarily disable configured HTTP proxyไฟล์ Temporary ถูกลบเมื่อ dialog นี้ปิดยกเลิกโดยผู้ใช้ทดสอบรุ่นนี้แล้วรายงาน (ดี/ไม่ดี/ข้ามไปก่อน)การแปลไม่สำเร็จText files (*.txt)Textual description of the repository's purpose or contents.ไทย.hgsub มี:

                                                                                                              %s บรรทัด อยู่แล้วการเปลี่ยนแปลง %s และ unmerged parents ทั้งหมดจะถูกยกเลิก. แน่ใจว่าต้องการ?ไม่สามารถดำเนิน การคำสั่ง "%s" ได้.คำสั่ง "%s" ไม่สำเร็จ (code %d).คำสั่งกำลังจะดำเนินการ The default repository id for this repo on the review board serverThe destination "%s" already exists as a file!The destination "%s" already exists as a folder!The destination must be within the repository tree.The directory "%s" ไม่ว่าง! ต้องการเขียนทับ?The directory where the command will be executed. If this is not set, the root of the current repository will be used instead. You can use the same {VARIABLES} as on the "Command" setting. The exception error message was:

                                                                                                              %s

                                                                                                              มีไฟล์ "%s" อยู่แล้ว! ต้องการเขียนทับ?The following error message was returned: "%s" Please check that the command path is valid and that it is a valid applicationThe following error message was returned: %sชื่อของ hook ต้องไม่มีช่องว่าง tabs หรือ '='ชื่อของ hoook ต้องไม่มีช่องว่างThe maximum size file (in KB) that TortoiseHg will show changes for in the changelog, status, and commit windows. A value of zero implies no limit. Default: 1024 (1MB)The named bookmark or all bookmarks.The named tag or all tags.The number of revisions to read and display in the changelog viewer in a single batch. Default: 500The phase of new commits. Default: draftคำสั่งที่ถูกเลือกไม่มีThe selected folder:

                                                                                                              %s

                                                                                                              is not inside the target repository.

                                                                                                              This may be allowed but is greatly discouraged.
                                                                                                              If you want to add a non trivial subrepository mapping you must manually edit the .hgsub filerepository นี้:

                                                                                                              %s

                                                                                                              เปิดไม่ได้!The selected repository:

                                                                                                              %s

                                                                                                              is already a subrepository of:

                                                                                                              %s

                                                                                                              as: "%s"The selected revision (%s) has a bookmark on it called "%s".

                                                                                                              Do you want to activate it?
                                                                                                              You can disable this prompt by configuring Settings/Workbench/Activate BookmarksThe selected revision (%s) has %d bookmarks on it.

                                                                                                              Select the bookmark that you want to activate and click OK.

                                                                                                              Click Cancel if you don't want to activate any of them.

                                                                                                              You can disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                                                                              ไม่สามารถ imported revision (rev #%d) ที่ถูกเลือกนี้ เพราะ it is not a descendant of qparent (rev #%d)The selected subrepo:

                                                                                                              %s

                                                                                                              has been added to the .hgsub file of the repository:

                                                                                                              %s

                                                                                                              Remember that in order to finish adding the subrepo you must still commit the changes to the .hgsub file in order to confirm the addition of the subrepo.The selected subrepository has been removed from the .hgsub file.

                                                                                                              Remember that you must commit this .hgsub change in order to complete the removal of the subrepository!ไฟล์ subrepository ที่ถูกเลือก ไม่พบใน ไฟล์.hgsub.

                                                                                                              อาจเป็นเพราะถูกเอาออกไปแล้ว?The set of all parents for all changesets in set.The source must be within the repository tree.The subrepository is dirty.The tool icon. You can use any built-in TortoiseHg icon by setting this value to a valid TortoiseHg icon name (e.g. clone, add, remove, sync, thg-logo, hg-update, etc). You can also set this value to the absolute path to any icon on your file system.The tool label, which is what will be shown on the repowidget context menu. If no label is set, the tool name will be used as the tool label. If no tooltip is set, the label will be used as the tooltip as well.ชื่อเครื่องมือต้องไม่มีช่องว่างเลยชื่อครื่องมื่อไม่ให้มีช่องว่างThe tooltip that will be shown on the tool button. This is only shown when the tool button is shown on the workbench toolbar.working directory ได้ถูก ผนวกแล้ว. ทำต่อ or ยกเลิก ที่ผนวกนี้.There are existing patch files for %d revisions (%s) in the selected location (%s). There are merge conflicts to be resolvedThere are no configured sync paths. Open the Synchronize tab to configure them.There are no conflicting file merges.There are no file changes to viewThere are no files that may have been renamedThere is already an existing folder with that same name.มี hook เดิมอยู่แล้ว %s.%s. จะแทนที่ไหม?ไม่เหลือ rollback transactionThg - TortoiseHg's GUI tools for Mercurial SCM (Hg) This appears to be a binary file.This error will not be shown again until you restart the workbenchThree-way Merge ToolTitleถึงTo finish merging, you must commit the working directory. To cancel the merge you can update to one of the merge parent revisions.To graft destinationTo rebase destinationถึง:สลับการแสดงของ text search barToggle filtering of non-matched changesetsสลับ graft relations visibilityToggle parent to be used as the base revisionTolerate non-conflicting local changes (--keep-changes)เลือกแถวมากไปสำหรับเมนูTool &Resolveป้ายชื่อ เครื่องมือTool launch failureชื่อเครื่องมือเครื่องมือเครื่องมือ แสดง selected locationคำแนะนำเครื่องมือTop menu items:TortoiseHg Bookmark Syncรายงานข้อผิดพลาดของ TortoiseHgTortoiseHg Command DialogTortoiseHg CommitTortoiseHg Dialogs (version %s), Mercurial (version %s) TortoiseHg ผิดพลาดTortoiseHg New Shelf NameTortoiseHg Overlay Icon ServerTortoiseHg Promptค้น TortoiseHgการติดตั้ง TortoiseHgTortoiseHg Shelve - %sTortoiseHg Web ServerTortoiseHg WorkbenchTortoiseHg ได้สร้างไฟล์ .hgignore ใหม่. ต้องการที่จะเพิ่มใน source code control repository ไหม?Traditional ChineseTransplant:Trigger revision set queryพยายาม refreshing repository.TurkishประเภทU&nbundle...UI LanguageURLURLError: %sUkrainianbackout ไม่ได้จัดเก็บ history แบบย่อไม่ได้Unable to create a Mercurial.ini fileสร้าง config file ไม่ได้ไม่สามารถลบ %d file หรือ folderUnable to determine pending changesetsUnable to determine working copy revision ไม่พบ changesetmerge ไม่ได้Unable to merge chunksUnable to parse p4pending outputUnable to read fileUnable to read repository statusไม่สามารถเอาออกลบ URL ออกไม่ได้ไม่อนุญาต ให้เอา file %s ออก,Unable to save after commit pushไม่สามารถเก็บ URLUnable to save authenticationUnable to save auto include listUnable to save post pull operationUnable to save recurse in subrepos.ไม่สามารถใช้ชื่อนี้ (username)Unable to show subrepository filesคำสั่งนี้ไม่สามารถเริ่มงานได้:ไม่สามารถแปล input ไปยัง local encoding.ไม่สามารถแปลงข้อความเป็นรหัสที่ใช้อยู่ ควรทำให้ environment variable เป็น HGENCODING ทับ ที่แปลไม่ได้ ด้วย "?"? ไม่สามารถปรับปรุง repository nameเขียนไฟล์ .hgignore ไม่ได้เขียน configuration file ไม่ได้Unable to write diff fileเขียนไฟล์ไม่ได้Unapply all patchesUnapply one patchUnbundleUncheckUncheck all filesUncheck to consider all revisioned files for copy sourcesUncommited merge - please select a parent revisiontar ที่ยังไม่ถูกย่อUncompressed zip archiveUnderlineUndo close other tabsUndo close tabยกเลิก commit ก่อนหน้านี้?ยกเลิก transaction ล่าสุด?Undo most recent commit (%d), preserving file changes?UnicodeUnified ChineseUnknown revision!Unresolved conflictsUnresolved conflicts remain. Are you sure?Unsaved changes will be lost. Do you want to reload?Unsupported repository type (%s)Unversionedปรับปรุงปรับปรุง - %sปรับปรุง - pull, หลังจากนั้นพยายามปรับปรุงปรับปรุง Iconsปรับปรุง Reviewปรับปรุง icons สำหรับ repository นี้Update on incomingUpdate or create a path alias called '%s' on all subrepos, using this URL as the base URL, appending the local relative subrepo path to itปรับปรุง paths ของ subrepoUpdate the fields of this existing requestUpdate to:Update working directoryUpdate working directory or switch revisionsปรับปรุง...UpdateOrRebase - pull, then try to update or rebaseUpdateOrRebase - use rebase extension (rebase is not active!)กำลังปรับปรุง repository registryแนะนำว่าควรใช้ TortoiseHg รุ่นล่าสุดUse English backout messageใช้ ภาษาอังกฤษ ในการ commit ข้อความแสดงแบบย่อใช้วันปัจจุบันใช้ custom commit ข้อความ:Use extended (git) patch formatUse git extended diff header format. Default: Falseใช้ไฟล์ขนาดใหญ่Use my user name instead of graft committer user nameใช้ proxy serverUse pull protocol to copy metadataผู้ใช้User AuthenticationUser CacheUser Certificate ChainUser Certificate KeyUser authentication data should be associated with the hostname using the security dialog.User name to authenticate with review boardผู้ใช้:UsernameUsername to authenticate to mail server withVerify backout revision and ensure your working directory is clean.ตรวจที่ๆจะผนวกและให้แน่ใจว่าworking directory เรียบร้อย.Verify with Certificate Authority certificates (best)Verify with stored host fingerprint (good)แสดงไฟล์Vietnameseแสดงไฟล์แบบView O&therView change as unified diff outputView change history in repositoryView change history of selected filesView change in context of fileแสดงการเปลี่ยนแปลงจากเครื่องมือ diff นอกโปรแกรมView changes using GUI diff toolView file as it appeared at this revisionView file changes in external diff toolView the repository's settingsVisual DiffVisual Diff ToolVisual Diff...Visual Diffs - Visual EditorVisual diff between resolved file and first parentVisual diff between resolved file and second parentVisual diff...Visual diffs are not supported for files in subrepositories. They will not be shown.Visual three-way diffคำเตือนWarning: affects all Tortoises, logoff required after changeถูกเปลี่ยนจากWeb ServerWebconfWestern Europeจะทำอะไรเอ่ย? When committing, require that a reference to an issue be specified. If enabled, the regex configured in 'Issue Regex' must find a match in the commit message.When enabled, automatically show the Output Log when the command is run. Default: False.When set to 'auto', mq will automatically use git patches when required to avoid losing changes to file modes, copy records or binary files. If set to 'keep', mq will obey the [diff] section configuration while preserving existing git patches upon qrefresh. If set to 'yes' or 'no', mq will override the [diff] section and always generate git or regular patches, possibly losing data in the second case. Default: autoWhen to ask the user to confirm the update of the local "projrc" configuration file when the remote projrc file changes. Possible values are:

                                                                                                              • always: [default] Always show a confirmation prompt before updating the local .hg/projrc file.
                                                                                                              • first: Show a confirmation dialog when the repository is cloned or when a remote projrc file is found for the first time.
                                                                                                              • never: Update the local .hg/projrc file automatically, without requiring any user confirmation.
                                                                                                              Whether to allow pushing to the repository. If empty or not set, push is not allowed. If the special value "*", any remote user can push, including unauthenticated users. Otherwise, the remote user must have been authenticated, and the authenticated user name must be present in this list (separated by whitespace or ","). The contents of the allow_push list are examined after the deny_push list.Whether to deny pushing to the repository. If empty or not set, push is not denied. If the special value "*", all remote users are denied push. Otherwise, unauthenticated users are all denied, and any authenticated user name present in this list (separated by whitespace or ",") is also denied. The contents of the deny_push list are examined before the allow_push list.Whether to require that inbound pushes be transported over SSL to prevent password sniffing.เลือก template map style เพื่อใช้งานWhite&spaceWork on patch queue (--mq)WorkbenchWorkbench Log ColumnsWorkbench custom toolbarWorking CopyWorking DirectoryWorking Directory (merged)direcory ปัจจุบันWorking directory is not clean! View changes...สถานะของ directoryWrap searchWrite bundleWrite diff fileWrite patch series (bundle) descriptionYou are trying to move the phase of revision %d backwards, from "%s" to "%s". However, "%s" is a lower phase level than "%s". Moving the phase backwards is not recommended. For example, it may result in having multiple heads if you modify a revision that you have already pushed to a server. Please be careful!You can change the icon set from TortoiseSVN's Settingsเยี่ยมชมเราได้ที่นี่You cannot merge a revision with itselfYou have authentication info configured for this host and inside this URL. Remove authentication info from this URL?You have marked all rejected patch chunks as resolved yet you have not modified the file on the edit panel. This probably means that no code from any of the rejected patch chunks made it into the file. Are you sure that you want to leave the file as is and consider all the rejected patch chunks as resolved? Doing so may delete them from a shelve, for example, which would mean that you would lose them forever! Click Yes to accept the file as is or No to continue resolving the rejected patch chunks.You have multiple renames selected for destination file: %s. Aborting!You have selected one or more files that have been modified. By default, these files will not be removed. What would you like to do?You likely need to refresh this applicationYou may continue or start the graftดำเนินการย่อข้อมูลYou may continue the graftดำเนินการ rebase ต่อต้องใส่ patch nameต้องระบุตัวตน เพื่อใช้ MercurialYou must provide revisions to graftต้องให้ค่า source และ destYou must provide the path to a fileต้องระบบคำสั่งก่อนเริ่มทำงานต้องใส่ชื่อเครื่องมือระบบ ประเภทของ hook ให้ถูกต้องTortoiseHg สมบูรณ์ล่าสุดYour current working revision (%d) will be removed by this rollback, leaving uncommitted changes. Continue?ย่อแบบ ZIp ใช้ deflateZip archives[--after PATCH] PATCH...[Code: %d][WARNING] Incomplete changed subrepository. Update to this revision to pull it.[WARNING] Incomplete subrepo. Update to this revision to pull it.[WARNING] Invalid subrepo revision ID: %s [WARNING] Missing changed subrepository. Update to this revision to clone it.[WARNING] Missing subrepo. Update to this revision to clone it.[คำสั่งเสร็จสมบูรณ์ %s][คำสั่งถูกขัดจังหวะ %s][คำสั่ง ตอบกลับมาด้วย code %d %%s][คำสั่งถูกยกเลิกโดยผู้ใช้ %s][non-existant][original][working copy]a revision to posta revision to sendยกเลิก: abort: %s abort: %s! ยืนยันการเปลี่ยนadd diffstat output to messagesเพิ่มแล้วall revisions converted from subversionalways fork GUI processattachbasic commands: bodybookmark: branch: bundle file to previewcan not read file "%s". Ignored. cannot move applied patchescannot move into applied patchescannot specify both -k/--query and filenameschangeset %d:%schangeset to view in diff toolchangeset which represents converted svn revisionchangeset: %schangeset: %s (not found on subrepository)cleanclone only the specified branchอายุAuthorBranchการเปลี่ยนแปลงConverted Fromรายละเอียดชื่อไฟล์Graphแทกส์ ล่าสุดเวลาท้องถิ่นNodePhaseRevแทกส์UTC Timeการเรียงคำสั่งผิดพลาด : %sCommitcorrupted command result: %rdefaultdiffstatdiscard uncommitted changes (no backup)display help and exitdo not back up stripped revisionsdo not commit the sigfile after signingdo not fork GUI processdo not modify working copy during stripenable additional outputenable debugging outputeol is incompatible with win32textผิดพลาดขณะสั่งการ exec mode has been setexec mode has been unsetไม่สามารถถอดรหัสคำสั่ง : %sfailed to encode input: %sfailed to fork GUI process: %s ไม่สามารถเริ่มคำสั่ง field to give initial focusfile has been deleted, refreshfile has been modified, refreshไฟล์ทั้งหมดไม่มีfilling (%d)filterglobal options:grep: %s grep: invalid match pattern: %s hggit packaged with thghgsubversion is incompatible with perfarcehgsubversion packaged with thghint:hint: ประวัติignore case during searchเพิกเฉยimport to the patch queue (MQ)ในอนาคตinclude the specified changesetinitial search patterninlineinotify is not supported on this platformข้อความ "hello" ไม่ถูกต้อง : %rinvalid argumentsinvalid line number: %sinvalid patch position specifiedkeep original branch nameskeep original changesetslaunch visual diff toolรายการคำสั่ง: locallsprof not available - install from http://codespeak.net/svn/user/arigo/hack/misc/lsprof/make the signature localmake the tag localmerge with old dirstate parent after backoutmethodหายมีการแก้ไขmove after the specified patchระบุ 'type' in styleระบุ repositoryname of the hgweb config file (DEPRECATED)name of the hgweb config file (serve more than one repository)needs merge of %i heads ต้องการผนวก กับ %s needs merge with %s (through %s) needs update of diff base to tip of %s no "runcommand" capabilityno command specifiedno commands defined no guardsไม่เหมือน : %sno outgoing changesetsno outgoing changesets in current branch (%s) / %d in totalno outgoing changesets up to current revision (#%d) / %d in totalno outgoing changesets up to revision #%d / %d in totalไม่มี repo ที่ no revisions specifiednotify the shell for paths givenขณะนี้null revision (i.e. remove file(s))only one new bookmark name allowedopen a new workbench windowopen the bookmark sync windowopen to lineเปิด...option --config may not be abbreviated!options: parent to choose when backing out mergeรหัสผ่าน patch %s not in seriesperfarce is incompatible with hgsubversionprint command execution profileพิมพ์ licenseprocess exited unexpectedly with code %dpull: %s push: %sread file list from fileread file list from file encoding utf-8rebase from the specified changesetrebase onto the specified changesetrecord datecode as commit daterecord user as committerลบ tagลบสถานะ cacheลบ working directoryลบแล้วแทน tag ที่มีอยู่ไม่พบ repository %srepository root directory or symbolic path namerequires a single filenamerev: %d (%s)revisionrevision %d's first parent (i.e. revision %d)revision %d's second parent (i.e. revision %d)revision to annotaterevision to archiverevision to backoutrevision ที่แสดงrevision ที่ผนวกrevision to striprevision to tagrevision เพื่อปรับปรุงrevision, tag or branch to check outrevisions %d:%s to %d:%srevisions to graftrevisions to prunerevisions to view in diff toolsearch for a given text or revsetselect the specified revisionไฟล์ที่ถูกเลือกsend patches as attachmentssend patches as inline attachmentssend patches as part of the email bodyset/override config option (use 'section.name=value')show files without changesshow ignored filesshow the contents of the status cache (no update)side-by-side การเปรียบเทียบของ revisionssign even if the sigfile is modifiedstart debuggerยืนยันMQ Actionย้อนกลับสถานะsubreposuppress outputsync command already runningCommitConsole logPatch Branchรายละเอียด Revisionค้นSynchronizethe clone will include an empty working copy (only a repository)the key id to sign withthe revision to showthg %s: %s thg aboutthg add [FILE]...thg annotatethg archivethg backout [OPTION]... [[-r] REV]thg bisectthg bookmarks [-r REV] [NAME]thg clone [OPTION]... [SOURCE] [DEST]thg commit [OPTIONS] [FILE]...thg debugblockmatcherthg debugbugreport [TEXT]thg debugconsolethg debuglighthgthg debugruncommand -- COMMAND [ARGUMENT]...thg drag_copy SOURCE... DESTthg drag_move SOURCE... DESTthg email [REVS]thg filelog [OPTION]... FILEthg forget [FILE]...thg graft [-r] REV...thg grepthg guessthg help [COMMAND]thg hgignore [FILE]thg import [OPTION] [SOURCE]...thg init [DEST]thg log [OPTIONS] [FILE]thg manifest [-r REV] [FILE]thg merge [[-r] REV]thg postreview [-r] REV...thg prune [-r] REV...thg purgethg rebase -s REV -d REV [--keep]thg rejects [FILE]thg remove [FILE]...thg rename [SOURCE] [DEST]thg repoconfigthg resolvethg revdetails [-r REV]thg revert [FILE]...thg rupdate [[-r] REV]thg serve [--web-conf FILE]thg shellconfigthg shelvethg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]thg status [OPTIONS] [FILE]thg strip [-k] [-f] [-n] [[-r] REV]thg sync [OPTION]... [PEER]thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]thg thgstatus [OPTION]thg update [-C] [[-r] REV]thg userconfigthg version [OPTION]thg: %s thg: command '%s' is ambiguous: %s thg: unknown command '%s' timed out waiting for messagetimed out while reading: %r...unexpected response on required channel %rไม่ทราบunknown patch to move specifiedunknown revision!unrecognized profiling format '%s' - Ignored unrecognized response: %sunsupported URL: %sปรับปรุง repos ทั้งหมดใน dir ปัจจุบันuse "thg -v help %s" to show global optionsuse "thg -v help%s" to show aliases and global optionsuse "thg help" for the full list of commandsuse "thg help" for the full list of commands or "thg -v" for detailsuse as commit messageuse only one form to specify the revisionuse pull protocol to copy metadataใช้ uncompressed transfer (fast over LAN)รุ่น %sรอจนกระทั่ง ticks ครั้งที่สองผ่านไปจะยุติwin32ill: cannot create window for messageswin32ill: interrupted while stopping message loop win32ill: unsupported platform: %s win32text is incompatible with eolยืนยันการเปลี่ยนwith Mercurial-%s, Python-%s, PyQt-%s, Qt-%sกำลังเปลี่ยนแปลงClean&None././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/tr/0000755000000000000000000000000014742203610014200 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1314144 tortoisehg-6.9/locale/tr/LC_MESSAGES/0000755000000000000000000000000014742203610015765 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033566.0 tortoisehg-6.9/locale/tr/LC_MESSAGES/tortoisehg.mo0000644000000000000000000000543514742203536020527 0ustar00rootroot0%). 2?N k u '>CU Zd lx  " !C er$  '<BJ]o -$  $ / > E f k t {      3 2! T !c !   5   &Cancel&No&YesAddArchive - %sArchive types:Bookmark '%s' does not existBookmark:Browse...Bzip2 tar archivesCloseCommitConfirm ExitConfirm New BranchConfirm OverwriteDestination path:Directory of filesDiscard current commit message?Do not update the new working directoryExitGzip tar archivesMoveNew Name:ParentsPatch QueuePatch:Please enter commit messageQNewQRefreshRefreshRemote command:RemoveRenameRevision:Select Destination FileSelect Destination FolderSelect Source FolderTar archive compressed using bzip2Tar archive compressed using gzipTar archivesUncompressed tar archiveUncompressed zip archiveUndo last commit?Use proxy serverZip archive compressed using deflatebranch: statusProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: Turkish POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2010-10-08 16:52+0000 Last-Translator: can kaçan Language-Team: Turkish MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Launchpad-Export-Date: 2019-07-17 05:45+0000 X-Generator: Launchpad (build 19009) &İptal&Hayır&EvetEkleArşiv - %sArşiv tipleri:'%s' yer imi girilmemişYer imiGözat...Bzip2 tar arşivleriKapatGönderÇıkışı OnaylaYeni Dalı OnaylaÜzerine YazılsınHedef yer:Dosyaların dizinleriŞimdiki işleme mesajından vazgeçilsin mi?Yeni çalışma dizinini güncellemeÇıkGzip tar arşivleriTaşıYeni İsim:EbeveynlerPaket KuyruğuPaket:Lütfen işleme mesajı giriniz.QNewQRefreshYenileUzaktan komut:KaldırYeniden AdlandırDeğişiklik:Hedef Dosyayı seçHedef Dizini SeçKaynak dosyayı seçbzip2 kullanılarak sıkıştırılmış tar arşivgzip kullanılarak sıkıştırılmış tar arşivTar arşivleriSıkıştırılmamış tar arşivSıkıştırılmamış zip arşivSon işleme geri alınsın mı?Proxy sunucu kullanDeflate kullanılarak sıkıştırılmış zip arşivDal: durum././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/uk/0000755000000000000000000000000014742203610014172 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1314144 tortoisehg-6.9/locale/uk/LC_MESSAGES/0000755000000000000000000000000014742203610015757 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033566.0 tortoisehg-6.9/locale/uk/LC_MESSAGES/tortoisehg.mo0000644000000000000000000100312214742203536020511 0ustar00rootroot H<</=&m ʑ (I _i~ ܒ$()CmWYar;”A7]:Е$). 2 @M\w ƖҖ   ASj r#-ė@3 I2U ˜ݘ  3Jbw ə ҙޙ   *I Q\cjq ˚Ԛܚ/Get ʛ ֛  0 >IPXo  ʜ՜  +:K]dk Ν ԝ ޝ %6L Sah {  Ǟ֞͞ %= FR bnv ̟  $/5IO_g nx  ɠϠޠ    (6H Q]fl '֡#8\v ΢ߢ ),8Je&ڣ&:CU;դ- 8Qk ٥$''67^33ʧ(',F#sب  %%=&c Ω 2Gd=y ժ (- 3>?"~0ҫ !! C)N)x=BR])>ڭ)HC#2D cq x0ʯگ"2H co v:;ݰ'*A l z!Y +=LG`:484m dz",!E=g ƴӴڴ޴yI  -Jg& ʸ"ظ  "+? S]q +>U gBrκպ+31e!9)<"_+y> %6E,]"!ܽ.(-W /[˾4'*\.611+QX}",>kJ\e$} &:A Zek q"&  #4GPVfy D,/I?yiHM_C8=|1 ]ov  ) 8 B P&\" '+' S$`V6#Gk.M #/ETo  !. = JX ly" #Cgo w.3 * 9&Fm5* 5 @#[..:8Qnu+%K/q  6 DQu`9>.V.,& *6K \hz*)"5K'i  2 DQm'O#Pt +(T nz    -<KZi*|+ $-9-g1.#2O'gA3!M72'@1@8r7^B)W   $. AL _ m!{  39LC^/ %6Qkq)B[% 454j(  +6 b%( -&2T  $"84[;1 X+KOUAY + 8 @Mm"M$A8z:;51<g<3K4*)%,<EM!j<& ~   & ,7 R`p Y /  &2O &. =GMIRBc\aagax+M  1I=PFMmEL 1= Sav   * ".8G !;6N^xe $   YZa+j!   +Q8+   i,         # 7 H  c  n  x  %          * 7  9  E  S a  s ~ 9 (  8u#!&51I{ '   ?(:h) GdEm ))Sr#)% E/S  -B0 ERfv$,* 6Pk0[@F;     2 A KXir   *>Qaq!-=#J((s$!FZn"m(+ 03C[,FW\k,,! . %@ =f  %  3 0!#P!t!IV"k"h $fu$;$%<%%&&&&'#'>'Q'j' ''''''' ' ((((,'(*T( ((( ((( (( ))&)<)Y)s)) ):) ** **+++:.+Hi+G++,,!',I, ],*g,,,,!,&,&-D-\-:x-#-*-!.($.M.\.`.h..m... .. . . . /&/9/!J/l/q/y/ / /;/// //0000G0]0'{0-00001#1)1;1C1 I1S1e1x111111%12-2H2 ]2k2!22222223373<3M3j3|333333 3 333%4-4 442@45s444 4'4 5Z*55F5 55)606N6V6h6x6666!6$67/767!>7`7{77 77777778#$8 H8!i88888M8F93f99999 9 9 : ::,:E:`:{::::::!:";$4; Y; f;q;;;;; ;;v <<<<<<<==M%=#s==== ===!= >/>+C>&o>>>>>? ? ????]@a@ s@@@@@@@ A A A,A"KA nA |AA A A A A AA A A A%A#B G.MG|G"G#GGG[H[&I$J1JL$OO#P PP&P QQQ-Q5Q DQ QQ [Q eQ sQ}QQ!Q@QQR R &R 4R>R&DRkRqzR R RS S"S1S CS QS]S nS |S SSSSSSyS]T.fTTT!TwTnUYV%V%W5.WdWW W1WW WWX X1XBXI^X Y YlY1ZMZjZqZZZZ4Z[\b]|]Z_%^_S__`va?bbbb$b!c&c-cFcNcScjcrc ycccc0d6dFdOd`kdd,d e'7e _eeeeee1e!!f CfOf Wfcf g-gAgJgfgkg zg#g"gg g ggh h8hRh[h`hhh nh"zh!h h h h hh hii)"i6Lii7iii<i7j4lll|im2m;nUn4n@ o(Koto$pBpc]p(ppq9qb,rr&Psfwt"tvcv1w.Cwrwwx+\y(y}y/zUz/{O@{%{!{-{8|<?|*||4|!|B|A}V}\}_}}}~!~*4~!_~-~7~~    4> Dem}8"<VuĀڀtd xǁ ́ ف  %-SGr&* %5 Lm +ȃ + I"j#"Ʉ&, @a"҅ 92U Ćچ6IQas *ȇ4 ( IU \!h   ƈوd*y ,ȉ 3=3q5Ċ 83X5‹"Ӌ 1ZF+͌ӌ,܌C @M5*č    "!A%c- ֎)'!I ht 23T(}<ؐ  $XÑrB\ 2>W r| ʙC; T `m'}UH#Dh'u"Fd+#;Yt'#Ԡ*##Gfl$, Q^ wOAҢ,MA?#ϣ +K Zet  Τ'4;M R]f!} ,ܥ 18 j*xɦۦ8Ri}çק+>[c'l!'̨' 4M"e/1թ$?_xӪ ٪    =*UΫ֫ #:)Ak Ҭ2Y8,!"D*a>ˮ!'C^s ;A7< t #" =J'R z' *α ('Pb'{##Dz  #0Hai~/Ƴ -.%Ti}ɴٴ$*=P!o"ڵ&5$Zu1$$߶)BZaiyڷ @"c{    Ÿ"Ѹ %Cbx,,I^t }κ޺2M c!mһ 1M ]+h#Լ+3N]r'{ܽ*&.N-`+ܾ6,?Dl)ο") E Pq+2#"&,:gw T\\w"2%$>D!)04-!bK';8R !V- 371k+_/)fY\S<q3/#6;@D^{#16(D(Z & "$&!HP+d5fp-$Z.F2X-7 7*K(v3  - NYq)z 8P dq%3 5Si!{0-9E*3!Km% $@ S?`#'$*O^q".,21_.  # $-BV$\#& #&Cj{&')QXt8$!73K(+3Rhy < + -F[p&$;%N t'  8I] r!'&   'GZ%b;7)#A1e"'.&+83d":!EL^c"tS*+,2XhX'M2uN%.-Lz#87D:VT[bDj9BR,$ 6 .8J"[(~D<) Ij (' +*F.q/3s9x!82; n |f:^?.D#%hSN71i.w?FD]>n(/)!b+K0('<P(*Q!3Ufv`U FbS/#Dh 6A)_)*. |b  *O- 07h,7G1@Q?x2K"~k [ 2u 2   % +" /N /~ 9  7 6  H S  m  y & (  ( & e>  #32 5LS8]C7V{^31Bez=#Bax  (45I2"*dJ+<E6%|)TV!xWhK YY\[]l[& ?35;i+)U,hD7*(7S9^$ !4 V  t  , D =!dB!!!!!!% "3"I"X"*u""("&" #*##*#L#6$t$7%5&A&1(E)})}p*h*W+!f+++2,*I,t,,#,U,!,-/N-3~-8-)-.+.%A.=g.;.;.9/W/j/"/Q/V/$L09q00B<1>1!1&1'2?/28o2j2D3X3)3,4'04JX4%444E4!D57f5)515\57W6-6+6+6+7'A7+i7+727474)8C^828(8O8JN9999d9::L;9<T<g<<<#<0<R =#]=W=;=V>Sl>F>??4G?C|?[?W@rt@p@4XAAA'A&A& B$0B$UB(zB2BYBO0CaCC$C,DDED'DDD D'D1D0E=HEEOExGkHzHIIS/JJJ$JJ K&-K"TKwKK&K&KKKHHL&L:L*L;MFZMM-MM*N +N)LNvNN2N N N3NA!O4cOBO4ODPUPDP8 QYRg=TKTT<UTNUU#U7UV:V#SV2wV(V%V'V'!W%IWoWiW?WR5XSX=XgYaYLYa1Z0ZLZ9[*K[@v[[c[_*\8\\P{]D]9^sK^Q^M_\___>`VY`;`` a a*a9a%Xa#~aa&aaabb,/b\b"|b!b#bEb+cCc9]c?c;c-d0Adrdxddds:eBe2e#$fHf-[f-f6fffNgkg<gS2hh+iDidiwi?ii?iN#jyrjBjO/k(k k$k#k ll/+l5[lSlJlA0mDrmCm3m2/nbnxwnWnHoco"loAoo7o(!pJp^p%spNpepNqXjqq:Cr~r20scs xssttcuv ;vZHv v vMv" w?CwwwJwFx,Yxyx!y"y6yOSyayTzrZzzz H{U{(F|Yo|>|}_}G} >~K~f~ y~+~9~~~ ~+1~3T~'Ђ115-g3 Ƀ 4 #@&d2$#ƅ>υRap*ʼn"4+4`PՋ)&P b mxDrI ʎ+.<ԑ',9^fiŒR/a(e s'>3Z (Ε!6O(`%ʖI2XNF/)oY/ɛGXlxq!W+y*Н)5(Ɵ6 &4,O&|]f NF$: _ mw$'%ڣ+AYay ۨ&Ū:*/*B^z""9ݭ7SmA@Ϯ$A5w# ͯ*گ4QhlA'ivCJ7E=N3ҵ@>϶CR?j%ʷ`bo=Ҹ&,Sr ozW?D$i)9O3<RpýEֽ,#E:i=D#'&N1lD792Yl\=#?a=?Z*z lIg2G$]* %$Ch-~)('0 X0f4326;i($.C"-f/2O5G9}A"V9o"*5?)36]Y$,6@6w,:l.CB"=K!4UV!#% 8E#d7L2!C%e7S>EVE/Xk8J)<th45O pmP3rj}1.1!CEeM#,Pg"  !X.B &'''&O&v3#/ &P-w$  #,Po"xL| 4J3Y#S C:;~K7->HloE%jk4M Yo s~c; '14Q#68+:!f5%&!)@8j 2I,/v7#BVE+8 <(Kt}23-.Kz50)J)5tO2!-FO7$<!0R#r e"2=*p"+$"'<d%d<Us-.FM02~+a#*?GjP<)O8y<8>(TgU,? PCq5 '( .P &   1 8 C Ab : < H *e * C  3 K 6 6B y   $ $ %0?<p05'"<E_P179=qL 8K*Z'4%"*+'+S&%'*iC ' /1P?;&H%cnC/(F\o7 8"+[ x" 0"HCk!" &4P8hH  !%4Zw N*COn$H=6WC+SR/q"2  * !J l 8!'9! a! l!yz! !*"@"O"`""v"."."/"'#$E#$j##T#S$6W$L$<$0%4I%~%''>'XV'';';(,C()p()OQ*9,,0H44T646<7KU77 7 77$7)8H8!g8*888 8A9cC99999:!:Y2:::;;; <&<9D<~<<*<%<) =7="U=#x=(=,=.=!>>\ ?Ni?N?F@N@1A%B`CCHDsDHEIEYE^kE"EE8F @FMF|cF?F G$H$I=I<CJ@J JJ J,J(KFK<VMiN1O6/PfRaSxS/T9U&WrX iY+vYYCYZ Z-Z CZMZ0^ZZZZZ ZOZ B\M\ j\9t\\83]bl]8]X^8a^^!^2^&_*5_P`_/_ ___Z`5ma(aaJa)b+Dbpb;b=b+c3cMc/ic#c+c'c d d)d 9d!Gd(id&dddd e e*e*HeseNe^e+9fef7f#gCCgg<gg;}h3hh{i<j6Xj^jJj;9kul!`mZmmgnr oEo,o?p73qkqCr*LrjwrPs}3t tuw_^xyzh1{d{"{"|}\yM$u:4ooC߂+#TO6Lۃ9(Ob5}.f )+ۆ /dA0qׇRI>*ۈ."QmR~щ) %%*KvI܊%0Me#؋'ތ;5:p čэ)2:CM~̎9KǏ3 G(hC/Ր>#D'hLZݑ*8Ac[ZO\BIJ9l>:0Pk<-$'(Lu&ȖYR&&ӗ90M3~7\G)OyH( +(XT\: $Ej{W7%$]F.ɝ3,.CWrʞqޞP(ܟVc\]>.]`I78?qx33<Q4äUo ťѥjQtئ=M_ " C]c=JBJc[T>6u6$ȫ#v+v$>4z0Ȯٮ'#Ci0O]@&4!C::~ѿ,m:*(B;~pX'PAx[r_TK778Ap6FL0b}8R+lP>()#4 MZG]3(1D?v&9Nfo 6pJ  HD]FIL3S]LG[5   4=S\x 2<, i!v`5U/OhQ>O@(!?JZV=<7zR>GD22   )"6 Y9c#+* *77F~1;.JFZ5%.;,?h?I2Qmb#,U!w=4.KJf5$3>Xa$"&Ah&5mrK_#0BHs HIJZ->BSW+M#SGw16R(F{B>GD".. '8h`/ NNk&00&C$j,".@*Oz!L4,<i6I\n_1>S?4Q%@ Q[py%G!1G cpe) 9 EO e r2~ '9-Lb,66?$W| 3'E'N$v )3$Lq  :*R#};/ >_?h*IKSiF84/m&Mk~]eP[BqJ[;kRg>z(*  8 E Please check that the "thg" command is valid. Caught keyboard interrupt, aborting. aliases: %s (default: %s) (copied from %s) (is a symlink) (is unversioned) (renamed from %s) (was added) (was added, now missing) (was deleted) filtered"%s" is not a folder"%s" is not a valid directory"%s" removed from path history"%s" removed from search history### filter text ###### host certificate fingerprint ###### patch name ###### regular expression ###### regular expression search pattern ###### revision set query ###$FILE_ENCODINGS% Match%d day%d days%d files have merge conflicts that must be resolved%d files were modified on both branches and must be resolved%d hour%d hours%d matches found%d minute%d minutes%d month%d months%d outgoing changesets%d outgoing changesets in current branch (%s) / %d in total%d outgoing changesets to %s%d outgoing changesets up to current revision (#%d) / %d in total%d outgoing changesets up to revision #%d / %d in total%d patches were exported to:

                                                                                                              %s%d pending changelists found%d second%d seconds%d week%d weeks%d year%d years%d%%%dpt%p%%s (hint: %s)%s (pending)%s (submitted)%s - Revision Details (%s)%s - TortoiseHg Workbench%s - TortoiseHg Workbench - %s%s - branch operation%s - commit%s - commit options%s - hg %s%s - purge%s - recover repository%s - status%s - status (selection filtered)%s - sync options%s - verify repository%s : %s%s %s already exists, replace URL?%s and %s have identical contents %s certificate error: no certificate received%s had rejected chunks, edit patched file together with rejects?%s is a dirty subrepo%s is added%s is deleted by non-hg command, but still tracked%s is ignored%s is modified%s is not a valid repository%s is not modified (clean)%s is not tracked (unknown)%s is removed%s patches%s project settings (.hg/projrc)%s repository settings%s will be imported to %s's global settings&About TortoiseHg&Add&Add Repository...&AfterIndent&Ancestors and Descendants&Archive&Archive...&Auto&Auto Detect&Auto-Complete&Backout...&Bisect...&Branch&Browse...&Bundle Rev and Descendants...&Cancel&Character&Clear&Clone&Close&Close Repository&Commit&Commit to Queue...&Commit to current branch&Copy&Copy Patch&Copy...&Create&Custom Toolbar&Delete&Delete Patches...&Delete Queue...&Delete Unversioned...&Diff Other to Ancestor&Diff Selected File Revisions&Diff to Other&Diff to Parent&Discard&Discard (--force)&Discard changes&Dock Toolbar&Edit File&Edit Local&Edit Toolbar&Edit...&Editor Options&Email Patch...&Exit&False&File&Filter Toolbar&Finish Patch&Flat List&Force&Forget&Goto (update workdir)&Goto Revision...&Graft to Local...&Help&Ignore...&Import&Import Patches...&Incoming&Invisible&Keep (--keep)&License&Local&Lock File...&Mac&Make secret&Mark Excluded Changes&Mark Resolved&Mark Unresolved&Mark as Resolved&Match&Merge&Merge with Local...&Merge...&More Options...&Move&New Repository...&No&No (discard changes)&Open&Open All&Open Local&Open Repository...&Originating Revision&Other&Outgoing&Parent Revision&Parent Revision (%d)&Paste&Patch Branch&Prune&Prune Selected...&Prune...&Pull&Purge Queue...&Purge...&Push Bookmark&Readme&Rebase...&Redo&Refresh&Refresh Repository List&Remote Update...&Remove&Remove Bookmark&Remove...&Rename Active Queue...&Replace&Repository&Resize Columns&Resolve...&Revert&Revert to Revision...&Revert with backup&Revert...&Run&Save&Save at Revision...&Scan Repositories at Startup&Search&Search in Current File&Set...&Settings&Shelve&Shelve...&Sign&Skip this Revision&Sort&Sort by .hgsub&Spaces&Strip&Strip...&Sync Bookmarks...&TAB&TAB Inserts&Tag...&Take Local&Task Toolbar&Terminal&True&Unapply Patch&Undo&Unix&Unspecified&Update&Update...&Verify&View&View Changeset&View Missing&View at Revision&Visible&Web Server&Windows&Word&Workbench Toolbars&Wrap&Yes'Publishing' repository(%s) (DEPRECATED)(excluded from the next commit)(is a changed and dirty sub-repository)(is a changed sub-repository)(is a dirty sub-repository)(is a new and dirty sub-repository)(is a new sub-repository)(is a removed sub-repository)(is an unchanged sub-repository)(no help text available)(same as parent)*: not used by TortoiseHg, resolved merge, unresolved merge3-&Way Diff3-way dir diffLaunch settings tool...%d changeset will be stripped%d changesets will be strippedAnnotate:Candidate MatchesDifferences from Source to DestHost: %sIgnore FilterParse Error!Repository Details:Revert %d files to their contents at the following revision?Revert %s to its contents at the following revision?Selected Options:Selected Options: %sUncommitted local changes are detectedUnknown revision!Unrevisioned FilesUntracked FilesWeb Server:= Working Directory Parent =A README file is not configured for the current repository.

                                                                                                              To configure a README file for a repository, open the repository settings file, add a 'readme' key to the 'tortoisehg' section, and set it to the filename or URL of your repository's README file.A bookmark named "%s" already existsA comma separated list of target groupsA comma separated list of target peopleA new version of TortoiseHg (%s) is ready for download!A repository cannot be added as a subrepo of itselfA revision identifier, bookmark, tag or branch nameA shelf file of that name already existsA shelf name cannot contain %sA terminal shell cannot be opened for remoteA terminal shell must be configuredA&dd Subrepository...A&uthorAbortAbort the export operation. Aborted p4pendingAboutAbout &QtAbout TortoiseHgAcceptAccept All MatchesAccept Selected MatchesAccept the local file version (yours)Accept the other file version (theirs)Activate BookmarksActivate bookmark?Activate:AddAdd &LargefilesAdd &Largefiles...Add Files...Add Path to ServeAdd a repository to this groupAdd as &LargefilesAdd as &Normal FilesAdd files to version controlAdd ignore filter...Add or remove patches must be merged in the working directoryAdd selected untracked files?Add separatorAdd to listAddedAdded tag %s for changeset %sAfter Pull OperationAge:AliasAll HistoryAll changesets belonging to the branches of changesets in set.All changesets, the same as 0:tip.All conflicting files will be marked unresolved.All conflicts are resolved.All contextsAll files (*)All itemsAll revisionsAll unsaved changes will be lost.Allow PushAllow push of a new branch (--new-branch)Allow pushing new branches (--new-branch)Always merge (when possible)Always show repo tabs, even for a single repo. Default: FalseAmendAmend current revisionAn alias for "::." (ancestors of the working copy's first parent).An empty set, if any revision in set isn't found; otherwise, all revisions in set.An error occurred while reading the file.An error occurred while updating the repository hgrc file (%s)An error occurred while writing the file.An exception happened while loading the subrepos of:

                                                                                                              "%s"

                                                                                                              An interrupted graft operation has been found. You cannot perform a different graft operation unless you abort the interrupted graft operation first.Annotate &FileAnnotate Op&tionsAnnotate with revision numbersApp&ly FormatAppendAppend graft info to log messageAppend the changes to the existing patch files. Applied patchesApplied patches or qparentApply all patchesApply changes before exit?Apply one patchApply only this patchApply onto original parentApply patchArabicArchive - %sArchive FormatsArchive types:Are you sure that you want to cancel the commit operation?Are you sure you want to delete these files and/or folders?Are you sure you want to overwrite it ?Are you sure you want to reload this file?Are you sure?Ask UsernameAttempt automatic (trivial) mergeAttempt to push to specified URL or alias after each successful commit. Default: No pushAuthorAuthor ColoringAuto Commit ListAuto Exclude ListAuto Includes:Auto-resolve mergesAutomatically advance to next page when backout and merge are complete.Automatically advance to next page when merge is complete.Automatically resolve merge conflicts where possibleBackBacked out changeset: Backing out a parent revision is a single step operationBacking out and committing...Backing out, then merging...Backout - %sBackout changesetBackout current patch branchBackout requires a parent revisionBackout revisionBackport part of a changeset to a dependencyBackspace or Del to remove row(s)Backup copies of modified files can be found in .hg/Trashcan/Backwards phase change requestedBad filenameBalticBccBefore backout, you must commit, shelve to patch, or discard changes.Before compress, you must commit, shelve to patch, or discard changes.Before graft, you must commit, shelve to patch, or discard changes.Before merging, you must commit, shelve to patch, or discard changes.Before rebase, you must commit, shelve to patch, or discard changes.Bisect - %sBisect - Bad, Good...Bisect - Good, Bad...BoldBoo&kmark...Bookmark '%s' does not existBookmark '%s' has been addedBookmark '%s' has been movedBookmark '%s' has been removedBookmark '%s' has been renamed to '%s'Bookmark - %sBookmark named "%s" does not existBookmark:BranchBranch ColorsBranch:Branch: Bro&wse at RevisionBrowse Directory...Browse...Bundle DAG Range...Bundle files (*.hg)Bundles store complete changesets in binary form. Upstream users can pull from them. This is the safest way to send changes to recipient Mercurial users.Bypass ListBzip2 tar archivesC&hoose Log Columns...C&onfigure FormatCLI EditorCan't change settings without iniparse package - view is readonly.Can't find revision '%s'CancelCannot add subrepositoryCannot backout change on a different branchCannot export revisionCannot export revision %s into the file named: %s Cannot import selected revisionCannot open Plugin Options dialogCannot open non Mercurial repositories or subrepositoriesCannot open repositoryCannot open the .hgsub file in:

                                                                                                              %sCannot read the .hgsub file.

                                                                                                              Subrepository removal failed.Cannot start a new searchCannot update the .hgsub file in:

                                                                                                              %sCannot update the .hgsub file.

                                                                                                              Subrepository removal failed.CcCc:CelticCentral and Eastern EuropeCertificate Query ErrorChange &Phase toChangeLog FontChanged by &This CommitChanges have been moved, you must now commitChanges take effect on next commitChangeset LinkChangeset is a merge changeset.Changeset is a named branch head.Changeset is closed.Changeset is tagged.Changeset with highest revision number in set.Changeset with lowest revision number in set.Changeset:ChangesetsChangesets containing files matched by pattern.Changesets not found in the specified destination repository, or the default push location.Changesets that are ancestors of a changeset in set.Changesets where username contains string.Changesets which add files matched by pattern.Changesets which are descendants of changesets in set.Changesets which modify files matched by pattern.Changesets which remove files matched by pattern.Changesets with no parent changeset in set.Character encoding of files in the repository, used by the web interface and TortoiseHg.CheckCheck Subrepo PhaseCheck all filesCheck for incoming changesCheck for incoming changes from %sCheck for incoming changes from selected URLCheck the phase of the current revision of each subrepository. For settings other than "ignore", the phase of the current revision of each subrepository is checked before committing the parent repository. Default: followChecked count: %dCheckingChecking for updates...Checking working directory status...Checking...Checkmark files to addCheckmark files to forgetCheckmark files to removeCheckmark files to revertChild changesets of changesets in set.Child:Chunks selected: %d / %dClea&r LogCleanClearClear contents of shelf file %s?Clear current query and query textClear the current shelf fileClick OK to continue or Abort to exit.Clon&e Repository...Clon&e...Clone - %sClone RepositoryClone to revision:Clone...CloseClose %s branchClose After CommitClose Branch: Close current branchClose other tabsClose tabClose the commit tool after every successful commit. Default: FalseClose:Co&mpare File RevisionsCollapse the rebased changesets (--collapse)Color changesets by author name. Default: FalseComma separated list of archive formats allowed for downloadingComma separated list of branch names that should be ignored when building a list of branch names for a repository. Default: None (leave blank)Comma separated list of exclusion file patterns. Exclusion patterns are applied after inclusion patterns.Comma separated list of files that are automatically included in every commit. Intended for use only as a repository setting. Default: None (leave blank)Comma separated list of files that are automatically unchecked when the status, and commit dialogs are opened. Default: None (leave blank)Comma separated list of inclusion file patterns. By default, the entire repository is searched.Comma-separated list of blind carbon copy recipient email addressesComma-separated list of carbon copy recipient email addressesComma-separated list of recipient email addressesCommandCommand ErrorCommand outputCommand to use for SSH connections.

                                                                                                              Default: "ssh" or "TortoisePlink.exe -ssh -2" (Windows)CommitCommit Dialog ToolbarCommit LaterCommit NowCommit OptionsCommit backout and merge resultsCommit changesCommit changes in repositoryCommit context menuCommit merge resultsCommit messageCommit...Committing...Common setsCompare revisions of the selected fileCompare to &1st ParentCompare to &2nd ParentCompletely remove file from patch?CompressCompress - %sCompress History...Compress changesets up to and includingCompress is complete, old history untouchedConfig File:Config files (*.conf *.config *.ini)Configuration Error: "%(arg0)s",
                                                                                                              Please fix your configConfigure Custom ToolConfigure Explorer extensionConfigure HookConfigure Issue TrackerConfigure guardsConfigure guards for selected patchConfigure repository settingsConfigure the selected COM Bug Tracker plugin.Configure user wide settingsConfigures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking plugin.Confirm AddConfirm Branch ChangeConfirm DeleteConfirm Delete UnversionedConfirm DiscardConfirm Discard ChangesConfirm Discard MessageConfirm ExitConfirm New BranchConfirm OverwriteConfirm PushConfirm Push to remote RepositoryConfirm ReloadConfirm RemoveConfirm RevertConfirm SaveConfirm StripConfirm URL replaceConfirm UndoConfirm UpdateConfirm adding unknown filesConfirm deleting filesConfirm file deletionsConfirm patch queue switchConfirm path deleteConnecting to Review Board...Consider aborting the graft first.Consider aborting the rebase first.ConsoleContactContext MenuContinue or abort interrupted graft operation?Controls draft phase behavior when working as a server. When true, pushed changesets are set to public in both client and server and pulled or cloned changesets are set to public in the client. Default: TrueConvert an existing repository into a subrepositoryConverted From:CopyCopy &HashCopy &PathCopy - %sCopy ErrorCopy Selected as PatchCopy full path of file(s) to the clipboardCopy messageCopy one of the recent commit messagesCopy source -> destinationCopy the root path of the repository to the clipboardCopy working directory files from skeletonCould not get subrepository listCould not instantiate Issue Tracker plugin COM objectCould not open .hgsub fileCould not open some subrepositoriesCould not open the specified file for reading.Could not open the specified file for writing.Could not translate the file content from native encoding.Could not translate the file content to native encoding.Could not update .hgsub fileCreateCreate &BranchCreate &New Queue...Create Patch QueueCreate Repository HereCreate a new groupCreate a new patchCreate a new repositoryCreate clone here from sourceCreate diff with all changes on this branchCreate diff with all outgoing changesCreate new named branch "%s" with this commit? Cu&tCulprit found.Current local revisionCustom Toolbar &SettingsCustom ToolsCyrillicDateDate:De&tect Renames...Deactivate current bookmark?Dead BranchesDefault PushDefault widgetDefines the command to run when an issue number is recognized. You may include groups in issue.regex, and corresponding {n} tokens in issue.link (where n is a non-negative integer). {0} refers to the entire string matched by issue.regex, while {1} refers to the first group and so on. If no {n} tokens are found in issue.link, the entire matched string is appended instead.Defines the regex to match when picking up issue numbers.DeleteDelete %d file in .hg/TrashcanDelete %d files in .hg/TrashcanDelete %d ignored fileDelete %d ignored filesDelete %d unknown fileDelete %d unknown filesDelete %s from your repo configuration file?Delete Group '%s' and all its entries?Delete Patch QueueDelete PatchesDelete ToolDelete empty foldersDelete from listDelete hookDelete patches...Delete reference toDelete selected chunksDelete selected chunks from shelf file %s?Delete selected chunks from working copy?Delete selected patchesDelete selected query from historyDelete shelf file %s?Delete the current shelf fileDelete the following unversioned files?Deleted %d filesDeleted %d files and %d foldersDeleted*Deleting trash folder...Deletion failuresDeny PushDescriptionDestDestination file already exists.Destination path:Destination:Detect Copies/Renames in %sDetect outgoing changesDetect outgoing changes to %sDetect outgoing changes to selected URLDetect renames and copiesDetected merge/diff tools:Detected uncommitted local changes in working tree. Please select to continue: Detected uncommitted local changes.Determines if TortoiseHg should show a confirmation dialog before pushing changesets. If False, push will be performed without any confirmation dialog. Default: TrueDetermines when the issue tracker state will be updated by TortoiseHg. Valid settings values are:

                                                                                                              • never: Do not update the Issue Tracker state automatically.
                                                                                                              • commit: Update the Issue Tracker state after a successful commit.

                                                                                                              Default: neverDetermining outgoing changesets to email...Diff &Changeset to ParentDiff &LocalDiff &Local to AncestorDiff Changeset to Loc&alDiff File toDiff FontDiff Selected &ChangesetsDiff ToolbarDiff and AnnotateDiff contentsDiff not displayed: Diff to &LocalDiff to parentDir diff to p1Dir diff to p2Directory diffDirectory of filesDiscard - discard local changes, no backupDiscard all changes from the other revisionDiscard current backout message?Discard current commit message?Discard local changes (revert --all)Discard local changes, no backup (-C/--clean)Discard local changes, no backup (-f/--force)Discard outstanding changes to working directory?Discard remote changes, no backup (-C/--clean)Display closed branchesDisplay graph the named branch onlyDisplay only active branchesDisplay the file anywayDisplaying %(count)d of %(total)d itemsDnD SynchronizeDo not include modification dates in diff headers. Default: FalseDo not modify working copy during strip (-k/--keep)Do not save backup files (*.orig)Do not show menu items on unversioned folders (use shift + click to override)Do not strip paths (-p0), required for SVN patchesDo not update the new working directoryDo not verify host certificateDo you really want to force a backwards phase transition?Do you really want to activate patch queue '%s' ?Do you really want to deactivate the %s bookmark?Do you really want to make this revision secret?Do you really want to remove the repository "%s" from its parent repository "%s"Do you want to exit?Do you want to keep them or discard them?Drag to change orderDuplicate NameE&ncodingE&xitE&xploreE&xplore FolderE&xplore LocalE&xplorer HelpE&xportE&xport Patch...EOL &ModeEOL &VisibilityEditEdit FileEdit Ignore FilterEdit LocalEdit Path to ServeEdit Re&jectsEdit Tool ...Edit current file in working copyEdit fileEdit hookEdit patch dependency graphEdit patched file and rejects?Edit repository ignore filterEdit resolved fileEditor launch failureEmailEmail DAG Range...Email Selected...Email address to use in the "From" header and for the SMTP envelopeEmail outgoing changesets for remote repositoryEmit debugging output (--debug)Enabled Overlay HandlersEnabled overlaysEncodingEnglish MessagesEnter line number (1 - %d)Enter revision identifierErrorError encountered.Error executing "commit finished" triggerError getting commit message information from Issue Tracker pluginError loading subreposError previewing subrepo: %sError string "%(arg0)s" at %(arg1)s
                                                                                                              Please edit your configError writing fileExcel files (*.xls *.xlsx)ExcludeExcludes:Execute custom tool '%s'ExitExit without finishing resolve?Exiting with an unfinished graft is not recommended.Exiting with an unfinished rebase is not recommended.Explorer Extension SettingsExplorer Extension Settings - TortoiseHgExport DAG Range...Export Diff...Export Selected...Export patchExtExtensionsFailed to add repositoryFailed to add subrepositoryFailed to execute custom TortoiseHg commandFailed to execute custom commandFailed to load issue tracker '%s': %sFailed to load issue tracker: '%s': %s. Failed to open path in terminalFailed to open repositoryFailed to refreshFailed!Fetch - use fetch (auto merge pulled changes)Fetch - use fetch extension (fetch is not active!)Fields to match:FileFile &History / AnnotateFile Differences Log ColumnsFile HistoryFile History Log ColumnsFile List ToolbarFile StatusFile Status:File already existsFile conflicts need to be resolvedFile context menu (on manifest and revision details)File is binaryFile is larger than the specified max size. maxdiff = %s KBFile may be binary (maximum line length exceeded)File or diffs not displayed: File or diffs not displayed: File is larger than the specified max size. maxdiff = %s KBFile pattern setsFilenameFilesFiles of at least the specified size (in megabytes) will be added as bfilesFiles of at least the specified size (in megabytes) will be added as largefilesFiles with names meeting the specified patterns will be automatically added as bfilesFiles with names meeting the specified patterns will be automatically added as largefilesFilter Histor&yFilter b&yFilter graph with revision sets or branchesFilter:Find RenamesFind copy and/or rename sourcesFind matches - %sFind revisions matching fields of:Find revisions that "match" one or more fields of the given set of revisions.Finding outgoing changesets to %s...FinishedFirst n members of a set.First parent for all changesets in set, or the working directory.Fixed revisionsFlag:Fold patches...Follow copies and renamesFont used to display changelog data. Default: monospace 10Font used to display commit messages. Default: monospace 10Font used to display output messages. Default: sans 8Font used to display text differences. Default: monospace 10FontsFor which kinds of revisions the tool will be enabled It is only taken into account when the tool is shown on the selected revision context menu.Force Repo TabForce a merge with outstanding changes (-f/--force)Force push or pop (--force)Force push or pull (override safety checks, --force)Force push to remote location (-f/--force)Force removal of modified files (--force)ForgetForget Files...Fork GUIForwardFound %d incoming changesetsFound incoming changesets from %sFromFrom:Full AuthornameFull Path TitleGPG key ID associated with user. Default: None (leave blank)Generate English commit messages even if LANGUAGE or LANG environment variables are set to a non-English language. This setting is used by the Merge, Tag and Backout dialogs. Default: FalseGetting incoming changesets from %s...Git FormatGit patches can describe binary files, copies, and permission changes, but recipients may not be able to use them if they are not using git or Mercurial.GlobGlobal SettingsGnuPGGo &to PatchGo toGo to LineGo to a specific revisionGo to current revisionGoto ancestor of %s and %sGoto common ancestorGoto revisionGraftGraft - %sGraft Selected to local...Graft abortedGraft changesetGraft changeset #%d of %dGraft failedGraft generated merge conflicts that must be resolvedGraft is completeGraft:GraphGraphical merge program for resolving merge conflicts. If left unspecified, Mercurial will use the first applicable tool it finds on your system or use its internal merge tool that leaves conflict markers in place. Choose internal:merge to force conflict markers, internal:prompt to always select local or other, or internal:dump to leave files in the working directory for manual mergingGreatest common ancestor of the two changesets.GreekGuards: %d/%dGuess RenamesGzip tar archivesHTTP Error: %d (%s)Head is closed!HebrewHg command:Hg file log viewer [%s] - %sHg patches (as generated by export command) are compatible with most patch programs. They include a header which contains the most important changeset metadata.Hide DetailHide TagsHide context menu outside repositoriesHighlight IconHook typeHooksHostHost name and (optional) port of proxy server, for example "myproxy:8000"Host name of mail serverHostname the sender can use to identify itself to the mail server.How many lines a "zebra stripe" should span in multiline output. Default is 1; set to 0 to disable.IconIconsIf no username has been specified, the user will be prompted to enter a username. Default: FalseIf specified, files in the directory, e.g. .hgignore, are copied to the newly-created repository.If true, concatenate multiple lines of changeset summary and truncate them at 80 characters as necessary. Default: FalseIf you still have trouble, please file a bug report.Ignore Ignore Blank LinesIgnore WS AmountIgnore White SpaceIgnore caseIgnore changes in the amount of white space in diff views. Default: FalseIgnore changes in the amount of white space in the annotate view. Default: FalseIgnore changes whose lines are all blank in diff views. Default: FalseIgnore changes whose lines are all blank in the annotate view. Default: FalseIgnore filter - %sIgnore white space when comparing lines in diff views. Default: FalseIgnore white space when comparing lines in the annotate view. Default: FalseIgnored*Immediate OperationsImport - %sImport from ClipboardImport to &MQIn &Current RevisionIn &Original RevisionIn All &HistoryIn Current &FileIn-Reply-To:IncludeInclude all ancestorsInclude patch queueIncludes:Incoming BookmarksIncoming from %s aborted, ret %dIndicates whether TortoiseHg should attempt to automatically resolve changes from both sides to the same file, and only report merge conflicts when this is not possible. When False, all files with changes on both sides of the merge will report as conflicting, even if the edits are to different parts of the file. In either case, when conflicts occur, the user will be invited to review and resolve changes manually. Default: True.Iniparse must be installed.Iniparse package not foundInitial revisionInline TagsInput new guards for %s:Insufficient access rights, reverting to read-only mode.Insufficient access rights.InterruptedInterrupted graft operation foundInvalid PatternsInvalid Settings - Please provide your ReviewBoard usernameInvalid Settings - The ReviewBoard server is not setupInvalid commandInvalid configuration: %sInvalid date formatInvalid default push revision: %s. Please check your Mercurial configuration (tortoisehg.defaultpush)Invalid glob expressionInvalid regexp expressionInvalid reviewboard plugin. Please download the Mercurial reviewboard plugin version 3.5 or higher from the website below. %sIssue LinkIssue RegexIssue TrackerIssue Tracker PluginIssue Tracker Plugin ErrorIssue Tracker TriggerIssue TrackingIt was not possible to fully load the subrepository list for the repository in:

                                                                                                              %s

                                                                                                              The following subrepositories may be missing, broken or on an inconsistent state and cannot be accessed:

                                                                                                              %sIt was not possible to get the subrepository list for the repository in:

                                                                                                              %sItalicJapaneseKeep original branch names (--keepbranches)Keep original changesets (--keep)Keep patch filesKey IDKey:Keyword SearchKiln BfilesKnown bad revision:Known good revision:KoreanLargefilesLeft ToolbarLet the user update the projrc on incoming:

                                                                                                              • never: [default] Show whether the remote projrc file has changed, but do not update (nor ask to update) the local projrc file.
                                                                                                              • prompt: Look for changes to the projrc file. If there are changes _always_ show a confirmation prompt, asking the user if it wants to update its local projrc file.
                                                                                                              • auto: Look for changes to the projrc file. Use the value of the "projrc.confirm" configuration key to determine whether to show a confirmation dialog or not before updating the local projrc file.

                                                                                                              Default: neverLicenseLike "keyword(string)" but accepts a regex.LineList Optio&nsList of Servers from which "projrc" configuration files must be pulled. Set it to "*" to pull from all servers. Set it to "default" to pull from the default sync path. Default is pull from NO servers.List of all toolsList of settings that will NOT be pulled from the project configuration file. Default is exclude none of the included settings.List of settings that will be pulled from the project configuration file. Default is include NO settings.List updated files (--verbose)Load &All RevisionsLoad all revisions into graphLoading repository %sLocal HostnameLocal PathLocal Path:Local Repository %sLocal disks onlyLocal revision informationLocal signLocal tagLocation:Lock CloneLock a file not described in .hglocksLock of %s failed, retryLock of %s successfulLock or unlock filesLocked*Locking %sLocking UserLogLog Batch SizeLong SummaryMMQ &OptionsMQ Git FormatMQ QPushPushMQ QPushPush allMQ optionsMa&nifest ModeMake MQ patches secret (instead of draft). Default: FalseMake repo compatible with Mercurial <1.7Making a "draft" revision "secret" is generally a safe operation. However, there are a few caveats: - "secret" revisions are not pushed. This can cause you trouble if you refer to a secret subrepo revision. - If you pulled this revision from a non publishing server it may be moved back to "draft" if you pull again from that particular server. Please be careful!Manage HTTPS connection security and user authenticationManage pending perforce changelistsMandatory Issue ReferenceManually resolve rejected chunks?Manually resolve rejected patch chunksMark as &UnresolvedMark this chunk as resolved, goto next unresolvedMark this chunk as unresolvedMark this file as resolvedMark this file as unresolvedMatch TextMatch any of %d revisionsMax ChangesMax Diff SizeMax FilesMaximum number of changes to list on the changelog. Default: 10Maximum number of files to list per changeset. Default: 10Members of a set with no children in set.Menu BehaviorMercurial Re&solveMercurial UserMercurial command is still running. Are you sure you want to terminate?Mercurial keyring extension is enabled. Passwords will be stored in a platform-native secure method.Mercurial was unable to find an editor. Please configure Mercurial to use an editor installed on your system.MergeMerge - %sMerge - allow to merge with local changesMerge all pending dependenciesMerge caused file conflictsMerge changesetMerge from (other revision)Merge rejected patch chunks into %sMerge revision not specified or not foundMerge to (working directory)Merge using selected merge toolMerge with %sMerge with the other head of the current branchMerging...MessageMessage FontMessage Translation FailureMessage identifier to reply to, for threadingMethod to enable TLS when connecting to mail server. Default: noneMin Similarity: %d%%Minimum SizeMissing informationModi&fy HistoryMonitor Repo ChangesMonitor working
                                                                                                              directory changesMoveMove all files leftMove all files rightMove applied patches into repository historyMove changes between working dir and patchMove selected chunks leftMove selected chunks rightMove selected file leftMove selected file rightMoved tag %s to changeset %s (from changeset %s)Multiple sources chosenNameName associated with commits. The common format is:
                                                                                                              Full Name <email@example.com>Name or email address of the person in charge of the repository.Named branch "%s" already exists, last used in revision %d New &GroupNew &WorkbenchNew Branch: New Commit PhaseNew GroupNew Name:New Patch BranchNew Repo SkeletonNew RepositoryNew ShelfNew Tool ...New file createdNew hookNew patch message:New patch queue nameNew shelf createdNextNext DiffNext diffNo DatesNo appropriate filesNo backup (-n/--nobackup)No branch changesNo chunks remainNo commitNo deletable chunksNo diff tool foundNo editor foundNo file changesNo files checkedNo files found for this operationNo files selectedNo files to findNo host specifiedNo host validation, but still encrypted (bad)No ignored files foundNo incoming changesets from %sNo issue link was found in the commit message. The commit message should contain an issue link. Configure this in the 'Issue Tracking' section of the settings.No items to displayNo matches foundNo merge conflicts, ready to commitNo merge conflicts, ready to commit or reviewNo modified files checkmarked for commitNo operation to performNo outgoing changesetsNo outgoing changesets to %sNo patch branch selectedNo pending Perforce changelistsNo remote repository URL or path setNo repository foundNo shell configuredNo transaction availableNo trash files foundNo unknown files foundNo username configuredNo valid default remote repository URL or path has been configured for this repository.

                                                                                                              Please type and save a remote repository path on the Sync widget.No visual diff tools were detectedNo visual editor configuredNone - simply pull changesetsNordicNormalize file line endings during and after patch to lf or crlf. Strict does no normalization. Auto does per-file detection, and is the recommended setting. Default: strictNot a Mercurial subrepo, not previewableNot a head revision!Not a head, backout will create a new head!Nothing CommittedNothing changed.Nothing to importNothing to pushOKObsolete state:On repowidget, show forOne or more of the changesets that you are attempting to push involve the creation of a new branch. Do you want to create a new branch in the remote repository?Only consider deleted filesOnly files modified/created in this revisionOnto destinationOpenOpen &TerminalOpen S&ubrepositoryOpen a new named branchOpen a shell terminal in the repository rootOpen a shell terminal in the selected folderOpen advanced query editorOpen all repositories in new tabsOpen hgweb configOpen new tabs next to the current tabOpen parent folder of current file in the system file managerOpen shelve toolOpen the repository in a file browserOpen the repository in a new tabOpen the selected folder in the system file managerOpen the selected subrepositoryOperation aborted:

                                                                                                              %(arg0)s.Operation which is performed directly after a successful pull. update equates to pull --update, fetch equates to the fetch extension, rebase equates to pull --rebase, updateorrebase equates to pull -u --rebase. Default: noneOptional. Comma-separated list of host names that should bypass the proxyOptional. Method to use to send email messages. If value is "smtp" (default), use SMTP (configured below). Otherwise, use as name of program to run that acts like sendmail (takes "-f" option for sender, list of recipients on command line, message on stdin). Normally, setting this to "sendmail" or "/usr/sbin/sendmail" is enough to use sendmail to send messages.Optional. PEM encoded client certificate chain file. Environment variables are expanded in the filename.Optional. PEM encoded client certificate key file. Environment variables are expanded in the filename.Optional. Password to authenticate with at the proxy serverOptional. Password to authenticate with. If not given, and the remote site requires basic or digest authentication, the user will be prompted for it.Optional. User name to authenticate with at the proxy serverOptional. Username to authenticate with. If not given, and the remote site requires basic or digest authentication, the user will be prompted for it. Environment variables are expanded in the username letting you do foo.username = $USER.OptionsOptions:Or use:Order the subrepos as in .hgsubOriginal Parent:Other revision informationOutgoing BookmarksOutgoing aborted, ret %dOutgoing to %s aborted, ret %dOutput FontOverlaysP&ull BookmarkP&ushPDF docs (*.pdf)PEM files (*.pem *.crt *.cer)PEM files (*.pem *.key)Parent 1:Parent 2:Parent:ParentsPasswordPassword to authenticate to mail server withPassword to authenticate with review boardPassword:Paste &FilenamesPatch Branch ToolbarPatch EOLPatch Files (*.patch)Patch Name RequiredPatch QueuePatch Queue Actions ToolbarPatch date:Patch exportedPatch failed to applyPatch files (*.diff *.patch)Patch files already existPatch fold - %sPatch message:Patch name:Patch series description is sent in initial summary email with [PATCH 0 of N] subject. It should describe the effects of the entire patch series. When emailing a bundle, these fields make up the message subject and body. Flags is a comma separated list of tags which are inserted into the message subject prefix.Patch user:Patch:Patch: %sPatches exportedPatches to foldPathPath Edit ToolbarPath to review board example "http://demo.reviewboard.org"Path to the directory where a system-wide cache of bfiles will be storedPath to the directory where a user's cache of largefiles will be storedPath:Paths in Repository Settings:PatternsPending Perforce Changelists - %sPerforce pending...Perforce:Perform a push before updating (-p/--push)PhasePlace Console in Doc&k AreaPlain, do not prepend Hg headerPlease configure a visual editor.Please enable and configure simplelockPlease enable the Gpg extension first.Please enter a usernamePlease enter commit messagePlease report this bug to our bug trackerPlease set a valid URL to continue.Please wait while committing merged files.Please wait while making backout.Please wait while the file is opened ...Please wait...PopPop allPortPort to connect to on mail server. Default: 25Port to listen onPort:Post &ReviewPost Pull BehaviorPost Pull: Post ReviewPost Selected to Review Board...Post to Re&view Board...Prepare to backoutPrepare to mergePreserve files beginning with .hgPrevPreviewPreview:Previous DiffPrevious diffPreviously the subrepository was at the following revision:ProjrcProxyPrune - %sPublish request immediatelyPullPull from %s aborted, ret %dPull from %s completedPull incoming changesPull incoming changes from %sPull incoming changes from selected URLPull incoming changesets into your repositoryPull subrepos from:Pull to here...Pulled remote bookmark: %sPulling from %s...PurgePurge Patch QueuePurposePus&hPush &AllPush After CommitPush After Commit:Push Requires SSLPush Selected &BranchPush allPush current branch (%s)Push outgoing changesPush outgoing changes to %sPush outgoing changes to selected URLPush to %s abortedPush to %s aborted, ret %dPush to %s completedPush to &HerePush to remote repository %s ?Push up to current revision (#%d)Push up to revision #%dPushed local bookmark: %sPushing to %s...QNewQRefreshQueryQuery about changesets affecting the selected filesQuitR&emove BookmarkR&epository Registry OptionsR&ollback/Undo...README not configuredRe&coverRe&move VersionedRe&move from RegistryRe&nameRe&name Patch...Re&name...Readonly*ReadyReady to purge.Ready, double click to lock or unlockRebaseRebase - %sRebase - rebase local commits above pulled changesRebase - use rebase extension (rebase is not active!)Rebase abortedRebase already in progressRebase changeset and descendantsRebase entire source branch (-b/--base)Rebase failedRebase generated merge conflicts that must be resolvedRebase is completeRebase unpublished onto Subversion head (override source, destination)Rebase...Recurse into subrepositoriesRecurse into subrepositories (--subrepos)Redundant authentication infoRefreshRefresh &Task TabRefresh ToolbarRefresh current patchRefresh current repositoryRefresh file listRefresh lock informationRefresh only the current task tabRefresh the Repository Registry listRefreshing locks...RegexpRegexp:Regular expression search patternReject incoming changesetsRelated Paths:ReloadReload FileRemo&ve Subrepository...Remote Update - %sRemote command:RemoveRemove &All Selected FilesRemove &Unmodified FilesRemove Files...Remove authentication data from URLRemove current working revision?Remove files from version controlRemove filter, show rootRemove patch directory ofRemove patches from queue?Remove selected deleted files?Remove the node and all its subnodes. Repositories are not deleted from disk.Remove the selected repository?Remove this subrepository from the current revisionRemoved local bookmark: %sRemoved remote bookmark: %sRemoved tag %sRenameRename - %sRename ErrorRename FileRename PatchRename Patch QueueRename file or directoryRename patch %s to:Rename patch queue '%s' toRename patch...Rename the entryReopen last closed tabReopen last closed tab groupReplaceReplace existing hook?Replace existing tag (-f/--force)Replace the existing patch files. Report only the first match per fileRepositoriesRepositoryRepository ErrorRepository ID:Repository RegistryRepository Registry updatedRepository SettingsRepository command still runningRepository is lockedRepository name to use in the web interface, and by TortoiseHg as a shorthand name. Default is the working directory.Repository not localRepository status & changesRequire confirmationResolve Conflicts - %sResolved conflictsRestart &BranchRestart Mer&geRestart Merge &withRestart all TortoiseHg applications for the following changes to take effect:Resuming rebase already in progressRevRevertRevert &All Files...Revert - %sRevert Files...Revert all file changes?Revert all files to this revisionRevert all working copy changes?Revert file changesRevert file(s) to contents at this revisionRevert files to local or other parent?Revert local file changes?Revert the following files?Revert to RevisionReverting all files will discard changes and leave affected files in a modified state.

                                                                                                              Are you sure you want to use revert?

                                                                                                              (use update to checkout another revision)Reverting p4 changelist...Review BoardReview ID:Review draft posted to %s Review published to %s RevisionRevision #%d (%s) was exported to:

                                                                                                              %s%s%sRevision &DetailsRevision SetRevision Set QueryRevision details context menuRevision has changed to:Revision is &BadRevision is &GoodRevision to Match:Revision:Revisions to Match:Right ToolbarRollback commit to revision %dRollback to revision %d (undo %s)?Running at %sRunning...RussianS&ync ToolbarS&ynchronizeSMTP HostSMTP PasswordSMTP PortSMTP TLSSMTP UsernameSSH CommandSSL error: %sSSL: Server certificate verify failedSSL: unknown error %s:%sSa&ve Current Sync Paths on ExitSaveSave GlobalSave Open Repositories on E&xitSave PathSave changes before editing?Save current URL under an aliasSave error report toSave file as it appeared at this revisionSave file toSave hgweb configSave in RepoScan &Remote RepositoriesSearchSearch HistorySearch Selected TextSearch already in progressSearch commit message, user name, and names of changed files for string.Search file revisions for patternsSearch in All &HistorySearchingSearching...Second parent for all changesets in set, or the working directory.Secret MQ PatchesSecure HTTPS ConnectionSecuritySecurity: Select &AllSelect &NoneSelect Destination FileSelect Destination FolderSelect Directory containing patchesSelect RepositorySelect Source FileSelect Source FolderSelect Tool:Select User Certificate Chain FileSelect User Certificate Key FileSelect a GUI location to edit:Select an existing repository to add as a subrepoSelect branch of merge commitSelect bundle fileSelect destination repositorySelect if TortoiseHg will show a target combo in the sync toolbar.

                                                                                                              • auto: The default. Show the combo if more than one target configured.
                                                                                                              • always: Always show the combo.

                                                                                                              Default: autoSelect patch folderSelect patchesSelect post-pull operation for this repositorySelect repositorySelect repository directory to addSelect repository directory to openSelect source repositorySelect the initial revision that will be selected when opening a repository. You can select the "current" (i.e. the working directory parent), the current "tip" or the working directory ("workingdir"). Default: currentSelect the initial widget that will be shown when opening a repository. Default: revdetailsSelect the revisions that will be pushed by default, whenever you click the Push button.

                                                                                                              • all: The default. Push all changes in all branches.
                                                                                                              • branch: Push all changes in the current branch.
                                                                                                              • revision: Push the changes in the current branch up to the current revision.

                                                                                                              Default: allSelect the toolbar or menu to changeSelect when TortoiseHg will show a prompt to activate a bookmark when updating to a revision that has one or more bookmarks.

                                                                                                              • auto: Try to automatically activate bookmarks. When updating to a revision that has a single bookmark it will be activated automatically. Show a prompt if there is more than one bookmark on the revision that is being updated to.
                                                                                                              • prompt: The default. Show a prompt when updating to a revision that has one or more bookmarks.
                                                                                                              • never: Never show any prompt to activate any bookmarks.

                                                                                                              Default: promptSelect when the working directory status list will be refreshed:
                                                                                                              - auto: [default] let TortoiseHg decide when to refresh the working directory status list.
                                                                                                              TortoiseHg will refresh the status list whenever it performs an action that may potentially modify the working directory. This may miss any changes that happen outside of TortoiseHg's control;
                                                                                                              - always: in addition to the automatic updates above, also refresh the status list whenever the user clicks on the "working dir revision" or on the "Commit icon" on the workbench task bar;
                                                                                                              - alwayslocal: same as "always" but restricts forced refreshes to local repos.
                                                                                                              Default: autoSelect when your command will be runSelect whether you want to have a single workbench window. If you disable this setting you will get a new workbench window everytime that you use the "Hg Workbench" command on the explorer context menu. Default: TrueSelected changeset pair not relatedSend &EmailSend changesets as Hg patchesSend single binary bundle, not patchesSending EmailServerServer Repository IDServersSet &Guards...Set AncestrySet Date:Set LogicSet username:Settin&gsSettingsSettings File:Several characters would be lost.Several icons are courtesy of the TortoiseSVN and Tango projectsSh&ow Repository RegistryShelfShelf clearedShelf deletedShelf: %sShellShelve - move local changes to a patchShelve ChangesShould new tabs be open next to the current tab? If False new tabs will be open after the last tab. Default: TrueShow &AuthorShow &DateShow &Patch QueueShow &PathsShow &RevisionShow About DialogShow Conso&leShow DetailShow Family LineShow FunctionShow IconShow IssuesShow Issues...Show LogShow Output LogShow Revision &DetailsShow S&hort PathsShow a full directory path of the repository in the dialog title instead of just the root directory name. Default: FalseShow allShow all version-controlled files in tree viewShow changes from first parentShow changes from second parentShow files changed by this commitShow full authorname in Logview. If not enabled, only a short part, usually name without email is shown. Default: FalseShow indirect revision dependency on the revision graph when filtered by revset. Default: True

                                                                                                              Note: Calculating family line may be slow in some cases. This option is expected to be removed if the performance issue is solved.Show tabs along the side of the bottom half of each repo widget allowing one to switch task tabs without using the toolbar. Default: offShow tags at start of commit message.Show the history of the selected fileShow which function each change is in. Default: FalseShow/Hide hidden changesetsSig&n...Sign - %sSign even if the sigfile is modified (-f/--force)Signature has been addedSimplelockSingle Workbench WindowSizeSize (KB)Skip final confirmation page, close after commit.Skipping %s, unable to readSome of the files that you have selected are of a size over 10 MB. You may make more efficient use of disk space by adding these files as largefiles, which will store only the most recent revision of each file in your local repository, with older revisions available on the server. Do you wish to add these files as largefiles?Sort by &NameSort by &PathSort set by keys. The default sort order is ascending, specify a key as "-key" to sort in descending order.Sort the group by full pathSort the group by short nameSourceSource does not exist.Source:South-Eastern EuropeSouthern EuropeSpace separated list of branch names and colors of the form branch:#XXXXXX. Spaces and colons in the branch name must be escaped using a backslash (\). Likewise some other characters can be escaped in this way, e.g. \u0040 will be decoded to the @ character, and \n to a linefeed. Default: None (leave blank)Space separated list of shell operations you would like to be performed immediately, without user interaction. Commands are "add remove revert forget". Default: None (leave blank)Space separated list of tags that will not be shown. Useful example: Specify "qbase qparent qtip" to hide the standard tags inserted by the Mercurial Queues Extension. Default: None (leave blank)Specify name of new shelfSpecify the command to launch your preferred terminal shell application. If the value includes the string %(reponame)s, the name of the repository will be substituted in place of %(reponame)s. Similarly, %(root)s will be the full path to the repository. (restart needed)
                                                                                                              Default, Windows: cmd.exe /K title %(reponame)s
                                                                                                              Default, OS X: not set
                                                                                                              Default, other: xterm -T "%(reponame)s"Specify the number of spaces that tabs expand to in various TortoiseHg windows. Default: 8Specify the path to GPG. Default: gpgSpecify the target filesystem where TortoiseHg monitors changes. Default: localonlySpecify visual diff tool, as described in the [merge-tools] section of your Mercurial configuration files. If left unspecified, TortoiseHg will use the selected merge tool. Failing that it uses the first applicable tool it finds.Specify visual editor, as described in the [editor-tools] section of your Mercurial configuration files. If left unspecified, TortoiseHg will use the first applicable tool it finds.Specify which task buttons you want to show on the task toolbar and in which order.
                                                                                                              Type a list of the task button names. Add separators by putting "|" between task button names.
                                                                                                              Valid names are: log commit sync grep and pbranch.
                                                                                                              Default: log commit grep pbranch | syncSpecify your preferred user interface language (restart needed)StartStart a new patch branchStart revision:Start web server for this repositoryStatStatusStatus File List ToolbarStatus:StopStop current operationStoppedStrikeStrip - %sStrip:StripesStripping Mercurial header removes username and parent information. Only useful if recipient is not using Mercurial (and does not like to see the headers).StyleSub menu items:Subject:Submitting p4 changelist...Subrepo '%s' has a non trivial default sync URL:

                                                                                                              %s

                                                                                                              Replace it with the following URL?:

                                                                                                              %sSubrepo added to .hgsub fileSubrepo created and set to initial revision.Subrepo initialized to revision:Subrepo may be damaged or inaccessible.Subrepo removed from repository.Subrepo state is:Subrepo statesSubrepo was not changed.Subrepository already existsSubrepository not foundSubrepository not found in the working directory.Subrepository removed from .hgsubSubversion:SuccessSuccessors:Suggested length of commit message lines. A red vertical line will mark this length. CTRL-E will reflow the current paragraph to the specified line length. Default: 80Summary (first description line)Summary Line LengthSummary:Swap source and destinationSyncSync BookmarksSynchronizeSynchronize with dragged repositorySynchronize with remote repositorySyntax HighlightingSystem CacheTab WidthTab cannot exitTag '%s' has been addedTag '%s' has been movedTag '%s' has been removedTag - %sTag:Tagged:Tags:Take &OtherTar archive compressed using bzip2Tar archive compressed using gzipTar archivesTarget ComboTarget GroupsTarget PeopleTarget:Task TabsTask Toolbar OrderTaskbarTemporarily disable configured HTTP proxyTemporary files are removed when this dialog is closedTerminated by userTest this revision and report findings. (good/bad/skip)Text Translation FailureText files (*.txt)Textual description of the repository's purpose or contents.ThaiThe .hgsub file already contains the line:

                                                                                                              %sThe changes from revision %s and all unmerged parents will be discarded. Are you sure this is what you want to do?The command "%s" could not be executed.The command "%s" failed (code %d).The command that will be executed. To execute a python function prepend the command with "python:". The default repository id for this repo on the review board serverThe destination "%s" already exists as a file!The destination "%s" already exists as a folder!The destination must be within the repository tree.The directory "%s" is not empty! Do you want to overwrite it?The directory where the command will be executed. If this is not set, the root of the current repository will be used instead. You can use the same {VARIABLES} as on the "Command" setting. The editor used by Mercurial command line commands to collect multiline input from the user. Most notably, commit messages.The exception error message was:

                                                                                                              %s

                                                                                                              The file "%s" already exists! Do you want to overwrite it?The following error message was returned: "%s" Please check that the command path is valid and that it is a valid applicationThe following error message was returned: %sThe hook name cannot contain any spaces, tabs or '=' characters.The hook name. It cannot contain spaces.The maximum size file (in KB) that TortoiseHg will show changes for in the changelog, status, and commit windows. A value of zero implies no limit. Default: 1024 (1MB)The named bookmark or all bookmarks.The named tag or all tags.The number of revisions to read and display in the changelog viewer in a single batch. Default: 500The phase of new commits. Default: draftThe selected command is emptyThe selected folder:

                                                                                                              %s

                                                                                                              is not inside the target repository.

                                                                                                              This may be allowed but is greatly discouraged.
                                                                                                              If you want to add a non trivial subrepository mapping you must manually edit the .hgsub fileThe selected repository:

                                                                                                              %s

                                                                                                              cannot be open!The selected repository:

                                                                                                              %s

                                                                                                              is already a subrepository of:

                                                                                                              %s

                                                                                                              as: "%s"The selected revision (%s) has a bookmark on it called "%s".

                                                                                                              Do you want to activate it?
                                                                                                              You can disable this prompt by configuring Settings/Workbench/Activate BookmarksThe selected revision (%s) has %d bookmarks on it.

                                                                                                              Select the bookmark that you want to activate and click OK.

                                                                                                              Click Cancel if you don't want to activate any of them.

                                                                                                              You can disable this prompt by configuring Settings/Workbench/Activate Bookmarks

                                                                                                              The selected revision (rev #%d) cannot be imported because it is not a descendant of qparent (rev #%d)The selected subrepo:

                                                                                                              %s

                                                                                                              has been added to the .hgsub file of the repository:

                                                                                                              %s

                                                                                                              Remember that in order to finish adding the subrepo you must still commit the changes to the .hgsub file in order to confirm the addition of the subrepo.The selected subrepository has been removed from the .hgsub file.

                                                                                                              Remember that you must commit this .hgsub change in order to complete the removal of the subrepository!The selected subrepository was not found on the .hgsub file.

                                                                                                              Perhaps it has already been removed?The set of all parents for all changesets in set.The source must be within the repository tree.The subrepository is dirty.The tool icon. You can use any built-in TortoiseHg icon by setting this value to a valid TortoiseHg icon name (e.g. clone, add, remove, sync, thg-logo, hg-update, etc). You can also set this value to the absolute path to any icon on your file system.The tool label, which is what will be shown on the repowidget context menu. If no label is set, the tool name will be used as the tool label. If no tooltip is set, the label will be used as the tooltip as well.The tool name cannot have any spaces in it.The tool name. It cannot contain spaces.The tooltip that will be shown on the tool button. This is only shown when the tool button is shown on the workbench toolbar.The working directory is already merged. Continue or discard existing merge.There are existing patch files for %d revisions (%s) in the selected location (%s). There are merge conflicts to be resolvedThere are no configured sync paths. Open the Synchronize tab to configure them.There are no conflicting file merges.There are no file changes to viewThere are no files that may have been renamedThere is already an existing folder with that same name.There is an existing %s.%s hook. Do you want to replace it?There is no rollback transaction availableThg - TortoiseHg's GUI tools for Mercurial SCM (Hg) This appears to be a binary file.This error will not be shown again until you restart the workbenchThree-way Merge ToolTitleToTo finish merging, you must commit the working directory. To cancel the merge you can update to one of the merge parent revisions.To graft destinationTo rebase destinationTo:Toggle display of text search barToggle filtering of non-matched changesetsToggle graft relations visibilityToggle parent to be used as the base revisionTolerate non-conflicting local changes (--keep-changes)Too many rows selected for menuTool &ResolveTool labelTool launch failureTool nameToolsTools shown on selected locationTooltipTop menu items:TortoiseHg Bookmark SyncTortoiseHg Bug ReportTortoiseHg Command DialogTortoiseHg CommitTortoiseHg Dialogs (version %s), Mercurial (version %s) TortoiseHg ErrorTortoiseHg Lock Tool - %sTortoiseHg New Shelf NameTortoiseHg Overlay Icon ServerTortoiseHg PromptTortoiseHg SearchTortoiseHg SettingsTortoiseHg Shelve - %sTortoiseHg Web ServerTortoiseHg WorkbenchTortoiseHg has created a new .hgignore file. Would you like to add this file to the source code control repository?Traditional ChineseTransplant:Trigger revision set queryTry refreshing your repository.TurkishTypeU&nbundle...UI LanguageURLURLError: %sUkrainianUnable to backoutUnable to compress historyUnable to create a Mercurial.ini fileUnable to create a config fileUnable to delete %d file or folderUnable to delete %d files or foldersUnable to determine pending changesetsUnable to determine working copy revision Unable to find changesetUnable to mergeUnable to merge chunksUnable to parse p4pending outputUnable to read fileUnable to read repository statusUnable to removeUnable to remove URLUnable to remove file %s, permission deniedUnable to save after commit pushUnable to save an URLUnable to save authenticationUnable to save auto include listUnable to save post pull operationUnable to save recurse in subrepos.Unable to save usernameUnable to show subrepository filesUnable to start the following command:Unable to translate input to local encoding.Unable to update repository nameUnable to write .hgignore fileUnable to write configuration fileUnable to write diff fileUnable to write fileUnapply all patchesUnapply one patchUnbundleUncheckUncheck all filesUncheck to consider all revisioned files for copy sourcesUncommited merge - please select a parent revisionUncompressed tar archiveUncompressed zip archiveUnderlineUndo close other tabsUndo close tabUndo last commit?Undo last transaction?Undo most recent commit (%d), preserving file changes?UnicodeUnified ChineseUnknown revision!Unlock of %s failed, retryUnlock of %s successfulUnlocking %sUnresolved conflictsUnresolved conflicts remain. Are you sure?Unsaved changes will be lost. Do you want to reload?Unsupported repository type (%s)UnversionedUpdateUpdate - %sUpdate - pull, then try to updateUpdate IconsUpdate ReviewUpdate icons for this repositoryUpdate on incomingUpdate or create a path alias called '%s' on all subrepos, using this URL as the base URL, appending the local relative subrepo path to itUpdate subrepo pathsUpdate the fields of this existing requestUpdate to:Update working directoryUpdate working directory or switch revisionsUpdate...UpdateOrRebase - pull, then try to update or rebaseUpdateOrRebase - use rebase extension (rebase is not active!)Updating repository registryUpgrading to a more recent TortoiseHg is recommended.Use English backout messageUse English commit messageUse compact viewUse current dateUse custom commit message:Use extended (git) patch formatUse git extended diff header format. Default: FalseUse my user name instead of graft committer user nameUse proxy serverUse pull protocol to copy metadataUserUser AuthenticationUser CacheUser Certificate ChainUser Certificate KeyUser authentication data should be associated with the hostname using the security dialog.User name to authenticate with review boardUser:UsernameUsername to authenticate to mail server withVerify backout revision and ensure your working directory is clean.Verify merge targets and ensure your working directory is clean.Verify with Certificate Authority certificates (best)Verify with stored host fingerprint (good)Vi&ew FileVietnameseView File atView O&therView change as unified diff outputView change history in repositoryView change history of selected filesView change in context of fileView changes to current in external diff toolView changes using GUI diff toolView file as it appeared at this revisionView file changes in external diff toolView the repository's settingsVisual DiffVisual Diff ToolVisual Diff...Visual Diffs - Visual EditorVisual diff between resolved file and first parentVisual diff between resolved file and second parentVisual diff...Visual diffs are not supported for files in subrepositories. They will not be shown.Visual three-way diffWarningWarning: affects all Tortoises, logoff required after changeWas renamed fromWeb ServerWebconfWestern EuropeWhat do you want to do? When committing, require that a reference to an issue be specified. If enabled, the regex configured in 'Issue Regex' must find a match in the commit message.When enabled, automatically show the Output Log when the command is run. Default: False.When set to 'auto', mq will automatically use git patches when required to avoid losing changes to file modes, copy records or binary files. If set to 'keep', mq will obey the [diff] section configuration while preserving existing git patches upon qrefresh. If set to 'yes' or 'no', mq will override the [diff] section and always generate git or regular patches, possibly losing data in the second case. Default: autoWhen to ask the user to confirm the update of the local "projrc" configuration file when the remote projrc file changes. Possible values are:

                                                                                                              • always: [default] Always show a confirmation prompt before updating the local .hg/projrc file.
                                                                                                              • first: Show a confirmation dialog when the repository is cloned or when a remote projrc file is found for the first time.
                                                                                                              • never: Update the local .hg/projrc file automatically, without requiring any user confirmation.
                                                                                                              Whether to allow pushing to the repository. If empty or not set, push is not allowed. If the special value "*", any remote user can push, including unauthenticated users. Otherwise, the remote user must have been authenticated, and the authenticated user name must be present in this list (separated by whitespace or ","). The contents of the allow_push list are examined after the deny_push list.Whether to deny pushing to the repository. If empty or not set, push is not denied. If the special value "*", all remote users are denied push. Otherwise, unauthenticated users are all denied, and any authenticated user name present in this list (separated by whitespace or ",") is also denied. The contents of the deny_push list are examined before the allow_push list.Whether to require that inbound pushes be transported over SSL to prevent password sniffing.Which template map style to useWhite&spaceWord docs (*.doc *.docx)Work on patch queue (--mq)WorkbenchWorkbench Log ColumnsWorkbench custom toolbarWorking CopyWorking DirectoryWorking Directory (merged)Working directoryWorking directory is not clean! View changes...Working directory statusWrap searchWrite bundleWrite diff fileWrite patch series (bundle) descriptionYou are trying to move the phase of revision %d backwards, from "%s" to "%s". However, "%s" is a lower phase level than "%s". Moving the phase backwards is not recommended. For example, it may result in having multiple heads if you modify a revision that you have already pushed to a server. Please be careful!You can change the icon set from TortoiseSVN's SettingsYou can only release your own locksYou can visit our site hereYou cannot merge a revision with itselfYou have authentication info configured for this host and inside this URL. Remove authentication info from this URL?You have marked all rejected patch chunks as resolved yet you have not modified the file on the edit panel. This probably means that no code from any of the rejected patch chunks made it into the file. Are you sure that you want to leave the file as is and consider all the rejected patch chunks as resolved? Doing so may delete them from a shelve, for example, which would mean that you would lose them forever! Click Yes to accept the file as is or No to continue resolving the rejected patch chunks.You have multiple renames selected for destination file: %s. Aborting!You have selected one or more files that have been modified. By default, these files will not be removed. What would you like to do?You likely need to refresh this applicationYou may continue or start the graftYou may continue the compressYou may continue the graftYou may continue the rebaseYou must enter a patch nameYou must identify yourself to MercurialYou must provide revisions to graftYou must provide source and dest argumentsYou must provide the path to a fileYou must set a command to run.You must set a tool name.You must set a valid hook type.Your TortoiseHg is up to date.Your current working revision (%d) will be removed by this rollback, leaving uncommitted changes. Continue?Zip archive compressed using deflateZip archives[--after PATCH] PATCH...[Code: %d][WARNING] Incomplete changed subrepository. Update to this revision to pull it.[WARNING] Incomplete subrepo. Update to this revision to pull it.[WARNING] Invalid subrepo revision ID: %s [WARNING] Missing changed subrepository. Update to this revision to clone it.[WARNING] Missing subrepo. Update to this revision to clone it.[command completed successfully %s][command interrupted %s][command returned code %d %%s][command terminated by user %s][non-existant][original][working copy]a revision to posta revision to sendabort: abort: %s abort: %s! action buttonCommitadd diffstat output to messagesaddedall revisions converted from subversionalways fork GUI processattachbasic commands: bodybookmark: branch: bundle file to previewcan not read file "%s". Ignored. cannot move applied patchescannot move into applied patchescannot specify both -k/--query and filenameschangeset %d:%schangeset to view in diff toolchangeset which represents converted svn revisionchangeset: %schangeset: %s (not found on subrepository)cleanclone only the specified branchcolumn headerAgecolumn headerAuthorcolumn headerBranchcolumn headerChangescolumn headerConverted Fromcolumn headerDescriptioncolumn headerFilenamecolumn headerGraphcolumn headerLatest tagscolumn headerLocal Timecolumn headerNodecolumn headerPhasecolumn headerRevcolumn headerTagscolumn headerUTC Timecommand parse error: %sconfig itemCommitcorrupted command result: %rdefaultdiffstatdiscard uncommitted changes (no backup)display help and exitdo not back up stripped revisionsdo not commit the sigfile after signingdo not fork GUI processdo not modify working copy during stripenable additional outputenable debugging outputeol is incompatible with win32texterror while running command exec mode has been setexec mode has been unsetfailed to encode command: %sfailed to encode input: %sfailed to fork GUI process: %s failed to start command field to give initial focusfile has been deleted, refreshfile has been modified, refreshfilesfilesAllfilesNonefilling (%d)filterglobal options:grep: %s grep: invalid match pattern: %s hggit packaged with thghgsubversion is incompatible with perfarcehgsubversion packaged with thghint:hint: historyignore case during searchignoredimport to the patch queue (MQ)in the futureinclude the specified changesetinitial search patterninlineinotify is not supported on this platforminvalid "hello" message: %rinvalid argumentsinvalid line number: %sinvalid patch position specifiedkeep original branch nameskeep original changesetslaunch visual diff toollist of commands: locallsprof not available - install from http://codespeak.net/svn/user/arigo/hack/misc/lsprof/make the signature localmake the tag localmerge with old dirstate parent after backoutmethodmissingmodifiedmove after the specified patchmust be specified 'type' in stylemust be specified repositoryname of the hgweb config file (DEPRECATED)name of the hgweb config file (serve more than one repository)needs merge of %i heads needs merge with %s needs merge with %s (through %s) needs update of diff base to tip of %s no "runcommand" capabilityno command specifiedno commands defined no guardsno matches found: %sno outgoing changesetsno outgoing changesets in current branch (%s) / %d in totalno outgoing changesets up to current revision (#%d) / %d in totalno outgoing changesets up to revision #%d / %d in totalno repo at no revisions specifiednotify the shell for paths givennownull revision (i.e. remove file(s))only one new bookmark name allowedopen a new workbench windowopen the bookmark sync windowopen to lineopen...option --config may not be abbreviated!options: parent to choose when backing out mergepassword: patch %s not in seriesperfarce is incompatible with hgsubversionprint command execution profileprint licenseprocess exited unexpectedly with code %dpull: %s push: %sread file list from fileread file list from file encoding utf-8rebase from the specified changesetrebase onto the specified changesetrecord datecode as commit daterecord user as committerremove a tagremove the status cacheremove working directoryremovedreplace existing tagrepository %s not foundrepository root directory or symbolic path namerequires a single filenamerev: %d (%s)revisionrevision %d's first parent (i.e. revision %d)revision %d's second parent (i.e. revision %d)revision to annotaterevision to archiverevision to backoutrevision to displayrevision to mergerevision to striprevision to tagrevision to updaterevision, tag or branch to check outrevisions %d:%s to %d:%srevisions to graftrevisions to prunerevisions to view in diff toolsearch for a given text or revsetselect the specified revisionselected filessend patches as attachmentssend patches as inline attachmentssend patches as part of the email bodyset/override config option (use 'section.name=value')show files without changesshow ignored filesshow the contents of the status cache (no update)side-by-side comparison of revisionssign even if the sigfile is modifiedstart debuggerstart progressCommitstart progressMQ Actionstart progressRollbackstatussubreposuppress outputsync command already runningtab tooltipCommittab tooltipConsole logtab tooltipPatch Branchtab tooltipRevision detailstab tooltipSearchtab tooltipSynchronizethe clone will include an empty working copy (only a repository)the key id to sign withthe revision to showthg %s: %s thg aboutthg add [FILE]...thg annotatethg archivethg backout [OPTION]... [[-r] REV]thg bisectthg bookmarks [-r REV] [NAME]thg clone [OPTION]... [SOURCE] [DEST]thg commit [OPTIONS] [FILE]...thg debugblockmatcherthg debugbugreport [TEXT]thg debugconsolethg debuglighthgthg debugruncommand -- COMMAND [ARGUMENT]...thg drag_copy SOURCE... DESTthg drag_move SOURCE... DESTthg email [REVS]thg filelog [OPTION]... FILEthg forget [FILE]...thg graft [-r] REV...thg grepthg guessthg help [COMMAND]thg hgignore [FILE]thg import [OPTION] [SOURCE]...thg init [DEST]thg lockthg log [OPTIONS] [FILE]thg manifest [-r REV] [FILE]thg merge [[-r] REV]thg postreview [-r] REV...thg prune [-r] REV...thg purgethg rebase -s REV -d REV [--keep]thg rejects [FILE]thg remove [FILE]...thg rename [SOURCE] [DEST]thg repoconfigthg resolvethg revdetails [-r REV]thg revert [FILE]...thg rupdate [[-r] REV]thg serve [--web-conf FILE]thg shellconfigthg shelvethg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]thg status [OPTIONS] [FILE]thg strip [-k] [-f] [-n] [[-r] REV]thg sync [OPTION]... [PEER]thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]thg thgstatus [OPTION]thg update [-C] [[-r] REV]thg userconfigthg version [OPTION]thg: %s thg: command '%s' is ambiguous: %s thg: unknown command '%s' timed out waiting for messagetimed out while reading: %r...unexpected response on required channel %runknownunknown patch to move specifiedunknown revision!unrecognized profiling format '%s' - Ignored unrecognized response: %sunsupported URL: %supdate all repos in current diruse "thg -v help %s" to show global optionsuse "thg -v help%s" to show aliases and global optionsuse "thg help" for the full list of commandsuse "thg help" for the full list of commands or "thg -v" for detailsuse as commit messageuse only one form to specify the revisionuse pull protocol to copy metadatause uncompressed transfer (fast over LAN)version %swait until the second ticks overwill be closedwin32ill: cannot create window for messageswin32ill: interrupted while stopping message loop win32ill: unsupported platform: %s win32text is incompatible with eolwindow titleCommitwith Mercurial-%s, Python-%s, PyQt-%s, Qt-%sworking changesworking dir stateCleanwrap mode&NoneProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2018-02-05 16:48+0000 Last-Translator: onekosha Language-Team: Ukrainian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2; X-Launchpad-Export-Date: 2019-07-17 05:45+0000 X-Generator: Launchpad (build 19009) Будь ласка перевірте чи команда "thg" коректна. Надійшло переривання від клавіатури, припинення. псевдоніми: %s (типово: %s) (копіювати з %s) (посилання) (поза контролем версій) (зміна назви з %s) (був доданий) (був доданий, зараз відсутній) (був знищений) фільтрований"%s" не тека"%s" не існуючий каталог"%s" вилучено з шляху пошуку"%s" вилучено з історії пошуку### текст фільтру ###### вузол сертифікату відбитків пальців ###### назва латки ###### регулярний вираз ###### регулярний вираз для пошуку ###### запит встановлення правки ###$FILE_ENCODINGS% Збіги%d доба%d доби%d діб%d файлів мають конфлікти злиття ви повинні їх розв'язати%d файл(-ів) мають зміни у обох гілках і це потребує розв'язування%d година%d години%d годин%d збігів знайдено%d хвилина%d хвилини%d хвилин%d місяць%d місяці%d місяців%d вихідних наборів змін%d вихідні набори змін в поточній гілці (%s) / %d загалом%d вихідний набір змін до %s%d вихідних наборів змін в поточній правці (#%d) / %d загалом%d вихідних наборів змін в правці #%d / %d в загальному%d латки було експортовано до:

                                                                                                              %sзнайдено очікуваний набір змін %d%d секунда%d секунди%d секунд%d тиждень%d тижні%d тижнів%d рік%d роки%d років%d%%%dpt%p%%s (підказка: %s)%s (в очікуванні)%s (представлений)%s - Деталі правки (%s)%s - Робоче середовище TortoiseHg%s - Робоче середовище TortoiseHg - %s%s - дія з гілкою%s - фіксація%s - параметри фіксації%s - hg %s%s - очиститивідновити сховище - %s%s - стан%s - стан (selection filtered)%s - параметри обміну%s - перевірка сховища%s : %s%s <вхідний>%s вже існує, замінити URL?%s та %s мають однаковий вміст %s помилка сертифікату: відсутній отримувач сертифікату%s містить відхилені шматки, правити файл разом з відхиленими?%s брудне підсховище%s додано%s знищено не командою hg, тому все ще під контролем%s ігноровано%s змінено%s не допустимий тип сховища%s не змінений (первісний)%s не відстежується (невідомий)%s вилучено%s латки%s налаштування проекту (.hg/projrc)Налаштування сховища %s%s буде імпортовано до Налаштування користувача %s'Про TortoiseHgДодатиДодати сховище...Після відступуПредки та нащадкиАрхівАрхівувати...АвтоВизначати автоматичноАвто-доповненняВідновлення...Половинити...ГілкаПроглянути...Запакувати правку та похідні...&СкасуватиСимволОчиститиКлонуватиЗакритиЗакритиФіксуватиФіксувати до черги...Фіксувати до поточної гілкиСкопіюватиКопіювати латкуКопіювати...&СтворитиПенал налаштуваньЗнищитиЗнищити латки...Знищити чергу...Знищення неверсійованих...Різниця іншого до предкаРізниця вказаного файлу правокРізниця з іншимРізниця з попередникомВідкинутиВідхилити (--force)Відкинути зміниСтикувати пеналПравити файлПравити локальнийПенал правкиПравити...Параметри редактораEmail латка...ВихідНіФайлФільтр пеналівОстаточна латкаПлаский списокПримусовоЗабутиПерейти (поновити робочий каталог)Перейти до правки...Щепити до локальної...ДовідкаІгнорувати...ІмпортуватиІмпортувати латки...ВхіднийНевидимийУтримати (--keep)Ліцензійна угодаЛокальнийЗаблокувати файл...MacСтворити секретВідмітити виключні зміниВідмітити, як розв'язанеВідмітити, як не розв'язанеВідмітити, як розв'язанийЗбігиЗлитиЗлити з локальною...Злити...Більше параметрів...ПересунутиСтворити...&НіНі (відкинути зміни)ВідкритиВідкрити всеВідкрити локальнийВідкрити...Правка, яка з'явилисьІншеВихіднийПопередня правкаПопередник правки (%d)ВставитиГілка ЛатокСпроститиПідчистити вказане...Підчистити...ВитягнутиОчищення черги...Очистити...Виштовхнути закладкуReadmeПеребазувати...ПовернутиПерезавантажитиПерезавантажити список сховищПоновити зовнішне...ВилучитиВилучити закладкуВилучити...Переназвати активну чергу...ЗамінитиСховищеЗміна розміру колонокРозв'язати...ПовернутиПовернутись до правки...Повернути з резервної копіїПовернути...ВиконатиЗберегтиЗберегти правку...Сканувати сховища під час стартуПошукПошук в поточному файліВибір...НалаштуванняВідкладатиВідклаcти...ПідписатиПропустити цю правкуСортуванняСортувати за .hgsubПрогалиниРозрізатиВідтяти...Узгодити закладки...ТабуляціяВставляти табуляціюЗріз...Використати локальнуПенал завданьКомандний рядокТакНе прийняті латкиСкасуватиUnixНе визначеноПоновитиПоновити...ПеревіритиВиглядПереглянути зміниПереглянути відсутніПереглянути в правціВидиміВеб-серверВікнаСловоПенал середовищаОбгорнути&Так'Публікація' сховища(%s) (ЗАСТАРІЛО)(виключені з наступної фіксації)(змінене та брудне підсховище)(змінилося підсховище)(брудне підсховище)(нове та брудне підсховище)(є нові підсховище)(вилучене підсховище)(не змінилося підсховище)(довідка не доступна)(така же, як і попередня)*: не використовується TortoiseHg, розв'язане злиття, не розв'язані конфлікти злиттяСторонні знаряддяСторонні засоби порівняння каталогівЗапуск знаряддя налаштувань...%d набір змін буде порізаний%d наборів змін будуть порізані%d набори змін будуть порізаніОпис:Найкращий збігВідмінність між джерелом та призначеннямВузол: %sФільтр ігноруванняПомилка параметрів!Інформація про сховище:Відновити %d файли до їх змісту в наступному варіанті?Повернути %s до змісту в наступному варіанті?Обрати параметри:Оберіть налаштування: %sВиявлено незафіксовані локальні зміниНевідома правка!Файли, поза контролемФайли поза контролемВеб сервер:<типові піктограми><типово><не визначено>= Робочий каталог попередника =Файл README відсутній у поточному сховищі.

                                                                                                              Для створення файлу README для сховища, відкрийте файл налаштувань сховища, додайте ключ 'readme' до секції 'tortoisehg' та вкажіть назву файлу або URL до сховищ з README файлами.Закладка з назвою "%s" вже існуєПерелік групових завдань, через кому.Перелік людей групи, через кому.Нова версія TortoiseHg (%s) є готовою до завантаження!Сховище не може бути додане підсховищем само собіІдентифікатор правки, закладки, зріза або назва гілкиФайл полички з такою назвою вже існуєНазва полички не може містити %sКомандний рядок не доступний ззовніОболонка терміналу повинна бути налаштованаДодати підсховище...АвторПерерватиПрипинити операцію експорту. Припинено p4pendingПро програмуПро QtПро TortoiseHgПрийнятиПрийняти всі збігиПрийняти обрані збігиПрийняти локальну версію файлу (вашу)Прийняти інший файл версії (їхню)Задіяти закладкиЗадіяти закладки?Активувати:ДодатиДодавати великі файлиДодати великий файл...Додати файли...Додати шлях до ServeДодати сховище до групиДодати, як великі файлиДодати, як звичайні файлиДодати файли під контрольДодати фільтр ігнорування...Додані або вилучені латки повинні бути злиті в робочий каталогДодати обрані файли до сховища?Додати розділювачДодати в перелікДоданийДодано зріз %s для набору змін %sОперація після витягуванняДодано:АліасВся історіяВсі набори змін належать до гілок наборів змін в наборі.Всі зміни, подібно до 0:верхівки.Усі файли з конфліктами позначити, як не розв'язані.Всі конфлікти розв'язані.Усі змістиУсі файли (*)Усі елементиУсі правкиВсі не збережені файли буде втрачено.Дозвіл виштовхуватиДозволити виштовхувати з нової гілки (--new-branch)Дозволяти виштовхувати нові гілки (--new-branch)Завжди зливати (за можливістю)Відображати сховища на вкладках завжди, навіть в разі одного сховища. Типово: ні.СкасуватиСкасувати поточну правкуПсевдонім для "::." (походження робочої копії першого попередника).Порожній набір, якщо будь-яка правка не знайдена; інакше, всі правки в наборі.Сталася помилка під час читання файлу.Сталася помилка при поновленні файлу hgrc сховища (%s)Сталася помилка при записі у файл.Сталася помилка під час завантаження підсховища:

                                                                                                              "%s"

                                                                                                              Виявлено пошкоджену операцію щеплення. Ви не можете виконати іншу операцію щеплення, якщо є невдало завершена операція щеплення.Опис файлуКоментувати налаштуванняОпис з номерами правокЗатвердити форматПрикріпитиВнести інформацію про прищепу до журналу повідомленьПрийняти зміни до латки файлів, що існує. Прийняті латкиЗастосувати латки або qparentЗастосувати всі латкиЗастосувати зміни перед виходом?Затосувати одну латкуЗастосувати лише латкуЗастосувати лише оригінального попередникаЗастосувати латкуАрабськаАрхів - %sФормати архівівАрхів типів:Ви впевнені, що бажаєте скасувати операцію фіксації?Ви дійсно бажаєте знищити ці файли та/або теки?Ви впевнені, що бажаєте переписати це ?Ви впевнені, що бажаєте перезавантажити файл?Ви впевнені?Запитати ім'я користувачаАвтоматичне злиттяСпробувати виштовхувати за вказаним URL або псевдонімом після кожної успішної фіксації. Типово: не виштовхувати.АвторКольори авторівАвтоматично фіксованіАвтоматично виключеніАвтоматично приєднати:Розв'язування конфліктівАвтоматичний перехід до наступної сторінки, коли відновлення та злиття виконано.По завершенню злиття автоматично переходити до наступної сторінки.Автоматично розв'язувати конфлікти злиття де можливеНазадПовернений набір змін: Повертання попередньої правки за один крокПовернути та фіксувати...Повернення, потім злиття...Відновлення - %sВідновлення набору змінВідновити поточну латку гілкиВідновлення вимагатє попередню правкуВідновити правкуBackport частини залежного набору змінBackspace або Del для вилучення ряду(ків)Резервні копії для змінених файлів можуть бути знайдені у .hg/Trashcan/Запит на зміну фази навпакиПогана назва файлуБалтійськаПрихованаПеред відновленням, ви повинні зафіксувати, відкласти латки або відкинути зміни.Перед стисканням, ви повинні зафіксувати, відкласти до латки, або відкинути зміни.Перед щепленням, ви повинні зафіксувати, відкласти до латки, або відкинути зміни.Перед злиттям потрібно зафіксувати, відкласти до латки, або відкинути зміни.Перед переміщенням, ви повинні зафіксувати, відкласти до латки, або відкинути зміни.Половинити - %sПоловинити - Погано, Добре...Половинити - Добре, Погано...ЖирнийЗакладка...Закладка '%s' не існуєЗакладка '%s' була доданаЗакладка '%s' була втраченаЗакладка '%s' була вилученаЗакладка '%s' змінила назву на '%s'Закладка - %sЗакладки із назвою "%s" не існуєЗакладка:ГілкаКольори гілокГілка:Гілка: Переглянути в правціПереглянути каталог...Проглянути...Пакунок DAG діапазону...Запаковані файли (*.hg)Пакування зберігає повний набір змін у двійковому форматі. Користувачі на іншій стороні можуть витягнути з них. Це самий безпечний шлях для надсилання змін отримувачам, які використовують Mercurial.ВиключенняАрхіви bzip2 tarСтовпці журналу...Налаштувати форматКомандний рядокНеможливо змінити налаштування без аналізу пакунку ini-файлів - перегляд лише для читання.Не можливо знайти '%s' правкуСкасуватиНе можливо додати підсховищеНе можливо відновити зміни на іншій гілціНеможливо експортувати правкуНеможливо експортувати правку %s у файл з назвою: %s Неможливо імпортувати обрану правкуНеможливо відкрити діалог Налаштуваня МодулівНе можливо відкрити не Mercurial сховище або підсховищеНе можливо відкрити сховищеНе можливо відкрити файл .hgsub в:

                                                                                                              %sНе можливо прочитати .hgsub файл.

                                                                                                              Переміщення підсховища не вдалось.Неможу започаткувати новий пошукНе можливо поновити файл .hgsub в:

                                                                                                              %sНе можливо поновити .hgsub файл.

                                                                                                              Переміщення підсховища не вдалось.КопіяКопія:ІрландськаЦентрацьна та західна ЕвропаПомилка запиту сертифікатуЗмінити фазу наШрифт журналу змінЗмінені цією фіксацієюЗміни будуть втрачені, Ви повинні зараз їх зафіксуватиЗміни матимуть ефект наступної фіксаціїПосилання на набір змінНабір змін є злиттям набору змін.Набір змін називається головою гілки.Набір змін закритий.Набір змін ярликовано.Набір змін з найвищим номером правки в наборі.Набір змін з найнижчим номером правки в наборі.Набір змін:Набори змінНабір змін містить файли відповідно до шаблону.Набір змін не знайдено у спеціально призначеному сховищі або типовому місці виштовхування.Набори змін в сукупності є предками набору змін в наборі.Рядок, що містить набір змін користувача.Набір змін, що додає файли відповідно до шаблону.Набори змін, який є похідними набору змін в наборі.Набір змін, що змінює файли відповідно до шаблону.Набір змін, що вилучає файли відповідно до шаблону.Набори зміни з наборами змін без батьків в наборі.Кодування файлів в сховищі, використовується веб-інтерфейсом і TortoiseHg.ЗвіритиФази підсховищаЗвірити всі файлиПеревірити наявність вхідних змінПеревірити вхідні зміни з %sПеревірити сформовані зміни з URLПеревірити фазу поточної правки у кожному підсховищи. При інших налаштуваннях, ніж "ігнорувати", фаза поточної правки кожного підсховища перевірятиметься до фіксування батьківського сховища. Типово: слідувати.Перевірена кількість: %dПеревіркаПеревіряння поновлень...Перевіряємо стан робочого каталогу...Перевірка...Відмітити файли для додаванняЗабути відмічені файлиВідмітити файли для вилученняВідмітити файли для поверненняДитина набору змін дочірнього набору змін в наборі.Нащадок:Обрано %d / %d куснівОчистити журналЧистийОчиститиОчистити вміст полиці %s?Очистити поточний та текстовий запитОчистити поточну файлову поличкуНатисність ОК аби продовжити або Припинити для виходу.Клонувати...Клонувати...Клонувати - %sКлонувати сховищеКлонувати до правки:Клонувати...ЗакритиЗакрити гілку %sЗакрити після фіксаціїЗакрити гілку: Закрити поточну гілкуЗакрити інші вкладкиЗакрити вкладкуЗакривати знаряддя фіксації після кожної успішної фіксації. Типово: ні.Закрити:Порівняти правки файлуЗруйнувати набір змін переміщення (--collapse)Підсвічувати різними кольорами набори змін відповідно до автора. Типово: НіПерелік форматів архівів, через кому, дозволений для отримання.Перелік назв гілок, через кому, які ігноруватимуться коли побудується перелік назв гілок сховища. Типово: невизначено (залишити порожнім).Перелік шаблонів, через кому, виключених файлів. Ці шаблони застосовуються після шаблонів включення.Перелік файлів, через кому, які автоматично додаватимуться з кожною фіксацією. Призначено для використання лише в якості параметрів сховища. Типово: жоден (залишити порожнім).Перелік файлів, через кому, з яких автоматично зніматиметься мітка стану, і відкриватимуться діалоги фіксації. Типово: невизначено (залиште порожнім).Перелік масок файлів, через кому, які включатимуться. Типово пошук проходить у всьому сховищі.Перелік адрес електронної пошти прихованих отримувачів, через кому.Перелік адрес електронної пошти отримувачів копій листа, через комуПерелік адрес електронної пошти отримувачів, через кому.КомандаПомилкова командаКомандний рядокВикористовуватиметься SSH для з'єднання.

                                                                                                              Типово: "ssh" або "TortoisePlink.exe -ssh -2" (Windows)ЗафіксуватиПенал діалогу фіксаціїФіксувати згодомФіксувати заразПараметри фіксаціїЗафіксувати результати відновлення та злиття.Зафіксувати зміниФіксувати зміни в сховищеЗакінчити з контекстне менюЗафіксувати результати злиттяПовідомлення фіксаціїФіксувати...Фіксувати...Звичайна сукупністьПорівняти правки вказаного файлуПорівняти з першим попередникомПорівняти з другим попередникомПеремістити цілий файл з латки?СтисненняСтиснути - %sСтиснути історію...Стиснути набори зміни, в тому числі включеніСтискання завершено, стара історія не порушенаНалаштування файла:Файли налаштувань (*.conf *.config *.ini)Помилка налаштувань: "%(arg0)s",
                                                                                                              Будь ласка, виправте налаштуванняКонфігурувати знаряддя користувачаНалаштування додатків ПровідникаНалаштувати гачокНалаштування Issue TrackerНалаштування захистуНалаштувати захист обраним латкамНалаштувати параметри сховищаНалаштування обраного COM-модуля системи контролю помилок.Налаштування параметрів користувачаНалаштування COM об'єкту IBugTraqProvider або IBugTraqProvider2 модулю контролю питань.Підтвердити додаванняПідтвердити зміну гілкиПідтвердити знищенняПідтверджувати знищення неверсійованихПідтвердити відмовуПідтвердіть відхилення змінПідтвердіть відмову від повідомленняПідтвердити ВихідПідтвердження для нової гілкиПідтвердіть перезаписПідтвердити виштовхуванняПідтвердіть виштовхування до зовнішнього сховищаПідтвердіть перезавантаженняПідтвердження вилученняПідтвердіть поверненняПідтвердіть збереженняПідтвердіть розрізанняПідтвердіть заміну URLПідтвердіть скасуванняПідтвердіть поновленняДодавання невідомих файлівПідтвердіть знищення файлівПідтвердити знищення файлівПідтвердити перемикання черги латокПідтвердіть знищення шляхуПід`єднати до Review Board...Вважати, що перше щеплення зазнало невдачі.Вважати скасованим перше перебазування.КонсольКонтактКонтекстне менюПродовжити або припинити перервану операцію щеплення?Керує поведінкою чорнової фази коли працює сервер. Якщо Так, виштовхування наборів змін встановлено до публічного, як на клієнтах так і на серверах і витягування або клонування наборів змін встановлено з публічного клієнта. Типово: так.Перетворити існуюче сховище у підсховищеПерероблено з:КопіюватиКопіювати хешКопіювати шляхКопіювати - %sПомилка копіюванняКопіювати обране, як латкуКопіювати повний шлях файлу до буферу обмінуКопія повідомленняКопіювати одне з останніх повідомлень фіксаціїКопіювати джерело в призначенняСкопіювати шлях корня сховища до буферу обмінуКопіювати робочий каталог файлів з скелетонаНе можливо отримати перелік підсховищНе встановлений СОМ об'єкт Tracker PluginНе вдалося відкрити .hgsub файлНеможливо відкрити деякі підсховищаНе можливо відкрити спеціальний файл для читання.Не можливо відкрити спеціально файл для запису.Не можливо перетворити зміст файлу від національних кодувань.Не можливо перетворити зміст файлу до національних кодувань.Не можливо поновити .hgsub файлСтворитиСтворити гілкуСтворити нову чергу...Створити чергу латокСтворити сховище тутСтворити нову групуСтворити нову латкуСтворити нове сховищеСтворити клон тут з джерелаСтворити відмінності з всіма змінами в цій гілціСтворити відмінності до всіх вихідних змінСтворити нову іменовану гілку "%s" разом із фіксацією? ВирізатиВинуватця знайдено.Поточна локальна правкаНалаштування користувацького пеналуЗнаряддя користувачаКирилицяДатаДата:Виявлення змін назв...Вимкнути поточну закладку?Мертві гілкиВиштовхнути за типовим сценаріємТиповий виглядВизначити команду запуску коли номер запиту розпізнано. Ви можете включити групи в issue.regex, та аналогічний {n} знак в issue.link (де n є додатне ціле). {0} посилань до відповідного рядка відповівідностей issue.regex, коли {1} посилань до першої групи і так далі. Якщо відсутнє {n} знаків знайдено в issue.link, весь рядок приймається як відповідний.Визначає регулярний вираз відповідно до піднятих номерів питань.ЗнищитиЗнищити %d файл у .hg/TrashcanЗнищити %d файли у .hg/TrashcanЗнищити %d файлів у .hg/TrashcanЗнищити %d ігнорований файлЗнищити %d ігнорованих файлівЗнищити %d ігнорованих файлівЗнищити %d невідомий файлЗнищити %d невідомих файлиЗнищити %d невідомих файлівЗнищити %s з файлу налаштувань Вашого сховища?Знищити групу '%s' а також всі її елементи?Знищити чергу латокЗнищити латкиЗнищити знаряддяЗнищити порожні текиЗнищити з перелікуЗнищити гачокЗнищити латки...Знищити посилання наЗнищити обрані кусніВидалити обрані шматки з полиці файлів %s?Видалити обрані шматки з робочої копії?Знищити обрані латкиЗнищити обраний запит з історіїЗнищити файл полички %s?Знищити поточну файлову поличкуЗнищити наступні неверсійовані файли?Знищено %d файлівЗнищено %d файлів та %d текЗнищений*Знищити теки у кошику...Знищення не вдалеЗаборона виштовхуватиОписПризнач.Файл призначення вже існує.Шлях призначення:Куди:Виявлено копій/змін назв у %sПеревірити наявність вихідних змінВизначити вихідні зміни до %sВиявити вихідні зміни до обраного URLВиявити зміну назви та копіїЗнайдене знаряддя злиття/порівняння:Знайдено незафіксовані локальні зміни. Будь ласка, оберіть продовження: Наявні незафіксовані локальні зміни.Визначає, чи повинна TortoiseHg показати діалогове вікно підтвердження перед виштовхуванням змін. Якщо ні, виштовхування буде виконано без діалогу підтвердження. Типово: так.Визначає, коли issue tracker поновлюватиме стан TortoiseHg. Допустимі значення параметрів:

                                                                                                              • ніколи: не поновлювати системою контролю питань, встановлено автоматично.
                                                                                                              • фіксація: оновлювати системою контролю питань після успішної фіксації змін.

                                                                                                              Типово: ніколи.Визначення вихідних наборів змін для відправки поштою...Різниця між набором змін та попередникомЛокальна різницяРізниця між локальним та предкомРізниця між набором змін та поточним сховищемФайл різниць доШрифт відмінностейРізниця вказаного набору змінПенал порівняньЛатки та описВідмінності вмістуНе відображається різниця: Різниця до локальногоОднорівнева різницяРізниця каталогу до p1Різниця каталогу до p2Порівняння каталогуКаталог файлівВідкинути - відкинути локальні зміни, без резервної копіїВідкинути всі зміни з інших правокВідкинути поточне повідомлення відновлення?Відкинути поточне повідомлення про фіксацію?Відкинути локальні зміни (revert --all)Відкинути поточні зміни, резервна копія відсутня (-C/--clean)Відмінити локальні зміни, без резервної копії (-f/--force)Відмовитись від змін у робочому каталозі?Відкинути зовнішні зміни, без резервної копії (-C/--clean)Відображати закриті гілкиВідобразити графік лише зазначеної гілкиВідображати лише активні гілкиПоказувати файл завждиВідображати %(count)d з %(total)d елементівDnD обмінНе включати дату змін до заголовку різниць. Типово: ні.Не змінюйте робочу копію протягом розрізання (-k/--keep)Копії файлів (*.orig) не зберігатиНе вказувати пункти меню на неверсійованих теках (використовуйте shift + натисніть, щоб перевизначити)Не розрізати шляхи (-p0), вимогати для SVN латокНе поновлювати новий робочий каталогНе перевіряти сертифікат вузлаВи дійсно бажаєте примусово перемкнути фазу на протилежну?Ви дійсно бажаєте активувати чергу латок '%s'?Ви дійсно бажаєте вимкнути закладку %s?Ви дійсно бажаєте зробити цю правку секретною?Ви дійсно бажаєте видалити сховище "%s" з сховища попередника "%s"Бажаєте вийти?Ви бажаєте отримати їх або відмовитись від них?Перетягніть аби змінити порядокПовторення назвиКодуванняВихідОглядачДослідити у текуДослідити локальнийДовідка провідникаЕкспортуватиЕкспортувати латку...EOL режимEOL видимістьПравитиПравити файлПравити фільт виключеньПравити локальнеПравити шлях до ServeПравити відкинутеПравити знаряддя ...Правити поточний файл в робочій копіїПравити файлПравити гачокПравити латку граф залежностейПравити латаний файл та відхилити?Правити фільт виключень сховищаПравити розв'язаний файлПомилка запуску редактораEmailEmail DAG діапазон...Email вибраного...Адреса електронної пошти відображувана у заголовку "Від" SMTP повідомлення.Відправити вихідні набори змін для зовнішнього сховища поштоюВидати результат налагодження (--debug)Увімкнути обробку позначокУвімкнути позначкиКодуванняАнгломовні повідомленняВведіть номер рядка (1 - %d)Вкажіть ідентифікатор правкиПомилкаСталася помилка.Помилка виконання "commit finished" перехоплювачаПомилка отримування повідомлення про фіксацію інформації з модуля Issue TrackerПомилка завантаження підсховищаПомилка попереднього перегляду підсховища: %sПомилка в рядку "%(arg0)s" в %(arg1)s
                                                                                                              Будь ласка виправте налаштуванняПомилка запису до файлуФайли Excel (*.xls *.xlsx)ВиключитиБез урахування:Виконати спеціальним знаряддям '%s'ЗакритиВийти не завершивши розв'язування?Вихід з незавершеного щеплення не бажаний.Вихід, із не завершеної операції перебазування не рекомендується.Налаштування розширення ПровідникаНалаштування розширення Провідника - TortoiseHgЕкспорт DAG діапазону...Експорт різниці...Експорт вибраного...Експортувати латкиЗовн.ДодаткиДодати сховище не вдалосьНе вдалось додати підсховищеTortoiseHg не змогла виконати команду користувачаНе вдалось виконати команду користувачаНе вдалось завантажити issue tracker '%s': %sНе вдалось завантажити issue tracker: '%s': %s. Не двалося відкрити шлях в терміналіНе вдалось відкрити сховищеНе вдалося перезавантажитиНе вдалось!Залити - використати заливання (автоматично злити отримані зміни)Залити - використати додаток fetch (fetch не активне!)Однакові поля:ФайлФайл Історія / ОписСтовпці журналу відмінностей файлуФайл історіїСтовпці журналу файлу історіїПенал переліку файлівСтан файлуФайл стану:Такий файл вже існуєКонфлікти в файлах повинні бути розв'язаніФайл контекстного меню (маніфест та розлого про правку)Двійковий файлФайл більше за максимально дозволений. maxdiff = %s KбФайл повинен бути двійковим (перевищення максимальної довжини рядка)Файл або різниця не показувані: Файл або відмінності не відображаються: Розмір файлу більше за максимально допустимий. maxdiff = %s KбСукупність шаблонів файлівІм’я файлуФайлиПринаймні файли, розмір яких вказаний у мегабайтах, будуть додані, як великі файлиФайли, для яких вказаний розмір (в мегабайтах) будуть додані, як великі файли (largefiles)Файли з назвами, які відповідають вказаним шаблонам, будуть автоматично додані, як великі файлиФайли з назвами, які відповідають вказаним шаблонам будуть автоматично додані, як великі файли (largefiles)Фільтр історіїФільтрВідфільтрувати граф за наборами правко або гілокФільтр:Знайти зміни назвЗнайти копію та/або переіменовані джерелаЗнайдено збігів - %sЗнайти правки з однаковими полями:Знайти правку, що "match" одне або більше полів даного набору правок.Знаходження вихідних наборів змін до %s...ЗавершеноПерший з n членів набору.Перший попередник всіх наборів змін в наборі, або робочий каталог.Виправлені правкиПрапорець:Підшити латку...Відстежувати копіювання та перейменуванняШрифт використовувани у журналу змін. Типово: monospace 10.Шрифт у повідомленні фіксації. Типово: monospace 10.Шрифт використовуваний вихідними повідомленнями. Типово: sans 8.Шрифт використовуваний для показу різниці текстів. Типово: monospace 10.ШрифтиДля деяких видів правок знаряддя буде увімкнено це враховується лише коли знаряддя показано доступним у контекстному меню правок.Група вкладок сховищаПримусове злиття з простроченими змінами (-f/--force)Примусово виштовхнути або pop (--force)Примусово виштовхувати або витягувати (нехтуючи перевіркою надійності, --force)Примусово виштовхувати до зовнішнього місця (-f/--force)Примусово вилучати змінені файли (--force)ЗабутиЗабути файли...Окремий GUIВпередЗнайдено %d вхідні зміниЗнайдено вхідний набір змін з %sВідВід:П.І.Б.Повний шлях у заголовкуID користувача прив'язаний до електроного підпису. Типово: невизначено (залиште порожнім).Створювати повідомлення фіксації англомовні, навіть якщо змінні середовища LANGUAGE або LANG встановлені, як не англомовні. Ці налаштування застосовуватимуться до діалогів злиття, зрізу та відновлення. Типово: ні.Отримання вхідних змін з %s...Формат gitGit латки можуть описувати двійкові файли, копії, та зміни прав, але отримувачі зможуть використовувати їх лише із git або Mercurial.GlobСпільні налаштуванняGnuPGПерейти до латкиПерейти доПерейти до рядкаПерехід до вказаної правкиПерейти до поточної правкиПерехід предку від %s до %sПерейти до спільного предкаПерейти до правкиЩепитиПрищепа - %sЩепити обране до локальної...Щеплення припиненоПрищепити набір змінПрищепити набір змін #%d до %dЩеплення не вдалосяЩеплення генеруватиме конфлікти злиття, які потребуватимуть розв'язуванняЩеплення завершеноПрищепа:ГрафГрафічний додаток злиття для розв'язування конфліктів злиття. Якщо не визначено, Mercurial буде використовувати першу ліпшу програму знайдену у Вашій системі або використає вбудоване знаряддя злиття, яке додасть маркери конфліктів безпосередньо до файлу. Обравши internal:merge — будуть вставлятися маркери конфліктів, internal:prompt — буде запит на вибір між двома версіями файлу, або internal:dump — файли будуть залишатися в робочому каталозі до злиття в ручному режимі.Найкращий спільний предок двох наборів змін.ГрецькаЗахист: %d/%dПрипустити зміну назвиАрхіви gzip tarПомилка HTTP: %d (%s)Вершина недосяжна!ЄврейськаКоманда Hg:Перегляд файлу журналу [%s] - %sHg латки (які створені командою експорту) є сумісними з більшістю програм. Вони включають в себе заголовок, що містить метадані найбільш важливого набору змін метаданих.Прибрати розлогоПриховати ознакиПриховувати контекстне меню поза сховищамиПідсвітити піктограмуТип гачкаГачкиВузолІм'я вузла та (необов'язково) порт проксі-сервера, до прикладу "мій_проксі:8000".Ім'я вузла сервера електронної пошти.Ім'я вузла використовуваного відправником за поштовий сервер.Кількість рядків через які повинні з'являтися "зебрачі смуги" при багаторядковому результаті. Типово 1; встановивши 0 відключено.ПіктограмаЗначкиЯкщо ім'я користувача не було вказане, користувачу буде запропоновано ввести ім'я користувача. Типово: НіЯкщо вказано, файли в сховищі, як то .hgignore, копіюватимуться до щойно створеного сховища.Якщо Так, тоді об'єднувати декілька ліній в сумарний набір змін і обрізати їх по 80 символів за потребою. Типово: Ні.Якщо у Вас виникли проблеми, будь ласка створіть звіт про помилку.Ігнорувати Ігнорувати порожні рядкиНе зважати на кількість прогалинІгнорувати прогалиниБез урахування регіструІгнорувати зміни викликані прогалинами. Типово: ні.Ігнорувати зміни в кількості прогалин в описі. Типово: ні.Ігнорувати зміни порожніх рядків. Типово: ні.Не вважати порожні рядки в описі, як зміни. Типово: ні.Фільтр ігнорування - %sІгнорувати прогалини при порівнянні рядків. Типово: ні.Ігнорувати прогалини коли порівнюються лінії в перегляді опису. Типово: ні.Ігнорується*Невідкладні операціїІмпортувати - %sІмпортувати з буферу обмінуІмпортувати до MQВ поточній правціВ оригінальній правціПо усій історіїВ поточному &файліВідповідь на:ВключитиВключити всіх предківРазом з чергою латокЗ урахуванням:Вхідні закладкиНадходження з %s припинено, код помилки %dВказує, чи повинна TortoiseHg намагатися автоматично вирішити одночасні зміни з обох сторін у один і той же файл, і звітувати про конфлікти лише коли це не можливо. Якщо Ні, то всі файли із змінами по обидві сторони злиття будуть звітовані, як такі, що конфліктують, навіть якщо зміни в різних частинах файлів. У будь-якому випадку, при виникненні конфліктів, користувачеві буде запропоновано розглянути і розв'язати зміни вручну. Типово: Так.Знаряддя обробки ini-файлів має бути встановлено.Не знайдено програму аналізу ini-файлівПочаткова правкаОзнаки в рядкуВвести новий захист для %s:Недостатньо прав доступу, повернення до режиму лише читання.Недостатньо прав доступу.ПошкодженийЗнайдено пошкоджену операцію щепленняНедійсні шаблониПомилкові налаштування - перевірте ваше ім'я, як інспектораПомилкові налаштування - сервер рецензування не налаштованийПомилкова командаПомилка налаштування: %sПомилковий формат датиПомилка типового шляху виштовхування правки: %s. Будь ласка, перевірте налаштування Mercurial (tortoisehg.defaultpush)Помилкове вираз для globПомилка в регулярному виразіПомилка в модулі дошка відгуків. Будь ласка завантажте модуль Mercurial Дошка перегляду версії 3.5 або старше з веб-сайту. %sПосилання на проблемуРезультат регулярного виразуIssue TrackerМодуль Issue TrackerПомилка в модулі Issue TrackerПерехоплювач Issue TrackerКонтроль питаньНеможливо отримати перелік підсховищ для сховища:

                                                                                                              %s

                                                                                                              Ці підсховища

                                                                                                              %s можуть бути загубленими, пошкодженими або знаходятись у поганому стані і тому до них відсутній доступ.Неможливо отримати перелік підсховищ сховища:

                                                                                                              %sКурсивЯпонськаОтримати оригінальну назву гілки (--keepbranches)Отримати оригінальний набор змін (--keep)Тримати файли латокID ключаКлюч:Пошук словаСпекти великі файлиНаразі погана правка:Наразі гарна правка:КорейськаВеликі файлиЛівий пеналДозволити користувачеві поновлювати projrc вхідними:

                                                                                                              • ніколи: [типово] Показувати чи зовнішній файл projrc був змінений, але не оновлювати (nor запит на поновлення) місцевий файл projrc.
                                                                                                              • підказка: переглядати зміни у файлі projrc. Якщо є зміни _always_ показувати запит на підтвердження, питаючи користувача чи не бажає він оновити локальний файл projrc.
                                                                                                              • автоматично: переглядати зміни до файлу projrc. Використовуйте значення "projrc.confirm" конфігураційного ключа для вказівки чи показувати діалог підтвердження перед поновленням локального projrc файлу або ні.

                                                                                                              Типово: ніколи.Ліцензійна угодаЩось подібне "keyword(string)", але приймає регулярний вираз.РядокПерелік опційСписок серверів з яких "projrc" конфігураційні файли повинні бути отримані. Встановивши як "*" витягуватиметься з всіх серверів. Встановивши як "default" витягуватиметься з типового шляху обміну. Типово витягуватиметься з NO серверів.Перелік усіх знарядьСписок параметрів, які не будуть братися з файлу налаштувань проекту. Типово не виключати жодних виключень вказаних в налаштуваннях.Список параметрів, значення яких будуть отримані з файлу налаштувань проекту. Типово параметри не включати.Перелік оновлених файлів (--verbose)Завантажити всі правкиОтримати всі правки графуЗавантаження сховища %sМісцевий вузолЛокальний шляхЛокальних шлях:Локальне сховище %sЛише місцеві дискиІнформація про локальну правкуЛокальний підписЛокальний зрізРозташування:Замок клонуванняЗаблокувати файл не описаний в .hglocksЗаблоковано %s провалено, повторитиЗаблоковано %s вдалоЗаблокувати або розблокувати файлиЗаблокований*Блокування %sВласник блокуванняЖурналДовжина рядків журналуПовний звітМMQ параметриGit-овий формат MQВиштовхнутиВиштовхнути всеПараметри MQМаніфест режимуЗробити MQ латки прихованими (instead або чорновими). Типово: ні.Створити сховище сумісне з Mercurial < 1.7Створення "чорнової" правки "секретною" зазвичай є безпечною операцією. Однак, є декілька застережень: - "секретні" правки не виштовхувані. Це може завдати неприємностей, якщо ви відносите правку до секретного підсховища. - Якщо ви отримали правку із непублічного серверу, може бути повернення до "чорновику" якщо ви знову витягуватимете знову конкретно з цього сервера. Будьте обережні!Керування захистом HTTPS з'єднання та аутентифікацією користувачаКерувати наборами змін, що очікують perforceВимагати посилання на помилкуКусні, що розв'язані вручну відхилити?Шматки відкинутих латок перебирати вручнуВідмітити, як не розв'язанийВідмітити кусінь, як розв'язаний перейшовши до наступного не розв'язаногоВідмітити кусінь, як не розв'язанийВідмітити цей файл, як розв'язанийВідмітити цей файл, як не розв'язанийЗбіги текстуЗбіги в будь-яких %d правкахМаксимально змінРозмір відмінностейМаксимум файлівМаксимальна кількість змін у журналі змін. Типово: 10.Максимальна кількість файлів в наборі змін. Типово: 10.Члени набору з без дітей в наборі.Меню поведінкиРозв'язувати Mercurial-омКористувач MercurialКоманда Mercurial все ще виконується. Ви впевнені, що бажаєте її перервати?Увімкений додаток Mercurial keyring. Паролі будуть зберагатись безпечним методом, в залежності від платформи.Mercurial не може знайти редактор. Будь ласка, налаштуйте Mercurial на використання наявних в системі редакторів.ЗлитиЗлиття - %sЗлиття - дозволяти зливати з локальними змінамиЗлити всі залежності, які очікуютьЗлиття призвело до конфліктів файлівЗлити набір змінЗливати з (інша правка)Злити відхилені кусні латок в %sПравка для злиття не визначена або не існуєЗливати до (робочий каталог)Злити використовуючи обране знаряддя злиттяЗлиття з %sЗлиття з іншою головою поточної гілкиЗлиття...ПовідомленняШрифт повідомленняПомилка перекладу повідомленняІдентифікатор нотатки відповіді, використовується для створення теми обговоренняМетод вмикає TLS для з'єднання з поштовим сервером. Типово: невизначеноМінімальний рівень відповідності: %d%%Мінімальний розмірПропущена інформаціяПравити історіюПильнувати зміни у сховищіПильнування змін
                                                                                                              робочого каталогуПереміститиПеремістити всі файли ліворучПеремістити всі файли праворучПеремістити застосовані латки в історію сховищаПереміщення змін між робочими каталогом та латкоюПеремістити обрані кусні ліворучПеремістити обрані кусні праворучПеремістити обрані файли ліворучПеремістити обрані файли праворучПеремістити зріз %s в набір змін %s (з набору змін %s)Декілька джерел виборуНазваІм'я асоційоване з зафіксованим кодом. Формат наступний:
                                                                                                              повне ім'я <email@example.com>.Ім'я або електронна пошта особи, відповідальної за сховище.Назва гілки "%s" вже існує, останне використано у правці %d Нова групаСередовищеНова гілка: Фаза нової фіксаціїНова групаНова назва:Нова гілка латокНовий скелетон сховищаНове сховищеНова поличкаНове знаряддя ...Новий файл створеноНовий гачокНове повідомлення латки:Нова назва черги латокСтворити нову поличкуНаступнаНаступна різницяНаступна відмінністьБез датВідсутні відповідні файлиБез резервної копії (-n/--nobackup)В гілці без змінКуснів більше не залишилосьНе фіксуватиКуснів для видалення не маєНе знайдено знаряддя порівнянняРедактора не знайденоВідсутні файли змінВідсутні відмічені файлиНе знайдено файлів для цієї операціїНе вибрано жодного файлуВідсутні файли для пошукуЗазначений вузол відсутнійПеревірка відсутня, але шифрується (погано)Знайдені файли не ігноруватиВідсутні вхідні набори змін у %sВ повідомленні фіксації не знайдено посилання на запит. Слід вказувати посилання на запит. Налаштуйте у відповідній секції налаштувань 'Контроль запитів'.Відсутні елементи для відображенняЗбігів не знайденоКонфлікти злиття відсутні, готовий до фіксаціїКонфлікти злиття відсутні, готовий до фіксування або переглядуВідсутні змінені файли, які були б відмічені, як для фіксаціїНе виконувати операціюВідсутні вихідні набори змінВихідний набір змін до %s відсутнійУ гілці відсутні латкиНе очікуваний Perforce набір змінURL не зовнішнього сховища або встановлення шляхуНе знайдено сховищаОболонка не налаштованаВідсутні доступні транзакціїФайлів у смітнику не знайденоЗнайдено невідомі файлиНе налаштовано ім'я користувачаДля типового зовнішнього сховища не налаштований шлях або URL.

                                                                                                              Будь ласка, вкажіть та збережіть шлях до зовнішнього сховища у віджеті Синхронізація.Не виявлено відмінностей у візуальному знарядді порівняньНе налаштований візуальний редакторНічого - просто витягнути набір змінСкандинавськаВирівнювання закінчення рядків файлу до та після накладання латки, lf (точно) або crlf (автоматично). Точно - без нормалізації. Автоматично - виконує нормалізацію для кожного виявленого файлу, і є рекомендованим параметром. Типово: точно.Підсховище не Mercurial, перегляд не можливийНе вершина правок!Не вершина, відновлення створить нову вершину!Фіксувати нічогоНічого не змінено.Нічого імпортуватиНічого виштовхуватиГараздЗастарілий стан:На repowidget для показуДеякі з наборів змін, які Ви пробуєте виштовхнути, викличуть створення нової гілки. Ви дійсно бажаєте створити нову гілку у зовнішньому сховищі?Розглядати лише знищені файлиЛише файли змінені/створенні в цій правціНа призначенняВідкритиВідкрити терміналВідкрити підсховищеВідкрити нову іменовану гілкуВідкрити оболонку терміналу в корені сховищаВідкрити оболонку у вибраній теціВідкрити потужніший редактор запитівВідкрити всі сховища у нових вкладкахВідкрити налаштування hgwebВідкрити нову вкладка поруч з поточною вкладкоюВідкрити теку попередника поточного файлу у системному файл оглядачевіВідкрити знаряддя відкладанняВідкрити сховище у файловому оглядачевіВідкрити сховище у новій вкладціВідкрити вказані теки в системному файловому оглядачевіВідкрити вказане підсховищеОперація припинена:

                                                                                                              %(arg0)s.Операція виконувана напряму після успішного отримання коду. update прирівнюється до pull --update, fetch прирівнюється до розширеної виборки, rebase прирівнюється до pull --rebase, updateorrebase прирівнюється до pull -u --rebase. Типово: нічого.Необов'язково. Перелік вузлів, через кому, які не потребують використання проксі.Необов'язково. Протокол використовуваний для надсилання повідомлень. Якщо параметр "smtp" (типово), використовується SMTP (налаштування нижче). У іншому випадку, використовуйте програму, що працює як sendmail (використавши "-f" опцію для надсилання, перелік отримувачів у командному рядку, нотатку у stdin). За звичай, для цього достатньо параметрів "sendmail" або "/usr/sbin/sendmail" та використовувати sendmail для пересилання повідомлень.Не обяв'язково. Ланцюг файл сертификату користувача, в кодуванні PEM. В назві файлу можна використовувати змінні середовища.Не обов'язково. Файл ключа сертификату користувача, в кодуванні PEM. В назві файлу можна використовувати змінні середовища.Необов'язково. Пароль для аутентифікації на проксі-сервері.Не обов'язково. Пароль аутентифікації. Якщо не вказаний, а зовнішній сайт вимагає повноцінної або скороченої аутентифікації, користувачу буде запропоновано пройти її.Необов'язково. Ім'я користувача для аутентифікації на проксі-сервері.Не обов'язково. Ім'я користувача для аутентифікації. Якщо не визначено, і зовнішній сайт вимагає повноцінної або скороченої аутентифікації, користувачеві буде запропоновано пройти її. Змінні оточення оброблятимуться від імені користувача дозволяючи вам робити foo.username = $USER.ПараметриПараметри:або використати:Сортувати підсховища в .hgsubОригінальний попередник:Інша інформація про правкуЗовнішні закладкиВивантаження припинено, код помилки %dВивантаження до %s припинено, код помилки %dШрифт результатуПерезаписЗатягнути закладкуВиштовхнутиДокументи PDF (*.pdf)PEM файли (*.pem *.crt *.cer)PEM файли (*.pem *.key)Попередник 1:Попередник 2:Попередня:ПопередникиПарольПароль для аутентифікації на поштовому сервері.Пароль для аутентифікації на Review BoardПароль:Вставити назву файлуПенал гілки для латокКінець рядку в латкахФайли з латками (*.patch)Потребує назви латкиЧерга латокЛатка черг активного пеналуДата латки:Латка експортованаНе вдалось накласти латкуФайли латок (*.diff *.patch)Латка файлів вже існуютьПідшити латку - %sПовідомлення латки:Назва латки:Опис серії латок надіслано у первинному зведенні разом [Латка 0 of N] з темою. Вона повинна описувати вплив цілої низки виправлень. При відправці у пакунку, ці поля утворюють тему повідомлення і тло. Ознаками є перелік посилань доданих до заголовку повідомлення, через кому.Виконавець латки:Латка:Латка: %sЛатки експортованіПідшити до латокШляхПенал правки шляхуШлях до Review Board, наприклад "http://demo.reviewboard.org"Шлях до каталогу, в якому будуть збережені великі файли загальносистемного кешуШлях до каталогу, в якому тимчасово зберігатимуться великі файли користувачаШлях:Шлях до сховища налаштувань:ШаблониОчікують примусових змін - %sВ очікуванні Perforce...Вимушено:Виконувати виштовхування до оновлення (-p/--push)ФазаМісце консоліЗвичайно, не випереджати Hg заголовокНалаштуйте візуальний редактор.Будь ласка увімкніть та налаштуйте simplelockСпочатку увімкніть Gpg додаток.Введіть ім'я користувачаВведіть повідомлення з описом фіксаціїНадішліть, будь ласка звіт про помилку на наш bug trackerВстановіть коректний URL та продовжітьБудь ласка, зачекайте доки фіксуватимуться злиття файлів.Триває відновлення, чекайте.Будь ласка, дочекайтеся відкриття файлу ...Зачекайте...PopPop всеПортПорт з'єднання з сервером електронної пошти. Типово: 25.Номер порта, який слухатиметься.Порт:Надіслати відгукПоведінка після витягуванняПісля витягування: Надіслати відгукНадіслати вибране до Review Board...Опублікувати на дошку огляду...Підготовка відновленняПідготовка злиттяЗахищені файли починаючи з .hgПопередняПопередній переглядПопередній перегляд:Попередня різницяПопередня відмінністьРініше підсховище мало правку:Ресурси проектуПроксіСпростити - %sОпублікувати запит негайноВитягнутиВитягування з %s скасовано, код помилки %dВитягування з %s завершеноВитягнути наявні вхідні зміниВитягнути зміни з %sВитягнути вхідні зміни з обраного URLВитягнути вхідні набори змін до вашого сховищаВитягнути підсховище з:Витягнути сюди...Затягнути зовнішню закладку: %sОтримання з %s...ЧиститиВичистити чергу латокМетаВиштовхуватиВиштовхувати всеВиштовхнути після фіксаціїВиштовхнути після фіксації:Виштовхівання вимагає SSLВиштовхати вказану гілкуВиштовхнути всеВиштовхнути поточну гілку (%s)Виштовхнути вихідні зміниВиштовхнути зміни до %sВиштовхнути вихідні зміни до обраного URLВиштовхування до %s скасованоВиштовхування до %s скасовано, код помилки %dВиштовхнуто до %s. ЗавершеноВиштовхувати сюдиВиштовхнути до зовнішнього сховища %s ?Підняти до поточної правки (#%d)Підняти до правки #%dВиштовхнути локальну закладку: %sВиштовхнути до %s...Новини швидкоручПоновити швидкоручЗапитЗапит про набори змін, які впливатимуть на обрані файлиЗавершитиВ&идалити закладкуНалаштування списку сховищВідскочити/Скасувати...README не налаштованеВідновитиВилучити версійованогоВидалити з перелікуЗмінити назвуЗмінити назву латки...Перейменувати...Лише для читання*ГотовийГотовий до очищення.Готовий, подвійне клацання блокувати або розблокуватиПеребазуватиПеребазувати - %sПеребазування - зміна бази місця фіксацій через перетягування вгору змінПеребазування - використовує додаток перебазування (перебазування не активне!)Перебазування скасованоПеребазування вже триваєПеребазування набору змін та похіднихПеребазувати вцілому вихідну гілку (-b/--base)Перебазування не відбулосьПеребазування створить конфлікти злиття, які вимагатимуть їх розв'язуванняПеребазування виконанеПеребазувати на неопубліковану на Subversion вершину (перезапис джерела, призначення)Перебазувати...Рекурсія у підсховищахРекурсивно всередині підсховищ (--subrepos)Резервування аутентифікаційної інформаціїОновитиПерезавантажити вкладку завданьПерезавантажити пеналПерезавантажити поточну латкуПерезавантажити поточне сховищеПерезавантажити список файлівПеречитати інформацію блокуванняПерезавантажити лише поточну вкладку завданьПерезавантажити список зареєстрованих сховищПеречитати блокування...РегвиразРегулярний вираз:Шаблони шукати регулярними виразамиВідхилити вхідні набори змінПов'язані шляхи:ПерезавантажитиПерезавантажити файлПереміщення підсховища...Поновити зовнішнє - %sЗовнішня команда:ВилучитиВилучити всі вибрані файлиВилучити немодифіковані файлиВилучити файли...Вилучення даних аутентифікації з URLВилучити поточну робочу правку?Вилучити файли з контролю версійВилучити фільтр, відобразивши корінецьВидалити каталог латокВилучити латки з черги?Вилучити вказані на видалення файли?Вилучити вузол і всі його дочірні вузли. З диску сховища не знищуватимуться.Перемістити обране сховище?Видалити це підсховище з поточної правкиВидалити локальну закладку: %sВидалити зовнішню закладку: %sВилучино зріз %sЗмінити назвуЗмінити назву - %sПомилка зміни назвиЗмінити назву файлуПереіменувати латкуПереіменувати чергу латокЗмінити назву файлу або каталогуЗміна назви латки %s на:Зміна назви черги латок на '%s'Змінити назву латки...Зміни назви записуПеревідкрити останню закриту вкладкуПеревідкрити останню закриту групу вкладокЗамінитиЗамінити гачок, який існує?Замінити існуючий зріз (-f/--force)Замінити латку файлів, яка існує. Звітувати лише за першими збігами у файліСховищаСховищеПомилка сховищаID сховища:СховищаПоновити реєстр сховищНалаштування сховищаКоманда по сховищу ще працюєСховище заблокованеНазва сховища для Web-інтерфейсу, буде використано також, як коротка назва в TortoiseHg. Типово: назва рабочого каталогу.Сховище не місцевеСтан та зміни у сховищіВимагати підтвердженняРозв'язати конфлікти - %sРозв'язані конфліктиПерезапустити гілкуПерезапустити злиттяПерезапустити злиття зПерезавантажити всі TortoiseHg додатки для застосування змін:Поновлення перебазування вже триваєПравкаПоверненняПовернути всі файли...Повернути - %sПовернути файли...Повернути всі зміни в файл?Повернути всі файли до цієї правкиПовернути всі робочі копії змін?Повернути файли змінПовернути файл(и) до змісту в цій правціВідновити файли на локального або іншого попередника?Повернути файл з локальними змінами?Повернути наступні файли?Повернутися до правкиПоверненням всіх файлів буде відкинуто зміни та залишить вражені файли у зміненому стані.

                                                                                                              Ви дійсно бажаєте скористатись поверненням?

                                                                                                              (використовувати оновити вивірити іншу правку)Повернення переліку змін з p4...Review BoardID огляду:Чорновик відгуку надісланий %s Відгук опублікований %s ПравкаПравка #%d (%s) була експортована до:

                                                                                                              %s%s%sРозлого про правкуНабір правокПравка набір запитПереглянути розлого контекстне менюПравка змінена до:Погана правкаГарна правкапереглянути збіги:Правка:Збіг в правках:Правий пеналПовернути фіксацію до правки %dПовернути назад правку %d (скасувавши %s)?Виконується для %sВиконання...РосійськаПенал синхронізаціїСинхронізуватиSMTP вузолSMTP парольSMTP портSMTP TLSSMTP користувачКоманда SSHSSL помилка: %sSSL: Помилка серверу перевірки сертифікатівSSL: невідома помилка %s:%sЗберегати поточний обмін латками на виходіЗберегтиЗберегти для загалуЗберігати відкритими сховища на виходіЗберегти шляхЗберегти зміни перед правкою?Зберегти поточний URL під псевдонімомЗберегти звіт з помилкиЗберегти файл, як нібито з'явився в цій правціЗберегти файл доЗберегти налаштування hgwebЗберегти в сховищеСканувати зовнішні сховищаПошукПошук в історіїПошук вибраного текстуВиконується пошукШукати повідомлення фіксації, ім'я користувача та назви змінених файлів в рядку.Пошук файлу правок для шаблонуПошук по усій історіїПошукПошук...Другий попередник вісх наборів змін в наборі, або робочий каталог.Приховати MQ латкиШифроване HTTPS з'єднанняБезпекаБезпека: Вибрати всеНічого не вибиратиВкажіть файл призначенняВкажіть теку призначенняОберіть каталог з латкамиОберіть сховищеОбрати файл джерелаОбрати теку джерелаОбране знаряддя:Обрати файл ланцюга сертифікатів користувачаОбрати файл з ключем сертифікато користувачаВкажіть GUI елемент для правки:Оберіть сховище та додайте, як підсховищеОберіть гілку злиття та фіксаціїВиберіть запакований файлВкажіть сховище призначенняВиберіть, як TortoiseHg відображатиме групове завдання на панелі синхронізації.

                                                                                                              • автоматично: Типово. Показуватиме комбо якщо налаштовано більше однієї мети.
                                                                                                              • завжди: Завжди показувати пару.

                                                                                                              Типово: автоматично.Вкажіть теку з латкоюОбрані латкиОберіть дії після витягування для цього сховищаОбрати сховищеОбраний каталог сховища доданийОбрати каталог сховища відкритиВкажіть вихідне сховищеОберіть початкову правку при відкритті сховища. Ви повинні обрати "current" (тобто робочий каталог попередника), поточний "tip" або робочий каталог ("workingdir"). Типово: current.Оберіть початковий вигляд службового вікна при відкритті сховища. Типово: revdetails (перегляд ревізії).Вибрати правки, які виштовхуватимуться за типовим сценарієм при кожному натисканні кнопки Виштовхування.

                                                                                                            • всі: типово. виштовхувати всі зміни до всіх гілок.
                                                                                                            • гілка: виштовхувати всі зміни в поточну гілку.
                                                                                                            • ревізія: виштовхувати всі зміни у поточну гілку аж до поточної правки.

                                                                                                            Типово: всі.Вкажіть пенал або меню для змінВиберіть, як швидко TortoiseHg покаже підказку активації закладки в разі оновлення правки, що має одну або більше закладок.

                                                                                                            • автоматично: спробувати відразу активувати закладки. При оновленні правки, яка має одну закладку вона буде оновлена автоматично. Відображати негайно, якщо є більше однієї закладки на правку, яка була поновлена до
                                                                                                            • негайно: типово. Відображати негайно, коли поновлена правка має одну або більше закладок.
                                                                                                            • ніколи: ніколи не відображати жодного рядку при активації будь-якої закладки.

                                                                                                            Типово: негайно.Визначає, коли буде поновлюватись стан робочого каталогу:
                                                                                                            - авто: [типово] TortoiseHg сам вирішуватиме, коли перезавантажувати робочий каталог.
                                                                                                            TortoiseHg освіжить стан при виконанні дії, що потенційно змінює робочий каталог. Це допоможе не пропустити жодної зміни поза участю TortoiseHg;
                                                                                                            - завжди: додатково до автоматичних поновлень, також освіжить стан списку, коли користувач натискав "working dir revision" або "Commit icon" на панелі завдань;
                                                                                                            - завжди локальне: також, як і "завжди", але обмежує примусове освіження локальними сховищами.
                                                                                                            Типово: авто.Вкажіть, яка Ваша команда буде виконанаВиберіть, чи бажаєте мати одне вікно середовища. В разі вимкнення цього параметру отримуватимете нове вікно середовища кожного разу, коли використовуватимете "Hg Workbench" команди з контекстного меню Провідника. Типово: так.Обрані пари набору змін не пов'язані між собоюНадіслати електроною поштоюНадіслати набори змін, як Hg латкуНадіслати двійковим пакунком, не латкамиНадсилання EmailСерверID серверу сховищаСервериВстановити захист...Встановити походженняВстановити дату:Встановити логікуВстановити ім'я автора:ПараметриНалаштуванняФайл налаштувань:Деякі символи можуть бути втрачені.Декілька значків люб'язно надані проектами TortoiseSVN, Tango.Перелік сховищПоличкаОчищення полиціЗнищити поличкуПоличка: %sОболонкаВідкладати - перемістити локальні зміни до латкиВідкласти зміниЧи повинні нові вкладки відкриватись поруч із поточною вкладкою? Якщо Ні, тоді нові вкладки будуть відкриватись після останньої вкладки. Типово: так.Показати автораПоказати датуЧерга латокПоказати шляхиПоказати правкуВідобразити вікно Про програмуКомандний рядокПоказати розлогоПоказати сімейну лініюВідображати функціюПоказувати піктограмуПоказати запитиПоказати питання...Відобразити журналВідкрити журнал подійПоказати правку розлогоПоказати скорочені шляхиВідображати повний шлях до каталогу сховища в заголовку діалогу, а не просто назву кореневого каталогу. Типово: ні.Показати усеПоказати всі контрольовані файли у вигляді дереваВідобразити зміни від першого попередникаВідобразити зміни від другого попередникаПоказати файли змінені цією фіксацієюПоказувати повне ім'я автора в журналі. Якщо не увімкнено, лише скорочено, зазвичай це ім'я без електронної пошти. Типово: ні.Показати непряму залежність графу правки коли фільтрується набір правок. Типово: Так

                                                                                                            Note: РОзрахунок фамільних ліній може бути повільним в деяких випадках. Цю опцію очікує видалення продуктивність не покращиться.Відображати вкладки вздовж однієї з сторін нижньої частини сховища, аби була можливість перемикатися між завданнями без використання пеналу. Типово: вимкнено.Відображати ознаки на початку повідомлень фіксації.Відобразити історію вказаного файлуВідображати у якій функції знаходиться кожна зміна. Типово: ні.Показати/Сховати прихований набір змінПідпис...Підпис - %sПідписати навіть якщо файл підпису змінений (-f/--force)Підпис був доданийПростий замокОдновіконне робоче середовищеРозмірРозмір (КіБ)Пропустити останню сторінку підтвердження, закрити після фіксації.Пропустити %s, не можливо прочитатиДеякі з файлів, які ви вибрали мають розмір більше 10 Мб. Ви можете більш ефективно використовувати дисковий простір додаючи ці файли, як великі файли, які будуть зберігатися лише останньою версією файлу на сервері. Бажаєте додати ці файли, як великі файли?Сортувати за назвоюСортувати за шляхомСортувати відповідно до виставлених ключів. Типовий порядок сортування - за зростанням, вкажіть ключ "-key", щоб відсортувати в порядку спадання.Сортувати групу за повним шляхомСортувати групу за короткою назвоюЗвідкиДжерело не існуєЗвідки:Південно-західна ЕвропаПідвенна ЕвропаПерелік назв гілок, через кому, у вигляді branch:#XXXXXX. Прогалини та двокрапки у назвах гілок екрануються спереду зворотньою нахиленою лінією (\). Також можна додати деякі спеціальні символи, до прикладу \u0040 буде позначати символ @, та \n перехід на новий рядок. Типово: жодної (залишити порожнім).Перелік операцій командної оболонки, через прогалини, які виконуватимуться негайно, без участі користувача. Команди "add remove revert forget". Типово: невизначено (залишити порожнім).Перелік ярликів, через прогалини, що не відображатимуться. До прикладу: вкажіть "qbase qparent qtip" аби приховати стандартні ознаки які додає додаток Mercurial Queues Extension. Типово: невизначено (залишити порожнім).Вкажіть нову назву поличкиВкажіть команду запуску програми вашої бажаної оболонки терміналу. Якщо значення включене в рядку %(reponame)s, назва сховища буде заміщено в місці %(reponame)s. Відповідно, %(root)s буде заповнений шлях до сховища. (потребує перезапуску)
                                                                                                            Типово, Windows: cmd.exe /K title %(reponame)s
                                                                                                            Типово, OS X: не встановлено
                                                                                                            Типово, інше: xterm -T "%(reponame)s"Вкажіть кількість прогалин, що відповідатимуть одній табуляції в різних вікнах TortoiseHg. Типово: 8.Вкажіть шлях до файлу електроного підпису. Типово: gpg.Вкажіть цільовий об'єкт файлової системи для якого TortoiseHg пильнуватиме зміни. Типово: лише локальні.Оберіть знаряддя наочного порівняння, як описано в розділі [merge-tools] файлу налаштувань Mercurial. Якщо не визначено, TortoiseHg буде використовувати той самий редактор, що і для злиття. В іншому випадку, буде використано перший ліпший знайдений редактор.Вкажіть візуальний редактор описавши його в секції [editor-tools] файлу налаштувань Mercurial. В разі його відсутності, TortoiseHg буде використовувати перший ліпший знайдений редактор.Вказати, які кнопки завдань, ви хочете бачити на панелі задач інструментів і в якому порядку.
                                                                                                            Введіть список назв кнопок задач. Додайте роздільники, поставивши "|" між назвами кнопок задач.
                                                                                                            Допустимі імена: log commit sync grep та pbranch.
                                                                                                            Типово: log commit grep pbranch | syncВкажіть мову інтерфейсу користувача (вимагатиме перезапуску).ПочатиПочати нову гілку латокПочаток правки:Запуск веб сервера для цього сховищаСтанСтанПенал списку файла стануСтан:ЗупинитиЗупинити поточну операціюЗупиненоПерекресленийРозрізати - %sРозрізати:СмугиВідсікання Mercurial заголовку вилучатиме им'я користувача та інформацію про попередників. Це корисно, лише у випадку якщо отримувач не використовує Mercurial (та не хоче бачити ці заголовки).СтильПункти підменю:Тема:Надсилання переліку змін до p4...Підсховище '%s' має нетиповий URL обміну:

                                                                                                            %s

                                                                                                            Замінити його наступним URL?:

                                                                                                            %sПідсховище додано до .hgsub файлуПідсховище створене та встановлена початкова правка.Підсховище створено з правкою:Підсховище може бути пошкоджене або недоступне.Підсховище вилучене з сховища.Стан підсховища:Будова підсховищаПідсховище не було змінено.Підсховище вже існуєПідсховище не знайденоПідсховище не знайдено у робочому каталозі.Підсховища видалені з .hgsubSubversion:УспішноНаступники:Рекомендована довжина рядку в повідомленні фіксації. Червона вертикальна лінія визначатиме довжину. Комбінація CTRL-E вкоротить поточний параграф до рекомендованої довжини рядка. Типово: 80.Зведення (перший рядок опису)Зведена довжина рядкаПідсумок:Обміняти місцями джерело та призначенняСинхронізаціяСинхронізувати вкладкиСинхронізуватиОбмінятися з відсталим сховищемОбмінятися із зовнішнім сховищемПідсвічувати синтаксисСистемний кешШирина вкладкиВийти з вкладки неможливоЗріз '%s' було доданоЗріз '%s' був переміщенийЗріз '%s' був вилученийЗріз - %sЗріз:Зрізано:Ознака:Використати іншийАрхів tar стиснений bzip2?Архів tar стиснений gzipАрхіви tarГрупове завданняГрупові завданняГрупи людейЦіль:Вкладки завданьПорядок завдання пеналПанель задачТимчасово вимкнути налаштування HTTP-проксіВилучати тимчасові файли, коли закривається діалогПерервано користувачемТестувати цю правку та публікувати знайдене. (файно/погано/пропустити)Текст перетворено з помилкамиТекстові файли (*.txt)Опис призначення або вмісту сховища.ТайськаУ файлі .hgsub вже існує рядок:

                                                                                                            %sЗміни з правки %s та всі не злиті попередники будуть відхилені. Ви впевнені, що бажаєте цього?Виконання команди "%s" не можливе.Команда "%s" помилкова (код %d).Команда, яка буде виконана. Щоб виконати python функцію, потрібно спочатку записати команду з "python:". Типовий ідентифікатор сховища для цього сховища на сервері Review Board.Призначення "%s" вже існує як файл!Призначення "%s" існує, як тека!Призначення повинно бути всередині дерева сховища.Каталог "%s" не порожній! Переписати його?Тека, в якій буде виконана команда. В разі не встановлення буде використаний корінь поточного сховища. Ви можете використовувати ті ж самі {VARIABLES} як і в налаштуваннях "Command". Редакто використовуваний Mercurial командного рядка збиратиме мультирядковийввід від користувача. Зокрема повідомлення фіксації.Помилка:

                                                                                                            %s

                                                                                                            Файл "%s" існує! Ви дійсно бажаєте його переписати?Стеження за помилками повернуло: "%s" Перевірте правильність командного шляху та його відповідність додаткуБуло повернуто наступне повідомлення про помилку: %sНазва гачка не може містити прогалини, табуляції або символ '='.Назва гачка. Не може містити прогалин.Максимальний розмір файлу (Кб), для якого TortoiseHg буде відображати відмінності у вікнах журналу змін, стану та фіксації. Нуль означатиме - без обмежень. Типово: 1024 (1Мб).Названі закладки або всі закладки.Іменований зріз або усі зрізи.Кількість правок зчитуваних та відображуваних в журналі змін одиноразово. Типово: 500.Фаза нової фіксації. Типово: чорнова.Обрана команда порожняВибрана тека:


                                                                                                            %s
                                                                                                            не з середини цільового сховища.

                                                                                                            Це дозволено, але сильно бентежить.
                                                                                                            Якщо забажаєте додати нетривіальне відображення підсховища доведеться вручну правити файл .hgsubВибране сховище:

                                                                                                            %s

                                                                                                            не відкривається!Для обраного сховища:

                                                                                                            %s

                                                                                                            а також для підсховищ:

                                                                                                            %s

                                                                                                            як: "%s"Обрана правка (%s) має закладку із назвою "%s".

                                                                                                            Ви бажаєте увімкнути її?
                                                                                                            Ви можете відключити цей рядок в Налаштування/Середовище/Увімкнути закладкиДля обраної правки (%s) є %d закладок.

                                                                                                            Оберіть закладку, яку Ви бажаєте активувати та клацніть Гаразд.

                                                                                                            Клацніть Відмова якщо Ви активуватиме її згодом.

                                                                                                            Ви можете вимкнути це повідомлення налаштувавши Налаштування/Середовище/Активація закладок

                                                                                                            Обрана правка (правка #%d) не може бути імпортована, тому що вона є похідною qparent (правка #%d)Обране підсховище:

                                                                                                            %s

                                                                                                            буде додано до .hgsub файлу в сховищі:

                                                                                                            %s

                                                                                                            Пам'ятайте, аби завершити ви повинні зафіксувати зміни до .hgsub файлу підтвердивши додавання підсховища.Обране підсховище було видалене з .hgsub файлу.

                                                                                                            Пам'ятайте ви повинні зафіксувати зміну у .hgsub для повного видалення підсховища!Обране підсховище не знайдено у .hgsub файлу.

                                                                                                            Можливо, воно вже було видалено?Сукупність всіх попередників всіх наборів змін в наборі.Джерело повинно знаходитись всередині дерева сховища.Підсховище брудне.Піктограма знаряддя. Ви можете використовувати будь-яку вбудовану у TortoiseHg піктограму встановивши це значення до коректної у TortoiseHg назви (Наприклад clone, add, remove, sync, thg-logo, hg-update, тощо). Ви також можете вказати ці значення з абсолютним шляхом файлової системи.Мітка знаряддя відображатиметься у контекстному меню repowidget-а. Якщо мітка не призначена, назва знаряддя використовуватиме мітку знаряддя. Якщо жодної підказки не встановлено, мітка буде використана як підказка.Назва знаряддя не може містити буль-які прогалини.Назва знаряддя. Не може містити прогалини.Підказка, яка буде виводитись на кнопці знаряддя. Зокрема у випадку зображення кнопки на пеналі робочого середовища.Робочий каталог вже злитий. Продовжити або відкинути злиття, що існують.Існують файли латок для %d правок (%s) у обраному розташуванні (%s). Конфлікти злиття розв'язаніНе налаштований шляхи обміну. Відкрийте Обмін та налаштуйте.Відсутні файли з конфліктами злиття.У файлах відсутні зміниВідсутні файли, які можуть бути перейменованіВже існує тека з такою назвою.%s.%s гачок існує. Ви бажаєте замінити його?Наявні не повернуті транзакціїThg - TortoiseHg's графічне знаряддя для Mercurial SCM (Hg) Це свідчить є двійковий файл.Помилка не буде показуватись, доки ви не перезавантажете середовищеСтороннє знаряддя злиттяЗаголовокTакожДля завершення злиття потрібно зафіксувати робочий каталог. Аби скасувати злиття можна поновитись до однієї із злитих попередніх правок.Прищепити призначенняПеребазування похіднихКому:Пошук за текстовим рядкомВідповідає за перемикання фільтрації без наборів змінЗмінити видимість прищепиПеремкнути попередника, що буде використано, як базова правкаДозволяти локальні зміни, що не конфліктуютьЗамало стовпчиків обрано для менюЗнаряддя розв'язуванняМітка знаряддяПомилка запуску знаряддяНазва знаряддяЗнаряддяЗнаряддя показано на вказаному розташуванніПідказкаПункти головного меню:TortoiseHg Bookmark SyncЗвіт з помилки TortoiseHgКомандний діалог TortoiseHgTortoiseHg ФіксаціяTortoiseHg діалоги (версія %s), Mercurial (версія %s) Помилка TortoiseHgЗнаряддя TortoiseHg Lock - %sНова назва полички у TortoiseHgСервер TortoiseHgПідказка TortoiseHgПошук TortoiseHgНалаштування TortoiseHgTortoiseHg Полиця - %sВеб сервер TortoiseHgСередовище TortoiseHgTortoiseHg створла новий файл .hgignore. Бажаєте додати цей файл до сховища під контроль версій?Традиційна китайськаТрансплантувати:Перехоплювач правка набор запитСпробувати поновити сховище.ТурецькаТипРозпакувати...Мова інтерфейсуURLURLError: %sУкраїнськаВідновлення неможливеНеможливо стиснути історіюНеможливо створити Mercurial.ini файлНе можливо створити файл з налаштуваннямиНе можливо знищити %d файл або текуНе можливо знищити %d файлів або текНе можливо знищити %d файлів або текНеможливо визначити набір змінНеможливо визначити робочу копію правки Неможливо знайти набір змінЗлиття не можливеНеможливо злити кусніНе можливо розібрати результат p4pendingНе можливо прочитати файлСтан сховища не можливо прочитатиНеможливо вилучитиНеможливо вилучити URLНеможливо вилучити файл %s, відсутні праваНеможливо зберегти після фіксації виштовхуванняЗберегти URL не вдаєтьсяНе можливо зберегти аутентифікаціюНе можливо автоматично зберегти перелік включеньЗбереження неможливо після операції витягуванняНеможливо зберегти - рекурсія у підсховищі.Неможливо зберегти ім'я користувачаНеможливо відобразити файли підсховищаНе можливо починати з наступної команди:Неможливо відтворити вхідний потік у локальному кодуванніНе можливо поновити назву сховищаНе можливо писати до файлу .hgignoreНе можливо писати до файлу з налаштуваннямиНе можливо записати файл різниціНе можливо записати файлВідхилити всі латкиНеприйнята одна латкаРозпакуватиРОззвіритиРоззвірити всі файлиЗніміть мітку аби розглядати всі ревізійовані файли для копіювання джерелЗлиття не зафіксоване - оберіть попередню правкуНе стиснений tar архівНе стиснений zip архівПідкресленийПовернути закриті інші вкладкиПовернути закриту вкладкуСкасувати останню фіксацію?Скасувати останню транзакцію?Скасувати останню фіксацію (%d), зберігши файл змін?UnicodeУзагальнена китайськаНевідома правка!Розблокування %s провалилось, повторитиРозблокування %s вдалоРозблокування %sНе розв'язані конфліктиЗалишилися не розв'язані конфлікти. Ви впевнені?Незбережені зміни буде втрачено. Перезавантажити?Не підтримуваний тип сховища (%s)Версії не визначеноПоновитиПоновити - %sПоновити - витягнути, потім спробувати поновитиПоновити значкиПоновити відгукПоновити значки цього сховищаПоновлення на входіПоновити або створити псевдонім шляху, який викликатиме '%s' як одне з підсховищ, наразі використовуючи URL як основний URL додавши назву місцевого відносно шляху до його підсховищаПоновити шляхи підсховищПоновити поля згідно запитуПоновити до:Поновити робочий каталогПоновити робочий каталог або перемкнути правкиПоновити...UpdateOrRebase - витягнути, далі спрбувати поновити або перебазуватиUpdateOrRebase - використовувати додаток перебазування (перебазування не активне!)Оновити реєстр сховищРекомендовано оновітися до нової версії TortoiseHg.Використовувати англомовні повідомлення відновленняВикористовувати англомовні повідомлення фіксаціїВикористовувати стислий переглядВикористати поточну датуВикористовувати повідомлення фіксації користувача:Використати розширений (git) формат латкиВикористовувати розширений git формат для заголовку різниць. Типово: ні.Використати моє ім'я замість імені користувача, який зафіксував прищепуВикористовувати проксі-серверВикористовувати протокол витягування аби копіювати метаданіКористувачАутентифікація користувачаКеш користувачаСкріпити сертифікат користувачаКлюч сертифікат користувачаІнформація аутентифікації користувача повинна сполучатися з назвою вузла у діалозі безпеки.Ім'я користувача для аутентифікації на Review Board.Автор:КористувачІм'я користувача для аутентифікації на поштовому сервері.Перевірте відновлену правку та переконайтеся, що робочий каталог чистий.Перевірте мету злиття та забезпечте чистоту робочого каталогу.Звіряти з сертифікатом (найкраще)Звірити із збереженим цифрового сертифікату (добре)Переглянути файлВєтнамськаПереглянути файл вПереглянути іншеПереглядати зміну в уніфікованому форматі різницьПереглянути історію змін сховищаПереглянути історію змін обраних файлівПереглядати зміни в контексті файлуПерегляд поточних змін зовнішнім знаряддям порівняньПереглянути зміни використовуючи знаряддя з графічним інтерфейсом користувачаПереглянути файл, як нібито з'явився в цієї правціПереглянути файл змін стороннім інструментомПереглянути налаштування сховищаНаочна різницяЗнаряддя наочного порівнянняНаочне порівняння...Відмінності - Текстовий редакторВізуальна різниця між розв'язаним файлом та першим попередникомВізуальна різниця між розв'язаним файлом та другим попередникомНаочне порівняння...Візуальні різниці не підтримуються для файлів у підсховищах. Вони не будуть відображені.Візуальні сторонні знаряддяПопередженняУвага: стосуватиметься всіх Tortoises, після змін потрібний перезапускНазва змінена зWeb-серверWebconfСхідна ЕвропаЩо Ви бажаєте робити? При фіксації вимагати посилання на питання були вказані. В разі увімкнення регулярний вираз в 'Issue Regex' повинен знайти відповідність у повідомленні фіксації.Коли увімкнено, автоматично показує журнал подій коли команда виконується. Типово: виключено.Коли встановлено 'auto', mq буде автоматично використовувати git латки коли потрібно не втратити зміни в режимі файлів, копіювати записи або двійкові файли. Якщо встановлено 'keep', mq будепідкорятися секції [diff] конфігурації при збережені існуючиї git латок до qrefresh. Якщо встановлено Так або Ні, mq буде перезаписувати секцію [diff] та завжди генерувати git або нормальні латки, в другому випадку можлива втрата даних. Типово: auto.Коли запитувати користувача підтвердження про поновлення локального "projrc" конфігураційного файлу при зміні зовнішнього projrc файлу. Можливі значення:

                                                                                                            • завжди: [типово] постійно виводити діалог підтвердження перед поновленням локального .hg/projrc файлу;
                                                                                                            • вперше: показувати діалог підтвердження коли сховище клоноване або коли зовнішній projrc файл знайдено вперше.
                                                                                                            • Ніколи: Поновити локальний .hg/projrc файл автоматично, не запитуючи підтвердження в користувача.
                                                                                                            Кому дозволено виштовхувати у сховище. Якщо порожньо або не встановлено, тоді виштовхування заборонено. При спеціальному значенні "*" будь хто ззовні зможе виштовхувати, враховуючи і тих хто не пройшов регістрацію. Інакше, сторонній користувач повинен пройти аутентифікацію та його ім'я повинно бути присутнім у цьому переліку (через прогалини або ","). Вміст переліку дозволів на відправку розглядатиметься після переліку заборон виштовхування.Кому заборонено виштовхувати у сховище. Якщо порожнє або не визначено, тоді виштовхування не заборонено. При спеціальному значенні "*" всім строннім користувачам заборонено писати у сховище. Інакше кажучи, відправляти заборонено користувачам, що не пройшли аутентифікацію, а також тим хто пройшов, але є у переліку (через прогалини або ","). Вміст списку на заборону виштовхування розглядатиметься до переліку дозволів на відправку.Під час виштовхування файлів варто використовувати шифрування для уникнення втрати паролю.Який взірець зовнішнього вигляду використовувати.Доска оголошеньДокументи Word (*.doc *.docx)Працювати на черзі латок (--mq)Робоче середовищеСтовпці журналу робочого середовищаСередовище пеналів користувачаРобоча копіяРобочий каталогРобочий каталог (злитий)Робочий каталогРобочий каталог не порожній! Переглянути зміни...Стан робочого каталогуПошук в серединіЗаписати пакунокЗаписати файл різниціЗаписати латку рядок (пакунок) описуВи збираєтеся повернути фазу правки %d навпаки, з "%s" до "%s". Однак, "%s" має менший рівень фази, ніж "%s". Повертати фазу назад не варто. До прикладу, Ви можете отримати декілька голів у правці, при зміні фази правки, яку вже виштовхнули на сервер. Будьте обережні!Ви можете змінити піктограму встановивши з Налаштувань TortoiseSVN's Ви можете звільнити лише свої власні блокуванняЗавітайте на наш сайтНеможна зливати правку саму з собоюВи маєте аутентифікаційну інформацію налаштовану для цього вузла та всередині цього URL. Видалити аутентификаційну інформацію з цього URL?Вами відмічено всі відхилені латки куснів як вже розвязані, хоча файл не змінювався на панелі правки. Це може призвести, що жоден код із відхилених куснів латок не потрапить до файлу. Ви дійсно бажаєте залишити файл без змін та розглядаєте відхилені кусні, як розв'язані? Зробивши так, до прикладу, Ви можете знищити їх з відкладеного, що означатиме, що ви втратили би це назавжди! Натисніть Так, аби прийняти файл як є, або Ні - щоб далі розв'язувати відкинуті кусні латок.Ви маєте декілька змін назв для кінцевого файлу: %s. Припинення!Ви вибрали один або декілька файлів, які були змінені. Типово, ці файли не будуть видалені. Що б ви хотіли зробити?Вам, ймовірно, потрібно перезавантажити цей додатокВи можете продовжити або почати щепленняВи маєте продовжити стисканняВи можете продовжувати щепитиВи можете продовжити перебазуванняВи повинні ввести назву латкиВи повинні ідентифікувати себе в MercurialВи повинні забезпечити перегляд щепленняПотрібно вказати значення для джерела та призначенняПотрібно вказати шлях до файлуВи повинні встановити команди для виконання.Вкажіть назву знаряддя.Ви повинні встановити правильний тип гачка.Наразі у Вас остання версія TortoiseHg.Ваша поточна робоча правка (%d) буде вилучена цим поверненням назад, залишивши не зафіксованими зміни. Продовжити?Архів zip стиснений deflateАрхіви Zip[--after PATCH] PATCH...[Код: %d][ПОПЕРЕДЖЕННЯ] Неповні зміни у підсховищі. Поновити до цієї правки витягнувши її.[ПОПЕРЕДЖЕННЯ] Неповноцінне підсховище. Поновити до цієї правки, витягнувши її.[УВАГА] Помилка підсховища правка ID: %s [ПОПЕРЕДЖЕННЯ] Потрібна зміна підсховища. Поновити до цієї правки клонувавши її.[ПОПЕРЕДЖЕННЯ] Потрібно підсховище. Поновити до цієї правки, клонувавши її.[команда %s успішно виконана][команда %s пошкоджена][команда повернула код %d %%s][команда перервана користувачем %s][non-existant][оригінал][робоча копія]надіслати правкуправка для відправкиприпинити: припинити: %s припинити: %s! Зафіксуватидодати статистику відмінностей, як результат до повідомленьдодановсі правки перенесено з subversionзавжди виокремлювати інтерфейс користувача у окремий процесвкластиосновні команди: тілозакладка: гілка: файл пакунку до попереднього переглядуне можу прочитати файл "%s". Нехтувати. не можливо перемістити прийняті латкине можливо перемістити в прийняті латкине можна вказати, як -k/--query та назва файлівнабір змін %d:%sнабір змін переглянути в знарядді порівнянняпредставлений набір змін конвертований з svn правкизміни: %sнабір змін: %s (не знайдено у підсховищі)очищеноклонувати лише вказану гілкуСтвореноАвторГілкаЗміниПеретворено зОписНазва файлуГрафОстанні ознакиЛокальний часВузлова точкаФазаРев.ОзнакаВсесвітній часпомилка парсингу команди: %sФіксуватипошкоджений результат команди: %rтиповістан відмінностейвідкинути зміни без коментарів (без резервної копії)відобразити довідку та вийтине створювати резервні копії порізаних правокне фіксувати файл підпису після підписанняне виокремлювати інтерфейс користувача у окремий процесне змінюйте робочу копію протягом рорізанняувімкнути виведення додаткової інформаціїувімкнути налагоджувале виведенняeol є несумісним з win32textпомилка під час виконання команди дозвіл виконувати був встановленийдозвіл виконувати був скасованийне вдалось зашифрувати команду: %sне вдалось зашифрувати вхід: %sне вдалося відокремити GUI в окремий процес: %s не вдалось започаткувати команду поле, що вимагають першочергової увагифайл було знищено, освіжітьфайл було змінено, освіжітьфайлиУсіЖоднізаповнення (%d)фільтрспільні параметри:grep: %s grep: помилковий шаблон пошуку: %s hggit запакований з thghgsubversion несумісна з perfarcehgsubversion запакований з thgпідказка:натяк: історіяігнорувати регістр при пошукуігнорованозавантажити чергу латок (MQ)в майбутньомуприєднати зазначений набір змінпочатковий шаблон пошукуу текстіinotify не підтримується на цій платформінедійсне "hello" повідомлення: %rпомилковий аргументпомилковий номер рядку: %sвказана помилкова позиція латкизберегати оригінальну назву гілкизберігати оригінальний набір змінзапустити знаряддя наочного порівнянняперелік команд: локальнаlsprof недоступний - встановити з http://codespeak.net/svn/user/arigo/hack/misc/lsprof/підписати локальнустворити локальний зріззлити з старим попередником після відновленняПротоколвідсутнєзміненоперемістити після вказання латкипотрібно вказати 'type' в стиліпотрібно вказати сховищеназва файлу налаштувань hgweb (ЗАПЕРЕЧЕННЯ)назва hgweb файлу налаштувань (serve більше ніж одне сховище)потребує злиття з %i вершиною потребує злиття з %s потребує злиття з %s (враховуючи %s) потребуватиме поновлення бази різниці до верхівки %s не "runcommand" здатністьне вказана командакоманди невизначені не захищенийне знайдено збігів: %sвідсутні вихідні набори змінвідсутні вихідні набори змін у поточній гілці (%s) / %d загаломвідсутні вихідні набори змін до поточної правки (#%d) / %d загаломвідсутні вихідні набори змін до правки #%d / %d загаломвідсутнє сховище у відсутні визначени правкиповідомлення оболонки для даних шляхівзаразнікчемна правка (тобто видалити файл(и))дозволена лише одна нова назва закладкивідкрити нове вікно робочого середовищавідкрити закладку sync windowвідкрити рядоквідкрити...опція --config не може бути скорочена!параметри: обрати попередника при відновленні з злитогоПароль: латка %s не в рядіperfarce несумісна з hgsubversionнадрукувати команди виконуваного профілюдрукувати ліцензіюпроцес неочікувано завершено з кодом %dвитягнути: %s виштовхнути: %sчитати перелік файлів з файлучитати перелік файлів з файлу у кодуванні utf-8перебазувати із вказаного набору змінперебазувати на вказаний набір змінзаписати дату коду датою фіксаціїзапам'ятати користувача, як дописувачавилучити зрізвилучити стан кешувилучити робочий каталогвилученопереписати існуючий зрізсховище %s не знайденокаталог кореня сховища або назва символічного посиланняпотрібна одна назва файлуправка: %d (%s)правкаправка %d перший попередник (тобто правка %d)правка %d другий попередник (тобто правка %d)переглянути до описупоглянути до архівованогопоглянути до відновленогопоглянути до дисплеюпоглянути до злиттяпоглянути до порізаногопоглянути до зрізапоглянути до поновленогоправка, зріз або гілка до вивіряннямодифікації з %d:%s до %d:%sправка щепленняпідчистити правкуправки переглянути в знарядді порівнянняшукати наданий текст або revsetвиберіть вказану правкуобрані файлинадсилати вкладеними латкаминадіслати латки, як вбудовані вкладеннянадіслати латки як частину тіла електроного листавстановити/переписати параметри налаштувань (use 'section.name=value')відображати файли без змінвідображати файли, що ігноруютьсявідобразити вміст стану кеша (без поновлення)порядкове порівняння правокпідписати навіть якщо файл підпису зміненийпочати налагодженняФіксаціяДія MQПоверненнястанпідсховищезаглушити результаткоманда синхронізації вже виконуєтьсяФіксуватиКонсольний журналГілка латокПравка розлогоШукатиСинхронізаціяклон буде міститиме порожню робочу копію (лише сховища)номер ключа з підписомПоказати правкуthg %s: %s thg aboutthg add [ФАЙЛ]...thg annotatethg archivethg backout [ПАРАМЕТРИ]... [[-r] РЕВ.]thg bisectthg bookmarks [-r РЕВ.] [НАЗВА]thg clone [ПАРАМЕТР]... [ЗВІДКИ] [КУДИ]thg commit [ПАРАМЕТРИ] [ФАЙЛ]...thg debugblockmatcherthg debugbugreport [ТЕКСТ]thg debugconsolethg debuglighthgthg debugruncommand -- COMMAND [ARGUMENT]...thg drag_copy ДЖЕРЕЛО... ПРИЗНАЧЕННЯthg drag_move ДЖЕРЕЛО... ПРИЗНАЧЕННЯthg email [РЕВ-ІЙ]thg filelog [ОПЦІЇ]... ФАЙЛthg forget [ФАЙЛ]...thg graft [-r] РЕВ...thg grepthg guessthg help [КОМАНДА]thg hgignore [ФАЙЛ]thg import [ПАРАМЕТРИ] [ДЖЕРЕЛО]...thg init [ОТРИМУВАЧ]thg lockthg log [ПАРАМЕТРИ] [ФАЙЛ]thg manifest [-r РЕВ.] [ФАЙЛ]thg merge [[-r] РЕВ.]thg postreview [-r] РЕВ...thg prune [-r] REV...thg purgethg rebase -s РЕВ. -d РЕВ. [--keep]thg rejects [ФАЙЛ]thg remove [ФАЙЛ]...thg rename [ЗВІДКИ] [КУДИ]thg repoconfigthg resolvethg revdetails [-r РЕВ.]thg revert [ФАЙЛ]...thg rupdate [[-r] РЕВ.]thg serve [--web-conf ФАЙЛ]thg shellconfigthg shelvethg sign [-f] [-l] [-k КЛЮЧ] [-m ТЕКСТ] [РЕВ.]thg status [ПАРАМЕТРИ] [ФАЙЛ]thg strip [-k] [-f] [-n] [[-r] REV]thg sync [OPTION]... [PEER]thg tag [-f] [-l] [-m ТЕКСТ] [-r РЕВ.] [НАЗВА]thg thgstatus [OPTION]thg update [-C] [[-r] РЕВ.]thg userconfigthg version [ПАРАМЕТРИ]thg: %s thg: команда '%s' є неоднозначною: %s thg: невідома команда '%s' завершився час очікування повідомленнязавершився час відведений на читання: %r...несподівана відповідь на каналі очікування %rневідомоневідома латка вказана на переміщенняневідома правка!unrecognized profiling format '%s' - Нехтувати нерозбірлива відповідь: %sнепідтримуваний URL: %sпоновити всі сховища у поточному каталозіскористайтеся "thg -v help %s" для перегляду спільних параметрівскористайтеся "thg -v help%s" для виведення псевдонімів та спільних налаштуваньскористайтеся "thg help" для отримання переліку командскористайтеся "thg help" для отримання переліку команд або "thg -v" для деталізаціїскористатися як повідомленням фіксаціїкористуватись лише однією формою вказаної правкивикористовувати протокол витягування аби копіювати метаданіпередавати без стискання (швидка мережа)версія %sпочекайте другого протягом митібуде закритоwin32ill: не можливо створити вікно повідомленняwin32ill: переривається коли зупиняється цикл повідомлення win32ill: непідтримувана платформа: %s win32text є несумісним з eolФіксуватиз Mercurial-%s, Python-%s, PyQt-%s, Qt-%sробочі зміниЧистийЖодної././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/zh_CN/0000755000000000000000000000000014742203610014554 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1354146 tortoisehg-6.9/locale/zh_CN/LC_MESSAGES/0000755000000000000000000000000014742203610016341 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033565.0 tortoisehg-6.9/locale/zh_CN/LC_MESSAGES/tortoisehg.mo0000644000000000000000000046113514742203535021105 0ustar00rootroot,D<</=&m ʈ (I _i~ ܉$()CmWYar‹:ߋ7L]nsx | ی  0 ;F ^ j ʍ#-@<} 2 Ҏ ' C Q \}ӏ؏    / ;F NYx ΐ  #6G^vϑ .4;A Q _jqy ƒΒ  '>M^pw~ Ǔ˓ ' .8I_ ft{  ǔ ϔڔ -8P Ye u ĕʕߕ %/ 7BH\brz   Ė Җܖ  %+ ;I[ dpy ɗ'/#Ko Ș  0<,KJxÙԙ&$9MCh;-Kd~ ϛ$73I3}(ڜ,#&J`hn ŝ؝%&=P cmq Ҟ=,j Ɵ۟ "0F b o } ! ) )=3qw)>)H!j" AO V0wӣ& AM Taq:;'* J X!eY *G>:48Ki "§,!#=E W * /<Yv& ٪"  )1:N bl .:Md vBĬݬ+)3@t!9)<1n+>4ET,l"˯! " 7 B/M[}*ٰ.131eX "5,X$ ݲ4NU ny "ɳ& " ,7H[djz ´D̴,0/]?͵i\ƶa_CL=1θ ]%  ǹ(= L V d&p"ź '+; g$tV#2J#[.̼M 7CYh ýн !$3B Q ^l о"4#W{ .3ǿ   & 0;*R }&5* -5N#..:!8\-E+c%/ )6?DJ] z 9>.$.S,&  *6H\*s)"'7_p   ;S'qO#+Bn    #8GVet* $-'-U1.# ='U}A!M'?g@17^1)  +:B S]m r|  ! :XkC/ @Yjs)B?V[s  425g( % )4M+i %(%?Q-Y2 , > JW"k4;1@X^ + '4T"f$:;25n<3*4F*{)!7<BR<b&] ).>D JUo    (Y5/ &6 =If  &E T^dIiBcsxa~aMB IP%FvM ELd  *: KX`v   85n !;6+;Uei Y7>+G!s  += BPb  / : DNVZ iv x  9(8/h!&1/J g'r ?: 9GZGim %)0Zy#), L Ze mz-B )=M$b*0[@a;    *;M \ fs * ;EYl|!-"9X#JC($AUi"h(+ 6HYk{~H,d,,<!Wy%=% &3G{#Ik huf;E<#6 Uajy  , * ?I_ s  ":. iu |! *BH!h&:# *D!o(.  !. A M Yz!  ; G MXty'- 7 K [ v            6 %R x     !  " < M R [ 3a         ! )  :  E O _  f 2r 5     '&  N Z\  F  )8b!$4;!Ce #) M!nMK3k    1Je!"$9 ^ kv %AVmM#%) 0<L!e +&*FY t ]& 8EXv  " 3 AL T b o y    % " '3 S]z)  &5JHe"  ) 2 = IVn# " 71V.")#Lp[e[$ B $"## B#N#&l# ##### # # # # $ $$!%$@G$$$ $ $ $$&$$q % |% %% %%% % %% % & &"&1&:&J&a&ys&&.&%'D'!d'w''%(%(5( )%) .)8)Q)i) n)1x)) ) )))*"*9*A*V*4f*+O,%i,S,?,#-)-B-$R-w-|------- ----.....,. /',/ T/u/////1/!0 80D0 L0X0 1"161?1[1`1 o1#{1"11 1 1112-2G2P2U2]2 c2"o2!2 2 2 2 22 223)36A3x37333<3,4414sf4'4"5d%5.50535>62]6;664L7@7(77$88c8(89a999i:b:";)<c<.9=h==+>(>>/_?O?%?!@-'@8U@<@*@4@!+ABMAAAAA2BGB]B!aB*B!B-B7B6C VC dCoC CC CCCCCCD8'D`DqDDDDDDDEt$EE EEEEE F FF F +F5FGF%bFFGF&F*GAGZGjG GG GGG+G )HJH`H ~H"H#HH"H&!I,HI uII"IIIJJ-J6J>J2PJJJ JJJJJ6 KDKLK\KnK*K4K K LL L!#L EL RL `LLL*L LL,L %M3/M=cMM5MMN+Nhhh!h'iBi]iri iii ii ij#j")jLjhj jj'j j'j jk*kBk bk(pkkk'k#k#l4lSl llylllll/lm *m7m-@m.nmmmmmmnn"n$5nZnsnnn!nnno"#o&Fo5mooo1opp(pApYp`phpxpppppp q@!qbqzq q qq q q"q qq%rBrarwrrr,rrrs+sHs]sss |ssssssst(tCt Yt!cttttt tttu'uCu Su+^uu#uu+uv)vDvSvhv'qvvvv*vw$wDw-Vwwww+w6w,5xDbxx)x"x)y ;y Fygy+vy2y#y"yz,0z]zmzzz'x|#| | |||}#}7}K}k} }}}}}~~6~K~!c~~ ~~~O~d s "17@IRW\` p|ۀ  . @ LmŁ'S $`1 ǂ Ԃ ! ) 6@]m ǃ ڃ   + ? JX u      Ąۄ   * AL`t(څ .?Pa u  Ɇ݆  5O f q   ˇ ܇+? S ^i } ˆ و  $ / 9G [f w   Éщ    ( <G Xf    Ê   2 LW n |   ŋЋ    ! & 2@Q epx     nj Ҍ݌ $3 <G ^iq #ٍ *?Zu֎*"Fix(Ǐޏ8 /Cs(ΐ2A JVv3Ñ9!>$Z Ւ  '$:$_  Ɠ!ړ+Eb~9Δ  1AI P!]0$Օ  ' :$G$lA 0%VBlz*;L_pw%Ϙ,? R _ l x !0*-=MSlǚݚ 9*'d!$ʛ *:Sl-6˜ 4AHɞ Оޞ % ; \ h Ɵ ֟  Π< Fdk$+! /,\3o8ܢ48*cj rɣ*! -=!Y{!  'ȤH'9'a''H٥")?FY$r Ѧ**+Vo  ǧ%Χ!+2^ r }  ̨ܨ5$Za(x92۩\Wk}ê}AZ00K*|  ZȬ#* @ M Zg } ̭ ٭ $"9&Pw ~' $Ph~  ʯ)#PB  $  + ; HUq     ȱ ձ!:Mi   *Ų' #*; L Xe{*ҳ-!62R00**Itѵ'#'Ks6 ɶԶ$4;CZ p }-ȷ'Ϸ,.)[  ȸ ۸&!Bd!w'ι) 7? X ery %պ$)H<e$0ǻ"5%U{ %ļԼ (;K [h&{""Ž!+ )6'`+$; ! @4MH! 4",W.N!7M ] hs  *=Sd't  !!)?Od7w3& -:Sip(3ey*3 >.Z  *0$L'q  3/ CQXr   3<0R9R- = GTh-y + 6 =JRb9823'[b{4((<!Cex"  94+    -CV ]i T  *4*; fp  !   @O9ha K_^M  ! :G9W9?0 <6N6  )= T_fy 1  $6By:5 #0A\Ts Zg E#$7@HXiz  4!*-Gu       3= ? MZ a nx765.!D!f0!! *"7Zj}88  !/2`b $-$=b! ?&Af  '1DvM(;  FThw     #< R\l |  !2Tg-"!J!7M"i x3$$ )=>Q  cj+'.&U$q(?&E3d=`Yo\&&)Mw~   1  , =Hg    ! 4 GT p~  :  DR Zex  '*1Qn;#*C!_  ' (!5W t  '  )<(Cl* AO bm~ 3(Mv$$+PWh   " A K9W1! !N. }? !;K^q   %9 KY`!=?V!  ( 4A Q^q$$3:P"p$   ,<L boB5< CO$_''!4 >Zp   []z  $4'M u     ! 0 (H q x "     ' ( 8 L \ s  z   6 *   ) 3 C R  d q  z           2 Q 3n      ' ) B a q B'Ij$$!9J*e        "0+O{ -   ( ; H Ub rX -&$T$y}E'1 9 Zen~ *1JN^csz|"KB8 !(DLS f p z Q Xfn --$(Maq'    %  8  E  R ] p        !  ! 8! F! S! ]!j!r!! !!-!!@!>"Q"+f""'"o"1#!M#\o##$#!$,2$#_$&$q$)%AF%$%%!M&o&L&#&&'1'Q(d(V)J)+*J*f*!}+$+}+%B,Fh,,,,-9-V-=r-$-<-.#. *.z4. . . ..!./4//P/// // /// 0 0060O0g08y00 0011'191P1i1[~1 111! 2 -2:2A2 R2_2 c2 q2 ~22!22%23$3D3 Z3g3 z333 33%3 4)494R4!q44444$4#595W5p55555 5 5*5616 I6S6o66!6366 677-*7=X7777 7$7 7 88 28?8$U8 z88'8 858:9;9"W9z99999 9.:9D:~:!:: : :::?::; B;$L;Bq;<;*;0<M< ^<h<x<!<<!<<0=!9='[=*== ==== >0>0B>s>H>>>1>*? :?H?P?W?Mk?S?Q AQ_BB BB BBC +C 8CEC ^CIkCC C CC%CDD!]D*DHD3D'E=E\ErEE!E)E!E! F!.F!PFrF-F+FcF#OG sGG GKG?G*3HH^H<HHHI)I EIQI`IoIII I II&I IIJJ%J,J5J>J%QJwJJ*JJ!J K% KFKMKfKmKtK{K KK K K K KK K KK KK LL+L2L';LcLyLLLLLLM-,M0ZMMMMMM N&N?NFN MNWN iN sN N N#NNNNN O O #O0OIO_O#fOO OOOOOP,P(copied from %s) (is a symlink) (is unversioned) (renamed from %s) (was added) (was added, now missing) (was deleted) filtered"%s" is not a folder"%s" is not a valid directory"%s" removed from path history"%s" removed from search history### filter text ###### host certificate fingerprint ###### patch name ###### regular expression ###### regular expression search pattern ###### revision set query ###$FILE_ENCODINGS% Match%d day%d days%d files have merge conflicts that must be resolved%d files were modified on both branches and must be resolved%d hour%d hours%d matches found%d minute%d minutes%d month%d months%d outgoing changesets%d outgoing changesets to %s%d patches were exported to:

                                                                                                            %s%d pending changelists found%d second%d seconds%d week%d weeks%d year%d years%d%%%dpt%p%%s (hint: %s)%s (pending)%s (submitted)%s - Revision Details (%s)%s - TortoiseHg Workbench%s - TortoiseHg Workbench - %s%s - branch operation%s - commit%s - commit options%s - hg %s%s - purge%s - recover repository%s - status%s - status (selection filtered)%s - sync options%s - verify repository%s : %s%s %s already exists, replace URL?%s and %s have identical contents %s certificate error: no certificate received%s had rejected chunks, edit patched file together with rejects?%s is a dirty subrepo%s is added%s is deleted by non-hg command, but still tracked%s is ignored%s is modified%s is not a valid repository%s is not modified (clean)%s is not tracked (unknown)%s is removed%s patches%s project settings (.hg/projrc)%s repository settings%s will be imported to %s's global settings&About TortoiseHg&Add&Add Repository...&AfterIndent&Archive&Archive...&Auto&Auto Detect&Auto-Complete&Backout...&Bisect...&Branch&Browse...&Bundle Rev and Descendants...&Cancel&Character&Clear&Clone&Close&Close Repository&Commit&Commit to Queue...&Commit to current branch&Copy&Copy Patch&Copy...&Create&Custom Toolbar&Delete&Delete Patches...&Delete Queue...&Delete Unversioned...&Diff Other to Ancestor&Diff Selected File Revisions&Diff to Other&Diff to Parent&Discard&Discard (--force)&Discard changes&Edit File&Edit Local&Edit Toolbar&Edit...&Editor Options&Email Patch...&Exit&False&File&Filter Toolbar&Finish Patch&Flat List&Force&Forget&Goto (update workdir)&Goto Revision...&Graft to Local...&Help&Ignore...&Import&Import Patches...&Incoming&Invisible&Keep (--keep)&License&Local&Mac&Make secret&Mark Excluded Changes&Mark Resolved&Mark Unresolved&Mark as Resolved&Match&Merge&Merge with Local...&Merge...&More Options...&Move&New Repository...&No&No (discard changes)&Open&Open All&Open Local&Open Repository...&Originating Revision&Other&Outgoing&Parent Revision&Parent Revision (%d)&Paste&Patch Branch&Prune&Prune Selected...&Prune...&Pull&Purge Queue...&Purge...&Push Bookmark&Readme&Rebase...&Redo&Refresh&Refresh Repository List&Remote Update...&Remove&Remove Bookmark&Remove...&Rename Active Queue...&Replace&Repository&Resize Columns&Resolve...&Revert&Revert to Revision...&Revert with backup&Revert...&Run&Save&Save at Revision...&Scan Repositories at Startup&Search&Search in Current File&Set...&Settings&Shelve&Shelve...&Sign&Skip this Revision&Sort&Sort by .hgsub&Spaces&Strip&Strip...&Sync Bookmarks...&TAB&TAB Inserts&Tag...&Take Local&Task Toolbar&Terminal&True&Unapply Patch&Undo&Unix&Unspecified&Update&Update...&Verify&View&View Changeset&View Missing&View at Revision&Visible&Web Server&Windows&Word&Workbench Toolbars&Wrap&Yes'Publishing' repository(%s) (DEPRECATED)(excluded from the next commit)(is a changed and dirty sub-repository)(is a changed sub-repository)(is a dirty sub-repository)(is a new and dirty sub-repository)(is a new sub-repository)(is a removed sub-repository)(is an unchanged sub-repository)(no help text available)(same as parent)*: not used by TortoiseHg, resolved merge, unresolved merge3-&Way Diff3-way dir diffLaunch settings tool...%d changeset will be stripped%d changesets will be strippedAnnotate:Candidate MatchesDifferences from Source to DestHost: %sIgnore FilterParse Error!Repository Details:Revert %d files to their contents at the following revision?Revert %s to its contents at the following revision?Selected Options:Selected Options: %sUncommitted local changes are detectedUnknown revision!Unrevisioned FilesUntracked FilesWeb Server:= Working Directory Parent =A bookmark named "%s" already existsA new version of TortoiseHg (%s) is ready for download!A repository cannot be added as a subrepo of itselfA revision identifier, bookmark, tag or branch nameA shelf file of that name already existsA shelf name cannot contain %sA terminal shell cannot be opened for remoteA terminal shell must be configuredA&dd Subrepository...A&uthorAbortAbort the export operation. Aborted p4pendingAboutAbout &QtAbout TortoiseHgAcceptAccept All MatchesAccept Selected MatchesAccept the local file version (yours)Accept the other file version (theirs)Activate BookmarksActivate bookmark?Activate:AddAdd &LargefilesAdd &Largefiles...Add Files...Add Path to ServeAdd a repository to this groupAdd as &LargefilesAdd as &Normal FilesAdd files to version controlAdd ignore filter...Add or remove patches must be merged in the working directoryAdd selected untracked files?Add separatorAdd to listAddedAdded tag %s for changeset %sAfter Pull OperationAge:AliasAll HistoryAll changesets, the same as 0:tip.All conflicting files will be marked unresolved.All conflicts are resolved.All contextsAll files (*)All itemsAll revisionsAll unsaved changes will be lost.Allow PushAllow push of a new branch (--new-branch)Allow pushing new branches (--new-branch)Always merge (when possible)Always show repo tabs, even for a single repo. Default: FalseAmendAmend current revisionAn error occurred while reading the file.An error occurred while updating the repository hgrc file (%s)An error occurred while writing the file.An exception happened while loading the subrepos of:

                                                                                                            "%s"

                                                                                                            An interrupted graft operation has been found. You cannot perform a different graft operation unless you abort the interrupted graft operation first.Annotate &FileAnnotate Op&tionsAnnotate with revision numbersApp&ly FormatAppendAppend graft info to log messageAppend the changes to the existing patch files. Applied patchesApplied patches or qparentApply all patchesApply changes before exit?Apply one patchApply only this patchApply onto original parentApply patchArabicArchive - %sArchive FormatsArchive types:Are you sure that you want to cancel the commit operation?Are you sure you want to delete these files and/or folders?Are you sure you want to overwrite it ?Are you sure you want to reload this file?Are you sure?Ask UsernameAttempt automatic (trivial) mergeAttempt to push to specified URL or alias after each successful commit. Default: No pushAuthorAuthor ColoringAuto Commit ListAuto Exclude ListAuto Includes:Auto-resolve mergesAutomatically advance to next page when backout and merge are complete.Automatically advance to next page when merge is complete.Automatically resolve merge conflicts where possibleBackBacked out changeset: Backing out a parent revision is a single step operationBacking out and committing...Backing out, then merging...Backout - %sBackout changesetBackout current patch branchBackout requires a parent revisionBackout revisionBackport part of a changeset to a dependencyBackspace or Del to remove row(s)Backup copies of modified files can be found in .hg/Trashcan/Backwards phase change requestedBad filenameBalticBccBefore backout, you must commit, shelve to patch, or discard changes.Before merging, you must commit, shelve to patch, or discard changes.Bisect - %sBisect - Bad, Good...Bisect - Good, Bad...BoldBoo&kmark...Bookmark '%s' does not existBookmark '%s' has been addedBookmark '%s' has been movedBookmark '%s' has been removedBookmark '%s' has been renamed to '%s'Bookmark - %sBookmark named "%s" does not existBookmark:BranchBranch ColorsBranch:Branch: Bro&wse at RevisionBrowse Directory...Browse...Bundle DAG Range...Bundle files (*.hg)Bundles store complete changesets in binary form. Upstream users can pull from them. This is the safest way to send changes to recipient Mercurial users.Bypass ListBzip2 tar archivesC&hoose Log Columns...C&onfigure FormatCLI EditorCan't change settings without iniparse package - view is readonly.Can't find revision '%s'CancelCannot add subrepositoryCannot backout change on a different branchCannot export revisionCannot export revision %s into the file named: %s Cannot import selected revisionCannot open Plugin Options dialogCannot open non Mercurial repositories or subrepositoriesCannot open repositoryCannot open the .hgsub file in:

                                                                                                            %sCannot read the .hgsub file.

                                                                                                            Subrepository removal failed.Cannot start a new searchCannot update the .hgsub file in:

                                                                                                            %sCannot update the .hgsub file.

                                                                                                            Subrepository removal failed.CcCc:CelticCentral and Eastern EuropeCertificate Query ErrorChange &Phase toChangeLog FontChanged by &This CommitChanges have been moved, you must now commitChanges take effect on next commitChangeset LinkChangeset is a merge changeset.Changeset is a named branch head.Changeset is closed.Changeset is tagged.Changeset:ChangesetsChangesets containing files matched by pattern.Changesets not found in the specified destination repository, or the default push location.Changesets where username contains string.Changesets which add files matched by pattern.Changesets which modify files matched by pattern.Changesets which remove files matched by pattern.Character encoding of files in the repository, used by the web interface and TortoiseHg.CheckCheck Subrepo PhaseCheck all filesCheck for incoming changesCheck for incoming changes from %sCheck for incoming changes from selected URLChecked count: %dCheckingChecking for updates...Checking working directory status...Checking...Checkmark files to addCheckmark files to forgetCheckmark files to removeCheckmark files to revertChild:Chunks selected: %d / %dClea&r LogCleanClearClear contents of shelf file %s?Clear current query and query textClear the current shelf fileClick OK to continue or Abort to exit.Clon&e Repository...Clon&e...Clone - %sClone RepositoryClone to revision:Clone...CloseClose %s branchClose After CommitClose Branch: Close current branchClose other tabsClose tabClose the commit tool after every successful commit. Default: FalseClose:Co&mpare File RevisionsCollapse the rebased changesets (--collapse)Color changesets by author name. Default: FalseComma separated list of archive formats allowed for downloadingComma separated list of branch names that should be ignored when building a list of branch names for a repository. Default: None (leave blank)Comma separated list of exclusion file patterns. Exclusion patterns are applied after inclusion patterns.Comma separated list of files that are automatically included in every commit. Intended for use only as a repository setting. Default: None (leave blank)Comma separated list of files that are automatically unchecked when the status, and commit dialogs are opened. Default: None (leave blank)Comma separated list of inclusion file patterns. By default, the entire repository is searched.Comma-separated list of blind carbon copy recipient email addressesComma-separated list of carbon copy recipient email addressesComma-separated list of recipient email addressesCommandCommand ErrorCommand outputCommand to use for SSH connections.

                                                                                                            Default: "ssh" or "TortoisePlink.exe -ssh -2" (Windows)CommitCommit Dialog ToolbarCommit LaterCommit NowCommit OptionsCommit backout and merge resultsCommit changesCommit changes in repositoryCommit context menuCommit merge resultsCommit messageCommit...Committing...Common setsCompare revisions of the selected fileCompare to &1st ParentCompare to &2nd ParentCompletely remove file from patch?CompressCompress - %sCompress History...Compress changesets up to and includingCompress is complete, old history untouchedConfig File:Config files (*.conf *.config *.ini)Configuration Error: "%(arg0)s",
                                                                                                            Please fix your configConfigure Custom ToolConfigure Explorer extensionConfigure HookConfigure Issue TrackerConfigure guardsConfigure guards for selected patchConfigure repository settingsConfigure the selected COM Bug Tracker plugin.Configure user wide settingsConfigures a COM IBugTraqProvider or IBugTraqProvider2 issue tracking plugin.Confirm AddConfirm Branch ChangeConfirm DeleteConfirm Delete UnversionedConfirm DiscardConfirm Discard ChangesConfirm Discard MessageConfirm ExitConfirm New BranchConfirm OverwriteConfirm PushConfirm Push to remote RepositoryConfirm ReloadConfirm RemoveConfirm RevertConfirm SaveConfirm StripConfirm URL replaceConfirm UndoConfirm UpdateConfirm adding unknown filesConfirm deleting filesConfirm file deletionsConfirm patch queue switchConfirm path deleteConnecting to Review Board...Consider aborting the graft first.Consider aborting the rebase first.ConsoleContactContext MenuContinue or abort interrupted graft operation?Convert an existing repository into a subrepositoryConverted From:CopyCopy &HashCopy &PathCopy - %sCopy ErrorCopy Selected as PatchCopy full path of file(s) to the clipboardCopy messageCopy one of the recent commit messagesCopy source -> destinationCopy the root path of the repository to the clipboardCopy working directory files from skeletonCould not get subrepository listCould not instantiate Issue Tracker plugin COM objectCould not open .hgsub fileCould not open some subrepositoriesCould not open the specified file for reading.Could not open the specified file for writing.Could not translate the file content from native encoding.Could not translate the file content to native encoding.Could not update .hgsub fileCreateCreate &BranchCreate &New Queue...Create Patch QueueCreate Repository HereCreate a new groupCreate a new patchCreate a new repositoryCreate clone here from sourceCreate diff with all changes on this branchCreate diff with all outgoing changesCreate new named branch "%s" with this commit? Cu&tCulprit found.Current local revisionCustom Toolbar &SettingsCustom ToolsCyrillicDateDate:De&tect Renames...Deactivate current bookmark?Dead BranchesDefault PushDefault widgetDefines the regex to match when picking up issue numbers.DeleteDelete %d file in .hg/TrashcanDelete %d files in .hg/TrashcanDelete %d ignored fileDelete %d ignored filesDelete %d unknown fileDelete %d unknown filesDelete %s from your repo configuration file?Delete Group '%s' and all its entries?Delete Patch QueueDelete PatchesDelete ToolDelete empty foldersDelete from listDelete hookDelete patches...Delete reference toDelete selected chunksDelete selected chunks from shelf file %s?Delete selected chunks from working copy?Delete selected patchesDelete selected query from historyDelete shelf file %s?Delete the current shelf fileDelete the following unversioned files?Deleted %d filesDeleted %d files and %d foldersDeleted*Deleting trash folder...Deletion failuresDeny PushDescriptionDestDestination file already exists.Destination path:Destination:Detect Copies/Renames in %sDetect outgoing changesDetect outgoing changes to %sDetect outgoing changes to selected URLDetect renames and copiesDetected merge/diff tools:Detected uncommitted local changes in working tree. Please select to continue: Detected uncommitted local changes.Determining outgoing changesets to email...Diff &Changeset to ParentDiff &LocalDiff &Local to AncestorDiff Changeset to Loc&alDiff File toDiff FontDiff Selected &ChangesetsDiff ToolbarDiff and AnnotateDiff contentsDiff not displayed: Diff to &LocalDiff to parentDir diff to p1Dir diff to p2Directory diffDirectory of filesDiscard - discard local changes, no backupDiscard current backout message?Discard current commit message?Discard local changes (revert --all)Discard local changes, no backup (-C/--clean)Discard local changes, no backup (-f/--force)Discard outstanding changes to working directory?Discard remote changes, no backup (-C/--clean)Display closed branchesDisplay graph the named branch onlyDisplay only active branchesDisplay the file anywayDisplaying %(count)d of %(total)d itemsDnD SynchronizeDo not include modification dates in diff headers. Default: FalseDo not save backup files (*.orig)Do not show menu items on unversioned folders (use shift + click to override)Do not update the new working directoryDo not verify host certificateDo you really want to force a backwards phase transition?Do you really want to activate patch queue '%s' ?Do you really want to make this revision secret?Do you really want to remove the repository "%s" from its parent repository "%s"Do you want to exit?Do you want to keep them or discard them?Drag to change orderDuplicate NameE&ncodingE&xitE&xploreE&xplore FolderE&xplore LocalE&xplorer HelpE&xportE&xport Patch...EOL &ModeEOL &VisibilityEditEdit FileEdit Ignore FilterEdit LocalEdit Path to ServeEdit Re&jectsEdit Tool ...Edit current file in working copyEdit fileEdit hookEdit patch dependency graphEdit patched file and rejects?Edit repository ignore filterEdit resolved fileEditor launch failureEmailEmail DAG Range...Email Selected...Email address to use in the "From" header and for the SMTP envelopeEmail outgoing changesets for remote repositoryEmit debugging output (--debug)Enabled Overlay HandlersEnabled overlaysEncodingEnglish MessagesEnter line number (1 - %d)Enter revision identifierErrorError encountered.Error executing "commit finished" triggerError getting commit message information from Issue Tracker pluginError loading subreposError previewing subrepo: %sError string "%(arg0)s" at %(arg1)s
                                                                                                            Please edit your configError writing fileExcludeExcludes:Execute custom tool '%s'ExitExit without finishing resolve?Exiting with an unfinished graft is not recommended.Exiting with an unfinished rebase is not recommended.Explorer Extension SettingsExplorer Extension Settings - TortoiseHgExport DAG Range...Export Diff...Export Selected...Export patchExtExtensionsFailed to add repositoryFailed to add subrepositoryFailed to execute custom TortoiseHg commandFailed to execute custom commandFailed to load issue tracker '%s': %sFailed to load issue tracker: '%s': %s. Failed to open path in terminalFailed to open repositoryFailed to refreshFailed!Fetch - use fetch (auto merge pulled changes)Fetch - use fetch extension (fetch is not active!)Fields to match:FileFile &History / AnnotateFile Differences Log ColumnsFile HistoryFile History Log ColumnsFile List ToolbarFile StatusFile Status:File already existsFile conflicts need to be resolvedFile context menu (on manifest and revision details)File is binaryFile is larger than the specified max size. maxdiff = %s KBFile may be binary (maximum line length exceeded)File or diffs not displayed: File or diffs not displayed: File is larger than the specified max size. maxdiff = %s KBFile pattern setsFilenameFilesFilter Histor&yFilter b&yFilter graph with revision sets or branchesFilter:Find RenamesFind copy and/or rename sourcesFind matches - %sFind revisions matching fields of:Finding outgoing changesets to %s...FinishedFixed revisionsFlag:Fold patches...Follow copies and renamesFont used to display changelog data. Default: monospace 10Font used to display commit messages. Default: monospace 10Font used to display output messages. Default: sans 8Font used to display text differences. Default: monospace 10FontsForce Repo TabForce a merge with outstanding changes (-f/--force)Force push or pop (--force)Force push or pull (override safety checks, --force)Force push to remote location (-f/--force)Force removal of modified files (--force)ForgetForget Files...Fork GUIForwardFound %d incoming changesetsFound incoming changesets from %sFromFrom:Full AuthornameFull Path TitleGPG key ID associated with user. Default: None (leave blank)Generate English commit messages even if LANGUAGE or LANG environment variables are set to a non-English language. This setting is used by the Merge, Tag and Backout dialogs. Default: FalseGetting incoming changesets from %s...Git FormatGit patches can describe binary files, copies, and permission changes, but recipients may not be able to use them if they are not using git or Mercurial.GlobGlobal SettingsGnuPGGo toGo to LineGo to a specific revisionGo to current revisionGoto ancestor of %s and %sGoto common ancestorGoto revisionGraftGraft - %sGraft Selected to local...Graft abortedGraft changesetGraft changeset #%d of %dGraft failedGraft generated merge conflicts that must be resolvedGraft is completeGraft:GraphGreatest common ancestor of the two changesets.GreekGuards: %d/%dGuess RenamesGzip tar archivesHTTP Error: %d (%s)Head is closed!HebrewHg command:Hg file log viewer [%s] - %sHg patches (as generated by export command) are compatible with most patch programs. They include a header which contains the most important changeset metadata.Hide DetailHide TagsHide context menu outside repositoriesHighlight IconHook typeHooksHostHost name and (optional) port of proxy server, for example "myproxy:8000"Host name of mail serverHostname the sender can use to identify itself to the mail server.How many lines a "zebra stripe" should span in multiline output. Default is 1; set to 0 to disable.IconIconsIf no username has been specified, the user will be prompted to enter a username. Default: FalseIf specified, files in the directory, e.g. .hgignore, are copied to the newly-created repository.If you still have trouble, please file a bug report.Ignore Ignore Blank LinesIgnore WS AmountIgnore White SpaceIgnore caseIgnore changes in the amount of white space in diff views. Default: FalseIgnore changes in the amount of white space in the annotate view. Default: FalseIgnore changes whose lines are all blank in diff views. Default: FalseIgnore changes whose lines are all blank in the annotate view. Default: FalseIgnore filter - %sIgnore white space when comparing lines in diff views. Default: FalseIgnore white space when comparing lines in the annotate view. Default: FalseIgnored*Immediate OperationsImport - %sImport from ClipboardImport to &MQIn &Current RevisionIn &Original RevisionIn All &HistoryIn Current &FileIn-Reply-To:IncludeInclude all ancestorsInclude patch queueIncludes:Incoming BookmarksIncoming from %s aborted, ret %dIniparse must be installed.Iniparse package not foundInitial revisionInline TagsInput new guards for %s:Insufficient access rights, reverting to read-only mode.Insufficient access rights.InterruptedInterrupted graft operation foundInvalid Settings - Please provide your ReviewBoard usernameInvalid Settings - The ReviewBoard server is not setupInvalid commandInvalid configuration: %sInvalid date formatInvalid default push revision: %s. Please check your Mercurial configuration (tortoisehg.defaultpush)Invalid glob expressionInvalid regexp expressionInvalid reviewboard plugin. Please download the Mercurial reviewboard plugin version 3.5 or higher from the website below. %sIssue LinkIssue RegexIssue TrackerIssue Tracker PluginIssue Tracker Plugin ErrorIssue Tracker TriggerIssue TrackingIt was not possible to fully load the subrepository list for the repository in:

                                                                                                            %s

                                                                                                            The following subrepositories may be missing, broken or on an inconsistent state and cannot be accessed:

                                                                                                            %sIt was not possible to get the subrepository list for the repository in:

                                                                                                            %sItalicJapaneseKeep original branch names (--keepbranches)Keep original changesets (--keep)Keep patch filesKey IDKey:Keyword SearchKnown bad revision:Known good revision:KoreanLargefilesLeft ToolbarLicenseLike "keyword(string)" but accepts a regex.LineList Optio&nsList of all toolsList updated files (--verbose)Load &All RevisionsLoad all revisions into graphLoading repository %sLocal HostnameLocal PathLocal Path:Local Repository %sLocal disks onlyLocal revision informationLocal signLocal tagLocation:Locked*LogLog Batch SizeLong SummaryMMQ &OptionsMQ Git FormatMQ QPushPushMQ QPushPush allMQ optionsMa&nifest ModeMake MQ patches secret (instead of draft). Default: FalseMake repo compatible with Mercurial <1.7Manage HTTPS connection security and user authenticationMandatory Issue ReferenceManually resolve rejected chunks?Manually resolve rejected patch chunksMark as &UnresolvedMark this chunk as resolved, goto next unresolvedMark this chunk as unresolvedMark this file as resolvedMark this file as unresolvedMatch TextMatch any of %d revisionsMax ChangesMax Diff SizeMax FilesMaximum number of changes to list on the changelog. Default: 10Maximum number of files to list per changeset. Default: 10Menu BehaviorMercurial Re&solveMercurial UserMercurial command is still running. Are you sure you want to terminate?Mercurial was unable to find an editor. Please configure Mercurial to use an editor installed on your system.MergeMerge - %sMerge - allow to merge with local changesMerge all pending dependenciesMerge caused file conflictsMerge changesetMerge from (other revision)Merge rejected patch chunks into %sMerge revision not specified or not foundMerge to (working directory)Merge using selected merge toolMerge with %sMerging...MessageMessage FontMessage Translation FailureMessage identifier to reply to, for threadingMethod to enable TLS when connecting to mail server. Default: noneMin Similarity: %d%%Minimum SizeMissing informationModi&fy HistoryMonitor Repo ChangesMonitor working
                                                                                                            directory changesMoveMove changes between working dir and patchMoved tag %s to changeset %s (from changeset %s)Multiple sources chosenNameName associated with commits. The common format is:
                                                                                                            Full Name <email@example.com>Name or email address of the person in charge of the repository.Named branch "%s" already exists, last used in revision %d New &GroupNew &WorkbenchNew Branch: New Commit PhaseNew GroupNew Name:New Patch BranchNew Repo SkeletonNew RepositoryNew ShelfNew Tool ...New file createdNew hookNew patch message:New patch queue nameNew shelf createdNextNext DiffNext diffNo DatesNo appropriate filesNo backup (-n/--nobackup)No branch changesNo chunks remainNo commitNo deletable chunksNo diff tool foundNo editor foundNo file changesNo files checkedNo files found for this operationNo files selectedNo files to findNo host specifiedNo host validation, but still encrypted (bad)No ignored files foundNo incoming changesets from %sNo issue link was found in the commit message. The commit message should contain an issue link. Configure this in the 'Issue Tracking' section of the settings.No items to displayNo matches foundNo merge conflicts, ready to commitNo merge conflicts, ready to commit or reviewNo modified files checkmarked for commitNo operation to performNo outgoing changesetsNo outgoing changesets to %sNo patch branch selectedNo remote repository URL or path setNo repository foundNo shell configuredNo transaction availableNo trash files foundNo unknown files foundNo username configuredNo valid default remote repository URL or path has been configured for this repository.

                                                                                                            Please type and save a remote repository path on the Sync widget.No visual diff tools were detectedNo visual editor configuredNone - simply pull changesetsNordicNot a Mercurial subrepo, not previewableNot a head revision!Not a head, backout will create a new head!Nothing CommittedNothing changed.Nothing to importNothing to pushOKObsolete state:On repowidget, show forOne or more of the changesets that you are attempting to push involve the creation of a new branch. Do you want to create a new branch in the remote repository?Only consider deleted filesOnly files modified/created in this revisionOnto destinationOpenOpen &TerminalOpen S&ubrepositoryOpen a new named branchOpen a shell terminal in the repository rootOpen a shell terminal in the selected folderOpen advanced query editorOpen all repositories in new tabsOpen hgweb configOpen new tabs next to the current tabOpen parent folder of current file in the system file managerOpen shelve toolOpen the repository in a file browserOpen the repository in a new tabOpen the selected folder in the system file managerOpen the selected subrepositoryOperation aborted:

                                                                                                            %(arg0)s.Optional. Comma-separated list of host names that should bypass the proxyOptional. Method to use to send email messages. If value is "smtp" (default), use SMTP (configured below). Otherwise, use as name of program to run that acts like sendmail (takes "-f" option for sender, list of recipients on command line, message on stdin). Normally, setting this to "sendmail" or "/usr/sbin/sendmail" is enough to use sendmail to send messages.Optional. PEM encoded client certificate chain file. Environment variables are expanded in the filename.Optional. PEM encoded client certificate key file. Environment variables are expanded in the filename.Optional. Password to authenticate with at the proxy serverOptional. User name to authenticate with at the proxy serverOptionsOptions:Or use:Order the subrepos as in .hgsubOriginal Parent:Other revision informationOutgoing BookmarksOutgoing to %s aborted, ret %dOutput FontOverlaysP&ull BookmarkP&ushPEM files (*.pem *.crt *.cer)PEM files (*.pem *.key)Parent 1:Parent 2:Parent:ParentsPasswordPassword to authenticate to mail server withPassword:Paste &FilenamesPatch Branch ToolbarPatch EOLPatch Files (*.patch)Patch Name RequiredPatch QueuePatch Queue Actions ToolbarPatch date:Patch exportedPatch failed to applyPatch files (*.diff *.patch)Patch files already existPatch fold - %sPatch message:Patch name:Patch series description is sent in initial summary email with [PATCH 0 of N] subject. It should describe the effects of the entire patch series. When emailing a bundle, these fields make up the message subject and body. Flags is a comma separated list of tags which are inserted into the message subject prefix.Patch user:Patch:Patch: %sPatches exportedPatches to foldPathPath Edit ToolbarPath:Paths in Repository Settings:PatternsPending Perforce Changelists - %sPerforce:Perform a push before updating (-p/--push)PhasePlain, do not prepend Hg headerPlease configure a visual editor.Please enable the Gpg extension first.Please enter a usernamePlease enter commit messagePlease report this bug to our bug trackerPlease set a valid URL to continue.Please wait while committing merged files.Please wait while making backout.Please wait while the file is opened ...Please wait...PopPop allPortPort to connect to on mail server. Default: 25Port to listen onPort:Post &ReviewPost Pull BehaviorPost Pull: Post ReviewPost Selected to Review Board...Post to Re&view Board...Prepare to backoutPrepare to mergePreserve files beginning with .hgPrevPreviewPreview:Previous DiffPrevious diffPreviously the subrepository was at the following revision:ProxyPrune - %sPublish request immediatelyPullPull from %s aborted, ret %dPull from %s completedPull incoming changesPull incoming changes from %sPull incoming changes from selected URLPull incoming changesets into your repositoryPull subrepos from:Pull to here...Pulled remote bookmark: %sPulling from %s...PurgePurge Patch QueuePus&hPush &AllPush After CommitPush After Commit:Push Requires SSLPush Selected &BranchPush allPush current branch (%s)Push outgoing changesPush outgoing changes to %sPush outgoing changes to selected URLPush to %s abortedPush to %s aborted, ret %dPush to %s completedPush to &HerePush to remote repository %s ?Push up to current revision (#%d)Push up to revision #%dPushed local bookmark: %sPushing to %s...QNewQRefreshQueryQuery about changesets affecting the selected filesQuitR&emove BookmarkR&epository Registry OptionsR&ollback/Undo...README not configuredRe&coverRe&move VersionedRe&move from RegistryRe&nameRe&name Patch...Re&name...Readonly*Ready to purge.RebaseRebase - %sRebase - rebase local commits above pulled changesRebase - use rebase extension (rebase is not active!)Rebase abortedRebase already in progressRebase changeset and descendantsRebase entire source branch (-b/--base)Rebase failedRebase generated merge conflicts that must be resolvedRebase is completeRebase unpublished onto Subversion head (override source, destination)Rebase...Recurse into subrepositoriesRecurse into subrepositories (--subrepos)Redundant authentication infoRefreshRefresh &Task TabRefresh ToolbarRefresh current patchRefresh current repositoryRefresh file listRefresh only the current task tabRefresh the Repository Registry listRegexpRegexp:Regular expression search patternReject incoming changesetsRelated Paths:ReloadReload FileRemo&ve Subrepository...Remote Update - %sRemote command:RemoveRemove &All Selected FilesRemove &Unmodified FilesRemove Files...Remove authentication data from URLRemove current working revision?Remove files from version controlRemove filter, show rootRemove patch directory ofRemove patches from queue?Remove selected deleted files?Remove the node and all its subnodes. Repositories are not deleted from disk.Remove the selected repository?Remove this subrepository from the current revisionRemoved local bookmark: %sRemoved remote bookmark: %sRemoved tag %sRenameRename - %sRename ErrorRename FileRename PatchRename Patch QueueRename file or directoryRename patch %s to:Rename patch queue '%s' toRename patch...Rename the entryReopen last closed tabReopen last closed tab groupReplaceReplace existing hook?Replace existing tag (-f/--force)Replace the existing patch files. Report only the first match per fileRepositoriesRepositoryRepository ErrorRepository ID:Repository RegistryRepository Registry updatedRepository SettingsRepository command still runningRepository is lockedRepository not localRepository status & changesRequire confirmationResolve Conflicts - %sResolved conflictsRestart &BranchRestart Mer&geRestart Merge &withRestart all TortoiseHg applications for the following changes to take effect:Resuming rebase already in progressRevRevertRevert - %sRevert Files...Revert all file changes?Revert all files to this revisionRevert all working copy changes?Revert file changesRevert file(s) to contents at this revisionRevert files to local or other parent?Revert local file changes?Revert the following files?Revert to RevisionReverting p4 changelist...Review BoardReview ID:Review draft posted to %s Review published to %s RevisionRevision #%d (%s) was exported to:

                                                                                                            %s%s%sRevision &DetailsRevision SetRevision Set QueryRevision details context menuRevision has changed to:Revision is &BadRevision is &GoodRevision to Match:Revision:Revisions to Match:Right ToolbarRollback commit to revision %dRollback to revision %d (undo %s)?Running at %sRunning...RussianS&ync ToolbarS&ynchronizeSMTP HostSMTP PasswordSMTP PortSMTP TLSSMTP UsernameSSH CommandSSL error: %sSSL: Server certificate verify failedSSL: unknown error %s:%sSa&ve Current Sync Paths on ExitSaveSave GlobalSave Open Repositories on E&xitSave PathSave changes before editing?Save current URL under an aliasSave error report toSave file as it appeared at this revisionSave file toSave hgweb configSave in RepoScan &Remote RepositoriesSearchSearch HistorySearch Selected TextSearch already in progressSearch commit message, user name, and names of changed files for string.Search file revisions for patternsSearch in All &HistorySearchingSearching...Secret MQ PatchesSecure HTTPS ConnectionSecuritySecurity: Select &AllSelect &NoneSelect Destination FileSelect Destination FolderSelect Directory containing patchesSelect RepositorySelect Source FileSelect Source FolderSelect Tool:Select User Certificate Chain FileSelect User Certificate Key FileSelect a GUI location to edit:Select an existing repository to add as a subrepoSelect branch of merge commitSelect bundle fileSelect destination repositorySelect patch folderSelect patchesSelect post-pull operation for this repositorySelect repository directory to addSelect repository directory to openSelect source repositorySelect the initial revision that will be selected when opening a repository. You can select the "current" (i.e. the working directory parent), the current "tip" or the working directory ("workingdir"). Default: currentSelect the initial widget that will be shown when opening a repository. Default: revdetailsSelect the revisions that will be pushed by default, whenever you click the Push button.

                                                                                                            • all: The default. Push all changes in all branches.
                                                                                                            • branch: Push all changes in the current branch.
                                                                                                            • revision: Push the changes in the current branch up to the current revision.

                                                                                                            Default: allSelect the toolbar or menu to changeSelect when the working directory status list will be refreshed:
                                                                                                            - auto: [default] let TortoiseHg decide when to refresh the working directory status list.
                                                                                                            TortoiseHg will refresh the status list whenever it performs an action that may potentially modify the working directory. This may miss any changes that happen outside of TortoiseHg's control;
                                                                                                            - always: in addition to the automatic updates above, also refresh the status list whenever the user clicks on the "working dir revision" or on the "Commit icon" on the workbench task bar;
                                                                                                            - alwayslocal: same as "always" but restricts forced refreshes to local repos.
                                                                                                            Default: autoSelect when your command will be runSelected changeset pair not relatedSend &EmailSend changesets as Hg patchesSend single binary bundle, not patchesSending EmailServerServer Repository IDServersSet &Guards...Set AncestrySet Date:Set LogicSet username:Settin&gsSettingsSettings File:Several characters would be lost.Several icons are courtesy of the TortoiseSVN and Tango projectsSh&ow Repository RegistryShelfShelf clearedShelf deletedShelf: %sShellShelve - move local changes to a patchShelve ChangesShould new tabs be open next to the current tab? If False new tabs will be open after the last tab. Default: TrueShow &AuthorShow &DateShow &Patch QueueShow &PathsShow &RevisionShow About DialogShow Conso&leShow DetailShow Family LineShow FunctionShow IconShow IssuesShow Issues...Show LogShow Output LogShow Revision &DetailsShow S&hort PathsShow a full directory path of the repository in the dialog title instead of just the root directory name. Default: FalseShow allShow all version-controlled files in tree viewShow changes from first parentShow changes from second parentShow files changed by this commitShow full authorname in Logview. If not enabled, only a short part, usually name without email is shown. Default: FalseShow tabs along the side of the bottom half of each repo widget allowing one to switch task tabs without using the toolbar. Default: offShow tags at start of commit message.Show the history of the selected fileShow which function each change is in. Default: FalseShow/Hide hidden changesetsSig&n...Sign - %sSignature has been addedSingle Workbench WindowSizeSize (KB)Skip final confirmation page, close after commit.Skipping %s, unable to readSort by &NameSort by &PathSort the group by full pathSort the group by short nameSourceSource does not exist.Source:South-Eastern EuropeSouthern EuropeSpace separated list of branch names and colors of the form branch:#XXXXXX. Spaces and colons in the branch name must be escaped using a backslash (\). Likewise some other characters can be escaped in this way, e.g. \u0040 will be decoded to the @ character, and \n to a linefeed. Default: None (leave blank)Space separated list of shell operations you would like to be performed immediately, without user interaction. Commands are "add remove revert forget". Default: None (leave blank)Specify name of new shelfSpecify the path to GPG. Default: gpgSpecify the target filesystem where TortoiseHg monitors changes. Default: localonlySpecify your preferred user interface language (restart needed)StartStart a new patch branchStart revision:Start web server for this repositoryStatStatusStatus File List ToolbarStatus:StopStop current operationStoppedStrikeStrip - %sStrip:StripesStripping Mercurial header removes username and parent information. Only useful if recipient is not using Mercurial (and does not like to see the headers).StyleSub menu items:Subject:Submitting p4 changelist...Subrepo added to .hgsub fileSubrepo created and set to initial revision.Subrepo initialized to revision:Subrepo may be damaged or inaccessible.Subrepo removed from repository.Subrepo state is:Subrepo statesSubrepo was not changed.Subrepository already existsSubrepository not foundSubrepository not found in the working directory.Subrepository removed from .hgsubSubversion:SuccessSuccessors:Suggested length of commit message lines. A red vertical line will mark this length. CTRL-E will reflow the current paragraph to the specified line length. Default: 80Summary (first description line)Summary Line LengthSummary:Swap source and destinationSyncSync BookmarksSynchronizeSynchronize with dragged repositorySynchronize with remote repositorySyntax HighlightingSystem CacheTab WidthTab cannot exitTag '%s' has been addedTag '%s' has been movedTag '%s' has been removedTag - %sTag:Tagged:Tags:Take &OtherTar archive compressed using bzip2Tar archive compressed using gzipTar archivesTarget ComboTarget GroupsTarget PeopleTarget:Task TabsTask Toolbar OrderTaskbarTemporarily disable configured HTTP proxyTemporary files are removed when this dialog is closedTerminated by userTest this revision and report findings. (good/bad/skip)Text Translation FailureText files (*.txt)Textual description of the repository's purpose or contents.ThaiThe .hgsub file already contains the line:

                                                                                                            %sThe changes from revision %s and all unmerged parents will be discarded. Are you sure this is what you want to do?The command "%s" could not be executed.The command "%s" failed (code %d).The command that will be executed. To execute a python function prepend the command with "python:". The destination "%s" already exists as a file!The destination "%s" already exists as a folder!The destination must be within the repository tree.The directory "%s" is not empty! Do you want to overwrite it?The exception error message was:

                                                                                                            %s

                                                                                                            The file "%s" already exists! Do you want to overwrite it?The following error message was returned: "%s" Please check that the command path is valid and that it is a valid applicationThe following error message was returned: %sThe hook name cannot contain any spaces, tabs or '=' characters.The hook name. It cannot contain spaces.The maximum size file (in KB) that TortoiseHg will show changes for in the changelog, status, and commit windows. A value of zero implies no limit. Default: 1024 (1MB)The named bookmark or all bookmarks.The named tag or all tags.The number of revisions to read and display in the changelog viewer in a single batch. Default: 500The phase of new commits. Default: draftThe selected command is emptyThe selected folder:

                                                                                                            %s

                                                                                                            is not inside the target repository.

                                                                                                            This may be allowed but is greatly discouraged.
                                                                                                            If you want to add a non trivial subrepository mapping you must manually edit the .hgsub fileThe selected repository:

                                                                                                            %s

                                                                                                            cannot be open!The selected repository:

                                                                                                            %s

                                                                                                            is already a subrepository of:

                                                                                                            %s

                                                                                                            as: "%s"The selected subrepo:

                                                                                                            %s

                                                                                                            has been added to the .hgsub file of the repository:

                                                                                                            %s

                                                                                                            Remember that in order to finish adding the subrepo you must still commit the changes to the .hgsub file in order to confirm the addition of the subrepo.The selected subrepository has been removed from the .hgsub file.

                                                                                                            Remember that you must commit this .hgsub change in order to complete the removal of the subrepository!The selected subrepository was not found on the .hgsub file.

                                                                                                            Perhaps it has already been removed?The source must be within the repository tree.The subrepository is dirty.The tool icon. You can use any built-in TortoiseHg icon by setting this value to a valid TortoiseHg icon name (e.g. clone, add, remove, sync, thg-logo, hg-update, etc). You can also set this value to the absolute path to any icon on your file system.The tool name cannot have any spaces in it.The tool name. It cannot contain spaces.The working directory is already merged. Continue or discard existing merge.There are merge conflicts to be resolvedThere are no configured sync paths. Open the Synchronize tab to configure them.There are no conflicting file merges.There are no file changes to viewThere are no files that may have been renamedThere is already an existing folder with that same name.There is an existing %s.%s hook. Do you want to replace it?There is no rollback transaction availableThg - TortoiseHg's GUI tools for Mercurial SCM (Hg) This appears to be a binary file.This error will not be shown again until you restart the workbenchThree-way Merge ToolTitleToTo finish merging, you must commit the working directory. To cancel the merge you can update to one of the merge parent revisions.To graft destinationTo rebase destinationTo:Toggle display of text search barToggle filtering of non-matched changesetsToggle graft relations visibilityToggle parent to be used as the base revisionTolerate non-conflicting local changes (--keep-changes)Too many rows selected for menuTool &ResolveTool labelTool launch failureTool nameToolsTools shown on selected locationTooltipTop menu items:TortoiseHg Bookmark SyncTortoiseHg Bug ReportTortoiseHg Command DialogTortoiseHg CommitTortoiseHg Dialogs (version %s), Mercurial (version %s) TortoiseHg ErrorTortoiseHg New Shelf NameTortoiseHg Overlay Icon ServerTortoiseHg PromptTortoiseHg SearchTortoiseHg SettingsTortoiseHg Shelve - %sTortoiseHg Web ServerTortoiseHg WorkbenchTortoiseHg has created a new .hgignore file. Would you like to add this file to the source code control repository?Traditional ChineseTransplant:Trigger revision set queryTry refreshing your repository.TurkishTypeU&nbundle...UI LanguageURLURLError: %sUkrainianUnable to backoutUnable to compress historyUnable to create a Mercurial.ini fileUnable to create a config fileUnable to delete %d file or folderUnable to delete %d files or foldersUnable to determine pending changesetsUnable to determine working copy revision Unable to find changesetUnable to mergeUnable to merge chunksUnable to parse p4pending outputUnable to read fileUnable to read repository statusUnable to removeUnable to remove URLUnable to remove file %s, permission deniedUnable to save after commit pushUnable to save an URLUnable to save authenticationUnable to save auto include listUnable to save post pull operationUnable to save recurse in subrepos.Unable to save usernameUnable to show subrepository filesUnable to start the following command:Unable to translate input to local encoding.Unable to update repository nameUnable to write .hgignore fileUnable to write configuration fileUnable to write diff fileUnable to write fileUnapply all patchesUnapply one patchUnbundleUncheckUncheck all filesUncommited merge - please select a parent revisionUncompressed tar archiveUncompressed zip archiveUnderlineUndo close other tabsUndo close tabUndo last commit?Undo last transaction?Undo most recent commit (%d), preserving file changes?UnicodeUnified ChineseUnknown revision!Unresolved conflictsUnresolved conflicts remain. Are you sure?Unsaved changes will be lost. Do you want to reload?Unsupported repository type (%s)UnversionedUpdateUpdate - %sUpdate - pull, then try to updateUpdate IconsUpdate ReviewUpdate icons for this repositoryUpdate on incomingUpdate subrepo pathsUpdate the fields of this existing requestUpdate to:Update working directoryUpdate working directory or switch revisionsUpdate...UpdateOrRebase - pull, then try to update or rebaseUpdateOrRebase - use rebase extension (rebase is not active!)Updating repository registryUpgrading to a more recent TortoiseHg is recommended.Use English backout messageUse English commit messageUse compact viewUse current dateUse custom commit message:Use extended (git) patch formatUse git extended diff header format. Default: FalseUse my user name instead of graft committer user nameUse proxy serverUse pull protocol to copy metadataUserUser AuthenticationUser CacheUser Certificate ChainUser Certificate KeyUser authentication data should be associated with the hostname using the security dialog.User:UsernameUsername to authenticate to mail server withVerify backout revision and ensure your working directory is clean.Verify merge targets and ensure your working directory is clean.Verify with Certificate Authority certificates (best)Verify with stored host fingerprint (good)Vi&ew FileVietnameseView File atView O&therView change as unified diff outputView change history in repositoryView change history of selected filesView change in context of fileView changes to current in external diff toolView changes using GUI diff toolView file as it appeared at this revisionView file changes in external diff toolView the repository's settingsVisual DiffVisual Diff ToolVisual Diff...Visual Diffs - Visual EditorVisual diff between resolved file and first parentVisual diff between resolved file and second parentVisual diff...Visual diffs are not supported for files in subrepositories. They will not be shown.Visual three-way diffWarningWarning: affects all Tortoises, logoff required after changeWas renamed fromWeb ServerWebconfWestern EuropeWhat do you want to do? When enabled, automatically show the Output Log when the command is run. Default: False.Whether to allow pushing to the repository. If empty or not set, push is not allowed. If the special value "*", any remote user can push, including unauthenticated users. Otherwise, the remote user must have been authenticated, and the authenticated user name must be present in this list (separated by whitespace or ","). The contents of the allow_push list are examined after the deny_push list.Whether to deny pushing to the repository. If empty or not set, push is not denied. If the special value "*", all remote users are denied push. Otherwise, unauthenticated users are all denied, and any authenticated user name present in this list (separated by whitespace or ",") is also denied. The contents of the deny_push list are examined before the allow_push list.Whether to require that inbound pushes be transported over SSL to prevent password sniffing.Which template map style to useWhite&spaceWork on patch queue (--mq)WorkbenchWorkbench Log ColumnsWorkbench custom toolbarWorking CopyWorking DirectoryWorking Directory (merged)Working directoryWorking directory is not clean! View changes...Working directory statusWrap searchWrite bundleWrite diff fileWrite patch series (bundle) descriptionYou can change the icon set from TortoiseSVN's SettingsYou can visit our site hereYou cannot merge a revision with itselfYou have authentication info configured for this host and inside this URL. Remove authentication info from this URL?You have multiple renames selected for destination file: %s. Aborting!You likely need to refresh this applicationYou may continue or start the graftYou may continue the compressYou may continue the graftYou may continue the rebaseYou must enter a patch nameYou must identify yourself to MercurialYou must provide revisions to graftYou must provide source and dest argumentsYou must provide the path to a fileYou must set a command to run.You must set a tool name.You must set a valid hook type.Your TortoiseHg is up to date.Your current working revision (%d) will be removed by this rollback, leaving uncommitted changes. Continue?Zip archive compressed using deflateZip archives[--after PATCH] PATCH...[Code: %d][WARNING] Incomplete changed subrepository. Update to this revision to pull it.[WARNING] Incomplete subrepo. Update to this revision to pull it.[WARNING] Invalid subrepo revision ID: %s [WARNING] Missing changed subrepository. Update to this revision to clone it.[WARNING] Missing subrepo. Update to this revision to clone it.[command completed successfully %s][command interrupted %s][command returned code %d %%s][command terminated by user %s][non-existant][original][working copy]a revision to posta revision to sendabort: abort: %s abort: %s! action buttonCommitadd diffstat output to messagesaddedalways fork GUI processattachbasic commands: bodybookmark: branch: bundle file to previewcan not read file "%s". Ignored. cannot move applied patchescannot move into applied patchescannot specify both -k/--query and filenameschangeset %d:%schangeset to view in diff toolchangeset: %schangeset: %s (not found on subrepository)cleanclone only the specified branchcolumn headerAgecolumn headerAuthorcolumn headerBranchcolumn headerChangescolumn headerConverted Fromcolumn headerDescriptioncolumn headerFilenamecolumn headerGraphcolumn headerLatest tagscolumn headerLocal Timecolumn headerNodecolumn headerPhasecolumn headerRevcolumn headerTagscolumn headerUTC Timecommand parse error: %sconfig itemCommitcorrupted command result: %rdefaultdiffstatdiscard uncommitted changes (no backup)display help and exitdo not back up stripped revisionsdo not fork GUI processdo not modify working copy during stripenable additional outputenable debugging outputeol is incompatible with win32texterror while running command exec mode has been setexec mode has been unsetfailed to encode command: %sfailed to encode input: %sfailed to fork GUI process: %s failed to start command field to give initial focusfile has been deleted, refreshfile has been modified, refreshfilesfilesAllfilesNonefilling (%d)filterglobal options:grep: %s grep: invalid match pattern: %s hgsubversion is incompatible with perfarcehint:hint: historyignore case during searchignoredimport to the patch queue (MQ)in the futureinclude the specified changesetinitial search patterninlineinotify is not supported on this platforminvalid "hello" message: %rinvalid argumentsinvalid line number: %sinvalid patch position specifiedkeep original branch nameskeep original changesetslaunch visual diff toollist of commands: locallsprof not available - install from http://codespeak.net/svn/user/arigo/hack/misc/lsprof/make the signature localmake the tag localmerge with old dirstate parent after backoutmethodmissingmodifiedmove after the specified patchmust be specified 'type' in stylemust be specified repositoryname of the hgweb config file (DEPRECATED)name of the hgweb config file (serve more than one repository)needs merge of %i heads needs merge with %s needs merge with %s (through %s) needs update of diff base to tip of %s no "runcommand" capabilityno command specifiedno commands defined no guardsno matches found: %sno outgoing changesetsno repo at no revisions specifiednotify the shell for paths givennownull revision (i.e. remove file(s))only one new bookmark name allowedopen a new workbench windowopen the bookmark sync windowopen to lineopen...option --config may not be abbreviated!options: parent to choose when backing out mergepassword: patch %s not in seriesperfarce is incompatible with hgsubversionprint command execution profileprint licenseprocess exited unexpectedly with code %dpull: %s push: %sread file list from fileread file list from file encoding utf-8rebase from the specified changesetrebase onto the specified changesetrecord datecode as commit daterecord user as committerremove a tagremove the status cacheremove working directoryremovedreplace existing tagrepository %s not foundrepository root directory or symbolic path namerequires a single filenamerev: %d (%s)revisionrevision %d's first parent (i.e. revision %d)revision %d's second parent (i.e. revision %d)revision to annotaterevision to archiverevision to backoutrevision to displayrevision to mergerevision to striprevision to tagrevision to updaterevision, tag or branch to check outrevisions %d:%s to %d:%srevisions to graftrevisions to prunerevisions to view in diff toolsearch for a given text or revsetselect the specified revisionselected filessend patches as attachmentssend patches as inline attachmentssend patches as part of the email bodyset/override config option (use 'section.name=value')show files without changesshow ignored filesshow the contents of the status cache (no update)start debuggerstart progressCommitstart progressMQ Actionstart progressRollbackstatussubreposuppress outputsync command already runningtab tooltipCommittab tooltipConsole logtab tooltipPatch Branchtab tooltipRevision detailstab tooltipSearchtab tooltipSynchronizethe clone will include an empty working copy (only a repository)the key id to sign withthe revision to showthg %s: %s thg aboutthg add [FILE]...thg annotatethg archivethg backout [OPTION]... [[-r] REV]thg bisectthg bookmarks [-r REV] [NAME]thg clone [OPTION]... [SOURCE] [DEST]thg commit [OPTIONS] [FILE]...thg debugblockmatcherthg debugbugreport [TEXT]thg debugconsolethg debuglighthgthg debugruncommand -- COMMAND [ARGUMENT]...thg drag_copy SOURCE... DESTthg drag_move SOURCE... DESTthg email [REVS]thg filelog [OPTION]... FILEthg forget [FILE]...thg graft [-r] REV...thg grepthg guessthg help [COMMAND]thg hgignore [FILE]thg import [OPTION] [SOURCE]...thg init [DEST]thg log [OPTIONS] [FILE]thg manifest [-r REV] [FILE]thg merge [[-r] REV]thg postreview [-r] REV...thg prune [-r] REV...thg purgethg rebase -s REV -d REV [--keep]thg rejects [FILE]thg remove [FILE]...thg rename [SOURCE] [DEST]thg repoconfigthg resolvethg revdetails [-r REV]thg revert [FILE]...thg rupdate [[-r] REV]thg serve [--web-conf FILE]thg shellconfigthg shelvethg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]thg status [OPTIONS] [FILE]thg strip [-k] [-f] [-n] [[-r] REV]thg sync [OPTION]... [PEER]thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]thg thgstatus [OPTION]thg update [-C] [[-r] REV]thg userconfigthg version [OPTION]thg: %s thg: command '%s' is ambiguous: %s thg: unknown command '%s' timed out waiting for messagetimed out while reading: %r...unexpected response on required channel %runknownunknown patch to move specifiedunknown revision!unrecognized profiling format '%s' - Ignored unrecognized response: %sunsupported URL: %supdate all repos in current diruse "thg -v help %s" to show global optionsuse "thg -v help%s" to show aliases and global optionsuse "thg help" for the full list of commandsuse "thg help" for the full list of commands or "thg -v" for detailsuse as commit messageuse only one form to specify the revisionuse pull protocol to copy metadatause uncompressed transfer (fast over LAN)version %swait until the second ticks overwill be closedwin32ill: cannot create window for messageswin32ill: interrupted while stopping message loop win32ill: unsupported platform: %s win32text is incompatible with eolwindow titleCommitwith Mercurial-%s, Python-%s, PyQt-%s, Qt-%sworking changesworking dir stateCleanwrap mode&NoneProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2015-09-03 18:15+0000 Last-Translator: yfdyh000 Language-Team: Simplified Chinese MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; X-Launchpad-Export-Date: 2019-07-17 05:46+0000 X-Generator: Launchpad (build 19009) Language: zh_CN 请检查 "thg" 命令是否有效。 捕获键盘中断, 程序中止. 别名:%s (缺省: %s) (复制自 %s) (是符号链接) (未跟踪) (原名 %s) (已添加) (已添加,但丢失) (已被删除) 已过滤“%s” 不是一个文件夹“%s”不是有效的目录从路径历史中删除 "%s"从搜索历史中删除 "%s"### 过滤文本 ###### 主机证书指纹 ###### 补丁名称 ###### 正则表达式 ######正则表达式搜索模式###### 修订版本集查询 ###utf-8,gbk%匹配%d天前有%d个需要合并冲突的文件要解决%d个文件在两个分支中均被修改,您需要解决合并冲突%d小时前找到%d个匹配%d分钟前%d月前%d 个可推送的修订集%d 个可推送到 %s 的修订集%d 补丁导出到:

                                                                                                            %s找到 %d 挂起的修订列表%d秒前%d周前%d年前%d%%%dpt%p%%s (提示: %s)%s (挂起)%s (已提交)%s - 修订细节 (%s)%s - TortoiseHg 工作台%s - TortoiseHg 工作台 - %s%s - 分支操作%s - 提交%s - 提交选项%s - hg %s%s - 清理工作目录%s - 恢复仓库%s - 状态%s - 状态(选择已过滤)%s - 同步选项%s - 验证仓库%s : %s%s <可拉取>%s 已存在,替换 URL?%s 和 %s 有相同的内容 %s 证书错误:没有接收到证书%s 有已退回(rejected)的块,连同“退回”一起编辑补丁文件?%s 是一个存在问题的子仓库%s 已被添加%s 已被非 hg 命令删除但处于跟踪状态%s 被忽略%s 已修改%s 不是有效的仓库%s 未修改%s 未被跟踪(未知文件)%s 已移除%s 补丁%s 项目设置 (.hg/projrc)%s 仓库设置%s 将被导入到 %s 的全局设置关于 TortoiseHg (&A)添加(&A)添加仓库(&A)在缩进后面(A)存档(&A)存档(&A)...&自动自动检测(&A)自动完成(&A)回退(&B)...二分检测(&B)...分支(&B)浏览(&B)...绑扎修订及后代(&B)...取消(&C)字符(&C)清除(&C)克隆(&C)关闭(&C)关闭仓库提交(&C)提交到队列(&C)...提交到当前分支(&C)复制(&C)复制路径(&C)复制(&C)...创建(&C)自定义工具栏(&C)删除(&D)删除补丁(&D)...删除队列(&D)...删除无版本控制(&D)...其他与祖先比较差异(&D)与选中的文件版本比较差异(&D)与其他比较差异(&D)比较与父的差异(&D)丢弃(&D)丢弃(&D) (--force)放弃更改(&D)编辑文件(&E)编辑本地(&E)编辑工具栏(&E)编辑(&E)...编辑器选项(&E)邮寄补丁(&E)...退出(&E)否(&F)文件(&F)过滤工具栏(&F)完成补丁(&F)平面列表(&F)强制(&F)移除(&F)转到(&G) (更新工作目录)转到修订版本(&G)...嫁接到本地(&G)...帮助(&H)忽略(&I)...导入(&I)导入补丁(&I)...传入(&I)不可见(&I)保持(&K) (--keep)许可协议(&L)本地(&L)&Mac标记秘密(&M)标记排除的变更(&M)标记已解决(&M)标记未解决(&M)标为已解决(&M)匹配(&M)合并(&M)与本地合并(&M)合并(&M)...更多选项(&M)...移动(&M)新建仓库...否(&N)否(丢弃改动) (&N)打开(&O)全部打开(&O)打开本地(&O)打开仓库...原版本(&O)其他(&O)传出(O)父版本(&P)父版本 (%d) (&P)粘贴(&P)补丁分支(&P)修剪(&P)修剪选中(&P)...修剪(&P)...拉取(&P)刷新队列(&P)...清除(&P)...推送书签(&P)读我(&R)变基(&R)...重试(&R)刷新(&R)刷新仓库列表(&R)远程更新(&R)...移除(&R)移除书签(&R)移除(&R)...更名活跃队列(&R)...替换(&R)仓库(&R)调整列尺寸(&R)解决(&R)...还原(&R)恢复到修订版本(&R)...用备份还原(&R)还原(&R)...运行(&R)保存(&S)保存修订版本(&S)...启动时扫描仓库(&S)搜索(&S)搜索当前文件(&S)设置(&S)...设置(&S)剥离改动(&S)剥离(&S)...签名(&S)跳过此修订(&S)排序(&S)依照 .hgsub 排序(&S)空格(&S)剥离(&S)剥离(&S)...同步书签(&S)...&TAB&TAB 插入标签(&T)...采用本地(&T)任务工具栏(&T)终端(&T)是(&T)未应用的补丁(&U)撤销(&U)&Unix未指定(&U)更新(&U)更新(&U)...验证(&V)查看(&V)查看变更集(&V)查看缺失(&V)查看修订版本(&V)可见(&V)&Web 服务器&Windows字词(&W)工作台工具栏(&W)精准(&W)是(&Y)'正在发布' 仓库(%s) (已弃用)(排除于下次提交)(是已修改并且脏的子仓库)(是已修改的子仓库)(是脏的子仓库)(是新的并且脏的子仓库)(是新的子仓库)(是已移除的子仓库)(是未修改的子仓库)(无帮助文本可用)(和父版本一致)*: 未被 TortoiseHg 使用, 合并冲突已解决, 合并冲突未解决可视化三路合并(&W)三路目录比较加载设置工具...%d 个变更集将被剥离溯源:候选匹配源文件与目标文件的差异主机: %s忽略过滤器解析出错!仓库详情:还原 %d 个文件到其下列版本的内容?还原 %s 到其下列版本的内容?选中的选项:选中选项: %s检测到未提交的本地修改未知修订版本!未修订的文件未跟踪文件Web 服务器:<默认图标><默认><未指定>= 工作目录的上层目录 =书签 "%s" 已经存在TortoiseHg有一个新版本(%s)可以下载!不能添加自己为子仓库一个修订标识符、书签、标签或者分支名称已存在该名称的搁置文件搁置名称不能包含 %s终端外壳不能打开远程操作必须配置终端外壳添加子仓库(&D)作者(&U)中止中止导出操作。 已中止 p4pending关于关于 &Qt关于 TortoiseHg接受接受所有匹配接受选中匹配使用本地版本修订中的文件使用并入修订版本中的文件激活书签激活书签?激活:添加添加大文件(&L)添加大文件(&L)添加文件(开始跟踪)...添加服务器路径向分组中添加仓库作为大文件添加(&L)作为普通文件添加(&N)添加文件到版本控制添加忽略名单...添加或移除的补丁必须已在工作目录中合并开始跟踪这些文件?添加分隔线加入列表已添加添加标签 %s 到修订集 %s拉取操作后年龄:别名所有历史所有变更集,等同 0:tip。所有冲突文件都将被标记为未解决。所有冲突文件都已被解决。所有上下文所有文件 (*.*)所有项目所有修订所有未保存的更改将会丢失。允许推送允许推送新分支 (--new-branch)允许推送新分支 (--new-branch)总是合并(如果可以)总是显示仓库标签,即使只有一个仓库。默认: 否修正修正当前版本读取文件时出错。更新仓库的 hgrc 文件 (%s) 时发生错误写入文件时出错载入下列位置的子仓库时发生异常:

                                                                                                            "%s"

                                                                                                            发现了一个中断的嫁接操作。 您无法执行另一次嫁接操作,除非您先放弃中断的嫁接操作。溯源文件(&F)溯源选项(&T)溯源修订编号应用格式(&L)追加已应用嫁接到日志消息最佳修改到已存在的补丁。 已应用的补丁已应用的补丁或 qparent应用所有补丁退出前应用更改?应用一个补丁仅应用此补丁应用到原始父应用补丁阿拉伯语存档 - %s文档格式文档类型:您确定要取消提交操作?您确认要删除这些文件和文件夹吗?您确定要覆盖它吗?您确定要重新加载这个文件吗?您确定吗?询问用户名尝试自动(小的)合并每次成功提交后自动尝试推送到指定的URL或别名。默认: 不推送作者按作者区分颜色自动提交列表自动排除列表自动包含:自动解决合并冲突回退和合并完成后自动前进到下一个页面。合并完成时自动前进到下一页尽量自动解决合并的冲突后退回退的修订集: 回退父版本是一个单步操作回退并提交...回退中,然后合并...回退 - %s回退修订集拆除当前补丁分支回退需要有父版本回退修订版本嫁接一个变更集的部分到一个依赖使用退格或 Del 删除行修改文件的备份副本可在 .hg/Trashcan/ 找到逆向阶段变更已请求有问题的文件名波罗的语密送回退前,你必须提交shelve补丁,或者丢弃修改。在合并前,您必须提交,将修订剥离为补丁,或 放弃所做更改。二分检测 - %s二分 - Bad, Good...二分 - Good, Bad...粗体书签(&K)...书签 '%s' 不存在书签 "%s" 已添加书签“%s”已被移动书签 "%s" 已移除书签已 '%s' 重命名为 '%s'书签 - %s名为“%s”的书签不存在书签分支分支颜色分支:分支: 浏览修订(&W)浏览目录...浏览...打包 DAG 范围...打包文件 (*.hg)打包会把修订集的所有信息保存成二进制格式供上游用户使用, 这是把改动发给Mercurial用户的最安全的做法.不使用代理列表bzip2 压缩过的 tar 文档集选择日志栏(&H)...配置格式(&O)命令行编辑器没有ini解释器不能修改设置 - 视图是只读的。不能找到修订版本 '%s'取消无法添加子仓库不能在不同的分支回退修改无法导出修订版本无法导出修订版本 %s 到文件: %s 无法导入选中修订版本无法打开插件选项对话框无法打开非 Mercurial 仓库或者子仓库无法打开仓库无法打开下列位置的 .hgsub 文件

                                                                                                            %s无法读取 .hgsub 文件。

                                                                                                            子仓库移除失败。无法开始新的搜索无法更新下列位置的 .hgsub 文件:

                                                                                                            %s无法更新 .hgsub 文件。

                                                                                                            子仓库移除失败。抄送抄送:凯尔特语中欧和东欧证书查询出错更改阶段到(&P)变更日志字体此提交改变了(&T)修改将被移除,你必须现在提交修改会在下次提交时生效变更集链接修订集是合并改动。修订集是命名分支的头。修订集已关闭。修订集已被打上标签了。修订集:修订集包含文件匹配模式的变更集。变更集在指定的目标仓库或者默认的推送位置未找到。用户名包含字符串的变更集。添加文件匹配模式的变更集。修改文件匹配模式的变更集。移除文件匹配模式的变更集。仓库中文件的字符编码,供网页界面和 TortoiseHg 使用。选中检查子仓库阶段全选检查传入变更检查传入变更自 %s检查可从指定URL拉取的更改已选择文件数: %d正在检查正在检查更新...正在检查工作目录状态正在检查...选择要添加(开始跟踪)的文件选择要移除(停止跟踪)的文件选择要删除的文件选择要还原的文件子版本:部分选择: %d / %d清除日志(&R)可以合并清除清除当前的搁置文件 %s 吗?清除当前查询及查询文字清除当前的搁置文件点击OK继续,或者点击About退出。克隆仓库(&E)...克隆(&E)克隆 - %s克隆仓库克隆指定版本:克隆...关闭关闭 %s 分支提交后关闭关闭分支: 关闭当前分支关闭其他标签页关闭标签页每次成功提交后关闭提交工具. 默认: 否关闭比较文件修订(&M)折叠已变基的变更集 (--collapse)变更集根据作者名不同改变颜色。默认:否允许下载的文档格式列表, 以逗号隔开列出仓库分支名时需要忽略的分支名称,用逗号隔开。默认: 无 (留空)逗号分隔的排除文件模式列表。排除模式将在包含模式之后应用。每次提交时都会自动选择的文件列表,用逗号隔开。建议仅在仓库设置中使用。默认: 无 (留空)当“文件状态”和“提交”对话框显示时不自动选择的文件列表,用逗号隔开。默认: 无 (留空)逗号分隔的包含文件模式列表。默认情况下,对整个仓库搜索项目。逗号分隔的密送收件人邮件地址列表逗号分隔的抄送收件人邮件地址列表逗号分隔的收件人邮件地址列表命令命令错误命令输出SSH 连接使用的命令。

                                                                                                            默认:"ssh" 或者 "TortoisePlink.exe -ssh -2" (Windows)提交提交对话工具栏以后提交现在提交提交选项提交回退并合并提交修改提交仓库中的更改提交上下文菜单提交合并结果提交说明提交...正在提交...常见集比较选中的文件的修订版本比较第一阶段(&1)比较第二阶段(&2)要从Patch中完全移除文件吗?压缩压缩 - %s压缩历史记录...压缩变更集直至包括压缩已完成,旧的历史未改变配置文件:配置文件 (*.conf *.config *.ini)配置错误: "%(arg0)s",
                                                                                                            修正 您的配置配置自定义工具配置资源管理器扩展配置钩子配置问题跟踪器配置警卫为选定补丁配置警卫配置仓库设置配置选定的 COM Bug Tracker 插件。配置用户范围内的设置配置一个 COM IBugTraqProvider 或者 IBugTraqProvider2 问题跟踪插件。确认添加验证分支修改确认删除确认删除无版本控制的文件确认丢弃确认放弃修改确认丢弃改动说明确认退出确认新分支确认覆盖确认推送确认推送到远程仓库确认重新载入确认删除确认还原确认保存确认截去确认URL替换验证撤销确认更新确认添加未知文件确认删除文件确认文件删除确认切换补丁队列确认删除路径正在连接审核面板...首先考虑放弃嫁接。首先考虑中止变基。控制台联系方式右键菜单继续或放弃中断的嫁接操作吗?将已存在的仓库转换为子仓库转换自:复制复制哈希(&H)复制路径(&P)复制 - %s复制出错复制选定为补丁复制所有文件路径复制提交说明复制最近使用过的一个提交说明复制源 -> 目标将仓库的根目录路径复制到剪贴板复制选定的工作目录文件无法获得子仓库列表不能实例化问题跟踪器插件的 COM 对象无法打开 .hgsub 文件无法打开部分子仓库无法读取,因为无法打开指定文件。无法写入,因为无法打开指定文件。无法从本地编码转换文件内容。无法转换文件内容到本地编码。无法更新 .hgsub 文件创建创建分支(&B)创建新队列(&N)...创建补丁队列在这里创建仓库创建一个新的分组创建新的补丁创建新仓库从指定源克隆并创建本地仓库创建所有在此分支的变更差异创建所有传出变更差异是否要在本次提交创建新的分支“%s”? 剪切(&T)找到元凶。当前本地版本自定义工具栏设置(&S)自定义工具西里尔字母日期日期:检测重命名(&T)...关闭当前书签?死亡分支默认推送默认标签页定义匹配问题编号的正则表达式。删除删除 .hg/Trashcan 中的 %d 个文件删除 %d 个已忽略文件删除 %d 个未知文件是否要从仓库配置文件中删除 %s ?删除分组“%s”及其所有条目?删除补丁队列删除补丁删除工具删除空的文件夹从列表中删除删除钩子删除补丁...删除引用到删除选定的块从 shelf 文件 %s 删除选定块?从工作副本删除选定块?删除选定补丁从历史中删除选定的查询删除搁置文件 %s?删除当前的搁置文件删除下列无版本控制的文件?已删除 %d 个文件已删除 %d 个文件和 %d 个文件夹删除*正在清空垃圾箱...删除失败禁止推送描述目标目标文件已存在。目标路径:目标:在 %s 检测复制和重命名操作检测传出的变更检测传出变更至 %s检查可推送到指定URL的更改检测重命名和复制操作检测 合并/差异 工具:检测到未提交的本地更改。 请选择一个选项: 检测到未提交的本地更改。正在确定传出到电子邮件的变更集...比较变更集与父的差异(&C)与本地比较差异(&L)本地与祖先比较差异(&L)比较变更集与本地的差异(&A)比较文件差异与差异字体与选中的变更集比较差异(&C)差异工具栏差异和溯源比较内容差异差异未显示: 比较与本地的差异(&L)比较与父差异目录比较 p1目录比较 p2目录比较文件所在目录丢弃 - 丢弃本地改动, 无备份要丢弃当前的回退说明吗?要丢弃当前的提交说明吗?放弃本地更改 (revert --all)放弃本地改动,无备份 (-C/--clean)废弃本地改动, 无备份(-f/--force)丢弃工作目录未提交的修改?放弃远程修订,不备份 (-C/--clean)显示已关闭的分支只显示有名称的分支的图表只显示活跃的分支坚持显示文件显示 %(count)d of %(total)d 项拖放同步不要在比较头里包含修改日期. 默认: 否不保存备份文件 (*.orig)不在无版本控制的文件夹显示菜单项 (Shift+右键时显示)不更新当前新的工作目录不验证主机证书您确定要强制执行反向阶段过渡?您确定要激活补丁队列“%s”吗?您确定要将此修订变为秘密?您确定要移除仓库“%s”吗,从父仓库“%s”中。确定要退出?您想保留还是抛弃它们?拖动以更改顺序重复的名称编码(&N)退出(&E)资源浏览器(&X)导出文件夹(&X)浏览本地(&X)浏览帮助(&X)导出(&X)导出补丁(&X)...EOL 模式(&M)EOL 可视化(&V)编辑编辑文件编辑文件过滤名单编辑本地版本编辑服务器路径编辑拒绝(&j)编辑工具...编辑在工作目录中的当前文件编辑文件编辑钩子编辑补丁依赖图编辑补丁的文件并拒绝?编辑仓库的文件过滤名单编辑已解决的文件编辑器启动失败邮件服务器邮寄 DAG 范围...邮寄选中的...邮件地址,用于邮件中的发件人和SMTP信封将修订集作为电子邮件发送到远程仓库输出调试信息 (--debug)启用层叠句柄启用图标层叠编码英文信息请输入行号 (1 - %d)输入修订标识符出错有错误发生。执行 "commit finished" 触发器出错从问题跟踪器插件获取提交信息时出错载入子仓库错误预览子仓库时出错: %s错误的字符串 "%(arg0)s" 位于 %(arg1)s
                                                                                                            编辑 您的配置写文件时发生错误排除排除:执行自定义工具 '%s'退出不解决冲突就退出?不推荐退出一次未完成的嫁接。尚有一个未完成的变基,不推荐退出。资源管理器扩展设置文件资源管理器扩展设置 - TortoiseHg导出 DAG 范围...导出差异...导出选定...导出补丁扩展名扩展添加仓库失败添加子仓库失败执行自定义的 TortoiseHg 命令失败执行自定义命令失败加载问题追踪器失败 '%s': %s加载问题追踪器失败: '%s': %s. 在终端打开路径失败无法打开仓库刷新失败失败!获取 - 使用 fetch (自动合并拉取的变更)获取 - 使用 fetch 扩展 (fetch 不激活!)字段匹配:文件文件历史(&H) / 溯源文件差异记录列文件历史文件历史记录栏文件列表工具栏文件状态文件状态:文件已存在需要解决的文件冲突文件上下文菜单(在清单和修订细节)文件是二进制的文件大于文件大小限制。 差距 = %s KB文件可能是二进制文件(超出最大行长度)文件或差异未显示: 文件或差异不能显示:文件超出指定的最大大小。 maxdiff = %s KB文件模式集文件名文件列表历史过滤器(&Y)过滤根据(&Y)在修订历史图上过滤修订集或分支过滤器:查找重命名查找复制重命名源查找匹配项 - %s查找修订字段匹配:正在查找可推送到 %s 的修订集...完成指定版本标志:折叠补丁...跟踪复制和重命名操作显示变更日志日期的字体。默认:monospace 10用于显示提交说明的字体。默认: monospace 10用于显示输出信息的字体。默认: sans 8显示差异文本的字体。默认:monospace 10字体强制显示仓库标签强制合并 (-f/--force)强制推送或弹出 (--force)强行推送或拉取 (忽略安全检查,--force)强制推送到远程位置 (-f/--force)强行删除已修改的文件 (--force)移除移除文件(停止跟踪)...图形界面进程前进发现 %d 个进入变更集发现可从 %s 拉取的修订集发件人发件人:完整作者名称显示完整路径用户相关的 GPG 密钥 ID 。默认:无(留空)生成英文提交说明,即使环境变量 LANGUAGE 或 LANG 设置为非英语语言。此设置应用到 合并,标签和回退 对话框。默认: 否正在检查可从 %s 拉取的修订集...Git 格式git补丁允许包含二进制文件, 并且能够记录文件拷贝和权限修订等信息, 但接收者不使用git或Mercurial的话, 可能无法使用git补丁.Glob全局设置GnuPG转至跳转到行转到指定的修订版本转到当前修订版本转到 %s 和 %s 的祖先转到共同的祖先转到修订版本嫁接嫁接 - %s嫁接选定到本地...嫁接已放弃嫁接变更集嫁接变更集 #%d / %d嫁接失败嫁接产生了合并冲突,这必须被解决嫁接完成嫁接:图表两个变更集的最大的共同祖先。希腊语警卫:%d/%d猜测重命名gzip 压缩过的 tar 文档集HTTP错误: %d (%s)分支头已关闭!希伯来语Hg 命令:Hg文件日志查看器 [%s] - %sHg 补丁(通过输出命令产生)与大多数补丁程序相兼容。它们包含了一个包含最重要的修订集元数据的数据头。隐藏细节隐藏标签在仓库外隐藏右键菜单高亮显示图标钩子类型钩子主机代理服务器主机名和(可选)端口, 例如:"myproxy:8000"邮件服务器主机名发件人用来向邮件服务器标识自己的主机名多行输出时斑马条纹每个条纹所间隔的行数. 默认是1, 为0则禁用斑马条纹.图标图标如果没有指定用户名,将提示输入一个用户名。默认:否如果指定,目录中的文件将被复制到新创建的仓库,例如 .hgignore 文件。如果该问题还存在,请提交一个bug报告.忽略 忽略空行忽略空格数量变化忽略空格忽略大小写差异视图中忽略等同空格的变更。默认:否溯源视图中忽略等同空格的变更。默认:否忽略差异查看器中整行完全为空的行。默认:否溯源视图中忽略整行为空。默认:否忽略名单 - %s差异视图中比较行时忽略空格。默认:否溯源视图中比较行时忽略空格。默认:否忽略*无提示操作导入 - %s从剪贴板导入导入到 &MQ在当前版本(&C)在原来版本(&O)在所有历史(&H)在当前文件中(&F)回复给:包括包括所有上代导入补丁队列包括:传入书签检查可从 %s 拉取操作失败,返回值 %d需要安裝ini解释器。iniparse软件包未找到初始版本内嵌标签请为 %s 输入新的警卫:没有足够的访问权限,恢复到只读模式。访问权限不足。中断发现中断的嫁接操作无效的设置 - Please provide your ReviewBoard username无效的设置 - The ReviewBoard server is not setup无效命令无效配置: %s日期格式无效无效的默认推送修订:%s。请检查您的 Mercurial 配置 (tortoisehg.defaultpush)无效的通配符表达式无效的正则表达式无效的 reviewboard 插件。请下载 Mercurial reviewboard 插件 3.5 或更高版本,从下述网站。 %s问题链接问题筛选正则表达式问题追踪器问题追踪器插件问题跟踪插件错误问题跟踪触发器问题跟踪无法全部打开下列位置中仓库的子仓库列表:

                                                                                                            %s

                                                                                                            下列子仓库可能已丢失、损坏或处于不能访问的状态:

                                                                                                            %s无法获取下列位置中仓库的子仓库列表:

                                                                                                            %s斜体日语保留原分支名 (--keepbranches)保留原变更集 (--keep)保留补丁文件密钥ID键值:关键词搜索已知有bug版:已知无bug版:韩语大文件左侧工具栏许可协议类似 "keyword(string)" 但接受正则表达式。行列表选项(&N)所有工具的列表列出更新的文件 (--verbose)载入所有修订版本(&A)载入所有修订版本到修订历史图中正在载入仓库 %s本机主机名本地路径本地路径:本地仓库 %s仅本地磁盘本地修订版本信息本地签名本地标签路径:锁定*日志日志批次大小长摘要MMQ 选项(&O)MQ Git格式推送全部推送MQ 选项清单模式(&N)将MQ补丁设为 secret (而不是 draft). 默认: 否创建和 Mercurial 1.7 以前的版本兼容的仓库管理HTTPS连接安全性设置及用户认证信息强制性问题参考手动解决有问题的部分?手动解决被拒绝的补丁块标记为未解决(&U)标记此块已解决,转至下一个未解决标记此块未解决将这个文件标记为已解决将这个文件标记为已解决匹配文字匹配任何%d修订最多改动数最大差分大小最大文件数变更日志上列出的变更最大数量。默认:10每个变更集列出的文件最大数量。默认:10菜单行为Mercurial 解决(&S)Mercurial 用户Mercurial 命令正在执行。 是否终止?Mercurial 无法找到编辑器。请配置 Mercurial 使用您系统中已安装的编辑器。合并合并 - %s合并 - 允许与本地版本合并合并所有待定依赖合并导致文件冲突合并修改集合并自 (要并入的修订版本)合并拒绝的补丁块到 %s合并修订未指定或未找到合并到 (工作目录)使用选中合并工具合并与 %s 合并正在合并...信息提交说明字体说明翻译失败指定邮件内容ID, 相同ID的邮件隶属于同一个主题连接到邮件服务器时的启用 TLS 的方法。默认:无最小相似度: %d%%最小大小缺少信息修改历史(&F)监视仓库变更监视工作目录变更移动在工作目录与补丁间移动变更移动标签 %s 到修订集 %s (从修订集 %s)已选择多个来源名称提交使用的用户名。常见格式:
                                                                                                            全名 <email@example.com>仓库负责人的名字或邮件地址.分支“%s”已存在,最后一次在版本%d中使用 新建组(&G)新建工作台(&W)新建分支: 新建提交阶段新建分组新名称:新建补丁分支新建仓库骨架新建仓库新建搁置新建工具...新文件已创建新建钩子新补丁说明:新的补丁队列名称新的搁置已创建下一个下一个差异下一个差异无日期无合适文件无备份(-n/--nobackup)不变更分支无剩余部分无提交不可删除的部分没有比较工具未发现编辑器无改动没有选择文件无可进行当前操作的文件无文件被选中没有可查找的文件未指定主机不验证主机,仍然加密(不安全)未发现忽略的文件没有可从 %s 拉取的修订集提交信息中没有问题链接。提交信息中应该有一个问题链接。在设置的“问题跟踪”部分配置此项。不显示任何项没有匹配的结果没有合并冲突,可以提交没有合并冲突,准备提交或者审核没有已修改的文件被选中无可执行的操作没有可推送的修订集没有可推送到 %s 的修订集没有选择补丁分支未设置远程仓库URL未发现仓库无壳配置没有可用的事务未发现废件文件未发现未知文件没有设置用户名尚未为本仓库配置默认(default)远程仓库URL.

                                                                                                            请在同步标签页中添加远程仓库地址。没有检测到可视化比较工具未设置GUI编辑器无操作 - 只拉取所有修订集北欧不是 Mercurial 子仓库,无法预览不是Head版本!不是head版本,回退操作将会创建新的head版本!没有提交没有更改。没什么可导入的没什么可推送的确定过时状态:在 repowidget上显示您要推送的修订集中包含新创建的分支。您要在远程仓库建立新的分支吗?仅考虑删除的文件仅修订版本中被修改/创建的文件目标打开打开终端(&T)打开子仓库(&U)创建并命名新的分支在仓库根目录下打开终端外壳在选定文件夹中打开一个 shell 终端打开高级查询编辑器在新的标签页打开所有仓库打开 hgweb 配置在当前标签后面 打开新的标签在系统的文件管理器中打开当前文件的父文件夹打开shelve工具在文件浏览器打开仓库在新的标签页打开仓库在系统的文件管理器中打开选定文件夹打开选中的子仓库操作终止:

                                                                                                            %(arg0)s.可选. 不使用代理连接的主机列表, 以逗号分隔可选的. 发送邮件消息的方法. 如果值为"smtp"(默认), 使用SMTP(在下面配置). 否则, 使用一个有类似于sendmail功能的程序的名称(在命令行中使用"-f"来指定发件人及收件人列表, 在stdin中指定消息内容). 一般地, 将此项设为"sendmail"或"/usr/sbin/sendmail"就可以用sendmail来发送消息.可选。PEM 编码的客户证书链文件。文件名中的 环境变量将被展开。可选。PEM 编码的客户证书密钥文件。文件名中的 环境变量将被展开。可选. 代理服务器授权的密码可选. 代理服务器授权的用户名选项选项:或使用:按 .hgsub 为子仓库排序原始父:并入修订版本信息传出书签检查可推送到 %s 操作失败,返回值 %d输出字体图标层叠拉取书签(&U)推送(&U)PEM 文件 (*.pem *.crt *.cer)PEM 文件 (*.pem *.key)父版本 1:父版本 2:父版本:父版本密码邮件服务器验证用的密码密码:粘贴文件名(&F)补丁分支工具栏补丁中的换行补丁文件 (*.patch)补丁名称必需补丁队列补丁队列操作工具栏补丁日期:导出补丁成功打补丁失败补丁文件 (*.diff *.patch)补丁文件已存在补丁折叠(fold) - %s补丁说明:补丁名称:补丁序列描述会被包含在主题为[PATCH 0 of N]的初始摘要邮件中, 该描述信息应该说明整个补丁序列的作用. 当以打包方式邮寄补丁时, 这些字段构成邮件的主题和正文.Flags是一个逗号分隔的列表, 其中包含的标签会作为前缀插入到邮件主题中.补丁用户:补丁:补丁: %s导出补丁成功要折叠(fold)的补丁路径编辑路径工具栏路径:仓库设置中的路径:模式待定的必须变更列表 - %sPerforce:更新前执行一次推送 (-p/--push)阶段普通,不考虑 Hg 数据头请设置一个GUI编辑器.请先启用 Gpg 扩展。请输入一个用户名请输入提交说明请将本bug上报到我们的bug记录器请设置有效的 URL 以继续。请稍等,正在提交合并的文件...正在回退,请稍等...请稍等直到文件被打开...请稍候...弹出全部弹出端口邮件服务器连接端口. 默认: 25侦听用的端口端口:发布审核(&R)拉取完成后的行为拉取完成后: 发布审核发布选中项到审核面板...发布到审核面板(&V)...准备回退准备合并保留以 .hg 开头的文件上一个预览预览:上一个差异上一个差异此前该子仓库已有下列修订:代理服务器修剪 - %s立即发布请求拉取从 %s 拉取操作失败,返回值 %d从 %s 拉取操作完成拉取传入变更拉取传入变更自 %s从指定URL拉取更改拉取修订集到您的仓库拉取子仓库从:拉取到此...拉取的远程书签: %s正在从 %s 拉取...刷新(Purge)刷新补丁队列推送(&H)全部推送(&A)提交后推送提交后推送:SSL加密推送推送选定分支(&B)推送所有推送当前分支 (%s)推送传出的变更推送传出更改到 %s推送更改到指定URL推送到 %s 操作失败推送到 %s 操作失败,返回值 %d推送到 %s 操作完成推送到此(&H)推送到远程仓库 %s ?推至当前版本 (#%d)推至版本 #%d推送的本地书签: %s正在推送到 %s...QNewQRefresh查询查询影响选定文件的变更集退出移除数据(&E)仓库注册表选项(&E)回退/撤销(&O)...README 未配置恢复(&C)移除已版本控制(&M)从注册表中移除(&M)重命名(&N)更名补丁(&N)...重命名(&N)...只读*已准备好清理工作目录重定位变基 - %s变基 - 在本地拉取的变更之上变基本地提交变基 - 使用 rebase 扩展 (rebase 未激活!)变基已放弃变基已在进行变基变更集及后代变基整个源分支 (-b/--base)变基失败变基产生的合并冲突必须被解决变基完成变基在 Subversion 上未公开的头(覆盖源、目标)变基...进入子仓库递归到子仓库 (--subrepos)冗余的认证信息刷新刷新任务标签页(&T)刷新工具栏刷新当前补丁刷新当前仓库刷新文件列表只刷新当前任务标签页刷新仓库注册表正则表达式正则式:正则表达式拒绝拉取修订集相关的路径:重新载入重载文件移除子仓库(&V)远程更新 - %s远程命令:移除移除所有选定的文件(&A)移除未修改的文件(&U)移除文件...删除URL认证数据移除当前工作版本?把文件移出版本控制显示所有文件移除补丁目录从队列中移除补丁?删除选中的文件?删除节点和所有子结点。仓库不会从磁盘删除。移除选定的仓库吗?从当前修订移除此子仓库移除的本地书签: %s移除的远程书签: %s被移除的标签 %s重命名更名 - %s更名出错重命名文件更名补丁更名补丁队列重命名文件或目录更名补丁 %s 到:更名补丁队列“%s”到重命名补丁...重命名条目重新打开最后关闭的标签页重新打开最后关闭的标签组替换替换已有钩子?替换已有标签 (-f/--force)替换已存在的补丁文件。 仅报告每个文件的首个匹配仓库仓库仓库错误仓库ID:仓库注册表仓库注册表已更新仓库设置仓库命令仍在运行仓库被锁定非本地仓库仓库状态和改动需要确认解决冲突 - %s已解决冲突重新打开分支(&B)重新开始合并(&G)重新开始合并与(&W)重启所有 TortoiseHg 应用程序,以使下列更改生效:恢复变基已在进行版本还原还原 - %s还原文件...要还原所有文件的修改吗?还原所有文件到这个修订版本还原所有工作副本的修改吗?还原文件改动以这个修订版本恢复文件要还原文件到本地版本或其他父版本吗?还原本地文件更改?还原下列文件?回退到修订版本正在恢复 p4 变更列表...审核面板审核 ID:审核草稿已发布到 %s 审核已公开到 %s 修订版本修订版本 #%d (%s) 导出到:

                                                                                                            %s%s%s修订版本详细信息(&D)修订版本集修订集查询修订细节上下文菜单修订版本变为:修订是坏的(&B)修订是良好(&G)修订匹配:修订版本:要匹配的版本:右侧工具栏回滚到修订版本 %d回滚到修订版本 %d (撤消 %s)?运行于 %s正在运行...俄语同步工具栏(&Y)同步(&Y)SMTP 主机SMTP 密码SMTP 端口SMTP TLSSMTP 用户名SSH 命令SSL 错误: %sSSL:服务器证书验证失败SSL: 未知错误 %s:%s退出时保存当前的同步路径(&V)保存保存到全局退出时保存打开的仓库(&X)保存路径编辑前保存更改?以别名保存当前URL保存错误报告至另存出现在修订版本中的文件保存文件到保存 hgweb 配置保存到仓库显示远程仓库(&R)查找搜索历史搜索选定文本搜索已在进行中搜索提交说明,用户名,和改动文件名。按指定模式搜索文件的修订版本搜索所有历史(&H)搜索中正在搜索...秘密MQ补丁HTTPS安全连接安全设置安全: 全选(&A)全不选(&N)选择目标文件选择目标文件夹选择包含补丁的目录选择仓库选择源文件。选择源目录选择工具:选择用户证书链文件选择用户证书密钥文件选择一个GUI用以编辑:选择已存在的仓库,将其添加为子仓库选择要合并的分支选择打包文件选择目标目录选择补丁目录选择补丁选择本仓库拉取完成后的操作选择要添加的仓库选择要打开的仓库目录选择源目录选择打开仓库时初始选中的修订版本。您可以选择 "current" (工作目录的父版本), "tip" (本分支的顶点) 或 "workingdir" (工作目录). 默认: current选择打开仓库时显示的默认标签页。默认: revdetails选择点击“推送”按钮时推送的修订版本。

                                                                                                            • all: 默认值,推送 所有分支 中的所有更改。
                                                                                                            • branch: 推送 当前分支 中的所有更改。
                                                                                                            • revision: 推送当前分支中在 当前修订版本及以前 的所有更改。

                                                                                                            默认: all选择要更改的工具栏或菜单选择何时刷新工作目录状态列表:
                                                                                                            - auto: [default] 让 TortoiseHg 决定何时刷新。
                                                                                                            当 TortoiseHg 进行可能更改工作目录的操作时,会自动刷新状态列表。这可能导致错过 TortoiseHg 控制之外的更改;
                                                                                                            - always: 在上面的自动更新之外,当用户点击“工作目录修订版本”或工作台任务栏上的“提交”图标时也刷新;
                                                                                                            - alwayslocal: 与 "always" 相同,但仅对 本地仓库 进行刷新。
                                                                                                            默认: auto选择将运行的命令选定的变更集配对不相关发送邮件(&E)发送修订集为Hg补丁把补丁整合成一个二进制包发送发送邮件服务器服务器仓库 ID服务器设置警卫(&G)...设置祖先设置日期设置逻辑设置用户名:设置(&G)设置设置文件:一些字符串可能丢失。某些图标来自TortoiseSVN和Tango项目显示仓库注册表(&O)搁置搁置已清除搁置已删除搁置: %s外壳剥离修订 - 将本地更改移动到补丁搁置变更设为“是”时,新的标签将在当前标签后面打开;设为“否”时,新的标签在所有标签最后打开。默认: 是显示作者(&A)显示日期(&D)显示补丁队列(&P)显示路径(&P)显示修订(&R)显示关于对话框显示控制台(&L)显示细节显示家族线路显示函数显示图标显示问题显示问题...显示日志显示输出日志显示修订详情(&D)显示简短路径(&H)在对话框标题栏中显示仓库目录的完整路径而不是根路径, 默认: 否显示全部在树视图显示所有版本控制的文件查看自第一个父版本的修订查看自第二个父版本的修订显示此提交的文件变更在日志中显示作者全名。如果未启用,只显示一小部分,没有名称则通常显示电子邮件地址。默认:否选择是否在任务标签页的侧面显示任务标签栏,这样可以不用工具栏切换任务标签页。默认: off在提交消息的开头显示标签。显示选中文件的历史显示每处修改的所在的函数. 默认: 否显示/隐藏 隐藏的变更集签(&N)...签 - %s签名已添加单个工作单窗口大小大小 (KB)提交后关闭,跳过最后的确认页跳过%s,无法读取依照名称排序(&N)依照路径排序(&P)按路径为分组排序按名称为分组排序源源不存在。源:东南欧语系南欧用空格隔开的分支名称与颜色对应列表,格式为“分支名:#XXXXXX”。分支名中的空格和冒号需要用反斜杠 (\) 转义。其它特殊字符也可以用此方法转义,如 \u0040 代表 @ 字符, \n 代表换行符。默认: 无 (留空)列出不需要用户与交互直接完成的操作,用空格隔开。如 "add remove revert forget". 默认: 无 (留空)指定新搁置的名称指定路径到 GPG。默认:gpg指定 TortoiseHg 要监控更改的目标文件系统。默认:仅本地指定您的首选用户界面语言(需要重新启动)启动开始一个新的补丁分支开始版本:为此仓库启动web服务器状态状态状态文件列表工具栏状态:停止停止当前操作已停止删除线截去 - %s截去:条纹间隔如果接收者不使用Mercurial(或不想见到头信息)的话, 可以去掉Mercurial头信息. 不过这样做会导致包含在头信息中的用户名和父版本信息丢失.样式子菜单项:主题:正在提交 p4 变更列表...子仓库已添加 .hgsub 文件已创建子仓库并设置为初始版本。子仓库初始化到版本:子仓库可能已损坏或者无法访问。子仓库已经从仓库中移除。子仓库状态是:子仓库状态子仓库未被修改。子仓库已存在未找到子仓库子仓库未在工作目录中找到。已从子仓库中删除 .hgsubSubversion:成功继任者:推荐的提交说明每行长度,一条红色竖线将显示在行末以标识长度。按 Ctrl+E 可按照此长度自动折行。默认: 80摘要 (首行描述)摘要行的长度摘要:交换源与目标同步同步书签同步和拖入的仓库进行同步同步远程仓库语法高亮系统缓存Tab 宽度标签无法退出已添加标签 '%s'标签 '%s' 已被移除标签 '%s' 已被移除标签 - %s标签:已用于标记:标签:采用其他(&O)使用 bzip2 压缩的 tar 文件使用 gzip 压缩的 tar 文件Tar 文档集目标组合目标组目标人员目标:任务标签栏任务工具栏顺序任务条暂时禁用HTTP代理设置临时文件在对话框关闭后自动删除被用户终止测试这个修订版本并报告结果。(无bug/有bug/跳过)文本转换失败文本文件 (*.txt)有关仓库用途或内容的文本描述.泰语.hgsub 文件已包含此行:

                                                                                                            %s修订版本 %s 所做更改及其全部未合并的上级修订将被丢弃。 您确实是要这样做吗?命令 "%s" 未能执行。命令 "%s" 失败 (代码 %d)。将要执行的命令。 要执行一个 python 函数时,在命令前加上 "python:"。 目标文件 "%s" 已经存在目标文件夹 "%s" 已经存在!目标必须在版本库树中。目录 "%s" 不为空! 确认覆盖它?异常信息是:

                                                                                                            %s

                                                                                                            文件"%s"已存在! 要覆盖它吗?已返回下列错误信息: "%s" 请检查命令路径是否有效,以及是否是有效的应用程序。已返回下列错误信息: %s钩子名称不能包含任何空格、制表符或 '=' 字符。钩子名称。不能包含空格。设置 TortoiseHg 在修改历史,状态栏及提交窗口中所能显示的最大差分大小 (以KB计算),设为0表示不做限制。默认: 1024 (1MB)命名的书签或所有书签。命名标签或所有标签。在查看修改历史时一次性读入显示的修订版本数. 默认: 500新提交的阶段。默认:draft选定的命令为空选定的文件夹:

                                                                                                            %s

                                                                                                            并不在目标仓库中。

                                                                                                            这种情况是允许的,但并不推荐使用。
                                                                                                            如果您想添加子仓库映射,必须手动编辑 .hgsub 文件选定的仓库:

                                                                                                            %s

                                                                                                            无法打开!选定的仓库:

                                                                                                            %s

                                                                                                            已经是

                                                                                                            %s

                                                                                                            的子仓库: "%s"选定的子仓库:

                                                                                                            %s

                                                                                                            已被添加到下列仓库的 .hgsub 文件中:

                                                                                                            %s

                                                                                                            请注意为完成子仓库添加操作,您仍需提交 .hgsub 文件的更改以确认子仓库的添加。选定的子仓库已从 .hgsub 文件中移除。.

                                                                                                            请记住,您必须提交 .hgsub 的更改才能完成删除子仓库的操作!选定的仓库中未找到 .hgsub 文件。

                                                                                                            或许它已经被删除?源必须在版本库树中。该子仓库存在问题。工具图标。 您可以使用任何 TortoiseHg 内置的图标 ,通过将此值设为有效的 TortoiseHg 图标名称 (例如:clone, add, remove, sync, thg-logo, hg-update 等等)。 您也可以将此值设为指向您的文件系统上任何图标的绝对路径。工具名称不能包含空格。工具名称。不能包含空格。工作目录已被合并继续丢弃已存在的合并。有需要解决的合并冲突没有已配置的同步路径。 打开同步选项卡配置它们。没有冲突的文件合并。无改动可查看有可能文件已被重命名已存在同名文件夹。现在已有 %s.%s 钩子。 您确定要替换它吗?没有可用的回滚信息Thg - TortoiseHg 的图像工具,面向 Mercurial SCM (Hg) 这似乎是一个二进制文件。这个错误在您重新启动工作台前不会再次显示3路合并工具标题收件人要完成合并,您必须提交该工作目录。 要取消此次合并,您可以更新到合并的任一父版本。嫁接目标变基目标收件人:切换搜索栏的文字显示切换非匹配变更集的过滤切换嫁接相关的可见性切换父作为基础修订容许不冲突的本地更改 (--keep-changes)为菜单选择了太多行工具解决(&R)工具标签工具载入失败工具名称工具在选定的位置显示工具工具提示顶层菜单项:TortoiseHg 书签同步报告 TortoiseHg 错误TortoiseHg 命令对话TortoiseHg 提交TortoiseHg 对话框 (版本 %s), Mercurial (版本 %s) TortoiseHg 有误TortoiseHg 新建搁置的名称TortoiseHg 层叠图标服务TortoiseHg 提示TortoiseHg 搜索TortoiseHg 设置TortoiseHg 搁置 - %sTortoiseHg Web 服务器TortoiseHg 工作台TortoiseHg 已创建一个新的 .hgignore 文件。您希望将其纳入版本控制吗?繁体中文移植:触发器修订设置查询正在尝试刷新您的仓库。土耳其语类型解压包(&n)...界面语言URLURL错误: %s乌克兰语无法回退无法压缩历史记录不能创建 Mercurial.ini 文件无法创建配置文件无法删除 %d 个文件或文件夹无法确定待定的变更集无法确定工作副本修订 未能找到修订集无法合并无法合并部分无法解析 p4pending 的输出无法读取文件无法读取仓库状态无法删除无法删除URL无法删除文件 %s 权限被拒绝无法在提交推送后保存无法保存URL无法保存身份验证无法保存自动导入列表无法保存拉取完成后操作无法保存子仓库的递归无法保存用户名无法显示子仓库文件无法启动下列命令:无法转换输入到本地编码。无法更新仓库名无法写入 .hgignore 文件无法写入配置文件无法写入差异文件无法写入文件取消应用所有补丁反向应用一个补丁Unbundle取消选中全不选未提交合并 - 请选择一个父版本未压缩的 tar 文件未压缩的 zip 文件下划线撤消关闭其他标签页撤消关闭标签页撤销最后提交?撤销最后一次事务处理?撤销最近的提交 (%d) 并保持文件更改?Unicode统一中文未知的版本!未解决的冲突未解决的冲突仍然存在。您确定?未保存的修订将会丢失。 确认要重新载入吗?不支持的仓库类型 (%s)无版本控制的更新更新 - %s更新 - 拉取完成后尝试更新更新图标更新审核更新此仓库的图标进入更新更新子仓库路径更新这个已存在请求的字段更新到:更新工作目录更新工作目录或切换修订版本更新...UpdateOrRebase - 拉取,然后尝试更新或变基更新或变基 - 使用 rebase 扩展 (rebase 未激活!)正在更新仓库注册表建议更新到最新的TortoiseHg使用英文回退说明使用英文的提交说明以紧凑方式查看使用当前日期使用自定义提交说明使用扩展的(git)补丁格式使用git的扩展比较头格式. 默认: 否使用我的用户名,而非嫁接提交者的用户名使用代理服务器使用 pull 协议复制元数据用户用户认证用户缓存用户证书链用户证书密钥用户数据应该与主机名关联,使用安全对话框。用户:用户名邮件服务器验证用的用户名验证回退修订版本并确认你的工作目录是干净的。验证合并目标并确认您的工作目录是干净的。使用证书颁发机构验证(最佳)使用储存的主机指纹验证(较安全)查看文件(&E)越南语查看文件在查看其他(&T)以统一差异输出查看变更查看仓库中的改动历史查看选定文件的变更历史查看文件内容的变更用外置的比较工具查看当前文件更改使用GUI比较工具查看修订查看出现在修订版本中的文件用外置的比较工具查看文件更改查看仓库设置比较文件可视化比较工具可视差异...文件差分 - GUI编辑器可视化比较解决文件和第一个父版本可视化比较解决版本和第二个父版本可视化工具查看差异...可视化差异不支持子仓库中的文件。它们将不会显示。可视化三路合并警告警告: 影响所有的Tortoise,注销后生效已重命名自Web 服务器Webconf西欧您想干什么? 当启用时,在命令运行时自动显示输出日志。 默认: False。是否允许推送到仓库. 如果为空或没设置, 推送是不允许的. 如果指定值为"*", 则任何远程用户都能推送, 包括未授权用户. 否则, 远程用户必须被授权, 并且授权用户名必须在这个列表里面(空格符或","分隔). 允许推送列表内容是在禁止推送列表内容之后被检查.是否禁止推送到仓库. 如果为空或没设置, 推送是允许的. 如果指定值为"*", 则任何远程用户都被禁止推送. 否则, 未被授权用户都被禁止, 并且所有在这个列表里面的授权用户(空格符或","分隔)也都被禁止. 禁止推送列表内容是在允许推送列表内容之前被检查.是否在从web推送到本地仓库时采用SSL加密, 以避免密码被窃取.指定一个模板样式空格(&S)工作于补丁队列 (--mq)工作台工作台日志列工作台自定义工具栏工作副本工作目录工作目录 (已合并)工作目录工作目录中有更改尚未提交!查看更改...工作目录状态精准搜索写入包写入差异文件书写补丁系列 (bundle) 的描述您可以在TortoiseSVN 的设置更改图标设置这里可以访问我们的网站您无法将一个修订与其自身合并您已有此主机的认证信息。是否移除URL中的认证信息?您重命名了多个目标文件: %s。放弃!您可能需要刷新您可以继续或开始嫁接您可以继续压缩您可以继续嫁接您可以继续变基您必须输入一个补丁名称您必须向 Mercurial 提供一个名字您必须提供要嫁接的修订您必须提供源和目标参数您必须提供一个文件路径您必须设置运行的命令。您必须设置工具名称。您必须设置一个有效的钩子类型。当前的TortoiseHg版本已是最新版本您当前工作的修订 (%d) 将被此次回退移除,留下未提交的更改。确定继续?使用 deflate 压缩的 zip 文件zip压缩包[--after PATCH] PATCH...[代码:%d][警告] 已变更的子仓库不完整。更新到此版本来拉取它。[警告] 不完整的子仓库。更新此修订来拉取它。[警告] 无效的子仓库版本ID: %s [警告] 缺少已变更的子仓库。更新到此版本来克隆它。[警告] 缺少子仓库。更新到此修订以克隆它。[命令成功完成 %s][命令中断 %s][命令返回代码%d %%s][命令被用户 %s 终止][不存在][原始版本][工作副本]要发布的修订准备邮寄的修订版本中止: 终止: %s 中止: %s! 提交将diffstat的输出添加到说明中已添加总是启动GUI进程附件基本命令: 正文书签: 分支: 打包文件预览无法读取文件"%s". 已忽略。 无法移动已应用的补丁无法移入已应用的补丁不能同时指定 -k/--query 和文件名修订集 %d:%s使用比较工具查看修订集修订集: %s变更集: %s (未在子仓库找到)清除仅克隆指定的分支时间作者分支更改转换自描述文件名历史图最近标签本地时间节点开发阶段修订版本标签UTC时间命令解析错误: %s提交损坏的命令结果: %r默认diffstat放弃未提交的修改(不备份)显示帮助并退出不备份被剥离的修订不启动图形界面进程剥离时不修改工作副本启用附加的输出启用调试输出eol 与 win32text 不兼容执行命令时出错 exec 模式已设置exec 模式已被取消将命令编码失败: %s将输入编码失败: %sfork GUI 进程失败: %s 无法执行命令 将获有初始焦点的字段文件已移除,刷新文件已修改,刷新文件全选全不选正在填充 (%d)过滤器全局选项:grep: %s grep: 无效的匹配规则: %s hgsubversion 与 perfarce 不兼容提示:提示: 历史搜索时忽略大小写已忽略导入补丁队列 (MQ)未来时间包括指定的变更集最初的搜索模式内嵌inotify 在此平台上不被支持无效的 "hello" 消息: %r无效参数无效行号: %s指定的补丁位置无效保持原有分支名称保持原有变更集启动可视化差异工具命令列表: 本地lsprof 不可用 - 从 http://codespeak.net/svn/user/arigo/hack/misc/lsprof/ 安装签署本地make the tag local拆除后合并旧的目标父邮件发送方式缺失的已修改在指定的补丁后移动必须是样式(style)中指定的'type'必须是指定的仓库hgweb配置文件的名称 (已弃用)hgweb配置文件的名称 (服务有多个仓库)需要合并 %i 个头 需要与 %s 合并 需要与 %s 合并 (通过 %s) 需要更新diff基点到 %s 的 tip 没有 "runcommand" 能力没有指定命令命令未定义 无警卫没有找到匹配项: %s没有传出变更集没有仓库 没有指定修订版本通知shell所给的路径现在空的修订(即移除文件)只允许一个新书签名打开一个新的工作台窗口打开书签同步窗口打开到行打开...选项 --config 不能缩写!选项: 拆除合并时选择父密码: 补丁 %s 不在序列内perfarce 与 hgsubversion 不兼容打印命令执行配置打印许可进程意外退出,代码 %dpull: %s push: %s从文件中读取文件列表从 UTF-8 编码读取文件列表从指定的变更集变基变基到指定的变更集记录datacode为提交日期记录用户为提交者移除标签删除状态缓存移除工作目录已移除替换已存在的标签仓库 %s 未找到仓库根目录或符号路径名需要一个单一的文件名修订版本: %d (%s)修订版本 %d 的首个父(即版本 %d)版本 %d 的第二父(即版本 %d)标注修订版本要存档的修订要回退的修订要显示的修订要合并的修订要剥离的修订要标记的修订更新到版本可被签出的修订集,标签或分支修订版本 %d:%s 到 %d:%s要嫁接的修订要修剪的修订使用比较工具查看修订版本搜索指定的文本或修订集选择指定修订已选择文件以附件方式发送补丁以内嵌附件的方式发送补丁作为电子邮件正文的一部分发送补丁设置/覆盖配置选项 (使用 'section.name=value')显示未更改的文件显示忽略的文件显示状态缓存的内容(无更新)启动调试器提交MQ动作回滚状态子仓库简略化输出同步命令已在运行提交控制台日志补丁分支修订版本详细信息搜索同步克隆将包括一个空的工作副本(仅一个仓库)要签署的密钥ID要显示的修订thg %s: %s thg 关于thg add [FILE]...thg annotatethg archivethg backout [OPTION]... [[-r] REV]thg bisectthg bookmarks [-r REV] [NAME]thg clone [OPTION]... [SOURCE] [DEST]thg commit [OPTIONS] [FILE]...thg debugblockmatcherthg debugbugreport [TEXT]thg debugconsolethg debuglighthgthg debugruncommand -- COMMAND [ARGUMENT]...thg drag_copy SOURCE... DESTthg drag_move SOURCE... DESTthg email [REVS]thg filelog [选项]... 文件thg forget [FILE]...thg graft [-r] REV...thg grepthg guessthg help [COMMAND]thg hgignore [FILE]thg import [OPTION] [SOURCE]...thg init [DEST]thg log [OPTIONS] [FILE]thg manifest [-r REV] [FILE]thg merge [[-r] REV]thg postreview [-r] REV...thg prune [-r] REV...thg purgethg rebase -s REV -d REV [--keep]thg rejects [FILE]thg remove [FILE]...thg rename [SOURCE] [DEST]thg repoconfigthg resolvethg revdetails [-r REV]thg revert [FILE]...thg rupdate [[-r] REV]thg serve [--web-conf FILE]thg shellconfigthg shelvethg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]thg status [OPTIONS] [FILE]thg strip [-k] [-f] [-n] [[-r] REV]thg sync [选项]... [对等端]thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]thg thgstatus [OPTION]thg update [-C] [[-r] REV]thg userconfigthg version [OPTION]thg: %s thg: 命令 '%s' 意义不明: %s thg: 未知的命令 '%s' 等待消息超时读取超时: %r...请求的频道 %r 出现意外响应未跟踪指定移动的补丁未知未知版本!无法识别的配置文件格式 '%s' - 已忽略 无法识别的响应: %s不支持的 URL: %s更新当前目录下的所有仓库使用 "thg -v help %s" 显示全局选项使用 "thg -v help%s" 显示别名和全局选项使用 "thg help" 获得完整的命令列表使用 "thg help" 获得完整的命令列表,或 "thg -v" 查阅细节使用作为提交说明只使用一种方式来指定修订使用拉协议(pull)来复制元数据使用非压缩传输(通过 LAN 方式时更快)版本 %s等待计数结束将被关闭win32ill: 无法为消息创建窗口win32ill: 停止消息循环时被中断 win32ill: 不支持的平台: %s win32text与 eol 不兼容提交附 Mercurial-%s, Python-%s, PyQt-%s, Qt-%s当前改动可以合并无(&N)././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033607.8794138 tortoisehg-6.9/locale/zh_TW/0000755000000000000000000000000014742203610014606 5ustar00rootroot././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1354146 tortoisehg-6.9/locale/zh_TW/LC_MESSAGES/0000755000000000000000000000000014742203610016373 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033566.0 tortoisehg-6.9/locale/zh_TW/LC_MESSAGES/tortoisehg.mo0000644000000000000000000031432014742203536021131 0ustar00rootroot[2ee eeeff3fMf aff ffff fg)goLo Ro\okotoooo oo o ooop p"p'p-pBp`phpp pp pppppp pp pq q q *q4qCq KqVq^qdq tqqqqqqq'qqr#$rHrbr rrrrrr ss,$sJQsss&ssst&t;At}tt-tttu*u=u Lu Vudu$u7u3u(v;v#Zv~vvvv vvvvv% w&0wWwjw }wwww wwwwwx1xFx dx rx~xxxxx x0xx y (y 6y @y Ny)Yy)yy=yzz>%zHdzzzz zz0{3{C{U{p{{{ {{ {{{:{;+|'g| | |||||||G}:O}4}}}8}~2~ O~\~"n~~!~~~~j 4Qn& "€   ) =G[o 3 EPip+3̂! 9B|)׃ڃރ, "Mp!ք "2,U$ ȅԅۅ  ",Ol ÆɆن !D+pw/ LJՇ   (IXu &ň"= FT huω ,;Vf~  Ȋ!Պ $ 1? S`oՋ 3P` e p { * &Ȍ5 @#aō؍%!/Gw Î̎ю׎ $>+.j.,ȏ ) :FXo"'ސ7@Y k u  Ƒ'@ZOu#Œ+ œғ %4CR*e $є--$.R#'ڕA!T2v'і18"[)p ȗΗח (8 =G Ze x! ؘ %8CJ/ޙ-3)FBpʚ "5Bx ʛ כ %8(^Ӝ-ۜ ' DQj | "4̝;1L~X+@ HUu$˟:; 5\<Ϡՠ4*5`gw!áɡ١& ΢٢  +9? ESey  ţ&ϣ 38a>M  -9LU jv ťե  ' :[w ;6#3G_ y ç̧ݧ  '4< AOa Ũ٨   $,0 ?L N Z hv (8!1+]{ ʪ ت GmZȫ Ϋ)٫)/Yv / Ԭ߬ %9I$^*ܭ)0Bs[x@Ԯ; Q\ kx  ǯԯ( - 7AJ_y Ͱݰ! 2CUl-A#RJv($7\p"dz$(+T+iʴʹ,',;O,g,!ܵ%=6t% 3̶ (19Jex ˷ ѷ ۷  .8N b nzָ  /?DV\z!:#P*t!(. 9KQ dp ƻ̻ѻ'9-aͼӼ ,BKdz%Ͻ  ,FW`fk|ƾܾ  25M οܿ) 6>P`v!$!6ELeu| !7MV3/> E Q ^j}!/"Q$t  6K`|M'+ 2>N!g +&,H[ v]1B T ^l"    &%4Zs x   ,FM\q"  ":#Tx -A.P"#[$; `l&  @Vp v &   / = I W am|y8.Ap!%Z 1 1N j x?06O$_ , ' Efx1  "#F Z gq "! - 5?R6Z7<,s1'".03P>2;@2(s$Ejc9.Ap+(/lO%!-48b<*BF[^!- 6 DO cm s8@Qcut)=]e j w % %5 L m+ 5"M&p "(:CK2] "2D*Y4  !  ( 6 Wb,{ 5!<M^y3" C @d "!% 3 R's  237kz< Xa   C-q '+#A]'yl$ ,#-Ll{   )!@ b*p-DXr'7!Mo"/1*Cb  *)1 P^)e !>[p;A7J *( 1>Vow"&1X1k2Ob@z';C+U6,D"* MX"g, 0I&` "=R#jPV ]g|"8 *D]{   7 V bo!  !4 ITh |     %   % 0 ;F Ze   +! >IZn    #B Y d oz       " -  D  R ] t |         # ;  L W k |           # =  Q  _  j u           *  :  E  P ^  r            2  L  V a x  ) #  &'#E#i*#Jn}%+?W7r% / 8Db/--BY`w ~/# 0F Zel">%Tz    0  ?L ]j z&&VGN-g@ "# FSf     0 Qgw  9!+*M x* !1+Am  &5 \h|  'B,X!3 1PW _l|+!* H ^ t  |    ( 0  ! !!0! R!_!g!{! !!!$!!! " "%"5" F"P"W"h"x""" "9"""-#C# J# W#d#k# # # ## #### $ $ $$!1$S$m$"$$ $$ $$$ %%*%@% Y%f% y%*% %%% %% & &!&=& P& ]& j& w&& & &&&&& ''5' <'0I'z'''' ' '$' '$'$('>(f(((((((()-)%L)-r) )-)) )***!*2*R*b*u*"|***(*+ +"+5+ E+R+b+x+$+++++ ,"!,D,L, e, r,,,,, ,,,+,0)-Z-"p-Q---.,.... //4/M/i/{///(///.04D07y0(0001#(1 L13W11*1'11&2.<2k2|222 2 2 2223 3323I3`3 g3t3333$3 3 44%4D4]4 s44464/4 5)5 05=5S5i5 p55}58556$6@6H6`6"g6-66666 7 7!7:7S7)l7*7$77 7 868J8Q8i8 888 8 88859>96N9999V94:;:B:V: m: w:#::+: :::;<;2Z;,;4;;;<11<'c<<< < < < < <==&= = = => >>;>T> d> n> x>>>> > >">> ?!?;? K?X?_?f???s?H@N@V@f@ y@@@@ @ @@@@ A#A7A NAYAoA AA8AAAB B;B5YBBBBB BBC &C3C:CACQCaCzCC CC CCCC#C D'D;D ND\DoDD D DDDDDDD D EE E"E-+E,YEEE<E!EF7F VFcFvF F FFF/FjFgG nG3zGGG*GH$H AH$OH tHH HHHHHHHIIMQM#jMfMMN!!NECN$NN+NN'O:OMOiOOO'O!O(O 'P.4P+cPDPPPQQQ.9Q hQuQ|QQ-Q'Q!QR!;R]R$oR<RR!RS-"SPSlSsS {S SSS0S5S 'T4T ET PT ZTdTlTsT zTTTTTT T T UU/UJU`U rU UUU UUUUUU"UV#V?V!UVwVV7V$V* W4WMWfWvW }W W)WW WWW W X XX &X 0X =X JXWX^X}XX(X0X-Y3YFYeY YY YYYYYY ZZ6Z+UZ0ZZ ZZ[)[?[^[o[x[[[[[ ["[[\"\9\M\U\Ek\8\ \\] .];]L]$k] ]]]]]^$!^!F^ h^u^^^^ ^^ ^__._K_[_{___"_C_;`'U`}`````` `aa2aRara!a'aaa$ab')b Qb [beb ubbbbbbbc"c4cGc^cuc=ccc ccc$d%6d\d'od4d(dd ee 8e Ce^Meeeee f $f1fAf\f |f fff f f fff ff g-gHgOg(_g gg*gggg hh7h >hKhahwhh h hhh h h ii"i8iTiditi i!iiiii j$j!AjcjjCj$jk#k+*qiqpqq'qqqq qqr r r *r6r>rErrrr$r3s"Is!ls!sssss't8t?tt t tt u u(u/uHu ^uku|uuu uuuuuv 7vBv JvWv mv0wvv:vv* w6wc=www/w/x!8x.Zx(x/x5xy7y!y!yEzLz+ez!zz!zz|{{C{{.{!-|'O|2w||7|| }l} }}$}} }} ~~~ 9~F~Z~r~~~8~~0B\Pp !    - :G![} Ҁ  *Kat΁ 6Jc y 36Lc z &>߃ ?U \.h   Єۄ'  "9\u Ѕ1#!9 [e u?=І )$9^'}-ć3&?UqEE:Mi:p‰Mԉ"8!I ku   ֊90 E R'`Ћ! $+!P*rm,( U`/oō(ލ "8 A LY$` ώ * (2 KX_fmu |  ُ #!*L_x11" "-PW^ d n |đˑ  6P!lĒ ˒Ւ3G^<}@@<!Ce ~Ք .DZj!ƕ& %29@ GTp w >##BW^(r1%͗<*0 [ er+ Ș aliases: %s (default: %s) (copied from %s) (is a symlink) (is unversioned) (renamed from %s) (was added) (was added, now missing) (was deleted) filtered"%s" is not a folder"%s" is not a valid directory"%s" removed from path history"%s" removed from search history### filter text ###### patch name ###### regular expression ###### regular expression search pattern ###### revision set query ###% Match%d day%d days%d files have merge conflicts that must be resolved%d files were modified on both branches and must be resolved%d hour%d hours%d matches found%d minute%d minutes%d month%d months%d outgoing changesets%d outgoing changesets to %s%d patches were exported to:

                                                                                                            %s%d second%d seconds%d week%d weeks%d year%d years%s (hint: %s)%s - Revision Details (%s)%s - TortoiseHg Workbench%s - TortoiseHg Workbench - %s%s - branch operation%s - commit%s - commit options%s - purge%s - recover repository%s - status%s - sync options%s - verify repository%s : %s%s %s already exists, replace URL?%s and %s have identical contents %s is added%s is ignored%s is modified%s is not a valid repository%s is not modified (clean)%s is not tracked (unknown)%s is removed%s patches%s repository settings%s will be imported to %s's global settings&About TortoiseHg&Add&Add Repository...&AfterIndent&Archive&Archive...&Auto&Auto Detect&Auto-Complete&Backout...&Branch&Browse...&Bundle Rev and Descendants...&Cancel&Character&Clear&Clone&Close&Close Repository&Commit&Commit to current branch&Copy&Copy Patch&Copy...&Custom Toolbar&Delete&Delete Patches...&Delete Unversioned...&Diff to Other&Diff to Parent&Discard&Discard changes&Dock Toolbar&Edit File&Edit Local&Edit Toolbar&Edit...&Editor Options&Email Patch...&Exit&File&Filter Toolbar&Finish Patch&Forget&Goto (update workdir)&Goto Revision...&Help&Ignore...&Import&Import Patches...&Incoming&Invisible&Keep (--keep)&License&Local&Mark Resolved&Mark Unresolved&Mark as Resolved&Match&Merge&Merge with Local...&Merge...&Move&New Repository...&No&No (discard changes)&Open&Open All&Open Local&Open Repository...&Originating Revision&Other&Outgoing&Parent Revision&Parent Revision (%d)&Patch Branch&Pull&Purge...&Push Bookmark&Refresh&Refresh Repository List&Remote Update...&Remove&Remove Bookmark&Remove...&Replace&Repository&Resolve...&Revert&Revert to Revision...&Revert with backup&Revert...&Run&Save&Save at Revision...&Scan Repositories at Startup&Search&Search in Current File&Set...&Settings&Shelve&Shelve...&Sign&Skip this Revision&Sort by .hgsub&Spaces&Strip&Strip...&Sync Bookmarks...&TAB Inserts&Tag...&Take Local&Task Toolbar&Terminal&Unapply Patch&Update&Update...&Verify&View&View Changeset&View Missing&View at Revision&Visible&Word&Workbench Toolbars&Wrap&Yes(is a changed and dirty sub-repository)(is a changed sub-repository)(is a dirty sub-repository)(is a new and dirty sub-repository)(is a new sub-repository)(is a removed sub-repository)(is an unchanged sub-repository)(no help text available)(same as parent)*: not used by TortoiseHg, resolved merge, unresolved merge3-&Way Diff3-way dir diffLaunch settings tool...%d changeset will be stripped%d changesets will be strippedAnnotate:Candidate MatchesDifferences from Source to DestHost: %sIgnore FilterParse Error!Repository Details:Revert %s to its contents at the following revision?Selected Options:Selected Options: %sUncommitted local changes are detectedUnknown revision!Unrevisioned FilesUntracked FilesWeb Server:= Working Directory Parent =A bookmark named "%s" already existsA new version of TortoiseHg (%s) is ready for download!A revision identifier, bookmark, tag or branch nameA shelf file of that name already existsA shelf name cannot contain %sA terminal shell must be configuredA&dd Subrepository...AbortAbort the export operation. AboutAbout &QtAbout TortoiseHgAcceptAccept All MatchesAccept Selected MatchesAccept the local file version (yours)Accept the other file version (theirs)Activate BookmarksActivate bookmark?Activate:AddAdd &LargefilesAdd &Largefiles...Add Files...Add Path to ServeAdd a repository to this groupAdd as &LargefilesAdd as &Normal FilesAdd files to version controlAdd ignore filter...Add selected untracked files?Add separatorAdd to listAddedAdded tag %s for changeset %sAfter Pull OperationAge:AliasAll HistoryAll conflicting files will be marked unresolved.All conflicts are resolved.All contextsAll files (*)All itemsAll revisionsAllow PushAllow push of a new branch (--new-branch)Allow pushing new branches (--new-branch)Always merge (when possible)Always show repo tabs, even for a single repo. Default: FalseAmendAmend current revisionAn error occurred while updating the repository hgrc file (%s)An exception happened while loading the subrepos of:

                                                                                                            "%s"

                                                                                                            Annotate &FileAnnotate Op&tionsAnnotate with revision numbersApp&ly FormatAppendAppend the changes to the existing patch files. Applied patchesApply all patchesApply changes before exit?Apply one patchApply only this patchApply onto original parentApply patchArabicArchive - %sArchive FormatsArchive types:Are you sure that you want to cancel the commit operation?Are you sure you want to delete these files and/or folders?Are you sure you want to overwrite it ?Are you sure?Ask UsernameAuthorAuthor ColoringAuto Commit ListAuto Exclude ListAuto Includes:Auto-resolve mergesAutomatically advance to next page when backout and merge are complete.Automatically advance to next page when merge is complete.Automatically resolve merge conflicts where possibleBackBacked out changeset: Backing out a parent revision is a single step operationBacking out and committing...Backing out, then merging...Backout - %sBackout changesetBackout requires a parent revisionBackout revisionBackspace or Del to remove row(s)BalticBccBefore backout, you must commit, shelve to patch, or discard changes.Before merging, you must commit, shelve to patch, or discard changes.BoldBoo&kmark...Bookmark '%s' does not existBookmark '%s' has been addedBookmark '%s' has been movedBookmark '%s' has been removedBookmark '%s' has been renamed to '%s'Bookmark - %sBookmark named "%s" does not existBookmark:BranchBranch ColorsBranch:Branch: Bro&wse at RevisionBrowse Directory...Browse...Bundle DAG Range...Bundle files (*.hg)Bundles store complete changesets in binary form. Upstream users can pull from them. This is the safest way to send changes to recipient Mercurial users.Bzip2 tar archivesC&hoose Log Columns...C&onfigure FormatCLI EditorCan't find revision '%s'CancelCannot add subrepositoryCannot backout change on a different branchCannot export revisionCannot export revision %s into the file named: %s Cannot import selected revisionCannot open Plugin Options dialogCannot open non Mercurial repositories or subrepositoriesCannot open repositoryCannot open the .hgsub file in:

                                                                                                            %sCannot start a new searchCcCc:CelticCentral and Eastern EuropeChange &Phase toChangeLog FontChanges have been moved, you must now commitChanges take effect on next commitChangeset LinkChangeset is a merge changeset.Changeset is a named branch head.Changeset is closed.Changeset is tagged.Changeset:ChangesetsCheckCheck all filesCheck for incoming changesCheck for incoming changes from %sCheck for incoming changes from selected URLCheckingChecking for updates...Checking working directory status...Checking...Child:Chunks selected: %d / %dClea&r LogCleanClearClear contents of shelf file %s?Clear current query and query textClear the current shelf fileClon&e Repository...Clon&e...Clone - %sClone RepositoryClone to revision:Clone...CloseClose %s branchClose After CommitClose Branch: Close current branchClose other tabsClose tabClose the commit tool after every successful commit. Default: FalseClose:Co&mpare File RevisionsColor changesets by author name. Default: FalseCommandCommand ErrorCommand outputCommitCommit Dialog ToolbarCommit LaterCommit NowCommit OptionsCommit backout and merge resultsCommit changesCommit changes in repositoryCommit context menuCommit merge resultsCommit messageCommit...Committing...Compare revisions of the selected fileCompare to &1st ParentCompare to &2nd ParentCompletely remove file from patch?CompressCompress - %sCompress History...Config File:Configure Custom ToolConfigure Explorer extensionConfigure HookConfigure Issue TrackerConfigure repository settingsConfigure user wide settingsConfirm AddConfirm Branch ChangeConfirm DeleteConfirm Delete UnversionedConfirm DiscardConfirm Discard ChangesConfirm Discard MessageConfirm ExitConfirm New BranchConfirm OverwriteConfirm PushConfirm Push to remote RepositoryConfirm ReloadConfirm RemoveConfirm RevertConfirm SaveConfirm StripConfirm URL replaceConfirm UndoConfirm UpdateConfirm adding unknown filesConfirm deleting filesConfirm file deletionsConfirm patch queue switchConfirm path deleteConnecting to Review Board...ContactContext MenuConvert an existing repository into a subrepositoryConverted From:CopyCopy &HashCopy &PathCopy - %sCopy ErrorCopy full path of file(s) to the clipboardCopy messageCopy one of the recent commit messagesCopy source -> destinationCopy the root path of the repository to the clipboardCould not get subrepository listCould not open some subrepositoriesCreateCreate &BranchCreate Patch QueueCreate Repository HereCreate a new groupCreate a new patchCreate a new repositoryCreate clone here from sourceCreate diff with all outgoing changesCreate new named branch "%s" with this commit? Culprit found.Current local revisionCustom Toolbar &SettingsCustom ToolsCyrillicDateDate:De&tect Renames...Deactivate current bookmark?Dead BranchesDefault widgetDeleteDelete %d file in .hg/TrashcanDelete %d files in .hg/TrashcanDelete %d ignored fileDelete %d ignored filesDelete %d unknown fileDelete %d unknown filesDelete %s from your repo configuration file?Delete Patch QueueDelete ToolDelete empty foldersDelete from listDelete hookDelete patches...Delete selected chunksDelete selected patchesDelete selected query from historyDelete shelf file %s?Delete the current shelf fileDelete the following unversioned files?Deleted %d filesDeleted %d files and %d foldersDeleted*Deleting trash folder...Deletion failuresDeny PushDescriptionDestDestination file already exists.Destination path:Destination:Detect Copies/Renames in %sDetect outgoing changesDetect outgoing changes to %sDetect outgoing changes to selected URLDetect renames and copiesDetected merge/diff tools:Detected uncommitted local changes in working tree. Please select to continue: Detected uncommitted local changes.Determines if TortoiseHg should show a confirmation dialog before pushing changesets. If False, push will be performed without any confirmation dialog. Default: TrueDetermining outgoing changesets to email...Diff FontDiff ToolbarDiff and AnnotateDiff contentsDiff not displayed: Diff to &LocalDiff to parentDir diff to p1Dir diff to p2Directory diffDirectory of filesDiscard - discard local changes, no backupDiscard current backout message?Discard current commit message?Discard local changes (revert --all)Discard local changes, no backup (-C/--clean)Discard local changes, no backup (-f/--force)Discard remote changes, no backup (-C/--clean)Display closed branchesDisplay graph the named branch onlyDisplay only active branchesDisplaying %(count)d of %(total)d itemsDnD SynchronizeDo not include modification dates in diff headers. Default: FalseDo not save backup files (*.orig)Do not strip paths (-p0), required for SVN patchesDo not update the new working directoryDo not verify host certificateDo you really want to activate patch queue '%s' ?Do you really want to deactivate the %s bookmark?Do you want to exit?Do you want to keep them or discard them?Drag to change orderDuplicate NameE&ncodingE&xitE&xploreE&xplore FolderE&xplore LocalE&xplorer HelpE&xportE&xport Patch...EOL &ModeEOL &VisibilityEditEdit FileEdit Ignore FilterEdit LocalEdit Path to ServeEdit Tool ...Edit current file in working copyEdit fileEdit hookEdit patch dependency graphEdit repository ignore filterEdit resolved fileEditor launch failureEmailEmail DAG Range...Email Selected...Email address to use in the "From" header and for the SMTP envelopeEmail outgoing changesets for remote repositoryEmit debugging output (--debug)EncodingEnglish MessagesEnter line number (1 - %d)Enter revision identifierErrorError encountered.Error executing "commit finished" triggerError getting commit message information from Issue Tracker pluginError loading subreposError previewing subrepo: %sError writing fileExcludes:Execute custom tool '%s'ExitExit without finishing resolve?Exiting with an unfinished rebase is not recommended.Explorer Extension SettingsExport DAG Range...Export Diff...Export Selected...Export patchExtensionsFailed to add repositoryFailed to add subrepositoryFailed to execute custom commandFailed to load issue tracker '%s': %sFailed to load issue tracker: '%s': %s. Failed to open path in terminalFailed to open repositoryFailed to refreshFailed!Fetch - use fetch (auto merge pulled changes)FileFile &History / AnnotateFile Differences Log ColumnsFile HistoryFile History Log ColumnsFile List ToolbarFile StatusFile Status:File already existsFile conflicts need to be resolvedFile context menu (on manifest and revision details)File is binaryFile is larger than the specified max size. maxdiff = %s KBFile may be binary (maximum line length exceeded)File or diffs not displayed: File or diffs not displayed: File is larger than the specified max size. maxdiff = %s KBFilenameFilesFilter Histor&yFilter graph with revision sets or branchesFilter:Find RenamesFind copy and/or rename sourcesFind matches - %sFinding outgoing changesets to %s...FinishedFlag:Fold patches...Follow copies and renamesFont used to display changelog data. Default: monospace 10Font used to display commit messages. Default: monospace 10Font used to display output messages. Default: sans 8Font used to display text differences. Default: monospace 10FontsForce Repo TabForce push or pop (--force)Force push or pull (override safety checks, --force)Force push to remote location (-f/--force)ForgetForget Files...ForwardFound %d incoming changesetsFound incoming changesets from %sFromFrom:Full AuthornameFull Path TitleGenerate English commit messages even if LANGUAGE or LANG environment variables are set to a non-English language. This setting is used by the Merge, Tag and Backout dialogs. Default: FalseGetting incoming changesets from %s...Git FormatGlobal SettingsGo toGo to LineGo to a specific revisionGo to current revisionGoto revisionGraphGreekGuess RenamesGzip tar archivesHTTP Error: %d (%s)Head is closed!HebrewHg command:Hg file log viewer [%s] - %sHide DetailHide TagsHide context menu outside repositoriesHighlight IconHook typeHooksHostHost name of mail serverIconIconsIf no username has been specified, the user will be prompted to enter a username. Default: FalseIf you still have trouble, please file a bug report.Ignore Ignore Blank LinesIgnore WS AmountIgnore White SpaceIgnore caseIgnore filter - %sIgnored*Immediate OperationsImport - %sImport from ClipboardImport to &MQIn &Current RevisionIn &Original RevisionIn All &HistoryIn Current &FileIn-Reply-To:Include all ancestorsInclude patch queueIncludes:Incoming BookmarksIncoming from %s aborted, ret %dIniparse must be installed.Initial revisionInsufficient access rights.InterruptedInvalid Settings - Please provide your ReviewBoard usernameInvalid Settings - The ReviewBoard server is not setupInvalid commandInvalid date formatInvalid glob expressionInvalid regexp expressionIssue LinkIssue TrackerIssue Tracker Plugin ErrorIssue TrackingItalicJapaneseKeep patch filesKeyword SearchKnown bad revision:Known good revision:KoreanLargefilesLeft ToolbarLicenseLineList Optio&nsList of all toolsList updated files (--verbose)Load &All RevisionsLoading repository %sLocal HostnameLocal Path:Local Repository %sLocal disks onlyLocal revision informationLocal signLocal tagLocation:Locked*LogLog Batch SizeLong SummaryMMQ &OptionsMQ Git FormatMQ QPushPushMQ QPushPush allMQ optionsMake repo compatible with Mercurial <1.7Manage HTTPS connection security and user authenticationManually resolve rejected chunks?Mark as &UnresolvedMark this chunk as resolved, goto next unresolvedMark this chunk as unresolvedMark this file as resolvedMark this file as unresolvedMatch TextMax ChangesMax Diff SizeMax FilesMenu BehaviorMercurial Re&solveMercurial UserMercurial command is still running. Are you sure you want to terminate?Mercurial was unable to find an editor. Please configure Mercurial to use an editor installed on your system.MergeMerge - %sMerge - allow to merge with local changesMerge changesetMerge from (other revision)Merge revision not specified or not foundMerge to (working directory)Merge using selected merge toolMerge with %sMerge with the other head of the current branchMerging...MessageMessage FontMessage Translation FailureMin Similarity: %d%%Missing informationModi&fy HistoryMonitor Repo ChangesMonitor working
                                                                                                            directory changesMoveMove all files leftMove all files rightMove changes between working dir and patchMove selected chunks leftMove selected chunks rightMove selected file leftMove selected file rightMoved tag %s to changeset %s (from changeset %s)NameName associated with commits. The common format is:
                                                                                                            Full Name <email@example.com>Name or email address of the person in charge of the repository.Named branch "%s" already exists, last used in revision %d New &GroupNew &WorkbenchNew Branch: New Commit PhaseNew GroupNew Name:New Patch BranchNew RepositoryNew ShelfNew Tool ...New file createdNew hookNew patch message:New patch queue nameNew shelf createdNextNext DiffNext diffNo DatesNo appropriate filesNo backup (-n/--nobackup)No branch changesNo chunks remainNo commitNo deletable chunksNo diff tool foundNo editor foundNo file changesNo files checkedNo files found for this operationNo files selectedNo files to findNo host specifiedNo ignored files foundNo incoming changesets from %sNo issue link was found in the commit message. The commit message should contain an issue link. Configure this in the 'Issue Tracking' section of the settings.No items to displayNo matches foundNo merge conflicts, ready to commitNo merge conflicts, ready to commit or reviewNo modified files checkmarked for commitNo outgoing changesetsNo outgoing changesets to %sNo patch branch selectedNo remote repository URL or path setNo repository foundNo shell configuredNo trash files foundNo unknown files foundNo username configuredNo visual diff tools were detectedNo visual editor configuredNone - simply pull changesetsNordicNot a Mercurial subrepo, not previewableNot a head revision!Not a head, backout will create a new head!Nothing CommittedNothing changed.Nothing to importOKOnly consider deleted filesOnly files modified/created in this revisionOnto destinationOpenOpen &TerminalOpen S&ubrepositoryOpen a new named branchOpen a shell terminal in the repository rootOpen a shell terminal in the selected folderOpen advanced query editorOpen all repositories in new tabsOpen hgweb configOpen new tabs next to the current tabOpen parent folder of current file in the system file managerOpen shelve toolOpen the repository in a file browserOpen the repository in a new tabOpen the selected folder in the system file managerOpen the selected subrepositoryOptionsOptions:Or use:Original Parent:Other revision informationOutgoing BookmarksOutgoing aborted, ret %dOutgoing to %s aborted, ret %dOutput FontP&ull BookmarkP&ushParent 1:Parent 2:Parent:ParentsPasswordPassword:Paste &FilenamesPatch Branch ToolbarPatch EOLPatch Files (*.patch)Patch Name RequiredPatch QueuePatch date:Patch exportedPatch failed to applyPatch files (*.diff *.patch)Patch files already existPatch fold - %sPatch message:Patch name:Patch user:Patch:Patch: %sPatches exportedPatches to foldPathPath Edit ToolbarPath:Paths in Repository Settings:PatternsPlace Console in Doc&k AreaPlain, do not prepend Hg headerPlease configure a visual editor.Please enter a usernamePlease enter commit messagePlease report this bug to our bug trackerPlease set a valid URL to continue.Please wait while committing merged files.Please wait while making backout.Please wait while the file is opened ...Please wait...PopPop allPortPort to connect to on mail server. Default: 25Port to listen onPort:Post Pull BehaviorPost Pull: Prepare to backoutPrepare to mergePrevPreviewPreview:Previous DiffPrevious diffProxyPullPull from %s aborted, ret %dPull from %s completedPull incoming changesPull incoming changes from %sPull incoming changes from selected URLPull incoming changesets into your repositoryPull to here...Pulled remote bookmark: %sPulling from %s...PurgePurge Patch QueuePus&hPush &AllPush After CommitPush After Commit:Push Requires SSLPush Selected &BranchPush allPush current branch (%s)Push outgoing changesPush outgoing changes to %sPush outgoing changes to selected URLPush to %s abortedPush to %s aborted, ret %dPush to %s completedPush to &HerePush to remote repository %s ?Pushed local bookmark: %sPushing to %s...QRefreshQueryQuitR&emove BookmarkR&epository Registry OptionsR&ollback/Undo...Re&coverRe&move VersionedRe&move from RegistryRe&nameRe&name Patch...Re&name...Readonly*Ready to purge.Rebase - rebase local commits above pulled changesRebase - use rebase extension (rebase is not active!)Rebase abortedRebase already in progressRebase changeset and descendantsRebase failedRebase is completeRecurse into subrepositoriesRecurse into subrepositories (--subrepos)RefreshRefresh &Task TabRefresh ToolbarRefresh current patchRefresh current repositoryRefresh file listRefresh only the current task tabRefresh the Repository Registry listRegexpRegexp:Regular expression search patternReject incoming changesetsRelated Paths:ReloadRemo&ve Subrepository...Remote command:RemoveRemove &All Selected FilesRemove &Unmodified FilesRemove Files...Remove current working revision?Remove files from version controlRemove filter, show rootRemove patches from queue?Remove selected deleted files?Remove the node and all its subnodes. Repositories are not deleted from disk.Remove the selected repository?Remove this subrepository from the current revisionRemoved local bookmark: %sRemoved remote bookmark: %sRemoved tag %sRenameRename - %sRename ErrorRename FileRename Patch QueueRename file or directoryRename patch %s to:Rename patch queue '%s' toRename patch...Reopen last closed tabReopen last closed tab groupReplaceReplace existing hook?Replace existing tag (-f/--force)Replace the existing patch files. Report only the first match per fileRepositoriesRepositoryRepository ErrorRepository ID:Repository RegistryRepository Registry updatedRepository SettingsRepository command still runningRepository is lockedRepository not localRepository status & changesResolve Conflicts - %sResolved conflictsRestart &BranchRestart Mer&geRestart Merge &withRestart all TortoiseHg applications for the following changes to take effect:RevRevertRevert - %sRevert Files...Revert all file changes?Revert all files to this revisionRevert all working copy changes?Revert file changesRevert file(s) to contents at this revisionRevert files to local or other parent?Revert local file changes?Revert the following files?Revert to RevisionReverting p4 changelist...Review ID:RevisionRevision #%d (%s) was exported to:

                                                                                                            %s%s%sRevision &DetailsRevision details context menuRevision has changed to:Revision is &BadRevision is &GoodRevision:Right ToolbarRollback commit to revision %dRollback to revision %d (undo %s)?Running at %sRunning...RussianS&ync ToolbarS&ynchronizeSMTP HostSMTP PasswordSMTP PortSMTP UsernameSSH CommandSSL error: %sSSL: Server certificate verify failedSSL: unknown error %s:%sSaveSave GlobalSave Open Repositories on E&xitSave PathSave changes before editing?Save current URL under an aliasSave error report toSave file toSave hgweb configSave in RepoScan &Remote RepositoriesSearchSearch HistorySearch Selected TextSearch already in progressSearch file revisions for patternsSearch in All &HistorySearchingSearching...Secure HTTPS ConnectionSecuritySecurity: Select &AllSelect &NoneSelect Destination FileSelect Destination FolderSelect Directory containing patchesSelect RepositorySelect Source FileSelect Source FolderSelect Tool:Select a GUI location to edit:Select branch of merge commitSelect bundle fileSelect destination repositorySelect patch folderSelect patchesSelect post-pull operation for this repositorySelect repository directory to addSelect repository directory to openSelect source repositorySelect the initial widget that will be shown when opening a repository. Default: revdetailsSelect the toolbar or menu to changeSend &EmailSend changesets as Hg patchesSend single binary bundle, not patchesSending EmailServerServer Repository IDSet Date:Set username:Settin&gsSettingsSettings File:Several icons are courtesy of the TortoiseSVN and Tango projectsSh&ow Repository RegistryShelfShelf clearedShelf deletedShelf: %sShellShelve - move local changes to a patchShelve ChangesShow &AuthorShow &DateShow &Patch QueueShow &PathsShow &RevisionShow About DialogShow Conso&leShow DetailShow FunctionShow IconShow IssuesShow Issues...Show LogShow Output LogShow Revision &DetailsShow S&hort PathsShow a full directory path of the repository in the dialog title instead of just the root directory name. Default: FalseShow allShow all version-controlled files in tree viewShow changes from first parentShow changes from second parentShow files changed by this commitShow tabs along the side of the bottom half of each repo widget allowing one to switch task tabs without using the toolbar. Default: offShow the history of the selected fileShow/Hide hidden changesetsSig&n...Sign - %sSign even if the sigfile is modified (-f/--force)Signature has been addedSingle Workbench WindowSize (KB)Skip final confirmation page, close after commit.Skipping %s, unable to readSort by &NameSort by &PathSort the group by full pathSourceSource:South-Eastern EuropeSouthern EuropeSpecify name of new shelfSpecify your preferred user interface language (restart needed)StartStart a new patch branchStart revision:Start web server for this repositoryStatStatusStatus File List ToolbarStatus:StopStop current operationStoppedStrikeStrip - %sStrip:StripesStripping Mercurial header removes username and parent information. Only useful if recipient is not using Mercurial (and does not like to see the headers).StyleSub menu items:Subject:Subrepo added to .hgsub fileSubrepo created and set to initial revision.Subrepo initialized to revision:Subrepo may be damaged or inaccessible.Subrepo removed from repository.Subrepo state is:Subrepo was not changed.Subrepository already existsSubrepository not foundSubrepository not found in the working directory.SuccessSuggested length of commit message lines. A red vertical line will mark this length. CTRL-E will reflow the current paragraph to the specified line length. Default: 80Summary (first description line)Summary Line LengthSummary:Swap source and destinationSyncSync BookmarksSynchronizeSynchronize with remote repositorySyntax HighlightingSystem CacheTab WidthTag '%s' has been addedTag '%s' has been movedTag '%s' has been removedTag - %sTag:Tags:Take &OtherTar archive compressed using bzip2Tar archive compressed using gzipTar archivesTarget:Task TabsTask Toolbar OrderTaskbarTemporary files are removed when this dialog is closedTerminated by userTest this revision and report findings. (good/bad/skip)Text files (*.txt)Textual description of the repository's purpose or contents.ThaiThe changes from revision %s and all unmerged parents will be discarded. Are you sure this is what you want to do?The command "%s" could not be executed.The command "%s" failed (code %d).The destination "%s" already exists as a file!The destination "%s" already exists as a folder!The destination must be within the repository tree.The directory "%s" is not empty! Do you want to overwrite it?The exception error message was:

                                                                                                            %s

                                                                                                            The file "%s" already exists! Do you want to overwrite it?The hook name cannot contain any spaces, tabs or '=' characters.The hook name. It cannot contain spaces.The maximum size file (in KB) that TortoiseHg will show changes for in the changelog, status, and commit windows. A value of zero implies no limit. Default: 1024 (1MB)The named bookmark or all bookmarks.The named tag or all tags.The number of revisions to read and display in the changelog viewer in a single batch. Default: 500The selected command is emptyThe selected repository:

                                                                                                            %s

                                                                                                            cannot be open!The source must be within the repository tree.The subrepository is dirty.The tool name cannot have any spaces in it.The tool name. It cannot contain spaces.The working directory is already merged. Continue or discard existing merge.There are merge conflicts to be resolvedThere are no configured sync paths. Open the Synchronize tab to configure them.There are no conflicting file merges.There are no file changes to viewThere are no files that may have been renamedThere is already an existing folder with that same name.There is an existing %s.%s hook. Do you want to replace it?There is no rollback transaction availableThis error will not be shown again until you restart the workbenchThree-way Merge ToolToTo finish merging, you must commit the working directory. To cancel the merge you can update to one of the merge parent revisions.To:Toggle display of text search barToggle parent to be used as the base revisionTool &ResolveTool labelTool launch failureTool nameToolsTools shown on selected locationTooltipTop menu items:TortoiseHg Bookmark SyncTortoiseHg Bug ReportTortoiseHg Command DialogTortoiseHg CommitTortoiseHg Dialogs (version %s), Mercurial (version %s) TortoiseHg ErrorTortoiseHg PromptTortoiseHg SearchTortoiseHg SettingsTortoiseHg Web ServerTortoiseHg WorkbenchTortoiseHg has created a new .hgignore file. Would you like to add this file to the source code control repository?Traditional ChineseTry refreshing your repository.TurkishTypeU&nbundle...UI LanguageURLError: %sUkrainianUnable to backoutUnable to compress historyUnable to create a Mercurial.ini fileUnable to create a config fileUnable to find changesetUnable to mergeUnable to merge chunksUnable to parse p4pending outputUnable to read repository statusUnable to removeUnable to remove URLUnable to remove file %s, permission deniedUnable to save an URLUnable to save authenticationUnable to save auto include listUnable to save usernameUnable to show subrepository filesUnable to start the following command:Unable to update repository nameUnable to write .hgignore fileUnable to write configuration fileUnable to write diff fileUnapply all patchesUnapply one patchUnbundleUncheckUncheck all filesUncommited merge - please select a parent revisionUncompressed tar archiveUncompressed zip archiveUnderlineUndo close other tabsUndo close tabUndo last commit?Undo last transaction?UnicodeUnified ChineseUnknown revision!Unresolved conflictsUnresolved conflicts remain. Are you sure?Unsaved changes will be lost. Do you want to reload?Unsupported repository type (%s)UnversionedUpdateUpdate - %sUpdate - pull, then try to updateUpdate IconsUpdate ReviewUpdate icons for this repositoryUpdate to:Update working directoryUpdate working directory or switch revisionsUpdate...Updating repository registryUpgrading to a more recent TortoiseHg is recommended.Use English backout messageUse English commit messageUse compact viewUse current dateUse custom commit message:Use extended (git) patch formatUse git extended diff header format. Default: FalseUse proxy serverUse pull protocol to copy metadataUserUser CacheUser:UsernameVerify backout revision and ensure your working directory is clean.Verify merge targets and ensure your working directory is clean.Vi&ew FileVietnameseView File atView change as unified diff outputView change history in repositoryView change history of selected filesView change in context of fileView changes using GUI diff toolView file changes in external diff toolView the repository's settingsVisual DiffVisual Diff ToolVisual Diff...Visual Diffs - Visual EditorVisual diff between resolved file and first parentVisual diff between resolved file and second parentVisual diff...Visual three-way diffWarningWarning: affects all Tortoises, logoff required after changeWeb ServerWestern EuropeWhat do you want to do? When enabled, automatically show the Output Log when the command is run. Default: False.Which template map style to useWhite&spaceWork on patch queue (--mq)WorkbenchWorkbench Log ColumnsWorkbench custom toolbarWorking CopyWorking DirectoryWorking Directory (merged)Working directoryWorking directory is not clean! View changes...Working directory statusWrap searchWrite bundleWrite diff fileYou can visit our site hereYou cannot merge a revision with itselfYou likely need to refresh this applicationYou may continue the compressYou may continue the rebaseYou must enter a patch nameYou must identify yourself to MercurialYou must set a command to run.You must set a tool name.You must set a valid hook type.Your TortoiseHg is up to date.Your current working revision (%d) will be removed by this rollback, leaving uncommitted changes. Continue?Zip archive compressed using deflateZip archives[Code: %d][WARNING] Invalid subrepo revision ID: %s [command completed successfully %s][command interrupted %s][command returned code %d %%s][command terminated by user %s][non-existant][working copy]a revision to sendabort: abort: %s abort: %s! action buttonCommitadd diffstat output to messagesaddedattachbasic commands: bodybookmark: branch: bundle file to previewcan not read file "%s". Ignored. changeset: %schangeset: %s (not found on subrepository)cleanclone only the specified branchcolumn headerAgecolumn headerAuthorcolumn headerBranchcolumn headerChangescolumn headerDescriptioncolumn headerFilenamecolumn headerGraphcolumn headerLatest tagscolumn headerLocal Timecolumn headerNodecolumn headerPhasecolumn headerTagscolumn headerUTC Timecommand parse error: %sconfig itemCommitdefaultdiscard uncommitted changes (no backup)display help and exitdo not back up stripped revisionsenable additional outputeol is incompatible with win32texterror while running command exec mode has been setexec mode has been unsetfailed to start command file has been deleted, refreshfile has been modified, refreshfilesfilesAllfilesNonefilterglobal options:grep: invalid match pattern: %s hgsubversion is incompatible with perfarcehint: historyignore case during searchignoredimport to the patch queue (MQ)in the futureinlineinotify is not supported on this platforminvalid "hello" message: %rkeep original branch nameslaunch visual diff toollist of commands: localmake the tag localmissingmodifiedmust be specified 'type' in stylemust be specified repositoryneeds merge with %s no "runcommand" capabilityno commands defined no matches found: %sno outgoing changesetsno outgoing changesets in current branch (%s) / %d in totalno outgoing changesets up to current revision (#%d) / %d in totalno outgoing changesets up to revision #%d / %d in totalnowopen a new workbench windowopen the bookmark sync windowopen...options: password: perfarce is incompatible with hgsubversionprocess exited unexpectedly with code %dremove a tagremove the status cacheremove working directoryremovedreplace existing tagrepository %s not foundrevision to backoutrevision to striprevisions %d:%s to %d:%sselected filessend patches as attachmentssend patches as inline attachmentssend patches as part of the email bodyshow ignored filesshow the contents of the status cache (no update)start debuggerstart progressCommitstart progressRollbackstatussubreposync command already runningtab tooltipCommittab tooltipPatch Branchtab tooltipRevision detailstab tooltipSearchtab tooltipSynchronizethe clone will include an empty working copy (only a repository)thg: command '%s' is ambiguous: %s thg: unknown command '%s' timed out waiting for messagetimed out while reading: %r...unknownunknown revision!use "thg -v help %s" to show global optionsuse "thg -v help%s" to show aliases and global optionsuse "thg help" for the full list of commandsuse "thg help" for the full list of commands or "thg -v" for detailsuse pull protocol to copy metadataversion %swill be closedwin32text is incompatible with eolwindow titleCommitwith Mercurial-%s, Python-%s, PyQt-%s, Qt-%sworking dir stateCleanwrap mode&NoneProject-Id-Version: tortoisehg Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2019-07-16 12:01-0300 PO-Revision-Date: 2015-09-16 10:35+0000 Last-Translator: leolarrel Wang Language-Team: Traditional Chinese MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; X-Launchpad-Export-Date: 2019-07-17 05:46+0000 X-Generator: Launchpad (build 19009) 別名: %s (預設: %s) (從%s複製) (是一個符號連結) (不受版本控管) (已從%s更名) (已被新增) (已被新增,現在遺失了) (已被刪除了) 過濾器"%s" 不是一個資料夾%s 不是一個有效的目錄"%s"從路徑history移除了"%s"從搜尋history移除了### 過濾條件文字 ###### 補丁名字 ###### 正規表示式 ###### 正規表示式搜尋樣式 ###### 修訂版查詢 ###%符合%d 天有%d個需要合併衝突的檔案要解決%d個檔案在兩個分支都被改過,得要解決衝突%d 小時找到%d個符合的%d 分%d 月%d 個可被推送的變更集%d個可被推送的變更集到%s%d個補丁已經匯出到

                                                                                                            %s%d 秒%d 週%d 年%s (提示: %s)%s - 修訂版細節 (%s)%s - TortoiseHg工作台%s - TortoiseHg工作台 - %s%s - 分支操作%s - 提交%s - 提交選項%s - 徹底清除%s - 復原儲存庫%s - 狀態%s - 同步選項%s - 驗證儲存庫%s : %s%s <可拉收>%s 已經存在,取代URL?%s 和 %s 有相同的內容 %s已新增%s 被忽略%s 已經修改了%s 不是一個有效的儲存庫%s 沒有被修改(乾淨的)%s 沒有被追蹤(未知的)%s 被移除了%s 補丁%s 儲存庫設定%s 將被匯入到 %s 的全域設定關於TortoiseHg(&A)加入(&A)增加儲存庫(&A)在縮排之後(&A)封存(&A)封存(&A)...自動(&A)自動偵測(&A)自動完成(&A)回退(&B)...分支(&B)瀏覽(&B)...包裹此修訂版跟其衍生(&B)...取消(&C)字元(&C)清除(&C)拓製(&C)關閉(&C)關閉儲存庫(&C)提交(&C)提交到目前分支(&C)複製(&C)複製補丁(&C)複製(&C)...自訂工具列(&C)刪除(&D)刪除補丁(&D)...刪除沒有受版本控管的檔案(&D)...跟其他做差異比對跟母系做差異比對(&D)丟棄(&D)放棄變更(&D)停駐工具列(&D)編輯檔案(&E)編輯本地(&E)編輯工具列(&E)編輯(&E)…編輯器選項(&E)郵寄補丁(&E)...離開(&E)檔案(&F)過濾器工具列(&F)完成補丁(&F)忘記(&F)前往(更新工作目錄)(&G)前往修訂版(&G)...說明(&H)忽略(&I)匯入(&I)匯入補丁(&I)檢查可拉收的(&I)隱藏(&I)保留(&K)(--keep)授權(&L)本地(&L)標示為已解決(&M)標示為未解決(&M)標示為已解決符合(&M)合併(&M)跟本地做合併(&M)合併(&M)...搬移(&M)新增儲存庫(&N)...否(&N)不要(放棄變更)(&N)開啟(&O)開啟全部(&O)開啟本地(&O)開啟儲存庫(&O)...原始修訂版(&O)其它(&O)檢查可推送的(&O)母系修訂版(&P)母系修訂版(%d)(&P)補丁分支(&P)拉收(&P)徹底清除(&P)...推送書籤(&P)重新整理(&R)重新整理儲存庫列表(&R)遠端更新(&R)...移除(&R)移除書籤(&R)移除(&R)…取代(&R)儲存庫(&R)解決衝突(&R)...復原(&R)復原到修訂版(&R)...&復原並且備份復原(&R)...執行(&R)儲存(&S)在修訂版中儲存(&S)啟動時掃描儲存庫(&S)搜尋(&S)在目前的檔案裡面搜尋設定(&S)...設定(&S)擱置(&S)擱置(&S)...簽名(&S)略過此修訂版(&S)依.hgsub排序空格(&S)剝除(&S)剝除(&S)...同步書籤(&S)...插入TAB(&T)標籤(&T)...選取本地(&T)任務工具列(&T)終端機(&T)反套用補丁(&U)更新(&U)更新(&U)...驗證(&V)檢視(&V)檢視變更集(&V)檢視遺失的檔案(&V)在修訂版中檢視(&V)顯示(V)單字(&W)工作台工具列(&W)自動斷行(&W)好的(&Y)(是一個修改過且髒的子儲存庫)(是一個改變過的子儲存庫)(是一個髒的子儲存庫)(是一個新的且髒的子儲存庫)(是一個新的子儲存庫)(是一個被移除的子儲存庫)(是一個未改變的子儲存庫)(沒有說明)(跟母系一樣)*:未被TortoiseHg使用,已解決的合併,未解決的合併三方差異比對(&W)三方目錄差異比對開啟設定工具...%d 變更集 將會被剝除加註:符合的候選人從來源到目的地的差異主機: %s忽略過濾器剖析錯誤!儲存庫細節:以下列修訂版的內容復原%s?選擇的選項:選擇的選項: %s偵測到有未提交的本地工作複本變更未知的修訂版!未加入版本追蹤的檔案未被追蹤的檔案網頁伺服器:<預設圖示><預設><未指定>=工作目錄的上層目錄=一個"%s"書籤已經存在一個新的TortoiseHg版本(%s)可以下載了一個修訂版,書籤,標籤,或分支名稱此擱置檔名已經存在擱置檔名不能包含%s必須要配置一個命令列終端機程式新增子儲存庫(&d)中止退出匯出的操作 關於關於Qt(&Q)關於 TortoiseHg接受接受所有的符合項目接受選擇的符合項目接受本地工作複本的檔案版本(你的)接受其他檔案版本(他們的)正在作用的書籤有作用的書籤?活動的:新增增加大型檔案(&L)增加大檔案(&L)...加入檔案...新增路徑至伺服器新增儲存庫到這個群組以大型檔案方式加入(&L)以一般檔案形式加入(&N)加入檔案到版本控制新增忽略篩選器新增已選擇的未追蹤檔案嗎?新增分隔棒加入列表已新增增加%s標籤給%s變更集拉收操作之後時間:別名所有歷史所有有衝突的檔案將被標示為未解決全部的衝突都被解決了所有內容所有檔案 (*)所有項目所有修訂版允許推送允許新分支的推送(--new-branch)允許推送成新分支(--new-branch)總是合併(盡可能的)總是顯示儲存庫分頁,就算是目前只有一個儲存庫也一樣.預設:False修改修改目前的修訂版更新儲存庫 hgrc 檔 (%s) 時出現錯誤載入

                                                                                                            "%s"

                                                                                                            子儲存庫時發生了例外狀況加註檔案(&F)加註選項(&t)加註修訂版號套用格式(&l)加入附加變更到存在的補丁檔 打入補丁套用所有補丁離開前要套用變更嗎?套用一個補丁只套用此補丁套用至原始母系套用補丁阿拉伯文封存 - %s封存格式封存類型:你確定你想取消提交嗎?你真的確定想刪除這些檔案(跟目錄)?你想去覆寫它嗎您確定嗎?詢問使用者名字作者作者色彩自動提交清單自動展開列表自動引入:合併時自動解決衝突回退和合併完成後自動前進到下一個頁面。合併完成時自動到下一頁在可能情況下自動解決合併衝突上一個回退的變更集: 回退母系修訂版是一個單步操作回退並提交...回退中,然後合併...回退 - %s回退變更集回退需要一個母系修訂版回退修訂版用 Backspace 鍵 或 Del 鍵 來移除行波羅的海語系密件回退之前,你必須 提交, 擱置 到補丁,或 丟棄變更。開始合併之前,你必須提交, 擱置到補丁,或放棄變更粗體書籤(&k)...書籤('%s')不存在"%s"書籤已經被新增了"%s"書籤已經被搬移"%s"書籤已經被移除"%s"書籤已經被重新命名成"%s"書籤 - %s"%s"書籤不存在書籤:分支分支顏色分支:分支: 瀏覽此修訂版(&w)瀏覽目錄...瀏覽...包裹DAG範圍...包裹檔(*.hg)包裹以二進位檔案型式儲存完整的變更集,上游使用者可以從此檔案拉收.這是一個把變更傳給他人最安全的辦法Bzip2 tar 封存選擇紀錄的欄位(&h)...配置格式(&C)命令行編輯器找不到修訂版 '%s'取消不能增加子儲存庫不能在不同的分支中回退變更不能匯出修訂版不能匯出%s修訂版到這個檔案: %s 無法匯入選擇的修訂版不能開啟Plugin選項對話框不能開啟非Mercurial的儲存庫或子儲存庫不能開啟儲存庫不能開啟.hgsub在:

                                                                                                            %s不能開始一個新的搜尋副本副本:塞爾特語中歐與東歐變更階段至(&P)變更紀錄字型變更已經被移動,你現在就要提交將於下次提交時生效連結變更集變更集是一個合併變更集變更集是一個已命名的分支標頭變更集被關閉了變更集已被標籤變更:變更集勾選檢查所有檔案檢查可拉收的變更集從 %s 那邊檢查可拉收的變更集從選擇的URL那邊檢查可拉收的變更集檢查中檢查更新...正在檢查工作目錄狀態...檢查中...下層:選擇區塊: %d/%d清除紀錄(&r)乾淨的清除清除擱置檔%s的內容?清除目前的查詢跟查詢文字清除目前的擱置檔拓製儲存庫(&e)...拓製(&e)拓製 - %s拓製儲存庫拓製修訂版:拓製...關閉關閉 %s 分支提交後關閉關閉的分支: 關閉目前分支關閉其他分頁關閉分頁每一次成功提交後關閉提交工具: 預設: False關閉:比較檔案修訂版依作者以顏色區分變更。預設:否命令指令錯誤命令輸出提交提交對話框工具列稍候提交馬上提交提交選項提交回退並合併提交變更提交變更進儲存庫提交內容選單提交合併結果提交訊息提交...提交中...比對選擇的檔案的修訂版與第一母系比較(&1)與第二母系比較(&2)從補丁中完整的移除檔案?壓縮壓縮 - %s壓縮歷史...設定檔:設定自訂工具配置檔案總管外掛設置掛勾設定問題追蹤系統配置儲存庫設定配置使用者域設定確認新增確認分支改變確認刪除確認刪除沒有受版本控管的檔案確認丟棄確認放棄變更確認丟棄訊息確認離開確認新分支確認覆蓋確認推送確認要推送到遠端儲存庫確認重新載入確認移除確認復原確認儲存確認剝除確認URL取代確認復原確認更新確認新增未知的檔案確認刪除檔案確認檔案刪除確認切換補丁佇列確認刪除路徑連線到Review Board...聯繫內容選單轉換一個存在的儲存庫成為子儲存庫從哪邊轉換複製複製Hash值(&H)複製路徑(&P)複製 - %s複製錯誤複製檔案絕對路徑到剪貼簿複製訊息複製常用提交訊息中的一個複製來源 -> 目的地複製儲存庫的根路徑到剪貼簿不能取得子儲存庫列表不能打開一些子儲存庫建立建立分支(&B)建立補丁序列在這裡建立儲存庫建立新群組建立一個新的補丁建立一個新的儲存庫從來源建立拓製到這裡用可被推送的變更集建立diff這次提交時要建立新的"%s"分支嗎? 找到元兇目前的本地工作複本所在的修訂版自訂工具列設定(&S)自訂工具斯拉夫語系日期日期:偵測更名(&t)取消目前書籤的作用嗎?死亡的分支預設視窗元件刪除在.hg/Trashcan 刪除 %d個檔案刪除 %d 個忽略的檔案刪除 %d 個未知的檔案從你的儲存庫設定檔裡刪除%s ?刪除補丁序列刪除工具刪除空的目錄從列表刪除刪除掛勾刪除補丁...刪除選擇的區塊刪除選擇的補丁把選擇的查詢從歷史裡刪掉刪除擱置檔%s?刪除目前的擱置檔刪除下列未受版本控管的檔案嗎?已刪除 %d個檔案已刪除%d個檔案和%d個目錄刪除*刪除垃圾目錄中...刪除失敗拒絕推送描述目的目的地檔案已經存在目的端路徑目的地:在%s 偵測複製/更名偵測可被推送的變更集從 %s 那邊偵測可被推送的變更集從選擇的URL那邊檢查可推送的變更集偵測更名跟複製決定 合併/差異比對 工具:程式有偵測到本地副本有內容更動. 選擇以下選項之一來繼續 偵測沒有提交的本地工作複本變更決定當TortoiseHg推送變更集之前,是否要顯示確認視窗.如果是False,TortoiseHg推送變更集前不會顯示確認視窗.預設: True正在決定可被推送的變更集到Email差異比對字型差異比對工具列比對和加註差異內容差異沒有被顯示: 跟本地做差異比對跟母系進行差異比對目錄比對到p1目錄比對到p2目錄差異比對檔案的目錄放棄本地工作複本變更,不備份丟棄目前的回退訊息?放棄目前的提交訊息?放棄本地工作複本的變更(revert -all)放棄本地工作複本變更,不備份(-C/--clean)放棄本地工作複本的變更,不備份(-f/--force)放棄遠端變更,不備份(-C/--clean)顯示已關閉的分支只顯示命名的分支圖只顯示活動的分支顯示 %(count)d / %(total)d 項目DnD 同步在差異檔頭中不包含修改日期. 預設:否不能儲存備份檔(*.orig)不要剝除路徑(-p0),SVN補丁會用到不要對新的工作目錄進行更新無法驗證主機憑證你真的想啟動'%s'補丁佇列嗎?你真的想取消%s書籤的作用嗎?你想離開嗎?你想保留或放棄?用拖拉來改變順序重複的名稱編碼(&n)結束(&x)瀏覽(&x)瀏覽資料夾(&x)瀏覽本地(&x)瀏覽說明(&x)匯出(&x)匯出補丁(&x)...換行字元模式(&M)顯示換行字元(&V)編輯編輯檔案編輯忽略過濾清單編輯本地工作複本編輯路徑至伺服器編輯工具 ...在工作副本編輯目前的檔案編輯檔案編輯掛勾編輯補丁相依圖編輯儲存庫忽略篩選器編輯已解決的檔案啟動編輯器失敗電子郵件郵寄DAG範圍...郵寄選擇的...被使用在"From"標頭及SMTP信封中的Email位置Email可被推送的變更集到遠端儲存庫顯示除錯訊息(--debug)編碼英文訊息輸入行號 (1 - %d)輸入修訂版號碼錯誤發生錯誤正在執行"commit finished"觸發器時發生錯誤從Issue Tracker plugin取得提交訊息時發生錯誤載入子儲存庫時錯誤預覽子儲存庫錯誤:%s寫入檔案時發生錯誤排除:執行自訂工具 '%s'離開沒有完成衝突解決就離開?不建議離開一個未完成的rebase作業瀏覽額外套件設定匯出DAG範圍...匯出差異...匯出選擇的...匯出補丁擴充套件加入儲存庫失敗了增加子儲存庫失敗自訂工具執行失敗載入問題追蹤系統 '%s' 失敗 : %s載入問題追蹤系統失敗: '%s': %s. 不能在終端機中開啟此路徑開啟儲存庫失敗刷新失敗失敗!Fetch - 使用 fetch 自動合併拉收回來的變更檔案檔案歷史(&H)/標註檔案差異紀錄欄位檔案歷史檔案歷史紀錄欄位檔案列表工具列檔案狀態檔案狀態:檔案已經存在檔案衝突需要被解決檔案內容選單 (on manifest and revision details)是二進位檔檔案比描述的最大大小還要大 maxdiff= %s KB檔案可能是二進位檔(maximum line length exceeded)檔案或差異不被顯示: 檔案或差異沒有被顯示: 檔案比描述的最大大小還要大 maxdiff= %s KB檔名檔案過濾器歷史(&y)顯示/隱藏過濾器篩選:找尋更名找尋複製,和/或更名的來源找出符合 - %s從 %s 那邊尋找可被推送的變更集已完成旗標合併補丁...追蹤複製和更名變更紀錄窗格內資料的字型。預設:monospace 10顯示提交訊息用的字型.預設 monospace 10顯示輸出訊息用的字型.預設 sans 8顯示文字差異用的字型, 預設: monospace 10字型強制顯示儲存庫分頁強制推入或拉出(--force)強制推送或拉收(覆蓋安全檢查,--force)強制推送到遠端位置(-f/--force)忘記忘記檔案...下一個找到%d個可拉收的變更集從%s找尋可拉收的變更集寄件者寄件者:完整作者名完整路徑標題假如LANGUAGE或LANG 環境變數是設定成非英語的語言,就建立英文的提交訊息.這個設定將在合併,標籤,和回退對話框被使用.預設:False從%s取得可拉收的變更集Git 格式全域設定前去移至行號前往一個指定的修訂版前往目前的修訂版前往修訂版分支圖希臘文推測更名Gzip tar 封存HTTP 錯誤: %d (%s)標頭被關閉了!希伯來文Hg 命令:Hg 檔案紀錄檢視器 [%s] - %s隱藏詳細資料隱藏標籤在儲存庫外隱藏內容選單高亮度圖示掛勾類型掛勾主機郵件伺服器的Host名稱圖示圖示如果儲存庫沒有指定使用者名字(username),將會顯示輸入視窗讓使用者輸入名字. 預設:False假如你仍然有麻煩,請提出問題回報.忽略 忽略空白行忽略空格數量忽略空白忽略大小寫忽略過濾器 - %s忽略*立即施行匯入 - %s從剪貼簿匯入匯入到MQ(&M)在目前的修訂版(&C)在原本的修訂版(&O)在所有歷史(&H)在目前的檔案(&F)回覆至:包括所有的祖先引入補丁佇列包括:可拉收的書籤從%s那邊檢查可拉收的變更集失敗,返回碼%d需要安裝Iniparse初始化修訂版存取權限不對已中斷無效的設定 - 請給予你的ReviewBoard使用者名字無效的設定 - The ReviewBoard server 沒有設定無效的命令無效的日期格式錯誤的全域表達式無效的正規表示式問題連結問題追蹤系統問題追蹤系統插件錯誤問題追蹤斜體日文保留補丁檔關鍵字搜尋已知的不良修訂版已知的良好修訂版:韓文大檔案左邊工具列許可證行列表選項(n)列出所有工具列出被更新的檔案(--verbose)載入所有的修訂版(&A)載入 %s 儲存庫本機主機名稱本地路徑:本地儲存庫 %s只限本地磁碟本地修訂版資訊本地簽名本地標籤位置:鎖住*紀錄日誌批次大小支援長摘要修改MQ選項(&O)MQ git 格式推入全部推入MQ選項讓儲存庫相容於1.7版之前的Mercurial管理HTTPS連線安全以及使用者認證手動解決被拒絕的區塊?標示為未解決把這個區塊標誌成'已解決',前往下個未解決的把這個區塊標誌成未解決標示這個檔案為已解決標示這個檔案為未解決符合文字最大變更記錄最大Diff大小最大檔案選單行為以Mercurial解決(&s)Mercurial 使用者Mercurial命令還在執行 你真的想終止?Mercurial找不到一個文字編輯器,請設定Mercurial去使用一個安裝在你系統上的編輯器合併合併 - %s合併 - 允許跟本地工作複本變更作合併合併變更集合併從(其他修訂版)合併的修訂版沒有描述或找不到合併到(工作目錄)使用選擇的合併工具來合併和 %s 合併跟目前分支的其他標頭合併合併中...訊息訊息字型訊息轉譯失敗最小相似:%d%%遺失的資訊修改歷史紀錄(&f)監視儲存庫的改變監視工作目錄的改變搬移移動所有的檔案到左邊移動所有的檔案到右邊在工作目錄與補丁間移動變更移動選擇的區塊到左邊移動選擇的區塊到右邊移動選擇的檔案到左邊移動選擇的檔案到右邊移動標籤%s到%s變更集(從%s變更集)名字提交時用的名字.格式通常是
                                                                                                            Full Name <email@example.com>負責此儲存庫的人的姓名或Email"%s"命名分支已經存在.最後一次是在%d 修訂版被使用過 新的群組(&G)新工作台(&W)新分支: 新提交的階段新群組新名稱:新補丁分支新儲存庫建立新的擱置檔新增工具 ...新檔案被建立新掛勾新的補丁訊息:新的補丁佇列名字新的擱置檔已建立下一個下個差異下個差異沒有日期沒有適當的檔案不備份 (-n/--nobackup)分支沒有改變沒有區塊剩下了不提交沒有可刪除的區塊找不到差異比對工具找不到文字編輯器沒有檔案被變更沒有檔案被檢查這次操作沒找到檔案沒有選擇檔案找不到檔案沒有指定主機找不到忽略的檔案%s那邊沒有可拉收的變更集提交訊息裡面沒有問題連結.應該要有的,請到"設定"的'問題追蹤'頁面進行設定沒有項次可以顯示找不到符合的沒有合併衝突,可以提交沒有合併衝突,準備提交或預覽請勾選提交時要提交的檔案沒有可被推送的變更集從 %s 那邊沒有可被推送的變更集沒有選擇補丁分支沒有設定遠端儲存庫URL或路徑找不到儲存庫沒有配置命令列程式找不到垃圾檔案找不到未知的檔案沒有設定使用者名字偵測不到視覺化差異比對工具沒有視覺化編輯器的配置None - 只是簡單的拉收變更回來北歐語系不是一個Mercurial子儲存庫,不可預覽不是一個標頭修訂版(head revision)!不是HEAD修訂版,回退操作將會建立新的Head修訂版!沒有提交任何東西沒有東西被改變沒啥可匯入的確定只考慮刪除過得檔案僅當前修訂版中被修改/建立的檔案到目的地開啟開啟終端機(&T)開啟子儲存庫(&u)開啟一個新的命名分支 (named branch)在儲存庫的根目錄啟動終端機在選擇的目錄開啟終端機開啟進階查詢編輯器在新分頁開啟所有儲存庫開啟hgweb設定在目前分頁後開啟新的分頁用系統的檔案管理員開啟目前檔案所在的目錄開啟擱置工具在檔案瀏覽器開啟儲存庫用新分頁開啟儲存庫在系統檔案管理員開啟選擇的目錄開啟選擇的子儲存庫選項選項:Or 使用:原始母系:其他修訂版資訊可被推送的書籤檢查可被推送的變更集失敗,返回碼%d從%s檢查可被推送的變更集失敗,返回碼%d輸出字型拉收書籤(&u)推送(&u)母系 1:母系 2:母系:母系密碼密碼:貼上檔名(&F)補丁分支工具列補丁內容的換行字元補丁檔案 (*.patch)需要補丁名字補丁序列補丁日期:補丁匯出了套用補丁失敗補丁檔 (*.diff *.patch)補丁檔已經存在合併補丁 - %s補丁訊息:補丁名稱補丁使用者:補丁:補丁: %s補丁已匯出將合併的補丁路徑路徑編輯工具列路徑:在儲存庫設定檔裡的路徑:樣式(&k)把Console放在Dock區純的,沒有Hg標頭請配置一個視覺化編輯器請輸入一個使用者名字請輸入提交訊息請回報這個bug到我們bug tracker請選擇一個可用的URL來繼續正在提交合併的文件,請稍等...回退中,請稍等...請等待檔案被開啟請等一下…拉出全部拉出通訊埠連接郵件伺服器的埠號.預設: 25傾聽的埠號連接埠:推送後的行為拉收之後: 準備回退準備合併上一個預覽預覽:上個差異上個差異代理主機拉收從%s拉收中止了,返回 %d從%s拉收完成拉收可拉收的變更集從 %s 那邊拉收可拉收的變更集從選擇的URL那邊拉收可拉收的變更集拉收可拉收的變更集到你的儲存庫拉收到這裡...已經拉收的遠端書籤:%s正在從 %s 拉收中...徹底清除徹底清除補丁佇列推送(&h)推送全部(&A)提交後推送提交之後推送:推送需要SSL推送選擇的分支(&B)推送全部推送目前的分支(%s)推送可被推送的變更集從 %s 那邊推送可被推送的變更集從選擇的URL那邊推送可推送的變更集推送到 %s 終止了推送到 %s 終止了,返回 %d推送到 %s 完成了推送到這裡(&H)真的要推送到遠端儲存庫 %s 嗎?已經推送的本地書籤:%s推送到 %s ...QRefresh查詢結束移除書籤(&e)儲存庫登錄選項(&e)回退/復原(&o)復原(&c)移除受版本控管的檔案(&m)從儲存庫登錄中移除(&m)重新命名(&N)重新命名補丁(&n)重新命名(&n)...唯讀*準備做徹底清除Rebase - 把本地提交的修訂版 rebase 到 拉收變更的上面Rease - 使用rebase 擴充套件 (rebase 沒有啟動!)rebase中止Rebase 已經在處理中Rebase 變更集與其衍生rebase失敗rebase 完成了遞歸到子儲存庫裡面去遞迴到子儲存庫中(--subrepos)重新整理重新整理任務分頁(&T)重新整理工具列重新整理目前的補丁重新整理目前儲存庫重新整理檔案列表只重新整理目前的任務分頁重新整理儲存庫登錄列表正規表示正規表示式:正規表示式查詢樣式Reject可拉收的變更集相關的路徑:重新載入移除子儲存庫(&v) ...遠端命令:移除移除所有選擇的檔案(&A)移除未修改的檔案(&U)移除檔案...移除目前的工作修訂版?從版本控制中移除檔案移除過濾器,顯示最上層從佇列移除補丁嗎?移除已選擇的刪除檔案嗎?刪除此節點與其子節點,儲存庫並不會從磁碟中刪除移除選擇的儲存庫?從目前的修訂版移除子儲存庫已經移除的本地書籤:%s已經移除的遠端書籤:%s移除%s標籤更名重新命名 - %s重新命名錯誤檔案更名重新命名補丁佇列檔案或目錄更名重新命名補丁 %s成重新命名'%s'補丁佇列成補丁更名...重新開啟最後關閉的分頁重新開啟最後關閉的分頁群組取代置換存在的掛勾?取代已存在的標籤(-f/--force)取代存在的補丁檔 只回報每個檔案第一個符合的儲存庫儲存庫儲存庫錯誤儲存庫ID:儲存庫登錄儲存庫登錄已被更新儲存庫設定儲存庫命令還在執行儲存庫被鎖住儲存庫不是本地的儲存庫的狀態與變更解決衝突 - %s已解決的衝突分支重新開始(&B)重新開始合併(&g)重新開始合併與(&w)請重新啟動TortoiseHg 成是讓以下更動可以生效 :修訂復原復原 - %s復原檔案...復原所有檔案變更?復原所有檔案到這個修訂版復原所有工作複本的變更嗎?復原檔案變更復原檔案到這個修訂版的內容復原檔案到本地工作複本或其他的母系?復原本地工作複本的檔案變更?復原下列檔案?復原到修訂版復原p4 變更列表中...預覽 ID:修訂版修訂版 #%d (%s) 已經匯出到:

                                                                                                            %s%s%s修訂版細節(&D)修訂版詳細內容選單修訂版已被變更到:此修訂版不良(&B)此修訂版良好(&G)修訂版:右邊工具欄回退提交到%d修訂版回退到%d修訂版(復原%s)?執行於%s執行中...俄文同步工具列(&S)同步化(&y)SMTP 主機SMTP 密碼SMTP 通訊埠SMTP 使用者SSH命令SSL 錯誤: %sSSL:伺服器憑證驗證失敗SSL: 未知的錯誤 %s:%s儲存儲存成全域結束時儲存已開啟的儲存庫(&x)儲存路徑編輯前儲存變更?用一個別名把目前的URL儲存起來儲存錯誤報告至儲存檔案至儲存hgweb設定儲存在Repo掃描遠端儲存庫(&R)搜尋搜尋歷史搜尋選擇的文字搜尋已經在進行依樣式搜尋檔案修訂在所有的歷史裡面搜尋搜尋中...搜尋中...加密的HTTPS連線安全安全性: 全選(&A)全不選(&N)選擇目的檔案選擇目的資料夾選擇包含補丁的目錄選擇儲存庫選擇來源檔選擇來源目錄選擇工具:選擇一個GUI工具列來編輯選擇要合併的分支選擇包裹檔選擇目的地儲存庫選擇目錄資料夾選擇補丁選擇此儲存庫拉收後的動作選擇要加入的儲存庫目錄選擇儲存庫目錄來開啟選擇來源儲存庫開啟儲存庫時首先出現的視窗元件。預設:revdetails選一個工具列或選單來改變傳送電子郵件(&E)用Hg補丁的方式傳送變更集傳送單一二進位包裹,而不是補丁傳送電子郵件中...伺服器伺服器儲存庫ID設定日期:設定使用者名字:設定(&g)設定設定檔:許多圖示是由TortoiseSVN及Tango projects 所提供顯示儲存庫紀錄(&o)擱置擱置檔已清除擱置檔已刪除擱置: %s命令列(shell)擱置-把目前工作副本中未提交的修改先暫放到一個補丁擱置變更顯示作者(&A)顯示日期(&D)顯示補丁佇列(&P)顯示路徑(&P)顯示修訂版(&R)顯示關於對話框顯示Console(&l)顯示詳細資料顯示函式顯示圖示顯示問題顯示問題...顯示紀錄顯示輸出紀錄顯示修訂版詳細資訊(&D)顯示短路徑(&h)在對話框標題列上顯示儲存庫的完整路徑,而非只顯示最上層路徑。預設:False顯示全部在樹狀顯示區內顯示所有被版本控制的檔案從第一個母系開始顯示變更從第二個母系開始顯示變更顯示被此次提交所改變的檔案將任務工具列的按鈕化成儲存庫畫面上的分頁標籤,你就不再需要任務工具列。預設:off顯示選擇檔案的歷史顯示/隱藏被隱藏的變更集簽名(&n)...簽名 - %s即使簽名檔已被修改,仍然加註簽名 (-f/--force)簽名已被加入單一工作台視窗大小 (KB)提交後關閉,跳過最後的確認頁。正在略過 %s,因為不能讀取依名字排序依路徑排序用完整路徑去排序群組來源來源:東南歐語系南歐指定新的擱置檔名請描述你喜愛的使用者介面語言(需要重新啟動)啟動開始一個新的補丁分支開始修訂版:在這個儲存庫啟動網頁伺服器狀態狀態狀態檔列表工具列狀態:停止停止目前的操作已停止刪除線剝除 - %s剝除:剝除把Mercurial header 裡的使用者名稱跟母系資訊剝除掉.這是使用在收件人不是使用Mercurial(或是不想讓人看到).樣式子選單項目:主題:子儲存庫已加至.hgsub檔案中子儲存庫建立了而且設定成初始修訂版子儲存庫初始畫到修訂版:子儲存庫損毀或不可存取從儲存庫裡移除子儲存庫子儲存庫狀態是:子儲存庫沒有改變.子儲存庫已經存在找不到子儲存庫在工作目錄裡找不到子儲存庫成功提交訊息行建議的長度.一個紅色的垂直線將會標記出來.CTRL-E 將重排當前段落到指定的行的長度.預設: 80摘要(描述的第一行)摘要行數摘要:來源跟目的交換同步化同步書籤同步與遠端儲存庫同步語法高亮度顯示系統快取Tab 字元寬度標籤'%s'已經增加了標籤'%s'已經移動了'%s'標籤已經被移除了標籤 - %s標籤:標籤:選取其他(&O)使用 bzip2 壓縮 tar 封存使用 gzip 壓縮 tar 封存Tar 封存目標:任務分頁任務工具列指定任務列當這個對話框關閉時暫存檔會被移除被使用者終止了測試修訂版然後回報結果. (良好/不良/跳過)文字檔 (*.txt)儲存庫的目的或內容的文字描述泰文%s 修訂版的變更以及沒有合併的全部母系都將被移除掉 你確定你要這樣做?無法執行命令"%s"命令"%s"失敗(返回碼 %d)."%s"目的地已經存在,而且是一個檔案"%s"目的地已經存在,而且是一個目錄目的必須在儲存庫樹裡面"%s"目錄不是空的 你想要覆蓋它嗎?例外錯誤訊息是:

                                                                                                            %s

                                                                                                            檔案 "%s" 已存在! 您想覆蓋它嗎?掛勾名子不能包含任何空白,Tab 或'='符號掛勾名子不能包含空白TortoiseHg 在變更紀錄、狀態、提交窗格顯示內容的最大大小,以為 KB 單位。0 表示不限制。預設:1024 (1MB)命名的書籤或所有的書籤命名的標籤或全部的標籤顯示變更紀錄時,一次讀取的修訂版本數。預設:500選擇的命令是空的

                                                                                                            %s

                                                                                                            儲存庫不能被開啟!來源必須在儲存庫樹裡面子儲存庫是髒的工具名字不能有任何空白工具名字不能有空白工作目錄已經被合併. 繼續放棄 existing merge.有合併衝突被解決沒有設定用來同步的路徑 開啟同步化頁籤來設定吧沒有衝突的檔案找不到檔案有變更,所以不用檢視了沒有可能被更名過的檔案已經有個同樣名字的資料夾了有一個存在的%s.%s掛勾. 你要置換它嗎?沒有回退交易可以用這錯誤不會再顯示,除非你重新啟動工作台三方合併工具收件者要完成合併,你必須提交工作目錄. 要取消合併,你可以更新至其中一個母系修訂版.收件者:顯示/隱藏文字搜尋列切換作為基礎的母系修訂版以工具解決(&R)工具標籤啟動工具失敗工具名字工具顯示在工具列的項目工具提示上層選單項目:TortoiseHg 書籤同步回報 TortoiseHg 的問題TortoiseHg 命令對話框TortoiseHg CommitTortoiseHg 對話框 (版本 %s), Mercurial (版本 %s) TortoiseHg 錯誤TortoiseHg 提示字元TortoiseHg 搜尋TortoiseHg 設定TortoiseHg網頁伺服器TortoiseHg工作台TortoiseHg 建立了一個新的.hgignore 檔案,你要把他加到儲存庫嗎?正體中文試著重新整理您的儲存庫土耳其文類型解包裹(&n)...UI 語言URL錯誤: %s烏克蘭語不能回退不能壓縮history不能建立 Mercurial.ini 檔案不能建立一個設定檔不能找到變更集不能合併不能去合併區塊不能剖析p4pending的輸出不能讀取儲存庫狀態不能移除不能移除URL不能移除 %s, 權限不允許不能儲存一個URL不能儲存認證不能儲存自動載入列表不能儲存使用者名字無法顯示子儲存庫檔案無法開始下列命令:無法更新儲存庫名字不能寫入.hgignore檔案不能寫入設定檔不能寫進diff檔反套用所有的補丁反套用一個補丁解開包裹取消勾選取消勾選所有的檔案未提交的合併 - 請選擇一個母系修訂版未壓縮的 tar 封存未壓縮的 zip 封存底線復原關閉的其他分頁復原關閉的分頁復原最後的提交?復原最後的交易?萬國碼簡體中文未知的修訂版!未解決的衝突仍有未解決的衝突.你確定嗎?沒有存起來的變動將會不見 你想要重新載入嗎?不支援的儲存庫型態 (%s)未列入版本控制更新更新 - %sUpdate - 拉收然後嘗試update 工作副本更新圖示更新預覽為這個儲存庫更新圖示更新到:更新工作目錄更新工作目錄或轉移至修訂版更新...更新儲存庫紀錄中建議更新到最新的TortoiseHg使用英文回退訊息使用英文提交訊息使用簡潔檢視使用目前日期使用自訂的提交訊息使用擴充的(git)補丁格式使用git擴充的diff標頭格式. 預設: False使用代理伺服器使用 pull 協定複製 metadata使用者使用者快取使用者:使用者名稱驗證回退修訂版並確認你的工作目錄是乾淨的。驗證合併的目標並確保你的工作目錄是乾淨的.檢視檔案(&e)越南文檢視檔案在用統一的差異格式顯示變更檢視儲存庫的變更歷史檢視所選檔案的版本變更歷史在檔案上下文檢視變更使用圖型化差異比對工具檢視變更使用外部差異比對工具來觀看檔案變更檢視儲存庫的設定圖形化差異比對視覺化差異比對工具視覺化差異 ...視覺化差異比對 - 視覺編輯器把解決衝突的檔案跟第一個母系進行視覺化差異比對把解決衝突的檔案跟第二個母系進行視覺化差異比對視覺化差異...視覺化三方差異比對警告注意:這會引響所有的Tortoise,變更後需要登出網頁伺服器西歐你想做什麼? 如果啟動這個選項,那麼當執行命令的時候自動顯示Output Log使用的整體樣式空白字元(&s)工作在補丁佇列模式(--mq)工作台工作台紀錄欄位工作台自訂工具列工作副本工作目錄工作目錄(合併的)工作目錄工作目錄不乾淨! 檢視變更...工作目錄狀態包裝 (wrap) 搜尋寫進包裹寫進diff檔你可以從這裡拜訪我們的網站你不能合併自己你可能需要刷新程式你可以繼續壓縮你可能會繼續rebase你需要輸入一個補丁名字你得跟mercurial 說你是誰你得要設定一個指令來執行你必須設定一個工具名字你必須設定一個有效的掛勾類型你的TortoiseHg是最新的你目前工作的修訂版(%d)將會經由這個回退操作而移除,回到未提交的變更.要繼續嗎?使用 deflate 演算法壓縮的 zip 封存Zip 封存[返回碼:%d][WARNING] 無效的子儲存庫版本 ID: %s [命令完成 %s][命令中斷了%s][命令返回碼 %d %%s][命令被%s這個使用者所終結了][不存在][工作副本]要傳送的修訂版中止: 中止:%s 中止: %s! 提交增加diffstat 的輸出到訊息中已新增附件基本指令: 本文書籤: 分支: 預覽包裹檔不能讀取檔案"%s".忽略. 變更集: %s變更集:%s (在子儲存庫裡找不到)乾淨的只拓製特定的分支經歷時間作者分支變更描述:檔名分支圖最新的標籤本地時間節點階段標籤UTC時間命令剖析錯誤: %s提交預設值放棄沒提交的變更(不備份)顯示說明指引並離開不要備份已剝除的修訂版啟用額外輸出eol與win32text不相容執行命令時錯誤 執行模式已被設定執行模式已被取消開始命令失敗了 檔案已經被刪除,重新整理檔案已經被修改,重新整理檔案全部(無)過濾器全域選項:grep: 無效的符合樣式: %s hgsubversion不相容perfarce提示: 歷史搜尋時忽略大小寫被忽略的匯入到補丁佇列(MQ)未來內嵌這個平台不支援inotify無效的"hello"訊息:%r保持原始的分支名稱啟動視覺化差異比對工具列出所有指令: 本地製作一個本地標籤遺失已修改必須在style裡指定type必須指定儲存庫需要和%s合併 沒有"runcommand"功能沒有定義指令 找不到符合的: %s沒有可被推送的變更集在目前分支(%s)/全部(%d)沒有可被推送的變更集在目前修訂版(#%d)/全部(%d)沒有可被推送的變更集在目前修訂版(#%d)/全部(%d)沒有可被推送的變更集現在開啟一個新的工作台視窗開啟書籤同步視窗開啟...選項: 密碼: perfarce不相容hgsubversion程序意外結束,代碼 %d移除一個標籤移除狀態快取移除工作目錄已移除取代現有的標籤找不到版本庫 %s要回退的修訂版剝除修訂版修訂版 %d:%s 到 %d:%s選擇的檔案用附件傳送補丁用行內附件傳送補丁將補丁作為電子郵件本文顯示忽略的檔案顯示狀態快取的內容(無更新)開始除錯提交回退狀態子儲存庫同步命令已經在執行提交補丁分支修訂版細節搜尋同步化拓製將帶入一個空的工作副本(只有一個儲存庫)thg: 命令 '%s' 曖昧不明 : %s thg: 未知的命令 '%s' 等待訊息的時候逾時了讀取逾時: %r ...未知未知的修訂版!使用"thg -v help %s"顯示全域選項使用"thg -v help %s"顯示別名及全域選項使用"thg help"列出所有的命令使用"thg help"列出所有的命令或"thg -v"顯示細節使用 pull 通訊協定來複製 metadata版本 %s將被關閉win32text與eol不相容提交附 Mercurial-%s, Python-%s, PyQt-%s, Qt-%s乾淨的無(&N)././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1714146 tortoisehg-6.9/setup.cfg0000644000000000000000000000072214742203610014136 0ustar00rootroot[py2app] excludes = Carbon, curses, distools, docutils, distutils, PyQt4.phonon, PyQt4.QtDeclarative, PyQt4.QtDesigner, PyQt4.QtHelp, PyQt4.QtMultimedia, PyQt4.QtOpenGL, PyQt4.QtScript, PyQt4.QtScriptTools, PyQt4.QtSql, PyQt4.QtTest, PyQt4.QtWebKit, PyQt4.QtXmlPatterns, py2app, setup, setuptools, unittest, PIL includes = email.mime.text, mercurial_keyring, sip packages = hgext, mercurial, pygments, tortoisehg, keyring [egg_info] tag_build = tag_date = 0 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1735997214.0 tortoisehg-6.9/setup.py0000644000000000000000000007567614736233436014067 0ustar00rootroot# setup.py # A distutils setup script to install TortoiseHg in Windows and Posix # environments. # # On Windows, this script is mostly used to build a stand-alone # TortoiseHg package. See installer\build.txt for details. The other # use is to report the current version of the TortoiseHg source. from __future__ import annotations import time import sys import os import shutil import tempfile import re import subprocess import tarfile from fnmatch import fnmatch from distutils import log if 'FORCE_SETUPTOOLS' in os.environ: from setuptools import setup else: if 'py2app' in sys.argv[1:]: sys.exit("py2app requires FORCE_SETUPTOOLS=1 to be set in os.environ.") from distutils.core import setup from distutils.core import Command from distutils.command.build import build as _build_orig from distutils.command.clean import clean as _clean_orig from distutils.spawn import spawn, find_executable from i18n.msgfmt import Msgfmt thgcopyright = 'Copyright (C) 2010-2025 Steve Borho and others' hgcopyright = 'Copyright (C) 2005-2025 Matt Mackall and others' def _walklocales(): podir = 'i18n/tortoisehg' for po in os.listdir(podir): if not po.endswith('.po'): continue pofile = os.path.join(podir, po) modir = os.path.join('locale', po[:-3], 'LC_MESSAGES') mofile = os.path.join(modir, 'tortoisehg.mo') yield pofile, modir, mofile def _msgfmt(pofile, mofile): modata = Msgfmt(pofile).get() with open(mofile, "wb") as fp: fp.write(modata) class build_mo(Command): description = "build translations (.mo files)" user_options = [] def initialize_options(self): pass def finalize_options(self): pass def run(self): for pofile, modir, mofile in _walklocales(): self.mkpath(modir) self.make_file(pofile, mofile, _msgfmt, (pofile, mofile)) class import_po(Command): description = "import translations (.po file)" user_options = [ ("package=", "p", ("launchpad export package or bzr repo " "[default: launchpad-export.tar.gz]")), ("lang=", "l", "languages to be imported, separated by ','"), ] def initialize_options(self): self.package = None self.lang = None def finalize_options(self): if not self.package: self.package = 'launchpad-export.tar.gz' if self.lang: self.lang = self.lang.upper().split(',') def _untar(self, name, path='.'): with tarfile.open(name, 'r') as tar: path = os.path.abspath(path) for tarinfo in tar.getmembers(): # Extract the safe file only p = os.path.abspath(os.path.join(path, tarinfo.name)) if p.startswith(path): tar.extract(tarinfo, path) def run(self): if not find_executable('msgcat'): self.warn("could not find msgcat executable") return dest_prefix = 'i18n/tortoisehg' src_prefix = 'po/tortoisehg' log.info('import from %s' % self.package) if os.path.isdir(self.package): self.bzrrepo = True self.package_path = self.package elif tarfile.is_tarfile(self.package): self.bzrrepo = False self.package_path = tempfile.mkdtemp() self._untar(self.package, self.package_path) else: self.warn('%s is not a valid tranlation package' % self.package) return if self.bzrrepo: filter = r'^([\S]+)\.po$' else: filter = r'^tortoisehg-([\S]+)\.po$' r = re.compile(filter) src_dir = os.path.join(self.package_path, src_prefix) for src_file in os.listdir(src_dir): m = r.match(src_file) if not m: continue # filter the language lang = m.group(1) if self.lang and lang.upper() not in self.lang: continue dest_file = os.path.join(dest_prefix, lang) + '.po' msg = 'updating %s...' % dest_file cmd = ['msgcat', '--no-location', '-o', dest_file, os.path.join(src_dir, src_file) ] self.execute(spawn, (cmd,), msg) if not self.bzrrepo: shutil.rmtree(self.package_path) class update_pot(Command): description = "extract translatable strings to tortoisehg.pot" user_options = [] def initialize_options(self): pass def finalize_options(self): pass def run(self): if not find_executable('xgettext'): self.warn("could not find xgettext executable, tortoisehg.pot " "won't be built") return dirlist = [ '.', 'contrib', 'tortoisehg', 'tortoisehg/hgqt', 'tortoisehg/util', ] filelist = [] for pathname in dirlist: if not os.path.exists(pathname): continue for filename in os.listdir(pathname): if filename.endswith('.py'): filelist.append(os.path.join(pathname, filename)) filelist.sort() potfile = 'tortoisehg.pot' cmd = [ 'xgettext', '--package-name', 'TortoiseHg', '--msgid-bugs-address', '', '--copyright-holder', thgcopyright, '--from-code', 'ISO-8859-1', '--keyword=_:1,2c,2t', '--add-comments=i18n:', '-d', '.', '-o', potfile, ] cmd += filelist self.make_file(filelist, potfile, spawn, (cmd,)) class build_config(Command): description = 'create config module for unix installation' user_options = [ ('build-lib=', 'd', 'directory to "build" (copy) to'), ] def initialize_options(self): self.build_lib = None def finalize_options(self): self.set_undefined_options('build', ('build_lib', 'build_lib')) def _generate_config(self, cfgfile): from tortoisehg.hgqt import qtcore # dirty hack to get the install root installcmd = self.get_finalized_command('install') rootlen = len(installcmd.root or '') sharedir = os.path.join(installcmd.install_data[rootlen:], 'share') data = { 'bin_path': installcmd.install_scripts[rootlen:], 'license_path': os.path.join(sharedir, 'doc', 'tortoisehg', 'COPYING.txt'), 'locale_path': os.path.join(sharedir, 'locale'), 'icon_path': os.path.join(sharedir, 'pixmaps', 'tortoisehg'), 'nofork': True, 'qt_api': qtcore._detectapi(), } # Distributions will need to supply their own with open(cfgfile, "w") as f: for k, v in sorted(data.items()): f.write('%s = %r\n' % (k, v)) def run(self): cfgdir = os.path.join(self.build_lib, 'tortoisehg', 'util') cfgfile = os.path.join(cfgdir, 'config.py') self.mkpath(cfgdir) self.make_file(__file__, cfgfile, self._generate_config, (cfgfile,)) class build_py2app_config(build_config): description = 'create config module for standalone OS X bundle' def _generate_config(self, cfgfile): from tortoisehg.hgqt import qtcore # Since py2app seems to ignore the build dir in favor of the src tree, # ignore the given path and generate it in the source tree. The file # is conditionalized such that it won't interfere when run from source. cwd = os.path.dirname(__file__) cfgfile = os.path.join(cwd, 'tortoisehg', 'util', 'config.py') data = { 'license_path': 'COPYING.txt', 'locale_path': 'locale', 'icon_path': 'icons', 'qt_api': qtcore._detectapi(), } rsrc_dir = 'os.environ["RESOURCEPATH"]' with open(cfgfile, "w") as f: f.write("import os, sys\n" "\n" "if 'THG_OSX_APP' in os.environ:\n" " nofork = True\n") for k, v in sorted(data.items()): f.write(" %s = os.path.join(%s, '%s')\n" % (k, rsrc_dir, v)) f.write(" bin_path = os.path.dirname(sys.executable)\n") class build_ui(Command): description = 'build PyQt user interfaces (.ui)' user_options = [ ('force', 'f', 'forcibly compile everything (ignore file timestamps)'), ] boolean_options = ('force',) def initialize_options(self): self.force = None def finalize_options(self): self.set_undefined_options('build', ('force', 'force')) def _compile_ui(self, ui_file, py_file): uic = self._impuic() with open(py_file, 'w') as fp: uic.compileUi(ui_file, fp) @staticmethod def _impuic(): from tortoisehg.hgqt.qtcore import QT_API mod = __import__(QT_API, globals(), locals(), ['uic']) return mod.uic _wrappeduic = False @classmethod def _wrapuic(cls): """wrap uic to use gettext's _() in place of QtGui.QApplication.translate as _translate()""" if cls._wrappeduic: return uic = cls._impuic() compiler = uic.Compiler.compiler qtproxies = uic.Compiler.qtproxies indenter = uic.Compiler.indenter class _UICompiler(compiler.UICompiler): def createToplevelWidget(self, classname, widgetname): o = indenter.getIndenter() o.level = 0 o.write('from tortoisehg.util.i18n import _') return super(_UICompiler, self).createToplevelWidget(classname, widgetname) compiler.UICompiler = _UICompiler class _i18n_string(qtproxies.i18n_string): def __str__(self): # Note: ignoring self.disambig and qtproxies.i18n_context return '_(%s)' % qtproxies.as_string(self.string) qtproxies.i18n_string = _i18n_string cls._wrappeduic = True def run(self): self._wrapuic() basepath = os.path.join(os.path.dirname(__file__), 'tortoisehg', 'hgqt') for f in os.listdir(basepath): if not f.endswith('.ui'): continue uifile = os.path.join(basepath, f) pyfile = uifile[:-3] + '_ui.py' # setup.py is the source of "from i18n import _" line self.make_file([uifile, __file__], pyfile, self._compile_ui, (uifile, pyfile)) class build_qrc(Command): description = 'build PyQt resource files (.qrc)' user_options = [ ('build-lib=', 'd', 'directory to "build" (copy) to'), ('force', 'f', 'forcibly compile everything (ignore file timestamps)'), ] boolean_options = ('force',) def initialize_options(self): self.build_lib = None self.force = None def finalize_options(self): self.set_undefined_options('build', ('build_lib', 'build_lib'), ('force', 'force')) def _findrcc(self): from tortoisehg.hgqt.qtcore import QT_API try: # TODO: Figure out how to handle the removal of pyrcc rcc = {'PyQt5': 'pyrcc5'}[QT_API] except KeyError: raise RuntimeError('unsupported Qt API: %s' % QT_API) if os.name != 'nt' or QT_API == 'PyQt5': return rcc mod = __import__(QT_API, globals(), locals()) return os.path.join(os.path.dirname(mod.__file__), rcc) def _generate_qrc(self, qrc_file, srcfiles, prefix): from tortoisehg.hgqt import qtlib basedir = os.path.dirname(qrc_file) with open(qrc_file, 'w') as f: f.write('\n') f.write(' \n' % qtlib.htmlescape(prefix)) for e in srcfiles: relpath = e[len(basedir) + 1:] f.write(' %s\n' % qtlib.htmlescape(relpath.replace(os.path.sep, '/'), False)) f.write(' \n') f.write('\n') def _build_rc(self, srcfiles, py_file, basedir, prefix): """Generate compiled resource including any files under basedir""" # For details, see http://doc.qt.nokia.com/latest/resources.html qrc_file = os.path.join(basedir, '%s.qrc' % os.path.basename(basedir)) try: self._generate_qrc(qrc_file, srcfiles, prefix) env = os.environ.copy() subprocess.check_call( [self._findrcc(), qrc_file, '-o', py_file], env=env, shell=os.name == 'nt' ) finally: os.unlink(qrc_file) def _build_icons(self, basepath): icondir = os.path.join(os.path.dirname(__file__), 'icons') iconfiles = [] for root, dirs, files in os.walk(icondir): if root == icondir: dirs.remove('svg') # drop source of .ico files iconfiles.extend(os.path.join(root, f) for f in files if f.endswith(('.png', '.svg'))) pyfile = os.path.join(basepath, 'icons_rc.py') # we cannot detect deleted icons self.make_file(iconfiles, pyfile, self._build_rc, (iconfiles, pyfile, icondir, '/icons'), exec_msg='generating %s from %s' % (pyfile, icondir)) def _build_translations(self, basepath): """Build translations_rc.py which inclues qt_xx.qm""" from tortoisehg.hgqt.qtcore import QT_API if QT_API == 'PyQt6': from PyQt6.QtCore import QLibraryInfo trpath = QLibraryInfo.path(QLibraryInfo.LibraryPath.TranslationsPath) else: from PyQt5.QtCore import QLibraryInfo # QLibraryInfo.LibraryPath.PluginsPath is not available with # PyQt 5.13.2/Qt 5.9.9 trpath = QLibraryInfo.location(QLibraryInfo.TranslationsPath) builddir = os.path.join(self.get_finalized_command('build').build_base, 'qt-translations') self.mkpath(builddir) # we have to copy .qm files to build directory because .qrc file must # specify files by relative paths qmfiles = [] for e in os.listdir(trpath): if (not e.startswith(('qt_', 'qscintilla_')) or e.startswith('qt_help_') or not e.endswith('.qm')): continue f = os.path.join(builddir, e) self.copy_file(os.path.join(trpath, e), f) qmfiles.append(f) pyfile = os.path.join(basepath, 'translations_rc.py') self.make_file(qmfiles, pyfile, self._build_rc, (qmfiles, pyfile, builddir, '/translations'), exec_msg='generating %s from Qt translation' % pyfile) def run(self): basepath = os.path.join(self.build_lib, 'tortoisehg', 'hgqt') self.mkpath(basepath) self._build_icons(basepath) self._build_translations(basepath) class clean_local(Command): pats = ['*.py[co]', '*_ui.py', '*.mo', '*.orig', '*.rej'] excludedirs = ['.hg', 'build', 'dist'] description = 'clean up generated files (%s)' % ', '.join(pats) user_options = [] def initialize_options(self): pass def finalize_options(self): pass def run(self): for e in self._walkpaths('.'): log.info("removing '%s'" % e) os.remove(e) def _walkpaths(self, path): for root, _dirs, files in os.walk(path): if any(root == os.path.join(path, e) or root.startswith(os.path.join(path, e, '')) for e in self.excludedirs): continue for e in files: fpath = os.path.join(root, e) if any(fnmatch(fpath, p) for p in self.pats): yield fpath class build(_build_orig): sub_commands = [ ('build_config', lambda self: (os.name != 'nt' and 'py2app' not in self.distribution.commands)), ('build_py2app_config', lambda self: 'py2app' in self.distribution.commands), ('build_ui', None), ('build_qrc', lambda self: 'py2exe' in self.distribution.commands), ('build_mo', None), ] + _build_orig.sub_commands class clean(_clean_orig): sub_commands = [ ('clean_local', None), ] + _clean_orig.sub_commands def run(self): _clean_orig.run(self) for e in self.get_sub_commands(): self.run_command(e) cmdclass = { 'build': build, 'build_config': build_config, 'build_py2app_config': build_py2app_config, 'build_ui': build_ui, 'build_qrc': build_qrc, 'build_mo': build_mo, 'clean': clean, 'clean_local': clean_local, 'update_pot': update_pot, 'import_po': import_po, } def setup_windows(version, setupversion, productname): # Specific definitios for Windows NT-alike installations _scripts = [] _data_files = [] _packages = ['tortoisehg.hgqt', 'tortoisehg.util', 'tortoisehg', 'hgext3rd'] extra = {} hgextmods = [] # py2exe needs to be installed to work try: import py2exe # The py3 version of py2exe hardcodes _curses in the exclusion list, # assuming it is a non-Windows module. But that prevents # windows-curses from being bundled. # # See https://github.com/py2exe/py2exe/issues/132 from py2exe import hooks hooks.windows_excludes.remove('_curses') # py2exe hardcodes the site module in the exclusion list, but also # sets interpreter flags to disable the default initialization, so # the global site and user site packages aren't changed by including # it. But that means excluding utility functions for building the # user site path and updating builtins to have quit() and exit() # that are available with vanilla python, PyOxidizer, and py2app. # # See https://github.com/py2exe/py2exe/issues/154 hooks.windows_excludes.remove('site') # Help py2exe to find win32com.shell try: import modulefinder import win32com for p in win32com.__path__[1:]: # Take the path to win32comext modulefinder.AddPackagePath("win32com", p) pn = "win32com.shell" __import__(pn) m = sys.modules[pn] for p in m.__path__[1:]: modulefinder.AddPackagePath(pn, p) except ImportError: pass except ImportError: if '--version' not in sys.argv: raise # Allow use of environment variables to specify the location of Mercurial import modulefinder path = os.getenv('MERCURIAL_PATH') if path: modulefinder.AddPackagePath('mercurial', path) path = os.getenv('HGEXT_PATH') if path: modulefinder.AddPackagePath('hgext', path) modulefinder.AddPackagePath('hgext3rd', 'hgext3rd') if 'py2exe' in sys.argv: import hgext hgextdir = os.path.dirname(hgext.__file__) hgextmods = set(["hgext." + os.path.splitext(f)[0] for f in os.listdir(hgextdir)]) # most icons are packed into Qt resource, but .ico files must reside # in filesystem so that shell extension can read them root = 'icons' _data_files.append((root, [os.path.join(root, f) for f in os.listdir(root) if f.endswith('.ico') or f == 'README.txt'])) from tortoisehg.hgqt.qtcore import QT_API # for PyQt, see http://www.py2exe.org/index.cgi/Py2exeAndPyQt if QT_API == 'PyQt6': includes = ['PyQt6.sip'] else: includes = ['PyQt5.sip'] # Qt4 plugins, see http://stackoverflow.com/questions/2206406/ def qt6_plugins(subdir, *dlls): from PyQt6.QtCore import QLibraryInfo pluginsdir = QLibraryInfo.path(QLibraryInfo.LibraryPath.PluginsPath) return subdir, [os.path.join(pluginsdir, subdir, e) for e in dlls] def qt5_plugins(subdir, *dlls): from PyQt5.QtCore import QLibraryInfo # QLibraryInfo.LibraryPath.PluginsPath is not available with # PyQt 5.13.2/Qt 5.9.9 pluginsdir = QLibraryInfo.location(QLibraryInfo.PluginsPath) # py2 somehow mangles the path generated here in the form of # C:/Qt/Qt5.9.9/5.9.9/msvc2017_64/plugins\\platforms\\qwindows.dll # to C:Qt/Qt5.9.9/... in the caller unless this is normalized. pluginsdir = os.path.normpath(pluginsdir) return subdir, [os.path.join(pluginsdir, subdir, e) for e in dlls] from tortoisehg.hgqt.qtcore import QT_API if QT_API == 'PyQt6': _data_files.append(qt6_plugins('platforms', 'qwindows.dll')) _data_files.append(qt6_plugins('styles', 'qwindowsvistastyle.dll')) _data_files.append(qt6_plugins('imageformats', 'qico.dll', 'qsvg.dll', 'qjpeg.dll', 'qgif.dll', 'qicns.dll', 'qtga.dll', 'qtiff.dll', 'qwbmp.dll', 'qwebp.dll')) else: _data_files.append(qt5_plugins('platforms', 'qwindows.dll')) _data_files.append(qt5_plugins('styles', 'qwindowsvistastyle.dll')) _data_files.append(qt5_plugins('imageformats', 'qico.dll', 'qsvg.dll', 'qjpeg.dll', 'qgif.dll', 'qicns.dll', 'qtga.dll', 'qtiff.dll', 'qwbmp.dll', 'qwebp.dll')) # Manually include other modules py2exe can't find by itself. if 'hgext.highlight' in hgextmods: includes += ['pygments.*', 'pygments.lexers.*', 'pygments.formatters.*', 'pygments.filters.*', 'pygments.styles.*'] if 'hgext.patchbomb' in hgextmods: includes += ['email.*', 'email.mime.*'] extra['options'] = {} extra['options']['py2exe'] = { "skip_archive": 0, # Don't pull in all this MFC stuff used by the makepy UI. "excludes": ("pywin,pywin.dialogs,pywin.dialogs.list,setuptools" "setup,distutils"), # required only for in-place use "includes": includes, "optimize": 1, } extra['console'] = [ {'script': 'thg', 'icon_resources': [(0, 'icons/thg_logo.ico')], 'description': 'TortoiseHg GUI tools for Mercurial SCM', 'copyright': thgcopyright, 'internal_name': 'thg', 'product_name': productname, 'product_version': version, 'version': setupversion, }, {'script': 'contrib/hg', 'icon_resources': [(0, 'icons/hg.ico')], 'description': 'Mercurial Distributed SCM', 'copyright': hgcopyright, 'internal_name': 'hg', 'product_name': productname, 'product_version': version, 'version': setupversion, }, {'script': 'win32/docdiff.py', 'icon_resources': [(0, 'icons/TortoiseMerge.ico')], 'description': 'TortoiseHg binary document diff tool', 'copyright': thgcopyright, 'internal_name': 'docdiff', 'product_name': productname, 'product_version': version, 'version': setupversion, }, ] extra['windows'] = [ {'script': 'thg', 'dest_base': 'thgw', 'icon_resources': [(0, 'icons/thg_logo.ico')], 'description': 'TortoiseHg GUI tools for Mercurial SCM', 'copyright': thgcopyright, 'internal_name': 'thgw', 'product_name': productname, 'product_version': version, 'version': setupversion, }, {'script': 'TortoiseHgOverlayServer.py', 'icon_resources': [(0, 'icons/thg_logo.ico')], 'description': 'TortoiseHg Overlay Icon Server', 'copyright': thgcopyright, 'internal_name': 'TortoiseHgOverlayServer', 'product_name': productname, 'product_version': version, 'version': setupversion, }, ] # put dlls in sub directory so that they won't pollute PATH extra['zipfile'] = 'lib/library.zip' return _scripts, _packages, _data_files, extra def setup_osx(version): _extra = {} # This causes py2app to copy the scripts into build/ and then adjust the # mode, but the build dir is ignored for some reason. _scripts = ['thg'] _packages = ['tortoisehg.hgqt', 'tortoisehg.util', 'tortoisehg', 'hgext3rd'] _data_files = [] def qt5_plugins(subdir, *dlls): from PyQt5.QtCore import QLibraryInfo # QLibraryInfo.LibraryPath.PluginsPath is not available with # PyQt 5.13.2/Qt 5.9.9 pluginsdir = QLibraryInfo.location(QLibraryInfo.PluginsPath) return subdir, [os.path.join(pluginsdir, subdir, e) for e in dlls] def qt6_plugins(subdir, *dlls): from PyQt6.QtCore import QLibraryInfo pluginsdir = QLibraryInfo.path(QLibraryInfo.LibraryPath.PluginsPath) return subdir, [os.path.join(pluginsdir, subdir, e) for e in dlls] from tortoisehg.hgqt.qtcore import QT_API if QT_API == 'PyQt6': _data_files.append(qt6_plugins('platforms', 'libqcocoa.dylib')) _data_files.append(qt6_plugins('imageformats', 'libqsvg.dylib')) else: _data_files.append(qt5_plugins('platforms', 'libqcocoa.dylib')) _data_files.append(qt5_plugins('imageformats', 'libqsvg.dylib')) _py2app_options = { 'arch': 'x86_64', 'argv_emulation': False, 'no_chdir': True, 'excludes': ['Carbon', 'curses', 'distools', 'distutils', 'docutils', 'PyQt4.phonon', 'PyQt4.QtDeclarative', 'PyQt4.QtDesigner', 'PyQt4.QtHelp', 'PyQt4.QtMultimedia', 'PyQt4.QtOpenGL', 'PyQt4.QtScript', 'PyQt4.QtScriptTools', 'PyQt4.QtSql', 'PyQt4.QtTest', 'PyQt4.QtWebKit', 'PyQt4.QtXmlPatterns', 'PyQt4.QtXmlPatterns', 'PyQt5.QtDBus', 'PyQt5.QtDeclarative', 'PyQt5.QtDesigner', 'PyQt5.QtHelp', 'PyQt5.QtMultimedia', 'PyQt5.QtOpenGL', 'PyQt5.QtScript', 'PyQt5.QtScriptTools', 'PyQt5.QtSql', 'PyQt5.QtTest', 'PyQt5.QtWebKit', 'PyQt5.QtXmlPatterns', 'PyQt5.phonon', 'py2app', 'setup', 'setuptools', 'unittest', 'PIL'], 'extra_scripts': ['contrib/hg'], 'iconfile': 'contrib/packaging/macos/TortoiseHg.icns', 'includes': ['email.mime.text', 'sip'], 'packages': ['certifi', 'hgext', 'iniparse', 'keyring', 'mercurial', 'pygments', 'tortoisehg'], 'plist': { 'CFBundleDisplayName': 'TortoiseHg', 'CFBundleExecutable': 'TortoiseHg', 'CFBundleIdentifier': 'org.tortoisehg.thg', 'CFBundleName': 'TortoiseHg', 'CFBundleShortVersionString': version, 'CFBundleVersion': version, 'LSEnvironment': { # because launched app can't inherit environment variables from # console, the encoding would be set to "ascii" by default 'HGENCODING': 'utf-8', 'THG_OSX_APP': '1', 'QT_API': QT_API, }, 'NSHumanReadableCopyright': thgcopyright, }, 'resources': ['COPYING.txt', 'icons', 'locale'], } _extra['app'] = ['thg'] _extra['setup_requires'] = ['py2app'] _extra['options'] = {'py2app': _py2app_options} return _scripts, _packages, _data_files, _extra def setup_posix(): # Specific definitios for Posix installations _extra = {} _scripts = ['thg'] _packages = ['tortoisehg', 'tortoisehg.hgqt', 'tortoisehg.util', 'hgext3rd'] _data_files = [] # .svg and .png are loaded by thg, .ico by nautilus extension for root, dirs, files in os.walk('icons'): if root == 'icons': dirs.remove('svg') # drop source of .ico files # do not add directories to the packing list if not files: continue _data_files.append((os.path.join('share/pixmaps/tortoisehg', root[6:]), [os.path.join(root, f) for f in files])) # install SVG icon for the desktop file _data_files.append(('share/pixmaps', ['icons/svg/thg_logo.svg'])) _data_files.append(('share/doc/tortoisehg', ['COPYING.txt'])) _data_files.extend((os.path.join('share', modir), [mofile]) for pofile, modir, mofile in _walklocales()) _data_files += [('share/nautilus-python/extensions', ['contrib/nautilus-thg.py'])] return _scripts, _packages, _data_files, _extra if __name__ == '__main__': version = '' if os.path.isdir('.hg'): from tortoisehg.util import version as _version branch, version = _version.liveversion() if version.endswith('+'): version += time.strftime('%Y%m%d') elif os.path.exists('.hg_archival.txt'): with open('.hg_archival.txt') as fp: kw = dict([t.strip() for t in l.split(':', 1)] for l in fp) if 'tag' in kw: version = kw['tag'] elif 'latesttag' in kw: version = '%(latesttag)s+%(latesttagdistance)s-%(node).12s' % kw else: version = kw.get('node', '')[:12] if version: with open("tortoisehg/util/__version__.py", "w") as f: f.write('# this file is autogenerated by setup.py\n') f.write('version = "%s"\n' % version) try: import tortoisehg.util.__version__ version = tortoisehg.util.__version__.version except ImportError: version = 'unknown' if os.name == "nt": # Windows binary file versions for exe/dll files must have the # form W.X.Y.Z, where W,X,Y,Z are numbers in the range 0..65535 from tortoisehg.util.version import package_version setupversion = package_version() productname = 'TortoiseHg' (scripts, packages, data_files, extra) = setup_windows( version, setupversion, productname, ) elif sys.platform == "darwin" and 'py2app' in sys.argv[1:]: (scripts, packages, data_files, extra) = setup_osx(version) setupversion = version productname = 'TortoiseHg' else: (scripts, packages, data_files, extra) = setup_posix() setupversion = version productname = 'tortoisehg' setup(name=productname, version=setupversion, author='Steve Borho', author_email='steve@borho.org', url='https://tortoisehg.bitbucket.io', description='TortoiseHg dialogs for Mercurial VCS', license='GNU GPLv2 or any later version', scripts=scripts, packages=packages, data_files=data_files, cmdclass=cmdclass, **extra) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/thg0000755000000000000000000001447614672254332013051 0ustar00rootroot#!/usr/bin/env python # # thg - front-end script for TortoiseHg dialogs # # Copyright (C) 2008-2011 Steve Borho # Copyright (C) 2008 TK Soh # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os import sys if 'THG_OSX_APP' in os.environ: # sys.path as created by py2app doesn't work quite right with demandimport # Add the explicit path where PyQt4 and other libs are bundlepath = os.path.dirname(os.path.realpath(__file__)) sys.path.insert(0, os.path.join(bundlepath, 'lib/python2.6/lib-dynload')) if hasattr(sys, "frozen"): if sys.frozen == 'windows_exe': # sys.stdin is invalid, should be None. Fixes svn, git subrepos sys.stdin = None # py2exe blackholes stdout with a custom class to prevent random # exceptions when writing to it, but doesn't provide the ``.buffer`` # attribute that mercurial.utils.procutil wants. As of 0.11.1.0, it # also doesn't return the number of bytes written, and therefore # violates the interface contract. For details, see: # https://github.com/py2exe/py2exe/blob/af0e841bffcf9c64abce6204718fecad17a59506/py2exe/boot_common.py#L3 # # TODO: upstream write() return value and PROGRAMDATA usage in py2exe, # and then most or all of this can go away. sys.stdout = open(os.devnull, "w") # py2exe writes its redirected stderr log file next to the executable # (so typically in %PROGRAMFILES%), but UAC blocks that when it is # enabled. Replacing stderr with our own log file to an always # writeable area prevents that, fixes the missing write() return value, # and provides the `.buffer` attribute that procutil assumes is present. program_data = os.environ.get("PROGRAMDATA") if program_data is not None: import atexit, ctypes dir_name = os.path.join(program_data, "TortoiseHg") log_name = os.path.join( dir_name, os.path.splitext( os.path.basename(sys.executable) )[0] + '.log' ) try: os.makedirs(dir_name, exist_ok=True) sys.stderr = open(log_name, 'a', buffering=1) except Exception as details: sys.stderr = sys.stdout # blackhole messages ctypes.windll.user32.MessageBoxW( 0, "The logfile '%s' could not be opened:\n %s" % ( log_name, details, ), "Errors in %r" % os.path.basename(sys.executable), 0 ) else: orig_size = sys.stderr.seek(0, os.SEEK_END) def exit_check(): log_size = sys.stderr.tell() if orig_size != log_size: ctypes.windll.user32.MessageBoxW( 0, "See the logfile '%s' for details" % log_name, "Errors in %r" % os.path.basename(sys.executable), 0, ) atexit.register(exit_check) else: # py2exe messages come through sys.stderr; mercurial.ui.error() # messages come through sys.stderr.buffer. Drop everything for the # *w.exe executable if the log file cannot be created, in order to # prevent various issues mentioned above. sys.stderr = sys.stdout # Make `pip install --user` packages visible, because py2exe doesn't # process sitecustomize.py. vi = sys.version_info sys.path.append(os.path.join(os.environ['APPDATA'], 'Python', 'Python%d%d' % (vi[0], vi[1]), 'site-packages')) if 'THGDEBUG' in os.environ: import win32traceutil print('starting') # os.Popen() needs this, and Mercurial still uses os.Popen if 'COMSPEC' not in os.environ and os.name == 'nt': comspec = os.path.join(os.environ.get('SystemRoot', r'C:\Windows'), 'system32', 'cmd.exe') os.environ['COMSPEC'] = comspec else: thgpath = os.path.dirname(os.path.realpath(__file__)) testpath = os.path.join(thgpath, 'tortoisehg') if os.path.isdir(testpath) and thgpath not in sys.path: sys.path.insert(0, thgpath) # compile .ui and .qrc for in-place use fpath = os.path.realpath(__file__) if os.path.exists(os.path.join(os.path.dirname(fpath), 'setup.py')): # allow setuptools to patch distutils before we import Distribution from setup import build_ui from distutils.dist import Distribution build_ui(Distribution()).run() if 'HGPATH' in os.environ: hgpath = os.environ['HGPATH'] testpath = os.path.join(hgpath, 'mercurial') if os.path.isdir(testpath) and hgpath not in sys.path: sys.path.insert(0, hgpath) # Make sure to load threading by main thread; otherwise, _MainThread instance # may have wrong thread id and results KeyError at exit. import threading from mercurial import demandimport demandimport.IGNORES.update([ 'win32com.shell', 'numpy', # comtypes.npsupport does try-import 'tortoisehg.util.config', 'tortoisehg.hgqt.icons_rc', 'tortoisehg.hgqt.translations_rc', # don't create troublesome demandmods for bunch of Q* attributes 'tortoisehg.hgqt.qsci', 'tortoisehg.hgqt.qtcore', 'tortoisehg.hgqt.qtgui', 'tortoisehg.hgqt.qtnetwork', # TODO: fix name resolution in demandimporter and remove these 'qsci', 'qtcore', 'qtgui', 'qtnetwork', # pygments seems to have trouble on loading plugins (see #4271, #4298) 'pkgutil', 'pkg_resources', ]) demandimport.enable() # Verify we can reach TortoiseHg sources first try: import tortoisehg.hgqt.run except ImportError as e: sys.stderr.write(str(e)+'\n') sys.stderr.write("abort: couldn't find tortoisehg libraries in [%s]\n" % os.pathsep.join(sys.path)) sys.stderr.write("(check your install and PYTHONPATH)\n") sys.exit(-1) tortoisehg.hgqt.run.run() ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1354146 tortoisehg-6.9/tortoisehg/0000755000000000000000000000000014742203610014503 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1649124154.0 tortoisehg-6.9/tortoisehg/__init__.py0000644000000000000000000000001514222721472016614 0ustar00rootroot#placeholder ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1634145 tortoisehg-6.9/tortoisehg/hgqt/0000755000000000000000000000000014742203610015446 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1649124154.0 tortoisehg-6.9/tortoisehg/hgqt/__init__.py0000644000000000000000000000000014222721472017551 0ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1735997214.0 tortoisehg-6.9/tortoisehg/hgqt/about.py0000644000000000000000000001731314736233436017153 0ustar00rootroot# about.py - About dialog for TortoiseHg # # Copyright 2007 TK Soh # Copyright 2007 Steve Borho # Copyright 2010 Yuki KODAMA # Copyright 2010 Johan Samyn # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. """ TortoiseHg About dialog - PyQt4 version """ from __future__ import annotations import sys from .qtcore import ( PYQT_VERSION_STR, QSettings, QSize, QTimer, Qt, pyqtSlot, qVersion, ) from .qtgui import ( QDialog, QDialogButtonBox, QFont, QLabel, QLayout, QPixmap, QPlainTextEdit, QVBoxLayout, ) from ..util import ( hglib, paths, version, ) from ..util.i18n import _ from . import ( qtlib, updatecheck, ) class AboutDialog(QDialog): """Dialog for showing info about TortoiseHg""" def __init__(self, parent=None): super(AboutDialog, self).__init__(parent) self.setWindowIcon(qtlib.geticon('thg')) self.setWindowTitle(_('About')) self.setWindowFlags(self.windowFlags() & ~Qt.WindowType.WindowContextHelpButtonHint) self.vbox = QVBoxLayout() self.vbox.setSpacing(8) self.logo_lbl = QLabel() self.logo_lbl.setMinimumSize(QSize(92, 50)) self.logo_lbl.setScaledContents(False) self.logo_lbl.setAlignment(Qt.AlignmentFlag.AlignCenter) self.logo_lbl.setPixmap(QPixmap(qtlib.iconpath('thg_logo_92x50.png'))) self.vbox.addWidget(self.logo_lbl) self.name_version_libs_lbl = QLabel() self.name_version_libs_lbl.setText(' ') self.name_version_libs_lbl.setAlignment(Qt.AlignmentFlag.AlignCenter) self.name_version_libs_lbl.setTextInteractionFlags( Qt.TextInteractionFlag.TextSelectableByMouse) self.vbox.addWidget(self.name_version_libs_lbl) self.getVersionInfo() self.copyright_lbl = QLabel() self.copyright_lbl.setAlignment(Qt.AlignmentFlag.AlignCenter) self.copyright_lbl.setText('\n' + _('Copyright 2008-2025 Steve Borho and others')) self.vbox.addWidget(self.copyright_lbl) self.courtesy_lbl = QLabel() self.courtesy_lbl.setAlignment(Qt.AlignmentFlag.AlignCenter) self.courtesy_lbl.setText( _('Several icons are courtesy of the TortoiseSVN and Tango projects') + '\n') self.vbox.addWidget(self.courtesy_lbl) self.download_url_lbl = QLabel() self.download_url_lbl.setMouseTracking(True) self.download_url_lbl.setAlignment(Qt.AlignmentFlag.AlignCenter) self.download_url_lbl.setTextInteractionFlags(Qt.TextInteractionFlag.LinksAccessibleByMouse) self.download_url_lbl.setOpenExternalLinks(True) self.download_url_lbl.setText('%s' % ('https://tortoisehg.bitbucket.io', _('You can visit our site here'))) self.vbox.addWidget(self.download_url_lbl) # Extra space between the URL and hosting credits self.vbox.addWidget(QLabel()) self.hosting_lbl = QLabel() self.hosting_lbl.setAlignment(Qt.AlignmentFlag.AlignCenter) self.hosting_lbl.setText( _('Hosting donated by %s and %s') % ( 'Clever Cloud', 'Octobus' ) ) self.hosting_lbl.setMouseTracking(True) self.hosting_lbl.setTextInteractionFlags( Qt.TextInteractionFlag.LinksAccessibleByMouse ) self.hosting_lbl.setOpenExternalLinks(True) self.vbox.addWidget(self.hosting_lbl) # Let's have some space between the hosting and the buttons. self.blancline_lbl = QLabel() self.vbox.addWidget(self.blancline_lbl) bbox = QDialogButtonBox(self) self.license_btn = bbox.addButton(_('&License'), QDialogButtonBox.ButtonRole.ResetRole) self.license_btn.setAutoDefault(False) self.license_btn.clicked.connect(self.showLicense) self.close_btn = bbox.addButton(QDialogButtonBox.StandardButton.Close) self.close_btn.setDefault(True) self.close_btn.clicked.connect(self.close) self.vbox.addWidget(bbox) self.setLayout(self.vbox) self.layout().setSizeConstraint(QLayout.SizeConstraint.SetFixedSize) self._readsettings() # Spawn it later, so that the dialog gets visible quickly. self._updatechecker = updatecheck.Checker() self._updatechecker.updateAvailable.connect(self.updateAvailable) QTimer.singleShot(1000, self._updatechecker.query) def getVersionInfo(self): def make_version(tuple): vers = ".".join([str(x) for x in tuple]) return vers thgv = (_('version %s') % version.version()) libv = (_('with Mercurial-%s, Python-%s, PyQt-%s, Qt-%s') % (hglib.hgversion, make_version(sys.version_info[0:3]), PYQT_VERSION_STR, qVersion())) par = ('

                                                                                                            ' '' '%s

                                                                                                            ') name = (par % (14, 'TortoiseHg')) thgv = (par % (10, thgv)) nvl = ''.join([name, thgv, libv]) self.name_version_libs_lbl.setText(nvl) @pyqtSlot(str, str) def updateAvailable(self, newverstr, upgradeurl): url_lbl = _('A new version of TortoiseHg (%s) ' 'is ready for download!') % newverstr urldata = ('%s' % (upgradeurl, url_lbl)) self.download_url_lbl.setText(urldata) def showLicense(self): ld = LicenseDialog(self) ld.exec() def closeEvent(self, event): self._updatechecker.close() self._writesettings() super(AboutDialog, self).closeEvent(event) def _readsettings(self): s = QSettings() self.restoreGeometry(qtlib.readByteArray(s, 'about/geom')) def _writesettings(self): s = QSettings() s.setValue('about/geom', self.saveGeometry()) class LicenseDialog(QDialog): """Dialog for showing the TortoiseHg license""" def __init__(self, parent=None): super(LicenseDialog, self).__init__(parent) self.setWindowIcon(qtlib.geticon('thg')) self.setWindowTitle(_('License')) self.setWindowFlags(self.windowFlags() & ~Qt.WindowType.WindowContextHelpButtonHint) self.resize(700, 400) self.lic_txt = QPlainTextEdit() self.lic_txt.setFont(QFont('Monospace')) self.lic_txt.setTextInteractionFlags( Qt.TextInteractionFlag.TextSelectableByKeyboard|Qt.TextInteractionFlag.TextSelectableByMouse) try: with open(paths.get_license_path(), 'r') as fp: lic = fp.read() self.lic_txt.setPlainText(lic) except IOError: pass bbox = QDialogButtonBox(self) self.close_btn = bbox.addButton(QDialogButtonBox.StandardButton.Close) self.close_btn.clicked.connect(self.close) self.vbox = QVBoxLayout() self.vbox.setSpacing(6) self.vbox.addWidget(self.lic_txt) self.vbox.addWidget(bbox) self.setLayout(self.vbox) self._readsettings() def closeEvent(self, event): self._writesettings() super(LicenseDialog, self).closeEvent(event) def _readsettings(self): s = QSettings() self.restoreGeometry(qtlib.readByteArray(s, 'license/geom')) def _writesettings(self): s = QSettings() s.setValue('license/geom', self.saveGeometry()) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730809007.0 tortoisehg-6.9/tortoisehg/hgqt/archive.py0000644000000000000000000003412514712406257017457 0ustar00rootroot# archive.py - TortoiseHg's dialog for archiving a repo revision # # Copyright 2009 Emmanuel Rosa # Copyright 2010 Johan Samyn # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os from .qtcore import ( pyqtSlot, ) from .qtgui import ( QButtonGroup, QCheckBox, QComboBox, QFileDialog, QFormLayout, QHBoxLayout, QLineEdit, QPushButton, QRadioButton, QSizePolicy, QVBoxLayout, QWidget, ) from mercurial import ( error, pycompat, scmutil, ) from ..util import hglib from ..util.i18n import _ from . import ( cmdcore, cmdui, qtlib, ) if hglib.TYPE_CHECKING: from typing import ( Dict, List, Optional, Text, ) from . import ( thgrepo, ) WD_PARENT = _('= Working Directory Parent =') _ARCHIVE_TYPES = [ {'type': 'files', 'ext': '', 'label': _('Directory of files'), 'desc': _('Directory of files')}, {'type': 'tar', 'ext': '.tar', 'label': _('Tar archives'), 'desc': _('Uncompressed tar archive')}, {'type': 'tbz2', 'ext': '.tar.bz2', 'label': _('Bzip2 tar archives'), 'desc': _('Tar archive compressed using bzip2')}, {'type': 'tgz', 'ext': '.tar.gz', 'label': _('Gzip tar archives'), 'desc': _('Tar archive compressed using gzip')}, {'type': 'uzip', 'ext': '.zip', 'label': _('Zip archives'), 'desc': _('Uncompressed zip archive')}, {'type': 'zip', 'ext': '.zip', 'label': _('Zip archives'), 'desc': _('Zip archive compressed using deflate')}, ] class ArchiveWidget(cmdui.AbstractCmdWidget): """Command widget to archive a particular Mercurial revision""" _archive_content_all_files = 0 _archive_content_touched_files = 1 _archive_content_touched_since = 2 def __init__(self, repoagent: thgrepo.RepoAgent, rev: Optional[Text], parent: Optional[QWidget] = None, minrev: Optional[Text] = None) -> None: super(ArchiveWidget, self).__init__(parent) self.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed) self._repoagent = repoagent if not minrev: minrev = rev archive_since = False else: archive_since = True possibleroots = [] if minrev: parents = hglib.revsymbol(self.repo, hglib.fromunicode(minrev)).parents() if parents: for p in parents: possibleroots.append(u'%d' % p.rev()) else: possibleroots.append('null') form = QFormLayout() form.setContentsMargins(0, 0, 0, 0) self.setLayout(form) ### content selection ## revision selection self.rev_combo = QComboBox() self.rev_combo.setEditable(True) self.rev_combo.setSizeAdjustPolicy(QComboBox.SizeAdjustPolicy.AdjustToContents) form.addRow(_('Revision:'), self.rev_combo) ### content type ## Selection of the content mode self.content_mode = QButtonGroup(self) # All files box = QVBoxLayout() w = QRadioButton(_('All files in this revision'), self) self.content_mode.addButton(w, self._archive_content_all_files) box.addWidget(w) # Touched in this revision w = QRadioButton(_('Only files modified/created in this revision'), self) self.content_mode.addButton(w, self._archive_content_touched_files) box.addWidget(w) # Touched since sincebox = QHBoxLayout() self.rootrev_combo = QComboBox(self) self.rootrev_combo.setEditable(True) self.rootrev_combo.setSizeAdjustPolicy(QComboBox.SizeAdjustPolicy.AdjustToContents) if minrev: for text in possibleroots: self.rootrev_combo.addItem(text) self.rootrev_combo.setCurrentIndex(0) w = QRadioButton(_('Only files modified/created since:'), self) self.content_mode.addButton(w, self._archive_content_touched_since) sincebox.addWidget(w) sincebox.addWidget(self.rootrev_combo) box.addLayout(sincebox) if archive_since: # default to "touched since X" if the input is a range self.content_mode.button(self._archive_content_touched_since).setChecked(True) else: self.content_mode.button(self._archive_content_all_files).setChecked(True) form.addRow(_('Archive Content:'), box) # subrepository option self.subrepos_chk = QCheckBox(_('Recurse into subrepositories')) form.addRow('', self.subrepos_chk) # selecting a destination self.dest_edit = QLineEdit() self.dest_edit.setMinimumWidth(300) self.dest_btn = QPushButton(_('Browse...')) self.dest_btn.setAutoDefault(False) box = QHBoxLayout() box.addWidget(self.dest_edit) box.addWidget(self.dest_btn) form.addRow(_('Destination path:'), box) # archive type selection self._typesradios = QButtonGroup(self) box = QVBoxLayout() for i, spec in enumerate(_ARCHIVE_TYPES): w = QRadioButton(spec['desc'], self) self._typesradios.addButton(w, i) box.addWidget(w) form.addRow(_('Archive types:'), box) # some extras self.hgcmd_txt = QLineEdit() self.hgcmd_txt.setReadOnly(True) form.addRow(_('Hg command:'), self.hgcmd_txt) # set default values self.prevtarget = None self.rev_combo.addItem(WD_PARENT) self.rev_combo.addItems(pycompat.maplist(hglib.tounicode, hglib.namedbranches(self.repo))) for t in sorted(self.repo.tags(), reverse=True): self.rev_combo.addItem(hglib.tounicode(t)) if rev: text = rev selectindex = self.rev_combo.findText(text) if selectindex >= 0: self.rev_combo.setCurrentIndex(selectindex) else: self.rev_combo.insertItem(0, text) self.rev_combo.setCurrentIndex(0) self.rev_combo.setMaxVisibleItems(self.rev_combo.count()) self.subrepos_chk.setChecked(self.get_subrepos_present()) self.dest_edit.setText(hglib.tounicode(self.repo.root)) self._typesradios.button(0).setChecked(True) self.update_path() # connecting slots self.dest_edit.textEdited.connect(self.compose_command) self.rev_combo.editTextChanged.connect(self.rev_combo_changed) self.dest_btn.clicked.connect(self.browse_clicked) self.content_mode.buttonClicked.connect(self.compose_command) self.rootrev_combo.editTextChanged.connect(self.compose_command) self.subrepos_chk.toggled.connect(self.compose_command) self._typesradios.buttonClicked.connect(self.update_path) @property def repo(self): return self._repoagent.rawRepo() def rev_combo_changed(self) -> None: self.subrepos_chk.setChecked(self.get_subrepos_present()) self.update_path() def browse_clicked(self) -> None: """Select the destination directory or file""" dest = self.dest_edit.text() if not os.path.exists(dest): dest = os.path.dirname(dest) select = self.get_selected_archive_type() FD = QFileDialog if select['type'] == 'files': caption = _('Select Destination Folder') filter = '' else: caption = _('Select Destination File') ext = '*' + select['ext'] filter = ';;'.join(['%s (%s)' % (select['label'], ext), _('All files (*)')]) response, _filter = FD.getSaveFileName( self, caption, dest, filter, '', QFileDialog.Option.ReadOnly) if response: self.dest_edit.setText(response) self.update_path() def get_subrepos_present(self) -> bool: rev = self.get_selected_rev() try: ctx = hglib.revsymbol(self.repo, rev) except (error.LookupError, error.RepoLookupError): return False return b'.hgsubstate' in ctx def get_selected_rev(self) -> bytes: rev = self.rev_combo.currentText() if rev == WD_PARENT: rev = b'.' else: rev = hglib.fromunicode(rev) return rev def get_selected_rootrev(self) -> bytes: rev = self.rootrev_combo.currentText() return hglib.fromunicode(rev) def get_selected_archive_type(self) -> Dict[Text, Text]: """Return a dictionary describing the selected archive type""" return _ARCHIVE_TYPES[self._typesradios.checkedId()] def update_path(self) -> None: # pytype: disable=redundant-function-type-comment def remove_ext(path: Text) -> Text: for ext in ('.tar', '.tar.bz2', '.tar.gz', '.zip'): if path.endswith(ext): return path.replace(ext, '') return path def remove_rev(path: Text) -> Text: l = '' for i in pycompat.xrange(self.rev_combo.count() - 1): l += self.rev_combo.itemText(i) revs = [rev[0] for rev in l] revs.append(wdrev) if not self.prevtarget is None: revs.append(self.prevtarget) for rev in ['_' + rev for rev in revs]: if path.endswith(rev): return path.replace(rev, '') return path def add_rev(path: Text, rev: Text) -> Text: return '%s_%s' % (path, rev) def add_ext(path: Text) -> Text: select = self.get_selected_archive_type() if select['type'] != 'files': path += select['ext'] return path # pytype: enable=redundant-function-type-comment text = self.rev_combo.currentText() if len(text) == 0: self.commandChanged.emit() return wdrev = str(self.repo[b'.'].rev()) if text == WD_PARENT: text = wdrev else: try: hglib.revsymbol(self.repo, hglib.fromunicode(text)) except (error.RepoError, error.LookupError): self.commandChanged.emit() return path = self.dest_edit.text() path = remove_ext(path) path = remove_rev(path) path = add_rev(path, text) path = add_ext(path) self.dest_edit.setText(path) self.prevtarget = text self.compose_command() @pyqtSlot() def compose_command(self) -> List[Text]: content = self.content_mode.checkedId() targetrev = hglib.tounicode(self.get_selected_rev()) if content == self._archive_content_all_files: incl = None elif content == self._archive_content_touched_files: incl = 'set:added() or modified()' elif content == self._archive_content_touched_since: expr = 'set:status(%s, %s, added() or modified())' rootrev = hglib.tounicode(self.get_selected_rootrev()) incl = hglib.formatfilespec(expr, rootrev, targetrev) else: assert False cmdline = hglib.buildcmdargs('archive', self.dest_edit.text(), r=targetrev, S=self.subrepos_chk.isChecked(), I=incl, t=self.get_selected_archive_type()['type']) self.hgcmd_txt.setText('hg ' + hglib.prettifycmdline(cmdline)) self.commandChanged.emit() return cmdline def canRunCommand(self) -> bool: rev = self.get_selected_rev() if not rev or not self.dest_edit.text(): return False try: return scmutil.isrevsymbol(self.repo, rev) except error.LookupError: # ambiguous changeid return False def runCommand(self) -> cmdcore.CmdSession: # verify input type = self.get_selected_archive_type()['type'] dest = self.dest_edit.text() if os.path.exists(dest): if type == 'files': if os.path.isfile(dest): qtlib.WarningMsgBox(_('Duplicate Name'), _('The destination "%s" already exists as ' 'a file!') % dest) return cmdcore.nullCmdSession() elif os.listdir(dest): if not qtlib.QuestionMsgBox(_('Confirm Overwrite'), _('The directory "%s" is not empty!\n\n' 'Do you want to overwrite it?') % dest, parent=self): return cmdcore.nullCmdSession() else: if os.path.isfile(dest): if not qtlib.QuestionMsgBox(_('Confirm Overwrite'), _('The file "%s" already exists!\n\n' 'Do you want to overwrite it?') % dest, parent=self): return cmdcore.nullCmdSession() else: qtlib.WarningMsgBox(_('Duplicate Name'), _('The destination "%s" already exists as ' 'a folder!') % dest) return cmdcore.nullCmdSession() cmdline = self.compose_command() return self._repoagent.runCommand(cmdline, self) def createArchiveDialog(repoagent: thgrepo.RepoAgent, rev: Optional[Text] = None, parent: Optional[QWidget] = None, minrev: Optional[Text] = None) -> cmdui.CmdControlDialog: dlg = cmdui.CmdControlDialog(parent) dlg.setWindowTitle(_('Archive - %s') % repoagent.displayName()) dlg.setWindowIcon(qtlib.geticon('hg-archive')) dlg.setObjectName('archive') dlg.setRunButtonText(_('&Archive')) dlg.setCommandWidget(ArchiveWidget(repoagent, rev, dlg, minrev)) return dlg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1736945585.0 tortoisehg-6.9/tortoisehg/hgqt/backout.py0000644000000000000000000005253314741727661017500 0ustar00rootroot# backout.py - Backout dialog for TortoiseHg # # Copyright 2010 Yuki KODAMA # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations from .qtcore import ( QSettings, QSize, Qt, pyqtSlot, ) from .qtgui import ( QAction, QCheckBox, QHBoxLayout, QLabel, QProgressBar, QVBoxLayout, QWizard, QWizardPage, ) from ..util import ( hglib, i18n, ) from ..util.i18n import _ from . import ( cmdcore, cmdui, csinfo, qscilib, qtlib, messageentry, resolve, status, thgrepo, wctxcleaner, ) if hglib.TYPE_CHECKING: from typing import ( Optional, Text, ) from mercurial import ( localrepo, ) from .qtgui import ( QWidget, ) from .thgrepo import ( RepoAgent, ) from ..util.typelib import ( HgContext, ) def checkrev(repo: localrepo.localrepository, rev: int) -> Optional[Text]: op1, op2 = repo.dirstate.parents() if op1 is None: return _('Backout requires a parent revision') bctx = repo[rev] a = repo.changelog.ancestor(op1, bctx.node()) if a != bctx.node(): return _('Cannot backout change on a different branch') class BackoutDialog(QWizard): def __init__(self, repoagent: RepoAgent, rev: int, parent: Optional[QWidget] = None) -> None: super(BackoutDialog, self).__init__(parent) self._repoagent = repoagent f = self.windowFlags() self.setWindowFlags(f & ~Qt.WindowType.WindowContextHelpButtonHint) repo = repoagent.rawRepo() parentbackout = repo[rev] == repo[b'.'] self.setWindowTitle(_('Backout - %s') % repoagent.displayName()) self.setWindowIcon(qtlib.geticon('hg-revert')) self.setOption(QWizard.WizardOption.NoBackButtonOnStartPage, True) self.setOption(QWizard.WizardOption.NoBackButtonOnLastPage, True) self.setOption(QWizard.WizardOption.IndependentPages, True) self.addPage(SummaryPage(repoagent, rev, parentbackout, self)) self.addPage(BackoutPage(repoagent, rev, parentbackout, self)) self.addPage(CommitPage(repoagent, rev, parentbackout, self)) self.addPage(ResultPage(repoagent, self)) self.currentIdChanged.connect(self.pageChanged) self.resize(QSize(700, 489).expandedTo(self.minimumSizeHint())) repoagent.repositoryChanged.connect(self.repositoryChanged) repoagent.configChanged.connect(self.configChanged) self._readSettings() def _readSettings(self) -> None: qs = QSettings() qs.beginGroup('backout') for n in ['autoadvance', 'skiplast']: self.setField(n, qs.value(n, False)) n = 'autoresolve' self.setField( n, self._repoagent.configBool('tortoisehg', n, qtlib.readBool(qs, n, True))) qs.endGroup() def _writeSettings(self) -> None: qs = QSettings() qs.beginGroup('backout') for n in ['autoadvance', 'autoresolve', 'skiplast']: qs.setValue(n, self.field(n)) qs.endGroup() @pyqtSlot() def repositoryChanged(self) -> None: self.currentPage().repositoryChanged() @pyqtSlot() def configChanged(self) -> None: self.currentPage().configChanged() def pageChanged(self, id: int) -> None: if id != -1: self.currentPage().currentPage() def reject(self) -> None: if self.currentPage().canExit(): super(BackoutDialog, self).reject() def done(self, r: int) -> None: self._writeSettings() super(BackoutDialog, self).done(r) class BasePage(QWizardPage): def __init__(self, repoagent: RepoAgent, parent: Optional[QWidget]) -> None: super(BasePage, self).__init__(parent) self._repoagent = repoagent @property def repo(self) -> localrepo.localrepository: return self._repoagent.rawRepo() def validatePage(self) -> bool: 'user pressed NEXT button, can we proceed?' return True def isComplete(self) -> bool: 'should NEXT button be sensitive?' return True def repositoryChanged(self) -> None: 'repository has detected a change to changelog or parents' pass def configChanged(self) -> None: 'repository has detected a change to config files' pass def currentPage(self) -> None: pass def canExit(self) -> bool: return True class SummaryPage(BasePage): def __init__(self, repoagent: RepoAgent, backoutrev: int, parentbackout: bool, parent: Optional[QWidget]) -> None: super(SummaryPage, self).__init__(repoagent, parent) self._wctxcleaner = wctxcleaner.WctxCleaner(repoagent, self) self._wctxcleaner.checkStarted.connect(self._onCheckStarted) self._wctxcleaner.checkFinished.connect(self._onCheckFinished) self.setTitle(_('Prepare to backout')) self.setSubTitle(_('Verify backout revision and ensure your working ' 'directory is clean.')) self.setLayout(QVBoxLayout()) self.groups = qtlib.WidgetGroups() repo = self.repo bctx = repo[backoutrev] pctx = repo[b'.'] if parentbackout: lbl = _('Backing out a parent revision is a single step operation') self.layout().addWidget(QLabel(u'%s' % lbl)) ## backout revision style = csinfo.panelstyle(contents=csinfo.PANEL_DEFAULT) create = csinfo.factory(repo, None, style, withupdate=True) sep = qtlib.LabeledSeparator(_('Backout revision')) self.layout().addWidget(sep) backoutCsInfo = create(bctx.rev()) self.layout().addWidget(backoutCsInfo) ## current revision contents = ('ishead',) + csinfo.PANEL_DEFAULT style = csinfo.panelstyle(contents=contents) def markup_func(widget, item, value): if item == 'ishead' and value is False: text = _('Not a head, backout will create a new head!') return qtlib.markup(text, fg='red', weight='bold') raise csinfo.UnknownItem(item) custom = csinfo.custom(markup=markup_func) create = csinfo.factory(repo, custom, style, withupdate=True) sep = qtlib.LabeledSeparator(_('Current local revision')) self.layout().addWidget(sep) localCsInfo = create(pctx.rev()) self.layout().addWidget(localCsInfo) self.localCsInfo = localCsInfo ## working directory status sep = qtlib.LabeledSeparator(_('Working directory status')) self.layout().addWidget(sep) wdbox = QHBoxLayout() self.layout().addLayout(wdbox) self.wd_status = qtlib.StatusLabel() self.wd_status.set_status(_('Checking...')) wdbox.addWidget(self.wd_status) wd_prog = QProgressBar() wd_prog.setMaximum(0) wd_prog.setTextVisible(False) self.groups.add(wd_prog, 'prog') wdbox.addWidget(wd_prog, 1) text = _('Before backout, you must commit, ' 'shelve to patch, ' 'or discard changes.') wd_text = QLabel(text) wd_text.setWordWrap(True) wd_text.linkActivated.connect(self._wctxcleaner.runCleaner) self.wd_text = wd_text self.groups.add(wd_text, 'dirty') self.layout().addWidget(wd_text) ## auto-resolve autoresolve_chk = QCheckBox(_('Automatically resolve merge conflicts ' 'where possible')) self.registerField('autoresolve', autoresolve_chk) self.layout().addWidget(autoresolve_chk) self.groups.set_visible(False, 'dirty') def isComplete(self) -> bool: 'should Next button be sensitive?' return self._wctxcleaner.isClean() def repositoryChanged(self) -> None: 'repository has detected a change to changelog or parents' pctx = self.repo[b'.'] self.localCsInfo.updateItems(pctx) def canExit(self) -> bool: 'can backout tool be closed?' if self._wctxcleaner.isChecking(): self._wctxcleaner.cancelCheck() return True def currentPage(self) -> None: self.refresh() def refresh(self) -> None: self._wctxcleaner.check() @pyqtSlot() def _onCheckStarted(self) -> None: self.groups.set_visible(True, 'prog') @pyqtSlot(bool) def _onCheckFinished(self, clean: bool) -> None: self.groups.set_visible(False, 'prog') if self._wctxcleaner.isCheckCanceled(): return if not clean: self.groups.set_visible(True, 'dirty') self.wd_status.set_status(_('Uncommitted local changes ' 'are detected'), 'thg-warning') else: self.groups.set_visible(False, 'dirty') self.wd_status.set_status(_('Clean'), True) self.completeChanged.emit() class BackoutPage(BasePage): def __init__(self, repoagent: RepoAgent, backoutrev: int, parentbackout: bool, parent: Optional[QWidget]) -> None: super(BackoutPage, self).__init__(repoagent, parent) self._backoutrev = backoutrev self._parentbackout = parentbackout self.backoutcomplete = False self.setTitle(_('Backing out, then merging...')) self.setSubTitle(_('All conflicting files will be marked unresolved.')) self.setLayout(QVBoxLayout()) self._cmdlog = cmdui.LogWidget(self) self.layout().addWidget(self._cmdlog) self.reslabel = QLabel() self.reslabel.linkActivated.connect(self.onLinkActivated) self.reslabel.setWordWrap(True) self.layout().addWidget(self.reslabel) autonext = QCheckBox(_('Automatically advance to next page ' 'when backout and merge are complete.')) autonext.clicked.connect(self.tryAutoAdvance) self.registerField('autoadvance', autonext) self.layout().addWidget(autonext) def currentPage(self) -> None: if self._parentbackout: self.wizard().next() return tool = self.field('autoresolve') and ':merge' or ':fail' cmdline = hglib.buildcmdargs('backout', self._backoutrev, tool=tool, no_commit=True) self._cmdlog.clearLog() sess = self._repoagent.runCommand(cmdline, self) sess.commandFinished.connect(self.onCommandFinished) sess.outputReceived.connect(self._cmdlog.appendLog) def isComplete(self) -> bool: 'should Next button be sensitive?' if not self.backoutcomplete: return False count = 0 for root, path, status in thgrepo.recursiveMergeStatus(self.repo): if status == b'u': count += 1 if count: # if autoresolve is enabled, we know these were real conflicts self.reslabel.setText(_('%d files have merge conflicts ' 'that must be ' 'resolved') % count) return False else: self.reslabel.setText(_('No merge conflicts, ready to commit')) return True @pyqtSlot(bool) def tryAutoAdvance(self, checked: bool) -> None: if checked and self.isComplete(): self.wizard().next() @pyqtSlot(int) def onCommandFinished(self, ret: int) -> None: if ret in (0, 1): self.backoutcomplete = True if self.field('autoadvance'): self.tryAutoAdvance(True) self.completeChanged.emit() @pyqtSlot(str) def onLinkActivated(self, cmd: Text) -> None: if cmd == 'resolve': dlg = resolve.ResolveDialog(self._repoagent, self) dlg.exec() if self.field('autoadvance'): self.tryAutoAdvance(True) self.completeChanged.emit() class CommitPage(BasePage): def __init__(self, repoagent: RepoAgent, backoutrev: int, parentbackout: bool, parent: Optional[QWidget]) -> None: super(CommitPage, self).__init__(repoagent, parent) self._backoutrev = backoutrev self._parentbackout = parentbackout self.commitComplete = False self.setTitle(_('Commit backout and merge results')) self.setSubTitle(' ') self.setLayout(QVBoxLayout()) self.setCommitPage(True) repo = repoagent.rawRepo() # pytype: disable=redundant-function-type-comment # csinfo def label_func(widget, item: Text, ctx: HgContext): if item == 'rev': return _('Revision:') elif item == 'parents': return _('Parents') raise csinfo.UnknownItem() def data_func(widget, item: Text, ctx: HgContext): if item == 'rev': return _('Working Directory'), str(ctx) elif item == 'parents': parents = [] cbranch = ctx.branch() for pctx in ctx.parents(): branch = None if hasattr(pctx, 'branch') and pctx.branch() != cbranch: branch = pctx.branch() # TODO: convert branch name to str like data_func() in # revpanel? The branch always seems to be None, because # ctx always has one parent and is pctx with a '+', # unless backing out in the middle of an uncommitted # merge. parents.append((str(pctx.rev()), str(pctx), branch, pctx)) return parents raise csinfo.UnknownItem() def markup_func(widget, item, value): if item == 'rev': text, rev = value if parentbackout: return '%s (%s)' % (text, rev) else: return '%s (%s)' % (text, rev) elif item == 'parents': def branch_markup(branch: Text) -> Text: opts = dict(fg='black', bg='#aaffaa') return qtlib.markup(' %s ' % branch, **opts) csets = [] for rnum, rid, branch, pctx in value: line = '%s (%s)' % (rnum, rid) if branch: line = '%s %s' % (line, branch_markup(branch)) msg = widget.info.get_data('summary', widget, pctx, widget.custom) if msg: line = '%s %s' % (line, msg) csets.append(line) return csets raise csinfo.UnknownItem() # pytype: enable=redundant-function-type-comment custom = csinfo.custom(label=label_func, data=data_func, markup=markup_func) contents = ('rev', 'user', 'dateage', 'branch', 'parents') style = csinfo.panelstyle(contents=contents, margin=6) # merged files rev_sep = qtlib.LabeledSeparator(_('Working Directory (merged)')) self.layout().addWidget(rev_sep) bkCsInfo = csinfo.create(repo, None, style, custom=custom, withupdate=True) bkCsInfo.linkActivated.connect(self.onLinkActivated) self.layout().addWidget(bkCsInfo) # commit message area msg_sep = qtlib.LabeledSeparator(_('Commit message')) self.layout().addWidget(msg_sep) msgEntry = messageentry.MessageEntry(self) msgEntry.installEventFilter(qscilib.KeyPressInterceptor(self)) msgEntry.refresh(repo) msgEntry.loadSettings(QSettings(), 'backout/message') msgEntry.textChanged.connect(self.completeChanged) self.layout().addWidget(msgEntry) self.msgEntry = msgEntry self._cmdsession = cmdcore.nullCmdSession() self._cmdlog = cmdui.LogWidget(self) self._cmdlog.hide() self.layout().addWidget(self._cmdlog) def tryperform(): if self.isComplete(): self.wizard().next() actionEnter = QAction('alt-enter', self) actionEnter.setShortcuts([ qtlib.keyCombinationValue(Qt.Modifier.CTRL | Qt.Key.Key_Return), qtlib.keyCombinationValue(Qt.Modifier.CTRL | Qt.Key.Key_Enter), ]) actionEnter.triggered.connect(tryperform) self.addAction(actionEnter) skiplast = QCheckBox(_('Skip final confirmation page, ' 'close after commit.')) self.registerField('skiplast', skiplast) self.layout().addWidget(skiplast) def eng_toggled(checked): if self.isComplete(): oldmsg = self.msgEntry.text() msgset = i18n.keepgettext()._('Backed out changeset: ') msg = checked and msgset['id'] or msgset['str'] if oldmsg and oldmsg != msg: if not qtlib.QuestionMsgBox(_('Confirm Discard Message'), _('Discard current backout message?'), parent=self): self.engChk.blockSignals(True) self.engChk.setChecked(not checked) self.engChk.blockSignals(False) return self.msgEntry.setText(msg + str(self.repo[self._backoutrev])) self.msgEntry.moveCursorToEnd() self.engChk = QCheckBox(_('Use English backout message')) self.engChk.toggled.connect(eng_toggled) engmsg = repoagent.configBool('tortoisehg', 'engmsg') self.engChk.setChecked(engmsg) self.layout().addWidget(self.engChk) def refresh(self) -> None: pass def cleanupPage(self) -> None: s = QSettings() self.msgEntry.saveSettings(s, 'backout/message') def currentPage(self) -> None: engmsg = self._repoagent.configBool('tortoisehg', 'engmsg') msgset = i18n.keepgettext()._('Backed out changeset: ') msg = engmsg and msgset['id'] or msgset['str'] self.msgEntry.setText(msg + str(self.repo[self._backoutrev])) self.msgEntry.moveCursorToEnd() @pyqtSlot(str) def onLinkActivated(self, cmd: Text) -> None: if cmd == 'view': dlg = status.StatusDialog(self._repoagent, [], {}, self) dlg.exec() self.refresh() def isComplete(self) -> bool: return len(self.msgEntry.text()) > 0 def validatePage(self) -> bool: if self.commitComplete: # commit succeeded, repositoryChanged() called wizard().next() if self.field('skiplast'): self.wizard().close() return True if not self._cmdsession.isFinished(): return False user = qtlib.getCurrentUsername(self, self.repo) if not user: return False if self._parentbackout: self.setTitle(_('Backing out and committing...')) self.setSubTitle(_('Please wait while making backout.')) message = self.msgEntry.text() cmdline = hglib.buildcmdargs('backout', self._backoutrev, verbose=True, message=message, user=user) else: self.setTitle(_('Committing...')) self.setSubTitle(_('Please wait while committing merged files.')) message = self.msgEntry.text() cmdline = hglib.buildcmdargs('commit', verbose=True, message=message, user=user) commandlines = [cmdline] pushafter = self._repoagent.configString('tortoisehg', 'cipushafter') if pushafter: cmd = ['push', pushafter] commandlines.append(cmd) self._cmdlog.show() sess = self._repoagent.runCommandSequence(commandlines, self) self._cmdsession = sess sess.commandFinished.connect(self.onCommandFinished) sess.outputReceived.connect(self._cmdlog.appendLog) return False @pyqtSlot(int) def onCommandFinished(self, ret: int) -> None: if ret == 0: self.commitComplete = True self.wizard().next() class ResultPage(BasePage): def __init__(self, repoagent: RepoAgent, parent: Optional[QWidget]) -> None: super(ResultPage, self).__init__(repoagent, parent) self.setTitle(_('Finished')) self.setSubTitle(' ') self.setFinalPage(True) self.setLayout(QVBoxLayout()) sep = qtlib.LabeledSeparator(_('Backout changeset')) self.layout().addWidget(sep) bkCsInfo = csinfo.create(self.repo, 'tip', withupdate=True) self.layout().addWidget(bkCsInfo) self.bkCsInfo = bkCsInfo self.layout().addStretch(1) def currentPage(self) -> None: self.bkCsInfo.updateItems(self.repo[b'tip']) self.wizard().setOption(QWizard.WizardOption.NoCancelButton, True) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/bisect.py0000644000000000000000000001471714672254332017314 0ustar00rootroot# bisect.py - Bisect dialog for TortoiseHg # # Copyright 2010 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations from .qtcore import ( Qt, pyqtSignal, pyqtSlot, ) from .qtgui import ( QAbstractButton, QCheckBox, QDialog, QDialogButtonBox, QFormLayout, QHBoxLayout, QLineEdit, QPushButton, QVBoxLayout, ) from mercurial import ( error, ) from ..util import hglib from ..util.i18n import _ from . import ( cmdcore, cmdui, qtlib, ) class BisectDialog(QDialog): newCandidate = pyqtSignal() def __init__(self, repoagent, parent=None): super(BisectDialog, self).__init__(parent) self.setWindowTitle(_('Bisect - %s') % repoagent.displayName()) self.setWindowIcon(qtlib.geticon('hg-bisect')) self.setWindowFlags(self.windowFlags() & ~Qt.WindowType.WindowContextHelpButtonHint) self._repoagent = repoagent self._cmdsession = cmdcore.nullCmdSession() # base layout box box = QVBoxLayout() box.setSpacing(6) self.setLayout(box) form = QFormLayout() box.addLayout(form) hbox = QHBoxLayout() self._gle = gle = QLineEdit() hbox.addWidget(gle, 1) self._gb = gb = QPushButton(_('Accept')) hbox.addWidget(gb) form.addRow(_('Known good revision:'), hbox) hbox = QHBoxLayout() self._ble = ble = QLineEdit() hbox.addWidget(ble, 1) self._bb = bb = QPushButton(_('Accept')) hbox.addWidget(bb) form.addRow(_('Known bad revision:'), hbox) self.discard_chk = QCheckBox(_('Discard local changes ' '(revert --all)')) form.addRow(self.discard_chk) ## command widget self._cmdlog = log = cmdui.LogWidget(self) box.addWidget(log, 1) self._stbar = stbar = cmdui.ThgStatusBar(self) stbar.setSizeGripEnabled(False) box.addWidget(stbar) self._nextbuttons = buttons = QDialogButtonBox(self) buttons.setCenterButtons(True) buttons.clicked.connect(self._markRevision) box.addWidget(buttons) for state, text in [('good', _('Revision is &Good')), ('bad', _('Revision is &Bad')), ('skip', _('&Skip this Revision'))]: btn = buttons.addButton(text, QDialogButtonBox.ButtonRole.ActionRole) btn.setObjectName(state) hbox = QHBoxLayout() box.addLayout(hbox) hbox.addStretch() closeb = QPushButton(_('Close')) hbox.addWidget(closeb) closeb.clicked.connect(self.reject) self.goodrev = self.badrev = self.lastrev = None self.restart() gb.clicked.connect(self._verifyGood) bb.clicked.connect(self._verifyBad) gle.returnPressed.connect(self._verifyGood) ble.returnPressed.connect(self._verifyBad) @property def repo(self): return self._repoagent.rawRepo() def restart(self, goodrev=None, badrev=None): if not self._cmdsession.isFinished(): return self._gle.setEnabled(True) self._gle.setText(goodrev or '') self._gb.setEnabled(True) self._ble.setEnabled(False) self._ble.setText(badrev or '') self._bb.setEnabled(False) self._nextbuttons.setEnabled(False) self._cmdlog.clearLog() self._stbar.showMessage('') self.goodrev = self.badrev = self.lastrev = None def _setSession(self, sess): assert self._cmdsession.isFinished() self._cmdsession = sess sess.commandFinished.connect(self._cmdFinished) sess.outputReceived.connect(self._cmdlog.appendLog) sess.progressReceived.connect(self._stbar.setProgress) cmdui.updateStatusMessage(self._stbar, sess) @pyqtSlot(int) def _cmdFinished(self, ret): self._stbar.clearProgress() if ret != 0: self._stbar.showMessage(_('Error encountered.'), True) return self.repo.invalidatedirstate() ctx = self.repo[b'.'] if ctx.rev() == self.lastrev: self._stbar.showMessage(_('Culprit found.')) return self.lastrev = ctx.rev() self._nextbuttons.setEnabled(True) self._stbar.showMessage('%s: %d (%s) -> %s' % (_('Revision'), ctx.rev(), ctx, _('Test this revision and report findings. ' '(good/bad/skip)'))) self.newCandidate.emit() def _lookupRevision(self, changeid): try: ctx = hglib.revsymbol(self.repo, hglib.fromunicode(changeid)) return ctx.rev() except (error.LookupError, error.RepoLookupError) as e: self._stbar.showMessage(hglib.exception_str(e)) except error.Abort as e: self._stbar.showMessage(hglib.exception_str(e, show_hint=True)) @pyqtSlot() def _verifyGood(self): self.goodrev = self._lookupRevision(self._gle.text().strip()) if self.goodrev is None: return self._gb.setEnabled(False) self._gle.setEnabled(False) self._bb.setEnabled(True) self._ble.setEnabled(True) self._ble.setFocus() @pyqtSlot() def _verifyBad(self): self.badrev = self._lookupRevision(self._ble.text().strip()) if self.badrev is None: return self._ble.setEnabled(False) self._bb.setEnabled(False) cmds = [] if self.discard_chk.isChecked(): cmds.append(hglib.buildcmdargs('revert', all=True)) cmds.append(hglib.buildcmdargs('bisect', reset=True)) cmds.append(hglib.buildcmdargs('bisect', self.goodrev, good=True)) cmds.append(hglib.buildcmdargs('bisect', self.badrev, bad=True)) self._setSession(self._repoagent.runCommandSequence(cmds, self)) @pyqtSlot(QAbstractButton) def _markRevision(self, button: QAbstractButton) -> None: self._nextbuttons.setEnabled(False) state = button.objectName() cmds = [] if self.discard_chk.isChecked(): cmds.append(hglib.buildcmdargs('revert', all=True)) cmds.append(hglib.buildcmdargs('bisect', '.', **{state: True})) self._setSession(self._repoagent.runCommandSequence(cmds, self)) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/blockmatcher.py0000644000000000000000000003112314672254332020467 0ustar00rootroot# Copyright (c) 2003-2010 LOGILAB S.A. (Paris, FRANCE). # http://www.logilab.fr/ -- mailto:contact@logilab.fr # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along with # this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. """ Qt4 widgets to display diffs as blocks """ from __future__ import annotations from .qtcore import ( Qt, pyqtSignal, pyqtSlot, ) from .qtgui import ( QColor, QFrame, QHBoxLayout, QPainter, QPainterPath, QScrollBar, QSizePolicy, QWidget, ) class BlockList(QWidget): """ A simple widget to be 'linked' to the scrollbar of a diff text view. It represents diff blocks with coloured rectangles, showing currently viewed area by a semi-transparant rectangle sliding above them. """ rangeChanged = pyqtSignal(int,int) valueChanged = pyqtSignal(int) pageStepChanged = pyqtSignal(int) def __init__(self, *args): QWidget.__init__(self, *args) self._blocks = set() self._minimum = 0 self._maximum = 100 self.blockTypes = {'+': QColor(0xA0, 0xFF, 0xB0, ),#0xa5), '-': QColor(0xFF, 0xA0, 0xA0, ),#0xa5), 'x': QColor(0xA0, 0xA0, 0xFF, ),#0xa5), 's': QColor(0xFF, 0xA5, 0x00, ),#0xa5), } self._sbar = None self._value = 0 self._pagestep = 10 self._vrectcolor = QColor(0x00, 0x00, 0x55, 0x25) self._vrectbordercolor = self._vrectcolor.darker() self.sizePolicy().setControlType(QSizePolicy.ControlType.Slider) self.setMinimumWidth(20) def clear(self): self._blocks = set() def addBlock(self, typ, alo, ahi): self._blocks.add((typ, alo, ahi)) def setMaximum(self, maximum: int) -> None: self._maximum = maximum self.update() self.rangeChanged.emit(self._minimum, self._maximum) def setMinimum(self, minimum: int) -> None: self._minimum = minimum self.update() self.rangeChanged.emit(self._minimum, self._maximum) def setRange(self, minimum, maximum): if minimum == maximum: return self._minimum = minimum self._maximum = maximum self.update() self.rangeChanged.emit(self._minimum, self._maximum) def setValue(self, val): if val != self._value: self._value = val self.update() self.valueChanged.emit(val) def setPageStep(self, pagestep: int) -> None: if pagestep != self._pagestep: self._pagestep = pagestep self.update() self.pageStepChanged.emit(pagestep) def linkScrollBar(self, sbar): """ Make the block list displayer be linked to the scrollbar """ self._sbar = sbar self.setUpdatesEnabled(False) self.setMaximum(sbar.maximum()) self.setMinimum(sbar.minimum()) self.setPageStep(sbar.pageStep()) self.setValue(sbar.value()) self.setUpdatesEnabled(True) sbar.valueChanged.connect(self.setValue) sbar.rangeChanged.connect(self.setRange) self.valueChanged.connect(sbar.setValue) self.rangeChanged.connect(lambda x, y: sbar.setRange(x,y)) self.pageStepChanged.connect(lambda x: sbar.setPageStep(x)) def syncPageStep(self): self.setPageStep(self._sbar.pageStep()) def paintEvent(self, event): w = self.width() - 1 h = self.height() p = QPainter(self) sy = float(h) / (self._maximum - self._minimum + self._pagestep) for typ, alo, ahi in self._blocks: color = self.blockTypes[typ] p.setPen(color) # make sure the height is at least 1px p.setBrush(color) p.drawRect(1, int(alo * sy), w - 1, int((ahi - alo) * sy)) p.setPen(self._vrectbordercolor) p.setBrush(self._vrectcolor) p.drawRect(0, int(self._value * sy), w, int(self._pagestep * sy)) def scrollToPos(self, y): # Scroll to the position which specified by Y coodinate. if not isinstance(self._sbar, QScrollBar): return ratio = float(y) / self.height() minimum, maximum, step = self._minimum, self._maximum, self._pagestep value = minimum + (maximum + step - minimum) * ratio - (step * 0.5) value = min(maximum, max(minimum, value)) # round to valid range. self.setValue(value) def mousePressEvent(self, event): super(BlockList, self).mousePressEvent(event) self.scrollToPos(event.y()) def mouseMoveEvent(self, event): super(BlockList, self).mouseMoveEvent(event) self.scrollToPos(event.y()) class BlockMatch(BlockList): """ A simpe widget to be linked to 2 file views (text areas), displaying 2 versions of a same file (diff). It will show graphically matching diff blocks between the 2 text areas. """ rangeChanged = pyqtSignal(int, int, str) valueChanged = pyqtSignal(int, str) pageStepChanged = pyqtSignal(int, str) def __init__(self, *args): QWidget.__init__(self, *args) self._blocks = set() self._minimum = {'left': 0, 'right': 0} self._maximum = {'left': 100, 'right': 100} self.blockTypes = {'+': QColor(0xA0, 0xFF, 0xB0, ),#0xa5), '-': QColor(0xFF, 0xA0, 0xA0, ),#0xa5), 'x': QColor(0xA0, 0xA0, 0xFF, ),#0xa5), } self._sbar = {} self._value = {'left': 0, 'right': 0} self._pagestep = {'left': 10, 'right': 10} self._vrectcolor = QColor(0x00, 0x00, 0x55, 0x25) self._vrectbordercolor = self._vrectcolor.darker() self.sizePolicy().setControlType(QSizePolicy.ControlType.Slider) self.setMinimumWidth(20) def nDiffs(self): return len(self._blocks) def showDiff(self, delta): ps_l = float(self._pagestep['left']) ps_r = float(self._pagestep['right']) mv_l = self._value['left'] mv_r = self._value['right'] Mv_l = mv_l + ps_l Mv_r = mv_r + ps_r vblocks = [] blocks = sorted(self._blocks, key=lambda x:(x[1],x[3],x[2],x[4])) for i, (typ, alo, ahi, blo, bhi) in enumerate(blocks): if (mv_l<=alo<=Mv_l or mv_l<=ahi<=Mv_l or mv_r<=blo<=Mv_r or mv_r<=bhi<=Mv_r): break else: i = -1 i += delta if i < 0: return -1 if i >= len(blocks): return 1 typ, alo, ahi, blo, bhi = blocks[i] self.setValue(alo, "left") self.setValue(blo, "right") if i == 0: return -1 if i == len(blocks)-1: return 1 return 0 def nextDiff(self): return self.showDiff(+1) def prevDiff(self): return self.showDiff(-1) def addBlock(self, typ, alo, ahi, blo=None, bhi=None): if bhi is None: bhi = ahi if blo is None: blo = alo self._blocks.add((typ, alo, ahi, blo, bhi)) def paintEvent(self, event): if self._pagestep['left'] == 0 or self._pagestep['right'] == 0: return w = self.width() h = self.height() p = QPainter(self) p.setRenderHint(QPainter.RenderHint.Antialiasing) ps_l = float(self._pagestep['left']) ps_r = float(self._pagestep['right']) v_l = self._value['left'] v_r = self._value['right'] # we do integer divisions here cause the pagestep is the # integer number of fully displayed text lines scalel = self._sbar['left'].height()//ps_l scaler = self._sbar['right'].height()//ps_r ml = v_l Ml = v_l + ps_l mr = v_r Mr = v_r + ps_r p.setPen(Qt.PenStyle.NoPen) for typ, alo, ahi, blo, bhi in self._blocks: if not (ml<=alo<=Ml or ml<=ahi<=Ml or mr<=blo<=Mr or mr<=bhi<=Mr): continue p.save() p.setBrush(self.blockTypes[typ]) path = QPainterPath() path.moveTo(0, scalel * (alo - ml)) path.cubicTo(w/3.0, scalel * (alo - ml), 2*w/3.0, scaler * (blo - mr), w, scaler * (blo - mr)) path.lineTo(w, scaler * (bhi - mr) + 2) path.cubicTo(2*w/3.0, scaler * (bhi - mr) + 2, w/3.0, scalel * (ahi - ml) + 2, 0, scalel * (ahi - ml) + 2) path.closeSubpath() p.drawPath(path) p.restore() def setMaximum(self, maximum: int, side: str = 'left') -> None: self._maximum[side] = maximum self.update() self.rangeChanged.emit(self._minimum[side], self._maximum[side], side) def setMinimum(self, minimum: int, side: str = 'left') -> None: self._minimum[side] = minimum self.update() self.rangeChanged.emit(self._minimum[side], self._maximum[side], side) def setRange(self, minimum, maximum, side=None): if side is None: if self.sender() == self._sbar['left']: side = 'left' else: side = 'right' self._minimum[side] = minimum self._maximum[side] = maximum self.update() self.rangeChanged.emit(self._minimum[side], self._maximum[side], side) def setValue(self, val, side=None): if side is None: if self.sender() == self._sbar['left']: side = 'left' else: side = 'right' if val != self._value[side]: self._value[side] = val self.update() self.valueChanged.emit(val, side) def setPageStep(self, pagestep: int, side: str = 'left') -> None: if pagestep != self._pagestep[side]: self._pagestep[side] = pagestep self.update() self.pageStepChanged.emit(pagestep, side) @pyqtSlot() def syncPageStep(self): for side in ['left', 'right']: self.setPageStep(self._sbar[side].pageStep(), side) def linkScrollBar(self, sb, side): """ Make the block list displayer be linked to the scrollbar """ if self._sbar is None: self._sbar = {} self._sbar[side] = sb self.setUpdatesEnabled(False) self.setMaximum(sb.maximum(), side) self.setMinimum(sb.minimum(), side) self.setPageStep(sb.pageStep(), side) self.setValue(sb.value(), side) self.setUpdatesEnabled(True) sb.valueChanged.connect(self.setValue) sb.rangeChanged.connect(self.setRange) self.valueChanged.connect(lambda v, s: side==s and sb.setValue(v)) self.rangeChanged.connect( lambda v1, v2, s: side==s and sb.setRange(v1, v2)) self.pageStepChanged.connect( lambda v, s: side==s and sb.setPageStep(v)) def createTestWidget(ui, parent=None): f = QFrame(parent) l = QHBoxLayout(f) sb1 = QScrollBar() sb2 = QScrollBar() w0 = BlockList() w0.addBlock('-', 200, 300) w0.addBlock('-', 450, 460) w0.addBlock('x', 500, 501) w0.linkScrollBar(sb1) w1 = BlockMatch() w1.addBlock('+', 12, 42) w1.addBlock('+', 55, 142) w1.addBlock('-', 200, 300) w1.addBlock('-', 330, 400, 450, 460) w1.addBlock('x', 420, 450, 500, 501) w1.linkScrollBar(sb1, 'left') w1.linkScrollBar(sb2, 'right') w2 = BlockList() w2.addBlock('+', 12, 42) w2.addBlock('+', 55, 142) w2.addBlock('x', 420, 450) w2.linkScrollBar(sb2) l.addWidget(sb1) l.addWidget(w0) l.addWidget(w1) l.addWidget(w2) l.addWidget(sb2) w0.setRange(0, 1200) w0.setPageStep(100) w1.setRange(0, 1200, 'left') w1.setRange(0, 1200, 'right') w1.setPageStep(100, 'left') w1.setPageStep(100, 'right') w2.setRange(0, 1200) w2.setPageStep(100) ui.status(b'sb1=%d %d %d\n' % (sb1.minimum(), sb1.maximum(), sb1.pageStep())) ui.status(b'sb2=%d %d %d\n' % (sb2.minimum(), sb2.maximum(), sb2.pageStep())) return f ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/bookmark.py0000644000000000000000000004275514672254332017653 0ustar00rootroot# bookmark.py - Bookmark dialog for TortoiseHg # # Copyright 2010 Michal De Wildt # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import re from typing import ( List, ) from .qtcore import ( QPoint, Qt, pyqtSlot, ) from .qtgui import ( QAction, QCheckBox, QComboBox, QDialog, QDialogButtonBox, QFormLayout, QFrame, QHBoxLayout, QLabel, QLayout, QListWidget, QLineEdit, QMenu, QSizePolicy, QSplitter, QVBoxLayout, QWidget, ) from mercurial import ( pycompat, ) from ..util import hglib from ..util.i18n import _ from . import ( cmdcore, qtlib, ) class BookmarkDialog(QDialog): def __init__(self, repoagent, rev, parent=None): super(BookmarkDialog, self).__init__(parent) self.setWindowFlags(self.windowFlags() & \ ~Qt.WindowType.WindowContextHelpButtonHint) self._repoagent = repoagent repo = repoagent.rawRepo() self._cmdsession = cmdcore.nullCmdSession() self.rev = rev self.node = repo[rev].node() # base layout box base = QVBoxLayout() base.setSpacing(0) base.setContentsMargins(*(0,)*4) base.setSizeConstraint(QLayout.SizeConstraint.SetMinAndMaxSize) self.setLayout(base) ## main layout grid formwidget = QWidget(self) formwidget.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed) form = QFormLayout(fieldGrowthPolicy=QFormLayout.FieldGrowthPolicy.AllNonFixedFieldsGrow) formwidget.setLayout(form) base.addWidget(formwidget) form.addRow(_('Revision:'), QLabel('%d (%s)' % (rev, repo[rev]))) ### bookmark combo self.bookmarkCombo = QComboBox() self.bookmarkCombo.setEditable(True) self.bookmarkCombo.setMinimumContentsLength(30) # cut long name self.bookmarkCombo.currentIndexChanged.connect(self.bookmarkTextChanged) self.bookmarkCombo.editTextChanged.connect(self.bookmarkTextChanged) qtlib.allowCaseChangingInput(self.bookmarkCombo) form.addRow(_('Bookmark:'), self.bookmarkCombo) ### Rename input self.newNameEdit = QLineEdit() self.newNameEdit.textEdited.connect(self.bookmarkTextChanged) form.addRow(_('New Name:'), self.newNameEdit) ### Activate checkbox self.activateCheckBox = QCheckBox() if self.node == self.repo[b'.'].node(): self.activateCheckBox.setChecked(True) else: self.activateCheckBox.setChecked(False) self.activateCheckBox.setEnabled(False) form.addRow(_('Activate:'), self.activateCheckBox) ## bottom buttons bbox = QDialogButtonBox() self.addBtn = bbox.addButton(_('&Add'), QDialogButtonBox.ButtonRole.ActionRole) self.renameBtn = bbox.addButton(_('Re&name'), QDialogButtonBox.ButtonRole.ActionRole) self.removeBtn = bbox.addButton(_('&Remove'), QDialogButtonBox.ButtonRole.ActionRole) self.moveBtn = bbox.addButton(_('&Move'), QDialogButtonBox.ButtonRole.ActionRole) bbox.addButton(QDialogButtonBox.StandardButton.Close) bbox.rejected.connect(self.reject) form.addRow(bbox) self.addBtn.clicked.connect(self.add_bookmark) self.renameBtn.clicked.connect(self.rename_bookmark) self.removeBtn.clicked.connect(self.remove_bookmark) self.moveBtn.clicked.connect(self.move_bookmark) ## horizontal separator self.sep = QFrame() self.sep.setFrameShadow(QFrame.Shadow.Sunken) self.sep.setFrameShape(QFrame.Shape.HLine) self.layout().addWidget(self.sep) ## status line self.status = qtlib.StatusLabel() self.status.setContentsMargins(4, 2, 4, 4) self.layout().addWidget(self.status) self._finishmsg = None # dialog setting self.setWindowTitle(_('Bookmark - %s') % repoagent.displayName()) self.setWindowIcon(qtlib.geticon('hg-bookmarks')) # prepare to show self.clear_status() self.refresh() self._repoagent.repositoryChanged.connect(self.refresh) self.bookmarkCombo.setFocus() self.bookmarkTextChanged() @property def repo(self): return self._repoagent.rawRepo() def _allBookmarks(self) -> List[str]: return hglib.to_unicode_list(self.repo._bookmarks) @pyqtSlot() def refresh(self): """ update display on dialog with recent repo data """ # add bookmarks to drop-down list cur = self.bookmarkCombo.currentText() self.bookmarkCombo.clear() self.bookmarkCombo.addItems(sorted(self._allBookmarks())) if cur: self.bookmarkCombo.setEditText(cur) else: ctx = self.repo[self.rev] cs_bookmarks = ctx.bookmarks() if hglib.activebookmark(self.repo) in cs_bookmarks: bm = hglib.tounicode(hglib.activebookmark(self.repo)) self.bookmarkCombo.setEditText(bm) elif cs_bookmarks: bm = hglib.tounicode(cs_bookmarks[0]) self.bookmarkCombo.setEditText(bm) else: self.bookmarkTextChanged() @pyqtSlot() def bookmarkTextChanged(self): bookmark = self.bookmarkCombo.currentText() bookmarklocal = hglib.fromunicode(bookmark) if bookmarklocal in self.repo._bookmarks: curnode = self.repo._bookmarks[bookmarklocal] self.addBtn.setEnabled(False) self.newNameEdit.setEnabled(True) self.removeBtn.setEnabled(True) self.renameBtn.setEnabled(bool(self.newNameEdit.text())) self.moveBtn.setEnabled(self.node != curnode) else: self.addBtn.setEnabled(bool(bookmark)) self.removeBtn.setEnabled(False) self.moveBtn.setEnabled(False) self.renameBtn.setEnabled(False) self.newNameEdit.setEnabled(False) def setBookmarkName(self, name): self.bookmarkCombo.setEditText(name) def set_status(self, text, icon=None): self.status.setVisible(True) self.sep.setVisible(True) self.status.set_status(text, icon) def clear_status(self): self.status.setHidden(True) self.sep.setHidden(True) def _runBookmark(self, *args, **opts): self._finishmsg = opts.pop('finishmsg') cmdline = hglib.buildcmdargs('bookmarks', *args, **opts) self._cmdsession = sess = self._repoagent.runCommand(cmdline, self) sess.commandFinished.connect(self._onBookmarkFinished) @pyqtSlot(int) def _onBookmarkFinished(self, ret): if ret == 0: self.bookmarkCombo.clearEditText() self.newNameEdit.setText('') self.set_status(self._finishmsg, True) else: self.set_status(self._cmdsession.errorString(), False) @pyqtSlot() def add_bookmark(self): bookmark = self.bookmarkCombo.currentText() if bookmark in self._allBookmarks(): self.set_status(_('A bookmark named "%s" already exists') % bookmark, False) return finishmsg = _("Bookmark '%s' has been added") % bookmark rev = None if not self.activateCheckBox.isChecked(): rev = self.rev self._runBookmark(bookmark, rev=rev, finishmsg=finishmsg) @pyqtSlot() def move_bookmark(self): bookmark = self.bookmarkCombo.currentText() if bookmark not in self._allBookmarks(): self.set_status(_('Bookmark named "%s" does not exist') % bookmark, False) return finishmsg = _("Bookmark '%s' has been moved") % bookmark rev = None if not self.activateCheckBox.isChecked(): rev = self.rev self._runBookmark(bookmark, rev=rev, force=True, finishmsg=finishmsg) @pyqtSlot() def remove_bookmark(self): bookmark = self.bookmarkCombo.currentText() if bookmark not in self._allBookmarks(): self.set_status(_("Bookmark '%s' does not exist") % bookmark, False) return finishmsg = _("Bookmark '%s' has been removed") % bookmark self._runBookmark(bookmark, delete=True, finishmsg=finishmsg) @pyqtSlot() def rename_bookmark(self): name = self.bookmarkCombo.currentText() if name not in self._allBookmarks(): self.set_status(_("Bookmark '%s' does not exist") % name, False) return newname = self.newNameEdit.text() if newname in self._allBookmarks(): self.set_status(_('A bookmark named "%s" already exists') % newname, False) return finishmsg = (_("Bookmark '%s' has been renamed to '%s'") % (name, newname)) self._runBookmark(name, newname, rename=True, finishmsg=finishmsg) _extractbookmarknames = re.compile(br'(.*) [0-9a-f]{12,}$', re.MULTILINE).findall class SyncBookmarkDialog(QDialog): def __init__(self, repoagent, syncurl=None, parent=None): QDialog.__init__(self, parent) self._repoagent = repoagent self._syncurl = syncurl self._cmdsession = cmdcore.nullCmdSession() self._insess = cmdcore.nullCmdSession() self._outsess = cmdcore.nullCmdSession() self.setWindowTitle(_('TortoiseHg Bookmark Sync')) self.setWindowIcon(qtlib.geticon('thg-sync-bookmarks')) base = QVBoxLayout() base.setSpacing(0) base.setContentsMargins(2, 2, 2, 2) self.setLayout(base) # horizontal splitter self.splitter = QSplitter(self) self.splitter.setOrientation(Qt.Orientation.Horizontal) self.splitter.setChildrenCollapsible(False) self.splitter.setObjectName('splitter') self.layout().addWidget(self.splitter) # outgoing frame outgoingFrame = QFrame(self.splitter) outgoingLayout = QVBoxLayout() outgoingLayout.setSpacing(2) outgoingLayout.setContentsMargins(2, 2, 2, 2) outgoingFrame.setLayout(outgoingLayout) outgoingLabel = QLabel(_('Outgoing Bookmarks')) outgoingLayout.addWidget(outgoingLabel) self.outgoingList = QListWidget(self) self.outgoingList.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) self.outgoingList.setSelectionMode(QListWidget.SelectionMode.ExtendedSelection) self.outgoingList.customContextMenuRequested.connect( self._onOutgoingMenuRequested) self.outgoingList.itemSelectionChanged.connect(self._updateActions) outgoingLayout.addWidget(self.outgoingList) self._outactions = [] a = QAction(_('&Push Bookmark'), self) a.triggered.connect(self.push_bookmark) self._outactions.append(a) a = QAction(_('&Remove Bookmark'), self) a.triggered.connect(self.remove_outgoing) self._outactions.append(a) self.addActions(self._outactions) outgoingBtnLayout = QHBoxLayout() outgoingBtnLayout.setSpacing(2) outgoingBtnLayout.setContentsMargins(2, 2, 2, 2) for a in self._outactions: outgoingBtnLayout.addWidget(qtlib.ActionPushButton(a, self)) outgoingLayout.addLayout(outgoingBtnLayout) # incoming frame incomingFrame = QFrame(self.splitter) incomingLayout = QVBoxLayout() incomingLayout.setSpacing(2) incomingLayout.setContentsMargins(2, 2, 2, 2) incomingFrame.setLayout(incomingLayout) incomingLabel = QLabel(_('Incoming Bookmarks')) incomingLayout.addWidget(incomingLabel) self.incomingList = QListWidget(self) self.incomingList.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) self.incomingList.setSelectionMode(QListWidget.SelectionMode.ExtendedSelection) self.incomingList.customContextMenuRequested.connect( self._onIncomingMenuRequested) self.incomingList.itemSelectionChanged.connect(self._updateActions) incomingLayout.addWidget(self.incomingList) self._inactions = [] a = QAction(_('P&ull Bookmark'), self) a.triggered.connect(self.pull_bookmark) self._inactions.append(a) a = QAction(_('R&emove Bookmark'), self) a.triggered.connect(self.remove_incoming) self._inactions.append(a) self.addActions(self._inactions) incomingBtnLayout = QHBoxLayout() incomingBtnLayout.setSpacing(2) incomingBtnLayout.setContentsMargins(2, 2, 2, 2) for a in self._inactions: incomingBtnLayout.addWidget(qtlib.ActionPushButton(a, self)) incomingLayout.addLayout(incomingBtnLayout) # status line self.status = qtlib.StatusLabel() self.status.setContentsMargins(4, 2, 4, 4) self.layout().addWidget(self.status) self._finishmsg = None self.refresh() def set_status(self, text, icon=None): self.status.set_status(text, icon) @pyqtSlot() def refresh(self): """ update the bookmark lists """ cmdline = hglib.buildcmdargs('outgoing', self._syncurl, bookmarks=True) self._outsess = sess = self._repoagent.runCommand(cmdline, self) sess.setCaptureOutput(True) sess.commandFinished.connect(self._onListLocalBookmarksFinished) cmdline = hglib.buildcmdargs('incoming', self._syncurl, bookmarks=True) self._insess = sess = self._repoagent.runCommand(cmdline, self) sess.setCaptureOutput(True) sess.commandFinished.connect(self._onListRemoteBookmarksFinished) self._updateActions() @pyqtSlot() def _onListLocalBookmarksFinished(self): self._onListBookmarksFinished(self._outsess, self.outgoingList) @pyqtSlot() def _onListRemoteBookmarksFinished(self): self._onListBookmarksFinished(self._insess, self.incomingList) def _onListBookmarksFinished(self, sess, worklist): ret = sess.exitCode() if ret == 0: bookmarks = _extractbookmarknames(bytes(sess.readAll())) self._updateBookmarkList(worklist, bookmarks) elif ret == 1: self._updateBookmarkList(worklist, []) else: self.set_status(sess.errorString(), False) self._updateActions() def selectedOutgoingBookmarks(self): return [x.text() for x in self.outgoingList.selectedItems()] def selectedIncomingBookmarks(self): return [x.text() for x in self.incomingList.selectedItems()] @pyqtSlot() def push_bookmark(self): self._sync('push', self.selectedOutgoingBookmarks(), _('Pushed local bookmark: %s')) @pyqtSlot() def pull_bookmark(self): self._sync('pull', self.selectedIncomingBookmarks(), _('Pulled remote bookmark: %s')) @pyqtSlot() def remove_incoming(self): self._sync('push', self.selectedIncomingBookmarks(), _('Removed remote bookmark: %s')) def _sync(self, cmdname, selected, finishmsg): if not selected: return self._finishmsg = finishmsg % ', '.join(selected) cmdline = hglib.buildcmdargs(cmdname, self._syncurl, bookmark=selected) self._cmdsession = sess = self._repoagent.runCommand(cmdline, self) sess.commandFinished.connect(self._onBoomarkHandlingFinished) self._updateActions() @pyqtSlot() def remove_outgoing(self): selected = self.selectedOutgoingBookmarks() if not selected: return self._finishmsg = _('Removed local bookmark: %s') % ', '.join(selected) cmdline = hglib.buildcmdargs('bookmark', *selected, delete=True) self._cmdsession = sess = self._repoagent.runCommand(cmdline, self) sess.commandFinished.connect(self._onBoomarkHandlingFinished) self._updateActions() @pyqtSlot(int) def _onBoomarkHandlingFinished(self, ret): if ret == 0 or ret == 1: self.set_status(self._finishmsg, True) else: self.set_status(self._cmdsession.errorString(), False) self.refresh() def _updateBookmarkList(self, worklist, bookmarks): selected = [x.text() for x in worklist.selectedItems()] worklist.clear() bookmarks = [hglib.tounicode(x.strip()) for x in bookmarks] worklist.addItems(bookmarks) for select in selected: items = worklist.findItems(select, Qt.MatchFlag.MatchExactly) for item in items: item.setSelected(True) @pyqtSlot(QPoint) def _onOutgoingMenuRequested(self, pos): self._popupMenuFor(self._outactions, self.outgoingList, pos) @pyqtSlot(QPoint) def _onIncomingMenuRequested(self, pos): self._popupMenuFor(self._inactions, self.incomingList, pos) def _popupMenuFor(self, actions, worklist, pos): menu = QMenu(self) menu.addActions(actions) menu.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose) menu.popup(worklist.viewport().mapToGlobal(pos)) @pyqtSlot() def _updateActions(self): state = all(sess.isFinished() for sess in [self._cmdsession, self._insess, self._outsess]) for a in self._outactions: a.setEnabled(state and bool(self.selectedOutgoingBookmarks())) for a in self._inactions: a.setEnabled(state and bool(self.selectedIncomingBookmarks())) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/branchop.py0000644000000000000000000001046514672254332017633 0ustar00rootroot# branchop.py - branch operations dialog for TortoiseHg commit tool # # Copyright 2010 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations from .qtgui import ( QComboBox, QDialog, QDialogButtonBox, QGridLayout, QKeySequence, QLabel, QRadioButton, QShortcut, QVBoxLayout, ) from ..util import hglib from ..util.i18n import _ from . import qtlib class BranchOpDialog(QDialog): 'Dialog for manipulating wctx.branch()' def __init__(self, repoagent, oldbranchop, parent=None): QDialog.__init__(self, parent) self.setWindowTitle(_('%s - branch operation') % repoagent.displayName()) self.setWindowIcon(qtlib.geticon('hg-branch')) layout = QVBoxLayout() self.setLayout(layout) repo = repoagent.rawRepo() wctx = repo[None] if len(wctx.parents()) == 2: lbl = QLabel(''+_('Select branch of merge commit')+'') layout.addWidget(lbl) branchCombo = QComboBox() # If both parents belong to the same branch, do not duplicate the # branch name in the branch select combo branchlist = [p.branch() for p in wctx.parents()] if branchlist[0] == branchlist[1]: branchlist = [branchlist[0]] for b in branchlist: branchCombo.addItem(hglib.tounicode(b)) layout.addWidget(branchCombo) else: text = ''+_('Changes take effect on next commit')+'' lbl = QLabel(text) layout.addWidget(lbl) grid = QGridLayout() nochange = QRadioButton(_('No branch changes')) newbranch = QRadioButton(_('Open a new named branch')) closebranch = QRadioButton(_('Close current branch')) branchCombo = QComboBox() branchCombo.setEditable(True) qtlib.allowCaseChangingInput(branchCombo) wbu = wctx.branch() for name in hglib.namedbranches(repo): if name == wbu: continue branchCombo.addItem(hglib.tounicode(name)) branchCombo.activated.connect(self.accept) grid.addWidget(nochange, 0, 0) grid.addWidget(newbranch, 1, 0) grid.addWidget(branchCombo, 1, 1) grid.addWidget(closebranch, 2, 0) grid.setColumnStretch(0, 0) grid.setColumnStretch(1, 1) layout.addLayout(grid) layout.addStretch() newbranch.toggled.connect(branchCombo.setEnabled) branchCombo.setEnabled(False) if oldbranchop is None: nochange.setChecked(True) elif oldbranchop == False: closebranch.setChecked(True) else: bc = branchCombo i = bc.findText(oldbranchop) if i >= 0: bc.setCurrentIndex(i) else: bc.addItem(oldbranchop) bc.setCurrentIndex(bc.count() - 1) newbranch.setChecked(True) self.closebranch = closebranch bb = QDialogButtonBox(QDialogButtonBox.StandardButton.Ok|QDialogButtonBox.StandardButton.Cancel) bb.accepted.connect(self.accept) bb.rejected.connect(self.reject) bb.button(QDialogButtonBox.StandardButton.Ok).setAutoDefault(True) layout.addWidget(bb) self.bb = bb self.branchCombo = branchCombo QShortcut(QKeySequence('Ctrl+Return'), self, self.accept) QShortcut(QKeySequence('Ctrl+Enter'), self, self.accept) QShortcut(QKeySequence('Escape'), self, self.reject) def accept(self): '''Branch operation is one of: None - leave wctx branch name untouched False - close current branch unicode - open new named branch ''' if self.branchCombo.isEnabled(): # branch name cannot start/end with whitespace (see dirstate._branch) self.branchop = self.branchCombo.currentText().strip() elif self.closebranch.isChecked(): self.branchop = False else: self.branchop = None QDialog.accept(self) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730456417.0 tortoisehg-6.9/tortoisehg/hgqt/bugreport.py0000644000000000000000000002476614711125541020052 0ustar00rootroot# bugreport.py - Report Python tracebacks to the user # # Copyright 2010 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os import sys from .qtcore import ( PYQT_VERSION_STR, QSettings, QTimer, Qt, pyqtSlot, qVersion, ) from .qtgui import ( QApplication, QDialog, QDialogButtonBox, QFileDialog, QLabel, QMessageBox, QTextBrowser, QTextOption, QVBoxLayout, ) from mercurial import ( encoding, extensions, vfs as vfsmod, ) from ..util import ( hglib, hgversion, version, ) from ..util.i18n import _ from . import ( qtlib, updatecheck, ) try: from .qsci import QSCINTILLA_VERSION_STR except (ImportError, AttributeError, RuntimeError): # show BugReport dialog even if QScintilla is missing # or incompatible (RuntimeError: the sip module implements API v...) QSCINTILLA_VERSION_STR = '(unknown)' def _safegetcwd(): try: return os.getcwd() except OSError: return '.' class BugReport(QDialog): def __init__(self, opts, parent=None): super(BugReport, self).__init__(parent) layout = QVBoxLayout() self.setLayout(layout) compat_msg = hgversion.checkhgversion(hgversion.hgversion) bts_url = 'https://foss.heptapod.net/mercurial/tortoisehg/thg/-/issues' lbl = QLabel(self) if compat_msg: lbl.setText(' '.join([ hglib.tounicode(compat_msg), _('bug tracker') % bts_url, ])) else: lbl.setText( _('Please report this bug to our bug tracker') % bts_url) lbl.setOpenExternalLinks(True) self.layout().addWidget(lbl) tb = QTextBrowser() self.text = self.gettext(opts) tb.setHtml('
                                                                                                            ' + qtlib.htmlescape(self.text, False) + '
                                                                                                            ') tb.setWordWrapMode(QTextOption.WrapMode.NoWrap) layout.addWidget(tb) self.download_url_lbl = QLabel(_('Checking for updates...')) self.download_url_lbl.setMouseTracking(True) self.download_url_lbl.setTextInteractionFlags(Qt.TextInteractionFlag.LinksAccessibleByMouse) self.download_url_lbl.setOpenExternalLinks(True) layout.addWidget(self.download_url_lbl) # dialog buttons bb = QDialogButtonBox(QDialogButtonBox.StandardButton.Ok|QDialogButtonBox.StandardButton.Save) bb.button(QDialogButtonBox.StandardButton.Ok).clicked.connect(self.accept) bb.button(QDialogButtonBox.StandardButton.Save).clicked.connect(self.save) bb.button(QDialogButtonBox.StandardButton.Ok).setDefault(True) bb.addButton(_('Copy'), QDialogButtonBox.ButtonRole.HelpRole).clicked.connect(self.copyText) bb.addButton(_('Quit'), QDialogButtonBox.ButtonRole.DestructiveRole).clicked.connect(QApplication.instance().quit) layout.addWidget(bb) self.setWindowTitle(_('TortoiseHg Bug Report')) self.setWindowFlags(self.windowFlags() & \ ~Qt.WindowType.WindowContextHelpButtonHint) self.resize(650, 400) self._readsettings() self._updatechecker = updatecheck.Checker() self._updatechecker.updateAvailable.connect(self.updateAvailable) self._updatechecker.updateUnavailable.connect(self.updateUnavailable) QTimer.singleShot(0, self._updatechecker.query) @pyqtSlot(str, str) def updateAvailable(self, newverstr, upgradeurl): url_lbl = _('Upgrading to a more recent TortoiseHg is recommended.') urldata = ('%s' % (upgradeurl, url_lbl)) self.download_url_lbl.setText(urldata) @pyqtSlot() def updateUnavailable(self): self.download_url_lbl.setText(_('Your TortoiseHg is up to date.')) def gettext(self, opts): def ext_with_ver(x): ext = x[0] ver = extensions.moduleversion(x[1]) if ver: ext += b' ' + ver return hglib.tounicode(ext) # TODO: make this more uniformly unicode safe text = '```python\n' text += '** Mercurial version (%s). TortoiseHg version (%s)\n' % ( hglib.hgversion, version.version()) text += '** Command: %s\n' % (hglib.tounicode(opts.get('cmd', 'N/A'))) text += '** CWD: %s\n' % hglib.tounicode(_safegetcwd()) text += '** Encoding: %s\n' % hglib._encoding extlist = [ext_with_ver(x) for x in sorted(extensions.extensions())] text += '** Extensions loaded: %s\n' % ', '.join(extlist) text += '** Python version: %s\n' % sys.version.replace('\n', '') if os.name == 'nt': text += self.getarch() elif os.name == 'posix': text += '** System: %s\n' % hglib.tounicode(' '.join(os.uname())) text += ('** Qt-%s PyQt-%s QScintilla-%s\n' % (qVersion(), PYQT_VERSION_STR, QSCINTILLA_VERSION_STR)) text += hglib.tounicode(opts.get('error', 'N/A')) text += '\n```' return text def copyText(self): QApplication.clipboard().setText(self.text) def getarch(self): text = '** Windows version: %s\n' % str( sys.getwindowsversion()) # pytype: disable=module-attr arch = 'unknown (failed to import win32api)' try: import win32api # pytype: disable=import-error arch = 'unknown' archval = win32api.GetNativeSystemInfo()[0] if archval == 9: arch = 'x64' elif archval == 0: arch = 'x86' except (ImportError, AttributeError): pass text += '** Processor architecture: %s\n' % arch return text def save(self): try: fname, _filter = QFileDialog.getSaveFileName(self, _('Save error report to'), os.path.join(_safegetcwd(), 'bugreport.txt'), _('Text files (*.txt)')) if fname: with open(fname, 'wb') as fp: fp.write(hglib.fromunicode(self.text)) except EnvironmentError as e: QMessageBox.critical( self, _('Error writing file'), hglib.exception_str(e) ) def closeEvent(self, event): self._updatechecker.close() super(BugReport, self).closeEvent(event) def accept(self): self._writesettings() super(BugReport, self).accept() def reject(self): self._writesettings() super(BugReport, self).reject() def _readsettings(self): s = QSettings() self.restoreGeometry(qtlib.readByteArray(s, 'bugreport/geom')) def _writesettings(self): s = QSettings() s.setValue('bugreport/geom', self.saveGeometry()) class ExceptionMsgBox(QDialog): """Message box for recoverable exception""" def __init__(self, main, text, opts, parent=None): super(ExceptionMsgBox, self).__init__(parent) self.setWindowFlags(self.windowFlags() & ~Qt.WindowType.WindowContextHelpButtonHint) self.setWindowTitle(_('TortoiseHg Error')) self._opts = opts labelflags = Qt.TextInteractionFlag.TextSelectableByMouse | Qt.TextInteractionFlag.LinksAccessibleByMouse self.setLayout(QVBoxLayout()) if '%(arg' in text: values = opts.get('values', []) msgopts = {} for i, val in enumerate(values): msgopts['arg' + str(i)] = qtlib.htmlescape(hglib.tounicode(val), False) try: text = text % msgopts except Exception as e: print(e, msgopts) else: self._mainlabel = QLabel('%s' % qtlib.htmlescape(main, False), textInteractionFlags=labelflags) self.layout().addWidget(self._mainlabel) text = text + "

                                                                                                            " + _('If you still have trouble, ' 'please file a bug report.') self._textlabel = QLabel(text, wordWrap=True, textInteractionFlags=labelflags) self._textlabel.linkActivated.connect(self._openlink) self._textlabel.setWordWrap(False) self.layout().addWidget(self._textlabel) bb = QDialogButtonBox(QDialogButtonBox.StandardButton.Close, centerButtons=True) bb.rejected.connect(self.reject) self.layout().addWidget(bb) desktopgeom = QApplication.primaryScreen().availableGeometry() self.resize(desktopgeom.size() * 0.20) @pyqtSlot(str) def _openlink(self, ref: str) -> None: if ref == '#bugreport': BugReport(self._opts, self).exec() return if ref.startswith('#edit:'): fname, lineno = ref[6:].rsplit(':', 1) try: # A chicken-egg problem here, we need a ui to get your # editor in order to repair your ui config file. class FakeRepo(object): def __init__(self): self.root = encoding.getcwd() self.ui = hglib.loadui() self.vfs = vfsmod.vfs( os.path.join(self.root, b'.hg'), expandpath=True, realpath=True ) def wjoin(self, f: bytes, *insidef: bytes) -> bytes: return self.vfs.reljoin(self.root, f, *insidef) fake = FakeRepo() # TODO: a protocol could fix the bogus repo arg type # pytype: disable=wrong-arg-types qtlib.editfiles(fake, [hglib.fromunicode(fname)], int(lineno), parent=self) # pytype: enable=wrong-arg-types except Exception as e: qtlib.openlocalurl(fname) if ref.startswith('#fix:'): from tortoisehg.hgqt import settings errtext = ref[5:].split(' ')[0] sd = settings.SettingsDialog(configrepo=False, focus=errtext, parent=self, root=b'') sd.exec() def run(ui, *pats, **opts): return BugReport(opts) if __name__ == "__main__": app = QApplication(sys.argv) form = BugReport({'cmd':'cmd', 'error':'error'}) form.show() app.exec() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/chunks.py0000644000000000000000000007272414672254332017340 0ustar00rootroot# chunks.py - TortoiseHg patch/diff browser and editor # # Copyright 2010 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os import re from . import qsci as Qsci from .qtcore import ( QPoint, QTimer, Qt, pyqtSignal, pyqtSlot, ) from .qtgui import ( QAction, QColor, QDialog, QFontMetrics, QFrame, QHBoxLayout, QKeySequence, QLabel, QMenu, QPainter, QSplitter, QStyle, QToolBar, QToolButton, QVBoxLayout, QWidget, ) from mercurial import ( commands, patch, pycompat, scmutil, util, ) from ..util import hglib from ..util.patchctx import patchctx from ..util.i18n import _ from . import ( blockmatcher, filedata, filelistview, lexers, manifestmodel, qscilib, qtlib, rejects, revert, visdiff, ) # TODO # Add support for tools like TortoiseMerge that help resolve rejected chunks qsci = Qsci.QsciScintilla class ChunksWidget(QWidget): linkActivated = pyqtSignal(str) showMessage = pyqtSignal(str) chunksSelected = pyqtSignal(bool) fileSelected = pyqtSignal(bool) fileModelEmpty = pyqtSignal(bool) fileModified = pyqtSignal() contextmenu = None def __init__(self, repoagent, parent): QWidget.__init__(self, parent) self._repoagent = repoagent self.currentFile = None layout = QVBoxLayout(self) layout.setSpacing(0) layout.setContentsMargins(2, 2, 2, 2) self.setLayout(layout) self.splitter = QSplitter(self) self.splitter.setOrientation(Qt.Orientation.Vertical) self.splitter.setChildrenCollapsible(False) self.layout().addWidget(self.splitter) repo = self._repoagent.rawRepo() self.filelist = filelistview.HgFileListView(self) model = manifestmodel.ManifestModel( repoagent, self, statusfilter='MAR', flat=True) self.filelist.setModel(model) self.filelist.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) self.filelist.customContextMenuRequested.connect(self.menuRequest) self.filelist.doubleClicked.connect(self.vdiff) self.fileListFrame = QFrame(self.splitter) self.fileListFrame.setFrameShape(QFrame.Shape.NoFrame) vbox = QVBoxLayout() vbox.setSpacing(0) vbox.setContentsMargins(0, 0, 0, 0) vbox.addWidget(self.filelist) self.fileListFrame.setLayout(vbox) self.diffbrowse = DiffBrowser(self.splitter) self.diffbrowse.showMessage.connect(self.showMessage) self.diffbrowse.linkActivated.connect(self.linkActivated) self.diffbrowse.chunksSelected.connect(self.chunksSelected) self.filelist.fileSelected.connect(self.displayFile) self.filelist.clearDisplay.connect(self.diffbrowse.clearDisplay) self.splitter.setStretchFactor(0, 0) self.splitter.setStretchFactor(1, 3) self.timerevent = self.startTimer(500) self._actions = {} for name, desc, icon, key, tip, cb in [ ('diff', _('Visual Diff'), 'visualdiff', 'Ctrl+D', _('View file changes in external diff tool'), self.vdiff), ('edit', _('Edit Local'), 'edit-file', 'Shift+Ctrl+L', _('Edit current file in working copy'), self.editCurrentFile), ('revert', _('Revert to Revision'), 'hg-revert', 'Shift+Ctrl+R', _('Revert file(s) to contents at this revision'), self.revertfile), ]: act = QAction(desc, self) if icon: act.setIcon(qtlib.geticon(icon)) if key: qtlib.setContextMenuShortcut(act, key) if tip: act.setStatusTip(tip) if cb: act.triggered.connect(cb) self._actions[name] = act self.addAction(act) @property def repo(self): return self._repoagent.rawRepo() @pyqtSlot(QPoint) def menuRequest(self, point): actionlist = ['diff', 'edit', 'revert'] if not self.contextmenu: menu = QMenu(self) for act in actionlist: menu.addAction(self._actions[act]) self.contextmenu = menu self.contextmenu.exec(self.filelist.viewport().mapToGlobal(point)) def vdiff(self): filenames = self.getSelectedFiles() if len(filenames) == 0: return opts = {'change':self.ctx.rev()} dlg = visdiff.visualdiff(self.repo.ui, self.repo, filenames, opts) if dlg: dlg.exec() def revertfile(self): filenames = [hglib.tounicode(f) for f in self.getSelectedFiles()] if len(filenames) == 0: return rev = self.ctx.rev() if rev is None: rev = self.ctx.p1().rev() dlg = revert.RevertDialog(self._repoagent, filenames, rev, self) dlg.exec() dlg.deleteLater() def timerEvent(self, event): 'Periodic poll of currently displayed patch or working file' if not hasattr(self, 'filelist'): return ctx = self.ctx if ctx is None: return if isinstance(ctx, patchctx): path = ctx._path mtime = ctx._mtime elif self.currentFile: path = self.repo.wjoin(self.currentFile) mtime = self.mtime else: return try: if os.path.exists(path): newmtime = os.path.getmtime(path) if mtime != newmtime: self.mtime = newmtime self.refresh() except EnvironmentError: pass def runPatcher(self, fp, wfile, updatestate): # don't repo.ui.copy(), which is protected to clone baseui since hg 2.9 ui = self.repo.ui class warncapt(ui.__class__): def warn(self, msg, *args, **opts): self.write(msg) ui = warncapt(ui) ok = True repo = self.repo ui.pushbuffer() try: eolmode = ui.config(b'patch', b'eol') if eolmode.lower() not in patch.eolmodes: eolmode = b'strict' else: eolmode = eolmode.lower() # 'updatestate' flag has no effect since hg 1.9 try: ret = patch.internalpatch(ui, repo, fp, 1, files=None, eolmode=eolmode, similarity=0) except ValueError: ret = -1 if ret < 0: ok = False self.showMessage.emit(_('Patch failed to apply')) except (patch.PatchError, EnvironmentError) as err: ok = False self.showMessage.emit(hglib.exception_str(err)) rejfilere = re.compile(br'\b%s\.rej\b' % re.escape(wfile)) for line in ui.popbuffer().splitlines(): if rejfilere.search(line): if qtlib.QuestionMsgBox(_('Manually resolve rejected chunks?'), hglib.tounicode(line) + u'

                                                                                                            ' + _('Edit patched file and rejects?'), parent=self): dlg = rejects.RejectsDialog(repo.ui, repo.wjoin(wfile), self) if dlg.exec() == QDialog.DialogCode.Accepted: ok = True break return ok def editCurrentFile(self): ctx = self.ctx if isinstance(ctx, patchctx): paths = [ctx._path] else: paths = self.getSelectedFiles() qtlib.editfiles(self.repo, paths, parent=self) def getSelectedFileAndChunks(self): chunks = self.diffbrowse.curchunks if chunks: dchunks = [c for c in chunks[1:] if c.selected] return self.currentFile, [chunks[0]] + dchunks else: return self.currentFile, [] def getSelectedFiles(self): return self.filelist.getSelectedFiles() def deleteSelectedChunks(self): 'delete currently selected chunks' repo = self.repo chunks = self.diffbrowse.curchunks dchunks = [c for c in chunks[1:] if c.selected] if not dchunks: self.showMessage.emit(_('No deletable chunks')) return ctx = self.ctx kchunks = [c for c in chunks[1:] if not c.selected] revertall = False if not kchunks: if isinstance(ctx, patchctx): revertmsg = _('Completely remove file from patch?') else: revertmsg = _('Revert all file changes?') revertall = qtlib.QuestionMsgBox(_('No chunks remain'), revertmsg) if isinstance(ctx, patchctx): repo.thgbackup(ctx._path) fp = util.atomictempfile(ctx._path, b'wb') buf = util.bytesio() try: if ctx._ph.comments: buf.write(b'\n'.join(ctx._ph.comments)) buf.write(b'\n\n') needsnewline = False for wfile in ctx._fileorder: if wfile == self.currentFile: if revertall: continue chunks[0].write(buf) for chunk in kchunks: chunk.write(buf) else: if buf.tell() and not buf.getvalue().endswith(b'\n'): buf.write(b'\n') for chunk in ctx._files[wfile]: chunk.write(buf) fp.write(buf.getvalue()) fp.close() finally: del fp ctx.invalidate() self.fileModified.emit() else: path = repo.wjoin(self.currentFile) if not os.path.exists(path): self.showMessage.emit(_('file has been deleted, refresh')) return if self.mtime != os.path.getmtime(path): self.showMessage.emit(_('file has been modified, refresh')) return repo.thgbackup(path) if revertall: commands.revert(repo.ui, repo, path, no_backup=True) else: wlock = repo.wlock() try: # atomictemp can preserve file permission wf = repo.wvfs(self.currentFile, b'wb', atomictemp=True) wf.write(self.diffbrowse.origcontents) wf.close() fp = util.bytesio() chunks[0].write(fp) for c in kchunks: c.write(fp) fp.seek(0) self.runPatcher(fp, self.currentFile, False) finally: wlock.release() self.fileModified.emit() def mergeChunks(self, wfile, chunks): def isAorR(header): for line in header: if line.startswith(b'--- /dev/null'): return True if line.startswith(b'+++ /dev/null'): return True return False repo = self.repo ctx = self.ctx if isinstance(ctx, patchctx): if wfile in ctx._files: patchchunks = ctx._files[wfile] if isAorR(chunks[0].header) or isAorR(patchchunks[0].header): qtlib.InfoMsgBox(_('Unable to merge chunks'), _('Add or remove patches must be merged ' 'in the working directory')) return False # merge new chunks into existing chunks, sorting on start line newchunks = [chunks[0]] pidx = nidx = 1 while pidx < len(patchchunks) or nidx < len(chunks): if pidx == len(patchchunks): newchunks.append(chunks[nidx]) nidx += 1 elif nidx == len(chunks): newchunks.append(patchchunks[pidx]) pidx += 1 elif chunks[nidx].fromline < patchchunks[pidx].fromline: newchunks.append(chunks[nidx]) nidx += 1 else: newchunks.append(patchchunks[pidx]) pidx += 1 ctx._files[wfile] = newchunks else: # add file to patch ctx._files[wfile] = chunks ctx._fileorder.append(wfile) repo.thgbackup(ctx._path) fp = util.atomictempfile(ctx._path, b'wb') try: if ctx._ph.comments: fp.write(b'\n'.join(ctx._ph.comments)) fp.write(b'\n\n') for file in ctx._fileorder: for chunk in ctx._files[file]: chunk.write(fp) fp.close() ctx.invalidate() self.fileModified.emit() return True finally: del fp else: # Apply chunks to wfile repo.thgbackup(repo.wjoin(wfile)) fp = util.bytesio() for c in chunks: c.write(fp) fp.seek(0) wlock = repo.wlock() try: return self.runPatcher(fp, wfile, True) finally: wlock.release() def getFileList(self): return self.ctx.files() def removeFile(self, wfile): repo = self.repo ctx = self.ctx if isinstance(ctx, patchctx): repo.thgbackup(ctx._path) fp = util.atomictempfile(ctx._path, b'wb') try: if ctx._ph.comments: fp.write(b'\n'.join(ctx._ph.comments)) fp.write(b'\n\n') for file in ctx._fileorder: if file == wfile: continue for chunk in ctx._files[file]: chunk.write(fp) fp.close() finally: del fp ctx.invalidate() else: fullpath = repo.wjoin(wfile) repo.thgbackup(fullpath) wasadded = wfile in repo[None].added() try: commands.revert(repo.ui, repo, fullpath, rev=b'.', no_backup=True) if wasadded and os.path.exists(fullpath): os.unlink(fullpath) except EnvironmentError: qtlib.InfoMsgBox(_("Unable to remove"), _("Unable to remove file %s,\n" "permission denied") % hglib.tounicode(wfile)) self.fileModified.emit() def getChunksForFile(self, wfile): repo = self.repo ctx = self.ctx if isinstance(ctx, patchctx): if wfile in ctx._files: return ctx._files[wfile] else: return [] else: buf = util.bytesio() diffopts = patch.diffopts(repo.ui, {b'git':True}) m = scmutil.matchfiles(repo, [wfile]) for p in patch.diff(repo, ctx.p1().node(), None, match=m, opts=diffopts): buf.write(p) buf.seek(0) chunks = patch.parsepatch(buf) if chunks: header = chunks[0] return [header] + header.hunks else: return [] @pyqtSlot(str, str) def displayFile(self, file, status): if isinstance(file, pycompat.unicode): file = hglib.fromunicode(file) if not isinstance(file, pycompat.unicode): status = hglib.tounicode(status) if file: self.currentFile = file path = self.repo.wjoin(file) if os.path.exists(path): self.mtime = os.path.getmtime(path) else: self.mtime = None self.diffbrowse.displayFile(file, status) self.fileSelected.emit(True) else: self.currentFile = None self.diffbrowse.clearDisplay() self.diffbrowse.clearChunks() self.fileSelected.emit(False) def setContext(self, ctx): self.diffbrowse.setContext(ctx) model = self.filelist.model() assert isinstance(model, manifestmodel.ManifestModel) model.setRawContext(ctx) empty = len(ctx.files()) == 0 self.fileModelEmpty.emit(empty) self.fileSelected.emit(not empty) if empty: self.currentFile = None self.diffbrowse.clearDisplay() self.diffbrowse.clearChunks() self.diffbrowse.updateSummary() self.ctx = ctx for act in ['diff', 'revert']: self._actions[act].setEnabled(ctx.rev() is None) def refresh(self): ctx = self.ctx if isinstance(ctx, patchctx): # if patch mtime has not changed, it could return the same ctx ctx = self.repo[ctx._path] else: self.repo.thginvalidate() ctx = self.repo[ctx.node()] self.setContext(ctx) def loadSettings(self, qs, prefix): self.diffbrowse.loadSettings(qs, prefix) def saveSettings(self, qs, prefix): self.diffbrowse.saveSettings(qs, prefix) # DO NOT USE. Sadly, this does not work. class ElideLabel(QLabel): def __init__(self, text='', parent=None): QLabel.__init__(self, text, parent) def sizeHint(self): return super(ElideLabel, self).sizeHint() def paintEvent(self, event): p = QPainter() fm = QFontMetrics(self.font()) if fm.horizontalAdvance(self.text()): # > self.contentsRect().width(): elided = fm.elidedText(self.text(), Qt.TextElideMode.ElideLeft, self.rect().width(), 0) p.drawText(self.rect(), Qt.AlignmentFlag.AlignTop | Qt.AlignmentFlag.AlignRight | Qt.TextFlag.TextSingleLine, elided) else: super(ElideLabel, self).paintEvent(event) class DiffBrowser(QFrame): """diff browser""" linkActivated = pyqtSignal(str) showMessage = pyqtSignal(str) chunksSelected = pyqtSignal(bool) def __init__(self, parent): QFrame.__init__(self, parent) self.curchunks = [] self.countselected = 0 self._ctx = None self._lastfile = None self._status = None vbox = QVBoxLayout() vbox.setContentsMargins(0,0,0,0) vbox.setSpacing(0) self.setLayout(vbox) self.labelhbox = hbox = QHBoxLayout() hbox.setContentsMargins(0,0,0,0) hbox.setSpacing(2) self.layout().addLayout(hbox) self.filenamelabel = w = QLabel() self.filenamelabel.hide() hbox.addWidget(w) w.setWordWrap(True) f = w.textInteractionFlags() w.setTextInteractionFlags(f | Qt.TextInteractionFlag.TextSelectableByMouse) w.linkActivated.connect(self.linkActivated) self.searchbar = qscilib.SearchToolBar() self.searchbar.hide() self.searchbar.searchRequested.connect(self.find) self.searchbar.conditionChanged.connect(self.highlightText) self.addActions(self.searchbar.editorActions()) self.sumlabel = QLabel() self.allbutton = QToolButton() self.allbutton.setText(_('All', 'files')) self.allbutton.setShortcut(QKeySequence.StandardKey.SelectAll) self.allbutton.clicked.connect(self.selectAll) self.nonebutton = QToolButton() self.nonebutton.setText(_('None', 'files')) self.nonebutton.setShortcut(QKeySequence.StandardKey.New) self.nonebutton.clicked.connect(self.selectNone) self.actionFind = self.searchbar.toggleViewAction() self.actionFind.setIcon(qtlib.geticon('edit-find')) self.actionFind.setToolTip(_('Toggle display of text search bar')) qtlib.newshortcutsforstdkey(QKeySequence.StandardKey.Find, self, self.searchbar.show) self.diffToolbar = QToolBar(_('Diff Toolbar')) self.diffToolbar.setIconSize(qtlib.smallIconSize()) self.diffToolbar.setStyleSheet(qtlib.tbstylesheet) self.diffToolbar.addAction(self.actionFind) hbox.addWidget(self.diffToolbar) hbox.addStretch(1) hbox.addWidget(self.sumlabel) hbox.addWidget(self.allbutton) hbox.addWidget(self.nonebutton) self.extralabel = w = QLabel() w.setWordWrap(True) w.linkActivated.connect(self.linkActivated) self.layout().addWidget(w) self.layout().addSpacing(2) w.hide() self._forceviewindicator = None self.sci = qscilib.Scintilla(self) self.sci.setReadOnly(True) self.sci.setUtf8(True) self.sci.installEventFilter(qscilib.KeyPressInterceptor(self)) self.sci.setCaretLineVisible(False) self.sci.setFont(qtlib.getfont('fontdiff').font()) self.sci.setMarginType(1, qsci.MarginType.SymbolMargin) self.sci.setMarginLineNumbers(1, False) self.sci.setMarginWidth(1, QFontMetrics(self.font()).horizontalAdvance('XX')) self.sci.setMarginSensitivity(1, True) self.sci.marginClicked.connect(self.marginClicked) self._checkedpix = qtlib.getcheckboxpixmap(QStyle.StateFlag.State_On, Qt.GlobalColor.gray, self) self.selected = self.sci.markerDefine(self._checkedpix, -1) self._uncheckedpix = qtlib.getcheckboxpixmap(QStyle.StateFlag.State_Off, Qt.GlobalColor.gray, self) self.unselected = self.sci.markerDefine(self._uncheckedpix, -1) self.vertical = self.sci.markerDefine(qsci.MarkerSymbol.VerticalLine, -1) self.divider = self.sci.markerDefine(qsci.MarkerSymbol.Background, -1) self.selcolor = self.sci.markerDefine(qsci.MarkerSymbol.Background, -1) self.sci.setMarkerBackgroundColor(QColor('#BBFFFF'), self.selcolor) self.sci.setMarkerBackgroundColor(QColor('#AAAAAA'), self.divider) mask = (1 << self.selected) | (1 << self.unselected) | \ (1 << self.vertical) | (1 << self.selcolor) | (1 << self.divider) self.sci.setMarginMarkerMask(1, mask) self.blksearch = blockmatcher.BlockList(self) self.blksearch.linkScrollBar(self.sci.verticalScrollBar()) self.blksearch.setVisible(False) hbox = QHBoxLayout() hbox.addWidget(self.sci) hbox.addWidget(self.blksearch) lexer = lexers.difflexer(self) self.sci.setLexer(lexer) self.layout().addLayout(hbox) self.layout().addWidget(self.searchbar) self.clearDisplay() def loadSettings(self, qs, prefix): self.sci.loadSettings(qs, prefix) def saveSettings(self, qs, prefix): self.sci.saveSettings(qs, prefix) def updateSummary(self): self.sumlabel.setText(_('Chunks selected: %d / %d') % ( self.countselected, len(self.curchunks[1:]))) self.chunksSelected.emit(self.countselected > 0) @pyqtSlot() def selectAll(self): for chunk in self.curchunks[1:]: if not chunk.selected: self.sci.markerDelete(chunk.mline, -1) self.sci.markerAdd(chunk.mline, self.selected) chunk.selected = True self.countselected += 1 for i in pycompat.xrange(*chunk.lrange): self.sci.markerAdd(i, self.selcolor) self.updateSummary() @pyqtSlot() def selectNone(self): for chunk in self.curchunks[1:]: if chunk.selected: self.sci.markerDelete(chunk.mline, -1) self.sci.markerAdd(chunk.mline, self.unselected) chunk.selected = False self.countselected -= 1 for i in pycompat.xrange(*chunk.lrange): self.sci.markerDelete(i, self.selcolor) self.updateSummary() #@pyqtSlot(int, int, Qt.KeyboardModifier) def marginClicked(self, margin, line, modifiers): for chunk in self.curchunks[1:]: if line >= chunk.lrange[0] and line < chunk.lrange[1]: self.toggleChunk(chunk) self.updateSummary() return def toggleChunk(self, chunk): self.sci.markerDelete(chunk.mline, -1) if chunk.selected: self.sci.markerAdd(chunk.mline, self.unselected) chunk.selected = False self.countselected -= 1 for i in pycompat.xrange(*chunk.lrange): self.sci.markerDelete(i, self.selcolor) else: self.sci.markerAdd(chunk.mline, self.selected) chunk.selected = True self.countselected += 1 for i in pycompat.xrange(*chunk.lrange): self.sci.markerAdd(i, self.selcolor) def setContext(self, ctx): self._ctx = ctx self.sci.setTabWidth(ctx.repo().tabwidth) def clearDisplay(self): self.sci.clear() self.filenamelabel.setText(' ') self.extralabel.hide() self.blksearch.clear() def clearChunks(self): self.curchunks = [] self.countselected = 0 self.updateSummary() def _setupForceViewIndicator(self): if not self._forceviewindicator: self._forceviewindicator = self.sci.indicatorDefine(self.sci.IndicatorStyle.PlainIndicator) self.sci.setIndicatorDrawUnder(True, self._forceviewindicator) self.sci.setIndicatorForegroundColor( QColor('blue'), self._forceviewindicator) # delay until next event-loop in order to complete mouse release self.sci.SCN_INDICATORRELEASE.connect(self.forceDisplayFile, Qt.ConnectionType.QueuedConnection) def forceDisplayFile(self): if self.curchunks: return self.sci.setText(_('Please wait while the file is opened ...')) QTimer.singleShot(10, lambda: self.displayFile(self._lastfile, self._status, force=True)) def displayFile(self, filename, status, force=False): self._status = status self.clearDisplay() if filename == self._lastfile: reenable = [(c.fromline, len(c.before)) for c in self.curchunks[1:]\ if c.selected] else: reenable = [] self._lastfile = filename self.clearChunks() fd = filedata.createFileData(self._ctx, None, filename, status) fd.load(force=force) fd.detectTextEncoding() if fd.elabel: self.extralabel.setText(fd.elabel) self.extralabel.show() else: self.extralabel.hide() self.filenamelabel.setText(fd.flabel) if not fd.isValid() or not fd.diff: if fd.error is None: self.sci.clear() return self.sci.setText(fd.error) forcedisplaymsg = filedata.forcedisplaymsg linkstart = fd.error.find(forcedisplaymsg) if linkstart >= 0: # add the link to force to view the data anyway self._setupForceViewIndicator() self.sci.fillIndicatorRange( 0, linkstart, 0, linkstart+len(forcedisplaymsg), self._forceviewindicator) return elif isinstance(self._ctx.rev(), str): chunks = self._ctx._files[filename] else: header = patch.parsepatch(util.bytesio(fd.diff))[0] chunks = [header] + header.hunks utext = [] for chunk in chunks[1:]: buf = util.bytesio() chunk.selected = False chunk.write(buf) chunk.lines = buf.getvalue().splitlines() utext.append(buf.getvalue().decode(fd.textEncoding(), 'replace')) self.sci.setText(u'\n'.join(utext)) start = 0 self.sci.markerDeleteAll(-1) for chunk in chunks[1:]: chunk.lrange = (start, start+len(chunk.lines)) chunk.mline = start if start: self.sci.markerAdd(start-1, self.divider) for i in pycompat.xrange(0,len(chunk.lines)): if start + i == chunk.mline: self.sci.markerAdd(chunk.mline, self.unselected) else: self.sci.markerAdd(start+i, self.vertical) start += len(chunk.lines) + 1 self.origcontents = fd.olddata self.countselected = 0 self.curchunks = chunks for c in chunks[1:]: if (c.fromline, len(c.before)) in reenable: self.toggleChunk(c) self.updateSummary() @pyqtSlot(str, bool, bool, bool) def find(self, exp, icase=True, wrap=False, forward=True): self.sci.find(exp, icase, wrap, forward) @pyqtSlot(str, bool) def highlightText(self, match, icase=False): self._lastSearch = match, icase self.sci.highlightText(match, icase) blk = self.blksearch blk.clear() blk.setUpdatesEnabled(False) blk.clear() for l in self.sci.highlightLines: blk.addBlock('s', l, l + 1) blk.setVisible(bool(match)) blk.setUpdatesEnabled(True) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730809007.0 tortoisehg-6.9/tortoisehg/hgqt/clone.py0000644000000000000000000004005114712406257017131 0ustar00rootroot# clone.py - Clone dialog for TortoiseHg # # Copyright 2007 TK Soh # Copyright 2007 Steve Borho # Copyright 2010 Yuki KODAMA # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os from .qtcore import ( QDir, QTimer, pyqtSignal, pyqtSlot, ) from .qtgui import ( QCheckBox, QComboBox, QFileDialog, QFormLayout, QHBoxLayout, QLineEdit, QPushButton, QSizePolicy, QVBoxLayout, QWidget, ) from mercurial import ( cmdutil, commands, hg, pycompat, ) from ..util import hglib from ..util.i18n import _ from . import ( cmdcore, cmdui, qtlib, ) if hglib.TYPE_CHECKING: from typing import ( List, Optional, Text, Tuple, ) from mercurial import ( ui as uimod, ) from .qtcore import ( QSettings, ) from .hgconfig import ( HgConfig, ) def _startrev_available() -> bool: entry = cmdutil.findcmd(b'clone', commands.table)[1] longopts = set(e[1] for e in entry[1]) return b'startrev' in longopts def _suggesteddest(src: Text, basedest: Text) -> Text: if '://' in basedest: return basedest try: if not os.listdir(basedest): # premade empty directory, just use it return basedest except OSError: # guess existing base assuming "{basedest}/{name}" basedest = os.path.dirname(basedest) name = hglib.tounicode(hg.defaultdest(hglib.fromunicode(src, 'replace'))) if not name or name == '.': return basedest newdest = os.path.join(basedest, name) if os.path.exists(newdest): newdest += '-clone' return newdest class CloneWidget(cmdui.AbstractCmdWidget): def __init__(self, config: HgConfig, cmdagent: cmdcore.CmdAgent, parent: Optional[QWidget] = None) -> None: super(CloneWidget, self).__init__(parent) self.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed) self._config = config self._cmdagent = cmdagent ## main layout form = QFormLayout() form.setContentsMargins(0, 0, 0, 0) self.setLayout(form) ### source combo and button self.src_combo = QComboBox() self.src_combo.setEditable(True) self.src_combo.setMinimumContentsLength(30) # cut long path self.src_btn = QPushButton(_('Browse...')) self.src_btn.setAutoDefault(False) self.src_btn.clicked.connect(self._browseSource) srcbox = QHBoxLayout() srcbox.addWidget(self.src_combo, 1) srcbox.addWidget(self.src_btn) form.addRow(_('Source:'), srcbox) ### destination combo and button self.dest_combo = QComboBox() self.dest_combo.setEditable(True) self.dest_combo.setMinimumContentsLength(30) # cut long path self.dest_btn = QPushButton(_('Browse...')) self.dest_btn.setAutoDefault(False) self.dest_btn.clicked.connect(self._browseDestination) destbox = QHBoxLayout() destbox.addWidget(self.dest_combo, 1) destbox.addWidget(self.dest_btn) form.addRow(_('Destination:'), destbox) for combo in (self.src_combo, self.dest_combo): qtlib.allowCaseChangingInput(combo) combo.installEventFilter(qtlib.BadCompletionBlocker(combo)) self.setSource(config.configString('tortoisehg', 'defaultclonedest') or hglib.getcwdu()) self.setDestination(self.source()) ### options expander = qtlib.ExpanderLabel(_('Options'), False) optwidget = QWidget(self) expander.expanded.connect(optwidget.setVisible) optbox = QVBoxLayout() optbox.setContentsMargins(0, 0, 0, 0) optbox.setSpacing(6) optwidget.setLayout(optbox) form.addRow(expander, optwidget) def chktext(chklabel, btnlabel=None, btnslot=None, stretch=None): hbox = QHBoxLayout() hbox.setSpacing(0) optbox.addLayout(hbox) chk = QCheckBox(chklabel) text = QLineEdit(enabled=False) chk.toggled.connect(text.setEnabled) chk.toggled.connect(text.setFocus) hbox.addWidget(chk) hbox.addWidget(text) if stretch is not None: hbox.addStretch(stretch) if btnlabel: btn = QPushButton(btnlabel) btn.setEnabled(False) btn.setAutoDefault(False) btn.clicked.connect(btnslot) chk.toggled.connect(btn.setEnabled) hbox.addSpacing(6) hbox.addWidget(btn) return chk, text, btn else: return chk, text, None def chktext2(chklabel: Text, stretch: Optional[int] = None) -> Tuple[QCheckBox, QLineEdit]: # pytype gets confused if the returned tuple is sliced and returned # without unpacking. chk, text, _unused = chktext(chklabel, stretch=stretch) return chk, text def chktext3(chklabel: Text, btnlabel: Text, btnslot, stretch: Optional[int] = None) -> Tuple[QCheckBox, QLineEdit, QPushButton]: assert btnlabel ret = chktext(chklabel, btnlabel, btnslot, stretch) assert isinstance(ret[2], QPushButton) return ret self.rev_chk, self.rev_text = chktext2(_('Clone to revision:'), stretch=40) self.rev_text.setToolTip(_('A revision identifier, bookmark, tag or ' 'branch name')) self.noupdate_chk = QCheckBox(_('Do not update the new working directory')) self.pproto_chk = QCheckBox(_('Use pull protocol to copy metadata')) self.stream_chk = QCheckBox(_('Clone with minimal processing')) optbox.addWidget(self.noupdate_chk) optbox.addWidget(self.pproto_chk) optbox.addWidget(self.stream_chk) self._opt_checks = { 'noupdate': self.noupdate_chk, 'pull': self.pproto_chk, 'stream': self.stream_chk, } self.qclone_chk, self.qclone_txt, self.qclone_btn = \ chktext3(_('Include patch queue'), btnlabel=_('Browse...'), btnslot=self._browsePatchQueue) self.proxy_chk = QCheckBox(_('Use proxy server')) optbox.addWidget(self.proxy_chk) useproxy = bool(config.configString('http_proxy', 'host')) self.proxy_chk.setEnabled(useproxy) self.proxy_chk.setChecked(useproxy) self.insecure_chk = QCheckBox(_('Do not verify host certificate')) optbox.addWidget(self.insecure_chk) self.insecure_chk.setEnabled(False) self.remote_chk, self.remote_text = chktext2(_('Remote command:')) self.largefiles_chk = QCheckBox(_('Use largefiles')) optbox.addWidget(self.largefiles_chk) # allow to specify start revision for p4 & svn repos. self.startrev_chk, self.startrev_text = chktext2(_('Start revision:'), stretch=40) self.hgcmd_txt = QLineEdit() self.hgcmd_txt.setReadOnly(True) form.addRow(_('Hg command:'), self.hgcmd_txt) # connect extra signals self.src_combo.editTextChanged.connect(self._onSourceChanged) self.src_combo.currentIndexChanged.connect(self._suggestDestination) t = QTimer(self, interval=200, singleShot=True) t.timeout.connect(self._suggestDestination) le = self.src_combo.lineEdit() le.editingFinished.connect(t.stop) # only while it has focus le.textEdited.connect(t.start) self.dest_combo.editTextChanged.connect(self._composeCommand) self.rev_chk.toggled.connect(self._composeCommand) self.rev_text.textChanged.connect(self._composeCommand) self.noupdate_chk.toggled.connect(self._composeCommand) self.pproto_chk.toggled.connect(self._composeCommand) self.stream_chk.toggled.connect(self._composeCommand) self.qclone_chk.toggled.connect(self._composeCommand) self.qclone_txt.textChanged.connect(self._composeCommand) self.proxy_chk.toggled.connect(self._composeCommand) self.insecure_chk.toggled.connect(self._composeCommand) self.remote_chk.toggled.connect(self._composeCommand) self.remote_text.textChanged.connect(self._composeCommand) self.largefiles_chk.toggled.connect(self._composeCommand) self.startrev_chk.toggled.connect(self._composeCommand) # prepare to show optwidget.hide() self.startrev_chk.setVisible(_startrev_available()) self.startrev_text.setVisible(_startrev_available()) self._composeCommand() def readSettings(self, qs: QSettings) -> None: for key, combo in [('source', self.src_combo), ('dest', self.dest_combo)]: # addItems() can overwrite temporary edit text edittext = combo.currentText() combo.blockSignals(True) combo.addItems(qtlib.readStringList(qs, key)) combo.setCurrentIndex(combo.findText(edittext)) combo.setEditText(edittext) combo.blockSignals(False) self.src_combo.lineEdit().selectAll() def writeSettings(self, qs: QSettings) -> None: for key, combo in [('source', self.src_combo), ('dest', self.dest_combo)]: l = [combo.currentText()] l.extend(combo.itemText(i) for i in pycompat.xrange(combo.count()) if combo.itemText(i) != combo.currentText()) qs.setValue(key, l[:10]) def source(self) -> Text: return self.src_combo.currentText().strip() def setSource(self, url: Text) -> None: self.src_combo.setCurrentIndex(self.src_combo.findText(url)) self.src_combo.setEditText(url) def destination(self) -> Text: return self.dest_combo.currentText().strip() def setDestination(self, url: Text) -> None: self.dest_combo.setCurrentIndex(self.dest_combo.findText(url)) self.dest_combo.setEditText(url) @pyqtSlot() def _suggestDestination(self) -> None: self.setDestination(_suggesteddest(self.source(), self.destination())) def revSymbol(self) -> Text: if not self.rev_chk.isChecked(): return '' return self.rev_text.text().strip() def setRevSymbol(self, rev: Text) -> None: self.rev_chk.setChecked(bool(rev)) self.rev_text.setText(rev) def testOption(self, key: Text) -> bool: return self._opt_checks[key].isChecked() def setOption(self, key: Text, on: bool) -> None: self._opt_checks[key].setChecked(on) @pyqtSlot() def _composeCommand(self) -> List[Text]: opts = { 'verbose': True, 'config': [], } for k in self._opt_checks: opts[k] = self.testOption(k) if (self._config.configString('http_proxy', 'host') and not self.proxy_chk.isChecked()): assert isinstance(opts['config'], list) # help pytype opts['config'].append('http_proxy.host=') if self.remote_chk.isChecked(): opts['remotecmd'] = self.remote_text.text().strip() or None opts['rev'] = self.revSymbol() or None if self.startrev_chk.isChecked(): opts['startrev'] = self.startrev_text.text().strip() or None if self.largefiles_chk.isChecked(): assert isinstance(opts['config'], list) # help pytype opts['config'].append('extensions.largefiles=') src = self.source() dest = self.destination() if src.startswith('https://'): opts['insecure'] = self.insecure_chk.isChecked() if self.qclone_chk.isChecked(): name = 'qclone' opts['patches'] = self.qclone_txt.text().strip() or None else: name = 'clone' cmdline = hglib.buildcmdargs(name, src, dest or None, **opts) self.hgcmd_txt.setText('hg ' + hglib.prettifycmdline(cmdline)) self.commandChanged.emit() return cmdline def canRunCommand(self) -> bool: src, dest = self.source(), self.destination() return bool(src and dest and src != dest) def runCommand(self) -> cmdcore.CmdSession: cmdline = self._composeCommand() return self._cmdagent.runCommand(cmdline, self) @pyqtSlot() def _browseSource(self) -> None: FD = QFileDialog caption = _("Select source repository") path = FD.getExistingDirectory(self, caption, self.src_combo.currentText(), QFileDialog.Option.ShowDirsOnly) if path: self.src_combo.setEditText(QDir.toNativeSeparators(path)) self._suggestDestination() self.dest_combo.setFocus() @pyqtSlot() def _browseDestination(self) -> None: FD = QFileDialog caption = _("Select destination repository") path = FD.getExistingDirectory(self, caption, self.dest_combo.currentText(), QFileDialog.Option.ShowDirsOnly) if path: self.dest_combo.setEditText(QDir.toNativeSeparators(path)) self._suggestDestination() # in case existing dir is selected self.dest_combo.setFocus() @pyqtSlot() def _browsePatchQueue(self) -> None: FD = QFileDialog caption = _("Select patch folder") upatchroot = os.path.join(self.src_combo.currentText(), '.hg') upath = FD.getExistingDirectory(self, caption, upatchroot, QFileDialog.Option.ShowDirsOnly) if upath: self.qclone_txt.setText(QDir.toNativeSeparators(upath)) self.qclone_txt.setFocus() @pyqtSlot() def _onSourceChanged(self) -> None: self.insecure_chk.setEnabled(self.source().startswith('https://')) self._composeCommand() class CloneDialog(cmdui.CmdControlDialog): clonedRepository = pyqtSignal(str, str) def __init__(self, ui: uimod.ui, config: HgConfig, parent: Optional[QWidget] = None) -> None: super(CloneDialog, self).__init__(parent) self.setWindowTitle(_('Clone - %s') % hglib.getcwdu()) self.setWindowIcon(qtlib.geticon('hg-clone')) self.setObjectName('clone') self.setRunButtonText(_('&Clone')) self._cmdagent = cmdagent = cmdcore.CmdAgent(ui, self) cmdagent.serviceStopped.connect(self.reject) self.setCommandWidget(CloneWidget(config, cmdagent, self)) self.commandFinished.connect(self._emitCloned) def source(self) -> Text: return self.commandWidget().source() def setSource(self, url: Text) -> None: assert self.isCommandFinished() self.commandWidget().setSource(url) def destination(self) -> Text: return self.commandWidget().destination() def setDestination(self, url: Text) -> None: assert self.isCommandFinished() self.commandWidget().setDestination(url) def revSymbol(self) -> Text: return self.commandWidget().revSymbol() def setRevSymbol(self, rev: Text) -> None: assert self.isCommandFinished() self.commandWidget().setRevSymbol(rev) def testOption(self, key: Text) -> bool: return self.commandWidget().testOption(key) def setOption(self, key: Text, on: bool) -> None: assert self.isCommandFinished() self.commandWidget().setOption(key, on) @pyqtSlot(int) def _emitCloned(self, ret: int) -> None: if ret == 0: self.clonedRepository.emit(self.destination(), self.source()) def done(self, r: int) -> None: if self._cmdagent.isServiceRunning(): self._cmdagent.stopService() return # postponed until serviceStopped super(CloneDialog, self).done(r) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730809007.0 tortoisehg-6.9/tortoisehg/hgqt/close_branch.py0000644000000000000000000000512514712406257020456 0ustar00rootroot# close_branch.py - Close branch dialog for TortoiseHg # # Copyright 2020 Bram Belpaire # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations from .qtgui import ( QSizePolicy, QLineEdit, QFormLayout, QLabel ) from ..util import ( hglib, i18n, ) from ..util.i18n import _ from . import ( cmdui, ) if hglib.TYPE_CHECKING: from typing import ( List, Optional, Text, ) from .qtgui import ( QWidget, ) from .cmdcore import ( CmdSession, ) from .thgrepo import ( RepoAgent, ) class CloseWidget(cmdui.AbstractCmdWidget): def __init__(self, repoagent: RepoAgent, rev: int, parent: Optional[QWidget] = None) -> None: super(CloseWidget, self).__init__(parent) self._repoagent = repoagent self._repo = repoagent.rawRepo() self._rev = rev form = QFormLayout() form.setContentsMargins(0, 0, 0, 0) # simple widget with only an editable commit message textbox self.setLayout(form) self.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed) # add revision information about selected revision form.addRow(_('Revision:'), QLabel('%d (%s)' % (rev, self._repo[rev]))) # commit message self.hg_commit = QLineEdit() # automatic message msgset = i18n.keepgettext()._('Close %s branch') str_msg = msgset['str'] self.hg_commit.setText(str_msg % hglib.tounicode(self._repo[self._rev].branch())) form.addRow(_('Commit message:'), self.hg_commit) def compose_command(self) -> List[Text]: rev = '%d' % self._rev cmdline = hglib.buildcmdargs('close-head', m=self.hg_commit.text(), r=rev) return cmdline def runCommand(self) -> CmdSession: cmdline = self.compose_command() return self._repoagent.runCommand(cmdline, self) def canRunCommand(self) -> bool: return True def createCloseBranchDialog(repoagent: RepoAgent, rev: int, parent: Optional[QWidget]) -> cmdui.CmdControlDialog: dlg = cmdui.CmdControlDialog(parent) dlg.setWindowTitle(_('Close Branch - %s') % repoagent.displayName()) dlg.setRunButtonText(_('&Close Branch')) dlg.setCommandWidget(CloseWidget(repoagent, rev, dlg)) return dlg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1736594210.0 tortoisehg-6.9/tortoisehg/hgqt/cmdcore.py0000644000000000000000000010576314740451442017456 0ustar00rootroot# cmdcore.py - run Mercurial commands in a separate thread or process # # Copyright 2010 Yuki KODAMA # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os import signal import struct import sys import time from mercurial import ( pycompat, ) from .qtcore import ( QBuffer, QIODevice, QObject, QProcess, QProcessEnvironment, QTimer, pyqtSignal, pyqtSlot, ) from . import ( qtlib, ) from ..util import ( hglib, paths, pipeui, ) from ..util.i18n import _ if hglib.TYPE_CHECKING: from typing import ( Callable, Dict, List, Optional, Text, Union, ) from mercurial import ( ui as uimod, ) from .qtcore import ( QByteArray, ) from .qtgui import ( QWidget, ) class ProgressMessage(tuple): __slots__ = () def __new__(cls, topic, pos, item=b'', unit=b'', total=None): # TODO: accept Text instead of bytes return tuple.__new__(cls, (hglib.tounicode(topic), pos, hglib.tounicode(item), hglib.tounicode(unit), total)) if hglib.TYPE_CHECKING: # pseudo implementation to help pytype (TODO: replace with attr.s) def __init__(self, topic: Union[bytes, Text], pos: Optional[int], item: Union[bytes, Text] = b'', unit: Union[bytes, Text] = b'', total: Optional[int] = None) -> None: super(ProgressMessage, self).__init__(( hglib.tounicode(topic), pos, hglib.tounicode(item), hglib.tounicode(unit), total, )) @property def topic(self) -> str: return self[0] # pytype: disable=bad-return-type @property def pos(self) -> Optional[int]: return self[1] # pytype: disable=bad-return-type @property def item(self) -> str: return self[2] # pytype: disable=bad-return-type @property def unit(self) -> str: return self[3] # pytype: disable=bad-return-type @property def total(self) -> Optional[int]: return self[4] # pytype: disable=bad-return-type def __repr__(self): names = ('topic', 'pos', 'item', 'unit', 'total') fields = ('%s=%r' % (n, v) for n, v in zip(names, self)) return '%s(%s)' % (self.__class__.__name__, ', '.join(fields)) class UiHandler(object): """Interface to handle user interaction of Mercurial commands""" NoInput = 0 TextInput = 1 PasswordInput = 2 ChoiceInput = 3 def __init__(self) -> None: self._datain = None self._dataout = None def setPrompt(self, text: Text, mode: int, default: Optional[Text] = None) -> None: pass def getLineInput(self) -> Optional[Text]: # '' to use default; None to abort return '' def setDataInputDevice(self, device: Optional[QIODevice]) -> None: # QIODevice to read data from; None to disable data input self._datain = device def setDataOutputDevice(self, device: Optional[QIODevice]) -> None: # QIODevice to write data output; None to disable capturing self._dataout = device def inputAtEnd(self) -> bool: if not self._datain: return True return self._datain.atEnd() def readInput(self, size: int) -> Optional[bytes]: # b'' for EOF; None for error (per PyQt's QIODevice.read() convention) if not self._datain: return b'' return self._datain.read(size) def writeOutput(self, data: Union[QByteArray, bytes, bytearray], label: bytes) -> int: if not self._dataout or label.startswith(b'ui.') or b' ui.' in label: return -1 return self._dataout.write(data) def _createDefaultUiHandler(uiparent: Optional[QWidget]) -> UiHandler: if uiparent is None: return UiHandler() # this makes layering violation but is handy to create GUI handler by # default. nobody would want to write # uihandler = cmdui.InteractiveUiHandler(self) # cmdagent.runCommand(..., uihandler) # in place of # cmdagent.runCommand(..., self) from tortoisehg.hgqt import cmdui return cmdui.InteractiveUiHandler(uiparent) class _ProtocolError(Exception): """Error while processing server message; must be caught by CmdWorker""" class CmdWorker(QObject): """Back-end service to run Mercurial commands""" # If worker has permanent service, serviceState() should be overridden # to represent the availability of the service. NoService denotes that # it can run command or quit immediately. NoService = 0 Starting = 1 Ready = 2 Stopping = 3 Restarting = 4 NotRunning = 5 serviceStateChanged = pyqtSignal(int) commandFinished = pyqtSignal(int) outputReceived = pyqtSignal(str, str) progressReceived = pyqtSignal(ProgressMessage) def serviceState(self) -> int: return CmdWorker.NoService def startService(self) -> None: # NotRunning->Starting; Stopping->Restarting->Starting; *->* pass def stopService(self) -> None: # {Starting,Ready,Restarting}->Stopping; *->* pass def startCommand(self, cmdline: List[Text], uihandler: UiHandler) -> None: raise NotImplementedError def abortCommand(self) -> None: raise NotImplementedError def isCommandRunning(self) -> bool: raise NotImplementedError _localprocexts = [ 'tortoisehg.util.hgcommands', 'tortoisehg.util.partialcommit', 'tortoisehg.util.pipeui', ] _localserverexts = [ 'tortoisehg.util.hgdispatch', ] if os.name == 'nt': # to translate WM_CLOSE posted by QProcess.terminate() _localprocexts.append('tortoisehg.util.win32ill') def _interruptproc(proc): proc.terminate() else: def _interruptproc(proc): os.kill(proc.processId(), signal.SIGINT) def _fixprocenv(proc): env = QProcessEnvironment.systemEnvironment() # disable flags and extensions that might break our output parsing # (e.g. "defaults" arguments, "PAGER" of "email --test") env.insert('HGPLAINEXCEPT', 'alias,i18n,revsetalias') # since sys.path may contain the script directory which the hg process # wouldn't see, we have to filter it out libpaths = set(sys.path) libpaths.discard(os.path.dirname(os.path.realpath(sys.argv[0]))) thgroot = paths.get_prog_root() if not getattr(sys, 'frozen', False) and thgroot not in libpaths: # make sure hg process can look up our modules pypath = hglib.tounicode(thgroot) if env.contains('PYTHONPATH'): pypath += os.pathsep + env.value('PYTHONPATH') env.insert('PYTHONPATH', pypath) proc.setProcessEnvironment(env) def _proccmdline(ui, exts): configs = [(hglib.tounicode(section), hglib.tounicode(name), hglib.tounicode(value)) for section, name, value in ui.walkconfig() if ui.configsource(section, name) == b'--config'] configs.extend(('extensions', e, '') for e in exts) # Override user aliases (for example "alias.log=log --graph") that could # break searching through the filter toolbar (CTRL+S). configs.append(('alias', 'log', 'log')) cmdline = list(paths.get_hg_command()) for section, name, value in configs: cmdline.extend(('--config', '%s.%s=%s' % (section, name, value))) return cmdline class CmdProc(CmdWorker): 'Run mercurial command in separate process' def __init__(self, ui: uimod.ui, parent: Optional[QObject] = None, cwd: Optional[Text] = None) -> None: super(CmdProc, self).__init__(parent) self._ui = ui self._uihandler = None self._proc = proc = QProcess(self) _fixprocenv(proc) if cwd: proc.setWorkingDirectory(cwd) proc.finished.connect(self._finish) proc.readyReadStandardOutput.connect(self._stdout) proc.readyReadStandardError.connect(self._stderr) proc.errorOccurred.connect(self._handleerror) def startCommand(self, cmdline: List[Text], uihandler: UiHandler) -> None: self._uihandler = uihandler fullcmdline = _proccmdline(self._ui, _localprocexts) fullcmdline.extend(cmdline) self._proc.start(fullcmdline[0], fullcmdline[1:], QIODevice.OpenModeFlag.ReadOnly) def abortCommand(self) -> None: if not self.isCommandRunning(): return _interruptproc(self._proc) def isCommandRunning(self) -> bool: return self._proc.state() != QProcess.ProcessState.NotRunning @pyqtSlot(int) def _finish(self, ret): self._uihandler = None self.commandFinished.emit(ret) @pyqtSlot(QProcess.ProcessError) def _handleerror(self, error): if error == QProcess.ProcessError.FailedToStart: self.outputReceived.emit(_('failed to start command\n'), 'ui.error') self._finish(-1) elif error != QProcess.ProcessError.Crashed: self.outputReceived.emit(_('error while running command\n'), 'ui.error') @pyqtSlot() def _stdout(self): data = self._proc.readAllStandardOutput().data() self._processRead(data, b'') @pyqtSlot() def _stderr(self): data = self._proc.readAllStandardError().data() self._processRead(data, b'ui.error') def _processRead(self, fulldata, defaultlabel): for data in pipeui.splitmsgs(fulldata): msg, label = pipeui.unpackmsg(data) if (not defaultlabel # only stdout and self._uihandler.writeOutput(msg, label) >= 0): continue if b'ui.progress' in label.split(): progress = ProgressMessage(*pipeui.unpackprogress(msg)) self.progressReceived.emit(progress) else: self.outputReceived.emit( hglib.tounicode(msg), hglib.tounicode(label or defaultlabel)) class CmdServer(CmdWorker): """Run Mercurial commands in command server process""" def __init__(self, ui: uimod.ui, parent: Optional[QObject] = None, cwd: Optional[Text] = None) -> None: super(CmdServer, self).__init__(parent) self._ui = ui self._uihandler = UiHandler() self._readchtable = self._idlechtable self._readq = [] # (ch, data or datasize), ... # deadline for arrival of hello message and immature data sec = ui.configint(b'tortoisehg', b'cmdserver.readtimeout') self._readtimer = QTimer(self, interval=sec * 1000, singleShot=True) self._readtimer.timeout.connect(self._onReadTimeout) self._proc = self._createProc(cwd) self._servicestate = CmdWorker.NotRunning def _createProc(self, cwd): proc = QProcess(self) _fixprocenv(proc) if cwd: proc.setWorkingDirectory(cwd) proc.errorOccurred.connect(self._onServiceError) proc.finished.connect(self._onServiceFinished) proc.setReadChannel(QProcess.ProcessChannel.StandardOutput) proc.readyRead.connect(self._onReadyRead) proc.readyReadStandardError.connect(self._onReadyReadError) return proc def serviceState(self) -> int: return self._servicestate def _changeServiceState(self, newstate): if self._servicestate == newstate: return self._servicestate = newstate self.serviceStateChanged.emit(newstate) def startService(self) -> None: if self._servicestate == CmdWorker.NotRunning: self._startService() elif self._servicestate == CmdWorker.Stopping: self._changeServiceState(CmdWorker.Restarting) def _startService(self): if self._proc.bytesToWrite() > 0: # QTBUG-44517: recreate QProcess to discard remainder of last # request; otherwise it would be written to new process oldproc = self._proc self._proc = self._createProc(oldproc.workingDirectory()) oldproc.setParent(None) cmdline = _proccmdline(self._ui, _localprocexts + _localserverexts) cmdline.extend(['serve', '--cmdserver', 'pipe', '--config', 'ui.interactive=True']) self._readchtable = self._hellochtable self._readtimer.start() self._changeServiceState(CmdWorker.Starting) self._proc.start(cmdline[0], cmdline[1:]) def stopService(self) -> None: if self._servicestate in (CmdWorker.Starting, CmdWorker.Ready): self._stopService() elif self._servicestate == CmdWorker.Restarting: self._changeServiceState(CmdWorker.Stopping) def _stopService(self): self._changeServiceState(CmdWorker.Stopping) _interruptproc(self._proc) # make sure "serve" loop ends by EOF (necessary on Windows) self._proc.closeWriteChannel() def _emitError(self, msg): self.outputReceived.emit('cmdserver: %s\n' % msg, 'ui.error') @pyqtSlot(QProcess.ProcessError) def _onServiceError(self, error): self._emitError(self._proc.errorString()) if error == QProcess.ProcessError.FailedToStart: self._onServiceFinished() @pyqtSlot() def _onServiceFinished(self): self._uihandler = UiHandler() self._readchtable = self._idlechtable del self._readq[:] self._readtimer.stop() if self._servicestate == CmdWorker.Restarting: self._startService() return if self._servicestate != CmdWorker.Stopping: self._emitError(_('process exited unexpectedly with code %d') % self._proc.exitCode()) self._changeServiceState(CmdWorker.NotRunning) def isCommandRunning(self) -> bool: return self._readchtable is self._runcommandchtable def startCommand(self, cmdline: List[Text], uihandler: UiHandler) -> None: assert self._servicestate == CmdWorker.Ready, self._servicestate assert not self.isCommandRunning() try: data = hglib.fromunicode('\0'.join(cmdline)) except UnicodeEncodeError as inst: self._emitError(_('failed to encode command: %s') % inst) self._finishCommand(-1) return self._uihandler = uihandler self._readchtable = self._runcommandchtable self._proc.write(b'runcommand\n') self._writeBlock(data) def abortCommand(self): # () -> None if not self.isCommandRunning(): return _interruptproc(self._proc) def _finishCommand(self, ret): self._uihandler = UiHandler() self._readchtable = self._idlechtable self.commandFinished.emit(ret) def _writeBlock(self, data): self._proc.write(struct.pack('>I', len(data))) self._proc.write(data) @pyqtSlot() def _onReadyRead(self): proc = self._proc headersize = 5 try: while True: header = qtlib.qbytearray_or_bytes_to_bytes(proc.peek(headersize)) if not header: self._readtimer.stop() break if len(header) < headersize: self._readtimer.start() break ch, datasize = struct.unpack('>cI', header) if ch in b'IL': # input channel has no data proc.read(headersize) self._readq.append((ch, datasize)) continue if proc.bytesAvailable() < headersize + datasize: self._readtimer.start() break proc.read(headersize) data = proc.read(datasize) self._readq.append((ch, data)) # don't do much things in readyRead slot for simplicity QTimer.singleShot(0, self._dispatchRead) except Exception: self.stopService() raise @pyqtSlot() def _onReadTimeout(self): startbytes = qtlib.qbytearray_or_bytes_to_bytes(self._proc.peek(20)) if startbytes: # data corruption because bad extension might write to stdout? self._emitError(_('timed out while reading: %r...') % startbytes) else: self._emitError(_('timed out waiting for message')) self.stopService() @pyqtSlot() def _dispatchRead(self): try: while self._readq: ch, dataorsize = self._readq.pop(0) try: chfunc = self._readchtable[ch] except KeyError: if not ch.isupper(): continue raise _ProtocolError(_('unexpected response on required ' 'channel %r') % ch) chfunc(self, ch, dataorsize) except _ProtocolError as inst: self._emitError(inst.args[0]) self.stopService() except Exception: self.stopService() raise @pyqtSlot() def _onReadyReadError(self): fulldata = self._proc.readAllStandardError().data() for data in pipeui.splitmsgs(fulldata): msg, label = pipeui.unpackmsg(data) self.outputReceived.emit( hglib.tounicode(msg), hglib.tounicode(label) or 'ui.error') def _processHello(self, _ch, data): try: fields = dict(l.split(b':', 1) for l in data.splitlines()) capabilities = fields[b'capabilities'].split() except (KeyError, ValueError): raise _ProtocolError(_('invalid "hello" message: %r') % data) if b'runcommand' not in capabilities: raise _ProtocolError(_('no "runcommand" capability')) self._readchtable = self._idlechtable self._changeServiceState(CmdWorker.Ready) def _processOutput(self, ch, data): msg, label = pipeui.unpackmsg(data) if ch == b'o' and self._uihandler.writeOutput(msg, label) >= 0: return labelset = label.split() if b'ui.progress' in labelset: progress = ProgressMessage(*pipeui.unpackprogress(msg)) self.progressReceived.emit(progress) elif b'ui.prompt' in labelset: if b'ui.getpass' in labelset: mode = UiHandler.PasswordInput elif b'ui.promptchoice' in labelset: mode = UiHandler.ChoiceInput else: mode = UiHandler.TextInput prompt, default = pipeui.unpackprompt(msg) self._uihandler.setPrompt(hglib.tounicode(prompt), mode, hglib.tounicode(default)) else: self.outputReceived.emit( hglib.tounicode(msg), hglib.tounicode(label)) def _processCommandResult(self, _ch, data): try: ret, = struct.unpack('>i', data) except struct.error: raise _ProtocolError(_('corrupted command result: %r') % data) self._finishCommand(ret) def _processInputRequest(self, _ch, size): data = self._uihandler.readInput(size) if data is None: self._emitError(_('error while reading from data input')) self._writeBlock(b'') return if not data and not self._uihandler.inputAtEnd(): # TODO: should stop processing until readyRead() self._emitError(_('asynchronous read is not implement yet')) self._writeBlock(data) def _processLineRequest(self, _ch, size): # TODO: if no prompt observed, this should be redirected to # self._uihandler.readLineInput(size + 1) text = self._uihandler.getLineInput() if text is None: self._writeBlock(b'') return try: data = hglib.fromunicode(text) + b'\n' except UnicodeEncodeError as inst: self._emitError(_('failed to encode input: %s') % inst) self.abortCommand() return for start in pycompat.xrange(0, len(data), size): self._writeBlock(data[start:start + size]) _idlechtable = { b'o': _processOutput, b'e': _processOutput, } _hellochtable = { b'o': _processHello, b'e': _processOutput, } _runcommandchtable = { b'o': _processOutput, b'e': _processOutput, b'r': _processCommandResult, b'I': _processInputRequest, b'L': _processLineRequest, } _workertypes: Dict[Text, Callable[[uimod.ui, Optional[QObject], Optional[Text]], CmdWorker]] = { 'proc': CmdProc, 'server': CmdServer, } class CmdSession(QObject): """Run Mercurial commands in a background thread or process""" _worker: Optional[CmdWorker] commandFinished = pyqtSignal(int) # in order to receive only notification messages of session state, use # "controlMessage"; otherwise use "outputReceived" controlMessage = pyqtSignal(str) outputReceived = pyqtSignal(str, str) progressReceived = pyqtSignal(ProgressMessage) readyRead = pyqtSignal() def __init__(self, cmdlines: List[List[Text]], uihandler: UiHandler, parent: Optional[QObject] = None) -> None: super(CmdSession, self).__init__(parent) self._uihandler = uihandler self._worker = None self._queue = list(cmdlines) self._qnextp = 0 self._abortbyuser = False self._erroroutputs = [] self._warningoutputs = [] self._dataoutrbuf = QBuffer(self) self._exitcode = 0 if not cmdlines: # assumes null session is failure for convenience self._exitcode = -1 def run(self, worker: CmdWorker) -> None: '''Execute Mercurial command''' if self._worker or self._qnextp >= len(self._queue): return self._connectWorker(worker) if worker.serviceState() in (CmdWorker.NoService, CmdWorker.Ready): self._runNext() def abort(self) -> None: '''Cancel running Mercurial command''' if self.isRunning(): self._worker.abortCommand() self._qnextp = len(self._queue) self._abortbyuser = True elif not self.isFinished(): self._abortbyuser = True # -1 instead of 255 for compatibility with CmdThread self._finish(-1) def isAborted(self) -> bool: """True if commands have finished by user abort""" return self.isFinished() and self._abortbyuser def isFinished(self) -> bool: """True if all pending commands have finished or been aborted""" return self._qnextp >= len(self._queue) and not self.isRunning() def isRunning(self) -> bool: """True if a command is running; False if finished or not started yet""" return bool(self._worker) and self._qnextp > 0 def errorString(self) -> Text: """Error message received in the last command""" if self._abortbyuser: return _('Terminated by user') else: return ''.join(self._erroroutputs).rstrip() def warningString(self) -> Text: """Warning message received in the last command""" return ''.join(self._warningoutputs).rstrip() def exitCode(self) -> int: """Integer return code of the last command""" return self._exitcode def setCaptureOutput(self, enabled: bool) -> None: """If enabled, data outputs (without "ui.*" label) are queued and outputReceived signal is not emitted in that case. This is useful for receiving data to be parsed or copied to the clipboard. """ # pseudo FIFO between client "rbuf" and worker "wbuf"; not efficient # for large data since all outputs will be stored in memory if enabled: self._dataoutrbuf.open(QIODevice.OpenModeFlag.ReadOnly | QIODevice.OpenModeFlag.Truncate) dataoutwbuf = QBuffer(self._dataoutrbuf.buffer()) dataoutwbuf.bytesWritten.connect(self.readyRead) dataoutwbuf.open(QIODevice.OpenModeFlag.WriteOnly) else: self._dataoutrbuf.close() dataoutwbuf = None self.setOutputDevice(dataoutwbuf) def setInputDevice(self, device: Optional[QIODevice]) -> None: """If set, data will be read from the specified device on data input request""" if self.isRunning(): raise RuntimeError('command already running') self._uihandler.setDataInputDevice(device) def setOutputDevice(self, device: Optional[QIODevice]) -> None: """If set, data outputs will be sent to the specified device""" if self.isRunning(): raise RuntimeError('command already running') self._uihandler.setDataOutputDevice(device) def read(self, maxlen: int) -> bytes: """Read output if capturing enabled; ui messages are not included""" return self._dataoutrbuf.read(maxlen) def readAll(self) -> QByteArray: return self._dataoutrbuf.readAll() def readLine(self, maxlen: int = 0) -> bytes: buf = self._dataoutrbuf # There's possibly a bug in PyQt 6.8.1 or Qt 6.8.0 where passing 0 fails # and prints "QIODevice::readLine (QBuffer): Called with maxSize < 2" to # stderr. if maxlen == 0: line = buf.readLine() else: line = buf.readLine(maxlen) return qtlib.qbytearray_or_bytes_to_bytes(line) def canReadLine(self) -> bool: return self._dataoutrbuf.canReadLine() def peek(self, maxlen: int) -> bytes: return qtlib.qbytearray_or_bytes_to_bytes(self._dataoutrbuf.peek(maxlen)) def _connectWorker(self, worker): self._worker = worker worker.serviceStateChanged.connect(self._onWorkerStateChanged) worker.commandFinished.connect(self._onCommandFinished) worker.outputReceived.connect(self.outputReceived) worker.outputReceived.connect(self._captureOutput) worker.progressReceived.connect(self.progressReceived) def _disconnectWorker(self): worker = self._worker if not worker: return worker.serviceStateChanged.disconnect(self._onWorkerStateChanged) worker.commandFinished.disconnect(self._onCommandFinished) worker.outputReceived.disconnect(self.outputReceived) worker.outputReceived.disconnect(self._captureOutput) worker.progressReceived.disconnect(self.progressReceived) self._worker = None def _emitControlMessage(self, msg): self.controlMessage.emit(msg) self.outputReceived.emit(msg + '\n', 'control') def _runNext(self): cmdline = self._queue[self._qnextp] self._qnextp += 1 self._emitControlMessage('% hg ' + hglib.prettifycmdline(cmdline)) self._worker.startCommand(cmdline, self._uihandler) def _finish(self, ret): self._qnextp = len(self._queue) self._disconnectWorker() self._exitcode = ret self.commandFinished.emit(ret) @pyqtSlot(int) def _onWorkerStateChanged(self, state): if state == CmdWorker.Ready: assert self._qnextp == 0, self._qnextp self._runNext() elif state == CmdWorker.NotRunning: # unexpected end of command execution self._finish(-1) @pyqtSlot(int) def _onCommandFinished(self, ret): if ret == -1: if self._abortbyuser: msg = _('[command terminated by user %s]') else: msg = _('[command interrupted %s]') elif ret: msg = _('[command returned code %d %%s]') % ret else: msg = _('[command completed successfully %s]') self._emitControlMessage(msg % time.asctime()) if ret != 0 or self._qnextp >= len(self._queue): self._finish(ret) else: self._runNext() @pyqtSlot(str, str) def _captureOutput(self, msg: str, label: str): if not label: return # fast path labelset = label.split() # typically ui.error is sent only once at end if 'ui.error' in labelset: self._erroroutputs.append(msg) elif 'ui.warning' in labelset: self._warningoutputs.append(msg) def nullCmdSession() -> CmdSession: """Finished CmdSession object which can be used as the initial value exitCode() is -1 so that the command dialog can finish with error status if nothing executed. >>> sess = nullCmdSession() >>> sess.isFinished(), sess.isRunning(), sess.isAborted(), sess.exitCode() (True, False, False, -1) >>> sess.abort() # should not change flags >>> sess.isFinished(), sess.isRunning(), sess.isAborted(), sess.exitCode() (True, False, False, -1) Null session can be set up just like one made by runCommand(). It can be used as an object representing failure or canceled operation. >>> sess.setOutputDevice(QBuffer()) """ return CmdSession([], UiHandler()) class CmdAgent(QObject): """Manage requests of Mercurial commands""" serviceStopped = pyqtSignal() busyChanged = pyqtSignal(bool) # Signal forwarding: # worker ---- agent commandFinished: session (= last one of worker) # \ / outputReceived: worker + session # session progressReceived: worker (= session) # # Inactive session is not started by the agent, so agent.commandFinished # won't be emitted when waiting session is aborted. commandFinished = pyqtSignal(CmdSession) outputReceived = pyqtSignal(str, str) progressReceived = pyqtSignal(ProgressMessage) # isBusy() is False when the last commandFinished is emitted, but you # shouldn't rely on the emission order of busyChanged and commandFinished. def __init__(self, ui: uimod.ui, parent: Optional[QObject] = None, cwd: Optional[Text] = None, worker: Optional[Text] = None) -> None: super(CmdAgent, self).__init__(parent) self._ui = ui self._worker = self._createWorker(cwd, worker or 'server') self._sessqueue = [] # [active, waiting...] self._runlater = QTimer(self, interval=0, singleShot=True) self._runlater.timeout.connect(self._runNextSession) def isServiceRunning(self) -> bool: stoppedstates = (CmdWorker.NoService, CmdWorker.NotRunning) return self._worker.serviceState() not in stoppedstates def stopService(self) -> None: """Shut down back-end services so that this can be deleted safely or reconfigured; serviceStopped will be emitted asynchronously""" self._worker.stopService() @pyqtSlot() def _tryEmitServiceStopped(self): if not self.isServiceRunning(): self.serviceStopped.emit() def isBusy(self) -> bool: return bool(self._sessqueue) def _enqueueSession(self, sess): self._sessqueue.append(sess) if len(self._sessqueue) == 1: self.busyChanged.emit(self.isBusy()) # make sure no command signals emitted in the current context self._runlater.start() def _dequeueSession(self): del self._sessqueue[0] if self._sessqueue: # make sure client can receive commandFinished before next session self._runlater.start() else: self._runlater.stop() self.busyChanged.emit(self.isBusy()) def _cleanupWaitingSession(self): for i in reversed(pycompat.xrange(1, len(self._sessqueue))): sess = self._sessqueue[i] if sess.isFinished(): del self._sessqueue[i] sess.setParent(None) def runCommand(self, cmdline: List[Text], uihandler: Optional[Union[QWidget, UiHandler]] = None) -> CmdSession: """Executes a single Mercurial command asynchronously and returns new CmdSession object""" return self.runCommandSequence([cmdline], uihandler) def runCommandSequence(self, cmdlines: List[List[Text]], uihandler: Optional[Union[QWidget, UiHandler]] = None) -> CmdSession: """Executes a series of Mercurial commands asynchronously and returns new CmdSession object which will provide notification signals. The optional uihandler is the call-back of user-interaction requests. If uihandler does not implement UiHandler interface, it will be used as the parent widget of the default InteractiveUiHandler. If uihandler is None, no interactive prompt will be displayed. If the specified uihandler is a UiHandler object, it should be created per request in order to avoid sharing the same uihandler across several CmdSession objects. CmdSession object will be disowned on command finished. The specified uihandler is unrelated to the lifetime of CmdSession object. If one of the preceding command exits with non-zero status, the following commands won't be executed. """ if not isinstance(uihandler, UiHandler): uihandler = _createDefaultUiHandler(uihandler) sess = CmdSession(cmdlines, uihandler, self) sess.commandFinished.connect(self._onCommandFinished) sess.controlMessage.connect(self._forwardControlMessage) self._enqueueSession(sess) return sess def abortCommands(self) -> None: """Abort running and queued commands; all command sessions will emit commandFinished""" for sess in self._sessqueue[:]: sess.abort() def _createWorker(self, cwd: Optional[Text], name: Text) -> CmdWorker: self._ui.debug(b"creating cmdworker '%s'\n" % pycompat.sysbytes(name)) worker = _workertypes[name](self._ui, self, cwd) worker.serviceStateChanged.connect(self._tryEmitServiceStopped) worker.outputReceived.connect(self.outputReceived) worker.progressReceived.connect(self.progressReceived) return worker @pyqtSlot() def _runNextSession(self): sess = self._sessqueue[0] worker = self._worker assert not worker.isCommandRunning() sess.run(worker) # start after connected to sess so that it can receive immediate error worker.startService() @pyqtSlot() def _onCommandFinished(self): sess = self._sessqueue[0] if not sess.isFinished(): # waiting session is aborted, just delete it self._cleanupWaitingSession() return self._dequeueSession() self.commandFinished.emit(sess) sess.setParent(None) @pyqtSlot(str) def _forwardControlMessage(self, msg): self.outputReceived.emit(msg + '\n', 'control') ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730809007.0 tortoisehg-6.9/tortoisehg/hgqt/cmdui.py0000644000000000000000000005751514712406257017147 0ustar00rootroot# cmdui.py - A widget to execute Mercurial command for TortoiseHg # # Copyright 2010 Yuki KODAMA # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import weakref from typing import ( cast, Optional, ) from mercurial import ( pycompat, ) from .qsci import ( QsciScintilla, ) from .qtcore import ( QSettings, Qt, pyqtSignal, pyqtSlot, ) from .qtgui import ( QColor, QDialog, QDialogButtonBox, QFont, QHBoxLayout, QLabel, QLayout, QLineEdit, QMessageBox, QProgressBar, QSizePolicy, QStatusBar, QVBoxLayout, QWidget, ) from ..util import hglib from ..util.i18n import _ from . import ( cmdcore, qtlib, qscilib, ) def startProgress(topic, status): topic, item, pos, total, unit = topic, '...', status, None, '' return topic, pos, item, unit, total def stopProgress(topic): topic, item, pos, total, unit = topic, '', None, None, '' return topic, pos, item, unit, total class ProgressMonitor(QWidget): 'Progress bar for use in workbench status bar' def __init__(self, topic, parent): super(ProgressMonitor, self).__init__(parent) hbox = QHBoxLayout() hbox.setContentsMargins(*(0,)*4) self.setLayout(hbox) self.idle = False self.pbar = QProgressBar() self.pbar.setTextVisible(False) self.pbar.setMinimum(0) hbox.addWidget(self.pbar) self.topic = QLabel(topic) hbox.addWidget(self.topic, 0) self.status = QLabel() hbox.addWidget(self.status, 1) self.pbar.setMaximum(100) self.pbar.reset() self.status.setText('') def clear(self): self.pbar.setMinimum(0) self.pbar.setMaximum(100) self.pbar.setValue(100) self.status.setText('') self.idle = True def setcounts(self, cur, max): # cur and max may exceed INT_MAX, which confuses QProgressBar assert max != 0 self.pbar.setMaximum(100) self.pbar.setValue(int(cur * 100 / max)) def unknown(self): self.pbar.setMinimum(0) self.pbar.setMaximum(0) class ThgStatusBar(QStatusBar): linkActivated = pyqtSignal(str) def __init__(self, parent=None): QStatusBar.__init__(self, parent) self.topics = {} self.lbl = QLabel() self.lbl.linkActivated.connect(self.linkActivated) self.addWidget(self.lbl) self._busyrepos = set() self._busypbar = QProgressBar(self, minimum=0, maximum=0) self.addWidget(self._busypbar) self.setStyleSheet('QStatusBar::item { border: none }') self._updateBusyProgress() @pyqtSlot(str) def showMessage(self, ustr, error=False): self.lbl.setText(ustr) if error: self.lbl.setStyleSheet('QLabel { color: red }') else: self.lbl.setStyleSheet('') def setRepoBusy(self, root: str, busy): if busy: self._busyrepos.add(root) else: self._busyrepos.discard(root) self._updateBusyProgress() def _updateBusyProgress(self): # busy indicator is the last option, which is visible only if no # progress information is available visible = bool(self._busyrepos and not self.topics) self._busypbar.setVisible(visible) if visible: self._busypbar.setMaximumSize(150, self.lbl.sizeHint().height()) @pyqtSlot() def clearProgress(self): keys = list(self.topics) for key in keys: self._removeProgress(key) @pyqtSlot(str) def clearRepoProgress(self, root: str): keys = [k for k in self.topics if k[0] == root] for key in keys: self._removeProgress(key) def _removeProgress(self, key): pm = self.topics[key] self.removeWidget(pm) pm.setParent(None) del self.topics[key] self._updateBusyProgress() # TODO: migrate to setProgress() API @pyqtSlot(str, object, str, str, object) def progress(self, topic: str, pos, item: str, unit: str, total, root=None): 'Progress signal received from repowidget' # topic is current operation # pos is the current numeric position (revision, bytes) # item is a non-numeric marker of current position (current file) # unit is a string label # total is the highest expected pos # # All topics should be marked closed by setting pos to None key = (root, topic) if pos is None or (not pos and not total): if key in self.topics: self._removeProgress(key) return if key not in self.topics: pm = ProgressMonitor(topic, self) pm.setMaximumHeight(self.lbl.sizeHint().height()) self.addWidget(pm) self.topics[key] = pm self._updateBusyProgress() else: pm = self.topics[key] if total: fmt = '%s / %s ' % (str(pos), str(total)) if unit: fmt += unit pm.status.setText(fmt) pm.setcounts(pos, total) else: if item: item = item[-30:] pm.status.setText('%s %s' % (str(pos), item)) pm.unknown() @pyqtSlot(cmdcore.ProgressMessage) def setProgress(self, progress): self.progress(*progress) @pyqtSlot(str, cmdcore.ProgressMessage) def setRepoProgress(self, root: str, progress): self.progress(*(progress + (root,))) def updateStatusMessage(stbar, session): """Update status bar to show the status of the given session""" if not session.isFinished(): stbar.showMessage(_('Running...')) elif session.isAborted(): stbar.showMessage(_('Terminated by user')) elif session.exitCode() == 0: stbar.showMessage(_('Finished')) else: stbar.showMessage(_('Failed!'), True) class LogWidget(qscilib.ScintillaCompat): """Output log viewer""" def __init__(self, parent=None): super(LogWidget, self).__init__(parent) self.setReadOnly(True) self.setUtf8(True) self.setMarginWidth(1, 0) self.setWrapMode(QsciScintilla.WrapMode.WrapCharacter) self._initfont() self._initmarkers() qscilib.unbindConflictedKeys(self) def _initfont(self): tf = qtlib.getfont('fontoutputlog') tf.changed.connect(self.forwardFont) self.setFont(tf.font()) @pyqtSlot(QFont) def forwardFont(self, font): self.setFont(font) def _initmarkers(self): self._markers = {} for l in ('ui.error', 'ui.warning', 'control'): self._markers[l] = m = self.markerDefine(QsciScintilla.MarkerSymbol.Background) c = QColor(qtlib.getbgcoloreffect(l)) if c.isValid(): self.setMarkerBackgroundColor(c, m) # NOTE: self.setMarkerForegroundColor() doesn't take effect, # because it's a *Background* marker. @pyqtSlot(str, str) def appendLog(self, msg: str, label: str): """Append log text to the last line; scrolls down to there""" self.append(msg) self._setmarker(pycompat.xrange(self.lines() - msg.count('\n') - 1, self.lines() - 1), label) self.setCursorPosition(self.lines() - 1, 0) def _setmarker(self, lines, label): for m in self._markersforlabel(label): for i in lines: self.markerAdd(i, m) def _markersforlabel(self, label): return iter(self._markers[l] for l in label.split() if l in self._markers) @pyqtSlot() def clearLog(self): """This slot can be overridden by subclass to do more actions""" self.clear() def contextMenuEvent(self, event): menu = self.createStandardContextMenu() menu.addSeparator() menu.addAction(_('Clea&r Log'), self.clearLog) menu.exec(event.globalPos()) menu.setParent(None) def keyPressEvent(self, event): # propagate key events important for dialog if event.key() == Qt.Key.Key_Escape: event.ignore() return super(LogWidget, self).keyPressEvent(event) class InteractiveUiHandler(cmdcore.UiHandler): """Handle user interaction of Mercurial commands with GUI prompt""" # Unlike QObject, "uiparent" does not own this handler def __init__(self, uiparent: Optional[QWidget] = None) -> None: super(InteractiveUiHandler, self).__init__() self._prompttext = '' self._promptmode = cmdcore.UiHandler.NoInput self._promptdefault = '' self._uiparentref = None if uiparent: self._uiparentref = weakref.ref(uiparent) def setPrompt(self, text: str, mode, default: Optional[str]=None): self._prompttext = text self._promptmode = mode self._promptdefault = default if default else '' def getLineInput(self): mode = self._promptmode if mode == cmdcore.UiHandler.TextInput: return self._getTextInput(QLineEdit.EchoMode.Normal) elif mode == cmdcore.UiHandler.PasswordInput: return self._getTextInput(QLineEdit.EchoMode.Password) elif mode == cmdcore.UiHandler.ChoiceInput: return self._getChoiceInput() else: return '' def _getTextInput(self, echomode): text, ok = qtlib.getTextInput(self._parentWidget(), _('TortoiseHg Prompt'), self._prompttext, echomode) if ok: return text def _getChoiceInput(self): msg, choicepairs = hglib.extractchoices(self._prompttext) dlg = QMessageBox(QMessageBox.Icon.Question, _('TortoiseHg Prompt'), msg, QMessageBox.StandardButton.NoButton, self._parentWidget()) dlg.setWindowFlags(Qt.WindowType.Sheet) dlg.setWindowModality(Qt.WindowModality.WindowModal) for r, t in choicepairs: button = dlg.addButton(t, QMessageBox.ButtonRole.ActionRole) button.response = r if r == self._promptdefault: dlg.setDefaultButton(button) # button to close prompt dialog with empty response (i.e. abort) dlg.addButton(QMessageBox.StandardButton.Abort) dlg.setEscapeButton(QMessageBox.StandardButton.Abort) dlg.exec() button = dlg.clickedButton() if button and dlg.buttonRole(button) == QMessageBox.ButtonRole.ActionRole: return button.response def _parentWidget(self) -> Optional[QWidget]: # TODO: Drop this function if _uiparentref() can be typed as a QWidget p = self._uiparentref() if self._uiparentref else None while p and not p.isWidgetType(): p = p.parent() return cast(Optional[QWidget], p) class PasswordUiHandler(InteractiveUiHandler): """Handle no user interaction of Mercurial commands but password input""" def getLineInput(self): mode = self._promptmode if mode == cmdcore.UiHandler.PasswordInput: return self._getTextInput(QLineEdit.EchoMode.Password) else: return '' _detailbtntextmap = { # current state: action text False: _('Show Detail'), True: _('Hide Detail')} class CmdSessionControlWidget(QWidget): """Helper widget to implement dialog to run Mercurial commands""" finished = pyqtSignal(int) linkActivated = pyqtSignal(str) logVisibilityChanged = pyqtSignal(bool) # this won't provide commandFinished signal because the client code # should know the running session. def __init__(self, parent=None, logVisible=False): super(CmdSessionControlWidget, self).__init__(parent) vbox = QVBoxLayout() vbox.setSpacing(4) vbox.setContentsMargins(0, 0, 0, 0) # command output area self._outputLog = LogWidget(self) self._outputLog.setVisible(logVisible) vbox.addWidget(self._outputLog, 1) ## status and progress labels self._stbar = ThgStatusBar() self._stbar.setSizeGripEnabled(False) self._stbar.linkActivated.connect(self.linkActivated) vbox.addWidget(self._stbar) # bottom buttons self._buttonbox = buttons = QDialogButtonBox() self._cancelBtn = buttons.addButton(QDialogButtonBox.StandardButton.Cancel) self._cancelBtn.clicked.connect(self.abortCommand) self._closeBtn = buttons.addButton(QDialogButtonBox.StandardButton.Close) self._closeBtn.clicked.connect(self.reject) self._detailBtn = buttons.addButton(_detailbtntextmap[logVisible], QDialogButtonBox.ButtonRole.ResetRole) self._detailBtn.setAutoDefault(False) self._detailBtn.setCheckable(True) self._detailBtn.setChecked(logVisible) self._detailBtn.toggled.connect(self.setLogVisible) vbox.addWidget(buttons) self.setLayout(vbox) self._session = cmdcore.nullCmdSession() self._stbar.hide() self._updateSizePolicy() self._updateUi() def session(self): return self._session def setSession(self, sess): """Start watching the given command session""" assert self._session.isFinished() self._session = sess sess.commandFinished.connect(self._onCommandFinished) sess.outputReceived.connect(self._outputLog.appendLog) sess.progressReceived.connect(self._stbar.setProgress) self._cancelBtn.setEnabled(True) self._updateStatus() @pyqtSlot() def abortCommand(self): self._session.abort() self._cancelBtn.setDisabled(True) @pyqtSlot() def _onCommandFinished(self): self._updateStatus() self._stbar.clearProgress() def addButton(self, text, role): """Add custom button which will typically start Mercurial command""" button = self._buttonbox.addButton(text, role) self._updateUi() return button @pyqtSlot() def setFocusToCloseButton(self): self._closeBtn.setFocus() def showStatusMessage(self, message): """Display the given message in status bar; the message remains until the command status is changed""" self._stbar.showMessage(message) self._stbar.show() def isLogVisible(self): return self._outputLog.isVisibleTo(self) @pyqtSlot(bool) def setLogVisible(self, visible): """show/hide command output""" if visible == self.isLogVisible(): return self._outputLog.setVisible(visible) self._detailBtn.setChecked(visible) self._detailBtn.setText(_detailbtntextmap[visible]) self._updateSizePolicy() self.logVisibilityChanged.emit(visible) @pyqtSlot() def reject(self): """Request to close the dialog or abort the running command""" if not self._session.isFinished(): ret = QMessageBox.question(self, _('Confirm Exit'), _('Mercurial command is still running.\n' 'Are you sure you want to terminate?'), QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.No, QMessageBox.StandardButton.No) if ret == QMessageBox.StandardButton.Yes: self.abortCommand() return self.finished.emit(self._session.exitCode()) def _updateSizePolicy(self): if self.testAttribute(Qt.WidgetAttribute.WA_WState_OwnSizePolicy): return if self.isLogVisible(): self.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding) else: self.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed) self.setAttribute(Qt.WidgetAttribute.WA_WState_OwnSizePolicy, False) def _updateStatus(self): self._stbar.show() self._updateUi() def _updateUi(self): updateStatusMessage(self._stbar, self._session) self._cancelBtn.setVisible(not self._session.isFinished()) self._closeBtn.setVisible(self._session.isFinished()) class AbstractCmdWidget(QWidget): """Widget to prepare Mercurial command controlled by CmdControlDialog""" # signal to update "Run" button, etc. commandChanged = pyqtSignal() def readSettings(self, qs): pass def writeSettings(self, qs): pass def canRunCommand(self): # True if all command parameters are valid raise NotImplementedError def runCommand(self): # return new CmdSession or nullCmdSession on error raise NotImplementedError class CmdControlDialog(QDialog): """Dialog to run one-shot Mercurial command prepared by embedded widget The embedded widget must implement AbstractCmdWidget or provide signals and methods defined by it. Settings are prefixed by the objectName() group, so you should specify unique name by setObjectName(). You don't need to extend this class unless you want to provide additional public methods/signals, or implement custom error handling. Unlike QDialog, the result code is set to the exit code of the last command. exec() returns 0 on success. """ commandFinished = pyqtSignal(int) def __init__(self, parent=None): super(CmdControlDialog, self).__init__(parent) self.setWindowFlags(self.windowFlags() & ~Qt.WindowType.WindowContextHelpButtonHint) vbox = QVBoxLayout() vbox.setSizeConstraint(QLayout.SizeConstraint.SetMinAndMaxSize) self.setLayout(vbox) self.__cmdwidget = None self.__cmdcontrol = cmd = CmdSessionControlWidget(self) cmd.finished.connect(self.done) vbox.addWidget(cmd) self.__runbutton = cmd.addButton(_('&Run'), QDialogButtonBox.ButtonRole.AcceptRole) self.__runbutton.clicked.connect(self.runCommand) self.__updateUi() # use __-prefix, name mangling, to avoid name conflicts in derived classes def __readSettings(self): if not self.objectName(): return assert self.__cmdwidget qs = QSettings() qs.beginGroup(self.objectName()) self.__cmdwidget.readSettings(qs) self.restoreGeometry(qtlib.readByteArray(qs, 'geom')) qs.endGroup() def __writeSettings(self): if not self.objectName(): return assert self.__cmdwidget qs = QSettings() qs.beginGroup(self.objectName()) self.__cmdwidget.writeSettings(qs) qs.setValue('geom', self.saveGeometry()) qs.endGroup() def commandWidget(self): return self.__cmdwidget def setCommandWidget(self, widget): oldwidget = self.__cmdwidget if oldwidget is widget: return if oldwidget: oldwidget.commandChanged.disconnect(self.__updateUi) self.layout().removeWidget(oldwidget) oldwidget.setParent(None) self.__cmdwidget = widget if widget: self.layout().insertWidget(0, widget, 1) widget.commandChanged.connect(self.__updateUi) self.__readSettings() self.__fixInitialFocus() self.__updateUi() def __fixInitialFocus(self): if self.focusWidget(): # do not change if already set return # set focus to the first item of the command widget fw = self.__cmdwidget while fw.focusPolicy() == Qt.FocusPolicy.NoFocus or not fw.isVisibleTo(self): fw = fw.nextInFocusChain() if fw is self.__cmdwidget or fw is self.__cmdcontrol: # no candidate available return fw.setFocus() def runButtonText(self): return self.__runbutton.text() def setRunButtonText(self, text): self.__runbutton.setText(text) def isLogVisible(self): return self.__cmdcontrol.isLogVisible() def setLogVisible(self, visible): self.__cmdcontrol.setLogVisible(visible) def isCommandFinished(self): """True if no pending or running command exists (but might not be ready to run command because of incomplete user input)""" return self.__cmdcontrol.session().isFinished() def canRunCommand(self): """True if everything's ready to run command""" return (bool(self.__cmdwidget) and self.__cmdwidget.canRunCommand() and self.isCommandFinished()) @pyqtSlot() def runCommand(self): if not self.canRunCommand(): return sess = self.__cmdwidget.runCommand() if sess.isFinished(): return self.__cmdcontrol.setSession(sess) sess.commandFinished.connect(self.__onCommandFinished) self.__updateUi() @pyqtSlot(int) def __onCommandFinished(self, ret): self.__updateUi() if ret == 0: self.__runbutton.hide() self.__cmdcontrol.setFocusToCloseButton() elif ret == 255 and not self.__cmdcontrol.session().isAborted(): errorMessageBox(self.__cmdcontrol.session(), self) # handle command-specific error if any self.commandFinished.emit(ret) if ret != 255: self.__writeSettings() if ret == 0 and not self.isLogVisible(): self.__cmdcontrol.reject() def lastFinishedSession(self): """Session of the last executed command; can be used in commandFinished handler""" sess = self.__cmdcontrol.session() if not sess.isFinished(): # do not expose running session because this dialog should have # full responsibility to control running command return cmdcore.nullCmdSession() return sess def reject(self): self.__cmdcontrol.reject() @pyqtSlot() def __updateUi(self): if self.__cmdwidget: self.__cmdwidget.setEnabled(self.isCommandFinished()) self.__runbutton.setEnabled(self.canRunCommand()) class CmdSessionDialog(QDialog): """Dialog to monitor running Mercurial commands Unlike QDialog, the result code is set to the exit code of the last command. exec() returns 0 on success. """ # this won't provide commandFinished signal because the client code # should know the running session. def __init__(self, parent=None): super(CmdSessionDialog, self).__init__(parent) self.setWindowFlags(self.windowFlags() & ~Qt.WindowType.WindowContextHelpButtonHint) self.setWindowTitle(_('TortoiseHg Command Dialog')) self.resize(540, 420) vbox = QVBoxLayout() self.setLayout(vbox) vbox.setContentsMargins(5, 5, 5, 5) vbox.setSizeConstraint(QLayout.SizeConstraint.SetMinAndMaxSize) self._cmdcontrol = cmd = CmdSessionControlWidget(self, logVisible=True) cmd.finished.connect(self.done) vbox.addWidget(cmd) def setSession(self, sess): """Start watching the given command session""" self._cmdcontrol.setSession(sess) sess.commandFinished.connect(self._cmdcontrol.setFocusToCloseButton) def isLogVisible(self): return self._cmdcontrol.isLogVisible() def setLogVisible(self, visible): """show/hide command output""" self._cmdcontrol.setLogVisible(visible) def reject(self): self._cmdcontrol.reject() def errorMessageBox(session, parent=None, title=None): """Open a message box to report the error of the given session""" if not title: title = _('Command Error') reason = session.errorString() text = session.warningString() if text: text += '\n\n' text += _('[Code: %d]') % session.exitCode() return qtlib.WarningMsgBox(title, reason, text, parent=parent) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1736945585.0 tortoisehg-6.9/tortoisehg/hgqt/commit.py0000644000000000000000000017674014741727661017347 0ustar00rootroot# commit.py - TortoiseHg's commit widget and standalone dialog # # Copyright 2010 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os import re import tempfile import time from typing import ( cast, ) from .qsci import ( QsciAPIs, ) from .qtcore import ( QSettings, QSize, QTimer, Qt, pyqtSignal, pyqtSlot, ) from .qtgui import ( QAction, QActionGroup, QCheckBox, QComboBox, QDialog, QDialogButtonBox, QFont, QFrame, QHBoxLayout, QKeySequence, QLabel, QLineEdit, QMenu, QMessageBox, QPushButton, QShortcut, QSizePolicy, QStyle, QStyleFactory, QStyleOptionToolButton, QSplitter, QToolBar, QToolButton, QVBoxLayout, QWidget, ) from mercurial import ( cmdutil, error, obsolete, # delete if obsolete becomes enabled by default phases, pycompat, ) from mercurial.utils import ( dateutil, ) from ..util import ( hglib, i18n, shlib, wconfig, ) from ..util.i18n import _ from . import ( branchop, cmdcore, cmdui, hgrcutil, lfprompt, qscilib, qtlib, revpanel, status, topic, thgrepo, ) from .messageentry import MessageEntry if hglib.TYPE_CHECKING: from typing import ( Callable, Dict, Iterable, List, Optional, Text, Tuple, Union, ) from mercurial import localrepo from .qtcore import QObject from .thgrepo import RepoAgent # `opts` arg type internal to this module. Public classes use # Dict[Text, bytes] to support @command. CommitOpts = Dict[Text, Union[bool, Text]] # TODO: simplify to just be List[Text]? CmdLines = List[List[Union[bytes, Text]]] if os.name == 'nt': from ..util import bugtraq _hasbugtraq = True else: _hasbugtraq = False def readopts(repoagent: RepoAgent) -> CommitOpts: opts = { 'ciexclude': repoagent.configString('tortoisehg', 'ciexclude'), 'pushafter': repoagent.configString('tortoisehg', 'cipushafter'), 'autoinc': repoagent.configString('tortoisehg', 'autoinc'), 'recurseinsubrepos': repoagent.configBool('tortoisehg', 'recurseinsubrepos'), 'bugtraqplugin': repoagent.configString('tortoisehg', 'issue.bugtraqplugin'), 'bugtraqparameters': repoagent.configString('tortoisehg', 'issue.bugtraqparameters') } if opts['bugtraqparameters']: opts['bugtraqparameters'] = os.path.expandvars( opts['bugtraqparameters']) opts['bugtraqtrigger'] = repoagent.configString('tortoisehg', 'issue.bugtraqtrigger') return opts def commitopts2str(opts: CommitOpts, mode: Text = 'commit') -> Text: optslist = [] for opt, value in opts.items(): if opt in ['user', 'date', 'pushafter', 'autoinc', 'recurseinsubrepos']: if mode == 'merge' and opt == 'autoinc': # autoinc does not apply to merge commits continue if value is True: optslist.append('--' + opt) elif value: optslist.append('--%s=%s' % (opt, value)) return ' '.join(optslist) def mergecommitmessage(repo: localrepo.localrepository) -> Text: wctx = repo[None] engmsg = repo.ui.configbool(b'tortoisehg', b'engmsg') bcustommsg = repo.ui.config(b'tortoisehg', b'mergecommitmessage') if bcustommsg: text = hglib.tounicode(cmdutil.rendertemplate(wctx, bcustommsg)) elif wctx.p1().branch() == wctx.p2().branch(): msgset = i18n.keepgettext()._('Merge') text = engmsg and msgset['id'] or msgset['str'] else: msgset = i18n.keepgettext()._('Merge with %s') text = engmsg and msgset['id'] or msgset['str'] text = text % hglib.tounicode(wctx.p2().branch()) return text def _getUserOptions(opts: CommitOpts, optionlist: Iterable[Text]) -> List[Text]: out = [] for opt in optionlist: if opt not in opts: continue val = opts[opt] if val is False: continue elif val is True: out.append('--' + opt) else: out.append('--' + opt) assert isinstance(val, str) # help pytype # Even with the assertion, the cast is needed or pytype thinks `out` # is List[Union[bool, str]] out.append(str(val)) return out def _mqNewRefreshCommand(repo: localrepo.localrepository, isnew: bool, stwidget: status.StatusWidget, pnwidget: QLineEdit, message: Text, opts: CommitOpts, olist: Iterable[Text]) -> Optional[CmdLines]: # TODO: convert all bytes to unicode in the return value if isnew: name = pnwidget.text() if not name: qtlib.ErrorMsgBox(_('Patch Name Required'), _('You must enter a patch name')) pnwidget.setFocus() return cmdline = ['qnew', name] else: cmdline = ['qrefresh'] if message: cmdline += ['--message=' + hglib.tounicode(message)] cmdline += _getUserOptions(opts, olist) files = ['--'] + [repo.wjoin(x) for x in stwidget.getChecked()] addrem = [repo.wjoin(x) for x in stwidget.getChecked('!?')] if len(files) > 1: cmdline += files else: cmdline += ['--exclude', repo.root] if addrem: cmdlines = [['addremove'] + addrem, cmdline] else: cmdlines = [cmdline] return cmdlines _topicmap = { 'amend': _('Commit', 'start progress'), 'commit': _('Commit', 'start progress'), 'qnew': _('MQ Action', 'start progress'), 'qref': _('MQ Action', 'start progress'), 'rollback': _('Rollback', 'start progress'), } # Technical Debt for CommitWidget # disable commit button while no message is entered or no files are selected # qtlib decode failure dialog (ask for retry locale, suggest HGENCODING) # spell check / tab completion # in-memory patching / committing chunk selected files class CommitWidget(QWidget, qtlib.TaskWidget): 'A widget that encompasses a StatusWidget and commit extras' commitButtonEnable = pyqtSignal(bool) linkActivated = pyqtSignal(str) showMessage = pyqtSignal(str) grepRequested = pyqtSignal(str, dict) runCustomCommandRequested = pyqtSignal(str, list) commitComplete = pyqtSignal() progress = pyqtSignal(str, object, str, str, object) def __init__(self, repoagent: RepoAgent, pats: List[bytes], opts: Dict[Text, bytes], parent: Optional[QObject] = None, rev: Optional[Text] = None) -> None: # TODO: drop `opts`, since it is immediately overwritten? # TODO: make `rev` a byte string? QWidget.__init__(self, parent) repoagent.configChanged.connect(self.refresh) repoagent.repositoryChanged.connect(self.repositoryChanged) self._repoagent = repoagent repo = repoagent.rawRepo() self._cmdsession = cmdcore.nullCmdSession() self._rev = rev self.lastAction = None # Dictionary storing the last (commit message, modified flag) # 'commit' is used for 'commit' and 'qnew', while # 'amend' is used for 'amend' and 'qrefresh' self.lastCommitMsgs = {'commit': ('', False), 'amend': ('', False)} self.currentAction = None self.opts = opts = readopts(repoagent) # user, date self.stwidget = status.StatusWidget(repoagent, pats, opts, self) self.stwidget.showMessage.connect(self.showMessage) self.stwidget.progress.connect(self.progress) self.stwidget.linkActivated.connect(self.linkActivated) self.stwidget.fileDisplayed.connect(self.fileDisplayed) self.stwidget.grepRequested.connect(self.grepRequested) self.stwidget.runCustomCommandRequested.connect( self.runCustomCommandRequested) self.msghistory = [] layout = QVBoxLayout() layout.setContentsMargins(2, 2, 2, 2) layout.setSpacing(0) layout.addWidget(self.stwidget) self.setLayout(layout) vbox = QVBoxLayout() vbox.setSpacing(0) vbox.setContentsMargins(*(0,)*4) hbox = QHBoxLayout() hbox.setContentsMargins(*(0,)*4) tbar = QToolBar(_("Commit Dialog Toolbar"), self) tbar.setStyleSheet(qtlib.tbstylesheet) hbox.addWidget(tbar) self.branchbutton = tbar.addAction(_('Branch: ')) font = self.branchbutton.font() font.setBold(True) self.branchbutton.setFont(font) self.branchbutton.triggered.connect(self.branchOp) self.branchop = None if hglib.hastopicext(repo): self.topicbutton = tbar.addAction(_('Topic: ')) font = self.topicbutton.font() font.setBold(True) self.topicbutton.setFont(font) self.topicbutton.triggered.connect(self.topicOp) else: self.topicbutton = None self.recentMessagesButton = QToolButton( text=_('Copy message'), popupMode=QToolButton.ToolButtonPopupMode.InstantPopup, toolTip=_('Copy one of the recent commit messages')) m = QMenu(self.recentMessagesButton) m.triggered.connect(self.msgSelected) self.recentMessagesButton.setMenu(m) tbar.addWidget(self.recentMessagesButton) self.updateRecentMessages() tbar.addAction(_('Options')).triggered.connect(self.details) tbar.setIconSize(qtlib.smallIconSize()) if _hasbugtraq and self.opts['bugtraqplugin']: # We create the "Show Issues" button, but we delay its setup # because creating the bugtraq object is slow and blocks the GUI, # which would result in a noticeable slow down while creating # the commit widget self.showIssues = tbar.addAction(_('Show Issues')) self.showIssues.setEnabled(False) self.showIssues.setToolTip(_('Please wait...')) def setupBugTraqButton(): self.bugtraq = self.createBugTracker() try: parameters = self.opts['bugtraqparameters'] linktext = self.bugtraq.get_link_text(parameters) except Exception as e: # TODO: use TypedDict instead of casting? tracker = cast(str, self.opts['bugtraqplugin']).split(' ', 1)[1] errormsg = _('Failed to load issue tracker \'%s\': %s') \ % (tracker, hglib.exception_str(e)) self.showIssues.setToolTip(errormsg) qtlib.ErrorMsgBox(_('Issue Tracker'), errormsg, parent=self) self.bugtraq = None else: # connect UI because we have a valid bug tracker self.commitComplete.connect(self.bugTrackerPostCommit) self.showIssues.setText(linktext) self.showIssues.triggered.connect( self.getBugTrackerCommitMessage) self.showIssues.setToolTip(_('Show Issues...')) self.showIssues.setEnabled(True) QTimer.singleShot(100, setupBugTraqButton) self.stopAction = tbar.addAction(_('Stop')) self.stopAction.triggered.connect(self.stop) self.stopAction.setIcon(qtlib.geticon('process-stop')) self.stopAction.setEnabled(False) hbox.addStretch(1) vbox.addLayout(hbox, 0) self.buttonHBox = hbox if b'mq' in self.repo.extensions(): self.hasmqbutton = True pnhbox = QHBoxLayout() self.pnlabel = QLabel() pnhbox.addWidget(self.pnlabel) self.pnedit = QLineEdit() self.pnedit.setPlaceholderText(_('### patch name ###')) self.pnedit.setMaximumWidth(250) pnhbox.addWidget(self.pnedit) pnhbox.addStretch() vbox.addLayout(pnhbox) else: self.hasmqbutton = False self.optionslabel = QLabel() self.optionslabel.setSizePolicy(QSizePolicy.Policy.Ignored, QSizePolicy.Policy.Preferred) vbox.addWidget(self.optionslabel, 0) self.wdirinfo = revpanel.WDirInfoWidget(repo) vbox.addWidget(self.wdirinfo, 0) msgte = MessageEntry(self, self.stwidget.getChecked) msgte.installEventFilter(qscilib.KeyPressInterceptor(self)) vbox.addWidget(msgte, 1) upperframe = QFrame() sp = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding) sp.setHorizontalStretch(1) upperframe.setSizePolicy(sp) upperframe.setLayout(vbox) self.split = QSplitter(Qt.Orientation.Vertical) if os.name == 'nt': self.split.setStyle(QStyleFactory.create('Plastique')) sp = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding) sp.setHorizontalStretch(1) sp.setVerticalStretch(0) self.split.setSizePolicy(sp) # Add our widgets to the top of our splitter self.split.addWidget(upperframe) self.split.setCollapsible(0, False) # Add status widget document frame below our splitter # this reparents the docf from the status splitter self.split.addWidget(self.stwidget.docf) # add our splitter where the docf used to be self.stwidget.split.addWidget(self.split) self.msgte = msgte @property def repo(self) -> localrepo.localrepository: return self._repoagent.rawRepo() @property def rev(self) -> Text: """Return current revision""" return self._rev def selectRev(self, rev: Text) -> None: """ Select the revision that must be set when the dialog is shown again """ self._rev = rev @pyqtSlot(int) @pyqtSlot(object) def setRev(self, rev): # TODO: is int even possible here? """Change revision to show""" self.selectRev(rev) if self.hasmqbutton: preferredActionName = self._getPreferredActionName() curractionName = self.mqgroup.checkedAction()._name if curractionName != preferredActionName: self.commitSetAction(refresh=True, actionName=preferredActionName) def _getPreferredActionName(self) -> Text: """Select the preferred action, depending on the selected revision""" if not self.hasmqbutton: return 'commit' else: pctx = self.repo[b'.'] ispatch = b'qtip' in pctx.tags() if not ispatch: # Set the button to Commit return 'commit' elif self.rev is None: # Set the button to QNew return 'qnew' else: # Set the button to QRefresh return 'qref' def commitSetupButton(self) -> QToolButton: ispatch: Callable[[localrepo.localrepository], bool] = lambda r: b'qtip' in r[b'.'].tags() notpatch: Callable[[localrepo.localrepository], bool] = lambda r: b'qtip' not in r[b'.'].tags() def canamend(r: localrepo.localrepository) -> bool: if ispatch(r): return False ctx = r[b'.'] return (ctx.phase() != phases.public) \ and len(r[None].parents()) < 2 \ and (obsolete.isenabled(self.repo, obsolete.allowunstableopt) or not ctx.children()) acts = [ ('commit', _('Commit changes'), _('Commit'), notpatch), ('amend', _('Amend current revision'), _('Amend'), canamend), ] if self.hasmqbutton: acts += [ ('qnew', _('Create a new patch'), _('QNew'), None), ('qref', _('Refresh current patch'), _('QRefresh'), ispatch), ] acts = tuple(acts) class CommitToolButton(QToolButton): def styleOption(self): opt = QStyleOptionToolButton() opt.initFrom(self) return opt def menuButtonWidth(self): style = self.style() opt = self.styleOption() opt.features = QStyleOptionToolButton.ToolButtonFeature.MenuButtonPopup rect = style.subControlRect(QStyle.ComplexControl.CC_ToolButton, opt, QStyle.SubControl.SC_ToolButtonMenu, self) return rect.width() def setBold(self): f = self.font() f.setWeight(QFont.Weight.Bold) self.setFont(f) def sizeHint(self): # Set the desired width to keep the button from resizing return QSize(self._width, QToolButton.sizeHint(self).height()) self.committb = committb = CommitToolButton(self) committb.setBold() committb.setPopupMode(QToolButton.ToolButtonPopupMode.MenuButtonPopup) fmk = lambda s: committb.fontMetrics().horizontalAdvance(hglib.tounicode(s[2])) committb._width = (max(pycompat.maplist(fmk, acts)) + 4*committb.menuButtonWidth()) class CommitButtonMenu(QMenu): def __init__(self, parent, repo): self.repo = repo QMenu.__init__(self, parent) def getActionByName(self, act: Text) -> QAction: return [a for a in self.actions() if a._name == act][0] def showEvent(self, event): for a in self.actions(): if a._enablefunc: a.setEnabled(a._enablefunc(self.repo)) return QMenu.showEvent(self, event) self.mqgroup = QActionGroup(self) commitbmenu = CommitButtonMenu(committb, self.repo) menurefresh = lambda: self.commitSetAction(refresh=True) for a in acts: action = QAction(a[1], self.mqgroup) action._name = a[0] action._text = a[2] action._enablefunc = a[3] action.triggered.connect(menurefresh) action.setCheckable(True) commitbmenu.addAction(action) committb.setMenu(commitbmenu) committb.clicked.connect(self.mqPerformAction) self.commitButtonEnable.connect(committb.setEnabled) self.commitSetAction(actionName=self._getPreferredActionName()) sc = QShortcut(QKeySequence('Ctrl+Return'), self, self.mqPerformAction) sc.setContext(Qt.ShortcutContext.WidgetWithChildrenShortcut) sc = QShortcut(QKeySequence('Ctrl+Enter'), self, self.mqPerformAction) sc.setContext(Qt.ShortcutContext.WidgetWithChildrenShortcut) return committb @pyqtSlot(bool) def commitSetAction(self, refresh: bool = False, actionName: Optional[Text] = None) -> None: # TODO: should this slot also be declared with str arg? allowcs = False if actionName: selectedAction = \ [act for act in self.mqgroup.actions() \ if act._name == actionName][0] selectedAction.setChecked(True) curraction = self.mqgroup.checkedAction() oldpctx = self.stwidget.pctx pctx = self.repo[b'.'] if curraction._name == 'qnew': self.pnlabel.setVisible(True) self.pnedit.setVisible(True) self.pnedit.setFocus() pn = time.strftime('%Y-%m-%d_%H-%M-%S') pn += '_r%d+.diff' % self.repo[b'.'].rev() self.pnedit.setText(pn) self.pnedit.selectAll() self.stwidget.setPatchContext(None) refreshwctx = refresh and oldpctx is not None else: if self.hasmqbutton: self.pnlabel.setVisible(False) self.pnedit.setVisible(False) ispatch = b'qtip' in pctx.tags() def switchAction(action, name): action.setChecked(False) action = self.committb.menu().getActionByName(name) action.setChecked(True) return action if curraction._name == 'qref' and not ispatch: curraction = switchAction(curraction, 'commit') elif curraction._name == 'commit' and ispatch: curraction = switchAction(curraction, 'qref') if curraction._name in ('qref', 'amend'): refreshwctx = refresh self.stwidget.setPatchContext(pctx) elif curraction._name == 'commit': refreshwctx = refresh and oldpctx is not None self.stwidget.setPatchContext(None) allowcs = len(self.repo[None].parents()) == 1 if curraction._name in ('qref', 'amend'): if self.lastAction not in ('qref', 'amend'): self.lastCommitMsgs['commit'] = (self.msgte.text(), self.msgte.isModified()) if self.lastCommitMsgs['amend'][0]: self.setMessage(*self.lastCommitMsgs['amend']) elif oldpctx is None or oldpctx.node() != pctx.node(): # pctx must be refreshed if hash changes self.setMessage(hglib.tounicode(pctx.description())) else: if self.lastAction in ('qref', 'amend'): self.lastCommitMsgs['amend'] = (self.msgte.text(), self.msgte.isModified()) self.setMessage(*self.lastCommitMsgs['commit']) elif len(self.repo[None].parents()) > 1: self.setMessage(mergecommitmessage(self.repo)) if curraction._name == 'amend': self.stwidget.defcheck = 'amend' else: self.stwidget.defcheck = 'commit' self.stwidget.fileview.enableChangeSelection(allowcs) if not allowcs: self.stwidget.partials = {} if refreshwctx: self.stwidget.refreshWctx() custom = self.wdirinfo.custom.copy() custom['isAmend'] = curraction._name == 'amend' self.wdirinfo.updateItems(custom=custom) self.committb.setText(curraction._text) self.lastAction = curraction._name def getBranchCommandLine(self) -> Tuple[Optional[CmdLines], bool]: ''' Create the command line to change or create the selected branch unless it is the selected branch Verify whether a branch exists on a repo. If it doesn't ask the user to confirm that it wants to create the branch. If it does and it is not the current branch as the user whether it wants to change to that branch. Depending on the user input, create the command line which will perform the selected action ''' # This function is used both by commit() and mqPerformAction() repo = self.repo commandlines = [] newbranch = False branch = hglib.fromunicode(self.branchop) if branch in repo.branchmap(): # response: 0=Yes, 1=No, 2=Cancel if branch in [p.branch() for p in repo[None].parents()]: resp = 0 else: # TODO: should look up only in branch namespace rev = hglib.revsymbol(repo, branch).rev() resp = qtlib.CustomPrompt(_('Confirm Branch Change'), _('Named branch "%s" already exists, ' 'last used in revision %d\n' ) % (self.branchop, rev), self, (_('Restart &Branch'), _('&Commit to current branch'), _('Cancel')), 2, 2).run() else: resp = qtlib.CustomPrompt(_('Confirm New Branch'), _('Create new named branch "%s" with this commit?\n' ) % self.branchop, self, (_('Create &Branch'), _('&Commit to current branch'), _('Cancel')), 2, 2).run() if resp == 0: newbranch = True assert branch is not None commandlines.append(['branch', '--force', branch]) elif resp == 2: return None, False return commandlines, newbranch @pyqtSlot() def mqPerformAction(self) -> Optional[bool]: # TODO: drop bool return? curraction = self.mqgroup.checkedAction() if curraction._name == 'commit': return self.commit() elif curraction._name == 'amend': return self.commit(amend=True) # Check if we need to change branch first wholecmdlines = [] # [[cmd1, ...], [cmd2, ...], ...] if self.branchop: cmdlines, newbranch = self.getBranchCommandLine() if cmdlines is None: return wholecmdlines.extend(cmdlines) olist = ('user', 'date') cmdlines = _mqNewRefreshCommand(self.repo, curraction._name == 'qnew', self.stwidget, self.pnedit, self.msgte.text(), self.opts, olist) if not cmdlines: return wholecmdlines.extend(cmdlines) self._runCommand(curraction._name, wholecmdlines) @pyqtSlot(str, str) def fileDisplayed(self, wfile: Text, contents: Text) -> None: 'Status widget is displaying a new file' if not (wfile and contents): return if self.msgte.autoCompletionThreshold() <= 0: # do not search for tokens if auto completion is disabled # pygments has several infinite loop problems we'd like to avoid return if self.msgte.lexer() is None: # qsci will crash if None is passed to QsciAPIs constructor return self._apis = QsciAPIs(self.msgte.lexer()) tokens = set() for e in self.stwidget.getChecked(): e = hglib.tounicode(e) tokens.add(e) tokens.add(os.path.basename(e)) tokens.add(wfile) tokens.add(os.path.basename(wfile)) try: from pygments.lexers import ( # pytype: disable=import-error guess_lexer_for_filename ) from pygments.token import Token # pytype: disable=import-error from pygments.util import ( # pytype: disable=import-error ClassNotFound ) try: lexer = guess_lexer_for_filename(wfile, contents) assert lexer is not None # help pytype # pytype: disable=attribute-error for tokentype, value in lexer.get_tokens(contents): # pytype: enable=attribute-error if tokentype in Token.Name and len(value) > 4: tokens.add(value) except (ClassNotFound, TypeError): pass except ImportError: pass for n in sorted(list(tokens)): self._apis.add(n) self._apis.apiPreparationFinished.connect(self.apiPrepFinished) self._apis.prepare() def apiPrepFinished(self) -> None: 'QsciAPIs has finished parsing displayed file' self.msgte.lexer().setAPIs(self._apis) def bugTrackerPostCommit(self) -> None: if not _hasbugtraq or self.opts['bugtraqtrigger'] != 'commit': return # commit already happened, get last message in history message = self.lastmessage error = self.bugtraq.on_commit_finished(message) if error: qtlib.ErrorMsgBox(_('Issue Tracker'), error, parent=self) # recreate bug tracker to get new COM object for next commit self.bugtraq = self.createBugTracker() def createBugTracker(self): opt = self.opts['bugtraqplugin'] assert isinstance(opt, str) # help pytype bugtraqid = opt.split(' ', 1)[0] result = bugtraq.BugTraq(bugtraqid) return result def getBugTrackerCommitMessage(self) -> None: parameters = self.opts['bugtraqparameters'] message = self.getMessage(True) newMessage = self.bugtraq.get_commit_message(parameters, message) self.setMessage(newMessage) def details(self) -> None: mode = 'commit' if len(self.repo[None].parents()) > 1: mode = 'merge' dlg = DetailsDialog(self._repoagent, self.opts, self.userhist, self, mode=mode) dlg.finished.connect(dlg.deleteLater) dlg.setWindowFlags(Qt.WindowType.Sheet) dlg.setWindowModality(Qt.WindowModality.WindowModal) if dlg.exec() == QDialog.DialogCode.Accepted: self.opts.update(dlg.outopts) self.refresh() @pyqtSlot(int) def repositoryChanged(self, flags: int) -> None: if flags & thgrepo.WorkingParentChanged: self._refreshWorkingState() elif flags & thgrepo.WorkingBranchChanged: self.refresh() def _refreshWorkingState(self) -> None: curraction = self.mqgroup.checkedAction() if curraction._name == 'commit' and not self.msgte.isModified(): # default merge or close-branch message is outdated if new commit # was made by other widget or process self.msgte.clear() self.lastCommitMsgs['amend'] = ('', False) # avoid loading stale cache # refresh() may load/save the stale 'amend' message in commitSetAction() self.refresh() # Updating after refreshWctx() leaves stale files in the commit list # after amend + evolve + update. if curraction._name == 'amend': self.commitSetAction() self.stwidget.refreshWctx() # Trigger reload of working context # clear the last 'amend' message # do not clear the last 'commit' message because there are many cases # in which we may write a commit message first, modify the repository # (e.g. amend or update and merge uncommitted changes) and then do the # actual commit self.lastCommitMsgs['amend'] = ('', False) # clear saved stale cache @pyqtSlot() def refreshWctx(self) -> None: 'User has requested a working context refresh' self.stwidget.refreshWctx() # Trigger reload of working context @pyqtSlot() def reload(self) -> None: 'User has requested a reload' self.repo.thginvalidate() self.refresh() self.stwidget.refreshWctx() # Trigger reload of working context @pyqtSlot() def refresh(self) -> None: ispatch = self.repo[b'.'].thgmqappliedpatch() if not self.hasmqbutton: self.commitButtonEnable.emit(not ispatch) self.msgte.refresh(self.repo) # Update branch operation button branchu = hglib.tounicode(self.repo[None].branch()) if self.branchop is None: title = _('Branch: ') + branchu elif self.branchop == False: title = _('Close Branch: ') + branchu else: title = _('New Branch: ') + self.branchop self.branchbutton.setText(title) if self.topicbutton: topic = getattr(self.repo, 'currenttopic') if topic: topic = hglib.tounicode(topic) else: topic = u"None" self.topicbutton.setText(_('Topic: ') + topic) # Update options label, showing only whitelisted options. opts = commitopts2str(self.opts) self.optionslabelfmt = _('Selected Options: %s') self.optionslabel.setText(self.optionslabelfmt % qtlib.htmlescape(hglib.tounicode(opts), False)) self.optionslabel.setVisible(bool(opts)) # Update wdir csinfo widget self.wdirinfo.set_revision(None) self.wdirinfo.updateItems() # This is ugly, but want pnlabel to have the same alignment/style/etc # as wdirinfo, so extract the needed parts of wdirinfo's markup. Would # be nicer if csinfo exposed this information, or if csinfo could hold # widgets like pnlabel. if self.hasmqbutton: parent = _('Parent:') patchname = _('Patch name:') text = self.wdirinfo.revlabel.text() cellend = '' firstidx = text.find(cellend) + len(cellend) secondidx = text[firstidx:].rfind('') if firstidx >= 0 and secondidx >= 0: start = text[0:firstidx].replace(parent, patchname) self.pnlabel.setText(start + text[firstidx+secondidx:]) else: self.pnlabel.setText(patchname) self.commitSetAction() def branchOp(self) -> None: d = branchop.BranchOpDialog(self._repoagent, self.branchop, self) d.setWindowFlags(Qt.WindowType.Sheet) d.setWindowModality(Qt.WindowModality.WindowModal) if d.exec() == QDialog.DialogCode.Accepted: self.branchop = d.branchop if self.branchop is False: if not self.getMessage(True).strip(): engmsg = self._repoagent.configBool( 'tortoisehg', 'engmsg') msgset = i18n.keepgettext()._('Close %s branch') text = engmsg and msgset['id'] or msgset['str'] self.setMessage(text % hglib.tounicode(self.repo[None].branch())) self.msgte.setFocus() self.refresh() def topicOp(self) -> None: d = topic.TopicDialog(self._repoagent, None, self) d.setWindowFlags(Qt.WindowType.Sheet) d.setWindowModality(Qt.WindowModality.WindowModal) d.exec() self.msgte.setFocus() self.refresh() def canUndo(self) -> Optional[Text]: 'Returns undo description or None if not valid' desc, oldlen = hglib.readundodesc(self.repo) if desc == 'commit': return _('Rollback commit to revision %d') % (oldlen - 1) return None def rollback(self) -> None: msg = self.canUndo() if not msg: return d = QMessageBox.question(self, _('Confirm Undo'), msg, QMessageBox.StandardButton.Ok | QMessageBox.StandardButton.Cancel) if d != QMessageBox.StandardButton.Ok: return self._runCommand('rollback', [['rollback']]) def updateRecentMessages(self) -> None: # Define a menu that lists recent messages m = self.recentMessagesButton.menu() m.clear() for s in self.msghistory: title = s.split('\n', 1)[0][:70] a = m.addAction(title) a.setData(s) def getMessage(self, allowreplace: bool) -> bytes: text = self.msgte.text() try: return hglib.fromunicode(text, 'strict') except UnicodeEncodeError: if allowreplace: return hglib.fromunicode(text, 'replace') else: raise @pyqtSlot(QAction) def msgSelected(self, action: QAction) -> None: if self.msgte.text() and self.msgte.isModified(): d = QMessageBox.question(self, _('Confirm Discard Message'), _('Discard current commit message?'), QMessageBox.StandardButton.Ok | QMessageBox.StandardButton.Cancel) if d != QMessageBox.StandardButton.Ok: return message = action.data() self.setMessage(message) self.msgte.setFocus() def setMessage(self, msg: Text, modified: bool = False) -> None: self.msgte.setText(msg) self.msgte.moveCursorToEnd() self.msgte.setModified(modified) def canExit(self) -> bool: if not self.stwidget.canExit(): return False return self._cmdsession.isFinished() def loadSettings(self, s: QSettings, prefix: Text) -> None: 'Load history, etc, from QSettings instance' repoid = hglib.shortrepoid(self.repo) lpref = prefix + '/commit/' # local settings (splitter, etc) gpref = 'commit/' # global settings (history, etc) # message history is stored in unicode self.split.restoreState(qtlib.readByteArray(s, lpref + 'split')) self.msgte.loadSettings(s, lpref+'msgte') self.stwidget.loadSettings(s, lpref+'status') self.msghistory = qtlib.readStringList(s, gpref + 'history-' + repoid) self.msghistory = [m for m in self.msghistory if m] self.updateRecentMessages() self.userhist = qtlib.readStringList(s, gpref + 'userhist') self.userhist = [u for u in self.userhist if u] try: curmsg = self.repo.vfs(b'cur-message.txt').read() self.setMessage(hglib.tounicode(curmsg)) except EnvironmentError: pass try: curmsg = self.repo.vfs(b'last-message.txt').read() if curmsg: self.addMessageToHistory(hglib.tounicode(curmsg)) except EnvironmentError: pass def saveSettings(self, s: QSettings, prefix: Text) -> None: 'Save history, etc, in QSettings instance' try: repoid = hglib.shortrepoid(self.repo) lpref = prefix + '/commit/' gpref = 'commit/' s.setValue(lpref+'split', self.split.saveState()) self.msgte.saveSettings(s, lpref+'msgte') self.stwidget.saveSettings(s, lpref+'status') s.setValue(gpref+'history-'+repoid, self.msghistory) s.setValue(gpref+'userhist', self.userhist) msg = self.getMessage(True) self.repo.vfs(b'cur-message.txt', b'w').write(msg) except (EnvironmentError, IOError): pass def addMessageToHistory(self, umsg: Text) -> None: if umsg in self.msghistory: self.msghistory.remove(umsg) self.msghistory.insert(0, umsg) self.msghistory = self.msghistory[:10] self.updateRecentMessages() def addUsernameToHistory(self, user: Text) -> None: if user in self.userhist: self.userhist.remove(user) self.userhist.insert(0, user) self.userhist = self.userhist[:10] def commit(self, amend: bool = False) -> Optional[bool]: # TODO: drop the bool return? repo = self.repo try: msg = self.getMessage(False) except UnicodeEncodeError: res = qtlib.CustomPrompt( _('Message Translation Failure'), _('Unable to translate message to local encoding.\n' 'Consider setting HGENCODING environment variable.\n\n' 'Replace untranslatable characters with "?"?\n'), self, (_('&Replace'), _('Cancel')), 0, 1, []).run() if res == 0: msg = self.getMessage(True) msg = str(msg) # drop round-trip utf8 data self.msgte.setText(hglib.tounicode(msg)) self.msgte.setFocus() return if not msg: qtlib.WarningMsgBox(_('Nothing Committed'), _('Please enter commit message'), parent=self) self.msgte.setFocus() return linkmandatory = self._repoagent.configBool('tortoisehg', 'issue.linkmandatory') if linkmandatory: issueregex = None s = self.repo.ui.config(b'tortoisehg', b'issue.regex') if s: try: issueregex = re.compile(s) except re.error: pass if issueregex: m = issueregex.search(msg) if not m: qtlib.WarningMsgBox(_('Nothing Committed'), _('No issue link was found in the ' 'commit message. The commit message ' 'should contain an issue link. ' "Configure this in the 'Issue " "Tracking' section of the settings."), parent=self) self.msgte.setFocus() return False commandlines = [] brcmd = [] newbranch = False if self.branchop is None: newbranch = repo[None].branch() != repo[b'.'].branch() elif self.branchop == False: brcmd = ['--close-branch'] else: commandlines, newbranch = self.getBranchCommandLine() if commandlines is None: return partials = [] if len(repo[None].parents()) > 1: merge = True self.files = [] else: merge = False files = self.stwidget.getChecked('MAR?!IS') # make list of files with partial change selections for fname, c in self.stwidget.partials.items(): if c.excludecount > 0 and c.excludecount < len(c.hunks): partials.append(fname) self.files = set(files + partials) self.files.update(self.stwidget.getCheckedAmends()) canemptycommit = bool(brcmd or newbranch or amend) if not (self.files or canemptycommit or merge): qtlib.WarningMsgBox(_('No files checked'), _('No modified files checkmarked for commit'), parent=self) self.stwidget.tv.setFocus() return # username will be prompted as necessary by hg if ui.askusername user = self.opts.get('user') if not amend and not self._repoagent.configBool('ui', 'askusername'): # TODO: no need to specify --user if it was read from ui user = qtlib.getCurrentUsername(self, self.repo, self.opts) if not user: return self.addUsernameToHistory(user) checkedUnknowns = self.stwidget.getChecked('?I') if checkedUnknowns and b'largefiles' in repo.extensions(): result = lfprompt.promptForLfiles(self, repo.ui, repo, checkedUnknowns) if not result: return checkedUnknowns, lfiles = result if lfiles: cmd = ['add', '--large', '--'] cmd.extend(pycompat.maplist(hglib.escapepath, pycompat.maplist(hglib.tounicode, lfiles))) commandlines.append(cmd) if checkedUnknowns: confirm = self._repoagent.configBool('tortoisehg', 'confirmaddfiles') if confirm: res = qtlib.CustomPrompt( _('Confirm Add'), _('Add selected untracked files?'), self, (_('&Add'), _('Cancel')), 0, 1, checkedUnknowns).run() else: res = 0 if res == 0: cmd = ['add', '--'] cmd.extend(pycompat.maplist(hglib.escapepath, pycompat.maplist(hglib.tounicode, checkedUnknowns))) commandlines.append(cmd) else: return checkedMissing = self.stwidget.getChecked('!') if checkedMissing: confirm = self._repoagent.configBool('tortoisehg', 'confirmdeletefiles') if confirm: res = qtlib.CustomPrompt( _('Confirm Remove'), _('Remove selected deleted files?'), self, (_('&Remove'), _('Cancel')), 0, 1, checkedMissing).run() else: res = 0 if res == 0: cmd = ['remove', '--'] cmd.extend(pycompat.maplist(hglib.escapepath, pycompat.maplist(hglib.tounicode, checkedMissing))) commandlines.append(cmd) else: return cmdline = ['commit', '--verbose', '--message=' + hglib.tounicode(msg)] if user: cmdline.extend(['--user', user]) date = self.opts.get('date') if date: cmdline += ['--date', date] cmdline += brcmd if partials: # write patch for partial change selections to temp file fd, tmpname = tempfile.mkstemp(prefix='thg-patch-') fp = os.fdopen(fd, 'wb') for fname in partials: changes = self.stwidget.partials[fname] changes.write(fp) for chunk in changes.hunks: if not chunk.excluded: chunk.write(fp) fp.close() cmdline.append('--partials') cmdline.append(tmpname) assert not amend if self.opts.get('recurseinsubrepos'): cmdline.append('--subrepos') if amend: cmdline.append('--amend') if not self.files and canemptycommit and not merge: # make sure to commit empty changeset by excluding all files cmdline.extend(['--exclude', repo.root]) assert not self.stwidget.partials, self.stwidget.partials cmdline.append('--') cmdline.extend(pycompat.maplist(hglib.escapepath, pycompat.maplist(hglib.tounicode, self.files))) if len(repo[None].parents()) == 1: opt = self.opts.get('autoinc', '') assert isinstance(opt, str) # help pytype for fname in opt.split(','): fname = fname.strip() if fname: cmdline.append('glob:%s' % fname) commandlines.append(cmdline) if self.opts.get('pushafter'): cmd = ['push', self.opts['pushafter']] if newbranch: cmd.append('--new-branch') commandlines.append(cmd) self._runCommand(amend and 'amend' or 'commit', commandlines) def stop(self): self._cmdsession.abort() def _runCommand(self, action: Text, cmdlines: CmdLines) -> None: self.currentAction = action self.progress.emit(*cmdui.startProgress(_topicmap[action], '')) self.commitButtonEnable.emit(False) ucmdlines = [pycompat.maplist(hglib.tounicode, xs) for xs in cmdlines] self._cmdsession = sess = self._repoagent.runCommandSequence(ucmdlines, self) sess.commandFinished.connect(self.commandFinished) def commandFinished(self, ret: int) -> None: self.progress.emit(*cmdui.stopProgress(_topicmap[self.currentAction])) self.stopAction.setEnabled(False) self.commitButtonEnable.emit(True) if ret == 0: self.stwidget.partials = {} if self.currentAction == 'rollback': shlib.shell_notify([self.repo.root]) return self.branchop = None umsg = self.msgte.text() if self.currentAction not in ('qref', 'amend'): self.lastCommitMsgs['commit'] = ('', False) if self.currentAction == 'commit': # capture last message for BugTraq plugin self.lastmessage = self.getMessage(True) if umsg: self.addMessageToHistory(umsg) self.setMessage('') if self.currentAction == 'commit': shlib.shell_notify(self.files) self.commitComplete.emit() elif ret == 1 and self.currentAction in ('amend', 'commit'): qtlib.WarningMsgBox(_('Nothing Committed'), _('Nothing changed.'), parent=self) else: cmdui.errorMessageBox(self._cmdsession, self, _('Commit', 'window title')) class DetailsDialog(QDialog): 'Utility dialog for configuring uncommon settings' def __init__(self, repoagent: RepoAgent, opts: CommitOpts, userhistory: List[Text], parent: QWidget, mode: Text = 'commit') -> None: QDialog.__init__(self, parent) self.setWindowTitle(_('%s - commit options') % repoagent.displayName()) self._repoagent = repoagent layout = QVBoxLayout() self.setLayout(layout) hbox = QHBoxLayout() self.usercb = QCheckBox(_('Set username:')) usercombo = QComboBox() usercombo.setEditable(True) usercombo.setEnabled(False) usercombo.setSizePolicy(QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)) self.usercb.toggled.connect(usercombo.setEnabled) self.usercb.toggled.connect(lambda s: s and usercombo.setFocus()) l = [] v = opts.get('user') if v: # TODO: should already be Text val = hglib.tounicode(v) self.usercb.setChecked(True) l.append(val) try: val = hglib.tounicode(self.repo.ui.username()) l.append(val) except error.Abort: pass for name in userhistory: if name not in l: l.append(name) for name in l: usercombo.addItem(name) self.usercombo = usercombo usersaverepo = QPushButton(_('Save in Repo')) usersaverepo.clicked.connect(self.saveInRepo) usersaverepo.setEnabled(False) self.usercb.toggled.connect(usersaverepo.setEnabled) usersaveglobal = QPushButton(_('Save Global')) usersaveglobal.clicked.connect(self.saveGlobal) usersaveglobal.setEnabled(False) self.usercb.toggled.connect(usersaveglobal.setEnabled) hbox.addWidget(self.usercb) hbox.addWidget(self.usercombo) hbox.addWidget(usersaverepo) hbox.addWidget(usersaveglobal) layout.addLayout(hbox) hbox = QHBoxLayout() self.datecb = QCheckBox(_('Set Date:')) self.datele = QLineEdit() self.datele.setEnabled(False) self.datecb.toggled.connect(self.datele.setEnabled) curdate = QPushButton(_('Update')) curdate.setEnabled(False) self.datecb.toggled.connect(curdate.setEnabled) self.datecb.toggled.connect(lambda s: s and curdate.setFocus()) curdate.clicked.connect( lambda: self.datele.setText( hglib.tounicode(hglib.displaytime(dateutil.makedate())))) v = opts.get('date') if v: self.datele.setText(v) self.datecb.setChecked(True) else: self.datecb.setChecked(False) curdate.clicked.emit(True) hbox.addWidget(self.datecb) hbox.addWidget(self.datele) hbox.addWidget(curdate) layout.addLayout(hbox) hbox = QHBoxLayout() self.pushaftercb = QCheckBox(_('Push After Commit:')) self.pushafterle = QLineEdit() self.pushafterle.setEnabled(False) self.pushaftercb.toggled.connect(self.pushafterle.setEnabled) self.pushaftercb.toggled.connect(lambda s: s and self.pushafterle.setFocus()) pushaftersave = QPushButton(_('Save in Repo')) pushaftersave.clicked.connect(self.savePushAfter) pushaftersave.setEnabled(False) self.pushaftercb.toggled.connect(pushaftersave.setEnabled) if opts.get('pushafter'): val = hglib.tounicode(opts['pushafter']) self.pushafterle.setText(val) self.pushaftercb.setChecked(True) hbox.addWidget(self.pushaftercb) hbox.addWidget(self.pushafterle) hbox.addWidget(pushaftersave) layout.addLayout(hbox) hbox = QHBoxLayout() self.autoinccb = QCheckBox(_('Auto Includes:')) self.autoincle = QLineEdit() self.autoincle.setEnabled(False) self.autoinccb.toggled.connect(self.autoincle.setEnabled) self.autoinccb.toggled.connect(lambda s: s and self.autoincle.setFocus()) autoincsave = QPushButton(_('Save in Repo')) autoincsave.clicked.connect(self.saveAutoInc) autoincsave.setEnabled(False) self.autoinccb.toggled.connect(autoincsave.setEnabled) if opts.get('autoinc'): val = hglib.tounicode(opts['autoinc']) self.autoincle.setText(val) self.autoinccb.setChecked(True) hbox.addWidget(self.autoinccb) hbox.addWidget(self.autoincle) hbox.addWidget(autoincsave) if mode != 'merge': #self.autoinccb.setVisible(False) layout.addLayout(hbox) hbox = QHBoxLayout() recursesave = QPushButton(_('Save in Repo')) recursesave.clicked.connect(self.saveRecurseInSubrepos) self.recursecb = QCheckBox(_('Recurse into subrepositories ' '(--subrepos)')) self.recursecb.setSizePolicy(QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)) #self.recursecb.toggled.connect(recursesave.setEnabled) if opts.get('recurseinsubrepos'): self.recursecb.setChecked(True) hbox.addWidget(self.recursecb) hbox.addWidget(recursesave) layout.addLayout(hbox) bb = QDialogButtonBox(QDialogButtonBox.StandardButton.Ok|QDialogButtonBox.StandardButton.Cancel) bb.accepted.connect(self.accept) bb.rejected.connect(self.reject) self.bb = bb layout.addWidget(bb) @property def repo(self) -> localrepo.localrepository: return self._repoagent.rawRepo() def saveInRepo(self): fn = os.path.join(self.repo.root, b'.hg', b'hgrc') self.saveToPath([fn]) def saveGlobal(self): self.saveToPath(hglib.userrcpath()) def saveToPath(self, path: List[bytes]) -> None: fn, cfg = hgrcutil.loadIniFile(path, self) if not hasattr(cfg, 'write'): qtlib.WarningMsgBox(_('Unable to save username'), _('Iniparse must be installed.'), parent=self) return if fn is None: return try: user = hglib.fromunicode(self.usercombo.currentText()) if user: cfg.set(b'ui', b'username', user) else: try: del cfg[b'ui'][b'username'] except KeyError: pass wconfig.writefile(cfg, fn) except IOError as e: qtlib.WarningMsgBox(_('Unable to write configuration file'), hglib.exception_str(e), parent=self) def savePushAfter(self): path = os.path.join(self.repo.root, b'.hg', b'hgrc') fn, cfg = hgrcutil.loadIniFile([path], self) if not hasattr(cfg, 'write'): qtlib.WarningMsgBox(_('Unable to save after commit push'), _('Iniparse must be installed.'), parent=self) return if fn is None: return try: remote = hglib.fromunicode(self.pushafterle.text()) if remote: cfg.set(b'tortoisehg', b'cipushafter', remote) else: try: del cfg[b'tortoisehg'][b'cipushafter'] except KeyError: pass wconfig.writefile(cfg, fn) except IOError as e: qtlib.WarningMsgBox(_('Unable to write configuration file'), hglib.exception_str(e), parent=self) def saveAutoInc(self): path = os.path.join(self.repo.root, b'.hg', b'hgrc') fn, cfg = hgrcutil.loadIniFile([path], self) if not hasattr(cfg, 'write'): qtlib.WarningMsgBox(_('Unable to save auto include list'), _('Iniparse must be installed.'), parent=self) return if fn is None: return try: list = hglib.fromunicode(self.autoincle.text()) if list: cfg.set(b'tortoisehg', b'autoinc', list) else: try: del cfg[b'tortoisehg'][b'autoinc'] except KeyError: pass wconfig.writefile(cfg, fn) except IOError as e: qtlib.WarningMsgBox(_('Unable to write configuration file'), hglib.exception_str(e), parent=self) def saveRecurseInSubrepos(self): path = os.path.join(self.repo.root, b'.hg', b'hgrc') fn, cfg = hgrcutil.loadIniFile([path], self) if not hasattr(cfg, 'write'): qtlib.WarningMsgBox(_('Unable to save recurse in subrepos.'), _('Iniparse must be installed.'), parent=self) return if fn is None: return try: state = self.recursecb.isChecked() if state: cfg.set(b'tortoisehg', b'recurseinsubrepos', b'True') else: try: del cfg[b'tortoisehg'][b'recurseinsubrepos'] except KeyError: pass wconfig.writefile(cfg, fn) except IOError as e: qtlib.WarningMsgBox(_('Unable to write configuration file'), hglib.exception_str(e), parent=self) def accept(self): outopts: Dict[Text, Text] = {} if self.datecb.isChecked(): udate = self.datele.text() date = hglib.fromunicode(udate) try: dateutil.parsedate(date) except error.ParseError as e: err = hglib.exception_str(e, show_hint=True) qtlib.WarningMsgBox(_('Invalid date format'), err, parent=self) return outopts['date'] = udate else: outopts['date'] = '' if self.usercb.isChecked(): user = self.usercombo.currentText() else: user = '' outopts['user'] = user if not user: try: self.repo.ui.username() except error.Abort as e: err = hglib.exception_str(e, show_hint=True) qtlib.WarningMsgBox(_('No username configured'), err, parent=self) return if self.pushaftercb.isChecked(): remote = self.pushafterle.text() outopts['pushafter'] = remote else: outopts['pushafter'] = '' if self.autoinccb.isChecked(): outopts['autoinc'] = self.autoincle.text() else: outopts['autoinc'] = '' if self.recursecb.isChecked(): outopts['recurseinsubrepos'] = 'true' else: outopts['recurseinsubrepos'] = '' self.outopts = outopts QDialog.accept(self) class CommitDialog(QDialog): 'Standalone commit tool, a wrapper for CommitWidget' def __init__(self, repoagent: RepoAgent, pats: List[bytes], opts: Dict[Text, bytes], parent: Optional[QObject] = None) -> None: QDialog.__init__(self, parent) self.setWindowFlags(Qt.WindowType.Window) self.setWindowIcon(qtlib.geticon('hg-commit')) self._repoagent = repoagent self.pats = pats self.opts = opts layout = QVBoxLayout() layout.setContentsMargins(0, 0, 0, 0) self.setLayout(layout) toplayout = QVBoxLayout() toplayout.setContentsMargins(5, 5, 5, 0) layout.addLayout(toplayout) commit = CommitWidget(repoagent, pats, opts, self, rev='.') toplayout.addWidget(commit, 1) self.statusbar = cmdui.ThgStatusBar(self) commit.showMessage.connect(self.statusbar.showMessage) commit.progress.connect(self.statusbar.progress) commit.linkActivated.connect(self.linkActivated) bb = QDialogButtonBox(QDialogButtonBox.StandardButton.Close|QDialogButtonBox.StandardButton.Discard) bb.rejected.connect(self.reject) bb.button(QDialogButtonBox.StandardButton.Discard).setText('Undo') bb.button(QDialogButtonBox.StandardButton.Discard).clicked.connect(commit.rollback) bb.button(QDialogButtonBox.StandardButton.Close).setDefault(False) bb.button(QDialogButtonBox.StandardButton.Discard).setDefault(False) self.commitButton = commit.commitSetupButton() bb.addButton(self.commitButton, QDialogButtonBox.ButtonRole.AcceptRole) self.bb = bb toplayout.addWidget(self.bb) layout.addWidget(self.statusbar) self._subdialogs = qtlib.DialogKeeper(CommitDialog._createSubDialog, parent=self) s = QSettings() self.restoreGeometry(qtlib.readByteArray(s, 'commit/geom')) commit.loadSettings(s, 'committool') repoagent.repositoryChanged.connect(self.updateUndo) commit.commitComplete.connect(self.postcommit) self.setWindowTitle(_('%s - commit') % repoagent.displayName()) self.commit = commit self.commit.reload() self.updateUndo() self.commit.msgte.setFocus() qtlib.newshortcutsforstdkey(QKeySequence.StandardKey.Refresh, self, self.refresh) def linkActivated(self, link: Text) -> None: if link.startswith('repo:'): self._subdialogs.open(link[len('repo:'):]) def _createSubDialog(self, uroot: Text) -> CommitDialog: repoagent = self._repoagent.subRepoAgent(uroot) return CommitDialog(repoagent, [], {}, parent=self) @pyqtSlot() def updateUndo(self) -> None: undomsg = self.commit.canUndo() if undomsg: self.bb.button(QDialogButtonBox.StandardButton.Discard).setEnabled(True) self.bb.button(QDialogButtonBox.StandardButton.Discard).setToolTip(undomsg) else: self.bb.button(QDialogButtonBox.StandardButton.Discard).setEnabled(False) self.bb.button(QDialogButtonBox.StandardButton.Discard).setToolTip('') def refresh(self) -> None: self.updateUndo() self.commit.reload() def postcommit(self) -> None: repo = self.commit.stwidget.repo if repo.ui.configbool(b'tortoisehg', b'closeci'): if self.commit.canExit(): self.reject() else: self.commit.stwidget.refthread.wait() QTimer.singleShot(0, self.reject) def promptExit(self) -> bool: exit = self.commit.canExit() if not exit: exit = qtlib.QuestionMsgBox(_('TortoiseHg Commit'), _('Are you sure that you want to cancel the commit operation?'), parent=self) if exit: s = QSettings() s.setValue('commit/geom', self.saveGeometry()) self.commit.saveSettings(s, 'committool') return exit def accept(self) -> None: self.commit.commit() def reject(self) -> None: if self.promptExit(): QDialog.reject(self) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/compress.py0000644000000000000000000001200614672254332017663 0ustar00rootroot# compress.py - History compression dialog for TortoiseHg # # Copyright 2010 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations from .qtcore import ( QSettings, QTimer, Qt, pyqtSlot, ) from .qtgui import ( QDialog, QDialogButtonBox, QGroupBox, QLayout, QSizePolicy, QVBoxLayout, ) from ..util.i18n import _ from . import ( cmdui, commit, csinfo, qtlib, wctxcleaner, ) class CompressDialog(QDialog): def __init__(self, repoagent, revs, parent): super(CompressDialog, self).__init__(parent) f = self.windowFlags() self.setWindowFlags(f & ~Qt.WindowType.WindowContextHelpButtonHint) self._repoagent = repoagent self.revs = revs box = QVBoxLayout() box.setSpacing(8) box.setContentsMargins(*(6,)*4) box.setSizeConstraint(QLayout.SizeConstraint.SetMinAndMaxSize) self.setLayout(box) style = csinfo.panelstyle(selectable=True) srcb = QGroupBox(_('Compress changesets up to and including')) srcb.setSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Fixed) srcb.setLayout(QVBoxLayout()) srcb.layout().setContentsMargins(*(2,)*4) source = csinfo.create(self.repo, revs[0], style, withupdate=True) srcb.layout().addWidget(source) self.layout().addWidget(srcb) destb = QGroupBox(_('Onto destination')) destb.setSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Fixed) destb.setLayout(QVBoxLayout()) destb.layout().setContentsMargins(*(2,)*4) dest = csinfo.create(self.repo, revs[1], style, withupdate=True) destb.layout().addWidget(dest) self.destcsinfo = dest self.layout().addWidget(destb) self._cmdcontrol = cmd = cmdui.CmdSessionControlWidget(self) cmd.finished.connect(self.done) cmd.setLogVisible(True) self.compressbtn = cmd.addButton(_('Compress'), QDialogButtonBox.ButtonRole.AcceptRole) self.compressbtn.setEnabled(False) self.compressbtn.clicked.connect(self.compress) self.layout().addWidget(cmd) cmd.showStatusMessage(_('Checking...')) self._wctxcleaner = wctxcleaner.WctxCleaner(repoagent, self) self._wctxcleaner.checkFinished.connect(self._checkCompleted) cmd.linkActivated.connect(self._wctxcleaner.runCleaner) QTimer.singleShot(0, self._wctxcleaner.check) self.resize(480, 340) self.setWindowTitle(_('Compress - %s') % repoagent.displayName()) self.restoreSettings() @property def repo(self): return self._repoagent.rawRepo() @pyqtSlot(bool) def _checkCompleted(self, clean): if not clean: self.compressbtn.setEnabled(False) txt = _('Before compress, you must ' 'commit, ' 'shelve to patch, ' 'or discard changes.') else: self.compressbtn.setEnabled(True) txt = _('You may continue the compress') self._cmdcontrol.showStatusMessage(txt) def compress(self): uc = ['update', '--clean', '--rev', str(self.revs[1])] rc = ['revert', '--all', '--rev', str(self.revs[0])] sess = self._repoagent.runCommandSequence([uc, rc], self) self._cmdcontrol.setSession(sess) sess.commandFinished.connect(self.commandFinished) self.compressbtn.setEnabled(sess.isFinished()) @pyqtSlot() def commandFinished(self): self._cmdcontrol.showStatusMessage(_('Changes have been moved, you ' 'must now commit')) self.compressbtn.setText(_('Commit', 'action button')) self.compressbtn.clicked.disconnect(self.compress) self.compressbtn.clicked.connect(self.commit) self.compressbtn.setEnabled(self._cmdcontrol.session().isFinished()) def commit(self): tip, base = self.revs revs = [c for c in self.repo.revs(b'%d::%d' % (base, tip)) if c != base] descs = [self.repo[c].description() for c in revs] self.repo.vfs(b'cur-message.txt', b'w').write(b'\n* * *\n'.join(descs)) dlg = commit.CommitDialog(self._repoagent, [], {}, self) dlg.finished.connect(dlg.deleteLater) dlg.exec() self._cmdcontrol.showStatusMessage(_('Compress is complete, old ' 'history untouched')) self.compressbtn.hide() self.storeSettings() def storeSettings(self): s = QSettings() s.setValue('compress/geometry', self.saveGeometry()) def restoreSettings(self): s = QSettings() self.restoreGeometry(qtlib.readByteArray(s, 'compress/geometry')) def reject(self): self._cmdcontrol.reject() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1736945585.0 tortoisehg-6.9/tortoisehg/hgqt/csinfo.py0000644000000000000000000004752314741727661017334 0ustar00rootroot# csinfo.py - An embeddable widget for changeset summary # # Copyright 2010 Yuki KODAMA # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import binascii import re import sys from .qtcore import ( QSize, Qt, pyqtSignal, ) from .qtgui import ( QHBoxLayout, QLabel, QWidget, ) from mercurial import ( error, pycompat, ) from ..util import hglib from ..util.i18n import _ from . import qtlib PANEL_DEFAULT = ('rev', 'summary', 'user', 'dateage', 'branch', 'close', 'topic', 'tags', 'graft', 'transplant', 'obsolete', 'p4', 'svn', 'converted',) def create(repo, target=None, style=None, custom=None, **kargs): return Factory(repo, custom, style, target, **kargs)() def factory(*args, **kargs): return Factory(*args, **kargs) def panelstyle(**kargs): kargs['type'] = 'panel' if 'contents' not in kargs: kargs['contents'] = PANEL_DEFAULT return kargs def labelstyle(**kargs): kargs['type'] = 'label' return kargs def custom(**kargs): return kargs class Factory(object): def __init__(self, repo, custom=None, style=None, target=None, withupdate=False): if repo is None: raise _('must be specified repository') self.repo = repo self.target = target if custom is None: custom = {} self.custom = custom if style is None: style = panelstyle() self.csstyle = style self.info = SummaryInfo() self.withupdate = withupdate def __call__(self, target=None, style=None, custom=None, repo=None): # try to create a context object if target is None: target = self.target if repo is None: repo = self.repo if style is None: style = self.csstyle else: # need to override styles newstyle = self.csstyle.copy() newstyle.update(style) style = newstyle if custom is None: custom = self.custom else: # need to override customs newcustom = self.custom.copy() newcustom.update(custom) custom = newcustom if 'type' not in style: raise _("must be specified 'type' in style") type = style['type'] assert type in ('panel', 'label'), type # create widget args = (target, style, custom, repo, self.info) if type == 'panel': widget = SummaryPanel(*args) else: widget = SummaryLabel(*args) if self.withupdate: widget.updateItems() return widget class UnknownItem(Exception): pass class SummaryInfo(object): LABELS = {'rev': _('Revision:'), 'revnum': _('Revision:'), 'gitcommit': _('Git Commit:'), 'revid': _('Revision:'), 'summary': _('Summary:'), 'user': _('User:'), 'date': _('Date:'),'age': _('Age:'), 'dateage': _('Date:'), 'branch': _('Branch:'), 'close': _('Close:'), 'topic': _('Topic:'), 'tags': _('Tags:'), 'rawbranch': _('Branch:'), 'graft': _('Graft:'), 'transplant': _('Transplant:'), 'obsolete': _('Obsolete state:'), 'p4': _('Perforce:'), 'svn': _('Subversion:'), 'converted': _('Converted From:'), 'shortuser': _('User:'), 'mqoriginalparent': _('Original Parent:') } def __init__(self): pass def get_data(self, item, widget, ctx, custom, **kargs): args = (widget, ctx, custom) def default_func(widget, item, ctx): return None def preset_func(widget, item, ctx): if item == 'rev': revnum = self.get_data('revnum', *args) revid = self.get_data('revid', *args) if revid: return revnum, revid return None elif item == 'revnum': return ctx.rev() elif item == 'revid': return str(ctx) elif item == 'gitcommit': return hglib.gitcommit_short(ctx) elif item == 'desc': return hglib.tounicode(ctx.description().replace(b'\0', b'')) elif item == 'summary': summary = hglib.longsummary( ctx.description().replace(b'\0', b'')) if len(summary) == 0: return None return summary elif item == 'user': user = hglib.user(ctx) if user: return hglib.tounicode(user) return None elif item == 'shortuser': return hglib.tounicode(hglib.username(hglib.user(ctx))) elif item == 'dateage': date = self.get_data('date', *args) age = self.get_data('age', *args) if date and age: return date, age return None elif item == 'date': date = ctx.date() if date: return hglib.tounicode(hglib.displaytime(date)) return None elif item == 'age': date = ctx.date() if date: return hglib.age(date).decode('utf-8') return None elif item == 'rawbranch': return hglib.tounicode(ctx.branch()) or None elif item == 'branch': value = self.get_data('rawbranch', *args) if value: repo = ctx.repo() try: if ctx.node() != repo.branchtip(ctx.branch()): return None except error.RepoLookupError: # ctx.branch() can be invalid for null or workingctx return None if value in repo.deadbranches: return None return value return None elif item == 'close': return hglib.tounicode(ctx.extra().get(b'close')) elif item == 'topic': topic = getattr(ctx, 'topic', lambda: None)() return topic and hglib.tounicode(topic) or None elif item == 'tags': return [hglib.tounicode(tag) for tag in ctx.thgtags()] or None elif item == 'graft': extra = ctx.extra() try: return hglib.tounicode(extra[b'source']) except KeyError: pass return None elif item == 'transplant': extra = ctx.extra() try: ts = extra[b'transplant_source'] if ts: return hglib.tounicode(binascii.hexlify(ts)) except KeyError: pass return None elif item == 'obsolete': obsoletestate = [] if ctx.obsolete(): obsoletestate.append('obsolete') if ctx.extinct(): obsoletestate.append('extinct') obsoletestate += map(hglib.tounicode, ctx.instabilities()) if obsoletestate: return obsoletestate return None elif item == 'p4': extra = ctx.extra() p4cl = extra.get(b'p4', None) return p4cl and hglib.tounicode(b'changelist %s' % p4cl) elif item == 'svn': extra = ctx.extra() cvt = extra.get(b'convert_revision', b'') if cvt.startswith(b'svn:'): result = cvt.split(b'/', 1)[-1] if cvt != result: return str(result, 'utf-8', 'replace') return str(cvt.split(b'@')[-1], 'utf-8', 'replace') else: return None elif item == 'converted': extra = ctx.extra() cvt = extra.get(b'convert_revision', b'') if cvt and not cvt.startswith(b'svn:'): return hglib.tounicode(cvt) else: return None elif item == 'ishead': return ctx.node() in ctx.repo().branchheads(ctx.branch()) elif item == 'mqoriginalparent': target = ctx.thgmqoriginalparent() if not target: return None p1 = ctx.p1() if p1 is not None and p1.hex() == target: return None if target not in ctx.repo(): return None return hglib.tounicode(target) raise UnknownItem(item) if 'data' in custom and not kargs.get('usepreset', False): try: return custom['data'](widget, item, ctx) except UnknownItem: pass try: return preset_func(widget, item, ctx) except UnknownItem: pass return default_func(widget, item, ctx) def get_label(self, item, widget, ctx, custom, **kargs): def default_func(widget, item): return '' def preset_func(widget, item): try: return self.LABELS[item] except KeyError: raise UnknownItem(item) if 'label' in custom and not kargs.get('usepreset', False): try: return custom['label'](widget, item, ctx) except UnknownItem: pass try: return preset_func(widget, item) except UnknownItem: pass return default_func(widget, item) def get_markup(self, item, widget, ctx, custom, **kargs): args = (widget, ctx, custom) mono = dict(family='monospace', size='9pt', space='pre') def default_func(widget, item, value): return '' def preset_func(widget, item, value): if item == 'rev': revnum, revid = value revid = qtlib.markup(revid, **mono) if revnum is not None and revid is not None: return '%s (%s)' % (revnum, revid) return '%s' % revid elif item in ('revid', 'gitcommit', 'graft', 'transplant', 'mqoriginalparent'): return qtlib.markup(value, **mono) elif item in ('revnum', 'p4', 'close', 'converted'): return str(value) elif item == 'svn': return value elif item in ('rawbranch', 'branch'): opts = dict(fg='black', bg='#aaffaa') return qtlib.markup(' %s ' % value, **opts) elif item == 'topic': opts = { 'fg': qtlib.gettextcoloreffect('log.topic').name(), 'bg': qtlib.getbgcoloreffect('log.topic').name(), } return qtlib.markup(' %s ' % value, **opts) elif item == 'tags': opts = dict(fg='black', bg='#ffffaa') tags = [qtlib.markup(' %s ' % tag, **opts) for tag in value] return ' '.join(tags) elif item in ('desc', 'summary', 'user', 'shortuser', 'date', 'age'): return qtlib.markup(value) elif item == 'dateage': return qtlib.markup('%s (%s)' % value) elif item == 'obsolete': opts = dict(fg='black', bg='#ff8566') obsoletestates = [qtlib.markup(' %s ' % state, **opts) for state in value] return ' '.join(obsoletestates) raise UnknownItem(item) value = self.get_data(item, *args) if value is None: return None if 'markup' in custom and not kargs.get('usepreset', False): try: return custom['markup'](widget, item, value) except UnknownItem: pass try: return preset_func(widget, item, value) except UnknownItem: pass return default_func(widget, item, value) def get_widget(self, item, widget, ctx, custom, **kargs): args = (widget, ctx, custom) def default_func(widget, item, markups): if hglib.isbasestring(markups): markups = (markups,) labels = [] for text in markups: label = QLabel() label.setText(text) labels.append(label) return labels markups = self.get_markup(item, *args) if not markups: return None if 'widget' in custom and not kargs.get('usepreset', False): try: return custom['widget'](widget, item, markups) except UnknownItem: pass return default_func(widget, item, markups) class SummaryBase(object): def __init__(self, target, custom, repo, info): self.target = target self.custom = custom self.repo = repo self.info = info self.update_ctx() def get_data(self, item, **kargs): return self.info.get_data(item, self, self.ctx, self.custom, **kargs) def get_label(self, item, **kargs): return self.info.get_label(item, self, self.ctx, self.custom, **kargs) def get_markup(self, item, **kargs): return self.info.get_markup(item, self, self.ctx, self.custom, **kargs) def get_widget(self, item, **kargs): return self.info.get_widget(item, self, self.ctx, self.custom, **kargs) def set_revision(self, rev): self.target = rev # TODO: drop this when all callers are removed, since it hides the update() # method that SummaryPanel and SummaryLabel get through multiple inheritance # from QWidget and QLabel respectively. That update() method seems related # to painting the component, or an area of it. def update(self, *args, **kwargs): # pytype: disable=signature-mismatch import warnings warnings.warn( "SummaryBase.update() should be changed to SummaryBase.updateItems()", DeprecationWarning, 2, ) sys.stderr.flush() self.updateItems(*args, **kwargs) def updateItems(self, target=None, style=None, custom=None, repo=None): self.ctx = None if target is not None: self.target = target if custom is not None: self.custom = custom if repo is None: repo = self.repo if repo is not None: self.repo = repo if self.ctx is None: self.update_ctx() def update_ctx(self): if isinstance(self.target, str): target = hglib.fromunicode(self.target) else: target = self.target self.ctx = self.repo[target] PANEL_TMPL = '%s%s' class SummaryPanel(SummaryBase, QWidget): linkActivated = pyqtSignal(str) def __init__(self, target, style, custom, repo, info): SummaryBase.__init__(self, target, custom, repo, info) QWidget.__init__(self) self.csstyle = style hbox = QHBoxLayout() hbox.setContentsMargins(0, 0, 0, 0) hbox.setSpacing(0) self.setLayout(hbox) self.revlabel = None self.expand_btn = qtlib.PMButton() def updateItems(self, target=None, style=None, custom=None, repo=None): SummaryBase.updateItems(self, target, style, custom, repo) layout = self.layout() assert isinstance(layout, QHBoxLayout) if style is not None: self.csstyle = style if self.revlabel is None: self.revlabel = QLabel() self.revlabel.linkActivated.connect(self.linkActivated) layout.addWidget(self.revlabel, 0, Qt.AlignmentFlag.AlignTop) if 'expandable' in self.csstyle and self.csstyle['expandable']: if self.expand_btn.parentWidget() is None: self.expand_btn.clicked.connect(lambda: self.updateItems()) margin = QHBoxLayout() margin.setContentsMargins(3, 3, 3, 3) margin.addWidget(self.expand_btn, 0, Qt.AlignmentFlag.AlignTop) layout.insertLayout(0, margin) self.expand_btn.setVisible(True) elif self.expand_btn.parentWidget() is not None: self.expand_btn.setHidden(True) interact = Qt.TextInteractionFlag.LinksAccessibleByMouse if 'selectable' in self.csstyle and self.csstyle['selectable']: interact |= Qt.TextInteractionFlag.TextBrowserInteraction self.revlabel.setTextInteractionFlags(interact) # build info contents = self.csstyle.get('contents', ()) if 'expandable' in self.csstyle and self.csstyle['expandable'] \ and self.expand_btn.is_collapsed(): contents = contents[0:1] if 'margin' in self.csstyle: margin = self.csstyle['margin'] assert isinstance(margin, (int, pycompat.long)), repr(margin) buf = '' % margin else: buf = '
                                                                                                            ' for item in contents: markups = self.get_markup(item) if not markups: continue label = qtlib.markup(self.get_label(item), weight='bold') if hglib.isbasestring(markups): markups = [markups,] buf += PANEL_TMPL % (label, markups.pop(0)) for markup in markups: buf += PANEL_TMPL % (' ', markup) buf += '
                                                                                                            ' self.revlabel.setText(buf) return True def set_expanded(self, state): self.expand_btn.set_expanded(state) self.updateItems() def is_expanded(self): return self.expand_btn.is_expanded() def minimumSizeHint(self): s = QWidget.minimumSizeHint(self) return QSize(0, s.height()) LABEL_PAT = re.compile(r'(?:(?<=%%)|(? # Copyright 2010 David Wilhelm # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os import sys from .qtcore import ( Qt, pyqtSlot, ) from .qtgui import ( QCheckBox, QHBoxLayout, QLabel, QLayout, QScrollArea, QSizePolicy, QVBoxLayout, QWidget, ) from ..util import hglib from ..util.i18n import _ from ..util.patchctx import patchctx from . import ( csinfo, qtlib, ) _SPACING = 6 class ChangesetList(QWidget): def __init__(self, repo=None, parent=None): super(ChangesetList, self).__init__(parent) self.currepo = repo self.curitems = None self.curfactory = None self.showitems = None self.limit = 20 contents = ('%(item_l)s:', ' %(branch)s', ' %(tags)s', ' %(summary)s') self.lstyle = csinfo.labelstyle(contents=contents, width=350, selectable=True) contents = ('item', 'summary', 'user', 'dateage', 'rawbranch', 'tags', 'graft', 'transplant', 'p4', 'svn', 'converted') self.pstyle = csinfo.panelstyle(contents=contents, width=350, selectable=True) # main layout self.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding) self.mainvbox = QVBoxLayout() self.mainvbox.setSpacing(_SPACING) self.mainvbox.setSizeConstraint(QLayout.SizeConstraint.SetMinAndMaxSize) self.setLayout(self.mainvbox) ## status box self.statusbox = QHBoxLayout() self.statuslabel = QLabel(_('No items to display')) self.compactchk = QCheckBox(_('Use compact view')) self.statusbox.addWidget(self.statuslabel) self.statusbox.addWidget(self.compactchk) self.mainvbox.addLayout(self.statusbox) ## scroll area self.scrollarea = QScrollArea() self.scrollarea.setMinimumSize(400, 200) self.scrollarea.setVerticalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOn) self.scrollarea.setWidgetResizable(True) self.mainvbox.addWidget(self.scrollarea) ### cs layout grid, contains Factory objects, one per revision self.scrollbox = QWidget() self.csvbox = QVBoxLayout() self.csvbox.setSpacing(_SPACING) self.csvbox.setSizeConstraint(QLayout.SizeConstraint.SetMaximumSize) self.scrollbox.setLayout(self.csvbox) self.scrollarea.setWidget(self.scrollbox) # signal handlers self.compactchk.toggled.connect(self._updateView) # csetinfo def datafunc(widget, item, ctx): if item in ('item', 'item_l'): if not isinstance(ctx, patchctx): return True revid = widget.get_data('revid') if not revid: return widget.target filename = os.path.basename(widget.target) return filename, revid raise csinfo.UnknownItem(item) def labelfunc(widget, item, ctx): if item in ('item', 'item_l'): if not isinstance(ctx, patchctx): return _('Revision:') return _('Patch:') raise csinfo.UnknownItem(item) def markupfunc(widget, item, value): if item in ('item', 'item_l'): if not isinstance(widget.ctx, patchctx): if item == 'item': return widget.get_markup('rev') return widget.get_markup('revnum') mono = dict(face='monospace', size='9000') if hglib.isbasestring(value): return qtlib.markup(value, **mono) filename = qtlib.markup(value[0]) revid = qtlib.markup(value[1], **mono) if item == 'item': return '%s (%s)' % (filename, revid) return filename raise csinfo.UnknownItem(item) self.custom = csinfo.custom(data=datafunc, label=labelfunc, markup=markupfunc) def clear(self): """Clear the item list""" while self.csvbox.count(): w = self.csvbox.takeAt(0).widget() w.setParent(None) self.curitems = None def insertcs(self, item): """Insert changeset info into the item list. item: String, revision number or patch file path to display. """ style = self.compactchk.isChecked() and self.lstyle or self.pstyle info = self.curfactory(item, style=style) info.updateItems(item) sizePolicy = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) info.setSizePolicy(sizePolicy) self.csvbox.addWidget(info, Qt.AlignmentFlag.AlignTop) def updatestatus(self): if not self.curitems: text = _('No items to display') else: num = dict(count=len(self.showitems), total=len(self.curitems)) text = _('Displaying %(count)d of %(total)d items') % num self.statuslabel.setText(text) # TODO: drop this when all callers are removed, since it hides update() in # the superclass, which seems related to painting the component, or an area # of it. def update(self, items, uselimit=True): # pytype: disable=signature-mismatch import warnings warnings.warn( "ChangesetList.update() should be changed to ChangesetList.updateItems()", DeprecationWarning, 2, ) sys.stderr.flush() self.updateItems(items, uselimit=uselimit) def updateItems(self, items, uselimit=True): """Update the item list. Public arguments: items: List of revision numbers and/or patch file paths. You can pass a mixed list. The order will be respected. uselimit: If True, some of items will be shown. return: True if the item list was updated successfully, False if it wasn't updated. """ # setup self.clear() self.curfactory = csinfo.factory(self.currepo, self.custom) # initialize variables self.curitems = items if not items or not self.currepo: self.updatestatus() return False if self.compactchk.isChecked(): self.csvbox.setSpacing(0) else: self.csvbox.setSpacing(_SPACING) # determine the items to show if uselimit and self.limit < len(items): showitems, lastitem = items[:self.limit - 1], items[-1] else: showitems, lastitem = items, None self.showitems = showitems + (lastitem and [lastitem] or []) # show items for item in showitems: self.insertcs(item) if lastitem: self.csvbox.addWidget(QLabel("...")) self.insertcs(lastitem) self.updatestatus() return True @pyqtSlot() def _updateView(self): self.updateItems(self.curitems) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/customtools.py0000644000000000000000000012353514672254332020435 0ustar00rootroot# customtools.py - Settings panel and configuration dialog for TortoiseHg custom tools # # This module implements 3 main classes: # # 1. A ToolsFrame which is meant to be shown on the settings dialog # 2. A ToolList widget, part of the ToolsFrame, showing a list of # configured custom tools # 3. A CustomToolConfigDialog, that can be used to add a new or # edit an existing custom tool # # The ToolsFrame and specially the ToolList must implement some methods # which are common to all settings widgets. # # Copyright 2012 Angel Ezquerra # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import re from typing import ( Dict, Iterable, List, Optional, Pattern, Tuple, TypeVar, Union, ) from .qtcore import ( QModelIndex, QSettings, Qt, ) from .qtgui import ( QComboBox, QDialog, QFormLayout, QFrame, QHBoxLayout, QIcon, QLabel, QLineEdit, QListWidget, QListWidgetItem, QPushButton, QTableWidget, QTableWidgetItem, QVBoxLayout, QWidget, ) from ..util import hglib from ..util.i18n import _ from . import qtlib if hglib.TYPE_CHECKING: from typing import ( Any, ) from ..util.typelib import ( IniConfig, ) _W = TypeVar('_W', bound=QWidget) DEFAULTICONNAME: str = 'tools-spanner-hammer' class ToolsFrame(QFrame): def __init__( self, ini: "IniConfig", parent: Optional[QWidget]=None, **opts ) -> None: QFrame.__init__(self, parent, **opts) self.widgets = [] self.ini = ini self.tortoisehgtools: Dict[str, Dict[str, Union[str, bool]]] self.tortoisehgtools, guidef = hglib.tortoisehgtools(self.ini) self.setValue(self.tortoisehgtools) # The frame has a header and 3 columns: # - The header shows a combo with the list of locations # - The columns show: # - The current location tool list and its associated buttons # - The add to list button # - The "available tools" list and its associated buttons topvbox = QVBoxLayout() self.setLayout(topvbox) topvbox.addWidget(QLabel(_('Select a GUI location to edit:'))) self.locationcombo = QComboBox(self, toolTip=_('Select the toolbar or menu to change')) def selectlocation(index: int) -> None: location = self.locationcombo.itemData(index) for widget in self.widgets: if widget.location == location: widget.removeInvalid(self.value()) widget.show() else: widget.hide() self.locationcombo.currentIndexChanged.connect(selectlocation) topvbox.addWidget(self.locationcombo) hbox = QHBoxLayout() topvbox.addLayout(hbox) vbox = QVBoxLayout() self.globaltoollist = ToolListBox(self.ini, minimumwidth=100, parent=self) self.globaltoollist.doubleClicked.connect(self.editToolItem) vbox.addWidget(QLabel(_('Tools shown on selected location'))) for location, locationdesc in hglib.tortoisehgtoollocations: self.locationcombo.addItem(locationdesc.decode('utf-8'), location) toollist = ToolListBox(self.ini, location=location, minimumwidth=100, parent=self) toollist.doubleClicked.connect(self.editToolFromName) vbox.addWidget(toollist) toollist.hide() self.widgets.append(toollist) deletefromlistbutton = QPushButton(_('Delete from list'), self) deletefromlistbutton.clicked.connect( lambda: self.forwardToCurrentToolList('deleteTool', remove=False)) vbox.addWidget(deletefromlistbutton) hbox.addLayout(vbox) vbox = QVBoxLayout() vbox.addWidget(QLabel('')) # to align all lists addtolistbutton = QPushButton('<< ' + _('Add to list') + ' <<', self) addtolistbutton.clicked.connect(self.addToList) addseparatorbutton = QPushButton('<< ' + _('Add separator'), self) addseparatorbutton.clicked.connect( lambda: self.forwardToCurrentToolList('addSeparator')) vbox.addWidget(addtolistbutton) vbox.addWidget(addseparatorbutton) vbox.addStretch() hbox.addLayout(vbox) vbox = QVBoxLayout() vbox.addWidget(QLabel(_('List of all tools'))) vbox.addWidget(self.globaltoollist) newbutton = QPushButton(_('New Tool ...'), self) newbutton.clicked.connect(self.newTool) editbutton = QPushButton(_('Edit Tool ...'), self) editbutton.clicked.connect(lambda: self.editTool(row=None)) deletebutton = QPushButton(_('Delete Tool'), self) deletebutton.clicked.connect(self.deleteCurrentTool) vbox.addWidget(newbutton) vbox.addWidget(editbutton) vbox.addWidget(deletebutton) hbox.addLayout(vbox) # Ensure that the first location list is shown selectlocation(0) def getCurrentToolList(self) -> Optional["ToolListBox"]: index = self.locationcombo.currentIndex() location = self.locationcombo.itemData(index) for widget in self.widgets: if widget.location == location: return widget return None def addToList(self) -> None: gtl = self.globaltoollist row = gtl.currentIndex().row() if row < 0: row = 0 item = gtl.item(row) if item is None: return toolname = item.text() self.forwardToCurrentToolList('addOrInsertItem', toolname, icon=item.icon()) def forwardToCurrentToolList(self, funcname: str, *args, **opts) -> None: w = self.getCurrentToolList() if w is not None: getattr(w, funcname)(*args, **opts) return None def newTool(self) -> None: td = CustomToolConfigDialog(self) res = td.exec() if res: toolname, toolconfig = td.value() self.globaltoollist.addOrInsertItem( toolname, icon=toolconfig.get('icon', None)) self.tortoisehgtools[toolname] = toolconfig def editTool(self, row: Optional[int] = None) -> None: gtl = self.globaltoollist if row is None: row = gtl.currentIndex().row() if row < 0: return self.newTool() else: item = gtl.item(row) toolname = item.text() td = CustomToolConfigDialog( self, toolname=toolname, toolconfig=self.tortoisehgtools[toolname]) res = td.exec() if res: toolname, toolconfig = td.value() icon = toolconfig.get('icon', '') if not icon: icon = DEFAULTICONNAME item = QListWidgetItem(qtlib.geticon(icon), toolname) gtl.takeItem(row) gtl.insertItem(row, item) gtl.setCurrentRow(row) self.tortoisehgtools[toolname] = toolconfig def editToolItem(self, item: QModelIndex) -> None: self.editTool(item.row()) def editToolFromName(self, idx: QModelIndex) -> None: # [TODO] connect to toollist doubleClick (not global) name = idx.data(Qt.ItemDataRole.DisplayRole) gtl = self.globaltoollist if name == gtl.SEPARATOR: return guidef = gtl.values() for row, toolname in enumerate(guidef): if toolname == name: self.editTool(row) return def deleteCurrentTool(self) -> None: row = self.globaltoollist.currentIndex().row() if row >= 0: item = self.globaltoollist.item(row) itemtext = item.text() self.globaltoollist.deleteTool(row=row) self.deleteTool(itemtext) self.forwardToCurrentToolList('removeInvalid', self.value()) def deleteTool(self, name: str) -> None: try: del self.tortoisehgtools[name] except KeyError: pass def applyChanges(self, ini: "IniConfig") -> bool: # widget.value() returns the _NEW_ values # widget.curvalue returns the _ORIGINAL_ values (yes, this is a bit # misleading! "cur" means "current" as in currently valid) def updateIniValue( section: str, key: str, newvalue: Optional[bytes] ) -> None: section = hglib.fromunicode(section) key = hglib.fromunicode(key) try: del ini[section][key] except KeyError: pass if newvalue is not None: ini.set(section, key, newvalue) emitChanged = False if not self.isDirty(): return emitChanged emitChanged = True # 1. Save the new tool configurations # # In order to keep the tool order we must delete all existing # custom tool configurations, and then set all the configuration # settings anew: section = 'tortoisehg-tools' fieldnames = ('command', 'workingdir', 'label', 'tooltip', 'icon', 'location', 'enable', 'showoutput',) for name in self.curvalue: for field in fieldnames: updateIniValue(section, '%s.%s' % (name, field), None) tools = self.value() for name in tools: if name[0] in '|-': continue for field in sorted(tools[name]): keyname = '%s.%s' % (name, field) value = tools[name][field] # value may be bool if originating from hglib.tortoisehgtools() if value != '': updateIniValue(section, keyname, hglib.fromunicode(str(value))) # 2. Save the new guidefs for n, toollistwidget in enumerate(self.widgets): toollocation = self.locationcombo.itemData(n) if not toollistwidget.isDirty(): continue emitChanged = True toollist = toollistwidget.value() updateIniValue('tortoisehg', toollocation, hglib.fromunicode(' '.join(toollist))) return emitChanged ## common APIs for all edit widgets def setValue(self, curvalue: Dict[str, Dict[str, Union[str, bool]]]) -> None: self.curvalue = dict(curvalue) def value(self) -> Dict[str, Dict[str, Union[str, bool]]]: return self.tortoisehgtools def isDirty(self) -> bool: for toollistwidget in self.widgets: if toollistwidget.isDirty(): return True if self.globaltoollist.isDirty(): return True return self.tortoisehgtools != self.curvalue def refresh(self) -> None: self.tortoisehgtools, guidef = hglib.tortoisehgtools(self.ini) self.setValue(self.tortoisehgtools) self.globaltoollist.refresh() for w in self.widgets: w.refresh() class HooksFrame(QFrame): def __init__( self, ini: "IniConfig", parent: Optional[QWidget]=None, **opts ) -> None: super(HooksFrame, self).__init__(parent, **opts) self.ini = ini # The frame is created empty, and will be populated on 'refresh', # which usually happens when the frames is activated self.setValue({}) topbox = QHBoxLayout() self.setLayout(topbox) self.hooktable = QTableWidget(0, 3, parent) self.hooktable.setHorizontalHeaderLabels((_('Type'), _('Name'), _('Command'))) self.hooktable.sortByColumn(0, Qt.SortOrder.AscendingOrder) self.hooktable.setSelectionBehavior(QTableWidget.SelectionBehavior.SelectRows) self.hooktable.setSelectionMode(QTableWidget.SelectionMode.SingleSelection) self.hooktable.cellDoubleClicked.connect(self.editHook) topbox.addWidget(self.hooktable) buttonbox = QVBoxLayout() self.btnnew = QPushButton(_('New hook')) buttonbox.addWidget(self.btnnew) self.btnnew.clicked.connect(self.newHook) self.btnedit = QPushButton(_('Edit hook')) buttonbox.addWidget(self.btnedit) self.btnedit.clicked.connect(self.editCurrentHook) self.btndelete = QPushButton(_('Delete hook')) self.btndelete.clicked.connect(self.deleteCurrentHook) buttonbox.addWidget(self.btndelete) buttonbox.addStretch() topbox.addLayout(buttonbox) def newHook(self) -> None: td = HookConfigDialog(self) res = td.exec() if res: uhooktype, ucommand, uhookname = td.value() hooktype = hglib.fromunicode(uhooktype) command = hglib.fromunicode(ucommand) hookname = hglib.fromunicode(uhookname) # Does the new hook already exist? hooks = self.value() if hooktype in hooks: existingcommand = hooks[hooktype].get(hookname, None) if existingcommand is not None: if existingcommand == command: # The command already exists "as is"! return if not qtlib.QuestionMsgBox( _('Replace existing hook?'), _('There is an existing %s.%s hook.\n\n' 'Do you want to replace it?') % (uhooktype, uhookname), parent=self): return # Delete existing matching hooks in reverse order # (otherwise the row numbers will be wrong after the first # deletion) for r in reversed(self.findHooks( hooktype=hooktype, hookname=hookname)): self.deleteHook(r) self.hooktable.setSortingEnabled(False) row = self.hooktable.rowCount() self.hooktable.insertRow(row) for c, text in enumerate((uhooktype, uhookname, ucommand)): self.hooktable.setItem(row, c, QTableWidgetItem(text)) # Make the hook column not editable (a dialog is used to edit it) itemhook = self.hooktable.item(row, 0) itemhook.setFlags(itemhook.flags() & ~Qt.ItemFlag.ItemIsEditable) self.hooktable.setSortingEnabled(True) self.hooktable.resizeColumnsToContents() self.updatebuttons() def editHook(self, r: int, c: int = 0) -> bool: if r < 0: r = 0 numrows = self.hooktable.rowCount() if not numrows or r >= numrows: return False if c > 0: # Only show the edit dialog when clicking # on the "Hook Type" (i.e. the 1st) column return False hooktype = self.hooktable.item(r, 0).text() hookname = self.hooktable.item(r, 1).text() command = self.hooktable.item(r, 2).text() td = HookConfigDialog(self, hooktype=hooktype, command=command, hookname=hookname) res = td.exec() if res: hooktype, command, hookname = td.value() # Update the table # Note that we must disable the ordering while the table # is updated to avoid updating the wrong cell! self.hooktable.setSortingEnabled(False) self.hooktable.item(r, 0).setText(hooktype) self.hooktable.item(r, 1).setText(hookname) self.hooktable.item(r, 2).setText(command) self.hooktable.setSortingEnabled(True) self.hooktable.clearSelection() self.hooktable.setState(QTableWidget.State.NoState) self.hooktable.resizeColumnsToContents() return bool(res) def editCurrentHook(self) -> None: self.editHook(self.hooktable.currentRow()) def deleteHook(self, row: Optional[int] = None) -> None: if row is None: row = self.hooktable.currentRow() if row < 0: row = self.hooktable.rowCount() - 1 self.hooktable.removeRow(row) self.hooktable.resizeColumnsToContents() self.updatebuttons() def deleteCurrentHook(self) -> None: self.deleteHook() def findHooks( self, hooktype: Optional[bytes] = None, hookname: Optional[bytes] = None, command: Optional[bytes] = None, ) -> List[int]: matchingrows = [] for r in range(self.hooktable.rowCount()): currhooktype = hglib.fromunicode(self.hooktable.item(r, 0).text()) currhookname = hglib.fromunicode(self.hooktable.item(r, 1).text()) currcommand = hglib.fromunicode(self.hooktable.item(r, 2).text()) matchinghooktype = hooktype is None or hooktype == currhooktype matchinghookname = hookname is None or hookname == currhookname matchingcommand = command is None or command == currcommand if matchinghooktype and matchinghookname and matchingcommand: matchingrows.append(r) return matchingrows def updatebuttons(self) -> None: tablehasitems = self.hooktable.rowCount() > 0 self.btnedit.setEnabled(tablehasitems) self.btndelete.setEnabled(tablehasitems) def applyChanges(self, ini: "IniConfig") -> bool: # widget.value() returns the _NEW_ values # widget.curvalue returns the _ORIGINAL_ values (yes, this is a bit # misleading! "cur" means "current" as in currently valid) emitChanged = False if not self.isDirty(): return emitChanged emitChanged = True # 1. Delete the previous hook configurations section = b'hooks' hooks = self.curvalue for hooktype in hooks: for keyname in hooks[hooktype]: if keyname: keyname = b'%s.%s' % (hooktype, keyname) else: keyname = hooktype try: del ini[section][keyname] except KeyError: pass # 2. Save the new configurations hooks = self.value() for hooktype in hooks: for field in sorted(hooks[hooktype]): if field: keyname = b'%s.%s' % (hooktype, field) else: keyname = hooktype value = hooks[hooktype][field] if value: ini.set(section, keyname, value) return emitChanged ## common APIs for all edit widgets def setValue(self, curvalue: Dict[bytes, Dict[bytes, bytes]]) -> None: self.curvalue = dict(curvalue) def value(self) -> Dict[bytes, Dict[bytes, bytes]]: hooks = {} for r in range(self.hooktable.rowCount()): hooktype = hglib.fromunicode(self.hooktable.item(r, 0).text()) hookname = hglib.fromunicode(self.hooktable.item(r, 1).text()) command = hglib.fromunicode(self.hooktable.item(r, 2).text()) if hooktype not in hooks: hooks[hooktype] = {} hooks[hooktype][hookname] = command return hooks def isDirty(self) -> bool: return self.value() != self.curvalue def gethooks(self) -> Dict[bytes, Dict[bytes, bytes]]: hooks = {} for key, value in self.ini.items(b'hooks'): keyparts: List[bytes] = key.split(b'.', 1) hooktype = keyparts[0] if len(keyparts) == 1: name = b'' else: name = keyparts[1] if hooktype not in hooks: hooks[hooktype] = {} hooks[hooktype][name] = value return hooks def refresh(self) -> None: hooks = self.gethooks() self.setValue(hooks) self.hooktable.setSortingEnabled(False) self.hooktable.setRowCount(0) for hooktype in sorted(hooks): for name in sorted(hooks[hooktype]): itemhook = QTableWidgetItem(hglib.tounicode(hooktype)) # Make the hook column not editable # (a dialog is used to edit it) itemhook.setFlags(itemhook.flags() & ~Qt.ItemFlag.ItemIsEditable) itemname = QTableWidgetItem(hglib.tounicode(name)) itemtool = QTableWidgetItem( hglib.tounicode(hooks[hooktype][name])) self.hooktable.insertRow(self.hooktable.rowCount()) self.hooktable.setItem(self.hooktable.rowCount() - 1, 0, itemhook) self.hooktable.setItem(self.hooktable.rowCount() - 1, 1, itemname) self.hooktable.setItem(self.hooktable.rowCount() - 1, 2, itemtool) self.hooktable.setSortingEnabled(True) self.hooktable.resizeColumnsToContents() self.updatebuttons() class ToolListBox(QListWidget): SEPARATOR: str = '------' def __init__( self, ini: "IniConfig", parent: Optional[QWidget] = None, location: Optional[str] = None, minimumwidth: Optional[int] = None, **opts ) -> None: QListWidget.__init__(self, parent, **opts) self.opts = opts self.curvalue = None self.ini = ini self.location: Optional[str] = location if minimumwidth: self.setMinimumWidth(minimumwidth) self.refresh() # Enable drag and drop to reorder the tools self.setDragEnabled(True) self.setDragDropMode(QListWidget.DragDropMode.InternalMove) self.setDefaultDropAction(Qt.DropAction.MoveAction) def _guidef2toollist(self, guidef: Iterable[str]) -> List[str]: toollist = [] for name in guidef: if name == '|': name = self.SEPARATOR # avoid putting multiple separators together if [name] == toollist[-1:]: continue toollist.append(name) return toollist def _toollist2guidef(self, toollist: List[str]) -> List[str]: guidef = [] for uname in toollist: if uname == self.SEPARATOR: name = '|' # avoid putting multiple separators together if [name] == toollist[-1:]: continue else: name = uname guidef.append(name) return guidef def addOrInsertItem( self, text: str, icon: Optional[Union[str, QIcon]] = None ) -> None: if text == self.SEPARATOR: item = text else: if not icon: icon = DEFAULTICONNAME if hglib.isbasestring(icon): icon = qtlib.geticon(icon) item = QListWidgetItem(icon, text) row = self.currentIndex().row() if row < 0: self.addItem(item) self.setCurrentRow(self.count()-1) else: self.insertItem(row+1, item) self.setCurrentRow(row+1) def deleteTool( self, row: Optional[int] = None, remove: bool = False ) -> None: if row is None: row = self.currentIndex().row() if row >= 0: self.takeItem(row) def addSeparator(self) -> None: self.addOrInsertItem(self.SEPARATOR, icon=None) def values(self) -> List[str]: out = [] for row in range(self.count()): out.append(self.item(row).text()) return out ## common APIs for all edit widgets def setValue(self, curvalue: List[str]) -> None: self.curvalue = curvalue def value(self) -> List[str]: return self._toollist2guidef(list(self.values())) def isDirty(self) -> bool: return self.value() != self.curvalue def refresh(self) -> None: toolsdefs, guidef = hglib.tortoisehgtools(self.ini, selectedlocation=self.location) self.toollist: List[str] = self._guidef2toollist(guidef) self.setValue(guidef) self.clear() for toolname in self.toollist: icon = toolsdefs.get(toolname, {}).get('icon', None) self.addOrInsertItem(toolname, icon=icon) def removeInvalid( self, validtools: Dict[str, Dict[str, Union[str, bool]]] ) -> None: validguidef = [] for toolname in self.value(): if toolname[0] not in '|-': if toolname not in validtools: continue validguidef.append(toolname) self.clear() self.toollist = self._guidef2toollist(validguidef) for toolname in self.toollist: icon = validtools.get(toolname, {}).get('icon', None) self.addOrInsertItem(toolname, icon=icon) class CustomConfigDialog(QDialog): '''Custom Config Dialog base class''' def __init__( self, parent: Optional[QWidget] = None, dialogname: str = '', **kwargs ) -> None: QDialog.__init__(self, parent, **kwargs) self.dialogname = dialogname self.setWindowFlags(self.windowFlags() & ~Qt.WindowType.WindowContextHelpButtonHint) self.hbox = QHBoxLayout() self.formvbox = QFormLayout() self.hbox.addLayout(self.formvbox) vbox = QVBoxLayout() self.okbutton = QPushButton(_('OK')) self.okbutton.clicked.connect(self.okClicked) vbox.addWidget(self.okbutton) self.cancelbutton = QPushButton(_('Cancel')) self.cancelbutton.clicked.connect(self.reject) vbox.addWidget(self.cancelbutton) vbox.addStretch() self.hbox.addLayout(vbox) self.setLayout(self.hbox) self.setMaximumHeight(self.sizeHint().height()) self._readsettings() def value(self) -> None: return None def _genCombo( self, items: Iterable[str], selecteditem: Optional[str] = None, tooltips: Optional[Iterable[str]] = None, ) -> QComboBox: index = 0 if selecteditem: try: index = list(items).index(selecteditem) except ValueError: pass combo = QComboBox() combo.addItems(items) if index: combo.setCurrentIndex(index) if tooltips: for idx, tooltip in enumerate(tooltips): combo.setItemData(idx, tooltip, Qt.ItemDataRole.ToolTipRole) return combo def _addConfigItem( self, parent: QFormLayout, label: str, configwidget: _W, tooltip: Optional[str]=None, ) -> _W: if tooltip: configwidget.setToolTip(tooltip) parent.addRow(label, configwidget) return configwidget def okClicked(self) -> None: errormsg = self.validateForm() if errormsg: qtlib.WarningMsgBox(_('Missing information'), errormsg) return return self.accept() def validateForm(self) -> str: return '' # No error def _readsettings(self) -> QSettings: s = QSettings() if self.dialogname: self.restoreGeometry( qtlib.readByteArray(s, self.dialogname + '/geom')) return s def _writesettings(self) -> None: s = QSettings() if self.dialogname: s.setValue(self.dialogname + '/geom', self.saveGeometry()) def done(self, r: int) -> None: self._writesettings() super(CustomConfigDialog, self).done(r) class CustomToolConfigDialog(CustomConfigDialog): '''Dialog for editing custom tool configurations''' _enablemappings: List[Tuple[str, str]] = [(_('All items'), 'istrue'), (_('Working directory'), 'iswd'), (_('All revisions'), 'isrev'), (_('All contexts'), 'isctx'), (_('Fixed revisions'), 'fixed'), (_('Applied patches'), 'applied'), (_('Applied patches or qparent'), 'qgoto'), ] _defaulticonstring: str = _('') def __init__( self, parent: Optional[QWidget] = None, toolname: Optional[str] = None, toolconfig: Optional[Dict[str, Union[str, bool]]] = None, ) -> None: super(CustomToolConfigDialog, self).__init__(parent, dialogname='customtools', windowTitle=_('Configure Custom Tool'), windowIcon=qtlib.geticon(DEFAULTICONNAME)) if toolconfig is None: toolconfig = {} vbox = self.formvbox command = toolconfig.get('command', '') workingdir = toolconfig.get('workingdir', '') label = toolconfig.get('label', '') tooltip = toolconfig.get('tooltip', '') ico = toolconfig.get('icon', '') enable = toolconfig.get('enable', 'all') showoutput = str(toolconfig.get('showoutput', False)) self.name: QLineEdit = self._addConfigItem(vbox, _('Tool name'), QLineEdit(toolname), _('The tool name. It cannot contain spaces.')) # Execute a mercurial command. These _MUST_ start with "hg" self.command: QLineEdit = self._addConfigItem(vbox, _('Command'), QLineEdit(command), _('The command that will be executed.\n' 'To execute a Mercurial command use "hg" (rather than "hg.exe") ' 'as the executable command.\n' 'You can use several {VARIABLES} to compose your command.\n' 'Common variables:\n' '- {ROOT}: The path to the current repository root.\n' '- {REV} / {REVID}: Selected revisions numbers / hexadecimal' ' revision id hashes respectively formatted as a revset' ' expression.\n' '- {SELECTEDFILES}: The list of files selected by the user on the ' 'revision details file list.\n' '- {FILES}: The list of files touched by the selected revisions.\n' '- {ALLFILES}: All the files tracked by Mercurial on the selected' ' revisions.\n' 'Pair selection variables:\n' '- {REV_A} / {REVID_A}: the first selected revision number / ' 'hexadecimal revision id hash respectively.\n' '- {REV_B} / {REVID_B}: the second selected revision number / ' 'hexadecimal revision id hash respectively.\n')) self.workingdir: QLineEdit = self._addConfigItem(vbox, _('Working Directory'), QLineEdit(workingdir), _('The directory where the command will be executed.\n' 'If this is not set, the root of the current repository ' 'will be used instead.\n' 'You can use the same {VARIABLES} as on the "Command" setting.\n')) self.label: QLineEdit = self._addConfigItem(vbox, _('Tool label'), QLineEdit(label), _('The tool label, which is what will be shown ' 'on the repowidget context menu.\n' 'If no label is set, the tool name will be used as the tool label.\n' 'If no tooltip is set, the label will be used as the tooltip as well.')) self.tooltip: QLineEdit = self._addConfigItem(vbox, _('Tooltip'), QLineEdit(tooltip), _('The tooltip that will be shown on the tool button.\n' 'This is only shown when the tool button is shown on\n' 'the workbench toolbar.')) iconnames = qtlib.getallicons() combo = QComboBox() if not ico: ico = self._defaulticonstring elif ico not in iconnames: combo.addItem(qtlib.geticon(ico), ico) combo.addItem(qtlib.geticon(DEFAULTICONNAME), self._defaulticonstring) for name in iconnames: combo.addItem(qtlib.geticon(name), name) combo.setEditable(True) idx = combo.findText(ico) # note that idx will always be >= 0 because if ico not in iconnames # it will have been added as the first element on the combobox! combo.setCurrentIndex(idx) self.icon: QComboBox = self._addConfigItem(vbox, _('Icon'), combo, _('The tool icon.\n' 'You can use any built-in TortoiseHg icon\n' 'by setting this value to a valid TortoiseHg icon name\n' '(e.g. clone, add, remove, sync, thg-logo, hg-update, etc).\n' 'You can also set this value to the absolute path to\n' 'any icon on your file system.')) combo = self._genCombo([l for l, _v in self._enablemappings], self._enable2label(enable)) self.enable: QComboBox = self._addConfigItem(vbox, _('On repowidget, show for'), combo, _('For which kinds of revisions the tool will be enabled\n' 'It is only taken into account when the tool is shown on the\n' 'selected revision context menu.')) combo = self._genCombo(('True', 'False'), showoutput) self.showoutput: QComboBox = self._addConfigItem(vbox, _('Show Output Log'), combo, _('When enabled, automatically show the Output Log when the ' 'command is run.\nDefault: False.')) def value(self) -> Tuple[str, Dict[str, str]]: # pytype: disable=signature-mismatch toolname = self.name.text().strip() toolconfig = { 'label': self.label.text(), 'command': self.command.text(), 'workingdir': self.workingdir.text(), 'tooltip': self.tooltip.text(), 'icon': self.icon.currentText(), 'enable': self._enablemappings[self.enable.currentIndex()][1], 'showoutput': self.showoutput.currentText(), } if toolconfig['icon'] == self._defaulticonstring: toolconfig['icon'] = '' return toolname, toolconfig def _enable2label(self, value: str) -> Optional[str]: return dict((v, l) for l, v in self._enablemappings).get(value) def validateForm(self) -> str: name, config = self.value() if not name: return _('You must set a tool name.') if name.find(' ') >= 0: return _('The tool name cannot have any spaces in it.') if not config['command']: return _('You must set a command to run.') return '' # No error class HookConfigDialog(CustomConfigDialog): '''Dialog for editing the a hook configuration''' _hooktypes = ( 'changegroup', 'commit', 'incoming', 'outgoing', 'prechangegroup', 'precommit', 'prelistkeys', 'preoutgoing', 'prepushkey', 'pretag', 'pretxnchangegroup', 'pretxncommit', 'preupdate', 'listkeys', 'pushkey', 'tag', 'update', ) _hooktooltips = ( _('Run after a changegroup has been added via push, pull or unbundle. ' 'ID of the first new changeset is in $HG_NODE and last in ' '$HG_NODE_LAST. URL from which changes came is in ' '$HG_URL.'), _('Run after a changeset has been created in the local repository. ID ' 'of the newly created changeset is in $HG_NODE. Parent ' 'changeset IDs are in $HG_PARENT1 and ' '$HG_PARENT2.'), _('Run after a changeset has been pulled, pushed, or unbundled into ' 'the local repository. The ID of the newly arrived changeset is in ' '$HG_NODE. URL that was source of changes came is in ' '$HG_URL.'), _('Run after sending changes from local repository to another. ID of ' 'first changeset sent is in $HG_NODE. Source of operation ' 'is in $HG_SOURCE.'), _('Run before a changegroup is added via push, pull or unbundle. Exit ' 'status 0 allows the changegroup to proceed. Non-zero status will ' 'cause the push, pull or unbundle to fail. URL from which changes ' 'will come is in $HG_URL.'), _('Run before starting a local commit. Exit status 0 allows the commit ' 'to proceed. Non-zero status will cause the commit to fail. Parent ' 'changeset IDs are in $HG_PARENT1 and ' '$HG_PARENT2.'), _('Run before listing pushkeys (like bookmarks) in the repository. ' 'Non-zero status will cause failure. The key namespace is in ' '$HG_NAMESPACE.'), _('Run before collecting changes to send from the local repository to ' 'another. Non-zero status will cause failure. This lets you ' 'prevent pull over HTTP or SSH. Also prevents against local pull, ' 'push (outbound) or bundle commands, but not effective, since you ' 'can just copy files instead then. Source of operation is in ' '$HG_SOURCE. If "serve", operation is happening on behalf ' 'of remote SSH or HTTP repository. If "push", "pull" or "bundle", ' 'operation is happening on behalf of repository on same system.'), _('Run before a pushkey (like a bookmark) is added to the repository. ' 'Non-zero status will cause the key to be rejected. The key ' 'namespace is in $HG_NAMESPACE, the key is in ' '$HG_KEY, the old value (if any) is in $HG_OLD, ' 'and the new value is in $HG_NEW.'), _('Run before creating a tag. Exit status 0 allows the tag to be ' 'created. Non-zero status will cause the tag to fail. ID of ' 'changeset to tag is in $HG_NODE. Name of tag is in ' '$HG_TAG. Tag is local if $HG_LOCAL=1, in ' 'repository if $HG_LOCAL=0.'), _('Run after a changegroup has been added via push, pull or unbundle, ' 'but before the transaction has been committed. Changegroup is ' 'visible to hook program. This lets you validate incoming changes ' 'before accepting them. Passed the ID of the first new changeset ' 'in $HG_NODE and last in $HG_NODE_LAST. Exit ' 'status 0 allows the transaction to commit. Non-zero status will ' 'cause the transaction to be rolled back and the push, pull or ' 'unbundle will fail. URL that was source of changes is in ' '$HG_URL.'), _('Run after a changeset has been created but the transaction not yet ' 'committed. Changeset is visible to hook program. This lets you ' 'validate commit message and changes. Exit status 0 allows the ' 'commit to proceed. Non-zero status will cause the transaction to ' 'be rolled back. ID of changeset is in $HG_NODE. Parent ' 'changeset IDs are in $HG_PARENT1 and ' '$HG_PARENT2.'), _('Run before updating the working directory. Exit status 0 allows the ' 'update to proceed. Non-zero status will prevent the update. ' 'Changeset ID of first new parent is in $HG_PARENT1. ' 'If merge, ID of second new parent is in $HG_PARENT2.'), _('Run after listing pushkeys (like bookmarks) in the repository. The ' 'key namespace is in $HG_NAMESPACE. $HG_VALUES ' 'is a dictionary containing the keys and values.'), _('Run after a pushkey (like a bookmark) is added to the repository. ' 'The key namespace is in $HG_NAMESPACE, the key is in ' '$HG_KEY, the old value (if any) is in $HG_OLD, ' 'and the new value is in $HG_NEW.'), _('Run after a tag is created. ID of tagged changeset is in ' '$HG_NODE. Name of tag is in $HG_TAG. Tag is ' 'local if $HG_LOCAL=1, in repository if ' '$HG_LOCAL=0.'), _('Run after updating the working directory. Changeset ID of first new ' 'parent is in $HG_PARENT1. If merge, ID of second new ' 'parent is in $HG_PARENT2. If the update succeeded, ' '$HG_ERROR=0. If the update failed (e.g. because ' 'conflicts not resolved), $HG_ERROR=1.'), ) _rehookname: Pattern[str] = re.compile(r'^[^=\s]*$') def __init__( self, parent: Optional[QWidget] = None, hooktype: Optional[str] = None, command: str = '', hookname: str = '', ) -> None: super(HookConfigDialog, self).__init__(parent, dialogname='hookconfigdialog', windowTitle=_('Configure Hook'), windowIcon=qtlib.geticon('tools-hooks')) vbox = self.formvbox combo = self._genCombo(self._hooktypes, hooktype, self._hooktooltips) self.hooktype: QComboBox = self._addConfigItem(vbox, _('Hook type'), combo, _('Select when your command will be run')) self.name: QLineEdit = self._addConfigItem(vbox, _('Tool name'), QLineEdit(hookname), _('The hook name. It cannot contain spaces.')) self.command: QLineEdit = self._addConfigItem(vbox, _('Command'), QLineEdit(command), _('The command that will be executed.\n' 'To execute a python function prepend the command with ' '"python:".\n')) def value(self) -> Tuple[str, str, str]: # pytype: disable=signature-mismatch hooktype = self.hooktype.currentText() hookname = self.name.text().strip() command = self.command.text().strip() return hooktype, command, hookname def validateForm(self) -> str: hooktype, command, hookname = self.value() if hooktype not in self._hooktypes: return _('You must set a valid hook type.') if self._rehookname.match(hookname) is None: return _('The hook name cannot contain any spaces, ' 'tabs or \'=\' characters.') if not command: return _('You must set a command to run.') return '' # No error ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/docklog.py0000644000000000000000000005062214672254332017460 0ustar00rootroot# docklog.py - Log dock widget for the TortoiseHg Workbench # # Copyright 2010 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os from typing import ( Dict, List, ) from .qsci import ( QsciScintilla, ) from .qtcore import ( QIODevice, QProcess, QTimer, Qt, pyqtSignal, pyqtSlot, ) from .qtgui import ( QColor, QDockWidget, QStackedWidget, QVBoxLayout, QWidget, ) from mercurial import ( commands, pycompat, util, ) from ..util import hglib from ..util.i18n import _ from . import ( cmdui, qtlib, ) class _LogWidgetForConsole(cmdui.LogWidget): """Wrapped LogWidget for ConsoleWidget""" returnPressed = pyqtSignal(str) """Return key pressed when cursor is on prompt line""" historyRequested = pyqtSignal(str, int) # keyword, direction completeRequested = pyqtSignal(str) _prompt = '% ' def __init__(self, parent=None): super(_LogWidgetForConsole, self).__init__(parent) self._prompt_marker = self.markerDefine(QsciScintilla.MarkerSymbol.Background) self.setMarkerBackgroundColor(QColor('#e8f3fe'), self._prompt_marker) self.cursorPositionChanged.connect(self._updatePrompt) # ensure not moving prompt line even if completion list get shorter, # by allowing to scroll one page below the last line self.SendScintilla(QsciScintilla.SCI_SETENDATLASTLINE, False) # don't reserve "slop" area at top/bottom edge on ensureFooVisible() self.SendScintilla(QsciScintilla.SCI_SETVISIBLEPOLICY, 0, 0) self._savedcommands = [] # temporarily-invisible command self._origcolor = None self._flashtimer = QTimer(self, interval=100, singleShot=True) self._flashtimer.timeout.connect(self._restoreColor) def keyPressEvent(self, event): cursoronprompt = not self.isReadOnly() if cursoronprompt: if event.key() == Qt.Key.Key_Up: return self.historyRequested.emit(self.commandText(), -1) elif event.key() == Qt.Key.Key_Down: return self.historyRequested.emit(self.commandText(), +1) del self._savedcommands[:] # settle candidate by user input if event.key() in (Qt.Key.Key_Return, Qt.Key.Key_Enter): return self.returnPressed.emit(self.commandText()) if event.key() == Qt.Key.Key_Tab: return self.completeRequested.emit(self.commandText()) if event.key() == Qt.Key.Key_Escape: # When ESC is pressed, if the cursor is on the prompt, # this clears it, if not, this moves the cursor to the prompt self.setCommandText('') super(_LogWidgetForConsole, self).keyPressEvent(event) def setPrompt(self, text): if text == self._prompt: return if self._findPromptLine() < 0: self._prompt = text return self.clearPrompt() self._prompt = text self.openPrompt() @pyqtSlot() def openPrompt(self): """Show prompt line and enable user input""" self.closePrompt() line = self.lines() - 1 self.markerAdd(line, self._prompt_marker) self.append(self._prompt) if self._savedcommands: self.append(self._savedcommands.pop()) self.setCursorPosition(line, len(self.text(line))) self.setReadOnly(False) # make sure the prompt line is visible. Because QsciScintilla may # delay line wrapping, setCursorPosition() doesn't always scrolls # to the correct position. # http://www.scintilla.org/ScintillaDoc.html#LineWrapping self.SCN_PAINTED.connect(self._scrollCaretOnPainted) @pyqtSlot() def _scrollCaretOnPainted(self): self.SCN_PAINTED.disconnect(self._scrollCaretOnPainted) self.SendScintilla(self.SCI_SCROLLCARET) def _removeTrailingText(self, line, index): visline = self.firstVisibleLine() lastline = self.lines() - 1 self.setSelection(line, index, lastline, len(self.text(lastline))) self.removeSelectedText() # restore scroll position changed by setSelection() self.verticalScrollBar().setValue(visline) def _findPromptLine(self): return self.markerFindPrevious(self.lines() - 1, 1 << self._prompt_marker) @pyqtSlot() def clearLog(self): wasopen = self._findPromptLine() >= 0 self.clear() if wasopen: self.openPrompt() @pyqtSlot() def closePrompt(self): """Disable user input""" line = self._findPromptLine() if line >= 0: if self.commandText(): self._setmarker((line,), 'control') self.markerDelete(line, self._prompt_marker) self._removeTrailingText(line + 1, 0) # clear completion self._newline() self.setCursorPosition(self.lines() - 1, 0) self.setReadOnly(True) @pyqtSlot() def clearPrompt(self): """Clear prompt line and subsequent text""" line = self._findPromptLine() if line < 0: return self._savedcommands = [self.commandText()] self.markerDelete(line) self._removeTrailingText(line, 0) @pyqtSlot(int, int) def _updatePrompt(self, line, pos): """Update availability of user input""" if self.markersAtLine(line) & (1 << self._prompt_marker): self.setReadOnly(pos < len(self._prompt)) self._ensurePrompt(line) if pos < len(self._prompt): # avoid inconsistency caused by changing pos inside # cursorPositionChanged QTimer.singleShot(0, self._moveCursorToPromptHome) else: self.setReadOnly(True) @pyqtSlot() def _moveCursorToPromptHome(self): line = self._findPromptLine() if line >= 0: self.setCursorPosition(line, len(self._prompt)) def _ensurePrompt(self, line): """Insert prompt string if not available""" s = self.text(line) if s.startswith(self._prompt): return for i, c in enumerate(self._prompt): if s[i:i + 1] != c: self.insertAt(self._prompt[i:], line, i) break def commandText(self): """Return the current command text""" if self._savedcommands: return self._savedcommands[-1] l = self._findPromptLine() if l >= 0: return self.text(l)[len(self._prompt):].rstrip('\n') else: return '' def setCommandText(self, text, candidate=False): """Replace the current command text; subsequent text is also removed. If candidate, the specified text is displayed but does not replace commandText() until the user takes some action. """ line = self._findPromptLine() if line < 0: return if candidate: self._savedcommands = [self.commandText()] else: del self._savedcommands[:] self._ensurePrompt(line) self._removeTrailingText(line, len(self._prompt)) self.insert(text) self.setCursorPosition(line, len(self.text(line))) def _newline(self): if self.text(self.lines() - 1): self.append('\n') def flash(self, color='brown'): """Briefly change the text color to catch the user attention""" if self._flashtimer.isActive(): return self._origcolor = self.color() self.setColor(QColor(color)) self._flashtimer.start() @pyqtSlot() def _restoreColor(self): assert self._origcolor self.setColor(self._origcolor) def _searchhistory(items, text, direction, idx): """Search history items and return (item, index_of_item) Valid index is zero or negative integer. Zero is reserved for non-history item. >>> def searchall(items, text, direction, idx=0): ... matched = [] ... while True: ... it, idx = _searchhistory(items, text, direction, idx) ... if not it: ... return matched, idx ... matched.append(it) >>> searchall('foo bar baz'.split(), '', direction=-1) (['baz', 'bar', 'foo'], -4) >>> searchall('foo bar baz'.split(), '', direction=+1, idx=-3) (['bar', 'baz'], 0) search by keyword: >>> searchall('foo bar baz'.split(), 'b', direction=-1) (['baz', 'bar'], -4) >>> searchall('foo bar baz'.split(), 'inexistent', direction=-1) ([], -4) empty history: >>> searchall([], '', direction=-1) ([], -1) initial index out of range: >>> searchall('foo bar baz'.split(), '', direction=-1, idx=-3) ([], -4) >>> searchall('foo bar baz'.split(), '', direction=+1, idx=0) ([], 1) """ assert direction != 0 idx += direction while -len(items) <= idx < 0: curcmdline = items[idx] if curcmdline.startswith(text): return curcmdline, idx idx += direction return None, idx class ConsoleWidget(QWidget, qtlib.TaskWidget): """Console to run hg/thg command and show output""" closeRequested = pyqtSignal() def __init__(self, agent, parent=None): QWidget.__init__(self, parent) self.setLayout(QVBoxLayout()) self.layout().setContentsMargins(0, 0, 0, 0) self._initlogwidget() self.setFocusProxy(self._logwidget) self._agent = agent agent.busyChanged.connect(self._suppressPromptOnBusy) agent.outputReceived.connect(self.appendLog) if util.safehasattr(agent, 'displayName'): self._logwidget.setPrompt('%s%% ' % agent.displayName()) self.openPrompt() self._commandHistory = [] self._commandIdx = 0 def _initlogwidget(self): self._logwidget = _LogWidgetForConsole(self) self._logwidget.returnPressed.connect(self._runcommand) self._logwidget.historyRequested.connect(self.historySearch) self._logwidget.completeRequested.connect(self.completeCommandText) self.layout().addWidget(self._logwidget) # compatibility methods with LogWidget for name in ('openPrompt', 'closePrompt', 'clear'): setattr(self, name, getattr(self._logwidget, name)) @pyqtSlot(str, int) def historySearch(self, text: str, direction: int): cmdline, idx = _searchhistory(self._commandHistory, text, direction, self._commandIdx) if cmdline: self._commandIdx = idx self._logwidget.setCommandText(cmdline, candidate=True) else: self._logwidget.flash() def _commandComplete(self, cmdtype: str, cmdline: str) -> List[str]: from tortoisehg.hgqt import run matches = [] cmd = cmdline.split() if cmdtype == 'hg': cmdtable = commands.table else: cmdtable = run.table subcmd = '' if len(cmd) >= 2: subcmd = cmd[1].lower() def findhgcmd(cmdstart: str) -> Dict[str, str]: matchinfo = {} for cmdspec in cmdtable: for cmdname in cmdspec.split(b'|'): if cmdname.startswith(hglib.fromunicode(cmdstart)): matchinfo[hglib.tounicode(cmdname)] = hglib.tounicode(cmdspec) return matchinfo matchingcmds = findhgcmd(subcmd) if not matchingcmds: return matches if len(matchingcmds) > 1: basecmdline = '%s %%s' % cmdtype matches = [basecmdline % c for c in matchingcmds] else: scmdtype = list(matchingcmds)[0] cmdspec = hglib.fromunicode(matchingcmds[scmdtype]) opts = cmdtable[cmdspec][1] def findcmdopt(cmdopt: str) -> List[str]: cmdopt = cmdopt.lower() while cmdopt.startswith('-'): cmdopt = cmdopt[1:] matchingopts = [] for opt in opts: uopt = hglib.tounicode(opt[1]) if uopt.startswith(cmdopt): matchingopts.append(uopt) return matchingopts basecmdline = '%s %s --%%s' % (cmdtype, scmdtype) if len(cmd) == 2: matches = ['%s %s ' % (cmdtype, scmdtype)] matches += [basecmdline % hglib.tounicode(opt[1]) for opt in opts] else: cmdopt = cmd[-1] if cmdopt.startswith('-'): # find the matching options basecmdline = ' '.join(cmd[:-1]) + ' --%s' cmdopts = findcmdopt(cmdopt) matches = [basecmdline % opt for opt in cmdopts] return sorted(matches) @pyqtSlot(str) def completeCommandText(self, text: str): """Show the list of history or known commands matching the search text Also complete the prompt with the common prefix to the matching items """ text = text.strip() if not text: self._logwidget.flash() return history = set(self._commandHistory) commonprefix = '' matches = [] for cmdline in history: if cmdline.startswith(text): matches.append(cmdline) if matches: matches.sort() commonprefix = os.path.commonprefix(matches) cmd = text.split() cmdtype = cmd[0].lower() if cmdtype in ('hg', 'thg'): hgcommandmatches = self._commandComplete(cmdtype, text) if hgcommandmatches: if not commonprefix: commonprefix = os.path.commonprefix(hgcommandmatches) if matches: matches.append('------ %s commands ------' % cmdtype) matches += hgcommandmatches if not matches: self._logwidget.flash() return self._logwidget.setCommandText(commonprefix) if len(matches) > 1: self._logwidget.append('\n' + '\n'.join(matches) + '\n') self._logwidget.ensureLineVisible(self._logwidget.lines() - 1) self._logwidget.ensureCursorVisible() @util.propertycache def _extproc(self): extproc = QProcess(self) extproc.started.connect(self.closePrompt) extproc.finished.connect(self.openPrompt) extproc.errorOccurred.connect(self._handleExtprocError) extproc.readyReadStandardOutput.connect(self._appendExtprocStdout) extproc.readyReadStandardError.connect(self._appendExtprocStderr) return extproc @pyqtSlot() def _handleExtprocError(self): if self._extproc.state() == QProcess.ProcessState.NotRunning: self._logwidget.closePrompt() msg = self._extproc.errorString() self._logwidget.appendLog(msg + '\n', 'ui.error') if self._extproc.state() == QProcess.ProcessState.NotRunning: self._logwidget.openPrompt() @pyqtSlot() def _appendExtprocStdout(self): text = hglib.tounicode(self._extproc.readAllStandardOutput().data()) self._logwidget.appendLog(text, '') @pyqtSlot() def _appendExtprocStderr(self): text = hglib.tounicode(self._extproc.readAllStandardError().data()) self._logwidget.appendLog(text, 'ui.warning') @pyqtSlot(str, str) def appendLog(self, msg, label): """Append log text to the last line while keeping the prompt line""" self._logwidget.clearPrompt() try: self._logwidget.appendLog(msg, label) finally: if not self._agent.isBusy(): self.openPrompt() def repoRootPath(self): if util.safehasattr(self._agent, 'rootPath'): return self._agent.rootPath() @property def _repo(self): if util.safehasattr(self._agent, 'rawRepo'): return self._agent.rawRepo() def _workingDirectory(self): return self.repoRootPath() or hglib.getcwdu() @pyqtSlot(bool) def _suppressPromptOnBusy(self, busy): if busy: self._logwidget.clearPrompt() else: self.openPrompt() @pyqtSlot(str) def _runcommand(self, cmdline: str): self._commandIdx = 0 try: args = hglib.parsecmdline(cmdline, self._workingDirectory()) except ValueError as e: self.closePrompt() self._logwidget.appendLog(hglib.exception_str(e) + '\n', 'ui.error') self.openPrompt() return if not args: self.openPrompt() return # add command to command history if not self._commandHistory or self._commandHistory[-1] != cmdline: self._commandHistory.append(cmdline) # execute the command cmd = args.pop(0) try: self._cmdtable[cmd](self, args) except KeyError: return self._runextcommand(cmdline) def _runextcommand(self, cmdline): self._extproc.setWorkingDirectory(self._workingDirectory()) self._extproc.start(cmdline, QIODevice.OpenModeFlag.ReadOnly) def _cmd_hg(self, args): self.closePrompt() self._agent.runCommand(args, self) def _cmd_thg(self, args): from tortoisehg.hgqt import run self.closePrompt() try: if self.repoRootPath(): args = ['-R', self.repoRootPath()] + args # TODO: show errors run.dispatch(pycompat.maplist(hglib.fromunicode, args)) finally: self.openPrompt() def _cmd_clear(self, args): self._logwidget.clearLog() def _cmd_exit(self, args): self._logwidget.clearLog() self.closeRequested.emit() _cmdtable = { 'hg': _cmd_hg, 'thg': _cmd_thg, 'clear': _cmd_clear, 'cls': _cmd_clear, 'exit': _cmd_exit, } class LogDockWidget(QDockWidget): def __init__(self, repomanager, cmdagent, parent=None): super(LogDockWidget, self).__init__(parent) self.setFeatures(QDockWidget.DockWidgetFeature.DockWidgetClosable | QDockWidget.DockWidgetFeature.DockWidgetMovable | QDockWidget.DockWidgetFeature.DockWidgetFloatable) self.setWindowTitle(_('Console')) # Not enabled until we have a way to make it configurable #self.setWindowFlags(Qt.WindowType.Drawer) self.dockLocationChanged.connect(self._updateTitleBarStyle) self._repomanager = repomanager self._repomanager.repositoryOpened.connect(self._createConsoleFor) self._repomanager.repositoryClosed.connect(self._destroyConsoleFor) self._consoles = QStackedWidget(self) self.setWidget(self._consoles) self._createConsole(cmdagent) for root in self._repomanager.repoRootPaths(): self._createConsoleFor(root) def setCurrentRepoRoot(self, root): w = self._findConsoleFor(root) self._consoles.setCurrentWidget(w) self.setFocusProxy(w) def _findConsoleFor(self, root): for i in pycompat.xrange(self._consoles.count()): w = self._consoles.widget(i) if w.repoRootPath() == root: return w raise ValueError('no console found for %r' % root) def _createConsole(self, agent): w = ConsoleWidget(agent, self) w.closeRequested.connect(self.close) self._consoles.addWidget(w) return w @pyqtSlot(str) def _createConsoleFor(self, root: str): repoagent = self._repomanager.repoAgent(root) assert repoagent self._createConsole(repoagent) @pyqtSlot(str) def _destroyConsoleFor(self, root: str): w = self._findConsoleFor(root) self._consoles.removeWidget(w) w.setParent(None) def setVisible(self, visible): super(LogDockWidget, self).setVisible(visible) if visible: self.raise_() @pyqtSlot(Qt.DockWidgetArea) def _updateTitleBarStyle(self, area): f = self.features() if area & (Qt.DockWidgetArea.TopDockWidgetArea | Qt.DockWidgetArea.BottomDockWidgetArea): f |= QDockWidget.DockWidgetFeature.DockWidgetVerticalTitleBar # saves vertical space else: f &= ~QDockWidget.DockWidgetFeature.DockWidgetVerticalTitleBar self.setFeatures(f) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730809007.0 tortoisehg-6.9/tortoisehg/hgqt/filectxactions.py0000644000000000000000000010225014712406257021050 0ustar00rootroot# filectxactions.py - context menu actions for repository files # # Copyright 2010 Adrian Buehlmann # Copyright 2010 Steve Borho # Copyright 2012 Yuya Nishihara # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os import re from typing import ( Any, Callable, Dict, List, Optional, Text, Tuple, Type, TypeVar, cast, ) from .qtcore import ( QDir, QMimeData, QObject, Qt, pyqtSignal, pyqtSlot, ) from .qtgui import ( QAction, QApplication, QFileDialog, QMenu, QWidget, ) from mercurial import ( context, pycompat, ) from ..util import ( hglib, shlib, ) from ..util.i18n import _ from . import ( cmdcore, cmdui, customtools, lfprompt, qtlib, rejects, revert, visdiff, ) if hglib.TYPE_CHECKING: from mercurial import ( localrepo, ui as uimod, ) from .cmdcore import CmdSession from .filedata import _AbstractFileData from .thgrepo import RepoAgent from ..util.typelib import HgContext FileData = _AbstractFileData _ActionTableEntry = Tuple[Text, Optional[Text], Optional[Text], Text, Tuple["_FileDataFilter", ...]] _ActionTable = Dict[Text, _ActionTableEntry] # The filter function type to reduce the list of input FileData entries. _FileDataFilter = Callable[[List["FileData"]], List["FileData"]] _MenuActionEntry = Tuple[QAction, Tuple[_FileDataFilter, ...]] _W = TypeVar('_W', bound=QWidget) def _lcanonpaths(fds: List["FileData"]) -> List[bytes]: return [hglib.fromunicode(e.canonicalFilePath()) for e in fds] # predicates to filter files def _anydeleted(fds: List["FileData"]) -> List["FileData"]: if any( e.rev() is None and cast(context.workingctx, e.rawContext()).deleted() for e in fds ): return fds return [] def _committed(fds: List["FileData"]) -> List["FileData"]: # pytype: disable=unsupported-operands return [e for e in fds if e.rev() is not None and e.rev() >= 0] # pytype: enable=unsupported-operands def _filepath(pat: Text) -> _FileDataFilter: patre = re.compile(pat) return lambda fds: [e for e in fds if patre.search(e.filePath())] def _filestatus(s: Text) -> _FileDataFilter: s = frozenset(s) # include directory since its status is unknown return lambda fds: [e for e in fds if e.isDir() or e.fileStatus() in s] def _indirectbaserev(fds: List["FileData"]) -> List["FileData"]: return [e for e in fds if e.baseRev() not in e.parentRevs()] def _isdir(fds: List["FileData"]) -> List["FileData"]: return [e for e in fds if e.isDir()] def _isfile(fds: List["FileData"]) -> List["FileData"]: return [e for e in fds if not e.isDir()] def _merged(fds: List["FileData"]) -> List["FileData"]: return [e for e in fds if len(e.rawContext().parents()) > 1] def _mergestatus(s: Text) -> _FileDataFilter: s = frozenset(s) # include directory since its status is unknown return lambda fds: [e for e in fds if e.isDir() or e.mergeStatus() in s] def _notpatch(fds: List["FileData"]) -> List["FileData"]: # pytype: disable=unsupported-operands return [e for e in fds if e.rev() is None or e.rev() >= 0] # pytype: enable=unsupported-operands def _notsubrepo(fds: List["FileData"]) -> List["FileData"]: return [e for e in fds if not e.repoRootPath() and not e.subrepoType()] def _notsubroot(fds: List["FileData"]) -> List["FileData"]: return [e for e in fds if not e.subrepoType()] def _single(fds: List["FileData"]) -> List["FileData"]: if len(fds) != 1: return [] return fds def _subrepotype(t: Text) -> _FileDataFilter: return lambda fds: [e for e in fds if e.subrepoType() == t] def _filterby( fdfilters: Tuple[_FileDataFilter, ...], fds: List["FileData"] ) -> List["FileData"]: for f in fdfilters: if not fds: return [] fds = f(fds) return fds def _tablebuilder(table): """Make decorator to define actions that receive filtered files If the slot, wrapped(), is invoked, the specified function is called with filtered files, func(fds), only if "fds" is not empty. """ def slot(text, icon, shortcut, statustip, fdfilters=()): if not isinstance(fdfilters, tuple): fdfilters = (fdfilters,) def decorate(func): name = func.__name__ table[name] = (text, icon, shortcut, statustip, fdfilters) def wrapped(self): fds = self.fileDataListForAction(name) if not fds: return func(self, fds) return pyqtSlot(name=name)(wrapped) return decorate return slot class FilectxActions(QObject): """Container for repository file actions""" linkActivated = pyqtSignal(str) filterRequested = pyqtSignal(str) """Ask the repowidget to change its revset filter""" runCustomCommandRequested = pyqtSignal(str, list) _actiontable: _ActionTable = {} actionSlot = _tablebuilder(_actiontable) def __init__( self, repoagent: "RepoAgent", parent: QWidget, ) -> None: super(FilectxActions, self).__init__(parent) if not isinstance(parent, QWidget): raise ValueError('parent must be a QWidget') self._repoagent = repoagent self._cmdsession: "CmdSession" = cmdcore.nullCmdSession() self._selfds: List["FileData"] = [] self._nav_dialogs = qtlib.DialogKeeper(FilectxActions._createnavdialog, FilectxActions._gennavdialogkey, self) self._actions: Dict[Text, _MenuActionEntry] = {} self._customactions: Dict[Text, _MenuActionEntry] = {} for name, d in self._actiontable.items(): desc, icon, key, tip, fdfilters = d # QAction must be owned by QWidget; otherwise statusTip for context # menu cannot be displayed (QTBUG-16114) act = QAction(desc, self.parent()) if icon: act.setIcon(qtlib.geticon(icon)) if key: qtlib.setContextMenuShortcut(act, key) act.setShortcutContext(Qt.ShortcutContext.WidgetWithChildrenShortcut) if tip: act.setStatusTip(tip) act.triggered.connect(getattr(self, name)) self._addAction(name, act, fdfilters) self._initAdditionalActions() self._updateActions() def _initAdditionalActions(self) -> None: # override to add actions that cannot be declared as actionSlot pass def _parentWidget(self) -> QWidget: p = self.parent() assert isinstance(p, QWidget) return p @property def _ui(self) -> "uimod.ui": repo = self._repoagent.rawRepo() return repo.ui def _repoAgentFor(self, fd: "FileData") -> "RepoAgent": rpath = fd.repoRootPath() if not rpath: return self._repoagent return self._repoagent.subRepoAgent(rpath) def _updateActions(self) -> None: idle = self._cmdsession.isFinished() selfds = self._selfds allactions = (list(self._actions.values()) + list(self._customactions.values())) for act, fdfilters in allactions: act.setEnabled(idle and bool(_filterby(fdfilters, selfds))) def fileDataListForAction(self, name: Text) -> List["FileData"]: fdfilters = self._actions[name][1] return _filterby(fdfilters, self._selfds) def setFileDataList(self, selfds: List["FileData"]) -> None: self._selfds = list(selfds) self._updateActions() def actions(self) -> List[QAction]: """List of the actions; The owner widget should register them""" return [a for a, _f in self._actions.values()] def action(self, name: Text) -> QAction: return self._actions[name][0] def _addAction( self, name: Text, action: QAction, fdfilters: Tuple[_FileDataFilter, ...] ) -> None: assert name not in self._actions, name self._actions[name] = action, fdfilters def _runCommand(self, cmdline: List[Text]) -> "CmdSession": if not self._cmdsession.isFinished(): return cmdcore.nullCmdSession() sess = self._repoagent.runCommand(cmdline, self._parentWidget()) self._handleNewCommand(sess) return sess def _runCommandSequence(self, cmdlines: List[List[Text]]) -> "CmdSession": if not self._cmdsession.isFinished(): return cmdcore.nullCmdSession() sess = self._repoagent.runCommandSequence(cmdlines, self._parentWidget()) self._handleNewCommand(sess) return sess def _handleNewCommand(self, sess: "CmdSession") -> None: assert self._cmdsession.isFinished() self._cmdsession = sess sess.commandFinished.connect(self._onCommandFinished) self._updateActions() @pyqtSlot(int) def _onCommandFinished(self, ret: int) -> None: if ret == 255: cmdui.errorMessageBox(self._cmdsession, self._parentWidget()) self._updateActions() @actionSlot(_('File &History / Annotate'), 'hg-log', 'Shift+Return', _('Show the history of the selected file'), (_isfile, _notpatch, _filestatus('MARC!'))) def navigateFileLog(self, fds: List["FileData"]) -> None: from tortoisehg.hgqt import filedialogs, fileview for fd in fds: dlg = self._navigate(filedialogs.FileLogDialog, fd) if not dlg: continue dlg.setFileViewMode(fileview.AnnMode) @actionSlot(_('Co&mpare File Revisions'), 'compare-files', None, _('Compare revisions of the selected file'), (_isfile, _notpatch)) def navigateFileDiff(self, fds: List["FileData"]) -> None: from tortoisehg.hgqt import filedialogs for fd in fds: self._navigate(filedialogs.FileDiffDialog, fd) def _navigate( self, dlgclass: Type[_W], fd: "FileData" ) -> Optional[_W]: repoagent = self._repoAgentFor(fd) repo = repoagent.rawRepo() filename = hglib.fromunicode(fd.canonicalFilePath()) if repo.file(filename): dlg = self._nav_dialogs.open(dlgclass, repoagent, filename) dlg.goto(fd.rev()) return dlg def _createnavdialog( self, dlgclass: Type[_W], repoagent: "RepoAgent", filename: bytes, ) -> _W: return dlgclass(repoagent, filename) def _gennavdialogkey( self, dlgclass: Type[_W], repoagent: "RepoAgent", filename: bytes, ) -> Tuple[Type[_W], bytes]: repo = repoagent.rawRepo() return dlgclass, repo.wjoin(filename) @actionSlot(_('Filter Histor&y'), 'hg-log', None, _('Query about changesets affecting the selected files'), _notsubrepo) def filterFile(self, fds: List["FileData"]) -> None: pats = ["file('path:%s')" % e.filePath() for e in fds] self.filterRequested.emit(' or '.join(pats)) @actionSlot(_('Diff &Changeset to Parent'), 'visualdiff', None, '', _notpatch) def visualDiff(self, fds: List["FileData"]) -> None: self._visualDiffToBase(fds[0], []) @actionSlot(_('Diff Changeset to Loc&al'), 'ldiff', None, '', _committed) def visualDiffToLocal(self, fds: List["FileData"]) -> None: self._visualDiff(fds[0], [], rev=['rev(%d)' % fds[0].rev()]) @actionSlot(_('&Diff to Parent'), 'visualdiff', 'Ctrl+D', _('View file changes in external diff tool'), (_notpatch, _notsubroot, _filestatus('MAR!'))) def visualDiffFile(self, fds: List["FileData"]) -> None: self._visualDiffToBase(fds[0], fds) @actionSlot(_('Diff to &Local'), 'ldiff', 'Shift+Ctrl+D', _('View changes to current in external diff tool'), _committed) def visualDiffFileToLocal(self, fds: List["FileData"]) -> None: self._visualDiff(fds[0], fds, rev=['rev(%d)' % fds[0].rev()]) def _visualDiffToBase( self, an_fd: "FileData", fds: List["FileData"], ) -> None: if an_fd.baseRev() == an_fd.parentRevs()[0]: self._visualDiff(an_fd, fds, change=an_fd.rev()) # can 3-way else: revs = [an_fd.baseRev()] if an_fd.rev() is not None: revs.append(an_fd.rev()) self._visualDiff(an_fd, fds, rev=['rev(%d)' % r for r in revs]) def _visualDiff( self, an_fd: "FileData", fds: List["FileData"], **opts, ) -> None: filenames = _lcanonpaths(fds) repo = self._repoAgentFor(an_fd).rawRepo() dlg = visdiff.visualdiff(repo.ui, repo, filenames, opts) if dlg: dlg.exec() @actionSlot(_('&View at Revision'), 'view-at-revision', 'Shift+Ctrl+E', _('View file as it appeared at this revision using the ' 'visual editor'), _committed) def editFile(self, fds: List["FileData"]) -> None: self._editFileAt(fds, fds[0].rawContext()) def _editFileAt(self, fds: List["FileData"], ctx: "HgContext") -> None: repo = self._repoAgentFor(fds[0]).rawRepo() filenames = _lcanonpaths(fds) base, _ = visdiff.snapshot(repo, filenames, ctx) files = [os.path.join(base, filename) for filename in filenames] qtlib.editfiles(repo, files, parent=self._parentWidget()) @actionSlot(_('&Open at Revision'), 'open-at-revision', None, _("Open file as it appeared at this revision using the " "system's default application for this file type"), _committed) def openFile(self, fds: List["FileData"]) -> None: self._openFileAt(fds, fds[0].rawContext()) def _openFileAt(self, fds: List["FileData"], ctx: "HgContext") -> None: repo = self._repoAgentFor(fds[0]).rawRepo() filenames = _lcanonpaths(fds) base, _ = visdiff.snapshot(repo, filenames, ctx) files = [os.path.join(base, filename) for filename in filenames] for f in files: qtlib.openlocalurl(f) @actionSlot(_('&Save at Revision...'), None, 'Shift+Ctrl+S', _('Save file as it appeared at this revision'), _committed) def saveFile(self, fds: List["FileData"]) -> None: cmdlines = [] for fd in fds: wfile, ext = os.path.splitext(fd.absoluteFilePath()) extfilter = [_("All files (*)")] filename = "%s@%d%s" % (wfile, fd.rev(), ext) if ext: extfilter.insert(0, "*%s" % ext) result, _filter = QFileDialog.getSaveFileName( self._parentWidget(), _("Save file to"), filename, ";;".join(extfilter)) if not result: continue # checkout in working-copy line endings, etc. by --decode cmdlines.append(hglib.buildcmdargs( 'cat', hglib.escapepath(fd.canonicalFilePath()), rev=fd.rev(), output=result, decode=True)) if cmdlines: self._runCommandSequence(cmdlines) @actionSlot(_('&Edit Local'), 'edit-file', None, _('Edit current file(s) in working copy with the visual ' 'editor'), (_isfile, _filestatus('MACI?'))) def editLocalFile(self, fds: List["FileData"]) -> None: repo = self._repoAgentFor(fds[0]).rawRepo() filenames = _lcanonpaths(fds) qtlib.editfiles(repo, filenames, parent=self._parentWidget()) @actionSlot(_('&Open Local'), None, 'Shift+Ctrl+L', _("Open current file(s) in working copy with the system's " "default application for this file type"), (_isfile, _filestatus('MACI?'))) def openLocalFile(self, fds: List["FileData"]) -> None: repo = self._repoAgentFor(fds[0]).rawRepo() for fd in fds: qtlib.openlocalurl(fd.absoluteFilePath()) @actionSlot(_('E&xplore Local'), 'system-file-manager', None, _('Open parent folder of current file in the system file ' 'manager'), (_isfile, _filestatus('MACI?'))) def exploreLocalFile(self, fds: List["FileData"]) -> None: for fd in fds: qtlib.openlocalurl(os.path.dirname(fd.absoluteFilePath())) @actionSlot(_('&Copy Patch'), 'copy-patch', None, '', (_notpatch, _notsubroot, _filestatus('MAR!'))) def copyPatch(self, fds: List["FileData"]) -> None: paths = [hglib.escapepath(fd.filePath()) for fd in fds] revs = pycompat.maplist(hglib.escaperev, [fds[0].baseRev(), fds[0].rev()]) cmdline = hglib.buildcmdargs('diff', *paths, r=revs) sess = self._runCommand(cmdline) sess.setCaptureOutput(True) sess.commandFinished.connect(self._copyPatchOutputToClipboard) @pyqtSlot(int) def _copyPatchOutputToClipboard(self, ret: int) -> None: if ret != 0: return output = self._cmdsession.readAll() mdata = QMimeData() mdata.setData('text/x-diff', output) # for lossless import mdata.setText(hglib.tounicode(bytes(output))) QApplication.clipboard().setMimeData(mdata) @actionSlot(_('Copy Absolute &Path'), None, 'Shift+Ctrl+C', _('Copy full path of file(s) to the clipboard')) def copyPath(self, fds: List["FileData"]) -> None: paths = [e.absoluteFilePath() for e in fds] QApplication.clipboard().setText(os.linesep.join(paths)) @actionSlot(_('Copy Relative Path'), None, None, _('Copy repository relative path of file(s) to the clipboard')) def copyRelativePath(self, fds: List["FileData"]) -> None: paths = [QDir.toNativeSeparators(e.filePath()) for e in fds] QApplication.clipboard().setText(os.linesep.join(paths)) @actionSlot(_('&Revert to Revision...'), 'hg-revert', 'Shift+Ctrl+R', _('Revert file(s) to contents at this revision'), _notpatch) def revertFile(self, fds: List["FileData"]) -> None: repoagent = self._repoAgentFor(fds[0]) fileSelection = [e.canonicalFilePath() for e in fds] rev = fds[0].rev() if rev is None: repo = repoagent.rawRepo() rev = repo[rev].p1().rev() dlg = revert.RevertDialog(repoagent, fileSelection, rev, parent=self._parentWidget()) dlg.exec() @actionSlot(_('Open S&ubrepository'), 'thg-repository-open', None, _('Open the selected subrepository'), _subrepotype('hg')) def openSubrepo(self, fds: List["FileData"]) -> None: for fd in fds: if fd.rev() is None: link = 'repo:%s' % fd.absoluteFilePath() else: ctx = fd.rawContext() spath = hglib.fromunicode(fd.canonicalFilePath()) revid = hglib.tounicode(ctx.substate[spath][1]) link = 'repo:%s?%s' % (fd.absoluteFilePath(), revid) self.linkActivated.emit(link) @actionSlot(_('E&xplore Folder'), 'system-file-manager', None, _('Open the selected folder in the system file manager'), _isdir) def explore(self, fds: List["FileData"]) -> None: for fd in fds: qtlib.openlocalurl(fd.absoluteFilePath()) @actionSlot(_('Open &Terminal'), 'utilities-terminal', None, _('Open a shell terminal in the selected folder'), _isdir) def terminal(self, fds: List["FileData"]) -> None: for fd in fds: root = hglib.fromunicode(fd.absoluteFilePath()) currentfile = hglib.fromunicode(fd.filePath()) qtlib.openshell(root, currentfile, self._ui) def setupCustomToolsMenu(self, location: Text) -> None: tools, toollist = hglib.tortoisehgtools(self._ui, location) submenu = QMenu(_('Custom Tools'), self._parentWidget()) submenu.triggered.connect(self._runCustomCommandByMenu) for name in toollist: if name == '|': submenu.addSeparator() continue info = tools.get(name, None) if info is None: continue command = info.get('command', None) if not command: continue label = info.get('label', name) icon = info.get('icon', customtools.DEFAULTICONNAME) status = info.get('status') assert isinstance(label, str) # help pytype a = submenu.addAction(label) a.setData(name) if icon: a.setIcon(qtlib.geticon(icon)) if status: fdfilters = (_filestatus(status),) else: fdfilters = () self._customactions[name] = (a, fdfilters) submenu.menuAction().setVisible(bool(self._customactions)) self._addAction('customToolsMenu', submenu.menuAction(), ()) self._updateActions() @pyqtSlot(QAction) def _runCustomCommandByMenu(self, action: QAction) -> None: name = str(action.data()) fdfilters = self._customactions[name][1] fds = _filterby(fdfilters, self._selfds) files = [fd.filePath() for fd in fds] self.runCustomCommandRequested.emit(name, files) class WctxActions(FilectxActions): 'container class for working context actions' refreshNeeded = pyqtSignal() _actiontable: _ActionTable = FilectxActions._actiontable.copy() actionSlot = _tablebuilder(_actiontable) def _initAdditionalActions(self) -> None: repo = self._repoagent.rawRepo() # the same shortcut as editFile that is disabled for working rev a = self.action('editLocalFile') qtlib.setContextMenuShortcut(a, 'Ctrl+Shift+E') a.setShortcutContext(Qt.ShortcutContext.WidgetWithChildrenShortcut) a = self.action('addLargefile') a.setVisible(b'largefiles' in repo.extensions()) self._addAction('renameFileMenu', *self._createRenameFileMenu()) self._addAction('remergeFileMenu', *self._createRemergeFileMenu()) @property def repo(self) -> "localrepo.localrepository": return self._repoagent.rawRepo() def _runWorkingFileCommand( self, cmdname: Text, fds: List["FileData"], opts: Optional[Dict[Text, Any]]=None, ) -> "CmdSession": if not opts: opts = {} paths = [hglib.escapepath(fd.filePath()) for fd in fds] cmdline = hglib.buildcmdargs(cmdname, *paths, **opts) sess = self._runCommand(cmdline) sess.commandFinished.connect(self._notifyChangesOnCommandFinished) return sess @pyqtSlot(int) def _notifyChangesOnCommandFinished(self, ret: int) -> None: if ret == 0: self._notifyChanges() def _notifyChanges(self) -> None: # include all selected files for maximum possibility wfiles = [hglib.fromunicode(fd.absoluteFilePath()) for fd in self._selfds] shlib.shell_notify(wfiles) self.refreshNeeded.emit() # this action will no longer be necessary if status widget can toggle # base revision in amend/qrefresh mode @actionSlot(_('Diff &Local'), 'ldiff', 'Ctrl+Shift+D', '', (_indirectbaserev, _notsubroot, _filestatus('MARC!'))) def visualDiffLocalFile(self, fds: List["FileData"]) -> None: self._visualDiff(fds[0], fds) @actionSlot(_('&View Missing'), None, None, '', (_isfile, _filestatus('R!'))) def editMissingFile(self, fds: List["FileData"]) -> None: wctx = fds[0].rawContext() self._editFileAt(fds, wctx.p1()) @actionSlot(_('View O&ther'), None, None, '', (_isfile, _merged, _filestatus('MA'))) def editOtherFile(self, fds: List["FileData"]) -> None: wctx = fds[0].rawContext() self._editFileAt(fds, wctx.p2()) @actionSlot(_('&Add'), 'hg-add', None, '', (_notsubroot, _filestatus('RI?'))) def addFile(self, fds: List["FileData"]) -> None: repo = self._repoAgentFor(fds[0]).rawRepo() if b'largefiles' in repo.extensions(): self._addFileWithPrompt(fds) else: self._runWorkingFileCommand('add', fds) def _addFileWithPrompt(self, fds: List["FileData"]) -> None: repo = self._repoAgentFor(fds[0]).rawRepo() result = lfprompt.promptForLfiles(self._parentWidget(), repo.ui, repo, _lcanonpaths(fds)) if not result: return cmdlines = [] for opt, paths in zip(('normal', 'large'), result): if not paths: continue paths = [hglib.escapepath(hglib.tounicode(e)) for e in paths] cmdlines.append(hglib.buildcmdargs('add', *paths, **{opt: True})) sess = self._runCommandSequence(cmdlines) sess.commandFinished.connect(self._notifyChangesOnCommandFinished) @actionSlot(_('Add &Largefiles...'), None, None, '', (_notsubroot, _filestatus('I?'))) def addLargefile(self, fds: List["FileData"]) -> None: self._runWorkingFileCommand('add', fds, {'large': True}) @actionSlot(_('&Forget'), 'hg-remove', None, '', (_notsubroot, _filestatus('MAC!'))) def forgetFile(self, fds: List["FileData"]) -> None: self._runWorkingFileCommand('forget', fds) @actionSlot(_('&Delete Unversioned...'), 'hg-purge', 'Delete', '', (_notsubroot, _filestatus('?I'))) def purgeFile(self, fds: List["FileData"]) -> None: parent = self._parentWidget() files = [hglib.fromunicode(fd.filePath()) for fd in fds] res = qtlib.CustomPrompt( _('Confirm Delete Unversioned'), _('Delete the following unversioned files?'), parent, (_('&Delete'), _('Cancel')), 1, 1, files).run() if res == 1: return opts = {'config': 'extensions.purge=', 'all': True} self._runWorkingFileCommand('purge', fds, opts) @actionSlot(_('Re&move Versioned'), 'hg-remove', None, '', (_notsubroot, _filestatus('C'))) def removeFile(self, fds: List["FileData"]) -> None: self._runWorkingFileCommand('remove', fds) @actionSlot(_('&Revert...'), 'hg-revert', None, '', _filestatus('MAR!')) def revertWorkingFile(self, fds: List["FileData"]) -> None: parent = self._parentWidget() files = _lcanonpaths(fds) wctx = cast(context.workingctx, fds[0].rawContext()) revertopts = {'date': None, 'rev': '.', 'all': False} if len(wctx.parents()) > 1: res = qtlib.CustomPrompt( _('Uncommited merge - please select a parent revision'), _('Revert files to local or other parent?'), parent, (_('&Local'), _('&Other'), _('Cancel')), 0, 2, files).run() if res == 0: revertopts['rev'] = wctx.p1().rev() elif res == 1: revertopts['rev'] = wctx.p2().rev() else: return elif [file for file in files if file in wctx.modified()]: res = qtlib.CustomPrompt( _('Confirm Revert'), _('Revert local file changes?'), parent, (_('&Revert with backup'), _('&Discard changes'), _('Cancel')), 2, 2, files).run() if res == 2: return if res == 1: revertopts['no_backup'] = True else: res = qtlib.CustomPrompt( _('Confirm Revert'), _('Revert the following files?'), parent, (_('&Revert'), _('Cancel')), 1, 1, files).run() if res == 1: return self._runWorkingFileCommand('revert', fds, revertopts) @actionSlot(_('&Copy...'), 'edit-copy', None, '', (_single, _isfile, _filestatus('MAC'))) def copyFile(self, fds: List["FileData"]) -> None: self._openRenameDialog(fds, iscopy=True) @actionSlot(_('Re&name...'), 'hg-rename', None, '', (_single, _isfile, _filestatus('MAC'))) def renameFile(self, fds: List["FileData"]) -> None: self._openRenameDialog(fds, iscopy=False) def _openRenameDialog(self, fds: List["FileData"], iscopy: bool) -> None: from tortoisehg.hgqt.rename import RenameDialog srcfd, = fds repoagent = self._repoAgentFor(srcfd) dlg = RenameDialog(repoagent, self._parentWidget(), srcfd.canonicalFilePath(), iscopy=iscopy) if dlg.exec() == 0: self._notifyChanges() @actionSlot(_('&Ignore...'), 'thg-ignore', None, '', (_notsubroot, _filestatus('?'))) def editHgignore(self, fds: List["FileData"]) -> None: from tortoisehg.hgqt.hgignore import HgignoreDialog repoagent = self._repoAgentFor(fds[0]) parent = self._parentWidget() files = _lcanonpaths(fds) dlg = HgignoreDialog(repoagent, parent, *files) dlg.finished.connect(dlg.deleteLater) dlg.exec() self._notifyChanges() @actionSlot(_('Edit Re&jects'), None, None, _('Manually resolve rejected patch chunks'), (_single, _isfile, _filestatus('?I'), _filepath(r'\.rej$'))) def editRejects(self, fds: List["FileData"]) -> None: lpath = hglib.fromunicode(fds[0].absoluteFilePath()[:-4]) # drop .rej dlg = rejects.RejectsDialog(self._ui, lpath, self._parentWidget()) if dlg.exec(): self._notifyChanges() @actionSlot(_('De&tect Renames...'), 'thg-guess', None, '', (_isfile, _filestatus('A?!'))) def guessRename(self, fds: List["FileData"]) -> None: from tortoisehg.hgqt.guess import DetectRenameDialog repoagent = self._repoAgentFor(fds[0]) parent = self._parentWidget() files = _lcanonpaths(fds) dlg = DetectRenameDialog(repoagent, parent, *files) def matched(): ret[0] = True ret = [False] dlg.matchAccepted.connect(matched) dlg.finished.connect(dlg.deleteLater) dlg.exec() if ret[0]: self._notifyChanges() @actionSlot(_('&Mark Resolved'), None, None, '', (_notsubroot, _mergestatus('U'))) def markFileAsResolved(self, fds: List["FileData"]) -> None: self._runWorkingFileCommand('resolve', fds, {'mark': True}) @actionSlot(_('&Mark Unresolved'), None, None, '', (_notsubroot, _mergestatus('R'))) def markFileAsUnresolved(self, fds: List["FileData"]) -> None: self._runWorkingFileCommand('resolve', fds, {'unmark': True}) @actionSlot(_('Restart Mer&ge'), None, None, '', (_notsubroot, _mergestatus('U'))) def remergeFile(self, fds: List["FileData"]) -> None: self._runWorkingFileCommand('resolve', fds) def _createRenameFileMenu(self) -> _MenuActionEntry: menu = QMenu(_('Was renamed from'), self._parentWidget()) menu.aboutToShow.connect(self._updateRenameFileMenu) menu.triggered.connect(self._renameFrom) fdfilters = (_single, _isfile, _filestatus('?'), _anydeleted) return menu.menuAction(), fdfilters @pyqtSlot() def _updateRenameFileMenu(self) -> None: menu = self.sender() assert isinstance(menu, QMenu), repr(menu) menu.clear() fds = self.fileDataListForAction('renameFileMenu') if not fds: return wctx = fds[0].rawContext() for d in wctx.deleted()[:15]: menu.addAction(hglib.tounicode(d)) @pyqtSlot(QAction) def _renameFrom(self, action: QAction) -> None: fds = self.fileDataListForAction('renameFileMenu') if not fds: # selection might be changed after menu is shown return deleted = hglib.escapepath(action.text()) unknown = hglib.escapepath(fds[0].filePath()) cmdlines = [hglib.buildcmdargs('copy', deleted, unknown, after=True), hglib.buildcmdargs('forget', deleted)] # !->R sess = self._runCommandSequence(cmdlines) sess.commandFinished.connect(self._notifyChangesOnCommandFinished) def _createRemergeFileMenu(self) -> _MenuActionEntry: menu = QMenu(_('Restart Merge &with'), self._parentWidget()) menu.aboutToShow.connect(self._populateRemergeFileMenu) # may be slow menu.triggered.connect(self._remergeFileWith) return menu.menuAction(), (_notsubroot, _mergestatus('U')) @pyqtSlot() def _populateRemergeFileMenu(self) -> None: menu = self.sender() assert isinstance(menu, QMenu), repr(menu) menu.aboutToShow.disconnect(self._populateRemergeFileMenu) for tool in hglib.mergetools(self._ui): menu.addAction(hglib.tounicode(tool)) @pyqtSlot(QAction) def _remergeFileWith(self, action: QAction) -> None: fds = self.fileDataListForAction('remergeFileMenu') self._runWorkingFileCommand('resolve', fds, {'tool': action.text()}) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730809007.0 tortoisehg-6.9/tortoisehg/hgqt/filedata.py0000644000000000000000000010502314712406257017603 0ustar00rootroot# filedata.py - generate displayable file data # # Copyright 2011 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os, posixpath from typing import ( List, Optional, Text, Tuple, TypeVar, Union, cast, ) from mercurial import ( commands, copies, error, patch, pycompat, scmutil, subrepo, util, ) from mercurial.utils import ( dateutil, ) from mercurial.node import nullrev from tortoisehg.util import hglib, patchctx from tortoisehg.util.i18n import _ from tortoisehg.hgqt import fileencoding _TSubrepoData = TypeVar('_TSubrepoData', bound='SubrepoData') _T_AbstractFileData = TypeVar('_T_AbstractFileData', bound='_AbstractFileData') if hglib.TYPE_CHECKING: from mercurial import ( context, localrepo, ) from ..util.typelib import ( HgContext, ThgContext, ) forcedisplaymsg = _('Display the file anyway') class _BadContent(Exception): """Failed to display file because it is binary or size limit exceeded""" def _exceedsMaxLineLength(data: bytes, maxlength: int = 100000) -> bool: if len(data) < maxlength: return False for line in data.splitlines(): if len(line) > maxlength: return True return False def _checkdifferror(data: bytes, maxdiff: int) -> Optional[Text]: p = _('Diff not displayed: ') size = len(data) if size > maxdiff: return p + _('File is larger than the specified max size.\n' 'maxdiff = %s KB') % (maxdiff // 1024) elif b'\0' in data: return p + _('File is binary') elif _exceedsMaxLineLength(data): # it's incredibly slow to render long line by QScintilla return p + _('File may be binary (maximum line length exceeded)') def _trimdiffheader(diff: Text) -> Text: # trim first three lines, for example: # diff -r f6bfc41af6d7 -r c1b18806486d tortoisehg/hgqt/mq.py # --- a/tortoisehg/hgqt/mq.py # +++ b/tortoisehg/hgqt/mq.py out = diff.split('\n', 3) if len(out) == 4: return out[3] else: # there was an error or rename without diffs return diff class _AbstractFileData(object): def __init__( self, ctx: "HgContext", ctx2: Optional["HgContext"], wfile: bytes, status: Optional[Text] = None, rpath: Optional[bytes] = None, ) -> None: self._ctx = ctx self._pctx: Optional["HgContext"] = ctx2 self._wfile = wfile self._status: Optional[Text] = status self._rpath: bytes = rpath or b'' self.contents: Optional[bytes] = None self.ucontents: Optional[Text] = None self.error: Optional[Text] = None self.olddata: Optional[bytes] = None self.diff: Optional[bytes] = None self.flabel: Text = u'' self.elabel: Text = u'' self.changes: Optional[patch.header] = None self._textencoding = fileencoding.contentencoding(ctx.repo().ui) def createRebased( self: _T_AbstractFileData, pctx: "HgContext", ) -> _T_AbstractFileData: # new status is not known return self.__class__(self._ctx, pctx, self._wfile, rpath=self._rpath) def load(self, changeselect: bool = False, force: bool = False) -> None: # Note: changeselect may be set to True even if the underlying data # isn't chunk-selectable raise NotImplementedError def __eq__(self, other: object) -> bool: # unlike changectx, this also compares hash in case it was stripped and # recreated. FileData may live longer than changectx in Mercurial. return (isinstance(other, self.__class__) and self._ctx == other._ctx and self._ctx.node() == other._ctx.node() and self._pctx == other._pctx and (self._pctx is None or self._pctx.node() == other._pctx.node()) and self._wfile == other._wfile and self._rpath == other._rpath) def __ne__(self, other: object) -> bool: return not self == other def __hash__(self) -> int: return hash((self._ctx, self._ctx.node(), self._pctx, self._pctx is None or self._pctx.node(), self._wfile, self._rpath)) def __repr__(self) -> str: return '<%s %s@%s>' % (self.__class__.__name__, hglib.tounicode( posixpath.join(self._rpath, self._wfile) ), self._ctx) def isLoaded(self) -> bool: loadables = [self.contents, self.ucontents, self.error, self.diff] return any(e is not None for e in loadables) def isNull(self) -> bool: return self._ctx.rev() == nullrev and not self._wfile def isValid(self) -> bool: return self.error is None and not self.isNull() def rev(self) -> Optional[int]: return self._ctx.rev() def baseRev(self) -> Optional[int]: # Optional allows reverse diff from wdir return self._pctx.rev() def parentRevs(self) -> List[int]: # may contain nullrev, which allows "nullrev in parentRevs()" return [p.rev() for p in self._ctx.parents()] def rawContext(self) -> "HgContext": return self._ctx def rawBaseContext(self) -> Optional["HgContext"]: return self._pctx # absoluteFilePath : "C:\\Documents\\repo\\foo\\subrepo\\bar\\baz" # absoluteRepoRootPath: "C:\\Documents\\repo\\foo\\subrepo" # canonicalFilePath: "bar/baz" # filePath : "foo/subrepo/bar/baz" # repoRootPath : "foo/subrepo" def absoluteFilePath(self) -> Text: """Absolute file-system path of this file""" repo = self._ctx.repo() return hglib.tounicode(os.path.normpath(repo.wjoin(self._wfile))) def absoluteRepoRootPath(self) -> Text: """Absolute file-system path to the root of the container repository""" # repo.root should be normalized repo = self._ctx.repo() return hglib.tounicode(repo.root) def canonicalFilePath(self) -> Text: """Path relative to the repository root which contains this file""" return hglib.tounicode(self._wfile) def filePath(self) -> Text: """Path relative to the top repository root in the current context""" return hglib.tounicode(posixpath.join(self._rpath, self._wfile)) def repoRootPath(self) -> Text: """Root path of the container repository relative to the top repository in the current context; '' for top repository""" return hglib.tounicode(self._rpath) def fileStatus(self) -> Optional[Text]: return self._status def isDir(self) -> bool: return not self._wfile def mergeStatus(self) -> Optional[Text]: pass def subrepoType(self) -> Optional[Text]: pass def textEncoding(self) -> Text: return self._textencoding def setTextEncoding(self, name: Text) -> None: self._textencoding = fileencoding.canonname(name) def detectTextEncoding(self) -> None: ui = self._ctx.repo().ui # use file content for better guess; diff may be mixed encoding or # have immature multi-byte sequence data = self.contents or self.diff or b'' fallbackenc = self._textencoding self._textencoding = fileencoding.guessencoding(ui, data, fallbackenc) def _textToUnicode(self, s: bytes) -> Text: return s.decode(self._textencoding, 'replace') def diffText(self) -> Text: return self._textToUnicode(self.diff or b'') def fileText(self) -> Text: return self._textToUnicode(self.contents or b'') class FileData(_AbstractFileData): def __init__( self, ctx: "HgContext", pctx: Optional["HgContext"], path: bytes, status: Optional[Text] = None, rpath: Optional[bytes] = None, mstatus: Optional[Text] = None, ) -> None: super(FileData, self).__init__(ctx, pctx, path, status, rpath) self._mstatus: Optional[Text] = mstatus def load(self, changeselect: bool = False, force: bool = False) -> None: if self.rev() == nullrev: return ctx = self._ctx ctx2 = self._pctx wfile = self._wfile status = self._status errorprefix = _('File or diffs not displayed: ') try: self._readStatus(ctx, ctx2, wfile, status, changeselect, force) except _BadContent as e: self.error = errorprefix + e.args[0] + '\n\n' + forcedisplaymsg except (EnvironmentError, error.LookupError, error.Abort) as e: self.error = errorprefix + hglib.exception_str(e) def _checkMaxDiff( self, ctx: "HgContext", wfile: bytes, maxdiff: int, force: bool ) -> Tuple["context.basefilectx", bytes]: self.error = None fctx = ctx.filectx(wfile) size = hglib.getestimatedsize(fctx) if not force and size > maxdiff: raise _BadContent(_('File is larger than the specified max size.\n' 'maxdiff = %s KB') % (maxdiff // 1024)) data = fctx.data() if not force: # ctx is really thgrepo.thgchangectx (i.e. a ThgContext without # patchctx, with additional methods). if b'\0' in data or ctx.isStandin(wfile): # pytype: disable=attribute-error raise _BadContent(_('File is binary')) elif _exceedsMaxLineLength(data): # it's incredibly slow to render long line by QScintilla raise _BadContent(_('File may be binary (maximum line length ' 'exceeded)')) return fctx, data def _checkRenamed( self, repo: "localrepo.localrepository", ctx: "HgContext", pctx: Optional["HgContext"], wfile: bytes ) -> Optional[bytes]: m = scmutil.matchfiles(repo, [wfile]) copy = copies.pathcopies(pctx, ctx, match=m) oldname = copy.get(wfile) if not oldname: self.flabel += _(' (was added)') return fr = hglib.tounicode(oldname) if oldname in ctx: self.flabel += _(' (copied from %s)') % fr else: self.flabel += _(' (renamed from %s)') % fr return oldname def _readStatus( self, ctx: "HgContext", ctx2: Optional["HgContext"], wfile: bytes, status: Text, changeselect: bool, force: bool, ) -> None: def getstatus( repo: "localrepo.localrepository", n1: Optional[bytes], n2: Optional[bytes], wfile: bytes, ) -> Optional[Text]: m = scmutil.matchfiles(repo, [wfile]) st = repo.status(n1, n2, match=m) if wfile in st.modified: return 'M' if wfile in st.added: return 'A' if wfile in st.removed: return 'R' if wfile in ctx: return 'C' return None isbfile = False repo = ctx.repo() maxdiff = repo.maxdiff self.flabel = u'%s' % self.filePath() if ctx2: # If a revision to compare to was provided, we must put it in # the context of the subrepo as well if ctx2.repo().root != ctx.repo().root: wsub2, wfileinsub2, sctx2 = \ hglib.getDeepestSubrepoContainingFile(wfile, ctx2) if wsub2: ctx2 = sctx2 absfile = repo.wjoin(wfile) if (wfile in ctx and b'l' in ctx.flags(wfile)) or \ os.path.islink(absfile): if wfile in ctx: data = ctx[wfile].data() else: data = os.readlink(absfile) self.contents = data self.flabel += _(' (is a symlink)') return if ctx2 is None: ctx2 = ctx.p1() assert ctx2 is not None # help pytype if status is None: status = getstatus(repo, ctx2.node(), ctx.node(), wfile) mde = _('File or diffs not displayed: ' 'File is larger than the specified max size.\n' 'maxdiff = %s KB') % (maxdiff // 1024) if status in ('R', '!'): if wfile in ctx.p1(): fctx = ctx.p1()[wfile] if hglib.getestimatedsize(fctx) > maxdiff: self.error = mde else: olddata = fctx.data() if b'\0' in olddata: self.error = 'binary file' else: self.contents = olddata self.flabel += _(' (was deleted)') elif hasattr(ctx.p1(), 'hasStandin') and ctx.p1().hasStandin(wfile): self.error = 'binary file' self.flabel += _(' (was deleted)') else: self.flabel += _(' (was added, now missing)') return if status in ('I', '?'): assert ctx.rev() is None self.flabel += _(' (is unversioned)') if os.path.getsize(absfile) > maxdiff: self.error = mde return with util.posixfile(absfile, b'rb') as fp: data = cast(bytes, fp.read()) if not force and b'\0' in data: self.error = 'binary file' else: self.contents = data return if status in ('M', 'A', 'C'): # pytype: disable=attribute-error # The actual type is thgrepo.thgcontext, which has these methods # TODO: make these module functions if ctx.hasStandin(wfile): wfile = ctx.findStandin(wfile) # pytype: enable=attribute-error isbfile = True try: fctx, newdata = self._checkMaxDiff(ctx, wfile, maxdiff, force) except _BadContent: if status == 'A': self._checkRenamed(repo, ctx, ctx2, wfile) raise self.contents = newdata if status == 'C': # no further comparison is necessary return for pctx in ctx.parents(): if b'x' in fctx.flags() and b'x' not in pctx.flags(wfile): self.elabel = _("exec mode has been " "set") elif b'x' not in fctx.flags() and b'x' in pctx.flags(wfile): self.elabel = _("exec mode has been " "unset") if status == 'A': oldname = self._checkRenamed(repo, ctx, ctx2, wfile) if not oldname: return olddata = ctx2[oldname].data() elif status == 'M': if wfile not in ctx2: # merge situation where file was added in other branch self.flabel += _(' (was added)') return oldname = wfile olddata = ctx2[wfile].data() else: return self.olddata = olddata if changeselect: diffopts = patch.difffeatureopts(repo.ui) diffopts.git = True m = scmutil.matchfiles(repo, [wfile]) fp = util.bytesio() copy = {} if oldname != wfile: copy[wfile] = oldname patches = patch.diff(repo, ctx.node(), None, match=m, opts=diffopts, copy=copy) for c in patches: fp.write(c) fp.seek(0) # feed diffs through parsepatch() for more fine grained # chunk selection filediffs = patch.parsepatch(fp) if filediffs and filediffs[0].hunks: self.changes = filediffs[0] else: self.diff = b'' return self.changes.excludecount = 0 values = [] lines = 0 for chunk in self.changes.hunks: buf = util.bytesio() chunk.write(buf) chunk.excluded = False val = buf.getvalue() values.append(val) chunk.lineno = lines chunk.linecount = len(val.splitlines()) lines += chunk.linecount self.diff = b''.join(values) else: diffopts = patch.diffopts(repo.ui) diffopts.git = False newdate = dateutil.datestr(ctx.date()) olddate = dateutil.datestr(ctx2.date()) if isbfile: olddata += b'\0' newdata += b'\0' difftext = hglib.unidifftext(olddata, olddate, newdata, newdate, oldname, wfile, opts=diffopts) if difftext: self.diff = (b'diff -r %s -r %s %s\n' % (ctx, ctx2, oldname) + difftext) else: self.diff = b'' def mergeStatus(self) -> Optional[Text]: return self._mstatus def diffText(self) -> Text: udiff = self._textToUnicode(self.diff or b'') if self.changes: return udiff return _trimdiffheader(udiff) def setChunkExcluded(self, chunk: patch.recordhunk, exclude: bool) -> None: # The `excluded` field is set in the hunk above when `self.changes` is # initialized, thus the assertion that it is in the changes list. # Therefore, the pytype warning about the missing field can be disabled. # Additionally, the `excludecount` field is added to `self.changes` in # the same area, so the missing field error can be disabled for it too. assert chunk in self.changes.hunks, repr(chunk) if chunk.excluded == exclude: # pytype: disable=attribute-error return if exclude: chunk.excluded = True self.changes.excludecount += 1 # pytype: disable=attribute-error else: chunk.excluded = False self.changes.excludecount -= 1 # pytype: disable=attribute-error class DirData(_AbstractFileData): def load(self, changeselect: bool = False, force: bool = False) -> None: self.error = None self.flabel = u'%s' % self.filePath() # TODO: enforce maxdiff before generating diff? ctx = self._ctx pctx = self._pctx try: m = ctx.match([b'path:%s' % self._wfile]) self.diff = b''.join(ctx.diff(pctx, m)) except (EnvironmentError, error.Abort) as e: self.error = hglib.exception_str(e) return if not force: self.error = _checkdifferror(self.diff, ctx.repo().maxdiff) if self.error: self.error += u'\n\n' + forcedisplaymsg def isDir(self) -> bool: return True class PatchFileData(_AbstractFileData): def load(self, changeselect: bool = False, force: bool = False) -> None: ctx = cast(patchctx.patchctx, self._ctx) wfile = self._wfile maxdiff = ctx.repo().maxdiff self.error = None self.flabel = u'%s' % self.filePath() try: self.diff = ctx.thgmqpatchdata(wfile) flags = ctx.flags(wfile) except EnvironmentError as e: self.error = hglib.exception_str(e) return if flags == b'x': self.elabel = _("exec mode has been " "set") elif flags == b'-': self.elabel = _("exec mode has been " "unset") elif flags == b'l': self.flabel += _(' (is a symlink)') # Do not show patches that are too big or may be binary if not force: self.error = _checkdifferror(self.diff, maxdiff) if self.error: self.error += u'\n\n' + forcedisplaymsg def rev(self) -> int: # avoid mixing integer and localstr return nullrev def baseRev(self) -> int: # patch has no comparison base return nullrev def diffText(self) -> Text: return _trimdiffheader(self._textToUnicode(self.diff or b'')) class PatchDirData(_AbstractFileData): def load(self, changeselect: bool = False, force: bool = False) -> None: self.error = None self.flabel = u'%s' % self.filePath() ctx = cast(patchctx.patchctx, self._ctx) try: self.diff = b''.join([ctx.thgmqpatchdata(f) for f in ctx.files() if f.startswith(self._wfile + b'/')]) except EnvironmentError as e: self.error = hglib.exception_str(e) return if not force: self.error = _checkdifferror(self.diff, ctx.repo().maxdiff) if self.error: self.error += u'\n\n' + forcedisplaymsg def rev(self) -> int: # avoid mixing integer and localstr return nullrev def baseRev(self) -> int: # patch has no comparison base return nullrev def isDir(self) -> bool: return True class SubrepoData(_AbstractFileData): def __init__( self, ctx: "HgContext", pctx: Optional["HgContext"], path: bytes, status: Optional[Text], rpath: Optional[bytes], subkind: Text, ) -> None: super(SubrepoData, self).__init__(ctx, pctx, path, status, rpath) self._subkind = subkind def createRebased( self: _TSubrepoData, pctx: Optional["HgContext"], ) -> _TSubrepoData: # new status should be unknown, but currently it is 'S' # TODO: replace 'S' by subrepo's status assert self._status == 'S', self._status return self.__class__(self._ctx, pctx, self._wfile, status=self._status, rpath=self._rpath, subkind=self._subkind) def load(self, changeselect: bool = False, force: bool = False) -> None: ctx = self._ctx ctx2 = self._pctx if ctx2 is None: ctx2 = ctx.p1() assert ctx2 is not None # help pytype wfile = self._wfile self.error = None self.flabel = u'%s' % self.filePath() try: def genSubrepoRevChangedDescription(subrelpath: bytes, sfrom: Text, sto: Text, repo: localrepo.localrepository) -> Tuple[List[Text], Text]: """Generate a subrepository revision change description""" out = [] def getLog(_ui, srepo, opts): if srepo is None: return _('changeset: %s') % hglib.tounicode(opts['rev'][0][:12]) _ui.pushbuffer() logOutput = b'' try: commands.log(_ui, srepo, **opts) logOutput = _ui.popbuffer() if not logOutput: return _('Initial revision') + u'\n' except error.ParseError as e: # Some mercurial versions have a bug that results in # saving a subrepo node id in the .hgsubstate file # which ends with a "+" character. If that is the # case, add a warning to the output, but try to # get the revision information anyway for n, rev in enumerate(opts['rev']): if rev.endswith(b'+'): logOutput += hglib.fromunicode( _('[WARNING] Invalid subrepo ' 'revision ID:\n\t%s\n\n') % hglib.tounicode(rev)) opts['rev'][n] = rev[:-1] commands.log(_ui, srepo, **opts) logOutput += _ui.popbuffer() return hglib.tounicode(logOutput) opts = {'date':None, 'rev':[hglib.fromunicode(sfrom)]} subabspath = os.path.join(repo.root, subrelpath) missingsub = srepo is None or not os.path.isdir(subabspath) sfromlog = '' def isinitialrevision(rev): return all([el == '0' for el in rev]) if isinitialrevision(sfrom): sfrom = '' if isinitialrevision(sto): sto = '' header = '' if not sfrom and not sto: sstatedesc = 'new' out.append(_('Subrepo created and set to initial ' 'revision.') + u'\n\n') return out, sstatedesc elif not sfrom: sstatedesc = 'new' header = _('Subrepo initialized to revision:') + u'\n\n' elif not sto: sstatedesc = 'removed' out.append(_('Subrepo removed from repository.') + u'\n\n') out.append(_('Previously the subrepository was ' 'at the following revision:') + u'\n\n') subinfo = getLog(_ui, srepo, {'rev': [hglib.fromunicode(sfrom)]}) slog = hglib.tounicode(subinfo) out.append(slog) return out, sstatedesc elif sfrom == sto: sstatedesc = 'unchanged' header = _('Subrepo was not changed.') slog = _('changeset: %s') % sfrom[:12] + u'\n' if missingsub: header = _('[WARNING] Missing subrepo. ' 'Update to this revision to clone it.') \ + u'\n\n' + header else: try: slog = getLog(_ui, srepo, opts) except error.RepoError: header = _('[WARNING] Incomplete subrepo. ' 'Update to this revision to pull it.') \ + u'\n\n' + header out.append(header + u' ') out.append(_('Subrepo state is:') + u'\n\n' + slog) return out, sstatedesc else: sstatedesc = 'changed' header = _('Revision has changed to:') + u'\n\n' sfromlog = _('changeset: %s') % sfrom[:12] + u'\n\n' if not missingsub: try: sfromlog = getLog(_ui, srepo, opts) except error.RepoError: sfromlog = _('changeset: %s ' '(not found on subrepository)') \ % sfrom[:12] + u'\n\n' sfromlog = _('From:') + u'\n' + sfromlog stolog = '' if missingsub: header = _( '[WARNING] Missing changed subrepository. ' 'Update to this revision to clone it.') \ + u'\n\n' + header stolog = _('changeset: %s') % sto[:12] + '\n\n' sfromlog += _( 'Subrepository not found in the working ' 'directory.') + '\n' else: try: opts['rev'] = [hglib.fromunicode(sto)] stolog = getLog(_ui, srepo, opts) except error.RepoError: header = _( '[WARNING] Incomplete changed subrepository. ' 'Update to this revision to pull it.') \ + u'\n\n' + header stolog = _('changeset: %s ' '(not found on subrepository)') \ % sto[:12] + u'\n\n' out.append(header) out.append(stolog) if sfromlog: out.append(sfromlog) return out, sstatedesc srev = hglib.tounicode( ctx.substate.get(wfile, hglib.nullsubrepostate)[1] ) srepo = None subabspath = os.path.join(ctx.repo().root, wfile) sactual = '' if os.path.isdir(subabspath): try: sub = ctx.sub(wfile) if isinstance(sub, subrepo.hgsubrepo): srepo = sub._repo if srepo is not None: sactual = hglib.tounicode(srepo[b'.'].hex()) else: self.error = _('Not a Mercurial subrepo, not ' 'previewable') return except error.Abort as e: self.error = (_('Error previewing subrepo: %s') % hglib.exception_str(e)) + u'\n\n' self.error += _('Subrepo may be damaged or ' 'inaccessible.') return except KeyError as e: # Missing, incomplete or removed subrepo. # Will be handled later as such below pass out = [] # TODO: should be copied from the baseui _ui = hglib.loadui() _ui.setconfig(b'ui', b'paginate', b'off', b'subrepodata') if srepo is None or ctx.rev() is not None: data = [] else: _ui.pushbuffer() commands.status(_ui, srepo, modified=True, added=True, removed=True, deleted=True) data = _ui.popbuffer() if data: out.append(_('The subrepository is dirty.') + u' ' + _('File Status:') + u'\n') out.append(hglib.tounicode(data)) out.append(u'\n') sstatedesc = 'changed' if ctx.rev() is not None: sparent = hglib.tounicode( ctx2.substate.get(wfile, hglib.nullsubrepostate)[1] ) subrepochange, sstatedesc = \ genSubrepoRevChangedDescription(wfile, sparent, srev, ctx.repo()) out += subrepochange else: sstatedesc = 'dirty' if srev != sactual: subrepochange, sstatedesc = \ genSubrepoRevChangedDescription(wfile, srev, sactual, ctx.repo()) out += subrepochange if data: sstatedesc += ' and dirty' elif srev and not sactual: sstatedesc = 'removed' self.ucontents = u''.join(out).strip() lbl = { 'changed': _('(is a changed sub-repository)'), 'unchanged': _('(is an unchanged sub-repository)'), 'dirty': _('(is a dirty sub-repository)'), 'new': _('(is a new sub-repository)'), 'removed': _('(is a removed sub-repository)'), 'changed and dirty': _('(is a changed and dirty ' 'sub-repository)'), 'new and dirty': _('(is a new and dirty sub-repository)'), 'removed and dirty': _('(is a removed sub-repository)') }[sstatedesc] self.flabel += ' ' + lbl + '' if sactual: lbl = ' %s' % _('open...') self.flabel += lbl % hglib.tounicode(srepo.root) except (EnvironmentError, error.RepoError, error.Abort) as e: self.error = _('Error previewing subrepo: %s') % \ hglib.exception_str(e) def isDir(self) -> bool: return True def subrepoType(self) -> Text: return self._subkind def createFileData( ctx: "ThgContext", ctx2: Optional["HgContext"], wfile: bytes, status: Optional[Text] = None, rpath: Optional[bytes] = None, mstatus: Optional[Text] = None, ) -> Union[FileData, PatchFileData]: if isinstance(ctx, patchctx.patchctx): if mstatus: raise ValueError('invalid merge status for patch: %r' % mstatus) # `patchctx.patchctx` is ducktype compatible with changectx/workingctx # as far as the abstract class methods are concerned, so ignore the type # mismatch in order to avoid applying patchctx to the other data types # where it never applies. # pytype: disable=wrong-arg-types return PatchFileData(ctx, ctx2, wfile, status, rpath) # pytype: enable=wrong-arg-types return FileData(ctx, ctx2, wfile, status, rpath, mstatus) def createDirData( ctx: "ThgContext", pctx: Optional["HgContext"], path: bytes, rpath: Optional[bytes] = None, ) -> Union[DirData, PatchDirData]: if isinstance(ctx, patchctx.patchctx): # `patchctx.patchctx` is ducktype compatible with changectx/workingctx # as far as the abstract class methods are concerned, so ignore the type # mismatch in order to avoid applying patchctx to the other data types # where it never applies. # pytype: disable=wrong-arg-types return PatchDirData(ctx, pctx, path, rpath=rpath) # pytype: enable=wrong-arg-types return DirData(ctx, pctx, path, rpath=rpath) def createSubrepoData( ctx: "HgContext", pctx: Optional["HgContext"], path: bytes, status: Optional[Text] = None, rpath: Optional[bytes] = None, subkind: Optional[Text] = None, ) -> SubrepoData: if not subkind: subkind = pycompat.sysstr( ctx.substate.get(path, hglib.nullsubrepostate)[2] ) # TODO: replace 'S' by subrepo's status return SubrepoData(ctx, pctx, path, 'S', rpath, subkind) def createNullData(repo: "localrepo.localrepository") -> FileData: ctx = repo[nullrev] fd = FileData(ctx, ctx.p1(), b'', 'C') return fd ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033083.0 tortoisehg-6.9/tortoisehg/hgqt/filedialogs.py0000644000000000000000000007735114742202573020326 0ustar00rootroot# Copyright (c) 2003-2010 LOGILAB S.A. (Paris, FRANCE). # http://www.logilab.fr/ -- mailto:contact@logilab.fr # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along with # this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. """ Qt4 dialogs to display hg revisions of a file """ from __future__ import annotations import difflib from .qsci import ( QsciScintilla, ) from .qtcore import ( QEvent, QItemSelectionModel, QPoint, QSettings, QTimer, QUrl, Qt, pyqtSlot, ) from .qtgui import ( QAbstractItemView, QAction, QColor, QDesktopServices, QFrame, QKeySequence, QHBoxLayout, QMainWindow, QMenu, QPainter, QPen, QSplitter, QToolBar, QVBoxLayout, QWidget, ) from mercurial import ( pycompat, ) from ..util import hglib from ..util.i18n import _ from . import ( blockmatcher, filectxactions, fileview, lexers, qtlib, repomodel, repoview, revpanel, ) from .qscilib import Scintilla if hglib.TYPE_CHECKING: from typing import ( Dict, List, Text, ) sides = ('left', 'right') otherside = {'left': 'right', 'right': 'left'} _MARKERPLUSLINE = 31 _MARKERMINUSLINE = 30 _MARKERPLUSUNDERLINE = 29 _MARKERMINUSUNDERLINE = 28 _colormap = { '+': QColor(0xA0, 0xFF, 0xB0), '-': QColor(0xFF, 0xA0, 0xA0), 'x': QColor(0xA0, 0xA0, 0xFF) } def _setupFileMenu(menu, fileactions): for name in ['visualDiff', 'visualDiffToLocal', None, 'visualDiffFile', 'visualDiffFileToLocal', None, 'editFile', 'saveFile', 'editLocalFile', 'revertFile']: if name: menu.addAction(fileactions.action(name)) else: menu.addSeparator() def _fileDataListForSelection(model, selmodel): # since FileRevModel is a model for single file, this creates single # FileData between two revisions instead of a list for each selection indexes = sorted(selmodel.selectedRows()) if not indexes: return [] if len(indexes) == 1: fd = model.fileData(indexes[0]) else: fd = model.fileData(indexes[0], indexes[-1]) return [fd] class _FileDiffScintilla(Scintilla): def paintEvent(self, event): super(_FileDiffScintilla, self).paintEvent(event) viewport = self.viewport() start = self.firstVisibleLine() scale = self.textHeight(0) # Currently all lines are the same height n = min(viewport.height() // scale + 1, self.lines() - start) lines = [] for i in pycompat.xrange(0, n): m = self.markersAtLine(start + i) if m & (1 << _MARKERPLUSLINE): lines.append((i, _colormap['+'], )) if m & (1 << _MARKERPLUSUNDERLINE): lines.append((i + 1, _colormap['+'], )) if m & (1 << _MARKERMINUSLINE): lines.append((i, _colormap['-'], )) if m & (1 << _MARKERMINUSUNDERLINE): lines.append((i + 1, _colormap['-'], )) p = QPainter(viewport) p.setRenderHint(QPainter.RenderHint.Antialiasing) for (line, color) in lines: p.setPen(QPen(color, 3.0)) y = line * scale p.drawLine(0, y, viewport.width(), y) # Minimal wrapper to make RepoAgent always returns unfiltered repo. Because # filelog_grapher can't take account of hidden changesets, all child widgets # of file dialog need to take unfiltered repo instance. # # TODO: this should be removed if filelog_grapher (and FileRevModel) are # superseded by revset-based implementation. class _UnfilteredRepoAgentProxy(object): def __init__(self, repoagent): self._repoagent = repoagent def rawRepo(self): repo = self._repoagent.rawRepo() return repo.unfiltered() def runCommand(self, cmdline, uihandler=None, overlay=True): cmdline = ['--hidden'] + cmdline return self._repoagent.runCommand(cmdline, uihandler, overlay) def runCommandSequence(self, cmdlines, uihandler=None, overlay=True): cmdlines = [['--hidden'] + l for l in cmdlines] return self._repoagent.runCommandSequence(cmdlines, uihandler, overlay) def __getattr__(self, name): return getattr(self._repoagent, name) class _AbstractFileDialog(QMainWindow): def __init__(self, repoagent, filename): QMainWindow.__init__(self) self._repoagent = _UnfilteredRepoAgentProxy(repoagent) self.setupUi() self._show_rev = None assert not isinstance(filename, str), repr(filename) self.filename = filename self.setWindowTitle(_('Hg file log viewer [%s] - %s') % (repoagent.displayName(), hglib.tounicode(filename))) self.setWindowIcon(qtlib.geticon('hg-log')) self.setIconSize(qtlib.toolBarIconSize()) self.createActions() self.setupToolbars() self.setupViews() self.setupModels() @property def repo(self): return self._repoagent.rawRepo() def reload(self): 'Reload toolbar action handler' self.repo.thginvalidate() self.setupModels() def onRevisionActivated(self, rev): """ Callback called when a revision is double-clicked in the revisions table """ # TODO: implement by using signal-slot if possible from tortoisehg.hgqt import run run.qtrun.showRepoInWorkbench(hglib.tounicode(self.repo.root), rev) class FileLogDialog(_AbstractFileDialog): """ A dialog showing a revision graph for a file. """ def __init__(self, repoagent, filename): super(FileLogDialog, self).__init__(repoagent, filename) self._readSettings() self.revdetails = None def closeEvent(self, event): self._writeSettings() super(FileLogDialog, self).closeEvent(event) def _readSettings(self): s = QSettings() s.beginGroup('filelog') try: self.textView.loadSettings(s, 'fileview') self.restoreGeometry(qtlib.readByteArray(s, 'geom')) self.splitter.restoreState(qtlib.readByteArray(s, 'splitter')) self.revpanel.set_expanded(qtlib.readBool(s, 'revpanel.expanded')) finally: s.endGroup() def _writeSettings(self): s = QSettings() s.beginGroup('filelog') try: self.textView.saveSettings(s, 'fileview') s.setValue('revpanel.expanded', self.revpanel.is_expanded()) s.setValue('geom', self.saveGeometry()) s.setValue('splitter', self.splitter.saveState()) finally: s.endGroup() self.repoview.saveSettings() def setupUi(self): self.editToolbar = QToolBar(self) self.editToolbar.setContextMenuPolicy(Qt.ContextMenuPolicy.PreventContextMenu) self.addToolBar(Qt.ToolBarArea(Qt.ToolBarArea.TopToolBarArea), self.editToolbar) self.actionClose = QAction(self) self.actionClose.setShortcuts(QKeySequence.StandardKey.Close) self.actionReload = QAction(self) self.actionReload.setShortcuts(QKeySequence.StandardKey.Refresh) self.editToolbar.addAction(self.actionReload) self.addAction(self.actionClose) self.splitter = QSplitter(Qt.Orientation.Vertical) self.setCentralWidget(self.splitter) cs = ('fileLogDialog', _('File History Log Columns')) self.repoview = repoview.HgRepoView(self._repoagent, cs[0], cs, self.splitter) self.contentframe = QFrame(self.splitter) vbox = QVBoxLayout() vbox.setSpacing(0) vbox.setContentsMargins(0, 0, 0, 0) self.contentframe.setLayout(vbox) self.revpanel = revpanel.RevPanelWidget(self.repo) self.revpanel.linkActivated.connect(self.onLinkActivated) vbox.addWidget(self.revpanel, 0) self.textView = fileview.HgFileView(self._repoagent, self) self.textView.revisionSelected.connect(self.goto) vbox.addWidget(self.textView, 1) def setupViews(self): self.textView.showMessage.connect(self.statusBar().showMessage) def setupToolbars(self): self.editToolbar.addSeparator() self.editToolbar.addAction(self.actionBack) self.editToolbar.addAction(self.actionForward) def setupModels(self): self.filerevmodel = repomodel.FileRevModel( self._repoagent, self.filename, parent=self) self.repoview.setModel(self.filerevmodel) self.repoview.revisionSelected.connect(self.onRevisionSelected) self.repoview.revisionActivated.connect(self.onRevisionActivated) self.repoview.menuRequested.connect(self.viewMenuRequest) selmodel = self.repoview.selectionModel() selmodel.selectionChanged.connect(self._onRevisionSelectionChanged) self.filerevmodel.showMessage.connect(self.statusBar().showMessage) QTimer.singleShot(0, self._updateRepoViewForModel) def createActions(self): self.actionClose.triggered.connect(self.close) self.actionReload.triggered.connect(self.reload) self.actionReload.setIcon(qtlib.geticon('view-refresh')) self.actionBack = QAction(_('Back'), self, enabled=False, shortcut=QKeySequence.StandardKey.Back, icon=qtlib.geticon('go-previous')) self.actionForward = QAction(_('Forward'), self, enabled=False, shortcut=QKeySequence.StandardKey.Forward, icon=qtlib.geticon('go-next')) self.repoview.revisionSelected.connect(self._updateHistoryActions) self.actionBack.triggered.connect(self.repoview.back) self.actionForward.triggered.connect(self.repoview.forward) # TODO: remove this when the unfiltered proxy hack goes away # pytype: disable=wrong-arg-types self._fileactions = filectxactions.FilectxActions(self._repoagent, self) # pytype: enable=wrong-arg-types self.addActions(self._fileactions.actions()) def _updateFileActions(self): selmodel = self.repoview.selectionModel() selfds = _fileDataListForSelection(self.filerevmodel, selmodel) self._fileactions.setFileDataList(selfds) if len(selmodel.selectedRows()) > 1: texts = {'visualDiff': _('Diff Selected &Changesets'), 'visualDiffFile': _('&Diff Selected File Revisions')} else: texts = {'visualDiff': _('Diff &Changeset to Parent'), 'visualDiffFile': _('&Diff to Parent')} for n, t in texts.items(): self._fileactions.action(n).setText(t) @pyqtSlot() def _updateHistoryActions(self): self.actionBack.setEnabled(self.repoview.canGoBack()) self.actionForward.setEnabled(self.repoview.canGoForward()) @pyqtSlot() def _updateRepoViewForModel(self): self.repoview.resizeColumns() if self._show_rev is not None: index = self.filerevmodel.indexLinkedFromRev(self._show_rev) self._show_rev = None elif self.repoview.currentIndex().isValid(): return # already set by goto() else: index = self.filerevmodel.index(0,0) self.repoview.setCurrentIndex(index) @pyqtSlot(QPoint, object) def viewMenuRequest(self, point, selection): 'User requested a context menu in repo view widget' if not selection or len(selection) > 2: return menu = QMenu(self) if len(selection) == 2: for name in ['visualDiff', 'visualDiffFile']: menu.addAction(self._fileactions.action(name)) else: _setupFileMenu(menu, self._fileactions) menu.addSeparator() a = menu.addAction(_('Show Revision &Details')) a.setIcon(qtlib.geticon('hg-log')) a.triggered.connect(self.onShowRevisionDetails) menu.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose) menu.popup(point) def onShowRevisionDetails(self): rev = self.repoview.selectedRevisions()[0] if not self.revdetails: from tortoisehg.hgqt.revdetails import RevDetailsDialog self.revdetails = RevDetailsDialog(self._repoagent, rev=rev) else: self.revdetails.setRev(rev) self.revdetails.show() self.revdetails.raise_() @pyqtSlot(str) def onLinkActivated(self, link: str): if ':' in link: scheme, param = link.split(':', 1) if scheme == 'cset': rev = hglib.revsymbol(self.repo, hglib.fromunicode(param)).rev() return self.goto(rev) QDesktopServices.openUrl(QUrl(link)) def onRevisionSelected(self, rev): pos = self.textView.verticalScrollBar().value() fd = self.filerevmodel.fileData(self.repoview.currentIndex()) self.textView.display(fd) self.textView.verticalScrollBar().setValue(pos) self.revpanel.set_revision(rev) self.revpanel.updateItems(repo = self.repo) @pyqtSlot() def _onRevisionSelectionChanged(self): self._checkValidSelection() self._updateFileActions() # It does not make sense to select more than two revisions at a time. # Rather than enforcing a max selection size we simply let the user # know when it has selected too many revisions by using the status bar def _checkValidSelection(self): selection = self.repoview.selectedRevisions() if len(selection) > 2: msg = _('Too many rows selected for menu') else: msg = '' self.textView.showMessage.emit(msg) def goto(self, rev): index = self.filerevmodel.indexLinkedFromRev(rev) if index.isValid(): self.repoview.setCurrentIndex(index) else: self._show_rev = rev def showLine(self, line): self.textView.showLine(line - 1) # fileview should do -1 instead? def setFileViewMode(self, mode): self.textView.setMode(mode) def setSearchPattern(self, text): self.textView.searchbar.setPattern(text) def setSearchCaseInsensitive(self, ignorecase): self.textView.searchbar.setCaseInsensitive(ignorecase) class FileDiffDialog(_AbstractFileDialog): """ Qt4 dialog to display diffs between different mercurial revisions of a file. """ filedata: Dict[Text, List[str]] def __init__(self, repoagent, filename): super(FileDiffDialog, self).__init__(repoagent, filename) self._readSettings() def closeEvent(self, event): self._writeSettings() super(FileDiffDialog, self).closeEvent(event) def _readSettings(self): s = QSettings() s.beginGroup('filediff') try: self.restoreGeometry(qtlib.readByteArray(s, 'geom')) self.splitter.restoreState(qtlib.readByteArray(s, 'splitter')) finally: s.endGroup() def _writeSettings(self): s = QSettings() s.beginGroup('filediff') try: s.setValue('geom', self.saveGeometry()) s.setValue('splitter', self.splitter.saveState()) finally: s.endGroup() for w in self._repoViews: w.saveSettings() def setupUi(self): self.editToolbar = QToolBar(self) self.editToolbar.setContextMenuPolicy(Qt.ContextMenuPolicy.PreventContextMenu) self.addToolBar(Qt.ToolBarArea(Qt.ToolBarArea.TopToolBarArea), self.editToolbar) self.actionClose = QAction(self) self.actionClose.setShortcuts(QKeySequence.StandardKey.Close) self.actionReload = QAction(self) self.actionReload.setShortcuts(QKeySequence.StandardKey.Refresh) self.editToolbar.addAction(self.actionReload) self.addAction(self.actionClose) def layouttowidget(layout): w = QWidget() w.setLayout(layout) return w self.splitter = QSplitter(Qt.Orientation.Vertical) self.setCentralWidget(self.splitter) self.horizontalLayout = QHBoxLayout() self._repoViews = [] cs = ('fileDiffDialogLeft', _('File Differences Log Columns')) for cfgname in [cs[0], 'fileDiffDialogRight']: w = repoview.HgRepoView(self._repoagent, cfgname, cs, self) w.setSelectionMode(QAbstractItemView.SelectionMode.SingleSelection) self.horizontalLayout.addWidget(w) self._repoViews.append(w) self.frame = QFrame() self.splitter.addWidget(layouttowidget(self.horizontalLayout)) self.splitter.addWidget(self.frame) def setupViews(self): # viewers are Scintilla editors self.viewers = {} # block are diff-block displayers self.block = {} self.diffblock = blockmatcher.BlockMatch(self.frame) lay = QHBoxLayout(self.frame) lay.setSpacing(0) lay.setContentsMargins(0, 0, 0, 0) try: with open(self.repo.wjoin(self.filename), "rb") as fp: contents = fp.read(1024) lexer = lexers.getlexer(self.repo.ui, hglib.tounicode(self.filename), contents, self) except Exception: lexer = None for side, idx in (('left', 0), ('right', 3)): sci = _FileDiffScintilla(self.frame) sci.installEventFilter(self) sci.verticalScrollBar().setFocusPolicy(Qt.FocusPolicy.StrongFocus) sci.setFocusProxy(sci.verticalScrollBar()) sci.verticalScrollBar().installEventFilter(self) sci.setFrameShape(QFrame.Shape.NoFrame) sci.setMarginLineNumbers(1, True) sci.SendScintilla(sci.SCI_SETSELEOLFILLED, True) font = qtlib.getfont('fontdiff').font() sci.setFont(font) sci.setLexer(lexer) sci.setFont(font) sci.setReadOnly(True) sci.setUtf8(True) lay.addWidget(sci) # hide margin 0 (markers) sci.SendScintilla(sci.SCI_SETMARGINTYPEN, 0, 0) sci.SendScintilla(sci.SCI_SETMARGINWIDTHN, 0, 0) # setup margin 1 for line numbers only sci.SendScintilla(sci.SCI_SETMARGINTYPEN, 1, 1) sci.SendScintilla(sci.SCI_SETMARGINWIDTHN, 1, 20) sci.SendScintilla(sci.SCI_SETMARGINMASKN, 1, 0) # define markers for colorize zones of diff self.markerplus = sci.markerDefine(QsciScintilla.MarkerSymbol.Background) sci.setMarkerBackgroundColor(_colormap['+'], self.markerplus) self.markerminus = sci.markerDefine(QsciScintilla.MarkerSymbol.Background) sci.setMarkerBackgroundColor(_colormap['-'], self.markerminus) self.markertriangle = sci.markerDefine(QsciScintilla.MarkerSymbol.Background) sci.setMarkerBackgroundColor(_colormap['x'], self.markertriangle) self.markerplusline = sci.markerDefine(QsciScintilla.MarkerSymbol.Invisible, _MARKERPLUSLINE) self.markerminusline = sci.markerDefine(QsciScintilla.MarkerSymbol.Invisible, _MARKERMINUSLINE) self.markerplusunderline = sci.markerDefine(QsciScintilla.MarkerSymbol.Invisible, _MARKERPLUSUNDERLINE) self.markerminusunderline = sci.markerDefine(QsciScintilla.MarkerSymbol.Invisible, _MARKERMINUSUNDERLINE) self.viewers[side] = sci blk = blockmatcher.BlockList(self.frame) blk.linkScrollBar(sci.verticalScrollBar()) self.diffblock.linkScrollBar(sci.verticalScrollBar(), side) lay.insertWidget(idx, blk) self.block[side] = blk lay.insertWidget(2, self.diffblock) for table in self._repoViews: table.setTabKeyNavigation(False) table.installEventFilter(self) table.columnsVisibilityChanged.connect(self._syncColumnsVisibility) table.revisionSelected.connect(self.onRevisionSelected) table.revisionActivated.connect(self.onRevisionActivated) l, r = (self.viewers[k].verticalScrollBar() for k in sides) l.valueChanged.connect(self.sbar_changed_left) r.valueChanged.connect(self.sbar_changed_right) l, r = (self.viewers[k].horizontalScrollBar() for k in sides) l.valueChanged.connect(r.setValue) r.valueChanged.connect(l.setValue) self.setTabOrder(table, self.viewers['left']) self.setTabOrder(self.viewers['left'], self.viewers['right']) # timer used to merge requests of syncPageStep on ResizeEvent self._delayedSyncPageStep = QTimer(self, interval=0, singleShot=True) self._delayedSyncPageStep.timeout.connect(self.diffblock.syncPageStep) # timer used to fill viewers with diff block markers during GUI idle time self.timer = QTimer() self.timer.setSingleShot(False) self.timer.timeout.connect(self.idle_fill_files) def setupModels(self): self.filedata = {'left': [], 'right': []} self._invbarchanged = False self.filerevmodel = repomodel.FileRevModel( self._repoagent, self.filename, parent=self) for w in self._repoViews: w.setModel(self.filerevmodel) w.menuRequested.connect(self.viewMenuRequest) selmodel = w.selectionModel() selmodel.selectionChanged.connect(self._onRevisionSelectionChanged) QTimer.singleShot(0, self._updateRepoViewForModel) def createActions(self): self.actionClose.triggered.connect(self.close) self.actionReload.triggered.connect(self.reload) self.actionReload.setIcon(qtlib.geticon('view-refresh')) self.actionNextDiff = QAction(qtlib.geticon('go-down'), _('Next diff'), self) self.actionNextDiff.setShortcut('Alt+Down') self.actionNextDiff.triggered.connect(self.nextDiff) self.actionPrevDiff = QAction(qtlib.geticon('go-up'), _('Previous diff'), self) self.actionPrevDiff.setShortcut('Alt+Up') self.actionPrevDiff.triggered.connect(self.prevDiff) self.actionNextDiff.setEnabled(False) self.actionPrevDiff.setEnabled(False) # TODO: remove this when the unfiltered proxy hack goes away # pytype: disable=wrong-arg-types self._fileactions = filectxactions.FilectxActions(self._repoagent, self) # pytype: enable=wrong-arg-types self.addActions(self._fileactions.actions()) def _updateFileActionsForSelection(self, selmodel): selfds = _fileDataListForSelection(self.filerevmodel, selmodel) self._fileactions.setFileDataList(selfds) def setupToolbars(self): self.editToolbar.addSeparator() self.editToolbar.addAction(self.actionNextDiff) self.editToolbar.addAction(self.actionPrevDiff) @pyqtSlot() def _updateRepoViewForModel(self): for w in self._repoViews: w.resizeColumns() if self._show_rev is not None: self.goto(self._show_rev) self._show_rev = None elif self._repoViews[0].currentIndex().isValid(): return # already set by goto() elif len(self.filerevmodel.graph): self.goto(self.filerevmodel.graph[0].rev) def eventFilter(self, watched, event): if watched in self.viewers.values(): # copy page steps to diffblock _after_ viewers are resized; resize # events will be posted in arbitrary order. if event.type() == QEvent.Type.Resize: self._delayedSyncPageStep.start() return False elif watched in self._repoViews: if event.type() == QEvent.Type.FocusIn: self._updateFileActionsForSelection(watched.selectionModel()) return False else: return super(FileDiffDialog, self).eventFilter(watched, event) def onRevisionSelected(self, rev): if rev is None or rev not in self.filerevmodel.graph.nodesdict: return if self.sender() is self._repoViews[1]: side = 'right' else: side = 'left' path = self.filerevmodel.graph.nodesdict[rev].extra[0] fc = self.repo[rev].filectx(path) data = hglib.tounicode(fc.data()) self.filedata[side] = data.splitlines() self.update_diff(keeppos=otherside[side]) @pyqtSlot() def _onRevisionSelectionChanged(self): assert isinstance(self.sender(), QItemSelectionModel) self._updateFileActionsForSelection(self.sender()) def goto(self, rev): index = self.filerevmodel.indexLinkedFromRev(rev) if index.isValid(): if index.row() == 0: index = self.filerevmodel.index(1, 0) self._repoViews[0].setCurrentIndex(index) index = self.filerevmodel.index(0, 0) self._repoViews[1].setCurrentIndex(index) else: self._show_rev = rev def setDiffNavActions(self, pos=0): hasdiff = (self.diffblock.nDiffs() > 0) self.actionNextDiff.setEnabled(hasdiff and pos != 1) self.actionPrevDiff.setEnabled(hasdiff and pos != -1) def nextDiff(self): self.setDiffNavActions(self.diffblock.nextDiff()) def prevDiff(self): self.setDiffNavActions(self.diffblock.prevDiff()) def update_page_steps(self, keeppos=None): for side in sides: self.block[side].syncPageStep() self.diffblock.syncPageStep() if keeppos: side, pos = keeppos self.viewers[side].verticalScrollBar().setValue(pos) def idle_fill_files(self): # we make a burst of diff-lines computed at once, but we # disable GUI updates for efficiency reasons, then only # refresh GUI at the end of the burst for side in sides: self.viewers[side].setUpdatesEnabled(False) self.block[side].setUpdatesEnabled(False) self.diffblock.setUpdatesEnabled(False) for n in range(30): # burst pool if self._diff is None or not self._diff.get_opcodes(): self._diff = None self.timer.stop() self.setDiffNavActions(-1) break tag, alo, ahi, blo, bhi = self._diff.get_opcodes().pop(0) w = self.viewers['left'] cposl = w.SendScintilla(w.SCI_GETENDSTYLED) w = self.viewers['right'] cposr = w.SendScintilla(w.SCI_GETENDSTYLED) if tag == 'replace': self.block['left'].addBlock('x', alo, ahi) self.block['right'].addBlock('x', blo, bhi) self.diffblock.addBlock('x', alo, ahi, blo, bhi) w = self.viewers['left'] for i in range(alo, ahi): w.markerAdd(i, self.markertriangle) w = self.viewers['right'] for i in range(blo, bhi): w.markerAdd(i, self.markertriangle) elif tag == 'delete': self.block['left'].addBlock('-', alo, ahi) self.diffblock.addBlock('-', alo, ahi, blo, bhi) w = self.viewers['left'] for i in range(alo, ahi): w.markerAdd(i, self.markerminus) w = self.viewers['right'] if blo < w.lines(): w.markerAdd(blo, self.markerminusline) else: w.markerAdd(blo - 1, self.markerminusunderline) elif tag == 'insert': self.block['right'].addBlock('+', blo, bhi) self.diffblock.addBlock('+', alo, ahi, blo, bhi) w = self.viewers['left'] if alo < w.lines(): w.markerAdd(alo, self.markerplusline) else: w.markerAdd(alo - 1, self.markerplusunderline) w = self.viewers['right'] for i in range(blo, bhi): w.markerAdd(i, self.markerplus) elif tag == 'equal': pass else: raise ValueError('unknown tag %r' % (tag,)) # ok, let's enable GUI refresh for code viewers and diff-block displayers for side in sides: self.viewers[side].setUpdatesEnabled(True) self.block[side].setUpdatesEnabled(True) self.diffblock.setUpdatesEnabled(True) def update_diff(self, keeppos=None): """ Recompute the diff, display files and starts the timer responsible for filling diff markers """ if keeppos: pos = self.viewers[keeppos].verticalScrollBar().value() keeppos = (keeppos, pos) for side in sides: self.viewers[side].clear() self.block[side].clear() self.diffblock.clear() if None not in self.filedata.values(): if self.timer.isActive(): self.timer.stop() for side in sides: self.viewers[side].setMarginWidth(1, "00%s" % len(self.filedata[side])) self._diff = difflib.SequenceMatcher(None, self.filedata['left'], self.filedata['right']) blocks = self._diff.get_opcodes()[:] self._diffmatch = {'left': [x[1:3] for x in blocks], 'right': [x[3:5] for x in blocks]} for side in sides: self.viewers[side].setText(u'\n'.join(self.filedata[side])) self.update_page_steps(keeppos) self.timer.start() @pyqtSlot() def _syncColumnsVisibility(self): src = self.sender() dest = dict(zip(self._repoViews, reversed(self._repoViews)))[src] dest.setVisibleColumns(src.visibleColumns()) @pyqtSlot(int) def sbar_changed_left(self, value): self.sbar_changed(value, 'left') @pyqtSlot(int) def sbar_changed_right(self, value): self.sbar_changed(value, 'right') def sbar_changed(self, value, side): """ Callback called when a scrollbar of a file viewer is changed, so we can update the position of the other file viewer. """ if self._invbarchanged or not hasattr(self, '_diffmatch'): # prevent loops in changes (left -> right -> left ...) return self._invbarchanged = True oside = otherside[side] for i, (lo, hi) in enumerate(self._diffmatch[side]): if lo <= value < hi: break dv = value - lo blo, bhi = self._diffmatch[oside][i] vbar = self.viewers[oside].verticalScrollBar() if dv < (bhi - blo): bvalue = blo + dv else: bvalue = bhi vbar.setValue(bvalue) self._invbarchanged = False @pyqtSlot(QPoint, object) def viewMenuRequest(self, point, selection): 'User requested a context menu in repo view widget' if not selection: return menu = QMenu(self) _setupFileMenu(menu, self._fileactions) menu.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose) menu.popup(point) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/fileencoding.py0000644000000000000000000001605514672254332020466 0ustar00rootroot# fileencoding.py - utility to handle encoding of file contents in Qt # # Copyright 2014 Yuya Nishihara # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import codecs from typing import ( Dict, List, Optional, Text, Tuple, ) from .qtgui import ( QActionGroup, ) from mercurial import ( encoding, pycompat, ) from ..util.i18n import _ if pycompat.TYPE_CHECKING: from mercurial import ( ui as uimod, ) from .qtcore import ( QObject, ) from .qtgui import ( QAction, QMenu, ) # List of encoding names which are likely used, based on the Chromium # source and the Python documentation # . # # - no UTF-16 or -32, which is binary in Mercurial # - no ASCII because it can be represented in other encodings _ENCODINGNAMES: List[Tuple[Text, Text]] = [ ('utf-8', _('Unicode')), ('iso8859-1', _('Western Europe')), ('cp1252', _('Western Europe')), ('gbk', _('Unified Chinese')), ('big5', _('Traditional Chinese')), ('big5hkscs', _('Traditional Chinese')), ('euc_kr', _('Korean')), ('cp932', _('Japanese')), ('euc_jp', _('Japanese')), ('iso2022_jp', _('Japanese')), ('cp874', _('Thai')), ('iso8859-15', _('Western Europe')), ('mac-roman', _('Western Europe')), ('iso8859-2', _('Central and Eastern Europe')), ('cp1250', _('Central and Eastern Europe')), ('iso8859-5', _('Cyrillic')), ('cp1251', _('Cyrillic')), ('koi8-r', _('Russian')), ('koi8-u', _('Ukrainian')), ('iso8859-7', _('Greek')), ('cp1253', _('Greek')), ('cp1254', _('Turkish')), ('cp1256', _('Arabic')), ('iso8859-6', _('Arabic')), ('cp1255', _('Hebrew')), ('iso8859-8', _('Hebrew')), ('cp1258', _('Vietnamese')), ('iso8859-4', _('Baltic')), ('iso8859-13', _('Baltic')), ('cp1257', _('Baltic')), ('iso8859-3', _('Southern Europe')), ('iso8859-10', _('Nordic')), ('iso8859-14', _('Celtic')), ('iso8859-16', _('South-Eastern Europe')), ] # map to wider encoding included in the table _SUBSTMAP: Dict[Text, Text] = { 'ascii': 'utf-8', 'shift_jis': 'cp932', } # i18n: comma-separated list of common encoding names in your locale, e.g. # "utf-8,shift_jis,euc_jp,iso2022_jp" for "ja" locale. # # for the best guess, put structured encodings like "utf-8" in front, e.g. # "utf-8,iso8859-1" instead of "iso8859-1,utf-8" because "iso8859-1" can # decode arbitrary byte sequence and never fall back. # # pick from the following encodings: # utf-8, iso8859-1, cp1252, gbk, big5, big5hkscs, euc_kr, cp932, euc_jp, # iso2022_jp, cp874, iso8859-15, mac-roman, iso8859-2, cp1250, iso8859-5, # cp1251, koi8-r, koi8-u, iso8859-7, cp1253, cp1254, cp1256, iso8859-6, # cp1255, iso8859-8, cp1258, iso8859-4, iso8859-13, cp1257, iso8859-3, # iso8859-10, iso8859-14, iso8859-16 _LOCALEENCODINGS: Text = _('$FILE_ENCODINGS').replace('$FILE_ENCODINGS', '') def canonname(name: Text) -> Text: """Resolve aliases and substitutions of the specified encoding >>> canonname('Shift_JIS') 'cp932' >>> canonname('foo') Traceback (most recent call last): ... LookupError: unknown encoding: foo the listed names should be canonicalized: >>> [(enc, canonname(enc)) for enc, _region in _ENCODINGNAMES ... if enc != canonname(enc)] [] """ name = codecs.lookup(name).name return _SUBSTMAP.get(name, name) def contentencoding(ui: "uimod.ui", fallbackenc: Optional[Text] = None) -> Text: """Preferred encoding of file contents in repository""" # assumes web.encoding is the content encoding, not the filename one enc = pycompat.sysstr(ui.config(b'web', b'encoding')) if enc: try: return canonname(enc) except LookupError: ui.debug(b'ignoring invalid web.encoding: %s\n' % pycompat.sysbytes(enc)) return canonname(fallbackenc or pycompat.sysstr(encoding.encoding)) def knownencodings() -> List[Text]: """List of encoding names which are likely used""" return [enc for enc, _region in _ENCODINGNAMES] def _localeencodings() -> List[Text]: localeencs = [] if _LOCALEENCODINGS: localeencs.extend(canonname(e) for e in _LOCALEENCODINGS.split(',')) else: # utf-8 is widely used; also mimics pre-2.11 behavior (007047b54911) localeencs.append('utf-8') enc = canonname(pycompat.sysstr(encoding.encoding)) if enc not in localeencs: localeencs.append(enc) return localeencs def guessencoding( ui: "uimod.ui", data: bytes, fallbackenc: Optional[Text] = None ) -> Text: """Guess encoding of the specified data from locale-specific candidates This is faster than chardet.detect() and works well for structured encodings like utf-8 or CJK's, but won't be possible to distinguish iso8859 variant. iso8859-1 can decode any byte sequence for example. """ if not isinstance(data, bytes): raise ValueError('data must be bytes, not %s' % type(data)) candidateencs = _localeencodings() prefenc = contentencoding(ui) if prefenc not in candidateencs: candidateencs.insert(0, prefenc) for enc in candidateencs: try: data.decode(enc) return enc except UnicodeDecodeError: pass # fallbackenc can be better than prefenc since prefenc failed if fallbackenc: return canonname(fallbackenc) return prefenc def createActionGroup(parent: "QObject") -> QActionGroup: group = QActionGroup(parent) for enc, region in _ENCODINGNAMES: a = group.addAction('%s (%s)' % (region, enc)) a.setCheckable(True) a.setData(enc) return group def addCustomAction(group: QActionGroup, name: Text) -> "QAction": cname = canonname(name) # will raise LookupError for invalid name a = group.addAction(name) a.setCheckable(True) a.setData(cname) return a def addActionsToMenu(menu: "QMenu", group: QActionGroup) -> None: localeencs = set(_localeencodings()) localeacts = [] otheracts = [] for a in group.actions(): enc = str(a.data()) if enc in localeencs: localeacts.append(a) else: otheracts.append(a) if localeacts: menu.addActions(localeacts) menu.addSeparator() menu.addActions(otheracts) def findActionByName(group: QActionGroup, name: Text) -> "QAction": cname = canonname(name) for a in group.actions(): if str(a.data()) == cname: return a raise LookupError('no encoding action: %s' % name) def checkedActionName(group: QActionGroup) -> Text: a = group.checkedAction() if not a: return '' return str(a.data()) def checkActionByName(group: QActionGroup, name: Text) -> None: try: a = findActionByName(group, name) except LookupError: a = addCustomAction(group, name) a.setChecked(True) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730809007.0 tortoisehg-6.9/tortoisehg/hgqt/filelistview.py0000644000000000000000000001020114712406257020531 0ustar00rootroot# Copyright (c) 2009-2010 LOGILAB S.A. (Paris, FRANCE). # http://www.logilab.fr/ -- mailto:contact@logilab.fr # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along with # this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. from __future__ import annotations from .qtcore import ( QModelIndex, Qt, pyqtSignal, pyqtSlot, ) from .qtgui import ( QAbstractItemView, QTreeView, ) from ..util import hglib from . import ( manifestmodel, qtlib, ) if hglib.TYPE_CHECKING: from typing import ( List, Optional, ) from .qtcore import ( QAbstractItemModel, ) from .qtgui import ( QWidget, ) class HgFileListView(QTreeView): """Display files and statuses between two revisions or patch""" fileSelected = pyqtSignal(str, str) clearDisplay = pyqtSignal() def __init__(self, parent: Optional[QWidget]) -> None: QTreeView.__init__(self, parent) self.setHeaderHidden(True) self.setDragDropMode(QAbstractItemView.DragDropMode.DragOnly) self.setSelectionMode(QAbstractItemView.SelectionMode.ExtendedSelection) self.setRootIsDecorated(False) self.setTextElideMode(Qt.TextElideMode.ElideLeft) # give consistent height and enable optimization self.setIconSize(qtlib.smallIconSize()) self.setUniformRowHeights(True) def _model(self) -> manifestmodel.ManifestModel: model = self.model() assert isinstance(model, manifestmodel.ManifestModel) return model def setModel(self, model: QAbstractItemModel) -> None: assert isinstance(model, manifestmodel.ManifestModel) QTreeView.setModel(self, model) model.layoutChanged.connect(self._onLayoutChanged) model.revLoaded.connect(self._onRevLoaded) self.selectionModel().currentRowChanged.connect(self._emitFileChanged) def currentFile(self) -> bytes: index = self.currentIndex() model = self._model() return hglib.fromunicode(model.filePath(index)) def setCurrentFile(self, path: bytes) -> None: model = self._model() model.fetchMore(QModelIndex()) # make sure path is populated self.setCurrentIndex(model.indexFromPath(hglib.tounicode(path))) def getSelectedFiles(self) -> List[bytes]: model = self._model() return [hglib.fromunicode(model.filePath(index)) for index in self.selectedRows()] def _initCurrentIndex(self) -> None: m = self._model() if m.rowCount() > 0: self.setCurrentIndex(m.index(0, 0)) else: self.clearDisplay.emit() @pyqtSlot() def _onLayoutChanged(self) -> None: index = self.currentIndex() if index.isValid(): self.scrollTo(index) return self._initCurrentIndex() @pyqtSlot() def _onRevLoaded(self) -> None: index = self.currentIndex() if index.isValid(): # redisplay previous row self._emitFileChanged() else: self._initCurrentIndex() @pyqtSlot() def _emitFileChanged(self) -> None: index = self.currentIndex() m = self._model() if index.isValid(): # TODO: delete status from fileSelected because it isn't primitive # pseudo directory node has no status st = m.fileStatus(index) or '' self.fileSelected.emit(m.filePath(index), st) else: self.clearDisplay.emit() def selectedRows(self) -> List[QModelIndex]: return self.selectionModel().selectedRows() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033083.0 tortoisehg-6.9/tortoisehg/hgqt/fileview.py0000644000000000000000000015162514742202573017653 0ustar00rootroot# fileview.py - File diff, content, and annotation display widget # # Copyright 2010 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import difflib import os import re from typing import ( cast, ) from . import qsci as Qsci from .qtcore import ( QElapsedTimer, QEvent, QObject, QPoint, QSettings, QTimer, Qt, pyqtSignal, pyqtSlot, ) from .qtgui import ( QAction, QActionGroup, QApplication, QColor, QFontMetrics, QFrame, QInputDialog, QKeySequence, QLabel, QMouseEvent, QPalette, QShortcut, QStyle, QToolBar, QHBoxLayout, QVBoxLayout, QWidget, ) from mercurial import ( pycompat, util, ) from mercurial.utils import ( dateutil, ) from ..util import ( colormap, hglib, ) from ..util.i18n import _ from . import ( blockmatcher, cmdcore, filedata, fileencoding, lexers, qscilib, qtlib, visdiff, ) if hglib.TYPE_CHECKING: from typing import ( Optional, ) qsci = qscilib.Scintilla # _NullMode is the fallback mode to display error message or repository history _NullMode = 0 DiffMode = 1 FileMode = 2 AnnMode = 3 _LineNumberMargin = 1 _AnnotateMargin = 2 _ChunkSelectionMargin = 4 _ChunkStartMarker = 0 _IncludedChunkStartMarker = 1 _ExcludedChunkStartMarker = 2 _InsertedLineMarker = 3 _ReplacedLineMarker = 4 _ExcludedLineMarker = 5 _FirstAnnotateLineMarker = 6 # to 31 _ChunkSelectionMarkerMask = ( (1 << _IncludedChunkStartMarker) | (1 << _ExcludedChunkStartMarker)) class HgFileView(QFrame): "file diff, content, and annotation viewer" linkActivated = pyqtSignal(str) fileDisplayed = pyqtSignal(str, str) showMessage = pyqtSignal(str) revisionSelected = pyqtSignal(int) shelveToolExited = pyqtSignal() chunkSelectionChanged = pyqtSignal() grepRequested = pyqtSignal(str, dict) """Emitted (pattern, opts) when user request to search changelog""" def __init__(self, repoagent, parent): QFrame.__init__(self, parent) framelayout = QVBoxLayout(self) framelayout.setContentsMargins(0,0,0,0) l = QHBoxLayout() l.setContentsMargins(0,0,0,0) l.setSpacing(0) self._repoagent = repoagent repo = repoagent.rawRepo() self.topLayout = QVBoxLayout() self.labelhbox = hbox = QHBoxLayout() hbox.setContentsMargins(0,0,0,0) hbox.setSpacing(2) self.topLayout.addLayout(hbox) self.diffToolbar = QToolBar(_('Diff Toolbar')) self.diffToolbar.setIconSize(qtlib.smallIconSize()) self.diffToolbar.setStyleSheet(qtlib.tbstylesheet) hbox.addWidget(self.diffToolbar) self.filenamelabel = w = QLabel() w.setWordWrap(True) f = w.textInteractionFlags() w.setTextInteractionFlags(f | Qt.TextInteractionFlag.TextSelectableByMouse) w.linkActivated.connect(self.linkActivated) hbox.addWidget(w, 1) self.extralabel = w = QLabel() w.setWordWrap(True) w.linkActivated.connect(self.linkActivated) self.topLayout.addWidget(w) w.hide() framelayout.addLayout(self.topLayout) framelayout.addLayout(l, 1) hbox = QHBoxLayout() hbox.setContentsMargins(0, 0, 0, 0) hbox.setSpacing(0) l.addLayout(hbox) self.blk = blockmatcher.BlockList(self) self.blksearch = blockmatcher.BlockList(self) self.sci = qscilib.Scintilla(self) hbox.addWidget(self.blk) hbox.addWidget(self.sci, 1) hbox.addWidget(self.blksearch) self.sci.cursorPositionChanged.connect(self._updateDiffActions) self.sci.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) self.sci.customContextMenuRequested.connect(self._onMenuRequested) self.sci.SCN_ZOOM.connect(self._updateScrollBar) self.blk.linkScrollBar(self.sci.verticalScrollBar()) self.blk.setVisible(False) self.blksearch.linkScrollBar(self.sci.verticalScrollBar()) self.blksearch.setVisible(False) self.sci.setReadOnly(True) self.sci.setUtf8(True) self.sci.installEventFilter(qscilib.KeyPressInterceptor(self)) self.sci.setCaretLineVisible(False) self.sci.markerDefine(qsci.MarkerSymbol.Invisible, _ChunkStartMarker) # hide margin 0 (markers) self.sci.setMarginType(0, qsci.MarginType.SymbolMargin) self.sci.setMarginWidth(0, 0) self.searchbar = qscilib.SearchToolBar() self.searchbar.hide() self.searchbar.searchRequested.connect(self.find) self.searchbar.conditionChanged.connect(self.highlightText) self.addActions(self.searchbar.editorActions()) self.layout().addWidget(self.searchbar) self._fd = self._nullfd = filedata.createNullData(repo) self._lostMode = _NullMode self._lastSearch = u'', False self._modeToggleGroup = QActionGroup(self) self._modeToggleGroup.triggered.connect(self._setModeByAction) self._modeActionMap = {} for mode, icon, tooltip in [ (DiffMode, 'view-diff', _('View change as unified diff ' 'output')), (FileMode, 'view-file', _('View change in context of file')), (AnnMode, 'view-annotate', _('Annotate with revision numbers')), (_NullMode, '', '')]: if icon: a = self._modeToggleGroup.addAction(qtlib.geticon(icon), '') else: a = self._modeToggleGroup.addAction('') self._modeActionMap[mode] = a a.setCheckable(True) a.setData(mode) a.setToolTip(tooltip) diffc = _DiffViewControl(self.sci, self) diffc.chunkMarkersBuilt.connect(self._updateDiffActions) filec = _FileViewControl(repo.ui, self.sci, self.blk, self) filec.chunkMarkersBuilt.connect(self._updateDiffActions) messagec = _MessageViewControl(self.sci, self) messagec.forceDisplayRequested.connect(self._forceDisplayFile) annotatec = _AnnotateViewControl(repoagent, self.sci, self._fd, self) annotatec.showMessage.connect(self.showMessage) annotatec.editSelectedRequested.connect(self._editSelected) annotatec.grepRequested.connect(self.grepRequested) annotatec.searchSelectedTextRequested.connect(self._searchSelectedText) annotatec.setSourceRequested.connect(self._setSource) annotatec.visualDiffRevisionRequested.connect(self._visualDiffRevision) annotatec.visualDiffToLocalRequested.connect(self._visualDiffToLocal) chunkselc = _ChunkSelectionViewControl(self.sci, self._fd, self) chunkselc.chunkSelectionChanged.connect(self.chunkSelectionChanged) self._activeViewControls = [] self._modeViewControlsMap = { DiffMode: [diffc], FileMode: [filec], AnnMode: [filec, annotatec], _NullMode: [messagec], } self._chunkSelectionViewControl = chunkselc # enabled as necessary # Next/Prev diff (in full file mode) self.actionNextDiff = a = QAction(qtlib.geticon('go-down'), _('Next Diff'), self) a.setShortcut('Alt+Down') a.setToolTip('%s (%s)' % (a.text(), a.shortcut().toString())) a.triggered.connect(self._nextDiff) self.actionPrevDiff = a = QAction(qtlib.geticon('go-up'), _('Previous Diff'), self) a.setShortcut('Alt+Up') a.setToolTip('%s (%s)' % (a.text(), a.shortcut().toString())) a.triggered.connect(self._prevDiff) self._parentToggleGroup = QActionGroup(self) self._parentToggleGroup.triggered.connect(self._setParentRevision) for text in '12': a = self._parentToggleGroup.addAction(text) a.setCheckable(True) a.setShortcut('Ctrl+Shift+%s' % text) self.actionFind = self.searchbar.toggleViewAction() self.actionFind.setIcon(qtlib.geticon('edit-find')) self.actionFind.setToolTip(_('Toggle display of text search bar')) self.actionFind.triggered.connect(self._onSearchbarTriggered) qtlib.newshortcutsforstdkey(QKeySequence.StandardKey.Find, self, self._showSearchbar) self.actionShelf = QAction('Shelve', self) self.actionShelf.setIcon(qtlib.geticon('hg-shelve')) self.actionShelf.setToolTip(_('Open shelve tool')) self.actionShelf.setVisible(False) self.actionShelf.triggered.connect(self._launchShelve) self._actionAutoTextEncoding = a = QAction(_('&Auto Detect'), self) a.setCheckable(True) self._textEncodingGroup = fileencoding.createActionGroup(self) self._textEncodingGroup.triggered.connect(self._applyTextEncoding) tb = self.diffToolbar tb.addActions(self._parentToggleGroup.actions()) tb.addSeparator() tb.addActions(self._modeToggleGroup.actions()[:-1]) tb.addSeparator() tb.addAction(self.actionNextDiff) tb.addAction(self.actionPrevDiff) tb.addAction(filec.gotoLineAction()) tb.addSeparator() tb.addAction(self.actionFind) tb.addAction(self.actionShelf) self._clearMarkup() self._changeEffectiveMode(_NullMode) repoagent.configChanged.connect(self._applyRepoConfig) self._applyRepoConfig() @property def repo(self): return self._repoagent.rawRepo() @pyqtSlot() def _launchShelve(self): from tortoisehg.hgqt import shelve # TODO: pass self._fd.canonicalFilePath() dlg = shelve.ShelveDialog(self._repoagent, self) dlg.finished.connect(dlg.deleteLater) dlg.exec() self.shelveToolExited.emit() def setShelveButtonVisible(self, visible): self.actionShelf.setVisible(visible) def loadSettings(self, qs, prefix): self.sci.loadSettings(qs, prefix) self._actionAutoTextEncoding.setChecked( qtlib.readBool(qs, prefix + '/autotextencoding', True)) enc = qtlib.readString(qs, prefix + '/textencoding') if enc: try: # prefer repository-specific encoding if specified enc = fileencoding.contentencoding(self.repo.ui, enc) except LookupError: enc = '' if enc: self._changeTextEncoding(enc) def saveSettings(self, qs, prefix): self.sci.saveSettings(qs, prefix) qs.setValue(prefix + '/autotextencoding', self._autoTextEncoding()) qs.setValue(prefix + '/textencoding', self._textEncoding()) @pyqtSlot() def _applyRepoConfig(self): self.sci.setIndentationWidth(self.repo.tabwidth) self.sci.setTabWidth(self.repo.tabwidth) enc = fileencoding.contentencoding(self.repo.ui, self._textEncoding()) self._changeTextEncoding(enc) def isChangeSelectionEnabled(self): chunkselc = self._chunkSelectionViewControl controls = self._modeViewControlsMap[DiffMode] return chunkselc in controls def enableChangeSelection(self, enable): 'Enable the use of a selection margin when a diff view is active' # Should only be called with True from the commit tool when it is in # a 'commit' mode and False for other uses if self.isChangeSelectionEnabled() == bool(enable): return chunkselc = self._chunkSelectionViewControl controls = self._modeViewControlsMap[DiffMode] if enable: controls.append(chunkselc) else: controls.remove(chunkselc) if self._effectiveMode() == DiffMode: self._changeEffectiveMode(DiffMode) @pyqtSlot(QAction) def _setModeByAction(self, action): 'One of the mode toolbar buttons has been toggled' mode = action.data() self._lostMode = _NullMode self._changeEffectiveMode(mode) self._displayLoaded(self._fd) def _effectiveMode(self): a = self._modeToggleGroup.checkedAction() return a.data() def _changeEffectiveMode(self, mode): self._modeActionMap[mode].setChecked(True) newcontrols = list(self._modeViewControlsMap[mode]) for c in reversed(self._activeViewControls): if c not in newcontrols: c.close() for c in newcontrols: if c not in self._activeViewControls: c.open() self._activeViewControls = newcontrols def _restrictModes(self, available): 'Disable modes based on content constraints' available.add(_NullMode) for m, a in self._modeActionMap.items(): a.setEnabled(m in available) self._fallBackToAvailableMode() def _fallBackToAvailableMode(self): if self._lostMode and self._modeActionMap[self._lostMode].isEnabled(): self._changeEffectiveMode(self._lostMode) self._lostMode = _NullMode return curmode = self._effectiveMode() if curmode and self._modeActionMap[curmode].isEnabled(): return fallbackmode = next(iter(a.data() for a in self._modeToggleGroup.actions() if a.isEnabled())) if not self._lostMode: self._lostMode = curmode self._changeEffectiveMode(fallbackmode) def _modeAction(self, mode): if not mode: raise ValueError('null mode cannot be set explicitly') try: return self._modeActionMap[mode] except KeyError: raise ValueError('invalid mode: %r' % mode) def setMode(self, mode): """Switch view to DiffMode/FileMode/AnnMode if available for the current content; otherwise it will be switched later""" action = self._modeAction(mode) if action.isEnabled(): if not action.isChecked(): action.trigger() # implies _setModeByAction() else: self._lostMode = mode @pyqtSlot(QAction) def _setParentRevision(self, action: QAction) -> None: fd = self._fd ctx = fd.rawContext() pctx = {'1': ctx.p1, '2': ctx.p2}[action.text()]() self.display(fd.createRebased(pctx)) def _updateFileDataActions(self): fd = self._fd ctx = fd.rawContext() parents = ctx.parents() ismerge = len(parents) == 2 self._parentToggleGroup.setVisible(ismerge) tooltips = [_('Show changes from first parent'), _('Show changes from second parent')] for a, pctx, tooltip in zip(self._parentToggleGroup.actions(), parents, tooltips): firstline = hglib.longsummary(pctx.description()) a.setToolTip('%s:\n%s [%d:%s] %s' % (tooltip, hglib.tounicode(pctx.branch()), pctx.rev(), pctx, firstline)) a.setChecked(fd.baseRev() == pctx.rev()) def _autoTextEncoding(self): return self._actionAutoTextEncoding.isChecked() def _textEncoding(self): return fileencoding.checkedActionName(self._textEncodingGroup) @pyqtSlot() def _applyTextEncoding(self): self._fd.setTextEncoding(self._textEncoding()) self._displayLoaded(self._fd) def _changeTextEncoding(self, enc): fileencoding.checkActionByName(self._textEncodingGroup, enc) if not self._fd.isNull(): self._applyTextEncoding() @pyqtSlot(str, int, int) def _setSource(self, path, rev, line): # BUG: not work for subrepo self.revisionSelected.emit(rev) ctx = self.repo[rev] fd = filedata.createFileData(ctx, ctx.p1(), hglib.fromunicode(path)) self.display(fd) self.showLine(line) def showLine(self, line): if line < self.sci.lines(): self.sci.setCursorPosition(line, 0) def _moveAndScrollToLine(self, line): self.sci.setCursorPosition(line, 0) self.sci.verticalScrollBar().setValue(line) def filePath(self): return self._fd.filePath() @pyqtSlot() def clearDisplay(self): self._displayLoaded(self._nullfd) def _clearMarkup(self): self.sci.clear() self.sci.clearMarginText() self.sci.markerDeleteAll() self.blk.clear() self.blksearch.clear() # Setting the label to ' ' rather than clear() keeps the label # from disappearing during refresh, and tool layouts bouncing self.filenamelabel.setText(' ') self.extralabel.hide() self._updateDiffActions() self._updateScrollBar() @pyqtSlot() def _forceDisplayFile(self): self._fd.load(self.isChangeSelectionEnabled(), force=True) self._displayLoaded(self._fd) def display(self, fd): if not fd.isLoaded(): fd.load(self.isChangeSelectionEnabled()) fd.setTextEncoding(self._textEncoding()) if self._autoTextEncoding(): fd.detectTextEncoding() fileencoding.checkActionByName(self._textEncodingGroup, fd.textEncoding()) self._displayLoaded(fd) def _displayLoaded(self, fd): if self._fd.filePath() == fd.filePath(): # Get the last visible line to restore it after reloading the editor lastCursorPosition = self.sci.getCursorPosition() lastScrollPosition = self.sci.firstVisibleLine() else: lastCursorPosition = (0, 0) lastScrollPosition = 0 self._updateDisplay(fd) # Recover the last cursor/scroll position self.sci.setCursorPosition(*lastCursorPosition) # Make sure that lastScrollPosition never exceeds the amount of # lines on the editor lastScrollPosition = min(lastScrollPosition, self.sci.lines() - 1) self.sci.verticalScrollBar().setValue(lastScrollPosition) def _updateDisplay(self, fd): self._fd = fd self._clearMarkup() self._updateFileDataActions() if fd.elabel: self.extralabel.setText(fd.elabel) self.extralabel.show() else: self.extralabel.hide() self.filenamelabel.setText(fd.flabel) availablemodes = set() if fd.isValid(): if fd.diff: availablemodes.add(DiffMode) if fd.contents: availablemodes.add(FileMode) if (fd.contents and (fd.rev() is None or fd.rev() >= 0) and fd.fileStatus() != 'R'): availablemodes.add(AnnMode) self._restrictModes(availablemodes) for c in self._activeViewControls: c.display(fd) self.highlightText(*self._lastSearch) self.fileDisplayed.emit(fd.filePath(), fd.fileText()) self.blksearch.syncPageStep() self._updateScrollBar() @pyqtSlot(str, bool, bool, bool) def find(self, exp, icase=True, wrap=False, forward=True): self.sci.find(exp, icase, wrap, forward) @pyqtSlot(str, bool) def highlightText(self, match, icase=False): self._lastSearch = match, icase self.sci.highlightText(match, icase) blk = self.blksearch blk.clear() blk.setUpdatesEnabled(False) blk.clear() for l in self.sci.highlightLines: blk.addBlock('s', l, l + 1) blk.setVisible(bool(match)) blk.setUpdatesEnabled(True) def _loadSelectionIntoSearchbar(self): text = self.sci.selectedText() if text: self.searchbar.setPattern(text) @pyqtSlot(bool) def _onSearchbarTriggered(self, checked): if checked: self._loadSelectionIntoSearchbar() @pyqtSlot() def _showSearchbar(self): self._loadSelectionIntoSearchbar() self.searchbar.show() @pyqtSlot() def _searchSelectedText(self): self.searchbar.search(self.sci.selectedText()) self.searchbar.show() def verticalScrollBar(self): return self.sci.verticalScrollBar() def _findNextChunk(self): mask = 1 << _ChunkStartMarker line = self.sci.getCursorPosition()[0] return self.sci.markerFindNext(line + 1, mask) def _findPrevChunk(self): mask = 1 << _ChunkStartMarker line = self.sci.getCursorPosition()[0] - 1 if line < 0: return -1 return self.sci.markerFindPrevious(line, mask) @pyqtSlot() def _nextDiff(self): line = self._findNextChunk() if line >= 0: self._moveAndScrollToLine(line) @pyqtSlot() def _prevDiff(self): line = self._findPrevChunk() if line >= 0: self._moveAndScrollToLine(line) @pyqtSlot() def _updateDiffActions(self): self.actionNextDiff.setEnabled(self._findNextChunk() >= 0) self.actionPrevDiff.setEnabled(self._findPrevChunk() >= 0) @pyqtSlot(str, int, int) def _editSelected(self, path, rev, line): """Open editor to show the specified file""" path = hglib.fromunicode(path) base = visdiff.snapshot(self.repo, [path], self.repo[rev])[0] files = [os.path.join(base, path)] pattern = hglib.fromunicode(self.sci.selectedText()) qtlib.editfiles(self.repo, files, line, pattern, self) def _visualDiff(self, path, **opts): path = hglib.fromunicode(path) dlg = visdiff.visualdiff(self.repo.ui, self.repo, [path], opts) if dlg: dlg.exec() @pyqtSlot(str, int) def _visualDiffRevision(self, path, rev): self._visualDiff(path, change=rev) @pyqtSlot(str, int) def _visualDiffToLocal(self, path, rev): self._visualDiff(path, rev=[str(rev)]) @pyqtSlot(QPoint) def _onMenuRequested(self, point): menu = self._createContextMenu(point) menu.exec(self.sci.viewport().mapToGlobal(point)) menu.setParent(None) def _createContextMenu(self, point): menu = self.sci.createEditorContextMenu() m = menu.addMenu(_('E&ncoding')) m.addAction(self._actionAutoTextEncoding) m.addSeparator() fileencoding.addActionsToMenu(m, self._textEncodingGroup) line = self.sci.lineNearPoint(point) selection = self.sci.selectedText() def sreq(**opts): return lambda: self.grepRequested.emit(selection, opts) if self._effectiveMode() != AnnMode: if selection: menu.addSeparator() menu.addAction(_('&Search in Current File'), self._searchSelectedText) menu.addAction(_('Search in All &History'), sreq(all=True)) for c in self._activeViewControls: c.setupContextMenu(menu, line) return menu @pyqtSlot() def _updateScrollBar(self): lexer = self.sci.lexer() if lexer: font = self.sci.lexer().font(0) else: font = self.sci.font() fm = QFontMetrics(font) lines = self.sci.text().splitlines() if lines: # assume that the longest line has the largest width; # fm.width() is too slow to apply to each line. longestline = max(lines, key=len) maxWidth = fm.horizontalAdvance(longestline) else: maxWidth = 0 # setScrollWidth() expects the value to be > 0 self.sci.setScrollWidth(max(maxWidth, 1)) class _AbstractViewControl(QObject): """Provide the mode-specific view in HgFileView""" def open(self): raise NotImplementedError def close(self): raise NotImplementedError def display(self, fd): raise NotImplementedError def setupContextMenu(self, menu, line): pass def _parentWidget(self) -> Optional[QWidget]: p = self.parent() assert p is None or isinstance(p, QWidget) return p _diffHeaderRegExp = re.compile(r"^@@ -[0-9]+,[0-9]+ \+[0-9]+,[0-9]+ @@") class _DiffViewControl(_AbstractViewControl): """Display the unified diff in HgFileView""" chunkMarkersBuilt = pyqtSignal() def __init__(self, sci, parent=None): super(_DiffViewControl, self).__init__(parent) self._sci = sci self._buildtimer = QTimer(self) self._buildtimer.timeout.connect(self._buildMarker) self._linestoprocess = [] self._firstlinetoprocess = 0 def open(self): self._sci.markerDefine(qsci.MarkerSymbol.Background, _ChunkStartMarker) if qtlib.isDarkTheme(self._sci.palette()): self._sci.setMarkerBackgroundColor(QColor('#204820'), _ChunkStartMarker) else: self._sci.setMarkerBackgroundColor(QColor('#B0FFA0'), _ChunkStartMarker) self._sci.setLexer(lexers.difflexer(self)) def close(self): self._sci.markerDefine(qsci.MarkerSymbol.Invisible, _ChunkStartMarker) self._sci.setLexer(None) self._buildtimer.stop() def display(self, fd): self._sci.setText(fd.diffText()) self._startBuildMarker() def _startBuildMarker(self): self._linestoprocess = self._sci.text().splitlines() self._firstlinetoprocess = 0 self._buildtimer.start() @pyqtSlot() def _buildMarker(self): self._sci.setUpdatesEnabled(False) # Process linesPerBlock lines at a time linesPerBlock = 100 # Look for lines matching the "diff header" for n, line in enumerate(self._linestoprocess[:linesPerBlock]): if _diffHeaderRegExp.match(line): diffLine = self._firstlinetoprocess + n self._sci.markerAdd(diffLine, _ChunkStartMarker) self._linestoprocess = self._linestoprocess[linesPerBlock:] self._firstlinetoprocess += linesPerBlock self._sci.setUpdatesEnabled(True) if not self._linestoprocess: self._buildtimer.stop() self.chunkMarkersBuilt.emit() class _FileViewControl(_AbstractViewControl): """Display the file content with chunk markers in HgFileView""" chunkMarkersBuilt = pyqtSignal() def __init__(self, ui, sci, blk, parent=None): super(_FileViewControl, self).__init__(parent) self._ui = ui self._sci = sci self._blk = blk self._sci.setMarginLineNumbers(_LineNumberMargin, True) self._sci.setMarginWidth(_LineNumberMargin, 0) # define markers for colorize zones of diff self._sci.markerDefine(qsci.MarkerSymbol.Background, _InsertedLineMarker) self._sci.markerDefine(qsci.MarkerSymbol.Background, _ReplacedLineMarker) if qtlib.isDarkTheme(self._sci.palette()): self._sci.setMarkerBackgroundColor(QColor('#204820'), _InsertedLineMarker) self._sci.setMarkerBackgroundColor(QColor('#202050'), _ReplacedLineMarker) else: self._sci.setMarkerBackgroundColor(QColor('#B0FFA0'), _InsertedLineMarker) self._sci.setMarkerBackgroundColor(QColor('#A0A0FF'), _ReplacedLineMarker) self._actionGotoLine = a = QAction(qtlib.geticon('go-jump'), _('Go to Line'), self) a.setEnabled(False) a.setShortcut('Ctrl+J') a.setToolTip('%s (%s)' % (a.text(), a.shortcut().toString())) a.triggered.connect(self._gotoLineDialog) self._buildtimer = QTimer(self) self._buildtimer.timeout.connect(self._buildMarker) self._opcodes = [] def open(self): self._blk.setVisible(True) self._actionGotoLine.setEnabled(True) def close(self): self._blk.setVisible(False) self._sci.setMarginWidth(_LineNumberMargin, 0) self._sci.setLexer(None) self._actionGotoLine.setEnabled(False) self._buildtimer.stop() def display(self, fd): if fd.contents: filename = fd.filePath() lexer = lexers.getlexer(self._ui, filename, fd.contents, self) newFont = qtlib.getfont('fontlog').font() self._sci.setFont(newFont) self._sci.setLexer(lexer) self._sci.setFont(newFont) self._sci.setText(fd.fileText()) self._sci.setMarginsFont(self._sci.font()) width = len(str(self._sci.lines())) + 2 # 2 for margin self._sci.setMarginWidth(_LineNumberMargin, 'M' * width) self._blk.syncPageStep() if fd.contents and fd.olddata: self._startBuildMarker(fd) else: self._buildtimer.stop() # in case previous request not finished def _startBuildMarker(self, fd): # use the difflib.SequenceMatcher, which returns a set of opcodes # that must be parsed olddata = fd.olddata.splitlines() newdata = fd.contents.splitlines() diff = difflib.SequenceMatcher(None, olddata, newdata) self._opcodes = diff.get_opcodes() self._buildtimer.start() @pyqtSlot() def _buildMarker(self): self._sci.setUpdatesEnabled(False) self._blk.setUpdatesEnabled(False) for tag, alo, ahi, blo, bhi in self._opcodes[:30]: if tag in ('replace', 'insert'): self._sci.markerAdd(blo, _ChunkStartMarker) if tag == 'replace': self._blk.addBlock('x', blo, bhi) for i in range(blo, bhi): self._sci.markerAdd(i, _ReplacedLineMarker) elif tag == 'insert': self._blk.addBlock('+', blo, bhi) for i in range(blo, bhi): self._sci.markerAdd(i, _InsertedLineMarker) elif tag in ('equal', 'delete'): pass else: raise ValueError('unknown tag %r' % (tag,)) self._opcodes = self._opcodes[30:] self._sci.setUpdatesEnabled(True) self._blk.setUpdatesEnabled(True) if not self._opcodes: self._buildtimer.stop() self.chunkMarkersBuilt.emit() def gotoLineAction(self): return self._actionGotoLine @pyqtSlot() def _gotoLineDialog(self): last = self._sci.lines() if last == 0: return cur = self._sci.getCursorPosition()[0] + 1 line, ok = QInputDialog.getInt(self._parentWidget(), _('Go to Line'), _('Enter line number (1 - %d)') % last, cur, 1, last) if ok: self._sci.setCursorPosition(line - 1, 0) self._sci.ensureLineVisible(line - 1) self._sci.setFocus() class _MessageViewControl(_AbstractViewControl): """Display error message or repository history in HgFileView""" forceDisplayRequested = pyqtSignal() def __init__(self, sci, parent=None): super(_MessageViewControl, self).__init__(parent) self._sci = sci self._forceviewindicator = None def open(self): self._sci.setFont(qtlib.getfont('fontlog').font()) self._sci.setLexer(None) def close(self): pass def display(self, fd): if not fd.isValid(): errormsg = fd.error or '' self._sci.setText(errormsg) forcedisplaymsg = filedata.forcedisplaymsg linkstart = errormsg.find(forcedisplaymsg) if linkstart >= 0: # add the link to force to view the data anyway self._setupForceViewIndicator() self._sci.fillIndicatorRange( 0, linkstart, 0, linkstart + len(forcedisplaymsg), self._forceviewindicator) elif fd.ucontents: # subrepo summary and perhaps other data self._sci.setText(fd.ucontents) def _setupForceViewIndicator(self): if self._forceviewindicator is not None: return self._forceviewindicator = self._sci.indicatorDefine( self._sci.IndicatorStyle.PlainIndicator) self._sci.setIndicatorDrawUnder(True, self._forceviewindicator) self._sci.setIndicatorForegroundColor( QColor('blue'), self._forceviewindicator) # delay until next event-loop in order to complete mouse release self._sci.SCN_INDICATORRELEASE.connect(self._requestForceDisplay, Qt.ConnectionType.QueuedConnection) @pyqtSlot() def _requestForceDisplay(self): self._sci.setText(_('Please wait while the file is opened ...')) # Wait a little to ensure that the "wait message" is displayed QTimer.singleShot(10, self.forceDisplayRequested) class _AnnotateViewControl(_AbstractViewControl): """Display annotation margin and colorize file content in HgFileView""" showMessage = pyqtSignal(str) editSelectedRequested = pyqtSignal(str, int, int) grepRequested = pyqtSignal(str, dict) searchSelectedTextRequested = pyqtSignal() setSourceRequested = pyqtSignal(str, int, int) visualDiffRevisionRequested = pyqtSignal(str, int) visualDiffToLocalRequested = pyqtSignal(str, int) def __init__(self, repoagent, sci, fd, parent=None): super(_AnnotateViewControl, self).__init__(parent) self._repoagent = repoagent self._cmdsession = cmdcore.nullCmdSession() self._sci = sci self._sci.setMarginType(_AnnotateMargin, qsci.MarginType.TextMarginRightJustified) self._sci.setMarginSensitivity(_AnnotateMargin, True) self._sci.marginClicked.connect(self._onMarginClicked) self._fd = fd self._links = [] # by line self._revmarkers = {} # by rev self._lastrev = -1 self._lastmarginclick = QElapsedTimer() self._initAnnotateOptionActions() self._loadAnnotateSettings() self._isdarktheme = qtlib.isDarkTheme(self._sci.palette()) def open(self): self._sci.viewport().installEventFilter(self) def close(self): self._sci.viewport().removeEventFilter(self) self._sci.setMarginWidth(_AnnotateMargin, 0) self._sci.markerDeleteAll() self._cmdsession.abort() def eventFilter(self, watched: QObject, event: QEvent) -> bool: # Python wrapper is deleted immediately before QEvent.Destroy try: sciviewport = self._sci.viewport() except RuntimeError: sciviewport = None if watched is sciviewport: if event.type() == QEvent.Type.MouseMove: line = self._sci.lineNearPoint(cast(QMouseEvent, event).pos()) self._emitRevisionHintAtLine(line) return False return super(_AnnotateViewControl, self).eventFilter(watched, event) def _loadAnnotateSettings(self): s = QSettings() wb = "Annotate/" for a in self._annoptactions: a.setChecked(qtlib.readBool(s, wb + a.data())) if not any(a.isChecked() for a in self._annoptactions): self._annoptactions[-1].setChecked(True) # 'rev' by default def _saveAnnotateSettings(self): s = QSettings() wb = "Annotate/" for a in self._annoptactions: s.setValue(wb + a.data(), a.isChecked()) def _initAnnotateOptionActions(self): self._annoptactions = [] for name, field in [(_('Show &Author'), 'author'), (_('Show &Date'), 'date'), (_('Show &Revision'), 'rev')]: a = QAction(name, self, checkable=True) a.setData(field) a.triggered.connect(self._updateAnnotateOption) self._annoptactions.append(a) @pyqtSlot() def _updateAnnotateOption(self): # make sure at least one option is checked if not any(a.isChecked() for a in self._annoptactions): self.sender().setChecked(True) self._updateView() self._saveAnnotateSettings() def _buildRevMarginTexts(self): def getauthor(fctx): return hglib.tounicode(hglib.username(fctx.user())) def getdate(fctx): return hglib.tounicode(dateutil.shortdate(fctx.date())) if self._fd.rev() is None: p1rev = self._fd.parentRevs()[0] revfmt = '%%%dd%%c' % len(str(p1rev)) def getrev(fctx): if fctx.rev() is None: return revfmt % (p1rev, '+') else: return revfmt % (fctx.rev(), ' ') else: revfmt = '%%%dd' % len(str(self._fd.rev())) def getrev(fctx): return revfmt % fctx.rev() aformat = [str(a.data()) for a in self._annoptactions if a.isChecked()] annfields = { 'rev': getrev, 'author': getauthor, 'date': getdate, } annfunc = [annfields[n] for n in aformat] uniqfctxs = set(fctx for fctx, _origline in self._links) return dict((fctx.rev(), ' : '.join(f(fctx) for f in annfunc)) for fctx in uniqfctxs) def _emitRevisionHintAtLine(self, line): if line < 0 or line >= len(self._links): return fctx = self._links[line][0] if fctx.rev() != self._lastrev: filename = hglib.fromunicode(self._fd.canonicalFilePath()) s = hglib.get_revision_desc(fctx, filename) self.showMessage.emit(s) self._lastrev = fctx.rev() def _repoAgentForFile(self): rpath = self._fd.repoRootPath() if not rpath: return self._repoagent return self._repoagent.subRepoAgent(rpath) def display(self, fd): if self._fd == fd and self._links: self._updateView() return self._fd = fd del self._links[:] self._cmdsession.abort() repoagent = self._repoAgentForFile() cmdline = hglib.buildcmdargs('annotate', fd.canonicalFilePath(), rev=hglib.escaperev(fd.rev(), 'wdir()'), text=True, file=True, number=True, line_number=True, T='pickle') self._cmdsession = sess = repoagent.runCommand(cmdline, self) sess.setCaptureOutput(True) sess.commandFinished.connect(self._onAnnotateFinished) @pyqtSlot(int) def _onAnnotateFinished(self, ret): sess = self._cmdsession if not sess.isFinished(): # new request is already running return if ret != 0: return repo = self._repoAgentForFile().rawRepo() data = util.pickle.loads(bytes(sess.readAll())) links = [] fctxcache = {} # (path, rev): fctx for l in data[0][b'lines']: path, rev, lineno = l[b'path'], l[b'rev'], l[b'lineno'] try: fctx = fctxcache[path, rev] except KeyError: fctx = fctxcache[path, rev] = repo[rev][path] links.append((fctx, lineno)) self._links = links self._updateView() def _updateView(self): if not self._links: return revtexts = self._buildRevMarginTexts() self._updaterevmargin(revtexts) self._updatemarkers() self._updatemarginwidth(revtexts) def _updaterevmargin(self, revtexts): """Update the content of margin area showing revisions""" s = self._margin_style # Workaround to set style of the current sci widget. # QsciStyle sends style data only to the first sci widget. # See qscintilla2/Qt4/qscistyle.cpp self._sci.SendScintilla(qsci.SCI_STYLESETBACK, s.style(), s.paper()) self._sci.SendScintilla(qsci.SCI_STYLESETFONT, s.style(), s.font().family().encode('utf-8')) self._sci.SendScintilla(qsci.SCI_STYLESETSIZE, s.style(), s.font().pointSize()) for i, (fctx, _origline) in enumerate(self._links): self._sci.setMarginText(i, revtexts[fctx.rev()], s) def _updatemarkers(self): """Update markers which colorizes each line""" self._redefinemarkers() for i, (fctx, _origline) in enumerate(self._links): m = self._revmarkers.get(fctx.rev()) if m is not None: self._sci.markerAdd(i, m) def _redefinemarkers(self): """Redefine line markers according to the current revs""" curdate = self._fd.rawContext().date()[0] # make sure to colorize at least 1 year mindate = curdate - 365 * 24 * 60 * 60 self._revmarkers.clear() filectxs = iter(fctx for fctx, _origline in self._links) maxcolors = 32 - _FirstAnnotateLineMarker palette = colormap.makeannotatepalette(filectxs, curdate, maxcolors=maxcolors, maxhues=8, maxsaturations=16, mindate=mindate, isdarktheme=self._isdarktheme) for i, (color, fctxs) in enumerate(palette.items()): m = _FirstAnnotateLineMarker + i self._sci.markerDefine(qsci.MarkerSymbol.Background, m) self._sci.setMarkerBackgroundColor(QColor(color), m) for fctx in fctxs: self._revmarkers[fctx.rev()] = m @util.propertycache def _margin_style(self): """Style for margin area""" s = Qsci.QsciStyle(qscilib.STYLE_FILEVIEW_MARGIN) s.setPaper(QApplication.palette().color(QPalette.ColorRole.Window)) s.setFont(self._sci.font()) return s def _updatemarginwidth(self, revtexts): self._sci.setMarginsFont(self._sci.font()) # add 2 for margin maxwidth = 2 + max(len(s) for s in revtexts.values()) self._sci.setMarginWidth(_AnnotateMargin, 'M' * maxwidth) def setupContextMenu(self, menu, line): menu.addSeparator() annoptsmenu = menu.addMenu(_('Annotate Op&tions')) annoptsmenu.addActions(self._annoptactions) if line < 0 or line >= len(self._links): return menu.addSeparator() fctx, line = self._links[line] selection = self._sci.selectedText() if selection: def sreq(**opts): return lambda: self.grepRequested.emit(selection, opts) menu.addSeparator() annsearchmenu = menu.addMenu(_('Search Selected Text')) a = annsearchmenu.addAction(_('In Current &File')) a.triggered.connect(self.searchSelectedTextRequested) annsearchmenu.addAction(_('In &Current Revision'), sreq(rev='.')) annsearchmenu.addAction(_('In &Original Revision'), sreq(rev=fctx.rev())) annsearchmenu.addAction(_('In All &History'), sreq(all=True)) data = [hglib.tounicode(fctx.path()), fctx.rev(), line] def annorig(): self.setSourceRequested.emit(*data) def editorig(): self.editSelectedRequested.emit(*data) def difflocal(): self.visualDiffToLocalRequested.emit(data[0], data[1]) def diffparent(): self.visualDiffRevisionRequested.emit(data[0], data[1]) menu.addSeparator() anngotomenu = menu.addMenu(_('Go to')) annviewmenu = menu.addMenu(_('View File at')) anndiffmenu = menu.addMenu(_('Diff File to')) anngotomenu.addAction(_('&Originating Revision'), annorig) annviewmenu.addAction(_('&Originating Revision'), editorig) anndiffmenu.addAction(_('&Local'), difflocal) anndiffmenu.addAction(_('&Parent Revision'), diffparent) for pfctx in fctx.parents(): pdata = [hglib.tounicode(pfctx.path()), pfctx.changectx().rev(), line] def annparent(data): self.setSourceRequested.emit(*data) def editparent(data): self.editSelectedRequested.emit(*data) for name, func, smenu in [(_('&Parent Revision (%d)') % pdata[1], annparent, anngotomenu), (_('&Parent Revision (%d)') % pdata[1], editparent, annviewmenu)]: def add(name, func): action = smenu.addAction(name) action.data = pdata action.run = lambda: func(action.data) action.triggered.connect(action.run) add(name, func) #@pyqtSlot(int, int, Qt.KeyboardModifier) def _onMarginClicked(self, margin, line, state): if margin != _AnnotateMargin: return interval = QApplication.doubleClickInterval() lastclick = self._lastmarginclick if (state == Qt.KeyboardModifier.ControlModifier or (lastclick.isValid() and not lastclick.hasExpired(interval))): if line >= len(self._links): # empty line next to the last line return fctx, line = self._links[line] self.setSourceRequested.emit( hglib.tounicode(fctx.path()), fctx.rev(), line) else: lastclick.restart() # mimic the default "border selection" behavior, # which is disabled when you use setMarginSensitivity() if state == Qt.KeyboardModifier.ShiftModifier: r = self._sci.getSelection() sellinetop, selchartop, sellinebottom, selcharbottom = r if sellinetop <= line: sline = sellinetop eline = line + 1 else: sline = line eline = sellinebottom if selcharbottom != 0: eline += 1 else: sline = line eline = line + 1 self._sci.setSelection(sline, 0, eline, 0) class _ChunkSelectionViewControl(_AbstractViewControl): """Display chunk selection margin and colorize chunks in HgFileView""" chunkSelectionChanged = pyqtSignal() def __init__(self, sci, fd, parent=None): super(_ChunkSelectionViewControl, self).__init__(parent) self._sci = sci p = qtlib.getcheckboxpixmap(QStyle.StateFlag.State_On, QColor('#B0FFA0'), sci) self._sci.markerDefine(p, _IncludedChunkStartMarker) p = qtlib.getcheckboxpixmap(QStyle.StateFlag.State_Off, QColor('#B0FFA0'), sci) self._sci.markerDefine(p, _ExcludedChunkStartMarker) self._sci.markerDefine(qsci.MarkerSymbol.Background, _ExcludedLineMarker) if qtlib.isDarkTheme(self._sci.palette()): bg, fg = QColor(44, 44, 44), QColor(86, 86, 86) else: bg, fg = QColor('lightgrey'), QColor('darkgrey') self._sci.setMarkerBackgroundColor(bg, _ExcludedLineMarker) self._sci.setMarkerForegroundColor(fg, _ExcludedLineMarker) self._sci.setMarginType(_ChunkSelectionMargin, qsci.MarginType.SymbolMargin) self._sci.setMarginMarkerMask(_ChunkSelectionMargin, _ChunkSelectionMarkerMask) self._sci.setMarginSensitivity(_ChunkSelectionMargin, True) self._sci.marginClicked.connect(self._onMarginClicked) self._actmarkexcluded = a = QAction(_('&Mark Excluded Changes'), self) a.setCheckable(True) a.setChecked(qtlib.readBool(QSettings(), 'changes-mark-excluded')) a.triggered.connect(self._updateChunkIndicatorMarks) self._excludeindicator = -1 self._updateChunkIndicatorMarks(a.isChecked()) self._sci.setIndicatorDrawUnder(True, self._excludeindicator) self._sci.setIndicatorForegroundColor(QColor('gray'), self._excludeindicator) self._toggleshortcut = a = QShortcut(Qt.Key.Key_Space, sci) a.setContext(Qt.ShortcutContext.WidgetShortcut) a.setEnabled(False) a.activated.connect(self._toggleCurrentChunk) self._fd = fd self._chunkatline = {} def open(self): self._sci.setMarginWidth(_ChunkSelectionMargin, 15) self._toggleshortcut.setEnabled(True) def close(self): self._sci.setMarginWidth(_ChunkSelectionMargin, 0) self._toggleshortcut.setEnabled(False) def display(self, fd): self._fd = fd self._chunkatline.clear() if not fd.changes: return for chunk in fd.changes.hunks: self._chunkatline[chunk.lineno] = chunk self._updateMarker(chunk) def _updateMarker(self, chunk): excludemsg = ' ' + _('(excluded from the next commit)') # markerAdd() does not check if the specified marker is already # present, but markerDelete() does m = self._sci.markersAtLine(chunk.lineno) inclmarked = m & (1 << _IncludedChunkStartMarker) exclmarked = m & (1 << _ExcludedChunkStartMarker) if chunk.excluded and not exclmarked: self._sci.setReadOnly(False) llen = self._sci.lineLength(chunk.lineno) # in bytes self._sci.insertAt(excludemsg, chunk.lineno, llen - 1) self._sci.setReadOnly(True) self._sci.markerDelete(chunk.lineno, _IncludedChunkStartMarker) self._sci.markerAdd(chunk.lineno, _ExcludedChunkStartMarker) for i in pycompat.xrange(chunk.linecount - 1): self._sci.markerAdd(chunk.lineno + i + 1, _ExcludedLineMarker) self._sci.fillIndicatorRange(chunk.lineno + 1, 0, chunk.lineno + chunk.linecount, 0, self._excludeindicator) if not chunk.excluded and exclmarked: self._sci.setReadOnly(False) llen = self._sci.lineLength(chunk.lineno) # in bytes mlen = len(excludemsg.encode('utf-8')) # in bytes pos = self._sci.positionFromLineIndex(chunk.lineno, llen - mlen - 1) self._sci.SendScintilla(qsci.SCI_SETTARGETSTART, pos) self._sci.SendScintilla(qsci.SCI_SETTARGETEND, pos + mlen) self._sci.SendScintilla(qsci.SCI_REPLACETARGET, 0, b'') self._sci.setReadOnly(True) if not chunk.excluded and not inclmarked: self._sci.markerDelete(chunk.lineno, _ExcludedChunkStartMarker) self._sci.markerAdd(chunk.lineno, _IncludedChunkStartMarker) for i in pycompat.xrange(chunk.linecount - 1): self._sci.markerDelete(chunk.lineno + i + 1, _ExcludedLineMarker) self._sci.clearIndicatorRange(chunk.lineno + 1, 0, chunk.lineno + chunk.linecount, 0, self._excludeindicator) #@pyqtSlot(int, int, Qt.KeyboardModifier) def _onMarginClicked(self, margin, line, state): if margin != _ChunkSelectionMargin: return if line not in self._chunkatline: return if state & Qt.KeyboardModifier.ShiftModifier: excluded = self._getChunkAtLine(line) cl = self._currentChunkLine() end = max(line, cl) l = min(line, cl) lines = [] while l < end: assert l >= 0 lines.append(l) l = self._sci.markerFindNext(l + 1, _ChunkSelectionMarkerMask) lines.append(end) self._setChunkAtLines(lines, not excluded) else: self._toggleChunkAtLine(line) self._sci.setCursorPosition(line, 0) def _getChunkAtLine(self, line): return self._chunkatline[line].excluded def _setChunkAtLines(self, lines, excluded): for l in lines: chunk = self._chunkatline[l] self._fd.setChunkExcluded(chunk, excluded) self._updateMarker(chunk) self.chunkSelectionChanged.emit() def _toggleChunkAtLine(self, line): excluded = self._getChunkAtLine(line) self._setChunkAtLines([line], not excluded) @pyqtSlot() def _toggleCurrentChunk(self): line = self._currentChunkLine() if line >= 0: self._toggleChunkAtLine(line) def _currentChunkLine(self): line = self._sci.getCursorPosition()[0] return self._sci.markerFindPrevious(line, _ChunkSelectionMarkerMask) def setupContextMenu(self, menu, line): menu.addAction(self._actmarkexcluded) @pyqtSlot(bool) def _updateChunkIndicatorMarks(self, checked): ''' This method has some pre-requisites: - self.excludeindicator MUST be set to -1 before calling this method for the first time ''' indicatortypes = (qsci.IndicatorStyle.HiddenIndicator, qsci.IndicatorStyle.StrikeIndicator) self._excludeindicator = self._sci.indicatorDefine( indicatortypes[checked], self._excludeindicator) QSettings().setValue('changes-mark-excluded', checked) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1736945585.0 tortoisehg-6.9/tortoisehg/hgqt/graft.py0000644000000000000000000002642314741727661017152 0ustar00rootroot# graft.py - Graft dialog for TortoiseHg # # Copyright 2010 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations from .qtcore import ( QSettings, QTimer, Qt, pyqtSlot, ) from .qtgui import ( QCheckBox, QDialog, QDialogButtonBox, QGroupBox, QMessageBox, QVBoxLayout, ) from ..util import hglib from ..util.i18n import _ from . import ( cmdcore, cmdui, csinfo, cslist, qtlib, resolve, thgrepo, wctxcleaner, ) if hglib.TYPE_CHECKING: from typing import ( List, Optional, Text, ) from .qtgui import ( QWidget, ) from .thgrepo import ( RepoAgent, ) BB = QDialogButtonBox class GraftDialog(QDialog): def __init__(self, repoagent: RepoAgent, parent: Optional[QWidget], **opts) -> None: super(GraftDialog, self).__init__(parent) self.setWindowIcon(qtlib.geticon('hg-transplant')) self.setWindowFlags(self.windowFlags() & ~Qt.WindowType.WindowContextHelpButtonHint) self._repoagent = repoagent self._cmdsession = cmdcore.nullCmdSession() self.valid = True self.sourcelist = [ hglib.revsymbol(self.repo, hglib.fromunicode(rev)).rev() for rev in opts.get('source', ['.'])] currgraftrevs = self.graftstate() if currgraftrevs: currgraftrevs = [hglib.revsymbol(self.repo, rev).rev() for rev in currgraftrevs] if self.sourcelist != currgraftrevs: res = qtlib.CustomPrompt(_('Interrupted graft operation found'), _('An interrupted graft operation has been found.\n\n' 'You cannot perform a different graft operation unless ' 'you abort the interrupted graft operation first.'), self, (_('Continue or abort interrupted graft operation?'), _('Cancel')), 1, 2).run() if res != 0: # Cancel self.valid = False return # Continue creating the dialog, but use the graft source # of the existing, interrupted graft as the source, rather than # the one that was passed as an option to the dialog constructor self.sourcelist = currgraftrevs box = QVBoxLayout() box.setSpacing(8) box.setContentsMargins(*(6,)*4) self.setLayout(box) self.srcb = srcb = QGroupBox() srcb.setLayout(QVBoxLayout()) srcb.layout().setContentsMargins(*(2,)*4) self.cslist = cslist.ChangesetList(self.repo) self._updateSource(0) srcb.layout().addWidget(self.cslist) box.addWidget(srcb) destrev = self.repo[b'.'].rev() style = csinfo.panelstyle(selectable=True) destb = QGroupBox(_('To graft destination')) destb.setLayout(QVBoxLayout()) destb.layout().setContentsMargins(*(2,)*4) dest = csinfo.create(self.repo, destrev, style, withupdate=True) destb.layout().addWidget(dest) self.destcsinfo = dest box.addWidget(destb) sep = qtlib.LabeledSeparator(_('Options')) box.addWidget(sep) self._optchks = {} for name, text in [ ('currentuser', _('Use my user name instead of graft ' 'committer user name')), ('currentdate', _('Use current date')), ('log', _('Append graft info to log message')), ('autoresolve', _('Automatically resolve merge conflicts ' 'where possible'))]: self._optchks[name] = w = QCheckBox(text) box.addWidget(w) self._cmdlog = cmdui.LogWidget(self) self._cmdlog.hide() box.addWidget(self._cmdlog, 2) self._stbar = cmdui.ThgStatusBar(self) self._stbar.setSizeGripEnabled(False) self._stbar.linkActivated.connect(self.linkActivated) box.addWidget(self._stbar) bbox = QDialogButtonBox() self.cancelbtn = bbox.addButton(QDialogButtonBox.StandardButton.Cancel) self.cancelbtn.clicked.connect(self.reject) self.graftbtn = bbox.addButton(_('Graft'), QDialogButtonBox.ButtonRole.ActionRole) self.graftbtn.clicked.connect(self.graft) self.abortbtn = bbox.addButton(_('Abort'), QDialogButtonBox.ButtonRole.ActionRole) self.abortbtn.clicked.connect(self.abort) box.addWidget(bbox) self.bbox = bbox self._wctxcleaner = wctxcleaner.WctxCleaner(repoagent, self) self._wctxcleaner.checkFinished.connect(self._onCheckFinished) if self.checkResolve(): self.abortbtn.setEnabled(True) else: self._stbar.showMessage(_('Checking...')) self.abortbtn.setEnabled(False) self.graftbtn.setEnabled(False) QTimer.singleShot(0, self._wctxcleaner.check) self.setMinimumWidth(480) self.setMaximumHeight(800) self.resize(0, 340) self.setWindowTitle(_('Graft - %s') % repoagent.displayName()) self._readSettings() @property def repo(self): return self._repoagent.rawRepo() def _readSettings(self) -> None: qs = QSettings() qs.beginGroup('graft') for n, w in self._optchks.items(): if n == 'autoresolve': w.setChecked( self._repoagent.configBool('tortoisehg', n, qtlib.readBool(qs, n, True))) else: w.setChecked(qtlib.readBool(qs, n)) qs.endGroup() def _writeSettings(self) -> None: qs = QSettings() qs.beginGroup('graft') for n, w in self._optchks.items(): qs.setValue(n, w.isChecked()) qs.endGroup() def _updateSourceTitle(self, idx: int) -> None: numrevs = len(self.sourcelist) if numrevs <= 1: title = _('Graft changeset') else: title = _('Graft changeset #%d of %d') % (idx + 1, numrevs) self.srcb.setTitle(title) def _updateSource(self, idx: int) -> None: self._updateSourceTitle(idx) self.cslist.updateItems(self.sourcelist[idx:]) @pyqtSlot(bool) def _onCheckFinished(self, clean: bool) -> None: if not clean: self.graftbtn.setEnabled(False) txt = _('Before graft, you must ' 'commit, ' 'shelve to patch, ' 'or discard changes.') else: self.graftbtn.setEnabled(True) txt = _('You may continue or start the graft') self._stbar.showMessage(txt) def graft(self) -> None: self.graftbtn.setEnabled(False) self.cancelbtn.setVisible(False) opts = dict((n, w.isChecked()) for n, w in self._optchks.items()) itool = 'merge' if opts.pop('autoresolve') else 'fail' opts['config'] = 'ui.merge=internal:%s' % itool if hglib.graft_in_progress(self.repo): opts['continue'] = True args = [] else: args = [str(s) for s in self.sourcelist] cmdline = hglib.buildcmdargs('graft', *args, **opts) sess = self._runCommand(cmdline) sess.commandFinished.connect(self._graftFinished) def abort(self) -> None: self.abortbtn.setDisabled(True) cmdline = hglib.buildcmdargs('graft', abort=True) sess = self._runCommand(cmdline) sess.commandFinished.connect(self._abortFinished) def graftstate(self) -> Optional[List[bytes]]: return hglib.readgraftstate(self.repo) def _runCommand(self, cmdline: List[Text]) -> cmdcore.CmdSession: assert self._cmdsession.isFinished() self._cmdsession = sess = self._repoagent.runCommand(cmdline, self) sess.commandFinished.connect(self._stbar.clearProgress) sess.outputReceived.connect(self._cmdlog.appendLog) sess.progressReceived.connect(self._stbar.setProgress) cmdui.updateStatusMessage(self._stbar, sess) return sess @pyqtSlot(int) def _graftFinished(self, ret: int) -> None: if self.checkResolve() is False: msg = _('Graft is complete') if ret == 255: msg = _('Graft failed') self._cmdlog.show() # contains hint else: self._updateSource(len(self.sourcelist) - 1) self._stbar.showMessage(msg) self._makeCloseButton() @pyqtSlot() def _abortFinished(self) -> None: if self.checkResolve() is False: self._stbar.showMessage(_('Graft aborted')) self._makeCloseButton() def _makeCloseButton(self) -> None: self.graftbtn.setEnabled(True) self.graftbtn.setText(_('Close')) self.graftbtn.clicked.disconnect(self.graft) self.graftbtn.clicked.connect(self.accept) def checkResolve(self) -> bool: for root, path, status in thgrepo.recursiveMergeStatus(self.repo): if status == b'u': txt = _('Graft generated merge conflicts that must ' 'be resolved') self.graftbtn.setEnabled(False) break else: self.graftbtn.setEnabled(True) txt = _('You may continue the graft') self._stbar.showMessage(txt) currgraftrevs = self.graftstate() if currgraftrevs: def findrev(rev, revlist): rev = self.repo[rev].rev() for n, r in enumerate(revlist): r = self.repo[r].rev() if rev == r: return n return None idx = findrev(currgraftrevs[0], self.sourcelist) if idx is not None: self._updateSource(idx) self.abortbtn.setEnabled(True) self.graftbtn.setText('Continue') return True else: self.abortbtn.setEnabled(False) return False def linkActivated(self, cmd: Text) -> None: if cmd == 'resolve': dlg = resolve.ResolveDialog(self._repoagent, self) dlg.exec() self.checkResolve() else: self._wctxcleaner.runCleaner(cmd) def reject(self) -> None: if self._wctxcleaner.isChecking(): return if hglib.graft_in_progress(self.repo): main = _('Exiting with an unfinished graft is not recommended.') text = _('Consider aborting the graft first.') labels = ((QMessageBox.StandardButton.Yes, _('&Exit')), (QMessageBox.StandardButton.No, _('Cancel'))) if not qtlib.QuestionMsgBox(_('Confirm Exit'), main, text, labels=labels, parent=self): return super(GraftDialog, self).reject() def done(self, r: int) -> None: self._writeSettings() super(GraftDialog, self).done(r) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/graph.py0000644000000000000000000010402214672254332017131 0ustar00rootroot# graph.py - helper functions and classes to ease hg revision graph building # # Copyright (c) 2003-2010 LOGILAB S.A. (Paris, FRANCE). # http://www.logilab.fr/ -- mailto:contact@logilab.fr # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. """helper functions and classes to ease hg revision graph building Based on graphlog's algorithm, with inspiration stolen from TortoiseHg revision grapher (now stolen back). The primary interface are the *_grapher functions, which are generators of Graph instances that describe a revision set graph. These generators are used by repomodel.py which renders them on a widget. """ from __future__ import annotations import collections import os import time import typing from mercurial.thirdparty import attr # Force pytype to use the non-vendored package if typing.TYPE_CHECKING: # noinspection PyPackageRequirements import attr from mercurial import ( error, hg, node, phases, pycompat, revset as revsetmod, ) from mercurial.utils import ( urlutil, ) from ..util import ( obsoleteutil, ) r""" How each edge color is determined ================================= Legends ------- o, 0, 1, 2, ..., 9 visible revision x hidden revision `|a`, `a|` ("a" can be a-z) graph edge. edges with same alphabet have same color Rules ----- A. Edges on the same first-ancestors-line have same color .. code:: o |a o |a o B. Edges on branched-merged line have different color from base line .. code:: o o a| |\b o | o a|\b a| |\c | o | | \ o |b | | o a| o o |b | |/b a| | /c o | |/ a| | o o o |b a| o |/b o a| o C. Merged edge has same color as merged-from line .. code:: 9 |\ all merged lines(1-3, 4-6, 7-9) and right line(0-1-4-7-9) have 8 | same color | 7 6 | |\| 5 | | 4 3 | |\| 2 | | 1 |/ 0 D. Edges on the same first-ancestors-line have same color even if separated by revset .. code:: 4 a| Sometimes graph is separated into several parts by revset filter. 3 : All edges on the same first-ancestors-line have same color, x even if they are separated by filter. : 1 a| 0 E. Grafted line has different color from source, destination, and other grafted lines .. code:: 5 |\ a| \ 1-4 and 2-5 are grafted line 4 \ a|\c :d 3 : : | : 2 a| :/b | 1 |/b 0 Family line implementation ========================== Terms ----- Edge line which connect two revisions directly Path unbranched line which connect two revisions directly or indirectly. (Intermediate revisions can exist on the path) Parent line Edge between revision and its direct parent Family line Extension edge to complete revision depencency on the filtered graph. Next visible ancestor(s) Next visible ancestors of rev.X means the ancestor revisions that are neighboring with rev.X when ignoring hidden revisions. Description ----------- In the filtered dag with family line support, we must show at least one path between any visible revision and any ancestor of it. Examples -------- Legends ~~~~~~~ o, 0, 1, 2, ..., 9 visible revision x hidden revision `|<` family line Simple cases ~~~~~~~~~~~~ .. code:: ALL FILTERED ALL FILTERED ALL FILTERED 3 3 4 4 4 4 | |< |\ |\< |\ |\ x -> |< | x | |< | 3 | 3 | |< | | -> | |< | | -> | |< 1 1 | 2 | 2 | x | |< |/ |/ |/ |/< 1 1 1 1 Advanced cases ~~~~~~~~~~~~~~ ..code:: ALL FILTERED 3 3 |\ | No family line is drawn at 3-1 | x | because there is already parent line. |/ | 1 1 ALL FILTERED 6 6 |\ | 1 and 3 are next visible ancestors of 6, 5 | 5 but no family lines are drawn at 6-3 and 6-1, | x | because 6-3 and 6-1 path already exist (6-5-3-1) |/| -> | 3 | 3 | x | |/ | 1 1 ALL FILTERED 5 5 |\ |< Both 1 and 2 are next visible ancestors of 5, x | |< but no family line is drawn at 5-1 because 5-2 edge | x -> |< completes 5-1 path at the same time. 2 | 2 |/ | 1 1 Given such cases, we can determine family line location as below: If Rev-X and Rev-Y (X > Y) meets these all conditions, family line will be drawn between X and Y. 1. X and Y are both visible (not hidden) 2. Y is ancestor of X 3. Revisions in DAG between X and Y are all hidden 4. Y is *NOT* ancestor of visible parents of X 5. Y is *NOT* ancestor of any other lower-end revisions of family line from X """ LINE_TYPE_PARENT = 0 LINE_TYPE_FAMILY = 1 LINE_TYPE_GRAFT = 2 LINE_TYPE_OBSOLETE = 3 NODE_SHAPE_REVISION = 0 NODE_SHAPE_CLOSEDBRANCH = 1 NODE_SHAPE_APPLIEDPATCH = 2 NODE_SHAPE_UNAPPLIEDPATCH = 3 NODE_SHAPE_REVISION_DRAFT = 4 NODE_SHAPE_REVISION_SECRET = 5 # TODO: Remove these two when we adopt GTK author color scheme COLORS = [ '#0000ff', # blue '#006400', # dark green '#008000', # green '#00008b', # dark blue '#800080', # purple '#1e90ff', # dodger blue '#808000', # dark yellow '#ff00ff', # magenta '#8b008b', # dark magenta '#008b8b', # dark cyan ] def hashcolor(data, modulo=None): """function to reliably map a string to a color index The algorithm used is very basic and can be improved if needed. """ if modulo is None: modulo = len(COLORS) if isinstance(data, (str, pycompat.unicode)): idx = sum([ord(c) for c in data]) else: # Python 3 bytes idx = sum(data) idx %= modulo return idx class StandardDag(object): """Generate DAG for grapher Public fields: repo The repository start_rev Tip-most revision of range to graph This can be None, which means workingtree stop_rev 0-most revision of range to graph branch If set, then only revisions in this branch only iterated. allparents If set in addition to branch, then cset outside the branch that are ancestors to some cset inside the branch is also iterated showgraftsource If set, return graft relations additionally visiblerev The function to determine revision visiblity, which accepts one argument(revno) and return bool value (True if visible) walk() iterates visible nodes with this form (ctx is changectx or filectx): `(ctx, [(parent ctx, line type, p1 or not), ...])` """ def __init__(self, repo, start_rev, stop_rev, branch, allparents, showgraftsource, visiblerev): assert start_rev is None or start_rev >= stop_rev, (start_rev, stop_rev) self.repo = repo self.start_rev = start_rev self.stop_rev = stop_rev self.branch = branch self.allparents = allparents self.showgraftsource = showgraftsource self.visiblerev = visiblerev if self.allparents or not branch: def visiblectx(ctx): return bool(ctx) else: def visiblectx(ctx): return ctx and ctx.branch() == branch self.visiblectx = visiblectx def _iter_revs(self, repo, visiblerev): stop_rev = self.stop_rev curr_rev = self.start_rev if curr_rev is None: if visiblerev(curr_rev): yield repo[curr_rev] curr_rev = len(repo) - 1 # jump in the branch grouping graph experiment if the user subscribed revs = revsetmod.spanset(repo, curr_rev, stop_rev - 1) if revs and repo.ui.configbool(b'experimental', b'graph-group-branches'): start, stop = revs.first(), revs.last() revset = b'sort(%d:%d, "topo"' args = [start, stop] firstbranchrevset = repo.ui.config( b'experimental', b'graph-group-branches.firstbranch') if firstbranchrevset: revset += b', topo.firstbranch=%s' args.append(firstbranchrevset) revset += b')' revs = repo.revs(revset, *args) for curr_rev in revs: if visiblerev(curr_rev): yield repo[curr_rev] def _append_graft_source(self, ctx, parents): src_rev_str = ctx.extra().get(b'source') if src_rev_str is not None and src_rev_str in self.repo: src = self.repo[src_rev_str] src_rev = src.rev() if self.stop_rev <= src_rev < ctx.rev() and \ self.visiblerev(src_rev) and self.visiblectx(src): parents.append((src, LINE_TYPE_GRAFT, False)) for octx in obsoleteutil.first_known_predecessors(ctx): src_rev = octx.rev() if self.stop_rev <= src_rev < ctx.rev() and \ self.visiblerev(src_rev) and self.visiblectx(octx): parents.append((octx, LINE_TYPE_OBSOLETE, False)) def walk(self): repo = self.repo branch = self.branch showgraftsource = self.showgraftsource visiblerev = self.visiblerev visiblectx = self.visiblectx upcomingparents = set() for ctx in self._iter_revs(repo, visiblerev): if ctx.rev() not in upcomingparents: if branch and ctx.branch() != branch: continue else: upcomingparents.remove(ctx.rev()) parents = [(p, LINE_TYPE_PARENT, i == 0) for i, p in enumerate(filter(visiblectx, ctx.parents())) if visiblerev(p.rev())] if showgraftsource: self._append_graft_source(ctx, parents) upcomingparents.update([p[0].rev() for p in parents]) yield ctx, parents class _FamilyLineRev(object): r"""Revision information for building family line relations Public fields: rev Revision number. Can be None (means workingdir) visible True if self should be shown destinations List of parent/family line edge destinations. Each elements are tuple: revno revision number of edge destination edge linetype LINE_TYPE_PARENT or LINE_TYPE_FAMILY is_p1 True if revno is in ancestors(p1(self.rev)) next_descendants dictionary: key _FamilyLineRev which can be upper-end of family line edge to self.rev value True if self.rev is in ancestors(p1(key.rev)) excluded_descendants frozenset of _FamilyLineRev. Revisions which are excluded from next_descendants. family line is *NOT* drawn between self and these revisions. pending Number of unclosed edges of which upper-end is self.rev Initial value is number of hidden parents(set by proceed()), and incremented or decremented with proceeding DAG scan. It will become 0 when all NVAs of self are determined. This is illustration of relations between instances : +--------------------------------------+ o | upper visible revision | | +--------------------------------------+ x next_descendants ^ | destinations ^ |\ | v (FAMILY) | | | +--------------+ | @ | | self | | next_descendants | | +--------------+ | excluded_descendants | x excluded_descendants ^ | destinations | | | (*1) | v (PARENT) | |/ +--------------------------------------+ o | lower visible revision | : +--------------------------------------+ (*1) because here is parent line, not family line """ __slots__ = ["rev", "visible", "next_descendants", "excluded_descendants", "pending", "destinations"] def __init__(self, rev, visible): self.rev = rev self.visible = visible self.next_descendants = {} self.excluded_descendants = set() self.pending = 0 self.destinations = [] def proceed(self, parents): next_descendants = self.next_descendants excluded_descendants = self.excluded_descendants excluded_descendants.difference_update([r for r in excluded_descendants if not r.pending]) # decrement `pending` of each next_descendants regardless of # self.visible once. # (it will be reincremented if self is hidden and self has parents) for nd in next_descendants: nd.pending -= 1 assert nd.pending >= 0 if excluded_descendants: next_descendants = dict(kv for kv in next_descendants.items() if kv[0] not in excluded_descendants) if self.visible: for nd, is_p1 in next_descendants.items(): nd.destinations.append((self.rev, LINE_TYPE_FAMILY, is_p1)) # `next_descendants` are also excluded from next_descendants # of parents because of definition #4 parent_ed = excluded_descendants.union(next_descendants) for i, p in enumerate(parents): p.add_excluded_descendants(parent_ed) if p.visible: self.destinations.append((p.rev, LINE_TYPE_PARENT, i == 0)) p.add_excluded_descendants([self]) else: p.add_next_descendants({self: i == 0}) else: # just pass to parents for p in parents: p.add_next_descendants(next_descendants) p.add_excluded_descendants(excluded_descendants) # these are no longer needed self.next_descendants = self.excluded_descendants = None def add_next_descendants(self, descendants): for d, is_p1 in descendants.items(): if d in self.next_descendants: self.next_descendants[d] |= is_p1 else: d.pending += 1 self.next_descendants[d] = is_p1 def add_excluded_descendants(self, descendants): self.excluded_descendants.update(descendants) def __hash__(self): return hash(self.rev) def __eq__(self, other): return isinstance(other, _FamilyLineRev) and self.rev == other.rev def __ne__(self, other): return not self.__eq__(other) def __repr__(self): if self.rev is None: return "_FamilyLineRev(+)" else: return "_FamilyLineRev(%d)" % self.rev class FamilyLineDag(StandardDag): """Generate filtered DAG with family lines for grapher""" def walk(self): repo = self.repo stop_rev = self.stop_rev showgraftsource = self.showgraftsource upcomingrevs = {} visiblerev = self.visiblerev visiblectx = self.visiblectx def get_or_create_rev(ctx): rev = ctx.rev() ret = upcomingrevs.get(rev) if not ret: ret = upcomingrevs[rev] = \ _FamilyLineRev(rev, visiblerev(rev) and visiblectx(ctx)) return ret queue = collections.deque() for ctx in self._iter_revs(repo, lambda rev: True): rev = upcomingrevs.pop(ctx.rev(), None) if not rev: if not visiblerev(ctx.rev()) or not visiblectx(ctx): continue rev = _FamilyLineRev(ctx.rev(), True) parents = [get_or_create_rev(p) for p in ctx.parents() if p.rev() >= stop_rev] rev.proceed(parents) if rev.visible: queue.append(rev) # yield after rev.pending becomes 0 while queue and not queue[0].pending: r = queue.popleft() # order by p1 -> p2, small rev -> large rev destinations = sorted(r.destinations, key=lambda e: (not e[2], e[0])) parents = [(repo[pno], linktype, is_p1) for (pno, linktype, is_p1) in destinations] rctx = repo[r.rev] if showgraftsource: self._append_graft_source(rctx, parents) yield rctx, parents assert not queue, queue def revision_grapher(repo, opts): """incremental revision grapher param repo The repository opt revset set of revisions to graph. opt branch Only graph this branch opt allparents If set in addition to branch, then cset outside the branch that are ancestors to some cset inside the branch is also graphed opt showfamilyline If set in addition to revset, then family line will be shown between descendants and ancestors This generator function walks through the revision range in descending order. When revset is specified, range is from max(revset) to min(revset), otherwise from working tree(pseudo revision) to rev0. For each revision emits tuples with the following elements: - current revision - column of the current node in the set of ongoing edges - color of the node (?) - lines: a list of ((col, next_col), edge) defining the edges between the current row and the next row - parent revisions of current revision """ revset = opts.get('revset') if revset: start_rev = max(revset) stop_rev = min(revset) visiblerev = lambda rev: rev in revset else: start_rev = None stop_rev = 0 visiblerev = lambda rev: True if revset and opts.get('showfamilyline'): cls = FamilyLineDag else: cls = StandardDag dag = cls(repo, start_rev, stop_rev, opts.get('branch'), opts.get('allparents'), opts.get('showgraftsource'), visiblerev) return _iter_graphnodes(dag, GraphNode.fromchangectx) def _iter_graphnodes(dag, nodefactory): revs = [] activeedges = [] # order is not important rev_color = RevColorPalette() for ctx, parents in dag.walk(): curr_rev = ctx.rev() # Compute revs and next_revs. if curr_rev not in revs: # New head. revs.append(curr_rev) rev_index = revs.index(curr_rev) next_revs = revs[:] activeedges = [e for e in activeedges if e.endrev < curr_rev] # Add parents to next_revs. parents_to_add = [] for pctx, link_type, is_p1 in parents: parent = pctx.rev() if parent not in next_revs: # Because the parents originate from multiple sources, it is # theoretically possible that several point to the same # revision. Only take the first of this (which is graftsource # because it is added before). if parent in parents_to_add: continue parents_to_add.append(parent) if is_p1: color = rev_color[ctx] elif link_type in (LINE_TYPE_GRAFT, LINE_TYPE_OBSOLETE): color = rev_color.nextcolor() else: color = rev_color[pctx] activeedges.append(GraphEdge(curr_rev, parent, color, link_type)) next_revs[rev_index:rev_index + 1] = parents_to_add lines = [] for e in activeedges: if e.startrev == curr_rev: r = e.startrev else: r = e.endrev p = (revs.index(r), next_revs.index(e.endrev)) lines.append((p, e)) yield nodefactory(dag.repo, ctx, rev_index, lines) revs = next_revs def filelog_grapher(repo, path): ''' Graph the ancestry of a single file (log). Deletions show up as breaks in the graph. ''' if hasattr(repo, 'shallowmatch') and repo.shallowmatch(path): filedag = ShallowFileDag else: filedag = FileDag dag = filedag(repo, path) return _iter_graphnodes(dag, GraphNode.fromfilectx) class FileDag(object): def __init__(self, repo, path): self.repo = repo self.path = path def _getflogheads(self): flog = self.repo.file(self.path) return flog.heads() def walk(self): flogheads = self._getflogheads() heads = sorted(self.repo.filectx(self.path, fileid=x).rev() for x in flogheads) or [-1] rev = heads.pop() _paths = {} while rev >= 0: revpath = _paths.pop(rev, self.path) # Add parents to next_revs fctx = self.repo.filectx(revpath, changeid=rev) for pfctx in fctx.parents(): _paths[pfctx.rev()] = pfctx.path() parents = [(pfctx, LINE_TYPE_PARENT, i == 0) for i, pfctx in enumerate(fctx.parents())] yield fctx, parents if _paths: rev = max(_paths) else: rev = -1 if heads and rev <= heads[-1]: rev = heads.pop() class ShallowFileDag(FileDag): """FileDag specialization for shallow (remotefilelog) repository""" def _getflogheads(self): repo = self.repo path = self.path try: # ui.expandpath() was dropped in hg dcf983a5f906, and # urlutil.get_unique_pull_path_obj() was added in hg f4626b74b941. # Additionally, hg.peer() started taking a path object in hg # aa36771ef505. All of this landed in hg 6.4. try: # pytype: disable=module-attr dest = urlutil.get_unique_pull_path_obj( b'getflogheads', repo.ui ) # pytype: enable=module-attr except AttributeError: # pytype: disable=attribute-error dest = repo.ui.expandpath(b'default') # pytype: enable=attribute-error peer = hg.peer(repo, {}, dest) except error.RepoError: peer = None flogheads = set() repoheads = set(repo.heads()) # Get filelog heads from server and filter local heads with peer heads if peer is not None and peer.capable(b'getflogheads'): repoheads -= set(peer.heads()) flogheads.update(set(peer.getflogheads(path))) # Get filelog heads from local repo heads. # This allows to get changes not yet pushed to the server. This is # also a fallback in case the server is not available. for head in repoheads: try: fctx = repo[head].filectx(path) fnode = node.hex(fctx.filenode()) if fnode not in flogheads: flogheads.add(fnode) # We filter out parents of added node. # A parent could already be in flogheads if still a # head on the server, but not anymore in local repository flogheads -= set([node.hex(pfctx.filenode()) for pfctx in fctx.parents()]) except error.ManifestLookupError: pass return flogheads class RevColorPalette(object): """Assign node and line colors for each revision""" def __init__(self): self._pendingheads = [] self._knowncolors = {} self._curcolor = -1 def _fillpendingheads(self, stoprev): if stoprev is None: return # avoid filling everything (int_rev < None is False) nextpendingheads = [] for p_ctxs, color in self._pendingheads: pending = self._fillancestors(p_ctxs, color, stoprev) if pending: nextpendingheads.append((pending, color)) self._pendingheads = nextpendingheads def _fillancestors(self, p_ctxs, curcolor, stoprev): while p_ctxs: ctx0 = p_ctxs[0] rev0 = ctx0.rev() if rev0 < stoprev: return p_ctxs if rev0 in self._knowncolors: return self._knowncolors[rev0] = curcolor p_ctxs = ctx0.parents() def nextcolor(self): self._curcolor += 1 return self._curcolor def __getitem__(self, ctx): rev = ctx.rev() if rev not in self._knowncolors: self._fillpendingheads(rev) if rev not in self._knowncolors: color = self.nextcolor() self._knowncolors[rev] = color p_ctxs = ctx.parents() self._pendingheads.append((p_ctxs, color)) return self._knowncolors[rev] @attr.s(slots=True, repr=False) class GraphEdge(object): startrev = attr.ib() # int or None (for working rev) endrev = attr.ib() # int color = attr.ib() # int linktype = attr.ib() # one of LINE_TYPE def __repr__(self): return '%s(%r->%r, color=%r, linetype=%r)' % ( self.__class__.__name__, self.startrev, self.endrev, self.color, self.linktype) @property def importance(self): """Sort key of overlapped edges; highest one should be drawn last""" # prefer parent-child relation and younger (i.e. longer) edge return -self.linktype, -self.color class GraphNode(object): """Graph node for all actual changesets, as well as the working copy Simple class to encapsulate a hg node in the revision graph. Does nothing but declaring attributes. """ __slots__ = ["bottomlines", "extra", "hidden", "obsolete", "rev", "shape", "toplines", "instabilities", "wdparent", "x"] @classmethod def fromchangectx(cls, repo, ctx, xposition, lines): if ctx.thgmqappliedpatch(): shape = NODE_SHAPE_APPLIEDPATCH elif ctx.closesbranch(): shape = NODE_SHAPE_CLOSEDBRANCH elif phases.draft == ctx.phase(): shape = NODE_SHAPE_REVISION_DRAFT elif phases.secret <= ctx.phase(): shape = NODE_SHAPE_REVISION_SECRET else: shape = NODE_SHAPE_REVISION wdparent = ctx.node() in repo.dirstate.parents() return cls(shape, ctx=ctx, xposition=xposition, lines=lines, wdparent=wdparent) @classmethod def fromfilectx(cls, repo, fctx, xposition, lines): ctx = repo.unfiltered()[fctx.rev()] # get changectx wrapped by thgrepo obj = cls.fromchangectx(repo, ctx, xposition, lines) obj.extra = [fctx.path()] return obj def __init__(self, shape, ctx, xposition, lines, wdparent=False, extra=None): self.rev = ctx.rev() self.hidden = ctx.hidden() self.obsolete = ctx.obsolete() self.instabilities = ctx.instabilities() self.shape = shape self.x = xposition self.bottomlines = lines self.toplines = [] # set from Graph.__getitem__ self.wdparent = wdparent self.extra = extra @property def faded(self): """Indicates whether the node should be faded in the UI""" return self.hidden or self.obsolete @property def cols(self): """Number of columns for the node""" return max([self.x] + [max(p) for p, _e in self.bottomlines]) + 1 class PatchGraphNode(object): """Node for un-applied patch queue items. This node is always displayed unfaded and only occupy one column. Furthermore, the revision is the name of the patch. """ def __init__(self, name): self.name = name self.shape = NODE_SHAPE_UNAPPLIEDPATCH self.rev = name # unapplied patch uses its name as rev self.wdparent = False self.toplines = [] self.bottomlines = [] self.instabilities = () self.x = 0 @property def faded(self): """Indicates whether the node should be faded in the UI""" return False @property def cols(self): """Number of columns for the node""" return 1 class Graph(object): """ Graph object to ease hg repo navigation. The Graph object instantiate a `revision_grapher` generator, and provide a `fill` method to build the graph progressively. """ def __init__(self, repo, grapher): self.repo = repo self.grapher = grapher self.nodes = [] self.nodesdict = {} def __getitem__(self, idx): if isinstance(idx, slice): # XXX TODO: ensure nodes are built return self.nodes.__getitem__(idx) if idx >= len(self.nodes): # build as many graph nodes as required to answer the # requested idx self.build_nodes(idx) if idx >= len(self): return self.nodes[-1] return self.nodes[idx] def getrevstate(self, idx): """Return (rev, isunapplied) of the node at the specified row""" n = self[idx] return n.rev, False def __len__(self): # len(graph) is the number of actually built graph nodes return len(self.nodes) def build_nodes(self, nnodes=None, rev=None): """ Build up to `nnodes` more nodes in our graph, or build as many nodes required to reach `rev`. If both rev and nnodes are set, build as many nodes as required to reach rev plus nnodes more. """ if self.grapher is None: return False usetimer = nnodes is None and rev is None if usetimer: if os.name == "nt": timer = time.clock # pytype: disable=module-attr else: timer = time.time startsec = timer() nnodes = -1 # infinite elif nnodes is None: nnodes = 0 if rev is not None and self.nodes: gnode = self.nodes[-1] if isinstance(gnode.rev, int) and gnode.rev <= rev: rev = None # already reached rev if rev is None and nnodes == 0: return True for gnode in self.grapher: if self.nodes: gnode.toplines = self.nodes[-1].bottomlines self.nodes.append(gnode) self.nodesdict[gnode.rev] = gnode if rev is None: nnodes -= 1 elif isinstance(gnode.rev, int) and gnode.rev <= rev: rev = None # we reached rev, switching to nnode counter if rev is None and nnodes == 0: return True if usetimer: cursec = timer() if cursec < startsec or cursec > startsec + 0.1: return True self.grapher = None return False def isfilled(self): return self.grapher is None def _bottom_rev(self): """Returns the known lowest revision number If nodes == {} or {wctx}, the lowest revision is not yet known, so returns None. """ if not self.nodes: return None return self.nodes[-1].rev def index(self, rev): brev = self._bottom_rev() if brev is None: # graph is empty, let's build some nodes. nodes for unapplied # patches are built at once because they don't have comparable # revision numbers, which makes build_nodes() go wrong. self.build_nodes(10, len(self.repo) - 1) brev = self._bottom_rev() if isinstance(rev, int) and brev is not None and rev < brev: self.build_nodes(brev - rev) try: return self.nodes.index(self.nodesdict[rev]) except KeyError: raise ValueError('rev %r not found' % rev) # # File graph method # def filename(self, rev): return self.nodesdict[rev].extra[0] class GraphWithMq(object): """Graph layouter that also shows un-applied mq changes""" def __init__(self, graph, patchnames): object.__init__(self) self.graph = graph self._patchnames = list(reversed(patchnames)) def isfilled(self): """Indicates whether the graph is done computing""" return self.graph.isfilled() def build_nodes(self, fillstep=None, rev=None): """Ensures that the graph layout is computed""" self.graph.build_nodes(fillstep, rev) def __len__(self): return len(self._patchnames) + len(self.graph) def __getitem__(self, row): if row < len(self._patchnames): return PatchGraphNode(self._patchnames[row]) return self.graph[row - len(self._patchnames)] def getrevstate(self, row): """Return (rev, isunapplied) of the node at the specified row""" if row < len(self._patchnames): return self._patchnames[row], True return self.graph.getrevstate(row - len(self._patchnames)) def index(self, rev): """Get row number for specified revision""" if isinstance(rev, bytes): return self._patchnames.index(rev) i = self.graph.index(rev) return len(self._patchnames) + i ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730809007.0 tortoisehg-6.9/tortoisehg/hgqt/graphopt.py0000644000000000000000000004077014712406257017665 0ustar00rootroot# Copyright (c) 2016 Unity Technologies. # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. """helper functions for efficiently computing graphs for the revision history This module provides an optimised model for computing graph layouts that are identical to, but with different colored edges to the normal graph layout algorithm. The optimised model is both faster to compute and uses less memory for repositories with a lot of history. """ from __future__ import annotations import collections import itertools from mercurial import ( pycompat, revset, util, ) from ..util import ( hglib, obsoleteutil, ) from . import ( graph as graphmod, ) from .graph import ( LINE_TYPE_PARENT, LINE_TYPE_FAMILY, LINE_TYPE_OBSOLETE, ) if hglib.TYPE_CHECKING: from typing import ( List, Tuple, ) def _compute_lines(rev: int, prevs: List[int], revs: List[int], active_edges: List[GraphEdge]) -> List[Tuple[Tuple[int, int], GraphEdge]]: """Computes current index and next line's index of each active edge Args: active_edges (list[GraphEdge]): Edges relevant for the current line. rev (int): The current revision. prevs (list[int]): Index of nodes for the previous line. revs (list[int]): Index of nodes for the current line. """ lines = [] for edge in active_edges: if edge.startrev == rev: start_rev = edge.startrev else: start_rev = edge.endrev pos = (prevs.index(start_rev), revs.index(edge.endrev)) lines.append((pos, edge)) return lines def _create_node(repo, rev, index_info): ctx = repo[rev] xposition, prevs, revs, actedges = index_info lines = _compute_lines(rev, prevs, revs, actedges) return graphmod.GraphNode.fromchangectx(repo, ctx, xposition, lines) class GraphEdge(object): """Edge from startrev to endrev""" def __init__(self, graph, startrev, endrev, linktype): self.graph = graph self.startrev = startrev self.endrev = endrev self.linktype = linktype self._color = None @property def color(self): """Color of the edge, uses branch color of endrev""" if self._color is None: self._color = self.graph.edge_color( self.graph.repo[self.endrev].branch()) return self._color def __repr__(self): return '%s(%r->%r, color=%r, linetype=%r)' % ( self.__class__.__name__, self.startrev, self.endrev, self.color, self.linktype) @property def importance(self): """Sort key of overlapped edges; highest one should be drawn last""" # prefer parent-child relation and younger (i.e. longer) edge return -self.linktype, -self.endrev def _branch_spec(repo, branch, all_parents): if all_parents: return repo.revs(b'::branch(%s)', branch) else: return repo.revs(b'branch(%s)', branch) class Graph(object): """Efficient graph layouter for repositories. The grapher pre-computes the overall layout of the graph in a memory and time efficient way, caching enough data that the current view can be calculated efficiently without putting an unreasonable amount of strain on system memory usage for large repositories. Currently, it is possible to visualise a few hundred nodes and keep the layout of a 200k+ changeset repository in about 2.4 GB memory, compared to about 14 GB memory for the existing graph layout algorithm. To achieve efficiency, this layouter does not support drawing graft or obsoletion edges.""" def __init__(self, repo, opts): self._repo = repo self._graph = {} self._cache = util.lrucachedict(1000) self._revset_set = opts.get('revset', set()) self._revset_set_pure = self._revset_set self._revset = sorted(self._revset_set, reverse=True) self._all_parents = opts.get('allparents', False) self._show_family_line = opts.get('showfamilyline', False) self._show_graft_source = opts.get('showgraftsource', False) branch = opts.get('branch', '') if branch: revs = _branch_spec(self._repo, branch, self._all_parents) add_none = False if self._revset: self._revset_set = self._revset_set & frozenset(revs) else: self._revset_set = frozenset(revs) prevs = set([pctx.rev() for pctx in self._repo[None].parents()]) if prevs & self._revset_set: add_none = True self._revset = sorted(self._revset_set, reverse=True) if add_none: self._revset.insert(0, None) self._revset_set_pure = self._revset_set self._revset_set = frozenset(self._revset_set | {None}) self._edge_color_cache = {} self._grapher = self._build_nodes() self._row_to_rev = dict( enumerate(self._get_revision_iterator())) @property def _clean_revset_set(self): if self._revset_set_pure: return self._revset_set_pure return self._revset_set def edge_color(self, branch): """Color function for edges""" idx = self._edge_color_cache.get(branch, None) if idx is None: idx = graphmod.hashcolor(branch) self._edge_color_cache[branch] = idx return idx def isfilled(self): """Indicates whether the graph is done computing. We prefer to cheat the repository model into recreating rather than letting it try to overwrite parts of the model as it does not fit with the normal layouting model. This value is thus always false.""" return False @property def repo(self): """Repository instance for the graph""" return self._repo def _workingdir_parents(self): parents = [ctx.rev() for ctx in self._repo[None].parents()] if len(parents) == 1: parents.append(-1) return parents def _get_revision_iterator(self): if self._revset: revs = revset.spanset(self._repo, max(self._clean_revset_set), min(self._clean_revset_set) - 1) if None not in self._revset_set: return revs return itertools.chain([None], revs) else: revs = revset.spanset(self._repo, len(self._repo) - 1, -1) return itertools.chain([None], revs) def _filter_parents(self, p1, p2): """omit parents not in revset as well as degenerate repository cases""" if self._revset: if p1 not in self._revset_set: p1 = -1 if p2 not in self._revset_set: p2 = -1 if p1 == p2: p2 = -1 return p1, p2 def _find_family(self, family, rev, op, p, op2, p2): if not self._revset: return [p, p2] include_p1 = op != -1 and p == -1 include_p2 = op2 != -1 and p2 == -1 if not include_p1 and not include_p2: return [p, p2] rv = [] if not include_p1: rv.append(p) if not include_p2: rv.append(p2) fam = family[rev] candidates = [c for c, cisp1 in fam if include_p1 and cisp1 or include_p2 and not cisp1] if not candidates: return rv if len(candidates) == 1: return rv + candidates remove = set() for candidate in candidates: remove |= set([c for c, _ in family[candidate]]) return sorted(rv + list(set(candidates) - remove), reverse=True) def _pre_compute_family(self, parentrevs): """ Calculates the ancestry of all involved changesets if we're displaying a revset and showing family lines are enabled. A family line is added to an edge if there is no direct parent connected to it and there is an ancestral relationship between the two. If the ancestor can be reached both through the first and second parent, only the first parent ancestor edge is rendered. Args: parentrevs (dict[int,list[int]]): Parents for each revision. """ if not self._revset or not self._show_family_line: return None anc = collections.defaultdict(set) holders = collections.defaultdict(set) revrange = self._get_revision_iterator() for r in revrange: p1, p2 = parentrevs[r] toupdate = holders.pop(r, ()) if not toupdate and r not in self._revset_set: continue for origrev, currentrev, isp1, ndup in toupdate: if not ndup: if p1 != -1 and p1 in self._revset_set: anc[origrev].add((p1, isp1)) if p2 != -1 and p2 in self._revset_set: anc[origrev].add((p2, isp1)) if p1 != -1: if p1 not in self._revset_set: holders[p1].add((origrev, p1, isp1, ndup)) else: anc[origrev].add((p1, isp1)) if p2 != -1: if p2 not in self._revset_set: holders[p2].add((origrev, p2, isp1, ndup)) else: anc[origrev].add((p2, isp1)) if r in self._revset_set: if p1 != -1: holders[p1].add((r, p1, True, p1 not in self._revset_set)) if p1 in self._revset_set: anc[r].add((p1, True)) if p2 != -1: holders[p2].add((r, p2, False, p2 not in self._revset_set)) if p2 in self._revset_set: anc[r].add((p2, False)) continue return anc def _add_obsolete(self, rev, parents_to_add, actedge): """Resolves obsolete edges. This is a mangled copy from obsoleteutil.first_known_predecessors that avoids using context lookups, except to determine filtering state. """ if self._revset and rev not in self._revset_set: return revs = list(obsoleteutil.first_known_predecessors_rev(self._repo, rev)) if self._revset: revs = [r for r in revs if r in self._revset_set] for r in revs: actedge[r].append(GraphEdge(self, rev, r, LINE_TYPE_OBSOLETE)) parents_to_add.append(r) def _build_nodes(self): """ Generator for computing necessary information to layout the graph. For each revision the previous node indexes are computed, the current node indexes, as well as the active edges that should be rendered. Returns: Revision just processed. """ clog = self._repo.changelog parentrevs = dict([(r, clog.parentrevs(r)) for r in clog]) parentrevs[None] = self._workingdir_parents() actedge = collections.defaultdict(list) revs = [] revrange = self._get_revision_iterator() family = self._pre_compute_family(parentrevs) for rev in revrange: addparents = not self._revset_set or rev in self._revset_set if rev not in revs and addparents: revs.append(rev) rev_index = revs.index(rev) if addparents else 0 if rev in actedge: del actedge[rev] op1, op2 = parentrevs[rev] p1, p2 = self._filter_parents(op1, op2) p1l, p2l = LINE_TYPE_PARENT, LINE_TYPE_PARENT # compute family lines if enabled and we're in revset mode if self._revset and addparents and self._show_family_line: fp1, fp2 = p1, p2 parents = self._find_family(family, rev, op1, p1, op2, p2) if addparents: for p in parents: if p != -1: pl = LINE_TYPE_FAMILY if p != fp1 and p != fp2 else p1l actedge[p].append(GraphEdge(self, rev, p, pl)) parents_to_add = [p for p in parents if p != -1 and p not in revs] else: if p1 != -1 and addparents: actedge[p1].append(GraphEdge(self, rev, p1, p1l)) if p2 != -1 and addparents: actedge[p2].append(GraphEdge(self, rev, p2, p2l)) parents_to_add = [p for p in (p1, p2) if p != -1 and p not in revs] if self._show_graft_source: self._add_obsolete(rev, parents_to_add, actedge) prevs = revs[:] if addparents: revs[rev_index:rev_index + 1] = parents_to_add self._graph[rev] = ( rev_index, prevs, revs[:], list(itertools.chain(*list(actedge.values())))) yield rev def build_nodes(self, fillstep=None, rev=None): """Ensures that the graph layout is computed to the specified point. If fillstep is specified, it is the number of revisions to fetch from the current point. If rev is specified, it is the revision that we must load until. """ if self._grapher is None: return if rev is not None: if rev not in self._graph: while True: r = next(self._grapher, -1) if r == -1: self._grapher = None break if r is not None and r < rev: break if fillstep is not None: if self._grapher: for i in pycompat.xrange(0, fillstep): if next(self._grapher, -1) == -1: self._grapher = None break def __len__(self): """Returns the number of revisions in the graph. If we are not in revset mode, this also includes an extra revision for the working context. """ if self._revset: return len(self._revset) return len(self._row_to_rev) def _get_or_load_graph_node(self, rev): """Retrieve node from graph cache. This will load graph layout information until rev is reached if it is not already available, potentially blocking for a while. """ if rev not in self._graph: self.build_nodes(rev=rev) return self._graph[rev] def _rev_from_row(self, row): if self._revset: if row < 0 or row >= len(self._revset): return self._revset[-1] return self._revset[row] return self._row_to_rev[row] def __getitem__(self, row): """Entry point for repomodel to fetch individual rows for display. Once the overall layout is determined, a node is either fetched from the internal LRU cache, or instantiated, which will trigger the final computation of edge layout of the row. """ rev = self._rev_from_row(row) if rev in self._cache: node = self._cache[rev] if node is not None: return node idxinfo = self._get_or_load_graph_node(rev) node = _create_node(self._repo, rev, idxinfo) if row > 0: prevrev = self._rev_from_row(row - 1) if (not self._revset or None in self._revset) or prevrev is not None: pidxinfo = self._get_or_load_graph_node(prevrev) _pprevs, _prevs, _pactedges = pidxinfo[1:] plines = _compute_lines(prevrev, _pprevs, _prevs, _pactedges) node.toplines = plines[:] self._cache[rev] = node return node def getrevstate(self, row): """Return (rev, isunapplied) of the node at the specified row""" return self._rev_from_row(row), False def index(self, rev): """Get row number for specified revision""" idx = 0 isrevset = bool(self._revset) for iter_rev in self._get_revision_iterator(): if iter_rev == rev: return idx if not isrevset or iter_rev in self._revset_set: idx += 1 raise ValueError('rev %r not found' % rev) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/grep.py0000644000000000000000000007571014672254332017000 0ustar00rootroot# grep.py - Working copy and history search # # Copyright 2010 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os import re from .qtcore import ( QAbstractTableModel, QMimeData, QModelIndex, QSettings, QThread, QUrl, Qt, pyqtSignal, pyqtSlot, ) from .qtgui import ( QAbstractItemView, QAction, QCheckBox, QCompleter, QDialog, QFont, QFrame, QGridLayout, QKeySequence, QLabel, QLineEdit, QHBoxLayout, QMenu, QPushButton, QRadioButton, QShortcut, QTableView, QVBoxLayout, QWidget, ) from mercurial import ( commands, error, hg, match, pycompat, scmutil, subrepo, ui, ) from mercurial.utils import ( stringutil, ) from ..util import ( hglib, paths, thread2, ) from ..util.i18n import _ from . import ( cmdui, filedialogs, fileview, htmldelegate, htmlui, qtlib, settings, thgrepo, visdiff, ) # This widget can be embedded in any application that would like to # provide search features class SearchWidget(QWidget, qtlib.TaskWidget): '''Working copy and repository search widget''' showMessage = pyqtSignal(str) progress = pyqtSignal(str, object, str, str, object) revisionSelected = pyqtSignal(int) def __init__(self, repoagent, upats, parent=None, **opts): QWidget.__init__(self, parent) self._repoagent = repoagent self.thread = None mainvbox = QVBoxLayout() mainvbox.setSpacing(6) hbox = QHBoxLayout() hbox.setContentsMargins(2, 2, 2, 2) le = QLineEdit() le.setPlaceholderText(_('### regular expression search pattern ###')) chk = QCheckBox(_('Ignore case')) bt = QPushButton(_('Search')) bt.setDefault(True) f = bt.font() f.setWeight(QFont.Weight.Bold) bt.setFont(f) cbt = QPushButton(_('Stop')) cbt.setEnabled(False) cbt.clicked.connect(self.stopClicked) hbox.addWidget(le, 1) hbox.addWidget(chk) hbox.addWidget(bt) hbox.addWidget(cbt) incle = QLineEdit() excle = QLineEdit() working = QRadioButton(_('Working Copy')) revision = QRadioButton(_('Revision')) history = QRadioButton(_('All History')) singlematch = QCheckBox(_('Report only the first match per file')) wholeword = QCheckBox(_('Match whole words only')) follow = QCheckBox(_('Follow copies and renames')) recurse = QCheckBox(_('Recurse into subrepositories')) revle = QLineEdit() grid = QGridLayout() grid.addWidget(working, 0, 0) grid.addWidget(recurse, 0, 1) grid.addWidget(history, 1, 0) grid.addWidget(follow, 1, 1) grid.addWidget(revision, 2, 0) grid.addWidget(revle, 2, 1) grid.addWidget(singlematch, 0, 3) grid.addWidget(wholeword, 0, 4) ilabel = QLabel(_('Includes:')) ilabel.setBuddy(incle) elabel = QLabel(_('Excludes:')) elabel.setBuddy(excle) ehelpstr = _('Comma separated list of exclusion file patterns. ' 'Exclusion patterns are applied after inclusion patterns.') ihelpstr = _('Comma separated list of inclusion file patterns. ' 'By default, the entire repository is searched.') incle.setPlaceholderText(u' '.join([u'###', ihelpstr, u'###'])) excle.setPlaceholderText(u' '.join([u'###', ehelpstr, u'###'])) grid.addWidget(ilabel, 1, 2) grid.addWidget(incle, 1, 3, 1, 2) grid.addWidget(elabel, 2, 2) grid.addWidget(excle, 2, 3, 1, 2) grid.setColumnStretch(3, 1) grid.setColumnStretch(1, 0) frame = QFrame() frame.setFrameStyle(QFrame.Shape.StyledPanel) revision.toggled.connect(self._onRevisionToggled) history.toggled.connect(singlematch.setDisabled) revle.setEnabled(False) revle.returnPressed.connect(self.runSearch) excle.returnPressed.connect(self.runSearch) incle.returnPressed.connect(self.runSearch) bt.clicked.connect(self.runSearch) recurse.setChecked(True) working.setChecked(True) working.toggled.connect(self._updateRecurse) history.toggled.connect(self._updateFollow) incle.textChanged.connect(self._updateFollow) excle.textChanged.connect(self._updateFollow) mainvbox.addLayout(hbox) frame.setLayout(grid) mainvbox.addWidget(frame) tv = MatchTree(repoagent, self) tv.revisionSelected.connect(self.revisionSelected) tv.setColumnHidden(COL_REVISION, True) tv.setColumnHidden(COL_USER, True) mainvbox.addWidget(tv) le.returnPressed.connect(self.runSearch) repo = repoagent.rawRepo() self.tv, self.regexple, self.chk, self.recurse = tv, le, chk, recurse self.incle, self.excle, self.revle = incle, excle, revle self.wctxradio, self.ctxradio, self.aradio = working, revision, history self.wholeword = wholeword self.singlematch, self.follow, self.eframe = singlematch, follow, frame self.searchbutton, self.cancelbutton = bt, cbt self.regexple.setFocus() if 'rev' in opts or 'all' in opts: self.setSearch(upats[0], **opts) elif len(upats) >= 1: le.setText(upats[0]) if len(upats) > 1: incle.setText(','.join(upats[1:])) chk.setChecked(opts.get('ignorecase', False)) repoid = hglib.shortrepoid(repo) s = QSettings() sh = qtlib.readStringList(s, 'grep/search-' + repoid) ph = qtlib.readStringList(s, 'grep/paths-' + repoid) self.pathshistory = [p for p in ph if p] self.searchhistory = [s for s in sh if s] self.setCompleters() mainvbox.setContentsMargins(0, 0, 0, 0) self.setLayout(mainvbox) self._updateRecurse() self._updateFollow() @property def repo(self): return self._repoagent.rawRepo() def setCompleters(self): comp = QCompleter(self.searchhistory, self) QShortcut(QKeySequence('CTRL+D'), comp.popup(), self.onSearchCompleterDelete) self.regexple.setCompleter(comp) comp = QCompleter(self.pathshistory, self) QShortcut(QKeySequence('CTRL+D'), comp.popup(), self.onPathCompleterDelete) self.incle.setCompleter(comp) self.excle.setCompleter(comp) def onSearchCompleterDelete(self): 'CTRL+D pressed in search completer popup window' text = self.regexple.completer().currentCompletion() if text and text in self.searchhistory: self.searchhistory.remove(text) self.setCompleters() self.showMessage.emit(_('"%s" removed from search history') % text) def onPathCompleterDelete(self): 'CTRL+D pressed in path completer popup window' text = self.incle.completer().currentCompletion() if text and text in self.pathshistory: self.pathshistory.remove(text) self.setCompleters() self.showMessage.emit(_('"%s" removed from path history') % text) def addHistory(self, search, incpaths, excpaths): if search: usearch = hglib.tounicode(search) if usearch in self.searchhistory: self.searchhistory.remove(usearch) self.searchhistory = [usearch] + self.searchhistory[:9] for p in incpaths + excpaths: up = hglib.tounicode(p) if up in self.pathshistory: self.pathshistory.remove(up) self.pathshistory = [up] + self.pathshistory[:9] self.setCompleters() def setRevision(self, rev): 'Repowidget is forwarding a selected revision' if isinstance(rev, int): self.revle.setText(str(rev)) @pyqtSlot(bool) def _onRevisionToggled(self, checked): self.revle.setEnabled(checked) if checked: self.revle.selectAll() self.revle.setFocus() @pyqtSlot() def _updateRecurse(self): checked = self.wctxradio.isChecked() try: wctx = self.repo[None] if b'.hgsubstate' in wctx: self.recurse.setEnabled(checked) else: self.recurse.setEnabled(False) self.recurse.setChecked(False) except error.Abort: self.recurse.setEnabled(False) self.recurse.setChecked(False) @pyqtSlot() def _updateFollow(self): slowpath = bool(self.incle.text() or self.excle.text()) self.follow.setEnabled(self.aradio.isChecked() and not slowpath) if slowpath: self.follow.setChecked(False) def setSearch(self, upattern, **opts): self.regexple.setText(upattern) if opts.get('all'): self.aradio.setChecked(True) elif opts.get('rev'): self.ctxradio.setChecked(True) self.revle.setText(opts['rev']) def stopClicked(self): if self.thread and self.thread.isRunning(): self.thread.cancel() self.thread.wait(2000) def keyPressEvent(self, event): if (event.key() == Qt.Key.Key_Escape and self.thread and self.thread.isRunning()): self.stopClicked() else: return super(SearchWidget, self).keyPressEvent(event) def canExit(self): 'Repowidget is closing, can we quit?' if self.thread and self.thread.isRunning(): return False return True def saveSettings(self, s): repoid = hglib.shortrepoid(self.repo) s.setValue('grep/search-'+repoid, self.searchhistory) s.setValue('grep/paths-'+repoid, self.pathshistory) @pyqtSlot() def runSearch(self): """Run search for the current pattern in background thread""" if self.thread and self.thread.isRunning(): return model = self.tv.model() assert model is not None model.reset() pattern = hglib.fromunicode(self.regexple.text()) if not pattern: return try: icase = self.chk.isChecked() regexp = re.compile(pattern, icase and re.I or 0) if self.wholeword.isChecked(): # re-compile with whole-word wrapping, we know pattern is safe pattern = br'\b(?:%s)\b' % pattern regexp = re.compile(pattern, icase and re.I or 0) except Exception as inst: msg = _('grep: invalid match pattern: %s\n') % \ hglib.exception_str(inst) self.showMessage.emit(msg) return self.tv.setSortingEnabled(False) self.tv.pattern = pattern self.tv.icase = icase self.regexple.selectAll() inc = hglib.fromunicode(self.incle.text()) if inc: inc = pycompat.maplist(bytes.strip, inc.split(b',')) exc = hglib.fromunicode(self.excle.text()) if exc: exc = pycompat.maplist(bytes.strip, exc.split(b',')) revstr = hglib.fromunicode(self.revle.text()).strip() self.addHistory(pattern, inc or [], exc or []) if self.wctxradio.isChecked(): self.tv.setColumnHidden(COL_REVISION, True) self.tv.setColumnHidden(COL_USER, True) ctx = self.repo[None] self.thread = CtxSearchThread(self.repo, regexp, ctx, inc, exc, self.singlematch.isChecked(), self.recurse.isChecked()) elif self.ctxradio.isChecked(): self.tv.setColumnHidden(COL_REVISION, True) self.tv.setColumnHidden(COL_USER, True) try: ctx = hglib.revsymbol(self.repo, revstr or b'.') except error.RepoError as e: msg = _('grep: %s\n') % hglib.exception_str(e) self.showMessage.emit(msg) return self.thread = CtxSearchThread(self.repo, regexp, ctx, inc, exc, self.singlematch.isChecked(), False) else: assert self.aradio.isChecked() self.tv.setColumnHidden(COL_REVISION, False) self.tv.setColumnHidden(COL_USER, False) self.thread = HistorySearchThread(self.repo, pattern, icase, inc, exc, follow=self.follow.isChecked()) self.showMessage.emit('') self.regexple.setEnabled(False) self.searchbutton.setEnabled(False) self.cancelbutton.setEnabled(True) self.thread.finished.connect(self.searchfinished) self.thread.showMessage.connect(self.showMessage) self.thread.progress.connect(self.progress) self.thread.matchedRow.connect( lambda wrapper: model.appendRow(*wrapper.data)) self.thread.start() def searchfinished(self): self.cancelbutton.setEnabled(False) self.searchbutton.setEnabled(True) self.regexple.setEnabled(True) self.regexple.setFocus() model = self.tv.model() assert model is not None count = model.rowCount() if count: for col in pycompat.xrange(COL_TEXT): self.tv.resizeColumnToContents(col) self.tv.setSortingEnabled(True) if self.thread.completed == False: # do not overwrite error message on failure pass elif count: self.showMessage.emit(_('%d matches found') % count) else: self.showMessage.emit(_('No matches found')) class DataWrapper(object): def __init__(self, data): self.data = data class HistorySearchThread(QThread): '''Background thread for searching repository history''' matchedRow = pyqtSignal(DataWrapper) showMessage = pyqtSignal(str) progress = pyqtSignal(str, object, str, str, object) def __init__(self, repo, pattern, icase, inc, exc, follow): super(HistorySearchThread, self).__init__() self.repo = hg.repository(repo.ui, repo.root) self.pattern = pattern self.icase = icase self.inc = inc self.exc = exc self.follow = follow self.completed = False def cancel(self): if self.isRunning() and hasattr(self, 'thread_id'): try: thread2._async_raise(self.thread_id, KeyboardInterrupt) except ValueError: pass def run(self): haskbf = settings.hasExtension('kbfiles') haslf = settings.hasExtension('largefiles') self.thread_id = int(QThread.currentThreadId()) def emitrow(row): w = DataWrapper(row) self.matchedRow.emit(w) def emitprog(topic, pos, item, unit, total): self.progress.emit(topic, pos, item, unit, total) class incrui(ui.ui): fullmsg = b'' def write(self, msg, *args, **opts): self.fullmsg += msg if self.fullmsg.count(b'\0') >= 6: try: fname, line, rev, addremove, user, text, tail = \ self.fullmsg.split(b'\0', 6) if haslf and thgrepo.isLfStandin(fname): raise ValueError if (haslf or haskbf) and thgrepo.isBfStandin(fname): raise ValueError text = hglib.tounicode(text) addremove = hglib.tounicode(addremove) text = qtlib.htmlescape(text, False) text = '%s %s' % (addremove, text) fname = hglib.tounicode(fname) user = hglib.tounicode(user) row = [fname, int(rev), int(line), user, text] emitrow(row) except ValueError: pass self.fullmsg = tail def progress(topic, pos, item='', unit='', total=None): emitprog(topic, pos, item, unit, total) cwd = os.getcwd() os.chdir(self.repo.root) self.progress.emit(*cmdui.startProgress(_('Searching'), _('history'))) try: # hg grep [-i] -afn regexp opts = {'all':True, 'user':True, 'follow':self.follow, 'rev':[], 'line_number':True, 'print0':True, 'ignore_case':self.icase, 'include':self.inc, 'exclude':self.exc} u = incrui(self.repo.ui) commands.grep(u, self.repo, self.pattern, **opts) except Exception as e: self.showMessage.emit(hglib.exception_str(e)) except KeyboardInterrupt: self.showMessage.emit(_('Interrupted')) self.progress.emit(*cmdui.stopProgress(_('Searching'))) os.chdir(cwd) self.completed = True class CtxSearchThread(QThread): '''Background thread for searching a changectx''' matchedRow = pyqtSignal(object) showMessage = pyqtSignal(str) progress = pyqtSignal(str, object, str, str, object) def __init__(self, repo, regexp, ctx, inc, exc, once, recurse): super(CtxSearchThread, self).__init__() self.repo = hg.repository(repo.ui, repo.root) self.regexp = regexp self.ctx = ctx self.inc = inc self.exc = exc self.once = once self.recurse = recurse self.canceled = False self.completed = False def cancel(self): self.canceled = True def run(self): uipathfn = scmutil.getuipathfn(self.repo, legacyrelativevalue=True) def badfn(f, msg): e = hglib.tounicode(b"%s: %s" % (uipathfn(f), msg)) self.showMessage.emit(e) self.hu = htmlui.htmlui(self.repo.ui) try: # generate match function relative to repo root matchfn = match.match(self.repo.root, b'', [], self.inc, self.exc) matchfn.bad = badfn self.searchRepo(self.ctx, '', matchfn) self.completed = True except Exception as e: self.showMessage.emit(hglib.exception_str(e)) def searchRepo(self, ctx, prefix, matchfn): topic = _('Searching') unit = _('files') total = len(ctx.manifest()) count = 0 haskbf = settings.hasExtension('kbfiles') haslf = settings.hasExtension('largefiles') for wfile in ctx: # walk manifest if self.canceled: break if haslf and thgrepo.isLfStandin(wfile): continue if (haslf or haskbf) and thgrepo.isBfStandin(wfile): continue self.progress.emit(topic, count, hglib.tounicode(wfile), unit, total) count += 1 if not matchfn(wfile): continue try: data = ctx[wfile].data() # load file data except EnvironmentError: self.showMessage.emit(_('Skipping %s, unable to read') % hglib.tounicode(wfile)) continue if stringutil.binary(data): continue for i, line in enumerate(data.splitlines()): pos = 0 for m in self.regexp.finditer(line): # perform regexp self.hu.write(line[pos:m.start()], label=b'ui.status') self.hu.write(line[m.start():m.end()], label=b'grep.match') pos = m.end() if pos: self.hu.write(line[pos:], label=b'ui.status') path = os.path.join(prefix, hglib.tounicode(wfile)) row = [path, i + 1, ctx.rev(), None, hglib.tounicode(self.hu.getdata()[0])] w = DataWrapper(row) self.matchedRow.emit(w) if self.once: break self.progress.emit(topic, None, '', '', None) if ctx.rev() is None and self.recurse: for s in ctx.substate: if not matchfn(s): continue sub = ctx.sub(s) if isinstance(sub, subrepo.hgsubrepo): newprefix = os.path.join(prefix, hglib.tounicode(s)) self.searchRepo(sub._repo[None], newprefix, lambda x: True) COL_PATH = 0 COL_LINE = 1 COL_REVISION = 2 # Hidden if ctx COL_USER = 3 # Hidden if ctx COL_TEXT = 4 class MatchTree(QTableView): revisionSelected = pyqtSignal(int) contextmenu = None def __init__(self, repoagent, parent): QTableView.__init__(self, parent) self._repoagent = repoagent self.pattern = None self.icase = False self.embedded = parent.parent() is not None self.selectedRows = () self.delegate = htmldelegate.HTMLDelegate(self) self.setDragDropMode(QTableView.DragDropMode.DragOnly) self.setItemDelegateForColumn(COL_TEXT, self.delegate) self.setSelectionMode(QTableView.SelectionMode.ExtendedSelection) self.setSelectionBehavior(QAbstractItemView.SelectionBehavior.SelectRows) self.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) self.setShowGrid(False) vh = self.verticalHeader() vh.hide() vh.setDefaultSectionSize(20) self.horizontalHeader().setStretchLastSection(True) self._filedialogs = qtlib.DialogKeeper(MatchTree._createFileDialog, MatchTree._genFileDialogKey, self) self.actions = {} self.contextmenu = QMenu(self) for key, name, func, shortcut in ( ('edit', _('Vi&ew File'), self.onViewFile, 'CTRL+E'), ('ctx', _('&View Changeset'), self.onViewChangeset, 'CTRL+V'), ('vdiff', _('&Diff to Parent'), self.onVisualDiff, 'CTRL+D'), ('ann', _('Annotate &File'), self.onAnnotateFile, 'CTRL+F')): action = QAction(name, self) action.triggered.connect(func) qtlib.setContextMenuShortcut(action, QKeySequence(shortcut)) self.actions[key] = action self.addAction(action) self.contextmenu.addAction(action) self.activated.connect(self.onRowActivated) self.customContextMenuRequested.connect(self.menuRequest) self.setModel(MatchModel(repoagent, self)) self.selectionModel().selectionChanged.connect(self.onSelectionChanged) @property def repo(self): return self._repoagent.rawRepo() def menuRequest(self, point): if not self.selectionModel().selectedRows(): return point = self.viewport().mapToGlobal(point) self.contextmenu.exec(point) def onSelectionChanged(self, selected, deselected): selrows = [] wctxonly = True allhistory = False for index in self.selectionModel().selectedRows(): model = self.model() assert model is not None path, line, rev, user, text = model.getRow(index) if rev is not None: wctxonly = False if user is not None: allhistory = True selrows.append((rev, path, line)) self.selectedRows = selrows self.actions['ctx'].setEnabled(not wctxonly and self.embedded) self.actions['vdiff'].setEnabled(allhistory) def onRowActivated(self, index): saved = self.selectedRows model = self.model() assert model is not None path, line, rev, user, text = model.getRow(index) self.selectedRows = [(rev, path, line)] self.onAnnotateFile() self.selectedRows = saved def onAnnotateFile(self): repo = self.repo seen = set() for rev, upath, line in self.selectedRows: path = hglib.fromunicode(upath) # Only open one annotate instance per file if path in seen: continue else: seen.add(path) if rev is None and path not in repo[None]: abs = repo.wjoin(path) root = paths.find_root_bytes(abs) if root and abs.startswith(root): uroot = hglib.tounicode(root) srepoagent = self._repoagent.subRepoAgent(uroot) path = abs[len(root)+1:] self._openAnnotateDialog(srepoagent, rev, path, line) else: continue else: self._openAnnotateDialog(self._repoagent, rev, path, line) def _openAnnotateDialog(self, repoagent, rev, path, line): if rev is None: repo = repoagent.rawRepo() rev = repo[b'.'].rev() dlg = self._filedialogs.open(repoagent, path) dlg.setFileViewMode(fileview.AnnMode) dlg.goto(rev) dlg.showLine(line) dlg.setSearchPattern(hglib.tounicode(self.pattern)) dlg.setSearchCaseInsensitive(self.icase) def _createFileDialog(self, repoagent, path): return filedialogs.FileLogDialog(repoagent, path) def _genFileDialogKey(self, repoagent, path): repo = repoagent.rawRepo() return repo.wjoin(path) def onViewChangeset(self): for rev, path, line in self.selectedRows: self.revisionSelected.emit(int(rev)) return def onViewFile(self): repo, ui, pattern = self.repo, self.repo.ui, self.pattern seen = set() for rev, upath, line in self.selectedRows: path = hglib.fromunicode(upath) # Only open one editor instance per file if path in seen: continue else: seen.add(path) if rev is None: qtlib.editfiles(repo, [path], line, pattern, self) else: base, _ = visdiff.snapshot(repo, [path], repo[rev]) files = [os.path.join(base, path)] qtlib.editfiles(repo, files, line, pattern, self) def onVisualDiff(self): rows = self.selectedRows[:] repo, ui = self.repo, self.repo.ui while rows: defer = [] crev = rows[0][0] files = set([rows[0][1]]) for rev, path, line in rows[1:]: if rev == crev: files.add(path) else: defer.append([rev, path, line]) if crev is not None: dlg = visdiff.visualdiff(ui, repo, pycompat.maplist(hglib.fromunicode, files), {'change':crev}) if dlg: dlg.exec() rows = defer class MatchModel(QAbstractTableModel): def __init__(self, repoagent, parent): QAbstractTableModel.__init__(self, parent) self._repoagent = repoagent self.rows = [] self.headers = (_('File'), _('Line'), _('Rev'), _('User'), _('Match Text')) def rowCount(self, parent=QModelIndex()): return len(self.rows) def columnCount(self, parent=QModelIndex()): return len(self.headers) def data(self, index, role=Qt.ItemDataRole.DisplayRole): if not index.isValid(): return None if role == Qt.ItemDataRole.DisplayRole: return self.rows[index.row()][index.column()] return None def headerData(self, col, orientation, role=Qt.ItemDataRole.DisplayRole): if role != Qt.ItemDataRole.DisplayRole or orientation != Qt.Orientation.Horizontal: return None else: return self.headers[col] def flags(self, index): flags = Qt.ItemFlag.ItemIsSelectable | Qt.ItemFlag.ItemIsEnabled | Qt.ItemFlag.ItemIsDragEnabled return flags def mimeTypes(self): return ['text/uri-list'] def mimeData(self, indexes): snapshots = {} for index in indexes: if index.column() != 0: continue path, line, rev, user, text = self.rows[index.row()] if rev not in snapshots: snapshots[rev] = [path] else: snapshots[rev].append(path) urls = [] for rev, paths in snapshots.items(): if rev is not None: repo = self._repoagent.rawRepo() lpaths = pycompat.maplist(hglib.fromunicode, paths) lbase, _ = visdiff.snapshot(repo, lpaths, repo[rev]) base = hglib.tounicode(lbase) else: base = self._repoagent.rootPath() for p in paths: urls.append(QUrl.fromLocalFile(os.path.join(base, p))) m = QMimeData() m.setUrls(urls) return m def sort(self, col, order): self.layoutAboutToBeChanged.emit() self.rows.sort(key=lambda x: x[col], reverse=(order == Qt.SortOrder.DescendingOrder)) self.layoutChanged.emit() ## Custom methods def appendRow(self, *args): l = len(self.rows) self.beginInsertRows(QModelIndex(), l, l) self.rows.append(args) self.endInsertRows() self.layoutChanged.emit() def reset(self): self.beginRemoveRows(QModelIndex(), 0, len(self.rows)-1) self.rows = [] self.endRemoveRows() self.layoutChanged.emit() def getRow(self, index): assert index.isValid() return self.rows[index.row()] class SearchDialog(QDialog): def __init__(self, repoagent, upats, parent=None, **opts): super(SearchDialog, self).__init__(parent) self.setWindowFlags(Qt.WindowType.Window) self.setWindowIcon(qtlib.geticon('view-filter')) self.setWindowTitle(_('TortoiseHg Search')) outervbox = QVBoxLayout() outervbox.setContentsMargins(5, 5, 5, 0) self.setLayout(outervbox) self._searchwidget = SearchWidget(repoagent, upats, parent=self, **opts) outervbox.addWidget(self._searchwidget) self._stbar = cmdui.ThgStatusBar() outervbox.addWidget(self._stbar) self._searchwidget.showMessage.connect(self._stbar.showMessage) self._searchwidget.progress.connect(self._stbar.progress) self.resize(800, 550) def closeEvent(self, event): if not self._searchwidget.canExit(): self._searchwidget.stopClicked() event.ignore() return self._searchwidget.saveSettings(QSettings()) super(SearchDialog, self).closeEvent(event) def setSearch(self, upattern, **opts): self._searchwidget.setSearch(upattern, **opts) @pyqtSlot() def runSearch(self): self._searchwidget.runSearch() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/guess.py0000644000000000000000000004233214672254332017163 0ustar00rootroot# guess.py - TortoiseHg's dialogs for detecting copies and renames # # Copyright 2010 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os from .qtcore import ( QAbstractTableModel, QModelIndex, QSettings, QThread, QTimer, Qt, pyqtSignal, ) from .qtgui import ( QAbstractItemView, QCheckBox, QDialog, QFrame, QHBoxLayout, QLabel, QListWidget, QListWidgetItem, QMessageBox, QPushButton, QSizePolicy, QSlider, QSplitter, QTextBrowser, QToolButton, QTreeView, QVBoxLayout, ) from hgext.largefiles import ( lfutil, ) from mercurial import ( hg, patch, pycompat, similar, ) from ..util import ( hglib, thread2, ) from ..util.i18n import _ from . import ( cmdui, htmlui, qtlib, ) # Techincal debt # Try to cut down on the jitter when findRenames is pressed. May # require a splitter. class DetectRenameDialog(QDialog): 'Detect renames after they occur' matchAccepted = pyqtSignal() def __init__(self, repoagent, parent, *pats): QDialog.__init__(self, parent) self._repoagent = repoagent self.pats = pats self.thread = None self.setWindowTitle(_('Detect Copies/Renames in %s') % repoagent.displayName()) self.setWindowIcon(qtlib.geticon('thg-guess')) self.setWindowFlags(Qt.WindowType.Window) layout = QVBoxLayout() layout.setContentsMargins(*(2,)*4) self.setLayout(layout) # vsplit for top & diff vsplit = QSplitter(Qt.Orientation.Horizontal) utframe = QFrame(vsplit) matchframe = QFrame(vsplit) utvbox = QVBoxLayout() utvbox.setContentsMargins(*(2,)*4) utframe.setLayout(utvbox) matchvbox = QVBoxLayout() matchvbox.setContentsMargins(*(2,)*4) matchframe.setLayout(matchvbox) hsplit = QSplitter(Qt.Orientation.Vertical) layout.addWidget(hsplit) hsplit.addWidget(vsplit) utheader = QHBoxLayout() utvbox.addLayout(utheader) utlbl = QLabel(_('Unrevisioned Files')) utheader.addWidget(utlbl) self.refreshBtn = tb = QToolButton() tb.setToolTip(_('Refresh file list')) tb.setIcon(qtlib.geticon('view-refresh')) tb.clicked.connect(self.refresh) utheader.addWidget(tb) self.unrevlist = QListWidget() self.unrevlist.setSelectionMode(QAbstractItemView.SelectionMode.ExtendedSelection) self.unrevlist.doubleClicked.connect(self.onUnrevDoubleClicked) utvbox.addWidget(self.unrevlist) simhbox = QHBoxLayout() utvbox.addLayout(simhbox) lbl = QLabel() slider = QSlider(Qt.Orientation.Horizontal) slider.setRange(0, 100) slider.setTickInterval(10) slider.setPageStep(10) slider.setTickPosition(QSlider.TickPosition.TicksBelow) slider.changefunc = lambda v: lbl.setText( _('Min Similarity: %d%%') % v) slider.valueChanged.connect(slider.changefunc) self.simslider = slider lbl.setBuddy(slider) simhbox.addWidget(lbl) simhbox.addWidget(slider, 1) buthbox = QHBoxLayout() utvbox.addLayout(buthbox) copycheck = QCheckBox(_('Only consider deleted files')) copycheck.setToolTip(_('Uncheck to consider all revisioned files ' 'for copy sources')) copycheck.setChecked(True) findrenames = QPushButton(_('Find Renames')) findrenames.setToolTip(_('Find copy and/or rename sources')) findrenames.setEnabled(False) findrenames.clicked.connect(self.findRenames) buthbox.addWidget(copycheck) buthbox.addStretch(1) buthbox.addWidget(findrenames) self.findbtn, self.copycheck = findrenames, copycheck matchlbl = QLabel(_('Candidate Matches')) matchvbox.addWidget(matchlbl) matchtv = QTreeView() matchtv.setSelectionMode(QTreeView.SelectionMode.ExtendedSelection) matchtv.setItemsExpandable(False) matchtv.setRootIsDecorated(False) matchtv.setModel(MatchModel()) matchtv.setSortingEnabled(True) matchtv.selectionModel().selectionChanged.connect(self.showDiff) buthbox = QHBoxLayout() matchbtn = QPushButton(_('Accept All Matches')) matchbtn.clicked.connect(self.acceptMatch) matchbtn.setEnabled(False) buthbox.addStretch(1) buthbox.addWidget(matchbtn) matchvbox.addWidget(matchtv) matchvbox.addLayout(buthbox) self.matchtv, self.matchbtn = matchtv, matchbtn def matchselect(s, d): count = len(matchtv.selectedIndexes()) if count: self.matchbtn.setText(_('Accept Selected Matches')) else: self.matchbtn.setText(_('Accept All Matches')) selmodel = matchtv.selectionModel() selmodel.selectionChanged.connect(matchselect) sp = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding) sp.setHorizontalStretch(1) matchframe.setSizePolicy(sp) diffframe = QFrame(hsplit) diffvbox = QVBoxLayout() diffvbox.setContentsMargins(*(2,)*4) diffframe.setLayout(diffvbox) difflabel = QLabel(_('Differences from Source to Dest')) diffvbox.addWidget(difflabel) difftb = QTextBrowser() difftb.document().setDefaultStyleSheet(qtlib.thgstylesheet) diffvbox.addWidget(difftb) self.difftb = difftb self.stbar = cmdui.ThgStatusBar() layout.addWidget(self.stbar) s = QSettings() self.restoreGeometry(qtlib.readByteArray(s, 'guess/geom')) hsplit.restoreState(qtlib.readByteArray(s, 'guess/hsplit-state')) vsplit.restoreState(qtlib.readByteArray(s, 'guess/vsplit-state')) slider.setValue(qtlib.readInt(s, 'guess/simslider') or 50) self.vsplit, self.hsplit = vsplit, hsplit QTimer.singleShot(0, self.refresh) @property def repo(self): return self._repoagent.rawRepo() def refresh(self): self.repo.thginvalidate() with lfutil.lfstatus(self.repo): wctx = self.repo[None] ws = wctx.status(listunknown=True) self.unrevlist.clear() dests = [] for u in ws.unknown: dests.append(u) for a in ws.added: if not wctx[a].renamed(): dests.append(a) for x in dests: item = QListWidgetItem(hglib.tounicode(x)) item.orig = x self.unrevlist.addItem(item) item.setSelected(x in self.pats) if dests: self.findbtn.setEnabled(True) else: self.findbtn.setEnabled(False) self.difftb.clear() self.pats = [] model = self.matchtv.model() assert model is not None self.matchbtn.setEnabled(bool(model.rows)) def findRenames(self): 'User pressed "find renames" button' if self.thread and self.thread.isRunning(): QMessageBox.information(self, _('Search already in progress'), _('Cannot start a new search')) return # TODO: better to use data(role) instead ulist = [it.orig # pytype: disable=attribute-error for it in self.unrevlist.selectedItems()] # pytype: disable=attribute-error if not ulist: # When no files are selected, look for all files ulist = [self.unrevlist.item(n).orig # pytype: disable=attribute-error for n in range(self.unrevlist.count())] # pytype: disable=attribute-error if not ulist: QMessageBox.information(self, _('No files to find'), _('There are no files that may have been renamed')) return pct = self.simslider.value() / 100.0 copies = not self.copycheck.isChecked() self.findbtn.setEnabled(False) model = self.matchtv.model() assert model is not None model.clear() self.thread = RenameSearchThread(self.repo, ulist, pct, copies) self.thread.match.connect(self.rowReceived) self.thread.progress.connect(self.stbar.progress) self.thread.showMessage.connect(self.stbar.showMessage) self.thread.finished.connect(self.searchfinished) self.thread.start() def searchfinished(self): self.stbar.clearProgress() for col in pycompat.xrange(3): self.matchtv.resizeColumnToContents(col) self.findbtn.setEnabled(bool(self.unrevlist.count())) model = self.matchtv.model() assert model is not None self.matchbtn.setEnabled(bool(model.rows)) def rowReceived(self, args): model = self.matchtv.model() assert model is not None model.appendRow(*args) def acceptMatch(self): 'User pressed "accept match" button' remdests = {} wctx = self.repo[None] model = self.matchtv.model() assert model is not None # If no rows are selected, ask the user if he'd like to accept all renames if self.matchtv.selectionModel().hasSelection(): itemList = [model.getRow(index) \ for index in self.matchtv.selectionModel().selectedRows()] else: itemList = model.rows for item in itemList: src, dest, percent = item if dest in remdests: udest = hglib.tounicode(dest) QMessageBox.warning(self, _('Multiple sources chosen'), _('You have multiple renames selected for ' 'destination file:\n%s. Aborting!') % udest) return remdests[dest] = src with self.repo.wlock(), hglib.dirstate_changing_files(self.repo): for dest, src in remdests.items(): if not os.path.exists(self.repo.wjoin(src)): wctx.forget([src]) # !->R wctx.copy(src, dest) model.remove(dest) self.matchAccepted.emit() self.refresh() def showDiff(self, index): 'User selected a row in the candidate tree' indexes = index.indexes() if not indexes: return index = indexes[0] ctx = self.repo[b'.'] hu = htmlui.htmlui(self.repo.ui) model = self.matchtv.model() assert model is not None row = model.getRow(index) src, dest, percent = model.getRow(index) aa = self.repo.wread(dest) rr = ctx.filectx(src).data() date = hglib.displaytime(ctx.date()) difftext = hglib.unidifftext(rr, date, aa, date, src, dest) if not difftext: t = _('%s and %s have identical contents\n\n') % \ (hglib.tounicode(src), hglib.tounicode(dest)) hu.write(hglib.fromunicode(t), label=b'ui.error') else: for t, l in patch.difflabel(difftext.splitlines, True): hu.write(t, label=l) self.difftb.setHtml(hglib.tounicode(hu.getdata()[0])) def onUnrevDoubleClicked(self, index): model = self.unrevlist.model() assert model is not None file = hglib.fromunicode(model.data(index)) qtlib.editfiles(self.repo, [file]) def accept(self): s = QSettings() s.setValue('guess/geom', self.saveGeometry()) s.setValue('guess/vsplit-state', self.vsplit.saveState()) s.setValue('guess/hsplit-state', self.hsplit.saveState()) s.setValue('guess/simslider', self.simslider.value()) QDialog.accept(self) def reject(self): if self.thread and self.thread.isRunning(): self.thread.cancel() if self.thread.wait(2000): self.thread = None else: s = QSettings() s.setValue('guess/geom', self.saveGeometry()) s.setValue('guess/vsplit-state', self.vsplit.saveState()) s.setValue('guess/hsplit-state', self.hsplit.saveState()) s.setValue('guess/simslider', self.simslider.value()) QDialog.reject(self) def _aspercent(s): # i18n: percent format return _('%d%%') % (s * 100) class MatchModel(QAbstractTableModel): def __init__(self, parent=None): QAbstractTableModel.__init__(self, parent) self.rows = [] self.headers = (_('Source'), _('Dest'), _('% Match')) self.displayformats = (hglib.tounicode, hglib.tounicode, _aspercent) def rowCount(self, parent): return len(self.rows) def columnCount(self, parent): return len(self.headers) def data(self, index, role): if not index.isValid(): return None if role == Qt.ItemDataRole.DisplayRole: s = self.rows[index.row()][index.column()] f = self.displayformats[index.column()] return f(s) ''' elif role == Qt.ItemDataRole.ForegroundRole: src, dst, pct = self.rows[index.row()] if pct == 1.0: return QColor('green') else: return QColor('black') elif role == Qt.ItemDataRole.ToolTipRole: # explain what row means? ''' return None def headerData(self, col, orientation, role): if role != Qt.ItemDataRole.DisplayRole or orientation != Qt.Orientation.Horizontal: return None else: return self.headers[col] def flags(self, index): return Qt.ItemFlag.ItemIsSelectable | Qt.ItemFlag.ItemIsEnabled # Custom methods def getRow(self, index): assert index.isValid() return self.rows[index.row()] def appendRow(self, *args): self.beginInsertRows(QModelIndex(), len(self.rows), len(self.rows)) self.rows.append(args) self.endInsertRows() self.layoutChanged.emit() def clear(self): self.beginRemoveRows(QModelIndex(), 0, len(self.rows)-1) self.rows = [] self.endRemoveRows() self.layoutChanged.emit() def remove(self, dest): i = 0 while i < len(self.rows): if self.rows[i][1] == dest: self.beginRemoveRows(QModelIndex(), i, i) self.rows.pop(i) self.endRemoveRows() else: i += 1 self.layoutChanged.emit() def sort(self, col, order): self.beginResetModel() self.layoutAboutToBeChanged.emit() self.rows.sort(key=lambda x: x[col], reverse=(order == Qt.SortOrder.DescendingOrder)) self.layoutChanged.emit() self.endResetModel() def isEmpty(self): return not bool(self.rows) class RenameSearchThread(QThread): '''Background thread for searching repository history''' match = pyqtSignal(object) progress = pyqtSignal(str, object, str, str, object) showMessage = pyqtSignal(str) def __init__(self, repo, ufiles, minpct, copies): super(RenameSearchThread, self).__init__() self.repo = hg.repository(hglib.loadui(), repo.root) self.ufiles = ufiles self.minpct = minpct self.copies = copies self.threadid = None def run(self): def emit(topic, pos, item='', unit='', total=None): topic = hglib.tounicode(topic or '') item = hglib.tounicode(item or '') unit = hglib.tounicode(unit or '') self.progress.emit(topic, pos, item, unit, total) self.repo.ui.progress = emit self.threadid = int(self.currentThreadId()) try: self.search(self.repo) except KeyboardInterrupt: pass except Exception as e: self.showMessage.emit(hglib.exception_str(e)) finally: self.threadid = None def cancel(self): tid = self.threadid if tid is None: return try: thread2._async_raise(tid, KeyboardInterrupt) except ValueError: pass def search(self, repo): wctx = repo[None] pctx = repo[b'.'] if self.copies: ws = wctx.status(listclean=True) srcs = ws.removed + ws.deleted srcs += ws.modified + ws.clean else: ws = wctx.status() srcs = ws.removed + ws.deleted added = [wctx[a] for a in sorted(self.ufiles)] removed = [pctx[a] for a in sorted(srcs) if a in pctx] # do not consider files of zero length added = [fctx for fctx in added if fctx.size() > 0] removed = [fctx for fctx in removed if fctx.size() > 0] exacts = [] gen = similar._findexactmatches(repo, added, removed) for o, n in gen: old, new = o.path(), n.path() exacts.append(old) self.match.emit([old, new, 1.0]) if self.minpct == 1.0: return removed = [r for r in removed if r.path() not in exacts] gen = similar._findsimilarmatches(repo, added, removed, self.minpct) for o, n, s in gen: old, new, sim = o.path(), n.path(), s self.match.emit([old, new, sim]) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730809007.0 tortoisehg-6.9/tortoisehg/hgqt/hgconfig.py0000644000000000000000000000657014712406257017625 0ustar00rootroot# hgconfig.py - unicode wrapper for Mercurial's ui object # # Copyright 2019 Yuya Nishihara # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations from mercurial import ( pycompat, ui as uimod, ) from ..util import ( hglib, ) if hglib.TYPE_CHECKING: from typing import ( List, Text, Tuple, ) UNSET_DEFAULT = uimod._unset class HgConfig(object): """Unicode wrapper for Mercurial's ui object This provides Qt-like API on top of the ui object. Almost all methods are proxied through RepoAgent. Use these methods unless necessary. All config*() getter functions never return None, nor take None as default value. That's because Qt C++ API is strict about data types in general. Use hasConfig() to test if the config value is set. """ # Design notes: # - It's probably better to fetch bytes data from ui at once, and cache # the unicode representation in this object. We'll have to be careful # to keep the data sync with the underlying ui object. # - No setter functions are provided right now because we can't propagate # new values to the command process. def __init__(self, ui: uimod.ui) -> None: self._ui = ui def rawUi(self) -> uimod.ui: return self._ui def configBool(self, section: Text, name: Text, default: bool = UNSET_DEFAULT) -> bool: data = self._ui.configbool(hglib.fromunicode(section), hglib.fromunicode(name), default=default) return bool(data) def configInt(self, section: Text, name: Text, default: int = UNSET_DEFAULT) -> int: data = self._ui.configint(hglib.fromunicode(section), hglib.fromunicode(name), default=default) return int(data) def configString(self, section: Text, name: Text, default: Text = UNSET_DEFAULT) -> Text: if default is not UNSET_DEFAULT: default = hglib.fromunicode(default) data = self._ui.config(hglib.fromunicode(section), hglib.fromunicode(name), default=default) if data is None: return '' return hglib.tounicode(data) def configStringList(self, section: Text, name: Text, default: List[Text] = UNSET_DEFAULT) -> List[Text]: if default is not UNSET_DEFAULT: default = pycompat.maplist(hglib.fromunicode, default) data = self._ui.configlist(hglib.fromunicode(section), hglib.fromunicode(name), default=default) return hglib.to_unicode_list(data) def configStringItems(self, section: Text) -> List[Tuple[Text, Text]]: """Returns a list of string (key, value) pairs under the specified section""" items = self._ui.configitems(hglib.fromunicode(section)) return [(hglib.tounicode(k), hglib.tounicode(v)) for k, v in items] def hasConfig(self, section: Text, name: Text) -> bool: return self._ui.hasconfig(hglib.fromunicode(section), hglib.fromunicode(name)) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1732624256.0 tortoisehg-6.9/tortoisehg/hgqt/hgemail.py0000644000000000000000000004026114721337600017435 0ustar00rootroot# hgemail.py - TortoiseHg's dialog for sending patches via email # # Copyright 2007 TK Soh # Copyright 2007 Steve Borho # Copyright 2010 Yuya Nishihara # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os import re import tempfile from .qtcore import ( QAbstractTableModel, QModelIndex, QSettings, Qt, pyqtSlot, ) from .qtgui import ( QDialog, QKeySequence, QShortcut, ) from mercurial import ( error, pycompat, ) from mercurial.utils import ( dateutil, ) from ..util import hglib from ..util.i18n import _ from . import ( cmdcore, cmdui, lexers, qtlib, ) from .hgemail_ui import Ui_EmailDialog class EmailDialog(QDialog): """Dialog for sending patches via email""" def __init__(self, repoagent, revs, parent=None, outgoing=False, outgoingrevs=None): """Create EmailDialog for the given repo and revs :revs: List of revisions to be sent. :outgoing: Enable outgoing bundle support. You also need to set outgoing revisions to `revs`. :outgoingrevs: Target revision of outgoing bundle. (Passed as `hg email --bundle --rev {rev}`) """ super(EmailDialog, self).__init__(parent) self.setWindowFlags(Qt.WindowType.Window) self._repoagent = repoagent self._cmdsession = cmdcore.nullCmdSession() self._outgoing = outgoing self._outgoingrevs = outgoingrevs or [] self._qui = Ui_EmailDialog() self._qui.setupUi(self) self._initchangesets(revs) self._initpreviewtab() self._initenvelopebox() self._qui.bundle_radio.toggled.connect(self._updateforms) self._qui.attach_check.toggled.connect(self._updateattachmodes) self._qui.inline_check.toggled.connect(self._updateattachmodes) self._initintrobox() self._readhistory() self._filldefaults() self._updateforms() self._updateattachmodes() self._readsettings() QShortcut(QKeySequence('CTRL+Return'), self, self.accept) QShortcut(QKeySequence('Ctrl+Enter'), self, self.accept) def closeEvent(self, event): self._writesettings() super(EmailDialog, self).closeEvent(event) def _readsettings(self): s = QSettings() self.restoreGeometry(qtlib.readByteArray(s, 'email/geom')) self._qui.intro_changesets_splitter.restoreState( qtlib.readByteArray(s, 'email/intro_changesets_splitter')) def _writesettings(self): s = QSettings() s.setValue('email/geom', self.saveGeometry()) s.setValue('email/intro_changesets_splitter', self._qui.intro_changesets_splitter.saveState()) def _readhistory(self): s = QSettings() for k in ('to', 'cc', 'from', 'flag', 'subject'): w = getattr(self._qui, '%s_edit' % k) w.addItems(qtlib.readStringList(s, 'email/%s_history' % k)) w.setCurrentIndex(-1) # unselect for k in ('body', 'attach', 'inline', 'diffstat'): w = getattr(self._qui, '%s_check' % k) w.setChecked(qtlib.readBool(s, 'email/%s' % k)) def _writehistory(self): def itercombo(w): if w.currentText(): yield w.currentText() for i in pycompat.xrange(w.count()): if w.itemText(i) != w.currentText(): yield w.itemText(i) s = QSettings() for k in ('to', 'cc', 'from', 'flag', 'subject'): w = getattr(self._qui, '%s_edit' % k) s.setValue('email/%s_history' % k, list(itercombo(w))[:10]) for k in ('body', 'attach', 'inline', 'diffstat'): w = getattr(self._qui, '%s_check' % k) s.setValue('email/%s' % k, w.isChecked()) def _initchangesets(self, revs): self._changesets = _ChangesetsModel(self._repo, revs=revs or list(self._repo), selectedrevs=revs, parent=self) self._changesets.dataChanged.connect(self._updateforms) self._qui.changesets_view.setModel(self._changesets) @property def _repo(self): return self._repoagent.rawRepo() @property def _ui(self): return self._repo.ui @property def _revs(self): """Returns list of revisions to be sent""" return self._changesets.selectedrevs def _filldefaults(self): """Fill form by default values""" repoagent = self._repoagent def getfromaddr(): """Get sender address in the same manner as patchbomb""" addr = (repoagent.configString('email', 'from') or repoagent.configString('patchbomb', 'from')) if addr: return addr try: return hglib.tounicode(self._ui.username()) except error.Abort: return '' self._qui.to_edit.setEditText(repoagent.configString('email', 'to')) self._qui.cc_edit.setEditText(repoagent.configString('email', 'cc')) self._qui.from_edit.setEditText(getfromaddr()) self.setdiffformat(['hg', 'git'][repoagent.configBool('diff', 'git')]) def setdiffformat(self, format): """Set diff format, 'hg', 'git' or 'plain'""" try: radio = getattr(self._qui, '%spatch_radio' % format) except AttributeError: raise ValueError('unknown diff format: %r' % format) radio.setChecked(True) def getdiffformat(self): """Selected diff format""" for e in self._qui.patch_frame.children(): m = re.match(r'(\w+)patch_radio', e.objectName()) if m and e.isChecked(): return m.group(1) return 'hg' def getextraopts(self): """Dict of extra options""" opts = {} for e in self._qui.extra_frame.children(): m = re.match(r'(\w+)_check', e.objectName()) if m: opts[m.group(1)] = e.isChecked() return opts def _patchbombopts(self, **opts): """Generate opts for patchbomb by form values""" def headertext(s: str): # QLineEdit may contain newline character return re.sub(r'\s', ' ', s) opts['to'] = headertext(self._qui.to_edit.currentText()) opts['cc'] = headertext(self._qui.cc_edit.currentText()) opts['from'] = headertext(self._qui.from_edit.currentText()) opts['in_reply_to'] = headertext(self._qui.inreplyto_edit.text()) opts['flag'] = headertext(self._qui.flag_edit.currentText()) if self._qui.bundle_radio.isChecked(): assert self._outgoing # only outgoing bundle is supported opts['rev'] = hglib.compactrevs(self._outgoingrevs) opts['bundle'] = True else: opts['rev'] = hglib.compactrevs(self._revs) fmt = self.getdiffformat() if fmt != 'hg': opts[fmt] = True opts.update(self.getextraopts()) def writetempfile(s): fd, fname = tempfile.mkstemp(prefix=b'thg_emaildesc_', dir=qtlib.gettempdir()) try: os.write(fd, s) return hglib.tounicode(fname) finally: os.close(fd) opts['intro'] = self._qui.writeintro_check.isChecked() if opts['intro']: opts['subject'] = headertext(self._qui.subject_edit.currentText()) opts['desc'] = writetempfile( hglib.fromunicode(self._qui.body_edit.toPlainText())) # The email dialog is available no matter if patchbomb extension isn't # enabled. The extension name makes it unlikely first-time users # would discover that Mercurial ships with a functioning patch MTA. # Since patchbomb doesn't monkey patch any Mercurial code, it's safe # to enable it on demand. opts['config'] = 'extensions.patchbomb=' return opts def _isvalid(self): """Filled all required values?""" for e in ('to_edit', 'from_edit'): if not getattr(self._qui, e).currentText(): return False if (self._qui.writeintro_check.isChecked() and not self._qui.subject_edit.currentText()): return False if not self._revs: return False return True @pyqtSlot() def _updateforms(self): """Update availability of form widgets""" valid = self._isvalid() self._qui.send_button.setEnabled(valid) self._qui.main_tabs.setTabEnabled(self._previewtabindex(), valid) self._qui.writeintro_check.setEnabled(not self._introrequired()) self._qui.bundle_radio.setEnabled( self._outgoing and self._changesets.isselectedall()) self._changesets.setReadOnly(self._qui.bundle_radio.isChecked()) if self._qui.bundle_radio.isChecked(): # workaround to disable preview for outgoing bundle because it # may freeze main thread self._qui.main_tabs.setTabEnabled(self._previewtabindex(), False) if self._introrequired(): self._qui.writeintro_check.setChecked(True) @pyqtSlot() def _updateattachmodes(self): """Update checkboxes to select the embedding style of the patch""" attachmodes = [self._qui.attach_check, self._qui.inline_check] body = self._qui.body_check # --attach and --inline are exclusive if self.sender() in attachmodes and self.sender().isChecked(): for w in attachmodes: if w is not self.sender(): w.setChecked(False) # --body is mandatory if no attach modes are specified body.setEnabled(any(w.isChecked() for w in attachmodes)) if not body.isEnabled(): body.setChecked(True) def _initenvelopebox(self): for e in ('to_edit', 'from_edit'): getattr(self._qui, e).editTextChanged.connect(self._updateforms) def accept(self): opts = self._patchbombopts() cmdline = hglib.buildcmdargs('email', **opts) cmd = cmdui.CmdSessionDialog(self) cmd.setWindowTitle(_('Sending Email')) cmd.setLogVisible(False) uih = cmdui.PasswordUiHandler(cmd) # skip "intro" and "diffstat" prompt cmd.setSession(self._repoagent.runCommand(cmdline, uih)) if cmd.exec() == 0: self._writehistory() def _initintrobox(self): self._qui.intro_box.hide() # hidden by default self._qui.subject_edit.editTextChanged.connect(self._updateforms) self._qui.writeintro_check.toggled.connect(self._updateforms) def _introrequired(self): """Is intro message required?""" return self._qui.bundle_radio.isChecked() def _initpreviewtab(self): def initqsci(w): w.setUtf8(True) w.setReadOnly(True) w.setMarginWidth(1, 0) # hide area for line numbers self.lexer = lex = lexers.difflexer(self) fh = qtlib.getfont('fontdiff') fh.changed.connect(self.forwardFont) lex.setFont(fh.font()) w.setFont(fh.font()) w.setLexer(lex) # TODO: better way to setup diff lexer initqsci(self._qui.preview_edit) self._qui.main_tabs.currentChanged.connect(self._refreshpreviewtab) self._refreshpreviewtab(self._qui.main_tabs.currentIndex()) def forwardFont(self, font): if self.lexer: self.lexer.setFont(font) @pyqtSlot(int) def _refreshpreviewtab(self, index): """Generate preview text if current tab is preview""" if self._previewtabindex() != index: return self._qui.preview_edit.clear() opts = self._patchbombopts(test=True) cmdline = hglib.buildcmdargs('email', **opts) self._cmdsession = sess = self._repoagent.runCommand(cmdline) sess.setCaptureOutput(True) sess.commandFinished.connect(self._updatepreview) @pyqtSlot() def _updatepreview(self): msg = hglib.tounicode(bytes(self._cmdsession.readAll())) self._qui.preview_edit.append(msg) def _previewtabindex(self): """Index of preview tab""" return self._qui.main_tabs.indexOf(self._qui.preview_tab) @pyqtSlot() def on_settings_button_clicked(self): from tortoisehg.hgqt import settings if settings.SettingsDialog(parent=self, focus='email.from').exec(): # not use repo.configChanged because it can clobber user input # accidentally. self._repo.invalidateui() # force reloading config immediately self._filldefaults() @pyqtSlot() def on_selectall_button_clicked(self): self._changesets.selectAll() @pyqtSlot() def on_selectnone_button_clicked(self): self._changesets.selectNone() # TODO: use component of log viewer? class _ChangesetsModel(QAbstractTableModel): _COLUMNS = [('rev', lambda ctx: '%d:%s' % (ctx.rev(), ctx)), ('author', lambda ctx: hglib.username(ctx.user())), ('date', lambda ctx: dateutil.shortdate(ctx.date())), ('description', lambda ctx: ctx.longsummary())] def __init__(self, repo, revs, selectedrevs, parent=None): super(_ChangesetsModel, self).__init__(parent) self._repo = repo self._revs = list(reversed(sorted(revs))) self._selectedrevs = set(selectedrevs) self._readonly = False @property def revs(self): return self._revs @property def selectedrevs(self): """Return the list of selected revisions""" return list(sorted(self._selectedrevs)) def isselectedall(self): return len(self._revs) == len(self._selectedrevs) def data(self, index, role): if not index.isValid(): return None rev = self._revs[index.row()] if index.column() == 0 and role == Qt.ItemDataRole.CheckStateRole: return rev in self._selectedrevs and Qt.CheckState.Checked or Qt.CheckState.Unchecked if role == Qt.ItemDataRole.DisplayRole: coldata = self._COLUMNS[index.column()][1] return hglib.tounicode(coldata(self._repo[rev])) return None def setData(self, index, value, role=Qt.ItemDataRole.EditRole): if not index.isValid() or self._readonly: return False rev = self._revs[index.row()] if index.column() == 0 and role == Qt.ItemDataRole.CheckStateRole: value = qtlib.toCheckStateEnum(value) origvalue = rev in self._selectedrevs if value == Qt.CheckState.Checked: self._selectedrevs.add(rev) else: self._selectedrevs.remove(rev) if origvalue != (rev in self._selectedrevs): self.dataChanged.emit(index, index) return True return False def setReadOnly(self, readonly): self._readonly = readonly def flags(self, index): v = super(_ChangesetsModel, self).flags(index) if index.column() == 0 and not self._readonly: return Qt.ItemFlag.ItemIsUserCheckable | v else: return v def rowCount(self, parent=QModelIndex()): if parent.isValid(): return 0 # no child return len(self._revs) def columnCount(self, parent=QModelIndex()): if parent.isValid(): return 0 # no child return len(self._COLUMNS) def headerData(self, section, orientation, role): if role != Qt.ItemDataRole.DisplayRole or orientation != Qt.Orientation.Horizontal: return None return self._COLUMNS[section][0].capitalize() def selectAll(self): self._selectedrevs = set(self._revs) self.updateAll() def selectNone(self): self._selectedrevs = set() self.updateAll() def updateAll(self): first = self.createIndex(0, 0) last = self.createIndex(len(self._revs) - 1, 0) self.dataChanged.emit(first, last) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/tortoisehg/hgqt/hgemail.ui0000644000000000000000000004610014023111777017420 0ustar00rootroot EmailDialog 0 0 660 519 Email true 0 false false false Edit QFormLayout::ExpandingFieldsGrow To: to_edit 0 0 true QComboBox::InsertAtTop Cc: cc_edit 0 0 true QComboBox::InsertAtTop From: from_edit 0 0 true QComboBox::InsertAtTop In-Reply-To: inreplyto_edit Message identifier to reply to, for threading Flag: flag_edit 0 0 true QComboBox::InsertAtTop 0 0 QFrame::NoFrame QFrame::Raised Hg patches (as generated by export command) are compatible with most patch programs. They include a header which contains the most important changeset metadata. Send changesets as Hg patches Git patches can describe binary files, copies, and permission changes, but recipients may not be able to use them if they are not using git or Mercurial. Use extended (git) patch format Stripping Mercurial header removes username and parent information. Only useful if recipient is not using Mercurial (and does not like to see the headers). Plain, do not prepend Hg header Bundles store complete changesets in binary form. Upstream users can pull from them. This is the safest way to send changes to recipient Mercurial users. Send single binary bundle, not patches QFrame::NoFrame QFrame::Raised send patches as part of the email body body true true send patches as attachments attach send patches as inline attachments inline add diffstat output to messages diffstat Qt::Horizontal 40 20 Patch series description is sent in initial summary email with [PATCH 0 of N] subject. It should describe the effects of the entire patch series. When emailing a bundle, these fields make up the message subject and body. Flags is a comma separated list of tags which are inserted into the message subject prefix. Write patch series (bundle) description Qt::Vertical Subject: subject_edit 0 0 true QComboBox::InsertAtTop Monospace Changesets 0 false false Select &All Select &None Qt::Horizontal 40 20 Preview &Settings false Qt::Horizontal 25 19 false Send &Email false true &Close true QsciScintilla QFrame
                                                                                                            Qsci/qsciscintilla.h
                                                                                                            main_tabs to_edit cc_edit from_edit inreplyto_edit flag_edit hgpatch_radio gitpatch_radio plainpatch_radio bundle_radio body_check attach_check inline_check diffstat_check writeintro_check subject_edit body_edit changesets_view send_button preview_edit settings_button writeintro_check toggled(bool) intro_box setVisible(bool) 129 222 133 252 send_button clicked() EmailDialog accept() 641 501 528 506 close_button clicked() EmailDialog close() 641 501 528 506 writeintro_check toggled(bool) subject_edit setFocus() 86 214 177 244
                                                                                                            ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033565.0 tortoisehg-6.9/tortoisehg/hgqt/hgemail_ui.py0000644000000000000000000004533214742203535020140 0ustar00rootroot# -*- coding: utf-8 -*- # Form implementation generated from reading ui file '/home/yuya/work/hghacks/thg/tortoisehg/hgqt/hgemail.ui' # # Created by: PyQt5 UI code generator 5.15.11 # # WARNING: Any manual changes made to this file will be lost when pyuic5 is # run again. Do not edit this file unless you know what you are doing. from tortoisehg.util.i18n import _ from PyQt5 import QtCore, QtGui, QtWidgets class Ui_EmailDialog(object): def setupUi(self, EmailDialog): EmailDialog.setObjectName("EmailDialog") EmailDialog.resize(660, 519) EmailDialog.setSizeGripEnabled(True) self.verticalLayout_5 = QtWidgets.QVBoxLayout(EmailDialog) self.verticalLayout_5.setObjectName("verticalLayout_5") self.main_tabs = QtWidgets.QTabWidget(EmailDialog) self.main_tabs.setDocumentMode(False) self.main_tabs.setTabsClosable(False) self.main_tabs.setMovable(False) self.main_tabs.setObjectName("main_tabs") self.edit_tab = QtWidgets.QWidget() self.edit_tab.setObjectName("edit_tab") self.gridLayout = QtWidgets.QGridLayout(self.edit_tab) self.gridLayout.setObjectName("gridLayout") self.envelope_box = QtWidgets.QGroupBox(self.edit_tab) self.envelope_box.setTitle("") self.envelope_box.setObjectName("envelope_box") self.formLayout = QtWidgets.QFormLayout(self.envelope_box) self.formLayout.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) self.formLayout.setObjectName("formLayout") self.to_label = QtWidgets.QLabel(self.envelope_box) self.to_label.setObjectName("to_label") self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.to_label) self.to_edit = QtWidgets.QComboBox(self.envelope_box) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.to_edit.sizePolicy().hasHeightForWidth()) self.to_edit.setSizePolicy(sizePolicy) self.to_edit.setEditable(True) self.to_edit.setInsertPolicy(QtWidgets.QComboBox.InsertAtTop) self.to_edit.setObjectName("to_edit") self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.to_edit) self.cc_label = QtWidgets.QLabel(self.envelope_box) self.cc_label.setObjectName("cc_label") self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.cc_label) self.cc_edit = QtWidgets.QComboBox(self.envelope_box) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.cc_edit.sizePolicy().hasHeightForWidth()) self.cc_edit.setSizePolicy(sizePolicy) self.cc_edit.setEditable(True) self.cc_edit.setInsertPolicy(QtWidgets.QComboBox.InsertAtTop) self.cc_edit.setObjectName("cc_edit") self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.cc_edit) self.from_label = QtWidgets.QLabel(self.envelope_box) self.from_label.setObjectName("from_label") self.formLayout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.from_label) self.from_edit = QtWidgets.QComboBox(self.envelope_box) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.from_edit.sizePolicy().hasHeightForWidth()) self.from_edit.setSizePolicy(sizePolicy) self.from_edit.setEditable(True) self.from_edit.setInsertPolicy(QtWidgets.QComboBox.InsertAtTop) self.from_edit.setObjectName("from_edit") self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.from_edit) self.inreplyto_label = QtWidgets.QLabel(self.envelope_box) self.inreplyto_label.setObjectName("inreplyto_label") self.formLayout.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.inreplyto_label) self.inreplyto_edit = QtWidgets.QLineEdit(self.envelope_box) self.inreplyto_edit.setObjectName("inreplyto_edit") self.formLayout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.inreplyto_edit) self.flag_label = QtWidgets.QLabel(self.envelope_box) self.flag_label.setObjectName("flag_label") self.formLayout.setWidget(4, QtWidgets.QFormLayout.LabelRole, self.flag_label) self.flag_edit = QtWidgets.QComboBox(self.envelope_box) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.flag_edit.sizePolicy().hasHeightForWidth()) self.flag_edit.setSizePolicy(sizePolicy) self.flag_edit.setEditable(True) self.flag_edit.setInsertPolicy(QtWidgets.QComboBox.InsertAtTop) self.flag_edit.setObjectName("flag_edit") self.formLayout.setWidget(4, QtWidgets.QFormLayout.FieldRole, self.flag_edit) self.gridLayout.addWidget(self.envelope_box, 0, 0, 1, 1) self.options_edit = QtWidgets.QGroupBox(self.edit_tab) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.options_edit.sizePolicy().hasHeightForWidth()) self.options_edit.setSizePolicy(sizePolicy) self.options_edit.setTitle("") self.options_edit.setObjectName("options_edit") self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.options_edit) self.verticalLayout_4.setObjectName("verticalLayout_4") self.patch_frame = QtWidgets.QFrame(self.options_edit) self.patch_frame.setFrameShape(QtWidgets.QFrame.NoFrame) self.patch_frame.setFrameShadow(QtWidgets.QFrame.Raised) self.patch_frame.setObjectName("patch_frame") self.verticalLayout = QtWidgets.QVBoxLayout(self.patch_frame) self.verticalLayout.setObjectName("verticalLayout") self.hgpatch_radio = QtWidgets.QRadioButton(self.patch_frame) self.hgpatch_radio.setObjectName("hgpatch_radio") self.verticalLayout.addWidget(self.hgpatch_radio) self.gitpatch_radio = QtWidgets.QRadioButton(self.patch_frame) self.gitpatch_radio.setObjectName("gitpatch_radio") self.verticalLayout.addWidget(self.gitpatch_radio) self.plainpatch_radio = QtWidgets.QRadioButton(self.patch_frame) self.plainpatch_radio.setObjectName("plainpatch_radio") self.verticalLayout.addWidget(self.plainpatch_radio) self.bundle_radio = QtWidgets.QRadioButton(self.patch_frame) self.bundle_radio.setObjectName("bundle_radio") self.verticalLayout.addWidget(self.bundle_radio) self.verticalLayout_4.addWidget(self.patch_frame) self.extra_frame = QtWidgets.QFrame(self.options_edit) self.extra_frame.setFrameShape(QtWidgets.QFrame.NoFrame) self.extra_frame.setFrameShadow(QtWidgets.QFrame.Raised) self.extra_frame.setObjectName("extra_frame") self.horizontalLayout = QtWidgets.QHBoxLayout(self.extra_frame) self.horizontalLayout.setObjectName("horizontalLayout") self.body_check = QtWidgets.QCheckBox(self.extra_frame) self.body_check.setEnabled(True) self.body_check.setChecked(True) self.body_check.setObjectName("body_check") self.horizontalLayout.addWidget(self.body_check) self.attach_check = QtWidgets.QCheckBox(self.extra_frame) self.attach_check.setObjectName("attach_check") self.horizontalLayout.addWidget(self.attach_check) self.inline_check = QtWidgets.QCheckBox(self.extra_frame) self.inline_check.setObjectName("inline_check") self.horizontalLayout.addWidget(self.inline_check) self.diffstat_check = QtWidgets.QCheckBox(self.extra_frame) self.diffstat_check.setObjectName("diffstat_check") self.horizontalLayout.addWidget(self.diffstat_check) spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem) self.verticalLayout_4.addWidget(self.extra_frame) self.gridLayout.addWidget(self.options_edit, 0, 1, 1, 1) self.writeintro_check = QtWidgets.QCheckBox(self.edit_tab) self.writeintro_check.setObjectName("writeintro_check") self.gridLayout.addWidget(self.writeintro_check, 1, 0, 1, 2) self.intro_changesets_splitter = QtWidgets.QSplitter(self.edit_tab) self.intro_changesets_splitter.setOrientation(QtCore.Qt.Vertical) self.intro_changesets_splitter.setObjectName("intro_changesets_splitter") self.intro_box = QtWidgets.QGroupBox(self.intro_changesets_splitter) self.intro_box.setTitle("") self.intro_box.setObjectName("intro_box") self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.intro_box) self.verticalLayout_2.setObjectName("verticalLayout_2") self.subject_layout = QtWidgets.QHBoxLayout() self.subject_layout.setObjectName("subject_layout") self.subject_label = QtWidgets.QLabel(self.intro_box) self.subject_label.setObjectName("subject_label") self.subject_layout.addWidget(self.subject_label) self.subject_edit = QtWidgets.QComboBox(self.intro_box) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.subject_edit.sizePolicy().hasHeightForWidth()) self.subject_edit.setSizePolicy(sizePolicy) self.subject_edit.setEditable(True) self.subject_edit.setInsertPolicy(QtWidgets.QComboBox.InsertAtTop) self.subject_edit.setObjectName("subject_edit") self.subject_layout.addWidget(self.subject_edit) self.verticalLayout_2.addLayout(self.subject_layout) self.body_edit = QtWidgets.QPlainTextEdit(self.intro_box) font = QtGui.QFont() font.setFamily("Monospace") self.body_edit.setFont(font) self.body_edit.setObjectName("body_edit") self.verticalLayout_2.addWidget(self.body_edit) self.changesets_box = QtWidgets.QGroupBox(self.intro_changesets_splitter) self.changesets_box.setObjectName("changesets_box") self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.changesets_box) self.verticalLayout_3.setObjectName("verticalLayout_3") self.changesets_view = QtWidgets.QTreeView(self.changesets_box) self.changesets_view.setIndentation(0) self.changesets_view.setRootIsDecorated(False) self.changesets_view.setItemsExpandable(False) self.changesets_view.setObjectName("changesets_view") self.verticalLayout_3.addWidget(self.changesets_view) self.selectallnone_layout = QtWidgets.QHBoxLayout() self.selectallnone_layout.setObjectName("selectallnone_layout") self.selectall_button = QtWidgets.QPushButton(self.changesets_box) self.selectall_button.setObjectName("selectall_button") self.selectallnone_layout.addWidget(self.selectall_button) self.selectnone_button = QtWidgets.QPushButton(self.changesets_box) self.selectnone_button.setObjectName("selectnone_button") self.selectallnone_layout.addWidget(self.selectnone_button) spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.selectallnone_layout.addItem(spacerItem1) self.verticalLayout_3.addLayout(self.selectallnone_layout) self.gridLayout.addWidget(self.intro_changesets_splitter, 2, 0, 1, 2) self.main_tabs.addTab(self.edit_tab, "") self.preview_tab = QtWidgets.QWidget() self.preview_tab.setObjectName("preview_tab") self.gridLayout_2 = QtWidgets.QGridLayout(self.preview_tab) self.gridLayout_2.setObjectName("gridLayout_2") self.preview_edit = Qsci.QsciScintilla(self.preview_tab) self.preview_edit.setObjectName("preview_edit") self.gridLayout_2.addWidget(self.preview_edit, 0, 0, 1, 1) self.main_tabs.addTab(self.preview_tab, "") self.verticalLayout_5.addWidget(self.main_tabs) self.dialogbuttons_layout = QtWidgets.QHBoxLayout() self.dialogbuttons_layout.setObjectName("dialogbuttons_layout") self.settings_button = QtWidgets.QPushButton(EmailDialog) self.settings_button.setToolTip("") self.settings_button.setDefault(False) self.settings_button.setObjectName("settings_button") self.dialogbuttons_layout.addWidget(self.settings_button) spacerItem2 = QtWidgets.QSpacerItem(25, 19, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.dialogbuttons_layout.addItem(spacerItem2) self.send_button = QtWidgets.QPushButton(EmailDialog) self.send_button.setEnabled(False) self.send_button.setDefault(False) self.send_button.setObjectName("send_button") self.dialogbuttons_layout.addWidget(self.send_button) self.close_button = QtWidgets.QPushButton(EmailDialog) self.close_button.setEnabled(True) self.close_button.setDefault(True) self.close_button.setObjectName("close_button") self.dialogbuttons_layout.addWidget(self.close_button) self.verticalLayout_5.addLayout(self.dialogbuttons_layout) self.to_label.setBuddy(self.to_edit) self.cc_label.setBuddy(self.cc_edit) self.from_label.setBuddy(self.from_edit) self.inreplyto_label.setBuddy(self.inreplyto_edit) self.flag_label.setBuddy(self.flag_edit) self.subject_label.setBuddy(self.subject_edit) self.retranslateUi(EmailDialog) self.main_tabs.setCurrentIndex(0) self.writeintro_check.toggled['bool'].connect(self.intro_box.setVisible) # type: ignore self.send_button.clicked.connect(EmailDialog.accept) # type: ignore self.close_button.clicked.connect(EmailDialog.close) # type: ignore self.writeintro_check.toggled['bool'].connect(self.subject_edit.setFocus) # type: ignore QtCore.QMetaObject.connectSlotsByName(EmailDialog) EmailDialog.setTabOrder(self.main_tabs, self.to_edit) EmailDialog.setTabOrder(self.to_edit, self.cc_edit) EmailDialog.setTabOrder(self.cc_edit, self.from_edit) EmailDialog.setTabOrder(self.from_edit, self.inreplyto_edit) EmailDialog.setTabOrder(self.inreplyto_edit, self.flag_edit) EmailDialog.setTabOrder(self.flag_edit, self.hgpatch_radio) EmailDialog.setTabOrder(self.hgpatch_radio, self.gitpatch_radio) EmailDialog.setTabOrder(self.gitpatch_radio, self.plainpatch_radio) EmailDialog.setTabOrder(self.plainpatch_radio, self.bundle_radio) EmailDialog.setTabOrder(self.bundle_radio, self.body_check) EmailDialog.setTabOrder(self.body_check, self.attach_check) EmailDialog.setTabOrder(self.attach_check, self.inline_check) EmailDialog.setTabOrder(self.inline_check, self.diffstat_check) EmailDialog.setTabOrder(self.diffstat_check, self.writeintro_check) EmailDialog.setTabOrder(self.writeintro_check, self.subject_edit) EmailDialog.setTabOrder(self.subject_edit, self.body_edit) EmailDialog.setTabOrder(self.body_edit, self.changesets_view) EmailDialog.setTabOrder(self.changesets_view, self.send_button) EmailDialog.setTabOrder(self.send_button, self.preview_edit) EmailDialog.setTabOrder(self.preview_edit, self.settings_button) def retranslateUi(self, EmailDialog): _translate = QtCore.QCoreApplication.translate EmailDialog.setWindowTitle(_("Email")) self.to_label.setText(_("To:")) self.cc_label.setText(_("Cc:")) self.from_label.setText(_("From:")) self.inreplyto_label.setText(_("In-Reply-To:")) self.inreplyto_edit.setToolTip(_("Message identifier to reply to, for threading")) self.flag_label.setText(_("Flag:")) self.hgpatch_radio.setWhatsThis(_("Hg patches (as generated by export command) are compatible with most patch programs. They include a header which contains the most important changeset metadata.")) self.hgpatch_radio.setText(_("Send changesets as Hg patches")) self.gitpatch_radio.setWhatsThis(_("Git patches can describe binary files, copies, and permission changes, but recipients may not be able to use them if they are not using git or Mercurial.")) self.gitpatch_radio.setText(_("Use extended (git) patch format")) self.plainpatch_radio.setWhatsThis(_("Stripping Mercurial header removes username and parent information. Only useful if recipient is not using Mercurial (and does not like to see the headers).")) self.plainpatch_radio.setText(_("Plain, do not prepend Hg header")) self.bundle_radio.setWhatsThis(_("Bundles store complete changesets in binary form. Upstream users can pull from them. This is the safest way to send changes to recipient Mercurial users.")) self.bundle_radio.setText(_("Send single binary bundle, not patches")) self.body_check.setToolTip(_("send patches as part of the email body")) self.body_check.setText(_("body")) self.attach_check.setToolTip(_("send patches as attachments")) self.attach_check.setText(_("attach")) self.inline_check.setToolTip(_("send patches as inline attachments")) self.inline_check.setText(_("inline")) self.diffstat_check.setToolTip(_("add diffstat output to messages")) self.diffstat_check.setText(_("diffstat")) self.writeintro_check.setWhatsThis(_("Patch series description is sent in initial summary email with [PATCH 0 of N] subject. It should describe the effects of the entire patch series. When emailing a bundle, these fields make up the message subject and body. Flags is a comma separated list of tags which are inserted into the message subject prefix.")) self.writeintro_check.setText(_("Write patch series (bundle) description")) self.subject_label.setText(_("Subject:")) self.changesets_box.setTitle(_("Changesets")) self.selectall_button.setText(_("Select &All")) self.selectnone_button.setText(_("Select &None")) self.main_tabs.setTabText(self.main_tabs.indexOf(self.edit_tab), _("Edit")) self.main_tabs.setTabText(self.main_tabs.indexOf(self.preview_tab), _("Preview")) self.settings_button.setText(_("&Settings")) self.send_button.setText(_("Send &Email")) self.close_button.setText(_("&Close")) from PyQt5 import Qsci ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/hgignore.py0000644000000000000000000003054414672254332017641 0ustar00rootroot# hgignore.py - TortoiseHg's dialog for editing .hgignore # # Copyright 2010 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os import re from typing import ( cast, Iterable, List, Optional, ) from .qtcore import ( QEvent, QObject, QPoint, QSettings, QTimer, Qt, pyqtSignal, ) from .qtgui import ( QAbstractItemView, QComboBox, QDialog, QDialogButtonBox, QGroupBox, QHBoxLayout, QKeyEvent, QLabel, QLineEdit, QListWidget, QListWidgetItem, QMenu, QPushButton, QSplitter, QVBoxLayout, QWidget, ) from hgext.largefiles import ( lfutil, ) from mercurial import ( commands, error, match, util, ) from ..util import ( hglib, shlib, ) from ..util.i18n import _ from . import ( qscilib, qtlib, ) if hglib.TYPE_CHECKING: from .thgrepo import RepoAgent class HgignoreDialog(QDialog): 'Edit a repository .hgignore file' ignoreFilterUpdated = pyqtSignal() contextmenu = None ignorefile: bytes ignorelines: List[bytes] doseoln: bool lclunknowns: List[bytes] def __init__( self, repoagent: "RepoAgent", parent: Optional[QWidget] = None, *pats: bytes, ) -> None: 'Initialize the Dialog' QDialog.__init__(self, parent) self.setWindowFlags(self.windowFlags() & ~Qt.WindowType.WindowContextHelpButtonHint | Qt.WindowType.WindowMaximizeButtonHint) self._repoagent = repoagent self.pats = pats self.setWindowTitle(_('Ignore filter - %s') % repoagent.displayName()) self.setWindowIcon(qtlib.geticon('thg-ignore')) vbox = QVBoxLayout() self.setLayout(vbox) # layer 1 hbox = QHBoxLayout() vbox.addLayout(hbox) recombo = QComboBox() recombo.addItems([_('Glob'), _('Regexp')]) hbox.addWidget(recombo) le = QLineEdit() hbox.addWidget(le, 1) le.returnPressed.connect(self.addEntry) add = QPushButton(_('Add')) add.setAutoDefault(False) add.clicked.connect(self.addEntry) hbox.addWidget(add, 0) # layer 2 repo = repoagent.rawRepo() hbox = QHBoxLayout() vbox.addLayout(hbox) ignorefiles = [repo.wjoin(b'.hgignore')] for name, value in repo.ui.configitems(b'ui'): if name == b'ignore' or name.startswith(b'ignore.'): ignorefiles.append(util.expandpath(value)) filecombo = QComboBox() hbox.addWidget(filecombo) for f in ignorefiles: filecombo.addItem(hglib.tounicode(f)) filecombo.currentIndexChanged.connect(self.fileselect) self.ignorefile = ignorefiles[0] edit = QPushButton(_('Edit File')) edit.setAutoDefault(False) edit.clicked.connect(self.editClicked) hbox.addWidget(edit) hbox.addStretch(1) # layer 3 - main widgets split = QSplitter() vbox.addWidget(split, 1) ignoregb = QGroupBox() ivbox = QVBoxLayout() ignoregb.setLayout(ivbox) lbl = QLabel(_('Ignore Filter')) ivbox.addWidget(lbl) split.addWidget(ignoregb) unknowngb = QGroupBox() uvbox = QVBoxLayout() unknowngb.setLayout(uvbox) lbl = QLabel(_('Untracked Files')) uvbox.addWidget(lbl) split.addWidget(unknowngb) ignorelist = QListWidget() ivbox.addWidget(ignorelist) ignorelist.setSelectionMode(QAbstractItemView.SelectionMode.ExtendedSelection) unknownlist = QListWidget() uvbox.addWidget(unknownlist) unknownlist.setSelectionMode(QAbstractItemView.SelectionMode.ExtendedSelection) unknownlist.currentTextChanged.connect(self.setGlobFilter) unknownlist.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) unknownlist.customContextMenuRequested.connect(self.menuRequest) unknownlist.itemDoubleClicked.connect(self.unknownDoubleClicked) lbl = QLabel(_('Backspace or Del to remove row(s)')) ivbox.addWidget(lbl) # layer 4 - dialog buttons bb = QDialogButtonBox(QDialogButtonBox.StandardButton.Close) bb.button(QDialogButtonBox.StandardButton.Close).setAutoDefault(False) bb.accepted.connect(self.accept) bb.rejected.connect(self.reject) vbox.addWidget(bb) self.bb = bb le.setFocus() self.le, self.recombo, self.filecombo = le, recombo, filecombo self.ignorelist, self.unknownlist = ignorelist, unknownlist ignorelist.installEventFilter(self) QTimer.singleShot(0, self.refresh) s = QSettings() self.restoreGeometry(qtlib.readByteArray(s, 'hgignore/geom')) @property def repo(self): return self._repoagent.rawRepo() def eventFilter(self, obj: QObject, event: QEvent) -> bool: if obj != self.ignorelist: return False if event.type() != QEvent.Type.KeyPress: return False elif cast(QKeyEvent, event).key() not in (Qt.Key.Key_Backspace, Qt.Key.Key_Delete): return False if obj.currentRow() < 0: return False for idx in sorted(obj.selectedIndexes(), reverse=True): self.ignorelines.pop(idx.row()) self.writeIgnoreFile() self.refresh() return True def menuRequest(self, point: QPoint) -> None: 'context menu request for unknown list' point = self.unknownlist.viewport().mapToGlobal(point) selected = [self.lclunknowns[i.row()] for i in sorted(self.unknownlist.selectedIndexes())] if len(selected) == 0: return if not self.contextmenu: self.contextmenu = QMenu(self) self.contextmenu.setTitle(_('Add ignore filter...')) else: self.contextmenu.clear() filters: List[List[bytes]] = [] if len(selected) == 1: local = selected[0] filters.append([local]) dirname = os.path.dirname(local) while dirname: filters.append([dirname]) dirname = os.path.dirname(dirname) base, ext = os.path.splitext(local) if ext: filters.append([b'*'+ext]) filters.append([b'**'+ext]) else: filters.append(selected) for f in filters: n = len(f) == 1 and f[0] or _('selected files') a = self.contextmenu.addAction(_('Ignore ') + hglib.tounicode(n)) a._patterns = f a.triggered.connect(self.insertFilters) self.contextmenu.exec(point) def unknownDoubleClicked(self, item: QListWidgetItem) -> None: self.insertFilters([hglib.fromunicode(item.text())]) def insertFilters( self, pats: Optional[Iterable[bytes]] = None, isregexp: bool = False ): if not pats: pats = self.sender()._patterns h = isregexp and b'syntax: regexp' or b'syntax: glob' if h in self.ignorelines: l = self.ignorelines.index(h) for i, line in enumerate(self.ignorelines[l+1:]): if line.startswith(b'syntax:'): for pat in pats: self.ignorelines.insert(l+i+1, pat) break else: self.ignorelines.extend(pats) else: self.ignorelines.append(h) self.ignorelines.extend(pats) self.writeIgnoreFile() self.refresh() def setGlobFilter(self, qstr: str) -> None: 'user selected an unknown file; prep a glob filter' self.recombo.setCurrentIndex(0) self.le.setText(qstr) def fileselect(self) -> None: 'user selected another ignore file' self.ignorefile = hglib.fromunicode(self.filecombo.currentText()) self.refresh() def editClicked(self) -> None: ignfile = hglib.tounicode(self.ignorefile) if qscilib.fileEditor(ignfile) == QDialog.DialogCode.Accepted: self.refresh() def addEntry(self) -> None: newfilter = hglib.fromunicode(self.le.text()).strip() if newfilter == b'': return self.le.clear() if self.recombo.currentIndex() == 0: test = b'glob:' + newfilter try: match.match(self.repo.root, b'', [], [test]) self.insertFilters([newfilter], False) except error.Abort as inst: qtlib.WarningMsgBox(_('Invalid glob expression'), hglib.exception_str(inst), parent=self) return else: test = b'relre:' + newfilter try: match.match(self.repo.root, b'', [], [test]) re.compile(test) self.insertFilters([newfilter], True) except (error.Abort, re.error) as inst: qtlib.WarningMsgBox(_('Invalid regexp expression'), hglib.exception_str(inst), parent=self) return def refresh(self) -> None: try: with open(self.ignorefile, 'rb') as fp: l = fp.readlines() self.doseoln = l[0].endswith(b'\r\n') except (IOError, ValueError, IndexError): self.doseoln = os.name == 'nt' l = [] self.ignorelines = [line.strip() for line in l] self.ignorelist.clear() uni = hglib.tounicode self.ignorelist.addItems([uni(l) for l in self.ignorelines]) try: self.repo.thginvalidate() with lfutil.lfstatus(self.repo): self.lclunknowns = self.repo.status(unknown=True).unknown except (EnvironmentError, error.RepoError) as e: qtlib.WarningMsgBox(_('Unable to read repository status'), hglib.exception_str(e), parent=self) except error.Abort as e: err = hglib.exception_str(e, show_hint=True) qtlib.WarningMsgBox(_('Unable to read repository status'), err, parent=self) self.lclunknowns = [] return if not self.pats: try: self.pats = [self.lclunknowns[i.row()] for i in self.unknownlist.selectedIndexes()] except IndexError: self.pats = [] self.unknownlist.clear() self.unknownlist.addItems([uni(u) for u in self.lclunknowns]) for i, u in enumerate(self.lclunknowns): if u in self.pats: item = self.unknownlist.item(i) item.setSelected(True) self.unknownlist.setCurrentItem(item) self.le.setText(hglib.tounicode(u)) self.pats = [] def writeIgnoreFile(self) -> None: eol = self.doseoln and b'\r\n' or b'\n' out = eol.join(self.ignorelines) + eol hasignore = os.path.exists(self.repo.vfs.join(self.ignorefile)) try: f = util.atomictempfile(self.ignorefile, b'wb', createmode=None) f.write(out) f.close() if not hasignore: ret = qtlib.QuestionMsgBox(_('New file created'), _('TortoiseHg has created a new ' '.hgignore file. Would you like to ' 'add this file to the source code ' 'control repository?'), parent=self) if ret: commands.add(hglib.loadui(), self.repo, self.ignorefile) shlib.shell_notify([self.ignorefile]) self.ignoreFilterUpdated.emit() except EnvironmentError as e: qtlib.WarningMsgBox(_('Unable to write .hgignore file'), hglib.exception_str(e), parent=self) def accept(self) -> None: s = QSettings() s.setValue('hgignore/geom', self.saveGeometry()) QDialog.accept(self) def reject(self) -> None: s = QSettings() s.setValue('hgignore/geom', self.saveGeometry()) QDialog.reject(self) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730809007.0 tortoisehg-6.9/tortoisehg/hgqt/hginit.py0000644000000000000000000001233514712406257017317 0ustar00rootroot# hginit.py - TortoiseHg dialog to initialize a repo # # Copyright 2008 Steve Borho # Copyright 2010 Johan Samyn # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os from .qtcore import ( pyqtSignal, pyqtSlot, ) from .qtgui import ( QCheckBox, QFileDialog, QFormLayout, QHBoxLayout, QLineEdit, QPushButton, QSizePolicy, QVBoxLayout, ) from ..util import hglib from ..util.i18n import _ from . import ( cmdcore, cmdui, qtlib, ) if hglib.TYPE_CHECKING: from typing import ( List, Optional, Text, ) from mercurial import ( ui as uimod, ) from .qtgui import ( QWidget, ) class InitWidget(cmdui.AbstractCmdWidget): def __init__(self, ui: uimod.ui, cmdagent: cmdcore.CmdAgent, destdir: Text = '.', parent: Optional[QWidget] = None) -> None: super(InitWidget, self).__init__(parent) self.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed) self._cmdagent = cmdagent form = QFormLayout() self.setLayout(form) # dest widgets self._dest_edit = QLineEdit() self._dest_edit.setMinimumWidth(300) self._dest_btn = QPushButton(_('Browse...')) self._dest_btn.setAutoDefault(False) destbox = QHBoxLayout() destbox.addWidget(self._dest_edit, 1) destbox.addWidget(self._dest_btn) form.addRow(_('Destination path:'), destbox) # options checkboxes if ui.config(b'tortoisehg', b'initskel'): l = _('Copy working directory files from skeleton') else: l = _('Create special files (.hgignore, ...)') self._add_files_chk = QCheckBox(l) self._make_pre_1_7_chk = QCheckBox( _('Make repo compatible with Mercurial <1.7')) optbox = QVBoxLayout() optbox.addWidget(self._add_files_chk) optbox.addWidget(self._make_pre_1_7_chk) form.addRow('', optbox) # some extras self._hgcmd_txt = QLineEdit() self._hgcmd_txt.setReadOnly(True) form.addRow(_('Hg command:'), self._hgcmd_txt) # init defaults path = os.path.abspath(destdir) if os.path.isfile(path): path = os.path.dirname(path) self._dest_edit.setText(path) self._add_files_chk.setChecked(True) self._make_pre_1_7_chk.setChecked(False) self._composeCommand() # connecting slots self._dest_edit.textChanged.connect(self._composeCommand) self._dest_btn.clicked.connect(self._browseDestination) self._add_files_chk.toggled.connect(self._composeCommand) self._make_pre_1_7_chk.toggled.connect(self._composeCommand) @pyqtSlot() def _browseDestination(self) -> None: """Select the destination directory""" caption = _('Select Destination Folder') path = QFileDialog.getExistingDirectory(self, caption) if path: self._dest_edit.setText(path) def destination(self) -> Text: return self._dest_edit.text().strip() def _buildCommand(self) -> List[Text]: cfgs = [] if self._add_files_chk.isChecked(): cfgs.append('hooks.post-init.thgskel=' 'python:tortoisehg.util.hgcommands.postinitskel') if self._make_pre_1_7_chk.isChecked(): cfgs.append('format.dotencode=False') return hglib.buildcmdargs('init', self.destination(), config=cfgs) @pyqtSlot() def _composeCommand(self) -> None: cmdline = self._buildCommand() self._hgcmd_txt.setText('hg ' + hglib.prettifycmdline(cmdline)) self.commandChanged.emit() def canRunCommand(self) -> bool: return bool(self.destination()) def runCommand(self) -> cmdcore.CmdSession: cmdline = self._buildCommand() return self._cmdagent.runCommand(cmdline, self) class InitDialog(cmdui.CmdControlDialog): newRepository = pyqtSignal(str) def __init__(self, ui: uimod.ui, destdir: Text = '.', parent: Optional[QWidget] = None) -> None: super(InitDialog, self).__init__(parent) self.setWindowTitle(_('New Repository')) self.setWindowIcon(qtlib.geticon('hg-init')) self.setObjectName('init') self.setRunButtonText(_('&Create')) self._cmdagent = cmdagent = cmdcore.CmdAgent(ui, self) cmdagent.serviceStopped.connect(self.reject) self.setCommandWidget(InitWidget(ui, cmdagent, destdir, self)) self.commandFinished.connect(self._handleNewRepo) def destination(self) -> Text: return self.commandWidget().destination() @pyqtSlot(int) def _handleNewRepo(self, ret: int) -> None: if ret != 0: return self.newRepository.emit(self.destination()) def done(self, r: int) -> None: if self._cmdagent.isServiceRunning(): self._cmdagent.stopService() return # postponed until serviceStopped super(InitDialog, self).done(r) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730809007.0 tortoisehg-6.9/tortoisehg/hgqt/hgrcutil.py0000644000000000000000000000415114712406257017653 0ustar00rootroot# hgrcutils.py - Functions to manipulate hgrc (or similar) files # # Copyright 2011 Angel Ezquerra # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os from tortoisehg.hgqt import qtlib from tortoisehg.util import wconfig from tortoisehg.util.i18n import _ from tortoisehg.util import ( hglib, ) if hglib.TYPE_CHECKING: from typing import ( List, Optional, Tuple, ) from tortoisehg.util.typelib import ( IniConfig, ) from tortoisehg.hgqt.qtgui import ( QWidget, ) def loadIniFile(rcpath: List[bytes], parent: Optional[QWidget] = None) -> Tuple[Optional[bytes], IniConfig]: for fn in rcpath: if os.path.exists(fn): break else: for fn in rcpath: # Try to create a file from rcpath try: with open(fn, 'w') as f: f.write('# Generated by TortoiseHg\n') break except EnvironmentError: pass else: qtlib.WarningMsgBox(_('Unable to create a config file'), _('Insufficient access rights.'), parent=parent) return None, wconfig.config() return fn, wconfig.readfile(fn) def setConfigValue(rcfilepath: bytes, cfgpath: bytes, value: bytes) -> bool: ''' Set a value on a config file, such as an hgrc or a .ini file rcpfilepath: Absolute path to a configuration file cfgpath: Full "path" of a configurable key Format is section.keyNamee.g. 'web.name') value: String value for the selected config key ''' fn, cfg = loadIniFile([rcfilepath]) if not hasattr(cfg, 'write'): return False if fn is None: return False cfgFullKey = cfgpath.split(b'.') if len(cfgFullKey) < 2: return False cfg.set(cfgFullKey[0], cfgFullKey[1], value) try: wconfig.writefile(cfg, fn) except EnvironmentError as e: return False return True ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/htmldelegate.py0000644000000000000000000000372014672254332020472 0ustar00rootroot# htmldelegate.py - HTML QStyledItemDelegate # # Copyright 2010 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations from .qtcore import ( QPointF, QSize, ) from .qtgui import ( QAbstractTextDocumentLayout, QPalette, QStyle, QStyleOptionViewItem, QStyledItemDelegate, QTextDocument, ) class HTMLDelegate(QStyledItemDelegate): def paint(self, painter, option, index): # draw selection option = QStyleOptionViewItem(option) self.parent().style().drawControl(QStyle.ControlElement.CE_ItemViewItem, option, painter) # draw text doc = self._builddoc(option, index) painter.save() painter.setClipRect(option.rect) painter.translate(QPointF( option.rect.left(), option.rect.top() + (option.rect.height() - doc.size().height()) / 2)) ctx = QAbstractTextDocumentLayout.PaintContext() ctx.palette = option.palette if option.state & QStyle.StateFlag.State_Selected: if option.state & QStyle.StateFlag.State_Active: ctx.palette.setCurrentColorGroup(QPalette.ColorGroup.Active) else: ctx.palette.setCurrentColorGroup(QPalette.ColorGroup.Inactive) ctx.palette.setBrush(QPalette.ColorRole.Text, ctx.palette.highlightedText()) elif not option.state & QStyle.StateFlag.State_Enabled: ctx.palette.setCurrentColorGroup(QPalette.ColorGroup.Disabled) doc.documentLayout().draw(painter, ctx) painter.restore() def sizeHint(self, option, index): doc = self._builddoc(option, index) return QSize(int(doc.idealWidth() + 5), int(doc.size().height())) def _builddoc(self, option, index): doc = QTextDocument(defaultFont=option.font) doc.setHtml(index.data()) return doc ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/htmlui.py0000644000000000000000000000702114672254332017333 0ustar00rootroot# htmlui.py - mercurial.ui.ui class which emits HTML/Rich Text # # Copyright 2010 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import time from mercurial import ( ui as ui_mod, url as url_mod, ) from tortoisehg.hgqt import qtlib from tortoisehg.util import hglib BEGINTAG = b'\033' + hglib.fromunicode(str(time.time())) ENDTAG = b'\032' + hglib.fromunicode(str(time.time())) class htmlui(ui_mod.ui): def __init__(self, src=None): super(htmlui, self).__init__(src) self.setconfig(b'ui', b'interactive', b'off') self.setconfig(b'progress', b'disable', b'True') self.output, self.error = [], [] def write(self, *args, **opts): if self._buffers: return super(htmlui, self).write(*args, **opts) label = opts.get('label', b'') self.output.extend(self.smartlabel(b''.join(args), label)) def write_err(self, *args, **opts): if self._buffers: return super(htmlui, self).write_err(*args, **opts) label = opts.get('label', b'ui.error') self.error.extend(self.smartlabel(b''.join(args), label)) def label(self, msg, label): ''' Called by Mercurial to apply styling (formatting) to a piece of text. Our implementation wraps tags around the data so we can find it later when it is passed to smartlabel through ui.write() ''' if self._buffers: return super(htmlui, self).label(msg, label) return BEGINTAG + self.style(msg, label) + ENDTAG def style(self, msg, label): '''htmlui specific method. Escape message as safe HTML with style from specified label. ''' msg = url_mod.escape(msg).replace(b'\n', b'
                                                                                                            ') style = hglib.fromunicode(qtlib.geteffect(hglib.tounicode(label))) return b'%s' % (style, msg) def smartlabel(self, text, label): '''htmlui specific method. Escape and apply style from label on text, excluding any text between BEGINTAG and ENDTAG which already must have been escaped and styled. ''' parts = [] try: while True: b = text.index(BEGINTAG) e = text.index(ENDTAG) if e > b: if b: parts.append(self.style(text[:b], label)) parts.append(text[b + len(BEGINTAG):e]) text = text[e + len(ENDTAG):] else: # invalid range, assume ENDTAG and BEGINTAG # are naturually occuring. Style, append, and # consume up to the BEGINTAG and repeat. parts.append(self.style(text[:b], label)) text = text[b:] except ValueError: pass if text: parts.append(self.style(text, label)) return parts def plain(self, feature=None): '''Always pretend HGPLAIN when using htmlui''' return True def getdata(self): '''htmlui specific method. Retrieve buffered htmlui output and error as unicode html. ''' d, e = b''.join(self.output), b''.join(self.error) self.output, self.error = [], [] return d, e if __name__ == "__main__": from mercurial import hg u = htmlui.load() repo = hg.repository(u) repo.status() print(u.getdata()[0]) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/infobar.py0000644000000000000000000003315714672254332017462 0ustar00rootroot# infobar.py - widget for non-modal message # # Copyright 2011 Yuya Nishihara # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import re from .qtcore import ( QTimer, Qt, pyqtSignal, pyqtSlot, ) from .qtgui import ( QColor, QDialogButtonBox, QFrame, QHBoxLayout, QLabel, QPalette, QPushButton, QSizePolicy, QStyle, QTableView, QVBoxLayout, QWidget, ) from mercurial.i18n import _ as hggettext from mercurial import ( util, ) from ..util import hglib from ..util.i18n import _ from . import qtlib # Strings and regexes used to convert hashes and subrepo paths into links _hashregex = re.compile(r'\b[0-9a-fA-F]{12,}') # Currently converting subrepo paths into links only works in English _subrepoindicatorpattern = hglib.tounicode(hggettext(b'(in subrepo %s)') + b'\n') def _linkifyHash(message, subrepo=''): if subrepo: p = 'repo:%s?' % subrepo else: p = 'cset:' replaceexpr = lambda m: '%s' % (p + m.group(0), m.group(0)) return _hashregex.sub(replaceexpr, message) def _linkifySubrepoRef(message, subrepo, hash=''): if hash: hash = '?' + hash subrepolink = '%s' % (subrepo, hash, subrepo) subrepoindicator = _subrepoindicatorpattern % subrepo linkifiedsubrepoindicator = _subrepoindicatorpattern % subrepolink message = message.replace(subrepoindicator, linkifiedsubrepoindicator) return message def linkifyMessage(message: str, subrepo=None): r"""Convert revision id hashes and subrepo paths in messages into links >>> linkifyMessage('abort: 0123456789ab!\nhint: foo\n') u'abort: 0123456789ab!
                                                                                                            hint: foo
                                                                                                            ' >>> linkifyMessage('abort: foo (in subrepo bar)\n', subrepo='bar') u'abort: foo (in subrepo bar)
                                                                                                            ' >>> linkifyMessage('abort: 0123456789ab! (in subrepo bar)\nhint: foo\n', ... subrepo='bar') #doctest: +NORMALIZE_WHITESPACE u'abort: 0123456789ab! (in subrepo bar)
                                                                                                            hint: foo
                                                                                                            ' subrepo name containing regexp backreference, \g: >>> linkifyMessage('abort: 0123456789ab! (in subrepo foo\\goo)\n', ... subrepo='foo\\goo') #doctest: +NORMALIZE_WHITESPACE u'abort: 0123456789ab! (in subrepo foo\\goo)
                                                                                                            ' """ message = _linkifyHash(message, subrepo) if subrepo: hash = '' m = _hashregex.search(message) if m: hash = m.group(0) message = _linkifySubrepoRef(message, subrepo, hash) return message.replace('\n', '
                                                                                                            ') # type of InfoBar (the number denotes its priority) INFO = 1 ERROR = 2 CONFIRM = 3 class InfoBar(QFrame): """Non-modal confirmation/alert (like web flash or Chrome's InfoBar) Layout:: |widgets ... |right widgets ...|x| """ finished = pyqtSignal(int) # mimic QDialog linkActivated = pyqtSignal(str) infobartype = INFO _colormap = { INFO: '#e7f9e0', ERROR: '#f9d8d8', CONFIRM: '#fae9b3', } def __init__(self, parent=None): super(InfoBar, self).__init__(parent, frameShape=QFrame.Shape.StyledPanel, frameShadow=QFrame.Shadow.Plain) self.setAutoFillBackground(True) p = self.palette() p.setColor(QPalette.ColorRole.Window, QColor(self._colormap[self.infobartype])) p.setColor(QPalette.ColorRole.WindowText, QColor("black")) self.setPalette(p) self.setLayout(QHBoxLayout()) self.layout().setContentsMargins(2, 2, 2, 2) self.layout().addStretch() self._closebutton = QPushButton(self, flat=True, autoDefault=False, icon=self.style().standardIcon(QStyle.StandardPixmap.SP_TitleBarCloseButton)) if qtlib.IS_RETINA: self._closebutton.setIconSize(qtlib.barRetinaIconSize()) self._closebutton.clicked.connect(self.close) self.layout().addWidget(self._closebutton) def addWidget(self, w, stretch=0): self.layout().insertWidget(self.layout().count() - 2, w, stretch) def addRightWidget(self, w): self.layout().insertWidget(self.layout().count() - 1, w) def closeEvent(self, event): if self.isVisible(): self.finished.emit(0) super(InfoBar, self).closeEvent(event) def keyPressEvent(self, event): if event.key() == Qt.Key.Key_Escape: self.close() super(InfoBar, self).keyPressEvent(event) def heightForWidth(self, width): # loosely based on the internal strategy of QBoxLayout if self.layout().hasHeightForWidth(): return super(InfoBar, self).heightForWidth(width) else: return self.sizeHint().height() class StatusInfoBar(InfoBar): """Show status message""" def __init__(self, message, parent=None): super(StatusInfoBar, self).__init__(parent) self._msglabel = QLabel(message, self, wordWrap=True, textInteractionFlags=Qt.TextInteractionFlag.TextSelectableByMouse \ | Qt.TextInteractionFlag.LinksAccessibleByMouse) self._msglabel.linkActivated.connect(self.linkActivated) self.addWidget(self._msglabel, stretch=1) class CommandErrorInfoBar(InfoBar): """Show command execution failure (with link to open log window)""" infobartype = ERROR def __init__(self, message, parent=None): super(CommandErrorInfoBar, self).__init__(parent) self._msglabel = QLabel(message, self, wordWrap=True, textInteractionFlags=Qt.TextInteractionFlag.TextSelectableByMouse \ | Qt.TextInteractionFlag.LinksAccessibleByMouse) self._msglabel.linkActivated.connect(self.linkActivated) self.addWidget(self._msglabel, stretch=1) self._loglabel = QLabel('%s' % _('Show Log')) self._loglabel.linkActivated.connect(self.linkActivated) self.addRightWidget(self._loglabel) class ConfirmInfoBar(InfoBar): """Show confirmation message with accept/reject buttons""" accepted = pyqtSignal() rejected = pyqtSignal() infobartype = CONFIRM def __init__(self, message, parent=None): super(ConfirmInfoBar, self).__init__(parent) # no wordWrap=True and stretch=1, which inserts unwanted space # between _msglabel and _buttons. self._msglabel = QLabel(message, self, textInteractionFlags=Qt.TextInteractionFlag.TextSelectableByMouse \ | Qt.TextInteractionFlag.LinksAccessibleByMouse) self._msglabel.linkActivated.connect(self.linkActivated) self.addWidget(self._msglabel) self._buttons = QDialogButtonBox(self) self._buttons.setSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed) self.acceptButton = self._buttons.addButton(QDialogButtonBox.StandardButton.Ok) self.rejectButton = self._buttons.addButton(QDialogButtonBox.StandardButton.Cancel) self._buttons.accepted.connect(self._accept) self._buttons.rejected.connect(self._reject) self.addWidget(self._buttons) # so that acceptButton gets focus by default self.setFocusProxy(self._buttons) def closeEvent(self, event): if self.isVisible(): self.finished.emit(1) self.rejected.emit() self.hide() # avoid double emission of finished signal super(ConfirmInfoBar, self).closeEvent(event) @pyqtSlot() def _accept(self): self.finished.emit(0) self.accepted.emit() self.hide() self.close() @pyqtSlot() def _reject(self): self.finished.emit(1) self.rejected.emit() self.hide() self.close() class InfoBarPlaceholder(QWidget): """Manage geometry of view according to visibility of InfoBar""" linkActivated = pyqtSignal(str) def __init__(self, repoagent, parent=None): super(InfoBarPlaceholder, self).__init__(parent) self._repoagent = repoagent lay = QVBoxLayout() lay.setSpacing(0) lay.setContentsMargins(0, 0, 0, 0) self.setLayout(lay) self._view = None self._activeInfoBar = None self._infoLifetime = QTimer(self, singleShot=True) self._infoLifetime.timeout.connect(self._clearStaleInfo) repoagent.busyChanged.connect(self._clearStaleInfo) def setView(self, view): assert isinstance(view, QTableView), repr(view) lay = self.layout() if self._view: lay.removeWidget(self._view) self._view = view lay.addWidget(view) def activeInfoBar(self): return self._activeInfoBar def setInfoBar(self, cls, *args, **kwargs): """Show the given infobar at top of the widget If the priority of the current infobar is higher than new one, the request is silently ignored. """ cleared = self.clearInfoBar(priority=cls.infobartype) if not cleared: return w = cls(*args, **kwargs) w.setParent(self) w.finished.connect(self._freeInfoBar) w.linkActivated.connect(self.linkActivated) self._activeInfoBar = w self._updateInfoBarGeometry() w.show() if w.infobartype > INFO: w.setFocus() # to handle key press by InfoBar else: self._infoLifetime.start(2000) return w def clearInfoBar(self, priority=None): """Close current infobar if available; return True if got empty""" if not self._activeInfoBar: return True if priority is None or self._activeInfoBar.infobartype <= priority: self._activeInfoBar.finished.disconnect(self._freeInfoBar) self._activeInfoBar.close() self._freeInfoBar() # call directly in case of event delay return True else: return False def discardInfoBar(self): """Remove current infobar silently with no signal""" if self._activeInfoBar: self._activeInfoBar.hide() self._freeInfoBar() @pyqtSlot() def _freeInfoBar(self): """Disown closed infobar""" if not self._activeInfoBar: return self._activeInfoBar.setParent(None) self._activeInfoBar = None self._infoLifetime.stop() # clear margin for overlay self.layout().setContentsMargins(0, 0, 0, 0) @pyqtSlot() def _clearStaleInfo(self): # do not clear message while command is running because it doubles # as busy indicator if self._repoagent.isBusy() or self._infoLifetime.isActive(): return self.clearInfoBar(INFO) def _updateInfoBarGeometry(self): if not self._activeInfoBar: return w = self._activeInfoBar f = self w.setGeometry(0, 0, f.width(), w.heightForWidth(f.width())) # give margin to make header or first row accessible. without header, # column width cannot be changed while confirmation is presented. # # CONFIRM ERROR INFO # ____________ .... .... ____ # : cmy ____ cmy ---- h.y # : w.height ____ ---- h.y ____ h.height # _:__________ ---- h.y ____ h.height # ____ h.height # h = self._view.horizontalHeader() if w.infobartype >= CONFIRM: cmy = w.height() - h.y() elif w.infobartype >= ERROR: cmy = w.height() - h.y() - h.height() else: cmy = 0 self.layout().setContentsMargins(0, max(cmy, 0), 0, 0) def resizeEvent(self, event): super(InfoBarPlaceholder, self).resizeEvent(event) self._updateInfoBarGeometry() @pyqtSlot(str) def showMessage(self, msg): if msg: self.setInfoBar(StatusInfoBar, msg) else: self.clearInfoBar(priority=StatusInfoBar.infobartype) @pyqtSlot(str, str) def showOutput(self, msg: str, label: str, maxlines=2, maxwidth=140): labelslist = label.split() if 'ui.error' in labelslist: # Check if a subrepo is set in the label list subrepo = None subrepolabel = 'subrepo=' for label in labelslist: if label.startswith(subrepolabel): # The subrepo "label" is encoded ascii subrepo = hglib.tounicode(util.urlreq.unquote( hglib.fromunicode(label)[len(subrepolabel):])) break # Limit the text shown on the info bar to maxlines lines of up to # maxwidth chars msglines = msg.strip().splitlines() infolines = [] for line in msglines[0:maxlines]: if len(line) > maxwidth: line = line[0:maxwidth] + ' ...' infolines.append(line) if len(msglines) > maxlines and not infolines[-1].endswith('...'): infolines[-1] += ' ...' infomsg = linkifyMessage('\n'.join(infolines), subrepo=subrepo) self.setInfoBar(CommandErrorInfoBar, infomsg) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1736945564.0 tortoisehg-6.9/tortoisehg/hgqt/lexers.py0000644000000000000000000002024414741727634017344 0ustar00rootroot# lexers.py - select Qsci lexer for a filename and contents # # Copyright 2010 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os import re from mercurial import ( pycompat, ) from . import ( qsci as Qsci, qtgui as QtGui, ) from . import qtlib from ..util import ( hglib, ) if hasattr(QtGui.QColor, 'getHslF'): def _fixdarkcolors(lexer): """Invert lightness of low-contrast colors on dark theme""" if not qtlib.isDarkTheme(): return # fast path # QsciLexer defines 128 styles by default for style in pycompat.xrange(128): h, s, l, a = lexer.color(style).getHslF() pl = lexer.paper(style).lightnessF() if abs(l - pl) < 0.2: lexer.setColor(QtGui.QColor.fromHslF(h, s, 1.0 - l, a), style) else: # no support for PyQt 4.6.x def _fixdarkcolors(lexer): pass class _LexerSelector(object): _lexer = None def match(self, filename, filedata): return False def lexer(self, parent): """ Return a configured instance of the lexer """ return self.cfg_lexer(self._lexer(parent)) def cfg_lexer(self, lexer): font = qtlib.getfont('fontlog').font() lexer.setFont(font, -1) _fixdarkcolors(lexer) return lexer class _FilenameLexerSelector(_LexerSelector): """ Base class for lexer selector based on file name matching """ extensions = () def match(self, filename, filedata): filename = filename.lower() for ext in self.extensions: if filename.endswith(ext): return True return False class _ScriptLexerSelector(_FilenameLexerSelector): """ Base class for lexer selector based on content pattern matching """ regex = None headersize = 3 def match(self, filename, filedata): if super(_ScriptLexerSelector, self).match(filename, filedata): return True if self.regex and filedata: for line in filedata.splitlines()[:self.headersize]: if len(line)<1000 and self.regex.match(line): return True return False class PythonLexerSelector(_ScriptLexerSelector): extensions = ('.py', '.pyw') _lexer = Qsci.QsciLexerPython regex = re.compile(br'^#[!].*python') class BashLexerSelector(_ScriptLexerSelector): extensions = ('.sh', '.bash') _lexer = Qsci.QsciLexerBash regex = re.compile(br'^#[!].*sh') class PerlLexerSelector(_ScriptLexerSelector): extensions = ('.pl', '.perl') _lexer = Qsci.QsciLexerPerl regex = re.compile(br'^#[!].*perl') class RubyLexerSelector(_ScriptLexerSelector): extensions = ('.rb', '.ruby') _lexer = Qsci.QsciLexerRuby regex = re.compile(br'^#[!].*ruby') class LuaLexerSelector(_ScriptLexerSelector): extensions = ('.lua', ) _lexer = Qsci.QsciLexerLua regex = None class _LexerCPP(Qsci.QsciLexerCPP): def refreshProperties(self): super(_LexerCPP, self).refreshProperties() # disable grey-out of inactive block, which is hard to read. # as of QScintilla 2.7.2, this property isn't mapped to wrapper. self.propertyChanged.emit(b'lexer.cpp.track.preprocessor', b'0') class CppLexerSelector(_FilenameLexerSelector): extensions = ('.c', '.cpp', '.cc', '.cxx', '.cl', '.cu', '.h', '.hpp', '.hh', '.hxx') _lexer = _LexerCPP class DLexerSelector(_FilenameLexerSelector): extensions = ('.d',) _lexer = Qsci.QsciLexerD class PascalLexerSelector(_FilenameLexerSelector): extensions = ('.pas',) _lexer = Qsci.QsciLexerPascal class CSSLexerSelector(_FilenameLexerSelector): extensions = ('.css',) _lexer = Qsci.QsciLexerCSS class XMLLexerSelector(_FilenameLexerSelector): extensions = ('.xhtml', '.xml', '.csproj', 'app.config', 'web.config') _lexer = Qsci.QsciLexerXML class HTMLLexerSelector(_FilenameLexerSelector): extensions = ('.htm', '.html') _lexer = Qsci.QsciLexerHTML class YAMLLexerSelector(_FilenameLexerSelector): extensions = ('.yml',) _lexer = Qsci.QsciLexerYAML class VHDLLexerSelector(_FilenameLexerSelector): extensions = ('.vhd', '.vhdl') _lexer = Qsci.QsciLexerVHDL class BatchLexerSelector(_FilenameLexerSelector): extensions = ('.cmd', '.bat') _lexer = Qsci.QsciLexerBatch class MakeLexerSelector(_FilenameLexerSelector): extensions = ('.mk', 'makefile') _lexer = Qsci.QsciLexerMakefile class CMakeLexerSelector(_FilenameLexerSelector): extensions = ('.cmake', 'cmakelists.txt') _lexer = Qsci.QsciLexerCMake class SQLLexerSelector(_FilenameLexerSelector): extensions = ('.sql',) _lexer = Qsci.QsciLexerSQL class JSLexerSelector(_FilenameLexerSelector): extensions = ('.js', '.json') _lexer = Qsci.QsciLexerJavaScript class JavaLexerSelector(_FilenameLexerSelector): extensions = ('.java',) _lexer = Qsci.QsciLexerJava class TeXLexerSelector(_FilenameLexerSelector): extensions = ('.tex', '.latex',) _lexer = Qsci.QsciLexerTeX class CSharpLexerSelector(_FilenameLexerSelector): extensions = ('.cs',) _lexer = Qsci.QsciLexerCSharp class TCLLexerSelector(_FilenameLexerSelector): extensions = ('.tcl', '.do', '.fdo', '.udo') _lexer = Qsci.QsciLexerTCL class MatlabLexerSelector(_FilenameLexerSelector): extensions = ('.m',) try: _lexer = Qsci.QsciLexerMatlab except AttributeError: # QScintilla<2.5.1 # Python lexer is quite similar _lexer = Qsci.QsciLexerPython class FortranLexerSelector(_FilenameLexerSelector): extensions = ('.f90', '.f95', '.f03',) _lexer = Qsci.QsciLexerFortran class Fortran77LexerSelector(_FilenameLexerSelector): extensions = ('.f', '.f77',) _lexer = Qsci.QsciLexerFortran77 class SpiceLexerSelector(_FilenameLexerSelector): extensions = ('.cir', '.sp',) try: _lexer = Qsci.QsciLexerSpice except AttributeError: # is there a better fallback? _lexer = Qsci.QsciLexerCPP class VerilogLexerSelector(_FilenameLexerSelector): extensions = ('.v', '.vh') try: _lexer = Qsci.QsciLexerVerilog except AttributeError: # is there a better fallback? _lexer = Qsci.QsciLexerCPP class PropertyLexerSelector(_FilenameLexerSelector): extensions = ('.ini', '.properties') _lexer = Qsci.QsciLexerProperties class DiffLexerSelector(_ScriptLexerSelector): extensions = () _lexer = Qsci.QsciLexerDiff regex = re.compile(br'^@@ [-]\d+,\d+ [+]\d+,\d+ @@$') def cfg_lexer(self, lexer): for label, i in (('diff.inserted', Qsci.QsciLexerDiff.LineAdded), ('diff.deleted', Qsci.QsciLexerDiff.LineRemoved), ('diff.hunk', Qsci.QsciLexerDiff.Position)): effect = qtlib.geteffect(label) for e in effect.split(';'): if e.startswith('color:'): lexer.setColor(QtGui.QColor(e[7:]), i) if e.startswith('background-color:'): lexer.setEolFill(True, i) lexer.setPaper(QtGui.QColor(e[18:]), i) font = qtlib.getfont('fontdiff').font() lexer.setFont(font, -1) _fixdarkcolors(lexer) return lexer def _makelexers(): lexers = [] for clsname, cls in globals().items(): if clsname.startswith('_'): continue if isinstance(cls, type) and issubclass(cls, _LexerSelector): lexers.append(cls()) return lexers lexers = _makelexers() def difflexer(parent): return DiffLexerSelector().lexer(parent) def getlexer(ui, filename, filedata, parent): _, ext = os.path.splitext(filename) if ext and len(ext) > 1: ext = ext.lower()[1:] pref = hglib.tounicode(ui.config(b'thg-lexer', hglib.fromunicode(ext))) if pref: lexer = getattr(Qsci, 'QsciLexer' + pref) if lexer and isinstance(lexer, type): return lexer(parent) for lselector in lexers: if lselector.match(filename, filedata): return lselector.lexer(parent) return None ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730809007.0 tortoisehg-6.9/tortoisehg/hgqt/lfprompt.py0000644000000000000000000000567514712406257017711 0ustar00rootroot# lfprompt.py - prompt to add large files # # Copyright 2011 Fog Creek Software # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os from mercurial import error, match from tortoisehg.hgqt import qtlib from tortoisehg.util import hglib from tortoisehg.util.i18n import _ if hglib.TYPE_CHECKING: from typing import ( List, Optional, Tuple, ) from mercurial import ( localrepo, ui as uimod, ) from .qtgui import ( QWidget, ) def _createPrompt(parent: Optional[QWidget], files: List[bytes]) -> qtlib.CustomPrompt: return qtlib.CustomPrompt( _('Confirm Add'), _('Some of the files that you have selected are of a size ' 'over 10 MB. You may make more efficient use of disk space ' 'by adding these files as largefiles, which will store only the ' 'most recent revision of each file in your local repository, ' 'with older revisions available on the server. Do you wish ' 'to add these files as largefiles?'), parent, (_('Add as &Largefiles'), _('Add as &Normal Files'), _('Cancel')), 0, 2, files) def promptForLfiles(parent: Optional[QWidget], ui: uimod.ui, repo: localrepo.localrepository, files: List[bytes]) -> Optional[Tuple[List[bytes], List[bytes]]]: lfiles = [] section = b'largefiles' try: minsize = float(ui.config(section, b'minsize', default=10)) except ValueError: minsize = 10 patterns = ui.config(section, b'patterns') if patterns: patterns = patterns.split(b' ') try: matcher = match.match(repo.root, b'', list(patterns)) except error.Abort as e: qtlib.WarningMsgBox(_('Invalid Patterns'), _('Failed to process largefiles.patterns.'), hglib.exception_str(e), parent=parent) return None else: matcher = None for wfile in files: if matcher and matcher(wfile): # patterns have always precedence over size lfiles.append(wfile) else: # check for minimal size try: filesize = os.path.getsize(repo.wjoin(wfile)) if filesize > minsize * 1024 * 1024: lfiles.append(wfile) except OSError: pass # file not exist or inaccessible if lfiles: ret = _createPrompt(parent, files).run() if ret == 0: # add as largefiles/bfiles for lfile in lfiles: files.remove(lfile) elif ret == 1: # add as normal files lfiles = [] elif ret == 2: return None return files, lfiles ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730809007.0 tortoisehg-6.9/tortoisehg/hgqt/locktool.py0000644000000000000000000002074114712406257017663 0ustar00rootroot# locktool.py - TortoiseHg's file locking widget # # Copyright 2016 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os from .qtcore import ( QModelIndex, QSettings, QTimer, Qt, pyqtSignal, pyqtSlot, ) from .qtgui import ( QAction, QDialog, QFileDialog, QKeySequence, QLabel, QToolBar, QTreeWidget, QTreeWidgetItem, QVBoxLayout, ) from mercurial import ( extensions, pycompat, util, ) from ..util import hglib from ..util.i18n import _ from . import ( cmdcore, cmdui, qtlib, ) if hglib.TYPE_CHECKING: from typing import ( Dict, List, Optional, Text, ) from mercurial import localrepo from .qtgui import QWidget from .thgrepo import RepoAgent _FILE_FILTER = ';;'.join([ _('Word docs (*.doc *.docx)'), _('PDF docs (*.pdf)'), _('Excel files (*.xls *.xlsx)'), _('All files (*)')]) class LockDialog(QDialog): showMessage = pyqtSignal(str) @property def repo(self) -> localrepo.localrepository: return self._repoagent.rawRepo() def __init__(self, repoagent: RepoAgent, parent: Optional[QWidget] = None) -> None: QDialog.__init__(self, parent) self.setWindowTitle(_('TortoiseHg Lock Tool - %s') % \ repoagent.shortName()) self.setWindowIcon(qtlib.geticon('thg-password')) layout = QVBoxLayout() layout.setContentsMargins(2, 2, 2, 2) layout.setSpacing(4) self.setLayout(layout) self._repoagent = repoagent self._cmdsession = cmdcore.nullCmdSession() self._repoagent.configChanged.connect(self.reload) tb = QToolBar(self) tb.setIconSize(qtlib.toolBarIconSize()) tb.setStyleSheet(qtlib.tbstylesheet) self.layout().addWidget(tb) self.refreshAction = a = QAction(self) a.setToolTip(_('Refresh lock information')) a.setIcon(qtlib.geticon('view-refresh')) a.triggered.connect(self.reload) tb.addAction(a) self.addAction = a = QAction(self) a.setToolTip(_('Lock a file not described in .hglocks')) a.setIcon(qtlib.geticon('new-group')) # TODO: not the best icon a.triggered.connect(self.lockany) tb.addAction(a) self.stopAction = a = QAction(self) a.setToolTip(_('Stop current operation')) a.setIcon(qtlib.geticon('process-stop')) a.triggered.connect(self.stopclicked) tb.addAction(a) lbl = QLabel(_('Locked And Lockable Files:')) self.locktw = tw = QTreeWidget(self) tw.setColumnCount(3) tw.setHeaderLabels([_('Path'), _('Locking User'), _('Purpose')]) tw.setEnabled(False) tw.doubleClicked.connect(self.rowDoubleClicked) layout.addWidget(lbl) layout.addWidget(tw) self._stbar = cmdui.ThgStatusBar() layout.addWidget(self._stbar) self.showMessage.connect(self._stbar.showMessage) s = QSettings() self.restoreGeometry(qtlib.readByteArray(s, 'lock/geom')) self.locktw.header().restoreState( qtlib.readByteArray(s, 'lock/treestate')) QTimer.singleShot(0, self.finishSetup) @pyqtSlot() def finishSetup(self) -> None: 'complete the setup, some of these steps might fail' # this code is specific to simplelock try: self.sl = extensions.find(b'simplelock') except KeyError: qtlib.WarningMsgBox(_('Simplelock extension not enabled'), _('Please enable and configure simplelock'), parent=self) self.reject() return # this code is specific to simplelock self.refillModel() self.reload() def refillModel(self) -> Dict[Text, List[Text]]: # this code is specific to simplelock locks: Dict[bytes, List[bytes]] = self.sl.parseLocks(self.repo) lockables: List[bytes] = self.sl.readlockables(self.repo) for wfile in lockables: if wfile not in locks: locks[wfile] = [b'', b''] # this code is specific to simplelock self.locktw.clear() self.rawrows = sorted([(w, u, p) for w, (u, p) in locks.items()]) rows = [] for wfile, user, purpose in self.rawrows: uwfile = hglib.tounicode(wfile) uuser = hglib.tounicode(user) upurpose = hglib.tounicode(purpose) rows.append(QTreeWidgetItem([uwfile, uuser, upurpose])) self.locktw.addTopLevelItems(rows) return pycompat.rapply(hglib.tounicode, locks) def reject(self): s = QSettings() s.setValue('lock/geom', self.saveGeometry()) s.setValue('lock/treestate', self.locktw.header().saveState()) QDialog.reject(self) @pyqtSlot() def _updateUi(self): sess = self._cmdsession self.refreshAction.setEnabled(sess.isFinished()) self.addAction.setEnabled(sess.isFinished()) self.locktw.setEnabled(sess.isFinished()) self.stopAction.setEnabled(not sess.isFinished()) @pyqtSlot() def lockany(self) -> None: wfile, _filter = QFileDialog.getOpenFileName( self, _('Open a (nonmergable) file you wish to be locked'), hglib.tounicode(self.repo.root), _FILE_FILTER) wfile = hglib.normpath(wfile) pathprefix = hglib.tounicode(util.normpath(self.repo.root)) + '/' if not os.path.normcase(wfile).startswith(os.path.normcase(pathprefix)): self.showMessage.emit(_('File was not within current repository')) wfile = wfile[len(pathprefix):] self.showMessage.emit(_('Locking %s') % wfile) self.lockrun(['lock', wfile]) def unlock(self, wfile: Text) -> None: self.showMessage.emit(_('Unlocking %s') % wfile) self.lockrun(['unlock', wfile]) def lock(self, wfile: Text, user: Text) -> None: self.showMessage.emit(_('Locking %s') % wfile) self.lockrun(['lock', wfile]) @pyqtSlot() def reload(self) -> None: 'update list of locks, then update UI' self.showMessage.emit(_('Refreshing locks...')) self.lockrun(['locks']) # has side-effect of refreshing locks def lockrun(self, ucmdline: List[Text]) -> None: self.operation = ucmdline + [None] self._cmdsession = sess = self._repoagent.runCommand(ucmdline, self) sess.commandFinished.connect(self.operationComplete) self._updateUi() def operationComplete(self) -> None: locks = self.refillModel() self._updateUi() op, wfile = self.operation[:2] if op == 'lock': if wfile in locks and locks[wfile][1]: self.showMessage.emit(_('Lock of %s successful') % wfile) qtlib.openlocalurl(wfile) else: self.showMessage.emit(_('Lock of %s failed, retry') % wfile) elif op == 'unlock': if wfile in locks and locks[wfile][1]: self.showMessage.emit(_('Unlock of %s failed, retry') % wfile) else: self.showMessage.emit(_('Unlock of %s successful') % wfile) elif locks: self.showMessage.emit(_('Ready, double click to lock or unlock')) else: self.showMessage.emit(_('Ready')) self.operation = ['N/A', None] @pyqtSlot() def stopclicked(self): self._cmdsession.abort() @pyqtSlot(QModelIndex) def rowDoubleClicked(self, index: QModelIndex) -> None: wfile, user, purpose = self.rawrows[index.row()] curuser = hglib.fromunicode(qtlib.getCurrentUsername(self, self.repo)) if user or purpose: if user != curuser: self.showMessage.emit(_('You can only release your own locks')) else: self.unlock(hglib.tounicode(wfile)) else: self.lock(hglib.tounicode(wfile), hglib.tounicode(curuser)) def canExit(self) -> bool: return self._cmdsession.isFinished() def keyPressEvent(self, event): sess = self._cmdsession if event.matches(QKeySequence.StandardKey.Refresh): self.reload() elif event.key() == Qt.Key.Key_Escape and not sess.isFinished(): sess.abort() else: return super(LockDialog, self).keyPressEvent(event) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730809007.0 tortoisehg-6.9/tortoisehg/hgqt/manifestmodel.py0000644000000000000000000006267514712406257020700 0ustar00rootroot# manifestmodel.py - Model for TortoiseHg manifest view # # Copyright (C) 2009-2010 LOGILAB S.A. # Copyright (C) 2010 Yuya Nishihara # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. from __future__ import annotations import os import re from .qtcore import ( QAbstractItemModel, QMimeData, QModelIndex, QUrl, Qt, pyqtSignal, pyqtSlot, ) from .qtgui import ( QCompleter, QFileIconProvider, QIcon, ) from hgext.largefiles import ( lfutil, ) from mercurial import ( error, match as matchmod, pycompat, scmutil, ) from ..util import hglib from . import ( filedata, qtlib, status, visdiff, ) if hglib.TYPE_CHECKING: from typing import ( Any, Dict, Iterable, List, Optional, Text, Tuple, Union, ) from mercurial import ( localrepo, ) from .qtcore import ( QObject, ) from .thgrepo import ( RepoAgent, ) from ..util.typelib import ( Qt_ItemFlags, ThgContext, ) _subrepoType2IcoMap = { 'hg': 'hg', 'hgsubversion': 'thg-svn-subrepo', 'git': 'thg-git-subrepo', 'svn': 'thg-svn-subrepo', } _subrepoStatus2IcoMap = { 'A': 'thg-added-subrepo', 'R': 'thg-removed-subrepo', } class ManifestModel(QAbstractItemModel): """Status of files between two revisions or patch""" # emitted when all files of the revision has been loaded successfully revLoaded = pyqtSignal(object) StatusRole = Qt.ItemDataRole.UserRole + 1 """Role for file change status""" # -1 and None are valid revision number FirstParent = -2 SecondParent = -3 def __init__(self, repoagent: RepoAgent, parent: Optional[QObject] = None, rev: Optional[int] = None, namefilter: Optional[Text] = None, statusfilter: Text = 'MASC', flat: bool = False) -> None: QAbstractItemModel.__init__(self, parent) self._fileiconprovider = QFileIconProvider() self._iconcache = {} # (path, status, subkind): icon self._repoagent = repoagent self._namefilter = namefilter if namefilter else '' assert all(c in 'MARSC' for c in statusfilter), repr(statusfilter) self._statusfilter = statusfilter self._changedfilesonly = False self._nodeop = _nodeopmap[bool(flat)] self._rootentry = self._newRevNode(rev) self._populate = _populaterepo self._rootpopulated = False def data(self, index: QModelIndex, role: Qt.ItemDataRole = Qt.ItemDataRole.DisplayRole) -> Any: if not index.isValid(): return if role == Qt.ItemDataRole.DecorationRole: return self.fileIcon(index) if role == self.StatusRole: return self.fileStatus(index) e: "_Entry" = index.internalPointer() if role in (Qt.ItemDataRole.DisplayRole, Qt.ItemDataRole.EditRole): return e.name def filePath(self, index: QModelIndex) -> Text: """Return path at the given index [unicode]""" if not index.isValid(): return '' return index.internalPointer().path def fileData(self, index): """Returns the displayable file data at the given index""" repo = self._repoagent.rawRepo() if not index.isValid(): return filedata.createNullData(repo) f: "_Entry" = index.internalPointer() e = f.parent while e and e.ctx is None: e = e.parent assert e, 'root entry must have ctx' wfile = hglib.fromunicode(f.path[len(e.path):].lstrip('/')) rpath = hglib.fromunicode(e.path) if f.subkind: # TODO: use subrepo ctxs and status resolved by this model return filedata.createSubrepoData(e.ctx, e.pctx, wfile, f.status, rpath, f.subkind) if f.isdir: return filedata.createDirData(e.ctx, e.pctx, wfile, rpath) return filedata.createFileData(e.ctx, e.pctx, wfile, f.status, rpath) def subrepoType(self, index: QModelIndex) -> Optional[Text]: """Return the subrepo type the specified index""" if not index.isValid(): return e: "_Entry" = index.internalPointer() return e.subkind def fileIcon(self, index: QModelIndex) -> QIcon: if not index.isValid(): return QIcon() e: "_Entry" = index.internalPointer() k = (e.path, e.status, e.subkind) try: return self._iconcache[k] except KeyError: self._iconcache[k] = ic = self._makeFileIcon(e) return ic def _makeFileIcon(self, e: "_Entry") -> QIcon: if e.subkind in _subrepoType2IcoMap: assert e.subkind is not None ic = qtlib.geticon(_subrepoType2IcoMap[e.subkind]) # use fine-tuned status overlay if any n = _subrepoStatus2IcoMap.get(e.status) if n: return qtlib.getoverlaidicon(ic, qtlib.geticon(n)) ic = qtlib.getoverlaidicon(ic, qtlib.geticon('thg-subrepo')) elif e.isdir: ic = self._fileiconprovider.icon(QFileIconProvider.IconType.Folder) else: # do not use fileiconprovier.icon(fileinfo), which may return icon # with shell (i.e. status of working directory) overlay. # default file icon looks ugly with status overlay on Windows ic = qtlib.geticon('text-x-generic') if not e.status: return ic st = status.statusTypes[e.status] if st.icon: icOverlay = qtlib.geticon(st.icon) ic = qtlib.getoverlaidicon(ic, icOverlay) return ic def fileStatus(self, index: QModelIndex) -> Optional[Text]: """Return the change status of the specified file""" if not index.isValid(): return e: "_Entry" = index.internalPointer() # TODO: 'S' should not be a status if e.subkind: return 'S' return e.status # TODO: this should be merged to fileStatus() def subrepoStatus(self, index: QModelIndex) -> Optional[Text]: """Return the change status of the specified subrepo""" if not index.isValid(): return e: "_Entry" = index.internalPointer() if not e.subkind: return return e.status def isDir(self, index: QModelIndex) -> bool: if not index.isValid(): return True # root entry must be a directory e: "_Entry" = index.internalPointer() return e.isdir def mimeData(self, indexes: Iterable[QModelIndex]) -> QMimeData: files = [self.filePath(i) for i in indexes if i.isValid()] ctx = self._rootentry.ctx if ctx.rev() is not None: repo = self._repoagent.rawRepo() lfiles = pycompat.maplist(hglib.fromunicode, files) lbase, _fns = visdiff.snapshot(repo, lfiles, ctx) base = hglib.tounicode(lbase) else: # working copy base = self._repoagent.rootPath() m = QMimeData() m.setUrls([QUrl.fromLocalFile(os.path.join(base, e)) for e in files]) return m def mimeTypes(self) -> List[Text]: return ['text/uri-list'] def flags(self, index: QModelIndex) -> Qt_ItemFlags: f = super(ManifestModel, self).flags(index) if not index.isValid(): return f if not (self.isDir(index) or self.fileStatus(index) == 'R' or self._populate is _populatepatch): f |= Qt.ItemFlag.ItemIsDragEnabled return f def index(self, row: int, column: int, parent: QModelIndex = QModelIndex()) -> QModelIndex: if row < 0 or self.rowCount(parent) <= row or column != 0: return QModelIndex() return self.createIndex(row, column, self._parententry(parent).at(row)) def indexFromPath(self, path: Text, column: int = 0) -> QModelIndex: """Return index for the specified path if found [unicode] If not found, returns invalid index. """ if not path: return QModelIndex() try: e = self._nodeop.findpath(self._rootentry, path) except KeyError: return QModelIndex() return self.createIndex(e.parent.index(e.name), column, e) def parent(self, index: QModelIndex) -> QModelIndex: if not index.isValid(): return QModelIndex() e: "_Entry" = index.internalPointer() if e.path: return self.indexFromPath(e.parent.path, index.column()) else: return QModelIndex() def _parententry(self, parent: QModelIndex) -> "_Entry": if parent.isValid(): return parent.internalPointer() else: return self._rootentry def rowCount(self, parent: QModelIndex = QModelIndex()) -> int: return len(self._parententry(parent)) def columnCount(self, parent: QModelIndex = QModelIndex()) -> int: return 1 def rev(self, parent: QModelIndex = QModelIndex()) -> Optional[int]: """Revision number of the current changectx""" e = self._parententry(parent) if e.ctx is None or not _isreporev(e.ctx.rev()): return -1 return e.ctx.rev() def baseRev(self, parent: QModelIndex = QModelIndex()) -> int: """Revision of the base changectx where status is calculated from""" e = self._parententry(parent) if e.pctx is None or not _isreporev(e.pctx.rev()): return -1 rev = e.pctx.rev() assert rev is not None # help pytype return rev def setRev(self, rev: Optional[int], prev: int = FirstParent) -> None: """Change to the specified repository revision; None for working-dir""" roote = self._rootentry newroote = self._newRevNode(rev, prev) # Help pytype- .ctx is always initialized by _newRevNode(), which is # also how _rootentry is created. assert roote.ctx is not None assert newroote.ctx is not None if (_samectx(newroote.ctx, roote.ctx) and _samectx(newroote.pctx, roote.pctx)): return self._populate = _populaterepo self._repopulateNodes(newroote=newroote) if self._rootpopulated: self.revLoaded.emit(self.rev()) def setRawContext(self, ctx: ThgContext) -> None: """Change to the specified changectx in place of repository revision""" if _samectx(self._rootentry.ctx, ctx): return if _isreporev(ctx.rev()): repo = self._repoagent.rawRepo() try: if ctx == repo[ctx.rev()]: return self.setRev(ctx.rev()) except error.RepoLookupError: pass newroote = _Entry() newroote.ctx = ctx self._populate = _populatepatch self._repopulateNodes(newroote=newroote) if self._rootpopulated: self.revLoaded.emit(self.rev()) def nameFilter(self) -> Text: """Return the current name filter""" return self._namefilter @pyqtSlot(str) def setNameFilter(self, pattern: Text) -> None: """Filter file name by partial match of glob pattern""" if self._namefilter == pattern: return self._namefilter = pattern self._repopulateNodes() def statusFilter(self) -> Text: """Return the current status filter""" return self._statusfilter # TODO: split or remove 'S' which causes several design flaws @pyqtSlot(str) def setStatusFilter(self, status: Text) -> None: """Filter file tree by change status 'MARSC'""" assert all(c in 'MARSC' for c in status), repr(status) if self._statusfilter == status: return # for performance reason self._statusfilter = status self._repopulateNodes() def isChangedFilesOnly(self) -> bool: """Whether or not to filter by ctx.files, i.e. to exclude files not changed in the current revision. If this filter is enabled, 'C' (clean) files are not listed. For merge changeset, 'M' (modified) files in one side are also excluded. """ return self._changedfilesonly def setChangedFilesOnly(self, changedonly: bool) -> None: if self._changedfilesonly == bool(changedonly): return self._changedfilesonly = bool(changedonly) self._repopulateNodes() def isFlat(self) -> bool: """Whether all entries are listed in the same level or per directory""" return self._nodeop is _listnodeop def setFlat(self, flat: bool) -> None: if self.isFlat() == bool(flat): return # self._nodeop must be changed after layoutAboutToBeChanged; otherwise # client code may obtain invalid indexes in its slot self._repopulateNodes(newnodeop=_nodeopmap[bool(flat)]) def canFetchMore(self, parent: QModelIndex) -> bool: if parent.isValid(): return False return not self._rootpopulated def fetchMore(self, parent: QModelIndex) -> None: if parent.isValid() or self._rootpopulated: return assert len(self._rootentry) == 0, self._rootentry newroote = self._rootentry.copyskel() self._populateNodes(newroote) last = len(newroote) - 1 if last >= 0: self.beginInsertRows(parent, 0, last) self._rootentry = newroote self._rootpopulated = True if last >= 0: self.endInsertRows() self.revLoaded.emit(self.rev()) def _repopulateNodes(self, newnodeop: Optional[Any] = None, newroote: Optional["_Entry"] = None) -> None: """Recreate populated nodes if any""" if not self._rootpopulated: # no stale nodes if newnodeop: self._nodeop = newnodeop if newroote: self._rootentry = newroote return self.layoutAboutToBeChanged.emit() try: oldindexmap = [(i, self.filePath(i)) for i in self.persistentIndexList()] if newnodeop: self._nodeop = newnodeop if not newroote: newroote = self._rootentry.copyskel() self._populateNodes(newroote) self._rootentry = newroote for oi, path in oldindexmap: self.changePersistentIndex(oi, self.indexFromPath(path)) finally: self.layoutChanged.emit() def _newRevNode(self, rev: Optional[int], prev: int = FirstParent) -> "_Entry": """Create empty root node for the specified revision""" if not _isreporev(rev): raise ValueError('unacceptable revision number: %r' % rev) if not _isreporev(prev): raise ValueError('unacceptable parent revision number: %r' % prev) repo = self._repoagent.rawRepo() roote = _Entry() roote.ctx = repo[rev] if prev == ManifestModel.FirstParent: roote.pctx = roote.ctx.p1() elif prev == ManifestModel.SecondParent: roote.pctx = roote.ctx.p2() else: roote.pctx = repo[prev] return roote def _populateNodes(self, roote: "_Entry") -> None: repo = self._repoagent.rawRepo() lpat = hglib.fromunicode(self._namefilter) assert roote.ctx is not None match = _makematcher(repo, roote.ctx, lpat, self._changedfilesonly) self._populate(roote, repo, self._nodeop, self._statusfilter, match) roote.sort() class _Entry(object): """Each file or directory""" __slots__ = ('_name', '_parent', 'status', 'ctx', 'pctx', 'subkind', '_child', '_nameindex') _name: Text _parent: Optional["_Entry"] status: Optional[Text] ctx: Optional[ThgContext] pctx: Optional[ThgContext] subkind: Optional[Text] _child: Dict[Text, "_Entry"] _nameindex: List[Text] def __init__(self, name: Text = '', parent: Optional["_Entry"] = None) -> None: self._name = name self._parent = parent self.status = None self.ctx = None self.pctx = None self.subkind = None self._child = {} self._nameindex = [] def copyskel(self) -> "_Entry": """Create unpopulated copy of this entry""" e = self.__class__() e.status = self.status e.ctx = self.ctx e.pctx = self.pctx e.subkind = self.subkind return e @property def parent(self) -> Optional["_Entry"]: return self._parent @property def path(self) -> Text: if self.parent is None or not self.parent.name: return self.name else: return self.parent.path + '/' + self.name @property def name(self) -> Text: return self._name @property def isdir(self) -> bool: return bool(self.subkind or self._child) def __len__(self) -> int: return len(self._child) def __nonzero__(self) -> bool: # leaf node should not be False because of len(node) == 0 return True __bool__ = __nonzero__ def __getitem__(self, name: Text) -> "_Entry": return self._child[name] def makechild(self, name: Text) -> "_Entry": if name not in self._child: self._nameindex.append(name) self._child[name] = e = self.__class__(name, parent=self) return e def putchild(self, name: Text, e: "_Entry") -> None: assert not e.name and not e.parent, (e.name, e.parent) e._name = name e._parent = self if name not in self._child: self._nameindex.append(name) self._child[name] = e def __contains__(self, item: Text) -> bool: return item in self._child def at(self, index: int) -> "_Entry": return self._child[self._nameindex[index]] def index(self, name: Text) -> int: return self._nameindex.index(name) def sort(self, reverse: bool = False) -> None: """Sort the entries recursively; directories first""" for e in self._child.values(): e.sort(reverse=reverse) self._nameindex.sort( key=lambda s: (not self[s].isdir, os.path.normcase(s)), reverse=reverse) def _isreporev(rev: Optional[Union[bytes, int]]) -> bool: # patchctx.rev() returns str, which isn't a valid repository revision return rev is None or isinstance(rev, int) def _samectx(ctx1: ThgContext, ctx2: ThgContext) -> bool: # no fast way to detect changes in uncommitted ctx, just assumes different if ctx1.rev() is None or not _isreporev(ctx1.rev()): return False # compare hash in case it was stripped and recreated (e.g. by qrefresh) return ctx1 == ctx2 and ctx1.node() == ctx2.node() # TODO: visual feedback to denote query type and error as in repofilter def _makematcher(repo: localrepo.localrepository, ctx: ThgContext, pat: bytes, changedonly: bool) -> matchmod.basematcher: cwd = b'' # always relative to repo root patterns = [] if pat and b':' not in pat and b'*' not in pat: # mimic case-insensitive partial string match patterns.append(b'relre:(?i)' + re.escape(pat)) elif pat: patterns.append(pat) include = [] if changedonly: include.extend(b'path:%s' % p for p in ctx.files()) if not include: # no match return scmutil.matchfiles(repo, []) # TODO: use matchmod.never() try: return matchmod.match(repo.root, cwd, patterns, include=include, default=b'relglob', auditor=repo.auditor, ctx=ctx) except (error.Abort, error.ParseError): # no match return scmutil.matchfiles(repo, []) # TODO: use matchmod.never() class _listnodeop(object): subreporecursive = False @staticmethod def findpath(e: _Entry, path: Text) -> _Entry: return e[path] @staticmethod def makepath(e: _Entry, path: Text) -> _Entry: return e.makechild(path) @staticmethod def putpath(e: _Entry, path: Text, c: _Entry) -> None: e.putchild(path, c) class _treenodeop(object): subreporecursive = True @staticmethod def findpath(e: _Entry, path: Text) -> _Entry: for p in path.split('/'): e = e[p] return e @staticmethod def makepath(e: _Entry, path: Text) -> _Entry: for p in path.split('/'): if p not in e: e.makechild(p) e = e[p] return e @staticmethod def putpath(e: _Entry, path: Text, c: _Entry) -> None: rp = path.rfind('/') if rp >= 0: e = _treenodeop.makepath(e, path[:rp]) e.putchild(path[rp + 1:], c) _nodeopmap = { False: _treenodeop, True: _listnodeop, } def _populaterepo(roote: _Entry, repo: localrepo.localrepository, nodeop, statusfilter: Text, match: matchmod.basematcher) -> None: # TODO: replace 'Any' with structural typing for _treenodeop/_listnodeop if 'S' in statusfilter: _populatesubrepos(roote, repo, nodeop, statusfilter, match) ctx = roote.ctx pctx = roote.pctx with lfutil.lfstatus(repo): stat = repo.status(pctx, ctx, match, clean='C' in statusfilter) for st, files in zip('MAR!?IC', stat): if st not in statusfilter: continue for path in files: e = nodeop.makepath(roote, hglib.tounicode(path)) e.status = st def _comparesubstate(state1: Tuple[bytes, bytes, bytes], state2: Tuple[bytes, bytes, bytes]) -> Text: if state1 == state2: return 'C' elif state1 == hglib.nullsubrepostate: return 'A' elif state2 == hglib.nullsubrepostate: return 'R' else: return 'M' def _populatesubrepos(roote: _Entry, repo: localrepo.localrepository, nodeop, statusfilter: Text, match: matchmod.basematcher) -> None: # TODO: replace 'Any' with structural typing for _treenodeop/_listnodeop ctx = roote.ctx pctx = roote.pctx subpaths = set(pctx.substate) subpaths.update(ctx.substate) for path in subpaths: substate = ctx.substate.get(path, hglib.nullsubrepostate) psubstate = pctx.substate.get(path, hglib.nullsubrepostate) e = _Entry() e.status = _comparesubstate(psubstate, substate) if e.status == 'R': # denotes the original subrepo has been removed e.subkind = pycompat.sysstr(psubstate[2]) else: e.subkind = pycompat.sysstr(substate[2]) # do not call ctx.sub() unnecessarily, which may raise Abort or OSError # if git or svn executable not found if (nodeop.subreporecursive and e.subkind == 'hg' and e.status != 'R' and os.path.isdir(repo.wjoin(path))): smatch = matchmod.subdirmatcher(path, match) try: # pytype: disable=attribute-error srepo: localrepo.localrepository = ctx.sub(path)._repo # pytype: enable=attribute-error e.ctx = hglib.revsymbol(srepo, substate[1]) # This will always be a changectx, so the type warning is bogus. # pytype: disable=annotation-type-mismatch e.pctx = hglib.revsymbol(srepo, psubstate[1] or b'null') # pytype: enable=annotation-type-mismatch _populaterepo(e, srepo, nodeop, statusfilter, smatch) except (error.RepoError, EnvironmentError): pass # subrepo is filtered out only if the node and its children do not # match the specified condition at all if len(e) > 0 or (e.status in statusfilter and match(path)): nodeop.putpath(roote, hglib.tounicode(path), e) def _populatepatch(roote: _Entry, repo: localrepo.localrepository, nodeop, statusfilter: Text, match: matchmod.basematcher) -> None: # TODO: replace 'Any' with structural typing for _treenodeop/_listnodeop ctx = roote.ctx stat = ctx.changesToParent(0) # pytype: disable=attribute-error for st, files in zip('MAR', stat): if st not in statusfilter: continue for path in files: if not match(path): continue e = nodeop.makepath(roote, hglib.tounicode(path)) e.status = st class ManifestCompleter(QCompleter): """QCompleter for ManifestModel""" def splitPath(self, path: Text) -> List[Text]: """ >>> c = ManifestCompleter() >>> c.splitPath(u'foo/bar') [u'foo', u'bar'] trailing slash appends extra '', so that QCompleter can descend to next level: >>> c.splitPath(u'foo/') [u'foo', u''] """ return path.split('/') def pathFromIndex(self, index: QModelIndex) -> Text: if not index.isValid(): return '' m = self.model() if not m: return '' return m.filePath(index) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1736945585.0 tortoisehg-6.9/tortoisehg/hgqt/matching.py0000644000000000000000000002567414741727661017650 0ustar00rootroot# matching.py - Find similar (matching) revisions dialog for TortoiseHg # # Copyright 2012 Angel Ezquerra # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations from .qtcore import ( QSettings, Qt, pyqtSlot, ) from .qtgui import ( QAbstractButton, QButtonGroup, QCheckBox, QComboBox, QDialog, QDialogButtonBox, QGridLayout, QLabel, QLayout, QSizePolicy, QVBoxLayout, ) from mercurial import ( error, ) from ..util import hglib from ..util.i18n import _ from . import ( csinfo, qtlib, ) class MatchDialog(QDialog): def __init__(self, repoagent, rev=None, parent=None): super(MatchDialog, self).__init__(parent) self.setWindowFlags(self.windowFlags() & \ ~Qt.WindowType.WindowContextHelpButtonHint) self.revsetexpression = '' self._repoagent = repoagent # base layout box box = QVBoxLayout() box.setSpacing(6) ## main layout grid self.grid = QGridLayout() self.grid.setSpacing(6) self.grid.setColumnStretch(1, 1) box.addLayout(self.grid) ### matched revision combo self.rev_combo = combo = QComboBox() combo.setEditable(True) combo.setMinimumContentsLength(30) # cut long name self.grid.addWidget(QLabel(_('Find revisions matching fields of:')), 0, 0) self.grid.addWidget(combo, 0, 1) if rev is None: rev = self.repo.dirstate.branch() else: rev = str(rev) combo.addItem(hglib.tounicode(rev)) combo.setCurrentIndex(0) # make it easy to match the workding directory parent revision combo.addItem(hglib.tounicode('.')) tags = list(self.repo.tags()) + list(self.repo._bookmarks.keys()) tags.sort(reverse=True) for tag in tags: combo.addItem(hglib.tounicode(tag)) ### matched revision info self.rev_to_match_info_text = QLabel() self.rev_to_match_info_text.setVisible(False) style = csinfo.panelstyle(contents=('cset', 'branch', 'close', 'user', 'dateage', 'parents', 'children', 'tags', 'graft', 'transplant', 'p4', 'svn', 'converted'), selectable=True, expandable=True) factory = csinfo.factory(self.repo, style=style) self.rev_to_match_info = factory() self.rev_to_match_info.setSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Fixed) self.rev_to_match_info_lbl = QLabel(_('Revision to Match:')) self.grid.addWidget(self.rev_to_match_info_lbl, 1, 0, Qt.AlignmentFlag.AlignLeft | Qt.AlignmentFlag.AlignTop) self.grid.addWidget(self.rev_to_match_info, 1, 1) self.grid.addWidget(self.rev_to_match_info_text, 1, 1) ### fields that will be matched self.optbox = QVBoxLayout() self.optbox.setSpacing(6) expander = qtlib.ExpanderLabel(_('Fields to match:'), False) expander.expanded.connect(self.show_options) row = self.grid.rowCount() self.grid.addWidget(expander, row, 0, Qt.AlignmentFlag.AlignLeft | Qt.AlignmentFlag.AlignTop) self.grid.addLayout(self.optbox, row, 1) self.summary_chk = QCheckBox(_('Summary (first description line)')) self.description_chk = QCheckBox(_('Description')) self.desc_btngroup = QButtonGroup() self.desc_btngroup.setExclusive(False) self.desc_btngroup.addButton(self.summary_chk) self.desc_btngroup.addButton(self.description_chk) self.desc_btngroup.buttonClicked.connect( self._selectSummaryOrDescription) self.author_chk = QCheckBox(_('Author')) self.date_chk = QCheckBox(_('Date')) self.files_chk = QCheckBox(_('Files')) self.diff_chk = QCheckBox(_('Diff contents')) self.substate_chk = QCheckBox(_('Subrepo states')) self.branch_chk = QCheckBox(_('Branch')) self.parents_chk = QCheckBox(_('Parents')) self.phase_chk = QCheckBox(_('Phase')) self._hideable_chks = (self.branch_chk, self.phase_chk, self.parents_chk) self.optbox.addWidget(self.summary_chk) self.optbox.addWidget(self.description_chk) self.optbox.addWidget(self.author_chk) self.optbox.addWidget(self.date_chk) self.optbox.addWidget(self.files_chk) self.optbox.addWidget(self.diff_chk) self.optbox.addWidget(self.substate_chk) self.optbox.addWidget(self.branch_chk) self.optbox.addWidget(self.parents_chk) self.optbox.addWidget(self.phase_chk) s = QSettings() #### Persisted Options self.summary_chk.setChecked( qtlib.readBool(s, 'matching/summary', False)) self.description_chk.setChecked( qtlib.readBool(s, 'matching/description', True)) self.author_chk.setChecked(qtlib.readBool(s, 'matching/author', True)) self.branch_chk.setChecked(qtlib.readBool(s, 'matching/branch', False)) self.date_chk.setChecked(qtlib.readBool(s, 'matching/date', True)) self.files_chk.setChecked(qtlib.readBool(s, 'matching/files', False)) self.diff_chk.setChecked(qtlib.readBool(s, 'matching/diff', False)) self.parents_chk.setChecked( qtlib.readBool(s, 'matching/parents', False)) self.phase_chk.setChecked(qtlib.readBool(s, 'matching/phase', False)) self.substate_chk.setChecked( qtlib.readBool(s, 'matching/substate', False)) ## bottom buttons buttons = QDialogButtonBox() self.close_btn = buttons.addButton(QDialogButtonBox.StandardButton.Close) self.close_btn.clicked.connect(self.reject) self.close_btn.setAutoDefault(False) self.match_btn = buttons.addButton(_('&Match'), QDialogButtonBox.ButtonRole.ActionRole) self.match_btn.clicked.connect(self.match) box.addWidget(buttons) # signal handlers self.rev_combo.editTextChanged.connect(self.update_info) # dialog setting self.setLayout(box) self.layout().setSizeConstraint(QLayout.SizeConstraint.SetMinAndMaxSize) self.setWindowTitle(_('Find matches - %s') % repoagent.displayName()) self.setWindowIcon(qtlib.geticon('hg-update')) # prepare to show self.update_info() if not self.match_btn.isEnabled(): self.rev_combo.lineEdit().selectAll() # need to change rev # expand options if a hidden one is checked hiddenOptionsChecked = self.hiddenSettingIsChecked() self.show_options(hiddenOptionsChecked) expander.set_expanded(hiddenOptionsChecked) ### Private Methods ### @property def repo(self): return self._repoagent.rawRepo() def hiddenSettingIsChecked(self): for chk in self._hideable_chks: if chk.isChecked(): return True return False def saveSettings(self): s = QSettings() s.setValue('matching/summary', self.summary_chk.isChecked()) s.setValue('matching/description', self.description_chk.isChecked()) s.setValue('matching/author', self.author_chk.isChecked()) s.setValue('matching/branch', self.branch_chk.isChecked()) s.setValue('matching/date', self.date_chk.isChecked()) s.setValue('matching/files', self.files_chk.isChecked()) s.setValue('matching/diff', self.diff_chk.isChecked()) s.setValue('matching/parents', self.parents_chk.isChecked()) s.setValue('matching/phase', self.phase_chk.isChecked()) s.setValue('matching/substate', self.substate_chk.isChecked()) @pyqtSlot() def update_info(self): def set_csinfo_mode(mode): """Show the csinfo widget or the info text label""" # hide first, then show if mode: self.rev_to_match_info_text.setVisible(False) self.rev_to_match_info.setVisible(True) else: self.rev_to_match_info.setVisible(False) self.rev_to_match_info_text.setVisible(True) def csinfo_update(ctx): self.rev_to_match_info.updateItems(ctx) set_csinfo_mode(True) def csinfo_set_text(text): self.rev_to_match_info_text.setText(text) set_csinfo_mode(False) self.rev_to_match_info_lbl.setText(_('Revision to Match:')) new_rev = hglib.fromunicode(self.rev_combo.currentText()) if new_rev.lower() == b'null': self.match_btn.setEnabled(True) return try: csinfo_update(hglib.revsymbol(self.repo, new_rev)) return except (error.LookupError, error.RepoLookupError, error.RepoError): pass # If we get this far, assume we are matching a revision set validrevset = False try: rset = self.repo.revs(new_rev) if len(rset) > 1: self.rev_to_match_info_lbl.setText(_('Revisions to Match:')) csinfo_set_text(_('Match any of %d revisions') \ % len(rset)) else: self.rev_to_match_info_lbl.setText(_('Revision to Match:')) csinfo_update(rset.first()) validrevset = True except (error.LookupError, error.RepoLookupError): csinfo_set_text(_('Unknown revision!')) except error.ParseError: csinfo_set_text(_('Parse Error!')) self.match_btn.setEnabled(validrevset) def match(self): self.saveSettings() fieldmap = { 'summary': self.summary_chk, 'description': self.description_chk, 'author': self.author_chk, 'branch': self.branch_chk, 'date': self.date_chk, 'files': self.files_chk, 'diff': self.diff_chk, 'parents': self.parents_chk, 'phase': self.phase_chk, 'substate': self.substate_chk, } fields = [] for (field, chk) in fieldmap.items(): if chk.isChecked(): fields.append(field) rev = self.rev_combo.currentText() if fields: self.revsetexpression = ("matching(%s, '%s')" % (rev, ' '.join(fields))) else: self.revsetexpression = "matching(%s)" % rev self.accept() ### Signal Handlers ### def show_options(self, visible): for chk in self._hideable_chks: chk.setVisible(visible) @pyqtSlot(QAbstractButton) def _selectSummaryOrDescription(self, btn): # Uncheck all other buttons for b in self.desc_btngroup.buttons(): if b is not btn: b.setChecked(False) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1736945585.0 tortoisehg-6.9/tortoisehg/hgqt/merge.py0000644000000000000000000006150314741727661017144 0ustar00rootroot# merge.py - Merge dialog for TortoiseHg # # Copyright 2010 Yuki KODAMA # Copyright 2011 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations from mercurial import ( pycompat, ) from .qtcore import ( QSettings, QSize, Qt, pyqtSignal, pyqtSlot, ) from .qtgui import ( QAction, QCheckBox, QDialog, QHBoxLayout, QLabel, QMessageBox, QProgressBar, QPushButton, QVBoxLayout, QWizard, QWizardPage, ) from ..util import hglib from ..util.i18n import _ from . import ( csinfo, cmdcore, cmdui, commit, messageentry, qscilib, qtlib, resolve, status, thgrepo, wctxcleaner, ) MARGINS = (8, 0, 0, 0) class MergeDialog(QWizard): def __init__(self, repoagent, otherrev, parent=None): super(MergeDialog, self).__init__(parent) assert isinstance(otherrev, int), repr(otherrev) self._repoagent = repoagent f = self.windowFlags() self.setWindowFlags(f & ~Qt.WindowType.WindowContextHelpButtonHint) self.setWindowTitle(_('Merge - %s') % repoagent.displayName()) self.setWindowIcon(qtlib.geticon('hg-merge')) self.setOption(QWizard.WizardOption.NoBackButtonOnStartPage, True) self.setOption(QWizard.WizardOption.NoBackButtonOnLastPage, True) self.setOption(QWizard.WizardOption.IndependentPages, True) # set pages summarypage = SummaryPage(repoagent, otherrev, self) self.addPage(summarypage) self.addPage(MergePage(repoagent, otherrev, self)) self.addPage(CommitPage(repoagent, self)) self.addPage(ResultPage(repoagent, self)) self.currentIdChanged.connect(self.pageChanged) # move focus to "Next" button so that "Cancel" doesn't eat Enter key summarypage.refreshFinished.connect( self.button(QWizard.WizardButton.NextButton).setFocus) self.resize(QSize(700, 489).expandedTo(self.minimumSizeHint())) repoagent.repositoryChanged.connect(self.repositoryChanged) repoagent.configChanged.connect(self.configChanged) self._readSettings() def _readSettings(self): qs = QSettings() qs.beginGroup('merge') for n in ['autoadvance', 'skiplast']: self.setField(n, qs.value(n, False)) repo = self._repoagent.rawRepo() n = 'autoresolve' self.setField(n, repo.ui.configbool(b'tortoisehg', pycompat.sysbytes(n), qtlib.readBool(qs, n, True))) qs.endGroup() def _writeSettings(self): qs = QSettings() qs.beginGroup('merge') for n in ['autoadvance', 'autoresolve', 'skiplast']: qs.setValue(n, self.field(n)) qs.endGroup() @pyqtSlot() def repositoryChanged(self): if self.currentPage(): self.currentPage().repositoryChanged() @pyqtSlot() def configChanged(self): if self.currentPage(): self.currentPage().configChanged() def pageChanged(self, id): if id != -1: self.currentPage().currentPage() def reject(self): if self.currentPage().canExit(): super(MergeDialog, self).reject() def done(self, r): self._writeSettings() super(MergeDialog, self).done(r) class BasePage(QWizardPage): def __init__(self, repoagent, parent): super(BasePage, self).__init__(parent) self._repoagent = repoagent @property def repo(self): return self._repoagent.rawRepo() def validatePage(self): 'user pressed NEXT button, can we proceed?' return True def isComplete(self): 'should NEXT button be sensitive?' return True def repositoryChanged(self): 'repository has detected a change to changelog or parents' pass def configChanged(self): 'repository has detected a change to config files' pass def currentPage(self): self.wizard().setOption(QWizard.WizardOption.NoDefaultButton, False) def canExit(self): if len(self.repo[None].parents()) == 2: main = _('Do you want to exit?') text = _('To finish merging, you must commit ' 'the working directory.\n\n' 'To cancel the merge you can update to one ' 'of the merge parent revisions.') labels = ((QMessageBox.StandardButton.Yes, _('&Exit')), (QMessageBox.StandardButton.No, _('Cancel'))) if not qtlib.QuestionMsgBox(_('Confirm Exit'), main, text, labels=labels, parent=self): return False return True class SummaryPage(BasePage): refreshFinished = pyqtSignal() def __init__(self, repoagent, otherrev, parent): super(SummaryPage, self).__init__(repoagent, parent) self._wctxcleaner = wctxcleaner.WctxCleaner(repoagent, self) self._wctxcleaner.checkStarted.connect(self._onCheckStarted) self._wctxcleaner.checkFinished.connect(self._onCheckFinished) self.setTitle(_('Prepare to merge')) self.setSubTitle(_('Verify merge targets and ensure your working ' 'directory is clean.')) self.setLayout(QVBoxLayout()) repo = self.repo contents = ('createsnewhead',) + csinfo.PANEL_DEFAULT style = csinfo.panelstyle(contents=contents) def markup_func(widget, item, value): if item == 'createsnewhead' and value is True: text = _('Creates new head!') return qtlib.markup(text, fg='red', weight='bold') raise csinfo.UnknownItem(item) custom = csinfo.custom(markup=markup_func) create = csinfo.factory(repo, custom, style, withupdate=True) ## merge target other_sep = qtlib.LabeledSeparator(_('Merge from (other revision)')) self.layout().addWidget(other_sep) otherCsInfo = create(otherrev) self.layout().addWidget(otherCsInfo) self.otherCsInfo = otherCsInfo ## current revision local_sep = qtlib.LabeledSeparator(_('Merge to (working directory)')) self.layout().addWidget(local_sep) localCsInfo = create(repo[b'.'].rev()) self.layout().addWidget(localCsInfo) self.localCsInfo = localCsInfo ## working directory status wd_sep = qtlib.LabeledSeparator(_('Working directory status')) self.layout().addWidget(wd_sep) self.groups = qtlib.WidgetGroups() wdbox = QHBoxLayout() self.layout().addLayout(wdbox) self.wd_status = qtlib.StatusLabel() self.wd_status.set_status(_('Checking...')) wdbox.addWidget(self.wd_status) wd_prog = QProgressBar() wd_prog.setMaximum(0) wd_prog.setTextVisible(False) self.groups.add(wd_prog, 'prog') wdbox.addWidget(wd_prog, 1) wd_merged = QLabel(_('The working directory is already merged. ' 'Continue or ' 'discard existing ' 'merge.')) wd_merged.linkActivated.connect(self.onLinkActivated) wd_merged.setWordWrap(True) self.groups.add(wd_merged, 'merged') self.layout().addWidget(wd_merged) text = _('Before merging, you must commit, ' 'shelve to patch, ' 'or discard changes.') wd_text = QLabel(text) wd_text.setWordWrap(True) wd_text.linkActivated.connect(self._wctxcleaner.runCleaner) self.wd_text = wd_text self.groups.add(wd_text, 'dirty') self.layout().addWidget(wd_text) wdbox = QHBoxLayout() self.layout().addLayout(wdbox) wd_alt = QLabel(_('Or use:')) self.groups.add(wd_alt, 'dirty') wdbox.addWidget(wd_alt) force_chk = QCheckBox(_('Force a merge with outstanding changes ' '(-f/--force)')) force_chk.toggled.connect(lambda c: self.completeChanged.emit()) self.registerField('force', force_chk) self.groups.add(force_chk, 'dirty') wdbox.addWidget(force_chk) ### discard option discard_chk = QCheckBox(_('Discard all changes from the other ' 'revision')) self.registerField('discard', discard_chk) self.layout().addWidget(discard_chk) ## auto-resolve autoresolve_chk = QCheckBox(_('Automatically resolve merge conflicts ' 'where possible')) self.registerField('autoresolve', autoresolve_chk) self.layout().addWidget(autoresolve_chk) self.groups.set_visible(False, 'dirty') self.groups.set_visible(False, 'merged') def isComplete(self): 'should Next button be sensitive?' return self._wctxcleaner.isClean() or self.field('force') def validatePage(self): 'validate that we can continue with the merge' if self.field('discard'): labels = [(QMessageBox.StandardButton.Yes, _('&Discard')), (QMessageBox.StandardButton.No, _('Cancel'))] if not qtlib.QuestionMsgBox(_('Confirm Discard Changes'), _('The changes from revision %s and all unmerged parents ' 'will be discarded.\n\n' 'Are you sure this is what you want to do?') % (self.otherCsInfo.get_data('revid')), labels=labels, parent=self): return False return super(SummaryPage, self).validatePage() ## custom methods ## def repositoryChanged(self): 'repository has detected a change to changelog or parents' pctx = self.repo[b'.'] self.localCsInfo.updateItems(pctx) def canExit(self): 'can merge tool be closed?' if self._wctxcleaner.isChecking(): self._wctxcleaner.cancelCheck() return True def currentPage(self): super(SummaryPage, self).currentPage() self.refresh() def refresh(self): self._wctxcleaner.check() @pyqtSlot() def _onCheckStarted(self): self.groups.set_visible(True, 'prog') @pyqtSlot(bool, int) def _onCheckFinished(self, clean, parents): self.groups.set_visible(False, 'prog') if self._wctxcleaner.isCheckCanceled(): return if not clean: self.groups.set_visible(parents == 2, 'merged') self.groups.set_visible(parents == 1, 'dirty') self.wd_status.set_status(_('Uncommitted local changes ' 'are detected'), 'thg-warning') else: self.groups.set_visible(False, 'dirty') self.groups.set_visible(False, 'merged') self.wd_status.set_status(_('Clean', 'working dir state'), True) self.completeChanged.emit() self.refreshFinished.emit() @pyqtSlot(str) def onLinkActivated(self, cmd): if cmd == 'skip': self.wizard().next() else: self._wctxcleaner.runCleaner(cmd) class MergePage(BasePage): def __init__(self, repoagent, otherrev, parent): super(MergePage, self).__init__(repoagent, parent) self._otherrev = otherrev self.mergecomplete = False self.setTitle(_('Merging...')) self.setSubTitle(_('All conflicting files will be marked unresolved.')) self.setLayout(QVBoxLayout()) self._cmdsession = cmdcore.nullCmdSession() self._cmdlog = cmdui.LogWidget(self) self.layout().addWidget(self._cmdlog) self.reslabel = QLabel() self.reslabel.linkActivated.connect(self.onLinkActivated) self.reslabel.setWordWrap(True) self.layout().addWidget(self.reslabel) autonext = QCheckBox(_('Automatically advance to next page ' 'when merge is complete.')) autonext.clicked.connect(self.tryAutoAdvance) self.registerField('autoadvance', autonext) self.layout().addWidget(autonext) def currentPage(self): super(MergePage, self).currentPage() if len(self.repo[None].parents()) > 1: self.mergecomplete = True self.completeChanged.emit() return discard = self.field('discard') rev = hglib.tounicode('%d' % self._otherrev) cfgs = [] extrakwargs = {} if discard: extrakwargs['tool'] = ':local' # disable changed/deleted prompt because we'll revert changes cfgs.append('ui.interactive=False') elif self.field('autoresolve'): cfgs.append('ui.merge=:merge') else: extrakwargs['tool'] = ':fail' cmdlines = [hglib.buildcmdargs('merge', rev, verbose=True, force=self.field('force'), config=cfgs, **extrakwargs)] if discard: # revert files added/removed at other side cmdlines.append(hglib.buildcmdargs('revert', rev='.', all=True)) self._cmdlog.clearLog() self._cmdsession = sess = self._repoagent.runCommandSequence(cmdlines, self) sess.commandFinished.connect(self.onCommandFinished) sess.outputReceived.connect(self._cmdlog.appendLog) def isComplete(self): 'should Next button be sensitive?' if not self.mergecomplete: return False ucount = 0 rcount = 0 for root, path, status in thgrepo.recursiveMergeStatus(self.repo): if status == b'u': ucount += 1 if status == b'r': rcount += 1 if ucount: if self.field('autoresolve'): # if autoresolve is enabled, we know these were real conflicts self.reslabel.setText(_('%d files have merge conflicts ' 'that must be ' 'resolved') % ucount) else: # else give a calmer indication of conflicts self.reslabel.setText(_('%d files were modified on both ' 'branches and must be ' 'resolved') % ucount) return False elif rcount: self.reslabel.setText(_('No merge conflicts, ready to commit or ' 'review')) else: self.reslabel.setText(_('No merge conflicts, ready to commit')) return True @pyqtSlot(bool) def tryAutoAdvance(self, checked): if checked and self.isComplete(): self.wizard().next() @pyqtSlot(int) def onCommandFinished(self, ret): sess = self._cmdsession if ret in (0, 1): self.mergecomplete = True if self.field('autoadvance') and not sess.warningString(): self.tryAutoAdvance(True) self.completeChanged.emit() @pyqtSlot(str) def onLinkActivated(self, cmd): if cmd == 'resolve': dlg = resolve.ResolveDialog(self._repoagent, self) dlg.exec() if self.field('autoadvance'): self.tryAutoAdvance(True) self.completeChanged.emit() class CommitPage(BasePage): def __init__(self, repoagent, parent): super(CommitPage, self).__init__(repoagent, parent) self.setTitle(_('Commit merge results')) self.setSubTitle(' ') self.setLayout(QVBoxLayout()) self.setCommitPage(True) repo = repoagent.rawRepo() # csinfo def label_func(widget, item, ctx): if item == 'rev': return _('Revision:') elif item == 'parents': return _('Parents') raise csinfo.UnknownItem() def data_func(widget, item, ctx): if item == 'rev': return _('Working Directory'), str(ctx) elif item == 'parents': parents = [] cbranch = ctx.branch() for pctx in ctx.parents(): branch = None if hasattr(pctx, 'branch') and pctx.branch() != cbranch: branch = pctx.branch() parents.append((str(pctx.rev()), str(pctx), hglib.tounicode(branch), pctx)) return parents raise csinfo.UnknownItem() def markup_func(widget, item, value): if item == 'rev': text, rev = value return '%s (%s)' % (text, rev) elif item == 'parents': def branch_markup(branch): opts = dict(fg='black', bg='#aaffaa') return qtlib.markup(' %s ' % branch, **opts) csets = [] for rnum, rid, branch, pctx in value: line = '%s (%s)' % (rnum, rid) if branch: line = '%s %s' % (line, branch_markup(branch)) msg = widget.info.get_data('summary', widget, pctx, widget.custom) if msg: line = '%s %s' % (line, msg) csets.append(line) return csets raise csinfo.UnknownItem() custom = csinfo.custom(label=label_func, data=data_func, markup=markup_func) contents = ('rev', 'user', 'dateage', 'branch', 'parents') style = csinfo.panelstyle(contents=contents, margin=6) # merged files rev_sep = qtlib.LabeledSeparator(_('Working Directory (merged)')) self.layout().addWidget(rev_sep) mergeCsInfo = csinfo.create(repo, None, style, custom=custom, withupdate=True) mergeCsInfo.linkActivated.connect(self.onLinkActivated) self.layout().addWidget(mergeCsInfo) self.mergeCsInfo = mergeCsInfo # commit message area msg_sep = qtlib.LabeledSeparator(_('Commit message')) self.layout().addWidget(msg_sep) msgEntry = messageentry.MessageEntry(self) msgEntry.installEventFilter(qscilib.KeyPressInterceptor(self)) msgEntry.refresh(repo) msgEntry.loadSettings(QSettings(), 'merge/message') msgEntry.textChanged.connect(self.completeChanged) self.layout().addWidget(msgEntry) self.msgEntry = msgEntry self._cmdsession = cmdcore.nullCmdSession() self._cmdlog = cmdui.LogWidget(self) self._cmdlog.hide() self.layout().addWidget(self._cmdlog) self.delayednext = False def tryperform(): if self.isComplete(): self.wizard().next() actionEnter = QAction('alt-enter', self) actionEnter.setShortcuts([ qtlib.keyCombinationValue(Qt.Modifier.CTRL | Qt.Key.Key_Return), qtlib.keyCombinationValue(Qt.Modifier.CTRL | Qt.Key.Key_Enter), ]) actionEnter.triggered.connect(tryperform) self.addAction(actionEnter) skiplast = QCheckBox(_('Skip final confirmation page, ' 'close after commit.')) self.registerField('skiplast', skiplast) self.layout().addWidget(skiplast) hblayout = QHBoxLayout() self.opts = commit.readopts(self._repoagent) self.optionsbtn = QPushButton(_('Commit Options')) self.optionsbtn.clicked.connect(self.details) hblayout.addWidget(self.optionsbtn) self.optionslabelfmt = _('Selected Options: %s') self.optionslabel = QLabel('') hblayout.addWidget(self.optionslabel) hblayout.addStretch() self.layout().addLayout(hblayout) self.setButtonText(QWizard.WizardButton.CommitButton, _('Commit Now')) # The cancel button does not really "cancel" the merge self.setButtonText(QWizard.WizardButton.CancelButton, _('Commit Later')) # Update the options label self.refresh() def refresh(self): opts = commit.commitopts2str(self.opts) self.optionslabel.setText(self.optionslabelfmt % hglib.tounicode(opts)) self.optionslabel.setVisible(bool(opts)) def cleanupPage(self): s = QSettings() self.msgEntry.saveSettings(s, 'merge/message') def currentPage(self): super(CommitPage, self).currentPage() self.wizard().setOption(QWizard.WizardOption.NoDefaultButton, True) self.mergeCsInfo.updateItems() # show post-merge state self.msgEntry.setText(commit.mergecommitmessage(self.repo)) self.msgEntry.moveCursorToEnd() @pyqtSlot(str) def onLinkActivated(self, cmd): if cmd == 'view': dlg = status.StatusDialog(self._repoagent, [], {}, self) dlg.exec() self.refresh() def isComplete(self): return (len(self.repo[None].parents()) == 2 and len(self.msgEntry.text()) > 0) def validatePage(self): if not self._cmdsession.isFinished(): return False if len(self.repo[None].parents()) == 1: # commit succeeded, repositoryChanged() called wizard().next() if self.field('skiplast'): self.wizard().close() return True # username will be prompted as necessary by hg if ui.askusername user = self.opts.get('user') if not self.repo.ui.configbool(b'ui', b'askusername'): user = qtlib.getCurrentUsername(self, self.repo, self.opts) if not user: return False self.setTitle(_('Committing...')) self.setSubTitle(_('Please wait while committing merged files.')) opts = {'verbose': True, 'message': self.msgEntry.text(), 'user': user, 'subrepos': bool(self.opts.get('recurseinsubrepos')), 'date': hglib.tounicode(self.opts.get('date')), } commandlines = [hglib.buildcmdargs('commit', **opts)] pushafter = self.repo.ui.config(b'tortoisehg', b'cipushafter') if pushafter: cmd = ['push', hglib.tounicode(pushafter)] commandlines.append(cmd) self._cmdlog.show() sess = self._repoagent.runCommandSequence(commandlines, self) self._cmdsession = sess sess.commandFinished.connect(self.onCommandFinished) sess.outputReceived.connect(self._cmdlog.appendLog) return False def repositoryChanged(self): 'repository has detected a change to changelog or parents' if len(self.repo[None].parents()) == 1: if not self._cmdsession.isFinished(): # call self.wizard().next() after the current command finishes self.delayednext = True else: self.wizard().next() @pyqtSlot() def onCommandFinished(self): if self.delayednext: self.delayednext = False self.wizard().next() self.completeChanged.emit() def readUserHistory(self): 'Load user history from the global commit settings' s = QSettings() userhist = qtlib.readStringList(s, 'commit/userhist') userhist = [u for u in userhist if u] return userhist def details(self): self.userhist = self.readUserHistory() dlg = commit.DetailsDialog(self._repoagent, self.opts, self.userhist, self, mode='merge') dlg.finished.connect(dlg.deleteLater) dlg.setWindowFlags(Qt.WindowType.Sheet) dlg.setWindowModality(Qt.WindowModality.WindowModal) if dlg.exec() == QDialog.DialogCode.Accepted: self.opts.update(dlg.outopts) self.refresh() class ResultPage(BasePage): def __init__(self, repoagent, parent): super(ResultPage, self).__init__(repoagent, parent) self.setTitle(_('Finished')) self.setSubTitle(' ') self.setFinalPage(True) self.setLayout(QVBoxLayout()) merge_sep = qtlib.LabeledSeparator(_('Merge changeset')) self.layout().addWidget(merge_sep) mergeCsInfo = csinfo.create(self.repo, 'tip', withupdate=True) self.layout().addWidget(mergeCsInfo) self.mergeCsInfo = mergeCsInfo self.layout().addStretch(1) def currentPage(self): super(ResultPage, self).currentPage() self.mergeCsInfo.updateItems(self.repo[b'tip']) self.wizard().setOption(QWizard.WizardOption.NoCancelButton, True) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033083.0 tortoisehg-6.9/tortoisehg/hgqt/messageentry.py0000644000000000000000000002320714742202573020541 0ustar00rootroot# messageentry.py - TortoiseHg's commit message editng widget # # Copyright 2011 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import re from .qsci import ( QsciScintilla, QsciLexerMakefile, ) from .qtcore import ( QPoint, QSettings, Qt, pyqtSlot, ) from .qtgui import ( QColor, QFontMetrics, ) from mercurial import ( pycompat, ) from ..util.i18n import _ from ..util import ( hglib, ) from . import ( qscilib, qtlib, ) class MessageEntry(qscilib.Scintilla): def __init__(self, parent, getCheckedFunc=None): super(MessageEntry, self).__init__(parent) self.setEdgeColor(QColor('LightSalmon')) self.setEdgeMode(QsciScintilla.EdgeMode.EdgeLine) self.setReadOnly(False) self.setMarginWidth(1, 0) self.setFont(qtlib.getfont('fontcomment').font()) self.setCaretWidth(10) self.setCaretLineBackgroundColor(QColor("#e6fff0")) self.setCaretLineVisible(True) self.setAutoIndent(True) self.setAutoCompletionSource(QsciScintilla.AutoCompletionSource.AcsAPIs) self.setAutoCompletionFillupsEnabled(True) self.setMatchedBraceBackgroundColor(Qt.GlobalColor.yellow) self.setIndentationsUseTabs(False) self.setBraceMatching(QsciScintilla.BraceMatch.SloppyBraceMatch) # https://www.riverbankcomputing.com/pipermail/qscintilla/2009-February/000461.html self.setHorizontalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAsNeeded) self.setVerticalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAsNeeded) # default message entry widgets to word wrap, user may override self.setWrapMode(QsciScintilla.WrapMode.WrapWord) self.getChecked = getCheckedFunc self.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) self.customContextMenuRequested.connect(self.menuRequested) self.applylexer() self._re_boundary = re.compile(r'[0-9i#]+\.|\(?[0-9i#]+\)|\(@\)') def setText(self, text): result = super(MessageEntry, self).setText(text) self.setDefaultEolMode() return result def applylexer(self): font = qtlib.getfont('fontcomment').font() self.fontHeight = QFontMetrics(font).height() if qtlib.readBool(QSettings(), 'msgentry/lexer', True): self.setFont(font) self.setLexer(QsciLexerMakefile(self)) self.lexer().setColor(QColor(Qt.GlobalColor.red), QsciLexerMakefile.Error) self.lexer().setFont(font) else: self.setLexer(None) self.setFont(font) @pyqtSlot(QPoint) def menuRequested(self, point): menu = self._createContextMenu(point) menu.exec(self.viewport().mapToGlobal(point)) menu.setParent(None) def _createContextMenu(self, point): line = self.lineAt(point) lexerenabled = self.lexer() is not None def apply(): firstline, firstcol, lastline, lastcol = self.getSelection() if firstline < 0: line = 0 else: line = firstline self.beginUndoAction() while True: line = self.reflowBlock(line) if line is None or (line > lastline > -1): break self.endUndoAction() def paste(): files = self.getChecked() self.insert(hglib.tounicode(b'\n'.join(sorted(files)))) def settings(): from tortoisehg.hgqt.settings import SettingsDialog dlg = SettingsDialog(True, focus='tortoisehg.summarylen') dlg.exec() def togglelexer(): QSettings().setValue('msgentry/lexer', not lexerenabled) self.applylexer() menu = self.createEditorContextMenu() menu.addSeparator() a = menu.addAction(_('Syntax Highlighting')) a.setCheckable(True) a.setChecked(lexerenabled) a.triggered.connect(togglelexer) menu.addSeparator() if self.getChecked: action = menu.addAction(_('Paste &Filenames')) action.triggered.connect(paste) for name, func in [(_('App&ly Format'), apply), (_('C&onfigure Format'), settings)]: def add(name, func): action = menu.addAction(name) action.triggered.connect(func) add(name, func) return menu def refresh(self, repo): self.setEdgeColumn(repo.summarylen) self.setIndentationWidth(repo.tabwidth) self.setTabWidth(repo.tabwidth) self.summarylen = repo.summarylen def reflowBlock(self, line): lines = self.text().splitlines() if line >= len(lines): return None if not len(lines[line]) > 1: return line+1 # find boundaries (empty lines or bounds) def istopboundary(linetext): # top boundary lines are those that begin with a Markdown style marker # or are empty if not linetext: return True if linetext[0] in '#-*+': return True if len(linetext) >= 2: if linetext[:2] in ('> ', '| '): return True if self._re_boundary.match(linetext): return True return False def isbottomboundary(linetext): # bottom boundary lines are those that end with a period # or are empty if not linetext or linetext[-1] == '.': return True return False def isanyboundary(linetext): if len(linetext) >= 3: if linetext[:3] in ('~~~', '```', '---', '==='): return True return False b = line while b and len(lines[b-1]) > 1: linetext = lines[b].strip() if istopboundary(linetext) or isanyboundary(linetext): break if b >= 1: nextlinetext = lines[b - 1].strip() if isbottomboundary(nextlinetext) \ or isanyboundary(nextlinetext): break b -= 1 e = line while e+1 < len(lines) and len(lines[e+1]) > 1: linetext = lines[e].strip() if isbottomboundary(linetext) or isanyboundary(linetext): break nextlinetext = lines[e + 1].strip() if isanyboundary(nextlinetext) or istopboundary(nextlinetext): break e += 1 if b == e == 0: return line + 1 group = [lines[l] for l in pycompat.xrange(b, e+1)] MARKER = u'\033\033\033\033\033' curlinenum, curcol = self.getCursorPosition() if b <= curlinenum <= e: # insert a "marker" at the cursor position l = group[curlinenum - b] group[curlinenum - b] = l[:curcol] + MARKER + l[curcol:] firstlinetext = lines[b] if firstlinetext: indentcount = len(firstlinetext) - len(firstlinetext.lstrip()) firstindent = firstlinetext[:indentcount] else: indentcount = 0 firstindent = '' parts = [] for l in group: parts.extend(l.split()) outlines = [] line = [] partslen = indentcount - 1 newcurlinenum, newcurcol = b, 0 for part in parts: if MARKER and MARKER in part: # wherever the marker is found, that is where the cursor # must be moved to after the reflow is done newcurlinenum = b + len(outlines) newcurcol = len(' '.join(line)) + 1 + part.index(MARKER) part = part.replace(MARKER, '') MARKER = None # there is no need to search any more if not part: continue if partslen + len(line) + len(part) + 1 > self.summarylen: if line: linetext = ' '.join(line) if len(outlines) == 0 and firstindent: linetext = firstindent + linetext outlines.append(linetext) line, partslen = [], 0 line.append(part) partslen += len(part) if line: outlines.append(' '.join(line)) self.beginUndoAction() self.setSelection(b, 0, e+1, 0) self.removeSelectedText() self.insertAt('\n'.join(outlines) + '\n', b, 0) self.endUndoAction() # restore the cursor position self.setCursorPosition(newcurlinenum, newcurcol) return b + len(outlines) + 1 def moveCursorToEnd(self): lines = self.lines() if lines: lines -= 1 pos = self.lineLength(lines) self.setCursorPosition(lines, pos) self.ensureLineVisible(lines) self.horizontalScrollBar().setSliderPosition(0) def keyPressEvent(self, event): if event.modifiers() == Qt.KeyboardModifier.ControlModifier and event.key() == Qt.Key.Key_E: line, col = self.getCursorPosition() self.reflowBlock(line) else: super(MessageEntry, self).keyPressEvent(event) def resizeEvent(self, event): super(MessageEntry, self).resizeEvent(event) self.showHScrollBar(self.frameGeometry().height() > self.fontHeight * 3) def minimumSizeHint(self): size = super(MessageEntry, self).minimumSizeHint() size.setHeight(self.fontHeight * 3 // 2) return size ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730809007.0 tortoisehg-6.9/tortoisehg/hgqt/mq.py0000644000000000000000000010751214712406257016454 0ustar00rootroot# mq.py - TortoiseHg MQ widget # # Copyright 2011 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os import re from typing import ( List, ) from .qtcore import ( QAbstractListModel, QByteArray, QMimeData, QModelIndex, QObject, QPoint, QTimer, QUrl, Qt, pyqtSignal, pyqtSlot, ) from .qtgui import ( QAbstractItemView, QAction, QCheckBox, QComboBox, QDialog, QDialogButtonBox, QDockWidget, QFont, QFrame, QHBoxLayout, QInputDialog, QListView, QMenu, QMessageBox, QPushButton, QToolBar, QToolButton, QVBoxLayout, QWidget, ) from mercurial import ( error, pycompat, ) from ..util import hglib from ..util.i18n import _ from . import ( cmdcore, cmdui, commit, qtlib, qdelete, qfold, rejects, ) if hglib.TYPE_CHECKING: from typing import ( Optional, ) def _checkForRejects(repo, rawoutput, parent=None): """Parse output of qpush/qpop to resolve hunk failure manually""" rejre = re.compile(r'saving rejects to file (.*)\.rej') rejfiles = dict((m.group(1), False) for m in rejre.finditer(rawoutput)) for ufile in sorted(rejfiles): wfile = hglib.fromunicode(ufile) if not os.path.exists(repo.wjoin(wfile)): continue if qtlib.QuestionMsgBox(_('Manually resolve rejected chunks?'), _('%s had rejected chunks, edit patched ' 'file together with rejects?') % ufile, parent=parent): dlg = rejects.RejectsDialog(repo.ui, repo.wjoin(wfile), parent) r = dlg.exec() rejfiles[ufile] = (r == QDialog.DialogCode.Accepted) # empty rejfiles means we failed to parse output message return bool(rejfiles) and all(rejfiles.values()) class QueueManagementActions(QObject): """Container for patch queue management actions""" def __init__(self, parent=None): super(QueueManagementActions, self).__init__(parent) assert parent is None or isinstance(parent, QWidget), repr(parent) self._repoagent = None self._cmdsession = cmdcore.nullCmdSession() self._actions = { 'commitQueue': QAction(_('&Commit to Queue...'), self), 'createQueue': QAction(_('Create &New Queue...'), self), 'renameQueue': QAction(_('&Rename Active Queue...'), self), 'deleteQueue': QAction(_('&Delete Queue...'), self), 'purgeQueue': QAction(_('&Purge Queue...'), self), } for name, action in self._actions.items(): action.triggered.connect(getattr(self, '_' + name)) self._updateActions() def _parentWidget(self) -> Optional[QWidget]: p = self.parent() assert p is None or isinstance(p, QWidget) return p def setRepoAgent(self, repoagent): self._repoagent = repoagent self._updateActions() def _updateActions(self): enabled = bool(self._repoagent) and self._cmdsession.isFinished() for action in self._actions.values(): action.setEnabled(enabled) def createMenu(self, parent=None): menu = QMenu(parent) menu.addAction(self._actions['commitQueue']) menu.addSeparator() for name in ['createQueue', 'renameQueue', 'deleteQueue', 'purgeQueue']: menu.addAction(self._actions[name]) return menu @pyqtSlot() def _commitQueue(self): assert self._repoagent repo = self._repoagent.rawRepo() if os.path.isdir(repo.mq.join(b'.hg')): self._launchCommitDialog() return if not self._cmdsession.isFinished(): return cmdline = hglib.buildcmdargs('init', mq=True) self._cmdsession = sess = self._repoagent.runCommand(cmdline, self) sess.commandFinished.connect(self._onQueueRepoInitialized) self._updateActions() @pyqtSlot(int) def _onQueueRepoInitialized(self, ret): if ret == 0: self._launchCommitDialog() self._onCommandFinished(ret) def _launchCommitDialog(self): if not self._repoagent: return repo = self._repoagent.rawRepo() repoagent = self._repoagent.subRepoAgent(hglib.tounicode(repo.mq.path)) dlg = commit.CommitDialog(repoagent, [], {}, self._parentWidget()) dlg.finished.connect(dlg.deleteLater) dlg.exec() def switchQueue(self, name): return self._runQqueue(None, name) @pyqtSlot() def _createQueue(self): name = self._getNewName(_('Create Patch Queue'), _('New patch queue name'), _('Create')) if name: self._runQqueue('create', name) @pyqtSlot() def _renameQueue(self): curname = self._activeName() newname = self._getNewName(_('Rename Patch Queue'), _("Rename patch queue '%s' to") % curname, _('Rename')) if newname and curname != newname: self._runQqueue('rename', newname) @pyqtSlot() def _deleteQueue(self): name = self._getExistingName(_('Delete Patch Queue'), _('Delete reference to'), _('Delete')) if name: self._runQqueueInactive('delete', name) @pyqtSlot() def _purgeQueue(self): name = self._getExistingName(_('Purge Patch Queue'), _('Remove patch directory of'), _('Purge')) if name: self._runQqueueInactive('purge', name) def _activeName(self): assert self._repoagent repo = self._repoagent.rawRepo() return hglib.tounicode(repo.thgactivemqname) def _existingNames(self): assert self._repoagent return hglib.getqqueues(self._repoagent.rawRepo()) def _getNewName(self, title, labeltext, oktext): dlg = QInputDialog(self._parentWidget()) dlg.setWindowTitle(title) dlg.setLabelText(labeltext) dlg.setOkButtonText(oktext) if dlg.exec(): return dlg.textValue() def _getExistingName(self, title, labeltext, oktext): dlg = QInputDialog(self._parentWidget()) dlg.setWindowTitle(title) dlg.setLabelText(labeltext) dlg.setOkButtonText(oktext) dlg.setComboBoxEditable(False) dlg.setComboBoxItems(self._existingNames()) dlg.setTextValue(self._activeName()) if dlg.exec(): return dlg.textValue() def abort(self): self._cmdsession.abort() def _runQqueue(self, op, name): """Execute qqueue operation against the specified queue""" assert self._repoagent if not self._cmdsession.isFinished(): return cmdcore.nullCmdSession() opts = {} if op: opts[op] = True cmdline = hglib.buildcmdargs('qqueue', name, **opts) self._cmdsession = sess = self._repoagent.runCommand(cmdline, self) sess.commandFinished.connect(self._onCommandFinished) self._updateActions() return sess def _runQqueueInactive(self, op, name): """Execute qqueue operation after inactivating the specified queue""" assert self._repoagent if not self._cmdsession.isFinished(): return cmdcore.nullCmdSession() if name != self._activeName(): return self._runQqueue(op, name) sacrifices = [n for n in self._existingNames() if n != name] if not sacrifices: return self._runQqueue(op, name) # will exit with error opts = {} if op: opts[op] = True cmdlines = [hglib.buildcmdargs('qqueue', sacrifices[0]), hglib.buildcmdargs('qqueue', name, **opts)] self._cmdsession = sess = self._repoagent.runCommandSequence(cmdlines, self) sess.commandFinished.connect(self._onCommandFinished) self._updateActions() return sess @pyqtSlot(int) def _onCommandFinished(self, ret): if ret != 0: cmdui.errorMessageBox(self._cmdsession, self._parentWidget()) self._updateActions() class PatchQueueActions(QObject): """Container for MQ patch actions except for queue management""" def __init__(self, parent=None): super(PatchQueueActions, self).__init__(parent) assert parent is None or isinstance(parent, QWidget), repr(parent) self._repoagent = None self._cmdsession = cmdcore.nullCmdSession() self._opts = {'force': False, 'keep_changes': False} def _parentWidget(self) -> Optional[QWidget]: p = self.parent() assert p is None or isinstance(p, QWidget) return p def setRepoAgent(self, repoagent): self._repoagent = repoagent def gotoPatch(self, patch): opts = {'force': self._opts['force'], 'keep_changes': self._opts['keep_changes']} return self._runCommand('qgoto', [patch], opts, self._onPushFinished) @pyqtSlot() def pushPatch(self, patch=None, move=False, exact=False): return self._runPush(patch, move=move, exact=exact) @pyqtSlot() def pushAllPatches(self): return self._runPush(None, all=True) def _runPush(self, patch, **opts): opts['force'] = self._opts['force'] if not opts.get('exact'): # --exact and --keep-changes cannot be used simultaneously # thus we ignore the "default" setting for --keep-changes # when --exact is explicitly set opts['keep_changes'] = self._opts['keep_changes'] return self._runCommand('qpush', [patch], opts, self._onPushFinished) @pyqtSlot() def popPatch(self, patch=None): return self._runPop(patch) @pyqtSlot() def popAllPatches(self): return self._runPop(None, all=True) def _runPop(self, patch, **opts): opts['force'] = self._opts['force'] opts['keep_changes'] = self._opts['keep_changes'] return self._runCommand('qpop', [patch], opts) def finishRevision(self, rev): revspec = hglib.formatrevspec('qbase::%s', rev) return self._runCommand('qfinish', [revspec], {}) def deletePatches(self, patches): dlg = qdelete.QDeleteDialog(patches, self._parentWidget()) if not dlg.exec(): return cmdcore.nullCmdSession() return self._runCommand('qdelete', patches, dlg.options()) def foldPatches(self, patches): lpatches = pycompat.maplist(hglib.fromunicode, patches) dlg = qfold.QFoldDialog(self._repoagent, lpatches, self._parentWidget()) dlg.finished.connect(dlg.deleteLater) if not dlg.exec(): return cmdcore.nullCmdSession() return self._runCommand('qfold', dlg.patches(), dlg.options()) def renamePatch(self, patch): newname = self._getNewName(_('Rename Patch'), _('Rename patch %s to:') % patch, patch, _('Rename')) if not newname or patch == newname: return cmdcore.nullCmdSession() return self._runCommand('qrename', [patch, newname], {}) def guardPatch(self, patch, guards): args = [patch] args.extend(guards) opts = {'none': not guards} return self._runCommand('qguard', args, opts) def selectGuards(self, guards): opts = {'none': not guards} return self._runCommand('qselect', guards, opts) def _getNewName(self, title, labeltext, curvalue, oktext): dlg = QInputDialog(self._parentWidget()) dlg.setWindowTitle(title) dlg.setLabelText(labeltext) dlg.setTextValue(curvalue) dlg.setOkButtonText(oktext) if dlg.exec(): return dlg.textValue() def abort(self): self._cmdsession.abort() def _runCommand(self, name, args, opts, finishslot=None): assert self._repoagent if not self._cmdsession.isFinished(): return cmdcore.nullCmdSession() cmdline = hglib.buildcmdargs(name, *args, **opts) self._cmdsession = sess = self._repoagent.runCommand(cmdline, self) sess.commandFinished.connect(finishslot or self._onCommandFinished) return sess @pyqtSlot(int) def _onPushFinished(self, ret): if ret == 2 and self._repoagent: repo = self._repoagent.rawRepo() output = self._cmdsession.warningString() if _checkForRejects(repo, output, self._parentWidget()): ret = 0 # no further error dialog if ret != 0: cmdui.errorMessageBox(self._cmdsession, self._parentWidget()) @pyqtSlot(int) def _onCommandFinished(self, ret): if ret != 0: cmdui.errorMessageBox(self._cmdsession, self._parentWidget()) @pyqtSlot() def launchOptionsDialog(self): dlg = OptionsDialog(self._opts, self._parentWidget()) dlg.finished.connect(dlg.deleteLater) dlg.setWindowFlags(Qt.WindowType.Sheet) dlg.setWindowModality(Qt.WindowModality.WindowModal) if dlg.exec() == QDialog.DialogCode.Accepted: self._opts.update(dlg.outopts) class PatchQueueModel(QAbstractListModel): """List of all patches in active queue""" def __init__(self, repoagent, parent=None): super(PatchQueueModel, self).__init__(parent) self._repoagent = repoagent self._repoagent.repositoryChanged.connect(self._updateCache) self._series = [] self._seriesguards: List[List[bytes]] = [] self._statusmap = {} # patch: applied/guarded/unguarded self._buildCache() @pyqtSlot() def _updateCache(self): # optimize range of changed signals if necessary repo = self._repoagent.rawRepo() if self._series == repo.mq.series[::-1]: self._buildCache() else: self._updateCacheAndLayout() self.dataChanged.emit(self.index(0), self.index(self.rowCount() - 1)) def _updateCacheAndLayout(self): self.layoutAboutToBeChanged.emit() oldcount = len(self._series) oldindexes = [(oi, self._series[oi.row()]) for oi in self.persistentIndexList()] self._buildCache() mappedindexes = [] # old -> new missngindexes = [] # old for oi, patch in oldindexes: try: ni = self.index(self._series.index(patch), oi.column()) mappedindexes.append((oi, ni)) except ValueError: missngindexes.append(oi) # if no indexes are moved, assume missing ones were renamed if (missngindexes and oldcount == len(self._series) and all(oi.row() == ni.row() for oi, ni in mappedindexes)): mappedindexes.extend((oi, self.index(oi.row(), oi.column())) for oi in missngindexes) del missngindexes[:] for oi, ni in mappedindexes: self.changePersistentIndex(oi, ni) for oi in missngindexes: self.changePersistentIndex(oi, QModelIndex()) self.layoutChanged.emit() def _buildCache(self): repo = self._repoagent.rawRepo() self._series = repo.mq.series[::-1] self._seriesguards = [list(xs) for xs in reversed(repo.mq.seriesguards)] self._statusmap.clear() self._statusmap.update((p.name, 'applied') for p in repo.mq.applied) for i, patch in enumerate(repo.mq.series): if patch in self._statusmap: continue # applied pushable, why = repo.mq.pushable(i) if not pushable: self._statusmap[patch] = 'guarded' elif why is not None: self._statusmap[patch] = 'unguarded' def data(self, index, role=Qt.ItemDataRole.DisplayRole): if not index.isValid(): return if role in (Qt.ItemDataRole.DisplayRole, Qt.ItemDataRole.EditRole): return self.patchName(index) if role == Qt.ItemDataRole.DecorationRole: return self._statusIcon(index) if role == Qt.ItemDataRole.FontRole: return self._statusFont(index) if role == Qt.ItemDataRole.ToolTipRole: return self._toolTip(index) def flags(self, index): flags = super(PatchQueueModel, self).flags(index) if not index.isValid(): return flags | Qt.ItemFlag.ItemIsDropEnabled # insertion point patch = self._series[index.row()] if self._statusmap.get(patch) != 'applied': flags |= Qt.ItemFlag.ItemIsDragEnabled return flags def rowCount(self, parent=QModelIndex()): if parent.isValid(): return 0 return len(self._series) def appliedCount(self): return sum(s == 'applied' for s in self._statusmap.values()) def patchName(self, index): if not index.isValid(): return '' return hglib.tounicode(self._series[index.row()]) def patchGuards(self, index: QModelIndex) -> List[str]: if not index.isValid(): return [] return hglib.to_unicode_list(self._seriesguards[index.row()]) def isApplied(self, index): if not index.isValid(): return False patch = self._series[index.row()] return self._statusmap.get(patch) == 'applied' def _statusIcon(self, index): assert index.isValid() patch = self._series[index.row()] status = self._statusmap.get(patch) if status: return qtlib.geticon('hg-patch-%s' % status) def _statusFont(self, index): assert index.isValid() patch = self._series[index.row()] status = self._statusmap.get(patch) if status not in ('applied', 'guarded'): return f = QFont() f.setBold(status == 'applied') f.setItalic(status == 'guarded') return f def _toolTip(self, index): assert index.isValid() repo = self._repoagent.rawRepo() patch = self._series[index.row()] try: if patch in repo.thgmqunappliedpatches: ctx = repo[patch] else: ctx = hglib.revsymbol(repo, patch) except error.RepoLookupError: # cache not updated after qdelete or qfinish return guards = self.patchGuards(index) # longsummary() is on the thgrepo wrapped context return '%s: %s\n%s' % (self.patchName(index), guards and ', '.join(guards) or _('no guards'), ctx.longsummary()) # pytype: disable=attribute-error def topAppliedIndex(self, column=0): """Index of the last applied, i.e. qtip, patch""" for row, patch in enumerate(self._series): if self._statusmap.get(patch) == 'applied': return self.index(row, column) return QModelIndex() def mimeTypes(self): return ['application/vnd.thg.mq.series', 'text/uri-list'] def mimeData(self, indexes): repo = self._repoagent.rawRepo() # in the same order as series file patches = [self._series[i.row()] for i in sorted(indexes, reverse=True)] data = QMimeData() data.setData('application/vnd.thg.mq.series', QByteArray(b'\n'.join(patches) + b'\n')) data.setUrls([QUrl.fromLocalFile(hglib.tounicode(repo.mq.join(p))) for p in patches]) return data def dropMimeData(self, data, action, row, column, parent): if (action != Qt.DropAction.MoveAction or not data.hasFormat('application/vnd.thg.mq.series') or row < 0 or parent.isValid()): return False repo = self._repoagent.rawRepo() qtiprow = len(self._series) - repo.mq.seriesend(True) if row > qtiprow: return False if row < len(self._series): after = hglib.tounicode(self._series[row]) else: after = None # next to working rev patches = hglib.tounicode( bytes(data.data('application/vnd.thg.mq.series'))).splitlines() cmdline = hglib.buildcmdargs('qreorder', after=after, *patches) self._repoagent.runCommand(cmdline) return True def supportedDropActions(self): return Qt.DropAction.MoveAction class MQPatchesWidget(QDockWidget): patchSelected = pyqtSignal(str) def __init__(self, actionregistry, parent): QDockWidget.__init__(self, parent) self._actionregistry = actionregistry self._repoagent = None self.setFeatures(QDockWidget.DockWidgetFeature.DockWidgetClosable | QDockWidget.DockWidgetFeature.DockWidgetMovable | QDockWidget.DockWidgetFeature.DockWidgetFloatable) self.setWindowTitle(_('Patch Queue')) w = QWidget() mainlayout = QVBoxLayout() mainlayout.setContentsMargins(0, 0, 0, 0) w.setLayout(mainlayout) self.setWidget(w) self._patchActions = PatchQueueActions(self) # top toolbar w = QWidget() tbarhbox = QHBoxLayout() tbarhbox.setContentsMargins(0, 0, 0, 0) w.setLayout(tbarhbox) mainlayout.addWidget(w) # TODO: move QAction instances to PatchQueueActions self._qpushAct = a = QAction(qtlib.geticon('hg-qpush'), '', self) a.setToolTip(_('Apply one patch')) self._qpushAllAct = a = QAction(qtlib.geticon('hg-qpush-all'), '', self) a.setToolTip(_('Apply all patches')) self._qpopAct = a = QAction(qtlib.geticon('hg-qpop'), '', self) a.setToolTip(_('Unapply one patch')) self._qpopAllAct = a = QAction(qtlib.geticon('hg-qpop-all'), '', self) a.setToolTip(_('Unapply all patches')) self._qgotoAct = QAction(qtlib.geticon('hg-qgoto'), '', self) self._qpushMoveAct = a = QAction(qtlib.geticon('hg-qpush-move'), '', self) a.setToolTip(_('Apply only the selected patch')) self._qfinishAct = a = QAction(qtlib.geticon('qfinish'), '', self) a.setToolTip(_('Move applied patches into repository history')) self._qdeleteAct = a = QAction(qtlib.geticon('hg-qdelete'), '', self) a.setToolTip(_('Delete selected patches')) self._qrenameAct = a = QAction(self) self._setGuardsAct = a = QAction(qtlib.geticon('hg-qguard'), '', self) a.setToolTip(_('Configure guards for selected patch')) namedActions = { 'PatchQueue.pushOnePatch': self._qpushAct, 'PatchQueue.pushAllPatches': self._qpushAllAct, 'PatchQueue.popOnePatch': self._qpopAct, 'PatchQueue.popAllPatches': self._qpopAllAct, 'PatchQueue.goToPatch': self._qgotoAct, 'PatchQueue.pushMovePatch': self._qpushMoveAct, 'PatchQueue.finishRevision': self._qfinishAct, 'PatchQueue.deletePatches': self._qdeleteAct, 'PatchQueue.renamePatch': self._qrenameAct, 'PatchQueue.guardPatch': self._setGuardsAct, } for n, a in namedActions.items(): self.addAction(a) a.setShortcutContext(Qt.ShortcutContext.WidgetWithChildrenShortcut) self._actionregistry.registerAction(n, a) tbar = QToolBar(_('Patch Queue Actions Toolbar'), self) tbar.setIconSize(qtlib.smallIconSize()) tbarhbox.addWidget(tbar) tbar.addAction(self._qpushAct) tbar.addAction(self._qpushAllAct) tbar.addSeparator() tbar.addAction(self._qpopAct) tbar.addAction(self._qpopAllAct) tbar.addSeparator() tbar.addAction(self._qpushMoveAct) tbar.addSeparator() tbar.addAction(self._qfinishAct) tbar.addAction(self._qdeleteAct) tbar.addSeparator() tbar.addAction(self._setGuardsAct) self._queueFrame = w = QFrame() mainlayout.addWidget(w) # Patch Queue Frame layout = QVBoxLayout() layout.setSpacing(5) layout.setContentsMargins(0, 0, 0, 0) self._queueFrame.setLayout(layout) qqueuehbox = QHBoxLayout() qqueuehbox.setSpacing(5) layout.addLayout(qqueuehbox) self._qqueueComboWidget = QComboBox(self) qqueuehbox.addWidget(self._qqueueComboWidget, 1) self._qqueueConfigBtn = QToolButton(self) self._qqueueConfigBtn.setText('...') self._qqueueConfigBtn.setPopupMode(QToolButton.ToolButtonPopupMode.InstantPopup) qqueuehbox.addWidget(self._qqueueConfigBtn) self._qqueueActions = QueueManagementActions(self) self._qqueueConfigBtn.setMenu(self._qqueueActions.createMenu(self)) self._queueListWidget = QListView(self) self._queueListWidget.setDragDropMode(QAbstractItemView.DragDropMode.InternalMove) self._queueListWidget.setEditTriggers(QAbstractItemView.EditTrigger.NoEditTriggers) self._queueListWidget.setIconSize(qtlib.smallIconSize() * 0.75) self._queueListWidget.setSelectionMode( QAbstractItemView.SelectionMode.ExtendedSelection) self._queueListWidget.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) self._queueListWidget.customContextMenuRequested.connect( self._onMenuRequested) layout.addWidget(self._queueListWidget, 1) bbarhbox = QHBoxLayout() bbarhbox.setSpacing(5) layout.addLayout(bbarhbox) self._guardSelBtn = QPushButton() menu = QMenu(self) menu.triggered.connect(self._onGuardSelectionChange) self._guardSelBtn.setMenu(menu) bbarhbox.addWidget(self._guardSelBtn) self._qqueueComboWidget.activated[int].connect(self._onQQueueActivated) self._queueListWidget.activated.connect(self._onGotoPatch) self._qpushAct.triggered.connect(self._patchActions.pushPatch) self._qpushAllAct.triggered.connect(self._patchActions.pushAllPatches) self._qpopAct.triggered.connect(self._patchActions.popPatch) self._qpopAllAct.triggered.connect(self._patchActions.popAllPatches) self._qgotoAct.triggered.connect(self._onGotoPatch) self._qpushMoveAct.triggered.connect(self._onPushMovePatch) self._qfinishAct.triggered.connect(self._onFinishRevision) self._qdeleteAct.triggered.connect(self._onDelete) self._qrenameAct.triggered.connect(self._onRenamePatch) self._setGuardsAct.triggered.connect(self._onGuardConfigure) self.setAcceptDrops(True) self.layout().setContentsMargins(2, 2, 2, 2) QTimer.singleShot(0, self.reload) @property def _repo(self): if self._repoagent: return self._repoagent.rawRepo() def setRepoAgent(self, repoagent): if self._repoagent: self._repoagent.repositoryChanged.disconnect(self.reload) self._repoagent = None if repoagent and b'mq' in repoagent.rawRepo().extensions(): self._repoagent = repoagent self._repoagent.repositoryChanged.connect(self.reload) self._changePatchQueueModel() self._patchActions.setRepoAgent(repoagent) self._qqueueActions.setRepoAgent(repoagent) QTimer.singleShot(0, self.reload) def _changePatchQueueModel(self): oldmodel = self._queueListWidget.model() if self._repoagent: newmodel = PatchQueueModel(self._repoagent, self) self._queueListWidget.setModel(newmodel) newmodel.dataChanged.connect(self._updatePatchActions) selmodel = self._queueListWidget.selectionModel() selmodel.currentRowChanged.connect(self._onPatchSelected) selmodel.selectionChanged.connect(self._updatePatchActions) self._updatePatchActions() else: self._queueListWidget.setModel(None) if oldmodel: oldmodel.setParent(None) @pyqtSlot() def _showActiveQueue(self): combo = self._qqueueComboWidget q = hglib.tounicode(self._repo.thgactivemqname) index = combo.findText(q) combo.setCurrentIndex(index) @pyqtSlot(QPoint) def _onMenuRequested(self, pos): menu = QMenu(self) menu.addAction(self._qgotoAct) menu.addAction(self._qpushMoveAct) menu.addAction(self._qfinishAct) menu.addAction(self._qdeleteAct) menu.addAction(self._qrenameAct) menu.addAction(self._setGuardsAct) menu.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose) menu.popup(self._queueListWidget.viewport().mapToGlobal(pos)) def _currentPatchName(self): model = self._queueListWidget.model() assert model is not None index = self._queueListWidget.currentIndex() return model.patchName(index) @pyqtSlot() def _onGuardConfigure(self): model = self._queueListWidget.model() assert model is not None index = self._queueListWidget.currentIndex() patch = model.patchName(index) uguards = ' '.join(model.patchGuards(index)) new, ok = qtlib.getTextInput(self, _('Configure guards'), _('Input new guards for %s:') % patch, text=uguards) if not ok or new == uguards: return self._patchActions.guardPatch(patch, new.split()) @pyqtSlot() def _onDelete(self): model = self._queueListWidget.model() selmodel = self._queueListWidget.selectionModel() assert model is not None assert selmodel is not None patches = pycompat.maplist(model.patchName, selmodel.selectedRows()) self._patchActions.deletePatches(patches) @pyqtSlot() def _onGotoPatch(self): patch = self._currentPatchName() self._patchActions.gotoPatch(patch) @pyqtSlot() def _onPushMovePatch(self): patch = self._currentPatchName() self._patchActions.pushPatch(patch, move=True) @pyqtSlot() def _onFinishRevision(self): patch = self._currentPatchName() self._patchActions.finishRevision(patch) @pyqtSlot() def _onRenamePatch(self): patch = self._currentPatchName() self._patchActions.renamePatch(patch) @pyqtSlot() def _onPatchSelected(self): patch = self._currentPatchName() if patch: self.patchSelected.emit(patch) @pyqtSlot() def _updatePatchActions(self): model = self._queueListWidget.model() selmodel = self._queueListWidget.selectionModel() assert model is not None assert selmodel is not None appliedcnt = model.appliedCount() seriescnt = model.rowCount() self._qpushAllAct.setEnabled(seriescnt > appliedcnt) self._qpushAct.setEnabled(seriescnt > appliedcnt) self._qpopAct.setEnabled(appliedcnt > 0) self._qpopAllAct.setEnabled(appliedcnt > 0) indexes = selmodel.selectedRows() anyapplied = any(model.isApplied(i) for i in indexes) self._qgotoAct.setEnabled(len(indexes) == 1 and indexes[0] != model.topAppliedIndex()) self._qpushMoveAct.setEnabled(len(indexes) == 1 and not anyapplied) self._qfinishAct.setEnabled(len(indexes) == 1 and anyapplied) self._qdeleteAct.setEnabled(len(indexes) > 0 and not anyapplied) self._setGuardsAct.setEnabled(len(indexes) == 1) self._qrenameAct.setEnabled(len(indexes) == 1) @pyqtSlot(int) def _onQQueueActivated(self, index): text = self._qqueueComboWidget.itemText(index) if text == hglib.tounicode(self._repo.thgactivemqname): return if qtlib.QuestionMsgBox(_('Confirm patch queue switch'), _("Do you really want to activate patch queue '%s' ?") % text, parent=self, defaultbutton=QMessageBox.StandardButton.No): sess = self._qqueueActions.switchQueue(text) sess.commandFinished.connect(self._showActiveQueue) else: self._showActiveQueue() @pyqtSlot() def reload(self): # Repository mutation should be disabled while incoming bundle is # applied. Some MQ operation could be allowed, but let's simply # disable the widget at all. self.widget().setEnabled(bool(self._repoagent) and not self._repoagent.overlayUrl()) if not self._repoagent: return self._loadQQueues() self._showActiveQueue() repo = self._repo self._allguards = set() for idx, patch in enumerate(repo.mq.series): patchguards = repo.mq.seriesguards[idx] if patchguards: for guard in patchguards: self._allguards.add(guard[1:]) for guard in repo.mq.active(): self._allguards.add(guard) self._refreshSelectedGuards() self._qqueueComboWidget.setEnabled(self._qqueueComboWidget.count() > 1) def _loadQQueues(self): repo = self._repo combo = self._qqueueComboWidget combo.clear() combo.addItems(hglib.getqqueues(repo)) def _refreshSelectedGuards(self): total = len(self._allguards) count = len(self._repo.mq.active()) menu = self._guardSelBtn.menu() menu.clear() for guard in self._allguards: a = menu.addAction(hglib.tounicode(guard)) a.setCheckable(True) a.setChecked(guard in self._repo.mq.active()) self._guardSelBtn.setText(_('Guards: %d/%d') % (count, total)) self._guardSelBtn.setEnabled(bool(total)) @pyqtSlot(QAction) def _onGuardSelectionChange(self, action): guard = hglib.fromunicode(action.text()) newguards = self._repo.mq.active()[:] if action.isChecked(): newguards.append(guard) elif guard in newguards: newguards.remove(guard) self._patchActions.selectGuards(pycompat.maplist(hglib.tounicode, newguards)) def keyPressEvent(self, event): if event.key() == Qt.Key.Key_Escape: self._patchActions.abort() self._qqueueActions.abort() else: return super(MQPatchesWidget, self).keyPressEvent(event) class OptionsDialog(QDialog): 'Utility dialog for configuring uncommon options' def __init__(self, opts, parent=None): QDialog.__init__(self, parent) self.setWindowTitle(_('MQ options')) layout = QVBoxLayout() self.setLayout(layout) self.forcecb = QCheckBox( _('Force push or pop (--force)')) layout.addWidget(self.forcecb) self.keepcb = QCheckBox( _('Tolerate non-conflicting local changes (--keep-changes)')) layout.addWidget(self.keepcb) self.forcecb.setChecked(opts.get('force', False)) self.keepcb.setChecked(opts.get('keep_changes', False)) for cb in [self.forcecb, self.keepcb]: cb.clicked.connect(self._resolveopts) bb = QDialogButtonBox(QDialogButtonBox.StandardButton.Ok|QDialogButtonBox.StandardButton.Cancel) bb.accepted.connect(self.accept) bb.rejected.connect(self.reject) self.bb = bb layout.addWidget(bb) @pyqtSlot() def _resolveopts(self): # cannot use both --force and --keep-changes exclmap = {self.forcecb: [self.keepcb], self.keepcb: [self.forcecb], } sendercb = self.sender() if sendercb.isChecked(): for cb in exclmap[sendercb]: cb.setChecked(False) def accept(self): outopts = {'force': self.forcecb.isChecked(), 'keep_changes': self.keepcb.isChecked()} self.outopts = outopts QDialog.accept(self) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1736945585.0 tortoisehg-6.9/tortoisehg/hgqt/p4pending.py0000644000000000000000000001222714741727661017734 0ustar00rootroot# p4pending.py - Display pending p4 changelists, created by perfarce extension # # Copyright 2010 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations from .qtcore import ( Qt, pyqtSignal, pyqtSlot, ) from .qtgui import ( QComboBox, QDialog, QDialogButtonBox, QVBoxLayout, ) from mercurial import error from ..util import hglib from ..util.i18n import _ from . import ( cmdcore, cmdui, cslist, ) class PerforcePending(QDialog): 'Dialog for selecting a revision' showMessage = pyqtSignal(str) def __init__(self, repoagent, pending, url, parent): QDialog.__init__(self, parent) self._repoagent = repoagent repo = repoagent.rawRepo() self._cmdsession = cmdcore.nullCmdSession() self.url = url self.pending = pending # dict of changelist -> hash tuple layout = QVBoxLayout() self.setLayout(layout) self._clcombo = QComboBox() layout.addWidget(self._clcombo) self.cslist = cslist.ChangesetList(repo) layout.addWidget(self.cslist) bb = QDialogButtonBox(QDialogButtonBox.StandardButton.Ok|QDialogButtonBox.StandardButton.Cancel|QDialogButtonBox.StandardButton.Discard) bb.rejected.connect(self.reject) bb.button(QDialogButtonBox.StandardButton.Discard).setText('Revert') bb.button(QDialogButtonBox.StandardButton.Discard).setAutoDefault(False) bb.button(QDialogButtonBox.StandardButton.Discard).clicked.connect(self.revert) bb.button(QDialogButtonBox.StandardButton.Discard).setEnabled(False) bb.button(QDialogButtonBox.StandardButton.Ok).setText('Submit') bb.button(QDialogButtonBox.StandardButton.Ok).setAutoDefault(True) bb.button(QDialogButtonBox.StandardButton.Ok).clicked.connect(self.submit) bb.button(QDialogButtonBox.StandardButton.Ok).setEnabled(False) layout.addWidget(bb) self.bb = bb self._clcombo.activated[int].connect(self.p4clActivated) for changelist in self.pending: self._clcombo.addItem(hglib.tounicode(changelist)) self.p4clActivated(self._clcombo.currentIndex()) self.setWindowTitle(_('Pending Perforce Changelists - %s') % repoagent.displayName()) self.setWindowFlags(self.windowFlags() & ~Qt.WindowType.WindowContextHelpButtonHint) @pyqtSlot(int) def p4clActivated(self, curcl_idx): 'User has selected a changelist, fill cslist' curcl = self._clcombo.itemText(curcl_idx) repo = self._repoagent.rawRepo() curcl = hglib.fromunicode(curcl) try: hashes = self.pending[curcl] revs = [repo[hash] for hash in hashes] except (error.Abort, error.RepoLookupError) as e: revs = [] self.cslist.clear() self.cslist.updateItems(revs) sensitive = not curcl.endswith(b'(submitted)') self.bb.button(QDialogButtonBox.StandardButton.Ok).setEnabled(sensitive) self.bb.button(QDialogButtonBox.StandardButton.Discard).setEnabled(sensitive) self.curcl = curcl def submit(self): assert(self.curcl.endswith(b'(pending)')) cmdline = ['p4submit', '--verbose', '--config', 'extensions.perfarce=', '--repository', hglib.tounicode(self.url), hglib.tounicode(self.curcl[:-10])] self.bb.button(QDialogButtonBox.StandardButton.Ok).setEnabled(False) self.bb.button(QDialogButtonBox.StandardButton.Discard).setEnabled(False) self.showMessage.emit(_('Submitting p4 changelist...')) self._cmdsession = sess = self._repoagent.runCommand(cmdline, self) sess.commandFinished.connect(self.commandFinished) def revert(self): assert(self.curcl.endswith(b'(pending)')) cmdline = ['p4revert', '--verbose', '--config', 'extensions.perfarce=', '--repository', hglib.tounicode(self.url), hglib.tounicode(self.curcl[:-10])] self.bb.button(QDialogButtonBox.StandardButton.Ok).setEnabled(False) self.bb.button(QDialogButtonBox.StandardButton.Discard).setEnabled(False) self.showMessage.emit(_('Reverting p4 changelist...')) self._cmdsession = sess = self._repoagent.runCommand(cmdline, self) sess.commandFinished.connect(self.commandFinished) @pyqtSlot(int) def commandFinished(self, ret): self.showMessage.emit('') self.bb.button(QDialogButtonBox.StandardButton.Ok).setEnabled(True) self.bb.button(QDialogButtonBox.StandardButton.Discard).setEnabled(True) if ret == 0: self.reject() else: cmdui.errorMessageBox(self._cmdsession, self) def keyPressEvent(self, event): if event.key() == Qt.Key.Key_Escape: if not self._cmdsession.isFinished(): self._cmdsession.abort() else: self.reject() else: return super(PerforcePending, self).keyPressEvent(event) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1732624256.0 tortoisehg-6.9/tortoisehg/hgqt/phabreview.py0000644000000000000000000005231514721337600020166 0ustar00rootroot# phabreview.py - TortoiseHg's dialog for posting patches to Phabricator # # Copyright 2018 Matt Harbison # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations from mercurial import ( pycompat, ) from .qtcore import ( QBuffer, QIODevice, QSettings, QSortFilterProxyModel, Qt, pyqtSlot, ) from .qtgui import ( QDialog, QKeySequence, QListWidgetItem, QShortcut, QStandardItem, QStandardItemModel, ) from ..util import hglib from ..util.i18n import _ from . import ( cmdcore, cmdui, lexers, qtlib, ) from .hgemail import _ChangesetsModel from .phabreview_ui import Ui_PhabReviewDialog if hglib.TYPE_CHECKING: from typing import ( Any, Dict, List, Optional, Sequence, Text, ) from mercurial import ( localrepo, ui as uimod, ) from .qtgui import ( QWidget, ) from .thgrepo import ( RepoAgent, ) class user(tuple): '''Named tuple with user properties.''' __slots__ = () def __new__(cls, username: Text, realname: Text, roles: List[Text]) -> user: return tuple.__new__(cls, (username, realname, roles)) @property def username(self) -> Text: '''username used by phabsend''' return self[0] @property def realname(self) -> Text: '''friendly name of this user''' return self[1] @property def roles(self) -> List[Text]: '''the roles filled by this user''' return self[2] def __repr__(self) -> Text: return '%s (%s)' % (self.realname, self.username) class PhabReviewDialog(QDialog): """Dialog for posting patches to Phabricator""" def __init__(self, repoagent: RepoAgent, revs: Sequence[int], parent: Optional[QWidget] = None) -> None: """Create PhabReviewDialog for the given repo and revs :revs: List of revisions to be sent. """ super(PhabReviewDialog, self).__init__(parent) self.setWindowFlags(Qt.WindowType.Window) self._repoagent = repoagent self._cmdsession = cmdcore.nullCmdSession() self._rescansession = cmdcore.nullCmdSession() self._namesession = cmdcore.nullCmdSession() self._my_username = None self._qui = Ui_PhabReviewDialog() self._qui.setupUi(self) proxymodel = QSortFilterProxyModel(self._qui.available_reviewer_list) proxymodel.setDynamicSortFilter(True) proxymodel.setSourceModel(QStandardItemModel()) proxymodel.setFilterCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive) proxymodel.sort(0) self.availablereviewersmodel = proxymodel reviewerlist = self._qui.available_reviewer_list reviewerlist.setModel(proxymodel) reviewerlist.selectionModel().selectionChanged.connect( self.on_available_reviewer_selection_changed) reviewerfilter = self._qui.reviewer_filter reviewerfilter.textChanged.connect(proxymodel.setFilterFixedString) selectedreviewerlist = self._qui.selected_reviewers_list selectedreviewerlist.selectionModel().selectionChanged.connect( self.on_reviewer_selection_changed) callsign = self._ui.config(b'phabricator', b'callsign') url = self._ui.config(b'phabricator', b'url') title = self.windowTitle() if url: title += hglib.tounicode(b" - " + url) if callsign: # The callsign is repo specific, so pointing to the repo in # Diffusion seems like a reasonable way to display both pieces # of Phabricator config info. endfmt = url.endswith(b'/') and b'r%s' or b'/r%s' title += hglib.tounicode(endfmt % callsign) self.setWindowTitle(title) self._initchangesets(revs) self._initpreviewtab() self._readreviewerhistory() self._updateforms() self._readsettings() QShortcut(QKeySequence('Ctrl+Return'), self, self.accept) QShortcut(QKeySequence('Ctrl+Enter'), self, self.accept) def closeEvent(self, event): self._writesettings() super(PhabReviewDialog, self).closeEvent(event) def _readsettings(self) -> None: s = QSettings() self.restoreGeometry(qtlib.readByteArray(s, 'phabsend/geom')) def _writesettings(self) -> None: s = QSettings() s.setValue('phabsend/geom', self.saveGeometry()) def _reviewerhistorypath(self, withcallsign: bool = False) -> Optional[Text]: '''Fetches the path in the settings used to store reviewer history. If no reviewers are stored or the configuration isn't present to find the reviewers, no path is returned. ''' url = self._ui.config(b'phabricator', b'url') if not url: return None scheme, hostpath = url.split(b'://', 1) if hostpath.endswith(b'/'): hostpath = hostpath[0:-1] if not withcallsign: return 'phabsend/%s/reviewers' % hostpath callsign = self._ui.config(b'phabricator', b'callsign') if not callsign: return None return 'phabsend/%s/%s/reviewers' % (hostpath, callsign) def _getreviewerhistory(self) -> List[user]: '''Returns a fully populated list of the users previously selected to perform a review for any repository on the configured server. ''' path = self._reviewerhistorypath() if not path: return [] s = QSettings() reviewers = [] size = s.beginReadArray(path) for idx in pycompat.xrange(size): s.setArrayIndex(idx) realname = qtlib.readString(s, "realname") username = qtlib.readString(s, "username") roles = qtlib.readStringList(s, "roles") # https://github.com/google/pytype/issues/500 reviewers.append(user(username, realname, roles)) # pytype: disable=wrong-arg-count s.endArray() return reviewers def _readreviewerhistory(self) -> None: '''Pre-populates the reviewer lists. The available reviewer list is populated with all reviewers selected in the past from the configured server. The selected reviewers are populated with the reviewers selected for the previous review on the repository, as identified by the callsign. ''' availablereviewers = self.availablereviewersmodel.sourceModel() history = {r.username: r for r in self._getreviewerhistory()} for reviewer in history.values(): item = QStandardItem(str(reviewer)) item.setData(reviewer) # Must add to source model since setDynamicSortFilter() is True. availablereviewers.appendRow(item) # Preselect the last set of reviewers for this repository, if known. path = self._reviewerhistorypath(withcallsign=True) if path: s = QSettings() reviewers = self._qui.selected_reviewers_list size = s.beginReadArray(path) for idx in pycompat.xrange(size): s.setArrayIndex(idx) username = qtlib.readString(s, "username") reviewer = history.get(username) if reviewer: witem = QListWidgetItem(str(reviewer)) witem.setData(Qt.ItemDataRole.UserRole + 1, reviewer) reviewers.addItem(witem) s.endArray() def _writereviewerhistory(self) -> None: '''Stores the selected reviewers persistently. The currently selected reviewers are combined with the existing reviewer history, and it is stored. This allows the available reviewer list to be pre-populated with users of interest, without contacting the server. This cumulative history is shared across repositories that use the same phabricator server. ''' path = self._reviewerhistorypath() if not path: return # Avoid set() when eliminating duplicates, which hashes the role list reviewers = {r.username: r for r in self._getreviewerhistory()} selectedreviewers = self._qui.selected_reviewers_list for i in pycompat.xrange(selectedreviewers.count()): reviewer = selectedreviewers.item(i).data(Qt.ItemDataRole.UserRole + 1) reviewers[reviewer.username] = reviewer s = QSettings() s.beginWriteArray(path) for i, reviewer in enumerate(reviewers.values()): s.setArrayIndex(i) s.setValue("username", reviewer.username) s.setValue("realname", reviewer.realname) s.setValue("roles", reviewer.roles) s.endArray() # Store the currently selected reviewers, if tied to a repo. path = self._reviewerhistorypath(withcallsign=True) if path: reviewers = self._qui.selected_reviewers_list s.beginWriteArray(path) for i in pycompat.xrange(reviewers.count()): s.setArrayIndex(i) s.setValue("username", reviewers.item(i).data(Qt.ItemDataRole.UserRole + 1).username) s.endArray() def _initchangesets(self, revs: Sequence[int]) -> None: # Posting a review amends the commits, making them hidden. That in # turn would raise a FilteredRepoLookupError each time the table tries # to repaint after posting the review. And that makes it almost # impossible to close this dialog. self._changesets = _ChangesetsModel(self._repo.unfiltered(), revs=revs or list(self._repo), selectedrevs=revs, parent=self) self._changesets.dataChanged.connect(self._updateforms) self._qui.changesets_view.setModel(self._changesets) @property def _repo(self) -> localrepo.localrepository: return self._repoagent.rawRepo() @property def _ui(self) -> uimod.ui: return self._repo.ui @property def _revs(self) -> List[int]: """Returns list of revisions to be sent""" return self._changesets.selectedrevs def _phabsendopts(self, **opts) -> Dict[Text, Any]: """Generate opts for phabsend by form values""" opts['rev'] = hglib.compactrevs(self._revs) reviewerlist = self._qui.selected_reviewers_list opts['reviewer'] = [reviewerlist.item(i).data(Qt.ItemDataRole.UserRole + 1).username for i in pycompat.xrange(reviewerlist.count())] return opts def _isvalid(self) -> bool: """Filled all required values?""" if not self._revs: return False return True @pyqtSlot() def _updateforms(self) -> None: """Update availability of form widgets""" valid = self._isvalid() self._qui.send_button.setEnabled(valid) self._qui.main_tabs.setTabEnabled(self._previewtabindex(), valid) def accept(self) -> None: opts = self._phabsendopts() cmdline = hglib.buildcmdargs('phabsend', **opts) cmd = cmdui.CmdSessionDialog(self) cmd.setWindowTitle(_('Posting Review')) cmd.setLogVisible(True) cmd.setSession(self._repoagent.runCommand(cmdline, self)) if cmd.exec() == 0: self._writereviewerhistory() def _initpreviewtab(self) -> None: def initqsci(w): w.setUtf8(True) w.setReadOnly(True) w.setMarginWidth(1, 0) # hide area for line numbers self.lexer = lex = lexers.difflexer(self) fh = qtlib.getfont('fontdiff') fh.changed.connect(self.forwardFont) lex.setFont(fh.font()) w.setFont(fh.font()) w.setLexer(lex) # TODO: better way to setup diff lexer initqsci(self._qui.preview_edit) self._qui.main_tabs.currentChanged.connect(self._refreshpreviewtab) self._refreshpreviewtab(self._qui.main_tabs.currentIndex()) def forwardFont(self, font): if self.lexer: self.lexer.setFont(font) @pyqtSlot(int) def _refreshpreviewtab(self, index: int) -> None: """Generate preview text if current tab is preview""" if self._previewtabindex() != index: return self._qui.preview_edit.clear() cmdline = hglib.buildcmdargs('export', git=True, rev=hglib.compactrevs(self._revs)) self._cmdsession = sess = self._repoagent.runCommand(cmdline) sess.setCaptureOutput(True) sess.commandFinished.connect(self._updatepreview) @pyqtSlot() def _updatepreview(self) -> None: preview = self._qui.preview_edit exported = hglib.tounicode(bytes(self._cmdsession.readAll())) callsign = self._ui.config(b'phabricator', b'callsign') if not callsign: callsign = b'Not Configured!' url = self._ui.config(b'phabricator', b'url') if not url: url = b'Not Configured!' reviewerlist = self._qui.selected_reviewers_list role = Qt.ItemDataRole.UserRole + 1 reviewers = [reviewerlist.item(i).data(role).username for i in pycompat.xrange(reviewerlist.count())] if reviewers: reviewers = u', '.join(reviewers) else: reviewers = u'None' preview.append(u'Server: %s\n' % hglib.tounicode(url)) preview.append(u'Callsign: %s\n' % hglib.tounicode(callsign)) preview.append(u'Reviewers: %s\n' % reviewers) preview.append(u'\n\n') preview.append(exported) def _previewtabindex(self) -> int: """Index of preview tab""" return self._qui.main_tabs.indexOf(self._qui.preview_tab) def _appendavailablereviewers(self, conduitresult): """Process the result of a conduit call, and add reviewers to the available reviewers list. """ availablereviewers = self.availablereviewersmodel.sourceModel() # A single user JSON entry looks like this: # # { # "attachments": {}, # "fields": { # "dateCreated": 1544870724, # "dateModified": 1544870725, # "policy": { # "edit": "no-one", # "view": "public" # }, # "realName": "UserName LastName", # "roles": [ # "admin", # "verified", # "approved", # "activated" <-- or "disabled" for deactivated user # ], # "username": "user" # }, # "id": 1, # "phid": "PHID-USER-5f2bb6z25cceqs266inw", # "type": "USER" # } # # Additional roles include "list" for mailing list entries. for data in conduitresult.get('data', {}): fields = data.get('fields', {}) realname = fields.get('realName') username = fields.get('username') roles = fields.get('roles', []) # An error is raised when a user self assigns a review, so skip the # current user. if not realname or not username or username == self._my_username: continue # https://github.com/google/pytype/issues/500 u = user(username, realname, roles) # pytype: disable=wrong-arg-count item = QStandardItem(str(u)) item.setData(u) # Must add to source model since setDynamicSortFilter() is True. availablereviewers.appendRow(item) def _queryreviewers(self, after: Optional[bytes]) -> None: """Issues the command to query the users, and arranges to have _updateavailablereviewers() called on completion. ``after`` is the cursor value from the result of the last command, or None at the start of the sequence. """ buf = QBuffer() # phabsend doesn't seem to complain about sending reviews to deactivate # users, but filter them out anyway. It also doesn't seem to make much # sense to send a review request to a bot. if after is not None: buf.setData(b'''{ "constraints": { "isBot": false, "isDisabled": false }, "after": %s }''' % after) else: buf.setData(b'''{ "constraints": { "isBot": false, "isDisabled": false } }''') buf.open(QIODevice.OpenModeFlag.ReadOnly) cmdline = hglib.buildcmdargs('debugcallconduit', 'user.search') self._rescansession = sess = self._repoagent.runCommand(cmdline) sess.setCaptureOutput(True) sess.setInputDevice(buf) sess.commandFinished.connect(self._updateavailablereviewers) @pyqtSlot() def on_rescan_button_clicked(self) -> None: availablereviewers = self.availablereviewersmodel.sourceModel() availablereviewers.clear() self._qui.rescan_button.setEnabled(False) # On the first click, fetch the current user's name for the purpose of # excluding them from the list. If the username is known, trust it. if self._my_username is None: self._get_my_username() self._queryreviewers(None) def _get_my_username(self) -> None: """Spawns the phabricator command to return the current user's info.""" buf = QBuffer() buf.setData(b'{}') buf.open(QIODevice.OpenModeFlag.ReadOnly) cmdline = hglib.buildcmdargs("debugcallconduit", "user.whoami") self._namesession = sess = self._repoagent.runCommand(cmdline) sess.setCaptureOutput(True) sess.setInputDevice(buf) sess.commandFinished.connect(self._update_self_username) @pyqtSlot() def _update_self_username(self) -> None: """Handles the completion of the current user info fetch.""" exitcode = self._namesession.exitCode() if exitcode == 0: output = bytes(self._namesession.readAll()) results = pycompat.json_loads(output) self._my_username = results.get("userName") @pyqtSlot() def _updateavailablereviewers(self) -> None: exitcode = self._rescansession.exitCode() if exitcode == 0: output = bytes(self._rescansession.readAll()) results = pycompat.json_loads(output) self._appendavailablereviewers(results) # The default behavior is to batch 100 users at a time, and requires # a second call, with the 'after' value specified in the cursor of # the response to pick up the rest. 'after' is None at the end of # the sequence. To test the continuation logic, `"limit": 1` can be # added to the request parameters. cursor = results.get('cursor') if cursor and 'after' in cursor: after = cursor.get('after') if after: self._queryreviewers(hglib.fromunicode(after)) return else: cmdui.errorMessageBox(self._rescansession, self, "Phabricator Error") # Done, either by error or completing the sequence. self._qui.rescan_button.setEnabled(True) @pyqtSlot() def on_available_reviewer_selection_changed(self) -> None: view = self._qui.available_reviewer_list self._qui.addreviewer_button.setEnabled(bool(view.selectedIndexes())) @pyqtSlot() def on_reviewer_selection_changed(self) -> None: view = self._qui.selected_reviewers_list self._qui.removereviewer_button.setEnabled(bool(view.selectedIndexes())) @pyqtSlot() def on_addreviewer_button_clicked(self) -> None: """Populates the selected reviewers list when the ">" button is clicked. """ reviewers = self._qui.selected_reviewers_list proxymodel = self.availablereviewersmodel model = proxymodel.sourceModel() for i in self._qui.available_reviewer_list.selectedIndexes(): item = model.item(proxymodel.mapToSource(i).row()) if not reviewers.findItems(item.text(), Qt.MatchFlag.MatchExactly): witem = QListWidgetItem(item.text()) witem.setData(Qt.ItemDataRole.UserRole + 1, item.data()) reviewers.addItem(witem) @pyqtSlot() def on_removereviewer_button_clicked(self) -> None: """Removes items from the selected reviewers list when the "<" button is clicked. """ reviewers = self._qui.selected_reviewers_list for i in reviewers.selectedItems(): reviewers.takeItem(reviewers.row(i)) @pyqtSlot() def on_selectall_button_clicked(self) -> None: self._changesets.selectAll() @pyqtSlot() def on_selectnone_button_clicked(self) -> None: self._changesets.selectNone() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/tortoisehg/hgqt/phabreview.ui0000644000000000000000000003345414023111777020156 0ustar00rootroot PhabReviewDialog 0 0 818 604 Phabricator true 0 false false false Edit Reviewers 0 0 Available Qt::Horizontal 40 20 Fetch the reviewer list from the server Rescan Qt::Horizontal 40 20 Filter the available reviewers Reviewer Filter 0 0 Reviewers available on the server QAbstractItemView::NoEditTriggers QAbstractItemView::ExtendedSelection 0 0 Qt::Vertical 20 40 false 0 0 0 0 Chose the selected available reviewers > 0 0 false Remove the selected reviewers < Qt::Vertical 20 40 0 0 Selected 0 0 These users will be notified of the review true Changesets 0 false false Select &All Select &None Qt::Horizontal 40 20 Preview false &Settings false Qt::Horizontal 25 19 false Post &Review false true &Close true QsciScintilla QFrame
                                                                                                            Qsci/qsciscintilla.h
                                                                                                            1
                                                                                                            main_tabs rescan_button reviewer_filter available_reviewer_list addreviewer_button selected_reviewers_list removereviewer_button changesets_view selectall_button selectnone_button settings_button close_button send_button send_button clicked() PhabReviewDialog accept() 641 501 528 506 close_button clicked() PhabReviewDialog close() 641 501 528 506
                                                                                                            ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033565.0 tortoisehg-6.9/tortoisehg/hgqt/phabreview_ui.py0000644000000000000000000003257014742203535020666 0ustar00rootroot# -*- coding: utf-8 -*- # Form implementation generated from reading ui file '/home/yuya/work/hghacks/thg/tortoisehg/hgqt/phabreview.ui' # # Created by: PyQt5 UI code generator 5.15.11 # # WARNING: Any manual changes made to this file will be lost when pyuic5 is # run again. Do not edit this file unless you know what you are doing. from tortoisehg.util.i18n import _ from PyQt5 import QtCore, QtGui, QtWidgets class Ui_PhabReviewDialog(object): def setupUi(self, PhabReviewDialog): PhabReviewDialog.setObjectName("PhabReviewDialog") PhabReviewDialog.resize(818, 604) PhabReviewDialog.setSizeGripEnabled(True) self.verticalLayout_5 = QtWidgets.QVBoxLayout(PhabReviewDialog) self.verticalLayout_5.setObjectName("verticalLayout_5") self.main_tabs = QtWidgets.QTabWidget(PhabReviewDialog) self.main_tabs.setDocumentMode(False) self.main_tabs.setTabsClosable(False) self.main_tabs.setMovable(False) self.main_tabs.setObjectName("main_tabs") self.edit_tab = QtWidgets.QWidget() self.edit_tab.setObjectName("edit_tab") self.gridLayout = QtWidgets.QGridLayout(self.edit_tab) self.gridLayout.setObjectName("gridLayout") self.reviewers_box = QtWidgets.QGroupBox(self.edit_tab) self.reviewers_box.setObjectName("reviewers_box") self.horizontalLayout = QtWidgets.QHBoxLayout(self.reviewers_box) self.horizontalLayout.setObjectName("horizontalLayout") self.available_reviewers_group = QtWidgets.QGroupBox(self.reviewers_box) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.available_reviewers_group.sizePolicy().hasHeightForWidth()) self.available_reviewers_group.setSizePolicy(sizePolicy) self.available_reviewers_group.setToolTip("") self.available_reviewers_group.setObjectName("available_reviewers_group") self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.available_reviewers_group) self.verticalLayout_2.setObjectName("verticalLayout_2") self.gridLayout_5 = QtWidgets.QGridLayout() self.gridLayout_5.setObjectName("gridLayout_5") spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.gridLayout_5.addItem(spacerItem, 2, 2, 1, 1) self.rescan_button = QtWidgets.QPushButton(self.available_reviewers_group) self.rescan_button.setObjectName("rescan_button") self.gridLayout_5.addWidget(self.rescan_button, 2, 1, 1, 1) spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.gridLayout_5.addItem(spacerItem1, 2, 0, 1, 1) self.reviewer_filter = QtWidgets.QLineEdit(self.available_reviewers_group) self.reviewer_filter.setObjectName("reviewer_filter") self.gridLayout_5.addWidget(self.reviewer_filter, 0, 0, 1, 3) self.available_reviewer_list = QtWidgets.QListView(self.available_reviewers_group) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.available_reviewer_list.sizePolicy().hasHeightForWidth()) self.available_reviewer_list.setSizePolicy(sizePolicy) self.available_reviewer_list.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers) self.available_reviewer_list.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection) self.available_reviewer_list.setObjectName("available_reviewer_list") self.gridLayout_5.addWidget(self.available_reviewer_list, 1, 0, 1, 3) self.verticalLayout_2.addLayout(self.gridLayout_5) self.horizontalLayout.addWidget(self.available_reviewers_group) self.widget = QtWidgets.QWidget(self.reviewers_box) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.widget.sizePolicy().hasHeightForWidth()) self.widget.setSizePolicy(sizePolicy) self.widget.setObjectName("widget") self.verticalLayout = QtWidgets.QVBoxLayout(self.widget) self.verticalLayout.setObjectName("verticalLayout") spacerItem2 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) self.verticalLayout.addItem(spacerItem2) self.addreviewer_button = QtWidgets.QPushButton(self.widget) self.addreviewer_button.setEnabled(False) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.addreviewer_button.sizePolicy().hasHeightForWidth()) self.addreviewer_button.setSizePolicy(sizePolicy) self.addreviewer_button.setMinimumSize(QtCore.QSize(0, 0)) self.addreviewer_button.setIconSize(QtCore.QSize(0, 0)) self.addreviewer_button.setObjectName("addreviewer_button") self.verticalLayout.addWidget(self.addreviewer_button) self.removereviewer_button = QtWidgets.QPushButton(self.widget) self.removereviewer_button.setEnabled(False) self.removereviewer_button.setObjectName("removereviewer_button") self.verticalLayout.addWidget(self.removereviewer_button) spacerItem3 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) self.verticalLayout.addItem(spacerItem3) self.horizontalLayout.addWidget(self.widget) self.selected_reviewers_group = QtWidgets.QGroupBox(self.reviewers_box) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.selected_reviewers_group.sizePolicy().hasHeightForWidth()) self.selected_reviewers_group.setSizePolicy(sizePolicy) self.selected_reviewers_group.setToolTip("") self.selected_reviewers_group.setObjectName("selected_reviewers_group") self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.selected_reviewers_group) self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.selected_reviewers_list = QtWidgets.QListWidget(self.selected_reviewers_group) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.selected_reviewers_list.sizePolicy().hasHeightForWidth()) self.selected_reviewers_list.setSizePolicy(sizePolicy) self.selected_reviewers_list.setObjectName("selected_reviewers_list") self.horizontalLayout_2.addWidget(self.selected_reviewers_list) self.horizontalLayout.addWidget(self.selected_reviewers_group) self.gridLayout.addWidget(self.reviewers_box, 0, 0, 1, 1) self.changesets_box = QtWidgets.QGroupBox(self.edit_tab) self.changesets_box.setObjectName("changesets_box") self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.changesets_box) self.verticalLayout_3.setObjectName("verticalLayout_3") self.changesets_view = QtWidgets.QTreeView(self.changesets_box) self.changesets_view.setIndentation(0) self.changesets_view.setRootIsDecorated(False) self.changesets_view.setItemsExpandable(False) self.changesets_view.setObjectName("changesets_view") self.verticalLayout_3.addWidget(self.changesets_view) self.selectallnone_layout = QtWidgets.QHBoxLayout() self.selectallnone_layout.setObjectName("selectallnone_layout") self.selectall_button = QtWidgets.QPushButton(self.changesets_box) self.selectall_button.setObjectName("selectall_button") self.selectallnone_layout.addWidget(self.selectall_button) self.selectnone_button = QtWidgets.QPushButton(self.changesets_box) self.selectnone_button.setObjectName("selectnone_button") self.selectallnone_layout.addWidget(self.selectnone_button) spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.selectallnone_layout.addItem(spacerItem4) self.verticalLayout_3.addLayout(self.selectallnone_layout) self.gridLayout.addWidget(self.changesets_box, 1, 0, 1, 1) self.main_tabs.addTab(self.edit_tab, "") self.preview_tab = QtWidgets.QWidget() self.preview_tab.setObjectName("preview_tab") self.gridLayout_2 = QtWidgets.QGridLayout(self.preview_tab) self.gridLayout_2.setObjectName("gridLayout_2") self.preview_edit = Qsci.QsciScintilla(self.preview_tab) self.preview_edit.setObjectName("preview_edit") self.gridLayout_2.addWidget(self.preview_edit, 0, 0, 1, 1) self.main_tabs.addTab(self.preview_tab, "") self.verticalLayout_5.addWidget(self.main_tabs) self.dialogbuttons_layout = QtWidgets.QHBoxLayout() self.dialogbuttons_layout.setObjectName("dialogbuttons_layout") self.settings_button = QtWidgets.QPushButton(PhabReviewDialog) self.settings_button.setEnabled(False) self.settings_button.setToolTip("") self.settings_button.setDefault(False) self.settings_button.setObjectName("settings_button") self.dialogbuttons_layout.addWidget(self.settings_button) spacerItem5 = QtWidgets.QSpacerItem(25, 19, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.dialogbuttons_layout.addItem(spacerItem5) self.send_button = QtWidgets.QPushButton(PhabReviewDialog) self.send_button.setEnabled(False) self.send_button.setDefault(False) self.send_button.setObjectName("send_button") self.dialogbuttons_layout.addWidget(self.send_button) self.close_button = QtWidgets.QPushButton(PhabReviewDialog) self.close_button.setEnabled(True) self.close_button.setDefault(True) self.close_button.setObjectName("close_button") self.dialogbuttons_layout.addWidget(self.close_button) self.verticalLayout_5.addLayout(self.dialogbuttons_layout) self.retranslateUi(PhabReviewDialog) self.main_tabs.setCurrentIndex(0) self.send_button.clicked.connect(PhabReviewDialog.accept) # type: ignore self.close_button.clicked.connect(PhabReviewDialog.close) # type: ignore QtCore.QMetaObject.connectSlotsByName(PhabReviewDialog) PhabReviewDialog.setTabOrder(self.main_tabs, self.rescan_button) PhabReviewDialog.setTabOrder(self.rescan_button, self.reviewer_filter) PhabReviewDialog.setTabOrder(self.reviewer_filter, self.available_reviewer_list) PhabReviewDialog.setTabOrder(self.available_reviewer_list, self.addreviewer_button) PhabReviewDialog.setTabOrder(self.addreviewer_button, self.selected_reviewers_list) PhabReviewDialog.setTabOrder(self.selected_reviewers_list, self.removereviewer_button) PhabReviewDialog.setTabOrder(self.removereviewer_button, self.changesets_view) PhabReviewDialog.setTabOrder(self.changesets_view, self.selectall_button) PhabReviewDialog.setTabOrder(self.selectall_button, self.selectnone_button) PhabReviewDialog.setTabOrder(self.selectnone_button, self.settings_button) PhabReviewDialog.setTabOrder(self.settings_button, self.close_button) PhabReviewDialog.setTabOrder(self.close_button, self.send_button) def retranslateUi(self, PhabReviewDialog): _translate = QtCore.QCoreApplication.translate PhabReviewDialog.setWindowTitle(_("Phabricator")) self.reviewers_box.setTitle(_("Reviewers")) self.available_reviewers_group.setTitle(_("Available")) self.rescan_button.setToolTip(_("Fetch the reviewer list from the server")) self.rescan_button.setText(_("Rescan")) self.reviewer_filter.setToolTip(_("Filter the available reviewers")) self.reviewer_filter.setPlaceholderText(_("Reviewer Filter")) self.available_reviewer_list.setToolTip(_("Reviewers available on the server")) self.addreviewer_button.setToolTip(_("Chose the selected available reviewers")) self.addreviewer_button.setText(_(">")) self.removereviewer_button.setToolTip(_("Remove the selected reviewers")) self.removereviewer_button.setText(_("<")) self.selected_reviewers_group.setTitle(_("Selected")) self.selected_reviewers_list.setToolTip(_("These users will be notified of the review")) self.selected_reviewers_list.setSortingEnabled(True) self.changesets_box.setTitle(_("Changesets")) self.selectall_button.setText(_("Select &All")) self.selectnone_button.setText(_("Select &None")) self.main_tabs.setTabText(self.main_tabs.indexOf(self.edit_tab), _("Edit")) self.main_tabs.setTabText(self.main_tabs.indexOf(self.preview_tab), _("Preview")) self.settings_button.setText(_("&Settings")) self.send_button.setText(_("Post &Review")) self.close_button.setText(_("&Close")) from PyQt5 import Qsci ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730809007.0 tortoisehg-6.9/tortoisehg/hgqt/pick.py0000644000000000000000000002234214712406257016762 0ustar00rootroot# pick.py - Pick dialog for TortoiseHg # # Copyright 2010 Steve Borho # Copyright 2020 Matt Harbison # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations from .qtcore import ( QSettings, QTimer, Qt, pyqtSlot, ) from .qtgui import ( QCheckBox, QDialog, QDialogButtonBox, QGroupBox, QMessageBox, QVBoxLayout, ) from ..util import hglib from ..util.i18n import _ from . import ( cmdcore, cmdui, csinfo, qtlib, resolve, thgrepo, wctxcleaner, ) if hglib.TYPE_CHECKING: from typing import ( List, Optional, Text, ) from .qtgui import ( QWidget, ) from .thgrepo import ( RepoAgent, ) class PickDialog(QDialog): def __init__(self, repoagent: RepoAgent, parent: Optional[QWidget], **opts) -> None: super(PickDialog, self).__init__(parent) # TODO: self.setWindowIcon(qtlib.geticon('hg-pick')) self.setWindowFlags(self.windowFlags() & ~Qt.WindowType.WindowContextHelpButtonHint) self._repoagent = repoagent self._cmdsession = cmdcore.nullCmdSession() self.opts = opts box = QVBoxLayout() box.setSpacing(8) box.setContentsMargins(*(6,)*4) self.setLayout(box) style = csinfo.panelstyle(selectable=True) srcb = QGroupBox(_('Pick changeset')) srcb.setLayout(QVBoxLayout()) srcb.layout().setContentsMargins(*(2,)*4) source = csinfo.create(self.repo, opts['rev'], style, withupdate=True) srcb.layout().addWidget(source) self.sourcecsinfo = source box.addWidget(srcb) sep = qtlib.LabeledSeparator(_('Options')) box.addWidget(sep) self.autoresolvechk = QCheckBox(_('Automatically resolve merge ' 'conflicts where possible')) box.addWidget(self.autoresolvechk) self._cmdlog = cmdui.LogWidget(self) self._cmdlog.hide() box.addWidget(self._cmdlog, 2) self._stbar = cmdui.ThgStatusBar(self) self._stbar.setSizeGripEnabled(False) self._stbar.linkActivated.connect(self.linkActivated) box.addWidget(self._stbar) bbox = QDialogButtonBox() self.cancelbtn = bbox.addButton(QDialogButtonBox.StandardButton.Cancel) self.cancelbtn.clicked.connect(self.reject) self.runbtn = bbox.addButton(_('Pick'), QDialogButtonBox.ButtonRole.ActionRole) self.runbtn.clicked.connect(self.runCommand) self.abortbtn = bbox.addButton(_('Abort'), QDialogButtonBox.ButtonRole.ActionRole) self.abortbtn.clicked.connect(self.abort) box.addWidget(bbox) self._wctxcleaner = wctxcleaner.WctxCleaner(repoagent, self) self._wctxcleaner.checkFinished.connect(self._onWctxCheckFinished) if self.checkResolve(): for w in (srcb, sep): w.setHidden(True) self._cmdlog.show() else: self._stbar.showMessage(_('Checking...')) self.abortbtn.setEnabled(False) self.runbtn.setEnabled(False) QTimer.singleShot(0, self._wctxcleaner.check) self.setMinimumWidth(480) self.setMaximumHeight(800) self.resize(0, 340) self.setWindowTitle(_('Pick - %s') % repoagent.displayName()) self._readSettings() @property def repo(self): return self._repoagent.rawRepo() def _readSettings(self) -> None: """Initialize widgets on this dialog from persistent storage. """ qs = QSettings() qs.beginGroup('pick') self.autoresolvechk.setChecked( self._repoagent.configBool('tortoisehg', 'autoresolve', qtlib.readBool(qs, 'autoresolve', True))) qs.endGroup() def _writeSettings(self) -> None: """Save the option widget states on this dialog to persistent storage. """ qs = QSettings() qs.beginGroup('pick') qs.setValue('autoresolve', self.autoresolvechk.isChecked()) qs.endGroup() @pyqtSlot(bool) def _onWctxCheckFinished(self, clean: bool) -> None: """The callback when the command to check that wdir is clean completes. """ if not clean: self.runbtn.setEnabled(False) txt = _('Before pick, you must ' 'commit, ' 'shelve to patch, ' 'or discard changes.') else: self.runbtn.setEnabled(True) txt = _('You may continue the pick') self._stbar.showMessage(txt) def runCommand(self) -> None: """The handler for clicking the operation action button. This issues the main command for the dialog, or ``--continue`` if there is an interrupted operation. """ self.runbtn.setEnabled(False) self.cancelbtn.setVisible(False) itool = 'merge' if self.autoresolvechk.isChecked() else 'fail' opts = {'config': 'ui.merge=internal:%s' % itool} if hglib.pick_in_progress(self.repo): opts['continue'] = True else: opts['rev'] = str(self.opts.get('rev')) cmdline = hglib.buildcmdargs('pick', **opts) sess = self._runCommand(cmdline) sess.commandFinished.connect(self._commandFinished) def abort(self) -> None: """The handler for clicking the Abort button. This issues a command to abort the interrupted operation. """ cmdline = hglib.buildcmdargs('pick', abort=True) sess = self._runCommand(cmdline) sess.commandFinished.connect(self._abortFinished) def _runCommand(self, cmdline: List[Text]) -> cmdcore.CmdSession: assert self._cmdsession.isFinished() self._cmdsession = sess = self._repoagent.runCommand(cmdline, self) sess.commandFinished.connect(self._stbar.clearProgress) sess.outputReceived.connect(self._cmdlog.appendLog) sess.progressReceived.connect(self._stbar.setProgress) cmdui.updateStatusMessage(self._stbar, sess) return sess @pyqtSlot(int) def _commandFinished(self, ret: int) -> None: """The callback when the main command (or ``--continue``) completes.""" # TODO since hg 2.6, pick will end with ret=1 in case of "unresolved # conflicts", so we can fine-tune checkResolve() later. if self.checkResolve() is False: msg = _('Pick is complete') if ret == 255: msg = _('Pick failed') self._cmdlog.show() # contains hint self._stbar.showMessage(msg, error=(ret == 255)) self._makeCloseButton() @pyqtSlot() def _abortFinished(self) -> None: """The callback when the abort command completes.""" if self.checkResolve() is False: self._stbar.showMessage(_('Pick aborted')) self._makeCloseButton() def _makeCloseButton(self) -> None: self.runbtn.setEnabled(True) self.runbtn.setText(_('Close')) self.runbtn.clicked.disconnect(self.runCommand) self.runbtn.clicked.connect(self.accept) def checkResolve(self) -> bool: for root, path, status in thgrepo.recursiveMergeStatus(self.repo): if status == b'u': txt = _('Pick generated merge conflicts that must ' 'be resolved') self.runbtn.setEnabled(False) break else: self.runbtn.setEnabled(True) txt = _('You may continue the pick') self._stbar.showMessage(txt) if hglib.pick_in_progress(self.repo): self.abortbtn.setEnabled(True) self.runbtn.setText('Continue') return True else: self.abortbtn.setEnabled(False) return False def linkActivated(self, cmd: Text) -> None: if cmd == 'resolve': dlg = resolve.ResolveDialog(self._repoagent, self) dlg.exec() self.checkResolve() else: self._wctxcleaner.runCleaner(cmd) def reject(self) -> None: """The handler for clicking the Cancel button. If the user confirms the cancellation, the operation is left in the interrupted state. """ if hglib.pick_in_progress(self.repo): main = _('Exiting with an unfinished pick is not recommended.') text = _('Consider aborting the pick first.') labels = ((QMessageBox.StandardButton.Yes, _('&Exit')), (QMessageBox.StandardButton.No, _('Cancel'))) if not qtlib.QuestionMsgBox(_('Confirm Exit'), main, text, labels=labels, parent=self): return super(PickDialog, self).reject() def done(self, r: int) -> None: self._writeSettings() super(PickDialog, self).done(r) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730809007.0 tortoisehg-6.9/tortoisehg/hgqt/postreview.py0000644000000000000000000003676414712406257020260 0ustar00rootroot# postreview.py - post review dialog for TortoiseHg # # Copyright 2011 Michael De Wildt # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. """A dialog to allow users to post a review to reviewboard https://www.reviewboard.org This dialog requires a fork of the review board mercurial plugin, maintained by mdelagra, that can be downloaded from: https://foss.heptapod.net/mercurial/tortoisehg/thg-build-deps/mercurial-reviewboard More information can be found at http://www.mikeyd.com.au/tortoisehg-reviewboard """ from __future__ import annotations from .qtcore import ( QSettings, QThread, QUrl, Qt, pyqtSlot, ) from .qtgui import ( QDesktopServices, QDialog, QKeySequence, QLineEdit, QShortcut, ) from mercurial import ( extensions, pycompat, scmutil, ) from ..util import hglib from ..util.i18n import _ from . import ( cmdcore, qtlib, ) from .hgemail import _ChangesetsModel from .postreview_ui import Ui_PostReviewDialog if hglib.TYPE_CHECKING: from typing import ( Dict, List, Optional, Sequence, Text, Union, ) from mercurial import ( ui as uimod, ) from .qtgui import ( QCloseEvent, QWidget, ) from .thgrepo import ( RepoAgent, ) class LoadReviewDataThread(QThread): def __init__ (self, dialog: "PostReviewDialog") -> None: super(LoadReviewDataThread, self).__init__(dialog) self.dialog = dialog def run(self) -> None: msg = None if not self.dialog.server: msg = _("Invalid Settings - The ReviewBoard server is not setup") elif not self.dialog.user: msg = _("Invalid Settings - Please provide your ReviewBoard username") else: rb = extensions.find(b"reviewboard") try: pwd = self.dialog.password #if we don't have a password send something here to skip #the cli getpass in the extension. We will set the password #later if not pwd: pwd = b"None" self.reviewboard = rb.make_rbclient(self.dialog.server, self.dialog.user, pwd) self.loadCombos() except rb.ReviewBoardError as e: msg = e.msg except TypeError: msg = _("Invalid reviewboard plugin. Please download the " "Mercurial reviewboard plugin version 3.5 or higher " "from the website below.\n\n %s") % \ u'https://foss.heptapod.net/mercurial/tortoisehg/thg-build-deps/mercurial-reviewboard' self.dialog.error_message = msg def loadCombos(self) -> None: #Get the index of a users previously selected repo id index = 0 count = 0 self.dialog.qui.progress_label.setText("Loading repositories...") for r in self.reviewboard.repositories(): if r.id == self.dialog.repo_id: index = count self.dialog.qui.repo_id_combo.addItem(str(r.id) + ": " + r.name) count += 1 if self.dialog.qui.repo_id_combo.count(): self.dialog.qui.repo_id_combo.setCurrentIndex(index) self.dialog.qui.progress_label.setText("Loading existing reviews...") for r in self.reviewboard.pending_user_requests(): summary = str(r.id) + ": " + r.summary[0:100] self.dialog.qui.review_id_combo.addItem(summary) if self.dialog.qui.review_id_combo.count(): self.dialog.qui.review_id_combo.setCurrentIndex(0) class PostReviewDialog(QDialog): """Dialog for sending patches to reviewboard""" def __init__(self, ui: uimod.ui, repoagent: RepoAgent, revs: Sequence[Union[bytes, int]], parent: Optional[QWidget] = None) -> None: super(PostReviewDialog, self).__init__(parent) self.setWindowFlags(self.windowFlags() & ~Qt.WindowType.WindowContextHelpButtonHint) self.ui = ui self._repoagent = repoagent self._cmdsession = cmdcore.nullCmdSession() self._cmdoutputs = [] self.error_message = None self.qui = Ui_PostReviewDialog() self.qui.setupUi(self) self.initChangesets(revs) self.readSettings() self.review_thread = LoadReviewDataThread(self) self.review_thread.finished.connect(self.errorPrompt) self.review_thread.start() QShortcut(QKeySequence('Ctrl+Return'), self, self.accept) QShortcut(QKeySequence('Ctrl+Enter'), self, self.accept) @property def repo(self): return self._repoagent.rawRepo() @pyqtSlot() def passwordPrompt(self) -> bool: pwd, ok = qtlib.getTextInput(self, _('Review Board'), _('Password:'), mode=QLineEdit.EchoMode.Password) if ok and pwd: self.password = hglib.fromunicode(pwd) return True else: self.password = None return False @pyqtSlot() def errorPrompt(self) -> None: self.qui.progress_bar.hide() self.qui.progress_label.hide() if self.error_message: qtlib.ErrorMsgBox(_('Review Board'), _('Error'), self.error_message) self.close() elif self.isValid(): self.qui.post_review_button.setEnabled(True) def closeEvent(self, event: QCloseEvent) -> None: if not self._cmdsession.isFinished(): self._cmdsession.abort() event.ignore() return # Dispose of the review data thread self.review_thread.terminate() self.review_thread.wait() self.writeSettings() super(PostReviewDialog, self).closeEvent(event) def readSettings(self) -> None: s = QSettings() self.restoreGeometry(qtlib.readByteArray(s, 'reviewboard/geom')) self.qui.publish_immediately_check.setChecked( qtlib.readBool(s, 'reviewboard/publish_immediately_check')) self.qui.outgoing_changes_check.setChecked( qtlib.readBool(s, 'reviewboard/outgoing_changes_check')) self.qui.branch_check.setChecked( qtlib.readBool(s, 'reviewboard/branch_check')) self.qui.update_fields.setChecked( qtlib.readBool(s, 'reviewboard/update_fields')) self.qui.summary_edit.addItems( qtlib.readStringList(s, 'reviewboard/summary_edit_history')) try: self.repo_id = int(self.repo.ui.config(b'reviewboard', b'repoid')) except Exception: self.repo_id = None if not self.repo_id: self.repo_id = qtlib.readInt(s, 'reviewboard/repo_id') self.server = self.repo.ui.config(b'reviewboard', b'server') self.user = self.repo.ui.config(b'reviewboard', b'user') self.password = self.repo.ui.config(b'reviewboard', b'password') self.browser = self.repo.ui.config(b'reviewboard', b'browser') def writeSettings(self) -> None: s = QSettings() s.setValue('reviewboard/geom', self.saveGeometry()) s.setValue('reviewboard/publish_immediately_check', self.qui.publish_immediately_check.isChecked()) s.setValue('reviewboard/branch_check', self.qui.branch_check.isChecked()) s.setValue('reviewboard/outgoing_changes_check', self.qui.outgoing_changes_check.isChecked()) s.setValue('reviewboard/update_fields', self.qui.update_fields.isChecked()) s.setValue('reviewboard/repo_id', self.getRepoId()) def itercombo(w): if w.currentText(): yield w.currentText() for i in pycompat.xrange(w.count()): if w.itemText(i) != w.currentText(): yield w.itemText(i) s.setValue('reviewboard/summary_edit_history', list(itercombo(self.qui.summary_edit))[:10]) def initChangesets(self, revs: Sequence[Union[bytes, int]], selected_revs: Optional[Sequence[int]] = None) -> None: def purerevs(revs: Sequence[Union[bytes, int]]) -> Sequence[int]: return [r for r in scmutil.revrange(self.repo, revs)] if selected_revs: selectedrevs = purerevs(selected_revs) else: selectedrevs = purerevs(revs) self._changesets = _ChangesetsModel(self.repo, # TODO: [':'] is inefficient revs=purerevs(revs or [b':']), selectedrevs=selectedrevs, parent=self) self.qui.changesets_view.setModel(self._changesets) @property def selectedRevs(self) -> List[int]: """Returns list of revisions to be sent""" return self._changesets.selectedrevs @property def allRevs(self) -> List[int]: """Returns list of revisions to be sent""" return self._changesets.revs def getRepoId(self) -> Text: comboText = self.qui.repo_id_combo.currentText().split(":") return comboText[0] def getReviewId(self) -> Text: comboText = self.qui.review_id_combo.currentText().split(":") return comboText[0] def getSummary(self) -> Text: comboText = self.qui.review_id_combo.currentText().split(":") return comboText[1] def postReviewOpts(self, **opts) -> Dict[Text, Union[bool, Text]]: """Generate opts for reviewboard by form values""" opts['outgoingchanges'] = self.qui.outgoing_changes_check.isChecked() opts['branch'] = self.qui.branch_check.isChecked() opts['publish'] = self.qui.publish_immediately_check.isChecked() if self.qui.tab_widget.currentIndex() == 1: opts["existing"] = self.getReviewId() opts['update'] = self.qui.update_fields.isChecked() opts['summary'] = self.getSummary() else: opts['repoid'] = self.getRepoId() opts['summary'] = self.qui.summary_edit.currentText() if len(self.selectedRevs) > 1: #Set the parent to the revision below the last one on the list #so all checked revisions are included in the request ctx = self.repo[self.selectedRevs[0]] opts['parent'] = str(ctx.p1().rev()) # Always use the upstream repo to determine the parent diff base # without the diff uploaded to review board dies opts['outgoing'] = True #Set the password just in case the user has opted to not save it opts['password'] = hglib.tounicode(self.password) return opts def isValid(self) -> bool: """Filled all required values?""" if not self.qui.repo_id_combo.currentText(): return False if self.qui.tab_widget.currentIndex() == 1: if not self.qui.review_id_combo.currentText(): return False if not self.allRevs: return False return True @pyqtSlot() def tabChanged(self) -> None: self.qui.post_review_button.setEnabled(self.isValid()) @pyqtSlot() def branchCheckToggle(self) -> None: if self.qui.branch_check.isChecked(): self.qui.outgoing_changes_check.setChecked(False) self.toggleOutgoingChangesets() @pyqtSlot() def outgoingChangesCheckToggle(self) -> None: if self.qui.outgoing_changes_check.isChecked(): self.qui.branch_check.setChecked(False) self.toggleOutgoingChangesets() def toggleOutgoingChangesets(self) -> None: branch = self.qui.branch_check.isChecked() outgoing = self.qui.outgoing_changes_check.isChecked() if branch or outgoing: self.initChangesets(self.allRevs, [self.selectedRevs.pop()]) self.qui.changesets_view.setEnabled(False) else: self.initChangesets(self.allRevs, self.allRevs) self.qui.changesets_view.setEnabled(True) def close(self) -> None: super(PostReviewDialog, self).close() def accept(self) -> None: if not self.isValid(): return if not self.password and not self.passwordPrompt(): return self.qui.progress_bar.show() self.qui.progress_label.setText("Posting Review...") self.qui.progress_label.show() def cmdargs(opts: Dict[Text, Union[bool, Text]]) -> List[Text]: args = [] for k, v in opts.items(): if isinstance(v, bool): if v: args.append('--%s' % k.replace('_', '-')) else: for e in hglib.isbasestring(v) and [v] or v: args += ['--%s' % k.replace('_', '-'), e] return args opts = self.postReviewOpts() revstr = str(self.selectedRevs.pop()) self.qui.post_review_button.setEnabled(False) self.qui.close_button.setEnabled(False) cmdline = ['postreview'] + cmdargs(opts) + [revstr] self._cmdsession = sess = self._repoagent.runCommand(cmdline, self) del self._cmdoutputs[:] sess.commandFinished.connect(self.onCompletion) sess.outputReceived.connect(self._captureOutput) @pyqtSlot() def onCompletion(self) -> None: self.qui.progress_bar.hide() self.qui.progress_label.hide() output = hglib.fromunicode(''.join(self._cmdoutputs), 'replace') saved = b'saved:' in output published = b'published:' in output if saved or published: if saved: url = hglib.tounicode(output.split(b'saved: ').pop().strip()) msg = _('Review draft posted to %s\n') % url else: url = output.split(b'published: ').pop().strip() url = hglib.tounicode(url) msg = _('Review published to %s\n') % url QDesktopServices.openUrl(QUrl(url)) qtlib.InfoMsgBox(_('Review Board'), _('Success'), msg, parent=self) else: error = output.split(b'abort: ').pop().strip() if error[:29] == b"HTTP Error: basic auth failed": if self.passwordPrompt(): self.accept() else: self.qui.post_review_button.setEnabled(True) self.qui.close_button.setEnabled(True) return else: qtlib.ErrorMsgBox(_('Review Board'), _('Error'), hglib.tounicode(error)) self.writeSettings() super(PostReviewDialog, self).accept() @pyqtSlot(str, str) def _captureOutput(self, msg: Text, label: Text) -> None: if label != 'control': self._cmdoutputs.append(msg) @pyqtSlot() def onSettingsButtonClicked(self) -> None: from tortoisehg.hgqt import settings if settings.SettingsDialog(parent=self, focus='reviewboard.server').exec(): # not use repo.configChanged because it can clobber user input # accidentally. self.repo.invalidateui() # force reloading config immediately self.readSettings() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/tortoisehg/hgqt/postreview.ui0000644000000000000000000002674314023111777020234 0ustar00rootroot PostReviewDialog 0 0 660 459 Review Board 16777215 110 0 Post Review Repository ID: repo_id_combo 0 0 false QComboBox::InsertAtTop Summary: summary_edit 0 0 true QComboBox::InsertAtTop Update Review Review ID: review_id_combo 0 0 false QComboBox::InsertAtTop Update the fields of this existing request Options Create diff with all outgoing changes Create diff with all changes on this branch Publish request immediately true Changesets 0 false false false false &Settings false Qt::Horizontal 40 20 200 0 true 0 0 -1 Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter true Qt::Horizontal false QProgressBar::TopToBottom %p% Connecting to Review Board... Qt::Horizontal 0 20 false Post &Review false true &Close true changesets_view post_review_button settings_button post_review_button clicked() PostReviewDialog accept() 20 20 20 20 settings_button clicked() PostReviewDialog onSettingsButtonClicked() 20 20 20 20 close_button clicked() PostReviewDialog close() 20 20 20 20 outgoing_changes_check toggled(bool) PostReviewDialog outgoingChangesCheckToggle() 20 20 20 20 branch_check toggled(bool) PostReviewDialog branchCheckToggle() 20 20 20 20 tab_widget currentChanged(int) PostReviewDialog tabChanged() 20 20 20 20 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033565.0 tortoisehg-6.9/tortoisehg/hgqt/postreview_ui.py0000644000000000000000000002603614742203535020741 0ustar00rootroot# -*- coding: utf-8 -*- # Form implementation generated from reading ui file '/home/yuya/work/hghacks/thg/tortoisehg/hgqt/postreview.ui' # # Created by: PyQt5 UI code generator 5.15.11 # # WARNING: Any manual changes made to this file will be lost when pyuic5 is # run again. Do not edit this file unless you know what you are doing. from tortoisehg.util.i18n import _ from PyQt5 import QtCore, QtGui, QtWidgets class Ui_PostReviewDialog(object): def setupUi(self, PostReviewDialog): PostReviewDialog.setObjectName("PostReviewDialog") PostReviewDialog.resize(660, 459) self.verticalLayout_5 = QtWidgets.QVBoxLayout(PostReviewDialog) self.verticalLayout_5.setObjectName("verticalLayout_5") self.verticalLayout = QtWidgets.QVBoxLayout() self.verticalLayout.setObjectName("verticalLayout") self.tab_widget = QtWidgets.QTabWidget(PostReviewDialog) self.tab_widget.setMaximumSize(QtCore.QSize(16777215, 110)) self.tab_widget.setObjectName("tab_widget") self.post_review_tab = QtWidgets.QWidget() self.post_review_tab.setObjectName("post_review_tab") self.formLayout_2 = QtWidgets.QFormLayout(self.post_review_tab) self.formLayout_2.setObjectName("formLayout_2") self.repo_id_label = QtWidgets.QLabel(self.post_review_tab) self.repo_id_label.setObjectName("repo_id_label") self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.repo_id_label) self.repo_id_combo = QtWidgets.QComboBox(self.post_review_tab) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.repo_id_combo.sizePolicy().hasHeightForWidth()) self.repo_id_combo.setSizePolicy(sizePolicy) self.repo_id_combo.setEditable(False) self.repo_id_combo.setInsertPolicy(QtWidgets.QComboBox.InsertAtTop) self.repo_id_combo.setObjectName("repo_id_combo") self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.repo_id_combo) self.summary_label = QtWidgets.QLabel(self.post_review_tab) self.summary_label.setObjectName("summary_label") self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.summary_label) self.summary_edit = QtWidgets.QComboBox(self.post_review_tab) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.summary_edit.sizePolicy().hasHeightForWidth()) self.summary_edit.setSizePolicy(sizePolicy) self.summary_edit.setEditable(True) self.summary_edit.setInsertPolicy(QtWidgets.QComboBox.InsertAtTop) self.summary_edit.setObjectName("summary_edit") self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.summary_edit) self.tab_widget.addTab(self.post_review_tab, "") self.update_review_tab = QtWidgets.QWidget() self.update_review_tab.setObjectName("update_review_tab") self.formLayout_3 = QtWidgets.QFormLayout(self.update_review_tab) self.formLayout_3.setObjectName("formLayout_3") self.review_id_label = QtWidgets.QLabel(self.update_review_tab) self.review_id_label.setObjectName("review_id_label") self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.review_id_label) self.review_id_combo = QtWidgets.QComboBox(self.update_review_tab) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.review_id_combo.sizePolicy().hasHeightForWidth()) self.review_id_combo.setSizePolicy(sizePolicy) self.review_id_combo.setEditable(False) self.review_id_combo.setInsertPolicy(QtWidgets.QComboBox.InsertAtTop) self.review_id_combo.setObjectName("review_id_combo") self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.review_id_combo) self.update_fields = QtWidgets.QCheckBox(self.update_review_tab) self.update_fields.setObjectName("update_fields") self.formLayout_3.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.update_fields) self.tab_widget.addTab(self.update_review_tab, "") self.verticalLayout.addWidget(self.tab_widget) self.options_group = QtWidgets.QGroupBox(PostReviewDialog) self.options_group.setObjectName("options_group") self.gridLayout = QtWidgets.QGridLayout(self.options_group) self.gridLayout.setObjectName("gridLayout") self.outgoing_changes_check = QtWidgets.QCheckBox(self.options_group) self.outgoing_changes_check.setObjectName("outgoing_changes_check") self.gridLayout.addWidget(self.outgoing_changes_check, 0, 0, 1, 1) self.branch_check = QtWidgets.QCheckBox(self.options_group) self.branch_check.setObjectName("branch_check") self.gridLayout.addWidget(self.branch_check, 0, 1, 1, 1) self.publish_immediately_check = QtWidgets.QCheckBox(self.options_group) self.publish_immediately_check.setObjectName("publish_immediately_check") self.gridLayout.addWidget(self.publish_immediately_check, 2, 0, 1, 1) self.verticalLayout.addWidget(self.options_group) self.changesets_box = QtWidgets.QGroupBox(PostReviewDialog) self.changesets_box.setEnabled(True) self.changesets_box.setToolTip("") self.changesets_box.setObjectName("changesets_box") self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.changesets_box) self.verticalLayout_3.setObjectName("verticalLayout_3") self.changesets_view = QtWidgets.QTreeView(self.changesets_box) self.changesets_view.setIndentation(0) self.changesets_view.setRootIsDecorated(False) self.changesets_view.setItemsExpandable(False) self.changesets_view.setObjectName("changesets_view") self.changesets_view.header().setHighlightSections(False) self.changesets_view.header().setSortIndicatorShown(False) self.verticalLayout_3.addWidget(self.changesets_view) self.verticalLayout.addWidget(self.changesets_box) self.verticalLayout_5.addLayout(self.verticalLayout) self.dialogbuttons_layout = QtWidgets.QHBoxLayout() self.dialogbuttons_layout.setObjectName("dialogbuttons_layout") self.settings_button = QtWidgets.QPushButton(PostReviewDialog) self.settings_button.setToolTip("") self.settings_button.setDefault(False) self.settings_button.setObjectName("settings_button") self.dialogbuttons_layout.addWidget(self.settings_button) spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.dialogbuttons_layout.addItem(spacerItem) self.progress_bar = QtWidgets.QProgressBar(PostReviewDialog) self.progress_bar.setMinimumSize(QtCore.QSize(200, 0)) font = QtGui.QFont() font.setKerning(True) self.progress_bar.setFont(font) self.progress_bar.setMinimum(0) self.progress_bar.setMaximum(0) self.progress_bar.setProperty("value", -1) self.progress_bar.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) self.progress_bar.setTextVisible(True) self.progress_bar.setOrientation(QtCore.Qt.Horizontal) self.progress_bar.setInvertedAppearance(False) self.progress_bar.setTextDirection(QtWidgets.QProgressBar.TopToBottom) self.progress_bar.setObjectName("progress_bar") self.dialogbuttons_layout.addWidget(self.progress_bar) self.progress_label = QtWidgets.QLabel(PostReviewDialog) self.progress_label.setObjectName("progress_label") self.dialogbuttons_layout.addWidget(self.progress_label) spacerItem1 = QtWidgets.QSpacerItem(0, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.dialogbuttons_layout.addItem(spacerItem1) self.post_review_button = QtWidgets.QPushButton(PostReviewDialog) self.post_review_button.setEnabled(False) self.post_review_button.setDefault(False) self.post_review_button.setObjectName("post_review_button") self.dialogbuttons_layout.addWidget(self.post_review_button) self.close_button = QtWidgets.QPushButton(PostReviewDialog) self.close_button.setEnabled(True) self.close_button.setDefault(True) self.close_button.setObjectName("close_button") self.dialogbuttons_layout.addWidget(self.close_button) self.verticalLayout_5.addLayout(self.dialogbuttons_layout) self.repo_id_label.setBuddy(self.repo_id_combo) self.summary_label.setBuddy(self.summary_edit) self.review_id_label.setBuddy(self.review_id_combo) self.retranslateUi(PostReviewDialog) self.tab_widget.setCurrentIndex(0) self.post_review_button.clicked.connect(PostReviewDialog.accept) # type: ignore self.settings_button.clicked.connect(PostReviewDialog.onSettingsButtonClicked) # type: ignore self.close_button.clicked.connect(PostReviewDialog.close) # type: ignore self.outgoing_changes_check.toggled['bool'].connect(PostReviewDialog.outgoingChangesCheckToggle) # type: ignore self.branch_check.toggled['bool'].connect(PostReviewDialog.branchCheckToggle) # type: ignore self.tab_widget.currentChanged['int'].connect(PostReviewDialog.tabChanged) # type: ignore QtCore.QMetaObject.connectSlotsByName(PostReviewDialog) PostReviewDialog.setTabOrder(self.changesets_view, self.post_review_button) PostReviewDialog.setTabOrder(self.post_review_button, self.settings_button) def retranslateUi(self, PostReviewDialog): _translate = QtCore.QCoreApplication.translate PostReviewDialog.setWindowTitle(_("Review Board")) self.repo_id_label.setText(_("Repository ID:")) self.summary_label.setText(_("Summary:")) self.tab_widget.setTabText(self.tab_widget.indexOf(self.post_review_tab), _("Post Review")) self.review_id_label.setText(_("Review ID:")) self.update_fields.setText(_("Update the fields of this existing request")) self.tab_widget.setTabText(self.tab_widget.indexOf(self.update_review_tab), _("Update Review")) self.options_group.setTitle(_("Options")) self.outgoing_changes_check.setText(_("Create diff with all outgoing changes")) self.branch_check.setText(_("Create diff with all changes on this branch")) self.publish_immediately_check.setText(_("Publish request immediately")) self.changesets_box.setTitle(_("Changesets")) self.settings_button.setText(_("&Settings")) self.progress_bar.setFormat(_("%p%")) self.progress_label.setText(_("Connecting to Review Board...")) self.post_review_button.setText(_("Post &Review")) self.close_button.setText(_("&Close")) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1736945585.0 tortoisehg-6.9/tortoisehg/hgqt/prune.py0000644000000000000000000001077514741727661017203 0ustar00rootroot# prune.py - simple dialog to prune revisions # # Copyright 2014 Yuya Nishihara # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations from .qtcore import ( QTimer, pyqtSlot, ) from .qtgui import ( QCheckBox, QComboBox, QFormLayout, QSizePolicy, QVBoxLayout, ) from mercurial import ( pycompat, ) from ..util import hglib from ..util.i18n import _ from . import ( cmdcore, cmdui, cslist, qtlib, ) if hglib.TYPE_CHECKING: from typing import ( Optional, Text, ) from .qtgui import ( QWidget, ) from .thgrepo import ( RepoAgent, ) class PruneWidget(cmdui.AbstractCmdWidget): def __init__(self, repoagent: RepoAgent, parent: Optional[QWidget] = None) -> None: super(PruneWidget, self).__init__(parent) self._repoagent = repoagent self.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding) vbox = QVBoxLayout(self) form = QFormLayout() vbox.addLayout(form) self._revedit = w = QComboBox(self) w.setEditable(True) qtlib.allowCaseChangingInput(w) w.installEventFilter(qtlib.BadCompletionBlocker(w)) w.activated.connect(self._updateRevset) w.lineEdit().textEdited.connect(self._onRevsetEdited) form.addRow(_('Target:'), w) optbox = QVBoxLayout() form.addRow('', optbox) self._optchks = {} for name, text in [ ('keep', _('Do not modify working copy (-k/--keep)')), ]: self._optchks[name] = w = QCheckBox(text, self) optbox.addWidget(w) repo = repoagent.rawRepo() self._cslist = w = cslist.ChangesetList(repo, self) vbox.addWidget(w) self._querysess = cmdcore.nullCmdSession() # slightly longer delay than common keyboard auto-repeat rate self._querylater = QTimer(self, interval=550, singleShot=True) self._querylater.timeout.connect(self._updateRevset) self._revedit.setFocus() def revset(self) -> Text: return self._revedit.currentText() def setRevset(self, revspec: Text) -> None: if self.revset() == revspec: return w = self._revedit i = w.findText(revspec) if i < 0: i = 0 w.insertItem(i, revspec) w.setCurrentIndex(i) self._updateRevset() @pyqtSlot() def _onRevsetEdited(self) -> None: self._querysess.abort() self._querylater.start() self.commandChanged.emit() @pyqtSlot() def _updateRevset(self) -> None: self._querysess.abort() self._querylater.stop() cmdline = hglib.buildcmdargs('log', rev=self.revset(), T='{rev}\n') self._querysess = sess = self._repoagent.runCommand(cmdline, self) sess.setCaptureOutput(True) sess.commandFinished.connect(self._onQueryFinished) self.commandChanged.emit() @pyqtSlot(int) def _onQueryFinished(self, ret: int) -> None: sess = self._querysess if not sess.isFinished() or self._querylater.isActive(): # new query is already or about to be running return if ret == 0: data = qtlib.qbytearray_or_bytes_to_bytes(sess.readAll()) revs = pycompat.maplist(int, data.splitlines()) else: revs = [] self._cslist.updateItems(revs) self.commandChanged.emit() def canRunCommand(self) -> bool: sess = self._querysess return (sess.isFinished() and sess.exitCode() == 0 and not self._querylater.isActive()) def runCommand(self) -> cmdcore.CmdSession: opts = {} opts.update((n, w.isChecked()) for n, w in self._optchks.items()) cmdline = hglib.buildcmdargs('prune', rev=self.revset(), **opts) return self._repoagent.runCommand(cmdline, self) def createPruneDialog(repoagent: RepoAgent, revspec: Text, parent: Optional[QWidget] = None) -> cmdui.CmdControlDialog: dlg = cmdui.CmdControlDialog(parent) dlg.setWindowIcon(qtlib.geticon('edit-cut')) dlg.setWindowTitle(_('Prune - %s') % repoagent.displayName()) dlg.setObjectName('prune') dlg.setRunButtonText(_('&Prune')) cw = PruneWidget(repoagent, dlg) cw.setRevset(revspec) dlg.setCommandWidget(cw) return dlg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/purge.py0000644000000000000000000002315614672254332017162 0ustar00rootroot# purge.py - working copy purge dialog, based on Mercurial purge extension # # Copyright 2010 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os import shutil import stat from .qtcore import ( QSettings, QThread, QTimer, Qt, pyqtSignal, pyqtSlot, ) from .qtgui import ( QApplication, QCheckBox, QDialog, QDialogButtonBox, QVBoxLayout, ) from hgext.largefiles import ( lfutil, ) from mercurial import ( hg, scmutil, ) from ..util import hglib from ..util.i18n import _, ngettext from . import ( cmdui, qtlib, ) class PurgeDialog(QDialog): progress = pyqtSignal(str, object, str, str, object) showMessage = pyqtSignal(str) def __init__(self, repoagent, parent=None): QDialog.__init__(self, parent) f = self.windowFlags() self.setWindowFlags(f & ~Qt.WindowType.WindowContextHelpButtonHint) self._repoagent = repoagent layout = QVBoxLayout() layout.setContentsMargins(0, 0, 0, 0) layout.setSpacing(0) self.setLayout(layout) toplayout = QVBoxLayout() toplayout.setContentsMargins(10, 10, 10, 10) toplayout.setSpacing(5) layout.addLayout(toplayout) cb = QCheckBox(_('No unknown files found')) cb.setChecked(False) cb.setEnabled(False) toplayout.addWidget(cb) self.ucb = cb cb = QCheckBox(_('No ignored files found')) cb.setChecked(False) cb.setEnabled(False) toplayout.addWidget(cb) self.icb = cb cb = QCheckBox(_('No trash files found')) cb.setChecked(False) cb.setEnabled(False) toplayout.addWidget(cb) self.tcb = cb self.foldercb = QCheckBox(_('Delete empty folders')) self.foldercb.setChecked(True) toplayout.addWidget(self.foldercb) self.hgfilecb = QCheckBox(_('Preserve files beginning with .hg')) self.hgfilecb.setChecked(True) toplayout.addWidget(self.hgfilecb) bb = QDialogButtonBox(QDialogButtonBox.StandardButton.Ok|QDialogButtonBox.StandardButton.Cancel) bb.accepted.connect(self.accept) bb.rejected.connect(self.reject) self.bb = bb toplayout.addStretch() toplayout.addWidget(bb) self.stbar = cmdui.ThgStatusBar(self) self.progress.connect(self.stbar.progress) self.showMessage.connect(self.stbar.showMessage) layout.addWidget(self.stbar) self.setWindowTitle(_('%s - purge') % repoagent.displayName()) self.setWindowIcon(qtlib.geticon('hg-purge')) self.bb.setEnabled(False) self.progress.emit(*cmdui.startProgress(_('Checking'), '...')) s = QSettings() desktopgeom = QApplication.primaryScreen().availableGeometry() self.resize(desktopgeom.size() * 0.25) self.restoreGeometry(qtlib.readByteArray(s, 'purge/geom')) self.th = None QTimer.singleShot(0, self.checkStatus) @property def repo(self): return self._repoagent.rawRepo() def checkStatus(self): repo = self.repo class CheckThread(QThread): def __init__(self, parent): QThread.__init__(self, parent) self.files = (None, None) self.error = None def run(self): try: with lfutil.lfstatus(repo): stat = repo.status(ignored=True, unknown=True) trashcan = repo.vfs.join(b'Trashcan') if os.path.isdir(trashcan): trash = os.listdir(trashcan) else: trash = [] self.files = stat.unknown, stat.ignored, trash except Exception as e: self.error = hglib.exception_str(e) self.th = CheckThread(self) self.th.finished.connect(self._checkCompleted) self.th.start() @pyqtSlot() def _checkCompleted(self): self.th.wait() self.files = self.th.files self.bb.setEnabled(True) self.progress.emit(*cmdui.stopProgress(_('Checking'))) if self.th.error: self.showMessage.emit(self.th.error) else: self.showMessage.emit(_('Ready to purge.')) U, I, T = self.files if U: self.ucb.setText(ngettext( 'Delete %d unknown file', 'Delete %d unknown files', len(U)) % len(U)) self.ucb.setChecked(True) self.ucb.setEnabled(True) if I: self.icb.setText(ngettext( 'Delete %d ignored file', 'Delete %d ignored files', len(I)) % len(I)) self.icb.setChecked(True) self.icb.setEnabled(True) if T: self.tcb.setText(ngettext( 'Delete %d file in .hg/Trashcan', 'Delete %d files in .hg/Trashcan', len(T)) % len(T)) self.tcb.setChecked(True) self.tcb.setEnabled(True) def reject(self): if self.th and self.th.isRunning(): return s = QSettings() s.setValue('purge/geom', self.saveGeometry()) super(PurgeDialog, self).reject() def accept(self): unknown = self.ucb.isChecked() ignored = self.icb.isChecked() trash = self.tcb.isChecked() delfolders = self.foldercb.isChecked() keephg = self.hgfilecb.isChecked() if not (unknown or ignored or trash or delfolders): QDialog.accept(self) return if not qtlib.QuestionMsgBox(_('Confirm file deletions'), _('Are you sure you want to delete these files and/or folders?'), parent=self): return opts = dict(unknown=unknown, ignored=ignored, trash=trash, delfolders=delfolders, keephg=keephg) self.th = PurgeThread(self.repo, opts, self) self.th.progress.connect(self.progress) self.th.showMessage.connect(self.showMessage) self.th.finished.connect(self._purgeCompleted) self.th.start() @pyqtSlot() def _purgeCompleted(self): self.th.wait() F = self.th.failures if F: qtlib.InfoMsgBox(_('Deletion failures'), ngettext( 'Unable to delete %d file or folder', 'Unable to delete %d files or folders', len(F)) % len(F), parent=self) if F is not None: self.reject() class PurgeThread(QThread): progress = pyqtSignal(str, object, str, str, object) showMessage = pyqtSignal(str) def __init__(self, repo, opts, parent): super(PurgeThread, self).__init__(parent) self.failures = 0 self.root = repo.root self.opts = opts def run(self): try: self.failures = self.purge(self.root, self.opts) except Exception as e: self.failures = None self.showMessage.emit(hglib.exception_str(e)) def purge(self, root, opts): repo = hg.repository(hglib.loadui(), self.root) keephg = opts['keephg'] directories = [] failures = [] if opts['trash']: self.showMessage.emit(_('Deleting trash folder...')) trashcan = repo.vfs.join(b'Trashcan') try: shutil.rmtree(trashcan) except EnvironmentError: failures.append(trashcan) self.showMessage.emit('') match = scmutil.matchall(repo) match.explicitdir = match.traversedir = directories.append with lfutil.lfstatus(repo): status = repo.status(match=match, ignored=opts['ignored'], unknown=opts['unknown'], clean=False) files = [] if opts['unknown']: files.extend(status.unknown) if opts['ignored']: files.extend(status.ignored) def remove(remove_func, name): try: if keephg and name.startswith(b'.hg'): return remove_func(repo.wjoin(name)) except EnvironmentError: failures.append(name) def removefile(path): try: os.remove(path) except OSError: # read-only files cannot be unlinked under Windows s = os.stat(path) if (s.st_mode & stat.S_IWRITE) != 0: raise os.chmod(path, stat.S_IMODE(s.st_mode) | stat.S_IWRITE) os.remove(path) for i, f in enumerate(sorted(files)): data = ('deleting', i, hglib.tounicode(f), '', len(files)) self.progress.emit(*data) remove(removefile, f) data = ('deleting', None, '', '', len(files)) self.progress.emit(*data) self.showMessage.emit(_('Deleted %d files') % len(files)) if opts['delfolders'] and directories: for i, f in enumerate(sorted(directories, reverse=True)): if match(f) and not os.listdir(repo.wjoin(f)): data = ('rmdir', i, hglib.tounicode(f), '', len(directories)) self.progress.emit(*data) remove(os.rmdir, f) data = ('rmdir', None, '', '', len(directories)) self.progress.emit(*data) self.showMessage.emit(_('Deleted %d files and %d folders') % ( len(files), len(directories))) return failures ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/qdelete.py0000644000000000000000000000361014672254332017454 0ustar00rootroot# qdelete.py - QDelete dialog for TortoiseHg # # Copyright 2010 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations from .qtcore import ( QSettings, Qt, ) from .qtgui import ( QCheckBox, QDialog, QDialogButtonBox, QLabel, QVBoxLayout, ) from ..util.i18n import _ from . import qtlib class QDeleteDialog(QDialog): def __init__(self, patches, parent): super(QDeleteDialog, self).__init__(parent) self.setWindowTitle(_('Delete Patches')) self.setWindowIcon(qtlib.geticon('hg-qdelete')) self.setWindowFlags(self.windowFlags() & ~Qt.WindowType.WindowContextHelpButtonHint) self.setLayout(QVBoxLayout()) msg = _('Remove patches from queue?') patchesu = u'
                                                                                                          • '.join(patches) lbl = QLabel(u'%s
                                                                                                            • %s
                                                                                                            ' % (msg, patchesu)) self.layout().addWidget(lbl) self._keepchk = QCheckBox(_('Keep patch files')) self.layout().addWidget(self._keepchk) bbox = QDialogButtonBox(QDialogButtonBox.StandardButton.Ok|QDialogButtonBox.StandardButton.Cancel) bbox.accepted.connect(self.accept) bbox.rejected.connect(self.reject) self.layout().addWidget(bbox) self._readSettings() def _readSettings(self): qs = QSettings() qs.beginGroup('qdelete') self._keepchk.setChecked(qtlib.readBool(qs, 'keep', True)) qs.endGroup() def _writeSettings(self): qs = QSettings() qs.beginGroup('qdelete') qs.setValue('keep', self._keepchk.isChecked()) qs.endGroup() def accept(self): self._writeSettings() super(QDeleteDialog, self).accept() def options(self): return {'keep': self._keepchk.isChecked()} ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/qfold.py0000644000000000000000000001272314672254332017143 0ustar00rootroot# qfold.py - QFold dialog for TortoiseHg # # Copyright 2010 Steve Borho # Copyright 2010 Johan Samyn # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations from typing import ( List, ) from .qtcore import ( QSettings, Qt, pyqtSlot, ) from .qtgui import ( QCheckBox, QDialog, QDialogButtonBox, QGroupBox, QLabel, QListView, QListWidget, QListWidgetItem, QShortcut, QTextEdit, QVBoxLayout, ) from hgext import mq from mercurial import ( pycompat, ) from ..util import hglib from ..util.i18n import _ from . import ( messageentry, qscilib, qtlib, ) class QFoldDialog(QDialog): def __init__(self, repoagent, patches, parent): super(QFoldDialog, self).__init__(parent) self._repoagent = repoagent self.setWindowTitle(_('Patch fold - %s') % repoagent.displayName()) self.setWindowIcon(qtlib.geticon('hg-qfold')) f = self.windowFlags() self.setWindowFlags(f & ~Qt.WindowType.WindowContextHelpButtonHint | Qt.WindowType.WindowMaximizeButtonHint) self.setLayout(QVBoxLayout()) mlbl = QLabel(_('New patch message:')) self.layout().addWidget(mlbl) self.msgte = messageentry.MessageEntry(self) self.msgte.installEventFilter(qscilib.KeyPressInterceptor(self)) self.layout().addWidget(self.msgte) self.keepchk = QCheckBox(_('Keep patch files')) self.keepchk.setChecked(True) self.layout().addWidget(self.keepchk) q = self.repo.mq q.parseseries() patches = [p for p in q.series if p in patches] class PatchListWidget(QListWidget): def __init__(self, parent): QListWidget.__init__(self, parent) self.setCurrentRow(0) def focusInEvent(self, event): i = self.item(self.currentRow()) if i: self.parent().parent().showSummary(i) QListWidget.focusInEvent(self, event) def dropEvent(self, event): QListWidget.dropEvent(self, event) spp = self.parent().parent() spp.msgte.setText(spp.composeMsg(self.getPatchList())) def getPatchList(self): return [hglib.fromunicode(self.item(i).text()) \ for i in pycompat.xrange(0, self.count())] ugb = QGroupBox(_('Patches to fold')) ugb.setLayout(QVBoxLayout()) ugb.layout().setContentsMargins(*(0,)*4) self.ulw = PatchListWidget(self) self.ulw.setDragDropMode(QListView.DragDropMode.InternalMove) ugb.layout().addWidget(self.ulw) self.ulw.currentItemChanged.connect(lambda: self.showSummary(self.ulw.item(self.ulw.currentRow()))) self.layout().addWidget(ugb) for p in patches: item = QListWidgetItem(hglib.tounicode(p)) item.setFlags(Qt.ItemFlag.ItemIsSelectable | Qt.ItemFlag.ItemIsEnabled | Qt.ItemFlag.ItemIsDragEnabled) self.ulw.addItem(item) slbl = QLabel(_('Summary:')) self.layout().addWidget(slbl) self.summ = QTextEdit() self.summ.setFont(qtlib.getfont('fontcomment').font()) self.summ.setMaximumHeight(80) self.summ.setReadOnly(True) self.summ.setFocusPolicy(Qt.FocusPolicy.NoFocus) self.layout().addWidget(self.summ) bbox = QDialogButtonBox(QDialogButtonBox.StandardButton.Ok|QDialogButtonBox.StandardButton.Cancel) bbox.accepted.connect(self.accept) bbox.rejected.connect(self.reject) self.layout().addWidget(bbox) self.bbox = bbox QShortcut('Ctrl+Return', self, self.accept) QShortcut('Ctrl+Enter', self, self.accept) self._repoagent.configChanged.connect(self.configChanged) self._readsettings() self.msgte.setText(self.composeMsg(patches)) self.msgte.refresh(self.repo) @property def repo(self): return self._repoagent.rawRepo() def showSummary(self, item): patchname = hglib.fromunicode(item.text()) txt = '\n'.join(mq.patchheader(self.repo.mq.join(patchname)).message) self.summ.setText(hglib.tounicode(txt)) def composeMsg(self, patches): descs = [hglib.revsymbol(self.repo, b'qtip').description()] # lookup of unapplied patches is handled by thgrepo hack descs.extend(self.repo[p].description() for p in patches) return u'\n* * *\n'.join(map(hglib.tounicode, descs)) @pyqtSlot() def configChanged(self): '''Repository is reporting its config files have changed''' self.msgte.refresh(self.repo) def options(self): return {'keep': self.keepchk.isChecked(), 'message': self.msgte.text()} def patches(self) -> List[str]: return hglib.to_unicode_list(self.ulw.getPatchList()) def accept(self): self._writesettings() QDialog.accept(self) def closeEvent(self, event): self._writesettings() super(QFoldDialog, self).closeEvent(event) def _readsettings(self): s = QSettings() self.restoreGeometry(qtlib.readByteArray(s, 'qfold/geom')) def _writesettings(self): s = QSettings() s.setValue('qfold/geom', self.saveGeometry()) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/qsci.py0000644000000000000000000000107114672254332016767 0ustar00rootroot# qsci.py - PyQt5/6 compatibility wrapper # # Copyright 2015 Yuya Nishihara # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. """Thin compatibility wrapper for Qsci""" from __future__ import annotations from .qtcore import QT_API if QT_API == 'PyQt6': from PyQt6.Qsci import * # pytype: disable=import-error elif QT_API == 'PyQt5': from PyQt5.Qsci import * # pytype: disable=import-error else: raise RuntimeError('unsupported Qt API: %s' % QT_API) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1732624256.0 tortoisehg-6.9/tortoisehg/hgqt/qscilib.py0000644000000000000000000010115014721337600017450 0ustar00rootroot# qscilib.py - Utility codes for QsciScintilla # # Copyright 2010 Steve Borho # Copyright 2010 Yuya Nishihara # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os import re import weakref from .qsci import ( QSCINTILLA_VERSION, QsciLexerProperties, QsciScintilla, ) from .qtcore import ( QObject, QEvent, QFile, QFileDevice, QIODevice, QRect, QSettings, QT_VERSION, Qt, pyqtSignal, pyqtSlot, ) from .qtgui import ( QAction, QApplication, QCheckBox, QDialog, QDialogButtonBox, QInputMethodEvent, QKeyEvent, QKeySequence, QLineEdit, QMenu, QToolBar, QVBoxLayout, ) from ..util import hglib from ..util.i18n import _ from . import qtlib # indicator for highlighting preedit text of input method _IM_PREEDIT_INDIC_ID = QsciScintilla.INDIC_MAX # indicator for keyword highlighting _HIGHLIGHT_INDIC_ID = _IM_PREEDIT_INDIC_ID - 1 STYLE_FILEVIEW_MARGIN = QsciScintilla.STYLE_LASTPREDEFINED + 1 class _SciImSupport(object): """Patch for QsciScintilla to implement improved input method support See https://doc.qt.io/qt-4.8/qinputmethodevent.html """ def __init__(self, sci): self._sci = weakref.proxy(sci) self._preeditpos = (0, 0) # (line, index) where preedit text starts self._preeditlen = 0 self._preeditcursorpos = 0 # relative pos where preedit cursor exists self._undoactionbegun = False sci.SendScintilla(QsciScintilla.SCI_INDICSETSTYLE, _IM_PREEDIT_INDIC_ID, QsciScintilla.INDIC_PLAIN) def removepreedit(self): """Remove the previous preedit text original pos: preedit cursor final pos: target cursor """ l, i = self._sci.getCursorPosition() i -= self._preeditcursorpos self._preeditcursorpos = 0 try: self._sci.setSelection( self._preeditpos[0], self._preeditpos[1], self._preeditpos[0], self._preeditpos[1] + self._preeditlen) self._sci.removeSelectedText() finally: self._sci.setCursorPosition(l, i) def commitstr(self, start, repllen, commitstr): """Remove the repl string followed by insertion of the commit string original pos: target cursor final pos: end of committed text (= start of preedit text) """ l, i = self._sci.getCursorPosition() i += start self._sci.setSelection(l, i, l, i + repllen) self._sci.removeSelectedText() self._sci.insert(commitstr) self._sci.setCursorPosition(l, i + len(commitstr)) if commitstr: self.endundo() def insertpreedit(self, text): """Insert preedit text original pos: start of preedit text final pos: start of preedit text (unchanged) """ if text and not self._preeditlen: self.beginundo() l, i = self._sci.getCursorPosition() self._sci.insert(text) self._updatepreeditpos(l, i, len(text)) if not self._preeditlen: self.endundo() def movepreeditcursor(self, pos): """Move the cursor to the relative pos inside preedit text""" self._preeditcursorpos = min(pos, self._preeditlen) l, i = self._preeditpos self._sci.setCursorPosition(l, i + self._preeditcursorpos) def beginundo(self): if self._undoactionbegun: return self._sci.beginUndoAction() self._undoactionbegun = True def endundo(self): if not self._undoactionbegun: return self._sci.endUndoAction() self._undoactionbegun = False def _updatepreeditpos(self, l, i, len): """Update the indicator and internal state for preedit text""" self._sci.SendScintilla(QsciScintilla.SCI_SETINDICATORCURRENT, _IM_PREEDIT_INDIC_ID) self._preeditpos = (l, i) self._preeditlen = len if len <= 0: # have problem on sci return p = self._sci.positionFromLineIndex(*self._preeditpos) q = self._sci.positionFromLineIndex(self._preeditpos[0], self._preeditpos[1] + len) self._sci.SendScintilla(QsciScintilla.SCI_INDICATORFILLRANGE, p, q - p) # q - p != len class ScintillaCompat(QsciScintilla): """Scintilla widget with compatibility patches""" # QScintilla 2.8.4 still can't handle input method events properly. # For example, it fails to delete the last preedit text by ^H, and # editing position goes wrong. So we sticks to our version. if True: def __init__(self, parent=None): super(ScintillaCompat, self).__init__(parent) self._imsupport = _SciImSupport(self) def inputMethodQuery(self, query): if query == Qt.InputMethodQuery.ImCursorRectangle: # a rectangle (in viewport coords) including the cursor l, i = self.getCursorPosition() p = self.positionFromLineIndex(l, i) x = self.SendScintilla(QsciScintilla.SCI_POINTXFROMPOSITION, 0, p) y = self.SendScintilla(QsciScintilla.SCI_POINTYFROMPOSITION, 0, p) w = self.SendScintilla(QsciScintilla.SCI_GETCARETWIDTH) return QRect(x, y, w, self.textHeight(l)) return super(ScintillaCompat, self).inputMethodQuery(query) def inputMethodEvent(self, event): if self.isReadOnly(): return self.removeSelectedText() self._imsupport.removepreedit() self._imsupport.commitstr(event.replacementStart(), event.replacementLength(), event.commitString()) self._imsupport.insertpreedit(event.preeditString()) for a in event.attributes(): if a.type == QInputMethodEvent.AttributeType.Cursor: self._imsupport.movepreeditcursor(a.start) # TextFormat is not supported event.accept() # QScintilla 2.5 can translate Backtab to Shift+SCK_TAB (issue #82) if QSCINTILLA_VERSION < 0x20500: def keyPressEvent(self, event): if event.key() == Qt.Key.Key_Backtab: event = QKeyEvent(event.type(), Qt.Key.Key_Tab, Qt.KeyboardModifier.ShiftModifier) super(ScintillaCompat, self).keyPressEvent(event) if not hasattr(QsciScintilla, 'createStandardContextMenu'): def createStandardContextMenu(self): """Create standard context menu; ownership is transferred to caller""" menu = QMenu(self) if not self.isReadOnly(): a = menu.addAction(_('&Undo'), self.undo) a.setShortcuts(QKeySequence.StandardKey.Undo) a.setEnabled(self.isUndoAvailable()) a = menu.addAction(_('&Redo'), self.redo) a.setShortcuts(QKeySequence.StandardKey.Redo) a.setEnabled(self.isRedoAvailable()) menu.addSeparator() a = menu.addAction(_('Cu&t'), self.cut) a.setShortcuts(QKeySequence.StandardKey.Cut) a.setEnabled(self.hasSelectedText()) a = menu.addAction(_('&Copy'), self.copy) a.setShortcuts(QKeySequence.StandardKey.Copy) a.setEnabled(self.hasSelectedText()) if not self.isReadOnly(): a = menu.addAction(_('&Paste'), self.paste) a.setShortcuts(QKeySequence.StandardKey.Paste) a = menu.addAction(_('&Delete'), self.removeSelectedText) a.setShortcuts(QKeySequence.StandardKey.Delete) a.setEnabled(self.hasSelectedText()) menu.addSeparator() a = menu.addAction(_('Select &All'), self.selectAll) a.setShortcuts(QKeySequence.StandardKey.SelectAll) return menu # compability mode with QScintilla from Ubuntu 10.04 if not hasattr(QsciScintilla, 'HiddenIndicator'): HiddenIndicator = QsciScintilla.INDIC_HIDDEN if not hasattr(QsciScintilla, 'PlainIndicator'): PlainIndicator = QsciScintilla.INDIC_PLAIN if not hasattr(QsciScintilla, 'StrikeIndicator'): StrikeIndicator = QsciScintilla.INDIC_STRIKE if not hasattr(QsciScintilla, 'indicatorDefine'): def indicatorDefine(self, style, indicatorNumber=-1): # compatibility layer allows only one indicator to be defined if indicatorNumber == -1: indicatorNumber = 1 self.SendScintilla(self.SCI_INDICSETSTYLE, indicatorNumber, style) return indicatorNumber if not hasattr(QsciScintilla, 'setIndicatorDrawUnder'): def setIndicatorDrawUnder(self, under, indicatorNumber): self.SendScintilla(self.SCI_INDICSETUNDER, indicatorNumber, under) if not hasattr(QsciScintilla, 'setIndicatorForegroundColor'): def setIndicatorForegroundColor(self, color, indicatorNumber): self.SendScintilla(self.SCI_INDICSETFORE, indicatorNumber, color) self.SendScintilla(self.SCI_INDICSETALPHA, indicatorNumber, color.alpha()) if not hasattr(QsciScintilla, 'clearIndicatorRange'): def clearIndicatorRange(self, lineFrom, indexFrom, lineTo, indexTo, indicatorNumber): start = self.positionFromLineIndex(lineFrom, indexFrom) finish = self.positionFromLineIndex(lineTo, indexTo) self.SendScintilla(self.SCI_SETINDICATORCURRENT, indicatorNumber) self.SendScintilla(self.SCI_INDICATORCLEARRANGE, start, finish - start) if not hasattr(QsciScintilla, 'fillIndicatorRange'): def fillIndicatorRange(self, lineFrom, indexFrom, lineTo, indexTo, indicatorNumber): start = self.positionFromLineIndex(lineFrom, indexFrom) finish = self.positionFromLineIndex(lineTo, indexTo) self.SendScintilla(self.SCI_SETINDICATORCURRENT, indicatorNumber) self.SendScintilla(self.SCI_INDICATORFILLRANGE, start, finish - start) class Scintilla(ScintillaCompat): """Scintilla widget for rich file view or editor""" def __init__(self, parent=None): super(Scintilla, self).__init__(parent) self.autoUseTabs = True self.setUtf8(True) self.setWrapVisualFlags(QsciScintilla.WrapVisualFlag.WrapFlagByBorder) self.textChanged.connect(self._resetfindcond) self._resetfindcond() self.highlightLines = set() self._setupHighlightIndicator() self._setMultipleSelectionOptions() unbindConflictedKeys(self) def _setMultipleSelectionOptions(self): if hasattr(QsciScintilla, 'SCI_SETMULTIPLESELECTION'): self.SendScintilla(QsciScintilla.SCI_SETMULTIPLESELECTION, True) self.SendScintilla(QsciScintilla.SCI_SETADDITIONALSELECTIONTYPING, True) self.SendScintilla(QsciScintilla.SCI_SETMULTIPASTE, QsciScintilla.SC_MULTIPASTE_EACH) self.SendScintilla(QsciScintilla.SCI_SETVIRTUALSPACEOPTIONS, QsciScintilla.SCVS_RECTANGULARSELECTION) def contextMenuEvent(self, event): menu = self.createEditorContextMenu() menu.exec(event.globalPos()) menu.setParent(None) def createEditorContextMenu(self): """Create context menu with editor options; ownership is transferred to caller""" menu = self.createStandardContextMenu() menu.addSeparator() editoptsmenu = menu.addMenu(_('&Editor Options')) self._buildEditorOptionsMenu(editoptsmenu) return menu def _buildEditorOptionsMenu(self, menu): qsci = QsciScintilla wrapmenu = menu.addMenu(_('&Wrap')) wrapmenu.triggered.connect(self._setWrapModeByMenu) for name, mode in ((_('&None', 'wrap mode'), qsci.WrapMode.WrapNone), (_('&Word'), qsci.WrapMode.WrapWord), (_('&Character'), qsci.WrapMode.WrapCharacter)): a = wrapmenu.addAction(name) a.setCheckable(True) a.setChecked(self.wrapMode() == mode) a.setData(mode) menu.addSeparator() wsmenu = menu.addMenu(_('White&space')) wsmenu.triggered.connect(self._setWhitespaceVisibilityByMenu) for name, mode in ((_('&Visible'), qsci.WhitespaceVisibility.WsVisible), (_('&Invisible'), qsci.WhitespaceVisibility.WsInvisible), (_('&AfterIndent'), qsci.WhitespaceVisibility.WsVisibleAfterIndent)): a = wsmenu.addAction(name) a.setCheckable(True) a.setChecked(self.whitespaceVisibility() == mode) a.setData(mode) if not self.isReadOnly(): tabindentsmenu = menu.addMenu(_('&TAB Inserts')) tabindentsmenu.triggered.connect(self._setIndentationsUseTabsByMenu) for name, mode in ((_('&Auto'), -1), (_('&TAB'), True), (_('&Spaces'), False)): a = tabindentsmenu.addAction(name) a.setCheckable(True) a.setChecked(self.indentationsUseTabs() == mode or (self.autoUseTabs and mode == -1)) a.setData(mode) menu.addSeparator() vsmenu = menu.addMenu(_('EOL &Visibility')) vsmenu.triggered.connect(self._setEolVisibilityByMenu) for name, mode in ((_('&Visible'), True), (_('&Invisible'), False)): a = vsmenu.addAction(name) a.setCheckable(True) a.setChecked(self.eolVisibility() == mode) a.setData(mode) if not self.isReadOnly(): eolmodemenu = menu.addMenu(_('EOL &Mode')) eolmodemenu.triggered.connect(self._setEolModeByMenu) for name, mode in ((_('&Windows'), qsci.EolMode.EolWindows), (_('&Unix'), qsci.EolMode.EolUnix), (_('&Mac'), qsci.EolMode.EolMac)): a = eolmodemenu.addAction(name) a.setCheckable(True) a.setChecked(self.eolMode() == mode) a.setData(mode) menu.addSeparator() a = menu.addAction(_('&Auto-Complete')) a.triggered.connect(self._setAutoCompletionEnabled) a.setCheckable(True) a.setChecked(self.autoCompletionThreshold() > 0) def saveSettings(self, qs, prefix): if QT_VERSION >= 0x60000: value = lambda e: e.value # pytype: disable=attribute-error else: value = lambda e: e qs.setValue(prefix+'/wrap', value(self.wrapMode())) qs.setValue(prefix+'/whitespace', value(self.whitespaceVisibility())) qs.setValue(prefix+'/eol', self.eolVisibility()) if self.autoUseTabs: qs.setValue(prefix+'/usetabs', -1) else: qs.setValue(prefix+'/usetabs', self.indentationsUseTabs()) qs.setValue(prefix+'/autocomplete', self.autoCompletionThreshold()) def loadSettings(self, qs, prefix): self.setWrapMode( QsciScintilla.WrapMode(qtlib.readInt(qs, prefix + '/wrap')) ) self.setWhitespaceVisibility( QsciScintilla.WhitespaceVisibility( qtlib.readInt(qs, prefix + '/whitespace') ) ) self.setEolVisibility(qtlib.readBool(qs, prefix + '/eol')) # usetabs = -1, False, or True usetabs = qtlib.readInt(qs, prefix + '/usetabs') if usetabs != -1: usetabs = qtlib.readBool(qs, prefix + '/usetabs') self.setIndentationsUseTabs(usetabs) self.setDefaultEolMode() self.setAutoCompletionThreshold( qtlib.readInt(qs, prefix + '/autocomplete', -1)) @pyqtSlot(str, bool, bool, bool) def find(self, exp, icase=True, wrap=False, forward=True): """Find the next/prev occurence; returns True if found This method tries to imitate the behavior of QTextEdit.find(), unlike combo of QsciScintilla.findFirst() and findNext(). """ cond = (exp, True, not icase, False, wrap, forward) if cond == self.__findcond: return self.findNext() else: self.__findcond = cond return self.findFirst(*cond) @pyqtSlot() def _resetfindcond(self): self.__findcond = () @pyqtSlot(str, bool) def highlightText(self, match, icase=False): """Highlight text matching to the given regexp pattern [unicode] The previous highlight is cleared automatically. """ try: flags = 0 if icase: flags |= re.IGNORECASE pat = re.compile(match.encode('utf-8'), flags) except re.error: return # it could be partial pattern while user typing self.clearHighlightText() self.SendScintilla(self.SCI_SETINDICATORCURRENT, _HIGHLIGHT_INDIC_ID) if len(match) == 0: return # NOTE: pat and target text are *not* unicode because scintilla # requires positions in byte. For accuracy, it should do pattern # match in unicode, then calculating byte length of substring:: # # text = unicode(self.text()) # for m in pat.finditer(text): # p = len(text[:m.start()].encode('utf-8')) # self.SendScintilla(self.SCI_INDICATORFILLRANGE, # p, len(m.group(0).encode('utf-8'))) # # but it doesn't to avoid possible performance issue. for m in pat.finditer(self.text().encode('utf-8')): self.SendScintilla(self.SCI_INDICATORFILLRANGE, m.start(), m.end() - m.start()) line = self.lineIndexFromPosition(m.start())[0] self.highlightLines.add(line) @pyqtSlot() def clearHighlightText(self): self.SendScintilla(self.SCI_SETINDICATORCURRENT, _HIGHLIGHT_INDIC_ID) self.SendScintilla(self.SCI_INDICATORCLEARRANGE, 0, self.length()) self.highlightLines.clear() def _setupHighlightIndicator(self): id = _HIGHLIGHT_INDIC_ID self.SendScintilla(self.SCI_INDICSETSTYLE, id, self.INDIC_ROUNDBOX) self.SendScintilla(self.SCI_INDICSETUNDER, id, True) self.SendScintilla(self.SCI_INDICSETFORE, id, 0x00ffff) # 0xbbggrr # alpha range is 0 to 255, but old Scintilla rejects value > 100 self.SendScintilla(self.SCI_INDICSETALPHA, id, 100) def showHScrollBar(self, show=True): self.SendScintilla(self.SCI_SETHSCROLLBAR, show) def setDefaultEolMode(self): if self.lines(): mode = qsciEolModeFromLine(self.text(0)) else: mode = qsciEolModeFromOs() self.setEolMode(mode) return mode @pyqtSlot(QAction) def _setWrapModeByMenu(self, action): mode = action.data() self.setWrapMode(mode) @pyqtSlot(QAction) def _setWhitespaceVisibilityByMenu(self, action): mode = action.data() self.setWhitespaceVisibility(mode) @pyqtSlot(QAction) def _setEolVisibilityByMenu(self, action): visible = action.data() self.setEolVisibility(visible) @pyqtSlot(QAction) def _setEolModeByMenu(self, action): mode = action.data() self.setEolMode(mode) @pyqtSlot(QAction) def _setIndentationsUseTabsByMenu(self, action): mode = action.data() self.setIndentationsUseTabs(mode) def setIndentationsUseTabs(self, tabs): self.autoUseTabs = (tabs == -1) if self.autoUseTabs and self.lines(): tabs = findTabIndentsInLines(self.text().splitlines()) super(Scintilla, self).setIndentationsUseTabs(tabs) @pyqtSlot(bool) def _setAutoCompletionEnabled(self, enabled): self.setAutoCompletionThreshold(enabled and 2 or -1) def lineNearPoint(self, point): """Return the closest line to the pixel position; similar to lineAt(), but returns valid line number even if no character fount at point""" # lineAt() uses the strict request, SCI_POSITIONFROMPOINTCLOSE chpos = self.SendScintilla(self.SCI_POSITIONFROMPOINT, # no implicit cast to ulong in old QScintilla # unsigned long wParam, long lParam max(point.x(), 0), point.y()) return self.SendScintilla(self.SCI_LINEFROMPOSITION, chpos) class SearchToolBar(QToolBar): conditionChanged = pyqtSignal(str, bool, bool) """Emitted (pattern, icase, wrap) when search condition changed""" searchRequested = pyqtSignal(str, bool, bool, bool) """Emitted (pattern, icase, wrap, forward) when requested""" def __init__(self, parent=None): super(SearchToolBar, self).__init__(_('Search'), parent, objectName='search') self.setIconSize(qtlib.smallIconSize()) a = self.addAction(qtlib.geticon('window-close'), '') a.setShortcut(Qt.Key.Key_Escape) a.setShortcutContext(Qt.ShortcutContext.WidgetWithChildrenShortcut) a.triggered.connect(self.hide) self.addWidget(qtlib.Spacer(2, 2)) self._le = QLineEdit() self._le.setPlaceholderText(_('### regular expression ###')) self._le.returnPressed.connect(self._emitSearchRequested) self.addWidget(self._le) self.addWidget(qtlib.Spacer(4, 4)) self._chk = QCheckBox(_('Ignore case')) self.addWidget(self._chk) self._wrapchk = QCheckBox(_('Wrap search')) self.addWidget(self._wrapchk) self._prevact = self.addAction(qtlib.geticon('go-up'), _('Prev')) self._prevact.setShortcuts(QKeySequence.StandardKey.FindPrevious) self._nextact = self.addAction(qtlib.geticon('go-down'), _('Next')) self._nextact.setShortcuts(QKeySequence.StandardKey.FindNext) for a in [self._prevact, self._nextact]: a.setShortcutContext(Qt.ShortcutContext.WidgetWithChildrenShortcut) a.triggered.connect(self._emitSearchRequested) w = self.widgetForAction(a) w.setAutoRaise(False) # no flat button w.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextBesideIcon) self._le.textChanged.connect(self._updateSearchButtons) self.setFocusProxy(self._le) self.setStyleSheet(qtlib.tbstylesheet) self._settings = QSettings() self._settings.beginGroup('searchtoolbar') self.searchRequested.connect(self._writesettings) self._readsettings() self._le.textChanged.connect(self._emitConditionChanged) self._chk.toggled.connect(self._emitConditionChanged) self._wrapchk.toggled.connect(self._emitConditionChanged) self._updateSearchButtons() def keyPressEvent(self, event): if event.key() in (Qt.Key.Key_Enter, Qt.Key.Key_Return): return # handled by returnPressed super(SearchToolBar, self).keyPressEvent(event) def wheelEvent(self, event): if QT_VERSION >= 0x50000: d = event.angleDelta().y() else: d = event.delta() if d > 0: self._prevact.trigger() return if d < 0: self._nextact.trigger() return super(SearchToolBar, self).wheelEvent(event) def setVisible(self, visible=True): super(SearchToolBar, self).setVisible(visible) if visible: self._le.setFocus() self._le.selectAll() def _readsettings(self): self.setCaseInsensitive(qtlib.readBool(self._settings, 'icase', False)) self.setWrapAround(qtlib.readBool(self._settings, 'wrap', False)) @pyqtSlot() def _writesettings(self): self._settings.setValue('icase', self.caseInsensitive()) self._settings.setValue('wrap', self.wrapAround()) @pyqtSlot() def _emitConditionChanged(self): self.conditionChanged.emit(self.pattern(), self.caseInsensitive(), self.wrapAround()) @pyqtSlot() def _emitSearchRequested(self): forward = self.sender() is not self._prevact self.searchRequested.emit(self.pattern(), self.caseInsensitive(), self.wrapAround(), forward) def editorActions(self): """List of actions that should be available in main editor widget""" return [self._prevact, self._nextact] @pyqtSlot() def _updateSearchButtons(self): enabled = bool(self._le.text()) for a in [self._prevact, self._nextact]: a.setEnabled(enabled) def pattern(self): """Returns the current search pattern [unicode]""" return self._le.text() def setPattern(self, text): """Set the search pattern [unicode]""" self._le.setText(text) def caseInsensitive(self): """True if case-insensitive search is requested""" return self._chk.isChecked() def setCaseInsensitive(self, icase): self._chk.setChecked(icase) def wrapAround(self): """True if wrap search is requested""" return self._wrapchk.isChecked() def setWrapAround(self, wrap): self._wrapchk.setChecked(wrap) @pyqtSlot(str) def search(self, text): """Request search with the given pattern""" self.setPattern(text) self._emitSearchRequested() class KeyPressInterceptor(QObject): """Grab key press events important for dialogs Usage:: sci = qscilib.Scintilla(self) sci.installEventFilter(KeyPressInterceptor(self)) """ def __init__(self, parent=None, keys=None, keyseqs=None): super(KeyPressInterceptor, self).__init__(parent) self._keys = {Qt.Key.Key_Escape} self._keyseqs = [QKeySequence.StandardKey.Refresh] if keys: self._keys.update(keys) if keyseqs: self._keyseqs.extend(keyseqs) def eventFilter(self, watched, event): if event.type() != QEvent.Type.KeyPress: return super(KeyPressInterceptor, self).eventFilter( watched, event) if self._isinterceptable(event): event.ignore() return True return False def _isinterceptable(self, event): if event.key() in self._keys: return True if any(event.matches(e) for e in self._keyseqs): return True return False def unbindConflictedKeys(sci): cmdset = sci.standardCommands() try: cmd = cmdset.boundTo( qtlib.keyCombinationValue(Qt.Modifier.CTRL | Qt.Key.Key_L) ) if cmd: cmd.setKey(0) except AttributeError: # old QScintilla does not have boundTo() pass def qsciEolModeFromOs(): if os.name.startswith('nt'): return QsciScintilla.EolMode.EolWindows else: return QsciScintilla.EolMode.EolUnix def qsciEolModeFromLine(line): if line.endswith('\r\n'): return QsciScintilla.EolMode.EolWindows elif line.endswith('\r'): return QsciScintilla.EolMode.EolMac elif line.endswith('\n'): return QsciScintilla.EolMode.EolUnix else: return qsciEolModeFromOs() def findTabIndentsInLines(lines, linestocheck=100): for line in lines[:linestocheck]: if line.startswith(' '): return False elif line.startswith('\t'): return True return False # Use spaces for indents default def readFile(editor, filename, encoding=None): f = QFile(filename) if not f.open(QIODevice.OpenModeFlag.ReadOnly): qtlib.WarningMsgBox(_('Unable to read file'), _('Could not open the specified file for reading.'), f.errorString(), parent=editor) return False try: earlybytes = f.read(4096) if b'\0' in earlybytes: qtlib.WarningMsgBox(_('Unable to read file'), _('This appears to be a binary file.'), parent=editor) return False f.seek(0) data = bytes(f.readAll()) if f.error() != QFileDevice.FileError.NoError: qtlib.WarningMsgBox(_('Unable to read file'), _('An error occurred while reading the file.'), f.errorString(), parent=editor) return False finally: f.close() if encoding: try: text = data.decode(encoding) except UnicodeDecodeError as inst: qtlib.WarningMsgBox(_('Text Translation Failure'), _('Could not translate the file content from ' 'native encoding.'), (_('Several characters would be lost.') + '\n\n' + hglib.exception_str(inst)), parent=editor) text = data.decode(encoding, 'replace') else: text = hglib.tounicode(data) editor.setText(text) editor.setDefaultEolMode() editor.setModified(False) return True def writeFile(editor, filename, encoding=None): text = editor.text() try: if encoding: data = text.encode(encoding) else: data = hglib.fromunicode(text) except UnicodeEncodeError as inst: qtlib.WarningMsgBox(_('Unable to write file'), _('Could not translate the file content to ' 'native encoding.'), hglib.exception_str(inst), parent=editor) return False f = QFile(filename) if not f.open(QIODevice.OpenModeFlag.WriteOnly): qtlib.WarningMsgBox(_('Unable to write file'), _('Could not open the specified file for writing.'), f.errorString(), parent=editor) return False try: if f.write(data) < 0: qtlib.WarningMsgBox(_('Unable to write file'), _('An error occurred while writing the file.'), f.errorString(), parent=editor) return False finally: f.close() return True def fileEditor(filename, **opts): """Open a simple modal file editing dialog""" dialog = QDialog() dialog.setWindowFlags(dialog.windowFlags() & ~Qt.WindowType.WindowContextHelpButtonHint | Qt.WindowType.WindowMaximizeButtonHint) dialog.setWindowTitle(filename) dialog.setLayout(QVBoxLayout()) editor = Scintilla() editor.setBraceMatching(QsciScintilla.BraceMatch.SloppyBraceMatch) editor.installEventFilter(KeyPressInterceptor(dialog)) editor.setMarginLineNumbers(1, True) editor.setMarginWidth(1, '000') font = qtlib.getfont('fonteditor').font() lexer = QsciLexerProperties() lexer.setFont(font, -1) editor.setFont(font) editor.setLexer(lexer) if opts.get('foldable'): editor.setFolding(QsciScintilla.FoldStyle.BoxedTreeFoldStyle) dialog.layout().addWidget(editor) searchbar = SearchToolBar(dialog) searchbar.searchRequested.connect(editor.find) searchbar.conditionChanged.connect(editor.highlightText) searchbar.hide() def showsearchbar(): text = editor.selectedText() if text: searchbar.setPattern(text) searchbar.show() searchbar.setFocus(Qt.FocusReason.OtherFocusReason) qtlib.newshortcutsforstdkey(QKeySequence.StandardKey.Find, dialog, showsearchbar) dialog.addActions(searchbar.editorActions()) dialog.layout().addWidget(searchbar) bb = QDialogButtonBox(QDialogButtonBox.StandardButton.Save|QDialogButtonBox.StandardButton.Cancel) bb.accepted.connect(dialog.accept) bb.rejected.connect(dialog.reject) dialog.layout().addWidget(bb) s = QSettings() geomname = 'editor-geom' desktopgeom = QApplication.primaryScreen().availableGeometry() dialog.resize(desktopgeom.size() * 0.5) dialog.restoreGeometry(qtlib.readByteArray(s, geomname)) if not readFile(editor, filename): return QDialog.DialogCode.Rejected ret = dialog.exec() if ret != QDialog.DialogCode.Accepted: return ret if not writeFile(editor, filename): return QDialog.DialogCode.Rejected s.setValue(geomname, dialog.saveGeometry()) return ret ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730809007.0 tortoisehg-6.9/tortoisehg/hgqt/qtapp.py0000644000000000000000000006357614712406257017177 0ustar00rootroot# qtapp.py - utility to start Qt application # # Copyright 2008 Steve Borho # Copyright 2008 TK Soh # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import gc import os import signal import sys import traceback from .qtcore import ( PYQT_VERSION, PYQT_VERSION_STR, QByteArray, QIODevice, QLibraryInfo, QObject, QSettings, QSignalMapper, QSocketNotifier, QT_API, QT_VERSION, QTimer, QTranslator, Qt, pyqtSignal, pyqtSlot, qVersion, ) from .qtgui import ( QApplication, QFont, ) from .qtnetwork import ( QLocalServer, QLocalSocket, ) from mercurial import ( encoding, error, ) from mercurial.utils import ( procutil, stringutil, ) from ..util import ( hglib, i18n, version as thgversion, ) from ..util.i18n import _ from . import ( bugreport, hgconfig, qtlib, shortcutregistry, thgrepo, workbench, ) if os.name == 'nt' and getattr(sys, 'frozen', False): # load QtSvg4.dll and QtXml4.dll by .pyd, so that imageformats/qsvg4.dll # can find them without relying on unreliable PATH variable. The filenames # change for PyQt5 but the basic problem remains the same. _mod = __import__(QT_API, globals(), locals(), ['QtSvg', 'QtXml']) _mod.QtSvg.__name__, _mod.QtXml.__name__ # no demandimport # TODO: replace QT_VERSION, because it is the build time version, not # necessarily the runtime version. if PYQT_VERSION < 0x50b00 or QT_VERSION < 0x50b00: sys.stderr.write('TortoiseHg requires at least Qt 5.11 and PyQt 5.11\n') sys.stderr.write('You have Qt %s and PyQt %s\n' % (qVersion(), PYQT_VERSION_STR)) sys.exit(-1) if getattr(sys, 'frozen', False) and os.name == 'nt': # load icons and translations from . import icons_rc, translations_rc # pytype: disable=import-error try: from thginithook import thginithook # pytype: disable=import-error except ImportError: thginithook = None def _ugetuser(): return hglib.tounicode(procutil.getuser()) # {exception class: message} # It doesn't check the hierarchy of exception classes for simplicity. _recoverableexc = { error.RepoLookupError: _('Try refreshing your repository.'), error.RevlogError: _('Try refreshing your repository.'), error.ParseError: _('Error string "%(arg0)s" at %(arg1)s
                                                                                                            Please ' 'edit your config'), error.ConfigError: _('Configuration Error: "%(arg0)s",
                                                                                                            Please ' 'fix your config'), error.Abort: _('Operation aborted:

                                                                                                            %(arg0)s.'), error.LockUnavailable: _('Repository is locked'), } def earlyExceptionMsgBox(e): """Show message for recoverable error before the QApplication is started""" opts = {'cmd': ' '.join(sys.argv[1:]), 'values': [hglib.exception_str(e)], 'error': traceback.format_exc(), 'nofork': True} errstring = _recoverableexc[e.__class__] if isinstance(e, error.ConfigError) and e.location: # If ConfigError contained a location, the config file couldn't be # parsed at all. So '#edit:' is the only way to fix. errstring = _recoverableexc[error.ParseError] opts['values'] += [hglib.tounicode(e.location)] elif isinstance(e, error.ParseError) and e.location: opts['values'] += [hglib.tounicode(e.location)] if not QApplication.instance(): main = QApplication(sys.argv) dlg = bugreport.ExceptionMsgBox(hglib.exception_str(e), errstring, opts) dlg.exec() def earlyBugReport(e): """Show generic errors before the QApplication is started""" opts = {'cmd': ' '.join(sys.argv[1:]), 'error': traceback.format_exc()} if not QApplication.instance(): main = QApplication(sys.argv) dlg = bugreport.BugReport(opts) dlg.exec() class ExceptionCatcher(QObject): """Catch unhandled exception raised inside Qt event loop""" _exceptionOccured = pyqtSignal(object, object, object) def __init__(self, ui, mainapp, parent=None): super(ExceptionCatcher, self).__init__(parent) self._ui = ui self._mainapp = mainapp self.errors = [] # can be emitted by another thread; postpones it until next # eventloop of main (GUI) thread. self._exceptionOccured.connect(self.putexception, Qt.ConnectionType.QueuedConnection) self._origexcepthook = None if not self._ui.configbool(b'tortoisehg', b'traceback'): self._ui.debug(b'setting up excepthook\n') self._origexcepthook = sys.excepthook sys.excepthook = self.ehook self._originthandler = signal.signal(signal.SIGINT, self._inthandler) self._initWakeup() def release(self): if self._origexcepthook: self._ui.debug(b'restoring excepthook\n') sys.excepthook = self._origexcepthook self._origexcepthook = None if self._originthandler: signal.signal(signal.SIGINT, self._originthandler) self._originthandler = None self._releaseWakeup() def ehook(self, etype, evalue, tracebackobj): 'Will be called by any thread, on any unhandled exception' if self._ui.debugflag: elist = traceback.format_exception(etype, evalue, tracebackobj) self._ui.debug(encoding.strtolocal(''.join(elist))) self._exceptionOccured.emit(etype, evalue, tracebackobj) # not thread-safe to touch self.errors here @pyqtSlot(object, object, object) def putexception(self, etype, evalue, tracebackobj): 'Enque exception info and display it later; run in main thread' if not self.errors: QTimer.singleShot(10, self.excepthandler) self.errors.append((etype, evalue, tracebackobj)) @pyqtSlot() def excepthandler(self): 'Display exception info; run in main (GUI) thread' try: self._showexceptiondialog() except: # make sure to quit mainloop first, so that it never leave # zombie process. self._mainapp.exit(1) self._printexception() finally: self.errors = [] def _showexceptiondialog(self): opts = {'cmd': ' '.join(sys.argv[1:]), 'error': ''.join(''.join(traceback.format_exception(*args)) for args in self.errors)} etype, evalue = self.errors[0][:2] parent = self._mainapp.activeWindow() if (len(set(e[0] for e in self.errors)) == 1 and etype in _recoverableexc): opts['values'] = [hglib.exception_str(evalue)] errstr = _recoverableexc[etype] if etype is error.Abort and evalue.hint: errstr = u''.join([errstr, u'
                                                                                                            ', _('hint:'), u' %(arg1)s']) opts['values'] = [ hglib.exception_str(evalue), hglib.tounicode(evalue.hint) ] elif etype is error.ConfigError and evalue.location: # If ConfigError contained a location, the config file couldn't # be parsed at all. So '#edit:' is the only way to # fix. errstr = _recoverableexc[error.ParseError] opts['values'] += [hglib.tounicode(evalue.location)] elif etype is error.ParseError and evalue.location: opts['values'] += [hglib.tounicode(evalue.location)] dlg = bugreport.ExceptionMsgBox(hglib.exception_str(evalue), errstr, opts, parent=parent) dlg.exec() else: dlg = bugreport.BugReport(opts, parent=parent) dlg.exec() def _printexception(self): for args in self.errors: traceback.print_exception(*args) def _inthandler(self, signum, frame): # QTimer makes sure to not enter new event loop in signal handler, # which will be invoked at random location. Note that some windows # may show modal confirmation dialog in closeEvent(). QTimer.singleShot(0, self._mainapp.closeAllWindows) if os.name == 'posix': # Wake up Python interpreter via pipe so that SIGINT can be handled # immediately. (https://doc.qt.io/qt-4.8/unix-signals.html) def _initWakeup(self): import fcntl rfd, wfd = os.pipe() for fd in (rfd, wfd): flags = fcntl.fcntl(fd, fcntl.F_GETFL) fcntl.fcntl(fd, fcntl.F_SETFL, flags | os.O_NONBLOCK) self._wakeupsn = QSocketNotifier(rfd, QSocketNotifier.Type.Read, self) self._wakeupsn.activated.connect(self._handleWakeup) self._origwakeupfd = signal.set_wakeup_fd(wfd) def _releaseWakeup(self): self._wakeupsn.setEnabled(False) rfd = int(self._wakeupsn.socket()) wfd = signal.set_wakeup_fd(self._origwakeupfd) self._origwakeupfd = -1 os.close(rfd) os.close(wfd) @pyqtSlot() def _handleWakeup(self): # here Python signal handler will be invoked self._wakeupsn.setEnabled(False) rfd = int(self._wakeupsn.socket()) try: os.read(rfd, 1) except OSError as inst: self._ui.debug(b'failed to read wakeup fd: %s\n' % stringutil.forcebytestr(inst)) self._wakeupsn.setEnabled(True) else: # On Windows, non-blocking anonymous pipe or socket is not available. # So run Python instruction at a regular interval. Because it wastes # CPU time, it is disabled if thg is known to be detached from tty. def _initWakeup(self): self._wakeuptimer = 0 if self._ui._isatty(self._ui.fin): self._wakeuptimer = self.startTimer(200) def _releaseWakeup(self): if self._wakeuptimer > 0: self.killTimer(self._wakeuptimer) self._wakeuptimer = 0 def timerEvent(self, event): # nop for instant SIGINT handling pass class GarbageCollector(QObject): ''' Disable automatic garbage collection and instead collect manually every INTERVAL milliseconds. This is done to ensure that garbage collection only happens in the GUI thread, as otherwise Qt can crash. ''' INTERVAL = 5000 def __init__(self, ui, parent): QObject.__init__(self, parent) self._ui = ui self.timer = QTimer(self) self.timer.timeout.connect(self.check) self.threshold = gc.get_threshold() gc.disable() self.timer.start(self.INTERVAL) #gc.set_debug(gc.DEBUG_SAVEALL) def check(self): l0, l1, l2 = gc.get_count() if l0 > self.threshold[0]: num = gc.collect(0) self._ui.debug(b'GarbageCollector.check: %d %d %d\n' % (l0, l1, l2)) self._ui.debug(b'collected gen 0, found %d unreachable\n' % num) if l1 > self.threshold[1]: num = gc.collect(1) self._ui.debug(b'collected gen 1, found %d unreachable\n' % num) if l2 > self.threshold[2]: num = gc.collect(2) self._ui.debug(b'collected gen 2, found %d unreachable\n' % num) def debug_cycles(self): gc.collect() for obj in gc.garbage: self._ui.debug( hglib.fromunicode('%s, %r, %s\n' % (obj, obj, type(obj))) ) def allowSetForegroundWindow(processid=-1): """Allow a given process to set the foreground window""" # processid = -1 means ASFW_ANY (i.e. allow any process) if os.name == 'nt': # on windows we must explicitly allow bringing the main window to # the foreground. To do so we must use ctypes try: from ctypes import windll # pytype: disable=import-error windll.user32.AllowSetForegroundWindow(processid) except ImportError: pass def connectToExistingWorkbench(root, revset=None): """ Connect and send data to an existing workbench server For the connection to be successful, the server must loopback the data that we send to it. Normally the data that is sent will be a repository root path, but we can also send "echo" to check that the connection works (i.e. that there is a server) """ if revset: data = b'\0'.join([root, revset]) else: data = root servername = QApplication.applicationName() + '-' + _ugetuser() socket = QLocalSocket() socket.connectToServer(servername, QIODevice.OpenModeFlag.ReadWrite) if socket.waitForConnected(10000): # Momentarily let any process set the foreground window # The server process with revoke this permission as soon as it gets # the request allowSetForegroundWindow() socket.write(QByteArray(data)) socket.flush() socket.waitForReadyRead(10000) reply = socket.readAll() if data == reply: return True elif socket.error() == QLocalSocket.LocalSocketError.ConnectionRefusedError: # last server process was crashed? QLocalServer.removeServer(servername) return False def _fixapplicationfont(ui): if (os.name != 'nt' or QT_VERSION >= 0x060000 or not ui.configbool(b'experimental', b'thg.fix-app-font')): return try: import ctypes, win32con # pytype: disable=import-error except ImportError: return class LOGFONTW(ctypes.Structure): _fields_ = [ ('lfHeight', ctypes.wintypes.LONG), ('lfWidth', ctypes.wintypes.LONG), ('lfEscapement', ctypes.wintypes.LONG), ('lfOrientation', ctypes.wintypes.LONG), ('lfWeight', ctypes.wintypes.LONG), ('lfItalic', ctypes.wintypes.BYTE), ('lfUnderline', ctypes.wintypes.BYTE), ('lfStrikeOut', ctypes.wintypes.BYTE), ('lfCharSet', ctypes.wintypes.BYTE), ('lfOutPrecision', ctypes.wintypes.BYTE), ('lfClipPrecision', ctypes.wintypes.BYTE), ('lfQuality', ctypes.wintypes.BYTE), ('lfPitchAndFamily', ctypes.wintypes.BYTE), ('lfFaceName', ctypes.wintypes.WCHAR * 32), ] class NONCLIENTMETRICSW(ctypes.Structure): _fields_ = [ ('cbSize', ctypes.wintypes.UINT), ('iBorderWidth', ctypes.c_int), ('iScrollWidth', ctypes.c_int), ('iScrollHeight', ctypes.c_int), ('iCaptionWidth', ctypes.c_int), ('iCaptionHeight', ctypes.c_int), ('lfCaptionFont', LOGFONTW), ('iSmCaptionWidth', ctypes.c_int), ('iSmCaptionHeight', ctypes.c_int), ('lfSmCaptionFont', LOGFONTW), ('iMenuWidth', ctypes.c_int), ('iMenuHeight', ctypes.c_int), ('lfMenuFont', LOGFONTW), ('lfStatusFont', LOGFONTW), ('lfMessageFont', LOGFONTW), ('iPaddedBorderWidth', ctypes.c_int), ] ncm = NONCLIENTMETRICSW() size = ctypes.sizeof(ncm) ncm.cbSize = size user32 = ctypes.windll.user32 # pytype: disable=module-attr # use configurable font like GTK, Mozilla XUL or Eclipse SWT if not user32.SystemParametersInfoForDpi( win32con.SPI_GETNONCLIENTMETRICS, size, ctypes.byref(ncm), 0, 96 ): return lf = ncm.lfMessageFont f = QFont(hglib.tounicode(lf.lfFaceName)) f.setItalic(lf.lfItalic) if lf.lfWeight != win32con.FW_DONTCARE: weights = [(0, QFont.Weight.Light), (400, QFont.Weight.Normal), (600, QFont.Weight.DemiBold), (700, QFont.Weight.Bold), (800, QFont.Weight.Black)] n, w = [e for e in weights if e[0] <= lf.lfWeight][-1] f.setWeight(w) f.setPointSizeF((abs(lf.lfHeight) * 72.0) / 96.0) QApplication.setFont(f, 'QWidget') def _gettranslationpath(): """Return path to Qt's translation file (.qm)""" if getattr(sys, 'frozen', False) and os.name == 'nt': return ':/translations' # pytype: disable=attribute-error elif QT_API == 'PyQt5': # QLibraryInfo.LibraryPath.PluginsPath is not available with # PyQt 5.13.2/Qt 5.9.9 return QLibraryInfo.location(QLibraryInfo.TranslationsPath) else: return QLibraryInfo.path(QLibraryInfo.LibraryPath.TranslationsPath) # pytype: enable=attribute-error class QtRunner(QObject): """Run Qt app and hold its windows NOTE: This object will be instantiated before QApplication, it means there's a limitation on Qt's event handling. See https://doc.qt.io/qt-4.8/threads-qobject.html#per-thread-event-loop """ def __init__(self): super(QtRunner, self).__init__() self._ui = None self._config = None self._mainapp = None self._exccatcher = None self._actionregistry = None self._server = None self._repomanager = None self._reporeleaser = None self._mainreporoot = None self._workbench = None def __call__(self, dlgfunc, ui, *args, **opts): if self._mainapp: self._opendialog(dlgfunc, args, opts) return QSettings.setDefaultFormat(QSettings.Format.IniFormat) self._ui = ui self._config = hgconfig.HgConfig(ui) if QT_API == "PyQt5": # pytype: disable=attribute-error QApplication.setAttribute(Qt.AA_UseHighDpiPixmaps, True) QApplication.setAttribute(Qt.AA_EnableHighDpiScaling, True) # pytype: enable=attribute-error if sys.platform == 'darwin': QApplication.setAttribute(Qt.ApplicationAttribute.AA_DontShowIconsInMenus, True) self._mainapp = QApplication(sys.argv) self._exccatcher = ExceptionCatcher(ui, self._mainapp, self) self._gc = GarbageCollector(ui, self) # default org is used by QSettings self._mainapp.setApplicationName('TortoiseHgQt') self._mainapp.setOrganizationName('TortoiseHg') self._mainapp.setOrganizationDomain('tortoisehg.org') self._mainapp.setApplicationVersion(thgversion.version()) if hasattr(self._mainapp, 'setDesktopFileName'): # introduced in Qt 5.7 self._mainapp.setDesktopFileName('thg') self._fixlibrarypaths() self._installtranslator() QFont.insertSubstitutions('monospace', ['monaco', 'courier new']) _fixapplicationfont(ui) qtlib.configstyles(ui) qtlib.initfontcache(ui) self._mainapp.setWindowIcon(qtlib.geticon('thg')) self._actionregistry = shortcutregistry.ActionRegistry() self._actionregistry.readSettings() self._repomanager = thgrepo.RepoManager(ui, self) self._reporeleaser = releaser = QSignalMapper(self) qtlib.getMappedStringSignal(releaser).connect( self._repomanager.releaseRepoAgent ) # stop services after control returns to the main event loop self._mainapp.setQuitOnLastWindowClosed(False) self._mainapp.lastWindowClosed.connect(self._quitGracefully, Qt.ConnectionType.QueuedConnection) dlg, reporoot = self._createdialog(dlgfunc, args, opts) self._mainreporoot = reporoot try: if dlg: dlg.show() dlg.raise_() else: if reporoot: self._repomanager.releaseRepoAgent(reporoot) self._mainreporoot = None return -1 if thginithook is not None: thginithook() return self._mainapp.exec() finally: self._exccatcher.release() self._mainapp = self._ui = self._config = None @pyqtSlot() def _quitGracefully(self): # won't be called if the application is quit by BugReport dialog if self._mainreporoot: self._repomanager.releaseRepoAgent(self._mainreporoot) self._mainreporoot = None if self._server: self._server.close() if self._tryQuit(): return self._ui.debug(b'repositories are closing asynchronously\n') self._repomanager.repositoryClosed.connect(self._tryQuit) QTimer.singleShot(5000, self._mainapp.quit) # in case of bug @pyqtSlot() def _tryQuit(self): if self._repomanager.repoRootPaths(): return False self._mainapp.quit() return True def _fixlibrarypaths(self): # make sure to use the bundled Qt plugins to avoid ABI incompatibility # https://doc.qt.io/qt-4.8/deployment-windows.html#qt-plugins if os.name == 'nt' and getattr(sys, 'frozen', False): self._mainapp.setLibraryPaths([self._mainapp.applicationDirPath()]) def _installtranslator(self): if not i18n.language: return t = QTranslator(self._mainapp) t.load('qt_' + i18n.language, _gettranslationpath()) self._mainapp.installTranslator(t) def _createdialog(self, dlgfunc, args, opts): assert self._ui and self._repomanager reporoot = None try: args = list(args) if 'repository' in opts: repoagent = self._repomanager.openRepoAgent( hglib.tounicode(opts['repository'])) reporoot = repoagent.rootPath() args.insert(0, repoagent) return dlgfunc(self._ui, *args, **opts), reporoot except error.RepoError as inst: qtlib.WarningMsgBox(_('Repository Error'), hglib.tounicode(stringutil.forcebytestr(inst))) except error.Abort as inst: qtlib.WarningMsgBox(_('Abort'), hglib.tounicode(stringutil.forcebytestr(inst)), hglib.tounicode(inst.hint or '')) if reporoot: self._repomanager.releaseRepoAgent(reporoot) return None, None def _opendialog(self, dlgfunc, args, opts): dlg, reporoot = self._createdialog(dlgfunc, args, opts) if not dlg: return dlg.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose) if reporoot: dlg.destroyed.connect(self._reporeleaser.map) self._reporeleaser.setMapping(dlg, reporoot) if dlg is not self._workbench and not dlg.parent(): # keep reference to avoid garbage collection. workbench should # exist when run.dispatch() is called for the second time. assert self._workbench dlg.setParent(self._workbench, dlg.windowFlags()) dlg.show() def actionRegistry(self) -> shortcutregistry.ActionRegistry: assert self._actionregistry return self._actionregistry def createWorkbench(self): """Create Workbench window and keep single reference""" assert self._ui and self._config and self._mainapp and self._repomanager assert self._actionregistry assert not self._workbench self._workbench = workbench.Workbench( self._ui, self._config, self._actionregistry, self._repomanager) return self._workbench @pyqtSlot(str) def openRepoInWorkbench(self, uroot): """Show the specified repository in Workbench; reuses the existing Workbench process""" assert self._config singlewb = self._config.configBool('tortoisehg', 'workbench.single') # only if the server is another process; otherwise it would deadlock if (singlewb and not self._server and connectToExistingWorkbench(hglib.fromunicode(uroot))): return self.showRepoInWorkbench(uroot) def showRepoInWorkbench(self, uroot, rev=-1): """Show the specified repository in Workbench""" assert self._mainapp if not self._workbench: self.createWorkbench() assert self._workbench wb = self._workbench wb.show() wb.activateWindow() wb.raise_() wb.showRepo(uroot) if rev != -1: wb.goto(hglib.fromunicode(uroot), rev) def createWorkbenchServer(self): assert self._mainapp assert not self._server self._server = QLocalServer(self) self._server.newConnection.connect(self._handleNewConnection) self._server.listen(self._mainapp.applicationName() + '-' + _ugetuser()) @pyqtSlot() def _handleNewConnection(self): socket = self._server.nextPendingConnection() if socket: socket.waitForReadyRead(10000) data = bytes(socket.readAll()) if data and data != b'[echo]': args = data.split(b'\0', 1) if len(args) > 1: uroot, urevset = map(hglib.tounicode, args) else: uroot = hglib.tounicode(args[0]) urevset = None self.showRepoInWorkbench(uroot) wb = self._workbench if urevset: wb.setRevsetFilter(uroot, urevset) # Bring the workbench window to the front # This assumes that the client process has # called allowSetForegroundWindow(-1) right before # sending the request wb.setWindowState(wb.windowState() & ~Qt.WindowState.WindowMinimized | Qt.WindowState.WindowActive) wb.show() wb.raise_() wb.activateWindow() # Revoke the blanket permission to set the foreground window allowSetForegroundWindow(os.getpid()) socket.write(QByteArray(data)) socket.flush() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/qtcore.py0000644000000000000000000000213614672254332017330 0ustar00rootroot# qtcore.py - PyQt5/6 compatibility wrapper # # Copyright 2015 Yuya Nishihara # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. """Thin compatibility wrapper for QtCore""" from __future__ import annotations import os import sys def _detectapi(): candidates = ['PyQt5', 'PyQt6'] if not getattr(sys, 'frozen', False): api = os.environ.get('THG_QT_API') if api: return api for api in candidates: try: mod = __import__(api) mod.__name__ # get around demandimport return api except ImportError: pass return candidates[0] try: from ..util.config import qt_api as QT_API # pytype: disable=import-error except (AttributeError, ImportError): QT_API = _detectapi() if QT_API == 'PyQt6': from PyQt6.QtCore import * # pytype: disable=import-error elif QT_API == 'PyQt5': from PyQt5.QtCore import * # pytype: disable=import-error else: raise RuntimeError('unsupported Qt API: %s' % QT_API) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/qtgui.py0000644000000000000000000000133014672254332017157 0ustar00rootroot# qtgui.py - PyQt5/6 compatibility wrapper # # Copyright 2015 Yuya Nishihara # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. """Thin compatibility wrapper for QtGui and QtWidgets of Qt5/6""" from __future__ import annotations from .qtcore import QT_API if QT_API == 'PyQt6': from PyQt6.QtGui import * # pytype: disable=import-error from PyQt6.QtWidgets import * # pytype: disable=import-error elif QT_API == 'PyQt5': from PyQt5.QtGui import * # pytype: disable=import-error from PyQt5.QtWidgets import * # pytype: disable=import-error else: raise RuntimeError('unsupported Qt API: %s' % QT_API) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730809007.0 tortoisehg-6.9/tortoisehg/hgqt/qtlib.py0000644000000000000000000015647414712406257017165 0ustar00rootroot# qtlib.py - Qt utility code # # Copyright 2010 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import atexit import os import posixpath import re import shutil import stat import subprocess import sys import tempfile import weakref from .qtcore import ( PYQT_VERSION, QByteArray, QDir, QEvent, QFile, QObject, QPoint, QProcess, QSettings, QSignalMapper, QSize, QUrl, QT_API, QT_VERSION, Qt, pyqtBoundSignal, pyqtSignal, pyqtSlot, ) from .qtgui import ( QAction, QApplication, QComboBox, QCommonStyle, QColor, QDesktopServices, QDialog, QDropEvent, QFont, QFrame, QHBoxLayout, QIcon, QInputDialog, QKeyEvent, QKeySequence, QLabel, QLineEdit, QMessageBox, QPainter, QPalette, QPixmap, QPushButton, QShortcut, QSizePolicy, QStyle, QStyleOptionButton, QVBoxLayout, QWidget, ) if QT_API == "PyQt6": import PyQt6.sip as sip # pytype: disable=import-error else: import sip # pytype: disable=import-error from typing import ( Any, AnyStr, Callable, Dict, Hashable, Iterable, List, Optional, Text, Tuple, TypeVar, Union, cast, ) from mercurial import ( color, encoding, extensions, localrepo, pycompat, ui as uimod, util, ) from mercurial.utils import ( procutil, stringutil, ) from ..util import ( editor, hglib, paths, terminal, ) from ..util.i18n import _ try: import win32con # pytype: disable=import-error openflags: int = win32con.CREATE_NO_WINDOW except ImportError: openflags = 0 _W = TypeVar('_W', bound=QWidget) # def htmlescape(s: Text, quote: bool = True) -> Text: from html import escape as htmlescape # largest allowed size for widget, defined in QWIDGETSIZE_MAX = (1 << 24) - 1 tmproot: Optional[bytes] = None def gettempdir() -> bytes: """Return the byte string path of a temporary directory, static for the application lifetime, removed recursively atexit.""" global tmproot def cleanup(): try: os.chmod(tmproot, os.stat(tmproot).st_mode | stat.S_IWUSR) for top, dirs, files in os.walk(tmproot): for name in dirs + files: fullname = os.path.join(top, name) os.chmod(fullname, os.stat(fullname).st_mode | stat.S_IWUSR) shutil.rmtree(tmproot) except OSError: pass if not tmproot: tmproot = tempfile.mkdtemp(prefix=b'thg.') atexit.register(cleanup) return tmproot def openhelpcontents(url: Text) -> None: 'Open online help, use local CHM file if available' if not url.startswith('http'): fullurl = 'https://tortoisehg.readthedocs.org/en/latest/' + url # Use local CHM file if it can be found if os.name == 'nt' and paths.bin_path: chm = os.path.join(paths.bin_path, 'doc', 'TortoiseHg.chm') if os.path.exists(chm): fullurl = (r'mk:@MSITStore:%s::/' % chm) + url openlocalurl(fullurl) return QDesktopServices.openUrl(QUrl(fullurl)) def openlocalurl(path: AnyStr) -> bool: """open the given path with the Operating System's default application for this file type. Path may be a directory or a file. takes bytes or unicode as argument returns True if open was successfull """ if isinstance(path, bytes): path = hglib.tounicode(path) if os.name == 'nt' and path.startswith('\\\\'): # network share, special handling because of qt bug 13359 # see https://bugreports.qt.io/browse/QTBUG-13359 qurl = QUrl() qurl.setUrl(QDir.toNativeSeparators(path)) else: qurl = QUrl.fromLocalFile(path) return QDesktopServices.openUrl(qurl) def editfiles(repo: localrepo.localrepository, files: List[bytes], lineno: Optional[int] = None, search: Optional[bytes] = None, parent: Optional[QWidget] = None) -> None: """open the given file with TortoiseHg's configured visual editor.""" if len(files) == 1: # if editing a single file, open in cwd context of that file filename = files[0].strip() if not filename: return path = repo.wjoin(filename) cwd = os.path.dirname(path) files = [os.path.basename(path)] else: # else edit in cwd context of repo root cwd = repo.root toolpath, args, argsln, argssearch = editor.detecteditor(repo, files) if os.path.basename(toolpath) in (b'vi', b'vim', b'hgeditor'): QMessageBox.critical(parent, _('No visual editor configured'), _('Please configure a visual editor.')) from tortoisehg.hgqt.settings import SettingsDialog dlg = SettingsDialog(False, focus='tortoisehg.editor') dlg.exec() return files = [procutil.shellquote(util.localpath(f)) for f in files] assert len(files) == 1 or lineno is None, (files, lineno) cmdline = None if search: assert lineno is not None if argssearch: cmdline = b' '.join([toolpath, argssearch]) cmdline = cmdline.replace(b'$LINENUM', b'%d' % lineno) cmdline = cmdline.replace(b'$SEARCH', search) elif argsln: cmdline = b' '.join([toolpath, argsln]) cmdline = cmdline.replace(b'$LINENUM', b'%d' % lineno) elif args: cmdline = b' '.join([toolpath, args]) elif lineno is not None: if argsln: cmdline = b' '.join([toolpath, argsln]) cmdline = cmdline.replace(b'$LINENUM', b'%d' % lineno) elif args: cmdline = b' '.join([toolpath, args]) else: if args: cmdline = b' '.join([toolpath, args]) if cmdline is None: # editor was not specified by editor-tools configuration, fall # back to older tortoisehg.editor OpenAtLine parsing cmdline = b' '.join([toolpath] + files) # default try: regexp = re.compile(rb'\[([^\]]*)\]') expanded = [] pos = 0 for m in regexp.finditer(toolpath): expanded.append(toolpath[pos:m.start()-1]) phrase = toolpath[m.start()+1:m.end()-1] pos = m.end()+1 if b'$LINENUM' in phrase: if lineno is None: # throw away phrase continue phrase = phrase.replace(b'$LINENUM', b'%d' % lineno) elif b'$SEARCH' in phrase: if search is None: # throw away phrase continue phrase = phrase.replace(b'$SEARCH', search) if b'$FILE' in phrase: phrase = phrase.replace(b'$FILE', files[0]) files = [] expanded.append(phrase) expanded.append(toolpath[pos:]) cmdline = b' '.join(expanded + files) except ValueError: # '[' or ']' not found pass except TypeError: # variable expansion failed pass shell = not (len(cwd) >= 2 and cwd[0:2] == br'\\') try: if b'$FILES' in cmdline: cmdline = cmdline.replace(b'$FILES', b' '.join(files)) subprocess.Popen(procutil.tonativestr(cmdline), shell=shell, creationflags=openflags, stderr=None, stdout=None, stdin=None, cwd=procutil.tonativestr(cwd)) elif b'$FILE' in cmdline: for file in files: cmd = cmdline.replace(b'$FILE', file) subprocess.Popen(procutil.tonativestr(cmd), shell=shell, creationflags=openflags, stderr=None, stdout=None, stdin=None, cwd=procutil.tonativestr(cwd)) else: # assume filenames were expanded already subprocess.Popen(procutil.tonativestr(cmdline), shell=shell, creationflags=openflags, stderr=None, stdout=None, stdin=None, cwd=procutil.tonativestr(cwd)) except (OSError, EnvironmentError) as e: QMessageBox.warning(parent, _('Editor launch failure'), u'%s : %s' % (hglib.tounicode(cmdline), hglib.exception_str(e))) def openshell( root: bytes, reponame: bytes, ui: Optional[uimod.ui] = None, ) -> None: if not os.path.exists(root): WarningMsgBox( _('Failed to open path in terminal'), _('"%s" is not a valid directory') % hglib.tounicode(root)) return shell, args = terminal.detectterminal(ui) if shell: if args: shell = shell + b' ' + util.expandpath(args) # check invalid expression in tortoisehg.shell. we shouldn't apply # string formatting to untrusted value, but too late to change syntax. try: shell % {b'root': b'', b'reponame': b''} except (KeyError, TypeError, ValueError): # KeyError: "%(invalid)s", TypeError: "%(root)d", ValueError: "%" ErrorMsgBox(_('Failed to open path in terminal'), _('Invalid configuration: %s') % hglib.tounicode(shell)) return shellcmd = shell % {b'root': root, b'reponame': reponame} cwd = os.getcwd() try: # Unix: QProcess.startDetached(program) cannot parse single-quoted # parameters built using procutil.shellquote(). # Windows: subprocess.Popen(program, shell=True) cannot spawn # cmd.exe in new window, probably because the initial cmd.exe is # invoked with SW_HIDE. os.chdir(root) if os.name == 'nt': # can't parse shellcmd in POSIX way started = QProcess.startDetached(hglib.tounicode(shellcmd)) else: fullargs = pycompat.maplist(hglib.tounicode, pycompat.shlexsplit(shellcmd)) started = QProcess.startDetached(fullargs[0], fullargs[1:]) finally: os.chdir(cwd) if not started: ErrorMsgBox(_('Failed to open path in terminal'), _('Unable to start the following command:'), hglib.tounicode(shellcmd)) else: InfoMsgBox(_('No shell configured'), _('A terminal shell must be configured')) def qbytearray_or_bytes_to_bytes(val: Union[QByteArray, bytes]) -> bytes: if isinstance(val, bytes): return cast(bytes, val) else: return val.data() def keyCombinationValue(combination) -> int: if isinstance(combination, int): return combination # PyQt5 else: return combination.toCombined() # QKeyCombination # 'type' argument of QSettings.value() can't be used because: # a) it appears to be broken before PyQt 4.11.x (#4882) # b) it may raise TypeError if a setting has a value of an unexpected type def readBool(qs: QSettings, key: Text, default: bool = False) -> bool: """Read the specified value from QSettings and coerce into bool""" v = qs.value(key, default) if hglib.isbasestring(v): # qvariant.cpp:qt_convertToBool() return not (v == '0' or v == 'false' or v == '') return bool(v) def readByteArray(qs: QSettings, key: Text, default: bytes = b'') -> QByteArray: """Read the specified value from QSettings and coerce into QByteArray""" v = qs.value(key, default) if v is None: return QByteArray(default) try: return QByteArray(v) except TypeError: return QByteArray(default) def readInt(qs: QSettings, key: Text, default: int = 0) -> int: """Read the specified value from QSettings and coerce into int""" v = qs.value(key, default) if v is None: return int(default) try: return int(v) except (TypeError, ValueError): return int(default) def readString(qs: QSettings, key: Text, default: Text = '') -> Text: """Read the specified value from QSettings and coerce into string""" v = qs.value(key, default) if v is None: return pycompat.unicode(default) try: return pycompat.unicode(v) except ValueError: return pycompat.unicode(default) def readStringList( qs: QSettings, key: Text, default: Iterable[Text] = (), ) -> List[Text]: """Read the specified value from QSettings and coerce into string list""" v = qs.value(key, default) if v is None: return list(default) if hglib.isbasestring(v): # qvariant.cpp:convert() return [v] try: return [pycompat.unicode(e) for e in v] except (TypeError, ValueError): return list(default) def isDarkTheme(palette: Optional[QPalette] = None) -> bool: """True if white-on-black color scheme is preferable""" if not palette: palette = QApplication.palette() return palette.color(QPalette.ColorRole.Base).black() >= 0x80 # _styles maps from ui labels to effects # _effects maps an effect to font style properties. We define a limited # set of _effects, since we convert color effect names to font style # effect programatically. # TODO: update ui._styles instead of color._defaultstyles _styles: Dict[str, str] = pycompat.rapply(pycompat.sysstr, color._defaultstyles) _effects = { 'bold': 'font-weight: bold', 'italic': 'font-style: italic', 'underline': 'text-decoration: underline', } _thgstyles = { # Styles defined by TortoiseHg 'log.branch': 'black #aaffaa_background', 'log.patch': 'black #aaddff_background', 'log.unapplied_patch': 'black #dddddd_background', 'log.tag': 'black #ffffaa_background', 'log.bookmark': 'blue #ffffaa_background', 'log.curbookmark': 'black #ffdd77_background', 'log.modified': 'black #ffddaa_background', 'log.added': 'black #aaffaa_background', 'log.removed': 'black #ffcccc_background', 'log.warning': 'black #ffcccc_background', 'status.deleted': 'red bold', 'ui.error': 'red bold #ffcccc_background', 'ui.warning': 'black bold #ffffaa_background', 'control': 'black bold #dddddd_background', # Topic related styles 'log.topic': 'black bold #2ecc71_background', 'topic.active': 'black bold #2ecc71_background', } thgstylesheet = '* { white-space: pre; font-family: monospace;' \ ' font-size: 9pt; }' tbstylesheet = 'QToolBar { border: 0px }' def configstyles(ui: uimod.ui) -> None: # extensions may provide more labels and default effects for name, ext in extensions.extensions(): extstyle = getattr(ext, 'colortable', {}) _styles.update(pycompat.rapply(pycompat.sysstr, extstyle)) # tortoisehg defines a few labels and default effects _styles.update(_thgstyles) # allow the user to override for status, cfgeffects in ui.configitems(b'color'): # type: Tuple[bytes, bytes] if b'.' not in status: continue cfgeffects = ui.configlist(b'color', status) _styles[pycompat.sysstr(status)] = pycompat.sysstr(b' '.join(cfgeffects)) for status, cfgeffects in ui.configitems(b'thg-color'): # type: Tuple[bytes, bytes] if b'.' not in status: continue cfgeffects = ui.configlist(b'thg-color', status) _styles[pycompat.sysstr(status)] = pycompat.sysstr(b' '.join(cfgeffects)) # See https://doc.qt.io/qt-4.8/richtext-html-subset.html # and https://www.w3.org/TR/SVG/types.html#ColorKeywords def geteffect(labels: Text) -> Text: 'map labels like "log.date" to Qt font styles' effects = [] # Multiple labels may be requested for l in labels.split(): if not l: continue # Each label may request multiple effects es = _styles.get(l, '') for e in es.split(): if e in _effects: effects.append(_effects[e]) elif e.endswith('_background'): e = e[:-11] if e.startswith('#') or e in QColor.colorNames(): effects.append('background-color: ' + e) elif e.startswith('#') or e in QColor.colorNames(): # Accept any valid QColor effects.append('color: ' + e) return ';'.join(effects) def gettextcoloreffect(labels: Text) -> QColor: """Map labels like "log.date" to foreground color if available""" for l in labels.split(): if not l: continue for e in _styles.get(l, '').split(): if e.startswith('#') or e in QColor.colorNames(): return QColor(e) return QColor() def getbgcoloreffect(labels: Text) -> QColor: """Map labels like "log.date" to background color if available Returns QColor object. You may need to check validity by isValid(). """ for l in labels.split(): if not l: continue for e in _styles.get(l, '').split(): if e.endswith('_background'): return QColor(e[:-11]) return QColor() # TortoiseHg uses special names for the properties controlling the appearance of # its interface elements. # # This dict maps internal style names to corresponding CSS property names. NAME_MAP = { 'fg': 'color', 'bg': 'background-color', 'family': 'font-family', 'size': 'font-size', 'weight': 'font-weight', 'space': 'white-space', 'style': 'font-style', 'decoration': 'text-decoration', } def markup(msg: AnyStr, **styles: Text) -> Text: style = {'white-space': 'pre'} for name, value in styles.items(): if not value: continue if name in NAME_MAP: name = NAME_MAP[name] style[name] = value style = ';'.join(['%s: %s' % t for t in style.items()]) msg = hglib.tounicode(msg) # TODO: enforce unicode arg? msg = htmlescape(msg, False) msg = msg.replace('\n', '
                                                                                                            ') return u'%s' % (style, msg) def descriptionhtmlizer(ui: uimod.ui) -> Callable[[AnyStr], Text]: """Return a function to mark up ctx.description() as an HTML >>> from mercurial import ui >>> u = ui.ui() >>> htmlize = descriptionhtmlizer(u) >>> htmlize('foo \\n& ') u'foo <bar> \\n& <baz>' changeset hash link: >>> htmlize('foo af50a62e9c20 bar') u'foo af50a62e9c20 bar' >>> htmlize('af50a62e9c2040dcdaf61ba6a6400bb45ab56410') # doctest: +ELLIPSIS u'af...10' http/https links: >>> s = htmlize('foo http://example.com:8000/foo?bar=baz&bax#blah') >>> (s[:63], s[63:]) # doctest: +NORMALIZE_WHITESPACE (u'foo ', u'http://example.com:8000/foo?bar=baz&bax#blah') >>> htmlize('https://example/') u'https://example/' >>> htmlize('') u'<https://example/>' issue links: >>> u.setconfig(b'tortoisehg', b'issue.regex', br'#(\\d+)\\b') >>> u.setconfig(b'tortoisehg', b'issue.link', b'http://example/issue/{1}/') >>> htmlize = descriptionhtmlizer(u) >>> htmlize('foo #123') u'foo #123' missing issue.link setting: >>> u.setconfig(b'tortoisehg', b'issue.link', b'') >>> htmlize = descriptionhtmlizer(u) >>> htmlize('foo #123') u'foo #123' too many replacements in issue.link: >>> u.setconfig(b'tortoisehg', b'issue.link', b'http://example/issue/{1}/{2}') >>> htmlize = descriptionhtmlizer(u) >>> htmlize('foo #123') u'foo #123' invalid regexp in issue.regex: >>> u.setconfig(b'tortoisehg', b'issue.regex', b'(') >>> htmlize = descriptionhtmlizer(u) >>> htmlize('foo #123') u'foo #123' >>> htmlize('http://example/') u'http://example/' """ csmatch = r'(\b[0-9a-f]{12}(?:[0-9a-f]{28})?\b)' httpmatch = r'(\b(http|https)://([-A-Za-z0-9+&@#/%?=~_()|!:,.;]*' \ r'[-A-Za-z0-9+&@#/%=~_()|]))' regexp = r'%s|%s' % (csmatch, httpmatch) bodyre = re.compile(regexp) issuematch = hglib.tounicode(ui.config(b'tortoisehg', b'issue.regex')) issuerepl = hglib.tounicode(ui.config(b'tortoisehg', b'issue.link')) if issuematch and issuerepl: regexp += '|(%s)' % issuematch try: bodyre = re.compile(regexp) except re.error: pass def htmlize(desc: AnyStr) -> Text: """Mark up ctx.description() [localstr] as an HTML [unicode]""" desc = hglib.tounicode(desc) buf = '' pos = 0 for m in bodyre.finditer(desc): a, b = m.span() if a >= pos: buf += htmlescape(desc[pos:a], False) pos = b groups = m.groups() if groups[0]: cslink = htmlescape(groups[0]) buf += '%s' % (cslink, cslink) if groups[1]: urllink = htmlescape(groups[1]) buf += '%s' % (urllink, urllink) if len(groups) > 4 and groups[4]: issue = htmlescape(groups[4]) issueparams = groups[4:] try: link = re.sub(r'\{(\d+)\}', lambda m: issueparams[int(m.group(1))], issuerepl) link = htmlescape(link) buf += '%s' % (link, issue) except IndexError: buf += issue if pos < len(desc): buf += htmlescape(desc[pos:], False) return buf return htmlize _iconcache: Dict[Text, QIcon] = {} if getattr(sys, 'frozen', False) and os.name == 'nt': def iconpath(f: Text, *insidef: Text) -> Text: return posixpath.join(':/icons', f, *insidef) else: def iconpath(f: Text, *insidef: Text) -> Text: return os.path.join(paths.get_icon_path(), f, *insidef) if hasattr(QIcon, 'hasThemeIcon'): # PyQt>=4.7 def _findthemeicon(name: Text) -> Optional[QIcon]: if QIcon.hasThemeIcon(name): return QIcon.fromTheme(name) else: def _findthemeicon(name: Text) -> Optional[QIcon]: pass def _findcustomicon(name: Text) -> Optional[QIcon]: # let a user set the icon of a custom tool button if os.path.isabs(name): path = name if QFile.exists(path): return QIcon(path) return None # https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html _SCALABLE_ICON_PATHS = [(QSize(), 'scalable/actions', '.svg'), (QSize(), 'scalable/apps', '.svg'), (QSize(), 'scalable/status', '.svg'), (QSize(16, 16), '16x16/actions', '.png'), (QSize(16, 16), '16x16/apps', '.png'), (QSize(16, 16), '16x16/mimetypes', '.png'), (QSize(16, 16), '16x16/status', '.png'), (QSize(22, 22), '22x22/actions', '.png'), (QSize(32, 32), '32x32/actions', '.png'), (QSize(32, 32), '32x32/status', '.png'), (QSize(24, 24), '24x24/actions', '.png')] def getallicons() -> List[Text]: """Get a sorted, unique list of all available icons""" iconset = set() for size, subdir, sfx in _SCALABLE_ICON_PATHS: path = iconpath(subdir) d = QDir(path) d.setNameFilters(['*%s' % sfx]) for iconname in d.entryList(): iconset.add(pycompat.unicode(iconname).rsplit('.', 1)[0]) return sorted(iconset) def _findscalableicon(name: Text) -> Optional[QIcon]: """Find icon from qrc by using freedesktop-like icon lookup""" o = QIcon() for size, subdir, sfx in _SCALABLE_ICON_PATHS: path = iconpath(subdir, name + sfx) if QFile.exists(path): for mode in (QIcon.Mode.Normal, QIcon.Mode.Active): o.addFile(path, size, mode) if not o.isNull(): return o def geticon(name: Text) -> QIcon: """ Return a QIcon for the specified name. (the given 'name' parameter must *not* provide the extension). This searches for the icon from theme, Qt resource or icons directory, named as 'name.(svg|png|ico)'. """ try: return _iconcache[name] except KeyError: icon = (_findthemeicon(name) or _findscalableicon(name) or _findcustomicon(name) or QIcon()) assert icon is not None # help pytype _iconcache[name] = icon return _iconcache[name] def getoverlaidicon(base: QIcon, overlay: QIcon) -> QIcon: """Generate an overlaid icon""" pixmap = base.pixmap(16, 16) painter = QPainter(pixmap) painter.setCompositionMode(QPainter.CompositionMode.CompositionMode_SourceOver) painter.drawPixmap(0, 0, overlay.pixmap(16, 16)) del painter return QIcon(pixmap) _pixmapcache: Dict[Text, QPixmap] = {} def getpixmap(name: Text, width: int = 16, height: int = 16) -> QPixmap: key = '%s_%sx%s' % (name, width, height) try: return _pixmapcache[key] except KeyError: pixmap = geticon(name).pixmap(width, height) _pixmapcache[key] = pixmap return pixmap def getcheckboxpixmap( state: QStyle.StateFlag, bgcolor: Union[QColor, Qt.GlobalColor], widget: QWidget ) -> QPixmap: # TODO: switch state to QStyle.State enum pix = QPixmap(16,16) painter = QPainter(pix) painter.fillRect(0, 0, 16, 16, bgcolor) option = QStyleOptionButton() style = QApplication.style() option.initFrom(widget) option.rect = style.subElementRect(QStyle.SubElement.SE_CheckBoxIndicator, option, None) option.rect.moveTo(1, 1) option.state |= state style.drawPrimitive(QStyle.PrimitiveElement.PE_IndicatorCheckBox, option, painter) return pix # On machines with a retina display running OSX (i.e. "darwin"), most icons are # too big because Qt4 does not support retina displays very well. # To fix that we let users force tortoishg to use smaller icons by setting a # THG_RETINA environment variable to True (or any value that mercurial parses # as True. # Whereas on Linux, Qt4 has no support for high dpi displays at all causing # icons to be rendered unusably small. The workaround for that is to render # the icons at double the normal size. # TODO: Remove this hack after upgrading to Qt5. IS_RETINA = stringutil.parsebool(encoding.environ.get(b'THG_RETINA', b'0')) def _fixIconSizeForRetinaDisplay(s: int) -> int: if IS_RETINA: if sys.platform == 'darwin': if s > 1: s //= 2 elif sys.platform == 'linux2': s *= 2 return s def smallIconSize() -> QSize: style = QApplication.style() s = style.pixelMetric(QStyle.PixelMetric.PM_SmallIconSize) s = _fixIconSizeForRetinaDisplay(s) return QSize(s, s) def toolBarIconSize() -> QSize: if sys.platform == 'darwin': # most Mac users will have laptop-sized screens and prefer a smaller # toolbar to preserve vertical space. style = QCommonStyle() else: style = QApplication.style() s = style.pixelMetric(QStyle.PixelMetric.PM_ToolBarIconSize) s = _fixIconSizeForRetinaDisplay(s) return QSize(s, s) def listviewRetinaIconSize() -> QSize: return QSize(16, 16) def treeviewRetinaIconSize() -> QSize: return QSize(16, 16) def barRetinaIconSize() -> QSize: return QSize(10, 10) class ThgFont(QObject): changed = pyqtSignal(QFont) def __init__(self, name: Text) -> None: QObject.__init__(self) self.myfont = QFont() self.myfont.fromString(name) def font(self) -> QFont: return self.myfont def setFont(self, f: QFont) -> None: self.myfont = f self.changed.emit(f) _fontdefaults: Dict[Text, Text] = { 'fontcomment': 'monospace,10', 'fontdiff': 'monospace,10', 'fonteditor': 'monospace,10', 'fontlog': 'monospace,10', 'fontoutputlog': 'sans,8' } if sys.platform == 'darwin': _fontdefaults['fontoutputlog'] = 'sans,10' _fontcache: Dict[Text, ThgFont] = {} def initfontcache(ui: uimod.ui): for name in _fontdefaults: fname = ui.config(b'tortoisehg', pycompat.sysbytes(name), pycompat.sysbytes(_fontdefaults[name])) _fontcache[name] = ThgFont(hglib.tounicode(fname)) def getfont(name: Text) -> ThgFont: assert name in _fontdefaults, (name, _fontdefaults) return _fontcache[name] def CommonMsgBox( icon: QMessageBox.Icon, title: Text, main: Text, text: Text = '', buttons: "Union[QMessageBox.StandardButtons, QMessageBox.StandardButton]" = QMessageBox.StandardButton.Ok, labels: Optional[Iterable[Tuple[QMessageBox.StandardButton, Text]]] = None, parent: Optional[QWidget] = None, defaultbutton: Optional[Union[QPushButton, QMessageBox.StandardButton]] = None, ) -> int: if labels is None: labels = [] msg = QMessageBox(parent) msg.setIcon(icon) msg.setWindowTitle(title) msg.setStandardButtons(buttons) for button_id, label in labels: msg.button(button_id).setText(label) if defaultbutton: msg.setDefaultButton(defaultbutton) msg.setText('%s' % main) info = '' for line in text.split('\n'): info += '%s
                                                                                                            ' % line msg.setInformativeText(info) return msg.exec() def InfoMsgBox(*args: Text, **kargs) -> int: return CommonMsgBox(QMessageBox.Icon.Information, *args, **kargs) def WarningMsgBox(*args: Text, **kargs) -> int: return CommonMsgBox(QMessageBox.Icon.Warning, *args, **kargs) def ErrorMsgBox(*args: Text, **kargs) -> int: return CommonMsgBox(QMessageBox.Icon.Critical, *args, **kargs) def QuestionMsgBox(*args: Text, **kargs) -> bool: btn = QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.No res = CommonMsgBox(QMessageBox.Icon.Question, buttons=btn, *args, **kargs) return res == QMessageBox.StandardButton.Yes class CustomPrompt(QMessageBox): def __init__( self, title: AnyStr, message: AnyStr, parent: Optional[QWidget], choices: Iterable[Text], default: Optional[int] = None, esc: Optional[int] = None, files: Optional[Iterable[Union[bytes, Text]]] = None, ) -> None: # Note: `files` is typed as `Union[bytes, str]` instead of `AnyStr` # because the latter is defined with TypeVar, and that would enforce # the same type as `title` and `message` for a particular invocation. # IOW, a str title would prevent a list of bytes for the files. QMessageBox.__init__(self, parent) # TODO: force args to Text self.setWindowTitle(hglib.tounicode(title)) self.setText(hglib.tounicode(message)) if files: self.setDetailedText('\n'.join(hglib.tounicode(f) for f in files)) self.hotkeys = {} for i, s in enumerate(choices): btn = self.addButton(s, QMessageBox.ButtonRole.AcceptRole) try: char = s[s.index('&')+1].lower() self.hotkeys[char] = btn except (ValueError, IndexError): pass if default == i: self.setDefaultButton(btn) if esc == i: self.setEscapeButton(btn) def run(self) -> int: self.exec() clicked = self.clickedButton() if clicked is None: return -1 return self.buttons().index(clicked) def keyPressEvent(self, event: QKeyEvent) -> None: for k, btn in self.hotkeys.items(): if event.text() == k: btn.clicked.emit(False) super(CustomPrompt, self).keyPressEvent(event) class ChoicePrompt(QDialog): def __init__(self, title: Text, message: Text, parent: QWidget, choices: List[Text], default: Optional[Text] = None) -> None: QDialog.__init__(self, parent) self.setWindowTitle(title) self.setWindowFlags(self.windowFlags() & ~Qt.WindowType.WindowContextHelpButtonHint) self.box = QHBoxLayout() self.vbox = QVBoxLayout() self.vbox.setSpacing(8) self.message_lbl = QLabel() self.message_lbl.setText(message) self.vbox.addWidget(self.message_lbl) self.choice_combo = combo = QComboBox() self.choices = choices combo.addItems(choices) if default: try: combo.setCurrentIndex(choices.index(default)) except: # Ignore a missing default value pass self.vbox.addWidget(combo) self.box.addLayout(self.vbox) vbox = QVBoxLayout() self.ok = QPushButton('&OK') self.ok.clicked.connect(self.accept) vbox.addWidget(self.ok) self.cancel = QPushButton('&Cancel') self.cancel.clicked.connect(self.reject) vbox.addWidget(self.cancel) vbox.addStretch() self.box.addLayout(vbox) self.setLayout(self.box) def run(self) -> Optional[Text]: if self.exec(): return self.choices[self.choice_combo.currentIndex()] return None def allowCaseChangingInput(combo: QComboBox) -> None: """Allow case-changing input of known combobox item QComboBox performs case-insensitive inline completion by default. It's all right, but sadly it implies case-insensitive check for duplicates, i.e. you can no longer enter "Foo" if the combobox contains "foo". For details, read QComboBoxPrivate::_q_editingFinished() and matchFlags() of src/gui/widgets/qcombobox.cpp. """ assert isinstance(combo, QComboBox) and combo.isEditable() combo.completer().setCaseSensitivity(Qt.CaseSensitivity.CaseSensitive) class BadCompletionBlocker(QObject): """Disable unexpected inline completion by enter key if selectAll()-ed If the selection state looks in the middle of the completion, QComboBox replaces the edit text by the current completion on enter key pressed. This is wrong in the following scenario: >>> from .qtgui import QKeyEvent >>> combo = QComboBox(editable=True) >>> combo.addItem('history value') >>> combo.setEditText('initial value') >>> combo.lineEdit().selectAll() >>> QApplication.sendEvent( ... combo, QKeyEvent(QEvent.Type.KeyPress, Qt.Key.Key_Enter, Qt.KeyboardModifier.NoModifier)) True >>> combo.currentText() 'history value' In this example, QLineControl picks the first item in the combo box because the completion prefix has not been set. BadCompletionBlocker is intended to work around this problem. >>> combo.installEventFilter(BadCompletionBlocker(combo)) >>> combo.setEditText('initial value') >>> combo.lineEdit().selectAll() >>> QApplication.sendEvent( ... combo, QKeyEvent(QEvent.Type.KeyPress, Qt.Key.Key_Enter, Qt.KeyboardModifier.NoModifier)) True >>> combo.currentText() 'initial value' For details, read QLineControl::processKeyEvent() and complete() of src/gui/widgets/qlinecontrol.cpp. """ def __init__(self, parent: QComboBox) -> None: super(BadCompletionBlocker, self).__init__(parent) if not isinstance(parent, QComboBox): raise ValueError('invalid object to watch: %r' % parent) def eventFilter(self, watched: QObject, event: QEvent) -> bool: if watched is not self.parent(): return super(BadCompletionBlocker, self).eventFilter(watched, event) if (event.type() != QEvent.Type.KeyPress or cast(QKeyEvent, event).key() not in (Qt.Key.Key_Enter, Qt.Key.Key_Return) or not watched.isEditable()): return False # deselect without completion if all text selected le = watched.lineEdit() if le.selectedText() == le.text(): le.deselect() return False class ActionPushButton(QPushButton): """Button which properties are defined by QAction like QToolButton""" def __init__(self, action: QAction, parent: Optional[QWidget] = None): super(ActionPushButton, self).__init__(parent) self.setAutoDefault(False) # action won't be used as dialog default self._defaultAction = action self.addAction(action) self.clicked.connect(action.trigger) self._copyActionProps() def actionEvent(self, event) -> None: if (event.type() == QEvent.Type.ActionChanged and event.action() is self._defaultAction): self._copyActionProps() super(ActionPushButton, self).actionEvent(event) def _copyActionProps(self) -> None: action = self._defaultAction self.setEnabled(action.isEnabled()) self.setText(action.text()) self.setToolTip(action.toolTip()) class PMButton(QPushButton): """Toggle button with plus/minus icon images""" def __init__( self, expanded: bool = True, parent: Optional[QWidget] = None ) -> None: QPushButton.__init__(self, parent) size = QSize(11, 11) self.setIconSize(size) self.setMaximumSize(size) self.setFlat(True) self.setAutoDefault(False) self.plus = QIcon(iconpath('expander-open.png')) self.minus = QIcon(iconpath('expander-close.png')) icon = expanded and self.minus or self.plus self.setIcon(icon) self.clicked.connect(self._toggle_icon) @pyqtSlot() def _toggle_icon(self) -> None: icon = self.is_expanded() and self.plus or self.minus self.setIcon(icon) def set_expanded(self, state: bool = True) -> None: icon = state and self.minus or self.plus self.setIcon(icon) def set_collapsed(self, state: bool = True) -> None: icon = state and self.plus or self.minus self.setIcon(icon) def is_expanded(self) -> bool: return self.icon().cacheKey() == self.minus.cacheKey() def is_collapsed(self) -> bool: return not self.is_expanded() class ClickableLabel(QLabel): clicked = pyqtSignal() def __init__( self, label: Text, parent: Optional[QWidget] = None, ): QLabel.__init__(self, parent) self.setText(label) def mouseReleaseEvent(self, event): self.clicked.emit() class ExpanderLabel(QWidget): expanded = pyqtSignal(bool) def __init__( self, label: Text, expanded: bool = True, stretch: bool = True, parent: Optional[QWidget] = None, ) -> None: QWidget.__init__(self, parent) box = QHBoxLayout() box.setSpacing(4) box.setContentsMargins(*(0,)*4) self.button = PMButton(expanded, self) self.button.clicked.connect(self.pm_clicked) box.addWidget(self.button) self.label = ClickableLabel(label, self) self.label.clicked.connect(self.button.click) box.addWidget(self.label) if not stretch: box.addStretch(0) self.setLayout(box) def pm_clicked(self) -> None: self.expanded.emit(self.button.is_expanded()) def set_expanded(self, state: bool = True) -> None: if not self.button.is_expanded() == state: self.button.set_expanded(state) self.expanded.emit(state) def is_expanded(self) -> bool: return self.button.is_expanded() class StatusLabel(QWidget): def __init__(self, parent: Optional[QWidget] = None) -> None: QWidget.__init__(self, parent) # same policy as status bar of QMainWindow self.setSizePolicy(QSizePolicy.Policy.Ignored, QSizePolicy.Policy.Fixed) box = QHBoxLayout() box.setContentsMargins(*(0,)*4) self.status_icon = QLabel() self.status_icon.setMaximumSize(16, 16) self.status_icon.setAlignment(Qt.AlignmentFlag.AlignCenter) box.addWidget(self.status_icon) self.status_text = QLabel() self.status_text.setAlignment(Qt.AlignmentFlag.AlignVCenter | Qt.AlignmentFlag.AlignLeft) box.addWidget(self.status_text) box.addStretch(0) self.setLayout(box) def set_status( self, text: Text, icon: Optional[Union[bool, Text, QIcon]] = None, ) -> None: self.set_text(text) self.set_icon(icon) def clear_status(self) -> None: self.clear_text() self.clear_icon() def set_text(self, text: Optional[Text] = '') -> None: if text is None: text = '' self.status_text.setText(text) def clear_text(self) -> None: self.set_text() def set_icon(self, icon: Optional[Union[bool, Text, QIcon]] = None) -> None: if icon is None: self.clear_icon() else: if isinstance(icon, bool): icon = geticon(icon and 'thg-success' or 'thg-error') elif hglib.isbasestring(icon): icon = geticon(icon) elif not isinstance(icon, QIcon): raise TypeError('%s: bool, str or QIcon' % type(icon)) self.status_icon.setVisible(True) self.status_icon.setPixmap(icon.pixmap(16, 16)) def clear_icon(self) -> None: self.status_icon.setHidden(True) class LabeledSeparator(QWidget): def __init__( self, label: Optional[Union[QLabel, Text]] = None, parent: Optional[QWidget] = None, ) -> None: QWidget.__init__(self, parent) box = QHBoxLayout() box.setContentsMargins(*(0,)*4) if label: # TODO: It looks like all callers only pass Text if hglib.isbasestring(label): label = QLabel(label) box.addWidget(label) sep = QFrame() sep.setFrameShadow(QFrame.Shadow.Sunken) sep.setFrameShape(QFrame.Shape.HLine) box.addWidget(sep, 1, Qt.AlignmentFlag.AlignVCenter) self.setLayout(box) class WidgetGroups(object): """ Support for bulk-updating properties of Qt widgets """ def __init__(self) -> None: object.__init__(self) # help pytype by forward declaring self.groups: Dict[Text, List[QWidget]] = {} self.clear(all=True) ### Public Methods ### def add(self, widget: QWidget, group: Text = 'default') -> None: if group not in self.groups: self.groups[group] = [] widgets = self.groups[group] if widget not in widgets: widgets.append(widget) def remove(self, widget: QWidget, group: Text = 'default') -> None: if group not in self.groups: return widgets = self.groups[group] if widget in widgets: widgets.remove(widget) def clear(self, group: Text = 'default', all: bool = True) -> None: if all: self.groups = {} else: del self.groups[group] def set_prop( self, prop: Text, value: object, group: Text = 'default', cond: Optional[Callable[[QWidget], bool]] = None, ) -> None: if group not in self.groups: return widgets = self.groups[group] if callable(cond): widgets = [w for w in widgets if cond(w)] for widget in widgets: getattr(widget, prop)(value) def set_visible(self, *args, **kargs) -> None: self.set_prop('setVisible', *args, **kargs) def set_enable(self, *args, **kargs) -> None: self.set_prop('setEnabled', *args, **kargs) class DialogKeeper(QObject): """Manage non-blocking dialogs identified by creation parameters Example "open single dialog per type": >>> mainwin = QWidget() >>> dialogs = DialogKeeper(lambda self, cls: cls(self), parent=mainwin) >>> dlg1 = dialogs.open(QDialog) >>> dlg1.parent() is mainwin True >>> dlg2 = dialogs.open(QDialog) >>> dlg1 is dlg2 True >>> dialogs.count() 1 closed dialog will be deleted: >>> from .qtcore import QEventLoop, QTimer >>> def processDeferredDeletion(): ... loop = QEventLoop() ... QTimer.singleShot(0, loop.quit) ... loop.exec() >>> dlg1.reject() >>> processDeferredDeletion() >>> dialogs.count() 0 and recreates as necessary: >>> dlg3 = dialogs.open(QDialog) >>> dlg1 is dlg3 False creates new dialog of the same type: >>> dlg4 = dialogs.openNew(QDialog) >>> dlg3 is dlg4 False >>> dialogs.count() 2 and the last dialog is preferred: >>> dialogs.open(QDialog) is dlg4 True >>> dlg4.reject() >>> processDeferredDeletion() >>> dialogs.count() 1 >>> dialogs.open(QDialog) is dlg3 True The following example is not recommended because it creates reference cycles and makes hard to garbage-collect:: self._dialogs = DialogKeeper(self._createDialog) self._dialogs = DialogKeeper(lambda *args: Foo(self)) """ def __init__( self, createdlg: Callable[..., _W], genkey: Optional[Callable[..., Hashable]] = None, parent: Optional[QObject] = None ) -> None: super(DialogKeeper, self).__init__(parent) self._createdlg: Callable[..., _W] = createdlg self._genkey = genkey or DialogKeeper._defaultgenkey self._keytodlgs = {} # key: [dlg, ...] def open(self, *args, **kwargs) -> _W: """Create new dialog or reactivate existing dialog""" dlg = self._preparedlg(self._genkey(self.parent(), *args, **kwargs), args, kwargs) dlg.show() dlg.raise_() dlg.activateWindow() return dlg def openNew(self, *args, **kwargs) -> _W: """Create new dialog even if there exists the specified one""" dlg = self._populatedlg(self._genkey(self.parent(), *args, **kwargs), args, kwargs) dlg.show() dlg.raise_() dlg.activateWindow() return dlg def _preparedlg(self, key, args, kwargs) -> _W: if key in self._keytodlgs: assert len(self._keytodlgs[key]) > 0, key return self._keytodlgs[key][-1] # prefer latest else: return self._populatedlg(key, args, kwargs) def _populatedlg(self, key, args, kwargs) -> _W: dlg = self._createdlg(self.parent(), *args, **kwargs) if key not in self._keytodlgs: self._keytodlgs[key] = [] self._keytodlgs[key].append(dlg) dlg.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose) dlg.destroyed.connect(self._cleanupdlgs) return dlg # "destroyed" is emitted soon after Python wrapper is deleted @pyqtSlot() def _cleanupdlgs(self) -> None: for key, dialogs in list(self._keytodlgs.items()): livedialogs = [dlg for dlg in dialogs if not sip.isdeleted(dlg)] if livedialogs: self._keytodlgs[key] = livedialogs else: del self._keytodlgs[key] def count(self) -> int: return sum(len(dlgs) for dlgs in self._keytodlgs.values()) @staticmethod def _defaultgenkey(_parent, *args, **_kwargs): return args class TaskWidget(object): def canswitch(self) -> bool: """Return True if the widget allows to switch away from it""" return True def canExit(self) -> bool: return True def reload(self) -> None: pass class DemandWidget(QWidget): 'Create a widget the first time it is shown' def __init__( self, createfuncname: Text, createinst: object, parent: Optional[QWidget] = None, ) -> None: super(DemandWidget, self).__init__(parent) # We store a reference to the create function name to avoid having a # hard reference to the bound function, which prevents it being # disposed. Weak references to bound functions don't work. self._createfuncname = createfuncname self._createinst = weakref.ref(createinst) self._widget: Optional[QWidget] = None vbox = QVBoxLayout() vbox.setContentsMargins(*(0,)*4) self.setLayout(vbox) def showEvent(self, event): """create the widget if necessary""" self.get() super(DemandWidget, self).showEvent(event) def forward(self, funcname: Text, *args, **opts) -> Optional[Any]: if self._widget: return getattr(self._widget, funcname)(*args, **opts) return None def get(self) -> QWidget: """Returns the stored widget""" if self._widget is None: func = getattr(self._createinst(), self._createfuncname, None) self._widget = func() self.layout().addWidget(self._widget) return self._widget def canswitch(self) -> bool: """Return True if the widget allows to switch away from it""" if self._widget is None: return True return self._widget.canswitch() def canExit(self) -> bool: if self._widget is None: return True return self._widget.canExit() def __getattr__(self, name: Text) -> Any: return getattr(self._widget, name) class Spacer(QWidget): """Spacer to separate controls in a toolbar""" def __init__( self, width: int, height: int, parent: Optional[QWidget] = None, ) -> None: QWidget.__init__(self, parent) self.width = width self.height = height def sizeHint(self) -> QSize: return QSize(self.width, self.height) def getCurrentUsername(widget: Optional[QWidget], repo: localrepo.localrepository, opts: Optional[Dict[Text, Text]] = None) -> Optional[Text]: if opts: # 1. Override has highest priority user = opts.get('user') if user: return user # 2. Read from repository user = hglib.configuredusername(repo.ui) if user: return hglib.tounicode(user) # 3. Get a username from the user QMessageBox.information(widget, _('Please enter a username'), _('You must identify yourself to Mercurial'), QMessageBox.StandardButton.Ok) from tortoisehg.hgqt.settings import SettingsDialog dlg = SettingsDialog(False, focus='ui.username') dlg.exec() repo.invalidateui() return hglib.tounicode(hglib.configuredusername(repo.ui)) class _EncodingSafeInputDialog(QInputDialog): def accept(self) -> None: try: hglib.fromunicode(self.textValue()) return super(_EncodingSafeInputDialog, self).accept() except UnicodeEncodeError: WarningMsgBox(_('Text Translation Failure'), _('Unable to translate input to local encoding.'), parent=self) def getTextInput( parent: Optional[QWidget], title: Text, label: Text, mode: QLineEdit.EchoMode = QLineEdit.EchoMode.Normal, text: Text = '', flags: "Union[Qt.WindowType, Qt.WindowFlags]" = Qt.WindowType.Widget, ) -> Tuple[Text, bool]: flags |= (Qt.WindowType.CustomizeWindowHint | Qt.WindowType.WindowTitleHint | Qt.WindowType.WindowCloseButtonHint) dlg = _EncodingSafeInputDialog(parent, flags) dlg.setWindowTitle(title) dlg.setLabelText(label) dlg.setTextValue(text) dlg.setTextEchoMode(mode) r = dlg.exec() dlg.setParent(None) # so that garbage collected return r and dlg.textValue() or '', bool(r) def keysequence( o: Union[QKeySequence, QKeySequence.StandardKey, Text, int], ) -> Union[QKeySequence, QKeySequence.StandardKey]: """Create QKeySequence from string or QKeySequence""" if isinstance(o, (QKeySequence, QKeySequence.StandardKey)): return o try: return getattr(QKeySequence, str(o)) # standard key except AttributeError: return QKeySequence(o) def newshortcutsforstdkey( key: QKeySequence.StandardKey, *args, **kwargs, ) -> List[QShortcut]: """Create [QShortcut,...] for all key bindings of the given StandardKey""" return [QShortcut(keyseq, *args, **kwargs) for keyseq in QKeySequence.keyBindings(key)] class PaletteSwitcher(object): """ Class that can be used to enable a predefined, alterantive background color for a widget This is normally used to change the color of widgets when they display some "filtered" content which is a subset of the actual widget contents. The alternative background color is fixed, and depends on the original background color (dark and light backgrounds use a different alternative color). The alterenative color cannot be changed because the idea is to set a consistent "filter" style for all widgets. An instance of this class must be added as a property of the widget whose background we want to change. The constructor takes the "target widget" as its only parameter. In order to enable or disable the background change, simply call the enablefilterpalette() method. """ def __init__(self, targetwidget: QWidget) -> None: self._targetwref = weakref.ref(targetwidget) # avoid circular ref self._defaultpalette = targetwidget.palette() if not isDarkTheme(self._defaultpalette): filterbgcolor = QColor('#FFFFB7') else: filterbgcolor = QColor('darkgrey') self._filterpalette = QPalette() self._filterpalette.setColor(QPalette.ColorRole.Base, filterbgcolor) def enablefilterpalette(self, enabled: bool = False) -> None: targetwidget = self._targetwref() if not targetwidget: return if enabled: pl = self._filterpalette else: pl = self._defaultpalette targetwidget.setPalette(pl) def setContextMenuShortcut( action: QAction, shortcut: Union[QKeySequence, str], ) -> None: """Set shortcut for a context menu action, making sure it's visible""" action.setShortcut(shortcut) if QT_VERSION >= 0x50a00 and PYQT_VERSION >= 0x50a00: action.setShortcutVisibleInContextMenu(True) def setContextMenuShortcuts(action: QAction, shortcuts: List[QKeySequence]) -> None: """Set shortcuts for a context menu action, making sure it's visible""" action.setShortcuts(shortcuts) if QT_VERSION >= 0x50a00 and PYQT_VERSION >= 0x50a00: action.setShortcutVisibleInContextMenu(True) def getMappedStringSignal(signalMapper: QSignalMapper) -> pyqtBoundSignal: try: return signalMapper.mappedString[str] except AttributeError: # qt < 5.15 return signalMapper.mapped[str] def toCheckStateEnum(value: Union[int, Qt.CheckState]) -> Qt.CheckState: """Coerce a Qt.CheckState value to the corresponding enum value.""" if PYQT_VERSION >= 0x060000: if isinstance(value, int): # pytype: disable=attribute-error return next(e for e in Qt.CheckState if e.value == value) # pytype: enable=attribute-error return cast(Qt.CheckState, value) def qDropEventPosition(event: QDropEvent) -> QPoint: """Retrieve QPoint position for the drop event""" if QT_VERSION >= 0x060000: return event.position().toPoint() # pytype: disable=attribute-error else: return event.pos() # pytype: disable=attribute-error ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/qtnetwork.py0000644000000000000000000000111514672254332020065 0ustar00rootroot# qtnetwork.py - PyQt5/6 compatibility wrapper # # Copyright 2015 Yuya Nishihara # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. """Thin compatibility wrapper for QtNetwork""" from __future__ import annotations from .qtcore import QT_API if QT_API == 'PyQt6': from PyQt6.QtNetwork import * # pytype: disable=import-error elif QT_API == 'PyQt5': from PyQt5.QtNetwork import * # pytype: disable=import-error else: raise RuntimeError('unsupported Qt API: %s' % QT_API) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730809007.0 tortoisehg-6.9/tortoisehg/hgqt/quickop.py0000644000000000000000000002667714712406257017526 0ustar00rootroot# quickop.py - TortoiseHg's dialog for quick dirstate operations # # Copyright 2009 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os import sys from typing import ( List, ) from .qtcore import ( QObject, QSettings, Qt, ) from .qtgui import ( QCheckBox, QDialog, QDialogButtonBox, QKeySequence, QLabel, QHBoxLayout, QPushButton, QShortcut, QVBoxLayout, ) from hgext.largefiles import ( lfutil, ) from mercurial import ( error, pycompat, util, ) from ..util import ( hglib, shlib, ) from ..util.i18n import _ from . import ( cmdcore, cmdui, lfprompt, qtlib, status, ) LABELS = { 'add': (_('Checkmark files to add'), _('Add')), 'forget': (_('Checkmark files to forget'), _('Forget')), 'revert': (_('Checkmark files to revert'), _('Revert')), 'remove': (_('Checkmark files to remove'), _('Remove')),} ICONS = { 'add': 'hg-add', 'forget': 'hg-remove', 'revert': 'hg-revert', 'remove': 'hg-remove',} class QuickOpDialog(QDialog): """ Dialog for performing quick dirstate operations """ def __init__(self, repoagent, command, pats, parent): QDialog.__init__(self, parent) self.setWindowFlags(Qt.WindowType.Window) self.pats = pats self._repoagent = repoagent self._cmdsession = cmdcore.nullCmdSession() self._cmddialog = cmdui.CmdSessionDialog(self) # Handle rm alias if command == 'rm': command = 'remove' self.command = command self.setWindowTitle(_('%s - hg %s') % (repoagent.displayName(), command)) self.setWindowIcon(qtlib.geticon(ICONS[command])) layout = QVBoxLayout() layout.setContentsMargins(0, 0, 0, 0) self.setLayout(layout) toplayout = QVBoxLayout() toplayout.setContentsMargins(5, 5, 5, 0) layout.addLayout(toplayout) hbox = QHBoxLayout() lbl = QLabel(LABELS[command][0]) slbl = QLabel() hbox.addWidget(lbl) hbox.addStretch(1) hbox.addWidget(slbl) self.status_label = slbl toplayout.addLayout(hbox) types = { 'add' : 'I?', 'forget' : 'MAR!C', 'revert' : 'MAR!', 'remove' : 'MAR!CI?', } filetypes = types[self.command] checktypes = { 'add' : '?', 'forget' : '', 'revert' : 'MAR!', 'remove' : '', } defcheck = checktypes[self.command] opts = {} for s, val in status.statusTypes.items(): opts[val.name] = s in filetypes opts['checkall'] = True # pre-check all matching files stwidget = status.StatusWidget(repoagent, pats, opts, self, defcheck=defcheck) toplayout.addWidget(stwidget, 1) hbox = QHBoxLayout() if self.command == 'revert': ## no backup checkbox chk = QCheckBox(_('Do not save backup files (*.orig)')) elif self.command == 'remove': ## force checkbox chk = QCheckBox(_('Force removal of modified files (--force)')) else: chk = None if chk: self.chk = chk hbox.addWidget(chk) self.statusbar = cmdui.ThgStatusBar(self) stwidget.showMessage.connect(self.statusbar.showMessage) bb = QDialogButtonBox(QDialogButtonBox.StandardButton.Ok|QDialogButtonBox.StandardButton.Close) bb.accepted.connect(self.accept) bb.rejected.connect(self.reject) bb.button(QDialogButtonBox.StandardButton.Ok).setDefault(True) bb.button(QDialogButtonBox.StandardButton.Ok).setText(LABELS[command][1]) hbox.addStretch() hbox.addWidget(bb) toplayout.addLayout(hbox) self.bb = bb if self.command == 'add': if b'largefiles' in self.repo.extensions(): self.addLfilesButton = QPushButton(_('Add &Largefiles')) else: self.addLfilesButton = None if self.addLfilesButton: self.addLfilesButton.clicked.connect(self.addLfiles) bb.addButton(self.addLfilesButton, QDialogButtonBox.ButtonRole.ActionRole) layout.addWidget(self.statusbar) s = QSettings() stwidget.loadSettings(s, 'quickop') self.restoreGeometry(qtlib.readByteArray(s, 'quickop/geom')) if hasattr(self, 'chk'): if self.command == 'revert': self.chk.setChecked( qtlib.readBool(s, 'quickop/nobackup', True)) elif self.command == 'remove': self.chk.setChecked( qtlib.readBool(s, 'quickop/forceremove', False)) self.stwidget = stwidget self.stwidget.refreshWctx() QShortcut(QKeySequence('Ctrl+Return'), self, self.accept) QShortcut(QKeySequence('Ctrl+Enter'), self, self.accept) qtlib.newshortcutsforstdkey(QKeySequence.StandardKey.Refresh, self, self.stwidget.refreshWctx) QShortcut(QKeySequence('Escape'), self, self.reject) @property def repo(self): return self._repoagent.rawRepo() def _runCommand(self, files: List[bytes], lfiles: List[bytes], opts) -> None: cmdlines = [] if files: cmdlines.append(hglib.buildcmdargs(self.command, *[ hglib.escapepath(hglib.tounicode(f)) for f in files ], **opts)) if lfiles: assert self.command == 'add', self.command lopts = opts.copy() lopts['large'] = True cmdlines.append(hglib.buildcmdargs(self.command, *[ hglib.escapepath(hglib.tounicode(f)) for f in lfiles ], **lopts)) self.files = files + lfiles self._cmdsession = sess = self._repoagent.runCommandSequence(cmdlines, self) sess.commandFinished.connect(self.commandFinished) sess.progressReceived.connect(self.statusbar.setProgress) self._cmddialog.setSession(sess) self.bb.button(QDialogButtonBox.StandardButton.Ok).setEnabled(False) def commandFinished(self, ret): self.bb.button(QDialogButtonBox.StandardButton.Ok).setEnabled(True) self.statusbar.clearProgress() if ret == 0: shlib.shell_notify(self.files) self.reject() else: self._cmddialog.show() def accept(self): cmdopts = {} if hasattr(self, 'chk'): if self.command == 'revert': cmdopts['no_backup'] = self.chk.isChecked() elif self.command == 'remove': cmdopts['force'] = self.chk.isChecked() files = self.stwidget.getChecked() if not files: qtlib.WarningMsgBox(_('No files selected'), _('No operation to perform'), parent=self) return if self.command == 'remove': with lfutil.lfstatus(self.repo): try: repostate = self.repo.status() except (EnvironmentError, error.Abort) as e: qtlib.WarningMsgBox(_('Unable to read repository status'), hglib.exception_str(e), parent=self) return if not self.chk.isChecked(): selmodified = [] for wfile in files: if wfile in repostate.modified: selmodified.append(wfile) if selmodified: prompt = qtlib.CustomPrompt( _('Confirm Remove'), _('You have selected one or more files that have been ' 'modified. By default, these files will not be ' 'removed. What would you like to do?'), self, (_('Remove &Unmodified Files'), _('Remove &All Selected Files'), _('Cancel')), 0, 2, selmodified) ret = prompt.run() if ret == 1: cmdopts['force'] = True elif ret == 2: return for wfile in files: if wfile in repostate.unknown or wfile in repostate.ignored: try: util.unlink(wfile) except EnvironmentError: pass files.remove(wfile) elif self.command == 'add': if b'largefiles' in self.repo.extensions(): self.addWithPrompt(files) return if files: self._runCommand(files, [], cmdopts) else: self.reject() def reject(self): if not self._cmdsession.isFinished(): self._cmdsession.abort() elif not self.stwidget.canExit(): return else: s = QSettings() self.stwidget.saveSettings(s, 'quickop') s.setValue('quickop/geom', self.saveGeometry()) if hasattr(self, 'chk'): if self.command == 'revert': s.setValue('quickop/nobackup', self.chk.isChecked()) elif self.command == 'remove': s.setValue('quickop/forceremove', self.chk.isChecked()) QDialog.reject(self) def addLfiles(self): files = self.stwidget.getChecked() if not files: qtlib.WarningMsgBox(_('No files selected'), _('No operation to perform'), parent=self) return self._runCommand([], files, {}) def addWithPrompt(self, files): result = lfprompt.promptForLfiles(self, self.repo.ui, self.repo, files) if not result: return files, lfiles = result self._runCommand(files, lfiles, {}) class HeadlessQuickop(QObject): def __init__(self, repoagent, cmdline): QObject.__init__(self) self.files = cmdline[1:] self._cmddialog = cmdui.CmdSessionDialog() sess = repoagent.runCommand(pycompat.maplist(hglib.tounicode, cmdline)) sess.commandFinished.connect(self.commandFinished) self._cmddialog.setSession(sess) def commandFinished(self, ret): if ret == 0: shlib.shell_notify(self.files) sys.exit(0) else: self._cmddialog.show() # dummy methods to act as QWidget (see run.qtrun) def show(self): pass def raise_(self): pass def run(ui, repoagent, *pats, **opts): repo = repoagent.rawRepo() pats = hglib.canonpaths(pats) command = opts['alias'] imm = repo.ui.config(b'tortoisehg', b'immediate') if opts.get('headless') or command in imm.lower(): cmdline = [command] + pats return HeadlessQuickop(repoagent, cmdline) else: os.chdir(repo.root) # for scmutil.match() in StatusThread return QuickOpDialog(repoagent, hglib.tounicode(command), pats, None) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1736945585.0 tortoisehg-6.9/tortoisehg/hgqt/rebase.py0000644000000000000000000002757114741727661017315 0ustar00rootroot# rebase.py - Rebase dialog for TortoiseHg # # Copyright 2010 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations from .qtcore import ( QSettings, QTimer, Qt, pyqtSlot, ) from .qtgui import ( QButtonGroup, QCheckBox, QDialog, QDialogButtonBox, QGroupBox, QLabel, QMessageBox, QRadioButton, QVBoxLayout, ) from ..util import hglib from ..util.i18n import _ from . import ( cmdcore, cmdui, csinfo, qtlib, resolve, thgrepo, wctxcleaner, ) if hglib.TYPE_CHECKING: from typing import ( List, Optional, Text, ) from .qtgui import ( QWidget, ) from .thgrepo import ( RepoAgent, ) BB = QDialogButtonBox _SOURCE_SPECS = [ # name, title, option label ('source', _('Rebase source and descendants'), '-s/--source'), ('base', _('Rebase entire source branch'), '-b/--base'), ('rev', _('Rebase exact revision'), '-r/--rev'), ] class RebaseDialog(QDialog): def __init__(self, repoagent: RepoAgent, parent: Optional[QWidget], **opts) -> None: super(RebaseDialog, self).__init__(parent) self.setWindowIcon(qtlib.geticon('hg-rebase')) self.setWindowFlags(self.windowFlags() & ~Qt.WindowType.WindowContextHelpButtonHint) self._repoagent = repoagent self._cmdsession = cmdcore.nullCmdSession() repo = repoagent.rawRepo() self.opts = opts box = QVBoxLayout() box.setSpacing(8) box.setContentsMargins(*(6,)*4) self.setLayout(box) style = csinfo.panelstyle(selectable=True) self._sourcebox = srcb = QGroupBox(self) srcb.setLayout(QVBoxLayout()) srcb.layout().setContentsMargins(*(2,)*4) s = opts.get('source', '.') source = csinfo.create(self.repo, s, style, withupdate=True) srcb.layout().addWidget(source) self.sourcecsinfo = source box.addWidget(srcb) destb = QGroupBox(_('To rebase destination')) destb.setLayout(QVBoxLayout()) destb.layout().setContentsMargins(*(2,)*4) d = opts.get('dest', '.') dest = csinfo.create(self.repo, d, style, withupdate=True) destb.layout().addWidget(dest) self.destcsinfo = dest box.addWidget(destb) self.swaplabel = QLabel('%s' # don't care href % _('Swap source and destination')) self.swaplabel.linkActivated.connect(self.swap) box.addWidget(self.swaplabel) sep = qtlib.LabeledSeparator(_('Options')) box.addWidget(sep) self._sourcegroup = QButtonGroup(self) self._sourcegroup.buttonClicked.connect(self._updateSourceSelector) for i, (name, title, oplabel) in enumerate(_SOURCE_SPECS): w = QRadioButton('%s (%s)' % (title, oplabel), self) w.setChecked(name == 'source') self._sourcegroup.addButton(w, i) box.addWidget(w) self.keepchk = QCheckBox(_('Keep original changesets (--keep)')) self.keepchk.setChecked(opts.get('keep', False)) box.addWidget(self.keepchk) self.keepbrancheschk = QCheckBox(_('Keep original branch names ' '(--keepbranches)')) self.keepbrancheschk.setChecked(opts.get('keepbranches', False)) box.addWidget(self.keepbrancheschk) self.collapsechk = QCheckBox(_('Collapse the rebased changesets ' '(--collapse)')) self.collapsechk.setChecked(opts.get('collapse', False)) box.addWidget(self.collapsechk) self.autoresolvechk = QCheckBox(_('Automatically resolve merge ' 'conflicts where possible')) box.addWidget(self.autoresolvechk) self.svnchk = QCheckBox(_('Rebase unpublished onto Subversion head ' '(override source, destination)')) self.svnchk.setVisible(b'hgsubversion' in repo.extensions()) box.addWidget(self.svnchk) self._cmdlog = cmdui.LogWidget(self) self._cmdlog.hide() box.addWidget(self._cmdlog, 2) self._stbar = cmdui.ThgStatusBar(self) self._stbar.setSizeGripEnabled(False) self._stbar.linkActivated.connect(self.linkActivated) box.addWidget(self._stbar) bbox = QDialogButtonBox() self.cancelbtn = bbox.addButton(QDialogButtonBox.StandardButton.Cancel) self.cancelbtn.clicked.connect(self.reject) self.rebasebtn = bbox.addButton(_('Rebase'), QDialogButtonBox.ButtonRole.ActionRole) self.rebasebtn.clicked.connect(self.rebase) self.abortbtn = bbox.addButton(_('Abort'), QDialogButtonBox.ButtonRole.ActionRole) self.abortbtn.clicked.connect(self.abort) box.addWidget(bbox) self.bbox = bbox self._wctxcleaner = wctxcleaner.WctxCleaner(repoagent, self) self._wctxcleaner.checkFinished.connect(self._onCheckFinished) if self.checkResolve() or not (s or d): for w in (srcb, destb, sep, self.keepchk, self.collapsechk, self.keepbrancheschk): w.setHidden(True) self._cmdlog.show() else: self._stbar.showMessage(_('Checking...')) self.abortbtn.setEnabled(False) self.rebasebtn.setEnabled(False) QTimer.singleShot(0, self._wctxcleaner.check) self.setMinimumWidth(480) self.setMaximumHeight(800) self.resize(0, 340) self.setWindowTitle(_('Rebase - %s') % repoagent.displayName()) self._updateSourceSelector() self._readSettings() @property def repo(self): return self._repoagent.rawRepo() def _readSettings(self) -> None: qs = QSettings() qs.beginGroup('rebase') self.autoresolvechk.setChecked( self._repoagent.configBool('tortoisehg', 'autoresolve', qtlib.readBool(qs, 'autoresolve', True))) qs.endGroup() def _writeSettings(self) -> None: qs = QSettings() qs.beginGroup('rebase') qs.setValue('autoresolve', self.autoresolvechk.isChecked()) qs.endGroup() @pyqtSlot(bool) def _onCheckFinished(self, clean: bool) -> None: if not clean: self.rebasebtn.setEnabled(False) txt = _('Before rebase, you must ' 'commit, ' 'shelve to patch, ' 'or discard changes.') else: self.rebasebtn.setEnabled(True) txt = _('You may continue the rebase') self._stbar.showMessage(txt) @pyqtSlot() def _updateSourceSelector(self) -> None: _name, title, _oplabel = _SOURCE_SPECS[self._sourcegroup.checkedId()] self._sourcebox.setTitle(title) def rebase(self) -> None: self.rebasebtn.setEnabled(False) self.cancelbtn.setVisible(False) self.keepchk.setEnabled(False) self.keepbrancheschk.setEnabled(False) for w in self._sourcegroup.buttons(): w.setEnabled(False) self.collapsechk.setEnabled(False) self.swaplabel.setVisible(False) itool = 'merge' if self.autoresolvechk.isChecked() else 'fail' opts = {'config': 'ui.merge=internal:%s' % itool} if hglib.rebase_in_progress(self.repo): opts['continue'] = True else: opts.update({ 'keep': self.keepchk.isChecked(), 'keepbranches': self.keepbrancheschk.isChecked(), 'collapse': self.collapsechk.isChecked(), }) if self.svnchk.isChecked(): opts['svn'] = True else: sourcearg = _SOURCE_SPECS[self._sourcegroup.checkedId()][0] opts[sourcearg] = str(self.opts.get('source')) opts['dest'] = str(self.opts.get('dest')) cmdline = hglib.buildcmdargs('rebase', **opts) sess = self._runCommand(cmdline) sess.commandFinished.connect(self._rebaseFinished) def swap(self) -> None: oldsource = self.opts.get('source', '.') olddest = self.opts.get('dest', '.') self.sourcecsinfo.updateItems(target=olddest) self.destcsinfo.updateItems(target=oldsource) self.opts['source'] = olddest self.opts['dest'] = oldsource def abort(self) -> None: cmdline = hglib.buildcmdargs('rebase', abort=True) sess = self._runCommand(cmdline) sess.commandFinished.connect(self._abortFinished) def _runCommand(self, cmdline: List[Text]) -> cmdcore.CmdSession: assert self._cmdsession.isFinished() self._cmdsession = sess = self._repoagent.runCommand(cmdline, self) sess.commandFinished.connect(self._stbar.clearProgress) sess.outputReceived.connect(self._cmdlog.appendLog) sess.progressReceived.connect(self._stbar.setProgress) cmdui.updateStatusMessage(self._stbar, sess) return sess @pyqtSlot(int) def _rebaseFinished(self, ret: int) -> None: # TODO since hg 2.6, rebase will end with ret=1 in case of "unresolved # conflicts", so we can fine-tune checkResolve() later. if self.checkResolve() is False: msg = _('Rebase is complete') if ret == 255: msg = _('Rebase failed') self._cmdlog.show() # contains hint self._stbar.showMessage(msg) self._makeCloseButton() @pyqtSlot() def _abortFinished(self) -> None: if self.checkResolve() is False: self._stbar.showMessage(_('Rebase aborted')) self._makeCloseButton() def _makeCloseButton(self) -> None: self.rebasebtn.setEnabled(True) self.rebasebtn.setText(_('Close')) self.rebasebtn.clicked.disconnect(self.rebase) self.rebasebtn.clicked.connect(self.accept) def checkResolve(self) -> bool: for root, path, status in thgrepo.recursiveMergeStatus(self.repo): if status == b'u': txt = _('Rebase generated merge conflicts that must ' 'be resolved') self.rebasebtn.setEnabled(False) break else: self.rebasebtn.setEnabled(True) txt = _('You may continue the rebase') self._stbar.showMessage(txt) if hglib.rebase_in_progress(self.repo): self.swaplabel.setVisible(False) self.abortbtn.setEnabled(True) self.rebasebtn.setText('Continue') return True else: self.abortbtn.setEnabled(False) return False def linkActivated(self, cmd: Text) -> None: if cmd == 'resolve': dlg = resolve.ResolveDialog(self._repoagent, self) dlg.exec() self.checkResolve() else: self._wctxcleaner.runCleaner(cmd) def reject(self) -> None: if hglib.rebase_in_progress(self.repo): main = _('Exiting with an unfinished rebase is not recommended.') text = _('Consider aborting the rebase first.') labels = ((QMessageBox.StandardButton.Yes, _('&Exit')), (QMessageBox.StandardButton.No, _('Cancel'))) if not qtlib.QuestionMsgBox(_('Confirm Exit'), main, text, labels=labels, parent=self): return super(RebaseDialog, self).reject() def done(self, r: int) -> None: self._writeSettings() super(RebaseDialog, self).done(r) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033083.0 tortoisehg-6.9/tortoisehg/hgqt/rejects.py0000644000000000000000000002725714742202573017503 0ustar00rootroot# rejects.py - TortoiseHg patch reject editor # # Copyright 2011 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations from . import qsci as Qsci from .qtcore import ( QPoint, QSettings, QTimer, Qt, pyqtSlot, ) from .qtgui import ( QColor, QDialog, QDialogButtonBox, QFontMetrics, QHBoxLayout, QKeySequence, QListWidget, QMessageBox, QToolButton, QVBoxLayout, ) from mercurial import ( patch, util, ) from ..util import hglib from ..util.i18n import _ from . import ( fileencoding, lexers, qscilib, qtlib, ) qsci = Qsci.QsciScintilla class RejectsDialog(QDialog): def __init__(self, ui, path: bytes, parent=None) -> None: super(RejectsDialog, self).__init__(parent) self.setWindowTitle(_('Merge rejected patch chunks into %s') % hglib.tounicode(path)) self.setWindowFlags(Qt.WindowType.Window) self.path = path layout = QVBoxLayout() self.setLayout(layout) editor = qscilib.Scintilla() editor.setBraceMatching(qsci.BraceMatch.SloppyBraceMatch) editor.setFolding(qsci.FoldStyle.BoxedTreeFoldStyle) editor.installEventFilter(qscilib.KeyPressInterceptor(self)) editor.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) editor.customContextMenuRequested.connect(self._onMenuRequested) self.baseLineColor = editor.markerDefine(qsci.MarkerSymbol.Background, -1) editor.setMarkerBackgroundColor(QColor('lightblue'), self.baseLineColor) layout.addWidget(editor, 3) searchbar = qscilib.SearchToolBar(self) searchbar.searchRequested.connect(editor.find) searchbar.conditionChanged.connect(editor.highlightText) searchbar.hide() def showsearchbar(): searchbar.show() searchbar.setFocus(Qt.FocusReason.OtherFocusReason) qtlib.newshortcutsforstdkey(QKeySequence.StandardKey.Find, self, showsearchbar) self.addActions(searchbar.editorActions()) layout.addWidget(searchbar) hbox = QHBoxLayout() hbox.setContentsMargins(2, 2, 2, 2) layout.addLayout(hbox, 1) self.chunklist = QListWidget(self) self.updating = True self.chunklist.currentRowChanged.connect(self.showChunk) hbox.addWidget(self.chunklist, 1) bvbox = QVBoxLayout() bvbox.setContentsMargins(2, 2, 2, 2) self.resolved = tb = QToolButton() tb.setIcon(qtlib.geticon('thg-success')) tb.setToolTip(_('Mark this chunk as resolved, goto next unresolved')) tb.pressed.connect(self.resolveCurrentChunk) self.unresolved = tb = QToolButton() tb.setIcon(qtlib.geticon('thg-warning')) tb.setToolTip(_('Mark this chunk as unresolved')) tb.pressed.connect(self.unresolveCurrentChunk) bvbox.addStretch(1) bvbox.addWidget(self.resolved, 0) bvbox.addWidget(self.unresolved, 0) bvbox.addStretch(1) hbox.addLayout(bvbox, 0) self.editor = editor self.rejectbrowser = RejectBrowser(self) hbox.addWidget(self.rejectbrowser, 5) self.textencgroup = fileencoding.createActionGroup(self) self.textencgroup.triggered.connect(self._reloadFile) fileencoding.checkActionByName(self.textencgroup, fileencoding.contentencoding(ui)) bb = QDialogButtonBox(QDialogButtonBox.StandardButton.Save|QDialogButtonBox.StandardButton.Cancel) bb.accepted.connect(self.accept) bb.rejected.connect(self.reject) layout.addWidget(bb) self.saveButton = bb.button(QDialogButtonBox.StandardButton.Save) s = QSettings() self.restoreGeometry(qtlib.readByteArray(s, 'rejects/geometry')) self.editor.loadSettings(s, 'rejects/editor') self.rejectbrowser.loadSettings(s, 'rejects/rejbrowse') if not qscilib.readFile(editor, hglib.tounicode(path), self._textEncoding()): self.hide() QTimer.singleShot(0, self.reject) return earlybytes = hglib.fromunicode(editor.text(), 'replace')[:4096] lexer = lexers.getlexer(ui, hglib.tounicode(path), earlybytes, self) font = qtlib.getfont('fontlog').font() editor.setFont(font) editor.setLexer(lexer) editor.setFont(font) editor.setMarginLineNumbers(1, True) editor.setMarginWidth(1, str(editor.lines())+'X') buf = util.bytesio() try: buf.write(b'diff -r aaaaaaaaaaaa -r bbbbbbbbbbb %s\n' % path) with open(path + b'.rej', 'rb') as fp: buf.write(fp.read()) buf.seek(0) except IOError as e: pass try: header = patch.parsepatch(buf)[0] self.chunks = header.hunks except (patch.PatchError, IndexError) as e: self.chunks = [] for chunk in self.chunks: chunk.resolved = False self.updateChunkList() self.saveButton.setDisabled(bool(self.chunks)) self.resolved.setDisabled(True) self.unresolved.setDisabled(True) QTimer.singleShot(0, lambda: self.chunklist.setCurrentRow(0)) @pyqtSlot(QPoint) def _onMenuRequested(self, point): menu = self.editor.createStandardContextMenu() menu.addSeparator() m = menu.addMenu(_('E&ncoding')) fileencoding.addActionsToMenu(m, self.textencgroup) menu.exec(self.editor.viewport().mapToGlobal(point)) menu.setParent(None) def updateChunkList(self): self.updating = True self.chunklist.clear() for chunk in self.chunks: self.chunklist.addItem('@@ %d %s' % (chunk.fromline, chunk.resolved and '(resolved)' or '(unresolved)')) self.updating = False @pyqtSlot() def resolveCurrentChunk(self): row = self.chunklist.currentRow() chunk = self.chunks[row] chunk.resolved = True self.updateChunkList() for i, chunk in enumerate(self.chunks): if not chunk.resolved: self.chunklist.setCurrentRow(i) return else: self.chunklist.setCurrentRow(row) self.saveButton.setEnabled(True) @pyqtSlot() def unresolveCurrentChunk(self): row = self.chunklist.currentRow() chunk = self.chunks[row] chunk.resolved = False self.updateChunkList() self.chunklist.setCurrentRow(row) self.saveButton.setEnabled(False) @pyqtSlot(int) def showChunk(self, row): if row == -1 or self.updating: return buf = util.bytesio() chunk = self.chunks[row] chunk.write(buf) chunkstr = buf.getvalue().decode(self._textEncoding(), 'replace') startline = max(chunk.fromline-1, 0) self.rejectbrowser.showChunk(chunkstr.splitlines(True)[1:]) self.editor.setCursorPosition(startline, 0) self.editor.ensureLineVisible(startline) self.editor.markerDeleteAll(-1) self.editor.markerAdd(startline, self.baseLineColor) self.resolved.setEnabled(not chunk.resolved) self.unresolved.setEnabled(chunk.resolved) def _textEncoding(self): return fileencoding.checkedActionName(self.textencgroup) @pyqtSlot() def _reloadFile(self): if self.editor.isModified(): r = qtlib.QuestionMsgBox(_('Reload File'), _('Are you sure you want to reload this ' 'file?'), _('All unsaved changes will be lost.'), parent=self) if not r: return qscilib.readFile(self.editor, hglib.tounicode(self.path), self._textEncoding()) self.showChunk(self.chunklist.currentRow()) def saveSettings(self): s = QSettings() s.setValue('rejects/geometry', self.saveGeometry()) self.editor.saveSettings(s, 'rejects/editor') self.rejectbrowser.saveSettings(s, 'rejects/rejbrowse') def accept(self): # If the editor has been modified, we implicitly accept the changes acceptresolution = self.editor.isModified() if not acceptresolution: action = QMessageBox.warning(self, _("Warning"), _("You have marked all rejected patch chunks as resolved yet " "you have not modified the file on the edit panel.\n\n" "This probably means that no code from any of the rejected " "patch chunks made it into the file.\n\n" "Are you sure that you want to leave the file as is and " "consider all the rejected patch chunks as resolved?\n\n" "Doing so may delete them from a shelve, for example, which " "would mean that you would lose them forever!\n\n" "Click Yes to accept the file as is or No to continue " "resolving the rejected patch chunks."), QMessageBox.StandardButton.Yes, QMessageBox.StandardButton.No) if action == QMessageBox.StandardButton.Yes: acceptresolution = True if acceptresolution: if not qscilib.writeFile(self.editor, hglib.tounicode(self.path), self._textEncoding()): return self.saveSettings() super(RejectsDialog, self).accept() def reject(self): self.saveSettings() super(RejectsDialog, self).reject() class RejectBrowser(qscilib.Scintilla): 'Display a rejected diff hunk in an easily copy/pasted format' def __init__(self, parent): super(RejectBrowser, self).__init__(parent) self.setFrameStyle(0) self.setReadOnly(True) self.setUtf8(True) self.installEventFilter(qscilib.KeyPressInterceptor(self)) self.setCaretLineVisible(False) self.setMarginType(1, qsci.MarginType.SymbolMargin) self.setMarginLineNumbers(1, False) self.setMarginWidth(1, QFontMetrics(self.font()).horizontalAdvance('XX')) self.setMarginSensitivity(1, True) self.addedMark = self.markerDefine(qsci.MarkerSymbol.Plus, -1) self.removedMark = self.markerDefine(qsci.MarkerSymbol.Minus, -1) self.addedColor = self.markerDefine(qsci.MarkerSymbol.Background, -1) self.removedColor = self.markerDefine(qsci.MarkerSymbol.Background, -1) self.setMarkerBackgroundColor(QColor('lightgreen'), self.addedColor) self.setMarkerBackgroundColor(QColor('cyan'), self.removedColor) mask = (1 << self.addedMark) | (1 << self.removedMark) | \ (1 << self.addedColor) | (1 << self.removedColor) self.setMarginMarkerMask(1, mask) lexer = lexers.difflexer(self) self.setFont(qtlib.getfont('fontdiff').font()) self.setLexer(lexer) def showChunk(self, lines): utext = [] added = [] removed = [] for i, line in enumerate(lines): utext.append(line[1:]) if line[0] == '+': added.append(i) elif line[0] == '-': removed.append(i) self.markerDeleteAll(-1) self.setText(u''.join(utext)) for i in added: self.markerAdd(i, self.addedMark) self.markerAdd(i, self.addedColor) for i in removed: self.markerAdd(i, self.removedMark) self.markerAdd(i, self.removedColor) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730809007.0 tortoisehg-6.9/tortoisehg/hgqt/rename.py0000644000000000000000000002164414712406257017307 0ustar00rootroot# rename.py - TortoiseHg's dialogs for handling renames # # Copyright 2009 Steve Borho # Copyright 2010 Johan Samyn # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os import sys from .qtcore import ( pyqtSlot, ) from .qtgui import ( QCheckBox, QFileDialog, QFormLayout, QHBoxLayout, QLabel, QLineEdit, QMessageBox, QPushButton, QSizePolicy, ) from mercurial import ( util, ) from ..util import hglib from ..util.i18n import _ from . import ( cmdcore, cmdui, manifestmodel, qtlib, ) if hglib.TYPE_CHECKING: from typing import ( List, Optional, Text, ) from .qtgui import QWidget from .thgrepo import RepoAgent class RenameWidget(cmdui.AbstractCmdWidget): def __init__(self, repoagent: RepoAgent, parent: Optional[QWidget] = None, source: Optional[Text] = None, destination: Optional[Text] = None, iscopy: bool = False) -> None: super(RenameWidget, self).__init__(parent) self.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed) self._repoagent = repoagent form = QFormLayout() form.setContentsMargins(0, 0, 0, 0) form.setSpacing(6) self.setLayout(form) # widgets self.src_txt = QLineEdit(source or '') self.src_txt.setMinimumWidth(300) self.src_btn = QPushButton(_('Browse...')) self.dest_txt = QLineEdit(destination or source or '') self.dest_btn = QPushButton(_('Browse...')) # use QCompleter(model, parent) to avoid ownership bug of # QCompleter(parent /TransferBack/) in PyQt<4.11.4 comp = manifestmodel.ManifestCompleter(None, self) comp.setModel(manifestmodel.ManifestModel(repoagent, comp)) for lbl, txt, btn in [ (_('Source:'), self.src_txt, self.src_btn), (_('Destination:'), self.dest_txt, self.dest_btn)]: box = QHBoxLayout() box.addWidget(txt, 1) box.addWidget(btn) form.addRow(lbl, box) txt.setCompleter(comp) self.copy_chk = QCheckBox(_('Copy source -> destination')) form.addRow('', self.copy_chk) # some extras form.addRow(QLabel('')) self.hgcmd_txt = QLineEdit() self.hgcmd_txt.setReadOnly(True) form.addRow(_('Hg command:'), self.hgcmd_txt) self.show_command(self.compose_command()) # connecting slots self.src_txt.textChanged.connect(self.src_dest_edited) self.src_btn.clicked.connect(self.src_btn_clicked) self.dest_txt.textChanged.connect(self.src_dest_edited) self.dest_btn.clicked.connect(self.dest_btn_clicked) self.copy_chk.toggled.connect(self.copy_chk_toggled) # dialog setting self.copy_chk.setChecked(iscopy) self.dest_txt.setFocus() self.setRenameCopy() def setRenameCopy(self) -> None: if self.copy_chk.isChecked(): self.msgTitle = _('Copy') self.errTitle = _('Copy Error') else: self.msgTitle = _('Rename') self.errTitle = _('Rename Error') @property def repo(self): return self._repoagent.rawRepo() def source(self) -> Text: return self.src_txt.text() def destination(self) -> Text: return self.dest_txt.text() def _sourceFile(self) -> Text: root = self._repoagent.rootPath() return os.path.normpath(os.path.join(root, self.source())) def _destinationFile(self) -> Text: root = self._repoagent.rootPath() return os.path.normpath(os.path.join(root, self.destination())) def src_dest_edited(self) -> None: self.show_command(self.compose_command()) self.commandChanged.emit() def src_btn_clicked(self) -> None: """Select the source file of folder""" FD = QFileDialog if os.path.isfile(self._sourceFile()): caption = _('Select Source File') path, _filter = FD.getOpenFileName(self, caption, '', '', '', QFileDialog.Option.ReadOnly) else: caption = _('Select Source Folder') path = FD.getExistingDirectory(self, caption, '', QFileDialog.Option.ShowDirsOnly | QFileDialog.Option.ReadOnly) relpath = self.to_relative_path(path) if not relpath: return self.src_txt.setText(relpath) def dest_btn_clicked(self) -> None: """Select the destination file of folder""" FD = QFileDialog if os.path.isfile(self._sourceFile()): caption = _('Select Destination File') else: caption = _('Select Destination Folder') path, _filter = FD.getSaveFileName(self, caption) relpath = self.to_relative_path(path) if not relpath: return self.dest_txt.setText(relpath) def to_relative_path(self, fullpath: Text) -> Optional[Text]: if not fullpath: return fullpath = hglib.normpath(fullpath) pathprefix = hglib.tounicode(util.normpath(self.repo.root)) + '/' if not os.path.normcase(fullpath).startswith(os.path.normcase(pathprefix)): return return fullpath[len(pathprefix):] def isCopyCommand(self) -> bool: return self.copy_chk.isChecked() def copy_chk_toggled(self) -> None: self.setRenameCopy() self.show_command(self.compose_command()) self.commandChanged.emit() def isCaseFoldingOnWin(self) -> bool: fullsrc, fulldest = self._sourceFile(), self._destinationFile() return fullsrc.upper() == fulldest.upper() and sys.platform == 'win32' def compose_command(self) -> List[Text]: name = self.isCopyCommand() and 'copy' or 'rename' return hglib.buildcmdargs(name, self.source(), self.destination(), v=True, f=True) def show_command(self, cmdline: List[Text]) -> None: self.hgcmd_txt.setText('hg %s' % hglib.prettifycmdline(cmdline)) def canRunCommand(self) -> bool: src, dest = self.source(), self.destination() return bool(src and dest and src != dest and not (self.isCopyCommand() and self.isCaseFoldingOnWin())) def runCommand(self) -> cmdcore.CmdSession: # check inputs fullsrc, fulldest = self._sourceFile(), self._destinationFile() if not os.path.exists(fullsrc): qtlib.WarningMsgBox(self.msgTitle, _('Source does not exist.')) return cmdcore.nullCmdSession() if not fullsrc.startswith(self._repoagent.rootPath()): qtlib.ErrorMsgBox(self.errTitle, _('The source must be within the repository tree.')) return cmdcore.nullCmdSession() if not fulldest.startswith(self._repoagent.rootPath()): qtlib.ErrorMsgBox(self.errTitle, _('The destination must be within the repository tree.')) return cmdcore.nullCmdSession() if os.path.isfile(fulldest) and not self.isCaseFoldingOnWin(): res = qtlib.QuestionMsgBox(self.msgTitle, '

                                                                                                            %s

                                                                                                            %s

                                                                                                            ' % (_('Destination file already exists.'), _('Are you sure you want to overwrite it ?')), defaultbutton=QMessageBox.StandardButton.No) if not res: return cmdcore.nullCmdSession() cmdline = self.compose_command() self.show_command(cmdline) return self._repoagent.runCommand(cmdline, self) class RenameDialog(cmdui.CmdControlDialog): def __init__(self, repoagent: RepoAgent, parent: Optional[QWidget] = None, source: Optional[Text] = None, destination: Optional[Text] = None, iscopy: bool = False) -> None: super(RenameDialog, self).__init__(parent) self._repoagent = repoagent self.setWindowIcon(qtlib.geticon('hg-rename')) self.setObjectName('rename') cmdwidget = RenameWidget(repoagent, self, source, destination, iscopy) cmdwidget.commandChanged.connect(self._updateUi) self.setCommandWidget(cmdwidget) self.commandFinished.connect(self._checkKnownError) self._updateUi() @pyqtSlot(int) def _checkKnownError(self, ret: int) -> None: if ret == 1: # occurs if _some_ of the files cannot be copied cmdui.errorMessageBox(self.lastFinishedSession(), self) @pyqtSlot() def _updateUi(self) -> None: if self.commandWidget().isCopyCommand(): bt = _('Copy') wt = _('Copy - %s') else: bt = _('Rename') wt = _('Rename - %s') self.setRunButtonText(bt) self.setWindowTitle(wt % self._repoagent.displayName()) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730809007.0 tortoisehg-6.9/tortoisehg/hgqt/repofilter.py0000644000000000000000000004664714712406257020225 0ustar00rootroot# repofilter.py - TortoiseHg toolbar for filtering changesets # # Copyright (C) 2007-2010 Logilab. All rights reserved. # Copyright (C) 2010 Yuya Nishihara # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os from .qtcore import ( QEvent, QTimer, Qt, pyqtSignal, pyqtSlot, ) from .qtgui import ( QCheckBox, QComboBox, QCompleter, QFontMetrics, QLabel, QLineEdit, QMainWindow, QMenu, QSizePolicy, QStyle, QToolBar, QToolButton, ) from mercurial import ( error, pycompat, repoview, scmutil, ) from ..util import hglib from ..util.i18n import _ from . import ( qtlib, revset, ) if hglib.TYPE_CHECKING: from typing import ( List, Optional, Text, ) from mercurial import ( localrepo, ) from .qtcore import ( QSettings, ) from .qtgui import ( QWidget, ) from . import ( thgrepo, ) _permanent_queries = ('head()', 'merge()', 'tagged()', 'bookmark()', 'file(".hgsubstate") or file(".hgsub")') def _firstword(query: Text) -> Optional[bytes]: lquery = hglib.fromunicode(query) try: for token, value, _pos in hglib.tokenizerevspec(lquery): if token == b'symbol' or token == b'string': return value # localstr except error.ParseError: pass def _querytype(repo: localrepo.localrepository, query: Text) -> Optional[Text]: r""" >>> # TODO: maybe replace with real repo >>> origisrevsymbol = scmutil.isrevsymbol >>> scmutil.isrevsymbol = lambda repo, changeid: changeid in repo >>> repo = set(b'0 1 2 3 . stable'.split()) >>> _querytype(repo, u'') is None True >>> _querytype(repo, u'quick fox') 'keyword' >>> _querytype(repo, u'0') 'revset' >>> _querytype(repo, u'stable') 'revset' >>> _querytype(repo, u'0::2') # symbol 'revset' >>> _querytype(repo, u'::"stable"') # string 'revset' >>> _querytype(repo, u'"') # unterminated string 'keyword' >>> _querytype(repo, u'tagged()') 'revset' >>> _querytype(repo, u'\u3000') # UnicodeEncodeError 'revset' >>> scmutil.isrevsymbol = origisrevsymbol """ if not query: return if '(' in query: return 'revset' try: changeid = _firstword(query) except UnicodeEncodeError: return 'revset' # avoid further error on formatspec() if not changeid: return 'keyword' try: if scmutil.isrevsymbol(repo, changeid): return 'revset' except error.LookupError: # ambiguous changeid pass return 'keyword' class SelectAllLineEdit(QLineEdit): def __init__(self, parent: Optional[QWidget] = None) -> None: super(SelectAllLineEdit, self).__init__(parent) self.just_got_focus = False def focusInEvent(self, ev): if ev.reason() == Qt.FocusReason.MouseFocusReason: self.just_got_focus = True super(SelectAllLineEdit, self).focusInEvent(ev) def mouseReleaseEvent(self, ev): if self.just_got_focus: self.just_got_focus = False self.selectAll() super(SelectAllLineEdit, self).mouseReleaseEvent(ev) class RepoFilterBar(QToolBar): """Toolbar for RepoWidget to filter changesets""" setRevisionSet = pyqtSignal(str) filterToggled = pyqtSignal(bool) branchChanged = pyqtSignal(str, bool) """Emitted (branch, allparents) when branch selection changed""" showHiddenChanged = pyqtSignal(bool) showGraftSourceChanged = pyqtSignal(bool) _allBranchesLabel = u'\u2605 ' + _('Show all') + u' \u2605' def __init__(self, repoagent: thgrepo.RepoAgent, parent: Optional[QWidget] = None) -> None: super(RepoFilterBar, self).__init__(parent) self.layout().setContentsMargins(0, 0, 0, 0) self.setIconSize(qtlib.smallIconSize()) self._repoagent = repoagent self._permanent_queries = list(_permanent_queries) repo = repoagent.rawRepo() username = hglib.configuredusername(repo.ui) if username: self._permanent_queries.insert(0, hglib.formatrevspec( 'author(%s)', hglib.tounicode(os.path.expandvars(username)) ) ) self.filterEnabled = True #Check if the font contains the glyph needed by the branch combo if not QFontMetrics(self.font()).inFont(u'\u2605'): self._allBranchesLabel = u'*** %s ***' % _('Show all') self.entrydlg = revset.RevisionSetQuery(repoagent, self) self.entrydlg.queryIssued.connect(self.queryIssued) self.entrydlg.hide() self.revsetcombo = combo = QComboBox() combo.setEditable(True) combo.setInsertPolicy(QComboBox.InsertPolicy.NoInsert) # don't calculate size hint from history contents, just use as much # space as possible. this way, the branch combo can be enlarged up # to its preferred width. combo.setSizeAdjustPolicy( QComboBox.SizeAdjustPolicy.AdjustToMinimumContentsLengthWithIcon) combo.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed) combo.setMinimumContentsLength(20) qtlib.allowCaseChangingInput(combo) le = combo.lineEdit() le.returnPressed.connect(self.runQuery) le.selectionChanged.connect(self.selectionChanged) le.setPlaceholderText(_('### revision set query ###')) combo.activated.connect(self.runQuery) self._revsettypelabel = QLabel(le) self._revsettypetimer = QTimer(self, interval=200, singleShot=True) self._revsettypetimer.timeout.connect(self._updateQueryType) combo.editTextChanged.connect(self._revsettypetimer.start) self._updateQueryType() le.installEventFilter(self) self.clearBtn = QToolButton(self) self.clearBtn.setIcon(qtlib.geticon('hg-remove')) self.clearBtn.setToolTip(_('Clear current query and query text')) self.clearBtn.clicked.connect(self.onClearButtonClicked) self.addWidget(self.clearBtn) self.addWidget(qtlib.Spacer(2, 2)) self.addWidget(combo) self.addWidget(qtlib.Spacer(2, 2)) self.searchBtn = QToolButton(self) self.searchBtn.setIcon(qtlib.geticon('view-filter')) self.searchBtn.setToolTip(_('Trigger revision set query')) self.searchBtn.clicked.connect(self.runQuery) self.addWidget(self.searchBtn) self.editorBtn = QToolButton() self.editorBtn.setText('...') self.editorBtn.setToolTip(_('Open advanced query editor')) self.editorBtn.clicked.connect(self.openEditor) self.addWidget(self.editorBtn) icon = self.style().standardIcon(QStyle.StandardPixmap.SP_TrashIcon) self.deleteBtn = QToolButton() self.deleteBtn.setIcon(icon) self.deleteBtn.setToolTip(_('Delete selected query from history')) self.deleteBtn.clicked.connect(self.deleteFromHistory) self.deleteBtn.setEnabled(False) self.addWidget(self.deleteBtn) self.addSeparator() self.filtercb = f = QCheckBox(_('filter')) f.clicked.connect(self.filterToggled) f.setToolTip(_('Toggle filtering of non-matched changesets')) self.addWidget(f) self.addSeparator() self.showHiddenBtn = QToolButton() self.showHiddenBtn.setIcon(qtlib.geticon('view-hidden')) self.showHiddenBtn.setCheckable(True) self.showHiddenBtn.setToolTip(_('Show/Hide hidden changesets')) self.showHiddenBtn.clicked.connect(self.showHiddenChanged) self.addWidget(self.showHiddenBtn) self.showGraftSourceBtn = QToolButton() self.showGraftSourceBtn.setIcon(qtlib.geticon('hg-transplant')) self.showGraftSourceBtn.setCheckable(True) self.showGraftSourceBtn.setChecked(True) self.showGraftSourceBtn.setToolTip(_('Toggle graft relations visibility')) self.showGraftSourceBtn.clicked.connect(self.showGraftSourceChanged) self.addWidget(self.showGraftSourceBtn) self.addSeparator() self._initBranchFilter() self.setFocusProxy(self.revsetcombo) self.refresh() @property def _repo(self): return self._repoagent.rawRepo() def onClearButtonClicked(self): if self.revsetcombo.currentText(): self.revsetcombo.clearEditText() elif not isinstance(self.parentWidget(), QMainWindow): # act as "close" button because this isn't managed as toolbar self.hide() # always request to clear filter; model may still be filtered even # if edit box is empty self.runQuery() def selectionChanged(self): selection = self.revsetcombo.lineEdit().selectedText() self.deleteBtn.setEnabled(selection in self.revsethist) def deleteFromHistory(self): selection = self.revsetcombo.lineEdit().selectedText() if selection not in self.revsethist: return self.revsethist.remove(selection) full = self.revsethist + self._permanent_queries self.revsetcombo.clear() self.revsetcombo.addItems(full) self.revsetcombo.setCurrentIndex(-1) def eventFilter(self, watched, event): if watched is self.revsetcombo.lineEdit(): if event.type() == QEvent.Type.Resize: self._updateQueryTypeGeometry() return False return super(RepoFilterBar, self).eventFilter(watched, event) def openEditor(self): query = self._prepareQuery() self.entrydlg.entry.setText(query) self.entrydlg.entry.setCursorPosition(0, len(query)) self.entrydlg.entry.setFocus() self.entrydlg.setVisible(True) def queryIssued(self, query: Text) -> None: self.revsetcombo.setEditText(query) self.runQuery() def _prepareQuery(self) -> Text: query = self.revsetcombo.currentText().strip() if _querytype(self._repo, query) == 'keyword': return hglib.formatrevspec('keyword(%s)', query) else: return query def _isUnsavedQuery(self) -> bool: return self.revsetcombo.currentText().startswith(' ') @pyqtSlot() def _updateQueryType(self): query = self.revsetcombo.currentText().strip() qtype = _querytype(self._repo, query) if not qtype: self._revsettypelabel.hide() self._updateQueryTypeGeometry() return name, bordercolor, bgcolor = { 'keyword': (_('Keyword Search'), '#cccccc', '#eeeeee'), 'revset': (_('Revision Set'), '#f6dd82', '#fcf1ca'), }[qtype] if self._isUnsavedQuery(): name += ' ' + _('(unsaved)') label = self._revsettypelabel label.setText(name) label.setStyleSheet('border: 1px solid %s; background-color: %s; ' 'color: black;' % (bordercolor, bgcolor)) label.show() self._updateQueryTypeGeometry() def _updateQueryTypeGeometry(self): le = self.revsetcombo.lineEdit() label = self._revsettypelabel # show label in right corner w = label.minimumSizeHint().width() label.setGeometry(le.width() - w - 1, 1, w, le.height() - 2) # right margin for label margins = le.contentsMargins() if label.isHidden(): margins.setRight(0) else: margins.setRight(w + 1) le.setContentsMargins(margins) def setQuery(self, query: Text) -> None: self.revsetcombo.setCurrentIndex(self.revsetcombo.findText(query)) self.revsetcombo.setEditText(query) @pyqtSlot() def runQuery(self): 'Run the current revset query or request to clear the previous result' query = self._prepareQuery() self.setRevisionSet.emit(query) if query: self.saveQuery() self.revsetcombo.lineEdit().selectAll() def saveQuery(self): query = self.revsetcombo.currentText() if self._isUnsavedQuery(): return if query in self.revsethist: self.revsethist.remove(query) if query not in self._permanent_queries: self.revsethist.insert(0, query) self.revsethist = self.revsethist[:20] full = self.revsethist + self._permanent_queries self.revsetcombo.clear() self.revsetcombo.addItems(full) self.revsetcombo.setCurrentIndex(self.revsetcombo.findText(query)) def loadSettings(self, s: QSettings) -> None: repoid = hglib.shortrepoid(self._repo) s.beginGroup('revset/' + repoid) self.entrydlg.restoreGeometry(qtlib.readByteArray(s, 'geom')) self.revsethist = list(qtlib.readStringList(s, 'queries')) self.filtercb.setChecked(qtlib.readBool(s, 'filter', True)) full = self.revsethist + self._permanent_queries self.revsetcombo.clear() self.revsetcombo.addItems(full) self.revsetcombo.setCurrentIndex(-1) self.setVisible(qtlib.readBool(s, 'showrepofilterbar')) self.showHiddenBtn.setChecked(qtlib.readBool(s, 'showhidden')) self.showGraftSourceBtn.setChecked( qtlib.readBool(s, 'showgraftsource', True)) self._loadBranchFilterSettings(s) s.endGroup() def saveSettings(self, s: QSettings) -> None: try: repoid = hglib.shortrepoid(self._repo) except EnvironmentError: return s.beginGroup('revset/' + repoid) s.setValue('geom', self.entrydlg.saveGeometry()) s.setValue('queries', self.revsethist) s.setValue('filter', self.filtercb.isChecked()) s.setValue('showrepofilterbar', not self.isHidden()) self._saveBranchFilterSettings(s) s.setValue('showhidden', self.showHiddenBtn.isChecked()) s.setValue('showgraftsource', self.showGraftSourceBtn.isChecked()) s.endGroup() def _initBranchFilter(self): self._branchLabel = QToolButton( text=_('Branch'), popupMode=QToolButton.ToolButtonPopupMode.InstantPopup, statusTip=_('Display graph the named branch only')) self._branchMenu = QMenu(self._branchLabel) self._abranchAction = self._branchMenu.addAction( _('Display only active branches'), self.refresh) self._abranchAction.setCheckable(True) self._cbranchAction = self._branchMenu.addAction( _('Display closed branches'), self.refresh) self._cbranchAction.setCheckable(True) self._allparAction = self._branchMenu.addAction( _('Include all ancestors'), self._emitBranchChanged) self._allparAction.setCheckable(True) self._branchLabel.setMenu(self._branchMenu) self._branchCombo = QComboBox() self._branchCombo.setEditable(True) self._branchCombo.setInsertPolicy(QComboBox.InsertPolicy.NoInsert) self._branchCombo.setSizeAdjustPolicy(QComboBox.SizeAdjustPolicy.AdjustToContents) self._branchCombo.setLineEdit(SelectAllLineEdit()) self._branchCombo.lineEdit().editingFinished.connect( self._lineBranchChanged) self._branchCombo.setMinimumContentsLength(10) self._branchCombo.setMaxVisibleItems(30) self._branchCombo.currentIndexChanged.connect(self._emitBranchChanged) completer = QCompleter(self._branchCombo.model(), self._branchCombo) if hasattr(completer, 'setFilterMode'): # Qt>=5.2 completer.setFilterMode(Qt.MatchFlag.MatchContains) self._branchCombo.setCompleter(completer) self.addWidget(self._branchLabel) self.addWidget(qtlib.Spacer(2, 2)) self.addWidget(self._branchCombo) def _loadBranchFilterSettings(self, s: QSettings) -> None: branch = qtlib.readString(s, 'branch') if branch == '.': branch = hglib.tounicode(self._repo.dirstate.branch()) self._branchCombo.blockSignals(True) self.setBranch(branch) self._branchCombo.blockSignals(False) self._allparAction.setChecked(qtlib.readBool(s, 'branch_allparents')) def _saveBranchFilterSettings(self, s: QSettings) -> None: branch = self.branch() if branch == hglib.tounicode(self._repo.dirstate.branch()): # special case for working branch: it's common to have multiple # clones which are updated to particular branches. branch = '.' s.setValue('branch', branch) s.setValue('branch_allparents', self.branchAncestorsIncluded()) def _updateBranchFilter(self): """Update the list of branches""" curbranch = self.branch() if self._abranchAction.isChecked(): branches = sorted(set([self._repo[n].branch() for n in self._repo.heads() if not self._repo[n].extra().get(b'close')])) elif self._cbranchAction.isChecked(): branches: List[bytes] = sorted(self._repo.branchmap()) else: branches = hglib.namedbranches(self._repo) # easy access to common branches (Python sorted() is stable) priomap = {self._repo.dirstate.branch(): -2, b'default': -1} branches = sorted(branches, key=lambda e: priomap.get(e, 0)) self._branchCombo.blockSignals(True) self._branchCombo.clear() self._branchCombo.addItem(self._allBranchesLabel) self._branchCombo.setItemData(self._branchCombo.count() - 1, '') for i, branch in enumerate(pycompat.maplist(hglib.tounicode, branches), self._branchCombo.count()): self._branchCombo.addItem(branch) self._branchCombo.setItemData(i, branch, Qt.ItemDataRole.ToolTipRole) self._branchCombo.setItemData(i, branch) self._branchCombo.setEnabled(self.filterEnabled and bool(branches)) self.setBranch(curbranch) self._branchCombo.blockSignals(False) if self.branch() != curbranch: self._emitBranchChanged() # falls back to "show all" @pyqtSlot(str) def setBranch(self, branch: Text) -> None: """Change the current branch by name [unicode]""" index = self._branchCombo.findData(branch) if index >= 0: self._branchCombo.setCurrentIndex(index) def branch(self) -> Text: """Return the current branch name [unicode]""" index = self._branchCombo.currentIndex() branch = self._branchCombo.itemData(index) return branch def branchAncestorsIncluded(self) -> bool: return self._allparAction.isChecked() def getShowHidden(self) -> bool: return self.showHiddenBtn.isChecked() def getShowGraftSource(self) -> bool: return self.showGraftSourceBtn.isChecked() @pyqtSlot() def _emitBranchChanged(self): self.branchChanged.emit(self.branch(), self.branchAncestorsIncluded()) @pyqtSlot() def _lineBranchChanged(self): written_branch = self._branchCombo.currentText() if not written_branch: self._branchCombo.setCurrentIndex(0) @pyqtSlot() def refresh(self): self._updateBranchFilter() self._updateShowHiddenBtnState() def _updateShowHiddenBtnState(self): hashidden = bool(repoview.filterrevs(self._repo, b'visible')) self.showHiddenBtn.setEnabled(hashidden) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730809007.0 tortoisehg-6.9/tortoisehg/hgqt/repomodel.py0000644000000000000000000011045714712406257020027 0ustar00rootroot# Copyright (c) 2009-2010 LOGILAB S.A. (Paris, FRANCE). # http://www.logilab.fr/ -- mailto:contact@logilab.fr # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along with # this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. from __future__ import annotations import binascii import os import re from .qtcore import ( QAbstractTableModel, QByteArray, QMimeData, QModelIndex, QT_VERSION, Qt, pyqtSignal, pyqtSlot, ) from .qtgui import ( QApplication, QColor, QFont, ) from mercurial import ( error, pycompat, ) from mercurial.utils import ( dateutil, ) from ..util import hglib from ..util.i18n import _ from . import ( cmdcore, filedata, graph, graphopt, ) if hglib.TYPE_CHECKING: from typing import ( Any, FrozenSet, List, Optional, Text, Tuple, Union, ) from mercurial import context from .qtcore import QObject from . import ( thgrepo, filedialogs, ) from ..util.typelib import ( Qt_ItemFlags, ) # _UnfilteredRepoAgentProxy is a short term hack, so don't use this type # for RepoAgent everywhere. RepoAgent = Union[thgrepo.RepoAgent, filedialogs._UnfilteredRepoAgentProxy] mqpatchmimetype = 'application/thg-mqunappliedpatch' # pick names from "hg help templating" if any GraphColumn = 0 RevColumn = 1 BranchColumn = 2 DescColumn = 3 AuthorColumn = 4 TagsColumn = 5 LatestTagColumn = 6 NodeColumn = 7 GitNodeColumn = 8 AgeColumn = 9 LocalDateColumn = 10 UtcDateColumn = 11 ChangesColumn = 12 ConvertedColumn = 13 PhaseColumn = 14 TopicColumn = 15 FileColumn = 16 COLUMNHEADERS = ( ('Graph', _('Graph', 'column header')), ('Rev', _('Rev', 'column header')), ('Branch', _('Branch', 'column header')), ('Description', _('Description', 'column header')), ('Author', _('Author', 'column header')), ('Tags', _('Tags', 'column header')), ('Latest tags', _('Latest tags', 'column header')), ('Node', _('Node', 'column header')), ('GitNode', _('Git Commit', 'column header')), ('Age', _('Age', 'column header')), ('LocalTime', _('Local Time', 'column header')), ('UTCTime', _('UTC Time', 'column header')), ('Changes', _('Changes', 'column header')), ('Converted', _('Converted From', 'column header')), ('Phase', _('Phase', 'column header')), ('Topic', _('Topic', 'column header')), ('Filename', _('Filename', 'column header')), ) ALLCOLUMNS = tuple(name for name, _text in COLUMNHEADERS) UNAPPLIED_PATCH_COLOR = QColor('#999999') HIDDENREV_COLOR = QColor('#666666') TROUBLED_COLOR = QColor(172, 34, 34) PUBLISHED_TOPIC_COLOR = QColor('#666666') GraphNodeRole = Qt.ItemDataRole.UserRole + 0 LabelsRole = Qt.ItemDataRole.UserRole + 1 # [(text, style), ...] def _parsebranchcolors(value: Text) -> List[Tuple[Text, Text]]: r"""Parse tortoisehg.branchcolors setting >>> _parsebranchcolors('foo:#123456 bar:#789abc ') [('foo', '#123456'), ('bar', '#789abc')] >>> _parsebranchcolors(r'foo\ bar:black foo\:bar:white') [('foo bar', 'black'), ('foo:bar', 'white')] >>> _parsebranchcolors(r'\u00c0:black') [(u'\xc0', 'black')] >>> _parsebranchcolors('\xc0:black') [('\xc0', 'black')] >>> _parsebranchcolors(None) [] >>> _parsebranchcolors('ill:formed:value no-value') [] >>> _parsebranchcolors(r'\ubad:unicode-repr') [] """ if not value: return [] colors = [] for e in re.split(r'(?:(?<=\\\\)|(? None: QAbstractTableModel.__init__(self, parent) self._cache = [] self._timerhandle = None self._rowcount = 0 self._repoagent = repoagent self._selectedrevs = frozenset([]) self._revspec = '' self._filterbyrevset = True self.unicodestar = True self.unicodexinabox = True self._branchheads = {} # branch: {node, ...} self._latesttags = {-1: (0, 0, 'null')} # date, dist, tag self._fullauthorname = False self._filterbranch = '' # unicode self._allparents = False self._showgraftsource = True # To be deleted self._user_colors = {} self._branch_colors = {} self._querysess = cmdcore.nullCmdSession() self._pendingrebuild = False repoagent.configChanged.connect(self._invalidate) repoagent.repositoryChanged.connect(self._reloadGraph) self._initBranchColors() self._reloadConfig() self.graph = self._createGraph() @property def repo(self): return self._repoagent.rawRepo() def _initBranchColors(self) -> None: # Always assign the first color to the default branch self._branch_colors['default'] = graph.COLORS[0] # Set the colors specified in the tortoisehg.brachcolors config key self._branch_colors.update(_parsebranchcolors( self._repoagent.configString('tortoisehg', 'branchcolors'))) def setBranch(self, branch: Text, allparents: bool = False) -> None: branchchanged = (branch != self._filterbranch) parentchanged = (allparents != self._allparents) self._filterbranch = branch self._allparents = allparents if branchchanged or (branch and parentchanged): self._rebuildGraph() def setShowGraftSource(self, visible: bool) -> None: if self._showgraftsource == visible: return self._showgraftsource = visible self._rebuildGraph() def _createGraph(self): opts = { 'branch': hglib.fromunicode(self._filterbranch), 'showgraftsource': self._showgraftsource, } if self._revspec and not self._selectedrevs and self._filterbyrevset: return graph.Graph(self.repo, []) # no matches found if self._selectedrevs and self._filterbyrevset: opts['revset'] = self._selectedrevs opts['showfamilyline'] = self._repoagent.configBool( 'tortoisehg', 'showfamilyline') grapher = graph.revision_grapher(self.repo, opts) if self._repoagent.configBool('tortoisehg', 'graphopt'): return graphopt.Graph(self.repo, opts) return graph.Graph(self.repo, grapher) else: opts['allparents'] = self._allparents grapher = graph.revision_grapher(self.repo, opts) if self._repoagent.configBool('tortoisehg', 'graphopt'): g = graphopt.Graph(self.repo, opts) else: g = graph.Graph(self.repo, grapher) if self.repo.thgmqunappliedpatches: g = graph.GraphWithMq(g, self.repo.thgmqunappliedpatches) return g @pyqtSlot() def _reloadGraph(self) -> None: self._branchheads.clear() self._latesttags = {-1: self._latesttags[-1]} # clear if self._revspec: self._runQuery() self._rebuildGraph() def _rebuildGraph(self) -> None: if not self._querysess.isFinished(): self._pendingrebuild = True return # skip costly operation while initializing options if self._rowcount <= 0 and not self.graph.isfilled(): assert not self._cache self.graph = self._createGraph() return # QTBUG-66444: Do not emit layoutChanged if we're sure the model # was/is about to be empty. Otherwise all columns would get visible # due to a bug existing in Qt 5.9.5-5.10.x. newgraph = self._createGraph() if not newgraph: newgraph.build_nodes(self._fill_step) if self._rowcount <= 0 or not newgraph: self._cache = [] self.graph = newgraph self._expandRowCount() self._shrinkRowCount() self._pendingrebuild = False self.revsUpdated.emit() return self.layoutAboutToBeChanged.emit() try: oldindexmap = {} # rev: [index, ...] for i in self.persistentIndexList(): rev = self.graph[i.row()].rev if rev not in oldindexmap: oldindexmap[rev] = [] oldindexmap[rev].append(i) try: brev = min(rev for rev in oldindexmap if isinstance(rev, int)) except ValueError: brev = None self._cache = [] try: self.graph = newgraph self._ensureBuilt(brev) except (error.RevlogError, error.RepoError): self._shrinkRowCount() # avoid further exceptions at data() raise self._expandRowCount() # old rows may be mapped to inserted rows for rev, ois in oldindexmap.items(): try: row = self.graph.index(rev) except ValueError: # QTBUG-66444: Work around QHeaderView bug which makes all # columns visible if the first row gets invalidated. This # is technically wrong because invalid rows should be # removed from the persistent indexes, but less bad than # losing user configuration. if QT_VERSION < 0x50b00 and ois[0].row() == 0: continue # rev stripped or patch (un-)applied, map to invalid index row = -1 nis = [self.index(row, i.column(), i.parent()) for i in ois] self.changePersistentIndexList(ois, nis) self._shrinkRowCount() # old rows should be mapped before removal self._pendingrebuild = False finally: self.layoutChanged.emit() self._emitAllDataChanged() self.revsUpdated.emit() def revset(self) -> Text: return self._revspec def setRevset(self, revspec: Text) -> None: if revspec == self._revspec: return self._revspec = revspec if not revspec: self._querysess.abort() self._applyRevsetResult([]) return self._runQuery() def _runQuery(self) -> None: self.showMessage.emit(_('Searching...')) self._querysess.abort() cmdline = ['log', '-T', '{rev}\n', '-r', self._revspec] self._querysess = sess = self._repoagent.runCommand(cmdline) sess.setCaptureOutput(True) sess.commandFinished.connect(self._onQueryFinished) @pyqtSlot(int) def _onQueryFinished(self, ret: int) -> None: sess = self._querysess if not sess.isFinished(): # new query is already running return if ret == 0: revs = pycompat.maplist(int, bytes(sess.readAll()).splitlines()) if revs: self.showMessage.emit(_('%d matches found') % len(revs)) else: self.showMessage.emit(_('No matches found')) self._applyRevsetResult(revs) elif not sess.isAborted(): self.showMessage.emit(sess.errorString() or sess.warningString()) if self._pendingrebuild: self._rebuildGraph() # invalid revspec def _applyRevsetResult(self, revset: List[int]) -> None: self._selectedrevs = frozenset(revset) if self._filterbyrevset or self._pendingrebuild: self._rebuildGraph() else: self._invalidate() self.revsUpdated.emit() # some revisions may be disabled def setFilterByRevset(self, filtered: bool) -> None: if self._filterbyrevset == filtered: return self._filterbyrevset = filtered if self._revspec: self._rebuildGraph() def _reloadConfig(self) -> None: self._fill_step = self._repoagent.configInt('tortoisehg', 'graphlimit') self._authorcolor = self._repoagent.configBool( 'tortoisehg', 'authorcolor') self._fullauthorname = self._repoagent.configBool( 'tortoisehg', 'fullauthorname') self._show_branch_head_label = self._repoagent.configBool( 'tortoisehg', 'show-branch-head-label') @pyqtSlot() def _invalidate(self) -> None: self._reloadConfig() self._cache = [] self._emitAllDataChanged() def _emitAllDataChanged(self) -> None: if self._rowcount <= 0: return # optimize range if necessary bottomright = self.index(self._rowcount - 1, self.columnCount() - 1) self.dataChanged.emit(self.index(0, 0), bottomright) def branch(self) -> Text: return self._filterbranch def canFetchMore(self, parent: QModelIndex) -> bool: if parent.isValid(): return False return not self.graph.isfilled() def fetchMore(self, parent: QModelIndex) -> None: if parent.isValid() or self.graph.isfilled(): return self.graph.build_nodes(self._fill_step) self._expandRowCount() def _ensureBuilt(self, rev: Optional[int]) -> None: """ Make sure rev data is available (graph element created). """ if not isinstance(rev, int): rev = len(self.repo) # working dir or unapplied patch self.graph.build_nodes(rev=rev) # caller should do _expandRowCount() or _shrinkRowCount() by itself def loadall(self) -> None: self._timerhandle = self.startTimer(1) def timerEvent(self, event): if event.timerId() == self._timerhandle: self.showMessage.emit(_('filling (%d)')%(len(self.graph))) self.graph.build_nodes() # we only fill the graph data structures without telling # views until the model is loaded, to keep maximal GUI # reactivity if self.graph.isfilled(): self.killTimer(self._timerhandle) self._timerhandle = None self._expandRowCount() self.showMessage.emit('') def _expandRowCount(self) -> None: newlen = len(self.graph) if newlen > self._rowcount: self.beginInsertRows(QModelIndex(), self._rowcount, newlen - 1) self._rowcount = newlen self.endInsertRows() def _shrinkRowCount(self) -> None: newlen = len(self.graph) if newlen < self._rowcount: self.beginRemoveRows(QModelIndex(), newlen, self._rowcount - 1) self._rowcount = newlen self.endRemoveRows() def rowCount(self, parent: QModelIndex = QModelIndex()) -> int: if parent.isValid(): return 0 return self._rowcount def columnCount(self, parent: QModelIndex = QModelIndex()) -> int: if parent.isValid(): return 0 return len(self.allColumns()) def maxWidthValueForColumn(self, column: int) -> Optional[Text]: if column == RevColumn: return '8' * len(str(len(self.repo))) + '+' if column in (NodeColumn, GitNodeColumn): return '8' * 12 + '+' if column in (LocalDateColumn, UtcDateColumn): return hglib.tounicode(hglib.displaytime(dateutil.makedate())) if column in (TagsColumn, LatestTagColumn): try: return sorted(self.repo.tags().keys(), key=lambda x: len(x))[-1][:10] except IndexError: pass if column == BranchColumn: try: return sorted(self.repo.branchmap(), key=lambda x: len(x))[-1] except IndexError: pass if self._hasFileColumn() and column == FileColumn: return self._filename if column == ChangesColumn: return 'Changes' # Fall through for DescColumn return None def rev(self, index: QModelIndex) -> int: """Revision number of the specified row; None for working-dir""" if not index.isValid(): return -1 gnode = self.graph[index.row()] if gnode.rev is not None and not isinstance(gnode.rev, int): # avoid mixing integer and localstr return -1 return gnode.rev def _user_color(self, user: Text) -> Text: 'deprecated, please replace with hgtk color scheme' if user not in self._user_colors: idx = graph.hashcolor(user) self._user_colors[user] = graph.COLORS[idx] return self._user_colors[user] def _namedbranch_color(self, branch: Text) -> Text: 'deprecated, please replace with hgtk color scheme' if branch not in self._branch_colors: idx = graph.hashcolor(branch) self._branch_colors[branch] = graph.COLORS[idx] return self._branch_colors[branch] def data(self, index: QModelIndex, role: int = Qt.ItemDataRole.DisplayRole) -> Any: if not index.isValid(): return None gnode = self.graph[index.row()] if role == Qt.ItemDataRole.DisplayRole: if self._hasFileColumn() and index.column() == FileColumn: return hglib.tounicode(gnode.extra[0]) if role == Qt.ItemDataRole.FontRole: if index.column() in (NodeColumn, GitNodeColumn, ConvertedColumn): return QFont("Monospace") if index.column() == DescColumn and gnode.wdparent: font = QApplication.font('QAbstractItemView') font.setBold(True) return font if role == Qt.ItemDataRole.ForegroundRole: if (gnode.shape == graph.NODE_SHAPE_UNAPPLIEDPATCH and index.column() != DescColumn): return UNAPPLIED_PATCH_COLOR if role == GraphNodeRole: return gnode # repo may be changed while reading in case of postpull=rebase for # example, and result in RevlogError. (issue #429) try: return self._safedata(index, role) except error.RevlogError as e: if 'THGDEBUG' in os.environ: raise if role == Qt.ItemDataRole.DisplayRole: return hglib.exception_str(e) else: return None def _safedata(self, index: QModelIndex, role: int) -> Any: row = index.row() graphlen = len(self.graph) cachelen = len(self._cache) if graphlen > cachelen: self._cache.extend({} for _i in pycompat.xrange(graphlen - cachelen)) data = self._cache[row] idx = (role, index.column()) if idx not in data: try: result = self._rawdata(index, role) except error.RepoLookupError: # happens if repository pruned/stripped or bundle unapplied # but model is not reloaded yet because repository is busy return None except error.Abort: return None data[idx] = result return data[idx] def _rawdata(self, index: QModelIndex, role: int) -> Any: row = index.row() column = index.column() gnode = self.graph[row] ctx = self.repo[gnode.rev] if role == Qt.ItemDataRole.DisplayRole: textfunc = self._columnmap.get(column) if textfunc is None: return None return textfunc(self, ctx) elif role == Qt.ItemDataRole.ForegroundRole: color = None if gnode.instabilities: color = TROUBLED_COLOR elif column == AuthorColumn and self._authorcolor: color = QColor(self._user_color(ctx.user())) elif column in (GraphColumn, BranchColumn): branch = hglib.tounicode(ctx.branch()) color = QColor(self._namedbranch_color(branch)) if index.column() != GraphColumn: if gnode.faded: if color is None: color = HIDDENREV_COLOR else: color = color.lighter() if column == TopicColumn and not ctx.mutable(): if color is None: color = PUBLISHED_TOPIC_COLOR else: color = color.lighter() return color elif role == LabelsRole and column == DescColumn: return self._getrevlabels(ctx) elif role == LabelsRole and column == ChangesColumn: return self._getchanges(ctx) return None def flags(self, index: QModelIndex) -> Qt_ItemFlags: flags = super(HgRepoListModel, self).flags(index) if not index.isValid(): return flags row = index.row() if row >= len(self.graph) and not self.repo.ui.debugflag: # TODO: should not happen; internal data went wrong (issue #754) return Qt.ItemFlag.NoItemFlags rev, isunapplied = self.graph.getrevstate(row) if not self.isActiveRev(rev): return Qt.ItemFlag.NoItemFlags if isunapplied: flags |= Qt.ItemFlag.ItemIsDragEnabled | Qt.ItemFlag.ItemIsDropEnabled if rev is None: flags |= Qt.ItemFlag.ItemIsDropEnabled return flags def isActiveRev(self, rev: int) -> bool: """True if the specified rev is not excluded by revset""" return (not self._revspec or rev in self._selectedrevs # consider everything is active while first query is running or (self._revspec and not self._selectedrevs and not self._querysess.isFinished())) def mimeTypes(self) -> List[Text]: return [mqpatchmimetype] def supportedDropActions(self): return Qt.DropAction.MoveAction def mimeData(self, indexes: List[QModelIndex]) -> QMimeData: data = set() for index in indexes: row = b'%d' % index.row() if row not in data: data.add(row) qmd = QMimeData() bytearray = QByteArray(b','.join(sorted(data, reverse=True))) qmd.setData(mqpatchmimetype, bytearray) return qmd def dropMimeData(self, data: QMimeData, action: int, row: int, column: int, parent: QModelIndex) -> bool: if mqpatchmimetype not in data.formats(): return False dragrows = [int(r) for r in bytes(data.data(mqpatchmimetype)).split(b',')] destrow = parent.row() if destrow < 0: return False unapplied = pycompat.maplist(hglib.tounicode, self.repo.thgmqunappliedpatches[::-1]) applied = [hglib.tounicode(p.name) for p in self.repo.mq.applied[::-1]] if max(dragrows) >= len(unapplied): return False dragpatches = [unapplied[d] for d in dragrows] allpatches = unapplied + applied if destrow < len(allpatches): destpatch = allpatches[destrow] else: destpatch = None # next to working rev cmdline = hglib.buildcmdargs('qreorder', after=destpatch, *dragpatches) self._repoagent.runCommand(cmdline) return True def headerData(self, section: int, orientation: int, role: int = Qt.ItemDataRole.DisplayRole) -> Optional[Text]: if orientation == Qt.Orientation.Horizontal and role == Qt.ItemDataRole.DisplayRole: return self.allColumnHeaders()[section][1] def defaultIndex(self) -> QModelIndex: """Index that should be selected when the model is initially loaded or the row previously selected is gone""" repo = self.repo initialsel = self._repoagent.configString( 'tortoisehg', 'initialrevision') changeid = {'current': b'.', 'tip': b'tip', 'workingdir': None, }.get(initialsel, b'.') rev: int = repo[changeid].rev() if self._selectedrevs and rev not in self._selectedrevs: rev = max(self._selectedrevs) index = self.indexFromRev(rev) if index.flags() & Qt.ItemFlag.ItemIsEnabled: return index if self._filterbranch: # look for the first active revision as last ditch; should be # removed if filterbranch is merged with revset for row in pycompat.xrange(len(self.graph)): gnode = self.graph[row] if not isinstance(gnode.rev, int): continue index = self.index(row, 0) if index.flags() & Qt.ItemFlag.ItemIsEnabled: return index return QModelIndex() def indexFromRev(self, rev: int) -> QModelIndex: self._ensureBuilt(rev) self._expandRowCount() try: row = self.graph.index(rev) except ValueError: return QModelIndex() return self.index(row, 0) def _getbranch(self, ctx: context.changectx) -> Text: b = hglib.tounicode(ctx.branch()) assert b is not None if ctx.extra().get(b'close'): if self.unicodexinabox: b += u' \u2327' else: b += u'--' return b def _getlatesttags(self, ctx: context.changectx) -> Text: rev = ctx.rev() todo = [rev] repo = self.repo while todo: rev = todo.pop() if rev in self._latesttags: continue ctx = repo[rev] tags = [hglib.tounicode(t) for t in ctx.tags() if repo.tagtype(t) and repo.tagtype(t) != b'local'] if tags: self._latesttags[rev] = ctx.date()[0], 0, ':'.join(sorted(tags)) continue try: # The tuples are laid out so the right one can be found by # comparison. if ctx.parents(): pdate, pdist, ptag = max( self._latesttags[p.rev()] for p in ctx.parents()) else: pdate, pdist, ptag = 0, -1, "" except KeyError: # Cache miss - recurse todo.append(rev) todo.extend(p.rev() for p in ctx.parents()) continue self._latesttags[rev] = pdate, pdist + 1, ptag return self._latesttags[rev][2] def _gettags(self, ctx: context.changectx) -> Text: if ctx.rev() is None: return '' tags = [hglib.tounicode(t) for t in ctx.tags() if t not in self._mqtags] return ','.join(tags) def _getrev(self, ctx: context.changectx) -> Text: rev = ctx.rev() if isinstance(rev, int): return str(rev) elif rev is None: return u'%d+' % ctx.p1().rev() else: return '' def _getauthor(self, ctx: context.changectx) -> Text: try: user = ctx.user() if not self._fullauthorname: user = hglib.username(user) return hglib.tounicode(user) except error.Abort: return _('Mercurial User') def _getlog(self, ctx: context.changectx) -> Text: if ctx.rev() is None: if self.unicodestar: # The Unicode symbol is a black star: return u'\u2605 ' + _('Working Directory') + u' \u2605' else: return '*** ' + _('Working Directory') + ' ***' if self._repoagent.configBool('tortoisehg', 'longsummary'): limit = 0x7fffffff # unlimited (elide it by view) else: limit = None # first line return hglib.longsummary(ctx.description(), limit) def _getrevlabels(self, ctx: context.changectx) -> List[Tuple[Text, Text]]: labels = [] # as of hg 4.4.2, repo.branchheads() can be slow because of # branchmap.updatecache() -> scmutil.filteredhash() calls branch = ctx.branch() try: branchheads = self._branchheads[branch] except KeyError: branchheads = set(self.repo.branchheads(branch)) self._branchheads[branch] = branchheads if ctx.rev() is None: if hglib.createsnewhead(ctx, branchheads): labels.append((_('Creates new head!'), 'log.warning')) topic = self._gettopic(ctx) if topic: labels.append((topic, 'topic.active')) return labels if self._show_branch_head_label: if ctx.node() in branchheads: labels.append((hglib.tounicode(branch), 'log.branch')) # ctx is really thgrepo.thgchangectx, but not accessible here if ctx.thgmqunappliedpatch(): # pytype: disable=attribute-error style = 'log.unapplied_patch' labels.append((hglib.tounicode(ctx._patchname), style)) # pytype: disable=attribute-error for mark in ctx.bookmarks(): style = 'log.bookmark' if mark == hglib.activebookmark(self.repo): bn = self.repo._bookmarks[hglib.activebookmark(self.repo)] if bn in self.repo.dirstate.parents(): style = 'log.curbookmark' labels.append((hglib.tounicode(mark), style)) for tag in ctx.thgtags(): # pytype: disable=attribute-error if self.repo.thgmqtag(tag): style = 'log.patch' else: style = 'log.tag' labels.append((hglib.tounicode(tag), style)) names = set(self._repoagent.configStringList( 'experimental', 'thg.displaynames')) for name, ns in self.repo.names.items(): if pycompat.sysstr(name) not in names: continue # we will use the templatename as the color name since those # two should be the same for name in ns.names(self.repo, ctx.node()): labels.append((hglib.tounicode(name), 'log.%s' % hglib.tounicode(ns.colorname))) return labels def _getchanges(self, ctx: context.changectx) -> List[Tuple[Text, Text]]: """Return the MAR status for the given ctx.""" labels = [] # ctx is really thgrepo.thgchangectx, but not accessible here M, A, R = ctx.changesToParent(0) # pytype: disable=attribute-error if A: labels.append((str(len(A)), 'log.added')) if M: labels.append((str(len(M)), 'log.modified')) if R: labels.append((str(len(R)), 'log.removed')) return labels def _getconv(self, ctx: context.changectx) -> Text: if ctx.rev() is not None: extra = ctx.extra() cvt = extra.get(b'convert_revision', b'') if cvt: if cvt.startswith(b'svn:'): return str(cvt.split(b'@')[-1], 'utf-8', 'replace') if len(cvt) == 40: try: binascii.unhexlify(cvt) return hglib.tounicode(cvt[:12]) except TypeError: pass cvt = extra.get(b'p4', b'') if cvt: return hglib.tounicode(cvt) return '' def _getphase(self, ctx: context.changectx) -> Text: if ctx.rev() is None: return '' try: return hglib.tounicode(ctx.phasestr()) except: return 'draft' def _gettopic(self, ctx: context.changectx) -> Optional[Text]: return hglib.tounicode(ctx.extra().get(b'topic')) def _hasFileColumn(self) -> bool: return False # no FileColumn def allColumns(self) -> Tuple[Text, ...]: if self._hasFileColumn(): return ALLCOLUMNS else: return ALLCOLUMNS[:-1] def allColumnHeaders(self): if self._hasFileColumn(): return COLUMNHEADERS else: return COLUMNHEADERS[:-1] _columnmap = { RevColumn: _getrev, BranchColumn: _getbranch, DescColumn: _getlog, AuthorColumn: _getauthor, TagsColumn: _gettags, LatestTagColumn: _getlatesttags, NodeColumn: lambda self, ctx: str(ctx), GitNodeColumn: lambda self, ctx: hglib.gitcommit_short(ctx), AgeColumn: lambda self, ctx: hglib.age(ctx.date()).decode('utf-8'), LocalDateColumn: lambda self, ctx: hglib.displaytime(ctx.date()).decode('utf-8'), UtcDateColumn: lambda self, ctx: hglib.utctime(ctx.date()), ConvertedColumn: _getconv, PhaseColumn: _getphase, TopicColumn: _gettopic, } class FileRevModel(HgRepoListModel): """ Model used to manage the list of revisions of a file, in file viewer of in diff-file viewer dialogs. """ _defaultcolumns = ('Graph', 'Rev', 'Branch', 'Description', 'Author', 'Age', 'Filename') def __init__(self, repoagent: RepoAgent, filename: bytes, parent: Optional[QObject] = None) -> None: self._filename = filename HgRepoListModel.__init__(self, repoagent, parent) def _hasFileColumn(self): return True def _createGraph(self): grapher = graph.filelog_grapher(self.repo, self._filename) return graph.Graph(self.repo, grapher) def indexLinkedFromRev(self, rev: Optional[int]) -> QModelIndex: """Index for the last changed revision before the specified revision This does not follow renames. """ # as of Mercurial 2.6, workingfilectx.linkrev() does not work, and # this model has no virtual working-dir revision. if rev is None: rev = b'.' try: fctx = self.repo[rev][self._filename] except error.LookupError: return QModelIndex() return self.indexFromRev(fctx.linkrev()) def fileData(self, index: QModelIndex, baseindex: QModelIndex = QModelIndex()) -> Union[filedata.FileData, filedata.PatchFileData]: """Displayable file data at the given index; baseindex specifies the revision where status is calculated from""" row = index.row() if not index.isValid() or row < 0 or row >= len(self.graph): return filedata.createNullData(self.repo) rev = self.graph[row].rev ctx = self.repo[rev] if baseindex.isValid(): prev = self.graph[baseindex.row()].rev pctx = self.repo[prev] else: pctx = ctx.p1() filename = self.graph.filename(rev) if filename in pctx: status = 'M' else: status = 'A' return filedata.createFileData(ctx, pctx, filename, status) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/reporegistry.py0000644000000000000000000011076214672254332020576 0ustar00rootroot# reporegistry.py - registry for a user's repositories # # Copyright 2010 Adrian Buehlmann # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os from typing import ( cast, Optional, ) from .qtcore import ( QFile, QFileSystemWatcher, QModelIndex, QPoint, QSettings, QTimer, Qt, pyqtSignal, pyqtSlot, ) from .qtgui import ( QAbstractItemView, QAction, QApplication, QDockWidget, QDropEvent, QFileDialog, QFontMetrics, QFrame, QMenu, QMessageBox, QMouseEvent, QTreeView, QVBoxLayout, ) from mercurial import ( commands, hg, pycompat, util, ) from ..util import ( hglib, paths, ) from ..util.i18n import _ from . import ( qtlib, repotreemodel, settings, ) def settingsfilename(): """Return path to thg-reporegistry.xml as unicode""" s = QSettings() dir = os.path.dirname(s.fileName()) return dir + '/' + 'thg-reporegistry.xml' class RepoTreeView(QTreeView): showMessage = pyqtSignal(str) openRequested = pyqtSignal(QModelIndex) removeRequested = pyqtSignal(QModelIndex) dropAccepted = pyqtSignal() def __init__(self, parent): QTreeView.__init__(self, parent, allColumnsShowFocus=True) if qtlib.IS_RETINA: self.setIconSize(qtlib.treeviewRetinaIconSize()) self.msg = '' self.setHeaderHidden(True) self.setExpandsOnDoubleClick(False) self.setMouseTracking(True) # enable drag and drop # see # https://doc.qt.io/qt-4.8/model-view-programming.html#using-drag-and-drop-with-item-views self.setDragEnabled(True) self.setAcceptDrops(True) self.setAutoScroll(True) self.setDragDropMode(QAbstractItemView.DragDropMode.DragDrop) self.setDefaultDropAction(Qt.DropAction.MoveAction) self.setDropIndicatorShown(True) self.setEditTriggers(QAbstractItemView.EditTrigger.DoubleClicked | QAbstractItemView.EditTrigger.EditKeyPressed) self.setSelectionBehavior(QAbstractItemView.SelectionBehavior.SelectRows) def dragEnterEvent(self, event): if event.source() is self: # Use the default event handler for internal dragging super(RepoTreeView, self).dragEnterEvent(event) return d = event.mimeData() for u in d.urls(): root = paths.find_root(u.toLocalFile()) if root: event.setDropAction(Qt.DropAction.LinkAction) event.accept() self.setState(QAbstractItemView.State.DraggingState) break def dropLocation(self, event: QDropEvent): index = self.indexAt(qtlib.qDropEventPosition(event)) # Determine where the item was dropped. target = index.internalPointer() if not target.isRepo(): group = index row = -1 else: indicator = self.dropIndicatorPosition() group = index.parent() row = index.row() if indicator == QAbstractItemView.DropIndicatorPosition.BelowItem: row = index.row() + 1 return index, group, row def startDrag(self, supportedActions): indexes = self.selectedIndexes() # Make sure that all selected items are of the same type if len(indexes) == 0: # Nothing to drag! return # Make sure that all items that we are dragging are of the same type firstItem = indexes[0].internalPointer() selectionInstanceType = type(firstItem) for idx in indexes[1:]: if selectionInstanceType != type(idx.internalPointer()): # Cannot drag mixed type items return # Each item type may support different drag & drop actions # For instance, suprepo items support Copy actions only supportedActions = firstItem.getSupportedDragDropActions() super(RepoTreeView, self).startDrag(supportedActions) def dropEvent(self, event: QDropEvent): data = event.mimeData() index, group, row = self.dropLocation(event) if index: m = self.model() assert m is not None if event.source() is self: # Event is an internal move, so pass it to the model col = 0 if m.dropMimeData(data, event.dropAction(), row, col, group): event.accept() self.dropAccepted.emit() else: # Event is a drop of an external repo accept = False for u in data.urls(): uroot = paths.find_root(u.toLocalFile()) if uroot and not m.isKnownRepoRoot(uroot, standalone=True): repoindex = m.addRepo(uroot, row, group) m.loadSubrepos(repoindex) accept = True if accept: event.setDropAction(Qt.DropAction.LinkAction) event.accept() self.dropAccepted.emit() self.setAutoScroll(False) self.setState(QAbstractItemView.State.NoState) self.viewport().update() self.setAutoScroll(True) def keyPressEvent(self, event): if (event.key() in (Qt.Key.Key_Enter, Qt.Key.Key_Return) and self.state() != QAbstractItemView.State.EditingState): index = self.currentIndex() if index.isValid(): self.openRequested.emit(index) return if event.key() == Qt.Key.Key_Delete: index = self.currentIndex() if index.isValid(): self.removeRequested.emit(index) return super(RepoTreeView, self).keyPressEvent(event) def mouseMoveEvent(self, event: QMouseEvent) -> None: self.msg = '' pos = event.pos() idx = self.indexAt(pos) if idx.isValid(): item = idx.internalPointer() self.msg = item.details() self.showMessage.emit(self.msg) if event.buttons() == Qt.MouseButton.NoButton: # Bail out early to avoid tripping over this bug: # https://bugreports.qt.io/browse/QTBUG-10180 return super(RepoTreeView, self).mouseMoveEvent(event) def leaveEvent(self, event): if self.msg != '': self.showMessage.emit('') def mouseDoubleClickEvent(self, event: QMouseEvent) -> None: index = self.indexAt(event.pos()) if index.isValid() and index.internalPointer().isRepo(): self.openRequested.emit(index) else: # a double-click on non-repo rows opens an editor super(RepoTreeView, self).mouseDoubleClickEvent(event) def sizeHint(self): size = super(RepoTreeView, self).sizeHint() size.setWidth(QFontMetrics(self.font()).horizontalAdvance('M') * 15) return size class RepoRegistryView(QDockWidget): showMessage = pyqtSignal(str) openRepo = pyqtSignal(str, bool) removeRepo = pyqtSignal(str) cloneRepoRequested = pyqtSignal(str) progressReceived = pyqtSignal(str, object, str, str, object) def __init__(self, repomanager, parent): QDockWidget.__init__(self, parent) self._repomanager = repomanager repomanager.repositoryOpened.connect(self._addAndScanRepo) self.watcher = None self._setupSettingActions() self.setFeatures(QDockWidget.DockWidgetFeature.DockWidgetClosable | QDockWidget.DockWidgetFeature.DockWidgetMovable | QDockWidget.DockWidgetFeature.DockWidgetFloatable) self.setWindowTitle(_('Repository Registry')) mainframe = QFrame() mainframe.setLayout(QVBoxLayout()) self.setWidget(mainframe) mainframe.layout().setContentsMargins(0, 0, 0, 0) self.contextmenu = QMenu(self) self.tview = tv = RepoTreeView(self) mainframe.layout().addWidget(tv) tv.setIndentation(10) tv.setFirstColumnSpanned(0, QModelIndex(), True) tv.setColumnHidden(1, True) tv.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) tv.customContextMenuRequested.connect(self._onMenuRequested) tv.showMessage.connect(self.showMessage) tv.openRequested.connect(self._openRepoAt) tv.removeRequested.connect(self._removeAt) tv.dropAccepted.connect(self.dropAccepted) self.createActions() self._loadSettings() self._updateSettingActions() sfile = settingsfilename() model = repotreemodel.RepoTreeModel(QFile(sfile), repomanager, self, showShortPaths=self._isSettingEnabled('showShortPaths')) tv.setModel(model) # Setup a file system watcher to update the reporegistry # anytime it is modified by another thg instance # Note that we must make sure that the settings file exists before # setting thefile watcher if not os.path.exists(sfile): if not os.path.exists(os.path.dirname(sfile)): os.makedirs(os.path.dirname(sfile)) m = tv.model() assert m is not None m.write(sfile) self.watcher = QFileSystemWatcher(self) self.watcher.addPath(sfile) self._reloadModelTimer = QTimer(self, interval=2000, singleShot=True) self._reloadModelTimer.timeout.connect(self.reloadModel) self.watcher.fileChanged.connect(self._reloadModelTimer.start) QTimer.singleShot(0, self._initView) @pyqtSlot() def _initView(self): self._loadExpandedState() self._updateColumnVisibility() if self._isSettingEnabled('showSubrepos'): self._scanAllRepos() def _loadSettings(self): defaultmap = {'showPaths': False, 'showSubrepos': False, 'showNetworkSubrepos': False, 'showShortPaths': True} s = QSettings() s.beginGroup('Workbench') # for compatibility with old release for key, action in self._settingactions.items(): action.setChecked(qtlib.readBool(s, key, defaultmap[key])) s.endGroup() def _saveSettings(self): s = QSettings() s.beginGroup('Workbench') # for compatibility with old release for key, action in self._settingactions.items(): s.setValue(key, action.isChecked()) s.endGroup() s.beginGroup('reporegistry') self._writeExpandedState(s) s.endGroup() def _loadExpandedState(self): s = QSettings() s.beginGroup('reporegistry') self._readExpandedState(s) s.endGroup() def _setupSettingActions(self): settingtable = [ ('showPaths', _('Show &Paths'), self._updateColumnVisibility), ('showShortPaths', _('Show S&hort Paths'), self._updateCommonPath), ('showSubrepos', _('&Scan Repositories at Startup'), None), ('showNetworkSubrepos', _('Scan &Remote Repositories'), None), ] self._settingactions = {} for i, (key, text, slot) in enumerate(settingtable): a = QAction(text, self, checkable=True) a.setData(i) # sort key if slot: a.triggered.connect(slot) a.triggered.connect(self._updateSettingActions) self._settingactions[key] = a @pyqtSlot() def _updateSettingActions(self): ax = self._settingactions ax['showNetworkSubrepos'].setEnabled(ax['showSubrepos'].isChecked()) ax['showShortPaths'].setEnabled(ax['showPaths'].isChecked()) def settingActions(self): return sorted(self._settingactions.values(), key=lambda a: a.data()) def _isSettingEnabled(self, key): return self._settingactions[key].isChecked() @pyqtSlot() def _updateCommonPath(self): show = self._isSettingEnabled('showShortPaths') model = self.tview.model() assert model is not None model.updateCommonPaths(show) # FIXME: access violation; should be done by model self.tview.dataChanged(QModelIndex(), QModelIndex()) def updateSettingsFile(self): # If there is a settings watcher, we must briefly stop watching the # settings file while we save it, otherwise we'll get the update signal # that we do not want sfile = settingsfilename() if self.watcher: self.watcher.removePath(sfile) model = self.tview.model() assert model is not None model.write(sfile) if self.watcher: self.watcher.addPath(sfile) # Whenver the settings file must be updated, it is also time to ensure # that the commonPaths are up to date QTimer.singleShot(0, model.updateCommonPaths) @pyqtSlot() def dropAccepted(self): # Whenever a drag and drop operation is completed, update the settings # file QTimer.singleShot(0, self.updateSettingsFile) @pyqtSlot() def reloadModel(self): oldmodel = self.tview.model() assert oldmodel is not None activeroot = oldmodel.repoRoot(oldmodel.activeRepoIndex()) newmodel = repotreemodel.RepoTreeModel(QFile(settingsfilename()), self._repomanager, self, self._isSettingEnabled('showShortPaths')) self.tview.setModel(newmodel) oldmodel.deleteLater() if self._isSettingEnabled('showSubrepos'): self._scanAllRepos() self._loadExpandedState() if activeroot: self.setActiveTabRepo(activeroot) self._reloadModelTimer.stop() def _readExpandedState(self, s): model = self.tview.model() assert model is not None for path in qtlib.readStringList(s, 'expanded'): self.tview.expand(model.indexFromItemPath(path)) def _writeExpandedState(self, s): model = self.tview.model() assert model is not None paths = [model.itemPath(i) for i in model.persistentIndexList() if i.column() == 0 and self.tview.isExpanded(i)] s.setValue('expanded', paths) # TODO: better to handle repositoryOpened signal by model @pyqtSlot(str) def _addAndScanRepo(self, uroot: str): """Add repo if not exists; called when the workbench has opened it""" m = self.tview.model() assert m is not None knownindex = m.indexFromRepoRoot(uroot) if knownindex.isValid(): self._scanAddedRepo(knownindex) # just scan stale subrepos else: index = m.addRepo(uroot) self._scanAddedRepo(index) self.updateSettingsFile() def addClonedRepo(self, root, sourceroot): """Add repo to the same group as the source""" m = self.tview.model() assert m is not None src = m.indexFromRepoRoot(sourceroot, standalone=True) if src.isValid() and not m.isKnownRepoRoot(root): index = m.addRepo(root, parent=src.parent()) self._scanAddedRepo(index) def setActiveTabRepo(self, root): """"The selected tab has changed on the workbench""" m = self.tview.model() assert m is not None index = m.indexFromRepoRoot(root) m.setActiveRepo(index) self.tview.scrollTo(index) @pyqtSlot() def _updateColumnVisibility(self): show = self._isSettingEnabled('showPaths') self.tview.setColumnHidden(1, not show) self.tview.setHeaderHidden(not show) if show: self.tview.resizeColumnToContents(0) self.tview.resizeColumnToContents(1) def close(self): # We must stop monitoring the settings file and then we can save it sfile = settingsfilename() self.watcher.removePath(sfile) model = self.tview.model() assert model is not None model.write(sfile) self._saveSettings() def _action_defs(self): a = [("reloadRegistry", _("&Refresh Repository List"), 'view-refresh', _("Refresh the Repository Registry list"), self.reloadModel), ("open", _("&Open"), 'thg-repository-open', _("Open the repository in a new tab"), self.open), ("openAll", _("&Open All"), 'thg-repository-open', _("Open all repositories in new tabs"), self.openAll), ("newGroup", _("New &Group"), 'new-group', _("Create a new group"), self.newGroup), ("rename", _("Re&name"), None, _("Rename the entry"), self.startRename), ("settings", _("Settin&gs"), 'thg-userconfig', _("View the repository's settings"), self.startSettings), ("remove", _("Re&move from Registry"), 'hg-strip', _("Remove the node and all its subnodes." " Repositories are not deleted from disk."), self.removeSelected), ("clone", _("Clon&e..."), 'hg-clone', _("Clone Repository"), self.cloneRepo), ("explore", _("E&xplore"), 'system-file-manager', _("Open the repository in a file browser"), self.explore), ("terminal", _("&Terminal"), 'utilities-terminal', _("Open a shell terminal in the repository root"), self.terminal), ("add", _("&Add Repository..."), 'hg', _("Add a repository to this group"), self.addNewRepo), ("addsubrepo", _("A&dd Subrepository..."), 'thg-add-subrepo', _("Convert an existing repository into a subrepository"), self.addSubrepo), ("removesubrepo", _("Remo&ve Subrepository..."), 'thg-remove-subrepo', _("Remove this subrepository from the current revision"), self.removeSubrepo), ("copypath", _("Copy &Path"), '', _("Copy the root path of the repository to the clipboard"), self.copyPath), ("sortbyname", _("Sort by &Name"), '', _("Sort the group by short name"), self.sortbyname), ("sortbypath", _("Sort by &Path"), '', _("Sort the group by full path"), self.sortbypath), ("sortbyhgsub", _("&Sort by .hgsub"), '', _("Order the subrepos as in .hgsub"), self.sortbyhgsub), ] return a def createActions(self): self._actions = {} for name, desc, icon, tip, cb in self._action_defs(): self._actions[name] = QAction(desc, self) QTimer.singleShot(0, self.configureActions) def configureActions(self): for name, desc, icon, tip, cb in self._action_defs(): act = self._actions[name] if icon: act.setIcon(qtlib.geticon(icon)) if tip: act.setStatusTip(tip) if cb: act.triggered.connect(cb) self.addAction(act) @pyqtSlot(QPoint) def _onMenuRequested(self, pos): index = self.tview.currentIndex() if not index.isValid(): return menulist = index.internalPointer().menulist() if not menulist: return self.addtomenu(self.contextmenu, menulist) self.contextmenu.popup(self.tview.viewport().mapToGlobal(pos)) def addtomenu(self, menu, actlist): menu.clear() for act in actlist: if hglib.isbasestring(act) and act in self._actions: menu.addAction(self._actions[act]) elif isinstance(act, tuple) and len(act) == 2: submenu = menu.addMenu(act[0]) self.addtomenu(submenu, act[1]) else: menu.addSeparator() # ## Menu action handlers # def _currentRepoRoot(self) -> Optional[str]: model = self.tview.model() index = self.tview.currentIndex() assert model is not None return model.repoRoot(index) def cloneRepo(self): self.cloneRepoRequested.emit(self._currentRepoRoot()) def explore(self): # On Windows, opening a directory URL can lead to running an # executable file instead if this file has the same base name # than the directory (ex: opening "C:\MyDir" will run # "C:\MyDir.bat" instead if it exists). # Make sure that there is a directory separator at the end of # the path to be explicit about the fact that this URL is # expected to be a directory. repoRootDirectory = os.path.join(self._currentRepoRoot(), '') qtlib.openlocalurl(repoRootDirectory) def terminal(self): model = self.tview.model() index = self.tview.currentIndex() repoitem = index.internalPointer() assert model is not None qtlib.openshell(hglib.fromunicode(model.repoRoot(index)), hglib.fromunicode(repoitem.shortname())) def addNewRepo(self): 'menu action handler for adding a new repository' caption = _('Select repository directory to add') FD = QFileDialog path = FD.getExistingDirectory(caption=caption, options=QFileDialog.Option.ShowDirsOnly | QFileDialog.Option.ReadOnly) if not path: # the used pressed "cancel" return m = self.tview.model() assert m is not None uroot = paths.find_root(path) if not uroot: qtlib.WarningMsgBox( _('Repository not found'), _('The selected directory (%s) does not appear to be ' 'a mercurial repository') % path, parent=self) return if m.isKnownRepoRoot(uroot, standalone=True): qtlib.InfoMsgBox( _('Repository already in registry'), _('The selected repository (%s) is already present in ' 'the registry. Not adding it again.') % uroot, parent=self) return # this is a new mercurial repo, let's add it to the registry index = m.addRepo(uroot, parent=self.tview.currentIndex()) self._scanAddedRepo(index) def addSubrepo(self): 'menu action handler for adding a new subrepository' root = self._currentRepoRoot() assert root is not None caption = _('Select an existing repository to add as a subrepo') FD = QFileDialog path = FD.getExistingDirectory(caption=caption, directory=root, options=QFileDialog.Option.ShowDirsOnly | QFileDialog.Option.ReadOnly) if not path: # the used pressed "cancel" return path = os.path.normpath(path) sroot = paths.find_root(path) root = os.path.normcase(os.path.normpath(root)) if not sroot: qtlib.WarningMsgBox(_('Cannot add subrepository'), _('%s is not a valid repository') % path, parent=self) return if not os.path.isdir(sroot): qtlib.WarningMsgBox(_('Cannot add subrepository'), _('"%s" is not a folder') % sroot, parent=self) return if os.path.normcase(sroot) == root: qtlib.WarningMsgBox(_('Cannot add subrepository'), _('A repository cannot be added as a subrepo of itself'), parent=self) return if root != paths.find_root(os.path.dirname(os.path.normcase(path))): qtlib.WarningMsgBox(_('Cannot add subrepository'), _('The selected folder:

                                                                                                            %s

                                                                                                            ' 'is not inside the target repository.

                                                                                                            ' 'This may be allowed but is greatly discouraged.
                                                                                                            ' 'If you want to add a non trivial subrepository mapping ' 'you must manually edit the .hgsub file') % root, parent=self) return # The selected path is the root of a repository that is inside # the selected repository # Use forward slashes for relative subrepo root paths srelroot = util.pconvert(hglib.fromunicode(sroot[len(root)+1:])) # Is is already on the selected repository substate list? try: repo = hg.repository(hglib.loadui(), hglib.fromunicode(root)) except: qtlib.WarningMsgBox(_('Cannot open repository'), _('The selected repository:

                                                                                                            %s

                                                                                                            ' 'cannot be open!') % root, parent=self) return if srelroot in repo[b'.'].substate: qtlib.WarningMsgBox(_('Subrepository already exists'), _('The selected repository:

                                                                                                            %s

                                                                                                            ' 'is already a subrepository of:

                                                                                                            %s

                                                                                                            ' 'as: "%s"') % (sroot, root, hglib.tounicode(srelroot)), parent=self) return # Read the current .hgsub file contents lines = [] hasHgsub = os.path.exists(repo.wjoin(b'.hgsub')) if hasHgsub: try: with repo.wvfs(b'.hgsub', b'r') as fsub: lines = fsub.readlines() except: qtlib.WarningMsgBox( _('Failed to add subrepository'), _('Cannot open the .hgsub file in:

                                                                                                            %s') \ % root, parent=self) return # Make sure that the selected subrepo (or one of its # subrepos!) is not already on the .hgsub file linesep = b'' # On Windows case is unimportant, while on posix it is srelrootnormcase = os.path.normcase(srelroot) for line in lines: spath = line.split(b"=")[0].strip() if not spath: continue uline = hglib.tounicode(line) if not linesep: linesep = hglib.fromunicode(hglib.getLineSeparator(uline)) spath = util.pconvert(spath) if os.path.normcase(spath) == srelrootnormcase: qtlib.WarningMsgBox( _('Failed to add repository'), _('The .hgsub file already contains the ' 'line:

                                                                                                            %s') % uline, parent=self) return if not linesep: linesep = pycompat.oslinesep # Append the new subrepo to the end of the .hgsub file lines.append(b'%s = %s' % (srelroot, srelroot)) lines = [line.strip(linesep) for line in lines] # and update the .hgsub file try: with repo.wvfs(b'.hgsub', b'w') as fsub: fsub.write(linesep.join(lines) + linesep) if not hasHgsub: commands.add(hglib.loadui(), repo, repo.wjoin(b'.hgsub')) qtlib.InfoMsgBox( _('Subrepo added to .hgsub file'), _('The selected subrepo:

                                                                                                            %s

                                                                                                            ' 'has been added to the .hgsub file of the repository:

                                                                                                            %s

                                                                                                            ' 'Remember that in order to finish adding the ' 'subrepo you must still commit the ' 'changes to the .hgsub file in order to confirm ' 'the addition of the subrepo.') \ % (hglib.tounicode(srelroot), root), parent=self) except: qtlib.WarningMsgBox( _('Failed to add repository'), _('Cannot update the .hgsub file in:

                                                                                                            %s') \ % root, parent=self) def removeSubrepo(self): 'menu action handler for removing an existing subrepository' model = cast(repotreemodel.RepoTreeModel, self.tview.model()) index = self.tview.currentIndex() assert model is not None upath = model.repoRoot(index) uroot = model.repoRoot(index.parent()) urelsubpath = os.path.normcase(os.path.normpath(upath[1+len(uroot):])) relsubpath = hglib.fromunicode(urelsubpath) hgsubfilename = os.path.join(hglib.fromunicode(uroot), b'.hgsub') try: hgsub = [] found = False with open(hgsubfilename, 'rb') as f: for line in f: spath = os.path.normcase( os.path.normpath( line.split(b'=')[0].strip())) if spath != relsubpath: hgsub.append(line) else: found = True except IOError: qtlib.ErrorMsgBox(_('Could not open .hgsub file'), _('Cannot read the .hgsub file.

                                                                                                            ' 'Subrepository removal failed.'), parent=self) return if not found: qtlib.WarningMsgBox(_('Subrepository not found'), _('The selected subrepository was not found ' 'on the .hgsub file.

                                                                                                            ' 'Perhaps it has already been removed?'), parent=self) return choices = (_('&Yes'), _('&No')) answer = qtlib.CustomPrompt(_('Remove the selected repository?'), _('Do you really want to remove the repository "%s" ' 'from its parent repository "%s"') % (urelsubpath, uroot), self, choices=choices, default=0).run() if answer != 0: return try: with open(hgsubfilename, 'wb') as f: f.writelines(hgsub) qtlib.InfoMsgBox(_('Subrepository removed from .hgsub'), _('The selected subrepository has been removed ' 'from the .hgsub file.

                                                                                                            ' 'Remember that you must commit this .hgsub change in order ' 'to complete the removal of the subrepository!'), parent=self) except IOError: qtlib.ErrorMsgBox(_('Could not update .hgsub file'), _('Cannot update the .hgsub file.

                                                                                                            ' 'Subrepository removal failed.'), parent=self) def startSettings(self): root = hglib.fromunicode(self._currentRepoRoot()) sd = settings.SettingsDialog(configrepo=True, focus='web.name', parent=self, root=root) sd.finished.connect(sd.deleteLater) sd.exec() def openAll(self): index = self.tview.currentIndex() for root in index.internalPointer().childRoots(): self.openRepo.emit(root, False) def open(self, root=None): 'open context menu action, open repowidget unconditionally' if not root: model = self.tview.model() index = self.tview.currentIndex() assert model is not None root = model.repoRoot(index) repotype = index.internalPointer().repotype() else: if os.path.exists(os.path.join(root, '.hg')): repotype = 'hg' else: repotype = 'unknown' if repotype == 'hg': self.openRepo.emit(root, False) else: qtlib.WarningMsgBox( _('Unsupported repository type (%s)') % repotype, _('Cannot open non Mercurial repositories or subrepositories'), parent=self) @pyqtSlot(QModelIndex) def _openRepoAt(self, index): model = self.tview.model() assert model is not None root = model.repoRoot(index) if root: # We can only open mercurial repositories and subrepositories repotype = index.internalPointer().repotype() if repotype == 'hg': self.openRepo.emit(root, True) else: qtlib.WarningMsgBox( _('Unsupported repository type (%s)') % repotype, _('Cannot open non Mercurial repositories or ' 'subrepositories'), parent=self) def copyPath(self): clip = QApplication.clipboard() clip.setText(self._currentRepoRoot()) def startRename(self): self.tview.edit(self.tview.currentIndex()) def newGroup(self): model = self.tview.model() assert model is not None model.addGroup(_('New Group')) def removeSelected(self): root = self._currentRepoRoot() self._removeAt(self.tview.currentIndex()) if root: self.removeRepo.emit(root) @pyqtSlot(QModelIndex) def _removeAt(self, index): item = index.internalPointer() if 'remove' not in item.menulist(): # check capability return if not item.okToDelete(): labels = [(QMessageBox.StandardButton.Yes, _('&Delete')), (QMessageBox.StandardButton.No, _('Cancel'))] if not qtlib.QuestionMsgBox(_('Confirm Delete'), _("Delete Group '%s' and all its " "entries?") % item.name, labels=labels, parent=self): return m = self.tview.model() assert m is not None m.removeRows(index.row(), 1, index.parent()) self.updateSettingsFile() def sortbyname(self): index = self.tview.currentIndex() childs = index.internalPointer().childs model = self.tview.model() assert model is not None model.sortchilds(childs, lambda x: x.shortname().lower()) def sortbypath(self): index = self.tview.currentIndex() childs = index.internalPointer().childs def keyfunc(x): l = hglib.fromunicode(x.rootpath()) return os.path.normcase(util.normpath(l)) model = self.tview.model() assert model is not None model.sortchilds(childs, keyfunc) def sortbyhgsub(self): model = self.tview.model() index = self.tview.currentIndex() ip = index.internalPointer() assert model is not None repo = hg.repository(hglib.loadui(), hglib.fromunicode(model.repoRoot(index))) ctx = repo[b'.'] wfile = b'.hgsub' if wfile not in ctx: return self.sortbypath() data = ctx[wfile].data().strip() data = data.split(b'\n') getsubpath = lambda x: x.split(b'=')[0].strip() abspath = lambda x: util.normpath(repo.wjoin(x)) hgsuborder = [abspath(getsubpath(x)) for x in data] def keyfunc(x): l = hglib.fromunicode(x.rootpath()) try: return hgsuborder.index(util.normpath(l)) except ValueError: # If an item is not found, place it at the top return 0 model = self.tview.model() assert model is not None model.sortchilds(ip.childs, keyfunc) def _scanAddedRepo(self, index): m = self.tview.model() assert m is not None invalidpaths = m.loadSubrepos(index) if not invalidpaths: return root = m.repoRoot(index) if root in invalidpaths: qtlib.WarningMsgBox(_('Could not get subrepository list'), _('It was not possible to get the subrepository list for ' 'the repository in:

                                                                                                            %s') % root, parent=self) else: qtlib.WarningMsgBox(_('Could not open some subrepositories'), _('It was not possible to fully load the subrepository ' 'list for the repository in:

                                                                                                            %s

                                                                                                            ' 'The following subrepositories may be missing, broken or ' 'on an inconsistent state and cannot be accessed:' '

                                                                                                            %s') % (root, "
                                                                                                            ".join(invalidpaths)), parent=self) @pyqtSlot(str) def scanRepo(self, uroot: str): m = self.tview.model() assert m is not None index = m.indexFromRepoRoot(uroot) if index.isValid(): m.loadSubrepos(index) def _scanAllRepos(self): m = self.tview.model() assert m is not None indexes = m.indexesOfRepoItems(standalone=True) if not self._isSettingEnabled('showNetworkSubrepos'): indexes = [idx for idx in indexes if paths.is_on_fixed_drive(m.repoRoot(idx))] topic = _('Updating repository registry') for n, idx in enumerate(indexes): self.progressReceived.emit( topic, n, _('Loading repository %s') % m.repoRoot(idx), '', len(indexes)) m.loadSubrepos(idx) self.progressReceived.emit( topic, None, _('Repository Registry updated'), '', None) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/repotab.py0000644000000000000000000004105114672254332017466 0ustar00rootroot# repotab.py - stack of repository widgets # # Copyright (C) 2007-2010 Logilab. All rights reserved. # Copyright 2014 Yuya Nishihara # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os from .qtcore import ( QObject, QPoint, QSignalMapper, QT_API, Qt, pyqtSignal, pyqtSlot, ) from .qtgui import ( QAction, QActionGroup, QKeySequence, QMenu, QMouseEvent, QShortcut, QStackedLayout, QTabBar, QVBoxLayout, QWidget, ) from mercurial import ( error, pycompat, ) from ..util import hglib from ..util.i18n import _ from . import ( cmdcore, qtlib, repowidget, ) class _TabBar(QTabBar): def mouseReleaseEvent(self, event: QMouseEvent) -> None: if event.button() == Qt.MouseButton.MiddleButton: self.tabCloseRequested.emit(self.tabAt(event.pos())) super(_TabBar, self).mouseReleaseEvent(event) class RepoTabWidget(QWidget): """Manage stack of RepoWidgets of open repositories""" currentRepoChanged = pyqtSignal(str, str) # curpath, prevpath currentTabChanged = pyqtSignal(int) currentTaskTabChanged = pyqtSignal() currentTitleChanged = pyqtSignal() historyChanged = pyqtSignal() makeLogVisible = pyqtSignal(bool) progressReceived = pyqtSignal(str, cmdcore.ProgressMessage) showMessageSignal = pyqtSignal(str) taskTabVisibilityChanged = pyqtSignal(bool) toolbarVisibilityChanged = pyqtSignal(bool) # look-up of tab-index and stack-index: # 1. tabbar[tab-index] -> {tabData: rw, tabToolTip: root} # 2. stack[rw] -> stack-index # # tab-index is the master, so do not use stack.setCurrentIndex(). def __init__(self, config, actionregistry, repomanager, parent=None): super(RepoTabWidget, self).__init__(parent) self._config = config self._actionregistry = actionregistry self._repomanager = repomanager # delay until the next event loop so that the current tab won't be # gone in the middle of switching tabs (issue #4253) repomanager.repositoryDestroyed.connect(self.closeRepo, Qt.ConnectionType.QueuedConnection) vbox = QVBoxLayout(self) vbox.setContentsMargins(0, 0, 0, 0) vbox.setSpacing(0) self._tabbar = tabbar = _TabBar(self) if qtlib.IS_RETINA: tabbar.setIconSize(qtlib.barRetinaIconSize()) tabbar.setDocumentMode(True) tabbar.setExpanding(False) tabbar.setTabsClosable(True) tabbar.setUsesScrollButtons(True) tabbar.setMovable(True) tabbar.currentChanged.connect(self._onCurrentTabChanged) tabbar.tabCloseRequested.connect(self.closeTab) tabbar.hide() vbox.addWidget(tabbar) self._initTabMenuActions() tabbar.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) tabbar.customContextMenuRequested.connect(self._onTabMenuRequested) self._initTabSwitchActions() tabbar.tabMoved.connect(self._updateTabSwitchActions) self._stack = QStackedLayout() vbox.addLayout(self._stack, 1) self._curpath = '' # != currentRepoRootPath until _onCurrentTabChanged self._lastclickedindex = -1 self._lastclosedpaths = [] self._iconmapper = QSignalMapper(self) self._titlemapper = QSignalMapper(self) if QT_API == 'PyQt5': iconSignal = self._iconmapper.mapped[QObject] titleSignal = self._titlemapper.mapped[QObject] else: iconSignal = self._iconmapper.mappedObject[QObject] titleSignal = self._titlemapper.mappedObject[QObject] iconSignal.connect(self._updateIcon) titleSignal.connect(self._updateTitle) self._updateTabSwitchActions() QShortcut(QKeySequence.StandardKey.NextChild, self, self._next_tab) QShortcut(QKeySequence.StandardKey.PreviousChild, self, self._prev_tab) def openRepo(self, root, bundle=None): """Open the specified repository in new tab""" rw = self._createRepoWidget(root, bundle) if not rw: return False # do not emit currentChanged until tab properties are fully set up. # the first tab is automatically selected. tabbar = self._tabbar tabbar.blockSignals(True) index = tabbar.insertTab(self._newTabIndex(), rw.title()) tabbar.setTabData(index, rw) tabbar.setTabToolTip(index, rw.repoRootPath()) self.setCurrentIndex(index) tabbar.blockSignals(False) self._updateTabSwitchActions() self._updateTabVisibility() self._onCurrentTabChanged(index) return True def _addUnloadedRepos(self, rootpaths): """Add tabs of the specified repositories without loading them""" tabbar = self._tabbar tabbar.blockSignals(True) for index, root in enumerate(rootpaths, self._newTabIndex()): root = hglib.normreporoot(root) index = tabbar.insertTab(index, os.path.basename(root)) tabbar.setTabToolTip(index, root) tabbar.blockSignals(False) self._updateTabSwitchActions() self._updateTabVisibility() # must call _onCurrentTabChanged() appropriately def _newTabIndex(self): if self._config.configBool('tortoisehg', 'opentabsaftercurrent'): return self.currentIndex() + 1 else: return self.count() @pyqtSlot(str) def closeRepo(self, root): """Close tabs of the specified repository""" root = hglib.normreporoot(root) return self._closeTabs(list(self._findIndexesByRepoRootPath(root))) @pyqtSlot(int) def closeTab(self, index): if 0 <= index < self.count(): return self._closeTabs([index]) return False def closeAllTabs(self): return self._closeTabs(list(range(self.count()))) def _closeTabs(self, indexes): if not self._checkTabsClosable(indexes): return False self._lastclosedpaths = pycompat.maplist(self.repoRootPath, indexes) self._removeTabs(indexes) return True def _checkTabsClosable(self, indexes): for i in indexes: rw = self._widget(i) if rw and not rw.closeRepoWidget(): self.setCurrentIndex(i) return False return True def _removeTabs(self, indexes): # must call _checkRepoTabsClosable() before indexes = sorted(indexes, reverse=True) tabchange = indexes and indexes[-1] <= self.currentIndex() self._tabbar.blockSignals(True) for i in indexes: rw = self._widget(i) self._tabbar.removeTab(i) if rw: self._stack.removeWidget(rw) self._repomanager.releaseRepoAgent(rw.repoRootPath()) rw.deleteLater() self._tabbar.blockSignals(False) self._updateTabSwitchActions() self._updateTabVisibility() if tabchange: self._onCurrentTabChanged(self.currentIndex()) def selectRepo(self, root): """Find the tab for the specified repository and make it current""" root = hglib.normreporoot(root) if self.currentRepoRootPath() == root: return True for i in self._findIndexesByRepoRootPath(root): self.setCurrentIndex(i) return True return False def restoreRepos(self, rootpaths, activepath): """Restore tabs of the last open repositories""" if not rootpaths: return self._addUnloadedRepos(rootpaths) self._tabbar.blockSignals(True) self.selectRepo(activepath) self._tabbar.blockSignals(False) self._onCurrentTabChanged(self.currentIndex()) def _initTabMenuActions(self): actiondefs = [ ('closetab', _('Close tab'), _('Close tab'), self._closeLastClickedTab), ('closeothertabs', _('Close other tabs'), _('Close other tabs'), self._closeNotLastClickedTabs), ('reopenlastclosed', _('Undo close tab'), _('Reopen last closed tab'), self._reopenLastClosedTabs), ('reopenlastclosedgroup', _('Undo close other tabs'), _('Reopen last closed tab group'), self._reopenLastClosedTabs), ] self._actions = {} for name, desc, tip, cb in actiondefs: self._actions[name] = act = QAction(desc, self) act.setStatusTip(tip) act.triggered.connect(cb) self.addAction(act) @pyqtSlot(QPoint) def _onTabMenuRequested(self, point): index = self._tabbar.tabAt(point) if index >= 0: self._lastclickedindex = index else: self._lastclickedindex = self.currentIndex() menu = QMenu(self) menu.addAction(self._actions['closetab']) menu.addAction(self._actions['closeothertabs']) menu.addSeparator() if len(self._lastclosedpaths) > 1: menu.addAction(self._actions['reopenlastclosedgroup']) elif self._lastclosedpaths: menu.addAction(self._actions['reopenlastclosed']) menu.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose) menu.popup(self._tabbar.mapToGlobal(point)) @pyqtSlot() def _closeLastClickedTab(self): self.closeTab(self._lastclickedindex) @pyqtSlot() def _closeNotLastClickedTabs(self): if self._lastclickedindex >= 0: self._closeTabs([i for i in pycompat.xrange(self.count()) if i != self._lastclickedindex]) @pyqtSlot() def _reopenLastClosedTabs(self): origindex = self.currentIndex() self._addUnloadedRepos(self._lastclosedpaths) del self._lastclosedpaths[:] if origindex != self.currentIndex(): self._onCurrentTabChanged(self.currentIndex()) def tabSwitchActions(self): """List of actions to switch current tabs; should be registered to the main window or menu""" return self._swactions.actions() def _initTabSwitchActions(self): self._swactions = QActionGroup(self) self._swactions.triggered.connect(self._setCurrentTabByAction) for i in pycompat.xrange(9): a = self._swactions.addAction('') a.setCheckable(True) a.setData(i) a.setShortcut('Ctrl+%d' % (i + 1)) @pyqtSlot() def _updateTabSwitchActions(self): self._swactions.setVisible(self._tabbar.count() > 1) if not self._swactions.isVisible(): return for i, a in enumerate(self._swactions.actions()): a.setVisible(i < self.count()) if not a.isVisible(): continue a.setChecked(i == self.currentIndex()) a.setText(self._tabbar.tabText(i)) @pyqtSlot(QAction) def _setCurrentTabByAction(self, action): index = action.data() self.setCurrentIndex(index) @pyqtSlot() def _prev_tab(self): self._tabbar.setCurrentIndex(self._tabbar.currentIndex() - 1) @pyqtSlot() def _next_tab(self): self._tabbar.setCurrentIndex(self._tabbar.currentIndex() + 1) def currentRepoRootPath(self): return self.repoRootPath(self.currentIndex()) def repoRootPath(self, index): return self._tabbar.tabToolTip(index) def _findIndexesByRepoRootPath(self, root): for i in pycompat.xrange(self.count()): if self.repoRootPath(i) == root: yield i def count(self): """Number of tabs including repositories of not-yet opened""" return self._tabbar.count() def currentIndex(self): return self._tabbar.currentIndex() def currentWidget(self): return self._stack.currentWidget() @pyqtSlot(int) def setCurrentIndex(self, index): self._tabbar.setCurrentIndex(index) @pyqtSlot(int) def _onCurrentTabChanged(self, index): rw = self._widget(index) if not rw and index >= 0: tabbar = self._tabbar rw = self._createRepoWidget(self.repoRootPath(index)) if not rw: tabbar.removeTab(index) # may reenter self._updateTabSwitchActions() self._updateTabVisibility() return tabbar.setTabData(index, rw) tabbar.setTabText(index, rw.title()) # update path in case filesystem changed after tab was added tabbar.setTabToolTip(index, rw.repoRootPath()) if rw: self._stack.setCurrentWidget(rw) self._updateTabSwitchActions() prevpath = self._curpath self._curpath = self.repoRootPath(index) self.currentTabChanged.emit(index) # there may be more than one tabs of the same repo if self._curpath != prevpath: self._onCurrentRepoChanged(self._curpath, prevpath) def _onCurrentRepoChanged(self, curpath, prevpath): prevrepoagent = currepoagent = None if prevpath: prevrepoagent = self._repomanager.repoAgent(prevpath) # may be None if curpath: currepoagent = self._repomanager.repoAgent(curpath) if prevrepoagent: prevrepoagent.suspendMonitoring() if currepoagent: currepoagent.resumeMonitoring() self.currentRepoChanged.emit(curpath, prevpath) def _indexOf(self, rw): if self.currentWidget() is rw: return self.currentIndex() # fast path for i in pycompat.xrange(self.count()): if self._widget(i) is rw: return i return -1 def _widget(self, index): return self._tabbar.tabData(index) def _createRepoWidget(self, root, bundle=None): try: repoagent = self._repomanager.openRepoAgent(root) except (error.Abort, error.RepoError) as e: qtlib.WarningMsgBox(_('Failed to open repository'), hglib.tounicode(bytes(e)), parent=self) return rw = repowidget.RepoWidget(self._actionregistry, repoagent, self, bundle=bundle) rw.currentTaskTabChanged.connect(self.currentTaskTabChanged) rw.makeLogVisible.connect(self.makeLogVisible) rw.progress.connect(self._mapProgressReceived) rw.repoLinkClicked.connect(self._openLinkedRepo) rw.revisionSelected.connect(self.historyChanged) rw.showMessageSignal.connect(self.showMessageSignal) rw.taskTabVisibilityChanged.connect(self.taskTabVisibilityChanged) rw.toolbarVisibilityChanged.connect(self.toolbarVisibilityChanged) rw.busyIconChanged.connect(self._iconmapper.map) self._iconmapper.setMapping(rw, qtlib.sip.cast(rw, QObject)) rw.titleChanged.connect(self._titlemapper.map) self._titlemapper.setMapping(rw, qtlib.sip.cast(rw, QObject)) self._stack.addWidget(rw) return rw @pyqtSlot(str, object, str, str, object) def _mapProgressReceived(self, topic: str, pos, item: str, unit: str, total): rw = self.sender() assert isinstance(rw, repowidget.RepoWidget), repr(rw) progress = cmdcore.ProgressMessage(topic, pos, item, unit, total) self.progressReceived.emit(rw.repoRootPath(), progress) @pyqtSlot(str) def _openLinkedRepo(self, path: str): uri = path.split('?', 1) path = hglib.normreporoot(uri[0]) rev = None if len(uri) > 1: rev = hglib.fromunicode(uri[1]) if self.selectRepo(path) or self.openRepo(path): rw = self.currentWidget() if rev: rw.goto(rev) else: # assumes that the request comes from commit widget; in this # case, the user is going to commit changes to this repo. rw.switchToNamedTaskTab('commit') @pyqtSlot(QObject) # really QWidget def _updateIcon(self, rw): index = self._indexOf(rw) self._tabbar.setTabIcon(index, rw.busyIcon()) @pyqtSlot(QObject) # really QWidget def _updateTitle(self, rw): index = self._indexOf(rw) self._tabbar.setTabText(index, rw.title()) self._updateTabSwitchActions() if index == self.currentIndex(): self.currentTitleChanged.emit() def _updateTabVisibility(self): forcetab = self._config.configBool('tortoisehg', 'forcerepotab') self._tabbar.setVisible(self.count() > 1 or (self.count() == 1 and forcetab)) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/repotreeitem.py0000644000000000000000000005531214672254332020543 0ustar00rootroot# repotreeitem.py - treeitems for the reporegistry # # Copyright 2010 Adrian Buehlmann # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os import re from typing import ( Dict, Iterable, List, Optional, Type, TypeVar, Union, ) from .qtcore import ( Qt, ) from .qtgui import ( QApplication, QIcon, QMessageBox, QStyle, ) from mercurial import ( error, hg, localrepo, node, pycompat, util, ) from ..util import ( hglib, paths, ) from ..util.i18n import _ from . import ( hgrcutil, qtlib, ) _TAlienSubrepoItem = TypeVar('_TAlienSubrepoItem', bound='AlienSubrepoItem') _TRepoGroupItem = TypeVar('_TRepoGroupItem', bound='RepoGroupItem') _TRepoItem = TypeVar('_TRepoItem', bound='RepoItem') _TRepoTreeItem = TypeVar('_TRepoTreeItem', bound='RepoTreeItem') def _dumpChild(xw, parent: "RepoTreeItem") -> None: for c in parent.childs: c.dumpObject(xw) def undumpObject(xr) -> "RepoTreeItem": xmltagname = str(xr.name()) obj = _xmlUndumpMap[xmltagname](xr) assert obj.xmltagname == xmltagname, (obj.xmltagname, xmltagname) return obj def _undumpChild(xr, parent: "RepoTreeItem", undump=undumpObject) -> None: while not xr.atEnd(): xr.readNext() if xr.isStartElement(): try: item = undump(xr) parent.appendChild(item) except KeyError: pass # ignore unknown classes in xml elif xr.isEndElement(): break def flatten(root: "RepoTreeItem", stopfunc=None) -> Iterable["RepoTreeItem"]: """Iterate root and its child items recursively until stop condition""" yield root if stopfunc and stopfunc(root): return for c in root.childs: for e in flatten(c, stopfunc): yield e def find(root: "RepoTreeItem", targetfunc, stopfunc=None) -> "RepoTreeItem": """Search recursively for item of which targetfunc evaluates to True""" for e in flatten(root, stopfunc): if targetfunc(e): return e raise ValueError('not found') # '/' for path separator, '#n' for index of duplicated names _quotenamere = re.compile(r'[%/#]') def _quotename(s: str) -> str: r"""Replace special characters to %xx (minimal set of urllib.quote) >>> _quotename('foo/bar%baz#qux') 'foo%2Fbar%25baz%23qux' >>> _quotename(u'\xa1') u'\xa1' """ return _quotenamere.sub(lambda m: '%%%02X' % ord(m.group(0)), s) def _buildquotenamemap( items: Iterable["RepoTreeItem"] ) -> Dict[str, List["RepoTreeItem"]]: namemap = {} for e in items: q = _quotename(e.shortname()) if q not in namemap: namemap[q] = [e] else: namemap[q].append(e) return namemap def itempath(item: "RepoTreeItem") -> str: """Virtual path to the given item""" rnames = [] while item.parent(): namemap = _buildquotenamemap(item.parent().childs) q = _quotename(item.shortname()) i = namemap[q].index(item) if i == 0: rnames.append(q) else: rnames.append('%s#%d' % (q, i)) item = item.parent() return '/'.join(reversed(rnames)) def findbyitempath(root: "RepoTreeItem", path: str) -> "RepoTreeItem": """Return the item for the given virtual path >>> root = RepoTreeItem() >>> foo = RepoGroupItem('foo') >>> root.appendChild(foo) >>> bar = RepoGroupItem('bar') >>> root.appendChild(bar) >>> bar.appendChild(RepoItem('/tmp/baz', 'baz')) >>> root.appendChild(RepoGroupItem('foo')) >>> root.appendChild(RepoGroupItem('qux/quux')) >>> def f(path): ... return itempath(findbyitempath(root, path)) >>> f('') '' >>> f('foo') 'foo' >>> f('bar/baz') 'bar/baz' >>> f('qux%2Fquux') 'qux%2Fquux' >>> f('bar/baz/unknown') Traceback (most recent call last): ... ValueError: not found >>> f('foo#1') 'foo#1' >>> f('foo#2') Traceback (most recent call last): ... ValueError: not found >>> f('foo#bar') Traceback (most recent call last): ... ValueError: invalid path """ if not path: return root item = root for q in path.split('/'): h = q.rfind('#') if h >= 0: try: i = int(q[h + 1:]) except ValueError: raise ValueError('invalid path') q = q[:h] else: i = 0 namemap = _buildquotenamemap(item.childs) try: item = namemap[q][i] except LookupError: raise ValueError('not found') return item class RepoTreeItem(object): xmltagname = 'treeitem' def __init__(self, parent: Optional["RepoTreeItem"] = None) -> None: self._parent: Optional["RepoTreeItem"] = parent self.childs: List["RepoTreeItem"] = [] self._row = 0 def appendChild(self, child: "RepoTreeItem") -> None: child._row = len(self.childs) child._parent = self self.childs.append(child) def insertChild(self, row: int, child: "RepoTreeItem") -> None: child._row = row child._parent = self self.childs.insert(row, child) def child(self, row: int) -> "RepoTreeItem": return self.childs[row] def childCount(self) -> int: return len(self.childs) def childRoots(self) -> List[str]: roots = [] if isinstance(self, RepoItem): roots.append(self.rootpath()) for child in self.childs: roots.extend(child.childRoots()) return roots def columnCount(self) -> int: return 2 def data(self, column: int, role: Qt.ItemDataRole): return None def setData(self, column: int, value) -> bool: return False def row(self) -> int: return self._row def parent(self) -> Optional["RepoTreeItem"]: return self._parent def menulist(self): return [] def flags(self): return Qt.ItemFlag.NoItemFlags def removeRows(self, row: int, count: int) -> bool: cs = self.childs remove = cs[row : row + count] keep = cs[:row] + cs[row + count:] self.childs = keep for c in remove: c._row = 0 c._parent = None for i, c in enumerate(keep): c._row = i return True def dump(self, xw) -> None: _dumpChild(xw, parent=self) @classmethod def undump(cls: Type[_TRepoTreeItem], xr) -> _TRepoTreeItem: obj = cls() _undumpChild(xr, parent=obj) return obj def dumpObject(self, xw) -> None: xw.writeStartElement(self.xmltagname) self.dump(xw) xw.writeEndElement() def isRepo(self) -> bool: return False def details(self) -> str: return '' def okToDelete(self) -> bool: return True def getSupportedDragDropActions(self): return Qt.DropAction.MoveAction def shortname(self) -> str: return '' def rootpath(self) -> str: return '' def getCommonPath(self) -> str: return '' class RepoItem(RepoTreeItem): xmltagname = 'repo' def __init__( self, root: str, shortname: Optional[str] = None, basenode: Optional[bytes] = None, sharedpath: Optional[str] = None, parent: Optional[RepoTreeItem] = None ) -> None: RepoTreeItem.__init__(self, parent) self._root = root self._shortname: str = shortname if shortname is not None else '' self._basenode: bytes = basenode if basenode is not None else node.nullid # expensive check is done at appendSubrepos() self._sharedpath: str = sharedpath if sharedpath is not None else '' self._valid = True def isRepo(self) -> bool: return True def rootpath(self) -> str: return self._root def shortname(self) -> str: if self._shortname: return self._shortname else: return os.path.basename(self._root) def repotype(self) -> str: return 'hg' def basenode(self) -> bytes: """Return node id of revision 0""" return self._basenode def setBaseNode(self, basenode: bytes) -> None: self._basenode = basenode def setShortName(self, uname: str) -> None: uname = pycompat.unicode(uname) if uname != self._shortname: self._shortname = uname def data(self, column: int, role: Qt.ItemDataRole): if role == Qt.ItemDataRole.DecorationRole and column == 0: baseiconname = 'hg' if paths.is_unc_path(hglib.fromunicode(self.rootpath())): baseiconname = 'thg-remote-repo' ico = qtlib.geticon(baseiconname) if not self._valid: ico = qtlib.getoverlaidicon(ico, qtlib.geticon('dialog-warning')) elif self._sharedpath: ico = qtlib.getoverlaidicon(ico, qtlib.geticon('hg-sharedrepo')) return ico elif role in (Qt.ItemDataRole.DisplayRole, Qt.ItemDataRole.EditRole): return [self.shortname, self.shortpath][column]() def getCommonPath(self) -> str: return self.parent().getCommonPath() def shortpath(self) -> str: try: cpath = self.getCommonPath() except: cpath = '' spath2 = spath = os.path.normpath(self._root) if os.name == 'nt': spath2 = spath2.lower() if cpath and spath2.startswith(cpath): iShortPathStart = len(cpath) spath = spath[iShortPathStart:] if spath and spath[0] in '/\\': # do not show a slash at the beginning of the short path spath = spath[1:] return spath def menulist(self): acts = ['open', 'clone', 'addsubrepo', None, 'explore', 'terminal', 'copypath', None, 'rename', 'remove'] if self.childCount() > 0: acts.extend([None, 'openAll', (_('&Sort'), ['sortbyname', 'sortbyhgsub'])]) acts.extend([None, 'settings']) return acts def flags(self): return (Qt.ItemFlag.ItemIsEnabled | Qt.ItemFlag.ItemIsSelectable | Qt.ItemFlag.ItemIsDragEnabled | Qt.ItemFlag.ItemIsEditable) def dump(self, xw) -> None: xw.writeAttribute('root', self._root) xw.writeAttribute('shortname', self.shortname()) xw.writeAttribute('basenode', pycompat.sysstr(node.hex(self.basenode()))) if self._sharedpath: xw.writeAttribute('sharedpath', self._sharedpath) _dumpChild(xw, parent=self) @classmethod def undump(cls: Type[_TRepoItem], xr) -> _TRepoItem: a = xr.attributes() obj = cls(pycompat.unicode(a.value('', 'root')), pycompat.unicode(a.value('', 'shortname')), node.bin(pycompat.sysbytes(a.value('', 'basenode'))), pycompat.unicode(a.value('', 'sharedpath'))) _undumpChild(xr, parent=obj, undump=_undumpSubrepoItem) return obj def details(self) -> str: return _('Local Repository %s') % self._root def appendSubrepos( self, repo: Optional[localrepo.localrepository] = None, ) -> List[bytes]: self._sharedpath = '' invalidRepoList: List[bytes] = [] sri = None abssubpath = None try: if repo is None: if not os.path.exists(self._root): self._valid = False return [hglib.fromunicode(self._root)] elif (not os.path.exists(os.path.join(self._root, '.hgsub')) and not os.path.exists( os.path.join(self._root, '.hg', 'sharedpath'))): return [] # skip repo creation, which is expensive repo = hg.repository(hglib.loadui(), hglib.fromunicode(self._root)) if repo.sharedpath != repo.path: self._sharedpath = hglib.tounicode(repo.sharedpath) wctx = repo[b'.'] sortkey = lambda x: os.path.basename(util.normpath(repo.wjoin(x))) for subpath in sorted(wctx.substate, key=sortkey): sri = None abssubpath = repo.wjoin(subpath) subtype = pycompat.sysstr(wctx.substate[subpath][2]) sriIsValid = os.path.isdir(abssubpath) sri = _newSubrepoItem(hglib.tounicode(abssubpath), repotype=subtype) sri._valid = sriIsValid self.appendChild(sri) if not sriIsValid: self._valid = False sri._valid = False invalidRepoList.append(repo.wjoin(subpath)) return invalidRepoList if subtype == 'hg': # Only recurse into mercurial subrepos sctx = wctx.sub(subpath) invalidSubrepoList = sri.appendSubrepos(sctx._repo) if invalidSubrepoList: self._valid = False invalidRepoList += invalidSubrepoList except (EnvironmentError, error.RepoError, error.Abort) as e: # Add the repo to the list of repos/subrepos # that could not be open self._valid = False if sri: sri._valid = False invalidRepoList.append(abssubpath) invalidRepoList.append(hglib.fromunicode(self._root)) except Exception as e: # If any other sort of exception happens, show the corresponding # error message, but do not crash! # Note that we _also_ will mark the offending repos as invalid self._valid = False if sri: sri._valid = False invalidRepoList.append(abssubpath) invalidRepoList.append(hglib.fromunicode(self._root)) # Show a warning message indicating that there was an error if repo: rootpath = hglib.tounicode(repo.root) else: rootpath = self._root warningMessage = (_('An exception happened while loading the ' 'subrepos of:

                                                                                                            "%s"

                                                                                                            ') + _('The exception error message was:

                                                                                                            %s

                                                                                                            ') + _('Click OK to continue or Abort to exit.')) \ % (rootpath, hglib.exception_str(e)) res = qtlib.WarningMsgBox(_('Error loading subrepos'), warningMessage, buttons = QMessageBox.StandardButton.Ok | QMessageBox.StandardButton.Abort) # Let the user abort so that he gets the full exception info if res == QMessageBox.StandardButton.Abort: raise return invalidRepoList def setData(self, column: int, value) -> bool: if column == 0: shortname = hglib.fromunicode(value) abshgrcpath = os.path.join(hglib.fromunicode(self.rootpath()), b'.hg', b'hgrc') if not hgrcutil.setConfigValue(abshgrcpath, b'web.name', shortname): qtlib.WarningMsgBox(_('Unable to update repository name'), _('An error occurred while updating the repository hgrc ' 'file (%s)') % hglib.tounicode(abshgrcpath)) return False self.setShortName(value) return True return False _subrepoType2IcoMap = { 'hg': 'hg', 'git': 'thg-git-subrepo', 'svn': 'thg-svn-subrepo', } def _newSubrepoIcon(repotype: str, valid: bool = True) -> QIcon: subiconame = _subrepoType2IcoMap.get(repotype) if subiconame is None: ico = qtlib.geticon('thg-subrepo') else: ico = qtlib.geticon(subiconame) ico = qtlib.getoverlaidicon(ico, qtlib.geticon('thg-subrepo')) if not valid: ico = qtlib.getoverlaidicon(ico, qtlib.geticon('dialog-warning')) return ico class StandaloneSubrepoItem(RepoItem): """Mercurial repository just decorated as subrepo""" xmltagname = 'subrepo' def data(self, column: int, role: Qt.ItemDataRole): if role == Qt.ItemDataRole.DecorationRole and column == 0: return _newSubrepoIcon('hg', valid=self._valid) else: return super(StandaloneSubrepoItem, self).data(column, role) class SubrepoItem(RepoItem): """Actual Mercurial subrepo""" xmltagname = 'subrepo' def data(self, column: int, role: Qt.ItemDataRole): if role == Qt.ItemDataRole.DecorationRole and column == 0: return _newSubrepoIcon('hg', valid=self._valid) else: return super(SubrepoItem, self).data(column, role) def menulist(self): acts = ['open', 'clone', None, 'addsubrepo', 'removesubrepo', None, 'explore', 'terminal', 'copypath'] if self.childCount() > 0: acts.extend([None, 'openAll', (_('&Sort'), ['sortbyname', 'sortbyhgsub'])]) acts.extend([None, 'settings']) return acts def getSupportedDragDropActions(self): return Qt.DropAction.CopyAction def flags(self): return Qt.ItemFlag.ItemIsEnabled | Qt.ItemFlag.ItemIsSelectable | Qt.ItemFlag.ItemIsDragEnabled # possibly this should not be a RepoItem because it lacks common functions class AlienSubrepoItem(RepoItem): """Actual non-Mercurial subrepo""" xmltagname = 'subrepo' def __init__( self, root: str, repotype: str, parent: Optional[RepoTreeItem] = None ) -> None: RepoItem.__init__(self, root, parent=parent) self._repotype = repotype def data(self, column: int, role: Qt.ItemDataRole): if role == Qt.ItemDataRole.DecorationRole and column == 0: return _newSubrepoIcon(self._repotype) else: return super(AlienSubrepoItem, self).data(column, role) def menulist(self): return ['explore', 'terminal', 'copypath'] def flags(self): return Qt.ItemFlag.ItemIsEnabled | Qt.ItemFlag.ItemIsSelectable def repotype(self) -> str: return self._repotype def dump(self, xw) -> None: xw.writeAttribute('root', self._root) xw.writeAttribute('repotype', self._repotype) @classmethod def undump(cls: Type[_TAlienSubrepoItem], xr) -> _TAlienSubrepoItem: a = xr.attributes() obj = cls(pycompat.unicode(a.value('', 'root')), str(a.value('', 'repotype'))) xr.skipCurrentElement() # no child return obj def appendSubrepos( self, repo: Optional[localrepo.localrepository] = None, ) -> List[bytes]: raise Exception('unsupported by non-hg subrepo') def _newSubrepoItem( root: str, repotype: str ) -> Union[AlienSubrepoItem, SubrepoItem]: if repotype == 'hg': return SubrepoItem(root) else: return AlienSubrepoItem(root, repotype=repotype) def _undumpSubrepoItem(xr) -> RepoItem: a = xr.attributes() repotype = str(a.value('', 'repotype')) or 'hg' if repotype == 'hg': return SubrepoItem.undump(xr) else: return AlienSubrepoItem.undump(xr) class RepoGroupItem(RepoTreeItem): xmltagname = 'group' def __init__( self, name: str, parent: Optional[RepoTreeItem] = None ) -> None: RepoTreeItem.__init__(self, parent) self.name = name self._commonpath = '' def data(self, column: int, role: Qt.ItemDataRole): if role == Qt.ItemDataRole.DecorationRole: if column == 0: s = QApplication.style() ico = s.standardIcon(QStyle.StandardPixmap.SP_DirIcon) return ico return None if column == 0: return self.name elif column == 1: return self.getCommonPath() return None def setData(self, column: int, value) -> bool: if column == 0: self.name = pycompat.unicode(value) return True return False def rootpath(self) -> str: # for sortbypath() return '' # may be okay to return _commonpath instead? def shortname(self) -> str: # for sortbyname() return self.name def menulist(self): return ['openAll', 'add', None, 'newGroup', None, 'rename', 'remove', None, (_('&Sort'), ['sortbyname', 'sortbypath']), None, 'reloadRegistry'] def flags(self): return (Qt.ItemFlag.ItemIsEnabled | Qt.ItemFlag.ItemIsSelectable | Qt.ItemFlag.ItemIsDropEnabled | Qt.ItemFlag.ItemIsDragEnabled | Qt.ItemFlag.ItemIsEditable) def dump(self, xw) -> None: xw.writeAttribute('name', self.name) _dumpChild(xw, parent=self) @classmethod def undump(cls: Type[_TRepoGroupItem], xr) -> _TRepoGroupItem: a = xr.attributes() obj = cls(pycompat.unicode(a.value('', 'name'))) _undumpChild(xr, parent=obj) return obj def okToDelete(self) -> bool: return False def updateCommonPath(self, cpath: Optional[str] = None) -> None: """ Update or set the group 'common path' When called with no arguments, the group common path is calculated by looking for the common path of all the repos on a repo group When called with an argument, the group common path is set to the input argument. This is commonly used to set the group common path to an empty string, thus disabling the "show short paths" functionality. """ if cpath is not None: self._commonpath = cpath elif len(self.childs) == 0: # If a group has no repo items, the common path is empty self._commonpath = '' else: childs = [os.path.normcase(child.rootpath()) for child in self.childs if not isinstance(child, RepoGroupItem)] self._commonpath = os.path.dirname(os.path.commonprefix(childs)) def getCommonPath(self) -> str: return self._commonpath class AllRepoGroupItem(RepoGroupItem): xmltagname = 'allgroup' def __init__( self, name: Optional[str]=None, parent: Optional[RepoTreeItem] = None ) -> None: RepoGroupItem.__init__(self, name or _('default'), parent=parent) def menulist(self): return ['openAll', 'add', None, 'newGroup', None, 'rename', None, (_('&Sort'), ['sortbyname', 'sortbypath']), None, 'reloadRegistry'] _xmlUndumpMap = { 'allgroup': AllRepoGroupItem.undump, 'group': RepoGroupItem.undump, 'repo': RepoItem.undump, 'subrepo': StandaloneSubrepoItem.undump, 'treeitem': RepoTreeItem.undump, } ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/repotreemodel.py0000644000000000000000000003544114672254332020706 0ustar00rootroot# repotreemodel.py - model for the reporegistry # # Copyright 2010 Adrian Buehlmann # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os from typing import ( List, Optional, ) from .qtcore import ( QAbstractItemModel, QByteArray, QFile, QIODevice, QMimeData, QModelIndex, QUrl, QXmlStreamReader, QXmlStreamWriter, Qt, pyqtSlot, ) from .qtgui import ( QFont, ) from mercurial import ( pycompat, ) from ..util import hglib from ..util.i18n import _ from . import repotreeitem extractXmlElementName = 'reporegextract' reporegistryXmlElementName = 'reporegistry' repoRegMimeType = 'application/thg-reporegistry' repoExternalMimeType = 'text/uri-list' def writeXml(target, item, rootElementName): xw = QXmlStreamWriter(target) xw.setAutoFormatting(True) xw.setAutoFormattingIndent(2) xw.writeStartDocument() xw.writeStartElement(rootElementName) item.dumpObject(xw) xw.writeEndElement() xw.writeEndDocument() def readXml(source, rootElementName): itemread = None xr = QXmlStreamReader(source) if xr.readNextStartElement(): ele = xr.name() if ele != rootElementName: print("unexpected xml element '%s' " "(was looking for %s)" % (ele, rootElementName)) return if xr.hasError(): print(xr.errorString()) if xr.readNextStartElement(): itemread = repotreeitem.undumpObject(xr) xr.skipCurrentElement() if xr.hasError(): print(xr.errorString()) return itemread def iterRepoItemFromXml(source): 'Used by thgrepo.relatedRepositories to scan the XML file' xr = QXmlStreamReader(source) while not xr.atEnd(): t = xr.readNext() if (t == QXmlStreamReader.TokenType.StartElement and xr.name() in ('repo', 'subrepo')): rti = repotreeitem.undumpObject(xr) assert isinstance(rti, repotreeitem.RepoItem) yield rti def getRepoItemList(root, standalone=False): if standalone: stopfunc = lambda e: isinstance(e, repotreeitem.RepoItem) else: stopfunc = None return [e for e in repotreeitem.flatten(root, stopfunc=stopfunc) if isinstance(e, repotreeitem.RepoItem)] class RepoTreeModel(QAbstractItemModel): def __init__(self, f, repomanager, parent=None, showShortPaths=False): QAbstractItemModel.__init__(self, parent) self._repomanager = repomanager self._repomanager.configChanged.connect(self._updateShortName) self._repomanager.repositoryChanged.connect(self._updateBaseNode) self._repomanager.repositoryOpened.connect(self._updateItem) self.showShortPaths = showShortPaths self._activeRepoItem = None root = None if f: if f.open(QIODevice.OpenModeFlag.ReadOnly): root = readXml(f, reporegistryXmlElementName) f.close() if not root: root = repotreeitem.RepoTreeItem() # due to issue #1075, 'all' may be missing even if 'root' exists try: all = repotreeitem.find( root, lambda e: isinstance(e, repotreeitem.AllRepoGroupItem)) except ValueError: all = repotreeitem.AllRepoGroupItem() root.appendChild(all) self.rootItem = root self.allrepos = all self.updateCommonPaths() # see https://doc.qt.io/qt-4.8/model-view-programming.html#model-subclassing-reference # overrides from QAbstractItemModel def index(self, row, column, parent=QModelIndex()): if not self.hasIndex(row, column, parent): return QModelIndex() if not parent.isValid(): parentItem = self.rootItem else: parentItem = parent.internalPointer() childItem = parentItem.child(row) if childItem: return self.createIndex(row, column, childItem) else: return QModelIndex() def parent(self, index): if not index.isValid(): return QModelIndex() childItem = index.internalPointer() parentItem = childItem.parent() if parentItem is self.rootItem: return QModelIndex() return self.createIndex(parentItem.row(), 0, parentItem) def rowCount(self, parent=QModelIndex()): if parent.column() > 0: return 0 if not parent.isValid(): parentItem = self.rootItem else: parentItem = parent.internalPointer() return parentItem.childCount() def columnCount(self, parent=QModelIndex()): if parent.isValid(): return parent.internalPointer().columnCount() else: return self.rootItem.columnCount() def data(self, index, role=Qt.ItemDataRole.DisplayRole): if not index.isValid(): return None if role not in (Qt.ItemDataRole.DisplayRole, Qt.ItemDataRole.EditRole, Qt.ItemDataRole.DecorationRole, Qt.ItemDataRole.FontRole): return None item = index.internalPointer() if role == Qt.ItemDataRole.FontRole and item is self._activeRepoItem: font = QFont() font.setBold(True) return font else: return item.data(index.column(), role) def headerData(self, section, orientation, role=Qt.ItemDataRole.DisplayRole): if role == Qt.ItemDataRole.DisplayRole: if orientation == Qt.Orientation.Horizontal: if section == 1: return _('Path') return None def flags(self, index): if not index.isValid(): return Qt.ItemFlag.NoItemFlags item = index.internalPointer() return item.flags() def supportedDropActions(self): return Qt.DropAction.CopyAction | Qt.DropAction.MoveAction | Qt.DropAction.LinkAction def removeRows(self, row, count, parent=QModelIndex()): item = parent.internalPointer() if item is None: item = self.rootItem if count <= 0 or row < 0 or row + count > item.childCount(): return False self.beginRemoveRows(parent, row, row+count-1) if self._activeRepoItem in item.childs[row:row + count]: self._activeRepoItem = None res = item.removeRows(row, count) self.endRemoveRows() return res def mimeTypes(self): return [repoRegMimeType, repoExternalMimeType] def mimeData(self, indexes): i = indexes[0] item = i.internalPointer() buf = QByteArray() writeXml(buf, item, extractXmlElementName) d = QMimeData() d.setData(repoRegMimeType, buf) if isinstance(item, repotreeitem.RepoItem): d.setUrls([QUrl.fromLocalFile(item.rootpath())]) else: d.setText(item.name) return d def dropMimeData(self, data, action, row, column, parent): group = parent.internalPointer() d = bytes(data.data(repoRegMimeType)) if not data.hasUrls(): # The source is a group if row < 0: # The group has been dropped on a group # In that case, place the group at the same level as the target # group row = parent.row() parent = parent.parent() group = parent.internalPointer() if row < 0 or not isinstance(group, repotreeitem.RepoGroupItem): # The group was dropped at the top level group = self.rootItem parent = QModelIndex() itemread = readXml(d, extractXmlElementName) if itemread is None: return False if group is None: return False # Avoid copying subrepos multiple times if Qt.DropAction.CopyAction == action and self.getRepoItem(itemread.rootpath()): return False if row < 0: row = 0 self.beginInsertRows(parent, row, row) group.insertChild(row, itemread) self.endInsertRows() if isinstance(itemread, repotreeitem.AllRepoGroupItem): self.allrepos = itemread return True def setData(self, index, value, role=Qt.ItemDataRole.EditRole): if not index.isValid() or role != Qt.ItemDataRole.EditRole: return False if not value: return False item = index.internalPointer() if item.setData(index.column(), value): self.dataChanged.emit(index, index) return True return False # functions not defined in QAbstractItemModel def addRepo(self, uroot, row=-1, parent=QModelIndex()): if not parent.isValid(): parent = self._indexFromItem(self.allrepos) rgi = parent.internalPointer() if row < 0: row = rgi.childCount() # make sure all paths are properly normalized uroot = os.path.normpath(uroot) # Check whether the repo that we are adding is a subrepo knownitem = self.getRepoItem(uroot, lookForSubrepos=True) itemIsSubrepo = isinstance(knownitem, (repotreeitem.StandaloneSubrepoItem, repotreeitem.SubrepoItem)) self.beginInsertRows(parent, row, row) if itemIsSubrepo: ri = repotreeitem.StandaloneSubrepoItem(uroot) else: ri = repotreeitem.RepoItem(uroot) rgi.insertChild(row, ri) self.endInsertRows() return self._indexFromItem(ri) # TODO: merge getRepoItem() to indexFromRepoRoot() def getRepoItem(self, reporoot, lookForSubrepos=False): reporoot = os.path.normcase(reporoot) items = getRepoItemList(self.rootItem, standalone=not lookForSubrepos) for e in items: if os.path.normcase(e.rootpath()) == reporoot: return e def indexFromRepoRoot(self, uroot, column=0, standalone=False): item = self.getRepoItem(uroot, lookForSubrepos=not standalone) return self._indexFromItem(item, column) def isKnownRepoRoot(self, uroot, standalone=False): return self.indexFromRepoRoot(uroot, standalone=standalone).isValid() def indexesOfRepoItems(self, column=0, standalone=False): return [self._indexFromItem(e, column) for e in getRepoItemList(self.rootItem, standalone)] def _indexFromItem(self, item, column=0): if item and item is not self.rootItem: return self.createIndex(item.row(), column, item) else: return QModelIndex() def repoRoot(self, index: QModelIndex) -> Optional[str]: item = index.internalPointer() if not isinstance(item, repotreeitem.RepoItem): return return item.rootpath() def addGroup(self, name): ri = self.rootItem cc = ri.childCount() self.beginInsertRows(QModelIndex(), cc, cc + 1) ri.appendChild(repotreeitem.RepoGroupItem(name, ri)) self.endInsertRows() def itemPath(self, index): """Virtual path of the item at the given index""" if index.isValid(): item = index.internalPointer() else: item = self.rootItem return repotreeitem.itempath(item) def indexFromItemPath(self, path: str, column=0): """Model index for the item specified by the given virtual path""" try: item = repotreeitem.findbyitempath(self.rootItem, path) except ValueError: return QModelIndex() return self._indexFromItem(item, column) def write(self, fn): f = QFile(fn) f.open(QIODevice.OpenModeFlag.WriteOnly) writeXml(f, self.rootItem, reporegistryXmlElementName) f.close() def _emitItemDataChanged(self, item): self.dataChanged.emit(self._indexFromItem(item, 0), self._indexFromItem(item, self.columnCount() - 1)) def setActiveRepo(self, index): """Highlight the specified item as active""" newitem = index.internalPointer() if newitem is self._activeRepoItem: return previtem = self._activeRepoItem self._activeRepoItem = newitem for it in [previtem, newitem]: if it: self._emitItemDataChanged(it) def activeRepoIndex(self, column=0): return self._indexFromItem(self._activeRepoItem, column) # TODO: rename loadSubrepos() and appendSubrepos() to scanRepo() ? def loadSubrepos(self, index: QModelIndex) -> List[str]: """Scan subrepos of the repo; returns list of invalid paths""" item = index.internalPointer() if (not isinstance(item, repotreeitem.RepoItem) or isinstance(item, repotreeitem.AlienSubrepoItem)): return [] self.removeRows(0, item.childCount(), index) # XXX dirty hack to know childCount _before_ insertion; should be # fixed later when you refactor appendSubrepos(). tmpitem = item.__class__(item.rootpath()) invalidpaths = tmpitem.appendSubrepos() if tmpitem.childCount() > 0: self.beginInsertRows(index, 0, tmpitem.childCount() - 1) for e in tmpitem.childs: item.appendChild(e) self.endInsertRows() if (item._sharedpath != tmpitem._sharedpath or item._valid != tmpitem._valid): item._sharedpath = tmpitem._sharedpath item._valid = tmpitem._valid self._emitItemDataChanged(item) return hglib.to_unicode_list(invalidpaths) def updateCommonPaths(self, showShortPaths=None): if showShortPaths is not None: self.showShortPaths = showShortPaths for grp in self.rootItem.childs: if isinstance(grp, repotreeitem.RepoGroupItem): if self.showShortPaths: grp.updateCommonPath() else: grp.updateCommonPath('') @pyqtSlot(str) def _updateShortName(self, uroot: str): repoagent = self._repomanager.repoAgent(uroot) it = self.getRepoItem(uroot) if it: it.setShortName(repoagent.shortName()) self._emitItemDataChanged(it) @pyqtSlot(str) def _updateBaseNode(self, uroot: str): repo = self._repomanager.repoAgent(uroot).rawRepo() it = self.getRepoItem(uroot) if it: it.setBaseNode(hglib.repoidnode(repo)) @pyqtSlot(str) def _updateItem(self, uroot): self._updateShortName(uroot) self._updateBaseNode(uroot) def sortchilds(self, childs, keyfunc): self.layoutAboutToBeChanged.emit() childs.sort(key=keyfunc) self.layoutChanged.emit() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/repoview.py0000644000000000000000000007721314672254332017703 0ustar00rootroot# Copyright (c) 2009-2010 LOGILAB S.A. (Paris, FRANCE). # http://www.logilab.fr/ -- mailto:contact@logilab.fr # Copyright 2010 Steve Borho # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along with # this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. from __future__ import annotations from math import sin, cos, pi from .qtcore import ( QItemSelectionModel, QPoint, QPointF, QRectF, QSettings, QSize, Qt, pyqtSignal, pyqtSlot, ) from .qtgui import ( QAbstractItemView, QAction, QApplication, QBrush, QClipboard, QColor, QDialog, QDialogButtonBox, QFont, QFontMetrics, QFormLayout, QHeaderView, QLabel, QListView, QListWidget, QListWidgetItem, QMenu, QMouseEvent, QPainter, QPainterPath, QPen, QPolygonF, QProxyStyle, QSpinBox, QStyle, QStyleOptionViewItem, QStyledItemDelegate, QTableView, ) from mercurial import ( error, pycompat, ) from ..util import hglib from ..util.i18n import _ from . import ( graph, qtlib, repomodel, ) class HgRepoView(QTableView): revisionSelected = pyqtSignal(object) revisionActivated = pyqtSignal(object) menuRequested = pyqtSignal(QPoint, object) showMessage = pyqtSignal(str) columnsVisibilityChanged = pyqtSignal() def __init__(self, repoagent, cfgname, colselect, parent=None): QTableView.__init__(self, parent) self._repoagent = repoagent self.current_rev = -1 self.cfgname = cfgname self.colselect = colselect self.setShowGrid(False) self.setWordWrap(False) vh = self.verticalHeader() vh.hide() vh.setMinimumSectionSize(0) # we'll set fixed size later vh.setSectionResizeMode(QHeaderView.ResizeMode.Fixed) header = self.horizontalHeader() header.setSectionsClickable(False) header.setSectionsMovable(True) header.setDefaultAlignment(Qt.AlignmentFlag.AlignLeft) header.setHighlightSections(False) header.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) header.customContextMenuRequested.connect(self.headerMenuRequest) header.sectionMoved.connect(self.columnsVisibilityChanged) header.sectionMoved.connect(self._saveColumnSettings) self.createActions() self.setItemDelegateForColumn(repomodel.GraphColumn, GraphDelegate(self)) self.setItemDelegateForColumn(repomodel.DescColumn, LabeledDelegate(self)) self.setItemDelegateForColumn(repomodel.ChangesColumn, LabeledDelegate(self, margin=0)) self.setAcceptDrops(True) self.setDefaultDropAction(Qt.DropAction.MoveAction) self.setDragEnabled(True) self.setDropIndicatorShown(True) self.setDragDropMode(QAbstractItemView.DragDropMode.InternalMove) # do not pass self.style() to HgRepoViewStyle() because it would steal # the ownership from QApplication and cause SEGV after the deletion of # this widget. self.setStyle(HgRepoViewStyle()) self._paletteswitcher = qtlib.PaletteSwitcher(self) self.setSelectionMode(QAbstractItemView.SelectionMode.ExtendedSelection) self.setSelectionBehavior(QAbstractItemView.SelectionBehavior.SelectRows) self.doubleClicked.connect(self.revActivated) if repoagent.configBool('tortoisehg', 'copy_hash_selection'): self.clicked.connect(self._copyHashToSelection) @property def repo(self): return self._repoagent.rawRepo() def mousePressEvent(self, event: QMouseEvent) -> None: index = self.indexAt(event.pos()) if not index.isValid(): return if event.button() == Qt.MouseButton.MiddleButton: self.gotoAncestor(index) return QTableView.mousePressEvent(self, event) def contextMenuEvent(self, event): self.menuRequested.emit(event.globalPos(), self.selectedRevisions()) def createActions(self): menu = QMenu(self) act = QAction(_('C&hoose Log Columns...'), self) act.triggered.connect(self.setHistoryColumns) menu.addAction(act) act = QAction(_('&Resize Columns'), self) act.triggered.connect(self._resizeIgnoreSettings) menu.addAction(act) self.headermenu = menu @pyqtSlot(QPoint) def headerMenuRequest(self, point): self.headermenu.exec(self.horizontalHeader().mapToGlobal(point)) def setHistoryColumns(self): dlg = ColumnSelectDialog(self.colselect[1], self.model(), self.visibleColumns()) dlg.setRowHeight(self.defaultRowHeight()) if dlg.exec() == QDialog.DialogCode.Accepted: self.setVisibleColumns(dlg.selectedColumns()) self.resizeColumns() self.setDefaultRowHeight(dlg.rowHeight()) self._saveColumnSettings() # for new repository tab def _loadColumnSettings(self): model = self.model() assert model is not None s = QSettings() s.beginGroup(self.colselect[0]) cols = qtlib.readStringList(s, 'columns') cols = [str(col) for col in cols] # Fixup older names for columns if 'Log' in cols: cols[cols.index('Log')] = 'Description' s.setValue('columns', cols) if 'ID' in cols: cols[cols.index('ID')] = 'Rev' s.setValue('columns', cols) s.endGroup() allcolumns = model.allColumns() validcols = [col for col in cols if col in allcolumns] if not validcols: validcols = model._defaultcolumns self.setVisibleColumns(validcols) @pyqtSlot() def _saveColumnSettings(self): s = QSettings() s.beginGroup(self.colselect[0]) s.setValue('columns', self.visibleColumns()) s.endGroup() def visibleColumns(self): model = self.model() hh = self.horizontalHeader() assert model is not None return [model.allColumns()[hh.logicalIndex(visualindex)] for visualindex in pycompat.xrange(hh.count() - hh.hiddenSectionCount())] def setVisibleColumns(self, visiblecols): model = self.model() if not model or visiblecols == self.visibleColumns(): return hh = self.horizontalHeader() hh.sectionMoved.disconnect(self.columnsVisibilityChanged) allcolumns = model.allColumns() for logicalindex, colname in enumerate(allcolumns): hh.setSectionHidden(logicalindex, colname not in visiblecols) for newvisualindex, colname in enumerate(visiblecols): logicalindex = allcolumns.index(colname) hh.moveSection(hh.visualIndex(logicalindex), newvisualindex) hh.sectionMoved.connect(self.columnsVisibilityChanged) self.columnsVisibilityChanged.emit() def setModel(self, model): oldmodel = self.model() QTableView.setModel(self, model) if type(oldmodel) is not type(model): # logical columns are vary by model class self._loadColumnSettings() #Check if the font contains the glyph needed by the model if not QFontMetrics(self.font()).inFont(u'\u2605'): model.unicodestar = False if not QFontMetrics(self.font()).inFont(u'\u2327'): model.unicodexinabox = False self.selectionModel().currentRowChanged.connect(self.onRowChange) self._rev_history = [] self._rev_pos = -1 self._in_history = False def _adjustRowHeight(self): """Resize rows to fit to LabeledDelegate item""" s = QSettings() s.beginGroup(self.cfgname) h = qtlib.readInt(s, 'row_height', default=-1) s.endGroup() if h < 0: h = self._fallbackRowHeight() self.setDefaultRowHeight(h) def _fallbackRowHeight(self): fm = QFontMetrics(self.font()) return fm.height() + 2 + 2 # see _LabelsLayout and LabeledDelegate def defaultRowHeight(self): return self.verticalHeader().defaultSectionSize() def setDefaultRowHeight(self, height): self.verticalHeader().setDefaultSectionSize(height) @pyqtSlot() def _resizeIgnoreSettings(self): self.resizeColumns(False) @pyqtSlot() def resizeColumns(self, usesettings=True): if not self.model(): return col_widths = [] if usesettings: qs = QSettings() key = '%s/column_widths/%s' % (self.cfgname, hglib.shortrepoid(self.repo)) try: col_widths = [int(w) for w in qtlib.readStringList(qs, key)] except ValueError: pass hh = self.horizontalHeader() hh.setStretchLastSection(False) self._resizeColumns(col_widths) hh.setStretchLastSection(True) def _resizeColumns(self, col_widths): # _resizeColumns misbehaves if called with last section streched hh = self.horizontalHeader() model = self.model() fontm = QFontMetrics(self.font()) assert model is not None for c in range(model.columnCount()): if hh.isSectionHidden(c): continue if c < len(col_widths) and col_widths[c] > 0: w = col_widths[c] else: w = model.maxWidthValueForColumn(c) if isinstance(w, int): pass elif w is not None: w = fontm.horizontalAdvance(str(w) + 'w') else: w = super(HgRepoView, self).sizeHintForColumn(c) self.setColumnWidth(c, w) def revFromindex(self, index): if not index.isValid(): return model = self.model() if model and model.graph: row = index.row() gnode = model.graph[row] return gnode.rev def context(self, rev): return self.repo[rev] def _copyHashToSelection(self, index): rev = self.revFromindex(index) if rev is not None: clip = QApplication.clipboard() if clip.supportsSelection(): clip.setText(str(self.repo[rev]), QClipboard.Mode.Selection) def revActivated(self, index): rev = self.revFromindex(index) if rev is not None: self.revisionActivated.emit(rev) def onRowChange(self, index, index_from): rev = self.revFromindex(index) if self.current_rev != rev and not self._in_history: del self._rev_history[self._rev_pos+1:] self._rev_history.append(rev) self._rev_pos = len(self._rev_history)-1 self._in_history = False self.current_rev = rev self.revisionSelected.emit(rev) def selectedRevisions(self): """Return the list of selected revisions""" selmodel = self.selectionModel() return [self.revFromindex(i) for i in selmodel.selectedRows()] def gotoAncestor(self, index): rev = self.revFromindex(index) if rev is None or self.current_rev is None: return ctx = self.context(self.current_rev) ctx2 = self.context(rev) if ctx.thgmqunappliedpatch() or ctx2.thgmqunappliedpatch(): return ancestor = ctx.ancestor(ctx2) self.showMessage.emit(_("Goto ancestor of %s and %s") % ( ctx.rev(), ctx2.rev())) self.goto(ancestor.rev()) def canGoBack(self): return bool(self._rev_history and self._rev_pos > 0) def canGoForward(self): return bool(self._rev_history and self._rev_pos < len(self._rev_history) - 1) def back(self): if self.canGoBack(): model = self.model() assert model is not None self._rev_pos -= 1 idx = model.indexFromRev(self._rev_history[self._rev_pos]) if idx.isValid(): self._in_history = True self.setCurrentIndex(idx) def forward(self): if self.canGoForward(): model = self.model() assert model is not None self._rev_pos += 1 idx = model.indexFromRev(self._rev_history[self._rev_pos]) if idx.isValid(): self._in_history = True self.setCurrentIndex(idx) def _symbolic_rev_to_numeric_rev(self, symbolic_rev): """Converts symbolic_rev into a numeric revision number for the local repository. symbolic_rev may be either: - a numeric revision - a mercurial commit hash - a git commit hash. This is looked up for only if no matches are found for the preceding cases, and the hg-git extension is loaded If no revision is found for symbolic_rev, the function raises an error.RepoError or an error.LookupError, which have to be handled by the caller. """ if isinstance(symbolic_rev, int): return symbolic_rev if isinstance(symbolic_rev, pycompat.unicode): symbolic_rev = hglib.fromunicode(symbolic_rev) try: # look for a mercurial commit hash return hglib.revsymbol(self.repo, symbolic_rev).rev() except error.RepoError: if b'hggit' not in self.repo.extensions(): # hg-git is not installed, do not try doing a gitnode() lookup raise # look for a git commit hash baseset = self.repo.revs(b'gitnode(%s)', symbolic_rev) if len(baseset) == 0: raise error.RepoLookupError(b"No revision found with gitnode" b"('%s')" % symbolic_rev) # There would not be any strict requirement to check for # len(baseset) > 1, since hg-git already raises a LookupError if it # gets passed an ambiguous hash. # However, leaving a case unhandled can always be a source of bugs # later, so let's be exhaustive instead. if len(baseset) > 1: raise error.AmbiguousPrefixLookupError( symbolic_rev, self.repo.githandler.map_file, b'Ambiguous commit hash') return baseset.first() def goto(self, rev): """ Select revision 'rev' (can be anything understood by repo[]) """ try: rev = self._symbolic_rev_to_numeric_rev(rev) except error.FilteredRepoLookupError: self.showMessage.emit(_("Revision '%s' is hidden") % str(rev)) return except error.RepoError: self.showMessage.emit(_("Can't find revision '%s'") % str(rev)) return # When Mercurial is not able to disambiguate commit hash prefixes, # it raises an error.AmbiguousPrefixLookupError, which ultimately # comes from its revlog._partialmatch(). However, in the same # situation hg-git (currently 2135ddef6d6e) raises a less specific # error.LookupError from its revset_gitnode(). # # We cannot narrow this clause until hg-git is updated. except error.LookupError as e: self.showMessage.emit(hglib.exception_str(e)) return model = self.model() assert model is not None idx = model.indexFromRev(rev) if idx.isValid(): flags = (QItemSelectionModel.SelectionFlag.ClearAndSelect | QItemSelectionModel.SelectionFlag.Rows) self.selectionModel().setCurrentIndex(idx, flags) self.scrollTo(idx) def saveSettings(self, s = None): if not s: s = QSettings() s.beginGroup(self.cfgname) if self.defaultRowHeight() == self._fallbackRowHeight(): s.remove('row_height') # recalculate next time else: s.setValue('row_height', self.defaultRowHeight()) s.endGroup() model = self.model() assert model is not None col_widths = [] for c in range(model.columnCount()): col_widths.append(self.columnWidth(c)) try: key = '%s/column_widths/%s' % (self.cfgname, hglib.shortrepoid(self.repo)) s.setValue(key, col_widths) except EnvironmentError: pass self._saveColumnSettings() def showEvent(self, event): self._adjustRowHeight() super(HgRepoView, self).showEvent(event) def enablefilterpalette(self, enable): self._paletteswitcher.enablefilterpalette(enable) class HgRepoViewStyle(QProxyStyle): "Override a style's drawPrimitive method to customize the drop indicator" def drawPrimitive(self, element, option, painter, widget=None): if element == QStyle.PrimitiveElement.PE_IndicatorItemViewItemDrop: # Drop indicators should be painted using the full viewport width if option.rect.height() != 0: vp = widget.viewport().rect() painter.drawRect(vp.x(), option.rect.y(), vp.width() - 1, 0) else: super(HgRepoViewStyle, self).drawPrimitive(element, option, painter, widget) def get_style(line_type, active): if line_type == graph.LINE_TYPE_GRAFT: return Qt.PenStyle.DashLine if line_type == graph.LINE_TYPE_OBSOLETE: return Qt.PenStyle.DotLine return Qt.PenStyle.SolidLine def get_width(line_type, active): if line_type >= graph.LINE_TYPE_FAMILY or not active: return 1 return 2 def _edge_color(edge, active): if not active or edge.linktype == graph.LINE_TYPE_FAMILY: return "gray" else: colors = graph.COLORS return colors[edge.color % len(colors)] class GraphDelegate(QStyledItemDelegate): def __init__(self, parent=None): super(GraphDelegate, self).__init__(parent) self._rowheight = 16 # updated to the actual height on paint() def _col2x(self, col): maxradius = max(self._rowheight // 2, 1) return maxradius * (col + 1) def _colcount(self, width): maxradius = max(self._rowheight // 2, 1) return (width + maxradius - 1) // maxradius def _dotradius(self): return 0.4 * self._rowheight def paint(self, painter, option, index): QStyledItemDelegate.paint(self, painter, option, index) # update to the actual height that should be the same for all rows self._rowheight = option.rect.height() visibleend = self._colcount(option.rect.width()) gnode = index.data(repomodel.GraphNodeRole) painter.save() try: painter.setClipRect(option.rect) painter.setRenderHint(QPainter.RenderHint.Antialiasing) painter.translate(option.rect.topLeft()) self._drawEdges(painter, index, gnode, visibleend) if gnode.x < visibleend: self._drawNode(painter, index, gnode) finally: painter.restore() def _drawEdges(self, painter, index, gnode, visibleend): h = self._rowheight dot_y = h // 2 def isactive(e): m = index.model() return m.isActiveRev(e.startrev) and m.isActiveRev(e.endrev) def lineimportance(pe): return isactive(pe[1]), pe[1].importance for y1, y4, lines in ((dot_y, dot_y + h, gnode.bottomlines), (dot_y - h, dot_y, gnode.toplines)): y2 = y1 + 1 * (y4 - y1) // 4 ymid = (y1 + y4) // 2 y3 = y1 + 3 * (y4 - y1) // 4 # omit invisible lines lines = [((start, end), e) for (start, end), e in lines if start < visibleend or end < visibleend] # remove hidden lines that can be partly visible due to antialiasing lines = list(dict(sorted(lines, key=lineimportance)).items()) # still necessary to sort by importance because lines can partially # overlap near contact point lines.sort(key=lineimportance) for (start, end), e in lines: active = isactive(e) lpen = QPen(QColor(_edge_color(e, active))) lpen.setStyle(get_style(e.linktype, active)) lpen.setWidth(get_width(e.linktype, active)) painter.setPen(lpen) x1 = self._col2x(start) x2 = self._col2x(end) if x1 == x2: painter.drawLine(x1, y1, x2, y4) else: path = QPainterPath() path.moveTo(x1, y1) path.cubicTo(x1, y2, x1, y2, (x1 + x2) // 2, ymid) path.cubicTo(x2, y3, x2, y3, x2, y4) painter.drawPath(path) def _drawNode(self, painter, index, gnode): m = index.model() if not m.isActiveRev(gnode.rev): dot_color = QColor("gray") radius = self._dotradius() * 0.8 else: fg = index.data(Qt.ItemDataRole.ForegroundRole) if not fg: # work around integrity error in HgRepoListModel, which may # provide a valid index for stripped revision and data() # returns None due to RepoLookupError. (#4451) return dot_color = QBrush(fg).color() radius = self._dotradius() dotcolor = dot_color.lighter() pencolor = dot_color.darker() truewhite = QColor("white") white = QColor("white") fillcolor = gnode.rev is None and white or dotcolor pen = QPen(pencolor) pen.setWidthF(1.5) painter.setPen(pen) centre_x = self._col2x(gnode.x) centre_y = self._rowheight // 2 def circle(r): rect = QRectF(centre_x - r, centre_y - r, 2 * r, 2 * r) painter.drawEllipse(rect) def closesymbol(s): rect_ = QRectF(centre_x - 1.5 * s, centre_y - 0.5 * s, 3 * s, s) painter.drawRect(rect_) def polygon(r, sides, shift=0): """draw a regular poligon, pointing upward""" phaseincr = (2 * pi / sides) phaseshift = phaseincr * shift phases = [phaseshift + phaseincr * n for n in range(sides)] points = [QPointF(centre_x + r * -sin(p), centre_y + r * -cos(p)) for p in phases] points.append(points[-1]) poly = QPolygonF(points) painter.drawPolygon(poly) def diamond(r): poly = QPolygonF([QPointF(centre_x - r, centre_y), QPointF(centre_x, centre_y - r), QPointF(centre_x + r, centre_y), QPointF(centre_x, centre_y + r), QPointF(centre_x - r, centre_y),]) painter.drawPolygon(poly) def square(r): rect = QRectF(centre_x - r, centre_y - r, 2 * r, 2 * r) painter.drawRect(rect) if gnode.shape == graph.NODE_SHAPE_APPLIEDPATCH: symbolsize = radius / 1.5 symbol = diamond elif gnode.shape == graph.NODE_SHAPE_UNAPPLIEDPATCH: symbolsize = radius / 1.5 fillcolor = QColor('#dddddd') painter.setPen(fillcolor) symbol = diamond elif gnode.shape == graph.NODE_SHAPE_CLOSEDBRANCH: symbolsize = 0.5 * radius symbol = closesymbol elif gnode.shape == graph.NODE_SHAPE_REVISION_SECRET: symbolsize = 0.45 * radius symbol = square elif gnode.shape == graph.NODE_SHAPE_REVISION_DRAFT: symbolsize = 0.57 * radius symbol = lambda size: polygon(size, 5) else: symbolsize = 0.5 * radius symbol = circle if gnode.faded: painter.setBrush(truewhite) painter.setPen(truewhite) white.setAlpha(64) fillcolor.setAlpha(64) symbol(symbolsize) pencolor.setAlpha(64) pen.setColor(pencolor) painter.setPen(pen) if gnode.wdparent and gnode.shape != graph.NODE_SHAPE_CLOSEDBRANCH: painter.setBrush(white) symbol(2 * 0.9 * symbolsize) painter.setBrush(fillcolor) symbol(symbolsize) def sizeHint(self, option, index): size = super(GraphDelegate, self).sizeHint(option, index) gnode = index.data(repomodel.GraphNodeRole) if gnode: # return width for current height assuming that row height # is calculated first (mimic width-for-height policy) return QSize(self._col2x(gnode.cols), max(size.height(), 16)) else: return size class _LabelsLayout(object): """Lay out and render text labels""" def __init__(self, labels, font, margin=2): self._labels = labels self._margin = margin if font.bold(): # cancel bold of working-directory row font = QFont(font) font.setBold(False) self._font = font fm = QFontMetrics(font) self._twidths = [fm.horizontalAdvance(t) for t, _s in labels] self._th = fm.height() self._padw = 2 self._padh = 1 # may overwrite horizontal frame to fit row def width(self): space = 2 * self._padw + self._margin return sum(self._twidths) + len(self._labels) * space - self._margin def height(self): return self._th + 2 * self._padh def draw(self, painter, pos): painter.save() try: painter.translate(pos) self._drawLabels(painter) finally: painter.restore() def _drawLabels(self, painter): th = self._th padw = self._padw padh = self._padh painter.setFont(self._font) x = 0 for (text, style), tw in zip(self._labels, self._twidths): lw = tw + 2 * padw lh = th + 2 * padh # draw bevel, background and text in order bg = qtlib.getbgcoloreffect(style) painter.fillRect(x, 0, lw, lh, bg.darker(110)) painter.fillRect(x + 1, 1, lw - 2, lh - 2, bg.lighter(110)) painter.fillRect(x + 2, 2, lw - 4, lh - 4, bg) painter.setPen(qtlib.gettextcoloreffect(style)) painter.drawText(x + padw, padh, tw, th, 0, text) x += lw + self._margin class LabeledDelegate(QStyledItemDelegate): """Render text labels in place of icon/pixmap decoration""" def __init__(self, parent=None, margin=2): super(LabeledDelegate, self).__init__(parent) self._margin = margin def _makeLabelsLayout(self, labels, option): return _LabelsLayout(labels, option.font, self._margin) def initStyleOption(self, option, index): super(LabeledDelegate, self).initStyleOption(option, index) labels = index.data(repomodel.LabelsRole) if not labels: return lay = self._makeLabelsLayout(labels, option) option.decorationSize = QSize(lay.width(), lay.height()) if isinstance(option, QStyleOptionViewItem): option.features |= QStyleOptionViewItem.ViewItemFeature.HasDecoration def paint(self, painter, option, index): super(LabeledDelegate, self).paint(painter, option, index) labels = index.data(repomodel.LabelsRole) if not labels: return option = QStyleOptionViewItem(option) self.initStyleOption(option, index) if option.widget: style = option.widget.style() else: style = QApplication.style() rect = style.subElementRect(QStyle.SubElement.SE_ItemViewItemDecoration, option, option.widget) # for maximum readability, use vivid color regardless of option.state lay = self._makeLabelsLayout(labels, option) painter.save() try: painter.setClipRect(option.rect) lay.draw(painter, rect.topLeft()) finally: painter.restore() def sizeHint(self, option, index): size = super(LabeledDelegate, self).sizeHint(option, index) # give additional margins for each row (even if it has no labels # because all rows must have the same height) option = QStyleOptionViewItem(option) self.initStyleOption(option, index) lay = self._makeLabelsLayout([], option) return QSize(size.width(), max(size.height(), lay.height() + 2)) class ColumnSelectDialog(QDialog): def __init__(self, name, model, curcolumns, parent=None): QDialog.__init__(self, parent) assert model is not None all = model.allColumns() colnames = dict(model.allColumnHeaders()) self.setWindowTitle(name) self.setWindowFlags(self.windowFlags() & \ ~Qt.WindowType.WindowContextHelpButtonHint) self.setMinimumSize(250, 265) disabled = [c for c in all if c not in curcolumns] layout = QFormLayout() layout.setContentsMargins(5, 5, 5, 5) self.setLayout(layout) list = QListWidget() # enabled cols are listed in sorted order, disabled are listed last for c in curcolumns + disabled: item = QListWidgetItem(colnames[c]) item.columnid = c item.setFlags(Qt.ItemFlag.ItemIsSelectable | Qt.ItemFlag.ItemIsEnabled | Qt.ItemFlag.ItemIsDragEnabled | Qt.ItemFlag.ItemIsUserCheckable) if c in curcolumns: item.setCheckState(Qt.CheckState.Checked) else: item.setCheckState(Qt.CheckState.Unchecked) list.addItem(item) list.setDragDropMode(QListView.DragDropMode.InternalMove) layout.addRow(list) self.list = list layout.addRow(QLabel(_('Drag to change order'))) self._rowHeightEdit = edit = QSpinBox(self) edit.setRange(10, 50) # just limit to reasonable range edit.setSuffix(_(' px')) layout.addRow(_('Row height'), edit) # dialog buttons bb = QDialogButtonBox(QDialogButtonBox.StandardButton.Ok|QDialogButtonBox.StandardButton.Cancel) bb.accepted.connect(self.accept) bb.rejected.connect(self.reject) layout.addWidget(bb) def selectedColumns(self): cols = [] for i in pycompat.xrange(self.list.count()): item = self.list.item(i) if item.checkState() == Qt.CheckState.Checked: # TODO: better to use data(role) instead cols.append(item.columnid) # pytype: disable=attribute-error return cols def rowHeight(self): return self._rowHeightEdit.value() def setRowHeight(self, height): self._rowHeightEdit.setValue(height) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730809007.0 tortoisehg-6.9/tortoisehg/hgqt/repowidget.py0000644000000000000000000030377414712406257020220 0ustar00rootroot# repowidget.py - TortoiseHg repository widget # # Copyright (C) 2007-2010 Logilab. All rights reserved. # Copyright (C) 2010 Adrian Buehlmann # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import binascii import os import shlex # used by runCustomCommand import subprocess # used by runCustomCommand from typing import ( Optional, ) from typing import ( List, ) from .qtcore import ( QFile, QIODevice, QItemSelectionModel, QMimeData, QPoint, QSettings, QTimer, QUrl, Qt, pyqtSignal, pyqtSlot, ) from .qtgui import ( QAction, QApplication, QDesktopServices, QFileDialog, QIcon, QKeySequence, QMainWindow, QMenu, QMessageBox, QSplitter, QTabWidget, QVBoxLayout, QWidget, ) from mercurial import ( error, node as nodemod, phases, pycompat, scmutil, util, ) from mercurial.utils import ( procutil, ) from ..util import ( hglib, paths, shlib, ) from ..util.i18n import _ from . import ( archive, backout, bisect, bookmark, close_branch, cmdcore, cmdui, compress, graft, hgemail, infobar, matching, merge, mq, pick, phabreview, postreview, prune, purge, qtlib, rebase, repomodel, resolve, revdetails, settings, shelve, sign, tag, thgimport, thgstrip, topic, update, visdiff, ) from .commit import CommitWidget from .docklog import ConsoleWidget from .grep import SearchWidget from .qtlib import ( DemandWidget, InfoMsgBox, QuestionMsgBox, WarningMsgBox, ) from .repofilter import RepoFilterBar from .repoview import HgRepoView from .sync import SyncWidget if hglib.TYPE_CHECKING: from typing import ( Callable, Dict, List, Optional, Sequence, Set, Text, Tuple, Union, ) _SELECTION_SINGLE = 'single' _SELECTION_PAIR = 'pair' _SELECTION_SOME = 'some' _SELECTION_INCOMING = 'incoming' _SELECTION_OUTGOING = 'outgoing' # iswd = working directory # isrev = the changeset has an integer revision number # isctx = changectx or workingctx # ispatch = applied revision or unapplied patch # fixed = the changeset is considered permanent # applied = an applied patch # unapplied = unapplied patch # qfold = unapplied patch and at least one applied patch exists # qgoto = applied patch or qparent # qpush = unapplied patch and can qpush # qpushmove = unapplied patch and can qpush --move to reorder patches # isdraftorwd = working directory or changset is draft _SELECTION_ISREV = 'isrev' _SELECTION_ISWD = 'iswd' _SELECTION_ISCTX = 'isctx' _SELECTION_ISPATCH = 'ispatch' _SELECTION_FIXED = 'fixed' _SELECTION_APPLIED = 'applied' _SELECTION_UNAPPLIED = 'unapplied' _SELECTION_QFOLD = 'qfold' _SELECTION_QGOTO = 'qgoto' _SELECTION_QPUSH = 'qpush' _SELECTION_QPUSHMOVE = 'qpushmove' _SELECTION_ISTRUE = 'istrue' _SELECTION_ISDRAFTORWD = 'isdraftorwd' _KNOWN_SELECTION_ATTRS: Set[Text] = { _SELECTION_SINGLE, _SELECTION_PAIR, _SELECTION_SOME, _SELECTION_INCOMING, _SELECTION_OUTGOING, _SELECTION_ISREV, _SELECTION_ISWD, _SELECTION_ISCTX, _SELECTION_ISPATCH, _SELECTION_FIXED, _SELECTION_APPLIED, _SELECTION_UNAPPLIED, _SELECTION_QFOLD, _SELECTION_QGOTO, _SELECTION_QPUSH, _SELECTION_QPUSHMOVE, _SELECTION_ISTRUE, _SELECTION_ISDRAFTORWD, } # selection attributes which may be specified by user _CUSTOM_TOOLS_SELECTION_ATTRS: Set[Text] = { _SELECTION_ISREV, _SELECTION_ISWD, _SELECTION_ISCTX, _SELECTION_FIXED, _SELECTION_APPLIED, _SELECTION_QGOTO, _SELECTION_ISTRUE, _SELECTION_ISDRAFTORWD, } class RepoWidget(QWidget): currentTaskTabChanged = pyqtSignal() showMessageSignal = pyqtSignal(str) taskTabVisibilityChanged = pyqtSignal(bool) toolbarVisibilityChanged = pyqtSignal(bool) # TODO: progress can be removed if all actions are run as hg command progress = pyqtSignal(str, object, str, str, object) makeLogVisible = pyqtSignal(bool) revisionSelected = pyqtSignal(object) titleChanged = pyqtSignal(str) """Emitted when changed the expected title for the RepoWidget tab""" busyIconChanged = pyqtSignal() repoLinkClicked = pyqtSignal(str) """Emitted when clicked a link to open repository""" _actions: Dict[Text, Tuple[QAction, Set[Text], Set[Text]]] def __init__(self, actionregistry, repoagent, parent=None, bundle=None): QWidget.__init__(self, parent, acceptDrops=True) self._actionregistry = actionregistry self._repoagent = repoagent self.bundlesource = None # source URL of incoming bundle [unicode] self.outgoingMode = False self._busyIconNames = [] self._namedTabs = {} self.destroyed.connect(self.repo.thginvalidate) self.currentMessage = '' self.setupUi() self._actions = {} self.createActions() self.loadSettings() self._initModel() self._lastTaskTabVisible = self.isTaskTabVisible() self.repotabs_splitter.splitterMoved.connect(self._onSplitterMoved) if bundle: self.setBundle(bundle) self._dialogs = qtlib.DialogKeeper( lambda self, dlgmeth, *args: dlgmeth(self, *args), parent=self) # listen to change notification after initial settings are loaded repoagent.repositoryChanged.connect(self.repositoryChanged) repoagent.configChanged.connect(self.configChanged) self._updateNamedActions() QTimer.singleShot(0, self._initView) def setupUi(self): self.repotabs_splitter = QSplitter(orientation=Qt.Orientation.Vertical) self.setLayout(QVBoxLayout()) self.layout().setContentsMargins(0, 0, 0, 0) self.layout().setSpacing(0) # placeholder to shift repoview while infobar is overlaid self._repoviewFrame = infobar.InfoBarPlaceholder(self._repoagent, self) self._repoviewFrame.linkActivated.connect(self._openLink) self.filterbar = RepoFilterBar(self._repoagent, self) self.layout().addWidget(self.filterbar) self.filterbar.branchChanged.connect(self.setBranch) self.filterbar.showHiddenChanged.connect(self.setShowHidden) self.filterbar.showGraftSourceChanged.connect(self.setShowGraftSource) self.filterbar.setRevisionSet.connect(self.setRevisionSet) self.filterbar.filterToggled.connect(self.filterToggled) self.filterbar.visibilityChanged.connect(self.toolbarVisibilityChanged) self.filterbar.hide() self.layout().addWidget(self.repotabs_splitter) cs = ('Workbench', _('Workbench Log Columns')) self.repoview = view = HgRepoView(self._repoagent, 'repoWidget', cs, self) view.clicked.connect(self._clearInfoMessage) view.revisionSelected.connect(self.onRevisionSelected) view.revisionActivated.connect(self.onRevisionActivated) view.showMessage.connect(self.showMessage) view.menuRequested.connect(self._popupSelectionMenu) self._repoviewFrame.setView(view) self.repotabs_splitter.addWidget(self._repoviewFrame) self.repotabs_splitter.setCollapsible(0, True) self.repotabs_splitter.setStretchFactor(0, 1) self.taskTabsWidget = tt = QTabWidget() self.repotabs_splitter.addWidget(self.taskTabsWidget) self.repotabs_splitter.setStretchFactor(1, 1) tt.setDocumentMode(True) self.updateTaskTabs() tt.currentChanged.connect(self.currentTaskTabChanged) w = revdetails.RevDetailsWidget(self._repoagent, self) self.revDetailsWidget = w self.revDetailsWidget.filelisttbar.setStyleSheet(qtlib.tbstylesheet) w.linkActivated.connect(self._openLink) w.revisionSelected.connect(self.repoview.goto) w.grepRequested.connect(self.grep) w.showMessage.connect(self.showMessage) w.revsetFilterRequested.connect(self.setFilter) w.runCustomCommandRequested.connect( self.handleRunCustomCommandRequest) idx = tt.addTab(w, qtlib.geticon('hg-log'), '') self._namedTabs['log'] = idx tt.setTabToolTip(idx, _("Revision details", "tab tooltip")) self.commitDemand = w = DemandWidget('createCommitWidget', self) idx = tt.addTab(w, qtlib.geticon('hg-commit'), '') self._namedTabs['commit'] = idx tt.setTabToolTip(idx, _("Commit", "tab tooltip")) self.grepDemand = w = DemandWidget('createGrepWidget', self) idx = tt.addTab(w, qtlib.geticon('hg-grep'), '') self._namedTabs['grep'] = idx tt.setTabToolTip(idx, _("Search", "tab tooltip")) w = ConsoleWidget(self._repoagent, self) self.consoleWidget = w w.closeRequested.connect(self.switchToPreferredTaskTab) idx = tt.addTab(w, qtlib.geticon('thg-console'), '') self._namedTabs['console'] = idx tt.setTabToolTip(idx, _("Console log", "tab tooltip")) self.syncDemand = w = DemandWidget('createSyncWidget', self) idx = tt.addTab(w, qtlib.geticon('thg-sync'), '') self._namedTabs['sync'] = idx tt.setTabToolTip(idx, _("Synchronize", "tab tooltip")) @pyqtSlot() def _initView(self): self._updateRepoViewForModel() # restore column widths when model is initially loaded. For some # reason, this needs to be deferred after updating the view. Otherwise # repoview.HgRepoView.resizeEvent() fires as the vertical scrollbar is # added, which causes the last column to grow by the scrollbar width on # each restart (and steal from the description width). QTimer.singleShot(0, self.repoview.resizeColumns) # select the widget chosen by the user name = self._repoagent.configString('tortoisehg', 'defaultwidget') if name: name = {'revdetails': 'log', 'search': 'grep'}.get(name, name) self.taskTabsWidget.setCurrentIndex(self._namedTabs.get(name, 0)) def currentTaskTabName(self): indexmap = dict((idx, name) for name, idx in self._namedTabs.items()) return indexmap.get(self.taskTabsWidget.currentIndex()) @pyqtSlot(str) def switchToNamedTaskTab(self, tabname: str) -> None: if tabname in self._namedTabs: idx = self._namedTabs[tabname] # refresh status even if current widget is already a 'commit' if (tabname == 'commit' and self.taskTabsWidget.currentIndex() == idx): self._refreshCommitTabIfNeeded() self.taskTabsWidget.setCurrentIndex(idx) # restore default splitter position if task tab is invisible self.setTaskTabVisible(True) def isTaskTabVisible(self): return self.repotabs_splitter.sizes()[1] > 0 def setTaskTabVisible(self, visible): if visible == self.isTaskTabVisible(): return if visible: self.repotabs_splitter.setSizes([1, 1]) else: self.repotabs_splitter.setSizes([1, 0]) self._updateLastTaskTabState(visible) @pyqtSlot() def _onSplitterMoved(self): visible = self.isTaskTabVisible() if self._lastTaskTabVisible == visible: return self._updateLastTaskTabState(visible) def _updateLastTaskTabState(self, visible): self._lastTaskTabVisible = visible self.taskTabVisibilityChanged.emit(visible) @property def repo(self): return self._repoagent.rawRepo() def repoRootPath(self): return self._repoagent.rootPath() def repoDisplayName(self): return self._repoagent.displayName() def title(self): """Returns the expected title for this widget [unicode]""" name = self._repoagent.shortName() if self._repoagent.overlayUrl(): return _('%s ') % name elif self.repomodel.branch(): return u'%s [%s]' % (name, self.repomodel.branch()) else: return name def busyIcon(self): if self._busyIconNames: return qtlib.geticon(self._busyIconNames[-1]) else: return QIcon() def filterBar(self): return self.filterbar def filterBarVisible(self): return self.filterbar.isVisible() @pyqtSlot(bool) def toggleFilterBar(self, checked): """Toggle display repowidget filter bar""" if self.filterbar.isVisibleTo(self) == checked: return self.filterbar.setVisible(checked) if checked: self.filterbar.setFocus() def _openRepoLink(self, upath): path = hglib.fromunicode(upath) if not os.path.isabs(path): path = self.repo.wjoin(path) self.repoLinkClicked.emit(hglib.tounicode(path)) @pyqtSlot(str) def _openLink(self, link: str): handlers = {'cset': self.goto, 'log': lambda a: self.makeLogVisible.emit(True), 'repo': self._openRepoLink, 'shelve' : self.shelve} if ':' in link: scheme, param = link.split(':', 1) hdr = handlers.get(scheme) if hdr: return hdr(param) if os.path.isabs(link): qtlib.openlocalurl(link) else: QDesktopServices.openUrl(QUrl(link)) def setInfoBar(self, cls, *args, **kwargs): return self._repoviewFrame.setInfoBar(cls, *args, **kwargs) def clearInfoBar(self, priority=None): return self._repoviewFrame.clearInfoBar(priority) def createCommitWidget(self): pats = [] opts = {} cw = CommitWidget(self._repoagent, pats, opts, self, rev=self.rev) cw.buttonHBox.addWidget(cw.commitSetupButton()) cw.loadSettings(QSettings(), 'Workbench') cw.progress.connect(self.progress) cw.linkActivated.connect(self._openLink) cw.showMessage.connect(self.showMessage) cw.grepRequested.connect(self.grep) cw.runCustomCommandRequested.connect( self.handleRunCustomCommandRequest) QTimer.singleShot(0, self._initCommitWidgetLate) return cw @pyqtSlot() def _initCommitWidgetLate(self): cw = self.commitDemand.get() cw.reload() # auto-refresh should be enabled after initial reload(); otherwise # refreshWctx() can be doubled self.taskTabsWidget.currentChanged.connect( self._refreshCommitTabIfNeeded) def createSyncWidget(self): sw = SyncWidget(self._repoagent, self) sw.newCommand.connect(self._handleNewSyncCommand) sw.outgoingNodes.connect(self.setOutgoingNodes) sw.showMessage.connect(self.showMessage) sw.showMessage.connect(self._repoviewFrame.showMessage) sw.incomingBundle.connect(self.setBundle) sw.pullCompleted.connect(self.onPullCompleted) sw.pushCompleted.connect(self.clearRevisionSet) sw.refreshTargets(self.rev) sw.switchToRequest.connect(self.switchToNamedTaskTab) return sw @pyqtSlot(cmdcore.CmdSession) def _handleNewSyncCommand(self, sess): self._handleNewCommand(sess) if sess.isFinished(): return sess.commandFinished.connect(self._onSyncCommandFinished) self._setBusyIcon('thg-sync') @pyqtSlot() def _onSyncCommandFinished(self): self._clearBusyIcon('thg-sync') def _setBusyIcon(self, iconname): self._busyIconNames.append(iconname) self.busyIconChanged.emit() def _clearBusyIcon(self, iconname): if iconname in self._busyIconNames: self._busyIconNames.remove(iconname) self.busyIconChanged.emit() @pyqtSlot(str) def setFilter(self, filter): self.filterbar.setQuery(filter) self.filterbar.setVisible(True) self.filterbar.runQuery() def isBundleSet(self) -> bool: return (bool(self._repoagent.overlayUrl()) and self.repomodel.revset() == 'bundle()') @pyqtSlot(str, str) def setBundle(self, bfile: str, bsource: Optional[str] = None) -> None: if self._repoagent.overlayUrl(): self.clearBundle() self.bundlesource = bsource oldlen = len(self.repo) # no "bundle:" because bfile may contain "+" separator self._repoagent.setOverlay(bfile) self.filterbar.setQuery('bundle()') self.filterbar.runQuery() self.titleChanged.emit(self.title()) newlen = len(self.repo) w = self.setInfoBar(infobar.ConfirmInfoBar, _('Found %d incoming changesets') % (newlen - oldlen)) assert w w.acceptButton.setText(_('Pull')) w.acceptButton.setToolTip(_('Pull incoming changesets into ' 'your repository')) w.rejectButton.setText(_('Cancel')) w.rejectButton.setToolTip(_('Reject incoming changesets')) w.accepted.connect(self.acceptBundle) w.rejected.connect(self.clearBundle) @pyqtSlot() def clearBundle(self): self.clearRevisionSet() self.bundlesource = None self._repoagent.clearOverlay() self.titleChanged.emit(self.title()) @pyqtSlot() def onPullCompleted(self): if self._repoagent.overlayUrl(): self.clearBundle() @pyqtSlot() def acceptBundle(self): bundle = self._repoagent.overlayUrl() if bundle: w = self.syncDemand.get() w.pullBundle(bundle, None, self.bundlesource) @pyqtSlot() def pullBundleToRev(self): bundle = self._repoagent.overlayUrl() if bundle: # manually remove infobar to work around unwanted clearBundle # during pull operation (issue #2596) self._repoviewFrame.discardInfoBar() w = self.syncDemand.get() w.pullBundle(bundle, self.repo[self.rev].hex(), self.bundlesource) @pyqtSlot() def clearRevisionSet(self): self.filterbar.setQuery('') self.setRevisionSet('') def setRevisionSet(self, revspec): self.repomodel.setRevset(revspec) if not revspec and self.outgoingMode: self.outgoingMode = False self._updateNamedActions() @pyqtSlot(bool) def filterToggled(self, checked): self.repomodel.setFilterByRevset(checked) def setOutgoingNodes(self, nodes): self.filterbar.setQuery('outgoing()') revs = [self.repo[n].rev() for n in nodes] self.setRevisionSet(hglib.compactrevs(revs)) self.outgoingMode = True numnodes = len(nodes) numoutgoing = numnodes if self.syncDemand.get().isTargetSelected(): # Outgoing preview is already filtered by target selection defaultpush = None else: # Read the tortoisehg.defaultpush setting to determine what to push # by default, and set the button label and action accordingly defaultpush = self._repoagent.configString( 'tortoisehg', 'defaultpush') rev = None branch = None pushall = False # note that we assume that none of the revisions # on the nodes/revs lists is secret if defaultpush == 'branch': branch = self.repo[b'.'].branch() ubranch = hglib.tounicode(branch) # Get the list of revs that will be actually pushed outgoingrevs = self.repo.revs(b'%ld and branch(.)', revs) numoutgoing = len(outgoingrevs) elif defaultpush == 'revision': rev = self.repo[b'.'].rev() # Get the list of revs that will be actually pushed # excluding (potentially) the current rev outgoingrevs = self.repo.revs(b'%ld and ::.', revs) numoutgoing = len(outgoingrevs) maxrev = rev if numoutgoing > 0: maxrev = max(outgoingrevs) else: pushall = True # Set the default acceptbuttontext # Note that the pushall case uses the default accept button text if branch is not None: acceptbuttontext = _('Push current branch (%s)') % ubranch elif rev is not None: if maxrev == rev: acceptbuttontext = _('Push up to current revision (#%d)') % rev else: acceptbuttontext = _('Push up to revision #%d') % maxrev else: acceptbuttontext = _('Push all') if numnodes == 0: msg = _('no outgoing changesets') elif numoutgoing == 0: if branch: msg = _('no outgoing changesets in current branch (%s) ' '/ %d in total') % (ubranch, numnodes) elif rev is not None: if maxrev == rev: msg = _('no outgoing changesets up to current revision ' '(#%d) / %d in total') % (rev, numnodes) else: msg = _('no outgoing changesets up to revision #%d ' '/ %d in total') % (maxrev, numnodes) elif numoutgoing == numnodes: # This case includes 'Push all' among others msg = _('%d outgoing changesets') % numoutgoing elif branch: msg = _('%d outgoing changesets in current branch (%s) ' '/ %d in total') % (numoutgoing, ubranch, numnodes) elif rev: if maxrev == rev: msg = _('%d outgoing changesets up to current revision (#%d) ' '/ %d in total') % (numoutgoing, rev, numnodes) else: msg = _('%d outgoing changesets up to revision #%d ' '/ %d in total') % (numoutgoing, maxrev, numnodes) else: # This should never happen but we leave this else clause # in case there is a flaw in the logic above (e.g. due to # a future change in the code) msg = _('%d outgoing changesets') % numoutgoing w = self.setInfoBar(infobar.ConfirmInfoBar, msg.strip()) assert w if numoutgoing == 0: acceptbuttontext = _('Nothing to push') w.acceptButton.setEnabled(False) w.acceptButton.setText(acceptbuttontext) w.accepted.connect(lambda: self.push(False, rev=rev, branch=branch, pushall=pushall)) # TODO: to the same URL w.rejected.connect(self.clearRevisionSet) self._updateNamedActions() def createGrepWidget(self): upats = {} gw = SearchWidget(self._repoagent, upats, self) gw.setRevision(self.repoview.current_rev) gw.showMessage.connect(self.showMessage) gw.progress.connect(self.progress) gw.revisionSelected.connect(self.goto) return gw @property def rev(self): """Returns the current active revision""" return self.repoview.current_rev def gotoRev(self, revspec): """Select and scroll to the specified revision""" try: # try instant look up if scmutil.isrevsymbol(self.repo, hglib.fromunicode(revspec)): self.repoview.goto(revspec) return except error.LookupError: pass # ambiguous node cmdline = hglib.buildcmdargs('log', rev=revspec, template='{rev}\n') sess = self._runCommand(cmdline) sess.setCaptureOutput(True) sess.commandFinished.connect(self._onGotoRevQueryFinished) @pyqtSlot(int) def _onGotoRevQueryFinished(self, ret): sess = self.sender() if ret != 0: return output = bytes(sess.readAll()) if not output: # TODO: maybe this should be a warning bar since there would be no # information in log window. self.setInfoBar(infobar.CommandErrorInfoBar, _('No revision found')) return rev = int(output.splitlines()[-1]) # pick last rev as "hg update" does self.repoview.goto(rev) def showMessage(self, msg): self.currentMessage = msg if self.isVisible(): self.showMessageSignal.emit(msg) def keyPressEvent(self, event): if self._repoviewFrame.activeInfoBar() and event.key() == Qt.Key.Key_Escape: self.clearInfoBar(infobar.INFO) else: QWidget.keyPressEvent(self, event) def showEvent(self, event): QWidget.showEvent(self, event) self.showMessageSignal.emit(self.currentMessage) if not event.spontaneous(): # RepoWidget must be the main widget in any window, so grab focus # when it gets visible at start-up or by switching tabs. self.repoview.setFocus() def createActions(self): self._mqActions = None if b'mq' in self.repo.extensions(): self._mqActions = mq.PatchQueueActions(self) self._mqActions.setRepoAgent(self._repoagent) self._setUpNamedActions() def detectPatches(self, paths): filepaths = [] for p in paths: if not os.path.isfile(p): continue try: pf = open(p, 'rb') earlybytes = pf.read(4096) if b'\0' in earlybytes: continue pf.seek(0) with hglib.extractpatch(self.repo.ui, pf) as data: if data.get('filename'): filepaths.append(p) except EnvironmentError: pass return filepaths def dragEnterEvent(self, event): paths = [u.toLocalFile() for u in event.mimeData().urls()] if self.detectPatches(paths): event.setDropAction(Qt.DropAction.CopyAction) event.accept() def dropEvent(self, event): paths = [u.toLocalFile() for u in event.mimeData().urls()] patches = self.detectPatches(paths) if not patches: return event.setDropAction(Qt.DropAction.CopyAction) event.accept() self.thgimport(patches) ## Begin Workbench event forwards def back(self): self.repoview.back() def forward(self): self.repoview.forward() def bisect(self): self._dialogs.open(RepoWidget._createBisectDialog) @pyqtSlot() def bisectGoodBadRevisionsPair(self): revA, revB = self._selectedIntRevisionsPair() dlg = self._dialogs.open(RepoWidget._createBisectDialog) dlg.restart(str(revA), str(revB)) @pyqtSlot() def bisectBadGoodRevisionsPair(self): revA, revB = self._selectedIntRevisionsPair() dlg = self._dialogs.open(RepoWidget._createBisectDialog) dlg.restart(str(revB), str(revA)) def _createBisectDialog(self): dlg = bisect.BisectDialog(self._repoagent, self) dlg.newCandidate.connect(self.gotoParent) return dlg def resolve(self): dlg = resolve.ResolveDialog(self._repoagent, self) dlg.exec() def thgimport(self, paths=None): dlg = thgimport.ImportDialog(self._repoagent, self) if paths: dlg.setfilepaths(paths) if dlg.exec() == 0: self.gotoTip() def unbundle(self): w = self.syncDemand.get() w.unbundle() def shelve(self, arg=None): self._dialogs.open(RepoWidget._createShelveDialog) def _createShelveDialog(self): dlg = shelve.ShelveDialog(self._repoagent) dlg.finished.connect(self._refreshCommitTabIfNeeded) return dlg def verify(self): cmdline = ['verify', '--verbose'] dlg = cmdui.CmdSessionDialog(self) dlg.setWindowIcon(qtlib.geticon('hg-verify')) dlg.setWindowTitle(_('%s - verify repository') % self.repoDisplayName()) dlg.setWindowFlags(dlg.windowFlags() | Qt.WindowType.WindowMaximizeButtonHint) dlg.setSession(self._repoagent.runCommand(cmdline, self)) dlg.exec() def recover(self): cmdline = ['recover', '--verbose'] dlg = cmdui.CmdSessionDialog(self) dlg.setWindowIcon(qtlib.geticon('hg-recover')) dlg.setWindowTitle(_('%s - recover repository') % self.repoDisplayName()) dlg.setWindowFlags(dlg.windowFlags() | Qt.WindowType.WindowMaximizeButtonHint) dlg.setSession(self._repoagent.runCommand(cmdline, self)) dlg.exec() def rollback(self): desc, oldlen = hglib.readundodesc(self.repo) if not desc: InfoMsgBox(_('No transaction available'), _('There is no rollback transaction available')) return elif desc == 'commit': if not QuestionMsgBox(_('Undo last commit?'), _('Undo most recent commit (%d), preserving file changes?') % oldlen): return else: if not QuestionMsgBox(_('Undo last transaction?'), _('Rollback to revision %d (undo %s)?') % (oldlen - 1, desc)): return try: rev = self.repo[b'.'].rev() except error.LookupError as e: InfoMsgBox(_('Repository Error'), _('Unable to determine working copy revision\n') + hglib.tounicode(bytes(e))) return if rev >= oldlen and not QuestionMsgBox( _('Remove current working revision?'), _('Your current working revision (%d) will be removed ' 'by this rollback, leaving uncommitted changes.\n ' 'Continue?') % rev): return cmdline = ['rollback', '--verbose'] sess = self._runCommand(cmdline) sess.commandFinished.connect(self._notifyWorkingDirChanges) def purge(self): dlg = purge.PurgeDialog(self._repoagent, self) dlg.setWindowFlags(Qt.WindowType.Sheet) dlg.setWindowModality(Qt.WindowModality.WindowModal) dlg.showMessage.connect(self.showMessage) dlg.progress.connect(self.progress) dlg.exec() # ignores result code of PurgeDialog because it's unreliable self._refreshCommitTabIfNeeded() ## End workbench event forwards @pyqtSlot(str, dict) def grep(self, pattern='', opts=None): """Open grep task tab""" if opts is None: opts = {} opts = dict((str(k), str(v)) for k, v in opts.items()) self.taskTabsWidget.setCurrentIndex(self._namedTabs['grep']) self.grepDemand.setSearch(pattern, **opts) self.grepDemand.runSearch() def _initModel(self): self.repomodel = repomodel.HgRepoListModel(self._repoagent, self) self.repomodel.setBranch(self.filterbar.branch(), self.filterbar.branchAncestorsIncluded()) self.repomodel.setFilterByRevset(self.filterbar.filtercb.isChecked()) self.repomodel.setShowGraftSource(self.filterbar.getShowGraftSource()) self.repomodel.showMessage.connect(self.showMessage) self.repomodel.showMessage.connect(self._repoviewFrame.showMessage) self.repoview.setModel(self.repomodel) self.repomodel.revsUpdated.connect(self._updateRepoViewForModel) selmodel = self.repoview.selectionModel() assert selmodel is not None selmodel.selectionChanged.connect(self._onSelectedRevisionsChanged) @pyqtSlot() def _updateRepoViewForModel(self): model = self.repoview.model() selmodel = self.repoview.selectionModel() assert model is not None assert selmodel is not None index = selmodel.currentIndex() if not (index.flags() & Qt.ItemFlag.ItemIsEnabled): index = model.defaultIndex() f = QItemSelectionModel.SelectionFlag.ClearAndSelect | QItemSelectionModel.SelectionFlag.Rows selmodel.setCurrentIndex(index, f) self.repoview.scrollTo(index) self.repoview.enablefilterpalette(bool(model.revset())) self.clearInfoBar(infobar.INFO) # clear progress message @pyqtSlot() def _clearInfoMessage(self): self.clearInfoBar(infobar.INFO) @pyqtSlot() def switchToPreferredTaskTab(self): tw = self.taskTabsWidget rev = self.rev ctx = self.repo[rev] if rev is None or (b'mq' in self.repo.extensions() and b'qtip' in ctx.tags() and self.repo[b'.'].rev() == rev): # Clicking on working copy or on the topmost applied patch # (_if_ it is also the working copy parent) switches to the commit tab tw.setCurrentIndex(self._namedTabs['commit']) else: # Clicking on a normal revision switches from commit tab tw.setCurrentIndex(self._namedTabs['log']) def onRevisionSelected(self, rev): 'View selection changed, could be a reload' self.showMessage('') try: self.revDetailsWidget.onRevisionSelected(rev) self.revisionSelected.emit(rev) if not isinstance(rev, str): # Regular patch or working directory self.grepDemand.forward('setRevision', rev) self.syncDemand.forward('refreshTargets', rev) self.commitDemand.forward('setRev', rev) except (IndexError, error.RevlogError, error.Abort) as e: self.showMessage(hglib.exception_str(e)) cw = self.taskTabsWidget.currentWidget() if cw.canswitch(): self.switchToPreferredTaskTab() @pyqtSlot() def _onSelectedRevisionsChanged(self): self._updateNamedActions() @pyqtSlot() def gotoParent(self): self.goto('.') def gotoTip(self): self.repoview.clearSelection() self.goto('tip') def _gotoAncestor(self): revs = self._selectedIntRevisions() if not revs: return ancestor = self.repo[revs[0]] for rev in revs[1:]: ctx = self.repo[rev] ancestor = ancestor.ancestor(ctx) self.goto(ancestor.rev()) def goto(self, rev): self.repoview.goto(rev) def onRevisionActivated(self, rev): qgoto = False # Normal revisions and applied patches are int values, while unapplied # patches seem to always(?) be bytes. The python2 code used to check # for the basestring type, which can be either bytes or unicode on py2, # so there may be a few cases of unicode. if isinstance(rev, (bytes, str)): qgoto = True else: ctx = self.repo[rev] if b'qparent' in ctx.tags() or ctx.thgmqappliedpatch(): qgoto = True if b'qtip' in ctx.tags(): qgoto = False if qgoto: self.qgotoSelectedRevision() else: self.visualDiffRevision() def reload(self, invalidate=True): 'Initiate a refresh of the repo model, rebuild graph' try: if invalidate: self.repo.thginvalidate() self.rebuildGraph() self.reloadTaskTab() except EnvironmentError as e: self.showMessage(hglib.exception_str(e)) def rebuildGraph(self): 'Called by repositoryChanged signals, and during reload' self.showMessage('') self.filterbar.refresh() self.repoview.saveSettings() def reloadTaskTab(self): w = self.taskTabsWidget.currentWidget() w.reload() @pyqtSlot() def repositoryChanged(self): 'Repository has detected a changelog / dirstate change' try: self.rebuildGraph() except (error.RevlogError, error.RepoError) as e: self.showMessage(hglib.exception_str(e)) self._updateNamedActions() @pyqtSlot() def configChanged(self): 'Repository is reporting its config files have changed' self.revDetailsWidget.reload() self.titleChanged.emit(self.title()) self.updateTaskTabs() def updateTaskTabs(self): val = self._repoagent.configString('tortoisehg', 'tasktabs').lower() if val == 'east': self.taskTabsWidget.setTabPosition(QTabWidget.TabPosition.East) self.taskTabsWidget.tabBar().show() elif val == 'west': self.taskTabsWidget.setTabPosition(QTabWidget.TabPosition.West) self.taskTabsWidget.tabBar().show() else: self.taskTabsWidget.tabBar().hide() @pyqtSlot(str, bool) def setBranch(self, branch, allparents): self.repomodel.setBranch(branch, allparents=allparents) self.titleChanged.emit(self.title()) @pyqtSlot(bool) def setShowHidden(self, showhidden): self._repoagent.setHiddenRevsIncluded(showhidden) @pyqtSlot(bool) def setShowGraftSource(self, showgraftsource): self.repomodel.setShowGraftSource(showgraftsource) ## ## Workbench methods ## def canGoBack(self): return self.repoview.canGoBack() def canGoForward(self): return self.repoview.canGoForward() def loadSettings(self): s = QSettings() repoid = hglib.shortrepoid(self.repo) self.revDetailsWidget.loadSettings(s) self.filterbar.loadSettings(s) self._repoagent.setHiddenRevsIncluded(self.filterbar.getShowHidden()) self.repotabs_splitter.restoreState( qtlib.readByteArray(s, 'repoWidget/splitter-' + repoid)) def okToContinue(self): if self._repoagent.isBusy(): r = QMessageBox.question(self, _('Confirm Exit'), _('Mercurial command is still running.\n' 'Are you sure you want to terminate?'), QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.No, QMessageBox.StandardButton.No) if r == QMessageBox.StandardButton.Yes: self._repoagent.abortCommands() return False for i in pycompat.xrange(self.taskTabsWidget.count()): w = self.taskTabsWidget.widget(i) if w.canExit(): continue self.taskTabsWidget.setCurrentWidget(w) self.showMessage(_('Tab cannot exit')) return False return True def closeRepoWidget(self): '''returns False if close should be aborted''' if not self.okToContinue(): return False s = QSettings() if self.isVisible(): try: repoid = hglib.shortrepoid(self.repo) s.setValue('repoWidget/splitter-' + repoid, self.repotabs_splitter.saveState()) except EnvironmentError: pass self.revDetailsWidget.saveSettings(s) self.commitDemand.forward('saveSettings', s, 'workbench') self.grepDemand.forward('saveSettings', s) self.filterbar.saveSettings(s) self.repoview.saveSettings(s) return True def setSyncUrl(self, url): """Change the current peer-repo url of the sync widget; url may be a symbolic name defined in [paths] section""" self.syncDemand.get().setUrl(url) def incoming(self): self.syncDemand.get().incoming() def pull(self): self.syncDemand.get().pull() def outgoing(self): self.syncDemand.get().outgoing() def push(self, confirm=None, **kwargs): """Call sync push. If confirm is False, the user will not be prompted for confirmation. If confirm is True, the prompt might be used. """ self.syncDemand.get().push(confirm, **kwargs) self.outgoingMode = False self._updateNamedActions() def syncBookmark(self): self.syncDemand.get().syncBookmark() ## ## Repoview context menu ## def _isRevisionSelected(self) -> bool: """True if the selection includes change/workingctx revision""" return any(r is None or isinstance(r, int) for r in self.repoview.selectedRevisions()) def _isUnappliedPatchSelected(self) -> bool: """True if the selection includes unapplied patch""" return any(r is not None and not isinstance(r, int) for r in self.repoview.selectedRevisions()) def _isRevisionsPairSelected(self) -> bool: """True if exactly two change/workingctx revisions are selected""" return (len(self.repoview.selectedRevisions()) == 2 and not self._isUnappliedPatchSelected()) def _selectionAttributes(self) -> Set[Text]: """Returns a set of keywords that describe the selected revisions""" attributes = {_SELECTION_ISTRUE} revisions, patches = self._selectedIntRevisionsAndUnappliedPatches() if len(revisions) + len(patches) == 1: attributes.add(_SELECTION_SINGLE) if len(revisions) + len(patches) == 2: attributes.add(_SELECTION_PAIR) if revisions or patches: attributes.add(_SELECTION_SOME) # In incoming/outgoing mode, unrelated revisions and patches are # filtered out. So we don't have to test each selected revision. if self.isBundleSet(): attributes.add(_SELECTION_INCOMING) if self.outgoingMode: attributes.add(_SELECTION_OUTGOING) if not patches and revisions: attributes.add(_SELECTION_ISCTX) haswdir = max(revisions) == nodemod.wdirrev if not haswdir: attributes.add(_SELECTION_ISREV) if len(revisions) == 1 and haswdir: attributes.add(_SELECTION_ISWD) ctxs = [self.repo[rev] for rev in revisions] if all(c.phase() >= phases.draft or c.rev() is None for c in ctxs): attributes.add(_SELECTION_ISDRAFTORWD) if not haswdir and not any(c.thgmqappliedpatch() for c in ctxs): attributes.add(_SELECTION_FIXED) if all(c.thgmqappliedpatch() for c in ctxs): attributes.add(_SELECTION_ISPATCH) attributes.add(_SELECTION_APPLIED) if all(c.thgmqappliedpatch() or b'qparent' in c.tags() for c in ctxs): attributes.add(_SELECTION_QGOTO) if not revisions and patches: attributes.add(_SELECTION_ISPATCH) attributes.add(_SELECTION_UNAPPLIED) if b'qtip' in self.repo.tags(): attributes.add(_SELECTION_QFOLD) # TODO: maybe better to not scan all patches and test selection? q = self.repo.mq ispushable = False qnext = '' unapplied = 0 for i in pycompat.xrange(q.seriesend(), len(q.series)): pushable, reason = q.pushable(i) if pushable: if unapplied == 0: qnext = hglib.tounicode(q.series[i]) if self.rev == q.series[i]: ispushable = True unapplied += 1 if ispushable: attributes.add(_SELECTION_QPUSH) if ispushable and len(patches) == 1 and patches[0] != qnext: attributes.add(_SELECTION_QPUSHMOVE) return attributes def _selectedIntRevisionsAndUnappliedPatches(self) -> Tuple[List[int], List[Text]]: """Returns lists of selected change/workingctx revisions and unapplied patches""" revisions = [] patches = [] for r in self.repoview.selectedRevisions(): if r is None: revisions.append(nodemod.wdirrev) elif isinstance(r, int): revisions.append(r) else: assert isinstance(r, bytes) patches.append(hglib.tounicode(r)) return revisions, patches def _selectedIntRevisions(self) -> List[int]: """Returns a list of selected change/workingctx revisions Unapplied patches are excluded. """ revisions, _patches = self._selectedIntRevisionsAndUnappliedPatches() return revisions def _selectedIntRevisionsPair(self) -> Tuple[int, int]: """Returns a pair of change/workingctx revisions if exactly two revisions are selected Otherwise returns (nullrev, nullrev) for convenience. Use _isRevisionsPairSelected() if you need to check it strictly. """ if not self._isRevisionsPairSelected(): return nodemod.nullrev, nodemod.nullrev rev0, rev1 = self._selectedIntRevisions() return rev0, rev1 def _selectedDagRangeRevisions(self) -> List[int]: """Returns a list of revisions in the DAG range specified by the selected revisions pair If no revisions pair selected, returns an empty list. """ if not self._isRevisionsPairSelected(): return [] rev0, rev1 = sorted(self._selectedIntRevisions()) # simply disable lazy evaluation as we won't handle slow query return list(self.repo.revs(b'%d::%d', rev0, rev1)) def _selectedUnappliedPatches(self) -> List[Text]: """Returns a list of selected unapplied patches""" _revisions, patches = self._selectedIntRevisionsAndUnappliedPatches() return patches @pyqtSlot(QPoint) def _popupSelectionMenu(self, point): 'User requested a context menu in repo view widget' selection = self.repoview.selectedRevisions() if not selection: return if self.isBundleSet(): self._popupIncomingBundleMenu(point) elif not self._isRevisionSelected(): self._popupUnappliedPatchMenu(point) elif len(selection) == 1: self._popupSingleSelectionMenu(point) elif len(selection) == 2: self._popupPairSelectionMenu(point) else: self._popupMultipleSelectionMenu(point) def _popupSingleSelectionMenu(self, point): menu = QMenu(self) if self.outgoingMode: submenu = menu.addMenu(_('Pus&h')) self._addNamedActionsToMenu(submenu, [ 'Repository.pushToRevision', 'Repository.pushBranch', 'Repository.pushAll', ]) menu.addSeparator() self._addNamedActionsToMenu(menu, [ 'Repository.updateToRevision', None, 'Repository.visualDiff', 'Repository.visualDiffToLocal', 'Repository.browseRevision', 'RepoView.filterByRevisionsMenu', None, 'Repository.mergeWithRevision', 'Repository.closeRevision', 'Repository.tagRevision', 'Repository.bookmarkRevision', 'Repository.topicRevision', 'Repository.signRevision', None, 'Repository.backoutToRevision', 'Repository.revertToRevision', None, ]) submenu = menu.addMenu(_('Copy &Hash')) self._addNamedActionsToMenu(submenu, [ 'Repository.copyHash', 'Repository.copyShortHash', None, 'Repository.copyGitHash', 'Repository.copyShortGitHash', ]) menu.addSeparator() submenu = menu.addMenu(_('E&xport')) self._addNamedActionsToMenu(submenu, [ 'Repository.exportRevisions', 'Repository.emailRevisions', 'Repository.archiveRevision', 'Repository.bundleRevisions', 'Repository.copyPatch', ]) menu.addSeparator() self._addNamedActionsToMenu(menu, [ 'RepoView.changePhaseMenu', None, 'Repository.graftRevisions', ]) submenu = menu.addMenu(_('Modi&fy History')) self._addNamedActionsToMenu(submenu, [ 'PatchQueue.popPatch', 'PatchQueue.importRevision', 'PatchQueue.finishRevision', 'PatchQueue.renamePatch', None, 'PatchQueue.launchOptionsDialog', None, 'Repository.pickRevision', 'Repository.rebaseRevision', None, 'Repository.pruneRevisions', 'Repository.stripRevision' ]) submenu.menuAction().setVisible(not submenu.isEmpty()) self._addNamedActionsToMenu(menu, [ 'Repository.sendToReviewBoard', 'Repository.sendToPhabricator', ]) self._addCustomToolsSubMenu(menu, 'workbench.revdetails.custom-menu') menu.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose) menu.popup(point) def _popupPairSelectionMenu(self, point): menu = QMenu(self) self._addNamedActionsToMenu(menu, [ 'Repository.visualDiffRevisionsPair', 'Repository.exportDiff', None, 'Repository.exportRevisions', 'Repository.emailRevisions', 'Repository.copyPatch', None, 'Repository.archiveDagRangeRevisions', 'Repository.exportDagRangeRevisions', 'Repository.emailDagRangeRevisions', 'Repository.bundleDagRangeRevisions', None, 'Repository.bisectGoodBadRevisionsPair', 'Repository.bisectBadGoodRevisionsPair', 'Repository.compressRevisionsPair', 'Repository.rebaseSourceDestRevisionsPair', None, 'RepoView.goToCommonAncestor', 'RepoView.filterByRevisionsMenu', None, 'Repository.graftRevisions', None, 'Repository.pruneRevisions', None, 'Repository.sendToReviewBoard', None, 'Repository.sendToPhabricator', ]) self._addCustomToolsSubMenu(menu, 'workbench.pairselection.custom-menu') menu.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose) menu.popup(point) def _popupMultipleSelectionMenu(self, point): menu = QMenu(self) self._addNamedActionsToMenu(menu, [ 'Repository.exportRevisions', 'Repository.emailRevisions', 'Repository.copyPatch', None, 'RepoView.goToCommonAncestor', 'RepoView.filterByRevisionsMenu', None, 'Repository.graftRevisions', None, 'Repository.pruneRevisions', 'Repository.sendToReviewBoard', 'Repository.sendToPhabricator', ]) self._addCustomToolsSubMenu(menu, 'workbench.multipleselection.custom-menu') menu.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose) menu.popup(point) def _popupIncomingBundleMenu(self, point): menu = QMenu(self) self._addNamedActionsToMenu(menu, [ 'Repository.pullToRevision', 'Repository.visualDiff', ]) menu.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose) menu.popup(point) def _popupUnappliedPatchMenu(self, point): menu = QMenu(self) self._addNamedActionsToMenu(menu, [ 'PatchQueue.pushPatch', 'PatchQueue.pushExactPatch', 'PatchQueue.pushMovePatch', 'PatchQueue.foldPatches', 'PatchQueue.deletePatches', 'PatchQueue.renamePatch', None, 'PatchQueue.launchOptionsDialog', ]) menu.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose) menu.popup(point) def _createNamedAction(self, name: Text, attrs: Set[Text], exts: Optional[Set[Text]] = None, icon: Optional[Text] = None, cb: Optional[Callable] = None) -> QAction: act = QAction(self) act.setShortcutContext(Qt.ShortcutContext.WidgetWithChildrenShortcut) if icon: act.setIcon(qtlib.geticon(icon)) if cb: act.triggered.connect(cb) self._addNamedAction(name, act, attrs, exts) return act def _addNamedAction(self, name: Text, act: QAction, attrs: Set[Text], exts: Optional[Set[Text]] = None) -> None: assert name not in self._actions, name assert attrs.issubset(_KNOWN_SELECTION_ATTRS), attrs # RepoWidget actions act on revisions selected in the graph view, so # the shortcuts should not be enabled for task tabs. self.repoview.addAction(act) self._actionregistry.registerAction(name, act) if not exts: exts = set() self._actions[name] = (act, attrs, exts) def _addNamedActionsToMenu(self, menu: QMenu, names: List[Optional[Text]]) -> None: for n in names: if n: menu.addAction(self._actions[n][0]) else: menu.addSeparator() def _updateNamedActions(self): selattrs = self._selectionAttributes() enabledexts = set(map(pycompat.sysstr, self.repo.extensions())) for act, attrs, exts in self._actions.values(): act.setEnabled(attrs.issubset(selattrs)) act.setVisible(not exts or bool(exts & enabledexts)) def _addCustomToolsSubMenu(self, menu: QMenu, location: Text) -> None: tools, toollist = hglib.tortoisehgtools(self.repo.ui, selectedlocation=location) if not tools: return selattrs = self._selectionAttributes() menu.addSeparator() submenu = menu.addMenu(_('Custom Tools')) submenu.triggered.connect(self._runCustomCommandByMenu) for name in toollist: if name == '|': submenu.addSeparator() continue info = tools.get(name, None) if info is None: continue command = info.get('command', None) if not command: continue workingdir = info.get('workingdir', '') showoutput = info.get('showoutput', False) label = info.get('label', name) icon = info.get('icon', 'tools-spanner-hammer') enable = info.get('enable', 'istrue').lower() # pytype: disable=attribute-error if enable not in _CUSTOM_TOOLS_SELECTION_ATTRS: continue a = submenu.addAction(label) if icon: a.setIcon(qtlib.geticon(icon)) a.setData((command, showoutput, workingdir)) a.setEnabled(enable in selattrs) def _setUpNamedActions(self): entry = self._createNamedAction SINGLE = _SELECTION_SINGLE PAIR = _SELECTION_PAIR SOME = _SELECTION_SOME INCOMING = _SELECTION_INCOMING OUTGOING = _SELECTION_OUTGOING ISREV = _SELECTION_ISREV ISCTX = _SELECTION_ISCTX ISPATCH = _SELECTION_ISPATCH FIXED = _SELECTION_FIXED APPLIED = _SELECTION_APPLIED UNAPPLIED = _SELECTION_UNAPPLIED QFOLD = _SELECTION_QFOLD QPUSH = _SELECTION_QPUSH QPUSHMOVE = _SELECTION_QPUSHMOVE ISDRAFTORWD = _SELECTION_ISDRAFTORWD entry('Repository.pullToRevision', {SINGLE, INCOMING, ISREV}, None, 'hg-pull-to-here', self.pullBundleToRev) pushtypeicon = {'all': None, 'branch': None, 'revision': None} defaultpush = self._repoagent.configString('tortoisehg', 'defaultpush') pushtypeicon[defaultpush] = 'hg-push' entry('Repository.pushToRevision', {SINGLE, OUTGOING, ISREV}, None, pushtypeicon['revision'], self.pushToRevision) entry('Repository.pushBranch', {SINGLE, OUTGOING, ISREV}, None, pushtypeicon['branch'], self.pushBranch) entry('Repository.pushAll', {SINGLE, OUTGOING, ISREV}, None, pushtypeicon['all'], self.pushAll) # TODO: unify to Repository.update action of Workbench? entry('Repository.updateToRevision', {SINGLE, ISREV}, None, 'hg-update', self.updateToRevision) entry('Repository.visualDiff', {SINGLE, ISCTX}, None, 'visualdiff', self.visualDiffRevision) entry('Repository.visualDiffToLocal', {SINGLE, ISREV}, None, 'ldiff', self.visualDiffToLocal) # TODO: visdiff can't handle wdir dest entry('Repository.visualDiffRevisionsPair', {PAIR, ISREV}, None, 'visualdiff', self.visualDiffRevisionsPair) entry('Repository.browseRevision', {SINGLE, ISCTX}, None, 'hg-annotate', self.manifestRevision) self._addNamedAction('RepoView.filterByRevisionsMenu', self._createFilterBySelectedRevisionsMenu(), {SOME, ISREV}) entry('Repository.mergeWithRevision', {SINGLE, FIXED}, None, 'hg-merge', self.mergeWithRevision) entry('Repository.closeRevision', {SINGLE, ISREV}, {'closehead'}, 'hg-close-head', self.closeRevision) entry('Repository.tagRevision', {SINGLE, FIXED}, None, 'hg-tag', self.tagToRevision) entry('Repository.bookmarkRevision', {SINGLE, ISREV}, None, 'hg-bookmarks', self.bookmarkRevision) entry('Repository.topicRevision', {SINGLE, ISDRAFTORWD}, {'topic'}, 'topic', self.topicRevision) entry('Repository.signRevision', {SINGLE, FIXED}, {'gpg'}, 'hg-sign', self.signRevision) entry('Repository.backoutToRevision', {SINGLE, FIXED}, None, 'hg-revert', self.backoutToRevision) entry('Repository.revertToRevision', {SINGLE, ISCTX}, None, 'hg-revert', self.revertToRevision) entry('Repository.copyHash', {SINGLE, ISREV}, None, 'copy-hash', self.copyHash) entry('Repository.copyShortHash', {SINGLE, ISREV}, None, None, self.copyShortHash) entry('Repository.copyGitHash', {SINGLE, ISREV}, {'hggit'}, None, self.copyGitHash) entry('Repository.copyShortGitHash', {SINGLE, ISREV}, {'hggit'}, None, self.copyShortGitHash) entry('Repository.exportDiff', {PAIR, ISCTX}, None, 'hg-export', self.exportDiff) entry('Repository.exportRevisions', {SOME, ISREV}, None, 'hg-export', self.exportSelectedRevisions) entry('Repository.exportDagRangeRevisions', {PAIR, ISREV}, None, 'hg-export', self.exportDagRangeRevisions) entry('Repository.emailRevisions', {SOME, ISREV}, None, 'mail-forward', self.emailSelectedRevisions) entry('Repository.emailDagRangeRevisions', {PAIR, ISREV}, None, 'mail-forward', self.emailDagRangeRevisions) entry('Repository.archiveRevision', {SINGLE, ISREV}, None, 'hg-archive', self.archiveRevision) entry('Repository.archiveDagRangeRevisions', {PAIR, ISREV}, None, 'hg-archive', self.archiveDagRangeRevisions) entry('Repository.bundleRevisions', {SINGLE, ISREV}, None, 'hg-bundle', self.bundleRevisions) entry('Repository.bundleDagRangeRevisions', {PAIR, ISREV}, None, 'hg-bundle', self.bundleDagRangeRevisions) entry('Repository.copyPatch', {SOME, ISCTX}, None, 'copy-patch', self.copyPatch) entry('Repository.bisectGoodBadRevisionsPair', {PAIR, ISREV}, None, 'hg-bisect-good-bad', self.bisectGoodBadRevisionsPair) entry('Repository.bisectBadGoodRevisionsPair', {PAIR, ISREV}, None, 'hg-bisect-bad-good', self.bisectBadGoodRevisionsPair) entry('RepoView.goToCommonAncestor', {SOME, ISCTX}, None, 'hg-merge', self._gotoAncestor) submenu = QMenu(self) submenu.triggered.connect(self._changePhaseByMenu) # TODO: filter out hidden names better for pnum, pname in enumerate(phases.cmdphasenames): a = submenu.addAction(pycompat.sysstr(pname)) a.setData(pnum) self._addNamedAction('RepoView.changePhaseMenu', submenu.menuAction(), {SINGLE, ISREV}) entry('Repository.compressRevisionsPair', {PAIR, ISREV}, None, 'hg-compress', self.compressRevisionsPair) entry('Repository.graftRevisions', {SOME, ISREV}, None, 'hg-transplant', self.graftRevisions) entry('PatchQueue.popPatch', {SINGLE, APPLIED}, {'mq'}, 'hg-qgoto', self.qgotoParentRevision) entry('PatchQueue.importRevision', {SINGLE, FIXED}, {'mq'}, 'qimport', self.qimportRevision) entry('PatchQueue.finishRevision', {SINGLE, APPLIED}, {'mq'}, 'qfinish', self.qfinishRevision) entry('PatchQueue.renamePatch', {SINGLE, ISPATCH}, {'mq'}, None, self.qrename) entry('PatchQueue.pushPatch', {SINGLE, QPUSH}, {'mq'}, 'hg-qpush', self.qpushRevision) entry('PatchQueue.pushExactPatch', {SINGLE, QPUSH}, {'mq'}, None, self.qpushExactRevision) entry('PatchQueue.pushMovePatch', {SINGLE, QPUSHMOVE}, {'mq'}, None, self.qpushMoveRevision) entry('PatchQueue.foldPatches', {SOME, QFOLD}, {'mq'}, 'hg-qfold', self.qfoldPatches) entry('PatchQueue.deletePatches', {SOME, UNAPPLIED}, {'mq'}, 'hg-qdelete', self.qdeletePatches) a = entry('PatchQueue.launchOptionsDialog', set(), {'mq'}) if self._mqActions: a.triggered.connect(self._mqActions.launchOptionsDialog) entry('Repository.pickRevision', {SINGLE, ISREV}, {'evolve'}, None, self._pickRevision) entry('Repository.rebaseRevision', {SINGLE, ISREV}, {'rebase'}, 'hg-rebase', self.rebaseRevision) entry('Repository.rebaseSourceDestRevisionsPair', {PAIR, ISREV}, {'rebase'}, 'hg-rebase', self.rebaseSourceDestRevisionsPair) entry('Repository.pruneRevisions', {SOME, FIXED}, {'evolve'}, 'edit-cut', self._pruneSelected) entry('Repository.stripRevision', {SINGLE, FIXED}, {'mq', 'strip'}, 'hg-strip', self.stripRevision) entry('Repository.sendToReviewBoard', {SOME, ISREV}, {'reviewboard'}, 'reviewboard', self.sendToReviewBoard) entry('Repository.sendToPhabricator', {SOME, ISREV}, {'phabricator'}, 'phabricator', self.sendToPhabricator) @pyqtSlot() def exportDiff(self): rev0, rev1 = self._selectedIntRevisionsPair() root = self.repo.root filename = b'%s_%d_to_%d.diff' % (os.path.basename(root), rev0, rev1) file, _filter = QFileDialog.getSaveFileName( self, _('Write diff file'), hglib.tounicode(os.path.join(root, filename))) if not file: return f = QFile(file) if not f.open(QIODevice.OpenModeFlag.WriteOnly | QIODevice.OpenModeFlag.Truncate): WarningMsgBox(_('Repository Error'), _('Unable to write diff file')) return cmdline = hglib.buildcmdargs('diff', rev=[rev0, rev1]) sess = self._runCommand(cmdline) sess.setOutputDevice(f) @pyqtSlot() def exportSelectedRevisions(self): self._exportRevisions(self.repoview.selectedRevisions()) @pyqtSlot() def exportDagRangeRevisions(self): l = self._selectedDagRangeRevisions() if l: self._exportRevisions(l) def _exportRevisions(self, revisions): if not revisions: return if len(revisions) == 1: if isinstance(self.rev, int): defaultpath = os.path.join(self.repoRootPath(), '%d.patch' % self.rev) else: defaultpath = self.repoRootPath() ret, _filter = QFileDialog.getSaveFileName( self, _('Export patch'), defaultpath, _('Patch Files (*.patch)')) if not ret: return epath = ret udir = os.path.dirname(epath) custompath = True else: udir = QFileDialog.getExistingDirectory(self, _('Export patch'), hglib.tounicode(self.repo.root)) if not udir: return ename = self._repoagent.shortName() + '_%r.patch' epath = os.path.join(udir, ename) custompath = False cmdline = hglib.buildcmdargs('export', verbose=True, output=epath, rev=hglib.compactrevs(sorted(revisions))) existingRevisions = [] for rev in revisions: if custompath: path = epath else: path = epath % rev if os.path.exists(path): if os.path.isfile(path): existingRevisions.append(rev) else: QMessageBox.warning(self, _('Cannot export revision'), (_('Cannot export revision %s into the file named:' '\n\n%s\n') % (rev, epath % rev)) + \ _('There is already an existing folder ' 'with that same name.')) return if existingRevisions: buttonNames = [_("Replace"), _("Append"), _("Abort")] warningMessage = \ _('There are existing patch files for %d revisions (%s) ' 'in the selected location (%s).\n\n') \ % (len(existingRevisions), " ,".join([str(rev) for rev in existingRevisions]), udir) warningMessage += \ _('What do you want to do?\n') + u'\n' + \ u'- ' + _('Replace the existing patch files.\n') + \ u'- ' + _('Append the changes to the existing patch files.\n') + \ u'- ' + _('Abort the export operation.\n') res = qtlib.CustomPrompt(_('Patch files already exist'), warningMessage, self, buttonNames, 0, 2).run() if buttonNames[res] == _("Replace"): # Remove the existing patch files for rev in existingRevisions: if custompath: os.remove(epath) else: os.remove(epath % rev) elif buttonNames[res] == _("Abort"): return self._runCommand(cmdline) if len(revisions) == 1: # Show a message box with a link to the export folder and to the # exported file rev = revisions[0] patchfilename = os.path.normpath(epath) patchdirname = os.path.normpath(os.path.dirname(epath)) patchshortname = os.path.basename(patchfilename) if patchdirname.endswith(os.path.sep): patchdirname = patchdirname[:-1] qtlib.InfoMsgBox(_('Patch exported'), _('Revision #%d (%s) was exported to:

                                                                                                            ' '%s%s' '%s') \ % (rev, str(self.repo[rev]), patchdirname, patchdirname, os.path.sep, patchfilename, patchshortname)) else: # Show a message box with a link to the export folder qtlib.InfoMsgBox(_('Patches exported'), _('%d patches were exported to:

                                                                                                            ' '%s') \ % (len(revisions), udir, udir)) def visualDiffRevision(self): opts = dict(change=self.rev) dlg = visdiff.visualdiff(self.repo.ui, self.repo, [], opts) if dlg: dlg.exec() def visualDiffToLocal(self): if self.rev is None: return opts = dict(rev=['rev(%d)' % self.rev]) dlg = visdiff.visualdiff(self.repo.ui, self.repo, [], opts) if dlg: dlg.exec() @pyqtSlot() def visualDiffRevisionsPair(self): revA, revB = self._selectedIntRevisionsPair() dlg = visdiff.visualdiff(self.repo.ui, self.repo, [], {'rev': (str(revA), str(revB))}) if dlg: dlg.exec() @pyqtSlot() def updateToRevision(self): rev = None if isinstance(self.rev, int): rev = hglib.getrevisionlabel(self.repo, self.rev) dlg = update.UpdateDialog(self._repoagent, rev, self) r = dlg.exec() if r in (0, 1): self.gotoParent() @pyqtSlot() def lockTool(self): from .locktool import LockDialog dlg = LockDialog(self._repoagent, self) if dlg: dlg.exec() @pyqtSlot() def revertToRevision(self): if not qtlib.QuestionMsgBox( _('Confirm Revert'), _('Reverting all files will discard changes and ' 'leave affected files in a modified state.
                                                                                                            ' '
                                                                                                            Are you sure you want to use revert?

                                                                                                            ' '(use update to checkout another revision)'), parent=self): return cmdline = hglib.buildcmdargs('revert', all=True, rev=self.rev) sess = self._runCommand(cmdline) sess.commandFinished.connect(self._refreshCommitTabIfNeeded) def _createFilterBySelectedRevisionsMenu(self): menu = QMenu(_('Filter b&y'), self) menu.setIcon(qtlib.geticon('view-filter')) menu.triggered.connect(self._filterBySelectedRevisions) for t, r in [(_('&Ancestors and Descendants'), "ancestors({revs}) or descendants({revs})"), (_('A&uthor'), "matching({revs}, 'author')"), (_('&Branch'), "branch({revs})"), ]: a = menu.addAction(t) a.setData(r) menu.addSeparator() menu.addAction(_('&More Options...')) return menu.menuAction() @pyqtSlot(QAction) def _filterBySelectedRevisions(self, action): revs = hglib.compactrevs(sorted(self.repoview.selectedRevisions())) expr = action.data() if not expr: self._filterByMatchDialog(revs) return self.setFilter(expr.format(revs=revs)) def _filterByMatchDialog(self, revlist): dlg = matching.MatchDialog(self._repoagent, revlist, self) if dlg.exec(): self.setFilter(dlg.revsetexpression) def pushAll(self): self.syncDemand.forward('push', False, pushall=True) def pushToRevision(self): # Do not ask for confirmation self.syncDemand.forward('push', False, rev=self.rev) def pushBranch(self): # Do not ask for confirmation self.syncDemand.forward('push', False, branch=self.repo[self.rev].branch()) def manifestRevision(self): if QApplication.keyboardModifiers() & Qt.KeyboardModifier.ShiftModifier: self._dialogs.openNew(RepoWidget._createManifestDialog) else: dlg = self._dialogs.open(RepoWidget._createManifestDialog) dlg.setRev(self.rev) def _createManifestDialog(self): return revdetails.createManifestDialog(self._repoagent, self.rev) def mergeWithOtherHead(self): """Open dialog to merge with the other head of the current branch""" cmdline = hglib.buildcmdargs('merge', preview=True, config=r'ui.logtemplate={rev}\n') sess = self._runCommand(cmdline) sess.setCaptureOutput(True) sess.commandFinished.connect(self._onMergePreviewFinished) @pyqtSlot(int) def _onMergePreviewFinished(self, ret): sess = self.sender() if ret == 255 and 'hg heads' in sess.errorString(): # multiple heads self.filterbar.setQuery('head() - .') self.filterbar.runQuery() msg = '\n'.join(sess.errorString().splitlines()[:-1]) # drop hint w = self.setInfoBar(infobar.ConfirmInfoBar, msg) assert w w.acceptButton.setText(_('Merge')) w.accepted.connect(self.mergeWithRevision) w.finished.connect(self.clearRevisionSet) return if ret != 0: return revs = pycompat.maplist(int, bytes(sess.readAll()).splitlines()) if not revs: return self._dialogs.open(RepoWidget._createMergeDialog, revs[-1]) @pyqtSlot() def mergeWithRevision(self): # Don't use self.rev (i.e. the current revision.) This is a context # menu handler, and the menu is open for the selected rows, not for # the current row. revisions = self.repoview.selectedRevisions() if len(revisions) != 1: QMessageBox.warning(self, _('Unable to merge'), _('Please select a revision to merge.')) return rev = revisions[0] if not isinstance(rev, int): QMessageBox.warning(self, _('Unable to merge'), _('Cannot merge with a pseudo revision %r.') % rev) return pctx = self.repo[b'.'] octx = self.repo[rev] if pctx == octx: QMessageBox.warning(self, _('Unable to merge'), _('You cannot merge a revision with itself')) return self._dialogs.open(RepoWidget._createMergeDialog, rev) def _createMergeDialog(self, rev): return merge.MergeDialog(self._repoagent, rev, self) def tagToRevision(self): dlg = tag.TagDialog(self._repoagent, rev=str(self.rev), parent=self) dlg.exec() def closeRevision(self): dlg = close_branch.createCloseBranchDialog(self._repoagent, self.rev, parent=self) dlg.exec() def bookmarkRevision(self): dlg = bookmark.BookmarkDialog(self._repoagent, self.rev, self) dlg.exec() def topicRevision(self): dlg = topic.TopicDialog(self._repoagent, self.rev, self) dlg.exec() def signRevision(self): dlg = sign.SignDialog(self._repoagent, self.rev, self) dlg.exec() def graftRevisions(self): """Graft selected revision on top of working directory parent""" revlist = [] for rev in sorted(self.repoview.selectedRevisions()): revlist.append(str(rev)) if not revlist: revlist = [self.rev] dlg = graft.GraftDialog(self._repoagent, self, source=revlist) if dlg.valid: dlg.exec() def backoutToRevision(self): msg = backout.checkrev(self._repoagent.rawRepo(), self.rev) if msg: qtlib.InfoMsgBox(_('Unable to backout'), msg, parent=self) return dlg = backout.BackoutDialog(self._repoagent, self.rev, self) dlg.finished.connect(dlg.deleteLater) dlg.exec() @pyqtSlot() def _pruneSelected(self): revspec = hglib.compactrevs(sorted(self.repoview.selectedRevisions())) dlg = prune.createPruneDialog(self._repoagent, revspec, self) dlg.exec() def stripRevision(self): 'Strip the selected revision and all descendants' dlg = thgstrip.createStripDialog(self._repoagent, rev=str(self.rev), parent=self) dlg.exec() def sendToReviewBoard(self): self._dialogs.open(RepoWidget._createPostReviewDialog, tuple(self.repoview.selectedRevisions())) def _createPostReviewDialog(self, revs: Sequence[int]) -> postreview.PostReviewDialog: return postreview.PostReviewDialog(self.repo.ui, self._repoagent, revs) @pyqtSlot() def sendToPhabricator(self): self._dialogs.open(RepoWidget._createPhabReviewDialog, tuple(self.repoview.selectedRevisions())) def _createPhabReviewDialog(self, revs): return phabreview.PhabReviewDialog(self._repoagent, revs) @pyqtSlot() def emailSelectedRevisions(self): self._emailRevisions(self.repoview.selectedRevisions()) @pyqtSlot() def emailDagRangeRevisions(self): l = self._selectedDagRangeRevisions() if l: self._emailRevisions(l) def _emailRevisions(self, revs): self._dialogs.open(RepoWidget._createEmailDialog, tuple(revs)) def _createEmailDialog(self, revs): return hgemail.EmailDialog(self._repoagent, revs) def archiveRevision(self): rev = hglib.getrevisionlabel(self.repo, self.rev) dlg = archive.createArchiveDialog(self._repoagent, rev, self) dlg.exec() @pyqtSlot() def archiveDagRangeRevisions(self): l = self._selectedDagRangeRevisions() if l: self.archiveRevisions(l) def archiveRevisions(self, revs): rev = hglib.getrevisionlabel(self.repo, max(revs)) minrev = '%d' % min(revs) dlg = archive.createArchiveDialog(self._repoagent, rev=rev, minrev=minrev, parent=self) dlg.exec() @pyqtSlot() def bundleDagRangeRevisions(self): l = self._selectedDagRangeRevisions() if l: self.bundleRevisions(base=l[0], tip=l[-1]) def bundleRevisions(self, base=None, tip=None): root = self.repoRootPath() if base is None or base is False: base = self.rev data = dict(name=os.path.basename(root), base=base) if tip is None: filename = '%(name)s_%(base)s_and_descendants.hg' % data else: data.update(rev=tip) filename = '%(name)s_%(base)s_to_%(rev)s.hg' % data file, _filter = QFileDialog.getSaveFileName( self, _('Write bundle'), os.path.join(root, filename)) if not file: return cmdline = ['bundle', '--verbose'] parents = [hglib.escaperev(r.rev()) for r in self.repo[base].parents()] for p in parents: cmdline.extend(['--base', p]) if tip: cmdline.extend(['--rev', str(tip)]) else: cmdline.extend(['--rev', 'heads(descendants(%s))' % base]) cmdline.append(file) self._runCommand(cmdline) @pyqtSlot() def copyPatch(self): # patches should be in chronological order revs = sorted(self._selectedIntRevisions()) cmdline = hglib.buildcmdargs('export', rev=hglib.compactrevs(revs)) sess = self._runCommand(cmdline) sess.setCaptureOutput(True) sess.commandFinished.connect(self._copyPatchOutputToClipboard) @pyqtSlot(int) def _copyPatchOutputToClipboard(self, ret): if ret == 0: sess = self.sender() output = sess.readAll() mdata = QMimeData() mdata.setData('text/x-diff', output) # for lossless import mdata.setText(hglib.tounicode(bytes(output))) QApplication.clipboard().setMimeData(mdata) def copyHash(self): clip = QApplication.clipboard() clip.setText( hglib.tounicode(binascii.hexlify(self.repo[self.rev].node()))) def copyShortHash(self): clip = QApplication.clipboard() clip.setText( hglib.tounicode(nodemod.short(self.repo[self.rev].node()))) @pyqtSlot() def copyGitHash(self): fullGitHash = hglib.gitcommit_full(self.repo[self.rev]) if fullGitHash is None: return clip = QApplication.clipboard() clip.setText(fullGitHash) @pyqtSlot() def copyShortGitHash(self): shortGitHash = hglib.gitcommit_short(self.repo[self.rev]) if shortGitHash is None: return clip = QApplication.clipboard() clip.setText(shortGitHash) def changePhase(self, phase): currentphase = self.repo[self.rev].phase() if currentphase == phase: # There is nothing to do, we are already in the target phase return phasestr = pycompat.sysstr(phases.phasenames[phase]) cmdline = ['phase', '--rev', '%s' % self.rev, '--%s' % phasestr] if currentphase < phase: # Ask the user if he wants to force the transition title = _('Backwards phase change requested') if currentphase == phases.draft and phase == phases.secret: # Here we are sure that the current phase is draft and the target phase is secret # Nevertheless we will not hard-code those phase names on the dialog strings to # make sure that the proper phase name translations are used main = _('Do you really want to make this revision secret?') text = _('Making a "draft" revision "secret" ' 'is generally a safe operation.\n\n' 'However, there are a few caveats:\n\n' '- "secret" revisions are not pushed. ' 'This can cause you trouble if you\n' 'refer to a secret subrepo revision.\n\n' '- If you pulled this revision from ' 'a non publishing server it may be\n' 'moved back to "draft" if you pull ' 'again from that particular server.\n\n' 'Please be careful!') labels = ((QMessageBox.StandardButton.Yes, _('&Make secret')), (QMessageBox.StandardButton.No, _('&Cancel'))) else: currentphasestr = pycompat.sysstr( phases.phasenames[currentphase]) main = _('Do you really want to force a backwards phase transition?') text = _('You are trying to move the phase of revision %d backwards,\n' 'from "%s" to "%s".\n\n' 'However, "%s" is a lower phase level than "%s".\n\n' 'Moving the phase backwards is not recommended.\n' 'For example, it may result in having multiple heads\nif you ' 'modify a revision that you have already pushed\nto a server.\n\n' 'Please be careful!') % (self.rev, currentphasestr, phasestr, phasestr, currentphasestr) labels = ((QMessageBox.StandardButton.Yes, _('&Force')), (QMessageBox.StandardButton.No, _('&Cancel'))) if not qtlib.QuestionMsgBox(title, main, text, labels=labels, parent=self): return cmdline.append('--force') self._runCommand(cmdline) @pyqtSlot(QAction) def _changePhaseByMenu(self, action): phasenum = action.data() self.changePhase(phasenum) @pyqtSlot() def compressRevisionsPair(self): reva, revb = self._selectedIntRevisionsPair() ctxa, ctxb = map(self.repo.hgchangectx, [reva, revb]) if ctxa.ancestor(ctxb).rev() == ctxb.rev(): revs = [reva, revb] elif ctxa.ancestor(ctxb).rev() == ctxa.rev(): revs = [revb, reva] else: InfoMsgBox(_('Unable to compress history'), _('Selected changeset pair not related')) return dlg = compress.CompressDialog(self._repoagent, revs, self) dlg.exec() def _pickRevision(self): """Pick selected revision on top of working directory parent""" opts = {'rev': self.rev} dlg = pick.PickDialog(self._repoagent, self, **opts) dlg.exec() def rebaseRevision(self): """Rebase selected revision on top of working directory parent""" opts = {'source' : self.rev, 'dest': self.repo[b'.'].rev()} dlg = rebase.RebaseDialog(self._repoagent, self, **opts) dlg.exec() @pyqtSlot() def rebaseSourceDestRevisionsPair(self): source, dest = self._selectedIntRevisionsPair() dlg = rebase.RebaseDialog(self._repoagent, self, source=source, dest=dest) dlg.exec() def qimportRevision(self): """QImport revision and all descendents to MQ""" if b'qparent' in self.repo.tags(): endrev = b'qparent' else: endrev = b'' # Check whether there are existing patches in the MQ queue whose name # collides with the revisions that are going to be imported revList = self.repo.revs(b'%s::%s and not hidden()' % (hglib.fromunicode(str(self.rev)), endrev)) if endrev and not revList: # There is a qparent but the revision list is empty # This means that the qparent is not a descendant of the # selected revision QMessageBox.warning(self, _('Cannot import selected revision'), _('The selected revision (rev #%d) cannot be imported ' 'because it is not a descendant of ''qparent'' (rev #%d)') \ % (self.rev, hglib.revsymbol(self.repo, b'qparent').rev())) return patchdir = hglib.tounicode(self.repo.vfs.join(b'patches')) def patchExists(p): return os.path.exists(os.path.join(patchdir, p)) # Note that the following two arrays are both ordered by "rev" defaultPatchNames = ['%d.diff' % rev for rev in revList] defaultPatchesExist = [patchExists(p) for p in defaultPatchNames] if any(defaultPatchesExist): # We will qimport each revision one by one, starting from the newest # To do so, we will find a valid and unique patch name for each # revision that we must qimport (i.e. a filename that does not # already exist) # and then we will import them one by one starting from the newest # one, using these unique names def getUniquePatchName(baseName): maxRetries = 99 for n in range(1, maxRetries): patchName = baseName + '_%02d.diff' % n if not patchExists(patchName): return patchName return baseName patchNames = {} for n, rev in enumerate(revList): if defaultPatchesExist[n]: patchNames[rev] = getUniquePatchName(str(rev)) else: # The default name is safe patchNames[rev] = defaultPatchNames[n] # qimport each revision individually, starting from the topmost one revList.reverse() cmdlines = [] for rev in revList: cmdlines.append(['qimport', '--rev', '%s' % rev, '--name', patchNames[rev]]) self._runCommandSequence(cmdlines) else: # There were no collisions with existing patch names, we can # simply qimport the whole revision set in a single go cmdline = ['qimport', '--rev', '%s::%s' % (self.rev, hglib.tounicode(endrev))] self._runCommand(cmdline) def qfinishRevision(self): """Finish applied patches up to and including selected revision""" self._mqActions.finishRevision(str(self.rev)) @pyqtSlot() def qgotoParentRevision(self): """Apply an unapplied patch, or qgoto the parent of an applied patch""" self.qgotoRevision(self.repo[self.rev].p1().rev()) @pyqtSlot() def qgotoSelectedRevision(self): self.qgotoRevision(self.rev) def qgotoRevision(self, rev): """Make REV the top applied patch""" mqw = self._mqActions ctx = self.repo[rev] if b'qparent' in ctx.tags(): mqw.popAllPatches() else: mqw.gotoPatch(hglib.tounicode(ctx.thgmqpatchname())) @pyqtSlot() def qdeletePatches(self): """Delete unapplied patch(es)""" patches = self._selectedUnappliedPatches() self._mqActions.deletePatches(patches) @pyqtSlot() def qfoldPatches(self): patches = self._selectedUnappliedPatches() self._mqActions.foldPatches(patches) def qrename(self): patches = self._selectedUnappliedPatches() revs = self._selectedIntRevisions() if patches: pname = patches[0] elif revs: pname = hglib.tounicode(self.repo[revs[0]].thgmqpatchname()) else: return self._mqActions.renamePatch(pname) def _qpushRevision(self, move=False, exact=False): """QPush REV with the selected options""" ctx = self.repo[self.rev] patchname = hglib.tounicode(ctx.thgmqpatchname()) self._mqActions.pushPatch(patchname, move=move, exact=exact) def qpushRevision(self): """Call qpush with no options""" self._qpushRevision(move=False, exact=False) def qpushExactRevision(self): """Call qpush using the exact flag""" self._qpushRevision(exact=True) def qpushMoveRevision(self): """Make REV the top applied patch""" self._qpushRevision(move=True) def runCustomCommand(self, command: Text, showoutput: bool = False, workingdir: Text = '', files: Optional[List[Text]] = None) -> Optional[Union[int, subprocess.Popen]]: """Execute 'custom commands', on the selected repository""" # Perform variable expansion # This is done in two steps: # 1. Expand environment variables command = os.path.expandvars(command).strip() if not command: InfoMsgBox(_('Invalid command'), _('The selected command is empty')) return if workingdir: workingdir = os.path.expandvars(workingdir).strip() # 2. Expand internal workbench variables def filelist2str(filelist: List[Text]) -> Text: return hglib.tounicode(b' '.join( procutil.shellquote( os.path.normpath(self.repo.wjoin(hglib.fromunicode(filename)))) for filename in filelist )) if files is None: files = [] selection = self.repoview.selectedRevisions() def selectionfiles2str(source: Text) -> Text: files = set() for rev in selection: files.update( hglib.tounicode(f) for f in getattr(self.repo[rev], source)() ) return filelist2str(sorted(files)) vars = { 'ROOT': lambda: hglib.tounicode(self.repo.root), 'REVID': lambda: '+'.join(str(self.repo[rev]) for rev in selection), 'REV': lambda: '+'.join(str(rev) for rev in selection), 'FILES': lambda: selectionfiles2str('files'), 'ALLFILES': lambda: selectionfiles2str('manifest'), 'SELECTEDFILES': lambda: filelist2str(files), } if len(selection) == 2: pairvars = { 'REV_A': lambda: selection[0], 'REV_B': lambda: selection[1], 'REVID_A': lambda: str(self.repo[selection[0]]), 'REVID_B': lambda: str(self.repo[selection[1]]), } vars.update(pairvars) for var in vars: bracedvar = '{%s}' % var if bracedvar in command: command = command.replace(bracedvar, str(vars[var]())) if workingdir and bracedvar in workingdir: workingdir = workingdir.replace(bracedvar, str(vars[var]())) if not workingdir: workingdir = hglib.tounicode(self.repo.root) # Show the Output Log if configured to do so if showoutput: self.makeLogVisible.emit(True) # If the user wants to run mercurial, # do so via our usual runCommand method cmd = shlex.split(command) cmdtype = cmd[0].lower() if cmdtype == 'hg': sess = self._runCommand(pycompat.maplist(hglib.tounicode, cmd[1:])) sess.commandFinished.connect(self._notifyWorkingDirChanges) return elif cmdtype == 'thg': cmd = cmd[1:] if '--repository' in cmd: _ui = hglib.loadui() else: cmd += ['--repository', self.repo.root] _ui = self.repo.ui.copy() _ui.ferr = util.bytesio() # avoid circular import of hgqt.run by importing it inplace from . import run cmdb = [] for part in cmd: if isinstance(part, str): cmdb.append(hglib.fromunicode(part)) else: cmdb.append(part) res = run.dispatch(cmdb, u=_ui) if res: errormsg = _ui.ferr.getvalue().strip() if errormsg: errormsg = \ _('The following error message was returned:' '\n\n%s') % hglib.tounicode(errormsg) errormsg +=\ _('\n\nPlease check that the "thg" command is valid.') qtlib.ErrorMsgBox( _('Failed to execute custom TortoiseHg command'), _('The command "%s" failed (code %d).') % (hglib.tounicode(command), res), errormsg) return res # Otherwise, run the selected command in the background try: res = subprocess.Popen(command, cwd=workingdir, shell=True) except OSError as ex: res = 1 qtlib.ErrorMsgBox(_('Failed to execute custom command'), _('The command "%s" could not be executed.') % hglib.tounicode(command), _('The following error message was returned:\n\n"%s"\n\n' 'Please check that the command path is valid and ' 'that it is a valid application') % hglib.tounicode(ex.strerror)) return res @pyqtSlot(QAction) def _runCustomCommandByMenu(self, action): command, showoutput, workingdir = action.data() self.runCustomCommand(command, showoutput, workingdir) @pyqtSlot(str, list) def handleRunCustomCommandRequest( self, toolname: str, files: List[str] ) -> None: tools, toollist = hglib.tortoisehgtools(self.repo.ui) if not tools or toolname not in toollist: return command = tools[toolname].get('command', '') showoutput = tools[toolname].get('showoutput', False) workingdir = tools[toolname].get('workingdir', '') self.runCustomCommand(command, showoutput, workingdir, files) def _runCommand(self, cmdline): sess = self._repoagent.runCommand(cmdline, self) self._handleNewCommand(sess) return sess def _runCommandSequence(self, cmdlines): sess = self._repoagent.runCommandSequence(cmdlines, self) self._handleNewCommand(sess) return sess def _handleNewCommand(self, sess): self.clearInfoBar() sess.outputReceived.connect(self._repoviewFrame.showOutput) @pyqtSlot() def _notifyWorkingDirChanges(self): shlib.shell_notify([self.repo.root]) @pyqtSlot() def _refreshCommitTabIfNeeded(self): """Refresh the Commit tab if the user settings require it""" if self.taskTabsWidget.currentIndex() != self._namedTabs['commit']: return refreshwd = self._repoagent.configString( 'tortoisehg', 'refreshwdstatus') # Valid refreshwd values are 'auto', 'always' and 'alwayslocal' if refreshwd != 'auto': if refreshwd == 'always' \ or paths.is_on_fixed_drive(self.repo.root): self.commitDemand.forward('refreshWctx') class LightRepoWindow(QMainWindow): def __init__(self, actionregistry, repoagent): super(LightRepoWindow, self).__init__() self._repoagent = repoagent self.setIconSize(qtlib.smallIconSize()) repo = repoagent.rawRepo() val = repo.ui.config(b'tortoisehg', b'tasktabs').lower() if val not in (b'east', b'west'): repo.ui.setconfig(b'tortoisehg', b'tasktabs', b'east') rw = RepoWidget(actionregistry, repoagent, self) self.setCentralWidget(rw) self._edittbar = tbar = self.addToolBar(_('&Edit Toolbar')) tbar.setObjectName('edittbar') a = tbar.addAction(qtlib.geticon('view-refresh'), _('&Refresh')) a.setShortcuts(QKeySequence.StandardKey.Refresh) a.triggered.connect(self.refresh) tbar = rw.filterBar() tbar.setObjectName('filterbar') tbar.setWindowTitle(_('&Filter Toolbar')) self.addToolBar(tbar) stbar = cmdui.ThgStatusBar(self) repoagent.progressReceived.connect(stbar.setProgress) rw.showMessageSignal.connect(stbar.showMessage) rw.progress.connect(stbar.progress) self.setStatusBar(stbar) s = QSettings() s.beginGroup('LightRepoWindow') self.restoreGeometry(qtlib.readByteArray(s, 'geometry')) self.restoreState(qtlib.readByteArray(s, 'windowState')) stbar.setVisible(qtlib.readBool(s, 'statusBar', True)) s.endGroup() self.setWindowTitle(_('TortoiseHg: %s') % repoagent.displayName()) def createPopupMenu(self): menu = super(LightRepoWindow, self).createPopupMenu() assert menu # should have toolbar stbar = self.statusBar() a = menu.addAction(_('S&tatus Bar')) a.setCheckable(True) a.setChecked(stbar.isVisibleTo(self)) a.triggered.connect(stbar.setVisible) menu.addSeparator() menu.addAction(_('&Settings'), self._editSettings) return menu def closeEvent(self, event): rw = self.centralWidget() if not rw.closeRepoWidget(): event.ignore() return s = QSettings() s.beginGroup('LightRepoWindow') s.setValue('geometry', self.saveGeometry()) s.setValue('windowState', self.saveState()) s.setValue('statusBar', self.statusBar().isVisibleTo(self)) s.endGroup() event.accept() @pyqtSlot() def refresh(self): self._repoagent.pollStatus() rw = self.centralWidget() rw.reload() def setSyncUrl(self, url): rw = self.centralWidget() rw.setSyncUrl(url) @pyqtSlot() def _editSettings(self): dlg = settings.SettingsDialog(parent=self) dlg.exec() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1736945585.0 tortoisehg-6.9/tortoisehg/hgqt/resolve.py0000644000000000000000000005015414741727661017524 0ustar00rootroot# resolve.py - TortoiseHg merge conflict resolve # # Copyright 2010 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os from .qtcore import ( QAbstractTableModel, QItemSelectionModel, QMimeData, QModelIndex, QPoint, QSettings, QUrl, Qt, pyqtSlot, ) from .qtgui import ( QAction, QActionGroup, QComboBox, QDialog, QDialogButtonBox, QHBoxLayout, QKeySequence, QLabel, QMenu, QMessageBox, QToolButton, QTreeView, QVBoxLayout, ) from mercurial import ( encoding, pycompat, ) from ..util import hglib from ..util.i18n import _ from . import ( cmdcore, cmdui, csinfo, qtlib, thgrepo, visdiff, ) if hglib.TYPE_CHECKING: from typing import ( List, Optional, Text, Tuple, ) from .qtgui import ( QWidget, ) from ..util.typelib import ( Qt_ItemFlags, ) MARGINS = (8, 0, 0, 0) class ResolveDialog(QDialog): def __init__(self, repoagent, parent=None): super(ResolveDialog, self).__init__(parent) self._repoagent = repoagent self._cmdsession = cmdcore.nullCmdSession() self.setWindowFlags(self.windowFlags() & ~Qt.WindowType.WindowContextHelpButtonHint | Qt.WindowType.WindowMaximizeButtonHint) self.setWindowTitle(_('Resolve Conflicts - %s') % repoagent.displayName()) self.setWindowIcon(qtlib.geticon('hg-merge')) self.setLayout(QVBoxLayout()) self.layout().setSpacing(5) self.mergeState = hglib.readmergestate(self.repo) hbox = QHBoxLayout() self.layout().addLayout(hbox) self.refreshButton = tb = QToolButton(self) tb.setIcon(qtlib.geticon('view-refresh')) tb.setShortcut(QKeySequence.StandardKey.Refresh) tb.clicked.connect(self.refresh) self.stlabel = QLabel() hbox.addWidget(tb) hbox.addWidget(self.stlabel) def revisionInfoLayout(repo): """ Return a layout containg the revision information (local and other) """ hbox = QHBoxLayout() hbox.setSpacing(0) hbox.setContentsMargins(*MARGINS) vbox = QVBoxLayout() vbox.setContentsMargins(*MARGINS) hbox.addLayout(vbox) localrevtitle = qtlib.LabeledSeparator(_('Local revision ' 'information')) localrevinfo = csinfo.create(repo) localrevinfo.updateItems(self.mergeState.localctx) vbox.addWidget(localrevtitle) vbox.addWidget(localrevinfo) vbox.addStretch() vbox = QVBoxLayout() vbox.setContentsMargins(*MARGINS) hbox.addLayout(vbox) otherrevtitle = qtlib.LabeledSeparator(_('Other revision ' 'information')) otherrevinfo = csinfo.create(repo) otherrevinfo.updateItems(self.mergeState.otherctx) vbox.addWidget(otherrevtitle) vbox.addWidget(otherrevinfo) vbox.addStretch() return hbox if self.mergeState.active(): self.layout().addLayout(revisionInfoLayout(self.repo)) unres = qtlib.LabeledSeparator(_('Unresolved conflicts')) self.layout().addWidget(unres) hbox = QHBoxLayout() hbox.setSpacing(0) hbox.setContentsMargins(*MARGINS) self.layout().addLayout(hbox) self.utree = QTreeView(self) self.utree.setDragDropMode(QTreeView.DragDropMode.DragOnly) self.utree.setSelectionMode(QTreeView.SelectionMode.ExtendedSelection) self.utree.setSortingEnabled(True) hbox.addWidget(self.utree) self.utree.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) self.utreecmenu = QMenu(self) mergeactions = QActionGroup(self) mergeactions.triggered.connect(self._mergeByAction) cmauto = self.utreecmenu.addAction(_('Mercurial Re&solve')) cmauto.setToolTip(_('Attempt automatic (trivial) merge')) cmauto.setData('internal:merge') mergeactions.addAction(cmauto) cmmanual = self.utreecmenu.addAction(_('Tool &Resolve')) cmmanual.setToolTip(_('Merge using selected merge tool')) mergeactions.addAction(cmmanual) cmlocal = self.utreecmenu.addAction(_('&Take Local')) cmlocal.setToolTip(_('Accept the local file version (yours)')) cmlocal.setData('internal:local') mergeactions.addAction(cmlocal) cmother = self.utreecmenu.addAction(_('Take &Other')) cmother.setToolTip(_('Accept the other file version (theirs)')) cmother.setData('internal:other') mergeactions.addAction(cmother) cmres = self.utreecmenu.addAction(_('&Mark as Resolved')) cmres.setToolTip(_('Mark this file as resolved')) cmres.triggered.connect(self.markresolved) self.utreecmenu.addSeparator() cmdiffLocToAnc = self.utreecmenu.addAction(_('Diff &Local to Ancestor')) cmdiffLocToAnc.triggered.connect(self.diffLocToAnc) cmdiffOthToAnc = self.utreecmenu.addAction(_('&Diff Other to Ancestor')) cmdiffOthToAnc.triggered.connect(self.diffOthToAnc) self.umenuitems = (cmauto, cmmanual, cmlocal, cmother, cmres, cmdiffLocToAnc, cmdiffOthToAnc) self.utree.customContextMenuRequested.connect(self.utreeMenuRequested) self.utree.doubleClicked.connect(self.utreeDoubleClicked) vbox = QVBoxLayout() vbox.setContentsMargins(*MARGINS) hbox.addLayout(vbox) for action in [cmauto, cmmanual, cmlocal, cmother, cmres]: vbox.addWidget(qtlib.ActionPushButton(action, self)) vbox.addStretch(1) res = qtlib.LabeledSeparator(_('Resolved conflicts')) self.layout().addWidget(res) hbox = QHBoxLayout() hbox.setContentsMargins(*MARGINS) hbox.setSpacing(0) self.layout().addLayout(hbox) self.rtree = QTreeView(self) self.rtree.setDragDropMode(QTreeView.DragDropMode.DragOnly) self.rtree.setSelectionMode(QTreeView.SelectionMode.ExtendedSelection) self.rtree.setSortingEnabled(True) hbox.addWidget(self.rtree) self.rtree.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) self.rtreecmenu = QMenu(self) cmedit = self.rtreecmenu.addAction(_('&Edit File')) cmedit.setToolTip(_('Edit resolved file')) cmedit.triggered.connect(self.edit) cmv3way = self.rtreecmenu.addAction(_('3-&Way Diff')) cmv3way.setToolTip(_('Visual three-way diff')) cmv3way.triggered.connect(self.v3way) cmvp0 = self.rtreecmenu.addAction(_('Diff to &Local')) cmvp0.setToolTip(_('Visual diff between resolved file and first ' 'parent')) cmvp0.triggered.connect(self.vp0) cmvp1 = self.rtreecmenu.addAction(_('&Diff to Other')) cmvp1.setToolTip(_('Visual diff between resolved file and second ' 'parent')) cmvp1.triggered.connect(self.vp1) cmures = self.rtreecmenu.addAction(_('Mark as &Unresolved')) cmures.setToolTip(_('Mark this file as unresolved')) cmures.triggered.connect(self.markunresolved) self.rmenuitems = (cmedit, cmvp0, cmures) self.rmmenuitems = (cmvp1, cmv3way) self.rtree.customContextMenuRequested.connect(self.rtreeMenuRequested) self.rtree.doubleClicked.connect(self.v3way) vbox = QVBoxLayout() vbox.setContentsMargins(*MARGINS) hbox.addLayout(vbox) for action in [cmedit, cmv3way, cmvp0, cmvp1, cmures]: vbox.addWidget(qtlib.ActionPushButton(action, self)) vbox.addStretch(1) hbox = QHBoxLayout() hbox.setContentsMargins(*MARGINS) hbox.setSpacing(4) self.layout().addLayout(hbox) self.tcombo = ToolsCombo(self.repo, self) self.tcombo.setSizeAdjustPolicy(QComboBox.SizeAdjustPolicy.AdjustToContents) hbox.addWidget(QLabel(_('Detected merge/diff tools:'))) hbox.addWidget(self.tcombo) hbox.addStretch(1) out = qtlib.LabeledSeparator(_('Command output')) self.layout().addWidget(out) self._cmdlog = cmdui.LogWidget(self) self.layout().addWidget(self._cmdlog) bbox = QDialogButtonBox(QDialogButtonBox.StandardButton.Close) bbox.rejected.connect(self.reject) self.layout().addWidget(bbox) self.bbox = bbox s = QSettings() self.restoreGeometry(qtlib.readByteArray(s, 'resolve/geom')) self.refresh() self.utree.selectAll() self.utree.setFocus() repoagent.configChanged.connect(self.tcombo.reset) repoagent.repositoryChanged.connect(self.refresh) @property def repo(self): return self._repoagent.rawRepo() def getSelectedPaths(self, tree: QTreeView) -> List[Tuple[bytes, bytes]]: paths = [] if not tree.selectionModel(): return paths model = tree.model() assert isinstance(model, PathsModel) # help pytype for idx in tree.selectionModel().selectedRows(): root, wfile = model.getPathForIndex(idx) paths.append((root, wfile)) return paths def runCommand(self, tree: QTreeView, cmdline: List[Text]) -> None: cmdlines = [] selected = self.getSelectedPaths(tree) while selected: curroot = selected[0][0] cmd = cmdline + ['--repository', curroot, '--'] for root, wfile in selected: if root == curroot: cmd.append(os.path.normpath(os.path.join(root, wfile))) cmdlines.append(pycompat.maplist(hglib.tounicode, cmd)) selected = [(r, w) for r, w in selected if r != curroot] if cmdlines: sess = self._repoagent.runCommandSequence(cmdlines, self) self._cmdsession = sess sess.commandFinished.connect(self.refresh) sess.outputReceived.connect(self._cmdlog.appendLog) self._updateActions() def merge(self, tool=''): if not tool: tool = self.tcombo.readValue() if tool: tool = encoding.strfromlocal(tool) cmd = ['resolve'] if tool: cmd += ['--tool=' + tool] self.runCommand(self.utree, cmd) @pyqtSlot(QAction) def _mergeByAction(self, action): self.merge(action.data()) def markresolved(self): self.runCommand(self.utree, ['resolve', '--mark']) def markunresolved(self): self.runCommand(self.rtree, ['resolve', '--unmark']) def edit(self): paths = self.getSelectedPaths(self.rtree) if paths: abspaths = [os.path.join(r, w) for r, w in paths] qtlib.editfiles(self.repo, abspaths, parent=self) def getVdiffFiles(self, tree: QTreeView) -> List[bytes]: paths = self.getSelectedPaths(tree) if not paths: return [] files, sub = [], False for root, wfile in paths: if root == self.repo.root: files.append(wfile) else: sub = True if sub: qtlib.InfoMsgBox(_('Unable to show subrepository files'), _('Visual diffs are not supported for files in ' 'subrepositories. They will not be shown.')) return files def v3way(self): paths = self.getVdiffFiles(self.rtree) if paths: p1 = self.mergeState.localctx p2 = self.mergeState.otherctx dlg = visdiff.visual_diff(self.repo.ui, self.repo, paths, p1, p2, self.repo[None], self.tcombo.readValue()) if dlg: dlg.exec() def vp0(self): paths = self.getVdiffFiles(self.rtree) if paths: p1 = self.mergeState.localctx dlg = visdiff.visual_diff(self.repo.ui, self.repo, paths, p1, None, self.repo[None], self.tcombo.readValue()) if dlg: dlg.exec() def vp1(self): paths = self.getVdiffFiles(self.rtree) if paths: p2 = self.mergeState.otherctx dlg = visdiff.visual_diff(self.repo.ui, self.repo, paths, p2, None, self.repo[None], self.tcombo.readValue()) if dlg: dlg.exec() def diffLocToAnc(self): paths = self.getVdiffFiles(self.utree) if paths: p1 = self.mergeState.localctx.hex() p2 = self.mergeState.otherctx.hex() revs = hglib.tounicode(b'ancestor(%s,%s)..%s' % (p1, p2, p1)) opts = {'rev': [revs], 'tool': self.tcombo.readValue()} dlg = visdiff.visualdiff(self.repo.ui, self.repo, paths, opts) if dlg: dlg.exec() def diffOthToAnc(self): paths = self.getVdiffFiles(self.utree) if paths: p1 = self.mergeState.localctx.hex() p2 = self.mergeState.otherctx.hex() revs = hglib.tounicode(b'ancestor(%s,%s)..%s' % (p1, p2, p2)) opts = {'rev': [revs], 'tool': self.tcombo.readValue()} dlg = visdiff.visualdiff(self.repo.ui, self.repo, paths, opts) if dlg: dlg.exec() @pyqtSlot() def refresh(self): u, r = [], [] for root, path, status in thgrepo.recursiveMergeStatus(self.repo): if status == b'u': u.append((root, path)) else: r.append((root, path)) self.mergeState = hglib.readmergestate(self.repo) paths = self.getSelectedPaths(self.utree) oldmodel = self.utree.model() self.utree.setModel(PathsModel(u, self)) self.utree.resizeColumnToContents(0) self.utree.resizeColumnToContents(1) if oldmodel: oldmodel.setParent(None) # gc-ed model = self.utree.model() smodel = self.utree.selectionModel() assert model is not None sflags = QItemSelectionModel.SelectionFlag.Select | QItemSelectionModel.SelectionFlag.Rows for i, path in enumerate(u): if path in paths: smodel.select(model.index(i, 0), sflags) smodel.selectionChanged.connect(self._updateUnresolvedActions) self._updateUnresolvedActions() paths = self.getSelectedPaths(self.rtree) oldmodel = self.rtree.model() self.rtree.setModel(PathsModel(r, self)) self.rtree.resizeColumnToContents(0) self.rtree.resizeColumnToContents(1) if oldmodel: oldmodel.setParent(None) # gc-ed model = self.rtree.model() smodel = self.rtree.selectionModel() assert model is not None for i, path in enumerate(r): if path in paths: smodel.select(model.index(i, 0), sflags) smodel.selectionChanged.connect(self._updateResolvedActions) self._updateResolvedActions() if u: txt = _('There are merge conflicts to be resolved') elif r: txt = _('All conflicts are resolved.') else: txt = _('There are no conflicting file merges.') self.stlabel.setText(u'

                                                                                                            ' + txt + u'

                                                                                                            ') def reject(self): s = QSettings() s.setValue('resolve/geom', self.saveGeometry()) model = self.utree.model() assert model is not None if model.rowCount() > 0: main = _('Exit without finishing resolve?') text = _('Unresolved conflicts remain. Are you sure?') labels = ((QMessageBox.StandardButton.Yes, _('E&xit')), (QMessageBox.StandardButton.No, _('Cancel'))) if not qtlib.QuestionMsgBox(_('Confirm Exit'), main, text, labels=labels, parent=self): return super(ResolveDialog, self).reject() def _updateActions(self): self._updateUnresolvedActions() self._updateResolvedActions() @pyqtSlot() def _updateUnresolvedActions(self): enable = (self.utree.selectionModel().hasSelection() and self._cmdsession.isFinished()) for c in self.umenuitems: c.setEnabled(enable) @pyqtSlot() def _updateResolvedActions(self): enable = (self.rtree.selectionModel().hasSelection() and self._cmdsession.isFinished()) for c in self.rmenuitems: c.setEnabled(enable) for c in self.rmmenuitems: c.setEnabled(enable and self.mergeState.active()) @pyqtSlot(QPoint) def utreeMenuRequested(self, point: QPoint) -> None: self.utreecmenu.popup(self.utree.viewport().mapToGlobal(point)) @pyqtSlot(QPoint) def rtreeMenuRequested(self, point: QPoint) -> None: self.rtreecmenu.popup(self.rtree.viewport().mapToGlobal(point)) def utreeDoubleClicked(self): if self._repoagent.configBool('tortoisehg', 'autoresolve', True): self.merge() else: self.merge('internal:merge') class PathsModel(QAbstractTableModel): rows: List[Tuple[bytes, bytes, bytes]] def __init__(self, pathlist: List[Tuple[bytes, bytes]], parent: Optional[QWidget]) -> None: QAbstractTableModel.__init__(self, parent) self.headers = (_('Path'), _('Ext'), _('Repository')) self.rows = [] for root, path in pathlist: name, ext = os.path.splitext(path) self.rows.append((path, ext, root)) def rowCount(self, parent: QModelIndex = QModelIndex()) -> int: if parent.isValid(): return 0 # no child return len(self.rows) def columnCount(self, parent: QModelIndex = QModelIndex()) -> int: if parent.isValid(): return 0 # no child return len(self.headers) def data(self, index: QModelIndex, role: int = Qt.ItemDataRole.DisplayRole) -> Optional[Text]: if not index.isValid(): return None if role == Qt.ItemDataRole.DisplayRole: data = self.rows[index.row()][index.column()] return hglib.tounicode(data) return None def flags(self, index: QModelIndex) -> Qt_ItemFlags: flags = super(PathsModel, self).flags(index) if not index.isValid(): return flags flags |= Qt.ItemFlag.ItemIsDragEnabled return flags def headerData(self, col: int, orientation: int, role: int = Qt.ItemDataRole.DisplayRole) -> Optional[Text]: if role != Qt.ItemDataRole.DisplayRole or orientation != Qt.Orientation.Horizontal: return None else: return self.headers[col] def getPathForIndex(self, index: QModelIndex) -> Tuple[bytes, bytes]: 'return root, wfile for the given row' row = index.row() return self.rows[row][2], self.rows[row][0] def mimeTypes(self) -> List[Text]: return ['text/uri-list'] def mimeData(self, indexes: List[QModelIndex]) -> QMimeData: paths = [hglib.tounicode(os.path.join(*self.getPathForIndex(i))) for i in indexes if i.column() == 0] data = QMimeData() data.setUrls([QUrl.fromLocalFile(p) for p in paths]) return data class ToolsCombo(QComboBox): def __init__(self, repo, parent): QComboBox.__init__(self, parent) self.setEditable(False) self.default = _('') self.repo = repo self.reset() @pyqtSlot() def reset(self): self.clear() self.addItem(self.default) for t in self.repo.mergetools: self.addItem(hglib.tounicode(t)) def readValue(self) -> Optional[bytes]: text = self.currentText() if text != self.default: return hglib.fromunicode(text) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1736945585.0 tortoisehg-6.9/tortoisehg/hgqt/revdetails.py0000644000000000000000000006075714741727661020221 0ustar00rootroot# revdetails.py - TortoiseHg revision details widget # # Copyright (C) 2007-2010 Logilab. All rights reserved. # Copyright (C) 2010 Adrian Buehlmann # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os from mercurial import ( error, scmutil, ) from .qtcore import ( QEvent, QPoint, QSettings, QSize, QTimer, QUrl, Qt, pyqtSignal, pyqtSlot, ) from .qtgui import ( QAction, QActionGroup, QDesktopServices, QDialog, QFrame, QKeySequence, QLayout, QLineEdit, QMenu, QSizePolicy, QSplitter, QStyleFactory, QTextBrowser, QTextEdit, QToolBar, QToolButton, QVBoxLayout, QWidget, ) from mercurial import ( pycompat, ) from ..util import hglib from ..util.i18n import _ from . import ( cmdui, filectxactions, manifestmodel, qtlib, status, ) from .filelistview import HgFileListView from .fileview import HgFileView from .revpanel import RevPanelWidget _fileactionsbytype = { 'subrepo': ['openSubrepo', 'explore', 'terminal', 'copyPath', 'copyRelativePath', None, 'revertFile'], 'file': ['visualDiffFile', 'visualDiffFileToLocal', None, 'editFile', 'openFile', 'saveFile', None, 'editLocalFile', 'openLocalFile', 'exploreLocalFile', 'copyPath', 'copyRelativePath', None, 'revertFile', None, 'navigateFileLog', 'navigateFileDiff', 'filterFile'], 'dir': ['visualDiffFile', 'visualDiffFileToLocal', None, 'revertFile', None, 'filterFile', None, 'explore', 'terminal', 'copyPath', 'copyRelativePath'], } class RevDetailsWidget(QWidget, qtlib.TaskWidget): showMessage = pyqtSignal(str) linkActivated = pyqtSignal(str) grepRequested = pyqtSignal(str, dict) revisionSelected = pyqtSignal(int) revsetFilterRequested = pyqtSignal(str) runCustomCommandRequested = pyqtSignal(str, list) def __init__(self, repoagent, parent, rev=None): QWidget.__init__(self, parent) self._repoagent = repoagent repo = repoagent.rawRepo() self.ctx = repo[rev] self.splitternames = [] self.setupUi() self.createActions() self.setupModels() self.filelist.installEventFilter(self) self.filefilter.installEventFilter(self) self._deschtmlize = qtlib.descriptionhtmlizer(repo.ui) repoagent.configChanged.connect(self._updatedeschtmlizer) repoagent.repositoryChanged.connect(self.reload) @property def repo(self): return self._repoagent.rawRepo() def setupUi(self): self.setSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Expanding) # + basevbox -------------------------------------------------------+ # |+ filelistsplit ........ | # | + filelistframe (vbox) | + panelframe (vbox) | # | + filelisttbar | + revpanel | # +---------------------------+-------------------------------------+ # | + filelist | + messagesplitter | # | | :+ message | # | | :----------------------------------+ # | | + fileview | # +---------------------------+-------------------------------------+ basevbox = QVBoxLayout(self) basevbox.setSpacing(0) basevbox.setContentsMargins(2, 2, 2, 2) self.filelistsplit = QSplitter(self) basevbox.addWidget(self.filelistsplit) self.splitternames.append('filelistsplit') self.filelistsplit.setOrientation(Qt.Orientation.Horizontal) self.filelistsplit.setChildrenCollapsible(False) self.filelisttbar = QToolBar(_('File List Toolbar')) self.filelisttbar.setIconSize(qtlib.smallIconSize()) self.filelist = HgFileListView(self) self.filelist.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) self.filelist.customContextMenuRequested.connect(self.menuRequest) self.filelist.doubleClicked.connect(self.onDoubleClick) self._filelistpaletteswitcher = qtlib.PaletteSwitcher(self.filelist) self.filelistframe = QWidget(self.filelistsplit) self.filelistsplit.setStretchFactor(0, 3) vbox = QVBoxLayout() vbox.setSpacing(0) vbox.setContentsMargins(0, 0, 0, 0) vbox.addWidget(self.filelisttbar) vbox.addWidget(self.filelist) self.filelistframe.setLayout(vbox) self.fileviewframe = QWidget(self.filelistsplit) self.filelistsplit.setStretchFactor(1, 7) vbox = QVBoxLayout(self.fileviewframe) vbox.setSpacing(0) vbox.setSizeConstraint(QLayout.SizeConstraint.SetDefaultConstraint) vbox.setContentsMargins(0, 0, 0, 0) panelframevbox = vbox self.messagesplitter = QSplitter(self.fileviewframe) if os.name == 'nt': self.messagesplitter.setStyle(QStyleFactory.create('Plastique')) self.splitternames.append('messagesplitter') self.messagesplitter.setSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Expanding) self.messagesplitter.setMinimumSize(QSize(50, 50)) self.messagesplitter.setFrameShape(QFrame.Shape.NoFrame) self.messagesplitter.setLineWidth(0) self.messagesplitter.setMidLineWidth(0) self.messagesplitter.setOrientation(Qt.Orientation.Vertical) self.messagesplitter.setOpaqueResize(True) self.message = QTextBrowser(self.messagesplitter, lineWrapMode=QTextEdit.LineWrapMode.NoWrap, openLinks=False) self.message.minimumSizeHint = lambda: QSize(0, 25) self.message.anchorClicked.connect(self._forwardAnchorClicked) self.message.setMinimumSize(QSize(0, 0)) self.message.sizeHint = lambda: QSize(0, 100) f = qtlib.getfont('fontcomment') self.message.setFont(f.font()) f.changed.connect(self.forwardFont) self.fileview = HgFileView(self._repoagent, self.messagesplitter) self.messagesplitter.setStretchFactor(1, 1) self.fileview.setMinimumSize(QSize(0, 0)) self.fileview.linkActivated.connect(self.linkActivated) self.fileview.showMessage.connect(self.showMessage) self.fileview.grepRequested.connect(self.grepRequested) self.fileview.revisionSelected.connect(self.revisionSelected) self.filelist.fileSelected.connect(self._onFileSelected) self.filelist.clearDisplay.connect(self._onFileSelected) self.revpanel = RevPanelWidget(self.repo) self.revpanel.linkActivated.connect(self.linkActivated) panelframevbox.addWidget(self.revpanel) panelframevbox.addSpacing(5) panelframevbox.addWidget(self.messagesplitter) def forwardFont(self, font): self.message.setFont(font) def setupModels(self): model = manifestmodel.ManifestModel(self._repoagent, self) model.setFlat(not self.isManifestMode() and self.isFlatFileList()) model.setStatusFilter(self.fileStatusFilter()) model.revLoaded.connect(self._expandShortFileList) self.filelist.setModel(model) # fileSelected is actually the wrapper of currentChanged, which is # unrelated to the selection self.filelist.selectionModel().selectionChanged.connect( self.updateItemFileActions) def createActions(self): self._createFileListActions() self._parentToggleGroup.actions()[0].setChecked(True) self._fileactions = filectxactions.FilectxActions(self._repoagent, self) self._fileactions.setupCustomToolsMenu('workbench.filelist.custom-menu') self._fileactions.linkActivated.connect(self.linkActivated) self._fileactions.filterRequested.connect(self.revsetFilterRequested) self._fileactions.runCustomCommandRequested.connect( self.runCustomCommandRequested) self.addActions(self._fileactions.actions()) def _createFileListActions(self): tbar = self.filelisttbar self._actionManifestMode = a = tbar.addAction(_('Ma&nifest Mode')) a.setCheckable(True) a.setIcon(qtlib.geticon('hg-annotate')) a.setToolTip(_('Show all version-controlled files in tree view')) a.triggered.connect(self._applyManifestMode) self._actionFlatFileList = a = QAction(_('&Flat List'), self) a.setCheckable(True) a.setChecked(True) a.triggered.connect(self._applyFlatFileList) le = QLineEdit() le.setPlaceholderText(_('### filter text ###')) self.filefilter = le tbar.addWidget(self.filefilter) t = QTimer(self, interval=200, singleShot=True) t.timeout.connect(self._applyFileNameFilter) le.textEdited.connect(t.start) le.returnPressed.connect(self.filelist.expandAll) w = status.StatusFilterActionGroup('MARS', 'MARCS', self) self._fileStatusFilter = w w.statusChanged.connect(self._applyFileStatusFilter) # TODO: p1/p2 toggle should be merged with fileview's self._parentToggleGroup = QActionGroup(self) self._parentToggleGroup.triggered.connect(self._selectParentRevision) for i, (icon, text, tip) in enumerate([ ('hg-merged-both', _('Changed by &This Commit'), _('Show files changed by this commit')), ('hg-merged-p1', _('Compare to &1st Parent'), _('Show changes from first parent')), ('hg-merged-p2', _('Compare to &2nd Parent'), _('Show changes from second parent'))]): a = self._parentToggleGroup.addAction(qtlib.geticon(icon), text) a.setCheckable(True) a.setData(i) a.setStatusTip(tip) w = QToolButton(self) m = QMenu(w) m.addActions(self._parentToggleGroup.actions()) w.setMenu(m) w.setPopupMode(QToolButton.ToolButtonPopupMode.MenuButtonPopup) self._actionParentToggle = a = tbar.addWidget(w) a.setIcon(qtlib.geticon('hg-merged-both')) a.setToolTip(_('Toggle parent to be used as the base revision')) a.triggered.connect(self._toggleParentRevision) w.setDefaultAction(a) def canswitch(self): # assumes a user wants to browse changesets in manifest mode. commit # widget isn't suitable for such usage. return not self.isManifestMode() def eventFilter(self, watched, event): # switch between filter and list seamlessly if watched is self.filefilter: if event.type() == QEvent.Type.KeyPress and event.key() == Qt.Key.Key_Down: self.filelist.setFocus() return True return False elif watched is self.filelist: if event.type() == QEvent.Type.KeyPress and event.key() == Qt.Key.Key_Up: index = self.filelist.currentIndex() if index.row() == 0 and not index.parent().isValid(): self.filefilter.setFocus() return True return False return super(RevDetailsWidget, self).eventFilter(watched, event) def onRevisionSelected(self, rev): 'called by repowidget when repoview changes revisions' self.ctx = ctx = self.repo[rev] self.revpanel.set_revision(rev) self.revpanel.updateItems(repo=self.repo) msg = ctx.description() inlinetags = self._repoagent.configBool( 'tortoisehg', 'issue.inlinetags') if ctx.tags() and inlinetags: msg = b' '.join(b'[%s]' % tag for tag in ctx.tags()) + b' ' + msg # don't use
                                                                                                            ...
                                                                                                            , which also changes font family self.message.setHtml('
                                                                                                            %s
                                                                                                            ' % self._deschtmlize(msg)) self._setContextToFileList(ctx) def _setContextToFileList(self, ctx): # useless to toggle manifest mode in patchctx self._actionManifestMode.setEnabled(not ctx.thgmqunappliedpatch()) self._parentToggleGroup.setVisible(len(ctx.parents()) == 2) self._actionParentToggle.setVisible(self._parentToggleGroup.isVisible()) m = self.filelist.model() assert m is not None if len(ctx.parents()) != 2: m.setRawContext(ctx) m.setChangedFilesOnly(False) self.updateItemFileActions() return parentmode = self._parentToggleGroup.checkedAction().data() pnum, changedonly = [(0, True), (0, False), (1, False)][parentmode] m.setRev(ctx.rev(), ctx.parents()[pnum].rev()) m.setChangedFilesOnly(changedonly) self.updateItemFileActions() @pyqtSlot(QAction) def _selectParentRevision(self, action): self._actionParentToggle.setIcon(action.icon()) self._setContextToFileList(self.ctx) @pyqtSlot() def _toggleParentRevision(self): parentactions = [a for a in self._parentToggleGroup.actions() if a.isEnabled()] i = parentactions.index(self._parentToggleGroup.checkedAction()) parentactions[(i + 1) % len(parentactions)].trigger() @pyqtSlot() def _updatedeschtmlizer(self): self._deschtmlize = qtlib.descriptionhtmlizer(self.repo.ui) self.onRevisionSelected(self.ctx.rev()) # regenerate desc html def reload(self): 'Task tab is reloaded, or repowidget is refreshed' rev = self.ctx.rev() if isinstance(self.ctx.rev(), int): if len(self.repo) <= self.ctx.rev(): rev = b'tip' elif rev is not None: # None in isrevsymbol() raises ProgrammingError if scmutil.isrevsymbol(self.repo, rev): rev = hglib.revsymbol(self.repo, rev).rev() elif rev not in self.repo.thgmqunappliedpatches: rev = b'tip' try: self.onRevisionSelected(rev) except error.FilteredRepoLookupError: # Perhaps, the widget is reloaded because of filtering mode change # while a hidden changeset was selected. In this cases, the # selection of a different changeset (triggering the update of # revdetails) will happen within short time. pass @pyqtSlot(QUrl) def _forwardAnchorClicked(self, url): self.linkActivated.emit(url.toString()) #@pyqtSlot(QModelIndex) def onDoubleClick(self, index): model = self.filelist.model() assert model is not None if model.subrepoType(index): self._fileactions.openSubrepo() elif model.isDir(index): # expand/collapse tree by default pass elif model.fileStatus(index) == 'C': self._fileactions.editFile() else: self._fileactions.visualDiffFile() def filePath(self): return hglib.tounicode(self.filelist.currentFile()) def setFilePath(self, path): self.filelist.setCurrentFile(hglib.fromunicode(path)) def showLine(self, line): self.fileview.showLine(line - 1) # fileview should do -1 instead? def setSearchPattern(self, text): self.fileview.searchbar.setPattern(text) @pyqtSlot() def _onFileSelected(self): index = self.filelist.currentIndex() model = self.filelist.model() assert model is not None self.fileview.display(model.fileData(index)) @pyqtSlot(QPoint) def menuRequest(self, point): contextmenu = QMenu(self) if self.filelist.selectionModel().hasSelection(): self._setupFileMenu(contextmenu) contextmenu.addSeparator() m = contextmenu.addMenu(_('List Optio&ns')) else: m = contextmenu m.addAction(self._actionManifestMode) m.addSeparator() m.addActions(self._fileStatusFilter.actions()) m.addSeparator() m.addActions(self._parentToggleGroup.actions()) m.addSeparator() m.addAction(self._actionFlatFileList) contextmenu.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose) contextmenu.popup(self.filelist.viewport().mapToGlobal(point)) def _setupFileMenu(self, contextmenu): index = self.filelist.currentIndex() model = self.filelist.model() assert model is not None # Subrepos and regular items have different context menus if model.subrepoType(index): actnames = _fileactionsbytype['subrepo'] elif model.isDir(index): actnames = _fileactionsbytype['dir'] else: actnames = _fileactionsbytype['file'] for act in actnames + [None, 'customToolsMenu']: if act: contextmenu.addAction(self._fileactions.action(act)) else: contextmenu.addSeparator() @pyqtSlot() def updateItemFileActions(self): model = self.filelist.model() selmodel = self.filelist.selectionModel() assert model is not None assert selmodel is not None selfds = pycompat.maplist(model.fileData, selmodel.selectedIndexes()) self._fileactions.setFileDataList(selfds) @pyqtSlot() def _applyFileNameFilter(self): model = self.filelist.model() match = self.filefilter.text() if model is not None: model.setNameFilter(match) self._filelistpaletteswitcher.enablefilterpalette(bool(match)) self._expandShortFileList() def isManifestMode(self): """In manifest mode, clean files are listed and removed are hidden by default. Also, the view is forcibly switched to the tree mode.""" return self._actionManifestMode.isChecked() def setManifestMode(self, manifestmode): self._actionManifestMode.setChecked(manifestmode) self._applyManifestMode(manifestmode) @pyqtSlot(bool) def _applyManifestMode(self, manifestmode): self._fileStatusFilter.setChecked('C', manifestmode) self._fileStatusFilter.setChecked('R', not manifestmode) self._actionFlatFileList.setVisible(not manifestmode) self._applyFlatFileList(not manifestmode and self.isFlatFileList()) # manifest should show clean files, so only p1/p2 toggles are valid parentactions = self._parentToggleGroup.actions() parentactions[0].setEnabled(not manifestmode) parentactions[int(manifestmode)].trigger() def isFlatFileList(self): return self._actionFlatFileList.isChecked() def setFlatFileList(self, flat): self._actionFlatFileList.setChecked(flat) if not self.isManifestMode(): self._applyFlatFileList(flat) @pyqtSlot(bool) def _applyFlatFileList(self, flat): view = self.filelist model = view.model() assert model is not None model.setFlat(flat) view.setRootIsDecorated(not flat) if flat: view.setTextElideMode(Qt.TextElideMode.ElideLeft) else: view.setTextElideMode(Qt.TextElideMode.ElideRight) self._expandShortFileList() def fileStatusFilter(self): return self._fileStatusFilter.status() def setFileStatusFilter(self, statustext): self._fileStatusFilter.setStatus(statustext) @pyqtSlot(str) def _applyFileStatusFilter(self, statustext): model = self.filelist.model() assert model is not None model.setStatusFilter(statustext) self._expandShortFileList() @pyqtSlot() def _expandShortFileList(self): if self.isManifestMode(): # because manifest will contain large tree of files return self.filelist.expandAll() def saveSettings(self, s): wb = "RevDetailsWidget/" for n in self.splitternames: s.setValue(wb + n, getattr(self, n).saveState()) s.setValue(wb + 'flatfilelist', self.isFlatFileList()) s.setValue(wb + 'revpanel.expanded', self.revpanel.is_expanded()) self.fileview.saveSettings(s, 'revpanel/fileview') def loadSettings(self, s): wb = "RevDetailsWidget/" for n in self.splitternames: getattr(self, n).restoreState(qtlib.readByteArray(s, wb + n)) self.setFlatFileList(qtlib.readBool(s, wb + 'flatfilelist', True)) expanded = qtlib.readBool(s, wb + 'revpanel.expanded', False) self.revpanel.set_expanded(expanded) self.fileview.loadSettings(s, 'revpanel/fileview') class RevDetailsDialog(QDialog): 'Standalone revision details tool, a wrapper for RevDetailsWidget' def __init__(self, repoagent, rev=b'.', parent=None): QDialog.__init__(self, parent) self.setWindowFlags(Qt.WindowType.Window) self.setWindowIcon(qtlib.geticon('hg-log')) self._repoagent = repoagent layout = QVBoxLayout() layout.setContentsMargins(0, 0, 0, 0) self.setLayout(layout) toplayout = QVBoxLayout() toplayout.setContentsMargins(5, 5, 5, 0) layout.addLayout(toplayout) revdetails = RevDetailsWidget(repoagent, parent, rev=rev) toplayout.addWidget(revdetails, 1) self.statusbar = cmdui.ThgStatusBar(self) revdetails.showMessage.connect(self.statusbar.showMessage) revdetails.linkActivated.connect(self.linkActivated) layout.addWidget(self.statusbar) s = QSettings() self.restoreGeometry(qtlib.readByteArray(s, 'revdetails/geom')) revdetails.loadSettings(s) repoagent.repositoryChanged.connect(self.refresh) self.revdetails = revdetails self.setRev(rev) qtlib.newshortcutsforstdkey(QKeySequence.StandardKey.Refresh, self, self.refresh) def setRev(self, rev): self.revdetails.onRevisionSelected(rev) self.refresh() def filePath(self): return self.revdetails.filePath() def setFilePath(self, path): self.revdetails.setFilePath(path) def showLine(self, line): self.revdetails.showLine(line) def setSearchPattern(self, text): self.revdetails.setSearchPattern(text) def isManifestMode(self): return self.revdetails.isManifestMode() def setManifestMode(self, manifestmode): self.revdetails.setManifestMode(manifestmode) def isFlatFileList(self): return self.revdetails.isFlatFileList() def setFlatFileList(self, flat): self.revdetails.setFlatFileList(flat) def fileStatusFilter(self): return self.revdetails.fileStatusFilter() def setFileStatusFilter(self, statustext): self.revdetails.setFileStatusFilter(statustext) @pyqtSlot(str) def linkActivated(self, link): def _torev(cset): return hglib.revsymbol(self._repoagent.rawRepo(), hglib.fromunicode(cset)) handlers = {'cset': lambda cset: self.setRev(_torev(cset)), 'repo': self._showRepoInWorkbench} if ':' in link: scheme, param = link.split(':', 1) hdr = handlers.get(scheme) if hdr: return hdr(param) if os.path.isabs(link): qtlib.openlocalurl(link) else: QDesktopServices.openUrl(QUrl(link)) def _showRepoInWorkbench(self, linktarget): try: linkpath, rev = linktarget.split('?', 1) except ValueError: linkpath = linktarget rev = None # TODO: implement by using signal-slot if possible from tortoisehg.hgqt import run run.qtrun.showRepoInWorkbench(linkpath, rev) @pyqtSlot() def refresh(self): rev = revnum = self.revdetails.ctx.rev() if rev is None: revstr = _('Working Directory') else: hash = self.revdetails.ctx.hex()[:12] revstr = '@%s: %s' % (str(revnum), hglib.tounicode(hash)) self.setWindowTitle(_('%s - Revision Details (%s)') % (self._repoagent.displayName(), revstr)) self.revdetails.reload() def done(self, ret): s = QSettings() s.setValue('revdetails/geom', self.saveGeometry()) super(RevDetailsDialog, self).done(ret) def createManifestDialog(repoagent, rev=None, parent=None): dlg = RevDetailsDialog(repoagent, rev, parent) dlg.setManifestMode(True) return dlg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/revert.py0000644000000000000000000001001414672254332017334 0ustar00rootroot# revert.py - File revert dialog for TortoiseHg # # Copyright 2010 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations from .qtcore import ( Qt, pyqtSlot, ) from .qtgui import ( QCheckBox, QComboBox, QDialog, QDialogButtonBox, QLabel, QVBoxLayout, ) from mercurial.node import nullid from ..util import hglib from ..util.i18n import _ from . import ( cmdcore, cmdui, qtlib, ) class RevertDialog(QDialog): def __init__(self, repoagent, wfiles, rev, parent): super(RevertDialog, self).__init__(parent) self._repoagent = repoagent self._cmdsession = cmdcore.nullCmdSession() self.setWindowTitle(_('Revert - %s') % repoagent.displayName()) f = self.windowFlags() self.setWindowFlags(f & ~Qt.WindowType.WindowContextHelpButtonHint) self.wfiles = wfiles self.setLayout(QVBoxLayout()) if len(wfiles) == 1: lblText = _('Revert %s to its contents' ' at the following revision?') % ( wfiles[0]) else: lblText = _('Revert %d files to their contents' ' at the following revision?') % ( len(wfiles)) lbl = QLabel(lblText) self.layout().addWidget(lbl) self._addRevertTargetCombo(rev) self.allchk = QCheckBox(_('Revert all files to this revision')) self.layout().addWidget(self.allchk) bbox = QDialogButtonBox(QDialogButtonBox.StandardButton.Ok|QDialogButtonBox.StandardButton.Cancel) bbox.accepted.connect(self.accept) bbox.rejected.connect(self.reject) self.layout().addWidget(bbox) self.bbox = bbox def _addRevertTargetCombo(self, rev): if rev is None: raise ValueError('Cannot revert to working directory') self.revcombo = QComboBox() revnames = ['revision %d' % rev] repo = self._repoagent.rawRepo() ctx = repo[rev] parents = ctx.parents()[:2] if len(parents) == 1: parentdesctemplate = ("revision %d's parent (i.e. revision %d)",) else: parentdesctemplate = ( _("revision %d's first parent (i.e. revision %d)"), _("revision %d's second parent (i.e. revision %d)"), ) for n, pctx in enumerate(parents): if pctx.node() == nullid: revdesc = _('null revision (i.e. remove file(s))') else: revdesc = parentdesctemplate[n] % (rev, pctx.rev()) revnames.append(revdesc) self.revcombo.addItems(revnames) reverttargets = [ctx] + parents for n, ctx in enumerate(reverttargets): self.revcombo.setItemData(n, hglib.tounicode(ctx.hex())) self.layout().addWidget(self.revcombo) def accept(self): rev = self.revcombo.itemData(self.revcombo.currentIndex()) if self.allchk.isChecked(): if not qtlib.QuestionMsgBox(_('Confirm Revert'), _('Reverting all files will discard changes and ' 'leave affected files in a modified state.
                                                                                                            ' '
                                                                                                            Are you sure you want to use revert?

                                                                                                            ' '(use update to checkout another revision)'), parent=self): return cmdline = hglib.buildcmdargs('revert', all=True, rev=rev) else: cmdline = hglib.buildcmdargs('revert', rev=rev, *self.wfiles) self.bbox.button(QDialogButtonBox.StandardButton.Ok).setEnabled(False) self._cmdsession = sess = self._repoagent.runCommand(cmdline, self) sess.commandFinished.connect(self._onCommandFinished) @pyqtSlot(int) def _onCommandFinished(self, ret): if ret == 0: self.reject() else: cmdui.errorMessageBox(self._cmdsession, self) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/revpanel.py0000644000000000000000000002176314672254332017656 0ustar00rootroot# revpanel.py - TortoiseHg rev panel widget # # Copyright (C) 2007-2010 Logilab. All rights reserved. # Copyright (C) 2010 Adrian Buehlmann # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations from mercurial import ( cmdutil, error, ) from ..util import hglib, obsoleteutil from ..util.i18n import _ from . import ( csinfo, qtlib, ) def label_func(widget, item, ctx): if item == 'cset': if isinstance(ctx.rev(), str): return _('Patch:') return _('Changeset:') elif item == 'parents': return _('Parent:') elif item == 'children': return _('Child:') elif item == 'predecessors': return _('Predecessors:') elif item == 'successors': return _('Successors:') raise csinfo.UnknownItem(item) def revid_markup(revid, **kargs): opts = dict(family='monospace', size='9pt') opts.update(kargs) return qtlib.markup(revid, **opts) def data_func(widget, item, ctx): def summary_line(desc): return hglib.longsummary(desc.replace(b'\0', b'')) def revline_data(ctx, hl=False, branch=None): if hglib.isbasestring(ctx): return ctx desc = ctx.description() rev = str(ctx.rev()) if isinstance(ctx.rev(), int) else hglib.tounicode(ctx.rev()) return (rev, str(ctx), summary_line(desc), hl, hglib.tounicode(branch)) def format_ctxlist(ctxlist): if not ctxlist: return None return [revline_data(ctx)[:3] for ctx in ctxlist] if item == 'cset': return revline_data(ctx) elif item == 'branch': value = hglib.tounicode(ctx.branch()) return value != 'default' and value or None elif item == 'topic': topic = getattr(ctx, 'topic', lambda: None)() return topic and hglib.tounicode(topic) or None elif item == 'parents': # TODO: need to put 'diff to other' checkbox #pindex = self.diff_other_parent() and 1 or 0 pindex = 0 # always show diff with first parent pctxs = ctx.parents() parents = [] for pctx in pctxs: highlight = len(pctxs) == 2 and pctx == pctxs[pindex] branch = None if hasattr(pctx, 'branch') and pctx.branch() != ctx.branch(): branch = pctx.branch() parents.append(revline_data(pctx, highlight, branch)) return parents elif item == 'children': children = [] for cctx in ctx.children(): branch = None if hasattr(cctx, 'branch') and cctx.branch() != ctx.branch(): branch = cctx.branch() children.append(revline_data(cctx, branch=branch)) return children elif item in ('graft', 'transplant', 'mqoriginalparent', 'p4', 'svn', 'converted',): ts = widget.get_data(item, usepreset=True) if not ts: return None try: tctx = hglib.revsymbol(ctx.repo(), hglib.fromunicode(ts)) return revline_data(tctx) except (error.LookupError, error.RepoLookupError, error.RepoError): return ts elif item == 'createsnewhead': # Strictly speaking, amend can create a new head in the case when # amending a revision which is not a topological head, as then the # original amended revision is kept alive by its orphan ancestors. # However, as the original amended revision along with its orphan # ancestors are eventually going to be evolved, we should not warn the # user. Instead, we should show that the amend will create orphans. return not widget.custom['isAmend'] and hglib.createsnewhead(ctx) elif item == 'createsorphans': return widget.custom['isAmend'] and any(p.children() for p in ctx.parents()) elif item == 'reopensbranchhead': return any(p.closesbranch() and p.branch() == ctx.branch() for p in ctx.parents()) elif item == 'predecessors': ctxlist = obsoleteutil.first_known_predecessors(ctx) return format_ctxlist(ctxlist) elif item == 'successors': ctxlist = obsoleteutil.first_known_successors(ctx) return format_ctxlist(ctxlist) raise csinfo.UnknownItem(item) def create_markup_func(ui): def link_markup(revnum, revid, linkpattern=None, ctx=None): mrevid = revid_markup('%s (%s)' % (revnum, revid)) if linkpattern is None: return mrevid if linkpattern == b'cset:{node|short}': # this is the linkpattern for thg internal hyperlinks href = 'cset:%s' % revid else: if ctx is None: return mrevid try: # evaluates a generic mercurial template for changeset.link href = hglib.tounicode(cmdutil.rendertemplate(ctx, linkpattern)) except (error.Abort, error.ParseError): return mrevid return '%s' % (qtlib.htmlescape(href), mrevid) def revline_markup(revnum, revid, summary, highlight=None, branch=None, linkpattern=b'cset:{node|short}', ctx=None): def branch_markup(branch): opts = dict(fg='black', bg='#aaffaa') return qtlib.markup(' %s ' % branch, **opts) summary = qtlib.markup(summary) if branch: branch = branch_markup(branch) if revid: rev = link_markup(revnum, revid, linkpattern=linkpattern, ctx=ctx) if branch: return '%s %s %s' % (rev, branch, summary) return '%s %s' % (rev, summary) else: revnum = qtlib.markup(revnum) if branch: return '%s - %s %s' % (revnum, branch, summary) return '%s - %s' % (revnum, summary) def markup_func(widget, item, value): if item in ('cset', 'graft', 'transplant', 'mqoriginalparent', 'p4', 'svn', 'converted'): if item == 'cset': linkpattern = ui.config(b'tortoisehg', b'changeset.link') else: linkpattern = b'cset:{node|short}' if hglib.isbasestring(value): return revid_markup(value) return revline_markup(linkpattern=linkpattern, *value, ctx=widget.ctx) elif item in ('parents', 'children', 'predecessors', 'successors'): csets = [] for cset in value: if hglib.isbasestring(cset): csets.append(revid_markup(cset)) else: csets.append(revline_markup(*cset)) return csets raise csinfo.UnknownItem(item) return markup_func def RevPanelWidget(repo): '''creates a rev panel widget and returns it''' custom = csinfo.custom(data=data_func, label=label_func, markup=create_markup_func(repo.ui)) style = csinfo.panelstyle(contents=( 'cset', 'gitcommit', 'branch', 'topic', 'obsolete', 'close', 'user', 'dateage', 'parents', 'children', 'tags', 'graft', 'transplant', 'mqoriginalparent', 'predecessors', 'successors', 'p4', 'svn', 'converted'), selectable=True, expandable=True) return csinfo.create(repo, style=style, custom=custom) def nomarkup(widget, item, value): def revline_markup(revnum, revid, summary, highlight=None, branch=None): summary = qtlib.markup(summary) if revid: rev = revid_markup('%s (%s)' % (revnum, revid)) return '%s %s' % (rev, summary) else: revnum = qtlib.markup(revnum) return '%s - %s' % (revnum, summary) csets = [] if item == 'createsnewhead': if value is True: text = _('Creates new head!') return qtlib.markup(text, fg='red', weight='bold') raise csinfo.UnknownItem(item) elif item == 'createsorphans': if value is True: text = _('Creates orphans.') return qtlib.markup(text, weight='bold') raise csinfo.UnknownItem(item) elif item == 'reopensbranchhead': if value is True: text = _('Reopens closed branch head!') return qtlib.markup(text, fg='red', weight='bold') raise csinfo.UnknownItem(item) for cset in value: if hglib.isbasestring(cset): csets.append(revid_markup(cset)) else: csets.append(revline_markup(*cset)) return csets def WDirInfoWidget(repo): 'creates a wdir info widget and returns it' custom = csinfo.custom(data=data_func, label=label_func, markup=nomarkup) style = csinfo.panelstyle(contents=('parents', 'createsnewhead', 'createsorphans', 'reopensbranchhead'), selectable=True) return csinfo.create(repo, style=style, custom=custom) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1732624256.0 tortoisehg-6.9/tortoisehg/hgqt/revset.py0000644000000000000000000003215514721337600017342 0ustar00rootroot# revset.py - revision set query dialog # # Copyright 2010 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations from .qsci import ( QsciAPIs, QsciLexerPython, QsciScintilla, ) from .qtcore import ( QSize, Qt, pyqtSignal, ) from .qtgui import ( QColor, QDialog, QGroupBox, QHBoxLayout, QKeySequence, QLabel, QListWidget, QShortcut, QSizePolicy, QVBoxLayout, ) from ..util.i18n import _ from . import ( cmdui, qtlib, ) # TODO: # Shift-Click rev range -> revision range X:Y # Ctrl-Click two revs -> DAG range X::Y # QFontMetrics.elidedText for help label _common = ( ('user(string)', _('Changesets where username contains string.')), ('keyword(string)', _('Search commit message, user name, and names of changed ' 'files for string.')), ('grep(regex)', _('Like "keyword(string)" but accepts a regex.')), ('outgoing([path])', _('Changesets not found in the specified destination repository, ' 'or the default push location.')), ('bookmark([name])', _('The named bookmark or all bookmarks.')), ('tag([name])', _('The named tag or all tags.')), ('tagged()', _('Changeset is tagged.')), ('head()', _('Changeset is a named branch head.')), ('merge()', _('Changeset is a merge changeset.')), ('closed()', _('Changeset is closed.')), ('date(interval)', _('Changesets within the interval, see help dates')), ('ancestor(single, single)', _('Greatest common ancestor of the two changesets.')), ('matching(revset [, ''field(s) to match''])', _('Find revisions that "match" one or more fields of the given set of ' 'revisions.')), ) _filepatterns = ( ('file(pattern)', _('Changesets affecting files matched by pattern. ' 'See ' 'help patterns')), ('modifies(pattern)', _('Changesets which modify files matched by pattern.')), ('adds(pattern)', _('Changesets which add files matched by pattern.')), ('removes(pattern)', _('Changesets which remove files matched by pattern.')), ('contains(pattern)', _('Changesets containing files matched by pattern.')), ) _ancestry = ( ('branch(set)', _('All changesets belonging to the branches of changesets in set.')), ('heads(set)', _('Members of a set with no children in set.')), ('descendants(set)', _('Changesets which are descendants of changesets in set.')), ('ancestors(set)', _('Changesets that are ancestors of a changeset in set.')), ('children(set)', _('Child changesets of changesets in set.')), ('parents(set)', _('The set of all parents for all changesets in set.')), ('p1(set)', _('First parent for all changesets in set, or the working directory.')), ('p2(set)', _('Second parent for all changesets in set, or the working directory.')), ('roots(set)', _('Changesets with no parent changeset in set.')), ('present(set)', _('An empty set, if any revision in set isn\'t found; otherwise, ' 'all revisions in set.')), ) _logical = ( ('min(set)', _('Changeset with lowest revision number in set.')), ('max(set)', _('Changeset with highest revision number in set.')), ('limit(set, n)', _('First n members of a set.')), ('sort(set[, [-]key...])', _('Sort set by keys. The default sort order is ascending, specify a ' 'key as "-key" to sort in descending order.')), ('follow()', _('An alias for "::." (ancestors of the working copy\'s first parent).')), ('all()', _('All changesets, the same as 0:tip.')), ) class RevisionSetQuery(QDialog): queryIssued = pyqtSignal(str) def __init__(self, repoagent, parent=None): QDialog.__init__(self, parent) self._repoagent = repoagent # Since the revset dialot belongs to a repository, we display # the repository name in the dialog title self.setWindowTitle(_('Revision Set Query') + ' - ' + repoagent.displayName()) self.setWindowFlags(Qt.WindowType.Window) layout = QVBoxLayout() layout.setContentsMargins(*(4,)*4) self.setLayout(layout) logical = _logical ancestry = _ancestry repo = repoagent.rawRepo() if b'hgsubversion' in repo.extensions(): logical = list(logical) + [('fromsvn()', _('all revisions converted from subversion')),] ancestry = list(ancestry) + [('svnrev(rev)', _('changeset which represents converted svn revision')),] self.stbar = cmdui.ThgStatusBar(self) self.stbar.setSizeGripEnabled(False) # same policy as status bar of QMainWindow self.stbar.setSizePolicy(QSizePolicy.Policy.Ignored, QSizePolicy.Policy.Fixed) self.stbar.lbl.setOpenExternalLinks(True) hbox = QHBoxLayout() hbox.setContentsMargins(*(0,)*4) cgb = QGroupBox(_('Common sets')) cgb.setLayout(QVBoxLayout()) cgb.layout().setContentsMargins(*(2,)*4) def setCommonHelp(row): self.stbar.showMessage(self.clw._help[row]) self.clw = QListWidget(self) self.clw.addItems([x for x, y in _common]) self.clw._help = [y for x, y in _common] self.clw.currentRowChanged.connect(setCommonHelp) cgb.layout().addWidget(self.clw) hbox.addWidget(cgb) fgb = QGroupBox(_('File pattern sets')) fgb.setLayout(QVBoxLayout()) fgb.layout().setContentsMargins(*(2,)*4) def setFileHelp(row): self.stbar.showMessage(self.flw._help[row]) self.flw = QListWidget(self) self.flw.addItems([x for x, y in _filepatterns]) self.flw._help = [y for x, y in _filepatterns] self.flw.currentRowChanged.connect(setFileHelp) fgb.layout().addWidget(self.flw) hbox.addWidget(fgb) agb = QGroupBox(_('Set Ancestry')) agb.setLayout(QVBoxLayout()) agb.layout().setContentsMargins(*(2,)*4) def setAncHelp(row): self.stbar.showMessage(self.alw._help[row]) self.alw = QListWidget(self) self.alw.addItems([x for x, y in ancestry]) self.alw._help = [y for x, y in ancestry] self.alw.currentRowChanged.connect(setAncHelp) agb.layout().addWidget(self.alw) hbox.addWidget(agb) lgb = QGroupBox(_('Set Logic')) lgb.setLayout(QVBoxLayout()) lgb.layout().setContentsMargins(*(2,)*4) def setManipHelp(row): self.stbar.showMessage(self.llw._help[row]) self.llw = QListWidget(self) self.llw.addItems([x for x, y in logical]) self.llw._help = [y for x, y in logical] self.llw.currentRowChanged.connect(setManipHelp) lgb.layout().addWidget(self.llw) hbox.addWidget(lgb) # Clicking on one listwidget should clear selection of the others listwidgets = (self.clw, self.flw, self.alw, self.llw) for w in listwidgets: w.currentItemChanged.connect(self.currentItemChanged) #w.itemActivated.connect(self.returnPressed) for w2 in listwidgets: if w is not w2: w.itemClicked.connect(w2.clearSelection) layout.addLayout(hbox, 1) self.entry = RevsetEntry(self) self.entry.addCompletions(logical, ancestry, _filepatterns, _common) self.entry.returnPressed.connect(self.returnPressed) layout.addWidget(self.entry, 0) txt = _('' 'help revsets') helpLabel = QLabel(txt) helpLabel.setOpenExternalLinks(True) self.stbar.addPermanentWidget(helpLabel) layout.addWidget(self.stbar, 0) QShortcut(QKeySequence('Return'), self, self.returnPressed) QShortcut(QKeySequence('Escape'), self, self.reject) def runQuery(self): self.queryIssued.emit(self.entry.text()) def returnPressed(self): if self.entry.hasSelectedText(): lineFrom, indexFrom, lineTo, indexTo = self.entry.getSelection() start = self.entry.positionFromLineIndex(lineFrom, indexFrom) end = self.entry.positionFromLineIndex(lineTo, indexTo) sel = self.entry.selectedText() if sel.count('(') and ')' in sel: bopen = sel.index('(') bclose = sel.rindex(')') if bopen < bclose: self.entry.setSelection(lineFrom, start+bopen+1, lineFrom, start+bclose) self.entry.setFocus() return self.entry.setSelection(lineTo, indexTo, lineTo, indexTo) else: self.runQuery() self.entry.setFocus() def currentItemChanged(self, current, previous): if current is None: return self.entry.beginUndoAction() text = self.entry.text() itext, ilen = current.text(), len(current.text()) if self.entry.hasSelectedText(): # replace selection lineFrom, indexFrom, lineTo, indexTo = self.entry.getSelection() start = self.entry.positionFromLineIndex(lineFrom, indexFrom) end = self.entry.positionFromLineIndex(lineTo, indexTo) newtext = text[:start] + itext + text[end:] self.entry.setText(newtext) self.entry.setSelection(lineFrom, indexFrom, lineFrom, indexFrom+ilen) else: line, index = self.entry.getCursorPosition() pos = self.entry.positionFromLineIndex(line, index) if len(text) <= pos: # cursor at end of text, append if text and text[-1] != u' ': text = text + u' ' newtext = text + itext self.entry.setText(newtext) self.entry.setSelection(line, len(text), line, len(newtext)) elif text[pos] == u' ': # cursor is at a space, insert item newtext = text[:pos] + itext + text[pos:] self.entry.setText(newtext) self.entry.setSelection(line, pos, line, pos+ilen) else: # cursor is on text, wrap current word start, end = pos, pos while start and text[start-1] != u' ': start = start-1 while end < len(text) and text[end] != u' ': end = end+1 bopen = itext.index('(') newtext = text[:start] + itext[:bopen+1] + text[start:end] + \ ')' + text[end:] self.entry.setText(newtext) self.entry.setSelection(line, start, line, end+bopen+2) self.entry.endUndoAction() def accept(self): self.hide() def reject(self): self.accept() class RevsetEntry(QsciScintilla): returnPressed = pyqtSignal() def __init__(self, parent=None): super(RevsetEntry, self).__init__(parent) self.setMarginWidth(1, 0) self.setReadOnly(False) self.setUtf8(True) self.setCaretWidth(10) self.setCaretLineBackgroundColor(QColor("#e6fff0")) self.setCaretLineVisible(True) self.setAutoIndent(True) self.setMatchedBraceBackgroundColor(Qt.GlobalColor.yellow) self.setIndentationsUseTabs(False) self.setBraceMatching(QsciScintilla.BraceMatch.SloppyBraceMatch) self.setWrapMode(QsciScintilla.WrapMode.WrapWord) self.setHorizontalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOff) self.setVerticalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOff) sp = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) sp.setHorizontalStretch(1) sp.setVerticalStretch(0) self.setSizePolicy(sp) self.setAutoCompletionThreshold(2) self.setAutoCompletionSource(QsciScintilla.AutoCompletionSource.AcsAPIs) self.setAutoCompletionFillupsEnabled(True) font = qtlib.getfont('fontcomment').font() self.setFont(font) self.setLexer(QsciLexerPython(self)) self.lexer().setFont(font) self.apis = QsciAPIs(self.lexer()) def addCompletions(self, *lists): for list in lists: for x, y in list: self.apis.add(x) self.apis.prepare() def keyPressEvent(self, event): if event.key() == Qt.Key.Key_Escape: event.ignore() return if event.key() in (Qt.Key.Key_Enter, Qt.Key.Key_Return): if not self.isListActive(): event.ignore() self.returnPressed.emit() return super(RevsetEntry, self).keyPressEvent(event) def sizeHint(self): return QSize(10, self.fontMetrics().height()) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1735997214.0 tortoisehg-6.9/tortoisehg/hgqt/run.py0000644000000000000000000014412314736233436016645 0ustar00rootroot# run.py - front-end script for TortoiseHg dialogs # # Copyright 2008 Steve Borho # Copyright 2008 TK Soh # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import getopt import os import pdb import sys import subprocess from typing import ( Optional, ) from mercurial import ( cmdutil, encoding, error, extensions, fancyopts, pathutil, pycompat, registrar, scmutil, ui as uimod, util, ) from mercurial.utils import ( procutil, stringutil, urlutil, ) from ..util import ( hglib, hgversion, i18n, paths, version as thgversion, ) from ..util.i18n import agettext as _ from . import ( bugreport, cmdui, hgconfig, qtapp, qtlib, quickop, thgrepo, ) try: from tortoisehg.util.config import nofork as config_nofork # pytype: disable=import-error except ImportError: config_nofork = None shortlicense = b''' Copyright (C) 2008-2025 Steve Borho and others. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ''' console_commands = b'help thgstatus version' nonrepo_commands = b'''userconfig shellconfig clone init debugblockmatcher debugbugreport about help version thgstatus serve rejects log''' def run(): argv = pycompat.sysargv[1:] # Remove the -psn argument supplied by launchd (if present - it's not # on 10.9) if 'THG_OSX_APP' in os.environ and argv and argv[0].startswith(b'-psn'): argv = argv[1:] # Verify we have an acceptable version of Mercurial errmsg = hgversion.checkminhgversion(hgversion.hgversion) if errmsg: opts = { 'cmd': b' '.join(argv), 'error': b'\n' + errmsg + b'\n', 'nofork': True, } qtrun(bugreport.run, uimod.ui(), **opts) sys.exit(1) if ('THGDEBUG' in os.environ or b'--profile' in argv or getattr(sys, 'frozen', None) != 'windows_exe'): sys.exit(dispatch(argv)) else: origstderr = sys.stderr # TODO: Figure out if this hack for py2exe is still needed, and possibly # wrap this to handle unicode on py3 if not pycompat.ispy3: mystderr = util.bytesio() sys.stderr = mystderr sys.__stdout__ = sys.stdout sys.__stderr__ = sys.stderr procutil.stderr = sys.stderr ret = 0 try: ret = dispatch(argv) if not pycompat.ispy3: sys.stderr = origstderr stderrout = mystderr.getvalue() else: stderrout = '' errors = ('Traceback', 'TypeError', 'NameError', 'AttributeError', 'NotImplementedError') for l in stderrout.splitlines(): if l.startswith(errors): opts = { 'cmd': b' '.join(argv), 'error': 'Recoverable error (stderr):\n' + stderrout, 'nofork': True, } qtrun(bugreport.run, uimod.ui(), **opts) break sys.exit(ret) except KeyboardInterrupt: sys.exit(-1) except SystemExit: raise except: procutil.stderr = sys.__stderr__ = sys.stderr = origstderr raise def dispatch(args, u=None): """run the command specified in args""" try: if u is None: u = hglib.loadui() if b'--traceback' in args: u.setconfig(b'tortoisehg', b'traceback', b'on') u.setconfig(b'ui', b'traceback', b'on') if b'--debugger' in args: pdb.set_trace() return _runcatch(u, args) except error.ConfigError as e: qtapp.earlyExceptionMsgBox(e) except SystemExit as e: return e.code except Exception as e: if b'--debugger' in args: pdb.post_mortem(sys.exc_info()[2]) if u and u.configbool(b'tortoisehg', b'traceback'): raise qtapp.earlyBugReport(e) if not u: raise return -1 except KeyboardInterrupt: print(hglib.tounicode(_('\nCaught keyboard interrupt, aborting.\n'))) return -1 def portable_fork(ui, opts): if 'THG_GUI_SPAWN' in os.environ or ( not opts.get(b'fork') and opts.get(b'nofork')): os.environ['THG_GUI_SPAWN'] = '1' return elif 'THG_OSX_APP' in os.environ: # guifork seems to break Mac app bundles return elif ui.configbool(b'tortoisehg', b'guifork') is not None: if not ui.configbool(b'tortoisehg', b'guifork'): return elif config_nofork: return os.environ['THG_GUI_SPAWN'] = '1' try: _forkbg(ui) except OSError as inst: ui.warn(_('failed to fork GUI process: %s\n') % hglib.fromunicode(inst.strerror)) # native window API can't be used after fork() on Mac OS X if os.name == 'posix' and sys.platform != 'darwin': def _forkbg(ui): pid = os.fork() if pid > 0: sys.exit(0) # disables interaction with tty, keeping logs sent to stdout/stderr nullfd = os.open(os.devnull, os.O_RDONLY) os.dup2(nullfd, ui.fin.fileno()) os.close(nullfd) else: _origwdir = os.getcwd() def _forkbg(ui): # Spawn background process and exit cmdline = list(paths.get_thg_command()) cmdline.extend(sys.argv[1:]) os.chdir(_origwdir) # redirect stdout/stderr to "nul" device; otherwise EBADF could occur # on cmd.exe (#4837). for stdin, create a pipe since "nul" is a tty # on Windows! (#4469) nullfd = os.open(os.devnull, os.O_RDWR) p = subprocess.Popen(cmdline, stdin=subprocess.PIPE, stdout=nullfd, stderr=nullfd, creationflags=qtlib.openflags) p.stdin.close() os.close(nullfd) sys.exit(0) # Windows and Nautilus shellext execute # "thg subcmd --listfile TMPFILE" or "thg subcmd --listfileutf8 TMPFILE"(planning) . # Extensions written in .hg/hgrc is enabled after calling # extensions.loadall(lui) # # 1. win32mbcs extension # Japanese shift_jis and Chinese big5 include '0x5c'(backslash) in filename. # Mercurial resolves this problem with win32mbcs extension. # So, thg must parse path after loading win32mbcs extension. # # 2. fixutf8 extension # fixutf8 extension requires paths encoding utf-8. # So, thg need to convert to utf-8. # _lines = [] _linesutf8 = [] def get_lines_from_listfile(filename, isutf8): global _lines global _linesutf8 try: if filename == b'-': lines = [x.replace(b"\n", b"") for x in procutil.stdin.readlines()] else: fd = open(filename, "rb") lines = [ x.replace(b"\n", b"") for x in fd.readlines() ] fd.close() os.unlink(filename) if isutf8: _linesutf8 = lines else: _lines = lines except IOError: sys.stderr.write('can not read file %r. Ignored.\n' % filename) def get_files_from_listfile(): global _lines global _linesutf8 lines = [] need_to_utf8 = False if os.name == 'nt': try: fixutf8 = extensions.find(b"fixutf8") if fixutf8: need_to_utf8 = True except KeyError: pass if need_to_utf8: lines += _linesutf8 for l in _lines: lines.append(hglib.toutf(l)) else: lines += _lines for l in _linesutf8: lines.append(hglib.fromutf(l)) # Convert absolute file paths to repo/cwd canonical cwd = encoding.getcwd() root = paths.find_root_bytes(cwd) if not root: return lines if cwd == root: cwd_rel = b'' else: cwd_rel = cwd[len(root + pycompat.ossep):] + pycompat.ossep files = [] for f in lines: try: cpath = pathutil.canonpath(root, cwd, f) # canonpath will abort on .hg/ paths except error.Abort: continue if cpath.startswith(cwd_rel): cpath = cpath[len(cwd_rel):] files.append(cpath) else: files.append(f) return files def _parse(ui, args): options = {} cmdoptions = {} try: args = fancyopts.fancyopts(args, globalopts, options) except getopt.GetoptError as inst: raise error.CommandError(None, stringutil.forcebytestr(inst)) if args: alias, args = args[0], args[1:] elif options[b'help']: help_(ui, None) sys.exit() else: alias, args = b'workbench', [] aliases, i = cmdutil.findcmd(alias, table, ui.config(b"ui", b"strict")) for a in aliases: if a.startswith(alias): alias = a break cmd = aliases[0] c = list(i[1]) # combine global options into local for o in globalopts: c.append((o[0], o[1], options[o[1]], o[3])) try: args = fancyopts.fancyopts(args, c, cmdoptions, True) except getopt.GetoptError as inst: raise error.CommandError(cmd, stringutil.forcebytestr(inst)) # separate global options back out for o in globalopts: n = o[1] options[n] = cmdoptions[n] del cmdoptions[n] listfile = options.get(b'listfile') if listfile: del options[b'listfile'] get_lines_from_listfile(listfile, False) listfileutf8 = options.get(b'listfileutf8') if listfileutf8: del options[b'listfileutf8'] get_lines_from_listfile(listfileutf8, True) return cmd, cmd and i[0] or None, args, options, cmdoptions, alias def _runcatch(ui, args): try: # read --config before doing anything else like Mercurial hglib.parseconfigopts(ui, args) # register config items specific to TortoiseHg GUI ui.setconfig(b'extensions', b'tortoisehg.util.configitems', b'', b'run') try: return runcommand(ui, args) finally: ui.flush() except error.AmbiguousCommand as inst: ui.warn(_("thg: command '%s' is ambiguous:\n %s\n") % (inst.prefix, b" ".join(inst.matches))) except error.CommandError as inst: if inst.command: ui.warn(_("thg %s: %s\n") % (inst.command, inst.message)) help_(ui, inst.command) else: ui.warn(_("thg: %s\n") % inst.message) help_(ui, b'shortlist') except error.UnknownCommand as inst: ui.warn(_("thg: unknown command '%s'\n") % inst.command) help_(ui, b'shortlist') except error.RepoError as inst: ui.warn(_("abort: %s!\n") % inst) except error.Abort as inst: ui.warn(_("abort: %s\n") % inst) if inst.hint: ui.warn(_("(%s)\n") % inst.hint) return -1 def runcommand(ui, args): cmd, func, args, options, cmdoptions, alias = _parse(ui, args) if options[b'config']: raise error.Abort(_('option --config may not be abbreviated!')) cmdoptions[b'alias'] = alias config = hgconfig.HgConfig(ui) ui.setconfig(b"ui", b"verbose", pycompat.bytestr(bool(options[b"verbose"]))) ui.setconfig(b'ui', b'debug', pycompat.bytestr(bool(options[b'debug'] or 'THGDEBUG' in os.environ))) i18n.setlanguage(config.configString('tortoisehg', 'ui.language')) if options[b'help']: return help_(ui, cmd) path = options[b'repository'] if path: if path.startswith(b'bundle:'): s = path[7:].split(b'+', 1) if len(s) == 1: path, bundle = os.getcwd(), s[0] else: path, bundle = s cmdoptions[b'bundle'] = os.path.abspath(bundle) path = urlutil.get_clone_path(ui, path)[0] # TODO: replace by abspath() if chdir() isn't necessary try: os.chdir(path) path = encoding.getcwd() except OSError: pass if options[b'profile']: options[b'nofork'] = True path = paths.find_root_bytes(path) if path: try: lui = ui.copy() lui.readconfig(os.path.join(path, b".hg", b"hgrc")) except IOError: pass else: lui = ui hglib.loadextensions(lui) args += get_files_from_listfile() if options[b'quiet']: ui.quiet = True # repository existence will be tested in qtrun() if cmd not in nonrepo_commands.split(): cmdoptions[b'repository'] = path or options[b'repository'] or b'.' cmdoptions[b'mainapp'] = True checkedfunc = util.checksignature(func) if cmd in console_commands.split(): d = lambda: checkedfunc(ui, *args, **pycompat.strkwargs(cmdoptions)) else: # disables interaction with tty as it would block GUI events ui.setconfig(b'ui', b'interactive', b'off', b'qtrun') ui.setconfig(b'ui', b'paginate', b'off', b'qtrun') # ANSI color output is useless in GUI ui.setconfig(b'ui', b'color', b'off', b'qtrun') portable_fork(ui, options) d = lambda: qtrun(checkedfunc, ui, *args, **pycompat.strkwargs(cmdoptions)) return _runcommand(lui, options, cmd, d) def _runcommand(ui, options, cmd, cmdfunc): def checkargs(): try: return cmdfunc() except error.SignatureError: raise error.CommandError(cmd, _("invalid arguments")) if options[b'profile']: format = ui.config(b'profiling', b'format') field = ui.config(b'profiling', b'sort') if format not in [b'text', b'kcachegrind']: ui.warn(_("unrecognized profiling format '%s'" " - Ignored\n") % format) format = b'text' output = ui.config(b'profiling', b'output') if output: path = util.expandpath(output) ostream = open(path, 'wb') else: ostream = procutil.stderr try: from mercurial import lsprof except ImportError: raise error.Abort(_( 'lsprof not available - install from ' 'http://codespeak.net/svn/user/arigo/hack/misc/lsprof/')) p = lsprof.Profiler() p.enable(subcalls=True) try: return checkargs() finally: p.disable() if format == b'kcachegrind': from mercurial import lsprofcalltree calltree = lsprofcalltree.KCacheGrind(p) calltree.output(ostream) else: # format == b'text' stats = lsprof.Stats(p.getstats()) stats.sort(pycompat.sysstr(field)) stats.pprint(top=10, file=ostream, climit=5) if output: ostream.close() else: return checkargs() qtrun = qtapp.QtRunner() table = {} command = registrar.command(table) # common command options globalopts = [ (b'R', b'repository', b'', _('repository root directory or symbolic path name')), (b'v', b'verbose', None, _('enable additional output')), (b'q', b'quiet', None, _('suppress output')), (b'h', b'help', None, _('display help and exit')), (b'', b'config', [], _("set/override config option (use 'section.name=value')")), (b'', b'debug', None, _('enable debugging output')), (b'', b'debugger', None, _('start debugger')), (b'', b'traceback', None, _("show verbose tracebacks without using bug reporter dialog")), (b'', b'profile', None, _('print command execution profile')), (b'', b'nofork', None, _('do not fork GUI process')), (b'', b'fork', None, _('always fork GUI process')), (b'', b'listfile', b'', _('read file list from file')), (b'', b'listfileutf8', b'', _('read file list from file encoding utf-8')), ] # common command functions def _formatfilerevset(pats): q = [b"file('path:%s')" % f for f in hglib.canonpaths(pats)] return b' or '.join(q) def _workbench(ui, *pats, **opts): root = opts.get('root') or paths.find_root_bytes() # TODO: unclear that _workbench() is called inside qtrun(). maybe this # function should receive factory object instead of using global qtrun. w = qtrun.createWorkbench() if root: root = hglib.tounicode(root) bundle = opts.get('bundle') if bundle: w.openRepo(root, False, bundle=hglib.tounicode(bundle)) else: w.showRepo(root) rev = opts.get('rev') if rev: w.goto(hglib.fromunicode(root), rev) q = opts.get('query') or _formatfilerevset(pats) if q: w.setRevsetFilter(root, hglib.tounicode(q)) if not w.currentRepoRootPath(): w.reporegistry.setVisible(True) return w # commands start here, listed alphabetically @command(b'about', [], _('thg about')) def about(ui, *pats, **opts): """about dialog""" from tortoisehg.hgqt import about as aboutmod return aboutmod.AboutDialog() @command(b'add', [], _('thg add [FILE]...')) def add(ui, repoagent, *pats, **opts): """add files""" return quickop.run(ui, repoagent, *pats, **opts) @command(b'annotate|blame', [(b'r', b'rev', b'', _('revision to annotate')), (b'n', b'line', b'', _('open to line')), (b'p', b'pattern', b'', _('initial search pattern'))], _('thg annotate'), helpbasic=True) def annotate(ui, repoagent, *pats, **opts): """annotate dialog""" from tortoisehg.hgqt import fileview dlg = filelog(ui, repoagent, *pats, **opts) dlg.setFileViewMode(fileview.AnnMode) if opts.get('line'): try: lineno = int(opts['line']) except ValueError: raise error.Abort(_('invalid line number: %s') % opts['line']) dlg.showLine(lineno) if opts.get('pattern'): dlg.setSearchPattern(hglib.tounicode(opts['pattern'])) return dlg @command(b'archive', [(b'r', b'rev', b'', _('revision to archive'))], _('thg archive')) def archive(ui, repoagent, *pats, **opts): """archive dialog""" from tortoisehg.hgqt import archive as archivemod rev = hglib.tounicode(opts.get('rev')) return archivemod.createArchiveDialog(repoagent, rev) @command(b'backout', [(b'', b'merge', None, _('merge with old dirstate parent after backout')), (b'', b'parent', b'', _('parent to choose when backing out merge')), (b'r', b'rev', b'', _('revision to backout'))], _('thg backout [OPTION]... [[-r] REV]'), helpbasic=True) def backout(ui, repoagent, *pats, **opts): """backout tool""" from tortoisehg.hgqt import backout as backoutmod if opts.get('rev'): rev = opts.get('rev') elif len(pats) == 1: rev = pats[0] else: rev = b'tip' repo = repoagent.rawRepo() rev = scmutil.revsingle(repo, rev).rev() msg = backoutmod.checkrev(repo, rev) if msg: raise error.Abort(hglib.fromunicode(msg)) return backoutmod.BackoutDialog(repoagent, rev) @command(b'bisect', [], _('thg bisect'), helpbasic=True) def bisect(ui, repoagent, *pats, **opts): """bisect dialog""" from tortoisehg.hgqt import bisect as bisectmod return bisectmod.BisectDialog(repoagent) @command(b'bookmarks|bookmark', [(b'r', b'rev', b'', _('revision'))], _('thg bookmarks [-r REV] [NAME]')) def bookmark(ui, repoagent, *names, **opts): """add or remove a movable marker""" from tortoisehg.hgqt import bookmark as bookmarkmod repo = repoagent.rawRepo() rev = scmutil.revsingle(repo, opts.get('rev')).rev() if len(names) > 1: raise error.Abort(_('only one new bookmark name allowed')) dlg = bookmarkmod.BookmarkDialog(repoagent, rev) if names: dlg.setBookmarkName(hglib.tounicode(names[0])) return dlg @command(b'clone', [(b'U', b'noupdate', None, _('the clone will include an empty working copy ' '(only a repository)')), (b'u', b'updaterev', b'', _('revision, tag or branch to check out')), (b'r', b'rev', b'', _('include the specified changeset')), (b'b', b'branch', [], _('clone only the specified branch')), (b'', b'pull', None, _('use pull protocol to copy metadata')), (b'', b'uncompressed', None, _('an alias to --stream (DEPRECATED)')), (b'', b'stream', None, _('clone with minimal data processing'))], _('thg clone [OPTION]... [SOURCE] [DEST]'), helpbasic=True) def clone(ui, *pats, **opts): """clone tool""" from tortoisehg.hgqt import clone as clonemod opts['stream'] = opts['stream'] or opts['uncompressed'] dlg = clonemod.CloneDialog(ui, hgconfig.HgConfig(ui)) dlg.clonedRepository.connect(qtrun.openRepoInWorkbench) if len(pats) >= 1: dlg.setSource(hglib.tounicode(pats[0])) if len(pats) >= 2: dlg.setDestination(hglib.tounicode(pats[1])) dlg.setRevSymbol(hglib.tounicode(opts.get('rev') or b'')) for k in ['noupdate', 'pull', 'stream']: dlg.setOption(k, bool(opts[k])) return dlg @command(b'commit|ci', [(b'u', b'user', b'', _('record user as committer')), (b'd', b'date', b'', _('record datecode as commit date'))], _('thg commit [OPTIONS] [FILE]...'), helpbasic=True) def commit(ui, repoagent, *pats, **opts): """commit tool""" from tortoisehg.hgqt import commit as commitmod repo = repoagent.rawRepo() pats = hglib.canonpaths(pats) os.chdir(repo.root) return commitmod.CommitDialog(repoagent, pats, opts) @command(b'debugblockmatcher', [], _('thg debugblockmatcher')) def debugblockmatcher(ui, *pats, **opts): """show blockmatcher widget""" from tortoisehg.hgqt import blockmatcher return blockmatcher.createTestWidget(ui) @command(b'debugbugreport', [], _('thg debugbugreport [TEXT]')) def debugbugreport(ui, *pats, **opts): """open bugreport dialog by exception""" raise Exception(' '.join(map(hglib.tounicode, pats))) @command(b'debugconsole', [], _('thg debugconsole')) def debugconsole(ui, repoagent, *pats, **opts): """open console window""" from tortoisehg.hgqt import docklog dlg = docklog.ConsoleWidget(repoagent) dlg.closeRequested.connect(dlg.close) dlg.resize(700, 400) return dlg @command(b'debuglighthg', [], _('thg debuglighthg')) def debuglighthg(ui, repoagent, *pats, **opts): from tortoisehg.hgqt import repowidget return repowidget.LightRepoWindow(qtrun.actionRegistry(), repoagent) @command(b'debugruncommand', [], _('thg debugruncommand -- COMMAND [ARGUMENT]...')) def debugruncommand(ui, repoagent, *cmdline, **opts): """run hg command in dialog""" if not cmdline: raise error.Abort(_('no command specified')) dlg = cmdui.CmdSessionDialog() dlg.setLogVisible(ui.verbose) sess = repoagent.runCommand(pycompat.maplist(hglib.tounicode, cmdline), dlg) dlg.setSession(sess) return dlg @command(b'drag_copy', [], _('thg drag_copy SOURCE... DEST')) def drag_copy(ui, repoagent, *pats, **opts): """copy the selected files to the desired directory""" # TODO: drop the disable comment after updating to pytype 2023.03.02+ opts.update(alias=b'copy', headless=True) # pytype: disable=wrong-arg-types return quickop.run(ui, repoagent, *pats, **opts) @command(b'drag_move', [], _('thg drag_move SOURCE... DEST')) def drag_move(ui, repoagent, *pats, **opts): """move the selected files to the desired directory""" # TODO: drop the disable comment after updating to pytype 2023.03.02+ opts.update(alias=b'move', headless=True) # pytype: disable=wrong-arg-types return quickop.run(ui, repoagent, *pats, **opts) @command(b'email', [(b'r', b'rev', [], _('a revision to send'))], _('thg email [REVS]'), helpbasic=True) def email(ui, repoagent, *revs, **opts): """send changesets by email""" from tortoisehg.hgqt import hgemail # TODO: same options as patchbomb if opts.get('rev'): if revs: raise error.Abort(_('use only one form to specify the revision')) revs = opts.get('rev') repo = repoagent.rawRepo() revs = scmutil.revrange(repo, revs) return hgemail.EmailDialog(repoagent, revs) @command(b'filelog', [(b'r', b'rev', b'', _('select the specified revision')), (b'', b'compare', False, _('side-by-side comparison of revisions'))], _('thg filelog [OPTION]... FILE'), helpbasic=True) def filelog(ui, repoagent, *pats, **opts): """show history of the specified file""" from tortoisehg.hgqt import filedialogs if len(pats) != 1: raise error.Abort(_('requires a single filename')) repo = repoagent.rawRepo() rev = scmutil.revsingle(repo, opts.get('rev')).rev() filename = hglib.canonpaths(pats)[0] if opts.get('compare'): dlg = filedialogs.FileDiffDialog(repoagent, filename) else: dlg = filedialogs.FileLogDialog(repoagent, filename) dlg.goto(rev) return dlg @command(b'forget', [], _('thg forget [FILE]...')) def forget(ui, repoagent, *pats, **opts): """forget selected files""" return quickop.run(ui, repoagent, *pats, **opts) @command(b'graft', [(b'r', b'rev', [], _('revisions to graft'))], _('thg graft [-r] REV...')) def graft(ui, repoagent, *revs, **opts): """graft dialog""" from tortoisehg.hgqt import graft as graftmod repo = repoagent.rawRepo() revs = list(revs) revs.extend(opts['rev']) if not hglib.graft_in_progress(repo) and not revs: raise error.Abort(_('You must provide revisions to graft')) return graftmod.GraftDialog(repoagent, None, source=[hglib.tounicode(rev) for rev in revs]) @command(b'grep|search', [(b'i', b'ignorecase', False, _('ignore case during search'))], _('thg grep'), helpbasic=True) def grep(ui, repoagent, *pats, **opts): """grep/search dialog""" from tortoisehg.hgqt import grep as grepmod upats = [hglib.tounicode(p) for p in pats] return grepmod.SearchDialog(repoagent, upats, **opts) @command(b'guess', [], _('thg guess'), helpbasic=True) def guess(ui, repoagent, *pats, **opts): """guess previous renames or copies""" from tortoisehg.hgqt import guess as guessmod return guessmod.DetectRenameDialog(repoagent, None, *pats) ### help management, adapted from mercurial.commands.help_() @command(b'help', [], _('thg help [COMMAND]')) def help_(ui, name: Optional[bytes]=None, with_version=False, **opts): """show help for a command, extension, or list of commands With no arguments, print a list of commands and short help. Given a command name, print help for that command. Given an extension name, print help for that extension, and the commands it provides.""" option_lists = [] textwidth = ui.termwidth() - 2 def addglobalopts(aliases): if ui.verbose: option_lists.append((_("global options:"), globalopts)) if name == b'shortlist': option_lists.append((_('use "thg help" for the full list ' 'of commands'), ())) else: if name == b'shortlist': msg = _('use "thg help" for the full list of commands ' 'or "thg -v" for details') elif aliases: msg = _('use "thg -v help%s" to show aliases and ' 'global options') % (name and b" " + name or b"") else: msg = _('use "thg -v help %s" to show global options') % name option_lists.append((msg, ())) def helpcmd(name: bytes) -> None: if with_version: version(ui) ui.write(b'\n') try: aliases, i = cmdutil.findcmd(name, table, False) except error.AmbiguousCommand as inst: prefix = inst.prefix select = lambda c: c.startswith(prefix) helplist(_('list of commands:\n\n'), select) return # synopsis ui.write(b"%s\n" % i[2]) # aliases if not ui.quiet and len(aliases) > 1: ui.write(_("\naliases: %s\n") % b', '.join(aliases[1:])) # description doc = i[0].__doc__ if doc: doc = hglib.fromunicode(doc) if ui.quiet: doc = doc.splitlines(False)[0] else: doc = _("(no help text available)") ui.write(b"\n%s\n" % doc.rstrip()) if not ui.quiet: # options if i[1]: option_lists.append((_("options:\n"), i[1])) addglobalopts(False) def helplist(header, select=None): h = {} cmds = {} for c, e in table.items(): f = c.split(b"|", 1)[0] if select and not select(f): continue if (not select and name != b'shortlist' and e[0].__module__ != __name__): continue if name == b"shortlist": continue if not ui.debugflag and f.startswith(b"debug"): continue doc = e[0].__doc__ if doc and 'DEPRECATED' in doc and not ui.verbose: continue #doc = gettext(doc) if not doc: h[f] = _("(no help text available)") else: h[f] = hglib.fromunicode(doc.splitlines()[0].rstrip()) cmds[f] = c if not h: ui.status(_('no commands defined\n')) return ui.status(header) fns = sorted(h) m = max(map(len, fns)) for f in fns: if ui.verbose: commands = cmds[f].replace(b"|", b", ") ui.write(b" %s:\n %s\n" % (commands, h[f])) else: ui.write(b'%s\n' % (stringutil.wrap(h[f], textwidth, initindent=b' %-*s ' % (m, f), hangindent=b' ' * (m + 4)))) if not ui.quiet: addglobalopts(True) def helptopic(name: bytes) -> None: from mercurial import help for topic in help.helptable: names, header, doc = topic[0:3] if name in names: break else: raise error.UnknownCommand(name) # description if not doc: doc = _("(no help text available)") if hasattr(doc, '__call__'): doc = doc(ui) ui.write(b"%s\n" % header) ui.write(b"%s\n" % doc.rstrip()) if name and name != b'shortlist': i = None for f in (helpcmd, helptopic): try: f(name) i = None break except error.UnknownCommand as inst: i = inst if i: raise i else: # program name if ui.verbose or with_version: version(ui) else: ui.status(_("Thg - TortoiseHg's GUI tools for Mercurial SCM (Hg)\n")) ui.status(b'\n') # list of commands if name == b"shortlist": header = _('basic commands:\n\n') else: header = _('list of commands:\n\n') helplist(header) # list all option lists opt_output = [] for title, options in option_lists: opt_output.append((b"\n%s" % title, None)) for shortopt, longopt, default, desc in options: if b"DEPRECATED" in desc and not ui.verbose: continue opt_output.append((b"%2s%s" % (shortopt and b"-%s" % shortopt, longopt and b" --%s" % longopt), b"%s%s" % (desc, default and _(" (default: %s)") % default or b""))) if opt_output: opts_len = max([len(line[0]) for line in opt_output if line[1]] or [0]) for first, second in opt_output: if second: initindent = b' %-*s ' % (opts_len, first) hangindent = b' ' * (opts_len + 3) ui.write(b'%s\n' % (stringutil.wrap(second, textwidth, initindent=initindent, hangindent=hangindent))) else: ui.write(b"%s\n" % first) @command(b'hgignore|ignore|filter', [], _('thg hgignore [FILE]'), helpbasic=True) def hgignore(ui, repoagent, *pats, **opts): """ignore filter editor""" from tortoisehg.hgqt import hgignore as hgignoremod if pats and pats[0].endswith(b'.hgignore'): pats = [] return hgignoremod.HgignoreDialog(repoagent, None, *pats) @command(b'import', [(b'', b'mq', False, _('import to the patch queue (MQ)'))], _('thg import [OPTION] [SOURCE]...')) def import_(ui, repoagent, *pats, **opts): """import an ordered set of patches""" from tortoisehg.hgqt import thgimport dlg = thgimport.ImportDialog(repoagent, None, **opts) dlg.setfilepaths(pats) return dlg @command(b'init', [], _('thg init [DEST]'), helpbasic=True) def init(ui, dest='.', **opts): """init dialog""" from tortoisehg.hgqt import hginit dlg = hginit.InitDialog(ui, hglib.tounicode(dest)) dlg.newRepository.connect(qtrun.openRepoInWorkbench) return dlg @command(b'lock|unlock', [], _('thg lock'), helpbasic=True) def lock(ui, repoagent, **opts): """lock dialog""" from tortoisehg.hgqt import locktool return locktool.LockDialog(repoagent) @command(b'log|history|explorer|workbench', [(b'k', b'query', b'', _('search for a given text or revset')), (b'r', b'rev', b'', _('select the specified revision')), (b'l', b'limit', b'', _('(DEPRECATED)')), (b'', b'newworkbench', None, _('open a new workbench window'))], _('thg log [OPTIONS] [FILE]'), helpbasic=True) def log(ui, *pats, **opts): """workbench application""" if opts.get('query') and pats: # 'filelog' does not support -k, and multiple filenames are packed # into revset query that may conflict with user-supplied one. raise error.Abort(_('cannot specify both -k/--query and filenames')) root = opts.get('root') or paths.find_root_bytes() if root and len(pats) == 1 and os.path.isfile(pats[0]): # TODO: do not instantiate repo here repo = thgrepo.repository(ui, root) repoagent = repo._pyqtobj return filelog(ui, repoagent, *pats, **opts) # Before starting the workbench, we must check if we must try to reuse an # existing workbench window (we don't by default) # Note that if the "single workbench mode" is enabled, and there is no # existing workbench window, we must tell the Workbench object to create # the workbench server singleworkbenchmode = ui.configbool(b'tortoisehg', b'workbench.single') mustcreateserver = False if singleworkbenchmode: newworkbench = opts.get('newworkbench') if root and not newworkbench: # TODO: send -rREV to server q = opts.get('query') or _formatfilerevset(pats) if qtapp.connectToExistingWorkbench(root, q): # The were able to connect to an existing workbench server, and # it confirmed that it has opened the selected repo for us sys.exit(0) # there is no pre-existing workbench server serverexists = False else: serverexists = qtapp.connectToExistingWorkbench(b'[echo]') # When in " single workbench mode", we must create a server if there # is not one already mustcreateserver = not serverexists w = _workbench(ui, *pats, **opts) if mustcreateserver: qtrun.createWorkbenchServer() return w @command(b'manifest', [(b'r', b'rev', b'', _('revision to display')), (b'n', b'line', b'', _('open to line')), (b'p', b'pattern', b'', _('initial search pattern'))], _('thg manifest [-r REV] [FILE]')) def manifest(ui, repoagent, *pats, **opts): """display the current or given revision of the project manifest""" from tortoisehg.hgqt import revdetails as revdetailsmod repo = repoagent.rawRepo() rev = scmutil.revsingle(repo, opts.get('rev')).rev() dlg = revdetailsmod.createManifestDialog(repoagent, rev) if pats: path = hglib.canonpaths(pats)[0] dlg.setFilePath(hglib.tounicode(path)) if opts.get('line'): try: lineno = int(opts['line']) except ValueError: raise error.Abort(_('invalid line number: %s') % opts['line']) dlg.showLine(lineno) if opts.get('pattern'): dlg.setSearchPattern(hglib.tounicode(opts['pattern'])) return dlg @command(b'merge', [(b'r', b'rev', b'', _('revision to merge'))], _('thg merge [[-r] REV]'), helpbasic=True) def merge(ui, repoagent, *pats, **opts): """merge wizard""" from tortoisehg.hgqt import merge as mergemod rev = opts.get('rev') or None if not rev and len(pats): rev = pats[0] if not rev: raise error.Abort(_('Merge revision not specified or not found')) repo = repoagent.rawRepo() rev = scmutil.revsingle(repo, rev).rev() return mergemod.MergeDialog(repoagent, rev) @command(b'postreview', [(b'r', b'rev', [], _('a revision to post'))], _('thg postreview [-r] REV...')) def postreview(ui, repoagent, *pats, **opts): """post changesets to reviewboard""" from tortoisehg.hgqt import postreview as postreviewmod repo = repoagent.rawRepo() if b'reviewboard' not in repo.extensions(): url = b'https://www.mercurial-scm.org/wiki/ReviewboardExtension' raise error.Abort(_('reviewboard extension not enabled'), hint=(_('see %(url)s') % {b'url': url})) revs = opts.get('rev') or None if not revs and len(pats): revs = pats if not revs: raise error.Abort(_('no revisions specified')) return postreviewmod.PostReviewDialog(repo.ui, repoagent, revs) @command(b'prune|obsolete', [(b'r', b'rev', [], _('revisions to prune'))], _('thg prune [-r] REV...'), helpbasic=True) def prune(ui, repoagent, *revs, **opts): """hide changesets by marking them obsolete""" from tortoisehg.hgqt import prune as prunemod revs = list(revs) revs.extend(opts.get('rev')) revs = pycompat.maplist(hglib.tounicode, revs) if len(revs) < 2: revspec = ''.join(revs) else: revspec = hglib.formatrevspec('%lr', revs) return prunemod.createPruneDialog(repoagent, revspec) @command(b'purge', [], _('thg purge'), helpbasic=True) def purge(ui, repoagent, *pats, **opts): """purge unknown and/or ignore files from repository""" from tortoisehg.hgqt import purge as purgemod return purgemod.PurgeDialog(repoagent) @command(b'rebase', [(b'', b'keep', False, _('keep original changesets')), (b'', b'keepbranches', False, _('keep original branch names')), (b'', b'detach', False, _('(DEPRECATED)')), (b's', b'source', b'', _('rebase from the specified changeset')), (b'd', b'dest', b'', _('rebase onto the specified changeset'))], _('thg rebase -s REV -d REV [--keep]'), helpbasic=True) def rebase(ui, repoagent, *pats, **opts): """rebase dialog""" from tortoisehg.hgqt import rebase as rebasemod repo = repoagent.rawRepo() if hglib.rebase_in_progress(repo): # TODO: move info dialog into RebaseDialog if possible qtlib.InfoMsgBox(hglib.tounicode(_('Rebase already in progress')), hglib.tounicode(_('Resuming rebase already in ' 'progress'))) elif not opts['source'] or not opts['dest']: raise error.Abort(_('You must provide source and dest arguments')) for name in ('source', 'dest'): revspec = opts[name] if revspec: revs = scmutil.revrange(repo, [revspec]) if not revs: raise error.Abort( _("empty revision range in --%s") % hglib.fromunicode(name) ) if len(revs) > 1: raise error.Abort( _("multiple revisions cannot be given to --%s") % hglib.fromunicode(name) ) opts[name] = revs.first() return rebasemod.RebaseDialog(repoagent, None, **opts) @command(b'rejects', [], _('thg rejects [FILE]')) def rejects(ui, *pats, **opts): """manually resolve rejected patch chunks""" from tortoisehg.hgqt import rejects as rejectsmod if len(pats) != 1: raise error.Abort(_('You must provide the path to a file')) path = pats[0] if path.endswith(b'.rej'): path = path[:-4] return rejectsmod.RejectsDialog(ui, path) @command(b'remove|rm', [], _('thg remove [FILE]...')) def remove(ui, repoagent, *pats, **opts): """remove selected files""" return quickop.run(ui, repoagent, *pats, **opts) @command(b'rename|mv|copy', [], _('thg rename [SOURCE] [DEST]')) def rename(ui, repoagent, source=None, dest=None, **opts): """rename dialog""" from tortoisehg.hgqt import rename as renamemod repo = repoagent.rawRepo() cwd = repo.getcwd() if source: source = hglib.tounicode(pathutil.canonpath(repo.root, cwd, source)) if dest: dest = hglib.tounicode(pathutil.canonpath(repo.root, cwd, dest)) iscopy = (opts.get('alias') == b'copy') return renamemod.RenameDialog(repoagent, None, source, dest, iscopy) @command(b'repoconfig', [(b'', b'focus', b'', _('field to give initial focus'))], _('thg repoconfig'), helpbasic=True) def repoconfig(ui, repoagent, *pats, **opts): """repository configuration editor""" from tortoisehg.hgqt import settings return settings.SettingsDialog(True, focus=opts.get('focus')) @command(b'resolve', [], _('thg resolve')) def resolve(ui, repoagent, *pats, **opts): """resolve dialog""" from tortoisehg.hgqt import resolve as resolvemod return resolvemod.ResolveDialog(repoagent) @command(b'revdetails', [(b'r', b'rev', b'', _('the revision to show'))], _('thg revdetails [-r REV]'), helpbasic=True) def revdetails(ui, repoagent, *pats, **opts): """revision details tool""" from tortoisehg.hgqt import revdetails as revdetailsmod repo = repoagent.rawRepo() os.chdir(repo.root) rev = scmutil.revsingle(repo, opts.get('rev')).rev() return revdetailsmod.RevDetailsDialog(repoagent, rev=rev) @command(b'revert', [], _('thg revert [FILE]...')) def revert(ui, repoagent, *pats, **opts): """revert selected files""" return quickop.run(ui, repoagent, *pats, **opts) @command(b'serve', [(b'', b'web-conf', b'', _('name of the hgweb config file (serve more than ' 'one repository)')), (b'', b'webdir-conf', b'', _('name of the hgweb config file (DEPRECATED)'))], _('thg serve [--web-conf FILE]'), helpbasic=True) def serve(ui, *pats, **opts): """start stand-alone webserver""" from tortoisehg.hgqt import serve as servemod return servemod.run(ui, *pats, **opts) if os.name == 'nt': # TODO: extra detection to determine if shell extension is installed @command(b'shellconfig', [], _('thg shellconfig')) def shellconfig(ui, *pats, **opts): """explorer extension configuration editor""" from tortoisehg.hgqt import shellconf return shellconf.ShellConfigWindow() @command(b'shelve|unshelve', [], _('thg shelve')) def shelve(ui, repoagent, *pats, **opts): """move changes between working directory and patches""" from tortoisehg.hgqt import shelve as shelvemod return shelvemod.ShelveDialog(repoagent) @command(b'sign', [(b'f', b'force', None, _('sign even if the sigfile is modified')), (b'l', b'local', None, _('make the signature local')), (b'k', b'key', b'', _('the key id to sign with')), (b'', b'no-commit', None, _('do not commit the sigfile after signing')), (b'm', b'message', b'', _('use as commit message'))], _('thg sign [-f] [-l] [-k KEY] [-m TEXT] [REV]'), helpbasic=True) def sign(ui, repoagent, *pats, **opts): """sign tool""" from tortoisehg.hgqt import sign as signmod repo = repoagent.rawRepo() if b'gpg' not in repo.extensions(): raise error.Abort(_('Please enable the Gpg extension first.')) kargs = {} rev = len(pats) > 0 and pats[0] or None if rev: kargs['rev'] = rev return signmod.SignDialog(repoagent, opts=opts, **kargs) @command(b'status|st', [(b'c', b'clean', False, _('show files without changes')), (b'i', b'ignored', False, _('show ignored files'))], _('thg status [OPTIONS] [FILE]'), helpbasic=True) def status(ui, repoagent, *pats, **opts): """browse working copy status""" from tortoisehg.hgqt import status as statusmod repo = repoagent.rawRepo() pats = hglib.canonpaths(pats) os.chdir(repo.root) return statusmod.StatusDialog(repoagent, pats, opts) @command(b'strip', [(b'f', b'force', None, _('discard uncommitted changes (no backup)')), (b'n', b'nobackup', None, _('do not back up stripped revisions')), (b'k', b'keep', None, _('do not modify working copy during strip')), (b'r', b'rev', b'', _('revision to strip'))], _('thg strip [-k] [-f] [-n] [[-r] REV]'), helpbasic=True) def strip(ui, repoagent, *pats, **opts): """strip dialog""" from tortoisehg.hgqt import thgstrip rev = None if opts.get('rev'): rev = opts.get('rev') elif len(pats) == 1: rev = pats[0] return thgstrip.createStripDialog(repoagent, rev=hglib.tounicode(rev), opts=opts) @command(b'sync|synchronize', [(b'B', b'bookmarks', False, _('open the bookmark sync window'))], _('thg sync [OPTION]... [PEER]'), helpbasic=True) def sync(ui, repoagent, url=None, **opts): """synchronize with other repositories""" from tortoisehg.hgqt import bookmark as bookmarkmod, repowidget url = hglib.tounicode(url) if opts.get('bookmarks'): return bookmarkmod.SyncBookmarkDialog(repoagent, url) repo = repoagent.rawRepo() repo.ui.setconfig(b'tortoisehg', b'defaultwidget', b'sync') w = repowidget.LightRepoWindow(qtrun.actionRegistry(), repoagent) if url: w.setSyncUrl(url) return w @command(b'tag', [(b'f', b'force', None, _('replace existing tag')), (b'l', b'local', None, _('make the tag local')), (b'r', b'rev', b'', _('revision to tag')), (b'', b'remove', None, _('remove a tag')), (b'm', b'message', b'', _('use as commit message'))], _('thg tag [-f] [-l] [-m TEXT] [-r REV] [NAME]'), helpbasic=True) def tag(ui, repoagent, *pats, **opts): """tag tool""" from tortoisehg.hgqt import tag as tagmod kargs = {} tag = len(pats) > 0 and pats[0] or None if tag: kargs['tag'] = tag rev = opts.get('rev') if rev: kargs['rev'] = hglib.tounicode(rev) return tagmod.TagDialog(repoagent, opts=opts, **kargs) @command(b'thgstatus', [(b'', b'delay', None, _('wait until the second ticks over')), (b'n', b'notify', [], _('notify the shell for paths given')), (b'', b'remove', None, _('remove the status cache')), (b's', b'show', None, _('show the contents of the status cache ' '(no update)')), (b'', b'all', None, _('update all repos in current dir'))], _('thg thgstatus [OPTION]')) def thgstatus(ui, *pats, **opts): """update TortoiseHg status cache""" from tortoisehg.util import thgstatus as thgstatusmod thgstatusmod.run(ui, *pats, **opts) @command(b'topics', [(b'r', b'rev', b'', _('revision'))], _('thg topics [-r REV] [NAME]')) def topics(ui, repoagent, *names, **opts): """set or clear a topic""" repo = repoagent.rawRepo() if b'topic' not in repo.extensions(): raise error.Abort(_('Please enable the Topic extension first.')) from tortoisehg.hgqt import topic as topicmod rev = scmutil.revsingle(repo, opts.get('rev'), default=None).rev() if len(names) > 1: raise error.Abort(_('only one new topic name allowed')) dlg = topicmod.TopicDialog(repoagent, rev) if names: dlg.setTopicName(hglib.tounicode(names[0])) return dlg @command(b'update|checkout|co', [(b'C', b'clean', None, _('discard uncommitted changes (no backup)')), (b'r', b'rev', b'', _('revision to update')),], _('thg update [-C] [[-r] REV]'), helpbasic=True) def update(ui, repoagent, *pats, **opts): """update/checkout tool""" from tortoisehg.hgqt import update as updatemod rev = None if opts.get('rev'): rev = hglib.tounicode(opts.get('rev')) elif len(pats) == 1: rev = hglib.tounicode(pats[0]) return updatemod.UpdateDialog(repoagent, rev, None, opts) @command(b'userconfig', [(b'', b'focus', b'', _('field to give initial focus'))], _('thg userconfig'), helpbasic=True) def userconfig(ui, *pats, **opts): """user configuration editor""" from tortoisehg.hgqt import settings return settings.SettingsDialog(False, focus=opts.get('focus')) @command(b'vdiff', [(b'c', b'change', b'', _('changeset to view in diff tool')), (b'r', b'rev', [], _('revisions to view in diff tool')), (b'b', b'bundle', b'', _('bundle file to preview'))], _('launch visual diff tool'), helpbasic=True) def vdiff(ui, repoagent, *pats, **opts): """launch configured visual diff tool""" from tortoisehg.hgqt import visdiff repo = repoagent.rawRepo() if opts.get('bundle'): repo = thgrepo.repository(ui, opts.get('bundle')) pats = hglib.canonpaths(pats) rev = opts.get('rev') if rev: opts['rev'] = [hglib.tounicode(r) for r in rev] rev = opts.get('change') if rev: opts['change'] = hglib.tounicode(rev) return visdiff.visualdiff(ui, repo, pats, opts) @command(b'version', [(b'v', b'verbose', None, _('print license'))], _('thg version [OPTION]'), helpbasic=True) def version(ui, **opts): """output version and copyright information""" ui.write(_('TortoiseHg Dialogs (version %s), ' 'Mercurial (version %s)\n') % (pycompat.sysbytes(thgversion.version()), pycompat.sysbytes(hglib.hgversion))) if not ui.quiet: ui.write(shortlicense) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730809007.0 tortoisehg-6.9/tortoisehg/hgqt/serve.py0000644000000000000000000002212014712406257017152 0ustar00rootroot# serve.py - TortoiseHg dialog to start web server # # Copyright 2010 Yuya Nishihara # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os import tempfile from .qtcore import ( Qt, pyqtSlot, ) from .qtgui import ( QDialog, QSystemTrayIcon, ) from mercurial import ( error, pycompat, util, ) from ..util import ( hglib, paths, wconfig, ) from ..util.i18n import _ from . import ( cmdcore, cmdui, qtlib, ) from .serve_ui import Ui_ServeDialog from .webconf import WebconfForm if hglib.TYPE_CHECKING: from typing import ( List, Text, Tuple, Optional, ) from .qtgui import ( QWidget, ) from mercurial import ( ui as uimod, ) from ..util.typelib import ( IniConfig, ) class ServeDialog(QDialog): """Dialog for serving repositories via web""" def __init__(self, ui: uimod.ui, webconf: Optional[IniConfig], parent: Optional[QWidget] = None) -> None: super(ServeDialog, self).__init__(parent) self.setWindowFlags((self.windowFlags() | Qt.WindowType.WindowMinimizeButtonHint) & ~Qt.WindowType.WindowContextHelpButtonHint) self.setWindowIcon(qtlib.geticon('hg-serve')) self._qui = Ui_ServeDialog() self._qui.setupUi(self) self._initwebconf(webconf) self._initcmd(ui) self._initactions() self._updateform() def _initcmd(self, ui: uimod.ui) -> None: # TODO: forget old logs? self._log_edit = cmdui.LogWidget(self) self._qui.details_tabs.addTab(self._log_edit, _('Log')) # as of hg 3.0, hgweb does not cooperate with command-server channel self._agent = cmdcore.CmdAgent(ui, self, worker='proc') self._agent.outputReceived.connect(self._log_edit.appendLog) self._agent.busyChanged.connect(self._updateform) def _initwebconf(self, webconf: Optional[IniConfig]) -> None: self._webconf_form = WebconfForm(webconf=webconf, parent=self) self._qui.details_tabs.addTab(self._webconf_form, _('Repositories')) def _initactions(self) -> None: self._qui.start_button.clicked.connect(self.start) self._qui.stop_button.clicked.connect(self.stop) @pyqtSlot() def _updateform(self) -> None: """update form availability and status text""" self._updatestatus() self._qui.start_button.setEnabled(not self.isstarted()) self._qui.stop_button.setEnabled(self.isstarted()) self._qui.settings_button.setEnabled(not self.isstarted()) self._qui.port_edit.setEnabled(not self.isstarted()) self._webconf_form.setEnabled(not self.isstarted()) def _updatestatus(self) -> None: if self.isstarted(): # TODO: escape special chars link = '%s' % (self.rooturl, self.rooturl) msg = _('Running at %s') % link else: msg = _('Stopped') self._qui.status_edit.setText(msg) @pyqtSlot() def start(self) -> None: """Start web server""" if self.isstarted(): return self._agent.runCommand(self._cmdargs()) def _cmdargs(self) -> List[Text]: """Build command args to run server""" a = ['serve', '--port', str(self.port), '-v'] if self._singlerepo: a += ['-R', self._singlerepo] else: a += ['--web-conf', self._tempwebconf()] return a def _tempwebconf(self) -> Text: """Save current webconf to temporary file; return its path""" if not hasattr(self._webconf, 'write'): return hglib.tounicode(self._webconf.path) # pytype: disable=attribute-error assert isinstance(self._webconf, wconfig._wconfig) # help pytype fd, fname = tempfile.mkstemp(prefix=b'webconf_', dir=qtlib.gettempdir()) f = os.fdopen(fd, 'w') try: self._webconf.write(f) return hglib.tounicode(fname) finally: f.close() @property def _webconf(self) -> IniConfig: """Selected webconf object""" return self._webconf_form.webconf @property def _singlerepo(self) -> Optional[Text]: """Return repository path if serving single repository""" # TODO: The caller crashes if this returns None with: # `'ServeDialog' object has no attribute '_singlerepo'` # NOTE: we cannot use web-conf to serve single repository at '/' path if len(self._webconf[b'paths']) != 1: return path = self._webconf.get(b'paths', b'/') if path and b'*' not in path: # exactly a single repo (no wildcard) return hglib.tounicode(path) @pyqtSlot() def stop(self) -> None: """Stop web server""" self._agent.abortCommands() def reject(self) -> None: self.stop() super(ServeDialog, self).reject() def isstarted(self) -> bool: """Is the web server running?""" return self._agent.isBusy() @property def rooturl(self) -> Text: """Returns the root URL of the web server""" # TODO: scheme, hostname ? return 'http://localhost:%d' % self.port @property def port(self) -> int: """Port number of the web server""" return int(self._qui.port_edit.value()) def setport(self, port: int) -> None: self._qui.port_edit.setValue(port) def keyPressEvent(self, event): if self.isstarted() and event.key() == Qt.Key.Key_Escape: self.stop() return return super(ServeDialog, self).keyPressEvent(event) def closeEvent(self, event): if self.isstarted(): self._minimizetotray() event.ignore() return return super(ServeDialog, self).closeEvent(event) @util.propertycache def _trayicon(self): icon = QSystemTrayIcon(self.windowIcon(), parent=self) icon.activated.connect(self._restorefromtray) icon.setToolTip(self.windowTitle()) # TODO: context menu return icon # TODO: minimize to tray by minimize button @pyqtSlot() def _minimizetotray(self): self._trayicon.show() self._trayicon.showMessage(_('TortoiseHg Web Server'), _('Running at %s') % self.rooturl) self.hide() @pyqtSlot() def _restorefromtray(self): self._trayicon.hide() self.show() @pyqtSlot() def on_settings_button_clicked(self): from tortoisehg.hgqt import settings settings.SettingsDialog(parent=self, focus='web.name').exec() def _asconfigliststr(value: bytes) -> bytes: r""" >>> _asconfigliststr(b'foo') b'foo' >>> _asconfigliststr(b'foo bar') b'"foo bar"' >>> _asconfigliststr(b'foo,bar') b'"foo,bar"' >>> _asconfigliststr(b'foo "bar"') b'"foo \\"bar\\""' """ # ui.configlist() uses isspace(), which is locale-dependent if any(c.isspace() or c == b',' for c in pycompat.iterbytestr(value)): return b'"' + value.replace(b'"', b'\\"') + b'"' else: return value def _readconfig(ui: uimod.ui, repopath: Optional[bytes], webconfpath: Optional[bytes]) -> Tuple[uimod.ui, Optional[IniConfig]]: """Create new ui and webconf object and read appropriate files""" lui = ui.copy() if webconfpath: lui.readconfig(webconfpath) # TODO: handle file not found c = wconfig.readfile(webconfpath) c.path = os.path.abspath(webconfpath) return lui, c elif repopath: # imitate webconf for single repo lui.readconfig(os.path.join(repopath, b'.hg', b'hgrc'), repopath) c = wconfig.config() try: if not os.path.exists(os.path.join(repopath, b'.hgsub')): # no _asconfigliststr(repopath) for now, because ServeDialog # cannot parse it as a list in single-repo mode. c.set(b'paths', b'/', repopath) else: # since hg 8cbb59124e67, path entry is parsed as a list base = hglib.shortreponame(lui) or os.path.basename(repopath) c.set(b'paths', base, _asconfigliststr(os.path.join(repopath, b'**'))) except (EnvironmentError, error.Abort, error.RepoError): c.set(b'paths', b'/', repopath) return lui, c else: return lui, None def run(ui: uimod.ui, *pats, **opts) -> ServeDialog: # TODO: No known caller provides **opts so bytes vs str is unknown repopath = opts.get('root') or paths.find_root_bytes() webconfpath = opts.get('web_conf') or opts.get('webdir_conf') lui, webconf = _readconfig(ui, repopath, webconfpath) dlg = ServeDialog(lui, webconf=webconf) try: dlg.setport(int(lui.config(b'web', b'port'))) except ValueError: pass if repopath or webconfpath: dlg.start() return dlg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1615631359.0 tortoisehg-6.9/tortoisehg/hgqt/serve.ui0000644000000000000000000001004614023111777017136 0ustar00rootroot ServeDialog 0 0 500 400 Web Server QFormLayout::ExpandingFieldsGrow Port: port_edit Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter 1 65535 8000 Status: 0 0 Qt::RichText true Start true Stop false Qt::Vertical QSizePolicy::Expanding 0 5 Settings false -1 port_edit start_button stop_button settings_button details_tabs ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033565.0 tortoisehg-6.9/tortoisehg/hgqt/serve_ui.py0000644000000000000000000001116214742203535017650 0ustar00rootroot# -*- coding: utf-8 -*- # Form implementation generated from reading ui file '/home/yuya/work/hghacks/thg/tortoisehg/hgqt/serve.ui' # # Created by: PyQt5 UI code generator 5.15.11 # # WARNING: Any manual changes made to this file will be lost when pyuic5 is # run again. Do not edit this file unless you know what you are doing. from tortoisehg.util.i18n import _ from PyQt5 import QtCore, QtGui, QtWidgets class Ui_ServeDialog(object): def setupUi(self, ServeDialog): ServeDialog.setObjectName("ServeDialog") ServeDialog.resize(500, 400) self.dialog_layout = QtWidgets.QVBoxLayout(ServeDialog) self.dialog_layout.setObjectName("dialog_layout") self.top_layout = QtWidgets.QHBoxLayout() self.top_layout.setObjectName("top_layout") self.opts_layout = QtWidgets.QFormLayout() self.opts_layout.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) self.opts_layout.setObjectName("opts_layout") self.port_label = QtWidgets.QLabel(ServeDialog) self.port_label.setObjectName("port_label") self.opts_layout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.port_label) self.port_edit = QtWidgets.QSpinBox(ServeDialog) self.port_edit.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) self.port_edit.setMinimum(1) self.port_edit.setMaximum(65535) self.port_edit.setProperty("value", 8000) self.port_edit.setObjectName("port_edit") self.opts_layout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.port_edit) self.status_label = QtWidgets.QLabel(ServeDialog) self.status_label.setObjectName("status_label") self.opts_layout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.status_label) self.status_edit = QtWidgets.QLabel(ServeDialog) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.status_edit.sizePolicy().hasHeightForWidth()) self.status_edit.setSizePolicy(sizePolicy) self.status_edit.setText("") self.status_edit.setTextFormat(QtCore.Qt.RichText) self.status_edit.setOpenExternalLinks(True) self.status_edit.setObjectName("status_edit") self.opts_layout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.status_edit) self.top_layout.addLayout(self.opts_layout) self.actions_layout = QtWidgets.QVBoxLayout() self.actions_layout.setObjectName("actions_layout") self.start_button = QtWidgets.QPushButton(ServeDialog) self.start_button.setDefault(True) self.start_button.setObjectName("start_button") self.actions_layout.addWidget(self.start_button) self.stop_button = QtWidgets.QPushButton(ServeDialog) self.stop_button.setAutoDefault(False) self.stop_button.setObjectName("stop_button") self.actions_layout.addWidget(self.stop_button) spacerItem = QtWidgets.QSpacerItem(0, 5, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) self.actions_layout.addItem(spacerItem) self.settings_button = QtWidgets.QPushButton(ServeDialog) self.settings_button.setAutoDefault(False) self.settings_button.setObjectName("settings_button") self.actions_layout.addWidget(self.settings_button) self.top_layout.addLayout(self.actions_layout) self.top_layout.setStretch(0, 1) self.dialog_layout.addLayout(self.top_layout) self.details_tabs = QtWidgets.QTabWidget(ServeDialog) self.details_tabs.setObjectName("details_tabs") self.dialog_layout.addWidget(self.details_tabs) self.dialog_layout.setStretch(1, 1) self.port_label.setBuddy(self.port_edit) self.retranslateUi(ServeDialog) self.details_tabs.setCurrentIndex(-1) QtCore.QMetaObject.connectSlotsByName(ServeDialog) ServeDialog.setTabOrder(self.port_edit, self.start_button) ServeDialog.setTabOrder(self.start_button, self.stop_button) ServeDialog.setTabOrder(self.stop_button, self.settings_button) ServeDialog.setTabOrder(self.settings_button, self.details_tabs) def retranslateUi(self, ServeDialog): _translate = QtCore.QCoreApplication.translate ServeDialog.setWindowTitle(_("Web Server")) self.port_label.setText(_("Port:")) self.status_label.setText(_("Status:")) self.start_button.setText(_("Start")) self.stop_button.setText(_("Stop")) self.settings_button.setText(_("Settings")) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730809007.0 tortoisehg-6.9/tortoisehg/hgqt/settings.py0000644000000000000000000023064714712406257017705 0ustar00rootroot# settings.py - Configuration dialog for TortoiseHg and Mercurial # # Copyright 2010 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os from typing import ( Optional, ) from .qtcore import ( QEvent, QSettings, QTimer, Qt, pyqtSignal, pyqtSlot, ) from .qtgui import ( QCheckBox, QComboBox, QCompleter, QDialog, QDialogButtonBox, QFileDialog, QFileSystemModel, QFont, QFontDialog, QFormLayout, QFrame, QGridLayout, QHBoxLayout, QIntValidator, QLabel, QLineEdit, QListView, QListWidget, QListWidgetItem, QMessageBox, QPalette, QPushButton, QRadioButton, QStackedWidget, QStyle, QTabWidget, QTextBrowser, QTextEdit, QVBoxLayout, QWidget, ) from mercurial import ( error, extensions, phases, pycompat, util, ) from mercurial.utils import ( stringutil, ) from ..util import ( editor, gpg, hglib, i18n, paths, terminal, wconfig, ) from ..util.i18n import _ from . import ( customtools, fileencoding, qscilib, qtlib, thgrepo, ) if hglib.TYPE_CHECKING: from typing import ( List, Text, ) from ..util.typelib import ( IniConfig, ) if os.name == 'nt': from ..util import bugtraq _hasbugtraq = True else: _hasbugtraq = False # Technical Debt # stacked widget or pages need to be scrollable # we need a consistent icon set # connect to thgrepo.configChanged signal and refresh _unspecstr = _('') ENTRY_WIDTH = 300 def hasExtension(extname): for name, module in extensions.extensions(): if hglib.tounicode(name) == extname: return True return False class SettingsCombo(QComboBox): defaults: List[Text] def __init__(self, parent=None, **opts): QComboBox.__init__(self, parent, toolTip=opts['tooltip']) self.opts = opts self.setEditable(opts.get('canedit', False)) self.setValidator(opts.get('validator', None)) self.defaults = opts.get('defaults', []) if self.defaults and self.isEditable(): self.setCompleter(QCompleter(self.defaults, self)) self.curvalue = None self.loaded = False if 'nohist' in opts: self.previous = [] else: settings = opts['settings'] slist = qtlib.readStringList(settings, 'settings/' + opts['cpath']) self.previous = [s for s in slist if s] self.setMinimumWidth(ENTRY_WIDTH) def resetList(self): self.clear() ucur = hglib.tounicode(self.curvalue) if self.opts.get('defer') and not self.loaded: if self.curvalue is None: # unspecified self.addItem(_unspecstr) else: self.addItem(ucur or '...') return self.addItem(_unspecstr) curindex = None for s in self.defaults: if ucur == s: curindex = self.count() self.addItem(s) if self.defaults and self.previous: self.insertSeparator(len(self.defaults)+1) for m in self.previous: if ucur == m and not curindex: curindex = self.count() self.addItem(m) if curindex is not None: self.setCurrentIndex(curindex) elif self.curvalue is None: self.setCurrentIndex(0) elif self.curvalue: self.addItem(ucur) self.setCurrentIndex(self.count()-1) else: # empty string self.setEditText(ucur) def showPopup(self): if self.opts.get('defer') and not self.loaded: self.defaults = self.opts['defer']() self.loaded = True self.resetList() QComboBox.showPopup(self) ## common APIs for all edit widgets def setValue(self, curvalue): self.curvalue = curvalue self.resetList() def value(self): utext = self.currentText() if utext == _unspecstr: return None if ('nohist' in self.opts or utext in self.defaults + self.previous or not utext): return hglib.fromunicode(utext) self.previous.insert(0, utext) self.previous = self.previous[:10] settings = QSettings() settings.setValue('settings/'+self.opts['cpath'], self.previous) return hglib.fromunicode(utext) def isDirty(self): return self.value() != self.curvalue class BoolRBGroup(QWidget): def __init__(self, parent=None, **opts): QWidget.__init__(self, parent, toolTip=opts['tooltip']) self.opts = opts self.curvalue = None self.trueRB = QRadioButton(_('&True')) self.falseRB = QRadioButton(_('&False')) self.unspecRB = QRadioButton(_('&Unspecified')) layout = QHBoxLayout() layout.setContentsMargins(0, 0, 0, 0) layout.addWidget(self.trueRB) layout.addWidget(self.falseRB) layout.addWidget(self.unspecRB) self.setLayout(layout) ## common APIs for all edit widgets def setValue(self, curvalue): # Store parsed value, so a compare of 1 to True isn't flagged as dirty if curvalue: value = str(stringutil.parsebool(curvalue)) self.curvalue = hglib.fromunicode(value) else: self.curvalue = None if self.curvalue == b'True': self.trueRB.setChecked(True) elif self.curvalue == b'False': self.falseRB.setChecked(True) else: self.unspecRB.setChecked(True) def value(self): if self.trueRB.isChecked(): return b'True' elif self.falseRB.isChecked(): return b'False' else: return None def isDirty(self): return self.value() != self.curvalue class LineEditBox(QLineEdit): def __init__(self, parent=None, **opts): QLineEdit.__init__(self, parent, toolTip=opts['tooltip']) self.opts = opts self.curvalue = None self.setMinimumWidth(ENTRY_WIDTH) ## common APIs for all edit widgets def setValue(self, curvalue): self.curvalue = curvalue if curvalue: self.setText(hglib.tounicode(curvalue)) else: self.setText('') def value(self): utext = self.text() return utext and hglib.fromunicode(utext) or None def isDirty(self): return self.value() != self.curvalue class PasswordEntry(LineEditBox): def __init__(self, parent=None, **opts): QLineEdit.__init__(self, parent, toolTip=opts['tooltip']) self.opts = opts self.curvalue = None self.setEchoMode(QLineEdit.EchoMode.Password) self.setMinimumWidth(ENTRY_WIDTH) class TextEntry(QTextEdit): def __init__(self, parent=None, **opts): QTextEdit.__init__(self, parent, toolTip=opts['tooltip']) self.opts = opts self.curvalue = None self.setMinimumWidth(ENTRY_WIDTH) ## common APIs for all edit widgets def setValue(self, curvalue): self.curvalue = curvalue if curvalue: self.setPlainText(hglib.tounicode(curvalue)) else: self.setPlainText('') def value(self): # It is not possible to set a multi-line value with an empty line utext = self.removeEmptyLines(self.toPlainText()) return utext and hglib.fromunicode(utext) or None def isDirty(self): return self.value() != self.curvalue def removeEmptyLines(self, text: str) -> str: if not text: return text rawlines = text.splitlines() lines = [] for line in rawlines: if not line.strip(): continue lines.append(line) return os.linesep.join(lines) def _describeFont(font: Optional[QFont]) -> str: if not font: return _unspecstr s = font.family() s += ", " + _("%dpt") % font.pointSize() if font.bold(): s += ", " + _("Bold") if font.italic(): s += ", " + _("Italic") if font.strikeOut(): s += ", " + _("Strike") if font.underline(): s += ", " + _("Underline") return s class FontEntry(QWidget): def __init__(self, parent=None, **opts): QWidget.__init__(self, parent, toolTip=opts['tooltip']) self.opts = opts self.curvalue = None self.font = None self.label = QLabel() self.setButton = QPushButton(_('&Set...')) self.clearButton = QPushButton(_('&Clear')) layout = QHBoxLayout() layout.setContentsMargins(0, 0, 0, 0) layout.addWidget(self.label) layout.addStretch() layout.addWidget(self.setButton) layout.addWidget(self.clearButton) self.setLayout(layout) self.setButton.clicked.connect(self.onSetClicked) self.clearButton.clicked.connect(self.onClearClicked) cpath = self.opts['cpath'] assert cpath.startswith('tortoisehg.'), cpath self.fname = cpath[11:] self.setMinimumWidth(ENTRY_WIDTH) def onSetClicked(self): thgf = qtlib.getfont(self.fname) origfont = self.font or thgf.font() font, isok = QFontDialog.getFont(origfont, self) if not isok: return self.setCurrentFont(font) thgf.setFont(font) def onClearClicked(self): self.setCurrentFont(None) def setCurrentFont(self, font): self.font = font self.label.setText(_describeFont(self.font)) ## common APIs for all edit widgets def setValue(self, curvalue): if curvalue: self.curvalue = QFont() self.curvalue.fromString(hglib.tounicode(curvalue)) else: self.curvalue = None self.setCurrentFont(self.curvalue) def value(self): if not self.font: return None utext = self.font.toString() return hglib.fromunicode(utext) def isDirty(self): return self.font != self.curvalue class SettingsCheckBox(QCheckBox): def __init__(self, parent=None, **opts): QCheckBox.__init__(self, parent, toolTip=opts['tooltip']) self.opts = opts self.curvalue = None self.setText(opts['label']) def setValue(self, curvalue): if self.curvalue is None: self.curvalue = curvalue self.setChecked(curvalue) def value(self): return self.isChecked() # applyChangesForExtensions can handle booleans def isDirty(self): return self.value() != self.curvalue # When redesigning the structure of SettingsForm, consider to replace Spacer # by QGroupBox. class Spacer(QWidget): """Dummy widget for group separator""" def __init__(self, parent=None, **opts): super(Spacer, self).__init__(parent) if opts.get('cpath'): raise ValueError('do not set cpath for spacer') self.opts = opts def setValue(self, curvalue): raise NotImplementedError def value(self): raise NotImplementedError def isDirty(self): return False class BugTraqConfigureEntry(QPushButton): def __init__(self, parent=None, **opts): QPushButton.__init__(self, parent, toolTip=opts['tooltip']) self.opts = opts self.curvalue = None self.options = None self.tracker = None self.master = None self.setText(opts['label']) self.clicked.connect(self.on_clicked) def on_clicked(self, checked): parameters = self.options self.options = self.tracker.show_options_dialog(parameters) def master_updated(self): self.setEnabled(False) if self.master is None: return if self.master.value() is None: return if len(self.master.value()) == 0: return try: setting = self.master.value().split(' ', 1) trackerid = setting[0] name = setting[1] self.tracker = bugtraq.BugTraq(trackerid) except: # failed to load bugtraq module or parse the setting: # swallow the error and leave the widget disabled return try: self.setEnabled(self.tracker.has_options()) except Exception as e: qtlib.ErrorMsgBox(_('Issue Tracker'), _('Failed to load issue tracker: \'%s\': %s. ' % (name, e)), parent=self) ## common APIs for all edit widgets def setValue(self, curvalue): if self.master is None: self.master = self.opts['master'] self.master.currentIndexChanged.connect(self.master_updated) self.master_updated() self.curvalue = curvalue self.options = curvalue def value(self): return self.options def isDirty(self): return self.value() != self.curvalue class PathBrowser(QWidget): def __init__(self, parent=None, **opts): QWidget.__init__(self, parent, toolTip=opts['tooltip']) self.opts = opts self.lineEdit = QLineEdit() # use QCompleter(model, parent) to avoid ownership bug of # QCompleter(parent /TransferBack/) in PyQt<4.11.4 completer = QCompleter(None, self) fsModel = QFileSystemModel(completer) fsModel.setRootPath("") completer.setModel(fsModel) self.lineEdit.setCompleter(completer) self.browseButton = QPushButton(_('&Browse...')) self.browseButton.clicked.connect(self.browse) layout = QHBoxLayout() layout.setContentsMargins(0, 0, 0, 0) layout.addWidget(self.lineEdit) layout.addWidget(self.browseButton) self.setLayout(layout) def browse(self): dir = QFileDialog.getExistingDirectory(self, '', self.lineEdit.text()) if dir: self.lineEdit.setText(dir) ## common APIs for all edit widgets def setValue(self, curvalue): self.curvalue = curvalue if curvalue: self.lineEdit.setText(hglib.tounicode(curvalue)) else: self.lineEdit.setText('') def value(self): utext = self.lineEdit.text() return utext and hglib.fromunicode(utext) or None def isDirty(self): return self.value() != self.curvalue def genEditCombo(opts, defaults=None): if defaults is None: defaults = [] opts['canedit'] = True opts['defaults'] = defaults return SettingsCombo(**opts) def genIntEditCombo(opts, defaults=None): 'EditCombo, only allows integer values' opts['canedit'] = True opts['validator'] = QIntValidator(None) # missing parent=None on PyQt4.6 if defaults: opts['defaults'] = ['%d' % n for n in defaults] return SettingsCombo(**opts) def genLineEditBox(opts): 'Generate a single line text entry box' return LineEditBox(**opts) def genPasswordEntry(opts): 'Generate a password entry box' return PasswordEntry(**opts) def genTextEntry(opts): 'Generate a multi-line text input entry box' return TextEntry(**opts) def genDefaultCombo(opts, defaults=None): 'user must select from a list' if defaults is None: defaults = [] opts['defaults'] = defaults opts['nohist'] = True return SettingsCombo(**opts) def genBoolRBGroup(opts): 'true, false, unspecified' return BoolRBGroup(**opts) def genDeferredCombo(opts, func): 'Values retrieved from a function at popup time' opts['defer'] = func opts['nohist'] = True return SettingsCombo(**opts) def genEditableDeferredCombo(opts, func): 'Values retrieved from a function at popup time' opts['canedit'] = True return genDeferredCombo(opts, func) def genFontEdit(opts): return FontEntry(**opts) def genSpacer(opts): return Spacer(**opts) def genBugTraqEdit(opts): return BugTraqConfigureEntry(**opts) def genPathBrowser(opts): return PathBrowser(**opts) def findIssueTrackerPlugins(): plugins = bugtraq.get_issue_plugins_with_names() names = [("%s %s" % (key[0], key[1])) for key in plugins] return names def issuePluginVisible(): if not _hasbugtraq: return False try: # quick test to see if we're able to load the bugtraq module test = bugtraq.BugTraq('') return True except: return False def findDiffTools(): return sorted(hglib.tounicode(t) for t in hglib.difftools(hglib.loadui())) def findMergeTools(): return [hglib.tounicode(t) for t in hglib.mergetools(hglib.loadui())] def findEditors(): return [hglib.tounicode(e) for e in editor.findeditors(hglib.loadui())] def findTerminals(): return [hglib.tounicode(t) for t in terminal.findterminals(hglib.loadui())] def findGpg(): return [hglib.tounicode(t) for t in gpg.findgpg(hglib.loadui())] def genCheckBox(opts): opts['nohist'] = True return SettingsCheckBox(**opts) class _fi(object): """Information of each field""" __slots__ = ('label', 'cpath', 'values', 'tooltip', 'restartneeded', 'globalonly', 'noglobal', 'master', 'visible') def __init__(self, label, cpath, values, tooltip, restartneeded=False, globalonly=False, noglobal=False, master=None, visible=None): self.label = label self.cpath = cpath self.values = values self.tooltip = tooltip self.restartneeded = restartneeded self.globalonly = globalonly self.noglobal = noglobal self.master = master self.visible = visible def isVisible(self): if self.visible is None: return True else: return self.visible() INFO = ( ({'name': 'general', 'label': 'TortoiseHg', 'icon': 'thg'}, ( _fi(_('UI Language'), 'tortoisehg.ui.language', (genDeferredCombo, i18n.availablelanguages), _('Specify your preferred user interface language (restart needed)'), restartneeded=True, globalonly=True), _fi(_('Three-way Merge Tool'), 'ui.merge', (genDeferredCombo, findMergeTools), _('Graphical merge program for resolving merge conflicts. If left ' 'unspecified, Mercurial will use the first applicable tool it finds ' 'on your system or use its internal merge tool that leaves conflict ' 'markers in place. Choose internal:merge to force conflict markers, ' 'internal:prompt to always select local or other, or internal:dump ' 'to leave files in the working directory for manual merging')), _fi(_('Visual Diff Tool'), 'tortoisehg.vdiff', (genDeferredCombo, findDiffTools), _('Specify visual diff tool, as described in the [merge-tools] ' 'section of your Mercurial configuration files. If left ' 'unspecified, TortoiseHg will use the selected merge tool. ' 'Failing that it uses the first applicable tool it finds.')), _fi(_('Visual Editor'), 'tortoisehg.editor', (genEditableDeferredCombo, findEditors), _('Specify visual editor, as described in the [editor-tools] ' 'section of your Mercurial configuration files. If left ' 'unspecified, TortoiseHg will use the first applicable tool ' 'it finds.')), _fi(_('CLI Editor'), 'ui.editor', (genEditableDeferredCombo, findEditors), _('The editor used by Mercurial command line commands to ' 'collect multiline input from the user. Most notably, ' 'commit messages.')), _fi(_('Shell'), 'tortoisehg.shell', (genEditableDeferredCombo, findTerminals), _('Specify the command to launch your preferred terminal shell ' 'application. If the value includes the string %(reponame)s, the ' 'name of the repository will be substituted in place of ' '%(reponame)s. Similarly, %(root)s will be the full path to the ' 'repository. (restart needed)
                                                                                                            ' 'Default, Windows: cmd.exe /K title %(reponame)s
                                                                                                            ' 'Default, OS X: not set
                                                                                                            ' 'Default, other: xterm -T "%(reponame)s"'), globalonly=True), _fi(_('Immediate Operations'), 'tortoisehg.immediate', genEditCombo, _('Space separated list of shell operations you would like ' 'to be performed immediately, without user interaction. ' 'Commands are "add remove revert forget". ' 'Default: None (leave blank)')), _fi(_('Tab Width'), 'tortoisehg.tabwidth', genIntEditCombo, _('Specify the number of spaces that tabs expand to in various ' 'TortoiseHg windows. ' 'Default: 8')), _fi(_('Force Repo Tab'), 'tortoisehg.forcerepotab', genBoolRBGroup, _('Always show repo tabs, even for a single repo. Default: False'), globalonly=True), _fi(_('Monitor Repo Changes'), 'tortoisehg.monitorrepo', (genDefaultCombo, ['always', 'localonly', 'never']), _('Specify the target filesystem where TortoiseHg monitors changes. ' 'Default: localonly')), _fi(_('Max Diff Size'), 'tortoisehg.maxdiff', genIntEditCombo, _('The maximum size file (in KB) that TortoiseHg will ' 'show changes for in the changelog, status, and commit windows. ' 'A value of zero implies no limit. Default: 1024 (1MB)')), _fi(_('Fork GUI'), 'tortoisehg.guifork', genBoolRBGroup, _('When running from the command line, fork a background ' 'process to run graphical dialogs. This setting is ignored when ' 'TortoiseHg runs as an OS X application bundle. Default: True'), globalonly=True), _fi(_('Full Path Title'), 'tortoisehg.fullpath', genBoolRBGroup, _('Show a full directory path of the repository in the dialog title ' 'instead of just the root directory name. Default: False')), _fi(_('Auto-resolve merges'), 'tortoisehg.autoresolve', genBoolRBGroup, _('Indicates whether TortoiseHg should attempt to automatically ' 'resolve changes from both sides to the same file, and only report ' 'merge conflicts when this is not possible. When False, all files ' 'with changes on both sides of the merge will report as conflicting, ' 'even if the edits are to different parts of the file. In either ' 'case, when conflicts occur, the user will be invited to review and ' 'resolve changes manually. Default: True.')), _fi(_('New Repo Skeleton'), 'tortoisehg.initskel', genPathBrowser, _('If specified, files in the directory, e.g. .hgignore, are copied ' 'to the newly-created repository.'), globalonly=True), _fi(_('Default Clone Destination'), 'tortoisehg.defaultclonedest', genPathBrowser, _('If specified, the destination field in the clone widget will be ' 'pre-filled with this path. Otherwise, it will be pre-filled with ' 'the current working directory.'), globalonly=True), )), ({'name': 'log', 'label': _('Workbench'), 'icon': 'hg-log'}, ( _fi(_('Single Workbench Window'), 'tortoisehg.workbench.single', genBoolRBGroup, _('Select whether you want to have a single workbench window. ' 'If you disable this setting you will get a new workbench window ' 'everytime that you use the "Hg Workbench" command on the explorer ' 'context menu. Default: True'), restartneeded=True, globalonly=True), _fi(_('Default widget'), 'tortoisehg.defaultwidget', (genDefaultCombo, ['revdetails', 'commit', 'sync', 'search']), _('Select the initial widget that will be shown when opening a ' 'repository. ' 'Default: revdetails')), _fi(_('Initial revision'), 'tortoisehg.initialrevision', (genDefaultCombo, ['current', 'tip', 'workingdir']), _('Select the initial revision that will be selected when opening a ' 'repository. You can select the "current" (i.e. the working ' 'directory parent), the current "tip" or the working directory ' '("workingdir"). ' 'Default: current')), _fi(_('Open new tabs next\nto the current tab'), 'tortoisehg.opentabsaftercurrent', genBoolRBGroup, _('Should new tabs be open next to the current tab? ' 'If False new tabs will be open after the last tab. ' 'Default: True'), globalonly=True), _fi(_('Author Coloring'), 'tortoisehg.authorcolor', genBoolRBGroup, _('Color changesets by author name. ' 'Default: False')), _fi(_('Full Authorname'), 'tortoisehg.fullauthorname', genBoolRBGroup, _('Show full authorname in Logview. If not enabled, ' 'only a short part, usually name without email is shown. ' 'Default: False')), _fi(_('Task Tabs'), 'tortoisehg.tasktabs', (genDefaultCombo, ['east', 'west', 'off']), _('Show tabs along the side of the bottom half of each repo ' 'widget allowing one to switch task tabs without using the toolbar. ' 'Default: off')), _fi(_('Task Toolbar Order'), 'tortoisehg.workbench.task-toolbar', genEditCombo, _('Specify which task buttons you want to show on the task toolbar ' 'and in which order.
                                                                                                            Type a list of the task button names. ' 'Add separators by putting "|" between task button names.
                                                                                                            ' 'Valid names are: log commit sync grep.
                                                                                                            ' 'Default: log commit grep | sync'), restartneeded=True, globalonly=True), _fi(_('Long Summary'), 'tortoisehg.longsummary', genBoolRBGroup, _('If true, concatenate multiple lines of changeset summary ' 'and truncate them at 80 characters as necessary. ' 'Default: False')), _fi(_('Log Batch Size'), 'tortoisehg.graphlimit', genIntEditCombo, _('The number of revisions to read and display in the ' 'changelog viewer in a single batch. ' 'Default: 500')), _fi(_('Dead Branches'), 'tortoisehg.deadbranch', genEditCombo, _('Comma separated list of branch names that should be ignored ' 'when building a list of branch names for a repository. ' 'Default: None (leave blank)')), _fi(_('Branch Colors'), 'tortoisehg.branchcolors', genEditCombo, _('Space separated list of branch names and colors of the form ' 'branch:#XXXXXX. Spaces and colons in the branch name must be ' 'escaped using a backslash (\\). Likewise some other characters ' 'can be escaped in this way, e.g. \\u0040 will be decoded to the ' '@ character, and \\n to a linefeed. ' 'Default: None (leave blank)')), _fi(_('Hide Tags'), 'tortoisehg.hidetags', genEditCombo, _('Space separated list of tags that will not be shown. ' 'Useful example: Specify "qbase qparent qtip" to hide the ' 'standard tags inserted by the Mercurial Queues Extension. ' 'Default: None (leave blank)')), _fi(_('Activate Bookmarks'), 'tortoisehg.activatebookmarks', (genDefaultCombo, ['auto', 'prompt', 'never']), _('Select when TortoiseHg will show a prompt to activate a bookmark ' 'when updating to a revision that has one or more bookmarks.' '
                                                                                                            • auto: Try to automatically activate bookmarks. When ' 'updating to a revision that has a single bookmark it will be ' 'activated automatically. Show a prompt if there is more than one ' 'bookmark on the revision that is being updated to.' '
                                                                                                            • prompt: The default. Show a prompt when updating to a ' 'revision that has one or more bookmarks.' '
                                                                                                            • never: Never show any prompt to activate any bookmarks.' '

                                                                                                            ' 'Default: prompt')), _fi(_('Show Family Line'), 'tortoisehg.showfamilyline', genBoolRBGroup, _('Show indirect revision dependency on the revision graph ' 'when filtered by revset. Default: True

                                                                                                            ' 'Note: Calculating family line may be slow in some cases. ' 'This option is expected to be removed if the performance issue is ' 'solved.')), _fi(_('Use optimized graph layouter'), 'tortoisehg.graphopt', genBoolRBGroup, _('Use alternative graph layouter for large repositories. ' 'Default: False

                                                                                                            ' 'Note: This layouter colors edges using branch information ' 'and does not display graft edges, regardless of whether they are ' 'requested or not.')), _fi(_('Copy Hash to Selection'), 'tortoisehg.copy_hash_selection', genBoolRBGroup, _('When a revision is selected in Workbench, copy hash to primary ' 'selection clipboard (X11). Default: False')), )), ({'name': 'commit', 'label': _('Commit', 'config item'), 'icon': 'hg-commit'}, ( _fi(_('Username'), 'ui.username', genEditCombo, _('Name associated with commits. The common format is:
                                                                                                            ' 'Full Name <email@example.com>')), _fi(_('Ask Username'), 'ui.askusername', genBoolRBGroup, _('If no username has been specified, the user will be prompted to ' 'enter a username. Default: False')), _fi(_('Summary Line Length'), 'tortoisehg.summarylen', genIntEditCombo, _('Suggested length of commit message lines. A red vertical ' 'line will mark this length. CTRL-E will reflow the current ' 'paragraph to the specified line length. Default: 80')), _fi(_('Close After Commit'), 'tortoisehg.closeci', genBoolRBGroup, _('Close the commit tool after every successful ' 'commit. Default: False')), _fi(_('Push After Commit'), 'tortoisehg.cipushafter', (genEditCombo, ['default-push', 'default']), _('Attempt to push to specified URL or alias after each successful ' 'commit. Default: No push')), _fi(_('Auto Commit List'), 'tortoisehg.autoinc', genEditCombo, _('Comma separated list of files that are automatically included ' 'in every commit. Intended for use only as a repository setting. ' 'Default: None (leave blank)')), _fi(_('Auto Exclude List'), 'tortoisehg.ciexclude', genEditCombo, _('Comma separated list of files that are automatically unchecked ' 'when the status, and commit dialogs are opened. ' 'Default: None (leave blank)')), _fi(_('English Messages'), 'tortoisehg.engmsg', genBoolRBGroup, _('Generate English commit messages even if LANGUAGE or LANG ' 'environment variables are set to a non-English language. ' 'This setting is used by the Merge, Tag and Backout dialogs. ' 'Default: False')), _fi(_('New Commit Phase'), 'phases.new-commit', (genDefaultCombo, [pycompat.sysstr(ph) for ph in phases.cmdphasenames]), _('The phase of new commits. Default: draft')), _fi(_('Secret MQ Patches'), 'mq.secret', genBoolRBGroup, _('Make MQ patches secret (instead of draft). ' 'Default: False')), _fi(_('Check Subrepo Phase'), 'phases.checksubrepos', (genDefaultCombo, ['ignore', 'follow', 'abort']), _('Check the phase of the current revision of each subrepository. ' 'For settings other than "ignore", the phase of the current ' 'revision of each subrepository is checked before committing the ' 'parent repository. ' 'Default: follow')), _fi(_('Monitor working
                                                                                                            directory changes'), 'tortoisehg.refreshwdstatus', (genDefaultCombo, ['auto', 'always', 'alwayslocal']), _('Select when the working directory status list will be refreshed:
                                                                                                            ' '- auto: [default] let TortoiseHg decide when to ' 'refresh the working directory status list.
                                                                                                            ' 'TortoiseHg will refresh the status list whenever it performs an ' 'action that may potentially modify the working directory. ' "This may miss any changes that happen outside of TortoiseHg's " 'control;
                                                                                                            ' '- always: in addition to the automatic updates above, also ' 'refresh the status list whenever the user clicks on the "working ' 'dir revision" or on the "Commit icon" on the workbench task bar;
                                                                                                            ' '- alwayslocal: same as "always" but restricts forced ' 'refreshes to local repos.
                                                                                                            ' 'Default: auto')), _fi(_('Confirm adding unknown files'), 'tortoisehg.confirmaddfiles', genBoolRBGroup, _('Determines if TortoiseHg should show a confirmation dialog ' 'before adding new files in a commit. ' 'If True, a confirmation dialog will be shown. ' 'If False, selected new files will be included in the ' 'commit with no confirmation dialog. Default: True')), _fi(_('Confirm deleting files'), 'tortoisehg.confirmdeletefiles', genBoolRBGroup, _('Determines if TortoiseHg should show a confirmation dialog ' 'before removing files in a commit. ' 'If True, a confirmation dialog will be shown. ' 'If False, selected deleted files will be included in the ' 'commit with no confirmation dialog. Default: True')), )), ({'name': 'sync', 'label': _('Sync'), 'icon': 'thg-sync'}, ( _fi(_('After Pull Operation'), 'tortoisehg.postpull', (genDefaultCombo, ['none', 'update', 'fetch', 'rebase', 'updateorrebase']), _('Operation which is performed directly after a successful pull. ' 'update equates to pull --update, fetch equates to the fetch ' 'extension, rebase equates to pull --rebase, ' 'updateorrebase equates to pull -u --rebase. Default: none')), _fi(_('Default Push'), 'tortoisehg.defaultpush', (genDefaultCombo, ['all', 'branch', 'revision']), _('Select the revisions that will be pushed by default, ' 'whenever you click the Push button.' '

                                                                                                            • all: The default. Push all changes in ' 'all branches.' '
                                                                                                            • branch: Push all changes in the current branch.' '
                                                                                                            • revision: Push the changes in the current branch ' 'up to the current revision.

                                                                                                            ' 'Default: all')), _fi(_('Confirm Push'), 'tortoisehg.confirmpush', genBoolRBGroup, _('Determines if TortoiseHg should show a confirmation dialog ' 'before pushing changesets. ' 'If False, push will be performed without any confirmation dialog. ' 'Default: True')), _fi(_('Target Combo'), 'tortoisehg.workbench.target-combo', (genDefaultCombo, ['auto', 'always']), _('Select if TortoiseHg will show a target combo in the sync toolbar.' '

                                                                                                            • auto: The default. Show the combo if more than one ' 'target configured.' '
                                                                                                            • always: Always show the combo.' '

                                                                                                            ' 'Default: auto')), _fi(_('SSH Command'), 'ui.ssh', genEditCombo, _('Command to use for SSH connections.

                                                                                                            ' 'Default: "ssh" or "TortoisePlink.exe -ssh -2" (Windows)')), _fi(_('Subrepository Features:'), None, genSpacer, ''), _fi(_('Allow Hg Subrepos'), 'subrepos.hg:allowed', genBoolRBGroup, _('Whether Mercurial subrepositories are allowed in the working ' 'directory. ' 'Default: True')), _fi(_('Allow Git Subrepos'), 'subrepos.git:allowed', genBoolRBGroup, _('Whether Git subrepositories are allowed in the working ' 'directory. ' 'Default: False' '

                                                                                                            See the security note before enabling ' 'Git subrepos.') % 'https://www.mercurial-scm.org/doc/hgrc.5.html#subrepos'), _fi(_('Allow SVN Subrepos'), 'subrepos.svn:allowed', genBoolRBGroup, _('Whether Subversion subrepositories are allowed in the working ' 'directory. ' 'Default: False' '

                                                                                                            See the security note before enabling ' 'Subversion subrepos.') % 'https://www.mercurial-scm.org/doc/hgrc.5.html#subrepos'), )), ({'name': 'web', 'label': _('Server'), 'icon': 'hg-serve'}, ( _fi(_('Repository Details:'), None, genSpacer, ''), _fi(_('Name'), 'web.name', genEditCombo, _('Repository name to use in the web interface, and by TortoiseHg ' 'as a shorthand name. Default is the working directory.'), noglobal=True), _fi(_('Encoding'), 'web.encoding', (genEditCombo, fileencoding.knownencodings()), _('Character encoding of files in the repository, used by the web ' 'interface and TortoiseHg.')), _fi(_("'Publishing' repository"), 'phases.publish', genBoolRBGroup, _('Controls draft phase behavior when working as a server. When true, ' 'pushed changesets are set to public in both client and server and ' 'pulled or cloned changesets are set to public in the client. ' 'Default: True')), _fi(_('Web Server:'), None, genSpacer, ''), _fi(_('Description'), 'web.description', genEditCombo, _("Textual description of the repository's purpose or " 'contents.')), _fi(_('Contact'), 'web.contact', genEditCombo, _('Name or email address of the person in charge of the ' 'repository.')), _fi(_('Style'), 'web.style', (genDefaultCombo, ['paper', 'monoblue', 'coal', 'spartan', 'gitweb', 'old']), _('Which template map style to use')), _fi(_('Archive Formats'), 'web.allow_archive', (genEditCombo, ['bz2', 'gz', 'zip']), _('Comma separated list of archive formats allowed for ' 'downloading')), _fi(_('Port'), 'web.port', genIntEditCombo, _('Port to listen on')), _fi(_('Push Requires SSL'), 'web.push_ssl', genBoolRBGroup, _('Whether to require that inbound pushes be transported ' 'over SSL to prevent password sniffing.')), _fi(_('Stripes'), 'web.stripes', genIntEditCombo, _('How many lines a "zebra stripe" should span in multiline output. ' 'Default is 1; set to 0 to disable.')), _fi(_('Max Files'), 'web.maxfiles', genIntEditCombo, _('Maximum number of files to list per changeset. Default: 10')), _fi(_('Max Changes'), 'web.maxchanges', genIntEditCombo, _('Maximum number of changes to list on the changelog. ' 'Default: 10')), _fi(_('Allow Push'), 'web.allow_push', (genEditCombo, ['*']), _('Whether to allow pushing to the repository. If empty or not ' 'set, push is not allowed. If the special value "*", any remote ' 'user can push, including unauthenticated users. Otherwise, the ' 'remote user must have been authenticated, and the authenticated ' 'user name must be present in this list (separated by whitespace ' 'or ","). The contents of the allow_push list are examined after ' 'the deny_push list.')), _fi(_('Deny Push'), 'web.deny_push', (genEditCombo, ['*']), _('Whether to deny pushing to the repository. If empty or not set, ' 'push is not denied. If the special value "*", all remote users ' 'are denied push. Otherwise, unauthenticated users are all ' 'denied, and any authenticated user name present in this list ' '(separated by whitespace or ",") is also denied. The contents ' 'of the deny_push list are examined before the allow_push list.')), )), ({'name': 'proxy', 'label': _('Proxy'), 'icon': QStyle.StandardPixmap.SP_DriveNetIcon}, ( _fi(_('Host'), 'http_proxy.host', genEditCombo, _('Host name and (optional) port of proxy server, for ' 'example "myproxy:8000"')), _fi(_('Bypass List'), 'http_proxy.no', genEditCombo, _('Optional. Comma-separated list of host names that ' 'should bypass the proxy')), _fi(_('User'), 'http_proxy.user', genEditCombo, _('Optional. User name to authenticate with at the proxy server')), _fi(_('Password'), 'http_proxy.passwd', genPasswordEntry, _('Optional. Password to authenticate with at the proxy server')), )), ({'name': 'email', 'label': _('Email'), 'icon': 'mail-forward'}, ( _fi(_('From'), 'email.from', genEditCombo, _('Email address to use in the "From" header and for ' 'the SMTP envelope')), _fi(_('To'), 'email.to', genEditCombo, _('Comma-separated list of recipient email addresses')), _fi(_('Cc'), 'email.cc', genEditCombo, _('Comma-separated list of carbon copy recipient email addresses')), _fi(_('Bcc'), 'email.bcc', genEditCombo, _('Comma-separated list of blind carbon copy recipient ' 'email addresses')), _fi(_('method'), 'email.method', (genEditCombo, ['smtp']), _('Optional. Method to use to send email messages. If value is ' '"smtp" (default), use SMTP (configured below). Otherwise, use as ' 'name of program to run that acts like sendmail (takes "-f" option ' 'for sender, list of recipients on command line, message on stdin). ' 'Normally, setting this to "sendmail" or "/usr/sbin/sendmail" ' 'is enough to use sendmail to send messages.')), _fi(_('SMTP Host'), 'smtp.host', genEditCombo, _('Host name of mail server')), _fi(_('SMTP Port'), 'smtp.port', (genIntEditCombo, [25, 465, 587]), _('Port to connect to on mail server. ' 'Default: 25')), _fi(_('SMTP TLS'), 'smtp.tls', (genDefaultCombo, ['starttls', 'smtps', 'none']), _('Method to enable TLS when connecting to mail server. ' 'Default: none')), _fi(_('SMTP Username'), 'smtp.username', genEditCombo, _('Username to authenticate to mail server with')), _fi(_('SMTP Password'), 'smtp.password', genPasswordEntry, _('Password to authenticate to mail server with')), _fi(_('Local Hostname'), 'smtp.local_hostname', genEditCombo, _('Hostname the sender can use to identify itself to the ' 'mail server.')), )), ({'name': 'diff', 'label': _('Diff and Annotate'), 'icon': QStyle.StandardPixmap.SP_FileDialogContentsView}, ( _fi(_('Patch EOL'), 'patch.eol', (genDefaultCombo, ['auto', 'strict', 'crlf', 'lf']), _('Normalize file line endings during and after patch to lf or ' 'crlf. Strict does no normalization. Auto does per-file ' 'detection, and is the recommended setting. ' 'Default: strict')), _fi(_('Git Format'), 'diff.git', genBoolRBGroup, _('Use git extended diff header format. ' 'Default: False')), _fi(_('MQ Git Format'), 'mq.git', (genDefaultCombo, ['auto', 'keep', 'yes', 'no']), _("When set to 'auto', mq will automatically use git patches when " "required to avoid losing changes to file modes, copy records or " "binary files. If set to 'keep', mq will obey the [diff] section " "configuration while preserving existing git patches upon qrefresh. " "If set to 'yes' or 'no', mq will override the [diff] section and " "always generate git or regular patches, possibly losing data in the " "second case. " "Default: auto")), _fi(_('No Dates'), 'diff.nodates', genBoolRBGroup, _('Do not include modification dates in diff headers. ' 'Default: False')), _fi(_('Show Function'), 'diff.showfunc', genBoolRBGroup, _('Show which function each change is in. ' 'Default: False')), _fi(_('Ignore White Space'), 'diff.ignorews', genBoolRBGroup, _('Ignore white space when comparing lines in diff views. ' 'Default: False')), _fi(_('Ignore WS Amount'), 'diff.ignorewsamount', genBoolRBGroup, _('Ignore changes in the amount of white space in diff views. ' 'Default: False')), _fi(_('Ignore Blank Lines'), 'diff.ignoreblanklines', genBoolRBGroup, _('Ignore changes whose lines are all blank in diff views. ' 'Default: False')), _fi(_('Annotate:'), None, genSpacer, ''), _fi(_('Ignore White Space'), 'annotate.ignorews', genBoolRBGroup, _('Ignore white space when comparing lines in the annotate view. ' 'Default: False')), _fi(_('Ignore WS Amount'), 'annotate.ignorewsamount', genBoolRBGroup, _('Ignore changes in the amount of white space in the annotate view. ' 'Default: False')), _fi(_('Ignore Blank Lines'), 'annotate.ignoreblanklines', genBoolRBGroup, _('Ignore changes whose lines are all blank in the annotate view. ' 'Default: False')), )), ({'name': 'fonts', 'label': _('Fonts'), 'icon': 'preferences-desktop-font'}, ( _fi(_('Message Font'), 'tortoisehg.fontcomment', genFontEdit, _('Font used to display commit messages. Default: monospace 10'), globalonly=True), _fi(_('Diff Font'), 'tortoisehg.fontdiff', genFontEdit, _('Font used to display text differences. Default: monospace 10'), globalonly=True), _fi(_('Editor Font'), 'tortoisehg.fonteditor', genFontEdit, _('Font used for the text editor. Default: monospace 10'), globalonly=True), _fi(_('ChangeLog Font'), 'tortoisehg.fontlog', genFontEdit, _('Font used to display changelog data. Default: monospace 10'), globalonly=True), _fi(_('Output Font'), 'tortoisehg.fontoutputlog', genFontEdit, _('Font used to display output messages. Default: sans 8'), globalonly=True), )), ({'name': 'extensions', 'label': _('Extensions'), 'icon': 'hg-extensions'}, ( )), ({'name': 'tools', 'label': _('Tools'), 'icon': 'tools-spanner-hammer'}, ( )), ({'name': 'hooks', 'label': _('Hooks'), 'icon': 'tools-hooks'}, ( )), ({'name': 'issue', 'label': _('Issue Tracking'), 'icon': 'edit-file'}, ( _fi(_('Issue Regex'), 'tortoisehg.issue.regex', genEditCombo, _('Defines the regex to match when picking up issue numbers.')), _fi(_('Issue Link'), 'tortoisehg.issue.link', genEditCombo, _('Defines the command to run when an issue number is recognized. ' 'You may include groups in issue.regex, and corresponding {n} ' 'tokens in issue.link (where n is a non-negative integer). ' '{0} refers to the entire string matched by issue.regex, ' 'while {1} refers to the first group and so on. If no {n} tokens ' 'are found in issue.link, the entire matched string is appended ' 'instead.')), _fi(_('Inline Tags'), 'tortoisehg.issue.inlinetags', genBoolRBGroup, _('Show tags at start of commit message.')), _fi(_('Mandatory Issue Reference'), 'tortoisehg.issue.linkmandatory', genBoolRBGroup, _('When committing, require that a reference to an issue be specified. ' 'If enabled, the regex configured in \'Issue Regex\' must find a ' 'match in the commit message.')), _fi(_('Issue Tracker Plugin'), 'tortoisehg.issue.bugtraqplugin', (genDeferredCombo, findIssueTrackerPlugins), _('Configures a COM IBugTraqProvider or IBugTraqProvider2 issue ' 'tracking plugin.'), visible=issuePluginVisible), _fi(_('Configure Issue Tracker'), 'tortoisehg.issue.bugtraqparameters', genBugTraqEdit, _('Configure the selected COM Bug Tracker plugin.'), master='tortoisehg.issue.bugtraqplugin', visible=issuePluginVisible), _fi(_('Issue Tracker Trigger'), 'tortoisehg.issue.bugtraqtrigger', (genDefaultCombo, ['never', 'commit']), _('Determines when the issue tracker state will be updated by ' 'TortoiseHg. Valid settings values are:' '

                                                                                                            • never: Do not update the Issue Tracker state ' 'automatically.' '
                                                                                                            • commit: Update the Issue Tracker state after a ' 'successful commit.

                                                                                                            ' 'Default: never'), master='tortoisehg.issue.bugtraqplugin', visible=issuePluginVisible), _fi(_('Changeset Link'), 'tortoisehg.changeset.link', genEditCombo, _('A template string that, when set, turns the revision number and ' 'short hashes that are shown on the revision panels into links.
                                                                                                            ' 'The template string uses a normal ' '' 'mercurial template syntax, such as:' '

                                                                                                              ' '
                                                                                                            • {node|short} : replaced by the 12 digit revision id.' '
                                                                                                            • {rev} : replaced by the revision number.' '
                                                                                                            • {gitnode} : if the hg-git extension is enabled, and the repo is ' 'a git clone, this is replaced by the git commit hash.' '
                                                                                                            ' 'For example, in order to link to Heptapod commit pages you can ' 'set this to:
                                                                                                            ' 'https://foss.heptapod.net/mercurial/tortoisehg/thg/-/commit/{node}
                                                                                                            ' 'You can also to link to a GitHub/GitLab repo (provided hg-git is ' 'installed):
                                                                                                            ' 'https://github.com/torvalds/linux/commit/{gitnode}
                                                                                                            ' 'https://gitlab.com/tortoisegit/tortoisegit/commit/{gitnode}
                                                                                                            ' )), )), ({'name': 'reviewboard', 'label': _('Review Board'), 'icon': 'reviewboard', 'extension': 'reviewboard'}, ( _fi(_('Server'), 'reviewboard.server', genEditCombo, _('Path to review board ' 'example "http://demo.reviewboard.org"')), _fi(_('User'), 'reviewboard.user', genEditCombo, _('User name to authenticate with review board')), _fi(_('Password'), 'reviewboard.password', genPasswordEntry, _('Password to authenticate with review board')), _fi(_('Server Repository ID'), 'reviewboard.repoid', genEditCombo, _('The default repository id for this repo on the review board ' 'server')), _fi(_('Target Groups'), 'reviewboard.target_groups', genEditCombo, _('A comma separated list of target groups')), _fi(_('Target People'), 'reviewboard.target_people', genEditCombo, _('A comma separated list of target people')), )), ({'name': 'kbfiles', 'label': _('Kiln Bfiles'), 'icon': 'kiln', 'extension': 'kbfiles'}, ( _fi(_('Patterns'), 'kilnbfiles.patterns', genEditCombo, _('Files with names meeting the specified patterns will be ' 'automatically added as bfiles')), _fi(_('Size'), 'kilnbfiles.size', genEditCombo, _('Files of at least the specified size (in megabytes) will be added ' 'as bfiles')), _fi(_('System Cache'), 'kilnbfiles.systemcache', genPathBrowser, _('Path to the directory where a system-wide cache of bfiles will be ' 'stored')), )), ({'name': 'simplelock', 'label': _('Simplelock'), 'icon': 'thg-password', 'extension': 'simplelock'}, ( _fi(_('Lock Clone'), 'simplelock.repo', genEditCombo, _('Location of local clone of organizational lock repository.

                                                                                                            ' 'This repository must contain a "locked" text file')), )), ({'name': 'largefiles', 'label': _('Largefiles'), 'icon': 'kiln', 'extension': 'largefiles'}, ( _fi(_('Patterns'), 'largefiles.patterns', genEditCombo, _('Files with names meeting the specified patterns will be ' 'automatically added as largefiles')), _fi(_('Minimum Size'), 'largefiles.minsize', genEditCombo, _('Files of at least the specified size (in megabytes) will be added ' 'as largefiles')), _fi(_('User Cache'), 'largefiles.usercache', genPathBrowser, _('Path to the directory where a user\'s cache of largefiles will be ' 'stored')), )), ({'name': 'projrc', 'label': _('Projrc'), 'icon': 'settings_projrc', 'extension': 'projrc'}, ( _fi(_('Require confirmation'), 'projrc.confirm', (genDefaultCombo, ['always', 'first', 'never']), _('When to ask the user to confirm the update of the local "projrc" ' 'configuration file when the remote projrc file changes. Possible ' 'values are:' '

                                                                                                            • always: [default] ' 'Always show a confirmation prompt before updating the local ' '.hg/projrc file.' '
                                                                                                            • first: Show a confirmation dialog when the repository is ' 'cloned or when a remote projrc file is found for the first time.' '
                                                                                                            • never: Update the local .hg/projrc file automatically, ' 'without requiring any user confirmation.
                                                                                                            ')), _fi(_('Servers'), 'projrc.servers', genEditCombo, _('List of Servers from which "projrc" configuration files must be ' 'pulled. Set it to "*" to pull from all servers. Set it to "default" ' 'to pull from the default sync path. ' 'Default is pull from NO servers.')), _fi(_('Include'), 'projrc.include', genEditCombo, _('List of settings that will be pulled from the project configuration ' 'file. Default is include NO settings.')), _fi(_('Exclude'), 'projrc.exclude', genEditCombo, _('List of settings that will NOT be pulled from the project ' 'configuration file. ' 'Default is exclude none of the included settings.')), _fi(_('Update on incoming'), 'projrc.updateonincoming', (genDefaultCombo, ['never', 'prompt', 'auto']), _('Let the user update the projrc on incoming:' '
                                                                                                            • never: [default] ' 'Show whether the remote projrc file has changed, ' 'but do not update (nor ask to update) the local projrc file.' '
                                                                                                            • prompt: Look for changes to the projrc file. ' 'If there are changes _always_ show a confirmation prompt, ' 'asking the user if it wants to update its local projrc file.' '
                                                                                                            • auto: Look for changes to the projrc file. ' 'Use the value of the "projrc.confirm" configuration key to ' 'determine whether to show a confirmation dialog or not ' 'before updating the local projrc file.

                                                                                                            ' 'Default: never')), )), ({'name': 'gnupg', 'label': _('GnuPG'), 'icon': 'gnupg', 'extension': 'gpg'}, ( _fi(_('Command'), 'gpg.cmd', (genEditableDeferredCombo, findGpg), _('Specify the path to GPG. Default: gpg')), _fi(_('Key ID'), 'gpg.key', genEditCombo, _('GPG key ID associated with user. Default: None (leave blank)')), )), ) CONF_GLOBAL = 0 CONF_REPO = 1 class SettingsDialog(QDialog): 'Dialog for editing Mercurial.ini or hgrc' def __init__(self, configrepo=False, focus=None, parent=None, root=None): QDialog.__init__(self, parent) self.setWindowTitle(_('TortoiseHg Settings')) self.setWindowFlags(self.windowFlags() & ~Qt.WindowType.WindowContextHelpButtonHint | Qt.WindowType.WindowMaximizeButtonHint) self.setWindowIcon(qtlib.geticon('thg-repoconfig')) if not hasattr(wconfig.config(), 'write'): qtlib.ErrorMsgBox(_('Iniparse package not found'), _("Can't change settings without iniparse package - " 'view is readonly.'), parent=self) print('Please install https://github.com/candlepin/python-iniparse') if not focus: focus = qtlib.readString(QSettings(), 'settings/lastpage', 'log') layout = QVBoxLayout() self.setLayout(layout) s = QSettings() self.settings = s self.restoreGeometry(qtlib.readByteArray(s, 'settings/geom')) def username(): name = util.username() if name: return hglib.tounicode(name) name = os.environ.get('USERNAME') if name: return hglib.tounicode(name) return _('User') self._activeformidx = configrepo and CONF_REPO or CONF_GLOBAL self.conftabs = QTabWidget() layout.addWidget(self.conftabs) if qtlib.IS_RETINA: self.conftabs.setIconSize(qtlib.barRetinaIconSize()) utab = SettingsForm( rcpath=[hglib.tounicode(rcpath) for rcpath in hglib.userrcpath()], focus=focus) self.conftabs.addTab(utab, qtlib.geticon('thg-userconfig'), _("%s's global settings") % username()) utab.restartRequested.connect(self._pushRestartRequest) try: if root is None: root = paths.find_root_bytes() if root: repo = thgrepo.repository(hglib.loadui(), root) else: repo = None except error.RepoError: repo = None if configrepo: uroot = hglib.tounicode(root) qtlib.ErrorMsgBox(_('No repository found'), _('no repo at ') + uroot, parent=self) if repo: repoagent = repo._pyqtobj # TODO if b'projrc' in repo.extensions(): projrcpath = os.path.join(hglib.tounicode(repo.root), '.hg', 'projrc') if os.path.exists(projrcpath): rtab = SettingsForm(rcpath=[projrcpath], focus=focus, readonly=True) self.conftabs.addTab(rtab, qtlib.geticon('settings_projrc'), _('%s project settings (.hg/projrc)') % repoagent.shortName()) rtab.restartRequested.connect(self._pushRestartRequest) reporcpath = os.path.join(hglib.tounicode(repo.root), '.hg', 'hgrc') rtab = SettingsForm(rcpath=[reporcpath], focus=focus) self.conftabs.addTab(rtab, qtlib.geticon('thg-repoconfig'), _('%s repository settings') % repoagent.shortName()) rtab.restartRequested.connect(self._pushRestartRequest) bb = QDialogButtonBox(QDialogButtonBox.StandardButton.Ok|QDialogButtonBox.StandardButton.Cancel) bb.accepted.connect(self.accept) bb.rejected.connect(self.reject) layout.addWidget(bb) self.bb = bb self._restartreqs = set() self.conftabs.setCurrentIndex(self._activeformidx) self.conftabs.currentChanged.connect(self._currentFormChanged) def isDirty(self): return any(self.conftabs.widget(i).isDirty() for i in pycompat.xrange(self.conftabs.count())) @pyqtSlot(str) def _pushRestartRequest(self, key: str) -> None: self._restartreqs.add(key) def applyChanges(self): results = [self.conftabs.widget(i).applyChanges() for i in pycompat.xrange(self.conftabs.count())] if self._restartreqs: qtlib.InfoMsgBox(_('Settings'), _('Restart all TortoiseHg applications ' 'for the following changes to take effect:'), ', '.join(sorted(self._restartreqs))) self._restartreqs.clear() return all(results) def canExit(self): if self.isDirty(): ret = qtlib.CustomPrompt(_('Confirm Exit'), _('Apply changes before exit?'), self, (_('&Yes'), _('&No (discard changes)'), _ ('Cancel')), default=2, esc=2).run() if ret == 2: return False elif ret == 0: return self.applyChanges() return True def accept(self): if not self.applyChanges(): return s = self.settings s.setValue('settings/geom', self.saveGeometry()) s.setValue('settings/lastpage', self._getactivepagename()) s.sync() QDialog.accept(self) def reject(self): if not self.canExit(): return s = self.settings s.setValue('settings/geom', self.saveGeometry()) s.setValue('settings/lastpage', self._getactivepagename()) s.sync() QDialog.reject(self) def _getactivepagename(self): if self._activeformidx is None: return '' activeform = self.conftabs.widget(self._activeformidx) if not activeform: return '' return activeform._activepagename def _currentFormChanged(self, idx): activepagename = self._getactivepagename() if activepagename: self.conftabs.widget(idx).focusPage(activepagename) self._activeformidx = idx class SettingsForm(QWidget): """Widget for each settings file""" restartRequested = pyqtSignal(str) def __init__(self, rcpath, focus=None, parent=None, readonly=False): super(SettingsForm, self).__init__(parent) # If forcereadonly is false, the settings form will be readonly # if the corresponding ini file is readonly self.forcereadonly = readonly self.rcpath = rcpath layout = QVBoxLayout() self.setLayout(layout) tophbox = QHBoxLayout() layout.addLayout(tophbox) self.fnedit = QLineEdit() self.fnedit.setReadOnly(True) self.fnedit.setFrame(False) self.fnedit.setFocusPolicy(Qt.FocusPolicy.ClickFocus) p = self.fnedit.palette() p.setColor(QPalette.ColorRole.Base, Qt.GlobalColor.transparent) self.fnedit.setPalette(p) edit = QPushButton(_('Edit File')) edit.clicked.connect(self.editClicked) self.editbtn = edit reload = QPushButton(_('Reload')) reload.clicked.connect(self.reloadClicked) self.reloadbtn = reload tophbox.addWidget(QLabel(_('Settings File:'))) tophbox.addWidget(self.fnedit) tophbox.addWidget(edit) tophbox.addWidget(reload) bothbox = QHBoxLayout() layout.addLayout(bothbox, 8) pageList = QListWidget() pageList.setResizeMode(QListView.ResizeMode.Fixed) if qtlib.IS_RETINA: pageList.setIconSize(qtlib.listviewRetinaIconSize()) stack = QStackedWidget() bothbox.addWidget(pageList, 0) bothbox.addWidget(stack, 1) pageList.currentRowChanged.connect(self.activatePage) self.pages = {} self.stack = stack self.pageList = pageList self.pageListIndexToStack = {} desctext = QTextBrowser() desctext.setOpenExternalLinks(True) layout.addWidget(desctext, 2) self.desctext = desctext self.settings = QSettings() # add page items to treeview for meta, info in INFO: if 'extension' in meta and not hasExtension(meta['extension']): continue if isinstance(meta['icon'], str): icon = qtlib.geticon(meta['icon']) else: icon = self.style().standardIcon(meta['icon']) item = QListWidgetItem(icon, meta['label']) pageList.addItem(item) self.refresh() if not self.focusField(focus): # The selected setting may not exist # (e.g. if an extension has been disabled) self.pageList.setCurrentRow(0) @pyqtSlot(int) def activatePage(self, index): if index >= 0: self._activepagename = INFO[index][0]['name'] stackindex = self.pageListIndexToStack.get(index, -1) if stackindex >= 0: self.stack.setCurrentIndex(stackindex) return item = self.pageList.item(index) for data in INFO: if item.text() == data[0]['label']: meta, info = data break stackindex = self.stack.count() pagename = meta['name'] page = self.createPage(pagename, info) self.refreshPage(page) # better to call stack.addWidget() here, not by fillFrame() assert self.stack.count() > stackindex, 'page must be added to stack' self.pageListIndexToStack[index] = stackindex self.stack.setCurrentIndex(stackindex) def editClicked(self): 'Open internal editor in stacked widget' if self.isDirty(): ret = qtlib.CustomPrompt(_('Confirm Save'), _('Save changes before editing?'), self, (_('&Save'), _('&Discard'), _('Cancel')), default=2, esc=2).run() if ret == 0: self.applyChanges() elif ret == 2: return qscilib.fileEditor(self.fn, foldable=True) self.refresh() def refresh(self, *args): # refresh config values self.ini = self.loadIniFile(self.rcpath) # TODO: type this attr self.readonly = self.forcereadonly or not (hasattr(self.ini, 'write') and os.access(self.fn, os.W_OK)) self.stack.setDisabled(self.readonly) self.fnedit.setText(self.fn) for page in self.pages.values(): self.refreshPage(page) def refreshPage(self, page): name, info, widgets = page if name == 'extensions': for row, w in enumerate(widgets): key = w.opts['label'] for fullkey in (key, 'hgext.%s' % key, 'hgext/%s' % key): val = self.readCPath('extensions.' + fullkey) if val is not None: break if val is None: curvalue = False elif val.startswith(b'!'): curvalue = False else: curvalue = True w.setValue(curvalue) if val is None: w.opts['cpath'] = 'extensions.' + key else: w.opts['cpath'] = 'extensions.' + fullkey self.validateextensions() elif name == 'tools': self.toolsFrame.refresh() elif name == 'hooks': self.hooksFrame.refresh() else: for row, e in enumerate(info): if not e.cpath: continue # a dummy field curvalue = self.readCPath(e.cpath) widgets[row].setValue(curvalue) def isDirty(self): if self.readonly: return False for name, info, widgets in self.pages.values(): for w in widgets: if w.isDirty(): return True return False def reloadClicked(self): if self.isDirty(): d = QMessageBox.question(self, _('Confirm Reload'), _('Unsaved changes will be lost.\n' 'Do you want to reload?'), QMessageBox.StandardButton.Ok | QMessageBox.StandardButton.Cancel) if d != QMessageBox.StandardButton.Ok: return self.refresh() def focusPage(self, focuspage): 'Set change page to focuspage' for i, (meta, info) in enumerate(INFO): if meta['name'] == focuspage: self._activepagename = meta['name'] self.pageList.setCurrentRow(i) return True return False def focusField(self, focusfield): 'Set page and focus to requested datum' if not focusfield: return False if focusfield.find('.') < 0: return self.focusPage(focusfield) for i, (meta, info) in enumerate(INFO): for n, e in enumerate(info): if e.cpath == focusfield: self.pageList.setCurrentRow(i) QTimer.singleShot(0, lambda: self.pages[meta['name']][2][n].setFocus()) return True return False def fillFrame(self, info): widgets = [] frame = QFrame() form = QFormLayout() form.setContentsMargins(5, 5, 0, 5) frame.setLayout(form) self.stack.addWidget(frame) for e in info: opts = {'label': e.label, 'cpath': e.cpath, 'tooltip': e.tooltip, 'master': e.master, 'settings':self.settings} if isinstance(e.values, tuple): func = e.values[0] w = func(opts, e.values[1]) else: func = e.values w = func(opts) rcpath = [hglib.tounicode(rcpath) for rcpath in hglib.userrcpath()] if e.globalonly: w.setEnabled(self.rcpath == rcpath) elif e.noglobal: w.setEnabled(self.rcpath != rcpath) lbl = QLabel(e.label) lbl.setToolTip(e.tooltip) widgets.append(w) if e.isVisible(): lbl.installEventFilter(self) w.installEventFilter(self) form.addRow(lbl, w) # assign the master to widgets that have a master for w in widgets: if w.opts['master'] is not None: for dep in widgets: if dep.opts['cpath'] == w.opts['master']: w.opts['master'] = dep return widgets def fillExtensionsFrame(self): widgets = [] frame = QFrame() grid = QGridLayout() grid.setContentsMargins(5, 5, 0, 5) frame.setLayout(grid) self.stack.addWidget(frame) allexts = hglib.allextensions() allextslist = list(allexts) MAXCOLUMNS = 3 maxrows = (len(allextslist) + MAXCOLUMNS - 1) // MAXCOLUMNS i = 0 extsinfo = () for i, name in enumerate(sorted(allexts)): tt = hglib.tounicode(allexts[name]) opts = {'label':name, 'cpath':'extensions.' + name, 'tooltip':tt} w = genCheckBox(opts) w.installEventFilter(self) w.clicked.connect(self.validateextensions) row, col = i // maxrows, i % maxrows grid.addWidget(w, col, row) widgets.append(w) return extsinfo, widgets def fillToolsFrame(self): self.toolsFrame = frame = customtools.ToolsFrame(self.ini, parent=self) self.stack.addWidget(frame) return (), [frame] def fillHooksFrame(self): self.hooksFrame = frame = customtools.HooksFrame(self.ini, parent=self) self.stack.addWidget(frame) return (), [frame] def eventFilter(self, obj, event): if event.type() in (QEvent.Type.Enter, QEvent.Type.FocusIn): self.desctext.setHtml(obj.toolTip()) if event.type() == QEvent.Type.ToolTip: return True # tooltip is shown in self.desctext return False def createPage(self, name, info): if name == 'extensions': extsinfo, widgets = self.fillExtensionsFrame() self.pages[name] = name, extsinfo, widgets elif name == 'tools': toolsinfo, widgets = self.fillToolsFrame() self.pages[name] = name, toolsinfo, widgets elif name == 'hooks': hooksinfo, widgets = self.fillHooksFrame() self.pages[name] = name, hooksinfo, widgets else: widgets = self.fillFrame(info) self.pages[name] = name, info, widgets return self.pages[name] def readCPath(self, cpath): 'Retrieve a value from the parsed config file' # Presumes single section/key level depth section, key = pycompat.sysbytes(cpath).split(b'.', 1) return self.ini.get(section, key) def loadIniFile(self, rcpath: List[str]) -> IniConfig: for fn in rcpath: if os.path.exists(fn): break else: for fn in rcpath: # Try to create a file from rcpath try: with open(fn, 'w') as f: f.write('# Generated by TortoiseHg settings dialog\n') break except (IOError, OSError): pass else: qtlib.WarningMsgBox(_('Unable to create a Mercurial.ini file'), _('Insufficient access rights, reverting to read-only ' 'mode.'), parent=self) from mercurial import config self.fn = rcpath[0] return config.config() self.fn = fn return wconfig.readfile(hglib.fromunicode(self.fn)) def recordNewValue(self, cpath, newvalue): """Set the given value to ini; returns True if changed""" # 'newvalue' is in local encoding section, key = pycompat.sysbytes(cpath).split(b'.', 1) if newvalue == self.ini.get(section, key): return False if newvalue is None: try: del self.ini[section][key] except KeyError: pass else: self.ini.set(section, key, newvalue) return True def applyChanges(self): if self.readonly: return True # safely skipped because all fields are disabled for name, info, widgets in self.pages.values(): if name == 'extensions': self.applyChangesForExtensions() elif name == 'tools': self.applyChangesForTools() elif name == 'hooks': self.applyChangesForHooks() else: for row, e in enumerate(info): if not e.cpath: continue # a dummy field newvalue = widgets[row].value() changed = self.recordNewValue(e.cpath, newvalue) if changed and e.restartneeded: self.restartRequested.emit(e.label) try: wconfig.writefile(self.ini, hglib.fromunicode(self.fn)) return True except EnvironmentError as e: qtlib.WarningMsgBox(_('Unable to write configuration file'), hglib.exception_str(e), parent=self) return False def applyChangesForExtensions(self): assert 'extensions' in self.pages emitChanged = False enabledexts = hglib.enabledextensions() for chk in self.pages['extensions'][2]: if (not emitChanged) and chk.isDirty(): self.restartRequested.emit(_('Extensions')) emitChanged = True name = chk.opts['label'] cpath = chk.opts['cpath'] section, key = pycompat.sysbytes(cpath).split(b'.', 1) newvalue = chk.value() if newvalue and (name in enabledexts): continue # unchanged if newvalue: self.ini.set(section, key, b'') else: try: del self.ini[section][key] except KeyError: pass @pyqtSlot() def validateextensions(self): enabledexts = hglib.enabledextensions() selectedexts = set(chk.opts['label'] for chk in self.pages['extensions'][2] if chk.isChecked()) invalidexts = hglib.validateextensions(selectedexts) def getinival(cpath): if b'extensions' not in self.ini: return None sect, key = pycompat.sysbytes(cpath).split(b'.', 1) try: return self.ini.get(sect, key) except KeyError: pass def changable(name, cpath): curval = getinival(cpath) if curval not in (b'', None): # enabled or unspecified, official extensions only return False elif name in enabledexts and curval is None: # re-disabling ext is not supported return False elif name in invalidexts and name not in selectedexts: # disallow to enable bad exts, but allow to disable it return False else: return True allexts = hglib.allextensions() for chk in self.pages['extensions'][2]: name = chk.opts['label'] if not changable(name, chk.opts['cpath']): chk.setEnabled(False) cpath = chk.opts['cpath'] sect, key = pycompat.sysbytes(cpath).split(b'.', 1) if hglib.loadui().config(sect, key, None) is not None: chk.setValue(True) # XXX: setValue(False) was called in refreshPage() prior to # this. SettingsCheckBox only sets its value if the # current value is None, but this needs to be forced on # because the dirty check looks at the checkbox state # and will flag the item as dirty otherwise. chk.curvalue = True else: chk.setEnabled(True) invalmsg = invalidexts.get(name) if invalmsg: invalmsg = invalmsg.decode('utf-8') chk.setToolTip(invalmsg or hglib.tounicode(allexts[name])) def applyChangesForTools(self): if self.toolsFrame.applyChanges(self.ini): self.restartRequested.emit(_('Tools')) def applyChangesForHooks(self): if self.hooksFrame.applyChanges(self.ini): self.restartRequested.emit(_('Hooks')) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/shellconf.py0000644000000000000000000002525414672254332020016 0ustar00rootroot# shellconf.py - User interface for the TortoiseHg shell extension settings # # Copyright 2009 Steve Borho # Copyright 2010 Adrian Buehlmann # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations from mercurial.windows import winreg CreateKey = winreg.CreateKey HKEY_CURRENT_USER = winreg.HKEY_CURRENT_USER OpenKey = winreg.OpenKey QueryValueEx = winreg.QueryValueEx REG_DWORD = winreg.REG_DWORD REG_SZ = winreg.REG_SZ SetValueEx = winreg.SetValueEx from .qtgui import ( QApplication, QCheckBox, QDialog, QDialogButtonBox, QGridLayout, QGroupBox, QHBoxLayout, QLabel, QListWidget, QListWidgetItem, QPushButton, QStyle, QTabWidget, QVBoxLayout, QWidget, ) from ..util import menuthg from ..util.i18n import _ from . import qtlib THGKEY = 'TortoiseHg' OVLKEY = 'TortoiseOverlays' PROMOTEDITEMS = 'PromotedItems' # reading functions def is_true(x): return x in ('1', 'True') def nonzero(x): return x != 0 # writing functions def one_str(x): if x: return '1' return '0' def one_int(x): if x: return 1 return 0 def noop(x): return x vars = { # name: # default, regkey, regtype, evalfunc, wrfunc, checkbuttonattribute 'EnableOverlays': [True, THGKEY, REG_SZ, is_true, one_str, 'ovenable'], 'LocalDisksOnly': [False, THGKEY, REG_SZ, is_true, one_str, 'localonly'], 'ShowTaskbarIcon': [True, THGKEY, REG_SZ, is_true, one_str, 'show_taskbaricon'], 'HighlightTaskbarIcon': [True, THGKEY, REG_SZ, is_true, one_str, 'highlight_taskbaricon'], 'HideMenuOutsideRepo': [False, THGKEY, REG_SZ, is_true, one_str, 'hidecmenu'], PROMOTEDITEMS: ['commit,workbench', THGKEY, REG_SZ, noop, noop, None], 'ShowUnversionedOverlay': [True, OVLKEY, REG_DWORD, nonzero, one_int, 'enableUnversionedHandler'], 'ShowIgnoredOverlay': [True, OVLKEY, REG_DWORD, nonzero, one_int, 'enableIgnoredHandler'], 'ShowLockedOverlay': [True, OVLKEY, REG_DWORD, nonzero, one_int, 'enableLockedHandler'], 'ShowReadonlyOverlay': [True, OVLKEY, REG_DWORD, nonzero, one_int, 'enableReadonlyHandler'], 'ShowDeletedOverlay': [True, OVLKEY, REG_DWORD, nonzero, one_int, 'enableDeletedHandler'], 'ShowAddedOverlay': [True, OVLKEY, REG_DWORD, nonzero, one_int, 'enableAddedHandler'] } class ShellConfigWindow(QDialog): def __init__(self, parent=None): super(ShellConfigWindow, self).__init__(parent) self.menu_cmds = {} self.dirty = False layout = QVBoxLayout() tw = QTabWidget() layout.addWidget(tw) # cmenu tab cmenuwidget = QWidget() grid = QGridLayout() cmenuwidget.setLayout(grid) tw.addTab(cmenuwidget, _("Context Menu")) w = QLabel(_("Top menu items:")) grid.addWidget(w, 0, 0) self.topmenulist = w = QListWidget() grid.addWidget(w, 1, 0, 4, 1) w.itemClicked.connect(self.listItemClicked) w = QLabel(_("Sub menu items:")) grid.addWidget(w, 0, 2) self.submenulist = w = QListWidget() grid.addWidget(w, 1, 2, 4, 1) w.itemClicked.connect(self.listItemClicked) style = QApplication.style() icon = style.standardIcon(QStyle.StandardPixmap.SP_ArrowLeft) self.top_button = w = QPushButton(icon, '') grid.addWidget(w, 2, 1) w.clicked.connect(self.top_clicked) icon = style.standardIcon(QStyle.StandardPixmap.SP_ArrowRight) self.sub_button = w = QPushButton(icon, '') grid.addWidget(w, 3, 1) w.clicked.connect(self.sub_clicked) grid.setRowStretch(1, 10) grid.setRowStretch(4, 10) def checkbox(label): cb = QCheckBox(label) cb.stateChanged.connect(self.stateChanged) return cb hidebox = QGroupBox(_('Menu Behavior')) grid.addWidget(hidebox, 5, 0, 5, 3) self.hidecmenu = checkbox(_('Hide context menu outside repositories')) self.hidecmenu.setToolTip(_('Do not show menu items on unversioned ' 'folders (use shift + click to override)')) hidebox.setLayout(QVBoxLayout()) hidebox.layout().addWidget(self.hidecmenu) # Icons tab iconswidget = QWidget() iconslayout = QVBoxLayout() iconswidget.setLayout(iconslayout) tw.addTab(iconswidget, _("Icons")) # Overlays group gbox = QGroupBox(_("Overlays")) iconslayout.addWidget(gbox) hb = QHBoxLayout() gbox.setLayout(hb) self.ovenable = cb = checkbox(_("Enabled overlays")) hb.addWidget(cb) self.localonly = checkbox(_("Local disks only")) hb.addWidget(self.localonly) hb.addStretch() # Enabled Overlay Handlers group gbox = QGroupBox(_("Enabled Overlay Handlers")) iconslayout.addWidget(gbox) grid = QGridLayout() gbox.setLayout(grid) grid.setColumnStretch(3, 10) w = QLabel(_("Warning: affects all Tortoises, logoff required after " "change")) grid.addWidget(w, 0, 0, 1, 3) self.enableAddedHandler = w = checkbox(_("Added")) grid.addWidget(w, 1, 0) self.enableLockedHandler = w = checkbox(_("Locked*")) grid.addWidget(w, 1, 1) self.enableIgnoredHandler = w = checkbox(_("Ignored*")) grid.addWidget(w, 1, 2) self.enableUnversionedHandler = w = checkbox(_("Unversioned")) grid.addWidget(w, 2, 0) self.enableReadonlyHandler = w = checkbox(_("Readonly*")) grid.addWidget(w, 2, 1) self.enableDeletedHandler = w = checkbox(_("Deleted*")) grid.addWidget(w, 2, 2) w = QLabel(_("*: not used by TortoiseHg")) grid.addWidget(w, 3, 0, 1, 3) # Taskbar group gbox = QGroupBox(_("Taskbar")) iconslayout.addWidget(gbox) hb = QHBoxLayout() gbox.setLayout(hb) self.show_taskbaricon = cb = checkbox(_("Show Icon")) hb.addWidget(cb) self.highlight_taskbaricon = cb = checkbox(_("Highlight Icon")) hb.addWidget(cb) hb.addStretch() iconslayout.addStretch() # i18n: URL of TortoiseSVN documentation url = _('https://tortoisesvn.net/docs/release/TortoiseSVN_en/' 'tsvn-dug-settings.html#tsvn-dug-settings-icon-set') w = QLabel(_('You can change the icon set from ' "TortoiseSVN's Settings") % url) w.setOpenExternalLinks(True) iconslayout.addWidget(w) # dialog buttons bb = QDialogButtonBox(QDialogButtonBox.StandardButton.Ok|QDialogButtonBox.StandardButton.Cancel|QDialogButtonBox.StandardButton.Apply) self.apply_button = bb.button(QDialogButtonBox.StandardButton.Apply) bb.accepted.connect(self.accept) bb.rejected.connect(self.reject) bb.button(QDialogButtonBox.StandardButton.Apply).clicked.connect(self.apply) bb.button(QDialogButtonBox.StandardButton.Ok).setDefault(True) layout.addWidget(bb) self.setLayout(layout) self.setWindowTitle(_("Explorer Extension Settings - TortoiseHg")) self.setWindowIcon(qtlib.geticon('thg-repoconfig')) self.load_shell_configs() def load_shell_configs(self): for name, info in vars.items(): default, regkey, regtype, evalfunc, wrfunc, cbattr = info try: with OpenKey(HKEY_CURRENT_USER, 'Software\\' + regkey) as hkey: v = QueryValueEx(hkey, name)[0] vars[name][0] = evalfunc(v) except OSError: pass if cbattr is not None: checkbutton = getattr(self, cbattr) checkbutton.setChecked(vars[name][0]) promoteditems = vars[PROMOTEDITEMS][0] self.set_menulists(promoteditems) self.dirty = False self.update_states() def set_menulists(self, promoteditems): for list in (self.topmenulist, self.submenulist): list.clear() list.setSortingEnabled(True) promoted = [pi.strip() for pi in promoteditems.split(',')] for cmd, info in menuthg.thgcmenu.items(): label = info['label'] item = QListWidgetItem(label['str']) item._id = label['id'] if cmd in promoted: self.topmenulist.addItem(item) else: self.submenulist.addItem(item) self.menu_cmds[item._id] = cmd def store_shell_configs(self): if not self.dirty: return promoted = [] list = self.topmenulist for row in range(list.count()): cmd = self.menu_cmds[list.item(row)._id] promoted.append(cmd) hkey = CreateKey(HKEY_CURRENT_USER, "Software\\" + THGKEY) SetValueEx(hkey, PROMOTEDITEMS, 0, REG_SZ, ','.join(promoted)) for name, info in vars.items(): default, regkey, regtype, evalfunc, wrfunc, cbattr = info if cbattr is None: continue checkbutton = getattr(self, cbattr) v = wrfunc(checkbutton.isChecked()) hkey = CreateKey(HKEY_CURRENT_USER, 'Software\\' + regkey) SetValueEx(hkey, name, 0, regtype, v) self.dirty = False self.update_states() def accept(self): self.store_shell_configs() QDialog.accept(self) def reject(self): QDialog.reject(self) def apply(self): self.store_shell_configs() def top_clicked(self): self.move_selected(self.submenulist, self.topmenulist) def sub_clicked(self): self.move_selected(self.topmenulist, self.submenulist) def move_selected(self, fromlist, tolist): row = fromlist.currentRow() if row < 0: return item = fromlist.takeItem(row) tolist.addItem(item) tolist.setCurrentItem(item) fromlist.setCurrentItem(None) self.dirty = True self.update_states() def update_states(self): self.top_button.setEnabled(len(self.submenulist.selectedItems()) > 0) self.sub_button.setEnabled(len(self.topmenulist.selectedItems()) > 0) self.apply_button.setEnabled(self.dirty) def stateChanged(self, state): self.dirty = True self.update_states() def listItemClicked(self, item): itemlist = item.listWidget() for list in (self.topmenulist, self.submenulist): if list != itemlist: list.setCurrentItem(None) self.update_states() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730809007.0 tortoisehg-6.9/tortoisehg/hgqt/shelve.py0000644000000000000000000005211014712406257017316 0ustar00rootroot# shelve.py - TortoiseHg shelve and patch tool # # Copyright 2011 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os import time from .qtcore import ( QSettings, Qt, pyqtSlot, ) from .qtgui import ( QAction, QComboBox, QDialog, QFrame, QHBoxLayout, QKeySequence, QPushButton, QSplitter, QToolBar, QVBoxLayout, ) from mercurial import ( commands, error, util, ) from ..util import hglib from ..util.i18n import _ from ..util.patchctx import patchctx from . import ( cmdui, chunks, qtlib, ) class ShelveDialog(QDialog): wdir = _('Working Directory') def __init__(self, repoagent, parent=None): QDialog.__init__(self, parent) self.setWindowFlags(Qt.WindowType.Window) self.setWindowIcon(qtlib.geticon('hg-shelve')) self._repoagent = repoagent self.shelves = [] self.patches = [] self._patchnames = {} # path: mq patch name layout = QVBoxLayout() layout.setContentsMargins(2, 2, 2, 2) layout.setSpacing(0) self.setLayout(layout) self.tbarhbox = hbox = QHBoxLayout() hbox.setContentsMargins(0, 0, 0, 0) hbox.setSpacing(0) layout.addLayout(self.tbarhbox) self.splitter = QSplitter(self) self.splitter.setOrientation(Qt.Orientation.Horizontal) self.splitter.setChildrenCollapsible(False) self.splitter.setObjectName('splitter') layout.addWidget(self.splitter, 1) aframe = QFrame(self.splitter) avbox = QVBoxLayout() avbox.setSpacing(2) avbox.setContentsMargins(2, 2, 2, 2) aframe.setLayout(avbox) ahbox = QHBoxLayout() ahbox.setSpacing(2) ahbox.setContentsMargins(2, 2, 2, 2) avbox.addLayout(ahbox) self.comboa = QComboBox(self) self.comboa.setMinimumContentsLength(10) # allow to cut long content self.comboa.currentIndexChanged.connect(self.comboAChanged) self.clearShelfButtonA = QPushButton(_('Clear')) self.clearShelfButtonA.setToolTip(_('Clear the current shelf file')) self.clearShelfButtonA.clicked.connect(self.clearShelfA) self.delShelfButtonA = QPushButton(_('Delete')) self.delShelfButtonA.setToolTip(_('Delete the current shelf file')) self.delShelfButtonA.clicked.connect(self.deleteShelfA) ahbox.addWidget(self.comboa, 1) ahbox.addWidget(self.clearShelfButtonA) ahbox.addWidget(self.delShelfButtonA) self.browsea = chunks.ChunksWidget(self._repoagent, self) self.browsea.splitter.splitterMoved.connect(self.linkSplitters) self.browsea.linkActivated.connect(self.linkActivated) self.browsea.showMessage.connect(self.showMessage) avbox.addWidget(self.browsea) bframe = QFrame(self.splitter) bvbox = QVBoxLayout() bvbox.setSpacing(2) bvbox.setContentsMargins(2, 2, 2, 2) bframe.setLayout(bvbox) bhbox = QHBoxLayout() bhbox.setSpacing(2) bhbox.setContentsMargins(2, 2, 2, 2) bvbox.addLayout(bhbox) self.combob = QComboBox(self) self.combob.setMinimumContentsLength(10) # allow to cut long content self.combob.currentIndexChanged.connect(self.comboBChanged) self.clearShelfButtonB = QPushButton(_('Clear')) self.clearShelfButtonB.setToolTip(_('Clear the current shelf file')) self.clearShelfButtonB.clicked.connect(self.clearShelfB) self.delShelfButtonB = QPushButton(_('Delete')) self.delShelfButtonB.setToolTip(_('Delete the current shelf file')) self.delShelfButtonB.clicked.connect(self.deleteShelfB) bhbox.addWidget(self.combob, 1) bhbox.addWidget(self.clearShelfButtonB) bhbox.addWidget(self.delShelfButtonB) self.browseb = chunks.ChunksWidget(self._repoagent, self) self.browseb.splitter.splitterMoved.connect(self.linkSplitters) self.browseb.linkActivated.connect(self.linkActivated) self.browseb.showMessage.connect(self.showMessage) bvbox.addWidget(self.browseb) self.lefttbar = QToolBar(_('Left Toolbar'), objectName='lefttbar') self.lefttbar.setIconSize(qtlib.toolBarIconSize()) self.lefttbar.setStyleSheet(qtlib.tbstylesheet) self.tbarhbox.addWidget(self.lefttbar) self.deletea = a = QAction(_('Delete selected chunks'), self) self.deletea.triggered.connect(self.deleteChunksA) a.setIcon(qtlib.geticon('thg-shelve-delete-left')) self.lefttbar.addAction(self.deletea) self.allright = a = QAction(_('Move all files right'), self) self.allright.triggered.connect(self.moveFilesRight) a.setIcon(qtlib.geticon('thg-shelve-move-right-all')) self.lefttbar.addAction(self.allright) self.fileright = a = QAction(_('Move selected file right'), self) self.fileright.triggered.connect(self.moveFileRight) a.setIcon(qtlib.geticon('thg-shelve-move-right-file')) self.lefttbar.addAction(self.fileright) self.editfilea = a = QAction(_('Edit file'), self) a.setIcon(qtlib.geticon('edit-file')) self.lefttbar.addAction(self.editfilea) self.chunksright = a = QAction(_('Move selected chunks right'), self) self.chunksright.triggered.connect(self.moveChunksRight) a.setIcon(qtlib.geticon('thg-shelve-move-right-chunks')) self.lefttbar.addAction(self.chunksright) self.rbar = QToolBar(_('Refresh Toolbar'), objectName='rbar') self.rbar.setIconSize(qtlib.toolBarIconSize()) self.rbar.setStyleSheet(qtlib.tbstylesheet) self.tbarhbox.addStretch(1) self.tbarhbox.addWidget(self.rbar) self.refreshAction = a = QAction(_('Refresh'), self) a.setIcon(qtlib.geticon('view-refresh')) a.setShortcuts(QKeySequence.StandardKey.Refresh) a.triggered.connect(self.refreshCombos) self.rbar.addAction(self.refreshAction) self.actionNew = a = QAction(_('New Shelf'), self) a.setIcon(qtlib.geticon('document-new')) a.triggered.connect(self.newShelfPressed) self.rbar.addAction(self.actionNew) self.righttbar = QToolBar(_('Right Toolbar'), objectName='righttbar') self.righttbar.setIconSize(qtlib.toolBarIconSize()) self.righttbar.setStyleSheet(qtlib.tbstylesheet) self.tbarhbox.addStretch(1) self.tbarhbox.addWidget(self.righttbar) self.chunksleft = a = QAction(_('Move selected chunks left'), self) self.chunksleft.triggered.connect(self.moveChunksLeft) a.setIcon(qtlib.geticon('thg-shelve-move-left-chunks')) self.righttbar.addAction(self.chunksleft) self.editfileb = a = QAction(_('Edit file'), self) a.setIcon(qtlib.geticon('edit-file')) self.righttbar.addAction(self.editfileb) self.fileleft = a = QAction(_('Move selected file left'), self) self.fileleft.triggered.connect(self.moveFileLeft) a.setIcon(qtlib.geticon('thg-shelve-move-left-file')) self.righttbar.addAction(self.fileleft) self.allleft = a = QAction(_('Move all files left'), self) self.allleft.triggered.connect(self.moveFilesLeft) a.setIcon(qtlib.geticon('thg-shelve-move-left-all')) self.righttbar.addAction(self.allleft) self.deleteb = a = QAction(_('Delete selected chunks'), self) self.deleteb.triggered.connect(self.deleteChunksB) a.setIcon(qtlib.geticon('thg-shelve-delete-right')) self.righttbar.addAction(self.deleteb) self.editfilea.triggered.connect(self.browsea.editCurrentFile) self.editfileb.triggered.connect(self.browseb.editCurrentFile) self.browsea.chunksSelected.connect(self.chunksright.setEnabled) self.browsea.chunksSelected.connect(self.deletea.setEnabled) self.browsea.fileSelected.connect(self.fileright.setEnabled) self.browsea.fileSelected.connect(self.editfilea.setEnabled) self.browsea.fileModified.connect(self.refreshCombos) self.browsea.fileModelEmpty.connect(self.allright.setDisabled) self.browseb.chunksSelected.connect(self.chunksleft.setEnabled) self.browseb.chunksSelected.connect(self.deleteb.setEnabled) self.browseb.fileSelected.connect(self.fileleft.setEnabled) self.browseb.fileSelected.connect(self.editfileb.setEnabled) self.browseb.fileModified.connect(self.refreshCombos) self.browseb.fileModelEmpty.connect(self.allleft.setDisabled) self.statusbar = cmdui.ThgStatusBar(self) layout.addWidget(self.statusbar) self.showMessage(_('Backup copies of modified files can be found ' 'in .hg/Trashcan/')) self.refreshCombos() repoagent.repositoryChanged.connect(self.refreshCombos) self.setWindowTitle(_('TortoiseHg Shelve - %s') % repoagent.displayName()) self.restoreSettings() @property def repo(self): return self._repoagent.rawRepo() @pyqtSlot() def moveFileRight(self): if self.combob.currentIndex() == -1: self.newShelf(False) for file in self.browsea.getSelectedFiles(): chunks = self.browsea.getChunksForFile(file) if chunks and self.browseb.mergeChunks(file, chunks): self.browsea.removeFile(file) @pyqtSlot() def moveFileLeft(self): for file in self.browseb.getSelectedFiles(): chunks = self.browseb.getChunksForFile(file) if chunks and self.browsea.mergeChunks(file, chunks): self.browseb.removeFile(file) @pyqtSlot() def moveFilesRight(self): if self.combob.currentIndex() == -1: self.newShelf(False) for file in self.browsea.getFileList(): chunks = self.browsea.getChunksForFile(file) if chunks and self.browseb.mergeChunks(file, chunks): self.browsea.removeFile(file) @pyqtSlot() def moveFilesLeft(self): for file in self.browseb.getFileList(): chunks = self.browseb.getChunksForFile(file) if chunks and self.browsea.mergeChunks(file, chunks): self.browseb.removeFile(file) @pyqtSlot() def moveChunksRight(self): if self.combob.currentIndex() == -1: self.newShelf(False) file, chunks = self.browsea.getSelectedFileAndChunks() if self.browseb.mergeChunks(file, chunks): self.browsea.deleteSelectedChunks() @pyqtSlot() def moveChunksLeft(self): file, chunks = self.browseb.getSelectedFileAndChunks() if self.browsea.mergeChunks(file, chunks): self.browseb.deleteSelectedChunks() @pyqtSlot() def deleteChunksA(self): if self.comboa.currentIndex() == 0: msg = _('Delete selected chunks from working copy?') else: f = hglib.tounicode(os.path.basename(self.currentPatchA())) msg = _('Delete selected chunks from shelf file %s?') % f if qtlib.QuestionMsgBox(_('Are you sure?'), msg, parent=self): self.browsea.deleteSelectedChunks() @pyqtSlot() def deleteChunksB(self): f = hglib.tounicode(os.path.basename(self.currentPatchB())) msg = _('Delete selected chunks from shelf file %s?') % f if qtlib.QuestionMsgBox(_('Are you sure?'), msg, parent=self): self.browseb.deleteSelectedChunks() @pyqtSlot() def newShelfPressed(self): self.newShelf(True) def newShelf(self, interactive): shelve = time.strftime('%Y-%m-%d_%H-%M-%S') + \ '_parent_rev_%d' % self.repo[b'.'].rev() if interactive: shelve, ok = qtlib.getTextInput(self, _('TortoiseHg New Shelf Name'), _('Specify name of new shelf'), text=shelve) if not ok: return invalids = (':', '#', '/', '\\') bads = [c for c in shelve if c in invalids] if bads: qtlib.ErrorMsgBox(_('Bad filename'), _('A shelf name cannot contain %s') % ''.join(bads)) return badmsg = util.checkosfilename(hglib.fromunicode(shelve)) if badmsg: qtlib.ErrorMsgBox(_('Bad filename'), hglib.tounicode(badmsg)) return try: fn = os.path.join('shelves', shelve) shelfpath: bytes = self.repo.vfs.join(hglib.fromunicode(fn)) if os.path.exists(shelfpath): qtlib.ErrorMsgBox(_('File already exists'), _('A shelf file of that name already exists')) return self.repo.makeshelf(hglib.fromunicode(shelve)) self.showMessage(_('New shelf created')) self.refreshCombos() if shelfpath in self.shelves: self.combob.setCurrentIndex(self.shelves.index(shelfpath)) except EnvironmentError as e: self.showMessage(hglib.exception_str(e)) @pyqtSlot() def deleteShelfA(self): shelf = self.currentPatchA() ushelf = hglib.tounicode(os.path.basename(shelf)) if not qtlib.QuestionMsgBox(_('Are you sure?'), _('Delete shelf file %s?') % ushelf): return try: os.unlink(shelf) self.showMessage(_('Shelf deleted')) except EnvironmentError as e: self.showMessage(hglib.exception_str(e)) self.refreshCombos() @pyqtSlot() def clearShelfA(self): if self.comboa.currentIndex() == 0: if not qtlib.QuestionMsgBox(_('Are you sure?'), _('Revert all working copy changes?')): return try: self.repo.ui.quiet = True commands.revert(self.repo.ui, self.repo, all=True) self.repo.ui.quiet = False except (EnvironmentError, error.Abort) as e: self.showMessage(hglib.exception_str(e)) self.refreshCombos() return shelf = self.currentPatchA() ushelf = hglib.tounicode(os.path.basename(shelf)) if not qtlib.QuestionMsgBox(_('Are you sure?'), _('Clear contents of shelf file %s?') % ushelf): return try: f = open(shelf, "w") f.close() self.showMessage(_('Shelf cleared')) except EnvironmentError as e: self.showMessage(hglib.exception_str(e)) self.refreshCombos() @pyqtSlot() def deleteShelfB(self): shelf = self.currentPatchB() ushelf = hglib.tounicode(os.path.basename(shelf)) if not qtlib.QuestionMsgBox(_('Are you sure?'), _('Delete shelf file %s?') % ushelf): return try: os.unlink(shelf) self.showMessage(_('Shelf deleted')) except EnvironmentError as e: self.showMessage(hglib.exception_str(e)) self.refreshCombos() @pyqtSlot() def clearShelfB(self): shelf = self.currentPatchB() ushelf = hglib.tounicode(os.path.basename(shelf)) if not qtlib.QuestionMsgBox(_('Are you sure?'), _('Clear contents of shelf file %s?') % ushelf): return try: f = open(shelf, "w") f.close() self.showMessage(_('Shelf cleared')) except EnvironmentError as e: self.showMessage(hglib.exception_str(e)) self.refreshCombos() def currentPatchA(self): idx = self.comboa.currentIndex() if idx == -1: return None if idx == 0: return self.wdir idx -= 1 if idx < len(self.shelves): return self.shelves[idx] idx -= len(self.shelves) if idx < len(self.patches): return self.patches[idx] return None def currentPatchB(self): idx = self.combob.currentIndex() if idx == -1: return None if idx < len(self.shelves): return self.shelves[idx] idx -= len(self.shelves) if idx < len(self.patches): return self.patches[idx] return None @pyqtSlot() def refreshCombos(self): shelvea, shelveb = self.currentPatchA(), self.currentPatchB() # Note that thgshelves returns the shelve list ordered from newest to # oldest shelves = self.repo.thgshelves() disp = [_('Shelf: %s') % hglib.tounicode(s) for s in shelves] patches = self.repo.thgmqunappliedpatches disp += [_('Patch: %s') % hglib.tounicode(p) for p in patches] # store fully qualified paths self.shelves = [os.path.join(self.repo.shelfdir, s) for s in shelves] self.patches = [self.repo.mq.join(p) for p in patches] self._patchnames = dict(zip(self.patches, patches)) self.comboRefreshInProgress = True self.comboa.clear() self.combob.clear() self.comboa.addItems([self.wdir] + disp) self.combob.addItems(disp) # attempt to restore selection if shelvea == self.wdir: idxa = 0 elif shelvea in self.shelves: idxa = self.shelves.index(shelvea) + 1 elif shelvea in self.patches: idxa = len(self.shelves) + self.patches.index(shelvea) + 1 else: idxa = 0 self.comboa.setCurrentIndex(idxa) if shelveb in self.shelves: idxb = self.shelves.index(shelveb) elif shelveb in self.patches: idxb = len(self.shelves) + self.patches.index(shelveb) else: idxb = 0 self.combob.setCurrentIndex(idxb) self.comboRefreshInProgress = False self.comboAChanged(idxa) self.comboBChanged(idxb) if not patches and not shelves: self.delShelfButtonB.setEnabled(False) self.clearShelfButtonB.setEnabled(False) self.browseb.setContext(patchctx('', self.repo, None)) @pyqtSlot(int) def comboAChanged(self, index): if self.comboRefreshInProgress: return assert index >= 0 # side A should always have "Working Directory" if index == 0: rev = None self.delShelfButtonA.setEnabled(False) self.clearShelfButtonA.setEnabled(True) else: rev = self.currentPatchA() rev = self._patchnames.get(rev, rev) self.delShelfButtonA.setEnabled(index <= len(self.shelves)) self.clearShelfButtonA.setEnabled(index <= len(self.shelves)) self.browsea.setContext(self.repo[rev]) self._deselectSamePatch(self.combob) @pyqtSlot(int) def comboBChanged(self, index): if self.comboRefreshInProgress: return rev = self.currentPatchB() rev = self._patchnames.get(rev, rev) self.delShelfButtonB.setEnabled(0 <= index < len(self.shelves)) self.clearShelfButtonB.setEnabled(0 <= index < len(self.shelves)) self.browseb.setContext(self.repo[rev]) self._deselectSamePatch(self.comboa) def _deselectSamePatch(self, combo): # if the same patch or shelve is selected by both sides, "move" action # will corrupt patch content. if self.currentPatchA() != self.currentPatchB(): return if combo.count() > 1: combo.setCurrentIndex((combo.currentIndex() + 1) % combo.count()) else: combo.setCurrentIndex(-1) @pyqtSlot(int, int) def linkSplitters(self, pos, index): if self.browsea.splitter.sizes()[0] != pos: self.browsea.splitter.moveSplitter(pos, index) if self.browseb.splitter.sizes()[0] != pos: self.browseb.splitter.moveSplitter(pos, index) @pyqtSlot(str) def linkActivated(self, linktext): pass @pyqtSlot(str) def showMessage(self, message): self.statusbar.showMessage(message) def storeSettings(self): s = QSettings() wb = "shelve/" s.setValue(wb + 'geometry', self.saveGeometry()) s.setValue(wb + 'panesplitter', self.splitter.saveState()) s.setValue(wb + 'filesplitter', self.browsea.splitter.saveState()) self.browsea.saveSettings(s, wb + 'fileviewa') self.browseb.saveSettings(s, wb + 'fileviewb') def restoreSettings(self): s = QSettings() wb = "shelve/" self.restoreGeometry(qtlib.readByteArray(s, wb + 'geometry')) self.splitter.restoreState(qtlib.readByteArray(s, wb + 'panesplitter')) self.browsea.splitter.restoreState( qtlib.readByteArray(s, wb + 'filesplitter')) self.browseb.splitter.restoreState( qtlib.readByteArray(s, wb + 'filesplitter')) self.browsea.loadSettings(s, wb + 'fileviewa') self.browseb.loadSettings(s, wb + 'fileviewb') def reject(self): self.storeSettings() super(ShelveDialog, self).reject() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730809007.0 tortoisehg-6.9/tortoisehg/hgqt/shortcutregistry.py0000644000000000000000000003564514712406257021512 0ustar00rootroot# shortcutregistry.py - manages user-configurable shortcuts # # Copyright 2020 Yuya Nishihara # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import collections import weakref from .qtcore import ( QSettings, ) from .qtgui import ( QAction, QKeySequence, ) from . import ( qtlib, ) from ..util import ( hglib, ) from ..util.i18n import _ if hglib.TYPE_CHECKING: from typing import ( Dict, Iterable, List, Text, Tuple, Union, ) _KeySequencesD = Union[ QKeySequence.StandardKey, Text, Tuple[Text, QKeySequence.StandardKey], # std key with custom modifier ] _KeySequencesDefs = Union[_KeySequencesD, List[_KeySequencesD], None] _ACTIONS_TABLE: Dict[Text, Tuple[Text, _KeySequencesDefs]] = { # MQ operations: # TODO: merge or give better name to deletePatches_, pushMovePatch_, # and renamePatch_ 'PatchQueue.deletePatches': (_('&Delete Patches...'), 'Del'), 'PatchQueue.finishRevision': (_('&Finish Patch'), None), 'PatchQueue.foldPatches': (_('Fold patches...'), None), 'PatchQueue.goToPatch': (_('Go &to Patch'), None), 'PatchQueue.guardPatch': (_('Set &Guards...'), None), 'PatchQueue.importRevision': (_('Import to &MQ'), None), 'PatchQueue.launchOptionsDialog': (_('MQ &Options'), None), 'PatchQueue.popAllPatches': (_('Pop all'), None), 'PatchQueue.popOnePatch': (_('Pop'), None), 'PatchQueue.popPatch': (_('&Unapply Patch'), None), 'PatchQueue.pushAllPatches': (_('Push all', 'MQ QPush'), None), 'PatchQueue.pushExactPatch': (_('Apply onto original parent'), None), 'PatchQueue.pushMovePatch': (_('&Apply Only This Patch'), 'Ctrl+Return'), 'PatchQueue.pushOnePatch': (_('Push', 'MQ QPush'), None), 'PatchQueue.pushPatch': (_('Apply patch'), None), 'PatchQueue.renamePatch': (_('Re&name Patch...'), 'F2'), # RepoView/RepoWidget navigation, etc. 'RepoView.changePhaseMenu': (_('Change &Phase to'), None), 'RepoView.filterByRevisionsMenu': (_('Filter b&y'), None), 'RepoView.goBack': (_('Back'), QKeySequence.StandardKey.Back), 'RepoView.goForward': (_('Forward'), QKeySequence.StandardKey.Forward), 'RepoView.goToCommonAncestor': (_('Goto common ancestor'), None), 'RepoView.goToRevision': (_('&Goto Revision...'), 'Ctrl+/'), 'RepoView.goToWorkingParent': (_('Go to current revision'), 'Ctrl+.'), 'RepoView.loadAllRevisions': (_('Load &All Revisions'), 'Shift+Ctrl+A'), 'RepoView.setHistoryColumns': (_('C&hoose Log Columns...'), None), 'RepoView.showFilterBar': (_('&Filter Toolbar'), 'Ctrl+S'), # Repository-level operations: 'Repository.archiveDagRangeRevisions': (_('Archive DAG Range...'), None), 'Repository.archiveRevision': (_('&Archive...'), None), 'Repository.backoutToRevision': (_('&Backout...'), None), 'Repository.bisect': (_('&Bisect...'), None), 'Repository.bisectBadGoodRevisionsPair': (_('Bisect - Bad, Good...'), None), 'Repository.bisectGoodBadRevisionsPair': (_('Bisect - Good, Bad...'), None), 'Repository.bookmarkRevision': (_('Boo&kmark...'), None), 'Repository.browseRevision': (_('Bro&wse at Revision'), None), 'Repository.bundleDagRangeRevisions': (_('Bundle DAG Range...'), None), 'Repository.bundleRevisions': (_('&Bundle Rev and Descendants...'), None), 'Repository.closeRevision': (_('&Close Branch'), None), 'Repository.compressRevisionsPair': (_('Compress History...'), None), 'Repository.copyGitHash': (_('Full &Git Hash'), None), 'Repository.copyHash': (_('Full &Hash'), None), 'Repository.copyPatch': (_('&Copy Patch'), None), 'Repository.copyShortGitHash': (_('Short Git Hash'), None), 'Repository.copyShortHash': (_('Short Hash'), None), 'Repository.emailDagRangeRevisions': (_('Email DAG Range...'), None), 'Repository.emailRevisions': (_('&Email Patch...'), None), 'Repository.exportDagRangeRevisions': (_('Export DAG Range...'), None), 'Repository.exportDiff': (_('Export Diff...'), None), 'Repository.exportRevisions': (_('E&xport Patch...'), None), 'Repository.graftRevisions': (_('&Graft to Local...'), None), 'Repository.import': (_('&Import Patches...'), None), 'Repository.incoming': (_('&Incoming'), 'Ctrl+Shift+,'), 'Repository.lockFile': (_('&Lock File...'), None), 'Repository.merge': (_('&Merge...'), None), 'Repository.mergeWithRevision': (_('&Merge with Local...'), None), 'Repository.outgoing': (_('&Outgoing'), 'Ctrl+Shift+.'), 'Repository.pickRevision': (_('Pick...'), None), 'Repository.pruneRevisions': (_('&Prune...'), None), 'Repository.pull': (_('&Pull'), None), 'Repository.pullAllTabs': (_('Pull &All Tabs'), None), 'Repository.pullToRevision': (_('Pull to here...'), None), 'Repository.purge': (_('&Purge...'), None), 'Repository.push': (_('P&ush'), None), 'Repository.pushAll': (_('Push &All'), None), 'Repository.pushAllTabs': (_('Push A&ll Tabs'), None), 'Repository.pushBranch': (_('Push Selected &Branch'), None), 'Repository.pushToRevision': (_('Push to &Here'), None), 'Repository.rebaseRevision': (_('&Rebase...'), None), 'Repository.rebaseSourceDestRevisionsPair': (_('Rebase...'), None), 'Repository.recover': (_('Re&cover'), None), 'Repository.resolve': (_('&Resolve...'), None), 'Repository.revertToRevision': (_('Revert &All Files...'), None), 'Repository.rollback': (_('R&ollback/Undo...'), 'Ctrl+U'), 'Repository.sendToPhabricator': (_('Post to Phabricator...'), None), 'Repository.sendToReviewBoard': (_('Post to Re&view Board...'), None), 'Repository.shelve': (_('&Shelve...'), None), 'Repository.signRevision': (_('Sig&n...'), None), 'Repository.stripRevision': (_('&Strip...'), None), 'Repository.syncBookmarks': (_('&Sync Bookmarks...'), None), 'Repository.tagRevision': (_('&Tag...'), None), 'Repository.topicRevision': (_('Top&ic...'), None), 'Repository.unbundle': (_('U&nbundle...'), None), 'Repository.update': (_('&Update...'), None), 'Repository.updateToRevision': (_('&Update...'), None), 'Repository.verify': (_('&Verify'), None), 'Repository.visualDiff': (_('&Diff to Parent'), None), 'Repository.visualDiffRevisionsPair': (_('Visual Diff...'), None), 'Repository.visualDiffToLocal': (_('Diff to &Local'), None), # Workbench actions: 'Workbench.abort': (_('Cancel'), None), 'Workbench.about': (_("&About TortoiseHg"), None), 'Workbench.aboutQt': (_('About &Qt'), None), 'Workbench.cloneRepository': (_('Clon&e Repository...'), ('Shift', QKeySequence.StandardKey.New)), 'Workbench.closeRepository': (_("&Close Repository"), QKeySequence.StandardKey.Close), 'Workbench.explorerHelp': (_('E&xplorer Help'), None), 'Workbench.help': (_('&Help'), None), 'Workbench.newRepository': (_('&New Repository...'), QKeySequence.StandardKey.New), 'Workbench.newWorkbench': (_('New &Workbench'), 'Shift+Ctrl+W'), 'Workbench.openFileManager': (_('E&xplore'), 'Ctrl+Shift+X'), 'Workbench.openReadme': (_('&Readme'), 'Ctrl+F1'), 'Workbench.openRepository': (_('&Open Repository...'), QKeySequence.StandardKey.Open), 'Workbench.openSettings': (_('&Settings'), QKeySequence.StandardKey.Preferences), 'Workbench.openShortcutSettings': (_('S&hortcut Settings'), None), 'Workbench.openTerminal': (_('&Terminal'), 'Ctrl+Shift+T'), 'Workbench.quit': (_('E&xit'), QKeySequence.StandardKey.Quit), 'Workbench.refresh': (_('&Refresh'), [QKeySequence.StandardKey.Refresh, 'Ctrl+F5']), # Ctrl+ to ignore status 'Workbench.refreshTaskTabs': (_('Refresh &Task Tab'), ('Shift', QKeySequence.StandardKey.Refresh)), 'Workbench.showConsole': (_('Show Conso&le'), 'Ctrl+L'), 'Workbench.showPatchQueue': (_('Show &Patch Queue'), None), 'Workbench.showRepoRegistry': (_('Sh&ow Repository Registry'), 'Ctrl+Shift+O'), 'Workbench.webServer': (_('&Web Server'), None), } _SETTINGS_GROUP = 'KeyboardShortcuts' _TOOLTIP_SHORTCUT_START_TAG = '' _TOOLTIP_SHORTCUT_END_TAG = '' def _parseDefaultKeySequences(data: _KeySequencesDefs) -> List[QKeySequence]: if data is None: return [] if isinstance(data, list): seqs = [] for d in data: seqs.extend(_parseDefaultKeySequences(d)) return seqs if hglib.isbasestring(data): return [QKeySequence(data, QKeySequence.SequenceFormat.PortableText)] if isinstance(data, tuple): mod, key = data kstr = QKeySequence(key).toString(QKeySequence.SequenceFormat.PortableText) return [QKeySequence('%s+%s' % (mod, kstr), QKeySequence.SequenceFormat.PortableText)] return QKeySequence.keyBindings(data) def _parseUserKeySequences(data: List[Text]) -> List[QKeySequence]: return [QKeySequence(s, QKeySequence.SequenceFormat.PortableText) for s in data] def _formatKeySequences(seqs: List[QKeySequence]) -> List[Text]: return [b.toString(QKeySequence.SequenceFormat.PortableText) for b in seqs] def _formatToolTip(label: Text, toolTip: Text, seqs: List[QKeySequence]) -> Text: """Build tool tip from current label/toolTip and shortcuts >>> stext = '%s(%s)%s' % (_TOOLTIP_SHORTCUT_START_TAG, 'A', ... _TOOLTIP_SHORTCUT_END_TAG) >>> _formatToolTip('Label', '', []) 'Label' >>> _formatToolTip('Label', '', [QKeySequence('B')]) 'Label (B)' >>> _formatToolTip('Label', 'ToolTip', []) 'ToolTip' >>> _formatToolTip('Label', 'ToolTip %s' % stext, []) 'ToolTip' >>> _formatToolTip('Label', 'ToolTip %s' % stext, [QKeySequence('B')]) 'ToolTip (B)' >>> _formatToolTip('Label', 'Tool\\nTip', [QKeySequence('B')]) 'Tool\\nTip' """ if toolTip: i = toolTip.find(_TOOLTIP_SHORTCUT_START_TAG) if i >= 0: label = toolTip[:i].rstrip() else: label = toolTip if not seqs: return label if '\n' in label: # multi-line toolTip can't be decorated by HTML tag return label return '%s %s(%s)%s' % ( label, _TOOLTIP_SHORTCUT_START_TAG, seqs[0].toString(QKeySequence.SequenceFormat.NativeText), _TOOLTIP_SHORTCUT_END_TAG) class ShortcutRegistry(object): """Dictionary of user-configurable shortcuts This is pure data object. Use ActionRegistry to manage both shortcuts and QAction instances. """ _userKeys: Dict[Text, List[QKeySequence]] def __init__(self): self._defaultKeys = {name: _parseDefaultKeySequences(seq) for name, (_label, seq) in _ACTIONS_TABLE.items()} self._userKeys = {} def copyShortcuts(self) -> ShortcutRegistry: """Creates new registry by copying the shortcut configuration""" registry = ShortcutRegistry() registry._userKeys = self._userKeys.copy() return registry def updateShortcuts(self, registry: ShortcutRegistry) -> None: """Copies shortcut configuration back from the given registry""" self._userKeys = registry._userKeys.copy() def readSettings(self): """Reads user key bindings from settings file""" self._userKeys.clear() qs = QSettings() qs.beginGroup(_SETTINGS_GROUP) for name in self.allNames(): if not qs.contains(name): continue self._userKeys[name] = _parseUserKeySequences( qtlib.readStringList(qs, name)) qs.endGroup() def saveSettings(self): """Saves current user key bindings to settings file""" qs = QSettings() qs.beginGroup(_SETTINGS_GROUP) for name in self.allNames(): if name in self._userKeys: qs.setValue(name, _formatKeySequences(self._userKeys[name])) else: qs.remove(name) qs.endGroup() def allNames(self) -> List[Text]: """List of all known action names""" return sorted(_ACTIONS_TABLE) def actionLabel(self, name: Text) -> Text: label, _default = _ACTIONS_TABLE[name] return label def defaultKeySequences(self, name: Text) -> List[QKeySequence]: return self._defaultKeys[name] def keySequences(self, name: Text) -> List[QKeySequence]: if name in self._userKeys: return self._userKeys[name] return self.defaultKeySequences(name) def hasUserKeySequences(self, name: Text) -> bool: assert name in _ACTIONS_TABLE, name return name in self._userKeys def setUserKeySequences(self, name: Text, seqs: List[QKeySequence]) -> None: """Stores new shortcuts of the specified action To remove the shortcuts, specify []. To restore the default key sequences, use unsetUserKeySequences(). You'll also want to call saveSettings() and applyChangesToActions(). """ assert name in _ACTIONS_TABLE, name self._userKeys[name] = seqs def unsetUserKeySequences(self, name: Text) -> None: """Restores the shortcuts of the specified action to default You'll also want to call saveSettings() and applyChangesToActions(). """ assert name in _ACTIONS_TABLE, name self._userKeys.pop(name, None) class ActionRegistry(ShortcutRegistry): """Manages user-configurable shortcuts and QAction instances""" _actionsMap: Dict[Text, weakref.WeakSet[QAction]] def __init__(self): super(ActionRegistry, self).__init__() # QAction instances are owned by QWidget and will be destroyed when # C++ object is deleted. Since QAction will be instantiated per # context (e.g. window), more than one instances may be registered # to the same slot. self._actionsMap = collections.defaultdict(weakref.WeakSet) def applyChangesToActions(self): """Applies changes to registered QAction instances""" for name, actions in self._actionsMap.items(): self._updateActions(name, actions) def registerAction(self, name: Text, action: QAction) -> None: """Register QAction instance to be updated on applyChangesToActions()""" assert name in _ACTIONS_TABLE, name self._actionsMap[name].add(action) self._updateActions(name, [action]) def _updateActions(self, name: Text, actions: Iterable[QAction]) -> None: label = self.actionLabel(name) seqs = self.keySequences(name) for a in actions: a.setText(label) qtlib.setContextMenuShortcuts(a, seqs) if seqs or a.toolTip(): a.setToolTip(_formatToolTip(label, a.toolTip(), seqs)) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730809007.0 tortoisehg-6.9/tortoisehg/hgqt/shortcutsettings.py0000644000000000000000000001535014712406257021471 0ustar00rootroot# shortcutsettings.py - dialog to configure shortcuts # # Copyright 2020 Yuya Nishihara # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations from .qtcore import ( QModelIndex, QTimer, Qt, pyqtSlot, ) from .qtgui import ( QDialog, QDialogButtonBox, QHBoxLayout, QKeySequenceEdit, QLabel, QLineEdit, QPushButton, QTreeWidget, QTreeWidgetItem, QVBoxLayout, QWidget, ) from . import ( shortcutregistry, ) from ..util import ( hglib, ) from ..util.i18n import _ if hglib.TYPE_CHECKING: from typing import ( Optional, Text, ) class ShortcutSettingsWidget(QWidget): def __init__(self, registry: shortcutregistry.ShortcutRegistry, parent: Optional[QWidget] = None) -> None: super(ShortcutSettingsWidget, self).__init__(parent) self._registry = registry vbox = QVBoxLayout(self) vbox.setContentsMargins(0, 0, 0, 0) # slightly longer delay than common keyboard auto-repeat rate self._filterLater = timer = QTimer(self) timer.setInterval(550) timer.setSingleShot(True) timer.timeout.connect(self._rebuildItems) self._filterEdit = edit = QLineEdit(self) edit.setPlaceholderText(_('Filter by keywords')) edit.textEdited.connect(self._filterLater.start) vbox.addWidget(edit) self._view = view = QTreeWidget(self) view.setHeaderLabels([_('Name'), _('Label'), _('Shortcuts')]) view.setAllColumnsShowFocus(True) view.setRootIsDecorated(False) view.setUniformRowHeights(True) vbox.addWidget(view) hbox = QHBoxLayout() label = QLabel(_('&Key'), self) hbox.addWidget(label) self._keyEdit = edit = QKeySequenceEdit(self) label.setBuddy(edit) edit.editingFinished.connect(self._applyCurrent) hbox.addWidget(edit) self._clearButton = button = QPushButton(_('Cl&ear'), self) button.clicked.connect(self._clearCurrent) hbox.addWidget(button) self._resetButton = button = QPushButton(_('&Reset to Default'), self) button.clicked.connect(self._resetCurrentToDefault) hbox.addWidget(button) vbox.addLayout(hbox) self._buildItems() self._view.resizeColumnToContents(0) self._view.resizeColumnToContents(1) self._view.setCurrentIndex(QModelIndex()) selmodel = self._view.selectionModel() assert selmodel is not None selmodel.currentRowChanged.connect(self._updateKeyEdit) self._updateKeyEdit() def _buildItems(self) -> None: registry = self._registry patterns = self._filterEdit.text().lower().split() items = [] for name in registry.allNames(): label = registry.actionLabel(name).replace('&', '') keys = ' | '.join(b.toString() for b in registry.keySequences(name)) data = [name, label, keys] if any(all(p not in s.lower() for s in data) for p in patterns): continue it = QTreeWidgetItem(data) if registry.hasUserKeySequences(name): font = self.font() font.setBold(True) it.setFont(2, font) items.append(it) self._view.addTopLevelItems(items) @pyqtSlot() def _rebuildItems(self): name = self._currentName() self._view.clear() self._buildItems() self._setCurrentByName(name) def registry(self) -> shortcutregistry.ShortcutRegistry: return self._registry def _currentName(self) -> Text: it = self._view.currentItem() if not it: return '' return it.text(0) def _setCurrentByName(self, name): items = self._view.findItems(name, Qt.MatchFlag.MatchExactly) if items: self._view.setCurrentItem(items[0]) else: self._view.setCurrentIndex(QModelIndex()) def _updateCurrentItem(self): registry = self._registry it = self._view.currentItem() assert it is not None name = it.text(0) keys = ' | '.join(b.toString() for b in registry.keySequences(name)) font = self.font() if registry.hasUserKeySequences(name): font.setBold(True) it.setText(2, keys) it.setFont(2, font) @pyqtSlot() def _updateKeyEdit(self) -> None: name = self._currentName() self._keyEdit.setEnabled(bool(name)) self._clearButton.setEnabled(bool(name)) self._resetButton.setEnabled(bool(name)) if not name: self._keyEdit.clear() return seqs = self._registry.keySequences(name) # TODO: support multiple key sequences if seqs: self._keyEdit.setKeySequence(seqs[0]) else: self._keyEdit.clear() @pyqtSlot() def _applyCurrent(self) -> None: b = self._keyEdit.keySequence() if b.isEmpty(): seqs = [] else: seqs = [b] self._registry.setUserKeySequences(self._currentName(), seqs) self._updateCurrentItem() self._updateKeyEdit() @pyqtSlot() def _clearCurrent(self) -> None: self._registry.setUserKeySequences(self._currentName(), []) self._updateCurrentItem() self._updateKeyEdit() @pyqtSlot() def _resetCurrentToDefault(self) -> None: self._registry.unsetUserKeySequences(self._currentName()) self._updateCurrentItem() self._updateKeyEdit() # TODO: integrate into SettingsDialog class ShortcutSettingsDialog(QDialog): def __init__(self, registry: shortcutregistry.ActionRegistry, parent: Optional[QWidget] = None) -> None: super(ShortcutSettingsDialog, self).__init__(parent) self._registry = registry self.setWindowTitle(_('Shortcut Settings')) vbox = QVBoxLayout(self) self._widget = widget = ShortcutSettingsWidget( registry.copyShortcuts(), self) vbox.addWidget(widget) buttons = QDialogButtonBox(self) buttons.setStandardButtons( QDialogButtonBox.StandardButton.Save | QDialogButtonBox.StandardButton.Cancel) buttons.accepted.connect(self.accept) buttons.rejected.connect(self.reject) vbox.addWidget(buttons) self.resize(600, 600) @pyqtSlot() def accept(self) -> None: self._registry.updateShortcuts(self._widget.registry()) self._registry.saveSettings() self._registry.applyChangesToActions() super(ShortcutSettingsDialog, self).accept() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/sign.py0000644000000000000000000001564414672254332017003 0ustar00rootroot# sign.py - Sign dialog for TortoiseHg # # Copyright 2013 Elson Wei # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations from .qtcore import ( Qt, pyqtSlot, ) from .qtgui import ( QCheckBox, QDialog, QDialogButtonBox, QFormLayout, QFrame, QHBoxLayout, QLabel, QLayout, QLineEdit, QSizePolicy, QVBoxLayout, QWidget, ) from ..util import hglib from ..util.i18n import _ from . import ( cmdcore, qtlib, ) class SignDialog(QDialog): def __init__(self, repoagent, rev='tip', parent=None, opts=None): super(SignDialog, self).__init__(parent) if opts is None: opts = {} self.setWindowFlags(self.windowFlags() & ~Qt.WindowType.WindowContextHelpButtonHint) self._repoagent = repoagent self._cmdsession = cmdcore.nullCmdSession() self.rev = rev # base layout box base = QVBoxLayout() base.setSpacing(0) base.setContentsMargins(*(0,)*4) base.setSizeConstraint(QLayout.SizeConstraint.SetMinAndMaxSize) self.setLayout(base) ## main layout grid formwidget = QWidget(self) formwidget.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed) form = QFormLayout(fieldGrowthPolicy=QFormLayout.FieldGrowthPolicy.AllNonFixedFieldsGrow) formwidget.setLayout(form) base.addWidget(formwidget) repo = repoagent.rawRepo() form.addRow(_('Revision:'), QLabel('%s (%s)' % (rev, repo[rev]))) ### key line edit self.keyLineEdit = QLineEdit() form.addRow(_('Key:'), self.keyLineEdit) ### options expander = qtlib.ExpanderLabel(_('Options'), False) expander.expanded.connect(self.show_options) optbox = QVBoxLayout() optbox.setSpacing(6) form.addRow(expander, optbox) hbox = QHBoxLayout() hbox.setSpacing(0) optbox.addLayout(hbox) self.localCheckBox = QCheckBox(_('Local sign')) self.localCheckBox.toggled.connect(self.updateStates) optbox.addWidget(self.localCheckBox) self.replaceCheckBox = QCheckBox(_('Sign even if the sigfile is ' 'modified (-f/--force)')) self.replaceCheckBox.toggled.connect(self.updateStates) optbox.addWidget(self.replaceCheckBox) self.nocommitCheckBox = QCheckBox(_('No commit')) self.nocommitCheckBox.toggled.connect(self.updateStates) optbox.addWidget(self.nocommitCheckBox) self.customCheckBox = QCheckBox(_('Use custom commit message:')) self.customCheckBox.toggled.connect(self.customMessageToggle) optbox.addWidget(self.customCheckBox) self.customTextLineEdit = QLineEdit() optbox.addWidget(self.customTextLineEdit) ## bottom buttons bbox = QDialogButtonBox() self.signBtn = bbox.addButton(_('&Sign'), QDialogButtonBox.ButtonRole.ActionRole) bbox.addButton(QDialogButtonBox.StandardButton.Close) bbox.rejected.connect(self.reject) form.addRow(bbox) self.signBtn.clicked.connect(self.onSign) ## horizontal separator self.sep = QFrame() self.sep.setFrameShadow(QFrame.Shadow.Sunken) self.sep.setFrameShape(QFrame.Shape.HLine) self.layout().addWidget(self.sep) ## status line self.status = qtlib.StatusLabel() self.status.setContentsMargins(4, 2, 4, 4) self.layout().addWidget(self.status) # prepare to show self.setWindowTitle(_('Sign - %s') % repoagent.displayName()) self.setWindowIcon(qtlib.geticon('hg-sign')) self.clear_status() key = opts.get('key', '') if not key: key = repo.ui.config(b"gpg", b"key", b'') self.keyLineEdit.setText(hglib.tounicode(key)) self.replaceCheckBox.setChecked(bool(opts.get('force'))) self.localCheckBox.setChecked(bool(opts.get('local'))) self.nocommitCheckBox.setChecked(bool(opts.get('no_commit'))) msg = opts.get('message', '') self.customTextLineEdit.setText(hglib.tounicode(msg)) if msg: self.customCheckBox.setChecked(True) self.customMessageToggle(True) else: self.customCheckBox.setChecked(False) self.customMessageToggle(False) self.keyLineEdit.setFocus() expanded = any([self.replaceCheckBox.isChecked(), self.localCheckBox.isChecked(), self.nocommitCheckBox.isChecked(), self.customCheckBox.isChecked()]) expander.set_expanded(expanded) self.show_options(expanded) self.updateStates() @property def repo(self): return self._repoagent.rawRepo() def show_options(self, visible): self.localCheckBox.setVisible(visible) self.replaceCheckBox.setVisible(visible) self.nocommitCheckBox.setVisible(visible) self.customCheckBox.setVisible(visible) self.customTextLineEdit.setVisible(visible) def commandFinished(self, ret): if ret == 0: self.set_status(_("Signature has been added")) else: self.set_status(self._cmdsession.errorString(), False) @pyqtSlot() def updateStates(self): nocommit = self.nocommitCheckBox.isChecked() custom = self.customCheckBox.isChecked() self.customCheckBox.setEnabled(not nocommit) self.customTextLineEdit.setEnabled(not nocommit and custom) def onSign(self): if not self._cmdsession.isFinished(): self.set_status(_('Repository command still running'), False) return opts = { 'key': self.keyLineEdit.text() or None, 'local': self.localCheckBox.isChecked(), 'force': self.replaceCheckBox.isChecked(), 'no_commit': self.nocommitCheckBox.isChecked(), } if self.customCheckBox.isChecked() and not opts['no_commit']: opts['message'] = self.customTextLineEdit.text() or None user = qtlib.getCurrentUsername(self, self.repo) if not user: return opts['user'] = user cmdline = hglib.buildcmdargs('sign', self.rev, **opts) sess = self._repoagent.runCommand(cmdline, self) self._cmdsession = sess sess.commandFinished.connect(self.commandFinished) def customMessageToggle(self, checked): self.customTextLineEdit.setEnabled(checked) if checked: self.customTextLineEdit.setFocus() def set_status(self, text, icon=None): self.status.setVisible(True) self.sep.setVisible(True) self.status.set_status(text, icon) def clear_status(self): self.status.setHidden(True) self.sep.setHidden(True) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1729164138.0 tortoisehg-6.9/tortoisehg/hgqt/status.py0000644000000000000000000013616314704171552017364 0ustar00rootroot# status.py - working copy browser # # Copyright 2010 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os from .qtcore import ( QAbstractTableModel, QItemSelectionModel, QMimeData, QModelIndex, QObject, QPoint, QSettings, QSize, QThread, QTimer, QUrl, Qt, pyqtSignal, pyqtSlot, ) from .qtgui import ( QAbstractItemView, QAction, QCheckBox, QColor, QDialog, QFrame, QHBoxLayout, QKeySequence, QLineEdit, QMenu, QPushButton, QShortcut, QSizePolicy, QSplitter, QToolBar, QToolButton, QTreeView, QVBoxLayout, QWidget, ) from hgext.largefiles import ( lfutil, ) from mercurial import ( context, error, hg, mergestate as mergestatemod, pycompat, scmutil, util, ) from ..util import hglib from ..util.i18n import _ from . import ( cmdui, filectxactions, filedata, fileview, qtlib, ) from typing import ( Dict, ) # This widget can be used as the basis of the commit tool or any other # working copy browser. # Technical Debt # We need a real icon set for file status types # Thread rowSelected, connect to an external progress bar # Chunk selection, tri-state checkboxes for commit # Maybe, Maybe Not # Investigate folding/nesting of files COL_PATH = 0 COL_STATUS = 1 COL_MERGE_STATE = 2 COL_PATH_DISPLAY = 3 COL_EXTENSION = 4 COL_SIZE = 5 _colors = {} class StatusWidget(QWidget): '''Working copy status widget SIGNALS: progress() - for progress bar showMessage(str) - for status bar titleTextChanged(str) - for window title ''' progress = pyqtSignal(str, object, str, str, object) titleTextChanged = pyqtSignal(str) linkActivated = pyqtSignal(str) showMessage = pyqtSignal(str) fileDisplayed = pyqtSignal(str, str) grepRequested = pyqtSignal(str, dict) runCustomCommandRequested = pyqtSignal(str, list) def __init__(self, repoagent, pats, opts, parent=None, checkable=True, defcheck='commit'): QWidget.__init__(self, parent) self.opts = dict(modified=True, added=True, removed=True, deleted=True, unknown=True, clean=False, ignored=False, subrepo=True) self.opts.update(opts) self._repoagent = repoagent self.pats = pats self.checkable = checkable self.defcheck = defcheck self.pctx = None self.savechecks = True self.refthread = None self.refreshWctxLater = QTimer(self, interval=10, singleShot=True) self.refreshWctxLater.timeout.connect(self.refreshWctx) self.partials = {} # determine the user configured status colors # (in the future, we could support full rich-text tags) labels = [(stat, val.uilabel) for stat, val in statusTypes.items()] labels.extend([('r', 'resolve.resolved'), ('u', 'resolve.unresolved')]) for stat, label in labels: effect = qtlib.geteffect(label) for e in effect.split(';'): if e.startswith('color:'): _colors[stat] = QColor(e[7:]) break split = QSplitter(Qt.Orientation.Horizontal) split.setChildrenCollapsible(False) layout = QVBoxLayout() layout.setContentsMargins(0, 0, 0, 0) layout.addWidget(split) self.setLayout(layout) vbox = QVBoxLayout() vbox.setContentsMargins(0, 0, 0, 0) frame = QFrame(split) sp = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding) sp.setHorizontalStretch(0) sp.setVerticalStretch(0) frame.setSizePolicy(sp) frame.setLayout(vbox) hbox = QHBoxLayout() hbox.setContentsMargins(0, 0, 0, 0) self.refreshBtn = tb = QToolButton() tb.setToolTip(_('Refresh file list')) tb.setIcon(qtlib.geticon('view-refresh')) tb.clicked.connect(self.refreshWctx) le = QLineEdit() le.setPlaceholderText(_('### filter text ###')) st = '' for s in statusTypes: val = statusTypes[s] if self.opts[val.name]: st = st + s self.statusfilter = StatusFilterActionGroup( statustext=st, types=StatusType.preferredOrder) if self.checkable: self.checkAllTT = _('Check all files') self.checkNoneTT = _('Uncheck all files') self.checkAllNoneBtn = QCheckBox() self.checkAllNoneBtn.setToolTip(self.checkAllTT) self.checkAllNoneBtn.clicked.connect(self.checkAllNone) self.filelistToolbar = QToolBar(_('Status File List Toolbar')) self.filelistToolbar.setIconSize(qtlib.smallIconSize()) self.filelistToolbar.setStyleSheet(qtlib.tbstylesheet) hbox.addWidget(self.filelistToolbar) if self.checkable: self.filelistToolbar.addWidget(qtlib.Spacer(3, 2)) self.filelistToolbar.addWidget(self.checkAllNoneBtn) self.filelistToolbar.addSeparator() self.filelistToolbar.addWidget(le) self.filelistToolbar.addSeparator() self.filelistToolbar.addWidget( createStatusFilterMenuButton(self.statusfilter, self)) self.filelistToolbar.addSeparator() self.filelistToolbar.addWidget(self.refreshBtn) self._fileactions = filectxactions.WctxActions(self._repoagent, self) self._fileactions.setupCustomToolsMenu('workbench.commit.custom-menu') self._fileactions.linkActivated.connect(self.linkActivated) self._fileactions.refreshNeeded.connect(self.refreshWctx) self._fileactions.runCustomCommandRequested.connect( self.runCustomCommandRequested) self.addActions(self._fileactions.actions()) tv = WctxFileTree(self) vbox.addLayout(hbox) vbox.addWidget(tv) split.addWidget(frame) self.clearPatternBtn = QPushButton(_('Remove filter, show root')) vbox.addWidget(self.clearPatternBtn) self.clearPatternBtn.clicked.connect(self.clearPattern) self.clearPatternBtn.setAutoDefault(False) self.clearPatternBtn.setVisible(bool(self.pats)) tv.setAllColumnsShowFocus(True) tv.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) tv.setDragDropMode(QTreeView.DragDropMode.DragOnly) tv.setItemsExpandable(False) tv.setRootIsDecorated(False) tv.setSelectionMode(QTreeView.SelectionMode.ExtendedSelection) tv.setTextElideMode(Qt.TextElideMode.ElideLeft) tv.sortByColumn(COL_STATUS, Qt.SortOrder.AscendingOrder) tv.doubleClicked.connect(self.onRowDoubleClicked) tv.customContextMenuRequested.connect(self.onMenuRequest) le.textEdited.connect(self.setFilter) self.statusfilter.statusChanged.connect(self.setStatusFilter) self.tv = tv self.le = le self._tvpaletteswitcher = qtlib.PaletteSwitcher(tv) self._togglefileshortcut = a = QShortcut(Qt.Key.Key_Space, tv) a.setContext(Qt.ShortcutContext.WidgetShortcut) a.setEnabled(False) a.activated.connect(self._toggleSelectedFiles) # Diff panel side of splitter vbox = QVBoxLayout() vbox.setSpacing(0) vbox.setContentsMargins(0, 0, 0, 0) docf = QFrame(split) sp = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding) sp.setHorizontalStretch(1) sp.setVerticalStretch(0) docf.setSizePolicy(sp) docf.setLayout(vbox) self.docf = docf self.fileview = fileview.HgFileView(self._repoagent, self) self.fileview.setShelveButtonVisible(True) self.fileview.showMessage.connect(self.showMessage) self.fileview.linkActivated.connect(self.linkActivated) self.fileview.fileDisplayed.connect(self.fileDisplayed) self.fileview.shelveToolExited.connect(self.refreshWctx) self.fileview.chunkSelectionChanged.connect(self.chunkSelectionChanged) self.fileview.grepRequested.connect(self.grepRequested) self.fileview.setMinimumSize(QSize(16, 16)) vbox.addWidget(self.fileview, 1) self.split = split self.diffvbox = vbox @property def repo(self): return self._repoagent.rawRepo() def __get_defcheck(self): if self._defcheck is None: return 'MAR!S' return self._defcheck def __set_defcheck(self, newdefcheck): if newdefcheck.lower() == 'amend': newdefcheck = 'MARS' elif newdefcheck.lower() in ('commit', 'qnew', 'qrefresh'): newdefcheck = 'MAR!S' self._defcheck = newdefcheck defcheck = property(__get_defcheck, __set_defcheck) @pyqtSlot() def checkAllNone(self): state = self.checkAllNoneBtn.checkState() if state == Qt.CheckState.Checked: self.checkAll() self.checkAllNoneBtn.setToolTip(self.checkNoneTT) else: if state == Qt.CheckState.Unchecked: self.checkNone() self.checkAllNoneBtn.setToolTip(self.checkAllTT) if state != Qt.CheckState.PartiallyChecked: self.checkAllNoneBtn.setTristate(False) def getTitle(self): name = self._repoagent.displayName() if self.pats: return _('%s - status (selection filtered)') % name else: return _('%s - status') % name def loadSettings(self, qs, prefix): self.fileview.loadSettings(qs, prefix+'/fileview') self.split.restoreState(qtlib.readByteArray(qs, prefix + '/state')) def saveSettings(self, qs, prefix): self.fileview.saveSettings(qs, prefix+'/fileview') qs.setValue(prefix+'/state', self.split.saveState()) def _updatePartials(self, fd): # remove files from the partials dictionary if they are not partial # selections, in order to simplify refresh. model = self.tv.model() assert model is not None dels = [] for file, oldchanges in self.partials.items(): assert file in model.checked, file if oldchanges.excludecount == 0: model.checked[file] = True dels.append(file) elif oldchanges.excludecount == len(oldchanges.hunks): model.checked[file] = False dels.append(file) for file in dels: del self.partials[file] wfile = hglib.fromunicode(fd.filePath()) changes = fd.changes if changes is None: if wfile in self.partials: del self.partials[wfile] self.chunkSelectionChanged() return if wfile in self.partials: # merge selection state from old hunk list to new hunk list oldhunks = self.partials[wfile].hunks oldstates = dict([(c.fromline, c.excluded) for c in oldhunks]) for chunk in changes.hunks: if chunk.fromline in oldstates: fd.setChunkExcluded(chunk, oldstates[chunk.fromline]) else: # the file was not in the partials dictionary, so it is either # checked (all changes enabled) or unchecked (all changes # excluded). if wfile not in self.getChecked(): for chunk in changes.hunks: fd.setChunkExcluded(chunk, True) self.chunkSelectionChanged() self.partials[wfile] = changes @pyqtSlot() def chunkSelectionChanged(self): 'checkbox state has changed via chunk selection' # inform filelist view that the file selection state may have changed model = self.tv.model() if model: model.layoutChanged.emit() model.checkCountChanged.emit() @pyqtSlot(QPoint) def onMenuRequest(self, point): menu = QMenu(self) selmodel = self.tv.selectionModel() if selmodel and selmodel.hasSelection(): self._setupFileMenu(menu) menu.addSeparator() optmenu = menu.addMenu(_('List Optio&ns')) else: optmenu = menu optmenu.addActions(self.statusfilter.actions()) menu.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose) menu.popup(self.tv.viewport().mapToGlobal(point)) def _setupFileMenu(self, menu): self._addFileActionsToMenu(menu, [ 'visualDiffFile', 'visualDiffLocalFile', 'copyPatch', 'editLocalFile', 'openLocalFile', 'exploreLocalFile', 'editRejects', None, 'openSubrepo', 'explore', 'terminal', None, 'copyPath', 'editMissingFile', None, 'revertWorkingFile', None, 'navigateFileLog', None, 'forgetFile', 'addFile', 'addLargefile', 'guessRename', 'editHgignore', 'removeFile', 'purgeFile', None, 'markFileAsUnresolved', 'markFileAsResolved']) if self.checkable: menu.addSeparator() # no &-shortcut because check/uncheck can be done by space key menu.addAction(_('Check'), self._checkSelectedFiles) menu.addAction(_('Uncheck'), self._uncheckSelectedFiles) self._addFileActionsToMenu(menu, [ 'editOtherFile', None, 'copyFile', 'renameFile', None, 'customToolsMenu', None, 'renameFileMenu', None, 'remergeFile', None, 'remergeFileMenu']) def _addFileActionsToMenu(self, menu, actnames): for name in actnames: if not name: menu.addSeparator() continue action = self._fileactions.action(name) if action.isEnabled(): menu.addAction(action) def setPatchContext(self, pctx): if pctx != self.pctx: # clear out the current checked state on next refreshWctx() self.savechecks = False self.pctx = pctx @pyqtSlot() def refreshWctx(self): if self.refthread: self.refreshWctxLater.start() return self.refreshWctxLater.stop() self.fileview.clearDisplay() # store selected paths or current path model = self.tv.model() if model and model.rowCount(QModelIndex()): smodel = self.tv.selectionModel() curidx = smodel.currentIndex() if curidx.isValid(): curpath = model.getRow(curidx)[COL_PATH] else: curpath = None spaths = [model.getRow(i)[COL_PATH] for i in smodel.selectedRows()] self.reselection = spaths, curpath else: self.reselection = None if self.checkable: self.checkAllNoneBtn.setEnabled(False) self.refreshBtn.setEnabled(False) self.progress.emit(*cmdui.startProgress(_('Refresh'), _('status'))) self.refthread = StatusThread(self.repo, self.pctx, self.pats, self.opts) self.refthread.finished.connect(self.reloadComplete) self.refthread.showMessage.connect(self.reloadFailed) self.refthread.start() @pyqtSlot() def reloadComplete(self): self.refthread.wait() if self.checkable: self.checkAllNoneBtn.setEnabled(True) self.refreshBtn.setEnabled(True) self.progress.emit(*cmdui.stopProgress(_('Refresh'))) if self.refthread.wctx is not None: assert self.refthread.wstatus is not None self.updateModel(self.refthread.wctx, self.refthread.wstatus, self.refthread.patchecked, self.refthread.amending) self.refthread = None if len(self.repo[None].parents()) > 1: # nuke partial selections if wctx has a merge in-progress self.partials = {} match = self.le.text() if match: self.setFilter(match) # better to handle error in reloadComplete in place of separate signal? @pyqtSlot(str) def reloadFailed(self, msg): qtlib.ErrorMsgBox(_('Failed to refresh'), msg, parent=self) def isRefreshingWctx(self): return bool(self.refthread) def canExit(self): return not self.isRefreshingWctx() def updateModel( self, wctx, wstatus: scmutil.status, patchecked: Dict[bytes, bool], amending, ) -> None: self.tv.setSortingEnabled(False) oldtm = self.tv.model() if oldtm: checked = oldtm.getChecked() else: checked = patchecked if self.pats and not checked: qtlib.WarningMsgBox(_('No appropriate files'), _('No files found for this operation'), parent=self) ms = hglib.readmergestate(self.repo) tm = WctxModel(self._repoagent, wctx, wstatus, ms, self.pctx, self.savechecks, self.opts, checked, self, checkable=self.checkable, defcheck=self.defcheck, amending=amending) if self.checkable: tm.checkToggled.connect(self.checkToggled) tm.checkCountChanged.connect(self.updateCheckCount) self.savechecks = True self.tv.setModel(tm) if oldtm: oldtm.deleteLater() self.tv.setSortingEnabled(True) self.tv.setColumnHidden(COL_PATH, bool(wctx.p2()) or not self.checkable) self.tv.setColumnHidden(COL_MERGE_STATE, not tm.anyMerge()) if self.checkable: self.updateCheckCount() # remove non-existent file from partials table because model changed for file in list(self.partials): if file not in tm.checked: del self.partials[file] for col in (COL_PATH, COL_STATUS, COL_MERGE_STATE): w = self.tv.sizeHintForColumn(col) self.tv.setColumnWidth(col, w) for col in (COL_PATH_DISPLAY, COL_EXTENSION, COL_SIZE): self.tv.resizeColumnToContents(col) # reset selection, or select first row curidx = tm.index(0, 0) selmodel = self.tv.selectionModel() flags = QItemSelectionModel.SelectionFlag.Select | QItemSelectionModel.SelectionFlag.Rows if self.reselection: selected, current = self.reselection for i, row in enumerate(tm.getAllRows()): if row[COL_PATH] in selected: selmodel.select(tm.index(i, 0), flags) if row[COL_PATH] == current: curidx = tm.index(i, 0) else: selmodel.select(curidx, flags) selmodel.currentChanged.connect(self.onCurrentChange) selmodel.selectionChanged.connect(self.onSelectionChange) if curidx and curidx.isValid(): selmodel.setCurrentIndex(curidx, QItemSelectionModel.SelectionFlag.Current) self.onSelectionChange() self._togglefileshortcut.setEnabled(True) # Disabled decorator because of bug in older PyQt releases #@pyqtSlot(QModelIndex) def onRowDoubleClicked(self, index): 'tree view emitted a doubleClicked signal, index guarunteed valid' model = self.tv.model() assert model is not None fd = model.fileData(index) if fd.subrepoType(): self._fileactions.openSubrepo() elif fd.mergeStatus() == 'U': self._fileactions.remergeFile() elif fd.fileStatus() in set('MAR!'): self._fileactions.visualDiffFile() elif fd.fileStatus() in set('C?'): self._fileactions.editLocalFile() @pyqtSlot(str) def setStatusFilter(self, status: str) -> None: for s in statusTypes: val = statusTypes[s] self.opts[val.name] = s in status self.refreshWctx() @pyqtSlot(str) def setFilter(self, match): model = self.tv.model() if model: model.setFilter(match) self._tvpaletteswitcher.enablefilterpalette(bool(match)) @pyqtSlot() def clearPattern(self): self.pats = [] self.refreshWctx() self.clearPatternBtn.setVisible(False) self.titleTextChanged.emit(self.getTitle()) @pyqtSlot() def updateCheckCount(self): 'user has toggled one or more checkboxes, update counts and checkall' model = self.tv.model() if model: model.checkCount = len(self.getChecked()) if model.checkCount == 0: state = Qt.CheckState.Unchecked elif model.checkCount == len(model.rows): state = Qt.CheckState.Checked else: state = Qt.CheckState.PartiallyChecked self.checkAllNoneBtn.setTristate(state == Qt.CheckState.PartiallyChecked) self.checkAllNoneBtn.setCheckState(state) @pyqtSlot(str, bool) def checkToggled(self, wfile, checked): 'user has toggled a checkbox, update partial chunk selection status' wfile = hglib.fromunicode(wfile) if wfile in self.partials: del self.partials[wfile] if wfile == hglib.fromunicode(self.fileview.filePath()): self.onCurrentChange(self.tv.currentIndex()) def checkAll(self): model = self.tv.model() if model: model.checkAll(True) def checkNone(self): model = self.tv.model() if model: model.checkAll(False) def getCheckedAmends(self): files = [] model = self.tv.model() if model and model.amending: for f, v in model.getChecked().items(): if f in model.amending: files.append(f) return files def getChecked(self, types=None): model = self.tv.model() if model: checked = model.getChecked() if types is None: files = [] for f, v in checked.items(): if f in self.partials: changes = self.partials[f] if changes.excludecount < len(changes.hunks): files.append(f) elif v: files.append(f) return files else: files = [] for row in model.getAllRows(): path, status, mst, upath, ext, sz = row if status in types: if path in self.partials: changes = self.partials[path] if changes.excludecount < len(changes.hunks): files.append(path) elif checked[path]: files.append(path) return files else: return [] @pyqtSlot() def onSelectionChange(self): model = self.tv.model() selmodel = self.tv.selectionModel() assert model is not None assert selmodel is not None selfds = pycompat.maplist(model.fileData, selmodel.selectedRows()) self._fileactions.setFileDataList(selfds) # Disabled decorator because of bug in older PyQt releases #@pyqtSlot(QModelIndex) def onCurrentChange(self, index): 'Connected to treeview "currentChanged" signal' changeselect = self.fileview.isChangeSelectionEnabled() model = self.tv.model() assert model is not None fd = model.fileData(index) fd.load(changeselect) if changeselect and not fd.isNull() and not fd.subrepoType(): self._updatePartials(fd) self.fileview.display(fd) def _setCheckStateOfSelectedFiles(self, value): model = self.tv.model() assert model is not None selmodel = self.tv.selectionModel() for index in selmodel.selectedRows(COL_PATH): model.setData(index, value, Qt.ItemDataRole.CheckStateRole) @pyqtSlot() def _checkSelectedFiles(self): self._setCheckStateOfSelectedFiles(Qt.CheckState.Checked) @pyqtSlot() def _uncheckSelectedFiles(self): self._setCheckStateOfSelectedFiles(Qt.CheckState.Unchecked) @pyqtSlot() def _toggleSelectedFiles(self): model = self.tv.model() selmodel = self.tv.selectionModel() assert model is not None assert selmodel is not None for index in selmodel.selectedRows(COL_PATH): if model.data(index, Qt.ItemDataRole.CheckStateRole) == Qt.CheckState.Checked: newvalue = Qt.CheckState.Unchecked else: newvalue = Qt.CheckState.Checked model.setData(index, newvalue, Qt.ItemDataRole.CheckStateRole) class StatusThread(QThread): '''Background thread for generating a workingctx''' showMessage = pyqtSignal(str) def __init__(self, repo, pctx, pats, opts, parent=None): super(StatusThread, self).__init__() self.repo = hg.repository(repo.ui, repo.root) self.pctx = pctx self.pats = pats self.opts = opts self.wctx = None self.wstatus = None self.patchecked: Dict[bytes, bool] = {} self.amending = set() def run(self): extract = lambda x, y: dict(zip(x, pycompat.maplist(y.get, x))) stopts = extract(('unknown', 'ignored', 'clean'), self.opts) patchecked: Dict[bytes, bool] = {} try: if self.pats: if self.opts.get('checkall'): # quickop sets this flag to pre-check even !?IC files precheckfn = lambda x: True else: # status and commit only pre-check MAR files precheckfn = lambda x: x < 4 m = scmutil.match(self.repo[None], self.pats) with lfutil.lfstatus(self.repo): status = self.repo.status(match=m, **stopts) # Record all matched files as initially checked for i, stat in enumerate(StatusType.preferredOrder): if stat == 'S': continue val = statusTypes[stat] if self.opts[val.name]: d = dict([(fn, precheckfn(i)) for fn in getattr(status, val.name)]) patchecked.update(d) wctx = context.workingctx(self.repo, changes=status) self.patchecked = patchecked elif self.pctx: with lfutil.lfstatus(self.repo): status = self.repo.status(node1=self.pctx.p1().node(), **stopts) wstatus = self.repo.status(**stopts) # Even though `clean` isn't requested in the status call, # the dirty files in wdir that are clean against p1('.') are in # the clean list. Those need to be forced to show, so they # aren't excluded from the amend command. self.amending = set(status.clean) # For a file that is newly added and then renamed, the status # of wdir against p1 will show nothing (not present to not # present). Amending in this state breaks the rename, as only # the added file is visible. Forcing it into the R list will # let is show as R. Adding it to the amending list would make # it show C, which is consistent with the revert to p1(.) case, # but very confusing for a rename. for r in wstatus.removed: if r not in self.pctx.p1(): status.removed.append(r) wctx = context.workingctx(self.repo, changes=status) else: with lfutil.lfstatus(self.repo): status = self.repo.status(**stopts) wctx = context.workingctx(self.repo, changes=status) self.wctx = wctx self.wstatus = status wctx.dirtySubrepos = [] for s in wctx.substate: if wctx.sub(s).dirty(): wctx.dirtySubrepos.append(s) except EnvironmentError as e: self.showMessage.emit(hglib.exception_str(e)) except (error.LookupError, error.RepoError, error.ConfigError) as e: self.showMessage.emit(hglib.exception_str(e)) except error.Abort as e: self.showMessage.emit(hglib.exception_str(e, show_hint=True)) class WctxFileTree(QTreeView): def scrollTo(self, index, hint=QAbstractItemView.ScrollHint.EnsureVisible): # don't update horizontal position by selection change orighoriz = self.horizontalScrollBar().value() super(WctxFileTree, self).scrollTo(index, hint) self.horizontalScrollBar().setValue(orighoriz) class WctxModel(QAbstractTableModel): checkCountChanged = pyqtSignal() checkToggled = pyqtSignal(str, bool) def __init__(self, repoagent, wctx, wstatus: scmutil.status, ms: mergestatemod.mergestate, pctx, savechecks: bool, opts, checked: Dict[bytes, bool], parent, checkable: bool=True, defcheck: str='MAR!S', amending=None, ) -> None: QAbstractTableModel.__init__(self, parent) self._repoagent = repoagent self._pctx = pctx self.partials = parent.partials self.checkCount = 0 rows = [] nchecked: Dict[bytes, bool] = {} excludestr = opts.get('ciexclude', '') assert isinstance(excludestr, str) excludes = [f.strip() for f in hglib.fromunicode(excludestr).split(b',')] if amending is None: amending = set() def mkrow(fname: bytes, st: str): ext, sizek = '', '' try: mst = fname in ms and pycompat.sysstr(ms[fname].upper()) or "" name, ext = os.path.splitext(fname) sizebytes = wctx[fname].size() sizek = (sizebytes + 1023) // 1024 except EnvironmentError: pass return [fname, st, mst, hglib.tounicode(fname), hglib.tounicode(ext[1:]), sizek] if not savechecks: checked: Dict[bytes, bool] = {} if pctx: # Currently, having a patch context means it's a qrefresh, so only # auto-check files in pctx.files() pctxfiles = pctx.files() def pctxmatch(f): if f in pctxfiles: return True if f in wctx: # auto select copy/rename sources too return wctx[f].copysource() in pctxfiles return False else: pctxmatch = lambda f: True if opts['modified']: for m in wstatus.modified: nchecked[m] = checked.get(m, 'M' in defcheck and m not in excludes and pctxmatch(m)) rows.append(mkrow(m, 'M')) if opts['added']: for a in wstatus.added: nchecked[a] = checked.get(a, 'A' in defcheck and a not in excludes and pctxmatch(a)) rows.append(mkrow(a, 'A')) if opts['removed']: for r in wstatus.removed: nchecked[r] = checked.get(r, 'R' in defcheck and r not in excludes and pctxmatch(r)) rows.append(mkrow(r, 'R')) if opts['deleted']: for d in wstatus.deleted: nchecked[d] = checked.get(d, 'D' in defcheck and d not in excludes and pctxmatch(d)) rows.append(mkrow(d, '!')) if opts['unknown']: for u in wstatus.unknown or []: nchecked[u] = checked.get(u, '?' in defcheck) rows.append(mkrow(u, '?')) if opts['ignored']: for i in wstatus.ignored or []: nchecked[i] = checked.get(i, 'I' in defcheck) rows.append(mkrow(i, 'I')) if opts['clean']: for c in wstatus.clean or []: nchecked[c] = checked.get(c, 'C' in defcheck) rows.append(mkrow(c, 'C')) if opts['subrepo']: for s in wctx.dirtySubrepos: nchecked[s] = checked.get(s, 'S' in defcheck and s not in excludes) rows.append(mkrow(s, 'S')) # include clean unresolved files for f in ms: if ms[f] == b'u' and f not in nchecked: nchecked[f] = checked.get(f, True) rows.append(mkrow(f, 'C')) # In the amend case, files reverted to p1('.') look clean because the # status is calculated against that node for amends. But they are # really modified. So force those clean files to show, and to be in # the checked state. for f in amending: if f not in nchecked: nchecked[f] = checked.get(f, True) rows.append(mkrow(f, 'C')) self.headers = ('*', _('Stat'), _('M'), _('Filename'), _('Type'), _('Size (KB)')) self.checked = nchecked self.unfiltered = rows self.rows = rows self.checkable = checkable self.amending = amending def rowCount(self, parent): if parent.isValid(): return 0 # no child return len(self.rows) def checkAll(self, state): for data in self.rows: self.checked[data[0]] = state self.checkToggled.emit(data[3], state) self.layoutChanged.emit() self.checkCountChanged.emit() def columnCount(self, parent): if parent.isValid(): return 0 # no child return len(self.headers) def data(self, index, role): if not index.isValid(): return None if index.column() == COL_PATH: if role == Qt.ItemDataRole.CheckStateRole and self.checkable: path = self.rows[index.row()][0] if path in self.partials: changes = self.partials[path] if changes.excludecount == 0: return Qt.CheckState.Checked elif changes.excludecount == len(changes.hunks): return Qt.CheckState.Unchecked else: return Qt.CheckState.PartiallyChecked if self.checked[path]: return Qt.CheckState.Checked else: return Qt.CheckState.Unchecked elif role == Qt.ItemDataRole.DisplayRole: return "" elif role == Qt.ItemDataRole.ToolTipRole: return _('Checked count: %d') % self.checkCount elif role == Qt.ItemDataRole.DisplayRole: return self.rows[index.row()][index.column()] elif role == Qt.ItemDataRole.ForegroundRole: path, status, mst, upath, ext, sz = self.rows[index.row()] if mst: return _colors.get(mst.lower(), QColor('black')) else: return _colors.get(status, QColor('black')) elif role == Qt.ItemDataRole.ToolTipRole: path, status, mst, upath, ext, sz = self.rows[index.row()] return statusMessage(status, mst, upath) ''' elif role == Qt.ItemDataRole.DecorationRole and index.column() == COL_STATUS: if status in statusTypes: ico = QIcon() ico.addPixmap(QPixmap('icons/' + statusTypes[status].icon)) return ico ''' return None def setData(self, index, value, role=Qt.ItemDataRole.EditRole): if not index.isValid(): return False if (index.column() == COL_PATH and role == Qt.ItemDataRole.CheckStateRole and self.checkable): value = qtlib.toCheckStateEnum(value) if self.data(index, role) == value: return True if value not in (Qt.CheckState.Checked, Qt.CheckState.Unchecked): # Qt.CheckState.PartiallyChecked cannot be set explicitly return False path = self.rows[index.row()][COL_PATH] upath = self.rows[index.row()][COL_PATH_DISPLAY] self.checked[path] = checked = (value == Qt.CheckState.Checked) self.checkToggled.emit(upath, checked) self.checkCountChanged.emit() self.dataChanged.emit(index, index) return True return False def headerData(self, col, orientation, role): if role != Qt.ItemDataRole.DisplayRole or orientation != Qt.Orientation.Horizontal: return None else: return self.headers[col] def flags(self, index): flags = Qt.ItemFlag.ItemIsSelectable | Qt.ItemFlag.ItemIsEnabled | Qt.ItemFlag.ItemIsDragEnabled if index.column() == COL_PATH and self.checkable: flags |= Qt.ItemFlag.ItemIsUserCheckable return flags def mimeTypes(self): return ['text/uri-list'] def mimeData(self, indexes): repo = self._repoagent.rawRepo() urls = [] for index in indexes: if index.column() != 0: continue path = self.rows[index.row()][COL_PATH] urls.append(QUrl.fromLocalFile(hglib.tounicode(repo.wjoin(path)))) data = QMimeData() data.setUrls(urls) return data # Custom methods def anyMerge(self): for r in self.rows: if r[COL_MERGE_STATE]: return True return False @util.propertycache def workingContext(self): repo = self._repoagent.rawRepo() return repo[None] def fileData(self, index): """Returns the displayable file data at the given index""" repo = self._repoagent.rawRepo() if not index.isValid(): return filedata.createNullData(repo) path, status, mst, upath, ext, sz = self.rows[index.row()] wfile = util.pconvert(path) ctx = self.workingContext pctx = self._pctx and self._pctx.p1() or ctx.p1() if status == 'S': return filedata.createSubrepoData(ctx, pctx, wfile) else: return filedata.createFileData(ctx, pctx, wfile, status, None, mst) def getRow(self, index): assert index.isValid() return self.rows[index.row()] def getAllRows(self): for row in self.rows: yield row def sort(self, col, order): self.layoutAboutToBeChanged.emit() self.beginResetModel() def getStatusRank(value): """Helper function used to sort items according to their hg status Statuses are ranked in the following order: 'S','M','A','R','!','?','C','I','' """ sortList = ['S','M','A','R','!','?','C','I',''] try: rank = sortList.index(value) except (IndexError, ValueError): rank = len(sortList) # Set the lowest rank by default return rank def getMergeStatusRank(value): """Helper function used to sort according to item merge status Merge statuses are ranked in the following order: 'S','U','R','' """ sortList = ['S','U','R',''] try: rank = sortList.index(value) except (IndexError, ValueError): rank = len(sortList) # Set the lowest rank by default return rank # We want to sort the list by one of the columns (checked state, # mercurial status, file path, file extension, etc) # However, for files which have the same status or extension, etc, # we want them to be sorted alphabetically (without taking into account # the case) # The sort function is guaranteed to be stable. # Thus we can perform the sort in two passes: # 1.- Perform a secondary sort by path # 2.- Perform a primary sort by the actual column that we are sorting on # Secondary sort: self.rows.sort(key=lambda x: x[COL_PATH].lower()) if col == COL_PATH_DISPLAY: # Already sorted! pass else: if order == Qt.SortOrder.DescendingOrder: # We want the secondary sort to be by _ascending_ path, # even when the primary sort is in descending order self.rows.reverse() # Now we can perform the primary sort if col == COL_PATH: c = self.checked self.rows.sort(key=lambda x: c[x[col]]) elif col == COL_STATUS: self.rows.sort(key=lambda x: getStatusRank(x[col])) elif col == COL_MERGE_STATE: self.rows.sort(key=lambda x: getMergeStatusRank(x[col])) elif col == COL_SIZE: self.rows.sort(key=lambda x: -1 if x[col] == '' else x[col]) else: self.rows.sort(key=lambda x: x[col]) if order == Qt.SortOrder.DescendingOrder: self.rows.reverse() self.layoutChanged.emit() self.endResetModel() def setFilter(self, match: str): 'simple match in filename filter' self.layoutAboutToBeChanged.emit() self.beginResetModel() self.rows = [r for r in self.unfiltered if match in r[COL_PATH_DISPLAY]] self.layoutChanged.emit() self.endResetModel() def getChecked(self) -> Dict[bytes, bool]: assert len(self.checked) == len(self.unfiltered) return self.checked.copy() def statusMessage(status: str, mst: str, upath: str): tip = '' if status in statusTypes: upath = "%s " % upath tip = statusTypes[status].desc % upath if mst == 'R': tip += _(', resolved merge') elif mst == 'U': tip += _(', unresolved merge') return tip class StatusType(object): preferredOrder = 'MAR!?ICS' def __init__( self, name: str, icon: str, desc: str, uilabel: str, trname: str ) -> None: self.name = name self.icon = icon self.desc = desc self.uilabel = uilabel self.trname = trname statusTypes = { 'M' : StatusType('modified', 'hg-modified', _('%s is modified'), 'status.modified', _('modified')), 'A' : StatusType('added', 'hg-add', _('%s is added'), 'status.added', _('added')), 'R' : StatusType('removed', 'hg-removed', _('%s is removed'), 'status.removed', _('removed')), '?' : StatusType('unknown', '', _('%s is not tracked (unknown)'), 'status.unknown', _('unknown')), '!' : StatusType('deleted', '', _('%s is deleted by non-hg command, but still tracked'), 'status.deleted', _('missing')), 'I' : StatusType('ignored', '', _('%s is ignored'), 'status.ignored', _('ignored')), 'C' : StatusType('clean', '', _('%s is not modified (clean)'), 'status.clean', _('clean')), 'S' : StatusType('subrepo', 'thg-subrepo', _('%s is a dirty subrepo'), 'status.subrepo', _('subrepo')), } class StatusFilterActionGroup(QObject): """Actions to switch status filter""" statusChanged = pyqtSignal(str) def __init__(self, statustext, types=None, parent=None): super(StatusFilterActionGroup, self).__init__(parent) self._TYPES = 'MARSC' if types is not None: self._TYPES = types self._actions = {} for c in self._TYPES: st = statusTypes[c] a = QAction('&%s %s' % (c, st.trname), self) a.setCheckable(True) a.setChecked(c in statustext) a.toggled.connect(self._update) self._actions[c] = a @pyqtSlot() def _update(self): self.statusChanged.emit(self.status()) def actions(self): return [self._actions[c] for c in self._TYPES] def isChecked(self, c): return self._actions[c].isChecked() def setChecked(self, c, checked): self._actions[c].setChecked(checked) def status(self): """Return the text for status filter""" return ''.join(c for c in self._TYPES if self._actions[c].isChecked()) @pyqtSlot(str) def setStatus(self, text): """Set the status text""" assert all(c in self._TYPES for c in text), repr(text) for c in self._TYPES: self._actions[c].setChecked(c in text) def createStatusFilterMenuButton(actiongroup, parent=None): """Create button with drop-down menu for status filter""" button = QToolButton(parent) button.setIcon(qtlib.geticon('hg-status')) button.setPopupMode(QToolButton.ToolButtonPopupMode.InstantPopup) menu = QMenu(button) menu.addActions(actiongroup.actions()) button.setMenu(menu) return button class StatusDialog(QDialog): 'Standalone status browser' def __init__(self, repoagent, pats, opts, parent=None): QDialog.__init__(self, parent) self.setWindowIcon(qtlib.geticon('hg-status')) self._repoagent = repoagent layout = QVBoxLayout() layout.setContentsMargins(0, 0, 0, 0) self.setLayout(layout) toplayout = QVBoxLayout() toplayout.setContentsMargins(10, 10, 10, 0) self.stwidget = StatusWidget(repoagent, pats, opts, self, checkable=False) toplayout.addWidget(self.stwidget, 1) layout.addLayout(toplayout) self.statusbar = cmdui.ThgStatusBar(self) layout.addWidget(self.statusbar) self.stwidget.showMessage.connect(self.statusbar.showMessage) self.stwidget.progress.connect(self.statusbar.progress) self.stwidget.titleTextChanged.connect(self.setWindowTitle) self.stwidget.linkActivated.connect(self.linkActivated) self._subdialogs = qtlib.DialogKeeper(StatusDialog._createSubDialog, parent=self) self.setWindowTitle(self.stwidget.getTitle()) self.setWindowFlags(Qt.WindowType.Window) self.loadSettings() qtlib.newshortcutsforstdkey(QKeySequence.StandardKey.Refresh, self, self.stwidget.refreshWctx) QTimer.singleShot(0, self.stwidget.refreshWctx) def linkActivated(self, link: str): if link.startswith('repo:'): self._subdialogs.open(link[len('repo:'):]) def _createSubDialog(self, uroot): repoagent = self._repoagent.subRepoAgent(uroot) return StatusDialog(repoagent, [], {}, parent=self) def loadSettings(self): s = QSettings() self.stwidget.loadSettings(s, 'status') self.restoreGeometry(qtlib.readByteArray(s, 'status/geom')) def saveSettings(self): s = QSettings() self.stwidget.saveSettings(s, 'status') s.setValue('status/geom', self.saveGeometry()) def accept(self): if not self.stwidget.canExit(): return self.saveSettings() QDialog.accept(self) def reject(self): if not self.stwidget.canExit(): return self.saveSettings() QDialog.reject(self) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730809007.0 tortoisehg-6.9/tortoisehg/hgqt/sync.py0000644000000000000000000020645014712406257017014 0ustar00rootroot# sync.py - TortoiseHg's sync widget # # Copyright 2010 Adrian Buehlmann # Copyright 2010 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os import re import tempfile from .qtcore import ( QAbstractTableModel, QDir, QMimeData, QModelIndex, QPoint, QSettings, QTimer, QUrl, Qt, pyqtSignal, pyqtSlot, ) from .qtgui import ( QAction, QApplication, QCheckBox, QComboBox, QDesktopServices, QDialog, QDialogButtonBox, QFileDialog, QFormLayout, QFrame, QGroupBox, QHBoxLayout, QKeySequence, QLabel, QLineEdit, QMenu, QPushButton, QRadioButton, QSizePolicy, QStackedLayout, QStyle, QToolBar, QTreeView, QVBoxLayout, QWidget, ) from mercurial import ( encoding, hg, httpconnection, pycompat, util, ) from mercurial.utils import ( urlutil, ) from ..util import ( hglib, paths, wconfig, ) from ..util.i18n import _ from . import ( bookmark, cmdcore, cmdui, hgemail, hgrcutil, qtlib, rebase, resolve, thgrepo, ) if hglib.TYPE_CHECKING: from typing import ( Dict, Iterable, List, Set, Tuple, Union, Optional, ) from mercurial import ( localrepo, ) def parseurl(url): # _type: (str) -> urlutil.url # TODO: re-enable this after dropping 5.7 support assert isinstance(url, str), repr(url) return urlutil.url(hglib.fromunicode(url)) def linkify(url: str) -> str: assert isinstance(url, str), repr(url) u = urlutil.url(hglib.fromunicode(url)) if u.scheme in (b'http', b'https'): safe = urlutil.hidepassword(hglib.fromunicode(url)) return u'%s' % (url, hglib.tounicode(safe)) elif u.scheme is None or u.scheme == b'file': return u'%s' % (url, hglib.tounicode(u.path)) else: return url # ignore preceding white spaces because ui.prompt() for username/password # writes extra " "s to the output channel. (hg 3.1) _extractnodeids = re.compile(br'^\s*([0-9a-f]{40})$', re.MULTILINE).findall class SyncWidget(QWidget, qtlib.TaskWidget): newCommand = pyqtSignal(cmdcore.CmdSession) outgoingNodes = pyqtSignal(object) incomingBundle = pyqtSignal(str, str) showMessage = pyqtSignal(str) pullCompleted = pyqtSignal() pushCompleted = pyqtSignal() switchToRequest = pyqtSignal(str) _lasturl: Optional[str] opts: Dict[str, Union[bool, bytes]] curalias: Optional[bytes] paths: Dict[bytes, bytes] def __init__(self, repoagent, parent=None): QWidget.__init__(self, parent) layout = QVBoxLayout() layout.setContentsMargins(2, 2, 2, 2) layout.setSpacing(4) self.setLayout(layout) self.setAcceptDrops(True) self._repoagent = repoagent self._cmdsession = cmdcore.nullCmdSession() # peer repository of last command self._lasturl = None self._lastbfile = None # output bundle of last incoming command self.opts = {} self.cmenu = None s = QSettings() for opt in ('force', 'new-branch', 'noproxy', 'debug', 'mq'): val = qtlib.readBool(s, 'sync/' + opt) if val: if opt != 'mq' or b'mq' in self.repo.extensions(): self.opts[opt] = val for opt in ('remotecmd', 'branch'): val = hglib.fromunicode(qtlib.readString(s, 'sync/' + opt)) if val: self.opts[opt] = val self._repoagent.configChanged.connect(self.reload) self._repoagent.repositoryChanged.connect(self._onRepositoryChanged) tb = QToolBar(self) tb.setIconSize(qtlib.toolBarIconSize()) tb.setStyleSheet(qtlib.tbstylesheet) self.layout().addWidget(tb) self.opbuttons = [] def newaction(tip, icon, cb): a = QAction(self) a.setToolTip(tip) a.setIcon(qtlib.geticon(icon)) a.triggered.connect(cb) self.opbuttons.append(a) tb.addAction(a) return a self.incomingAction = \ newaction(_('Check for incoming changes from selected URL'), 'hg-incoming', self.inclicked) self.pullAction = \ newaction(_('Pull incoming changes from selected URL'), 'hg-pull', lambda: self.pullclicked()) self.outgoingAction = \ newaction(_('Detect outgoing changes to selected URL'), 'hg-outgoing', self.outclicked) self.pushAction = \ newaction(_('Push outgoing changes to selected URL'), 'hg-push', lambda: self.pushclicked(None)) newaction(_('Sync Bookmarks'), 'thg-sync-bookmarks', self.syncBookmark) newaction(_('Email outgoing changesets for remote repository'), 'mail-forward', self.emailclicked) if b'perfarce' in self.repo.extensions(): a = QAction(self) a.setToolTip(_('Manage pending perforce changelists')) a.setText('P4') a.triggered.connect(self.p4pending) self.opbuttons.append(a) tb.addAction(a) tb.addSeparator() newaction(_('Unbundle'), 'hg-unbundle', self.unbundle) tb.addSeparator() self.stopAction = a = QAction(self) a.setToolTip(_('Stop current operation')) a.setIcon(qtlib.geticon('process-stop')) a.triggered.connect(self.stopclicked) tb.addAction(a) tb.addSeparator() self.optionsbutton = QPushButton(_('Options')) self.postpullbutton = QPushButton() tb.addWidget(self.postpullbutton) tb.addWidget(self.optionsbutton) self.targetcombo = QComboBox() self.targetcombo.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed) self.targetcombo.setSizeAdjustPolicy( QComboBox.SizeAdjustPolicy.AdjustToContents) self.targetcombo.setEnabled(False) self.targetcheckbox = QCheckBox(_('Target:')) self.targetcheckbox.toggled.connect(self.targetcombo.setEnabled) tb.addSeparator() tb.addWidget(self.targetcheckbox) tb.addWidget(self.targetcombo) hbox = QHBoxLayout() hbox.setContentsMargins(0, 0, 0, 0) layout.addLayout(hbox) self.optionshdrlabel = lbl = QLabel(_('Selected Options:')) hbox.addWidget(lbl) self.optionslabel = QLabel() self.optionslabel.setAcceptDrops(False) hbox.addWidget(self.optionslabel) hbox.addStretch() self.pathEditToolbar = tbar = QToolBar(_('Path Edit Toolbar')) tbar.setStyleSheet(qtlib.tbstylesheet) tbar.setIconSize(qtlib.smallIconSize()) layout.addWidget(tbar) a = tbar.addAction(qtlib.geticon('thg-password'), _('Security')) a.setToolTip(_('Manage HTTPS connection security and user ' 'authentication')) self.securebutton = a tbar.addWidget(qtlib.Spacer(2, 2)) style = QApplication.style() a = tbar.addAction(style.standardIcon(QStyle.StandardPixmap.SP_DialogSaveButton), _('Save')) a.setToolTip(_('Save current URL under an alias')) self.savebutton = a tbar.addWidget(qtlib.Spacer(2, 2)) self.urlentry = QLineEdit() self.urlentry.textChanged.connect(self.urlChanged) self.urlentry.returnPressed.connect(self.saveclicked) tbar.addWidget(self.urlentry) tbar.addWidget(qtlib.Spacer(2, 2)) self.browsebutton = QPushButton(_('Browse...')) self.browsebutton.setAutoDefault(False) self.browsebutton.clicked.connect(self._browseUrl) tbar.addWidget(self.browsebutton) # even though currentRowChanged fires pathSelected, clicked signal is # also connected to it. otherwise urlentry won't be updated when the # selection moves between hgrctv and reltv. hbox = QHBoxLayout() hbox.setContentsMargins(0, 0, 0, 0) self.hgrctv = PathsTree(self, True) self.hgrctv.clicked.connect(self.pathSelected) self.hgrctv.removeAlias.connect(self.removeAlias) self.hgrctv.menuRequest.connect(self.menuRequest) pathsframe = QFrame() pathsframe.setFrameStyle(QFrame.Shape.StyledPanel|QFrame.Shadow.Raised) pathsbox = QVBoxLayout() pathsbox.setContentsMargins(0, 0, 0, 0) pathsframe.setLayout(pathsbox) lbl = QLabel(_('Paths in Repository Settings:')) pathsbox.addWidget(lbl) pathsbox.addWidget(self.hgrctv) hbox.addWidget(pathsframe) self.reltv = PathsTree(self, False) self.reltv.clicked.connect(self.pathSelected) self.reltv.menuRequest.connect(self.menuRequest) self.reltv.clicked.connect(self.hgrctv.clearSelection) self.hgrctv.clicked.connect(self.reltv.clearSelection) pathsframe = QFrame() pathsframe.setFrameStyle(QFrame.Shape.StyledPanel|QFrame.Shadow.Raised) pathsbox = QVBoxLayout() pathsbox.setContentsMargins(0, 0, 0, 0) pathsframe.setLayout(pathsbox) lbl = QLabel(_('Related Paths:')) pathsbox.addWidget(lbl) pathsbox.addWidget(self.reltv) hbox.addWidget(pathsframe) layout.addLayout(hbox, 1) self.savebutton.triggered.connect(self.saveclicked) self.securebutton.triggered.connect(self.secureclicked) self.postpullbutton.clicked.connect(self.postpullclicked) self.optionsbutton.clicked.connect(self.editOptions) self._dialogs = qtlib.DialogKeeper( lambda self, dlgmeth, *args: dlgmeth(self, *args), parent=self) self.curalias = None self.reload() if b'default' in self.paths: self.setUrl('default') else: self.setEditUrl('') self._updateUi() @property def repo(self): return self._repoagent.rawRepo() def canswitch(self): return False def _loadTargets(self): self.targetcombo.clear() # itemData(role=UserRole) is the argument list to pass to hg self.targetcombo.addItem('', ('--rev', 'null')) # placeholder for name in hglib.namedbranches(self.repo): uname = hglib.tounicode(name) self.targetcombo.addItem(_('branch: ') + uname, ('--branch', name)) self.targetcombo.setItemData(self.targetcombo.count() - 1, name, Qt.ItemDataRole.ToolTipRole) for name in sorted(self.repo._bookmarks): uname = hglib.tounicode(name) self.targetcombo.addItem(_('bookmark: ') + uname, ('--bookmark', name)) self.targetcombo.setItemData(self.targetcombo.count() - 1, name, Qt.ItemDataRole.ToolTipRole) def _findTargetIndex(self, ctx): for name in ctx.bookmarks(): uname = hglib.tounicode(name) return self.targetcombo.findText(_('bookmark: ') + uname) if ctx.node() in self.repo.branchheads(ctx.branch()): uname = hglib.tounicode(ctx.branch()) return self.targetcombo.findText(_('branch: ') + uname) return 0 def refreshTargets(self, rev): if not isinstance(rev, int): return if rev >= len(self.repo): return ctx = self.repo[rev] if self.targetcombo.count() <= 0: self._loadTargets() self.targetcombo.setItemText(0, _('rev: %d (%s)') % (ctx.rev(), ctx)) self.targetcombo.setItemData(0, ('--rev', str(ctx.rev()))) self.targetcombo.setCurrentIndex(self._findTargetIndex(ctx)) def isTargetSelected(self): return self.targetcheckbox.isChecked() @pyqtSlot(int) def _onRepositoryChanged(self, flags): if flags & thgrepo.LogChanged: self._loadTargets() def editOptions(self): dlg = OptionsDialog(self._repoagent, self.opts, self) dlg.setWindowFlags(Qt.WindowType.Sheet) dlg.setWindowModality(Qt.WindowModality.WindowModal) if dlg.exec() == QDialog.DialogCode.Accepted: self.opts.update(dlg.outopts) self.refreshUrl() s = QSettings() for opt, val in self.opts.items(): if isinstance(val, bytes): val = hglib.tounicode(val) s.setValue('sync/' + opt, val) @pyqtSlot() def reload(self): # Refresh configured paths self.paths = {} fn = self.repo.vfs.join(b'hgrc') fn, cfg = hgrcutil.loadIniFile([fn], self) if b'paths' in cfg: for alias, path in cfg.items(b'paths'): self.paths[alias] = path tm = PathsModel(self.paths.items(), self) self.hgrctv.setModel(tm) sm = self.hgrctv.selectionModel() sm.currentRowChanged.connect(self.pathSelected) # Refresh post-pull self.cachedpp = hglib.tounicode(self.repo.postpull) name = _('Post Pull: ') + self.cachedpp.title() self.postpullbutton.setText(name) # Refresh related paths known: Set[bytes] = set() known.add(os.path.abspath(self.repo.root).lower()) for path in self.paths.values(): if not urlutil.hasscheme(path): known.add(os.path.abspath(util.localpath(path)).lower()) else: known.add(path) related: Dict[bytes, bytes] = {} repoid = hglib.repoidnode(self.repo) for root, shortname in thgrepo.relatedRepositories(repoid): if root == self.repo.root: continue abs = os.path.abspath(root).lower() if abs not in known: related[root] = shortname known.add(abs) if root in thgrepo._repocache: # repositories already opened keep their ui instances in sync repo = thgrepo._repocache[root] ui = repo.ui elif paths.is_on_fixed_drive(root): # directly read the repository's configuration file tempui = self.repo.ui.copy() tempui.readconfig(os.path.join(root, b'.hg', b'hgrc')) ui = tempui else: continue for alias, path in ui.configitems(b'paths'): if not urlutil.hasscheme(path): abs = os.path.abspath(util.localpath(path)).lower() else: abs = path if abs not in known: related[path] = alias known.add(abs) pairs = [(alias, path) for path, alias in related.items()] tm = PathsModel(pairs, self) self.reltv.setModel(tm) sm = self.reltv.selectionModel() sm.currentRowChanged.connect(self.pathSelected) def currentUrl(self) -> str: return self.urlentry.text() def urlChanged(self): self.securebutton.setEnabled('https://' in self.currentUrl()) def refreshUrl(self): 'User has selected a new URL' self.urlChanged() opts = [] for opt, value in self.opts.items(): if value is True: opts.append('--'+opt) elif value: opts.append('--'+opt+'='+hglib.tounicode(value)) self.optionslabel.setText(' '.join(opts)) self.optionslabel.setVisible(bool(opts)) self.optionshdrlabel.setVisible(bool(opts)) def pathSelected(self, index): aliasindex = index.sibling(index.row(), 0) alias = aliasindex.data(Qt.ItemDataRole.DisplayRole) self.curalias = hglib.fromunicode(alias) path = index.model().realUrl(index) self.setEditUrl(hglib.tounicode(path)) def setEditUrl(self, newurl: str) -> None: 'Set the current URL without changing the alias [unicode]' self.urlentry.setText(newurl) self.refreshUrl() def setUrl(self, newurl: str) -> None: 'Set the current URL to the given alias or URL [unicode]' model = self.hgrctv.model() assert model is not None for col in (0, 1): # search known (alias, url) ixs = model.match(model.index(0, col), Qt.ItemDataRole.DisplayRole, newurl, 1, Qt.MatchFlag.MatchFixedString | Qt.MatchFlag.MatchCaseSensitive) if ixs: self.hgrctv.setCurrentIndex(ixs[0]) self.pathSelected(ixs[0]) # in case of row not changed return self.setEditUrl(newurl) def dragEnterEvent(self, event): data = event.mimeData() if data.hasUrls() or data.hasText(): event.setDropAction(Qt.DropAction.CopyAction) event.acceptProposedAction() def dragMoveEvent(self, event): data = event.mimeData() if data.hasUrls() or data.hasText(): event.setDropAction(Qt.DropAction.CopyAction) event.acceptProposedAction() def dropEvent(self, event): data = event.mimeData() if data.hasUrls(): url = data.urls()[0].toString() event.setDropAction(Qt.DropAction.CopyAction) event.accept() elif data.hasText(): url = data.text() event.setDropAction(Qt.DropAction.CopyAction) event.accept() else: return if url.startswith('file:///'): url = url[8:] self.setUrl(url) def canExit(self): return self._cmdsession.isFinished() @pyqtSlot(QPoint, str, str, bool) def menuRequest(self, point: QPoint, url: str, alias: str, editable: bool) -> None: 'menu event emitted by one of the two URL lists' if not self.cmenu: separator = (None, None, None) acts = [] menu = QMenu(self) for text, cb, icon in ( (_('E&xplore'), self.exploreurl, 'system-file-manager'), (_('&Terminal'), self.terminalurl, 'utilities-terminal'), (_('Copy &Path'), self.copypath, ''), separator, (_('&Edit...'), self.editurl, 'general'), (_('&Remove...'), self.removeurl, 'hg-strip')): if text is None: menu.addSeparator() continue act = QAction(text, self) if icon: act.setIcon(qtlib.geticon(icon)) act.triggered.connect(cb) acts.append(act) menu.addAction(act) self.cmenu = menu self.acts = acts self.menuurl = url self.menualias = alias for act in self.acts[-2:]: act.setEnabled(editable) self.cmenu.exec(point) def exploreurl(self): url = self.menuurl u = parseurl(url) if not u.scheme or u.scheme == b'file': qtlib.openlocalurl(u.path) else: QDesktopServices.openUrl(QUrl(url)) def terminalurl(self): url = self.menuurl u = parseurl(url) if u.scheme and u.scheme != b'file': qtlib.InfoMsgBox(_('Repository not local'), _('A terminal shell cannot be opened for remote')) return qtlib.openshell(u.path, b'repo ' + u.path) def editurl(self): alias = hglib.fromunicode(self.menualias) urlu = self.menuurl dlg = SaveDialog(self._repoagent, alias, urlu, self, edit=True) dlg.setWindowFlags(Qt.WindowType.Sheet) dlg.setWindowModality(Qt.WindowModality.WindowModal) if dlg.exec() == QDialog.DialogCode.Accepted: self.curalias = hglib.fromunicode(dlg.aliasentry.text()) self.setEditUrl(dlg.urlentry.text()) self.reload() def removeurl(self): if qtlib.QuestionMsgBox(_('Confirm path delete'), _('Delete %s from your repo configuration file?') % self.menualias, parent=self): self.removeAlias(self.menualias) def copypath(self): QApplication.clipboard().setText(self.menuurl) def keyPressEvent(self, event): sess = self._cmdsession if event.matches(QKeySequence.StandardKey.Refresh): self.reload() elif event.key() == Qt.Key.Key_Escape and not sess.isFinished(): sess.abort() else: return super(SyncWidget, self).keyPressEvent(event) def stopclicked(self): self._cmdsession.abort() def saveclicked(self): if self.curalias: alias = self.curalias elif b'default' not in self.paths: alias = b'default' else: alias = b'new' dlg = SaveDialog(self._repoagent, alias, self.currentUrl(), self) dlg.setWindowFlags(Qt.WindowType.Sheet) dlg.setWindowModality(Qt.WindowModality.WindowModal) if dlg.exec() == QDialog.DialogCode.Accepted: self.curalias = hglib.fromunicode(dlg.aliasentry.text()) self.reload() @pyqtSlot() def _browseUrl(self): FD = QFileDialog caption = _("Select repository") path = FD.getExistingDirectory(self, caption, self.urlentry.text()) if path: self.urlentry.setText(QDir.toNativeSeparators(path)) def secureclicked(self): if not parseurl(self.currentUrl()).host: qtlib.WarningMsgBox(_('No host specified'), _('Please set a valid URL to continue.'), parent=self) return dlg = SecureDialog(self._repoagent, self.currentUrl(), self) dlg.setWindowFlags(Qt.WindowType.Sheet) dlg.setWindowModality(Qt.WindowModality.WindowModal) dlg.exec() @pyqtSlot() def _updateUi(self): sess = self._cmdsession for b in self.opbuttons: b.setEnabled(sess.isFinished()) self.stopAction.setEnabled(not sess.isFinished()) def run(self, cmdline: List[Union[str, bytes]], details: Iterable[str]) -> cmdcore.CmdSession: if not self._cmdsession.isFinished(): return cmdcore.nullCmdSession() self.lastcmdline = list(cmdline) for name in list(details) + ['remotecmd']: val = self.opts.get(name) if not val: continue if isinstance(val, bool): if val: cmdline.append('--' + name) elif val: cmdline.append('--' + name) cmdline.append(val) if 'rev' in details and '--rev' not in cmdline: if self.targetcheckbox.isChecked(): idx = self.targetcombo.currentIndex() if idx != -1: args = self.targetcombo.itemData(idx) if args[0][2:] not in details: args = ('--rev',) + args[1:] cmdline += args if self.opts.get('noproxy'): cmdline += ['--config', 'http_proxy.host='] if self.opts.get('debug'): cmdline.append('--debug') cururl = self.currentUrl() lurl = hglib.fromunicode(cururl) u = parseurl(cururl) if not u.host and not u.path: self.switchToRequest.emit('sync') qtlib.WarningMsgBox(_('No remote repository URL or path set'), _('No valid default remote repository URL or path ' 'has been configured for this repository.

                                                                                                            Please type ' 'and save a remote repository path on the Sync widget.'), parent=self) return cmdcore.nullCmdSession() if u.scheme == b'https': if self.repo.ui.configbool(b'insecurehosts', u.host): cmdline.append('--insecure') if u.user: cleanurl = urlutil.removeauth(lurl) res = httpconnection.readauthforuri(self.repo.ui, cleanurl, u.user) if res: group, auth = res if auth.get(b'username'): if qtlib.QuestionMsgBox( _('Redundant authentication info'), _('You have authentication info configured for ' 'this host and inside this URL. Remove ' 'authentication info from this URL?'), parent=self): self.setEditUrl(hglib.tounicode(cleanurl)) self.saveclicked() if not self.opts.get('mq'): cmdline.append(lurl) ucmdline = pycompat.maplist(hglib.tounicode, cmdline) # bypass overlay of incoming bundle to pull changes overlay = ucmdline[0] not in ('fetch', 'incoming', 'pull') self._cmdsession = sess = self._repoagent.runCommand(ucmdline, self, overlay=overlay) sess.commandFinished.connect(self._updateUi) self._lasturl = cururl self._updateUi() self.newCommand.emit(sess) return sess ## ## Workbench toolbar buttons ## def incoming(self): if not self._cmdsession.isFinished(): self.showMessage.emit(_('sync command already running')) else: self.inclicked() def pull(self): if not self._cmdsession.isFinished(): self.showMessage.emit(_('sync command already running')) else: self.pullclicked() def outgoing(self): if not self._cmdsession.isFinished(): self.showMessage.emit(_('sync command already running')) else: self.outclicked() def push(self, confirm, **kwargs): if not self._cmdsession.isFinished(): self.showMessage.emit(_('sync command already running')) else: self.pushclicked(confirm, **kwargs) def pullBundle(self, bundle: str, rev: Optional[bytes], bsource: Optional[str] = None) -> None: 'accept bundle changesets' if not self._cmdsession.isFinished(): self.showMessage.emit(_('sync command already running')) return save = self.currentUrl() orev = self.opts.get('rev') # XXX hack to ignore incoming bundle because it can't apply phase # movement, pull bookmarks and largefiles. further cleanups should # go on default branch. self.setEditUrl(bsource or bundle) if rev is not None: self.opts['rev'] = rev self.pullclicked(bsource) self.setEditUrl(save) self.opts['rev'] = orev ## ## Sync dialog buttons ## def linkifyWithTarget(self, url: str) -> str: link = linkify(url) if self.targetcheckbox.isChecked(): link += u" (%s)" % self.targetcombo.currentText() return link def inclicked(self): url = self.currentUrl() link = self.linkifyWithTarget(url) if not url.startswith('p4://'): bfile = url.replace('/', '_') for badchar in (':', '*', '\\', '?', '#'): bfile = bfile.replace(badchar, '') fd, bfile = tempfile.mkstemp( suffix=b'.hg', prefix=hglib.fromunicode(bfile) + b'_', dir=qtlib.gettempdir()) os.close(fd) self._lastbfile = hglib.tounicode(bfile) cmdline = ['incoming', '--quiet', '--bundle', bfile] sess = self.run(cmdline, ('force', 'branch', 'rev')) sess.commandFinished.connect(self._onIncomingFinished) else: self._lastbfile = None cmdline = ['incoming'] sess = self.run(cmdline, ('force', 'branch', 'rev')) sess.commandFinished.connect(self._onIncomingFinished) self.showMessage.emit(_('Getting incoming changesets from %s...') % link) @pyqtSlot(int) def _onIncomingFinished(self, ret): link = self.linkifyWithTarget(self._lasturl) if ret == 0: self.showMessage.emit(_('Found incoming changesets from %s') % link) # hg-git 'incoming' gives no data for bundle if (self._lastbfile and os.path.exists(self._lastbfile) and os.path.getsize(self._lastbfile) > 0): self.incomingBundle.emit(self._lastbfile, self._lasturl) elif ret == 1: self.showMessage.emit(_('No incoming changesets from %s') % link) else: self.showMessage.emit(_('Incoming from %s aborted, ret %d') % (link, ret)) def pullclicked(self, url: Optional[str] = None) -> None: link = self.linkifyWithTarget(url or self.currentUrl()) cmdline = ['pull', '--verbose'] if self._repoagent.configBool('tortoisehg', 'autoresolve'): uimerge = 'ui.merge=internal:merge' else: uimerge = 'ui.merge=internal:fail' if self.cachedpp == 'rebase': cmdline += ['--rebase', '--config', uimerge] elif self.cachedpp == 'update': cmdline += ['--update', '--config', uimerge] elif self.cachedpp == 'updateorrebase': cmdline += ['--update', '--rebase', '--config', uimerge] elif self.cachedpp == 'fetch': cmdline[0] = 'fetch' elif self.opts.get('mq'): # force the tool to update to the pulled changeset cmdline += ['--update', '--config', uimerge] sess = self.run(cmdline, ('force', 'branch', 'rev', 'bookmark', 'mq')) sess.commandFinished.connect(self._onPullFinished) self.showMessage.emit(_('Pulling from %s...') % link) if url: self._lasturl = url # overwrite by user-visible (source) URL @pyqtSlot(int) def _onPullFinished(self, ret): link = self.linkifyWithTarget(self._lasturl) if ret == 0: self.showMessage.emit(_('Pull from %s completed') % link) else: self.showMessage.emit(_('Pull from %s aborted, ret %d') % (link, ret)) self.pullCompleted.emit() # handle file conflicts during rebase if self.cachedpp in ('rebase', 'updateorrebase'): if os.path.exists(self.repo.vfs.join(b'rebasestate')): dlg = rebase.RebaseDialog(self._repoagent, self) dlg.exec() return # handle file conflicts during update for root, path, status in thgrepo.recursiveMergeStatus(self.repo): if status == b'u': qtlib.InfoMsgBox(_('Merge caused file conflicts'), _('File conflicts need to be resolved')) dlg = resolve.ResolveDialog(self._repoagent, self) dlg.exec() return def outclicked(self): link = self.linkifyWithTarget(self.currentUrl()) cmdline = ['outgoing', '--template', '{node}\n'] sess = self.run(cmdline, ('force', 'branch', 'rev')) sess.setCaptureOutput(True) sess.commandFinished.connect(self._onOutgoingFinished) self.showMessage.emit(_('Finding outgoing changesets to %s...') % link) @pyqtSlot(int) def _onOutgoingFinished(self, ret): link = self.linkifyWithTarget(self._lasturl) if ret == 0: data = bytes(self._cmdsession.readAll()) nodes = [pycompat.sysstr(node) for node in _extractnodeids(data)] self.showMessage.emit(_('%d outgoing changesets to %s') % (len(nodes), link)) self.outgoingNodes.emit(nodes) elif ret == 1: self.showMessage.emit(_('No outgoing changesets to %s') % link) else: self.showMessage.emit(_('Outgoing to %s aborted, ret %d') % (link, ret)) def p4pending(self): sess = self.run(['p4pending', '--verbose'], ()) sess.setCaptureOutput(True) sess.commandFinished.connect(self._onP4pendingFinished) self.showMessage.emit(_('Perforce pending...')) @pyqtSlot(int) def _onP4pendingFinished(self, ret): pending = {} if ret == 0: output = str(self._cmdsession.readAll()) # decode? for line in output.splitlines(): try: hashes = line.split(' ') changelist = hashes.pop(0) clnum = int(changelist) if len(hashes) > 1 and len(hashes[0]) == 1: state = hashes.pop(0) if state == 's': changelist = _('%s (submitted)') % changelist elif state == 'p': changelist = _('%s (pending)') % changelist else: raise ValueError pending[changelist] = hashes except (ValueError, IndexError): # XXX: This is unconditionally overwritten before use text = _('Unable to parse p4pending output') if pending: text = _('%d pending changelists found') % len(pending) else: text = _('No pending Perforce changelists') elif ret is None: text = _('Aborted p4pending') else: text = _('Unable to determine pending changesets') self.showMessage.emit(text) if pending: from tortoisehg.hgqt.p4pending import PerforcePending p4url = hglib.fromunicode(self._lasturl) dlg = PerforcePending(self._repoagent, pending, p4url, self) dlg.showMessage.connect(self.showMessage) dlg.exec() def pushclicked(self, confirm, rev=None, branch=None, pushall=False): if confirm is None: confirm = self._repoagent.configBool('tortoisehg', 'confirmpush') if rev == '': rev = None if branch == '': branch = None if pushall and (rev is not None or branch is not None): raise ValueError('inconsistent call with pushall=%r, rev=%r and ' 'branch=%r' % (pushall, rev, branch)) validopts = ('force', 'new-branch', 'rev', 'bookmark', 'mq') lurl = hglib.fromunicode(self.currentUrl()) link = self.linkifyWithTarget(self.currentUrl()) if (not hg.islocal(lurl) and confirm and not self.targetcheckbox.isChecked()): r = qtlib.QuestionMsgBox(_('Confirm Push to remote Repository'), _('Push to remote repository\n%s\n?') % link, parent=self) if not r: self.newCommand.emit(cmdcore.nullCmdSession()) self.showMessage.emit(_('Push to %s aborted') % link) self.pushCompleted.emit() return # Precedence of conflicting revision specifiers: # # rev bra all description # --- --- --- -------------------------------------------------------- # x x x 1. method arguments (temporarily set by context menu) # x 2. target combobox (temporarily set) # x 3. opts table (set by OptionsDialog, saved in QSettings) # x x x 4. tortoisehg.defaultpush (saved in hgrc) # # Note: "pushall" is set to True even if 2. or 3. is specified if branch is None: branch = self.opts.get('branch') if not pushall and rev is None and branch is None: defaultpush = self._repoagent.configString( 'tortoisehg', 'defaultpush') if self.targetcheckbox.isChecked(): pass elif defaultpush == 'all': # This is the default pass elif defaultpush == 'branch': branch = '.' elif defaultpush == 'revision': rev = '.' else: self.newCommand.emit(cmdcore.nullCmdSession()) self.showMessage.emit(_('Invalid default push revision: %s. ' 'Please check your Mercurial ' 'configuration ' '(tortoisehg.defaultpush)') % defaultpush) self.pushCompleted.emit() return cmdline = ['push'] if rev: cmdline.extend(['--rev', str(rev)]) if branch: cmdline.extend(['--branch', branch]) sess = self.run(cmdline, validopts) sess.commandFinished.connect(self._onPushFinished) self.showMessage.emit(_('Pushing to %s...') % link) @pyqtSlot(int) def _onPushFinished(self, ret): link = self.linkifyWithTarget(self._lasturl) if ret == 0: self.showMessage.emit(_('Push to %s completed') % link) elif ret == 1: self.showMessage.emit(_('No outgoing changesets to %s') % link) else: self.showMessage.emit(_('Push to %s aborted, ret %d') % (link, ret)) if ("'hg push --new-branch'" in self._cmdsession.errorString() and '--new-branch' not in self.lastcmdline): r = qtlib.QuestionMsgBox(_('Confirm New Branch'), _('One or more of the changesets that ' 'you are attempting to push involve ' 'the creation of a new branch. ' 'Do you want to create a new branch ' 'in the remote repository?'), parent=self) if r: cmdline = self.lastcmdline cmdline.extend(['--new-branch']) sess = self.run(cmdline, ('force', 'new-branch', 'rev', 'bookmark', 'mq')) sess.commandFinished.connect(self._onPushFinished) return self.pushCompleted.emit() def postpullclicked(self): dlg = PostPullDialog(self._repoagent, self) dlg.setWindowFlags(Qt.WindowType.Sheet) dlg.setWindowModality(Qt.WindowModality.WindowModal) dlg.exec() def emailclicked(self): cmdline = ['outgoing', '--template', '{node}\n'] sess = self.run(cmdline, ('force', 'branch', 'rev')) sess.setCaptureOutput(True) sess.commandFinished.connect(self._onOutgoingEmailFinished) self.showMessage.emit(_('Determining outgoing changesets to email...')) def syncBookmark(self): dlg = bookmark.SyncBookmarkDialog(self._repoagent, self.currentUrl(), self) dlg.exec() @pyqtSlot(int) def _onOutgoingEmailFinished(self, ret): if ret == 0: cmdline = self.lastcmdline data = bytes(self._cmdsession.readAll()) revs = tuple(self.repo[n].rev() for n in _extractnodeids(data)) self.showMessage.emit(_('%d outgoing changesets') % len(revs)) try: outgoingrevs = (cmdline[cmdline.index('--rev') + 1],) except ValueError: outgoingrevs = None self._dialogs.open(SyncWidget._createEmailDialog, revs, outgoingrevs) elif ret == 1: self.showMessage.emit(_('No outgoing changesets')) else: self.showMessage.emit(_('Outgoing aborted, ret %d') % ret) def _createEmailDialog(self, revs, outgoingrevs): return hgemail.EmailDialog(self._repoagent, revs, outgoing=True, outgoingrevs=outgoingrevs) def unbundle(self): caption = _("Select bundle file") _FILE_FILTER = ';;'.join([_("Bundle files (*.hg)"), _("All files (*)")]) bundlefile, _filter = QFileDialog.getOpenFileName( self, caption, hglib.tounicode(self.repo.root), _FILE_FILTER) if bundlefile: # Set the pull source to the selected bundle file self.urlentry.setText(bundlefile) # Execute the incoming command, which will show the revisions in # the bundle, and let the user accept or reject them self.inclicked() @pyqtSlot(str) def removeAlias(self, alias): alias = hglib.fromunicode(alias) fn = self.repo.vfs.join(b'hgrc') fn, cfg = hgrcutil.loadIniFile([fn], self) if not hasattr(cfg, 'write'): qtlib.WarningMsgBox(_('Unable to remove URL'), _('Iniparse must be installed.'), parent=self) return if fn is None: return if alias in cfg[b'paths']: del cfg[b'paths'][alias] try: wconfig.writefile(cfg, fn) self._repoagent.pollStatus() except EnvironmentError as e: qtlib.WarningMsgBox(_('Unable to write configuration file'), hglib.exception_str(e), parent=self) self.reload() class PostPullDialog(QDialog): def __init__(self, repoagent, parent): super(PostPullDialog, self).__init__(parent) self._repoagent = repoagent repo = repoagent.rawRepo() layout = QVBoxLayout() self.setLayout(layout) self.setWindowTitle(_('Post Pull Behavior')) self.setWindowFlags(self.windowFlags() & ~Qt.WindowType.WindowContextHelpButtonHint) lbl = QLabel(_('Select post-pull operation for this repository')) layout.addWidget(lbl) self._opchecks = { 'none': QRadioButton(_('None - simply pull changesets')), 'update': QRadioButton(_('Update - pull, then try to update')), } layout.addWidget(self._opchecks['none']) layout.addWidget(self._opchecks['update']) if b'fetch' in repo.extensions(): btntxt = _('Fetch - use fetch (auto merge pulled changes)') else: btntxt = _('Fetch - use fetch extension (fetch is not active!)') self._opchecks['fetch'] = chk = QRadioButton(btntxt) layout.addWidget(chk) chk.setVisible(b'fetch' in repo.extensions()) if b'rebase' in repo.extensions(): rebasetxt = _('Rebase - rebase local commits above pulled changes') updateorrebasetxt = _('UpdateOrRebase - pull, then try to update ' 'or rebase') else: rebasetxt = _('Rebase - use rebase extension (rebase is not ' 'active!)') updateorrebasetxt = _('UpdateOrRebase - use rebase extension ' '(rebase is not active!)') self._opchecks['rebase'] = chk = QRadioButton(rebasetxt) layout.addWidget(chk) chk.setVisible(b'rebase' in repo.extensions()) self._opchecks['updateorrebase'] = chk = QRadioButton(updateorrebasetxt) layout.addWidget(chk) chk.setVisible(b'rebase' in repo.extensions()) chk = self._opchecks[hglib.tounicode(repo.postpull)] chk.setChecked(True) chk.show() self.autoresolve_chk = QCheckBox(_('Automatically resolve merge ' 'conflicts where possible')) self.autoresolve_chk.setChecked( repoagent.configBool('tortoisehg', 'autoresolve')) layout.addWidget(self.autoresolve_chk) cfglabel = QLabel(_('Launch settings tool...')) cfglabel.linkActivated.connect(self.linkactivated) layout.addWidget(cfglabel) bb = QDialogButtonBox(QDialogButtonBox.StandardButton.Save|QDialogButtonBox.StandardButton.Cancel) bb.accepted.connect(self.accept) bb.rejected.connect(self.reject) self.bb = bb layout.addWidget(bb) @property def repo(self): return self._repoagent.rawRepo() def linkactivated(self, command: str) -> None: if command == 'config': from tortoisehg.hgqt.settings import SettingsDialog sd = SettingsDialog(configrepo=False, focus='tortoisehg.postpull', parent=self, root=self.repo.root) sd.exec() def getValue(self) -> str: return next(iter(op for op, chk in self._opchecks.items() if chk.isChecked())) def accept(self): path = self.repo.vfs.join(b'hgrc') fn, cfg = hgrcutil.loadIniFile([path], self) if not hasattr(cfg, 'write'): qtlib.WarningMsgBox(_('Unable to save post pull operation'), _('Iniparse must be installed.'), parent=self) return if fn is None: return try: cfg.set(b'tortoisehg', b'postpull', encoding.strtolocal(self.getValue())) cfg.set(b'tortoisehg', b'autoresolve', self.autoresolve_chk.isChecked() and b'True' or b'False') wconfig.writefile(cfg, fn) self._repoagent.pollStatus() except EnvironmentError as e: qtlib.WarningMsgBox(_('Unable to write configuration file'), hglib.exception_str(e), parent=self) super(PostPullDialog, self).accept() class SaveDialog(QDialog): def __init__(self, repoagent, alias, urlu, parent, edit=False): super(SaveDialog, self).__init__(parent) self._repoagent = repoagent self.setWindowTitle(_('Save Path')) self.setWindowFlags(self.windowFlags() & ~Qt.WindowType.WindowContextHelpButtonHint) self.origurl = hglib.fromunicode(urlu) self.setLayout(QFormLayout()) self.layout().setFieldGrowthPolicy(QFormLayout.FieldGrowthPolicy.ExpandingFieldsGrow) self.origalias = alias self.aliasentry = QLineEdit(hglib.tounicode(self.origalias)) self.aliasentry.selectAll() self.aliasentry.textChanged.connect(self._updateUi) self.layout().addRow(_('Alias'), self.aliasentry) self.edit = edit stack = QStackedLayout() # 0: read-only masked URL, 1: editable URL self.urllabel = QLabel(urlu) stack.addWidget(self.urllabel) self.urlentry = QLineEdit(urlu) self.urlentry.textChanged.connect(self._updateUi) stack.addWidget(self.urlentry) stack.setCurrentIndex(int(edit)) self.layout().addRow(_('URL'), stack) u = parseurl(urlu) clearable = bool(not edit and (u.user or u.passwd) and u.scheme in (b'http', b'https')) self.clearcb = QCheckBox(_('Remove authentication data from URL')) self.clearcb.setToolTip( _('User authentication data should be associated with the ' 'hostname using the security dialog.')) self.clearcb.setChecked(clearable) self.clearcb.setVisible(clearable) self.clearcb.toggled.connect(self._removeAuthData) self.layout().addRow(self.clearcb) s = QSettings() self.updatesubpaths = QCheckBox(_('Update subrepo paths')) self.updatesubpaths.setChecked( qtlib.readBool(s, 'sync/updatesubpaths', True)) self.updatesubpaths.setToolTip( _('Update or create a path alias called \'%s\' on all subrepos, ' 'using this URL as the base URL, ' 'appending the local relative subrepo path to it') % hglib.tounicode(alias)) self.layout().addRow(self.updatesubpaths) bb = QDialogButtonBox(QDialogButtonBox.StandardButton.Save|QDialogButtonBox.StandardButton.Cancel) bb.accepted.connect(self.accept) bb.rejected.connect(self.reject) bb.button(QDialogButtonBox.StandardButton.Save).setAutoDefault(True) self.bb = bb self.layout().addRow(bb) self._removeAuthData(self.clearcb.isChecked()) self._updateUi() def savePath(self, repo: localrepo.localrepository, alias: bytes, path: bytes, confirm: bool = True) -> None: fn = repo.vfs.join(b'hgrc') fn, cfg = hgrcutil.loadIniFile([fn], self) if not hasattr(cfg, 'write'): qtlib.WarningMsgBox(_('Unable to save an URL'), _('Iniparse must be installed.'), parent=self) return if fn is None: return if (confirm and (not self.edit or path != self.origurl) and alias in cfg[b'paths']): if not qtlib.QuestionMsgBox(_('Confirm URL replace'), _('%s already exists, replace URL?') % hglib.tounicode(alias), parent=self): return cfg.set(b'paths', alias, path) if self.edit and alias != self.origalias: cfg.remove(b'paths', self.origalias) try: wconfig.writefile(cfg, fn) except EnvironmentError as e: qtlib.WarningMsgBox(_('Unable to write configuration file'), hglib.exception_str(e), parent=self) if self.updatesubpaths.isChecked(): ctx = repo[b'.'] for subname in ctx.substate: # type: bytes if ctx.substate[subname][2] != b'hg': continue if not os.path.exists(repo.wjoin(subname)): continue defaultsubpath = ctx.substate[subname][0] pathurl = urlutil.url(path) if pathurl.scheme: subpath = bytes(pathurl).rstrip(b'/') + b'/' + subname else: subpath = os.path.normpath(os.path.join(path, subname)) if defaultsubpath != subname: if not qtlib.QuestionMsgBox( _('Confirm URL replace'), _('Subrepo \'%s\' has a non trivial ' 'default sync URL:

                                                                                                            %s

                                                                                                            ' 'Replace it with the following URL?:' '

                                                                                                            %s') % (hglib.tounicode(subname), hglib.tounicode(defaultsubpath), hglib.tounicode(subpath)), parent=self): continue subrepo = hg.repository(repo.ui, path=repo.wjoin(subname)) self.savePath(subrepo, alias, subpath, confirm=False) def accept(self): alias = hglib.fromunicode(self.aliasentry.text()) path = hglib.fromunicode(self.urlentry.text()) repo = self._repoagent.rawRepo() self.savePath(repo, alias, path) self._repoagent.pollStatus() s = QSettings() s.setValue('sync/updatesubpaths', self.updatesubpaths.isChecked()) super(SaveDialog, self).accept() @pyqtSlot(bool) def _removeAuthData(self, showclean): if showclean: cleanurl = hglib.tounicode(urlutil.removeauth(self.origurl)) self.urllabel.setText(cleanurl) self.urlentry.setText(cleanurl) else: safeurl = hglib.tounicode(urlutil.hidepassword(self.origurl)) self.urllabel.setText(safeurl) self.urlentry.setText(hglib.tounicode(self.origurl)) @pyqtSlot() def _updateUi(self): savebtn = self.bb.button(QDialogButtonBox.StandardButton.Save) savebtn.setEnabled(bool(self.aliasentry.text() and self.urlentry.text())) def _addBrowseButton(edit, slot): button = QPushButton(_('Browse...')) button.setAutoDefault(False) button.clicked.connect(slot) hbox = QHBoxLayout() hbox.addWidget(edit) hbox.addWidget(button) return hbox class SecureDialog(QDialog): schemes: Optional[bytes] host: bytes _authentries: Dict[bytes, QLineEdit] def __init__(self, repoagent: thgrepo.RepoAgent, urlu: str, parent: QWidget) -> None: super(SecureDialog, self).__init__(parent) self._repoagent = repoagent self._querysess = cmdcore.nullCmdSession() repo = repoagent.rawRepo() self._url = urlu u = parseurl(urlu) assert u.host, repr(u) uhost = hglib.tounicode(u.host) self.setWindowTitle(_('Security: ') + uhost) self.setWindowFlags(self.windowFlags() & \ ~Qt.WindowType.WindowContextHelpButtonHint) # if the already user has an [auth] configuration for this URL, use it cleanurl = urlutil.removeauth(hglib.fromunicode(urlu)) res: Optional[Tuple[bytes, Dict[bytes, bytes]]] = httpconnection.readauthforuri(repo.ui, cleanurl, u.user) self.schemes = None if res: self.alias, auth = res else: self.alias, auth = u.host, {} self.host = u.host if cleanurl.startswith(b'svn+https://'): self.schemes = b'svn+https' else: self.schemes = None self.setLayout(QVBoxLayout()) self.layout().addWidget(QLabel(_('Host: %s') % uhost)) securebox = QGroupBox(_('Secure HTTPS Connection')) self.layout().addWidget(securebox) vbox = QVBoxLayout() securebox.setLayout(vbox) self.layout().addWidget(securebox) self.cacertradio = QRadioButton( _('Verify with Certificate Authority certificates (best)')) self.fprintradio = QRadioButton( _('Verify with stored host fingerprint (good)')) self.insecureradio = QRadioButton( _('No host validation, but still encrypted (bad)')) hbox = QHBoxLayout() fprint = repo.ui.config(b'hostsecurity', u.host + b':fingerprints') if not fprint: fprint = repo.ui.config(b'hostfingerprints', u.host, b'') if fprint: fprint = b'sha1:' + fprint self.fprintentry = le = QLineEdit(hglib.tounicode(fprint)) self.fprintradio.toggled.connect(self.fprintentry.setEnabled) self.fprintentry.setEnabled(False) le.setPlaceholderText(_('### host certificate fingerprint ###')) hbox.addWidget(le) self._querybutton = qb = QPushButton(_('Query')) qb.clicked.connect(self._queryFingerprint) hbox.addWidget(qb) vbox.addWidget(self.cacertradio) vbox.addWidget(self.fprintradio) vbox.addLayout(hbox) vbox.addWidget(self.insecureradio) self.cacertradio.setChecked(True) # default if fprint: self.fprintradio.setChecked(True) elif repo.ui.config(b'insecurehosts', u.host): self.insecureradio.setChecked(True) self.fprintradio.toggled.connect(self._updateUi) self.insecureradio.toggled.connect(self._updateUi) self._protocolcombo = e = QComboBox(self) e.addItem(_(''), '') e.addItem(_('TLS 1.0'), 'tls1.0') e.addItem(_('TLS 1.1'), 'tls1.1') e.addItem(_('TLS 1.2'), 'tls1.2') protocol = repo.ui.config(b'hostsecurity', b'%s:minimumprotocol' % u.host) e.setCurrentIndex(e.findData(hglib.tounicode(protocol or b''))) hbox = QHBoxLayout() hbox.addWidget(QLabel(_('Minimum Protocol'))) hbox.addWidget(self._protocolcombo) vbox.addLayout(hbox) self._authentries = {} authbox = QGroupBox(_('User Authentication')) form = QFormLayout() authbox.setLayout(form) self.layout().addWidget(authbox) k = b'username' c = hglib.tounicode(u.user or auth.get(k, b'')) self._authentries[k] = e = QLineEdit(c) e.setToolTip( _('''Optional. Username to authenticate with. If not given, and the remote site requires basic or digest authentication, the user will be prompted for it. Environment variables are expanded in the username letting you do foo.username = $USER.''')) form.addRow(_('Username'), e) k = b'password' c = hglib.tounicode(u.passwd or auth.get(k, b'')) self._authentries[k] = e = QLineEdit(c) e.setEchoMode(QLineEdit.EchoMode.Password) e.setToolTip( _('''Optional. Password to authenticate with. If not given, and the remote site requires basic or digest authentication, the user will be prompted for it.''')) form.addRow(_('Password'), e) if b'mercurial_keyring' in repo.extensions(): e.clear() e.setEnabled(False) e.setToolTip(_('Mercurial keyring extension is enabled. ' 'Passwords will be stored in a platform-native ' 'secure method.')) k = b'key' c = hglib.tounicode(auth.get(k, b'')) self._authentries[k] = e = QLineEdit(c) e.setToolTip( _('''Optional. PEM encoded client certificate key file. Environment variables are expanded in the filename.''')) form.addRow(_('User Certificate Key'), _addBrowseButton(e, self._browseClientKey)) k = b'cert' c = hglib.tounicode(auth.get(k, b'')) self._authentries[k] = e = QLineEdit(c) e.setToolTip( _('''Optional. PEM encoded client certificate chain file. Environment variables are expanded in the filename.''')) form.addRow(_('User Certificate Chain'), _addBrowseButton(e, self._browseClientCert)) bb = QDialogButtonBox(QDialogButtonBox.StandardButton.Help|QDialogButtonBox.StandardButton.Save|QDialogButtonBox.StandardButton.Cancel) bb.rejected.connect(self.reject) bb.accepted.connect(self.accept) bb.helpRequested.connect(self.keyringHelp) self.bb = bb self.layout().addWidget(bb) self._updateUi() e = self._authentries[b'username'] e.selectAll() QTimer.singleShot(0, e.setFocus) @pyqtSlot() def _queryFingerprint(self): cmdline = hglib.buildcmdargs('debuggethostfingerprint', self._url, insecure=True) self._querysess = sess = self._repoagent.runCommand(cmdline, self) sess.setCaptureOutput(True) sess.commandFinished.connect(self._onQueryFingerprintFinished) self._updateUi() @pyqtSlot(int) def _onQueryFingerprintFinished(self, ret): sess = self._querysess if ret == 0: data = bytes(sess.readAll()) self.fprintentry.setText(hglib.tounicode(data).strip()) else: cmdui.errorMessageBox(sess, self, _('Certificate Query Error')) self._updateUi() def keyringHelp(self): qtlib.openhelpcontents('sync.html#security') @pyqtSlot() def _browseClientKey(self): e = self._authentries[b'key'] n, _f = QFileDialog.getOpenFileName( self, _('Select User Certificate Key File'), e.text(), ';;'.join([_('PEM files (*.pem *.key)'), _('All files (*)')])) if n: e.setText(n) @pyqtSlot() def _browseClientCert(self): e = self._authentries[b'cert'] n, _f = QFileDialog.getOpenFileName( self, _('Select User Certificate Chain File'), e.text(), ';;'.join([_('PEM files (*.pem *.crt *.cer)'), _('All files (*)')])) if n: e.setText(n) def accept(self): path = hglib.userrcpath() fn, cfg = hgrcutil.loadIniFile(path, self) if not hasattr(cfg, 'write'): qtlib.WarningMsgBox(_('Unable to save authentication'), _('Iniparse must be installed.'), parent=self) return if fn is None: return def setorclear(section: bytes, item: bytes, value: Optional[bytes]) -> None: if value: cfg.set(section, item, value) elif not value and item in cfg[section]: del cfg[section][item] if self.cacertradio.isChecked(): fprint = None insecure = None elif self.fprintradio.isChecked(): fprint = hglib.fromunicode(self.fprintentry.text()) insecure = None else: fprint = None insecure = b'1' setorclear(b'hostsecurity', b'%s:fingerprints' % self.host, fprint) setorclear(b'insecurehosts', self.host, insecure) e = self._protocolcombo protocol = hglib.fromunicode(e.itemData(e.currentIndex())) setorclear(b'hostsecurity', b'%s:minimumprotocol' % self.host, protocol) cfg.set(b'auth', b'%s.prefix' % self.alias, self.host) for k in [b'username', b'password', b'key', b'cert']: setorclear(b'auth', b'%s.%s' % (self.alias, k), hglib.fromunicode(self._authentries[k].text())) setorclear(b'auth', b'%s.schemes' % self.alias, self.schemes) try: wconfig.writefile(cfg, fn) self._repoagent.pollStatus() except EnvironmentError as e: qtlib.WarningMsgBox(_('Unable to write configuration file'), hglib.exception_str(e), parent=self) super(SecureDialog, self).accept() @pyqtSlot() def _updateUi(self): self._querybutton.setEnabled(self.fprintradio.isChecked() and self._querysess.isFinished()) self._protocolcombo.setEnabled(not self.insecureradio.isChecked()) class PathsTree(QTreeView): removeAlias = pyqtSignal(str) menuRequest = pyqtSignal(QPoint, str, str, bool) def __init__(self, parent, editable): QTreeView.__init__(self, parent) self.setDragDropMode(QTreeView.DragDropMode.DragOnly) self.setSelectionMode(QTreeView.SelectionMode.SingleSelection) self.editable = editable def contextMenuEvent(self, event): for index in self.selectedRows(): alias = index.data(Qt.ItemDataRole.DisplayRole) url = index.sibling(index.row(), 1).data(Qt.ItemDataRole.DisplayRole) self.menuRequest.emit(event.globalPos(), url, alias, self.editable) return def keyPressEvent(self, event): if self.editable and event.matches(QKeySequence.StandardKey.Delete): self.deleteSelected() else: return super(PathsTree, self).keyPressEvent(event) def deleteSelected(self): for index in self.selectedRows(): alias = index.data(Qt.ItemDataRole.DisplayRole) r = qtlib.QuestionMsgBox(_('Confirm path delete'), _('Delete %s from your repo configuration file?') % alias, parent=self) if r: self.removeAlias.emit(alias) def selectedRows(self): return self.selectionModel().selectedRows() class PathsModel(QAbstractTableModel): def __init__(self, pathlist: Iterable[Tuple[bytes, bytes]], parent: Optional[QWidget] = None) -> None: QAbstractTableModel.__init__(self, parent) self.headers = (_('Alias'), _('URL')) self.rows = [] for alias, path in sorted(pathlist): safepath = urlutil.hidepassword(path) ualias = hglib.tounicode(alias) usafepath = hglib.tounicode(safepath) self.rows.append([ualias, usafepath, path]) def rowCount(self, parent=QModelIndex()): if parent.isValid(): return 0 # no child return len(self.rows) def columnCount(self, parent=QModelIndex()): if parent.isValid(): return 0 # no child return len(self.headers) def data(self, index, role=Qt.ItemDataRole.DisplayRole): if not index.isValid(): return None if role == Qt.ItemDataRole.DisplayRole: return self.rows[index.row()][index.column()] return None def headerData(self, col, orientation, role=Qt.ItemDataRole.DisplayRole): if role != Qt.ItemDataRole.DisplayRole or orientation != Qt.Orientation.Horizontal: return None else: return self.headers[col] def mimeData(self, indexes): urls = [] for i in indexes: u = QUrl() u.setPath(self.rows[i.row()][1]) urls.append(u) m = QMimeData() m.setUrls(urls) return m def mimeTypes(self): return ['text/uri-list'] def flags(self, index): flags = Qt.ItemFlag.ItemIsSelectable | Qt.ItemFlag.ItemIsEnabled | Qt.ItemFlag.ItemIsDragEnabled return flags def realUrl(self, index): return self.rows[index.row()][2] class OptionsDialog(QDialog): 'Utility dialog for configuring uncommon options' def __init__(self, repoagent: thgrepo.RepoAgent, opts: Dict[str, bytes], parent: QWidget) -> None: QDialog.__init__(self, parent) self.setWindowTitle(_('%s - sync options') % repoagent.displayName()) layout = QVBoxLayout() self.setLayout(layout) self.newbranchcb = QCheckBox( _('Allow push of a new branch (--new-branch)')) self.newbranchcb.setChecked(opts.get('new-branch', False)) layout.addWidget(self.newbranchcb) self.forcecb = QCheckBox( _('Force push or pull (override safety checks, --force)')) self.forcecb.setChecked(opts.get('force', False)) layout.addWidget(self.forcecb) repo = repoagent.rawRepo() self.noproxycb = QCheckBox( _('Temporarily disable configured HTTP proxy')) self.noproxycb.setChecked(opts.get('noproxy', False)) layout.addWidget(self.noproxycb) proxy = repoagent.configString('http_proxy', 'host') self.noproxycb.setEnabled(bool(proxy)) self.debugcb = QCheckBox( _('Emit debugging output (--debug)')) self.debugcb.setChecked(opts.get('debug', False)) layout.addWidget(self.debugcb) self.mqcb = QCheckBox(_('Work on patch queue (--mq)')) self.mqcb.setChecked(opts.get('mq', False)) self.mqcb.setVisible(b'mq' in repo.extensions()) layout.addWidget(self.mqcb) form = QFormLayout() layout.addLayout(form) lbl = QLabel(_('Remote command:')) self.remotele = QLineEdit() if opts.get('remotecmd'): self.remotele.setText(hglib.tounicode(opts['remotecmd'])) form.addRow(lbl, self.remotele) lbl = QLabel(_('Branch:')) self.branchle = QLineEdit() if opts.get('branch'): self.branchle.setText(hglib.tounicode(opts['branch'])) form.addRow(lbl, self.branchle) bb = QDialogButtonBox(QDialogButtonBox.StandardButton.Save|QDialogButtonBox.StandardButton.Cancel) bb.accepted.connect(self.accept) bb.rejected.connect(self.reject) self.bb = bb layout.addWidget(bb) def accept(self): outopts: Dict[str, Union[bool, bytes]] = {} for name, le in (('remotecmd', self.remotele), ('branch', self.branchle)): outopts[name] = hglib.fromunicode(le.text()).strip() outopts['force'] = self.forcecb.isChecked() outopts['new-branch'] = self.newbranchcb.isChecked() outopts['noproxy'] = self.noproxycb.isChecked() outopts['debug'] = self.debugcb.isChecked() if self.mqcb.isVisibleTo(self): outopts['mq'] = self.mqcb.isChecked() self.outopts = outopts QDialog.accept(self) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730809007.0 tortoisehg-6.9/tortoisehg/hgqt/tag.py0000644000000000000000000002753114712406257016614 0ustar00rootroot# tag.py - Tag dialog for TortoiseHg # # Copyright 2010 Yuki KODAMA # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations from .qtcore import ( Qt, pyqtSlot, ) from .qtgui import ( QCheckBox, QComboBox, QDialog, QDialogButtonBox, QFormLayout, QFrame, QHBoxLayout, QLabel, QLayout, QLineEdit, QSizePolicy, QVBoxLayout, QWidget, ) from ..util import ( hglib, i18n, ) from ..util.i18n import _ from . import ( cmdcore, qtlib, ) if hglib.TYPE_CHECKING: from typing import ( Dict, Optional, Text, Union, ) from .qtgui import ( QIcon, ) from .thgrepo import ( RepoAgent, ) keep = i18n.keepgettext() class TagDialog(QDialog): rev: int def __init__(self, repoagent: RepoAgent, tag: bytes = b'', rev: Text = 'tip', parent: Optional[QWidget] = None, opts: Optional[Dict[Text, Union[bool, bytes]]] = None) -> None: super(TagDialog, self).__init__(parent) if opts is None: opts = {} self.setWindowFlags(self.windowFlags() & ~Qt.WindowType.WindowContextHelpButtonHint) self._repoagent = repoagent self._cmdsession = cmdcore.nullCmdSession() self.setWindowTitle(_('Tag - %s') % repoagent.displayName()) self.setWindowIcon(qtlib.geticon('hg-tag')) # base layout box base = QVBoxLayout() base.setSpacing(0) base.setContentsMargins(0, 0, 0, 0) base.setSizeConstraint(QLayout.SizeConstraint.SetMinAndMaxSize) self.setLayout(base) formwidget = QWidget(self) formwidget.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed) form = QFormLayout(fieldGrowthPolicy=QFormLayout.FieldGrowthPolicy.AllNonFixedFieldsGrow) formwidget.setLayout(form) base.addWidget(formwidget) repo = repoagent.rawRepo() ctx = hglib.revsymbol(repo, hglib.fromunicode(rev)) form.addRow(_('Revision:'), QLabel('%d (%s)' % (ctx.rev(), ctx))) self.rev = ctx.rev() ### tag combo self.tagCombo = QComboBox() self.tagCombo.setEditable(True) self.tagCombo.setEditText(hglib.tounicode(tag)) self.tagCombo.setMinimumContentsLength(30) # cut long name self.tagCombo.currentIndexChanged.connect(self.updateStates) self.tagCombo.editTextChanged.connect(self.updateStates) qtlib.allowCaseChangingInput(self.tagCombo) form.addRow(_('Tag:'), self.tagCombo) self.tagRevLabel = QLabel('') form.addRow(_('Tagged:'), self.tagRevLabel) ### options expander = qtlib.ExpanderLabel(_('Options'), False) expander.expanded.connect(self.show_options) optbox = QVBoxLayout() optbox.setSpacing(6) form.addRow(expander, optbox) hbox = QHBoxLayout() hbox.setSpacing(0) optbox.addLayout(hbox) self.localCheckBox = QCheckBox(_('Local tag')) self.localCheckBox.toggled.connect(self.updateStates) self.replaceCheckBox = QCheckBox(_('Replace existing tag (-f/--force)')) self.replaceCheckBox.toggled.connect(self.updateStates) optbox.addWidget(self.localCheckBox) optbox.addWidget(self.replaceCheckBox) self.englishCheckBox = QCheckBox(_('Use English commit message')) engmsg = repoagent.configBool('tortoisehg', 'engmsg') self.englishCheckBox.setChecked(engmsg) optbox.addWidget(self.englishCheckBox) self.customCheckBox = QCheckBox(_('Use custom commit message:')) self.customCheckBox.toggled.connect(self.customMessageToggle) self.customTextLineEdit = QLineEdit() optbox.addWidget(self.customCheckBox) optbox.addWidget(self.customTextLineEdit) ## bottom buttons bbox = QDialogButtonBox(QDialogButtonBox.StandardButton.Close) bbox.rejected.connect(self.reject) self.addBtn = bbox.addButton(_('&Add'), QDialogButtonBox.ButtonRole.ActionRole) self.removeBtn = bbox.addButton(_('&Remove'), QDialogButtonBox.ButtonRole.ActionRole) form.addRow(bbox) self.addBtn.setDefault(True) self.addBtn.clicked.connect(self.onAddTag) self.removeBtn.clicked.connect(self.onRemoveTag) ## horizontal separator self.sep = QFrame() self.sep.setFrameShadow(QFrame.Shadow.Sunken) self.sep.setFrameShape(QFrame.Shape.HLine) base.addWidget(self.sep) ## status line self.status = qtlib.StatusLabel() self.status.setContentsMargins(4, 2, 4, 4) base.addWidget(self.status) self._finishmsg = None repoagent.repositoryChanged.connect(self.refresh) self.customTextLineEdit.setDisabled(True) self.replaceCheckBox.setChecked(bool(opts.get('force'))) self.localCheckBox.setChecked(bool(opts.get('local'))) if not opts.get('local') and opts.get('message'): msg = hglib.tounicode(opts['message']) self.customCheckBox.setChecked(True) self.customTextLineEdit.setText(msg) self.clear_status() self.show_options(False) self.tagCombo.setFocus() self.refresh() @property def repo(self): return self._repoagent.rawRepo() @pyqtSlot() def refresh(self) -> None: """ update display on dialog with recent repo data """ cur = self.tagCombo.currentText() self.tagCombo.clear() for tag in sorted(self.repo.tags(), reverse=True): if tag in (b'tip', b'qbase', b'qtip', b'qparent'): continue self.tagCombo.addItem(hglib.tounicode(tag)) if cur: self.tagCombo.setEditText(cur) else: self.tagCombo.clearEditText() self.updateStates() @pyqtSlot() def updateStates(self) -> None: """ update bottom button sensitives based on rev and tag """ tagu = self.tagCombo.currentText() tag = hglib.fromunicode(tagu) # check tag existence if tag: exists = tag in self.repo.tags() if exists: tagtype = self.repo.tagtype(tag) islocal = b'local' == tagtype try: ctx = self.repo[self.repo.tags()[tag]] trev: int = ctx.rev() thash = str(ctx) except: trev, thash, local = 0, '????????', '' self.localCheckBox.setChecked(islocal) self.localCheckBox.setEnabled(False) local = islocal and _('local') or '' self.tagRevLabel.setText('%d (%s) %s' % (trev, thash, local)) samerev = trev == self.rev else: islocal = self.localCheckBox.isChecked() self.localCheckBox.setEnabled(True) self.tagRevLabel.clear() force = self.replaceCheckBox.isChecked() custom = self.customCheckBox.isChecked() self.addBtn.setEnabled(not exists or (force and not samerev)) if exists and not samerev: self.addBtn.setText(_('Move')) else: self.addBtn.setText(_('Add')) self.removeBtn.setEnabled(exists) self.englishCheckBox.setEnabled(not islocal) self.customCheckBox.setEnabled(not islocal) self.customTextLineEdit.setEnabled(not islocal and custom) else: self.addBtn.setEnabled(False) self.removeBtn.setEnabled(False) self.localCheckBox.setEnabled(False) self.englishCheckBox.setEnabled(False) self.customCheckBox.setEnabled(False) self.customTextLineEdit.setEnabled(False) self.tagRevLabel.clear() def customMessageToggle(self, checked: bool) -> None: self.customTextLineEdit.setEnabled(checked) if checked: self.customTextLineEdit.setFocus() def show_options(self, visible: bool) -> None: self.localCheckBox.setVisible(visible) self.replaceCheckBox.setVisible(visible) self.englishCheckBox.setVisible(visible) self.customCheckBox.setVisible(visible) self.customTextLineEdit.setVisible(visible) def set_status(self, text: Text, icon: Optional[Union[bool, Text, QIcon]]) -> None: self.status.setVisible(True) self.sep.setVisible(True) self.status.set_status(text, icon) def clear_status(self) -> None: self.status.setHidden(True) self.sep.setHidden(True) def _runTag(self, tagname: Text, **opts) -> None: if not self._cmdsession.isFinished(): self.set_status(_('Repository command still running'), False) return self._finishmsg = opts.pop('finishmsg') cmdline = hglib.buildcmdargs('tag', tagname, **opts) self._cmdsession = sess = self._repoagent.runCommand(cmdline, self) sess.commandFinished.connect(self._onTagFinished) @pyqtSlot(int) def _onTagFinished(self, ret: int) -> None: if ret == 0: self.set_status(self._finishmsg, True) else: self.set_status(self._cmdsession.errorString(), False) def onAddTag(self) -> None: tagu = self.tagCombo.currentText() tag = hglib.fromunicode(tagu) local = self.localCheckBox.isChecked() force = self.replaceCheckBox.isChecked() english = self.englishCheckBox.isChecked() if self.customCheckBox.isChecked() and not local: message = self.customTextLineEdit.text() else: message = None exists = tag in self.repo.tags() if not local: if not message: ctx = self.repo[self.rev] if exists: origctx = self.repo[self.repo.tags()[tag]] msgset = keep._('Moved tag %s to changeset %s' ' (from changeset %s)') message = ((english and msgset['id'] or msgset['str']) % (tagu, str(ctx), str(origctx))) else: msgset = keep._('Added tag %s for changeset %s') message = ((english and msgset['id'] or msgset['str']) % (tagu, str(ctx))) if exists: finishmsg = _("Tag '%s' has been moved") % tagu else: finishmsg = _("Tag '%s' has been added") % tagu user = qtlib.getCurrentUsername(self, self.repo) if not user: return self._runTag(tagu, rev=self.rev, user=user, local=local, force=force, message=message, finishmsg=finishmsg) def onRemoveTag(self) -> None: tagu = self.tagCombo.currentText() local = self.localCheckBox.isChecked() force = self.replaceCheckBox.isChecked() english = self.englishCheckBox.isChecked() if self.customCheckBox.isChecked() and not local: message = self.customTextLineEdit.text() else: message = None if not local: if not message: msgset = keep._('Removed tag %s') message = (english and msgset['id'] or msgset['str']) % tagu finishmsg = _("Tag '%s' has been removed") % tagu self._runTag(tagu, remove=True, local=local, force=force, message=message, finishmsg=finishmsg) def reject(self) -> None: if not self._cmdsession.isFinished(): self.set_status(_('Repository command still running'), False) return super(TagDialog, self).reject() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1736945585.0 tortoisehg-6.9/tortoisehg/hgqt/thgimport.py0000644000000000000000000002521614741727661020063 0ustar00rootroot# thgimport.py - Import dialog for TortoiseHg # # Copyright 2009 Yuki KODAMA # Copyright 2010 David Wilhelm # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os import shutil import tempfile from .qtcore import ( QDir, QTimer, Qt, pyqtSlot, ) from .qtgui import ( QApplication, QCheckBox, QComboBox, QDialog, QDialogButtonBox, QFileDialog, QGridLayout, QHBoxLayout, QKeySequence, QLabel, QPushButton, QVBoxLayout, ) from mercurial import ( pycompat, ) from ..util import hglib from ..util.i18n import _ from . import ( cmdui, commit, cslist, qtlib, ) _FILE_FILTER = "%s;;%s" % (_("Patch files (*.diff *.patch)"), _("All files (*)")) def _writetempfile(text: bytes) -> str: fd, filename = tempfile.mkstemp(suffix=b'.patch', prefix=b'thg-import-', dir=qtlib.gettempdir()) try: os.write(fd, text) finally: os.close(fd) return hglib.tounicode(filename) # TODO: handle --mq options from command line or MQ widget class ImportDialog(QDialog): """Dialog to import patches""" def __init__(self, repoagent, parent, **opts): super(ImportDialog, self).__init__(parent) self.setWindowFlags(self.windowFlags() & ~Qt.WindowType.WindowContextHelpButtonHint | Qt.WindowType.WindowMaximizeButtonHint) self.setWindowTitle(_('Import - %s') % repoagent.displayName()) self.setWindowIcon(qtlib.geticon('hg-import')) self._repoagent = repoagent # base layout box box = QVBoxLayout() box.setSpacing(6) self.setLayout(box) ## main layout grid self.grid = grid = QGridLayout() grid.setSpacing(6) box.addLayout(grid, 1) ### source input self.src_combo = QComboBox() self.src_combo.setEditable(True) self.src_combo.setMinimumWidth(310) self.file_btn = QPushButton(_('Browse...')) self.file_btn.setAutoDefault(False) self.file_btn.clicked.connect(self.browsefiles) self.dir_btn = QPushButton(_('Browse Directory...')) self.dir_btn.setAutoDefault(False) self.dir_btn.clicked.connect(self.browsedir) self.clip_btn = QPushButton(_('Import from Clipboard')) self.clip_btn.setAutoDefault(False) self.clip_btn.clicked.connect(self.getcliptext) grid.addWidget(QLabel(_('Source:')), 0, 0) grid.addWidget(self.src_combo, 0, 1) srcbox = QHBoxLayout() srcbox.addWidget(self.file_btn) srcbox.addWidget(self.dir_btn) srcbox.addWidget(self.clip_btn) grid.addLayout(srcbox, 1, 1) self.p0chk = QCheckBox(_('Do not strip paths (-p0), ' 'required for SVN patches')) grid.addWidget(self.p0chk, 2, 1, Qt.AlignmentFlag.AlignLeft) ### patch list self.cslist = cslist.ChangesetList(self.repo) cslistrow = 4 cslistcol = 1 grid.addWidget(self.cslist, cslistrow, cslistcol) grid.addWidget(QLabel(_('Preview:')), 3, 0, Qt.AlignmentFlag.AlignLeft | Qt.AlignmentFlag.AlignTop) statbox = QHBoxLayout() self.status = QLabel("") statbox.addWidget(self.status) self.targetcombo = QComboBox() self.targetcombo.addItem(_('Repository'), ('import',)) self.targetcombo.addItem(_('Shelf'), ('copy',)) self.targetcombo.addItem(_('Working Directory'), ('import', '--no-commit')) cur = self.repo.thgactivemqname if cur: self.targetcombo.addItem(hglib.tounicode(cur), ('qimport',)) self.targetcombo.currentIndexChanged.connect(self._updatep0chk) statbox.addWidget(self.targetcombo) grid.addLayout(statbox, 3, 1) ## command widget self._cmdcontrol = cmd = cmdui.CmdSessionControlWidget(self) cmd.finished.connect(self.done) cmd.linkActivated.connect(self.commitActivated) box.addWidget(cmd) cmd.showStatusMessage(_('Checking working directory status...')) QTimer.singleShot(0, self.checkStatus) self._runbutton = cmd.addButton(_('&Import'), QDialogButtonBox.ButtonRole.AcceptRole) self._runbutton.clicked.connect(self._runCommand) grid.setRowStretch(cslistrow, 1) grid.setColumnStretch(cslistcol, 1) # signal handlers self.src_combo.editTextChanged.connect(self.preview) self.p0chk.toggled.connect(self.preview) # prepare to show self.src_combo.lineEdit().selectAll() self._updatep0chk() self.preview() ### Private Methods ### @property def repo(self): return self._repoagent.rawRepo() def commitActivated(self): dlg = commit.CommitDialog(self._repoagent, [], {}, self) dlg.finished.connect(dlg.deleteLater) dlg.exec() self.checkStatus() def checkStatus(self): self.repo.invalidatedirstate() wctx = self.repo[None] status = wctx.status() if status.modified or status.added or status.removed: text = _('Working directory is not clean! ' 'View changes...') self._cmdcontrol.showStatusMessage(text) else: self._cmdcontrol.showStatusMessage('') def keyPressEvent(self, event): if event.matches(QKeySequence.StandardKey.Refresh): self.checkStatus() else: return super(ImportDialog, self).keyPressEvent(event) def browsefiles(self): caption = _("Select patches") filelist, _filter = QFileDialog.getOpenFileNames( self, caption, self._repoagent.rootPath(), _FILE_FILTER) if filelist: # Qt file browser uses '/' in paths, even on Windows. nl = [QDir.toNativeSeparators(x) for x in filelist] self.src_combo.setEditText(os.pathsep.join(nl)) self.src_combo.setFocus() def browsedir(self): caption = _("Select Directory containing patches") path = QFileDialog.getExistingDirectory(self, caption, self._repoagent.rootPath()) if path: self.src_combo.setEditText(QDir.toNativeSeparators(path)) self.src_combo.setFocus() def getcliptext(self): mdata = QApplication.clipboard().mimeData() if mdata.hasFormat('text/x-diff'): # lossless text = bytes(mdata.data('text/x-diff')) elif mdata.hasText(): # could be encoding damaged text = hglib.fromunicode(mdata.text(), errors='ignore') else: return filename = _writetempfile(text) curtext = self.src_combo.currentText() if curtext: self.src_combo.setEditText(curtext + os.pathsep + filename) else: self.src_combo.setEditText(filename) def _targetcommand(self): index = self.targetcombo.currentIndex() return self.targetcombo.itemData(index) @pyqtSlot() def _updatep0chk(self): cmd = self._targetcommand()[0] self.p0chk.setEnabled(cmd == 'import') if not self.p0chk.isEnabled(): self.p0chk.setChecked(False) def updatestatus(self): items = self.cslist.curitems count = items and len(items) or 0 countstr = qtlib.markup(_("%s patches") % count, weight='bold') if count: self.targetcombo.setVisible(True) text = _('%s will be imported to ') % countstr else: self.targetcombo.setVisible(False) text = qtlib.markup(_('Nothing to import'), weight='bold', fg='red') self.status.setText(text) def preview(self): patches = self.getfilepaths() if not patches: self.cslist.clear() else: self.cslist.updateItems([os.path.abspath(p) for p in patches]) self.updatestatus() self._updateUi() def getfilepaths(self): # TODO: maybe better to process things in unicode src = hglib.fromunicode(self.src_combo.currentText()) if not src: return [] files = [] for path in src.split(pycompat.ospathsep): path = path.strip(b'\r\n\t ') if not os.path.exists(path) or path in files: continue if os.path.isfile(path): files.append(path) elif os.path.isdir(path): entries = os.listdir(path) for entry in sorted(entries): _file = os.path.join(path, entry) if os.path.isfile(_file) and not _file in files: files.append(_file) return files def setfilepaths(self, paths): """Set file paths of patches to import; paths is in locale encoding""" self.src_combo.setEditText( os.pathsep.join(hglib.tounicode(p) for p in paths)) @pyqtSlot() def _runCommand(self): if self.cslist.curitems is None: return cmdline = pycompat.maplist(str, self._targetcommand()) if cmdline == ['copy']: # import to shelf self.repo.thgshelves() # initialize repo.shelfdir if not os.path.exists(self.repo.shelfdir): os.mkdir(self.repo.shelfdir) for file in self.cslist.curitems: shutil.copy(file, self.repo.shelfdir) return if self.p0chk.isChecked(): cmdline.append('-p0') cmdline.extend(['--verbose', '--']) cmdline.extend(pycompat.maplist(hglib.tounicode, self.cslist.curitems)) sess = self._repoagent.runCommand(cmdline, self) self._cmdcontrol.setSession(sess) sess.commandFinished.connect(self._onCommandFinished) self._updateUi() @pyqtSlot(int) def _onCommandFinished(self, ret): self._updateUi() if ret == 0: self._runbutton.hide() self._cmdcontrol.setFocusToCloseButton() elif not self._cmdcontrol.session().isAborted(): cmdui.errorMessageBox(self._cmdcontrol.session(), self) if ret == 0 and not self._cmdcontrol.isLogVisible(): self._cmdcontrol.reject() def reject(self): self._cmdcontrol.reject() def _updateUi(self): self._runbutton.setEnabled(bool(self.getfilepaths()) and self._cmdcontrol.session().isFinished()) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730809007.0 tortoisehg-6.9/tortoisehg/hgqt/thgrepo.py0000644000000000000000000013105514712406257017506 0ustar00rootroot# thgrepo.py - TortoiseHg additions to key Mercurial classes # # Copyright 2010 George Marrows # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. # # See mercurial/extensions.py, comments to wrapfunction, for this approach # to extending repositories and change contexts. from __future__ import annotations import os import sys import shutil import tempfile import re import time from .qtcore import ( QFile, QFileSystemWatcher, QIODevice, QObject, QSignalMapper, pyqtSignal, pyqtSlot, ) from hgext import mq from mercurial import ( bundlerepo, error, extensions, filemerge, hg, localrepo, node, pycompat, subrepo, ) from ..util import ( hglib, paths, ) from ..util.patchctx import patchctx from . import ( cmdcore, hgconfig, qtlib, ) if hglib.TYPE_CHECKING: from typing import ( List, Optional, Text, Tuple, Union, ) from .qtgui import ( QWidget, ) _repocache = {} _kbfregex = re.compile(br'^\.kbf/') _lfregex = re.compile(br'^\.hglf/') # thgrepo.repository() will be deprecated def repository(_ui=None, path=b''): """Returns a subclassed Mercurial repository to which new THG-specific methods have been added. The repository object is obtained using mercurial.hg.repository()""" assert isinstance(path, bytes), repr(path) if path not in _repocache: if _ui is None: _ui = hglib.loadui() try: repo = hg.repository(_ui, path) repo = repo.unfiltered() repo.__class__ = _extendrepo(repo) repo = repo.filtered(b'visible') agent = RepoAgent(repo) _repocache[path] = agent.rawRepo() return agent.rawRepo() except EnvironmentError: raise error.RepoError(b'Cannot open repository at %s' % path) if not os.path.exists(os.path.join(path, b'.hg/')): del _repocache[path] raise error.RepoError(b'%s is not a valid repository' % path) return _repocache[path] def _filteredrepo(repo, hiddenincluded): if hiddenincluded: return repo.unfiltered() else: return repo.filtered(b'visible') # flags describing changes that could occur in repository LogChanged = 0x1 WorkingParentChanged = 0x2 WorkingBranchChanged = 0x4 WorkingStateChanged = 0x8 # internal flag to invalidate dirstate cache _PollDeferred = 0x1 # flag to defer polling _PollFsChangesPending = 0x2 _PollStatusPending = 0x4 class RepoWatcher(QObject): """Notify changes of repository by optionally monitoring filesystem""" configChanged = pyqtSignal() repositoryChanged = pyqtSignal(int) repositoryDestroyed = pyqtSignal() def __init__(self, repo, parent=None): super(RepoWatcher, self).__init__(parent) self._repo = repo self._ui = repo.ui self._fswatcher = None self._deferredpoll = 0 # _Poll* flags self._filesmap = {} # path: (flag, watched) self._datamap = {} # readmeth: (flag, dep-path) self._laststats = {} # path: (size, ctime, mtime) self._lastdata = {} # readmeth: content self._fixState() self._uimtime = time.time() def startMonitoring(self): """Start filesystem monitoring to notify changes automatically""" if not self._fswatcher: self._fswatcher = QFileSystemWatcher(self) self._fswatcher.directoryChanged.connect(self._onFsChanged) self._fswatcher.fileChanged.connect(self._onFsChanged) self._fswatcher.addPath(hglib.tounicode(self._repo.path)) self._fswatcher.addPath(hglib.tounicode(self._repo.spath)) self._addMissingPaths() self._fswatcher.blockSignals(False) def stopMonitoring(self): """Stop filesystem monitoring by removing all watched paths This will release OS resources held by filesystem watcher, so good for disabling change notification for a long time. """ if not self._fswatcher: return self._fswatcher.blockSignals(True) # ignore pending events dirs = self._fswatcher.directories() if dirs: self._fswatcher.removePaths(dirs) files = self._fswatcher.files() if files: self._fswatcher.removePaths(files) # QTBUG-32917: On Windows, removePaths() fails to remove ".hg" and # ".hg/store" from the list, but actually they are not watched. # Thus, they cannot be watched again by the same fswatcher instance. if self._fswatcher.directories() or self._fswatcher.files(): self._ui.debug(b'failed to remove paths - destroying watcher\n') self._fswatcher.setParent(None) self._fswatcher = None def isMonitoring(self): """True if filesystem monitor is running""" if not self._fswatcher: return False return not self._fswatcher.signalsBlocked() def resumeStatusPolling(self): """Execute deferred status checks to emit notification signals""" self._deferredpoll &= ~_PollDeferred if self._deferredpoll & _PollFsChangesPending: self._pollFsChanges() self._deferredpoll &= ~(_PollFsChangesPending | _PollStatusPending) if self._deferredpoll & _PollStatusPending: self._pollStatus() self._deferredpoll &= ~_PollStatusPending def suspendStatusPolling(self): """Defer status checks until resumed Resuming from suspended state should be cheaper, but no OS resources will be released. This is good for short-time suspend. """ self._deferredpoll |= _PollDeferred @pyqtSlot() def _onFsChanged(self): if self._deferredpoll: self._ui.debug(b'filesystem change detected, but poll deferred\n') self._deferredpoll |= _PollFsChangesPending return self._pollFsChanges() def _pollFsChanges(self): """Catch writes or deletions of files, or writes to .hg/ folder, most importantly lock files""" self._pollStatus() # filesystem monitor may be stopped inside _pollStatus() if self.isMonitoring(): self._addMissingPaths() def _addMissingPaths(self): """Add files to watcher that may have been added or replaced""" existing = [f for f, (_flag, watched) in self._filesmap.items() if watched and f in self._laststats] files = [pycompat.unicode(f) for f in self._fswatcher.files()] for f in existing: if hglib.tounicode(f) not in files: self._ui.debug(b'add file to watcher: %s\n' % f) self._fswatcher.addPath(hglib.tounicode(f)) for f in self._repo.uifiles(): if f and os.path.exists(f) and hglib.tounicode(f) not in files: self._ui.debug(b'add ui file to watcher: %s\n' % f) self._fswatcher.addPath(hglib.tounicode(f)) def clearStatus(self): self._laststats.clear() self._lastdata.clear() def pollStatus(self): if self._deferredpoll: self._ui.debug(b'poll request deferred\n') self._deferredpoll |= _PollStatusPending return self._pollStatus() def _pollStatus(self): if not os.path.exists(self._repo.path): self._ui.debug(b'repository destroyed: %s\n' % self._repo.root) self.repositoryDestroyed.emit() return if self._locked(): self._ui.debug(b'locked, aborting\n') return curstats, curdata = self._readState() changeflags = self._calculateChangeFlags(curstats, curdata) if self._locked(): self._ui.debug(b'lock still held - ignoring for now\n') return self._laststats = curstats self._lastdata = curdata if changeflags: self._ui.debug(b'change found (flags = 0x%x)\n' % changeflags) self.repositoryChanged.emit(changeflags) # may update repo paths self._fixState() self._checkuimtime() def _locked(self): if os.path.lexists(self._repo.vfs.join(b'wlock')): return True if os.path.lexists(self._repo.svfs.join(b'lock')): return True return False def _fixState(self): """Update paths to be checked and record state of new paths""" repo = self._repo newfilesmap = { repo.vfs.join(b'bookmarks'): (LogChanged, False), repo.vfs.join(b'bookmarks.current'): (LogChanged, False), repo.vfs.join(b'branch'): (0, False), repo.vfs.join(b'topic'): (LogChanged, False), repo.vfs.join(b'dirstate'): (WorkingStateChanged, False), repo.vfs.join(b'localtags'): (LogChanged, False), repo.svfs.join(b'00changelog.i'): (LogChanged, False), repo.svfs.join(b'obsstore'): (LogChanged, False), repo.svfs.join(b'phaseroots'): (LogChanged, False), } q = getattr(repo, 'mq', None) if q: newfilesmap.update({ q.join(b'guards'): (LogChanged, True), q.join(b'series'): (LogChanged, True), q.join(b'status'): (LogChanged, True), repo.vfs.join(b'patches.queue'): (LogChanged, True), repo.vfs.join(b'patches.queues'): (LogChanged, True), }) newpaths = set(newfilesmap) - set(self._filesmap) if not newpaths: return self._filesmap = newfilesmap self._datamap = { RepoWatcher._readbranch: (WorkingBranchChanged, repo.vfs.join(b'branch')), RepoWatcher._readparents: (WorkingParentChanged, repo.vfs.join(b'dirstate')), } newstats, newdata = self._readState(newpaths) self._laststats.update(newstats) self._lastdata.update(newdata) def _readState(self, targetpaths=None): if targetpaths is None: targetpaths = self._filesmap curstats = {} for path in targetpaths: try: # see mercurial.util.filestat for details what attributes # are needed an how ambiguity is resolved st = os.stat(path) curstats[path] = (st.st_size, st.st_ctime, st.st_mtime) except EnvironmentError: pass curdata = {} for readmeth, (_flag, path) in self._datamap.items(): if path not in targetpaths: continue last = self._laststats.get(path) cur = curstats.get(path) if last != cur: try: curdata[readmeth] = readmeth(self) except EnvironmentError: pass elif cur is not None and readmeth in self._lastdata: curdata[readmeth] = self._lastdata[readmeth] return curstats, curdata def _calculateChangeFlags(self, curstats, curdata): changeflags = 0 for path, (flag, _watched) in self._filesmap.items(): last = self._laststats.get(path) cur = curstats.get(path) if last != cur: self._ui.debug(b' stat: %s (%r -> %r)\n' % (path, last, cur)) changeflags |= flag for readmeth, (flag, _path) in self._datamap.items(): last = self._lastdata.get(readmeth) cur = curdata.get(readmeth) if last != cur: self._ui.debug(b' data: %s (%r -> %r)\n' % (pycompat.sysbytes(readmeth.__name__), last, cur)) changeflags |= flag return changeflags def _readparents(self): return self._repo.vfs(b'dirstate').read(40) def _readbranch(self): return self._repo.vfs(b'branch').read() def _checkuimtime(self): 'Check for modified config files, or a new .hg/hgrc file' try: files = self._repo.uifiles() mtime = max(os.path.getmtime(f) for f in files if os.path.isfile(f)) if mtime > self._uimtime: self._ui.debug(b'config change detected\n') self._uimtime = mtime self.configChanged.emit() except (EnvironmentError, ValueError): pass class RepoAgent(QObject): """Proxy access to repository and keep its states up-to-date""" # change notifications are not emitted while command is running because # repository files are likely to be modified configChanged = pyqtSignal() repositoryChanged = pyqtSignal(int) repositoryDestroyed = pyqtSignal() serviceStopped = pyqtSignal() busyChanged = pyqtSignal(bool) commandFinished = pyqtSignal(cmdcore.CmdSession) outputReceived = pyqtSignal(str, str) progressReceived = pyqtSignal(cmdcore.ProgressMessage) def __init__(self, repo): QObject.__init__(self) self._repo = self._baserepo = repo # TODO: remove repo-to-agent references later; all widgets should own # RepoAgent instead of thgrepository. repo._pyqtobj = self # base repository for bundle or union (set in dispatch._dispatch) repo.ui.setconfig(b'bundle', b'mainreporoot', repo.root) self._config = hgconfig.HgConfig(repo.ui) # keep url separately from repo.url() because it is abbreviated to # relative path to cwd in bundle or union repo self._overlayurl = '' self._repochanging = 0 self._watcher = watcher = RepoWatcher(repo, self) watcher.configChanged.connect(self._onConfigChanged) watcher.repositoryChanged.connect(self._onRepositoryChanged) watcher.repositoryDestroyed.connect(self._onRepositoryDestroyed) self._cmdagent = cmdagent = cmdcore.CmdAgent(repo.ui, self, cwd=self.rootPath()) cmdagent.outputReceived.connect(self.outputReceived) cmdagent.progressReceived.connect(self.progressReceived) cmdagent.serviceStopped.connect(self._tryEmitServiceStopped) cmdagent.busyChanged.connect(self._onBusyChanged) cmdagent.commandFinished.connect(self._onCommandFinished) self._subrepoagents = {} # path: agent def startMonitoringIfEnabled(self): """Start filesystem monitoring on repository open by RepoManager""" repo = self._repo ui = repo.ui monitorrepo = self.configString('tortoisehg', 'monitorrepo') if monitorrepo == 'never': ui.debug(b'watching of F/S events is disabled by configuration\n') elif (monitorrepo == 'localonly' and not paths.is_on_fixed_drive(repo.path)): ui.debug(b'not watching F/S events for network drive\n') else: self._watcher.startMonitoring() def isServiceRunning(self): return self._watcher.isMonitoring() or self._cmdagent.isServiceRunning() def stopService(self): """Shut down back-end services on repository closed by RepoManager""" if self._watcher.isMonitoring(): self._watcher.stopMonitoring() self._tryEmitServiceStopped() self._cmdagent.stopService() @pyqtSlot() def _tryEmitServiceStopped(self): if not self.isServiceRunning(): self.serviceStopped.emit() def suspendMonitoring(self): """Stop filesystem monitoring and release OS resources""" self._watcher.stopMonitoring() def resumeMonitoring(self): """Resume filesystem monitoring if possible""" if self._watcher.isMonitoring(): return self.pollStatus() self.startMonitoringIfEnabled() def rawRepo(self): return self._repo def rootPath(self): return hglib.tounicode(self._repo.root) def configBool(self, section: Text, name: Text, default: bool = hgconfig.UNSET_DEFAULT) -> bool: return self._config.configBool(section, name, default) def configInt(self, section: Text, name: Text, default: int = hgconfig.UNSET_DEFAULT) -> int: return self._config.configInt(section, name, default) def configString(self, section: Text, name: Text, default: Text = hgconfig.UNSET_DEFAULT) -> Text: return self._config.configString(section, name, default) def configStringList(self, section: Text, name: Text, default: List[Text] = hgconfig.UNSET_DEFAULT) -> List[Text]: return self._config.configStringList(section, name, default) def configStringItems(self, section: Text) -> List[Tuple[Text, Text]]: return self._config.configStringItems(section) def hasConfig(self, section: Text, name: Text) -> bool: return self._config.hasConfig(section, name) def displayName(self): """Name for window titles and similar""" if self.configBool('tortoisehg', 'fullpath'): return self.rootPath() else: return self.shortName() def shortName(self): """Name for tables, tabs, and sentences""" webname = hglib.shortreponame(self._repo.ui) if webname: return hglib.tounicode(webname) else: return os.path.basename(self.rootPath()) def hiddenRevsIncluded(self): return self._repo.filtername != b'visible' def setHiddenRevsIncluded(self, included): """Switch visibility of hidden (i.e. pruned) changesets""" if self.hiddenRevsIncluded() == included: return self._changeRepo(_filteredrepo(self._repo, included)) self._flushRepositoryChanged() def overlayUrl(self): return self._overlayurl def setOverlay(self, url): """Switch to bundle or union repository overlaying this""" url = pycompat.unicode(url) if self._overlayurl == url: return repo = hg.repository(self._baserepo.ui, hglib.fromunicode(url)) if repo.root != self._baserepo.root: raise ValueError('invalid overlay repository: %s' % url) repo = repo.unfiltered() repo.__class__ = _extendrepo(repo) repo._pyqtobj = self # TODO: remove repo-to-agent references repo = repo.filtered(b'visible') self._changeRepo(_filteredrepo(repo, self.hiddenRevsIncluded())) self._overlayurl = url self._watcher.suspendStatusPolling() self._flushRepositoryChanged() def clearOverlay(self): if not self._overlayurl: return repo = self._baserepo repo.thginvalidate() # take changes during overlaid self._changeRepo(_filteredrepo(repo, self.hiddenRevsIncluded())) self._overlayurl = '' self._watcher.resumeStatusPolling() self._flushRepositoryChanged() def _changeRepo(self, repo): # bundle/union repo will append temporary revisions to changelog self._repochanging = LogChanged self._repo = repo def _emitRepositoryChanged(self, flags): flags |= self._repochanging self._repochanging = 0 self.repositoryChanged.emit(flags) def _flushRepositoryChanged(self): if self._cmdagent.isBusy(): return # delayed until _onBusyChanged(False) if self._repochanging: self._emitRepositoryChanged(0) def clearStatus(self): """Forget last status so that next poll should emit change signals""" self._watcher.clearStatus() def pollStatus(self): """Force checking changes to emit corresponding signals; this will be deferred if command is running""" self._watcher.pollStatus() self._flushRepositoryChanged() @pyqtSlot() def _onConfigChanged(self): self._repo.invalidateui() self._config = hgconfig.HgConfig(self._repo.ui) assert not self._cmdagent.isBusy() self._cmdagent.stopService() # to reload config self.configChanged.emit() @pyqtSlot(int) def _onRepositoryChanged(self, flags): self._repo.thginvalidate() if flags & LogChanged: # only call thg_reload_hggit_data() when there are new elements in # the commit log self._repo.thg_reload_hggit_data() # ignore signal that just contains internal flags if flags & ~WorkingStateChanged: self._emitRepositoryChanged(flags) @pyqtSlot() def _onRepositoryDestroyed(self): if self._repo.root in _repocache: del _repocache[self._repo.root] # avoid further changed/destroyed signals self._watcher.stopMonitoring() self.repositoryDestroyed.emit() def isBusy(self) -> bool: return self._cmdagent.isBusy() def _preinvalidateCache(self): if self._cmdagent.isBusy(): # A lot of logic will depend on invalidation happening within # the context of this call. Signals will not be emitted till later, # but we at least invalidate cached data in the repository self._repo.thginvalidate() @pyqtSlot(bool) def _onBusyChanged(self, busy): if busy: self._watcher.suspendStatusPolling() else: self._watcher.resumeStatusPolling() if not self._watcher.isMonitoring(): # detect changes made by the last command even if monitoring # is disabled self._watcher.pollStatus() self._flushRepositoryChanged() self.busyChanged.emit(busy) def runCommand(self, cmdline: List[Text], uihandler: Optional[Union[QWidget, cmdcore.UiHandler]] = None, overlay: bool = True) -> cmdcore.CmdSession: """Executes a single command asynchronously in this repository""" cmdline = self._extendCmdline(cmdline, overlay) return self._cmdagent.runCommand(cmdline, uihandler) def runCommandSequence(self, cmdlines: List[List[Text]], uihandler: Optional[Union[QWidget, cmdcore.UiHandler]] = None, overlay: bool = True) -> cmdcore.CmdSession: """Executes a series of commands asynchronously in this repository""" cmdlines = [self._extendCmdline(l, overlay) for l in cmdlines] return self._cmdagent.runCommandSequence(cmdlines, uihandler) def _extendCmdline(self, cmdline: List[Text], overlay: bool) -> List[Text]: if self.hiddenRevsIncluded(): cmdline = ['--hidden'] + cmdline if overlay and self._overlayurl: cmdline = ['-R', self._overlayurl] + cmdline return cmdline def abortCommands(self) -> None: """Abort running and queued commands""" self._cmdagent.abortCommands() @pyqtSlot(cmdcore.CmdSession) def _onCommandFinished(self, sess): self._preinvalidateCache() self.commandFinished.emit(sess) def subRepoAgent(self, path): """Return RepoAgent of sub or patch repository""" root = self.rootPath() path = hglib.normreporoot(os.path.join(root, path)) if path == root or not path.startswith(root.rstrip(os.sep) + os.sep): # only sub path is allowed to avoid circular references raise ValueError('invalid sub path: %s' % path) try: return self._subrepoagents[path] except KeyError: pass manager = self.parent() if not manager: raise RuntimeError('cannot open sub agent of unmanaged repo') assert isinstance(manager, RepoManager), manager self._subrepoagents[path] = agent = manager.openRepoAgent(path) return agent def releaseSubRepoAgents(self): """Release RepoAgents referenced by this when repository closed by RepoManager""" if not self._subrepoagents: return manager = self.parent() if not manager: raise RuntimeError('cannot release sub agents of unmanaged repo') assert isinstance(manager, RepoManager), manager for path in self._subrepoagents: manager.releaseRepoAgent(path) self._subrepoagents.clear() class RepoManager(QObject): """Cache open RepoAgent instances and bundle their signals""" repositoryOpened = pyqtSignal(str) repositoryClosed = pyqtSignal(str) configChanged = pyqtSignal(str) repositoryChanged = pyqtSignal(str, int) repositoryDestroyed = pyqtSignal(str) busyChanged = pyqtSignal(str, bool) progressReceived = pyqtSignal(str, cmdcore.ProgressMessage) _SIGNALMAP = [ # source, dest ('configChanged', 'configChanged'), ('repositoryDestroyed', 'repositoryDestroyed'), ('serviceStopped', '_tryCloseRepoAgent'), ('busyChanged', '_mapBusyChanged'), ] def __init__(self, ui, parent=None): super(RepoManager, self).__init__(parent) self._ui = ui self._openagents = {} # path: (agent, refcount) # refcount=0 means the repo is about to be closed self._sigmappers = [] for _sig, slot in self._SIGNALMAP: mapper = QSignalMapper(self) self._sigmappers.append(mapper) qtlib.getMappedStringSignal(mapper).connect(getattr(self, slot)) def openRepoAgent(self, path): """Return RepoAgent for the specified path and increment refcount""" path = hglib.normreporoot(path) if path in self._openagents: agent, refcount = self._openagents[path] self._openagents[path] = (agent, refcount + 1) return agent # TODO: move repository creation from thgrepo.repository() self._ui.debug(b'opening repo: %s\n' % hglib.fromunicode(path)) agent = repository(self._ui, hglib.fromunicode(path))._pyqtobj assert agent.parent() is None agent.setParent(self) for (sig, _slot), mapper in zip(self._SIGNALMAP, self._sigmappers): getattr(agent, sig).connect(mapper.map) mapper.setMapping(agent, agent.rootPath()) agent.repositoryChanged.connect(self._mapRepositoryChanged) agent.progressReceived.connect(self._mapProgressReceived) agent.startMonitoringIfEnabled() assert agent.rootPath() == path self._openagents[path] = (agent, 1) self.repositoryOpened.emit(path) return agent @pyqtSlot(str) def releaseRepoAgent(self, path): """Decrement refcount of RepoAgent and close it if possible""" path = hglib.normreporoot(path) agent, refcount = self._openagents[path] self._openagents[path] = (agent, refcount - 1) if refcount > 1: return # close child agents first, which may reenter to releaseRepoAgent() agent.releaseSubRepoAgents() if agent.isServiceRunning(): self._ui.debug(b'stopping service: %s\n' % hglib.fromunicode(path)) agent.stopService() else: self._tryCloseRepoAgent(path) @pyqtSlot(str) def _tryCloseRepoAgent(self, path): path = pycompat.unicode(path) agent, refcount = self._openagents[path] if refcount > 0: # repo may be reopen before its services stopped return self._ui.debug(b'closing repo: %s\n' % hglib.fromunicode(path)) del self._openagents[path] # TODO: disconnected automatically if _repocache does not exist for (sig, _slot), mapper in zip(self._SIGNALMAP, self._sigmappers): getattr(agent, sig).disconnect(mapper.map) mapper.removeMappings(agent) agent.repositoryChanged.disconnect(self._mapRepositoryChanged) agent.progressReceived.disconnect(self._mapProgressReceived) agent.setParent(None) self.repositoryClosed.emit(path) def repoAgent(self, path): """Peek open RepoAgent for the specified path without refcount change; None for unknown path""" path = hglib.normreporoot(path) return self._openagents.get(path, (None, 0))[0] def repoRootPaths(self): """Return list of root paths of open repositories""" return list(self._openagents.keys()) @pyqtSlot(int) def _mapRepositoryChanged(self, flags): agent = self.sender() assert isinstance(agent, RepoAgent), agent self.repositoryChanged.emit(agent.rootPath(), flags) @pyqtSlot(str) def _mapBusyChanged(self, path): agent, _refcount = self._openagents[pycompat.unicode(path)] self.busyChanged.emit(path, agent.isBusy()) @pyqtSlot(cmdcore.ProgressMessage) def _mapProgressReceived(self, progress): agent = self.sender() assert isinstance(agent, RepoAgent), agent self.progressReceived.emit(agent.rootPath(), progress) _uiprops = '''_uifiles postpull tabwidth maxdiff deadbranches _exts _thghiddentags summarylen mergetools'''.split() _thgrepoprops = '''_thgmqpatchnames thgmqunappliedpatches'''.split() def _extendrepo(repo): class thgrepository(repo.__class__): def __getitem__(self, changeid): """Extends Mercurial's standard __getitem__() method to a) return a thgchangectx with additional methods b) return a patchctx if changeid is the name of an MQ unapplied patch c) return a patchctx if changeid is an absolute patch path """ # Mercurial's standard changectx() (rather, lookup()) # implies that tags and branch names live in the same namespace. # This code throws patch names in the same namespace, but as # applied patches have a tag that matches their patch name this # seems safe. if changeid in self.thgmqunappliedpatches: q = self.mq # must have mq to pass the previous if return genPatchContext(self, q.join(changeid), rev=changeid) elif isinstance(changeid, bytes) and b'\0' not in changeid and \ os.path.isabs(changeid) and os.path.isfile(changeid): return genPatchContext(repo, changeid) # If changeid is a basectx, repo[changeid] returns the same object. # We assumes changectx is already wrapped in that case; otherwise, # changectx would be double wrapped by thgchangectx. changectx = super(thgrepository, self).__getitem__(changeid) if changectx is changeid: return changectx changectx.__class__ = _extendchangectx(changectx) return changectx def hgchangectx(self, changeid): """Returns unwrapped changectx or workingctx object""" # This provides temporary workaround for troubles caused by class # extension: e.g. changectx(n) != thgchangectx(n). # thgrepository and thgchangectx should be removed in some way. return super(thgrepository, self).__getitem__(changeid) @localrepo.unfilteredpropertycache def _thghiddentags(self): ht = self.ui.config(b'tortoisehg', b'hidetags', b'') return [t.strip() for t in ht.split()] @localrepo.unfilteredpropertycache def thgmqunappliedpatches(self): """Returns a list of (patch name, patch path) of all self's unapplied MQ patches, in patch series order, first unapplied patch first.""" if not hasattr(self, 'mq'): return [] q = self.mq applied = set([p.name for p in q.applied]) return [pname for pname in q.series if pname not in applied] @localrepo.unfilteredpropertycache def _thgmqpatchnames(self): """Returns all tag names used by MQ patches. Returns [] if MQ not in use.""" return hglib.getmqpatchtags(self) @property def thgactivemqname(self): """Currenty-active qqueue name (see hgext/mq.py:qqueue)""" return hglib.getcurrentqqueue(self) @localrepo.unfilteredpropertycache def _uifiles(self): cfg = self.ui._ucfg files = set() for section in cfg: for item in cfg.items(section): src = cfg.source(section, item[0]) # Skip sourceless items like ui.{verbose,debug} if not src: continue f = src.rsplit(b':', 1)[0] files.add(f) files.add(self.vfs.join(b'hgrc')) return files @localrepo.unfilteredpropertycache def _exts(self): lclexts = [] allexts = [n for n,m in extensions.extensions()] for name, path in self.ui.configitems(b'extensions'): if name.startswith(b'hgext.'): name = name[6:] if name in allexts: lclexts.append(name) return lclexts @localrepo.unfilteredpropertycache def postpull(self): pp = self.ui.config(b'tortoisehg', b'postpull') if pp in (b'rebase', b'update', b'fetch', b'updateorrebase'): return pp return b'none' @localrepo.unfilteredpropertycache def tabwidth(self): tw = self.ui.config(b'tortoisehg', b'tabwidth') try: tw = int(tw) tw = min(tw, 16) return max(tw, 2) except (ValueError, TypeError): return 8 @localrepo.unfilteredpropertycache def maxdiff(self): maxdiff = self.ui.config(b'tortoisehg', b'maxdiff') try: maxdiff = int(maxdiff) if maxdiff < 1: return sys.maxsize except (ValueError, TypeError): maxdiff = 1024 # 1MB by default return maxdiff * 1024 @localrepo.unfilteredpropertycache def summarylen(self): slen = self.ui.config(b'tortoisehg', b'summarylen') try: slen = int(slen) if slen < 10: return 80 except (ValueError, TypeError): slen = 80 return slen @localrepo.unfilteredpropertycache def deadbranches(self): db = self.ui.config(b'tortoisehg', b'deadbranch', b'') return [b.strip() for b in db.split(b',')] @localrepo.unfilteredpropertycache def mergetools(self): seen, installed = [], [] for key, value in self.ui.configitems(b'merge-tools'): t = key.split(b'.')[0] if t not in seen: seen.append(t) if filemerge._findtool(self.ui, t): installed.append(t) return installed def uifiles(self): """Returns complete list of config files""" return self._uifiles def extensions(self): """Returns list of extensions enabled in this repository""" return self._exts def thgmqtag(self, tag): """Returns true if `tag` marks an applied MQ patch""" return tag in self._thgmqpatchnames def thgshelves(self): self.shelfdir = sdir = self.vfs.join(b'shelves') if os.path.isdir(sdir): def getModificationTime(x): try: return os.path.getmtime(os.path.join(sdir, x)) except EnvironmentError: return 0 shelves = sorted(os.listdir(sdir), key=getModificationTime, reverse=True) return [s for s in shelves if \ os.path.isfile(os.path.join(self.shelfdir, s))] return [] def makeshelf(self, patch): if not os.path.exists(self.shelfdir): os.mkdir(self.shelfdir) f = open(os.path.join(self.shelfdir, patch), "wb") f.close() def thginvalidate(self): """Should be called when mtime of repo store/dirstate are changed""" self.invalidatedirstate() if not isinstance(repo, bundlerepo.bundlerepository): self.invalidate() # mq.queue.invalidate does not handle queue changes, so force # the queue object to be rebuilt if localrepo.hasunfilteredcache(self, 'mq'): delattr(self.unfiltered(), 'mq') for a in _thgrepoprops + _uiprops: if localrepo.hasunfilteredcache(self, a): delattr(self.unfiltered(), a) def thg_reload_hggit_data(self) -> None: """Reload hg-git specific data structures. This function forces the reload of hg-git specific files, so that the UI can show updated values (for example, the git hashes of newly pulled commits, or the fake local tags representing remote refs). The data structures that are reloaded are: - the map between mercurial and git commit hashes - the git tags - the remote git refs If the hg-git extension is not loaded, nothing is done. """ if b'hggit' not in self.extensions(): return self.ui.debug(b'reloading hg-git specific data\n') self.githandler.load_map() self.githandler.load_tags() self.githandler.load_remote_refs() def invalidateui(self): """Should be called when mtime of ui files are changed""" origui = self.ui self.ui = hglib.loadui() self.ui.readconfig(self.vfs.join(b'hgrc')) hglib.copydynamicconfig(origui, self.ui) for a in _uiprops: if localrepo.hasunfilteredcache(self, a): delattr(self.unfiltered(), a) def thgbackup(self, path): """Make a backup of the given file in the directory "Trashcan" if it exists""" # The backup name will be similar to the orginal file name plus # '.bak' and characters to make it unique trashcan = hglib.tounicode(self.vfs.join(b'Trashcan')) if not os.path.isdir(trashcan): os.mkdir(trashcan) path = hglib.tounicode(path) if not os.path.exists(path): return name = os.path.basename(path) root, ext = os.path.splitext(name) fd, dest = tempfile.mkstemp(suffix=ext + '.bak', prefix=root + '_', dir=trashcan) os.close(fd) shutil.copyfile(path, dest) def isStandin(self, path): if b'largefiles' in self.extensions(): if _lfregex.match(path): return True if b'largefiles' in self.extensions() or b'kbfiles' in self.extensions(): if _kbfregex.match(path): return True return False def bfStandin(self, path): return b'.kbf/' + path def lfStandin(self, path): return b'.hglf/' + path return thgrepository _changectxclscache = {} # parentcls: extendedcls def _extendchangectx(changectx): # cache extended changectx class, since we may create bunch of instances parentcls = changectx.__class__ try: return _changectxclscache[parentcls] except KeyError: pass assert parentcls not in _changectxclscache.values(), 'double thgchangectx' _changectxclscache[parentcls] = cls = _createchangectxcls(parentcls) return cls def _createchangectxcls(parentcls): class thgchangectx(parentcls): def sub(self, path): srepo = super(thgchangectx, self).sub(path) if isinstance(srepo, subrepo.hgsubrepo): r = srepo._repo r = r.unfiltered() r.__class__ = _extendrepo(r) srepo._repo = r.filtered(b'visible') return srepo def thgtags(self): """Returns all unhidden tags for self""" htlist = self._repo._thghiddentags return [tag for tag in self.tags() if tag not in htlist] def _thgmqpatchtags(self): """Returns the set of self's tags which are MQ patch names""" mytags = set(self.tags()) patchtags = self._repo._thgmqpatchnames result = mytags.intersection(patchtags) assert len(result) <= 1, "thgmqpatchname: rev has more than one tag in series" return result def thgmqappliedpatch(self): """True if self is an MQ applied patch""" return self.rev() is not None and bool(self._thgmqpatchtags()) def thgmqunappliedpatch(self): return False def thgmqpatchname(self): """Return self's MQ patch name. AssertionError if self not an MQ patch""" patchtags = self._thgmqpatchtags() assert len(patchtags) == 1, "thgmqpatchname: called on non-mq patch" return list(patchtags)[0] def thgmqoriginalparent(self): """The revisionid of the original patch parent""" if not self.thgmqunappliedpatch() and not self.thgmqappliedpatch(): return '' try: patchpath = self._repo.mq.join(self.thgmqpatchname()) mqoriginalparent = mq.patchheader(patchpath).parent except EnvironmentError: return '' return mqoriginalparent def changesToParent(self, whichparent): parent = self.parents()[whichparent] status = self._repo.status(parent.node(), self.node()) return status.modified, status.added, status.removed def longsummary(self): if self._repo.ui.configbool(b'tortoisehg', b'longsummary'): limit = 80 else: limit = None return hglib.longsummary(self.description(), limit) def hasStandin(self, file): if b'largefiles' in self._repo.extensions(): if self._repo.lfStandin(file) in self.manifest(): return True elif b'largefiles' in self._repo.extensions() or b'kbfiles' in self._repo.extensions(): if self._repo.bfStandin(file) in self.manifest(): return True return False def isStandin(self, path): return self._repo.isStandin(path) def findStandin(self, file): if b'largefiles' in self._repo.extensions(): if self._repo.lfStandin(file) in self.manifest(): return self._repo.lfStandin(file) return self._repo.bfStandin(file) return thgchangectx _pctxcache = {} def genPatchContext(repo, patchpath, rev=None): global _pctxcache try: if os.path.exists(patchpath) and patchpath in _pctxcache: cachedctx = _pctxcache[patchpath] if cachedctx._mtime == os.path.getmtime(patchpath) and \ cachedctx._fsize == os.path.getsize(patchpath): return cachedctx except EnvironmentError: pass # create a new context object ctx = patchctx(patchpath, repo, rev=rev) _pctxcache[patchpath] = ctx return ctx def recursiveMergeStatus(repo): ms = hglib.readmergestate(repo) for wfile in ms: yield repo.root, wfile, ms[wfile] try: wctx = repo[None] for s in wctx.substate: sub = wctx.sub(s) if isinstance(sub, subrepo.hgsubrepo): for root, file, status in recursiveMergeStatus(sub._repo): yield root, file, status except (EnvironmentError, error.Abort, error.RepoError): pass def relatedRepositories(repoid): """Yields root paths for local related repositories""" from tortoisehg.hgqt import reporegistry, repotreemodel if repoid == node.nullid: # empty repositories shouldn't be related return f = QFile(reporegistry.settingsfilename()) f.open(QIODevice.OpenModeFlag.ReadOnly) try: for e in repotreemodel.iterRepoItemFromXml(f): if e.basenode() == repoid: # TODO: both in unicode because this is Qt-layer function? yield (hglib.fromunicode(e.rootpath()), hglib.fromunicode(e.shortname())) except: f.close() raise else: f.close() def isBfStandin(path): return _kbfregex.match(path) def isLfStandin(path): return _lfregex.match(path) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1736945585.0 tortoisehg-6.9/tortoisehg/hgqt/thgstrip.py0000644000000000000000000001612514741727661017711 0ustar00rootroot# thgstrip.py - MQ strip dialog for TortoiseHg # # Copyright 2009 Yuki KODAMA # Copyright 2010 David Wilhelm # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations from .qtcore import ( Qt, pyqtSlot, ) from .qtgui import ( QCheckBox, QComboBox, QGridLayout, QLabel, QSizePolicy, QVBoxLayout, ) from mercurial import ( error, ) from ..util import hglib from ..util.i18n import _, ngettext from . import ( cmdcore, cmdui, cslist, qtlib, ) if hglib.TYPE_CHECKING: from typing import ( Any, Dict, Optional, Text, ) from .qtgui import ( QWidget, ) from .thgrepo import ( RepoAgent, ) class StripWidget(cmdui.AbstractCmdWidget): """Command widget to strip changesets""" def __init__(self, repoagent: RepoAgent, rev: Optional[Text] = None, parent: Optional[QWidget] = None, opts: Optional[Dict[Text, Any]] = None) -> None: super(StripWidget, self).__init__(parent) if opts is None: opts = {} self.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding) self._repoagent = repoagent grid = QGridLayout() grid.setContentsMargins(0, 0, 0, 0) grid.setSpacing(6) self.setLayout(grid) ### target revision combo self.rev_combo = combo = QComboBox() combo.setEditable(True) grid.addWidget(QLabel(_('Strip:')), 0, 0) grid.addWidget(combo, 0, 1) grid.addWidget(QLabel(_('Preview:')), 1, 0, Qt.AlignmentFlag.AlignLeft | Qt.AlignmentFlag.AlignTop) self.status = QLabel("") grid.addWidget(self.status, 1, 1, Qt.AlignmentFlag.AlignLeft | Qt.AlignmentFlag.AlignTop) if rev is None: rev = hglib.tounicode(self.repo.dirstate.branch()) combo.addItem(rev) combo.setCurrentIndex(0) for name in hglib.namedbranches(self.repo): combo.addItem(hglib.tounicode(name)) for tag in sorted(self.repo.tags(), reverse=True): combo.addItem(hglib.tounicode(tag)) ### preview box, contained in scroll area, contains preview grid self.cslist = cslist.ChangesetList(self.repo) cslistrow = 2 cslistcol = 1 grid.addWidget(self.cslist, cslistrow, cslistcol) ### options optbox = QVBoxLayout() optbox.setSpacing(6) grid.addWidget(QLabel(_('Options:')), 3, 0, Qt.AlignmentFlag.AlignLeft | Qt.AlignmentFlag.AlignTop) grid.addLayout(optbox, 3, 1) self._optchks = {} for name, text in [ ('force', _('Force removal of changesets, discard uncommitted ' 'changes (-f/--force)')), ('nobackup', _('Do not save backup bundle (--nobackup)')), ('keep', _('Do not modify working directory during strip ' '(-k/--keep)')), ]: self._optchks[name] = w = QCheckBox(text) w.setChecked(bool(opts.get(name))) optbox.addWidget(w) grid.setRowStretch(cslistrow, 1) grid.setColumnStretch(cslistcol, 1) # signal handlers self.rev_combo.editTextChanged.connect(self.preview) # prepare to show self.rev_combo.lineEdit().selectAll() self.cslist.setHidden(False) self.preview() ### Private Methods ### @property def repo(self): return self._repoagent.rawRepo() def get_rev(self) -> Optional[int]: """Return the integer revision number of the input or None""" revstr = hglib.fromunicode(self.rev_combo.currentText()) if not revstr: return None try: rev = hglib.revsymbol(self.repo, revstr).rev() except (error.RepoError, error.LookupError): return None return rev def updatecslist(self, uselimit: bool = True) -> bool: """Update the cs list and return the success status as a bool""" rev = self.get_rev() if rev is None: return False striprevs = list(self.repo.changelog.descendants([rev])) striprevs.append(rev) striprevs.sort() self.cslist.updateItems(striprevs) return True @pyqtSlot() def preview(self) -> None: if self.updatecslist(): striprevs = self.cslist.curitems cstext = ngettext( "%d changeset will be stripped", "%d changesets will be stripped", len(striprevs)) % len(striprevs) self.status.setText(cstext) else: self.cslist.clear() self.cslist.updatestatus() cstext = qtlib.markup(_('Unknown revision!'), fg='red', weight='bold') self.status.setText(cstext) self.commandChanged.emit() def canRunCommand(self) -> bool: return self.get_rev() is not None def runCommand(self) -> cmdcore.CmdSession: opts = {'verbose': True} opts.update((n, w.isChecked()) for n, w in self._optchks.items()) wc = self.repo[None] wcparents = wc.parents() wcp1rev = wcparents[0].rev() wcp2rev = None if len(wcparents) > 1: wcp2rev = wcparents[1].rev() # TODO: use cmdutil.checkunfinished()+cmdutil.bailifchanged()? if not opts['force'] and not opts['keep'] and \ (wcp1rev in self.cslist.curitems or wcp2rev in self.cslist.curitems) and \ (wc.modified() or wc.added() or wc.removed()): main = _("Detected uncommitted local changes.") text = _("Do you want to keep them or discard them?") choices = (_('&Keep (--keep)'), _('&Discard (--force)'), _('&Cancel'), ) resp = qtlib.CustomPrompt(_('Confirm Strip'), '%s

                                                                                                            %s' % (main, text), self, choices, default=0, esc=2).run() if resp == 0: opts['keep'] = True elif resp == 1: opts['force'] = True else: return cmdcore.nullCmdSession() rev = self.rev_combo.currentText() cmdline = hglib.buildcmdargs('strip', rev, **opts) return self._repoagent.runCommand(cmdline, self) def createStripDialog(repoagent: RepoAgent, rev: Optional[Text] = None, parent: Optional[QWidget] = None, opts: Optional[Dict[Text, Any]] = None) -> cmdui.CmdControlDialog: if opts is None: opts = {} dlg = cmdui.CmdControlDialog(parent) dlg.setWindowIcon(qtlib.geticon('hg-strip')) dlg.setWindowTitle(_('Strip - %s') % repoagent.displayName()) dlg.setObjectName('strip') dlg.setRunButtonText(_('&Strip')) dlg.setCommandWidget(StripWidget(repoagent, rev, dlg, opts)) return dlg ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/topic.py0000644000000000000000000001374114672254332017155 0ustar00rootroot# topic.py - Topic dialog for TortoiseHg # # Copyright 2010 Michal De Wildt # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations from .qtcore import ( Qt, pyqtSlot, ) from .qtgui import ( QComboBox, QDialog, QDialogButtonBox, QFontMetrics, QFormLayout, QFrame, QLabel, QLayout, QSizePolicy, QVBoxLayout, QWidget, ) from ..util import hglib from ..util.obsoleteutil import first_known_successors from ..util.i18n import _ from . import ( cmdcore, qtlib, ) class TopicDialog(QDialog): def __init__(self, repoagent, rev, parent=None): super(TopicDialog, self).__init__(parent) self.setWindowFlags(self.windowFlags() & ~Qt.WindowType.WindowContextHelpButtonHint) self._repoagent = repoagent repo = repoagent.rawRepo() self._cmdsession = cmdcore.nullCmdSession() self.rev = rev # base layout box base = QVBoxLayout() base.setSpacing(0) base.setContentsMargins(*(0,)*4) base.setSizeConstraint(QLayout.SizeConstraint.SetMinAndMaxSize) self.setLayout(base) # main layout grid formwidget = QWidget(self) formwidget.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed) form = QFormLayout(fieldGrowthPolicy=QFormLayout.FieldGrowthPolicy.AllNonFixedFieldsGrow) formwidget.setLayout(form) base.addWidget(formwidget) self.revLabel = QLabel() # text is set in self.revUpdated() form.addRow(_('Revision:'), self.revLabel) # topic combo self.topicsCombo = QComboBox() self.topicsCombo.setEditable(True) self.topicsCombo.setMinimumContentsLength(30) # cut long name self.topicsCombo.currentIndexChanged.connect(self.topicTextChanged) self.topicsCombo.editTextChanged.connect(self.topicTextChanged) qtlib.allowCaseChangingInput(self.topicsCombo) form.addRow(_('Topic:'), self.topicsCombo) # bottom buttons bbox = QDialogButtonBox() self.setBtn = bbox.addButton(_('&Set'), QDialogButtonBox.ButtonRole.ActionRole) self.clearBtn = bbox.addButton(_('&Clear'), QDialogButtonBox.ButtonRole.ActionRole) bbox.addButton(QDialogButtonBox.StandardButton.Close) bbox.rejected.connect(self.reject) form.addRow(bbox) self.setBtn.clicked.connect(self.set_topic) self.clearBtn.clicked.connect(self.clear_topic) # horizontal separator self.sep = QFrame() self.sep.setFrameShadow(QFrame.Shadow.Sunken) self.sep.setFrameShape(QFrame.Shape.HLine) self.layout().addWidget(self.sep) # status line self.status = qtlib.StatusLabel() self.status.setContentsMargins(4, 2, 4, 4) self.layout().addWidget(self.status) self._finishmsg = None # dialog setting self.setWindowTitle(_('Topic - %s') % repoagent.displayName()) self.setWindowIcon(qtlib.geticon('hg-topics')) # prepare to show self.clear_status() self.revUpdated() self.refresh() self._repoagent.repositoryChanged.connect(self.refresh) self.topicsCombo.setFocus() self.topicTextChanged() def revUpdated(self): if self.rev is None: hasunicodestar = QFontMetrics(self.font()).inFont(u'\u2605') if hasunicodestar: # The Unicode symbol is a black star: revText = u'\u2605 ' + _('Working Directory') + u' \u2605' else: revText = '*** ' + _('Working Directory') + ' ***' else: revText = '%d (%s)' % (self.rev, self.repo[self.rev]) self.revLabel.setText(revText) self.topicsCombo.setEditText(self._current_topic) @property def repo(self): return self._repoagent.rawRepo() @pyqtSlot() def refresh(self): """Update drop-down list if repo changed.""" cur = self.topicsCombo.currentText() self.topicsCombo.clear() self.topicsCombo.addItems(sorted(map(hglib.tounicode, self.repo.topics))) self.topicsCombo.setEditText(cur) @pyqtSlot() def topicTextChanged(self): topic = self.topicsCombo.currentText() self.setBtn.setEnabled(bool(topic)) @property def _current_topic(self): return hglib.tounicode(self.repo[self.rev].topic()) def setTopicName(self, name): self.topicsCombo.setEditText(name) def set_status(self, text, icon=None): self.status.setVisible(True) self.sep.setVisible(True) self.status.set_status(text, icon) def clear_status(self): self.status.setHidden(True) self.sep.setHidden(True) def _runTopic(self, *args, **opts): self._finishmsg = opts.pop('finishmsg') cmdline = hglib.buildcmdargs('topic', *args, **opts) self._cmdsession = sess = self._repoagent.runCommand(cmdline, self) sess.commandFinished.connect(self._onTopicFinished) @pyqtSlot(int) def _onTopicFinished(self, ret): if ret == 0: self.set_status(self._finishmsg, True) else: self.set_status(self._cmdsession.errorString(), False) repo = self.repo.unfiltered() ctx = repo[self.rev] if ctx.extinct(): changes = [x for x in first_known_successors(ctx)] if changes: self.rev = changes[0].rev() self.revUpdated() @pyqtSlot() def set_topic(self): topic = self.topicsCombo.currentText() finishmsg = _("Set topic to '%s'") % topic self._runTopic(topic, rev=self.rev, finishmsg=finishmsg) @pyqtSlot() def clear_topic(self): finishmsg = _("Cleared current topic '%s'") % self._current_topic self._runTopic(rev=self.rev, clear=True, finishmsg=finishmsg) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1736945585.0 tortoisehg-6.9/tortoisehg/hgqt/update.py0000644000000000000000000004436614741727661017337 0ustar00rootroot# update.py - Update dialog for TortoiseHg # # Copyright 2007 TK Soh # Copyright 2007 Steve Borho # Copyright 2010 Yuki KODAMA # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations from .qtcore import ( pyqtSlot, ) from .qtgui import ( QCheckBox, QComboBox, QFormLayout, QLabel, QMessageBox, QSizePolicy, QVBoxLayout, ) from mercurial import ( error, pycompat, ) from ..util import hglib from ..util.i18n import _ from . import ( cmdcore, cmdui, csinfo, qtlib, resolve, ) if hglib.TYPE_CHECKING: from typing import ( Any, Dict, Optional, Text, Union, ) from mercurial import context from .qtcore import QSettings from .qtgui import QWidget from .thgrepo import RepoAgent UpdateOpts = Dict[Text, Any] class UpdateWidget(cmdui.AbstractCmdWidget): def __init__(self, repoagent: RepoAgent, rev: Optional[Union[Text, pycompat.unicode]] = None, parent: Optional[QWidget] = None, opts: Optional[UpdateOpts] = None) -> None: # TODO: unify the `rev` type super(UpdateWidget, self).__init__(parent) if opts is None: opts = {} self.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed) self._repoagent = repoagent repo = repoagent.rawRepo() ## main layout form = QFormLayout() form.setContentsMargins(0, 0, 0, 0) form.setSpacing(6) self.setLayout(form) ### target revision combo self.rev_combo = combo = QComboBox() combo.setEditable(True) combo.setMinimumContentsLength(30) # cut long name combo.installEventFilter(qtlib.BadCompletionBlocker(combo)) form.addRow(_('Update to:'), combo) # always include integer revision if rev: assert isinstance(rev, (pycompat.unicode, str)), repr(rev) try: ctx = hglib.revsymbol(self.repo, hglib.fromunicode(rev)) if isinstance(ctx.rev(), int): # could be patch name combo.addItem(str(ctx.rev())) except error.RepoLookupError: pass combo.addItems(pycompat.maplist(hglib.tounicode, hglib.namedbranches(repo))) tags = list(self.repo.tags()) + list(repo._bookmarks.keys()) tags.sort(reverse=True) combo.addItems(pycompat.maplist(hglib.tounicode, tags)) if rev is None: selecturev = hglib.tounicode(self.repo.dirstate.branch()) else: selecturev = hglib.tounicode(rev) selectindex = combo.findText(selecturev) if selectindex >= 0: combo.setCurrentIndex(selectindex) else: combo.setEditText(selecturev) ### target revision info items = ('%(rev)s', ' %(branch)s', ' %(tags)s', '
                                                                                                            %(summary)s') style = csinfo.labelstyle(contents=items, width=350, selectable=True) factory = csinfo.factory(self.repo, style=style) self.target_info = factory() form.addRow(_('Target:'), self.target_info) ### parent revision info self.ctxs = self.repo[None].parents() if len(self.ctxs) == 2: self.p1_info = factory() form.addRow(_('Parent 1:'), self.p1_info) self.p2_info = factory() form.addRow(_('Parent 2:'), self.p2_info) else: self.p1_info = factory() form.addRow(_('Parent:'), self.p1_info) # show a subrepo "pull path" combo, with the # default path as the first (and default) path self.path_combo_label = QLabel(_('Pull subrepos from:')) self.path_combo = QComboBox(self) syncpaths = dict(repoagent.configStringItems('paths')) aliases = sorted(syncpaths) # make sure that the default path is the first one if 'default' in aliases: aliases.remove('default') aliases.insert(0, 'default') for n, alias in enumerate(aliases): self.path_combo.addItem(alias) self.path_combo.setItemData(n, syncpaths[alias]) self.path_combo.currentIndexChanged.connect( self._updatePathComboTooltip) self._updatePathComboTooltip(0) form.addRow(self.path_combo_label, self.path_combo) ### options self.optbox = QVBoxLayout() self.optbox.setSpacing(6) self.optexpander = expander = qtlib.ExpanderLabel(_('Options:'), False) expander.expanded.connect(self.show_options) form.addRow(expander, self.optbox) self.verbose_chk = QCheckBox(_('List updated files (--verbose)')) self.discard_chk = QCheckBox(_('Discard local changes, no backup ' '(-C/--clean)')) self.merge_chk = QCheckBox(_('Always merge (when possible)')) self.autoresolve_chk = QCheckBox(_('Automatically resolve merge ' 'conflicts where possible')) self.optbox.addWidget(self.verbose_chk) self.optbox.addWidget(self.discard_chk) self.optbox.addWidget(self.merge_chk) self.optbox.addWidget(self.autoresolve_chk) self.discard_chk.setChecked(bool(opts.get('clean'))) # signal handlers self.rev_combo.editTextChanged.connect(self.update_info) self.discard_chk.toggled.connect(self.update_info) # prepare to show self.merge_chk.setHidden(True) self.autoresolve_chk.setHidden(True) self.update_info() if not self.canRunCommand(): # need to change rev self.rev_combo.lineEdit().selectAll() def readSettings(self, qs: QSettings) -> None: self.merge_chk.setChecked(qtlib.readBool(qs, 'merge')) self.autoresolve_chk.setChecked( self._repoagent.configBool('tortoisehg', 'autoresolve', qtlib.readBool(qs, 'autoresolve', True))) self.verbose_chk.setChecked(qtlib.readBool(qs, 'verbose')) # expand options if a hidden one is checked self.optexpander.set_expanded(self.hiddenSettingIsChecked()) def writeSettings(self, qs: QSettings) -> None: qs.setValue('merge', self.merge_chk.isChecked()) qs.setValue('autoresolve', self.autoresolve_chk.isChecked()) qs.setValue('verbose', self.verbose_chk.isChecked()) @property def repo(self): return self._repoagent.rawRepo() def hiddenSettingIsChecked(self) -> bool: return (self.merge_chk.isChecked() or self.autoresolve_chk.isChecked()) @pyqtSlot() def update_info(self) -> None: self.p1_info.updateItems(self.ctxs[0].node()) merge = len(self.ctxs) == 2 if merge: self.p2_info.updateItems(self.ctxs[1].node()) new_rev = hglib.fromunicode(self.rev_combo.currentText()) if new_rev == b'null': self.target_info.setText(_('remove working directory')) self.commandChanged.emit() return try: new_ctx = hglib.revsymbol(self.repo, new_rev) if not merge and new_ctx.rev() == self.ctxs[0].rev() \ and not new_ctx.bookmarks(): self.target_info.setText(_('(same as parent)')) else: self.target_info.updateItems(new_ctx) # only show the path combo when there are multiple paths # and the target revision has subrepos showpathcombo = self.path_combo.count() > 1 and \ b'.hgsubstate' in new_ctx self.path_combo_label.setVisible(showpathcombo) self.path_combo.setVisible(showpathcombo) except (error.LookupError, error.RepoError, EnvironmentError): self.target_info.setText(_('unknown revision!')) self.commandChanged.emit() def canRunCommand(self) -> bool: new_rev = hglib.fromunicode(self.rev_combo.currentText()) try: new_ctx = hglib.revsymbol(self.repo, new_rev) except (error.LookupError, error.RepoError, EnvironmentError): return False return (self.discard_chk.isChecked() or len(self.ctxs) == 2 or new_ctx.rev() != self.ctxs[0].rev() or bool(new_ctx.bookmarks())) def runCommand(self) -> cmdcore.CmdSession: cmdline = ['update'] if self.verbose_chk.isChecked(): cmdline += ['--verbose'] cmdline += ['--config', 'ui.merge=internal:' + (self.autoresolve_chk.isChecked() and 'merge' or 'fail')] rev: Text = self.rev_combo.currentText() activatebookmarkmode = self._repoagent.configString( 'tortoisehg', 'activatebookmarks') if activatebookmarkmode != 'never': brev: bytes = hglib.fromunicode(rev) bookmarks = hglib.revsymbol(self.repo, brev).bookmarks() if bookmarks and brev not in bookmarks: # The revision that we are updating into has bookmarks, # but the user did not refer to the revision by one of them # (probably used a revision number or hash) # Ask the user if it wants to update to one of these bookmarks # instead selectedbookmark = None if len(bookmarks) == 1: if activatebookmarkmode == 'auto': activatebookmark = True else: activatebookmark = qtlib.QuestionMsgBox( _('Activate bookmark?'), _('The selected revision (%s) has a bookmark on it ' 'called "%s".

                                                                                                            Do you want to activate ' 'it?
                                                                                                            ' 'You can disable this prompt by configuring ' 'Settings/Workbench/Activate Bookmarks') \ % (rev, hglib.tounicode(bookmarks[0]))) if activatebookmark: selectedbookmark = hglib.tounicode(bookmarks[0]) else: # Even in auto mode, when there is more than one bookmark # we must ask the user which one must be activated selectedbookmark = qtlib.ChoicePrompt( _('Activate bookmark?'), _('The selected revision (%s) has %d ' 'bookmarks on it.

                                                                                                            Select the bookmark that you ' 'want to activate and click OK.' "

                                                                                                            Click Cancel if you don't want to " 'activate any of them.

                                                                                                            ' 'You can disable this prompt by configuring ' 'Settings/Workbench/Activate Bookmarks

                                                                                                            ') \ % (rev, len(bookmarks)), self, [hglib.tounicode(b) for b in bookmarks], hglib.tounicode(hglib.activebookmark(self.repo))).run() if selectedbookmark: rev = selectedbookmark else: activebookmark = hglib.activebookmark(self.repo) if (activebookmark and hglib.revsymbol(self.repo, brev) == hglib.revsymbol(self.repo, activebookmark)): deactivatebookmark = qtlib.QuestionMsgBox( _('Deactivate current bookmark?'), _('Do you really want to deactivate the %s ' 'bookmark?') % hglib.tounicode(activebookmark)) if deactivatebookmark: cmdline = ['bookmark'] if self.verbose_chk.isChecked(): cmdline += ['--verbose'] cmdline += ['-i', hglib.tounicode(activebookmark)] return self._repoagent.runCommand(cmdline, self) return cmdcore.nullCmdSession() cmdline.append('--rev') cmdline.append(rev) pullpathname = hglib.fromunicode( self.path_combo.currentText()) if pullpathname and pullpathname != b'default': # We must tell mercurial to pull any missing repository # revisions from the selected path. The only way to do so is # to temporarily set the default path to the selected path URL pullpath = self.path_combo.itemData(self.path_combo.currentIndex()) cmdline.append('--config') cmdline.append('paths.default=%s' % pullpath) if self.discard_chk.isChecked(): cmdline.append('--clean') else: cur: context.changectx = self.repo.hgchangectx(b'.') try: node = self.repo.hgchangectx( hglib.revsymbol(self.repo, hglib.fromunicode(rev)).rev()) except (error.LookupError, error.RepoError, EnvironmentError): return cmdcore.nullCmdSession() def isclean() -> bool: '''whether WD is changed''' try: wc = self.repo[None] if wc.modified() or wc.added() or wc.removed(): return False for s in wc.substate: if wc.sub(s).dirty(): return False except EnvironmentError: return False return True def ismergedchange() -> bool: '''whether the local changes are merged (have 2 parents)''' wc = self.repo[None] return len(wc.parents()) == 2 def islocalmerge(p1: context.changectx, p2: context.changectx, clean: Optional[bool] = None) -> bool: if clean is None: clean = isclean() pa = p1.ancestor(p2) return not clean \ and (p1.rev() == pa.rev() or p2.rev() == pa.rev()) def confirmupdate() -> Optional[Text]: msg = _('Detected uncommitted local changes in working tree.\n' 'Please select to continue:\n') data = {'discard': (_('&Discard'), _('Discard - discard local changes, no ' 'backup')), 'shelve': (_('&Shelve'), _('Shelve - move local changes to a patch')), 'merge': (_('&Merge'), _('Merge - allow to merge with local ' 'changes'))} opts = ['discard'] if not ismergedchange(): opts.append('shelve') opts.append('merge') dlg = QMessageBox(QMessageBox.Icon.Question, _('Confirm Update'), '', QMessageBox.StandardButton.Cancel, self) buttonnames = {} for name in opts: label, desc = data[name] msg += '\n' msg += desc btn = dlg.addButton(label, QMessageBox.ButtonRole.ActionRole) buttonnames[btn] = name dlg.setDefaultButton(QMessageBox.StandardButton.Cancel) dlg.setText(msg) dlg.exec() return buttonnames.get(dlg.clickedButton()) # If merge-by-default, we want to merge whenever possible, # without prompting user (similar to command-line behavior) defaultmerge = self.merge_chk.isChecked() clean = isclean() if clean: cmdline.append('--check') elif not defaultmerge: clicked = confirmupdate() if clicked == 'discard': cmdline.append('--clean') elif clicked == 'shelve': from tortoisehg.hgqt import shelve dlg = shelve.ShelveDialog(self._repoagent, self) dlg.finished.connect(dlg.deleteLater) dlg.exec() return cmdcore.nullCmdSession() elif clicked == 'merge': cmdline.append('--merge') else: return cmdcore.nullCmdSession() elif not islocalmerge(cur, node, clean): cmdline.append('--merge') return self._repoagent.runCommand(cmdline, self) @pyqtSlot(bool) def show_options(self, visible: bool) -> None: self.merge_chk.setVisible(visible) self.autoresolve_chk.setVisible(visible) @pyqtSlot(int) def _updatePathComboTooltip(self, idx: int) -> None: self.path_combo.setToolTip(self.path_combo.itemData(idx)) class UpdateDialog(cmdui.CmdControlDialog): def __init__(self, repoagent: RepoAgent, rev: Optional[Union[Text, pycompat.unicode]] = None, parent: Optional[QWidget] = None, opts: Optional[UpdateOpts] = None) -> None: super(UpdateDialog, self).__init__(parent) if opts is None: opts = {} self._repoagent = repoagent self.setWindowTitle(_('Update - %s') % repoagent.displayName()) self.setWindowIcon(qtlib.geticon('hg-update')) self.setObjectName('update') self.setRunButtonText(_('&Update')) self.setCommandWidget(UpdateWidget(repoagent, rev, self, opts)) self.commandFinished.connect(self._checkMergeConflicts) @pyqtSlot(int) def _checkMergeConflicts(self, ret: int) -> None: if ret != 1: return qtlib.InfoMsgBox(_('Merge caused file conflicts'), _('File conflicts need to be resolved')) dlg = resolve.ResolveDialog(self._repoagent, self) dlg.exec() if not self.isLogVisible(): self.reject() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730554658.0 tortoisehg-6.9/tortoisehg/hgqt/updatecheck.py0000644000000000000000000001135214711425442020307 0ustar00rootroot# updatecheck.py - Check website for TortoiseHg updates # # Copyright 2007 TK Soh # Copyright 2007 Steve Borho # Copyright 2010 Yuki KODAMA # Copyright 2010 Johan Samyn # Copyright 2020 Matt Harbison # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import platform import re import sys from .qtcore import ( QObject, QUrl, pyqtSignal, pyqtSlot, ) from .qtnetwork import ( QNetworkAccessManager, QNetworkRequest, ) from mercurial import ( pycompat, ) from ..util import ( version, ) class Checker(QObject): # Provides the new version string and download URL when an update is # available. updateAvailable = pyqtSignal(str, str) # Update check completed without an available update updateUnavailable = pyqtSignal() def __init__(self, parent=None): super(Checker, self).__init__(parent) self._newverreply = None @pyqtSlot() def query(self): verurl = 'https://www.mercurial-scm.org/release/tortoisehg/latest.dat' # If we use QNetworkAccessManager elsewhere, it should be shared # through the application. self._netmanager = QNetworkAccessManager(self) self._newverreply = self._netmanager.get(QNetworkRequest(QUrl(verurl))) self._newverreply.finished.connect(self._uFinished) @pyqtSlot() def _uFinished(self): newver = (0,0,0) reply = self._newverreply assert reply is not None try: data = reply.readAll().data() finally: reply.close() self._newverreply = None # Simulate a User-Agent string for platforms with an entry in the file. # https://developers.whatismybrowser.com/useragents/explore/operating_system_name useragent = "unknown" if sys.platform == 'win32': from win32process import ( # pytype: disable=import-error IsWow64Process as IsX64 ) if IsX64(): useragent = "Windows WOW64" else: import struct width = struct.calcsize("P") * 8 useragent = width == 64 and 'Windows x64' or 'Windows' elif sys.platform == 'darwin': # Mac packages will be universal binaries, but try to include the # architecture so that older architectures can eventually be # dropped from the current installer, and the last of the older # architecture offered independently. useragent = "Macintosh" arch = platform.processor() if arch == 'i386': useragent += "; Intel" candidates = {} # Extra check to ensure the regex returned from the server is safe # before using it. def _check_regex(p): # Clear any simple groups. Example: ``.*Windows.*(WOW|x)64.*`` p = re.sub(r"\([0-9A-Za-z|]+\)", "", p) # Now the regex should be a simple alphanumeric or wildcards return re.match("^[A-Za-z0-9.*]+$", p) # https://www.mercurial-scm.org/wiki/Packaging#Version_information_protocol # priority \t version \t user-agent-regex \t download url \t desc for line in pycompat.sysstr(data).splitlines(): try: parts = line.strip().split("\t") pattern = parts[2] if not _check_regex(pattern): print("Ignoring upgrade pattern %s" % pattern) continue if not re.match(pattern, useragent): continue prio = int(parts[0].strip()) candidates[prio] = (parts[1].strip(), parts[3].strip()) except (IndexError, ValueError): pass if not candidates: self.updateUnavailable.emit() return prio = [p for p in sorted(candidates.keys())][0] newverstr, upgradeurl = candidates[prio] try: # Convert to a version string that accounts for rc builds. pkg_version = version._build_package_version('stable', newverstr) newver = tuple([int(p) for p in pkg_version.split('.')]) thgv = version.package_version() curver = tuple([int(p) for p in thgv.split('.')]) except ValueError: curver = (0, 0, 0) if newver > curver: self.updateAvailable.emit(newverstr, upgradeurl) else: self.updateUnavailable.emit() def close(self): if self._newverreply: self._newverreply.abort() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730809007.0 tortoisehg-6.9/tortoisehg/hgqt/visdiff.py0000644000000000000000000006462114712406257017474 0ustar00rootroot# visdiff.py - launch external visual diff tools # # Copyright 2009 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os import re import stat import subprocess import threading from typing import ( Dict, Text, Tuple, Union, ) from .qtcore import ( QTimer, pyqtSlot, ) from .qtgui import ( QComboBox, QDialog, QDialogButtonBox, QHBoxLayout, QKeySequence, QLabel, QListWidget, QMessageBox, QShortcut, QVBoxLayout, ) from mercurial import ( copies, error, match, pycompat, scmutil, util, ) from mercurial.utils import ( procutil, stringutil, ) from ..util import hglib from ..util.i18n import _ from . import qtlib if hglib.TYPE_CHECKING: from typing import ( Any, Iterable, List, Optional, Sequence, Set, ) from mercurial import ( localrepo, ui as uimod, ) from .qtgui import ( QListWidgetItem, ) from ..util.typelib import ( DiffTools, HgContext, ) # Destination name, source name, dest modification time FnsAndMtime = Tuple[bytes, bytes, float] # Match parent2 first, so 'parent1?' will match both parent1 and parent _regex = rb'\$(parent2|parent1?|child|plabel1|plabel2|clabel|repo|phash1|phash2|chash)' _nonexistant = _('[non-existant]') # This global counter is incremented for each visual diff done in a session # It ensures that the names for snapshots created do not collide. _diffCount = 0 def snapshotset(repo: localrepo.localrepository, ctxs: Sequence[HgContext], sa: List[Set[bytes]], sb: List[Set[bytes]], copies: Dict[bytes, bytes], copyworkingdir: bool = False) -> Tuple[List[Optional[bytes]], List[bytes], List[List[FnsAndMtime]]]: '''snapshot files from parent-child set of revisions''' ctx1a, ctx1b, ctx2 = ctxs mod_a, add_a, rem_a = sa mod_b, add_b, rem_b = sb global _diffCount _diffCount += 1 if copies: sources = set(copies.values()) else: sources = set() # Always make a copy of ctx1a files1a = sources | mod_a | rem_a | ((mod_b | add_b) - add_a) dir1a, fns_mtime1a = snapshot(repo, files1a, ctx1a) label1a = b'@%d:%s' % (ctx1a.rev(), ctx1a) # Make a copy of ctx1b if relevant if ctx1b: files1b = sources | mod_b | rem_b | ((mod_a | add_a) - add_b) dir1b, fns_mtime1b = snapshot(repo, files1b, ctx1b) label1b = b'@%d:%s' % (ctx1b.rev(), ctx1b) else: dir1b = None fns_mtime1b: List[FnsAndMtime] = [] label1b = b'' # Either make a copy of ctx2, or use working dir directly if relevant. files2 = mod_a | add_a | mod_b | add_b if ctx2.rev() is None: if copyworkingdir: dir2, fns_mtime2 = snapshot(repo, files2, ctx2) else: dir2 = repo.root fns_mtime2: List[FnsAndMtime] = [] # If ctx2 is working copy, use empty label. label2 = b'' else: dir2, fns_mtime2 = snapshot(repo, files2, ctx2) label2 = b'@%d:%s' % (ctx2.rev(), ctx2) dirs = [dir1a, dir1b, dir2] labels = [label1a, label1b, label2] fns_and_mtimes = [fns_mtime1a, fns_mtime1b, fns_mtime2] return dirs, labels, fns_and_mtimes def snapshot(repo: localrepo.localrepository, files: Iterable[bytes], ctx: HgContext) -> Tuple[bytes, List[FnsAndMtime]]: '''snapshot repo files as of some revision, returning a tuple with the created temporary snapshot dir and tuples of file info if using working copy.''' dirname = os.path.basename(repo.root) or b'root' dirname += b'.%d' % _diffCount if ctx.rev() is not None: dirname += b'.%d' % ctx.rev() base = os.path.join(qtlib.gettempdir(), dirname) fns_and_mtime = [] if not os.path.exists(base): os.makedirs(base) for fn in files: assert isinstance(fn, bytes), repr(fn) wfn = util.pconvert(fn) if wfn not in ctx: # File doesn't exist; could be a bogus modify continue dest = os.path.join(base, wfn) if os.path.exists(dest): # File has already been snapshot continue destdir = os.path.dirname(dest) try: if not os.path.isdir(destdir): os.makedirs(destdir) fctx = ctx[wfn] data = repo.wwritedata(wfn, fctx.data()) with open(dest, 'wb') as f: f.write(data) if b'x' in fctx.flags(): util.setflags(dest, False, True) if ctx.rev() is None: fns_and_mtime.append((dest, repo.wjoin(fn), os.lstat(dest).st_mtime)) else: # Make file read/only, to indicate it's static (archival) nature os.chmod(dest, stat.S_IREAD) except EnvironmentError: pass return base, fns_and_mtime def launchtool(cmd: bytes, opts: Sequence[bytes], replace: Dict[Text, Union[bytes, Text]], block: bool) -> None: # TODO: fix up the bytes vs str in the replacement mapping def quote(match): key = pycompat.sysstr(match.group()[1:]) return procutil.shellquote(replace[key]) args = b' '.join(opts) args = re.sub(_regex, quote, args) cmdline = procutil.shellquote(cmd) + b' ' + args try: proc = subprocess.Popen(procutil.tonativestr(cmdline), shell=True, creationflags=qtlib.openflags, stderr=subprocess.PIPE, stdout=subprocess.PIPE, stdin=subprocess.PIPE) if block: proc.communicate() except (OSError, EnvironmentError) as e: QMessageBox.warning(None, _('Tool launch failure'), _('%s : %s') % (hglib.tounicode(cmd), hglib.exception_str(e))) def filemerge(ui: uimod.ui, fname: Text, patchedfname: Text) -> None: 'Launch the preferred visual diff tool for two text files' detectedtools = hglib.difftools(ui) if not detectedtools: QMessageBox.warning(None, _('No diff tool found'), _('No visual diff tools were detected')) return None preferred = besttool(ui, detectedtools) diffcmd, diffopts, mergeopts = detectedtools[preferred] replace = { "parent": fname, "parent1": fname, "plabel1": fname + _('[working copy]'), "repo": '', "phash1": '', "phash2": '', "chash": '', "child": patchedfname, "clabel": _('[original]'), } launchtool(diffcmd, diffopts, replace, True) def besttool(ui: uimod.ui, tools: DiffTools, force: Optional[bytes] = None) -> bytes: 'Select preferred or highest priority tool from dictionary' preferred = force or ui.config(b'tortoisehg', b'vdiff') or \ ui.config(b'ui', b'merge') if preferred and preferred in tools: return preferred pris = [] for t in tools.keys(): try: p = ui.configint(b'merge-tools', t + b'.priority') except error.ConfigError as inst: ui.warn(b'visdiff: %s\n' % stringutil.forcebytestr(inst)) p = 0 assert p is not None # help pytype: default *.priority is 0 pris.append((-p, t)) return sorted(pris)[0][1] def visualdiff(ui: uimod.ui, repo: localrepo.localrepository, pats: Sequence[bytes], opts: Dict[Text, Any]) -> Optional[FileSelectionDialog]: revs = opts.get('rev', []) change = opts.get('change') try: ctx1b = None if change: # TODO: figure out what's the expect type if isinstance(change, pycompat.unicode): change = hglib.fromunicode(change) if isinstance(change, bytes): ctx2 = hglib.revsymbol(repo, change) else: ctx2 = repo[change] p = ctx2.parents() if len(p) > 1: ctx1a, ctx1b = p else: ctx1a = p[0] else: n1, n2 = scmutil.revpair(repo, [hglib.fromunicode(rev) for rev in revs]) ctx1a, ctx2 = repo[n1], repo[n2] p = ctx2.parents() if not revs and len(p) > 1: ctx1b = p[1] except (error.LookupError, error.RepoError): QMessageBox.warning(None, _('Unable to find changeset'), _('You likely need to refresh this application')) return None return visual_diff(ui, repo, pats, ctx1a, ctx1b, ctx2, opts.get('tool'), opts.get('mainapp'), revs) def visual_diff(ui: uimod.ui, repo: localrepo.localrepository, pats: Sequence[bytes], ctx1a: HgContext, ctx1b: Optional[HgContext], ctx2: HgContext, tool: bytes, mainapp: bool = False, revs: Optional[Sequence[int]] = None) -> Optional[FileSelectionDialog]: """Opens the visual diff tool on the given file patterns in the given contexts. If a ``tool`` is provided, it is used, otherwise the diff tool launched is determined by the configuration. For a 2-way diff, ``ctx1a`` is the context for the first revision, ``ctxb1`` is None, and ``ctx2`` is the context for the second revision. For a 3-way diff, ``ctx2`` is the wdir context and ``ctx1a`` and ``ctx1b`` are the "local" and "other" contexts respectively. """ # TODO: Figure out how to get rid of the `revs` argument if revs is None: revs = [] pats = scmutil.expandpats(pats) m = match.match(repo.root, b'', pats, None, None, b'relpath', ctx=ctx2) n2 = ctx2.node() def _status(ctx: HgContext) -> Tuple[List[bytes], List[bytes], List[bytes]]: status = repo.status(ctx.node(), n2, m) return status.modified, status.added, status.removed mod_a, add_a, rem_a = pycompat.maplist(set, _status(ctx1a)) if ctx1b: mod_b, add_b, rem_b = pycompat.maplist(set, _status(ctx1b)) cpy = copies.mergecopies(repo, ctx1a, ctx1b, ctx1a.ancestor(ctx1b))[0].copy else: cpy = copies.pathcopies(ctx1a, ctx2) mod_b, add_b, rem_b = set(), set(), set() cpy = { dst: src for dst, src in cpy.items() if m(src) or m(dst) } MA = mod_a | add_a | mod_b | add_b MAR = MA | rem_a | rem_b if not MAR: QMessageBox.information(None, _('No file changes'), _('There are no file changes to view')) return None detectedtools = hglib.difftools(repo.ui) if not detectedtools: QMessageBox.warning(None, _('No diff tool found'), _('No visual diff tools were detected')) return None preferred = besttool(repo.ui, detectedtools, tool) # Build tool list based on diff-patterns matches toollist = set() patterns = repo.ui.configitems(b'diff-patterns') patterns = [(p, t) for p,t in patterns if t in detectedtools] for path in MAR: for pat, tool in patterns: mf = match.match(repo.root, b'', [pat]) if mf(path): toollist.add(tool) break else: toollist.add(preferred) cto = list(cpy.keys()) for path in MAR: if path in cto: hascopies = True break else: hascopies = False force = repo.ui.configbool(b'tortoisehg', b'forcevdiffwin') if len(toollist) > 1 or (hascopies and len(MAR) > 1) or force: usewin = True else: preferred = toollist.pop() dirdiff = repo.ui.configbool(b'merge-tools', preferred + b'.dirdiff') dir3diff = repo.ui.configbool(b'merge-tools', preferred + b'.dir3diff') usewin = repo.ui.configbool(b'merge-tools', preferred + b'.usewin') if not usewin and len(MAR) > 1: if ctx1b is not None: usewin = not dir3diff else: usewin = not dirdiff if usewin: # Multiple required tools, or tool does not support directory diffs sa = [mod_a, add_a, rem_a] sb = [mod_b, add_b, rem_b] dlg = FileSelectionDialog(repo, pats, ctx1a, sa, ctx1b, sb, ctx2, cpy) return dlg # We can directly use the selected tool, without a visual diff window diffcmd, diffopts, mergeopts = detectedtools[preferred] # Disable 3-way merge if there is only one parent or no tool support do3way = False if ctx1b: if mergeopts: do3way = True args = mergeopts else: args = diffopts if str(ctx1b.rev()) in revs: ctx1a = ctx1b else: args = diffopts def dodiff(): assert not (hascopies and len(MAR) > 1), \ 'dodiff cannot handle copies when diffing dirs' sa = [mod_a, add_a, rem_a] sb = [mod_b, add_b, rem_b] ctxs = [ctx1a, ctx1b, ctx2] # If more than one file, diff on working dir copy. copyworkingdir = len(MAR) > 1 dirs, labels, fns_and_mtimes = snapshotset(repo, ctxs, sa, sb, cpy, copyworkingdir) dir1a, dir1b, dir2 = dirs label1a, label1b, label2 = labels fns_and_mtime = fns_and_mtimes[2] if len(MAR) > 1 and label2 == b'': label2 = b'working files' def getfile( fname: bytes, dir: bytes, label: bytes ) -> Tuple[bytes, bytes]: file = os.path.join(qtlib.gettempdir(), dir, fname) if os.path.isfile(file): return fname+label, file nullfile = os.path.join(qtlib.gettempdir(), b'empty') fp = open(nullfile, 'wb') fp.close() return (hglib.fromunicode(_nonexistant, 'replace') + label, nullfile) # If only one change, diff the files instead of the directories # Handle bogus modifies correctly by checking if the files exist if len(MAR) == 1: file2 = MAR.pop() file2local = util.localpath(file2) if file2 in cto: file1 = util.localpath(cpy[file2]) else: file1 = file2 label1a, dir1a = getfile(file1, dir1a, label1a) if do3way: label1b, dir1b = getfile(file1, dir1b, label1b) label2, dir2 = getfile(file2local, dir2, label2) if do3way: label1a += b'[local]' label1b += b'[other]' label2 += b'[merged]' repoagent = repo._pyqtobj # TODO # TODO: sort out bytes vs str replace: Dict[Text, Union[bytes, Text]] = { "parent": dir1a, "parent1": dir1a, "parent2": dir1b, "plabel1": label1a, "plabel2": label1b, "phash1": str(ctx1a), "phash2": str(ctx1b), "repo": hglib.fromunicode(repoagent.displayName()), "clabel": label2, "child": dir2, "chash": str(ctx2), } launchtool(diffcmd, args, replace, True) # detect if changes were made to mirrored working files for copy_fn, working_fn, mtime in fns_and_mtime: try: if os.lstat(copy_fn).st_mtime != mtime: ui.debug(b'file changed while diffing. ' b'Overwriting: %s (src: %s)\n' % (working_fn, copy_fn)) util.copyfile(copy_fn, working_fn) except EnvironmentError: pass # Ignore I/O errors or missing files if mainapp: dodiff() else: # We are not the main application, so this must be done in a # background thread thread = threading.Thread(target=dodiff, name='visualdiff') thread.setDaemon(True) thread.start() class FileSelectionDialog(QDialog): 'Dialog for selecting visual diff candidates' curFile: Optional[bytes] def __init__(self, repo: localrepo.localrepository, pats: Sequence[bytes], ctx1a: HgContext, sa: List[Set[bytes]], ctx1b: Optional[HgContext], sb: List[Set[bytes]], ctx2: HgContext, cpy: Dict[bytes, bytes]) -> None: 'Initialize the Dialog' QDialog.__init__(self) self.setWindowIcon(qtlib.geticon('visualdiff')) if ctx2.rev() is None: title = _('working changes') elif ctx1a == ctx2.parents()[0]: title = _('changeset %d:%s') % (ctx2.rev(), ctx2) else: title = _('revisions %d:%s to %d:%s') \ % (ctx1a.rev(), ctx1a, ctx2.rev(), ctx2) title = _('Visual Diffs - ') + title if pats: title += _(' filtered') self.setWindowTitle(title) self.resize(650, 250) repoagent = repo._pyqtobj # TODO self.reponame = hglib.fromunicode(repoagent.displayName()) self.ctxs = (ctx1a, ctx1b, ctx2) self.filesets = (sa, sb) self.copies = cpy self.repo = repo self.curFile = None layout = QVBoxLayout() self.setLayout(layout) lbl = QLabel(_('Temporary files are removed when this dialog ' 'is closed')) layout.addWidget(lbl) list = QListWidget() layout.addWidget(list) self.list = list list.itemActivated.connect(self.itemActivated) tools = hglib.difftools(repo.ui) preferred = besttool(repo.ui, tools) self.diffpath, self.diffopts, self.mergeopts = tools[preferred] self.tools = tools self.preferred = preferred if len(tools) > 1: hbox = QHBoxLayout() combo = QComboBox() lbl = QLabel(_('Select Tool:')) lbl.setBuddy(combo) hbox.addWidget(lbl) hbox.addWidget(combo, 1) layout.addLayout(hbox) for i, name in enumerate(tools.keys()): combo.addItem(hglib.tounicode(name)) if name == preferred: defrow = i combo.setCurrentIndex(defrow) list.currentRowChanged.connect(self.updateToolSelection) combo.currentTextChanged.connect(self.onToolSelected) self.toolCombo = combo bb = QDialogButtonBox() layout.addWidget(bb) if ctx2.rev() is None: pass # Do not offer directory diffs when the working directory # is being referenced directly elif ctx1b: self.p1button = bb.addButton(_('Dir diff to p1'), QDialogButtonBox.ButtonRole.ActionRole) self.p1button.pressed.connect(self.p1dirdiff) self.p2button = bb.addButton(_('Dir diff to p2'), QDialogButtonBox.ButtonRole.ActionRole) self.p2button.pressed.connect(self.p2dirdiff) self.p3button = bb.addButton(_('3-way dir diff'), QDialogButtonBox.ButtonRole.ActionRole) self.p3button.pressed.connect(self.threewaydirdiff) else: self.dbutton = bb.addButton(_('Directory diff'), QDialogButtonBox.ButtonRole.ActionRole) self.dbutton.pressed.connect(self.p1dirdiff) self.updateDiffButtons(preferred) QShortcut(QKeySequence('CTRL+D'), self.list, self.activateCurrent) QTimer.singleShot(0, self.fillmodel) @pyqtSlot() def fillmodel(self) -> None: repo = self.repo sa, sb = self.filesets self.dirs, self.revs = snapshotset(repo, self.ctxs, sa, sb, self.copies)[:2] def get_status(file: bytes, mod: Set[bytes], add: Set[bytes], rem: Set[bytes]) -> Text: if file in mod: return 'M' if file in add: return 'A' if file in rem: return 'R' return ' ' mod_a, add_a, rem_a = sa for f in sorted(mod_a | add_a | rem_a): status = get_status(f, mod_a, add_a, rem_a) row = '%s %s' % (status, hglib.tounicode(f)) self.list.addItem(row) @pyqtSlot(str) def onToolSelected(self, tool: Text) -> None: 'user selected a tool from the tool combo' tool = hglib.fromunicode(tool) # pytype: disable=annotation-type-mismatch assert tool in self.tools, tool self.diffpath, self.diffopts, self.mergeopts = self.tools[tool] self.updateDiffButtons(tool) @pyqtSlot(int) def updateToolSelection(self, row: int) -> None: 'user selected a file, pick an appropriate tool from combo' if row == -1: return repo = self.repo patterns = repo.ui.configitems(b'diff-patterns') patterns = [(p, t) for p,t in patterns if t in self.tools] fname = self.list.item(row).text()[2:] fname = hglib.fromunicode(fname) if self.curFile == fname: return self.curFile = fname for pat, tool in patterns: mf = match.match(repo.root, b'', [pat]) if mf(fname): selected = tool break else: selected = self.preferred for i, name in enumerate(self.tools.keys()): if name == selected: self.toolCombo.setCurrentIndex(i) def activateCurrent(self) -> None: 'CTRL+D has been pressed' row = self.list.currentRow() if row >= 0: self.launch(self.list.item(row).text()[2:]) def itemActivated(self, item: QListWidgetItem) -> None: 'A QListWidgetItem has been activated' self.launch(item.text()[2:]) def updateDiffButtons(self, tool: bytes) -> None: # hg>=4.4: configbool() may return None as the default is set to None if hasattr(self, 'p1button'): d2 = self.repo.ui.configbool(b'merge-tools', tool + b'.dirdiff') d3 = self.repo.ui.configbool(b'merge-tools', tool + b'.dir3diff') self.p1button.setEnabled(bool(d2)) self.p2button.setEnabled(bool(d2)) self.p3button.setEnabled(bool(d3)) elif hasattr(self, 'dbutton'): d2 = self.repo.ui.configbool(b'merge-tools', tool + b'.dirdiff') self.dbutton.setEnabled(bool(d2)) def launch(self, fname: Text) -> None: fname = hglib.fromunicode(fname) # pytype: disable=annotation-type-mismatch source = self.copies.get(fname, None) dir1a, dir1b, dir2 = self.dirs rev1a, rev1b, rev2 = self.revs ctx1a, ctx1b, ctx2 = self.ctxs # pytype: disable=redundant-function-type-comment def getfile(ctx: HgContext, dir: bytes, fname: bytes, source: Optional[bytes]) -> Tuple[bytes, bytes]: m = ctx.manifest() if fname in m: path = os.path.join(dir, util.localpath(fname)) return fname, path elif source and source in m: path = os.path.join(dir, util.localpath(source)) return source, path else: nullfile = os.path.join(qtlib.gettempdir(), b'empty') fp = open(nullfile, 'w') fp.close() return hglib.fromunicode(_nonexistant, 'replace'), nullfile # pytype: enable=redundant-function-type-comment local, file1a = getfile(ctx1a, dir1a, fname, source) if ctx1b: other, file1b = getfile(ctx1b, dir1b, fname, source) else: other, file1b = fname, b'' fname, file2 = getfile(ctx2, dir2, fname, None) # pytype: disable=annotation-type-mismatch label1a = local+rev1a label1b = other+rev1b label2 = fname+rev2 if ctx1b: label1a += b'[local]' label1b += b'[other]' label2 += b'[merged]' # Function to quote file/dir names in the argument string replace: Dict[Text, Union[bytes, Text]] = { "parent": file1a, "parent1": file1a, "plabel1": label1a, "parent2": file1b, "plabel2": label1b, "repo": self.reponame, "phash1": str(ctx1a), "phash2": str(ctx1b), "chash": str(ctx2), "clabel": label2, "child": file2, } args = ctx1b and self.mergeopts or self.diffopts launchtool(self.diffpath, args, replace, False) def p1dirdiff(self) -> None: dir1a, dir1b, dir2 = self.dirs rev1a, rev1b, rev2 = self.revs ctx1a, ctx1b, ctx2 = self.ctxs replace: Dict[Text, Union[bytes, Text]] = { "parent": dir1a, "parent1": dir1a, "plabel1": rev1a, "repo": self.reponame, "phash1": str(ctx1a), "phash2": str(ctx1b), "chash": str(ctx2), "parent2": '', "plabel2": '', "clabel": rev2, "child": dir2, } launchtool(self.diffpath, self.diffopts, replace, False) def p2dirdiff(self) -> None: dir1a, dir1b, dir2 = self.dirs rev1a, rev1b, rev2 = self.revs ctx1a, ctx1b, ctx2 = self.ctxs replace: Dict[Text, Union[bytes, Text]] = { "parent": dir1b, "parent1": dir1b, "plabel1": rev1b, "repo": self.reponame, "phash1": str(ctx1a), "phash2": str(ctx1b), "chash": str(ctx2), "parent2": '', "plabel2": '', "clabel": rev2, "child": dir2, } launchtool(self.diffpath, self.diffopts, replace, False) def threewaydirdiff(self) -> None: dir1a, dir1b, dir2 = self.dirs rev1a, rev1b, rev2 = self.revs ctx1a, ctx1b, ctx2 = self.ctxs replace: Dict[Text, Union[bytes, Text]] = { "parent": dir1a, "parent1": dir1a, "plabel1": rev1a, "repo": self.reponame, "phash1": str(ctx1a), "phash2": str(ctx1b), "chash": str(ctx2), "parent2": dir1b, "plabel2": rev1b, "clabel": dir2, "child": rev2, } launchtool(self.diffpath, self.mergeopts, replace, False) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/wctxcleaner.py0000644000000000000000000001065714672254332020361 0ustar00rootroot# wctxcleaner.py - check and clean dirty working directory # # Copyright 2011 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations from .qtcore import ( QObject, QThread, pyqtSignal, pyqtSlot, ) from .qtgui import ( QMessageBox, QWidget, ) from mercurial import ( cmdutil, error, hg, ) from ..util.i18n import _ from . import ( cmdcore, cmdui, qtlib, thgrepo, ) def _checkchanged(repo): try: cmdutil.bailifchanged(repo) return False except error.Abort: return True class CheckThread(QThread): def __init__(self, repo, parent): QThread.__init__(self, parent) self.repo = hg.repository(repo.ui, repo.root) self.results = (False, 1) self.canceled = False def run(self): self.repo.invalidate() self.repo.invalidatedirstate() unresolved = False for root, path, status in thgrepo.recursiveMergeStatus(self.repo): if self.canceled: return if status == b'u': unresolved = True break wctx = self.repo[None] try: dirty = _checkchanged(self.repo) or unresolved self.results = (dirty, len(wctx.parents())) except EnvironmentError: self.results = (True, len(wctx.parents())) def cancel(self): self.canceled = True class WctxCleaner(QObject): checkStarted = pyqtSignal() checkFinished = pyqtSignal(bool, int) # clean, parents def __init__(self, repoagent, parent=None): super(WctxCleaner, self).__init__(parent) assert parent is None or isinstance(parent, QWidget), parent self._repoagent = repoagent self._cmdsession = cmdcore.nullCmdSession() self._checkth = CheckThread(repoagent.rawRepo(), self) self._checkth.started.connect(self.checkStarted) self._checkth.finished.connect(self._onCheckFinished) self._clean = False @pyqtSlot() def check(self): """Check states of working directory asynchronously""" if self._checkth.isRunning(): return self._checkth.start() def cancelCheck(self): self._checkth.cancel() self._checkth.wait() def isChecking(self): return self._checkth.isRunning() def isCheckCanceled(self): return self._checkth.canceled def isClean(self): return self._clean @pyqtSlot() def _onCheckFinished(self): dirty, parents = self._checkth.results self._clean = not dirty self.checkFinished.emit(not dirty, parents) @pyqtSlot(str) def runCleaner(self, cmd: str) -> None: """Clean working directory by the specified action""" if cmd == 'commit': self.launchCommitDialog() elif cmd == 'shelve': self.launchShelveDialog() elif cmd.startswith('discard'): confirm = cmd != 'discard:noconfirm' self.discardChanges(confirm) else: raise ValueError('unknown command: %s' % cmd) def launchCommitDialog(self): from tortoisehg.hgqt import commit dlg = commit.CommitDialog(self._repoagent, [], {}, self.parent()) dlg.finished.connect(dlg.deleteLater) dlg.exec() self.check() def launchShelveDialog(self): from tortoisehg.hgqt import shelve dlg = shelve.ShelveDialog(self._repoagent, self.parent()) dlg.finished.connect(dlg.deleteLater) dlg.exec() self.check() def discardChanges(self, confirm=True): if confirm: labels = [(QMessageBox.StandardButton.Yes, _('&Discard')), (QMessageBox.StandardButton.No, _('Cancel'))] if not qtlib.QuestionMsgBox(_('Confirm Discard'), _('Discard outstanding changes to working directory?'), labels=labels, parent=self.parent()): return cmdline = ['update', '--clean', '--rev', '.'] self._cmdsession = sess = self._repoagent.runCommand(cmdline, self) sess.commandFinished.connect(self._onCommandFinished) @pyqtSlot(int) def _onCommandFinished(self, ret): if ret == 0: self.check() else: cmdui.errorMessageBox(self._cmdsession, self.parent()) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730809007.0 tortoisehg-6.9/tortoisehg/hgqt/webconf.py0000644000000000000000000003451014712406257017457 0ustar00rootroot# webconf.py - Widget to show/edit hgweb config # # Copyright 2010 Yuya Nishihara # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os from typing import ( Optional, ) from .qtcore import ( QAbstractTableModel, QModelIndex, Qt, pyqtSlot, ) from .qtgui import ( QDialog, QDialogButtonBox, QFileDialog, QFontMetrics, QFormLayout, QHBoxLayout, QLineEdit, QStyle, QToolButton, QWidget, ) from ..util import ( hglib, wconfig, ) from ..util.i18n import _ from . import qtlib from .webconf_ui import Ui_WebconfForm if hglib.TYPE_CHECKING: from typing import ( Any, Iterable, List, Text, Tuple, ) from .qtcore import ( QObject, ) from ..util.typelib import ( IniConfig ) _FILE_FILTER = ';;'.join([_('Config files (*.conf *.config *.ini)'), _('All files (*)')]) class WebconfForm(QWidget): """Widget to show/edit webconf""" def __init__(self, parent: Optional[QWidget] = None, webconf: Optional[IniConfig] = None) -> None: super(WebconfForm, self).__init__(parent, acceptDrops=True) self._qui = Ui_WebconfForm() self._qui.setupUi(self) self._initicons() self._qui.path_edit.currentIndexChanged.connect(self._updateview) self._qui.path_edit.currentIndexChanged.connect(self._updateform) self._qui.add_button.clicked.connect(self._addpathmap) self.setwebconf(webconf or wconfig.config()) self._updateform() def _initicons(self) -> None: def setstdicon(w, name): w.setIcon(self.style().standardIcon(name)) setstdicon(self._qui.open_button, QStyle.StandardPixmap.SP_DialogOpenButton) setstdicon(self._qui.save_button, QStyle.StandardPixmap.SP_DialogSaveButton) self._qui.add_button.setIcon(qtlib.geticon('hg-add')) self._qui.edit_button.setIcon(qtlib.geticon('edit-file')) self._qui.remove_button.setIcon(qtlib.geticon('hg-remove')) def dragEnterEvent(self, event): if self._getlocalpath_from_dropevent(event): event.setDropAction(Qt.DropAction.LinkAction) event.accept() def dropEvent(self, event): localpath = self._getlocalpath_from_dropevent(event) if localpath: event.setDropAction(Qt.DropAction.LinkAction) event.accept() self._addpathmap(localpath=localpath) @staticmethod def _getlocalpath_from_dropevent(event) -> Optional[str]: m = event.mimeData() if m.hasFormat('text/uri-list') and len(m.urls()) == 1: return m.urls()[0].toLocalFile() def setwebconf(self, webconf: IniConfig) -> None: """set current webconf object""" path = hglib.tounicode(getattr(webconf, 'path', None) or '') i = self._qui.path_edit.findText(path) if i < 0: i = 0 self._qui.path_edit.insertItem(i, path, webconf) self._qui.path_edit.setCurrentIndex(i) @property def webconf(self) -> IniConfig: """current webconf object""" def curconf(w): i = w.currentIndex() _path, conf = w.itemText(i), w.itemData(i) return conf return curconf(self._qui.path_edit) @property def _webconfmodel(self) -> WebconfModel: """current model object of webconf""" m = self._qui.repos_view.model() assert isinstance(m, WebconfModel) return m @pyqtSlot() def _updateview(self) -> None: m = WebconfModel(config=self.webconf, parent=self) self._qui.repos_view.setModel(m) self._qui.repos_view.selectionModel().currentChanged.connect( self._updateform) def _updateform(self) -> None: """Update availability of each widget""" self._qui.repos_view.setEnabled(hasattr(self.webconf, 'write')) self._qui.add_button.setEnabled(hasattr(self.webconf, 'write')) self._qui.edit_button.setEnabled( hasattr(self.webconf, 'write') and self._qui.repos_view.currentIndex().isValid()) self._qui.remove_button.setEnabled( hasattr(self.webconf, 'write') and self._qui.repos_view.currentIndex().isValid()) @pyqtSlot() def on_open_button_clicked(self) -> None: path, _filter = QFileDialog.getOpenFileName( self, _('Open hgweb config'), getattr(self.webconf, 'path', None) or '', _FILE_FILTER) if path: self.openwebconf(path) def openwebconf(self, path: Text) -> None: """load the specified webconf file""" path = hglib.fromunicode(path) c = wconfig.readfile(path) c.path = os.path.abspath(path) self.setwebconf(c) @pyqtSlot() def on_save_button_clicked(self) -> None: path, _filter = QFileDialog.getSaveFileName( self, _('Save hgweb config'), getattr(self.webconf, 'path', None) or '', _FILE_FILTER) if path: self.savewebconf(path) def savewebconf(self, path: Text) -> None: """save current webconf to the specified file""" wconfig.writefile(self.webconf, hglib.fromunicode(path)) self.openwebconf(path) # reopen in case file path changed @pyqtSlot() def _addpathmap(self, path: Optional[Text] = None, localpath: Optional[Text] = None) -> None: path, localpath = _PathDialog.getaddpathmap( self, path=path, localpath=localpath, invalidpaths=self._webconfmodel.paths) if path: self._webconfmodel.addpathmap(path, localpath) @pyqtSlot() def on_edit_button_clicked(self) -> None: self.on_repos_view_doubleClicked(self._qui.repos_view.currentIndex()) @pyqtSlot(QModelIndex) def on_repos_view_doubleClicked(self, index: QModelIndex) -> None: assert index.isValid() origpath, origlocalpath = self._webconfmodel.getpathmapat(index.row()) path, localpath = _PathDialog.geteditpathmap( self, path=origpath, localpath=origlocalpath, invalidpaths=set(self._webconfmodel.paths) - {origpath}) if not path: return if path != origpath: # we cannot change config key without reordering self._webconfmodel.removepathmap(origpath) self._webconfmodel.addpathmap(path, localpath) else: self._webconfmodel.setpathmap(path, localpath) @pyqtSlot() def on_remove_button_clicked(self) -> None: index = self._qui.repos_view.currentIndex() assert index.isValid() path, _localpath = self._webconfmodel.getpathmapat(index.row()) self._webconfmodel.removepathmap(path) class _PathDialog(QDialog): """Dialog to add/edit path mapping""" def __init__(self, title: Text, acceptlabel: Text, path: Optional[Text] = None, localpath: Optional[Text] = None, invalidpaths: Optional[Iterable[Text]] = None, parent: Optional[QWidget] = None) -> None: super(_PathDialog, self).__init__(parent) self.setWindowFlags((self.windowFlags() | Qt.WindowType.WindowMinimizeButtonHint) & ~Qt.WindowType.WindowContextHelpButtonHint) self.resize(QFontMetrics(self.font()).horizontalAdvance('M') * 50, self.height()) self.setWindowTitle(title) self._invalidpaths = set(invalidpaths or []) self.setLayout(QFormLayout(fieldGrowthPolicy=QFormLayout.FieldGrowthPolicy.ExpandingFieldsGrow)) self._initfields() self._initbuttons(acceptlabel) self._path_edit.setText(path or os.path.basename(localpath or '')) self._localpath_edit.setText(localpath or '') self._updateform() def _initfields(self) -> None: """initialize input fields""" def addfield(key, label, *extras): edit = QLineEdit(self) edit.textChanged.connect(self._updateform) if extras: field = QHBoxLayout() field.addWidget(edit) for e in extras: field.addWidget(e) else: field = edit self.layout().addRow(label, field) setattr(self, '_%s_edit' % key, edit) addfield('path', _('Path:')) self._localpath_browse_button = QToolButton( icon=self.style().standardIcon(QStyle.StandardPixmap.SP_DialogOpenButton)) addfield('localpath', _('Local Path:'), self._localpath_browse_button) self._localpath_browse_button.clicked.connect(self._browse_localpath) def _initbuttons(self, acceptlabel: Text) -> None: """initialize dialog buttons""" self._buttons = QDialogButtonBox(self) self._accept_button = self._buttons.addButton(QDialogButtonBox.StandardButton.Ok) self._reject_button = self._buttons.addButton(QDialogButtonBox.StandardButton.Cancel) self._accept_button.setText(acceptlabel) self._buttons.accepted.connect(self.accept) self._buttons.rejected.connect(self.reject) self.layout().addRow(self._buttons) @property def path(self) -> Text: """value of path field""" return self._path_edit.text() @property def localpath(self) -> Text: """value of localpath field""" return self._localpath_edit.text() @pyqtSlot() def _browse_localpath(self) -> None: path = QFileDialog.getExistingDirectory(self, _('Select Repository'), self.localpath) if not path: return if os.path.exists(os.path.join(path, '.hgsub')): self._localpath_edit.setText(os.path.join(path, '**')) else: self._localpath_edit.setText(path) if not self.path: self._path_edit.setText(os.path.basename(path)) @pyqtSlot() def _updateform(self) -> None: """update availability of form elements""" self._accept_button.setEnabled(self._isacceptable()) def _isacceptable(self) -> bool: return bool(self.path and self.localpath and self.path not in self._invalidpaths) @classmethod def getaddpathmap(cls, parent: Optional[QWidget], path: Optional[Text] = None, localpath: Optional[Text] = None, invalidpaths: Optional[Iterable[Text]] = None) -> Tuple[Optional[Text], Optional[Text]]: d = cls(title=_('Add Path to Serve'), acceptlabel=_('Add'), path=path, localpath=localpath, invalidpaths=invalidpaths, parent=parent) if d.exec(): return d.path, d.localpath else: return None, None @classmethod def geteditpathmap(cls, parent: Optional[QWidget], path: Optional[Text] = None, localpath: Optional[Text] = None, invalidpaths: Optional[Iterable[Text]] = None) -> Tuple[Optional[Text], Optional[Text]]: d = cls(title=_('Edit Path to Serve'), acceptlabel=_('Edit'), path=path, localpath=localpath, invalidpaths=invalidpaths, parent=parent) if d.exec(): return d.path, d.localpath else: return None, None class WebconfModel(QAbstractTableModel): """Wrapper for webconf object to be a Qt's model object""" _COLUMNS = [(_('Path'),), (_('Local Path'),)] def __init__(self, config: IniConfig, parent: Optional[QObject] = None) -> None: super(WebconfModel, self).__init__(parent) self._config = config def data(self, index: QModelIndex, role: int) -> Any: if not index.isValid(): return None if role == Qt.ItemDataRole.DisplayRole: v = self._config.items(b'paths')[index.row()][index.column()] return hglib.tounicode(v) return None def rowCount(self, parent: QModelIndex = QModelIndex()) -> int: if parent.isValid(): return 0 # no child return len(self._config[b'paths']) def columnCount(self, parent: QModelIndex = QModelIndex()) -> int: if parent.isValid(): return 0 # no child return len(self._COLUMNS) def headerData(self, section: int, orientation: int, role: int) -> Any: if role != Qt.ItemDataRole.DisplayRole or orientation != Qt.Orientation.Horizontal: return None return self._COLUMNS[section][0] @property def paths(self) -> List[Text]: """return list of known paths""" return [hglib.tounicode(e) for e in self._config[b'paths']] def getpathmapat(self, row: int) -> Tuple[Text, ...]: """return pair of (path, localpath) at the specified index""" assert 0 <= row and row < self.rowCount(), row return tuple(hglib.tounicode(e) for e in self._config.items(b'paths')[row]) def addpathmap(self, path: Text, localpath: Text) -> None: """add path mapping to serve""" assert path not in self.paths, path self.beginInsertRows(QModelIndex(), self.rowCount(), self.rowCount()) try: self._config.set(b'paths', hglib.fromunicode(path), hglib.fromunicode(localpath)) finally: self.endInsertRows() def setpathmap(self, path: Text, localpath: Text) -> None: """change path mapping at the specified index""" self._config.set(b'paths', hglib.fromunicode(path), hglib.fromunicode(localpath)) row = self._indexofpath(path) self.dataChanged.emit(self.index(row, 0), self.index(row, self.columnCount())) def removepathmap(self, path: Text) -> None: """remove path from mapping""" row = self._indexofpath(path) self.beginRemoveRows(QModelIndex(), row, row) try: del self._config[b'paths'][hglib.fromunicode(path)] finally: self.endRemoveRows() def _indexofpath(self, path: Text) -> int: path = hglib.fromunicode(path) assert path in self._config[b'paths'], path return list(self._config[b'paths']).index(path) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1299258896.0 tortoisehg-6.9/tortoisehg/hgqt/webconf.ui0000644000000000000000000000614011534217020017425 0ustar00rootroot WebconfForm 0 0 455 300 Webconf Config File: path_edit 0 0 QComboBox::InsertAtTop Open Save Qt::Horizontal 0 false false Add Edit Remove Qt::Vertical 0 0 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033565.0 tortoisehg-6.9/tortoisehg/hgqt/webconf_ui.py0000644000000000000000000001000714742203535020144 0ustar00rootroot# -*- coding: utf-8 -*- # Form implementation generated from reading ui file '/home/yuya/work/hghacks/thg/tortoisehg/hgqt/webconf.ui' # # Created by: PyQt5 UI code generator 5.15.11 # # WARNING: Any manual changes made to this file will be lost when pyuic5 is # run again. Do not edit this file unless you know what you are doing. from tortoisehg.util.i18n import _ from PyQt5 import QtCore, QtGui, QtWidgets class Ui_WebconfForm(object): def setupUi(self, WebconfForm): WebconfForm.setObjectName("WebconfForm") WebconfForm.resize(455, 300) self.form_layout = QtWidgets.QVBoxLayout(WebconfForm) self.form_layout.setObjectName("form_layout") self.path_layout = QtWidgets.QHBoxLayout() self.path_layout.setObjectName("path_layout") self.path_label = QtWidgets.QLabel(WebconfForm) self.path_label.setObjectName("path_label") self.path_layout.addWidget(self.path_label) self.path_edit = QtWidgets.QComboBox(WebconfForm) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.path_edit.sizePolicy().hasHeightForWidth()) self.path_edit.setSizePolicy(sizePolicy) self.path_edit.setInsertPolicy(QtWidgets.QComboBox.InsertAtTop) self.path_edit.setObjectName("path_edit") self.path_layout.addWidget(self.path_edit) self.open_button = QtWidgets.QToolButton(WebconfForm) self.open_button.setObjectName("open_button") self.path_layout.addWidget(self.open_button) self.save_button = QtWidgets.QToolButton(WebconfForm) self.save_button.setObjectName("save_button") self.path_layout.addWidget(self.save_button) self.form_layout.addLayout(self.path_layout) self.filerepos_sep = QtWidgets.QFrame(WebconfForm) self.filerepos_sep.setFrameShape(QtWidgets.QFrame.HLine) self.filerepos_sep.setFrameShadow(QtWidgets.QFrame.Sunken) self.filerepos_sep.setObjectName("filerepos_sep") self.form_layout.addWidget(self.filerepos_sep) self.repos_layout = QtWidgets.QHBoxLayout() self.repos_layout.setObjectName("repos_layout") self.repos_view = QtWidgets.QTreeView(WebconfForm) self.repos_view.setIndentation(0) self.repos_view.setRootIsDecorated(False) self.repos_view.setItemsExpandable(False) self.repos_view.setObjectName("repos_view") self.repos_layout.addWidget(self.repos_view) self.addremove_layout = QtWidgets.QVBoxLayout() self.addremove_layout.setObjectName("addremove_layout") self.add_button = QtWidgets.QToolButton(WebconfForm) self.add_button.setObjectName("add_button") self.addremove_layout.addWidget(self.add_button) self.edit_button = QtWidgets.QToolButton(WebconfForm) self.edit_button.setObjectName("edit_button") self.addremove_layout.addWidget(self.edit_button) self.remove_button = QtWidgets.QToolButton(WebconfForm) self.remove_button.setObjectName("remove_button") self.addremove_layout.addWidget(self.remove_button) spacerItem = QtWidgets.QSpacerItem(0, 0, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) self.addremove_layout.addItem(spacerItem) self.repos_layout.addLayout(self.addremove_layout) self.form_layout.addLayout(self.repos_layout) self.path_label.setBuddy(self.path_edit) self.retranslateUi(WebconfForm) QtCore.QMetaObject.connectSlotsByName(WebconfForm) def retranslateUi(self, WebconfForm): _translate = QtCore.QCoreApplication.translate WebconfForm.setWindowTitle(_("Webconf")) self.path_label.setText(_("Config File:")) self.open_button.setText(_("Open")) self.save_button.setText(_("Save")) self.add_button.setText(_("Add")) self.edit_button.setText(_("Edit")) self.remove_button.setText(_("Remove")) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/hgqt/workbench.py0000644000000000000000000014210314672254332020014 0ustar00rootroot# workbench.py - main TortoiseHg Window # # Copyright (C) 2007-2010 Logilab. All rights reserved. # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. """ Main Qt4 application for TortoiseHg """ from __future__ import annotations import os import subprocess import sys from .qtcore import ( QSettings, Qt, pyqtSlot, ) from .qtgui import ( QAction, QActionGroup, QApplication, QComboBox, QFileDialog, QKeySequence, QMainWindow, QMenu, QMenuBar, QShortcut, QSizePolicy, QToolBar, ) from mercurial import ( pycompat, ) from ..util import ( hglib, paths, ) from ..util.i18n import _ from . import ( cmdcore, cmdui, mq, qtlib, repotab, serve, shortcutsettings, ) from .docklog import LogDockWidget from .reporegistry import RepoRegistryView from .settings import SettingsDialog class Workbench(QMainWindow): """hg repository viewer/browser application""" def __init__(self, ui, config, actionregistry, repomanager): QMainWindow.__init__(self) self.ui = ui self._config = config self._actionregistry = actionregistry self._repomanager = repomanager self._repomanager.configChanged.connect(self._setupUrlComboIfCurrent) self.setupUi() repomanager.busyChanged.connect(self._onBusyChanged) repomanager.progressReceived.connect(self.statusbar.setRepoProgress) self.reporegistry = rr = RepoRegistryView(repomanager, self) rr.setObjectName('RepoRegistryView') rr.showMessage.connect(self.statusbar.showMessage) rr.openRepo.connect(self.openRepo) rr.removeRepo.connect(self.repoTabsWidget.closeRepo) rr.cloneRepoRequested.connect(self.cloneRepository) rr.progressReceived.connect(self.statusbar.progress) self._repomanager.repositoryChanged.connect(rr.scanRepo) rr.hide() self.addDockWidget(Qt.DockWidgetArea.LeftDockWidgetArea, rr) self.mqpatches = p = mq.MQPatchesWidget(actionregistry, self) p.setObjectName('MQPatchesWidget') p.patchSelected.connect(self.gotorev) p.hide() self.addDockWidget(Qt.DockWidgetArea.LeftDockWidgetArea, p) cmdagent = cmdcore.CmdAgent(ui, self) self._console = LogDockWidget(repomanager, cmdagent, self) self._console.setObjectName('Log') self._console.hide() self._console.visibilityChanged.connect(self._updateShowConsoleAction) self.addDockWidget(Qt.DockWidgetArea.BottomDockWidgetArea, self._console) self._setupActions() self.restoreSettings() self.repoTabChanged() self.setAcceptDrops(True) self.setIconSize(qtlib.toolBarIconSize()) if os.name == 'nt': # Allow CTRL+Q to close Workbench on Windows QShortcut(QKeySequence('CTRL+Q'), self, self.close) if sys.platform == 'darwin': self.dockMenu = QMenu(self) self.dockMenu.addAction(_('New &Workbench'), self.newWorkbench) self.dockMenu.addAction(_('&New Repository...'), self.newRepository) self.dockMenu.addAction(_('Clon&e Repository...'), self.cloneRepository) self.dockMenu.addAction(_('&Open Repository...'), self.openRepository) self.dockMenu.setAsDockMenu() self._dialogs = qtlib.DialogKeeper( lambda self, dlgmeth: dlgmeth(self), parent=self) def setupUi(self): desktopgeom = QApplication.primaryScreen().availableGeometry() self.resize(desktopgeom.size() * 0.8) self.repoTabsWidget = tw = repotab.RepoTabWidget( self._config, self._actionregistry, self._repomanager, self) sp = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding) sp.setHorizontalStretch(1) sp.setVerticalStretch(1) sp.setHeightForWidth(tw.sizePolicy().hasHeightForWidth()) tw.setSizePolicy(sp) tw.currentTabChanged.connect(self.repoTabChanged) tw.currentRepoChanged.connect(self._onCurrentRepoChanged) tw.currentTaskTabChanged.connect(self._updateTaskViewMenu) tw.currentTitleChanged.connect(self._updateWindowTitle) tw.historyChanged.connect(self._updateHistoryActions) tw.makeLogVisible.connect(self._setConsoleVisible) tw.taskTabVisibilityChanged.connect(self._updateTaskTabVisibilityAction) tw.toolbarVisibilityChanged.connect(self._updateToolBarActions) self.setCentralWidget(tw) self.statusbar = cmdui.ThgStatusBar(self) self.setStatusBar(self.statusbar) tw.progressReceived.connect(self.statusbar.setRepoProgress) tw.showMessageSignal.connect(self.statusbar.showMessage) def _setupActions(self): """Setup actions, menus and toolbars""" self.menubar = QMenuBar(self) self.setMenuBar(self.menubar) self.menuFile = self.menubar.addMenu(_("&File")) self.menuView = self.menubar.addMenu(_("&View")) self.menuRepository = self.menubar.addMenu(_("&Repository")) self.menuHelp = self.menubar.addMenu(_("&Help")) self.edittbar = QToolBar(_("&Edit Toolbar"), objectName='edittbar') self.addToolBar(self.edittbar) self.docktbar = QToolBar(_("&Dock Toolbar"), objectName='docktbar') self.addToolBar(self.docktbar) self.tasktbar = QToolBar(_('&Task Toolbar'), objectName='taskbar') self.addToolBar(self.tasktbar) self.customtbar = QToolBar(_('&Custom Toolbar'), objectName='custombar') self.addToolBar(self.customtbar) self.synctbar = QToolBar(_('S&ync Toolbar'), objectName='synctbar') self.addToolBar(self.synctbar) # availability map of actions; applied by _updateMenu() self._actionavails = {'repoopen': []} self._actionvisibles = {'repoopen': []} newaction = self._addNewAction newnamed = self._addNewNamedAction newseparator = self._addNewSeparator newnamed('Workbench.newWorkbench', self.newWorkbench, menu='file', icon='hg-log') newseparator(menu='file') newnamed('Workbench.newRepository', self.newRepository, menu='file', icon='hg-init') newnamed('Workbench.cloneRepository', self.cloneRepository, menu='file', icon='hg-clone') newseparator(menu='file') newnamed('Workbench.openRepository', self.openRepository, menu='file') newnamed('Workbench.closeRepository', self.closeCurrentRepoTab, enabled='repoopen', menu='file') newseparator(menu='file') self.menuFile.addActions(self.repoTabsWidget.tabSwitchActions()) newseparator(menu='file') newnamed('Workbench.openSettings', self.editSettings, icon='thg-userconfig', menu='file') newnamed('Workbench.openShortcutSettings', self._openShortcutSettingsDialog, menu='file') newseparator(menu='file') newnamed('Workbench.quit', self.close, menu='file') a = self.reporegistry.toggleViewAction() a.setIcon(qtlib.geticon('thg-reporegistry')) self._actionregistry.registerAction('Workbench.showRepoRegistry', a) self.docktbar.addAction(a) self.menuView.addAction(a) a = self.mqpatches.toggleViewAction() a.setIcon(qtlib.geticon('thg-mq')) self._actionregistry.registerAction('Workbench.showPatchQueue', a) self.docktbar.addAction(a) self.menuView.addAction(a) self._actionShowConsole = a = QAction(self) a.setCheckable(True) a.setIcon(qtlib.geticon('thg-console')) a.triggered.connect(self._setConsoleVisible) self._actionregistry.registerAction('Workbench.showConsole', a) self.docktbar.addAction(a) self.menuView.addAction(a) self._actionDockedConsole = a = QAction(self) a.setText(_('Place Console in Doc&k Area')) a.setCheckable(True) a.setChecked(True) a.triggered.connect(self._updateDockedConsoleMode) newseparator(menu='view') menu = self.menuView.addMenu(_('R&epository Registry Options')) menu.addActions(self.reporegistry.settingActions()) newseparator(menu='view') newnamed('RepoView.setHistoryColumns', self._setHistoryColumns, enabled='repoopen', menu='view') self.actionSaveRepos = \ newaction(_("Save Open Repositories on E&xit"), checkable=True, menu='view') self.actionSaveLastSyncPaths = \ newaction(_("Sa&ve Current Sync Paths on Exit"), checkable=True, menu='view') newseparator(menu='view') a = newaction(_('Show Tas&k Tab'), shortcut='Alt+0', checkable=True, enabled='repoopen', menu='view') a.triggered.connect(self._setRepoTaskTabVisible) self.actionTaskTabVisible = a self.actionGroupTaskView = QActionGroup(self) self.actionGroupTaskView.triggered.connect(self._onSwitchRepoTaskTab) def addtaskview(icon, label, name): a = newaction(label, icon=None, checkable=True, data=name, enabled='repoopen', menu='view') a.setIcon(qtlib.geticon(icon)) self.actionGroupTaskView.addAction(a) self.tasktbar.addAction(a) return a # note that 'grep' and 'search' are equivalent taskdefs = { 'commit': ('hg-commit', _('&Commit')), 'log': ('hg-log', _("Revision &Details")), 'grep': ('hg-grep', _('&Search')), 'sync': ('thg-sync', _('S&ynchronize')), # 'console' is toggled by "Show Console" action } tasklist = self._config.configStringList( 'tortoisehg', 'workbench.task-toolbar') if tasklist == []: tasklist = ['log', 'commit', 'grep', '|', 'sync'] for taskname in tasklist: taskname = taskname.strip() taskinfo = taskdefs.get(taskname, None) if taskinfo is None: newseparator(toolbar='task') continue addtaskview(taskinfo[0], taskinfo[1], taskname) newseparator(menu='view') newnamed('Workbench.refresh', self.refresh, icon='view-refresh', enabled='repoopen', menu='view', toolbar='edit', tooltip=_('Refresh current repository')) newnamed('Workbench.refreshTaskTabs', self._repofwd('reloadTaskTab'), enabled='repoopen', tooltip=_('Refresh only the current task tab'), menu='view') newnamed('RepoView.loadAllRevisions', self.loadall, enabled='repoopen', menu='view', tooltip=_('Load all revisions into graph')) self.actionAbort = newnamed('Workbench.abort', self._abortCommands, icon='process-stop', toolbar='edit', tooltip=_('Stop current operation')) self.actionAbort.setEnabled(False) newseparator(toolbar='edit') newnamed('RepoView.goToWorkingParent', self._repofwd('gotoParent'), icon='go-home', tooltip=_('Go to current revision'), enabled='repoopen', toolbar='edit') newnamed('RepoView.goToRevision', self._gotorev, icon='go-to-rev', tooltip=_('Go to a specific revision'), enabled='repoopen', menu='view', toolbar='edit') self.actionBack = newnamed('RepoView.goBack', self._repofwd('back'), icon='go-previous', enabled=False, toolbar='edit') self.actionForward = newnamed('RepoView.goForward', self._repofwd('forward'), icon='go-next', enabled=False, toolbar='edit') newseparator(toolbar='edit', menu='View') self.filtertbaction = newnamed('RepoView.showFilterBar', self._repotogglefwd('toggleFilterBar'), icon='view-filter', enabled='repoopen', toolbar='edit', menu='View', checkable=True, tooltip=_('Filter graph with revision ' 'sets or branches')) menu = QMenu(_('&Workbench Toolbars'), self) menu.addAction(self.edittbar.toggleViewAction()) menu.addAction(self.docktbar.toggleViewAction()) menu.addAction(self.tasktbar.toggleViewAction()) menu.addAction(self.synctbar.toggleViewAction()) menu.addAction(self.customtbar.toggleViewAction()) self.menuView.addMenu(menu) newseparator(toolbar='edit') menuSync = self.menuRepository.addMenu(_('S&ynchronize')) a = newnamed('Repository.lockFile', self._repofwd('lockTool'), icon='thg-password', enabled='repoopen', menu='repository', toolbar='edit', tooltip=_('Lock or unlock files')) self.lockToolAction = a newseparator(menu='repository') newnamed('Repository.update', self._repofwd('updateToRevision'), icon='hg-update', enabled='repoopen', menu='repository', toolbar='edit', tooltip=_('Update working directory or switch revisions')) newnamed('Repository.shelve', self._repofwd('shelve'), icon='hg-shelve', enabled='repoopen', menu='repository') newnamed('Repository.import', self._repofwd('thgimport'), icon='hg-import', enabled='repoopen', menu='repository') newnamed('Repository.unbundle', self._repofwd('unbundle'), icon='hg-unbundle', enabled='repoopen', menu='repository') newseparator(menu='repository') newnamed('Repository.merge', self._repofwd('mergeWithOtherHead'), icon='hg-merge', enabled='repoopen', menu='repository', toolbar='edit', tooltip=_('Merge with the other head of the current branch')) newnamed('Repository.resolve', self._repofwd('resolve'), enabled='repoopen', menu='repository') newseparator(menu='repository') newnamed('Repository.rollback', self._repofwd('rollback'), enabled='repoopen', menu='repository') newseparator(menu='repository') newnamed('Repository.purge', self._repofwd('purge'), enabled='repoopen', icon='hg-purge', menu='repository') newseparator(menu='repository') newnamed('Repository.bisect', self._repofwd('bisect'), enabled='repoopen', menu='repository') newseparator(menu='repository') newnamed('Repository.verify', self._repofwd('verify'), enabled='repoopen', menu='repository') newnamed('Repository.recover', self._repofwd('recover'), enabled='repoopen', menu='repository') newseparator(menu='repository') newnamed('Workbench.openFileManager', self.explore, icon='system-file-manager', enabled='repoopen', menu='repository') newnamed('Workbench.openTerminal', self.terminal, icon='utilities-terminal', enabled='repoopen', menu='repository') newnamed('Workbench.webServer', self.serve, menu='repository', icon='hg-serve') newnamed('Workbench.help', self.onHelp, menu='help', icon='help-browser') newnamed('Workbench.explorerHelp', self.onHelpExplorer, menu='help') visiblereadme = 'repoopen' if self._config.configString('tortoisehg', 'readme'): visiblereadme = True newnamed('Workbench.openReadme', self.onReadme, menu='help', icon='help-readme', visible=visiblereadme) newseparator(menu='help') newnamed('Workbench.aboutQt', QApplication.aboutQt, menu='help') newnamed('Workbench.about', self.onAbout, menu='help', icon='thg') syncActionGroup = QActionGroup(self) syncActionGroup.triggered.connect(self._runSyncAction) newnamed('Repository.incoming', data='incoming', icon='hg-incoming', enabled='repoopen', toolbar='sync', group=syncActionGroup) pullAction = newnamed('Repository.pull', data='pull', icon='hg-pull', enabled='repoopen', toolbar='sync', group=syncActionGroup) newnamed('Repository.outgoing', data='outgoing', icon='hg-outgoing', enabled='repoopen', toolbar='sync', group=syncActionGroup) pushAction = newnamed('Repository.push', data='push', icon='hg-push', enabled='repoopen', toolbar='sync', group=syncActionGroup) menuSync.addActions(syncActionGroup.actions()) menuSync.addSeparator() def addSyncActionMenu(parentAction, action): tbb = self.synctbar.widgetForAction(parentAction) menu = QMenu(self) menu.addAction(action) tbb.setMenu(menu) syncAllTabsActionGroup = QActionGroup(self) syncAllTabsActionGroup.triggered.connect(self._runSyncAllTabsAction) addSyncActionMenu(pullAction, newnamed('Repository.pullAllTabs', data='pull', icon='hg-pull', enabled='repoopen', group=syncAllTabsActionGroup)) addSyncActionMenu(pushAction, newnamed('Repository.pushAllTabs', data='push', icon='hg-push', enabled='repoopen', group=syncAllTabsActionGroup)) menuSync.addActions(syncAllTabsActionGroup.actions()) menuSync.addSeparator() action = QAction(self) action.setIcon(qtlib.geticon('thg-sync-bookmarks')) self._actionavails['repoopen'].append(action) action.triggered.connect(self._runSyncBookmarks) self._actionregistry.registerAction('Repository.syncBookmarks', action) menuSync.addAction(action) self._lastRepoSyncPath = {} self.urlCombo = QComboBox(self) self.urlCombo.setSizeAdjustPolicy(QComboBox.SizeAdjustPolicy.AdjustToContents) self.urlCombo.currentIndexChanged.connect(self._updateSyncUrl) self.urlComboAction = self.synctbar.addWidget(self.urlCombo) # hide it because workbench could be started without open repo self.urlComboAction.setVisible(False) def _setupUrlCombo(self, repoagent): """repository has been switched, fill urlCombo with URLs""" pathdict = dict(repoagent.configStringItems('paths')) aliases = list(pathdict.keys()) combo_setting = repoagent.configString( 'tortoisehg', 'workbench.target-combo') self.urlComboAction.setVisible(len(aliases) > 1 or combo_setting == 'always') # 1. Sort the list if aliases aliases.sort() # 2. Place the default alias at the top of the list if 'default' in aliases: aliases.remove('default') aliases.insert(0, 'default') # 3. Make a list of paths that have a 'push path' # note that the default path will be first (if it has a push path), # followed by the other paths that have a push path, alphabetically haspushaliases = [alias for alias in aliases if alias + '-push' in aliases] # 4. Place the "-push" paths next to their "pull paths" regularaliases = [] for a in aliases[:]: if a.endswith('-push'): if a[:-len('-push')] in haspushaliases: continue regularaliases.append(a) if a in haspushaliases: regularaliases.append(a + '-push') # 5. Create the list of 'combined aliases' combinedaliases = [(a, a + '-push') for a in haspushaliases] # 6. Put the combined aliases first, followed by the regular aliases aliases = combinedaliases + regularaliases # 7. Ensure the first path is a default path (either a # combined "default | default-push" path or a regular default path) if 'default-push' not in aliases and 'default' in aliases: aliases.remove('default') aliases.insert(0, 'default') self.urlCombo.blockSignals(True) self.urlCombo.clear() for n, a in enumerate(aliases): # text, (pull-alias, push-alias) if isinstance(a, tuple): itemtext = u'\u2193 %s | %s \u2191' % a itemdata = tuple(pathdict[alias] for alias in a) tooltip = _('pull: %s\npush: %s') % itemdata else: itemtext = a itemdata = (pathdict[a], pathdict[a]) tooltip = pathdict[a] self.urlCombo.addItem(itemtext, itemdata) self.urlCombo.setItemData(n, tooltip, Qt.ItemDataRole.ToolTipRole) # Try to select the previously selected path, if any prevpath = self._lastRepoSyncPath.get(repoagent.rootPath()) if prevpath: idx = self.urlCombo.findText(prevpath) if idx >= 0: self.urlCombo.setCurrentIndex(idx) self.urlCombo.blockSignals(False) self._updateSyncUrlToolTip(self.urlCombo.currentIndex()) @pyqtSlot(str) def _setupUrlComboIfCurrent(self, root): w = self._currentRepoWidget() if w.repoRootPath() == root: self._setupUrlCombo(self._repomanager.repoAgent(root)) def _syncUrlFor(self, op): """Current URL for the given sync operation""" urlindex = self.urlCombo.currentIndex() if urlindex < 0: return opindex = {'incoming': 0, 'pull': 0, 'outgoing': 1, 'push': 1}[op] return self.urlCombo.itemData(urlindex)[opindex] @pyqtSlot(int) def _updateSyncUrl(self, index): self._updateSyncUrlToolTip(index) # save the new url for later recovery reporoot = self.currentRepoRootPath() if not reporoot: return path = self.urlCombo.currentText() self._lastRepoSyncPath[reporoot] = path def _updateSyncUrlToolTip(self, index): self._updateUrlComboToolTip(index) self._updateSyncActionToolTip(index) def _updateUrlComboToolTip(self, index): if not self.urlCombo.count(): tooltip = _('There are no configured sync paths.\n' 'Open the Synchronize tab to configure them.') else: tooltip = self.urlCombo.itemData(index, Qt.ItemDataRole.ToolTipRole) self.urlCombo.setToolTip(tooltip) def _updateSyncActionToolTip(self, index): if index < 0: tooltips = { 'incoming': _('Check for incoming changes'), 'pull': _('Pull incoming changes'), 'outgoing': _('Detect outgoing changes'), 'push': _('Push outgoing changes'), } else: pullurl, pushurl = self.urlCombo.itemData(index) tooltips = { 'incoming': _('Check for incoming changes from\n%s') % pullurl, 'pull': _('Pull incoming changes from\n%s') % pullurl, 'outgoing': _('Detect outgoing changes to\n%s') % pushurl, 'push': _('Push outgoing changes to\n%s') % pushurl, } for a in self.synctbar.actions(): op = str(a.data()) if op in tooltips: a.setToolTip(tooltips[op]) def _setupCustomTools(self, ui): tools, toollist = hglib.tortoisehgtools(ui, selectedlocation='workbench.custom-toolbar') # Clear the existing "custom" toolbar self.customtbar.clear() # and repopulate it again with the tool configuration # for the current repository if not tools: return for name in toollist: if name == '|': self._addNewSeparator(toolbar='custom') continue info = tools.get(name, None) if info is None: continue command = info.get('command', None) if not command: continue showoutput = info.get('showoutput', False) workingdir = info.get('workingdir', '') label = info.get('label', name) tooltip = info.get('tooltip', _("Execute custom tool '%s'") % label) icon = info.get('icon', 'tools-spanner-hammer') self._addNewAction(label, self._repofwd('runCustomCommand', [command, showoutput, workingdir]), icon=icon, tooltip=tooltip, enabled=True, toolbar='custom') def _addNewAction(self, text, slot=None, icon=None, shortcut=None, checkable=False, tooltip=None, data=None, enabled=None, visible=None, menu=None, toolbar=None, group=None): """Create new action and register it :slot: function called if action triggered or toggled. :checkable: checkable action. slot will be called on toggled. :data: optional data stored on QAction. :enabled: bool or group name to enable/disable action. :visible: bool or group name to show/hide action. :shortcut: QKeySequence, key sequence or name of standard key. :menu: name of menu to add this action. :toolbar: name of toolbar to add this action. """ action = QAction(text, self, checkable=checkable) if slot: if checkable: action.toggled.connect(slot) else: action.triggered.connect(slot) if icon: action.setIcon(qtlib.geticon(icon)) if shortcut: keyseq = qtlib.keysequence(shortcut) if isinstance(keyseq, QKeySequence.StandardKey): action.setShortcuts(keyseq) else: action.setShortcut(keyseq) if tooltip: if action.shortcut(): tooltip += ' (%s)' % action.shortcut().toString() action.setToolTip(tooltip) if data is not None: action.setData(data) if isinstance(enabled, bool): action.setEnabled(enabled) elif enabled: self._actionavails[enabled].append(action) if isinstance(visible, bool): action.setVisible(visible) elif visible: self._actionvisibles[visible].append(action) if menu: getattr(self, 'menu%s' % menu.title()).addAction(action) if toolbar: getattr(self, '%stbar' % toolbar).addAction(action) if group: group.addAction(action) return action def _addNewNamedAction(self, name, slot=None, icon=None, checkable=False, tooltip=None, data=None, enabled=None, visible=None, menu=None, toolbar=None, group=None): """Create new action and register it as user-configurable""" a = self._addNewAction('', slot=slot, icon=icon, checkable=checkable, tooltip=tooltip, data=data, enabled=enabled, visible=visible, menu=menu, toolbar=toolbar, group=group) self._actionregistry.registerAction(name, a) return a def _addNewSeparator(self, menu=None, toolbar=None): """Insert a separator action; returns nothing""" if menu: getattr(self, 'menu%s' % menu.title()).addSeparator() if toolbar: getattr(self, '%stbar' % toolbar).addSeparator() def createPopupMenu(self): """Create new popup menu for toolbars and dock widgets""" menu = super(Workbench, self).createPopupMenu() assert menu # should have toolbar/dock menu # replace default log dock action by customized one menu.insertAction(self._console.toggleViewAction(), self._actionShowConsole) menu.removeAction(self._console.toggleViewAction()) menu.addSeparator() menu.addAction(self._actionDockedConsole) menu.addAction(_('Custom Toolbar &Settings'), self._editCustomToolsSettings) return menu @pyqtSlot(QAction) def _onSwitchRepoTaskTab(self, action): rw = self._currentRepoWidget() if rw: rw.switchToNamedTaskTab(str(action.data())) @pyqtSlot(bool) def _setRepoTaskTabVisible(self, visible): rw = self._currentRepoWidget() if not rw: return rw.setTaskTabVisible(visible) @pyqtSlot(bool) def _setConsoleVisible(self, visible): if self._actionDockedConsole.isChecked(): self._setDockedConsoleVisible(visible) else: self._setConsoleTaskTabVisible(visible) def _setDockedConsoleVisible(self, visible): self._console.setVisible(visible) if visible: # not hook setVisible() or showEvent() in order to move focus # only when console is activated by user action self._console.setFocus() def _setConsoleTaskTabVisible(self, visible): rw = self._currentRepoWidget() if not rw: return if visible: rw.switchToNamedTaskTab('console') else: # it'll be better if it can switch to the last tab rw.switchToPreferredTaskTab() @pyqtSlot() def _updateShowConsoleAction(self): if self._actionDockedConsole.isChecked(): visible = self._console.isVisibleTo(self) enabled = True else: rw = self._currentRepoWidget() visible = bool(rw and rw.currentTaskTabName() == 'console') enabled = bool(rw) self._actionShowConsole.setChecked(visible) self._actionShowConsole.setEnabled(enabled) @pyqtSlot() def _updateDockedConsoleMode(self): docked = self._actionDockedConsole.isChecked() visible = self._actionShowConsole.isChecked() self._console.setVisible(docked and visible) self._setConsoleTaskTabVisible(not docked and visible) self._updateShowConsoleAction() @pyqtSlot(str, bool) def openRepo(self, root: str, reuse: bool, bundle=None): """Open tab of the specified repo [unicode]""" if not root or root.startswith('ssh://'): return if reuse and self.repoTabsWidget.selectRepo(root): return if not self.repoTabsWidget.openRepo(root, bundle): return @pyqtSlot(str) def showRepo(self, root): """Activate the repo tab or open it if not available [unicode]""" self.openRepo(root, True) @pyqtSlot(str, str) def setRevsetFilter(self, path, filter): if self.repoTabsWidget.selectRepo(path): w = self.repoTabsWidget.currentWidget() w.setFilter(filter) def dragEnterEvent(self, event): d = event.mimeData() for u in d.urls(): root = paths.find_root(u.toLocalFile()) if root: event.setDropAction(Qt.DropAction.LinkAction) event.accept() break def dropEvent(self, event): accept = False d = event.mimeData() for u in d.urls(): root = paths.find_root(u.toLocalFile()) if root: self.showRepo(root) accept = True if accept: event.setDropAction(Qt.DropAction.LinkAction) event.accept() def _updateMenu(self): """Enable actions when repoTabs are opened or closed or changed""" # Update actions affected by repo open/close someRepoOpen = bool(self._currentRepoWidget()) for action in self._actionavails['repoopen']: action.setEnabled(someRepoOpen) for action in self._actionvisibles['repoopen']: action.setVisible(someRepoOpen) # Update actions affected by repo open/close/change self._updateTaskViewMenu() self._updateTaskTabVisibilityAction() self._updateToolBarActions() @pyqtSlot() def _updateWindowTitle(self): w = self._currentRepoWidget() if not w: self.setWindowTitle(_('TortoiseHg Workbench')) return repoagent = self._repomanager.repoAgent(w.repoRootPath()) if repoagent.configBool('tortoisehg', 'fullpath'): self.setWindowTitle(_('%s - TortoiseHg Workbench - %s') % (w.title(), w.repoRootPath())) else: self.setWindowTitle(_('%s - TortoiseHg Workbench') % w.title()) @pyqtSlot() def _updateToolBarActions(self): w = self._currentRepoWidget() if w: self.filtertbaction.setChecked(w.filterBarVisible()) @pyqtSlot() def _updateTaskViewMenu(self): 'Update task tab menu for current repository' repoWidget = self._currentRepoWidget() if not repoWidget: for a in self.actionGroupTaskView.actions(): a.setChecked(False) self.lockToolAction.setVisible(False) else: exts = repoWidget.repo.extensions() name = repoWidget.currentTaskTabName() for action in self.actionGroupTaskView.actions(): action.setChecked(str(action.data()) == name) self.lockToolAction.setVisible('simplelock' in exts) self._updateShowConsoleAction() for i, a in enumerate(a for a in self.actionGroupTaskView.actions() if a.isVisible()): a.setShortcut('Alt+%d' % (i + 1)) @pyqtSlot() def _updateTaskTabVisibilityAction(self): rw = self._currentRepoWidget() self.actionTaskTabVisible.setChecked(bool(rw) and rw.isTaskTabVisible()) @pyqtSlot() def _updateHistoryActions(self): 'Update back / forward actions' rw = self._currentRepoWidget() self.actionBack.setEnabled(bool(rw and rw.canGoBack())) self.actionForward.setEnabled(bool(rw and rw.canGoForward())) @pyqtSlot() def repoTabChanged(self): self._updateHistoryActions() self._updateMenu() self._updateWindowTitle() @pyqtSlot(str) def _onCurrentRepoChanged(self, curpath: str): self._console.setCurrentRepoRoot(curpath or None) self.reporegistry.setActiveTabRepo(curpath) if curpath: repoagent = self._repomanager.repoAgent(curpath) repo = repoagent.rawRepo() self.mqpatches.setRepoAgent(repoagent) self._setupCustomTools(repo.ui) self._setupUrlCombo(repoagent) self._updateAbortAction(repoagent) else: self.mqpatches.setRepoAgent(None) self.actionAbort.setEnabled(False) @pyqtSlot() def _setHistoryColumns(self): """Display the column selection dialog""" w = self._currentRepoWidget() assert w w.repoview.setHistoryColumns() def _repotogglefwd(self, name): """Return function to forward action to the current repo tab""" def forwarder(checked): w = self._currentRepoWidget() if w: getattr(w, name)(checked) return forwarder def _repofwd(self, name, params=None, namedparams=None): """Return function to forward action to the current repo tab""" if params is None: params = [] if namedparams is None: namedparams = {} def forwarder(): w = self._currentRepoWidget() if w: getattr(w, name)(*params, **namedparams) return forwarder @pyqtSlot() def refresh(self): clear = QApplication.keyboardModifiers() & Qt.KeyboardModifier.ControlModifier w = self._currentRepoWidget() if w: # check unnoticed changes to emit corresponding signals repoagent = self._repomanager.repoAgent(w.repoRootPath()) if clear: repoagent.clearStatus() repoagent.pollStatus() # TODO if all objects are responsive to repository signals, some # of the following actions are not necessary w.reload() @pyqtSlot(QAction) def _runSyncAction(self, action): w = self._currentRepoWidget() if w: op = str(action.data()) w.setSyncUrl(self._syncUrlFor(op) or '') getattr(w, op)() @pyqtSlot(QAction) def _runSyncAllTabsAction(self, action): originalIndex = self.repoTabsWidget.currentIndex() for index in range(0, self.repoTabsWidget.count()): self.repoTabsWidget.setCurrentIndex(index) self._runSyncAction(action) self.repoTabsWidget.setCurrentIndex(originalIndex) @pyqtSlot() def _runSyncBookmarks(self): w = self._currentRepoWidget() if w: # the sync bookmark dialog is bidirectional but is only able to # handle one remote location therefore we use the push location w.setSyncUrl(self._syncUrlFor('push') or '') w.syncBookmark() @pyqtSlot() def _abortCommands(self): root = self.currentRepoRootPath() if not root: return repoagent = self._repomanager.repoAgent(root) repoagent.abortCommands() def _updateAbortAction(self, repoagent): self.actionAbort.setEnabled(repoagent.isBusy()) @pyqtSlot(str) def _onBusyChanged(self, root): repoagent = self._repomanager.repoAgent(root) self._updateAbortAction(repoagent) if not repoagent.isBusy(): self.statusbar.clearRepoProgress(root) self.statusbar.setRepoBusy(root, repoagent.isBusy()) def serve(self): self._dialogs.open(Workbench._createServeDialog) def _createServeDialog(self): w = self._currentRepoWidget() if w: return serve.run(w.repo.ui, root=w.repo.root) else: return serve.run(self.ui) def loadall(self): w = self._currentRepoWidget() if w: w.repoview.model().loadall() def _gotorev(self): rev, ok = qtlib.getTextInput(self, _("Goto revision"), _("Enter revision identifier")) if ok: w = self._currentRepoWidget() assert w w.gotoRev(rev) @pyqtSlot(str) def gotorev(self, rev): w = self._currentRepoWidget() if w: w.repoview.goto(rev) def newWorkbench(self): cmdline = list(paths.get_thg_command()) cmdline.extend(['workbench', '--nofork', '--newworkbench']) subprocess.Popen(cmdline, creationflags=qtlib.openflags) def newRepository(self): """ Run init dialog """ from tortoisehg.hgqt.hginit import InitDialog path = self.currentRepoRootPath() or '.' dlg = InitDialog(self.ui, path, self) if dlg.exec() == 0: self.openRepo(dlg.destination(), False) @pyqtSlot() @pyqtSlot(str) def cloneRepository(self, uroot=None): """ Run clone dialog """ # it might be better to reuse existing CloneDialog dlg = self._dialogs.openNew(Workbench._createCloneDialog) if not uroot: uroot = self.currentRepoRootPath() if uroot: dlg.setSource(uroot) dlg.setDestination(uroot + '-clone') def _createCloneDialog(self): from tortoisehg.hgqt.clone import CloneDialog dlg = CloneDialog(self.ui, self._config, parent=self) dlg.clonedRepository.connect(self._openClonedRepo) return dlg @pyqtSlot(str, str) def _openClonedRepo(self, root: str, sourceroot: str): self.reporegistry.addClonedRepo(root, sourceroot) self.showRepo(root) def openRepository(self): """ Open repo from File menu """ caption = _('Select repository directory to open') root = self.currentRepoRootPath() if root: cwd = os.path.dirname(root) else: cwd = hglib.getcwdu() FD = QFileDialog path = FD.getExistingDirectory(self, caption, cwd, QFileDialog.Option.ShowDirsOnly | QFileDialog.Option.ReadOnly) self.openRepo(path, False) def _currentRepoWidget(self): return self.repoTabsWidget.currentWidget() def currentRepoRootPath(self): return self.repoTabsWidget.currentRepoRootPath() def onAbout(self, *args): """ Display about dialog """ from tortoisehg.hgqt.about import AboutDialog ad = AboutDialog(self) ad.finished.connect(ad.deleteLater) ad.exec() def onHelp(self, *args): """ Display online help """ qtlib.openhelpcontents('workbench.html') def onHelpExplorer(self, *args): """ Display online help for shell extension """ qtlib.openhelpcontents('explorer.html') def onReadme(self, *args): """Display the README file or URL for the current repo, or the global README if no repo is open""" readme = None def getCurrentReadme(repo): """ Get the README file that is configured for the current repo. README files can be set in 3 ways, which are checked in the following order of decreasing priority: - From the tortoisehg.readme key on the current repo's configuration file - An existing "README" file found on the repository root * Valid README files are those called README and whose extension is one of the following: ['', '.txt', '.html', '.pdf', '.doc', '.docx', '.ppt', '.pptx', '.markdown', '.textile', '.rdoc', '.org', '.creole', '.mediawiki','.rst', '.asciidoc', '.pod'] * Note that the match is CASE INSENSITIVE on ALL OSs. - From the tortoisehg.readme key on the user's global configuration file """ readme = None if repo: # Try to get the README configured for the repo of the current tab readmeglobal = self.ui.config(b'tortoisehg', b'readme') if readmeglobal: # Note that repo.ui.config() falls back to the self.ui.config() # if the key is not set on the current repo's configuration file readme = repo.ui.config(b'tortoisehg', b'readme') if readmeglobal != readme: # The readme is set on the current repo configuration file return readme # Otherwise try to see if there is a file at the root of the # repository that matches any of the valid README file names # (in a non case-sensitive way) # Note that we try to match the valid README names in order validreadmes = [b'readme.txt', b'read.me', b'readme.html', b'readme.pdf', b'readme.doc', b'readme.docx', b'readme.ppt', b'readme.pptx', b'readme.md', b'readme.markdown', b'readme.mkdn', b'readme.rst', b'readme.textile', b'readme.rdoc', b'readme.asciidoc', b'readme.org', b'readme.creole', b'readme.mediawiki', b'readme.pod', b'readme'] readmefiles = [filename for filename in os.listdir(repo.root) if filename.lower().startswith(b'read')] for validname in validreadmes: for filename in readmefiles: if filename.lower() == validname: return repo.wjoin(filename) # Otherwise try use the global setting (or None if readme is just # not configured) return readmeglobal w = self._currentRepoWidget() if w: # Try to get the help doc from the current repo tap readme = getCurrentReadme(w.repo) if readme: qtlib.openlocalurl(os.path.expanduser(os.path.expandvars(readme))) else: qtlib.WarningMsgBox(_("README not configured"), _("A README file is not configured for the current repository.

                                                                                                            " "To configure a README file for a repository, " "open the repository settings file, add a 'readme' " "key to the 'tortoisehg' section, and set it " "to the filename or URL of your repository's README file.")) def _storeSettings(self, repostosave, lastactiverepo): s = QSettings() wb = "Workbench/" s.setValue(wb + 'geometry', self.saveGeometry()) s.setValue(wb + 'windowState', self.saveState()) s.setValue(wb + 'dockedConsole', self._actionDockedConsole.isChecked()) s.setValue(wb + 'saveRepos', self.actionSaveRepos.isChecked()) s.setValue(wb + 'saveLastSyncPaths', self.actionSaveLastSyncPaths.isChecked()) s.setValue(wb + 'lastactiverepo', lastactiverepo) s.setValue(wb + 'openrepos', ','.join(repostosave)) s.beginWriteArray('lastreposyncpaths') lastreposyncpaths = {} if self.actionSaveLastSyncPaths.isChecked(): lastreposyncpaths = self._lastRepoSyncPath for n, root in enumerate(sorted(lastreposyncpaths)): s.setArrayIndex(n) s.setValue('root', root) s.setValue('path', self._lastRepoSyncPath[root]) s.endArray() def restoreSettings(self): s = QSettings() wb = "Workbench/" self.restoreGeometry(qtlib.readByteArray(s, wb + 'geometry')) self.restoreState(qtlib.readByteArray(s, wb + 'windowState')) self._actionDockedConsole.setChecked( qtlib.readBool(s, wb + 'dockedConsole', True)) lastreposyncpaths = {} npaths = s.beginReadArray('lastreposyncpaths') for n in range(npaths): s.setArrayIndex(n) root = qtlib.readString(s, 'root') lastreposyncpaths[root] = qtlib.readString(s, 'path') s.endArray() self._lastRepoSyncPath = lastreposyncpaths save = qtlib.readBool(s, wb + 'saveRepos') self.actionSaveRepos.setChecked(save) savelastsyncpaths = qtlib.readBool(s, wb + 'saveLastSyncPaths') self.actionSaveLastSyncPaths.setChecked(savelastsyncpaths) openreposvalue = qtlib.readString(s, wb + 'openrepos') if openreposvalue: openrepos = openreposvalue.split(',') else: openrepos = [] # Note that if a "root" has been passed to the "thg" command, # "lastactiverepo" will have no effect lastactiverepo = qtlib.readString(s, wb + 'lastactiverepo') self.repoTabsWidget.restoreRepos(openrepos, lastactiverepo) # Clear the lastactiverepo and the openrepos list once the workbench state # has been reload, so that opening additional workbench windows does not # reopen these repos again s.setValue(wb + 'openrepos', '') s.setValue(wb + 'lastactiverepo', '') def goto(self, root, rev): if self.repoTabsWidget.selectRepo(hglib.tounicode(root)): rw = self.repoTabsWidget.currentWidget() rw.goto(rev) def closeEvent(self, event): repostosave = [] lastactiverepo = '' if self.actionSaveRepos.isChecked(): tw = self.repoTabsWidget repostosave = pycompat.maplist(tw.repoRootPath, pycompat.xrange(tw.count())) lastactiverepo = tw.currentRepoRootPath() if not self.repoTabsWidget.closeAllTabs(): event.ignore() else: self._storeSettings(repostosave, lastactiverepo) self.reporegistry.close() @pyqtSlot() def closeCurrentRepoTab(self): """close the current repo tab""" self.repoTabsWidget.closeTab(self.repoTabsWidget.currentIndex()) def explore(self): root = self.currentRepoRootPath() if root: qtlib.openlocalurl(root) def terminal(self): w = self._currentRepoWidget() if w: qtlib.openshell(w.repo.root, hglib.fromunicode(w.repoDisplayName()), w.repo.ui) @pyqtSlot() def editSettings(self, focus=None): sd = SettingsDialog(configrepo=False, focus=focus, parent=self, root=hglib.fromunicode(self.currentRepoRootPath())) sd.exec() @pyqtSlot() def _editCustomToolsSettings(self): self.editSettings('tools') @pyqtSlot() def _openShortcutSettingsDialog(self): dlg = shortcutsettings.ShortcutSettingsDialog( self._actionregistry, self) dlg.exec() ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1714146 tortoisehg-6.9/tortoisehg/util/0000755000000000000000000000000014742203610015460 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1649124157.0 tortoisehg-6.9/tortoisehg/util/__init__.py0000644000000000000000000000001514222721475017574 0ustar00rootroot#placeholder ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033607.0 tortoisehg-6.9/tortoisehg/util/__version__.py0000644000000000000000000000007114742203607020317 0ustar00rootroot# this file is autogenerated by setup.py version = "6.9" ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726611701.0 tortoisehg-6.9/tortoisehg/util/bugtraq.py0000644000000000000000000002202714672400365017512 0ustar00rootrootfrom __future__ import annotations from ctypes import * import comtypes # pytype: disable=import-error import pythoncom # pytype: disable=import-error from comtypes import ( # pytype: disable=import-error IUnknown, GUID, COMMETHOD, POINTER, COMError ) from comtypes.client import CreateObject # pytype: disable=import-error from comtypes.automation import _midlSAFEARRAY # pytype: disable=import-error try: import _winreg as winreg # pytype: disable=import-error winreg.CloseKey except ImportError: import winreg # pytype: disable=import-error from tortoisehg.hgqt import qtlib from tortoisehg.util.i18n import _ class IBugTraqProvider(IUnknown): _iid_ = GUID("{298B927C-7220-423C-B7B4-6E241F00CD93}") _methods_ = [ COMMETHOD([], HRESULT, # pytype: disable=name-error "ValidateParameters", (['in'], comtypes.c_long, "hParentWnd"), (['in'], comtypes.BSTR, "parameters"), (['out', 'retval'], POINTER(comtypes.c_int16), "pRetVal")), COMMETHOD([], HRESULT, # pytype: disable=name-error "GetLinkText", (['in'], comtypes.c_long, "hParentWnd"), (['in'], comtypes.BSTR, "parameters"), (['out', 'retval'], POINTER(comtypes.BSTR), "pRetVal")), COMMETHOD([], HRESULT, # pytype: disable=name-error "GetCommitMessage", (['in'], comtypes.c_long, "hParentWnd"), (['in'], comtypes.BSTR, "parameters"), (['in'], comtypes.BSTR, "commonRoot"), (['in'], _midlSAFEARRAY(comtypes.BSTR), "pathList"), (['in'], comtypes.BSTR, "originalMessage"), (['out', 'retval'], POINTER(comtypes.BSTR), "pRetVal")) ] class IBugTraqProvider2(IBugTraqProvider): _iid_ = GUID("{C5C85E31-2F9B-4916-A7BA-8E27D481EE83}") _methods_ = [ COMMETHOD([], HRESULT, # pytype: disable=name-error "GetCommitMessage2", (['in'], comtypes.c_long, "hParentWnd"), (['in'], comtypes.BSTR, "parameters"), (['in'], comtypes.BSTR, "commonURL"), (['in'], comtypes.BSTR, "commonRoot"), (['in'], _midlSAFEARRAY(comtypes.BSTR), "pathList"), (['in'], comtypes.BSTR, "originalMessage"), (['in'], comtypes.BSTR, "bugID"), (['out'], POINTER(comtypes.BSTR), "bugIDOut"), (['out'], POINTER(_midlSAFEARRAY(comtypes.BSTR)), "revPropNames"), (['out'], POINTER(_midlSAFEARRAY(comtypes.BSTR)), "revPropValues"), (['out', 'retval'], POINTER(comtypes.BSTR), "pRetVal")), COMMETHOD([], HRESULT, # pytype: disable=name-error "CheckCommit", (['in'], comtypes.c_long, "hParentWnd"), (['in'], comtypes.BSTR, "parameters"), (['in'], comtypes.BSTR, "commonURL"), (['in'], comtypes.BSTR, "commonRoot"), (['in'], _midlSAFEARRAY(comtypes.BSTR), "pathList"), (['in'], comtypes.BSTR, "commitMessage"), (['out', 'retval'], POINTER(comtypes.BSTR), "pRetVal")), COMMETHOD([], HRESULT, # pytype: disable=name-error "OnCommitFinished", (['in'], comtypes.c_long, "hParentWnd"), (['in'], comtypes.BSTR, "commonRoot"), (['in'], _midlSAFEARRAY(comtypes.BSTR), "pathList"), (['in'], comtypes.BSTR, "logMessage"), (['in'], comtypes.c_long, "revision"), (['out', 'retval'], POINTER(comtypes.BSTR), "pRetVal")), COMMETHOD([], HRESULT, # pytype: disable=name-error "HasOptions", (['out', 'retval'], POINTER(comtypes.c_int16), "pRetVal")), COMMETHOD([], HRESULT, # pytype: disable=name-error "ShowOptionsDialog", (['in'], comtypes.c_long, "hParentWnd"), (['in'], comtypes.BSTR, "parameters"), (['out', 'retval'], POINTER(comtypes.BSTR), "pRetVal")) ] class BugTraq: # svnjiraguid = "{CF732FD7-AA8A-4E9D-9E15-025E4D1A7E9D}" def __init__(self, guid): self.guid = guid self.bugtr = None self.errorshown = False # do not show the COM Error more than once def _get_bugtraq_object(self): if not self.bugtr: obj = CreateObject(self.guid) try: self.bugtr = obj.QueryInterface(IBugTraqProvider2) except COMError: if not self.errorshown: self.errorshown = True qtlib.ErrorMsgBox(_('Issue Tracker Plugin Error'), _('Could not instantiate Issue Tracker plugin COM object'), _('This error will not be shown again until you restart the workbench')) return None return self.bugtr def get_commit_message(self, parameters, logmessage): commonurl = "" commonroot = "" bugid = "" bstrarray = _midlSAFEARRAY(comtypes.BSTR) pathlist = bstrarray.from_param(()) bugtr = self._get_bugtraq_object() if bugtr is None: return "" try: if self.supports_bugtraq2_interface(): (bugid, revPropNames, revPropValues, newmessage) = bugtr.GetCommitMessage2( 0, parameters, commonurl, commonroot, pathlist, logmessage, bugid) else: newmessage = bugtr.GetCommitMessage( 0, parameters, commonroot, pathlist, logmessage) except COMError: qtlib.ErrorMsgBox(_('Issue Tracker Plugin Error'), _('Error getting commit message information from Issue Tracker plugin')) return "" return newmessage def on_commit_finished(self, logmessage): if not self.supports_bugtraq2_interface(): return "" commonroot = "" bstrarray = _midlSAFEARRAY(comtypes.BSTR) pathlist = bstrarray.from_param(()) bugtr = self._get_bugtraq_object() if bugtr is None: return "" try: errormessage = bugtr.OnCommitFinished(0, commonroot, pathlist, logmessage, 0) except COMError: qtlib.ErrorMsgBox(_('Issue Tracker Plugin Error'), _('Error executing "commit finished" trigger')) return "" return errormessage def show_options_dialog(self, options): if not self.has_options(): return "" bugtr = self._get_bugtraq_object() if bugtr is None: return "" try: options = bugtr.ShowOptionsDialog(0, options) except COMError: qtlib.ErrorMsgBox(_('Issue Tracker Plugin Error'), _('Cannot open Plugin Options dialog')) return "" return options def has_options(self): if not self.supports_bugtraq2_interface(): return False bugtr = self._get_bugtraq_object() if bugtr is None: return False return bugtr.HasOptions() != 0 def get_link_text(self, parameters): bugtr = self._get_bugtraq_object() if bugtr is None: return "" return bugtr.GetLinkText(0, parameters) def supports_bugtraq2_interface(self): bugtr = self._get_bugtraq_object() try: bugtr.HasOptions() return True except (ValueError, AttributeError): return False def get_issue_plugins(): cm = pythoncom.CoCreateInstance(pythoncom.CLSID_StdComponentCategoriesMgr, None, pythoncom.CLSCTX_INPROC, pythoncom.IID_ICatInformation) # pytype: disable=module-attr # TODO: figure out if this attr is actually missing CATID_BugTraqProvider = pythoncom.MakeIID( "{3494FA92-B139-4730-9591-01135D5E7831}") # pytype: enable=module-attr ret = [] # pytype: disable=attribute-error # TODO: figure out if this attr is actually missing enumerator = cm.EnumClassesOfCategories((CATID_BugTraqProvider,), ()) # pytype: enable=attribute-error while True: try: clsid = enumerator.Next() if clsid == (): break except pythoncom.com_error: break ret.extend(clsid) return ret def get_plugin_name(clsid): # pytype: disable=module-attr with winreg.OpenKey(winreg.HKEY_CLASSES_ROOT, r"CLSID\%s" % clsid) as key: try: keyvalue = winreg.QueryValueEx(key, "")[0] except OSError: keyvalue = None # pytype: enable=module-attr return keyvalue def get_issue_plugins_with_names(): pluginclsids = get_issue_plugins() keyandnames = [(key, get_plugin_name(key)) for key in pluginclsids] return [kn for kn in keyandnames if kn[1] is not None] ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730631722.0 tortoisehg-6.9/tortoisehg/util/cachethg.py0000644000000000000000000002063114711654052017610 0ustar00rootroot# cachethg.py - overlay/status cache # # Copyright 2008 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os from mercurial import hg, error, pycompat, scmutil from tortoisehg.util import paths, debugthg, hglib if hglib.TYPE_CHECKING: from typing import ( Dict, List, Optional, Text, ) from mercurial import ( localrepo, ) debugging = False enabled = True localonly = False includepaths: List[Text] = [] excludepaths: List[Text] = [] try: from mercurial.windows import winreg # pytype: disable=module-attr HKEY_CURRENT_USER = winreg.HKEY_CURRENT_USER OpenKey = winreg.OpenKey QueryValueEx = winreg.QueryValueEx # pytype: enable=module-attr from win32api import GetTickCount # pytype: disable=import-error CACHE_TIMEOUT = 5000 try: with OpenKey(HKEY_CURRENT_USER, r"Software\TortoiseHg") as hkey: enabled = QueryValueEx(hkey, 'EnableOverlays')[0] in ('1', 'True') localonly = QueryValueEx(hkey, 'LocalDisksOnly')[0] in ('1', 'True') incs = QueryValueEx(hkey, 'IncludePath')[0] excs = QueryValueEx(hkey, 'ExcludePath')[0] debugging = QueryValueEx(hkey, 'OverlayDebug')[0] in ('1', 'True') for p in incs.split(';'): path = p.strip() if path: includepaths.append(path) for p in excs.split(';'): path = p.strip() if path: excludepaths.append(path) except OSError: pass except (AttributeError, ImportError): # AttributeError for winreg.* on Unix from time import time as GetTickCount CACHE_TIMEOUT = 5.0 debugging = debugthg.debug('O') if debugging: debugf = debugthg.debugf debugf('Enabled %s', enabled) debugf('LocalDisksOnly %s', localonly) debugf('IncludePaths %s', includepaths) debugf('ExcludePaths %s', excludepaths) else: debugf = debugthg.debugf_No STATUS_STATES = 'MAR!?IC' MODIFIED, ADDED, REMOVED, DELETED, UNKNOWN, IGNORED, UNCHANGED = STATUS_STATES NOT_IN_REPO = ' ' ROOT = "r" UNRESOLVED = 'U' # file status cache overlay_cache: Dict[Optional[Text], Optional[Text]] = {} cache_tick_count = 0 cache_root: Optional[Text] = None cache_pdir: Optional[Text] = None def add_dirs(list: List[bytes]) -> None: dirs = set() if list: dirs.add(b'') for f in list: pdir = os.path.dirname(f) if pdir in dirs: continue while pdir: dirs.add(pdir) pdir = os.path.dirname(pdir) list.extend(dirs) def get_state(upath: Text, repo: Optional[localrepo.localrepository] = None) -> Text: """ Get the state of a given path in source control. """ states = get_states(upath, repo) return states and states[0] or NOT_IN_REPO def get_states(path: Text, repo: Optional[localrepo.localrepository] = None) -> Text: """ Get the states of a given path in source control. """ global overlay_cache, cache_tick_count global cache_root, cache_pdir global enabled, localonly global includepaths, excludepaths #debugf("called: _get_state(%s)", path) tc = GetTickCount() # check if path is cached pdir = os.path.dirname(path) status = overlay_cache.get(path, '') if overlay_cache and (cache_pdir == pdir or cache_pdir and status not in ' r' and path.startswith(cache_pdir)): #use cached data when pdir has not changed or when the cached state is a repo state if tc - cache_tick_count < CACHE_TIMEOUT: if not status: if os.path.isdir(os.path.join(path, '.hg')): add(path, ROOT) status = ROOT else: status = overlay_cache.get(pdir + '*', NOT_IN_REPO) add(path, status) debugf("%s: %s (cached~)", (path, status)) else: debugf("%s: %s (cached)", (path, status)) return status else: debugf("Timed out!!") overlay_cache.clear() cache_tick_count = GetTickCount() # path is a drive if path.endswith(":\\"): add(path, NOT_IN_REPO) return NOT_IN_REPO # open repo if cache_pdir == pdir: root = cache_root else: debugf("find new root") root = paths.find_root(path) if root == path: if not overlay_cache: cache_root = pdir add(path, ROOT) debugf("%s: r", path) return ROOT cache_root = root cache_pdir = pdir if root is None: debugf("_get_state: not in repo") overlay_cache = {None: None} cache_tick_count = GetTickCount() return NOT_IN_REPO debugf("_get_state: root = " + root) hgdir = os.path.join(root, '.hg', '') if pdir == hgdir[:-1] or pdir.startswith(hgdir): add(pdir, NOT_IN_REPO) return NOT_IN_REPO try: if not enabled: overlay_cache = {None: None} cache_tick_count = GetTickCount() debugf("overlayicons disabled") return NOT_IN_REPO if localonly and not paths.is_on_fixed_drive(hglib.fromunicode(path)): debugf("%s: is a network drive", path) overlay_cache = {None: None} cache_tick_count = GetTickCount() return NOT_IN_REPO if includepaths: for p in includepaths: if path.startswith(p): break else: debugf("%s: is not in an include path", path) overlay_cache = {None: None} cache_tick_count = GetTickCount() return NOT_IN_REPO for p in excludepaths: if path.startswith(p): debugf("%s: is in an exclude path", path) overlay_cache = {None: None} cache_tick_count = GetTickCount() return NOT_IN_REPO tc1 = GetTickCount() real = os.path.realpath #only test if necessary (symlink in path) hgroot = hglib.fromunicode(root) if not repo or (repo.root != hgroot and repo.root != real(hgroot)): repo = hg.repository(hglib.loadui(), path=hgroot) debugf("hg.repository() took %g ticks", (GetTickCount() - tc1)) except error.RepoError: # We aren't in a working tree debugf("%s: not in repo", pdir) add(pdir + '*', IGNORED) return IGNORED except Exception as e: debugf("error while handling %s:", pdir) debugf(e) add(pdir + '*', UNKNOWN) return UNKNOWN # get file status tc1 = GetTickCount() try: matcher = scmutil.match(repo[None], [hglib.fromunicode(pdir)]) repostate = repo.status(match=matcher, ignored=True, clean=True, unknown=True) except error.Abort as inst: debugf("abort: %s", inst) debugf("treat as unknown : %s", path) return UNKNOWN debugf("status() took %g ticks", (GetTickCount() - tc1)) # cached file info tc = GetTickCount() overlay_cache = {} add(root, ROOT) add(os.path.join(root, '.hg'), NOT_IN_REPO) states = STATUS_STATES mstate = hglib.readmergestate(repo) if mstate.active(): unresolved = [f for f in mstate.unresolved()] if unresolved: repostate = [unresolved, set(repostate.modified) - set(unresolved), repostate.added, repostate.removed, repostate.deleted, repostate.unknown, repostate.ignored, repostate.clean] states = UNRESOLVED + states states = pycompat.ziplist(repostate, states) states[-1], states[-2] = states[-2], states[-1] #clean before ignored for grp, st in states: add_dirs(grp) for f in grp: fpath = os.path.join(root, os.path.normpath(hglib.tounicode(f))) add(fpath, st) status = overlay_cache.get(path, UNKNOWN) debugf("%s: %s", (path, status)) cache_tick_count = GetTickCount() return status def add(path: Text, state: Text) -> None: overlay_cache[path] = overlay_cache.get(path, '') + state ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726611701.0 tortoisehg-6.9/tortoisehg/util/colormap.py0000644000000000000000000001011314672400365017652 0ustar00rootroot# colormap.py - color scheme for annotation # # Copyright (C) 2005 Dan Loda # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import sys, math def _days(ctx, now): return (now - ctx.date()[0]) / (24 * 60 * 60) def _rescale(val, step): return float(step) * int(val / step) def _rescaleceil(val, step): return float(step) * math.ceil(float(val) / step) class AnnotateColorSaturation(object): def __init__(self, maxhues=None, maxsaturations=None, isdarktheme=False): self._maxhues = maxhues self._maxsaturations = maxsaturations self._isdarktheme = isdarktheme def hue(self, angle): return tuple([self.v(angle, r) for r in (0, 120, 240)]) @staticmethod def ang(angle, rotation): angle += rotation angle = angle % 360 if angle > 180: angle = 180 - (angle - 180) return abs(angle) def v(self, angle, rotation): ang = self.ang(angle, rotation) if ang < 60: return 1 elif ang > 120: return 0 else: return 1 - ((ang - 60) / 60) def saturate_v(self, saturation, hv): if self._isdarktheme: return int(saturation / 4 * (1 - hv)) else: return int(255 - (saturation / 3 * (1 - hv))) def committer_angle(self, committer): angle = float(abs(hash(committer))) / sys.maxsize * 360.0 if self._maxhues is None: return angle return _rescale(angle, 360.0 / self._maxhues) def get_color(self, ctx, now): days = max(_days(ctx, now), 0.0) saturation = 255/((days/50) + 1) if self._maxsaturations: saturation = _rescaleceil(saturation, 255. / self._maxsaturations) hue = self.hue(self.committer_angle(ctx.user())) color = tuple([self.saturate_v(saturation, h) for h in hue]) return "#%x%x%x" % color def makeannotatepalette(fctxs, now, maxcolors, maxhues=None, maxsaturations=None, mindate=None, isdarktheme=False): """Assign limited number of colors for annotation :fctxs: list of filecontexts by lines :now: latest time which will have most significat color :maxcolors: max number of colors :maxhues: max number of committer angles (hues) :maxsaturations: max number of saturations by age :mindate: reassign palette until it includes fctx of mindate (requires maxsaturations) This returns dict of {color: fctxs, ...}. """ if mindate is not None and maxsaturations is None: raise ValueError('mindate must be specified with maxsaturations') sortedfctxs = list(sorted(set(fctxs), key=lambda fctx: -fctx.date()[0])) return _makeannotatepalette(sortedfctxs, now, maxcolors, maxhues, maxsaturations, mindate, isdarktheme)[0] def _makeannotatepalette(sortedfctxs, now, maxcolors, maxhues, maxsaturations, mindate, isdarktheme): cm = AnnotateColorSaturation(maxhues=maxhues, maxsaturations=maxsaturations, isdarktheme=isdarktheme) palette = {} def reassignifneeded(fctx): # fctx is the latest fctx which is NOT included in the palette if mindate is None or fctx.date()[0] < mindate or maxsaturations <= 1: return palette, cm return _makeannotatepalette(sortedfctxs, now, maxcolors, maxhues, maxsaturations - 1, mindate, isdarktheme) # assign from the latest for maximum discrimination for fctx in sortedfctxs: color = cm.get_color(fctx, now) if color not in palette: if len(palette) >= maxcolors: return reassignifneeded(fctx) palette[color] = [] palette[color].append(fctx) return palette, cm # return cm for debbugging ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/util/configitems.py0000644000000000000000000001250714672254332020357 0ustar00rootroot# configitems.py - declaration of TortoiseHg configurations # # Copyright 2018 Yuya Nishihara # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations from mercurial import ( registrar, ) from tortoisehg.util import ( hgversion, ) configtable = {} configitem = registrar.configitem(configtable) # special value for case where the default is derived from other values dynamicdefault = configitem.dynamicdefault # pytype: disable=attribute-error testedwith = hgversion.testedwith configitem(b'experimental', b'graph-group-branches', default=False) configitem(b'experimental', b'graph-group-branches.firstbranch', default=b'') configitem(b'experimental', b'thg.fix-app-font', default=True) configitem(b'experimental', b'thg.displaynames', default=None) configitem(b'reviewboard', b'browser', default=None) configitem(b'reviewboard', b'password', default=None) configitem(b'reviewboard', b'repoid', default=None) configitem(b'reviewboard', b'server', default=None) configitem(b'reviewboard', b'user', default=None) configitem(b'tortoisehg', b'activatebookmarks', default=b'prompt') configitem(b'tortoisehg', b'authorcolor', default=False) configitem(b'tortoisehg', b'autoinc', default=b'') configitem(b'tortoisehg', b'autoresolve', default=True) configitem(b'tortoisehg', b'branchcolors', default=None) configitem(b'tortoisehg', b'changeset.link', default=None) configitem(b'tortoisehg', b'ciexclude', default=b'') configitem(b'tortoisehg', b'cipushafter', default=None) configitem(b'tortoisehg', b'closeci', default=False) configitem(b'tortoisehg', b'cmdserver.readtimeout', default=30) configitem(b'tortoisehg', b'confirmaddfiles', default=True) configitem(b'tortoisehg', b'confirmdeletefiles', default=True) configitem(b'tortoisehg', b'confirmpush', default=True) configitem(b'tortoisehg', b'copy_hash_selection', default=False) configitem(b'tortoisehg', b'deadbranch', default=b'') configitem(b'tortoisehg', b'defaultclonedest', default=None) configitem(b'tortoisehg', b'defaultpush', default=b'all') configitem(b'tortoisehg', b'defaultwidget', default=None) configitem(b'tortoisehg', b'editor', default=None) configitem(b'tortoisehg', b'engmsg', default=False) configitem(b'tortoisehg', b'fontcomment', default=dynamicdefault) configitem(b'tortoisehg', b'fontdiff', default=dynamicdefault) configitem(b'tortoisehg', b'fonteditor', default=dynamicdefault) configitem(b'tortoisehg', b'fontlog', default=dynamicdefault) configitem(b'tortoisehg', b'fontoutputlog', default=dynamicdefault) configitem(b'tortoisehg', b'forcerepotab', default=False) configitem(b'tortoisehg', b'forcevdiffwin', default=False) configitem(b'tortoisehg', b'fullauthorname', default=False) configitem(b'tortoisehg', b'fullpath', default=False) configitem(b'tortoisehg', b'graphlimit', default=500) configitem(b'tortoisehg', b'graphopt', default=False) configitem(b'tortoisehg', b'guifork', default=None) configitem(b'tortoisehg', b'hidetags', default=b'') configitem(b'tortoisehg', b'immediate', default=b'') configitem(b'tortoisehg', b'initialrevision', default=b'current') configitem(b'tortoisehg', b'initskel', default=None) configitem(b'tortoisehg', b'issue.bugtraqparameters', default=None) configitem(b'tortoisehg', b'issue.bugtraqplugin', default=None) configitem(b'tortoisehg', b'issue.bugtraqtrigger', default=None) configitem(b'tortoisehg', b'issue.inlinetags', default=False) configitem(b'tortoisehg', b'issue.link', default=None) configitem(b'tortoisehg', b'issue.linkmandatory', default=False) configitem(b'tortoisehg', b'issue.regex', default=None) configitem(b'tortoisehg', b'longsummary', default=False) configitem(b'tortoisehg', b'maxdiff', default=None) configitem(b'tortoisehg', b'mergecommitmessage', default=None) configitem(b'tortoisehg', b'monitorrepo', default=b'localonly') configitem(b'tortoisehg', b'opentabsaftercurrent', default=True) configitem(b'tortoisehg', b'postpull', default=None) configitem(b'tortoisehg', b'promoteditems', default=b'commit,log') configitem(b'tortoisehg', b'readme', default=None) configitem(b'tortoisehg', b'recurseinsubrepos', default=None) configitem(b'tortoisehg', b'refreshwdstatus', default=b'auto') configitem(b'tortoisehg', b'shell', default=None) configitem(b'tortoisehg', b'show-branch-head-label', default=True) configitem(b'tortoisehg', b'showfamilyline', default=True) configitem(b'tortoisehg', b'summarylen', default=None) configitem(b'tortoisehg', b'tabwidth', default=None) configitem(b'tortoisehg', b'tasktabs', default=b'off') configitem(b'tortoisehg', b'traceback', default=False) configitem(b'tortoisehg', b'ui.language', default=None) configitem(b'tortoisehg', b'vdiff', default=None) configitem(b'tortoisehg', b'workbench.commit.custom-menu', default=list) configitem(b'tortoisehg', b'workbench.custom-toolbar', default=list) configitem(b'tortoisehg', b'workbench.filelist.custom-menu', default=list) configitem(b'tortoisehg', b'workbench.multipleselection.custom-menu', default=list) configitem(b'tortoisehg', b'workbench.pairselection.custom-menu', default=list) configitem(b'tortoisehg', b'workbench.revdetails.custom-menu', default=list) configitem(b'tortoisehg', b'workbench.single', default=True) configitem(b'tortoisehg', b'workbench.target-combo', default=b'auto') configitem(b'tortoisehg', b'workbench.task-toolbar', default=list) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/util/debugthg.py0000644000000000000000000000326214672254332017637 0ustar00rootroot# debugthg.py - debugging library for TortoiseHg shell extensions # # Copyright 2008 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations debugging = '' try: from mercurial.windows import winreg try: # pytype: disable=module-attr with winreg.OpenKey(winreg.HKEY_CURRENT_USER, r"Software\TortoiseHg", 0, winreg.KEY_ALL_ACCESS) as hkey: val = winreg.QueryValueEx(hkey, 'OverlayDebug')[0] if val in ('1', 'True'): debugging += 'O' val = winreg.QueryValueEx(hkey, 'ContextMenuDebug')[0] # pytype: enable=module-attr if val in ('1', 'True'): debugging += 'M' if debugging: import win32traceutil # pytype: disable=import-error except OSError: pass except (AttributeError, ImportError): # AttributeError for winreg.* on Unix import os debugging = os.environ.get("DEBUG_THG", "") if debugging.lower() in ("1", "true"): debugging = True def debugf_No(str, args=None, level=''): pass if debugging: def debug(level=''): return debugging == True or level in debugging def debugf(str, args=None, level=''): if not debug(level): return if args: print(str % args) elif debug('e') and isinstance(str, BaseException): import traceback traceback.print_exc() else: print(str) else: def debug(level=''): return False debugf = debugf_No ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730631722.0 tortoisehg-6.9/tortoisehg/util/editor.py0000644000000000000000000001073614711654052017335 0ustar00rootrootfrom __future__ import annotations import os, sys from mercurial import ( match, pycompat, util, ) from mercurial.utils import procutil if pycompat.TYPE_CHECKING: from typing import ( List, Optional, Tuple, ) from mercurial import ( localrepo, ui as uimod, ) def _getplatformexecutablekey() -> bytes: if sys.platform == 'darwin': key = b'executable-osx' elif os.name == 'nt': key = b'executable-win' else: key = b'executable-unix' return key _platformexecutablekey = _getplatformexecutablekey() def _toolstr(ui: uimod.ui, tool: bytes, part: bytes, default: Optional[bytes] = b"") -> bytes: val = ui.config(b"editor-tools", tool + b"." + part, default) assert val is not None # help pytype return val toolcache = {} def _findtool(ui: uimod.ui, tool: bytes) -> Optional[bytes]: global toolcache if tool in toolcache: return toolcache[tool] for kn in (b"regkey", b"regkeyalt"): k = _toolstr(ui, tool, kn) if not k: continue p = util.lookupreg(k, _toolstr(ui, tool, b"regname")) if p: p = procutil.findexe(p + _toolstr(ui, tool, b"regappend")) if p: toolcache[tool] = p return p global _platformexecutablekey exe = _toolstr(ui, tool, _platformexecutablekey) if not exe: exe = _toolstr(ui, tool, b'executable', tool) path = procutil.findexe(util.expandpath(exe)) if path: toolcache[tool] = path return path elif tool != exe: path = procutil.findexe(tool) toolcache[tool] = path return path toolcache[tool] = None return None def _findeditor(repo: localrepo.localrepository, files: List[bytes]) -> Tuple[Optional[bytes], bytes]: '''returns tuple of editor name and editor path. tools matched by pattern are returned as (name, toolpath) tools detected by search are returned as (name, toolpath) tortoisehg.editor is returned as (None, tortoisehg.editor) HGEDITOR or ui.editor are returned as (None, ui.editor) So first return value is an [editor-tool] name or None and second return value is a toolpath or user configured command line ''' ui = repo.ui # first check for tool specified by file patterns. The first file pattern # which matches one of the files being edited selects the editor for pat, tool in ui.configitems(b"editor-patterns"): mf = match.match(repo.root, b'', [pat]) toolpath = _findtool(ui, tool) if mf(files[0]) and toolpath: return tool, procutil.shellquote(toolpath) # then editor-tools tools = {} for k, v in ui.configitems(b"editor-tools"): t = k.split(b'.')[0] if t not in tools: try: priority = int(_toolstr(ui, t, b"priority", b"0")) except ValueError as e: priority = -100 tools[t] = priority names = list(tools.keys()) tools = sorted([(-p, t) for t, p in tools.items()]) editor = ui.config(b'tortoisehg', b'editor') if editor: if editor not in names: # if tortoisehg.editor does not match an editor-tools entry, take # the value directly return None, editor # else select this editor as highest priority (may still use another if # it is not found on this machine) tools.insert(0, (0, editor)) for p, t in tools: toolpath = _findtool(ui, t) if toolpath: return t, procutil.shellquote(toolpath) # fallback to potential CLI editor editor = ui.geteditor() return None, editor def detecteditor(repo: localrepo.localrepository, files: List[bytes]) -> Tuple[bytes, Optional[bytes], Optional[bytes], Optional[bytes]]: 'returns tuple of editor tool path and arguments' name, pathorconfig = _findeditor(repo, files) if name is None: return pathorconfig, None, None, None else: args = _toolstr(repo.ui, name, b"args") argsln = _toolstr(repo.ui, name, b"argsln") argssearch = _toolstr(repo.ui, name, b"argssearch") return pathorconfig, args, argsln, argssearch def findeditors(ui: uimod.ui) -> List[bytes]: seen = set() for key, value in ui.configitems(b'editor-tools'): t = key.split(b'.')[0] seen.add(t) return [t for t in seen if _findtool(ui, t)] ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730631722.0 tortoisehg-6.9/tortoisehg/util/gpg.py0000644000000000000000000000235114711654052016616 0ustar00rootroot# gpg.py - TortoiseHg GnuPG support # # Copyright 2013 Elson Wei # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os from . import hglib if hglib.TYPE_CHECKING: from typing import ( List, Text, ) from mercurial import ( ui as uimod, ) if os.name == 'nt': from mercurial.windows import winreg def findgpg(ui: uimod.ui) -> List[Text]: path = [] for key in (r"Software\GNU\GnuPG", r"Software\Wow6432Node\GNU\GnuPG"): try: # pytype: disable=module-attr with winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, key) as hkey: pfx = winreg.QueryValueEx(hkey, 'Install Directory')[0] # pytype: enable=module-attr for dirPath, dirNames, fileNames in os.walk(pfx): for f in fileNames: if f == 'gpg.exe': path.append(os.path.join(dirPath, f)) except OSError: pass return path else: def findgpg(ui: uimod.ui) -> List[Text]: return [] ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/util/hgcommands.py0000644000000000000000000001206014672254332020162 0ustar00rootroot# hgcommands.py - miscellaneous Mercurial commands for TortoiseHg # # Copyright 2013, 2014 Yuya Nishihara # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import hashlib import os import socket from mercurial import ( error, extensions, node as nodemod, pycompat, registrar, sslutil, util, ) from mercurial.utils import ( urlutil, ) from tortoisehg.util import ( hgversion, version, ) from tortoisehg.util.i18n import agettext as _ cmdtable = {} _mqcmdtable = {} command = registrar.command(cmdtable) mqcommand = registrar.command(_mqcmdtable) configtable = {} configitem = registrar.configitem(configtable) testedwith = hgversion.testedwith getversion = version.version_bytes configitem(b'tortoisehg', b'initskel') @command(b'debuggethostfingerprint', [(b'', b'insecure', None, _('do not verify server certificate (ignoring web.cacerts config)')), ], _('[--insecure] [SOURCE]'), optionalrepo=True) def debuggethostfingerprint(ui, repo, source=b'default', **opts): """retrieve a fingerprint of the server certificate Specify --insecure to disable SSL verification. """ # we have no idea if the source url is for pull or push, so let's assume # 'pull' is more basic operation like other hg debug* commands. source, _branches = urlutil.get_unique_pull_path( b'debuggethostfingerprint', repo, ui, source) u = urlutil.url(source) scheme = (u.scheme or b'').split(b'+')[-1] host = u.host port = urlutil.getport(u.port or scheme or b'-1') if scheme != b'https' or not host or not (0 <= port <= 65535): raise error.Abort(_('unsupported URL: %s') % source) sock = socket.socket() try: sock.connect((host, port)) sock = sslutil.wrapsocket(sock, None, None, ui, serverhostname=host) peercert = sock.getpeercert(True) if not peercert: raise error.Abort(_('%s certificate error: no certificate received') % host) finally: sock.close() s = nodemod.hex(hashlib.sha256(peercert).digest()) ui.write(b'sha256:', b':'.join([s[x:x + 2] for x in pycompat.xrange(0, len(s), 2)]), b'\n') def postinitskel(ui, repo, hooktype, result, pats, **kwargs): """create common files in new repository""" assert hooktype == b'post-init', hooktype if result: return _src, dest, _branch = urlutil.get_clone_path(ui, pats and pats[0] or b'.') skel = ui.config(b'tortoisehg', b'initskel') if skel: # copy working tree from user-defined path if any skel = util.expandpath(skel) for name in os.listdir(skel): if name == b'.hg': continue util.copyfiles(os.path.join(skel, name), os.path.join(dest, name), hardlink=False) return # create .hg* files, mainly to workaround Explorer's problem in creating # files with a name beginning with a dot open(os.path.join(dest, b'.hgignore'), 'a').close() def _applymovemqpatches(q, after, patches): fullindexes = dict((q.guard_re.split(rpn, 1)[0], i) for i, rpn in enumerate(q.fullseries)) fullmap = {} # patch: line in series file for i, n in sorted([(fullindexes[n], n) for n in patches], reverse=True): fullmap[n] = q.fullseries.pop(i) del fullindexes # invalid if after is None: fullat = 0 else: for i, rpn in enumerate(q.fullseries): if q.guard_re.split(rpn, 1)[0] == after: fullat = i + 1 break else: fullat = len(q.fullseries) # last ditch (should not happen) q.fullseries[fullat:fullat] = (fullmap[n] for n in patches) q.parseseries() q.seriesdirty = True @mqcommand(b'qreorder', [(b'', b'after', b'', _('move after the specified patch'))], _('[--after PATCH] PATCH...')) def qreorder(ui, repo, *patches, **opts): """move patches to the beginning or after the specified patch""" after = opts['after'] or None q = repo.mq if any(n not in q.series for n in patches): raise error.Abort(_('unknown patch to move specified')) if after in patches: raise error.Abort(_('invalid patch position specified')) if any(q.isapplied(n) for n in patches): raise error.Abort(_('cannot move applied patches')) if after is None: at = 0 else: try: at = q.series.index(after) + 1 except ValueError: raise error.Abort(_('patch %s not in series') % after) if at < q.seriesend(True): raise error.Abort(_('cannot move into applied patches')) wlock = repo.wlock() try: _applymovemqpatches(q, after, patches) q.savedirty() finally: wlock.release() def uisetup(ui): try: extensions.find(b'mq') cmdtable.update(_mqcmdtable) except KeyError: pass ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726611701.0 tortoisehg-6.9/tortoisehg/util/hgdispatch.py0000644000000000000000000000466114672400365020167 0ustar00rootroot# hgdispatch.py - Mercurial command wrapper for TortoiseHg # # Copyright 2007, 2009 Steve Borho # Copyright 2010 Yuki KODAMA # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import ssl from mercurial import encoding, error, extensions, subrepo, util from mercurial import dispatch as dispatchmod from tortoisehg.util import ( hgversion, version, ) from tortoisehg.util.i18n import agettext as _ testedwith = hgversion.testedwith getversion = version.version_bytes # exception handling different from _runcatch() def _dispatch(orig, req): ui = req.ui try: return orig(req) except subrepo.SubrepoAbort as e: errormsg = bytes(e) label = b'ui.error' if e.subrepo: label += b' subrepo=%s' % util.urlreq.quote(e.subrepo) ui.write_err(_('abort: ') + errormsg + b'\n', label=label) if e.hint: ui.write_err(_('hint: ') + bytes(e.hint) + b'\n', label=label) except error.Abort as e: ui.write_err(_('abort: ') + bytes(e) + b'\n', label=b'ui.error') if e.hint: ui.write_err(_('hint: ') + bytes(e.hint) + b'\n', label=b'ui.error') except error.RepoError as e: ui.write_err(bytes(e) + b'\n', label=b'ui.error') except util.urlerr.httperror as e: err = _('HTTP Error: %d (%s)') % (e.code, encoding.strtolocal(e.msg)) ui.write_err(err + b'\n', label=b'ui.error') except util.urlerr.urlerror as e: err = _('URLError: %s') % encoding.strtolocal(str(e.reason)) if isinstance(e.args[0], ssl.SSLError): parts = encoding.strtolocal(e.args[0].strerror).split(b':') if len(parts) == 7: file, line, level, _errno, lib, func, reason = parts if func == b'SSL3_GET_SERVER_CERTIFICATE': err = _('SSL: Server certificate verify failed') elif _errno == b'00000000': err = _('SSL: unknown error %s:%s') % (file, line) else: err = _('SSL error: %s') % reason ui.write_err(err + b'\n', label=b'ui.error') return -1 def uisetup(ui): # uisetup() is called after the initial dispatch(), so this only makes an # effect on command server extensions.wrapfunction(dispatchmod, '_dispatch', _dispatch) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730631722.0 tortoisehg-6.9/tortoisehg/util/hglib.py0000644000000000000000000013213714711654052017134 0ustar00rootroot# hglib.py - Mercurial API wrappers for TortoiseHg # # Copyright 2007 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import glob import io import os import re import shlex import sys import time from typing import ( cast, Iterable, List, Union, ) from hgext import mq as mqmod from mercurial import ( cmdutil, config, context, dispatch as dispatchmod, encoding, error, extensions, fancyopts, filemerge, filesetlang, mdiff, mergestate as mergestatemod, patch as patchmod, pathutil, pycompat, rcutil, revset as revsetmod, revsetlang, scmutil, state as statemod, subrepo, subrepoutil, ui as uimod, util, ) from mercurial.utils import ( dateutil, stringutil, ) from mercurial.node import nullrev from . import ( hgversion as hgversionmod, paths, ) from .i18n import ( _ as _gettext, ngettext as _ngettext, ) TYPE_CHECKING = getattr(pycompat, 'TYPE_CHECKING', False) if TYPE_CHECKING: from typing import ( AbstractSet, Callable, Dict, Optional, Text, Tuple, overload, ) from mercurial import ( context, localrepo, ) from .typelib import ( DiffTools, HgContext, IniConfig, ) nullsubrepostate = subrepoutil.nullstate _encoding = pycompat.sysstr(encoding.encoding) _fallbackencoding = pycompat.sysstr(encoding.fallbackencoding) hgversion = pycompat.sysstr(hgversionmod.hgversion) # extensions which can cause problem with TortoiseHg _extensions_blacklist = ( b'blackbox', # mucks uimod.ui (hg 851c41a21869, issue #4489) b'color', b'pager', b'progress', b'zeroconf', ) extractpatch = patchmod.extract tokenizerevspec = revsetlang.tokenize userrcpath = rcutil.userrcpath # TODO: use unicode version globally def _(message: str, context: str = '') -> bytes: return _gettext(message, context).encode('utf-8') def ngettext(singular: str, plural: str, n: int) -> bytes: return _ngettext(singular, plural, n).encode('utf-8') if TYPE_CHECKING: @overload def tounicode(s: Union[bytes, pycompat.unicode]) -> pycompat.unicode: pass @overload def tounicode(s: None) -> None: pass def tounicode(s): """ Convert the encoding of string from MBCS to Unicode. Based on mercurial.util.tolocal(). Return 'unicode' type string. """ if s is None: return None if isinstance(s, pycompat.unicode): return s if isinstance(s, encoding.localstr): return s._utf8.decode('utf-8') try: return s.decode(_encoding, 'strict') except UnicodeDecodeError: pass return s.decode(_fallbackencoding, 'replace') def to_unicode_list(seq: Iterable[Union[bytes, str]]) -> List[str]: return cast(List[str], pycompat.maplist(tounicode, seq)) if TYPE_CHECKING: @overload def fromunicode(s: Text, errors: Text = 'strict') -> bytes: pass @overload def fromunicode(s: None, errors: Text = 'strict') -> None: pass def fromunicode(s, errors='strict'): """ Convert the encoding of string from Unicode to MBCS. Return 'str' type string. If you don't want an exception for conversion failure, specify errors='replace'. """ if s is None: return None for enc in (_encoding, _fallbackencoding): try: l = s.encode(enc) if s == l.decode(enc): return l # non-lossy encoding return encoding.localstr(s.encode('utf-8'), l) except UnicodeEncodeError: pass l = s.encode(_encoding, errors) # last ditch return encoding.localstr(s.encode('utf-8'), l) if TYPE_CHECKING: @overload def toutf(s: bytes) -> bytes: pass @overload def toutf(s: None) -> None: pass def toutf(s): """ Convert the encoding of string from MBCS to UTF-8. Return 'str' type string. """ if s is None: return None if isinstance(s, encoding.localstr): return s._utf8 return tounicode(s).encode('utf-8').replace(b'\0', b'') if TYPE_CHECKING: @overload def fromutf(s: bytes) -> bytes: pass @overload def fromutf(s: None) -> None: pass def fromutf(s): """ Convert the encoding of string from UTF-8 to MBCS Return 'str' type string. """ if s is None: return None try: return fromunicode(s.decode('utf-8'), 'replace') except UnicodeDecodeError: # can't round-trip return bytes(fromunicode(s.decode('utf-8', 'replace'), 'replace')) getcwdb = encoding.getcwd def isbasestring(x): return isinstance(x, str) getcwdu = os.getcwd def activebookmark(repo) -> bytes: return repo._activebookmark def namedbranches(repo) -> List[bytes]: branchmap = repo.branchmap() dead = repo.deadbranches return sorted(br for br, _heads, _tip, isclosed in branchmap.iterbranches() if not isclosed and br not in dead) def _firstchangectx(repo): try: # try fast path, which may be hidden return repo[0] except error.RepoLookupError: pass for rev in revsetmod.spanset(repo): return repo[rev] return repo[nullrev] def revsymbol(repo: localrepo.localrepository, rev: bytes) -> HgContext: ctx = scmutil.revsymbol(repo, rev) assert isinstance(ctx, (context.changectx, context.workingctx)) return ctx def shortrepoid(repo) -> str: """Short hash of the first root changeset; can be used for settings key""" return str(_firstchangectx(repo)) def repoidnode(repo) -> bytes: """Hash of the first root changeset in binary form""" return _firstchangectx(repo).node() def _getfirstrevisionlabel(repo, ctx) -> Optional[bytes]: # see context.changectx for look-up order of labels bookmarks = ctx.bookmarks() if ctx in repo[None].parents(): # keep bookmark unchanged when updating to current rev if activebookmark(repo) in bookmarks: return activebookmark(repo) else: # more common switching bookmark, rather than deselecting it if bookmarks: return bookmarks[0] tags = ctx.tags() if tags: return tags[0] branch = ctx.branch() if repo.branchtip(branch) == ctx.node(): return branch def getrevisionlabel(repo, rev: Optional[int]) -> Optional[Text]: """Return symbolic name for the specified revision or stringfy it""" if rev is None: return None # no symbol for working revision ctx = repo[rev] label = _getfirstrevisionlabel(repo, ctx) if label and ctx == revsymbol(repo, label): return tounicode(label) return '%d' % rev def getmqpatchtags(repo) -> List[bytes]: '''Returns all tag names used by MQ patches, or []''' if hasattr(repo, 'mq'): repo.mq.parseseries() return repo.mq.series[:] else: return [] def getcurrentqqueue(repo) -> Optional[bytes]: """Return the name of the current patch queue.""" if not hasattr(repo, 'mq'): return None cur: bytes = os.path.basename(repo.mq.path) if cur.startswith(b'patches-'): cur = cur[8:] return cur def gitcommit_full(ctx) -> Optional[Text]: """ If the hggit extension is loaded, and the repository is a git clone, returns the complete git commit hash of the current revision """ repo = ctx.repo() if b'hggit' not in repo.extensions(): return None fullgitnode = tounicode(repo.githandler.map_git_get(ctx.hex())) if fullgitnode is None: return None return fullgitnode def gitcommit_short(ctx) -> Optional[Text]: """ If the hggit extension is loaded, and the repository is a git clone, returns the short (12 digits) git commit hash of the current revision """ fullgitnode = gitcommit_full(ctx) return None if fullgitnode is None else fullgitnode[:12] def getqqueues(repo) -> List[Text]: ui = repo.ui.copy() ui.quiet = True # don't append "(active)" ui.pushbuffer() try: opts = {'list': True} mqmod.qqueue(ui, repo, None, **opts) qqueues = tounicode(ui.popbuffer()).splitlines() except (error.Abort, EnvironmentError): qqueues = [] return qqueues def readgraftstate(repo) -> Optional[List[bytes]]: """Read a list of nodes from graftstate; or None if nothing in progress""" graftstate = statemod.cmdstate(repo, b'graftstate') if graftstate.exists(): return cmdutil.readgraftstate(repo, graftstate)[b'nodes'] return None mergestate = mergestatemod.mergestate readmergestate = mergestate.read def operation_in_progress(repo: localrepo.localrepository, statename: bytes) -> bool: """Indicates if a long term operation is in progress""" return statemod.cmdstate(repo, statename).exists() def graft_in_progress(repo: localrepo.localrepository) -> bool: return operation_in_progress(repo, b"graftstate") def pick_in_progress(repo: localrepo.localrepository) -> bool: return operation_in_progress(repo, b"pickstate") def rebase_in_progress(repo: localrepo.localrepository) -> bool: return operation_in_progress(repo, b"rebasestate") def readundodesc(repo) -> Tuple[Text, int]: """Read short description and changelog size of last transaction""" if os.path.exists(repo.sjoin(b'undo')): try: args = repo.vfs(b'undo.desc', b'r').read().splitlines() return tounicode(args[1]), int(args[0]) except (IOError, IndexError, ValueError): pass return '', len(repo) def unidifftext(a: bytes, ad: bytes, b: bytes, bd: bytes, fn1: bytes, fn2: bytes, opts: mdiff.diffopts = mdiff.defaultopts) -> bytes: binary = stringutil.binary(a) or stringutil.binary(b) headers, hunks = mdiff.unidiff(a, ad, b, bd, fn1, fn2, binary=binary, opts=opts) if not hunks: return b'' text = b''.join(sum((list(hlines) for _hrange, hlines in hunks), [])) return b'\n'.join(headers) + b'\n' + text def enabledextensions() -> Dict[Text, bytes]: """Return the {name: shortdesc} dict of enabled extensions shortdesc is in local encoding. """ return {pycompat.sysstr(k): v for k, v in extensions.enabled().items()} def disabledextensions() -> Dict[Text, bytes]: return {pycompat.sysstr(k): v for k, v in extensions.disabled().items()} def allextensions() -> Dict[Text, bytes]: """Return the {name: shortdesc} dict of known extensions shortdesc is in local encoding. """ enabledexts = enabledextensions() disabledexts = disabledextensions() exts = (disabledexts or {}).copy() exts.update(enabledexts) exts.pop('configitems') # tortoisehg.util.configitems if hasattr(sys, "frozen"): if 'hggit' not in exts: exts['hggit'] = _('hggit packaged with thg') if 'evolve' not in exts: exts['evolve'] = _('evolve packaged with thg') if 'topic' not in exts: exts['topic'] = _('topic packaged with thg') exts.pop('mercurial_extension_utils', None) # Part of keyring extension exts.pop('hooklib', None) # Internal, but also needs [hooks] setup return exts def validateextensions(enabledexts: AbstractSet[Text]) -> Dict[Text, bytes]: """Report extensions which should be disabled Returns the dict {name: message} of extensions expected to be disabled. message is 'utf-8'-encoded string. """ exts = {} if os.name != 'posix': exts['inotify'] = _('inotify is not supported on this platform') if 'win32text' in enabledexts: exts['eol'] = _('eol is incompatible with win32text') if 'eol' in enabledexts: exts['win32text'] = _('win32text is incompatible with eol') if 'perfarce' in enabledexts: exts['hgsubversion'] = _('hgsubversion is incompatible with perfarce') if 'hgsubversion' in enabledexts: exts['perfarce'] = _('perfarce is incompatible with hgsubversion') return exts def _loadextensionwithblacklist(orig, ui, name, path, *args, **kwargs): if name.startswith(b'hgext.') or name.startswith(b'hgext/'): shortname = name[6:] else: shortname = name if shortname in _extensions_blacklist and not path: # only bundled ext return return orig(ui, name, path, *args, **kwargs) def _wrapextensionsloader(): """Wrap extensions.load(ui, name) for blacklist to take effect""" extensions.wrapfunction(extensions, 'load', _loadextensionwithblacklist) def loadextensions(ui: uimod.ui) -> None: """Load and setup extensions for GUI process""" _wrapextensionsloader() # enable blacklist of extensions extensions.loadall(ui) def hastopicext(repo: localrepo.localrepository) -> bool: """Indicate is the topic extension is enabled for ``repo``.""" hastopicext = False try: hastopicext = extensions.find(b'topic').hastopicext(repo) except (KeyError, AttributeError): pass return hastopicext # TODO: provide singular canonpath() wrapper instead? def canonpaths(list: Iterable[bytes]) -> List[bytes]: 'Get canonical paths (relative to root) for list of files' # This is a horrible hack. Please remove this when HG acquires a # decent case-folding solution. canonpats = [] cwd = getcwdb() root = paths.find_root_bytes(cwd) for f in list: try: canonpats.append(pathutil.canonpath(root, cwd, f)) except error.Abort: # Attempt to resolve case folding conflicts. fu = f.upper() cwdu = cwd.upper() if fu.startswith(cwdu): canonpats.append( pathutil.canonpath(root, cwd, f[len(cwd + pycompat.ossep):]) ) else: # May already be canonical canonpats.append(f) return canonpats def normpath(path: Text) -> Text: """Normalize a path in the same manner as mercurial.util.normpath().""" # TODO: Do a unicode port of util.normpath() here. return tounicode(util.normpath(fromunicode(path))) def normreporoot(path: Text) -> Text: """Normalize repo root path in the same manner as localrepository""" # see localrepo.localrepository and scmutil.vfs lpath = fromunicode(path) lpath = os.path.realpath(util.expandpath(lpath)) return tounicode(lpath) def mergetools(ui: uimod.ui) -> List[bytes]: '''returns a list of bytestring names of the configured and internal merge tools''' values = [] seen = set() for key, value in ui.configitems(b'merge-tools'): t = key.split(b'.')[0] if t not in seen: seen.add(t) # Ensure the tool is installed if filemerge._findtool(ui, t): values.append(t) values.append(b'internal:merge') values.append(b'internal:prompt') values.append(b'internal:dump') values.append(b'internal:local') values.append(b'internal:other') values.append(b'internal:fail') return values _difftools: Optional[DiffTools] = None def difftools(ui: uimod.ui) -> DiffTools: '''Return mapping from tool name to tuples with tool name, diff args, and merge args, all as bytecode strings''' global _difftools if _difftools: return _difftools def fixup_extdiff(diffopts): if b'$child' not in diffopts: diffopts.append(b'$parent1') diffopts.append(b'$child') if b'$parent2' in diffopts: mergeopts = diffopts[:] diffopts.remove(b'$parent2') else: mergeopts = [] return diffopts, mergeopts tools: DiffTools = {} for cmd, path in ui.configitems(b'extdiff'): if cmd.startswith(b'cmd.'): cmd = cmd[4:] if not path: path = cmd diffopts = ui.config(b'extdiff', b'opts.' + cmd) diffopts = pycompat.shlexsplit(diffopts) if diffopts else [] diffopts, mergeopts = fixup_extdiff(diffopts) tools[cmd] = (path, diffopts, mergeopts) elif cmd.startswith(b'opts.'): continue else: # command = path opts if path: diffopts = pycompat.shlexsplit(path) path = diffopts.pop(0) else: path, diffopts = cmd, [] diffopts, mergeopts = fixup_extdiff(diffopts) tools[cmd] = (path, diffopts, mergeopts) for t in mergetools(ui): if t.startswith(b'internal:'): continue dopts = ui.config(b'merge-tools', t + b'.diffargs') mopts = ui.config(b'merge-tools', t + b'.diff3args') tools[t] = ( filemerge._findtool(ui, t), pycompat.shlexsplit(dopts or b''), pycompat.shlexsplit(mopts or b'')) _difftools = tools return tools tortoisehgtoollocations = ( ('workbench.custom-toolbar', _('Workbench custom toolbar')), ('workbench.revdetails.custom-menu', _('Revision details context menu')), ('workbench.pairselection.custom-menu', _('Pair selection context menu')), ('workbench.multipleselection.custom-menu', _('Multiple selection context menu')), ('workbench.commit.custom-menu', _('Commit context menu')), ('workbench.filelist.custom-menu', _('File context menu (on manifest ' 'and revision details)')), ) def tortoisehgtools(uiorconfig: Union[IniConfig, uimod.ui], selectedlocation: Optional[Text] = None) -> Tuple[Dict[Text, Dict[Text, Union[Text, bool]]], List[Text]]: """Parse 'tortoisehg-tools' section of ini file. >>> from pprint import pprint >>> from mercurial import config >>> class memui(uimod.ui): ... def readconfig(self, filename, root=None, trust=False, ... sections=None, remap=None): ... pass # avoid reading settings from file-system Changes: >>> hgrctext = b''' ... [tortoisehg-tools] ... update_to_tip.icon = hg-update ... update_to_tip.command = hg update tip ... update_to_tip.tooltip = Update to tip ... ''' >>> uiobj = memui() >>> uiobj._tcfg.parse(b'', hgrctext) into the following dictionary >>> tools, toollist = tortoisehgtools(uiobj) >>> pprint(tools) #doctest: +NORMALIZE_WHITESPACE {'update_to_tip': {'command': 'hg update tip', 'icon': 'hg-update', 'tooltip': 'Update to tip'}} >>> toollist ['update_to_tip'] If selectedlocation is set, only return those tools that have been configured to be shown at the given "location". Tools are added to "locations" by adding them to one of the "extension lists", which are lists of tool names, which follow the same format as the workbench.task-toolbar setting, i.e. a list of tool names, separated by spaces or "|" to indicate separators. >>> hgrctext_full = hgrctext + b''' ... update_to_null.icon = hg-update ... update_to_null.command = hg update null ... update_to_null.tooltip = Update to null ... explore_wd.command = explorer.exe /e,{ROOT} ... explore_wd.enable = iswd ... explore_wd.label = Open in explorer ... explore_wd.showoutput = True ... ... [tortoisehg] ... workbench.custom-toolbar = update_to_tip | explore_wd ... workbench.revdetails.custom-menu = update_to_tip update_to_null ... ''' >>> uiobj = memui() >>> uiobj._tcfg.parse(b'', hgrctext_full) >>> tools, toollist = tortoisehgtools( ... uiobj, selectedlocation='workbench.custom-toolbar') >>> sorted(tools.keys()) ['explore_wd', 'update_to_tip'] >>> toollist ['update_to_tip', '|', 'explore_wd'] >>> tools, toollist = tortoisehgtools( ... uiobj, selectedlocation='workbench.revdetails.custom-menu') >>> sorted(tools.keys()) ['update_to_null', 'update_to_tip'] >>> toollist ['update_to_tip', 'update_to_null'] Valid "locations lists" are: - workbench.custom-toolbar - workbench.revdetails.custom-menu >>> tortoisehgtools(uiobj, selectedlocation='invalid.location') Traceback (most recent call last): ... ValueError: invalid location 'invalid.location' This function can take a ui object or a config object as its input. >>> cfg = config.config() >>> cfg.parse(b'', hgrctext) >>> tools, toollist = tortoisehgtools(cfg) >>> pprint(tools) #doctest: +NORMALIZE_WHITESPACE {'update_to_tip': {'command': 'hg update tip', 'icon': 'hg-update', 'tooltip': 'Update to tip'}} >>> toollist ['update_to_tip'] >>> cfg = config.config() >>> cfg.parse(b'', hgrctext_full) >>> tools, toollist = tortoisehgtools( ... cfg, selectedlocation='workbench.custom-toolbar') >>> sorted(tools.keys()) ['explore_wd', 'update_to_tip'] >>> toollist ['update_to_tip', '|', 'explore_wd'] No error for empty config: >>> emptycfg = config.config() >>> tortoisehgtools(emptycfg) ({}, []) >>> tortoisehgtools(emptycfg, selectedlocation='workbench.custom-toolbar') ({}, []) """ if isinstance(uiorconfig, uimod.ui): configitems = uiorconfig.configitems configlist = uiorconfig.configlist else: configitems = uiorconfig.items assert not isinstance(uiorconfig, uimod.ui) # help pytype def configlist(section, name): return uiorconfig.get(section, name, b'').split() tools: Dict[Text, Dict[Text, Union[Text, bool]]] = {} for key, value in configitems(b'tortoisehg-tools'): toolname, field = tounicode(key).split('.', 1) if toolname not in tools: tools[toolname] = {} if field == 'showoutput': bvalue = stringutil.parsebool(value) if bvalue is not None: value = bvalue else: value = True else: value = tounicode(value) tools[toolname][field] = value if selectedlocation is None: return tools, sorted(tools.keys()) # Only return the tools that are linked to the selected location if selectedlocation not in dict(tortoisehgtoollocations): raise ValueError('invalid location %r' % selectedlocation) guidef = configlist(b'tortoisehg', pycompat.sysbytes(selectedlocation)) or [] toollist: List[Text] = [] selectedtools: Dict[Text, Dict[Text, Union[Text, bool]]] = {} for name in guidef: name = tounicode(name) if name != '|': info = tools.get(name, None) if info is None: continue selectedtools[name] = info toollist.append(name) return selectedtools, toollist loadui: Callable[[], uimod.ui] = uimod.ui.load def copydynamicconfig(srcui: uimod.ui, destui: uimod.ui) -> None: """Copy config values that come from command line or code >>> srcui = uimod.ui() >>> srcui.setconfig(b'paths', b'default', b'http://example.org/', ... b'/repo/.hg/hgrc:2') >>> srcui.setconfig(b'patch', b'eol', b'auto', b'eol') >>> destui = uimod.ui() >>> copydynamicconfig(srcui, destui) >>> destui.config(b'paths', b'default') is None True >>> destui.config(b'patch', b'eol'), destui.configsource(b'patch', b'eol') (b'auto', b'eol') """ for section, name, value in srcui.walkconfig(): source = srcui.configsource(section, name) if b':' in source: # path:line continue if source == b'none': # ui.configsource returns 'none' by default source = b'' destui.setconfig(section, name, value, source) def shortreponame(ui: uimod.ui) -> Optional[bytes]: name = ui.config(b'web', b'name', None) if not name: return src = ui.configsource(b'web', b'name') # path:line if b'/.hg/hgrc:' not in util.pconvert(src): # global web.name will set the same name to all repositories ui.debug(b'ignoring global web.name defined at %s\n' % src) return return name def extractchoices(prompttext: Text) -> Tuple[Text, List[Tuple[Text, Text]]]: """Extract prompt message and list of choice (char, label) pairs This is slightly different from ui.extractchoices() in that a. prompttext may be a unicode b. choice label includes &-accessor >>> extractchoices("awake? $$ &Yes $$ &No") ('awake? ', [('y', '&Yes'), ('n', '&No')]) >>> extractchoices("line\\nbreak? $$ &Yes $$ &No") ('line\\nbreak? ', [('y', '&Yes'), ('n', '&No')]) >>> extractchoices("want lots of $$money$$?$$Ye&s$$N&o") ('want lots of $$money$$?', [('s', 'Ye&s'), ('o', 'N&o')]) """ m = re.match(r'(?s)(.+?)\$\$([^\$]*&[^ \$].*)', prompttext) assert m is not None, 'invalid prompt message' msg = m.group(1) choices = [p.strip(' ') for p in m.group(2).split('$$')] resps = [p[p.index('&') + 1].lower() for p in choices] return msg, pycompat.ziplist(resps, choices) def displaytime(date: Optional[Tuple[float, int]]) -> bytes: return dateutil.datestr(date, b'%Y-%m-%d %H:%M:%S %1%2') def utctime(date: Tuple[float, int]) -> str: return time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(date[0])) agescales = [ ((lambda n: ngettext("%d year", "%d years", n)), 3600 * 24 * 365), ((lambda n: ngettext("%d month", "%d months", n)), 3600 * 24 * 30), ((lambda n: ngettext("%d week", "%d weeks", n)), 3600 * 24 * 7), ((lambda n: ngettext("%d day", "%d days", n)), 3600 * 24), ((lambda n: ngettext("%d hour", "%d hours", n)), 3600), ((lambda n: ngettext("%d minute", "%d minutes", n)), 60), ((lambda n: ngettext("%d second", "%d seconds", n)), 1), ] def age(date: Tuple[int, int]) -> bytes: '''turn a (timestamp, tzoff) tuple into an age string.''' # This is i18n-ed version of mercurial.templatefilters.age(). now = time.time() then = date[0] if then > now: return _('in the future') delta = int(now - then) if delta == 0: return _('now') if delta > agescales[0][1] * 2: return dateutil.shortdate(date) for t, s in agescales: n = delta // s if n >= 2 or s == 1: return t(n) % n assert False, 'unreachable' def exception_str(e: Exception, show_hint: bool = False) -> str: """Convert an exception object to a user consumable string. If ``e`` is a core exception that implements ``mercurial.error.Hint``, the optional hint message can be included by specifying ``show_hint=True``. """ # Most (but not all) core API exceptions have ``__bytes__()`` to stringify # the exception like BaseException, but in bytes instead of unicode. Use # that if available, and convert to unicode explicitly. The ``__str()__`` # method on ``mercurial.error.Error`` calls ``__bytes__()``, but is only # capable of decoding ascii. The other core exceptions generally don't # provide a ``__str()__`` override, which causes the raw bytes to be # displayed (with the b"" prefix). # # Since there are multiple core exceptions that subclass builtin exceptions # (instead of a single base core exception for everything else), assume the # presence of ``__bytes__()`` means it's a core exception. tobytes = getattr(e, "__bytes__", None) if tobytes: tostr = lambda: tounicode(tobytes()) else: tostr = e.__str__ if show_hint and isinstance(e, error.Hint): hint = getattr(e, "hint") if hint: return _gettext('%s (hint: %s)') % (tostr(), tounicode(hint)) return tostr() def configuredusername(ui: uimod.ui) -> Optional[bytes]: # need to check the existence before calling ui.username(); otherwise it # may fall back to the system default. if (not os.environ.get('HGUSER') and not ui.config(b'ui', b'username') and not os.environ.get('EMAIL')): return None try: return ui.username() except error.Abort: return None def username(user: bytes) -> bytes: author = stringutil.person(user) if not author: author = stringutil.shortuser(user) return author def user(ctx) -> bytes: ''' Get the username of the change context. Does not abort and just returns an empty string if ctx is a working context and no username has been set in mercurial's config. ''' try: user = ctx.user() except error.Abort: if ctx._rev is not None: raise # ctx is a working context and probably no username has # been configured in mercurial's config user = b'' return user def getestimatedsize(fctx) -> int: """Return the size of the given fctx without loading the revision text""" FILE_SIZE_UNKNOWN = 2147483647 if fctx.rev() is None: return fctx.size() else: # fctx.size() can read all data into memory in rename cases so # we read the size directly from the filelog, this is deeper # under the API than I prefer to go, but seems necessary try: return fctx._filelog._revlog.rawsize(fctx.filerev()) except AttributeError: # _filelog is not available when using the remotefilelog extension # on a shallow repo return FILE_SIZE_UNKNOWN def get_revision_desc(fctx, curpath: Optional[bytes] = None) -> pycompat.unicode: """return the revision description as a string""" author = tounicode(username(fctx.user())) rev = fctx.rev() # If the source path matches the current path, don't bother including it. if curpath and curpath == fctx.path(): source = u'' else: source = u'(%s)' % tounicode(fctx.path()) date = age(fctx.date()).decode('utf-8') l = tounicode(fctx.description()).splitlines() summary = l and l[0] or '' return u'%s@%s%s:%s "%s"' % (author, rev, source, date, summary) def longsummary(description: Union[bytes, Text], limit: Optional[int] = None) -> Text: summary = tounicode(description) lines = summary.splitlines() if not lines: return '' summary = lines[0].strip() add_ellipsis = False if limit: for raw_line in lines[1:]: if len(summary) >= limit: break line = raw_line.strip().replace('\t', ' ') if line: summary += u' ' + line if len(summary) > limit: add_ellipsis = True summary = summary[0:limit] elif len(lines) > 1: add_ellipsis = True if add_ellipsis: summary += u' \u2026' # ellipsis ... return summary def getDeepestSubrepoContainingFile(wfile: bytes, ctx: context.changectx) -> Tuple[Optional[bytes], bytes, context.changectx]: """ Given a filename and context, get the deepest subrepo that contains the file Also return the corresponding subrepo context and the filename relative to its containing subrepo """ if wfile in ctx: return b'', wfile, ctx # TODO: figure out how to annotate ctx.substate so that pytype sees the # correct type instead of Any. for wsub in ctx.substate: # type: bytes if wfile.startswith(wsub): srev: bytes = ctx.substate[wsub][1] stype: bytes = ctx.substate[wsub][2] if stype != b'hg': continue if not os.path.exists(ctx.repo().wjoin(wsub)): # Maybe the repository does not exist in the working copy? continue try: s = ctx.sub(wsub) assert isinstance(s, subrepo.hgsubrepo) # help pytype sctx: context.changectx = s._repo[srev] except: # The selected revision does not exist in the working copy continue wfileinsub = wfile[len(wsub)+1:] if wfileinsub in sctx.substate or wfileinsub in sctx: return wsub, wfileinsub, sctx else: wsubsub, wfileinsub, sctx = \ getDeepestSubrepoContainingFile(wfileinsub, sctx) if wsubsub is None: return None, wfile, ctx else: return os.path.join(wsub, wsubsub), wfileinsub, sctx return None, wfile, ctx def getLineSeparator(line: Text) -> Text: """Get the line separator used on a given line""" # By default assume the default OS line separator linesep = os.linesep lineseptypes = ['\r\n', '\n', '\r'] for sep in lineseptypes: if line.endswith(sep): linesep = sep break return linesep def parseconfigopts(ui: uimod.ui, args: List[bytes]) -> List[Tuple[bytes, bytes, bytes]]: """Pop the --config options from the command line and apply them >>> u = uimod.ui() >>> args = [b'log', b'--config', b'extensions.mq=!'] >>> parseconfigopts(u, args) [(b'extensions', b'mq', b'!')] >>> args [b'log'] >>> u.config(b'extensions', b'mq') b'!' """ config = dispatchmod._earlyparseopts(ui, args)[b'config'] # drop --config from args args[:] = fancyopts.earlygetopt(args, b'', [b'config='], gnu=True, keepsep=True)[1] return dispatchmod._parseconfig(ui, config) # (unicode, QString) -> unicode, otherwise -> str _stringify = '%s'.__mod__ # ASCII code -> escape sequence (see PyString_Repr()) _escapecharmap = [] _escapecharmap.extend('\\x%02x' % x for x in pycompat.xrange(32)) _escapecharmap.extend(chr(x) for x in pycompat.xrange(32, 127)) _escapecharmap.append('\\x7f') _escapecharmap[0x09] = '\\t' _escapecharmap[0x0a] = '\\n' _escapecharmap[0x0d] = '\\r' _escapecharmap[0x27] = "\\'" _escapecharmap[0x5c] = '\\\\' _escapecharre = re.compile(r'[\x00-\x1f\x7f\'\\]') def _escapecharrepl(m): return _escapecharmap[ord(m.group(0))] def escapeascii(s: Text) -> Text: r"""Escape string to be embedded as a literal; like Python string_escape, but keeps 8bit characters and can process unicode >>> escapeascii("\0 \x0b \x7f \t \n \r ' \\") "\\x00 \\x0b \\x7f \\t \\n \\r \\' \\\\" >>> escapeascii(u'\xc0\n') u'\xc0\\n' """ s = _stringify(s) return _escapecharre.sub(_escapecharrepl, s) def escapepath(path: Text) -> Text: r"""Convert path to command-line-safe string; path must be relative to the repository root >>> escapepath('foo/[bar].txt') 'path:foo/[bar].txt' >>> escapepath(u'\xc0') u'\xc0' """ p = _stringify(path) if '[' in p or '{' in p or '*' in p or '?' in p: # bare path is expanded by scmutil.expandpats() on Windows return 'path:' + p else: return p def escaperev(rev: int, default: Optional[Text] = None) -> Text: """Convert revision number to command-line-safe string""" if rev is None: return default if rev == nullrev: return 'null' assert rev >= 0 return '%d' % rev def _escaperevrange(a, b): if a == b: return escaperev(a) else: return '%s:%s' % (escaperev(a), escaperev(b)) def compactrevs(revs: List[int]) -> Text: """Build command-line-safe revspec from list of revision numbers; revs should be sorted in ascending order to get compact form >>> compactrevs([]) '' >>> compactrevs([0]) '0' >>> compactrevs([0, 1]) '0:1' >>> compactrevs([-1, 0, 1, 3]) 'null:1 + 3' >>> compactrevs([0, 4, 5, 6, 8, 9]) '0 + 4:6 + 8:9' """ if not revs: return '' specs = [] k = m = revs[0] for n in revs[1:]: if m + 1 == n: m = n else: specs.append(_escaperevrange(k, m)) k = m = n specs.append(_escaperevrange(k, m)) return ' + '.join(specs) # subset of revsetlang.formatspec(), but can process unicode def _formatspec(expr, args, lparse, listfuncs): def argtype(c, arg): if c == 'd': return '%d' % int(arg) elif c == 's': return "'%s'" % escapeascii(arg) elif c == 'r': s = _stringify(arg) if isinstance(s, pycompat.unicode): # 8-bit characters aren't important; just avoid encoding error s = s.encode('utf-8') lparse(s) # make sure syntax errors are confined return '(%s)' % arg raise ValueError('invalid format character %c' % c) def listexp(c, arg): l = len(arg) if l == 0: if 's' not in listfuncs: raise ValueError('cannot process empty list') return "%s('')" % listfuncs['s'] elif l == 1: return argtype(c, arg[0]) elif c in listfuncs: f = listfuncs[c] a = '\0'.join(map(_stringify, arg)) # packed argument is escaped so it is command-line safe return "%s('%s')" % (f, escapeascii(a)) m = l // 2 return '(%s or %s)' % (listexp(c, arg[:m]), listexp(c, arg[m:])) expr = _stringify(expr) argiter = iter(args) ret = [] pos = 0 while pos < len(expr): q = expr.find('%', pos) if q < 0: ret.append(expr[pos:]) break ret.append(expr[pos:q]) pos = q + 1 c = expr[pos] if c == '%': ret.append(c) elif c == 'l': pos += 1 d = expr[pos] ret.append(listexp(d, list(next(argiter)))) else: ret.append(argtype(c, next(argiter))) pos += 1 return ''.join(ret) def formatfilespec(expr: Text, *args) -> Text: """Build fileset expression by template and positional arguments Supported arguments: %r = fileset expression, parenthesized %d = int(arg), no quoting %s = string(arg), escaped and single-quoted %% = a literal '%' Prefixing the type with 'l' specifies a parenthesized list of that type, but the list must not be empty. """ listfuncs = {} return _formatspec(expr, args, filesetlang.parse, listfuncs) def formatrevspec(expr: Text, *args) -> Text: r"""Build revset expression by template and positional arguments Supported arguments: %r = revset expression, parenthesized %d = int(arg), no quoting %s = string(arg), escaped and single-quoted %% = a literal '%' Prefixing the type with 'l' specifies a parenthesized list of that type. >>> formatrevspec('%r:: and %lr', u'10 or "\xe9"', ("this()", "that()")) u'(10 or "\xe9"):: and ((this()) or (that()))' >>> formatrevspec('%d:: and not %d::', 10, 20) '10:: and not 20::' >>> formatrevspec('%ld or %ld', [], [1]) "_list('') or 1" >>> formatrevspec('keyword(%s)', u'foo\xe9') u"keyword('foo\xe9')" >>> formatrevspec('root(%ls)', ['a', 'b', 'c', 'd']) "root(_list('a\\x00b\\x00c\\x00d'))" """ listfuncs = {'d': '_intlist', 's': '_list'} return _formatspec(expr, args, revsetlang.parse, listfuncs) def buildcmdargs(name: Text, *args, **opts) -> List[Text]: r"""Build list of command-line arguments >>> buildcmdargs('push', branch='foo') ['push', '--branch=foo'] >>> buildcmdargs('graft', r=['0', '1']) ['graft', '-r0', '-r1'] >>> buildcmdargs('diff', r=[0, None]) ['diff', '-r0'] >>> buildcmdargs('log', no_merges=True, quiet=False, limit=None) ['log', '--no-merges'] >>> buildcmdargs('commit', user='') ['commit', '--user='] >>> buildcmdargs('log', keyword=['', 'foo']) ['log', '--keyword=', '--keyword=foo'] >>> buildcmdargs('log', k='') ['log', '-k', ''] >>> buildcmdargs('log', k=['', 'foo']) ['log', '-k', '', '-kfoo'] positional arguments: >>> buildcmdargs('add', 'foo', 'bar') ['add', 'foo', 'bar'] >>> buildcmdargs('cat', '-foo', rev='0') ['cat', '--rev=0', '--', '-foo'] >>> buildcmdargs('qpush', None) ['qpush'] >>> buildcmdargs('update', '') ['update', ''] >>> buildcmdargs('update', 25) ['update', '25'] type conversion to string: >>> buildcmdargs('email', r=[0, 1]) ['email', '-r0', '-r1'] >>> buildcmdargs('grep', 'foo', rev=2) ['grep', '--rev=2', 'foo'] >>> buildcmdargs('tag', u'\xc0', message=u'\xc1') ['tag', u'--message=\xc1', u'\xc0'] """ fullargs = [_stringify(name)] for k, v in opts.items(): if v is None: continue ashort = (len(k) == 1) if ashort: aname = '-%s' % k apref = aname else: aname = '--%s' % k.replace('_', '-') apref = aname + '=' if isinstance(v, bool): if v: fullargs.append(aname) elif isinstance(v, list): for e in v: if e is None: continue s = _stringify(e) if s or not ashort: fullargs.append(apref + s) else: fullargs.extend([aname, s]) else: s = _stringify(v) if s or not ashort: fullargs.append(apref + s) else: fullargs.extend([aname, s]) args = [_stringify(v) for v in args if v is not None] if any(e.startswith('-') for e in args): fullargs.append('--') fullargs.extend(args) return fullargs _urlpassre = re.compile(r'^([a-zA-Z0-9+.\-]+://[^:@/]*):[^@/]+@') def _reprcmdarg(arg): arg = _urlpassre.sub(r'\1:***@', arg) arg = arg.replace('\n', '^M') # only for display; no use to construct command string for os.system() if not arg or ' ' in arg or '\\' in arg or '"' in arg: return '"%s"' % arg.replace('"', '\\"') else: return arg def prettifycmdline(cmdline: List[Text]) -> Text: r"""Build pretty command-line string for display >>> prettifycmdline(['log', 'foo\\bar', '', 'foo bar', 'foo"bar']) 'log "foo\\bar" "" "foo bar" "foo\\"bar"' >>> prettifycmdline(['log', '--template', '{node}\n']) 'log --template {node}^M' mask password in url-like string: >>> prettifycmdline(['push', 'http://foo123:bar456@example.org/']) 'push http://foo123:***@example.org/' >>> prettifycmdline(['clone', 'svn+http://:bar@example.org:8080/trunk/']) 'clone svn+http://:***@example.org:8080/trunk/' """ return ' '.join(_reprcmdarg(e) for e in cmdline) def parsecmdline(cmdline: Text, cwd: Text) -> List[Text]: r"""Split command line string to imitate a unix shell >>> origfuncs = glob.glob, os.path.expanduser, os.path.expandvars >>> glob.glob = lambda p: [p.replace('*', e) for e in ['foo', 'bar', 'baz']] >>> os.path.expanduser = lambda p: re.sub(r'^~', '/home/foo', p) >>> os.path.expandvars = lambda p: p.replace('$var', 'bar') emulates glob/variable expansion rule for simple cases: >>> parsecmdline('foo * "qux quux" "*" "*"', '.') [u'foo', u'foo', u'bar', u'baz', u'qux quux', u'*', u'*'] >>> parsecmdline('foo /*', '.') [u'foo', u'/foo', u'/bar', u'/baz'] >>> parsecmdline('''foo ~/bar '~/bar' "~/bar"''', '.') [u'foo', u'/home/foo/bar', u'~/bar', u'~/bar'] >>> parsecmdline('''foo $var '$var' "$var"''', '.') [u'foo', u'bar', u'$var', u'bar'] but the following cases are unsupported: >>> parsecmdline('"foo"*"bar"', '.') # '*' should be expanded [u'foo*bar'] >>> parsecmdline(r'\*', '.') # '*' should be a literal [u'foo', u'bar', u'baz'] >>> glob.glob, os.path.expanduser, os.path.expandvars = origfuncs """ _ = _gettext # TODO: use unicode version globally # shlex can't process bytes on Python 3 src = io.StringIO(cmdline) lex = shlex.shlex(src, posix=True) lex.whitespace_split = True lex.commenters = '' args = [] while True: # peek first char of next token to guess its type. this isn't perfect # but can catch common cases. q = cmdline[src.tell():].lstrip(lex.whitespace)[:1] try: e = lex.get_token() except ValueError as err: raise ValueError(_('command parse error: %s') % err) if e == lex.eof: return args assert e is not None # help pytype if q not in lex.quotes or q in lex.escapedquotes: e = os.path.expandvars(e) # $var or "$var" if q not in lex.quotes: e = os.path.expanduser(e) # ~user if q not in lex.quotes and any(c in e for c in '*?[]'): expanded = glob.glob(os.path.join(cwd, e)) if not expanded: raise ValueError(_('no matches found: %s') % e) if os.path.isabs(e): args.extend(expanded) else: args.extend(p[len(cwd) + 1:] for p in expanded) else: args.append(e) def createsnewhead(ctx, branchheads=None): branch = ctx.branch() if branchheads is None: branchheads = set(ctx.repo().branchheads(branch)) return branchheads and not any( p.node() in branchheads and p.branch() == branch for p in ctx.parents() ) def dirstate_changing_files(repo: "localrepo.localrepository"): try: changing_files = repo.dirstate.changing_files except AttributeError: # hg<6.4 (3550e4a88ccd) return util.nullcontextmanager() return changing_files(repo) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726611701.0 tortoisehg-6.9/tortoisehg/util/hgversion.py0000644000000000000000000000451414672400365020052 0ustar00rootroot# hgversion.py - Version information for Mercurial # # Copyright 2009 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import re from typing import ( List, Optional, ) hgversion: Optional[bytes] = None try: try: # post 1.1.2 from mercurial import util hgversion = util.version() except AttributeError: # <= 1.1.2 from mercurial import version # pytype: disable=import-error hgversion = version.get_version() except ImportError: pass testedwith = b'6.3 6.4 6.5 6.6 6.7 6.8' def _splitversion(v: bytes) -> Optional[List[bytes]]: """Extract (major, minor) version components as bytes, or None""" v = v.split(b'+')[0] if not v or v == b'unknown' or len(v) >= 12: # can't make any intelligent decisions about unknown or hashes return vers = re.split(br'\.|-|rc', v)[:2] if len(vers) < 2: return return vers def checkhgversion(v: bytes) -> Optional[bytes]: """range check the Mercurial version""" reqvers = testedwith.split() vers = _splitversion(v) if not vers: return if b'.'.join(vers) in reqvers: return return (b'This version of TortoiseHg requires Mercurial version %s.n to ' b'%s.n, but found %s') % (reqvers[0], reqvers[-1], v) def checkminhgversion(v: bytes) -> Optional[bytes]: """Check if the given Mercurial version is not lower than the minimum supported version >>> checkminhgversion(b'deadbeef1234') >>> checkminhgversion(b'unknown') >>> checkminhgversion(b'nan.nan') >>> checkminhgversion(b'1.0.1') # doctest: +ELLIPSIS b'This version of TortoiseHg requires Mercurial version ...' >>> checkminhgversion(b'100.0') >>> checkminhgversion(testedwith.split()[0]) >>> checkminhgversion(testedwith.split()[-1]) """ reqvers = testedwith.split() vers = _splitversion(v) if not vers: return try: vernums = tuple(map(int, vers)) except ValueError: return if vernums >= tuple(map(int, _splitversion(reqvers[0]))): return return (b'This version of TortoiseHg requires Mercurial version %s or ' b'later, but found %s') % (reqvers[0], v) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/util/i18n.py0000644000000000000000000000633014672254332016624 0ustar00rootroot# i18n.py - TortoiseHg internationalization code # # Copyright 2009 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import gettext import locale import os from typing import ( Dict, List, Optional, ) from mercurial import pycompat from . import paths _localeenvs = ('LANGUAGE', 'LC_ALL', 'LC_MESSAGES', 'LANG') def _defaultlanguage() -> Optional[str]: if os.name != 'nt' or any(e in os.environ for e in _localeenvs): return # honor posix-style env var # On Windows, UI language can be determined by GetUserDefaultUILanguage(), # but gettext doesn't take it into account. # Note that locale.getdefaultlocale() uses GetLocaleInfo(), which may be # different from UI language. # # For details, please read "User Interface Language Management": # http://msdn.microsoft.com/en-us/library/dd374098(v=VS.85).aspx try: from ctypes import windll # pytype: disable=import-error langid = windll.kernel32.GetUserDefaultUILanguage() return locale.windows_locale[langid] except (ImportError, AttributeError, KeyError): pass def setlanguage(lang: Optional[str] = None) -> None: """Change translation catalog to the specified language""" global t, language if not lang: lang = _defaultlanguage() opts = {} if lang: opts['languages'] = (lang,) t = gettext.translation('tortoisehg', paths.get_locale_path(), fallback=True, **opts) if not lang: try: lang = locale.getdefaultlocale(_localeenvs)[0] except ValueError: # 'unknown locale: %s' lang = None language = lang setlanguage() def availablelanguages() -> List[str]: """List up language code of which message catalog is available""" basedir = paths.get_locale_path() def mopath(lang): return os.path.join(basedir, lang, 'LC_MESSAGES', 'tortoisehg.mo') if os.path.exists(basedir): # locale/ is an install option langs = [e for e in os.listdir(basedir) if os.path.exists(mopath(e))] else: langs = [] langs.append('en') # means null translation return sorted(langs) def _(message: str, context: str = '') -> str: if context: sep = '\004' tmsg = t.gettext(context + sep + message) if sep not in tmsg: return tmsg return t.gettext(message) def ngettext(singular: str, plural: str, n: int) -> str: return t.ngettext(singular, plural, n) def agettext(message: str, context: str = '') -> bytes: """Translate message and convert to local encoding such as 'ascii' before being returned. Only use this if you need to output translated messages to command-line interface (ie: Windows Command Prompt). """ try: from tortoisehg.util import hglib u = _(message, context) return hglib.fromunicode(u) except (LookupError, UnicodeEncodeError): return pycompat.sysbytes(message) class keepgettext(object): def _(self, message: str, context: str = '') -> Dict[str, str]: return {'id': message, 'str': _(message, context)} ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730631722.0 tortoisehg-6.9/tortoisehg/util/menuthg.py0000644000000000000000000003123114711654052017507 0ustar00rootroot# menuthg.py - TortoiseHg shell extension menu # # Copyright 2009 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os from mercurial import hg, error from tortoisehg.util.i18n import _ as gettext from tortoisehg.util import cachethg, paths, hglib if hglib.TYPE_CHECKING: from typing import ( Dict, List, Optional, Text, Union, ) from mercurial import ( localrepo, ui as uimod, ) MenuT = List[Union["TortoiseMenu", "TortoiseMenuSep"]] def _(msgid: Text) -> Dict[Text, Text]: return {'id': msgid, 'str': gettext(msgid)} thgcmenu = { 'commit': { 'label': _('Commit...'), 'help': _('Commit changes in repository'), 'icon': 'menucommit.ico'}, 'init': { 'label': _('Create Repository Here'), 'help': _('Create a new repository'), 'icon': 'menucreaterepos.ico'}, 'clone': { 'label': _('Clone...'), 'help': _('Create clone here from source'), 'icon': 'menuclone.ico'}, 'status': { 'label': _('File Status'), 'help': _('Repository status & changes'), 'icon': 'menushowchanged.ico'}, 'add': { 'label': _('Add Files...'), 'help': _('Add files to version control'), 'icon': 'menuadd.ico'}, 'revert': { 'label': _('Revert Files...'), 'help': _('Revert file changes'), 'icon': 'menurevert.ico'}, 'forget': { 'label': _('Forget Files...'), 'help': _('Remove files from version control'), 'icon': 'menurevert.ico'}, 'remove': { 'label': _('Remove Files...'), 'help': _('Remove files from version control'), 'icon': 'menudelete.ico'}, 'rename': { 'label': _('Rename File'), 'help': _('Rename file or directory'), 'icon': 'general.ico'}, 'workbench': { 'label': _('Workbench'), 'help': _('View change history in repository'), 'icon': 'menulog.ico'}, 'log': { 'label': _('File History'), 'help': _('View change history of selected files'), 'icon': 'menulog.ico'}, 'shelve': { 'label': _('Shelve Changes'), 'help': _('Move changes between working dir and patch'), 'icon': 'menucommit.ico'}, 'synch': { 'label': _('Synchronize'), 'help': _('Synchronize with remote repository'), 'icon': 'menusynch.ico'}, 'serve': { 'label': _('Web Server'), 'help': _('Start web server for this repository'), 'icon': 'proxy.ico'}, 'update': { 'label': _('Update...'), 'help': _('Update working directory'), 'icon': 'menucheckout.ico'}, 'thgstatus': { 'label': _('Update Icons'), 'help': _('Update icons for this repository'), 'icon': 'refresh_overlays.ico'}, 'userconf': { 'label': _('Global Settings'), 'help': _('Configure user wide settings'), 'icon': 'settings_user.ico'}, 'repoconf': { 'label': _('Repository Settings'), 'help': _('Configure repository settings'), 'icon': 'settings_repo.ico'}, 'shellconf': { 'label': _('Explorer Extension Settings'), 'help': _('Configure Explorer extension'), 'icon': 'settings_user.ico'}, 'about': { 'label': _('About TortoiseHg'), 'help': _('Show About Dialog'), 'icon': 'menuabout.ico'}, 'vdiff': { 'label': _('Diff to parent'), 'help': _('View changes using GUI diff tool'), 'icon': 'TortoiseMerge.ico'}, 'hgignore': { 'label': _('Edit Ignore Filter'), 'help': _('Edit repository ignore filter'), 'icon': 'ignore.ico'}, 'guess': { 'label': _('Guess Renames'), 'help': _('Detect renames and copies'), 'icon': 'detect_rename.ico'}, 'grep': { 'label': _('Search History'), 'help': _('Search file revisions for patterns'), 'icon': 'menurepobrowse.ico'}, 'dndsynch': { 'label': _('DnD Synchronize'), 'help': _('Synchronize with dragged repository'), 'icon': 'menusynch.ico'}} _ALWAYS_DEMOTE_ = ('about', 'userconf', 'repoconf') class TortoiseMenu(object): def __init__(self, menutext: Text, helptext: Text, hgcmd: Optional[Text], icon: Optional[Text] = None, state: bool = True) -> None: self.menutext = menutext self.helptext = helptext self.hgcmd = hgcmd self.icon = icon self.state = state def isSubmenu(self): return False def isSep(self): return False class TortoiseSubmenu(TortoiseMenu): def __init__(self, menutext: Text, helptext: Text, menus: Optional[MenuT] = None, icon: Optional[Text] = None) -> None: TortoiseMenu.__init__(self, menutext, helptext, None, icon) if menus is None: menus: MenuT = [] self.menus = menus[:] def add_menu(self, menutext: Text, helptext: Text, hgcmd: Optional[Text], icon: Optional[Text] = None, state: bool = True) -> None: self.menus.append(TortoiseMenu(menutext, helptext, hgcmd, icon, state)) def add_sep(self): self.menus.append(TortoiseMenuSep()) def get_menus(self): return self.menus def append(self, entry): self.menus.append(entry) def isSubmenu(self): return True class TortoiseMenuSep(object): hgcmd = '----' def isSubmenu(self): return False def isSep(self): return True class thg_menu(object): menus: List[MenuT] def __init__(self, ui: uimod.ui, promoted: List[Text], name: Text = "TortoiseHg") -> None: self.menus = [[]] self.ui = ui self.name = name self.sep = [False] self.promoted = promoted def add_menu(self, hgcmd: Text, icon: Optional[Text] = None, state: bool = True) -> None: if hgcmd in self.promoted: pos = 0 else: pos = 1 while len(self.menus) <= pos: #add Submenu self.menus.append([]) self.sep.append(False) if self.sep[pos]: self.sep[pos] = False self.menus[pos].append(TortoiseMenuSep()) self.menus[pos].append(TortoiseMenu( thgcmenu[hgcmd]['label']['str'], thgcmenu[hgcmd]['help']['str'], hgcmd, thgcmenu[hgcmd]['icon'], state)) def add_sep(self): self.sep = [True for _s in self.sep] def get(self) -> MenuT: menu = self.menus[0][:] for submenu in self.menus[1:]: menu.append(TortoiseSubmenu(self.name, 'Mercurial', submenu, "hg.ico")) menu.append(TortoiseMenuSep()) return menu def __iter__(self): return iter(self.get()) def open_repo(path: Text) -> Optional[localrepo.localrepository]: root = paths.find_root(path) if root: try: repo = hg.repository(hglib.loadui(), path=hglib.fromunicode(root)) return repo except error.RepoError: pass except Exception as e: print("error while opening repo %s:" % path) print(e) return None class menuThg: """shell extension that adds context menu items""" def __init__(self, internal: bool = False) -> None: self.name = "TortoiseHg" promoted = [] pl = hglib.loadui().config(b'tortoisehg', b'promoteditems', b'commit,log') assert pl is not None for item in pl.split(b','): item = hglib.tounicode(item.strip()) if item: promoted.append(item) if internal: for item in thgcmenu.keys(): promoted.append(item) for item in _ALWAYS_DEMOTE_: if item in promoted: promoted.remove(item) self.promoted = promoted def get_commands_dragdrop(self, srcfiles: List[Text], destfolder: Text) -> Union[List[Text], thg_menu]: """ Get a list of commands valid for the current selection. Commands are instances of TortoiseMenu, TortoiseMenuSep or TortoiseMenu """ # we can only accept dropping one item if len(srcfiles) > 1: return [] # open repo drag_repo = None drop_repo = None drag_path = srcfiles[0] drag_repo = open_repo(drag_path) if not drag_repo: return [] if drag_repo and drag_repo.root != drag_path: return [] # dragged item must be a hg repo root directory drop_repo = open_repo(destfolder) menu = thg_menu(drag_repo.ui, self.promoted, self.name) menu.add_menu('clone') if drop_repo: menu.add_menu('dndsynch') return menu def get_norepo_commands(self, cwd: Text, files: List[Text]) -> thg_menu: menu = thg_menu(hglib.loadui(), self.promoted, self.name) menu.add_menu('clone') menu.add_menu('init') menu.add_menu('userconf') menu.add_sep() menu.add_menu('about') menu.add_sep() return menu def get_commands(self, repo: localrepo.localrepository, cwd: Text, files: List[Text]) -> thg_menu: """ Get a list of commands valid for the current selection. Commands are instances of TortoiseMenu, TortoiseMenuSep or TortoiseMenu """ states = set() onlyfiles = len(files) > 0 hashgignore = False for f in files: if not os.path.isfile(f): onlyfiles = False if f.endswith('.hgignore'): hashgignore = True states.update(cachethg.get_states(f, repo)) if not files: states.update(cachethg.get_states(cwd, repo)) if cachethg.ROOT in states and len(states) == 1: states.add(cachethg.MODIFIED) changed = bool(states & {cachethg.ADDED, cachethg.MODIFIED}) modified = cachethg.MODIFIED in states clean = cachethg.UNCHANGED in states tracked = changed or modified or clean new = bool(states & {cachethg.UNKNOWN, cachethg.IGNORED}) menu = thg_menu(repo.ui, self.promoted, self.name) if changed or cachethg.UNKNOWN in states or b'qtip' in repo[b'.'].tags(): menu.add_menu('commit') if hashgignore or new and len(states) == 1: menu.add_menu('hgignore') if changed or cachethg.UNKNOWN in states: menu.add_menu('status') # Visual Diff (any extdiff command) has_vdiff = repo.ui.config(b'tortoisehg', b'vdiff', b'vdiff') != b'' if has_vdiff and modified: menu.add_menu('vdiff') if len(files) == 0 and cachethg.UNKNOWN in states: menu.add_menu('guess') elif len(files) == 1 and tracked: # needs ico menu.add_menu('rename') if files and new: menu.add_menu('add') if files and tracked: menu.add_menu('remove') if files and changed: menu.add_menu('revert') menu.add_sep() if tracked: menu.add_menu(files and 'log' or 'workbench') if len(files) == 0: menu.add_sep() menu.add_menu('grep') menu.add_sep() menu.add_menu('synch') menu.add_menu('serve') menu.add_sep() menu.add_menu('clone') if repo.root != cwd: menu.add_menu('init') # add common menu items menu.add_sep() menu.add_menu('userconf') if tracked: menu.add_menu('repoconf') menu.add_menu('about') menu.add_sep() return menu ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726611701.0 tortoisehg-6.9/tortoisehg/util/obsoleteutil.py0000644000000000000000000000553414672400365020563 0ustar00rootroot# obsolete related util functions (taken from hgview) # # The functions in this file have been taken from hgview's util.py file # (http://hg.logilab.org/review/hgview/file/default/hgviewlib/util.py) # # Copyright (C) 2009-2012 Logilab. All rights reserved. # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations from mercurial import error def predecessorsmarkers(obsstore, node): return obsstore.predecessors.get(node, ()) def successorsmarkers(obsstore, node): return obsstore.successors.get(node, ()) def first_known_predecessors_rev(repo, rev): if rev is None or not isinstance(rev, int): return obsstore = getattr(repo, 'obsstore', None) if not obsstore: return clog = repo.changelog get_rev = clog.index.get_rev start = clog.node(rev) markers = predecessorsmarkers(obsstore, start) candidates = set(mark[0] for mark in markers) seen = set(candidates) if start in candidates: candidates.remove(start) else: seen.add(start) while candidates: current = candidates.pop() crev = get_rev(current) if crev is not None: try: repo[crev] # filter out filtered revisions yield crev continue except error.RepoLookupError: pass for mark in predecessorsmarkers(obsstore, current): if mark[0] not in seen: candidates.add(mark[0]) seen.add(mark[0]) def first_known_predecessors(ctx): for rev in first_known_predecessors_rev(ctx.repo(), ctx.rev()): yield ctx.repo()[rev] def first_known_successors(ctx): obsstore = getattr(ctx.repo(), 'obsstore', None) startnode = ctx.node() get_rev = ctx.repo().changelog.index.get_rev if obsstore is not None: markers = successorsmarkers(obsstore, startnode) # consider all predecessors candidates = set() for mark in markers: candidates.update(mark[1]) seen = set(candidates) if startnode in candidates: candidates.remove(startnode) else: seen.add(startnode) while candidates: current = candidates.pop() # is this changeset in the displayed set ? crev = get_rev(current) if crev is not None: try: yield ctx.repo()[crev] continue except error.RepoLookupError: # filtered-out changeset pass for mark in successorsmarkers(obsstore, current): for succ in mark[1]: if succ not in seen: candidates.add(succ) seen.add(succ) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726611701.0 tortoisehg-6.9/tortoisehg/util/partialcommit.py0000644000000000000000000000663414672400365020720 0ustar00rootroot# partialcommit.py - commit extension for partial commits (change selection) # # Copyright 2012 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os from mercurial import error, patch, commands, extensions, context, node from mercurial.utils import ( stringutil, ) from tortoisehg.util import ( hglib, hgversion, version, ) testedwith = hgversion.testedwith getversion = version.version_bytes def partialcommit(orig, ui, repo, *pats, **opts): patchfilename = opts.get('partials', None) if patchfilename: # attach a patch.filestore to this repo prior to calling commit() # the wrapped workingfilectx methods will see this filestore and use # the patched file data rather than the working copy data (for only the # files modified by the patch) fp = open(patchfilename, 'rb') store = patch.filestore() try: # patch files in tmp directory patch.patchrepo(ui, repo, repo[b'.'], store, fp, 1, prefix=b'') store.keys = set(list(store.files.keys()) + list(store.data.keys())) repo._filestore = store except patch.PatchError as e: raise error.Abort(stringutil.forcebytestr(e)) finally: fp.close() try: ret = orig(ui, repo, *pats, **opts) if hasattr(repo, '_filestore'): store.close() del repo._filestore with repo.wlock(), hglib.dirstate_changing_files(repo): # mark partially committed files for 'needing lookup' in # the dirstate. The next status call will find them as M for f in store.keys: repo.dirstate.set_possibly_dirty(f) return ret finally: if patchfilename: os.unlink(patchfilename) def wfctx_data(orig, self): 'wrapper function for workingfilectx.data()' if hasattr(self._repo, '_filestore'): store = self._repo._filestore if self._path in store.keys: data, (islink, isexec), copied = store.getfile(self._path) return data return orig(self) def wfctx_flags(orig, self): 'wrapper function for workingfilectx.flags()' if hasattr(self._repo, '_filestore'): store = self._repo._filestore if self._path in store.keys: data, (islink, isexec), copied = store.getfile(self._path) return (islink and b'l' or b'') + (isexec and b'x' or b'') return orig(self) def wfctx_renamed(orig, self): 'wrapper function for workingfilectx.renamed()' if hasattr(self._repo, '_filestore'): store = self._repo._filestore if self._path in store.keys: data, (islink, isexec), copied = store.getfile(self._path) if copied: return copied, node.nullid else: return None return orig(self) def uisetup(ui): extensions.wrapfunction(context.workingfilectx, 'data', wfctx_data) extensions.wrapfunction(context.workingfilectx, 'flags', wfctx_flags) extensions.wrapfunction(context.workingfilectx, 'renamed', wfctx_renamed) entry = extensions.wrapcommand(commands.table, b'commit', partialcommit) entry[1].append((b'', b'partials', b'', b'selected patch chunks (internal use only)')) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/util/patchctx.py0000644000000000000000000002032714672254332017665 0ustar00rootroot# patchctx.py - TortoiseHg patch context class # # Copyright 2011 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os import binascii from mercurial import ( encoding, error, node, patch, phases, util, ) from mercurial.utils import ( dateutil, stringutil, ) from mercurial.util import propertycache from hgext import mq from tortoisehg.util import hglib class patchctx(object): _parseErrorFileName = '*ParseError*' def __init__(self, patchpath, repo, pf=None, rev=None): """ Read patch context from file :param pf: currently ignored The provided handle is used to read the patch and the patchpath contains the name of the patch. The handle is NOT closed. """ self._path = patchpath if rev: assert isinstance(rev, bytes), repr(rev) self._patchname = rev else: self._patchname = os.path.basename(patchpath) self._repo = repo self._rev = rev or b'patch' self._status = [[], [], []] self._fileorder = [] self._user = b'' self._desc = b'' self._branch = b'' self._node = node.nullid self._mtime = None self._fsize = 0 self._parseerror = None self._phase = phases.draft try: self._mtime = os.path.getmtime(patchpath) self._fsize = os.path.getsize(patchpath) ph = mq.patchheader(self._path) self._ph = ph except EnvironmentError: self._date = dateutil.makedate() return try: self._branch = ph.branch or b'' self._node = binascii.unhexlify(ph.nodeid) if self._repo.ui.configbool(b'mq', b'secret'): self._phase = phases.secret except TypeError: pass except AttributeError: # hacks to try to deal with older versions of mq.py self._branch = b'' ph.diffstartline = len(ph.comments) if ph.message: ph.diffstartline += 1 except error.ConfigError: pass self._user = ph.user or b'' self._desc = ph.message and b'\n'.join(ph.message).strip() or b'' date = None if ph.date: try: date = dateutil.parsedate(ph.date) except error.ParseError: pass self._date = date or dateutil.makedate() def invalidate(self): # ensure the patch contents are re-read self._mtime = 0 @propertycache def substate(self): return {} # unapplied patch won't include .hgsubstate # unlike changectx, `k in pctx` and `iter(pctx)` just iterates files # included in the patch file, because it does not know the full manifest. def __contains__(self, key): return key in self._files def __iter__(self): return iter(sorted(self._files)) def __bytes__(self): return node.short(self.node()) __str__ = encoding.strmethod(__bytes__) def node(self): return self._node def files(self): return list(self._files.keys()) def rev(self): return self._rev def hex(self): return node.hex(self.node()) def user(self): return self._user def date(self): return self._date def description(self): return self._desc def branch(self): return self._branch def parents(self): return () def repo(self): return self._repo def tags(self): return () def bookmarks(self): return () def children(self): return () def extra(self): return {} def p1(self): return None def p2(self): return None def obsolete(self): return False def extinct(self): return False def unstable(self): return False def bumped(self): return False def divergent(self): return False def troubled(self): return False def instabilities(self): return [] def flags(self, wfile): if wfile == self._parseErrorFileName: return b'' if wfile in self._files: for gp in patch.readgitpatch(self._files[wfile][0].header): if gp.mode: islink, isexec = gp.mode if islink: return b'l' elif wfile in self._status[1]: # Do not report exec mode change if file is added return b'' elif isexec: return b'x' else: # techincally, this case could mean the file has had its # exec bit cleared OR its symlink state removed # TODO: change readgitpatch() to differentiate return b'-' return b'' # TortoiseHg methods def thgtags(self): return [] def thgmqappliedpatch(self): return False def thgmqpatchname(self): return self._patchname def thgmqunappliedpatch(self): return True # largefiles/kbfiles methods def hasStandin(self, file): return False def isStandin(self, path): return False def longsummary(self): if self._repo.ui.configbool(b'tortoisehg', b'longsummary'): limit = 80 else: limit = None return hglib.longsummary(self.description(), limit) def changesToParent(self, whichparent): 'called by filelistmodel to get list of files' if whichparent == 0 and self._files: return self._status else: return [], [], [] def thgmqoriginalparent(self): '''The revision id of the original patch parent''' if not util.safehasattr(self, '_ph'): return '' return self._ph.parent def thgmqpatchdata(self, wfile): 'called by fileview to get diff data' if wfile == self._parseErrorFileName: return (b'\n\n\nErrors while parsing patch:\n' + stringutil.forcebytestr(self._parseerror)) if wfile in self._files: buf = util.bytesio() for chunk in self._files[wfile]: chunk.write(buf) return buf.getvalue() return b'' def phase(self): return self._phase def phasestr(self): return phases.phasenames[self.phase()] def hidden(self): return False @propertycache def _files(self): if not hasattr(self, '_ph') or not self._ph.haspatch: return {} M, A, R = 0, 1, 2 def get_path(a, b): type = (a == b'/dev/null') and A or M type = (b == b'/dev/null') and R or type rawpath = (b != b'/dev/null') and b or a if not (rawpath.startswith(b'a/') or rawpath.startswith(b'b/')): return type, rawpath return type, rawpath.split(b'/', 1)[-1] files = {} pf = open(self._path, 'rb') try: # consume comments and headers for i in range(self._ph.diffstartline): pf.readline() for chunk in patch.parsepatch(pf): if not isinstance(chunk, patch.header): continue top = patch.parsefilename(chunk.header[-2]) bot = patch.parsefilename(chunk.header[-1]) type, path = get_path(top, bot) if path not in chunk.files(): type, path = 0, chunk.files()[-1] if path not in files: self._status[type].append(path) files[path] = [chunk] self._fileorder.append(path) files[path].extend(chunk.hunks) except (patch.PatchError, AttributeError) as e: self._status[2].append(self._parseErrorFileName) files[self._parseErrorFileName] = [] self._parseerror = e if 'THGDEBUG' in os.environ: print(hglib.exception_str(e)) finally: pf.close() return files ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730631722.0 tortoisehg-6.9/tortoisehg/util/paths.py0000644000000000000000000001414014711654052017157 0ustar00rootroot# paths.py - TortoiseHg path utilities # # Copyright 2009 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os import shlex import sys import mercurial from mercurial import ( encoding, pycompat, ) try: # TODO: These are generated a str on non Windows platforms, but can be # filesystem encoded on Windows. from .config import ( # pytype: disable=import-error bin_path, icon_path, license_path, locale_path, ) except ImportError: icon_path, bin_path, license_path, locale_path = None, None, None, None _hg_command = None if pycompat.TYPE_CHECKING: from typing import ( List, Optional, overload, Text, ) @overload def _find_root(p: Text, dn: Text) -> Optional[Text]: pass @overload def _find_root(p: bytes, dn: bytes) -> Optional[bytes]: pass def _find_root(p, dn): while not os.path.isdir(os.path.join(p, dn)): oldp = p p = os.path.dirname(p) if p == oldp: return None if not os.access(p, os.R_OK): return None return p def find_root(path: Optional[Text] = None) -> Optional[Text]: return _find_root(path or os.getcwd(), '.hg') def find_root_bytes(path: Optional[bytes] = None) -> Optional[bytes]: return _find_root(path or encoding.getcwd(), b'.hg') def get_tortoise_icon(icon: Text) -> Optional[Text]: "Find a tortoisehg icon" icopath = os.path.join(get_icon_path(), icon) if os.path.isfile(icopath): return icopath else: print('icon not found', icon) return None def get_icon_path() -> Text: global icon_path return icon_path or os.path.join(get_prog_root(), 'icons') def get_license_path() -> Text: global license_path return license_path or os.path.join(get_prog_root(), 'COPYING.txt') def get_locale_path() -> Text: global locale_path return locale_path or os.path.join(get_prog_root(), 'locale') def _get_hg_path() -> Text: return os.path.abspath(os.path.join(mercurial.__file__, '..', '..')) def get_hg_command() -> List[Text]: """List of command to execute hg (equivalent to mercurial.util.hgcmd)""" global _hg_command if _hg_command is None: if 'HG' in os.environ: try: _hg_command = shlex.split(os.environ['HG'], posix=(os.name != 'nt')) except ValueError: _hg_command = [os.environ['HG']] else: _hg_command = _find_hg_command() return _hg_command if os.name == 'nt': import win32file # pytype: disable=import-error def find_in_path(pgmname: Text) -> Optional[Text]: "return first executable found in search path" global bin_path ospath = os.environ['PATH'].split(os.pathsep) ospath.insert(0, bin_path or get_prog_root()) pathext = os.environ.get('PATHEXT', '.COM;.EXE;.BAT;.CMD') pathext = pathext.lower().split(os.pathsep) for path in ospath: ppath = os.path.join(path, pgmname) for ext in pathext: if os.path.exists(ppath + ext): return ppath + ext return None def _find_hg_command() -> List[Text]: if hasattr(sys, 'frozen'): progdir = get_prog_root() exe = os.path.join(progdir, 'hg.exe') if os.path.exists(exe): return [exe] # look for in-place build, i.e. "make local" exe = os.path.join(_get_hg_path(), 'hg.exe') if os.path.exists(exe): return [exe] exe = find_in_path('hg') if not exe: return ['hg.exe'] if exe.endswith('.bat'): # assumes Python script exists in the same directory. .bat file # has problems like "Terminate Batch job?" prompt on Ctrl-C. if hasattr(sys, 'frozen'): python = find_in_path('python') or 'python' else: python = sys.executable return [python, exe[:-4]] return [exe] def get_prog_root() -> Text: if getattr(sys, 'frozen', False): return os.path.dirname(sys.executable) return os.path.dirname(os.path.dirname(os.path.dirname(__file__))) def get_thg_command() -> List[Text]: if getattr(sys, 'frozen', False): return [sys.executable] return [sys.executable] + sys.argv[:1] def is_unc_path(path: bytes) -> bool: unc, rest = os.path.splitdrive(path) return len(unc) > 2 def is_on_fixed_drive(path: bytes) -> bool: if is_unc_path(path): # All UNC paths (\\host\mount) are considered not-fixed return False drive, remain = os.path.splitdrive(path) if drive: drive = pycompat.fsdecode(drive) return win32file.GetDriveType(drive) == win32file.DRIVE_FIXED else: return False else: # Not Windows def find_in_path(pgmname: Text) -> Optional[Text]: """ return first executable found in search path """ global bin_path ospath = os.environ['PATH'].split(os.pathsep) ospath.insert(0, bin_path or get_prog_root()) for path in ospath: ppath = os.path.join(path, pgmname) if os.access(ppath, os.X_OK): return ppath return None def _find_hg_command() -> List[Text]: # look for in-place build, i.e. "make local" exe = os.path.join(_get_hg_path(), 'hg') if os.path.exists(exe): return [exe] exe = find_in_path('hg') if not exe: return ['hg'] return [exe] def get_prog_root() -> Text: path = os.path.dirname(os.path.dirname(os.path.dirname(__file__))) return path def get_thg_command() -> List[Text]: return sys.argv[:1] def is_unc_path(path: bytes) -> bool: return False def is_on_fixed_drive(path: bytes) -> bool: return True ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726611701.0 tortoisehg-6.9/tortoisehg/util/pipeui.py0000644000000000000000000001744114672400365017344 0ustar00rootroot# pipeui.py - append parsable label to output, prompt and progress # # Copyright 2014 Yuya Nishihara # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. """append parsable label to output, prompt and progress This extension is intended to be used with the command server, so the packed message provides no reliable length field. Message structure:: without label: |msg...| with label: |'\1'|label...|'\n'|msg...| progress: |'\1'|'ui.progress'|'\n'|topic|'\0'|pos|'\0'|item|'\0'|unit|'\0'|total| prompt: |'\1'|'ui.prompt'|'\n'|msg|'\0'|default| Labels: ui.getpass (with ui.prompt) denotes message for password prompt ui.progress contains packed progress data (not for display) ui.promptchoice (with ui.prompt) denotes message and choices for prompt """ from __future__ import annotations import time from mercurial import ( error, scmutil, ) from tortoisehg.util import ( hgversion, version, ) from tortoisehg.util.i18n import agettext as _ testedwith = hgversion.testedwith getversion = version.version_bytes class _labeledstr(bytes): r""" >>> a = _labeledstr(b'foo', b'ui.warning') >>> a.packed() b'\x01ui.warning\nfoo' >>> _labeledstr(a, b'ui.error').packed() b'\x01ui.warning ui.error\nfoo' >>> _labeledstr(b'foo', b'').packed() b'foo' >>> _labeledstr(b'\1foo', b'').packed() b'\x01\n\x01foo' >>> _labeledstr(a, b'') is a # fast path True """ def __new__(cls, s, l): if isinstance(s, cls): if not l: return s if s._label: l = s._label + b' ' + l t = bytes.__new__(cls, s) t._label = l return t def packed(self): if not self._label and not self.startswith(b'\1'): return bytes(self) return b'\1%s\n%s' % (self._label, self) def _packmsgs(msgs, label): r""" >>> _packmsgs([b'foo'], b'') [b'foo'] >>> _packmsgs([b'foo ', b'bar'], b'') [b'foo bar'] >>> _packmsgs([b'foo ', b'bar'], b'ui.status') [b'\x01ui.status\nfoo bar'] >>> _packmsgs([b'foo ', _labeledstr(b'bar', b'log.branch')], b'') [b'foo ', b'\x01log.branch\nbar'] """ if not any(isinstance(e, _labeledstr) for e in msgs): # pack into single message to avoid overhead of label header and # channel protocol; also it's convenient for command-server client # to receive the whole message at once. if len(msgs) > 1: msgs = [b''.join(msgs)] if not label: # fast path return msgs return [_labeledstr(e, label).packed() for e in msgs] def splitmsgs(data): r"""Split data to list of packed messages assuming that original messages contain no '\1' character >>> splitmsgs(b'') [] >>> splitmsgs(b'\x01ui.warning\nfoo\x01\nbar') [b'\x01ui.warning\nfoo', b'\x01\nbar'] >>> splitmsgs(b'foo\x01ui.warning\nbar') [b'foo', b'\x01ui.warning\nbar'] """ msgs = data.split(b'\1') if msgs[0]: return msgs[:1] + [b'\1' + e for e in msgs[1:]] else: return [b'\1' + e for e in msgs[1:]] def unpackmsg(data): r"""Try to unpack data to original message and label >>> unpackmsg(b'foo') (b'foo', b'') >>> unpackmsg(b'\x01ui.warning\nfoo') (b'foo', b'ui.warning') >>> unpackmsg(b'\x01ui.warning') # immature end (b'', b'ui.warning') """ if not data.startswith(b'\1'): return data, b'' try: label, msg = data[1:].split(b'\n', 1) return msg, label except ValueError: return b'', data[1:] def _packprompt(msg, default): r""" >>> _packprompt(b'foo', None) b'foo\x00' >>> _packprompt(_labeledstr(b'$$ &Yes', b'ui.promptchoice'), b'y').packed() b'\x01ui.promptchoice\n$$ &Yes\x00y' """ s = b'\0'.join((msg, default or b'')) if not isinstance(msg, _labeledstr): return s return _labeledstr(s, msg._label) def unpackprompt(msg): """Try to unpack prompt message to original message and default value""" args = msg.split(b'\0', 1) if len(args) == 1: return msg, b'' else: return args def _fromint(n): if n is None: return b'' return b'%d' % n def _toint(s): if not s: return None return int(s) def _packprogress(topic, pos, item, unit, total): r""" >>> _packprogress(b'updating', 1, b'foo', b'files', 5) b'updating\x001\x00foo\x00files\x005' >>> _packprogress(b'updating', None, b'', b'', None) b'updating\x00\x00\x00\x00' """ return b'\0'.join((topic, _fromint(pos), item, unit, _fromint(total))) def unpackprogress(msg): r"""Try to unpack progress message to tuple of parameters >>> unpackprogress(b'updating\x001\x00foo\x00files\x005') (b'updating', 1, b'foo', b'files', 5) >>> unpackprogress(b'updating\x00\x00\x00\x00') (b'updating', None, b'', b'', None) >>> unpackprogress(b'updating\x001\x00foo\x00files') # immature end (b'updating', None, b'', b'', None) >>> unpackprogress(b'') # no separator (b'', None, b'', b'', None) >>> unpackprogress(b'updating\x00a\x00foo\x00files\x005') # invalid pos (b'updating', None, b'', b'', None) """ try: topic, pos, item, unit, total = msg.split(b'\0') return topic, _toint(pos), item, unit, _toint(total) except ValueError: # fall back to termination topic = msg.split(b'\0', 1)[0] return topic, None, b'', b'', None _progressrefresh = 0.1 # [sec] def _extenduiclass(parcls): class pipeui(parcls): _lastprogresstopic = None _lastprogresstime = 0 def _writenobuf(self, dest, *args, **opts): label = opts.get('label', b'') super(pipeui, self)._writenobuf(dest, *_packmsgs(args, label), **opts) def prompt(self, msg, default=b'y'): fullmsg = _packprompt(msg, default) return super(pipeui, self).prompt(fullmsg, default) # write raw prompt value with choices def promptchoice(self, prompt, default=0): _msg, choices = self.extractchoices(prompt) resps = [r for r, _t in choices] prompt = self.label(prompt, b'ui.promptchoice') r = self.prompt(prompt, resps[default]) try: return resps.index(r.lower()) except ValueError: raise error.Abort(_('unrecognized response: %s') % r) def getpass(self, prompt=None, default=None): prompt = self.label(prompt or _('password: '), b'ui.getpass') return super(pipeui, self).getpass(prompt, default) # TODO: progress handler can be extracted to new class, and pass its # instance to scmutil.progress() per makeprogress() call. def progress(self, topic, pos, item=b'', unit=b'', total=None): now = time.time() if (topic == self._lastprogresstopic and pos is not None and now - self._lastprogresstime < _progressrefresh): # skip busy increment of the same topic return if pos is None: # the topic is about to be closed self._lastprogresstopic = None else: self._lastprogresstopic = topic self._lastprogresstime = now msg = _packprogress(topic, pos, item, unit, total) self.write_err(msg, label=b'ui.progress') def makeprogress(self, topic, unit=b'', total=None): return scmutil.progress(self, self.progress, topic, unit, total) def label(self, msg, label): return _labeledstr(msg, label) return pipeui def uisetup(ui): ui.__class__ = _extenduiclass(ui.__class__) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730631722.0 tortoisehg-6.9/tortoisehg/util/shlib.py0000644000000000000000000001300414711654052017137 0ustar00rootroot# shlib.py - TortoiseHg shell utilities # # Copyright 2007 TK Soh # Copyright 2008 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os import time from hgext.largefiles import ( lfutil, ) from mercurial import ( hg, pycompat, ) from . import ( hglib, ) if pycompat.TYPE_CHECKING: from typing import ( Dict, List, ) if os.name == 'nt': def shell_notify(paths: List[bytes], noassoc: bool = False) -> None: try: from win32com.shell import ( # pytype: disable=import-error shell, shellcon ) import pywintypes # pytype: disable=import-error except ImportError: return dirs = set() for path in paths: if path is None: continue abspath = os.path.abspath(path) if not os.path.isdir(abspath): abspath = os.path.dirname(abspath) dirs.add(abspath) # send notifications to deepest directories first for dir in sorted(dirs, key=len, reverse=True): try: pidl, ignore = shell.SHILCreateFromPath( hglib.tounicode(dir), 0) except pywintypes.com_error: return if pidl is None: continue shell.SHChangeNotify(shellcon.SHCNE_UPDATEITEM, shellcon.SHCNF_IDLIST | shellcon.SHCNF_FLUSH, pidl, None) if not noassoc: shell.SHChangeNotify(shellcon.SHCNE_ASSOCCHANGED, shellcon.SHCNF_FLUSH, None, None) def update_thgstatus(ui, root, wait=False): '''Rewrite the file .hg/thgstatus Caches the information provided by repo.status() in the file .hg/thgstatus, which can then be read by the overlay shell extension to display overlay icons for directories. The file .hg/thgstatus contains one line for each directory that has removed, modified or added files (in that order of preference). Each line consists of one char for the status of the directory (r, m or a), followed by the relative path of the directory in the repo. If the file .hg/thgstatus is empty, then the repo's working directory is clean. Specify wait=True to wait until the system clock ticks to the next second before accessing Mercurial's dirstate. This is useful when Mercurial's .hg/dirstate contains unset entries (in output of "hg debugstate"). unset entries happen if .hg/dirstate was updated within the same second as Mercurial updated the respective file in the working tree. This happens with a high probability for example when cloning a repo. The overlay shell extension will display unset dirstate entries as (potentially false) modified. Specifying wait=True ensures that there are no unset entries left in .hg/dirstate when this function exits. ''' if wait: tref = time.time() tdelta = float(int(tref)) + 1.0 - tref if tdelta > 0.0: time.sleep(tdelta) repo = hg.repository(ui, root) # a fresh repo object is needed with lfutil.lfstatus(repo): repostate = repo.status() # will update dirstate as a side effect dirstatus: Dict[bytes, bytes] = {} def dirname(f: bytes) -> bytes: return b'/'.join(f.split(b'/')[:-1]) for fn in repostate.added: dirstatus[dirname(fn)] = b'a' for fn in repostate.modified: dirstatus[dirname(fn)] = b'm' for fn in repostate.removed + repostate.deleted: dirstatus[dirname(fn)] = b'r' update = False try: with repo.vfs(b'thgstatus', b'rb') as f: for dn in sorted(dirstatus): s = dirstatus[dn] e: bytes = f.readline() if e.startswith(b'@@noicons'): break if e == b'' or e[0:1] != s or e[1:-1] != dn: update = True break if f.readline() != b'': # extra line in f, needs update update = True except IOError: update = True if update: with repo.vfs(b'thgstatus', b'wb', atomictemp=True) as f: for dn in sorted(dirstatus): s = dirstatus[dn] f.write(s + dn + b'\n') ui.note(b"%s %s\n" % (s, dn)) return update else: def shell_notify(paths: List[bytes], noassoc: bool = False) -> None: if not paths: return notify = os.environ.get('THG_NOTIFY', '.tortoisehg/notify') if not os.path.isabs(notify): notify = os.path.join(os.path.expanduser('~'), notify) os.environ['THG_NOTIFY'] = notify if not os.path.isfile(notify): return try: f_notify = open(notify, 'wb') except IOError: return try: abspaths = [os.path.abspath(path) for path in paths if path] f_notify.write(b'\n'.join(abspaths)) finally: f_notify.close() def update_thgstatus(*args, **kws): pass ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730631722.0 tortoisehg-6.9/tortoisehg/util/terminal.py0000644000000000000000000001017614711654052017660 0ustar00rootrootfrom __future__ import annotations import os, sys from mercurial import util from mercurial.utils import procutil from tortoisehg.util import hglib if hglib.TYPE_CHECKING: from typing import ( List, Optional, Tuple, ) from mercurial import ( ui as uimod, ) def defaultshell() -> Optional[bytes]: if sys.platform == 'darwin': shell = None # Terminal.App does not support open-to-folder elif os.name == 'nt': shell = b'cmd.exe /K title %(reponame)s' else: shell = b'xterm -T "%(reponame)s"' return shell _defaultshell = defaultshell() def _getplatformexecutablekey() -> bytes: if sys.platform == 'darwin': key = b'executable-osx' elif os.name == 'nt': key = b'executable-win' else: key = b'executable-unix' return key _platformexecutablekey = _getplatformexecutablekey() def _toolstr(ui: uimod.ui, tool: bytes, part: bytes, default: bytes = b"") -> bytes: val = ui.config(b"terminal-tools", tool + b"." + part, default) assert val is not None # help pytype return val toolcache = {} def _findtool(ui: uimod.ui, tool: bytes) -> Optional[bytes]: global toolcache if tool in toolcache: return toolcache[tool] for kn in (b"regkey", b"regkeyalt"): k = _toolstr(ui, tool, kn) if not k: continue p = util.lookupreg(k, _toolstr(ui, tool, b"regname")) if p: p = procutil.findexe(p + _toolstr(ui, tool, b"regappend")) if p: toolcache[tool] = p return p global _platformexecutablekey exe = _toolstr(ui, tool, _platformexecutablekey) if not exe: exe = _toolstr(ui, tool, b'executable', tool) path = procutil.findexe(util.expandpath(exe)) if path: toolcache[tool] = path return path elif tool != exe: path = procutil.findexe(tool) toolcache[tool] = path return path toolcache[tool] = None return None def _findterminal(ui: uimod.ui) -> Tuple[Optional[bytes], Optional[bytes]]: '''returns tuple of terminal name and terminal path. tools matched by pattern are returned as (name, toolpath) tools detected by search are returned as (name, toolpath) tortoisehg.shell is returned as (None, tortoisehg.shell) So first return value is an [terminal-tool] name or None and second return value is a toolpath or user configured command line ''' # first check for tool specified in terminal-tools tools = {} for k, v in ui.configitems(b"terminal-tools"): t = k.split(b'.')[0] if t not in tools: try: priority = int(_toolstr(ui, t, b"priority", b"0")) except ValueError as e: priority = -100 tools[t] = priority names = list(tools.keys()) tools = sorted([(-p, t) for t, p in tools.items()]) terminal = ui.config(b'tortoisehg', b'shell') if terminal: if terminal not in names: # if tortoisehg.terminal does not match an terminal-tools entry, take # the value directly return None, terminal # else select this terminal as highest priority (may still use another if # it is not found on this machine) tools.insert(0, (0, terminal)) for p, t in tools: toolpath = _findtool(ui, t) if toolpath: return t, procutil.shellquote(toolpath) # fallback to the default shell global _defaultshell return None, _defaultshell def detectterminal(ui_: uimod.ui) -> Tuple[Optional[bytes], Optional[bytes]]: 'returns tuple of terminal tool path and arguments' if ui_ is None: ui_ = hglib.loadui() name, pathorconfig = _findterminal(ui_) if name is None: return pathorconfig, None else: args = _toolstr(ui_, name, b"args") return pathorconfig, args def findterminals(ui: uimod.ui) -> List[bytes]: seen = set() for key, value in ui.configitems(b'terminal-tools'): t = key.split(b'.')[0] seen.add(t) return [t for t in seen if _findtool(ui, t)] ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726611701.0 tortoisehg-6.9/tortoisehg/util/thgstatus.py0000644000000000000000000000324714672400365020076 0ustar00rootroot# thgstatus.py - update TortoiseHg status cache # # Copyright 2009 Adrian Buehlmann # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. '''update TortoiseHg status cache''' from __future__ import annotations from mercurial import hg from tortoisehg.util import hglib, paths, shlib import os def cachefilepath(repo): return repo.vfs.join(b"thgstatus") def run(_ui, *pats, **opts): if opts.get('all'): roots = set() base: bytes = hglib.getcwdb() for f in os.listdir(base): r = paths.find_root_bytes(os.path.join(base, f)) if r is not None: roots.add(r) for r in roots: _ui.note(b"%s\n" % r) shlib.update_thgstatus(_ui, r, wait=False) shlib.shell_notify([r]) return root = paths.find_root_bytes() if opts.get('repository'): root = opts.get('repository') if root is None: _ui.status(b"no repository\n") return repo = hg.repository(_ui, root) if opts.get('remove'): try: os.remove(cachefilepath(repo)) except OSError: pass return if opts.get('show'): try: with open(cachefilepath(repo), 'rb') as f: for e in f: _ui.status(b"%s %s\n" % (e[0:1], e[1:-1])) except IOError: _ui.status(b"*no status*\n") return wait = opts.get('delay') is not None shlib.update_thgstatus(_ui, root, wait=wait) if opts.get('notify'): shlib.shell_notify(opts.get('notify')) _ui.note(b"thgstatus updated\n") ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726611701.0 tortoisehg-6.9/tortoisehg/util/thread2.py0000644000000000000000000000300514672400365017371 0ustar00rootroot# Interuptible threads # # http://sebulba.wikispaces.com/recipe+thread2 # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import threading import inspect import ctypes def _async_raise(tid, exctype): """raises the exception, performs cleanup if needed""" if not inspect.isclass(exctype): raise TypeError("Only types can be raised (not instances)") res = ctypes.pythonapi.PyThreadState_SetAsyncExc(ctypes.c_long(tid), ctypes.py_object(exctype)) if res == 0: raise ValueError("invalid thread id") elif res != 1: # """if it returns a number greater than one, you're in trouble, # and you should call it again with exc=NULL to revert the effect""" ctypes.pythonapi.PyThreadState_SetAsyncExc(tid, 0) raise SystemError("PyThreadState_SetAsyncExc failed") class Thread(threading.Thread): def _get_my_tid(self): """determines this (self's) thread id""" if not self.is_alive(): raise threading.ThreadError("the thread is not active") return self.ident def raise_exc(self, exctype): """raises the given exception type in the context of this thread""" _async_raise(self._get_my_tid(), exctype) def terminate(self): """raises SystemExit in the context of the given thread, which should cause the thread to exit silently (unless caught)""" self.raise_exc(SystemExit) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/util/typelib.py0000644000000000000000000000314114672254332017512 0ustar00rootroot# typelib.py - A collection of type hint helpers # # Copyright 2020 Matt Harbison # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations from mercurial import ( pycompat, ) if pycompat.TYPE_CHECKING: from typing import ( Dict, List, Optional, Tuple, TypeVar, Union, ) from mercurial import ( config as config_mod, context, ) from . import ( patchctx, wconfig, ) from ..hgqt.qtcore import ( Qt, ) # Tuple of the executable path (if found), list of `.diffargs` and # list of `.diff3args` for a diff tool. DiffTool = Tuple[Optional[bytes], List[bytes], List[bytes]] # Map of diff tool name to its configuration DiffTools = Dict[bytes, DiffTool] # The contexts returned from ``scmutil.revsymbol()`` and friends, or the # corresponding typed methods in ``hglib``. The actual type will be a # dynamic subclass, as defined in ``thgrepo``. HgContext = Union[context.changectx, context.workingctx] IniConfig = TypeVar('IniConfig', wconfig._wconfig, config_mod.config) try: Qt_ItemFlags = Qt.ItemFlag except ImportError: Qt_ItemFlags = Qt.ItemFlags # The contexts returned from ``localrepository.__getitem()__``, including # regular ``HgContext``, as well as ``patchctx.patchctx`` for MQ related # objects. ThgContext = Union[context.changectx, context.workingctx, patchctx.patchctx] ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1726568666.0 tortoisehg-6.9/tortoisehg/util/version.py0000644000000000000000000001051214672254332017527 0ustar00rootroot# version.py - TortoiseHg version # # Copyright 2009 Steve Borho # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os from mercurial import ( commands, encoding, error, hg, pycompat, ui as uimod, util, ) from typing import ( List, Text, Tuple, ) @util.cachefunc def liveversion() -> Tuple[Text, Text]: 'Attempt to read the version from the live repository' utilpath = os.path.dirname(os.path.realpath(__file__)) thgpath = os.path.dirname(os.path.dirname(utilpath)) if not os.path.isdir(os.path.join(thgpath, '.hg')): raise error.RepoError( b'repository %s not found' % encoding.unitolocal(thgpath) ) u = uimod.ui() # disable color since qtlib inserts color styles and breaks # mercurial.color._render_effects() u.setconfig(b'ui', b'color', b'never') # prevent loading additional extensions for k, _v in u.configitems(b'extensions'): u.setconfig(b'extensions', k, b'!') with u.configoverride( {(b'experimental', b'evolution.createmarkers'): True}, b'thg_version' ): repo = hg.repository(u, path=pycompat.fsencode(thgpath)) u.pushbuffer() commands.identify(u, repo, id=True, tags=True, rev=b'.') l = pycompat.sysstr(u.popbuffer()).split() while len(l) > 1 and l[-1][0].isalpha(): # remove non-numbered tags l.pop() if len(l) > 1: # tag found version = l[-1] if l[0].endswith('+'): # propagate the dirty status to the tag version += '+' elif len(l) == 1: # no tag found u.pushbuffer() commands.parents(u, repo, template=b'{latesttag}+{latesttagdistance}-') version = pycompat.sysstr(u.popbuffer()).rpartition(':')[2] + l[0] return pycompat.sysstr(repo[None].branch()), version def version() -> Text: try: branch, version = liveversion() return version except: pass try: from . import __version__ # pytype: disable=import-error return __version__.version except ImportError: return 'unknown' def version_bytes() -> bytes: return encoding.strtolocal(version()) def package_version() -> Text: try: branch, version = liveversion() return _build_package_version(branch, version) except: pass try: from . import __version__ # pytype: disable=import-error return _build_package_version('stable', __version__.version) except ImportError: return 'unknown' def _build_package_version(branch: Text, version: Text) -> Text: """ >>> _build_package_version('default', '4.8+10') '4.8.5010' >>> _build_package_version('stable', '4.8.2+5') '4.8.21005' >>> _build_package_version('stable', '4.8') '4.8.0' >>> _build_package_version('stable', '4.8.3') '4.8.3' >>> _build_package_version('stable', '4.8rc1') '4.7.61000' >>> _build_package_version('stable', '4.8rc1+2') '4.7.61002' >>> _build_package_version('stable', '5.0rc0') '4.9.60000' >>> _build_package_version('stable', '5.0.2+1') '5.0.21001' >>> _build_package_version('stable', '1.0rc0') '0.9.60000' >>> _build_package_version('stable', '0.1rc0') '0.0.60000' """ extra = rc = None if '+' in version: version, extra = version.split('+', 1) if 'rc' in version: version, rc = version.split('rc', 1) if extra is None: extra = '0' # rc should be a development release v = [int(x) for x in version.split('.')] if rc: v = _decrement_version(v) while len(v) < 3: v.append(0) major, minor, periodic = v if extra is not None: tagdistance = int(extra.split('-', 1)[0]) periodic *= 10000 if rc: periodic += tagdistance + int(rc) * 1000 + 60000 elif branch == 'default': periodic += tagdistance + 5000 else: periodic += tagdistance + 1000 return '.'.join([str(x) for x in (major, minor, periodic)]) def _decrement_version(v: List[int]) -> List[int]: if not v: return v v = v[:] p = len(v) - 1 v[p] -= 1 while p > 0 and v[p] < 0: v[p] = 9 v[p - 1] -= 1 p -= 1 return v ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730631722.0 tortoisehg-6.9/tortoisehg/util/wconfig.py0000644000000000000000000002474414711654052017507 0ustar00rootroot# wconfig.py - Writable config object wrapper # # Copyright 2010 Yuya Nishihara # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import annotations import os import re from typing import ( Any, Dict, Iterator, ) from mercurial import ( config as config_mod, encoding, error, pycompat, util, ) from tortoisehg.util import hglib if hglib.TYPE_CHECKING: from typing import ( Optional, Union, ) import configparser try: from iniparse import INIConfig # pytype: disable=import-error _hasiniparse = True except ImportError: _hasiniparse = False if _hasiniparse: from iniparse import change_comment_syntax # pytype: disable=import-error change_comment_syntax(allow_rem=False) # allow :suboption in from iniparse.ini import OptionLine # pytype: disable=import-error OptionLine.regex = re.compile(r'^(?P[^:=\s[][^=]*)' r'(?P=\s*)' r'(?P.*)$') # Since hg 5.8 (a3dced4b7b04), config dict is no longer a plain # {key: value} dict, but has metadata for each key. def _packvalue(config, value, source): return (value, source, config._current_source_level) def _unpackvalue(packed): value, _source, _level = packed return value class _wsortdict(object): """Wrapper for config.sortdict to record set/del operations""" def __init__(self, dict: Dict[bytes, Any]) -> None: self._dict: Dict[bytes, Any] = dict self._log = [] # log of set/del operations # no need to wrap copy() since we don't keep trac of it. def __contains__(self, key: bytes) -> bool: return key in self._dict def __getitem__(self, key: bytes): return self._dict[key] def __setitem__(self, key: bytes, val) -> None: self._setdict(key, val) self._logset(key, _unpackvalue(val)) def _logset(self, key: bytes, val) -> None: """Record set operation to log; called also by _wconfig""" def op(target): target[pycompat.sysstr(key)] = hglib.tounicode(val) self._log.append(op) def _setdict(self, key: bytes, val) -> None: if key not in self._dict: self._dict[key] = val # append return # preserve current order def get(k): if k == key: return val else: return self._dict[k] for k in list(self._dict): self._dict[k] = get(k) def __iter__(self) -> Iterator[bytes]: return iter(self._dict) def __len__(self) -> int: return len(self._dict) def update(self, src) -> None: if isinstance(src, _wsortdict): src = src._dict self._dict.update(src) self._logupdate(src) def _logupdate(self, src) -> None: """Record update operation to log; called also by _wconfig""" for k in src: self._logset(k, _unpackvalue(src[k])) def __delitem__(self, key: bytes) -> None: del self._dict[key] self._logdel(key) def _logdel(self, key: bytes) -> None: """Record del operation to log""" def op(target): try: del target[pycompat.sysstr(key)] except KeyError: # in case somebody else deleted it pass self._log.append(op) def __getattr__(self, name): return getattr(self._dict, name) def _replaylog(self, target) -> None: """Replay operations against the given target; called by _wconfig""" for op in self._log: op(target) class _wconfig(object): """Wrapper for config.config to replay changes to iniparse on write This records set/del operations and replays them on write(). Source file is reloaded before replaying changes, so that it doesn't override changes for another part of file made by somebody else: - A "set foo = bar", B "set baz = bax" => "foo = bar, baz = bax" - A "set foo = bar", B "set foo = baz" => "foo = baz" (last one wins) - A "del foo", B "set foo = baz" => "foo = baz" (last one wins) - A "set foo = bar", B "del foo" => "" (last one wins) """ def __init__(self, data: Optional[Union[_wconfig, config_mod.config]] = None) -> None: self._config = config_mod.config(data) self._readfiles = [] # list of read (path, fp, sections, remap) self._sections: Dict[bytes, _wsortdict] = {} if isinstance(data, self.__class__): # keep log self._readfiles.extend(data._readfiles) self._sections.update(data._sections) elif data: # record as changes self._logupdates(data) def copy(self): return self.__class__(self) def __contains__(self, section: bytes) -> bool: return section in self._config def __getitem__(self, section: bytes) -> _wsortdict: try: return self._sections[section] except KeyError: if self._config[section]: # get around COW behavior introduced by hg c41444a39de2, where # an inner dict may be replaced later on preparewrite(). our # wrapper expects non-empty config[section] instance persists. data = self._config._data data[section] = data[section].preparewrite() self._sections[section] = _wsortdict(self._config[section]) return self._sections[section] else: return _wsortdict({}) def __iter__(self): return iter(self._config) def update(self, src) -> None: self._config.update(src) self._logupdates(src) def _logupdates(self, src) -> None: for s in src: self[s]._logupdate(src[s]) def set( self, section: bytes, item: bytes, value: bytes, source: bytes=b'' ) -> None: assert isinstance(section, bytes), (section, item, value) assert isinstance(item, bytes), (section, item, value) assert isinstance(value, bytes), (section, item, value) self._setconfig(section, item, value, source) self[section]._logset(item, value) def _setconfig( self, section: bytes, item: bytes, value: bytes, source: bytes=b'' ) -> None: if item not in self._config[section]: # need to handle 'source' self._config.set(section, item, value, source) else: self[section][item] = _packvalue(self._config, value, source) def remove(self, section: bytes, item: bytes) -> None: del self[section][item] self[section]._logdel(item) def read(self, path: bytes, fp=None, sections=None, remap=None) -> None: self._config.read(path, fp, sections, remap) self._readfiles.append((path, fp, sections, remap)) def write(self, dest) -> None: ini = self._readini() self._replaylogs(ini) dest.write(str(ini)) def _readini(self): """Create iniparse object by reading every file""" if len(self._readfiles) > 1: raise NotImplementedError("wconfig does not support read() more " "than once") def newini(fp=None): try: # TODO: optionxformvalue isn't used by INIConfig ? return INIConfig(fp=fp, optionxformvalue=None) except configparser.MissingSectionHeaderError as err: raise error.ParseError( encoding.strtolocal(err.message.splitlines()[0]), encoding.strtolocal('%s:%d' % (err.source, err.lineno)) ) except configparser.ParsingError as err: if err.errors: loc = '%s:%d' % (err.source, err.errors[0][0]) else: loc = err.source raise error.ParseError( encoding.strtolocal(err.message.splitlines()[0]), encoding.strtolocal(loc) ) if not self._readfiles: return newini() def _read_new_ini(fp): return newini(pycompat.io.StringIO(hglib.tounicode(fp.read()))) path, fp, sections, remap = self._readfiles[0] try: if sections: raise NotImplementedError("wconfig does not support 'sections'") if remap: raise NotImplementedError("wconfig does not support 'remap'") if fp: fp.seek(0) else: fp = util.posixfile(path, b'rb') return _read_new_ini(fp) finally: if fp: fp.close() def _replaylogs(self, ini): def getsection(ini, section): if section in ini: return ini[section] else: newns = getattr(ini, '_new_namespace', getattr(ini, 'new_namespace')) return newns(section) for section, sortdict in self._sections.items(): target = getsection(ini, pycompat.sysstr(section)) sortdict._replaylog(target) def __getattr__(self, name): return getattr(self._config, name) def config(data=None): """Create writable config if iniparse available; otherwise readonly obj You can test whether the returned obj is writable or not by `hasattr(obj, 'write')`. """ if _hasiniparse: return _wconfig(data) else: return config_mod.config(data) def readfile(path: bytes): """Read the given file to return config object""" c = config() c.read(path) return c def writefile(config, path: bytes) -> None: """Write the given config obj to the specified file""" buf = pycompat.io.StringIO() config.write(buf) value = hglib.fromunicode(buf.getvalue()) data = pycompat.oslinesep.join(value.splitlines() + [b'']) if os.name == 'nt': # no atomic rename to the existing file that may fail occasionally # for unknown reasons, possibly because of our QFileSystemWatcher or # a virus scanner. also it breaks NTFS symlink (issue #2181). openfile = util.posixfile else: # atomic rename is reliable on Unix openfile = util.atomictempfile f = openfile(os.path.realpath(path), b'wb') try: f.write(data) f.close() finally: del f # unlink temp file ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1730631722.0 tortoisehg-6.9/tortoisehg/util/win32ill.py0000644000000000000000000002160014711654052017502 0ustar00rootroot# win32ill.py - listen to WM_CLOSE to shutdown cleanly # # Copyright 2014 Yuya Nishihara # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. """listen to WM_CLOSE to shutdown cleanly In short, this extension provides alternative to `kill pid` on Windows. Background: Windows cannot send Ctrl-C signal to CLI process without a console window, which means there is no easy way to abort `hg push` safely from your application. `GenerateConsoleCtrlEvent()` is very attractive, but look now, it's just able to signal `CTRL_C_EVENT` to all processes sharing the console. This extension spawns a thread to listen to `WM_CLOSE` message, and generates `CTRL_C_EVENT` to itself on `WM_CLOSE`. - http://stackoverflow.com/questions/1453520/ - http://msdn.microsoft.com/en-us/library/windows/desktop/ms683155(v=vs.85).aspx - http://support.microsoft.com/kb/178893/en-us Caveats: - Make sure to set `CREATE_NO_WINDOW` or `CREATE_NEW_CONSOLE` to `dwCreationFlags` when creating hg process; otherwise the master process will also receive `CTRL_C_EVENT`. - If the master process communicates with the sub hg process via stdio, the master also needs to close the write channel of the sub. - Blocking winsock calls cannot be interrupted as Ctrl-C in `cmd.exe` has no effect. """ from __future__ import annotations import atexit, ctypes, os, threading from mercurial import ( error, pycompat, ) from tortoisehg.util import ( hgversion, version, ) from tortoisehg.util.i18n import agettext as _ if pycompat.TYPE_CHECKING: from typing import ( BinaryIO, Optional, ) from mercurial import ( ui as uimod, ) testedwith = hgversion.testedwith getversion = version.version_bytes _CTRL_C_EVENT = 0 _WM_APP = 0x8000 _WM_CLOSE = 0x0010 _WM_DESTROY = 0x0002 _WS_EX_NOACTIVATE = 0x08000000 _WS_POPUP = 0x80000000 _WM_STOPMESSAGELOOP = _WM_APP + 0 def _errcheckbool(result, func, args): if not result: raise ctypes.WinError() # pytype: disable=module-attr return args def _errcheckminus1(result, func, args): if result == -1: raise ctypes.WinError() # pytype: disable=module-attr return args if os.name == 'nt': from ctypes import wintypes _ATOM = wintypes.ATOM _BOOL = wintypes.BOOL _DWORD = wintypes.DWORD _HBRUSH = wintypes.HBRUSH _HCURSOR = wintypes.HICON _HICON = wintypes.HICON _HINSTANCE = wintypes.HINSTANCE _HMENU = wintypes.HMENU _HMODULE = wintypes.HMODULE _HWND = wintypes.HWND _LPARAM = wintypes.LPARAM _LPCTSTR = wintypes.LPCSTR _LPVOID = wintypes.LPVOID _LRESULT = wintypes.LPARAM # LRESULT and LPARAM are defined as LONG_PTR _MSG = wintypes.MSG _UINT = wintypes.UINT _WPARAM = wintypes.WPARAM _WNDPROC = ctypes.WINFUNCTYPE( # pytype: disable=module-attr _LRESULT, _HWND, _UINT, _WPARAM, _LPARAM ) class _WNDCLASS(ctypes.Structure): _fields_ = [ ('style', _UINT), ('lpfnWndProc', _WNDPROC), ('cbClsExtra', ctypes.c_int), ('cbWndExtra', ctypes.c_int), ('hInstance', _HINSTANCE), ('hIcon', _HICON), ('hCursor', _HCURSOR), ('hbrBackground', _HBRUSH), ('lpszMenuName', _LPCTSTR), ('lpszClassName', _LPCTSTR), ] windll = ctypes.windll # pytype: disable=module-attr _CreateWindowEx = windll.user32.CreateWindowExA _CreateWindowEx.restype = _HWND _CreateWindowEx.argtypes = (_DWORD, _LPCTSTR, _LPCTSTR, _DWORD, ctypes.c_int, ctypes.c_int, ctypes.c_int, ctypes.c_int, _HWND, _HMENU, _HINSTANCE, _LPVOID) _CreateWindowEx.errcheck = _errcheckbool _DefWindowProc = windll.user32.DefWindowProcA _DefWindowProc.restype = _LRESULT _DefWindowProc.argtypes = (_HWND, _UINT, _WPARAM, _LPARAM) _DestroyWindow = windll.user32.DestroyWindow _DestroyWindow.restype = _BOOL _DestroyWindow.argtypes = (_HWND,) _DestroyWindow.errcheck = _errcheckbool _DispatchMessage = windll.user32.DispatchMessageA _DispatchMessage.restype = _LRESULT _DispatchMessage.argtypes = (ctypes.POINTER(_MSG),) _GenerateConsoleCtrlEvent = windll.kernel32.GenerateConsoleCtrlEvent _GenerateConsoleCtrlEvent.restype = _BOOL _GenerateConsoleCtrlEvent.argtypes = (_DWORD, _DWORD) _GenerateConsoleCtrlEvent.errcheck = _errcheckbool _GetMessage = windll.user32.GetMessageA _GetMessage.restype = _BOOL # -1, 0, or non-zero _GetMessage.argtypes = (ctypes.POINTER(_MSG), _HWND, _UINT, _UINT) _GetMessage.errcheck = _errcheckminus1 _GetModuleHandle = windll.kernel32.GetModuleHandleA _GetModuleHandle.restype = _HMODULE _GetModuleHandle.argtypes = (_LPCTSTR,) _GetModuleHandle.errcheck = _errcheckbool _PostQuitMessage = windll.user32.PostQuitMessage _PostQuitMessage.restype = None _PostQuitMessage.argtypes = (ctypes.c_int,) _PostMessage = windll.user32.PostMessageA _PostMessage.restype = _BOOL _PostMessage.argtypes = (_HWND, _UINT, _WPARAM, _LPARAM) _PostMessage.errcheck = _errcheckbool _RegisterClass = windll.user32.RegisterClassA _RegisterClass.restype = _ATOM _RegisterClass.argtypes = (ctypes.POINTER(_WNDCLASS),) _RegisterClass.errcheck = _errcheckbool _TranslateMessage = windll.user32.TranslateMessage _TranslateMessage.restype = _BOOL _TranslateMessage.argtypes = (ctypes.POINTER(_MSG),) class messageserver(object): def __init__(self, logfile: Optional[BinaryIO]) -> None: self._logfile = logfile self._thread = threading.Thread(target=self._mainloop) self._thread.setDaemon(True) # skip global join before atexit self._wndcreated = threading.Event() self._hwnd = None self._wndclass = wc = _WNDCLASS() wc.lpfnWndProc = _WNDPROC(self._wndproc) wc.hInstance = _GetModuleHandle(None) wc.lpszClassName = b'HgMessage' _RegisterClass(ctypes.byref(wc)) def start(self): if self._hwnd: raise RuntimeError('window already created') self._wndcreated.clear() self._thread.start() self._wndcreated.wait() if not self._hwnd: raise error.Abort(_('win32ill: cannot create window for messages')) def stop(self): hwnd = self._hwnd if hwnd: _PostMessage(hwnd, _WM_STOPMESSAGELOOP, 0, 0) self._thread.join() def _log(self, msg: bytes) -> None: if not self._logfile: return self._logfile.write(msg + b'\n') self._logfile.flush() def _mainloop(self): try: # no HWND_MESSAGE so that it can be found by EnumWindows # WS_EX_NOACTIVATE and WS_POPUP exist just for strictness self._hwnd = _CreateWindowEx( _WS_EX_NOACTIVATE, # dwExStyle self._wndclass.lpszClassName, None, # lpWindowName _WS_POPUP, # dwStyle 0, 0, 0, 0, # x, y, nWidth, nHeight None, # hWndParent None, # hMenu _GetModuleHandle(None), # hInstance None) # lpParam finally: self._wndcreated.set() self._log(b'starting message loop (pid = %d)' % os.getpid()) msg = _MSG() lpmsg = ctypes.byref(msg) while _GetMessage(lpmsg, None, 0, 0): _TranslateMessage(lpmsg) _DispatchMessage(lpmsg) def _wndproc(self, hwnd, msg, wparam, lparam): if msg == _WM_CLOSE: self._log(b'received WM_CLOSE') # dwProcessGroupId=0 means all processes sharing the same console, # which is the only choice for CTRL_C_EVENT. _GenerateConsoleCtrlEvent(_CTRL_C_EVENT, 0) return 0 if msg == _WM_STOPMESSAGELOOP and self._hwnd: self._log(b'destroying window') _DestroyWindow(self._hwnd) self._hwnd = None if msg == _WM_DESTROY: self._log(b'received WM_DESTROY') _PostQuitMessage(0) return 0 return _DefWindowProc(hwnd, msg, wparam, lparam) def _openlogfile(ui: uimod.ui) -> Optional[BinaryIO]: log = ui.config(b'win32ill', b'log') if log == b'-': return ui.ferr elif log: return open(log, 'ab') def uisetup(ui: uimod.ui) -> None: if os.name != 'nt': ui.warn(_('win32ill: unsupported platform: %s\n') % os.name) return # message loop is per process sv = messageserver(_openlogfile(ui)) def stop(): try: sv.stop() except KeyboardInterrupt: # can happen if command finished just before WM_CLOSE request ui.warn(_('win32ill: interrupted while stopping message loop\n')) atexit.register(stop) sv.start() ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1737033608.1714146 tortoisehg-6.9/tortoisehg.egg-info/0000755000000000000000000000000014742203610016175 5ustar00rootroot././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033607.0 tortoisehg-6.9/tortoisehg.egg-info/PKG-INFO0000644000000000000000000000040114742203607017273 0ustar00rootrootMetadata-Version: 2.1 Name: tortoisehg Version: 6.9 Summary: TortoiseHg dialogs for Mercurial VCS Home-page: https://tortoisehg.bitbucket.io Author: Steve Borho Author-email: steve@borho.org License: GNU GPLv2 or any later version License-File: COPYING.txt ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033607.0 tortoisehg-6.9/tortoisehg.egg-info/SOURCES.txt0000644000000000000000000004673314742203607020104 0ustar00rootrootCOPYING.txt MANIFEST.in setup.cfg setup.py thg contrib/mergetools.rc contrib/nautilus-thg.py contrib/thg.desktop doc/Build.bat doc/Makefile doc/ReadMe-cs.txt doc/ReadMe-ja.txt doc/ReadMe-nl.txt doc/ReadMe.txt doc/TODO doc/source/archive.txt doc/source/clone.txt doc/source/commit.txt doc/source/common.txt doc/source/conf.py doc/source/daily.txt doc/source/debugging.txt doc/source/explorer.txt doc/source/extensions.txt doc/source/faq.txt doc/source/guess.txt doc/source/ignore.txt doc/source/index.txt doc/source/init.txt doc/source/intro.txt doc/source/nautilus.txt doc/source/nonhg.txt doc/source/patches.txt doc/source/preface.txt doc/source/quick.txt doc/source/serve.txt doc/source/settings.txt doc/source/shelve.txt doc/source/sync.txt doc/source/whatsnew.txt doc/source/workbench.txt doc/source-cs/archive.txt doc/source-cs/clone.txt doc/source-cs/commit.txt doc/source-cs/common.txt doc/source-cs/conf.py doc/source-cs/daily.txt doc/source-cs/debugging.txt doc/source-cs/explorer.txt doc/source-cs/extensions.txt doc/source-cs/faq.txt doc/source-cs/guess.txt doc/source-cs/ignore.txt doc/source-cs/index.txt doc/source-cs/init.txt doc/source-cs/intro.txt doc/source-cs/nautilus.txt doc/source-cs/nonhg.txt doc/source-cs/patches.txt doc/source-cs/preface.txt doc/source-cs/quick.txt doc/source-cs/serve.txt doc/source-cs/settings.txt doc/source-cs/shelve.txt doc/source-cs/sync.txt doc/source-cs/whatsnew.txt doc/source-cs/workbench.txt doc/source-cs/.static/.keep doc/source-cs/figures/archive.png doc/source-cs/figures/clone.png doc/source-cs/figures/cmenu-nofiles.png doc/source-cs/figures/commit-tasktab.png doc/source-cs/figures/commit.png doc/source-cs/figures/desktop-workbench.png doc/source-cs/figures/dock-toolbar.png doc/source-cs/figures/edit-toolbar.png doc/source-cs/figures/email.png doc/source-cs/figures/file-menu.png doc/source-cs/figures/filter-toolbar.png doc/source-cs/figures/guess.png doc/source-cs/figures/ignore.png doc/source-cs/figures/import.png doc/source-cs/figures/init.png doc/source-cs/figures/manifest-tasktab.png doc/source-cs/figures/nautilus.png doc/source-cs/figures/overlayicons.png doc/source-cs/figures/patch-repograph.png doc/source-cs/figures/patchqueue.png doc/source-cs/figures/pbranch.png doc/source-cs/figures/rejects.png doc/source-cs/figures/repository-menu.png doc/source-cs/figures/revdetails-tasktab.png doc/source-cs/figures/search-tasktab.png doc/source-cs/figures/serve.png doc/source-cs/figures/settings.png doc/source-cs/figures/shell-config-cmenu.png doc/source-cs/figures/shell-config-icons.png doc/source-cs/figures/shelve.png doc/source-cs/figures/single-revision-cmenu.png doc/source-cs/figures/sync-tasktab.png doc/source-cs/figures/sync-toolbar.png doc/source-cs/figures/synchronize.png doc/source-cs/figures/task-toolbar.png doc/source-cs/figures/thg_logo_92x50.png doc/source-cs/figures/thg_logo_pdf.png doc/source-cs/figures/view-menu.png doc/source-cs/figures/visual-diff.jpg doc/source-cs/figures/visual-diff.png doc/source-cs/figures/workbench.png doc/source-ja/BASE doc/source-ja/changelog.txt doc/source-ja/clone.txt doc/source-ja/commit.txt doc/source-ja/common.txt doc/source-ja/conf.py doc/source-ja/daily.txt doc/source-ja/datamine.txt doc/source-ja/debugging.txt doc/source-ja/explorer.txt doc/source-ja/extensions.txt doc/source-ja/faq.txt doc/source-ja/guess.txt doc/source-ja/ignore.txt doc/source-ja/index.txt doc/source-ja/init.txt doc/source-ja/intro.txt doc/source-ja/nonhg.txt doc/source-ja/patches.txt doc/source-ja/preface.txt doc/source-ja/quick.txt doc/source-ja/recovery.txt doc/source-ja/serve.txt doc/source-ja/settings.txt doc/source-ja/shelve.txt doc/source-ja/synchronize.txt doc/source-ja/.static/.keep doc/source-ja/figures/advancedbar.png doc/source-ja/figures/annotate.png doc/source-ja/figures/bundlepreview.png doc/source-ja/figures/clone.png doc/source-ja/figures/cmenu-files.png doc/source-ja/figures/cmenu-global-settings.png doc/source-ja/figures/cmenu-nofiles.png doc/source-ja/figures/commit.png doc/source-ja/figures/email.png doc/source-ja/figures/guess.png doc/source-ja/figures/hgcmd.png doc/source-ja/figures/ignore.png doc/source-ja/figures/import.png doc/source-ja/figures/init.png doc/source-ja/figures/log.png doc/source-ja/figures/nautilus.png doc/source-ja/figures/newchangeset.png doc/source-ja/figures/outgoing.png doc/source-ja/figures/overlayicons.png doc/source-ja/figures/parentbar.png doc/source-ja/figures/patchqueue.png doc/source-ja/figures/recover.png doc/source-ja/figures/rename.png doc/source-ja/figures/search.png doc/source-ja/figures/searchbar.png doc/source-ja/figures/serve.png doc/source-ja/figures/settings.png doc/source-ja/figures/share.png doc/source-ja/figures/shelve.png doc/source-ja/figures/strip.png doc/source-ja/figures/syncbar.png doc/source-ja/figures/synchronize.png doc/source-ja/figures/taskbarui.png doc/source-ja/figures/thg_logo_92x50.png doc/source-ja/figures/thg_logo_pdf.png doc/source-ja/figures/update.png doc/source-ja/figures/visual-diff.png doc/source/.static/.keep doc/source/.static/tortoisehg.css doc/source/figures/advancedbar.png doc/source/figures/annotate.png doc/source/figures/archive.png doc/source/figures/bundlepreview.png doc/source/figures/clone.png doc/source/figures/cmenu-files.png doc/source/figures/cmenu-global-settings.png doc/source/figures/cmenu-nofiles.png doc/source/figures/commit-tasktab.png doc/source/figures/commit.png doc/source/figures/desktop-workbench.png doc/source/figures/dock-toolbar.png doc/source/figures/edit-toolbar.png doc/source/figures/email.png doc/source/figures/file-menu.png doc/source/figures/filter-toolbar.png doc/source/figures/guess.png doc/source/figures/hgcmd.jpg doc/source/figures/ignore.jpg doc/source/figures/import.png doc/source/figures/init.png doc/source/figures/log.png doc/source/figures/missing-image.png doc/source/figures/nautilus.png doc/source/figures/newchangeset.png doc/source/figures/outgoing.png doc/source/figures/overlayicons.png doc/source/figures/parentbar.png doc/source/figures/patchqueue.png doc/source/figures/recover.png doc/source/figures/rejects.png doc/source/figures/repository-menu.png doc/source/figures/revdetails-tasktab.png doc/source/figures/search-tasktab.png doc/source/figures/search.png doc/source/figures/searchbar.png doc/source/figures/serve.png doc/source/figures/settings.png doc/source/figures/share.png doc/source/figures/shell-config-cmenu.png doc/source/figures/shell-config-icons.png doc/source/figures/shelve.png doc/source/figures/single-revision-cmenu.png doc/source/figures/strip.png doc/source/figures/sync-tasktab.png doc/source/figures/sync-toolbar.png doc/source/figures/syncbar.png doc/source/figures/synchronize.png doc/source/figures/task-toolbar.png doc/source/figures/thg_logo_92x50.png doc/source/figures/thg_logo_pdf.png doc/source/figures/update.png doc/source/figures/view-menu.png doc/source/figures/visual-diff.jpg doc/source/figures/workbench.png hgext3rd/__init__.py hgext3rd/thg.py i18n/__init__.py i18n/msgfmt.py i18n/tortoisehg/ar.po i18n/tortoisehg/bg.po i18n/tortoisehg/ca.po i18n/tortoisehg/cs.po i18n/tortoisehg/da.po i18n/tortoisehg/de.po i18n/tortoisehg/en_AU.po i18n/tortoisehg/en_GB.po i18n/tortoisehg/es.po i18n/tortoisehg/et.po i18n/tortoisehg/fa.po i18n/tortoisehg/fi.po i18n/tortoisehg/fr.po i18n/tortoisehg/he.po i18n/tortoisehg/hr.po i18n/tortoisehg/hu.po i18n/tortoisehg/id.po i18n/tortoisehg/it.po i18n/tortoisehg/ja.po i18n/tortoisehg/jv.po i18n/tortoisehg/ko.po i18n/tortoisehg/lv.po i18n/tortoisehg/nb.po i18n/tortoisehg/nl.po i18n/tortoisehg/nn.po i18n/tortoisehg/oc.po i18n/tortoisehg/pl.po i18n/tortoisehg/pt.po i18n/tortoisehg/pt_BR.po i18n/tortoisehg/ru.po i18n/tortoisehg/sr.po i18n/tortoisehg/sv.po i18n/tortoisehg/th.po i18n/tortoisehg/tr.po i18n/tortoisehg/uk.po i18n/tortoisehg/zh_CN.po i18n/tortoisehg/zh_TW.po icons/README.txt icons/TortoiseMerge.ico icons/detect_rename.ico icons/expander-close.png icons/expander-open.png icons/general.ico icons/hg.ico icons/hgB.ico icons/ignore.ico icons/menuabout.ico icons/menuadd.ico icons/menublame.ico icons/menucheckout.ico icons/menuclone.ico icons/menucommit.ico icons/menucreaterepos.ico icons/menudelete.ico icons/menulog.ico icons/menurepobrowse.ico icons/menurevert.ico icons/menushowchanged.ico icons/menusynch.ico icons/proxy.ico icons/refresh_overlays.ico icons/settings_repo.ico icons/settings_user.ico icons/shelve.ico icons/thg_logo.ico icons/thg_logo_92x50.png icons/16x16/actions/hg-add.png icons/16x16/actions/thg-repoconfig.png icons/16x16/actions/thg-userconfig.png icons/16x16/apps/gnupg.png icons/16x16/apps/kiln.png icons/16x16/apps/reviewboard.png icons/16x16/mimetypes/text-x-generic.png icons/16x16/status/hg-removed.png icons/22x22/actions/window-close.png icons/24x24/actions/hg-incoming.png icons/24x24/actions/hg-outgoing.png icons/24x24/actions/hg-pull.png icons/24x24/actions/hg-push.png icons/32x32/actions/hg-add.png icons/32x32/actions/hg-branch.png icons/32x32/actions/hg-sign.png icons/32x32/actions/thg-repoconfig.png icons/32x32/actions/thg-userconfig.png icons/32x32/status/hg-removed.png icons/scalable/actions/application-exit.svg icons/scalable/actions/compare-files.svg icons/scalable/actions/copy-hash.svg icons/scalable/actions/copy-patch.svg icons/scalable/actions/dialog-warning.svg icons/scalable/actions/document-new.svg icons/scalable/actions/edit-copy.svg icons/scalable/actions/edit-cut.svg icons/scalable/actions/edit-file.svg icons/scalable/actions/edit-find.svg icons/scalable/actions/go-down.svg icons/scalable/actions/go-home.svg icons/scalable/actions/go-jump.svg icons/scalable/actions/go-next.svg icons/scalable/actions/go-previous.svg icons/scalable/actions/go-to-rev.svg icons/scalable/actions/go-up.svg icons/scalable/actions/hg-annotate.svg icons/scalable/actions/hg-archive.svg icons/scalable/actions/hg-bisect-bad-good.svg icons/scalable/actions/hg-bisect-good-bad.svg icons/scalable/actions/hg-bisect.svg icons/scalable/actions/hg-bookmarks.svg icons/scalable/actions/hg-bundle.svg icons/scalable/actions/hg-clone.svg icons/scalable/actions/hg-commit.svg icons/scalable/actions/hg-compress.svg icons/scalable/actions/hg-export.svg icons/scalable/actions/hg-extensions.svg icons/scalable/actions/hg-grep.svg icons/scalable/actions/hg-import.svg icons/scalable/actions/hg-incoming.svg icons/scalable/actions/hg-init.svg icons/scalable/actions/hg-log.svg icons/scalable/actions/hg-merge.svg icons/scalable/actions/hg-outgoing.svg icons/scalable/actions/hg-pull-to-here.svg icons/scalable/actions/hg-pull.svg icons/scalable/actions/hg-purge.svg icons/scalable/actions/hg-push.svg icons/scalable/actions/hg-qdelete.svg icons/scalable/actions/hg-qfold.svg icons/scalable/actions/hg-qgoto.svg icons/scalable/actions/hg-qguard.svg icons/scalable/actions/hg-qpop-all.svg icons/scalable/actions/hg-qpop.svg icons/scalable/actions/hg-qpush-all.svg icons/scalable/actions/hg-qpush-move.svg icons/scalable/actions/hg-qpush.svg icons/scalable/actions/hg-rebase.svg icons/scalable/actions/hg-recover.svg icons/scalable/actions/hg-remove.svg icons/scalable/actions/hg-rename.svg icons/scalable/actions/hg-revert.svg icons/scalable/actions/hg-serve.svg icons/scalable/actions/hg-shelve.svg icons/scalable/actions/hg-status.svg icons/scalable/actions/hg-strip.svg icons/scalable/actions/hg-tag.svg icons/scalable/actions/hg-topics.svg icons/scalable/actions/hg-transplant.svg icons/scalable/actions/hg-unbundle.svg icons/scalable/actions/hg-undo.svg icons/scalable/actions/hg-update.svg icons/scalable/actions/hg-verify.svg icons/scalable/actions/ldiff.svg icons/scalable/actions/mail-forward.svg icons/scalable/actions/new-group.svg icons/scalable/actions/process-stop.svg icons/scalable/actions/qfinish.svg icons/scalable/actions/qimport.svg icons/scalable/actions/settings_projrc.svg icons/scalable/actions/status-check.svg icons/scalable/actions/tasktab-refresh.svg icons/scalable/actions/thg-add-subrepo.svg icons/scalable/actions/thg-console.svg icons/scalable/actions/thg-guess.svg icons/scalable/actions/thg-ignore.svg icons/scalable/actions/thg-log-load-all.svg icons/scalable/actions/thg-mq.svg icons/scalable/actions/thg-password.svg icons/scalable/actions/thg-qrefresh.svg icons/scalable/actions/thg-qreorder.svg icons/scalable/actions/thg-reporegistry.svg icons/scalable/actions/thg-repository-open.svg icons/scalable/actions/thg-shelve-delete-left.svg icons/scalable/actions/thg-shelve-delete-right.svg icons/scalable/actions/thg-shelve-move-left-all.svg icons/scalable/actions/thg-shelve-move-left-chunks.svg icons/scalable/actions/thg-shelve-move-left-file.svg icons/scalable/actions/thg-shelve-move-right-all.svg icons/scalable/actions/thg-shelve-move-right-chunks.svg icons/scalable/actions/thg-shelve-move-right-file.svg icons/scalable/actions/thg-sync-bookmarks.svg icons/scalable/actions/thg-sync.svg icons/scalable/actions/view-annotate.svg icons/scalable/actions/view-at-revision.svg icons/scalable/actions/view-diff.svg icons/scalable/actions/view-file.svg icons/scalable/actions/view-filter.svg icons/scalable/actions/view-hidden.svg icons/scalable/actions/view-refresh.svg icons/scalable/actions/visualdiff.svg icons/scalable/apps/help-browser.svg icons/scalable/apps/help-readme.svg icons/scalable/apps/hg.svg icons/scalable/apps/phabricator.svg icons/scalable/apps/preferences-desktop-font.svg icons/scalable/apps/system-file-manager.svg icons/scalable/apps/thg.svg icons/scalable/apps/tools-hooks.svg icons/scalable/apps/tools-spanner-hammer.svg icons/scalable/apps/utilities-terminal.svg icons/scalable/status/hg-merged-both.svg icons/scalable/status/hg-merged-p1.svg icons/scalable/status/hg-merged-p2.svg icons/scalable/status/hg-modified.svg icons/scalable/status/hg-patch-applied.svg icons/scalable/status/hg-patch-guarded.svg icons/scalable/status/hg-patch-unguarded.svg icons/scalable/status/hg-sharedrepo.svg icons/scalable/status/thg-added-subrepo.svg icons/scalable/status/thg-error.svg icons/scalable/status/thg-git-subrepo.svg icons/scalable/status/thg-remote-repo.svg icons/scalable/status/thg-removed-subrepo.svg icons/scalable/status/thg-subrepo.svg icons/scalable/status/thg-success.svg icons/scalable/status/thg-svn-subrepo.svg icons/scalable/status/thg-warning.svg icons/svg/add.svg icons/svg/checkout.svg icons/svg/clone.svg icons/svg/commit.svg icons/svg/detect_rename.svg icons/svg/ignore.svg icons/svg/init.svg icons/svg/log.svg icons/svg/proxy.svg icons/svg/recovery.svg icons/svg/refresh_overlays.svg icons/svg/remove.svg icons/svg/repobrowse.svg icons/svg/shelve.svg icons/svg/sync.svg icons/svg/thg_logo.svg locale/ar/LC_MESSAGES/tortoisehg.mo locale/bg/LC_MESSAGES/tortoisehg.mo locale/ca/LC_MESSAGES/tortoisehg.mo locale/cs/LC_MESSAGES/tortoisehg.mo locale/da/LC_MESSAGES/tortoisehg.mo locale/de/LC_MESSAGES/tortoisehg.mo locale/en_AU/LC_MESSAGES/tortoisehg.mo locale/en_GB/LC_MESSAGES/tortoisehg.mo locale/es/LC_MESSAGES/tortoisehg.mo locale/et/LC_MESSAGES/tortoisehg.mo locale/fa/LC_MESSAGES/tortoisehg.mo locale/fi/LC_MESSAGES/tortoisehg.mo locale/fr/LC_MESSAGES/tortoisehg.mo locale/he/LC_MESSAGES/tortoisehg.mo locale/hr/LC_MESSAGES/tortoisehg.mo locale/hu/LC_MESSAGES/tortoisehg.mo locale/id/LC_MESSAGES/tortoisehg.mo locale/it/LC_MESSAGES/tortoisehg.mo locale/ja/LC_MESSAGES/tortoisehg.mo locale/jv/LC_MESSAGES/tortoisehg.mo locale/ko/LC_MESSAGES/tortoisehg.mo locale/lv/LC_MESSAGES/tortoisehg.mo locale/nb/LC_MESSAGES/tortoisehg.mo locale/nl/LC_MESSAGES/tortoisehg.mo locale/nn/LC_MESSAGES/tortoisehg.mo locale/oc/LC_MESSAGES/tortoisehg.mo locale/pl/LC_MESSAGES/tortoisehg.mo locale/pt/LC_MESSAGES/tortoisehg.mo locale/pt_BR/LC_MESSAGES/tortoisehg.mo locale/ru/LC_MESSAGES/tortoisehg.mo locale/sr/LC_MESSAGES/tortoisehg.mo locale/sv/LC_MESSAGES/tortoisehg.mo locale/th/LC_MESSAGES/tortoisehg.mo locale/tr/LC_MESSAGES/tortoisehg.mo locale/uk/LC_MESSAGES/tortoisehg.mo locale/zh_CN/LC_MESSAGES/tortoisehg.mo locale/zh_TW/LC_MESSAGES/tortoisehg.mo tortoisehg/__init__.py tortoisehg.egg-info/PKG-INFO tortoisehg.egg-info/SOURCES.txt tortoisehg.egg-info/dependency_links.txt tortoisehg.egg-info/top_level.txt tortoisehg/hgqt/__init__.py tortoisehg/hgqt/about.py tortoisehg/hgqt/archive.py tortoisehg/hgqt/backout.py tortoisehg/hgqt/bisect.py tortoisehg/hgqt/blockmatcher.py tortoisehg/hgqt/bookmark.py tortoisehg/hgqt/branchop.py tortoisehg/hgqt/bugreport.py tortoisehg/hgqt/chunks.py tortoisehg/hgqt/clone.py tortoisehg/hgqt/close_branch.py tortoisehg/hgqt/cmdcore.py tortoisehg/hgqt/cmdui.py tortoisehg/hgqt/commit.py tortoisehg/hgqt/compress.py tortoisehg/hgqt/csinfo.py tortoisehg/hgqt/cslist.py tortoisehg/hgqt/customtools.py tortoisehg/hgqt/docklog.py tortoisehg/hgqt/filectxactions.py tortoisehg/hgqt/filedata.py tortoisehg/hgqt/filedialogs.py tortoisehg/hgqt/fileencoding.py tortoisehg/hgqt/filelistview.py tortoisehg/hgqt/fileview.py tortoisehg/hgqt/graft.py tortoisehg/hgqt/graph.py tortoisehg/hgqt/graphopt.py tortoisehg/hgqt/grep.py tortoisehg/hgqt/guess.py tortoisehg/hgqt/hgconfig.py tortoisehg/hgqt/hgemail.py tortoisehg/hgqt/hgemail.ui tortoisehg/hgqt/hgemail_ui.py tortoisehg/hgqt/hgignore.py tortoisehg/hgqt/hginit.py tortoisehg/hgqt/hgrcutil.py tortoisehg/hgqt/htmldelegate.py tortoisehg/hgqt/htmlui.py tortoisehg/hgqt/infobar.py tortoisehg/hgqt/lexers.py tortoisehg/hgqt/lfprompt.py tortoisehg/hgqt/locktool.py tortoisehg/hgqt/manifestmodel.py tortoisehg/hgqt/matching.py tortoisehg/hgqt/merge.py tortoisehg/hgqt/messageentry.py tortoisehg/hgqt/mq.py tortoisehg/hgqt/p4pending.py tortoisehg/hgqt/phabreview.py tortoisehg/hgqt/phabreview.ui tortoisehg/hgqt/phabreview_ui.py tortoisehg/hgqt/pick.py tortoisehg/hgqt/postreview.py tortoisehg/hgqt/postreview.ui tortoisehg/hgqt/postreview_ui.py tortoisehg/hgqt/prune.py tortoisehg/hgqt/purge.py tortoisehg/hgqt/qdelete.py tortoisehg/hgqt/qfold.py tortoisehg/hgqt/qsci.py tortoisehg/hgqt/qscilib.py tortoisehg/hgqt/qtapp.py tortoisehg/hgqt/qtcore.py tortoisehg/hgqt/qtgui.py tortoisehg/hgqt/qtlib.py tortoisehg/hgqt/qtnetwork.py tortoisehg/hgqt/quickop.py tortoisehg/hgqt/rebase.py tortoisehg/hgqt/rejects.py tortoisehg/hgqt/rename.py tortoisehg/hgqt/repofilter.py tortoisehg/hgqt/repomodel.py tortoisehg/hgqt/reporegistry.py tortoisehg/hgqt/repotab.py tortoisehg/hgqt/repotreeitem.py tortoisehg/hgqt/repotreemodel.py tortoisehg/hgqt/repoview.py tortoisehg/hgqt/repowidget.py tortoisehg/hgqt/resolve.py tortoisehg/hgqt/revdetails.py tortoisehg/hgqt/revert.py tortoisehg/hgqt/revpanel.py tortoisehg/hgqt/revset.py tortoisehg/hgqt/run.py tortoisehg/hgqt/serve.py tortoisehg/hgqt/serve.ui tortoisehg/hgqt/serve_ui.py tortoisehg/hgqt/settings.py tortoisehg/hgqt/shellconf.py tortoisehg/hgqt/shelve.py tortoisehg/hgqt/shortcutregistry.py tortoisehg/hgqt/shortcutsettings.py tortoisehg/hgqt/sign.py tortoisehg/hgqt/status.py tortoisehg/hgqt/sync.py tortoisehg/hgqt/tag.py tortoisehg/hgqt/thgimport.py tortoisehg/hgqt/thgrepo.py tortoisehg/hgqt/thgstrip.py tortoisehg/hgqt/topic.py tortoisehg/hgqt/update.py tortoisehg/hgqt/updatecheck.py tortoisehg/hgqt/visdiff.py tortoisehg/hgqt/wctxcleaner.py tortoisehg/hgqt/webconf.py tortoisehg/hgqt/webconf.ui tortoisehg/hgqt/webconf_ui.py tortoisehg/hgqt/workbench.py tortoisehg/util/__init__.py tortoisehg/util/__version__.py tortoisehg/util/bugtraq.py tortoisehg/util/cachethg.py tortoisehg/util/colormap.py tortoisehg/util/configitems.py tortoisehg/util/debugthg.py tortoisehg/util/editor.py tortoisehg/util/gpg.py tortoisehg/util/hgcommands.py tortoisehg/util/hgdispatch.py tortoisehg/util/hglib.py tortoisehg/util/hgversion.py tortoisehg/util/i18n.py tortoisehg/util/menuthg.py tortoisehg/util/obsoleteutil.py tortoisehg/util/partialcommit.py tortoisehg/util/patchctx.py tortoisehg/util/paths.py tortoisehg/util/pipeui.py tortoisehg/util/shlib.py tortoisehg/util/terminal.py tortoisehg/util/thgstatus.py tortoisehg/util/thread2.py tortoisehg/util/typelib.py tortoisehg/util/version.py tortoisehg/util/wconfig.py tortoisehg/util/win32ill.py././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033607.0 tortoisehg-6.9/tortoisehg.egg-info/dependency_links.txt0000644000000000000000000000000114742203607022251 0ustar00rootroot ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1737033607.0 tortoisehg-6.9/tortoisehg.egg-info/top_level.txt0000644000000000000000000000002414742203607020731 0ustar00rootroothgext3rd tortoisehg